All functions:
  Elements:
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - IPAddress
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: IPAddress::operator==(const IPAddress& other) const
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IPAddress::operator==(const IPAddress& other) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - IPAddress
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: IPAddress::operator!=(const IPAddress& other) const
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IPAddress::operator!=(const IPAddress& other) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::Type
      Src: /src/openweave-core/src/inet/IPAddress.cpp:63,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/src/inet/IPAddress.cpp:67,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/src/inet/IPAddress.cpp:68,1
    - Dst: nl::Inet::IPAddress::ToIPv4
      Src: /src/openweave-core/src/inet/IPAddress.cpp:68,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/src/inet/IPAddress.cpp:73,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/src/inet/IPAddress.cpp:74,1
    - Dst: nl::Inet::IPAddress::ToIPv6
      Src: /src/openweave-core/src/inet/IPAddress.cpp:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 83
    functionName: nl::Inet::IPAddress::ToLwIPAddr
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached:
    - ip_2_ip6
    - IP_SET_TYPE_VAL
    - nl::Inet::IPAddress::ToIPv6
    - nl::Inet::IPAddress::Type
    - nl::Inet::IPAddress::ToIPv4
    - ip_2_ip4
    linkageType: ''
    returnType: ip_addr_t
    signature: IPAddress::ToLwIPAddr(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IP_GET_TYPE
      Src: /src/openweave-core/src/inet/IPAddress.cpp:89,1
    - Dst: nl::Inet::IPAddress::FromIPv4
      Src: /src/openweave-core/src/inet/IPAddress.cpp:93,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/src/inet/IPAddress.cpp:93,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/inet/IPAddress.cpp:98,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/src/inet/IPAddress.cpp:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - addr
    argTypes:
    - ip_addr_t
    constantsTouched: []
    func_position:
      end: 107
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 107
    functionName: nl::Inet::IPAddress::FromLwIPAddr
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached:
    - ip_2_ip6
    - nl::Inet::IPAddress::FromIPv6
    - IP_GET_TYPE
    - ip_2_ip4
    - nl::Inet::IPAddress::FromIPv4
    linkageType: ''
    returnType: IPAddress
    signature: IPAddress::FromLwIPAddr(const ip_addr_t &addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - typ
    argTypes:
    - IPAddressType
    constantsTouched: []
    func_position:
      end: 131
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 131
    functionName: nl::Inet::IPAddress::ToLwIPAddrType
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lwip_ip_addr_type
    signature: IPAddress::ToLwIPAddrType(IPAddressType typ)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: nl::Inet::IPAddress::ToIPv4
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ip4_addr_t
    signature: IPAddress::ToIPv4() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ipv4Addr
    argTypes:
    - ip4_addr_t
    constantsTouched: []
    func_position:
      end: 148
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 148
    functionName: nl::Inet::IPAddress::FromIPv4
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 1
    functionsReached:
    - htonl
    linkageType: ''
    returnType: IPAddress
    signature: IPAddress::FromIPv4(const ip4_addr_t &ipv4Addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: nl::Inet::IPAddress::ToIPv6
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ip6_addr_t
    signature: IPAddress::ToIPv6() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ipv6Addr
    argTypes:
    - ip6_addr_t
    constantsTouched: []
    func_position:
      end: 164
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 164
    functionName: nl::Inet::IPAddress::FromIPv6
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: IPAddress
    signature: IPAddress::FromIPv6(const ip6_addr_t &ipv6Addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 176
    functionName: nl::Inet::IPAddress::ToIPv4
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct in_addr
    signature: IPAddress::ToIPv4() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ipv4Addr
    argTypes:
    - struct in_addr
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: nl::Inet::IPAddress::FromIPv4
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 1
    functionsReached:
    - htonl
    linkageType: ''
    returnType: IPAddress
    signature: IPAddress::FromIPv4(const struct in_addr &ipv4Addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: nl::Inet::IPAddress::ToIPv6
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct in6_addr
    signature: IPAddress::ToIPv6() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:197,1
    - Dst: htonl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:201,1
    - Dst: htonl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:205,1
    - Dst: htonl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ipv6Addr
    argTypes:
    - struct in6_addr
    constantsTouched: []
    func_position:
      end: 214
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 214
    functionName: nl::Inet::IPAddress::FromIPv6
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 1
    functionsReached:
    - htonl
    linkageType: ''
    returnType: IPAddress
    signature: IPAddress::FromIPv6(const struct in6_addr &ipv6Addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::FromIPv4
      Src: /src/openweave-core/src/inet/IPAddress.cpp:220,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/inet/IPAddress.cpp:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' sockaddr'
    argTypes:
    - struct sockaddr
    constantsTouched: []
    func_position:
      end: 225
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 225
    functionName: nl::Inet::IPAddress::FromSockAddr
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::FromIPv6
    - nl::Inet::IPAddress::FromIPv4
    linkageType: ''
    returnType: IPAddress
    signature: IPAddress::FromSockAddr(const struct sockaddr& sockaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: nl::Inet::IPAddress::IsIPv4
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached:
    - htonl
    linkageType: ''
    returnType: bool
    signature: IPAddress::IsIPv4() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::IsIPv4
      Src: /src/openweave-core/src/inet/IPAddress.cpp:238,1
    - Dst: ntohl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: nl::Inet::IPAddress::IsIPv4Multicast
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached:
    - ntohl
    - nl::Inet::IPAddress::IsIPv4
    linkageType: ''
    returnType: bool
    signature: IPAddress::IsIPv4Multicast(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::IsIPv4
      Src: /src/openweave-core/src/inet/IPAddress.cpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: nl::Inet::IPAddress::IsIPv4Broadcast
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::IsIPv4
    linkageType: ''
    returnType: bool
    signature: IPAddress::IsIPv4Broadcast(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::IsIPv6Multicast
      Src: /src/openweave-core/src/inet/IPAddress.cpp:250,1
    - Dst: nl::Inet::IPAddress::IsIPv4Multicast
      Src: /src/openweave-core/src/inet/IPAddress.cpp:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: nl::Inet::IPAddress::IsMulticast
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::IsIPv4Multicast
    - nl::Inet::IPAddress::IsIPv6Multicast
    linkageType: ''
    returnType: bool
    signature: IPAddress::IsMulticast(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::IsIPv4
      Src: /src/openweave-core/src/inet/IPAddress.cpp:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: nl::Inet::IPAddress::IsIPv6
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::IsIPv4
    linkageType: ''
    returnType: bool
    signature: IPAddress::IsIPv6(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: nl::Inet::IPAddress::IsIPv6Multicast
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 1
    functionsReached:
    - ntohl
    linkageType: ''
    returnType: bool
    signature: IPAddress::IsIPv6Multicast(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 268
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 268
    functionName: nl::Inet::IPAddress::IsIPv6GlobalUnicast
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached:
    - ntohl
    linkageType: ''
    returnType: bool
    signature: IPAddress::IsIPv6GlobalUnicast(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: nl::Inet::IPAddress::IsIPv6ULA
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached:
    - ntohl
    linkageType: ''
    returnType: bool
    signature: IPAddress::IsIPv6ULA() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: nl::Inet::IPAddress::IsIPv6LinkLocal
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached:
    - htonl
    linkageType: ''
    returnType: bool
    signature: IPAddress::IsIPv6LinkLocal() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::IsIPv6ULA
      Src: /src/openweave-core/src/inet/IPAddress.cpp:286,1
    - Dst: ntohl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:287,1
    - Dst: ntohl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 290
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 290
    functionName: nl::Inet::IPAddress::InterfaceId
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::IsIPv6ULA
    - ntohl
    linkageType: ''
    returnType: uint64_t
    signature: IPAddress::InterfaceId() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::IsIPv6ULA
      Src: /src/openweave-core/src/inet/IPAddress.cpp:296,1
    - Dst: ntohl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 300
    functionName: nl::Inet::IPAddress::Subnet
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::IsIPv6ULA
    - ntohl
    linkageType: ''
    returnType: uint16_t
    signature: IPAddress::Subnet() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::IsIPv6ULA
      Src: /src/openweave-core/src/inet/IPAddress.cpp:306,1
    - Dst: ntohl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:307,1
    - Dst: ntohl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 310
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 310
    functionName: nl::Inet::IPAddress::GlobalId
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::IsIPv6ULA
    - ntohl
    linkageType: ''
    returnType: uint64_t
    signature: IPAddress::GlobalId() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:317,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 321
    functionName: nl::Inet::IPAddress::Type
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 1
    functionsReached:
    - htonl
    linkageType: ''
    returnType: IPAddressType
    signature: IPAddress::Type() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/inet/IPAddress.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 333
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 333
    functionName: nl::Inet::IPAddress::WriteAddress
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: IPAddress::WriteAddress(uint8_t *&p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/inet/IPAddress.cpp:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - output
    argTypes:
    - uint8_t*
    - IPAddress
    constantsTouched: []
    func_position:
      end: 344
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 344
    functionName: nl::Inet::IPAddress::ReadAddress
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: IPAddress::ReadAddress(const uint8_t *&p, IPAddress &output)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:352,1
    - Dst: htonl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:355,1
    - Dst: htonl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:357,1
    - Dst: htonl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - globalId
    - subnet
    - interfaceId
    argTypes:
    - uint64_t
    - uint16_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 361
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 361
    functionName: nl::Inet::IPAddress::MakeULA
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached:
    - htonl
    linkageType: ''
    returnType: IPAddress
    signature: IPAddress::MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:367,1
    - Dst: htonl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:370,1
    - Dst: htonl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - interfaceId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 374
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 374
    functionName: nl::Inet::IPAddress::MakeLLA
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached:
    - htonl
    linkageType: ''
    returnType: IPAddress
    signature: IPAddress::MakeLLA(uint64_t interfaceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:382,1
    - Dst: htonl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:385,1
    - Dst: htonl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:389,1
    - Dst: htonl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - aFlags
    - aScope
    - aGroupId
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t[]
    constantsTouched: []
    func_position:
      end: 399
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 399
    functionName: nl::Inet::IPAddress::MakeIPv6Multicast
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached:
    - htonl
    linkageType: ''
    returnType: IPAddress
    signature: IPAddress::MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, const
      uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::MakeIPv6Multicast
      Src: /src/openweave-core/src/inet/IPAddress.cpp:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aFlags
    - aScope
    - aGroupId
    argTypes:
    - uint8_t
    - uint8_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 414
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 414
    functionName: nl::Inet::IPAddress::MakeIPv6Multicast
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 1
    functionsReached:
    - nl::Inet::IPAddress::MakeIPv6Multicast
    linkageType: ''
    returnType: IPAddress
    signature: IPAddress::MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, uint32_t
      aGroupId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::MakeIPv6Multicast
      Src: /src/openweave-core/src/inet/IPAddress.cpp:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aScope
    - aGroupId
    argTypes:
    - uint8_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 421
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 421
    functionName: nl::Inet::IPAddress::MakeIPv6WellKnownMulticast
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::MakeIPv6Multicast
    linkageType: ''
    returnType: IPAddress
    signature: IPAddress::MakeIPv6WellKnownMulticast(uint8_t aScope, uint32_t aGroupId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::MakeIPv6Multicast
      Src: /src/openweave-core/src/inet/IPAddress.cpp:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aFlags
    - aScope
    - aGroupId
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t[]
    constantsTouched: []
    func_position:
      end: 428
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 428
    functionName: nl::Inet::IPAddress::MakeIPv6TransientMulticast
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::MakeIPv6Multicast
    linkageType: ''
    returnType: IPAddress
    signature: IPAddress::MakeIPv6TransientMulticast(uint8_t aFlags, uint8_t aScope,
      const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::MakeIPv6TransientMulticast
      Src: /src/openweave-core/src/inet/IPAddress.cpp:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - aScope
    - aPrefixLength
    - aPrefix
    - aGroupId
    argTypes:
    - uint8_t
    - uint8_t
    - uint64_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 453
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 453
    functionName: nl::Inet::IPAddress::MakeIPv6PrefixMulticast
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::MakeIPv6TransientMulticast
    linkageType: ''
    returnType: IPAddress
    signature: IPAddress::MakeIPv6PrefixMulticast(uint8_t aScope, uint8_t aPrefixLength,
      const uint64_t &aPrefix, uint32_t aGroupId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/openweave-core/src/inet/IPAddress.cpp:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 463
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 463
    functionName: nl::Inet::IPAddress::MakeIPv4Broadcast
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.cpp
    functionUses: 0
    functionsReached:
    - htonl
    linkageType: ''
    returnType: IPAddress
    signature: IPAddress::MakeIPv4Broadcast(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Timer::GetCurrentEpoch
      Src: /src/openweave-core/src/inet/InetTimer.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: nl::Inet::InetTimer::GetTimeMillis
    functionSourceFile: /src/openweave-core/src/inet/InetTimer.h
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Timer::GetCurrentEpoch
    linkageType: ''
    returnType: InetTimer::Time
    signature: InetTimer::GetTimeMillis(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitInetLayerBasis
      Src: /src/openweave-core/src/inet/EndPointBasis.cpp:35,1
    - Dst: Clear
      Src: /src/openweave-core/src/inet/EndPointBasis.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' aInetLayer'
    - aAppState
    argTypes:
    - InetLayer
    - void*
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: nl::Inet::EndPointBasis::InitEndPointBasis
    functionSourceFile: /src/openweave-core/src/inet/EndPointBasis.cpp
    functionUses: 0
    functionsReached:
    - InitInetLayerBasis
    - Clear
    linkageType: ''
    returnType: void
    signature: EndPointBasis::InitEndPointBasis(InetLayer& aInetLayer, void* aAppState)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 114
    functionName: nl::Inet::IPEndPointBasis
    functionSourceFile: /src/openweave-core/src/inet/RawEndPoint.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: IPEndPointBasis
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::SocketEvents::IsReadable
      Src: /src/openweave-core/src/inet/InetLayerBasis.cpp:47,1
    - Dst: nl::Inet::SocketEvents::IsWriteable
      Src: /src/openweave-core/src/inet/InetLayerBasis.cpp:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - socket
    - pollFDs
    - ' numPollFDs'
    argTypes:
    - int
    - struct pollfd*
    - int
    constantsTouched: []
    func_position:
      end: 54
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 54
    functionName: nl::Inet::SocketEvents::SetFDs
    functionSourceFile: /src/openweave-core/src/inet/InetLayerBasis.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::SocketEvents::IsReadable
    - nl::Inet::SocketEvents::IsWriteable
    linkageType: ''
    returnType: void
    signature: SocketEvents::SetFDs(int socket, struct pollfd * pollFDs, int& numPollFDs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SocketEvents::SetRead
      Src: /src/openweave-core/src/inet/InetLayerBasis.cpp:76,1
    - Dst: SocketEvents::SetWrite
      Src: /src/openweave-core/src/inet/InetLayerBasis.cpp:78,1
    - Dst: SocketEvents::SetError
      Src: /src/openweave-core/src/inet/InetLayerBasis.cpp:80,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - socket
    - pollFDs
    - numPollFDs
    argTypes:
    - int
    - struct pollfd*
    - int
    constantsTouched: []
    func_position:
      end: 86
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 86
    functionName: nl::Inet::SocketEvents::FromFDs
    functionSourceFile: /src/openweave-core/src/inet/InetLayerBasis.cpp
    functionUses: 0
    functionsReached:
    - SocketEvents::SetRead
    - SocketEvents::SetWrite
    - SocketEvents::SetError
    linkageType: ''
    returnType: SocketEvents
    signature: SocketEvents::FromFDs(int socket, const struct pollfd * pollFDs, int
      numPollFDs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitEndPointBasis
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inetLayer
    argTypes:
    - InetLayer*
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: nl::Inet::TunEndPoint::Init
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 0
    functionsReached:
    - InitEndPointBasis
    linkageType: ''
    returnType: void
    signature: TunEndPoint::Init(InetLayer *inetLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:91,1
    - Dst: netif_add
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:93,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:96,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:98,1
    - Dst: nl::Inet::TunEndPoint::TunDevOpen
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:105,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:106,1
    - Dst: printf
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - intfName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 118
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 118
    functionName: nl::Inet::TunEndPoint::Open
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 0
    functionsReached:
    - LOCK_TCPIP_CORE
    - netif_add
    - VerifyOrExit
    - nl::Inet::TunEndPoint::TunDevOpen
    - printf
    - SuccessOrExit
    - UNLOCK_TCPIP_CORE
    linkageType: ''
    returnType: INET_ERROR
    signature: TunEndPoint::Open (const char *intfName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SystemLayer
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:136,1
    - Dst: WakeSelect
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:139,1
    - Dst: nl::Inet::TunEndPoint::TunDevClose
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:140,1
    - Dst: Clear
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 149
    functionName: nl::Inet::TunEndPoint::Close
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 0
    functionsReached:
    - Clear
    - SystemLayer
    - nl::Inet::TunEndPoint::TunDevClose
    - WakeSelect
    linkageType: ''
    returnType: void
    signature: TunEndPoint::Close (void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TunEndPoint::Close
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:158,1
    - Dst: DeferredFree
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:161,1
    - Dst: Release
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: nl::Inet::TunEndPoint::Free
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 0
    functionsReached:
    - Release
    - DeferredFree
    - nl::Inet::TunEndPoint::Close
    linkageType: ''
    returnType: void
    signature: TunEndPoint::Free()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TunEndPoint::CheckV6Sanity
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:186,1
    - Dst: nl::Inet::TunEndPoint::TunDevSendMessage
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - msg
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 194
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 194
    functionName: nl::Inet::TunEndPoint::Send
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TunEndPoint::TunDevSendMessage
    - nl::Inet::TunEndPoint::CheckV6Sanity
    linkageType: ''
    returnType: INET_ERROR
    signature: TunEndPoint::Send (PacketBuffer *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:208,1
    - Dst: netif_is_up
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:210,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:213,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:215,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:222,1
    - Dst: nl::Inet::TunEndPoint::TunGetInterface
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:225,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:227,1
    - Dst: socket
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:230,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:233,1
    - Dst: ioctl
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:237,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:239,1
    - Dst: close
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 255
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 255
    functionName: nl::Inet::TunEndPoint::IsInterfaceUp
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 0
    functionsReached:
    - LOCK_TCPIP_CORE
    - netif_is_up
    - nl::Inet::TunEndPoint::TunGetInterface
    - ioctl
    - memset
    - ExitNow
    - close
    - socket
    - UNLOCK_TCPIP_CORE
    linkageType: ''
    returnType: bool
    signature: TunEndPoint::IsInterfaceUp (void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:269,1
    - Dst: netif_set_up
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:271,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:274,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:276,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:283,1
    - Dst: nl::Inet::TunEndPoint::TunGetInterface
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:286,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:288,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:288,1
    - Dst: socket
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:291,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:294,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:294,1
    - Dst: ioctl
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:298,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:300,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:300,1
    - Dst: ioctl
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:305,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:307,1
    - Dst: ioctl
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:312,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:314,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:314,1
    - Dst: close
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:323,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 328
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 328
    functionName: nl::Inet::TunEndPoint::InterfaceUp
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 0
    functionsReached:
    - LOCK_TCPIP_CORE
    - nl::Inet::TunEndPoint::TunGetInterface
    - ioctl
    - memset
    - ExitNow
    - close
    - socket
    - UNLOCK_TCPIP_CORE
    - nl::Weave::System::MapErrorPOSIX
    - netif_set_up
    linkageType: ''
    returnType: INET_ERROR
    signature: TunEndPoint::InterfaceUp (void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:346,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:349,1
    - Dst: netif_set_down
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:351,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:354,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:356,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:360,1
    - Dst: nl::Inet::TunEndPoint::TunGetInterface
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:363,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:365,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:365,1
    - Dst: socket
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:368,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:371,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:371,1
    - Dst: ioctl
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:375,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:377,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:377,1
    - Dst: ioctl
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:382,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:384,1
    - Dst: close
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:392,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 397
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 397
    functionName: nl::Inet::TunEndPoint::InterfaceDown
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 0
    functionsReached:
    - LOCK_TCPIP_CORE
    - nl::Inet::TunEndPoint::TunGetInterface
    - ioctl
    - ExitNow
    - memset
    - netif_set_down
    - close
    - socket
    - UNLOCK_TCPIP_CORE
    - nl::Weave::System::MapErrorPOSIX
    linkageType: ''
    returnType: INET_ERROR
    signature: TunEndPoint::InterfaceDown (void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InterfaceNameToId
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 423
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 423
    functionName: nl::Inet::TunEndPoint::GetTunnelInterfaceId
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 0
    functionsReached:
    - InterfaceNameToId
    linkageType: ''
    returnType: InterfaceId
    signature: TunEndPoint::GetTunnelInterfaceId(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:434,1
    - Dst: tcpip_input
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:443,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:445,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:446,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - msg
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 451
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 451
    functionName: nl::Inet::TunEndPoint::TunDevSendMessage
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - nl::Weave::System::MapErrorLwIP
    - VerifyOrExit
    - ExitNow
    - tcpip_input
    linkageType: ''
    returnType: INET_ERROR
    signature: TunEndPoint::TunDevSendMessage(PacketBuffer *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:463,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:465,1
    - Dst: write
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:467,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:467,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:470,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:470,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:472,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:474,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - msg
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 484
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 484
    functionName: nl::Inet::TunEndPoint::TunDevSendMessage
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 1
    functionsReached:
    - PacketBuffer*::DataLength
    - write
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - ExitNow
    - PacketBuffer*::Start
    - nl::Weave::System::MapErrorPOSIX
    linkageType: ''
    returnType: INET_ERROR
    signature: TunEndPoint::TunDevSendMessage(PacketBuffer *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:494,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:498,1
    - Dst: IP6H_V
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:502,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - msg
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 515
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 515
    functionName: nl::Inet::TunEndPoint::CheckV6Sanity
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 1
    functionsReached:
    - IP6H_V
    - VerifyOrExit
    - ExitNow
    - PacketBuffer*::Start
    linkageType: ''
    returnType: INET_ERROR
    signature: TunEndPoint::CheckV6Sanity (PacketBuffer *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TunEndPoint::CheckV6Sanity
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:524,1
    - Dst: OnPacketReceived
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:527,1
    - Dst: OnReceiveError
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:533,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:536,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:541,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - msg
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 543
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 543
    functionName: nl::Inet::TunEndPoint::HandleDataReceived
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 0
    functionsReached:
    - OnPacketReceived
    - nl::Inet::TunEndPoint::CheckV6Sanity
    - nl::Weave::System::PacketBuffer::Free
    - OnReceiveError
    linkageType: ''
    returnType: void
    signature: TunEndPoint::HandleDataReceived (PacketBuffer *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TunEndPoint *>
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:550,1
    - Dst: TunEndPoint*::SystemLayer
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:551,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:557,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:558,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:560,1
    - Dst: pbuf_copy
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:565,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:566,1
    - Dst: PostEvent
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:568,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:569,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - netif
    - p
    argTypes:
    - struct netif*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 580
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 580
    functionName: nl::Inet::TunEndPoint::LwIPPostToInetEventQ
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 0
    functionsReached:
    - TunEndPoint*::SystemLayer
    - PacketBuffer*::SetDataLength
    - pbuf_copy
    - nl::Weave::System::PacketBuffer::Free
    - static_cast<TunEndPoint *>
    - PostEvent
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    linkageType: ''
    returnType: err_t
    signature: TunEndPoint::LwIPPostToInetEventQ (struct netif *netif, struct pbuf
      *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:587,1
    - Dst: nl::Inet::TunEndPoint::LwIPPostToInetEventQ
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - netif
    - p
    - addr
    argTypes:
    - struct netif*
    - struct pbuf*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 590
      start: 585
    functionDepth: 2
    functionLinenumber: 585
    functionLinenumberEnd: 590
    functionName: nl::Inet::TunEndPoint::LwIPOutputIPv4
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - nl::Inet::TunEndPoint::LwIPPostToInetEventQ
    linkageType: ''
    returnType: err_t
    signature: TunEndPoint::LwIPOutputIPv4(struct netif *netif, struct pbuf *p, const
      ip4_addr_t *addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:597,1
    - Dst: nl::Inet::TunEndPoint::LwIPPostToInetEventQ
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - netif
    - p
    - addr
    argTypes:
    - struct netif*
    - struct pbuf*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 600
      start: 595
    functionDepth: 2
    functionLinenumber: 595
    functionLinenumberEnd: 600
    functionName: nl::Inet::TunEndPoint::LwIPOutputIPv6
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - nl::Inet::TunEndPoint::LwIPPostToInetEventQ
    linkageType: ''
    returnType: err_t
    signature: TunEndPoint::LwIPOutputIPv6(struct netif *netif, struct pbuf *p, const
      ip6_addr_t *addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:606,1
    - Dst: nl::Inet::TunEndPoint::LwIPPostToInetEventQ
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - netif
    - p
    - addr
    argTypes:
    - struct netif*
    - struct pbuf*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 609
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 609
    functionName: nl::Inet::TunEndPoint::LwIPReceiveTunMessage
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - nl::Inet::TunEndPoint::LwIPPostToInetEventQ
    linkageType: ''
    returnType: err_t
    signature: TunEndPoint::LwIPReceiveTunMessage (struct netif *netif, struct pbuf
      *p, ip4_addr_t *addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:614,1
    - Dst: nl::Inet::TunEndPoint::LwIPPostToInetEventQ
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - netif
    - p
    - addr
    argTypes:
    - struct netif*
    - struct pbuf*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 617
      start: 612
    functionDepth: 2
    functionLinenumber: 612
    functionLinenumberEnd: 617
    functionName: nl::Inet::TunEndPoint::LwIPReceiveTunV6Message
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - nl::Inet::TunEndPoint::LwIPPostToInetEventQ
    linkageType: ''
    returnType: err_t
    signature: TunEndPoint::LwIPReceiveTunV6Message (struct netif *netif, struct pbuf
      *p, ip6_addr_t *addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 653
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 653
    functionName: nl::Inet::TunEndPoint::TunInterfaceNetifInit
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: err_t
    signature: TunEndPoint::TunInterfaceNetifInit (struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:665,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:667,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:667,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:673,1
    - Dst: strncpy
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:679,1
    - Dst: ioctl
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:682,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:684,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:684,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:688,1
    - Dst: nl::Inet::TunEndPoint::TunGetInterface
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:689,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:691,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:691,1
    - Dst: strncpy
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:697,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:702,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:702,1
    - Dst: nl::Inet::TunEndPoint::TunDevClose
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:709,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - intfName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 713
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 713
    functionName: nl::Inet::TunEndPoint::TunDevOpen
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 1
    functionsReached:
    - open
    - nl::Inet::TunEndPoint::TunGetInterface
    - ioctl
    - strncpy
    - memset
    - ExitNow
    - nl::Inet::TunEndPoint::TunDevClose
    - nl::Weave::System::MapErrorPOSIX
    linkageType: ''
    returnType: INET_ERROR
    signature: TunEndPoint::TunDevOpen (const char *intfName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:720,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 723
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 723
    functionName: nl::Inet::TunEndPoint::TunDevClose
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 2
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: TunEndPoint::TunDevClose (void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - ifr
    argTypes:
    - int
    - struct ::ifreq*
    constantsTouched: []
    func_position:
      end: 730
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 730
    functionName: nl::Inet::TunEndPoint::TunGetInterface
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 4
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: int
    signature: "TunEndPoint::TunGetInterface (int fd,\n                                  struct
      ::ifreq *ifr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:738,1
    - Dst: read
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:740,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:740,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:743,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:745,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:751,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - msg
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 755
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 755
    functionName: nl::Inet::TunEndPoint::TunDevRead
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::MapErrorPOSIX
    - PacketBuffer*::Start
    - read
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: INET_ERROR
    signature: TunEndPoint::TunDevRead (PacketBuffer *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SocketEvents::SetRead
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:764,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 768
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 768
    functionName: nl::Inet::TunEndPoint::PrepareIO
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 0
    functionsReached:
    - SocketEvents::SetRead
    linkageType: ''
    returnType: SocketEvents
    signature: TunEndPoint::PrepareIO ()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsReadable
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:775,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:778,1
    - Dst: nl::Inet::TunEndPoint::TunDevRead
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:783,1
    - Dst: nl::Inet::TunEndPoint::CheckV6Sanity
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:786,1
    - Dst: OnPacketReceived
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:796,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:800,1
    - Dst: OnReceiveError
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:803,1
    - Dst: Clear
      Src: /src/openweave-core/src/inet/TunEndPoint.cpp:808,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 809
      start: 771
    functionDepth: 2
    functionLinenumber: 771
    functionLinenumberEnd: 809
    functionName: nl::Inet::TunEndPoint::HandlePendingIO
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - OnReceiveError
    - OnPacketReceived
    - nl::Inet::TunEndPoint::CheckV6Sanity
    - Clear
    - nl::Inet::TunEndPoint::TunDevRead
    - IsReadable
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: TunEndPoint::HandlePendingIO ()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: '& InetLayerBasis::Layer(void) const'
    functionSourceFile: /src/openweave-core/src/inet/InetLayerBasis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: InetLayer
    signature: '& InetLayerBasis::Layer(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' aInetLayer'
    argTypes:
    - InetLayer
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: nl::Inet::InetLayerBasis::IsCreatedByInetLayer
    functionSourceFile: /src/openweave-core/src/inet/InetLayerBasis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: InetLayerBasis::IsCreatedByInetLayer(const InetLayer& aInetLayer) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' aInetLayer'
    - aAppState
    argTypes:
    - InetLayer
    - void*
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: nl::Inet::InetLayerBasis::InitInetLayerBasis
    functionSourceFile: /src/openweave-core/src/inet/InetLayerBasis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: InetLayerBasis::InitInetLayerBasis(InetLayer& aInetLayer, void* aAppState)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: nl::Inet::SocketEvents::SocketEvents
    functionSourceFile: /src/openweave-core/src/inet/InetLayerBasis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SocketEvents()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - SocketEvents
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: nl::Inet::SocketEvents::SocketEvents
    functionSourceFile: /src/openweave-core/src/inet/InetLayerBasis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SocketEvents(const SocketEvents& other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: nl::Inet::SocketEvents::IsSet
    functionSourceFile: /src/openweave-core/src/inet/InetLayerBasis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsSet() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: nl::Inet::SocketEvents::IsReadable
    functionSourceFile: /src/openweave-core/src/inet/InetLayerBasis.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsReadable() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: nl::Inet::SocketEvents::IsWriteable
    functionSourceFile: /src/openweave-core/src/inet/InetLayerBasis.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsWriteable() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: nl::Inet::SocketEvents::IsError
    functionSourceFile: /src/openweave-core/src/inet/InetLayerBasis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsError() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: nl::Inet::SocketEvents::SetRead
    functionSourceFile: /src/openweave-core/src/inet/InetLayerBasis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetRead()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: nl::Inet::SocketEvents::SetWrite
    functionSourceFile: /src/openweave-core/src/inet/InetLayerBasis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetWrite()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: nl::Inet::SocketEvents::SetError
    functionSourceFile: /src/openweave-core/src/inet/InetLayerBasis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetError()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: nl::Inet::SocketEvents::Clear
    functionSourceFile: /src/openweave-core/src/inet/InetLayerBasis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: nl::Inet::SocketEvents::ClearRead
    functionSourceFile: /src/openweave-core/src/inet/InetLayerBasis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ClearRead()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: nl::Inet::SocketEvents::ClearWrite
    functionSourceFile: /src/openweave-core/src/inet/InetLayerBasis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ClearWrite()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: nl::Inet::SocketEvents::ClearError
    functionSourceFile: /src/openweave-core/src/inet/InetLayerBasis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ClearError()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 155
    functionName: nl::Inet::IPEndPointBasis
    functionSourceFile: /src/openweave-core/src/inet/IPEndPointBasis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: IPEndPointBasis
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - aInterfaceId
    argTypes:
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 174
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 174
    functionName: nl::Inet::IPEndPointBasis::FindNetifFromInterfaceId
    functionSourceFile: /src/openweave-core/src/inet/IPEndPointBasis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct netif
    signature: '*IPEndPointBasis::FindNetifFromInterfaceId(InterfaceId aInterfaceId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetStatistics
      Src: /src/openweave-core/src/inet/InetLayer.cpp:96,1
    - Dst: GetStatistics
      Src: /src/openweave-core/src/inet/InetLayer.cpp:100,1
    - Dst: GetStatistics
      Src: /src/openweave-core/src/inet/InetLayer.cpp:104,1
    - Dst: GetStatistics
      Src: /src/openweave-core/src/inet/InetLayer.cpp:108,1
    - Dst: GetStatistics
      Src: /src/openweave-core/src/inet/InetLayer.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - aSnapshot
    argTypes:
    - nl::Weave::System::Stats::Snapshot
    constantsTouched: []
    func_position:
      end: 115
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 115
    functionName: nl::Inet::InetLayer::UpdateSnapshot
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - GetStatistics
    linkageType: ''
    returnType: void
    signature: InetLayer::UpdateSnapshot(nl::Weave::System::Stats::Snapshot &aSnapshot)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: nl::Inet::InetLayer::InitQueueLimiter
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: INET_ERROR
    signature: InetLayer::InitQueueLimiter(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __sync_add_and_fetch
      Src: /src/openweave-core/src/inet/InetLayer.cpp:154,1
    - Dst: __sync_add_and_fetch
      Src: /src/openweave-core/src/inet/InetLayer.cpp:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 163
    functionName: nl::Inet::InetLayer::CanEnqueueDroppableEvent
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - __sync_add_and_fetch
    linkageType: ''
    returnType: bool
    signature: InetLayer::CanEnqueueDroppableEvent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __sync_add_and_fetch
      Src: /src/openweave-core/src/inet/InetLayer.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: nl::Inet::InetLayer::DroppableEventDequeued
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - __sync_add_and_fetch
    linkageType: ''
    returnType: void
    signature: InetLayer::DroppableEventDequeued(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xSemaphoreCreateCountingStatic
      Src: /src/openweave-core/src/inet/InetLayer.cpp:178,1
    - Dst: xSemaphoreCreateCounting
      Src: /src/openweave-core/src/inet/InetLayer.cpp:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 187
    functionName: nl::Inet::InetLayer::InitQueueLimiter
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - xSemaphoreCreateCountingStatic
    - xSemaphoreCreateCounting
    linkageType: ''
    returnType: INET_ERROR
    signature: InetLayer::InitQueueLimiter(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xSemaphoreTake
      Src: /src/openweave-core/src/inet/InetLayer.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 196
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 196
    functionName: nl::Inet::InetLayer::CanEnqueueDroppableEvent
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - xSemaphoreTake
    linkageType: ''
    returnType: bool
    signature: InetLayer::CanEnqueueDroppableEvent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xSemaphoreGive
      Src: /src/openweave-core/src/inet/InetLayer.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: nl::Inet::InetLayer::DroppableEventDequeued
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - xSemaphoreGive
    linkageType: ''
    returnType: void
    signature: InetLayer::DroppableEventDequeued(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sem_init
      Src: /src/openweave-core/src/inet/InetLayer.cpp:207,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/InetLayer.cpp:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: nl::Inet::InetLayer::InitQueueLimiter
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::MapErrorPOSIX
    - sem_init
    linkageType: ''
    returnType: INET_ERROR
    signature: InetLayer::InitQueueLimiter(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sem_trywait
      Src: /src/openweave-core/src/inet/InetLayer.cpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 227
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 227
    functionName: nl::Inet::InetLayer::CanEnqueueDroppableEvent
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - sem_trywait
    linkageType: ''
    returnType: bool
    signature: InetLayer::CanEnqueueDroppableEvent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sem_post
      Src: /src/openweave-core/src/inet/InetLayer.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: nl::Inet::InetLayer::DroppableEventDequeued
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - sem_post
    linkageType: ''
    returnType: void
    signature: InetLayer::DroppableEventDequeued(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterInetLayerErrorFormatter
      Src: /src/openweave-core/src/inet/InetLayer.cpp:274,1
    - Dst: nl::Inet::Platform::InetLayer::WillInit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:285,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:286,1
    - Dst: nl::Inet::InetLayer::Init
      Src: /src/openweave-core/src/inet/InetLayer.cpp:291,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:292,1
    - Dst: nl::Inet::InetLayer::InitQueueLimiter
      Src: /src/openweave-core/src/inet/InetLayer.cpp:300,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:301,1
    - Dst: AddEventHandlerDelegate
      Src: /src/openweave-core/src/inet/InetLayer.cpp:303,1
    - Dst: nl::Inet::InetLayer::Init
      Src: /src/openweave-core/src/inet/InetLayer.cpp:311,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:312,1
    - Dst: nl::Inet::Platform::InetLayer::DidInit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:318,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - ' aSystemLayer'
    - aContext
    argTypes:
    - Weave::System::Layer
    - void*
    constantsTouched: []
    func_position:
      end: 320
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 320
    functionName: nl::Inet::InetLayer::Init
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 1
    functionsReached:
    - AddEventHandlerDelegate
    - SuccessOrExit
    - nl::Inet::InetLayer::InitQueueLimiter
    - nl::Inet::InetLayer::Init
    - RegisterInetLayerErrorFormatter
    - nl::Inet::Platform::InetLayer::WillInit
    - nl::Inet::Platform::InetLayer::DidInit
    linkageType: ''
    returnType: INET_ERROR
    signature: InetLayer::Init(Weave::System::Layer& aSystemLayer, void *aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::Platform::InetLayer::WillShutdown
      Src: /src/openweave-core/src/inet/InetLayer.cpp:341,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:342,1
    - Dst: Size
      Src: /src/openweave-core/src/inet/InetLayer.cpp:348,1
    - Dst: Get
      Src: /src/openweave-core/src/inet/InetLayer.cpp:350,1
    - Dst: DNSResolver*::IsCreatedByInetLayer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:351,1
    - Dst: DNSResolver*::Cancel
      Src: /src/openweave-core/src/inet/InetLayer.cpp:353,1
    - Dst: nl::Inet::InetLayer::Shutdown
      Src: /src/openweave-core/src/inet/InetLayer.cpp:359,1
    - Dst: Size
      Src: /src/openweave-core/src/inet/InetLayer.cpp:366,1
    - Dst: Get
      Src: /src/openweave-core/src/inet/InetLayer.cpp:368,1
    - Dst: RawEndPoint*::IsCreatedByInetLayer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:369,1
    - Dst: RawEndPoint*::Close
      Src: /src/openweave-core/src/inet/InetLayer.cpp:371,1
    - Dst: Size
      Src: /src/openweave-core/src/inet/InetLayer.cpp:378,1
    - Dst: Get
      Src: /src/openweave-core/src/inet/InetLayer.cpp:380,1
    - Dst: TCPEndPoint*::IsCreatedByInetLayer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:381,1
    - Dst: TCPEndPoint*::Abort
      Src: /src/openweave-core/src/inet/InetLayer.cpp:383,1
    - Dst: Size
      Src: /src/openweave-core/src/inet/InetLayer.cpp:390,1
    - Dst: Get
      Src: /src/openweave-core/src/inet/InetLayer.cpp:392,1
    - Dst: UDPEndPoint*::IsCreatedByInetLayer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:393,1
    - Dst: UDPEndPoint*::Close
      Src: /src/openweave-core/src/inet/InetLayer.cpp:395,1
    - Dst: nl::Inet::InetLayer::Shutdown
      Src: /src/openweave-core/src/inet/InetLayer.cpp:403,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:404,1
    - Dst: nl::Inet::Platform::InetLayer::DidShutdown
      Src: /src/openweave-core/src/inet/InetLayer.cpp:413,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 416
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 416
    functionName: nl::Inet::InetLayer::Shutdown
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 1
    functionsReached:
    - Size
    - RawEndPoint*::IsCreatedByInetLayer
    - TCPEndPoint*::Abort
    - DNSResolver*::Cancel
    - nl::Inet::Platform::InetLayer::DidShutdown
    - nl::Inet::Platform::InetLayer::WillShutdown
    - UDPEndPoint*::Close
    - UDPEndPoint*::IsCreatedByInetLayer
    - nl::Inet::InetLayer::Shutdown
    - Get
    - SuccessOrExit
    - RawEndPoint*::Close
    - TCPEndPoint*::IsCreatedByInetLayer
    - DNSResolver*::IsCreatedByInetLayer
    linkageType: ''
    returnType: INET_ERROR
    signature: InetLayer::Shutdown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: nl::Inet::InetLayer::GetPlatformData
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*InetLayer::GetPlatformData(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aPlatformData
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 441
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 441
    functionName: nl::Inet::InetLayer::SetPlatformData
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: InetLayer::SetPlatformData(void *aPlatformData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Size
      Src: /src/openweave-core/src/inet/InetLayer.cpp:449,1
    - Dst: Get
      Src: /src/openweave-core/src/inet/InetLayer.cpp:451,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 461
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 461
    functionName: nl::Inet::InetLayer::IsIdleTimerRunning
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - Get
    - Size
    linkageType: ''
    returnType: bool
    signature: InetLayer::IsIdleTimerRunning(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_isvalid
      Src: /src/openweave-core/src/inet/InetLayer.cpp:502,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/src/inet/InetLayer.cpp:502,1
    - Dst: ip6_addr_islinklocal
      Src: /src/openweave-core/src/inet/InetLayer.cpp:502,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/src/inet/InetLayer.cpp:502,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/inet/InetLayer.cpp:504,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/src/inet/InetLayer.cpp:504,1
    - Dst: getifaddrs
      Src: /src/openweave-core/src/inet/InetLayer.cpp:518,1
    - Dst: if_nametoindex
      Src: /src/openweave-core/src/inet/InetLayer.cpp:528,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/inet/InetLayer.cpp:533,1
    - Dst: freeifaddrs
      Src: /src/openweave-core/src/inet/InetLayer.cpp:540,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 44
    argCount: 2
    argNames:
    - link
    - llAddr
    argTypes:
    - InterfaceId
    - IPAddress*
    constantsTouched: []
    func_position:
      end: 550
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 550
    functionName: nl::Inet::InetLayer::GetLinkLocalAddr
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - getifaddrs
    - netif_ip6_addr
    - ip6_addr_islinklocal
    - nl::Inet::IPAddress::FromIPv6
    - if_nametoindex
    - freeifaddrs
    - ip6_addr_isvalid
    - netif_ip6_addr_state
    linkageType: ''
    returnType: INET_ERROR
    signature: InetLayer::GetLinkLocalAddr(InterfaceId link, IPAddress *llAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:579,1
    - Dst: TryCreate
      Src: /src/openweave-core/src/inet/InetLayer.cpp:581,1
    - Dst: nl::Inet::RawEndPoint::Init
      Src: /src/openweave-core/src/inet/InetLayer.cpp:584,1
    - Dst: SYSTEM_STATS_INCREMENT
      Src: /src/openweave-core/src/inet/InetLayer.cpp:585,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/InetLayer.cpp:589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - ipVer
    - ipProto
    - retEndPoint
    argTypes:
    - IPVersion
    - IPProtocol
    - RawEndPoint**
    constantsTouched: []
    func_position:
      end: 595
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 595
    functionName: nl::Inet::InetLayer::NewRawEndPoint
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - SYSTEM_STATS_INCREMENT
    - nl::Inet::RawEndPoint::Init
    - VerifyOrExit
    - TryCreate
    linkageType: ''
    returnType: INET_ERROR
    signature: InetLayer::NewRawEndPoint(IPVersion ipVer, IPProtocol ipProto, RawEndPoint
      **retEndPoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:621,1
    - Dst: TryCreate
      Src: /src/openweave-core/src/inet/InetLayer.cpp:623,1
    - Dst: nl::Inet::InetLayer::Init
      Src: /src/openweave-core/src/inet/InetLayer.cpp:626,1
    - Dst: SYSTEM_STATS_INCREMENT
      Src: /src/openweave-core/src/inet/InetLayer.cpp:627,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/InetLayer.cpp:631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - retEndPoint
    argTypes:
    - TCPEndPoint**
    constantsTouched: []
    func_position:
      end: 637
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 637
    functionName: nl::Inet::InetLayer::NewTCPEndPoint
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - SYSTEM_STATS_INCREMENT
    - VerifyOrExit
    - nl::Inet::InetLayer::Init
    - TryCreate
    linkageType: ''
    returnType: INET_ERROR
    signature: InetLayer::NewTCPEndPoint(TCPEndPoint **retEndPoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:663,1
    - Dst: TryCreate
      Src: /src/openweave-core/src/inet/InetLayer.cpp:665,1
    - Dst: nl::Inet::InetLayer::Init
      Src: /src/openweave-core/src/inet/InetLayer.cpp:668,1
    - Dst: SYSTEM_STATS_INCREMENT
      Src: /src/openweave-core/src/inet/InetLayer.cpp:669,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/InetLayer.cpp:673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - retEndPoint
    argTypes:
    - UDPEndPoint**
    constantsTouched: []
    func_position:
      end: 679
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 679
    functionName: nl::Inet::InetLayer::NewUDPEndPoint
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - SYSTEM_STATS_INCREMENT
    - VerifyOrExit
    - nl::Inet::InetLayer::Init
    - TryCreate
    linkageType: ''
    returnType: INET_ERROR
    signature: InetLayer::NewUDPEndPoint(UDPEndPoint **retEndPoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:705,1
    - Dst: TryCreate
      Src: /src/openweave-core/src/inet/InetLayer.cpp:707,1
    - Dst: nl::Inet::InetLayer::Init
      Src: /src/openweave-core/src/inet/InetLayer.cpp:710,1
    - Dst: SYSTEM_STATS_INCREMENT
      Src: /src/openweave-core/src/inet/InetLayer.cpp:711,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/InetLayer.cpp:715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - retEndPoint
    argTypes:
    - TunEndPoint**
    constantsTouched: []
    func_position:
      end: 721
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 721
    functionName: nl::Inet::InetLayer::NewTunEndPoint
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - SYSTEM_STATS_INCREMENT
    - VerifyOrExit
    - nl::Inet::InetLayer::Init
    - TryCreate
    linkageType: ''
    returnType: INET_ERROR
    signature: InetLayer::NewTunEndPoint(TunEndPoint **retEndPoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InetLayer::ResolveHostAddress
      Src: /src/openweave-core/src/inet/InetLayer.cpp:769,1
    - Dst: strlen
      Src: /src/openweave-core/src/inet/InetLayer.cpp:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - hostName
    - maxAddrs
    - addrArray
    - onComplete
    - appState
    argTypes:
    - char*
    - uint8_t
    - IPAddress*
    - DNSResolveCompleteFunct
    - void*
    constantsTouched: []
    func_position:
      end: 770
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 770
    functionName: nl::Inet::InetLayer::ResolveHostAddress
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 1
    functionsReached:
    - strlen
    - nl::Inet::InetLayer::ResolveHostAddress
    linkageType: ''
    returnType: INET_ERROR
    signature: "InetLayer::ResolveHostAddress(const char *hostName, uint8_t maxAddrs,\n
      \                                        IPAddress *addrArray,\n                                         DNSResolveCompleteFunct
      onComplete, void *appState)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InetLayer::ResolveHostAddress
      Src: /src/openweave-core/src/inet/InetLayer.cpp:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - hostName
    - hostNameLen
    - maxAddrs
    - addrArray
    - onComplete
    - appState
    argTypes:
    - char*
    - uint16_t
    - uint8_t
    - IPAddress*
    - DNSResolveCompleteFunct
    - void*
    constantsTouched: []
    func_position:
      end: 815
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 815
    functionName: nl::Inet::InetLayer::ResolveHostAddress
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 2
    functionsReached:
    - nl::Inet::InetLayer::ResolveHostAddress
    linkageType: ''
    returnType: INET_ERROR
    signature: "InetLayer::ResolveHostAddress(const char *hostName, uint16_t hostNameLen,\n
      \                                        uint8_t maxAddrs, IPAddress *addrArray,\n
      \                                        DNSResolveCompleteFunct onComplete,
      void *appState)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:874,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:879,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:880,1
    - Dst: TryCreate
      Src: /src/openweave-core/src/inet/InetLayer.cpp:882,1
    - Dst: DNSResolver*::InitInetLayerBasis
      Src: /src/openweave-core/src/inet/InetLayer.cpp:885,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/InetLayer.cpp:889,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/InetLayer.cpp:890,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/inet/InetLayer.cpp:895,1
    - Dst: IPAddress*::Type
      Src: /src/openweave-core/src/inet/InetLayer.cpp:898,1
    - Dst: onComplete
      Src: /src/openweave-core/src/inet/InetLayer.cpp:911,1
    - Dst: DNSResolver*::Release
      Src: /src/openweave-core/src/inet/InetLayer.cpp:914,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/InetLayer.cpp:917,1
    - Dst: PrepareDNSResolver
      Src: /src/openweave-core/src/inet/InetLayer.cpp:927,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:929,1
    - Dst: EnqueueRequest
      Src: /src/openweave-core/src/inet/InetLayer.cpp:931,1
    - Dst: DNSResolver*::Resolve
      Src: /src/openweave-core/src/inet/InetLayer.cpp:936,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 7
    argNames:
    - hostName
    - hostNameLen
    - options
    - maxAddrs
    - addrArray
    - onComplete
    - appState
    argTypes:
    - char*
    - uint16_t
    - uint8_t
    - uint8_t
    - IPAddress*
    - DNSResolveCompleteFunct
    - void*
    constantsTouched: []
    func_position:
      end: 941
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 941
    functionName: nl::Inet::InetLayer::ResolveHostAddress
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 2
    functionsReached:
    - WeaveLogError
    - PrepareDNSResolver
    - IPAddress*::Type
    - DNSResolver*::Resolve
    - VerifyOrExit
    - ExitNow
    - nl::Inet::IPAddress::FromString
    - EnqueueRequest
    - DNSResolver*::InitInetLayerBasis
    - SuccessOrExit
    - onComplete
    - TryCreate
    - DNSResolver*::Release
    linkageType: ''
    returnType: INET_ERROR
    signature: "InetLayer::ResolveHostAddress(const char *hostName, uint16_t hostNameLen,\n
      \                                        uint8_t options,\n                                         uint8_t
      maxAddrs, IPAddress *addrArray,\n                                         DNSResolveCompleteFunct
      onComplete, void *appState)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Size
      Src: /src/openweave-core/src/inet/InetLayer.cpp:964,1
    - Dst: Get
      Src: /src/openweave-core/src/inet/InetLayer.cpp:966,1
    - Dst: DNSResolver*::IsCreatedByInetLayer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:973,1
    - Dst: DNSResolver*::Cancel
      Src: /src/openweave-core/src/inet/InetLayer.cpp:995,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 2
    argNames:
    - onComplete
    - appState
    argTypes:
    - DNSResolveCompleteFunct
    - void*
    constantsTouched: []
    func_position:
      end: 998
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 998
    functionName: nl::Inet::InetLayer::CancelResolveHostAddress
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - DNSResolver*::Cancel
    - Get
    - DNSResolver*::IsCreatedByInetLayer
    - Size
    linkageType: ''
    returnType: void
    signature: InetLayer::CancelResolveHostAddress(DNSResolveCompleteFunct onComplete,
      void *appState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<Weave::System::Timer*>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1005,1
    - Dst: nl::Inet::InetLayer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1006,1
    - Dst: reinterpret_cast<InetLayer::TimerCompleteFunct>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1007,1
    - Dst: OnCompleteInetLayer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1007,1
    - Dst: lComplete
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1010,1
    - Dst: static_cast<INET_ERROR>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aLayer
    - aAppState
    - aError
    argTypes:
    - Weave::System::Layer*
    - void*
    - Weave::System::Error
    constantsTouched: []
    func_position:
      end: 1011
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1011
    functionName: nl::Inet::SystemTimerComplete
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<INET_ERROR>
    - reinterpret_cast<Weave::System::Timer*>
    - lComplete
    - reinterpret_cast<InetLayer::TimerCompleteFunct>
    - nl::Inet::InetLayer
    - OnCompleteInetLayer
    linkageType: ''
    returnType: void
    signature: SystemTimerComplete(Weave::System::Layer* aLayer, void* aAppState,
      Weave::System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewTimer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1048,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1049,1
    - Dst: Weave::System::Timer*::AttachInetLayer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1051,1
    - Dst: reinterpret_cast<void*>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1051,1
    - Dst: Weave::System::Timer*::Start
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1053,1
    - Dst: Weave::System::Timer*::Cancel
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1057,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - aMilliseconds
    - aComplete
    - aAppState
    argTypes:
    - uint32_t
    - TimerCompleteFunct
    - void*
    constantsTouched: []
    func_position:
      end: 1068
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1068
    functionName: nl::Inet::InetLayer::StartTimer
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - Weave::System::Timer*::Start
    - NewTimer
    - reinterpret_cast<void*>
    - Weave::System::Timer*::AttachInetLayer
    - SuccessOrExit
    - Weave::System::Timer*::Cancel
    linkageType: ''
    returnType: INET_ERROR
    signature: InetLayer::StartTimer(uint32_t aMilliseconds, TimerCompleteFunct aComplete,
      void* aAppState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CancelAllMatchingInetTimers
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1089,1
    - Dst: reinterpret_cast<void*>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1089,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - aComplete
    - aAppState
    argTypes:
    - TimerCompleteFunct
    - void*
    constantsTouched: []
    func_position:
      end: 1091
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1091
    functionName: nl::Inet::InetLayer::CancelTimer
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<void*>
    - CancelAllMatchingInetTimers
    linkageType: ''
    returnType: void
    signature: InetLayer::CancelTimer(TimerCompleteFunct aComplete, void* aAppState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InterfaceAddressIterator::HasCurrent
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1114,1
    - Dst: InterfaceAddressIterator::Next
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1114,1
    - Dst: InterfaceAddressIterator::GetAddress
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1116,1
    - Dst: InterfaceAddressIterator::GetInterface
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' addr'
    - ' intfId'
    argTypes:
    - IPAddress
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 1127
      start: 1110
    functionDepth: 0
    functionLinenumber: 1110
    functionLinenumberEnd: 1127
    functionName: nl::Inet::InetLayer::GetInterfaceFromAddr
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - InterfaceAddressIterator::Next
    - InterfaceAddressIterator::GetInterface
    - InterfaceAddressIterator::HasCurrent
    - InterfaceAddressIterator::GetAddress
    linkageType: ''
    returnType: INET_ERROR
    signature: InetLayer::GetInterfaceFromAddr(const IPAddress& addr, InterfaceId&
      intfId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsIPv6LinkLocal
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1140,1
    - Dst: InterfaceAddressIterator::HasCurrent
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1144,1
    - Dst: InterfaceAddressIterator::Next
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1144,1
    - Dst: InterfaceAddressIterator::GetAddress
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1147,1
    - Dst: IPPrefix::IPAddr::IsIPv4
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1149,1
    - Dst: IPPrefix::IPAddr::IsIPv6LinkLocal
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1152,1
    - Dst: InterfaceAddressIterator::GetIPv6PrefixLength
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1154,1
    - Dst: IPPrefix::MatchAddress
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1155,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - IPAddress
    constantsTouched: []
    func_position:
      end: 1160
      start: 1138
    functionDepth: 0
    functionLinenumber: 1138
    functionLinenumberEnd: 1160
    functionName: nl::Inet::InetLayer::MatchLocalIPv6Subnet
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - IPPrefix::IPAddr::IsIPv6LinkLocal
    - IPPrefix::IPAddr::IsIPv4
    - InterfaceAddressIterator::HasCurrent
    - InterfaceAddressIterator::Next
    - InterfaceAddressIterator::GetAddress
    - InterfaceAddressIterator::GetIPv6PrefixLength
    - IPPrefix::MatchAddress
    - IsIPv6LinkLocal
    linkageType: ''
    returnType: bool
    signature: InetLayer::MatchLocalIPv6Subnet(const IPAddress& addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<InetLayer*>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1165,1
    - Dst: Get
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1170,1
    - Dst: TCPEndPoint*::IsCreatedByInetLayer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1173,1
    - Dst: TCPEndPoint*::IsConnected
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1174,1
    - Dst: TCPEndPoint*::DoClose
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1179,1
    - Dst: Weave::System::Layer*::StartTimer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1189,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - Weave::System::Layer*
    - void*
    - Weave::System::Error
    constantsTouched: []
    func_position:
      end: 1191
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1191
    functionName: nl::Inet::InetLayer::HandleTCPInactivityTimer
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<InetLayer*>
    - TCPEndPoint*::DoClose
    - Weave::System::Layer*::StartTimer
    - Get
    - TCPEndPoint*::IsCreatedByInetLayer
    - TCPEndPoint*::IsConnected
    linkageType: ''
    returnType: void
    signature: InetLayer::HandleTCPInactivityTimer(Weave::System::Layer* aSystemLayer,
      void* aAppState, Weave::System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<InetLayerBasis&>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1199,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1201,1
    - Dst: INET_IsInetEvent
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1201,1
    - Dst: static_cast<TCPEndPoint &>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1208,1
    - Dst: static_cast<INET_ERROR>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1208,1
    - Dst: static_cast<TCPEndPoint &>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1212,1
    - Dst: reinterpret_cast<TCPEndPoint*>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1212,1
    - Dst: static_cast<TCPEndPoint &>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1216,1
    - Dst: reinterpret_cast<Weave::System::PacketBuffer*>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1216,1
    - Dst: static_cast<TCPEndPoint &>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1220,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1220,1
    - Dst: static_cast<TCPEndPoint &>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1224,1
    - Dst: static_cast<INET_ERROR>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1224,1
    - Dst: static_cast<RawEndPoint &>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1230,1
    - Dst: reinterpret_cast<Weave::System::PacketBuffer*>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1230,1
    - Dst: static_cast<UDPEndPoint &>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1236,1
    - Dst: reinterpret_cast<Weave::System::PacketBuffer*>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1236,1
    - Dst: static_cast<TunEndPoint &>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1242,1
    - Dst: reinterpret_cast<Weave::System::PacketBuffer*>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1242,1
    - Dst: static_cast<DNSResolver &>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1248,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1254,1
    - Dst: IsDroppableEvent
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1258,1
    - Dst: Layer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1260,1
    - Dst: nl::Inet::InetLayer::DroppableEventDequeued
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1262,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - ' aTarget'
    - aEventType
    - aArgument
    argTypes:
    - Weave::System::Object
    - Weave::System::EventType
    - uintptr_t
    constantsTouched: []
    func_position:
      end: 1267
      start: 1195
    functionDepth: 1
    functionLinenumber: 1195
    functionLinenumberEnd: 1267
    functionName: nl::Inet::InetLayer::HandleInetLayerEvent
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - reinterpret_cast<TCPEndPoint*>
    - static_cast<INET_ERROR>
    - IsDroppableEvent
    - static_cast<RawEndPoint &>
    - static_cast<UDPEndPoint &>
    - VerifyOrExit
    - ExitNow
    - static_cast<TCPEndPoint &>
    - Layer
    - static_cast<DNSResolver &>
    - static_cast<TunEndPoint &>
    - nl::Inet::InetLayer::DroppableEventDequeued
    - INET_IsInetEvent
    - static_cast<InetLayerBasis&>
    - reinterpret_cast<Weave::System::PacketBuffer*>
    linkageType: ''
    returnType: Weave::System::Error
    signature: "InetLayer::HandleInetLayerEvent(Weave::System::Object& aTarget, Weave::System::EventType
      aEventType,\n    uintptr_t aArgument)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1298,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1299,1
    - Dst: InetLayerBasis*::SystemLayer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1302,1
    - Dst: VerifyOrDieWithMsg
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1304,1
    - Dst: InetLayerBasis*::IsRetained
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1304,1
    - Dst: InetLayerBasis*::Layer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1312,1
    - Dst: VerifyOrDieWithMsg
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1314,1
    - Dst: IsDroppableEvent
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1317,1
    - Dst: nl::Inet::InetLayer::CanEnqueueDroppableEvent
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1317,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1319,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1320,1
    - Dst: nl::Inet::Platform::InetLayer::PostEvent
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1323,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1326,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1326,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1328,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - target
    - type
    - arg
    argTypes:
    - InetLayerBasis*
    - InetEventType
    - uintptr_t
    constantsTouched: []
    func_position:
      end: 1332
      start: 1293
    functionDepth: 1
    functionLinenumber: 1293
    functionLinenumberEnd: 1332
    functionName: nl::Inet::InetLayer::PostEvent
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - IsDroppableEvent
    - nl::Inet::InetLayer::CanEnqueueDroppableEvent
    - WeaveLogProgress
    - VerifyOrExit
    - ExitNow
    - InetLayerBasis*::Layer
    - VerifyOrDieWithMsg
    - InetLayerBasis*::IsRetained
    - SuccessOrExit
    - nl::Inet::Platform::InetLayer::PostEvent
    - ErrorStr
    - InetLayerBasis*::SystemLayer
    linkageType: ''
    returnType: INET_ERROR
    signature: InetLayer::PostEvent(InetLayerBasis *target, InetEventType type, uintptr_t
      arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1348,1
    - Dst: nl::Inet::Platform::InetLayer::DispatchEvents
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1350,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1344
    functionDepth: 1
    functionLinenumber: 1344
    functionLinenumberEnd: 1355
    functionName: nl::Inet::InetLayer::DispatchEvents
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::Platform::InetLayer::DispatchEvents
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: INET_ERROR
    signature: InetLayer::DispatchEvents(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1374,1
    - Dst: nl::Inet::Platform::InetLayer::StartTimer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - inDurMS
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1380
      start: 1370
    functionDepth: 1
    functionLinenumber: 1370
    functionLinenumberEnd: 1380
    functionName: nl::Inet::InetLayer::StartPlatformTimer
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - nl::Inet::Platform::InetLayer::StartTimer
    linkageType: ''
    returnType: INET_ERROR
    signature: InetLayer::StartPlatformTimer(uint32_t inDurMS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1398,1
    - Dst: nl::Inet::InetLayer::HandlePlatformTimer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1400,1
    - Dst: static_cast<INET_ERROR>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1393
    functionDepth: 1
    functionLinenumber: 1393
    functionLinenumberEnd: 1405
    functionName: nl::Inet::InetLayer::HandlePlatformTimer
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 1
    functionsReached:
    - nl::Inet::InetLayer::HandlePlatformTimer
    - VerifyOrExit
    - static_cast<INET_ERROR>
    linkageType: ''
    returnType: INET_ERROR
    signature: InetLayer::HandlePlatformTimer(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Size
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1425,1
    - Dst: Get
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1427,1
    - Dst: RawEndPoint*::IsCreatedByInetLayer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1428,1
    - Dst: RawEndPoint*::PrepareIO
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1429,1
    - Dst: Size
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1434,1
    - Dst: Get
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1436,1
    - Dst: TCPEndPoint*::IsCreatedByInetLayer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1437,1
    - Dst: TCPEndPoint*::PrepareIO
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1438,1
    - Dst: Size
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1443,1
    - Dst: Get
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1445,1
    - Dst: UDPEndPoint*::IsCreatedByInetLayer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1446,1
    - Dst: UDPEndPoint*::PrepareIO
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1447,1
    - Dst: Size
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1452,1
    - Dst: Get
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1454,1
    - Dst: TunEndPoint*::IsCreatedByInetLayer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1455,1
    - Dst: TunEndPoint*::PrepareIO
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1456,1
    - Dst: nl::Inet::InetLayer::PrepareSelect
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1463,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 3
    argNames:
    - pollFDs
    - ' numPollFDs'
    - ' timeoutMS'
    argTypes:
    - struct pollfd*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1466
      start: 1419
    functionDepth: 1
    functionLinenumber: 1419
    functionLinenumberEnd: 1466
    functionName: nl::Inet::InetLayer::PrepareSelect
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 1
    functionsReached:
    - TunEndPoint*::PrepareIO
    - TCPEndPoint*::PrepareIO
    - TunEndPoint*::IsCreatedByInetLayer
    - RawEndPoint*::PrepareIO
    - Size
    - RawEndPoint*::IsCreatedByInetLayer
    - UDPEndPoint*::PrepareIO
    - UDPEndPoint*::IsCreatedByInetLayer
    - Get
    - TCPEndPoint*::IsCreatedByInetLayer
    - nl::Inet::InetLayer::PrepareSelect
    linkageType: ''
    returnType: void
    signature: InetLayer::PrepareSelect(struct pollfd * pollFDs, int& numPollFDs,
      int& timeoutMS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Size
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1495,1
    - Dst: Get
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1497,1
    - Dst: RawEndPoint*::IsCreatedByInetLayer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1498,1
    - Dst: nl::Inet::SocketEvents::FromFDs
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1500,1
    - Dst: Size
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1506,1
    - Dst: Get
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1508,1
    - Dst: TCPEndPoint*::IsCreatedByInetLayer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1509,1
    - Dst: nl::Inet::SocketEvents::FromFDs
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1511,1
    - Dst: Size
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1517,1
    - Dst: Get
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1519,1
    - Dst: UDPEndPoint*::IsCreatedByInetLayer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1520,1
    - Dst: nl::Inet::SocketEvents::FromFDs
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1522,1
    - Dst: Size
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1528,1
    - Dst: Get
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1530,1
    - Dst: TunEndPoint*::IsCreatedByInetLayer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1531,1
    - Dst: nl::Inet::SocketEvents::FromFDs
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1533,1
    - Dst: Size
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1540,1
    - Dst: Get
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1542,1
    - Dst: RawEndPoint*::IsCreatedByInetLayer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1543,1
    - Dst: RawEndPoint*::HandlePendingIO
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1545,1
    - Dst: Size
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1551,1
    - Dst: Get
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1553,1
    - Dst: TCPEndPoint*::IsCreatedByInetLayer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1554,1
    - Dst: TCPEndPoint*::HandlePendingIO
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1556,1
    - Dst: Size
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1562,1
    - Dst: Get
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1564,1
    - Dst: UDPEndPoint*::IsCreatedByInetLayer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1565,1
    - Dst: UDPEndPoint*::HandlePendingIO
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1567,1
    - Dst: Size
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1573,1
    - Dst: Get
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1575,1
    - Dst: TunEndPoint*::IsCreatedByInetLayer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1576,1
    - Dst: TunEndPoint*::HandlePendingIO
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1578,1
    - Dst: nl::Inet::InetLayer::HandleSelectResult
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1586,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 46
    argCount: 2
    argNames:
    - pollFDs
    - numPollFDs
    argTypes:
    - struct pollfd*
    - int
    constantsTouched: []
    func_position:
      end: 1589
      start: 1488
    functionDepth: 1
    functionLinenumber: 1488
    functionLinenumberEnd: 1589
    functionName: nl::Inet::InetLayer::HandleSelectResult
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 1
    functionsReached:
    - nl::Inet::SocketEvents::FromFDs
    - TunEndPoint*::IsCreatedByInetLayer
    - Size
    - RawEndPoint*::IsCreatedByInetLayer
    - nl::Inet::InetLayer::HandleSelectResult
    - UDPEndPoint*::IsCreatedByInetLayer
    - UDPEndPoint*::HandlePendingIO
    - Get
    - RawEndPoint*::HandlePendingIO
    - TCPEndPoint*::IsCreatedByInetLayer
    - TunEndPoint*::HandlePendingIO
    - TCPEndPoint*::HandlePendingIO
    linkageType: ''
    returnType: void
    signature: InetLayer::HandleSelectResult(const struct pollfd * pollFDs, int numPollFDs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1597
    functionDepth: 0
    functionLinenumber: 1597
    functionLinenumberEnd: 1604
    functionName: nl::Inet::IPPacketInfo::Clear
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: IPPacketInfo::Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - aLayer
    - aContext
    argTypes:
    - Inet::InetLayer*
    - void*
    constantsTouched: []
    func_position:
      end: 1637
      start: 1631
    functionDepth: 0
    functionLinenumber: 1631
    functionLinenumberEnd: 1637
    functionName: nl::Inet::Platform::InetLayer::WillInit
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: WillInit(Inet::InetLayer *aLayer, void *aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - aLayer
    - aContext
    - anError
    argTypes:
    - Inet::InetLayer*
    - void*
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 1661
      start: 1654
    functionDepth: 0
    functionLinenumber: 1654
    functionLinenumberEnd: 1661
    functionName: nl::Inet::Platform::InetLayer::DidInit
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: DidInit(Inet::InetLayer *aLayer, void *aContext, INET_ERROR anError)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - aLayer
    - aContext
    argTypes:
    - Inet::InetLayer*
    - void*
    constantsTouched: []
    func_position:
      end: 1685
      start: 1679
    functionDepth: 0
    functionLinenumber: 1679
    functionLinenumberEnd: 1685
    functionName: nl::Inet::Platform::InetLayer::WillShutdown
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: WillShutdown(Inet::InetLayer *aLayer, void *aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - aLayer
    - aContext
    - anError
    argTypes:
    - Inet::InetLayer*
    - void*
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 1709
      start: 1702
    functionDepth: 0
    functionLinenumber: 1702
    functionLinenumberEnd: 1709
    functionName: nl::Inet::Platform::InetLayer::DidShutdown
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: DidShutdown(Inet::InetLayer *aLayer, void *aContext, INET_ERROR anError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Platform::Layer::PostEvent
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1747,1
    - Dst: static_cast<INET_ERROR>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - aInetLayer
    - aContext
    - aTarget
    - aEventType
    - aArgument
    argTypes:
    - Inet::InetLayer*
    - void*
    - InetLayerBasis*
    - InetEventType
    - uintptr_t
    constantsTouched: []
    func_position:
      end: 1751
      start: 1742
    functionDepth: 0
    functionLinenumber: 1742
    functionLinenumberEnd: 1751
    functionName: nl::Inet::Platform::InetLayer::PostEvent
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::System::Platform::Layer::PostEvent
    - static_cast<INET_ERROR>
    linkageType: ''
    returnType: INET_ERROR
    signature: "PostEvent(Inet::InetLayer* aInetLayer, void* aContext, InetLayerBasis*
      aTarget, InetEventType aEventType,\n    uintptr_t aArgument)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Platform::Layer::DispatchEvents
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1781,1
    - Dst: static_cast<INET_ERROR>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aInetLayer
    - aContext
    argTypes:
    - Inet::InetLayer*
    - void*
    constantsTouched: []
    func_position:
      end: 1784
      start: 1778
    functionDepth: 0
    functionLinenumber: 1778
    functionLinenumberEnd: 1784
    functionName: nl::Inet::Platform::InetLayer::DispatchEvents
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::System::Platform::Layer::DispatchEvents
    - static_cast<INET_ERROR>
    linkageType: ''
    returnType: INET_ERROR
    signature: DispatchEvents(Inet::InetLayer* aInetLayer, void* aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Platform::Layer::DispatchEvent
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1818,1
    - Dst: static_cast<INET_ERROR>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aInetLayer
    - aContext
    - aEvent
    argTypes:
    - Inet::InetLayer*
    - void*
    - InetEvent
    constantsTouched: []
    func_position:
      end: 1821
      start: 1815
    functionDepth: 0
    functionLinenumber: 1815
    functionLinenumberEnd: 1821
    functionName: nl::Inet::Platform::InetLayer::DispatchEvent
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Platform::Layer::DispatchEvent
    - static_cast<INET_ERROR>
    linkageType: ''
    returnType: INET_ERROR
    signature: DispatchEvent(Inet::InetLayer* aInetLayer, void* aContext, InetEvent
      aEvent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Platform::Layer::StartTimer
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1839,1
    - Dst: static_cast<INET_ERROR>
      Src: /src/openweave-core/src/inet/InetLayer.cpp:1841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aInetLayer
    - aContext
    - aMilliseconds
    argTypes:
    - Inet::InetLayer*
    - void*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1842
      start: 1836
    functionDepth: 0
    functionLinenumber: 1836
    functionLinenumberEnd: 1842
    functionName: nl::Inet::Platform::InetLayer::StartTimer
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::System::Platform::Layer::StartTimer
    - static_cast<INET_ERROR>
    linkageType: ''
    returnType: INET_ERROR
    signature: StartTimer(Inet::InetLayer* aInetLayer, void* aContext, uint32_t aMilliseconds)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::IsIPv4
      Src: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp:45,1
    - Dst: nl::Inet::IPAddress::ToIPv4
      Src: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp:48,1
    - Dst: ip4addr_ntoa_r
      Src: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp:49,1
    - Dst: nl::Inet::IPAddress::ToIPv4
      Src: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp:51,1
    - Dst: ipaddr_ntoa_r
      Src: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp:52,1
    - Dst: nl::Inet::IPAddress::ToIPv6
      Src: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp:58,1
    - Dst: ip6addr_ntoa_r
      Src: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp:59,1
    - Dst: nl::Inet::IPAddress::IsIPv4
      Src: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp:63,1
    - Dst: inet_ntop
      Src: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp:65,1
    - Dst: inet_ntop
      Src: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 75
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 75
    functionName: nl::Inet::IPAddress::ToString
    functionSourceFile: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::ToIPv6
    - nl::Inet::IPAddress::IsIPv4
    - inet_ntop
    - nl::Inet::IPAddress::ToIPv4
    - ip6addr_ntoa_r
    - ipaddr_ntoa_r
    - ip4addr_ntoa_r
    linkageType: ''
    returnType: char
    signature: '*IPAddress::ToString(char *buf, uint32_t bufSize) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp:80,1
    - Dst: ip4addr_aton
      Src: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp:85,1
    - Dst: ipaddr_aton
      Src: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp:89,1
    - Dst: inet_pton
      Src: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp:94,1
    - Dst: nl::Inet::IPAddress::FromIPv4
      Src: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp:97,1
    - Dst: ip6addr_aton
      Src: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp:104,1
    - Dst: inet_pton
      Src: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp:108,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp:111,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - str
    - ' output'
    argTypes:
    - char*
    - IPAddress
    constantsTouched: []
    func_position:
      end: 115
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 115
    functionName: nl::Inet::IPAddress::FromString
    functionSourceFile: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp
    functionUses: 1
    functionsReached:
    - inet_pton
    - ipaddr_aton
    - nl::Inet::IPAddress::FromIPv6
    - ip6addr_aton
    - strchr
    - ip4addr_aton
    - nl::Inet::IPAddress::FromIPv4
    linkageType: ''
    returnType: bool
    signature: IPAddress::FromString(const char *str, IPAddress& output)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp:124,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - str
    - strLen
    - ' output'
    argTypes:
    - char*
    - size_t
    - IPAddress
    constantsTouched: []
    func_position:
      end: 130
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 130
    functionName: nl::Inet::IPAddress::FromString
    functionSourceFile: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp
    functionUses: 2
    functionsReached:
    - memcpy
    - nl::Inet::IPAddress::FromString
    linkageType: ''
    returnType: bool
    signature: IPAddress::FromString(const char *str, size_t strLen, IPAddress& output)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetNumFaults
      Src: /src/openweave-core/src/inet/InetFaultInjection.cpp:49,1
    - Dst: Init
      Src: /src/openweave-core/src/inet/InetFaultInjection.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: nl::Inet::FaultInjection::GetManager
    functionSourceFile: /src/openweave-core/src/inet/InetFaultInjection.cpp
    functionUses: 0
    functionsReached:
    - Init
    - GetNumFaults
    linkageType: ''
    returnType: nl::FaultInjection::Manager
    signature: '&GetManager(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:96,1
    - Dst: Release
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:111,1
    - Dst: memcpy
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:122,1
    - Dst: WeaveDie
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:155,1
    - Dst: Release
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:167,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:174,1
    - Dst: reinterpret_cast<LWIP_DNS_FOUND_CALLBACK_TYPE>
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:177,1
    - Dst: dns_gethostbyname_addrtype
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:181,1
    - Dst: dns_gethostbyname
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:183,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:187,1
    - Dst: SystemLayer
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:191,1
    - Dst: nl::Inet::IPAddress::FromLwIPAddr
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:194,1
    - Dst: nl::Inet::IPAddress::FromIPv4
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:196,1
    - Dst: PostEvent
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:200,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:204,1
    - Dst: Release
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:205,1
    - Dst: nl::Inet::DNSResolver::InitAddrInfoHints
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:219,1
    - Dst: getaddrinfo
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:222,1
    - Dst: nl::Inet::DNSResolver::ProcessGetAddrInfoResult
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:226,1
    - Dst: onComplete
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:229,1
    - Dst: Release
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:232,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 7
    argNames:
    - hostName
    - hostNameLen
    - options
    - maxAddrs
    - addrArray
    - onComplete
    - appState
    argTypes:
    - char*
    - uint16_t
    - uint8_t
    - uint8_t
    - IPAddress*
    - DNSResolver::OnResolveCompleteFunct
    - void*
    constantsTouched: []
    func_position:
      end: 238
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 238
    functionName: nl::Inet::DNSResolver::Resolve
    functionSourceFile: /src/openweave-core/src/inet/DNSResolver.cpp
    functionUses: 0
    functionsReached:
    - LOCK_TCPIP_CORE
    - reinterpret_cast<LWIP_DNS_FOUND_CALLBACK_TYPE>
    - SystemLayer
    - nl::Inet::DNSResolver::InitAddrInfoHints
    - getaddrinfo
    - dns_gethostbyname
    - nl::Weave::System::MapErrorLwIP
    - PostEvent
    - dns_gethostbyname_addrtype
    - memcpy
    - Release
    - UNLOCK_TCPIP_CORE
    - nl::Inet::IPAddress::FromLwIPAddr
    - onComplete
    - WeaveDie
    - nl::Inet::DNSResolver::ProcessGetAddrInfoResult
    - nl::Inet::IPAddress::FromIPv4
    linkageType: ''
    returnType: INET_ERROR
    signature: "DNSResolver::Resolve(const char *hostName, uint16_t hostNameLen, uint8_t
      options,\n        uint8_t maxAddrs, IPAddress *addrArray,\n        DNSResolver::OnResolveCompleteFunct
      onComplete, void *appState)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:263,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:272,1
    - Dst: Layer
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:280,1
    - Dst: mAsyncDNSResolver::Cancel
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 290
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 290
    functionName: nl::Inet::DNSResolver::Cancel
    functionSourceFile: /src/openweave-core/src/inet/DNSResolver.cpp
    functionUses: 0
    functionsReached:
    - UNLOCK_TCPIP_CORE
    - mAsyncDNSResolver::Cancel
    - LOCK_TCPIP_CORE
    - Layer
    linkageType: ''
    returnType: INET_ERROR
    signature: DNSResolver::Cancel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OnComplete
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:303,1
    - Dst: Release
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 307
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 307
    functionName: nl::Inet::DNSResolver::HandleResolveComplete
    functionSourceFile: /src/openweave-core/src/inet/DNSResolver.cpp
    functionUses: 0
    functionsReached:
    - Release
    - OnComplete
    linkageType: ''
    returnType: void
    signature: DNSResolver::HandleResolveComplete()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DNSResolver*::SystemLayer
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:331,1
    - Dst: nl::Inet::IPAddress::FromLwIPAddr
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:337,1
    - Dst: nl::Inet::IPAddress::FromIPv4
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:339,1
    - Dst: PostEvent
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:344,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - name
    - ipaddr
    - callback_arg
    argTypes:
    - char*
    - ip_addr_t*
    - void*
    constantsTouched: []
    func_position:
      end: 346
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 346
    functionName: nl::Inet::DNSResolver::LwIPHandleResolveComplete
    functionSourceFile: /src/openweave-core/src/inet/DNSResolver.cpp
    functionUses: 0
    functionsReached:
    - DNSResolver*::SystemLayer
    - nl::Inet::IPAddress::FromIPv4
    - nl::Inet::IPAddress::FromLwIPAddr
    - PostEvent
    linkageType: ''
    returnType: void
    signature: DNSResolver::LwIPHandleResolveComplete(const char *name, ip_addr_t
      *ipaddr, void *callback_arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' hints'
    argTypes:
    - struct addrinfo
    constantsTouched: []
    func_position:
      end: 374
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 374
    functionName: nl::Inet::DNSResolver::InitAddrInfoHints
    functionSourceFile: /src/openweave-core/src/inet/DNSResolver.cpp
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: DNSResolver::InitAddrInfoHints(struct addrinfo & hints)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDie
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:415,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:433,1
    - Dst: nl::Inet::DNSResolver::CopyAddresses
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:438,1
    - Dst: nl::Inet::DNSResolver::CopyAddresses
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:444,1
    - Dst: nl::Inet::DNSResolver::CopyAddresses
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:450,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:483,1
    - Dst: freeaddrinfo
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:493,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 2
    argNames:
    - returnCode
    - results
    argTypes:
    - int
    - struct addrinfo*
    constantsTouched: []
    func_position:
      end: 496
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 496
    functionName: nl::Inet::DNSResolver::ProcessGetAddrInfoResult
    functionSourceFile: /src/openweave-core/src/inet/DNSResolver.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::min
    - nl::Inet::DNSResolver::CopyAddresses
    - freeaddrinfo
    - WeaveDie
    - nl::Weave::System::MapErrorPOSIX
    linkageType: ''
    returnType: INET_ERROR
    signature: DNSResolver::ProcessGetAddrInfoResult(int returnCode, struct addrinfo
      * results)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::FromSockAddr
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:506,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - family
    - count
    - addrs
    argTypes:
    - int
    - uint8_t
    - struct addrinfo*
    constantsTouched: []
    func_position:
      end: 510
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 510
    functionName: nl::Inet::DNSResolver::CopyAddresses
    functionSourceFile: /src/openweave-core/src/inet/DNSResolver.cpp
    functionUses: 1
    functionsReached:
    - nl::Inet::IPAddress::FromSockAddr
    linkageType: ''
    returnType: void
    signature: DNSResolver::CopyAddresses(int family, uint8_t count, const struct
      addrinfo * addrs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - family
    - addrs
    argTypes:
    - int
    - struct addrinfo*
    constantsTouched: []
    func_position:
      end: 527
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 527
    functionName: nl::Inet::DNSResolver::CountAddresses
    functionSourceFile: /src/openweave-core/src/inet/DNSResolver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: DNSResolver::CountAddresses(int family, const struct addrinfo * addrs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OnComplete
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:536,1
    - Dst: Release
      Src: /src/openweave-core/src/inet/DNSResolver.cpp:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 540
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 540
    functionName: nl::Inet::DNSResolver::HandleAsyncResolveComplete
    functionSourceFile: /src/openweave-core/src/inet/DNSResolver.cpp
    functionUses: 0
    functionsReached:
    - Release
    - OnComplete
    linkageType: ''
    returnType: void
    signature: DNSResolver::HandleAsyncResolveComplete(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterErrorFormatter
      Src: /src/openweave-core/src/inet/InetError.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: nl::Inet::RegisterInetLayerErrorFormatter
    functionSourceFile: /src/openweave-core/src/inet/InetError.cpp
    functionUses: 0
    functionsReached:
    - RegisterErrorFormatter
    linkageType: ''
    returnType: void
    signature: RegisterInetLayerErrorFormatter(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::FormatError
      Src: /src/openweave-core/src/inet/InetError.cpp:108,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 92
    argCount: 3
    argNames:
    - buf
    - bufSize
    - err
    argTypes:
    - char*
    - uint16_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 111
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 111
    functionName: nl::Inet::FormatInetLayerError
    functionSourceFile: /src/openweave-core/src/inet/InetError.cpp
    functionUses: 0
    functionsReached:
    - nl::FormatError
    linkageType: ''
    returnType: bool
    signature: FormatInetLayerError(char * buf, uint16_t bufSize, int32_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: nl::Inet::IPPrefix::IsZero
    functionSourceFile: /src/openweave-core/src/inet/IPPrefix.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IPPrefix::IsZero() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - IPPrefix
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: IPPrefix::operator==(const IPPrefix& other) const
    functionSourceFile: /src/openweave-core/src/inet/IPPrefix.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IPPrefix::operator==(const IPPrefix& other) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - IPPrefix
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: IPPrefix::operator!=(const IPPrefix& other) const
    functionSourceFile: /src/openweave-core/src/inet/IPPrefix.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IPPrefix::operator!=(const IPPrefix& other) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - IPAddress
    constantsTouched: []
    func_position:
      end: 70
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 70
    functionName: nl::Inet::IPPrefix::MatchAddress
    functionSourceFile: /src/openweave-core/src/inet/IPPrefix.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IPPrefix::MatchAddress(const IPAddress& addr) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/openweave-core/src/inet/InetUtils.cpp:82,1
    - Dst: memchr
      Src: /src/openweave-core/src/inet/InetUtils.cpp:98,1
    - Dst: memchr
      Src: /src/openweave-core/src/inet/InetUtils.cpp:105,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 5
    argNames:
    - aString
    - aStringLen
    - aHost
    - aHostLen
    - aPort
    argTypes:
    - char*
    - uint16_t
    - char*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 142
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 142
    functionName: nl::Inet::ParseHostAndPort
    functionSourceFile: /src/openweave-core/src/inet/InetUtils.cpp
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: ParseHostAndPort(const char *aString, uint16_t aStringLen, const char
      *&aHost, uint16_t &aHostLen, uint16_t &aPort)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::ParseHostAndPort
      Src: /src/openweave-core/src/inet/InetUtils.cpp:212,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 7
    argNames:
    - aString
    - aStringLen
    - aHost
    - aHostLen
    - aPort
    - aInterface
    - aInterfaceLen
    argTypes:
    - char*
    - uint16_t
    - char*
    - uint16_t
    - uint16_t
    - char*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 213
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 213
    functionName: nl::Inet::ParseHostPortAndInterface
    functionSourceFile: /src/openweave-core/src/inet/InetUtils.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::ParseHostAndPort
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: "ParseHostPortAndInterface(const char *aString, uint16_t aStringLen,\n
      \                                                  const char *&aHost, uint16_t
      &aHostLen,\n                                                   uint16_t &aPort,\n
      \                                                  const char *&aInterface,
      uint16_t &aInterfaceLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 237
    functionName: nl::Inet::EndPointBasis
    functionSourceFile: /src/openweave-core/src/inet/TunEndPoint.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: EndPointBasis
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 702
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 702
    functionName: nl::Inet::EndPointBasis
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: EndPointBasis
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 712
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 712
    functionName: nl::Inet::TCPEndPoint::MaxTCPSendQueuePolls
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: TCPEndPoint::MaxTCPSendQueuePolls(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TCPEndPoint::IsConnected
      Src: /src/openweave-core/src/inet/TCPEndPoint.h:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 718
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 718
    functionName: nl::Inet::TCPEndPoint::IsConnected
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.h
    functionUses: 1
    functionsReached:
    - nl::Inet::TCPEndPoint::IsConnected
    linkageType: ''
    returnType: bool
    signature: TCPEndPoint::IsConnected(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/inet/TCPEndPoint.h:722,1
    - Dst: reinterpret_cast<intptr_t>
      Src: /src/openweave-core/src/inet/TCPEndPoint.h:722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 723
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 723
    functionName: nl::Inet::TCPEndPoint::LogId
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.h
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - reinterpret_cast<intptr_t>
    linkageType: ''
    returnType: uint16_t
    signature: TCPEndPoint::LogId(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 730
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 730
    functionName: nl::Inet::TCPEndPoint::MarkActive
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::MarkActive(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - aType
    argTypes:
    - Weave::System::EventType
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: nl::Inet::INET_IsInetEvent
    functionSourceFile: /src/openweave-core/src/inet/InetLayerEvents.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: INET_IsInetEvent(Weave::System::EventType aType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_cond_init
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:61,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:62,1
    - Dst: pthread_mutex_init
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:64,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:65,1
    - Dst: pthread_create
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:70,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - aInet
    argTypes:
    - InetLayer*
    constantsTouched: []
    func_position:
      end: 75
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 75
    functionName: nl::Inet::AsyncDNSResolverSockets::Init
    functionSourceFile: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrDie
    - pthread_create
    - pthread_mutex_init
    - pthread_cond_init
    linkageType: ''
    returnType: INET_ERROR
    signature: AsyncDNSResolverSockets::Init(InetLayer *aInet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::AsyncDNSResolverSockets::AsyncMutexLock
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:90,1
    - Dst: pthread_cond_broadcast
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:94,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:95,1
    - Dst: nl::Inet::AsyncDNSResolverSockets::AsyncMutexUnlock
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:97,1
    - Dst: pthread_join
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:102,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:103,1
    - Dst: pthread_mutex_destroy
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:106,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:107,1
    - Dst: pthread_cond_destroy
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:109,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 113
    functionName: nl::Inet::AsyncDNSResolverSockets::Shutdown
    functionSourceFile: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp
    functionUses: 0
    functionsReached:
    - pthread_mutex_destroy
    - pthread_cond_destroy
    - pthread_cond_broadcast
    - nl::Inet::AsyncDNSResolverSockets::AsyncMutexLock
    - nl::Inet::AsyncDNSResolverSockets::AsyncMutexUnlock
    - VerifyOrDie
    - pthread_join
    linkageType: ''
    returnType: INET_ERROR
    signature: AsyncDNSResolverSockets::Shutdown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 8
    argNames:
    - resolver
    - hostName
    - hostNameLen
    - options
    - maxAddrs
    - addrArray
    - onComplete
    - appState
    argTypes:
    - DNSResolver
    - char*
    - uint16_t
    - uint8_t
    - uint8_t
    - IPAddress*
    - DNSResolver::OnResolveCompleteFunct
    - void*
    constantsTouched: []
    func_position:
      end: 157
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 157
    functionName: nl::Inet::AsyncDNSResolverSockets::PrepareDNSResolver
    functionSourceFile: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: INET_ERROR
    signature: "AsyncDNSResolverSockets::PrepareDNSResolver(DNSResolver &resolver,
      const char *hostName, uint16_t hostNameLen,\n                                                       uint8_t
      options, uint8_t maxAddrs, IPAddress *addrArray,\n                                                       DNSResolver::OnResolveCompleteFunct
      onComplete, void *appState)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::AsyncDNSResolverSockets::AsyncMutexLock
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:176,1
    - Dst: pthread_cond_signal
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:191,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:192,1
    - Dst: nl::Inet::AsyncDNSResolverSockets::AsyncMutexUnlock
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - resolver
    argTypes:
    - DNSResolver
    constantsTouched: []
    func_position:
      end: 197
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 197
    functionName: nl::Inet::AsyncDNSResolverSockets::EnqueueRequest
    functionSourceFile: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp
    functionUses: 0
    functionsReached:
    - pthread_cond_signal
    - nl::Inet::AsyncDNSResolverSockets::AsyncMutexUnlock
    - VerifyOrDie
    - nl::Inet::AsyncDNSResolverSockets::AsyncMutexLock
    linkageType: ''
    returnType: INET_ERROR
    signature: AsyncDNSResolverSockets::EnqueueRequest(DNSResolver &resolver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::AsyncDNSResolverSockets::AsyncMutexLock
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:209,1
    - Dst: pthread_cond_wait
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:215,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:216,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:219,1
    - Dst: const_cast<DNSResolver *>
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:228,1
    - Dst: nl::Inet::AsyncDNSResolverSockets::AsyncMutexUnlock
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - outResolver
    argTypes:
    - DNSResolver**
    constantsTouched: []
    func_position:
      end: 242
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 242
    functionName: nl::Inet::AsyncDNSResolverSockets::DequeueRequest
    functionSourceFile: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp
    functionUses: 0
    functionsReached:
    - pthread_cond_wait
    - const_cast<DNSResolver *>
    - WeaveLogDetail
    - nl::Inet::AsyncDNSResolverSockets::AsyncMutexLock
    - nl::Inet::AsyncDNSResolverSockets::AsyncMutexUnlock
    - VerifyOrDie
    linkageType: ''
    returnType: INET_ERROR
    signature: AsyncDNSResolverSockets::DequeueRequest(DNSResolver **outResolver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::AsyncDNSResolverSockets::AsyncMutexLock
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:253,1
    - Dst: nl::Inet::AsyncDNSResolverSockets::AsyncMutexUnlock
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - resolver
    argTypes:
    - DNSResolver
    constantsTouched: []
    func_position:
      end: 260
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 260
    functionName: nl::Inet::AsyncDNSResolverSockets::Cancel
    functionSourceFile: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::AsyncDNSResolverSockets::AsyncMutexUnlock
    - nl::Inet::AsyncDNSResolverSockets::AsyncMutexLock
    linkageType: ''
    returnType: INET_ERROR
    signature: AsyncDNSResolverSockets::Cancel(DNSResolver &resolver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::FromSockAddr
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - resolver
    - inLookupRes
    argTypes:
    - DNSResolver
    - struct addrinfo*
    constantsTouched: []
    func_position:
      end: 270
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 270
    functionName: nl::Inet::AsyncDNSResolverSockets::UpdateDNSResult
    functionSourceFile: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::FromSockAddr
    linkageType: ''
    returnType: void
    signature: AsyncDNSResolverSockets::UpdateDNSResult(DNSResolver &resolver, struct
      addrinfo *inLookupRes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DNSResolver::InitAddrInfoHints
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:279,1
    - Dst: getaddrinfo
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:282,1
    - Dst: nl::Inet::AsyncDNSResolverSockets::AsyncMutexLock
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:285,1
    - Dst: DNSResolver::ProcessGetAddrInfoResult
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:289,1
    - Dst: nl::Inet::AsyncDNSResolverSockets::AsyncMutexUnlock
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - resolver
    argTypes:
    - DNSResolver
    constantsTouched: []
    func_position:
      end: 298
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 298
    functionName: nl::Inet::AsyncDNSResolverSockets::Resolve
    functionSourceFile: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp
    functionUses: 0
    functionsReached:
    - DNSResolver::InitAddrInfoHints
    - DNSResolver::ProcessGetAddrInfoResult
    - getaddrinfo
    - nl::Inet::AsyncDNSResolverSockets::AsyncMutexLock
    - nl::Inet::AsyncDNSResolverSockets::AsyncMutexUnlock
    linkageType: ''
    returnType: void
    signature: AsyncDNSResolverSockets::Resolve(DNSResolver &resolver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DNSResolver *>
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:303,1
    - Dst: DNSResolver*::HandleAsyncResolveComplete
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - aLayer
    - aAppState
    - aError
    argTypes:
    - Weave::System::Layer*
    - void*
    - Weave::System::Error
    constantsTouched: []
    func_position:
      end: 309
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 309
    functionName: nl::Inet::AsyncDNSResolverSockets::DNSResultEventHandler
    functionSourceFile: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp
    functionUses: 0
    functionsReached:
    - static_cast<DNSResolver *>
    - DNSResolver*::HandleAsyncResolveComplete
    linkageType: ''
    returnType: void
    signature: AsyncDNSResolverSockets::DNSResultEventHandler (Weave::System::Layer*
      aLayer, void* aAppState, Weave::System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DNSResolver*::SystemLayer
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:314,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:316,1
    - Dst: ScheduleWork
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - resolver
    argTypes:
    - DNSResolver*
    constantsTouched: []
    func_position:
      end: 318
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 318
    functionName: nl::Inet::AsyncDNSResolverSockets::NotifyWeaveThread
    functionSourceFile: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp
    functionUses: 0
    functionsReached:
    - ScheduleWork
    - DNSResolver*::SystemLayer
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: AsyncDNSResolverSockets::NotifyWeaveThread(DNSResolver *resolver)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<AsyncDNSResolverSockets*>
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:324,1
    - Dst: AsyncDNSResolverSockets*::DequeueRequest
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:332,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:336,1
    - Dst: AsyncDNSResolverSockets*::Resolve
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:340,1
    - Dst: AsyncDNSResolverSockets*::NotifyWeaveThread
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:343,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:347,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 349
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 349
    functionName: nl::Inet::AsyncDNSResolverSockets::AsyncDNSThreadRun
    functionSourceFile: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp
    functionUses: 0
    functionsReached:
    - AsyncDNSResolverSockets*::DequeueRequest
    - VerifyOrExit
    - WeaveLogDetail
    - AsyncDNSResolverSockets*::NotifyWeaveThread
    - AsyncDNSResolverSockets*::Resolve
    - static_cast<AsyncDNSResolverSockets*>
    linkageType: ''
    returnType: void
    signature: '*AsyncDNSResolverSockets::AsyncDNSThreadRun(void *args)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:355,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 357
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 357
    functionName: nl::Inet::AsyncDNSResolverSockets::AsyncMutexLock
    functionSourceFile: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp
    functionUses: 5
    functionsReached:
    - pthread_mutex_lock
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: AsyncDNSResolverSockets::AsyncMutexLock(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:363,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 365
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 365
    functionName: nl::Inet::AsyncDNSResolverSockets::AsyncMutexUnlock
    functionSourceFile: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp
    functionUses: 5
    functionsReached:
    - pthread_mutex_unlock
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: AsyncDNSResolverSockets::AsyncMutexUnlock(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsInterfaceIdPresent
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:91,1
    - Dst: raw_bind_netif
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:92,1
    - Dst: nl::Inet::IPEndPointBasis::FindNetifFromInterfaceId
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:95,1
    - Dst: raw_bind_netif
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:100,1
    - Dst: IsInterfaceIdPresent
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:103,1
    - Dst: nl::Inet::IPEndPointBasis::FindNetifFromInterfaceId
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - aRaw
    - intfId
    argTypes:
    - struct raw_pcb*
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 117
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 117
    functionName: nl::Inet::LwIPBindInterface
    functionSourceFile: /src/openweave-core/src/inet/RawEndPoint.cpp
    functionUses: 0
    functionsReached:
    - raw_bind_netif
    - IsInterfaceIdPresent
    - nl::Inet::IPEndPointBasis::FindNetifFromInterfaceId
    linkageType: ''
    returnType: INET_ERROR
    signature: LwIPBindInterface(struct raw_pcb *aRaw, InterfaceId intfId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddress::Type
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:160,1
    - Dst: IPAddress::Type
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:160,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:169,1
    - Dst: nl::Inet::RawEndPoint::GetPCB
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:172,1
    - Dst: IPAddress::ToLwIPAddr
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:178,1
    - Dst: nl::Inet::IPAddress::ToLwIPAddrType
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:180,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:181,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:183,1
    - Dst: raw_bind
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:183,1
    - Dst: IPAddress::ToIPv6
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:187,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:188,1
    - Dst: raw_bind_ip6
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:188,1
    - Dst: IPAddress::ToIPv4
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:193,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:194,1
    - Dst: raw_bind
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:194,1
    - Dst: LwIPBindInterface
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:204,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:208,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:210,1
    - Dst: GetSocket
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:216,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:217,1
    - Dst: nl::Inet::IPEndPointBasis::Bind
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:219,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:220,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 3
    argNames:
    - addrType
    - addr
    - intfId
    argTypes:
    - IPAddressType
    - IPAddress
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 232
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 232
    functionName: nl::Inet::RawEndPoint::Bind
    functionSourceFile: /src/openweave-core/src/inet/RawEndPoint.cpp
    functionUses: 0
    functionsReached:
    - LwIPBindInterface
    - LOCK_TCPIP_CORE
    - IP_SET_TYPE_VAL
    - nl::Weave::System::MapErrorLwIP
    - nl::Inet::IPEndPointBasis::Bind
    - IPAddress::ToIPv6
    - nl::Inet::RawEndPoint::GetPCB
    - IPAddress::ToLwIPAddr
    - nl::Inet::IPAddress::ToLwIPAddrType
    - IPAddress::ToIPv4
    - UNLOCK_TCPIP_CORE
    - SuccessOrExit
    - raw_bind
    - GetSocket
    - raw_bind_ip6
    - IPAddress::Type
    linkageType: ''
    returnType: INET_ERROR
    signature: RawEndPoint::Bind(IPAddressType addrType, IPAddress addr, InterfaceId
      intfId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddress::IsIPv6LinkLocal
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:287,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:296,1
    - Dst: nl::Inet::RawEndPoint::GetPCB
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:299,1
    - Dst: IPAddress::Type
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:299,1
    - Dst: IPAddress::ToLwIPAddr
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:305,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:306,1
    - Dst: raw_bind
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:306,1
    - Dst: IPAddress::ToIPv6
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:308,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:309,1
    - Dst: raw_bind_ip6
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:309,1
    - Dst: raw_remove
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:314,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:321,1
    - Dst: GetSocket
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:330,1
    - Dst: lwip_setsockopt
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:336,1
    - Dst: lwip_setsockopt
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:341,1
    - Dst: lwip_setsockopt
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:346,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:355,1
    - Dst: Java_nl_Weave_DeviceManager_WeaveDeviceManager_close
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:356,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 2
    argNames:
    - intf
    - addr
    argTypes:
    - InterfaceId
    - IPAddress
    constantsTouched: []
    func_position:
      end: 369
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 369
    functionName: nl::Inet::RawEndPoint::BindIPv6LinkLocal
    functionSourceFile: /src/openweave-core/src/inet/RawEndPoint.cpp
    functionUses: 0
    functionsReached:
    - LOCK_TCPIP_CORE
    - IPAddress::IsIPv6LinkLocal
    - nl::Weave::System::MapErrorLwIP
    - IPAddress::ToIPv6
    - nl::Inet::RawEndPoint::GetPCB
    - IPAddress::ToLwIPAddr
    - Java_nl_Weave_DeviceManager_WeaveDeviceManager_close
    - raw_remove
    - lwip_setsockopt
    - UNLOCK_TCPIP_CORE
    - raw_bind
    - nl::Weave::System::MapErrorPOSIX
    - GetSocket
    - raw_bind_ip6
    - IPAddress::Type
    linkageType: ''
    returnType: INET_ERROR
    signature: RawEndPoint::BindIPv6LinkLocal(InterfaceId intf, IPAddress addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SystemLayer
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:390,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:408,1
    - Dst: raw_recv
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:411,1
    - Dst: PCB_ISIPV6
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:413,1
    - Dst: raw_recv_ip6
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:414,1
    - Dst: raw_recv
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:416,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:420,1
    - Dst: WakeSelect
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:427,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 438
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 438
    functionName: nl::Inet::RawEndPoint::Listen
    functionSourceFile: /src/openweave-core/src/inet/RawEndPoint.cpp
    functionUses: 0
    functionsReached:
    - LOCK_TCPIP_CORE
    - SystemLayer
    - PCB_ISIPV6
    - UNLOCK_TCPIP_CORE
    - raw_recv
    - WakeSelect
    - raw_recv_ip6
    linkageType: ''
    returnType: INET_ERROR
    signature: RawEndPoint::Listen(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:457,1
    - Dst: raw_remove
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:463,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:469,1
    - Dst: SystemLayer
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:477,1
    - Dst: WakeSelect
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:480,1
    - Dst: close
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:482,1
    - Dst: Clear
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:487,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 493
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 493
    functionName: nl::Inet::RawEndPoint::Close
    functionSourceFile: /src/openweave-core/src/inet/RawEndPoint.cpp
    functionUses: 0
    functionsReached:
    - LOCK_TCPIP_CORE
    - SystemLayer
    - Clear
    - raw_remove
    - close
    - UNLOCK_TCPIP_CORE
    - WakeSelect
    linkageType: ''
    returnType: void
    signature: RawEndPoint::Close(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::RawEndPoint::Close
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:508,1
    - Dst: DeferredFree
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:511,1
    - Dst: Release
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 515
      start: 506
    functionDepth: 2
    functionLinenumber: 506
    functionLinenumberEnd: 515
    functionName: nl::Inet::RawEndPoint::Free
    functionSourceFile: /src/openweave-core/src/inet/RawEndPoint.cpp
    functionUses: 0
    functionsReached:
    - Release
    - DeferredFree
    - nl::Inet::RawEndPoint::Close
    linkageType: ''
    returnType: void
    signature: RawEndPoint::Free(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::RawEndPoint::SendTo
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - addr
    - msg
    - sendFlags
    argTypes:
    - IPAddress
    - Weave::System::PacketBuffer*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 524
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 524
    functionName: nl::Inet::RawEndPoint::SendTo
    functionSourceFile: /src/openweave-core/src/inet/RawEndPoint.cpp
    functionUses: 1
    functionsReached:
    - nl::Inet::RawEndPoint::SendTo
    linkageType: ''
    returnType: INET_ERROR
    signature: RawEndPoint::SendTo(IPAddress addr, Weave::System::PacketBuffer *msg,
      uint16_t sendFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPPacketInfo::Clear
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:564,1
    - Dst: nl::Inet::RawEndPoint::SendMsg
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - addr
    - intfId
    - msg
    - sendFlags
    argTypes:
    - IPAddress
    - InterfaceId
    - Weave::System::PacketBuffer*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 568
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 568
    functionName: nl::Inet::RawEndPoint::SendTo
    functionSourceFile: /src/openweave-core/src/inet/RawEndPoint.cpp
    functionUses: 1
    functionsReached:
    - nl::Inet::RawEndPoint::SendMsg
    - IPPacketInfo::Clear
    linkageType: ''
    returnType: INET_ERROR
    signature: RawEndPoint::SendTo(IPAddress addr, InterfaceId intfId, Weave::System::PacketBuffer
      *msg, uint16_t sendFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INET_FAULT_INJECT
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:609,1
    - Dst: if
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:610,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:611,1
    - Dst: INET_FAULT_INJECT
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:614,1
    - Dst: if
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:615,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:616,1
    - Dst: Type
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:623,1
    - Dst: Type
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:628,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:660,1
    - Dst: pbuf_chain
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:667,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:672,1
    - Dst: nl::Inet::RawEndPoint::GetPCB
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:675,1
    - Dst: Type
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:675,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:676,1
    - Dst: ToLwIPAddr
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:683,1
    - Dst: raw_sendto
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:685,1
    - Dst: PCB_ISIPV6
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:687,1
    - Dst: ToIPv6
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:689,1
    - Dst: raw_sendto_ip6
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:691,1
    - Dst: ToIPv4
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:696,1
    - Dst: raw_sendto
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:698,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:704,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:708,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:710,1
    - Dst: GetSocket
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:717,1
    - Dst: Type
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:717,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:718,1
    - Dst: nl::Inet::IPEndPointBasis::SendMsg
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:720,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:723,1
    - Dst: WEAVE_SYSTEM_FAULT_INJECT_ASYNC_EVENT
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:727,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 3
    argNames:
    - pktInfo
    - msg
    - sendFlags
    argTypes:
    - IPPacketInfo*
    - Weave::System::PacketBuffer*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 730
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 730
    functionName: nl::Inet::RawEndPoint::SendMsg
    functionSourceFile: /src/openweave-core/src/inet/RawEndPoint.cpp
    functionUses: 1
    functionsReached:
    - ToIPv4
    - UNLOCK_TCPIP_CORE
    - if
    - LOCK_TCPIP_CORE
    - nl::Weave::System::PacketBuffer::Free
    - nl::Inet::RawEndPoint::GetPCB
    - raw_sendto
    - GetSocket
    - pbuf_chain
    - ToLwIPAddr
    - ToIPv6
    - raw_sendto_ip6
    - Type
    - PCB_ISIPV6
    - WEAVE_SYSTEM_FAULT_INJECT_ASYNC_EVENT
    - pbuf_alloc
    - nl::Weave::System::MapErrorLwIP
    - INET_FAULT_INJECT
    - nl::Inet::IPEndPointBasis::SendMsg
    - SuccessOrExit
    linkageType: ''
    returnType: INET_ERROR
    signature: RawEndPoint::SendMsg(const IPPacketInfo *pktInfo, Weave::System::PacketBuffer
      *msg, uint16_t sendFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:756,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:760,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:761,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:762,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:768,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:771,1
    - Dst: ICMP6_FILTER_SETBLOCKALL
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:779,1
    - Dst: ICMP6_FILTER_SETPASS
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:782,1
    - Dst: ICMP6_FILTER_SETPASSALL
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:787,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:789,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:791,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - numICMPTypes
    - aICMPTypes
    argTypes:
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 798
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 798
    functionName: nl::Inet::RawEndPoint::SetICMPFilter
    functionSourceFile: /src/openweave-core/src/inet/RawEndPoint.cpp
    functionUses: 0
    functionsReached:
    - LOCK_TCPIP_CORE
    - ICMP6_FILTER_SETPASS
    - ICMP6_FILTER_SETBLOCKALL
    - VerifyOrExit
    - ExitNow
    - ICMP6_FILTER_SETPASSALL
    - UNLOCK_TCPIP_CORE
    - nl::Weave::System::MapErrorPOSIX
    - setsockopt
    linkageType: ''
    returnType: INET_ERROR
    signature: RawEndPoint::SetICMPFilter(uint8_t numICMPTypes, const uint8_t * aICMPTypes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:834,1
    - Dst: nl::Inet::RawEndPoint::GetPCB
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:837,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:838,1
    - Dst: LwIPBindInterface
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:840,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:842,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:844,1
    - Dst: GetSocket
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:850,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:851,1
    - Dst: nl::Inet::IPEndPointBasis::BindInterface
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:853,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:854,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - addrType
    - intfId
    argTypes:
    - IPAddressType
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 864
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 864
    functionName: nl::Inet::RawEndPoint::BindInterface
    functionSourceFile: /src/openweave-core/src/inet/RawEndPoint.cpp
    functionUses: 0
    functionsReached:
    - LwIPBindInterface
    - LOCK_TCPIP_CORE
    - nl::Inet::IPEndPointBasis::BindInterface
    - nl::Inet::RawEndPoint::GetPCB
    - SuccessOrExit
    - UNLOCK_TCPIP_CORE
    - GetSocket
    linkageType: ''
    returnType: INET_ERROR
    signature: RawEndPoint::BindInterface(IPAddressType addrType, InterfaceId intfId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPEndPointBasis::Init
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - inetLayer
    - ipVer
    - ipProto
    argTypes:
    - InetLayer*
    - IPVersion
    - IPProtocol
    constantsTouched: []
    func_position:
      end: 872
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 872
    functionName: nl::Inet::RawEndPoint::Init
    functionSourceFile: /src/openweave-core/src/inet/RawEndPoint.cpp
    functionUses: 1
    functionsReached:
    - nl::Inet::IPEndPointBasis::Init
    linkageType: ''
    returnType: void
    signature: RawEndPoint::Init(InetLayer *inetLayer, IPVersion ipVer, IPProtocol
      ipProto)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_get_by_index
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 892
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 892
    functionName: nl::Inet::RawEndPoint::GetBoundInterface
    functionSourceFile: /src/openweave-core/src/inet/RawEndPoint.cpp
    functionUses: 0
    functionsReached:
    - netif_get_by_index
    linkageType: ''
    returnType: InterfaceId
    signature: RawEndPoint::GetBoundInterface(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPEndPointBasis::HandleDataReceived
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 899
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 899
    functionName: nl::Inet::RawEndPoint::HandleDataReceived
    functionSourceFile: /src/openweave-core/src/inet/RawEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPEndPointBasis::HandleDataReceived
    linkageType: ''
    returnType: void
    signature: RawEndPoint::HandleDataReceived(PacketBuffer *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: raw_new_ip_type
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:916,1
    - Dst: nl::Inet::IPAddress::ToLwIPAddrType
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:916,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:926,1
    - Dst: static_cast<lwip_ip_addr_type>
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:937,1
    - Dst: IP_GET_TYPE
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:937,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:942,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:947,1
    - Dst: raw_new_ip6
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:960,1
    - Dst: ip_set_option
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:962,1
    - Dst: raw_new
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:967,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:978,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 1
    argNames:
    - addrType
    argTypes:
    - IPAddressType
    constantsTouched: []
    func_position:
      end: 986
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 986
    functionName: nl::Inet::RawEndPoint::GetPCB
    functionSourceFile: /src/openweave-core/src/inet/RawEndPoint.cpp
    functionUses: 4
    functionsReached:
    - WeaveLogError
    - static_cast<lwip_ip_addr_type>
    - raw_new_ip_type
    - raw_new
    - raw_new_ip6
    - VerifyOrExit
    - ip_set_option
    - nl::Inet::IPAddress::ToLwIPAddrType
    - IP_GET_TYPE
    linkageType: ''
    returnType: INET_ERROR
    signature: RawEndPoint::GetPCB(IPAddressType addrType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPEndPointBasis::GetSocket
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:1110,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:1111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - aAddressType
    argTypes:
    - IPAddressType
    constantsTouched: []
    func_position:
      end: 1115
      start: 1087
    functionDepth: 1
    functionLinenumber: 1087
    functionLinenumberEnd: 1115
    functionName: nl::RawEndPoint::GetSocket
    functionSourceFile: /src/openweave-core/src/inet/RawEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPEndPointBasis::GetSocket
    - SuccessOrExit
    linkageType: ''
    returnType: INET_ERROR
    signature: RawEndPoint::GetSocket(IPAddressType aAddressType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPEndPointBasis::PrepareIO
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:1119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1117
    functionDepth: 1
    functionLinenumber: 1117
    functionLinenumberEnd: 1120
    functionName: nl::RawEndPoint::PrepareIO
    functionSourceFile: /src/openweave-core/src/inet/RawEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPEndPointBasis::PrepareIO
    linkageType: ''
    returnType: SocketEvents
    signature: RawEndPoint::PrepareIO(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsReadable
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:1124,1
    - Dst: nl::Inet::IPEndPointBasis::HandlePendingIO
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:1128,1
    - Dst: Clear
      Src: /src/openweave-core/src/inet/RawEndPoint.cpp:1131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1122
    functionDepth: 1
    functionLinenumber: 1122
    functionLinenumberEnd: 1132
    functionName: nl::RawEndPoint::HandlePendingIO
    functionSourceFile: /src/openweave-core/src/inet/RawEndPoint.cpp
    functionUses: 0
    functionsReached:
    - Clear
    - nl::Inet::IPEndPointBasis::HandlePendingIO
    - IsReadable
    linkageType: ''
    returnType: void
    signature: RawEndPoint::HandlePendingIO(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 124
    functionName: nl::Inet::InetLayerBasis
    functionSourceFile: /src/openweave-core/src/inet/EndPointBasis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: InetLayerBasis
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: nl::Inet::EndPointBasis::IsSocketsEndPoint
    functionSourceFile: /src/openweave-core/src/inet/EndPointBasis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: EndPointBasis::IsSocketsEndPoint(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: nl::Inet::EndPointBasis::IsLWIPEndPoint
    functionSourceFile: /src/openweave-core/src/inet/EndPointBasis.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: EndPointBasis::IsLWIPEndPoint(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::EndPointBasis::IsLWIPEndPoint
      Src: /src/openweave-core/src/inet/EndPointBasis.h:145,1
    - Dst: nl::Inet::EndPointBasis::IsSocketsEndPoint
      Src: /src/openweave-core/src/inet/EndPointBasis.h:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 153
    functionName: nl::Inet::EndPointBasis::IsOpenEndPoint
    functionSourceFile: /src/openweave-core/src/inet/EndPointBasis.h
    functionUses: 0
    functionsReached:
    - nl::Inet::EndPointBasis::IsSocketsEndPoint
    - nl::Inet::EndPointBasis::IsLWIPEndPoint
    linkageType: ''
    returnType: bool
    signature: EndPointBasis::IsOpenEndPoint(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::EndPointBasis::IsLWIPEndPoint
      Src: /src/openweave-core/src/inet/EndPointBasis.h:158,1
    - Dst: DeferredRelease
      Src: /src/openweave-core/src/inet/EndPointBasis.h:160,1
    - Dst: Release
      Src: /src/openweave-core/src/inet/EndPointBasis.h:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - aTactic
    argTypes:
    - Weave::System::Object::ReleaseDeferralErrorTactic
    constantsTouched: []
    func_position:
      end: 166
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 166
    functionName: nl::Inet::EndPointBasis::DeferredFree
    functionSourceFile: /src/openweave-core/src/inet/EndPointBasis.h
    functionUses: 0
    functionsReached:
    - DeferredRelease
    - Release
    - nl::Inet::EndPointBasis::IsLWIPEndPoint
    linkageType: ''
    returnType: void
    signature: EndPointBasis::DeferredFree(Weave::System::Object::ReleaseDeferralErrorTactic
      aTactic)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsInterfaceIdPresent
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:90,1
    - Dst: udp_bind_netif
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:91,1
    - Dst: nl::Inet::IPEndPointBasis::FindNetifFromInterfaceId
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:94,1
    - Dst: udp_bind_netif
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:99,1
    - Dst: IsInterfaceIdPresent
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:102,1
    - Dst: nl::Inet::IPEndPointBasis::FindNetifFromInterfaceId
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - aUDP
    - intfId
    argTypes:
    - struct udp_pcb*
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 116
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 116
    functionName: nl::Inet::LwIPBindInterface
    functionSourceFile: /src/openweave-core/src/inet/UDPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - IsInterfaceIdPresent
    - nl::Inet::IPEndPointBasis::FindNetifFromInterfaceId
    - udp_bind_netif
    linkageType: ''
    returnType: INET_ERROR
    signature: LwIPBindInterface(struct udp_pcb *aUDP, InterfaceId intfId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddress::Type
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:160,1
    - Dst: IPAddress::Type
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:160,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:169,1
    - Dst: nl::Inet::UDPEndPoint::GetPCB
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:172,1
    - Dst: IPAddress::ToLwIPAddr
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:178,1
    - Dst: nl::Inet::IPAddress::ToLwIPAddrType
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:180,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:181,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:183,1
    - Dst: udp_bind
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:183,1
    - Dst: IPAddress::ToIPv6
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:187,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:188,1
    - Dst: udp_bind_ip6
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:188,1
    - Dst: IPAddress::ToIPv4
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:193,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:194,1
    - Dst: udp_bind
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:194,1
    - Dst: LwIPBindInterface
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:204,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:208,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:210,1
    - Dst: GetSocket
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:217,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:218,1
    - Dst: nl::Inet::IPEndPointBasis::Bind
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:220,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:221,1
    - Dst: getsockname
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:237,1
    - Dst: ntohs
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:241,1
    - Dst: ntohs
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:245,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 4
    argNames:
    - addrType
    - addr
    - port
    - intfId
    argTypes:
    - IPAddressType
    - IPAddress
    - uint16_t
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 259
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 259
    functionName: nl::Inet::UDPEndPoint::Bind
    functionSourceFile: /src/openweave-core/src/inet/UDPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - LwIPBindInterface
    - LOCK_TCPIP_CORE
    - IP_SET_TYPE_VAL
    - udp_bind
    - ntohs
    - nl::Weave::System::MapErrorLwIP
    - nl::Inet::IPEndPointBasis::Bind
    - IPAddress::ToIPv6
    - getsockname
    - udp_bind_ip6
    - IPAddress::ToLwIPAddr
    - nl::Inet::IPAddress::ToLwIPAddrType
    - IPAddress::ToIPv4
    - SuccessOrExit
    - UNLOCK_TCPIP_CORE
    - nl::Inet::UDPEndPoint::GetPCB
    - GetSocket
    - IPAddress::Type
    linkageType: ''
    returnType: INET_ERROR
    signature: UDPEndPoint::Bind(IPAddressType addrType, IPAddress addr, uint16_t
      port, InterfaceId intfId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SystemLayer
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:281,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:299,1
    - Dst: udp_recv
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:302,1
    - Dst: PCB_ISIPV6
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:304,1
    - Dst: udp_recv_ip6
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:305,1
    - Dst: udp_recv
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:307,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:311,1
    - Dst: WakeSelect
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 329
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 329
    functionName: nl::Inet::UDPEndPoint::Listen
    functionSourceFile: /src/openweave-core/src/inet/UDPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - LOCK_TCPIP_CORE
    - SystemLayer
    - udp_recv
    - PCB_ISIPV6
    - UNLOCK_TCPIP_CORE
    - udp_recv_ip6
    - WakeSelect
    linkageType: ''
    returnType: INET_ERROR
    signature: UDPEndPoint::Listen(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:348,1
    - Dst: udp_remove
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:354,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:360,1
    - Dst: SystemLayer
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:368,1
    - Dst: WakeSelect
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:371,1
    - Dst: close
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:373,1
    - Dst: Clear
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:378,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 384
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 384
    functionName: nl::Inet::UDPEndPoint::Close
    functionSourceFile: /src/openweave-core/src/inet/UDPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - LOCK_TCPIP_CORE
    - SystemLayer
    - udp_remove
    - Clear
    - close
    - UNLOCK_TCPIP_CORE
    - WakeSelect
    linkageType: ''
    returnType: void
    signature: UDPEndPoint::Close(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::UDPEndPoint::Close
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:399,1
    - Dst: DeferredFree
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:402,1
    - Dst: Release
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 406
      start: 397
    functionDepth: 2
    functionLinenumber: 397
    functionLinenumberEnd: 406
    functionName: nl::Inet::UDPEndPoint::Free
    functionSourceFile: /src/openweave-core/src/inet/UDPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - Release
    - DeferredFree
    - nl::Inet::UDPEndPoint::Close
    linkageType: ''
    returnType: void
    signature: UDPEndPoint::Free(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::UDPEndPoint::SendTo
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - addr
    - port
    - msg
    - sendFlags
    argTypes:
    - IPAddress
    - uint16_t
    - Weave::System::PacketBuffer*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 414
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 414
    functionName: nl::Inet::UDPEndPoint::SendTo
    functionSourceFile: /src/openweave-core/src/inet/UDPEndPoint.cpp
    functionUses: 1
    functionsReached:
    - nl::Inet::UDPEndPoint::SendTo
    linkageType: ''
    returnType: INET_ERROR
    signature: UDPEndPoint::SendTo(IPAddress addr, uint16_t port, Weave::System::PacketBuffer
      *msg, uint16_t sendFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPPacketInfo::Clear
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:458,1
    - Dst: nl::Inet::UDPEndPoint::SendMsg
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - addr
    - port
    - intfId
    - msg
    - sendFlags
    argTypes:
    - IPAddress
    - uint16_t
    - InterfaceId
    - Weave::System::PacketBuffer*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 463
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 463
    functionName: nl::Inet::UDPEndPoint::SendTo
    functionSourceFile: /src/openweave-core/src/inet/UDPEndPoint.cpp
    functionUses: 1
    functionsReached:
    - IPPacketInfo::Clear
    - nl::Inet::UDPEndPoint::SendMsg
    linkageType: ''
    returnType: INET_ERROR
    signature: UDPEndPoint::SendTo(IPAddress addr, uint16_t port, InterfaceId intfId,
      Weave::System::PacketBuffer *msg, uint16_t sendFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INET_FAULT_INJECT
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:508,1
    - Dst: if
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:509,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:510,1
    - Dst: INET_FAULT_INJECT
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:513,1
    - Dst: if
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:514,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:515,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:545,1
    - Dst: pbuf_chain
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:552,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:557,1
    - Dst: nl::Inet::UDPEndPoint::GetPCB
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:560,1
    - Dst: Type
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:560,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:561,1
    - Dst: ToLwIPAddr
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:577,1
    - Dst: ToLwIPAddr
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:578,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:581,1
    - Dst: ip_addr_isany
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:583,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:585,1
    - Dst: udp_sendto_if
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:589,1
    - Dst: udp_sendto
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:591,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:593,1
    - Dst: ipX_addr_copy
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:598,1
    - Dst: PCB_ISIPV6
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:600,1
    - Dst: ToIPv6
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:602,1
    - Dst: ToIPv6
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:603,1
    - Dst: ip6_addr_isany
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:605,1
    - Dst: ipX_addr_copy
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:607,1
    - Dst: ip6_2_ipX
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:607,1
    - Dst: udp_sendto_if_ip6
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:611,1
    - Dst: udp_sendto_ip6
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:613,1
    - Dst: ToIPv4
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:620,1
    - Dst: ToIPv4
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:621,1
    - Dst: ip_addr_isany
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:624,1
    - Dst: ipX_addr_copy
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:626,1
    - Dst: ip_2_ipX
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:626,1
    - Dst: udp_sendto_if
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:630,1
    - Dst: udp_sendto
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:632,1
    - Dst: ipX_addr_copy
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:635,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:641,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:645,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:647,1
    - Dst: GetSocket
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:655,1
    - Dst: Type
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:655,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:656,1
    - Dst: nl::Inet::IPEndPointBasis::SendMsg
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:658,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:661,1
    - Dst: WEAVE_SYSTEM_FAULT_INJECT_ASYNC_EVENT
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:665,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 3
    argNames:
    - pktInfo
    - msg
    - sendFlags
    argTypes:
    - IPPacketInfo*
    - PacketBuffer*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 668
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 668
    functionName: nl::Inet::UDPEndPoint::SendMsg
    functionSourceFile: /src/openweave-core/src/inet/UDPEndPoint.cpp
    functionUses: 1
    functionsReached:
    - ToIPv4
    - udp_sendto
    - ip6_2_ipX
    - UNLOCK_TCPIP_CORE
    - if
    - LOCK_TCPIP_CORE
    - udp_sendto_ip6
    - nl::Weave::System::PacketBuffer::Free
    - GetSocket
    - pbuf_chain
    - ToLwIPAddr
    - ToIPv6
    - ip6_addr_isany
    - udp_sendto_if
    - Type
    - PCB_ISIPV6
    - ipX_addr_copy
    - ip_addr_copy
    - nl::Inet::UDPEndPoint::GetPCB
    - WEAVE_SYSTEM_FAULT_INJECT_ASYNC_EVENT
    - ip_addr_isany
    - pbuf_alloc
    - nl::Weave::System::MapErrorLwIP
    - INET_FAULT_INJECT
    - ip_2_ipX
    - nl::Inet::IPEndPointBasis::SendMsg
    - SuccessOrExit
    - udp_sendto_if_ip6
    linkageType: ''
    returnType: INET_ERROR
    signature: UDPEndPoint::SendMsg(const IPPacketInfo *pktInfo, PacketBuffer *msg,
      uint16_t sendFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:704,1
    - Dst: nl::Inet::UDPEndPoint::GetPCB
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:707,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:708,1
    - Dst: LwIPBindInterface
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:710,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:712,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:714,1
    - Dst: GetSocket
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:720,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:721,1
    - Dst: nl::Inet::IPEndPointBasis::BindInterface
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:723,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:724,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - addrType
    - intfId
    argTypes:
    - IPAddressType
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 734
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 734
    functionName: nl::Inet::UDPEndPoint::BindInterface
    functionSourceFile: /src/openweave-core/src/inet/UDPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - LwIPBindInterface
    - LOCK_TCPIP_CORE
    - nl::Inet::IPEndPointBasis::BindInterface
    - SuccessOrExit
    - UNLOCK_TCPIP_CORE
    - nl::Inet::UDPEndPoint::GetPCB
    - GetSocket
    linkageType: ''
    returnType: INET_ERROR
    signature: UDPEndPoint::BindInterface(IPAddressType addrType, InterfaceId intfId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPEndPointBasis::Init
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inetLayer
    argTypes:
    - InetLayer*
    constantsTouched: []
    func_position:
      end: 739
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 739
    functionName: nl::Inet::UDPEndPoint::Init
    functionSourceFile: /src/openweave-core/src/inet/UDPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPEndPointBasis::Init
    linkageType: ''
    returnType: void
    signature: UDPEndPoint::Init(InetLayer *inetLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_get_by_index
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 759
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 759
    functionName: nl::Inet::UDPEndPoint::GetBoundInterface
    functionSourceFile: /src/openweave-core/src/inet/UDPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - netif_get_by_index
    linkageType: ''
    returnType: InterfaceId
    signature: UDPEndPoint::GetBoundInterface(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 770
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 770
    functionName: nl::Inet::UDPEndPoint::GetBoundPort
    functionSourceFile: /src/openweave-core/src/inet/UDPEndPoint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: UDPEndPoint::GetBoundPort(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPEndPointBasis::HandleDataReceived
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 777
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 777
    functionName: nl::Inet::UDPEndPoint::HandleDataReceived
    functionSourceFile: /src/openweave-core/src/inet/UDPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPEndPointBasis::HandleDataReceived
    linkageType: ''
    returnType: void
    signature: UDPEndPoint::HandleDataReceived(PacketBuffer *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: udp_new_ip_type
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:792,1
    - Dst: udp_new_ip6
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:794,1
    - Dst: udp_new_ip_type
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:801,1
    - Dst: udp_new
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:803,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:809,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:815,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:816,1
    - Dst: ip_set_option
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:820,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - addrType
    argTypes:
    - IPAddressType
    constantsTouched: []
    func_position:
      end: 821
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 821
    functionName: nl::Inet::UDPEndPoint::GetPCB
    functionSourceFile: /src/openweave-core/src/inet/UDPEndPoint.cpp
    functionUses: 3
    functionsReached:
    - udp_new
    - udp_new_ip6
    - WeaveLogError
    - ip_set_option
    - ExitNow
    - udp_new_ip_type
    linkageType: ''
    returnType: INET_ERROR
    signature: UDPEndPoint::GetPCB(IPAddressType addrType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPEndPointBasis::GetSocket
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:909,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - aAddressType
    argTypes:
    - IPAddressType
    constantsTouched: []
    func_position:
      end: 914
      start: 903
    functionDepth: 1
    functionLinenumber: 903
    functionLinenumberEnd: 914
    functionName: UDPEndPoint::GetSocket
    functionSourceFile: /src/openweave-core/src/inet/UDPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPEndPointBasis::GetSocket
    - SuccessOrExit
    linkageType: ''
    returnType: INET_ERROR
    signature: UDPEndPoint::GetSocket(IPAddressType aAddressType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPEndPointBasis::PrepareIO
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 919
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 919
    functionName: UDPEndPoint::PrepareIO
    functionSourceFile: /src/openweave-core/src/inet/UDPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPEndPointBasis::PrepareIO
    linkageType: ''
    returnType: SocketEvents
    signature: UDPEndPoint::PrepareIO(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsReadable
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:923,1
    - Dst: nl::Inet::IPEndPointBasis::HandlePendingIO
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:927,1
    - Dst: Clear
      Src: /src/openweave-core/src/inet/UDPEndPoint.cpp:930,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 931
      start: 921
    functionDepth: 1
    functionLinenumber: 921
    functionLinenumberEnd: 931
    functionName: UDPEndPoint::HandlePendingIO
    functionSourceFile: /src/openweave-core/src/inet/UDPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - Clear
    - nl::Inet::IPEndPointBasis::HandlePendingIO
    - IsReadable
    linkageType: ''
    returnType: void
    signature: UDPEndPoint::HandlePendingIO(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/openweave-core/src/inet/InetInterface.cpp:89,1
    - Dst: if_indextoname
      Src: /src/openweave-core/src/inet/InetInterface.cpp:96,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/InetInterface.cpp:97,1
    - Dst: strlen
      Src: /src/openweave-core/src/inet/InetInterface.cpp:98,1
    - Dst: strcpy
      Src: /src/openweave-core/src/inet/InetInterface.cpp:100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - intfId
    - nameBuf
    - nameBufSize
    argTypes:
    - InterfaceId
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 111
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 111
    functionName: nl::Inet::GetInterfaceName
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::MapErrorPOSIX
    - static_cast<int>
    - strlen
    - strcpy
    - if_indextoname
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: GetInterfaceName(InterfaceId intfId, char *nameBuf, size_t nameBufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/src/inet/InetInterface.cpp:133,1
    - Dst: NETIF_FOREACH
      Src: /src/openweave-core/src/inet/InetInterface.cpp:141,1
    - Dst: if_nametoindex
      Src: /src/openweave-core/src/inet/InetInterface.cpp:157,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/InetInterface.cpp:159,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - intfName
    - ' intfId'
    argTypes:
    - char*
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 162
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 162
    functionName: nl::Inet::InterfaceNameToId
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - nl::Weave::System::MapErrorPOSIX
    - NETIF_FOREACH
    - if_nametoindex
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: InterfaceNameToId(const char *intfName, InterfaceId& intfId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/openweave-core/src/inet/InetInterface.cpp:180,1
    - Dst: socket
      Src: /src/openweave-core/src/inet/InetInterface.cpp:184,1
    - Dst: fcntl
      Src: /src/openweave-core/src/inet/InetInterface.cpp:185,1
    - Dst: __sync_bool_compare_and_swap
      Src: /src/openweave-core/src/inet/InetInterface.cpp:188,1
    - Dst: close
      Src: /src/openweave-core/src/inet/InetInterface.cpp:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 194
    functionName: nl::Inet::GetIOCTLSocket
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 0
    functionsReached:
    - __sync_bool_compare_and_swap
    - close
    - fcntl
    - socket
    linkageType: ''
    returnType: int
    signature: GetIOCTLSocket(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/openweave-core/src/inet/InetInterface.cpp:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: nl::Inet::CloseIOCTLSocket
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: CloseIOCTLSocket(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openweave-core/src/inet/InetInterface.cpp:242,1
    - Dst: free
      Src: /src/openweave-core/src/inet/InetInterface.cpp:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - inArray
    argTypes:
    - struct if_nameindex*
    constantsTouched: []
    func_position:
      end: 246
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 246
    functionName: nl::Inet::backport_if_freenameindex
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: backport_if_freenameindex(struct if_nameindex * inArray)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getifaddrs
      Src: /src/openweave-core/src/inet/InetInterface.cpp:262,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/InetInterface.cpp:263,1
    - Dst: strcmp
      Src: /src/openweave-core/src/inet/InetInterface.cpp:269,1
    - Dst: malloc
      Src: /src/openweave-core/src/inet/InetInterface.cpp:275,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/InetInterface.cpp:276,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/InetInterface.cpp:277,1
    - Dst: strcmp
      Src: /src/openweave-core/src/inet/InetInterface.cpp:282,1
    - Dst: if_nametoindex
      Src: /src/openweave-core/src/inet/InetInterface.cpp:285,1
    - Dst: strdup
      Src: /src/openweave-core/src/inet/InetInterface.cpp:289,1
    - Dst: malloc
      Src: /src/openweave-core/src/inet/InetInterface.cpp:303,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/InetInterface.cpp:304,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/InetInterface.cpp:305,1
    - Dst: free
      Src: /src/openweave-core/src/inet/InetInterface.cpp:316,1
    - Dst: free
      Src: /src/openweave-core/src/inet/InetInterface.cpp:343,1
    - Dst: freeifaddrs
      Src: /src/openweave-core/src/inet/InetInterface.cpp:348,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 352
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 352
    functionName: nl::Inet::backport_if_nameindex
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 0
    functionsReached:
    - getifaddrs
    - strcmp
    - strdup
    - VerifyOrExit
    - memset
    - if_nametoindex
    - free
    - freeifaddrs
    - malloc
    linkageType: ''
    returnType: struct if_nameindex
    signature: '* backport_if_nameindex(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 362
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 362
    functionName: nl::Inet::InterfaceIterator::InterfaceIterator
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: InterfaceIterator::InterfaceIterator(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: backport_if_freenameindex
      Src: /src/openweave-core/src/inet/InetInterface.cpp:382,1
    - Dst: if_freenameindex
      Src: /src/openweave-core/src/inet/InetInterface.cpp:384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 388
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 388
    functionName: InterfaceIterator::~InterfaceIterator(void)
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 0
    functionsReached:
    - backport_if_freenameindex
    - if_freenameindex
    linkageType: ''
    returnType: void
    signature: InterfaceIterator::~InterfaceIterator(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InterfaceIterator::Next
      Src: /src/openweave-core/src/inet/InetInterface.cpp:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 408
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 408
    functionName: nl::Inet::InterfaceIterator::HasCurrent
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::InterfaceIterator::Next
    linkageType: ''
    returnType: bool
    signature: InterfaceIterator::HasCurrent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: backport_if_nameindex
      Src: /src/openweave-core/src/inet/InetInterface.cpp:439,1
    - Dst: if_nameindex
      Src: /src/openweave-core/src/inet/InetInterface.cpp:441,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/InetInterface.cpp:457,1
    - Dst: NETIF_FOREACH
      Src: /src/openweave-core/src/inet/InetInterface.cpp:463,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/InetInterface.cpp:476,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 481
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 481
    functionName: nl::Inet::InterfaceIterator::Next
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 1
    functionsReached:
    - LOCK_TCPIP_CORE
    - if_nameindex
    - UNLOCK_TCPIP_CORE
    - backport_if_nameindex
    - NETIF_FOREACH
    linkageType: ''
    returnType: bool
    signature: InterfaceIterator::Next(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InterfaceIterator::HasCurrent
      Src: /src/openweave-core/src/inet/InetInterface.cpp:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 499
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 499
    functionName: nl::Inet::InterfaceIterator::GetInterfaceId
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::InterfaceIterator::HasCurrent
    linkageType: ''
    returnType: InterfaceId
    signature: InterfaceIterator::GetInterfaceId(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/InetInterface.cpp:525,1
    - Dst: nl::Inet::InterfaceIterator::HasCurrent
      Src: /src/openweave-core/src/inet/InetInterface.cpp:525,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/InetInterface.cpp:528,1
    - Dst: strlen
      Src: /src/openweave-core/src/inet/InetInterface.cpp:528,1
    - Dst: strncpy
      Src: /src/openweave-core/src/inet/InetInterface.cpp:529,1
    - Dst: nl::Inet::GetInterfaceName
      Src: /src/openweave-core/src/inet/InetInterface.cpp:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - nameBuf
    - nameBufSize
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 539
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 539
    functionName: nl::Inet::InterfaceIterator::GetInterfaceName
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 0
    functionsReached:
    - strncpy
    - VerifyOrExit
    - strlen
    - nl::Inet::GetInterfaceName
    - nl::Inet::InterfaceIterator::HasCurrent
    linkageType: ''
    returnType: INET_ERROR
    signature: InterfaceIterator::GetInterfaceName(char * nameBuf, size_t nameBufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InterfaceIterator::GetFlags
      Src: /src/openweave-core/src/inet/InetInterface.cpp:550,1
    - Dst: nl::Inet::InterfaceIterator::HasCurrent
      Src: /src/openweave-core/src/inet/InetInterface.cpp:554,1
    - Dst: netif_is_up
      Src: /src/openweave-core/src/inet/InetInterface.cpp:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 556
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 556
    functionName: nl::Inet::InterfaceIterator::IsUp
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 0
    functionsReached:
    - netif_is_up
    - nl::Inet::InterfaceIterator::GetFlags
    - nl::Inet::InterfaceIterator::HasCurrent
    linkageType: ''
    returnType: bool
    signature: InterfaceIterator::IsUp(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InterfaceIterator::GetFlags
      Src: /src/openweave-core/src/inet/InetInterface.cpp:567,1
    - Dst: nl::Inet::InterfaceIterator::HasCurrent
      Src: /src/openweave-core/src/inet/InetInterface.cpp:571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 578
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 578
    functionName: nl::Inet::InterfaceIterator::SupportsMulticast
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::InterfaceIterator::GetFlags
    - nl::Inet::InterfaceIterator::HasCurrent
    linkageType: ''
    returnType: bool
    signature: InterfaceIterator::SupportsMulticast(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InterfaceIterator::GetFlags
      Src: /src/openweave-core/src/inet/InetInterface.cpp:589,1
    - Dst: nl::Inet::InterfaceIterator::HasCurrent
      Src: /src/openweave-core/src/inet/InetInterface.cpp:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 595
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 595
    functionName: nl::Inet::InterfaceIterator::HasBroadcastAddress
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::InterfaceIterator::GetFlags
    - nl::Inet::InterfaceIterator::HasCurrent
    linkageType: ''
    returnType: bool
    signature: InterfaceIterator::HasBroadcastAddress(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InterfaceIterator::HasCurrent
      Src: /src/openweave-core/src/inet/InetInterface.cpp:609,1
    - Dst: strncpy
      Src: /src/openweave-core/src/inet/InetInterface.cpp:611,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 623
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 623
    functionName: nl::Inet::InterfaceIterator::GetFlags
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 3
    functionsReached:
    - strncpy
    - nl::Inet::InterfaceIterator::HasCurrent
    linkageType: ''
    returnType: short
    signature: InterfaceIterator::GetFlags(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 643
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 643
    functionName: nl::Inet::InterfaceAddressIterator::InterfaceAddressIterator
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: InterfaceAddressIterator::InterfaceAddressIterator(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: freeifaddrs
      Src: /src/openweave-core/src/inet/InetInterface.cpp:663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 666
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 666
    functionName: InterfaceAddressIterator::~InterfaceAddressIterator(void)
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 0
    functionsReached:
    - freeifaddrs
    linkageType: ''
    returnType: void
    signature: InterfaceAddressIterator::~InterfaceAddressIterator(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InterfaceAddressIterator::Next
      Src: /src/openweave-core/src/inet/InetInterface.cpp:682,1
    - Dst: nl::Inet::InterfaceAddressIterator::HasCurrent
      Src: /src/openweave-core/src/inet/InetInterface.cpp:688,1
    - Dst: nl::Inet::InterfaceAddressIterator::Next
      Src: /src/openweave-core/src/inet/InetInterface.cpp:688,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 691
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 691
    functionName: nl::Inet::InterfaceAddressIterator::HasCurrent
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 1
    functionsReached:
    - nl::Inet::InterfaceAddressIterator::Next
    - nl::Inet::InterfaceAddressIterator::HasCurrent
    linkageType: ''
    returnType: bool
    signature: InterfaceAddressIterator::HasCurrent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InterfaceAddressIterator::HasCurrent
      Src: /src/openweave-core/src/inet/InetInterface.cpp:751,1
    - Dst: nl::Inet::InterfaceAddressIterator::GetInterfaceId
      Src: /src/openweave-core/src/inet/InetInterface.cpp:753,1
    - Dst: ip6_addr_isvalid
      Src: /src/openweave-core/src/inet/InetInterface.cpp:757,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/src/inet/InetInterface.cpp:757,1
    - Dst: ip4_addr_isany
      Src: /src/openweave-core/src/inet/InetInterface.cpp:767,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/src/inet/InetInterface.cpp:767,1
    - Dst: nl::Inet::InterfaceAddressIterator::Next
      Src: /src/openweave-core/src/inet/InetInterface.cpp:774,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 781
      start: 709
    functionDepth: 2
    functionLinenumber: 709
    functionLinenumberEnd: 781
    functionName: nl::Inet::InterfaceAddressIterator::Next
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 2
    functionsReached:
    - ip4_addr_isany
    - netif_ip4_addr
    - nl::Inet::InterfaceAddressIterator::Next
    - nl::Inet::InterfaceAddressIterator::GetInterfaceId
    - ip6_addr_isvalid
    - nl::Inet::InterfaceAddressIterator::HasCurrent
    - netif_ip6_addr_state
    linkageType: ''
    returnType: bool
    signature: InterfaceAddressIterator::Next(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InterfaceAddressIterator::HasCurrent
      Src: /src/openweave-core/src/inet/InetInterface.cpp:793,1
    - Dst: nl::Inet::IPAddress::FromSockAddr
      Src: /src/openweave-core/src/inet/InetInterface.cpp:796,1
    - Dst: nl::Inet::InterfaceAddressIterator::GetInterfaceId
      Src: /src/openweave-core/src/inet/InetInterface.cpp:800,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/inet/InetInterface.cpp:804,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/src/inet/InetInterface.cpp:804,1
    - Dst: nl::Inet::IPAddress::FromIPv4
      Src: /src/openweave-core/src/inet/InetInterface.cpp:809,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/src/inet/InetInterface.cpp:809,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 816
      start: 791
    functionDepth: 2
    functionLinenumber: 791
    functionLinenumberEnd: 816
    functionName: nl::Inet::InterfaceAddressIterator::GetAddress
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 0
    functionsReached:
    - netif_ip4_addr
    - netif_ip6_addr
    - nl::Inet::IPAddress::FromIPv6
    - nl::Inet::InterfaceAddressIterator::GetInterfaceId
    - nl::Inet::InterfaceAddressIterator::HasCurrent
    - nl::Inet::IPAddress::FromSockAddr
    - nl::Inet::IPAddress::FromIPv4
    linkageType: ''
    returnType: IPAddress
    signature: InterfaceAddressIterator::GetAddress(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InterfaceAddressIterator::HasCurrent
      Src: /src/openweave-core/src/inet/InetInterface.cpp:837,1
    - Dst: NetmaskToPrefixLength
      Src: /src/openweave-core/src/inet/InetInterface.cpp:843,1
    - Dst: NetmaskToPrefixLength
      Src: /src/openweave-core/src/inet/InetInterface.cpp:848,1
    - Dst: nl::Inet::InterfaceAddressIterator::GetInterfaceId
      Src: /src/openweave-core/src/inet/InetInterface.cpp:860,1
    - Dst: NetmaskToPrefixLength
      Src: /src/openweave-core/src/inet/InetInterface.cpp:861,1
    - Dst: netif_ip4_netmask
      Src: /src/openweave-core/src/inet/InetInterface.cpp:861,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 867
      start: 835
    functionDepth: 2
    functionLinenumber: 835
    functionLinenumberEnd: 867
    functionName: nl::Inet::InterfaceAddressIterator::GetPrefixLength
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::InterfaceAddressIterator::GetInterfaceId
    - nl::Inet::InterfaceAddressIterator::HasCurrent
    - NetmaskToPrefixLength
    - netif_ip4_netmask
    linkageType: ''
    returnType: uint8_t
    signature: InterfaceAddressIterator::GetPrefixLength(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InterfaceAddressIterator::HasCurrent
      Src: /src/openweave-core/src/inet/InetInterface.cpp:880,1
    - Dst: if_nametoindex
      Src: /src/openweave-core/src/inet/InetInterface.cpp:883,1
    - Dst: nl::Inet::InterfaceAddressIterator::GetInterfaceId
      Src: /src/openweave-core/src/inet/InetInterface.cpp:887,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 891
      start: 878
    functionDepth: 2
    functionLinenumber: 878
    functionLinenumberEnd: 891
    functionName: nl::Inet::InterfaceAddressIterator::GetInterfaceId
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 4
    functionsReached:
    - nl::Inet::InterfaceAddressIterator::HasCurrent
    - nl::Inet::InterfaceAddressIterator::GetInterfaceId
    - if_nametoindex
    linkageType: ''
    returnType: InterfaceId
    signature: InterfaceAddressIterator::GetInterfaceId(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/InetInterface.cpp:917,1
    - Dst: nl::Inet::InterfaceAddressIterator::HasCurrent
      Src: /src/openweave-core/src/inet/InetInterface.cpp:917,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/InetInterface.cpp:920,1
    - Dst: strlen
      Src: /src/openweave-core/src/inet/InetInterface.cpp:920,1
    - Dst: strncpy
      Src: /src/openweave-core/src/inet/InetInterface.cpp:921,1
    - Dst: nl::Inet::InterfaceAddressIterator::GetInterfaceName
      Src: /src/openweave-core/src/inet/InetInterface.cpp:926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - nameBuf
    - nameBufSize
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 931
      start: 913
    functionDepth: 2
    functionLinenumber: 913
    functionLinenumberEnd: 931
    functionName: nl::Inet::InterfaceAddressIterator::GetInterfaceName
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 1
    functionsReached:
    - nl::Inet::InterfaceAddressIterator::GetInterfaceName
    - VerifyOrExit
    - strncpy
    - strlen
    - nl::Inet::InterfaceAddressIterator::HasCurrent
    linkageType: ''
    returnType: INET_ERROR
    signature: InterfaceAddressIterator::GetInterfaceName(char * nameBuf, size_t nameBufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InterfaceAddressIterator::HasCurrent
      Src: /src/openweave-core/src/inet/InetInterface.cpp:944,1
    - Dst: nl::Inet::InterfaceAddressIterator::IsUp
      Src: /src/openweave-core/src/inet/InetInterface.cpp:951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 955
      start: 942
    functionDepth: 2
    functionLinenumber: 942
    functionLinenumberEnd: 955
    functionName: nl::Inet::InterfaceAddressIterator::IsUp
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 1
    functionsReached:
    - nl::Inet::InterfaceAddressIterator::IsUp
    - nl::Inet::InterfaceAddressIterator::HasCurrent
    linkageType: ''
    returnType: bool
    signature: InterfaceAddressIterator::IsUp(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InterfaceAddressIterator::HasCurrent
      Src: /src/openweave-core/src/inet/InetInterface.cpp:968,1
    - Dst: nl::Inet::InterfaceAddressIterator::SupportsMulticast
      Src: /src/openweave-core/src/inet/InetInterface.cpp:975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 979
      start: 966
    functionDepth: 2
    functionLinenumber: 966
    functionLinenumberEnd: 979
    functionName: nl::Inet::InterfaceAddressIterator::SupportsMulticast
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 1
    functionsReached:
    - nl::Inet::InterfaceAddressIterator::SupportsMulticast
    - nl::Inet::InterfaceAddressIterator::HasCurrent
    linkageType: ''
    returnType: bool
    signature: InterfaceAddressIterator::SupportsMulticast(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InterfaceAddressIterator::HasCurrent
      Src: /src/openweave-core/src/inet/InetInterface.cpp:992,1
    - Dst: nl::Inet::InterfaceAddressIterator::HasBroadcastAddress
      Src: /src/openweave-core/src/inet/InetInterface.cpp:999,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 990
    functionDepth: 2
    functionLinenumber: 990
    functionLinenumberEnd: 1003
    functionName: nl::Inet::InterfaceAddressIterator::HasBroadcastAddress
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 1
    functionsReached:
    - nl::Inet::InterfaceAddressIterator::HasBroadcastAddress
    - nl::Inet::InterfaceAddressIterator::HasCurrent
    linkageType: ''
    returnType: bool
    signature: InterfaceAddressIterator::HasBroadcastAddress(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InterfaceAddressIterator::HasCurrent
      Src: /src/openweave-core/src/inet/InetInterface.cpp:1013,1
    - Dst: nl::Inet::InterfaceAddressIterator::GetAddress
      Src: /src/openweave-core/src/inet/InetInterface.cpp:1015,1
    - Dst: nl::Inet::InterfaceAddressIterator::GetPrefixLength
      Src: /src/openweave-core/src/inet/InetInterface.cpp:1016,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' addrWithPrefix'
    argTypes:
    - IPPrefix
    constantsTouched: []
    func_position:
      end: 1022
      start: 1011
    functionDepth: 3
    functionLinenumber: 1011
    functionLinenumberEnd: 1022
    functionName: nl::Inet::InterfaceAddressIterator::GetAddressWithPrefix
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::InterfaceAddressIterator::GetPrefixLength
    - nl::Inet::InterfaceAddressIterator::HasCurrent
    - nl::Inet::InterfaceAddressIterator::GetAddress
    linkageType: ''
    returnType: void
    signature: InterfaceAddressIterator::GetAddressWithPrefix(IPPrefix & addrWithPrefix)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - netmask
    - netmaskLen
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1056
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1056
    functionName: nl::Inet::NetmaskToPrefixLength
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: NetmaskToPrefixLength(const uint8_t * netmask, uint16_t netmaskLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<INET_ERROR>
      Src: /src/openweave-core/src/inet/InetError.h:412,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/InetError.h:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 413
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 413
    functionName: INET_MapOSError
    functionSourceFile: /src/openweave-core/src/inet/InetError.h
    functionUses: 0
    functionsReached:
    - nl::Weave::System::MapErrorPOSIX
    - static_cast<INET_ERROR>
    linkageType: ''
    returnType: INET_ERROR
    signature: INET_MapOSError(int e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::DescribeErrorPOSIX
      Src: /src/openweave-core/src/inet/InetError.h:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: INET_DescribeOSError
    functionSourceFile: /src/openweave-core/src/inet/InetError.h
    functionUses: 0
    functionsReached:
    - nl::Weave::System::DescribeErrorPOSIX
    linkageType: ''
    returnType: char
    signature: '*INET_DescribeOSError(INET_ERROR err)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::IsErrorPOSIX
      Src: /src/openweave-core/src/inet/InetError.h:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 445
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 445
    functionName: INET_IsOSError
    functionSourceFile: /src/openweave-core/src/inet/InetError.h
    functionUses: 0
    functionsReached:
    - nl::Weave::System::IsErrorPOSIX
    linkageType: ''
    returnType: bool
    signature: INET_IsOSError(INET_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<INET_ERROR>
      Src: /src/openweave-core/src/inet/InetError.h:473,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/InetError.h:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - err_t
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: INET_MapLwIPError
    functionSourceFile: /src/openweave-core/src/inet/InetError.h
    functionUses: 0
    functionsReached:
    - nl::Weave::System::MapErrorLwIP
    - static_cast<INET_ERROR>
    linkageType: ''
    returnType: INET_ERROR
    signature: INET_MapLwIPError(err_t e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::DescribeErrorLwIP
      Src: /src/openweave-core/src/inet/InetError.h:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 490
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 490
    functionName: INET_DescribeLwIPError
    functionSourceFile: /src/openweave-core/src/inet/InetError.h
    functionUses: 0
    functionsReached:
    - nl::Weave::System::DescribeErrorLwIP
    linkageType: ''
    returnType: char
    signature: '*INET_DescribeLwIPError(INET_ERROR err)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::IsErrorLwIP
      Src: /src/openweave-core/src/inet/InetError.h:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 506
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 506
    functionName: INET_IsLwIPError
    functionSourceFile: /src/openweave-core/src/inet/InetError.h
    functionUses: 0
    functionsReached:
    - nl::Weave::System::IsErrorLwIP
    linkageType: ''
    returnType: bool
    signature: INET_IsLwIPError(INET_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 395
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 395
    functionName: nl::Inet::InetLayer
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: InetLayer
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 400
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 400
    functionName: nl::Inet::InetLayer::SystemLayer
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Weave::System::Layer
    signature: '* InetLayer::SystemLayer(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InetLayer::Init
      Src: /src/openweave-core/src/inet/InetLayer.h:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 406
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 406
    functionName: nl::Inet::InetLayer::Init
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.h
    functionUses: 5
    functionsReached:
    - nl::Inet::InetLayer::Init
    linkageType: ''
    returnType: INET_ERROR
    signature: InetLayer::Init(void* aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InetLayer::DispatchEvent
      Src: /src/openweave-core/src/inet/InetLayer.h:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aEvent
    argTypes:
    - InetEvent
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: nl::Inet::InetLayer::DispatchEvent
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.h
    functionUses: 1
    functionsReached:
    - nl::Inet::InetLayer::DispatchEvent
    linkageType: ''
    returnType: INET_ERROR
    signature: InetLayer::DispatchEvent(InetEvent aEvent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InetLayer::HandleEvent
      Src: /src/openweave-core/src/inet/InetLayer.h:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' target'
    - type
    - arg
    argTypes:
    - InetLayerBasis
    - InetEventType
    - uintptr_t
    constantsTouched: []
    func_position:
      end: 417
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 417
    functionName: nl::Inet::InetLayer::HandleEvent
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.h
    functionUses: 1
    functionsReached:
    - nl::Inet::InetLayer::HandleEvent
    linkageType: ''
    returnType: INET_ERROR
    signature: InetLayer::HandleEvent(InetLayerBasis& target, InetEventType type,
      uintptr_t arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InetLayer::WakeSelect
      Src: /src/openweave-core/src/inet/InetLayer.h:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 424
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 424
    functionName: nl::Inet::InetLayer::WakeSelect
    functionSourceFile: /src/openweave-core/src/inet/InetLayer.h
    functionUses: 1
    functionsReached:
    - nl::Inet::InetLayer::WakeSelect
    linkageType: ''
    returnType: void
    signature: InetLayer::WakeSelect(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - _aContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: nil_tcpip_callback
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: nil_tcpip_callback(void * _aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_callback
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: start_tcp_timers
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - tcpip_callback
    linkageType: ''
    returnType: err_t
    signature: start_tcp_timers(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddress::Type
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:122,1
    - Dst: IPAddress::Type
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:122,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:128,1
    - Dst: nl::Inet::TCPEndPoint::GetPCB
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:131,1
    - Dst: ip_set_option
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:138,1
    - Dst: IPAddress::ToLwIPAddr
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:146,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:160,1
    - Dst: tcp_bind
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:160,1
    - Dst: IPAddress::ToIPv6
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:166,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:167,1
    - Dst: tcp_bind_ip6
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:167,1
    - Dst: IPAddress::ToIPv4
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:172,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:173,1
    - Dst: tcp_bind
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:173,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:183,1
    - Dst: nl::Inet::TCPEndPoint::GetSocket
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:189,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:194,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:207,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:209,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:220,1
    - Dst: htons
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:222,1
    - Dst: IPAddress::ToIPv6
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:224,1
    - Dst: bind
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:227,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:228,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:234,1
    - Dst: htons
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:236,1
    - Dst: IPAddress::ToIPv4
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:237,1
    - Dst: bind
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:239,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:240,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 4
    argNames:
    - addrType
    - addr
    - port
    - reuseAddr
    argTypes:
    - IPAddressType
    - IPAddress
    - uint16_t
    - bool
    constantsTouched: []
    func_position:
      end: 253
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 253
    functionName: nl::Inet::TCPEndPoint::Bind
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - tcp_bind_ip6
    - nl::Inet::TCPEndPoint::GetSocket
    - LOCK_TCPIP_CORE
    - WeaveLogError
    - nl::Inet::TCPEndPoint::GetPCB
    - nl::Weave::System::MapErrorLwIP
    - IPAddress::ToIPv6
    - IPAddress::ToLwIPAddr
    - ip_set_option
    - memset
    - tcp_bind
    - bind
    - htons
    - IPAddress::ToIPv4
    - UNLOCK_TCPIP_CORE
    - nl::Weave::System::MapErrorPOSIX
    - setsockopt
    - IPAddress::Type
    linkageType: ''
    returnType: INET_ERROR
    signature: TCPEndPoint::Bind(IPAddressType addrType, IPAddress addr, uint16_t
      port, bool reuseAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SystemLayer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:260,1
    - Dst: tcp_listen
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:269,1
    - Dst: tcp_arg
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:272,1
    - Dst: tcp_accept
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:274,1
    - Dst: listen
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:280,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:281,1
    - Dst: WakeSelect
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:284,1
    - Dst: Retain
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - backlog
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 297
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 297
    functionName: nl::Inet::TCPEndPoint::Listen
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - SystemLayer
    - tcp_accept
    - tcp_listen
    - Retain
    - nl::Weave::System::MapErrorPOSIX
    - tcp_arg
    - WakeSelect
    - listen
    linkageType: ''
    returnType: INET_ERROR
    signature: TCPEndPoint::Listen(uint16_t backlog)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 310
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 310
    functionName: nl::Inet::TCPConnRepairInfo::IsValid
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: TCPConnRepairInfo::IsValid (void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToString
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:316,1
    - Dst: ToString
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:317,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:319,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:320,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:322,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:325,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 331
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 331
    functionName: nl::Inet::TCPConnRepairInfo::Dump
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDetail
    - ToString
    linkageType: ''
    returnType: void
    signature: TCPConnRepairInfo::Dump (void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:339,1
    - Dst: TCPConnRepairInfo::IsValid
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:348,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:350,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:351,1
    - Dst: TCPConnRepairInfo::Dump
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:355,1
    - Dst: nl::Inet::TCPEndPoint::GetSocket
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:357,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:359,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:362,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:364,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:365,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:365,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:369,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:371,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:372,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:372,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:378,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:380,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:381,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:381,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:385,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:386,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:388,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:389,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:389,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:393,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:394,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:395,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:395,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:399,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:400,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:401,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:402,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:402,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:408,1
    - Dst: TCPConnRepairInfo::srcIP::ToIPv6
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:410,1
    - Dst: htons
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:411,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:413,1
    - Dst: TCPConnRepairInfo::dstIP::ToIPv6
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:415,1
    - Dst: htons
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:416,1
    - Dst: bind
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:418,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:420,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:421,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:421,1
    - Dst: connect
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:424,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:426,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:427,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:427,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:434,1
    - Dst: TCPConnRepairInfo::srcIP::ToIPv4
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:436,1
    - Dst: htons
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:437,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:439,1
    - Dst: TCPConnRepairInfo::dstIP::ToIPv4
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:441,1
    - Dst: htons
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:442,1
    - Dst: bind
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:444,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:446,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:447,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:447,1
    - Dst: connect
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:450,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:452,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:453,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:453,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:459,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:466,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:474,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:475,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:483,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:489,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:494,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:496,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:497,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:497,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:502,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:504,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:505,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:505,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:520,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:522,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:523,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:523,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:528,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:530,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:531,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:531,1
    - Dst: Retain
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:537,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 129
    argCount: 2
    argNames:
    - connRepairInfo
    - intf
    argTypes:
    - TCPConnRepairInfo
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 546
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 546
    functionName: nl::Inet::TCPEndPoint::RepairConnection
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TCPEndPoint::GetSocket
    - WeaveLogError
    - TCPConnRepairInfo::dstIP::ToIPv4
    - ExitNow
    - memset
    - connect
    - bind
    - htons
    - setsockopt
    - WeaveLogDetail
    - TCPConnRepairInfo::dstIP::ToIPv6
    - Retain
    - TCPConnRepairInfo::srcIP::ToIPv6
    - nl::Weave::System::MapErrorPOSIX
    - TCPConnRepairInfo::IsValid
    - TCPConnRepairInfo::srcIP::ToIPv4
    - TCPConnRepairInfo::Dump
    linkageType: ''
    returnType: INET_ERROR
    signature: TCPEndPoint::RepairConnection(const TCPConnRepairInfo &connRepairInfo,
      InterfaceId intf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SystemLayer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:554,1
    - Dst: IPAddress::Type
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:560,1
    - Dst: Layer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:571,1
    - Dst: IPAddress::IsIPv6LinkLocal
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:573,1
    - Dst: GetLinkLocalAddr
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:576,1
    - Dst: nl::Inet::TCPEndPoint::Bind
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:580,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:586,1
    - Dst: nl::Inet::TCPEndPoint::GetPCB
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:588,1
    - Dst: tcp_arg
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:592,1
    - Dst: tcp_err
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:593,1
    - Dst: IPAddress::ToLwIPAddr
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:596,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:597,1
    - Dst: tcp_connect
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:597,1
    - Dst: IPAddress::ToIPv6
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:601,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:602,1
    - Dst: tcp_connect_ip6
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:602,1
    - Dst: IPAddress::ToIPv4
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:607,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:608,1
    - Dst: tcp_connect
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:608,1
    - Dst: start_tcp_timers
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:618,1
    - Dst: Retain
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:624,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:629,1
    - Dst: nl::Inet::TCPEndPoint::GetSocket
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:635,1
    - Dst: IPAddress::IsIPv6LinkLocal
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:643,1
    - Dst: IPAddress::IsIPv6LinkLocal
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:653,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:657,1
    - Dst: GetInterfaceName
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:659,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:670,1
    - Dst: nl::Inet::TCPEndPoint::BindSrcAddrFromIntf
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:679,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:689,1
    - Dst: fcntl
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:694,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:707,1
    - Dst: htons
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:712,1
    - Dst: IPAddress::ToIPv6
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:714,1
    - Dst: htons
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:723,1
    - Dst: IPAddress::ToIPv4
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:724,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:736,1
    - Dst: nl::Inet::TCPEndPoint::DoClose
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:737,1
    - Dst: Retain
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:743,1
    - Dst: OnConnectComplete
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:749,1
    - Dst: WakeSelect
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:755,1
    - Dst: nl::Inet::TCPEndPoint::StartConnectTimerIfSet
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:759,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 89
    argCount: 3
    argNames:
    - addr
    - port
    - intf
    argTypes:
    - IPAddress
    - uint16_t
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 762
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 762
    functionName: nl::Inet::TCPEndPoint::Connect
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - tcp_connect
    - Layer
    - htons
    - nl::Inet::TCPEndPoint::StartConnectTimerIfSet
    - UNLOCK_TCPIP_CORE
    - WakeSelect
    - nl::Inet::TCPEndPoint::GetSocket
    - LOCK_TCPIP_CORE
    - tcp_connect_ip6
    - IPAddress::ToIPv6
    - IPAddress::ToLwIPAddr
    - nl::Inet::TCPEndPoint::DoClose
    - OnConnectComplete
    - IPAddress::IsIPv6LinkLocal
    - nl::Inet::TCPEndPoint::GetPCB
    - nl::Inet::TCPEndPoint::Bind
    - memset
    - GetInterfaceName
    - GetLinkLocalAddr
    - IPAddress::ToIPv4
    - tcp_err
    - nl::Weave::System::MapErrorPOSIX
    - start_tcp_timers
    - setsockopt
    - IPAddress::Type
    - nl::Inet::TCPEndPoint::BindSrcAddrFromIntf
    - SystemLayer
    - fcntl
    - nl::Weave::System::MapErrorLwIP
    - Retain
    - tcp_arg
    linkageType: ''
    returnType: INET_ERROR
    signature: TCPEndPoint::Connect(IPAddress addr, uint16_t port, InterfaceId intf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - connTimeoutMsecs
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 775
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 775
    functionName: nl::Inet::TCPEndPoint::SetConnectTimeout
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::SetConnectTimeout(const uint32_t connTimeoutMsecs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SystemLayer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:781,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 785
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 785
    functionName: nl::Inet::TCPEndPoint::StartConnectTimerIfSet
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 1
    functionsReached:
    - SystemLayer
    - StartTimer
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::StartConnectTimerIfSet(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SystemLayer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:789,1
    - Dst: CancelTimer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 792
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 792
    functionName: nl::Inet::TCPEndPoint::StopConnectTimer
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - CancelTimer
    - SystemLayer
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::StopConnectTimer(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<TCPEndPoint *>
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:796,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:798,1
    - Dst: TCPEndPoint*::DoClose
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - Weave::System::Layer*
    - void*
    - Weave::System::Error
    constantsTouched: []
    func_position:
      end: 803
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 803
    functionName: nl::Inet::TCPEndPoint::TCPConnectTimeoutHandler
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - TCPEndPoint*::DoClose
    - reinterpret_cast<TCPEndPoint *>
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::TCPConnectTimeoutHandler(Weave::System::Layer* aSystemLayer,
      void* aAppState, Weave::System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TCPEndPoint::IsConnected
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:809,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:815,1
    - Dst: nl::Inet::IPAddress::FromLwIPAddr
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:822,1
    - Dst: PCB_ISIPV6
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:825,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:825,1
    - Dst: nl::Inet::IPAddress::FromIPv4
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:825,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:827,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:835,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:847,1
    - Dst: getpeername
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:850,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:851,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:855,1
    - Dst: ntohs
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:856,1
    - Dst: nl::Inet::IPAddress::FromIPv4
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:861,1
    - Dst: ntohs
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:862,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - retAddr
    - retPort
    argTypes:
    - IPAddress*
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 871
      start: 805
    functionDepth: 2
    functionLinenumber: 805
    functionLinenumberEnd: 871
    functionName: nl::Inet::TCPEndPoint::GetPeerInfo
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - LOCK_TCPIP_CORE
    - ntohs
    - nl::Inet::IPAddress::FromIPv6
    - memset
    - PCB_ISIPV6
    - nl::Inet::IPAddress::FromLwIPAddr
    - UNLOCK_TCPIP_CORE
    - getpeername
    - nl::Weave::System::MapErrorPOSIX
    - nl::Inet::IPAddress::FromIPv4
    - nl::Inet::TCPEndPoint::IsConnected
    linkageType: ''
    returnType: INET_ERROR
    signature: TCPEndPoint::GetPeerInfo(IPAddress *retAddr, uint16_t *retPort) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TCPEndPoint::IsConnected
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:877,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:883,1
    - Dst: nl::Inet::IPAddress::FromLwIPAddr
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:890,1
    - Dst: PCB_ISIPV6
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:893,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:893,1
    - Dst: nl::Inet::IPAddress::FromIPv4
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:893,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:895,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:903,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:918,1
    - Dst: getsockname
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:921,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:922,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:926,1
    - Dst: ntohs
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:927,1
    - Dst: nl::Inet::IPAddress::FromIPv4
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:932,1
    - Dst: ntohs
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:933,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - retAddr
    - retPort
    argTypes:
    - IPAddress*
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 942
      start: 873
    functionDepth: 2
    functionLinenumber: 873
    functionLinenumberEnd: 942
    functionName: nl::Inet::TCPEndPoint::GetLocalInfo
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - LOCK_TCPIP_CORE
    - ntohs
    - nl::Inet::IPAddress::FromIPv6
    - getsockname
    - memset
    - PCB_ISIPV6
    - nl::Inet::IPAddress::FromLwIPAddr
    - UNLOCK_TCPIP_CORE
    - nl::Weave::System::MapErrorPOSIX
    - nl::Inet::IPAddress::FromIPv4
    - nl::Inet::TCPEndPoint::IsConnected
    linkageType: ''
    returnType: INET_ERROR
    signature: TCPEndPoint::GetLocalInfo(IPAddress *retAddr, uint16_t *retPort)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:950,1
    - Dst: AddToEnd
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:957,1
    - Dst: nl::Inet::TCPEndPoint::StartTCPUserTimeoutTimer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:967,1
    - Dst: nl::Inet::TCPEndPoint::DriveSending
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:974,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - data
    - push
    argTypes:
    - PacketBuffer*
    - bool
    constantsTouched: []
    func_position:
      end: 977
      start: 944
    functionDepth: 1
    functionLinenumber: 944
    functionLinenumberEnd: 977
    functionName: nl::Inet::TCPEndPoint::Send
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - AddToEnd
    - nl::Inet::TCPEndPoint::StartTCPUserTimeoutTimer
    - nl::Weave::System::PacketBuffer::Free
    - nl::Inet::TCPEndPoint::DriveSending
    linkageType: ''
    returnType: INET_ERROR
    signature: TCPEndPoint::Send(PacketBuffer *data, bool push)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 982
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 982
    functionName: nl::Inet::TCPEndPoint::DisableReceive
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::DisableReceive()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SystemLayer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:987,1
    - Dst: nl::Inet::TCPEndPoint::DriveReceiving
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:992,1
    - Dst: WakeSelect
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 984
    functionDepth: 1
    functionLinenumber: 984
    functionLinenumberEnd: 1001
    functionName: nl::Inet::TCPEndPoint::EnableReceive
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - SystemLayer
    - nl::Inet::TCPEndPoint::DriveReceiving
    - WakeSelect
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::EnableReceive()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TCPEndPoint::IsConnected
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1016,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1021,1
    - Dst: tcp_nagle_disable
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1024,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1029,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1040,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1041,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1048
    functionName: nl::Inet::TCPEndPoint::EnableNoDelay
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - tcp_nagle_disable
    - LOCK_TCPIP_CORE
    - UNLOCK_TCPIP_CORE
    - nl::Weave::System::MapErrorPOSIX
    - setsockopt
    - nl::Inet::TCPEndPoint::IsConnected
    linkageType: ''
    returnType: INET_ERROR
    signature: TCPEndPoint::EnableNoDelay(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TCPEndPoint::IsConnected
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1076,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1084,1
    - Dst: ip_set_option
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1098,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1104,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1120,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1121,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1125,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1126,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1130,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1131,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1135,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1136,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - interval
    - timeoutCount
    argTypes:
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1142
      start: 1072
    functionDepth: 1
    functionLinenumber: 1072
    functionLinenumberEnd: 1142
    functionName: nl::Inet::TCPEndPoint::EnableKeepAlive
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - LOCK_TCPIP_CORE
    - ip_set_option
    - UNLOCK_TCPIP_CORE
    - nl::Weave::System::MapErrorPOSIX
    - setsockopt
    - nl::Inet::TCPEndPoint::IsConnected
    linkageType: ''
    returnType: INET_ERROR
    signature: TCPEndPoint::EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TCPEndPoint::IsConnected
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1160,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1168,1
    - Dst: ip_reset_option
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1173,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1179,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1196,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1156
    functionDepth: 1
    functionLinenumber: 1156
    functionLinenumberEnd: 1203
    functionName: nl::Inet::TCPEndPoint::DisableKeepAlive
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - LOCK_TCPIP_CORE
    - ip_reset_option
    - UNLOCK_TCPIP_CORE
    - nl::Weave::System::MapErrorPOSIX
    - setsockopt
    - nl::Inet::TCPEndPoint::IsConnected
    linkageType: ''
    returnType: INET_ERROR
    signature: TCPEndPoint::DisableKeepAlive()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TCPEndPoint::IsConnected
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1228,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1246,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - userTimeoutMillis
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1261
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1261
    functionName: nl::Inet::TCPEndPoint::SetUserTimeout
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::MapErrorPOSIX
    - setsockopt
    - nl::Inet::TCPEndPoint::IsConnected
    linkageType: ''
    returnType: INET_ERROR
    signature: TCPEndPoint::SetUserTimeout(uint32_t userTimeoutMillis)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TCPEndPoint::IsConnected
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1267,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1273,1
    - Dst: tcp_recved
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1276,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - len
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1292
      start: 1263
    functionDepth: 1
    functionLinenumber: 1263
    functionLinenumberEnd: 1292
    functionName: nl::Inet::TCPEndPoint::AckReceive
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - tcp_recved
    - LOCK_TCPIP_CORE
    - UNLOCK_TCPIP_CORE
    - nl::Inet::TCPEndPoint::IsConnected
    linkageType: ''
    returnType: INET_ERROR
    signature: TCPEndPoint::AckReceive(uint16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TCPEndPoint::IsConnected
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1302
      start: 1294
    functionDepth: 0
    functionLinenumber: 1294
    functionLinenumberEnd: 1302
    functionName: nl::Inet::TCPEndPoint::PutBackReceivedData
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TCPEndPoint::IsConnected
    linkageType: ''
    returnType: INET_ERROR
    signature: TCPEndPoint::PutBackReceivedData(PacketBuffer *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TotalLength
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1304
    functionDepth: 0
    functionLinenumber: 1304
    functionLinenumberEnd: 1310
    functionName: nl::Inet::TCPEndPoint::PendingSendLength
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - TotalLength
    linkageType: ''
    returnType: uint32_t
    signature: TCPEndPoint::PendingSendLength()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TotalLength
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1312
    functionDepth: 0
    functionLinenumber: 1312
    functionLinenumberEnd: 1318
    functionName: nl::Inet::TCPEndPoint::PendingReceiveLength
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - TotalLength
    linkageType: ''
    returnType: uint32_t
    signature: TCPEndPoint::PendingReceiveLength()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TCPEndPoint::IsConnected
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1324,1
    - Dst: nl::Inet::TCPEndPoint::DriveSending
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1331,1
    - Dst: nl::Inet::TCPEndPoint::DoClose
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1336,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1320
    functionDepth: 1
    functionLinenumber: 1320
    functionLinenumberEnd: 1339
    functionName: nl::Inet::TCPEndPoint::Shutdown
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TCPEndPoint::DoClose
    - nl::Inet::TCPEndPoint::DriveSending
    - nl::Inet::TCPEndPoint::IsConnected
    linkageType: ''
    returnType: INET_ERROR
    signature: TCPEndPoint::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1344,1
    - Dst: nl::Inet::TCPEndPoint::DoClose
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1341
    functionDepth: 1
    functionLinenumber: 1341
    functionLinenumberEnd: 1354
    functionName: nl::Inet::TCPEndPoint::Close
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TCPEndPoint::DoClose
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: INET_ERROR
    signature: TCPEndPoint::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TCPEndPoint::DoClose
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1356
    functionDepth: 1
    functionLinenumber: 1356
    functionLinenumberEnd: 1364
    functionName: nl::Inet::TCPEndPoint::Abort
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TCPEndPoint::DoClose
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::Abort()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TCPEndPoint::Close
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1380,1
    - Dst: nl::Inet::TCPEndPoint::Abort
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1382,1
    - Dst: Release
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1366
    functionDepth: 2
    functionLinenumber: 1366
    functionLinenumberEnd: 1388
    functionName: nl::Inet::TCPEndPoint::Free
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - Release
    - nl::Inet::TCPEndPoint::Abort
    - nl::Inet::TCPEndPoint::Close
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::Free()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Layer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1394,1
    - Dst: SystemLayer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1403,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - timeoutMS
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1407
      start: 1391
    functionDepth: 0
    functionLinenumber: 1391
    functionLinenumberEnd: 1407
    functionName: nl::Inet::TCPEndPoint::SetIdleTimeout
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - Layer
    - StartTimer
    - SystemLayer
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::SetIdleTimeout(uint32_t timeoutMS)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1413
      start: 1410
    functionDepth: 0
    functionLinenumber: 1410
    functionLinenumberEnd: 1413
    functionName: nl::Inet::TCPEndPoint::IsConnected
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: TCPEndPoint::IsConnected(int state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitEndPointBasis
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1417,1
    - Dst: nl::Inet::TCPEndPoint::MaxTCPSendQueuePolls
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - inetLayer
    argTypes:
    - InetLayer*
    constantsTouched: []
    func_position:
      end: 1450
      start: 1415
    functionDepth: 1
    functionLinenumber: 1415
    functionLinenumberEnd: 1450
    functionName: nl::Inet::TCPEndPoint::Init
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TCPEndPoint::MaxTCPSendQueuePolls
    - InitEndPointBasis
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::Init(InetLayer *inetLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1459,1
    - Dst: nl::Inet::TCPEndPoint::FindStartOfUnsent
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1475,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1482,1
    - Dst: tcp_write
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1501,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1504,1
    - Dst: Weave::System::PacketBuffer*::Next
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1515,1
    - Dst: nl::Inet::TCPEndPoint::RemainingToSend
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1523,1
    - Dst: INET_FAULT_INJECT
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1527,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1527,1
    - Dst: tcp_output
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1531,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1534,1
    - Dst: nl::Inet::TCPEndPoint::RemainingToSend
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1541,1
    - Dst: tcp_shutdown
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1543,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1545,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1554,1
    - Dst: INET_FAULT_INJECT
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1567,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1569,1
    - Dst: nl::Inet::TCPEndPoint::DoClose
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1570,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1583,1
    - Dst: nl::Inet::TCPEndPoint::MarkActive
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1588,1
    - Dst: ConsumeHead
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1591,1
    - Dst: nl::Weave::System::PacketBuffer::FreeHead
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1593,1
    - Dst: OnDataSent
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1596,1
    - Dst: nl::Inet::TCPEndPoint::SetTCPSendIdleAndNotifyChange
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1601,1
    - Dst: nl::Inet::TCPEndPoint::CheckConnectionProgress
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1609,1
    - Dst: nl::Inet::TCPEndPoint::StartTCPUserTimeoutTimer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1620,1
    - Dst: nl::Inet::TCPEndPoint::RestartTCPUserTimeoutTimer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1627,1
    - Dst: shutdown
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1640,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1641,1
    - Dst: nl::Inet::TCPEndPoint::DoClose
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1648,1
    - Dst: WEAVE_SYSTEM_FAULT_INJECT_ASYNC_EVENT
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1650,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1452
    functionDepth: 1
    functionLinenumber: 1452
    functionLinenumberEnd: 1653
    functionName: nl::Inet::TCPEndPoint::DriveSending
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 2
    functionsReached:
    - Weave::System::PacketBuffer*::Next
    - nl::Inet::TCPEndPoint::StartTCPUserTimeoutTimer
    - nl::Inet::TCPEndPoint::MarkActive
    - UNLOCK_TCPIP_CORE
    - nl::Inet::TCPEndPoint::FindStartOfUnsent
    - ConsumeHead
    - LOCK_TCPIP_CORE
    - nl::Inet::TCPEndPoint::DoClose
    - OnDataSent
    - tcp_shutdown
    - nl::Inet::TCPEndPoint::CheckConnectionProgress
    - tcp_write
    - nl::Inet::TCPEndPoint::RemainingToSend
    - nl::Weave::System::MapErrorPOSIX
    - WEAVE_SYSTEM_FAULT_INJECT_ASYNC_EVENT
    - shutdown
    - nl::Weave::System::MapErrorLwIP
    - tcp_output
    - INET_FAULT_INJECT
    - nl::Inet::TCPEndPoint::SetTCPSendIdleAndNotifyChange
    - nl::Weave::System::PacketBuffer::FreeHead
    - nl::Inet::TCPEndPoint::RestartTCPUserTimeoutTimer
    - VerifyOrDie
    linkageType: ''
    returnType: INET_ERROR
    signature: TCPEndPoint::DriveSending()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OnDataReceived
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1663,1
    - Dst: nl::Inet::TCPEndPoint::DoClose
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1669,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1655
    functionDepth: 1
    functionLinenumber: 1655
    functionLinenumberEnd: 1670
    functionName: nl::Inet::TCPEndPoint::DriveReceiving
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 1
    functionsReached:
    - nl::Inet::TCPEndPoint::DoClose
    - OnDataReceived
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::DriveReceiving()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TCPEndPoint::StopConnectTimer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1678,1
    - Dst: nl::Inet::TCPEndPoint::MarkActive
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1681,1
    - Dst: OnConnectComplete
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1685,1
    - Dst: nl::Inet::TCPEndPoint::DoClose
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1690,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - err
    argTypes:
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 1691
      start: 1672
    functionDepth: 1
    functionLinenumber: 1672
    functionLinenumberEnd: 1691
    functionName: nl::Inet::TCPEndPoint::HandleConnectComplete
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TCPEndPoint::DoClose
    - nl::Inet::TCPEndPoint::StopConnectTimer
    - OnConnectComplete
    - nl::Inet::TCPEndPoint::MarkActive
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::HandleConnectComplete(INET_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TCPEndPoint::IsConnected
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1706,1
    - Dst: nl::Inet::TCPEndPoint::StopConnectTimer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1713,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1722,1
    - Dst: tcp_recv
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1732,1
    - Dst: tcp_err
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1749,1
    - Dst: tcp_close
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1755,1
    - Dst: tcp_abort
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1761,1
    - Dst: tcp_close
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1774,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1784,1
    - Dst: SystemLayer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1799,1
    - Dst: nl::Inet::TCPEndPoint::IsConnected
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1802,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1807,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1808,1
    - Dst: close
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1811,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1812,1
    - Dst: WakeSelect
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1816,1
    - Dst: Clear
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1821,1
    - Dst: nl::Inet::TCPEndPoint::StopTCPUserTimeoutTimer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1827,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1834,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1836,1
    - Dst: OnConnectComplete
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1848,1
    - Dst: OnConnectionClosed
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1853,1
    - Dst: DeferredFree
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1867,1
    - Dst: Release
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1869,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 64
    argCount: 2
    argNames:
    - err
    - suppressCallback
    argTypes:
    - INET_ERROR
    - bool
    constantsTouched: []
    func_position:
      end: 1875
      start: 1693
    functionDepth: 1
    functionLinenumber: 1693
    functionLinenumberEnd: 1875
    functionName: nl::Inet::TCPEndPoint::DoClose
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 7
    functionsReached:
    - nl::Inet::TCPEndPoint::StopTCPUserTimeoutTimer
    - tcp_recv
    - close
    - UNLOCK_TCPIP_CORE
    - WakeSelect
    - nl::Inet::TCPEndPoint::IsConnected
    - LOCK_TCPIP_CORE
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    - Release
    - tcp_abort
    - OnConnectComplete
    - OnConnectionClosed
    - nl::Inet::TCPEndPoint::StopConnectTimer
    - DeferredFree
    - tcp_err
    - nl::Weave::System::MapErrorPOSIX
    - setsockopt
    - tcp_close
    - SystemLayer
    - Clear
    linkageType: ''
    returnType: INET_ERROR
    signature: TCPEndPoint::DoClose(INET_ERROR err, bool suppressCallback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<TCPEndPoint *>
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1880,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1882,1
    - Dst: TCPEndPoint*::CheckConnectionProgress
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1890,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1891,1
    - Dst: TCPEndPoint*::SetTCPSendIdleAndNotifyChange
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1902,1
    - Dst: TCPEndPoint*::StartTCPUserTimeoutTimer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1915,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1925,1
    - Dst: TCPEndPoint*::ScheduleNextTCPUserTimeoutPoll
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1930,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1934,1
    - Dst: TCPEndPoint*::DoClose
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1945,1
    - Dst: TCPEndPoint*::DoClose
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1953,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - Weave::System::Layer*
    - void*
    - Weave::System::Error
    constantsTouched: []
    func_position:
      end: 1956
      start: 1878
    functionDepth: 0
    functionLinenumber: 1878
    functionLinenumberEnd: 1956
    functionName: nl::Inet::TCPEndPoint::TCPUserTimeoutHandler
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<TCPEndPoint *>
    - TCPEndPoint*::StartTCPUserTimeoutTimer
    - TCPEndPoint*::DoClose
    - VerifyOrExit
    - ExitNow
    - TCPEndPoint*::SetTCPSendIdleAndNotifyChange
    - SuccessOrExit
    - TCPEndPoint*::ScheduleNextTCPUserTimeoutPoll
    - TCPEndPoint*::CheckConnectionProgress
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::TCPUserTimeoutHandler(Weave::System::Layer* aSystemLayer,
      void* aAppState, Weave::System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SystemLayer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1960,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aTimeOut
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1963
      start: 1958
    functionDepth: 0
    functionLinenumber: 1958
    functionLinenumberEnd: 1963
    functionName: nl::Inet::TCPEndPoint::ScheduleNextTCPUserTimeoutPoll
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - SystemLayer
    - StartTimer
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::ScheduleNextTCPUserTimeoutPoll(uint32_t aTimeOut)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1970,1
    - Dst: OnTCPSendIdleChanged
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1977,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - aIsTCPSendIdle
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1980
      start: 1966
    functionDepth: 0
    functionLinenumber: 1966
    functionLinenumberEnd: 1980
    functionName: nl::Inet::TCPEndPoint::SetTCPSendIdleAndNotifyChange
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogDetail
    - OnTCPSendIdleChanged
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::SetTCPSendIdleAndNotifyChange(bool aIsTCPSendIdle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TCPEndPoint::MaxTCPSendQueuePolls
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1994,1
    - Dst: nl::Inet::TCPEndPoint::ScheduleNextTCPUserTimeoutPoll
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:1997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1983
    functionDepth: 1
    functionLinenumber: 1983
    functionLinenumberEnd: 2000
    functionName: nl::Inet::TCPEndPoint::StartTCPUserTimeoutTimer
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 2
    functionsReached:
    - nl::Inet::TCPEndPoint::MaxTCPSendQueuePolls
    - nl::Inet::TCPEndPoint::ScheduleNextTCPUserTimeoutPoll
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::StartTCPUserTimeoutTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SystemLayer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2004,1
    - Dst: CancelTimer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 2002
    functionDepth: 0
    functionLinenumber: 2002
    functionLinenumberEnd: 2009
    functionName: nl::Inet::TCPEndPoint::StopTCPUserTimeoutTimer
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 1
    functionsReached:
    - CancelTimer
    - SystemLayer
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::StopTCPUserTimeoutTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TCPEndPoint::StopTCPUserTimeoutTimer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2013,1
    - Dst: nl::Inet::TCPEndPoint::StartTCPUserTimeoutTimer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 2011
    functionDepth: 2
    functionLinenumber: 2011
    functionLinenumberEnd: 2016
    functionName: nl::Inet::TCPEndPoint::RestartTCPUserTimeoutTimer
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 1
    functionsReached:
    - nl::Inet::TCPEndPoint::StartTCPUserTimeoutTimer
    - nl::Inet::TCPEndPoint::StopTCPUserTimeoutTimer
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::RestartTCPUserTimeoutTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2032,1
    - Dst: TotalLength
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2032,1
    - Dst: TotalLength
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2036
      start: 2022
    functionDepth: 0
    functionLinenumber: 2022
    functionLinenumberEnd: 2036
    functionName: nl::Inet::TCPEndPoint::RemainingToSend
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 1
    functionsReached:
    - TotalLength
    - VerifyOrDie
    linkageType: ''
    returnType: uint32_t
    signature: TCPEndPoint::RemainingToSend()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2054,1
    - Dst: TotalLength
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2054,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2058,1
    - Dst: Weave::System::PacketBuffer*::Next
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2038
    functionDepth: 0
    functionLinenumber: 2038
    functionLinenumberEnd: 2081
    functionName: nl::Inet::TCPEndPoint::FindStartOfUnsent
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 1
    functionsReached:
    - Weave::System::PacketBuffer*::Next
    - TotalLength
    - VerifyOrDie
    linkageType: ''
    returnType: TCPEndPoint::BufferOffset
    signature: TCPEndPoint::FindStartOfUnsent()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcp_new_ip_type
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2093,1
    - Dst: tcp_new_ip_type
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2098,1
    - Dst: IP_GET_TYPE
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2117,1
    - Dst: tcp_new_ip6
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2139,1
    - Dst: tcp_new
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2142,1
    - Dst: PCB_ISIPV6
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2158,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 1
    argNames:
    - addrType
    argTypes:
    - IPAddressType
    constantsTouched: []
    func_position:
      end: 2168
      start: 2083
    functionDepth: 1
    functionLinenumber: 2083
    functionLinenumberEnd: 2168
    functionName: nl::Inet::TCPEndPoint::GetPCB
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 2
    functionsReached:
    - tcp_new_ip6
    - tcp_new
    - IP_GET_TYPE
    - PCB_ISIPV6
    - tcp_new_ip_type
    linkageType: ''
    returnType: INET_ERROR
    signature: TCPEndPoint::GetPCB(IPAddressType addrType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TCPEndPoint::IsConnected
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2172,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2178,1
    - Dst: nl::Inet::TCPEndPoint::DoClose
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2179,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2184,1
    - Dst: nl::Inet::TCPEndPoint::DoClose
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2185,1
    - Dst: Consume
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2190,1
    - Dst: nl::Inet::TCPEndPoint::RemainingToSend
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2199,1
    - Dst: nl::Inet::TCPEndPoint::StopTCPUserTimeoutTimer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2203,1
    - Dst: nl::Inet::TCPEndPoint::SetTCPSendIdleAndNotifyChange
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2208,1
    - Dst: nl::Inet::TCPEndPoint::RestartTCPUserTimeoutTimer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2215,1
    - Dst: nl::Inet::TCPEndPoint::MarkActive
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2221,1
    - Dst: OnDataSent
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2225,1
    - Dst: nl::Inet::TCPEndPoint::RemainingToSend
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2228,1
    - Dst: nl::Inet::TCPEndPoint::DriveSending
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2229,1
    - Dst: nl::Inet::TCPEndPoint::RemainingToSend
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2232,1
    - Dst: nl::Inet::TCPEndPoint::DoClose
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2233,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - lenSent
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2235
      start: 2170
    functionDepth: 3
    functionLinenumber: 2170
    functionLinenumberEnd: 2235
    functionName: nl::Inet::TCPEndPoint::HandleDataSent
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - Consume
    - nl::Inet::TCPEndPoint::StopTCPUserTimeoutTimer
    - nl::Inet::TCPEndPoint::DriveSending
    - OnDataSent
    - nl::Inet::TCPEndPoint::SetTCPSendIdleAndNotifyChange
    - nl::Inet::TCPEndPoint::MarkActive
    - nl::Inet::TCPEndPoint::RemainingToSend
    - nl::Inet::TCPEndPoint::RestartTCPUserTimeoutTimer
    - nl::Inet::TCPEndPoint::DoClose
    - nl::Inet::TCPEndPoint::IsConnected
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::HandleDataSent(uint16_t lenSent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TCPEndPoint::MarkActive
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2243,1
    - Dst: AddToEnd
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2253,1
    - Dst: CompactHead
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2254,1
    - Dst: OnPeerClose
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2273,1
    - Dst: nl::Inet::TCPEndPoint::DriveReceiving
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2277,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2280,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - buf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 2281
      start: 2237
    functionDepth: 2
    functionLinenumber: 2237
    functionLinenumberEnd: 2281
    functionName: nl::Inet::TCPEndPoint::HandleDataReceived
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - AddToEnd
    - nl::Weave::System::PacketBuffer::Free
    - CompactHead
    - nl::Inet::TCPEndPoint::MarkActive
    - nl::Inet::TCPEndPoint::DriveReceiving
    - OnPeerClose
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::HandleDataReceived(PacketBuffer *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TCPEndPoint*::GetPeerInfo
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2297,1
    - Dst: OnConnectionReceived
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2301,1
    - Dst: OnAcceptError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2305,1
    - Dst: TCPEndPoint*::Free
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2312,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - conEP
    argTypes:
    - TCPEndPoint*
    constantsTouched: []
    func_position:
      end: 2313
      start: 2283
    functionDepth: 0
    functionLinenumber: 2283
    functionLinenumberEnd: 2313
    functionName: nl::Inet::TCPEndPoint::HandleIncomingConnection
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - TCPEndPoint*::GetPeerInfo
    - OnConnectionReceived
    - OnAcceptError
    - TCPEndPoint*::Free
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::HandleIncomingConnection(TCPEndPoint *conEP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OnAcceptError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2320,1
    - Dst: nl::Inet::TCPEndPoint::DoClose
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - err
    argTypes:
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 2324
      start: 2315
    functionDepth: 2
    functionLinenumber: 2315
    functionLinenumberEnd: 2324
    functionName: nl::Inet::TCPEndPoint::HandleError
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TCPEndPoint::DoClose
    - OnAcceptError
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::HandleError(INET_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TCPEndPoint*>
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2333,1
    - Dst: TCPEndPoint*::SystemLayer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2334,1
    - Dst: tcp_recv
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2339,1
    - Dst: tcp_sent
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2340,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2344,1
    - Dst: PostEvent
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2345,1
    - Dst: tcp_abort
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - arg
    - tpcb
    - lwipErr
    argTypes:
    - void*
    - struct tcp_pcb*
    - err_t
    constantsTouched: []
    func_position:
      end: 2355
      start: 2326
    functionDepth: 1
    functionLinenumber: 2326
    functionLinenumberEnd: 2355
    functionName: nl::Inet::TCPEndPoint::LwIPHandleConnectComplete
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::MapErrorLwIP
    - PostEvent
    - static_cast<TCPEndPoint*>
    - tcp_sent
    - tcp_recv
    - TCPEndPoint*::SystemLayer
    - tcp_abort
    linkageType: ''
    returnType: err_t
    signature: TCPEndPoint::LwIPHandleConnectComplete(void *arg, struct tcp_pcb *tpcb,
      err_t lwipErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2359,1
    - Dst: static_cast<TCPEndPoint*>
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2363,1
    - Dst: TCPEndPoint*::SystemLayer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2365,1
    - Dst: tcp_accepted
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2368,1
    - Dst: TCPEndPoint*::Layer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2379,1
    - Dst: NewTCPEndPoint
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2381,1
    - Dst: start_tcp_timers
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2387,1
    - Dst: TCPEndPoint*::Retain
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2397,1
    - Dst: tcp_arg
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2400,1
    - Dst: tcp_recv
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2401,1
    - Dst: tcp_sent
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2402,1
    - Dst: tcp_err
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2403,1
    - Dst: PostEvent
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2406,1
    - Dst: TCPEndPoint*::Release
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2409,1
    - Dst: TCPEndPoint*::Release
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2410,1
    - Dst: PostEvent
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2416,1
    - Dst: tcp_abort
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2423,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 3
    argNames:
    - arg
    - tpcb
    - lwipErr
    argTypes:
    - void*
    - struct tcp_pcb*
    - err_t
    constantsTouched: []
    func_position:
      end: 2430
      start: 2357
    functionDepth: 1
    functionLinenumber: 2357
    functionLinenumberEnd: 2430
    functionName: nl::Inet::TCPEndPoint::LwIPHandleIncomingConnection
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - TCPEndPoint*::Retain
    - nl::Weave::System::MapErrorLwIP
    - tcp_arg
    - PostEvent
    - TCPEndPoint*::Release
    - static_cast<TCPEndPoint*>
    - tcp_sent
    - tcp_recv
    - TCPEndPoint*::Layer
    - tcp_err
    - NewTCPEndPoint
    - TCPEndPoint*::SystemLayer
    - tcp_abort
    - tcp_accepted
    - start_tcp_timers
    linkageType: ''
    returnType: err_t
    signature: TCPEndPoint::LwIPHandleIncomingConnection(void *arg, struct tcp_pcb
      *tpcb, err_t lwipErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TCPEndPoint*>
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2438,1
    - Dst: TCPEndPoint*::SystemLayer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2439,1
    - Dst: PostEvent
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2442,1
    - Dst: tcp_abort
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2449,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - arg
    - tpcb
    - p
    - err
    argTypes:
    - void*
    - struct tcp_pcb*
    - struct pbuf*
    - err_t
    constantsTouched: []
    func_position:
      end: 2452
      start: 2432
    functionDepth: 1
    functionLinenumber: 2432
    functionLinenumberEnd: 2452
    functionName: nl::Inet::TCPEndPoint::LwIPHandleDataReceived
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - TCPEndPoint*::SystemLayer
    - PostEvent
    - tcp_abort
    - static_cast<TCPEndPoint*>
    linkageType: ''
    returnType: err_t
    signature: TCPEndPoint::LwIPHandleDataReceived(void *arg, struct tcp_pcb *tpcb,
      struct pbuf *p, err_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TCPEndPoint*>
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2460,1
    - Dst: TCPEndPoint*::SystemLayer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2461,1
    - Dst: PostEvent
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2464,1
    - Dst: tcp_abort
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - arg
    - tpcb
    - len
    argTypes:
    - void*
    - struct tcp_pcb*
    - u16_t
    constantsTouched: []
    func_position:
      end: 2474
      start: 2454
    functionDepth: 1
    functionLinenumber: 2454
    functionLinenumberEnd: 2474
    functionName: nl::Inet::TCPEndPoint::LwIPHandleDataSent
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - TCPEndPoint*::SystemLayer
    - PostEvent
    - tcp_abort
    - static_cast<TCPEndPoint*>
    linkageType: ''
    returnType: err_t
    signature: TCPEndPoint::LwIPHandleDataSent(void *arg, struct tcp_pcb *tpcb, u16_t
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TCPEndPoint*>
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2480,1
    - Dst: TCPEndPoint*::SystemLayer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2481,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2492,1
    - Dst: PostEvent
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - arg
    - lwipErr
    argTypes:
    - void*
    - err_t
    constantsTouched: []
    func_position:
      end: 2495
      start: 2476
    functionDepth: 1
    functionLinenumber: 2476
    functionLinenumberEnd: 2495
    functionName: nl::Inet::TCPEndPoint::LwIPHandleError
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::MapErrorLwIP
    - TCPEndPoint*::SystemLayer
    - PostEvent
    - static_cast<TCPEndPoint*>
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::LwIPHandleError(void *arg, err_t lwipErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2514,1
    - Dst: InterfaceAddressIterator::HasCurrent
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2516,1
    - Dst: InterfaceAddressIterator::Next
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2516,1
    - Dst: InterfaceAddressIterator::GetAddress
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2518,1
    - Dst: InterfaceAddressIterator::GetInterface
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2519,1
    - Dst: IPAddress::IsIPv4
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2528,1
    - Dst: nl::Inet::TCPEndPoint::Bind
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2532,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2533,1
    - Dst: IPAddress::IsIPv4
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2544,1
    - Dst: IPAddress::IsIPv6LinkLocal
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2544,1
    - Dst: IPAddress::IsMulticast
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2545,1
    - Dst: nl::Inet::TCPEndPoint::Bind
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2549,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2550,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2558,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - addrType
    - intf
    argTypes:
    - IPAddressType
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 2562
      start: 2501
    functionDepth: 2
    functionLinenumber: 2501
    functionLinenumberEnd: 2562
    functionName: nl::Inet::TCPEndPoint::BindSrcAddrFromIntf
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 1
    functionsReached:
    - IPAddress::IsIPv6LinkLocal
    - IPAddress::IsIPv4
    - nl::Inet::TCPEndPoint::Bind
    - InterfaceAddressIterator::GetInterface
    - InterfaceAddressIterator::HasCurrent
    - VerifyOrExit
    - InterfaceAddressIterator::Next
    - IPAddress::IsMulticast
    - InterfaceAddressIterator::GetAddress
    - SuccessOrExit
    linkageType: ''
    returnType: INET_ERROR
    signature: TCPEndPoint::BindSrcAddrFromIntf(IPAddressType addrType, InterfaceId
      intf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSNetworkSystem_socket
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2577,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2579,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2588,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2600,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - addrType
    argTypes:
    - IPAddressType
    constantsTouched: []
    func_position:
      end: 2609
      start: 2564
    functionDepth: 1
    functionLinenumber: 2564
    functionLinenumberEnd: 2609
    functionName: nl::Inet::TCPEndPoint::GetSocket
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 3
    functionsReached:
    - WeaveLogError
    - nl::Weave::System::MapErrorPOSIX
    - setsockopt
    - OSNetworkSystem_socket
    linkageType: ''
    returnType: INET_ERROR
    signature: TCPEndPoint::GetSocket(IPAddressType addrType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TCPEndPoint::IsConnected
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2618,1
    - Dst: SocketEvents::SetWrite
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2619,1
    - Dst: SocketEvents::SetRead
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2626,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2629
      start: 2611
    functionDepth: 0
    functionLinenumber: 2611
    functionLinenumberEnd: 2629
    functionName: nl::Inet::TCPEndPoint::PrepareIO
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - SocketEvents::SetWrite
    - SocketEvents::SetRead
    - nl::Inet::TCPEndPoint::IsConnected
    linkageType: ''
    returnType: SocketEvents
    signature: TCPEndPoint::PrepareIO()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Retain
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2634,1
    - Dst: IsReadable
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2640,1
    - Dst: nl::Inet::TCPEndPoint::HandleIncomingConnection
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2641,1
    - Dst: IsWriteable
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2648,1
    - Dst: getsockopt
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2653,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2655,1
    - Dst: nl::Inet::TCPEndPoint::HandleConnectComplete
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2658,1
    - Dst: nl::Inet::TCPEndPoint::IsConnected
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2666,1
    - Dst: IsWriteable
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2666,1
    - Dst: nl::Inet::TCPEndPoint::DriveSending
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2667,1
    - Dst: IsReadable
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2671,1
    - Dst: nl::Inet::TCPEndPoint::ReceiveData
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2672,1
    - Dst: Clear
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2675,1
    - Dst: Release
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2677,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2678
      start: 2631
    functionDepth: 2
    functionLinenumber: 2631
    functionLinenumberEnd: 2678
    functionName: nl::Inet::TCPEndPoint::HandlePendingIO
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TCPEndPoint::HandleConnectComplete
    - nl::Inet::TCPEndPoint::IsConnected
    - nl::Inet::TCPEndPoint::ReceiveData
    - nl::Inet::TCPEndPoint::DriveSending
    - IsWriteable
    - nl::Inet::TCPEndPoint::HandleIncomingConnection
    - Clear
    - Release
    - getsockopt
    - Retain
    - nl::Weave::System::MapErrorPOSIX
    - IsReadable
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::HandlePendingIO()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2686,1
    - Dst: PacketBuffer*::Next
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2690,1
    - Dst: PacketBuffer*::Next
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2690,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2693,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2694,1
    - Dst: PacketBuffer*::CompactHead
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2698,1
    - Dst: nl::Inet::TCPEndPoint::DoClose
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2704,1
    - Dst: nl::Inet::TCPEndPoint::CheckConnectionProgress
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2715,1
    - Dst: nl::Inet::TCPEndPoint::DoClose
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2718,1
    - Dst: nl::Inet::TCPEndPoint::StopTCPUserTimeoutTimer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2727,1
    - Dst: nl::Inet::TCPEndPoint::SetTCPSendIdleAndNotifyChange
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2734,1
    - Dst: nl::Inet::TCPEndPoint::RestartTCPUserTimeoutTimer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2742,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2752,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2761,1
    - Dst: nl::Inet::TCPEndPoint::DoClose
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2766,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2766,1
    - Dst: nl::Inet::TCPEndPoint::MarkActive
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2772,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2778,1
    - Dst: OnPeerClose
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2792,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2798,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2798,1
    - Dst: AddToEnd
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2802,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2806,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2806,1
    - Dst: nl::Inet::TCPEndPoint::DriveReceiving
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2810,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2811
      start: 2680
    functionDepth: 3
    functionLinenumber: 2680
    functionLinenumberEnd: 2811
    functionName: nl::Inet::TCPEndPoint::ReceiveData
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 1
    functionsReached:
    - PacketBuffer*::DataLength
    - PacketBuffer*::Next
    - WeaveLogError
    - PacketBuffer*::SetDataLength
    - nl::Inet::TCPEndPoint::StopTCPUserTimeoutTimer
    - nl::Weave::System::PacketBuffer::Free
    - AddToEnd
    - nl::Inet::TCPEndPoint::CheckConnectionProgress
    - nl::Inet::TCPEndPoint::SetTCPSendIdleAndNotifyChange
    - nl::Inet::TCPEndPoint::MarkActive
    - nl::Inet::TCPEndPoint::DriveReceiving
    - OnPeerClose
    - nl::Inet::TCPEndPoint::RestartTCPUserTimeoutTimer
    - nl::Inet::TCPEndPoint::DoClose
    - PacketBuffer*::CompactHead
    - nl::Weave::System::MapErrorPOSIX
    - nl::Weave::System::PacketBuffer::New
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::ReceiveData()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2826,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2832,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2843,1
    - Dst: ntohs
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2844,1
    - Dst: nl::Inet::IPAddress::FromIPv4
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2849,1
    - Dst: ntohs
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2850,1
    - Dst: Layer
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2860,1
    - Dst: NewTCPEndPoint
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2862,1
    - Dst: TCPEndPoint*::Retain
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2876,1
    - Dst: OnConnectionReceived
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2879,1
    - Dst: close
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2886,1
    - Dst: TCPEndPoint*::Release
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2890,1
    - Dst: TCPEndPoint*::Release
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2891,1
    - Dst: OnAcceptError
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2894,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2896
      start: 2813
    functionDepth: 1
    functionLinenumber: 2813
    functionLinenumberEnd: 2896
    functionName: nl::Inet::TCPEndPoint::HandleIncomingConnection
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 1
    functionsReached:
    - TCPEndPoint*::Retain
    - OnAcceptError
    - nl::Inet::IPAddress::FromIPv6
    - TCPEndPoint*::Release
    - memset
    - Layer
    - close
    - OnConnectionReceived
    - ntohs
    - NewTCPEndPoint
    - nl::Weave::System::MapErrorPOSIX
    - nl::Inet::IPAddress::FromIPv4
    linkageType: ''
    returnType: void
    signature: TCPEndPoint::HandleIncomingConnection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2910,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2912,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2912,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/inet/TCPEndPoint.cpp:2916,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - isProgressing
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 2938
      start: 2903
    functionDepth: 1
    functionLinenumber: 2903
    functionLinenumberEnd: 2938
    functionName: nl::Inet::TCPEndPoint::CheckConnectionProgress
    functionSourceFile: /src/openweave-core/src/inet/TCPEndPoint.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint32_t>
    - nl::Weave::System::MapErrorPOSIX
    - ioctl
    - ExitNow
    linkageType: ''
    returnType: INET_ERROR
    signature: TCPEndPoint::CheckConnectionProgress(bool &isProgressing)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 93
    functionName: nl::Inet::IPEndPointBasis
    functionSourceFile: /src/openweave-core/src/inet/UDPEndPoint.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: IPEndPointBasis
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 217
    functionName: nl::Inet::InterfaceAddressIterator
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: InterfaceAddressIterator
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: nl::Inet::InterfaceIterator::InterfaceIterator
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: InterfaceIterator::InterfaceIterator(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: InterfaceIterator::~InterfaceIterator(void)
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: InterfaceIterator::~InterfaceIterator(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: nl::Inet::InterfaceIterator::HasCurrent
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: InterfaceIterator::HasCurrent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: nl::Inet::InterfaceIterator::GetInterfaceId
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: InterfaceId
    signature: InterfaceIterator::GetInterfaceId(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: nl::Inet::InterfaceAddressIterator::InterfaceAddressIterator
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: InterfaceAddressIterator::InterfaceAddressIterator(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: InterfaceAddressIterator::~InterfaceAddressIterator(void)
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: InterfaceAddressIterator::~InterfaceAddressIterator(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InterfaceIterator::GetInterfaceId
      Src: /src/openweave-core/src/inet/InetInterface.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: nl::Inet::InterfaceIterator::GetInterface
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.h
    functionUses: 0
    functionsReached:
    - nl::Inet::InterfaceIterator::GetInterfaceId
    linkageType: ''
    returnType: InterfaceId
    signature: InterfaceIterator::GetInterface(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InterfaceAddressIterator::GetInterfaceId
      Src: /src/openweave-core/src/inet/InetInterface.h:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: nl::Inet::InterfaceAddressIterator::GetInterface
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.h
    functionUses: 0
    functionsReached:
    - nl::Inet::InterfaceAddressIterator::GetInterfaceId
    linkageType: ''
    returnType: InterfaceId
    signature: InterfaceAddressIterator::GetInterface(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::InterfaceAddressIterator::GetPrefixLength
      Src: /src/openweave-core/src/inet/InetInterface.h:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: nl::Inet::InterfaceAddressIterator::GetIPv6PrefixLength
    functionSourceFile: /src/openweave-core/src/inet/InetInterface.h
    functionUses: 0
    functionsReached:
    - nl::Inet::InterfaceAddressIterator::GetPrefixLength
    linkageType: ''
    returnType: uint8_t
    signature: InterfaceAddressIterator::GetIPv6PrefixLength(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 653
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 653
    functionName: nl::Inet::IPAddress
    functionSourceFile: /src/openweave-core/src/inet/IPAddress.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: IPAddress
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsInterfaceIdPresent
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:121,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:122,1
    - Dst: IPAddress::IsMulticast
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:124,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - aInterfaceId
    - aAddress
    argTypes:
    - InterfaceId
    - IPAddress
    constantsTouched: []
    func_position:
      end: 129
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 129
    functionName: nl::Inet::CheckMulticastGroupArgs
    functionSourceFile: /src/openweave-core/src/inet/IPEndPointBasis.cpp
    functionUses: 0
    functionsReached:
    - IPAddress::IsMulticast
    - VerifyOrExit
    - IsInterfaceIdPresent
    linkageType: ''
    returnType: INET_ERROR
    signature: CheckMulticastGroupArgs(InterfaceId aInterfaceId, const IPAddress &aAddress)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPEndPointBasis::FindNetifFromInterfaceId
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:141,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:142,1
    - Dst: IPV4_TO_LWIPADDR
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:144,1
    - Dst: aMethod
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:146,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - aInterfaceId
    - aAddress
    argTypes:
    - InterfaceId
    - IPAddress
    constantsTouched: []
    func_position:
      end: 163
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 163
    functionName: nl::Inet::LwIPIPv4JoinLeaveMulticastGroup
    functionSourceFile: /src/openweave-core/src/inet/IPEndPointBasis.cpp
    functionUses: 0
    functionsReached:
    - aMethod
    - nl::Weave::System::MapErrorLwIP
    - VerifyOrExit
    - nl::Inet::IPEndPointBasis::FindNetifFromInterfaceId
    - IPV4_TO_LWIPADDR
    linkageType: ''
    returnType: INET_ERROR
    signature: LwIPIPv4JoinLeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress
      &aAddress, err_t (*aMethod)(struct netif *, const LWIP_IPV4_ADDR_T *))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPEndPointBasis::FindNetifFromInterfaceId
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:175,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:176,1
    - Dst: IPV6_TO_LWIPADDR
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:178,1
    - Dst: aMethod
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:180,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - aInterfaceId
    - aAddress
    argTypes:
    - InterfaceId
    - IPAddress
    constantsTouched: []
    func_position:
      end: 197
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 197
    functionName: nl::Inet::LwIPIPv6JoinLeaveMulticastGroup
    functionSourceFile: /src/openweave-core/src/inet/IPEndPointBasis.cpp
    functionUses: 0
    functionsReached:
    - aMethod
    - nl::Weave::System::MapErrorLwIP
    - VerifyOrExit
    - nl::Inet::IPEndPointBasis::FindNetifFromInterfaceId
    - IPV6_TO_LWIPADDR
    linkageType: ''
    returnType: INET_ERROR
    signature: LwIPIPv6JoinLeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress
      &aAddress, err_t (*aMethod)(struct netif *, const LWIP_IPV6_ADDR_T *))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:208,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:209,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - aSocket
    - aLoopback
    - aProtocol
    - aOption
    argTypes:
    - int
    - bool
    - int
    - int
    constantsTouched: []
    func_position:
      end: 213
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 213
    functionName: nl::Inet::SocketsSetMulticastLoopback
    functionSourceFile: /src/openweave-core/src/inet/IPEndPointBasis.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::MapErrorPOSIX
    - VerifyOrExit
    - setsockopt
    linkageType: ''
    returnType: INET_ERROR
    signature: SocketsSetMulticastLoopback(int aSocket, bool aLoopback, int aProtocol,
      int aOption)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::SocketsSetMulticastLoopback
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:223,1
    - Dst: nl::Inet::SocketsSetMulticastLoopback
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:228,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - aSocket
    - aIPVersion
    - aLoopback
    argTypes:
    - int
    - IPVersion
    - bool
    constantsTouched: []
    func_position:
      end: 239
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 239
    functionName: nl::Inet::SocketsSetMulticastLoopback
    functionSourceFile: /src/openweave-core/src/inet/IPEndPointBasis.cpp
    functionUses: 1
    functionsReached:
    - nl::Inet::SocketsSetMulticastLoopback
    linkageType: ''
    returnType: INET_ERROR
    signature: SocketsSetMulticastLoopback(int aSocket, IPVersion aIPVersion, bool
      aLoopback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InterfaceAddressIterator::HasCurrent
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:249,1
    - Dst: InterfaceAddressIterator::Next
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:249,1
    - Dst: InterfaceAddressIterator::GetAddress
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:251,1
    - Dst: InterfaceAddressIterator::GetInterface
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:253,1
    - Dst: IPAddress::IsIPv4
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:255,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:264,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:266,1
    - Dst: IPAddress::ToIPv4
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:267,1
    - Dst: IPAddress::ToIPv4
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:268,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:270,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:271,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - aSocket
    - aInterfaceId
    - aAddress
    - aCommand
    argTypes:
    - int
    - InterfaceId
    - IPAddress
    - int
    constantsTouched: []
    func_position:
      end: 275
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 275
    functionName: nl::Inet::SocketsIPv4JoinLeaveMulticastGroup
    functionSourceFile: /src/openweave-core/src/inet/IPEndPointBasis.cpp
    functionUses: 0
    functionsReached:
    - IPAddress::IsIPv4
    - InterfaceAddressIterator::GetInterface
    - InterfaceAddressIterator::HasCurrent
    - VerifyOrExit
    - memset
    - InterfaceAddressIterator::Next
    - IPAddress::ToIPv4
    - InterfaceAddressIterator::GetAddress
    - nl::Weave::System::MapErrorPOSIX
    - setsockopt
    linkageType: ''
    returnType: INET_ERROR
    signature: SocketsIPv4JoinLeaveMulticastGroup(int aSocket, InterfaceId aInterfaceId,
      const IPAddress &aAddress, int aCommand)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:284,1
    - Dst: IPAddress::ToIPv6
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:286,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:288,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:289,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - aSocket
    - aInterfaceId
    - aAddress
    - aCommand
    argTypes:
    - int
    - InterfaceId
    - IPAddress
    - int
    constantsTouched: []
    func_position:
      end: 293
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 293
    functionName: nl::Inet::SocketsIPv6JoinLeaveMulticastGroup
    functionSourceFile: /src/openweave-core/src/inet/IPEndPointBasis.cpp
    functionUses: 0
    functionsReached:
    - IPAddress::ToIPv6
    - VerifyOrExit
    - memset
    - nl::Weave::System::MapErrorPOSIX
    - setsockopt
    linkageType: ''
    returnType: INET_ERROR
    signature: SocketsIPv6JoinLeaveMulticastGroup(int aSocket, InterfaceId aInterfaceId,
      const IPAddress &aAddress, int aCommand)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: raw_set_flags
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:332,1
    - Dst: udp_set_flags
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:338,1
    - Dst: raw_clear_flags
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:355,1
    - Dst: udp_clear_flags
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:361,1
    - Dst: SocketsSetMulticastLoopback
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:377,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:378,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - aIPVersion
    - aLoopback
    argTypes:
    - IPVersion
    - bool
    constantsTouched: []
    func_position:
      end: 384
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 384
    functionName: nl::Inet::IPEndPointBasis::SetMulticastLoopback
    functionSourceFile: /src/openweave-core/src/inet/IPEndPointBasis.cpp
    functionUses: 0
    functionsReached:
    - raw_set_flags
    - SuccessOrExit
    - udp_clear_flags
    - SocketsSetMulticastLoopback
    - udp_set_flags
    - raw_clear_flags
    linkageType: ''
    returnType: INET_ERROR
    signature: IPEndPointBasis::SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddress::Type
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:415,1
    - Dst: CheckMulticastGroupArgs
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:419,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:420,1
    - Dst: LwIPIPv4JoinLeaveMulticastGroup
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:430,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:436,1
    - Dst: SocketsIPv4JoinLeaveMulticastGroup
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:440,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:441,1
    - Dst: LwIPIPv6JoinLeaveMulticastGroup
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:451,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:457,1
    - Dst: SocketsIPv6JoinLeaveMulticastGroup
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:461,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:462,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - aInterfaceId
    - aAddress
    argTypes:
    - InterfaceId
    - IPAddress
    constantsTouched: []
    func_position:
      end: 475
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 475
    functionName: nl::Inet::IPEndPointBasis::JoinMulticastGroup
    functionSourceFile: /src/openweave-core/src/inet/IPEndPointBasis.cpp
    functionUses: 0
    functionsReached:
    - CheckMulticastGroupArgs
    - LwIPIPv4JoinLeaveMulticastGroup
    - SocketsIPv6JoinLeaveMulticastGroup
    - SuccessOrExit
    - LwIPIPv6JoinLeaveMulticastGroup
    - SocketsIPv4JoinLeaveMulticastGroup
    - IPAddress::Type
    linkageType: ''
    returnType: INET_ERROR
    signature: IPEndPointBasis::JoinMulticastGroup(InterfaceId aInterfaceId, const
      IPAddress &aAddress)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddress::Type
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:506,1
    - Dst: CheckMulticastGroupArgs
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:510,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:511,1
    - Dst: LwIPIPv4JoinLeaveMulticastGroup
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:521,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:527,1
    - Dst: SocketsIPv4JoinLeaveMulticastGroup
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:531,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:532,1
    - Dst: LwIPIPv6JoinLeaveMulticastGroup
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:542,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:548,1
    - Dst: SocketsIPv6JoinLeaveMulticastGroup
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:552,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:553,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - aInterfaceId
    - aAddress
    argTypes:
    - InterfaceId
    - IPAddress
    constantsTouched: []
    func_position:
      end: 566
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 566
    functionName: nl::Inet::IPEndPointBasis::LeaveMulticastGroup
    functionSourceFile: /src/openweave-core/src/inet/IPEndPointBasis.cpp
    functionUses: 0
    functionsReached:
    - CheckMulticastGroupArgs
    - LwIPIPv4JoinLeaveMulticastGroup
    - SocketsIPv6JoinLeaveMulticastGroup
    - SuccessOrExit
    - LwIPIPv6JoinLeaveMulticastGroup
    - SocketsIPv4JoinLeaveMulticastGroup
    - IPAddress::Type
    linkageType: ''
    returnType: INET_ERROR
    signature: IPEndPointBasis::LeaveMulticastGroup(InterfaceId aInterfaceId, const
      IPAddress &aAddress)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitEndPointBasis
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aInetLayer
    argTypes:
    - InetLayer*
    constantsTouched: []
    func_position:
      end: 575
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 575
    functionName: nl::Inet::IPEndPointBasis::Init
    functionSourceFile: /src/openweave-core/src/inet/IPEndPointBasis.cpp
    functionUses: 2
    functionsReached:
    - InitEndPointBasis
    linkageType: ''
    returnType: void
    signature: IPEndPointBasis::Init(InetLayer *aInetLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPEndPointBasis::GetPacketInfo
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:582,1
    - Dst: OnMessageReceived
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:588,1
    - Dst: OnReceiveError
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:593,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:594,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:599,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - aBuffer
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 601
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 601
    functionName: nl::Inet::IPEndPointBasis::HandleDataReceived
    functionSourceFile: /src/openweave-core/src/inet/IPEndPointBasis.cpp
    functionUses: 2
    functionsReached:
    - nl::Inet::IPEndPointBasis::GetPacketInfo
    - OnMessageReceived
    - nl::Weave::System::PacketBuffer::Free
    - OnReceiveError
    linkageType: ''
    returnType: void
    signature: IPEndPointBasis::HandleDataReceived(PacketBuffer *aBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::EnsureReservedSize
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:635,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:638,1
    - Dst: reinterpret_cast<IPPacketInfo *>
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - aBuffer
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 647
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 647
    functionName: nl::Inet::IPEndPointBasis::GetPacketInfo
    functionSourceFile: /src/openweave-core/src/inet/IPEndPointBasis.cpp
    functionUses: 1
    functionsReached:
    - PacketBuffer*::EnsureReservedSize
    - reinterpret_cast<IPPacketInfo *>
    - PacketBuffer*::Start
    linkageType: ''
    returnType: IPPacketInfo
    signature: '*IPEndPointBasis::GetPacketInfo(PacketBuffer *aBuffer)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:659,1
    - Dst: htons
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:662,1
    - Dst: IPAddress::ToIPv6
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:664,1
    - Dst: bind
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:667,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:668,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:674,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:681,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:690,1
    - Dst: htons
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:693,1
    - Dst: IPAddress::ToIPv4
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:694,1
    - Dst: bind
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:696,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:697,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:703,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:710,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:715,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - aAddressType
    - aAddress
    - aPort
    - aInterfaceId
    argTypes:
    - IPAddressType
    - IPAddress
    - uint16_t
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 722
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 722
    functionName: nl::Inet::IPEndPointBasis::Bind
    functionSourceFile: /src/openweave-core/src/inet/IPEndPointBasis.cpp
    functionUses: 2
    functionsReached:
    - IPAddress::ToIPv6
    - memset
    - bind
    - htons
    - IPAddress::ToIPv4
    - nl::Weave::System::MapErrorPOSIX
    - setsockopt
    linkageType: ''
    returnType: INET_ERROR
    signature: IPEndPointBasis::Bind(IPAddressType aAddressType, IPAddress aAddress,
      uint16_t aPort, InterfaceId aInterfaceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:732,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:734,1
    - Dst: if_indextoname
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:742,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:744,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:747,1
    - Dst: strlen
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:747,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:749,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - aAddressType
    - aInterfaceId
    argTypes:
    - IPAddressType
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 761
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 761
    functionName: nl::Inet::IPEndPointBasis::BindInterface
    functionSourceFile: /src/openweave-core/src/inet/IPEndPointBasis.cpp
    functionUses: 2
    functionsReached:
    - strlen
    - nl::Weave::System::MapErrorPOSIX
    - setsockopt
    - if_indextoname
    linkageType: ''
    returnType: INET_ERROR
    signature: IPEndPointBasis::BindInterface(IPAddressType aAddressType, InterfaceId
      aInterfaceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:773,1
    - Dst: IPPacketInfo*::DestAddress::Type
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:773,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:776,1
    - Dst: Weave::System::PacketBuffer*::Next
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:776,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:778,1
    - Dst: Weave::System::PacketBuffer*::Start
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:780,1
    - Dst: Weave::System::PacketBuffer*::DataLength
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:781,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:786,1
    - Dst: htons
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:791,1
    - Dst: IPPacketInfo*::DestAddress::ToIPv6
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:793,1
    - Dst: htons
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:801,1
    - Dst: IPPacketInfo*::DestAddress::ToIPv4
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:802,1
    - Dst: IPPacketInfo*::SrcAddress::Type
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:820,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:823,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:827,1
    - Dst: CMSG_LEN
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:836,1
    - Dst: CMSG_DATA
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:838,1
    - Dst: IPPacketInfo*::SrcAddress::ToIPv4
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:840,1
    - Dst: CMSG_SPACE
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:842,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:844,1
    - Dst: CMSG_LEN
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:855,1
    - Dst: CMSG_DATA
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:857,1
    - Dst: IPPacketInfo*::SrcAddress::ToIPv6
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:859,1
    - Dst: CMSG_SPACE
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:861,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:863,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:869,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:878,1
    - Dst: Weave::System::PacketBuffer*::DataLength
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:879,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 56
    argCount: 3
    argNames:
    - aPktInfo
    - aBuffer
    - aSendFlags
    argTypes:
    - IPPacketInfo*
    - Weave::System::PacketBuffer*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 885
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 885
    functionName: nl::Inet::IPEndPointBasis::SendMsg
    functionSourceFile: /src/openweave-core/src/inet/IPEndPointBasis.cpp
    functionUses: 2
    functionsReached:
    - CMSG_LEN
    - CMSG_DATA
    - Weave::System::PacketBuffer*::Next
    - IPPacketInfo*::DestAddress::ToIPv4
    - Weave::System::PacketBuffer*::DataLength
    - IPPacketInfo*::DestAddress::Type
    - IPPacketInfo*::SrcAddress::Type
    - CMSG_SPACE
    - VerifyOrExit
    - memset
    - ExitNow
    - nl::Weave::System::MapErrorPOSIX
    - CMSG_FIRSTHDR
    - htons
    - Weave::System::PacketBuffer*::Start
    - IPPacketInfo*::SrcAddress::ToIPv4
    - IPPacketInfo*::SrcAddress::ToIPv6
    - IPPacketInfo*::DestAddress::ToIPv6
    linkageType: ''
    returnType: INET_ERROR
    signature: IPEndPointBasis::SendMsg(const IPPacketInfo *aPktInfo, Weave::System::PacketBuffer
      *aBuffer, uint16_t aSendFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSNetworkSystem_socket
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:912,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:914,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:927,1
    - Dst: static_cast<void>
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:928,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:931,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:934,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:945,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:948,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:957,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:960,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:969,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:972,1
    - Dst: setsockopt
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:983,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:986,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 3
    argNames:
    - aAddressType
    - aType
    - aProtocol
    argTypes:
    - IPAddressType
    - int
    - int
    constantsTouched: []
    func_position:
      end: 998
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 998
    functionName: nl::Inet::IPEndPointBasis::GetSocket
    functionSourceFile: /src/openweave-core/src/inet/IPEndPointBasis.cpp
    functionUses: 2
    functionsReached:
    - WeaveLogError
    - OSNetworkSystem_socket
    - static_cast<void>
    - nl::Weave::System::MapErrorPOSIX
    - setsockopt
    linkageType: ''
    returnType: INET_ERROR
    signature: IPEndPointBasis::GetSocket(IPAddressType aAddressType, int aType, int
      aProtocol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SocketEvents::SetRead
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:1005,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 1000
    functionDepth: 0
    functionLinenumber: 1000
    functionLinenumberEnd: 1008
    functionName: nl::Inet::IPEndPointBasis::PrepareIO
    functionSourceFile: /src/openweave-core/src/inet/IPEndPointBasis.cpp
    functionUses: 2
    functionsReached:
    - SocketEvents::SetRead
    linkageType: ''
    returnType: SocketEvents
    signature: IPEndPointBasis::PrepareIO(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPPacketInfo::Clear
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:1016,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:1019,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:1028,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:1029,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:1031,1
    - Dst: memset
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:1033,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:1046,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:1048,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:1054,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:1058,1
    - Dst: ntohs
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:1059,1
    - Dst: nl::Inet::IPAddress::FromIPv4
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:1064,1
    - Dst: ntohs
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:1065,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:1076,1
    - Dst: CMSG_NXTHDR
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:1078,1
    - Dst: CMSG_DATA
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:1084,1
    - Dst: nl::Inet::IPAddress::FromIPv4
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:1086,1
    - Dst: CMSG_DATA
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:1095,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/inet/IPEndPointBasis.cpp:1097,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 1
    argNames:
    - aPort
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1103
      start: 1010
    functionDepth: 1
    functionLinenumber: 1010
    functionLinenumberEnd: 1103
    functionName: nl::Inet::IPEndPointBasis::HandlePendingIO
    functionSourceFile: /src/openweave-core/src/inet/IPEndPointBasis.cpp
    functionUses: 2
    functionsReached:
    - CMSG_DATA
    - PacketBuffer*::SetDataLength
    - ntohs
    - nl::Inet::IPAddress::FromIPv6
    - memset
    - CMSG_FIRSTHDR
    - CMSG_NXTHDR
    - PacketBuffer*::Start
    - nl::Weave::System::MapErrorPOSIX
    - IPPacketInfo::Clear
    - nl::Weave::System::PacketBuffer::New
    - nl::Inet::IPAddress::FromIPv4
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: void
    signature: IPEndPointBasis::HandlePendingIO(uint16_t aPort)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: REG_SET_FIELD
      Src: /src/openweave-core/src/tools/factory-prov-tool/esp32-restart/esp32-restart.c:33,1
    - Dst: REG_WRITE
      Src: /src/openweave-core/src/tools/factory-prov-tool/esp32-restart/esp32-restart.c:34,1
    - Dst: REG_WRITE
      Src: /src/openweave-core/src/tools/factory-prov-tool/esp32-restart/esp32-restart.c:35,1
    - Dst: REG_WRITE
      Src: /src/openweave-core/src/tools/factory-prov-tool/esp32-restart/esp32-restart.c:40,1
    - Dst: REG_WRITE
      Src: /src/openweave-core/src/tools/factory-prov-tool/esp32-restart/esp32-restart.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: main
    functionSourceFile: /src/openweave-core/src/tools/factory-prov-tool/esp32-restart/esp32-restart.c
    functionUses: 0
    functionsReached:
    - REG_SET_FIELD
    - REG_WRITE
    linkageType: ''
    returnType: void
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: OBJ_length
    functionSourceFile: /src/openweave-core/src/tools/weave/GeneralUtils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: OBJ_length(const ASN1_OBJECT *obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: OBJ_get0_data
    functionSourceFile: /src/openweave-core/src/tools/weave/GeneralUtils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: '*OBJ_get0_data(const ASN1_OBJECT *obj)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc_init
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:78,1
    - Dst: CRYPTO_malloc_init
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:80,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:83,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:84,1
    - Dst: OBJ_create
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:86,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:88,1
    - Dst: OBJ_create
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:90,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:92,1
    - Dst: OBJ_create
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:94,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:96,1
    - Dst: OBJ_create
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:98,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:100,1
    - Dst: ASN1_STRING_TABLE_add
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:102,1
    - Dst: ASN1_STRING_TABLE_add
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:103,1
    - Dst: ASN1_STRING_TABLE_add
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:104,1
    - Dst: ASN1_STRING_TABLE_add
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 109
    functionName: InitOpenSSL
    functionSourceFile: /src/openweave-core/src/tools/weave/GeneralUtils.cpp
    functionUses: 0
    functionsReached:
    - ReportOpenSSLErrorAndExit
    - OBJ_create
    - CRYPTO_malloc_init
    - OpenSSL_add_all_algorithms
    - ASN1_STRING_TABLE_add
    - OPENSSL_malloc_init
    - ERR_load_crypto_strings
    linkageType: ''
    returnType: bool
    signature: InitOpenSSL()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:115,1
    - Dst: ParseObjectID
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:119,1
    - Dst: OBJ_get0_data
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:119,1
    - Dst: OBJ_length
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: NIDToWeaveOID
    functionSourceFile: /src/openweave-core/src/tools/weave/GeneralUtils.cpp
    functionUses: 0
    functionsReached:
    - OBJ_length
    - OBJ_get0_data
    - ParseObjectID
    - OBJ_nid2obj
    linkageType: ''
    returnType: OID
    signature: NIDToWeaveOID(int nid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Base64Encode
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inData
    - inDataLen
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: Base64Encode
    functionSourceFile: /src/openweave-core/src/tools/weave/GeneralUtils.cpp
    functionUses: 1
    functionsReached:
    - Base64Encode
    linkageType: ''
    returnType: char
    signature: '*Base64Encode(const uint8_t *inData, uint32_t inDataLen)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BASE64_ENCODED_LEN
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:132,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:136,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:137,1
    - Dst: malloc
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:140,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:143,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:144,1
    - Dst: memset
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:146,1
    - Dst: nl::Base64Encode32
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:148,1
    - Dst: memcpy
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:153,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - inData
    - inDataLen
    - outBuf
    - outBufSize
    - ' outDataLen'
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 160
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 160
    functionName: Base64Encode
    functionSourceFile: /src/openweave-core/src/tools/weave/GeneralUtils.cpp
    functionUses: 1
    functionsReached:
    - nl::Base64Encode32
    - memset
    - ExitNow
    - free
    - memcpy
    - BASE64_ENCODED_LEN
    - fprintf
    - malloc
    linkageType: ''
    returnType: uint8_t
    signature: '*Base64Encode(const uint8_t *inData, uint32_t inDataLen, uint8_t *outBuf,
      uint32_t outBufSize, uint32_t& outDataLen)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BASE64_MAX_DECODED_LEN
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:166,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:172,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:173,1
    - Dst: malloc
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:179,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:182,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:183,1
    - Dst: nl::Base64Decode32
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:187,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:190,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:192,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:193,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - inData
    - inDataLen
    - outBuf
    - outBufSize
    - ' outDataLen'
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 198
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 198
    functionName: Base64Decode
    functionSourceFile: /src/openweave-core/src/tools/weave/GeneralUtils.cpp
    functionUses: 0
    functionsReached:
    - nl::Base64Decode32
    - BASE64_MAX_DECODED_LEN
    - ExitNow
    - free
    - fprintf
    - malloc
    linkageType: ''
    returnType: uint8_t
    signature: '*Base64Decode(const uint8_t *inData, uint32_t inDataLen, uint8_t *outBuf,
      uint32_t outBufSize, uint32_t& outDataLen)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:204,1
    - Dst: isspace
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:204,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - str
    - strLen
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 208
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 208
    functionName: IsBase64String
    functionSourceFile: /src/openweave-core/src/tools/weave/GeneralUtils.cpp
    functionUses: 0
    functionsReached:
    - isspace
    - isalnum
    linkageType: ''
    returnType: bool
    signature: IsBase64String(const char * str, uint32_t strLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - marker
    - data
    - dataLen
    argTypes:
    - char*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 219
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 219
    functionName: ContainsPEMMarker
    functionSourceFile: /src/openweave-core/src/tools/weave/GeneralUtils.cpp
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: bool
    signature: ContainsPEMMarker(const char *marker, const uint8_t *data, uint32_t
      dataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strtoull
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - str
    - ' nodeId'
    argTypes:
    - char*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 228
    functionName: ParseEUI64
    functionSourceFile: /src/openweave-core/src/tools/weave/GeneralUtils.cpp
    functionUses: 0
    functionsReached:
    - strtoull
    linkageType: ''
    returnType: bool
    signature: ParseEUI64(const char *str, uint64_t& nodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:234,1
    - Dst: strptime
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:236,1
    - Dst: strptime
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:237,1
    - Dst: strptime
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:238,1
    - Dst: strptime
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:239,1
    - Dst: strptime
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:240,1
    - Dst: strptime
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:241,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - str
    - ' date'
    argTypes:
    - char*
    - struct tm
    constantsTouched: []
    func_position:
      end: 252
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 252
    functionName: ParseDateTime
    functionSourceFile: /src/openweave-core/src/tools/weave/GeneralUtils.cpp
    functionUses: 0
    functionsReached:
    - strptime
    - memset
    linkageType: ''
    returnType: bool
    signature: ParseDateTime(const char *str, struct tm& date)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:264,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:267,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:267,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:268,1
    - Dst: fseek
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:271,1
    - Dst: ftell
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:272,1
    - Dst: fseek
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:273,1
    - Dst: ferror
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:274,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:276,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:276,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:277,1
    - Dst: malloc
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:281,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:284,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:285,1
    - Dst: fread
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:288,1
    - Dst: ferror
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:289,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:291,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:291,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:292,1
    - Dst: fclose
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:297,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/GeneralUtils.cpp:300,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - fileName
    - ' data'
    - dataLen
    argTypes:
    - char*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 304
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 304
    functionName: ReadFileIntoMem
    functionSourceFile: /src/openweave-core/src/tools/weave/GeneralUtils.cpp
    functionUses: 0
    functionsReached:
    - ferror
    - fseek
    - fread
    - ExitNow
    - fclose
    - malloc
    - free
    - ftell
    - fprintf
    - fopen
    - strerror
    linkageType: ''
    returnType: bool
    signature: ReadFileIntoMem(const char *fileName, uint8_t *& data, uint32_t &dataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:169,1
    - Dst: gmtime
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:170,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:178,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:179,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:182,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:184,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:189,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:190,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:195,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:196,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:201,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:202,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:207,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:208,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:213,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:214,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:219,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:220,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:225,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:226,1
    - Dst: OBJ_sn2nid
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:231,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:234,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:235,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:241,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:242,1
    - Dst: access
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:245,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:247,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:250,1
    - Dst: access
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:253,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:255,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:258,1
    - Dst: fopen
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:261,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:264,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:267,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:268,1
    - Dst: fopen
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:274,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:277,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:280,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:281,1
    - Dst: InitOpenSSL
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:286,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:287,1
    - Dst: ReadCertPEM
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:289,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:290,1
    - Dst: ReadPrivateKey
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:294,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:295,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:299,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:299,1
    - Dst: EVP_PKEY_get1_EC_KEY
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:299,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:301,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:303,1
    - Dst: ReadPrivateKey
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:307,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:308,1
    - Dst: MakeDeviceCert
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:310,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:311,1
    - Dst: WeaveEncodeCert
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:313,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:314,1
    - Dst: EncodePrivateKey
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:316,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:317,1
    - Dst: Base64Encode
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:319,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:322,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:323,1
    - Dst: Base64Encode
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:326,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:329,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:330,1
    - Dst: fputs
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:333,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:335,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:338,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:339,1
    - Dst: fputs
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:342,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:344,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:347,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:348,1
    - Dst: fclose
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:351,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:355,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:358,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:359,1
    - Dst: fclose
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:364,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:368,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:371,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:372,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:378,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:380,1
    - Dst: X509_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:382,1
    - Dst: X509_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:384,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:386,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:388,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:390,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:392,1
    - Dst: fclose
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:394,1
    - Dst: fclose
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:396,1
    - Dst: unlink
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:398,1
    - Dst: unlink
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:400,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 153
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 402
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 402
    functionName: Cmd_GenDeviceCert
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp
    functionUses: 0
    functionsReached:
    - unlink
    - fclose
    - InitOpenSSL
    - fputs
    - fprintf
    - fopen
    - EVP_PKEY_free
    - gmtime
    - OBJ_sn2nid
    - MakeDeviceCert
    - EVP_PKEY_get1_EC_KEY
    - access
    - X509_free
    - time
    - ParseArgs
    - ReadPrivateKey
    - ExitNow
    - PrintBriefUsage
    - EC_KEY_get0_group
    - ReadCertPEM
    - strerror
    - EC_GROUP_get_curve_name
    - Base64Encode
    - EncodePrivateKey
    - free
    - WeaveEncodeCert
    linkageType: ''
    returnType: bool
    signature: Cmd_GenDeviceCert(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseEUI64
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:409,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:411,1
    - Dst: ParseDateTime
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:434,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:436,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:441,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:443,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:448,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:451,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp:454,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 459
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 459
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp
    functionUses: 0
    functionsReached:
    - EVP_sha1
    - ParseDateTime
    - ParseEUI64
    - ParseInt
    - EVP_sha256
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadCert
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fileName
    - ' cert'
    argTypes:
    - char*
    - X509*
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: ReadCert
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 1
    functionsReached:
    - ReadCert
    linkageType: ''
    returnType: bool
    signature: ReadCert(const char *fileName, X509 *& cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadFileIntoMem
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:63,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:64,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:66,1
    - Dst: DetectCertFormat
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:68,1
    - Dst: X509PEMToDER
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:72,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:73,1
    - Dst: Base64Decode
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:78,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:79,1
    - Dst: ConvertWeaveCertToX509Cert
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:88,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:91,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:92,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:92,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:93,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:96,1
    - Dst: d2i_X509
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:104,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:106,1
    - Dst: X509_free
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:110,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:114,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 3
    argNames:
    - fileName
    - ' cert'
    - ' origCertFmt'
    argTypes:
    - char*
    - X509*
    - CertFormat
    constantsTouched: []
    func_position:
      end: 117
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 117
    functionName: ReadCert
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 1
    functionsReached:
    - fprintf
    - d2i_X509
    - ReadFileIntoMem
    - ConvertWeaveCertToX509Cert
    - VerifyOrExit
    - X509PEMToDER
    - ExitNow
    - Base64Decode
    - free
    - ReportOpenSSLErrorAndExit
    - X509_free
    - DetectCertFormat
    - nl::ErrorStr
    linkageType: ''
    returnType: bool
    signature: ReadCert(const char *fileName, X509 *& cert, CertFormat& origCertFmt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:124,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:127,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:127,1
    - Dst: PEM_read_X509
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:132,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:134,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:135,1
    - Dst: fclose
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - fileName
    - ' cert'
    argTypes:
    - char*
    - X509*
    constantsTouched: []
    func_position:
      end: 142
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 142
    functionName: ReadCertPEM
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 1
    functionsReached:
    - PEM_read_X509
    - ReportOpenSSLErrorAndExit
    - fclose
    - fprintf
    - fopen
    - strerror
    linkageType: ''
    returnType: bool
    signature: ReadCertPEM(const char *fileName, X509 *& cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadFileIntoMem
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:152,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:153,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:155,1
    - Dst: DetectCertFormat
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:157,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:160,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:161,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:169,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:171,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:178,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - fileName
    - ' certBuf'
    - ' certLen'
    argTypes:
    - char*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 183
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 183
    functionName: ReadWeaveCert
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    - ReadFileIntoMem
    - VerifyOrExit
    - ExitNow
    - free
    - DetectCertFormat
    linkageType: ''
    returnType: bool
    signature: ReadWeaveCert(const char *fileName, uint8_t *& certBuf, uint32_t& certLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:194,1
    - Dst: ReadWeaveCert
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:198,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:200,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:202,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:205,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:205,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:206,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:215,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - fileName
    - isTrused
    - ' certSet'
    - ' certBuf'
    argTypes:
    - char*
    - bool
    - WeaveCertificateSet
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 219
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 219
    functionName: LoadWeaveCert
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 0
    functionsReached:
    - LoadCert
    - ExitNow
    - free
    - fprintf
    - ReadWeaveCert
    - nl::ErrorStr
    linkageType: ''
    returnType: bool
    signature: LoadWeaveCert(const char *fileName, bool isTrused, WeaveCertificateSet&
      certSet, uint8_t *& certBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PEM_write_X509
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:230,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:231,1
    - Dst: i2d_X509_fp
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:236,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:237,1
    - Dst: WeaveEncodeCert
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:242,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:243,1
    - Dst: fwrite
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:247,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:249,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:249,1
    - Dst: ferror
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:249,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:250,1
    - Dst: Base64Encode
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:256,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:258,1
    - Dst: fputs
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:260,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:262,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:262,1
    - Dst: ferror
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:262,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:263,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:270,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:272,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 4
    argNames:
    - cert
    - file
    - fileName
    - certFmt
    argTypes:
    - X509*
    - FILE*
    - char*
    - CertFormat
    constantsTouched: []
    func_position:
      end: 274
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 274
    functionName: WriteCert
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 0
    functionsReached:
    - PEM_write_X509
    - fwrite
    - ferror
    - ReportOpenSSLErrorAndExit
    - Base64Encode
    - ExitNow
    - free
    - fputs
    - fprintf
    - strerror
    - i2d_X509_fp
    - WeaveEncodeCert
    linkageType: ''
    returnType: bool
    signature: WriteCert(X509 *cert, FILE *file, const char *fileName, CertFormat
      certFmt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:285,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:287,1
    - Dst: malloc
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:289,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:292,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:293,1
    - Dst: ConvertX509CertToWeaveCert
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:296,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:299,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:299,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:300,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:306,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - cert
    - ' encodedCert'
    - ' encodedCertLen'
    argTypes:
    - X509*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 310
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 310
    functionName: WeaveEncodeCert
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 2
    functionsReached:
    - i2d_X509
    - ReportOpenSSLErrorAndExit
    - ExitNow
    - free
    - nl::ErrorStr
    - fprintf
    - malloc
    - ConvertX509CertToWeaveCert
    linkageType: ''
    returnType: bool
    signature: WeaveEncodeCert(X509 *cert, uint8_t *& encodedCert, uint32_t& encodedCertLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:317,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - cert
    - ' encodedCert'
    - ' encodedCertLen'
    argTypes:
    - X509*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 325
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 325
    functionName: DEREncodeCert
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 0
    functionsReached:
    - ReportOpenSSLErrorAndExit
    - i2d_X509
    linkageType: ''
    returnType: bool
    signature: DEREncodeCert(X509 *cert, uint8_t *& encodedCert, uint32_t& encodedCertLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenerateKeyPair
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:335,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:336,1
    - Dst: X509_new
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:338,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:340,1
    - Dst: X509_set_version
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:342,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:343,1
    - Dst: SetCertSerialNumber
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:345,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:346,1
    - Dst: SetValidityTime
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:349,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:350,1
    - Dst: X509_set_pubkey
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:352,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:353,1
    - Dst: SetWeaveCertSubjectName
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:355,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:356,1
    - Dst: X509_set_issuer_name
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:358,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:358,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:359,1
    - Dst: AddExtension
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:361,1
    - Dst: AddExtension
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:362,1
    - Dst: AddExtension
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:363,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:364,1
    - Dst: AddSubjectKeyId
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:366,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:367,1
    - Dst: AddAuthorityKeyId
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:369,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:370,1
    - Dst: X509_sign
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:372,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:373,1
    - Dst: X509_free
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:378,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:383,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 38
    argCount: 9
    argNames:
    - devId
    - caCert
    - caKey
    - curveName
    - ' validFrom'
    - validDays
    - sigHashAlgo
    - ' devCert'
    - ' devKey'
    argTypes:
    - uint64_t
    - X509*
    - EVP_PKEY*
    - char*
    - struct tm
    - uint32_t
    - EVP_MD*
    - X509*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 387
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 387
    functionName: MakeDeviceCert
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 1
    functionsReached:
    - AddAuthorityKeyId
    - SetCertSerialNumber
    - ReportOpenSSLErrorAndExit
    - X509_set_version
    - ExitNow
    - X509_new
    - X509_set_issuer_name
    - X509_get_subject_name
    - AddExtension
    - X509_sign
    - GenerateKeyPair
    - X509_free
    - X509_set_pubkey
    - SetValidityTime
    - AddSubjectKeyId
    - EVP_PKEY_free
    - SetWeaveCertSubjectName
    linkageType: ''
    returnType: bool
    signature: "MakeDeviceCert(uint64_t devId, X509 *caCert, EVP_PKEY *caKey, const
      char *curveName, const struct tm& validFrom, uint32_t validDays,\n                    const
      EVP_MD *sigHashAlgo, X509 *& devCert, EVP_PKEY *& devKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_new
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:395,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:397,1
    - Dst: X509_set_version
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:408,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:409,1
    - Dst: SetCertSerialNumber
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:412,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:413,1
    - Dst: SetValidityTime
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:416,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:417,1
    - Dst: X509_set_pubkey
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:420,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:421,1
    - Dst: SetWeaveCertSubjectName
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:424,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:425,1
    - Dst: X509_set_issuer_name
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:429,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:429,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:430,1
    - Dst: AddExtension
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:433,1
    - Dst: AddExtension
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:434,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:435,1
    - Dst: AddSubjectKeyId
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:438,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:439,1
    - Dst: AddAuthorityKeyId
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:443,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:444,1
    - Dst: X509_sign
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:447,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:448,1
    - Dst: X509_free
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:453,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 8
    argNames:
    - newCertId
    - newCertKey
    - caCert
    - caKey
    - ' validFrom'
    - validDays
    - sigHashAlgo
    - ' newCert'
    argTypes:
    - uint64_t
    - EVP_PKEY*
    - X509*
    - EVP_PKEY*
    - struct tm
    - uint32_t
    - EVP_MD*
    - X509*
    constantsTouched: []
    func_position:
      end: 457
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 457
    functionName: MakeCACert
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 0
    functionsReached:
    - AddAuthorityKeyId
    - SetCertSerialNumber
    - ReportOpenSSLErrorAndExit
    - X509_set_version
    - ExitNow
    - X509_new
    - X509_set_issuer_name
    - X509_get_subject_name
    - AddExtension
    - X509_sign
    - X509_free
    - X509_set_pubkey
    - SetValidityTime
    - AddSubjectKeyId
    - SetWeaveCertSubjectName
    linkageType: ''
    returnType: bool
    signature: "MakeCACert(uint64_t newCertId, EVP_PKEY *newCertKey, X509 *caCert,
      EVP_PKEY *caKey, const struct tm& validFrom, uint32_t validDays,\n                const
      EVP_MD *sigHashAlgo, X509 *& newCert)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_new
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:465,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:467,1
    - Dst: X509_set_version
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:470,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:471,1
    - Dst: SetCertSerialNumber
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:474,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:475,1
    - Dst: SetValidityTime
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:478,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:479,1
    - Dst: X509_set_pubkey
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:482,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:483,1
    - Dst: SetWeaveCertSubjectName
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:486,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:487,1
    - Dst: X509_set_issuer_name
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:491,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:491,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:492,1
    - Dst: AddExtension
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:495,1
    - Dst: AddExtension
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:496,1
    - Dst: AddExtension
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:497,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:498,1
    - Dst: AddSubjectKeyId
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:501,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:502,1
    - Dst: AddAuthorityKeyId
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:506,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:507,1
    - Dst: X509_sign
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:510,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:511,1
    - Dst: X509_free
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:516,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 8
    argNames:
    - newCertId
    - newCertKey
    - caCert
    - caKey
    - ' validFrom'
    - validDays
    - sigHashAlgo
    - ' newCert'
    argTypes:
    - uint64_t
    - EVP_PKEY*
    - X509*
    - EVP_PKEY*
    - struct tm
    - uint32_t
    - EVP_MD*
    - X509*
    constantsTouched: []
    func_position:
      end: 520
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 520
    functionName: MakeCodeSigningCert
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 0
    functionsReached:
    - AddAuthorityKeyId
    - SetCertSerialNumber
    - ReportOpenSSLErrorAndExit
    - X509_set_version
    - ExitNow
    - X509_new
    - X509_set_issuer_name
    - X509_get_subject_name
    - AddExtension
    - X509_sign
    - X509_free
    - X509_set_pubkey
    - SetValidityTime
    - AddSubjectKeyId
    - SetWeaveCertSubjectName
    linkageType: ''
    returnType: bool
    signature: "MakeCodeSigningCert(uint64_t newCertId, EVP_PKEY *newCertKey, X509
      *caCert, EVP_PKEY *caKey, const struct tm& validFrom, uint32_t validDays,\n
      \                        const EVP_MD *sigHashAlgo, X509 *& newCert)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_new
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:528,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:530,1
    - Dst: X509_set_version
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:533,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:534,1
    - Dst: SetCertSerialNumber
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:537,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:538,1
    - Dst: SetValidityTime
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:541,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:542,1
    - Dst: X509_set_pubkey
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:545,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:546,1
    - Dst: SetWeaveCertSubjectName
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:549,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:550,1
    - Dst: X509_set_issuer_name
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:553,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:553,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:554,1
    - Dst: AddExtension
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:557,1
    - Dst: AddExtension
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:558,1
    - Dst: AddExtension
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:559,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:560,1
    - Dst: AddSubjectKeyId
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:563,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:564,1
    - Dst: AddAuthorityKeyId
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:568,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:569,1
    - Dst: X509_sign
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:572,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:573,1
    - Dst: X509_free
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:578,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 8
    argNames:
    - newCertId
    - newCertKey
    - caCert
    - caKey
    - ' validFrom'
    - validDays
    - sigHashAlgo
    - ' newCert'
    argTypes:
    - uint64_t
    - EVP_PKEY*
    - X509*
    - EVP_PKEY*
    - struct tm
    - uint32_t
    - EVP_MD*
    - X509*
    constantsTouched: []
    func_position:
      end: 582
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 582
    functionName: MakeServiceEndpointCert
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 0
    functionsReached:
    - AddAuthorityKeyId
    - SetCertSerialNumber
    - ReportOpenSSLErrorAndExit
    - X509_set_version
    - ExitNow
    - X509_new
    - X509_set_issuer_name
    - X509_get_subject_name
    - AddExtension
    - X509_sign
    - X509_free
    - X509_set_pubkey
    - SetValidityTime
    - AddSubjectKeyId
    - SetWeaveCertSubjectName
    linkageType: ''
    returnType: bool
    signature: "MakeServiceEndpointCert(uint64_t newCertId, EVP_PKEY *newCertKey,
      X509 *caCert, EVP_PKEY *caKey, const struct tm& validFrom, uint32_t validDays,\n
      \                            const EVP_MD *sigHashAlgo, X509 *& newCert)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_new
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:590,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:592,1
    - Dst: X509_set_version
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:603,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:604,1
    - Dst: SetCertSerialNumber
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:607,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:608,1
    - Dst: SetValidityTime
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:611,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:612,1
    - Dst: X509_set_pubkey
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:615,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:616,1
    - Dst: SetCertSubjectName
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:619,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:620,1
    - Dst: X509_set_issuer_name
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:624,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:624,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:625,1
    - Dst: AddExtension
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:628,1
    - Dst: AddExtension
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:629,1
    - Dst: AddExtension
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:630,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:631,1
    - Dst: AddSubjectKeyId
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:634,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:635,1
    - Dst: AddAuthorityKeyId
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:639,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:640,1
    - Dst: X509_sign
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:643,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:644,1
    - Dst: X509_free
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:649,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 8
    argNames:
    - subject
    - newCertKey
    - caCert
    - caKey
    - ' validFrom'
    - validDays
    - sigHashAlgo
    - ' newCert'
    argTypes:
    - char*
    - EVP_PKEY*
    - X509*
    - EVP_PKEY*
    - struct tm
    - uint32_t
    - EVP_MD*
    - X509*
    constantsTouched: []
    func_position:
      end: 653
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 653
    functionName: MakeGeneralCert
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 0
    functionsReached:
    - AddAuthorityKeyId
    - SetCertSerialNumber
    - SetCertSubjectName
    - ReportOpenSSLErrorAndExit
    - X509_set_version
    - ExitNow
    - X509_new
    - X509_set_issuer_name
    - X509_get_subject_name
    - AddExtension
    - X509_sign
    - X509_free
    - X509_set_pubkey
    - SetValidityTime
    - AddSubjectKeyId
    linkageType: ''
    returnType: bool
    signature: "MakeGeneralCert(const char *subject, EVP_PKEY *newCertKey, X509 *caCert,
      EVP_PKEY *caKey, const struct tm& validFrom, uint32_t validDays,\n                     const
      EVP_MD *sigHashAlgo, X509 *& newCert)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetCertSerialNumber
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:660,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:661,1
    - Dst: X509_set_issuer_name
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:663,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:663,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:664,1
    - Dst: X509_get_ext_by_NID
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:667,1
    - Dst: X509_delete_ext
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:670,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:671,1
    - Dst: AddAuthorityKeyId
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:674,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:675,1
    - Dst: X509_sign
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:677,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:678,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - cert
    - caCert
    - caKey
    - sigHashAlgo
    argTypes:
    - X509*
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 682
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 682
    functionName: ResignCert
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 0
    functionsReached:
    - X509_get_ext_by_NID
    - SetCertSerialNumber
    - AddAuthorityKeyId
    - ReportOpenSSLErrorAndExit
    - X509_get_subject_name
    - X509_set_issuer_name
    - ExitNow
    - X509_sign
    - X509_delete_ext
    linkageType: ''
    returnType: bool
    signature: ResignCert(X509 *cert, X509 *caCert, EVP_PKEY *caKey, const EVP_MD
      *sigHashAlgo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_serialNumber
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:695,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:698,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:698,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:699,1
    - Dst: ASN1_INTEGER_set_uint64
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:705,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cert
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 710
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 710
    functionName: SetCertSerialNumber
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 6
    functionsReached:
    - RAND_bytes
    - reinterpret_cast<uint8_t *>
    - ReportOpenSSLErrorAndExit
    - X509_get_serialNumber
    - ASN1_INTEGER_set_uint64
    linkageType: ''
    returnType: bool
    signature: SetCertSerialNumber(X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_serialNumber
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:720,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:723,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:724,1
    - Dst: c2i_ASN1_INTEGER
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:738,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:739,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - cert
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 743
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 743
    functionName: SetCertSerialNumber
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 6
    functionsReached:
    - RAND_bytes
    - X509_get_serialNumber
    - ReportOpenSSLErrorAndExit
    - c2i_ASN1_INTEGER
    linkageType: ''
    returnType: bool
    signature: SetCertSerialNumber(X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_add_entry_by_NID
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:752,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:752,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:753,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - cert
    - attrNID
    - subjectName
    argTypes:
    - X509*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 757
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 757
    functionName: SetCertSubjectName
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 1
    functionsReached:
    - X509_NAME_add_entry_by_NID
    - ReportOpenSSLErrorAndExit
    - X509_get_subject_name
    linkageType: ''
    returnType: bool
    signature: SetCertSubjectName(X509 *cert, int attrNID, const char *subjectName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:763,1
    - Dst: SetCertSubjectName
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cert
    - attrNID
    - id
    argTypes:
    - X509*
    - int
    - uint64_t
    constantsTouched: []
    func_position:
      end: 765
      start: 759
    functionDepth: 2
    functionLinenumber: 759
    functionLinenumberEnd: 765
    functionName: SetWeaveCertSubjectName
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 4
    functionsReached:
    - SetCertSubjectName
    - snprintf
    linkageType: ''
    returnType: bool
    signature: SetWeaveCertSubjectName(X509 *cert, int attrNID, uint64_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:772,1
    - Dst: ASN1_TIME_set_string
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:786,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - s
    - ' value'
    argTypes:
    - ASN1_TIME*
    - struct tm
    constantsTouched: []
    func_position:
      end: 793
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 793
    functionName: SetCertTimeField
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    - ASN1_TIME_set_string
    - snprintf
    linkageType: ''
    returnType: bool
    signature: SetCertTimeField(ASN1_TIME *s, const struct tm& value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mktime
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:808,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:811,1
    - Dst: localtime_r
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:814,1
    - Dst: SetCertTimeField
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:817,1
    - Dst: X509_get_notBefore
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:817,1
    - Dst: SetCertTimeField
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:821,1
    - Dst: X509_get_notAfter
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:821,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - cert
    - ' validFrom'
    - validDays
    argTypes:
    - X509*
    - struct tm
    - uint32_t
    constantsTouched: []
    func_position:
      end: 825
      start: 795
    functionDepth: 2
    functionLinenumber: 795
    functionLinenumberEnd: 825
    functionName: SetValidityTime
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 5
    functionsReached:
    - mktime
    - X509_get_notBefore
    - SetCertTimeField
    - X509_get_notAfter
    - fprintf
    - localtime_r
    linkageType: ''
    returnType: bool
    signature: SetValidityTime(X509 *cert, const struct tm& validFrom, uint32_t validDays)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_EXT_nconf_nid
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:832,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:834,1
    - Dst: X509_add_ext
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:836,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:837,1
    - Dst: X509_EXTENSION_free
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:841,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - devCert
    - extNID
    - extStr
    argTypes:
    - X509*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 843
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 843
    functionName: AddExtension
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 5
    functionsReached:
    - X509_add_ext
    - X509V3_EXT_nconf_nid
    - ReportOpenSSLErrorAndExit
    - X509_EXTENSION_free
    linkageType: ''
    returnType: bool
    signature: AddExtension(X509 *devCert, int extNID, const char *extStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey_bitstr
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:849,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:853,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:853,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:854,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:858,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:859,1
    - Dst: ASN1_STRING_type_new
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:862,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:864,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:874,1
    - Dst: reinterpret_cast<ASN1_STRING *>
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:874,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:875,1
    - Dst: X509_add1_ext_i2d
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:877,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:878,1
    - Dst: ASN1_STRING_free
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:882,1
    - Dst: reinterpret_cast<ASN1_STRING *>
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:882,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - cert
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 884
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 884
    functionName: AddSubjectKeyId
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 5
    functionsReached:
    - EVP_Digest
    - X509_get0_pubkey_bitstr
    - EVP_sha1
    - ASN1_STRING_set
    - X509_add1_ext_i2d
    - ASN1_STRING_free
    - ReportOpenSSLErrorAndExit
    - reinterpret_cast<ASN1_STRING *>
    - ExitNow
    - fprintf
    - ASN1_STRING_type_new
    linkageType: ''
    returnType: bool
    signature: AddSubjectKeyId(X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AUTHORITY_KEYID_new
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:892,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:895,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:896,1
    - Dst: X509_get_ext_d2i
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:899,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:901,1
    - Dst: X509_add1_ext_i2d
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:903,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:904,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - cert
    - caCert
    argTypes:
    - X509*
    - X509*
    constantsTouched: []
    func_position:
      end: 908
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 908
    functionName: AddAuthorityKeyId
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 6
    functionsReached:
    - X509_get_ext_d2i
    - X509_add1_ext_i2d
    - AUTHORITY_KEYID_new
    - ReportOpenSSLErrorAndExit
    - ExitNow
    - fprintf
    linkageType: ''
    returnType: bool
    signature: AddAuthorityKeyId(X509 *cert, X509 *caCert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_mem_buf
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:919,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:922,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:923,1
    - Dst: PEM_read_bio
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:926,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:927,1
    - Dst: memcpy
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:929,1
    - Dst: BIO_free
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:934,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:936,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:938,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:940,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - cert
    - ' certLen'
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 942
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 942
    functionName: X509PEMToDER
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 1
    functionsReached:
    - ReportOpenSSLErrorAndExit
    - ExitNow
    - BIO_new_mem_buf
    - BIO_free
    - PEM_read_bio
    - memcpy
    - fprintf
    - OPENSSL_free
    linkageType: ''
    returnType: bool
    signature: X509PEMToDER(uint8_t *cert, uint32_t& certLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:950,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:950,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:953,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:954,1
    - Dst: PEM_write_bio
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:957,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:958,1
    - Dst: BIO_flush
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:960,1
    - Dst: BIO_get_mem_ptr
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:962,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:966,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:967,1
    - Dst: memcpy
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:970,1
    - Dst: BIO_free
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:975,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - cert
    - ' certLen'
    - bufLen
    argTypes:
    - uint8_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 977
      start: 944
    functionDepth: 1
    functionLinenumber: 944
    functionLinenumberEnd: 977
    functionName: X509DERToPEM
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 0
    functionsReached:
    - PEM_write_bio
    - BIO_flush
    - BIO_s_mem
    - BIO_get_mem_ptr
    - ReportOpenSSLErrorAndExit
    - ExitNow
    - BIO_free
    - memcpy
    - fprintf
    - BIO_new
    linkageType: ''
    returnType: bool
    signature: X509DERToPEM(uint8_t *cert, uint32_t& certLen, uint32_t bufLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:986,1
    - Dst: memcmp
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:989,1
    - Dst: ContainsPEMMarker
      Src: /src/openweave-core/src/tools/weave/CertUtils.cpp:992,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - cert
    - certLen
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 996
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 996
    functionName: DetectCertFormat
    functionSourceFile: /src/openweave-core/src/tools/weave/CertUtils.cpp
    functionUses: 2
    functionsReached:
    - ContainsPEMMarker
    - memcmp
    linkageType: ''
    returnType: CertFormat
    signature: DetectCertFormat(uint8_t *cert, uint32_t certLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:145,1
    - Dst: gmtime
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:146,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:154,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:155,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:158,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:160,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:165,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:166,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:171,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:173,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:178,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:180,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:185,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:187,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:192,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:193,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:198,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:199,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:204,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:205,1
    - Dst: strcmp
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:208,1
    - Dst: access
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:208,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:210,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:213,1
    - Dst: InitOpenSSL
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:216,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:217,1
    - Dst: strcmp
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:219,1
    - Dst: fopen
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:221,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:224,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:227,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:228,1
    - Dst: ReadPrivateKey
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:235,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:236,1
    - Dst: ReadCertPEM
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:238,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:239,1
    - Dst: ReadPrivateKey
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:241,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:242,1
    - Dst: MakeServiceEndpointCert
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:244,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:245,1
    - Dst: PEM_write_X509
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:247,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:248,1
    - Dst: fclose
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:250,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:254,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:257,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:258,1
    - Dst: X509_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:263,1
    - Dst: X509_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:265,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:267,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:269,1
    - Dst: fclose
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:271,1
    - Dst: unlink
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:273,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 87
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 275
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 275
    functionName: Cmd_GenServiceEndpointCert
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp
    functionUses: 0
    functionsReached:
    - unlink
    - fclose
    - InitOpenSSL
    - fprintf
    - fopen
    - EVP_PKEY_free
    - gmtime
    - PEM_write_X509
    - MakeServiceEndpointCert
    - X509_free
    - time
    - ParseArgs
    - ReadPrivateKey
    - ReportOpenSSLErrorAndExit
    - ExitNow
    - PrintBriefUsage
    - ReadCertPEM
    - strerror
    - strcmp
    - access
    linkageType: ''
    returnType: bool
    signature: Cmd_GenServiceEndpointCert(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseEUI64
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:283,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:285,1
    - Dst: ParseDateTime
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:302,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:304,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:309,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:311,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:316,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:319,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp:322,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 327
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 327
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp
    functionUses: 0
    functionsReached:
    - EVP_sha1
    - ParseDateTime
    - ParseEUI64
    - ParseInt
    - EVP_sha256
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:201,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:202,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:205,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:207,1
    - Dst: strcmp
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:211,1
    - Dst: fopen
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:213,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:216,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:216,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:217,1
    - Dst: strcmp
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:224,1
    - Dst: fopen
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:226,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:229,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:229,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:230,1
    - Dst: InitOpenSSL
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:238,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:239,1
    - Dst: ReadCSVLine
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:242,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:244,1
    - Dst: FindColumnByPrefix
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:249,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:252,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:253,1
    - Dst: FindColumnByPrefix
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:257,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:260,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:261,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:279,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:280,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:299,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:300,1
    - Dst: WriteCSVLine
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:302,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:304,1
    - Dst: ReadCSVLine
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:310,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:312,1
    - Dst: feof
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:315,1
    - Dst: ConvertCertificate
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:322,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:324,1
    - Dst: ConvertPrivateKey
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:333,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:335,1
    - Dst: WriteCSVLine
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:342,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:344,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:349,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:355,1
    - Dst: fclose
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:362,1
    - Dst: fclose
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:364,1
    - Dst: unlink
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:366,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:368,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:370,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 123
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 372
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 372
    functionName: Cmd_ConvertProvisioningData
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp
    functionUses: 0
    functionsReached:
    - ParseArgs
    - strcmp
    - unlink
    - ConvertPrivateKey
    - ReadCSVLine
    - ExitNow
    - fclose
    - InitOpenSSL
    - PrintBriefUsage
    - free
    - FindColumnByPrefix
    - feof
    - ConvertCertificate
    - fprintf
    - fopen
    - strerror
    - WriteCSVLine
    linkageType: ''
    returnType: bool
    signature: Cmd_ConvertProvisioningData(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:402,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 407
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 407
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char * progName, OptionSet * optSet, int id, const
      char * name, const char * arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:413,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:419,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:425,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 433
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 433
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char * progName, int argc, char * argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:437,1
    - Dst: isspace
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:443,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - ' p'
    - ' len'
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 447
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 447
    functionName: TrimSpace
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: void
    signature: TrimSpace(const char * & p, size_t & len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TrimSpace
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:470,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:475,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - input
    - inputLen
    - sep
    - values
    - maxValues
    - ' numValues'
    argTypes:
    - char*
    - size_t
    - char
    - CSVValue*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 480
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 480
    functionName: ParseCSVLine
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    - TrimSpace
    linkageType: ''
    returnType: bool
    signature: ParseCSVLine(const char * input, size_t inputLen, char sep, CSVValue
      * values, size_t maxValues, size_t & numValues)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:484,1
    - Dst: feof
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:486,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:491,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:491,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:499,1
    - Dst: ParseCSVLine
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:503,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 6
    argNames:
    - inFile
    - buf
    - bufSize
    - values
    - maxValues
    - ' numValues'
    argTypes:
    - FILE*
    - char*
    - size_t
    - CSVValue*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 504
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 504
    functionName: ReadCSVLine
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp
    functionUses: 1
    functionsReached:
    - fgets
    - ParseCSVLine
    - feof
    - fprintf
    - strerror
    linkageType: ''
    returnType: bool
    signature: ReadCSVLine(FILE * inFile, char * buf, size_t bufSize, CSVValue * values,
      size_t maxValues, size_t & numValues)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fputc
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:512,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:514,1
    - Dst: fwrite
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:517,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:519,1
    - Dst: fputc
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:523,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:528,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:528,1
    - Dst: ferror
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:528,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - outFile
    - values
    - numValues
    argTypes:
    - FILE*
    - CSVValue*
    - size_t
    constantsTouched: []
    func_position:
      end: 532
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 532
    functionName: WriteCSVLine
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp
    functionUses: 1
    functionsReached:
    - fputc
    - fwrite
    - ferror
    - ExitNow
    - fprintf
    - strerror
    linkageType: ''
    returnType: bool
    signature: WriteCSVLine(FILE * outFile, CSVValue * values, size_t numValues)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Base64Decode
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:544,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:547,1
    - Dst: DetectCertFormat
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:550,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:554,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:555,1
    - Dst: malloc
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:559,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:562,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:563,1
    - Dst: ConvertWeaveCertToX509Cert
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:568,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:571,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:571,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:572,1
    - Dst: ConvertX509CertToWeaveCert
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:578,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:581,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:581,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:582,1
    - Dst: memcpy
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:588,1
    - Dst: Base64Encode
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:592,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:595,1
    - Dst: strlen
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:598,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:603,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:607,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 5
    argNames:
    - inCertB64
    - inCertB64Len
    - outCertFormat
    - ' outCertB64'
    - ' outCertB64Len'
    argTypes:
    - char*
    - size_t
    - CertFormat
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 610
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 610
    functionName: ConvertCertificate
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp
    functionUses: 1
    functionsReached:
    - fprintf
    - Base64Encode
    - ConvertWeaveCertToX509Cert
    - ExitNow
    - Base64Decode
    - strlen
    - free
    - memcpy
    - DetectCertFormat
    - ConvertX509CertToWeaveCert
    - malloc
    - nl::ErrorStr
    linkageType: ''
    returnType: bool
    signature: ConvertCertificate(const char * inCertB64, size_t inCertB64Len, CertFormat
      outCertFormat, char * & outCertB64, size_t & outCertB64Len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Base64Decode
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:621,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:624,1
    - Dst: DecodePrivateKey
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:627,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:629,1
    - Dst: EncodePrivateKey
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:639,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:641,1
    - Dst: Base64Encode
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:644,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:647,1
    - Dst: strlen
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:650,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:655,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:659,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:663,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 5
    argNames:
    - inKeyB64
    - inKeyB64Len
    - keyFormat
    - ' outKeyB64'
    - ' outKeyB64Len'
    argTypes:
    - char*
    - size_t
    - KeyFormat
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 666
      start: 612
    functionDepth: 2
    functionLinenumber: 612
    functionLinenumberEnd: 666
    functionName: ConvertPrivateKey
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp
    functionUses: 1
    functionsReached:
    - DecodePrivateKey
    - Base64Encode
    - EncodePrivateKey
    - ExitNow
    - Base64Decode
    - strlen
    - free
    - EVP_PKEY_free
    linkageType: ''
    returnType: bool
    signature: ConvertPrivateKey(const char * inKeyB64, size_t inKeyB64Len, KeyFormat
      keyFormat, char * & outKeyB64, size_t & outKeyB64Len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp:676,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 4
    argNames:
    - colNames
    - numCols
    - prefix
    - prefixLen
    argTypes:
    - CSVValue*
    - size_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 682
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 682
    functionName: FindColumnByPrefix
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp
    functionUses: 1
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: size_t
    signature: FindColumnByPrefix(const CSVValue * colNames, size_t numCols, const
      char * prefix, size_t prefixLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:153,1
    - Dst: gmtime
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:154,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:162,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:163,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:166,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:168,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:173,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:174,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:179,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:181,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:186,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:188,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:193,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:194,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:199,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:201,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:206,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:207,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:212,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:213,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:218,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:219,1
    - Dst: strcmp
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:222,1
    - Dst: access
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:222,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:224,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:227,1
    - Dst: InitOpenSSL
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:230,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:231,1
    - Dst: strcmp
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:233,1
    - Dst: fopen
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:235,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:238,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:241,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:242,1
    - Dst: ReadPublicKey
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:249,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:250,1
    - Dst: ReadCertPEM
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:254,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:255,1
    - Dst: ReadPrivateKey
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:257,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:258,1
    - Dst: MakeCACert
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:263,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:264,1
    - Dst: PEM_write_X509
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:266,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:267,1
    - Dst: fclose
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:269,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:273,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:276,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:277,1
    - Dst: X509_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:282,1
    - Dst: X509_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:284,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:286,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:288,1
    - Dst: fclose
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:290,1
    - Dst: unlink
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:292,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 94
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 294
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 294
    functionName: Cmd_GenCACert
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp
    functionUses: 0
    functionsReached:
    - unlink
    - fclose
    - InitOpenSSL
    - fprintf
    - fopen
    - EVP_PKEY_free
    - gmtime
    - PEM_write_X509
    - ReadPublicKey
    - X509_free
    - time
    - MakeCACert
    - ParseArgs
    - ReadPrivateKey
    - ReportOpenSSLErrorAndExit
    - ExitNow
    - PrintBriefUsage
    - ReadCertPEM
    - strerror
    - strcmp
    - access
    linkageType: ''
    returnType: bool
    signature: Cmd_GenCACert(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseEUI64
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:301,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:303,1
    - Dst: ParseDateTime
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:323,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:325,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:330,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:332,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:337,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:340,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp:343,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 348
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 348
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp
    functionUses: 0
    functionsReached:
    - EVP_sha1
    - ParseDateTime
    - ParseEUI64
    - ParseInt
    - EVP_sha256
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:90,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:91,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:94,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:96,1
    - Dst: ReadWeaveCert
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:99,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:100,1
    - Dst: ReadWeavePrivateKey
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:102,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:103,1
    - Dst: malloc
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:106,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:109,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:110,1
    - Dst: EncodeAccessToken
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:113,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:116,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:116,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:117,1
    - Dst: Base64Encode
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:120,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:122,1
    - Dst: fwrite
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:124,1
    - Dst: printf
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:125,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:129,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:131,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:133,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:135,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 137
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 137
    functionName: Cmd_MakeAccessToken
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp
    functionUses: 0
    functionsReached:
    - EncodeAccessToken
    - ParseArgs
    - Base64Encode
    - fwrite
    - ExitNow
    - malloc
    - PrintBriefUsage
    - free
    - printf
    - fprintf
    - ReadWeaveCert
    - ReadWeavePrivateKey
    - nl::ErrorStr
    linkageType: ''
    returnType: bool
    signature: Cmd_MakeAccessToken(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:143,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:149,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 163
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 163
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:171,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:176,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:176,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:177,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:182,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:184,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:185,1
    - Dst: TLVWriter::CopyContainer
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:187,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:187,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:188,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:194,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:196,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:197,1
    - Dst: TLVWriter::CopyContainer
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:199,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:199,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:200,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:203,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:204,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:207,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:208,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 6
    argNames:
    - cert
    - certLen
    - privKey
    - privKeyLen
    - outBuf
    - ' outLen'
    argTypes:
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 214
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 214
    functionName: EncodeAccessToken
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Init
    - TLVWriter::CopyContainer
    - TLVReader::Next
    - TLVWriter::Finalize
    - ContextTag
    - ProfileTag
    - TLVWriter::GetLengthWritten
    - SuccessOrExit
    - TLVWriter::Init
    - TLVWriter::EndContainer
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "EncodeAccessToken(const uint8_t *cert, uint16_t certLen, const uint8_t
      *privKey, uint16_t privKeyLen,\n                                     uint8_t
      *outBuf, uint32_t& outLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:132,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:133,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:136,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:138,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:143,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:144,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:149,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:150,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:155,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:157,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:162,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:163,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:168,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:169,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:174,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:175,1
    - Dst: access
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:178,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:180,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:183,1
    - Dst: fopen
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:186,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:189,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:192,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:193,1
    - Dst: InitOpenSSL
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:197,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:198,1
    - Dst: ReadCert
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:200,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:201,1
    - Dst: ReadCertPEM
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:205,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:206,1
    - Dst: ReadPrivateKey
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:211,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:212,1
    - Dst: ResignCert
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:214,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:215,1
    - Dst: WriteCert
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:217,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:218,1
    - Dst: fclose
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:220,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:224,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:227,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:228,1
    - Dst: X509_free
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:233,1
    - Dst: X509_free
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:235,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:237,1
    - Dst: fclose
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:239,1
    - Dst: unlink
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:241,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 76
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 243
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 243
    functionName: Cmd_ResignCert
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp
    functionUses: 0
    functionsReached:
    - ParseArgs
    - ReadCert
    - ResignCert
    - unlink
    - ReadCertPEM
    - ReadPrivateKey
    - ExitNow
    - fclose
    - InitOpenSSL
    - PrintBriefUsage
    - X509_free
    - WriteCert
    - fprintf
    - fopen
    - strerror
    - EVP_PKEY_free
    - access
    linkageType: ''
    returnType: bool
    signature: Cmd_ResignCert(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:265,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:268,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp:271,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 276
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 276
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - EVP_sha1
    - EVP_sha256
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: PrintVersion
    functionSourceFile: /src/openweave-core/src/tools/weave/weave-tool.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: bool
    signature: PrintVersion(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:99,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:101,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:101,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:101,1
    - Dst: fputs
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:102,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:104,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:104,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:104,1
    - Dst: PrintVersion
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:105,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:107,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:107,1
    - Dst: Cmd_GenCACert
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:108,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:110,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:110,1
    - Dst: Cmd_GenDeviceCert
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:111,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:113,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:113,1
    - Dst: Cmd_GenCodeSigningCert
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:114,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:116,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:116,1
    - Dst: Cmd_GenServiceEndpointCert
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:117,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:119,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:119,1
    - Dst: Cmd_GenGeneralCert
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:120,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:122,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:122,1
    - Dst: Cmd_ConvertCert
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:123,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:125,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:125,1
    - Dst: Cmd_ConvertKey
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:126,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:128,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:128,1
    - Dst: Cmd_ConvertProvisioningData
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:129,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:131,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:131,1
    - Dst: Cmd_ResignCert
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:132,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:134,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:134,1
    - Dst: Cmd_MakeServiceConfig
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:135,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:137,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:137,1
    - Dst: Cmd_MakeAccessToken
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:138,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:140,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:140,1
    - Dst: Cmd_GenProvisioningData
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:141,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:143,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:143,1
    - Dst: Cmd_ValidateCert
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:144,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:146,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:146,1
    - Dst: Cmd_PrintAccessToken
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:147,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:149,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:149,1
    - Dst: Cmd_PrintServiceConfig
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:150,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:152,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:152,1
    - Dst: Cmd_PrintCert
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:153,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:155,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:155,1
    - Dst: Cmd_PrintSig
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:156,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:158,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:158,1
    - Dst: Cmd_PrintTLV
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:159,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/weave-tool.cpp:162,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 45
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 165
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 165
    functionName: main
    functionSourceFile: /src/openweave-core/src/tools/weave/weave-tool.cpp
    functionUses: 0
    functionsReached:
    - PrintVersion
    - Cmd_PrintCert
    - Cmd_GenProvisioningData
    - Cmd_ConvertKey
    - fputs
    - Cmd_ValidateCert
    - Cmd_PrintServiceConfig
    - fprintf
    - Cmd_MakeServiceConfig
    - Cmd_GenCACert
    - Cmd_PrintSig
    - Cmd_ConvertProvisioningData
    - strcasecmp
    - Cmd_GenCodeSigningCert
    - Cmd_GenServiceEndpointCert
    - Cmd_GenGeneralCert
    - Cmd_MakeAccessToken
    - Cmd_ConvertCert
    - Cmd_PrintAccessToken
    - Cmd_GenDeviceCert
    - Cmd_ResignCert
    - Cmd_PrintTLV
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:113,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:114,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:117,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:119,1
    - Dst: open
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:122,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:125,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:126,1
    - Dst: fstat
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:129,1
    - Dst: close
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:131,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:132,1
    - Dst: static_cast<uint8_t *>
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:135,1
    - Dst: mmap
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:135,1
    - Dst: close
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:138,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:139,1
    - Dst: malloc
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:144,1
    - Dst: nl::Base64Decode
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:145,1
    - Dst: printf
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:153,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:154,1
    - Dst: nl::Weave::TLV::Debug::Dump
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:156,1
    - Dst: printf
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:159,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:164,1
    - Dst: munmap
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:169,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 173
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 173
    functionName: Cmd_PrintTLV
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Init
    - munmap
    - fstat
    - mmap
    - open
    - ParseArgs
    - nl::Base64Decode
    - ExitNow
    - malloc
    - PrintBriefUsage
    - free
    - printf
    - close
    - nl::Weave::TLV::Debug::Dump
    - fprintf
    - static_cast<uint8_t *>
    linkageType: ''
    returnType: bool
    signature: Cmd_PrintTLV(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:179,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 192
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 192
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:198,1
    - Dst: vprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:200,1
    - Dst: va_end
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - aFormat
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 203
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 203
    functionName: _DumpWriter
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp
    functionUses: 0
    functionsReached:
    - vprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: _DumpWriter(const char *aFormat, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:214,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:216,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 226
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 226
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseInt
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:155,1
    - Dst: gmtime
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:156,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:164,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:165,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:168,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:170,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:175,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:176,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:181,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:183,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:188,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:190,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:195,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:196,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:201,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:203,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:208,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:209,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:214,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:215,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:220,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:221,1
    - Dst: strcmp
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:224,1
    - Dst: access
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:224,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:226,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:229,1
    - Dst: InitOpenSSL
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:232,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:233,1
    - Dst: strcmp
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:235,1
    - Dst: fopen
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:237,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:240,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:243,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:244,1
    - Dst: ReadPrivateKey
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:251,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:252,1
    - Dst: ReadCertPEM
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:256,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:257,1
    - Dst: ReadPrivateKey
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:259,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:260,1
    - Dst: MakeGeneralCert
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:265,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:266,1
    - Dst: WeaveEncodeCert
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:268,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:269,1
    - Dst: fwrite
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:271,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:273,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:273,1
    - Dst: ferror
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:273,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:274,1
    - Dst: fclose
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:277,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:281,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:284,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:285,1
    - Dst: X509_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:290,1
    - Dst: X509_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:292,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:294,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:296,1
    - Dst: fclose
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:298,1
    - Dst: unlink
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:300,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 98
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 302
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 302
    functionName: Cmd_GenGeneralCert
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp
    functionUses: 1
    functionsReached:
    - unlink
    - fclose
    - InitOpenSSL
    - fprintf
    - fopen
    - EVP_PKEY_free
    - gmtime
    - fwrite
    - access
    - X509_free
    - time
    - ParseArgs
    - ReadPrivateKey
    - ExitNow
    - PrintBriefUsage
    - MakeGeneralCert
    - ReadCertPEM
    - strerror
    - strcmp
    - ferror
    - WeaveEncodeCert
    linkageType: ''
    returnType: bool
    signature: Cmd_GenGeneralCert(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseDateTime
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:327,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:329,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:334,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:336,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:341,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:344,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp:347,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 352
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 352
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp
    functionUses: 0
    functionsReached:
    - EVP_sha1
    - ParseDateTime
    - EVP_sha256
    - ParseInt
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:156,1
    - Dst: gmtime
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:157,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:165,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:166,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:169,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:171,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:176,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:177,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:182,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:184,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:189,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:190,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:195,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:197,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:202,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:204,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:209,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:210,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:215,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:216,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:221,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:222,1
    - Dst: strcmp
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:225,1
    - Dst: access
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:225,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:227,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:230,1
    - Dst: InitOpenSSL
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:233,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:234,1
    - Dst: strcmp
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:236,1
    - Dst: fopen
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:238,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:241,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:244,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:245,1
    - Dst: ReadPrivateKey
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:255,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:256,1
    - Dst: ReadPublicKey
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:260,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:261,1
    - Dst: ReadCertPEM
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:264,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:265,1
    - Dst: ReadPrivateKey
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:267,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:268,1
    - Dst: MakeCodeSigningCert
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:270,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:271,1
    - Dst: PEM_write_X509
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:273,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:274,1
    - Dst: fclose
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:276,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:280,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:283,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:284,1
    - Dst: X509_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:289,1
    - Dst: X509_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:291,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:293,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:295,1
    - Dst: fclose
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:297,1
    - Dst: unlink
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:299,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 97
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 301
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 301
    functionName: Cmd_GenCodeSigningCert
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp
    functionUses: 1
    functionsReached:
    - unlink
    - fclose
    - InitOpenSSL
    - fprintf
    - fopen
    - EVP_PKEY_free
    - gmtime
    - PEM_write_X509
    - ReadPublicKey
    - X509_free
    - time
    - ParseArgs
    - MakeCodeSigningCert
    - ReadPrivateKey
    - ReportOpenSSLErrorAndExit
    - ExitNow
    - PrintBriefUsage
    - ReadCertPEM
    - strerror
    - strcmp
    - access
    linkageType: ''
    returnType: bool
    signature: Cmd_GenCodeSigningCert(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseEUI64
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:308,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:310,1
    - Dst: ParseDateTime
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:330,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:332,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:337,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:339,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:344,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:347,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp:350,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 355
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 355
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp
    functionUses: 0
    functionsReached:
    - EVP_sha1
    - ParseDateTime
    - ParseEUI64
    - ParseInt
    - EVP_sha256
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:126,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:130,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:131,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:134,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:136,1
    - Dst: WeaveCertificateSet::Init
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:139,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:142,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:142,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:143,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:148,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:149,1
    - Dst: WeaveCertificateSet::LoadCert
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:155,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:158,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:158,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:159,1
    - Dst: WeaveCertificateSet::LoadCert
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:166,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:169,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:169,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:170,1
    - Dst: LoadWeaveCert
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:176,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:177,1
    - Dst: malloc
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:180,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:183,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:184,1
    - Dst: EncodeServiceConfig
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:187,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:190,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:190,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:191,1
    - Dst: Base64Encode
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:194,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:196,1
    - Dst: fwrite
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:198,1
    - Dst: printf
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:199,1
    - Dst: WeaveCertificateSet::Release
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:202,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:205,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:207,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:209,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 62
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 211
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 211
    functionName: Cmd_MakeServiceConfig
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp
    functionUses: 1
    functionsReached:
    - WeaveCertificateSet::LoadCert
    - ParseArgs
    - WeaveCertificateSet::Init
    - EncodeServiceConfig
    - WeaveCertificateSet::Release
    - Base64Encode
    - fwrite
    - ExitNow
    - memset
    - PrintBriefUsage
    - free
    - printf
    - LoadWeaveCert
    - fprintf
    - malloc
    - nl::ErrorStr
    linkageType: ''
    returnType: bool
    signature: Cmd_MakeServiceConfig(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 232
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 232
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:238,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:244,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:252,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp:254,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 261
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 261
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseInt
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintSig.cpp:76,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintSig.cpp:77,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintSig.cpp:80,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintSig.cpp:82,1
    - Dst: ReadFileIntoMem
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintSig.cpp:85,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintSig.cpp:86,1
    - Dst: IsBase64String
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintSig.cpp:88,1
    - Dst: Base64Decode
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintSig.cpp:90,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintSig.cpp:91,1
    - Dst: printf
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintSig.cpp:94,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintSig.cpp:97,1
    - Dst: PrintWeaveSignature
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintSig.cpp:98,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintSig.cpp:101,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintSig.cpp:101,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintSig.cpp:102,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintSig.cpp:110,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 112
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 112
    functionName: Cmd_PrintSig
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_PrintSig.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Init
    - ParseArgs
    - ReadFileIntoMem
    - IsBase64String
    - ExitNow
    - Base64Decode
    - PrintWeaveSignature
    - PrintBriefUsage
    - free
    - printf
    - fprintf
    - nl::ErrorStr
    linkageType: ''
    returnType: bool
    signature: Cmd_PrintSig(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintSig.cpp:118,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintSig.cpp:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 131
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 131
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_PrintSig.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:108,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:109,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:112,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:114,1
    - Dst: ReadFileIntoMem
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:117,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:119,1
    - Dst: malloc
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:126,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:129,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:130,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:131,1
    - Dst: nl::Base64Decode
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:133,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:134,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:137,1
    - Dst: WeaveCertificateSet::Init
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:138,1
    - Dst: LoadAccessTokenCerts
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:139,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:143,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:143,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:144,1
    - Dst: printf
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:147,1
    - Dst: printf
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:149,1
    - Dst: PrintCert
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:151,1
    - Dst: printf
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:153,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:159,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 161
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 161
    functionName: Cmd_PrintAccessToken
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Init
    - ParseArgs
    - WeaveCertificateSet::Init
    - PrintCert
    - ReadFileIntoMem
    - nl::Base64Decode
    - ExitNow
    - PrintBriefUsage
    - free
    - LoadAccessTokenCerts
    - printf
    - fprintf
    - malloc
    - nl::ErrorStr
    linkageType: ''
    returnType: bool
    signature: Cmd_PrintAccessToken(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:167,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 180
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 180
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 196
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 196
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:120,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:124,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:125,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:128,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:130,1
    - Dst: WeaveCertificateSet::Init
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:133,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:136,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:136,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:137,1
    - Dst: LoadWeaveCert
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:142,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:143,1
    - Dst: LoadWeaveCert
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:146,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:148,1
    - Dst: memset
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:151,1
    - Dst: SecondsSinceEpochToPackedCertTime
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:152,1
    - Dst: time
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:152,1
    - Dst: WeaveCertificateSet::FindValidCert
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:159,1
    - Dst: printf
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:161,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:161,1
    - Dst: printf
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:166,1
    - Dst: printf
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:168,1
    - Dst: PrintCertValidationResults
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:170,1
    - Dst: WeaveCertificateSet::Release
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:176,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:179,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 181
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 181
    functionName: Cmd_ValidateCert
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp
    functionUses: 1
    functionsReached:
    - ParseArgs
    - WeaveCertificateSet::Init
    - PrintCertValidationResults
    - WeaveCertificateSet::Release
    - ExitNow
    - memset
    - PrintBriefUsage
    - WeaveCertificateSet::FindValidCert
    - printf
    - free
    - LoadWeaveCert
    - SecondsSinceEpochToPackedCertTime
    - fprintf
    - time
    - nl::ErrorStr
    linkageType: ''
    returnType: bool
    signature: Cmd_ValidateCert(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 201
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 201
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:207,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 220
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 220
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintCert.cpp:77,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintCert.cpp:78,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintCert.cpp:81,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintCert.cpp:83,1
    - Dst: ReadWeaveCert
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintCert.cpp:86,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintCert.cpp:87,1
    - Dst: DecodeWeaveCert
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintCert.cpp:89,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintCert.cpp:92,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintCert.cpp:92,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintCert.cpp:93,1
    - Dst: DetermineCertType
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintCert.cpp:96,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintCert.cpp:99,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintCert.cpp:99,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintCert.cpp:100,1
    - Dst: printf
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintCert.cpp:103,1
    - Dst: PrintCert
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintCert.cpp:104,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintCert.cpp:110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 112
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 112
    functionName: Cmd_PrintCert
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_PrintCert.cpp
    functionUses: 1
    functionsReached:
    - DetermineCertType
    - ParseArgs
    - DecodeWeaveCert
    - ExitNow
    - PrintBriefUsage
    - free
    - printf
    - fprintf
    - ReadWeaveCert
    - PrintCert
    - nl::ErrorStr
    linkageType: ''
    returnType: bool
    signature: Cmd_PrintCert(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintCert.cpp:118,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintCert.cpp:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 131
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 131
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_PrintCert.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:137,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:138,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:141,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:143,1
    - Dst: strcmp
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:146,1
    - Dst: fopen
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:148,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:151,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:151,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:152,1
    - Dst: fread
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:158,1
    - Dst: ferror
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:159,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:161,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:161,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:162,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:167,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:168,1
    - Dst: InitOpenSSL
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:171,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:172,1
    - Dst: DetectKeyFormat
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:174,1
    - Dst: DecodePrivateKey
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:184,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:185,1
    - Dst: EncodePrivateKey
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:187,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:188,1
    - Dst: strcmp
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:191,1
    - Dst: fopen
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:193,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:196,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:196,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:197,1
    - Dst: fwrite
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:204,1
    - Dst: ferror
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:204,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:206,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:206,1
    - Dst: ferror
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:206,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:207,1
    - Dst: fclose
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:212,1
    - Dst: fclose
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:214,1
    - Dst: unlink
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:216,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:218,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 61
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 220
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 220
    functionName: Cmd_ConvertKey
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp
    functionUses: 1
    functionsReached:
    - ParseArgs
    - strcmp
    - DecodePrivateKey
    - unlink
    - ferror
    - fwrite
    - fread
    - EncodePrivateKey
    - ExitNow
    - fclose
    - InitOpenSSL
    - PrintBriefUsage
    - free
    - DetectKeyFormat
    - fprintf
    - fopen
    - strerror
    linkageType: ''
    returnType: bool
    signature: Cmd_ConvertKey(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:245,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 250
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 250
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:256,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:262,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 276
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 276
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:114,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:115,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:118,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:120,1
    - Dst: ReadFileIntoMem
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:123,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:125,1
    - Dst: malloc
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:132,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:135,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:136,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:137,1
    - Dst: nl::Base64Decode
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:139,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:140,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:143,1
    - Dst: WeaveCertificateSet::Init
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:144,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:146,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:146,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:147,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:149,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:150,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:152,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:152,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:153,1
    - Dst: WeaveCertificateSet::LoadCerts
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:155,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:156,1
    - Dst: printf
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:158,1
    - Dst: printf
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:159,1
    - Dst: printf
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:162,1
    - Dst: PrintCert
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:163,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:166,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:166,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:167,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:169,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:170,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:172,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:172,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:173,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:175,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:176,1
    - Dst: printf
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:178,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:180,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:180,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:181,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:183,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:184,1
    - Dst: PrintServiceHostname
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:188,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:200,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 63
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 203
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 203
    functionName: Cmd_PrintServiceConfig
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Next
    - ReadFileIntoMem
    - nl::Base64Decode
    - printf
    - fprintf
    - PrintCert
    - TLVReader::Get
    - TLVReader::Init
    - ParseArgs
    - WeaveCertificateSet::Init
    - ExitNow
    - ProfileTag
    - TLVReader::EnterContainer
    - PrintBriefUsage
    - PrintServiceHostname
    - ContextTag
    - WeaveCertificateSet::LoadCerts
    - free
    - SuccessOrExit
    - malloc
    linkageType: ''
    returnType: bool
    signature: Cmd_PrintServiceConfig(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:209,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 222
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 222
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 238
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 238
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:247,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:248,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:250,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:251,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:253,1
    - Dst: IsContextTag
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:257,1
    - Dst: TagNumFromTag
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:262,1
    - Dst: TLVReader::GetDataPtr
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:267,1
    - Dst: TLVReader::GetLength
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:268,1
    - Dst: printf
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:269,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:272,1
    - Dst: printf
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:273,1
    - Dst: printf
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:277,1
    - Dst: printf
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:280,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp:281,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - reader
    argTypes:
    - TLVReader
    constantsTouched: []
    func_position:
      end: 284
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 284
    functionName: PrintServiceHostname
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp
    functionUses: 1
    functionsReached:
    - IsContextTag
    - TLVReader::Next
    - TLVReader::GetLength
    - TLVReader::EnterContainer
    - TLVReader::ExitContainer
    - TagNumFromTag
    - printf
    - SuccessOrExit
    - TLVReader::GetDataPtr
    - TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PrintServiceHostname(TLVReader &reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:127,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:128,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:131,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:133,1
    - Dst: strcmp
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:136,1
    - Dst: fopen
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:138,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:141,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:141,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:142,1
    - Dst: fread
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:148,1
    - Dst: ferror
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:149,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:151,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:151,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:152,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:157,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:158,1
    - Dst: InitOpenSSL
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:161,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:162,1
    - Dst: DetectCertFormat
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:164,1
    - Dst: memcpy
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:168,1
    - Dst: X509PEMToDER
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:176,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:177,1
    - Dst: Base64Decode
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:182,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:183,1
    - Dst: ConvertX509CertToWeaveCert
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:189,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:192,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:192,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:193,1
    - Dst: ConvertWeaveCertToX509Cert
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:198,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:201,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:201,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:202,1
    - Dst: memcpy
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:207,1
    - Dst: X509DERToPEM
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:213,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:214,1
    - Dst: Base64Encode
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:218,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:219,1
    - Dst: strcmp
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:223,1
    - Dst: fopen
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:225,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:228,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:228,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:229,1
    - Dst: fwrite
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:236,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:238,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:238,1
    - Dst: ferror
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:238,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:239,1
    - Dst: fclose
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:244,1
    - Dst: fclose
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:246,1
    - Dst: unlink
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:248,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 90
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 250
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 250
    functionName: Cmd_ConvertCert
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp
    functionUses: 1
    functionsReached:
    - unlink
    - fread
    - X509PEMToDER
    - Base64Decode
    - InitOpenSSL
    - fclose
    - DetectCertFormat
    - fprintf
    - fopen
    - fwrite
    - nl::ErrorStr
    - ParseArgs
    - ConvertWeaveCertToX509Cert
    - X509DERToPEM
    - ExitNow
    - PrintBriefUsage
    - strerror
    - strcmp
    - ferror
    - Base64Encode
    - memcpy
    - ConvertX509CertToWeaveCert
    linkageType: ''
    returnType: bool
    signature: Cmd_ConvertCert(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:269,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 274
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 274
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:280,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:286,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 300
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 300
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadFileIntoMem
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:50,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:52,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:54,1
    - Dst: DecodePrivateKey
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:56,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - fileName
    - prompt
    - ' key'
    argTypes:
    - char*
    - char*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 62
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 62
    functionName: ReadPrivateKey
    functionSourceFile: /src/openweave-core/src/tools/weave/KeyUtils.cpp
    functionUses: 6
    functionsReached:
    - DecodePrivateKey
    - ReadFileIntoMem
    - VerifyOrExit
    - ExitNow
    - free
    linkageType: ''
    returnType: bool
    signature: ReadPrivateKey(const char *fileName, const char *prompt, EVP_PKEY *&
      key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadFileIntoMem
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:71,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:73,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:75,1
    - Dst: DecodePublicKey
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:77,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - fileName
    - ' key'
    argTypes:
    - char*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 83
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 83
    functionName: ReadPublicKey
    functionSourceFile: /src/openweave-core/src/tools/weave/KeyUtils.cpp
    functionUses: 2
    functionsReached:
    - ReadFileIntoMem
    - VerifyOrExit
    - ExitNow
    - DecodePublicKey
    - free
    linkageType: ''
    returnType: bool
    signature: ReadPublicKey(const char *fileName, EVP_PKEY *& key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadFileIntoMem
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:93,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:95,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:99,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:100,1
    - Dst: DetectKeyFormat
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:103,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:108,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:109,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:114,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:115,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:121,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - fileName
    - ' key'
    - keyLen
    argTypes:
    - char*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 126
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 126
    functionName: ReadWeavePrivateKey
    functionSourceFile: /src/openweave-core/src/tools/weave/KeyUtils.cpp
    functionUses: 1
    functionsReached:
    - ReadFileIntoMem
    - ExitNow
    - free
    - DetectKeyFormat
    - fprintf
    linkageType: ''
    returnType: bool
    signature: ReadWeavePrivateKey(const char *fileName, uint8_t *& key, uint32_t
      &keyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:134,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:136,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:137,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:139,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:139,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:141,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:143,1
    - Dst: DecodeWeaveECPrivateKey
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:150,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:151,1
    - Dst: DecodeECKey
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:153,1
    - Dst: WeaveCurveIdToOID
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:153,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:154,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:156,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:157,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:159,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:162,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:165,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - encodedKeyBuf
    - encodedKeyLen
    - ' key'
    argTypes:
    - uint8_t*
    - uint32_t
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 173
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 173
    functionName: DecodeWeavePrivateKey
    functionSourceFile: /src/openweave-core/src/tools/weave/KeyUtils.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - WeaveCurveIdToOID
    - TLVReader::Next
    - EVP_PKEY_assign_EC_KEY
    - TLVReader::GetType
    - VerifyOrExit
    - ExitNow
    - ProfileTag
    - TLVReader::GetTag
    - SuccessOrExit
    - EVP_PKEY_new
    - DecodeECKey
    - DecodeWeaveECPrivateKey
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeWeavePrivateKey(const uint8_t *encodedKeyBuf, uint32_t encodedKeyLen,
      EVP_PKEY *& key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DetectKeyFormat
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:184,1
    - Dst: Base64Decode
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:188,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:190,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:191,1
    - Dst: DecodeWeavePrivateKey
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:201,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:204,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:204,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:205,1
    - Dst: EVP_set_pw_prompt
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:212,1
    - Dst: BIO_new_mem_buf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:215,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:218,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:219,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:224,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:226,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:227,1
    - Dst: d2i_PrivateKey_bio
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:232,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:234,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:235,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:242,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:244,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 6
    argNames:
    - keyData
    - keyDataLen
    - keyFormat
    - keySource
    - prompt
    - ' key'
    argTypes:
    - uint8_t*
    - uint32_t
    - KeyFormat
    - char*
    - char*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 246
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 246
    functionName: DecodePrivateKey
    functionSourceFile: /src/openweave-core/src/tools/weave/KeyUtils.cpp
    functionUses: 3
    functionsReached:
    - DecodeWeavePrivateKey
    - BIO_free_all
    - d2i_PrivateKey_bio
    - ReportOpenSSLErrorAndExit
    - ExitNow
    - Base64Decode
    - BIO_new_mem_buf
    - PEM_read_bio_PrivateKey
    - free
    - EVP_set_pw_prompt
    - DetectKeyFormat
    - fprintf
    - nl::ErrorStr
    linkageType: ''
    returnType: bool
    signature: DecodePrivateKey(const uint8_t *keyData, uint32_t keyDataLen, KeyFormat
      keyFormat, const char *keySource, const char *prompt, EVP_PKEY *& key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DetectKeyFormat
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:256,1
    - Dst: BIO_new_mem_buf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:258,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:261,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:262,1
    - Dst: PEM_read_bio_PUBKEY
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:267,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:269,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:270,1
    - Dst: d2i_PUBKEY_bio
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:276,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:278,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:279,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:284,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:285,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:290,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:292,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 5
    argNames:
    - keyData
    - keyDataLen
    - keyFormat
    - keySource
    - ' key'
    argTypes:
    - uint8_t*
    - uint32_t
    - KeyFormat
    - char*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 294
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 294
    functionName: DecodePublicKey
    functionSourceFile: /src/openweave-core/src/tools/weave/KeyUtils.cpp
    functionUses: 1
    functionsReached:
    - BIO_free_all
    - ReportOpenSSLErrorAndExit
    - ExitNow
    - BIO_new_mem_buf
    - d2i_PUBKEY_bio
    - free
    - DetectKeyFormat
    - PEM_read_bio_PUBKEY
    - fprintf
    linkageType: ''
    returnType: bool
    signature: DecodePublicKey(const uint8_t *keyData, uint32_t keyDataLen, KeyFormat
      keyFormat, const char *keySource, EVP_PKEY *& key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fseek
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:301,1
    - Dst: fread
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:303,1
    - Dst: fseek
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:309,1
    - Dst: DetectKeyFormat
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - keyFile
    - ' keyFormat'
    argTypes:
    - FILE*
    - KeyFormat
    constantsTouched: []
    func_position:
      end: 313
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 313
    functionName: DetectKeyFormat
    functionSourceFile: /src/openweave-core/src/tools/weave/KeyUtils.cpp
    functionUses: 5
    functionsReached:
    - fread
    - fseek
    - DetectKeyFormat
    linkageType: ''
    returnType: bool
    signature: DetectKeyFormat(FILE *keyFile, KeyFormat& keyFormat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:331,1
    - Dst: memcmp
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:334,1
    - Dst: memcmp
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:337,1
    - Dst: memcmp
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:340,1
    - Dst: ContainsPEMMarker
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:343,1
    - Dst: ContainsPEMMarker
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:346,1
    - Dst: ContainsPEMMarker
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:349,1
    - Dst: ContainsPEMMarker
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:352,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 2
    argNames:
    - key
    - keyLen
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 356
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 356
    functionName: DetectKeyFormat
    functionSourceFile: /src/openweave-core/src/tools/weave/KeyUtils.cpp
    functionUses: 5
    functionsReached:
    - ContainsPEMMarker
    - memcmp
    linkageType: ''
    returnType: KeyFormat
    signature: DetectKeyFormat(const uint8_t *key, uint32_t keyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_sn2nid
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:367,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:370,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:371,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:374,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:376,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:379,1
    - Dst: EC_KEY_new
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:381,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:383,1
    - Dst: EC_KEY_set_group
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:385,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:386,1
    - Dst: EC_KEY_generate_key
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:388,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:389,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:391,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:393,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:395,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:396,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:402,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:405,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - curveName
    - ' key'
    argTypes:
    - char*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 409
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 409
    functionName: GenerateKeyPair
    functionSourceFile: /src/openweave-core/src/tools/weave/KeyUtils.cpp
    functionUses: 1
    functionsReached:
    - EC_KEY_generate_key
    - EC_GROUP_set_asn1_flag
    - OBJ_sn2nid
    - EVP_PKEY_free
    - EC_GROUP_new_by_curve_name
    - EVP_PKEY_assign_EC_KEY
    - EC_KEY_free
    - ReportOpenSSLErrorAndExit
    - ExitNow
    - EC_KEY_new
    - EVP_PKEY_new
    - fprintf
    - EC_KEY_set_group
    linkageType: ''
    returnType: bool
    signature: GenerateKeyPair(const char *curveName, EVP_PKEY *& key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_type
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:421,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:421,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:423,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:424,1
    - Dst: EVP_PKEY_type
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:426,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:426,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:428,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:429,1
    - Dst: EVP_PKEY_get1_EC_KEY
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:432,1
    - Dst: BIO_new
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:437,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:437,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:440,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:441,1
    - Dst: EVP_PKEY2PKCS8
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:446,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:449,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:450,1
    - Dst: i2d_PKCS8_PRIV_KEY_INFO_bio
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:455,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:456,1
    - Dst: PEM_write_bio_PKCS8_PRIV_KEY_INFO
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:460,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:461,1
    - Dst: i2d_ECPrivateKey_bio
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:469,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:470,1
    - Dst: PEM_write_bio_ECPrivateKey
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:474,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:475,1
    - Dst: BIO_get_mem_ptr
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:479,1
    - Dst: malloc
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:481,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:484,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:485,1
    - Dst: memcpy
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:488,1
    - Dst: WeaveEncodeECPrivateKey
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:497,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:498,1
    - Dst: Base64Encode
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:507,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:508,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:511,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:512,1
    - Dst: BIO_free
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:519,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:522,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 70
    argCount: 4
    argNames:
    - key
    - keyFormat
    - ' encodedKey'
    - ' encodedKeyLen'
    argTypes:
    - EVP_PKEY*
    - KeyFormat
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 525
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 525
    functionName: EncodePrivateKey
    functionSourceFile: /src/openweave-core/src/tools/weave/KeyUtils.cpp
    functionUses: 3
    functionsReached:
    - EVP_PKEY2PKCS8
    - BIO_s_mem
    - i2d_PKCS8_PRIV_KEY_INFO_bio
    - fprintf
    - EVP_PKEY_get1_EC_KEY
    - VerifyOrExit
    - BIO_free
    - BIO_new
    - i2d_ECPrivateKey_bio
    - PEM_write_bio_ECPrivateKey
    - EVP_PKEY_type
    - EVP_PKEY_id
    - ExitNow
    - ReportOpenSSLErrorAndExit
    - WeaveEncodeECPrivateKey
    - PEM_write_bio_PKCS8_PRIV_KEY_INFO
    - BIO_get_mem_ptr
    - Base64Encode
    - free
    - memcpy
    - PKCS8_PRIV_KEY_INFO_free
    - malloc
    linkageType: ''
    returnType: bool
    signature: EncodePrivateKey(EVP_PKEY *key, KeyFormat keyFormat, uint8_t *& encodedKey,
      uint32_t& encodedKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_type
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:532,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:532,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:534,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:535,1
    - Dst: EVP_PKEY_type
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:537,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:537,1
    - Dst: EVP_PKEY_get1_EC_KEY
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:539,1
    - Dst: WeaveEncodeECPrivateKey
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:540,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:544,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - key
    - ' encodedKey'
    - ' encodedKeyLen'
    argTypes:
    - EVP_PKEY*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 550
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 550
    functionName: WeaveEncodePrivateKey
    functionSourceFile: /src/openweave-core/src/tools/weave/KeyUtils.cpp
    functionUses: 0
    functionsReached:
    - WeaveEncodeECPrivateKey
    - EVP_PKEY_get1_EC_KEY
    - EVP_PKEY_type
    - EVP_PKEY_id
    - ExitNow
    - fprintf
    linkageType: ''
    returnType: bool
    signature: WeaveEncodePrivateKey(EVP_PKEY *key, uint8_t *& encodedKey, uint32_t&
      encodedKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NIDToWeaveOID
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:565,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:565,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:565,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:568,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:568,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:568,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:569,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:572,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:572,1
    - Dst: malloc
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:573,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:576,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:577,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:579,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:579,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:580,1
    - Dst: EC_POINT_point2oct
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:584,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:584,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:584,1
    - Dst: malloc
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:585,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:588,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:589,1
    - Dst: EC_POINT_point2oct
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:591,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:591,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:591,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:592,1
    - Dst: malloc
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:599,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:602,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:603,1
    - Dst: EncodeWeaveECPrivateKey
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:606,1
    - Dst: OIDToWeaveCurveId
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:606,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:609,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:609,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:610,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:615,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:617,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:620,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 4
    argNames:
    - key
    - includePubKey
    - ' encodedKey'
    - ' encodedKeyLen'
    argTypes:
    - EC_KEY*
    - bool
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 624
      start: 552
    functionDepth: 2
    functionLinenumber: 552
    functionLinenumberEnd: 624
    functionName: WeaveEncodeECPrivateKey
    functionSourceFile: /src/openweave-core/src/tools/weave/KeyUtils.cpp
    functionUses: 2
    functionsReached:
    - EC_GROUP_get_curve_name
    - EC_KEY_get0_private_key
    - BN_bn2bin
    - ReportOpenSSLErrorAndExit
    - NIDToWeaveOID
    - ExitNow
    - EC_KEY_get0_public_key
    - malloc
    - OIDToWeaveCurveId
    - free
    - nl::ErrorStr
    - fprintf
    - EC_KEY_get0_group
    - EC_POINT_point2oct
    - EncodeWeaveECPrivateKey
    - BN_num_bytes
    linkageType: ''
    returnType: bool
    signature: WeaveEncodeECPrivateKey(EC_KEY *key, bool includePubKey, uint8_t *&
      encodedKey, uint32_t& encodedKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadFileIntoMem
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:634,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:636,1
    - Dst: DecodePublicKey
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:638,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - fileName
    - prompt
    - ' key'
    argTypes:
    - char*
    - char*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 644
      start: 626
    functionDepth: 2
    functionLinenumber: 626
    functionLinenumberEnd: 644
    functionName: ReadPublicKey
    functionSourceFile: /src/openweave-core/src/tools/weave/KeyUtils.cpp
    functionUses: 2
    functionsReached:
    - DecodePublicKey
    - ReadFileIntoMem
    - ExitNow
    - free
    linkageType: ''
    returnType: bool
    signature: ReadPublicKey(const char *fileName, const char *prompt, EVP_PKEY *&
      key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DetectPublicKeyFormat
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:655,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:661,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:662,1
    - Dst: BIO_new_mem_buf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:665,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:669,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:670,1
    - Dst: PEM_read_bio_PUBKEY
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:675,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:678,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:679,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:681,1
    - Dst: d2i_PUBKEY_bio
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:686,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:689,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:690,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:692,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:698,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 6
    argNames:
    - keyData
    - keyDataLen
    - keyFormat
    - keySource
    - ' key'
    - noErrorOutput
    argTypes:
    - uint8_t*
    - uint32_t
    - KeyFormat
    - char*
    - EVP_PKEY*
    - bool
    constantsTouched: []
    func_position:
      end: 700
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 700
    functionName: DecodePublicKeyOnly
    functionSourceFile: /src/openweave-core/src/tools/weave/KeyUtils.cpp
    functionUses: 0
    functionsReached:
    - DetectPublicKeyFormat
    - BIO_free_all
    - ReportOpenSSLErrorAndExit
    - ExitNow
    - BIO_new_mem_buf
    - d2i_PUBKEY_bio
    - PEM_read_bio_PUBKEY
    - fprintf
    linkageType: ''
    returnType: bool
    signature: DecodePublicKeyOnly(const uint8_t *keyData, uint32_t keyDataLen, KeyFormat
      keyFormat, const char *keySource, EVP_PKEY *& key, bool noErrorOutput)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecodePublicKeyOnly
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:706,1
    - Dst: DecodePrivateKey
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - keyData
    - keyDataLen
    - keyFormat
    - prompt
    - keySource
    - ' key'
    argTypes:
    - uint8_t*
    - uint32_t
    - KeyFormat
    - char*
    - char*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 710
      start: 702
    functionDepth: 3
    functionLinenumber: 702
    functionLinenumberEnd: 710
    functionName: DecodePublicKey
    functionSourceFile: /src/openweave-core/src/tools/weave/KeyUtils.cpp
    functionUses: 2
    functionsReached:
    - DecodePrivateKey
    - DecodePublicKeyOnly
    linkageType: ''
    returnType: bool
    signature: DecodePublicKey(const uint8_t *keyData, uint32_t keyDataLen, KeyFormat
      keyFormat, const char *prompt, const char *keySource, EVP_PKEY *& key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ContainsPEMMarker
      Src: /src/openweave-core/src/tools/weave/KeyUtils.cpp:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - keyLen
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 719
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 719
    functionName: DetectPublicKeyFormat
    functionSourceFile: /src/openweave-core/src/tools/weave/KeyUtils.cpp
    functionUses: 1
    functionsReached:
    - ContainsPEMMarker
    linkageType: ''
    returnType: KeyFormat
    signature: DetectPublicKeyFormat(const uint8_t *key, uint32_t keyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:219,1
    - Dst: gmtime
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:220,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:228,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:229,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:232,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:234,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:239,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:240,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:245,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:246,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:251,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:252,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:257,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:258,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:263,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:264,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:269,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:270,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:275,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:276,1
    - Dst: InitOpenSSL
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:279,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:280,1
    - Dst: ReadCertPEM
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:282,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:283,1
    - Dst: ReadPrivateKey
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:285,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:286,1
    - Dst: strcmp
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:288,1
    - Dst: fopen
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:290,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:293,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:293,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:294,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:310,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:311,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:326,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:327,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:330,1
    - Dst: ferror
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:331,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:333,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:333,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:334,1
    - Dst: OutputProvisioningData
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:338,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:345,1
    - Dst: X509_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:349,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:351,1
    - Dst: fclose
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:353,1
    - Dst: unlink
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:355,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 99
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 357
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 357
    functionName: Cmd_GenProvisioningData
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp
    functionUses: 1
    functionsReached:
    - gmtime
    - ParseArgs
    - strerror
    - strcmp
    - unlink
    - ferror
    - ReadPrivateKey
    - ExitNow
    - OutputProvisioningData
    - InitOpenSSL
    - PrintBriefUsage
    - fclose
    - X509_free
    - fprintf
    - fopen
    - ReadCertPEM
    - time
    - EVP_PKEY_free
    linkageType: ''
    returnType: bool
    signature: Cmd_GenProvisioningData(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseEUI64
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:364,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:366,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:371,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:373,1
    - Dst: ParseDateTime
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:390,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:392,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:397,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:399,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:404,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:406,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:411,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:415,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:442,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 80
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 447
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 447
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp
    functionUses: 0
    functionsReached:
    - EVP_sha1
    - ParseDateTime
    - ParseEUI64
    - ParseInt
    - EVP_sha256
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MakeDeviceCert
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:467,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:468,1
    - Dst: WeaveEncodeCert
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:472,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:473,1
    - Dst: DEREncodeCert
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:478,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:479,1
    - Dst: Base64Encode
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:482,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:485,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:486,1
    - Dst: EncodePrivateKey
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:489,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:490,1
    - Dst: Base64Encode
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:492,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:495,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:496,1
    - Dst: GeneratePermissions
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:499,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:501,1
    - Dst: GeneratePairingCode
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:503,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:505,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:507,1
    - Dst: ferror
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:508,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:510,1
    - Dst: strerror
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:510,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:511,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:516,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:518,1
    - Dst: X509_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:520,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:522,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:524,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:526,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:528,1
    - Dst: free
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:530,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 12
    argNames:
    - outFile
    - devId
    - caCert
    - caKey
    - curveName
    - ' validFrom'
    - validDays
    - sigType
    - sigHashAlgo
    - certFormat
    - keyFormat
    - pairingCodeLen
    argTypes:
    - FILE*
    - uint64_t
    - X509*
    - EVP_PKEY*
    - char*
    - struct tm
    - uint32_t
    - char*
    - EVP_MD*
    - CertFormat
    - KeyFormat
    - uint32_t
    constantsTouched: []
    func_position:
      end: 532
      start: 449
    functionDepth: 3
    functionLinenumber: 449
    functionLinenumberEnd: 532
    functionName: OutputProvisioningData
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp
    functionUses: 1
    functionsReached:
    - MakeDeviceCert
    - Base64Encode
    - ferror
    - EncodePrivateKey
    - ExitNow
    - GeneratePermissions
    - GeneratePairingCode
    - free
    - X509_free
    - fprintf
    - strerror
    - DEREncodeCert
    - EVP_PKEY_free
    - WeaveEncodeCert
    linkageType: ''
    returnType: bool
    signature: "OutputProvisioningData(FILE *outFile, uint64_t devId, X509 *caCert,
      EVP_PKEY *caKey, const char *curveName,\n                            const struct
      tm& validFrom, uint32_t validDays,\n                            const char *sigType,
      const EVP_MD *sigHashAlgo,\n                            CertFormat certFormat,
      KeyFormat keyFormat,\n                            uint32_t pairingCodeLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:538,1
    - Dst: fprintf
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:541,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:542,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:546,1
    - Dst: ReportOpenSSLErrorAndExit
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:547,1
    - Dst: Verhoeff32::ValToChar
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:553,1
    - Dst: Verhoeff32::ComputeCheckChar
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:557,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - pairingCodeLen
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 564
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 564
    functionName: GeneratePairingCode
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp
    functionUses: 1
    functionsReached:
    - RAND_bytes
    - Verhoeff32::ComputeCheckChar
    - ReportOpenSSLErrorAndExit
    - ExitNow
    - Verhoeff32::ValToChar
    - fprintf
    - malloc
    linkageType: ''
    returnType: char
    signature: '*GeneratePairingCode(uint32_t pairingCodeLen)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - devId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 571
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 571
    functionName: GeneratePermissions
    functionSourceFile: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp
    functionUses: 1
    functionsReached:
    - strdup
    linkageType: ''
    returnType: char
    signature: '*GeneratePermissions(uint64_t devId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 88
    functionName: nl::Weave::System::Mutex
    functionSourceFile: /src/openweave-core/src/system/SystemMutex.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: Mutex
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: nl::Weave::System::Mutex::Mutex
    functionSourceFile: /src/openweave-core/src/system/SystemMutex.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Mutex::Mutex(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Mutex::~Mutex(void)
    functionSourceFile: /src/openweave-core/src/system/SystemMutex.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Mutex::~Mutex(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/system/SystemMutex.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: nl::Weave::System::Mutex::Lock
    functionSourceFile: /src/openweave-core/src/system/SystemMutex.h
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: Mutex::Lock(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/system/SystemMutex.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: nl::Weave::System::Mutex::Unlock
    functionSourceFile: /src/openweave-core/src/system/SystemMutex.h
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: Mutex::Unlock(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xSemaphoreGive
      Src: /src/openweave-core/src/system/SystemMutex.h:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: nl::Weave::System::Mutex::Unlock
    functionSourceFile: /src/openweave-core/src/system/SystemMutex.h
    functionUses: 0
    functionsReached:
    - xSemaphoreGive
    linkageType: ''
    returnType: void
    signature: Mutex::Unlock(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __sync_synchronize
      Src: /src/openweave-core/src/system/SystemObject.cpp:55,1
    - Dst: WeaveDie
      Src: /src/openweave-core/src/system/SystemObject.cpp:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 61
    functionName: nl::Weave::System::Object::Release
    functionSourceFile: /src/openweave-core/src/system/SystemObject.cpp
    functionUses: 0
    functionsReached:
    - WeaveDie
    - __sync_synchronize
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: Object::Release(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __sync_bool_compare_and_swap
      Src: /src/openweave-core/src/system/SystemObject.cpp:67,1
    - Dst: memset
      Src: /src/openweave-core/src/system/SystemObject.cpp:71,1
    - Dst: reinterpret_cast<char*>
      Src: /src/openweave-core/src/system/SystemObject.cpp:71,1
    - Dst: nl::Weave::System::Object::Retain
      Src: /src/openweave-core/src/system/SystemObject.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' aLayer'
    - aOctets
    argTypes:
    - Layer
    - size_t
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: nl::Weave::System::Object::TryCreate
    functionSourceFile: /src/openweave-core/src/system/SystemObject.cpp
    functionUses: 0
    functionsReached:
    - __sync_bool_compare_and_swap
    - nl::Weave::System::Object::Retain
    - reinterpret_cast<char*>
    - memset
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: Object::TryCreate(Layer& aLayer, size_t aOctets)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PostEvent
      Src: /src/openweave-core/src/system/SystemObject.cpp:84,1
    - Dst: nl::Weave::System::Object::Release
      Src: /src/openweave-core/src/system/SystemObject.cpp:94,1
    - Dst: VerifyOrDieWithMsg
      Src: /src/openweave-core/src/system/SystemObject.cpp:98,1
    - Dst: static_cast<int>
      Src: /src/openweave-core/src/system/SystemObject.cpp:99,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - aTactic
    argTypes:
    - Object::ReleaseDeferralErrorTactic
    constantsTouched: []
    func_position:
      end: 103
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 103
    functionName: nl::Weave::System::Object::DeferredRelease
    functionSourceFile: /src/openweave-core/src/system/SystemObject.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrDieWithMsg
    - PostEvent
    - nl::Weave::System::Object::Release
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: Object::DeferredRelease(Object::ReleaseDeferralErrorTactic aTactic)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 112
    functionName: nl::Weave::System::Object
    functionSourceFile: /src/openweave-core/src/system/SystemObject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: Object
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' aLayer'
    argTypes:
    - Layer
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: nl::Weave::System::Object::IsRetained
    functionSourceFile: /src/openweave-core/src/system/SystemObject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: Object::IsRetained(const Layer& aLayer) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __sync_fetch_and_add
      Src: /src/openweave-core/src/system/SystemObject.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: nl::Weave::System::Object::Retain
    functionSourceFile: /src/openweave-core/src/system/SystemObject.h
    functionUses: 1
    functionsReached:
    - __sync_fetch_and_add
    linkageType: ''
    returnType: void
    signature: Object::Retain(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: '& Object::SystemLayer(void) const'
    functionSourceFile: /src/openweave-core/src/system/SystemObject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Layer
    signature: '& Object::SystemLayer(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: nl::Weave::System::Object::Object
    functionSourceFile: /src/openweave-core/src/system/SystemObject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Object::Object(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: Object::~Object(void)
    functionSourceFile: /src/openweave-core/src/system/SystemObject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Object::~Object(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: nl::Weave::System::ObjectPool<T, N>::Size
    functionSourceFile: /src/openweave-core/src/system/SystemObject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: ObjectPool<T, N>::Size(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/openweave-core/src/system/SystemObject.h:219,1
    - Dst: static_cast<Object*>
      Src: /src/openweave-core/src/system/SystemObject.h:221,1
    - Dst: T*::IsRetained
      Src: /src/openweave-core/src/system/SystemObject.h:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' aLayer'
    - aIndex
    argTypes:
    - Layer
    - size_t
    constantsTouched: []
    func_position:
      end: 224
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 224
    functionName: nl::Weave::System::ObjectPool<T, N>::Get
    functionSourceFile: /src/openweave-core/src/system/SystemObject.h
    functionUses: 0
    functionsReached:
    - T*::IsRetained
    - static_cast<Object*>
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: T
    signature: '* ObjectPool<T, N>::Get(const Layer& aLayer, size_t aIndex)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/openweave-core/src/system/SystemObject.h:241,1
    - Dst: nl::Weave::System::ObjectPool<T, N>::TryCreate
      Src: /src/openweave-core/src/system/SystemObject.h:244,1
    - Dst: nl::Weave::System::ObjectPool<T, N>::GetNumObjectsInUse
      Src: /src/openweave-core/src/system/SystemObject.h:256,1
    - Dst: nl::Weave::System::ObjectPool<T, N>::UpdateHighWatermark
      Src: /src/openweave-core/src/system/SystemObject.h:263,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ' aLayer'
    argTypes:
    - Layer
    constantsTouched: []
    func_position:
      end: 267
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 267
    functionName: nl::Weave::System::ObjectPool<T, N>::TryCreate
    functionSourceFile: /src/openweave-core/src/system/SystemObject.h
    functionUses: 1
    functionsReached:
    - nl::Weave::System::ObjectPool<T, N>::GetNumObjectsInUse
    - reinterpret_cast<T*>
    - nl::Weave::System::ObjectPool<T, N>::TryCreate
    - nl::Weave::System::ObjectPool<T, N>::UpdateHighWatermark
    linkageType: ''
    returnType: T
    signature: '* ObjectPool<T, N>::TryCreate(Layer& aLayer)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYSTEM_OBJECT_HWM_TEST_HOOK
      Src: /src/openweave-core/src/system/SystemObject.h:277,1
    - Dst: __sync_bool_compare_and_swap
      Src: /src/openweave-core/src/system/SystemObject.h:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' aCandidate'
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 280
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 280
    functionName: nl::Weave::System::ObjectPool<T, N>::UpdateHighWatermark
    functionSourceFile: /src/openweave-core/src/system/SystemObject.h
    functionUses: 1
    functionsReached:
    - __sync_bool_compare_and_swap
    - SYSTEM_OBJECT_HWM_TEST_HOOK
    linkageType: ''
    returnType: void
    signature: ObjectPool<T, N>::UpdateHighWatermark(const unsigned int& aCandidate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T*>
      Src: /src/openweave-core/src/system/SystemObject.h:297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - aStartIndex
    - ' aNumInUse'
    argTypes:
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 311
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 311
    functionName: nl::Weave::System::ObjectPool<T, N>::GetNumObjectsInUse
    functionSourceFile: /src/openweave-core/src/system/SystemObject.h
    functionUses: 1
    functionsReached:
    - reinterpret_cast<T*>
    linkageType: ''
    returnType: void
    signature: ObjectPool<T, N>::GetNumObjectsInUse(unsigned int aStartIndex, unsigned
      int& aNumInUse)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::ObjectPool<T, N>::GetNumObjectsInUse
      Src: /src/openweave-core/src/system/SystemObject.h:323,1
    - Dst: static_cast<nl::Weave::System::Stats::count_t>
      Src: /src/openweave-core/src/system/SystemObject.h:334,1
    - Dst: static_cast<nl::Weave::System::Stats::count_t>
      Src: /src/openweave-core/src/system/SystemObject.h:335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ' aNumInUse'
    - ' aHighWatermark'
    argTypes:
    - nl::Weave::System::Stats::count_t
    - nl::Weave::System::Stats::count_t
    constantsTouched: []
    func_position:
      end: 337
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 337
    functionName: nl::Weave::System::ObjectPool<T, N>::GetStatistics
    functionSourceFile: /src/openweave-core/src/system/SystemObject.h
    functionUses: 0
    functionsReached:
    - nl::Weave::System::ObjectPool<T, N>::GetNumObjectsInUse
    - static_cast<nl::Weave::System::Stats::count_t>
    linkageType: ''
    returnType: void
    signature: "ObjectPool<T, N>::GetStatistics(nl::Weave::System::Stats::count_t&
      aNumInUse,\n                                            nl::Weave::System::Stats::count_t&
      aHighWatermark)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Platform::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/system/SystemTimer.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: nl::Weave::System::Timer::GetCurrentEpoch
    functionSourceFile: /src/openweave-core/src/system/SystemTimer.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::System::Platform::Layer::GetClock_MonotonicMS
    linkageType: ''
    returnType: Timer::Epoch
    signature: Timer::GetCurrentEpoch(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Epoch>
      Src: /src/openweave-core/src/system/SystemTimer.cpp:108,1
    - Dst: static_cast<Epoch>
      Src: /src/openweave-core/src/system/SystemTimer.cpp:108,1
    - Dst: static_cast<Epoch>
      Src: /src/openweave-core/src/system/SystemTimer.cpp:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - inFirst
    - inSecond
    argTypes:
    - Timer::Epoch
    - Timer::Epoch
    constantsTouched: []
    func_position:
      end: 114
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 114
    functionName: nl::Weave::System::Timer::IsEarlierEpoch
    functionSourceFile: /src/openweave-core/src/system/SystemTimer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Epoch>
    linkageType: ''
    returnType: bool
    signature: Timer::IsEarlierEpoch(const Timer::Epoch &inFirst, const Timer::Epoch
      &inSecond)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Timer::SystemLayer
      Src: /src/openweave-core/src/system/SystemTimer.cpp:128,1
    - Dst: WEAVE_SYSTEM_FAULT_INJECT
      Src: /src/openweave-core/src/system/SystemTimer.cpp:130,1
    - Dst: nl::Weave::System::Timer::GetCurrentEpoch
      Src: /src/openweave-core/src/system/SystemTimer.cpp:133,1
    - Dst: static_cast<Epoch>
      Src: /src/openweave-core/src/system/SystemTimer.cpp:133,1
    - Dst: __sync_bool_compare_and_swap
      Src: /src/openweave-core/src/system/SystemTimer.cpp:134,1
    - Dst: WeaveDie
      Src: /src/openweave-core/src/system/SystemTimer.cpp:136,1
    - Dst: nl::Weave::System::Timer::IsEarlierEpoch
      Src: /src/openweave-core/src/system/SystemTimer.cpp:142,1
    - Dst: StartPlatformTimer
      Src: /src/openweave-core/src/system/SystemTimer.cpp:152,1
    - Dst: nl::Weave::System::Timer::IsEarlierEpoch
      Src: /src/openweave-core/src/system/SystemTimer.cpp:161,1
    - Dst: WakeSelect
      Src: /src/openweave-core/src/system/SystemTimer.cpp:175,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - aDelayMilliseconds
    - aOnComplete
    - aAppState
    argTypes:
    - uint32_t
    - OnCompleteFunct
    - void*
    constantsTouched: []
    func_position:
      end: 179
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 179
    functionName: nl::Weave::System::Timer::Start
    functionSourceFile: /src/openweave-core/src/system/SystemTimer.cpp
    functionUses: 0
    functionsReached:
    - WEAVE_SYSTEM_FAULT_INJECT
    - static_cast<Epoch>
    - nl::Weave::System::Timer::IsEarlierEpoch
    - __sync_bool_compare_and_swap
    - StartPlatformTimer
    - nl::Weave::System::Timer::GetCurrentEpoch
    - WeaveDie
    - nl::Weave::System::Timer::SystemLayer
    - WakeSelect
    linkageType: ''
    returnType: Error
    signature: Timer::Start(uint32_t aDelayMilliseconds, OnCompleteFunct aOnComplete,
      void* aAppState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Timer::SystemLayer
      Src: /src/openweave-core/src/system/SystemTimer.cpp:184,1
    - Dst: nl::Weave::System::Timer::GetCurrentEpoch
      Src: /src/openweave-core/src/system/SystemTimer.cpp:187,1
    - Dst: __sync_bool_compare_and_swap
      Src: /src/openweave-core/src/system/SystemTimer.cpp:188,1
    - Dst: WeaveDie
      Src: /src/openweave-core/src/system/SystemTimer.cpp:190,1
    - Dst: PostEvent
      Src: /src/openweave-core/src/system/SystemTimer.cpp:194,1
    - Dst: WakeSelect
      Src: /src/openweave-core/src/system/SystemTimer.cpp:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - aOnComplete
    - aAppState
    argTypes:
    - OnCompleteFunct
    - void*
    constantsTouched: []
    func_position:
      end: 201
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 201
    functionName: nl::Weave::System::Timer::ScheduleWork
    functionSourceFile: /src/openweave-core/src/system/SystemTimer.cpp
    functionUses: 0
    functionsReached:
    - PostEvent
    - __sync_bool_compare_and_swap
    - nl::Weave::System::Timer::GetCurrentEpoch
    - WeaveDie
    - nl::Weave::System::Timer::SystemLayer
    - WakeSelect
    linkageType: ''
    returnType: Error
    signature: Timer::ScheduleWork(OnCompleteFunct aOnComplete, void* aAppState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Timer::SystemLayer
      Src: /src/openweave-core/src/system/SystemTimer.cpp:211,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/system/SystemTimer.cpp:216,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/system/SystemTimer.cpp:218,1
    - Dst: __sync_bool_compare_and_swap
      Src: /src/openweave-core/src/system/SystemTimer.cpp:218,1
    - Dst: nl::Weave::System::Timer::Release
      Src: /src/openweave-core/src/system/SystemTimer.cpp:250,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 253
    functionName: nl::Weave::System::Timer::Cancel
    functionSourceFile: /src/openweave-core/src/system/SystemTimer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Timer::SystemLayer
    - __sync_bool_compare_and_swap
    - VerifyOrExit
    - nl::Weave::System::Timer::Release
    linkageType: ''
    returnType: Error
    signature: Timer::Cancel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Timer::SystemLayer
      Src: /src/openweave-core/src/system/SystemTimer.cpp:261,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/system/SystemTimer.cpp:266,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/system/SystemTimer.cpp:268,1
    - Dst: __sync_bool_compare_and_swap
      Src: /src/openweave-core/src/system/SystemTimer.cpp:268,1
    - Dst: nl::Weave::System::Timer::Release
      Src: /src/openweave-core/src/system/SystemTimer.cpp:272,1
    - Dst: lOnComplete
      Src: /src/openweave-core/src/system/SystemTimer.cpp:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 280
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 280
    functionName: nl::Weave::System::Timer::HandleComplete
    functionSourceFile: /src/openweave-core/src/system/SystemTimer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Timer::Release
    - VerifyOrExit
    - lOnComplete
    - __sync_bool_compare_and_swap
    - nl::Weave::System::Timer::SystemLayer
    linkageType: ''
    returnType: void
    signature: Timer::HandleComplete()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Timer::GetCurrentEpoch
      Src: /src/openweave-core/src/system/SystemTimer.cpp:304,1
    - Dst: Size
      Src: /src/openweave-core/src/system/SystemTimer.cpp:312,1
    - Dst: nl::Weave::System::Timer::IsEarlierEpoch
      Src: /src/openweave-core/src/system/SystemTimer.cpp:312,1
    - Dst: nl::Weave::System::Timer::HandleComplete
      Src: /src/openweave-core/src/system/SystemTimer.cpp:319,1
    - Dst: nl::Weave::System::Timer::GetCurrentEpoch
      Src: /src/openweave-core/src/system/SystemTimer.cpp:329,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/system/SystemTimer.cpp:342,1
    - Dst: StartPlatformTimer
      Src: /src/openweave-core/src/system/SystemTimer.cpp:344,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/system/SystemTimer.cpp:344,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - ' aLayer'
    argTypes:
    - Layer
    constantsTouched: []
    func_position:
      end: 350
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 350
    functionName: nl::Weave::System::Timer::HandleExpiredTimers
    functionSourceFile: /src/openweave-core/src/system/SystemTimer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Timer::HandleComplete
    - Size
    - static_cast<uint32_t>
    - nl::Weave::System::Timer::IsEarlierEpoch
    - StartPlatformTimer
    - nl::Weave::System::Timer::GetCurrentEpoch
    - VerifyOrDie
    linkageType: ''
    returnType: Error
    signature: Timer::HandleExpiredTimers(Layer& aLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 121
    functionName: nl::Weave::System::Object
    functionSourceFile: /src/openweave-core/src/system/SystemTimer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: Object
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Timer::GetStatistics
      Src: /src/openweave-core/src/system/SystemTimer.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' aNumInUse'
    - ' aHighWatermark'
    argTypes:
    - nl::Weave::System::Stats::count_t
    - nl::Weave::System::Stats::count_t
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: nl::Weave::System::Timer::GetStatistics
    functionSourceFile: /src/openweave-core/src/system/SystemTimer.h
    functionUses: 1
    functionsReached:
    - nl::Weave::System::Timer::GetStatistics
    linkageType: ''
    returnType: void
    signature: "Timer::GetStatistics(nl::Weave::System::Stats::count_t& aNumInUse,\n
      \                                nl::Weave::System::Stats::count_t& aHighWatermark)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' aInetLayer'
    - aOnCompleteInetLayer
    - aAppStateInetLayer
    argTypes:
    - Inet::InetLayer
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: nl::Weave::System::Timer::AttachInetLayer
    functionSourceFile: /src/openweave-core/src/system/SystemTimer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Timer::AttachInetLayer(Inet::InetLayer& aInetLayer, void* aOnCompleteInetLayer,
      void* aAppStateInetLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: nl::Weave::System::Timer::InetLayer
    functionSourceFile: /src/openweave-core/src/system/SystemTimer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Inet::InetLayer
    signature: '* Timer::InetLayer(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: nl::Weave::System::Timer::OnCompleteInetLayer
    functionSourceFile: /src/openweave-core/src/system/SystemTimer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '* Timer::OnCompleteInetLayer(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: nl::Weave::System::Timer::AppStateInetLayer
    functionSourceFile: /src/openweave-core/src/system/SystemTimer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '* Timer::AppStateInetLayer(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/system/SystemClock.cpp:88,1
    - Dst: UINT64_C
      Src: /src/openweave-core/src/system/SystemClock.cpp:89,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/system/SystemClock.cpp:93,1
    - Dst: UINT64_C
      Src: /src/openweave-core/src/system/SystemClock.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 96
    functionName: nl::Weave::System::Platform::Layer::GetClock_Monotonic
    functionSourceFile: /src/openweave-core/src/system/SystemClock.cpp
    functionUses: 0
    functionsReached:
    - UINT64_C
    - VerifyOrDie
    linkageType: ''
    returnType: uint64_t
    signature: GetClock_Monotonic(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Platform::Layer::GetClock_Monotonic
      Src: /src/openweave-core/src/system/SystemClock.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: nl::Weave::System::Platform::Layer::GetClock_MonotonicMS
    functionSourceFile: /src/openweave-core/src/system/SystemClock.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::System::Platform::Layer::GetClock_Monotonic
    linkageType: ''
    returnType: uint64_t
    signature: GetClock_MonotonicMS(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/system/SystemClock.cpp:108,1
    - Dst: UINT64_C
      Src: /src/openweave-core/src/system/SystemClock.cpp:109,1
    - Dst: nl::Weave::System::Platform::Layer::GetClock_Monotonic
      Src: /src/openweave-core/src/system/SystemClock.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 113
    functionName: nl::Weave::System::Platform::Layer::GetClock_MonotonicHiRes
    functionSourceFile: /src/openweave-core/src/system/SystemClock.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Platform::Layer::GetClock_Monotonic
    - UINT64_C
    - VerifyOrDie
    linkageType: ''
    returnType: uint64_t
    signature: GetClock_MonotonicHiRes(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MapErrorPOSIX
      Src: /src/openweave-core/src/system/SystemClock.cpp:122,1
    - Dst: UINT64_C
      Src: /src/openweave-core/src/system/SystemClock.cpp:128,1
    - Dst: MapErrorPOSIX
      Src: /src/openweave-core/src/system/SystemClock.cpp:135,1
    - Dst: UINT64_C
      Src: /src/openweave-core/src/system/SystemClock.cpp:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - ' curTime'
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 144
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 144
    functionName: nl::Weave::System::Platform::Layer::GetClock_RealTime
    functionSourceFile: /src/openweave-core/src/system/SystemClock.cpp
    functionUses: 0
    functionsReached:
    - MapErrorPOSIX
    - UINT64_C
    linkageType: ''
    returnType: Error
    signature: GetClock_RealTime(uint64_t & curTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Platform::Layer::GetClock_RealTime
      Src: /src/openweave-core/src/system/SystemClock.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' curTime'
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: nl::Weave::System::Platform::Layer::GetClock_RealTimeMS
    functionSourceFile: /src/openweave-core/src/system/SystemClock.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Platform::Layer::GetClock_RealTime
    linkageType: ''
    returnType: Error
    signature: GetClock_RealTimeMS(uint64_t & curTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<time_t>
      Src: /src/openweave-core/src/system/SystemClock.cpp:159,1
    - Dst: UINT64_C
      Src: /src/openweave-core/src/system/SystemClock.cpp:159,1
    - Dst: static_cast<long>
      Src: /src/openweave-core/src/system/SystemClock.cpp:160,1
    - Dst: UINT64_C
      Src: /src/openweave-core/src/system/SystemClock.cpp:160,1
    - Dst: MapErrorPOSIX
      Src: /src/openweave-core/src/system/SystemClock.cpp:164,1
    - Dst: static_cast<time_t>
      Src: /src/openweave-core/src/system/SystemClock.cpp:169,1
    - Dst: UINT64_C
      Src: /src/openweave-core/src/system/SystemClock.cpp:169,1
    - Dst: static_cast<long>
      Src: /src/openweave-core/src/system/SystemClock.cpp:170,1
    - Dst: UINT64_C
      Src: /src/openweave-core/src/system/SystemClock.cpp:170,1
    - Dst: MapErrorPOSIX
      Src: /src/openweave-core/src/system/SystemClock.cpp:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - newCurTime
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 178
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 178
    functionName: nl::Weave::System::Platform::Layer::SetClock_RealTime
    functionSourceFile: /src/openweave-core/src/system/SystemClock.cpp
    functionUses: 0
    functionsReached:
    - MapErrorPOSIX
    - static_cast<long>
    - UINT64_C
    - static_cast<time_t>
    linkageType: ''
    returnType: Error
    signature: SetClock_RealTime(uint64_t newCurTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Platform::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/system/SystemClock.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: nl::Weave::System::Platform::Layer::GetClock_Monotonic
    functionSourceFile: /src/openweave-core/src/system/SystemClock.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::System::Platform::Layer::GetClock_MonotonicMS
    linkageType: ''
    returnType: uint64_t
    signature: GetClock_Monotonic(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __sync_bool_compare_and_swap
      Src: /src/openweave-core/src/system/SystemClock.cpp:206,1
    - Dst: sys_now
      Src: /src/openweave-core/src/system/SystemClock.cpp:208,1
    - Dst: __sync_bool_compare_and_swap
      Src: /src/openweave-core/src/system/SystemClock.cpp:218,1
    - Dst: sys_now
      Src: /src/openweave-core/src/system/SystemClock.cpp:228,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/system/SystemClock.cpp:231,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/system/SystemClock.cpp:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 232
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 232
    functionName: nl::Weave::System::Platform::Layer::GetClock_MonotonicMS
    functionSourceFile: /src/openweave-core/src/system/SystemClock.cpp
    functionUses: 2
    functionsReached:
    - __sync_bool_compare_and_swap
    - sys_now
    - static_cast<uint64_t>
    linkageType: ''
    returnType: uint64_t
    signature: GetClock_MonotonicMS(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Platform::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/system/SystemClock.cpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: nl::Weave::System::Platform::Layer::GetClock_MonotonicHiRes
    functionSourceFile: /src/openweave-core/src/system/SystemClock.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Platform::Layer::GetClock_MonotonicMS
    linkageType: ''
    returnType: uint64_t
    signature: GetClock_MonotonicHiRes(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' curTime'
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: nl::Weave::System::Platform::Layer::GetClock_RealTime
    functionSourceFile: /src/openweave-core/src/system/SystemClock.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Error
    signature: GetClock_RealTime(uint64_t & curTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' curTime'
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: nl::Weave::System::Platform::Layer::GetClock_RealTimeMS
    functionSourceFile: /src/openweave-core/src/system/SystemClock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Error
    signature: GetClock_RealTimeMS(uint64_t & curTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - newCurTime
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: nl::Weave::System::Platform::Layer::SetClock_RealTime
    functionSourceFile: /src/openweave-core/src/system/SystemClock.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Error
    signature: SetClock_RealTime(uint64_t newCurTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ' aThis'
    argTypes:
    - Mutex
    constantsTouched: []
    func_position:
      end: 72
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 72
    functionName: nl::Weave::System::Mutex::Init
    functionSourceFile: /src/openweave-core/src/system/SystemMutex.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: Mutex::Init(Mutex& aThis)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __sync_bool_compare_and_swap
      Src: /src/openweave-core/src/system/SystemMutex.cpp:79,1
    - Dst: xSemaphoreCreateMutexStatic
      Src: /src/openweave-core/src/system/SystemMutex.cpp:82,1
    - Dst: xSemaphoreCreateMutex
      Src: /src/openweave-core/src/system/SystemMutex.cpp:84,1
    - Dst: vTaskDelay
      Src: /src/openweave-core/src/system/SystemMutex.cpp:95,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - ' aThis'
    argTypes:
    - Mutex
    constantsTouched: []
    func_position:
      end: 105
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 105
    functionName: nl::Weave::System::Mutex::Init
    functionSourceFile: /src/openweave-core/src/system/SystemMutex.cpp
    functionUses: 0
    functionsReached:
    - __sync_bool_compare_and_swap
    - xSemaphoreCreateMutex
    - xSemaphoreCreateMutexStatic
    - vTaskDelay
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: Mutex::Init(Mutex& aThis)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xSemaphoreTake
      Src: /src/openweave-core/src/system/SystemMutex.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: nl::Weave::System::Mutex::Lock
    functionSourceFile: /src/openweave-core/src/system/SystemMutex.cpp
    functionUses: 0
    functionsReached:
    - xSemaphoreTake
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: Mutex::Lock(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetNumFaults
      Src: /src/openweave-core/src/system/SystemFaultInjection.cpp:56,1
    - Dst: Init
      Src: /src/openweave-core/src/system/SystemFaultInjection.cpp:58,1
    - Dst: memset
      Src: /src/openweave-core/src/system/SystemFaultInjection.cpp:63,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/system/SystemFaultInjection.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: nl::Weave::System::FaultInjection::GetManager
    functionSourceFile: /src/openweave-core/src/system/SystemFaultInjection.cpp
    functionUses: 0
    functionsReached:
    - memset
    - static_cast<uint16_t>
    - Init
    - GetNumFaults
    linkageType: ''
    returnType: Manager
    signature: '& GetManager(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sGetNumEventsAvailable
      Src: /src/openweave-core/src/system/SystemFaultInjection.cpp:79,1
    - Dst: nl::Weave::System::FaultInjection::GetManager
      Src: /src/openweave-core/src/system/SystemFaultInjection.cpp:83,1
    - Dst: nl::FaultInjection::Manager::GetFaultRecords
      Src: /src/openweave-core/src/system/SystemFaultInjection.cpp:84,1
    - Dst: nl::FaultInjection::Manager::StoreArgsAtFault
      Src: /src/openweave-core/src/system/SystemFaultInjection.cpp:90,1
    - Dst: if
      Src: /src/openweave-core/src/system/SystemFaultInjection.cpp:102,1
    - Dst: sInjectAsyncEvent
      Src: /src/openweave-core/src/system/SystemFaultInjection.cpp:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 109
    functionName: nl::Weave::System::FaultInjection::InjectAsyncEvent
    functionSourceFile: /src/openweave-core/src/system/SystemFaultInjection.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::FaultInjection::GetManager
    - nl::FaultInjection::Manager::GetFaultRecords
    - sInjectAsyncEvent
    - nl::FaultInjection::Manager::StoreArgsAtFault
    - if
    - sGetNumEventsAvailable
    linkageType: ''
    returnType: void
    signature: InjectAsyncEvent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: nl::Weave::System::FaultInjection::SetAsyncEventCallbacks
    functionSourceFile: /src/openweave-core/src/system/SystemFaultInjection.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetAsyncEventCallbacks(int32_t (*aGetNumEventsAvailable)(void), void
      (*aInjectAsyncEvent)(int32_t index))
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - aType
    argTypes:
    - EventType
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: nl::Weave::System::IsEventOfType
    functionSourceFile: /src/openweave-core/src/system/SystemEvent.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsEventOfType(EventType aType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: nl::Weave::System::Stats::GetStrings
    functionSourceFile: /src/openweave-core/src/system/SystemStats.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Label
    signature: '*GetStrings(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: nl::Weave::System::Stats::GetResourcesInUse
    functionSourceFile: /src/openweave-core/src/system/SystemStats.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: count_t
    signature: '*GetResourcesInUse(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: nl::Weave::System::Stats::GetHighWatermarks
    functionSourceFile: /src/openweave-core/src/system/SystemStats.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: count_t
    signature: '*GetHighWatermarks(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/system/SystemStats.cpp:120,1
    - Dst: memcpy
      Src: /src/openweave-core/src/system/SystemStats.cpp:121,1
    - Dst: nl::Weave::System::Timer::GetStatistics
      Src: /src/openweave-core/src/system/SystemStats.cpp:123,1
    - Dst: SYSTEM_STATS_UPDATE_LWIP_PBUF_COUNTS
      Src: /src/openweave-core/src/system/SystemStats.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - aSnapshot
    argTypes:
    - Snapshot
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: nl::Weave::System::Stats::UpdateSnapshot
    functionSourceFile: /src/openweave-core/src/system/SystemStats.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - nl::Weave::System::Timer::GetStatistics
    - SYSTEM_STATS_UPDATE_LWIP_PBUF_COUNTS
    linkageType: ''
    returnType: void
    signature: UpdateSnapshot(Snapshot &aSnapshot)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - result
    - after
    - before
    argTypes:
    - Snapshot
    - Snapshot
    - Snapshot
    constantsTouched: []
    func_position:
      end: 146
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 146
    functionName: nl::Weave::System::Stats::Difference
    functionSourceFile: /src/openweave-core/src/system/SystemStats.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: Difference(Snapshot &result, Snapshot &after, Snapshot &before)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Stats::GetResourcesInUse
      Src: /src/openweave-core/src/system/SystemStats.cpp:157,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/src/system/SystemStats.cpp:157,1
    - Dst: nl::Weave::System::Stats::GetHighWatermarks
      Src: /src/openweave-core/src/system/SystemStats.cpp:158,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/src/system/SystemStats.cpp:158,1
    - Dst: nl::Weave::System::Stats::GetResourcesInUse
      Src: /src/openweave-core/src/system/SystemStats.cpp:165,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/src/system/SystemStats.cpp:165,1
    - Dst: nl::Weave::System::Stats::GetHighWatermarks
      Src: /src/openweave-core/src/system/SystemStats.cpp:166,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/src/system/SystemStats.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 169
    functionName: nl::Weave::System::Stats::UpdateLwipPbufCounts
    functionSourceFile: /src/openweave-core/src/system/SystemStats.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Stats::GetResourcesInUse
    - nl::Weave::System::Stats::GetHighWatermarks
    - MEMP_STATS_GET
    linkageType: ''
    returnType: void
    signature: UpdateLwipPbufCounts(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: nl::Weave::System::LwIPEventHandlerDelegate::IsInitialized
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: LwIPEventHandlerDelegate::IsInitialized() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aFunction
    argTypes:
    - LwIPEventHandlerFunction
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: nl::Weave::System::LwIPEventHandlerDelegate::Init
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: LwIPEventHandlerDelegate::Init(LwIPEventHandlerFunction aFunction)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' aDelegateList'
    argTypes:
    - LwIPEventHandlerDelegate*
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: nl::Weave::System::LwIPEventHandlerDelegate::Prepend
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: LwIPEventHandlerDelegate::Prepend(const LwIPEventHandlerDelegate*&
      aDelegateList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsInitialized
      Src: /src/openweave-core/src/system/SystemLayer.cpp:94,1
    - Dst: nl::Weave::System::Layer::Init
      Src: /src/openweave-core/src/system/SystemLayer.cpp:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 110
    functionName: nl::Weave::System::Layer::Layer
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached:
    - IsInitialized
    - nl::Weave::System::Layer::Init
    linkageType: ''
    returnType: void
    signature: Layer::Layer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterSystemLayerErrorFormatter
      Src: /src/openweave-core/src/system/SystemLayer.cpp:120,1
    - Dst: RegisterPOSIXErrorFormatter
      Src: /src/openweave-core/src/system/SystemLayer.cpp:122,1
    - Dst: RegisterLwIPErrorFormatter
      Src: /src/openweave-core/src/system/SystemLayer.cpp:125,1
    - Dst: nl::Weave::System::Platform::Layer::WillInit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:131,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:132,1
    - Dst: nl::Weave::System::Layer::AddEventHandlerDelegate
      Src: /src/openweave-core/src/system/SystemLayer.cpp:135,1
    - Dst: IoUtils_pipe
      Src: /src/openweave-core/src/system/SystemLayer.cpp:140,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:141,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/system/SystemLayer.cpp:141,1
    - Dst: lwip_fcntl
      Src: /src/openweave-core/src/system/SystemLayer.cpp:147,1
    - Dst: lwip_fcntl
      Src: /src/openweave-core/src/system/SystemLayer.cpp:148,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:149,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/system/SystemLayer.cpp:149,1
    - Dst: lwip_fcntl
      Src: /src/openweave-core/src/system/SystemLayer.cpp:151,1
    - Dst: lwip_fcntl
      Src: /src/openweave-core/src/system/SystemLayer.cpp:152,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:153,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/system/SystemLayer.cpp:153,1
    - Dst: nl::Weave::System::Platform::Layer::DidInit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - aContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 162
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 162
    functionName: nl::Weave::System::Layer::Init
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::System::Platform::Layer::DidInit
    - nl::Weave::System::Platform::Layer::WillInit
    - VerifyOrExit
    - RegisterPOSIXErrorFormatter
    - RegisterSystemLayerErrorFormatter
    - IoUtils_pipe
    - lwip_fcntl
    - SuccessOrExit
    - RegisterLwIPErrorFormatter
    - nl::Weave::System::MapErrorPOSIX
    - nl::Weave::System::Layer::AddEventHandlerDelegate
    linkageType: ''
    returnType: Error
    signature: Layer::Init(void* aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Platform::Layer::WillShutdown
      Src: /src/openweave-core/src/system/SystemLayer.cpp:173,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:174,1
    - Dst: Java_nl_Weave_DeviceManager_WeaveDeviceManager_close
      Src: /src/openweave-core/src/system/SystemLayer.cpp:179,1
    - Dst: Size
      Src: /src/openweave-core/src/system/SystemLayer.cpp:185,1
    - Dst: Get
      Src: /src/openweave-core/src/system/SystemLayer.cpp:187,1
    - Dst: Timer*::Cancel
      Src: /src/openweave-core/src/system/SystemLayer.cpp:191,1
    - Dst: nl::Weave::System::Platform::Layer::DidShutdown
      Src: /src/openweave-core/src/system/SystemLayer.cpp:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 201
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 201
    functionName: nl::Weave::System::Layer::Shutdown
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached:
    - Size
    - nl::Weave::System::Platform::Layer::DidShutdown
    - nl::Weave::System::Platform::Layer::WillShutdown
    - Java_nl_Weave_DeviceManager_WeaveDeviceManager_close
    - Timer*::Cancel
    - Get
    - SuccessOrExit
    linkageType: ''
    returnType: Error
    signature: Layer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: nl::Weave::System::Layer::GetPlatformData
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '* Layer::GetPlatformData() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aPlatformData
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: nl::Weave::System::Layer::SetPlatformData
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Layer::SetPlatformData(void* aPlatformData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Layer::State
      Src: /src/openweave-core/src/system/SystemLayer.cpp:229,1
    - Dst: TryCreate
      Src: /src/openweave-core/src/system/SystemLayer.cpp:232,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/system/SystemLayer.cpp:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' aTimerPtr'
    argTypes:
    - Timer*
    constantsTouched: []
    func_position:
      end: 242
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 242
    functionName: nl::Weave::System::Layer::NewTimer
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - nl::Weave::System::Layer::State
    - TryCreate
    linkageType: ''
    returnType: Error
    signature: Layer::NewTimer(Timer*& aTimerPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Layer::CancelTimer
      Src: /src/openweave-core/src/system/SystemLayer.cpp:267,1
    - Dst: nl::Weave::System::Layer::NewTimer
      Src: /src/openweave-core/src/system/SystemLayer.cpp:268,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:269,1
    - Dst: Timer*::Start
      Src: /src/openweave-core/src/system/SystemLayer.cpp:271,1
    - Dst: Timer*::Release
      Src: /src/openweave-core/src/system/SystemLayer.cpp:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - aMilliseconds
    - aComplete
    - aAppState
    argTypes:
    - uint32_t
    - TimerCompleteFunct
    - void*
    constantsTouched: []
    func_position:
      end: 279
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 279
    functionName: nl::Weave::System::Layer::StartTimer
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Layer::CancelTimer
    - SuccessOrExit
    - Timer*::Start
    - nl::Weave::System::Layer::NewTimer
    - Timer*::Release
    linkageType: ''
    returnType: Error
    signature: Layer::StartTimer(uint32_t aMilliseconds, TimerCompleteFunct aComplete,
      void* aAppState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Layer::State
      Src: /src/openweave-core/src/system/SystemLayer.cpp:296,1
    - Dst: Size
      Src: /src/openweave-core/src/system/SystemLayer.cpp:299,1
    - Dst: Get
      Src: /src/openweave-core/src/system/SystemLayer.cpp:301,1
    - Dst: Timer*::Cancel
      Src: /src/openweave-core/src/system/SystemLayer.cpp:305,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - aOnComplete
    - aAppState
    argTypes:
    - Layer::TimerCompleteFunct
    - void*
    constantsTouched: []
    func_position:
      end: 309
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 309
    functionName: nl::Weave::System::Layer::CancelTimer
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 1
    functionsReached:
    - Timer*::Cancel
    - nl::Weave::System::Layer::State
    - Get
    - Size
    linkageType: ''
    returnType: void
    signature: Layer::CancelTimer(Layer::TimerCompleteFunct aOnComplete, void* aAppState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Size
      Src: /src/openweave-core/src/system/SystemLayer.cpp:314,1
    - Dst: Get
      Src: /src/openweave-core/src/system/SystemLayer.cpp:316,1
    - Dst: Timer*::Cancel
      Src: /src/openweave-core/src/system/SystemLayer.cpp:321,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 3
    argNames:
    - ' aInetLayer'
    - aOnCompleteInetLayer
    - aAppState
    argTypes:
    - nl::Inet::InetLayer
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 325
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 325
    functionName: nl::Weave::System::Layer::CancelAllMatchingInetTimers
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached:
    - Timer*::Cancel
    - Get
    - Size
    linkageType: ''
    returnType: void
    signature: Layer::CancelAllMatchingInetTimers(nl::Inet::InetLayer& aInetLayer,
      void* aOnCompleteInetLayer, void* aAppState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Layer::NewTimer
      Src: /src/openweave-core/src/system/SystemLayer.cpp:365,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:366,1
    - Dst: Timer*::ScheduleWork
      Src: /src/openweave-core/src/system/SystemLayer.cpp:368,1
    - Dst: Timer*::Release
      Src: /src/openweave-core/src/system/SystemLayer.cpp:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - aComplete
    - aAppState
    argTypes:
    - TimerCompleteFunct
    - void*
    constantsTouched: []
    func_position:
      end: 376
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 376
    functionName: nl::Weave::System::Layer::ScheduleWork
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached:
    - Timer*::ScheduleWork
    - nl::Weave::System::Layer::NewTimer
    - Timer*::Release
    - SuccessOrExit
    linkageType: ''
    returnType: Error
    signature: Layer::ScheduleWork(TimerCompleteFunct aComplete, void* aAppState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Platform::Layer::GetClock_Monotonic
      Src: /src/openweave-core/src/system/SystemLayer.cpp:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 400
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 400
    functionName: nl::Weave::System::Layer::GetClock_Monotonic
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Platform::Layer::GetClock_Monotonic
    linkageType: ''
    returnType: uint64_t
    signature: Layer::GetClock_Monotonic(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Platform::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/system/SystemLayer.cpp:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 424
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 424
    functionName: nl::Weave::System::Layer::GetClock_MonotonicMS
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Platform::Layer::GetClock_MonotonicMS
    linkageType: ''
    returnType: uint64_t
    signature: Layer::GetClock_MonotonicMS(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Platform::Layer::GetClock_MonotonicHiRes
      Src: /src/openweave-core/src/system/SystemLayer.cpp:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 451
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 451
    functionName: nl::Weave::System::Layer::GetClock_MonotonicHiRes
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Platform::Layer::GetClock_MonotonicHiRes
    linkageType: ''
    returnType: uint64_t
    signature: Layer::GetClock_MonotonicHiRes(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Platform::Layer::GetClock_RealTime
      Src: /src/openweave-core/src/system/SystemLayer.cpp:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' curTime'
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 483
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 483
    functionName: nl::Weave::System::Layer::GetClock_RealTime
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Platform::Layer::GetClock_RealTime
    linkageType: ''
    returnType: Error
    signature: Layer::GetClock_RealTime(uint64_t & curTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Platform::Layer::GetClock_RealTimeMS
      Src: /src/openweave-core/src/system/SystemLayer.cpp:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' curTimeMS'
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 515
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 515
    functionName: nl::Weave::System::Layer::GetClock_RealTimeMS
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Platform::Layer::GetClock_RealTimeMS
    linkageType: ''
    returnType: Error
    signature: Layer::GetClock_RealTimeMS(uint64_t & curTimeMS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Platform::Layer::SetClock_RealTime
      Src: /src/openweave-core/src/system/SystemLayer.cpp:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - newCurTime
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 551
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 551
    functionName: nl::Weave::System::Layer::SetClock_RealTime
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Platform::Layer::SetClock_RealTime
    linkageType: ''
    returnType: Error
    signature: Layer::SetClock_RealTime(uint64_t newCurTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Layer::State
      Src: /src/openweave-core/src/system/SystemLayer.cpp:564,1
    - Dst: nl::Weave::System::Timer::GetCurrentEpoch
      Src: /src/openweave-core/src/system/SystemLayer.cpp:572,1
    - Dst: Size
      Src: /src/openweave-core/src/system/SystemLayer.cpp:575,1
    - Dst: Get
      Src: /src/openweave-core/src/system/SystemLayer.cpp:577,1
    - Dst: nl::Weave::System::Timer::IsEarlierEpoch
      Src: /src/openweave-core/src/system/SystemLayer.cpp:581,1
    - Dst: nl::Weave::System::Timer::IsEarlierEpoch
      Src: /src/openweave-core/src/system/SystemLayer.cpp:587,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - pollFDs
    - ' numPollFDs'
    - ' timeoutMS'
    argTypes:
    - struct pollfd*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 594
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 594
    functionName: nl::Weave::System::Layer::PrepareSelect
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached:
    - Size
    - nl::Weave::System::Timer::IsEarlierEpoch
    - nl::Weave::System::Layer::State
    - nl::Weave::System::Timer::GetCurrentEpoch
    - Get
    linkageType: ''
    returnType: void
    signature: Layer::PrepareSelect(struct pollfd * pollFDs, int& numPollFDs, int&
      timeoutMS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Layer::State
      Src: /src/openweave-core/src/system/SystemLayer.cpp:614,1
    - Dst: pthread_self
      Src: /src/openweave-core/src/system/SystemLayer.cpp:618,1
    - Dst: static_cast<int>
      Src: /src/openweave-core/src/system/SystemLayer.cpp:631,1
    - Dst: nl::Weave::System::Timer::GetCurrentEpoch
      Src: /src/openweave-core/src/system/SystemLayer.cpp:637,1
    - Dst: Size
      Src: /src/openweave-core/src/system/SystemLayer.cpp:643,1
    - Dst: Get
      Src: /src/openweave-core/src/system/SystemLayer.cpp:645,1
    - Dst: nl::Weave::System::Timer::IsEarlierEpoch
      Src: /src/openweave-core/src/system/SystemLayer.cpp:647,1
    - Dst: Timer*::HandleComplete
      Src: /src/openweave-core/src/system/SystemLayer.cpp:649,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - pollFDs
    - numPollFDs
    argTypes:
    - struct pollfd*
    - int
    constantsTouched: []
    func_position:
      end: 656
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 656
    functionName: nl::Weave::System::Layer::HandleSelectResult
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached:
    - pthread_self
    - Timer*::HandleComplete
    - Size
    - static_cast<int>
    - nl::Weave::System::Timer::IsEarlierEpoch
    - nl::Weave::System::Layer::State
    - nl::Weave::System::Timer::GetCurrentEpoch
    - Get
    linkageType: ''
    returnType: void
    signature: Layer::HandleSelectResult(const struct pollfd * pollFDs, int numPollFDs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Layer::State
      Src: /src/openweave-core/src/system/SystemLayer.cpp:670,1
    - Dst: pthread_equal
      Src: /src/openweave-core/src/system/SystemLayer.cpp:674,1
    - Dst: pthread_self
      Src: /src/openweave-core/src/system/SystemLayer.cpp:674,1
    - Dst: static_cast<void>
      Src: /src/openweave-core/src/system/SystemLayer.cpp:683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 684
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 684
    functionName: nl::Weave::System::Layer::WakeSelect
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    - pthread_self
    - nl::Weave::System::Layer::State
    - pthread_equal
    linkageType: ''
    returnType: void
    signature: Layer::WakeSelect()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/openweave-core/src/system/SystemLayer.cpp:707,1
    - Dst: static_cast<Timer&>
      Src: /src/openweave-core/src/system/SystemLayer.cpp:711,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ' aTarget'
    - aEventType
    - aArgument
    argTypes:
    - Object
    - EventType
    - uintptr_t
    constantsTouched: []
    func_position:
      end: 720
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 720
    functionName: nl::Weave::System::Layer::HandleSystemLayerEvent
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached:
    - Release
    - static_cast<Timer&>
    linkageType: ''
    returnType: Error
    signature: Layer::HandleSystemLayerEvent(Object& aTarget, EventType aEventType,
      uintptr_t aArgument)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:734,1
    - Dst: Prepend
      Src: /src/openweave-core/src/system/SystemLayer.cpp:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' aDelegate'
    argTypes:
    - LwIPEventHandlerDelegate
    constantsTouched: []
    func_position:
      end: 740
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 740
    functionName: nl::Weave::System::Layer::AddEventHandlerDelegate
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 1
    functionsReached:
    - Prepend
    - VerifyOrExit
    linkageType: ''
    returnType: Error
    signature: Layer::AddEventHandlerDelegate(LwIPEventHandlerDelegate& aDelegate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:757,1
    - Dst: nl::Weave::System::Layer::State
      Src: /src/openweave-core/src/system/SystemLayer.cpp:757,1
    - Dst: VerifyOrDieWithMsg
      Src: /src/openweave-core/src/system/SystemLayer.cpp:760,1
    - Dst: IsRetained
      Src: /src/openweave-core/src/system/SystemLayer.cpp:760,1
    - Dst: SystemLayer
      Src: /src/openweave-core/src/system/SystemLayer.cpp:761,1
    - Dst: nl::Weave::System::Platform::Layer::PostEvent
      Src: /src/openweave-core/src/system/SystemLayer.cpp:763,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/system/SystemLayer.cpp:766,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/system/SystemLayer.cpp:766,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - ' aTarget'
    - aEventType
    - aArgument
    argTypes:
    - Object
    - EventType
    - uintptr_t
    constantsTouched: []
    func_position:
      end: 772
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 772
    functionName: nl::Weave::System::Layer::PostEvent
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached:
    - SystemLayer
    - IsRetained
    - WeaveLogError
    - VerifyOrExit
    - nl::Weave::System::Layer::State
    - VerifyOrDieWithMsg
    - SuccessOrExit
    - ErrorStr
    - nl::Weave::System::Platform::Layer::PostEvent
    linkageType: ''
    returnType: Error
    signature: Layer::PostEvent(Object& aTarget, EventType aEventType, uintptr_t aArgument)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:783,1
    - Dst: nl::Weave::System::Layer::State
      Src: /src/openweave-core/src/system/SystemLayer.cpp:783,1
    - Dst: nl::Weave::System::Platform::Layer::DispatchEvents
      Src: /src/openweave-core/src/system/SystemLayer.cpp:785,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 790
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 790
    functionName: nl::Weave::System::Layer::DispatchEvents
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Platform::Layer::DispatchEvents
    - nl::Weave::System::Layer::State
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: Error
    signature: Layer::DispatchEvents()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:805,1
    - Dst: nl::Weave::System::Layer::State
      Src: /src/openweave-core/src/system/SystemLayer.cpp:805,1
    - Dst: nl::Weave::System::Platform::Layer::DispatchEvent
      Src: /src/openweave-core/src/system/SystemLayer.cpp:807,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aEvent
    argTypes:
    - Event
    constantsTouched: []
    func_position:
      end: 812
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 812
    functionName: nl::Weave::System::Layer::DispatchEvent
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Platform::Layer::DispatchEvent
    - nl::Weave::System::Layer::State
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: Error
    signature: Layer::DispatchEvent(Event aEvent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:829,1
    - Dst: nl::Weave::System::Layer::State
      Src: /src/openweave-core/src/system/SystemLayer.cpp:829,1
    - Dst: VerifyOrDieWithMsg
      Src: /src/openweave-core/src/system/SystemLayer.cpp:832,1
    - Dst: IsRetained
      Src: /src/openweave-core/src/system/SystemLayer.cpp:832,1
    - Dst: SystemLayer
      Src: /src/openweave-core/src/system/SystemLayer.cpp:833,1
    - Dst: Retain
      Src: /src/openweave-core/src/system/SystemLayer.cpp:839,1
    - Dst: LwIPEventHandlerDelegate*::mFunction
      Src: /src/openweave-core/src/system/SystemLayer.cpp:843,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/system/SystemLayer.cpp:849,1
    - Dst: Release
      Src: /src/openweave-core/src/system/SystemLayer.cpp:856,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - ' aTarget'
    - aEventType
    - aArgument
    argTypes:
    - Object
    - EventType
    - uintptr_t
    constantsTouched: []
    func_position:
      end: 860
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 860
    functionName: nl::Weave::System::Layer::HandleEvent
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached:
    - SystemLayer
    - IsRetained
    - WeaveLogError
    - VerifyOrExit
    - LwIPEventHandlerDelegate*::mFunction
    - nl::Weave::System::Layer::State
    - VerifyOrDieWithMsg
    - Release
    - Retain
    linkageType: ''
    returnType: Error
    signature: Layer::HandleEvent(Object& aTarget, EventType aEventType, uintptr_t
      aArgument)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:877,1
    - Dst: nl::Weave::System::Layer::State
      Src: /src/openweave-core/src/system/SystemLayer.cpp:877,1
    - Dst: nl::Weave::System::Platform::Layer::StartTimer
      Src: /src/openweave-core/src/system/SystemLayer.cpp:879,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aDelayMilliseconds
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 884
      start: 874
    functionDepth: 1
    functionLinenumber: 874
    functionLinenumberEnd: 884
    functionName: nl::Weave::System::Layer::StartPlatformTimer
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Platform::Layer::StartTimer
    - nl::Weave::System::Layer::State
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: Error
    signature: Layer::StartPlatformTimer(uint32_t aDelayMilliseconds)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:899,1
    - Dst: nl::Weave::System::Layer::State
      Src: /src/openweave-core/src/system/SystemLayer.cpp:899,1
    - Dst: nl::Weave::System::Timer::HandleExpiredTimers
      Src: /src/openweave-core/src/system/SystemLayer.cpp:901,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 906
      start: 896
    functionDepth: 2
    functionLinenumber: 896
    functionLinenumberEnd: 906
    functionName: nl::Weave::System::Layer::HandlePlatformTimer
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Timer::HandleExpiredTimers
    - nl::Weave::System::Layer::State
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: Error
    signature: Layer::HandlePlatformTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/openweave-core/src/system/SystemLayer.cpp:941,1
    - Dst: static_cast<void>
      Src: /src/openweave-core/src/system/SystemLayer.cpp:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' aLayer'
    - aContext
    argTypes:
    - Layer
    - void*
    constantsTouched: []
    func_position:
      end: 945
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 945
    functionName: nl::Weave::System::Platform::Layer::WillInit
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 1
    functionsReached:
    - static_cast<void>
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: WillInit(Layer& aLayer, void* aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/openweave-core/src/system/SystemLayer.cpp:960,1
    - Dst: static_cast<void>
      Src: /src/openweave-core/src/system/SystemLayer.cpp:961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' aLayer'
    - aContext
    argTypes:
    - Layer
    - void*
    constantsTouched: []
    func_position:
      end: 964
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 964
    functionName: nl::Weave::System::Platform::Layer::WillShutdown
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 1
    functionsReached:
    - static_cast<void>
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: WillShutdown(Layer& aLayer, void* aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/openweave-core/src/system/SystemLayer.cpp:978,1
    - Dst: static_cast<void>
      Src: /src/openweave-core/src/system/SystemLayer.cpp:979,1
    - Dst: static_cast<void>
      Src: /src/openweave-core/src/system/SystemLayer.cpp:980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' aLayer'
    - aContext
    - aStatus
    argTypes:
    - Layer
    - void*
    - Error
    constantsTouched: []
    func_position:
      end: 981
      start: 976
    functionDepth: 0
    functionLinenumber: 976
    functionLinenumberEnd: 981
    functionName: nl::Weave::System::Platform::Layer::DidInit
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 1
    functionsReached:
    - static_cast<void>
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: DidInit(Layer& aLayer, void* aContext, Error aStatus)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/openweave-core/src/system/SystemLayer.cpp:998,1
    - Dst: static_cast<void>
      Src: /src/openweave-core/src/system/SystemLayer.cpp:999,1
    - Dst: static_cast<void>
      Src: /src/openweave-core/src/system/SystemLayer.cpp:1000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' aLayer'
    - aContext
    - aStatus
    argTypes:
    - Layer
    - void*
    - Error
    constantsTouched: []
    func_position:
      end: 1001
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 1001
    functionName: nl::Weave::System::Platform::Layer::DidShutdown
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 1
    functionsReached:
    - static_cast<void>
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: DidShutdown(Layer& aLayer, void* aContext, Error aStatus)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:1039,1
    - Dst: reinterpret_cast<sys_mbox_t>
      Src: /src/openweave-core/src/system/SystemLayer.cpp:1040,1
    - Dst: LwIPEvent::LwIPEvent
      Src: /src/openweave-core/src/system/SystemLayer.cpp:1042,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:1043,1
    - Dst: sys_mbox_trypost
      Src: /src/openweave-core/src/system/SystemLayer.cpp:1049,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:1050,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/system/SystemLayer.cpp:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - ' aLayer'
    - aContext
    - ' aTarget'
    - aType
    - aArgument
    argTypes:
    - Layer
    - void*
    - Object
    - EventType
    - uintptr_t
    constantsTouched: []
    func_position:
      end: 1054
      start: 1032
    functionDepth: 1
    functionLinenumber: 1032
    functionLinenumberEnd: 1054
    functionName: nl::Weave::System::Platform::Layer::PostEvent
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 2
    functionsReached:
    - LwIPEvent::LwIPEvent
    - nl::Weave::System::MapErrorLwIP
    - VerifyOrExit
    - sys_mbox_trypost
    - reinterpret_cast<sys_mbox_t>
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: PostEvent(Layer& aLayer, void* aContext, Object& aTarget, EventType
      aType, uintptr_t aArgument)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:1084,1
    - Dst: reinterpret_cast<sys_mbox_t>
      Src: /src/openweave-core/src/system/SystemLayer.cpp:1085,1
    - Dst: sys_arch_mbox_tryfetch
      Src: /src/openweave-core/src/system/SystemLayer.cpp:1089,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:1090,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/system/SystemLayer.cpp:1090,1
    - Dst: static_cast<const LwIPEvent*>
      Src: /src/openweave-core/src/system/SystemLayer.cpp:1092,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:1093,1
    - Dst: HandleEvent
      Src: /src/openweave-core/src/system/SystemLayer.cpp:1095,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:1098,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - ' aLayer'
    - aContext
    argTypes:
    - Layer
    - void*
    constantsTouched: []
    func_position:
      end: 1103
      start: 1075
    functionDepth: 1
    functionLinenumber: 1075
    functionLinenumberEnd: 1103
    functionName: nl::Weave::System::Platform::Layer::DispatchEvents
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::System::MapErrorLwIP
    - HandleEvent
    - VerifyOrExit
    - static_cast<const LwIPEvent*>
    - SuccessOrExit
    - sys_arch_mbox_tryfetch
    - reinterpret_cast<sys_mbox_t>
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: DispatchEvents(Layer& aLayer, void* aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:1132,1
    - Dst: HandleEvent
      Src: /src/openweave-core/src/system/SystemLayer.cpp:1135,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/system/SystemLayer.cpp:1136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - ' aLayer'
    - aContext
    - aEvent
    argTypes:
    - Layer
    - void*
    - Event
    constantsTouched: []
    func_position:
      end: 1140
      start: 1124
    functionDepth: 0
    functionLinenumber: 1124
    functionLinenumberEnd: 1140
    functionName: nl::Weave::System::Platform::Layer::DispatchEvent
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 2
    functionsReached:
    - HandleEvent
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: DispatchEvent(Layer& aLayer, void* aContext, Event aEvent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/openweave-core/src/system/SystemLayer.cpp:1162,1
    - Dst: static_cast<void>
      Src: /src/openweave-core/src/system/SystemLayer.cpp:1163,1
    - Dst: static_cast<void>
      Src: /src/openweave-core/src/system/SystemLayer.cpp:1164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' aLayer'
    - aContext
    - aMilliseconds
    argTypes:
    - Layer
    - void*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1167
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1167
    functionName: nl::Weave::System::Platform::Layer::StartTimer
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.cpp
    functionUses: 2
    functionsReached:
    - static_cast<void>
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: StartTimer(Layer& aLayer, void* aContext, uint32_t aMilliseconds)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 144
    functionName: nl::Weave::System::PacketBuffer
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: PacketBuffer
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_MEM_ALIGN_SIZE
      Src: /src/openweave-core/src/system/SystemPacketBuffer.h:221,1
    - Dst: LWIP_MEM_ALIGN_SIZE
      Src: /src/openweave-core/src/system/SystemPacketBuffer.h:223,1
    - Dst: LWIP_MEM_ALIGN_SIZE
      Src: /src/openweave-core/src/system/SystemPacketBuffer.h:225,1
    - Dst: static_cast<size_t>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.h:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 235
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 235
    functionName: nl::Weave::System::PacketBuffer::AllocSize
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.h
    functionUses: 0
    functionsReached:
    - LWIP_MEM_ALIGN_SIZE
    - static_cast<size_t>
    linkageType: ''
    returnType: size_t
    signature: PacketBuffer::AllocSize(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t*>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: nl::Weave::System::PacketBuffer::Start
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t*>
    linkageType: ''
    returnType: uint8_t
    signature: '* PacketBuffer::Start() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:126,1
    - Dst: static_cast<ptrdiff_t>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:126,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:127,1
    - Dst: static_cast<ptrdiff_t>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - aNewStart
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 129
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 129
    functionName: nl::Weave::System::PacketBuffer::SetStart
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - static_cast<ptrdiff_t>
    linkageType: ''
    returnType: void
    signature: PacketBuffer::SetStart(uint8_t* aNewStart)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: nl::Weave::System::PacketBuffer::DataLength
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: PacketBuffer::DataLength() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:168,1
    - Dst: static_cast<PacketBuffer*>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - aNewLen
    - aChainHead
    argTypes:
    - uint16_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 171
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 171
    functionName: nl::Weave::System::PacketBuffer::SetDataLength
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - static_cast<PacketBuffer*>
    linkageType: ''
    returnType: void
    signature: PacketBuffer::SetDataLength(uint16_t aNewLen, PacketBuffer* aChainHead)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: nl::Weave::System::PacketBuffer::TotalLength
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: PacketBuffer::TotalLength() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:192,1
    - Dst: nl::Weave::System::PacketBuffer::AllocSize
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: nl::Weave::System::PacketBuffer::MaxDataLength
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - nl::Weave::System::PacketBuffer::AllocSize
    linkageType: ''
    returnType: uint16_t
    signature: PacketBuffer::MaxDataLength() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::MaxDataLength
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: nl::Weave::System::PacketBuffer::AvailableDataLength
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::MaxDataLength
    linkageType: ''
    returnType: uint16_t
    signature: PacketBuffer::AvailableDataLength() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: nl::Weave::System::PacketBuffer::ReservedSize
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    linkageType: ''
    returnType: uint16_t
    signature: PacketBuffer::ReservedSize() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_cat
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:228,1
    - Dst: static_cast<PacketBuffer*>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - aPacket
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 244
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 244
    functionName: nl::Weave::System::PacketBuffer::AddToEnd
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - pbuf_cat
    - static_cast<PacketBuffer*>
    linkageType: ''
    returnType: void
    signature: PacketBuffer::AddToEnd(PacketBuffer* aPacket)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<PacketBuffer*>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 260
    functionName: nl::Weave::System::PacketBuffer::DetachTail
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<PacketBuffer*>
    linkageType: ''
    returnType: PacketBuffer
    signature: '* PacketBuffer::DetachTail()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:276,1
    - Dst: static_cast<PacketBuffer*>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:284,1
    - Dst: VerifyOrDieWithMsg
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:285,1
    - Dst: memcpy
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:291,1
    - Dst: static_cast<uint8_t*>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:291,1
    - Dst: nl::Weave::System::PacketBuffer::FreeHead
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:300,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 302
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 302
    functionName: nl::Weave::System::PacketBuffer::CompactHead
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t*>
    - memmove
    - static_cast<PacketBuffer*>
    - VerifyOrDieWithMsg
    - memcpy
    - nl::Weave::System::PacketBuffer::FreeHead
    linkageType: ''
    returnType: void
    signature: PacketBuffer::CompactHead()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t*>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - aConsumeLength
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 319
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 319
    functionName: nl::Weave::System::PacketBuffer::ConsumeHead
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t*>
    linkageType: ''
    returnType: void
    signature: PacketBuffer::ConsumeHead(uint16_t aConsumeLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::FreeHead
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:342,1
    - Dst: PacketBuffer*::ConsumeHead
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:347,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - aConsumeLength
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 353
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 353
    functionName: nl::Weave::System::PacketBuffer::Consume
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::ConsumeHead
    - nl::Weave::System::PacketBuffer::FreeHead
    linkageType: ''
    returnType: PacketBuffer
    signature: '* PacketBuffer::Consume(uint16_t aConsumeLength)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::AllocSize
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:371,1
    - Dst: memmove
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:375,1
    - Dst: static_cast<uint8_t*>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:375,1
    - Dst: static_cast<uint8_t*>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - aReservedSize
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 379
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 379
    functionName: nl::Weave::System::PacketBuffer::EnsureReservedSize
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t*>
    - memmove
    - nl::Weave::System::PacketBuffer::AllocSize
    linkageType: ''
    returnType: bool
    signature: PacketBuffer::EnsureReservedSize(uint16_t aReservedSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::EnsureReservedSize
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:402,1
    - Dst: nl::Weave::System::PacketBuffer::ReservedSize
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - aAlignBytes
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 403
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 403
    functionName: nl::Weave::System::PacketBuffer::AlignPayload
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::EnsureReservedSize
    - nl::Weave::System::PacketBuffer::ReservedSize
    linkageType: ''
    returnType: bool
    signature: PacketBuffer::AlignPayload(uint16_t aAlignBytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<PacketBuffer*>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 413
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 413
    functionName: nl::Weave::System::PacketBuffer::Next
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<PacketBuffer*>
    linkageType: ''
    returnType: PacketBuffer
    signature: '* PacketBuffer::Next() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_ref
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:421,1
    - Dst: LOCK_BUF_POOL
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:423,1
    - Dst: UNLOCK_BUF_POOL
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 427
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 427
    functionName: nl::Weave::System::PacketBuffer::AddRef
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - pbuf_ref
    - UNLOCK_BUF_POOL
    - LOCK_BUF_POOL
    linkageType: ''
    returnType: void
    signature: PacketBuffer::AddRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:448,1
    - Dst: static_cast<PacketBuffer*>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:454,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:454,1
    - Dst: SYSTEM_STATS_UPDATE_LWIP_PBUF_COUNTS
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:456,1
    - Dst: LOCK_BUF_POOL
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:461,1
    - Dst: static_cast<PacketBuffer*>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:466,1
    - Dst: SYSTEM_STATS_INCREMENT
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:467,1
    - Dst: UNLOCK_BUF_POOL
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:470,1
    - Dst: reinterpret_cast<PacketBuffer*>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:476,1
    - Dst: malloc
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:476,1
    - Dst: SYSTEM_STATS_INCREMENT
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:477,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:484,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:488,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - aReservedSize
    - aAvailableSize
    argTypes:
    - uint16_t
    - size_t
    constantsTouched: []
    func_position:
      end: 497
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 497
    functionName: nl::Weave::System::PacketBuffer::NewWithAvailableSize
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogError
    - reinterpret_cast<uint8_t*>
    - SYSTEM_STATS_INCREMENT
    - SYSTEM_STATS_UPDATE_LWIP_PBUF_COUNTS
    - pbuf_alloc
    - reinterpret_cast<PacketBuffer*>
    - static_cast<PacketBuffer*>
    - LOCK_BUF_POOL
    - malloc
    - UNLOCK_BUF_POOL
    linkageType: ''
    returnType: PacketBuffer
    signature: '* PacketBuffer::NewWithAvailableSize(uint16_t aReservedSize, size_t
      aAvailableSize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aAvailableSize
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 512
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 512
    functionName: nl::Weave::System::PacketBuffer::NewWithAvailableSize
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    linkageType: ''
    returnType: PacketBuffer
    signature: '* PacketBuffer::NewWithAvailableSize(size_t aAvailableSize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aReservedSize
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 538
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 538
    functionName: nl::Weave::System::PacketBuffer::New
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    linkageType: ''
    returnType: PacketBuffer
    signature: '* PacketBuffer::New(uint16_t aReservedSize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 550
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 550
    functionName: nl::Weave::System::PacketBuffer::New
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 4
    functionsReached:
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: PacketBuffer
    signature: '* PacketBuffer::New(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_free
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:567,1
    - Dst: SYSTEM_STATS_UPDATE_LWIP_PBUF_COUNTS
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:569,1
    - Dst: LOCK_BUF_POOL
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:574,1
    - Dst: static_cast<PacketBuffer*>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:578,1
    - Dst: VerifyOrDieWithMsg
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:580,1
    - Dst: SYSTEM_STATS_DECREMENT
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:585,1
    - Dst: PacketBuffer*::Clear
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:586,1
    - Dst: free
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:591,1
    - Dst: UNLOCK_BUF_POOL
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:601,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - aPacket
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 604
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 604
    functionName: nl::Weave::System::PacketBuffer::Free
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 12
    functionsReached:
    - SYSTEM_STATS_DECREMENT
    - SYSTEM_STATS_UPDATE_LWIP_PBUF_COUNTS
    - static_cast<PacketBuffer*>
    - free
    - VerifyOrDieWithMsg
    - LOCK_BUF_POOL
    - pbuf_free
    - PacketBuffer*::Clear
    - UNLOCK_BUF_POOL
    linkageType: ''
    returnType: void
    signature: PacketBuffer::Free(PacketBuffer* aPacket)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::ClearSecretData
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:613,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:613,1
    - Dst: nl::Weave::System::PacketBuffer::AllocSize
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 619
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 619
    functionName: nl::Weave::System::PacketBuffer::Clear
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint8_t*>
    - nl::Weave::Crypto::ClearSecretData
    - nl::Weave::System::PacketBuffer::AllocSize
    linkageType: ''
    returnType: void
    signature: PacketBuffer::Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<PacketBuffer*>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:633,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - aPacket
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 637
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 637
    functionName: nl::Weave::System::PacketBuffer::FreeHead
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 3
    functionsReached:
    - static_cast<PacketBuffer*>
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: PacketBuffer
    signature: '* PacketBuffer::FreeHead(PacketBuffer* aPacket)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<PacketBuffer *>
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:651,1
    - Dst: pbuf_rightsize
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:651,1
    - Dst: SYSTEM_STATS_UPDATE_LWIP_PBUF_COUNTS
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:654,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:656,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - aPacket
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 660
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 660
    functionName: nl::Weave::System::PacketBuffer::RightSize
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - SYSTEM_STATS_UPDATE_LWIP_PBUF_COUNTS
    - pbuf_rightsize
    - static_cast<PacketBuffer *>
    linkageType: ''
    returnType: PacketBuffer
    signature: '* PacketBuffer::RightSize(PacketBuffer *aPacket)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Mutex::Init
      Src: /src/openweave-core/src/system/SystemPacketBuffer.cpp:676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 679
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 679
    functionName: nl::Weave::System::PacketBuffer::BuildFreeList
    functionSourceFile: /src/openweave-core/src/system/SystemPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Mutex::Init
    linkageType: ''
    returnType: PacketBuffer
    signature: '* PacketBuffer::BuildFreeList()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterErrorFormatter
      Src: /src/openweave-core/src/system/SystemError.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: nl::Weave::System::RegisterSystemLayerErrorFormatter
    functionSourceFile: /src/openweave-core/src/system/SystemError.cpp
    functionUses: 0
    functionsReached:
    - RegisterErrorFormatter
    linkageType: ''
    returnType: void
    signature: RegisterSystemLayerErrorFormatter(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::FormatError
      Src: /src/openweave-core/src/system/SystemError.cpp:150,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - buf
    - bufSize
    - err
    argTypes:
    - char*
    - uint16_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 153
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 153
    functionName: nl::Weave::System::FormatSystemLayerError
    functionSourceFile: /src/openweave-core/src/system/SystemError.cpp
    functionUses: 0
    functionsReached:
    - nl::FormatError
    linkageType: ''
    returnType: bool
    signature: FormatSystemLayerError(char * buf, uint16_t bufSize, int32_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aError
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: nl::Weave::System::MapErrorPOSIX
    functionSourceFile: /src/openweave-core/src/system/SystemError.cpp
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: MapErrorPOSIX(int aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strerror
      Src: /src/openweave-core/src/system/SystemError.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aError
    argTypes:
    - Error
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: nl::Weave::System::DescribeErrorPOSIX
    functionSourceFile: /src/openweave-core/src/system/SystemError.cpp
    functionUses: 1
    functionsReached:
    - strerror
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: '*DescribeErrorPOSIX(Error aError)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - aError
    argTypes:
    - Error
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: nl::Weave::System::IsErrorPOSIX
    functionSourceFile: /src/openweave-core/src/system/SystemError.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: IsErrorPOSIX(Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterErrorFormatter
      Src: /src/openweave-core/src/system/SystemError.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 211
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 211
    functionName: nl::Weave::System::RegisterPOSIXErrorFormatter
    functionSourceFile: /src/openweave-core/src/system/SystemError.cpp
    functionUses: 0
    functionsReached:
    - RegisterErrorFormatter
    linkageType: ''
    returnType: void
    signature: RegisterPOSIXErrorFormatter(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Error>
      Src: /src/openweave-core/src/system/SystemError.cpp:227,1
    - Dst: nl::Weave::System::IsErrorPOSIX
      Src: /src/openweave-core/src/system/SystemError.cpp:229,1
    - Dst: nl::Weave::System::DescribeErrorPOSIX
      Src: /src/openweave-core/src/system/SystemError.cpp:235,1
    - Dst: FormatError
      Src: /src/openweave-core/src/system/SystemError.cpp:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - buf
    - bufSize
    - err
    argTypes:
    - char*
    - uint16_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 244
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 244
    functionName: nl::Weave::System::FormatPOSIXError
    functionSourceFile: /src/openweave-core/src/system/SystemError.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::DescribeErrorPOSIX
    - static_cast<Error>
    - FormatError
    - nl::Weave::System::IsErrorPOSIX
    linkageType: ''
    returnType: bool
    signature: FormatPOSIXError(char * buf, uint16_t bufSize, int32_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aError
    argTypes:
    - err_t
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: nl::Weave::System::MapErrorLwIP
    functionSourceFile: /src/openweave-core/src/system/SystemError.cpp
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: MapErrorLwIP(err_t aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_strerr
      Src: /src/openweave-core/src/system/SystemError.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aError
    argTypes:
    - Error
    constantsTouched: []
    func_position:
      end: 282
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 282
    functionName: nl::Weave::System::DescribeErrorLwIP
    functionSourceFile: /src/openweave-core/src/system/SystemError.cpp
    functionUses: 1
    functionsReached:
    - lwip_strerr
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: '* DescribeErrorLwIP(Error aError)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - aError
    argTypes:
    - Error
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: nl::Weave::System::IsErrorLwIP
    functionSourceFile: /src/openweave-core/src/system/SystemError.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: IsErrorLwIP(Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterErrorFormatter
      Src: /src/openweave-core/src/system/SystemError.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 313
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 313
    functionName: nl::Weave::System::RegisterLwIPErrorFormatter
    functionSourceFile: /src/openweave-core/src/system/SystemError.cpp
    functionUses: 0
    functionsReached:
    - RegisterErrorFormatter
    linkageType: ''
    returnType: void
    signature: RegisterLwIPErrorFormatter(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Weave::System::Error>
      Src: /src/openweave-core/src/system/SystemError.cpp:329,1
    - Dst: nl::Weave::System::IsErrorLwIP
      Src: /src/openweave-core/src/system/SystemError.cpp:331,1
    - Dst: nl::Weave::System::DescribeErrorLwIP
      Src: /src/openweave-core/src/system/SystemError.cpp:337,1
    - Dst: nl::FormatError
      Src: /src/openweave-core/src/system/SystemError.cpp:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - buf
    - bufSize
    - err
    argTypes:
    - char*
    - uint16_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 346
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 346
    functionName: nl::Weave::System::FormatLwIPError
    functionSourceFile: /src/openweave-core/src/system/SystemError.cpp
    functionUses: 0
    functionsReached:
    - nl::FormatError
    - nl::Weave::System::IsErrorLwIP
    - static_cast<Weave::System::Error>
    - nl::Weave::System::DescribeErrorLwIP
    linkageType: ''
    returnType: bool
    signature: FormatLwIPError(char * buf, uint16_t bufSize, int32_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 228
    functionName: nl::Weave::System::Layer
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: Layer
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: nl::Weave::System::Layer::State
    functionSourceFile: /src/openweave-core/src/system/SystemLayer.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: LayerState
    signature: Layer::State(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:72,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:76,1
    - Dst: BLEEndPoint*::mWoBleTest::DoCommandTestRequest
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:89,1
    - Dst: BLEEndPoint*::mWoBleTest::HandleCommandTest
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 8
    argNames:
    - ble
    - connObj
    - packetCount
    - duration
    - txGap
    - needAck
    - payloadSize
    - reverse
    argTypes:
    - void*
    - BLE_CONNECTION_OBJECT
    - uint32_t
    - uint32_t
    - uint16_t
    - uint8_t
    - uint16_t
    - bool
    constantsTouched: []
    func_position:
      end: 97
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 97
    functionName: nl::Ble::HandleCommandTest
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - BLEEndPoint*::mWoBleTest::HandleCommandTest
    - WeaveLogDebugBleEndPoint
    - BLEEndPoint*::mWoBleTest::DoCommandTestRequest
    linkageType: ''
    returnType: BLE_ERROR
    signature: "HandleCommandTest(void * ble, BLE_CONNECTION_OBJECT connObj, uint32_t
      packetCount, uint32_t duration, uint16_t txGap,\n                            uint8_t
      needAck, uint16_t payloadSize, bool reverse)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:106,1
    - Dst: BLEEndPoint*::mWoBleTest::DoCommandTestResult
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:111,1
    - Dst: nl::Ble::WoBleTest::LogBleTestResult
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ble
    - connObj
    - local
    argTypes:
    - void*
    - BLE_CONNECTION_OBJECT
    - bool
    constantsTouched: []
    func_position:
      end: 116
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 116
    functionName: nl::Ble::HandleCommandTestResult
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - BLEEndPoint*::mWoBleTest::DoCommandTestResult
    - WeaveLogError
    - nl::Ble::WoBleTest::LogBleTestResult
    linkageType: ''
    returnType: BLE_ERROR
    signature: HandleCommandTestResult(void * ble, BLE_CONNECTION_OBJECT connObj,
      bool local)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:125,1
    - Dst: BLEEndPoint*::mWoBleTest::DoCommandTestAbort
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ble
    - connObj
    argTypes:
    - void*
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 132
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 132
    functionName: nl::Ble::HandleCommandTestAbort
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - BLEEndPoint*::mWoBleTest::DoCommandTestAbort
    - WeaveLogError
    linkageType: ''
    returnType: BLE_ERROR
    signature: HandleCommandTestAbort(void * ble, BLE_CONNECTION_OBJECT connObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:141,1
    - Dst: BLEEndPoint*::mWoBleTest::DoCommandTxTiming
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:146,1
    - Dst: BLEEndPoint*::mWoBleTest::HandleCommandTxTiming
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ble
    - connObj
    - enabled
    - remote
    argTypes:
    - void*
    - BLE_CONNECTION_OBJECT
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 151
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 151
    functionName: nl::Ble::HandleCommandTxTiming
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - BLEEndPoint*::mWoBleTest::HandleCommandTxTiming
    - BLEEndPoint*::mWoBleTest::DoCommandTxTiming
    linkageType: ''
    returnType: BLE_ERROR
    signature: HandleCommandTxTiming(void * ble, BLE_CONNECTION_OBJECT connObj, bool
      enabled, bool remote)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:161,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:161,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:163,1
    - Dst: nl::Weave::Encoding::Write8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:164,1
    - Dst: nl::Weave::Encoding::Write8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:166,1
    - Dst: nl::Weave::Encoding::Write8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:171,1
    - Dst: nl::Weave::Encoding::Write8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:172,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:173,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:174,1
    - Dst: nl::Weave::Encoding::Write8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:177,1
    - Dst: nl::Weave::Encoding::Write8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:178,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:179,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:180,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:181,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:182,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:183,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:186,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:187,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:188,1
    - Dst: nl::Weave::Encoding::Write8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:189,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:190,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:191,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:194,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:195,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:196,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:197,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:198,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:199,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:200,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:201,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:202,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:203,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:204,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:205,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:206,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:207,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:208,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:209,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:210,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:211,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:212,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:213,1
    - Dst: nl::Weave::Encoding::Write8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:216,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:217,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:218,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:219,1
    - Dst: nl::Weave::Encoding::Write8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:222,1
    - Dst: nl::Weave::Encoding::Write8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:223,1
    - Dst: nl::Weave::Encoding::Write8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:224,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:225,1
    - Dst: nl::Weave::Encoding::Write8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:228,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:229,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:232,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 74
    argCount: 2
    argNames:
    - msgBuf
    - ' cmd'
    argTypes:
    - PacketBuffer*
    - BleTransportCommandMessage
    constantsTouched: []
    func_position:
      end: 238
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 238
    functionName: nl::Ble::BleTransportCommandMessage::Encode
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - WeaveLogError
    - nl::Weave::Encoding::Write8
    - VerifyOrExit
    - PacketBuffer*::MaxDataLength
    - memcpy
    - nl::Weave::Encoding::LittleEndian::Write16
    - nl::Weave::Encoding::LittleEndian::Write32
    linkageType: ''
    returnType: BLE_ERROR
    signature: BleTransportCommandMessage::Encode(PacketBuffer * msgBuf, BleTransportCommandMessage
      & cmd) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:246,1
    - Dst: DataLength
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:246,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:248,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:249,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:250,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:255,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:256,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:257,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:260,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:261,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:262,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:263,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:264,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:265,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:268,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:269,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:270,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:271,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:272,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:275,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:276,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:277,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:278,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:279,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:280,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:281,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:282,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:283,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:284,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:285,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:286,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:287,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:288,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:289,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:290,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:291,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:292,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:293,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:296,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:297,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:298,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:301,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:302,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:303,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:306,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:309,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:315,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 69
    argCount: 2
    argNames:
    - ' msgBuf'
    - ' cmd'
    argTypes:
    - PacketBuffer
    - BleTransportCommandMessage
    constantsTouched: []
    func_position:
      end: 318
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 318
    functionName: nl::Ble::BleTransportCommandMessage::Decode
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - nl::Weave::Encoding::Read8
    - DataLength
    - VerifyOrExit
    - memcpy
    - nl::Weave::Encoding::LittleEndian::Read32
    - nl::Weave::Encoding::LittleEndian::Read16
    linkageType: ''
    returnType: BLE_ERROR
    signature: BleTransportCommandMessage::Decode(const PacketBuffer & msgBuf, BleTransportCommandMessage
      & cmd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:329,1
    - Dst: memset
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:330,1
    - Dst: pthread_self
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:332,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:335,1
    - Dst: BLEEndPoint*::SetOnCommandReceivedCB
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ep
    argTypes:
    - BLEEndPoint*
    constantsTouched: []
    func_position:
      end: 341
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 341
    functionName: nl::Ble::WoBleTest::Init
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - pthread_self
    - BLEEndPoint*::SetOnCommandReceivedCB
    - memset
    linkageType: ''
    returnType: BLE_ERROR
    signature: WoBleTest::Init(BLEEndPoint * ep)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:353,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:359,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:365,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:369,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - src
    - dst
    - size
    argTypes:
    - uint8_t*
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 372
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 372
    functionName: nl::Ble::WoBleTest::Decode
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - memcpy
    linkageType: ''
    returnType: void
    signature: WoBleTest::Decode(uint8_t * src, uint8_t * dst, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:381,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:386,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:391,1
    - Dst: BLEEndPoint*::mWoBleTest::mCommandReceiveQueue::AddToEnd
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:392,1
    - Dst: BLEEndPoint*::mBle::mSystemLayer::StartTimer
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:397,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:398,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:402,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:406,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - ep
    - data
    argTypes:
    - BLEEndPoint*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 410
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 410
    functionName: nl::Ble::WoBleTest::HandleCommandReceived
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - BLEEndPoint*::mWoBleTest::mCommandReceiveQueue::AddToEnd
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - BLEEndPoint*::mBle::mSystemLayer::StartTimer
    - WeaveLogDebugBleEndPoint
    linkageType: ''
    returnType: void
    signature: WoBleTest::HandleCommandReceived(BLEEndPoint * ep, PacketBuffer * data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:418,1
    - Dst: mWoBle::TxPacketType
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:419,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:419,1
    - Dst: mWoBle::TxPacketType
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:421,1
    - Dst: nl::Weave::System::Timer::GetCurrentEpoch
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:427,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:428,1
    - Dst: nl::Ble::WoBleTest::AddTxRecord
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:437,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:458,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:460,1
    - Dst: mBle::mSystemLayer::StartTimer
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:466,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:472,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:496,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 55
    argCount: 2
    argNames:
    - data
    - stage
    argTypes:
    - PacketBuffer*
    - int
    constantsTouched: []
    func_position:
      end: 504
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 504
    functionName: nl::Ble::WoBleTest::DoTxTiming
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - nl::Ble::WoBleTest::AddTxRecord
    - WeaveLogError
    - mBle::mSystemLayer::StartTimer
    - nl::Weave::System::Timer::GetCurrentEpoch
    - mWoBle::TxPacketType
    - WeaveLogDebugBleEndPoint
    linkageType: ''
    returnType: void
    signature: WoBleTest::DoTxTiming(PacketBuffer * data, int stage)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 519
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 519
    functionName: nl::Ble::isEmptyData
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: isEmptyData(char * data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BLEEndPoint *>
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:523,1
    - Dst: pthread_self
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:526,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:530,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:532,1
    - Dst: isEmptyData
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:535,1
    - Dst: pthread_equal
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:536,1
    - Dst: pthread_equal
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:536,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:538,1
    - Dst: pthread_exit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:540,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:545,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:546,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:548,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:553,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:581,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:582,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:585,1
    - Dst: BLEEndPoint*::mWoBleTest::mCommand::Encode
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:595,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:596,1
    - Dst: BLEEndPoint*::QueueTx
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:599,1
    - Dst: BLEEndPoint*::DriveSending
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:602,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:603,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:607,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:618,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:620,1
    - Dst: Weave::System::Layer*::StartTimer
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:623,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:627,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:631,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 70
    argCount: 3
    argNames:
    - systemLayer
    - appState
    - err
    argTypes:
    - Weave::System::Layer*
    - void*
    - Weave::System::Error
    constantsTouched: []
    func_position:
      end: 635
      start: 521
    functionDepth: 3
    functionLinenumber: 521
    functionLinenumberEnd: 635
    functionName: nl::Ble::WoBleTest::DoTestDataSend
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - BLEEndPoint*::DriveSending
    - pthread_self
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    - BLEEndPoint*::QueueTx
    - pthread_exit
    - isEmptyData
    - pthread_equal
    - static_cast<BLEEndPoint *>
    - ExitNow
    - VerifyOrExit
    - memcpy
    - Weave::System::Layer*::StartTimer
    - SetFlag
    - SuccessOrExit
    - BLEEndPoint*::mWoBleTest::mCommand::Encode
    - WeaveLogDebugBleEndPoint
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: WoBleTest::DoTestDataSend(Weave::System::Layer * systemLayer, void
      * appState, Weave::System::Error err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BLEEndPoint *>
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:639,1
    - Dst: BLEEndPoint*::mBle::mSystemLayer::StartTimer
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:643,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:644,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:648,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:650,1
    - Dst: pthread_self
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 653
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 653
    functionName: nl::Ble::WoBleTest::StartTxThread
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - pthread_self
    - VerifyOrExit
    - static_cast<BLEEndPoint *>
    - BLEEndPoint*::mBle::mSystemLayer::StartTimer
    - WeaveLogDebugBleEndPoint
    linkageType: ''
    returnType: void
    signature: '* WoBleTest::StartTxThread(void * data)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:661,1
    - Dst: memset
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:662,1
    - Dst: memset
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:665,1
    - Dst: pthread_create
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:666,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:667,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:668,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - ep
    argTypes:
    - BLEEndPoint*
    constantsTouched: []
    func_position:
      end: 675
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 675
    functionName: nl::Ble::WoBleTest::HandleCommandTest
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - pthread_create
    - memset
    - SuccessOrExit
    - WeaveLogDebugBleEndPoint
    linkageType: ''
    returnType: BLE_ERROR
    signature: WoBleTest::HandleCommandTest(BLEEndPoint * ep)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:680,1
    - Dst: memset
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:685,1
    - Dst: memset
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:686,1
    - Dst: BLEEndPoint*::mWoBleTest::InitTxHistogram
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:687,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:688,1
    - Dst: BLEEndPoint*::mWoBleTest::DoneTxHistogram
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:691,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ep
    - enabled
    argTypes:
    - BLEEndPoint*
    - bool
    constantsTouched: []
    func_position:
      end: 694
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 694
    functionName: nl::Ble::WoBleTest::HandleCommandTxTiming
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - BLEEndPoint*::mWoBleTest::DoneTxHistogram
    - BLEEndPoint*::mWoBleTest::InitTxHistogram
    - memset
    - WeaveLogDebugBleEndPoint
    linkageType: ''
    returnType: BLE_ERROR
    signature: WoBleTest::HandleCommandTxTiming(BLEEndPoint * ep, bool enabled)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:701,1
    - Dst: Encode
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:709,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:710,1
    - Dst: QueueTx
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:712,1
    - Dst: DriveSending
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:715,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:716,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:720,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - seqNum
    - result
    argTypes:
    - SequenceNumber_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 728
      start: 696
    functionDepth: 3
    functionLinenumber: 696
    functionLinenumberEnd: 728
    functionName: nl::Ble::WoBleTest::DoCommandSendAck
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - DriveSending
    - WeaveLogError
    - Encode
    - nl::Weave::System::PacketBuffer::Free
    - QueueTx
    - SuccessOrExit
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: BLE_ERROR
    signature: WoBleTest::DoCommandSendAck(SequenceNumber_t seqNum, int32_t result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:735,1
    - Dst: Encode
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:746,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:747,1
    - Dst: QueueTx
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:750,1
    - Dst: DriveSending
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:753,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:754,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:758,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:762,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - op
    - result
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 766
      start: 730
    functionDepth: 3
    functionLinenumber: 730
    functionLinenumberEnd: 766
    functionName: nl::Ble::WoBleTest::DoCommandTestResult
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - DriveSending
    - WeaveLogError
    - Encode
    - nl::Weave::System::PacketBuffer::Free
    - QueueTx
    - SuccessOrExit
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: BLE_ERROR
    signature: WoBleTest::DoCommandTestResult(int32_t op, int32_t result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:773,1
    - Dst: Encode
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:779,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:780,1
    - Dst: QueueTx
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:783,1
    - Dst: DriveSending
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:786,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:787,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:791,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - enable
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 799
      start: 768
    functionDepth: 3
    functionLinenumber: 768
    functionLinenumberEnd: 799
    functionName: nl::Ble::WoBleTest::DoCommandTxTiming
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - DriveSending
    - WeaveLogError
    - Encode
    - nl::Weave::System::PacketBuffer::Free
    - QueueTx
    - SuccessOrExit
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: BLE_ERROR
    signature: WoBleTest::DoCommandTxTiming(bool enable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:806,1
    - Dst: nl::Ble::WoBleTest::StopTestTimer
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:810,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:811,1
    - Dst: Encode
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:819,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:820,1
    - Dst: QueueTx
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:822,1
    - Dst: DriveSending
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:825,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:826,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:832,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:836,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - result
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 840
      start: 801
    functionDepth: 3
    functionLinenumber: 801
    functionLinenumberEnd: 840
    functionName: nl::Ble::WoBleTest::DoCommandTestAbort
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - DriveSending
    - WeaveLogError
    - Encode
    - nl::Weave::System::PacketBuffer::Free
    - QueueTx
    - nl::Ble::WoBleTest::StopTestTimer
    - SuccessOrExit
    - WeaveLogDebugBleEndPoint
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: BLE_ERROR
    signature: WoBleTest::DoCommandTestAbort(int32_t result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:847,1
    - Dst: Encode
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:854,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:855,1
    - Dst: QueueTx
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:858,1
    - Dst: DriveSending
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:861,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:862,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:866,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:870,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 874
      start: 842
    functionDepth: 3
    functionLinenumber: 842
    functionLinenumberEnd: 874
    functionName: nl::Ble::WoBleTest::DoCommandRequestTestResult
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - DriveSending
    - WeaveLogError
    - Encode
    - nl::Weave::System::PacketBuffer::Free
    - QueueTx
    - SuccessOrExit
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: BLE_ERROR
    signature: WoBleTest::DoCommandRequestTestResult()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:881,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:883,1
    - Dst: Encode
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:893,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:894,1
    - Dst: BLEEndPoint*::QueueTx
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:896,1
    - Dst: BLEEndPoint*::DriveSending
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:899,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:900,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:904,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:908,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - ep
    argTypes:
    - BLEEndPoint*
    constantsTouched: []
    func_position:
      end: 912
      start: 876
    functionDepth: 3
    functionLinenumber: 876
    functionLinenumberEnd: 912
    functionName: nl::Ble::WoBleTest::DoCommandTestRequest
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - BLEEndPoint*::DriveSending
    - WeaveLogError
    - Encode
    - nl::Weave::System::PacketBuffer::Free
    - SuccessOrExit
    - BLEEndPoint*::QueueTx
    - WeaveLogDebugBleEndPoint
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: BLE_ERROR
    signature: WoBleTest::DoCommandTestRequest(BLEEndPoint * ep)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:916,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:921,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:922,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:923,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:924,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:925,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:926,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:928,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:932,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:933,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:934,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:935,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:936,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:937,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:938,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:939,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:940,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:943,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:944,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:945,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:946,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 1
    argNames:
    - result
    argTypes:
    - BTCommandTypeTestResult*
    constantsTouched: []
    func_position:
      end: 949
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 949
    functionName: nl::Ble::WoBleTest::LogBleTestResult
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogError
    - WeaveLogDebugBleEndPoint
    linkageType: ''
    returnType: void
    signature: WoBleTest::LogBleTestResult(BTCommandTypeTestResult * result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BLEEndPoint *>
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:953,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:961,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:963,1
    - Dst: BLEEndPoint*::mWoBleTest::mCommandReceiveQueue::DetachTail
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:967,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:971,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:973,1
    - Dst: nl::Ble::BleTransportCommandMessage::Decode
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:976,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:977,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:979,1
    - Dst: BLEEndPoint*::mWoBle::RxPacketSeq
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:979,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:980,1
    - Dst: BLEEndPoint*::mWoBleTest::DoTxTiming
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:988,1
    - Dst: Weave::System::Layer*::StartTimer
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:990,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:991,1
    - Dst: memset
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1002,1
    - Dst: memset
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1009,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1020,1
    - Dst: BLEEndPoint*::mWoBleTest::DoCommandTestResult
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1021,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1029,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1030,1
    - Dst: BLEEndPoint*::mWoBleTest::HandleCommandTest
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1035,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1036,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1040,1
    - Dst: BLEEndPoint*::mWoBleTest::DoCommandTestResult
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1043,1
    - Dst: nl::Ble::WoBleTest::LogBleTestResult
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1044,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1045,1
    - Dst: nl::Ble::WoBleTest::LogBleTestResult
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1048,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1052,1
    - Dst: BLEEndPoint*::mWoBle::SetTxFragmentSize
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1057,1
    - Dst: BLEEndPoint*::mWoBle::SetRxFragmentSize
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1059,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1064,1
    - Dst: BLEEndPoint*::SetTxWindowSize
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1069,1
    - Dst: BLEEndPoint*::SetRxWindowSize
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1071,1
    - Dst: BLEEndPoint*::mWoBleTest::HandleCommandTxTiming
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1076,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1077,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1081,1
    - Dst: BLEEndPoint*::mWoBleTest::DoCommandSendAck
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1086,1
    - Dst: BLEEndPoint*::mWoBle::RxPacketSeq
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1086,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1089,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1093,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 102
    argCount: 3
    argNames:
    - systemLayer
    - appState
    - err
    argTypes:
    - Weave::System::Layer*
    - void*
    - Weave::System::Error
    constantsTouched: []
    func_position:
      end: 1097
      start: 951
    functionDepth: 2
    functionLinenumber: 951
    functionLinenumberEnd: 1097
    functionName: nl::Ble::WoBleTest::HandleCommandPacket
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - nl::Ble::BleTransportCommandMessage::Decode
    - BLEEndPoint*::mWoBleTest::mCommandReceiveQueue::DetachTail
    - BLEEndPoint*::SetRxWindowSize
    - BLEEndPoint*::mWoBle::RxPacketSeq
    - BLEEndPoint*::mWoBleTest::HandleCommandTxTiming
    - BLEEndPoint*::mWoBle::SetTxFragmentSize
    - BLEEndPoint*::mWoBleTest::DoCommandTestResult
    - Weave::System::Layer*::StartTimer
    - BLEEndPoint*::SetTxWindowSize
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Ble::WoBleTest::LogBleTestResult
    - BLEEndPoint*::mWoBle::SetRxFragmentSize
    - BLEEndPoint*::mWoBleTest::HandleCommandTest
    - static_cast<BLEEndPoint *>
    - memset
    - WeaveLogDebugBleEndPoint
    - BLEEndPoint*::mWoBleTest::DoCommandSendAck
    - PacketBuffer*::DataLength
    - memcpy
    - SuccessOrExit
    - BLEEndPoint*::mWoBleTest::DoTxTiming
    linkageType: ''
    returnType: void
    signature: WoBleTest::HandleCommandPacket(Weave::System::Layer * systemLayer,
      void * appState, Weave::System::Error err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1101,1
    - Dst: mBle::mSystemLayer::CancelTimer
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1104,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1099
    functionDepth: 0
    functionLinenumber: 1099
    functionLinenumberEnd: 1107
    functionName: nl::Ble::WoBleTest::StopTestTimer
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 1
    functionsReached:
    - mBle::mSystemLayer::CancelTimer
    - GetFlag
    - SetFlag
    linkageType: ''
    returnType: void
    signature: WoBleTest::StopTestTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BLEEndPoint *>
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1111,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1114,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1116,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - systemLayer
    - appState
    - err
    argTypes:
    - Weave::System::Layer*
    - void*
    - Weave::System::Error
    constantsTouched: []
    func_position:
      end: 1122
      start: 1109
    functionDepth: 0
    functionLinenumber: 1109
    functionLinenumberEnd: 1122
    functionName: nl::Ble::WoBleTest::HandleTestClose
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - GetFlag
    - static_cast<BLEEndPoint *>
    - SetFlag
    linkageType: ''
    returnType: void
    signature: WoBleTest::HandleTestClose(Weave::System::Layer * systemLayer, void
      * appState, Weave::System::Error err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1129,1
    - Dst: fclose
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1133,1
    - Dst: fopen
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1135,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1136,1
    - Dst: malloc
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1138,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1139,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1147,1
    - Dst: fclose
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - file
    - count
    - reset
    argTypes:
    - char*
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 1156
      start: 1125
    functionDepth: 0
    functionLinenumber: 1125
    functionLinenumberEnd: 1156
    functionName: nl::Ble::WoBleTest::InitTxHistogram
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - VerifyOrExit
    - fclose
    - fopen
    - malloc
    linkageType: ''
    returnType: int
    signature: WoBleTest::InitTxHistogram(char * file, int count, bool reset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1163,1
    - Dst: fprintf
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1175,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - N
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1181
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1181
    functionName: nl::Ble::WoBleTest::SaveTxRecords
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    - WeaveLogDebugBleEndPoint
    linkageType: ''
    returnType: void
    signature: WoBleTest::SaveTxRecords(uint8_t N)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1187,1
    - Dst: nl::Ble::WoBleTest::SaveTxRecords
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - txStart
    - txTime
    - size
    argTypes:
    - uint32_t
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1199
      start: 1183
    functionDepth: 1
    functionLinenumber: 1183
    functionLinenumberEnd: 1199
    functionName: nl::Ble::WoBleTest::AddTxRecord
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogDebugBleEndPoint
    - nl::Ble::WoBleTest::SaveTxRecords
    linkageType: ''
    returnType: void
    signature: WoBleTest::AddTxRecord(uint32_t txStart, uint16_t txTime, uint16_t
      size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Ble::WoBleTest::SaveTxRecords
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1205,1
    - Dst: fclose
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1210,1
    - Dst: free
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1212,1
    - Dst: memset
      Src: /src/openweave-core/src/device-manager/WoBleTest.cpp:1213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - final
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1217
      start: 1201
    functionDepth: 1
    functionLinenumber: 1201
    functionLinenumberEnd: 1217
    functionName: nl::Ble::WoBleTest::DoneTxHistogram
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.cpp
    functionUses: 0
    functionsReached:
    - free
    - fclose
    - memset
    - nl::Ble::WoBleTest::SaveTxRecords
    linkageType: ''
    returnType: void
    signature: WoBleTest::DoneTxHistogram(bool final)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/BuiltInTraitSchemaDirectory.cpp:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - aProfileId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 66
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 66
    functionName: nl::Weave::DeviceManager::TraitSchemaDirectory::GetTraitSchemaEngine
    functionSourceFile: /src/openweave-core/src/device-manager/BuiltInTraitSchemaDirectory.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    linkageType: ''
    returnType: TraitSchemaEngine
    signature: '* TraitSchemaDirectory::GetTraitSchemaEngine(uint32_t aProfileId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 365
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 365
    functionName: nl::Ble::WoBleTest
    functionSourceFile: /src/openweave-core/src/device-manager/WoBleTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WoBleTest
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 626
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 626
    functionName: Security::CASE::WeaveCASEAuthDelegate
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.h
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: Security::CASE::WeaveCASEAuthDelegate
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - apEngine
    - apWdmClient
    argTypes:
    - nl::Weave::Profiles::DataManagement::TraitSchemaEngine*
    - WdmClient*
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GenericTraitUpdatableDataSink
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "GenericTraitUpdatableDataSink::GenericTraitUpdatableDataSink(\n    const
      nl::Weave::Profiles::DataManagement::TraitSchemaEngine * apEngine, WdmClient
      * apWdmClient)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: GenericTraitUpdatableDataSink::~GenericTraitUpdatableDataSink()
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - Clear
    linkageType: ''
    returnType: void
    signature: GenericTraitUpdatableDataSink::~GenericTraitUpdatableDataSink()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:91,1
    - Dst: SubscriptionClient*::DiscardUpdates
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:94,1
    - Dst: ClearVersion
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:96,1
    - Dst: begin
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:98,1
    - Dst: end
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:98,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:102,1
    - Dst: clear
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 108
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::Clear
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - end
    - nl::Weave::System::PacketBuffer::Free
    - clear
    - GetSubscriptionClient
    - SubscriptionClient*::DiscardUpdates
    - ClearVersion
    - begin
    linkageType: ''
    returnType: void
    signature: GenericTraitUpdatableDataSink::Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:112,1
    - Dst: end
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:113,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - aPropertyPathHandle
    - apMsgBuf
    argTypes:
    - PropertyPathHandle
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 118
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 118
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::UpdateTLVDataMap
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - end
    - find
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: void
    signature: GenericTraitUpdatableDataSink::UpdateTLVDataMap(PropertyPathHandle
      aPropertyPathHandle, PacketBuffer * apMsgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GenericTraitUpdatableDataSink *>
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:124,1
    - Dst: TraitCatalogBase<TraitDataSink>*::Locate
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - apContext
    - apCatalog
    - ' aHandle'
    argTypes:
    - void*
    - TraitCatalogBase<TraitDataSink>*
    - TraitDataHandle
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::LocateTraitHandle
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GenericTraitUpdatableDataSink *>
    - TraitCatalogBase<TraitDataSink>*::Locate
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "GenericTraitUpdatableDataSink::LocateTraitHandle(void * apContext,\n
      \                                                            const TraitCatalogBase<TraitDataSink>
      * const apCatalog,\n                                                             TraitDataHandle
      & aHandle)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearVersion
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:130,1
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::RefreshData
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - appReqState
    - onComplete
    - onError
    argTypes:
    - void*
    - DMCompleteFunct
    - DMErrorFunct
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::RefreshData
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 1
    functionsReached:
    - ClearVersion
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::RefreshData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericTraitUpdatableDataSink::RefreshData(void * appReqState, DMCompleteFunct
      onComplete, DMErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::Set
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - apPath
    - aValue
    - aIsConditional
    argTypes:
    - char*
    - int64_t
    - bool
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::SetData
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::Set
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericTraitUpdatableDataSink::SetData(const char * apPath, int64_t
      aValue, bool aIsConditional)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::Set
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - apPath
    - aValue
    - aIsConditional
    argTypes:
    - char*
    - uint64_t
    - bool
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::SetData
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::Set
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericTraitUpdatableDataSink::SetData(const char * apPath, uint64_t
      aValue, bool aIsConditional)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::Set
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - apPath
    - aValue
    - aIsConditional
    argTypes:
    - char*
    - double
    - bool
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::SetData
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::Set
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericTraitUpdatableDataSink::SetData(const char * apPath, double
      aValue, bool aIsConditional)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:155,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:156,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:158,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:158,1
    - Dst: Lock
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:160,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:160,1
    - Dst: GetSchemaEngine
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:162,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:163,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:165,1
    - Dst: nl::Weave::TLV::TLVWriter::PutBoolean
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:167,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:168,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:170,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:171,1
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:174,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:175,1
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::UpdateTLVDataMap
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:178,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:180,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:180,1
    - Dst: Unlock
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:181,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:181,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:183,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:186,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 3
    argNames:
    - apPath
    - aValue
    - aIsConditional
    argTypes:
    - char*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 194
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 194
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::SetBoolean
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::Init
    - Unlock
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::UpdateTLVDataMap
    - GetSchemaEngine
    - VerifyOrExit
    - GetSubscriptionClient
    - nl::Weave::TLV::TLVWriter::Finalize
    - SetUpdated
    - WeaveLogDetail
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::PutBoolean
    - WeaveLogFunctError
    - Lock
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericTraitUpdatableDataSink::SetBoolean(const char * apPath, bool
      aValue, bool aIsConditional)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:201,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:202,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:204,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:204,1
    - Dst: Lock
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:206,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:206,1
    - Dst: GetSchemaEngine
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:208,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:209,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:211,1
    - Dst: nl::Weave::TLV::TLVWriter::PutString
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:213,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:214,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:216,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:217,1
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:220,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:221,1
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::UpdateTLVDataMap
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:224,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:226,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:226,1
    - Dst: Unlock
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:227,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:227,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:229,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:232,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 3
    argNames:
    - apPath
    - aValue
    - aIsConditional
    argTypes:
    - char*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 241
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 241
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::SetString
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::Init
    - nl::Weave::TLV::TLVWriter::PutString
    - Unlock
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::UpdateTLVDataMap
    - GetSchemaEngine
    - VerifyOrExit
    - GetSubscriptionClient
    - SetUpdated
    - WeaveLogDetail
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::Finalize
    - WeaveLogFunctError
    - Lock
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericTraitUpdatableDataSink::SetString(const char * apPath, const
      char * aValue, bool aIsConditional)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:250,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:251,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:253,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:253,1
    - Dst: Lock
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:255,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:255,1
    - Dst: GetSchemaEngine
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:257,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:258,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:260,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:262,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:263,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:264,1
    - Dst: nl::Weave::TLV::TLVWriter::CopyElement
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:266,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:267,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:269,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:270,1
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:273,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:274,1
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::UpdateTLVDataMap
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:277,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:279,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:279,1
    - Dst: Unlock
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:280,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:280,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:282,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:285,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 4
    argNames:
    - apPath
    - dataBuf
    - dataLen
    - aIsConditional
    argTypes:
    - char*
    - uint8_t*
    - size_t
    - bool
    constantsTouched: []
    func_position:
      end: 294
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 294
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::SetBytes
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::Init
    - Unlock
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::UpdateTLVDataMap
    - nl::Weave::TLV::TLVReader::Next
    - GetSchemaEngine
    - VerifyOrExit
    - GetSubscriptionClient
    - SetUpdated
    - WeaveLogDetail
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::Finalize
    - nl::Weave::TLV::TLVWriter::CopyElement
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Init
    - Lock
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "GenericTraitUpdatableDataSink::SetBytes(const char * apPath, const
      uint8_t * dataBuf, size_t dataLen,\n                                                    bool
      aIsConditional)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:304,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:304,1
    - Dst: Lock
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:305,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:305,1
    - Dst: GetSchemaEngine
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:307,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:308,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:310,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:311,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:312,1
    - Dst: static_cast<TraitSchemaEngine::ISetDataDelegate *>
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:314,1
    - Dst: GetSchemaEngine
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:315,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:316,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:318,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:318,1
    - Dst: Unlock
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:320,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:320,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:321,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 4
    argNames:
    - apPath
    - dataBuf
    - dataLen
    - aIsConditional
    argTypes:
    - char*
    - uint8_t*
    - size_t
    - bool
    constantsTouched: []
    func_position:
      end: 327
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 327
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::SetTLVBytes
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - Unlock
    - TLVReader::Next
    - GetSchemaEngine
    - VerifyOrExit
    - GetSubscriptionClient
    - SetUpdated
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveLogFunctError
    - static_cast<TraitSchemaEngine::ISetDataDelegate *>
    - Lock
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "GenericTraitUpdatableDataSink::SetTLVBytes(const char * apPath, const
      uint8_t * dataBuf, size_t dataLen,\n                                                       bool
      aIsConditional)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:334,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:335,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:337,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:337,1
    - Dst: Lock
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:339,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:339,1
    - Dst: GetSchemaEngine
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:341,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:342,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:344,1
    - Dst: nl::Weave::TLV::TLVWriter::PutNull
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:346,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:347,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:349,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:350,1
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:353,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:354,1
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::UpdateTLVDataMap
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:357,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:359,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:359,1
    - Dst: Unlock
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:360,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:360,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:362,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:365,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 2
    argNames:
    - apPath
    - aIsConditional
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 374
      start: 329
    functionDepth: 3
    functionLinenumber: 329
    functionLinenumberEnd: 374
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::SetNull
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::Init
    - Unlock
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::UpdateTLVDataMap
    - GetSchemaEngine
    - VerifyOrExit
    - GetSubscriptionClient
    - SetUpdated
    - WeaveLogDetail
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::Finalize
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVWriter::PutNull
    - Lock
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericTraitUpdatableDataSink::SetNull(const char * apPath, bool aIsConditional)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:383,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:384,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:386,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:386,1
    - Dst: Lock
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:388,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:388,1
    - Dst: GetSchemaEngine
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:390,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:391,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:393,1
    - Dst: nl::Weave::TLV::TLVWriter::StartContainer
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:395,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:396,1
    - Dst: size
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:398,1
    - Dst: nl::Weave::TLV::TLVWriter::PutString
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:400,1
    - Dst: c_str
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:400,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:401,1
    - Dst: nl::Weave::TLV::TLVWriter::EndContainer
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:404,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:405,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:407,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:408,1
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:411,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:412,1
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::UpdateTLVDataMap
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:415,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:417,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:417,1
    - Dst: Unlock
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:418,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:418,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:420,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:423,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 3
    argNames:
    - apPath
    - ' aValueVector'
    - aIsConditional
    argTypes:
    - char*
    - std::vector<std::string>
    - bool
    constantsTouched: []
    func_position:
      end: 432
      start: 376
    functionDepth: 3
    functionLinenumber: 376
    functionLinenumberEnd: 432
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::SetStringArray
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::PutString
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
    - WeaveLogFunctError
    - nl::Weave::System::PacketBuffer::New
    - nl::Weave::TLV::TLVWriter::StartContainer
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - GetSubscriptionClient
    - WeaveLogDetail
    - Lock
    - nl::Weave::TLV::TLVWriter::EndContainer
    - Unlock
    - size
    - GetSchemaEngine
    - SetUpdated
    - nl::Weave::TLV::TLVWriter::Init
    - c_str
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::UpdateTLVDataMap
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::Finalize
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "GenericTraitUpdatableDataSink::SetStringArray(const char * apPath,
      const std::vector<std::string> & aValueVector,\n                                                          bool
      aIsConditional)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:440,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:441,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:443,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:443,1
    - Dst: Lock
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:445,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:445,1
    - Dst: GetSchemaEngine
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:447,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:448,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:450,1
    - Dst: nl::Weave::TLV::TLVWriter::Put
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:452,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:453,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:455,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:456,1
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:459,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:460,1
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::UpdateTLVDataMap
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:463,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:466,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:466,1
    - Dst: Unlock
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:467,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:467,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:469,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:472,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 3
    argNames:
    - apPath
    - aValue
    - aIsConditional
    argTypes:
    - char*
    - T
    - bool
    constantsTouched: []
    func_position:
      end: 481
      start: 435
    functionDepth: 3
    functionLinenumber: 435
    functionLinenumberEnd: 481
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::Set
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::TLV::TLVWriter::Init
    - Unlock
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::UpdateTLVDataMap
    - GetSchemaEngine
    - VerifyOrExit
    - GetSubscriptionClient
    - SetUpdated
    - nl::Weave::TLV::TLVWriter::Put
    - WeaveLogDetail
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::Finalize
    - WeaveLogFunctError
    - Lock
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericTraitUpdatableDataSink::Set(const char * apPath, T aValue, bool
      aIsConditional)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::Get
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - apPath
    - ' aValue'
    argTypes:
    - char*
    - int64_t
    constantsTouched: []
    func_position:
      end: 486
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 486
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GetData
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericTraitUpdatableDataSink::GetData(const char * apPath, int64_t
      & aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::Get
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - apPath
    - ' aValue'
    argTypes:
    - char*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 491
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 491
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GetData
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericTraitUpdatableDataSink::GetData(const char * apPath, uint64_t
      & aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::Get
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - apPath
    - ' aValue'
    argTypes:
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 496
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 496
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GetData
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericTraitUpdatableDataSink::GetData(const char * apPath, double
      & aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSchemaEngine
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:506,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:507,1
    - Dst: find
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:509,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:510,1
    - Dst: end
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:510,1
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:515,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:516,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:519,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:520,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:521,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:523,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:524,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - apPath
    - ' aValue'
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 529
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 529
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GetBoolean
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - end
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
    - VerifyOrExit
    - GetSchemaEngine
    - nl::Weave::TLV::TLVReader::Get
    - WeaveLogFunctError
    - SuccessOrExit
    - find
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericTraitUpdatableDataSink::GetBoolean(const char * apPath, bool
      & aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GetBytes
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - apPath
    - apBytesData
    argTypes:
    - char*
    - BytesData*
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GetString
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GetBytes
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericTraitUpdatableDataSink::GetString(const char * apPath, BytesData
      * apBytesData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSchemaEngine
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:544,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:545,1
    - Dst: find
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:547,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:548,1
    - Dst: end
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:548,1
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:553,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:554,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:557,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:558,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:559,1
    - Dst: nl::Weave::TLV::TLVReader::GetLength
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:561,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:562,1
    - Dst: nl::Weave::TLV::TLVReader::GetDataPtr
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:565,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:566,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - apPath
    - apBytesData
    argTypes:
    - char*
    - BytesData*
    constantsTouched: []
    func_position:
      end: 572
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 572
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GetBytes
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 1
    functionsReached:
    - end
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
    - WeaveLogProgress
    - VerifyOrExit
    - GetSchemaEngine
    - nl::Weave::TLV::TLVReader::GetLength
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::GetDataPtr
    - SuccessOrExit
    - find
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericTraitUpdatableDataSink::GetBytes(const char * apPath, BytesData
      * apBytesData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:581,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:582,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:584,1
    - Dst: GetSchemaEngine
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:586,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:587,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:589,1
    - Dst: static_cast<TraitSchemaEngine::IGetDataDelegate *>
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:591,1
    - Dst: GetSchemaEngine
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:592,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:593,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:595,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:596,1
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:599,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:600,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:603,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:604,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:609,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - apPath
    - apBytesData
    argTypes:
    - char*
    - BytesData*
    constantsTouched: []
    func_position:
      end: 617
      start: 574
    functionDepth: 3
    functionLinenumber: 574
    functionLinenumberEnd: 617
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GetTLVBytes
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::Init
    - PacketBuffer*::DataLength
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
    - GetSchemaEngine
    - VerifyOrExit
    - PacketBuffer*::Start
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::Finalize
    - WeaveLogFunctError
    - static_cast<TraitSchemaEngine::IGetDataDelegate *>
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericTraitUpdatableDataSink::GetTLVBytes(const char * apPath, BytesData
      * apBytesData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSchemaEngine
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:627,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:628,1
    - Dst: find
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:630,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:631,1
    - Dst: end
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:631,1
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:636,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:637,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:640,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:641,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:642,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:644,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - apPath
    - ' aIsNull'
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 656
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 656
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::IsNull
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - end
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
    - VerifyOrExit
    - GetSchemaEngine
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::GetType
    - SuccessOrExit
    - find
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericTraitUpdatableDataSink::IsNull(const char * apPath, bool & aIsNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSchemaEngine
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:667,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:668,1
    - Dst: find
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:670,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:671,1
    - Dst: end
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:671,1
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:676,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:677,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:680,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:681,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:682,1
    - Dst: nl::Weave::TLV::TLVReader::EnterContainer
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:684,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:685,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:687,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:691,1
    - Dst: nl::Weave::TLV::TLVReader::GetDataPtr
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:694,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:695,1
    - Dst: push_back
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:699,1
    - Dst: nl::Weave::TLV::TLVReader::ExitContainer
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:708,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:709,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:712,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 2
    argNames:
    - apPath
    - ' aValueVector'
    argTypes:
    - char*
    - std::vector<std::string>
    constantsTouched: []
    func_position:
      end: 714
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 714
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GetStringArray
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - end
    - nl::Weave::TLV::TLVReader::EnterContainer
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
    - WeaveLogProgress
    - VerifyOrExit
    - GetSchemaEngine
    - push_back
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::GetDataPtr
    - SuccessOrExit
    - find
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::ExitContainer
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericTraitUpdatableDataSink::GetStringArray(const char * apPath,
      std::vector<std::string> & aValueVector)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSchemaEngine
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:725,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:726,1
    - Dst: find
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:728,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:729,1
    - Dst: end
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:729,1
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:734,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:735,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:738,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:739,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:740,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:742,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:743,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - apPath
    - ' aValue'
    argTypes:
    - char*
    - T
    constantsTouched: []
    func_position:
      end: 748
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 748
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::Get
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 3
    functionsReached:
    - end
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
    - VerifyOrExit
    - GetSchemaEngine
    - nl::Weave::TLV::TLVReader::Get
    - WeaveLogFunctError
    - SuccessOrExit
    - find
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericTraitUpdatableDataSink::Get(const char * apPath, T & aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSchemaEngine
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:756,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:757,1
    - Dst: find
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:759,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:760,1
    - Dst: end
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:760,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:764,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:766,1
    - Dst: erase
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:769,1
    - Dst: ClearUpdated
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:771,1
    - Dst: GetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:771,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - apPath
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 776
      start: 750
    functionDepth: 2
    functionLinenumber: 750
    functionLinenumberEnd: 776
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DeleteData
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - end
    - nl::Weave::System::PacketBuffer::Free
    - WeaveLogProgress
    - ClearUpdated
    - VerifyOrExit
    - GetSchemaEngine
    - GetSubscriptionClient
    - erase
    - WeaveLogFunctError
    - SuccessOrExit
    - find
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericTraitUpdatableDataSink::DeleteData(const char * apPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:783,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:784,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:786,1
    - Dst: nl::Weave::TLV::TLVWriter::CopyElement
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:788,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:789,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:791,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:792,1
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::UpdateTLVDataMap
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:794,1
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:796,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:797,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:802,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - aLeafHandle
    - ' aReader'
    argTypes:
    - PropertyPathHandle
    - TLVReader
    constantsTouched: []
    func_position:
      end: 811
      start: 778
    functionDepth: 3
    functionLinenumber: 778
    functionLinenumberEnd: 811
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::SetLeafData
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::Init
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::UpdateTLVDataMap
    - VerifyOrExit
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::Finalize
    - nl::Weave::TLV::TLVWriter::CopyElement
    - WeaveLogFunctError
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericTraitUpdatableDataSink::SetLeafData(PropertyPathHandle aLeafHandle,
      TLVReader & aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:820,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:822,1
    - Dst: end
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:822,1
    - Dst: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:827,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:828,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:831,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:832,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:833,1
    - Dst: CopyElement
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:834,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:835,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - aLeafHandle
    - aTagToWrite
    - ' aWriter'
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 840
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 840
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GetLeafData
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - end
    - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
    - CopyElement
    - VerifyOrExit
    - WeaveLogFunctError
    - SuccessOrExit
    - find
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericTraitUpdatableDataSink::GetLeafData(PropertyPathHandle aLeafHandle,
      uint64_t aTagToWrite, TLVWriter & aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aDictionaryHandle
    - ' aContext'
    - ' aKey'
    argTypes:
    - PropertyPathHandle
    - uintptr_t
    - PropertyDictionaryKey
    constantsTouched: []
    func_position:
      end: 846
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 846
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GetNextDictionaryItemKey
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "GenericTraitUpdatableDataSink::GetNextDictionaryItemKey(PropertyPathHandle
      aDictionaryHandle, uintptr_t & aContext,\n                                                                    PropertyDictionaryKey
      & aKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:853,1
    - Dst: vprintf
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:855,1
    - Dst: va_end
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - aFormat
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 858
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 858
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::TLVPrettyPrinter
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - vprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: GenericTraitUpdatableDataSink::TLVPrettyPrinter(const char * aFormat,
      ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:864,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:865,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:866,1
    - Dst: nl::Weave::TLV::Debug::Dump
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:867,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - apMsgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 876
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 876
    functionName: nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 14
    functionsReached:
    - WeaveLogProgress
    - nl::Weave::TLV::Debug::Dump
    - SuccessOrExit
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericTraitUpdatableDataSink::DebugPrettyPrint(PacketBuffer * apMsgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 886
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 886
    functionName: nl::Weave::DeviceManager::WdmClient::WdmClient
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WdmClient::WdmClient()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DiscardUpdates
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:892,1
    - Dst: Free
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:893,1
    - Dst: Iterate
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:897,1
    - Dst: Clear
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:899,1
    - Dst: clear
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:912,1
    - Dst: release
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:913,1
    - Dst: nl::Weave::DeviceManager::WdmClient::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:917,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 918
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 918
    functionName: nl::Weave::DeviceManager::WdmClient::Close
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - DiscardUpdates
    - Iterate
    - release
    - clear
    - Clear
    - nl::Weave::DeviceManager::WdmClient::ClearOpState
    - Free
    linkageType: ''
    returnType: void
    signature: WdmClient::Close(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GenericTraitUpdatableDataSink *>
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:925,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - aTraitInstance
    - aHandle
    - aContext
    argTypes:
    - void*
    - TraitDataHandle
    - void*
    constantsTouched: []
    func_position:
      end: 929
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 929
    functionName: nl::Weave::DeviceManager::WdmClient::ClearDataSink
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GenericTraitUpdatableDataSink *>
    linkageType: ''
    returnType: void
    signature: WdmClient::ClearDataSink(void * aTraitInstance, TraitDataHandle aHandle,
      void * aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - apStr
    - aLen
    - ' aBuf'
    argTypes:
    - char*
    - size_t
    - std::string
    constantsTouched: []
    func_position:
      end: 956
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 956
    functionName: nl::Weave::DeviceManager::WriteEscapedString
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WriteEscapedString(const char * apStr, size_t aLen, std::string & aBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:962,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:970,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:971,1
    - Dst: to_string
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:973,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:980,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:981,1
    - Dst: to_string
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:983,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:990,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:991,1
    - Dst: TLVReader::GetString
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1000,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1001,1
    - Dst: nl::Weave::DeviceManager::WriteEscapedString
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1012,1
    - Dst: min
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1012,1
    - Dst: strlen
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1012,1
    - Dst: TLVReader::GetLength
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1022,1
    - Dst: TLVReader::GetBytes
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1024,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1025,1
    - Dst: to_string
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1046,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1062,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1062,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1070,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1071,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1073,1
    - Dst: to_string
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1081,1
    - Dst: nl::Weave::DeviceManager::FormatEventData
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1083,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1084,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1089,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1090,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 85
    argCount: 2
    argNames:
    - aInReader
    - ' aBuf'
    argTypes:
    - TLVReader
    - std::string
    constantsTouched: []
    func_position:
      end: 1095
      start: 958
    functionDepth: 1
    functionLinenumber: 958
    functionLinenumberEnd: 1095
    functionName: nl::Weave::DeviceManager::FormatEventData
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 1
    functionsReached:
    - min
    - to_string
    - TLVReader::Next
    - TLVReader::GetLength
    - TLVReader::GetType
    - VerifyOrExit
    - TLVReader::GetBytes
    - TLVReader::EnterContainer
    - TLVReader::GetString
    - strlen
    - nl::Weave::DeviceManager::FormatEventData
    - nl::Weave::DeviceManager::WriteEscapedString
    - TLVReader::ExitContainer
    - SuccessOrExit
    - TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: FormatEventData(TLVReader aInReader, std::string & aBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GenericTraitUpdatableDataSink *>
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1103,1
    - Dst: GenericTraitUpdatableDataSink*::ClearVersion
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - aTraitInstance
    - aHandle
    - aContext
    argTypes:
    - void*
    - TraitDataHandle
    - void*
    constantsTouched: []
    func_position:
      end: 1106
      start: 1098
    functionDepth: 0
    functionLinenumber: 1098
    functionLinenumberEnd: 1106
    functionName: nl::Weave::DeviceManager::WdmClient::ClearDataSinkVersion
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - static_cast<GenericTraitUpdatableDataSink *>
    - GenericTraitUpdatableDataSink*::ClearVersion
    linkageType: ''
    returnType: void
    signature: WdmClient::ClearDataSinkVersion(void * aTraitInstance, TraitDataHandle
      aHandle, void * aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<WdmClient *>
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1113,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1116,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1121,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1124,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1125,1
    - Dst: WdmClient*::mGetDataHandle
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1135,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1136,1
    - Dst: WdmClient*::mSinkCatalog::Size
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1142,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1144,1
    - Dst: TraitPath::TraitPath
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1156,1
    - Dst: WdmClient*::mSinkCatalog::PrepareSubscriptionSpecificPathList
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1162,1
    - Dst: WdmClient*::mSinkCatalog::PrepareSubscriptionPathList
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1167,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1170,1
    - Dst: WdmClient*::PrepareLastObservedEventList
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1178,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1179,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1197,1
    - Dst: WdmClient*::mpSubscriptionClient::AbortSubscription
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1198,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1199,1
    - Dst: WdmClient*::mOnComplete::General
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1200,1
    - Dst: WdmClient*::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1202,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1205,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1206,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1209,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1210,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1213,1
    - Dst: mSubscriptionTerminated::mClient::GetPeerNodeId
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1214,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1215,1
    - Dst: DeviceStatus::DeviceStatus
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1216,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1223,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1228,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1234,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1236,1
    - Dst: nl::StatusReportStr
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1237,1
    - Dst: WdmClient*::UpdateFailedPathResults
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1241,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1248,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1249,1
    - Dst: WdmClient*::mpSubscriptionClient::DiscardUpdates
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1250,1
    - Dst: WdmClient*::mOnComplete::FlushUpdate
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1251,1
    - Dst: WdmClient*::mFailedFlushPathStatus::size
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1252,1
    - Dst: WdmClient*::mFailedFlushPathStatus::data
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1252,1
    - Dst: WdmClient*::mFailedFlushPathStatus::clear
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1253,1
    - Dst: WdmClient*::mFailedPaths::clear
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1254,1
    - Dst: WdmClient*::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1256,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1260,1
    - Dst: WdmClient*::mEventStrBuffer::pop_back
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1265,1
    - Dst: WdmClient*::mpWdmEventProcessor::ProcessEvents
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1266,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1270,1
    - Dst: sys_now
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1272,1
    - Dst: WdmClient*::mpSubscriptionClient::AbortSubscription
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1275,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1276,1
    - Dst: WdmClient*::mOnComplete::General
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1277,1
    - Dst: WdmClient*::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1279,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::DefaultEventHandler
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1285,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1292,1
    - Dst: WdmClient*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1296,1
    - Dst: WdmClient*::mpSubscriptionClient::DiscardUpdates
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1302,1
    - Dst: WdmClient*::mFailedFlushPathStatus::clear
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1303,1
    - Dst: WdmClient*::mFailedPaths::clear
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1304,1
    - Dst: WdmClient*::mpSubscriptionClient::AbortSubscription
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1309,1
    - Dst: WdmClient*::mSinkCatalog::Iterate
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1310,1
    - Dst: WdmClient*::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1314,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 139
    argCount: 4
    argNames:
    - aAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - SubscriptionClient::EventID
    - SubscriptionClient::InEventParam
    - SubscriptionClient::OutEventParam
    constantsTouched: []
    func_position:
      end: 1324
      start: 1108
    functionDepth: 1
    functionLinenumber: 1108
    functionLinenumberEnd: 1324
    functionName: nl::Weave::DeviceManager::WdmClient::ClientEventCallback
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - WdmClient*::mSinkCatalog::Iterate
    - TraitPath::TraitPath
    - nl::Weave::Profiles::SubscriptionClient::DefaultEventHandler
    - WdmClient*::mGetDataHandle
    - nl::StatusReportStr
    - WdmClient*::mFailedFlushPathStatus::clear
    - sys_now
    - WdmClient*::mFailedFlushPathStatus::data
    - WdmClient*::mpSubscriptionClient::AbortSubscription
    - WdmClient*::mOnComplete::General
    - WdmClient*::mOnError
    - WdmClient*::mFailedPaths::clear
    - WdmClient*::ClearOpState
    - WdmClient*::mSinkCatalog::PrepareSubscriptionPathList
    - WeaveLogError
    - VerifyOrExit
    - WdmClient*::mOnComplete::FlushUpdate
    - reinterpret_cast<WdmClient *>
    - WeaveLogDetail
    - WdmClient*::mSinkCatalog::Size
    - WdmClient*::mSinkCatalog::PrepareSubscriptionSpecificPathList
    - WdmClient*::mpSubscriptionClient::DiscardUpdates
    - WdmClient*::mFailedFlushPathStatus::size
    - WdmClient*::UpdateFailedPathResults
    - ErrorStr
    - WdmClient*::mEventStrBuffer::pop_back
    - DeviceStatus::DeviceStatus
    - WdmClient*::PrepareLastObservedEventList
    - WdmClient*::mpWdmEventProcessor::ProcessEvents
    - SuccessOrExit
    - mSubscriptionTerminated::mClient::GetPeerNodeId
    linkageType: ''
    returnType: void
    signature: "WdmClient::ClientEventCallback(void * const aAppState, SubscriptionClient::EventID
      aEvent,\n                                    const SubscriptionClient::InEventParam
      & aInParam,\n                                    SubscriptionClient::OutEventParam
      & aOutParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1331,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1335,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1338,1
    - Dst: EnableResubscribe
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1341,1
    - Dst: nl::Weave::DeviceManager::WdmClient::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1345,1
    - Dst: clear
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1346,1
    - Dst: clear
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1347,1
    - Dst: clear
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1349,1
    - Dst: memset
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - apMsgLayer
    - apBinding
    argTypes:
    - WeaveMessageLayer*
    - Binding*
    constantsTouched: []
    func_position:
      end: 1357
      start: 1326
    functionDepth: 1
    functionLinenumber: 1326
    functionLinenumberEnd: 1357
    functionName: nl::Weave::DeviceManager::WdmClient::Init
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - clear
    - VerifyOrExit
    - memset
    - SubscriptionEngine::GetInstance
    - nl::Weave::DeviceManager::WdmClient::ClearOpState
    - SuccessOrExit
    - EnableResubscribe
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WdmClient::Init(WeaveMessageLayer * apMsgLayer, Binding * apBinding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WdmClient::SetNodeId
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1361,1
    - Dst: reset
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1363,1
    - Dst: WdmEventProcessor::WdmEventProcessor
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1363,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1365,1
    - Dst: get
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - aNodeId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1366
      start: 1359
    functionDepth: 1
    functionLinenumber: 1359
    functionLinenumberEnd: 1366
    functionName: nl::Weave::DeviceManager::WdmClient::SetNodeId
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogError
    - get
    - nl::Weave::DeviceManager::WdmClient::SetNodeId
    - reset
    - WdmEventProcessor::WdmEventProcessor
    linkageType: ''
    returnType: void
    signature: WdmClient::SetNodeId(uint64_t aNodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::secondsToMilliseconds
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aTimeoutSec
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1372
      start: 1368
    functionDepth: 1
    functionLinenumber: 1368
    functionLinenumberEnd: 1372
    functionName: nl::Weave::DeviceManager::WdmClient::SetEventFetchingTimeout
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - nl::secondsToMilliseconds
    linkageType: ''
    returnType: void
    signature: WdmClient::SetEventFetchingTimeout(uint32_t aTimeoutSec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WdmClient*::mSinkCatalog::Locate
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1383,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1384,1
    - Dst: TraitDataSink*::GetSchemaEngine
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1386,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1387,1
    - Dst: push_back
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1389,1
    - Dst: back
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1390,1
    - Dst: back
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1391,1
    - Dst: push_back
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1397,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1398,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 6
    argNames:
    - apWdmClient
    - mTraitDataHandle
    - mPropertyPathHandle
    - aReason
    - aStatusProfileId
    - aStatusCode
    argTypes:
    - WdmClient*
    - TraitDataHandle
    - PropertyPathHandle
    - uint32_t
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1406
      start: 1374
    functionDepth: 0
    functionLinenumber: 1374
    functionLinenumberEnd: 1406
    functionName: nl::Weave::DeviceManager::WdmClient::UpdateFailedPathResults
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - TraitDataSink*::GetSchemaEngine
    - WdmClient*::mSinkCatalog::Locate
    - back
    - push_back
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WdmClient::UpdateFailedPathResults(WdmClient * const apWdmClient,
      TraitDataHandle mTraitDataHandle,\n                                               PropertyPathHandle
      mPropertyPathHandle, uint32_t aReason, uint32_t aStatusProfileId,\n                                               uint16_t
      aStatusCode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::TraitSchemaDirectory::GetTraitSchemaEngine
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1414,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1415,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1417,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1419,1
    - Dst: nl::Weave::DeviceManager::WdmClient::GetDataSink
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1419,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1420,1
    - Dst: GenericTraitUpdatableDataSink::GenericTraitUpdatableDataSink
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1422,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1423,1
    - Dst: GetSchemaEngine
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1431,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1432,1
    - Dst: nl::Weave::DeviceManager::WdmClient::SubscribePublisherTrait
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1435,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1436,1
    - Dst: SetSubscriptionClient
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1438,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 5
    argNames:
    - ' aResourceId'
    - aProfileId
    - aInstanceId
    - apPath
    - ' apGenericTraitUpdatableDataSink'
    argTypes:
    - ResourceIdentifier
    - uint32_t
    - uint64_t
    - char*
    - GenericTraitUpdatableDataSink*
    constantsTouched: []
    func_position:
      end: 1443
      start: 1408
    functionDepth: 1
    functionLinenumber: 1408
    functionLinenumberEnd: 1443
    functionName: nl::Weave::DeviceManager::WdmClient::NewDataSink
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - GenericTraitUpdatableDataSink::GenericTraitUpdatableDataSink
    - SetSubscriptionClient
    - nl::Weave::DeviceManager::TraitSchemaDirectory::GetTraitSchemaEngine
    - nl::Weave::DeviceManager::WdmClient::GetDataSink
    - VerifyOrExit
    - GetSchemaEngine
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveLogFunctError
    - nl::Weave::DeviceManager::WdmClient::SubscribePublisherTrait
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WdmClient::NewDataSink(const ResourceIdentifier & aResourceId, uint32_t
      aProfileId, uint64_t aInstanceId,\n                                   const
      char * apPath, GenericTraitUpdatableDataSink *& apGenericTraitUpdatableDataSink)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Locate
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1451,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1452,1
    - Dst: static_cast<GenericTraitUpdatableDataSink *>
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - ' aResourceId'
    - aProfileId
    - aInstanceId
    - ' apGenericTraitUpdatableDataSink'
    argTypes:
    - ResourceIdentifier
    - uint32_t
    - uint64_t
    - GenericTraitUpdatableDataSink*
    constantsTouched: []
    func_position:
      end: 1458
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1458
    functionName: nl::Weave::DeviceManager::WdmClient::GetDataSink
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 1
    functionsReached:
    - static_cast<GenericTraitUpdatableDataSink *>
    - SuccessOrExit
    - Locate
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WdmClient::GetDataSink(const ResourceIdentifier & aResourceId, uint32_t
      aProfileId, uint64_t aInstanceId,\n                                   GenericTraitUpdatableDataSink
      *& apGenericTraitUpdatableDataSink)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1462,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1462,1
    - Dst: clear
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1470,1
    - Dst: clear
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1471,1
    - Dst: nl::Weave::DeviceManager::WdmClient::FlushUpdate
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - apAppReqState
    - onComplete
    - onError
    argTypes:
    - void*
    - DMFlushUpdateCompleteFunct
    - DMErrorFunct
    constantsTouched: []
    func_position:
      end: 1477
      start: 1460
    functionDepth: 1
    functionLinenumber: 1460
    functionLinenumberEnd: 1477
    functionName: nl::Weave::DeviceManager::WdmClient::FlushUpdate
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogError
    - nl::Weave::DeviceManager::WdmClient::FlushUpdate
    - VerifyOrExit
    - clear
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WdmClient::FlushUpdate(void * apAppReqState, DMFlushUpdateCompleteFunct
      onComplete, DMErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1482,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1482,1
    - Dst: Iterate
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1484,1
    - Dst: nl::Weave::DeviceManager::WdmClient::RefreshData
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - apAppReqState
    - onComplete
    - onError
    - getDataHandleCb
    - aFetchEvents
    argTypes:
    - void*
    - DMCompleteFunct
    - DMErrorFunct
    - GetDataHandleFunct
    - bool
    constantsTouched: []
    func_position:
      end: 1490
      start: 1479
    functionDepth: 1
    functionLinenumber: 1479
    functionLinenumberEnd: 1490
    functionName: nl::Weave::DeviceManager::WdmClient::RefreshData
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogError
    - nl::Weave::DeviceManager::WdmClient::RefreshData
    - VerifyOrExit
    - Iterate
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WdmClient::RefreshData(void * apAppReqState, DMCompleteFunct onComplete,
      DMErrorFunct onError,\n                                   GetDataHandleFunct
      getDataHandleCb, bool aFetchEvents)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1495,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1495,1
    - Dst: InitiateSubscription
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 6
    argNames:
    - apAppReqState
    - apContext
    - onComplete
    - onError
    - getDataHandleCb
    - aFetchEvents
    argTypes:
    - void*
    - void*
    - DMCompleteFunct
    - DMErrorFunct
    - GetDataHandleFunct
    - bool
    constantsTouched: []
    func_position:
      end: 1509
      start: 1492
    functionDepth: 0
    functionLinenumber: 1492
    functionLinenumberEnd: 1509
    functionName: nl::Weave::DeviceManager::WdmClient::RefreshData
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogError
    - VerifyOrExit
    - InitiateSubscription
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WdmClient::RefreshData(void * apAppReqState, void * apContext, DMCompleteFunct
      onComplete, DMErrorFunct onError,\n                                   GetDataHandleFunct
      getDataHandleCb, bool aFetchEvents)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1511
    functionDepth: 0
    functionLinenumber: 1511
    functionLinenumberEnd: 1514
    functionName: nl::Weave::DeviceManager::WdmClient::ClearOpState
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WdmClient::ClearOpState()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' aResourceId'
    - ' aInstanceId'
    - aBasePathHandle
    - apDataSink
    argTypes:
    - ResourceIdentifier
    - uint64_t
    - PropertyPathHandle
    - TraitDataSink*
    constantsTouched: []
    func_position:
      end: 1521
      start: 1516
    functionDepth: 0
    functionLinenumber: 1516
    functionLinenumberEnd: 1521
    functionName: nl::Weave::DeviceManager::WdmClient::SubscribePublisherTrait
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 1
    functionsReached:
    - Add
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WdmClient::SubscribePublisherTrait(const ResourceIdentifier & aResourceId,
      const uint64_t & aInstanceId,\n                                               PropertyPathHandle
      aBasePathHandle, TraitDataSink * apDataSink)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Remove
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apDataSink
    argTypes:
    - TraitDataSink*
    constantsTouched: []
    func_position:
      end: 1526
      start: 1523
    functionDepth: 0
    functionLinenumber: 1523
    functionLinenumberEnd: 1526
    functionName: nl::Weave::DeviceManager::WdmClient::UnsubscribePublisherTrait
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - Remove
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WdmClient::UnsubscribePublisherTrait(TraitDataSink * apDataSink)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1530,1
    - Dst: c_str
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1530,1
    - Dst: size
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - apBytesData
    argTypes:
    - BytesData*
    constantsTouched: []
    func_position:
      end: 1535
      start: 1528
    functionDepth: 0
    functionLinenumber: 1528
    functionLinenumberEnd: 1535
    functionName: nl::Weave::DeviceManager::WdmClient::GetEvents
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const uint8_t *>
    - size
    - c_str
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WdmClient::GetEvents(BytesData * apBytesData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1541,1
    - Dst: to_string
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1550,1
    - Dst: to_string
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1552,1
    - Dst: to_string
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1554,1
    - Dst: to_string
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1557,1
    - Dst: to_string
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1559,1
    - Dst: to_string
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1561,1
    - Dst: to_string
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1563,1
    - Dst: to_string
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1565,1
    - Dst: to_string
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1567,1
    - Dst: to_string
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1569,1
    - Dst: to_string
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1571,1
    - Dst: to_string
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1574,1
    - Dst: to_string
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1576,1
    - Dst: to_string
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1579,1
    - Dst: to_string
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1581,1
    - Dst: to_string
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1583,1
    - Dst: FormatEventData
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1587,1
    - Dst: static_cast<int>
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1591,1
    - Dst: static_cast<int>
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1591,1
    - Dst: static_cast<int>
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1593,1
    - Dst: static_cast<int>
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1593,1
    - Dst: static_cast<int>
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1595,1
    - Dst: static_cast<int>
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 2
    argNames:
    - inReader
    - ' inEventHeader'
    argTypes:
    - nl::Weave::TLV::TLVReader
    - EventProcessor::EventHeader
    constantsTouched: []
    func_position:
      end: 1599
      start: 1537
    functionDepth: 0
    functionLinenumber: 1537
    functionLinenumberEnd: 1599
    functionName: nl::Weave::DeviceManager::WdmClient::ProcessEvent
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - FormatEventData
    - size
    - static_cast<int>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WdmClient::ProcessEvent(nl::Weave::TLV::TLVReader inReader, const EventProcessor::EventHeader
      & inEventHeader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sys_now
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1612,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' aEventListLen'
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1616
      start: 1601
    functionDepth: 0
    functionLinenumber: 1601
    functionLinenumberEnd: 1616
    functionName: nl::Weave::DeviceManager::WdmClient::PrepareLastObservedEventList
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached:
    - sys_now
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WdmClient::PrepareLastObservedEventList(uint32_t & aEventListLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - aNodeId
    - aWdmClient
    argTypes:
    - uint64_t
    - WdmClient*
    constantsTouched: []
    func_position:
      end: 1621
      start: 1618
    functionDepth: 0
    functionLinenumber: 1618
    functionLinenumberEnd: 1621
    functionName: nl::Weave::DeviceManager::WdmEventProcessor::WdmEventProcessor
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WdmEventProcessor::WdmEventProcessor(uint64_t aNodeId, WdmClient *
      aWdmClient)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WdmEventProcessor::ProcessEvent
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp:1627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inReader
    - ' inClient'
    - ' inEventHeader'
    argTypes:
    - nl::Weave::TLV::TLVReader
    - nl::Weave::Profiles::DataManagement::SubscriptionClient
    - EventHeader
    constantsTouched: []
    func_position:
      end: 1628
      start: 1623
    functionDepth: 1
    functionLinenumber: 1623
    functionLinenumberEnd: 1628
    functionName: nl::Weave::DeviceManager::WdmEventProcessor::ProcessEvent
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::DeviceManager::WdmEventProcessor::ProcessEvent
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WdmEventProcessor::ProcessEvent(nl::Weave::TLV::TLVReader inReader,\n
      \                                           nl::Weave::Profiles::DataManagement::SubscriptionClient
      & inClient,\n                                            const EventHeader &
      inEventHeader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' inEventHeader'
    argTypes:
    - EventHeader
    constantsTouched: []
    func_position:
      end: 1634
      start: 1630
    functionDepth: 0
    functionLinenumber: 1630
    functionLinenumberEnd: 1634
    functionName: nl::Weave::DeviceManager::WdmEventProcessor::GapDetected
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WdmEventProcessor::GapDetected(const EventHeader & inEventHeader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::BytesData
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.h:59,1
    - Dst: mpDataBuf
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.h:59,1
    - Dst: mDataLen
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.h:59,1
    - Dst: mpMsgBuf
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.h:59,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.h:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 73
    functionName: nl::Weave::DeviceManager::BytesData
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.h
    functionUses: 1
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - mDataLen
    - mpDataBuf
    - nl::Weave::DeviceManager::BytesData
    - mpMsgBuf
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: BytesData
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericTraitUpdatableDataSink
      Src: /src/openweave-core/src/device-manager/WeaveDataManagementClient.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 166
    functionName: nl::Weave::Profiles::DataManagement::TraitUpdatableDataSink
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.h
    functionUses: 0
    functionsReached:
    - GenericTraitUpdatableDataSink
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: nl::Weave::Profiles::DataManagement::TraitUpdatableDataSink
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 266
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 266
    functionName: nl::Weave::DeviceManager::WdmClient
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WdmClient
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 272
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 272
    functionName: ~WdmEventProcessor()
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDataManagementClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~WdmEventProcessor()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::WeaveDeviceManager
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::WeaveDeviceManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:106,1
    - Dst: secondsToMilliseconds
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:118,1
    - Dst: nl::Inet::IPAddress::MakeIPv6WellKnownMulticast
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 60
    argCount: 2
    argNames:
    - exchangeMgr
    - securityMgr
    argTypes:
    - WeaveExchangeManager*
    - WeaveSecurityManager*
    constantsTouched: []
    func_position:
      end: 159
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 159
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::Init
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::MakeIPv6WellKnownMulticast
    - secondsToMilliseconds
    - memset
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::Init(WeaveExchangeManager *exchangeMgr, WeaveSecurityManager
      *securityMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:169,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:175,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:181,1
    - Dst: Abort
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:187,1
    - Dst: CancelTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:193,1
    - Dst: CancelTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:194,1
    - Dst: CancelTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:195,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::CancelConnectionMonitorTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:196,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::CancelRemotePassiveRendezvousTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:197,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:200,1
    - Dst: free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:204,1
    - Dst: memset
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:216,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 221
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::Shutdown
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::CancelConnectionMonitorTimer
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::DeviceManager::WeaveDeviceManager::CancelRemotePassiveRendezvousTimer
    - Abort
    - memset
    - free
    - nl::Weave::DeviceManager::WeaveDeviceManager::Close
    - CancelTimer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' deviceId'
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::GetDeviceId
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::GetDeviceId(uint64_t& deviceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' deviceAddr'
    argTypes:
    - IPAddress
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::GetDeviceAddress
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::GetDeviceAddress(IPAddress& deviceAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:247,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:254,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::InitiateConnection
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:260,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - deviceId
    - deviceAddr
    - appReqState
    - onComplete
    - onError
    argTypes:
    - uint64_t
    - IPAddress
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 265
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 265
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::ConnectDevice
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - Reset
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
    - nl::Weave::DeviceManager::WeaveDeviceManager::InitiateConnection
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::ConnectDevice(uint64_t deviceId, IPAddress deviceAddr,\n
      \       void* appReqState, CompleteFunct onComplete, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:279,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:286,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:287,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::InitiateConnection
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:292,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:296,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 6
    argNames:
    - deviceId
    - deviceAddr
    - pairingCode
    - appReqState
    - onComplete
    - onError
    argTypes:
    - uint64_t
    - IPAddress
    - char*
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 298
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 298
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::ConnectDevice
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
    - nl::Weave::DeviceManager::WeaveDeviceManager::InitiateConnection
    - Reset
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::ConnectDevice(uint64_t deviceId, IPAddress deviceAddr,
      const char *pairingCode,\n        void* appReqState, CompleteFunct onComplete,
      ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:312,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:321,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:322,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:327,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::InitiateConnection
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:333,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:337,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 7
    argNames:
    - deviceId
    - deviceAddr
    - accessToken
    - accessTokenLen
    - appReqState
    - onComplete
    - onError
    argTypes:
    - uint64_t
    - IPAddress
    - uint8_t*
    - uint32_t
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 339
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 339
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::ConnectDevice
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
    - nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
    - nl::Weave::DeviceManager::WeaveDeviceManager::InitiateConnection
    - Reset
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::ConnectDevice(uint64_t deviceId, IPAddress deviceAddr,
      const uint8_t *accessToken, uint32_t accessTokenLen,\n        void* appReqState,
      CompleteFunct onComplete, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:346,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::InitiateDeviceEnumeration
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:356,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - appReqState
    - deviceCriteria
    - onResponse
    - onError
    argTypes:
    - void*
    - IdentifyDeviceCriteria
    - DeviceEnumerationResponseFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 365
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 365
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::StartDeviceEnumeration
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - nl::Weave::DeviceManager::WeaveDeviceManager::InitiateDeviceEnumeration
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::StartDeviceEnumeration(void* appReqState, const
      IdentifyDeviceCriteria &deviceCriteria,\n        DeviceEnumerationResponseFunct
      onResponse, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - reqMsg
    argTypes:
    - IdentifyRequestMessage
    constantsTouched: []
    func_position:
      end: 380
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 380
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::ValidateIdentifyRequest
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::ValidateIdentifyRequest(const IdentifyRequestMessage
      &reqMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:389,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::EnableUDP
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:393,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:394,1
    - Dst: IsProductWildcard
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:402,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ValidateIdentifyRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:412,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:413,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:416,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:417,1
    - Dst: IdentifyRequestMessage::Encode
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:419,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:420,1
    - Dst: NewContext
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:425,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:426,1
    - Dst: GetPeerDescription
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:433,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:434,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:456,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:459,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:459,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:460,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:464,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:467,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:468,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:473,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 477
      start: 382
    functionDepth: 3
    functionLinenumber: 382
    functionLinenumberEnd: 477
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::InitiateDeviceEnumeration
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ValidateIdentifyRequest
    - SendMessage
    - IsProductWildcard
    - NewContext
    - nl::Weave::System::PacketBuffer::Free
    - GetPeerDescription
    - WeaveLogProgress
    - VerifyOrExit
    - IdentifyRequestMessage::Encode
    - StartTimer
    - nl::Weave::DeviceManager::WeaveDeviceManager::EnableUDP
    - SuccessOrExit
    - nl::Weave::System::MapErrorPOSIX
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::InitiateDeviceEnumeration()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:483,1
    - Dst: CancelTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:485,1
    - Dst: free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:489,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:496,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:501,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:501,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 503
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 503
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::StopDeviceEnumeration
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - WeaveLogError
    - VerifyOrExit
    - free
    - CancelTimer
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::StopDeviceEnumeration()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:520,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::InitiateConnection
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:530,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:532,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - deviceCriteria
    - appReqState
    - onComplete
    - onError
    argTypes:
    - IdentifyDeviceCriteria
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 535
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 535
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::RendezvousDevice
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
    - nl::Weave::DeviceManager::WeaveDeviceManager::InitiateConnection
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::RendezvousDevice(const IdentifyDeviceCriteria
      &deviceCriteria,\n        void* appReqState, CompleteFunct onComplete, ErrorFunct
      onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::RendezvousDevice
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - pairingCode
    - appReqState
    - onComplete
    - onError
    argTypes:
    - char*
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 547
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 547
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::RendezvousDevice
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::RendezvousDevice
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::RendezvousDevice(const char *pairingCode, void*
      appReqState,\n        CompleteFunct onComplete, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:563,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:564,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::InitiateConnection
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:574,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:578,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 5
    argNames:
    - pairingCode
    - deviceCriteria
    - appReqState
    - onComplete
    - onError
    argTypes:
    - char*
    - IdentifyDeviceCriteria
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 580
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 580
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::RendezvousDevice
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
    - nl::Weave::DeviceManager::WeaveDeviceManager::InitiateConnection
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::RendezvousDevice(const char *pairingCode, const
      IdentifyDeviceCriteria &deviceCriteria,\n        void* appReqState, CompleteFunct
      onComplete, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:599,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:600,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:605,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::InitiateConnection
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:616,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:620,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 6
    argNames:
    - accessToken
    - accessTokenLen
    - deviceCriteria
    - appReqState
    - onComplete
    - onError
    argTypes:
    - uint8_t*
    - uint32_t
    - IdentifyDeviceCriteria
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 622
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 622
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::RendezvousDevice
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
    - nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
    - nl::Weave::DeviceManager::WeaveDeviceManager::InitiateConnection
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::RendezvousDevice(const uint8_t *accessToken, uint32_t
      accessTokenLen,\n        const IdentifyDeviceCriteria &deviceCriteria,\n        void*
      appReqState, CompleteFunct onComplete, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:632,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:640,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SetUnsecuredConnectionHandler
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:648,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:649,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - appReqState
    - onComplete
    - onError
    argTypes:
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 661
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 661
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::PassiveRendezvousDevice
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::SetUnsecuredConnectionHandler
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
    - ExitNow
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::PassiveRendezvousDevice(void* appReqState, CompleteFunct
      onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:675,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:676,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SetUnsecuredConnectionHandler
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:685,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:686,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - pairingCode
    - appReqState
    - onComplete
    - onError
    - onStart
    argTypes:
    - char*
    - void*
    - CompleteFunct
    - ErrorFunct
    - StartFunct
    constantsTouched: []
    func_position:
      end: 698
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 698
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::PassiveRendezvousDevice
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
    - nl::Weave::DeviceManager::WeaveDeviceManager::SetUnsecuredConnectionHandler
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::PassiveRendezvousDevice(const char *pairingCode,
      void* appReqState, CompleteFunct onComplete, ErrorFunct onError, StartFunct
      onStart)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:714,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:715,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:720,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SetUnsecuredConnectionHandler
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:729,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:730,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - accessToken
    - accessTokenLen
    - appReqState
    - onComplete
    - onError
    argTypes:
    - uint8_t*
    - uint32_t
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 742
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 742
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::PassiveRendezvousDevice
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::SetUnsecuredConnectionHandler
    - nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::PassiveRendezvousDevice(const uint8_t *accessToken,
      uint32_t accessTokenLen, void* appReqState, CompleteFunct onComplete, ErrorFunct
      onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:754,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:758,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::InitiateBleConnection
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:760,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - connObj
    - appReqState
    - onComplete
    - onError
    - autoClose
    argTypes:
    - BLE_CONNECTION_OBJECT
    - void*
    - CompleteFunct
    - ErrorFunct
    - bool
    constantsTouched: []
    func_position:
      end: 764
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 764
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::ConnectBle
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::InitiateBleConnection
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::ConnectBle(BLE_CONNECTION_OBJECT connObj,\n                                           void
      *appReqState, CompleteFunct onComplete, ErrorFunct onError, bool autoClose)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:775,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:779,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:780,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::InitiateBleConnection
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:782,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 6
    argNames:
    - connObj
    - pairingCode
    - appReqState
    - onComplete
    - onError
    - autoClose
    argTypes:
    - BLE_CONNECTION_OBJECT
    - char*
    - void*
    - CompleteFunct
    - ErrorFunct
    - bool
    constantsTouched: []
    func_position:
      end: 786
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 786
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::ConnectBle
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
    - nl::Weave::DeviceManager::WeaveDeviceManager::InitiateBleConnection
    - ExitNow
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::ConnectBle(BLE_CONNECTION_OBJECT connObj, const
      char *pairingCode,\n                                           void *appReqState,
      CompleteFunct onComplete, ErrorFunct onError, bool autoClose)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:797,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:803,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:804,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:809,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::InitiateBleConnection
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:812,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 7
    argNames:
    - connObj
    - accessToken
    - accessTokenLen
    - appReqState
    - onComplete
    - onError
    - autoClose
    argTypes:
    - BLE_CONNECTION_OBJECT
    - uint8_t*
    - uint32_t
    - void*
    - CompleteFunct
    - ErrorFunct
    - bool
    constantsTouched: []
    func_position:
      end: 816
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 816
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::ConnectBle
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
    - nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
    - ExitNow
    - nl::Weave::DeviceManager::WeaveDeviceManager::InitiateBleConnection
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::ConnectBle(BLE_CONNECTION_OBJECT connObj, const
      uint8_t *accessToken,\n                                           uint32_t accessTokenLen,
      void *appReqState, CompleteFunct onComplete, ErrorFunct onError, bool autoClose)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:827,1
    - Dst: NewConnection
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:846,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:847,1
    - Dst: WeaveConnection*::ConnectBle
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:853,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:854,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 5
    argNames:
    - connObj
    - appReqState
    - onComplete
    - onError
    - autoClose
    argTypes:
    - BLE_CONNECTION_OBJECT
    - void*
    - CompleteFunct
    - ErrorFunct
    - bool
    constantsTouched: []
    func_position:
      end: 865
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 865
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::InitiateBleConnection
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - VerifyOrExit
    - Reset
    - SuccessOrExit
    - NewConnection
    - WeaveConnection*::ConnectBle
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::InitiateBleConnection(BLE_CONNECTION_OBJECT connObj,\n
      \                                                     void *appReqState, CompleteFunct
      onComplete, ErrorFunct onError, bool autoClose)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SaveRemoteDeviceAuthInfo
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:878,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:879,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::DoRemotePassiveRendezvous
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 8
    argNames:
    - rendezvousDeviceAddr
    - accessToken
    - accessTokenLen
    - rendezvousTimeoutSec
    - inactivityTimeoutSec
    - appReqState
    - onComplete
    - onError
    argTypes:
    - IPAddress
    - uint8_t*
    - uint32_t
    - uint16_t
    - uint16_t
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 886
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 886
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::RemotePassiveRendezvous
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::DoRemotePassiveRendezvous
    - nl::Weave::DeviceManager::WeaveDeviceManager::SaveRemoteDeviceAuthInfo
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::RemotePassiveRendezvous(IPAddress rendezvousDeviceAddr,
      const uint8_t *accessToken,\n        uint32_t accessTokenLen, const uint16_t
      rendezvousTimeoutSec, const uint16_t inactivityTimeoutSec,\n        void *appReqState,
      CompleteFunct onComplete, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SaveRemoteDeviceAuthInfo
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:897,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:898,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::DoRemotePassiveRendezvous
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 7
    argNames:
    - rendezvousDeviceAddr
    - pairingCode
    - rendezvousTimeoutSec
    - inactivityTimeoutSec
    - appReqState
    - onComplete
    - onError
    argTypes:
    - IPAddress
    - char*
    - uint16_t
    - uint16_t
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 905
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 905
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::RemotePassiveRendezvous
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::DoRemotePassiveRendezvous
    - nl::Weave::DeviceManager::WeaveDeviceManager::SaveRemoteDeviceAuthInfo
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::RemotePassiveRendezvous(IPAddress rendezvousDeviceAddr,
      const char *pairingCode,\n        const uint16_t rendezvousTimeoutSec, const
      uint16_t inactivityTimeoutSec, void *appReqState,\n        CompleteFunct onComplete,
      ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SaveRemoteDeviceAuthInfo
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:916,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:917,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::DoRemotePassiveRendezvous
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - rendezvousDeviceAddr
    - rendezvousTimeoutSec
    - inactivityTimeoutSec
    - appReqState
    - onComplete
    - onError
    argTypes:
    - IPAddress
    - uint16_t
    - uint16_t
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 924
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 924
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::RemotePassiveRendezvous
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::DoRemotePassiveRendezvous
    - nl::Weave::DeviceManager::WeaveDeviceManager::SaveRemoteDeviceAuthInfo
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::RemotePassiveRendezvous(IPAddress rendezvousDeviceAddr,\n
      \       const uint16_t rendezvousTimeoutSec, const uint16_t inactivityTimeoutSec,
      void *appReqState,\n        CompleteFunct onComplete, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:937,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:938,1
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:938,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:940,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:941,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:949,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:953,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:956,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:962,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:966,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:969,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:979,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:980,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:982,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:983,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:984,1
    - Dst: IPAddress::WriteAddress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:987,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:990,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::StartRemotePassiveRendezvousTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1001,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1002,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1005,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1006,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1009,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1013,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1017,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1017,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::CancelRemotePassiveRendezvous
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1021,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 54
    argCount: 6
    argNames:
    - rendezvousDeviceAddr
    - rendezvousTimeoutSec
    - inactivityTimeoutSec
    - appReqState
    - onComplete
    - onError
    argTypes:
    - IPAddress
    - uint16_t
    - uint16_t
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1025
      start: 926
    functionDepth: 3
    functionLinenumber: 926
    functionLinenumberEnd: 1025
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::DoRemotePassiveRendezvous
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 3
    functionsReached:
    - WeaveLogError
    - PacketBuffer*::SetDataLength
    - nl::Weave::Encoding::LittleEndian::Write16
    - nl::Weave::System::PacketBuffer::Free
    - WeaveLogProgress
    - VerifyOrExit
    - ExitNow
    - nl::Weave::DeviceManager::WeaveDeviceManager::StartRemotePassiveRendezvousTimer
    - SuccessOrExit
    - WeaveLogDetail
    - IPAddress::ToString
    - PacketBuffer*::Start
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::DeviceManager::WeaveDeviceManager::CancelRemotePassiveRendezvous
    - IPAddress::WriteAddress
    - nl::ErrorStr
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::DoRemotePassiveRendezvous(IPAddress rendezvousDeviceAddr,\n
      \       const uint16_t rendezvousTimeoutSec, const uint16_t inactivityTimeoutSec,
      void *appReqState,\n        CompleteFunct onComplete, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1037,1
    - Dst: malloc
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1043,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1044,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1027
    functionDepth: 1
    functionLinenumber: 1027
    functionLinenumberEnd: 1049
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::SaveAssistingDeviceConnectionInfo
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - malloc
    - VerifyOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::SaveAssistingDeviceConnectionInfo()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1051
    functionDepth: 0
    functionLinenumber: 1051
    functionLinenumberEnd: 1057
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::RestoreAssistingDeviceAddressInfo
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::RestoreAssistingDeviceAddressInfo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1065,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1066
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::RestoreAssistingDeviceAuthInfo
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
    - static_cast<const uint8_t *>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::RestoreAssistingDeviceAuthInfo()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1068
    functionDepth: 0
    functionLinenumber: 1068
    functionLinenumberEnd: 1076
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::ResetConnectionInfo
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::ResetConnectionInfo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::HandleRemotePassiveRendezvousReconnectComplete
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - devMgr
    - appReqState
    argTypes:
    - WeaveDeviceManager*
    - void*
    constantsTouched: []
    func_position:
      end: 1081
      start: 1078
    functionDepth: 0
    functionLinenumber: 1078
    functionLinenumberEnd: 1081
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleAssistingDeviceReconnectCompleteEntry
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::HandleRemotePassiveRendezvousReconnectComplete
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::HandleAssistingDeviceReconnectCompleteEntry(WeaveDeviceManager
      *devMgr, void *appReqState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::RemotePassiveRendezvous
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1085,1
    - Dst: static_cast<const char*>
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1085,1
    - Dst: mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1091,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1083
    functionDepth: 2
    functionLinenumber: 1083
    functionLinenumberEnd: 1093
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleRemotePassiveRendezvousReconnectComplete
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const char*>
    - nl::Weave::DeviceManager::WeaveDeviceManager::RemotePassiveRendezvous
    - mOnError
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::HandleRemotePassiveRendezvousReconnectComplete()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::RestoreAssistingDeviceAddressInfo
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1104,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::RestoreAssistingDeviceAuthInfo
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1107,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1108,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1114,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ConnectDevice
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1115,1
    - Dst: static_cast<const char *>
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1115,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1120,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ConnectDevice
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1121,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1121,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1126,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ConnectDevice
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1095
    functionDepth: 2
    functionLinenumber: 1095
    functionLinenumberEnd: 1138
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::StartReconnectToAssistingDevice
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const char *>
    - static_cast<const uint8_t *>
    - nl::Weave::DeviceManager::WeaveDeviceManager::RestoreAssistingDeviceAddressInfo
    - WeaveLogProgress
    - nl::Weave::DeviceManager::WeaveDeviceManager::RestoreAssistingDeviceAuthInfo
    - SuccessOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::ConnectDevice
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::StartReconnectToAssistingDevice()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1143,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1146,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1149,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::CancelRemotePassiveRendezvousTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1153
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::CancelRemotePassiveRendezvous
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::CancelRemotePassiveRendezvousTimer
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::CancelRemotePassiveRendezvous()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1165,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::InitiateConnection
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1173,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1175,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - appReqState
    - onComplete
    - onError
    argTypes:
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1178
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1178
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::ReconnectDevice
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - Reset
    - nl::Weave::DeviceManager::WeaveDeviceManager::InitiateConnection
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::ReconnectDevice(void* appReqState, CompleteFunct
      onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1189,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1191,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1192,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1194,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1195,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1196,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1197,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::CancelConnectionMonitorTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1204,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1209,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1215,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 5
    argNames:
    - interval
    - timeout
    - appReqState
    - onComplete
    - onError
    argTypes:
    - uint16_t
    - uint16_t
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1219
      start: 1180
    functionDepth: 3
    functionLinenumber: 1180
    functionLinenumberEnd: 1219
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::EnableConnectionMonitor
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::CancelConnectionMonitorTimer
    - PacketBuffer*::SetDataLength
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - nl::Weave::Encoding::LittleEndian::Write16
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - PacketBuffer*::Start
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::EnableConnectionMonitor(uint16_t interval, uint16_t
      timeout, void* appReqState, CompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1229,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::CancelConnectionMonitorTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1231,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1234,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1235,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1242,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1248,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - appReqState
    - onComplete
    - onError
    argTypes:
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1252
      start: 1221
    functionDepth: 3
    functionLinenumber: 1221
    functionLinenumberEnd: 1252
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::DisableConnectionMonitor
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::CancelConnectionMonitorTimer
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::DisableConnectionMonitor(void* appReqState, CompleteFunct
      onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1254
    functionDepth: 1
    functionLinenumber: 1254
    functionLinenumberEnd: 1257
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::Close
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::Close
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::CancelRemotePassiveRendezvous
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1264,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::CloseDeviceConnection
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1267,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearUnsecuredConnectionHandler
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1270,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1272,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - graceful
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1277
      start: 1259
    functionDepth: 2
    functionLinenumber: 1259
    functionLinenumberEnd: 1277
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::Close
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::CloseDeviceConnection
    - WeaveLogProgress
    - nl::Weave::DeviceManager::WeaveDeviceManager::CancelRemotePassiveRendezvous
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearUnsecuredConnectionHandler
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::Close(bool graceful)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::CloseDeviceConnection
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1279
    functionDepth: 1
    functionLinenumber: 1279
    functionLinenumberEnd: 1282
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::CloseDeviceConnection
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::CloseDeviceConnection
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::CloseDeviceConnection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1286,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1290,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1297,1
    - Dst: Abort
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1303,1
    - Dst: CancelTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1309,1
    - Dst: CancelTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1310,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::CancelConnectionMonitorTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1311,1
    - Dst: free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1336,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - graceful
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1341
      start: 1284
    functionDepth: 2
    functionLinenumber: 1284
    functionLinenumberEnd: 1341
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::CloseDeviceConnection
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - nl::Weave::DeviceManager::WeaveDeviceManager::CancelConnectionMonitorTimer
    - WeaveLogProgress
    - Abort
    - free
    - nl::Weave::DeviceManager::WeaveDeviceManager::Close
    - CancelTimer
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::CloseDeviceConnection(bool graceful)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1343
    functionDepth: 0
    functionLinenumber: 1343
    functionLinenumberEnd: 1346
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::IsConnected
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveDeviceManager::IsConnected() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - onConnecionClosedFunc
    - onConnecionClosedAppReq
    argTypes:
    - ConnectionClosedFunc
    - void*
    constantsTouched: []
    func_position:
      end: 1352
      start: 1348
    functionDepth: 0
    functionLinenumber: 1348
    functionLinenumberEnd: 1352
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::SetConnectionClosedCallback
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::SetConnectionClosedCallback(ConnectionClosedFunc
      onConnecionClosedFunc, void *onConnecionClosedAppReq)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1363,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1370,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1371,1
    - Dst: IdentifyRequestMessage::Encode
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1373,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1374,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1381,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1387,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1389,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - appReqState
    - onComplete
    - onError
    argTypes:
    - void*
    - IdentifyDeviceCompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1391
      start: 1354
    functionDepth: 3
    functionLinenumber: 1354
    functionLinenumberEnd: 1391
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::IdentifyDevice
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - IdentifyRequestMessage::Encode
    - SuccessOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::IdentifyDevice(void* appReqState, IdentifyDeviceCompleteFunct
      onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1402,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1404,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1405,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1407,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1408,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1408,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1409,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1410,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1419,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1424,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1430,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1432,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 5
    argNames:
    - pairingToken
    - pairingTokenLen
    - appReqState
    - onComplete
    - onError
    argTypes:
    - uint8_t*
    - uint32_t
    - void*
    - PairTokenCompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1434
      start: 1393
    functionDepth: 3
    functionLinenumber: 1393
    functionLinenumberEnd: 1434
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::PairToken
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - PacketBuffer*::SetDataLength
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - memcpy
    - PacketBuffer*::Start
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::PairToken(const uint8_t *pairingToken, uint32_t
      pairingTokenLen, void* appReqState, PairTokenCompleteFunct onComplete, ErrorFunct
      onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1444,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1446,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1447,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1454,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1460,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1462,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - appReqState
    - onComplete
    - onError
    argTypes:
    - void*
    - UnpairTokenCompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1464
      start: 1436
    functionDepth: 3
    functionLinenumber: 1436
    functionLinenumberEnd: 1464
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::UnpairToken
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::UnpairToken(void* appReqState, UnpairTokenCompleteFunct
      onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1475,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1477,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1478,1
    - Dst: Put8
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1480,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1480,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1481,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1488,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1494,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1496,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - networkType
    - appReqState
    - onComplete
    - onError
    argTypes:
    - NetworkType
    - void*
    - NetworkScanCompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1498
      start: 1466
    functionDepth: 3
    functionLinenumber: 1466
    functionLinenumberEnd: 1498
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::ScanNetworks
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - PacketBuffer*::SetDataLength
    - Put8
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - PacketBuffer*::Start
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::ScanNetworks(NetworkType networkType, void* appReqState,\n
      \       NetworkScanCompleteFunct onComplete, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1511,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1513,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1514,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1516,1
    - Dst: NetworkInfo*::Encode
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1518,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1519,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1521,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1522,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1538,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1538,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1539,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1541,1
    - Dst: Start
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1541,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1541,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1541,1
    - Dst: SetDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1542,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1542,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1550,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1556,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1558,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 4
    argNames:
    - netInfo
    - appReqState
    - onComplete
    - onError
    argTypes:
    - NetworkInfo*
    - void*
    - AddNetworkCompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1560
      start: 1500
    functionDepth: 3
    functionLinenumber: 1500
    functionLinenumberEnd: 1560
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::AddNetwork
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - SetDataLength
    - NetworkInfo*::Encode
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - nl::Weave::System::PacketBuffer::Free
    - TLVWriter::Finalize
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - memcpy
    - Start
    - PacketBuffer*::Start
    - SuccessOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - TLVWriter::Init
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::AddNetwork(const NetworkInfo *netInfo, void* appReqState,\n
      \       AddNetworkCompleteFunct onComplete, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1572,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1574,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1575,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1577,1
    - Dst: NetworkInfo*::Encode
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1579,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1580,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1582,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1583,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1590,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1596,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1598,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - netInfo
    - appReqState
    - onComplete
    - onError
    argTypes:
    - NetworkInfo*
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1600
      start: 1562
    functionDepth: 3
    functionLinenumber: 1562
    functionLinenumberEnd: 1600
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::UpdateNetwork
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - NetworkInfo*::Encode
    - nl::Weave::System::PacketBuffer::Free
    - TLVWriter::Finalize
    - VerifyOrExit
    - SuccessOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - TLVWriter::Init
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::UpdateNetwork(const NetworkInfo *netInfo, void*
      appReqState, CompleteFunct onComplete,\n        ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1611,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1613,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1614,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put32
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1616,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1616,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1617,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1624,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1630,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1632,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - networkId
    - appReqState
    - onComplete
    - onError
    argTypes:
    - uint32_t
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1634
      start: 1602
    functionDepth: 3
    functionLinenumber: 1602
    functionLinenumberEnd: 1634
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::RemoveNetwork
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::Encoding::LittleEndian::Put32
    - PacketBuffer*::Start
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::RemoveNetwork(uint32_t networkId, void* appReqState,
      CompleteFunct onComplete,\n        ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1646,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1647,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1648,1
    - Dst: strlen
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1648,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1650,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1651,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1653,1
    - Dst: strdup
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1656,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1657,1
    - Dst: EncodeCameraAuthDataRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1659,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1660,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1667,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1673,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1675,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - nonce
    - appReqState
    - onComplete
    - onError
    argTypes:
    - char*
    - void*
    - GetCameraAuthDataCompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1677
      start: 1636
    functionDepth: 3
    functionLinenumber: 1636
    functionLinenumberEnd: 1677
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::GetCameraAuthData
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - nl::Weave::System::PacketBuffer::Free
    - strdup
    - VerifyOrExit
    - EncodeCameraAuthDataRequest
    - strlen
    - SuccessOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::GetCameraAuthData(const char* nonce, void* appReqState,\n
      \       GetCameraAuthDataCompleteFunct onComplete, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1688,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1690,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1691,1
    - Dst: Put8
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1693,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1693,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1694,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1701,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1707,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1709,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - flags
    - appReqState
    - onComplete
    - onError
    argTypes:
    - uint8_t
    - void*
    - GetNetworksCompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1711
      start: 1679
    functionDepth: 3
    functionLinenumber: 1679
    functionLinenumberEnd: 1711
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::GetNetworks
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - PacketBuffer*::SetDataLength
    - Put8
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - PacketBuffer*::Start
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::GetNetworks(uint8_t flags, void* appReqState,\n
      \       GetNetworksCompleteFunct onComplete, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1722,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1724,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1725,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put32
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1727,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1727,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1728,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1735,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1741,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1743,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - networkId
    - appReqState
    - onComplete
    - onError
    argTypes:
    - uint32_t
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1745
      start: 1713
    functionDepth: 3
    functionLinenumber: 1713
    functionLinenumberEnd: 1745
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::EnableNetwork
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::Encoding::LittleEndian::Put32
    - PacketBuffer*::Start
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::EnableNetwork(uint32_t networkId, void* appReqState,
      CompleteFunct onComplete,\n        ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1756,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1758,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1759,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put32
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1761,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1761,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1762,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1769,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1775,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1777,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - networkId
    - appReqState
    - onComplete
    - onError
    argTypes:
    - uint32_t
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1779
      start: 1747
    functionDepth: 3
    functionLinenumber: 1747
    functionLinenumberEnd: 1779
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::DisableNetwork
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::Encoding::LittleEndian::Put32
    - PacketBuffer*::Start
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::DisableNetwork(uint32_t networkId, void* appReqState,
      CompleteFunct onComplete,\n        ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1790,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1792,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1793,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put32
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1795,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1795,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1796,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1803,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1809,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1811,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - networkId
    - appReqState
    - onComplete
    - onError
    argTypes:
    - uint32_t
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1813
      start: 1781
    functionDepth: 3
    functionLinenumber: 1781
    functionLinenumberEnd: 1813
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::TestNetworkConnectivity
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::Encoding::LittleEndian::Put32
    - PacketBuffer*::Start
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::TestNetworkConnectivity(uint32_t networkId, void*
      appReqState, CompleteFunct onComplete,\n        ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - appReqState
    - onComplete
    - onError
    argTypes:
    - void*
    - GetRendezvousModeCompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1819
      start: 1815
    functionDepth: 0
    functionLinenumber: 1815
    functionLinenumberEnd: 1819
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::GetRendezvousMode
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::GetRendezvousMode(void* appReqState, GetRendezvousModeCompleteFunct
      onComplete,\n        ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1830,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1832,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1833,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put16
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1835,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1835,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1836,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1843,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1849,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1851,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - modeFlags
    - appReqState
    - onComplete
    - onError
    argTypes:
    - uint16_t
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1853
      start: 1821
    functionDepth: 3
    functionLinenumber: 1821
    functionLinenumberEnd: 1853
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::SetRendezvousMode
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - PacketBuffer*::Start
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::Encoding::LittleEndian::Put16
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::SetRendezvousMode(uint16_t modeFlags, void* appReqState,
      CompleteFunct onComplete,\n        ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1864,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1866,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1867,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1874,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1880,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1882,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - appReqState
    - onComplete
    - onError
    argTypes:
    - void*
    - GetWirelessRegulatoryConfigCompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1884
      start: 1855
    functionDepth: 3
    functionLinenumber: 1855
    functionLinenumberEnd: 1884
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::GetWirelessRegulatoryConfig
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::GetWirelessRegulatoryConfig(void* appReqState,
      GetWirelessRegulatoryConfigCompleteFunct onComplete,\n        ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1896,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1898,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1899,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1901,1
    - Dst: WirelessRegConfig*::Encode
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1903,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1904,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1906,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1907,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1914,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1920,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1922,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - regConfig
    - appReqState
    - onComplete
    - onError
    argTypes:
    - WirelessRegConfig*
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1924
      start: 1886
    functionDepth: 3
    functionLinenumber: 1886
    functionLinenumberEnd: 1924
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::SetWirelessRegulatoryConfig
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - nl::Weave::System::PacketBuffer::Free
    - TLVWriter::Finalize
    - VerifyOrExit
    - WirelessRegConfig*::Encode
    - SuccessOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - TLVWriter::Init
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::SetWirelessRegulatoryConfig(const WirelessRegConfig
      *regConfig, void* appReqState,\n        CompleteFunct onComplete, ErrorFunct
      onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1934,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1936,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1937,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1944,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1950,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1952,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - appReqState
    - onComplete
    - onError
    argTypes:
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1954
      start: 1926
    functionDepth: 3
    functionLinenumber: 1926
    functionLinenumberEnd: 1954
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::GetLastNetworkProvisioningResult
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::GetLastNetworkProvisioningResult(void* appReqState,
      CompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1964,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1966,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1967,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1968,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1975,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1981,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1983,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - appReqState
    - onComplete
    - onError
    argTypes:
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1985
      start: 1956
    functionDepth: 3
    functionLinenumber: 1956
    functionLinenumberEnd: 1985
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::CreateFabric
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::CreateFabric(void* appReqState, CompleteFunct onComplete,
      ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1995,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1997,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1998,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:1999,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2006,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2012,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2014,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - appReqState
    - onComplete
    - onError
    argTypes:
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 2016
      start: 1987
    functionDepth: 3
    functionLinenumber: 1987
    functionLinenumberEnd: 2016
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::LeaveFabric
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::LeaveFabric(void* appReqState, CompleteFunct onComplete,
      ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2026,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2028,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2029,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2030,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2037,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2043,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2045,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - appReqState
    - onComplete
    - onError
    argTypes:
    - void*
    - GetFabricConfigCompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 2047
      start: 2018
    functionDepth: 3
    functionLinenumber: 2018
    functionLinenumberEnd: 2047
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::GetFabricConfig
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::GetFabricConfig(void* appReqState, GetFabricConfigCompleteFunct
      onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2058,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2060,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2061,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2062,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2062,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2063,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2063,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2064,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2071,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2077,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2079,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - fabricConfig
    - fabricConfigLen
    - appReqState
    - onComplete
    - onError
    argTypes:
    - uint8_t*
    - uint32_t
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 2081
      start: 2049
    functionDepth: 3
    functionLinenumber: 2049
    functionLinenumberEnd: 2081
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::JoinExistingFabric
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - memcpy
    - PacketBuffer*::Start
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::JoinExistingFabric(const uint8_t *fabricConfig,
      uint32_t fabricConfigLen,\n        void* appReqState, CompleteFunct onComplete,
      ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2097,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2109,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2110,1
    - Dst: RegisterServicePairAccountMessage::Encode
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2112,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2113,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2120,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2126,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 11
    argNames:
    - serviceId
    - accountId
    - serviceConfig
    - serviceConfigLen
    - pairingToken
    - pairingTokenLen
    - pairingInitData
    - pairingInitDataLen
    - appReqState
    - onComplete
    - onError
    argTypes:
    - uint64_t
    - char*
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 2130
      start: 2083
    functionDepth: 3
    functionLinenumber: 2083
    functionLinenumberEnd: 2130
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::RegisterServicePairAccount
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - SuccessOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - RegisterServicePairAccountMessage::Encode
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::RegisterServicePairAccount(uint64_t serviceId,
      const char *accountId,\n                                                           const
      uint8_t *serviceConfig, uint16_t serviceConfigLen,\n                                                           const
      uint8_t *pairingToken, uint16_t pairingTokenLen,\n                                                           const
      uint8_t *pairingInitData, uint16_t pairingInitDataLen,\n                                                           void*
      appReqState, CompleteFunct onComplete, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2142,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2144,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2145,1
    - Dst: UpdateServiceMessage::Encode
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2151,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2152,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2159,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2165,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 6
    argNames:
    - serviceId
    - serviceConfig
    - serviceConfigLen
    - appReqState
    - onComplete
    - onError
    argTypes:
    - uint64_t
    - uint8_t*
    - uint16_t
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 2169
      start: 2132
    functionDepth: 3
    functionLinenumber: 2132
    functionLinenumberEnd: 2169
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::UpdateService
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - UpdateServiceMessage::Encode
    - SuccessOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::UpdateService(uint64_t serviceId, const uint8_t
      *serviceConfig, uint16_t serviceConfigLen,\n                                              void*
      appReqState, CompleteFunct onComplete, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2180,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2182,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2183,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2185,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2186,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2187,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2194,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2200,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - serviceId
    - appReqState
    - onComplete
    - onError
    argTypes:
    - uint64_t
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 2204
      start: 2171
    functionDepth: 3
    functionLinenumber: 2171
    functionLinenumberEnd: 2204
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::UnregisterService
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - PacketBuffer*::SetDataLength
    - nl::Weave::Encoding::LittleEndian::Write64
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - PacketBuffer*::Start
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::UnregisterService(uint64_t serviceId, void* appReqState,
      CompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2215,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2217,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2218,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2220,1
    - Dst: Write8
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2221,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2222,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2223,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2230,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2236,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - armMode
    - failSafeToken
    - appReqState
    - onComplete
    - onError
    argTypes:
    - uint8_t
    - uint32_t
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 2240
      start: 2206
    functionDepth: 3
    functionLinenumber: 2206
    functionLinenumberEnd: 2240
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::ArmFailSafe
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::Free
    - Write8
    - VerifyOrExit
    - PacketBuffer*::Start
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::Encoding::LittleEndian::Write32
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::ArmFailSafe(uint8_t armMode, uint32_t failSafeToken,
      void* appReqState, CompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2250,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2252,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2253,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2255,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2262,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2268,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - appReqState
    - onComplete
    - onError
    argTypes:
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 2272
      start: 2242
    functionDepth: 3
    functionLinenumber: 2242
    functionLinenumberEnd: 2272
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::DisarmFailSafe
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::DisarmFailSafe(void* appReqState, CompleteFunct
      onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2283,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2285,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2286,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2288,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2289,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2290,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2291,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2298,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2304,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2306,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - appReqState
    - profileId
    - testId
    - onComplete
    - onError
    argTypes:
    - void*
    - uint32_t
    - uint32_t
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 2308
      start: 2274
    functionDepth: 3
    functionLinenumber: 2274
    functionLinenumberEnd: 2308
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::StartSystemTest
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - PacketBuffer*::Start
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::Encoding::LittleEndian::Write32
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::StartSystemTest(void* appReqState, uint32_t profileId,
      uint32_t testId, CompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2318,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2320,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2321,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2323,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2330,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2336,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - appReqState
    - onComplete
    - onError
    argTypes:
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 2340
      start: 2310
    functionDepth: 3
    functionLinenumber: 2310
    functionLinenumberEnd: 2340
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::StopSystemTest
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::StopSystemTest(void* appReqState, CompleteFunct
      onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2351,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2353,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2354,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2356,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2357,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2358,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2365,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2371,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - resetFlags
    - appReqState
    - onComplete
    - onError
    argTypes:
    - uint16_t
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 2375
      start: 2342
    functionDepth: 3
    functionLinenumber: 2342
    functionLinenumberEnd: 2375
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::ResetConfig
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - PacketBuffer*::SetDataLength
    - nl::Weave::Encoding::LittleEndian::Write16
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - PacketBuffer*::Start
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::ResetConfig(uint16_t resetFlags, void* appReqState,
      CompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::Ping
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - appReqState
    - onComplete
    - onError
    argTypes:
    - void*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 2380
      start: 2377
    functionDepth: 1
    functionLinenumber: 2377
    functionLinenumberEnd: 2380
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::Ping
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::Ping
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::Ping(void* appReqState, CompleteFunct onComplete,
      ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2390,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2392,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2393,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2394,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2397,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2397,1
    - Dst: PacketBuffer*::Next
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2397,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2398,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2398,1
    - Dst: PacketBuffer*::Next
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2398,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2415,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2420,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2422,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - appReqState
    - payloadSize
    - onComplete
    - onError
    argTypes:
    - void*
    - int32_t
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 2424
      start: 2382
    functionDepth: 3
    functionLinenumber: 2382
    functionLinenumberEnd: 2424
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::Ping
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 1
    functionsReached:
    - PacketBuffer*::DataLength
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - PacketBuffer*::SetDataLength
    - PacketBuffer*::Next
    - nl::Weave::System::PacketBuffer::Free
    - WeaveLogProgress
    - VerifyOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::Ping(void* appReqState, int32_t payloadSize, CompleteFunct
      onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff32::ValidateCheckChar
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pairingCode
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2437
      start: 2426
    functionDepth: 1
    functionLinenumber: 2426
    functionLinenumberEnd: 2437
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::IsValidPairingCode
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - Verhoeff32::ValidateCheckChar
    linkageType: ''
    returnType: bool
    signature: WeaveDeviceManager::IsValidPairingCode(const char *pairingCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::MakeIPv6WellKnownMulticast
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - IPAddress
    constantsTouched: []
    func_position:
      end: 2446
      start: 2439
    functionDepth: 1
    functionLinenumber: 2439
    functionLinenumberEnd: 2446
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::SetRendezvousAddress
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::MakeIPv6WellKnownMulticast
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::SetRendezvousAddress(IPAddress addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::MakeIPv6WellKnownMulticast
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - addr
    - rendezvousIntf
    argTypes:
    - IPAddress
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 2455
      start: 2448
    functionDepth: 1
    functionLinenumber: 2448
    functionLinenumberEnd: 2455
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::SetRendezvousAddress
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::MakeIPv6WellKnownMulticast
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::SetRendezvousAddress(IPAddress addr, InterfaceId
      rendezvousIntf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - autoReconnect
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 2467
      start: 2457
    functionDepth: 0
    functionLinenumber: 2457
    functionLinenumberEnd: 2467
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::SetAutoReconnect
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::SetAutoReconnect(bool autoReconnect)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - useAccessToken
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 2473
      start: 2469
    functionDepth: 0
    functionLinenumber: 2469
    functionLinenumberEnd: 2473
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::SetUseAccessToken
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::SetUseAccessToken(bool useAccessToken)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - RendezvousLinkLocal
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 2479
      start: 2475
    functionDepth: 0
    functionLinenumber: 2475
    functionLinenumberEnd: 2479
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::SetRendezvousLinkLocal
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::SetRendezvousLinkLocal(bool RendezvousLinkLocal)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - timeoutMS
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2485
      start: 2481
    functionDepth: 0
    functionLinenumber: 2481
    functionLinenumberEnd: 2485
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::SetConnectTimeout
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::SetConnectTimeout(uint32_t timeoutMS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SetRendezvousAddress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - IPAddress
    constantsTouched: []
    func_position:
      end: 2491
      start: 2488
    functionDepth: 2
    functionLinenumber: 2488
    functionLinenumberEnd: 2491
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::SetWiFiRendezvousAddress
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::SetRendezvousAddress
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::SetWiFiRendezvousAddress(IPAddress addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2499,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::IsConnected
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2509,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2512,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2515,1
    - Dst: Reset
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2518,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::InitiateConnection
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2519,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendPendingRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2524,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2528,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2533,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearRequestState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2536,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - profileId
    - msgType
    - msgBuf
    - onMsgRcvd
    argTypes:
    - uint32_t
    - uint16_t
    - PacketBuffer*
    - ExchangeContext::MessageReceiveFunct
    constantsTouched: []
    func_position:
      end: 2539
      start: 2493
    functionDepth: 2
    functionLinenumber: 2493
    functionLinenumberEnd: 2539
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 32
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearRequestState
    - nl::Weave::DeviceManager::WeaveDeviceManager::InitiateConnection
    - Reset
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendPendingRequest
    - nl::Weave::DeviceManager::WeaveDeviceManager::IsConnected
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::SendRequest(uint32_t profileId, uint16_t msgType,
      PacketBuffer *msgBuf,\n        ExchangeContext::MessageReceiveFunct onMsgRcvd)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2546,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2549,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::IsConnected
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2549,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2552,1
    - Dst: NewContext
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2555,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2556,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2566,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2572,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearRequestState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2577,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2579
      start: 2541
    functionDepth: 2
    functionLinenumber: 2541
    functionLinenumberEnd: 2579
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::SendPendingRequest
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 1
    functionsReached:
    - SendMessage
    - nl::Weave::System::PacketBuffer::Free
    - NewContext
    - VerifyOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearRequestState
    - nl::Weave::DeviceManager::WeaveDeviceManager::IsConnected
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::SendPendingRequest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2585,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2589,1
    - Dst: strdup
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2590,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2591,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2593,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2594,1
    - Dst: static_cast<const char *>
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2595,1
    - Dst: strlen
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2598,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2599,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - pairingCode
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2606
      start: 2581
    functionDepth: 1
    functionLinenumber: 2581
    functionLinenumberEnd: 2606
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 9
    functionsReached:
    - static_cast<const char *>
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
    - strdup
    - VerifyOrExit
    - strlen
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::SaveAuthKey(const char *pairingCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2612,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2616,1
    - Dst: malloc
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2617,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2618,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - accessToken
    - accessTokenLen
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2626
      start: 2608
    functionDepth: 1
    functionLinenumber: 2608
    functionLinenumberEnd: 2626
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 9
    functionsReached:
    - malloc
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
    - VerifyOrExit
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::SaveAuthKey(const uint8_t *accessToken, uint32_t
      accessTokenLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2639,1
    - Dst: strdup
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2640,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2641,1
    - Dst: strlen
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2644,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2645,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2651,1
    - Dst: malloc
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2652,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2653,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2655,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2672,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - authType
    - authKey
    - authKeyLen
    argTypes:
    - uint8_t
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2677
      start: 2628
    functionDepth: 1
    functionLinenumber: 2628
    functionLinenumberEnd: 2677
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::SaveRemoteDeviceAuthInfo
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
    - strdup
    - VerifyOrExit
    - strlen
    - memcpy
    - malloc
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::SaveRemoteDeviceAuthInfo(uint8_t authType, const
      char *authKey, uint32_t authKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2687
      start: 2679
    functionDepth: 1
    functionLinenumber: 2679
    functionLinenumberEnd: 2687
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 15
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::ClearAuthKey()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::ClearSecretData
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2693,1
    - Dst: free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - authKey
    - authKeyLen
    argTypes:
    - void*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2699
      start: 2689
    functionDepth: 1
    functionLinenumber: 2689
    functionLinenumberEnd: 2699
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 15
    functionsReached:
    - free
    - nl::Weave::Crypto::ClearSecretData
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::ClearAuthKey(void *&authKey, uint32_t &authKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2705,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2711,1
    - Dst: free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2717,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2724
      start: 2701
    functionDepth: 2
    functionLinenumber: 2701
    functionLinenumberEnd: 2724
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::ClearRequestState
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 2
    functionsReached:
    - free
    - nl::Weave::DeviceManager::WeaveDeviceManager::Close
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::ClearRequestState()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::DisableUDP
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2730,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2735,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearRequestState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2739,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2742
      start: 2726
    functionDepth: 3
    functionLinenumber: 2726
    functionLinenumberEnd: 2742
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 43
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::DisableUDP
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearRequestState
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::ClearOpState()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UDPListenEnabled
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2756,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2758,1
    - Dst: SetUDPListenEnabled
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2759,1
    - Dst: RefreshEndpoints
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2760,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2761,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2780
      start: 2748
    functionDepth: 0
    functionLinenumber: 2748
    functionLinenumberEnd: 2780
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::EnableUDP
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    - SetUDPListenEnabled
    - RefreshEndpoints
    - UDPListenEnabled
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::EnableUDP(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2794,1
    - Dst: SetUDPListenEnabled
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2795,1
    - Dst: RefreshEndpoints
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2796,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2797,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2803
      start: 2782
    functionDepth: 0
    functionLinenumber: 2782
    functionLinenumberEnd: 2803
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::DisableUDP
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    - SetUDPListenEnabled
    - RefreshEndpoints
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::DisableUDP(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveDeviceManager *>
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2809,1
    - Dst: WeaveDeviceManager*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2815,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - appState
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 2819
      start: 2807
    functionDepth: 0
    functionLinenumber: 2807
    functionLinenumberEnd: 2819
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleUnsecuredConnectionCallbackRemoved
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::Close
    - static_cast<WeaveDeviceManager *>
    - WeaveDeviceManager*::mOnError
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::HandleUnsecuredConnectionCallbackRemoved(void *appState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2827,1
    - Dst: WeaveDeviceManager*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2832,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ec
    - con
    - conErr
    argTypes:
    - ExchangeContext*
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 2836
      start: 2821
    functionDepth: 0
    functionLinenumber: 2821
    functionLinenumberEnd: 2836
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleRequestConnectionClosed
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::Close
    - WeaveDeviceManager*::mOnError
    - ExchangeContext*::Close
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::HandleRequestConnectionClosed(ExchangeContext *ec,
      WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2845,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2852,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::EnableUDP
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2860,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2861,1
    - Dst: IsProductWildcard
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2869,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ValidateIdentifyRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2879,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2880,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2883,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2884,1
    - Dst: IdentifyRequestMessage::Encode
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2885,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2886,1
    - Dst: IsIPv6LinkLocal
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2891,1
    - Dst: NewContext
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2896,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2897,1
    - Dst: GetPeerDescription
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2906,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2907,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2931,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2933,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2933,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2934,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2936,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2939,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2940,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2944,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2946,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2948
      start: 2838
    functionDepth: 3
    functionLinenumber: 2838
    functionLinenumberEnd: 2948
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::InitiateConnection
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 8
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ValidateIdentifyRequest
    - SendMessage
    - IsProductWildcard
    - NewContext
    - nl::Weave::System::PacketBuffer::Free
    - WeaveLogProgress
    - GetPeerDescription
    - VerifyOrExit
    - IdentifyRequestMessage::Encode
    - nl::Weave::System::MapErrorPOSIX
    - StartTimer
    - nl::Weave::DeviceManager::WeaveDeviceManager::Close
    - nl::Weave::DeviceManager::WeaveDeviceManager::EnableUDP
    - SuccessOrExit
    - IsIPv6LinkLocal
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::InitiateConnection()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - nodeId
    - list
    - listLen
    argTypes:
    - uint64_t
    - uint64_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2963
      start: 2950
    functionDepth: 0
    functionLinenumber: 2950
    functionLinenumberEnd: 2963
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::IsNodeInList
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveDeviceManager::IsNodeInList(uint64_t nodeId, uint64_t *list, uint32_t
      listLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t *>
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2973,1
    - Dst: malloc
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2973,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2974,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2981,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2981,1
    - Dst: static_cast<uint64_t *>
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2983,1
    - Dst: realloc
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2983,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:2984,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 5
    argNames:
    - nodeId
    - list
    - listLen
    - listMaxLen
    - initialMaxLen
    argTypes:
    - uint64_t
    - uint64_t*
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2995
      start: 2965
    functionDepth: 0
    functionLinenumber: 2965
    functionLinenumberEnd: 2995
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::AddNodeToList
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - realloc
    - VerifyOrExit
    - static_cast<uint64_t *>
    - malloc
    - static_cast<uint64_t>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::AddNodeToList(uint64_t nodeId, uint64_t *&list,
      uint32_t &listLen, uint32_t &listMaxLen, uint32_t initialMaxLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3005,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3009,1
    - Dst: nl::Weave::Profiles::DeviceDescription::IdentifyResponseMessage::Decode
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3012,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3013,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::FilterIdentifyResponse
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3015,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3016,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3019,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3022,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::IsNodeInList
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3022,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::AddNodeToList
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3025,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3027,1
    - Dst: WeaveDeviceManager*::mOnComplete::DeviceEnumeration
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3030,1
    - Dst: const_cast<const WeaveDeviceDescriptor *>
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3030,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3035,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3040,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3040,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3041,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 3043
      start: 2997
    functionDepth: 2
    functionLinenumber: 2997
    functionLinenumberEnd: 3043
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleDeviceEnumerationIdentifyResponse
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::mOnComplete::DeviceEnumeration
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::FilterIdentifyResponse
    - nl::Weave::DeviceManager::WeaveDeviceManager::AddNodeToList
    - nl::Weave::Profiles::DeviceDescription::IdentifyResponseMessage::Decode
    - SuccessOrExit
    - WeaveDeviceManager*::mOnError
    - const_cast<const WeaveDeviceDescriptor *>
    - nl::ErrorStr
    - nl::Weave::DeviceManager::WeaveDeviceManager::IsNodeInList
    linkageType: ''
    returnType: void
    signature: "WeaveDeviceManager::HandleDeviceEnumerationIdentifyResponse(ExchangeContext
      *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo,\n    uint32_t
      profileId, uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3056,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3057,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3061,1
    - Dst: nl::Weave::Profiles::DeviceDescription::IdentifyResponseMessage::Decode
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3068,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3069,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::FilterIdentifyResponse
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3072,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3073,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3075,1
    - Dst: WeaveDeviceManager*::mCurReq::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3079,1
    - Dst: WeaveDeviceManager*::mSystemLayer::CancelTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3083,1
    - Dst: WeaveDeviceManager*::DisableUDP
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3087,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3088,1
    - Dst: WeaveMessageSourceToStr
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3097,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3098,1
    - Dst: WeaveDeviceManager*::StartSession
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3129,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3130,1
    - Dst: WeaveDeviceManager*::StartConnectDevice
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3137,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3138,1
    - Dst: WeaveDeviceManager*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3148,1
    - Dst: WeaveDeviceManager*::DecodeStatusReport
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3151,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3152,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3155,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3160,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3164,1
    - Dst: WeaveDeviceManager*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3168,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3169,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 56
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 3171
      start: 3045
    functionDepth: 2
    functionLinenumber: 3045
    functionLinenumberEnd: 3171
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleConnectionIdentifyResponse
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::mCurReq::Close
    - WeaveDeviceManager*::StartSession
    - WeaveDeviceManager*::DecodeStatusReport
    - ExchangeContext*::Close
    - WeaveDeviceManager*::mOnError
    - WeaveDeviceManager*::DisableUDP
    - WeaveLogProgress
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - ExitNow
    - nl::Weave::DeviceManager::WeaveDeviceManager::FilterIdentifyResponse
    - WeaveDeviceManager*::Close
    - nl::Weave::Profiles::DeviceDescription::IdentifyResponseMessage::Decode
    - SuccessOrExit
    - WeaveDeviceManager*::mSystemLayer::CancelTimer
    - WeaveDeviceManager*::StartConnectDevice
    - WeaveMessageSourceToStr
    linkageType: ''
    returnType: void
    signature: "WeaveDeviceManager::HandleConnectionIdentifyResponse(ExchangeContext
      *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo,\n        uint32_t
      profileId, uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3183,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3185,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3187,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3193,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3202,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3212,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3220,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3225,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3233,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 40
    argCount: 4
    argNames:
    - respMsg
    - criteria
    - sourceNodeId
    - ' isMatch'
    argTypes:
    - IdentifyResponseMessage
    - IdentifyDeviceCriteria
    - uint64_t
    - bool
    constantsTouched: []
    func_position:
      end: 3240
      start: 3173
    functionDepth: 0
    functionLinenumber: 3173
    functionLinenumberEnd: 3240
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::FilterIdentifyResponse
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 2
    functionsReached:
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::FilterIdentifyResponse(IdentifyResponseMessage
      &respMsg, IdentifyDeviceCriteria criteria, uint64_t sourceNodeId,\n    bool&
      isMatch)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<WeaveDeviceManager*>
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3244,1
    - Dst: static_cast<WEAVE_ERROR>
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3245,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3248,1
    - Dst: WeaveDeviceManager*::InitiateDeviceEnumeration
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3251,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3252,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3257,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 3259
      start: 3242
    functionDepth: 1
    functionLinenumber: 3242
    functionLinenumberEnd: 3259
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleDeviceEnumerationTimeout
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - reinterpret_cast<WeaveDeviceManager*>
    - VerifyOrExit
    - WeaveDeviceManager*::InitiateDeviceEnumeration
    - static_cast<WEAVE_ERROR>
    - SuccessOrExit
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::HandleDeviceEnumerationTimeout(System::Layer* aSystemLayer,
      void* aAppState, System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<WeaveDeviceManager*>
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3263,1
    - Dst: static_cast<WEAVE_ERROR>
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3264,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3273,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3274,1
    - Dst: WeaveDeviceManager*::InitiateConnection
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3281,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3282,1
    - Dst: WeaveDeviceManager*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3287,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3288,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 3290
      start: 3261
    functionDepth: 0
    functionLinenumber: 3261
    functionLinenumberEnd: 3290
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleConnectionIdentifyTimeout
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - WeaveDeviceManager*::InitiateConnection
    - reinterpret_cast<WeaveDeviceManager*>
    - ExitNow
    - WeaveDeviceManager*::Close
    - static_cast<WEAVE_ERROR>
    - SuccessOrExit
    - WeaveDeviceManager*::mOnError
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::HandleConnectionIdentifyTimeout(System::Layer*
      aSystemLayer, void* aAppState, System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetUnsecuredConnectionListener
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3298,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3307
      start: 3292
    functionDepth: 0
    functionLinenumber: 3292
    functionLinenumberEnd: 3307
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::SetUnsecuredConnectionHandler
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 3
    functionsReached:
    - SetUnsecuredConnectionListener
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::SetUnsecuredConnectionHandler()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearUnsecuredConnectionListener
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3315,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3324
      start: 3309
    functionDepth: 0
    functionLinenumber: 3309
    functionLinenumberEnd: 3324
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::ClearUnsecuredConnectionHandler
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 1
    functionsReached:
    - ClearUnsecuredConnectionListener
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::ClearUnsecuredConnectionHandler()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3331,1
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3336,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3337,1
    - Dst: NewConnection
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3341,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3342,1
    - Dst: IsIPv6LinkLocal
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3350,1
    - Dst: Connect
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3352,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3353,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - deviceId
    - deviceAddr
    argTypes:
    - uint64_t
    - IPAddress
    constantsTouched: []
    func_position:
      end: 3359
      start: 3326
    functionDepth: 2
    functionLinenumber: 3326
    functionLinenumberEnd: 3359
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::StartConnectDevice
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - Connect
    - VerifyOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::Close
    - IPAddress::ToString
    - SuccessOrExit
    - NewConnection
    - IsIPv6LinkLocal
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::StartConnectDevice(uint64_t deviceId, IPAddress
      deviceAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3368,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3369,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3376,1
    - Dst: WeaveDeviceManager*::HandleConnectionReceived
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3383,1
    - Dst: WeaveDeviceManager*::StartSession
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3391,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3400,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3400,1
    - Dst: WeaveDeviceManager*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3405,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3406,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - con
    - err
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 3408
      start: 3361
    functionDepth: 0
    functionLinenumber: 3361
    functionLinenumberEnd: 3408
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleConnectionComplete
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::StartSession
    - WeaveConnection*::Close
    - WeaveDeviceManager*::mOnError
    - WeaveLogProgress
    - WeaveDeviceManager*::HandleConnectionReceived
    - WeaveDeviceManager*::Close
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::HandleConnectionComplete(WeaveConnection *con,
      WEAVE_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3424,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3425,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3429,1
    - Dst: WeaveDeviceManager*::mOnStart
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3437,1
    - Dst: WeaveDeviceManager*::ClearUnsecuredConnectionHandler
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3452,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3453,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3458,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3459,1
    - Dst: IdentifyRequestMessage::Reset
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3460,1
    - Dst: IdentifyRequestMessage::Encode
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3461,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3462,1
    - Dst: WeaveDeviceManager*::mExchangeMgr::NewContext
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3465,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3466,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3472,1
    - Dst: WeaveDeviceManager*::mCurReq::SendMessage
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3477,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3479,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3483,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3484,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3489,1
    - Dst: WeaveDeviceManager*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3492,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3493,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 2
    argNames:
    - msgLayer
    - con
    argTypes:
    - WeaveMessageLayer*
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 3495
      start: 3410
    functionDepth: 3
    functionLinenumber: 3410
    functionLinenumberEnd: 3495
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleConnectionReceived
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::ClearUnsecuredConnectionHandler
    - WeaveLogError
    - WeaveConnection*::Close
    - nl::Weave::System::PacketBuffer::Free
    - WeaveLogProgress
    - WeaveDeviceManager*::mCurReq::SendMessage
    - WeaveConnection*::PeerAddr::ToString
    - VerifyOrExit
    - IdentifyRequestMessage::Encode
    - IdentifyRequestMessage::Reset
    - WeaveDeviceManager*::Close
    - WeaveDeviceManager*::mExchangeMgr::NewContext
    - WeaveDeviceManager*::mOnStart
    - SuccessOrExit
    - WeaveDeviceManager*::mOnError
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::HandleConnectionReceived(WeaveMessageLayer *msgLayer,
      WeaveConnection *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3505,1
    - Dst: WeaveDeviceManager*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3508,1
    - Dst: WeaveDeviceManager*::mOnConnectionClosedFunc
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3513,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3518,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3521,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 3522
      start: 3497
    functionDepth: 0
    functionLinenumber: 3497
    functionLinenumberEnd: 3522
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnection*::Close
    - WeaveDeviceManager*::mOnConnectionClosedFunc
    - WeaveLogProgress
    - WeaveDeviceManager*::Close
    - WeaveDeviceManager*::mOnError
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::HandleConnectionClosed(WeaveConnection *con, WEAVE_ERROR
      conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3534,1
    - Dst: StartPASESession
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3536,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3542,1
    - Dst: StartCASESession
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3550,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ReenableConnectionMonitor
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3558,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3567
      start: 3524
    functionDepth: 1
    functionLinenumber: 3524
    functionLinenumberEnd: 3567
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::StartSession
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - StartCASESession
    - nl::Weave::DeviceManager::WeaveDeviceManager::ReenableConnectionMonitor
    - StartPASESession
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::StartSession()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3577,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3578,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3582,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3586,1
    - Dst: WeaveDeviceManager*::CancelRemotePassiveRendezvousTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3589,1
    - Dst: WeaveDeviceManager*::ReenableConnectionMonitor
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3598,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - sm
    - con
    - appReqState
    - sessionKeyId
    - peerNodeId
    - encType
    argTypes:
    - WeaveSecurityManager*
    - WeaveConnection*
    - void*
    - uint16_t
    - uint64_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 3599
      start: 3569
    functionDepth: 0
    functionLinenumber: 3569
    functionLinenumberEnd: 3599
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleSessionEstablished
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::CancelRemotePassiveRendezvousTimer
    - WeaveLogError
    - WeaveConnection*::Close
    - WeaveLogProgress
    - WeaveDeviceManager*::ReenableConnectionMonitor
    linkageType: ''
    returnType: void
    signature: "WeaveDeviceManager::HandleSessionEstablished(WeaveSecurityManager
      *sm, WeaveConnection *con, void *appReqState,\n        uint16_t sessionKeyId,
      uint64_t peerNodeId, uint8_t encType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3610,1
    - Dst: StatusReportStr
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3610,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3618,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3618,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3635,1
    - Dst: WeaveDeviceManager*::mSystemLayer::StartTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3650,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3653,1
    - Dst: WeaveDeviceManager*::RestartRemotePassiveRendezvousListen
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3663,1
    - Dst: WeaveDeviceManager*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3668,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3679,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 6
    argNames:
    - sm
    - con
    - appReqState
    - localErr
    - peerNodeId
    - statusReport
    argTypes:
    - WeaveSecurityManager*
    - WeaveConnection*
    - void*
    - WEAVE_ERROR
    - uint64_t
    - StatusReport*
    constantsTouched: []
    func_position:
      end: 3681
      start: 3601
    functionDepth: 0
    functionLinenumber: 3601
    functionLinenumberEnd: 3681
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleSessionError
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::mSystemLayer::StartTimer
    - WeaveLogError
    - WeaveDeviceManager*::mOnError
    - WeaveLogProgress
    - WeaveDeviceManager*::Close
    - WeaveDeviceManager*::RestartRemotePassiveRendezvousListen
    - ErrorStr
    - StatusReportStr
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::HandleSessionError(WeaveSecurityManager *sm, WeaveConnection
      *con, void *appReqState, WEAVE_ERROR localErr, uint64_t peerNodeId, StatusReport
      *statusReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<WeaveDeviceManager*>
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3685,1
    - Dst: static_cast<WEAVE_ERROR>
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3686,1
    - Dst: WeaveDeviceManager*::StartSession
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3693,1
    - Dst: WeaveDeviceManager*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3697,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3698,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 3700
      start: 3683
    functionDepth: 0
    functionLinenumber: 3683
    functionLinenumberEnd: 3700
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::RetrySession
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::StartSession
    - reinterpret_cast<WeaveDeviceManager*>
    - WeaveDeviceManager*::Close
    - static_cast<WEAVE_ERROR>
    - WeaveDeviceManager*::mOnError
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::RetrySession(System::Layer* aSystemLayer, void*
      aAppState, System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::CloseDeviceConnection
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3707,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3712,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3717,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::StartReconnectToAssistingDevice
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3723,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3728,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3732,1
    - Dst: mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3737
      start: 3702
    functionDepth: 3
    functionLinenumber: 3702
    functionLinenumberEnd: 3737
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::RestartRemotePassiveRendezvousListen
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::CloseDeviceConnection
    - WeaveLogProgress
    - mOnError
    - nl::Weave::DeviceManager::WeaveDeviceManager::Close
    - nl::Weave::DeviceManager::WeaveDeviceManager::StartReconnectToAssistingDevice
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::RestartRemotePassiveRendezvousListen()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3749,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3750,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3752,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3753,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3754,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3755,1
    - Dst: NewContext
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3758,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3759,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3770,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::HandleConnectionReady
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3776,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3780,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3784,1
    - Dst: mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3785,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3787
      start: 3739
    functionDepth: 3
    functionLinenumber: 3739
    functionLinenumberEnd: 3787
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::ReenableConnectionMonitor
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 1
    functionsReached:
    - SendMessage
    - PacketBuffer*::SetDataLength
    - nl::Weave::Encoding::LittleEndian::Write16
    - NewContext
    - nl::Weave::System::PacketBuffer::Free
    - mOnError
    - VerifyOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::HandleConnectionReady
    - nl::Weave::DeviceManager::WeaveDeviceManager::Close
    - PacketBuffer*::Start
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::ReenableConnectionMonitor()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3795,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3797,1
    - Dst: WeaveDeviceManager*::DecodeStatusReport
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3804,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3805,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3807,1
    - Dst: WeaveDeviceManager*::StartConnectionMonitorTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3812,1
    - Dst: WeaveDeviceManager*::HandleConnectionReady
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3814,1
    - Dst: WeaveDeviceManager*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3818,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3819,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3828,1
    - Dst: WeaveDeviceManager*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3831,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3832,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 3834
      start: 3789
    functionDepth: 2
    functionLinenumber: 3789
    functionLinenumberEnd: 3834
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleReenableConnectionMonitorResponse
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::DecodeStatusReport
    - nl::Weave::System::PacketBuffer::Free
    - ExchangeContext*::Close
    - WeaveDeviceManager*::StartConnectionMonitorTimer
    - ExitNow
    - WeaveDeviceManager*::Close
    - WeaveDeviceManager*::HandleConnectionReady
    - SuccessOrExit
    - WeaveDeviceManager*::mOnError
    linkageType: ''
    returnType: void
    signature: "WeaveDeviceManager::HandleReenableConnectionMonitorResponse(ExchangeContext
      *ec, const IPPacketInfo *pktInfo,\n        const WeaveMessageInfo *msgInfo,
      uint32_t profileId, uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3843,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3845,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3855,1
    - Dst: General
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3856,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SendPendingRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3863,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3869,1
    - Dst: mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3870,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3872
      start: 3836
    functionDepth: 4
    functionLinenumber: 3836
    functionLinenumberEnd: 3872
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleConnectionReady
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - mOnError
    - nl::Weave::DeviceManager::WeaveDeviceManager::SendPendingRequest
    - SuccessOrExit
    - RegisterUnsolicitedMessageHandler
    - General
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::HandleConnectionReady()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3885,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3886,1
    - Dst: WeaveDeviceManager*::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3892,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3899,1
    - Dst: nl::Weave::Profiles::DeviceDescription::IdentifyResponseMessage::Decode
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3902,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3903,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3905,1
    - Dst: WeaveDeviceManager*::mOnComplete::IdentifyDevice
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3909,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3917,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3919,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 3920
      start: 3874
    functionDepth: 2
    functionLinenumber: 3874
    functionLinenumberEnd: 3920
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleIdentifyDeviceResponse
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    - WeaveDeviceManager*::mOnComplete::IdentifyDevice
    - VerifyOrExit
    - ExitNow
    - nl::Weave::Profiles::DeviceDescription::IdentifyResponseMessage::Decode
    - WeaveDeviceManager*::ClearOpState
    - SuccessOrExit
    - WeaveDeviceManager*::mOnError
    linkageType: ''
    returnType: void
    signature: "WeaveDeviceManager::HandleIdentifyDeviceResponse(ExchangeContext *ec,
      const IPPacketInfo *pktInfo,\n        const WeaveMessageInfo *msgInfo, uint32_t
      profileId, uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3933,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3934,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3937,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3941,1
    - Dst: malloc
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3942,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3942,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3943,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3944,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3944,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3944,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3945,1
    - Dst: WeaveDeviceManager*::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3950,1
    - Dst: free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3955,1
    - Dst: WeaveDeviceManager*::mOnComplete::PairToken
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3960,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3960,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3960,1
    - Dst: WeaveDeviceManager*::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3966,1
    - Dst: WeaveDeviceManager*::DecodeStatusReport
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3968,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3969,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3971,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3981,1
    - Dst: WeaveDeviceManager*::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3982,1
    - Dst: WeaveDeviceManager*::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3993,1
    - Dst: free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:3996,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4001,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4004,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 4005
      start: 3922
    functionDepth: 2
    functionLinenumber: 3922
    functionLinenumberEnd: 4005
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandlePairTokenResponse
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - WeaveDeviceManager*::DecodeStatusReport
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    - WeaveDeviceManager*::mOnError
    - VerifyOrExit
    - ExitNow
    - free
    - memcpy
    - SuccessOrExit
    - WeaveDeviceManager*::ClearOpState
    - PacketBuffer*::Start
    - WeaveDeviceManager*::mOnComplete::PairToken
    - malloc
    linkageType: ''
    returnType: void
    signature: "WeaveDeviceManager::HandlePairTokenResponse(ExchangeContext *ec, const
      IPPacketInfo *pktInfo,\n        const WeaveMessageInfo *msgInfo, uint32_t profileId,
      uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4018,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4019,1
    - Dst: WeaveDeviceManager*::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4022,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4024,1
    - Dst: WeaveDeviceManager*::DecodeStatusReport
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4030,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4031,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4033,1
    - Dst: WeaveDeviceManager*::mOnComplete::General
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4037,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4039,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4048,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4050,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 4051
      start: 4007
    functionDepth: 2
    functionLinenumber: 4007
    functionLinenumberEnd: 4051
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleUnpairTokenResponse
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::DecodeStatusReport
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    - WeaveDeviceManager*::mOnComplete::General
    - VerifyOrExit
    - ExitNow
    - WeaveDeviceManager*::ClearOpState
    - SuccessOrExit
    - WeaveDeviceManager*::mOnError
    linkageType: ''
    returnType: void
    signature: "WeaveDeviceManager::HandleUnpairTokenResponse(ExchangeContext *ec,
      const IPPacketInfo *pktInfo,\n        const WeaveMessageInfo *msgInfo, uint32_t
      profileId, uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4067,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4068,1
    - Dst: WeaveDeviceManager*::ClearRequestState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4076,1
    - Dst: WeaveDeviceManager*::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4084,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4090,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::DecodeNetworkInfoList
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4095,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4096,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4098,1
    - Dst: WeaveDeviceManager*::mOnComplete::ScanNetworks
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4101,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4109,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4112,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4116,1
    - Dst: WeaveDeviceManager*::mOnComplete::AddNetwork
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4119,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4124,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::DecodeNetworkInfoList
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4129,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4130,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4132,1
    - Dst: WeaveDeviceManager*::mOnComplete::GetNetworks
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4135,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4142,1
    - Dst: WirelessRegConfig::Init
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4146,1
    - Dst: WirelessRegConfig::DecodeInPlace
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4148,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4149,1
    - Dst: WeaveDeviceManager*::mOnComplete::GetWirelessRegulatoryConfig
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4151,1
    - Dst: WeaveDeviceManager*::DecodeStatusReport
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4158,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4159,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4161,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4174,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4177,1
    - Dst: WeaveDeviceManager*::SendRequest
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4180,1
    - Dst: WeaveDeviceManager*::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4187,1
    - Dst: WeaveDeviceManager*::mOnComplete::General
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4190,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4192,1
    - Dst: WeaveDeviceManager*::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4202,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4203,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4206,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 68
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 4207
      start: 4053
    functionDepth: 2
    functionLinenumber: 4053
    functionLinenumberEnd: 4207
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleNetworkProvisioningResponse
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::DecodeStatusReport
    - WeaveDeviceManager*::mOnComplete::GetNetworks
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    - WirelessRegConfig::Init
    - WeaveDeviceManager*::SendRequest
    - WeaveDeviceManager*::mOnComplete::General
    - WeaveDeviceManager*::ClearRequestState
    - VerifyOrExit
    - ExitNow
    - WeaveDeviceManager*::mOnComplete::ScanNetworks
    - WirelessRegConfig::DecodeInPlace
    - WeaveDeviceManager*::mOnComplete::GetWirelessRegulatoryConfig
    - WeaveDeviceManager*::ClearOpState
    - SuccessOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::DecodeNetworkInfoList
    - WeaveDeviceManager*::mOnComplete::AddNetwork
    - WeaveDeviceManager*::mOnError
    linkageType: ''
    returnType: void
    signature: "WeaveDeviceManager::HandleNetworkProvisioningResponse(ExchangeContext
      *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo,\n        uint32_t
      profileId, uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4219,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4220,1
    - Dst: WeaveDeviceManager*::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4226,1
    - Dst: WeaveDeviceManager*::DecodeStatusReport
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4233,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4234,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4236,1
    - Dst: WeaveDeviceManager*::mOnComplete::General
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4240,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4242,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4250,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4252,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 4253
      start: 4209
    functionDepth: 2
    functionLinenumber: 4209
    functionLinenumberEnd: 4253
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleServiceProvisioningResponse
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::DecodeStatusReport
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    - WeaveDeviceManager*::mOnComplete::General
    - ExitNow
    - WeaveDeviceManager*::ClearOpState
    - SuccessOrExit
    - WeaveDeviceManager*::mOnError
    linkageType: ''
    returnType: void
    signature: "WeaveDeviceManager::HandleServiceProvisioningResponse(ExchangeContext
      *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo,\n        uint32_t
      profileId, uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4266,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4267,1
    - Dst: WeaveDeviceManager*::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4273,1
    - Dst: WeaveDeviceManager*::DecodeStatusReport
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4280,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4281,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4283,1
    - Dst: WeaveDeviceManager*::mOnComplete::General
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4287,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4289,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4294,1
    - Dst: WeaveDeviceManager*::mOnComplete::GetFabricConfig
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4295,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4295,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4295,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4303,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4305,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 4306
      start: 4255
    functionDepth: 2
    functionLinenumber: 4255
    functionLinenumberEnd: 4306
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleFabricProvisioningResponse
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - WeaveDeviceManager*::DecodeStatusReport
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    - WeaveDeviceManager*::mOnComplete::General
    - VerifyOrExit
    - ExitNow
    - WeaveDeviceManager*::mOnComplete::GetFabricConfig
    - PacketBuffer*::Start
    - WeaveDeviceManager*::ClearOpState
    - SuccessOrExit
    - WeaveDeviceManager*::mOnError
    linkageType: ''
    returnType: void
    signature: "WeaveDeviceManager::HandleFabricProvisioningResponse(ExchangeContext
      *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo,\n        uint32_t
      profileId, uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::HandleGetCameraAuthDataResponse
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 4314
      start: 4308
    functionDepth: 0
    functionLinenumber: 4308
    functionLinenumberEnd: 4314
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleGetCameraAuthDataResponseEntry
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::HandleGetCameraAuthDataResponse
    linkageType: ''
    returnType: void
    signature: "WeaveDeviceManager::HandleGetCameraAuthDataResponseEntry(ExchangeContext
      *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo,\n        uint32_t
      profileId, uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - strBuf
    - (eui)
    argTypes:
    - char*
    - uint8_t[]
    constantsTouched: []
    func_position:
      end: 4324
      start: 4316
    functionDepth: 0
    functionLinenumber: 4316
    functionLinenumberEnd: 4324
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::Eui48ToString
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::Eui48ToString(char *strBuf, uint8_t (&eui)[EUI48_LEN])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4329,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4347,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4348,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4354,1
    - Dst: DecodeCameraAuthDataResponse
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4356,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4357,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4359,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::Eui48ToString
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4362,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4367,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4367,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4370,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4370,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4373,1
    - Dst: Base64URLEncode
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4375,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4376,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4381,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::GetCameraAuthData
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4383,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::DecodeStatusReport
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4387,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4388,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4390,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4404,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4411,1
    - Dst: mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4414,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 44
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 4416
      start: 4326
    functionDepth: 4
    functionLinenumber: 4326
    functionLinenumberEnd: 4416
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleGetCameraAuthDataResponse
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::DeviceManager::WeaveDeviceManager::DecodeStatusReport
    - nl::Weave::DeviceManager::WeaveDeviceManager::GetCameraAuthData
    - mOnError
    - VerifyOrExit
    - ExitNow
    - nl::Weave::DeviceManager::WeaveDeviceManager::Eui48ToString
    - static_cast<void *>
    - memcpy
    - Base64URLEncode
    - WeaveLogDetail
    - SuccessOrExit
    - DecodeCameraAuthDataResponse
    linkageType: ''
    returnType: void
    signature: "WeaveDeviceManager::HandleGetCameraAuthDataResponse(ExchangeContext
      *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo,\n        uint32_t
      profileId, uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4421,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4433,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4434,1
    - Dst: WeaveDeviceManager*::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4441,1
    - Dst: WeaveDeviceManager*::DecodeStatusReport
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4446,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4447,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4449,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4460,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4468,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4470,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4480,1
    - Dst: WeaveDeviceManager*::StartConnectionMonitorTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4483,1
    - Dst: WeaveDeviceManager*::mOnComplete::General
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4487,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4503,1
    - Dst: WeaveDeviceManager*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4512,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4516,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 4518
      start: 4418
    functionDepth: 2
    functionLinenumber: 4418
    functionLinenumberEnd: 4518
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleDeviceControlResponse
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::DecodeStatusReport
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    - WeaveLogProgress
    - WeaveDeviceManager*::StartConnectionMonitorTimer
    - WeaveDeviceManager*::mOnComplete::General
    - ExitNow
    - WeaveDeviceManager*::Close
    - WeaveDeviceManager*::ClearOpState
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveDeviceManager*::mOnError
    linkageType: ''
    returnType: void
    signature: "WeaveDeviceManager::HandleDeviceControlResponse(ExchangeContext *ec,
      const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo,\n        uint32_t
      profileId, uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4525,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4534,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4535,1
    - Dst: WeaveDeviceManager*::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4541,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4546,1
    - Dst: WeaveDeviceManager*::HandleRemoteConnectionComplete
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4547,1
    - Dst: WeaveDeviceManager*::DecodeStatusReport
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4551,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4552,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4554,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4560,1
    - Dst: WeaveDeviceManager*::CancelRemotePassiveRendezvous
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4561,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4566,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4573,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4579,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4584,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 4586
      start: 4520
    functionDepth: 2
    functionLinenumber: 4520
    functionLinenumberEnd: 4586
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleRemotePassiveRendezvousComplete
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::DecodeStatusReport
    - WeaveDeviceManager*::HandleRemoteConnectionComplete
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    - WeaveLogProgress
    - ExitNow
    - WeaveDeviceManager*::CancelRemotePassiveRendezvous
    - WeaveDeviceManager*::ClearOpState
    - SuccessOrExit
    - WeaveDeviceManager*::mOnError
    linkageType: ''
    returnType: void
    signature: "WeaveDeviceManager::HandleRemotePassiveRendezvousComplete(ExchangeContext
      *ec, const IPPacketInfo *pktInfo, const\n        WeaveMessageInfo *msgInfo,
      uint32_t profileId, uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4601,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4602,1
    - Dst: WeaveDeviceManager*::ClearOpState
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4608,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4611,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4616,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4616,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4619,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4620,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4621,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4624,1
    - Dst: WeaveDeviceManager*::mOnComplete::General
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4627,1
    - Dst: WeaveDeviceManager*::DecodeStatusReport
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4633,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4634,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4636,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4639,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4647,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4649,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 4650
      start: 4588
    functionDepth: 2
    functionLinenumber: 4588
    functionLinenumberEnd: 4650
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandlePingResponse
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - WeaveDeviceManager*::DecodeStatusReport
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    - WeaveDeviceManager*::mOnComplete::General
    - VerifyOrExit
    - ExitNow
    - SuccessOrExit
    - WeaveDeviceManager*::ClearOpState
    - PacketBuffer*::Start
    - WeaveDeviceManager*::mOnError
    linkageType: ''
    returnType: void
    signature: "WeaveDeviceManager::HandlePingResponse(ExchangeContext *ec, const
      IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo,\n        uint32_t profileId,
      uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4656,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4658
      start: 4652
    functionDepth: 0
    functionLinenumber: 4652
    functionLinenumberEnd: 4658
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::StartConnectionMonitorTimer
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - StartTimer
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::StartConnectionMonitorTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CancelTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4663
      start: 4660
    functionDepth: 0
    functionLinenumber: 4660
    functionLinenumberEnd: 4663
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::CancelConnectionMonitorTimer
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 4
    functionsReached:
    - CancelTimer
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::CancelConnectionMonitorTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4670,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4673,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4676,1
    - Dst: WeaveDeviceManager*::StartConnectionMonitorTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 4679
      start: 4665
    functionDepth: 0
    functionLinenumber: 4665
    functionLinenumberEnd: 4679
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleEchoRequest
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - ExchangeContext*::Close
    - ExchangeContext*::SendMessage
    - WeaveDeviceManager*::StartConnectionMonitorTimer
    linkageType: ''
    returnType: void
    signature: "WeaveDeviceManager::HandleEchoRequest(ExchangeContext *ec, const IPPacketInfo
      *pktInfo, const WeaveMessageInfo *msgInfo,\n        uint32_t profileId, uint8_t
      msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<WeaveDeviceManager*>
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4683,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4689,1
    - Dst: WeaveDeviceManager*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4691,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4694,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 4696
      start: 4681
    functionDepth: 0
    functionLinenumber: 4681
    functionLinenumberEnd: 4696
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleConnectionMonitorTimeout
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - WeaveDeviceManager*::Close
    - reinterpret_cast<WeaveDeviceManager*>
    - WeaveDeviceManager*::mOnError
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::HandleConnectionMonitorTimeout(System::Layer* aSystemLayer,
      void* aAppState, System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CancelTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4702,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4709,1
    - Dst: secondsToMilliseconds
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4709,1
    - Dst: secondsToMilliseconds
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4710,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4720
      start: 4698
    functionDepth: 0
    functionLinenumber: 4698
    functionLinenumberEnd: 4720
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::StartRemotePassiveRendezvousTimer
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 1
    functionsReached:
    - CancelTimer
    - StartTimer
    - secondsToMilliseconds
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::StartRemotePassiveRendezvousTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CancelTimer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4728
      start: 4722
    functionDepth: 0
    functionLinenumber: 4722
    functionLinenumberEnd: 4728
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::CancelRemotePassiveRendezvousTimer
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 2
    functionsReached:
    - CancelTimer
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::CancelRemotePassiveRendezvousTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<WeaveDeviceManager*>
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4732,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4740,1
    - Dst: WeaveDeviceManager*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4742,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 4749
      start: 4730
    functionDepth: 0
    functionLinenumber: 4730
    functionLinenumberEnd: 4749
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleRemotePassiveRendezvousTimeout
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - WeaveDeviceManager*::Close
    - reinterpret_cast<WeaveDeviceManager*>
    - WeaveDeviceManager*::mOnError
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::HandleRemotePassiveRendezvousTimeout(System::Layer*
      aSystemLayer, void* aAppState, System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SaveAssistingDeviceConnectionInfo
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4765,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4766,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ResetConnectionInfo
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4773,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4786,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4786,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4787,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4792,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4793,1
    - Dst: IdentifyRequestMessage::Reset
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4795,1
    - Dst: IdentifyRequestMessage::Encode
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4796,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4797,1
    - Dst: NewContext
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4800,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4801,1
    - Dst: secondsToMilliseconds
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4802,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4811,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4816,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4818,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4820,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4825,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4832,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4836,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4841,1
    - Dst: mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4844,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4846
      start: 4751
    functionDepth: 3
    functionLinenumber: 4751
    functionLinenumberEnd: 4846
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleRemoteConnectionComplete
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - static_cast<const uint8_t *>
    - nl::Weave::DeviceManager::WeaveDeviceManager::SaveAssistingDeviceConnectionInfo
    - WeaveLogError
    - NewContext
    - nl::Weave::System::PacketBuffer::Free
    - WeaveLogProgress
    - nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
    - mOnError
    - VerifyOrExit
    - IdentifyRequestMessage::Encode
    - nl::Weave::DeviceManager::WeaveDeviceManager::ResetConnectionInfo
    - IdentifyRequestMessage::Reset
    - secondsToMilliseconds
    - nl::Weave::DeviceManager::WeaveDeviceManager::Close
    - SuccessOrExit
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::HandleRemoteConnectionComplete()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4860,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4861,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4862,1
    - Dst: WeaveDeviceManager*::mCurReq::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4866,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4870,1
    - Dst: WeaveMessageSourceToStr
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4879,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4880,1
    - Dst: nl::Weave::Profiles::DeviceDescription::IdentifyResponseMessage::Decode
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4891,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4892,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4894,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4903,1
    - Dst: WeaveDeviceManager*::StartSession
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4908,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4909,1
    - Dst: WeaveDeviceManager*::DecodeStatusReport
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4915,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4916,1
    - Dst: WeaveDeviceManager*::RestartRemotePassiveRendezvousListen
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4921,1
    - Dst: WeaveDeviceManager*::RestartRemotePassiveRendezvousListen
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4928,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4933,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4937,1
    - Dst: WeaveDeviceManager*::Close
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4942,1
    - Dst: WeaveDeviceManager*::mOnError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4945,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 4947
      start: 4848
    functionDepth: 2
    functionLinenumber: 4848
    functionLinenumberEnd: 4947
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleRemoteIdentifyResponse
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::mCurReq::Close
    - WeaveDeviceManager*::StartSession
    - WeaveDeviceManager*::DecodeStatusReport
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    - ExchangeContext*::Close
    - WeaveLogProgress
    - WeaveDeviceManager*::mOnError
    - VerifyOrExit
    - ExitNow
    - WeaveDeviceManager*::Close
    - WeaveDeviceManager*::RestartRemotePassiveRendezvousListen
    - nl::Weave::Profiles::DeviceDescription::IdentifyResponseMessage::Decode
    - SuccessOrExit
    - WeaveMessageSourceToStr
    linkageType: ''
    returnType: void
    signature: "WeaveDeviceManager::HandleRemoteIdentifyResponse(ExchangeContext *ec,
      const IPPacketInfo *pktInfo,\n        const WeaveMessageInfo *msgInfo, uint32_t
      profileId, uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4952,1
    - Dst: WeaveDeviceManager*::RestartRemotePassiveRendezvousListen
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4959,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ec
    - con
    - conErr
    argTypes:
    - ExchangeContext*
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 4960
      start: 4949
    functionDepth: 0
    functionLinenumber: 4949
    functionLinenumberEnd: 4960
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleRemoteIdentifyConnectionClosed
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::RestartRemotePassiveRendezvousListen
    - WeaveLogError
    linkageType: ''
    returnType: void
    signature: "WeaveDeviceManager::HandleRemoteIdentifyConnectionClosed(ExchangeContext
      *ec, WeaveConnection *con,\n    WEAVE_ERROR conErr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4964,1
    - Dst: static_cast<WeaveDeviceManager *>
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4965,1
    - Dst: WeaveDeviceManager*::RestartRemotePassiveRendezvousListen
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ec
    argTypes:
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 4969
      start: 4962
    functionDepth: 0
    functionLinenumber: 4962
    functionLinenumberEnd: 4969
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleRemoteIdentifyTimeout
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - static_cast<WeaveDeviceManager *>
    - WeaveLogError
    - WeaveDeviceManager*::RestartRemotePassiveRendezvousListen
    linkageType: ''
    returnType: void
    signature: WeaveDeviceManager::HandleRemoteIdentifyTimeout(ExchangeContext *ec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4981,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4983,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4984,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4988,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4990,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4992,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4993,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4995,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4995,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4997,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:4998,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5000,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5002,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5004,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5004,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5005,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5006,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5011,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5013,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5014,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5016,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5018,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 2
    argNames:
    - msgBuf
    - ' status'
    argTypes:
    - PacketBuffer*
    - DeviceStatus
    constantsTouched: []
    func_position:
      end: 5026
      start: 4971
    functionDepth: 1
    functionLinenumber: 4971
    functionLinenumberEnd: 5026
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::DecodeStatusReport
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Init
    - TLVReader::Next
    - PacketBuffer*::SetStart
    - TLVReader::GetType
    - VerifyOrExit
    - ExitNow
    - TLVReader::EnterContainer
    - TLVReader::ExitContainer
    - SuccessOrExit
    - TLVReader::GetTag
    - nl::Weave::Encoding::LittleEndian::Read32
    - nl::Weave::Encoding::LittleEndian::Read16
    - TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::DecodeStatusReport(PacketBuffer *msgBuf, DeviceStatus&
      status)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5038,1
    - Dst: Read8
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5040,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5042,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5043,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5046,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5047,1
    - Dst: nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::DecodeList
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5049,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5050,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5052,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5057,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - msgBuf
    - ' count'
    - ' netInfoList'
    argTypes:
    - PacketBuffer*
    - uint16_t
    - NetworkInfo*
    constantsTouched: []
    func_position:
      end: 5066
      start: 5028
    functionDepth: 1
    functionLinenumber: 5028
    functionLinenumberEnd: 5066
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::DecodeNetworkInfoList
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Init
    - TLVReader::Next
    - PacketBuffer*::SetStart
    - VerifyOrExit
    - nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::DecodeList
    - ExitNow
    - SuccessOrExit
    - Read8
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::DecodeNetworkInfoList(PacketBuffer *msgBuf, uint16_t&
      count,\n        NetworkInfo *& netInfoList)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5078,1
    - Dst: CASECertInfoFromAccessToken
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5082,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' msgCtx'
    - ' writer'
    argTypes:
    - Security::CASE::BeginSessionContext
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 5089
      start: 5071
    functionDepth: 0
    functionLinenumber: 5071
    functionLinenumberEnd: 5089
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::EncodeNodeCertInfo
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - CASECertInfoFromAccessToken
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::EncodeNodeCertInfo(const Security::CASE::BeginSessionContext
      & msgCtx,\n        TLVWriter & writer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::GetNodePrivateKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5100,1
    - Dst: IsInitiator
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5100,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5101,1
    - Dst: GenerateAndEncodeWeaveECDSASignature
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5104,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5105,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::ReleaseNodePrivateKey
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - ' msgCtx'
    - msgHash
    - msgHashLen
    - ' writer'
    - tag
    argTypes:
    - Security::CASE::BeginSessionContext
    - uint8_t*
    - uint8_t
    - TLVWriter
    - uint64_t
    constantsTouched: []
    func_position:
      end: 5114
      start: 5091
    functionDepth: 1
    functionLinenumber: 5091
    functionLinenumberEnd: 5114
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::GenerateNodeSignature
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::ReleaseNodePrivateKey
    - GenerateAndEncodeWeaveECDSASignature
    - IsInitiator
    - nl::Weave::DeviceManager::WeaveDeviceManager::GetNodePrivateKey
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::GenerateNodeSignature(const Security::CASE::BeginSessionContext
      & msgCtx,\n        const uint8_t * msgHash, uint8_t msgHashLen,\n        TLVWriter
      & writer, uint64_t tag)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' msgCtx'
    - payloadBuf
    - payloadBufSize
    - ' payloadLen'
    argTypes:
    - Security::CASE::BeginSessionContext
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 5122
      start: 5116
    functionDepth: 0
    functionLinenumber: 5116
    functionLinenumberEnd: 5122
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::EncodeNodePayload
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::EncodeNodePayload(const Security::CASE::BeginSessionContext
      & msgCtx,\n        uint8_t * payloadBuf, uint16_t payloadBufSize, uint16_t &
      payloadLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::BeginCertValidation
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5127,1
    - Dst: IsInitiator
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' msgCtx'
    - ' validCtx'
    - ' certSet'
    argTypes:
    - Security::CASE::BeginSessionContext
    - Security::ValidationContext
    - Security::WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 5128
      start: 5124
    functionDepth: 1
    functionLinenumber: 5124
    functionLinenumberEnd: 5128
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::BeginValidation
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::BeginCertValidation
    - IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::BeginValidation(const Security::CASE::BeginSessionContext
      & msgCtx,\n        Security::ValidationContext & validCtx, Security::WeaveCertificateSet
      & certSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::HandleCertValidationResult
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5134,1
    - Dst: IsInitiator
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' msgCtx'
    - ' validCtx'
    - ' certSet'
    - ' validRes'
    argTypes:
    - Security::CASE::BeginSessionContext
    - Security::ValidationContext
    - Security::WeaveCertificateSet
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 5135
      start: 5130
    functionDepth: 1
    functionLinenumber: 5130
    functionLinenumberEnd: 5135
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleValidationResult
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::HandleCertValidationResult
    - IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::HandleValidationResult(const Security::CASE::BeginSessionContext
      & msgCtx,\n        Security::ValidationContext & validCtx,\n        Security::WeaveCertificateSet
      & certSet, WEAVE_ERROR & validRes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::EndCertValidation
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' msgCtx'
    - ' validCtx'
    - ' certSet'
    argTypes:
    - Security::CASE::BeginSessionContext
    - Security::ValidationContext
    - Security::WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 5141
      start: 5137
    functionDepth: 1
    functionLinenumber: 5137
    functionLinenumberEnd: 5141
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::EndValidation
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceManager::WeaveDeviceManager::EndCertValidation
    linkageType: ''
    returnType: void
    signature: "WeaveDeviceManager::EndValidation(const Security::CASE::BeginSessionContext
      & msgCtx,\n        Security::ValidationContext & validCtx, Security::WeaveCertificateSet
      & certSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CASECertInfoFromAccessToken
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5151,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - isInitiator
    - buf
    - bufSize
    - ' certInfoLen'
    argTypes:
    - bool
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 5158
      start: 5145
    functionDepth: 0
    functionLinenumber: 5145
    functionLinenumberEnd: 5158
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::GetNodeCertInfo
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - CASECertInfoFromAccessToken
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::GetNodeCertInfo(bool isInitiator, uint8_t *buf,
      uint16_t bufSize, uint16_t& certInfoLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - isInitiator
    - buf
    - bufSize
    - ' payloadLen'
    argTypes:
    - bool
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 5166
      start: 5161
    functionDepth: 0
    functionLinenumber: 5161
    functionLinenumberEnd: 5166
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::GetNodePayload
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::GetNodePayload(bool isInitiator, uint8_t *buf,
      uint16_t bufSize, uint16_t& payloadLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5178,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5179,1
    - Dst: ExtractPrivateKeyFromAccessToken
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5182,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5183,1
    - Dst: free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - isInitiator
    - ' weavePrivKey'
    - ' weavePrivKeyLen'
    argTypes:
    - bool
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 5195
      start: 5171
    functionDepth: 0
    functionLinenumber: 5171
    functionLinenumberEnd: 5195
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::GetNodePrivateKey
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 1
    functionsReached:
    - VerifyOrExit
    - free
    - ExtractPrivateKeyFromAccessToken
    - SuccessOrExit
    - malloc
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::GetNodePrivateKey(bool isInitiator, const uint8_t
      *& weavePrivKey, uint16_t& weavePrivKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - weavePrivKey
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 5202
      start: 5198
    functionDepth: 0
    functionLinenumber: 5198
    functionLinenumberEnd: 5202
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::ReleaseNodePrivateKey
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::ReleaseNodePrivateKey(const uint8_t *weavePrivKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::Init
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5211,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5212,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5214,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5215,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5218,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5219,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5222,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5223,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5225,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5226,1
    - Dst: memset
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5228,1
    - Dst: SecondsSinceEpochToPackedCertTime
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5229,1
    - Dst: time
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 3
    argNames:
    - isInitiator
    - ' certSet'
    - ' validContext'
    argTypes:
    - bool
    - WeaveCertificateSet
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 5235
      start: 5206
    functionDepth: 2
    functionLinenumber: 5206
    functionLinenumberEnd: 5235
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::BeginCertValidation
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 1
    functionsReached:
    - LoadCert
    - memset
    - SuccessOrExit
    - nl::Weave::DeviceManager::WeaveDeviceManager::Init
    - SecondsSinceEpochToPackedCertTime
    - time
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::BeginCertValidation(bool isInitiator, WeaveCertificateSet&
      certSet, ValidationContext& validContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 6
    argNames:
    - isInitiator
    - ' validRes'
    - peerCert
    - peerNodeId
    - ' certSet'
    - ' validContext'
    argTypes:
    - bool
    - WEAVE_ERROR
    - WeaveCertificateData*
    - uint64_t
    - WeaveCertificateSet
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 5270
      start: 5238
    functionDepth: 0
    functionLinenumber: 5238
    functionLinenumberEnd: 5270
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::HandleCertValidationResult
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveDeviceManager::HandleCertValidationResult(bool isInitiator, WEAVE_ERROR&
      validRes,\n        WeaveCertificateData *peerCert, uint64_t peerNodeId, WeaveCertificateSet&
      certSet, ValidationContext& validContext)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' certSet'
    - ' validContext'
    argTypes:
    - WeaveCertificateSet
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 5277
      start: 5273
    functionDepth: 0
    functionLinenumber: 5273
    functionLinenumberEnd: 5277
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::EndCertValidation
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::EndCertValidation(WeaveCertificateSet& certSet,
      ValidationContext& validContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Binding*::BeginConfiguration
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5283,1
    - Dst: nl::Weave::Binding::Configuration::Target_NodeId
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5287,1
    - Dst: nl::Weave::Binding::Configuration::Security_None
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5294,1
    - Dst: nl::Weave::Binding::Configuration::Security_Key
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5298,1
    - Dst: nl::Weave::Binding::Configuration::Security_EncryptionType
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5299,1
    - Dst: nl::Weave::Binding::Configuration::PrepareBinding
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5302,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp:5306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - apBinding
    argTypes:
    - Binding*
    constantsTouched: []
    func_position:
      end: 5311
      start: 5279
    functionDepth: 0
    functionLinenumber: 5279
    functionLinenumberEnd: 5311
    functionName: nl::Weave::DeviceManager::WeaveDeviceManager::ConfigureBinding
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Binding::Configuration::Target_NodeId
    - nl::Weave::Binding::Configuration::Security_EncryptionType
    - Binding*::BeginConfiguration
    - nl::Weave::Binding::Configuration::PrepareBinding
    - nl::Weave::Binding::Configuration::Security_Key
    - WeaveLogDetail
    - nl::Weave::Binding::Configuration::Security_None
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceManager::ConfigureBinding(Binding * const apBinding)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - productId
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 5316
      start: 5313
    functionDepth: 0
    functionLinenumber: 5313
    functionLinenumberEnd: 5316
    functionName: nl::Weave::DeviceManager::IsProductWildcard
    functionSourceFile: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsProductWildcard(uint16_t productId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - WriteBleCharacteristicCBFunct
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: DeviceManager_BlePlatformDelegate::SetWriteCharCB
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BlePlatformDelegate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetWriteCharCB(WriteBleCharacteristicCBFunct cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - SubscribeBleCharacteristicCBFunct
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: DeviceManager_BlePlatformDelegate::SetSubscribeCharCB
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BlePlatformDelegate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetSubscribeCharCB(SubscribeBleCharacteristicCBFunct cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - CloseBleCBFunct
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: DeviceManager_BlePlatformDelegate::SetCloseCB
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BlePlatformDelegate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetCloseCB(CloseBleCBFunct cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - connObj
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: DeviceManager_BleApplicationDelegate::NotifyWeaveConnectionClosed
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BleApplicationDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DeviceManager_BleApplicationDelegate::NotifyWeaveConnectionClosed(BLE_CONNECTION_OBJECT
      connObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: BleEventBase
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: BleEventBase
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: BleEventBase
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: BleEventBase
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 115
    functionName: BleEventBase
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: BleEventBase
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 126
    functionName: BleSubscribeEvent
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: BleSubscribeEvent
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: BleDisconnectEvent
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: BleDisconnectEvent
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:292,1
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:292,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:295,1
    - Dst: snprintf
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:295,1
    - Dst: strlen
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:295,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:295,1
    - Dst: nl::Inet::GetInterfaceName
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:298,1
    - Dst: strlen
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:298,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:299,1
    - Dst: scriptCallback
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:302,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - deviceMgr
    - appReqState
    - devdesc
    - deviceAddr
    - deviceIntf
    argTypes:
    - WeaveDeviceManager*
    - void*
    - DeviceDescription::WeaveDeviceDescriptor*
    - IPAddress
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 309
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 309
    functionName: DeviceEnumerationResponseFunctTrampoline
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - scriptCallback
    - VerifyOrExit
    - strlen
    - SuccessOrExit
    - snprintf
    - IPAddress::ToString
    - nl::Inet::GetInterfaceName
    - nl::Weave::System::MapErrorPOSIX
    linkageType: ''
    returnType: void
    signature: "DeviceEnumerationResponseFunctTrampoline(WeaveDeviceManager *deviceMgr,
      void *appReqState, const DeviceDescription::WeaveDeviceDescriptor *devdesc,\n
      \                                                    IPAddress deviceAddr, InterfaceId
      deviceIntf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager::WeaveDeviceManager
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:315,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:316,1
    - Dst: Init
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:318,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:319,1
    - Dst: SetUseAccessToken
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:321,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - outDevMgr
    argTypes:
    - WeaveDeviceManager**
    constantsTouched: []
    func_position:
      end: 331
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 331
    functionName: nl_Weave_DeviceManager_NewDeviceManager
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - WeaveDeviceManager::WeaveDeviceManager
    - Init
    - SuccessOrExit
    - SetUseAccessToken
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_NewDeviceManager(WeaveDeviceManager **outDevMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::Shutdown
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - devMgr
    argTypes:
    - WeaveDeviceManager*
    constantsTouched: []
    func_position:
      end: 341
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 341
    functionName: nl_Weave_DeviceManager_DeleteDeviceManager
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::Shutdown
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_DeleteDeviceManager(WeaveDeviceManager *devMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:349,1
    - Dst: State
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:371,1
    - Dst: PrepareSelect
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:372,1
    - Dst: PrepareSelect
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:375,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:390,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:390,1
    - Dst: read
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:398,1
    - Dst: printf
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:405,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:406,1
    - Dst: GetBleEventCB
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:412,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:420,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:421,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:423,1
    - Dst: System::PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:423,1
    - Dst: System::PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:424,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:427,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:428,1
    - Dst: HandleIndicationReceived
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:430,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:434,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:442,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:443,1
    - Dst: HandleWriteConfirmation
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:445,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:449,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:450,1
    - Dst: HandleSubscribeComplete
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:457,1
    - Dst: HandleConnectionError
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:461,1
    - Dst: HandleUnsubscribeComplete
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:468,1
    - Dst: HandleConnectionError
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:472,1
    - Dst: printf
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:477,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:478,1
    - Dst: HandleConnectionError
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:484,1
    - Dst: printf
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:488,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:489,1
    - Dst: printf
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:495,1
    - Dst: State
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:502,1
    - Dst: HandleSelectResult
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:503,1
    - Dst: HandleSelectResult
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:506,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 90
    argCount: 1
    argNames:
    - sleepTimeMS
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 512
      start: 343
    functionDepth: 3
    functionLinenumber: 343
    functionLinenumberEnd: 512
    functionName: nl_Weave_DeviceManager_DriveIO
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - PrepareSelect
    - System::PacketBuffer*::SetDataLength
    - printf
    - nl::Weave::System::PacketBuffer::New
    - nl::Weave::System::PacketBuffer::Free
    - HandleSubscribeComplete
    - VerifyOrExit
    - System::PacketBuffer*::Start
    - HandleUnsubscribeComplete
    - HandleSelectResult
    - ExitNow
    - HandleWriteConfirmation
    - HandleIndicationReceived
    - nl::Weave::System::MapErrorPOSIX
    - HandleConnectionError
    - State
    - GetBleEventCB
    - memcpy
    - read
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_DriveIO(uint32_t sleepTimeMS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:522,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 528
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 528
    functionName: nl_Weave_DeviceManager_WakeForBleIO
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_WakeForBleIO()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - getBleEventCB
    argTypes:
    - GetBleEventCBFunct
    constantsTouched: []
    func_position:
      end: 535
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 535
    functionName: nl_Weave_DeviceManager_SetBleEventCB
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_SetBleEventCB(GetBleEventCBFunct getBleEventCB)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetWriteCharCB
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - writeBleCharacteristicCB
    argTypes:
    - WriteBleCharacteristicCBFunct
    constantsTouched: []
    func_position:
      end: 541
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 541
    functionName: nl_Weave_DeviceManager_SetBleWriteCharacteristic
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - SetWriteCharCB
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_SetBleWriteCharacteristic(WriteBleCharacteristicCBFunct
      writeBleCharacteristicCB)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetSubscribeCharCB
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - subscribeBleCharacteristicCB
    argTypes:
    - SubscribeBleCharacteristicCBFunct
    constantsTouched: []
    func_position:
      end: 547
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 547
    functionName: nl_Weave_DeviceManager_SetBleSubscribeCharacteristic
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - SetSubscribeCharCB
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_SetBleSubscribeCharacteristic(SubscribeBleCharacteristicCBFunct
      subscribeBleCharacteristicCB)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetCloseCB
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - closeBleCB
    argTypes:
    - CloseBleCBFunct
    constantsTouched: []
    func_position:
      end: 553
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 553
    functionName: nl_Weave_DeviceManager_SetBleClose
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - SetCloseCB
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_SetBleClose(CloseBleCBFunct closeBleCB)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::Close
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - devMgr
    argTypes:
    - WeaveDeviceManager*
    constantsTouched: []
    func_position:
      end: 560
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 560
    functionName: nl_Weave_DeviceManager_Close
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::Close
    linkageType: ''
    returnType: void
    signature: nl_Weave_DeviceManager_Close(WeaveDeviceManager *devMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::IdentifyDevice
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - devMgr
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - IdentifyDeviceCompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 565
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 565
    functionName: nl_Weave_DeviceManager_IdentifyDevice
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::IdentifyDevice
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_IdentifyDevice(WeaveDeviceManager *devMgr, IdentifyDeviceCompleteFunct
      onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::PairToken
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - devMgr
    - pairingToken
    - pairingTokenLen
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - uint8_t*
    - uint32_t
    - PairTokenCompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 570
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 570
    functionName: nl_Weave_DeviceManager_PairToken
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::PairToken
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_PairToken(WeaveDeviceManager *devMgr, const
      uint8_t *pairingToken, uint32_t pairingTokenLen, PairTokenCompleteFunct onComplete,
      ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::UnpairToken
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - devMgr
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - UnpairTokenCompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 575
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 575
    functionName: nl_Weave_DeviceManager_UnpairToken
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::UnpairToken
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_UnpairToken(WeaveDeviceManager *devMgr, UnpairTokenCompleteFunct
      onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::StartDeviceEnumeration
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - devMgr
    - deviceCriteria
    - onResponse
    - onError
    argTypes:
    - WeaveDeviceManager*
    - IdentifyDeviceCriteria*
    - DeviceEnumerationResponseScriptFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 586
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 586
    functionName: nl_Weave_DeviceManager_StartDeviceEnumeration
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::StartDeviceEnumeration
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "nl_Weave_DeviceManager_StartDeviceEnumeration(WeaveDeviceManager *devMgr,
      const IdentifyDeviceCriteria *deviceCriteria,\n    DeviceEnumerationResponseScriptFunct
      onResponse, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::StopDeviceEnumeration
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - devMgr
    argTypes:
    - WeaveDeviceManager*
    constantsTouched: []
    func_position:
      end: 591
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 591
    functionName: nl_Weave_DeviceManager_StopDeviceEnumeration
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::StopDeviceEnumeration
    linkageType: ''
    returnType: void
    signature: nl_Weave_DeviceManager_StopDeviceEnumeration(WeaveDeviceManager *devMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:600,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:601,1
    - Dst: WeaveDeviceManager*::ConnectDevice
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - devMgr
    - deviceId
    - deviceAddrStr
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - uint64_t
    - char*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 610
      start: 593
    functionDepth: 2
    functionLinenumber: 593
    functionLinenumberEnd: 610
    functionName: nl_Weave_DeviceManager_ConnectDevice_NoAuth
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::ConnectDevice
    - nl::Inet::IPAddress::FromString
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_ConnectDevice_NoAuth(WeaveDeviceManager *devMgr,
      uint64_t deviceId, const char *deviceAddrStr, CompleteFunct onComplete, ErrorFunct
      onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:619,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:620,1
    - Dst: WeaveDeviceManager*::ConnectDevice
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:625,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - devMgr
    - deviceId
    - deviceAddrStr
    - pairingCode
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - uint64_t
    - char*
    - char*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 629
      start: 612
    functionDepth: 2
    functionLinenumber: 612
    functionLinenumberEnd: 629
    functionName: nl_Weave_DeviceManager_ConnectDevice_PairingCode
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::ConnectDevice
    - nl::Inet::IPAddress::FromString
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_ConnectDevice_PairingCode(WeaveDeviceManager
      *devMgr, uint64_t deviceId, const char *deviceAddrStr, const char *pairingCode,
      CompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:639,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:640,1
    - Dst: WeaveDeviceManager*::ConnectDevice
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:645,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - devMgr
    - deviceId
    - deviceAddrStr
    - accessToken
    - accessTokenLen
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - uint64_t
    - char*
    - uint8_t*
    - uint32_t
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 649
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 649
    functionName: nl_Weave_DeviceManager_ConnectDevice_AccessToken
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::ConnectDevice
    - nl::Inet::IPAddress::FromString
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "nl_Weave_DeviceManager_ConnectDevice_AccessToken(WeaveDeviceManager
      *devMgr, uint64_t deviceId, const char *deviceAddrStr,\n        const uint8_t
      *accessToken, uint32_t accessTokenLen, CompleteFunct onComplete, ErrorFunct
      onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::RendezvousDevice
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - devMgr
    - deviceCriteria
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - IdentifyDeviceCriteria*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 655
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 655
    functionName: nl_Weave_DeviceManager_RendezvousDevice_NoAuth
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::RendezvousDevice
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "nl_Weave_DeviceManager_RendezvousDevice_NoAuth(WeaveDeviceManager
      *devMgr,\n        const IdentifyDeviceCriteria *deviceCriteria, CompleteFunct
      onComplete, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::RendezvousDevice
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - devMgr
    - pairingCode
    - deviceCriteria
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - char*
    - IdentifyDeviceCriteria*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 661
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 661
    functionName: nl_Weave_DeviceManager_RendezvousDevice_PairingCode
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::RendezvousDevice
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "nl_Weave_DeviceManager_RendezvousDevice_PairingCode(WeaveDeviceManager
      *devMgr, const char *pairingCode,\n        const IdentifyDeviceCriteria *deviceCriteria,
      CompleteFunct onComplete, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::RendezvousDevice
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - devMgr
    - accessToken
    - accessTokenLen
    - deviceCriteria
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - uint8_t*
    - uint32_t
    - IdentifyDeviceCriteria*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 667
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 667
    functionName: nl_Weave_DeviceManager_RendezvousDevice_AccessToken
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::RendezvousDevice
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "nl_Weave_DeviceManager_RendezvousDevice_AccessToken(WeaveDeviceManager
      *devMgr, const uint8_t *accessToken, uint32_t accessTokenLen,\n        const
      IdentifyDeviceCriteria *deviceCriteria, CompleteFunct onComplete, ErrorFunct
      onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::PassiveRendezvousDevice
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - devMgr
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 672
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 672
    functionName: nl_Weave_DeviceManager_PassiveRendezvousDevice_NoAuth
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::PassiveRendezvousDevice
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_PassiveRendezvousDevice_NoAuth(WeaveDeviceManager
      *devMgr, CompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::PassiveRendezvousDevice
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - devMgr
    - pairingCode
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - char*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 677
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 677
    functionName: nl_Weave_DeviceManager_PassiveRendezvousDevice_PairingCode
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::PassiveRendezvousDevice
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_PassiveRendezvousDevice_PairingCode(WeaveDeviceManager
      *devMgr, const char *pairingCode, CompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::PassiveRendezvousDevice
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - devMgr
    - accessToken
    - accessTokenLen
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - uint8_t*
    - uint32_t
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 682
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 682
    functionName: nl_Weave_DeviceManager_PassiveRendezvousDevice_AccessToken
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::PassiveRendezvousDevice
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_PassiveRendezvousDevice_AccessToken(WeaveDeviceManager
      *devMgr, const uint8_t *accessToken, uint32_t accessTokenLen, CompleteFunct
      onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:692,1
    - Dst: HandleCommandTest
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:696,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 10
    argNames:
    - devMgr
    - connObj
    - onComplete
    - onError
    - count
    - duration
    - delay
    - ack
    - size
    - rx
    argTypes:
    - WeaveDeviceManager*
    - BLE_CONNECTION_OBJECT
    - CompleteFunct
    - ErrorFunct
    - uint32_t
    - uint32_t
    - uint16_t
    - uint8_t
    - uint16_t
    - bool
    constantsTouched: []
    func_position:
      end: 703
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 703
    functionName: nl_Weave_DeviceManager_TestBle
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - HandleCommandTest
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_TestBle(WeaveDeviceManager *devMgr, BLE_CONNECTION_OBJECT
      connObj, CompleteFunct onComplete, ErrorFunct onError, uint32_t count, uint32_t
      duration, uint16_t delay, uint8_t ack, uint16_t size, bool rx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:712,1
    - Dst: HandleCommandTestResult
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:716,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - devMgr
    - connObj
    - local
    argTypes:
    - WeaveDeviceManager*
    - BLE_CONNECTION_OBJECT
    - bool
    constantsTouched: []
    func_position:
      end: 723
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 723
    functionName: nl_Weave_DeviceManager_TestResultBle
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - HandleCommandTestResult
    - WeaveLogError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_TestResultBle(WeaveDeviceManager *devMgr, BLE_CONNECTION_OBJECT
      connObj, bool local)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:732,1
    - Dst: HandleCommandTestAbort
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:736,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:738,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - devMgr
    - connObj
    argTypes:
    - WeaveDeviceManager*
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 743
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 743
    functionName: nl_Weave_DeviceManager_TestAbortBle
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - HandleCommandTestAbort
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_TestAbortBle(WeaveDeviceManager *devMgr, BLE_CONNECTION_OBJECT
      connObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:752,1
    - Dst: HandleCommandTxTiming
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:756,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - devMgr
    - connObj
    - enabled
    - remote
    argTypes:
    - WeaveDeviceManager*
    - BLE_CONNECTION_OBJECT
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 763
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 763
    functionName: nl_Weave_DeviceManager_TxTimingBle
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - HandleCommandTxTiming
    - WeaveLogError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_TxTimingBle(WeaveDeviceManager *devMgr, BLE_CONNECTION_OBJECT
      connObj, bool enabled, bool remote)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::ConnectBle
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - devMgr
    - connObj
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - BLE_CONNECTION_OBJECT
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 769
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 769
    functionName: nl_Weave_DeviceManager_ConnectBle_NoAuth
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::ConnectBle
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "nl_Weave_DeviceManager_ConnectBle_NoAuth(WeaveDeviceManager *devMgr,
      BLE_CONNECTION_OBJECT connObj,\n            CompleteFunct onComplete, ErrorFunct
      onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::ConnectBle
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - devMgr
    - connObj
    - pairingCode
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - BLE_CONNECTION_OBJECT
    - char*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 775
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 775
    functionName: nl_Weave_DeviceManager_ConnectBle_PairingCode
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::ConnectBle
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "nl_Weave_DeviceManager_ConnectBle_PairingCode(WeaveDeviceManager *devMgr,
      BLE_CONNECTION_OBJECT connObj, const char *pairingCode,\n            CompleteFunct
      onComplete, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::ConnectBle
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - devMgr
    - connObj
    - accessToken
    - accessTokenLen
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - BLE_CONNECTION_OBJECT
    - uint8_t*
    - uint32_t
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 781
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 781
    functionName: nl_Weave_DeviceManager_ConnectBle_AccessToken
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::ConnectBle
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "nl_Weave_DeviceManager_ConnectBle_AccessToken(WeaveDeviceManager *devMgr,
      BLE_CONNECTION_OBJECT connObj, const uint8_t *accessToken, uint32_t accessTokenLen,\n
      \           CompleteFunct onComplete, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:792,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:793,1
    - Dst: WeaveDeviceManager*::RemotePassiveRendezvous
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 8
    argNames:
    - devMgr
    - rendezvousDeviceAddrStr
    - accessToken
    - accessTokenLen
    - rendezvousTimeout
    - inactivityTimeout
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - char*
    - char*
    - uint32_t
    - uint16_t
    - uint16_t
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 800
      start: 785
    functionDepth: 2
    functionLinenumber: 785
    functionLinenumberEnd: 800
    functionName: nl_Weave_DeviceManager_RemotePassiveRendezvous_CASEAuth
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::FromString
    - ExitNow
    - WeaveDeviceManager*::RemotePassiveRendezvous
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "nl_Weave_DeviceManager_RemotePassiveRendezvous_CASEAuth(WeaveDeviceManager
      *devMgr, const char *rendezvousDeviceAddrStr,\n            const char *accessToken,
      uint32_t accessTokenLen, const uint16_t rendezvousTimeout,\n            const
      uint16_t inactivityTimeout, CompleteFunct onComplete, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:809,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:810,1
    - Dst: WeaveDeviceManager*::RemotePassiveRendezvous
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - devMgr
    - rendezvousDeviceAddrStr
    - pairingCode
    - rendezvousTimeout
    - inactivityTimeout
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - char*
    - char*
    - uint16_t
    - uint16_t
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 817
      start: 802
    functionDepth: 2
    functionLinenumber: 802
    functionLinenumberEnd: 817
    functionName: nl_Weave_DeviceManager_RemotePassiveRendezvous_PASEAuth
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::FromString
    - ExitNow
    - WeaveDeviceManager*::RemotePassiveRendezvous
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "nl_Weave_DeviceManager_RemotePassiveRendezvous_PASEAuth(WeaveDeviceManager
      *devMgr, const char *rendezvousDeviceAddrStr,\n        const char *pairingCode,
      const uint16_t rendezvousTimeout, const uint16_t inactivityTimeout,\n        CompleteFunct
      onComplete, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:826,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:827,1
    - Dst: WeaveDeviceManager*::RemotePassiveRendezvous
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - devMgr
    - rendezvousDeviceAddrStr
    - rendezvousTimeout
    - inactivityTimeout
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - char*
    - uint16_t
    - uint16_t
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 834
      start: 819
    functionDepth: 2
    functionLinenumber: 819
    functionLinenumberEnd: 834
    functionName: nl_Weave_DeviceManager_RemotePassiveRendezvous_NoAuth
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::FromString
    - ExitNow
    - WeaveDeviceManager*::RemotePassiveRendezvous
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "nl_Weave_DeviceManager_RemotePassiveRendezvous_NoAuth(WeaveDeviceManager
      *devMgr, const char *rendezvousDeviceAddrStr,\n        const uint16_t rendezvousTimeout,
      const uint16_t inactivityTimeout, CompleteFunct onComplete,\n        ErrorFunct
      onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::ReconnectDevice
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - devMgr
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 839
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 839
    functionName: nl_Weave_DeviceManager_ReconnectDevice
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::ReconnectDevice
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_ReconnectDevice(WeaveDeviceManager *devMgr,
      CompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::EnableConnectionMonitor
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - devMgr
    - interval
    - timeout
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - uint16_t
    - uint16_t
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 844
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 844
    functionName: nl_Weave_DeviceManager_EnableConnectionMonitor
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::EnableConnectionMonitor
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_EnableConnectionMonitor(WeaveDeviceManager *devMgr,
      uint16_t interval, uint16_t timeout, CompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::DisableConnectionMonitor
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - devMgr
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 849
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 849
    functionName: nl_Weave_DeviceManager_DisableConnectionMonitor
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::DisableConnectionMonitor
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_DisableConnectionMonitor(WeaveDeviceManager
      *devMgr, CompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::ScanNetworks
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - devMgr
    - networkType
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - NetworkType
    - NetworkScanCompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 854
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 854
    functionName: nl_Weave_DeviceManager_ScanNetworks
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::ScanNetworks
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_ScanNetworks(WeaveDeviceManager *devMgr, NetworkType
      networkType, NetworkScanCompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::GetCameraAuthData
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - devMgr
    - nonce
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - char*
    - GetCameraAuthDataCompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 859
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 859
    functionName: nl_Weave_DeviceManager_GetCameraAuthData
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::GetCameraAuthData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_GetCameraAuthData(WeaveDeviceManager *devMgr,
      const char* nonce, GetCameraAuthDataCompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::GetNetworks
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - devMgr
    - getFlags
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - uint8_t
    - GetNetworksCompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 864
      start: 861
    functionDepth: 0
    functionLinenumber: 861
    functionLinenumberEnd: 864
    functionName: nl_Weave_DeviceManager_GetNetworks
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::GetNetworks
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_GetNetworks(WeaveDeviceManager *devMgr, uint8_t
      getFlags, GetNetworksCompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::AddNetwork
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - devMgr
    - netInfo
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - NetworkInfo*
    - AddNetworkCompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 869
      start: 866
    functionDepth: 0
    functionLinenumber: 866
    functionLinenumberEnd: 869
    functionName: nl_Weave_DeviceManager_AddNetwork
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::AddNetwork
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_AddNetwork(WeaveDeviceManager *devMgr, const
      NetworkInfo *netInfo, AddNetworkCompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::UpdateNetwork
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - devMgr
    - netInfo
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - NetworkInfo*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 874
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 874
    functionName: nl_Weave_DeviceManager_UpdateNetwork
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::UpdateNetwork
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_UpdateNetwork(WeaveDeviceManager *devMgr, const
      NetworkInfo *netInfo, CompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::RemoveNetwork
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - devMgr
    - networkId
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - uint32_t
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 879
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 879
    functionName: nl_Weave_DeviceManager_RemoveNetwork
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::RemoveNetwork
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_RemoveNetwork(WeaveDeviceManager *devMgr, uint32_t
      networkId, CompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::EnableNetwork
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - devMgr
    - networkId
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - uint32_t
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 884
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 884
    functionName: nl_Weave_DeviceManager_EnableNetwork
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::EnableNetwork
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_EnableNetwork(WeaveDeviceManager *devMgr, uint32_t
      networkId, CompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::DisableNetwork
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - devMgr
    - networkId
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - uint32_t
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 889
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 889
    functionName: nl_Weave_DeviceManager_DisableNetwork
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::DisableNetwork
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_DisableNetwork(WeaveDeviceManager *devMgr, uint32_t
      networkId, CompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::TestNetworkConnectivity
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - devMgr
    - networkId
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - uint32_t
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 894
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 894
    functionName: nl_Weave_DeviceManager_TestNetworkConnectivity
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::TestNetworkConnectivity
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_TestNetworkConnectivity(WeaveDeviceManager *devMgr,
      uint32_t networkId, CompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::GetRendezvousMode
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - devMgr
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - GetRendezvousModeCompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 899
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 899
    functionName: nl_Weave_DeviceManager_GetRendezvousMode
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::GetRendezvousMode
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_GetRendezvousMode(WeaveDeviceManager *devMgr,
      GetRendezvousModeCompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::SetRendezvousMode
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - devMgr
    - modeFlags
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - uint16_t
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 904
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 904
    functionName: nl_Weave_DeviceManager_SetRendezvousMode
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::SetRendezvousMode
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_SetRendezvousMode(WeaveDeviceManager *devMgr,
      uint16_t modeFlags, CompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::GetWirelessRegulatoryConfig
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - devMgr
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - GetWirelessRegulatoryConfigCompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 909
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 909
    functionName: nl_Weave_DeviceManager_GetWirelessRegulatoryConfig
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::GetWirelessRegulatoryConfig
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_GetWirelessRegulatoryConfig(WeaveDeviceManager
      *devMgr, GetWirelessRegulatoryConfigCompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::SetWirelessRegulatoryConfig
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - devMgr
    - regConfig
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - WirelessRegConfig*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 914
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 914
    functionName: nl_Weave_DeviceManager_SetWirelessRegulatoryConfig
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::SetWirelessRegulatoryConfig
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_SetWirelessRegulatoryConfig(WeaveDeviceManager
      *devMgr, const WirelessRegConfig *regConfig, CompleteFunct onComplete, ErrorFunct
      onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::GetLastNetworkProvisioningResult
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - devMgr
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 919
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 919
    functionName: nl_Weave_DeviceManager_GetLastNetworkProvisioningResult
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::GetLastNetworkProvisioningResult
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_GetLastNetworkProvisioningResult(WeaveDeviceManager
      *devMgr, CompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::CreateFabric
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - devMgr
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 924
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 924
    functionName: nl_Weave_DeviceManager_CreateFabric
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::CreateFabric
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_CreateFabric(WeaveDeviceManager *devMgr, CompleteFunct
      onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::LeaveFabric
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - devMgr
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 929
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 929
    functionName: nl_Weave_DeviceManager_LeaveFabric
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::LeaveFabric
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_LeaveFabric(WeaveDeviceManager *devMgr, CompleteFunct
      onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::GetFabricConfig
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - devMgr
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - GetFabricConfigCompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 934
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 934
    functionName: nl_Weave_DeviceManager_GetFabricConfig
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::GetFabricConfig
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_GetFabricConfig(WeaveDeviceManager *devMgr,
      GetFabricConfigCompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::JoinExistingFabric
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - devMgr
    - fabricConfig
    - fabricConfigLen
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - uint8_t*
    - uint32_t
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 939
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 939
    functionName: nl_Weave_DeviceManager_JoinExistingFabric
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::JoinExistingFabric
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_JoinExistingFabric(WeaveDeviceManager *devMgr,
      const uint8_t *fabricConfig, uint32_t fabricConfigLen, CompleteFunct onComplete,
      ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::Ping
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - devMgr
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 944
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 944
    functionName: nl_Weave_DeviceManager_Ping
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::Ping
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_Ping(WeaveDeviceManager *devMgr, CompleteFunct
      onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:951,1
    - Dst: strlen
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:954,1
    - Dst: InterfaceNameToId
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:961,1
    - Dst: WeaveDeviceManager*::SetRendezvousAddress
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:966,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - devMgr
    - rendezvousAddrStr
    - rendezvousIntfStr
    argTypes:
    - WeaveDeviceManager*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 967
      start: 946
    functionDepth: 2
    functionLinenumber: 946
    functionLinenumberEnd: 967
    functionName: nl_Weave_DeviceManager_SetRendezvousAddress
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - WeaveDeviceManager*::SetRendezvousAddress
    - InterfaceNameToId
    - nl::Inet::IPAddress::FromString
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_SetRendezvousAddress(WeaveDeviceManager *devMgr,
      const char *rendezvousAddrStr, const char *rendezvousIntfStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::SetAutoReconnect
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - devMgr
    - autoReconnect
    argTypes:
    - WeaveDeviceManager*
    - bool
    constantsTouched: []
    func_position:
      end: 972
      start: 969
    functionDepth: 0
    functionLinenumber: 969
    functionLinenumberEnd: 972
    functionName: nl_Weave_DeviceManager_SetAutoReconnect
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::SetAutoReconnect
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_SetAutoReconnect(WeaveDeviceManager *devMgr,
      bool autoReconnect)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::SetRendezvousLinkLocal
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - devMgr
    - RendezvousLinkLocal
    argTypes:
    - WeaveDeviceManager*
    - bool
    constantsTouched: []
    func_position:
      end: 977
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 977
    functionName: nl_Weave_DeviceManager_SetRendezvousLinkLocal
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::SetRendezvousLinkLocal
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_SetRendezvousLinkLocal(WeaveDeviceManager *devMgr,
      bool RendezvousLinkLocal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::SetConnectTimeout
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - devMgr
    - timeoutMS
    argTypes:
    - WeaveDeviceManager*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 982
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 982
    functionName: nl_Weave_DeviceManager_SetConnectTimeout
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::SetConnectTimeout
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_SetConnectTimeout(WeaveDeviceManager *devMgr,
      uint32_t timeoutMS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::RegisterServicePairAccount
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 11
    argNames:
    - devMgr
    - serviceId
    - accountId
    - serviceConfig
    - serviceConfigLen
    - pairingToken
    - pairingTokenLen
    - pairingInitData
    - pairingInitDataLen
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - uint64_t
    - char*
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 992
      start: 984
    functionDepth: 0
    functionLinenumber: 984
    functionLinenumberEnd: 992
    functionName: nl_Weave_DeviceManager_RegisterServicePairAccount
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::RegisterServicePairAccount
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "nl_Weave_DeviceManager_RegisterServicePairAccount(WeaveDeviceManager
      *devMgr, uint64_t serviceId, const char *accountId,\n        const uint8_t *serviceConfig,
      uint16_t serviceConfigLen,\n        const uint8_t *pairingToken, uint16_t pairingTokenLen,\n
      \       const uint8_t *pairingInitData, uint16_t pairingInitDataLen,\n        CompleteFunct
      onComplete, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::UpdateService
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - devMgr
    - serviceId
    - serviceConfig
    - serviceConfigLen
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - uint64_t
    - uint8_t*
    - uint16_t
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 998
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 998
    functionName: nl_Weave_DeviceManager_UpdateService
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::UpdateService
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "nl_Weave_DeviceManager_UpdateService(WeaveDeviceManager *devMgr, uint64_t
      serviceId, const uint8_t *serviceConfig, uint16_t serviceConfigLen,\n                          CompleteFunct
      onComplete, ErrorFunct onError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::UnregisterService
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - devMgr
    - serviceId
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - uint64_t
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1003
      start: 1000
    functionDepth: 0
    functionLinenumber: 1000
    functionLinenumberEnd: 1003
    functionName: nl_Weave_DeviceManager_UnregisterService
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::UnregisterService
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_UnregisterService(WeaveDeviceManager *devMgr,
      uint64_t serviceId, CompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::ArmFailSafe
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - devMgr
    - armMode
    - failSafeToken
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - uint8_t
    - uint32_t
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1008
      start: 1005
    functionDepth: 0
    functionLinenumber: 1005
    functionLinenumberEnd: 1008
    functionName: nl_Weave_DeviceManager_ArmFailSafe
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::ArmFailSafe
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_ArmFailSafe(WeaveDeviceManager *devMgr, uint8_t
      armMode, uint32_t failSafeToken, CompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::DisarmFailSafe
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - devMgr
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1013
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1013
    functionName: nl_Weave_DeviceManager_DisarmFailSafe
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::DisarmFailSafe
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_DisarmFailSafe(WeaveDeviceManager *devMgr, CompleteFunct
      onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::ResetConfig
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - devMgr
    - resetFlags
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - uint16_t
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1018
      start: 1015
    functionDepth: 0
    functionLinenumber: 1015
    functionLinenumberEnd: 1018
    functionName: nl_Weave_DeviceManager_ResetConfig
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::ResetConfig
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_ResetConfig(WeaveDeviceManager *devMgr, uint16_t
      resetFlags, CompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::StartSystemTest
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - devMgr
    - profileId
    - testId
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - uint32_t
    - uint32_t
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1023
      start: 1020
    functionDepth: 0
    functionLinenumber: 1020
    functionLinenumberEnd: 1023
    functionName: nl_Weave_DeviceManager_StartSystemTest
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::StartSystemTest
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_StartSystemTest(WeaveDeviceManager *devMgr,
      uint32_t profileId, uint32_t testId, CompleteFunct onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::StopSystemTest
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - devMgr
    - onComplete
    - onError
    argTypes:
    - WeaveDeviceManager*
    - CompleteFunct
    - ErrorFunct
    constantsTouched: []
    func_position:
      end: 1028
      start: 1025
    functionDepth: 0
    functionLinenumber: 1025
    functionLinenumberEnd: 1028
    functionName: nl_Weave_DeviceManager_StopSystemTest
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::StopSystemTest
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_StopSystemTest(WeaveDeviceManager *devMgr, CompleteFunct
      onComplete, ErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::IsConnected
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - devMgr
    argTypes:
    - WeaveDeviceManager*
    constantsTouched: []
    func_position:
      end: 1033
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1033
    functionName: nl_Weave_DeviceManager_IsConnected
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::IsConnected
    linkageType: ''
    returnType: bool
    signature: nl_Weave_DeviceManager_IsConnected(WeaveDeviceManager *devMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::GetDeviceId
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - devMgr
    argTypes:
    - WeaveDeviceManager*
    constantsTouched: []
    func_position:
      end: 1040
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1040
    functionName: nl_Weave_DeviceManager_DeviceId
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveDeviceManager*::GetDeviceId
    linkageType: ''
    returnType: uint64_t
    signature: nl_Weave_DeviceManager_DeviceId(WeaveDeviceManager *devMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceManager*::GetDeviceAddress
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1047,1
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1049,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - devMgr
    argTypes:
    - WeaveDeviceManager*
    constantsTouched: []
    func_position:
      end: 1054
      start: 1042
    functionDepth: 0
    functionLinenumber: 1042
    functionLinenumberEnd: 1054
    functionName: nl_Weave_DeviceManager_DeviceAddress
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - IPAddress::ToString
    - WeaveDeviceManager*::GetDeviceAddress
    linkageType: ''
    returnType: char
    signature: '*nl_Weave_DeviceManager_DeviceAddress(WeaveDeviceManager *devMgr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CloseEndpoints
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1061,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1056
    functionDepth: 0
    functionLinenumber: 1056
    functionLinenumberEnd: 1062
    functionName: nl_Weave_DeviceManager_CloseEndpoints
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - CloseEndpoints
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_DeviceManager_CloseEndpoints()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1067
      start: 1064
    functionDepth: 1
    functionLinenumber: 1064
    functionLinenumberEnd: 1067
    functionName: nl_Weave_DeviceManager_ErrorToString
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::ErrorStr
    linkageType: ''
    returnType: char
    signature: '*nl_Weave_DeviceManager_ErrorToString(WEAVE_ERROR err)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::StatusReportStr
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - profileId
    - statusCode
    argTypes:
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1072
      start: 1069
    functionDepth: 1
    functionLinenumber: 1069
    functionLinenumberEnd: 1072
    functionName: nl_Weave_DeviceManager_StatusReportToString
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::StatusReportStr
    linkageType: ''
    returnType: char
    signature: '*nl_Weave_DeviceManager_StatusReportToString(uint32_t profileId, uint16_t
      statusCode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Logging::GetLogFilter
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1081
    functionName: nl_Weave_DeviceManager_GetLogFilter
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Logging::GetLogFilter
    linkageType: ''
    returnType: uint8_t
    signature: nl_Weave_DeviceManager_GetLogFilter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Logging::SetLogFilter
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - category
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1088
      start: 1083
    functionDepth: 1
    functionLinenumber: 1083
    functionLinenumberEnd: 1088
    functionName: nl_Weave_DeviceManager_SetLogFilter
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Logging::SetLogFilter
    linkageType: ''
    returnType: void
    signature: nl_Weave_DeviceManager_SetLogFilter(uint8_t category)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1100,1
    - Dst: nl::Weave::Platform::Security::InitSecureRandomDataSource
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1105,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1106,1
    - Dst: State
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1108,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1109,1
    - Dst: Init
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1111,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1112,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1115,1
    - Dst: Init
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1118,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1119,1
    - Dst: Init
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1123,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1124,1
    - Dst: pipe
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1130,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1132,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1133,1
    - Dst: fcntl
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1137,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1140,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1141,1
    - Dst: fcntl
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1145,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1147,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1148,1
    - Dst: fcntl
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1152,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1155,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1156,1
    - Dst: fcntl
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1160,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1162,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1163,1
    - Dst: Init
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1168,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1169,1
    - Dst: GenerateWeaveNodeId
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1174,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1175,1
    - Dst: Init
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1191,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1192,1
    - Dst: Init
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1195,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1196,1
    - Dst: Init
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1199,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1200,1
    - Dst: nl_Weave_Stack_Shutdown
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1205,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1090
    functionDepth: 1
    functionLinenumber: 1090
    functionLinenumberEnd: 1207
    functionName: nl_Weave_Stack_Init
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - State
    - nl_Weave_Stack_Shutdown
    - fcntl
    - GenerateWeaveNodeId
    - nl::Weave::Platform::Security::InitSecureRandomDataSource
    - ExitNow
    - Init
    - SuccessOrExit
    - nl::Weave::System::MapErrorPOSIX
    - pipe
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_Stack_Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1214,1
    - Dst: State
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1216,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1209
    functionDepth: 0
    functionLinenumber: 1209
    functionLinenumberEnd: 1223
    functionName: nl_Weave_Stack_Shutdown
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 1
    functionsReached:
    - State
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_Stack_Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1228
      start: 1225
    functionDepth: 1
    functionLinenumber: 1225
    functionLinenumberEnd: 1228
    functionName: nl_Weave_Stack_ErrorToString
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::ErrorStr
    linkageType: ''
    returnType: char
    signature: '*nl_Weave_Stack_ErrorToString(WEAVE_ERROR err)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::StatusReportStr
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - profileId
    - statusCode
    argTypes:
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1233
      start: 1230
    functionDepth: 1
    functionLinenumber: 1230
    functionLinenumberEnd: 1233
    functionName: nl_Weave_Stack_StatusReportToString
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::StatusReportStr
    linkageType: ''
    returnType: char
    signature: '*nl_Weave_Stack_StatusReportToString(uint32_t profileId, uint16_t
      statusCode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsCategoryEnabled
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1246,1
    - Dst: gettimeofday
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1250,1
    - Dst: nl::Weave::Logging::GetModuleName
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1254,1
    - Dst: va_copy
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1265,1
    - Dst: max
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1267,1
    - Dst: realloc
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1268,1
    - Dst: va_end
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1281,1
    - Dst: sLogMessageFunct
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1285,1
    - Dst: free
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1288,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - module
    - category
    - msg
    - ap
    argTypes:
    - uint8_t
    - uint8_t
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 1290
      start: 1244
    functionDepth: 0
    functionLinenumber: 1244
    functionLinenumberEnd: 1290
    functionName: LogMessageToPython
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - va_end
    - realloc
    - nl::Weave::Logging::GetModuleName
    - sLogMessageFunct
    - gettimeofday
    - IsCategoryEnabled
    - va_copy
    - max
    - free
    linkageType: ''
    returnType: void
    signature: LogMessageToPython(uint8_t module, uint8_t category, const char *msg,
      va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Logging::SetLogFunct
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1297,1
    - Dst: nl::Weave::Logging::SetLogFunct
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - logFunct
    argTypes:
    - LogMessageFunct
    constantsTouched: []
    func_position:
      end: 1304
      start: 1292
    functionDepth: 1
    functionLinenumber: 1292
    functionLinenumberEnd: 1304
    functionName: nl_Weave_Stack_SetLogFunct
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Logging::SetLogFunct
    linkageType: ''
    returnType: void
    signature: nl_Weave_Stack_SetLogFunct(LogMessageFunct logFunct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - logFunct
    argTypes:
    - LogMessageFunct
    constantsTouched: []
    func_position:
      end: 1310
      start: 1308
    functionDepth: 0
    functionLinenumber: 1308
    functionLinenumberEnd: 1310
    functionName: nl_Weave_Stack_SetLogFunct
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: nl_Weave_Stack_SetLogFunct(LogMessageFunct logFunct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::DefaultEventHandler
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - aAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - SubscriptionEngine::EventID
    - SubscriptionEngine::InEventParam
    - SubscriptionEngine::OutEventParam
    constantsTouched: []
    func_position:
      end: 1325
      start: 1315
    functionDepth: 1
    functionLinenumber: 1315
    functionLinenumberEnd: 1325
    functionName: EngineEventCallback
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionEngine::DefaultEventHandler
    linkageType: ''
    returnType: void
    signature: "EngineEventCallback(void * const aAppState,\n                                SubscriptionEngine::EventID
      aEvent,\n                                const SubscriptionEngine::InEventParam
      & aInParam, SubscriptionEngine::OutEventParam & aOutParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1330,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1331,1
    - Dst: nl_Weave_WdmClient_Shutdown
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1327
    functionDepth: 1
    functionLinenumber: 1327
    functionLinenumberEnd: 1339
    functionName: nl_Weave_WdmClient_Init
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionEngine::GetInstance
    - nl_Weave_WdmClient_Shutdown
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_WdmClient_Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1341
    functionDepth: 0
    functionLinenumber: 1341
    functionLinenumberEnd: 1345
    functionName: nl_Weave_WdmClient_Shutdown
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_WdmClient_Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1350,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1354,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1358,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1358,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1362,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1362,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1366,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1370,1
    - Dst: nl::Weave::Binding::DefaultEventHandler
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1373,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - apAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - nl::Weave::Binding::EventType
    - nl::Weave::Binding::InEventParam
    - nl::Weave::Binding::OutEventParam
    constantsTouched: []
    func_position:
      end: 1375
      start: 1347
    functionDepth: 1
    functionLinenumber: 1347
    functionLinenumberEnd: 1375
    functionName: BindingEventCallback
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDetail
    - nl::ErrorStr
    - nl::Weave::Binding::DefaultEventHandler
    linkageType: ''
    returnType: void
    signature: "BindingEventCallback (void * const apAppState, const nl::Weave::Binding::EventType
      aEvent,\n                                  const nl::Weave::Binding::InEventParam
      & aInParam, nl::Weave::Binding::OutEventParam & aOutParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewBinding
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1382,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1383,1
    - Dst: WeaveDeviceManager*::ConfigureBinding
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1385,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1386,1
    - Dst: WdmClient::WdmClient
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1388,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1389,1
    - Dst: Init
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1391,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1392,1
    - Dst: Binding*::Release
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - outWdmClient
    - devMgr
    argTypes:
    - WdmClient**
    - WeaveDeviceManager*
    constantsTouched: []
    func_position:
      end: 1406
      start: 1377
    functionDepth: 0
    functionLinenumber: 1377
    functionLinenumberEnd: 1406
    functionName: nl_Weave_WdmClient_NewWdmClient
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - NewBinding
    - WdmClient::WdmClient
    - VerifyOrExit
    - WeaveDeviceManager*::ConfigureBinding
    - Init
    - SuccessOrExit
    - Binding*::Release
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_WdmClient_NewWdmClient(WdmClient **outWdmClient, WeaveDeviceManager
      *devMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WdmClient*::Close
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - wdmClient
    argTypes:
    - WdmClient*
    constantsTouched: []
    func_position:
      end: 1417
      start: 1408
    functionDepth: 0
    functionLinenumber: 1408
    functionLinenumberEnd: 1417
    functionName: nl_Weave_WdmClient_DeleteWdmClient
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WdmClient*::Close
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_WdmClient_DeleteWdmClient(WdmClient *wdmClient)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WdmClient*::SetNodeId
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wdmClient
    - aNodeId
    argTypes:
    - WdmClient*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1422
      start: 1419
    functionDepth: 0
    functionLinenumber: 1419
    functionLinenumberEnd: 1422
    functionName: nl_Weave_WdmClient_SetNodeId
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WdmClient*::SetNodeId
    linkageType: ''
    returnType: void
    signature: nl_Weave_WdmClient_SetNodeId(WdmClient *wdmClient, uint64_t aNodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WdmClient*::NewDataSink
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - wdmClient
    - resourceIdentifier
    - aProfileId
    - aInstanceId
    - apPath
    - outGenericTraitUpdatableDataSink
    argTypes:
    - WdmClient*
    - ResourceIdentifier*
    - uint32_t
    - uint64_t
    - char*
    - GenericTraitUpdatableDataSink**
    constantsTouched: []
    func_position:
      end: 1429
      start: 1424
    functionDepth: 0
    functionLinenumber: 1424
    functionLinenumberEnd: 1429
    functionName: nl_Weave_WdmClient_NewDataSink
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WdmClient*::NewDataSink
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_WdmClient_NewDataSink(WdmClient *wdmClient, const ResourceIdentifier
      *resourceIdentifier, uint32_t aProfileId, uint64_t aInstanceId, const char *
      apPath, GenericTraitUpdatableDataSink ** outGenericTraitUpdatableDataSink)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WdmClient*::FlushUpdate
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - wdmClient
    - onComplete
    - onError
    argTypes:
    - WdmClient*
    - DMFlushUpdateCompleteFunct
    - DMErrorFunct
    constantsTouched: []
    func_position:
      end: 1436
      start: 1431
    functionDepth: 0
    functionLinenumber: 1431
    functionLinenumberEnd: 1436
    functionName: nl_Weave_WdmClient_FlushUpdate
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WdmClient*::FlushUpdate
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_WdmClient_FlushUpdate(WdmClient *wdmClient, DMFlushUpdateCompleteFunct
      onComplete, DMErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WdmClient*::RefreshData
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - wdmClient
    - onComplete
    - onError
    argTypes:
    - WdmClient*
    - DMCompleteFunct
    - DMErrorFunct
    constantsTouched: []
    func_position:
      end: 1443
      start: 1438
    functionDepth: 0
    functionLinenumber: 1438
    functionLinenumberEnd: 1443
    functionName: nl_Weave_WdmClient_RefreshData
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WdmClient*::RefreshData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_WdmClient_RefreshData(WdmClient *wdmClient, DMCompleteFunct
      onComplete, DMErrorFunct onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WdmClient*::SetEventFetchingTimeout
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1448,1
    - Dst: WdmClient*::RefreshData
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - wdmClient
    - onComplete
    - onError
    - aTimeoutSec
    argTypes:
    - WdmClient*
    - DMCompleteFunct
    - DMErrorFunct
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1451
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1451
    functionName: nl_Weave_WdmClient_FetchEvents
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WdmClient*::SetEventFetchingTimeout
    - WdmClient*::RefreshData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_WdmClient_FetchEvents(WdmClient *wdmClient, DMCompleteFunct
      onComplete, DMErrorFunct onError, uint32_t aTimeoutSec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WdmClient*::GetEvents
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1457,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1458,1
    - Dst: aCallback
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1459,1
    - Dst: BytesData::Clear
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - wdmClient
    - aCallback
    argTypes:
    - WdmClient*
    - ConstructBytesArrayFunct
    constantsTouched: []
    func_position:
      end: 1464
      start: 1453
    functionDepth: 0
    functionLinenumber: 1453
    functionLinenumberEnd: 1464
    functionName: nl_Weave_WdmClient_GetEvents
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - WdmClient*::GetEvents
    - BytesData::Clear
    - aCallback
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_WdmClient_GetEvents(WdmClient *wdmClient, ConstructBytesArrayFunct
      aCallback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericTraitUpdatableDataSink*::Clear
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - apGenericTraitUpdatableDataSink
    argTypes:
    - GenericTraitUpdatableDataSink*
    constantsTouched: []
    func_position:
      end: 1474
      start: 1466
    functionDepth: 0
    functionLinenumber: 1466
    functionLinenumberEnd: 1474
    functionName: nl_Weave_GenericTraitUpdatableDataSink_Clear
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - GenericTraitUpdatableDataSink*::Clear
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_GenericTraitUpdatableDataSink_Clear(GenericTraitUpdatableDataSink
      * apGenericTraitUpdatableDataSink)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericTraitUpdatableDataSink*::RefreshData
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - apGenericTraitUpdatableDataSink
    - onComplete
    - onError
    argTypes:
    - GenericTraitUpdatableDataSink*
    - DMCompleteFunct
    - DMErrorFunct
    constantsTouched: []
    func_position:
      end: 1483
      start: 1476
    functionDepth: 0
    functionLinenumber: 1476
    functionLinenumberEnd: 1483
    functionName: nl_Weave_GenericTraitUpdatableDataSink_RefreshData
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - GenericTraitUpdatableDataSink*::RefreshData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_GenericTraitUpdatableDataSink_RefreshData(GenericTraitUpdatableDataSink
      * apGenericTraitUpdatableDataSink, DMCompleteFunct onComplete, DMErrorFunct
      onError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericTraitUpdatableDataSink*::SetTLVBytes
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - apGenericTraitUpdatableDataSink
    - apPath
    - dataBuf
    - dataLen
    - aIsConditional
    argTypes:
    - GenericTraitUpdatableDataSink*
    - char*
    - uint8_t*
    - size_t
    - bool
    constantsTouched: []
    func_position:
      end: 1490
      start: 1485
    functionDepth: 0
    functionLinenumber: 1485
    functionLinenumberEnd: 1490
    functionName: nl_Weave_GenericTraitUpdatableDataSink_SetTLVBytes
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - GenericTraitUpdatableDataSink*::SetTLVBytes
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_GenericTraitUpdatableDataSink_SetTLVBytes(GenericTraitUpdatableDataSink
      * apGenericTraitUpdatableDataSink, const char * apPath, const uint8_t * dataBuf,
      size_t dataLen, bool aIsConditional)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericTraitUpdatableDataSink*::GetTLVBytes
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1496,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1497,1
    - Dst: aCallback
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1498,1
    - Dst: BytesData::Clear
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - apGenericTraitUpdatableDataSink
    - apPath
    - aCallback
    argTypes:
    - GenericTraitUpdatableDataSink*
    - char*
    - ConstructBytesArrayFunct
    constantsTouched: []
    func_position:
      end: 1504
      start: 1492
    functionDepth: 0
    functionLinenumber: 1492
    functionLinenumberEnd: 1504
    functionName: nl_Weave_GenericTraitUpdatableDataSink_GetTLVBytes
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - BytesData::Clear
    - GenericTraitUpdatableDataSink*::GetTLVBytes
    - aCallback
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_GenericTraitUpdatableDataSink_GetTLVBytes(GenericTraitUpdatableDataSink
      * apGenericTraitUpdatableDataSink, const char * apPath, ConstructBytesArrayFunct
      aCallback)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apGenericTraitUpdatableDataSink
    argTypes:
    - GenericTraitUpdatableDataSink*
    constantsTouched: []
    func_position:
      end: 1510
      start: 1506
    functionDepth: 0
    functionLinenumber: 1506
    functionLinenumberEnd: 1510
    functionName: nl_Weave_GenericTraitUpdatableDataSink_GetVersion
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: nl_Weave_GenericTraitUpdatableDataSink_GetVersion(GenericTraitUpdatableDataSink
      * apGenericTraitUpdatableDataSink)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericTraitUpdatableDataSink*::DeleteData
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp:1514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - apGenericTraitUpdatableDataSink
    - apPath
    argTypes:
    - GenericTraitUpdatableDataSink*
    - char*
    constantsTouched: []
    func_position:
      end: 1515
      start: 1512
    functionDepth: 0
    functionLinenumber: 1512
    functionLinenumberEnd: 1515
    functionName: nl_Weave_GenericTraitUpdatableDataSink_DeleteData
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached:
    - GenericTraitUpdatableDataSink*::DeleteData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: nl_Weave_GenericTraitUpdatableDataSink_DeleteData(GenericTraitUpdatableDataSink
      * apGenericTraitUpdatableDataSink, const char * apPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1522
    functionDepth: 0
    functionLinenumber: 1522
    functionLinenumberEnd: 1526
    functionName: nl::Weave::Profiles::SubscriptionEngine::GetInstance
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SubscriptionEngine
    signature: '* SubscriptionEngine::GetInstance()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1529
    functionDepth: 0
    functionLinenumber: 1529
    functionLinenumberEnd: 1532
    functionName: nl::Weave::Profiles::Platform::CriticalSectionEnter
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionEnter()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1534
    functionDepth: 0
    functionLinenumber: 1534
    functionLinenumberEnd: 1537
    functionName: nl::Weave::Profiles::Platform::CriticalSectionExit
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionExit()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aKey
    - aValue
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1562
      start: 1559
    functionDepth: 0
    functionLinenumber: 1559
    functionLinenumberEnd: 1562
    functionName: nl::Weave::Platform::PersistedStorage::Read
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Read(const char *aKey, uint32_t &aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aKey
    - aValue
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1567
      start: 1564
    functionDepth: 0
    functionLinenumber: 1564
    functionLinenumberEnd: 1567
    functionName: nl::Weave::Platform::PersistedStorage::Write
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Write(const char *aKey, uint32_t aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ble
    argTypes:
    - BleLayer*
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: DeviceManager_BlePlatformDelegate::DeviceManager_BlePlatformDelegate
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DeviceManager_BlePlatformDelegate::DeviceManager_BlePlatformDelegate(BleLayer
      *ble)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: subscribeCB
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BlePlatformDelegate.cpp:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - connObj
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: DeviceManager_BlePlatformDelegate::SubscribeCharacteristic
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BlePlatformDelegate.cpp
    functionUses: 0
    functionsReached:
    - subscribeCB
    linkageType: ''
    returnType: bool
    signature: DeviceManager_BlePlatformDelegate::SubscribeCharacteristic(BLE_CONNECTION_OBJECT
      connObj, const nl::Ble::WeaveBleUUID *svcId, const nl::Ble::WeaveBleUUID *charId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: subscribeCB
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BlePlatformDelegate.cpp:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - connObj
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 51
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 51
    functionName: DeviceManager_BlePlatformDelegate::UnsubscribeCharacteristic
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BlePlatformDelegate.cpp
    functionUses: 0
    functionsReached:
    - subscribeCB
    linkageType: ''
    returnType: bool
    signature: DeviceManager_BlePlatformDelegate::UnsubscribeCharacteristic(BLE_CONNECTION_OBJECT
      connObj, const nl::Ble::WeaveBleUUID *svcId, const nl::Ble::WeaveBleUUID *charId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: closeCB
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BlePlatformDelegate.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - connObj
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: DeviceManager_BlePlatformDelegate::CloseConnection
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BlePlatformDelegate.cpp
    functionUses: 0
    functionsReached:
    - closeCB
    linkageType: ''
    returnType: bool
    signature: DeviceManager_BlePlatformDelegate::CloseConnection(BLE_CONNECTION_OBJECT
      connObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - connObj
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: DeviceManager_BlePlatformDelegate::GetMTU
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: DeviceManager_BlePlatformDelegate::GetMTU(BLE_CONNECTION_OBJECT connObj)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BlePlatformDelegate.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - connObj
    - svcId
    - charId
    - pBuf
    argTypes:
    - BLE_CONNECTION_OBJECT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    - nl::Weave::System::PacketBuffer*
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: DeviceManager_BlePlatformDelegate::SendIndication
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BlePlatformDelegate.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: bool
    signature: DeviceManager_BlePlatformDelegate::SendIndication(BLE_CONNECTION_OBJECT
      connObj, const nl::Ble::WeaveBleUUID *svcId, const nl::Ble::WeaveBleUUID *charId,
      nl::Weave::System::PacketBuffer *pBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: writeCB
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BlePlatformDelegate.cpp:85,1
    - Dst: nl::Weave::System::PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BlePlatformDelegate.cpp:85,1
    - Dst: nl::Weave::System::PacketBuffer*::DataLength
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BlePlatformDelegate.cpp:85,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BlePlatformDelegate.cpp:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - connObj
    - svcId
    - charId
    - pBuf
    argTypes:
    - BLE_CONNECTION_OBJECT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    - nl::Weave::System::PacketBuffer*
    constantsTouched: []
    func_position:
      end: 94
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 94
    functionName: DeviceManager_BlePlatformDelegate::SendWriteRequest
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BlePlatformDelegate.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer*::DataLength
    - nl::Weave::System::PacketBuffer*::Start
    - nl::Weave::System::PacketBuffer::Free
    - writeCB
    linkageType: ''
    returnType: bool
    signature: DeviceManager_BlePlatformDelegate::SendWriteRequest(BLE_CONNECTION_OBJECT
      connObj, const nl::Ble::WeaveBleUUID *svcId, const nl::Ble::WeaveBleUUID *charId,
      nl::Weave::System::PacketBuffer *pBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - connObj
    - svcId
    - charId
    - pBuf
    argTypes:
    - BLE_CONNECTION_OBJECT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    - nl::Weave::System::PacketBuffer*
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: DeviceManager_BlePlatformDelegate::SendReadRequest
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: DeviceManager_BlePlatformDelegate::SendReadRequest(BLE_CONNECTION_OBJECT
      connObj, const nl::Ble::WeaveBleUUID *svcId, const nl::Ble::WeaveBleUUID *charId,
      nl::Weave::System::PacketBuffer *pBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - connObj
    - requestContext
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - BLE_READ_REQUEST_CONTEXT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: DeviceManager_BlePlatformDelegate::SendReadResponse
    functionSourceFile: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: DeviceManager_BlePlatformDelegate::SendReadResponse(BLE_CONNECTION_OBJECT
      connObj, BLE_READ_REQUEST_CONTEXT requestContext, const nl::Ble::WeaveBleUUID
      *svcId, const nl::Ble::WeaveBleUUID *charId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: Base64Encoding
    functionSourceFile: /src/openweave-core/src/device-manager/cocoa/Base64Encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: interface
    signature: Base64Encoding
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: NLWeaveError
    functionSourceFile: /src/openweave-core/src/device-manager/cocoa/NLWeaveError_Protected.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: interface
    signature: NLWeaveError ()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp:47,1
    - Dst: nl::PairingCode::VerifyPairingCode
      Src: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp:49,1
    - Dst: strlen
      Src: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp:49,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - env
    - cls
    - pairingCodeObj
    argTypes:
    - JNIEnv*
    - jclass
    - jstring
    constantsTouched: []
    func_position:
      end: 54
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 54
    functionName: Java_nl_Weave_DeviceManager_PairingCodeUtils_isValidPairingCode
    functionSourceFile: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - nl::PairingCode::VerifyPairingCode
    - strlen
    - JNIEnv*::ReleaseStringUTFChars
    linkageType: ''
    returnType: jboolean
    signature: Java_nl_Weave_DeviceManager_PairingCodeUtils_isValidPairingCode(JNIEnv
      *env, jclass cls, jstring pairingCodeObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp:63,1
    - Dst: strlen
      Src: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp:65,1
    - Dst: strdup
      Src: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp:67,1
    - Dst: nl::PairingCode::NormalizePairingCode
      Src: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp:71,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp:73,1
    - Dst: free
      Src: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp:75,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - env
    - cls
    - pairingCodeObj
    argTypes:
    - JNIEnv*
    - jclass
    - jstring
    constantsTouched: []
    func_position:
      end: 81
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 81
    functionName: Java_nl_Weave_DeviceManager_PairingCodeUtils_normalizePairingCode
    functionSourceFile: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - strdup
    - nl::PairingCode::NormalizePairingCode
    - strlen
    - free
    - JNIEnv*::ReleaseStringUTFChars
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: Java_nl_Weave_DeviceManager_PairingCodeUtils_normalizePairingCode(JNIEnv
      *env, jclass cls, jstring pairingCodeObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp:89,1
    - Dst: nl::PairingCode::NevisPairingCodeToDeviceId
      Src: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp:91,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - env
    - cls
    - pairingCodeObj
    argTypes:
    - JNIEnv*
    - jclass
    - jstring
    constantsTouched: []
    func_position:
      end: 98
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 98
    functionName: Java_nl_Weave_DeviceManager_PairingCodeUtils_nevisPairingCodeToDeviceId
    functionSourceFile: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - JNIEnv*::ReleaseStringUTFChars
    - nl::PairingCode::NevisPairingCodeToDeviceId
    linkageType: ''
    returnType: jlong
    signature: Java_nl_Weave_DeviceManager_PairingCodeUtils_nevisPairingCodeToDeviceId(JNIEnv
      *env, jclass cls, jstring pairingCodeObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::PairingCode::NevisDeviceIdToPairingCode
      Src: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp:105,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - env
    - cls
    - deviceId
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    constantsTouched: []
    func_position:
      end: 115
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 115
    functionName: Java_nl_Weave_DeviceManager_PairingCodeUtils_nevisDeviceIdToPairingCode
    functionSourceFile: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp
    functionUses: 0
    functionsReached:
    - nl::PairingCode::NevisDeviceIdToPairingCode
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: Java_nl_Weave_DeviceManager_PairingCodeUtils_nevisDeviceIdToPairingCode(JNIEnv
      *env, jclass cls, jlong deviceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp:124,1
    - Dst: nl::PairingCode::KryptonitePairingCodeToDeviceId
      Src: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp:126,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - env
    - cls
    - pairingCodeObj
    argTypes:
    - JNIEnv*
    - jclass
    - jstring
    constantsTouched: []
    func_position:
      end: 133
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 133
    functionName: Java_nl_Weave_DeviceManager_PairingCodeUtils_kryptonitePairingCodeToDeviceId
    functionSourceFile: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - JNIEnv*::ReleaseStringUTFChars
    - nl::PairingCode::KryptonitePairingCodeToDeviceId
    linkageType: ''
    returnType: jlong
    signature: Java_nl_Weave_DeviceManager_PairingCodeUtils_kryptonitePairingCodeToDeviceId(JNIEnv
      *env, jclass cls, jstring pairingCodeObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::PairingCode::KryptoniteDeviceIdToPairingCode
      Src: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp:140,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - env
    - cls
    - deviceId
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    constantsTouched: []
    func_position:
      end: 150
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 150
    functionName: Java_nl_Weave_DeviceManager_PairingCodeUtils_kryptoniteDeviceIdToPairingCode
    functionSourceFile: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::NewStringUTF
    - nl::PairingCode::KryptoniteDeviceIdToPairingCode
    linkageType: ''
    returnType: jstring
    signature: Java_nl_Weave_DeviceManager_PairingCodeUtils_kryptoniteDeviceIdToPairingCode(JNIEnv
      *env, jclass cls, jlong deviceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: AndroidBleApplicationDelegate::AndroidBleApplicationDelegate
    functionSourceFile: /src/openweave-core/src/device-manager/java/AndroidBleApplicationDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: AndroidBleApplicationDelegate::AndroidBleApplicationDelegate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NotifyWeaveConnectionClosedCb
      Src: /src/openweave-core/src/device-manager/java/AndroidBleApplicationDelegate.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - connObj
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: AndroidBleApplicationDelegate::NotifyWeaveConnectionClosed
    functionSourceFile: /src/openweave-core/src/device-manager/java/AndroidBleApplicationDelegate.cpp
    functionUses: 0
    functionsReached:
    - NotifyWeaveConnectionClosedCb
    linkageType: ''
    returnType: void
    signature: AndroidBleApplicationDelegate::NotifyWeaveConnectionClosed(BLE_CONNECTION_OBJECT
      connObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - NotifyWeaveConnectionClosedCallback
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: AndroidBleApplicationDelegate::SetNotifyWeaveConnectionClosedCallback
    functionSourceFile: /src/openweave-core/src/device-manager/java/AndroidBleApplicationDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: AndroidBleApplicationDelegate::SetNotifyWeaveConnectionClosedCallback(NotifyWeaveConnectionClosedCallback
      cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ble
    argTypes:
    - BleLayer*
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: AndroidBlePlatformDelegate::AndroidBlePlatformDelegate
    functionSourceFile: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: AndroidBlePlatformDelegate::AndroidBlePlatformDelegate(BleLayer *ble)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscribeCharacteristicCb
      Src: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp:40,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp:40,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - connObj
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: AndroidBlePlatformDelegate::SubscribeCharacteristic
    functionSourceFile: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const uint8_t *>
    - SubscribeCharacteristicCb
    linkageType: ''
    returnType: bool
    signature: AndroidBlePlatformDelegate::SubscribeCharacteristic(BLE_CONNECTION_OBJECT
      connObj, const nl::Ble::WeaveBleUUID *svcId, const nl::Ble::WeaveBleUUID *charId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnsubscribeCharacteristicCb
      Src: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp:51,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp:51,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - connObj
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 55
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 55
    functionName: AndroidBlePlatformDelegate::UnsubscribeCharacteristic
    functionSourceFile: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const uint8_t *>
    - UnsubscribeCharacteristicCb
    linkageType: ''
    returnType: bool
    signature: AndroidBlePlatformDelegate::UnsubscribeCharacteristic(BLE_CONNECTION_OBJECT
      connObj, const nl::Ble::WeaveBleUUID *svcId, const nl::Ble::WeaveBleUUID *charId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetMTUCb
      Src: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - connObj
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: AndroidBlePlatformDelegate::GetMTU
    functionSourceFile: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached:
    - GetMTUCb
    linkageType: ''
    returnType: uint16_t
    signature: AndroidBlePlatformDelegate::GetMTU(BLE_CONNECTION_OBJECT connObj) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CloseConnectionCb
      Src: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - connObj
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 76
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 76
    functionName: AndroidBlePlatformDelegate::CloseConnection
    functionSourceFile: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached:
    - CloseConnectionCb
    linkageType: ''
    returnType: bool
    signature: AndroidBlePlatformDelegate::CloseConnection(BLE_CONNECTION_OBJECT connObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - connObj
    - svcId
    - charId
    - pBuf
    argTypes:
    - BLE_CONNECTION_OBJECT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: AndroidBlePlatformDelegate::SendIndication
    functionSourceFile: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: bool
    signature: AndroidBlePlatformDelegate::SendIndication(BLE_CONNECTION_OBJECT connObj,
      const nl::Ble::WeaveBleUUID *svcId, const nl::Ble::WeaveBleUUID *charId, PacketBuffer
      *pBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SendWriteRequestCb
      Src: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp:94,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp:94,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp:95,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp:95,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp:95,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - connObj
    - svcId
    - charId
    - pBuf
    argTypes:
    - BLE_CONNECTION_OBJECT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 103
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 103
    functionName: AndroidBlePlatformDelegate::SendWriteRequest
    functionSourceFile: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - static_cast<const uint8_t *>
    - nl::Weave::System::PacketBuffer::Free
    - PacketBuffer*::Start
    - SendWriteRequestCb
    linkageType: ''
    returnType: bool
    signature: AndroidBlePlatformDelegate::SendWriteRequest(BLE_CONNECTION_OBJECT
      connObj, const nl::Ble::WeaveBleUUID *svcId, const nl::Ble::WeaveBleUUID *charId,
      PacketBuffer *pBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - connObj
    - svcId
    - charId
    - pBuf
    argTypes:
    - BLE_CONNECTION_OBJECT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: AndroidBlePlatformDelegate::SendReadRequest
    functionSourceFile: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: AndroidBlePlatformDelegate::SendReadRequest(BLE_CONNECTION_OBJECT connObj,
      const nl::Ble::WeaveBleUUID *svcId, const nl::Ble::WeaveBleUUID *charId, PacketBuffer
      *pBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - connObj
    - requestContext
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - BLE_READ_REQUEST_CONTEXT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: AndroidBlePlatformDelegate::SendReadResponse
    functionSourceFile: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: AndroidBlePlatformDelegate::SendReadResponse(BLE_CONNECTION_OBJECT
      connObj, BLE_READ_REQUEST_CONTEXT requestContext, const nl::Ble::WeaveBleUUID
      *svcId, const nl::Ble::WeaveBleUUID *charId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - SendWriteRequestCallback
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: AndroidBlePlatformDelegate::SetSendWriteRequestCallback
    functionSourceFile: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: AndroidBlePlatformDelegate::SetSendWriteRequestCallback(SendWriteRequestCallback
      cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - SubscribeCharacteristicCallback
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: AndroidBlePlatformDelegate::SetSubscribeCharacteristicCallback
    functionSourceFile: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: AndroidBlePlatformDelegate::SetSubscribeCharacteristicCallback(SubscribeCharacteristicCallback
      cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - UnsubscribeCharacteristicCallback
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: AndroidBlePlatformDelegate::SetUnsubscribeCharacteristicCallback
    functionSourceFile: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: AndroidBlePlatformDelegate::SetUnsubscribeCharacteristicCallback(UnsubscribeCharacteristicCallback
      cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - CloseConnectionCallback
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: AndroidBlePlatformDelegate::SetCloseConnectionCallback
    functionSourceFile: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: AndroidBlePlatformDelegate::SetCloseConnectionCallback(CloseConnectionCallback
      cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - GetMTUCallback
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: AndroidBlePlatformDelegate::SetGetMTUCallback
    functionSourceFile: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: AndroidBlePlatformDelegate::SetGetMTUCallback(GetMTUCallback cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:291,1
    - Dst: GetEnv
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:297,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:299,1
    - Dst: GetClassRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:302,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:303,1
    - Dst: GetClassRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:304,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:305,1
    - Dst: GetClassRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:306,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:307,1
    - Dst: GetClassRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:308,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:309,1
    - Dst: GetClassRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:310,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:311,1
    - Dst: GetClassRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:312,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:313,1
    - Dst: GetClassRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:314,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:315,1
    - Dst: GetClassRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:316,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:317,1
    - Dst: GetClassRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:318,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:319,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:320,1
    - Dst: pthread_mutexattr_init
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:323,1
    - Dst: pthread_mutexattr_settype
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:324,1
    - Dst: pthread_mutex_init
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:325,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:326,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:326,1
    - Dst: nl::Weave::Platform::Security::InitSecureRandomDataSource
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:329,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:330,1
    - Dst: Init
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:333,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:334,1
    - Dst: Init
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:337,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:338,1
    - Dst: SetNotifyWeaveConnectionClosedCallback
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:342,1
    - Dst: SetSendWriteRequestCallback
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:344,1
    - Dst: SetSubscribeCharacteristicCallback
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:345,1
    - Dst: SetUnsubscribeCharacteristicCallback
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:346,1
    - Dst: SetCloseConnectionCallback
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:347,1
    - Dst: SetGetMTUCallback
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:348,1
    - Dst: Init
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:350,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:351,1
    - Dst: Init
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:354,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:355,1
    - Dst: GenerateWeaveNodeId
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:361,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:362,1
    - Dst: Init
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:381,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:382,1
    - Dst: Init
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:385,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:386,1
    - Dst: Init
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:389,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:390,1
    - Dst: pthread_create
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:394,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:395,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:395,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:400,1
    - Dst: JNI_OnUnload
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 72
    argCount: 2
    argNames:
    - jvm
    - reserved
    argTypes:
    - JavaVM*
    - void*
    constantsTouched: []
    func_position:
      end: 405
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 405
    functionName: JNI_OnLoad
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Platform::Security::InitSecureRandomDataSource
    - pthread_mutexattr_init
    - GetClassRef
    - ThrowError
    - pthread_mutexattr_settype
    - VerifyOrExit
    - JNI_OnUnload
    - SetNotifyWeaveConnectionClosedCallback
    - SetCloseConnectionCallback
    - GetEnv
    - pthread_create
    - WeaveLogProgress
    - SetSendWriteRequestCallback
    - SetSubscribeCharacteristicCallback
    - SetUnsubscribeCharacteristicCallback
    - nl::Weave::System::MapErrorPOSIX
    - SetGetMTUCallback
    - GenerateWeaveNodeId
    - pthread_mutex_init
    - Init
    - SuccessOrExit
    linkageType: ''
    returnType: jint
    signature: JNI_OnLoad(JavaVM *jvm, void *reserved)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:411,1
    - Dst: JavaVM*::GetEnv
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:414,1
    - Dst: WakeSelect
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:420,1
    - Dst: pthread_join
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:421,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:424,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:425,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:426,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:427,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:429,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:431,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:432,1
    - Dst: pthread_mutex_destroy
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - jvm
    - reserved
    argTypes:
    - JavaVM*
    - void*
    constantsTouched: []
    func_position:
      end: 437
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 437
    functionName: JNI_OnUnload
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 1
    functionsReached:
    - pthread_mutex_destroy
    - WeaveLogProgress
    - Shutdown
    - JavaVM*::GetEnv
    - pthread_join
    - WakeSelect
    linkageType: ''
    returnType: void
    signature: JNI_OnUnload(JavaVM *jvm, void *reserved)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:445,1
    - Dst: WeaveDeviceManager::WeaveDeviceManager
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:447,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:448,1
    - Dst: WeaveDeviceManager*::Init
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:450,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:451,1
    - Dst: JNIEnv*::NewGlobalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:453,1
    - Dst: JNIEnv*::DeleteGlobalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:463,1
    - Dst: WeaveDeviceManager*::Shutdown
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:464,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:469,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - env
    - self
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 473
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 473
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_newDeviceManager
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::DeleteGlobalRef
    - ThrowError
    - WeaveDeviceManager*::Init
    - WeaveLogProgress
    - WeaveDeviceManager*::Shutdown
    - VerifyOrExit
    - WeaveDeviceManager::WeaveDeviceManager
    - SuccessOrExit
    - JNIEnv*::NewGlobalRef
    linkageType: ''
    returnType: jlong
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_newDeviceManager(JNIEnv
      *env, jobject self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:479,1
    - Dst: JNIEnv*::DeleteGlobalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:484,1
    - Dst: WeaveDeviceManager*::Shutdown
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - env
    - self
    - deviceMgrPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 490
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 490
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_deleteDeviceManager
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - JNIEnv*::DeleteGlobalRef
    - WeaveDeviceManager*::Shutdown
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_deleteDeviceManager(JNIEnv
      *env, jobject self, jlong deviceMgrPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:497,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:500,1
    - Dst: WeaveDeviceManager*::ConnectBle
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:502,1
    - Dst: reinterpret_cast<BLE_CONNECTION_OBJECT>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:502,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:505,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:508,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - env
    - self
    - deviceMgrPtr
    - connObj
    - autoClose
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jint
    - jboolean
    constantsTouched: []
    func_position:
      end: 509
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 509
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginConnectBleNoAuth
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - reinterpret_cast<BLE_CONNECTION_OBJECT>
    - WeaveDeviceManager*::ConnectBle
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginConnectBleNoAuth(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jint connObj, jboolean autoClose)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:517,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:519,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:521,1
    - Dst: WeaveDeviceManager*::ConnectBle
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:523,1
    - Dst: reinterpret_cast<BLE_CONNECTION_OBJECT>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:523,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:525,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:528,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:531,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - env
    - self
    - deviceMgrPtr
    - connObj
    - autoClose
    - pairingCodeObj
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jint
    - jboolean
    - jstring
    constantsTouched: []
    func_position:
      end: 532
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 532
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginConnectBlePairingCode
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - reinterpret_cast<BLE_CONNECTION_OBJECT>
    - JNIEnv*::ReleaseStringUTFChars
    - WeaveDeviceManager*::ConnectBle
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginConnectBlePairingCode(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jint connObj, jboolean autoClose, jstring
      pairingCodeObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:541,1
    - Dst: J2N_ByteArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:543,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:544,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:546,1
    - Dst: WeaveDeviceManager*::ConnectBle
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:548,1
    - Dst: reinterpret_cast<BLE_CONNECTION_OBJECT>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:548,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:550,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:554,1
    - Dst: free
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:557,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - env
    - self
    - deviceMgrPtr
    - connObj
    - autoClose
    - accessTokenObj
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jint
    - jboolean
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 558
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 558
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginConnectBleAccessToken
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - J2N_ByteArray
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - free
    - reinterpret_cast<BLE_CONNECTION_OBJECT>
    - SuccessOrExit
    - WeaveDeviceManager*::ConnectBle
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginConnectBleAccessToken(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jint connObj, jboolean autoClose, jbyteArray
      accessTokenObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:566,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:572,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:575,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:580,1
    - Dst: WeaveDeviceManager*::ConnectDevice
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:582,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:584,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:588,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - env
    - self
    - deviceMgrPtr
    - deviceId
    - deviceAddrObj
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jlong
    - jstring
    constantsTouched: []
    func_position:
      end: 589
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 589
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginConnectDeviceNoAuth
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - ExitNow
    - WeaveDeviceManager*::ConnectDevice
    - JNIEnv*::ReleaseStringUTFChars
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginConnectDeviceNoAuth(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jlong deviceId, jstring deviceAddrObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:598,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:604,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:607,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:612,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:614,1
    - Dst: WeaveDeviceManager*::ConnectDevice
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:616,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:618,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:622,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:625,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 6
    argNames:
    - env
    - self
    - deviceMgrPtr
    - deviceId
    - deviceAddrObj
    - pairingCodeObj
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jlong
    - jstring
    - jstring
    constantsTouched: []
    func_position:
      end: 626
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 626
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginConnectDevicePairingCode
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - ExitNow
    - WeaveDeviceManager*::ConnectDevice
    - JNIEnv*::ReleaseStringUTFChars
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginConnectDevicePairingCode(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jlong deviceId, jstring deviceAddrObj,
      jstring pairingCodeObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:636,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:642,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:645,1
    - Dst: J2N_ByteArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:650,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:651,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:653,1
    - Dst: WeaveDeviceManager*::ConnectDevice
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:655,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:657,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:661,1
    - Dst: free
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:664,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 6
    argNames:
    - env
    - self
    - deviceMgrPtr
    - deviceId
    - deviceAddrObj
    - accessTokenObj
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jlong
    - jstring
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 665
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 665
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginConnectDeviceAccessToken
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - J2N_ByteArray
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - ExitNow
    - free
    - WeaveDeviceManager*::ConnectDevice
    - SuccessOrExit
    - JNIEnv*::ReleaseStringUTFChars
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginConnectDeviceAccessToken(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jlong deviceId, jstring deviceAddrObj,
      jbyteArray accessTokenObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:673,1
    - Dst: J2N_IdentifyDeviceCriteria
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:675,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:676,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:678,1
    - Dst: WeaveDeviceManager*::RendezvousDevice
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:680,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:682,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - env
    - self
    - deviceMgrPtr
    - deviceCriteriaObj
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jobject
    constantsTouched: []
    func_position:
      end: 687
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 687
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRendezvousDeviceNoAuth
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - J2N_IdentifyDeviceCriteria
    - ThrowError
    - WeaveDeviceManager*::RendezvousDevice
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRendezvousDeviceNoAuth(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jobject deviceCriteriaObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:696,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:698,1
    - Dst: J2N_IdentifyDeviceCriteria
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:700,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:701,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:703,1
    - Dst: WeaveDeviceManager*::RendezvousDevice
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:705,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:707,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:711,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - env
    - self
    - deviceMgrPtr
    - pairingCodeObj
    - deviceCriteriaObj
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jstring
    - jobject
    constantsTouched: []
    func_position:
      end: 715
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 715
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRendezvousDevicePairingCode
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - J2N_IdentifyDeviceCriteria
    - JNIEnv*::GetStringUTFChars
    - WeaveDeviceManager*::RendezvousDevice
    - pthread_mutex_unlock
    - ThrowError
    - WeaveLogProgress
    - pthread_mutex_lock
    - SuccessOrExit
    - JNIEnv*::ReleaseStringUTFChars
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRendezvousDevicePairingCode(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jstring pairingCodeObj, jobject deviceCriteriaObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:725,1
    - Dst: J2N_ByteArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:727,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:728,1
    - Dst: J2N_IdentifyDeviceCriteria
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:730,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:731,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:733,1
    - Dst: WeaveDeviceManager*::RendezvousDevice
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:735,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:737,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:741,1
    - Dst: free
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:744,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - env
    - self
    - deviceMgrPtr
    - accessTokenObj
    - deviceCriteriaObj
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jbyteArray
    - jobject
    constantsTouched: []
    func_position:
      end: 745
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 745
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRendezvousDeviceAccessToken
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - J2N_ByteArray
    - J2N_IdentifyDeviceCriteria
    - WeaveDeviceManager*::RendezvousDevice
    - pthread_mutex_unlock
    - ThrowError
    - WeaveLogProgress
    - pthread_mutex_lock
    - free
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRendezvousDeviceAccessToken(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jbyteArray accessTokenObj, jobject deviceCriteriaObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:756,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:758,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:759,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:761,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:762,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:764,1
    - Dst: WeaveDeviceManager*::RemotePassiveRendezvous
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:766,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:771,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:775,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:777,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - env
    - self
    - deviceMgrPtr
    - rendezvousAddrObj
    - rendezvousTimeoutSec
    - inactivityTimeoutSec
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jstring
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 778
      start: 747
    functionDepth: 2
    functionLinenumber: 747
    functionLinenumberEnd: 778
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRemotePassiveRendezvousNoAuth
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - nl::Inet::IPAddress::FromString
    - VerifyOrExit
    - ExitNow
    - WeaveDeviceManager*::RemotePassiveRendezvous
    - JNIEnv*::ReleaseStringUTFChars
    linkageType: ''
    returnType: void
    signature: "Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRemotePassiveRendezvousNoAuth(\n
      \       JNIEnv *env, jobject self, jlong deviceMgrPtr, jstring rendezvousAddrObj,\n
      \       jint rendezvousTimeoutSec, jint inactivityTimeoutSec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:790,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:792,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:793,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:795,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:796,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:798,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:799,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:801,1
    - Dst: WeaveDeviceManager*::RemotePassiveRendezvous
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:803,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:807,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:811,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:814,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:817,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 7
    argNames:
    - env
    - self
    - deviceMgrPtr
    - pairingCodeObj
    - rendezvousAddrObj
    - rendezvousTimeoutSec
    - inactivityTimeoutSec
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jstring
    - jstring
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 818
      start: 780
    functionDepth: 2
    functionLinenumber: 780
    functionLinenumberEnd: 818
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRemotePassiveRendezvousPairingCode
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - nl::Inet::IPAddress::FromString
    - VerifyOrExit
    - ExitNow
    - WeaveDeviceManager*::RemotePassiveRendezvous
    - JNIEnv*::ReleaseStringUTFChars
    linkageType: ''
    returnType: void
    signature: "Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRemotePassiveRendezvousPairingCode(\n
      \       JNIEnv *env, jobject self, jlong deviceMgrPtr, jstring pairingCodeObj,\n
      \       jstring rendezvousAddrObj, jint rendezvousTimeoutSec, jint inactivityTimeoutSec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:831,1
    - Dst: J2N_ByteArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:833,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:834,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:836,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:837,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:839,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:840,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:842,1
    - Dst: WeaveDeviceManager*::RemotePassiveRendezvous
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:844,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:849,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:853,1
    - Dst: free
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:856,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:859,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 7
    argNames:
    - env
    - self
    - deviceMgrPtr
    - accessTokenObj
    - rendezvousAddrObj
    - rendezvousTimeoutSec
    - inactivityTimeoutSec
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jbyteArray
    - jstring
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 860
      start: 820
    functionDepth: 2
    functionLinenumber: 820
    functionLinenumberEnd: 860
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRemotePassiveRendezvousAccessToken
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - J2N_ByteArray
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - VerifyOrExit
    - nl::Inet::IPAddress::FromString
    - ExitNow
    - free
    - WeaveDeviceManager*::RemotePassiveRendezvous
    - SuccessOrExit
    - JNIEnv*::ReleaseStringUTFChars
    linkageType: ''
    returnType: void
    signature: "Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRemotePassiveRendezvousAccessToken(\n
      \       JNIEnv *env, jobject self, jlong deviceMgrPtr, jbyteArray accessTokenObj,\n
      \       jstring rendezvousAddrObj, jint rendezvousTimeoutSec, jint inactivityTimeoutSec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:867,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:869,1
    - Dst: WeaveDeviceManager*::ReconnectDevice
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:871,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:873,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:876,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - env
    - self
    - deviceMgrPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 877
      start: 862
    functionDepth: 1
    functionLinenumber: 862
    functionLinenumberEnd: 877
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginReconnectDevice
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - WeaveDeviceManager*::ReconnectDevice
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginReconnectDevice(JNIEnv
      *env, jobject self, jlong deviceMgrPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:884,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:886,1
    - Dst: WeaveDeviceManager*::IdentifyDevice
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:888,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:890,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:893,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - env
    - self
    - deviceMgrPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 894
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 894
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginIdentifyDevice
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - WeaveDeviceManager*::IdentifyDevice
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginIdentifyDevice(JNIEnv
      *env, jobject self, jlong deviceMgrPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:901,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:903,1
    - Dst: WeaveDeviceManager*::ScanNetworks
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:905,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:907,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:910,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - env
    - self
    - deviceMgrPtr
    - networkType
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jint
    constantsTouched: []
    func_position:
      end: 911
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 911
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginScanNetworks
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - WeaveDeviceManager*::ScanNetworks
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginScanNetworks(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jint networkType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:919,1
    - Dst: J2N_NetworkInfo
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:921,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:922,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:922,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:923,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:925,1
    - Dst: WeaveDeviceManager*::AddNetwork
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:927,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:929,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:933,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - env
    - self
    - deviceMgrPtr
    - networkInfoObj
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jobject
    constantsTouched: []
    func_position:
      end: 934
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 934
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginAddNetwork
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - WeaveDeviceManager*::AddNetwork
    - pthread_mutex_unlock
    - WeaveLogProgress
    - J2N_NetworkInfo
    - pthread_mutex_lock
    - SuccessOrExit
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginAddNetwork(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jobject networkInfoObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:942,1
    - Dst: J2N_NetworkInfo
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:944,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:945,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:947,1
    - Dst: WeaveDeviceManager*::UpdateNetwork
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:949,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:951,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:955,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - env
    - self
    - deviceMgrPtr
    - networkInfoObj
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jobject
    constantsTouched: []
    func_position:
      end: 956
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 956
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginUpdateNetwork
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - WeaveDeviceManager*::UpdateNetwork
    - J2N_NetworkInfo
    - pthread_mutex_lock
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginUpdateNetwork(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jobject networkInfoObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:963,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:965,1
    - Dst: WeaveDeviceManager*::RemoveNetwork
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:967,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:969,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:972,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - env
    - self
    - deviceMgrPtr
    - networkId
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jlong
    constantsTouched: []
    func_position:
      end: 973
      start: 958
    functionDepth: 1
    functionLinenumber: 958
    functionLinenumberEnd: 973
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRemoveNetwork
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - WeaveDeviceManager*::RemoveNetwork
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRemoveNetwork(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jlong networkId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:980,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:982,1
    - Dst: WeaveDeviceManager*::GetNetworks
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:984,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:986,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:989,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - env
    - self
    - deviceMgrPtr
    - getFlags
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jint
    constantsTouched: []
    func_position:
      end: 990
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 990
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginGetNetworks
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - WeaveDeviceManager*::GetNetworks
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginGetNetworks(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jint getFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:998,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1000,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1001,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1003,1
    - Dst: WeaveDeviceManager*::GetCameraAuthData
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1005,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1007,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1011,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1013,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - env
    - self
    - deviceMgrPtr
    - nonce
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jstring
    constantsTouched: []
    func_position:
      end: 1014
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 1014
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginGetCameraAuthData
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - VerifyOrExit
    - WeaveDeviceManager*::GetCameraAuthData
    - JNIEnv*::ReleaseStringUTFChars
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginGetCameraAuthData(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jstring nonce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1021,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1023,1
    - Dst: WeaveDeviceManager*::EnableNetwork
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1025,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1027,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1030,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - env
    - self
    - deviceMgrPtr
    - networkId
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jlong
    constantsTouched: []
    func_position:
      end: 1031
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1031
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginEnableNetwork
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - WeaveDeviceManager*::EnableNetwork
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginEnableNetwork(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jlong networkId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1038,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1040,1
    - Dst: WeaveDeviceManager*::DisableNetwork
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1042,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1044,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1047,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - env
    - self
    - deviceMgrPtr
    - networkId
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jlong
    constantsTouched: []
    func_position:
      end: 1048
      start: 1033
    functionDepth: 1
    functionLinenumber: 1033
    functionLinenumberEnd: 1048
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginDisableNetwork
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - WeaveDeviceManager*::DisableNetwork
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginDisableNetwork(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jlong networkId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1055,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1057,1
    - Dst: WeaveDeviceManager*::TestNetworkConnectivity
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1059,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1061,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - env
    - self
    - deviceMgrPtr
    - networkId
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jlong
    constantsTouched: []
    func_position:
      end: 1065
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1065
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginTestNetworkConnectivity
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - WeaveDeviceManager*::TestNetworkConnectivity
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginTestNetworkConnectivity(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jlong networkId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1072,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1074,1
    - Dst: WeaveDeviceManager*::GetRendezvousMode
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1076,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1078,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1081,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - env
    - self
    - deviceMgrPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 1082
      start: 1067
    functionDepth: 1
    functionLinenumber: 1067
    functionLinenumberEnd: 1082
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginGetRendezvousMode
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - WeaveDeviceManager*::GetRendezvousMode
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginGetRendezvousMode(JNIEnv
      *env, jobject self, jlong deviceMgrPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1089,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1091,1
    - Dst: WeaveDeviceManager*::SetRendezvousMode
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1093,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1095,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1098,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - env
    - self
    - deviceMgrPtr
    - rendezvousFlags
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jint
    constantsTouched: []
    func_position:
      end: 1099
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1099
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginSetRendezvousMode
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveDeviceManager*::SetRendezvousMode
    - WeaveLogProgress
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginSetRendezvousMode(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jint rendezvousFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1112,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1118,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1119,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1121,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1122,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1124,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1125,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1127,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1128,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1130,1
    - Dst: WeaveDeviceManager*::RegisterServicePairAccount
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1132,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1138,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1142,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1144,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1146,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1148,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 8
    argNames:
    - env
    - self
    - deviceMgrPtr
    - serviceId
    - accountId
    - serviceConfig
    - pairingToken
    - pairingInitData
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jlong
    - jstring
    - jbyteArray
    - jbyteArray
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 1151
      start: 1101
    functionDepth: 1
    functionLinenumber: 1101
    functionLinenumberEnd: 1151
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRegisterServicePairAccount
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - ThrowError
    - pthread_mutex_unlock
    - JNIEnv*::ReleaseByteArrayElements
    - WeaveLogProgress
    - WeaveDeviceManager*::RegisterServicePairAccount
    - JNIEnv*::GetByteArrayElements
    - pthread_mutex_lock
    - VerifyOrExit
    - JNIEnv*::ReleaseStringUTFChars
    - JNIEnv*::GetArrayLength
    linkageType: ''
    returnType: void
    signature: "Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRegisterServicePairAccount(JNIEnv
      *env, jobject self, jlong deviceMgrPtr,\n                                                                                    jlong
      serviceId, jstring accountId, jbyteArray serviceConfig,\n                                                                                    jbyteArray
      pairingToken, jbyteArray pairingInitData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1158,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1160,1
    - Dst: WeaveDeviceManager*::UnregisterService
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1162,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1164,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - env
    - self
    - deviceMgrPtr
    - serviceId
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jlong
    constantsTouched: []
    func_position:
      end: 1168
      start: 1153
    functionDepth: 1
    functionLinenumber: 1153
    functionLinenumberEnd: 1168
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginUnregisterService
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - WeaveDeviceManager*::UnregisterService
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginUnregisterService(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jlong serviceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1175,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1177,1
    - Dst: WeaveDeviceManager*::GetLastNetworkProvisioningResult
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1179,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1181,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - env
    - self
    - deviceMgrPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 1185
      start: 1170
    functionDepth: 1
    functionLinenumber: 1170
    functionLinenumberEnd: 1185
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginGetLastNetworkProvisioningResult
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - WeaveDeviceManager*::GetLastNetworkProvisioningResult
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginGetLastNetworkProvisioningResult(JNIEnv
      *env, jobject self, jlong deviceMgrPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginPingWithSize
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - env
    - self
    - deviceMgrPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 1190
      start: 1187
    functionDepth: 1
    functionLinenumber: 1187
    functionLinenumberEnd: 1190
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginPing
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginPingWithSize
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginPing(JNIEnv *env,
      jobject self, jlong deviceMgrPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1197,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1199,1
    - Dst: WeaveDeviceManager*::Ping
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1201,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1203,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - env
    - self
    - deviceMgrPtr
    - payloadSize
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jint
    constantsTouched: []
    func_position:
      end: 1207
      start: 1192
    functionDepth: 1
    functionLinenumber: 1192
    functionLinenumberEnd: 1207
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginPingWithSize
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 1
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveDeviceManager*::Ping
    - WeaveLogProgress
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginPingWithSize(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jint payloadSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1216,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1218,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1219,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1221,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1222,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1224,1
    - Dst: WeaveDeviceManager*::SetWiFiRendezvousAddress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1226,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1228,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1232,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - env
    - self
    - deviceMgrPtr
    - rendezvousAddrObj
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jstring
    constantsTouched: []
    func_position:
      end: 1235
      start: 1209
    functionDepth: 2
    functionLinenumber: 1209
    functionLinenumberEnd: 1235
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_setRendezvousAddress
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - ThrowError
    - pthread_mutex_unlock
    - WeaveDeviceManager*::SetWiFiRendezvousAddress
    - WeaveLogProgress
    - pthread_mutex_lock
    - nl::Inet::IPAddress::FromString
    - VerifyOrExit
    - ExitNow
    - JNIEnv*::ReleaseStringUTFChars
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_setRendezvousAddress(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jstring rendezvousAddrObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1242,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1244,1
    - Dst: WeaveDeviceManager*::SetAutoReconnect
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1246,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1248,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - env
    - self
    - deviceMgrPtr
    - autoReconnect
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jboolean
    constantsTouched: []
    func_position:
      end: 1252
      start: 1237
    functionDepth: 1
    functionLinenumber: 1237
    functionLinenumberEnd: 1252
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_setAutoReconnect
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveDeviceManager*::SetAutoReconnect
    - WeaveLogProgress
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_setAutoReconnect(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jboolean autoReconnect)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1259,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1261,1
    - Dst: WeaveDeviceManager*::SetRendezvousLinkLocal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1263,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1265,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - env
    - self
    - deviceMgrPtr
    - rendezvousLinkLocal
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jboolean
    constantsTouched: []
    func_position:
      end: 1269
      start: 1254
    functionDepth: 1
    functionLinenumber: 1254
    functionLinenumberEnd: 1269
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_setRendezvousLinkLocal
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - WeaveDeviceManager*::SetRendezvousLinkLocal
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_setRendezvousLinkLocal(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jboolean rendezvousLinkLocal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1276,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1278,1
    - Dst: WeaveDeviceManager*::SetConnectTimeout
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1280,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1282,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - env
    - self
    - deviceMgrPtr
    - timeoutMS
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jint
    constantsTouched: []
    func_position:
      end: 1286
      start: 1271
    functionDepth: 1
    functionLinenumber: 1271
    functionLinenumberEnd: 1286
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_setConnectTimeout
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - WeaveDeviceManager*::SetConnectTimeout
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_setConnectTimeout(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jint timeoutMS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1293,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1295,1
    - Dst: WeaveDeviceManager*::CreateFabric
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1297,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1299,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - env
    - self
    - deviceMgrPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 1303
      start: 1288
    functionDepth: 1
    functionLinenumber: 1288
    functionLinenumberEnd: 1303
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginCreateFabric
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - WeaveDeviceManager*::CreateFabric
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginCreateFabric(JNIEnv
      *env, jobject self, jlong deviceMgrPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1310,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1312,1
    - Dst: WeaveDeviceManager*::LeaveFabric
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1314,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1316,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - env
    - self
    - deviceMgrPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 1320
      start: 1305
    functionDepth: 1
    functionLinenumber: 1305
    functionLinenumberEnd: 1320
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginLeaveFabric
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - WeaveDeviceManager*::LeaveFabric
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginLeaveFabric(JNIEnv
      *env, jobject self, jlong deviceMgrPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1327,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1329,1
    - Dst: WeaveDeviceManager*::GetFabricConfig
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1331,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1333,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - env
    - self
    - deviceMgrPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 1337
      start: 1322
    functionDepth: 1
    functionLinenumber: 1322
    functionLinenumberEnd: 1337
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginGetFabricConfig
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - WeaveDeviceManager*::GetFabricConfig
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginGetFabricConfig(JNIEnv
      *env, jobject self, jlong deviceMgrPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1346,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1348,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1349,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1351,1
    - Dst: WeaveDeviceManager*::JoinExistingFabric
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1353,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1355,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1358,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1361,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - env
    - self
    - deviceMgrPtr
    - fabricConfig
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 1362
      start: 1339
    functionDepth: 1
    functionLinenumber: 1339
    functionLinenumberEnd: 1362
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginJoinExistingFabric
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - WeaveDeviceManager*::JoinExistingFabric
    - pthread_mutex_unlock
    - JNIEnv*::ReleaseByteArrayElements
    - WeaveLogProgress
    - JNIEnv*::GetByteArrayElements
    - pthread_mutex_lock
    - JNIEnv*::GetArrayLength
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginJoinExistingFabric(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jbyteArray fabricConfig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1369,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1371,1
    - Dst: WeaveDeviceManager*::ArmFailSafe
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1373,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1375,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - env
    - self
    - deviceMgrPtr
    - armMode
    - failSafeToken
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 1379
      start: 1364
    functionDepth: 1
    functionLinenumber: 1364
    functionLinenumberEnd: 1379
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginArmFailSafe
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - WeaveDeviceManager*::ArmFailSafe
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginArmFailSafe(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jint armMode, jint failSafeToken)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1386,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1388,1
    - Dst: WeaveDeviceManager*::DisarmFailSafe
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1390,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1392,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - env
    - self
    - deviceMgrPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 1396
      start: 1381
    functionDepth: 1
    functionLinenumber: 1381
    functionLinenumberEnd: 1396
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginDisarmFailSafe
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - WeaveDeviceManager*::DisarmFailSafe
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginDisarmFailSafe(JNIEnv
      *env, jobject self, jlong deviceMgrPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1403,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1405,1
    - Dst: WeaveDeviceManager*::StartSystemTest
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1407,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1407,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1407,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1409,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - env
    - self
    - deviceMgrPtr
    - profileId
    - testId
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jlong
    - jlong
    constantsTouched: []
    func_position:
      end: 1413
      start: 1398
    functionDepth: 1
    functionLinenumber: 1398
    functionLinenumberEnd: 1413
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginStartSystemTest
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - static_cast<uint32_t>
    - pthread_mutex_lock
    - WeaveDeviceManager*::StartSystemTest
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginStartSystemTest(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jlong profileId, jlong testId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1420,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1422,1
    - Dst: WeaveDeviceManager*::StopSystemTest
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1424,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1426,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - env
    - self
    - deviceMgrPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 1430
      start: 1415
    functionDepth: 1
    functionLinenumber: 1415
    functionLinenumberEnd: 1430
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginStopSystemTest
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - WeaveDeviceManager*::StopSystemTest
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginStopSystemTest(JNIEnv
      *env, jobject self, jlong deviceMgrPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1437,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1439,1
    - Dst: WeaveDeviceManager*::ResetConfig
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1441,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1443,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1446,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - env
    - self
    - deviceMgrPtr
    - resetFlags
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jint
    constantsTouched: []
    func_position:
      end: 1447
      start: 1432
    functionDepth: 1
    functionLinenumber: 1432
    functionLinenumberEnd: 1447
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginResetConfig
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - WeaveDeviceManager*::ResetConfig
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginResetConfig(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jint resetFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1454,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1456,1
    - Dst: WeaveDeviceManager*::EnableConnectionMonitor
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1458,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1460,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - env
    - self
    - deviceMgrPtr
    - interval
    - timeout
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 1464
      start: 1449
    functionDepth: 1
    functionLinenumber: 1449
    functionLinenumberEnd: 1464
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginEnableConnectionMonitor
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveDeviceManager*::EnableConnectionMonitor
    - WeaveLogProgress
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginEnableConnectionMonitor(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jint interval, jint timeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1471,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1473,1
    - Dst: WeaveDeviceManager*::DisableConnectionMonitor
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1475,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1477,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - env
    - self
    - deviceMgrPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 1481
      start: 1466
    functionDepth: 1
    functionLinenumber: 1466
    functionLinenumberEnd: 1481
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginDisableConnectionMonitor
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - WeaveDeviceManager*::DisableConnectionMonitor
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginDisableConnectionMonitor(JNIEnv
      *env, jobject self, jlong deviceMgrPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1488,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1490,1
    - Dst: nl::Weave::DeviceManager::WeaveDeviceManager::IsValidPairingCode
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1492,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - env
    - cls
    - pairingCodeObj
    argTypes:
    - JNIEnv*
    - jclass
    - jstring
    constantsTouched: []
    func_position:
      end: 1497
      start: 1483
    functionDepth: 2
    functionLinenumber: 1483
    functionLinenumberEnd: 1497
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_isValidPairingCode
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - JNIEnv*::ReleaseStringUTFChars
    - nl::Weave::DeviceManager::WeaveDeviceManager::IsValidPairingCode
    - JNIEnv*::GetStringUTFChars
    linkageType: ''
    returnType: jboolean
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_isValidPairingCode(JNIEnv
      *env, jclass cls, jstring pairingCodeObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1506,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1508,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1509,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1511,1
    - Dst: WeaveDeviceManager*::PairToken
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1513,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1513,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1515,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1518,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - env
    - self
    - deviceMgrPtr
    - pairingToken
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 1522
      start: 1499
    functionDepth: 1
    functionLinenumber: 1499
    functionLinenumberEnd: 1522
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginPairToken
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - static_cast<uint16_t>
    - pthread_mutex_unlock
    - JNIEnv*::ReleaseByteArrayElements
    - WeaveLogProgress
    - JNIEnv*::GetByteArrayElements
    - pthread_mutex_lock
    - WeaveDeviceManager*::PairToken
    - JNIEnv*::GetArrayLength
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginPairToken(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jbyteArray pairingToken)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1529,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1531,1
    - Dst: WeaveDeviceManager*::UnpairToken
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1533,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1535,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - env
    - self
    - deviceMgrPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 1539
      start: 1524
    functionDepth: 1
    functionLinenumber: 1524
    functionLinenumberEnd: 1539
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginUnpairToken
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - WeaveDeviceManager*::UnpairToken
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginUnpairToken(JNIEnv
      *env, jobject self, jlong deviceMgrPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1546,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1548,1
    - Dst: WeaveDeviceManager*::GetWirelessRegulatoryConfig
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1550,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1552,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - env
    - self
    - deviceMgrPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 1556
      start: 1541
    functionDepth: 1
    functionLinenumber: 1541
    functionLinenumberEnd: 1556
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginGetWirelessRegulatoryConfig
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - WeaveDeviceManager*::GetWirelessRegulatoryConfig
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginGetWirelessRegulatoryConfig(JNIEnv
      *env, jobject self, jlong deviceMgrPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1564,1
    - Dst: WirelessRegConfig::Init
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1566,1
    - Dst: J2N_WirelessRegulatoryConfig
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1568,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1569,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1571,1
    - Dst: WeaveDeviceManager*::SetWirelessRegulatoryConfig
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1573,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1575,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - env
    - self
    - deviceMgrPtr
    - regConfigObj
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jobject
    constantsTouched: []
    func_position:
      end: 1580
      start: 1558
    functionDepth: 1
    functionLinenumber: 1558
    functionLinenumberEnd: 1580
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginSetWirelessRegulatoryConfig
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - WirelessRegConfig::Init
    - pthread_mutex_lock
    - J2N_WirelessRegulatoryConfig
    - WeaveDeviceManager*::SetWirelessRegulatoryConfig
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginSetWirelessRegulatoryConfig(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jobject regConfigObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1586,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1588,1
    - Dst: CloseEndpoints
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1590,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1592,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1595,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - env
    - cls
    argTypes:
    - JNIEnv*
    - jclass
    constantsTouched: []
    func_position:
      end: 1596
      start: 1582
    functionDepth: 1
    functionLinenumber: 1582
    functionLinenumberEnd: 1596
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_closeEndpoints
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - CloseEndpoints
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_closeEndpoints(JNIEnv
      *env, jclass cls)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Logging::SetLogFilter
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - env
    - cls
    - logLevel
    argTypes:
    - JNIEnv*
    - jclass
    - jint
    constantsTouched: []
    func_position:
      end: 1601
      start: 1598
    functionDepth: 1
    functionLinenumber: 1598
    functionLinenumberEnd: 1601
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_setLogFilter
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Logging::SetLogFilter
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_setLogFilter(JNIEnv
      *env, jclass cls, jint logLevel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1609,1
    - Dst: J2N_IdentifyDeviceCriteria
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1611,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1612,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1614,1
    - Dst: WeaveDeviceManager*::StartDeviceEnumeration
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1616,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1618,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1622,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - env
    - self
    - deviceMgrPtr
    - deviceCriteriaObj
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jobject
    constantsTouched: []
    func_position:
      end: 1624
      start: 1603
    functionDepth: 1
    functionLinenumber: 1603
    functionLinenumberEnd: 1624
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_startDeviceEnumeration
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - J2N_IdentifyDeviceCriteria
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - WeaveDeviceManager*::StartDeviceEnumeration
    - pthread_mutex_lock
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_startDeviceEnumeration(JNIEnv
      *env, jobject self, jlong deviceMgrPtr, jobject deviceCriteriaObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1630,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1632,1
    - Dst: WeaveDeviceManager*::StopDeviceEnumeration
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1634,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - env
    - self
    - deviceMgrPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 1637
      start: 1626
    functionDepth: 0
    functionLinenumber: 1626
    functionLinenumberEnd: 1637
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_stopDeviceEnumeration
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - WeaveDeviceManager*::StopDeviceEnumeration
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_stopDeviceEnumeration(JNIEnv
      *env, jobject self, jlong deviceMgrPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1646,1
    - Dst: J2N_ByteArrayInPlace
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1649,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1650,1
    - Dst: J2N_ByteArrayInPlace
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1653,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1654,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1656,1
    - Dst: HandleWriteConfirmation
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1660,1
    - Dst: reinterpret_cast<BLE_CONNECTION_OBJECT>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1660,1
    - Dst: HandleConnectionError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1667,1
    - Dst: reinterpret_cast<BLE_CONNECTION_OBJECT>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1667,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1670,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1674,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - env
    - self
    - connObj
    - svcIdObj
    - charIdObj
    - success
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    - jbyteArray
    - jbyteArray
    - jboolean
    constantsTouched: []
    func_position:
      end: 1676
      start: 1639
    functionDepth: 1
    functionLinenumber: 1639
    functionLinenumberEnd: 1676
    functionName: Java_nl_Weave_DeviceManager_WeaveStack_handleWriteConfirmation
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - HandleWriteConfirmation
    - reinterpret_cast<BLE_CONNECTION_OBJECT>
    - SuccessOrExit
    - HandleConnectionError
    - J2N_ByteArrayInPlace
    linkageType: ''
    returnType: void
    signature: "Java_nl_Weave_DeviceManager_WeaveStack_handleWriteConfirmation(JNIEnv
      *env, jobject self, jint connObj,\n                                        jbyteArray
      svcIdObj, jbyteArray charIdObj,\n                                        jboolean
      success)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1685,1
    - Dst: J2N_ByteArrayInPlace
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1691,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1692,1
    - Dst: J2N_ByteArrayInPlace
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1694,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1695,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1697,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1698,1
    - Dst: J2N_ByteArrayInPlace
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1701,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1701,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1701,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1704,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1705,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1707,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1707,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1709,1
    - Dst: HandleIndicationReceived
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1711,1
    - Dst: reinterpret_cast<BLE_CONNECTION_OBJECT>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1711,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1713,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1717,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1721,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 6
    argNames:
    - env
    - self
    - connObj
    - svcIdObj
    - charIdObj
    - dataObj
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    - jbyteArray
    - jbyteArray
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 1723
      start: 1678
    functionDepth: 3
    functionLinenumber: 1678
    functionLinenumberEnd: 1723
    functionName: Java_nl_Weave_DeviceManager_WeaveStack_handleIndicationReceived
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - PacketBuffer*::SetDataLength
    - pthread_mutex_unlock
    - nl::Weave::System::PacketBuffer::Free
    - JNIEnv*::GetArrayLength
    - WeaveLogProgress
    - J2N_ByteArrayInPlace
    - VerifyOrExit
    - ExitNow
    - pthread_mutex_lock
    - PacketBuffer*::AvailableDataLength
    - PacketBuffer*::Start
    - reinterpret_cast<BLE_CONNECTION_OBJECT>
    - SuccessOrExit
    - HandleIndicationReceived
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: "Java_nl_Weave_DeviceManager_WeaveStack_handleIndicationReceived(JNIEnv
      *env, jobject self, jint connObj,\n                                         jbyteArray
      svcIdObj, jbyteArray charIdObj,\n                                         jbyteArray
      dataObj)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1732,1
    - Dst: J2N_ByteArrayInPlace
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1735,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1736,1
    - Dst: J2N_ByteArrayInPlace
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1739,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1740,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1742,1
    - Dst: HandleSubscribeComplete
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1746,1
    - Dst: reinterpret_cast<BLE_CONNECTION_OBJECT>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1746,1
    - Dst: HandleConnectionError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1753,1
    - Dst: reinterpret_cast<BLE_CONNECTION_OBJECT>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1753,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1756,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1760,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - env
    - self
    - connObj
    - svcIdObj
    - charIdObj
    - success
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    - jbyteArray
    - jbyteArray
    - jboolean
    constantsTouched: []
    func_position:
      end: 1762
      start: 1725
    functionDepth: 1
    functionLinenumber: 1725
    functionLinenumberEnd: 1762
    functionName: Java_nl_Weave_DeviceManager_WeaveStack_handleSubscribeComplete
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - HandleSubscribeComplete
    - pthread_mutex_lock
    - reinterpret_cast<BLE_CONNECTION_OBJECT>
    - SuccessOrExit
    - HandleConnectionError
    - J2N_ByteArrayInPlace
    linkageType: ''
    returnType: void
    signature: "Java_nl_Weave_DeviceManager_WeaveStack_handleSubscribeComplete(JNIEnv
      *env, jobject self, jint connObj,\n                                                                            jbyteArray
      svcIdObj, jbyteArray charIdObj,\n                                                                            jboolean
      success)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1771,1
    - Dst: J2N_ByteArrayInPlace
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1774,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1775,1
    - Dst: J2N_ByteArrayInPlace
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1778,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1779,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1781,1
    - Dst: HandleUnsubscribeComplete
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1785,1
    - Dst: reinterpret_cast<BLE_CONNECTION_OBJECT>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1785,1
    - Dst: HandleConnectionError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1792,1
    - Dst: reinterpret_cast<BLE_CONNECTION_OBJECT>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1792,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1795,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1799,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - env
    - self
    - connObj
    - svcIdObj
    - charIdObj
    - success
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    - jbyteArray
    - jbyteArray
    - jboolean
    constantsTouched: []
    func_position:
      end: 1801
      start: 1764
    functionDepth: 1
    functionLinenumber: 1764
    functionLinenumberEnd: 1801
    functionName: Java_nl_Weave_DeviceManager_WeaveStack_handleUnsubscribeComplete
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - HandleUnsubscribeComplete
    - WeaveLogProgress
    - pthread_mutex_lock
    - reinterpret_cast<BLE_CONNECTION_OBJECT>
    - SuccessOrExit
    - HandleConnectionError
    - J2N_ByteArrayInPlace
    linkageType: ''
    returnType: void
    signature: "Java_nl_Weave_DeviceManager_WeaveStack_handleUnsubscribeComplete(JNIEnv
      *env, jobject self, jint connObj,\n                                          jbyteArray
      svcIdObj, jbyteArray charIdObj,\n                                          jboolean
      success)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1806,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1808,1
    - Dst: HandleConnectionError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1810,1
    - Dst: reinterpret_cast<BLE_CONNECTION_OBJECT>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1810,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - env
    - self
    - connObj
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 1814
      start: 1803
    functionDepth: 0
    functionLinenumber: 1803
    functionLinenumberEnd: 1814
    functionName: Java_nl_Weave_DeviceManager_WeaveStack_handleConnectionError
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - reinterpret_cast<BLE_CONNECTION_OBJECT>
    - HandleConnectionError
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveStack_handleConnectionError(JNIEnv
      *env, jobject self, jint connObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1820,1
    - Dst: WeaveDeviceManager*::Close
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - env
    - self
    - deviceMgrPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 1824
      start: 1816
    functionDepth: 0
    functionLinenumber: 1816
    functionLinenumberEnd: 1824
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_close
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 2
    functionsReached:
    - WeaveLogProgress
    - WeaveDeviceManager*::Close
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_close(JNIEnv *env, jobject
      self, jlong deviceMgrPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1830,1
    - Dst: WeaveDeviceManager*::IsConnected
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - env
    - self
    - deviceMgrPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 1833
      start: 1826
    functionDepth: 0
    functionLinenumber: 1826
    functionLinenumberEnd: 1833
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_isConnected
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - WeaveDeviceManager*::IsConnected
    linkageType: ''
    returnType: jboolean
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_isConnected(JNIEnv *env,
      jobject self, jlong deviceMgrPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1841,1
    - Dst: WeaveDeviceManager*::GetDeviceId
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1843,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1851,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - env
    - self
    - deviceMgrPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 1854
      start: 1835
    functionDepth: 1
    functionLinenumber: 1835
    functionLinenumberEnd: 1854
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_deviceId
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - WeaveDeviceManager*::GetDeviceId
    - ThrowError
    linkageType: ''
    returnType: jlong
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_deviceId(JNIEnv *env,
      jobject self, jlong deviceMgrPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1864,1
    - Dst: WeaveDeviceManager*::GetDeviceAddress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1866,1
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1869,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1870,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1876,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - env
    - self
    - deviceMgrPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 1879
      start: 1856
    functionDepth: 1
    functionLinenumber: 1856
    functionLinenumberEnd: 1879
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceManager_deviceAddress
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - WeaveLogProgress
    - WeaveDeviceManager*::GetDeviceAddress
    - IPAddress::ToString
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceManager_deviceAddress(JNIEnv
      *env, jobject self, jlong deviceMgrPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1889,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1891,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1892,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::Decode
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1894,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1895,1
    - Dst: N2J_DeviceDescriptor
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1897,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1898,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1902,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1905,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - env
    - cls
    - encodedDesc
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 1908
      start: 1881
    functionDepth: 1
    functionLinenumber: 1881
    functionLinenumberEnd: 1908
    functionName: Java_nl_Weave_DeviceManager_WeaveDeviceDescriptor_decode
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - JNIEnv*::ReleaseByteArrayElements
    - N2J_DeviceDescriptor
    - WeaveLogProgress
    - JNIEnv*::GetByteArrayElements
    - SuccessOrExit
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::Decode
    - JNIEnv*::GetArrayLength
    linkageType: ''
    returnType: jobject
    signature: Java_nl_Weave_DeviceManager_WeaveDeviceDescriptor_decode(JNIEnv *env,
      jclass cls, jbyteArray encodedDesc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AttachCurrentThreadAsDaemon
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1921,1
    - Dst: AttachCurrentThreadAsDaemon
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1923,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1926,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1929,1
    - Dst: PrepareSelect
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1939,1
    - Dst: PrepareSelect
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1940,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1943,1
    - Dst: printf
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1949,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1949,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1949,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1958,1
    - Dst: HandleSelectResult
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1961,1
    - Dst: HandleSelectResult
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1962,1
    - Dst: DetachCurrentThread
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1966,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1969
      start: 1910
    functionDepth: 1
    functionLinenumber: 1910
    functionLinenumberEnd: 1969
    functionName: IOThreadMain
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - HandleSelectResult
    - WeaveLogProgress
    - PrepareSelect
    - pthread_mutex_lock
    - printf
    - nl::ErrorStr
    - DetachCurrentThread
    - nl::Weave::System::MapErrorPOSIX
    - AttachCurrentThreadAsDaemon
    linkageType: ''
    returnType: void
    signature: '*IOThreadMain(void *arg)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1981,1
    - Dst: GetEnv
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1983,1
    - Dst: JNIEnv*::PushLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1985,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1987,1
    - Dst: N2J_DeviceDescriptor
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1989,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1990,1
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1992,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1993,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1995,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1996,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:1998,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2000,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2001,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2002,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2002,1
    - Dst: ReportError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2006,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2007,1
    - Dst: JNIEnv*::PopLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2009,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - deviceMgr
    - reqState
    - deviceDesc
    argTypes:
    - WeaveDeviceManager*
    - void*
    - WeaveDeviceDescriptor*
    constantsTouched: []
    func_position:
      end: 2010
      start: 1971
    functionDepth: 1
    functionLinenumber: 1971
    functionLinenumberEnd: 2010
    functionName: HandleIdentifyDeviceComplete
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetMethodID
    - N2J_DeviceDescriptor
    - JNIEnv*::PopLocalFrame
    - ReportError
    - WeaveLogProgress
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::CallVoidMethod
    - JNIEnv*::PushLocalFrame
    - SuccessOrExit
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    - GetEnv
    linkageType: ''
    returnType: void
    signature: HandleIdentifyDeviceComplete(WeaveDeviceManager *deviceMgr, void *reqState,
      const WeaveDeviceDescriptor *deviceDesc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2022,1
    - Dst: GetEnv
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2024,1
    - Dst: JNIEnv*::PushLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2026,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2028,1
    - Dst: N2J_NetworkInfoArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2030,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2031,1
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2033,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2034,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2036,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2037,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2039,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2041,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2042,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2043,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2043,1
    - Dst: ReportError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2047,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2048,1
    - Dst: JNIEnv*::PopLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2050,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 4
    argNames:
    - deviceMgr
    - reqState
    - netCount
    - netInfoList
    argTypes:
    - WeaveDeviceManager*
    - void*
    - uint16_t
    - NetworkInfo*
    constantsTouched: []
    func_position:
      end: 2051
      start: 2012
    functionDepth: 1
    functionLinenumber: 2012
    functionLinenumberEnd: 2051
    functionName: HandleNetworkScanComplete
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetMethodID
    - JNIEnv*::PopLocalFrame
    - ReportError
    - WeaveLogProgress
    - JNIEnv*::ExceptionClear
    - N2J_NetworkInfoArray
    - VerifyOrExit
    - JNIEnv*::CallVoidMethod
    - JNIEnv*::PushLocalFrame
    - SuccessOrExit
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    - GetEnv
    linkageType: ''
    returnType: void
    signature: HandleNetworkScanComplete(WeaveDeviceManager *deviceMgr, void *reqState,
      uint16_t netCount, const NetworkInfo *netInfoList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2063,1
    - Dst: GetEnv
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2065,1
    - Dst: JNIEnv*::PushLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2067,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2069,1
    - Dst: N2J_NetworkInfoArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2071,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2072,1
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2074,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2075,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2077,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2078,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2080,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2082,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2083,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2084,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2084,1
    - Dst: ReportError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2088,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2089,1
    - Dst: JNIEnv*::PopLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2091,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 4
    argNames:
    - deviceMgr
    - reqState
    - netCount
    - netInfoList
    argTypes:
    - WeaveDeviceManager*
    - void*
    - uint16_t
    - NetworkInfo*
    constantsTouched: []
    func_position:
      end: 2092
      start: 2053
    functionDepth: 1
    functionLinenumber: 2053
    functionLinenumberEnd: 2092
    functionName: HandleGetNetworksComplete
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetMethodID
    - JNIEnv*::PopLocalFrame
    - ReportError
    - WeaveLogProgress
    - JNIEnv*::ExceptionClear
    - N2J_NetworkInfoArray
    - VerifyOrExit
    - JNIEnv*::CallVoidMethod
    - JNIEnv*::PushLocalFrame
    - SuccessOrExit
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    - GetEnv
    linkageType: ''
    returnType: void
    signature: HandleGetNetworksComplete(WeaveDeviceManager *deviceMgr, void *reqState,
      uint16_t netCount, const NetworkInfo *netInfoList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2105,1
    - Dst: GetEnv
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2107,1
    - Dst: JNIEnv*::PushLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2109,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2113,1
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2115,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2116,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2118,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2119,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2121,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2122,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2124,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2126,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2127,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2128,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2128,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2133,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2138,1
    - Dst: ReportError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2143,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2145,1
    - Dst: JNIEnv*::PopLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 4
    argNames:
    - deviceMgr
    - reqState
    - macAddress
    - signedPayload
    argTypes:
    - WeaveDeviceManager*
    - void*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2150
      start: 2094
    functionDepth: 1
    functionLinenumber: 2094
    functionLinenumberEnd: 2150
    functionName: HandleGetCameraAuthDataComplete
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetMethodID
    - JNIEnv*::NewStringUTF
    - JNIEnv*::PopLocalFrame
    - ReportError
    - WeaveLogProgress
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::CallVoidMethod
    - JNIEnv*::PushLocalFrame
    - JNIEnv*::DeleteLocalRef
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    - GetEnv
    linkageType: ''
    returnType: void
    signature: HandleGetCameraAuthDataComplete(WeaveDeviceManager *deviceMgr, void
      *reqState, const char *macAddress, const char *signedPayload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2161,1
    - Dst: GetEnv
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2163,1
    - Dst: JNIEnv*::PushLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2165,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2167,1
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2169,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2170,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2172,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2173,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2175,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2177,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2178,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2179,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2179,1
    - Dst: ReportError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2183,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2184,1
    - Dst: JNIEnv*::PopLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - deviceMgr
    - reqState
    - networkId
    argTypes:
    - WeaveDeviceManager*
    - void*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2187
      start: 2152
    functionDepth: 1
    functionLinenumber: 2152
    functionLinenumberEnd: 2187
    functionName: HandleAddNetworkComplete
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetMethodID
    - JNIEnv*::PopLocalFrame
    - ReportError
    - WeaveLogProgress
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::CallVoidMethod
    - JNIEnv*::PushLocalFrame
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    - GetEnv
    linkageType: ''
    returnType: void
    signature: HandleAddNetworkComplete(WeaveDeviceManager *deviceMgr, void *reqState,
      uint32_t networkId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2198,1
    - Dst: GetEnv
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2200,1
    - Dst: JNIEnv*::PushLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2202,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2204,1
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2206,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2207,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2209,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2210,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2212,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2214,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2215,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2216,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2216,1
    - Dst: ReportError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2220,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2221,1
    - Dst: JNIEnv*::PopLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - deviceMgr
    - reqState
    - modeFlags
    argTypes:
    - WeaveDeviceManager*
    - void*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2224
      start: 2189
    functionDepth: 1
    functionLinenumber: 2189
    functionLinenumberEnd: 2224
    functionName: HandleGetRendezvousModeComplete
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetMethodID
    - JNIEnv*::PopLocalFrame
    - ReportError
    - WeaveLogProgress
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::CallVoidMethod
    - JNIEnv*::PushLocalFrame
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    - GetEnv
    linkageType: ''
    returnType: void
    signature: HandleGetRendezvousModeComplete(WeaveDeviceManager *deviceMgr, void
      *reqState, uint16_t modeFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2236,1
    - Dst: GetEnv
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2238,1
    - Dst: JNIEnv*::PushLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2240,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2242,1
    - Dst: N2J_ByteArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2244,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2245,1
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2247,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2248,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2250,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2251,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2253,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2255,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2256,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2257,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2257,1
    - Dst: ReportError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2261,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2262,1
    - Dst: JNIEnv*::PopLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 4
    argNames:
    - deviceMgr
    - reqState
    - fabricConfig
    - fabricConfigLen
    argTypes:
    - WeaveDeviceManager*
    - void*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2265
      start: 2226
    functionDepth: 1
    functionLinenumber: 2226
    functionLinenumberEnd: 2265
    functionName: HandleGetFabricConfigComplete
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetMethodID
    - JNIEnv*::PopLocalFrame
    - ReportError
    - WeaveLogProgress
    - JNIEnv*::ExceptionClear
    - N2J_ByteArray
    - VerifyOrExit
    - JNIEnv*::CallVoidMethod
    - JNIEnv*::PushLocalFrame
    - SuccessOrExit
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    - GetEnv
    linkageType: ''
    returnType: void
    signature: HandleGetFabricConfigComplete(WeaveDeviceManager *deviceMgr, void *reqState,
      const uint8_t *fabricConfig, uint32_t fabricConfigLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2280,1
    - Dst: GetEnv
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2282,1
    - Dst: JNIEnv*::PushLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2284,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2289,1
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2291,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2294,1
    - Dst: snprintf
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2294,1
    - Dst: strlen
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2294,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2294,1
    - Dst: nl::Inet::GetInterfaceName
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2297,1
    - Dst: strlen
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2297,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2298,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2300,1
    - Dst: N2J_DeviceDescriptor
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2302,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2303,1
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2305,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2306,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2308,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2309,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2311,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2313,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2314,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2315,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2315,1
    - Dst: ReportError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2320,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2323,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2327,1
    - Dst: JNIEnv*::PopLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2328,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 5
    argNames:
    - deviceMgr
    - reqState
    - deviceDesc
    - deviceAddr
    - deviceIntf
    argTypes:
    - WeaveDeviceManager*
    - void*
    - WeaveDeviceDescriptor*
    - IPAddress
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 2330
      start: 2267
    functionDepth: 2
    functionLinenumber: 2267
    functionLinenumberEnd: 2330
    functionName: HandleDeviceEnumerationResponse
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::PopLocalFrame
    - snprintf
    - JNIEnv*::NewStringUTF
    - ReportError
    - VerifyOrExit
    - nl::Inet::GetInterfaceName
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    - GetEnv
    - WeaveLogProgress
    - strlen
    - JNIEnv*::CallVoidMethod
    - JNIEnv*::PushLocalFrame
    - nl::Weave::System::MapErrorPOSIX
    - JNIEnv*::GetMethodID
    - N2J_DeviceDescriptor
    - JNIEnv*::ExceptionClear
    - IPAddress::ToString
    - JNIEnv*::DeleteLocalRef
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: "HandleDeviceEnumerationResponse(WeaveDeviceManager *deviceMgr, void
      *reqState, const WeaveDeviceDescriptor *deviceDesc,\n                                     IPAddress
      deviceAddr, InterfaceId deviceIntf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2342,1
    - Dst: GetEnv
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2344,1
    - Dst: JNIEnv*::PushLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2346,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2348,1
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2350,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2351,1
    - Dst: snprintf
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2353,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2355,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2356,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2358,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2360,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2361,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2362,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2362,1
    - Dst: ReportError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2366,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2367,1
    - Dst: JNIEnv*::PopLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2369,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - obj
    - reqState
    argTypes:
    - jobject
    - void*
    constantsTouched: []
    func_position:
      end: 2370
      start: 2332
    functionDepth: 1
    functionLinenumber: 2332
    functionLinenumberEnd: 2370
    functionName: HandleGenericOperationComplete
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetMethodID
    - JNIEnv*::PopLocalFrame
    - ReportError
    - WeaveLogProgress
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::CallVoidMethod
    - JNIEnv*::PushLocalFrame
    - snprintf
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    - GetEnv
    linkageType: ''
    returnType: void
    signature: HandleGenericOperationComplete(jobject obj, void *reqState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HandleGenericOperationComplete
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - deviceMgr
    - reqState
    argTypes:
    - WeaveDeviceManager*
    - void*
    constantsTouched: []
    func_position:
      end: 2376
      start: 2372
    functionDepth: 2
    functionLinenumber: 2372
    functionLinenumberEnd: 2376
    functionName: HandleSimpleOperationComplete
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - HandleGenericOperationComplete
    linkageType: ''
    returnType: void
    signature: HandleSimpleOperationComplete(WeaveDeviceManager *deviceMgr, void *reqState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<WdmClient *>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2380,1
    - Dst: HandleGenericOperationComplete
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - context
    - reqState
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 2383
      start: 2378
    functionDepth: 2
    functionLinenumber: 2378
    functionLinenumberEnd: 2383
    functionName: HandleWdmClientComplete
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<WdmClient *>
    - HandleGenericOperationComplete
    linkageType: ''
    returnType: void
    signature: HandleWdmClientComplete(void *context, void *reqState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<GenericTraitUpdatableDataSink *>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2387,1
    - Dst: HandleGenericOperationComplete
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - context
    - reqState
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 2390
      start: 2385
    functionDepth: 2
    functionLinenumber: 2385
    functionLinenumberEnd: 2390
    functionName: HandleGenericTraitUpdatableDataSinkComplete
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<GenericTraitUpdatableDataSink *>
    - HandleGenericOperationComplete
    linkageType: ''
    returnType: void
    signature: HandleGenericTraitUpdatableDataSinkComplete(void *context, void *reqState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<WdmClient *>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2394,1
    - Dst: HandleGenericError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - context
    - reqState
    - deviceMgrErr
    - devStatus
    argTypes:
    - void*
    - void*
    - WEAVE_ERROR
    - DeviceStatus*
    constantsTouched: []
    func_position:
      end: 2397
      start: 2392
    functionDepth: 1
    functionLinenumber: 2392
    functionLinenumberEnd: 2397
    functionName: HandleWdmClientError
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<WdmClient *>
    - HandleGenericError
    linkageType: ''
    returnType: void
    signature: HandleWdmClientError(void *context, void *reqState, WEAVE_ERROR deviceMgrErr,
      DeviceStatus *devStatus)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<GenericTraitUpdatableDataSink *>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2401,1
    - Dst: HandleGenericError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - context
    - reqState
    - deviceMgrErr
    - devStatus
    argTypes:
    - void*
    - void*
    - WEAVE_ERROR
    - DeviceStatus*
    constantsTouched: []
    func_position:
      end: 2404
      start: 2399
    functionDepth: 1
    functionLinenumber: 2399
    functionLinenumberEnd: 2404
    functionName: HandleGenericTraitUpdatableDataSinkError
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<GenericTraitUpdatableDataSink *>
    - HandleGenericError
    linkageType: ''
    returnType: void
    signature: HandleGenericTraitUpdatableDataSinkError(void *context, void *reqState,
      WEAVE_ERROR deviceMgrErr, DeviceStatus *devStatus)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<WdmClient *>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2410,1
    - Dst: GetEnv
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2418,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2419,1
    - Dst: JNIEnv*::PushLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2421,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2426,1
    - Dst: JNIEnv*::FindClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2428,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2429,1
    - Dst: N2J_GenericArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2431,1
    - Dst: N2J_WdmClientFlushUpdateDeviceStatus
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2437,1
    - Dst: N2J_WdmClientFlushUpdateError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2441,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2445,1
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2447,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2448,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2450,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2451,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2453,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2455,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2456,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2457,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2457,1
    - Dst: ReportError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2461,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2462,1
    - Dst: JNIEnv*::PopLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2464,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 4
    argNames:
    - context
    - reqState
    - pathCount
    - statusResults
    argTypes:
    - void*
    - void*
    - uint16_t
    - WdmClientFlushUpdateStatus*
    constantsTouched: []
    func_position:
      end: 2465
      start: 2406
    functionDepth: 1
    functionLinenumber: 2406
    functionLinenumberEnd: 2465
    functionName: HandleWdmClientFlushUpdateComplete
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - N2J_GenericArray
    - N2J_WdmClientFlushUpdateDeviceStatus
    - JNIEnv*::GetMethodID
    - JNIEnv*::PopLocalFrame
    - N2J_WdmClientFlushUpdateError
    - WeaveLogProgress
    - JNIEnv*::ExceptionClear
    - ReportError
    - VerifyOrExit
    - JNIEnv*::CallVoidMethod
    - reinterpret_cast<WdmClient *>
    - JNIEnv*::PushLocalFrame
    - SuccessOrExit
    - JNIEnv*::GetObjectClass
    - JNIEnv*::FindClass
    - JNIEnv*::ExceptionCheck
    - GetEnv
    linkageType: ''
    returnType: void
    signature: HandleWdmClientFlushUpdateComplete(void *context, void *reqState, uint16_t
      pathCount, WdmClientFlushUpdateStatus *statusResults)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2476,1
    - Dst: GetEnv
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2478,1
    - Dst: JNIEnv*::PushLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2480,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2482,1
    - Dst: JNIEnv*::GetStaticMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2484,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2485,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2487,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2489,1
    - Dst: reinterpret_cast<intptr_t>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2490,1
    - Dst: JNIEnv*::CallStaticVoidMethod
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2491,1
    - Dst: static_cast<jint>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2491,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2492,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2492,1
    - Dst: ReportError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2496,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2497,1
    - Dst: JNIEnv*::PopLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2499,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - connObj
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 2500
      start: 2468
    functionDepth: 1
    functionLinenumber: 2468
    functionLinenumberEnd: 2500
    functionName: HandleNotifyWeaveConnectionClosed
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::PopLocalFrame
    - ReportError
    - WeaveLogProgress
    - JNIEnv*::ExceptionClear
    - static_cast<jint>
    - VerifyOrExit
    - JNIEnv*::GetStaticMethodID
    - JNIEnv*::PushLocalFrame
    - reinterpret_cast<intptr_t>
    - JNIEnv*::CallStaticVoidMethod
    - JNIEnv*::ExceptionCheck
    - GetEnv
    linkageType: ''
    returnType: void
    signature: HandleNotifyWeaveConnectionClosed(BLE_CONNECTION_OBJECT connObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2514,1
    - Dst: GetEnv
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2516,1
    - Dst: JNIEnv*::PushLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2518,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2520,1
    - Dst: N2J_ByteArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2522,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2523,1
    - Dst: N2J_ByteArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2525,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2526,1
    - Dst: N2J_ByteArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2528,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2529,1
    - Dst: JNIEnv*::GetStaticMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2531,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2532,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2534,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2536,1
    - Dst: reinterpret_cast<intptr_t>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2537,1
    - Dst: JNIEnv*::CallStaticBooleanMethod
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2538,1
    - Dst: static_cast<jint>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2538,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2539,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2539,1
    - Dst: ReportError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2544,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2547,1
    - Dst: JNIEnv*::PopLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2549,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 5
    argNames:
    - connObj
    - svcId
    - charId
    - characteristicData
    - characteristicDataLen
    argTypes:
    - BLE_CONNECTION_OBJECT
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2552
      start: 2502
    functionDepth: 1
    functionLinenumber: 2502
    functionLinenumberEnd: 2552
    functionName: HandleSendCharacteristic
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::PopLocalFrame
    - ReportError
    - WeaveLogProgress
    - JNIEnv*::ExceptionClear
    - N2J_ByteArray
    - VerifyOrExit
    - JNIEnv*::CallStaticBooleanMethod
    - static_cast<jint>
    - JNIEnv*::GetStaticMethodID
    - JNIEnv*::PushLocalFrame
    - reinterpret_cast<intptr_t>
    - SuccessOrExit
    - JNIEnv*::ExceptionCheck
    - GetEnv
    linkageType: ''
    returnType: bool
    signature: HandleSendCharacteristic(BLE_CONNECTION_OBJECT connObj, const uint8_t
      *svcId, const uint8_t *charId, const uint8_t *characteristicData, uint32_t characteristicDataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2565,1
    - Dst: GetEnv
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2567,1
    - Dst: JNIEnv*::PushLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2569,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2571,1
    - Dst: N2J_ByteArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2573,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2574,1
    - Dst: N2J_ByteArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2576,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2577,1
    - Dst: JNIEnv*::GetStaticMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2579,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2580,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2582,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2584,1
    - Dst: reinterpret_cast<intptr_t>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2585,1
    - Dst: JNIEnv*::CallStaticBooleanMethod
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2586,1
    - Dst: static_cast<jint>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2586,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2587,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2587,1
    - Dst: ReportError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2592,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2595,1
    - Dst: JNIEnv*::PopLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2597,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 3
    argNames:
    - connObj
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 2600
      start: 2554
    functionDepth: 1
    functionLinenumber: 2554
    functionLinenumberEnd: 2600
    functionName: HandleSubscribeCharacteristic
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::PopLocalFrame
    - ReportError
    - WeaveLogProgress
    - JNIEnv*::ExceptionClear
    - N2J_ByteArray
    - VerifyOrExit
    - JNIEnv*::CallStaticBooleanMethod
    - static_cast<jint>
    - JNIEnv*::GetStaticMethodID
    - JNIEnv*::PushLocalFrame
    - reinterpret_cast<intptr_t>
    - SuccessOrExit
    - JNIEnv*::ExceptionCheck
    - GetEnv
    linkageType: ''
    returnType: bool
    signature: HandleSubscribeCharacteristic(BLE_CONNECTION_OBJECT connObj, const
      uint8_t *svcId, const uint8_t *charId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2613,1
    - Dst: GetEnv
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2615,1
    - Dst: JNIEnv*::PushLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2617,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2619,1
    - Dst: N2J_ByteArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2621,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2622,1
    - Dst: N2J_ByteArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2624,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2625,1
    - Dst: JNIEnv*::GetStaticMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2627,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2628,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2630,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2632,1
    - Dst: reinterpret_cast<intptr_t>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2633,1
    - Dst: JNIEnv*::CallStaticBooleanMethod
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2634,1
    - Dst: static_cast<jint>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2634,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2635,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2635,1
    - Dst: ReportError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2640,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2643,1
    - Dst: JNIEnv*::PopLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2645,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 3
    argNames:
    - connObj
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 2648
      start: 2602
    functionDepth: 1
    functionLinenumber: 2602
    functionLinenumberEnd: 2648
    functionName: HandleUnsubscribeCharacteristic
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::PopLocalFrame
    - ReportError
    - WeaveLogProgress
    - JNIEnv*::ExceptionClear
    - N2J_ByteArray
    - VerifyOrExit
    - JNIEnv*::CallStaticBooleanMethod
    - static_cast<jint>
    - JNIEnv*::GetStaticMethodID
    - JNIEnv*::PushLocalFrame
    - reinterpret_cast<intptr_t>
    - SuccessOrExit
    - JNIEnv*::ExceptionCheck
    - GetEnv
    linkageType: ''
    returnType: bool
    signature: HandleUnsubscribeCharacteristic(BLE_CONNECTION_OBJECT connObj, const
      uint8_t *svcId, const uint8_t *charId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2660,1
    - Dst: GetEnv
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2662,1
    - Dst: JNIEnv*::PushLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2664,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2666,1
    - Dst: N2J_ByteArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2668,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2669,1
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2671,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2672,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2674,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2675,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2677,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2679,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2680,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2681,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2681,1
    - Dst: ReportError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2685,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2686,1
    - Dst: JNIEnv*::PopLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2688,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 4
    argNames:
    - deviceMgr
    - reqState
    - pairingTokenBundle
    - pairingTokenBundleLen
    argTypes:
    - WeaveDeviceManager*
    - void*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2689
      start: 2650
    functionDepth: 1
    functionLinenumber: 2650
    functionLinenumberEnd: 2689
    functionName: HandlePairTokenComplete
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetMethodID
    - JNIEnv*::PopLocalFrame
    - ReportError
    - WeaveLogProgress
    - JNIEnv*::ExceptionClear
    - N2J_ByteArray
    - VerifyOrExit
    - JNIEnv*::CallVoidMethod
    - JNIEnv*::PushLocalFrame
    - SuccessOrExit
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    - GetEnv
    linkageType: ''
    returnType: void
    signature: HandlePairTokenComplete(WeaveDeviceManager *deviceMgr, void *reqState,
      const uint8_t *pairingTokenBundle, uint32_t pairingTokenBundleLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2700,1
    - Dst: GetEnv
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2702,1
    - Dst: JNIEnv*::PushLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2704,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2706,1
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2708,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2709,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2711,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2712,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2714,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2716,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2717,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2718,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2718,1
    - Dst: ReportError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2722,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2723,1
    - Dst: JNIEnv*::PopLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2725,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - deviceMgr
    - reqState
    argTypes:
    - WeaveDeviceManager*
    - void*
    constantsTouched: []
    func_position:
      end: 2726
      start: 2691
    functionDepth: 1
    functionLinenumber: 2691
    functionLinenumberEnd: 2726
    functionName: HandleUnpairTokenComplete
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetMethodID
    - JNIEnv*::PopLocalFrame
    - ReportError
    - WeaveLogProgress
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::CallVoidMethod
    - JNIEnv*::PushLocalFrame
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    - GetEnv
    linkageType: ''
    returnType: void
    signature: HandleUnpairTokenComplete(WeaveDeviceManager *deviceMgr, void *reqState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2738,1
    - Dst: GetEnv
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2740,1
    - Dst: JNIEnv*::PushLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2742,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2744,1
    - Dst: N2J_WirelessRegulatoryConfig
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2746,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2747,1
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2749,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2750,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2752,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2753,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2755,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2757,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2758,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2759,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2759,1
    - Dst: ReportError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2763,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2764,1
    - Dst: JNIEnv*::PopLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2766,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - deviceMgr
    - reqState
    - regConfig
    argTypes:
    - WeaveDeviceManager*
    - void*
    - WirelessRegConfig*
    constantsTouched: []
    func_position:
      end: 2767
      start: 2728
    functionDepth: 1
    functionLinenumber: 2728
    functionLinenumberEnd: 2767
    functionName: HandleGetWirelessRegulatoryConfigComplete
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - N2J_WirelessRegulatoryConfig
    - JNIEnv*::GetMethodID
    - JNIEnv*::PopLocalFrame
    - ReportError
    - WeaveLogProgress
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::CallVoidMethod
    - JNIEnv*::PushLocalFrame
    - SuccessOrExit
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    - GetEnv
    linkageType: ''
    returnType: void
    signature: HandleGetWirelessRegulatoryConfigComplete(WeaveDeviceManager *deviceMgr,
      void *reqState, const WirelessRegConfig * regConfig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2778,1
    - Dst: GetEnv
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2780,1
    - Dst: JNIEnv*::PushLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2782,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2784,1
    - Dst: JNIEnv*::GetStaticMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2786,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2787,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2789,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2791,1
    - Dst: reinterpret_cast<intptr_t>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2792,1
    - Dst: JNIEnv*::CallStaticBooleanMethod
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2793,1
    - Dst: static_cast<jint>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2793,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2794,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2794,1
    - Dst: ReportError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2799,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2802,1
    - Dst: JNIEnv*::PopLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2804,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - connObj
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 2806
      start: 2769
    functionDepth: 1
    functionLinenumber: 2769
    functionLinenumberEnd: 2806
    functionName: HandleCloseConnection
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::PopLocalFrame
    - ReportError
    - WeaveLogProgress
    - JNIEnv*::ExceptionClear
    - static_cast<jint>
    - VerifyOrExit
    - JNIEnv*::CallStaticBooleanMethod
    - JNIEnv*::GetStaticMethodID
    - JNIEnv*::PushLocalFrame
    - reinterpret_cast<intptr_t>
    - JNIEnv*::ExceptionCheck
    - GetEnv
    linkageType: ''
    returnType: bool
    signature: HandleCloseConnection(BLE_CONNECTION_OBJECT connObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2817,1
    - Dst: GetEnv
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2819,1
    - Dst: JNIEnv*::PushLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2821,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2823,1
    - Dst: JNIEnv*::GetStaticMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2825,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2826,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2828,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2830,1
    - Dst: reinterpret_cast<intptr_t>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2831,1
    - Dst: JNIEnv*::CallStaticIntMethod
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2832,1
    - Dst: static_cast<jint>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2832,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2833,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2833,1
    - Dst: ReportError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2838,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2841,1
    - Dst: JNIEnv*::PopLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2843,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - connObj
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 2845
      start: 2808
    functionDepth: 1
    functionLinenumber: 2808
    functionLinenumberEnd: 2845
    functionName: HandleGetMTU
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::PopLocalFrame
    - ReportError
    - WeaveLogProgress
    - JNIEnv*::ExceptionClear
    - static_cast<jint>
    - VerifyOrExit
    - JNIEnv*::GetStaticMethodID
    - JNIEnv*::PushLocalFrame
    - reinterpret_cast<intptr_t>
    - JNIEnv*::CallStaticIntMethod
    - JNIEnv*::ExceptionCheck
    - GetEnv
    linkageType: ''
    returnType: uint16_t
    signature: HandleGetMTU(BLE_CONNECTION_OBJECT connObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2857,1
    - Dst: GetEnv
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2859,1
    - Dst: JNIEnv*::PushLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2861,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2863,1
    - Dst: N2J_DeviceStatus
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2867,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2868,1
    - Dst: N2J_Error
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2872,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2873,1
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2876,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2877,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2879,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2880,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2882,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2884,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2885,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2886,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2886,1
    - Dst: ReportError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2890,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2891,1
    - Dst: JNIEnv*::PopLocalFrame
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2893,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - obj
    - reqState
    - deviceMgrErr
    - devStatus
    argTypes:
    - jobject
    - void*
    - WEAVE_ERROR
    - DeviceStatus*
    constantsTouched: []
    func_position:
      end: 2894
      start: 2847
    functionDepth: 1
    functionLinenumber: 2847
    functionLinenumberEnd: 2894
    functionName: HandleGenericError
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 2
    functionsReached:
    - JNIEnv*::GetMethodID
    - JNIEnv*::PopLocalFrame
    - ReportError
    - WeaveLogProgress
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - N2J_DeviceStatus
    - N2J_Error
    - JNIEnv*::CallVoidMethod
    - JNIEnv*::PushLocalFrame
    - SuccessOrExit
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    - GetEnv
    linkageType: ''
    returnType: void
    signature: HandleGenericError(jobject obj, void *reqState, WEAVE_ERROR deviceMgrErr,
      DeviceStatus *devStatus)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HandleGenericError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - deviceMgr
    - reqState
    - deviceMgrErr
    - devStatus
    argTypes:
    - WeaveDeviceManager*
    - void*
    - WEAVE_ERROR
    - DeviceStatus*
    constantsTouched: []
    func_position:
      end: 2900
      start: 2896
    functionDepth: 2
    functionLinenumber: 2896
    functionLinenumberEnd: 2900
    functionName: HandleError
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - HandleGenericError
    linkageType: ''
    returnType: void
    signature: HandleError(WeaveDeviceManager *deviceMgr, void *reqState, WEAVE_ERROR
      deviceMgrErr, DeviceStatus *devStatus)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: N2J_Error
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2907,1
    - Dst: JNIEnv*::Throw
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2909,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - env
    - errToThrow
    argTypes:
    - JNIEnv*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 2910
      start: 2902
    functionDepth: 1
    functionLinenumber: 2902
    functionLinenumberEnd: 2910
    functionName: ThrowError
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 59
    functionsReached:
    - N2J_Error
    - JNIEnv*::Throw
    linkageType: ''
    returnType: void
    signature: ThrowError(JNIEnv *env, WEAVE_ERROR errToThrow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2916,1
    - Dst: JNIEnv*::ExceptionDescribe
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2917,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2927,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2929,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - env
    - cbErr
    - functName
    argTypes:
    - JNIEnv*
    - WEAVE_ERROR
    - char*
    constantsTouched: []
    func_position:
      end: 2931
      start: 2912
    functionDepth: 1
    functionLinenumber: 2912
    functionLinenumberEnd: 2931
    functionName: ReportError
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 20
    functionsReached:
    - JNIEnv*::ExceptionDescribe
    - WeaveLogError
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: ReportError(JNIEnv *env, WEAVE_ERROR cbErr, const char *functName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::NewObjectArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2939,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2940,1
    - Dst: getElem
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2944,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2945,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2947,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2948,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2949,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2949,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2951,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 5
    argNames:
    - env
    - arrayLen
    - arrayElemCls
    - ' outArray'
    - getElem
    argTypes:
    - JNIEnv*
    - uint32_t
    - jclass
    - jobjectArray
    - GetElementFunct
    constantsTouched: []
    func_position:
      end: 2958
      start: 2934
    functionDepth: 0
    functionLinenumber: 2934
    functionLinenumberEnd: 2958
    functionName: N2J_GenericArray
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 1
    functionsReached:
    - JNIEnv*::SetObjectArrayElement
    - JNIEnv*::ExceptionClear
    - getElem
    - VerifyOrExit
    - JNIEnv*::DeleteLocalRef
    - SuccessOrExit
    - JNIEnv*::NewObjectArray
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: N2J_GenericArray(JNIEnv *env, uint32_t arrayLen, jclass arrayElemCls,
      jobjectArray& outArray, GetElementFunct getElem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2964,1
    - Dst: malloc
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2966,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2967,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2971,1
    - Dst: JNIEnv*::GetByteArrayRegion
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2972,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2973,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2973,1
    - Dst: free
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2981,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - env
    - inArray
    - ' outArray'
    - ' outArrayLen'
    argTypes:
    - JNIEnv*
    - jbyteArray
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2987
      start: 2960
    functionDepth: 0
    functionLinenumber: 2960
    functionLinenumberEnd: 2987
    functionName: J2N_ByteArray
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 4
    functionsReached:
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::ExceptionCheck
    - free
    - malloc
    - JNIEnv*::GetByteArrayRegion
    - JNIEnv*::GetArrayLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_ByteArray(JNIEnv *env, jbyteArray inArray, uint8_t *& outArray,
      uint32_t& outArrayLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2995,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2997,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:2998,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3002,1
    - Dst: JNIEnv*::GetByteArrayRegion
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3003,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3004,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3004,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - env
    - inArray
    - outArray
    - maxArrayLen
    argTypes:
    - JNIEnv*
    - jbyteArray
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 3009
      start: 2990
    functionDepth: 0
    functionLinenumber: 2990
    functionLinenumberEnd: 3009
    functionName: J2N_ByteArrayInPlace
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 4
    functionsReached:
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::ExceptionCheck
    - JNIEnv*::GetByteArrayRegion
    - JNIEnv*::GetArrayLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_ByteArrayInPlace(JNIEnv *env, jbyteArray inArray, uint8_t * outArray,
      uint32_t maxArrayLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3020,1
    - Dst: JNIEnv*::FindClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3022,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3023,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3025,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3026,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3028,1
    - Dst: JNIEnv*::CallObjectMethod
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3029,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3029,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3030,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3030,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3032,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3033,1
    - Dst: append
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3035,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3040,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3045,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3048,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3049,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - env
    - inString
    - ' outString'
    argTypes:
    - JNIEnv*
    - jstring
    - std::string
    constantsTouched: []
    func_position:
      end: 3051
      start: 3011
    functionDepth: 2
    functionLinenumber: 3011
    functionLinenumberEnd: 3051
    functionName: J2N_StdString
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - JNIEnv*::GetMethodID
    - JNIEnv*::ReleaseByteArrayElements
    - JNIEnv*::GetArrayLength
    - JNIEnv*::ExceptionClear
    - JNIEnv*::GetByteArrayElements
    - VerifyOrExit
    - JNIEnv*::DeleteLocalRef
    - append
    - JNIEnv*::FindClass
    - JNIEnv*::CallObjectMethod
    - JNIEnv*::ExceptionCheck
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_StdString(JNIEnv *env, jstring inString, std::string& outString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::NewByteArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3057,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3058,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3060,1
    - Dst: JNIEnv*::SetByteArrayRegion
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3061,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3062,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - env
    - inArray
    - inArrayLen
    - ' outArray'
    argTypes:
    - JNIEnv*
    - uint8_t*
    - uint32_t
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 3066
      start: 3053
    functionDepth: 0
    functionLinenumber: 3053
    functionLinenumberEnd: 3066
    functionName: N2J_ByteArray
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 5
    functionsReached:
    - JNIEnv*::ExceptionClear
    - JNIEnv*::NewByteArray
    - JNIEnv*::SetByteArrayRegion
    - VerifyOrExit
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: N2J_ByteArray(JNIEnv *env, const uint8_t *inArray, uint32_t inArrayLen,
      jbyteArray& outArray)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: N2J_NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3070,1
    - Dst: strlen
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - env
    - inStr
    - ' outString'
    argTypes:
    - JNIEnv*
    - char*
    - jstring
    constantsTouched: []
    func_position:
      end: 3071
      start: 3068
    functionDepth: 1
    functionLinenumber: 3068
    functionLinenumberEnd: 3071
    functionName: N2J_NewStringUTF
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 1
    functionsReached:
    - strlen
    - N2J_NewStringUTF
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: N2J_NewStringUTF(JNIEnv *env, const char *inStr, jstring& outString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: N2J_ByteArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3081,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3081,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3082,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3084,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3085,1
    - Dst: JNIEnv*::FindClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3087,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3088,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3090,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3091,1
    - Dst: JNIEnv*::NewObject
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3093,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3094,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3099,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3102,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 4
    argNames:
    - env
    - inStr
    - inStrLen
    - ' outString'
    argTypes:
    - JNIEnv*
    - char*
    - size_t
    - jstring
    constantsTouched: []
    func_position:
      end: 3107
      start: 3073
    functionDepth: 1
    functionLinenumber: 3073
    functionLinenumberEnd: 3107
    functionName: N2J_NewStringUTF
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 1
    functionsReached:
    - JNIEnv*::GetMethodID
    - JNIEnv*::NewObject
    - JNIEnv*::ExceptionClear
    - N2J_ByteArray
    - VerifyOrExit
    - JNIEnv*::DeleteLocalRef
    - SuccessOrExit
    - reinterpret_cast<const uint8_t *>
    - JNIEnv*::FindClass
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: N2J_NewStringUTF(JNIEnv *env, const char *inStr, size_t inStrLen, jstring&
      outString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3117,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3118,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3120,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3121,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3123,1
    - Dst: JNIEnv*::GetIntField
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3124,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3125,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3125,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - env
    - enumObj
    - ' outVal'
    argTypes:
    - JNIEnv*
    - jobject
    - int
    constantsTouched: []
    func_position:
      end: 3130
      start: 3111
    functionDepth: 0
    functionLinenumber: 3111
    functionLinenumberEnd: 3130
    functionName: J2N_EnumVal
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetIntField
    - JNIEnv*::GetFieldID
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::DeleteLocalRef
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_EnumVal(JNIEnv *env, jobject enumObj, int& outVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3138,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3139,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3141,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3142,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3144,1
    - Dst: JNIEnv*::GetIntField
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3145,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3146,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3146,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - env
    - obj
    - fieldName
    - ' outVal'
    argTypes:
    - JNIEnv*
    - jobject
    - char*
    - jint
    constantsTouched: []
    func_position:
      end: 3151
      start: 3132
    functionDepth: 0
    functionLinenumber: 3132
    functionLinenumberEnd: 3151
    functionName: J2N_IntFieldVal
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetIntField
    - JNIEnv*::GetFieldID
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::DeleteLocalRef
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_IntFieldVal(JNIEnv *env, jobject obj, const char *fieldName, jint&
      outVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3162,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3163,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3165,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3166,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3168,1
    - Dst: JNIEnv*::GetObjectField
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3169,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3170,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3170,1
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3174,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3175,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3177,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3178,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3180,1
    - Dst: JNIEnv*::GetIntField
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3181,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3182,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3182,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3188,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3189,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 5
    argNames:
    - env
    - obj
    - fieldName
    - fieldType
    - ' outVal'
    argTypes:
    - JNIEnv*
    - jobject
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 3192
      start: 3155
    functionDepth: 0
    functionLinenumber: 3155
    functionLinenumberEnd: 3192
    functionName: J2N_EnumFieldVal
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetIntField
    - JNIEnv*::GetFieldID
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::DeleteLocalRef
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    - JNIEnv*::GetObjectField
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_EnumFieldVal(JNIEnv *env, jobject obj, const char *fieldName, const
      char *fieldType, int& outVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3200,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3201,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3203,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3204,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3206,1
    - Dst: JNIEnv*::GetShortField
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3207,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3208,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3208,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - env
    - obj
    - fieldName
    - ' outVal'
    argTypes:
    - JNIEnv*
    - jobject
    - char*
    - jshort
    constantsTouched: []
    func_position:
      end: 3213
      start: 3194
    functionDepth: 0
    functionLinenumber: 3194
    functionLinenumberEnd: 3213
    functionName: J2N_ShortFieldVal
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetFieldID
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::GetShortField
    - JNIEnv*::DeleteLocalRef
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_ShortFieldVal(JNIEnv *env, jobject obj, const char *fieldName,
      jshort& outVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3221,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3222,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3224,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3225,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3227,1
    - Dst: JNIEnv*::GetIntField
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3228,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3229,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3229,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - env
    - obj
    - fieldName
    - ' outVal'
    argTypes:
    - JNIEnv*
    - jobject
    - char*
    - jint
    constantsTouched: []
    func_position:
      end: 3234
      start: 3215
    functionDepth: 0
    functionLinenumber: 3215
    functionLinenumberEnd: 3234
    functionName: J2N_IntFieldVal
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetIntField
    - JNIEnv*::GetFieldID
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::DeleteLocalRef
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_IntFieldVal(JNIEnv *env, jobject obj, const char *fieldName, jint&
      outVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3242,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3243,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3245,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3246,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3248,1
    - Dst: JNIEnv*::GetLongField
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3249,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3250,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3250,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - env
    - obj
    - fieldName
    - ' outVal'
    argTypes:
    - JNIEnv*
    - jobject
    - char*
    - jlong
    constantsTouched: []
    func_position:
      end: 3255
      start: 3236
    functionDepth: 0
    functionLinenumber: 3236
    functionLinenumberEnd: 3255
    functionName: J2N_LongFieldVal
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetFieldID
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::ExceptionCheck
    - JNIEnv*::DeleteLocalRef
    - JNIEnv*::GetObjectClass
    - JNIEnv*::GetLongField
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_LongFieldVal(JNIEnv *env, jobject obj, const char *fieldName, jlong&
      outVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3265,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3266,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3268,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3269,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3271,1
    - Dst: JNIEnv*::GetObjectField
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3272,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3273,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3273,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3277,1
    - Dst: strdup
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3278,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3279,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3285,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 4
    argNames:
    - env
    - obj
    - fieldName
    - ' outVal'
    argTypes:
    - JNIEnv*
    - jobject
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 3288
      start: 3257
    functionDepth: 0
    functionLinenumber: 3257
    functionLinenumberEnd: 3288
    functionName: J2N_StringFieldVal
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - JNIEnv*::GetFieldID
    - JNIEnv*::ReleaseStringUTFChars
    - JNIEnv*::ExceptionClear
    - strdup
    - VerifyOrExit
    - JNIEnv*::DeleteLocalRef
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    - JNIEnv*::GetObjectField
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_StringFieldVal(JNIEnv *env, jobject obj, const char *fieldName,
      char *& outVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3297,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3298,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3300,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3301,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3303,1
    - Dst: JNIEnv*::GetObjectField
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3304,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3305,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3305,1
    - Dst: J2N_ByteArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3309,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3310,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3319,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 5
    argNames:
    - env
    - obj
    - fieldName
    - ' outArray'
    - ' outArrayLen'
    argTypes:
    - JNIEnv*
    - jobject
    - char*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 3322
      start: 3290
    functionDepth: 1
    functionLinenumber: 3290
    functionLinenumberEnd: 3322
    functionName: J2N_ByteArrayFieldVal
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - J2N_ByteArray
    - JNIEnv*::GetFieldID
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::DeleteLocalRef
    - SuccessOrExit
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    - JNIEnv*::GetObjectField
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_ByteArrayFieldVal(JNIEnv *env, jobject obj, const char *fieldName,
      uint8_t *& outArray, uint32_t& outArrayLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: J2N_LongFieldVal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3331,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3332,1
    - Dst: J2N_EnumFieldVal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3335,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3336,1
    - Dst: J2N_IntFieldVal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3339,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3340,1
    - Dst: J2N_IntFieldVal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3343,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3344,1
    - Dst: J2N_LongFieldVal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3347,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 3
    argNames:
    - env
    - inCriteria
    - ' outCriteria'
    argTypes:
    - JNIEnv*
    - jobject
    - IdentifyDeviceCriteria
    constantsTouched: []
    func_position:
      end: 3353
      start: 3324
    functionDepth: 1
    functionLinenumber: 3324
    functionLinenumberEnd: 3353
    functionName: J2N_IdentifyDeviceCriteria
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 4
    functionsReached:
    - J2N_EnumFieldVal
    - J2N_LongFieldVal
    - J2N_IntFieldVal
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_IdentifyDeviceCriteria(JNIEnv *env, jobject inCriteria, IdentifyDeviceCriteria&
      outCriteria)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: J2N_EnumFieldVal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3364,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3365,1
    - Dst: J2N_LongFieldVal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3368,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3369,1
    - Dst: J2N_StringFieldVal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3372,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3373,1
    - Dst: J2N_EnumFieldVal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3375,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3376,1
    - Dst: J2N_EnumFieldVal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3379,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3380,1
    - Dst: J2N_EnumFieldVal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3383,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3384,1
    - Dst: J2N_ByteArrayFieldVal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3387,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3388,1
    - Dst: J2N_StringFieldVal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3390,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3391,1
    - Dst: J2N_ByteArrayFieldVal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3393,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3394,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3396,1
    - Dst: J2N_ByteArrayFieldVal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3398,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3399,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3401,1
    - Dst: J2N_ByteArrayFieldVal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3403,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3404,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3406,1
    - Dst: J2N_IntFieldVal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3408,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3409,1
    - Dst: J2N_IntFieldVal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3412,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3413,1
    - Dst: J2N_ShortFieldVal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3416,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3417,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 46
    argCount: 3
    argNames:
    - env
    - inNetworkInfo
    - ' outNetworkInfo'
    argTypes:
    - JNIEnv*
    - jobject
    - NetworkInfo
    constantsTouched: []
    func_position:
      end: 3422
      start: 3355
    functionDepth: 2
    functionLinenumber: 3355
    functionLinenumberEnd: 3422
    functionName: J2N_NetworkInfo
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 2
    functionsReached:
    - J2N_ShortFieldVal
    - J2N_EnumFieldVal
    - J2N_StringFieldVal
    - J2N_ByteArrayFieldVal
    - ExitNow
    - J2N_IntFieldVal
    - J2N_LongFieldVal
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_NetworkInfo(JNIEnv *env, jobject inNetworkInfo, NetworkInfo& outNetworkInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: N2J_NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3437,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3438,1
    - Dst: N2J_ByteArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3443,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3444,1
    - Dst: N2J_NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3449,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3450,1
    - Dst: N2J_ByteArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3455,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3456,1
    - Dst: N2J_ByteArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3461,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3462,1
    - Dst: N2J_ByteArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3467,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3468,1
    - Dst: JNIEnv*::GetStaticMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3471,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3472,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3474,1
    - Dst: JNIEnv*::CallStaticObjectMethod
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3475,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3490,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3490,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3493,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3494,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3495,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3496,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3497,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 3
    argNames:
    - env
    - ' inNetworkInfo'
    - ' outNetworkInfo'
    argTypes:
    - JNIEnv*
    - NetworkInfo
    - jobject
    constantsTouched: []
    func_position:
      end: 3499
      start: 3424
    functionDepth: 2
    functionLinenumber: 3424
    functionLinenumberEnd: 3499
    functionName: N2J_NetworkInfo
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - N2J_NewStringUTF
    - JNIEnv*::ExceptionClear
    - N2J_ByteArray
    - VerifyOrExit
    - JNIEnv*::GetStaticMethodID
    - JNIEnv*::DeleteLocalRef
    - SuccessOrExit
    - JNIEnv*::ExceptionCheck
    - JNIEnv*::CallStaticObjectMethod
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: N2J_NetworkInfo(JNIEnv *env, const NetworkInfo& inNetworkInfo, jobject&
      outNetworkInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: N2J_GenericArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3503,1
    - Dst: N2J_NetworkInfo
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - env
    - inArray
    - inArrayLen
    - ' outArray'
    argTypes:
    - JNIEnv*
    - NetworkInfo*
    - uint32_t
    - jobjectArray
    constantsTouched: []
    func_position:
      end: 3508
      start: 3501
    functionDepth: 3
    functionLinenumber: 3501
    functionLinenumberEnd: 3508
    functionName: N2J_NetworkInfoArray
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 2
    functionsReached:
    - N2J_GenericArray
    - N2J_NetworkInfo
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: N2J_NetworkInfoArray(JNIEnv *env, const NetworkInfo *inArray, uint32_t
      inArrayLen, jobjectArray& outArray)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::IsZeroBytes
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3521,1
    - Dst: N2J_ByteArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3523,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3524,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::IsZeroBytes
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3527,1
    - Dst: N2J_ByteArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3529,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3530,1
    - Dst: N2J_NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3535,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3536,1
    - Dst: N2J_NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3541,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3542,1
    - Dst: N2J_NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3547,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3548,1
    - Dst: N2J_NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3553,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3554,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3557,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3558,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3560,1
    - Dst: JNIEnv*::NewObject
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3561,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3570,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3570,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3573,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3574,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3575,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3576,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3577,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3578,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 3
    argNames:
    - env
    - ' inDeviceDesc'
    - ' outDeviceDesc'
    argTypes:
    - JNIEnv*
    - WeaveDeviceDescriptor
    - jobject
    constantsTouched: []
    func_position:
      end: 3580
      start: 3510
    functionDepth: 2
    functionLinenumber: 3510
    functionLinenumberEnd: 3580
    functionName: N2J_DeviceDescriptor
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::IsZeroBytes
    - JNIEnv*::GetMethodID
    - N2J_NewStringUTF
    - JNIEnv*::NewObject
    - JNIEnv*::ExceptionClear
    - N2J_ByteArray
    - VerifyOrExit
    - JNIEnv*::DeleteLocalRef
    - SuccessOrExit
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: N2J_DeviceDescriptor(JNIEnv *env, const WeaveDeviceDescriptor& inDeviceDesc,
      jobject& outDeviceDesc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3588,1
    - Dst: J2N_StringFieldVal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3590,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3591,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3596,1
    - Dst: strlen
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3596,1
    - Dst: memcpy
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3598,1
    - Dst: J2N_EnumFieldVal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3601,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3602,1
    - Dst: free
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - env
    - inRegConfig
    - ' outRegConfig'
    argTypes:
    - JNIEnv*
    - jobject
    - WirelessRegConfig
    constantsTouched: []
    func_position:
      end: 3613
      start: 3582
    functionDepth: 1
    functionLinenumber: 3582
    functionLinenumberEnd: 3613
    functionName: J2N_WirelessRegulatoryConfig
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 1
    functionsReached:
    - J2N_StringFieldVal
    - J2N_EnumFieldVal
    - VerifyOrExit
    - strlen
    - free
    - memcpy
    - Init
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_WirelessRegulatoryConfig(JNIEnv *env, jobject inRegConfig, WirelessRegConfig
      & outRegConfig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsRegDomainPresent
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3623,1
    - Dst: N2J_NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3625,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3626,1
    - Dst: JNIEnv*::FindClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3629,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3630,1
    - Dst: N2J_GenericArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3632,1
    - Dst: N2J_NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3636,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3640,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3642,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3643,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3645,1
    - Dst: JNIEnv*::NewObject
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3646,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3648,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3648,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3651,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 3
    argNames:
    - env
    - ' inRegConfig'
    - ' outRegConfig'
    argTypes:
    - JNIEnv*
    - WirelessRegConfig
    - jobject
    constantsTouched: []
    func_position:
      end: 3654
      start: 3615
    functionDepth: 2
    functionLinenumber: 3615
    functionLinenumberEnd: 3654
    functionName: N2J_WirelessRegulatoryConfig
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 1
    functionsReached:
    - N2J_GenericArray
    - N2J_NewStringUTF
    - JNIEnv*::GetMethodID
    - JNIEnv*::NewObject
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::DeleteLocalRef
    - SuccessOrExit
    - IsRegDomainPresent
    - JNIEnv*::FindClass
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: N2J_WirelessRegulatoryConfig(JNIEnv *env, const WirelessRegConfig&
      inRegConfig, jobject& outRegConfig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3663,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3664,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3671,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3673,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3675,1
    - Dst: JNIEnv*::NewObject
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3676,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3677,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3677,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3680,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - env
    - inErr
    - ' outEx'
    argTypes:
    - JNIEnv*
    - WEAVE_ERROR
    - jthrowable
    constantsTouched: []
    func_position:
      end: 3682
      start: 3656
    functionDepth: 1
    functionLinenumber: 3656
    functionLinenumberEnd: 3682
    functionName: N2J_Error
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 2
    functionsReached:
    - JNIEnv*::GetMethodID
    - JNIEnv*::NewObject
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::DeleteLocalRef
    - JNIEnv*::ExceptionCheck
    - nl::ErrorStr
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: N2J_Error(JNIEnv *env, WEAVE_ERROR inErr, jthrowable& outEx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3691,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3692,1
    - Dst: nl::StatusReportStr
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3694,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3695,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3697,1
    - Dst: JNIEnv*::NewObject
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3698,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3699,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3699,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - env
    - ' devStatus'
    - ' outEx'
    argTypes:
    - JNIEnv*
    - DeviceStatus
    - jthrowable
    constantsTouched: []
    func_position:
      end: 3704
      start: 3684
    functionDepth: 1
    functionLinenumber: 3684
    functionLinenumberEnd: 3704
    functionName: N2J_DeviceStatus
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 1
    functionsReached:
    - JNIEnv*::GetMethodID
    - nl::StatusReportStr
    - JNIEnv*::NewObject
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::DeleteLocalRef
    - JNIEnv*::ExceptionCheck
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: N2J_DeviceStatus(JNIEnv *env, DeviceStatus& devStatus, jthrowable&
      outEx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3714,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3715,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3722,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3725,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3726,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3728,1
    - Dst: JNIEnv*::NewObject
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3729,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3730,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3730,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3733,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3734,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 5
    argNames:
    - env
    - inErr
    - ' outEx'
    - path
    - dataSink
    argTypes:
    - JNIEnv*
    - WEAVE_ERROR
    - jobject
    - char*
    - TraitDataSink*
    constantsTouched: []
    func_position:
      end: 3736
      start: 3706
    functionDepth: 1
    functionLinenumber: 3706
    functionLinenumberEnd: 3736
    functionName: N2J_WdmClientFlushUpdateError
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 1
    functionsReached:
    - JNIEnv*::GetMethodID
    - JNIEnv*::NewObject
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::DeleteLocalRef
    - JNIEnv*::ExceptionCheck
    - nl::ErrorStr
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: N2J_WdmClientFlushUpdateError(JNIEnv *env, WEAVE_ERROR inErr, jobject&
      outEx, const char * path, TraitDataSink * dataSink)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3746,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3747,1
    - Dst: nl::StatusReportStr
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3748,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3749,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3750,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3752,1
    - Dst: JNIEnv*::NewObject
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3753,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3755,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3755,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3758,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - env
    - ' devStatus'
    - ' outEx'
    - path
    - dataSink
    argTypes:
    - JNIEnv*
    - DeviceStatus
    - jobject
    - char*
    - TraitDataSink*
    constantsTouched: []
    func_position:
      end: 3761
      start: 3738
    functionDepth: 1
    functionLinenumber: 3738
    functionLinenumberEnd: 3761
    functionName: N2J_WdmClientFlushUpdateDeviceStatus
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 1
    functionsReached:
    - JNIEnv*::GetMethodID
    - nl::StatusReportStr
    - JNIEnv*::NewObject
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::DeleteLocalRef
    - JNIEnv*::ExceptionCheck
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: N2J_WdmClientFlushUpdateDeviceStatus(JNIEnv *env, DeviceStatus& devStatus,
      jobject& outEx, const char * path, TraitDataSink * dataSink)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: J2N_IntFieldVal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3769,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3770,1
    - Dst: J2N_LongFieldVal
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3772,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3773,1
    - Dst: ResourceIdentifier
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - env
    - inResourceIdentifier
    - ' outResourceIdentifier'
    argTypes:
    - JNIEnv*
    - jobject
    - ResourceIdentifier
    constantsTouched: []
    func_position:
      end: 3778
      start: 3763
    functionDepth: 1
    functionLinenumber: 3763
    functionLinenumberEnd: 3778
    functionName: J2N_ResourceIdentifier
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ResourceIdentifier
    - J2N_LongFieldVal
    - J2N_IntFieldVal
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_ResourceIdentifier(JNIEnv *env, jobject inResourceIdentifier, ResourceIdentifier
      & outResourceIdentifier)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::FindClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3785,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3786,1
    - Dst: JNIEnv*::NewGlobalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3788,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3789,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - env
    - clsType
    - ' outCls'
    argTypes:
    - JNIEnv*
    - char*
    - jclass
    constantsTouched: []
    func_position:
      end: 3794
      start: 3780
    functionDepth: 0
    functionLinenumber: 3780
    functionLinenumberEnd: 3794
    functionName: GetClassRef
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 1
    functionsReached:
    - JNIEnv*::FindClass
    - JNIEnv*::DeleteLocalRef
    - VerifyOrExit
    - JNIEnv*::NewGlobalRef
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetClassRef(JNIEnv *env, const char *clsType, jclass& outCls)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::DefaultEventHandler
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - aAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - SubscriptionEngine::EventID
    - SubscriptionEngine::InEventParam
    - SubscriptionEngine::OutEventParam
    constantsTouched: []
    func_position:
      end: 3807
      start: 3797
    functionDepth: 1
    functionLinenumber: 3797
    functionLinenumberEnd: 3807
    functionName: EngineEventCallback
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionEngine::DefaultEventHandler
    linkageType: ''
    returnType: void
    signature: "EngineEventCallback(void * const aAppState,\n                                SubscriptionEngine::EventID
      aEvent,\n                                const SubscriptionEngine::InEventParam
      & aInParam, SubscriptionEngine::OutEventParam & aOutParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3813,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - env
    - self
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 3818
      start: 3809
    functionDepth: 0
    functionLinenumber: 3809
    functionLinenumberEnd: 3818
    functionName: Java_nl_Weave_DataManagement_WdmClientImpl_init
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionEngine::GetInstance
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DataManagement_WdmClientImpl_init(JNIEnv *env, jobject
      self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3823,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3827,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3831,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3831,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3835,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3835,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3839,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3843,1
    - Dst: nl::Weave::Binding::DefaultEventHandler
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3846,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - apAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - nl::Weave::Binding::EventType
    - nl::Weave::Binding::InEventParam
    - nl::Weave::Binding::OutEventParam
    constantsTouched: []
    func_position:
      end: 3848
      start: 3820
    functionDepth: 1
    functionLinenumber: 3820
    functionLinenumberEnd: 3848
    functionName: BindingEventCallback
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDetail
    - nl::ErrorStr
    - nl::Weave::Binding::DefaultEventHandler
    linkageType: ''
    returnType: void
    signature: "BindingEventCallback (void * const apAppState, const nl::Weave::Binding::EventType
      aEvent,\n                                  const nl::Weave::Binding::InEventParam
      & aInParam, nl::Weave::Binding::OutEventParam & aOutParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3858,1
    - Dst: NewBinding
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3860,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3861,1
    - Dst: WeaveDeviceManager*::ConfigureBinding
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3863,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3864,1
    - Dst: WdmClient::WdmClient
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3866,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3867,1
    - Dst: WdmClient*::Init
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3869,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3870,1
    - Dst: JNIEnv*::NewGlobalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3872,1
    - Dst: JNIEnv*::DeleteGlobalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3883,1
    - Dst: WdmClient*::Close
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3885,1
    - Dst: Binding*::Release
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3892,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3897,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - env
    - self
    - deviceMgrPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 3901
      start: 3850
    functionDepth: 2
    functionLinenumber: 3850
    functionLinenumberEnd: 3901
    functionName: Java_nl_Weave_DataManagement_WdmClientImpl_newWdmClient
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::DeleteGlobalRef
    - ThrowError
    - NewBinding
    - WeaveLogProgress
    - WdmClient::WdmClient
    - VerifyOrExit
    - WdmClient*::Init
    - WdmClient*::Close
    - WeaveDeviceManager*::ConfigureBinding
    - SuccessOrExit
    - JNIEnv*::NewGlobalRef
    - Binding*::Release
    linkageType: ''
    returnType: jlong
    signature: Java_nl_Weave_DataManagement_WdmClientImpl_newWdmClient(JNIEnv *env,
      jobject self, jlong deviceMgrPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3907,1
    - Dst: JNIEnv*::DeleteGlobalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3913,1
    - Dst: WdmClient*::Close
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3915,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - env
    - self
    - wdmClientPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 3918
      start: 3903
    functionDepth: 0
    functionLinenumber: 3903
    functionLinenumberEnd: 3918
    functionName: Java_nl_Weave_DataManagement_WdmClientImpl_deleteWdmClient
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - WdmClient*::Close
    - JNIEnv*::DeleteGlobalRef
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DataManagement_WdmClientImpl_deleteWdmClient(JNIEnv *env,
      jobject self, jlong wdmClientPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3923,1
    - Dst: WdmClient*::SetNodeId
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - env
    - self
    - wdmClientPtr
    - nodeId
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jlong
    constantsTouched: []
    func_position:
      end: 3925
      start: 3920
    functionDepth: 0
    functionLinenumber: 3920
    functionLinenumberEnd: 3925
    functionName: Java_nl_Weave_DataManagement_WdmClientImpl_setNodeId
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - WdmClient*::SetNodeId
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DataManagement_WdmClientImpl_setNodeId(JNIEnv *env, jobject
      self, jlong wdmClientPtr, jlong nodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3936,1
    - Dst: J2N_ResourceIdentifier
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3938,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3939,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3941,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3942,1
    - Dst: WdmClient*::NewDataSink
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3944,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3954,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3959,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 7
    argNames:
    - env
    - self
    - wdmClientPtr
    - resourceIdentifierObj
    - profileId
    - instanceId
    - path
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jobject
    - jlong
    - jlong
    - jstring
    constantsTouched: []
    func_position:
      end: 3963
      start: 3927
    functionDepth: 2
    functionLinenumber: 3927
    functionLinenumberEnd: 3963
    functionName: Java_nl_Weave_DataManagement_WdmClientImpl_newDataSink
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - ThrowError
    - WeaveLogProgress
    - VerifyOrExit
    - WdmClient*::NewDataSink
    - SuccessOrExit
    - JNIEnv*::ReleaseStringUTFChars
    - J2N_ResourceIdentifier
    linkageType: ''
    returnType: jlong
    signature: Java_nl_Weave_DataManagement_WdmClientImpl_newDataSink(JNIEnv *env,
      jobject self, jlong wdmClientPtr, jobject resourceIdentifierObj, jlong profileId,
      jlong instanceId, jstring path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3970,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3972,1
    - Dst: WdmClient*::FlushUpdate
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3973,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3974,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3978,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - env
    - self
    - wdmClientPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 3980
      start: 3965
    functionDepth: 2
    functionLinenumber: 3965
    functionLinenumberEnd: 3980
    functionName: Java_nl_Weave_DataManagement_WdmClientImpl_beginFlushUpdate
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WdmClient*::FlushUpdate
    - WeaveLogProgress
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DataManagement_WdmClientImpl_beginFlushUpdate(JNIEnv
      *env, jobject self, jlong wdmClientPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3987,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3989,1
    - Dst: WdmClient*::RefreshData
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3990,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3991,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:3995,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - env
    - self
    - wdmClientPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 3997
      start: 3982
    functionDepth: 2
    functionLinenumber: 3982
    functionLinenumberEnd: 3997
    functionName: Java_nl_Weave_DataManagement_WdmClientImpl_beginRefreshData
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WdmClient*::RefreshData
    - WeaveLogProgress
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DataManagement_WdmClientImpl_beginRefreshData(JNIEnv
      *env, jobject self, jlong wdmClientPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4004,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4006,1
    - Dst: WdmClient*::SetEventFetchingTimeout
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4007,1
    - Dst: WdmClient*::RefreshData
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4008,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4009,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4013,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - env
    - self
    - wdmClientPtr
    - timeoutSec
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jint
    constantsTouched: []
    func_position:
      end: 4015
      start: 3999
    functionDepth: 2
    functionLinenumber: 3999
    functionLinenumberEnd: 4015
    functionName: Java_nl_Weave_DataManagement_WdmClientImpl_beginFetchEvents
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WdmClient*::SetEventFetchingTimeout
    - WdmClient*::RefreshData
    - WeaveLogProgress
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DataManagement_WdmClientImpl_beginFetchEvents(JNIEnv
      *env, jobject self, jlong wdmClientPtr, jint timeoutSec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4024,1
    - Dst: WdmClient*::GetEvents
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4026,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4027,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4033,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4037,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4037,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - env
    - self
    - wdmClientPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 4038
      start: 4018
    functionDepth: 2
    functionLinenumber: 4018
    functionLinenumberEnd: 4038
    functionName: Java_nl_Weave_DataManagement_WdmClientImpl_getEvents
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - WdmClient*::GetEvents
    - WeaveLogProgress
    - SuccessOrExit
    - reinterpret_cast<const char *>
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: Java_nl_Weave_DataManagement_WdmClientImpl_getEvents(JNIEnv *env, jobject
      self, jlong wdmClientPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4045,1
    - Dst: JNIEnv*::NewGlobalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - env
    - self
    - genericTraitUpdatableDataSinkPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 4049
      start: 4040
    functionDepth: 0
    functionLinenumber: 4040
    functionLinenumberEnd: 4049
    functionName: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_init
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - JNIEnv*::NewGlobalRef
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_init(JNIEnv
      *env, jobject self, jlong genericTraitUpdatableDataSinkPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4055,1
    - Dst: JNIEnv*::DeleteGlobalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4061,1
    - Dst: GenericTraitUpdatableDataSink*::Clear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4063,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - env
    - self
    - genericTraitUpdatableDataSinkPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 4065
      start: 4051
    functionDepth: 0
    functionLinenumber: 4051
    functionLinenumberEnd: 4065
    functionName: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_shutdown
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - JNIEnv*::DeleteGlobalRef
    - GenericTraitUpdatableDataSink*::Clear
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_shutdown(JNIEnv
      *env, jobject self, jlong genericTraitUpdatableDataSinkPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4071,1
    - Dst: GenericTraitUpdatableDataSink*::Clear
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4075,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - env
    - self
    - genericTraitUpdatableDataSinkPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 4077
      start: 4067
    functionDepth: 0
    functionLinenumber: 4067
    functionLinenumberEnd: 4077
    functionName: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_clear
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - GenericTraitUpdatableDataSink*::Clear
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_clear(JNIEnv
      *env, jobject self, jlong genericTraitUpdatableDataSinkPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4084,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4086,1
    - Dst: GenericTraitUpdatableDataSink*::RefreshData
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4087,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4088,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4092,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - env
    - self
    - genericTraitUpdatableDataSinkPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 4094
      start: 4079
    functionDepth: 2
    functionLinenumber: 4079
    functionLinenumberEnd: 4094
    functionName: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_beginRefreshData
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - ThrowError
    - pthread_mutex_unlock
    - WeaveLogProgress
    - pthread_mutex_lock
    - GenericTraitUpdatableDataSink*::RefreshData
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_beginRefreshData(JNIEnv
      *env, jobject self, jlong genericTraitUpdatableDataSinkPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4103,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4105,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4106,1
    - Dst: GenericTraitUpdatableDataSink*::SetData
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4111,1
    - Dst: GenericTraitUpdatableDataSink*::SetData
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4116,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4122,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 7
    argNames:
    - env
    - self
    - genericTraitUpdatableDataSinkPtr
    - path
    - value
    - isConditional
    - isSigned
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jstring
    - jlong
    - jboolean
    - jboolean
    constantsTouched: []
    func_position:
      end: 4129
      start: 4096
    functionDepth: 2
    functionLinenumber: 4096
    functionLinenumberEnd: 4129
    functionName: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_setInt
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - ThrowError
    - WeaveLogProgress
    - VerifyOrExit
    - GenericTraitUpdatableDataSink*::SetData
    - JNIEnv*::ReleaseStringUTFChars
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_setInt(JNIEnv
      *env, jobject self, jlong genericTraitUpdatableDataSinkPtr, jstring path, jlong
      value, jboolean isConditional, jboolean isSigned)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4137,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4139,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4140,1
    - Dst: GenericTraitUpdatableDataSink*::SetData
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4142,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4147,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - env
    - self
    - genericTraitUpdatableDataSinkPtr
    - path
    - value
    - isConditional
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jstring
    - jdouble
    - jboolean
    constantsTouched: []
    func_position:
      end: 4154
      start: 4131
    functionDepth: 2
    functionLinenumber: 4131
    functionLinenumberEnd: 4154
    functionName: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_setDouble
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - ThrowError
    - WeaveLogProgress
    - VerifyOrExit
    - GenericTraitUpdatableDataSink*::SetData
    - JNIEnv*::ReleaseStringUTFChars
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_setDouble(JNIEnv
      *env, jobject self, jlong genericTraitUpdatableDataSinkPtr, jstring path, jdouble
      value, jboolean isConditional)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4162,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4164,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4165,1
    - Dst: GenericTraitUpdatableDataSink*::SetBoolean
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4167,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4172,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - env
    - self
    - genericTraitUpdatableDataSinkPtr
    - path
    - value
    - isConditional
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jstring
    - jboolean
    - jboolean
    constantsTouched: []
    func_position:
      end: 4179
      start: 4156
    functionDepth: 2
    functionLinenumber: 4156
    functionLinenumberEnd: 4179
    functionName: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_setBoolean
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - ThrowError
    - WeaveLogProgress
    - VerifyOrExit
    - GenericTraitUpdatableDataSink*::SetBoolean
    - JNIEnv*::ReleaseStringUTFChars
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_setBoolean(JNIEnv
      *env, jobject self, jlong genericTraitUpdatableDataSinkPtr, jstring path, jboolean
      value, jboolean isConditional)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4188,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4190,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4191,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4193,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4194,1
    - Dst: GenericTraitUpdatableDataSink*::SetString
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4196,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4201,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4206,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - env
    - self
    - genericTraitUpdatableDataSinkPtr
    - path
    - value
    - isConditional
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jstring
    - jstring
    - jboolean
    constantsTouched: []
    func_position:
      end: 4213
      start: 4181
    functionDepth: 2
    functionLinenumber: 4181
    functionLinenumberEnd: 4213
    functionName: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_setString
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - GenericTraitUpdatableDataSink*::SetString
    - ThrowError
    - WeaveLogProgress
    - VerifyOrExit
    - JNIEnv*::ReleaseStringUTFChars
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_setString(JNIEnv
      *env, jobject self, jlong genericTraitUpdatableDataSinkPtr, jstring path, jstring
      value, jboolean isConditional)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4221,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4223,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4224,1
    - Dst: GenericTraitUpdatableDataSink*::SetNull
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4226,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4231,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - env
    - self
    - genericTraitUpdatableDataSinkPtr
    - path
    - isConditional
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jstring
    - jboolean
    constantsTouched: []
    func_position:
      end: 4238
      start: 4215
    functionDepth: 2
    functionLinenumber: 4215
    functionLinenumberEnd: 4238
    functionName: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_setNull
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - ThrowError
    - WeaveLogProgress
    - GenericTraitUpdatableDataSink*::SetNull
    - VerifyOrExit
    - JNIEnv*::ReleaseStringUTFChars
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_setNull(JNIEnv
      *env, jobject self, jlong genericTraitUpdatableDataSinkPtr, jstring path, jboolean
      isConditional)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4248,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4250,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4251,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4253,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4254,1
    - Dst: GenericTraitUpdatableDataSink*::SetBytes
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4256,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4261,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4266,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - env
    - self
    - genericTraitUpdatableDataSinkPtr
    - path
    - value
    - isConditional
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jstring
    - jbyteArray
    - jboolean
    constantsTouched: []
    func_position:
      end: 4273
      start: 4240
    functionDepth: 2
    functionLinenumber: 4240
    functionLinenumberEnd: 4273
    functionName: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_setBytes
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - ThrowError
    - GenericTraitUpdatableDataSink*::SetBytes
    - JNIEnv*::ReleaseByteArrayElements
    - WeaveLogProgress
    - JNIEnv*::GetByteArrayElements
    - VerifyOrExit
    - JNIEnv*::ReleaseStringUTFChars
    - JNIEnv*::GetArrayLength
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_setBytes(JNIEnv
      *env, jobject self, jlong genericTraitUpdatableDataSinkPtr, jstring path, jbyteArray
      value, jboolean isConditional)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4284,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4285,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4286,1
    - Dst: JNIEnv*::GetObjectArrayElement
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4291,1
    - Dst: J2N_StdString
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4292,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4293,1
    - Dst: std::vector::push_back
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4294,1
    - Dst: GenericTraitUpdatableDataSink*::SetStringArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4297,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4300,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4304,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4309,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 6
    argNames:
    - env
    - self
    - genericTraitUpdatableDataSinkPtr
    - path
    - stringArray
    - isConditional
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jstring
    - jobjectArray
    - jboolean
    constantsTouched: []
    func_position:
      end: 4311
      start: 4275
    functionDepth: 3
    functionLinenumber: 4275
    functionLinenumberEnd: 4311
    functionName: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_setStringArray
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - JNIEnv*::GetObjectArrayElement
    - ThrowError
    - WeaveLogProgress
    - VerifyOrExit
    - GenericTraitUpdatableDataSink*::SetStringArray
    - JNIEnv*::DeleteLocalRef
    - SuccessOrExit
    - JNIEnv*::ReleaseStringUTFChars
    - std::vector::push_back
    - J2N_StdString
    linkageType: ''
    returnType: void
    signature: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_setStringArray(JNIEnv
      *env, jobject self, jlong genericTraitUpdatableDataSinkPtr, jstring path, jobjectArray
      stringArray, jboolean isConditional)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4320,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4322,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4323,1
    - Dst: GenericTraitUpdatableDataSink*::GetData
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4325,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4326,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4331,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4336,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - env
    - self
    - genericTraitUpdatableDataSinkPtr
    - path
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jstring
    constantsTouched: []
    func_position:
      end: 4341
      start: 4313
    functionDepth: 2
    functionLinenumber: 4313
    functionLinenumberEnd: 4341
    functionName: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_getLong
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - ThrowError
    - WeaveLogProgress
    - VerifyOrExit
    - GenericTraitUpdatableDataSink*::GetData
    - SuccessOrExit
    - JNIEnv*::ReleaseStringUTFChars
    linkageType: ''
    returnType: jlong
    signature: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_getLong(JNIEnv
      *env, jobject self, jlong genericTraitUpdatableDataSinkPtr, jstring path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4350,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4352,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4353,1
    - Dst: GenericTraitUpdatableDataSink*::GetData
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4355,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4356,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4361,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4366,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - env
    - self
    - genericTraitUpdatableDataSinkPtr
    - path
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jstring
    constantsTouched: []
    func_position:
      end: 4370
      start: 4343
    functionDepth: 2
    functionLinenumber: 4343
    functionLinenumberEnd: 4370
    functionName: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_getDouble
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - ThrowError
    - WeaveLogProgress
    - VerifyOrExit
    - GenericTraitUpdatableDataSink*::GetData
    - SuccessOrExit
    - JNIEnv*::ReleaseStringUTFChars
    linkageType: ''
    returnType: jdouble
    signature: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_getDouble(JNIEnv
      *env, jobject self, jlong genericTraitUpdatableDataSinkPtr, jstring path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4380,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4382,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4383,1
    - Dst: GenericTraitUpdatableDataSink*::GetBoolean
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4385,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4386,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4396,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4401,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - env
    - self
    - genericTraitUpdatableDataSinkPtr
    - path
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jstring
    constantsTouched: []
    func_position:
      end: 4405
      start: 4372
    functionDepth: 2
    functionLinenumber: 4372
    functionLinenumberEnd: 4405
    functionName: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_getBoolean
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - ThrowError
    - WeaveLogProgress
    - VerifyOrExit
    - GenericTraitUpdatableDataSink*::GetBoolean
    - SuccessOrExit
    - JNIEnv*::ReleaseStringUTFChars
    linkageType: ''
    returnType: jboolean
    signature: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_getBoolean(JNIEnv
      *env, jobject self, jlong genericTraitUpdatableDataSinkPtr, jstring path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4416,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4418,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4419,1
    - Dst: GenericTraitUpdatableDataSink*::GetString
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4421,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4422,1
    - Dst: std::string
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4424,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4429,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4434,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4437,1
    - Dst: std::string::c_str
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - env
    - self
    - genericTraitUpdatableDataSinkPtr
    - path
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jstring
    constantsTouched: []
    func_position:
      end: 4438
      start: 4407
    functionDepth: 2
    functionLinenumber: 4407
    functionLinenumberEnd: 4438
    functionName: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_getString
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - ThrowError
    - std::string
    - WeaveLogProgress
    - VerifyOrExit
    - GenericTraitUpdatableDataSink*::GetString
    - std::string::c_str
    - SuccessOrExit
    - JNIEnv*::ReleaseStringUTFChars
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_getString(JNIEnv
      *env, jobject self, jlong genericTraitUpdatableDataSinkPtr, jstring path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4449,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4451,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4452,1
    - Dst: GenericTraitUpdatableDataSink*::GetBytes
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4454,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4455,1
    - Dst: N2J_ByteArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4457,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4458,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4463,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4468,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - env
    - self
    - genericTraitUpdatableDataSinkPtr
    - path
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jstring
    constantsTouched: []
    func_position:
      end: 4472
      start: 4440
    functionDepth: 2
    functionLinenumber: 4440
    functionLinenumberEnd: 4472
    functionName: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_getBytes
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - ThrowError
    - WeaveLogProgress
    - GenericTraitUpdatableDataSink*::GetBytes
    - N2J_ByteArray
    - VerifyOrExit
    - SuccessOrExit
    - JNIEnv*::ReleaseStringUTFChars
    linkageType: ''
    returnType: jbyteArray
    signature: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_getBytes(JNIEnv
      *env, jobject self, jlong genericTraitUpdatableDataSinkPtr, jstring path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4484,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4486,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4487,1
    - Dst: GenericTraitUpdatableDataSink*::GetStringArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4489,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4490,1
    - Dst: JNIEnv*::FindClass
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4492,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4493,1
    - Dst: JNIEnv*::NewObjectArray
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4495,1
    - Dst: std::vector::size
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4495,1
    - Dst: std::vector::size
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4497,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4499,1
    - Dst: c_str
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4499,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4500,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4501,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4508,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4513,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - env
    - self
    - genericTraitUpdatableDataSinkPtr
    - path
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jstring
    constantsTouched: []
    func_position:
      end: 4517
      start: 4474
    functionDepth: 2
    functionLinenumber: 4474
    functionLinenumberEnd: 4517
    functionName: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_getStringArray
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - GenericTraitUpdatableDataSink*::GetStringArray
    - JNIEnv*::GetStringUTFChars
    - ThrowError
    - JNIEnv*::SetObjectArrayElement
    - c_str
    - WeaveLogProgress
    - JNIEnv*::ReleaseStringUTFChars
    - VerifyOrExit
    - JNIEnv*::DeleteLocalRef
    - SuccessOrExit
    - std::vector::size
    - JNIEnv*::NewObjectArray
    - JNIEnv*::FindClass
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jobjectArray
    signature: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_getStringArray(JNIEnv
      *env, jobject self, jlong genericTraitUpdatableDataSinkPtr, jstring path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4526,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4528,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4529,1
    - Dst: GenericTraitUpdatableDataSink*::IsNull
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4531,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4536,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4541,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - env
    - self
    - genericTraitUpdatableDataSinkPtr
    - path
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jstring
    constantsTouched: []
    func_position:
      end: 4545
      start: 4519
    functionDepth: 2
    functionLinenumber: 4519
    functionLinenumberEnd: 4545
    functionName: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_isNull
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - GenericTraitUpdatableDataSink*::IsNull
    - JNIEnv*::GetStringUTFChars
    - ThrowError
    - WeaveLogProgress
    - VerifyOrExit
    - JNIEnv*::ReleaseStringUTFChars
    linkageType: ''
    returnType: jboolean
    signature: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_isNull(JNIEnv
      *env, jobject self, jlong genericTraitUpdatableDataSinkPtr, jstring path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4552,1
    - Dst: GenericTraitUpdatableDataSink*::GetVersion
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - env
    - self
    - genericTraitUpdatableDataSinkPtr
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    constantsTouched: []
    func_position:
      end: 4557
      start: 4547
    functionDepth: 0
    functionLinenumber: 4547
    functionLinenumberEnd: 4557
    functionName: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_getVersion
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - GenericTraitUpdatableDataSink*::GetVersion
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_getVersion(JNIEnv
      *env, jobject self, jlong genericTraitUpdatableDataSinkPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4565,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4567,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4568,1
    - Dst: GenericTraitUpdatableDataSink*::DeleteData
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4570,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4575,1
    - Dst: ThrowError
      Src: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp:4580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - env
    - self
    - genericTraitUpdatableDataSinkPtr
    - path
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jstring
    constantsTouched: []
    func_position:
      end: 4582
      start: 4559
    functionDepth: 2
    functionLinenumber: 4559
    functionLinenumberEnd: 4582
    functionName: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_deleteData
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - ThrowError
    - WeaveLogProgress
    - VerifyOrExit
    - JNIEnv*::ReleaseStringUTFChars
    - GenericTraitUpdatableDataSink*::DeleteData
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_deleteData(JNIEnv
      *env, jobject self, jlong genericTraitUpdatableDataSinkPtr, jstring path)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4593
      start: 4589
    functionDepth: 0
    functionLinenumber: 4589
    functionLinenumberEnd: 4593
    functionName: nl::Weave::Profiles::SubscriptionEngine::GetInstance
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SubscriptionEngine
    signature: '* SubscriptionEngine::GetInstance()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4599
      start: 4596
    functionDepth: 0
    functionLinenumber: 4596
    functionLinenumberEnd: 4599
    functionName: nl::Weave::Profiles::Platform::CriticalSectionEnter
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionEnter()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4604
      start: 4601
    functionDepth: 0
    functionLinenumber: 4601
    functionLinenumberEnd: 4604
    functionName: nl::Weave::Profiles::Platform::CriticalSectionExit
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionExit()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aKey
    - aValue
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 4628
      start: 4625
    functionDepth: 0
    functionLinenumber: 4625
    functionLinenumberEnd: 4628
    functionName: nl::Weave::Platform::PersistedStorage::Read
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Read(const char *aKey, uint32_t &aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aKey
    - aValue
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 4633
      start: 4630
    functionDepth: 0
    functionLinenumber: 4630
    functionLinenumberEnd: 4633
    functionName: nl::Weave::Platform::PersistedStorage::Write
    functionSourceFile: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Write(const char *aKey, uint32_t aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ticks
    argTypes:
    - TickType_t
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: TicksToMS
    functionSourceFile: /src/openweave-core/src/lwip/freertos/sys_arch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32_t
    signature: TicksToMS(TickType_t ticks)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: sys_init
    functionSourceFile: /src/openweave-core/src/lwip/freertos/sys_arch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: sys_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xSemaphoreCreateBinary
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:71,1
    - Dst: xSemaphoreGive
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:76,1
    - Dst: SYS_STATS_INC_USED
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:78,1
    - Dst: SYS_STATS_INC
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - sem
    - count
    argTypes:
    - sys_sem_t*
    - u8_t
    constantsTouched: []
    func_position:
      end: 86
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 86
    functionName: sys_sem_new
    functionSourceFile: /src/openweave-core/src/lwip/freertos/sys_arch.c
    functionUses: 0
    functionsReached:
    - SYS_STATS_INC
    - xSemaphoreGive
    - SYS_STATS_INC_USED
    - xSemaphoreCreateBinary
    linkageType: ''
    returnType: err_t
    signature: sys_sem_new(sys_sem_t *sem, u8_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vSemaphoreDelete
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:90,1
    - Dst: SYS_STATS_DEC
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sem
    argTypes:
    - sys_sem_t*
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: sys_sem_free
    functionSourceFile: /src/openweave-core/src/lwip/freertos/sys_arch.c
    functionUses: 0
    functionsReached:
    - SYS_STATS_DEC
    - vSemaphoreDelete
    linkageType: ''
    returnType: void
    signature: sys_sem_free(sys_sem_t *sem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xSemaphoreGive
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sem
    argTypes:
    - sys_sem_t*
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: sys_sem_signal
    functionSourceFile: /src/openweave-core/src/lwip/freertos/sys_arch.c
    functionUses: 0
    functionsReached:
    - xSemaphoreGive
    linkageType: ''
    returnType: void
    signature: sys_sem_signal(sys_sem_t *sem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pdMS_TO_TICKS
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:107,1
    - Dst: xTaskGetTickCount
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:109,1
    - Dst: xSemaphoreTake
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:113,1
    - Dst: TicksToMS
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:118,1
    - Dst: xTaskGetTickCount
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - sem
    - timeout
    argTypes:
    - sys_sem_t*
    - u32_t
    constantsTouched: []
    func_position:
      end: 125
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 125
    functionName: sys_arch_sem_wait
    functionSourceFile: /src/openweave-core/src/lwip/freertos/sys_arch.c
    functionUses: 0
    functionsReached:
    - xSemaphoreTake
    - pdMS_TO_TICKS
    - xTaskGetTickCount
    - TicksToMS
    linkageType: ''
    returnType: u32_t
    signature: sys_arch_sem_wait(sys_sem_t *sem, u32_t timeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xSemaphoreCreateMutex
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:129,1
    - Dst: xSemaphoreGive
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:132,1
    - Dst: SYS_STATS_INC_USED
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:133,1
    - Dst: SYS_STATS_INC
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - sys_mutex_t*
    constantsTouched: []
    func_position:
      end: 141
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 141
    functionName: sys_mutex_new
    functionSourceFile: /src/openweave-core/src/lwip/freertos/sys_arch.c
    functionUses: 0
    functionsReached:
    - SYS_STATS_INC
    - xSemaphoreCreateMutex
    - xSemaphoreGive
    - SYS_STATS_INC_USED
    linkageType: ''
    returnType: err_t
    signature: sys_mutex_new(sys_mutex_t *mutex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vSemaphoreDelete
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:145,1
    - Dst: SYS_STATS_DEC
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - sys_mutex_t*
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: sys_mutex_free
    functionSourceFile: /src/openweave-core/src/lwip/freertos/sys_arch.c
    functionUses: 0
    functionsReached:
    - SYS_STATS_DEC
    - vSemaphoreDelete
    linkageType: ''
    returnType: void
    signature: sys_mutex_free(sys_mutex_t *mutex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xSemaphoreTake
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - sys_mutex_t*
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: sys_mutex_lock
    functionSourceFile: /src/openweave-core/src/lwip/freertos/sys_arch.c
    functionUses: 0
    functionsReached:
    - xSemaphoreTake
    linkageType: ''
    returnType: void
    signature: sys_mutex_lock(sys_mutex_t *mutex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xSemaphoreGive
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - sys_mutex_t*
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: sys_mutex_unlock
    functionSourceFile: /src/openweave-core/src/lwip/freertos/sys_arch.c
    functionUses: 0
    functionsReached:
    - xSemaphoreGive
    linkageType: ''
    returnType: void
    signature: sys_mutex_unlock(sys_mutex_t *mutex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYS_STATS_INC
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:163,1
    - Dst: xQueueCreateStatic
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:168,1
    - Dst: xQueueCreate
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:170,1
    - Dst: SYS_STATS_INC_USED
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:174,1
    - Dst: SYS_STATS_INC
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - mbox
    - size
    argTypes:
    - sys_mbox_t*
    - int
    constantsTouched: []
    func_position:
      end: 182
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 182
    functionName: sys_mbox_new
    functionSourceFile: /src/openweave-core/src/lwip/freertos/sys_arch.c
    functionUses: 0
    functionsReached:
    - SYS_STATS_INC
    - xQueueCreateStatic
    - SYS_STATS_INC_USED
    - xQueueCreate
    linkageType: ''
    returnType: err_t
    signature: sys_mbox_new(sys_mbox_t *mbox, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vQueueDelete
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mbox
    argTypes:
    - sys_mbox_t*
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: sys_mbox_free
    functionSourceFile: /src/openweave-core/src/lwip/freertos/sys_arch.c
    functionUses: 0
    functionsReached:
    - vQueueDelete
    linkageType: ''
    returnType: void
    signature: sys_mbox_free(sys_mbox_t *mbox)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xQueueSendToBack
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:192,1
    - Dst: pdMS_TO_TICKS
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:192,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mbox
    - msg
    argTypes:
    - sys_mbox_t*
    - void*
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: sys_mbox_post
    functionSourceFile: /src/openweave-core/src/lwip/freertos/sys_arch.c
    functionUses: 0
    functionsReached:
    - xQueueSendToBack
    - pdMS_TO_TICKS
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: sys_mbox_post(sys_mbox_t *mbox, void *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pdMS_TO_TICKS
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:208,1
    - Dst: xTaskGetTickCount
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:210,1
    - Dst: xQueueReceive
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:214,1
    - Dst: TicksToMS
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:219,1
    - Dst: xTaskGetTickCount
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:219,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - mbox
    - msg
    - timeout
    argTypes:
    - sys_mbox_t*
    - void**
    - u32_t
    constantsTouched: []
    func_position:
      end: 229
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 229
    functionName: sys_arch_mbox_fetch
    functionSourceFile: /src/openweave-core/src/lwip/freertos/sys_arch.c
    functionUses: 0
    functionsReached:
    - TicksToMS
    - pdMS_TO_TICKS
    - xTaskGetTickCount
    - xQueueReceive
    linkageType: ''
    returnType: u32_t
    signature: sys_arch_mbox_fetch(sys_mbox_t *mbox, void **msg, u32_t timeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xQueueReceive
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mbox
    - msg
    argTypes:
    - sys_mbox_t*
    - void**
    constantsTouched: []
    func_position:
      end: 242
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 242
    functionName: sys_arch_mbox_tryfetch
    functionSourceFile: /src/openweave-core/src/lwip/freertos/sys_arch.c
    functionUses: 1
    functionsReached:
    - xQueueReceive
    linkageType: ''
    returnType: u32_t
    signature: sys_arch_mbox_tryfetch(sys_mbox_t *mbox, void **msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xQueueSendToBack
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:248,1
    - Dst: SYS_STATS_INC
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mbox
    - msg
    argTypes:
    - sys_mbox_t*
    - void*
    constantsTouched: []
    func_position:
      end: 257
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 257
    functionName: sys_mbox_trypost
    functionSourceFile: /src/openweave-core/src/lwip/freertos/sys_arch.c
    functionUses: 1
    functionsReached:
    - SYS_STATS_INC
    - xQueueSendToBack
    linkageType: ''
    returnType: err_t
    signature: sys_mbox_trypost(sys_mbox_t *mbox, void *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:264,1
    - Dst: xTaskCreateStatic
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:268,1
    - Dst: xTaskCreate
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - name
    - thread
    - arg
    - stacksize
    - prio
    argTypes:
    - char*
    - lwip_thread_fn
    - void*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 275
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 275
    functionName: sys_thread_new
    functionSourceFile: /src/openweave-core/src/lwip/freertos/sys_arch.c
    functionUses: 0
    functionsReached:
    - xTaskCreateStatic
    - xTaskCreate
    - strcmp
    linkageType: ''
    returnType: sys_thread_t
    signature: sys_thread_new(const char *name, lwip_thread_fn thread, void *arg,
      int stacksize, int prio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TicksToMS
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:279,1
    - Dst: xTaskGetTickCount
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: sys_now
    functionSourceFile: /src/openweave-core/src/lwip/freertos/sys_arch.c
    functionUses: 3
    functionsReached:
    - TicksToMS
    - xTaskGetTickCount
    linkageType: ''
    returnType: u32_t
    signature: sys_now(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: taskENTER_CRITICAL_FROM_ISR
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: sys_arch_protect
    functionSourceFile: /src/openweave-core/src/lwip/freertos/sys_arch.c
    functionUses: 0
    functionsReached:
    - taskENTER_CRITICAL_FROM_ISR
    linkageType: ''
    returnType: sys_prot_t
    signature: sys_arch_protect(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: taskEXIT_CRITICAL_FROM_ISR
      Src: /src/openweave-core/src/lwip/freertos/sys_arch.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pval
    argTypes:
    - sys_prot_t
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: sys_arch_unprotect
    functionSourceFile: /src/openweave-core/src/lwip/freertos/sys_arch.c
    functionUses: 0
    functionsReached:
    - taskEXIT_CRITICAL_FROM_ISR
    linkageType: ''
    returnType: void
    signature: sys_arch_unprotect(sys_prot_t pval)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:132,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:135,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - id
    argTypes:
    - pthread_t
    constantsTouched: []
    func_position:
      end: 143
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 143
    functionName: introduce_thread
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - malloc
    - pthread_mutex_lock
    linkageType: ''
    returnType: struct sys_thread
    signature: "* \nintroduce_thread(pthread_t id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:152,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:171,1
    - Dst: free
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - thread
    argTypes:
    - struct sys_thread*
    constantsTouched: []
    func_position:
      end: 174
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 174
    functionName: finish_thread
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 0
    functionsReached:
    - free
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: finish_thread(struct sys_thread *thread)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:182,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:183,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:184,1
    - Dst: pthread_create
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:186,1
    - Dst: introduce_thread
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:193,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:197,1
    - Dst: abort
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - name
    - function
    - arg
    - stacksize
    - prio
    argTypes:
    - char*
    - lwip_thread_fn
    - void*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 202
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 202
    functionName: sys_thread_new
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 0
    functionsReached:
    - pthread_create
    - LWIP_DEBUGF
    - abort
    - introduce_thread
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: sys_thread_t
    signature: sys_thread_new(const char *name, lwip_thread_fn function, void *arg,
      int stacksize, int prio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_join
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:208,1
    - Dst: finish_thread
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - t
    argTypes:
    - sys_thread_t
    constantsTouched: []
    func_position:
      end: 216
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 216
    functionName: sys_thread_finish
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 0
    functionsReached:
    - finish_thread
    - pthread_join
    linkageType: ''
    returnType: err_t
    signature: sys_thread_finish(sys_thread_t t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sys_mbox_new
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pool
    - mb
    - size
    argTypes:
    - void*
    - struct sys_mbox**
    - int
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: sys_mbox_new_extra
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 0
    functionsReached:
    - sys_mbox_new
    linkageType: ''
    returnType: err_t
    signature: sys_mbox_new_extra(void *pool, struct sys_mbox **mb, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:226,1
    - Dst: malloc
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:228,1
    - Dst: sys_sem_new_internal
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:233,1
    - Dst: sys_sem_new_internal
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:234,1
    - Dst: sys_sem_new_internal
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:235,1
    - Dst: SYS_STATS_INC_USED
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - mb
    - size
    argTypes:
    - struct sys_mbox**
    - int
    constantsTouched: []
    func_position:
      end: 241
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 241
    functionName: sys_mbox_new
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 1
    functionsReached:
    - LWIP_UNUSED_ARG
    - SYS_STATS_INC_USED
    - malloc
    - sys_sem_new_internal
    linkageType: ''
    returnType: err_t
    signature: sys_mbox_new(struct sys_mbox **mb, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYS_STATS_DEC
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:248,1
    - Dst: sys_arch_sem_wait
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:249,1
    - Dst: sys_sem_free_internal
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:251,1
    - Dst: sys_sem_free_internal
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:252,1
    - Dst: sys_sem_free_internal
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:253,1
    - Dst: free
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - mb
    argTypes:
    - struct sys_mbox**
    constantsTouched: []
    func_position:
      end: 258
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 258
    functionName: sys_mbox_free
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 0
    functionsReached:
    - free
    - sys_sem_free_internal
    - SYS_STATS_DEC
    - sys_arch_sem_wait
    linkageType: ''
    returnType: void
    signature: sys_mbox_free(struct sys_mbox **mb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:265,1
    - Dst: sys_arch_sem_wait
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:268,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:270,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:274,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:289,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - mb
    - msg
    argTypes:
    - struct sys_mbox**
    - void*
    constantsTouched: []
    func_position:
      end: 295
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 295
    functionName: sys_mbox_trypost
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - sys_arch_sem_wait
    - sys_sem_signal
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: sys_mbox_trypost(struct sys_mbox **mb, void *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:302,1
    - Dst: sys_arch_sem_wait
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:305,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:307,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:311,1
    - Dst: sys_arch_sem_wait
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:312,1
    - Dst: sys_arch_sem_wait
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:313,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:328,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:331,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - mb
    - msg
    argTypes:
    - struct sys_mbox**
    - void*
    constantsTouched: []
    func_position:
      end: 332
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 332
    functionName: sys_mbox_post
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - sys_arch_sem_wait
    - sys_sem_signal
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: sys_mbox_post(struct sys_mbox **mb, void *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:338,1
    - Dst: sys_arch_sem_wait
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:341,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:344,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:349,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:353,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:359,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:362,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - mb
    - msg
    argTypes:
    - struct sys_mbox**
    - void**
    constantsTouched: []
    func_position:
      end: 365
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 365
    functionName: sys_arch_mbox_tryfetch
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - sys_arch_sem_wait
    - sys_sem_signal
    - LWIP_ASSERT
    linkageType: ''
    returnType: u32_t
    signature: sys_arch_mbox_tryfetch(struct sys_mbox **mb, void **msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:372,1
    - Dst: sys_arch_sem_wait
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:377,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:380,1
    - Dst: sys_arch_sem_wait
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:385,1
    - Dst: sys_arch_sem_wait
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:391,1
    - Dst: sys_arch_sem_wait
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:394,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:398,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:402,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:408,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:411,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - mb
    - msg
    - timeout
    argTypes:
    - struct sys_mbox**
    - void**
    - u32_t
    constantsTouched: []
    func_position:
      end: 414
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 414
    functionName: sys_arch_mbox_fetch
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - sys_arch_sem_wait
    - sys_sem_signal
    - LWIP_ASSERT
    linkageType: ''
    returnType: u32_t
    signature: sys_arch_mbox_fetch(struct sys_mbox **mb, void **msg, u32_t timeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:421,1
    - Dst: pthread_cond_init
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:424,1
    - Dst: pthread_mutex_init
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - count
    argTypes:
    - u8_t
    constantsTouched: []
    func_position:
      end: 428
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 428
    functionName: sys_sem_new_internal
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 1
    functionsReached:
    - malloc
    - pthread_cond_init
    - pthread_mutex_init
    linkageType: ''
    returnType: struct sys_sem
    signature: '*

      sys_sem_new_internal(u8_t count)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYS_STATS_INC_USED
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:433,1
    - Dst: sys_sem_new_internal
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sem
    - count
    argTypes:
    - struct sys_sem**
    - u8_t
    constantsTouched: []
    func_position:
      end: 439
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 439
    functionName: sys_sem_new
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 0
    functionsReached:
    - SYS_STATS_INC_USED
    - sys_sem_new_internal
    linkageType: ''
    returnType: err_t
    signature: sys_sem_new(struct sys_sem **sem, u8_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:452,1
    - Dst: pthread_cond_timedwait
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:461,1
    - Dst: gettimeofday
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:467,1
    - Dst: pthread_cond_wait
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - cond
    - mutex
    - timeout
    argTypes:
    - pthread_cond_t*
    - pthread_mutex_t*
    - u32_t
    constantsTouched: []
    func_position:
      end: 480
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 480
    functionName: cond_wait
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 2
    functionsReached:
    - gettimeofday
    - pthread_cond_timedwait
    - pthread_cond_wait
    linkageType: ''
    returnType: u32_t
    signature: cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex, u32_t timeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:487,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:490,1
    - Dst: cond_wait
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:493,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:496,1
    - Dst: cond_wait
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:502,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:506,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - s
    - timeout
    argTypes:
    - struct sys_sem**
    - u32_t
    constantsTouched: []
    func_position:
      end: 508
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 508
    functionName: sys_arch_sem_wait
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 5
    functionsReached:
    - cond_wait
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - LWIP_ASSERT
    linkageType: ''
    returnType: u32_t
    signature: sys_arch_sem_wait(struct sys_sem **s, u32_t timeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:514,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:517,1
    - Dst: pthread_cond_broadcast
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:524,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct sys_sem**
    constantsTouched: []
    func_position:
      end: 526
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 526
    functionName: sys_sem_signal
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 4
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - pthread_cond_broadcast
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: sys_sem_signal(struct sys_sem **s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_cond_destroy
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:531,1
    - Dst: pthread_mutex_destroy
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:532,1
    - Dst: free
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sem
    argTypes:
    - struct sys_sem*
    constantsTouched: []
    func_position:
      end: 534
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 534
    functionName: sys_sem_free_internal
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 1
    functionsReached:
    - free
    - pthread_mutex_destroy
    - pthread_cond_destroy
    linkageType: ''
    returnType: void
    signature: sys_sem_free_internal(struct sys_sem *sem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYS_STATS_DEC
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:540,1
    - Dst: sys_sem_free_internal
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - sem
    argTypes:
    - struct sys_sem**
    constantsTouched: []
    func_position:
      end: 543
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 543
    functionName: sys_sem_free
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 0
    functionsReached:
    - sys_sem_free_internal
    - SYS_STATS_DEC
    linkageType: ''
    returnType: void
    signature: sys_sem_free(struct sys_sem **sem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 556
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 556
    functionName: sys_now
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 3
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: u32_t
    signature: sys_now(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 562
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 562
    functionName: sys_init
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: sys_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_self
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:585,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:589,1
    - Dst: pthread_self
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 597
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 597
    functionName: sys_arch_protect
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 0
    functionsReached:
    - pthread_self
    - pthread_mutex_lock
    linkageType: ''
    returnType: sys_prot_t
    signature: sys_arch_protect(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:610,1
    - Dst: pthread_self
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:611,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pval
    argTypes:
    - sys_prot_t
    constantsTouched: []
    func_position:
      end: 619
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 619
    functionName: sys_arch_unprotect
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - pthread_self
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: sys_arch_unprotect(sys_prot_t pval)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 648
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 648
    functionName: sys_jiffies
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: u32_t
    signature: sys_jiffies(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:659,1
    - Dst: vprintf
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:660,1
    - Dst: va_end
      Src: /src/openweave-core/src/lwip/standalone/sys_arch.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - level
    - format
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 662
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 662
    functionName: ppp_trace
    functionSourceFile: /src/openweave-core/src/lwip/standalone/sys_arch.c
    functionUses: 0
    functionsReached:
    - vprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: ppp_trace(int level, const char *format, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:200,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:203,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:211,1
    - Dst: pbuf_copy
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:217,1
    - Dst: write
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:226,1
    - Dst: snmp_inc_ifoutdiscards
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:229,1
    - Dst: perror
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:230,1
    - Dst: snmp_add_ifoutoctets
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:235,1
    - Dst: pbuf_free
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:240,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - netif
    - buf
    argTypes:
    - struct netif*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 243
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 243
    functionName: TapInterface_low_level_output
    functionSourceFile: /src/openweave-core/src/lwip/standalone/TapInterface.c
    functionUses: 0
    functionsReached:
    - pbuf_copy
    - pbuf_alloc
    - write
    - snmp_inc_ifoutdiscards
    - snmp_add_ifoutoctets
    - perror
    - pbuf_free
    - fprintf
    linkageType: ''
    returnType: err_t
    signature: TapInterface_low_level_output(struct netif *netif, struct pbuf *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:274,1
    - Dst: snmp_add_ifinoctets
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:275,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:278,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:289,1
    - Dst: snmp_inc_ifindiscards
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:295,1
    - Dst: printf
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - tapif
    - netif
    argTypes:
    - TapInterface*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 300
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 300
    functionName: TapInterface_low_level_input
    functionSourceFile: /src/openweave-core/src/lwip/standalone/TapInterface.c
    functionUses: 0
    functionsReached:
    - snmp_add_ifinoctets
    - pbuf_alloc
    - memcpy
    - printf
    - read
    - snmp_inc_ifindiscards
    linkageType: ''
    returnType: struct pbuf
    signature: '*

      TapInterface_low_level_input(TapInterface *tapif, struct netif *netif)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 356
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 356
    functionName: TapInterface_SetupNetif
    functionSourceFile: /src/openweave-core/src/lwip/standalone/TapInterface.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: err_t
    signature: TapInterface_SetupNetif(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:405,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:417,1
    - Dst: htonl
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:421,1
    - Dst: getpid
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:421,1
    - Dst: memset
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:422,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:423,1
    - Dst: open
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:429,1
    - Dst: perror
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:432,1
    - Dst: memset
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:442,1
    - Dst: strlen
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:445,1
    - Dst: perror
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:447,1
    - Dst: strcpy
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:451,1
    - Dst: ioctl
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:453,1
    - Dst: perror
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:455,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - tapif
    - interfaceName
    - macAddr
    argTypes:
    - TapInterface*
    - char*
    - u8_t*
    constantsTouched: []
    func_position:
      end: 464
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 464
    functionName: TapInterface_Init
    functionSourceFile: /src/openweave-core/src/lwip/standalone/TapInterface.c
    functionUses: 0
    functionsReached:
    - getpid
    - open
    - ioctl
    - perror
    - memset
    - htonl
    - strlen
    - memcpy
    - strcpy
    linkageType: ''
    returnType: err_t
    signature: TapInterface_Init(TapInterface *tapif, const char *interfaceName, u8_t
      *macAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FD_ZERO
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:502,1
    - Dst: FD_SET
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:506,1
    - Dst: select
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:509,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:514,1
    - Dst: TapInterface_low_level_input
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:517,1
    - Dst: input
      Src: /src/openweave-core/src/lwip/standalone/TapInterface.c:523,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - tapif
    - netif
    - sleepTime
    - numIntfs
    argTypes:
    - TapInterface*
    - struct netif*
    - struct timeval
    - size_t
    constantsTouched: []
    func_position:
      end: 529
      start: 490
    functionDepth: 2
    functionLinenumber: 490
    functionLinenumberEnd: 529
    functionName: TapInterface_Select
    functionSourceFile: /src/openweave-core/src/lwip/standalone/TapInterface.c
    functionUses: 0
    functionsReached:
    - input
    - FD_SET
    - FD_ISSET
    - FD_ZERO
    - TapInterface_low_level_input
    - select
    linkageType: ''
    returnType: int
    signature: TapInterface_Select(TapInterface *tapif, struct netif *netif, struct
      timeval sleepTime, size_t numIntfs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::RADaemon::Init
      Src: /src/openweave-core/src/ra-daemon/RADaemon.h:116,1
    - Dst: InetLayer*::SystemLayer
      Src: /src/openweave-core/src/ra-daemon/RADaemon.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aInetLayer
    argTypes:
    - InetLayer*
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: nl::Inet::RADaemon::Init
    functionSourceFile: /src/openweave-core/src/ra-daemon/RADaemon.h
    functionUses: 1
    functionsReached:
    - InetLayer*::SystemLayer
    - nl::Inet::RADaemon::Init
    linkageType: ''
    returnType: void
    signature: RADaemon::Init(InetLayer* aInetLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' aSystemLayer'
    - ' aInetLayer'
    argTypes:
    - Weave::System::Layer
    - InetLayer
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: nl::Inet::RADaemon::Init
    functionSourceFile: /src/openweave-core/src/ra-daemon/RADaemon.cpp
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: RADaemon::Init(Weave::System::Layer& aSystemLayer, InetLayer& aInetLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - startpos
    - checklen
    argTypes:
    - uint16_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 114
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 114
    functionName: nl::Inet::RADaemon::CalculateChecksum
    functionSourceFile: /src/openweave-core/src/ra-daemon/RADaemon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: RADaemon::CalculateChecksum(uint16_t *startpos, uint16_t checklen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:156,1
    - Dst: memcpy
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:157,1
    - Dst: nl::Weave::Encoding::Swap64
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:161,1
    - Dst: nl::Weave::Encoding::Swap64
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:161,1
    - Dst: memcpy
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:162,1
    - Dst: memcpy
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:168,1
    - Dst: nl::Weave::Encoding::Swap64
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:170,1
    - Dst: nl::Weave::Encoding::Swap64
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:170,1
    - Dst: memcpy
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - ipv6_addr
    - prefix
    - masked
    argTypes:
    - uint8_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 172
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 172
    functionName: nl::Inet::mask_ipv6_address
    functionSourceFile: /src/openweave-core/src/ra-daemon/RADaemon.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::Swap64
    - memcpy
    - memset
    linkageType: ''
    returnType: void
    signature: mask_ipv6_address (const uint8_t *ipv6_addr, uint8_t prefix, uint8_t
      *masked)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:185,1
    - Dst: nl::Weave::Encoding::BigEndian::HostSwap16
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:193,1
    - Dst: nl::Weave::Encoding::BigEndian::HostSwap32
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:194,1
    - Dst: nl::Weave::Encoding::BigEndian::HostSwap32
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:195,1
    - Dst: nl::Weave::Encoding::BigEndian::HostSwap32
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:207,1
    - Dst: nl::Weave::Encoding::BigEndian::HostSwap32
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:208,1
    - Dst: nl::Weave::Encoding::BigEndian::HostSwap32
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:209,1
    - Dst: memcpy
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:210,1
    - Dst: nl::Weave::Encoding::BigEndian::HostSwap16
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:219,1
    - Dst: nl::Weave::Encoding::BigEndian::HostSwap16
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:220,1
    - Dst: memcpy
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:221,1
    - Dst: memcpy
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:222,1
    - Dst: nl::Inet::RADaemon::CalculateChecksum
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:226,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 3
    argNames:
    - RAPacket
    - linkInfo
    - destAddr
    argTypes:
    - PacketBuffer*
    - RADaemon::LinkInformation*
    - IPAddress
    constantsTouched: []
    func_position:
      end: 234
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 234
    functionName: nl::Inet::RADaemon::BuildRA
    functionSourceFile: /src/openweave-core/src/ra-daemon/RADaemon.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Encoding::BigEndian::HostSwap16
    - nl::Inet::RADaemon::CalculateChecksum
    - memcpy
    - PacketBuffer*::Start
    - nl::Weave::Encoding::BigEndian::HostSwap32
    linkageType: ''
    returnType: void
    signature: RADaemon::BuildRA(PacketBuffer *RAPacket, RADaemon::LinkInformation
      *linkInfo, const IPAddress &destAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:246,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:248,1
    - Dst: nl::Inet::RADaemon::BuildRA
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:255,1
    - Dst: RADaemon::LinkInformation*::RawEP::SendTo
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:256,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - inet
    - appState
    - err
    argTypes:
    - InetLayer*
    - void*
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 258
      start: 236
    functionDepth: 3
    functionLinenumber: 236
    functionLinenumberEnd: 258
    functionName: nl::Inet::RADaemon::MulticastRA
    functionSourceFile: /src/openweave-core/src/ra-daemon/RADaemon.cpp
    functionUses: 0
    functionsReached:
    - RADaemon::LinkInformation*::RawEP::SendTo
    - nl::Inet::RADaemon::BuildRA
    - nl::Inet::IPAddress::FromString
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: RADaemon::MulticastRA(InetLayer* inet, void* appState, INET_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<RADaemon::LinkInformation*>
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:262,1
    - Dst: static_cast<INET_ERROR>
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:263,1
    - Dst: nl::Inet::RADaemon::MulticastRA
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:272,1
    - Dst: rand
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:277,1
    - Dst: Weave::System::Layer*::StartTimer
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - Weave::System::Layer*
    - void*
    - Weave::System::Error
    constantsTouched: []
    func_position:
      end: 287
      start: 260
    functionDepth: 4
    functionLinenumber: 260
    functionLinenumberEnd: 287
    functionName: nl::Inet::RADaemon::MulticastPeriodicRA
    functionSourceFile: /src/openweave-core/src/ra-daemon/RADaemon.cpp
    functionUses: 0
    functionsReached:
    - static_cast<INET_ERROR>
    - reinterpret_cast<RADaemon::LinkInformation*>
    - Weave::System::Layer*::StartTimer
    - rand
    - nl::Inet::RADaemon::MulticastRA
    linkageType: ''
    returnType: void
    signature: RADaemon::MulticastPeriodicRA(Weave::System::Layer* aSystemLayer, void*
      aAppState, Weave::System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<RADaemon::LinkInformation*>
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:291,1
    - Dst: static_cast<INET_ERROR>
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:292,1
    - Dst: RADaemon::LinkInformation*::Self::SystemLayer::StartTimer
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - Weave::System::Layer*
    - void*
    - Weave::System::Error
    constantsTouched: []
    func_position:
      end: 301
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 301
    functionName: nl::Inet::RADaemon::TrackRSes
    functionSourceFile: /src/openweave-core/src/ra-daemon/RADaemon.cpp
    functionUses: 0
    functionsReached:
    - RADaemon::LinkInformation*::Self::SystemLayer::StartTimer
    - reinterpret_cast<RADaemon::LinkInformation*>
    - static_cast<INET_ERROR>
    linkageType: ''
    returnType: void
    signature: RADaemon::TrackRSes(Weave::System::Layer* aSystemLayer, void* aAppState,
      Weave::System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::RADaemon::MulticastRA
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:306,1
    - Dst: nl::Inet::RADaemon::MulticastRA
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - linkInfo
    - llAddr
    argTypes:
    - RADaemon::LinkInformation*
    - IPAddress*
    constantsTouched: []
    func_position:
      end: 315
      start: 303
    functionDepth: 4
    functionLinenumber: 303
    functionLinenumberEnd: 315
    functionName: nl::Inet::RADaemon::UpdateLinkLocalAddr
    functionSourceFile: /src/openweave-core/src/ra-daemon/RADaemon.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::RADaemon::MulticastRA
    linkageType: ''
    returnType: void
    signature: RADaemon::UpdateLinkLocalAddr(RADaemon::LinkInformation *linkInfo,
      IPAddress *llAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::RADaemon::MulticastRA
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - linkInfo
    argTypes:
    - RADaemon::LinkInformation*
    constantsTouched: []
    func_position:
      end: 323
      start: 317
    functionDepth: 4
    functionLinenumber: 317
    functionLinenumberEnd: 323
    functionName: nl::Inet::RADaemon::McastAllPrefixes
    functionSourceFile: /src/openweave-core/src/ra-daemon/RADaemon.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::RADaemon::MulticastRA
    linkageType: ''
    returnType: void
    signature: RADaemon::McastAllPrefixes(RADaemon::LinkInformation *linkInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - endPoint
    - err
    - pktInfo
    argTypes:
    - RawEndPoint*
    - INET_ERROR
    - IPPacketInfo*
    constantsTouched: []
    func_position:
      end: 327
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 327
    functionName: nl::Inet::RADaemon::HandleReceiveError2
    functionSourceFile: /src/openweave-core/src/ra-daemon/RADaemon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: RADaemon::HandleReceiveError2(RawEndPoint *endPoint, INET_ERROR err,
      const IPPacketInfo *pktInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - endPoint
    - err
    - pktInfo
    argTypes:
    - RawEndPoint*
    - INET_ERROR
    - IPPacketInfo*
    constantsTouched: []
    func_position:
      end: 331
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 331
    functionName: nl::Inet::RADaemon::HandleReceiveError
    functionSourceFile: /src/openweave-core/src/ra-daemon/RADaemon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: RADaemon::HandleReceiveError(RawEndPoint *endPoint, INET_ERROR err,
      const IPPacketInfo *pktInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - RawEPListen
    - msg
    - pktInfo
    argTypes:
    - RawEndPoint*
    - PacketBuffer*
    - IPPacketInfo*
    constantsTouched: []
    func_position:
      end: 349
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 349
    functionName: nl::Inet::RADaemon::HandleMessageReceived2
    functionSourceFile: /src/openweave-core/src/ra-daemon/RADaemon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: RADaemon::HandleMessageReceived2(RawEndPoint *RawEPListen, PacketBuffer
      *msg, const IPPacketInfo *pktInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:354,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:407,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:419,1
    - Dst: nl::Inet::RADaemon::BuildRA
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:420,1
    - Dst: LinkInformation*::RawEP::SendTo
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:421,1
    - Dst: Weave::System::Layer*::StartTimer
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:432,1
    - Dst: nl::Inet::RADaemon::BuildRA
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:436,1
    - Dst: LinkInformation*::RawEP::SendTo
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:437,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:441,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 3
    argNames:
    - RawEPListen
    - msg
    - pktInfo
    argTypes:
    - RawEndPoint*
    - PacketBuffer*
    - IPPacketInfo*
    constantsTouched: []
    func_position:
      end: 442
      start: 351
    functionDepth: 3
    functionLinenumber: 351
    functionLinenumberEnd: 442
    functionName: nl::Inet::RADaemon::HandleMessageReceived
    functionSourceFile: /src/openweave-core/src/ra-daemon/RADaemon.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - nl::Inet::IPAddress::FromString
    - LinkInformation*::RawEP::SendTo
    - Weave::System::Layer*::StartTimer
    - PacketBuffer*::Start
    - nl::Inet::RADaemon::BuildRA
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: RADaemon::HandleMessageReceived(RawEndPoint *RawEPListen, PacketBuffer
      *msg, const IPPacketInfo *pktInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsInterfaceIdPresent
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:454,1
    - Dst: GetLinkLocalAddr
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:461,1
    - Dst: mask_ipv6_address
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:470,1
    - Dst: nl::Inet::RADaemon::UpdateLinkLocalAddr
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:488,1
    - Dst: nl::Inet::RADaemon::McastAllPrefixes
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:501,1
    - Dst: nl::Inet::RADaemon::McastAllPrefixes
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:519,1
    - Dst: NewRawEndPoint
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:537,1
    - Dst: NewRawEndPoint
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:543,1
    - Dst: reinterpret_cast<IPEndPointBasis::OnMessageReceivedFunct>
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:550,1
    - Dst: reinterpret_cast<IPEndPointBasis::OnReceiveErrorFunct>
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:551,1
    - Dst: reinterpret_cast<IPEndPointBasis::OnMessageReceivedFunct>
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:553,1
    - Dst: reinterpret_cast<IPEndPointBasis::OnReceiveErrorFunct>
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:554,1
    - Dst: RADaemon::LinkInformation*::RawEP::BindIPv6LinkLocal
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:556,1
    - Dst: RADaemon::LinkInformation*::RawEP::SetICMPFilter
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:562,1
    - Dst: RADaemon::LinkInformation*::RawEPListen::BindIPv6LinkLocal
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:568,1
    - Dst: RADaemon::LinkInformation*::RawEPListen::SetICMPFilter
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:574,1
    - Dst: RADaemon::LinkInformation*::RawEPListen::Listen
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:580,1
    - Dst: nl::Inet::RADaemon::MulticastPeriodicRA
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:593,1
    - Dst: nl::Inet::RADaemon::TrackRSes
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:594,1
    - Dst: RADaemon::LinkInformation*::RawEPListen::Free
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:598,1
    - Dst: RADaemon::LinkInformation*::RawEP::Free
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:602,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 116
    argCount: 5
    argNames:
    - link
    - llAddr
    - ipPrefix
    - validLifetime
    - preferredLifetime
    argTypes:
    - InterfaceId
    - IPAddress
    - IPPrefix
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 607
      start: 444
    functionDepth: 5
    functionLinenumber: 444
    functionLinenumberEnd: 607
    functionName: nl::Inet::RADaemon::SetPrefixInfo
    functionSourceFile: /src/openweave-core/src/ra-daemon/RADaemon.cpp
    functionUses: 0
    functionsReached:
    - NewRawEndPoint
    - RADaemon::LinkInformation*::RawEPListen::Free
    - RADaemon::LinkInformation*::RawEP::BindIPv6LinkLocal
    - nl::Inet::RADaemon::TrackRSes
    - RADaemon::LinkInformation*::RawEPListen::BindIPv6LinkLocal
    - reinterpret_cast<IPEndPointBasis::OnMessageReceivedFunct>
    - reinterpret_cast<IPEndPointBasis::OnReceiveErrorFunct>
    - nl::Inet::RADaemon::MulticastPeriodicRA
    - RADaemon::LinkInformation*::RawEP::SetICMPFilter
    - mask_ipv6_address
    - GetLinkLocalAddr
    - IsInterfaceIdPresent
    - RADaemon::LinkInformation*::RawEP::Free
    - nl::Inet::RADaemon::McastAllPrefixes
    - nl::Inet::RADaemon::UpdateLinkLocalAddr
    - RADaemon::LinkInformation*::RawEPListen::Listen
    - RADaemon::LinkInformation*::RawEPListen::SetICMPFilter
    linkageType: ''
    returnType: INET_ERROR
    signature: "RADaemon::SetPrefixInfo(InterfaceId link, IPAddress llAddr, IPPrefix
      ipPrefix, uint32_t validLifetime,\n    uint32_t preferredLifetime)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsInterfaceIdPresent
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:617,1
    - Dst: IPPrefix
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:632,1
    - Dst: nl::Inet::RADaemon::DelLinkInfo
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:644,1
    - Dst: nl::Inet::RADaemon::McastAllPrefixes
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:652,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - link
    - ipPrefix
    argTypes:
    - InterfaceId
    - IPPrefix
    constantsTouched: []
    func_position:
      end: 654
      start: 610
    functionDepth: 5
    functionLinenumber: 610
    functionLinenumberEnd: 654
    functionName: nl::Inet::RADaemon::DelPrefixInfo
    functionSourceFile: /src/openweave-core/src/ra-daemon/RADaemon.cpp
    functionUses: 0
    functionsReached:
    - IPPrefix
    - nl::Inet::RADaemon::DelLinkInfo
    - IsInterfaceIdPresent
    - nl::Inet::RADaemon::McastAllPrefixes
    linkageType: ''
    returnType: void
    signature: RADaemon::DelPrefixInfo(InterfaceId link, IPPrefix ipPrefix)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsInterfaceIdPresent
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:659,1
    - Dst: RADaemon::LinkInformation*::RawEPListen::Free
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:669,1
    - Dst: RADaemon::LinkInformation*::RawEP::Free
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:671,1
    - Dst: CancelTimer
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:673,1
    - Dst: CancelTimer
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:674,1
    - Dst: RADaemon::LinkInformation
      Src: /src/openweave-core/src/ra-daemon/RADaemon.cpp:675,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - link
    argTypes:
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 680
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 680
    functionName: nl::Inet::RADaemon::DelLinkInfo
    functionSourceFile: /src/openweave-core/src/ra-daemon/RADaemon.cpp
    functionUses: 1
    functionsReached:
    - IsInterfaceIdPresent
    - RADaemon::LinkInformation*::RawEP::Free
    - CancelTimer
    - RADaemon::LinkInformation
    - RADaemon::LinkInformation*::RawEPListen::Free
    linkageType: ''
    returnType: void
    signature: RADaemon::DelLinkInfo(InterfaceId link)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::JNIUtils::GetGlobalClassRef
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:46,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:47,1
    - Dst: nl::Weave::JNIUtils::GetGlobalClassRef
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:52,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - jvm
    - env
    - weaveErrorClassName
    argTypes:
    - JavaVM*
    - JNIEnv*
    - char*
    constantsTouched: []
    func_position:
      end: 60
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 60
    functionName: nl::Weave::JNIUtils::Init
    functionSourceFile: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::JNIUtils::GetGlobalClassRef
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: JNIUtils::Init(JavaVM *jvm, JNIEnv *env, const char *weaveErrorClassName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::DeleteGlobalRef
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:66,1
    - Dst: JNIEnv*::DeleteGlobalRef
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 74
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 74
    functionName: nl::Weave::JNIUtils::Shutdown
    functionSourceFile: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::DeleteGlobalRef
    linkageType: ''
    returnType: void
    signature: JNIUtils::Shutdown(JNIEnv *env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:81,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:82,1
    - Dst: snprintf
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - basePackageName
    - relativeClassName
    - ' classNameBuf'
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 88
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 88
    functionName: nl::Weave::MakeClassName
    functionSourceFile: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp
    functionUses: 0
    functionsReached:
    - snprintf
    - VerifyOrExit
    - realloc
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MakeClassName(const char *basePackageName, const char *relativeClassName,
      char *& classNameBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MakeClassName
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:100,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:101,1
    - Dst: JNIEnv*::FindClass
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:103,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:104,1
    - Dst: JNIEnv*::RegisterNatives
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:111,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:112,1
    - Dst: free
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - env
    - basePackageName
    - libMethods
    - numLibMethods
    argTypes:
    - JNIEnv*
    - char*
    - JNILibraryMethod*
    - size_t
    constantsTouched: []
    func_position:
      end: 121
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 121
    functionName: nl::Weave::JNIUtils::RegisterLibraryMethods
    functionSourceFile: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::RegisterNatives
    - VerifyOrExit
    - free
    - SuccessOrExit
    - MakeClassName
    - JNIEnv*::FindClass
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: JNIUtils::RegisterLibraryMethods(JNIEnv *env, const char *basePackageName,
      const JNILibraryMethod *libMethods, size_t numLibMethods)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:130,1
    - Dst: nl::Weave::JNIUtils::N2J_Error
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:133,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:134,1
    - Dst: JNIEnv*::Throw
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - env
    - errToThrow
    argTypes:
    - JNIEnv*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 141
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 141
    functionName: nl::Weave::JNIUtils::ThrowError
    functionSourceFile: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::JNIUtils::N2J_Error
    - JNIEnv*::Throw
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: JNIUtils::ThrowError(JNIEnv *env, WEAVE_ERROR errToThrow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:147,1
    - Dst: malloc
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:149,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:150,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:154,1
    - Dst: JNIEnv*::GetByteArrayRegion
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:155,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:156,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:156,1
    - Dst: free
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - env
    - inArray
    - ' outArray'
    - ' outArrayLen'
    argTypes:
    - JNIEnv*
    - jbyteArray
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 170
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 170
    functionName: nl::Weave::J2N_ByteArray
    functionSourceFile: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::ExceptionCheck
    - free
    - malloc
    - JNIEnv*::GetByteArrayRegion
    - JNIEnv*::GetArrayLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_ByteArray(JNIEnv *env, jbyteArray inArray, uint8_t *& outArray,
      uint32_t& outArrayLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:178,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:180,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:181,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:185,1
    - Dst: JNIEnv*::GetByteArrayRegion
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:186,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:187,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - env
    - inArray
    - outArray
    - maxArrayLen
    argTypes:
    - JNIEnv*
    - jbyteArray
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 192
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 192
    functionName: nl::Weave::J2N_ByteArrayInPlace
    functionSourceFile: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::ExceptionCheck
    - JNIEnv*::GetByteArrayRegion
    - JNIEnv*::GetArrayLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_ByteArrayInPlace(JNIEnv *env, jbyteArray inArray, uint8_t * outArray,
      uint32_t maxArrayLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::NewByteArray
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:198,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:199,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:201,1
    - Dst: JNIEnv*::SetByteArrayRegion
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:202,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:203,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - env
    - inArray
    - inArrayLen
    - ' outArray'
    argTypes:
    - JNIEnv*
    - uint8_t*
    - uint32_t
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 207
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 207
    functionName: nl::Weave::JNIUtils::N2J_ByteArray
    functionSourceFile: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::ExceptionClear
    - JNIEnv*::NewByteArray
    - JNIEnv*::SetByteArrayRegion
    - VerifyOrExit
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: JNIUtils::N2J_ByteArray(JNIEnv *env, const uint8_t *inArray, uint32_t
      inArrayLen, jbyteArray& outArray)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:215,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:216,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:218,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:219,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:221,1
    - Dst: JNIEnv*::GetIntField
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:222,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:223,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:223,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - env
    - enumObj
    - ' outVal'
    argTypes:
    - JNIEnv*
    - jobject
    - int
    constantsTouched: []
    func_position:
      end: 228
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 228
    functionName: nl::Weave::J2N_EnumVal
    functionSourceFile: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetIntField
    - JNIEnv*::GetFieldID
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::DeleteLocalRef
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_EnumVal(JNIEnv *env, jobject enumObj, int& outVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:237,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:238,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:240,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:241,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:243,1
    - Dst: JNIEnv*::GetObjectField
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:244,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:245,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:245,1
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:249,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:250,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:252,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:253,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:255,1
    - Dst: JNIEnv*::GetIntField
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:256,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:257,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:257,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:263,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:264,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 5
    argNames:
    - env
    - obj
    - fieldName
    - fieldType
    - ' outVal'
    argTypes:
    - JNIEnv*
    - jobject
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 267
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 267
    functionName: nl::Weave::J2N_EnumFieldVal
    functionSourceFile: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetIntField
    - JNIEnv*::GetFieldID
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::DeleteLocalRef
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    - JNIEnv*::GetObjectField
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_EnumFieldVal(JNIEnv *env, jobject obj, const char *fieldName, const
      char *fieldType, int& outVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:275,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:276,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:278,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:279,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:281,1
    - Dst: JNIEnv*::GetShortField
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:282,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:283,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:283,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - env
    - obj
    - fieldName
    - ' outVal'
    argTypes:
    - JNIEnv*
    - jobject
    - char*
    - jshort
    constantsTouched: []
    func_position:
      end: 288
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 288
    functionName: nl::Weave::J2N_ShortFieldVal
    functionSourceFile: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetFieldID
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::GetShortField
    - JNIEnv*::DeleteLocalRef
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_ShortFieldVal(JNIEnv *env, jobject obj, const char *fieldName,
      jshort& outVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:296,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:297,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:299,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:300,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:302,1
    - Dst: JNIEnv*::GetIntField
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:303,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:304,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:304,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - env
    - obj
    - fieldName
    - ' outVal'
    argTypes:
    - JNIEnv*
    - jobject
    - char*
    - jint
    constantsTouched: []
    func_position:
      end: 309
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 309
    functionName: nl::Weave::J2N_IntFieldVal
    functionSourceFile: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetIntField
    - JNIEnv*::GetFieldID
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::DeleteLocalRef
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_IntFieldVal(JNIEnv *env, jobject obj, const char *fieldName, jint&
      outVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:317,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:318,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:320,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:321,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:323,1
    - Dst: JNIEnv*::GetLongField
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:324,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:325,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:325,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - env
    - obj
    - fieldName
    - ' outVal'
    argTypes:
    - JNIEnv*
    - jobject
    - char*
    - jlong
    constantsTouched: []
    func_position:
      end: 330
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 330
    functionName: nl::Weave::J2N_LongFieldVal
    functionSourceFile: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetFieldID
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::ExceptionCheck
    - JNIEnv*::DeleteLocalRef
    - JNIEnv*::GetObjectClass
    - JNIEnv*::GetLongField
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_LongFieldVal(JNIEnv *env, jobject obj, const char *fieldName, jlong&
      outVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:340,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:341,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:343,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:344,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:346,1
    - Dst: JNIEnv*::GetObjectField
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:347,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:348,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:348,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:352,1
    - Dst: strdup
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:353,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:354,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:360,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 4
    argNames:
    - env
    - obj
    - fieldName
    - ' outVal'
    argTypes:
    - JNIEnv*
    - jobject
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 363
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 363
    functionName: nl::Weave::J2N_StringFieldVal
    functionSourceFile: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - JNIEnv*::GetFieldID
    - JNIEnv*::ReleaseStringUTFChars
    - JNIEnv*::ExceptionClear
    - strdup
    - VerifyOrExit
    - JNIEnv*::DeleteLocalRef
    - JNIEnv*::GetObjectClass
    - JNIEnv*::ExceptionCheck
    - JNIEnv*::GetObjectField
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_StringFieldVal(JNIEnv *env, jobject obj, const char *fieldName,
      char *& outVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:372,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:373,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:375,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:376,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:378,1
    - Dst: JNIEnv*::GetObjectField
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:379,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:380,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:380,1
    - Dst: nl::Weave::J2N_ByteArray
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:384,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:385,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:394,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 5
    argNames:
    - env
    - obj
    - fieldName
    - ' outArray'
    - ' outArrayLen'
    argTypes:
    - JNIEnv*
    - jobject
    - char*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 397
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 397
    functionName: nl::Weave::J2N_ByteArrayFieldVal
    functionSourceFile: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetFieldID
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::DeleteLocalRef
    - SuccessOrExit
    - JNIEnv*::GetObjectClass
    - nl::Weave::J2N_ByteArray
    - JNIEnv*::ExceptionCheck
    - JNIEnv*::GetObjectField
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: J2N_ByteArrayFieldVal(JNIEnv *env, jobject obj, const char *fieldName,
      uint8_t *& outArray, uint32_t& outArrayLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::FindClass
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:409,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:410,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:412,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:413,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:415,1
    - Dst: JNIEnv*::NewObject
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:416,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:417,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:417,1
    - Dst: JNIEnv*::FindClass
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:422,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:423,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:425,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:426,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:428,1
    - Dst: JNIEnv*::NewObject
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:429,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:430,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:430,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:434,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:435,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:442,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:444,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:446,1
    - Dst: JNIEnv*::NewObject
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:447,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:448,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:448,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:452,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:453,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 46
    argCount: 3
    argNames:
    - env
    - inErr
    - ' outEx'
    argTypes:
    - JNIEnv*
    - WEAVE_ERROR
    - jthrowable
    constantsTouched: []
    func_position:
      end: 455
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 455
    functionName: nl::Weave::JNIUtils::N2J_Error
    functionSourceFile: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp
    functionUses: 1
    functionsReached:
    - JNIEnv*::GetMethodID
    - JNIEnv*::NewObject
    - JNIEnv*::ExceptionClear
    - VerifyOrExit
    - JNIEnv*::DeleteLocalRef
    - JNIEnv*::FindClass
    - JNIEnv*::ExceptionCheck
    - nl::ErrorStr
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: JNIUtils::N2J_Error(JNIEnv *env, WEAVE_ERROR inErr, jthrowable& outEx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::FindClass
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:462,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:463,1
    - Dst: JNIEnv*::NewGlobalRef
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:465,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:466,1
    - Dst: JNIEnv*::DeleteLocalRef
      Src: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - env
    - clsType
    - ' outCls'
    argTypes:
    - JNIEnv*
    - char*
    - jclass
    constantsTouched: []
    func_position:
      end: 471
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 471
    functionName: nl::Weave::JNIUtils::GetGlobalClassRef
    functionSourceFile: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp
    functionUses: 1
    functionsReached:
    - JNIEnv*::FindClass
    - JNIEnv*::DeleteLocalRef
    - VerifyOrExit
    - JNIEnv*::NewGlobalRef
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: JNIUtils::GetGlobalClassRef(JNIEnv *env, const char *clsType, jclass&
      outCls)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveStandAloneKeyExportClient::WeaveStandAloneKeyExportClient
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:60,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:61,1
    - Dst: WeaveStandAloneKeyExportClient*::Init
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:63,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - env
    - cls
    argTypes:
    - JNIEnv*
    - jclass
    constantsTouched: []
    func_position:
      end: 72
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 72
    functionName: nl::Weave::SecuritySupport::WeaveKeyExportClientNative::newNativeClient
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::JNIUtils::ThrowError
    - WeaveStandAloneKeyExportClient*::Init
    - VerifyOrExit
    - WeaveStandAloneKeyExportClient::WeaveStandAloneKeyExportClient
    linkageType: ''
    returnType: jlong
    signature: WeaveKeyExportClientNative::newNativeClient(JNIEnv *env, jclass cls)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveStandAloneKeyExportClient*::Reset
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - env
    - cls
    - nativeClientPtr
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    constantsTouched: []
    func_position:
      end: 83
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 83
    functionName: nl::Weave::SecuritySupport::WeaveKeyExportClientNative::releaseNativeClient
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp
    functionUses: 0
    functionsReached:
    - WeaveStandAloneKeyExportClient*::Reset
    linkageType: ''
    returnType: void
    signature: WeaveKeyExportClientNative::releaseNativeClient(JNIEnv *env, jclass
      cls, jlong nativeClientPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveStandAloneKeyExportClient*::Reset
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - env
    - cls
    - nativeClientPtr
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: nl::Weave::SecuritySupport::WeaveKeyExportClientNative::resetNativeClient
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp
    functionUses: 0
    functionsReached:
    - WeaveStandAloneKeyExportClient*::Reset
    linkageType: ''
    returnType: void
    signature: WeaveKeyExportClientNative::resetNativeClient(JNIEnv *env, jclass cls,
      jlong nativeClientPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:109,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:110,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:111,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:113,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:114,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:116,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:117,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:126,1
    - Dst: malloc
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:128,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:129,1
    - Dst: WeaveStandAloneKeyExportClient*::GenerateKeyExportRequest
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:131,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:134,1
    - Dst: nl::Weave::JNIUtils::N2J_ByteArray
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:136,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:137,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:142,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:146,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 7
    argNames:
    - env
    - cls
    - nativeClientPtr
    - keyId
    - responderNodeId
    - clientCert
    - clientKey
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    - jint
    - jlong
    - jbyteArray
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 153
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 153
    functionName: nl::Weave::SecuritySupport::WeaveKeyExportClientNative::generateKeyExportRequest_Cert
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::ReleaseByteArrayElements
    - JNIEnv*::GetByteArrayElements
    - VerifyOrExit
    - WeaveStandAloneKeyExportClient*::GenerateKeyExportRequest
    - nl::Weave::JNIUtils::N2J_ByteArray
    - SuccessOrExit
    - malloc
    - nl::Weave::JNIUtils::ThrowError
    - JNIEnv*::GetArrayLength
    linkageType: ''
    returnType: jbyteArray
    signature: "WeaveKeyExportClientNative::generateKeyExportRequest_Cert(JNIEnv *env,
      jclass cls, jlong nativeClientPtr, jint keyId, jlong responderNodeId,\n        jbyteArray
      clientCert, jbyteArray clientKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:167,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:168,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:170,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:171,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:180,1
    - Dst: malloc
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:182,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:183,1
    - Dst: WeaveStandAloneKeyExportClient*::GenerateKeyExportRequest
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:185,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:188,1
    - Dst: nl::Weave::JNIUtils::N2J_ByteArray
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:190,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:191,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:196,1
    - Dst: free
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:200,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 6
    argNames:
    - env
    - cls
    - nativeClientPtr
    - keyId
    - responderNodeId
    - accessToken
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    - jint
    - jlong
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 207
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 207
    functionName: nl::Weave::SecuritySupport::WeaveKeyExportClientNative::generateKeyExportRequest_AccessToken
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::ReleaseByteArrayElements
    - JNIEnv*::GetByteArrayElements
    - VerifyOrExit
    - WeaveStandAloneKeyExportClient*::GenerateKeyExportRequest
    - nl::Weave::JNIUtils::N2J_ByteArray
    - free
    - SuccessOrExit
    - malloc
    - nl::Weave::JNIUtils::ThrowError
    - JNIEnv*::GetArrayLength
    linkageType: ''
    returnType: jbyteArray
    signature: "WeaveKeyExportClientNative::generateKeyExportRequest_AccessToken(JNIEnv
      *env, jclass cls, jlong nativeClientPtr, jint keyId, jlong responderNodeId,\n
      \       jbyteArray accessToken)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:221,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:222,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:224,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:225,1
    - Dst: malloc
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:231,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:232,1
    - Dst: WeaveStandAloneKeyExportClient*::ProcessKeyExportResponse
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:234,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:235,1
    - Dst: nl::Weave::JNIUtils::N2J_ByteArray
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:237,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:238,1
    - Dst: WeaveStandAloneKeyExportClient*::Reset
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:243,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:247,1
    - Dst: free
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:251,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 5
    argNames:
    - env
    - cls
    - nativeClientPtr
    - responderNodeId
    - exportResp
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    - jlong
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 258
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 258
    functionName: nl::Weave::SecuritySupport::WeaveKeyExportClientNative::processKeyExportResponse
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp
    functionUses: 0
    functionsReached:
    - WeaveStandAloneKeyExportClient*::ProcessKeyExportResponse
    - WeaveStandAloneKeyExportClient*::Reset
    - JNIEnv*::ReleaseByteArrayElements
    - JNIEnv*::GetByteArrayElements
    - VerifyOrExit
    - free
    - nl::Weave::JNIUtils::N2J_ByteArray
    - SuccessOrExit
    - malloc
    - nl::Weave::JNIUtils::ThrowError
    - JNIEnv*::GetArrayLength
    linkageType: ''
    returnType: jbyteArray
    signature: WeaveKeyExportClientNative::processKeyExportResponse(JNIEnv *env, jclass
      cls, jlong nativeClientPtr, jlong responderNodeId, jbyteArray exportResp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:267,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:268,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:270,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:271,1
    - Dst: WeaveStandAloneKeyExportClient*::ProcessKeyExportReconfigure
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:273,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:274,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:279,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - env
    - cls
    - nativeClientPtr
    - reconfig
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 285
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 285
    functionName: nl::Weave::SecuritySupport::WeaveKeyExportClientNative::processKeyExportReconfigure
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::ReleaseByteArrayElements
    - WeaveStandAloneKeyExportClient*::ProcessKeyExportReconfigure
    - JNIEnv*::GetByteArrayElements
    - VerifyOrExit
    - SuccessOrExit
    - nl::Weave::JNIUtils::ThrowError
    - JNIEnv*::GetArrayLength
    linkageType: ''
    returnType: void
    signature: WeaveKeyExportClientNative::processKeyExportReconfigure(JNIEnv *env,
      jclass cls, jlong nativeClientPtr, jbyteArray reconfig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:293,1
    - Dst: WeaveStandAloneKeyExportClient*::AllowNestDevelopmentDevices
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:295,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - env
    - cls
    - nativeClientPtr
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    constantsTouched: []
    func_position:
      end: 303
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 303
    functionName: nl::Weave::SecuritySupport::WeaveKeyExportClientNative::allowNestDevelopmentDevices
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp
    functionUses: 0
    functionsReached:
    - WeaveStandAloneKeyExportClient*::AllowNestDevelopmentDevices
    - VerifyOrExit
    - nl::Weave::JNIUtils::ThrowError
    linkageType: ''
    returnType: jboolean
    signature: WeaveKeyExportClientNative::allowNestDevelopmentDevices(JNIEnv *env,
      jclass cls, jlong nativeClientPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:310,1
    - Dst: WeaveStandAloneKeyExportClient*::AllowNestDevelopmentDevices
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:312,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - env
    - cls
    - nativeClientPtr
    - val
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    - jboolean
    constantsTouched: []
    func_position:
      end: 319
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 319
    functionName: nl::Weave::SecuritySupport::WeaveKeyExportClientNative::setAllowNestDevelopmentDevices
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp
    functionUses: 0
    functionsReached:
    - WeaveStandAloneKeyExportClient*::AllowNestDevelopmentDevices
    - VerifyOrExit
    - nl::Weave::JNIUtils::ThrowError
    linkageType: ''
    returnType: void
    signature: WeaveKeyExportClientNative::setAllowNestDevelopmentDevices(JNIEnv *env,
      jclass cls, jlong nativeClientPtr, jboolean val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:327,1
    - Dst: WeaveStandAloneKeyExportClient*::AllowSHA1DeviceCerts
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:329,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - env
    - cls
    - nativeClientPtr
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    constantsTouched: []
    func_position:
      end: 337
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 337
    functionName: nl::Weave::SecuritySupport::WeaveKeyExportClientNative::allowSHA1DeviceCertificates
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::JNIUtils::ThrowError
    - VerifyOrExit
    - WeaveStandAloneKeyExportClient*::AllowSHA1DeviceCerts
    linkageType: ''
    returnType: jboolean
    signature: WeaveKeyExportClientNative::allowSHA1DeviceCertificates(JNIEnv *env,
      jclass cls, jlong nativeClientPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:344,1
    - Dst: WeaveStandAloneKeyExportClient*::AllowSHA1DeviceCerts
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:346,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - env
    - cls
    - nativeClientPtr
    - val
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    - jboolean
    constantsTouched: []
    func_position:
      end: 353
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 353
    functionName: nl::Weave::SecuritySupport::WeaveKeyExportClientNative::setAllowSHA1DeviceCertificates
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::JNIUtils::ThrowError
    - VerifyOrExit
    - WeaveStandAloneKeyExportClient*::AllowSHA1DeviceCerts
    linkageType: ''
    returnType: void
    signature: WeaveKeyExportClientNative::setAllowSHA1DeviceCertificates(JNIEnv *env,
      jclass cls, jlong nativeClientPtr, jboolean val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JavaVM*::GetEnv
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveSecuritySupport.cpp:98,1
    - Dst: nl::Weave::JNIUtils::Init
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveSecuritySupport.cpp:101,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveSecuritySupport.cpp:102,1
    - Dst: nl::Weave::JNIUtils::RegisterLibraryMethods
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveSecuritySupport.cpp:105,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveSecuritySupport.cpp:106,1
    - Dst: nl::Weave::SecuritySupport::JNI_OnUnload
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveSecuritySupport.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - jvm
    - reserved
    argTypes:
    - JavaVM*
    - void*
    constantsTouched: []
    func_position:
      end: 115
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 115
    functionName: nl::Weave::SecuritySupport::JNI_OnLoad
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveSecuritySupport.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::JNIUtils::Init
    - nl::Weave::SecuritySupport::JNI_OnUnload
    - SuccessOrExit
    - JavaVM*::GetEnv
    - nl::Weave::JNIUtils::RegisterLibraryMethods
    linkageType: ''
    returnType: jint
    signature: JNI_OnLoad(JavaVM *jvm, void *reserved)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JavaVM*::GetEnv
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveSecuritySupport.cpp:122,1
    - Dst: nl::Weave::JNIUtils::Shutdown
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveSecuritySupport.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - jvm
    - reserved
    argTypes:
    - JavaVM*
    - void*
    constantsTouched: []
    func_position:
      end: 126
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 126
    functionName: nl::Weave::SecuritySupport::JNI_OnUnload
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveSecuritySupport.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::JNIUtils::Shutdown
    - JavaVM*::GetEnv
    linkageType: ''
    returnType: void
    signature: JNI_OnUnload(JavaVM *jvm, void *reserved)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - cls
    argTypes:
    - JNIEnv*
    - jclass
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: nl::Weave::SecuritySupport::WeaveSecuritySupport::getLibVersion
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveSecuritySupport.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: jint
    signature: WeaveSecuritySupport::getLibVersion(JNIEnv *env, jclass cls)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aKey
    - aValue
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: nl::Weave::Platform::PersistedStorage::Read
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveSecuritySupport.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Read(const char *aKey, uint32_t &aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aKey
    - aValue
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: nl::Weave::Platform::PersistedStorage::Write
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveSecuritySupport.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Write(const char *aKey, uint32_t aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:74,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:76,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:77,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:79,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:80,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:82,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:83,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:85,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:86,1
    - Dst: malloc
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:95,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:96,1
    - Dst: SimulateDeviceKeyExport
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:98,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:104,1
    - Dst: nl::Weave::JNIUtils::N2J_ByteArray
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:106,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:107,1
    - Dst: JNIEnv*::NewObjectArray
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:109,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:110,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:112,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:113,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:115,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:117,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:122,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:126,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:130,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:134,1
    - Dst: free
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:138,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp:142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 44
    argCount: 6
    argNames:
    - env
    - cls
    - deviceCert
    - devicePrivKey
    - trustRootCert
    - keyExportReq
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    - jbyteArray
    - jbyteArray
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 145
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 145
    functionName: nl::Weave::SecuritySupport::WeaveKeyExportSupportNative::simulateDeviceKeyExport
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::NewStringUTF
    - JNIEnv*::SetObjectArrayElement
    - JNIEnv*::ReleaseByteArrayElements
    - JNIEnv*::GetByteArrayElements
    - VerifyOrExit
    - free
    - nl::Weave::JNIUtils::N2J_ByteArray
    - SimulateDeviceKeyExport
    - SuccessOrExit
    - JNIEnv*::NewObjectArray
    - malloc
    - nl::Weave::JNIUtils::ThrowError
    - JNIEnv*::GetArrayLength
    linkageType: ''
    returnType: jobjectArray
    signature: WeaveKeyExportSupportNative::simulateDeviceKeyExport(JNIEnv *env, jclass
      cls, jbyteArray deviceCert, jbyteArray devicePrivKey, jbyteArray trustRootCert,
      jbyteArray keyExportReq)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:58,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:60,1
    - Dst: JNIEnv*::GetStringUTFLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:61,1
    - Dst: VerifyPairingCode
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:63,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:70,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - env
    - cls
    - pairingCodeJStr
    argTypes:
    - JNIEnv*
    - jclass
    - jstring
    constantsTouched: []
    func_position:
      end: 77
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 77
    functionName: nl::Weave::SecuritySupport::PairingCodeSupport::isValidPairingCode
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - JNIEnv*::GetStringUTFLength
    - VerifyPairingCode
    - VerifyOrExit
    - JNIEnv*::ReleaseStringUTFChars
    - nl::Weave::JNIUtils::ThrowError
    linkageType: ''
    returnType: jboolean
    signature: PairingCodeSupport::isValidPairingCode(JNIEnv * env, jclass cls, jstring
      pairingCodeJStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:87,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:89,1
    - Dst: JNIEnv*::GetStringUTFLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:90,1
    - Dst: strdup
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:92,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:93,1
    - Dst: NormalizePairingCode
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:95,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:98,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:99,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:104,1
    - Dst: free
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:108,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - env
    - cls
    - pairingCodeJStr
    argTypes:
    - JNIEnv*
    - jclass
    - jstring
    constantsTouched: []
    func_position:
      end: 115
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 115
    functionName: nl::Weave::SecuritySupport::PairingCodeSupport::normalizePairingCode
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - JNIEnv*::GetStringUTFLength
    - strdup
    - VerifyOrExit
    - free
    - JNIEnv*::ReleaseStringUTFChars
    - NormalizePairingCode
    - nl::Weave::JNIUtils::ThrowError
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: PairingCodeSupport::normalizePairingCode(JNIEnv * env, jclass cls,
      jstring pairingCodeJStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:124,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:126,1
    - Dst: JNIEnv*::GetStringUTFLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:127,1
    - Dst: Verhoeff32::ComputeCheckChar
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:129,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:130,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:135,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - env
    - cls
    - valJStr
    argTypes:
    - JNIEnv*
    - jclass
    - jstring
    constantsTouched: []
    func_position:
      end: 142
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 142
    functionName: nl::Weave::SecuritySupport::PairingCodeSupport::computeCheckChar
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - JNIEnv*::GetStringUTFLength
    - Verhoeff32::ComputeCheckChar
    - VerifyOrExit
    - JNIEnv*::ReleaseStringUTFChars
    - nl::Weave::JNIUtils::ThrowError
    linkageType: ''
    returnType: jchar
    signature: PairingCodeSupport::computeCheckChar(JNIEnv * env, jclass cls, jstring
      valJStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:152,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:154,1
    - Dst: JNIEnv*::GetStringUTFLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:155,1
    - Dst: malloc
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:157,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:158,1
    - Dst: memcpy
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:160,1
    - Dst: Verhoeff32::ComputeCheckChar
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:162,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:163,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:166,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:167,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:172,1
    - Dst: free
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:176,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - env
    - cls
    - valJStr
    argTypes:
    - JNIEnv*
    - jclass
    - jstring
    constantsTouched: []
    func_position:
      end: 183
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 183
    functionName: nl::Weave::SecuritySupport::PairingCodeSupport::addCheckChar
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - JNIEnv*::GetStringUTFLength
    - Verhoeff32::ComputeCheckChar
    - VerifyOrExit
    - free
    - memcpy
    - JNIEnv*::ReleaseStringUTFChars
    - malloc
    - nl::Weave::JNIUtils::ThrowError
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: PairingCodeSupport::addCheckChar(JNIEnv * env, jclass cls, jstring
      valJStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:191,1
    - Dst: malloc
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:193,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:194,1
    - Dst: IntToPairingCode
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:196,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:197,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:200,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:201,1
    - Dst: free
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:206,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - env
    - cls
    - val
    - pairingCodeLen
    argTypes:
    - JNIEnv*
    - jclass
    - jlong
    - jint
    constantsTouched: []
    func_position:
      end: 213
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 213
    functionName: nl::Weave::SecuritySupport::PairingCodeSupport::intToPairingCode
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp
    functionUses: 0
    functionsReached:
    - IntToPairingCode
    - VerifyOrExit
    - free
    - SuccessOrExit
    - malloc
    - nl::Weave::JNIUtils::ThrowError
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: PairingCodeSupport::intToPairingCode(JNIEnv * env, jclass cls, jlong
      val, jint pairingCodeLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:222,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:224,1
    - Dst: JNIEnv*::GetStringUTFLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:225,1
    - Dst: PairingCodeToInt
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:227,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:228,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:233,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - env
    - cls
    - pairingCodeJStr
    argTypes:
    - JNIEnv*
    - jclass
    - jstring
    constantsTouched: []
    func_position:
      end: 240
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 240
    functionName: nl::Weave::SecuritySupport::PairingCodeSupport::pairingCodeToInt
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - JNIEnv*::GetStringUTFLength
    - PairingCodeToInt
    - VerifyOrExit
    - SuccessOrExit
    - JNIEnv*::ReleaseStringUTFChars
    - nl::Weave::JNIUtils::ThrowError
    linkageType: ''
    returnType: jlong
    signature: PairingCodeSupport::pairingCodeToInt(JNIEnv * env, jclass cls, jstring
      pairingCodeJStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsValidPairingCodeChar
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - env
    - cls
    - ch
    argTypes:
    - JNIEnv*
    - jclass
    - jchar
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: nl::Weave::SecuritySupport::PairingCodeSupport::isValidPairingCodeChar
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp
    functionUses: 0
    functionsReached:
    - IsValidPairingCodeChar
    linkageType: ''
    returnType: jboolean
    signature: PairingCodeSupport::isValidPairingCodeChar(JNIEnv * env, jclass cls,
      jchar ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:253,1
    - Dst: malloc
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:255,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:256,1
    - Dst: GeneratePairingCode
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:258,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:259,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:262,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:263,1
    - Dst: free
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:268,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp:272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - env
    - cls
    - pairingCodeLen
    argTypes:
    - JNIEnv*
    - jclass
    - jint
    constantsTouched: []
    func_position:
      end: 275
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 275
    functionName: nl::Weave::SecuritySupport::PairingCodeSupport::generatePairingCode
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - GeneratePairingCode
    - free
    - SuccessOrExit
    - malloc
    - nl::Weave::JNIUtils::ThrowError
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: PairingCodeSupport::generatePairingCode(JNIEnv * env, jclass cls, jint
      pairingCodeLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:62,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:64,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:65,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:67,1
    - Dst: malloc
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:70,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:71,1
    - Dst: ConvertWeaveCertToX509Cert
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:73,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:74,1
    - Dst: nl::Weave::JNIUtils::N2J_ByteArray
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:76,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:77,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:82,1
    - Dst: free
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:87,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:92,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 5
    argNames:
    - env
    - cls
    - certBuf
    - offset
    - len
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 96
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 96
    functionName: nl::Weave::SecuritySupport::WeaveCertificateSupport::weaveCertificateToX509
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::ReleaseByteArrayElements
    - JNIEnv*::GetByteArrayElements
    - ConvertWeaveCertToX509Cert
    - VerifyOrExit
    - free
    - nl::Weave::JNIUtils::N2J_ByteArray
    - SuccessOrExit
    - malloc
    - nl::Weave::JNIUtils::ThrowError
    - JNIEnv*::GetArrayLength
    linkageType: ''
    returnType: jbyteArray
    signature: WeaveCertificateSupport::weaveCertificateToX509(JNIEnv *env, jclass
      cls, jbyteArray certBuf, jint offset, jint len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:108,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:110,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:111,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:113,1
    - Dst: malloc
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:116,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:117,1
    - Dst: ConvertX509CertToWeaveCert
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:119,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:120,1
    - Dst: nl::Weave::JNIUtils::N2J_ByteArray
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:122,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:123,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:128,1
    - Dst: free
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:133,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp:138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 5
    argNames:
    - env
    - cls
    - certBuf
    - offset
    - len
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 142
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 142
    functionName: nl::Weave::SecuritySupport::WeaveCertificateSupport::x509CertificateToWeave
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::JNIUtils::ThrowError
    - JNIEnv*::ReleaseByteArrayElements
    - JNIEnv*::GetByteArrayElements
    - VerifyOrExit
    - free
    - nl::Weave::JNIUtils::N2J_ByteArray
    - SuccessOrExit
    - malloc
    - ConvertX509CertToWeaveCert
    - JNIEnv*::GetArrayLength
    linkageType: ''
    returnType: jbyteArray
    signature: WeaveCertificateSupport::x509CertificateToWeave(JNIEnv *env, jclass
      cls, jbyteArray certBuf, jint offset, jint len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:64,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:66,1
    - Dst: JNIEnv*::GetStringUTFLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:67,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:71,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:72,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:73,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:77,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:78,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:79,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:83,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:84,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:85,1
    - Dst: EncryptPasscode
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:88,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:91,1
    - Dst: nl::Weave::JNIUtils::N2J_ByteArray
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:93,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:94,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:99,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:103,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:107,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:111,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:116,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 9
    argNames:
    - env
    - cls
    - config
    - keyId
    - nonce
    - passcode
    - encKey
    - authKey
    - fingerprintKey
    argTypes:
    - JNIEnv*
    - jclass
    - jint
    - jint
    - jlong
    - jstring
    - jbyteArray
    - jbyteArray
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 120
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 120
    functionName: nl::Weave::SecuritySupport::PasscodeEncryptionSupport::encryptPasscode
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - JNIEnv*::GetStringUTFLength
    - JNIEnv*::ReleaseByteArrayElements
    - JNIEnv*::GetByteArrayElements
    - VerifyOrExit
    - nl::Weave::JNIUtils::N2J_ByteArray
    - EncryptPasscode
    - SuccessOrExit
    - JNIEnv*::ReleaseStringUTFChars
    - nl::Weave::JNIUtils::ThrowError
    - JNIEnv*::GetArrayLength
    linkageType: ''
    returnType: jbyteArray
    signature: "PasscodeEncryptionSupport::encryptPasscode(JNIEnv *env, jclass cls,
      jint config, jint keyId, jlong nonce, jstring passcode, jbyteArray encKey,\n
      \                                                     jbyteArray authKey, jbyteArray
      fingerprintKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:138,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:140,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:141,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:145,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:146,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:147,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:151,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:152,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:153,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:157,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:158,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:159,1
    - Dst: DecryptPasscode
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:162,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:163,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:166,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:167,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:172,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:176,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:180,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:184,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:189,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 6
    argNames:
    - env
    - cls
    - encPasscode
    - encKey
    - authKey
    - fingerprintKey
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    - jbyteArray
    - jbyteArray
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 193
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 193
    functionName: nl::Weave::SecuritySupport::PasscodeEncryptionSupport::decryptPasscode
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::NewStringUTF
    - JNIEnv*::ReleaseByteArrayElements
    - JNIEnv*::GetByteArrayElements
    - VerifyOrExit
    - DecryptPasscode
    - SuccessOrExit
    - nl::Weave::JNIUtils::ThrowError
    - JNIEnv*::GetArrayLength
    linkageType: ''
    returnType: jstring
    signature: "PasscodeEncryptionSupport::decryptPasscode(JNIEnv *env, jclass cls,
      jbyteArray encPasscode, jbyteArray encKey, jbyteArray authKey,\n                                                   jbyteArray
      fingerprintKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsSupportedPasscodeEncryptionConfig
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - env
    - cls
    - config
    argTypes:
    - JNIEnv*
    - jclass
    - jint
    constantsTouched: []
    func_position:
      end: 202
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 202
    functionName: nl::Weave::SecuritySupport::PasscodeEncryptionSupport::isSupportedPasscodeEncryptionConfig
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp
    functionUses: 0
    functionsReached:
    - IsSupportedPasscodeEncryptionConfig
    linkageType: ''
    returnType: jboolean
    signature: PasscodeEncryptionSupport::isSupportedPasscodeEncryptionConfig(JNIEnv
      *env, jclass cls, jint config)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:211,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:213,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:214,1
    - Dst: GetEncryptedPasscodeConfig
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:216,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:217,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:222,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - env
    - cls
    - encryptedPasscode
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 231
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 231
    functionName: nl::Weave::SecuritySupport::PasscodeEncryptionSupport::getEncryptedPasscodeConfig
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::ReleaseByteArrayElements
    - JNIEnv*::GetArrayLength
    - JNIEnv*::GetByteArrayElements
    - VerifyOrExit
    - SuccessOrExit
    - nl::Weave::JNIUtils::ThrowError
    - GetEncryptedPasscodeConfig
    linkageType: ''
    returnType: jint
    signature: PasscodeEncryptionSupport::getEncryptedPasscodeConfig(JNIEnv *env,
      jclass cls, jbyteArray encryptedPasscode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:240,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:242,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:243,1
    - Dst: GetEncryptedPasscodeKeyId
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:245,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:246,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:251,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - env
    - cls
    - encryptedPasscode
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 260
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 260
    functionName: nl::Weave::SecuritySupport::PasscodeEncryptionSupport::getEncryptedPasscodeKeyId
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::ReleaseByteArrayElements
    - GetEncryptedPasscodeKeyId
    - JNIEnv*::GetByteArrayElements
    - VerifyOrExit
    - SuccessOrExit
    - nl::Weave::JNIUtils::ThrowError
    - JNIEnv*::GetArrayLength
    linkageType: ''
    returnType: jint
    signature: PasscodeEncryptionSupport::getEncryptedPasscodeKeyId(JNIEnv *env, jclass
      cls, jbyteArray encryptedPasscode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:269,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:271,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:272,1
    - Dst: GetEncryptedPasscodeNonce
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:275,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:276,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:281,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - env
    - cls
    - encryptedPasscode
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 290
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 290
    functionName: nl::Weave::SecuritySupport::PasscodeEncryptionSupport::getEncryptedPasscodeNonce
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::ReleaseByteArrayElements
    - JNIEnv*::GetByteArrayElements
    - VerifyOrExit
    - GetEncryptedPasscodeNonce
    - SuccessOrExit
    - nl::Weave::JNIUtils::ThrowError
    - JNIEnv*::GetArrayLength
    linkageType: ''
    returnType: jlong
    signature: PasscodeEncryptionSupport::getEncryptedPasscodeNonce(JNIEnv *env, jclass
      cls, jbyteArray encryptedPasscode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:301,1
    - Dst: JNIEnv*::GetByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:303,1
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:304,1
    - Dst: GetEncryptedPasscodeFingerprint
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:307,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:309,1
    - Dst: nl::Weave::JNIUtils::N2J_ByteArray
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:311,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:312,1
    - Dst: JNIEnv*::ReleaseByteArrayElements
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:317,1
    - Dst: nl::Weave::JNIUtils::ThrowError
      Src: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - env
    - cls
    - encryptedPasscode
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 326
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 326
    functionName: nl::Weave::SecuritySupport::PasscodeEncryptionSupport::getEncryptedPasscodeFingerprint
    functionSourceFile: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::ReleaseByteArrayElements
    - JNIEnv*::GetByteArrayElements
    - VerifyOrExit
    - nl::Weave::JNIUtils::N2J_ByteArray
    - SuccessOrExit
    - GetEncryptedPasscodeFingerprint
    - nl::Weave::JNIUtils::ThrowError
    - JNIEnv*::GetArrayLength
    linkageType: ''
    returnType: jbyteArray
    signature: PasscodeEncryptionSupport::getEncryptedPasscodeFingerprint(JNIEnv *env,
      jclass cls, jbyteArray encryptedPasscode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:39,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:39,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:41,1
    - Dst: strstr
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:44,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:45,1
    - Dst: strtoul
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:49,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:50,1
    - Dst: strtoul
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:52,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - dateStr
    - ' year'
    - ' month'
    - ' dayOfMonth'
    argTypes:
    - char*
    - uint16_t
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 57
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 57
    functionName: nl::Weave::DeviceLayer::ParseCompilerDateStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp
    functionUses: 0
    functionsReached:
    - strstr
    - VerifyOrExit
    - strlen
    - memcpy
    - strtoul
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ParseCompilerDateStr(const char * dateStr, uint16_t & year, uint8_t
      & month, uint8_t & dayOfMonth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:64,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:64,1
    - Dst: strtoul
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:66,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:67,1
    - Dst: strtoul
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:69,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:70,1
    - Dst: strtoul
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:72,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - timeStr
    - ' hour'
    - ' minute'
    - ' second'
    argTypes:
    - char*
    - uint8_t
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 77
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 77
    functionName: nl::Weave::DeviceLayer::Parse24HourTimeStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - strtoul
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Parse24HourTimeStr(const char * timeStr, uint8_t & hour, uint8_t &
      minute, uint8_t & second)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsIPv6LinkLocal
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:81,1
    - Dst: IsIPv6ULA
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:85,1
    - Dst: GlobalId
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:87,1
    - Dst: nl::Weave::WeaveFabricIdToIPv6GlobalId
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:87,1
    - Dst: Subnet
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:89,1
    - Dst: ntohl
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - ' ipAddr'
    argTypes:
    - IPAddress
    constantsTouched: []
    func_position:
      end: 117
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 117
    functionName: nl::Weave::DeviceLayer::CharacterizeIPv6Address
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp
    functionUses: 0
    functionsReached:
    - GlobalId
    - Subnet
    - IsIPv6ULA
    - IsIPv6LinkLocal
    - nl::Weave::WeaveFabricIdToIPv6GlobalId
    - ntohl
    linkageType: ''
    returnType: char
    signature: '* CharacterizeIPv6Address(const IPAddress & ipAddr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddr::IsIPv6ULA
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:121,1
    - Dst: IPAddr::GlobalId
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:124,1
    - Dst: nl::Weave::WeaveFabricIdToIPv6GlobalId
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:124,1
    - Dst: IPAddr::Subnet
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:132,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - ' inPrefix'
    argTypes:
    - Inet::IPPrefix
    constantsTouched: []
    func_position:
      end: 153
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 153
    functionName: nl::Weave::DeviceLayer::CharacterizeIPv6Prefix
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp
    functionUses: 0
    functionsReached:
    - IPAddr::Subnet
    - IPAddr::IsIPv6ULA
    - IPAddr::GlobalId
    - nl::Weave::WeaveFabricIdToIPv6GlobalId
    linkageType: ''
    returnType: char
    signature: '* CharacterizeIPv6Prefix(const Inet::IPPrefix & inPrefix)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterErrorFormatter
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 167
    functionName: nl::Weave::DeviceLayer::RegisterDeviceLayerErrorFormatter
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp
    functionUses: 0
    functionsReached:
    - RegisterErrorFormatter
    linkageType: ''
    returnType: void
    signature: RegisterDeviceLayerErrorFormatter(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FormatError
      Src: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp:198,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - buf
    - bufSize
    - err
    argTypes:
    - char*
    - uint16_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 201
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 201
    functionName: nl::Weave::DeviceLayer::FormatDeviceLayerError
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp
    functionUses: 0
    functionsReached:
    - FormatError
    linkageType: ''
    returnType: bool
    signature: FormatDeviceLayerError(char * buf, uint16_t bufSize, int32_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelAgent::WeaveTunnelAgent
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceTunnelAgent.cpp:43,1
    - Dst: ParseHostAndPort
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceTunnelAgent.cpp:53,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceTunnelAgent.cpp:53,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceTunnelAgent.cpp:55,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceTunnelAgent.cpp:57,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceTunnelAgent.cpp:58,1
    - Dst: ESP_LOGW
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceTunnelAgent.cpp:66,1
    - Dst: Init
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceTunnelAgent.cpp:68,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceTunnelAgent.cpp:70,1
    - Dst: SetDestination
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceTunnelAgent.cpp:73,1
    - Dst: Init
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceTunnelAgent.cpp:82,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceTunnelAgent.cpp:84,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceTunnelAgent.cpp:91,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceTunnelAgent.cpp:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 94
    functionName: nl::Weave::DeviceLayer::Internal::InitServiceTunnelAgent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ServiceTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - nl::Inet::IPAddress::FromString
    - ExitNow
    - strlen
    - Init
    - WeaveTunnelAgent::WeaveTunnelAgent
    - ErrorStr
    - SuccessOrExit
    - ParseHostAndPort
    - SetDestination
    - ESP_LOGW
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: InitServiceTunnelAgent()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: nl::Weave::DeviceLayer::Internal::DeviceIdentityTraitDataSource::DeviceIdentityTraitDataSource
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DeviceIdentityTraitDataSource::DeviceIdentityTraitDataSource(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:53,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:54,1
    - Dst: Put
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:55,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:56,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:63,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:64,1
    - Dst: Put
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:65,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:66,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:73,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:74,1
    - Dst: Put
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:75,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:76,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:84,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:85,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:86,1
    - Dst: PutString
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:87,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:88,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:96,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:97,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:98,1
    - Dst: PutString
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:99,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:100,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:112,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:113,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:114,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:115,1
    - Dst: PutString
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:116,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:117,1
    - Dst: Put
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:122,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:123,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:127,1
    - Dst: Put
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:129,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp:130,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 64
    argCount: 3
    argNames:
    - aLeafHandle
    - aTagToWrite
    - ' aWriter'
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 140
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 140
    functionName: nl::Weave::DeviceLayer::Internal::DeviceIdentityTraitDataSource::GetLeafData
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp
    functionUses: 0
    functionsReached:
    - PutString
    - ConfigurationMgr
    - VerifyOrExit
    - snprintf
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceIdentityTraitDataSource::GetLeafData(PropertyPathHandle aLeafHandle,
      uint64_t aTagToWrite, TLVWriter & aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TunEndPoint::Init
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:38,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:39,1
    - Dst: SetDelegate
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 46
    functionName: nl::Weave::DeviceLayer::Internal::FabricProvisioningServer::Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TunEndPoint::Init
    - SetDelegate
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: FabricProvisioningServer::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:52,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:53,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:55,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:61,1
    - Dst: SendSuccessResponse
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:64,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 69
    functionName: nl::Weave::DeviceLayer::Internal::FabricProvisioningServer::HandleCreateFabric
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - ConfigurationMgr
    - WeaveLogProgress
    - SendSuccessResponse
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: FabricProvisioningServer::HandleCreateFabric(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:75,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:76,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:78,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:84,1
    - Dst: SendSuccessResponse
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:87,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 92
    functionName: nl::Weave::DeviceLayer::Internal::FabricProvisioningServer::HandleJoinExistingFabric
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - ConfigurationMgr
    - WeaveLogProgress
    - SendSuccessResponse
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: FabricProvisioningServer::HandleJoinExistingFabric(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:98,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:100,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:101,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:107,1
    - Dst: SendSuccessResponse
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:110,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 115
    functionName: nl::Weave::DeviceLayer::Internal::FabricProvisioningServer::HandleLeaveFabric
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - ConfigurationMgr
    - WeaveLogProgress
    - SendSuccessResponse
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: FabricProvisioningServer::HandleLeaveFabric(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:121,1
    - Dst: ClearFabricState
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:124,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:127,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:128,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 141
    functionName: nl::Weave::DeviceLayer::Internal::FabricProvisioningServer::LeaveFabric
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - ConfigurationMgr
    - ClearFabricState
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: FabricProvisioningServer::LeaveFabric(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: nl::Weave::DeviceLayer::Internal::FabricProvisioningServer::HandleGetFabricConfig
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: FabricProvisioningServer::HandleGetFabricConfig(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:151,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: nl::Weave::DeviceLayer::Internal::FabricProvisioningServer::IsPairedToAccount
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - ConfigurationMgr
    linkageType: ''
    returnType: bool
    signature: FabricProvisioningServer::IsPairedToAccount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: nl::Weave::DeviceLayer::Internal::FabricProvisioningServer::OnPlatformEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: FabricProvisioningServer::OnPlatformEvent(const WeaveDeviceEvent *
      event)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TraitDataHandle
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: TraitCatalogImpl::HandleIndex
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: HandleIndex(TraitDataHandle handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TraitDataHandle
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: TraitCatalogImpl::HandleRevision
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: HandleRevision(TraitDataHandle handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - revision
    argTypes:
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: TraitCatalogImpl::MakeTraitDataHandle
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TraitDataHandle
    signature: MakeTraitDataHandle(uint8_t index, uint8_t revision)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::TraitManager::DriveServiceSubscriptionState
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - ServiceSubscriptionMode
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: nl::Weave::DeviceLayer::TraitManager::SetServiceSubscriptionMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::TraitManager::DriveServiceSubscriptionState
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitManager::SetServiceSubscriptionMode(ServiceSubscriptionMode val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: nl::Weave::DeviceLayer::TraitManager::GetServiceSubscribeConfirmIntervalMS
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: TraitManager::GetServiceSubscribeConfirmIntervalMS(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: nl::Weave::DeviceLayer::TraitManager::SetServiceSubscribeConfirmIntervalMS
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitManager::SetServiceSubscribeConfirmIntervalMS(uint32_t val) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' resId'
    - ' instanceId'
    - basePathHandle
    - dataSink
    argTypes:
    - ResourceIdentifier
    - uint64_t
    - PropertyPathHandle
    - TraitDataSink*
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: nl::Weave::DeviceLayer::TraitManager::SubscribeServiceTrait
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached:
    - Add
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TraitManager::SubscribeServiceTrait(const ResourceIdentifier & resId,
      const uint64_t & instanceId,\n        PropertyPathHandle basePathHandle, TraitDataSink
      * dataSink)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Remove
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dataSink
    argTypes:
    - TraitDataSink*
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: nl::Weave::DeviceLayer::TraitManager::UnsubscribeServiceTrait
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached:
    - Remove
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitManager::UnsubscribeServiceTrait(TraitDataSink * dataSink)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' instanceId'
    - dataSource
    argTypes:
    - uint64_t
    - TraitDataSource*
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: nl::Weave::DeviceLayer::TraitManager::PublishTrait
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached:
    - Add
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitManager::PublishTrait(const uint64_t & instanceId, TraitDataSource
      * dataSource)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' resId'
    - ' instanceId'
    - dataSource
    argTypes:
    - ResourceIdentifier
    - uint64_t
    - TraitDataSource*
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: nl::Weave::DeviceLayer::TraitManager::PublishTrait
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached:
    - Add
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitManager::PublishTrait(const ResourceIdentifier & resId, const
      uint64_t & instanceId, TraitDataSource * dataSource)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Remove
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dataSource
    argTypes:
    - TraitDataSource*
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: nl::Weave::DeviceLayer::TraitManager::UnpublishTrait
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached:
    - Remove
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitManager::UnpublishTrait(TraitDataSource * dataSource)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::TraitManager::Init
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:167,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:168,1
    - Dst: NewBinding
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:170,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:171,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:173,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:179,1
    - Dst: Binding*::Release
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:181,1
    - Dst: EnableResubscribe
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:183,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:185,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:186,1
    - Dst: SetGroupKeyStore
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:188,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:188,1
    - Dst: Add
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:193,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:194,1
    - Dst: Add
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:195,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 206
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 206
    functionName: nl::Weave::DeviceLayer::TraitManager::Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 1
    functionsReached:
    - NewBinding
    - Binding*::Release
    - ConfigurationMgr
    - Add
    - VerifyOrExit
    - SubscriptionEngine::GetInstance
    - SuccessOrExit
    - EnableResubscribe
    - SetGroupKeyStore
    - nl::Weave::DeviceLayer::TraitManager::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitManager::Init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::TraitManager::DriveServiceSubscriptionState
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 216
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 216
    functionName: nl::Weave::DeviceLayer::TraitManager::OnPlatformEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::TraitManager::DriveServiceSubscriptionState
    linkageType: ''
    returnType: void
    signature: TraitManager::OnPlatformEvent(const WeaveDeviceEvent* event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:226,1
    - Dst: ConnectivityMgr
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:229,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:232,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:237,1
    - Dst: AbortSubscription
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:244,1
    - Dst: AbortSubscription
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:247,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:254,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:256,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:260,1
    - Dst: ConnectivityMgr
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:268,1
    - Dst: IsInProgressOrEstablished
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:269,1
    - Dst: ResetResubscribe
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:271,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - serviceConnectivityChanged
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 273
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 273
    functionName: nl::Weave::DeviceLayer::TraitManager::DriveServiceSubscriptionState
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 2
    functionsReached:
    - PlatformMgr
    - AbortSubscription
    - IsInProgressOrEstablished
    - ConnectivityMgr
    - ResetResubscribe
    - ClearFlag
    - GetFlag
    - SetFlag
    linkageType: ''
    returnType: void
    signature: TraitManager::DriveServiceSubscriptionState(bool serviceConnectivityChanged)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mServiceSubClient::EnableResubscribe
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:278,1
    - Dst: mServiceSubClient::InitiateSubscription
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - intptr_t
    constantsTouched: []
    func_position:
      end: 284
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 284
    functionName: nl::Weave::DeviceLayer::TraitManager::ActivateServiceSubscription
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached:
    - mServiceSubClient::InitiateSubscription
    - mServiceSubClient::EnableResubscribe
    linkageType: ''
    returnType: void
    signature: TraitManager::ActivateServiceSubscription(intptr_t arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::DefaultEventHandler
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - appState
    - eventType
    - ' inParam'
    - ' outParam'
    argTypes:
    - void*
    - SubscriptionEngine::EventID
    - SubscriptionEngine::InEventParam
    - SubscriptionEngine::OutEventParam
    constantsTouched: []
    func_position:
      end: 306
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 306
    functionName: nl::Weave::DeviceLayer::TraitManager::HandleSubscriptionEngineEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionEngine::DefaultEventHandler
    linkageType: ''
    returnType: void
    signature: "TraitManager::HandleSubscriptionEngineEvent(void * appState, SubscriptionEngine::EventID
      eventType,\n        const SubscriptionEngine::InEventParam & inParam, SubscriptionEngine::OutEventParam
      & outParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Binding*::BeginConfiguration
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:319,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:327,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:327,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:331,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:331,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:335,1
    - Dst: nl::Weave::Binding::DefaultEventHandler
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:339,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - appState
    - eventType
    - ' inParam'
    - ' outParam'
    argTypes:
    - void*
    - ::nl::Weave::Binding::EventType
    - ::nl::Weave::Binding::InEventParam
    - ::nl::Weave::Binding::OutEventParam
    constantsTouched: []
    func_position:
      end: 341
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 341
    functionName: nl::Weave::DeviceLayer::TraitManager::HandleServiceBindingEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - ErrorStr
    - Binding*::BeginConfiguration
    - nl::Weave::Binding::DefaultEventHandler
    linkageType: ''
    returnType: void
    signature: "TraitManager::HandleServiceBindingEvent(void * appState, ::nl::Weave::Binding::EventType
      eventType,\n    const ::nl::Weave::Binding::InEventParam & inParam, ::nl::Weave::Binding::OutEventParam
      & outParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitPath::TraitPath
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:359,1
    - Dst: PrepareSubscriptionPathList
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:362,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:363,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:374,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:379,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:384,1
    - Dst: StatusReportStr
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:386,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:387,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:390,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:392,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:396,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::DefaultEventHandler
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:401,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 4
    argNames:
    - appState
    - eventType
    - ' inParam'
    - ' outParam'
    argTypes:
    - void*
    - SubscriptionClient::EventID
    - SubscriptionClient::InEventParam
    - SubscriptionClient::OutEventParam
    constantsTouched: []
    func_position:
      end: 407
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 407
    functionName: nl::Weave::DeviceLayer::TraitManager::HandleOutboundServiceSubscriptionEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - TraitPath::TraitPath
    - nl::Weave::Profiles::SubscriptionClient::DefaultEventHandler
    - WeaveLogProgress
    - ClearFlag
    - GetFlag
    - PrepareSubscriptionPathList
    - SuccessOrExit
    - ErrorStr
    - StatusReportStr
    linkageType: ''
    returnType: void
    signature: "TraitManager::HandleOutboundServiceSubscriptionEvent(void * appState,
      SubscriptionClient::EventID eventType,\n        const SubscriptionClient::InEventParam
      & inParam, SubscriptionClient::OutEventParam & outParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:418,1
    - Dst: nl::Weave::WeaveConnection::GetPeerDescription
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:428,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:429,1
    - Dst: mSubscribeRequestParsed::mHandler::AcceptSubscribeRequest
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:437,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:443,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:446,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:453,1
    - Dst: mSubscriptionEstablished::mHandler::GetSubscriptionId
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:461,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:462,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:478,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:484,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:486,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:490,1
    - Dst: mSubscriptionTerminated::mHandler::GetSubscriptionId
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:498,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:499,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::DefaultEventHandler
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:507,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 4
    argNames:
    - aAppState
    - eventType
    - ' inParam'
    - ' outParam'
    argTypes:
    - void*
    - SubscriptionHandler::EventID
    - SubscriptionHandler::InEventParam
    - SubscriptionHandler::OutEventParam
    constantsTouched: []
    func_position:
      end: 510
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 510
    functionName: nl::Weave::DeviceLayer::TraitManager::HandleInboundSubscriptionEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached:
    - mSubscribeRequestParsed::mHandler::AcceptSubscribeRequest
    - PlatformMgr
    - WeaveLogProgress
    - ClearFlag
    - mSubscriptionEstablished::mHandler::GetSubscriptionId
    - GetFlag
    - mSubscriptionTerminated::mHandler::GetSubscriptionId
    - SetFlag
    - nl::Weave::Profiles::SubscriptionHandler::DefaultEventHandler
    - nl::Weave::WeaveConnection::GetPeerDescription
    linkageType: ''
    returnType: void
    signature: "TraitManager::HandleInboundSubscriptionEvent(void * aAppState, SubscriptionHandler::EventID
      eventType,\n        const SubscriptionHandler::InEventParam & inParam, SubscriptionHandler::OutEventParam
      & outParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 524
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 524
    functionName: TraitCatalogImpl<T>::TraitCatalogImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TraitCatalogImpl<T>::TraitCatalogImpl()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 530
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 530
    functionName: TraitCatalogImpl<T>::~TraitCatalogImpl()
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TraitCatalogImpl<T>::~TraitCatalogImpl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Item::GetSchemaEngine
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:554,1
    - Dst: T*::GetSchemaEngine
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:554,1
    - Dst: MakeTraitDataHandle
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:559,1
    - Dst: MakeTraitDataHandle
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:577,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - ' resId'
    - ' instanceId'
    - basePathHandle
    - traitInstance
    - ' traitHandle'
    argTypes:
    - ResourceIdentifier
    - uint64_t
    - PropertyPathHandle
    - T*
    - TraitDataHandle
    constantsTouched: []
    func_position:
      end: 580
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 580
    functionName: TraitCatalogImpl<T>::Add
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached:
    - MakeTraitDataHandle
    - Item::GetSchemaEngine
    - T*::GetSchemaEngine
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TraitCatalogImpl<T>::Add(const ResourceIdentifier & resId, const uint64_t
      & instanceId,\n        PropertyPathHandle basePathHandle, T * traitInstance,
      TraitDataHandle & traitHandle)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - traitInstance
    argTypes:
    - T*
    constantsTouched: []
    func_position:
      end: 595
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 595
    functionName: TraitCatalogImpl<T>::Remove
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitCatalogImpl<T>::Remove(T * traitInstance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:608,1
    - Dst: TraitPath
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:609,1
    - Dst: MakeTraitDataHandle
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:609,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - pathList
    - pathListSize
    - ' pathListLen'
    argTypes:
    - TraitPath*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 616
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 616
    functionName: TraitCatalogImpl<T>::PrepareSubscriptionPathList
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached:
    - MakeTraitDataHandle
    - VerifyOrExit
    - TraitPath
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitCatalogImpl<T>::PrepareSubscriptionPathList(TraitPath * pathList,
      uint16_t pathListSize, uint16_t & pathListLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Path::Parser::Init
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:626,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:627,1
    - Dst: Path::Parser::GetResourceID
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:632,1
    - Dst: FromTLV
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:635,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:636,1
    - Dst: ResourceIdentifier
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:640,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:644,1
    - Dst: Path::Parser::GetProfileID
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:648,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:649,1
    - Dst: Path::Parser::GetInstanceID
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:651,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:654,1
    - Dst: Path::Parser::GetTags
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:657,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:658,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 5
    argNames:
    - ' aReader'
    - ' resourceId'
    - ' profileId'
    - ' aSchemaVersionRange'
    - ' instanceId'
    argTypes:
    - TLV::TLVReader
    - ResourceIdentifier
    - uint32_t
    - SchemaVersionRange
    - uint64_t
    constantsTouched: []
    func_position:
      end: 662
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 662
    functionName: DecodeTraitInstancePath
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached:
    - Path::Parser::GetInstanceID
    - FromTLV
    - ExitNow
    - Path::Parser::Init
    - Path::Parser::GetTags
    - SuccessOrExit
    - Path::Parser::GetResourceID
    - Path::Parser::GetProfileID
    - ResourceIdentifier
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "DecodeTraitInstancePath(TLV::TLVReader & aReader, ResourceIdentifier
      & resourceId, uint32_t & profileId,\n        SchemaVersionRange & aSchemaVersionRange,
      uint64_t & instanceId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecodeTraitInstancePath
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:673,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:674,1
    - Dst: CatalogEntry*::Item::GetSchemaEngine
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:683,1
    - Dst: MakeTraitDataHandle
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:687,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:691,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - ' aReader'
    - ' aHandle'
    - ' aSchemaVersionRange'
    argTypes:
    - TLV::TLVReader
    - TraitDataHandle
    - SchemaVersionRange
    constantsTouched: []
    func_position:
      end: 695
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 695
    functionName: TraitCatalogImpl<T>::AddressToHandle
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached:
    - MakeTraitDataHandle
    - DecodeTraitInstancePath
    - CatalogEntry*::Item::GetSchemaEngine
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TraitCatalogImpl<T>::AddressToHandle(TLV::TLVReader & aReader, TraitDataHandle
      & aHandle,\n        SchemaVersionRange & aSchemaVersionRange) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:703,1
    - Dst: IsValid
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:703,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:705,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:705,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:706,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:712,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:712,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:713,1
    - Dst: Put
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:715,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:716,1
    - Dst: Put
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:721,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:722,1
    - Dst: Put
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:728,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:729,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:732,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:733,1
    - Dst: Put
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:737,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:737,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:738,1
    - Dst: Put
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:743,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:743,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:744,1
    - Dst: ToTLV
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:747,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:748,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:750,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:751,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 5
    argNames:
    - ' writer'
    - ' resourceId'
    - profileId
    - ' schemaVersionRange'
    - ' instanceId'
    argTypes:
    - TLV::TLVWriter
    - ResourceIdentifier
    - uint32_t
    - SchemaVersionRange
    - uint64_t
    constantsTouched: []
    func_position:
      end: 755
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 755
    functionName: EncodeTraitInstancePath
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached:
    - ToTLV
    - StartContainer
    - IsValid
    - VerifyOrExit
    - EndContainer
    - Put
    - SuccessOrExit
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "EncodeTraitInstancePath(TLV::TLVWriter & writer, const ResourceIdentifier
      & resourceId, uint32_t profileId,\n        SchemaVersionRange & schemaVersionRange,
      const uint64_t & instanceId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:767,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:771,1
    - Dst: CatalogEntry*::Item::GetSchemaEngine
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:773,1
    - Dst: EncodeTraitInstancePath
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:775,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - aHandle
    - ' aWriter'
    - ' aSchemaVersionRange'
    argTypes:
    - TraitDataHandle
    - TLV::TLVWriter
    - SchemaVersionRange
    constantsTouched: []
    func_position:
      end: 780
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 780
    functionName: TraitCatalogImpl<T>::HandleToAddress
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached:
    - CatalogEntry*::Item::GetSchemaEngine
    - EncodeTraitInstancePath
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TraitCatalogImpl<T>::HandleToAddress(TraitDataHandle aHandle, TLV::TLVWriter&
      aWriter,\n        SchemaVersionRange& aSchemaVersionRange) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - aHandle
    - aTraitInstance
    argTypes:
    - TraitDataHandle
    - T**
    constantsTouched: []
    func_position:
      end: 795
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 795
    functionName: TraitCatalogImpl<T>::Locate
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitCatalogImpl<T>::Locate(TraitDataHandle aHandle, T ** aTraitInstance)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MakeTraitDataHandle
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - aTraitInstance
    - ' aHandle'
    argTypes:
    - T*
    - TraitDataHandle
    constantsTouched: []
    func_position:
      end: 810
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 810
    functionName: TraitCatalogImpl<T>::Locate
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached:
    - MakeTraitDataHandle
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitCatalogImpl<T>::Locate(T * aTraitInstance, TraitDataHandle & aHandle)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Item::OnEvent
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:819,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - aEvent
    - aContext
    argTypes:
    - uint16_t
    - void*
    constantsTouched: []
    func_position:
      end: 824
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 824
    functionName: TraitCatalogImpl<T>::DispatchEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached:
    - Item::OnEvent
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitCatalogImpl<T>::DispatchEvent(uint16_t aEvent, void * aContext)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aCallback
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:833,1
    - Dst: MakeTraitDataHandle
      Src: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp:833,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - aCallback
    - aContext
    argTypes:
    - IteratorCallback
    - void*
    constantsTouched: []
    func_position:
      end: 836
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 836
    functionName: TraitCatalogImpl<T>::Iterate
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached:
    - MakeTraitDataHandle
    - aCallback
    linkageType: ''
    returnType: void
    signature: TraitCatalogImpl<T>::Iterate(IteratorCallback aCallback, void * aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 846
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 846
    functionName: '* nl::Weave::Profiles::DataManagement::SubscriptionEngine::GetInstance()'
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: nl::Weave::Profiles::DataManagement::SubscriptionEngine
    signature: '* nl::Weave::Profiles::DataManagement::SubscriptionEngine::GetInstance()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:60,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:63,1
    - Dst: nl::Weave::DeviceLayer::TimeSyncManager::DriveTimeSync
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - newMode
    argTypes:
    - TimeSyncMode
    constantsTouched: []
    func_position:
      end: 72
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 72
    functionName: nl::Weave::DeviceLayer::TimeSyncManager::SetMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - nl::Weave::DeviceLayer::TimeSyncManager::DriveTimeSync
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TimeSyncManager::SetMode(TimeSyncMode newMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::TimeSyncManager::DriveTimeSync
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - intervalSec
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: nl::Weave::DeviceLayer::TimeSyncManager::SetSyncInterval
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::TimeSyncManager::DriveTimeSync
    linkageType: ''
    returnType: void
    signature: TimeSyncManager::SetSyncInterval(uint32_t intervalSec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Layer::GetClock_RealTime
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: nl::Weave::DeviceLayer::TimeSyncManager::IsTimeSynchronized
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Layer::GetClock_RealTime
    linkageType: ''
    returnType: bool
    signature: TimeSyncManager::IsTimeSynchronized()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SingleSourceTimeSyncClient::SingleSourceTimeSyncClient
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:95,1
    - Dst: nl::Weave::DeviceLayer::TimeSyncManager::Init
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:97,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:98,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 115
    functionName: nl::Weave::DeviceLayer::TimeSyncManager::Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp
    functionUses: 1
    functionsReached:
    - SuccessOrExit
    - ExitNow
    - nl::Weave::DeviceLayer::TimeSyncManager::Init
    - SingleSourceTimeSyncClient::SingleSourceTimeSyncClient
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TimeSyncManager::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::TimeSyncManager::DriveTimeSync
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 125
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 125
    functionName: nl::Weave::DeviceLayer::TimeSyncManager::OnPlatformEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::TimeSyncManager::DriveTimeSync
    linkageType: ''
    returnType: void
    signature: TimeSyncManager::OnPlatformEvent(const WeaveDeviceEvent * event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicHiRes
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: nl::Weave::DeviceLayer::TimeSyncManager::MarkServiceDirRequestStart
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Layer::GetClock_MonotonicHiRes
    linkageType: ''
    returnType: void
    signature: TimeSyncManager::MarkServiceDirRequestStart()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:143,1
    - Dst: nl::Weave::DeviceLayer::TimeSyncManager::ApplySynchronizedTime
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:152,1
    - Dst: nl::Weave::DeviceLayer::TimeSyncManager::DriveTimeSync
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - serverRealTimeMS
    - serverProcessingTimeMS
    argTypes:
    - uint64_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 158
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 158
    functionName: nl::Weave::DeviceLayer::TimeSyncManager::ProcessServiceDirTimeData
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - nl::Weave::DeviceLayer::TimeSyncManager::ApplySynchronizedTime
    - nl::Weave::DeviceLayer::TimeSyncManager::DriveTimeSync
    linkageType: ''
    returnType: void
    signature: TimeSyncManager::ProcessServiceDirTimeData(uint64_t serverRealTimeMS,
      uint32_t serverProcessingTimeMS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::TimeSyncManager::CancelTimeSync
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:169,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:175,1
    - Dst: ConnectivityMgr
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:176,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:193,1
    - Dst: NewBinding
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:198,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:199,1
    - Dst: BeginConfiguration
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:200,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:206,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:212,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:218,1
    - Dst: nl::Weave::DeviceLayer::TimeSyncManager::TimeSyncFailed
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:223,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 225
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 225
    functionName: nl::Weave::DeviceLayer::TimeSyncManager::DriveTimeSync
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp
    functionUses: 4
    functionsReached:
    - NewBinding
    - ConfigurationMgr
    - ConnectivityMgr
    - nl::Weave::DeviceLayer::TimeSyncManager::TimeSyncFailed
    - WeaveLogProgress
    - VerifyOrExit
    - ExitNow
    - StartTimer
    - nl::Weave::DeviceLayer::TimeSyncManager::CancelTimeSync
    - SuccessOrExit
    - BeginConfiguration
    linkageType: ''
    returnType: void
    signature: TimeSyncManager::DriveTimeSync()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CancelTimer
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:234,1
    - Dst: Abort
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:235,1
    - Dst: Close
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 242
    functionName: nl::Weave::DeviceLayer::TimeSyncManager::CancelTimeSync
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp
    functionUses: 1
    functionsReached:
    - CancelTimer
    - Close
    - Abort
    linkageType: ''
    returnType: void
    signature: TimeSyncManager::CancelTimeSync()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Layer::SetClock_RealTime
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:254,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:263,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:268,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:268,1
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:273,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - syncedRealTimeUS
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 274
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 274
    functionName: nl::Weave::DeviceLayer::TimeSyncManager::ApplySynchronizedTime
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp
    functionUses: 1
    functionsReached:
    - PlatformMgr
    - WeaveLogError
    - nl::Weave::System::Layer::GetClock_MonotonicMS
    - nl::Weave::System::Layer::SetClock_RealTime
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: TimeSyncManager::ApplySynchronizedTime(uint64_t syncedRealTimeUS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:278,1
    - Dst: StatusReportStr
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:280,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:281,1
    - Dst: nl::Weave::DeviceLayer::TimeSyncManager::CancelTimeSync
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:284,1
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:287,1
    - Dst: nl::Weave::DeviceLayer::TimeSyncManager::DriveTimeSync
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - reason
    - statusReport
    argTypes:
    - WEAVE_ERROR
    - Profiles::StatusReporting::StatusReport*
    constantsTouched: []
    func_position:
      end: 291
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 291
    functionName: nl::Weave::DeviceLayer::TimeSyncManager::TimeSyncFailed
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogError
    - nl::Weave::DeviceLayer::TimeSyncManager::DriveTimeSync
    - nl::Weave::System::Layer::GetClock_MonotonicMS
    - nl::Weave::DeviceLayer::TimeSyncManager::CancelTimeSync
    - ErrorStr
    - StatusReportStr
    linkageType: ''
    returnType: void
    signature: TimeSyncManager::TimeSyncFailed(WEAVE_ERROR reason, Profiles::StatusReporting::StatusReport
      * statusReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::TimeSyncManager::DriveTimeSync
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: nl::Weave::DeviceLayer::TimeSyncManager::DriveTimeSync
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp
    functionUses: 6
    functionsReached:
    - nl::Weave::DeviceLayer::TimeSyncManager::DriveTimeSync
    linkageType: ''
    returnType: void
    signature: TimeSyncManager::DriveTimeSync(System::Layer * /* unused */, void *
      /* unused */, System::Error /* unused */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sync
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:309,1
    - Dst: nl::Weave::DeviceLayer::TimeSyncManager::TimeSyncFailed
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:312,1
    - Dst: nl::Weave::DeviceLayer::TimeSyncManager::TimeSyncFailed
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:319,1
    - Dst: Binding*::DefaultEventHandler
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - appState
    - eventType
    - ' inParam'
    - ' outParam'
    argTypes:
    - void*
    - ::nl::Weave::Binding::EventType
    - ::nl::Weave::Binding::InEventParam
    - ::nl::Weave::Binding::OutEventParam
    constantsTouched: []
    func_position:
      end: 327
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 327
    functionName: nl::Weave::DeviceLayer::TimeSyncManager::TimeServiceSync_HandleBindingEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp
    functionUses: 0
    functionsReached:
    - Sync
    - Binding*::DefaultEventHandler
    - nl::Weave::DeviceLayer::TimeSyncManager::TimeSyncFailed
    linkageType: ''
    returnType: void
    signature: "TimeSyncManager::TimeServiceSync_HandleBindingEvent(void * appState,
      ::nl::Weave::Binding::EventType eventType,\n            const ::nl::Weave::Binding::InEventParam
      & inParam, ::nl::Weave::Binding::OutEventParam & outParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:333,1
    - Dst: nl::Weave::DeviceLayer::TimeSyncManager::ApplySynchronizedTime
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:334,1
    - Dst: nl::Weave::DeviceLayer::TimeSyncManager::DriveTimeSync
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:335,1
    - Dst: nl::Weave::DeviceLayer::TimeSyncManager::TimeSyncFailed
      Src: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - context
    - result
    - syncedRealTimeUS
    argTypes:
    - void*
    - WEAVE_ERROR
    - int64_t
    constantsTouched: []
    func_position:
      end: 341
      start: 329
    functionDepth: 3
    functionLinenumber: 329
    functionLinenumberEnd: 341
    functionName: nl::Weave::DeviceLayer::TimeSyncManager::TimeServiceSync_HandleSyncComplete
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - nl::Weave::DeviceLayer::TimeSyncManager::ApplySynchronizedTime
    - nl::Weave::DeviceLayer::TimeSyncManager::TimeSyncFailed
    - nl::Weave::DeviceLayer::TimeSyncManager::DriveTimeSync
    linkageType: ''
    returnType: void
    signature: TimeSyncManager::TimeServiceSync_HandleSyncComplete(void * context,
      WEAVE_ERROR result, int64_t syncedRealTimeUS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TunEndPoint::Init
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:44,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:45,1
    - Dst: SetDelegate
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 52
    functionName: nl::Weave::DeviceLayer::Internal::DeviceControlServer::Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TunEndPoint::Init
    - SetDelegate
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceControlServer::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - resetFlags
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: nl::Weave::DeviceLayer::Internal::DeviceControlServer::ShouldCloseConBeforeResetConfig
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: DeviceControlServer::ShouldCloseConBeforeResetConfig(uint16_t resetFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:68,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:83,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:84,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:87,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:87,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:96,1
    - Dst: FabricProvisioningSvr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:97,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:100,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:100,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:109,1
    - Dst: ConnectivityMgr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:112,1
    - Dst: ThreadStackMgr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:116,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:125,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:126,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:129,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:129,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - resetFlags
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 137
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 137
    functionName: nl::Weave::DeviceLayer::Internal::DeviceControlServer::OnResetConfig
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp
    functionUses: 0
    functionsReached:
    - ConfigurationMgr
    - ConnectivityMgr
    - WeaveLogProgress
    - ThreadStackMgr
    - FabricProvisioningSvr
    - ErrorStr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceControlServer::OnResetConfig(uint16_t resetFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:143,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: nl::Weave::DeviceLayer::Internal::DeviceControlServer::OnFailSafeArmed
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp
    functionUses: 0
    functionsReached:
    - ConfigurationMgr
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceControlServer::OnFailSafeArmed(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:154,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: nl::Weave::DeviceLayer::Internal::DeviceControlServer::OnFailSafeDisarmed
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp
    functionUses: 0
    functionsReached:
    - ConfigurationMgr
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceControlServer::OnFailSafeDisarmed(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - peerNodeId
    - peerAddr
    argTypes:
    - uint64_t
    - IPAddress
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: nl::Weave::DeviceLayer::Internal::DeviceControlServer::OnConnectionMonitorTimeout
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DeviceControlServer::OnConnectionMonitorTimeout(uint64_t peerNodeId,
      IPAddress peerAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: nl::Weave::DeviceLayer::Internal::DeviceControlServer::OnRemotePassiveRendezvousStarted
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DeviceControlServer::OnRemotePassiveRendezvousStarted(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: nl::Weave::DeviceLayer::Internal::DeviceControlServer::OnRemotePassiveRendezvousDone
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DeviceControlServer::OnRemotePassiveRendezvousDone(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: nl::Weave::DeviceLayer::Internal::DeviceControlServer::WillStartRemotePassiveRendezvous
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceControlServer::WillStartRemotePassiveRendezvous(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: nl::Weave::DeviceLayer::Internal::DeviceControlServer::WillCloseRemotePassiveRendezvous
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DeviceControlServer::WillCloseRemotePassiveRendezvous(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - resetFlags
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 201
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 201
    functionName: nl::Weave::DeviceLayer::Internal::DeviceControlServer::IsResetAllowed
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp
    functionUses: 0
    functionsReached:
    - ConfigurationMgr
    linkageType: ''
    returnType: bool
    signature: DeviceControlServer::IsResetAllowed(uint16_t resetFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SendStatusReport
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:207,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - profileId
    - testId
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 212
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 212
    functionName: nl::Weave::DeviceLayer::Internal::DeviceControlServer::OnSystemTestStarted
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp
    functionUses: 0
    functionsReached:
    - SendStatusReport
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceControlServer::OnSystemTestStarted(uint32_t profileId, uint32_t
      testId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SendSuccessResponse
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:218,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 223
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 223
    functionName: nl::Weave::DeviceLayer::Internal::DeviceControlServer::OnSystemTestStopped
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp
    functionUses: 0
    functionsReached:
    - SendSuccessResponse
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceControlServer::OnSystemTestStopped(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:227,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: nl::Weave::DeviceLayer::Internal::DeviceControlServer::IsPairedToAccount
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp
    functionUses: 0
    functionsReached:
    - ConfigurationMgr
    linkageType: ''
    returnType: bool
    signature: DeviceControlServer::IsPairedToAccount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: nl::Weave::DeviceLayer::Internal::DeviceControlServer::OnPlatformEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DeviceControlServer::OnPlatformEvent(const WeaveDeviceEvent * event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ServiceDirectory::WeaveServiceManager::WeaveServiceManager
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:55,1
    - Dst: init
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:57,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:69,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 73
    functionName: nl::Weave::DeviceLayer::Internal::InitServiceDirectoryManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - ErrorStr
    - init
    - ServiceDirectory::WeaveServiceManager::WeaveServiceManager
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: InitServiceDirectoryManager(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:91,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:93,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:96,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:96,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:97,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:99,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:100,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:102,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:102,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:103,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:105,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:105,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:106,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:108,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:109,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:111,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:111,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:112,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:114,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:115,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:117,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:117,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:118,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:120,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:121,1
    - Dst: Write8
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:124,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:125,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:127,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:133,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:133,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:135,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:136,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:138,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:138,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:139,1
    - Dst: TLVReader::GetDataPtr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:141,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:142,1
    - Dst: TLVReader::GetLength
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:144,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:145,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:147,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:147,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:155,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:156,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:157,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:170,1
    - Dst: Write8
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:175,1
    - Dst: Write8
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:176,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:177,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:179,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:183,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:184,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:186,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:190,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 63
    argCount: 4
    argNames:
    - serviceConfig
    - serviceConfigLen
    - rootDirBuf
    - rootDirBufSize
    argTypes:
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 197
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 197
    functionName: nl::Weave::DeviceLayer::Internal::EncodeRootDirectoryFromServiceConfig
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - nl::Weave::Encoding::LittleEndian::Write64
    - nl::Weave::Encoding::LittleEndian::Write16
    - TLVReader::Next
    - Write8
    - TLVReader::GetType
    - TLVReader::GetLength
    - ContextTag
    - VerifyOrExit
    - ProfileTag
    - TLVReader::EnterContainer
    - TLVReader::ExitContainer
    - memcpy
    - SuccessOrExit
    - TLVReader::GetDataPtr
    - TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "EncodeRootDirectoryFromServiceConfig(const uint8_t * serviceConfig,
      uint16_t serviceConfigLen,\n        uint8_t * rootDirBuf, uint16_t rootDirBufSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:206,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:207,1
    - Dst: malloc
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:210,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:211,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:214,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:215,1
    - Dst: nl::Weave::DeviceLayer::Internal::EncodeRootDirectoryFromServiceConfig
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:218,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:219,1
    - Dst: free
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - rootDirBuf
    - rootDirBufSize
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 227
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 227
    functionName: nl::Weave::DeviceLayer::Internal::GetRootDirectoryEntry
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp
    functionUses: 0
    functionsReached:
    - ConfigurationMgr
    - VerifyOrExit
    - free
    - SuccessOrExit
    - malloc
    - nl::Weave::DeviceLayer::Internal::EncodeRootDirectoryFromServiceConfig
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetRootDirectoryEntry(uint8_t * rootDirBuf, uint16_t rootDirBufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/PersistedStorage.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - ' value'
    argTypes:
    - Key
    - uint32_t
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: nl::Weave::Platform::PersistedStorage::Read
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/PersistedStorage.cpp
    functionUses: 0
    functionsReached:
    - ConfigurationMgr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Read(Key key, uint32_t & value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/PersistedStorage.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - Key
    - uint32_t
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: nl::Weave::Platform::PersistedStorage::Write
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/PersistedStorage.cpp
    functionUses: 0
    functionsReached:
    - ConfigurationMgr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Write(Key key, uint32_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TunEndPoint::Init
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:40,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:41,1
    - Dst: SetDelegate
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 51
    functionName: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TunEndPoint::Init
    - SetDelegate
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ServiceProvisioningServer::Init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:59,1
    - Dst: SendStatusReport
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:62,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:64,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:70,1
    - Dst: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::IsValidServiceConfig
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:73,1
    - Dst: SendStatusReport
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:75,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:76,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:79,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:82,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:83,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:91,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:97,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:102,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:103,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:110,1
    - Dst: SendSuccessResponse
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - RegisterServicePairAccountMessage
    constantsTouched: []
    func_position:
      end: 120
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 120
    functionName: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandleRegisterServicePairAccount
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - ConfigurationMgr
    - WeaveLogProgress
    - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::IsValidServiceConfig
    - ExitNow
    - SendSuccessResponse
    - SuccessOrExit
    - SendStatusReport
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ServiceProvisioningServer::HandleRegisterServicePairAccount(RegisterServicePairAccountMessage
      & msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:128,1
    - Dst: SendStatusReport
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:131,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:132,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:134,1
    - Dst: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::IsValidServiceConfig
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:137,1
    - Dst: SendStatusReport
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:139,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:140,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:144,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:145,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:153,1
    - Dst: SendSuccessResponse
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:157,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - UpdateServiceMessage
    constantsTouched: []
    func_position:
      end: 162
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 162
    functionName: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandleUpdateService
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - ConfigurationMgr
    - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::IsValidServiceConfig
    - ExitNow
    - SendSuccessResponse
    - SuccessOrExit
    - SendStatusReport
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ServiceProvisioningServer::HandleUpdateService(UpdateServiceMessage&
      msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:170,1
    - Dst: SendStatusReport
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:173,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:174,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:176,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:179,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:180,1
    - Dst: SendSuccessResponse
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:183,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - serviceId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 188
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 188
    functionName: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandleUnregisterService
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - ConfigurationMgr
    - ExitNow
    - SendSuccessResponse
    - SuccessOrExit
    - SendStatusReport
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ServiceProvisioningServer::HandleUnregisterService(uint64_t serviceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:192,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::IsPairedToAccount
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - ConfigurationMgr
    linkageType: ''
    returnType: bool
    signature: ServiceProvisioningServer::IsPairedToAccount(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::StartPairDeviceToAccount
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 215
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 215
    functionName: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::OnPlatformEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::StartPairDeviceToAccount
    linkageType: ''
    returnType: void
    signature: ServiceProvisioningServer::OnPlatformEvent(const WeaveDeviceEvent *
      event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConnectivityMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:226,1
    - Dst: ConnectivityMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:226,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:230,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:233,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:234,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:236,1
    - Dst: CancelTimer
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:240,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:242,1
    - Dst: NewBinding
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:246,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:247,1
    - Dst: BeginConfiguration
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:248,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:254,1
    - Dst: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandlePairDeviceToAccountResult
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 261
    functionName: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::StartPairDeviceToAccount
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp
    functionUses: 1
    functionsReached:
    - NewBinding
    - ConnectivityMgr
    - WeaveLogProgress
    - VerifyOrExit
    - ExitNow
    - StartTimer
    - SuccessOrExit
    - CancelTimer
    - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandlePairDeviceToAccountResult
    - BeginConfiguration
    linkageType: ''
    returnType: void
    signature: ServiceProvisioningServer::StartPairDeviceToAccount(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:271,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:272,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:282,1
    - Dst: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::SendPairDeviceToAccountRequest
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:283,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:289,1
    - Dst: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandlePairDeviceToAccountResult
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 296
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 296
    functionName: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::SendPairDeviceToAccountRequest
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp
    functionUses: 1
    functionsReached:
    - ConfigurationMgr
    - WeaveLogProgress
    - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::SendPairDeviceToAccountRequest
    - SuccessOrExit
    - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandlePairDeviceToAccountResult
    linkageType: ''
    returnType: void
    signature: ServiceProvisioningServer::SendPairDeviceToAccountRequest(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:303,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:314,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:324,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:325,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:332,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:335,1
    - Dst: SendSuccessResponse
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:338,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:339,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:346,1
    - Dst: nl::StatusReportStr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:349,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:350,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:353,1
    - Dst: SendStatusReport
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:372,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 3
    argNames:
    - err
    - statusReportProfileId
    - statusReportStatusCode
    argTypes:
    - WEAVE_ERROR
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 375
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 375
    functionName: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandlePairDeviceToAccountResult
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp
    functionUses: 2
    functionsReached:
    - PlatformMgr
    - WeaveLogError
    - ConfigurationMgr
    - nl::StatusReportStr
    - WeaveLogProgress
    - ExitNow
    - SendSuccessResponse
    - SuccessOrExit
    - Close
    - SendStatusReport
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: ServiceProvisioningServer::HandlePairDeviceToAccountResult(WEAVE_ERROR
      err, uint32_t statusReportProfileId, uint16_t statusReportStatusCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::StartPairDeviceToAccount
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - intptr_t
    constantsTouched: []
    func_position:
      end: 380
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 380
    functionName: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::AsyncStartPairDeviceToAccount
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::StartPairDeviceToAccount
    linkageType: ''
    returnType: void
    signature: ServiceProvisioningServer::AsyncStartPairDeviceToAccount(intptr_t arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandlePairDeviceToAccountResult
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 385
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 385
    functionName: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandleServiceConnectivityTimeout
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandlePairDeviceToAccountResult
    linkageType: ''
    returnType: void
    signature: ServiceProvisioningServer::HandleServiceConnectivityTimeout(System::Layer
      * /* unused */, void * /* unused */, System::Error /* unused */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::SendPairDeviceToAccountRequest
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:396,1
    - Dst: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandlePairDeviceToAccountResult
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:409,1
    - Dst: nl::Weave::Binding::DefaultEventHandler
      Src: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp:413,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - appState
    - eventType
    - ' inParam'
    - ' outParam'
    argTypes:
    - void*
    - Binding::EventType
    - Binding::InEventParam
    - Binding::OutEventParam
    constantsTouched: []
    func_position:
      end: 416
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 416
    functionName: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandleProvServiceBindingEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Binding::DefaultEventHandler
    - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandlePairDeviceToAccountResult
    - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::SendPairDeviceToAccountRequest
    linkageType: ''
    returnType: void
    signature: "ServiceProvisioningServer::HandleProvServiceBindingEvent(void * appState,
      Binding::EventType eventType,\n            const Binding::InEventParam & inParam,
      Binding::OutEventParam & outParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - err
    - statusReportProfileId
    - statusReportStatusCode
    argTypes:
    - WEAVE_ERROR
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 422
    functionName: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandlePairDeviceToAccountResult
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ServiceProvisioningServer::HandlePairDeviceToAccountResult(WEAVE_ERROR
      err, uint32_t statusReportProfileId, uint16_t statusReportStatusCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - err
    - statusReportProfileId
    - statusReportStatusCode
    argTypes:
    - WEAVE_ERROR
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 429
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 429
    functionName: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandleIFJServiceFabricJoinResult
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ServiceProvisioningServer::HandleIFJServiceFabricJoinResult(WEAVE_ERROR
      err, uint32_t statusReportProfileId, uint16_t statusReportStatusCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 50
    functionName: nl::Weave::DeviceLayer::Internal::DeviceNetworkInfo::Reset
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: DeviceNetworkInfo::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartContainer
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:61,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:62,1
    - Dst: Put
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:66,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:66,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:67,1
    - Dst: Put
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:72,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:72,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:73,1
    - Dst: PutString
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:80,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:80,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:81,1
    - Dst: Put
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:86,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:86,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:87,1
    - Dst: Put
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:92,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:92,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:93,1
    - Dst: Put
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:98,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:98,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:99,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:104,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:104,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:105,1
    - Dst: PutString
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:114,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:114,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:115,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:120,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:120,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:122,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:127,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:127,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:129,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:134,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:134,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:136,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:141,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:141,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:143,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:148,1
    - Dst: Put
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:149,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:149,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:150,1
    - Dst: Put
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:155,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:155,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:156,1
    - Dst: Put
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:163,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:163,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:164,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:167,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:168,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 69
    argCount: 1
    argNames:
    - ' writer'
    argTypes:
    - nl::Weave::TLV::TLVWriter
    constantsTouched: []
    func_position:
      end: 172
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 172
    functionName: nl::Weave::DeviceLayer::Internal::DeviceNetworkInfo::Encode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp
    functionUses: 0
    functionsReached:
    - PutString
    - StartContainer
    - VerifyOrExit
    - PutBytes
    - ProfileTag
    - EndContainer
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceNetworkInfo::Encode(nl::Weave::TLV::TLVWriter & writer) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetType
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:180,1
    - Dst: Next
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:182,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:183,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:186,1
    - Dst: GetTag
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:186,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:186,1
    - Dst: GetTag
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:187,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:190,1
    - Dst: GetType
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:190,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:192,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:193,1
    - Dst: nl::Weave::DeviceLayer::Internal::DeviceNetworkInfo::Reset
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:195,1
    - Dst: Next
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:197,1
    - Dst: IsProfileTag
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:201,1
    - Dst: ProfileIdFromTag
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:201,1
    - Dst: TagNumFromTag
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:204,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:207,1
    - Dst: GetType
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:207,1
    - Dst: Get
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:208,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:209,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:213,1
    - Dst: GetType
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:213,1
    - Dst: Get
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:214,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:215,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:219,1
    - Dst: GetType
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:219,1
    - Dst: Get
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:220,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:221,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:225,1
    - Dst: GetType
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:225,1
    - Dst: GetString
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:226,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:227,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:230,1
    - Dst: GetType
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:230,1
    - Dst: Get
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:231,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:232,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:236,1
    - Dst: GetType
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:236,1
    - Dst: Get
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:237,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:238,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:242,1
    - Dst: GetType
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:242,1
    - Dst: GetLength
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:243,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:244,1
    - Dst: GetBytes
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:246,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:247,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:250,1
    - Dst: GetType
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:250,1
    - Dst: Get
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:251,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:252,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:261,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:266,1
    - Dst: GetType
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:266,1
    - Dst: GetString
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:267,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:268,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:271,1
    - Dst: GetType
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:271,1
    - Dst: GetLength
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:272,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:273,1
    - Dst: GetBytes
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:274,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:275,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:279,1
    - Dst: GetType
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:279,1
    - Dst: GetLength
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:280,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:281,1
    - Dst: GetBytes
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:282,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:283,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:287,1
    - Dst: GetType
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:287,1
    - Dst: GetLength
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:288,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:289,1
    - Dst: GetBytes
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:290,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:291,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:295,1
    - Dst: GetType
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:295,1
    - Dst: GetLength
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:296,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:297,1
    - Dst: GetBytes
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:298,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:299,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:303,1
    - Dst: GetType
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:303,1
    - Dst: Get
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:304,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:305,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:306,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:310,1
    - Dst: GetType
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:310,1
    - Dst: Get
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:311,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:312,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:313,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:324,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:334,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:336,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:337,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 140
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 341
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 341
    functionName: nl::Weave::DeviceLayer::Internal::DeviceNetworkInfo::Decode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - GetLength
    - GetString
    - VerifyOrExit
    - IsProfileTag
    - ProfileTag
    - GetBytes
    - GetType
    - ExitNow
    - TagNumFromTag
    - GetTag
    - ExitContainer
    - Get
    - SuccessOrExit
    - nl::Weave::DeviceLayer::Internal::DeviceNetworkInfo::Reset
    - ProfileIdFromTag
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceNetworkInfo::Decode(nl::Weave::TLV::TLVReader & reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:358,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:374,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:382,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:386,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:390,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:394,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:398,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 1
    argNames:
    - ' dest'
    argTypes:
    - DeviceNetworkInfo
    constantsTouched: []
    func_position:
      end: 416
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 416
    functionName: nl::Weave::DeviceLayer::Internal::DeviceNetworkInfo::MergeTo
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceNetworkInfo::MergeTo(DeviceNetworkInfo & dest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartContainer
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:423,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:424,1
    - Dst: nl::Weave::DeviceLayer::Internal::DeviceNetworkInfo::Encode
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:428,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:429,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:432,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - ' writer'
    - elems
    - count
    argTypes:
    - nl::Weave::TLV::TLVWriter
    - DeviceNetworkInfo*
    - size_t
    constantsTouched: []
    func_position:
      end: 437
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 437
    functionName: nl::Weave::DeviceLayer::Internal::DeviceNetworkInfo::EncodeArray
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp
    functionUses: 0
    functionsReached:
    - EndContainer
    - StartContainer
    - nl::Weave::DeviceLayer::Internal::DeviceNetworkInfo::Encode
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceNetworkInfo::EncodeArray(nl::Weave::TLV::TLVWriter & writer,
      const DeviceNetworkInfo * elems, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/adaptations/device-layer/EventLogging.cpp:66,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/adaptations/device-layer/EventLogging.cpp:71,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/adaptations/device-layer/EventLogging.cpp:77,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/adaptations/device-layer/EventLogging.cpp:84,1
    - Dst: nl::Weave::Profiles::LoggingManagement::CreateLoggingManagement
      Src: /src/openweave-core/src/adaptations/device-layer/EventLogging.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 98
    functionName: nl::Weave::DeviceLayer::Internal::InitWeaveEventLogging
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EventLogging.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void *>
    - nl::Weave::Profiles::LoggingManagement::CreateLoggingManagement
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: InitWeaveEventLogging(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/SystemTimerSupport.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' aLayer'
    - aContext
    - aMilliseconds
    argTypes:
    - System::Layer
    - void*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: nl::Weave::System::Platform::Layer::StartTimer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/SystemTimerSupport.cpp
    functionUses: 2
    functionsReached:
    - PlatformMgr
    linkageType: ''
    returnType: System::Error
    signature: StartTimer(System::Layer & aLayer, void * aContext, uint32_t aMilliseconds)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: WeaveTelemetryBase::WeaveTelemetryBase
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveTelemetryBase::WeaveTelemetryBase()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetPollingInterval
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:54,1
    - Dst: WeaveTelemetryBase::Enable
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aIntervalMsec
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: WeaveTelemetryBase::Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveTelemetryBase::Enable
    - SetPollingInterval
    linkageType: ''
    returnType: void
    signature: WeaveTelemetryBase::Init(uint32_t aIntervalMsec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTelemetryBase::StartPollingTimer
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: WeaveTelemetryBase::Enable
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp
    functionUses: 1
    functionsReached:
    - WeaveTelemetryBase::StartPollingTimer
    linkageType: ''
    returnType: void
    signature: WeaveTelemetryBase::Enable(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTelemetryBase::StopPollingTimer
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: WeaveTelemetryBase::Disable
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveTelemetryBase::StopPollingTimer
    linkageType: ''
    returnType: void
    signature: WeaveTelemetryBase::Disable(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTimer
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: WeaveTelemetryBase::StartPollingTimer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp
    functionUses: 1
    functionsReached:
    - StartTimer
    linkageType: ''
    returnType: void
    signature: WeaveTelemetryBase::StartPollingTimer(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CancelTimer
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: WeaveTelemetryBase::StopPollingTimer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp
    functionUses: 1
    functionsReached:
    - CancelTimer
    linkageType: ''
    returnType: void
    signature: WeaveTelemetryBase::StopPollingTimer(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:82,1
    - Dst: WeaveTelemetryBase::StartPollingTimer
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: WeaveTelemetryBase::HandleTimer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp
    functionUses: 0
    functionsReached:
    - WeaveTelemetryBase::StartPollingTimer
    - GetTelemetryStatsAndLogEvent
    linkageType: ''
    returnType: void
    signature: WeaveTelemetryBase::HandleTimer(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: NetworkTelemetryManager::NetworkTelemetryManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: NetworkTelemetryManager::NetworkTelemetryManager(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:95,1
    - Dst: NetworkTelemetryManager::Init
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:98,1
    - Dst: NetworkTelemetryManager::Init
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:102,1
    - Dst: NetworkTelemetryManager::Init
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:103,1
    - Dst: NetworkTelemetryManager::Init
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 111
    functionName: NetworkTelemetryManager::Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    - NetworkTelemetryManager::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkTelemetryManager::Init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConnectivityMgr
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:118,1
    - Dst: ConnectivityMgr
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:119,1
    - Dst: ConnectivityMgr
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:121,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 127
    functionName: WiFiTelemetry::GetTelemetryStatsAndLogEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp
    functionUses: 0
    functionsReached:
    - ConnectivityMgr
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: WiFiTelemetry::GetTelemetryStatsAndLogEvent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConnectivityMgr
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:136,1
    - Dst: ConnectivityMgr
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:137,1
    - Dst: ThreadStackMgr
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:139,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 145
    functionName: ThreadTelemetry::GetTelemetryStatsAndLogEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp
    functionUses: 0
    functionsReached:
    - ThreadStackMgr
    - ConnectivityMgr
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: ThreadTelemetry::GetTelemetryStatsAndLogEvent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConnectivityMgr
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:151,1
    - Dst: ConnectivityMgr
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:152,1
    - Dst: ThreadStackMgr
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:155,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:156,1
    - Dst: ThreadStackMgr
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:158,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 165
    functionName: ThreadTopology::GetTelemetryStatsAndLogEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp
    functionUses: 0
    functionsReached:
    - ThreadStackMgr
    - ConnectivityMgr
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: ThreadTopology::GetTelemetryStatsAndLogEvent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConnectivityMgr
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:172,1
    - Dst: GetWeaveTunnelStatistics
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:178,1
    - Dst: GetWeaveTunnelAgentState
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:192,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:230,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:241,1
    - Dst: nl::LogEvent
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:247,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp:248,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 252
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 252
    functionName: TunnelTelemetry::GetTelemetryStatsAndLogEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp
    functionUses: 0
    functionsReached:
    - ConnectivityMgr
    - WeaveLogProgress
    - GetWeaveTunnelAgentState
    - GetWeaveTunnelStatistics
    - nl::LogEvent
    linkageType: ''
    returnType: void
    signature: TunnelTelemetry::GetTelemetryStatsAndLogEvent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: nl::Weave::DeviceLayer::CASEAuthDelegate::CASEAuthDelegate
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CASEAuthDelegate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CASEAuthDelegate::CASEAuthDelegate
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:98,1
    - Dst: SetCASEAuthDelegate
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: nl::Weave::DeviceLayer::Internal::InitCASEAuthDelegate
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp
    functionUses: 0
    functionsReached:
    - CASEAuthDelegate::CASEAuthDelegate
    - SetCASEAuthDelegate
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: InitCASEAuthDelegate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:114,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:115,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:118,1
    - Dst: MemoryAlloc
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:121,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:122,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:125,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:126,1
    - Dst: MakeCertInfo
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:129,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:130,1
    - Dst: MemoryFree
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - isInitiator
    - buf
    - bufSize
    - ' certInfoLen'
    argTypes:
    - bool
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 138
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 138
    functionName: nl::Weave::DeviceLayer::CASEAuthDelegate::GetNodeCertInfo
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp
    functionUses: 0
    functionsReached:
    - MakeCertInfo
    - ConfigurationMgr
    - MemoryFree
    - VerifyOrExit
    - MemoryAlloc
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CASEAuthDelegate::GetNodeCertInfo(bool isInitiator, uint8_t *buf, uint16_t
      bufSize, uint16_t& certInfoLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:146,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:147,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:150,1
    - Dst: MemoryAlloc
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:153,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:154,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:157,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:158,1
    - Dst: MemoryFree
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - isInitiator
    - ' weavePrivKey'
    - ' weavePrivKeyLen'
    argTypes:
    - bool
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 170
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 170
    functionName: nl::Weave::DeviceLayer::CASEAuthDelegate::GetNodePrivateKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp
    functionUses: 0
    functionsReached:
    - ConfigurationMgr
    - VerifyOrExit
    - MemoryAlloc
    - SuccessOrExit
    - MemoryFree
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CASEAuthDelegate::GetNodePrivateKey(bool isInitiator, const uint8_t
      *& weavePrivKey, uint16_t & weavePrivKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MemoryFree
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - weavePrivKey
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 180
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 180
    functionName: nl::Weave::DeviceLayer::CASEAuthDelegate::ReleaseNodePrivateKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp
    functionUses: 0
    functionsReached:
    - MemoryFree
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CASEAuthDelegate::ReleaseNodePrivateKey(const uint8_t *weavePrivKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:187,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - isInitiator
    - buf
    - bufSize
    - ' payloadLen'
    argTypes:
    - bool
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 194
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 194
    functionName: nl::Weave::DeviceLayer::CASEAuthDelegate::GetNodePayload
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp
    functionUses: 0
    functionsReached:
    - ConfigurationMgr
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CASEAuthDelegate::GetNodePayload(bool isInitiator, uint8_t *buf, uint16_t
      bufSize, uint16_t& payloadLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:206,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:207,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:212,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:214,1
    - Dst: MemoryAlloc
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:220,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:221,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:224,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:225,1
    - Dst: LoadCertsFromServiceConfig
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:228,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:229,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:254,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:255,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:258,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:259,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:262,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:263,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:265,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:266,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:270,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:275,1
    - Dst: nl::Weave::System::Layer::GetClock_RealTimeMS
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:284,1
    - Dst: SecondsSinceEpochToCalendarTime
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:287,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:292,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:294,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:296,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:300,1
    - Dst: PackCertTime
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:303,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:304,1
    - Dst: MemoryFree
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:314,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 56
    argCount: 3
    argNames:
    - isInitiator
    - ' certSet'
    - ' validContext'
    argTypes:
    - bool
    - WeaveCertificateSet
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 318
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 318
    functionName: nl::Weave::DeviceLayer::CASEAuthDelegate::BeginCertValidation
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp
    functionUses: 0
    functionsReached:
    - LoadCert
    - ConfigurationMgr
    - LoadCertsFromServiceConfig
    - MemoryFree
    - WeaveLogProgress
    - SecondsSinceEpochToCalendarTime
    - VerifyOrExit
    - ExitNow
    - memset
    - MemoryAlloc
    - PackCertTime
    - Init
    - SuccessOrExit
    - nl::Weave::System::Layer::GetClock_RealTimeMS
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CASEAuthDelegate::BeginCertValidation(bool isInitiator, WeaveCertificateSet&
      certSet, ValidationContext& validContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:371,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:375,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:375,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 6
    argNames:
    - isInitiator
    - ' validRes'
    - peerCert
    - peerNodeId
    - ' certSet'
    - ' validContext'
    argTypes:
    - bool
    - WEAVE_ERROR
    - WeaveCertificateData*
    - uint64_t
    - WeaveCertificateSet
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 379
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 379
    functionName: nl::Weave::DeviceLayer::CASEAuthDelegate::HandleCertValidationResult
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - WeaveLogError
    - nl::ErrorStr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "CASEAuthDelegate::HandleCertValidationResult(bool isInitiator, WEAVE_ERROR&
      validRes, WeaveCertificateData *peerCert,\n        uint64_t peerNodeId, WeaveCertificateSet&
      certSet, ValidationContext& validContext)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MemoryFree
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' certSet'
    - ' validContext'
    argTypes:
    - WeaveCertificateSet
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 389
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 389
    functionName: nl::Weave::DeviceLayer::CASEAuthDelegate::EndCertValidation
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp
    functionUses: 0
    functionsReached:
    - MemoryFree
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CASEAuthDelegate::EndCertValidation(WeaveCertificateSet& certSet, ValidationContext&
      validContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:396,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:398,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:399,1
    - Dst: PutPreEncodedContainer
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:401,1
    - Dst: TLVReader::GetReadPoint
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:401,1
    - Dst: TLVReader::GetRemainingLength
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:401,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ' writer'
    - tag
    - cert
    - certLen
    argTypes:
    - TLVWriter
    - uint64_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 406
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 406
    functionName: nl::Weave::DeviceLayer::AddCertToContainer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - PutPreEncodedContainer
    - TLVReader::Next
    - SuccessOrExit
    - TLVReader::GetReadPoint
    - TLVReader::GetRemainingLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: AddCertToContainer(TLVWriter& writer, uint64_t tag, const uint8_t *cert,
      uint16_t certLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:416,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:419,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:419,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:420,1
    - Dst: nl::Weave::DeviceLayer::AddCertToContainer
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:422,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:422,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:423,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:429,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:429,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:430,1
    - Dst: nl::Weave::DeviceLayer::AddCertToContainer
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:432,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:432,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:433,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:435,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:436,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:439,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:440,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:442,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:443,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 7
    argNames:
    - buf
    - bufSize
    - ' certInfoLen'
    - entityCert
    - entityCertLen
    - intermediateCert
    - intermediateCertLen
    argTypes:
    - uint8_t*
    - uint16_t
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 450
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 450
    functionName: nl::Weave::DeviceLayer::MakeCertInfo
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp
    functionUses: 0
    functionsReached:
    - TLVWriter::Finalize
    - ContextTag
    - nl::Weave::DeviceLayer::AddCertToContainer
    - ProfileTag
    - TLVWriter::GetLengthWritten
    - SuccessOrExit
    - TLVWriter::Init
    - TLVWriter::EndContainer
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "MakeCertInfo(uint8_t *buf, uint16_t bufSize, uint16_t& certInfoLen,\n
      \                        const uint8_t *entityCert, uint16_t entityCertLen,\n
      \                        const uint8_t *intermediateCert, uint16_t intermediateCertLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:458,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:461,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:461,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:462,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:464,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:465,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:467,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:467,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:468,1
    - Dst: LoadCerts
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:470,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - serviceConfig
    - serviceConfigLen
    - ' certSet'
    argTypes:
    - uint8_t*
    - uint16_t
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 475
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 475
    functionName: nl::Weave::DeviceLayer::LoadCertsFromServiceConfig
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - LoadCerts
    - TLVReader::Next
    - ContextTag
    - TLVReader::EnterContainer
    - ProfileTag
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LoadCertsFromServiceConfig(const uint8_t *serviceConfig, uint16_t serviceConfigLen,
      WeaveCertificateSet& certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TunEndPoint::Init
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:40,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 52
    functionName: nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TunEndPoint::Init
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceDescriptionServer::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::IsUserSelectedModeActive
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: DeviceDescriptionServer::IsUserSelectedModeActive(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:71,1
    - Dst: nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::IsUserSelectedModeActive
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:72,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:77,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 85
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 85
    functionName: nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::SetUserSelectedMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - static_cast<uint32_t>
    - nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::IsUserSelectedModeActive
    linkageType: ''
    returnType: void
    signature: DeviceDescriptionServer::SetUserSelectedMode(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::GetUserSelectedModeTimeout
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: DeviceDescriptionServer::GetUserSelectedModeTimeout(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::SetUserSelectedModeTimeout
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DeviceDescriptionServer::SetUserSelectedModeTimeout(uint16_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToString
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:106,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:108,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:109,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:110,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:111,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:112,1
    - Dst: MatchTargetFabricId
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:118,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:120,1
    - Dst: nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::IsUserSelectedModeActive
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:125,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:127,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:135,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:136,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:140,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:149,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:150,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:154,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:161,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:168,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:173,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp:173,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 6
    argNames:
    - appState
    - nodeId
    - ' nodeAddr'
    - ' reqMsg'
    - ' sendResp'
    - ' respMsg'
    argTypes:
    - void*
    - uint64_t
    - IPAddress
    - IdentifyRequestMessage
    - bool
    - IdentifyResponseMessage
    constantsTouched: []
    func_position:
      end: 176
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 176
    functionName: nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::HandleIdentifyRequest
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp
    functionUses: 0
    functionsReached:
    - ConfigurationMgr
    - WeaveLogProgress
    - MatchTargetFabricId
    - ToString
    - nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::IsUserSelectedModeActive
    - SuccessOrExit
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: "DeviceDescriptionServer::HandleIdentifyRequest(void *appState, uint64_t
      nodeId, const IPAddress& nodeAddr,\n        const IdentifyRequestMessage& reqMsg,
      bool& sendResp, IdentifyResponseMessage& respMsg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::OnPlatformEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DeviceDescriptionServer::OnPlatformEvent(const WeaveDeviceEvent * event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/SystemEventSupport.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - ' aLayer'
    - aContext
    - ' aTarget'
    - aType
    - aArgument
    argTypes:
    - System::Layer
    - void*
    - System::Object
    - System::EventType
    - uintptr_t
    constantsTouched: []
    func_position:
      end: 47
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 47
    functionName: nl::Weave::System::Platform::Layer::PostEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/SystemEventSupport.cpp
    functionUses: 2
    functionsReached:
    - PlatformMgr
    linkageType: ''
    returnType: System::Error
    signature: PostEvent(System::Layer & aLayer, void * aContext, System::Object &
      aTarget, System::EventType aType, uintptr_t aArgument)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/SystemEventSupport.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' aLayer'
    - aContext
    argTypes:
    - Layer
    - void*
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: nl::Weave::System::Platform::Layer::DispatchEvents
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/SystemEventSupport.cpp
    functionUses: 2
    functionsReached:
    - PlatformMgr
    linkageType: ''
    returnType: System::Error
    signature: DispatchEvents(Layer & aLayer, void * aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/SystemEventSupport.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' aLayer'
    - aContext
    - aEvent
    argTypes:
    - System::Layer
    - void*
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: nl::Weave::System::Platform::Layer::DispatchEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/SystemEventSupport.cpp
    functionUses: 2
    functionsReached:
    - PlatformMgr
    linkageType: ''
    returnType: System::Error
    signature: DispatchEvent(System::Layer & aLayer, void * aContext, const WeaveDeviceEvent
      * aEvent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TunEndPoint::Init
      Src: /src/openweave-core/src/adaptations/device-layer/EchoServer.cpp:41,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EchoServer.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: nl::Weave::DeviceLayer::Internal::EchoServer::Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EchoServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TunEndPoint::Init
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EchoServer::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xTaskGetTickCountFromISR
      Src: /src/openweave-core/src/adaptations/device-layer/FreeRTOS/SystemTimeSupport.cpp:74,1
    - Dst: vTaskSetTimeOutState
      Src: /src/openweave-core/src/adaptations/device-layer/FreeRTOS/SystemTimeSupport.cpp:81,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/adaptations/device-layer/FreeRTOS/SystemTimeSupport.cpp:89,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/adaptations/device-layer/FreeRTOS/SystemTimeSupport.cpp:90,1
    - Dst: nl::Weave::System::Platform::Layer::FreeRTOSTicksSinceBoot
      Src: /src/openweave-core/src/adaptations/device-layer/FreeRTOS/SystemTimeSupport.cpp:95,1
    - Dst: nl::Weave::System::Platform::Layer::FreeRTOSTicksSinceBoot
      Src: /src/openweave-core/src/adaptations/device-layer/FreeRTOS/SystemTimeSupport.cpp:100,1
    - Dst: nl::Weave::System::Platform::Layer::GetClock_Monotonic
      Src: /src/openweave-core/src/adaptations/device-layer/FreeRTOS/SystemTimeSupport.cpp:105,1
    - Dst: nl::Weave::System::Platform::Layer::GetClock_Monotonic
      Src: /src/openweave-core/src/adaptations/device-layer/FreeRTOS/SystemTimeSupport.cpp:114,1
    - Dst: nl::Weave::System::Platform::Layer::GetClock_Monotonic
      Src: /src/openweave-core/src/adaptations/device-layer/FreeRTOS/SystemTimeSupport.cpp:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 142
    functionName: nl::Weave::System::Platform::Layer::FreeRTOSTicksSinceBoot
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/FreeRTOS/SystemTimeSupport.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::System::Platform::Layer::GetClock_Monotonic
    - vTaskSetTimeOutState
    - nl::Weave::System::Platform::Layer::FreeRTOSTicksSinceBoot
    - xTaskGetTickCountFromISR
    - static_cast<uint64_t>
    linkageType: ''
    returnType: uint64_t
    signature: FreeRTOSTicksSinceBoot(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inFabricStateDelegate
    argTypes:
    - WarmFabricStateDelegate*
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: nl::Weave::Warm::Platform::Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Init(WarmFabricStateDelegate * inFabricStateDelegate)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: nl::Weave::Warm::Platform::CriticalSectionEnter
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionEnter(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: nl::Weave::Warm::Platform::CriticalSectionExit
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionExit(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::InvokeActions
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: nl::Weave::Warm::Platform::RequestInvokeActions
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::InvokeActions
    linkageType: ''
    returnType: void
    signature: RequestInvokeActions(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToIPv6
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:85,1
    - Dst: IsIPv6ULA
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:92,1
    - Dst: Subnet
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:92,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:94,1
    - Dst: GlobalId
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:94,1
    - Dst: InterfaceId
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:94,1
    - Dst: Inet::IPAddress::ToIPv6
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:95,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:98,1
    - Dst: GetLwIPNetifForWarmInterfaceType
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:101,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:102,1
    - Dst: netif_add_ip6_address_with_route
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:107,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:108,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:111,1
    - Dst: WarmInterfaceTypeToStr
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:112,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:112,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:113,1
    - Dst: netif_ip6_addr_set_state
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:115,1
    - Dst: LwIPNetifSupportsMLD
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:120,1
    - Dst: ip6_addr_set_solicitednode
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:123,1
    - Dst: mld6_joingroup_netif
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:124,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:125,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:128,1
    - Dst: WarmInterfaceTypeToStr
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:129,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:129,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:130,1
    - Dst: netif_remove_ip6_address_with_route
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:137,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:144,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:147,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:150,1
    - Dst: WarmInterfaceTypeToStr
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:151,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:151,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:152,1
    - Dst: ip6_addr_set_solicitednode
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:159,1
    - Dst: mld6_leavegroup_netif
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:160,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:165,1
    - Dst: GetInterfaceName
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:171,1
    - Dst: ToString
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:173,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:174,1
    - Dst: CharacterizeIPv6Address
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:176,1
    - Dst: WarmInterfaceTypeToStr
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:178,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:187,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:192,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:192,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 4
    argNames:
    - inInterfaceType
    - ' inAddress'
    - inPrefixLength
    - inAdd
    argTypes:
    - InterfaceType
    - Inet::IPAddress
    - uint8_t
    - bool
    constantsTouched: []
    func_position:
      end: 196
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 196
    functionName: nl::Weave::Warm::Platform::AddRemoveHostAddress
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp
    functionUses: 0
    functionsReached:
    - ToString
    - LwIPNetifSupportsMLD
    - mld6_joingroup_netif
    - UNLOCK_TCPIP_CORE
    - netif_add_ip6_address_with_route
    - LOCK_TCPIP_CORE
    - WeaveLogError
    - netif_ip6_addr_set_state
    - nl::ErrorStr
    - InterfaceId
    - GlobalId
    - ToIPv6
    - WeaveLogProgress
    - ExitNow
    - ip6_addr_set_solicitednode
    - GetInterfaceName
    - nl::Inet::IPAddress::MakeULA
    - Inet::IPAddress::ToIPv6
    - GetLwIPNetifForWarmInterfaceType
    - nl::Weave::System::MapErrorLwIP
    - Subnet
    - WarmInterfaceTypeToStr
    - IsIPv6ULA
    - SuccessOrExit
    - netif_remove_ip6_address_with_route
    - CharacterizeIPv6Address
    - mld6_leavegroup_netif
    linkageType: ''
    returnType: PlatformResult
    signature: AddRemoveHostAddress(InterfaceType inInterfaceType, const Inet::IPAddress
      & inAddress, uint8_t inPrefixLength, bool inAdd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:204,1
    - Dst: GetLwIPNetifForWarmInterfaceType
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:207,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:208,1
    - Dst: netif_set_default
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:216,1
    - Dst: IPAddr::ToIPv6
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:230,1
    - Dst: ip6_add_route_entry
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:235,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:236,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:239,1
    - Dst: WarmInterfaceTypeToStr
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:240,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:240,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:241,1
    - Dst: ip6_remove_route_entry
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:246,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:256,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:261,1
    - Dst: GetInterfaceName
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:267,1
    - Dst: IPAddr::ToString
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:271,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:273,1
    - Dst: WarmInterfaceTypeToStr
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:277,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:283,1
    - Dst: WarmInterfaceTypeToStr
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:284,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:293,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:298,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:298,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 4
    argNames:
    - inInterfaceType
    - ' inPrefix'
    - inPriority
    - inAdd
    argTypes:
    - InterfaceType
    - Inet::IPPrefix
    - RoutePriority
    - bool
    constantsTouched: []
    func_position:
      end: 302
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 302
    functionName: nl::Weave::Warm::Platform::AddRemoveHostRoute
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp
    functionUses: 0
    functionsReached:
    - ip6_remove_route_entry
    - GetLwIPNetifForWarmInterfaceType
    - LOCK_TCPIP_CORE
    - WeaveLogError
    - nl::Weave::System::MapErrorLwIP
    - WeaveLogProgress
    - IPAddr::ToIPv6
    - WarmInterfaceTypeToStr
    - ExitNow
    - IPAddr::ToString
    - GetInterfaceName
    - UNLOCK_TCPIP_CORE
    - SuccessOrExit
    - ip6_add_route_entry
    - netif_set_default
    - nl::ErrorStr
    linkageType: ''
    returnType: PlatformResult
    signature: AddRemoveHostRoute(InterfaceType inInterfaceType, const Inet::IPPrefix
      & inPrefix, RoutePriority inPriority, bool inAdd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:311,1
    - Dst: ToOpenThreadIP6Address
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:312,1
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:317,1
    - Dst: otIp6AddUnicastAddress
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:321,1
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:321,1
    - Dst: otIp6RemoveUnicastAddress
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:325,1
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:325,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:333,1
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:338,1
    - Dst: Inet::IPAddress::ToString
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:344,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:345,1
    - Dst: CharacterizeIPv6Address
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:347,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:354,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:354,1
    - Dst: MapOpenThreadError
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:354,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - inInterfaceType
    - inAddress
    - inAdd
    argTypes:
    - InterfaceType
    - Inet::IPAddress
    - bool
    constantsTouched: []
    func_position:
      end: 358
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 358
    functionName: nl::Weave::Warm::Platform::AddRemoveThreadAddress
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - WeaveLogProgress
    - ThreadStackMgrImpl
    - otIp6AddUnicastAddress
    - otIp6RemoveUnicastAddress
    - memset
    - Inet::IPAddress::ToString
    - MapOpenThreadError
    - ToOpenThreadIP6Address
    - CharacterizeIPv6Address
    - nl::ErrorStr
    linkageType: ''
    returnType: PlatformResult
    signature: AddRemoveThreadAddress(InterfaceType inInterfaceType, const Inet::IPAddress
      &inAddress, bool inAdd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:370,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:371,1
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:373,1
    - Dst: otThreadGetRloc16
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:382,1
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:382,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:385,1
    - Dst: otBorderRouterAddOnMeshPrefix
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:389,1
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:389,1
    - Dst: otBorderRouterRemoveOnMeshPrefix
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:393,1
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:393,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:396,1
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:401,1
    - Dst: MapOpenThreadError
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:403,1
    - Dst: Inet::IPPrefix::IPAddr::ToString
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:410,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:411,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:418,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:418,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 3
    argNames:
    - inInterfaceType
    - inPrefix
    - inStart
    argTypes:
    - InterfaceType
    - Inet::IPPrefix
    - bool
    constantsTouched: []
    func_position:
      end: 422
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 422
    functionName: nl::Weave::Warm::Platform::StartStopThreadAdvertisement
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - otBorderRouterRemoveOnMeshPrefix
    - WeaveLogProgress
    - otThreadGetRloc16
    - ThreadStackMgrImpl
    - VerifyOrExit
    - memcpy
    - MapOpenThreadError
    - otBorderRouterAddOnMeshPrefix
    - Inet::IPPrefix::IPAddr::ToString
    - nl::ErrorStr
    linkageType: ''
    returnType: PlatformResult
    signature: StartStopThreadAdvertisement(InterfaceType inInterfaceType, const Inet::IPPrefix
      &inPrefix, bool inStart)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:449,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:451,1
    - Dst: otBorderRouterAddRoute
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:458,1
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:458,1
    - Dst: otBorderRouterRemoveRoute
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:462,1
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:462,1
    - Dst: otBorderRouterRegister
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:465,1
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:465,1
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:467,1
    - Dst: Inet::IPPrefix::IPAddr::ToString
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:473,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:474,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:481,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:481,1
    - Dst: MapOpenThreadError
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:481,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - inInterfaceType
    - inPrefix
    - inPriority
    - inAdd
    argTypes:
    - InterfaceType
    - Inet::IPPrefix
    - RoutePriority
    - bool
    constantsTouched: []
    func_position:
      end: 485
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 485
    functionName: nl::Weave::Warm::Platform::AddRemoveThreadRoute
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - WeaveLogProgress
    - ThreadStackMgrImpl
    - otBorderRouterRegister
    - memcpy
    - nl::ErrorStr
    - MapOpenThreadError
    - otBorderRouterAddRoute
    - Inet::IPPrefix::IPAddr::ToString
    - otBorderRouterRemoveRoute
    linkageType: ''
    returnType: PlatformResult
    signature: AddRemoveThreadRoute(InterfaceType inInterfaceType, const Inet::IPPrefix
      &inPrefix, RoutePriority inPriority, bool inAdd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::Platform::AddRemoveThreadRoute
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inInterfaceType
    - inPrefix
    - inPriority
    argTypes:
    - InterfaceType
    - Inet::IPPrefix
    - RoutePriority
    constantsTouched: []
    func_position:
      end: 490
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 490
    functionName: nl::Weave::Warm::Platform::SetThreadRoutePriority
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::Platform::AddRemoveThreadRoute
    linkageType: ''
    returnType: PlatformResult
    signature: SetThreadRoutePriority(InterfaceType inInterfaceType, const Inet::IPPrefix
      &inPrefix, RoutePriority inPriority)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:516,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:523,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:530,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp:534,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 2
    argNames:
    - inInterfaceType
    - ' netif'
    argTypes:
    - InterfaceType
    - struct netif*
    constantsTouched: []
    func_position:
      end: 538
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 538
    functionName: nl::Weave::DeviceLayer::Internal::GetLwIPNetifForWarmInterfaceType
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp
    functionUses: 0
    functionsReached:
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetLwIPNetifForWarmInterfaceType(InterfaceType inInterfaceType, struct
      netif *& netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 547
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 547
    functionName: nl::Weave::DeviceLayer::Internal::LwIPNetifSupportsMLD
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: LwIPNetifSupportsMLD(struct netif * netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - inInterfaceType
    argTypes:
    - InterfaceType
    constantsTouched: []
    func_position:
      end: 566
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 566
    functionName: nl::Weave::DeviceLayer::Internal::WarmInterfaceTypeToStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* WarmInterfaceTypeToStr(InterfaceType inInterfaceType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<GenericThreadStackManagerImpl_FreeRTOS<ThreadStackManagerImpl>*>
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:54,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:56,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:58,1
    - Dst: xTaskGetCurrentTaskHandle
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:61,1
    - Dst: ThreadStackMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:63,1
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:64,1
    - Dst: ThreadStackMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:65,1
    - Dst: otSysMainloopInit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:72,1
    - Dst: ThreadStackMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:74,1
    - Dst: otTaskletsProcess
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:75,1
    - Dst: otSysMainloopUpdate
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:76,1
    - Dst: ThreadStackMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:77,1
    - Dst: otSysMainloopPoll
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:79,1
    - Dst: ThreadStackMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:81,1
    - Dst: otSysMainloopProcess
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:82,1
    - Dst: ThreadStackMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:83,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:87,1
    - Dst: abort
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 91
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 91
    functionName: nl::Weave::DeviceLayer::Internal::GenericThreadStackManagerImpl_FreeRTOS<ThreadStackManagerImpl>::ThreadTaskMain
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - xTaskGetCurrentTaskHandle
    - WeaveLogError
    - otSysMainloopPoll
    - abort
    - otSysMainloopProcess
    - ThreadStackMgr
    - static_cast<GenericThreadStackManagerImpl_FreeRTOS<ThreadStackManagerImpl>*>
    - ThreadStackMgrImpl
    - otSysMainloopInit
    - WeaveLogDetail
    - otSysMainloopUpdate
    - otTaskletsProcess
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: GenericThreadStackManagerImpl_FreeRTOS<ThreadStackManagerImpl>::ThreadTaskMain(void
      * arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::ThreadStackManagerImpl::InitThreadStack
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: nl::Weave::DeviceLayer::ThreadStackManagerImpl::_InitThreadStack
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::ThreadStackManagerImpl::InitThreadStack
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ThreadStackManagerImpl::_InitThreadStack(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericThreadStackManagerImpl_FreeRTOS<ThreadStackManagerImpl>::DoInit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:107,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:108,1
    - Dst: GenericThreadStackManagerImpl_OpenThread_LwIP<ThreadStackManagerImpl>::DoInit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:109,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - otInst
    argTypes:
    - otInstance*
    constantsTouched: []
    func_position:
      end: 114
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 114
    functionName: nl::Weave::DeviceLayer::ThreadStackManagerImpl::InitThreadStack
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - GenericThreadStackManagerImpl_FreeRTOS<ThreadStackManagerImpl>::DoInit
    - GenericThreadStackManagerImpl_OpenThread_LwIP<ThreadStackManagerImpl>::DoInit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ThreadStackManagerImpl::InitThreadStack(otInstance *otInst)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: nl::Weave::DeviceLayer::ThreadStackManagerImpl::IsInitialized
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ThreadStackManagerImpl::IsInitialized()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p_instance
    argTypes:
    - otInstance*
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: otTaskletsSignalPending
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - ThreadStackMgrImpl
    linkageType: ''
    returnType: void
    signature: otTaskletsSignalPending(otInstance *p_instance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:142,1
    - Dst: portYIELD_FROM_ISR
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: otSysEventSignalPending
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - ThreadStackMgrImpl
    - portYIELD_FROM_ISR
    linkageType: ''
    returnType: void
    signature: otSysEventSignalPending(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::InitLwIPCoreLock
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/PlatformManagerImpl.cpp:44,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/PlatformManagerImpl.cpp:45,1
    - Dst: nl::Weave::DeviceLayer::PlatformManagerImpl::_InitWeaveStack
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/PlatformManagerImpl.cpp:49,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/PlatformManagerImpl.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 54
    functionName: nl::Weave::DeviceLayer::PlatformManagerImpl::_InitWeaveStack
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/PlatformManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::DeviceLayer::PlatformManagerImpl::_InitWeaveStack
    - SuccessOrExit
    - nl::Weave::DeviceLayer::Internal::InitLwIPCoreLock
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PlatformManagerImpl::_InitWeaveStack(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::InitLwIPCoreLock
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/PlatformManagerImpl.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: nl::Weave::DeviceLayer::PlatformManagerImpl::InitLwIPCoreLock
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/PlatformManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::InitLwIPCoreLock
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PlatformManagerImpl::InitLwIPCoreLock(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PostEvent
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/PlatformManagerImpl.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - espEvent
    argTypes:
    - void*
    - system_event_t*
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: nl::Weave::DeviceLayer::PlatformManagerImpl::HandleESPSystemEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/PlatformManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - PostEvent
    linkageType: ''
    returnType: esp_err_t
    signature: PlatformManagerImpl::HandleESPSystemEvent(void * ctx, system_event_t
      * espEvent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnsureNamespace
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:81,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:82,1
    - Dst: EnsureNamespace
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:83,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:84,1
    - Dst: EnsureNamespace
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:85,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:86,1
    - Dst: nl_Weave_Stack_Init
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:89,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:90,1
    - Dst: Init
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:93,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:94,1
    - Dst: FactoryProvisioning::ProvisionDeviceFromRAM
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:105,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:106,1
    - Dst: _GetFailSafeArmed
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:112,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:114,1
    - Dst: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_InitiateFactoryReset
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 121
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - nl_Weave_Stack_Init
    - Init
    - FactoryProvisioning::ProvisionDeviceFromRAM
    - SuccessOrExit
    - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_InitiateFactoryReset
    - _GetFailSafeArmed
    - EnsureNamespace
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManagerImpl::_Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: esp_wifi_get_mac
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetPrimaryWiFiMACAddress
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - esp_wifi_get_mac
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManagerImpl::_GetPrimaryWiFiMACAddress(uint8_t * buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetDeviceDescriptor
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:133,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:134,1
    - Dst: nl::Weave::Encoding::BigEndian::Put64
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' deviceDesc'
    argTypes:
    - ::nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor
    constantsTouched: []
    func_position:
      end: 148
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 148
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetDeviceDescriptor
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetDeviceDescriptor
    - nl::Weave::Encoding::BigEndian::Put64
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManagerImpl::_GetDeviceDescriptor(::nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor
      & deviceDesc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetGroupKeyStore
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ::nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase
    signature: '* ConfigurationManagerImpl::_GetGroupKeyStore()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_CanFactoryReset
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ConfigurationManagerImpl::_CanFactoryReset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_InitiateFactoryReset
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - PlatformMgr
    linkageType: ''
    returnType: void
    signature: ConfigurationManagerImpl::_InitiateFactoryReset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - key
    - ' value'
    argTypes:
    - ::nl::Weave::Platform::PersistedStorage::Key
    - uint32_t
    constantsTouched: []
    func_position:
      end: 176
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 176
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_ReadPersistedStorageValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - ReadConfigValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManagerImpl::_ReadPersistedStorageValue(::nl::Weave::Platform::PersistedStorage::Key
      key, uint32_t & value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - ::nl::Weave::Platform::PersistedStorage::Key
    - uint32_t
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_WritePersistedStorageValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WriteConfigValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManagerImpl::_WritePersistedStorageValue(::nl::Weave::Platform::PersistedStorage::Key
      key, uint32_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' secType'
    argTypes:
    - Profiles::NetworkProvisioning::WiFiSecurityType
    constantsTouched: []
    func_position:
      end: 195
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 195
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::GetWiFiStationSecurityType
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - ReadConfigValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManagerImpl::GetWiFiStationSecurityType(Profiles::NetworkProvisioning::WiFiSecurityType
      & secType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::ConfigurationManagerImpl::GetWiFiStationSecurityType
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:204,1
    - Dst: WriteConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:208,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:210,1
    - Dst: ClearConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:214,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - secType
    argTypes:
    - Profiles::NetworkProvisioning::WiFiSecurityType
    constantsTouched: []
    func_position:
      end: 220
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 220
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::UpdateWiFiStationSecurityType
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::ConfigurationManagerImpl::GetWiFiStationSecurityType
    - ClearConfigValue
    - WriteConfigValue
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManagerImpl::UpdateWiFiStationSecurityType(Profiles::NetworkProvisioning::WiFiSecurityType
      secType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:226,1
    - Dst: ClearNamespace
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:229,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:232,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:232,1
    - Dst: esp_wifi_restore
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:236,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:239,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:239,1
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:243,1
    - Dst: otInstanceFactoryReset
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:244,1
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:244,1
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:245,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:249,1
    - Dst: esp_restart
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - arg
    argTypes:
    - intptr_t
    constantsTouched: []
    func_position:
      end: 251
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 251
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::DoFactoryReset
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - esp_restart
    - WeaveLogProgress
    - ThreadStackMgrImpl
    - ClearNamespace
    - esp_wifi_restore
    - nl::ErrorStr
    - otInstanceFactoryReset
    linkageType: ''
    returnType: void
    signature: ConfigurationManagerImpl::DoFactoryReset(intptr_t arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: esp_wifi_get_mode
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:39,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:42,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' apEnabled'
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 49
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 49
    functionName: ESP32Utils::IsAPEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - esp_wifi_get_mode
    - nl::ErrorStr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ESP32Utils::IsAPEnabled(bool & apEnabled)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: esp_wifi_get_config
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: ESP32Utils::IsStationProvisioned
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp
    functionUses: 0
    functionsReached:
    - esp_wifi_get_config
    linkageType: ''
    returnType: bool
    signature: ESP32Utils::IsStationProvisioned(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: esp_wifi_sta_get_ap_info
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' connected'
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: ESP32Utils::IsStationConnected
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp
    functionUses: 0
    functionsReached:
    - esp_wifi_sta_get_ap_info
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ESP32Utils::IsStationConnected(bool & connected)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: esp_wifi_get_max_tx_power
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:73,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:84,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:89,1
    - Dst: esp_wifi_start
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:91,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:94,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:94,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 100
    functionName: ESP32Utils::StartWiFiLayer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - WeaveLogProgress
    - ExitNow
    - esp_wifi_start
    - esp_wifi_get_max_tx_power
    - nl::ErrorStr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ESP32Utils::StartWiFiLayer(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: esp_wifi_get_mode
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:108,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:111,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:111,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:113,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:119,1
    - Dst: ESP32Utils::WiFiModeToStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:119,1
    - Dst: ESP32Utils::WiFiModeToStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:119,1
    - Dst: esp_wifi_set_mode
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:121,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:124,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:124,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 131
    functionName: ESP32Utils::EnableStationMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - WeaveLogProgress
    - esp_wifi_get_mode
    - SuccessOrExit
    - ESP32Utils::WiFiModeToStr
    - nl::ErrorStr
    - esp_wifi_set_mode
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ESP32Utils::EnableStationMode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: esp_wifi_get_mode
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:141,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:144,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:144,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:146,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:152,1
    - Dst: ESP32Utils::WiFiModeToStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:152,1
    - Dst: ESP32Utils::WiFiModeToStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:152,1
    - Dst: esp_wifi_set_mode
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:154,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:157,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:157,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - enabled
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 164
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 164
    functionName: ESP32Utils::SetAPMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - WeaveLogProgress
    - esp_wifi_get_mode
    - SuccessOrExit
    - ESP32Utils::WiFiModeToStr
    - nl::ErrorStr
    - esp_wifi_set_mode
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ESP32Utils::SetAPMode(bool enabled)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - authMode
    argTypes:
    - wifi_auth_mode_t
    constantsTouched: []
    func_position:
      end: 185
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 185
    functionName: ESP32Utils::WiFiAuthModeToWeaveWiFiSecurityType
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WiFiSecurityType
    signature: ESP32Utils::WiFiAuthModeToWeaveWiFiSecurityType(wifi_auth_mode_t authMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - _res1
    - _res2
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 201
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 201
    functionName: ESP32Utils::OrderScanResultsByRSSI
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ESP32Utils::OrderScanResultsByRSSI(const void * _res1, const void *
      _res2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - wifiMode
    argTypes:
    - wifi_mode_t
    constantsTouched: []
    func_position:
      end: 218
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 218
    functionName: ESP32Utils::WiFiModeToStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* ESP32Utils::WiFiModeToStr(wifi_mode_t wifiMode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ESP32Utils::GetNetif
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: ESP32Utils::GetStationNetif
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp
    functionUses: 0
    functionsReached:
    - ESP32Utils::GetNetif
    linkageType: ''
    returnType: struct netif
    signature: '* ESP32Utils::GetStationNetif(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_adapter_get_netif
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - intfId
    argTypes:
    - tcpip_adapter_if_t
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: ESP32Utils::GetNetif
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp
    functionUses: 1
    functionsReached:
    - tcpip_adapter_get_netif
    linkageType: ''
    returnType: struct netif
    signature: '* ESP32Utils::GetNetif(tcpip_adapter_if_t intfId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ESP32Utils::GetNetif
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:233,1
    - Dst: netif_is_up
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - intfId
    argTypes:
    - tcpip_adapter_if_t
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: ESP32Utils::IsInterfaceUp
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp
    functionUses: 0
    functionsReached:
    - ESP32Utils::GetNetif
    - netif_is_up
    linkageType: ''
    returnType: bool
    signature: ESP32Utils::IsInterfaceUp(tcpip_adapter_if_t intfId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - intfId
    argTypes:
    - tcpip_adapter_if_t
    constantsTouched: []
    func_position:
      end: 250
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 250
    functionName: ESP32Utils::InterfaceIdToName
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* ESP32Utils::InterfaceIdToName(tcpip_adapter_if_t intfId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_adapter_get_ip6_linklocal
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - intfId
    argTypes:
    - tcpip_adapter_if_t
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: ESP32Utils::HasIPv6LinkLocalAddress
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp
    functionUses: 0
    functionsReached:
    - tcpip_adapter_get_ip6_linklocal
    linkageType: ''
    returnType: bool
    signature: ESP32Utils::HasIPv6LinkLocalAddress(tcpip_adapter_if_t intfId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nvs_open
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:79,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:80,1
    - Dst: nvs_get_u32
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:83,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:88,1
    - Dst: nvs_close
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - key
    - ' val'
    argTypes:
    - Key
    - bool
    constantsTouched: []
    func_position:
      end: 98
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 98
    functionName: nl::Weave::DeviceLayer::Internal::ESP32Config::ReadConfigValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp
    functionUses: 0
    functionsReached:
    - nvs_get_u32
    - nvs_close
    - nvs_open
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ESP32Config::ReadConfigValue(Key key, bool & val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nvs_open
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:106,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:107,1
    - Dst: nvs_get_u32
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:110,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:115,1
    - Dst: nvs_close
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - key
    - ' val'
    argTypes:
    - Key
    - uint32_t
    constantsTouched: []
    func_position:
      end: 123
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 123
    functionName: nl::Weave::DeviceLayer::Internal::ESP32Config::ReadConfigValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp
    functionUses: 0
    functionsReached:
    - nvs_get_u32
    - nvs_close
    - nvs_open
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ESP32Config::ReadConfigValue(Key key, uint32_t & val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nvs_open
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:131,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:132,1
    - Dst: nvs_get_blob
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:147,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:150,1
    - Dst: nl::Weave::Encoding::BigEndian::Get64
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:151,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:152,1
    - Dst: nvs_get_u64
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:156,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:161,1
    - Dst: nvs_close
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - key
    - ' val'
    argTypes:
    - Key
    - uint64_t
    constantsTouched: []
    func_position:
      end: 169
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 169
    functionName: nl::Weave::DeviceLayer::Internal::ESP32Config::ReadConfigValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::BigEndian::Get64
    - VerifyOrExit
    - ExitNow
    - nvs_close
    - nvs_get_blob
    - SuccessOrExit
    - nvs_get_u64
    - nvs_open
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ESP32Config::ReadConfigValue(Key key, uint64_t & val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nvs_open
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:177,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:178,1
    - Dst: nvs_get_str
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:182,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:192,1
    - Dst: nvs_close
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - key
    - buf
    - bufSize
    - ' outLen'
    argTypes:
    - Key
    - char*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 203
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 203
    functionName: nl::Weave::DeviceLayer::Internal::ESP32Config::ReadConfigValueStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp
    functionUses: 0
    functionsReached:
    - nvs_get_str
    - nvs_close
    - nvs_open
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ESP32Config::ReadConfigValueStr(Key key, char * buf, size_t bufSize,
      size_t & outLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nvs_open
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:211,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:212,1
    - Dst: nvs_get_blob
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:216,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:226,1
    - Dst: nvs_close
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - key
    - buf
    - bufSize
    - ' outLen'
    argTypes:
    - Key
    - uint8_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 235
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 235
    functionName: nl::Weave::DeviceLayer::Internal::ESP32Config::ReadConfigValueBin
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp
    functionUses: 0
    functionsReached:
    - nvs_get_blob
    - nvs_close
    - nvs_open
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ESP32Config::ReadConfigValueBin(Key key, uint8_t * buf, size_t bufSize,
      size_t & outLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nvs_open
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:243,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:244,1
    - Dst: nvs_set_u32
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:247,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:248,1
    - Dst: nvs_commit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:251,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:252,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:254,1
    - Dst: nvs_close
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - Key
    - bool
    constantsTouched: []
    func_position:
      end: 263
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 263
    functionName: nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - nvs_close
    - nvs_commit
    - SuccessOrExit
    - nvs_open
    - nvs_set_u32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ESP32Config::WriteConfigValue(Key key, bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nvs_open
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:271,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:272,1
    - Dst: nvs_set_u32
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:275,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:276,1
    - Dst: nvs_commit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:279,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:280,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:282,1
    - Dst: nvs_close
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - Key
    - uint32_t
    constantsTouched: []
    func_position:
      end: 291
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 291
    functionName: nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - nvs_close
    - nvs_commit
    - SuccessOrExit
    - nvs_open
    - nvs_set_u32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ESP32Config::WriteConfigValue(Key key, uint32_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nvs_open
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:299,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:300,1
    - Dst: nvs_set_u64
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:303,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:304,1
    - Dst: nvs_commit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:307,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:308,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:310,1
    - Dst: nvs_close
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - Key
    - uint64_t
    constantsTouched: []
    func_position:
      end: 319
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 319
    functionName: nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp
    functionUses: 0
    functionsReached:
    - nvs_set_u64
    - WeaveLogProgress
    - nvs_close
    - nvs_commit
    - SuccessOrExit
    - nvs_open
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ESP32Config::WriteConfigValue(Key key, uint64_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nvs_open
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:329,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:330,1
    - Dst: nvs_set_str
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:333,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:334,1
    - Dst: nvs_commit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:337,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:338,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:340,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::ClearConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:345,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:346,1
    - Dst: nvs_close
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - key
    - str
    argTypes:
    - Key
    - char*
    constantsTouched: []
    func_position:
      end: 356
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 356
    functionName: nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValueStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::ESP32Config::ClearConfigValue
    - WeaveLogProgress
    - nvs_close
    - nvs_commit
    - nvs_set_str
    - SuccessOrExit
    - nvs_open
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ESP32Config::WriteConfigValueStr(Key key, const char * str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strndup
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:365,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:366,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValueStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:369,1
    - Dst: free
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - key
    - str
    - strLen
    argTypes:
    - Key
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 377
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 377
    functionName: nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValueStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp
    functionUses: 1
    functionsReached:
    - strndup
    - nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValueStr
    - VerifyOrExit
    - free
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ESP32Config::WriteConfigValueStr(Key key, const char * str, size_t
      strLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nvs_open
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:387,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:388,1
    - Dst: nvs_set_blob
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:391,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:392,1
    - Dst: nvs_commit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:395,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:396,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:398,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::ClearConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:403,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:404,1
    - Dst: nvs_close
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - key
    - data
    - dataLen
    argTypes:
    - Key
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 414
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 414
    functionName: nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValueBin
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp
    functionUses: 0
    functionsReached:
    - nvs_set_blob
    - nl::Weave::DeviceLayer::Internal::ESP32Config::ClearConfigValue
    - WeaveLogProgress
    - nvs_close
    - nvs_commit
    - SuccessOrExit
    - nvs_open
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ESP32Config::WriteConfigValueBin(Key key, const uint8_t * data, size_t
      dataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nvs_open
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:422,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:423,1
    - Dst: nvs_erase_key
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:426,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:429,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:431,1
    - Dst: nvs_commit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:434,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:435,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:437,1
    - Dst: nvs_close
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    constantsTouched: []
    func_position:
      end: 446
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 446
    functionName: nl::Weave::DeviceLayer::Internal::ESP32Config::ClearConfigValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp
    functionUses: 2
    functionsReached:
    - WeaveLogProgress
    - nvs_close
    - ExitNow
    - nvs_commit
    - SuccessOrExit
    - nvs_erase_key
    - nvs_open
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ESP32Config::ClearConfigValue(Key key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nvs_open
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:454,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:455,1
    - Dst: nvs_get_u8
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:470,1
    - Dst: nvs_get_i8
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:475,1
    - Dst: nvs_get_u16
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:480,1
    - Dst: nvs_get_i16
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:485,1
    - Dst: nvs_get_u32
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:490,1
    - Dst: nvs_get_i32
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:495,1
    - Dst: nvs_get_u64
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:500,1
    - Dst: nvs_get_i64
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:505,1
    - Dst: nvs_get_str
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:510,1
    - Dst: nvs_get_blob
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:515,1
    - Dst: nvs_close
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:528,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    constantsTouched: []
    func_position:
      end: 531
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 531
    functionName: nl::Weave::DeviceLayer::Internal::ESP32Config::ConfigValueExists
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp
    functionUses: 0
    functionsReached:
    - nvs_get_i32
    - nvs_get_i64
    - nvs_get_u8
    - nvs_get_u16
    - nvs_close
    - nvs_get_blob
    - nvs_get_i8
    - nvs_get_str
    - nvs_get_i16
    - SuccessOrExit
    - nvs_get_u64
    - nvs_open
    - nvs_get_u32
    linkageType: ''
    returnType: bool
    signature: ESP32Config::ConfigValueExists(Key key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nvs_open
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:539,1
    - Dst: nvs_open
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:542,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:543,1
    - Dst: nvs_commit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:546,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:547,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:549,1
    - Dst: nvs_close
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - ns
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 558
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 558
    functionName: nl::Weave::DeviceLayer::Internal::ESP32Config::EnsureNamespace
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp
    functionUses: 0
    functionsReached:
    - nvs_commit
    - nvs_close
    - nvs_open
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ESP32Config::EnsureNamespace(const char * ns)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nvs_open
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:566,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:567,1
    - Dst: nvs_erase_all
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:570,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:571,1
    - Dst: nvs_commit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:573,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:574,1
    - Dst: nvs_close
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ns
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 582
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 582
    functionName: nl::Weave::DeviceLayer::Internal::ESP32Config::ClearNamespace
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp
    functionUses: 0
    functionsReached:
    - nvs_close
    - nvs_commit
    - SuccessOrExit
    - nvs_open
    - nvs_erase_all
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ESP32Config::ClearNamespace(const char * ns)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: nl::Weave::Platform::Security::AES128BlockCipher::AES128BlockCipher
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: AES128BlockCipher::AES128BlockCipher()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: AES128BlockCipher::~AES128BlockCipher()
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp
    functionUses: 0
    functionsReached:
    - Reset
    linkageType: ''
    returnType: void
    signature: AES128BlockCipher::~AES128BlockCipher()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: nl::Weave::Platform::Security::AES128BlockCipher::Reset
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp
    functionUses: 0
    functionsReached:
    - ClearSecretData
    linkageType: ''
    returnType: void
    signature: AES128BlockCipher::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: nl::Weave::Platform::Security::AES128BlockCipherEnc::SetKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: AES128BlockCipherEnc::SetKey(const uint8_t *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: esp_aes_init
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:66,1
    - Dst: esp_aes_setkey
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:67,1
    - Dst: esp_aes_crypt_ecb
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:69,1
    - Dst: esp_aes_encrypt
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:71,1
    - Dst: esp_aes_free
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - inBlock
    - outBlock
    argTypes:
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 74
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 74
    functionName: nl::Weave::Platform::Security::AES128BlockCipherEnc::EncryptBlock
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp
    functionUses: 0
    functionsReached:
    - esp_aes_setkey
    - esp_aes_free
    - esp_aes_encrypt
    - esp_aes_crypt_ecb
    - esp_aes_init
    linkageType: ''
    returnType: void
    signature: AES128BlockCipherEnc::EncryptBlock(const uint8_t *inBlock, uint8_t
      *outBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: nl::Weave::Platform::Security::AES128BlockCipherDec::SetKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: AES128BlockCipherDec::SetKey(const uint8_t *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: esp_aes_init
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:85,1
    - Dst: esp_aes_setkey
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:86,1
    - Dst: esp_aes_crypt_ecb
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:88,1
    - Dst: esp_aes_decrypt
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:90,1
    - Dst: esp_aes_free
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - inBlock
    - outBlock
    argTypes:
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 93
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 93
    functionName: nl::Weave::Platform::Security::AES128BlockCipherDec::DecryptBlock
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp
    functionUses: 0
    functionsReached:
    - esp_aes_setkey
    - esp_aes_decrypt
    - esp_aes_free
    - esp_aes_crypt_ecb
    - esp_aes_init
    linkageType: ''
    returnType: void
    signature: AES128BlockCipherDec::DecryptBlock(const uint8_t *inBlock, uint8_t
      *outBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: nl::Weave::Platform::Security::AES256BlockCipher::AES256BlockCipher
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: AES256BlockCipher::AES256BlockCipher()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: AES256BlockCipher::~AES256BlockCipher()
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp
    functionUses: 0
    functionsReached:
    - Reset
    linkageType: ''
    returnType: void
    signature: AES256BlockCipher::~AES256BlockCipher()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: nl::Weave::Platform::Security::AES256BlockCipher::Reset
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp
    functionUses: 0
    functionsReached:
    - ClearSecretData
    linkageType: ''
    returnType: void
    signature: AES256BlockCipher::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: nl::Weave::Platform::Security::AES256BlockCipherEnc::SetKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: AES256BlockCipherEnc::SetKey(const uint8_t *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: esp_aes_init
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:119,1
    - Dst: esp_aes_setkey
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:120,1
    - Dst: esp_aes_crypt_ecb
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:122,1
    - Dst: esp_aes_encrypt
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:124,1
    - Dst: esp_aes_free
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - inBlock
    - outBlock
    argTypes:
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 127
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 127
    functionName: nl::Weave::Platform::Security::AES256BlockCipherEnc::EncryptBlock
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp
    functionUses: 0
    functionsReached:
    - esp_aes_setkey
    - esp_aes_free
    - esp_aes_encrypt
    - esp_aes_crypt_ecb
    - esp_aes_init
    linkageType: ''
    returnType: void
    signature: AES256BlockCipherEnc::EncryptBlock(const uint8_t *inBlock, uint8_t
      *outBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: nl::Weave::Platform::Security::AES256BlockCipherDec::SetKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: AES256BlockCipherDec::SetKey(const uint8_t *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: esp_aes_init
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:138,1
    - Dst: esp_aes_setkey
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:139,1
    - Dst: esp_aes_crypt_ecb
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:141,1
    - Dst: esp_aes_decrypt
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:143,1
    - Dst: esp_aes_free
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - inBlock
    - outBlock
    argTypes:
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 146
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 146
    functionName: nl::Weave::Platform::Security::AES256BlockCipherDec::DecryptBlock
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp
    functionUses: 0
    functionsReached:
    - esp_aes_setkey
    - esp_aes_decrypt
    - esp_aes_free
    - esp_aes_crypt_ecb
    - esp_aes_init
    linkageType: ''
    returnType: void
    signature: AES256BlockCipherDec::DecryptBlock(const uint8_t *inBlock, uint8_t
      *outBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::FormKeyName
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:47,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:48,1
    - Dst: ReadConfigValueBin
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:50,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:55,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - keyId
    - ' key'
    argTypes:
    - uint32_t
    - WeaveGroupKey
    constantsTouched: []
    func_position:
      end: 68
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 68
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::RetrieveGroupKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::FormKeyName
    - memcpy
    - ReadConfigValueBin
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::RetrieveGroupKey(uint32_t keyId, WeaveGroupKey &
      key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::FormKeyName
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:79,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:80,1
    - Dst: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::AddKeyToIndex
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:82,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:83,1
    - Dst: nvs_open
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:85,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:86,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:89,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:92,1
    - Dst: nl::Weave::WeaveKeyId::IsAppEpochKey
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:96,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:98,1
    - Dst: nl::Weave::WeaveKeyId::IsAppGroupMasterKey
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:101,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:103,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:109,1
    - Dst: nvs_set_blob
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:114,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:115,1
    - Dst: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::WriteKeyIndex
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:119,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:120,1
    - Dst: nvs_commit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:124,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:125,1
    - Dst: nvs_close
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:130,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:136,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - WeaveGroupKey
    constantsTouched: []
    func_position:
      end: 138
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 138
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::StoreGroupKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::WriteKeyIndex
    - nvs_set_blob
    - ClearSecretData
    - WeaveLogProgress
    - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::AddKeyToIndex
    - nl::Weave::WeaveKeyId::IsAppEpochKey
    - nvs_close
    - nl::Weave::WeaveKeyId::IsAppGroupMasterKey
    - memcpy
    - nvs_commit
    - SuccessOrExit
    - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::FormKeyName
    - nvs_open
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::StoreGroupKey(const WeaveGroupKey & key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteKeyOrKeys
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteGroupKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteKeyOrKeys
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::DeleteGroupKey(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteKeyOrKeys
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyType
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteGroupKeysOfAType
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteKeyOrKeys
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::DeleteGroupKeysOfAType(uint32_t keyType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - keyType
    - keyIds
    - keyIdsArraySize
    - ' keyCount'
    argTypes:
    - uint32_t
    - uint32_t*
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 164
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 164
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::EnumerateGroupKeys
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveKeyId::GetType
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "GroupKeyStoreImpl::EnumerateGroupKeys(uint32_t keyType, uint32_t *
      keyIds,\n        uint8_t keyIdsArraySize, uint8_t & keyCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteKeyOrKeys
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::Clear
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteKeyOrKeys
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 182
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 182
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::RetrieveLastUsedEpochKeyId
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached:
    - ReadConfigValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::RetrieveLastUsedEpochKeyId(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::StoreLastUsedEpochKeyId
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached:
    - WriteConfigValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::StoreLastUsedEpochKeyId(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadConfigValueBin
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:194,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 207
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached:
    - ReadConfigValueBin
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:219,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - keyId
    - ' indexUpdated'
    argTypes:
    - uint32_t
    - bool
    constantsTouched: []
    func_position:
      end: 230
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 230
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::AddKeyToIndex
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp
    functionUses: 1
    functionsReached:
    - VerifyOrExit
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::AddKeyToIndex(uint32_t keyId, bool & indexUpdated)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:234,1
    - Dst: nvs_set_blob
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - nvs_handle
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::WriteKeyIndex
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    - nvs_set_blob
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::WriteKeyIndex(nvs_handle handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:252,1
    - Dst: nvs_open
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:256,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:257,1
    - Dst: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::FormKeyName
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:261,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:262,1
    - Dst: nvs_erase_key
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:264,1
    - Dst: nl::Weave::WeaveKeyId::IsAppRootKey
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:269,1
    - Dst: nl::Weave::WeaveKeyId::IsAppGroupMasterKey
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:273,1
    - Dst: nl::Weave::WeaveKeyId::IsAppEpochKey
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:277,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:285,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:294,1
    - Dst: memmove
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:298,1
    - Dst: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::WriteKeyIndex
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:308,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:309,1
    - Dst: nvs_commit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:312,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:313,1
    - Dst: nvs_close
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:319,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 2
    argNames:
    - targetKeyId
    - targetKeyType
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 322
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 322
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteKeyOrKeys
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::WeaveKeyId::GetType
    - nl::Weave::WeaveKeyId::IsAppRootKey
    - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::WriteKeyIndex
    - memmove
    - WeaveLogProgress
    - nl::Weave::WeaveKeyId::IsAppEpochKey
    - nvs_close
    - nl::Weave::WeaveKeyId::IsAppGroupMasterKey
    - nvs_commit
    - SuccessOrExit
    - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::FormKeyName
    - nvs_erase_key
    - nvs_open
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::DeleteKeyOrKeys(uint32_t targetKeyId, uint32_t targetKeyType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:328,1
    - Dst: strcpy
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:332,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - keyId
    - buf
    - bufSize
    argTypes:
    - uint32_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 341
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 341
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::FormKeyName
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp
    functionUses: 3
    functionsReached:
    - strcpy
    - snprintf
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::FormKeyName(uint32_t keyId, char * buf, size_t bufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericNetworkProvisioningServerImpl<NetworkProvisioningServerImpl>::DoInit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::_Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp
    functionUses: 0
    functionsReached:
    - GenericNetworkProvisioningServerImpl<NetworkProvisioningServerImpl>::DoInit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkProvisioningServerImpl::_Init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:61,1
    - Dst: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::HandleScanDone
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:62,1
    - Dst: esp_wifi_sta_get_ap_info
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:78,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:79,1
    - Dst: ESP32Utils::WiFiAuthModeToWeaveWiFiSecurityType
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:81,1
    - Dst: ConfigurationMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:83,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:84,1
    - Dst: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::_OnPlatformEvent
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:90,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 94
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 94
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::_OnPlatformEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp
    functionUses: 1
    functionsReached:
    - esp_wifi_sta_get_ap_info
    - WeaveLogProgress
    - ConfigurationMgrImpl
    - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::_OnPlatformEvent
    - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::HandleScanDone
    - SuccessOrExit
    - ESP32Utils::WiFiAuthModeToWeaveWiFiSecurityType
    linkageType: ''
    returnType: void
    signature: NetworkProvisioningServerImpl::_OnPlatformEvent(const WeaveDeviceEvent
      * event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:101,1
    - Dst: esp_wifi_get_config
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:103,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:104,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:106,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:111,1
    - Dst: min
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:111,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:111,1
    - Dst: ConfigurationMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:115,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:120,1
    - Dst: min
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:124,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:124,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - ' netInfo'
    - includeCredentials
    argTypes:
    - NetworkInfo
    - bool
    constantsTouched: []
    func_position:
      end: 130
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 130
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::GetWiFiStationProvision
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp
    functionUses: 0
    functionsReached:
    - min
    - esp_wifi_get_config
    - ConfigurationMgrImpl
    - VerifyOrExit
    - Reset
    - strlen
    - memcpy
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkProvisioningServerImpl::GetWiFiStationProvision(NetworkInfo
      & netInfo, bool includeCredentials)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ESP32Utils::EnableStationMode
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:139,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:140,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:143,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:144,1
    - Dst: min
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:144,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:144,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:145,1
    - Dst: min
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:145,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:172,1
    - Dst: esp_wifi_set_config
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:178,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:181,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:181,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:183,1
    - Dst: ConfigurationMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:187,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:188,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:190,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 1
    argNames:
    - ' netInfo'
    argTypes:
    - NetworkInfo
    constantsTouched: []
    func_position:
      end: 194
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 194
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::SetWiFiStationProvision
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp
    functionUses: 0
    functionsReached:
    - min
    - WeaveLogError
    - ConfigurationMgrImpl
    - WeaveLogProgress
    - memset
    - ExitNow
    - ESP32Utils::EnableStationMode
    - strlen
    - memcpy
    - SuccessOrExit
    - esp_wifi_set_config
    - nl::ErrorStr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkProvisioningServerImpl::SetWiFiStationProvision(const NetworkInfo  &
      netInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:202,1
    - Dst: esp_wifi_set_config
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:203,1
    - Dst: ConfigurationMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 209
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::ClearWiFiStationProvision
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp
    functionUses: 0
    functionsReached:
    - ConfigurationMgrImpl
    - esp_wifi_set_config
    - memset
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkProvisioningServerImpl::ClearWiFiStationProvision(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:217,1
    - Dst: esp_wifi_scan_start
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:220,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:221,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 230
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::InitiateWiFiScan
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp
    functionUses: 0
    functionsReached:
    - esp_wifi_scan_start
    - StartTimer
    - memset
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkProvisioningServerImpl::InitiateWiFiScan(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:241,1
    - Dst: CancelTimer
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:247,1
    - Dst: esp_wifi_scan_get_ap_num
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:251,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:252,1
    - Dst: min
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:255,1
    - Dst: malloc
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:258,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:259,1
    - Dst: esp_wifi_scan_get_ap_records
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:263,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:264,1
    - Dst: GetCurrentOp
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:267,1
    - Dst: qsort
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:273,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:276,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:277,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:281,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:281,1
    - Dst: nl::Weave::TLV::TLVWriter::StartContainer
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:282,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:283,1
    - Dst: NetworkInfo::Reset
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:289,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:291,1
    - Dst: min
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:291,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:291,1
    - Dst: ESP32Utils::WiFiAuthModeToWeaveWiFiSecurityType
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:295,1
    - Dst: NetworkInfo::Encode
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:300,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:307,1
    - Dst: nl::Weave::TLV::TLVWriter::EndContainer
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:309,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:310,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:311,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:312,1
    - Dst: SendNetworkScanComplete
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:316,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:318,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:322,1
    - Dst: GetCurrentOp
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:326,1
    - Dst: SendStatusReport
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:328,1
    - Dst: ConnectivityMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:333,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 334
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 334
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::HandleScanDone
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp
    functionUses: 1
    functionsReached:
    - esp_wifi_scan_get_ap_records
    - NetworkInfo::Reset
    - ESP32Utils::WiFiAuthModeToWeaveWiFiSecurityType
    - qsort
    - nl::Weave::TLV::TLVWriter::StartContainer
    - nl::Weave::System::PacketBuffer::New
    - ConnectivityMgr
    - nl::Weave::System::PacketBuffer::Free
    - NetworkInfo::Encode
    - SendNetworkScanComplete
    - VerifyOrExit
    - CancelTimer
    - PacketBuffer*::AvailableDataLength
    - nl::Weave::TLV::TLVWriter::EndContainer
    - esp_wifi_scan_get_ap_num
    - strlen
    - nl::Weave::TLV::TLVWriter::Init
    - min
    - GetCurrentOp
    - memcpy
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::Finalize
    - malloc
    - SendStatusReport
    linkageType: ''
    returnType: void
    signature: NetworkProvisioningServerImpl::HandleScanDone()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:340,1
    - Dst: GetCurrentOp
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:347,1
    - Dst: SendStatusReport
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:349,1
    - Dst: ConnectivityMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - aLayer
    - aAppState
    - aError
    argTypes:
    - ::nl::Weave::System::Layer*
    - void*
    - ::nl::Weave::System::Error
    constantsTouched: []
    func_position:
      end: 354
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 354
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::HandleScanTimeOut
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - ConnectivityMgr
    - SendStatusReport
    - GetCurrentOp
    linkageType: ''
    returnType: void
    signature: NetworkProvisioningServerImpl::HandleScanTimeOut(::nl::Weave::System::Layer
      * aLayer, void * aAppState, ::nl::Weave::System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - wifiSecType
    argTypes:
    - WiFiSecurityType_t
    constantsTouched: []
    func_position:
      end: 365
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 365
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::IsSupportedWiFiSecurityType
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: NetworkProvisioningServerImpl::IsSupportedWiFiSecurityType(WiFiSecurityType_t
      wifiSecType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: esp_random
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/Entropy.cpp:49,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/Entropy.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 60
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 60
    functionName: nl::Weave::DeviceLayer::Internal::GetEntropy_ESP32
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/Entropy.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - esp_random
    linkageType: ''
    returnType: int
    signature: GetEntropy_ESP32(uint8_t *buf, size_t bufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::Security::InitSecureRandomDataSource
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/Entropy.cpp:70,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/Entropy.cpp:71,1
    - Dst: nl::Weave::Platform::Security::GetSecureRandomData
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/Entropy.cpp:74,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/Entropy.cpp:75,1
    - Dst: srand
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/Entropy.cpp:76,1
    - Dst: ESP_LOGI
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/Entropy.cpp:77,1
    - Dst: ESP_LOGE
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/Entropy.cpp:82,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/Entropy.cpp:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 85
    functionName: nl::Weave::DeviceLayer::Internal::InitEntropy
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/Entropy.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Platform::Security::GetSecureRandomData
    - ESP_LOGI
    - nl::Weave::Platform::Security::InitSecureRandomDataSource
    - ErrorStr
    - SuccessOrExit
    - srand
    - ESP_LOGE
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: InitEntropy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: esp_wifi_get_auto_connect
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 95
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_GetWiFiStationMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - esp_wifi_get_auto_connect
    linkageType: ''
    returnType: ConnectivityManager::WiFiStationMode
    signature: ConnectivityManagerImpl::_GetWiFiStationMode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetWiFiStationMode
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_IsWiFiStationEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - GetWiFiStationMode
    linkageType: ''
    returnType: bool
    signature: ConnectivityManagerImpl::_IsWiFiStationEnabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:106,1
    - Dst: esp_wifi_set_auto_connect
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:113,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:115,1
    - Dst: ScheduleWork
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:117,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:122,1
    - Dst: WiFiStationModeToStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:122,1
    - Dst: WiFiStationModeToStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - val
    argTypes:
    - WiFiStationMode
    constantsTouched: []
    func_position:
      end: 129
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 129
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_SetWiFiStationMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - ScheduleWork
    - WeaveLogProgress
    - VerifyOrExit
    - WiFiStationModeToStr
    - esp_wifi_set_auto_connect
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConnectivityManagerImpl::_SetWiFiStationMode(WiFiStationMode val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ESP32Utils::IsStationProvisioned
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_IsWiFiStationProvisioned
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - ESP32Utils::IsStationProvisioned
    linkageType: ''
    returnType: bool
    signature: ConnectivityManagerImpl::_IsWiFiStationProvisioned(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:142,1
    - Dst: esp_wifi_set_config
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:143,1
    - Dst: ScheduleWork
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:145,1
    - Dst: ScheduleWork
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 148
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_ClearWiFiStationProvision
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - ScheduleWork
    - esp_wifi_set_config
    - memset
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::_ClearWiFiStationProvision(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:154,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:158,1
    - Dst: WiFiAPModeToStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:158,1
    - Dst: WiFiAPModeToStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:158,1
    - Dst: ScheduleWork
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - val
    argTypes:
    - WiFiAPMode
    constantsTouched: []
    func_position:
      end: 167
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 167
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_SetWiFiAPMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - ScheduleWork
    - VerifyOrExit
    - WiFiAPModeToStr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConnectivityManagerImpl::_SetWiFiAPMode(WiFiAPMode val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:174,1
    - Dst: ScheduleWork
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 177
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 177
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_DemandStartWiFiAP
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - ScheduleWork
    - nl::Weave::System::Layer::GetClock_MonotonicMS
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::_DemandStartWiFiAP(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScheduleWork
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_StopOnDemandWiFiAP
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - ScheduleWork
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::_StopOnDemandWiFiAP(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 199
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_MaintainOnDemandWiFiAP
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Layer::GetClock_MonotonicMS
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::_MaintainOnDemandWiFiAP(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScheduleWork
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_SetWiFiAPIdleTimeoutMS
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - ScheduleWork
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::_SetWiFiAPIdleTimeoutMS(uint32_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - inChannel
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 223
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 223
    functionName: nl::Weave::DeviceLayer::Map2400MHz
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: Map2400MHz(const uint8_t inChannel)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 130
    argCount: 1
    argNames:
    - inChannel
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 277
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 277
    functionName: nl::Weave::DeviceLayer::Map5000MHz
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: Map5000MHz(const uint8_t inChannel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Map2400MHz
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:284,1
    - Dst: nl::Weave::DeviceLayer::Map5000MHz
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - inBand
    - inChannel
    argTypes:
    - uint16_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 292
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 292
    functionName: nl::Weave::DeviceLayer::MapFrequency
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::Map2400MHz
    - nl::Weave::DeviceLayer::Map5000MHz
    linkageType: ''
    returnType: uint16_t
    signature: MapFrequency(const uint16_t inBand, const uint8_t inChannel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:303,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_IsWiFiStationConnected
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:303,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_IsWiFiStationConnected
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:303,1
    - Dst: esp_wifi_get_config
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:305,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:308,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:308,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:310,1
    - Dst: esp_wifi_get_channel
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:312,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:315,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:315,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:317,1
    - Dst: MapFrequency
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:320,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:331,1
    - Dst: nl::LogEvent
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:348,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 353
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_GetAndLogWifiStatsCounters
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - esp_wifi_get_config
    - WeaveLogProgress
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_IsWiFiStationConnected
    - VerifyOrExit
    - esp_wifi_get_channel
    - SuccessOrExit
    - MapFrequency
    - nl::LogEvent
    - nl::ErrorStr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConnectivityManagerImpl::_GetAndLogWifiStatsCounters(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:359,1
    - Dst: ScheduleWork
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - val
    argTypes:
    - ServiceTunnelMode
    constantsTouched: []
    func_position:
      end: 367
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 367
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_SetServiceTunnelMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - ScheduleWork
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConnectivityManagerImpl::_SetServiceTunnelMode(ServiceTunnelMode val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetWeaveTunnelAgentState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 375
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 375
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_IsServiceTunnelConnected
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - GetWeaveTunnelAgentState
    linkageType: ''
    returnType: bool
    signature: ConnectivityManagerImpl::_IsServiceTunnelConnected(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsTunnelRoutingRestricted
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 380
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 380
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_IsServiceTunnelRestricted
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - IsTunnelRoutingRestricted
    linkageType: ''
    returnType: bool
    signature: ConnectivityManagerImpl::_IsServiceTunnelRestricted(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsServiceTunnelConnected
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:384,1
    - Dst: IsServiceTunnelRestricted
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 385
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 385
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_HaveServiceConnectivityViaTunnel
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - IsServiceTunnelConnected
    - IsServiceTunnelRestricted
    linkageType: ''
    returnType: bool
    signature: ConnectivityManagerImpl::_HaveServiceConnectivityViaTunnel(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_Weave_Stack_Init
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:406,1
    - Dst: nl::Weave::Warm::Init
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:410,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:411,1
    - Dst: InitServiceTunnelAgent
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:414,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:415,1
    - Dst: ESP32Utils::EnableStationMode
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:419,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:420,1
    - Dst: IsWiFiStationProvisioned
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:423,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:428,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:432,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:433,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:433,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:434,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:434,1
    - Dst: esp_wifi_set_config
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:437,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:440,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:440,1
    - Dst: SetWiFiStationMode
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:445,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:446,1
    - Dst: SetWiFiStationMode
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:452,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:453,1
    - Dst: ESP32Utils::SetAPMode
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:458,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:459,1
    - Dst: ScheduleWork
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:462,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:463,1
    - Dst: ScheduleWork
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:464,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:465,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 469
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 469
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - InitServiceTunnelAgent
    - ScheduleWork
    - WeaveLogError
    - IsWiFiStationProvisioned
    - WeaveLogProgress
    - memset
    - ESP32Utils::SetAPMode
    - nl_Weave_Stack_Init
    - ESP32Utils::EnableStationMode
    - memcpy
    - strlen
    - nl::Weave::Warm::Init
    - SuccessOrExit
    - SetWiFiStationMode
    - esp_wifi_set_config
    - nl::ErrorStr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConnectivityManagerImpl::_Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:478,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveStationState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:479,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:482,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::ChangeWiFiStationState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:485,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveStationState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:487,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:490,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::ChangeWiFiStationState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:493,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveStationState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:495,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:498,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveStationState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:499,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:502,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::OnStationIPv4AddressAvailable
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:503,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:506,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::OnStationIPv4AddressLost
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:507,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:510,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::OnIPv6AddressAvailable
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:511,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:514,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::ChangeWiFiAPState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:515,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveAPState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:516,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:519,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::ChangeWiFiAPState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:520,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveAPState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:521,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:524,1
    - Dst: MaintainOnDemandWiFiAP
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:525,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveServiceTunnelState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:535,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveServiceTunnelState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:541,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:555,1
    - Dst: IsTunnelRoutingRestricted
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:556,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:558,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:559,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:560,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveServiceTunnelState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:561,1
    - Dst: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::_OnPlatformEvent
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:568,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 570
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 570
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_OnPlatformEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::OnIPv6AddressAvailable
    - WeaveLogProgress
    - ClearFlag
    - GetFlag
    - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::_OnPlatformEvent
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveAPState
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveStationState
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::OnStationIPv4AddressLost
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveServiceTunnelState
    - StopServiceTunnel
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::ChangeWiFiStationState
    - MaintainOnDemandWiFiAP
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::OnStationIPv4AddressAvailable
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::ChangeWiFiAPState
    - IsTunnelRoutingRestricted
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::_OnPlatformEvent(const WeaveDeviceEvent *
      event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScheduleWork
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 577
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 577
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_OnWiFiScanDone
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - ScheduleWork
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::_OnWiFiScanDone()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScheduleWork
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 583
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 583
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_OnWiFiStationProvisionChange
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - ScheduleWork
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::_OnWiFiStationProvisionChange()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetWiFiStationMode
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:595,1
    - Dst: ESP32Utils::StartWiFiLayer
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:601,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:602,1
    - Dst: ESP32Utils::EnableStationMode
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:605,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:606,1
    - Dst: ESP32Utils::IsStationConnected
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:610,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:611,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::ChangeWiFiStationState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:621,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:622,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::OnStationConnected
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:624,1
    - Dst: IsWiFiStationProvisioned
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:631,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:633,1
    - Dst: esp_wifi_disconnect
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:634,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:637,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:637,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:639,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::ChangeWiFiStationState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:641,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::ChangeWiFiStationState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:657,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:660,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::OnStationDisconnected
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:662,1
    - Dst: IsWiFiStationProvisioned
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:673,1
    - Dst: NetworkProvisioningSvr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:673,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:679,1
    - Dst: esp_wifi_connect
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:680,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:683,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:683,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:685,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::ChangeWiFiStationState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:687,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:695,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:697,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:698,1
    - Dst: NetworkProvisioningSvr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:707,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 708
      start: 587
    functionDepth: 2
    functionLinenumber: 587
    functionLinenumberEnd: 708
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveStationState
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - esp_wifi_disconnect
    - WeaveLogError
    - GetWiFiStationMode
    - IsWiFiStationProvisioned
    - WeaveLogProgress
    - NetworkProvisioningSvr
    - ESP32Utils::EnableStationMode
    - ESP32Utils::StartWiFiLayer
    - StartTimer
    - ESP32Utils::IsStationConnected
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::ChangeWiFiStationState
    - SuccessOrExit
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::OnStationDisconnected
    - esp_wifi_connect
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::OnStationConnected
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::DriveStationState()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_adapter_create_ip6_linklocal
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:715,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:718,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:718,1
    - Dst: nl::Weave::Warm::WiFiInterfaceStateChange
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:722,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:728,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::UpdateInternetConnectivityState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 731
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 731
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::OnStationConnected
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - PlatformMgr
    - WeaveLogError
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::UpdateInternetConnectivityState
    - tcpip_adapter_create_ip6_linklocal
    - nl::Weave::Warm::WiFiInterfaceStateChange
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::OnStationConnected()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::WiFiInterfaceStateChange
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:736,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:742,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::UpdateInternetConnectivityState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 745
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 745
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::OnStationDisconnected
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - PlatformMgr
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::UpdateInternetConnectivityState
    - nl::Weave::Warm::WiFiInterfaceStateChange
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::OnStationDisconnected()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:751,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::WiFiStationStateToStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:751,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::WiFiStationStateToStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - newState
    argTypes:
    - WiFiStationState
    constantsTouched: []
    func_position:
      end: 754
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 754
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::ChangeWiFiStationState
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 2
    functionsReached:
    - WeaveLogProgress
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::WiFiStationStateToStr
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::ChangeWiFiStationState(WiFiStationState newState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveStationState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aLayer
    - aAppState
    - aError
    argTypes:
    - nl::Weave::System::Layer*
    - void*
    - nl::Weave::System::Error
    constantsTouched: []
    func_position:
      end: 759
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 759
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveStationState
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveStationState
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::DriveStationState(nl::Weave::System::Layer
      * aLayer, void * aAppState, nl::Weave::System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ESP32Utils::IsAPEnabled
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:770,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:771,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::ChangeWiFiAPState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:776,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::ChangeWiFiAPState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:780,1
    - Dst: ESP32Utils::StartWiFiLayer
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:787,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:788,1
    - Dst: IsWiFiStationProvisioned
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:808,1
    - Dst: GetWiFiStationMode
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:808,1
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:818,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:827,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:828,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:829,1
    - Dst: ESP32Utils::SetAPMode
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:854,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:855,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::ConfigureWiFiAP
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:857,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:858,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::ChangeWiFiAPState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:860,1
    - Dst: ESP32Utils::SetAPMode
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:871,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:872,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::ChangeWiFiAPState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:874,1
    - Dst: ESP32Utils::IsInterfaceUp
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:883,1
    - Dst: ESP32Utils::HasIPv6LinkLocalAddress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:884,1
    - Dst: tcpip_adapter_create_ip6_linklocal
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:886,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:889,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:889,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:891,1
    - Dst: SetWiFiAPMode
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:897,1
    - Dst: ESP32Utils::SetAPMode
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:898,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 900
      start: 761
    functionDepth: 2
    functionLinenumber: 761
    functionLinenumberEnd: 900
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveAPState
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - ESP32Utils::IsAPEnabled
    - WeaveLogError
    - GetWiFiStationMode
    - IsWiFiStationProvisioned
    - ESP32Utils::IsInterfaceUp
    - WeaveLogProgress
    - SetWiFiAPMode
    - ESP32Utils::SetAPMode
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::ConfigureWiFiAP
    - ESP32Utils::StartWiFiLayer
    - nl::Weave::System::Layer::GetClock_MonotonicMS
    - StartTimer
    - tcpip_adapter_create_ip6_linklocal
    - SuccessOrExit
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::ChangeWiFiAPState
    - nl::ErrorStr
    - ESP32Utils::HasIPv6LinkLocalAddress
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::DriveAPState()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:907,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:908,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:909,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:914,1
    - Dst: esp_wifi_set_config
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:915,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:918,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:918,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 924
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 924
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::ConfigureWiFiAP
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogError
    - ConfigurationMgr
    - WeaveLogProgress
    - memset
    - SuccessOrExit
    - esp_wifi_set_config
    - nl::ErrorStr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConnectivityManagerImpl::ConfigureWiFiAP()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:930,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::WiFiAPStateToStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:930,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::WiFiAPStateToStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:930,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - newState
    argTypes:
    - WiFiAPState
    constantsTouched: []
    func_position:
      end: 933
      start: 926
    functionDepth: 1
    functionLinenumber: 926
    functionLinenumberEnd: 933
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::ChangeWiFiAPState
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 2
    functionsReached:
    - WeaveLogProgress
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::WiFiAPStateToStr
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::ChangeWiFiAPState(WiFiAPState newState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveAPState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aLayer
    - aAppState
    - aError
    argTypes:
    - nl::Weave::System::Layer*
    - void*
    - nl::Weave::System::Error
    constantsTouched: []
    func_position:
      end: 938
      start: 935
    functionDepth: 1
    functionLinenumber: 935
    functionLinenumberEnd: 938
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveAPState
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveAPState
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::DriveAPState(nl::Weave::System::Layer * aLayer,
      void * aAppState, nl::Weave::System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ESP32Utils::GetStationNetif
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:951,1
    - Dst: netif_is_up
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:954,1
    - Dst: netif_is_link_up
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:954,1
    - Dst: dns_getserver
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:958,1
    - Dst: ip_addr_isany_val
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:959,1
    - Dst: dns_getserver
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:961,1
    - Dst: ip_addr_isany_val
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:962,1
    - Dst: ip4_addr_isany_val
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:968,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:968,1
    - Dst: ip4_addr_isany_val
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:969,1
    - Dst: netif_ip4_gw
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:969,1
    - Dst: ip6_addr_isglobal
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:978,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:978,1
    - Dst: ip6_addr_isvalid
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:979,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:979,1
    - Dst: nd6_select_router
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:984,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:998,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:999,1
    - Dst: GetConnectivityChange
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1004,1
    - Dst: GetConnectivityChange
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1005,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1006,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1010,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1015,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveServiceTunnelState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1018,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 940
    functionDepth: 2
    functionLinenumber: 940
    functionLinenumberEnd: 1020
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::UpdateInternetConnectivityState
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 2
    functionsReached:
    - nd6_select_router
    - netif_ip4_addr
    - netif_ip6_addr
    - PlatformMgr
    - GetConnectivityChange
    - WeaveLogProgress
    - netif_is_up
    - ip_addr_isany_val
    - ip4_addr_isany_val
    - netif_ip6_addr_state
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveServiceTunnelState
    - ESP32Utils::GetStationNetif
    - ip6_addr_isvalid
    - SetFlag
    - ip6_addr_isglobal
    - netif_ip4_gw
    - netif_is_link_up
    - dns_getserver
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::UpdateInternetConnectivityState(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::FromIPv4
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1027,1
    - Dst: nl::Inet::IPAddress::FromIPv4
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1028,1
    - Dst: nl::Inet::IPAddress::FromIPv4
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1029,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1030,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::RefreshMessageLayer
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1036,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::UpdateInternetConnectivityState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' got_ip'
    argTypes:
    - system_event_sta_got_ip_t
    constantsTouched: []
    func_position:
      end: 1039
      start: 1022
    functionDepth: 3
    functionLinenumber: 1022
    functionLinenumberEnd: 1039
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::OnStationIPv4AddressAvailable
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::RefreshMessageLayer
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::UpdateInternetConnectivityState
    - nl::Inet::IPAddress::FromIPv4
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::OnStationIPv4AddressAvailable(const system_event_sta_got_ip_t
      & got_ip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1043,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::RefreshMessageLayer
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1045,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::UpdateInternetConnectivityState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1041
    functionDepth: 3
    functionLinenumber: 1041
    functionLinenumberEnd: 1048
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::OnStationIPv4AddressLost
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::RefreshMessageLayer
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::UpdateInternetConnectivityState
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::OnStationIPv4AddressLost(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1054,1
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1056,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1057,1
    - Dst: CharacterizeIPv6Address
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1058,1
    - Dst: ESP32Utils::InterfaceIdToName
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1059,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::RefreshMessageLayer
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1064,1
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::UpdateInternetConnectivityState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' got_ip'
    argTypes:
    - system_event_got_ip6_t
    constantsTouched: []
    func_position:
      end: 1067
      start: 1050
    functionDepth: 3
    functionLinenumber: 1050
    functionLinenumberEnd: 1067
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::OnIPv6AddressAvailable
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::RefreshMessageLayer
    - WeaveLogProgress
    - nl::Inet::IPAddress::FromIPv6
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::UpdateInternetConnectivityState
    - IPAddress::ToString
    - ESP32Utils::InterfaceIdToName
    - CharacterizeIPv6Address
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::OnIPv6AddressAvailable(const system_event_got_ip6_t
      & got_ip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1076,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1077,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1079,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1084,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1087,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1092,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1094,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1097,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1097,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1098,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1104,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1105,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1069
    functionDepth: 1
    functionLinenumber: 1069
    functionLinenumberEnd: 1108
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveServiceTunnelState
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 2
    functionsReached:
    - WeaveLogError
    - ConfigurationMgr
    - WeaveLogProgress
    - ClearFlag
    - GetFlag
    - StopServiceTunnel
    - SetFlag
    - nl::ErrorStr
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::DriveServiceTunnelState(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveServiceTunnelState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aLayer
    - aAppState
    - aError
    argTypes:
    - nl::Weave::System::Layer*
    - void*
    - nl::Weave::System::Error
    constantsTouched: []
    func_position:
      end: 1113
      start: 1110
    functionDepth: 1
    functionLinenumber: 1110
    functionLinenumberEnd: 1113
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveServiceTunnelState
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveServiceTunnelState
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::DriveServiceTunnelState(nl::Weave::System::Layer
      * aLayer, void * aAppState, nl::Weave::System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - mode
    argTypes:
    - WiFiStationMode
    constantsTouched: []
    func_position:
      end: 1130
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1130
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_WiFiStationModeToStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* ConnectivityManagerImpl::_WiFiStationModeToStr(WiFiStationMode mode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - mode
    argTypes:
    - WiFiAPMode
    constantsTouched: []
    func_position:
      end: 1151
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1151
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_WiFiAPModeToStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* ConnectivityManagerImpl::_WiFiAPModeToStr(WiFiAPMode mode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - mode
    argTypes:
    - ServiceTunnelMode
    constantsTouched: []
    func_position:
      end: 1166
      start: 1153
    functionDepth: 0
    functionLinenumber: 1153
    functionLinenumberEnd: 1166
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_ServiceTunnelModeToStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* ConnectivityManagerImpl::_ServiceTunnelModeToStr(ServiceTunnelMode
      mode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - state
    argTypes:
    - WiFiStationState
    constantsTouched: []
    func_position:
      end: 1187
      start: 1168
    functionDepth: 0
    functionLinenumber: 1168
    functionLinenumberEnd: 1187
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::WiFiStationStateToStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* ConnectivityManagerImpl::WiFiStationStateToStr(WiFiStationState
      state)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - WiFiAPState
    constantsTouched: []
    func_position:
      end: 1204
      start: 1189
    functionDepth: 0
    functionLinenumber: 1189
    functionLinenumberEnd: 1204
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::WiFiAPStateToStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* ConnectivityManagerImpl::WiFiAPStateToStr(WiFiAPState state)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RefreshEndpoints
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1208,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1211,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1206
    functionDepth: 1
    functionLinenumber: 1206
    functionLinenumberEnd: 1213
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::RefreshMessageLayer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 3
    functionsReached:
    - WeaveLogError
    - RefreshEndpoints
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::RefreshMessageLayer(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1225,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1228,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1228,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1233,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1243,1
    - Dst: WeaveDeviceEvent::Clear
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1247,1
    - Dst: GetConnectivityChange
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1249,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1251,1
    - Dst: WeaveDeviceEvent::Clear
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1260,1
    - Dst: HaveServiceConnectivityViaThread
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1264,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp:1267,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - reason
    - err
    - appCtxt
    argTypes:
    - WeaveTunnelConnectionMgr::TunnelConnNotifyReasons
    - WEAVE_ERROR
    - void*
    constantsTouched: []
    func_position:
      end: 1270
      start: 1215
    functionDepth: 1
    functionLinenumber: 1215
    functionLinenumberEnd: 1270
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::HandleServiceTunnelNotification
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - HaveServiceConnectivityViaThread
    - GetConnectivityChange
    - WeaveLogProgress
    - SetFlag
    - WeaveDeviceEvent::Clear
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: "ConnectivityManagerImpl::HandleServiceTunnelNotification(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons
      reason,\n            WEAVE_ERROR err, void *appCtxt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Ble::BleLayer::Init
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:115,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:116,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:118,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:126,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 132
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - memset
    - nl::Ble::BleLayer::Init
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::_Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:138,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:139,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - val
    argTypes:
    - WoBLEServiceMode
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetWoBLEServiceMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::_SetWoBLEServiceMode(WoBLEServiceMode val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:155,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:157,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:159,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 165
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 165
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - GetFlag
    - VerifyOrExit
    - SetFlag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::_SetAdvertisingEnabled(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:171,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:173,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:175,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 181
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 181
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetFastAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - GetFlag
    - VerifyOrExit
    - SetFlag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::_SetFastAdvertisingEnabled(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:185,1
    - Dst: strcpy
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 191
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 191
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_GetDeviceName
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - strcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::_GetDeviceName(char * buf, size_t bufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:201,1
    - Dst: strcpy
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:205,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:206,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - deviceName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 214
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 214
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetDeviceName
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - ClearFlag
    - SetFlag
    - strcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::_SetDeviceName(const char * deviceName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HandleSubscribeReceived
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:221,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:225,1
    - Dst: HandleUnsubscribeReceived
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:230,1
    - Dst: HandleWriteReceived
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:234,1
    - Dst: HandleIndicationConfirmation
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:238,1
    - Dst: HandleConnectionError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:242,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:253,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:255,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:256,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:261,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::DriveBLEState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:263,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 268
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 268
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_OnPlatformEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - HandleWriteReceived
    - ConfigurationMgr
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::DriveBLEState
    - HandleUnsubscribeReceived
    - ClearFlag
    - WeaveLogProgress
    - HandleSubscribeReceived
    - HandleIndicationConfirmation
    - HandleConnectionError
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::_OnPlatformEvent(const WeaveDeviceEvent * event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - conId
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveBleUUID*
    - WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 274
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 274
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SubscribeCharacteristic
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::SubscribeCharacteristic(BLE_CONNECTION_OBJECT conId,
      const WeaveBleUUID * svcId, const WeaveBleUUID * charId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - conId
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveBleUUID*
    - WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::UnsubscribeCharacteristic
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::UnsubscribeCharacteristic(BLE_CONNECTION_OBJECT conId,
      const WeaveBleUUID * svcId, const WeaveBleUUID * charId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:286,1
    - Dst: esp_ble_gatts_close
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:289,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:292,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:292,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::ReleaseConnectionState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:296,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:299,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:300,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - conId
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 304
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 304
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::CloseConnection
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - WeaveLogError
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::ReleaseConnectionState
    - WeaveLogProgress
    - esp_ble_gatts_close
    - ClearFlag
    - SetFlag
    - ErrorStr
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::CloseConnection(BLE_CONNECTION_OBJECT conId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<BLEManagerImpl *>
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conId
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 310
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 310
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetMTU
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - const_cast<BLEManagerImpl *>
    linkageType: ''
    returnType: uint16_t
    signature: BLEManagerImpl::GetMTU(BLE_CONNECTION_OBJECT conId) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:315,1
    - Dst: ESP_LOGD
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:317,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:317,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:319,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:321,1
    - Dst: esp_ble_gatts_send_indicate
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:323,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:323,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:323,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:326,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:326,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:327,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:338,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:338,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 4
    argNames:
    - conId
    - svcId
    - charId
    - data
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveBleUUID*
    - WeaveBleUUID*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 343
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 343
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendIndication
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - esp_ble_gatts_send_indicate
    - WeaveLogError
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - ExitNow
    - PacketBuffer*::Start
    - ESP_LOGD
    - ErrorStr
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::SendIndication(BLE_CONNECTION_OBJECT conId, const WeaveBleUUID
      * svcId, const WeaveBleUUID * charId, PacketBuffer * data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - conId
    - svcId
    - charId
    - pBuf
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveBleUUID*
    - WeaveBleUUID*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendWriteRequest
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::SendWriteRequest(BLE_CONNECTION_OBJECT conId, const
      WeaveBleUUID * svcId, const WeaveBleUUID * charId, PacketBuffer * pBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - conId
    - svcId
    - charId
    - pBuf
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveBleUUID*
    - WeaveBleUUID*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 355
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 355
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendReadRequest
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::SendReadRequest(BLE_CONNECTION_OBJECT conId, const
      WeaveBleUUID * svcId, const WeaveBleUUID * charId, PacketBuffer * pBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - conId
    - requestContext
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - BLE_READ_REQUEST_CONTEXT
    - WeaveBleUUID*
    - WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 361
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 361
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendReadResponse
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::SendReadResponse(BLE_CONNECTION_OBJECT conId, BLE_READ_REQUEST_CONTEXT
      requestContext, const WeaveBleUUID * svcId, const WeaveBleUUID * charId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - conId
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::NotifyWeaveConnectionClosed
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::NotifyWeaveConnectionClosed(BLE_CONNECTION_OBJECT conId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:372,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:374,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:379,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:381,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:382,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:388,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:388,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:391,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::InitESPBleLayer
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:393,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:394,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:398,1
    - Dst: esp_ble_gatts_app_register
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:400,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:403,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:403,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:404,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:407,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:409,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:413,1
    - Dst: esp_ble_gatts_create_attr_tab
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:415,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:418,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:418,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:419,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:422,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:424,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:428,1
    - Dst: esp_ble_gatts_start_service
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:430,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:433,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:433,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:434,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:437,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:439,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:443,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_NumConnections
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:446,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:452,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:452,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:457,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::ConfigureAdvertisingData
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:459,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:460,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::StartAdvertising
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:464,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:465,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:472,1
    - Dst: esp_ble_gap_stop_advertising
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:474,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:477,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:477,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:478,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:481,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:483,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:488,1
    - Dst: esp_ble_gatts_stop_service
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:492,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:495,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:495,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:496,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:499,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:501,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:507,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:507,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 510
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 510
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::DriveBLEState
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - esp_ble_gatts_start_service
    - GetFlag
    - esp_ble_gatts_create_attr_tab
    - WeaveLogError
    - ConfigurationMgr
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::InitESPBleLayer
    - VerifyOrExit
    - SuccessOrExit
    - SetFlag
    - esp_ble_gatts_app_register
    - WeaveLogProgress
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::ConfigureAdvertisingData
    - ExitNow
    - esp_ble_gatts_stop_service
    - ErrorStr
    - esp_ble_gap_stop_advertising
    - ClearFlag
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_NumConnections
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::StartAdvertising
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::DriveBLEState(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:516,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:516,1
    - Dst: esp_bt_controller_get_status
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:519,1
    - Dst: esp_bt_controller_mem_release
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:522,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:525,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:525,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:526,1
    - Dst: BT_CONTROLLER_INIT_CONFIG_DEFAULT
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:530,1
    - Dst: esp_bt_controller_init
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:531,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:534,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:534,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:535,1
    - Dst: esp_bt_controller_get_status
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:540,1
    - Dst: esp_bt_controller_enable
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:542,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:545,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:545,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:546,1
    - Dst: esp_bluedroid_get_status
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:551,1
    - Dst: esp_bluedroid_init
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:553,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:556,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:556,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:557,1
    - Dst: esp_bluedroid_get_status
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:562,1
    - Dst: esp_bluedroid_enable
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:564,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:567,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:567,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:568,1
    - Dst: esp_ble_gatts_register_callback
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:573,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:576,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:576,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:577,1
    - Dst: esp_ble_gap_register_callback
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:581,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:584,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:584,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:585,1
    - Dst: esp_ble_gatt_set_local_mtu
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:589,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:591,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:591,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:593,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:595,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 599
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 599
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::InitESPBleLayer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - esp_ble_gatts_register_callback
    - WeaveLogError
    - esp_bluedroid_enable
    - esp_ble_gatt_set_local_mtu
    - BT_CONTROLLER_INIT_CONFIG_DEFAULT
    - GetFlag
    - VerifyOrExit
    - ExitNow
    - esp_bt_controller_enable
    - esp_bluedroid_get_status
    - esp_ble_gap_register_callback
    - SuccessOrExit
    - esp_bluedroid_init
    - ErrorStr
    - esp_bt_controller_init
    - SetFlag
    - esp_bt_controller_mem_release
    - esp_bt_controller_get_status
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::InitESPBleLayer(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:609,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:611,1
    - Dst: esp_ble_gap_set_device_name
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:618,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:621,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:621,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:622,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:626,1
    - Dst: esp_ble_gap_config_adv_data
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:640,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:643,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:643,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:644,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:649,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:650,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:651,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:654,1
    - Dst: esp_ble_gap_config_adv_data
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:668,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:671,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:671,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:672,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:675,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 679
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 679
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::ConfigureAdvertisingData
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogError
    - esp_ble_gap_config_adv_data
    - esp_ble_gap_set_device_name
    - ConfigurationMgr
    - GetFlag
    - ExitNow
    - memset
    - memcpy
    - snprintf
    - SetFlag
    - SuccessOrExit
    - ErrorStr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::ConfigureAdvertisingData(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThreadStackMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:698,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:709,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:709,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:713,1
    - Dst: esp_ble_gap_start_advertising
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:718,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:721,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:721,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:722,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:725,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 729
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 729
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::StartAdvertising
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogError
    - ConfigurationMgr
    - WeaveLogProgress
    - GetFlag
    - ThreadStackMgr
    - ExitNow
    - SetFlag
    - ErrorStr
    - esp_ble_gap_start_advertising
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::StartAdvertising(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:737,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:739,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:750,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:751,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:757,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:767,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:768,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:777,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:786,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:787,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:790,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:792,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:802,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:803,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:806,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:808,1
    - Dst: ESP_LOGD
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:814,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:825,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:825,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:830,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:831,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 3
    argNames:
    - event
    - gatts_if
    - param
    argTypes:
    - esp_gatts_cb_event_t
    - esp_gatt_if_t
    - esp_ble_gatts_cb_param_t*
    constantsTouched: []
    func_position:
      end: 833
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 833
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleGATTControlEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - WeaveLogError
    - WeaveLogProgress
    - ClearFlag
    - GetFlag
    - ExitNow
    - SetFlag
    - ESP_LOGD
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::HandleGATTControlEvent(esp_gatts_cb_event_t event,
      esp_gatt_if_t gatts_if, esp_ble_gatts_cb_param_t * param)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:839,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:847,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:850,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:854,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:855,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:856,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleDisconnect
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:861,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharRead
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:867,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharCCCDRead
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:871,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleRXCharWrite
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:878,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharCCCDWrite
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:882,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:888,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharConfirm
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:891,1
    - Dst: ESP_LOGD
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:898,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:899,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 3
    argNames:
    - event
    - gatts_if
    - param
    argTypes:
    - esp_gatts_cb_event_t
    - esp_gatt_if_t
    - esp_ble_gatts_cb_param_t*
    constantsTouched: []
    func_position:
      end: 910
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 910
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleGATTCommEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleDisconnect
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
    - WeaveLogProgress
    - ClearFlag
    - GetFlag
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleRXCharWrite
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharCCCDWrite
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharConfirm
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharCCCDRead
    - SetFlag
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharRead
    - ESP_LOGD
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::HandleGATTCommEvent(esp_gatts_cb_event_t event, esp_gatt_if_t
      gatts_if, esp_ble_gatts_cb_param_t * param)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ESP_LOGD
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:918,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:921,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:924,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:925,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:926,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:926,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:927,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:927,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:928,1
    - Dst: esp_ble_gatts_send_response
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:933,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:943,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:950,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:950,1
    - Dst: esp_ble_gatts_send_response
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:953,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:957,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - param
    argTypes:
    - esp_ble_gatts_cb_param_t*
    constantsTouched: []
    func_position:
      end: 958
      start: 912
    functionDepth: 3
    functionLinenumber: 912
    functionLinenumberEnd: 958
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleRXCharWrite
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - PlatformMgr
    - esp_ble_gatts_send_response
    - PacketBuffer*::SetDataLength
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - memcpy
    - PacketBuffer*::Start
    - ESP_LOGD
    - ErrorStr
    - nl::Weave::System::PacketBuffer::New
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::HandleRXCharWrite(esp_ble_gatts_cb_param_t * param)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ESP_LOGD
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:965,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:968,1
    - Dst: esp_ble_gatts_send_response
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:970,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:973,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - param
    argTypes:
    - esp_ble_gatts_cb_param_t*
    constantsTouched: []
    func_position:
      end: 975
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 975
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharRead
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - esp_ble_gatts_send_response
    - WeaveLogError
    - memset
    - ESP_LOGD
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::HandleTXCharRead(esp_ble_gatts_cb_param_t * param)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ESP_LOGD
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:983,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:986,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:989,1
    - Dst: esp_ble_gatts_send_response
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:996,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:999,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:999,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - param
    argTypes:
    - esp_ble_gatts_cb_param_t*
    constantsTouched: []
    func_position:
      end: 1001
      start: 977
    functionDepth: 0
    functionLinenumber: 977
    functionLinenumberEnd: 1001
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharCCCDRead
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - esp_ble_gatts_send_response
    - WeaveLogError
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
    - memset
    - ESP_LOGD
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::HandleTXCharCCCDRead(esp_ble_gatts_cb_param_t * param)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ESP_LOGD
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1010,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1013,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1014,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1017,1
    - Dst: esp_ble_gatts_send_response
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1025,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1035,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1038,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1043,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1043,1
    - Dst: esp_ble_gatts_send_response
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1046,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - param
    argTypes:
    - esp_ble_gatts_cb_param_t*
    constantsTouched: []
    func_position:
      end: 1050
      start: 1003
    functionDepth: 0
    functionLinenumber: 1003
    functionLinenumberEnd: 1050
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharCCCDWrite
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - PlatformMgr
    - esp_ble_gatts_send_response
    - WeaveLogError
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
    - WeaveLogProgress
    - VerifyOrExit
    - ESP_LOGD
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::HandleTXCharCCCDWrite(esp_ble_gatts_cb_param_t * param)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ESP_LOGD
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1054,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1057,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1067,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - conState
    - param
    argTypes:
    - WoBLEConState*
    - esp_ble_gatts_cb_param_t*
    constantsTouched: []
    func_position:
      end: 1078
      start: 1052
    functionDepth: 2
    functionLinenumber: 1052
    functionLinenumberEnd: 1078
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharConfirm
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - PlatformMgr
    - ESP_LOGD
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::HandleTXCharConfirm(WoBLEConState * conState, esp_ble_gatts_cb_param_t
      * param)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1082,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::ReleaseConnectionState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1086,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1103,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1106,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1107,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1108,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - param
    argTypes:
    - esp_ble_gatts_cb_param_t*
    constantsTouched: []
    func_position:
      end: 1110
      start: 1080
    functionDepth: 1
    functionLinenumber: 1080
    functionLinenumberEnd: 1110
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleDisconnect
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - PlatformMgr
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::ReleaseConnectionState
    - WeaveLogProgress
    - ClearFlag
    - SetFlag
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::HandleDisconnect(esp_ble_gatts_cb_param_t * param)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1136,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - conId
    - allocate
    argTypes:
    - uint16_t
    - bool
    constantsTouched: []
    func_position:
      end: 1146
      start: 1112
    functionDepth: 0
    functionLinenumber: 1112
    functionLinenumberEnd: 1146
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 4
    functionsReached:
    - WeaveLogError
    - memset
    linkageType: ''
    returnType: BLEManagerImpl::WoBLEConState
    signature: '* BLEManagerImpl::GetConnectionState(uint16_t conId, bool allocate)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - conId
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1161
      start: 1148
    functionDepth: 2
    functionLinenumber: 1148
    functionLinenumberEnd: 1161
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::ReleaseConnectionState
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::ReleaseConnectionState(uint16_t conId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1175
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_NumConnections
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: BLEManagerImpl::_NumConnections(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ESP_LOGV
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1179,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1183,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleGATTControlEvent
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1185,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleGATTCommEvent
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1186,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - event
    - gatts_if
    - param
    argTypes:
    - esp_gatts_cb_event_t
    - esp_gatt_if_t
    - esp_ble_gatts_cb_param_t*
    constantsTouched: []
    func_position:
      end: 1189
      start: 1177
    functionDepth: 2
    functionLinenumber: 1177
    functionLinenumberEnd: 1189
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleGATTEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleGATTCommEvent
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleGATTControlEvent
    - ESP_LOGV
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::HandleGATTEvent(esp_gatts_cb_event_t event, esp_gatt_if_t
      gatts_if, esp_ble_gatts_cb_param_t * param)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ESP_LOGV
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1195,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1199,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1207,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1208,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1211,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1212,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1220,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1221,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1224,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1225,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1228,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1230,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1232,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1239,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1249,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1250,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1253,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1254,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1257,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1259,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1261,1
    - Dst: ThreadStackMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1265,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1273,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1286,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1286,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1289,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1290,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 56
    argCount: 2
    argNames:
    - event
    - param
    argTypes:
    - esp_gap_ble_cb_event_t
    - esp_ble_gap_cb_param_t*
    constantsTouched: []
    func_position:
      end: 1291
      start: 1191
    functionDepth: 0
    functionLinenumber: 1191
    functionLinenumberEnd: 1291
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleGAPEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - WeaveLogError
    - WeaveLogProgress
    - ClearFlag
    - GetFlag
    - ThreadStackMgr
    - ExitNow
    - ESP_LOGV
    - SetFlag
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::HandleGAPEvent(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t
      *param)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::DriveBLEState
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp:1295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - intptr_t
    constantsTouched: []
    func_position:
      end: 1296
      start: 1293
    functionDepth: 0
    functionLinenumber: 1293
    functionLinenumberEnd: 1296
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::DriveBLEState
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::DriveBLEState
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::DriveBLEState(intptr_t arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xSemaphoreCreateMutex
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/LwIPCoreLock.cpp:36,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/LwIPCoreLock.cpp:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 45
    functionName: nl::Weave::DeviceLayer::Internal::InitLwIPCoreLock
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/LwIPCoreLock.cpp
    functionUses: 2
    functionsReached:
    - xSemaphoreCreateMutex
    - WeaveLogError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: InitLwIPCoreLock(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xSemaphoreTake
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/LwIPCoreLock.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: lock_lwip_core
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/LwIPCoreLock.cpp
    functionUses: 0
    functionsReached:
    - xSemaphoreTake
    linkageType: ''
    returnType: void
    signature: lock_lwip_core()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xSemaphoreGive
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/LwIPCoreLock.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: unlock_lwip_core
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/LwIPCoreLock.cpp
    functionUses: 0
    functionsReached:
    - xSemaphoreGive
    linkageType: ''
    returnType: void
    signature: unlock_lwip_core()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/Logging.cpp:39,1
    - Dst: nl::Weave::Logging::GetModuleName
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/Logging.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - module
    argTypes:
    - char*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: GetModuleName
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/Logging.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Logging::GetModuleName
    - memcpy
    linkageType: ''
    returnType: void
    signature: GetModuleName(char *buf, uint8_t module)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/Logging.cpp:57,1
    - Dst: IsCategoryEnabled
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/Logging.cpp:59,1
    - Dst: strcpy
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/Logging.cpp:68,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/Logging.cpp:69,1
    - Dst: nl::Weave::Logging::GetModuleName
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/Logging.cpp:70,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/Logging.cpp:71,1
    - Dst: vsnprintf
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/Logging.cpp:75,1
    - Dst: ESP_LOGE
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/Logging.cpp:79,1
    - Dst: ESP_LOGI
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/Logging.cpp:84,1
    - Dst: ESP_LOGV
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/Logging.cpp:87,1
    - Dst: va_end
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/Logging.cpp:92,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - module
    - category
    - msg
    argTypes:
    - uint8_t
    - uint8_t
    - char*
    constantsTouched: []
    func_position:
      end: 93
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 93
    functionName: nl::Weave::Logging::Log
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/Logging.cpp
    functionUses: 0
    functionsReached:
    - vsnprintf
    - va_end
    - ESP_LOGI
    - nl::Weave::Logging::GetModuleName
    - va_start
    - ESP_LOGV
    - IsCategoryEnabled
    - strlen
    - strcpy
    - ESP_LOGE
    linkageType: ''
    returnType: void
    signature: Log(uint8_t module, uint8_t category, const char *msg, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::esp_timer_get_time
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/SystemTimeSupport.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: nl::Weave::System::Platform::Layer::GetClock_Monotonic
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/SystemTimeSupport.cpp
    functionUses: 4
    functionsReached:
    - ::esp_timer_get_time
    linkageType: ''
    returnType: uint64_t
    signature: GetClock_Monotonic(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::esp_timer_get_time
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/SystemTimeSupport.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: nl::Weave::System::Platform::Layer::GetClock_MonotonicMS
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/SystemTimeSupport.cpp
    functionUses: 4
    functionsReached:
    - ::esp_timer_get_time
    linkageType: ''
    returnType: uint64_t
    signature: GetClock_MonotonicMS(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::esp_timer_get_time
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/SystemTimeSupport.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: nl::Weave::System::Platform::Layer::GetClock_MonotonicHiRes
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/SystemTimeSupport.cpp
    functionUses: 1
    functionsReached:
    - ::esp_timer_get_time
    linkageType: ''
    returnType: uint64_t
    signature: GetClock_MonotonicHiRes(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MapErrorPOSIX
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/SystemTimeSupport.cpp:57,1
    - Dst: UINT64_C
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/SystemTimeSupport.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' curTime'
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 65
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 65
    functionName: nl::Weave::System::Platform::Layer::GetClock_RealTime
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/SystemTimeSupport.cpp
    functionUses: 2
    functionsReached:
    - MapErrorPOSIX
    - UINT64_C
    linkageType: ''
    returnType: Error
    signature: GetClock_RealTime(uint64_t & curTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MapErrorPOSIX
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/SystemTimeSupport.cpp:73,1
    - Dst: UINT64_C
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/SystemTimeSupport.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' curTime'
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: nl::Weave::System::Platform::Layer::GetClock_RealTimeMS
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/SystemTimeSupport.cpp
    functionUses: 1
    functionsReached:
    - MapErrorPOSIX
    - UINT64_C
    linkageType: ''
    returnType: Error
    signature: GetClock_RealTimeMS(uint64_t & curTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<time_t>
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/SystemTimeSupport.cpp:86,1
    - Dst: UINT64_C
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/SystemTimeSupport.cpp:86,1
    - Dst: static_cast<long>
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/SystemTimeSupport.cpp:87,1
    - Dst: UINT64_C
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/SystemTimeSupport.cpp:87,1
    - Dst: MapErrorPOSIX
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/SystemTimeSupport.cpp:91,1
    - Dst: SecondsSinceEpochToCalendarTime
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/SystemTimeSupport.cpp:97,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/SystemTimeSupport.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - newCurTime
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 103
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 103
    functionName: nl::Weave::System::Platform::Layer::SetClock_RealTime
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/SystemTimeSupport.cpp
    functionUses: 1
    functionsReached:
    - MapErrorPOSIX
    - WeaveLogProgress
    - static_cast<long>
    - SecondsSinceEpochToCalendarTime
    - static_cast<time_t>
    - UINT64_C
    linkageType: ''
    returnType: Error
    signature: SetClock_RealTime(uint64_t newCurTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Internal::GenericSoftwareUpdateManagerImpl_BDX<SoftwareUpdateManagerImpl>::DoInit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/SoftwareUpdateManagerImpl.cpp:38,1
    - Dst: Internal::GenericSoftwareUpdateManagerImpl<SoftwareUpdateManagerImpl>::DoInit
      Src: /src/openweave-core/src/adaptations/device-layer/ESP32/SoftwareUpdateManagerImpl.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl::_Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/ESP32/SoftwareUpdateManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - Internal::GenericSoftwareUpdateManagerImpl<SoftwareUpdateManagerImpl>::DoInit
    - Internal::GenericSoftwareUpdateManagerImpl_BDX<SoftwareUpdateManagerImpl>::DoInit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SoftwareUpdateManagerImpl::_Init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - otErr
    argTypes:
    - otError
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: nl::Weave::DeviceLayer::Internal::MapOpenThreadError
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MapOpenThreadError(otError otErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::FormatError
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - buf
    - bufSize
    - err
    argTypes:
    - char*
    - uint16_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 75
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 75
    functionName: nl::Weave::DeviceLayer::Internal::FormatOpenThreadError
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp
    functionUses: 0
    functionsReached:
    - nl::FormatError
    linkageType: ''
    returnType: bool
    signature: FormatOpenThreadError(char * buf, uint16_t bufSize, int32_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterErrorFormatter
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 89
    functionName: nl::Weave::DeviceLayer::Internal::RegisterOpenThreadErrorFormatter
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp
    functionUses: 0
    functionsReached:
    - RegisterErrorFormatter
    linkageType: ''
    returnType: void
    signature: RegisterOpenThreadErrorFormatter(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:109,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:112,1
    - Dst: nl::Weave::DeviceLayer::Internal::OpenThreadRoleToStr
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:112,1
    - Dst: otThreadGetDeviceRole
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:112,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:116,1
    - Dst: otThreadGetNetworkName
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:116,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:117,1
    - Dst: otLinkGetPanId
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:117,1
    - Dst: otThreadGetExtendedPanId
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:119,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:120,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:123,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:125,1
    - Dst: otLinkGetChannel
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:125,1
    - Dst: otThreadGetMeshLocalPrefix
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:127,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:129,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:130,1
    - Dst: nl::Inet::IPAddress::ToString
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:131,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:132,1
    - Dst: otThreadGetMasterKey
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:136,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:138,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:139,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:145,1
    - Dst: otThreadGetPartitionId
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:145,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:149,1
    - Dst: otIp6GetUnicastAddresses
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:150,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:153,1
    - Dst: nl::Inet::IPAddress::ToString
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:155,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:157,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - otInst
    - flags
    argTypes:
    - otInstance*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 166
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 166
    functionName: nl::Weave::DeviceLayer::Internal::LogOpenThreadStateChange
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp
    functionUses: 0
    functionsReached:
    - otThreadGetDeviceRole
    - otThreadGetMasterKey
    - otLinkGetPanId
    - otLinkGetChannel
    - nl::Inet::IPAddress::ToString
    - otIp6GetUnicastAddresses
    - otThreadGetNetworkName
    - memset
    - memcpy
    - WeaveLogDetail
    - snprintf
    - otThreadGetExtendedPanId
    - nl::Weave::DeviceLayer::Internal::OpenThreadRoleToStr
    - otThreadGetPartitionId
    - otThreadGetMeshLocalPrefix
    linkageType: ''
    returnType: void
    signature: LogOpenThreadStateChange(otInstance * otInst, uint32_t flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: otMessageGetLength
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:193,1
    - Dst: otMessageRead
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:197,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:199,1
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:200,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:202,1
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:203,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:225,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:230,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:235,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:235,1
    - Dst: nl::Weave::Encoding::BigEndian::Get16
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:235,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:236,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:236,1
    - Dst: nl::Weave::Encoding::BigEndian::Get16
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:236,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:239,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:240,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:241,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:245,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - titleStr
    - pkt
    argTypes:
    - char*
    - otMessage*
    constantsTouched: []
    func_position:
      end: 249
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 249
    functionName: nl::Weave::DeviceLayer::Internal::LogOpenThreadPacket
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp
    functionUses: 0
    functionsReached:
    - otMessageGetLength
    - strlen
    - memcpy
    - snprintf
    - otMessageRead
    - IPAddress::ToString
    - WeaveLogDetail
    - nl::Weave::Encoding::BigEndian::Get16
    linkageType: ''
    returnType: void
    signature: LogOpenThreadPacket(const char * titleStr, otMessage * pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: otThreadGetMeshLocalPrefix
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:253,1
    - Dst: memcmp
      Src: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - otInst
    - ' addr'
    argTypes:
    - otInstance*
    - IPAddress
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: nl::Weave::DeviceLayer::Internal::IsOpenThreadMeshLocalAddress
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - otThreadGetMeshLocalPrefix
    linkageType: ''
    returnType: bool
    signature: IsOpenThreadMeshLocalAddress(otInstance * otInst, const IPAddress &
      addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - role
    argTypes:
    - otDeviceRole
    constantsTouched: []
    func_position:
      end: 275
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 275
    functionName: nl::Weave::DeviceLayer::Internal::OpenThreadRoleToStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* OpenThreadRoleToStr(otDeviceRole role)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::ThreadStackManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ThreadStackManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: ~ThreadStackManager()
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~ThreadStackManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::ThreadStackManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ThreadStackManager(const ThreadStackManager &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::ThreadStackManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ThreadStackManager(const ThreadStackManager &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: '& operator =(const ThreadStackManager &)'
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ThreadStackManager
    signature: '& operator =(const ThreadStackManager &)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::InitThreadStack
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ThreadStackManager::InitThreadStack()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::ProcessThreadActivity
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: ThreadStackManager::ProcessThreadActivity()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::StartThreadTask
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ThreadStackManager::StartThreadTask()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::LockThreadStack
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: ThreadStackManager::LockThreadStack()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::TryLockThreadStack
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ThreadStackManager::TryLockThreadStack()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::UnlockThreadStack
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: ThreadStackManager::UnlockThreadStack()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' destAddr'
    argTypes:
    - IPAddress
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::HaveRouteToAddress
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ThreadStackManager::HaveRouteToAddress(const IPAddress & destAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::OnPlatformEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: ThreadStackManager::OnPlatformEvent(const WeaveDeviceEvent * event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::IsThreadEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ThreadStackManager::IsThreadEnabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::SetThreadEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ThreadStackManager::SetThreadEnabled(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::IsThreadProvisioned
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ThreadStackManager::IsThreadProvisioned(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::IsThreadAttached
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ThreadStackManager::IsThreadAttached(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' netInfo'
    - includeCredentials
    argTypes:
    - Internal::DeviceNetworkInfo
    - bool
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::GetThreadProvision
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ThreadStackManager::GetThreadProvision(Internal::DeviceNetworkInfo
      & netInfo, bool includeCredentials)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' netInfo'
    argTypes:
    - Internal::DeviceNetworkInfo
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::SetThreadProvision
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ThreadStackManager::SetThreadProvision(const Internal::DeviceNetworkInfo
      & netInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::ClearThreadProvision
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: ThreadStackManager::ClearThreadProvision(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::GetThreadDeviceType
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: ConnectivityManager::ThreadDeviceType
    signature: ThreadStackManager::GetThreadDeviceType(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - deviceType
    argTypes:
    - ConnectivityManager::ThreadDeviceType
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::SetThreadDeviceType
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ThreadStackManager::SetThreadDeviceType(ConnectivityManager::ThreadDeviceType
      deviceType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pollingConfig'
    argTypes:
    - ConnectivityManager::ThreadPollingConfig
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::GetThreadPollingConfig
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: ThreadStackManager::GetThreadPollingConfig(ConnectivityManager::ThreadPollingConfig
      & pollingConfig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pollingConfig'
    argTypes:
    - ConnectivityManager::ThreadPollingConfig
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::SetThreadPollingConfig
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ThreadStackManager::SetThreadPollingConfig(const ConnectivityManager::ThreadPollingConfig
      & pollingConfig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::HaveMeshConnectivity
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ThreadStackManager::HaveMeshConnectivity(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - messageLayerIsActive
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::OnMessageLayerActivityChanged
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: ThreadStackManager::OnMessageLayerActivityChanged(bool messageLayerIsActive)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::OnWoBLEAdvertisingStart
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: ThreadStackManager::OnWoBLEAdvertisingStart(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::OnWoBLEAdvertisingStop
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: ThreadStackManager::OnWoBLEAdvertisingStop(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::GetAndLogThreadStatsCounters
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ThreadStackManager::GetAndLogThreadStatsCounters(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::GetAndLogThreadTopologyMinimal
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ThreadStackManager::GetAndLogThreadTopologyMinimal(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::GetAndLogThreadTopologyFull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ThreadStackManager::GetAndLogThreadTopologyFull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 287
    functionName: nl::Weave::DeviceLayer::ThreadStackManager::GetPrimary802154MACAddress
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ThreadStackManager::GetPrimary802154MACAddress(uint8_t * buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::ConfigurationManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ConfigurationManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: ~ConfigurationManager()
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~ConfigurationManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::ConfigurationManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ConfigurationManager(const ConfigurationManager &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::ConfigurationManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ConfigurationManager(const ConfigurationManager &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 171
    functionName: '& operator =(const ConfigurationManager &)'
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConfigurationManager
    signature: '& operator =(const ConfigurationManager &)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vendorId'
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetVendorId
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetVendorId(uint16_t & vendorId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' productId'
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetProductId
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetProductId(uint16_t & productId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' productRev'
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetProductRevision
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetProductRevision(uint16_t & productRev)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - bufSize
    - ' serialNumLen'
    argTypes:
    - char*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetSerialNumber
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetSerialNumber(char * buf, size_t bufSize, size_t
      & serialNumLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetPrimaryWiFiMACAddress
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetPrimaryWiFiMACAddress(uint8_t * buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetPrimary802154MACAddress
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetPrimary802154MACAddress(uint8_t * buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' year'
    - ' month'
    - ' dayOfMonth'
    argTypes:
    - uint16_t
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetManufacturingDate
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetManufacturingDate(uint16_t & year, uint8_t
      & month, uint8_t & dayOfMonth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - bufSize
    - ' outLen'
    argTypes:
    - char*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetFirmwareRevision
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetFirmwareRevision(char * buf, size_t bufSize,
      size_t & outLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' year'
    - ' month'
    - ' dayOfMonth'
    - ' hour'
    - ' minute'
    - ' second'
    argTypes:
    - uint16_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 261
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 261
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetFirmwareBuildTime
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "ConfigurationManager::GetFirmwareBuildTime(uint16_t & year, uint8_t
      & month, uint8_t & dayOfMonth,\n        uint8_t & hour, uint8_t & minute, uint8_t
      & second)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' deviceId'
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetDeviceId
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetDeviceId(uint64_t & deviceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - bufSize
    - ' certLen'
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 271
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 271
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetDeviceCertificate
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetDeviceCertificate(uint8_t * buf, size_t bufSize,
      size_t & certLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - bufSize
    - ' certsLen'
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 276
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 276
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetDeviceIntermediateCACerts
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetDeviceIntermediateCACerts(uint8_t * buf, size_t
      bufSize, size_t & certsLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - bufSize
    - ' keyLen'
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetDevicePrivateKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetDevicePrivateKey(uint8_t * buf, size_t bufSize,
      size_t & keyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' deviceId'
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetManufacturerDeviceId
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetManufacturerDeviceId(uint64_t & deviceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - bufSize
    - ' certLen'
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 291
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 291
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetManufacturerDeviceCertificate
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetManufacturerDeviceCertificate(uint8_t * buf,
      size_t bufSize, size_t & certLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - bufSize
    - ' certsLen'
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetManufacturerDeviceIntermediateCACerts
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetManufacturerDeviceIntermediateCACerts(uint8_t
      * buf, size_t bufSize, size_t & certsLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - bufSize
    - ' keyLen'
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetManufacturerDevicePrivateKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetManufacturerDevicePrivateKey(uint8_t * buf,
      size_t bufSize, size_t & keyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - bufSize
    - ' pairingCodeLen'
    argTypes:
    - char*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetPairingCode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetPairingCode(char * buf, size_t bufSize, size_t
      & pairingCodeLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' serviceId'
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetServiceId
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetServiceId(uint64_t & serviceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' fabricId'
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetFabricId
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetFabricId(uint64_t & fabricId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - bufSize
    - ' serviceConfigLen'
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 321
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 321
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetServiceConfig
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetServiceConfig(uint8_t * buf, size_t bufSize,
      size_t & serviceConfigLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - bufSize
    - ' accountIdLen'
    argTypes:
    - char*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetPairedAccountId
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetPairedAccountId(char * buf, size_t bufSize,
      size_t & accountIdLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - serialNum
    - serialNumLen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 331
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 331
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::StoreSerialNumber
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::StoreSerialNumber(const char * serialNum, size_t
      serialNumLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 336
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::StorePrimaryWiFiMACAddress
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::StorePrimaryWiFiMACAddress(const uint8_t * buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::StorePrimary802154MACAddress
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::StorePrimary802154MACAddress(const uint8_t *
      buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mfgDate
    - mfgDateLen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 346
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 346
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::StoreManufacturingDate
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::StoreManufacturingDate(const char * mfgDate,
      size_t mfgDateLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - productRev
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 351
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::StoreProductRevision
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::StoreProductRevision(uint16_t productRev)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fabricId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 356
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 356
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::StoreFabricId
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::StoreFabricId(uint64_t fabricId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - deviceId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::StoreDeviceId
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::StoreDeviceId(uint64_t deviceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cert
    - certLen
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 368
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 368
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::StoreDeviceCertificate
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::StoreDeviceCertificate(const uint8_t * cert,
      size_t certLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - certs
    - certsLen
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::StoreDeviceIntermediateCACerts
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::StoreDeviceIntermediateCACerts(const uint8_t
      * certs, size_t certsLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - keyLen
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 378
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 378
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::StoreDevicePrivateKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::StoreDevicePrivateKey(const uint8_t * key, size_t
      keyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - deviceId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 385
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 385
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::StoreManufacturerDeviceId
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::StoreManufacturerDeviceId(uint64_t deviceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cert
    - certLen
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 390
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 390
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::StoreManufacturerDeviceCertificate
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::StoreManufacturerDeviceCertificate(const uint8_t
      * cert, size_t certLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - certs
    - certsLen
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 395
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 395
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::StoreManufacturerDeviceIntermediateCACerts
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::StoreManufacturerDeviceIntermediateCACerts(const
      uint8_t * certs, size_t certsLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - keyLen
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 400
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 400
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::StoreManufacturerDevicePrivateKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::StoreManufacturerDevicePrivateKey(const uint8_t
      * key, size_t keyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pairingCode
    - pairingCodeLen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 405
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 405
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::StorePairingCode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::StorePairingCode(const char * pairingCode, size_t
      pairingCodeLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - serviceId
    - serviceConfig
    - serviceConfigLen
    - accountId
    - accountIdLen
    argTypes:
    - uint64_t
    - uint8_t*
    - size_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 410
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 410
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::StoreServiceProvisioningData
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::StoreServiceProvisioningData(uint64_t serviceId,
      const uint8_t * serviceConfig, size_t serviceConfigLen, const char * accountId,
      size_t accountIdLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::ClearServiceProvisioningData
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::ClearServiceProvisioningData()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - serviceConfig
    - serviceConfigLen
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 420
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 420
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::StoreServiceConfig
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::StoreServiceConfig(const uint8_t * serviceConfig,
      size_t serviceConfigLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - accountId
    - accountIdLen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 425
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 425
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::StorePairedAccountId
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::StorePairedAccountId(const char * accountId,
      size_t accountIdLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - ' value'
    argTypes:
    - ::nl::Weave::Platform::PersistedStorage::Key
    - uint32_t
    constantsTouched: []
    func_position:
      end: 430
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 430
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::ReadPersistedStorageValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::ReadPersistedStorageValue(::nl::Weave::Platform::PersistedStorage::Key
      key, uint32_t & value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - ::nl::Weave::Platform::PersistedStorage::Key
    - uint32_t
    constantsTouched: []
    func_position:
      end: 435
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 435
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::WritePersistedStorageValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::WritePersistedStorageValue(::nl::Weave::Platform::PersistedStorage::Key
      key, uint32_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' deviceDesc'
    argTypes:
    - WeaveDeviceDescriptor
    constantsTouched: []
    func_position:
      end: 440
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 440
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetDeviceDescriptor
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetDeviceDescriptor(WeaveDeviceDescriptor & deviceDesc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - bufSize
    - ' encodedLen'
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 445
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 445
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetDeviceDescriptorTLV
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetDeviceDescriptorTLV(uint8_t * buf, size_t
      bufSize, size_t & encodedLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 450
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 450
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetQRCodeString
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetQRCodeString(char * buf, size_t bufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 455
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 455
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetWiFiAPSSID
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetWiFiAPSSID(char * buf, size_t bufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' deviceIdInfo'
    argTypes:
    - Ble::WeaveBLEDeviceIdentificationInfo
    constantsTouched: []
    func_position:
      end: 460
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 460
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetBLEDeviceIdentificationInfo
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetBLEDeviceIdentificationInfo(Ble::WeaveBLEDeviceIdentificationInfo
      & deviceIdInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 465
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 465
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::IsServiceProvisioned
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConfigurationManager::IsServiceProvisioned()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 470
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 470
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::IsPairedToAccount
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConfigurationManager::IsPairedToAccount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 475
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 475
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::IsMemberOfFabric
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConfigurationManager::IsMemberOfFabric()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 480
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 480
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::IsFullyProvisioned
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConfigurationManager::IsFullyProvisioned()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 485
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 485
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::InitiateFactoryReset
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: ConfigurationManager::InitiateFactoryReset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hashBuf
    - hashBufSize
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 490
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 490
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::ComputeProvisioningHash
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::ComputeProvisioningHash(uint8_t * hashBuf, size_t
      hashBufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 495
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 495
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 500
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 500
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::ConfigureWeaveStack
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::ConfigureWeaveStack()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 505
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 505
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetGroupKeyStore
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: ::nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase
    signature: '* ConfigurationManager::GetGroupKeyStore()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 510
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 510
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::CanFactoryReset
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConfigurationManager::CanFactoryReset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 515
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 515
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::GetFailSafeArmed
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::GetFailSafeArmed(bool & val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 520
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 520
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::SetFailSafeArmed
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::SetFailSafeArmed(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 527
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 527
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::OperationalDeviceCredentialsProvisioned
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConfigurationManager::OperationalDeviceCredentialsProvisioned()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 532
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 532
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::ClearOperationalDeviceCredentials
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManager::ClearOperationalDeviceCredentials(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 537
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 537
    functionName: nl::Weave::DeviceLayer::ConfigurationManager::UseManufacturerCredentialsAsOperational
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: ConfigurationManager::UseManufacturerCredentialsAsOperational(bool
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: nl::Weave::DeviceLayer::TimeSyncManager::TimeSyncManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/TimeSyncManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TimeSyncManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: ~TimeSyncManager()
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/TimeSyncManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~TimeSyncManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: nl::Weave::DeviceLayer::TimeSyncManager::TimeSyncManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/TimeSyncManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TimeSyncManager(const TimeSyncManager &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: nl::Weave::DeviceLayer::TimeSyncManager::TimeSyncManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/TimeSyncManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TimeSyncManager(const TimeSyncManager &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: '& operator =(const TimeSyncManager &)'
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/TimeSyncManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TimeSyncManager
    signature: '& operator =(const TimeSyncManager &)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: nl::Weave::DeviceLayer::TimeSyncManager::GetMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/TimeSyncManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TimeSyncManager::TimeSyncMode
    signature: TimeSyncManager::GetMode()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: nl::Weave::DeviceLayer::TimeSyncManager::GetSyncInterval
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/TimeSyncManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: TimeSyncManager::GetSyncInterval()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: nl::Weave::DeviceLayer::TimeSyncMgr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/TimeSyncManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TimeSyncManager
    signature: '& TimeSyncMgr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eventType
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: nl::Weave::DeviceLayer::DeviceEventType::IsPublic
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/WeaveDeviceEvent.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsPublic(uint16_t eventType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eventType
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: nl::Weave::DeviceLayer::DeviceEventType::IsInternal
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/WeaveDeviceEvent.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsInternal(uint16_t eventType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eventType
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: nl::Weave::DeviceLayer::DeviceEventType::IsPlatformSpecific
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/WeaveDeviceEvent.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsPlatformSpecific(uint16_t eventType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eventType
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: nl::Weave::DeviceLayer::DeviceEventType::IsPlatformGeneric
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/WeaveDeviceEvent.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsPlatformGeneric(uint16_t eventType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - prevState
    - newState
    argTypes:
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 256
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 256
    functionName: nl::Weave::DeviceLayer::GetConnectivityChange
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/WeaveDeviceEvent.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConnectivityChange
    signature: GetConnectivityChange(bool prevState, bool newState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/WeaveDeviceEvent.h:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 402
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 402
    functionName: nl::Weave::DeviceLayer::Clear
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/WeaveDeviceEvent.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::DeviceEventType::IsPublic
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/WeaveDeviceEvent.h:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 403
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 403
    functionName: nl::Weave::DeviceLayer::IsPublic
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/WeaveDeviceEvent.h
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::DeviceEventType::IsPublic
    linkageType: ''
    returnType: bool
    signature: IsPublic() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::DeviceEventType::IsInternal
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/WeaveDeviceEvent.h:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 404
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 404
    functionName: nl::Weave::DeviceLayer::IsInternal
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/WeaveDeviceEvent.h
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::DeviceEventType::IsInternal
    linkageType: ''
    returnType: bool
    signature: IsInternal() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::DeviceEventType::IsPlatformSpecific
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/WeaveDeviceEvent.h:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 405
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 405
    functionName: nl::Weave::DeviceLayer::IsPlatformSpecific
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/WeaveDeviceEvent.h
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::DeviceEventType::IsPlatformSpecific
    linkageType: ''
    returnType: bool
    signature: IsPlatformSpecific() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::DeviceEventType::IsPlatformGeneric
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/WeaveDeviceEvent.h:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 406
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 406
    functionName: nl::Weave::DeviceLayer::IsPlatformGeneric
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/WeaveDeviceEvent.h
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::DeviceEventType::IsPlatformGeneric
    linkageType: ''
    returnType: bool
    signature: IsPlatformGeneric() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::ConnectivityManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ConnectivityManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: ~ConnectivityManager()
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~ConnectivityManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 200
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::ConnectivityManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ConnectivityManager(const ConnectivityManager &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::ConnectivityManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ConnectivityManager(const ConnectivityManager &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    functionName: '& operator =(const ConnectivityManager &)'
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConnectivityManager
    signature: '& operator =(const ConnectivityManager &)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 218
    functionName: nl::Weave::DeviceLayer::Clear
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::GetWiFiStationMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: ConnectivityManager::WiFiStationMode
    signature: ConnectivityManager::GetWiFiStationMode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - WiFiStationMode
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::SetWiFiStationMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConnectivityManager::SetWiFiStationMode(WiFiStationMode val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 271
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 271
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::IsWiFiStationEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConnectivityManager::IsWiFiStationEnabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 276
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 276
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::IsWiFiStationApplicationControlled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConnectivityManager::IsWiFiStationApplicationControlled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::IsWiFiStationConnected
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConnectivityManager::IsWiFiStationConnected(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::GetWiFiStationReconnectIntervalMS
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: uint32_t
    signature: ConnectivityManager::GetWiFiStationReconnectIntervalMS(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 291
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 291
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::SetWiFiStationReconnectIntervalMS
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConnectivityManager::SetWiFiStationReconnectIntervalMS(uint32_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::IsWiFiStationProvisioned
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConnectivityManager::IsWiFiStationProvisioned(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::ClearWiFiStationProvision
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: ConnectivityManager::ClearWiFiStationProvision(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::GetWiFiAPMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: ConnectivityManager::WiFiAPMode
    signature: ConnectivityManager::GetWiFiAPMode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - WiFiAPMode
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::SetWiFiAPMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConnectivityManager::SetWiFiAPMode(WiFiAPMode val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::IsWiFiAPActive
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConnectivityManager::IsWiFiAPActive(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 321
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::IsWiFiAPApplicationControlled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConnectivityManager::IsWiFiAPApplicationControlled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::DemandStartWiFiAP
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: ConnectivityManager::DemandStartWiFiAP(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 331
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 331
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::StopOnDemandWiFiAP
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: ConnectivityManager::StopOnDemandWiFiAP(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 336
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::MaintainOnDemandWiFiAP
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: ConnectivityManager::MaintainOnDemandWiFiAP(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::GetWiFiAPIdleTimeoutMS
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: uint32_t
    signature: ConnectivityManager::GetWiFiAPIdleTimeoutMS(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 346
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 346
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::SetWiFiAPIdleTimeoutMS
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: ConnectivityManager::SetWiFiAPIdleTimeoutMS(uint32_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 351
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::GetAndLogWifiStatsCounters
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConnectivityManager::GetAndLogWifiStatsCounters(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 356
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 356
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::HaveServiceConnectivityViaTunnel
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConnectivityManager::HaveServiceConnectivityViaTunnel(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::HaveIPv4InternetConnectivity
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConnectivityManager::HaveIPv4InternetConnectivity(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::HaveIPv6InternetConnectivity
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConnectivityManager::HaveIPv6InternetConnectivity(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 371
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 371
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::GetServiceTunnelMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: ConnectivityManager::ServiceTunnelMode
    signature: ConnectivityManager::GetServiceTunnelMode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - ServiceTunnelMode
    constantsTouched: []
    func_position:
      end: 376
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 376
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::SetServiceTunnelMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConnectivityManager::SetServiceTunnelMode(ServiceTunnelMode val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 381
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 381
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::IsServiceTunnelConnected
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConnectivityManager::IsServiceTunnelConnected(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 386
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 386
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::IsServiceTunnelRestricted
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConnectivityManager::IsServiceTunnelRestricted(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 391
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 391
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::HaveServiceConnectivity
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConnectivityManager::HaveServiceConnectivity(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 396
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 396
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::GetThreadMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: ConnectivityManager::ThreadMode
    signature: ConnectivityManager::GetThreadMode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - ThreadMode
    constantsTouched: []
    func_position:
      end: 401
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 401
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::SetThreadMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConnectivityManager::SetThreadMode(ThreadMode val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 406
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 406
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::IsThreadEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConnectivityManager::IsThreadEnabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 411
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 411
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::IsThreadApplicationControlled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConnectivityManager::IsThreadApplicationControlled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::GetThreadDeviceType
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: ConnectivityManager::ThreadDeviceType
    signature: ConnectivityManager::GetThreadDeviceType(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - deviceType
    argTypes:
    - ThreadDeviceType
    constantsTouched: []
    func_position:
      end: 421
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 421
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::SetThreadDeviceType
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConnectivityManager::SetThreadDeviceType(ThreadDeviceType deviceType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pollingConfig'
    argTypes:
    - ThreadPollingConfig
    constantsTouched: []
    func_position:
      end: 426
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 426
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::GetThreadPollingConfig
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: ConnectivityManager::GetThreadPollingConfig(ThreadPollingConfig & pollingConfig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pollingConfig'
    argTypes:
    - ThreadPollingConfig
    constantsTouched: []
    func_position:
      end: 431
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 431
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::SetThreadPollingConfig
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConnectivityManager::SetThreadPollingConfig(const ThreadPollingConfig
      & pollingConfig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 436
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 436
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::IsThreadAttached
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConnectivityManager::IsThreadAttached(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 441
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 441
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::IsThreadProvisioned
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConnectivityManager::IsThreadProvisioned(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 446
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 446
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::ClearThreadProvision
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: ConnectivityManager::ClearThreadProvision(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 451
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 451
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::HaveServiceConnectivityViaThread
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConnectivityManager::HaveServiceConnectivityViaThread(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 456
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 456
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::GetWoBLEServiceMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: ConnectivityManager::WoBLEServiceMode
    signature: ConnectivityManager::GetWoBLEServiceMode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - WoBLEServiceMode
    constantsTouched: []
    func_position:
      end: 461
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 461
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::SetWoBLEServiceMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConnectivityManager::SetWoBLEServiceMode(WoBLEServiceMode val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 466
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 466
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::IsBLEAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConnectivityManager::IsBLEAdvertisingEnabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 471
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 471
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::SetBLEAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConnectivityManager::SetBLEAdvertisingEnabled(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 476
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 476
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::IsBLEFastAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConnectivityManager::IsBLEFastAdvertisingEnabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 481
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 481
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::SetBLEFastAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConnectivityManager::SetBLEFastAdvertisingEnabled(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 486
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 486
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::IsBLEAdvertising
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConnectivityManager::IsBLEAdvertising(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 491
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 491
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::GetBLEDeviceName
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConnectivityManager::GetBLEDeviceName(char * buf, size_t bufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - deviceName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 496
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 496
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::SetBLEDeviceName
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConnectivityManager::SetBLEDeviceName(const char * deviceName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 501
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 501
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::NumBLEConnections
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: uint16_t
    signature: ConnectivityManager::NumBLEConnections(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 506
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 506
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::IsUserSelectedModeActive
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConnectivityManager::IsUserSelectedModeActive(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 511
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 511
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::SetUserSelectedMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: ConnectivityManager::SetUserSelectedMode(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::GetUserSelectedModeTimeout
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: uint16_t
    signature: ConnectivityManager::GetUserSelectedModeTimeout(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 521
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 521
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::SetUserSelectedModeTimeout
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: ConnectivityManager::SetUserSelectedModeTimeout(uint16_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_WiFiStationModeToStr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - WiFiStationMode
    constantsTouched: []
    func_position:
      end: 526
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 526
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::WiFiStationModeToStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_WiFiStationModeToStr
    linkageType: ''
    returnType: char
    signature: '* ConnectivityManager::WiFiStationModeToStr(WiFiStationMode mode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_WiFiAPModeToStr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - WiFiAPMode
    constantsTouched: []
    func_position:
      end: 531
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 531
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::WiFiAPModeToStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_WiFiAPModeToStr
    linkageType: ''
    returnType: char
    signature: '* ConnectivityManager::WiFiAPModeToStr(WiFiAPMode mode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_ServiceTunnelModeToStr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - ServiceTunnelMode
    constantsTouched: []
    func_position:
      end: 536
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 536
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::ServiceTunnelModeToStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_ServiceTunnelModeToStr
    linkageType: ''
    returnType: char
    signature: '* ConnectivityManager::ServiceTunnelModeToStr(ServiceTunnelMode mode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE<ImplClass>::_WoBLEServiceModeToStr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - WoBLEServiceMode
    constantsTouched: []
    func_position:
      end: 541
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 541
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::WoBLEServiceModeToStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE<ImplClass>::_WoBLEServiceModeToStr
    linkageType: ''
    returnType: char
    signature: '* ConnectivityManager::WoBLEServiceModeToStr(WoBLEServiceMode mode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 546
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 546
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConnectivityManager::Init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 551
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 551
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::OnPlatformEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: ConnectivityManager::OnPlatformEvent(const WeaveDeviceEvent * event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 556
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 556
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::CanStartWiFiScan
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: ConnectivityManager::CanStartWiFiScan(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 561
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 561
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::OnWiFiScanDone
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: ConnectivityManager::OnWiFiScanDone(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 566
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 566
    functionName: nl::Weave::DeviceLayer::ConnectivityManager::OnWiFiStationProvisionChange
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: ConnectivityManager::OnWiFiStationProvisionChange(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: nl::Weave::DeviceLayer::Internal::WeaveTelemetryBase::IsEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/NetworkTelemetryManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveTelemetryBase::IsEnabled(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aIntervalMsec
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: nl::Weave::DeviceLayer::Internal::WeaveTelemetryBase::SetPollingInterval
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/NetworkTelemetryManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveTelemetryBase::SetPollingInterval(uint32_t aIntervalMsec)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: nl::Weave::DeviceLayer::Internal::WeaveTelemetryBase::GetPollingInterval
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/NetworkTelemetryManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: WeaveTelemetryBase::GetPollingInterval(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTelemetryBase *>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/NetworkTelemetryManager.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aLayer
    - aAppState
    - aError
    argTypes:
    - nl::Weave::System::Layer*
    - void*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: nl::Weave::DeviceLayer::Internal::WeaveTelemetryBase::sHandleTimer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/NetworkTelemetryManager.h
    functionUses: 0
    functionsReached:
    - static_cast<WeaveTelemetryBase *>
    linkageType: ''
    returnType: void
    signature: WeaveTelemetryBase::sHandleTimer(nl::Weave::System::Layer * aLayer,
      void * aAppState, WEAVE_ERROR aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: nl::Weave::DeviceLayer::Internal::NetworkTelemetryMgr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/NetworkTelemetryManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NetworkTelemetryManager
    signature: '& NetworkTelemetryMgr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: nl::Weave::DeviceLayer::PlatformManager::PlatformManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: PlatformManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: ~PlatformManager()
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~PlatformManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: nl::Weave::DeviceLayer::PlatformManager::PlatformManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: PlatformManager(const PlatformManager &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: nl::Weave::DeviceLayer::PlatformManager::PlatformManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: PlatformManager(const PlatformManager &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: '& operator =(const PlatformManager &)'
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PlatformManager
    signature: '& operator =(const PlatformManager &)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: nl::Weave::DeviceLayer::PlatformManager::InitWeaveStack
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PlatformManager::InitWeaveStack()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handler
    - arg
    argTypes:
    - EventHandlerFunct
    - intptr_t
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: nl::Weave::DeviceLayer::PlatformManager::AddEventHandler
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PlatformManager::AddEventHandler(EventHandlerFunct handler, intptr_t
      arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handler
    - arg
    argTypes:
    - EventHandlerFunct
    - intptr_t
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: nl::Weave::DeviceLayer::PlatformManager::RemoveEventHandler
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: PlatformManager::RemoveEventHandler(EventHandlerFunct handler, intptr_t
      arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - workFunct
    - arg
    argTypes:
    - AsyncWorkFunct
    - intptr_t
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: nl::Weave::DeviceLayer::PlatformManager::ScheduleWork
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: PlatformManager::ScheduleWork(AsyncWorkFunct workFunct, intptr_t arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: nl::Weave::DeviceLayer::PlatformManager::RunEventLoop
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: PlatformManager::RunEventLoop(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: nl::Weave::DeviceLayer::PlatformManager::StartEventLoopTask
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PlatformManager::StartEventLoopTask(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: nl::Weave::DeviceLayer::PlatformManager::LockWeaveStack
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: PlatformManager::LockWeaveStack(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: nl::Weave::DeviceLayer::PlatformManager::TryLockWeaveStack
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: PlatformManager::TryLockWeaveStack(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: nl::Weave::DeviceLayer::PlatformManager::UnlockWeaveStack
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: PlatformManager::UnlockWeaveStack(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: nl::Weave::DeviceLayer::PlatformManager::PostEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: PlatformManager::PostEvent(const WeaveDeviceEvent * event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: nl::Weave::DeviceLayer::PlatformManager::DispatchEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: PlatformManager::DispatchEvent(const WeaveDeviceEvent * event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - durationMS
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: nl::Weave::DeviceLayer::PlatformManager::StartWeaveTimer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PlatformManager::StartWeaveTimer(uint32_t durationMS)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: nl::Weave::DeviceLayer::TraitManager::TraitManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/TraitManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TraitManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: ~TraitManager()
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/TraitManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~TraitManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: nl::Weave::DeviceLayer::TraitManager::TraitManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/TraitManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TraitManager(const TraitManager &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: nl::Weave::DeviceLayer::TraitManager::TraitManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/TraitManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TraitManager(const TraitManager &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: '& operator =(const TraitManager &)'
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/TraitManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TraitManager
    signature: '& operator =(const TraitManager &)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: nl::Weave::DeviceLayer::TraitManager::GetServiceSubscriptionMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/TraitManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TraitManager::ServiceSubscriptionMode
    signature: TraitManager::GetServiceSubscriptionMode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/TraitManager.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: nl::Weave::DeviceLayer::TraitManager::IsServiceSubscriptionEstablished
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/TraitManager.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: TraitManager::IsServiceSubscriptionEstablished(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: nl::Weave::DeviceLayer::TraitMgr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/TraitManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TraitManager
    signature: '& TraitMgr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 327
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 327
    functionName: nl::Weave::DeviceLayer::SoftwareUpdateManager::SoftwareUpdateManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SoftwareUpdateManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 328
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 328
    functionName: ~SoftwareUpdateManager()
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~SoftwareUpdateManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 331
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 331
    functionName: nl::Weave::DeviceLayer::SoftwareUpdateManager::SoftwareUpdateManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SoftwareUpdateManager(const SoftwareUpdateManager &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 332
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 332
    functionName: nl::Weave::DeviceLayer::SoftwareUpdateManager::SoftwareUpdateManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SoftwareUpdateManager(const SoftwareUpdateManager &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 333
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 333
    functionName: '& operator =(const SoftwareUpdateManager &)'
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SoftwareUpdateManager
    signature: '& operator =(const SoftwareUpdateManager &)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 372
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 372
    functionName: nl::Weave::DeviceLayer::Clear
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 428
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 428
    functionName: nl::Weave::DeviceLayer::Clear
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 467
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 467
    functionName: nl::Weave::DeviceLayer::SoftwareUpdateManager::Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SoftwareUpdateManager::Init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 472
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 472
    functionName: nl::Weave::DeviceLayer::SoftwareUpdateManager::CheckNow
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SoftwareUpdateManager::CheckNow(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aError
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 477
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 477
    functionName: nl::Weave::DeviceLayer::SoftwareUpdateManager::ImageInstallComplete
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SoftwareUpdateManager::ImageInstallComplete(WEAVE_ERROR aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aError
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 482
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 482
    functionName: nl::Weave::DeviceLayer::SoftwareUpdateManager::PrepareImageStorageComplete
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SoftwareUpdateManager::PrepareImageStorageComplete(WEAVE_ERROR aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 487
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 487
    functionName: nl::Weave::DeviceLayer::SoftwareUpdateManager::GetState
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: SoftwareUpdateManager::State
    signature: SoftwareUpdateManager::GetState(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 492
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 492
    functionName: nl::Weave::DeviceLayer::SoftwareUpdateManager::Abort
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SoftwareUpdateManager::Abort(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 497
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 497
    functionName: nl::Weave::DeviceLayer::SoftwareUpdateManager::IsInProgress
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: SoftwareUpdateManager::IsInProgress(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aMinRangeSecs
    - aMaxRangeSecs
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 502
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 502
    functionName: nl::Weave::DeviceLayer::SoftwareUpdateManager::SetQueryIntervalWindow
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SoftwareUpdateManager::SetQueryIntervalWindow(uint32_t aMinRangeSecs,
      uint32_t aMaxRangeSecs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aRetryPolicyCallback
    argTypes:
    - RetryPolicyCallback
    constantsTouched: []
    func_position:
      end: 507
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 507
    functionName: nl::Weave::DeviceLayer::SoftwareUpdateManager::SetRetryPolicyCallback
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: SoftwareUpdateManager::SetRetryPolicyCallback(const RetryPolicyCallback
      aRetryPolicyCallback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aAppState
    - aEventCallback
    argTypes:
    - void*
    - EventCallback
    constantsTouched: []
    func_position:
      end: 512
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 512
    functionName: nl::Weave::DeviceLayer::SoftwareUpdateManager::SetEventCallback
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SoftwareUpdateManager::SetEventCallback(void * const aAppState, const
      EventCallback aEventCallback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImplClass::_DefaultEventHandler
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - apAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - EventType
    - InEventParam
    - OutEventParam
    constantsTouched: []
    func_position:
      end: 519
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 519
    functionName: nl::Weave::DeviceLayer::SoftwareUpdateManager::DefaultEventHandler
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h
    functionUses: 0
    functionsReached:
    - ImplClass::_DefaultEventHandler
    linkageType: ''
    returnType: void
    signature: "SoftwareUpdateManager::DefaultEventHandler(void *apAppState, EventType
      aEvent,\n                                                       const InEventParam&
      aInParam,\n                                                       OutEventParam&
      aOutParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/FreeRTOS/GenericPlatformManagerImpl_FreeRTOS.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: nl::Weave::DeviceLayer::Internal::GenericPlatformManagerImpl_FreeRTOS::Impl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/FreeRTOS/GenericPlatformManagerImpl_FreeRTOS.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: ImplClass
    signature: '* Impl()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/FreeRTOS/GenericThreadStackManagerImpl_FreeRTOS.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: nl::Weave::DeviceLayer::Internal::GenericThreadStackManagerImpl_FreeRTOS::Impl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/FreeRTOS/GenericThreadStackManagerImpl_FreeRTOS.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: ImplClass
    signature: '* Impl()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: nl::Weave::DeviceLayer::ConfigurationMgr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ConfigurationManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConfigurationManager
    signature: '& ConfigurationMgr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: nl::Weave::DeviceLayer::ConfigurationMgrImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ConfigurationManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConfigurationManagerImpl
    signature: '& ConfigurationMgrImpl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ESP32Config.h:110,1
    - Dst: strcmp
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ESP32Config.h:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Key
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: ESP32Config::Key::operator==(const Key & other) const
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ESP32Config.h
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: ESP32Config::Key::operator==(const Key & other) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningSvr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/NetworkProvisioningServerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NetworkProvisioningServer
    signature: '& NetworkProvisioningSvr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningSvrImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/NetworkProvisioningServerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NetworkProvisioningServerImpl
    signature: '& NetworkProvisioningSvrImpl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: nl::Weave::DeviceLayer::ThreadStackManagerImpl::ThreadStackManagerImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ThreadStackManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ThreadStackManagerImpl()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: nl::Weave::DeviceLayer::ThreadStackMgr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ThreadStackManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ThreadStackManager
    signature: '&ThreadStackMgr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: nl::Weave::DeviceLayer::ThreadStackMgrImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ThreadStackManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ThreadStackManagerImpl
    signature: '&ThreadStackMgrImpl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: nl::Weave::DeviceLayer::Internal::BLEMgr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/BLEManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BLEManager
    signature: '& BLEMgr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: nl::Weave::DeviceLayer::Internal::BLEMgrImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/BLEManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BLEManagerImpl
    signature: '& BLEMgrImpl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_GetBleLayer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/BLEManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ::nl::Ble::BleLayer
    signature: '* BLEManagerImpl::_GetBleLayer() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_GetWoBLEServiceMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/BLEManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BLEManager::WoBLEServiceMode
    signature: BLEManagerImpl::_GetWoBLEServiceMode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/BLEManagerImpl.h:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_IsAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/BLEManagerImpl.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::_IsAdvertisingEnabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/BLEManagerImpl.h:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_IsFastAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/BLEManagerImpl.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::_IsFastAdvertisingEnabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/BLEManagerImpl.h:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_IsAdvertising
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/BLEManagerImpl.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::_IsAdvertising(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: nl::Weave::DeviceLayer::PlatformMgr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/PlatformManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PlatformManager
    signature: '& PlatformMgr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: nl::Weave::DeviceLayer::PlatformMgrImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/PlatformManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PlatformManagerImpl
    signature: '& PlatformMgrImpl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_IsWiFiStationApplicationControlled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ConnectivityManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ConnectivityManagerImpl::_IsWiFiStationApplicationControlled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_IsWiFiStationConnected
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ConnectivityManagerImpl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ConnectivityManagerImpl::_IsWiFiStationConnected(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_IsWiFiAPApplicationControlled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ConnectivityManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ConnectivityManagerImpl::_IsWiFiAPApplicationControlled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_GetWiFiStationReconnectIntervalMS
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ConnectivityManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: ConnectivityManagerImpl::_GetWiFiStationReconnectIntervalMS(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_GetWiFiAPMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ConnectivityManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConnectivityManager::WiFiAPMode
    signature: ConnectivityManagerImpl::_GetWiFiAPMode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_IsWiFiAPActive
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ConnectivityManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ConnectivityManagerImpl::_IsWiFiAPActive(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_GetWiFiAPIdleTimeoutMS
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ConnectivityManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: ConnectivityManagerImpl::_GetWiFiAPIdleTimeoutMS(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ConnectivityManagerImpl.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_HaveIPv4InternetConnectivity
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ConnectivityManagerImpl.h
    functionUses: 0
    functionsReached:
    - nl::GetFlag
    linkageType: ''
    returnType: bool
    signature: ConnectivityManagerImpl::_HaveIPv4InternetConnectivity(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ConnectivityManagerImpl.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_HaveIPv6InternetConnectivity
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ConnectivityManagerImpl.h
    functionUses: 0
    functionsReached:
    - nl::GetFlag
    linkageType: ''
    returnType: bool
    signature: ConnectivityManagerImpl::_HaveIPv6InternetConnectivity(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_GetServiceTunnelMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ConnectivityManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConnectivityManager::ServiceTunnelMode
    signature: ConnectivityManagerImpl::_GetServiceTunnelMode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_CanStartWiFiScan
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ConnectivityManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ConnectivityManagerImpl::_CanStartWiFiScan()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HaveServiceConnectivityViaTunnel
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ConnectivityManagerImpl.h:253,1
    - Dst: HaveServiceConnectivityViaThread
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ConnectivityManagerImpl.h:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_HaveServiceConnectivity
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ConnectivityManagerImpl.h
    functionUses: 0
    functionsReached:
    - HaveServiceConnectivityViaThread
    - HaveServiceConnectivityViaTunnel
    linkageType: ''
    returnType: bool
    signature: ConnectivityManagerImpl::_HaveServiceConnectivity(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: nl::Weave::DeviceLayer::ConnectivityMgr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ConnectivityManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConnectivityManager
    signature: '& ConnectivityMgr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: nl::Weave::DeviceLayer::ConnectivityMgrImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ConnectivityManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConnectivityManagerImpl
    signature: '& ConnectivityMgrImpl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: nl::Weave::DeviceLayer::SoftwareUpdateMgr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/SoftwareUpdateManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SoftwareUpdateManager
    signature: '& SoftwareUpdateMgr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: nl::Weave::DeviceLayer::SoftwareUpdateMgrImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/SoftwareUpdateManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SoftwareUpdateManagerImpl
    signature: '& SoftwareUpdateMgrImpl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServer::NetworkProvisioningServer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/NetworkProvisioningServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: NetworkProvisioningServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: ~NetworkProvisioningServer()
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/NetworkProvisioningServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~NetworkProvisioningServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServer::NetworkProvisioningServer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/NetworkProvisioningServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: NetworkProvisioningServer(const NetworkProvisioningServer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServer::NetworkProvisioningServer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/NetworkProvisioningServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: NetworkProvisioningServer(const NetworkProvisioningServer &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: '& operator =(const NetworkProvisioningServer &)'
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/NetworkProvisioningServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NetworkProvisioningServer
    signature: '& operator =(const NetworkProvisioningServer &)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/NetworkProvisioningServer.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServer::Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/NetworkProvisioningServer.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkProvisioningServer::Init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/NetworkProvisioningServer.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServer::GetDelegate
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/NetworkProvisioningServer.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: ::nl::Weave::Profiles::NetworkProvisioning::NetworkProvisioningDelegate
    signature: '* NetworkProvisioningServer::GetDelegate(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/NetworkProvisioningServer.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServer::StartPendingScan
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/NetworkProvisioningServer.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: NetworkProvisioningServer::StartPendingScan(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/NetworkProvisioningServer.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServer::ScanInProgress
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/NetworkProvisioningServer.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: NetworkProvisioningServer::ScanInProgress(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/NetworkProvisioningServer.h:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServer::OnPlatformEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/NetworkProvisioningServer.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: NetworkProvisioningServer::OnPlatformEvent(const WeaveDeviceEvent *
      event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass *>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoThread.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread::Impl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoThread.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass *>
    linkageType: ''
    returnType: ImplClass
    signature: '* Impl()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_GetThreadMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoThread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConnectivityManager::ThreadMode
    signature: GenericConnectivityManagerImpl_NoThread<ImplClass>::_GetThreadMode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - ConnectivityManager::ThreadMode
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_SetThreadMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoThread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericConnectivityManagerImpl_NoThread<ImplClass>::_SetThreadMode(ConnectivityManager::ThreadMode
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_IsThreadEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoThread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_NoThread<ImplClass>::_IsThreadEnabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_IsThreadApplicationControlled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoThread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_NoThread<ImplClass>::_IsThreadApplicationControlled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_IsThreadAttached
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoThread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_NoThread<ImplClass>::_IsThreadAttached(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_IsThreadProvisioned
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoThread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_NoThread<ImplClass>::_IsThreadProvisioned(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_ClearThreadProvision
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoThread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: GenericConnectivityManagerImpl_NoThread<ImplClass>::_ClearThreadProvision(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_GetThreadDeviceType
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoThread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConnectivityManager::ThreadDeviceType
    signature: GenericConnectivityManagerImpl_NoThread<ImplClass>::_GetThreadDeviceType(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - deviceType
    argTypes:
    - ConnectivityManager::ThreadDeviceType
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_SetThreadDeviceType
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoThread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericConnectivityManagerImpl_NoThread<ImplClass>::_SetThreadDeviceType(ConnectivityManager::ThreadDeviceType
      deviceType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoThread.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pollingConfig'
    argTypes:
    - ConnectivityManager::ThreadPollingConfig
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_GetThreadPollingConfig
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoThread.h
    functionUses: 0
    functionsReached:
    - Clear
    linkageType: ''
    returnType: void
    signature: GenericConnectivityManagerImpl_NoThread<ImplClass>::_GetThreadPollingConfig(ConnectivityManager::ThreadPollingConfig
      & pollingConfig)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pollingConfig'
    argTypes:
    - ConnectivityManager::ThreadPollingConfig
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_SetThreadPollingConfig
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoThread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericConnectivityManagerImpl_NoThread<ImplClass>::_SetThreadPollingConfig(const
      ConnectivityManager::ThreadPollingConfig & pollingConfig)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_HaveServiceConnectivityViaThread
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoThread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_NoThread<ImplClass>::_HaveServiceConnectivityViaThread(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::DeviceDescriptionServer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/DeviceDescriptionServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DeviceDescriptionServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: ~DeviceDescriptionServer()
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/DeviceDescriptionServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~DeviceDescriptionServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::DeviceDescriptionServer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/DeviceDescriptionServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DeviceDescriptionServer(const DeviceDescriptionServer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::DeviceDescriptionServer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/DeviceDescriptionServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DeviceDescriptionServer(const DeviceDescriptionServer &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: '& operator =(const DeviceDescriptionServer &)'
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/DeviceDescriptionServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DeviceDescriptionServer
    signature: '& operator =(const DeviceDescriptionServer &)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: nl::Weave::DeviceLayer::Internal::DeviceDescriptionSvr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/DeviceDescriptionServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DeviceDescriptionServer
    signature: '& DeviceDescriptionSvr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: nl::Weave::DeviceLayer::Internal::DeviceControlServer::DeviceControlServer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/DeviceControlServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DeviceControlServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: ~DeviceControlServer()
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/DeviceControlServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~DeviceControlServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: nl::Weave::DeviceLayer::Internal::DeviceControlServer::DeviceControlServer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/DeviceControlServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DeviceControlServer(const DeviceControlServer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: nl::Weave::DeviceLayer::Internal::DeviceControlServer::DeviceControlServer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/DeviceControlServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DeviceControlServer(const DeviceControlServer &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: '& operator =(const DeviceControlServer &)'
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/DeviceControlServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DeviceControlServer
    signature: '& operator =(const DeviceControlServer &)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: nl::Weave::DeviceLayer::Internal::DeviceControlSvr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/DeviceControlServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DeviceControlServer
    signature: '& DeviceControlSvr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass *>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi::Impl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass *>
    linkageType: ''
    returnType: ImplClass
    signature: '* Impl()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_GetWiFiStationMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConnectivityManager::WiFiStationMode
    signature: GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_GetWiFiStationMode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - ConnectivityManager::WiFiStationMode
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_SetWiFiStationMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_SetWiFiStationMode(ConnectivityManager::WiFiStationMode
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_IsWiFiStationEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_IsWiFiStationEnabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_IsWiFiStationConnected
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_IsWiFiStationConnected(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_GetWiFiStationReconnectIntervalMS
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_GetWiFiStationReconnectIntervalMS(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_SetWiFiStationReconnectIntervalMS
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_SetWiFiStationReconnectIntervalMS(uint32_t
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_IsWiFiStationProvisioned
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_IsWiFiStationProvisioned(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_ClearWiFiStationProvision
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_ClearWiFiStationProvision(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_GetWiFiAPMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConnectivityManager::WiFiAPMode
    signature: GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_GetWiFiAPMode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - ConnectivityManager::WiFiAPMode
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_SetWiFiAPMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_SetWiFiAPMode(ConnectivityManager::WiFiAPMode
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_IsWiFiAPActive
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_IsWiFiAPActive(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_IsWiFiAPApplicationControlled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_IsWiFiAPApplicationControlled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_DemandStartWiFiAP
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_DemandStartWiFiAP(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_StopOnDemandWiFiAP
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_StopOnDemandWiFiAP(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_MaintainOnDemandWiFiAP
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_MaintainOnDemandWiFiAP(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_GetWiFiAPIdleTimeoutMS
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_GetWiFiAPIdleTimeoutMS(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_SetWiFiAPIdleTimeoutMS
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_SetWiFiAPIdleTimeoutMS(uint32_t
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_GetAndLogWifiStatsCounters
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_GetAndLogWifiStatsCounters(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_CanStartWiFiScan
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_CanStartWiFiScan()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_OnWiFiScanDone
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_OnWiFiScanDone()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_OnWiFiStationProvisionChange
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_OnWiFiStationProvisionChange()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - ConnectivityManager::WiFiStationMode
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_WiFiStationModeToStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_WiFiStationModeToStr(ConnectivityManager::WiFiStationMode
      mode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - ConnectivityManager::WiFiAPMode
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_WiFiAPModeToStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_WiFiAPModeToStr(ConnectivityManager::WiFiAPMode
      mode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass *>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoBLE.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE::Impl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoBLE.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass *>
    linkageType: ''
    returnType: ImplClass
    signature: '* Impl()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE<ImplClass>::_GetWoBLEServiceMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoBLE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConnectivityManager::WoBLEServiceMode
    signature: GenericConnectivityManagerImpl_NoBLE<ImplClass>::_GetWoBLEServiceMode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - ConnectivityManager::WoBLEServiceMode
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE<ImplClass>::_SetWoBLEServiceMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoBLE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericConnectivityManagerImpl_NoBLE<ImplClass>::_SetWoBLEServiceMode(ConnectivityManager::WoBLEServiceMode
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE<ImplClass>::_IsBLEAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoBLE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_NoBLE<ImplClass>::_IsBLEAdvertisingEnabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE<ImplClass>::_SetBLEAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoBLE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericConnectivityManagerImpl_NoBLE<ImplClass>::_SetBLEAdvertisingEnabled(bool
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE<ImplClass>::_IsBLEFastAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoBLE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_NoBLE<ImplClass>::_IsBLEFastAdvertisingEnabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE<ImplClass>::_SetBLEFastAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoBLE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericConnectivityManagerImpl_NoBLE<ImplClass>::_SetBLEFastAdvertisingEnabled(bool
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE<ImplClass>::_GetBLEDeviceName
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoBLE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericConnectivityManagerImpl_NoBLE<ImplClass>::_GetBLEDeviceName(char
      * buf, size_t bufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - deviceName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE<ImplClass>::_SetBLEDeviceName
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoBLE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericConnectivityManagerImpl_NoBLE<ImplClass>::_SetBLEDeviceName(const
      char * deviceName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE<ImplClass>::_NumBLEConnections
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoBLE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: GenericConnectivityManagerImpl_NoBLE<ImplClass>::_NumBLEConnections(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - ConnectivityManager::WoBLEServiceMode
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE<ImplClass>::_WoBLEServiceModeToStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoBLE.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* GenericConnectivityManagerImpl_NoBLE<ImplClass>::_WoBLEServiceModeToStr(ConnectivityManager::WoBLEServiceMode
      mode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass *>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoTunnel.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoTunnel::Impl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoTunnel.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass *>
    linkageType: ''
    returnType: ImplClass
    signature: '* Impl()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoTunnel<ImplClass>::_GetServiceTunnelMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoTunnel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConnectivityManager::ServiceTunnelMode
    signature: GenericConnectivityManagerImpl_NoTunnel<ImplClass>::_GetServiceTunnelMode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - ConnectivityManager::ServiceTunnelMode
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoTunnel<ImplClass>::_SetServiceTunnelMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoTunnel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericConnectivityManagerImpl_NoTunnel<ImplClass>::_SetServiceTunnelMode(ConnectivityManager::ServiceTunnelMode
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoTunnel<ImplClass>::_IsServiceTunnelConnected
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoTunnel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_NoTunnel<ImplClass>::_IsServiceTunnelConnected(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoTunnel<ImplClass>::_IsServiceTunnelRestricted
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoTunnel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_NoTunnel<ImplClass>::_IsServiceTunnelRestricted(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoTunnel<ImplClass>::_HaveServiceConnectivityViaTunnel
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoTunnel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_NoTunnel<ImplClass>::_HaveServiceConnectivityViaTunnel(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - ConnectivityManager::ServiceTunnelMode
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoTunnel<ImplClass>::_ServiceTunnelModeToStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoTunnel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* GenericConnectivityManagerImpl_NoTunnel<ImplClass>::_ServiceTunnelModeToStr(ConnectivityManager::ServiceTunnelMode
      mode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass *>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_BLE.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_BLE::Impl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_BLE.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass *>
    linkageType: ''
    returnType: ImplClass
    signature: '* Impl()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BLEMgr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_BLE.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_BLE<ImplClass>::_GetWoBLEServiceMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_BLE.h
    functionUses: 0
    functionsReached:
    - BLEMgr
    linkageType: ''
    returnType: ConnectivityManager::WoBLEServiceMode
    signature: GenericConnectivityManagerImpl_BLE<ImplClass>::_GetWoBLEServiceMode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BLEMgr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_BLE.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - ConnectivityManager::WoBLEServiceMode
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_BLE<ImplClass>::_SetWoBLEServiceMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_BLE.h
    functionUses: 0
    functionsReached:
    - BLEMgr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericConnectivityManagerImpl_BLE<ImplClass>::_SetWoBLEServiceMode(ConnectivityManager::WoBLEServiceMode
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BLEMgr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_BLE.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_BLE<ImplClass>::_IsBLEAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_BLE.h
    functionUses: 0
    functionsReached:
    - BLEMgr
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_BLE<ImplClass>::_IsBLEAdvertisingEnabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BLEMgr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_BLE.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_BLE<ImplClass>::_SetBLEAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_BLE.h
    functionUses: 0
    functionsReached:
    - BLEMgr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericConnectivityManagerImpl_BLE<ImplClass>::_SetBLEAdvertisingEnabled(bool
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BLEMgr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_BLE.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_BLE<ImplClass>::_IsBLEFastAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_BLE.h
    functionUses: 0
    functionsReached:
    - BLEMgr
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_BLE<ImplClass>::_IsBLEFastAdvertisingEnabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BLEMgr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_BLE.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_BLE<ImplClass>::_SetBLEFastAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_BLE.h
    functionUses: 0
    functionsReached:
    - BLEMgr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericConnectivityManagerImpl_BLE<ImplClass>::_SetBLEFastAdvertisingEnabled(bool
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BLEMgr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_BLE.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_BLE<ImplClass>::_IsBLEAdvertising
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_BLE.h
    functionUses: 0
    functionsReached:
    - BLEMgr
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_BLE<ImplClass>::_IsBLEAdvertising(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BLEMgr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_BLE.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_BLE<ImplClass>::_GetBLEDeviceName
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_BLE.h
    functionUses: 0
    functionsReached:
    - BLEMgr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericConnectivityManagerImpl_BLE<ImplClass>::_GetBLEDeviceName(char
      * buf, size_t bufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BLEMgr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_BLE.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - deviceName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_BLE<ImplClass>::_SetBLEDeviceName
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_BLE.h
    functionUses: 0
    functionsReached:
    - BLEMgr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericConnectivityManagerImpl_BLE<ImplClass>::_SetBLEDeviceName(const
      char * deviceName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BLEMgr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_BLE.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_BLE<ImplClass>::_NumBLEConnections
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_BLE.h
    functionUses: 0
    functionsReached:
    - BLEMgr
    linkageType: ''
    returnType: uint16_t
    signature: GenericConnectivityManagerImpl_BLE<ImplClass>::_NumBLEConnections(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass *>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread::Impl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass *>
    linkageType: ''
    returnType: ImplClass
    signature: '* Impl()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread<ImplClass>::_Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: GenericConnectivityManagerImpl_Thread<ImplClass>::_Init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread<ImplClass>::_IsThreadEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h
    functionUses: 0
    functionsReached:
    - ThreadStackMgrImpl
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_Thread<ImplClass>::_IsThreadEnabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread<ImplClass>::_IsThreadApplicationControlled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_Thread<ImplClass>::_IsThreadApplicationControlled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread<ImplClass>::_IsThreadAttached
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h
    functionUses: 0
    functionsReached:
    - ThreadStackMgrImpl
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_Thread<ImplClass>::_IsThreadAttached(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread<ImplClass>::_IsThreadProvisioned
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h
    functionUses: 0
    functionsReached:
    - ThreadStackMgrImpl
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_Thread<ImplClass>::_IsThreadProvisioned(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread<ImplClass>::_ClearThreadProvision
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h
    functionUses: 0
    functionsReached:
    - ThreadStackMgrImpl
    linkageType: ''
    returnType: void
    signature: GenericConnectivityManagerImpl_Thread<ImplClass>::_ClearThreadProvision(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread<ImplClass>::_GetThreadDeviceType
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h
    functionUses: 0
    functionsReached:
    - ThreadStackMgrImpl
    linkageType: ''
    returnType: ConnectivityManager::ThreadDeviceType
    signature: GenericConnectivityManagerImpl_Thread<ImplClass>::_GetThreadDeviceType(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - deviceType
    argTypes:
    - ConnectivityManager::ThreadDeviceType
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread<ImplClass>::_SetThreadDeviceType
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h
    functionUses: 0
    functionsReached:
    - ThreadStackMgrImpl
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericConnectivityManagerImpl_Thread<ImplClass>::_SetThreadDeviceType(ConnectivityManager::ThreadDeviceType
      deviceType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pollingConfig'
    argTypes:
    - ConnectivityManager::ThreadPollingConfig
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread<ImplClass>::_GetThreadPollingConfig
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h
    functionUses: 0
    functionsReached:
    - ThreadStackMgrImpl
    linkageType: ''
    returnType: void
    signature: GenericConnectivityManagerImpl_Thread<ImplClass>::_GetThreadPollingConfig(ConnectivityManager::ThreadPollingConfig
      & pollingConfig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pollingConfig'
    argTypes:
    - ConnectivityManager::ThreadPollingConfig
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread<ImplClass>::_SetThreadPollingConfig
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h
    functionUses: 0
    functionsReached:
    - ThreadStackMgrImpl
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericConnectivityManagerImpl_Thread<ImplClass>::_SetThreadPollingConfig(const
      ConnectivityManager::ThreadPollingConfig & pollingConfig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread<ImplClass>::_HaveServiceConnectivityViaThread
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl_Thread<ImplClass>::_HaveServiceConnectivityViaThread(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DerivedClass *>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/FactoryProvisioning.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: nl::Weave::DeviceLayer::Internal::FactoryProvisioningBase::Derived
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/FactoryProvisioning.h
    functionUses: 0
    functionsReached:
    - static_cast<DerivedClass *>
    linkageType: ''
    returnType: DerivedClass
    signature: '* Derived()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::ServiceProvisioningServer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/ServiceProvisioningServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ServiceProvisioningServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: ~ServiceProvisioningServer()
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/ServiceProvisioningServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~ServiceProvisioningServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::ServiceProvisioningServer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/ServiceProvisioningServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ServiceProvisioningServer(const ServiceProvisioningServer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::ServiceProvisioningServer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/ServiceProvisioningServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ServiceProvisioningServer(const ServiceProvisioningServer &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: '& operator =(const ServiceProvisioningServer &)'
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/ServiceProvisioningServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ServiceProvisioningServer
    signature: '& operator =(const ServiceProvisioningServer &)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: nl::Weave::DeviceLayer::Internal::ServiceProvisioningSvr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/ServiceProvisioningServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ServiceProvisioningServer
    signature: '& ServiceProvisioningSvr()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericPlatformManagerImpl.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: nl::Weave::DeviceLayer::Internal::GenericPlatformManagerImpl::Impl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericPlatformManagerImpl.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: ImplClass
    signature: '* Impl()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass *>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericSoftwareUpdateManagerImpl_BDX.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: nl::Weave::DeviceLayer::Internal::GenericSoftwareUpdateManagerImpl_BDX::Impl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericSoftwareUpdateManagerImpl_BDX.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass *>
    linkageType: ''
    returnType: ImplClass
    signature: '* Impl()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: nl::Weave::DeviceLayer::Internal::BLEManager::BLEManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BLEManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: ~BLEManager()
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~BLEManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: nl::Weave::DeviceLayer::Internal::BLEManager::BLEManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BLEManager(const BLEManager &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: nl::Weave::DeviceLayer::Internal::BLEManager::BLEManager
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BLEManager(const BLEManager &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: '& operator =(const BLEManager &)'
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BLEManager
    signature: '& operator =(const BLEManager &)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: nl::Weave::DeviceLayer::Internal::BLEManager::Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManager::Init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: nl::Weave::DeviceLayer::Internal::BLEManager::GetWoBLEServiceMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: BLEManager::WoBLEServiceMode
    signature: BLEManager::GetWoBLEServiceMode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - WoBLEServiceMode
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: nl::Weave::DeviceLayer::Internal::BLEManager::SetWoBLEServiceMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManager::SetWoBLEServiceMode(WoBLEServiceMode val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: nl::Weave::DeviceLayer::Internal::BLEManager::IsAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: BLEManager::IsAdvertisingEnabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: nl::Weave::DeviceLayer::Internal::BLEManager::SetAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManager::SetAdvertisingEnabled(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: nl::Weave::DeviceLayer::Internal::BLEManager::IsFastAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: BLEManager::IsFastAdvertisingEnabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: nl::Weave::DeviceLayer::Internal::BLEManager::SetFastAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManager::SetFastAdvertisingEnabled(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: nl::Weave::DeviceLayer::Internal::BLEManager::IsAdvertising
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: bool
    signature: BLEManager::IsAdvertising(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: nl::Weave::DeviceLayer::Internal::BLEManager::GetDeviceName
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManager::GetDeviceName(char * buf, size_t bufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - deviceName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: nl::Weave::DeviceLayer::Internal::BLEManager::SetDeviceName
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManager::SetDeviceName(const char * deviceName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: nl::Weave::DeviceLayer::Internal::BLEManager::NumConnections
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: uint16_t
    signature: BLEManager::NumConnections(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: nl::Weave::DeviceLayer::Internal::BLEManager::OnPlatformEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: void
    signature: BLEManager::OnPlatformEvent(const WeaveDeviceEvent * event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: nl::Weave::DeviceLayer::Internal::BLEManager::GetBleLayer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h
    functionUses: 0
    functionsReached:
    - static_cast<const ImplClass*>
    linkageType: ''
    returnType: ::nl::Ble::BleLayer
    signature: '* BLEManager::GetBleLayer(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass *>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericSoftwareUpdateManagerImpl.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: nl::Weave::DeviceLayer::Internal::GenericSoftwareUpdateManagerImpl::Impl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericSoftwareUpdateManagerImpl.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass *>
    linkageType: ''
    returnType: ImplClass
    signature: '* Impl()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: nl::Weave::DeviceLayer::Internal::EchoServer::EchoServer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/EchoServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EchoServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: ~EchoServer()
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/EchoServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~EchoServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: nl::Weave::DeviceLayer::Internal::EchoServer::EchoServer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/EchoServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EchoServer(const EchoServer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: nl::Weave::DeviceLayer::Internal::EchoServer::EchoServer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/EchoServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EchoServer(const EchoServer &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: '& operator =(const EchoServer &)'
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/EchoServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EchoServer
    signature: '& operator =(const EchoServer &)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: nl::Weave::DeviceLayer::Internal::EchoSvr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/EchoServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EchoServer
    signature: '& EchoSvr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass *>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConfigurationManagerImpl.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: nl::Weave::DeviceLayer::Internal::GenericConfigurationManagerImpl::Impl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConfigurationManagerImpl.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass *>
    linkageType: ''
    returnType: ImplClass
    signature: '* Impl()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vendorId'
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: nl::Weave::DeviceLayer::Internal::GenericConfigurationManagerImpl<ImplClass>::_GetVendorId
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConfigurationManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericConfigurationManagerImpl<ImplClass>::_GetVendorId(uint16_t &
      vendorId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' productId'
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: nl::Weave::DeviceLayer::Internal::GenericConfigurationManagerImpl<ImplClass>::_GetProductId
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConfigurationManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenericConfigurationManagerImpl<ImplClass>::_GetProductId(uint16_t
      & productId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass *>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl::Impl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass *>
    linkageType: ''
    returnType: ImplClass
    signature: '* Impl()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeviceDescriptionSvr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl<ImplClass>::_IsUserSelectedModeActive
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl.h
    functionUses: 0
    functionsReached:
    - DeviceDescriptionSvr
    linkageType: ''
    returnType: bool
    signature: GenericConnectivityManagerImpl<ImplClass>::_IsUserSelectedModeActive(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeviceDescriptionSvr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl<ImplClass>::_SetUserSelectedMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl.h
    functionUses: 0
    functionsReached:
    - DeviceDescriptionSvr
    linkageType: ''
    returnType: void
    signature: GenericConnectivityManagerImpl<ImplClass>::_SetUserSelectedMode(bool
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeviceDescriptionSvr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl<ImplClass>::_GetUserSelectedModeTimeout
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl.h
    functionUses: 0
    functionsReached:
    - DeviceDescriptionSvr
    linkageType: ''
    returnType: uint16_t
    signature: GenericConnectivityManagerImpl<ImplClass>::_GetUserSelectedModeTimeout(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeviceDescriptionSvr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl<ImplClass>::_SetUserSelectedModeTimeout
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl.h
    functionUses: 0
    functionsReached:
    - DeviceDescriptionSvr
    linkageType: ''
    returnType: void
    signature: GenericConnectivityManagerImpl<ImplClass>::_SetUserSelectedModeTimeout(uint16_t
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: nl::Weave::DeviceLayer::Internal::FabricProvisioningServer::FabricProvisioningServer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/FabricProvisioningServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: FabricProvisioningServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: ~FabricProvisioningServer()
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/FabricProvisioningServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~FabricProvisioningServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: nl::Weave::DeviceLayer::Internal::FabricProvisioningServer::FabricProvisioningServer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/FabricProvisioningServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: FabricProvisioningServer(const FabricProvisioningServer &)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: nl::Weave::DeviceLayer::Internal::FabricProvisioningServer::FabricProvisioningServer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/FabricProvisioningServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: FabricProvisioningServer(const FabricProvisioningServer &&)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: '& operator =(const FabricProvisioningServer &)'
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/FabricProvisioningServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FabricProvisioningServer
    signature: '& operator =(const FabricProvisioningServer &)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: nl::Weave::DeviceLayer::Internal::FabricProvisioningSvr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/FabricProvisioningServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FabricProvisioningServer
    signature: '& FabricProvisioningSvr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass *>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericNetworkProvisioningServerImpl.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: nl::Weave::DeviceLayer::Internal::GenericNetworkProvisioningServerImpl::Impl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericNetworkProvisioningServerImpl.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass *>
    linkageType: ''
    returnType: ImplClass
    signature: '* Impl()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: nl::Weave::DeviceLayer::Internal::GenericNetworkProvisioningServerImpl<ImplClass>::_GetDelegate
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericNetworkProvisioningServerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ::nl::Weave::Profiles::NetworkProvisioning::NetworkProvisioningDelegate
    signature: '*

      GenericNetworkProvisioningServerImpl<ImplClass>::_GetDelegate(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: nl::Weave::DeviceLayer::Internal::GenericNetworkProvisioningServerImpl<ImplClass>::GetCurrentOp
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericNetworkProvisioningServerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int16_t
    signature: GenericNetworkProvisioningServerImpl<ImplClass>::GetCurrentOp() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: nl::Weave::DeviceLayer::Internal::GenericNetworkProvisioningServerImpl<ImplClass>::_ScanInProgress
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericNetworkProvisioningServerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: GenericNetworkProvisioningServerImpl<ImplClass>::_ScanInProgress(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:40,1
    - Dst: GroupKeyStoreClass*::StoreGroupKey
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:41,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:42,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:45,1
    - Dst: GroupKeyStoreClass*::RetrieveGroupKey
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:46,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:47,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:48,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:49,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:50,1
    - Dst: memcmp
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:50,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:57,1
    - Dst: GroupKeyStoreClass*::StoreGroupKey
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:58,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:59,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:62,1
    - Dst: GroupKeyStoreClass*::RetrieveGroupKey
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:63,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:64,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:65,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:66,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:67,1
    - Dst: memcmp
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:67,1
    - Dst: nl::Weave::WeaveKeyId::MakeAppGroupMasterKeyId
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:72,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:74,1
    - Dst: GroupKeyStoreClass*::StoreGroupKey
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:76,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:77,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:80,1
    - Dst: GroupKeyStoreClass*::RetrieveGroupKey
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:81,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:82,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:83,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:84,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:85,1
    - Dst: memcmp
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:85,1
    - Dst: nl::Weave::WeaveKeyId::MakeEpochKeyId
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:90,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:92,1
    - Dst: GroupKeyStoreClass*::StoreGroupKey
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:94,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:95,1
    - Dst: nl::Weave::WeaveKeyId::MakeEpochKeyId
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:98,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:100,1
    - Dst: GroupKeyStoreClass*::StoreGroupKey
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:102,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:103,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:106,1
    - Dst: GroupKeyStoreClass*::RetrieveGroupKey
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:107,1
    - Dst: nl::Weave::WeaveKeyId::MakeEpochKeyId
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:107,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:108,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:109,1
    - Dst: nl::Weave::WeaveKeyId::MakeEpochKeyId
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:109,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:110,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:111,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:112,1
    - Dst: memcmp
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:112,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:113,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:116,1
    - Dst: GroupKeyStoreClass*::RetrieveGroupKey
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:117,1
    - Dst: nl::Weave::WeaveKeyId::MakeEpochKeyId
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:117,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:118,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:119,1
    - Dst: nl::Weave::WeaveKeyId::MakeEpochKeyId
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:119,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:120,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:121,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:122,1
    - Dst: memcmp
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:122,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:123,1
    - Dst: GroupKeyStoreClass*::EnumerateGroupKeys
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:133,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:134,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:137,1
    - Dst: nl::Weave::WeaveKeyId::MakeEpochKeyId
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:138,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:138,1
    - Dst: nl::Weave::WeaveKeyId::MakeEpochKeyId
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:139,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:139,1
    - Dst: GroupKeyStoreClass*::EnumerateGroupKeys
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:150,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:151,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:154,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:155,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:156,1
    - Dst: nl::Weave::WeaveKeyId::MakeAppGroupMasterKeyId
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:157,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:157,1
    - Dst: nl::Weave::WeaveKeyId::MakeEpochKeyId
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:158,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:158,1
    - Dst: nl::Weave::WeaveKeyId::MakeEpochKeyId
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:159,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:159,1
    - Dst: nl::Weave::WeaveKeyId::MakeAppGroupMasterKeyId
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:165,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:167,1
    - Dst: GroupKeyStoreClass*::StoreGroupKey
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:169,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:170,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:173,1
    - Dst: GroupKeyStoreClass*::RetrieveGroupKey
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:174,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:175,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:176,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:177,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:178,1
    - Dst: memcmp
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:178,1
    - Dst: LogGroupKeys
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:180,1
    - Dst: GroupKeyStoreClass*::Clear
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:190,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:191,1
    - Dst: GroupKeyStoreClass*::EnumerateGroupKeys
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:194,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:195,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:198,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:201,1
    - Dst: GroupKeyStoreClass*::RetrieveGroupKey
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:202,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:203,1
    - Dst: LogGroupKeys
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h:206,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 115
    argCount: 1
    argNames:
    - groupKeyStore
    argTypes:
    - GroupKeyStoreClass*
    constantsTouched: []
    func_position:
      end: 207
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 207
    functionName: nl::Weave::DeviceLayer::Internal::RunGroupKeyStoreUnitTest
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h
    functionUses: 0
    functionsReached:
    - GroupKeyStoreClass*::RetrieveGroupKey
    - memcmp
    - nl::Weave::WeaveKeyId::MakeEpochKeyId
    - nl::Weave::WeaveKeyId::MakeAppGroupMasterKeyId
    - GroupKeyStoreClass*::StoreGroupKey
    - memset
    - GroupKeyStoreClass*::EnumerateGroupKeys
    - LogGroupKeys
    - GroupKeyStoreClass*::Clear
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: RunGroupKeyStoreUnitTest(GroupKeyStoreClass * groupKeyStore)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:39,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:40,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::ReadConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:44,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:45,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:47,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:54,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:55,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::ReadConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:59,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:60,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:62,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:69,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:70,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::ReadConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:74,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:75,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:77,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::ClearConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:84,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:85,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::ReadConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:87,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:88,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValueStr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:98,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:99,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::ReadConfigValueStr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:101,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:102,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:104,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:104,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:105,1
    - Dst: memcmp
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:105,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValueStr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:107,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:108,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::ReadConfigValueStr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:110,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:111,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:113,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:113,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:114,1
    - Dst: memcmp
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:114,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValueStr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:122,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:123,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::ReadConfigValueStr
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:125,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:126,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValueBin
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:153,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:154,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::ReadConfigValueBin
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:156,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:157,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:159,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:160,1
    - Dst: memcmp
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:160,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValueBin
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:168,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:169,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::ReadConfigValueBin
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:171,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:172,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::ConfigValueExists
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:179,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:180,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::ConfigValueExists
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:182,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:183,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::ConfigValueExists
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:185,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:186,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::FactoryResetConfig
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:193,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:194,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::ConfigValueExists
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:196,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:197,1
    - Dst: nl::Weave::DeviceLayer::Internal::ESP32Config::ConfigValueExists
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:199,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 202
    functionName: nl::Weave::DeviceLayer::Internal::RunConfigUnitTest
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValue
    - memcmp
    - nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValueBin
    - nl::Weave::DeviceLayer::Internal::ESP32Config::ClearConfigValue
    - nl::Weave::DeviceLayer::Internal::ESP32Config::ReadConfigValueBin
    - nl::Weave::DeviceLayer::Internal::ESP32Config::ConfigValueExists
    - strlen
    - nl::Weave::DeviceLayer::Internal::ESP32Config::ReadConfigValueStr
    - nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValueStr
    - nl::Weave::DeviceLayer::Internal::ESP32Config::ReadConfigValue
    - VerifyOrDie
    - nl::Weave::DeviceLayer::Internal::EFR32Config::FactoryResetConfig
    linkageType: ''
    returnType: void
    signature: RunConfigUnitTest(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Layer::GetClock_Monotonic
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:39,1
    - Dst: nl::Weave::System::Layer::GetClock_Monotonic
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:40,1
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:43,1
    - Dst: nl::Weave::System::Layer::GetClock_Monotonic
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:44,1
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:47,1
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:48,1
    - Dst: nl::Weave::System::Layer::SetClock_RealTime
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:51,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:52,1
    - Dst: nl::Weave::System::Layer::GetClock_RealTime
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:55,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:56,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:58,1
    - Dst: nl::Weave::System::Layer::SetClock_RealTime
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:61,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:62,1
    - Dst: nl::Weave::System::Layer::GetClock_RealTime
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:65,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:66,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:68,1
    - Dst: nl::Weave::System::Layer::GetClock_RealTime
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:71,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:72,1
    - Dst: nl::Weave::System::Layer::GetClock_RealTime
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:75,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:76,1
    - Dst: nl::Weave::System::Layer::GetClock_RealTime
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:80,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:81,1
    - Dst: nl::Weave::System::Layer::GetClock_RealTimeMS
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:82,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:83,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:85,1
    - Dst: nl::Weave::System::Layer::SetClock_RealTime
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:88,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:89,1
    - Dst: nl::Weave::System::Layer::GetClock_RealTime
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:90,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h:91,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 92
    functionName: nl::Weave::DeviceLayer::Internal::RunSystemClockUnitTest
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Layer::GetClock_RealTime
    - nl::Weave::System::Layer::GetClock_MonotonicMS
    - nl::Weave::System::Layer::SetClock_RealTime
    - nl::Weave::System::Layer::GetClock_RealTimeMS
    - nl::Weave::System::Layer::GetClock_Monotonic
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: RunSystemClockUnitTest(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/OpenThread/GenericThreadStackManagerImpl_OpenThread.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: nl::Weave::DeviceLayer::Internal::GenericThreadStackManagerImpl_OpenThread::Impl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/OpenThread/GenericThreadStackManagerImpl_OpenThread.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: ImplClass
    signature: '* Impl()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: nl::Weave::DeviceLayer::Internal::GenericThreadStackManagerImpl_OpenThread<ImplClass>::OTInstance
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/OpenThread/GenericThreadStackManagerImpl_OpenThread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: otInstance
    signature: '* GenericThreadStackManagerImpl_OpenThread<ImplClass>::OTInstance()
      const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: nl::Weave::DeviceLayer::Internal::GenericThreadStackManagerImpl_OpenThread<ImplClass>::_OnWoBLEAdvertisingStart
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/OpenThread/GenericThreadStackManagerImpl_OpenThread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: GenericThreadStackManagerImpl_OpenThread<ImplClass>::_OnWoBLEAdvertisingStart(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: nl::Weave::DeviceLayer::Internal::GenericThreadStackManagerImpl_OpenThread<ImplClass>::_OnWoBLEAdvertisingStop
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/OpenThread/GenericThreadStackManagerImpl_OpenThread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: GenericThreadStackManagerImpl_OpenThread<ImplClass>::_OnWoBLEAdvertisingStop(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/OpenThread/OpenThreadUtils.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - IPAddress
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: nl::Weave::DeviceLayer::Internal::ToOpenThreadIP6Address
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/OpenThread/OpenThreadUtils.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: otIp6Address
    signature: ToOpenThreadIP6Address(const IPAddress & addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/OpenThread/OpenThreadUtils.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' otAddr'
    argTypes:
    - otIp6Address
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: nl::Weave::DeviceLayer::Internal::ToIPAddress
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/OpenThread/OpenThreadUtils.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: IPAddress
    signature: ToIPAddress(const otIp6Address & otAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::ToIPAddress
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/OpenThread/OpenThreadUtils.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' otPrefix'
    argTypes:
    - otIp6Prefix
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: nl::Weave::DeviceLayer::Internal::ToIPPrefix
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/OpenThread/OpenThreadUtils.h
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::ToIPAddress
    linkageType: ''
    returnType: IPPrefix
    signature: ToIPPrefix(const otIp6Prefix & otPrefix)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImplClass*>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/OpenThread/GenericThreadStackManagerImpl_OpenThread_LwIP.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: nl::Weave::DeviceLayer::Internal::GenericThreadStackManagerImpl_OpenThread_LwIP::Impl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/OpenThread/GenericThreadStackManagerImpl_OpenThread_LwIP.h
    functionUses: 0
    functionsReached:
    - static_cast<ImplClass*>
    linkageType: ''
    returnType: ImplClass
    signature: '* Impl()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: nl::Weave::DeviceLayer::Internal::GenericThreadStackManagerImpl_OpenThread_LwIP<ImplClass>::ThreadNetIf
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/OpenThread/GenericThreadStackManagerImpl_OpenThread_LwIP.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct netif
    signature: '* GenericThreadStackManagerImpl_OpenThread_LwIP<ImplClass>::ThreadNetIf()
      const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/EFR32Config.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keyBaseOffset
    - id
    argTypes:
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: nl::Weave::DeviceLayer::Internal::EFR32ConfigKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/EFR32Config.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: EFR32ConfigKey(uint8_t keyBaseOffset, uint8_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: nl::Weave::DeviceLayer::ConfigurationMgr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/ConfigurationManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConfigurationManager
    signature: '&ConfigurationMgr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: nl::Weave::DeviceLayer::ConfigurationMgrImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/ConfigurationManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConfigurationManagerImpl
    signature: '&ConfigurationMgrImpl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetPrimaryWiFiMACAddress
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/ConfigurationManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManagerImpl::_GetPrimaryWiFiMACAddress(uint8_t *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningSvr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/NetworkProvisioningServerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NetworkProvisioningServer
    signature: '&NetworkProvisioningSvr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningSvrImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/NetworkProvisioningServerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NetworkProvisioningServerImpl
    signature: '&NetworkProvisioningSvrImpl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: nl::Weave::DeviceLayer::ThreadStackManagerImpl::ThreadStackManagerImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/ThreadStackManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ThreadStackManagerImpl()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: nl::Weave::DeviceLayer::ThreadStackMgr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/ThreadStackManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ThreadStackManager
    signature: '&ThreadStackMgr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: nl::Weave::DeviceLayer::ThreadStackMgrImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/ThreadStackManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ThreadStackManagerImpl
    signature: '&ThreadStackMgrImpl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: nl::Weave::DeviceLayer::Internal::BLEMgr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/BLEManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BLEManager
    signature: '&BLEMgr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: nl::Weave::DeviceLayer::Internal::BLEMgrImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/BLEManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BLEManagerImpl
    signature: '&BLEMgrImpl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_GetBleLayer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/BLEManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ::nl::Ble::BleLayer
    signature: '*BLEManagerImpl::_GetBleLayer() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_GetWoBLEServiceMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/BLEManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BLEManager::WoBLEServiceMode
    signature: BLEManagerImpl::_GetWoBLEServiceMode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/BLEManagerImpl.h:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_IsAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/BLEManagerImpl.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::_IsAdvertisingEnabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/BLEManagerImpl.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_IsFastAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/BLEManagerImpl.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::_IsFastAdvertisingEnabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: nl::Weave::DeviceLayer::PlatformMgr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/PlatformManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PlatformManager
    signature: '&PlatformMgr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: nl::Weave::DeviceLayer::PlatformMgrImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/PlatformManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PlatformManagerImpl
    signature: '&PlatformMgrImpl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_HaveIPv4InternetConnectivity
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/ConnectivityManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ConnectivityManagerImpl::_HaveIPv4InternetConnectivity(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_HaveIPv6InternetConnectivity
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/ConnectivityManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ConnectivityManagerImpl::_HaveIPv6InternetConnectivity(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _HaveServiceConnectivityViaThread
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/ConnectivityManagerImpl.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_HaveServiceConnectivity
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/ConnectivityManagerImpl.h
    functionUses: 0
    functionsReached:
    - _HaveServiceConnectivityViaThread
    linkageType: ''
    returnType: bool
    signature: ConnectivityManagerImpl::_HaveServiceConnectivity(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: nl::Weave::DeviceLayer::ConnectivityMgr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/ConnectivityManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConnectivityManager
    signature: '&ConnectivityMgr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: nl::Weave::DeviceLayer::ConnectivityMgrImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/ConnectivityManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConnectivityManagerImpl
    signature: '&ConnectivityMgrImpl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: nl::Weave::DeviceLayer::SoftwareUpdateMgr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/SoftwareUpdateManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SoftwareUpdateManager
    signature: '&SoftwareUpdateMgr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: nl::Weave::DeviceLayer::SoftwareUpdateMgrImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/SoftwareUpdateManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SoftwareUpdateManagerImpl
    signature: '&SoftwareUpdateMgrImpl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: nl::Weave::DeviceLayer::ConfigurationMgr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/ConfigurationManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConfigurationManager
    signature: '& ConfigurationMgr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: nl::Weave::DeviceLayer::ConfigurationMgrImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/ConfigurationManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConfigurationManagerImpl
    signature: '& ConfigurationMgrImpl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetPrimaryWiFiMACAddress
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/ConfigurationManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManagerImpl::_GetPrimaryWiFiMACAddress(uint8_t * buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningSvr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/NetworkProvisioningServerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NetworkProvisioningServer
    signature: '& NetworkProvisioningSvr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningSvrImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/NetworkProvisioningServerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NetworkProvisioningServerImpl
    signature: '& NetworkProvisioningSvrImpl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: nl::Weave::DeviceLayer::ThreadStackManagerImpl::ThreadStackManagerImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/ThreadStackManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ThreadStackManagerImpl()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: nl::Weave::DeviceLayer::ThreadStackMgr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/ThreadStackManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ThreadStackManager
    signature: '& ThreadStackMgr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: nl::Weave::DeviceLayer::ThreadStackMgrImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/ThreadStackManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ThreadStackManagerImpl
    signature: '& ThreadStackMgrImpl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/nRF5Config.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fileId
    - recordId
    argTypes:
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: nl::Weave::DeviceLayer::Internal::NRF5ConfigKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/nRF5Config.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: NRF5ConfigKey(uint16_t fileId, uint16_t recordId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - opType
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::FDSAsyncOp
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/nRF5Config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: FDSAsyncOp(uint8_t opType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/nRF5Config.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/nRF5Config.h
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    linkageType: ''
    returnType: uint16_t
    signature: NRF5Config::GetFileId(Key key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/nRF5Config.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/nRF5Config.h
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    linkageType: ''
    returnType: uint16_t
    signature: NRF5Config::GetRecordKey(Key key)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::FDSWords
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/nRF5Config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: NRF5Config::FDSWords(size_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: nl::Weave::DeviceLayer::Internal::BLEMgr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/BLEManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BLEManager
    signature: '& BLEMgr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: nl::Weave::DeviceLayer::Internal::BLEMgrImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/BLEManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BLEManagerImpl
    signature: '& BLEMgrImpl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetAdvertisingHandle
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/BLEManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: BLEManagerImpl::GetAdvertisingHandle(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SetAdvertisingHandle
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/BLEManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::SetAdvertisingHandle(uint8_t handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_GetBleLayer
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/BLEManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ::nl::Ble::BleLayer
    signature: '* BLEManagerImpl::_GetBleLayer() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_GetWoBLEServiceMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/BLEManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BLEManager::WoBLEServiceMode
    signature: BLEManagerImpl::_GetWoBLEServiceMode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/BLEManagerImpl.h:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_IsAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/BLEManagerImpl.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::_IsAdvertisingEnabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/BLEManagerImpl.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_IsFastAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/BLEManagerImpl.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::_IsFastAdvertisingEnabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/BLEManagerImpl.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_IsAdvertising
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/BLEManagerImpl.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::_IsAdvertising(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: nl::Weave::DeviceLayer::PlatformMgr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/PlatformManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PlatformManager
    signature: '& PlatformMgr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: nl::Weave::DeviceLayer::PlatformMgrImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/PlatformManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PlatformManagerImpl
    signature: '& PlatformMgrImpl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_HaveIPv4InternetConnectivity
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/ConnectivityManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ConnectivityManagerImpl::_HaveIPv4InternetConnectivity(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_HaveIPv6InternetConnectivity
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/ConnectivityManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ConnectivityManagerImpl::_HaveIPv6InternetConnectivity(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _HaveServiceConnectivityViaThread
      Src: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/ConnectivityManagerImpl.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_HaveServiceConnectivity
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/ConnectivityManagerImpl.h
    functionUses: 0
    functionsReached:
    - _HaveServiceConnectivityViaThread
    linkageType: ''
    returnType: bool
    signature: ConnectivityManagerImpl::_HaveServiceConnectivity(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: nl::Weave::DeviceLayer::ConnectivityMgr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/ConnectivityManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConnectivityManager
    signature: '& ConnectivityMgr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: nl::Weave::DeviceLayer::ConnectivityMgrImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/ConnectivityManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConnectivityManagerImpl
    signature: '& ConnectivityMgrImpl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: nl::Weave::DeviceLayer::SoftwareUpdateMgr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/SoftwareUpdateManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SoftwareUpdateManager
    signature: '& SoftwareUpdateMgr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: nl::Weave::DeviceLayer::SoftwareUpdateMgrImpl
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/SoftwareUpdateManagerImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SoftwareUpdateManagerImpl
    signature: '& SoftwareUpdateMgrImpl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::FailureEvent::SetPrimaryStatusCodeNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: FailureEvent::SetPrimaryStatusCodeNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::FailureEvent::SetPrimaryStatusCodePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: FailureEvent::SetPrimaryStatusCodePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::FailureEvent::IsPrimaryStatusCodePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: FailureEvent::IsPrimaryStatusCodePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::FailureEvent::SetRemoteStatusCodeNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: FailureEvent::SetRemoteStatusCodeNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::FailureEvent::SetRemoteStatusCodePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: FailureEvent::SetRemoteStatusCodePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::FailureEvent::IsRemoteStatusCodePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: FailureEvent::IsRemoteStatusCodePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFailureEvent::SetPrimaryStatusCodeNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: DownloadFailureEvent::SetPrimaryStatusCodeNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFailureEvent::SetPrimaryStatusCodePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: DownloadFailureEvent::SetPrimaryStatusCodePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFailureEvent::IsPrimaryStatusCodePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: DownloadFailureEvent::IsPrimaryStatusCodePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFailureEvent::SetRemoteStatusCodeNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: DownloadFailureEvent::SetRemoteStatusCodeNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFailureEvent::SetRemoteStatusCodePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: DownloadFailureEvent::SetRemoteStatusCodePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFailureEvent::IsRemoteStatusCodePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: DownloadFailureEvent::IsRemoteStatusCodePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetCurrentSwVersionNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: QueryBeginEvent::SetCurrentSwVersionNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 298
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 298
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetCurrentSwVersionPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: QueryBeginEvent::SetCurrentSwVersionPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::IsCurrentSwVersionPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: QueryBeginEvent::IsCurrentSwVersionPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetVendorIdNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: QueryBeginEvent::SetVendorIdNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetVendorIdPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: QueryBeginEvent::SetVendorIdPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::IsVendorIdPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: QueryBeginEvent::IsVendorIdPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetVendorProductIdNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: QueryBeginEvent::SetVendorProductIdNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetVendorProductIdPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: QueryBeginEvent::SetVendorProductIdPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 336
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::IsVendorProductIdPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: QueryBeginEvent::IsVendorProductIdPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetProductRevisionNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: QueryBeginEvent::SetProductRevisionNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 346
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 346
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetProductRevisionPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: QueryBeginEvent::SetProductRevisionPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 352
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 352
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::IsProductRevisionPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: QueryBeginEvent::IsProductRevisionPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 357
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 357
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetLocaleNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: QueryBeginEvent::SetLocaleNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetLocalePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: QueryBeginEvent::SetLocalePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 368
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 368
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::IsLocalePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: QueryBeginEvent::IsLocalePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetQueryServerAddrNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: QueryBeginEvent::SetQueryServerAddrNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 378
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 378
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetQueryServerAddrPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: QueryBeginEvent::SetQueryServerAddrPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 384
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 384
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::IsQueryServerAddrPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: QueryBeginEvent::IsQueryServerAddrPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 389
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 389
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetQueryServerIdNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: QueryBeginEvent::SetQueryServerIdNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 394
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetQueryServerIdPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: QueryBeginEvent::SetQueryServerIdPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 400
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 400
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::IsQueryServerIdPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: QueryBeginEvent::IsQueryServerIdPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 438
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 438
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryFinishEvent::SetImageUrlNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: QueryFinishEvent::SetImageUrlNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 443
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 443
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryFinishEvent::SetImageUrlPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: QueryFinishEvent::SetImageUrlPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 449
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 449
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryFinishEvent::IsImageUrlPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: QueryFinishEvent::IsImageUrlPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 454
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 454
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryFinishEvent::SetImageVersionNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: QueryFinishEvent::SetImageVersionNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 459
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 459
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryFinishEvent::SetImageVersionPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: QueryFinishEvent::SetImageVersionPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 465
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 465
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryFinishEvent::IsImageVersionPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: QueryFinishEvent::IsImageVersionPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 521
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 521
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::SetImageUrlNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: DownloadStartEvent::SetImageUrlNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 526
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 526
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::SetImageUrlPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: DownloadStartEvent::SetImageUrlPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 532
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 532
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::IsImageUrlPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: DownloadStartEvent::IsImageUrlPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 537
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 537
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::SetImageVersionNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: DownloadStartEvent::SetImageVersionNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 542
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 542
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::SetImageVersionPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: DownloadStartEvent::SetImageVersionPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 548
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 548
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::IsImageVersionPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: DownloadStartEvent::IsImageVersionPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 553
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 553
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::SetSubImageNameNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: DownloadStartEvent::SetSubImageNameNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 558
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 558
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::SetSubImageNamePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: DownloadStartEvent::SetSubImageNamePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 564
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 564
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::IsSubImageNamePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: DownloadStartEvent::IsSubImageNamePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 569
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 569
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::SetOffsetNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: DownloadStartEvent::SetOffsetNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 574
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 574
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::SetOffsetPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: DownloadStartEvent::SetOffsetPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 580
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 580
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::IsOffsetPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: DownloadStartEvent::IsOffsetPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 585
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 585
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::SetDestinationNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: DownloadStartEvent::SetDestinationNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 590
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 590
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::SetDestinationPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: DownloadStartEvent::SetDestinationPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 596
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 596
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::IsDestinationPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: DownloadStartEvent::IsDestinationPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 646
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 646
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::SetImageUrlNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: DownloadFinishEvent::SetImageUrlNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 651
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 651
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::SetImageUrlPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: DownloadFinishEvent::SetImageUrlPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 657
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 657
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::IsImageUrlPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: DownloadFinishEvent::IsImageUrlPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 662
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 662
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::SetImageVersionNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: DownloadFinishEvent::SetImageVersionNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 667
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 667
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::SetImageVersionPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: DownloadFinishEvent::SetImageVersionPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 673
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 673
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::IsImageVersionPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: DownloadFinishEvent::IsImageVersionPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 678
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 678
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::SetSubImageNameNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: DownloadFinishEvent::SetSubImageNameNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 683
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 683
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::SetSubImageNamePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: DownloadFinishEvent::SetSubImageNamePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 689
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 689
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::IsSubImageNamePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: DownloadFinishEvent::IsSubImageNamePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 694
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 694
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::SetDestinationNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: DownloadFinishEvent::SetDestinationNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 699
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 699
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::SetDestinationPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: DownloadFinishEvent::SetDestinationPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 705
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 705
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::IsDestinationPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: DownloadFinishEvent::IsDestinationPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 755
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 755
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::SetImageVersionNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: InstallStartEvent::SetImageVersionNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 760
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 760
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::SetImageVersionPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: InstallStartEvent::SetImageVersionPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 766
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 766
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::IsImageVersionPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: InstallStartEvent::IsImageVersionPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 771
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 771
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::SetSubImageNameNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: InstallStartEvent::SetSubImageNameNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 776
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 776
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::SetSubImageNamePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: InstallStartEvent::SetSubImageNamePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 782
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 782
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::IsSubImageNamePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: InstallStartEvent::IsSubImageNamePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 787
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 787
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::SetLocalSourceNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: InstallStartEvent::SetLocalSourceNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 792
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 792
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::SetLocalSourcePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: InstallStartEvent::SetLocalSourcePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 798
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 798
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::IsLocalSourcePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: InstallStartEvent::IsLocalSourcePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 803
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 803
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::SetDestinationNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: InstallStartEvent::SetDestinationNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 808
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 808
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::SetDestinationPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: InstallStartEvent::SetDestinationPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 814
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 814
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::IsDestinationPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: InstallStartEvent::IsDestinationPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 852
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 852
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallFinishEvent::SetImageVersionNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: InstallFinishEvent::SetImageVersionNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 857
      start: 854
    functionDepth: 0
    functionLinenumber: 854
    functionLinenumberEnd: 857
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallFinishEvent::SetImageVersionPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: InstallFinishEvent::SetImageVersionPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 863
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 863
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallFinishEvent::IsImageVersionPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: InstallFinishEvent::IsImageVersionPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 868
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 868
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallFinishEvent::SetSubImageNameNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: InstallFinishEvent::SetSubImageNameNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 873
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 873
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallFinishEvent::SetSubImageNamePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: InstallFinishEvent::SetSubImageNamePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 879
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 879
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallFinishEvent::IsSubImageNamePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: InstallFinishEvent::IsSubImageNamePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 929
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 929
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::SetImageVersionNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: ImageRollbackEvent::SetImageVersionNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 934
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 934
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::SetImageVersionPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: ImageRollbackEvent::SetImageVersionPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 940
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 940
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::IsImageVersionPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: ImageRollbackEvent::IsImageVersionPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 945
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 945
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::SetSubImageNameNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: ImageRollbackEvent::SetSubImageNameNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 950
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 950
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::SetSubImageNamePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: ImageRollbackEvent::SetSubImageNamePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 956
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 956
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::IsSubImageNamePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: ImageRollbackEvent::IsSubImageNamePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 961
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 961
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::SetRollbackFromNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: ImageRollbackEvent::SetRollbackFromNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 966
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 966
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::SetRollbackFromPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: ImageRollbackEvent::SetRollbackFromPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 972
      start: 969
    functionDepth: 0
    functionLinenumber: 969
    functionLinenumberEnd: 972
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::IsRollbackFromPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: ImageRollbackEvent::IsRollbackFromPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 977
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 977
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::SetRollbackToNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: ImageRollbackEvent::SetRollbackToNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 982
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 982
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::SetRollbackToPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: ImageRollbackEvent::SetRollbackToPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h:987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 988
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 988
    functionName: Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::IsRollbackToPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: ImageRollbackEvent::IsRollbackToPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/network/TelemetryNetworkWpanTrait.h:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: Schema::Nest::Trait::Network::TelemetryNetworkWpanTrait::TopoEntryEvent::SetTimeoutNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/network/TelemetryNetworkWpanTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TopoEntryEvent::SetTimeoutNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/network/TelemetryNetworkWpanTrait.h:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: Schema::Nest::Trait::Network::TelemetryNetworkWpanTrait::TopoEntryEvent::SetTimeoutPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/network/TelemetryNetworkWpanTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TopoEntryEvent::SetTimeoutPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/network/TelemetryNetworkWpanTrait.h:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 345
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 345
    functionName: Schema::Nest::Trait::Network::TelemetryNetworkWpanTrait::TopoEntryEvent::IsTimeoutPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/network/TelemetryNetworkWpanTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: TopoEntryEvent::IsTimeoutPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/network/TelemetryNetworkWpanTrait.h:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 350
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 350
    functionName: Schema::Nest::Trait::Network::TelemetryNetworkWpanTrait::TopoEntryEvent::SetNetworkDataVersionNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/network/TelemetryNetworkWpanTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TopoEntryEvent::SetNetworkDataVersionNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/network/TelemetryNetworkWpanTrait.h:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 355
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 355
    functionName: Schema::Nest::Trait::Network::TelemetryNetworkWpanTrait::TopoEntryEvent::SetNetworkDataVersionPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/network/TelemetryNetworkWpanTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TopoEntryEvent::SetNetworkDataVersionPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/network/TelemetryNetworkWpanTrait.h:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: Schema::Nest::Trait::Network::TelemetryNetworkWpanTrait::TopoEntryEvent::IsNetworkDataVersionPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/network/TelemetryNetworkWpanTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: TopoEntryEvent::IsNetworkDataVersionPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/common/EventIdStructSchema.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: Schema::Weave::Common::EventId::SetResourceIdNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/common/EventIdStructSchema.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: EventId::SetResourceIdNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/common/EventIdStructSchema.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: Schema::Weave::Common::EventId::SetResourceIdPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/common/EventIdStructSchema.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: EventId::SetResourceIdPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/common/EventIdStructSchema.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: Schema::Weave::Common::EventId::IsResourceIdPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/common/EventIdStructSchema.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: EventId::IsResourceIdPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserPincodesSettingsTrait.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: Schema::Weave::Trait::Security::UserPincodesSettingsTrait::UserPincode::SetPincodeCredentialEnabledNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserPincodesSettingsTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: UserPincode::SetPincodeCredentialEnabledNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserPincodesSettingsTrait.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: Schema::Weave::Trait::Security::UserPincodesSettingsTrait::UserPincode::SetPincodeCredentialEnabledPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserPincodesSettingsTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: UserPincode::SetPincodeCredentialEnabledPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserPincodesSettingsTrait.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: Schema::Weave::Trait::Security::UserPincodesSettingsTrait::UserPincode::IsPincodeCredentialEnabledPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserPincodesSettingsTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: UserPincode::IsPincodeCredentialEnabledPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputTrait.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: Schema::Weave::Trait::Security::PincodeInputTrait::KeypadEntryEvent::SetPincodeCredentialEnabledNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: KeypadEntryEvent::SetPincodeCredentialEnabledNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputTrait.h:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: Schema::Weave::Trait::Security::PincodeInputTrait::KeypadEntryEvent::SetPincodeCredentialEnabledPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: KeypadEntryEvent::SetPincodeCredentialEnabledPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputTrait.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: Schema::Weave::Trait::Security::PincodeInputTrait::KeypadEntryEvent::IsPincodeCredentialEnabledPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: KeypadEntryEvent::IsPincodeCredentialEnabledPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputTrait.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: Schema::Weave::Trait::Security::PincodeInputTrait::KeypadEntryEvent::SetUserIdNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: KeypadEntryEvent::SetUserIdNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputTrait.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: Schema::Weave::Trait::Security::PincodeInputTrait::KeypadEntryEvent::SetUserIdPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: KeypadEntryEvent::SetUserIdPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputTrait.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: Schema::Weave::Trait::Security::PincodeInputTrait::KeypadEntryEvent::IsUserIdPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: KeypadEntryEvent::IsUserIdPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputTrait.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: Schema::Weave::Trait::Security::PincodeInputTrait::PincodeInputStateChangeEvent::SetUserIdNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: PincodeInputStateChangeEvent::SetUserIdNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputTrait.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: Schema::Weave::Trait::Security::PincodeInputTrait::PincodeInputStateChangeEvent::SetUserIdPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: PincodeInputStateChangeEvent::SetUserIdPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputTrait.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: Schema::Weave::Trait::Security::PincodeInputTrait::PincodeInputStateChangeEvent::IsUserIdPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: PincodeInputStateChangeEvent::IsUserIdPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserNFCTokenAccessTrait.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: Schema::Weave::Trait::Security::UserNFCTokenAccessTrait::UserNFCTokenAccessEvent::SetUserIdNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserNFCTokenAccessTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: UserNFCTokenAccessEvent::SetUserIdNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserNFCTokenAccessTrait.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: Schema::Weave::Trait::Security::UserNFCTokenAccessTrait::UserNFCTokenAccessEvent::SetUserIdPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserNFCTokenAccessTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: UserNFCTokenAccessEvent::SetUserIdPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserNFCTokenAccessTrait.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: Schema::Weave::Trait::Security::UserNFCTokenAccessTrait::UserNFCTokenAccessEvent::IsUserIdPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserNFCTokenAccessTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: UserNFCTokenAccessEvent::IsUserIdPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/BoltLockTrait.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: Schema::Weave::Trait::Security::BoltLockTrait::BoltLockActorStruct::SetOriginatorNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/BoltLockTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: BoltLockActorStruct::SetOriginatorNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/BoltLockTrait.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: Schema::Weave::Trait::Security::BoltLockTrait::BoltLockActorStruct::SetOriginatorPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/BoltLockTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: BoltLockActorStruct::SetOriginatorPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/BoltLockTrait.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: Schema::Weave::Trait::Security::BoltLockTrait::BoltLockActorStruct::IsOriginatorPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/BoltLockTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: BoltLockActorStruct::IsOriginatorPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/BoltLockTrait.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: Schema::Weave::Trait::Security::BoltLockTrait::BoltLockActorStruct::SetAgentNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/BoltLockTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: BoltLockActorStruct::SetAgentNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/BoltLockTrait.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: Schema::Weave::Trait::Security::BoltLockTrait::BoltLockActorStruct::SetAgentPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/BoltLockTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: BoltLockActorStruct::SetAgentPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/BoltLockTrait.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: Schema::Weave::Trait::Security::BoltLockTrait::BoltLockActorStruct::IsAgentPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/BoltLockTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: BoltLockActorStruct::IsAgentPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/schedule/BasicUserSchedulesSettingsTrait.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: Schema::Weave::Trait::Schedule::BasicUserSchedulesSettingsTrait::TimeboxScheduleItem::SetEndTimeNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/schedule/BasicUserSchedulesSettingsTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TimeboxScheduleItem::SetEndTimeNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/schedule/BasicUserSchedulesSettingsTrait.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: Schema::Weave::Trait::Schedule::BasicUserSchedulesSettingsTrait::TimeboxScheduleItem::SetEndTimePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/schedule/BasicUserSchedulesSettingsTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TimeboxScheduleItem::SetEndTimePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/schedule/BasicUserSchedulesSettingsTrait.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: Schema::Weave::Trait::Schedule::BasicUserSchedulesSettingsTrait::TimeboxScheduleItem::IsEndTimePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/schedule/BasicUserSchedulesSettingsTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: TimeboxScheduleItem::IsEndTimePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceTrait.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: Schema::Weave::Trait::Power::BatteryPowerSourceTrait::BatteryRemaining::SetRemainingPercentNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: BatteryRemaining::SetRemainingPercentNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceTrait.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: Schema::Weave::Trait::Power::BatteryPowerSourceTrait::BatteryRemaining::SetRemainingPercentPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: BatteryRemaining::SetRemainingPercentPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceTrait.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: Schema::Weave::Trait::Power::BatteryPowerSourceTrait::BatteryRemaining::IsRemainingPercentPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: BatteryRemaining::IsRemainingPercentPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceTrait.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: Schema::Weave::Trait::Power::BatteryPowerSourceTrait::BatteryRemaining::SetRemainingTimeNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: BatteryRemaining::SetRemainingTimeNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceTrait.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: Schema::Weave::Trait::Power::BatteryPowerSourceTrait::BatteryRemaining::SetRemainingTimePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: BatteryRemaining::SetRemainingTimePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceTrait.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: Schema::Weave::Trait::Power::BatteryPowerSourceTrait::BatteryRemaining::IsRemainingTimePresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: BatteryRemaining::IsRemainingTimePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceCapabilitiesTrait.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: Schema::Weave::Trait::Power::BatteryPowerSourceCapabilitiesTrait::BatteryDesignation::SetDesignationDescriptionNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceCapabilitiesTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: BatteryDesignation::SetDesignationDescriptionNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceCapabilitiesTrait.h:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: Schema::Weave::Trait::Power::BatteryPowerSourceCapabilitiesTrait::BatteryDesignation::SetDesignationDescriptionPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceCapabilitiesTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: BatteryDesignation::SetDesignationDescriptionPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceCapabilitiesTrait.h:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: Schema::Weave::Trait::Power::BatteryPowerSourceCapabilitiesTrait::BatteryDesignation::IsDesignationDescriptionPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceCapabilitiesTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: BatteryDesignation::IsDesignationDescriptionPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/time/TimesyncTrait.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: Schema::Weave::Trait::Time::TimesyncTrait::TimeSyncEvent::SetServerIdNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/time/TimesyncTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TimeSyncEvent::SetServerIdNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/time/TimesyncTrait.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: Schema::Weave::Trait::Time::TimesyncTrait::TimeSyncEvent::SetServerIdPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/time/TimesyncTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TimeSyncEvent::SetServerIdPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/time/TimesyncTrait.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: Schema::Weave::Trait::Time::TimesyncTrait::TimeSyncEvent::IsServerIdPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/time/TimesyncTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: TimeSyncEvent::IsServerIdPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/time/TimesyncTrait.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: Schema::Weave::Trait::Time::TimesyncTrait::TimeSyncEvent::SetServerAddressNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/time/TimesyncTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TimeSyncEvent::SetServerAddressNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/time/TimesyncTrait.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: Schema::Weave::Trait::Time::TimesyncTrait::TimeSyncEvent::SetServerAddressPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/time/TimesyncTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TimeSyncEvent::SetServerAddressPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/time/TimesyncTrait.h:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: Schema::Weave::Trait::Time::TimesyncTrait::TimeSyncEvent::IsServerAddressPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/time/TimesyncTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: TimeSyncEvent::IsServerAddressPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessSignalTrait.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: Schema::Weave::Trait::Heartbeat::LivenessSignalTrait::LivenessSignalEvent::SetWdmSubscriptionIdNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessSignalTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: LivenessSignalEvent::SetWdmSubscriptionIdNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessSignalTrait.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: Schema::Weave::Trait::Heartbeat::LivenessSignalTrait::LivenessSignalEvent::SetWdmSubscriptionIdPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessSignalTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: LivenessSignalEvent::SetWdmSubscriptionIdPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessSignalTrait.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: Schema::Weave::Trait::Heartbeat::LivenessSignalTrait::LivenessSignalEvent::IsWdmSubscriptionIdPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessSignalTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: LivenessSignalEvent::IsWdmSubscriptionIdPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessTrait.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: Schema::Weave::Trait::Heartbeat::LivenessTrait::LivenessChangeEvent::SetNotifyRequestUnresponsivenessNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: LivenessChangeEvent::SetNotifyRequestUnresponsivenessNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessTrait.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: Schema::Weave::Trait::Heartbeat::LivenessTrait::LivenessChangeEvent::SetNotifyRequestUnresponsivenessPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: LivenessChangeEvent::SetNotifyRequestUnresponsivenessPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessTrait.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: Schema::Weave::Trait::Heartbeat::LivenessTrait::LivenessChangeEvent::IsNotifyRequestUnresponsivenessPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: LivenessChangeEvent::IsNotifyRequestUnresponsivenessPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessTrait.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: Schema::Weave::Trait::Heartbeat::LivenessTrait::LivenessChangeEvent::SetCommandRequestUnresponsivenessNull
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: LivenessChangeEvent::SetCommandRequestUnresponsivenessNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessTrait.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: Schema::Weave::Trait::Heartbeat::LivenessTrait::LivenessChangeEvent::SetCommandRequestUnresponsivenessPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: LivenessChangeEvent::SetCommandRequestUnresponsivenessPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessTrait.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: Schema::Weave::Trait::Heartbeat::LivenessTrait::LivenessChangeEvent::IsCommandRequestUnresponsivenessPresent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: LivenessChangeEvent::IsCommandRequestUnresponsivenessPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::ThreadStackManagerImpl::InitThreadStack
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ThreadStackManagerImpl.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: nl::Weave::DeviceLayer::ThreadStackManagerImpl::_InitThreadStack
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/ThreadStackManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::ThreadStackManagerImpl::InitThreadStack
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ThreadStackManagerImpl::_InitThreadStack(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericThreadStackManagerImpl_FreeRTOS<ThreadStackManagerImpl>::DoInit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ThreadStackManagerImpl.cpp:52,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ThreadStackManagerImpl.cpp:53,1
    - Dst: GenericThreadStackManagerImpl_OpenThread_LwIP<ThreadStackManagerImpl>::DoInit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ThreadStackManagerImpl.cpp:54,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ThreadStackManagerImpl.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - otInst
    argTypes:
    - otInstance*
    constantsTouched: []
    func_position:
      end: 59
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 59
    functionName: nl::Weave::DeviceLayer::ThreadStackManagerImpl::InitThreadStack
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/ThreadStackManagerImpl.cpp
    functionUses: 2
    functionsReached:
    - GenericThreadStackManagerImpl_FreeRTOS<ThreadStackManagerImpl>::DoInit
    - GenericThreadStackManagerImpl_OpenThread_LwIP<ThreadStackManagerImpl>::DoInit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ThreadStackManagerImpl::InitThreadStack(otInstance *otInst)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: nl::Weave::DeviceLayer::ThreadStackManagerImpl::IsInitialized
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/ThreadStackManagerImpl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ThreadStackManagerImpl::IsInitialized()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ThreadStackManagerImpl.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p_instance
    argTypes:
    - otInstance*
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: otTaskletsSignalPending
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/ThreadStackManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - ThreadStackMgrImpl
    linkageType: ''
    returnType: void
    signature: otTaskletsSignalPending(otInstance *p_instance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ThreadStackManagerImpl.cpp:87,1
    - Dst: portYIELD_FROM_ISR
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ThreadStackManagerImpl.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: otSysEventSignalPending
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/ThreadStackManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - ThreadStackMgrImpl
    - portYIELD_FROM_ISR
    linkageType: ''
    returnType: void
    signature: otSysEventSignalPending(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::Init
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/PlatformManagerImpl.cpp:42,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/PlatformManagerImpl.cpp:43,1
    - Dst: tcpip_init
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/PlatformManagerImpl.cpp:46,1
    - Dst: nl::Weave::DeviceLayer::PlatformManagerImpl::_InitWeaveStack
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/PlatformManagerImpl.cpp:50,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/PlatformManagerImpl.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 55
    functionName: nl::Weave::DeviceLayer::PlatformManagerImpl::_InitWeaveStack
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/PlatformManagerImpl.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::EFR32Config::Init
    - tcpip_init
    - nl::Weave::DeviceLayer::PlatformManagerImpl::_InitWeaveStack
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PlatformManagerImpl::_InitWeaveStack(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_Weave_Stack_Init
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp:59,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp:60,1
    - Dst: Init
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp:63,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp:64,1
    - Dst: _GetFailSafeArmed
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp:67,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp:69,1
    - Dst: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_InitiateFactoryReset
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 76
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - nl_Weave_Stack_Init
    - Init
    - SuccessOrExit
    - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_InitiateFactoryReset
    - _GetFailSafeArmed
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManagerImpl::_Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetDeviceDescriptor
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp:84,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - deviceDesc
    argTypes:
    - ::nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor
    constantsTouched: []
    func_position:
      end: 89
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 89
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetDeviceDescriptor
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetDeviceDescriptor
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "ConfigurationManagerImpl::_GetDeviceDescriptor(\n    ::nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor
      &deviceDesc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetGroupKeyStore
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ::nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase
    signature: '*ConfigurationManagerImpl::_GetGroupKeyStore()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_CanFactoryReset
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ConfigurationManagerImpl::_CanFactoryReset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_InitiateFactoryReset
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp
    functionUses: 2
    functionsReached:
    - PlatformMgr
    linkageType: ''
    returnType: void
    signature: ConfigurationManagerImpl::_InitiateFactoryReset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadConfigValueCounter
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp:115,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - persistedStorageKey
    - '                                   value'
    argTypes:
    - ::nl::Weave::Platform::PersistedStorage::Key
    - uint32_t
    constantsTouched: []
    func_position:
      end: 124
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 124
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_ReadPersistedStorageValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - ReadConfigValueCounter
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "ConfigurationManagerImpl::_ReadPersistedStorageValue(\n    ::nl::Weave::Platform::PersistedStorage::Key
      persistedStorageKey,\n    uint32_t &                                   value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteConfigValueCounter
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp:134,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - persistedStorageKey
    - value
    argTypes:
    - ::nl::Weave::Platform::PersistedStorage::Key
    - uint32_t
    constantsTouched: []
    func_position:
      end: 143
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 143
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_WritePersistedStorageValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WriteConfigValueCounter
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "ConfigurationManagerImpl::_WritePersistedStorageValue(\n    ::nl::Weave::Platform::PersistedStorage::Key
      persistedStorageKey,\n    uint32_t                                     value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp:149,1
    - Dst: FactoryResetConfig
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp:151,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp:154,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp:154,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp:159,1
    - Dst: ThreadStackMgr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp:160,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp:165,1
    - Dst: NVIC_SystemReset
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - intptr_t
    constantsTouched: []
    func_position:
      end: 167
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 167
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::DoFactoryReset
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - WeaveLogProgress
    - ThreadStackMgr
    - NVIC_SystemReset
    - FactoryResetConfig
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: ConfigurationManagerImpl::DoFactoryReset(intptr_t arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ForEachRecord
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:42,1
    - Dst: ReadConfigValueBin
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:50,1
    - Dst: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKeyId
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:53,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:54,1
    - Dst: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKey
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:60,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:61,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - keyId
    - key
    argTypes:
    - uint32_t
    - WeaveGroupKey
    constantsTouched: []
    func_position:
      end: 85
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 85
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::RetrieveGroupKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached:
    - ForEachRecord
    - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKey
    - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKeyId
    - ExitNow
    - SuccessOrExit
    - ReadConfigValueBin
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::RetrieveGroupKey(uint32_t keyId, WeaveGroupKey &key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteGroupKey
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:92,1
    - Dst: ForEachRecord
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:96,1
    - Dst: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::EncodeGroupKey
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:103,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:104,1
    - Dst: WriteConfigValueBin
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:107,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:108,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:111,1
    - Dst: nl::Weave::WeaveKeyId::IsAppEpochKey
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:135,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:137,1
    - Dst: nl::Weave::WeaveKeyId::IsAppGroupMasterKey
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:139,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:141,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:149,1
    - Dst: nl::Weave::WeaveKeyId::DescribeKey
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:152,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:154,1
    - Dst: nl::Weave::WeaveKeyId::DescribeKey
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:155,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 1
    argNames:
    - key
    argTypes:
    - WeaveGroupKey
    constantsTouched: []
    func_position:
      end: 163
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 163
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::StoreGroupKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached:
    - ForEachRecord
    - nl::Weave::WeaveKeyId::DescribeKey
    - WriteConfigValueBin
    - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::EncodeGroupKey
    - WeaveLogProgress
    - nl::Weave::WeaveKeyId::IsAppEpochKey
    - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteGroupKey
    - ExitNow
    - nl::Weave::WeaveKeyId::IsAppGroupMasterKey
    - snprintf
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::StoreGroupKey(const WeaveGroupKey &key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ForEachRecord
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:170,1
    - Dst: ReadConfigValueBin
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:178,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:179,1
    - Dst: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKeyId
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:182,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:183,1
    - Dst: ClearConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:188,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:189,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:192,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 213
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 213
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteGroupKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp
    functionUses: 1
    functionsReached:
    - ForEachRecord
    - WeaveLogProgress
    - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKeyId
    - ClearConfigValue
    - ExitNow
    - SuccessOrExit
    - ReadConfigValueBin
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::DeleteGroupKey(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ForEachRecord
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:220,1
    - Dst: ReadConfigValueBin
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:228,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:229,1
    - Dst: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKeyId
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:232,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:233,1
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:236,1
    - Dst: ClearConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:238,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - keyType
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 247
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 247
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteGroupKeysOfAType
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached:
    - ForEachRecord
    - nl::Weave::WeaveKeyId::GetType
    - WeaveLogProgress
    - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKeyId
    - ClearConfigValue
    - SuccessOrExit
    - ReadConfigValueBin
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::DeleteGroupKeysOfAType(uint32_t keyType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ForEachRecord
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:259,1
    - Dst: ReadConfigValueBin
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:268,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:269,1
    - Dst: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKeyId
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:272,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:273,1
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:276,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - keyType
    - keyIds
    - keyIdsArraySize
    - ' keyCount'
    argTypes:
    - uint32_t
    - uint32_t*
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 295
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 295
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::EnumerateGroupKeys
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached:
    - ForEachRecord
    - nl::Weave::WeaveKeyId::GetType
    - VerifyOrExit
    - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKeyId
    - SuccessOrExit
    - ReadConfigValueBin
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "GroupKeyStoreImpl::EnumerateGroupKeys(uint32_t  keyType,\n                                                  uint32_t
      *keyIds,\n                                                  uint8_t   keyIdsArraySize,\n
      \                                                 uint8_t & keyCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ForEachRecord
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:302,1
    - Dst: ClearConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:306,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 314
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 314
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::Clear
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached:
    - ForEachRecord
    - SuccessOrExit
    - ClearConfigValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 327
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 327
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::RetrieveLastUsedEpochKeyId
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached:
    - ReadConfigValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::RetrieveLastUsedEpochKeyId(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::StoreLastUsedEpochKeyId
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached:
    - WriteConfigValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::StoreLastUsedEpochKeyId(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 338
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 338
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:348,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:350,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:351,1
    - Dst: nl::Weave::Encoding::Write8
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:352,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - key
    - buf
    - bufSize
    - '             encodedKeyLen'
    argTypes:
    - WeaveGroupKey
    - uint8_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 360
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 360
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::EncodeGroupKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Write32
    - memcpy
    - VerifyOrExit
    - nl::Weave::Encoding::Write8
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "GroupKeyStoreImpl::EncodeGroupKey(const WeaveGroupKey &key,\n                                              uint8_t
      *            buf,\n                                              size_t               bufSize,\n
      \                                             size_t &             encodedKeyLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:366,1
    - Dst: nl::Weave::Encoding::LittleEndian::Get32
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - encodedKey
    - encodedKeyLen
    - keyId
    argTypes:
    - uint8_t*
    - size_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 372
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 372
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKeyId
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp
    functionUses: 4
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Get32
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::DecodeGroupKeyId(const uint8_t *encodedKey, size_t
      encodedKeyLen, uint32_t &keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:379,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:381,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:382,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:383,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:385,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - encodedKey
    - encodedKeyLen
    - key
    argTypes:
    - uint8_t*
    - size_t
    - WeaveGroupKey
    constantsTouched: []
    func_position:
      end: 391
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 391
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Encoding::Read8
    - VerifyOrExit
    - memcpy
    - nl::Weave::Encoding::LittleEndian::Read32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::DecodeGroupKey(const uint8_t *encodedKey, size_t
      encodedKeyLen, WeaveGroupKey &key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericNetworkProvisioningServerImpl<NetworkProvisioningServerImpl>::DoInit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/NetworkProvisioningServerImpl.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::_Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/NetworkProvisioningServerImpl.cpp
    functionUses: 0
    functionsReached:
    - GenericNetworkProvisioningServerImpl<NetworkProvisioningServerImpl>::DoInit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkProvisioningServerImpl::_Init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Entropy.cpp:60,1
    - Dst: nl::Weave::DeviceLayer::ThreadStackManagerImpl::IsInitialized
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Entropy.cpp:64,1
    - Dst: ThreadStackMgr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Entropy.cpp:66,1
    - Dst: nl::Weave::DeviceLayer::ThreadStackManagerImpl::IsInitialized
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Entropy.cpp:72,1
    - Dst: ThreadStackMgr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Entropy.cpp:74,1
    - Dst: otPlatEntropyGet
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Entropy.cpp:78,1
    - Dst: mbedtls_hardware_poll
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Entropy.cpp:90,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - buf
    - count
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 104
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 104
    functionName: nl::Weave::DeviceLayer::Internal::GetEntropy_EFR32
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/Entropy.cpp
    functionUses: 0
    functionsReached:
    - ThreadStackMgr
    - mbedtls_hardware_poll
    - nl::Weave::DeviceLayer::ThreadStackManagerImpl::IsInitialized
    - VerifyOrDie
    - otPlatEntropyGet
    linkageType: ''
    returnType: int
    signature: GetEntropy_EFR32(uint8_t *buf, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::Security::InitSecureRandomDataSource
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Entropy.cpp:111,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Entropy.cpp:112,1
    - Dst: nl::Weave::Platform::Security::GetSecureRandomData
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Entropy.cpp:117,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Entropy.cpp:118,1
    - Dst: srand
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Entropy.cpp:119,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Entropy.cpp:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 128
    functionName: nl::Weave::DeviceLayer::Internal::InitEntropy
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/Entropy.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - nl::Weave::Platform::Security::GetSecureRandomData
    - nl::Weave::Platform::Security::InitSecureRandomDataSource
    - SuccessOrExit
    - srand
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: InitEntropy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_Weave_Stack_Init
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConnectivityManagerImpl.cpp:66,1
    - Dst: nl::Weave::Warm::Init
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConnectivityManagerImpl.cpp:70,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConnectivityManagerImpl.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 75
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - nl_Weave_Stack_Init
    - nl::Weave::Warm::Init
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConnectivityManagerImpl::_Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::_OnPlatformEvent
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/ConnectivityManagerImpl.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_OnPlatformEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::_OnPlatformEvent
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::_OnPlatformEvent(const WeaveDeviceEvent *event)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - bg_gattdb_data_uuidtable_16_map
    argTypes:
    - uint16_t[]
    constantsTouched: []
    func_position:
      end: 83
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 83
    functionName: GATT_DATA
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/gatt_db.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: GATT_DATA(const uint16_t bg_gattdb_data_uuidtable_16_map [])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gecko_init
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:97,1
    - Dst: gecko_init_multiprotocol
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: nl::Weave::DeviceLayer::Internal::initialize_bluetooth
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - gecko_init_multiprotocol
    - gecko_init
    linkageType: ''
    returnType: errorcode_t
    signature: initialize_bluetooth()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 126
    functionName: nl::Weave::DeviceLayer::Internal::initBleConfig
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: initBleConfig(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Ble::BleLayer::Init
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:134,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:135,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:137,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:138,1
    - Dst: initBleConfig
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:141,1
    - Dst: bluetooth_start
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:144,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:147,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::MapBLEError
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:147,1
    - Dst: xTaskCreate
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:150,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 163
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - VerifyOrExit
    - memset
    - xTaskCreate
    - bluetooth_start
    - nl::Ble::BleLayer::Init
    - SuccessOrExit
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::MapBLEError
    - initBleConfig
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::_Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 177
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 177
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_NumConnections
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: BLEManagerImpl::_NumConnections(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xEventGroupWaitBits
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:187,1
    - Dst: xEventGroupClearBits
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:196,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:200,1
    - Dst: BGLIB_MSG_ID
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:203,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleBootEvent
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:207,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleConnectEvent
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:213,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleConnectionCloseEvent
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:219,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleWriteEvent
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:228,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::UpdateMtu
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:234,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTxConfirmationEvent
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:248,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharCCCDWrite
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:255,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleSoftTimerEvent
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:263,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:268,1
    - Dst: BGLIB_MSG_ID
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:268,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:273,1
    - Dst: vRaiseEventFlagBasedOnContext
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:275,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 1
    argNames:
    - p_arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 277
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 277
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::bluetoothStackEventHandler
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - xEventGroupWaitBits
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleBootEvent
    - PlatformMgr
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleConnectEvent
    - WeaveLogProgress
    - BGLIB_MSG_ID
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTxConfirmationEvent
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharCCCDWrite
    - xEventGroupClearBits
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleSoftTimerEvent
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleConnectionCloseEvent
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::UpdateMtu
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleWriteEvent
    - vRaiseEventFlagBasedOnContext
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::bluetoothStackEventHandler(void *p_arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:283,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:284,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - val
    argTypes:
    - WoBLEServiceMode
    constantsTouched: []
    func_position:
      end: 295
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 295
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetWoBLEServiceMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::_SetWoBLEServiceMode(WoBLEServiceMode val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:301,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:304,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:306,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 312
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 312
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - GetFlag
    - VerifyOrExit
    - SetFlag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::_SetAdvertisingEnabled(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:318,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:321,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:323,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 329
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 329
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetFastAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - GetFlag
    - VerifyOrExit
    - SetFlag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::_SetFastAdvertisingEnabled(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:333,1
    - Dst: strcpy
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 339
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 339
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_GetDeviceName
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - strcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::_GetDeviceName(char *buf, size_t bufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:349,1
    - Dst: strcpy
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:353,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:354,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:355,1
    - Dst: gecko_cmd_gatt_server_write_attribute_value
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:356,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - deviceName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 363
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 363
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetDeviceName
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - gecko_cmd_gatt_server_write_attribute_value
    - WeaveLogProgress
    - strlen
    - SetFlag
    - strcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::_SetDeviceName(const char *deviceName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:373,1
    - Dst: HandleSubscribeReceived
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:374,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:376,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:382,1
    - Dst: HandleUnsubscribeReceived
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:383,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:389,1
    - Dst: HandleWriteReceived
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:390,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:397,1
    - Dst: HandleConnectionError
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:398,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:404,1
    - Dst: HandleIndicationConfirmation
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:405,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:410,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 413
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 413
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_OnPlatformEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - HandleWriteReceived
    - WeaveLogProgress
    - HandleUnsubscribeReceived
    - HandleSubscribeReceived
    - HandleIndicationConfirmation
    - HandleConnectionError
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::_OnPlatformEvent(const WeaveDeviceEvent *event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - conId
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveBleUUID*
    - WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 421
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 421
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SubscribeCharacteristic
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    linkageType: ''
    returnType: bool
    signature: "BLEManagerImpl::SubscribeCharacteristic(BLE_CONNECTION_OBJECT conId,\n
      \                                            const WeaveBleUUID *  svcId,\n
      \                                            const WeaveBleUUID *  charId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - conId
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveBleUUID*
    - WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 429
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 429
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::UnsubscribeCharacteristic
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    linkageType: ''
    returnType: bool
    signature: "BLEManagerImpl::UnsubscribeCharacteristic(BLE_CONNECTION_OBJECT conId,\n
      \                                              const WeaveBleUUID *  svcId,\n
      \                                              const WeaveBleUUID *  charId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:436,1
    - Dst: gecko_cmd_le_connection_close
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:438,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::MapBLEError
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:439,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:443,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - conId
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 447
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 447
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::CloseConnection
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - WeaveLogProgress
    - gecko_cmd_le_connection_close
    - ErrorStr
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::MapBLEError
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::CloseConnection(BLE_CONNECTION_OBJECT conId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<BLEManagerImpl *>
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conId
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 453
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 453
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetMTU
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - const_cast<BLEManagerImpl *>
    linkageType: ''
    returnType: uint16_t
    signature: BLEManagerImpl::GetMTU(BLE_CONNECTION_OBJECT conId) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:461,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:466,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:467,1
    - Dst: gecko_cmd_hardware_set_soft_timer
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:470,1
    - Dst: TIMER_S_2_TIMERTICK
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:470,1
    - Dst: gecko_cmd_gatt_server_send_characteristic_notification
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:472,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:472,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:472,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::MapBLEError
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:474,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:477,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:480,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - conId
    - svcId
    - charId
    - data
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveBleUUID*
    - WeaveBleUUID*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 484
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 484
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendIndication
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - gecko_cmd_hardware_set_soft_timer
    - PacketBuffer*::DataLength
    - WeaveLogError
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - PacketBuffer*::Start
    - ErrorStr
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::MapBLEError
    - TIMER_S_2_TIMERTICK
    - gecko_cmd_gatt_server_send_characteristic_notification
    linkageType: ''
    returnType: bool
    signature: "BLEManagerImpl::SendIndication(BLE_CONNECTION_OBJECT conId,\n                                    const
      WeaveBleUUID *  svcId,\n                                    const WeaveBleUUID
      *  charId,\n                                    PacketBuffer *        data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - conId
    - svcId
    - charId
    - pBuf
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveBleUUID*
    - WeaveBleUUID*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 493
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 493
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendWriteRequest
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    linkageType: ''
    returnType: bool
    signature: "BLEManagerImpl::SendWriteRequest(BLE_CONNECTION_OBJECT conId,\n                                      const
      WeaveBleUUID *  svcId,\n                                      const WeaveBleUUID
      *  charId,\n                                      PacketBuffer *        pBuf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - conId
    - svcId
    - charId
    - pBuf
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveBleUUID*
    - WeaveBleUUID*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 502
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 502
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendReadRequest
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    linkageType: ''
    returnType: bool
    signature: "BLEManagerImpl::SendReadRequest(BLE_CONNECTION_OBJECT conId,\n                                     const
      WeaveBleUUID *  svcId,\n                                     const WeaveBleUUID
      *  charId,\n                                     PacketBuffer *        pBuf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - conId
    - requestContext
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - BLE_READ_REQUEST_CONTEXT
    - WeaveBleUUID*
    - WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 511
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 511
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendReadResponse
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    linkageType: ''
    returnType: bool
    signature: "BLEManagerImpl::SendReadResponse(BLE_CONNECTION_OBJECT    conId,\n
      \                                     BLE_READ_REQUEST_CONTEXT requestContext,\n
      \                                     const WeaveBleUUID *     svcId,\n                                      const
      WeaveBleUUID *     charId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - conId
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::NotifyWeaveConnectionClosed
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::NotifyWeaveConnectionClosed(BLE_CONNECTION_OBJECT conId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bleErr
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 529
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 529
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::MapBLEError
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::MapBLEError(int bleErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:536,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:536,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:539,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:543,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:543,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::StartAdvertising
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:545,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:546,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:551,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::StopAdvertising
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:553,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:554,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:560,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:560,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 563
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 563
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::DriveBLEState
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 2
    functionsReached:
    - WeaveLogError
    - GetFlag
    - VerifyOrExit
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::StopAdvertising
    - SuccessOrExit
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::StartAdvertising
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::DriveBLEState(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:576,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:577,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:579,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:580,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:582,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:584,1
    - Dst: gecko_cmd_gatt_server_write_attribute_value
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:589,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:589,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:592,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:602,1
    - Dst: gecko_cmd_le_gap_bt5_set_adv_data
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:610,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::MapBLEError
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:615,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:616,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:616,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:617,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:626,1
    - Dst: gecko_cmd_le_gap_bt5_set_adv_data
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:630,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::MapBLEError
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:632,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 636
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 636
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::ConfigureAdvertisingData
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogError
    - ConfigurationMgr
    - gecko_cmd_gatt_server_write_attribute_value
    - GetFlag
    - gecko_cmd_le_gap_bt5_set_adv_data
    - memset
    - ExitNow
    - strlen
    - memcpy
    - snprintf
    - SuccessOrExit
    - ErrorStr
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::MapBLEError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::ConfigureAdvertisingData(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::ConfigureAdvertisingData
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:648,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:649,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:651,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:653,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:654,1
    - Dst: gecko_cmd_le_gap_set_advertise_timing
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:658,1
    - Dst: gecko_cmd_le_gap_start_advertising
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:660,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::MapBLEError
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:662,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 666
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 666
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::StartAdvertising
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 2
    functionsReached:
    - gecko_cmd_le_gap_set_advertise_timing
    - ConfigurationMgr
    - ClearFlag
    - GetFlag
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::ConfigureAdvertisingData
    - gecko_cmd_le_gap_start_advertising
    - SuccessOrExit
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::MapBLEError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::StartAdvertising(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:673,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:675,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:676,1
    - Dst: gecko_cmd_le_gap_stop_advertising
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:678,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::MapBLEError
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:679,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 685
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 685
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::StopAdvertising
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - ClearFlag
    - GetFlag
    - gecko_cmd_le_gap_stop_advertising
    - SuccessOrExit
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::MapBLEError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::StopAdvertising(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - evt
    argTypes:
    - struct gecko_cmd_packet*
    constantsTouched: []
    func_position:
      end: 692
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 692
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::UpdateMtu
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::UpdateMtu(volatile struct gecko_cmd_packet *evt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:696,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 698
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 698
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleBootEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - PlatformMgr
    - SetFlag
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::HandleBootEvent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:706,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::AddConnection
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:708,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:710,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - evt
    argTypes:
    - struct gecko_cmd_packet*
    constantsTouched: []
    func_position:
      end: 712
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 712
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleConnectEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    - PlatformMgr
    - SetFlag
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::AddConnection
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::HandleConnectEvent(volatile struct gecko_cmd_packet
      *evt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:719,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::RemoveConnection
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:721,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:744,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:746,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:750,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:751,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - evt
    argTypes:
    - struct gecko_cmd_packet*
    constantsTouched: []
    func_position:
      end: 753
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 753
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleConnectionCloseEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    - ClearFlag
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::RemoveConnection
    - PlatformMgr
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::HandleConnectionCloseEvent(volatile struct gecko_cmd_packet
      *evt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:760,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleRXCharWrite
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - evt
    argTypes:
    - struct gecko_cmd_packet*
    constantsTouched: []
    func_position:
      end: 766
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 766
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleWriteEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleRXCharWrite
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::HandleWriteEvent(volatile struct gecko_cmd_packet *evt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:775,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:777,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:782,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:795,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:804,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:810,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:810,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - evt
    argTypes:
    - struct gecko_cmd_packet*
    constantsTouched: []
    func_position:
      end: 812
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 812
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharCCCDWrite
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 2
    functionsReached:
    - PlatformMgr
    - WeaveLogError
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
    - WeaveLogProgress
    - VerifyOrExit
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::HandleTXCharCCCDWrite(volatile struct gecko_cmd_packet
      *evt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:822,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:823,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:824,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:824,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:825,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:825,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:826,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:828,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:830,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:838,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:845,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:845,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - evt
    argTypes:
    - struct gecko_cmd_packet*
    constantsTouched: []
    func_position:
      end: 848
      start: 814
    functionDepth: 3
    functionLinenumber: 814
    functionLinenumberEnd: 848
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleRXCharWrite
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 2
    functionsReached:
    - PacketBuffer*::DataLength
    - PlatformMgr
    - PacketBuffer*::SetDataLength
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - memcpy
    - WeaveLogDetail
    - PacketBuffer*::Start
    - ErrorStr
    - nl::Weave::System::PacketBuffer::New
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::HandleRXCharWrite(volatile struct gecko_cmd_packet
      *evt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:855,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:861,1
    - Dst: gecko_cmd_hardware_set_soft_timer
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:862,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - evt
    argTypes:
    - struct gecko_cmd_packet*
    constantsTouched: []
    func_position:
      end: 868
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 868
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTxConfirmationEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    - PlatformMgr
    - gecko_cmd_hardware_set_soft_timer
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::HandleTxConfirmationEvent(volatile struct gecko_cmd_packet
      *evt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:876,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - evt
    argTypes:
    - struct gecko_cmd_packet*
    constantsTouched: []
    func_position:
      end: 884
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 884
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleSoftTimerEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    - PlatformMgr
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::HandleSoftTimerEvent(volatile struct gecko_cmd_packet
      *evt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:888,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:893,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - connectionHandle
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 898
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 898
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::RemoveConnection
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - memset
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::RemoveConnection(uint8_t connectionHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:902,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:906,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - connectionHandle
    - bondingHandle
    argTypes:
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 911
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 911
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::AddConnection
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - memset
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::AddConnection(uint8_t connectionHandle, uint8_t bondingHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:940,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - connectionHandle
    - allocate
    argTypes:
    - uint8_t
    - bool
    constantsTouched: []
    func_position:
      end: 944
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 944
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 9
    functionsReached:
    - WeaveLogError
    linkageType: ''
    returnType: BLEManagerImpl::WoBLEConState
    signature: '*BLEManagerImpl::GetConnectionState(uint8_t connectionHandle, bool
      allocate)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:971,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - connectionHandle
    - allocate
    argTypes:
    - uint8_t
    - bool
    constantsTouched: []
    func_position:
      end: 975
      start: 946
    functionDepth: 0
    functionLinenumber: 946
    functionLinenumberEnd: 975
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetTimerHandle
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    linkageType: ''
    returnType: uint8_t
    signature: BLEManagerImpl::GetTimerHandle(uint8_t connectionHandle, bool allocate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::DriveBLEState
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - intptr_t
    constantsTouched: []
    func_position:
      end: 980
      start: 977
    functionDepth: 0
    functionLinenumber: 977
    functionLinenumberEnd: 980
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::DriveBLEState
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::DriveBLEState
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::DriveBLEState(intptr_t arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - wakeupCallback
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: BluetoothSetWakeupCallback
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BluetoothSetWakeupCallback(wakeupCallback cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xEventGroupCreate
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:70,1
    - Dst: configASSERT
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:71,1
    - Dst: xSemaphoreCreateMutex
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:73,1
    - Dst: initialize_bluetooth_stack
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:75,1
    - Dst: xTaskCreate
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:80,1
    - Dst: xTaskCreate
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ll_priority
    - stack_priority
    - initialize_bluetooth_stack
    argTypes:
    - UBaseType_t
    - UBaseType_t
    - bluetooth_stack_init_func
    constantsTouched: []
    func_position:
      end: 97
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 97
    functionName: bluetooth_start
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c
    functionUses: 1
    functionsReached:
    - xSemaphoreCreateMutex
    - xTaskCreate
    - xEventGroupCreate
    - initialize_bluetooth_stack
    - configASSERT
    linkageType: ''
    returnType: errorcode_t
    signature: "bluetooth_start(UBaseType_t               ll_priority,\n                            UBaseType_t
      \              stack_priority,\n                            bluetooth_stack_init_func
      initialize_bluetooth_stack)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vRaiseEventFlagBasedOnContext
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: BluetoothLLCallback
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c
    functionUses: 0
    functionsReached:
    - vRaiseEventFlagBasedOnContext
    linkageType: ''
    returnType: void
    signature: BluetoothLLCallback()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vRaiseEventFlagBasedOnContext
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: BluetoothUpdate
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c
    functionUses: 0
    functionsReached:
    - vRaiseEventFlagBasedOnContext
    linkageType: ''
    returnType: void
    signature: BluetoothUpdate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sli_bt_cmd_handler_delegate
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:134,1
    - Dst: vRaiseEventFlagBasedOnContext
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:137,1
    - Dst: gecko_wait_event
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:144,1
    - Dst: vRaiseEventFlagBasedOnContext
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:148,1
    - Dst: wakeupCB
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:153,1
    - Dst: xEventGroupWaitBits
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:186,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 201
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 201
    functionName: BluetoothTask
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c
    functionUses: 0
    functionsReached:
    - xEventGroupWaitBits
    - wakeupCB
    - sli_bt_cmd_handler_delegate
    - gecko_wait_event
    - vRaiseEventFlagBasedOnContext
    linkageType: ''
    returnType: void
    signature: BluetoothTask(void *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xEventGroupWaitBits
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:211,1
    - Dst: gecko_priority_handle
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p_arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 223
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 223
    functionName: LinklayerTask
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c
    functionUses: 0
    functionsReached:
    - xEventGroupWaitBits
    - gecko_priority_handle
    linkageType: ''
    returnType: void
    signature: LinklayerTask(void *p_arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sli_bt_cmd_handler_rtos_delegate
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - header
    - payload
    argTypes:
    - uint32_t
    - void*
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: rtos_gecko_handle_command
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c
    functionUses: 0
    functionsReached:
    - sli_bt_cmd_handler_rtos_delegate
    linkageType: ''
    returnType: void
    signature: rtos_gecko_handle_command(uint32_t header, void *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sli_bt_cmd_handler_rtos_delegate
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - header
    - payload
    argTypes:
    - uint32_t
    - void*
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: rtos_gecko_handle_command_noresponse
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c
    functionUses: 0
    functionsReached:
    - sli_bt_cmd_handler_rtos_delegate
    linkageType: ''
    returnType: void
    signature: rtos_gecko_handle_command_noresponse(uint32_t header, void *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vRaiseEventFlagBasedOnContext
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:243,1
    - Dst: xEventGroupWaitBits
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - header
    - handler
    - payload
    argTypes:
    - uint32_t
    - gecko_cmd_handler
    - void*
    constantsTouched: []
    func_position:
      end: 253
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 253
    functionName: sli_bt_cmd_handler_rtos_delegate
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c
    functionUses: 2
    functionsReached:
    - xEventGroupWaitBits
    - vRaiseEventFlagBasedOnContext
    linkageType: ''
    returnType: void
    signature: sli_bt_cmd_handler_rtos_delegate(uint32_t header, gecko_cmd_handler
      handler, const void *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xSemaphoreTake
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: BluetoothPend
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c
    functionUses: 0
    functionsReached:
    - xSemaphoreTake
    linkageType: ''
    returnType: void
    signature: BluetoothPend(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xSemaphoreGive
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: BluetoothPost
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c
    functionUses: 0
    functionsReached:
    - xSemaphoreGive
    linkageType: ''
    returnType: void
    signature: BluetoothPost(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: configASSERT
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 274
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 274
    functionName: vApplicationMallocFailedHook
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c
    functionUses: 0
    functionsReached:
    - configASSERT
    linkageType: ''
    returnType: void
    signature: vApplicationMallocFailedHook(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: configASSERT
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pxTask
    - pcTaskName
    argTypes:
    - TaskHandle_t
    - char*
    constantsTouched: []
    func_position:
      end: 288
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 288
    functionName: vApplicationStackOverflowHook
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c
    functionUses: 0
    functionsReached:
    - configASSERT
    linkageType: ''
    returnType: void
    signature: vApplicationStackOverflowHook(TaskHandle_t pxTask, char *pcTaskName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 292
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 292
    functionName: vApplicationTickHook
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: vApplicationTickHook(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ppxIdleTaskTCBBuffer
    - ppxIdleTaskStackBuffer
    - pulIdleTaskStackSize
    argTypes:
    - StaticTask_t**
    - StackType_t**
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 320
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 320
    functionName: vApplicationGetIdleTaskMemory
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "vApplicationGetIdleTaskMemory(StaticTask_t **ppxIdleTaskTCBBuffer,\n
      \                                  StackType_t ** ppxIdleTaskStackBuffer,\n
      \                                  uint32_t *     pulIdleTaskStackSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ppxTimerTaskTCBBuffer
    - ppxTimerTaskStackBuffer
    - pulTimerTaskStackSize
    argTypes:
    - StaticTask_t**
    - StackType_t**
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 347
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 347
    functionName: vApplicationGetTimerTaskMemory
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "vApplicationGetTimerTaskMemory(StaticTask_t **ppxTimerTaskTCBBuffer,\n
      \                                   StackType_t ** ppxTimerTaskStackBuffer,\n
      \                                   uint32_t *     pulTimerTaskStackSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xPortIsInsideInterrupt
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:356,1
    - Dst: xEventGroupSetBitsFromISR
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:358,1
    - Dst: xEventGroupSetBits
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - xEventGroup
    - uxBitsToWaitFor
    - pxHigherPriorityTaskWoken
    argTypes:
    - EventGroupHandle_t
    - EventBits_t
    - BaseType_t*
    constantsTouched: []
    func_position:
      end: 370
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 370
    functionName: vRaiseEventFlagBasedOnContext
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c
    functionUses: 5
    functionsReached:
    - xEventGroupSetBits
    - xEventGroupSetBitsFromISR
    - xPortIsInsideInterrupt
    linkageType: ''
    returnType: EventBits_t
    signature: "vRaiseEventFlagBasedOnContext(EventGroupHandle_t xEventGroup,\n                                          EventBits_t
      \       uxBitsToWaitFor,\n                                          BaseType_t
      *       pxHigherPriorityTaskWoken)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xPortIsInsideInterrupt
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:380,1
    - Dst: xQueueSendFromISR
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:382,1
    - Dst: xQueueSend
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - xQueue
    - xItemToQueue
    - xTicksToWait
    - pxHigherPriorityTaskWoken
    argTypes:
    - QueueHandle_t
    - void*
    - TickType_t
    - BaseType_t*
    constantsTouched: []
    func_position:
      end: 395
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 395
    functionName: vSendToQueueBasedOnContext
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c
    functionUses: 0
    functionsReached:
    - xQueueSendFromISR
    - xQueueSend
    - xPortIsInsideInterrupt
    linkageType: ''
    returnType: EventBits_t
    signature: "vSendToQueueBasedOnContext(QueueHandle_t xQueue,\n                                       void
      *        xItemToQueue,\n                                       TickType_t    xTicksToWait,\n
      \                                      BaseType_t *  pxHigherPriorityTaskWoken)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:83,1
    - Dst: SEGGER_RTT_WriteNoLock
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:84,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:87,1
    - Dst: SEGGER_RTT_WriteNoLock
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: PrintLog
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - SEGGER_RTT_WriteNoLock
    linkageType: ''
    returnType: void
    signature: PrintLog(const char *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SEGGER_RTT_ConfigUpBuffer
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: efr32LogInit
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp
    functionUses: 0
    functionsReached:
    - SEGGER_RTT_ConfigUpBuffer
    linkageType: ''
    returnType: int
    signature: efr32LogInit(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:114,1
    - Dst: strcpy
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:118,1
    - Dst: PrintLog
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:127,1
    - Dst: va_end
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - aFormat
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 131
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 131
    functionName: efr32Log
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp
    functionUses: 0
    functionsReached:
    - strcpy
    - PrintLog
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: efr32Log(const char *aFormat, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:139,1
    - Dst: nl::Weave::Logging::GetModuleName
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - module
    argTypes:
    - char*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 145
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 145
    functionName: GetModuleName
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp
    functionUses: 4
    functionsReached:
    - nl::Weave::Logging::GetModuleName
    - memcpy
    linkageType: ''
    returnType: void
    signature: GetModuleName(char *buf, uint8_t module)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: nl::Weave::DeviceLayer::OnLogOutput
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: OnLogOutput(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:178,1
    - Dst: IsCategoryEnabled
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:180,1
    - Dst: strcpy
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:191,1
    - Dst: strcpy
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:196,1
    - Dst: strcpy
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:199,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:203,1
    - Dst: nl::Weave::Logging::GetModuleName
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:207,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:208,1
    - Dst: PrintLog
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:219,1
    - Dst: nl::Weave::DeviceLayer::OnLogOutput
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:223,1
    - Dst: va_end
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:225,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - module
    - category
    - aFormat
    argTypes:
    - uint8_t
    - uint8_t
    - char*
    constantsTouched: []
    func_position:
      end: 226
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 226
    functionName: nl::Weave::Logging::Log
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp
    functionUses: 0
    functionsReached:
    - PrintLog
    - va_end
    - nl::Weave::Logging::GetModuleName
    - va_start
    - IsCategoryEnabled
    - strlen
    - nl::Weave::DeviceLayer::OnLogOutput
    - strcpy
    linkageType: ''
    returnType: void
    signature: Log(uint8_t module, uint8_t category, const char *aFormat, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:239,1
    - Dst: strcpy
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:243,1
    - Dst: PrintLog
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:252,1
    - Dst: nl::Weave::DeviceLayer::OnLogOutput
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:254,1
    - Dst: va_end
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - aFormat
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 257
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 257
    functionName: LwIPLog
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp
    functionUses: 0
    functionsReached:
    - PrintLog
    - va_end
    - va_start
    - nl::Weave::DeviceLayer::OnLogOutput
    - strcpy
    linkageType: ''
    returnType: void
    signature: LwIPLog(const char *aFormat, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:265,1
    - Dst: va_start
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:268,1
    - Dst: strcpy
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:277,1
    - Dst: strcpy
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:280,1
    - Dst: strcpy
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:283,1
    - Dst: strcpy
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:286,1
    - Dst: strcpy
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:289,1
    - Dst: strcpy
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:292,1
    - Dst: PrintLog
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:304,1
    - Dst: nl::Weave::DeviceLayer::OnLogOutput
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:308,1
    - Dst: va_end
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:310,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - aLogLevel
    - aLogRegion
    - aFormat
    argTypes:
    - otLogLevel
    - otLogRegion
    - char*
    constantsTouched: []
    func_position:
      end: 311
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 311
    functionName: otPlatLog
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp
    functionUses: 0
    functionsReached:
    - PrintLog
    - IgnoreUnusedVariable
    - va_end
    - va_start
    - nl::Weave::DeviceLayer::OnLogOutput
    - strcpy
    linkageType: ''
    returnType: void
    signature: otPlatLog(otLogLevel aLogLevel, otLogRegion aLogRegion, const char
      *aFormat, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: efr32LogInit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:337,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:340,1
    - Dst: PrintLog
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:341,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:342,1
    - Dst: PrintLog
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:343,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:344,1
    - Dst: PrintLog
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:345,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:346,1
    - Dst: PrintLog
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:347,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:348,1
    - Dst: PrintLog
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:349,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:350,1
    - Dst: PrintLog
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:351,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:352,1
    - Dst: PrintLog
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:353,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:354,1
    - Dst: PrintLog
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:355,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:356,1
    - Dst: PrintLog
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:357,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:358,1
    - Dst: PrintLog
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:359,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:360,1
    - Dst: PrintLog
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:361,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:362,1
    - Dst: PrintLog
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:363,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:364,1
    - Dst: PrintLog
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:365,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:366,1
    - Dst: PrintLog
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp:367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 1
    argNames:
    - sp
    argTypes:
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 371
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 371
    functionName: debugHardfault
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp
    functionUses: 0
    functionsReached:
    - efr32LogInit
    - PrintLog
    - snprintf
    linkageType: ''
    returnType: void
    signature: debugHardfault(uint32_t *sp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 385
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 385
    functionName: HardFault_Handler
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: HardFault_Handler(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Internal::GenericSoftwareUpdateManagerImpl_BDX<SoftwareUpdateManagerImpl>::DoInit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/SoftwareUpdateManagerImpl.cpp:37,1
    - Dst: Internal::GenericSoftwareUpdateManagerImpl<SoftwareUpdateManagerImpl>::DoInit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/SoftwareUpdateManagerImpl.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl::_Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/SoftwareUpdateManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - Internal::GenericSoftwareUpdateManagerImpl<SoftwareUpdateManagerImpl>::DoInit
    - Internal::GenericSoftwareUpdateManagerImpl_BDX<SoftwareUpdateManagerImpl>::DoInit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SoftwareUpdateManagerImpl::_Init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:80,1
    - Dst: nvm3_open
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:80,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:81,1
    - Dst: nvm3_close
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 91
    functionName: nl::Weave::DeviceLayer::Internal::EFR32Config::Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp
    functionUses: 1
    functionsReached:
    - nvm3_open
    - SuccessOrExit
    - nvm3_close
    - nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EFR32Config::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:101,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:101,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:103,1
    - Dst: nvm3_open
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:103,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:104,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:108,1
    - Dst: nvm3_getObjectInfo
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:108,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:109,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:112,1
    - Dst: nvm3_readData
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:112,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:113,1
    - Dst: nvm3_close
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - Key
    - bool
    constantsTouched: []
    func_position:
      end: 122
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 122
    functionName: nl::Weave::DeviceLayer::Internal::EFR32Config::ReadConfigValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp
    functionUses: 0
    functionsReached:
    - nvm3_getObjectInfo
    - VerifyOrExit
    - nvm3_readData
    - nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
    - nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
    - nvm3_close
    - SuccessOrExit
    - nvm3_open
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EFR32Config::ReadConfigValue(Key key, bool &val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:132,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:132,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:134,1
    - Dst: nvm3_open
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:134,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:135,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:139,1
    - Dst: nvm3_getObjectInfo
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:139,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:140,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:143,1
    - Dst: nvm3_readData
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:143,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:144,1
    - Dst: nvm3_close
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - Key
    - uint32_t
    constantsTouched: []
    func_position:
      end: 153
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 153
    functionName: nl::Weave::DeviceLayer::Internal::EFR32Config::ReadConfigValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp
    functionUses: 0
    functionsReached:
    - nvm3_getObjectInfo
    - VerifyOrExit
    - nvm3_readData
    - nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
    - nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
    - nvm3_close
    - SuccessOrExit
    - nvm3_open
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EFR32Config::ReadConfigValue(Key key, uint32_t &val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:163,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:163,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:165,1
    - Dst: nvm3_open
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:165,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:166,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:170,1
    - Dst: nvm3_getObjectInfo
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:170,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:171,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:174,1
    - Dst: nvm3_readData
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:174,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:175,1
    - Dst: nvm3_close
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - Key
    - uint64_t
    constantsTouched: []
    func_position:
      end: 184
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 184
    functionName: nl::Weave::DeviceLayer::Internal::EFR32Config::ReadConfigValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp
    functionUses: 0
    functionsReached:
    - nvm3_getObjectInfo
    - VerifyOrExit
    - nvm3_readData
    - nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
    - nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
    - nvm3_close
    - SuccessOrExit
    - nvm3_open
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EFR32Config::ReadConfigValue(Key key, uint64_t &val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:195,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:195,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:197,1
    - Dst: nvm3_open
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:197,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:198,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:202,1
    - Dst: nvm3_getObjectInfo
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:202,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:203,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:204,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:211,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:213,1
    - Dst: nvm3_readData
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:213,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:214,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:229,1
    - Dst: nvm3_readData
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:229,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:230,1
    - Dst: nvm3_close
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 4
    argNames:
    - key
    - buf
    - bufSize
    - outLen
    argTypes:
    - Key
    - char*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 242
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 242
    functionName: nl::Weave::DeviceLayer::Internal::EFR32Config::ReadConfigValueStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp
    functionUses: 0
    functionsReached:
    - nvm3_getObjectInfo
    - VerifyOrExit
    - nvm3_readData
    - nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
    - nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
    - nvm3_close
    - SuccessOrExit
    - nvm3_open
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EFR32Config::ReadConfigValueStr(Key key, char *buf, size_t bufSize,
      size_t &outLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:253,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:253,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:255,1
    - Dst: nvm3_open
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:255,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:256,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:260,1
    - Dst: nvm3_getObjectInfo
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:260,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:261,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:262,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:268,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:270,1
    - Dst: nvm3_readData
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:270,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:271,1
    - Dst: nvm3_close
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 4
    argNames:
    - key
    - buf
    - bufSize
    - outLen
    argTypes:
    - Key
    - uint8_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 282
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 282
    functionName: nl::Weave::DeviceLayer::Internal::EFR32Config::ReadConfigValueBin
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp
    functionUses: 0
    functionsReached:
    - nvm3_getObjectInfo
    - VerifyOrExit
    - nvm3_readData
    - nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
    - nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
    - nvm3_close
    - SuccessOrExit
    - nvm3_open
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EFR32Config::ReadConfigValueBin(Key key, uint8_t *buf, size_t bufSize,
      size_t &outLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:291,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:291,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:293,1
    - Dst: nvm3_open
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:293,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:294,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:298,1
    - Dst: nvm3_readCounter
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:298,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:299,1
    - Dst: nvm3_close
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - counterIdx
    - val
    argTypes:
    - uint8_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 308
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 308
    functionName: nl::Weave::DeviceLayer::Internal::EFR32Config::ReadConfigValueCounter
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
    - nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
    - nvm3_close
    - SuccessOrExit
    - nvm3_open
    - nvm3_readCounter
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EFR32Config::ReadConfigValueCounter(uint8_t counterIdx, uint32_t &val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:315,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:315,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:317,1
    - Dst: nvm3_open
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:317,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:318,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:321,1
    - Dst: nvm3_writeData
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:321,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:322,1
    - Dst: nvm3_close
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - Key
    - bool
    constantsTouched: []
    func_position:
      end: 330
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 330
    functionName: nl::Weave::DeviceLayer::Internal::EFR32Config::WriteConfigValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
    - nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
    - nvm3_close
    - SuccessOrExit
    - nvm3_open
    - nvm3_writeData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EFR32Config::WriteConfigValue(Key key, bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:337,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:337,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:339,1
    - Dst: nvm3_open
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:339,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:340,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:343,1
    - Dst: nvm3_writeData
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:343,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:344,1
    - Dst: nvm3_close
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - Key
    - uint32_t
    constantsTouched: []
    func_position:
      end: 352
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 352
    functionName: nl::Weave::DeviceLayer::Internal::EFR32Config::WriteConfigValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
    - nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
    - nvm3_close
    - SuccessOrExit
    - nvm3_open
    - nvm3_writeData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EFR32Config::WriteConfigValue(Key key, uint32_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:359,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:359,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:361,1
    - Dst: nvm3_open
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:361,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:362,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:365,1
    - Dst: nvm3_writeData
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:365,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:366,1
    - Dst: nvm3_close
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - Key
    - uint64_t
    constantsTouched: []
    func_position:
      end: 374
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 374
    functionName: nl::Weave::DeviceLayer::Internal::EFR32Config::WriteConfigValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
    - nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
    - nvm3_close
    - SuccessOrExit
    - nvm3_open
    - nvm3_writeData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EFR32Config::WriteConfigValue(Key key, uint64_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::WriteConfigValueStr
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:378,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - str
    argTypes:
    - Key
    - char*
    constantsTouched: []
    func_position:
      end: 379
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 379
    functionName: nl::Weave::DeviceLayer::Internal::EFR32Config::WriteConfigValueStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::EFR32Config::WriteConfigValueStr
    - strlen
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EFR32Config::WriteConfigValueStr(Key key, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:386,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:386,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:388,1
    - Dst: nvm3_open
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:388,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:389,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:396,1
    - Dst: nvm3_writeData
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:396,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:397,1
    - Dst: nvm3_deleteObject
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:401,1
    - Dst: nvm3_close
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - key
    - str
    - strLen
    argTypes:
    - Key
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 411
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 411
    functionName: nl::Weave::DeviceLayer::Internal::EFR32Config::WriteConfigValueStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp
    functionUses: 1
    functionsReached:
    - VerifyOrExit
    - nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
    - nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
    - nvm3_deleteObject
    - SuccessOrExit
    - nvm3_open
    - nvm3_writeData
    - nvm3_close
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EFR32Config::WriteConfigValueStr(Key key, const char *str, size_t strLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:418,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:418,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:420,1
    - Dst: nvm3_open
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:420,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:421,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:429,1
    - Dst: nvm3_writeData
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:429,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:430,1
    - Dst: nvm3_deleteObject
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:435,1
    - Dst: nvm3_close
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:441,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - key
    - data
    - dataLen
    argTypes:
    - Key
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 444
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 444
    functionName: nl::Weave::DeviceLayer::Internal::EFR32Config::WriteConfigValueBin
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
    - nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
    - nvm3_deleteObject
    - SuccessOrExit
    - nvm3_open
    - nvm3_writeData
    - nvm3_close
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EFR32Config::WriteConfigValueBin(Key key, const uint8_t *data, size_t
      dataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:452,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:452,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:454,1
    - Dst: nvm3_open
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:454,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:455,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:458,1
    - Dst: nvm3_writeCounter
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:458,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:459,1
    - Dst: nvm3_close
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - counterIdx
    - val
    argTypes:
    - uint8_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 467
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 467
    functionName: nl::Weave::DeviceLayer::Internal::EFR32Config::WriteConfigValueCounter
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
    - nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
    - nvm3_writeCounter
    - SuccessOrExit
    - nvm3_open
    - nvm3_close
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EFR32Config::WriteConfigValueCounter(uint8_t counterIdx, uint32_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:474,1
    - Dst: nvm3_open
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:474,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:475,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:479,1
    - Dst: nvm3_deleteObject
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:479,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:480,1
    - Dst: nvm3_close
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    constantsTouched: []
    func_position:
      end: 488
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 488
    functionName: nl::Weave::DeviceLayer::Internal::EFR32Config::ClearConfigValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
    - nvm3_deleteObject
    - nvm3_close
    - SuccessOrExit
    - nvm3_open
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EFR32Config::ClearConfigValue(Key key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:497,1
    - Dst: nvm3_open
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:497,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:498,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:502,1
    - Dst: nvm3_getObjectInfo
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:502,1
    - Dst: nvm3_close
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    constantsTouched: []
    func_position:
      end: 510
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 510
    functionName: nl::Weave::DeviceLayer::Internal::EFR32Config::ConfigValueExists
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp
    functionUses: 0
    functionsReached:
    - nvm3_getObjectInfo
    - nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
    - nvm3_close
    - SuccessOrExit
    - nvm3_open
    linkageType: ''
    returnType: bool
    signature: EFR32Config::ConfigValueExists(Key key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::ForEachRecord
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:520,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::ClearConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:524,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 538
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 538
    functionName: nl::Weave::DeviceLayer::Internal::EFR32Config::FactoryResetConfig
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::EFR32Config::ClearConfigValue
    - nl::Weave::DeviceLayer::Internal::EFR32Config::ForEachRecord
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EFR32Config::FactoryResetConfig(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - nvm3Res
    argTypes:
    - Ecode_t
    constantsTouched: []
    func_position:
      end: 558
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 558
    functionName: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EFR32Config::MapNvm3Error(Ecode_t nvm3Res)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:574,1
    - Dst: nvm3_open
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:574,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:575,1
    - Dst: nvm3_getObjectInfo
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:578,1
    - Dst: funct
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:586,1
    - Dst: funct
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:594,1
    - Dst: nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:598,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:602,1
    - Dst: nvm3_close
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:607,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - firstNvm3Key
    - lastNvm3Key
    - addNewRecord
    - funct
    argTypes:
    - Key
    - Key
    - bool
    - ForEachRecordFunct
    constantsTouched: []
    func_position:
      end: 610
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 610
    functionName: nl::Weave::DeviceLayer::Internal::EFR32Config::ForEachRecord
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp
    functionUses: 1
    functionsReached:
    - funct
    - nvm3_getObjectInfo
    - nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
    - nvm3_close
    - SuccessOrExit
    - nvm3_open
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EFR32Config::ForEachRecord(Key firstNvm3Key, Key lastNvm3Key, bool
      addNewRecord, ForEachRecordFunct funct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    constantsTouched: []
    func_position:
      end: 622
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 622
    functionName: nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: EFR32Config::ValidConfigKey(Key key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::nl::Weave::DeviceLayer::Internal::RunConfigUnitTest<EFR32Config>
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 628
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 628
    functionName: nl::Weave::DeviceLayer::Internal::EFR32Config::RunConfigUnitTest
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp
    functionUses: 0
    functionsReached:
    - ::nl::Weave::DeviceLayer::Internal::RunConfigUnitTest<EFR32Config>
    linkageType: ''
    returnType: void
    signature: EFR32Config::RunConfigUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nvm3_repack
      Src: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 636
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 636
    functionName: nl::Weave::DeviceLayer::Internal::EFR32Config::RepackNvm3Flash
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp
    functionUses: 0
    functionsReached:
    - nvm3_repack
    linkageType: ''
    returnType: void
    signature: EFR32Config::RepackNvm3Flash(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::ThreadStackManagerImpl::InitThreadStack
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: nl::Weave::DeviceLayer::ThreadStackManagerImpl::_InitThreadStack
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::ThreadStackManagerImpl::InitThreadStack
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ThreadStackManagerImpl::_InitThreadStack(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericThreadStackManagerImpl_FreeRTOS<ThreadStackManagerImpl>::DoInit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp:55,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp:56,1
    - Dst: GenericThreadStackManagerImpl_OpenThread_LwIP<ThreadStackManagerImpl>::DoInit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp:57,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - otInst
    argTypes:
    - otInstance*
    constantsTouched: []
    func_position:
      end: 62
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 62
    functionName: nl::Weave::DeviceLayer::ThreadStackManagerImpl::InitThreadStack
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp
    functionUses: 3
    functionsReached:
    - GenericThreadStackManagerImpl_FreeRTOS<ThreadStackManagerImpl>::DoInit
    - GenericThreadStackManagerImpl_OpenThread_LwIP<ThreadStackManagerImpl>::DoInit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ThreadStackManagerImpl::InitThreadStack(otInstance * otInst)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: nl::Weave::DeviceLayer::ThreadStackManagerImpl::IsInitialized
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ThreadStackManagerImpl::IsInitialized()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LockThreadStack
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp:83,1
    - Dst: otIp6SetEnabled
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp:84,1
    - Dst: OTInstance
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp:84,1
    - Dst: UnlockThreadStack
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 87
    functionName: nl::Weave::DeviceLayer::ThreadStackManagerImpl::_OnWoBLEAdvertisingStart
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - OTInstance
    - UnlockThreadStack
    - otIp6SetEnabled
    - LockThreadStack
    linkageType: ''
    returnType: void
    signature: ThreadStackManagerImpl::_OnWoBLEAdvertisingStart(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LockThreadStack
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp:95,1
    - Dst: otThreadGetDeviceRole
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp:96,1
    - Dst: OTInstance
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp:96,1
    - Dst: otDatasetIsCommissioned
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp:96,1
    - Dst: OTInstance
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp:96,1
    - Dst: otIp6SetEnabled
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp:98,1
    - Dst: OTInstance
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp:98,1
    - Dst: UnlockThreadStack
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 102
    functionName: nl::Weave::DeviceLayer::ThreadStackManagerImpl::_OnWoBLEAdvertisingStop
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - otThreadGetDeviceRole
    - otIp6SetEnabled
    - UnlockThreadStack
    - LockThreadStack
    - OTInstance
    - otDatasetIsCommissioned
    linkageType: ''
    returnType: void
    signature: ThreadStackManagerImpl::_OnWoBLEAdvertisingStop(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p_instance
    argTypes:
    - otInstance*
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: otTaskletsSignalPending
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - ThreadStackMgrImpl
    linkageType: ''
    returnType: void
    signature: otTaskletsSignalPending(otInstance * p_instance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThreadStackMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp:127,1
    - Dst: portYIELD_FROM_ISR
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: otSysEventSignalPending
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - ThreadStackMgrImpl
    - portYIELD_FROM_ISR
    linkageType: ''
    returnType: void
    signature: otSysEventSignalPending(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::RegisterNRFErrorFormatter
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/PlatformManagerImpl.cpp:43,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::Init
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/PlatformManagerImpl.cpp:46,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/PlatformManagerImpl.cpp:47,1
    - Dst: tcpip_init
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/PlatformManagerImpl.cpp:50,1
    - Dst: nl::Weave::DeviceLayer::PlatformManagerImpl::_InitWeaveStack
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/PlatformManagerImpl.cpp:54,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/PlatformManagerImpl.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 59
    functionName: nl::Weave::DeviceLayer::PlatformManagerImpl::_InitWeaveStack
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/PlatformManagerImpl.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::DeviceLayer::PlatformManagerImpl::_InitWeaveStack
    - nl::Weave::DeviceLayer::Internal::NRF5Config::Init
    - nl::Weave::DeviceLayer::Internal::RegisterNRFErrorFormatter
    - SuccessOrExit
    - tcpip_init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PlatformManagerImpl::_InitWeaveStack(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_Weave_Stack_Init
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:65,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:66,1
    - Dst: Init
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:69,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:70,1
    - Dst: FactoryProvisioning::ProvisionDeviceFromRAM
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:80,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:81,1
    - Dst: _GetFailSafeArmed
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:87,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:89,1
    - Dst: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_InitiateFactoryReset
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 96
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - nl_Weave_Stack_Init
    - Init
    - FactoryProvisioning::ProvisionDeviceFromRAM
    - SuccessOrExit
    - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_InitiateFactoryReset
    - _GetFailSafeArmed
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManagerImpl::_Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetDeviceDescriptor
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:103,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' deviceDesc'
    argTypes:
    - ::nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor
    constantsTouched: []
    func_position:
      end: 108
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 108
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetDeviceDescriptor
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetDeviceDescriptor
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManagerImpl::_GetDeviceDescriptor(::nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor
      & deviceDesc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetGroupKeyStore
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ::nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase
    signature: '* ConfigurationManagerImpl::_GetGroupKeyStore()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_CanFactoryReset
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ConfigurationManagerImpl::_CanFactoryReset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_InitiateFactoryReset
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp
    functionUses: 3
    functionsReached:
    - PlatformMgr
    linkageType: ''
    returnType: void
    signature: ConfigurationManagerImpl::_InitiateFactoryReset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:131,1
    - Dst: ReadConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:133,1
    - Dst: NRF5ConfigKey
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:133,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - persistedStorageKey
    - ' value'
    argTypes:
    - ::nl::Weave::Platform::PersistedStorage::Key
    - uint32_t
    constantsTouched: []
    func_position:
      end: 142
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 142
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_ReadPersistedStorageValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - ReadConfigValue
    - VerifyOrExit
    - NRF5ConfigKey
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManagerImpl::_ReadPersistedStorageValue(::nl::Weave::Platform::PersistedStorage::Key
      persistedStorageKey, uint32_t & value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:149,1
    - Dst: WriteConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:151,1
    - Dst: NRF5ConfigKey
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:151,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - persistedStorageKey
    - value
    argTypes:
    - ::nl::Weave::Platform::PersistedStorage::Key
    - uint32_t
    constantsTouched: []
    func_position:
      end: 156
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 156
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::_WritePersistedStorageValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - NRF5ConfigKey
    - WriteConfigValue
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConfigurationManagerImpl::_WritePersistedStorageValue(::nl::Weave::Platform::PersistedStorage::Key
      persistedStorageKey, uint32_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:162,1
    - Dst: FactoryResetConfig
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:164,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:167,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:167,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:172,1
    - Dst: ThreadStackMgr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:173,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:178,1
    - Dst: NVIC_SystemReset
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - intptr_t
    constantsTouched: []
    func_position:
      end: 180
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 180
    functionName: nl::Weave::DeviceLayer::ConfigurationManagerImpl::DoFactoryReset
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - WeaveLogProgress
    - ThreadStackMgr
    - NVIC_SystemReset
    - FactoryResetConfig
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: ConfigurationManagerImpl::DoFactoryReset(intptr_t arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xSemaphoreCreateBinary
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:53,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:54,1
    - Dst: fds_register
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:57,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:58,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::MapFDSError
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:58,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:63,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 69
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::NRF5Config::MapFDSError
    - xSemaphoreCreateBinary
    - fds_register
    - VerifyOrExit
    - nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NRF5Config::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::OpenRecord
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:79,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:80,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:83,1
    - Dst: nl::Weave::Encoding::LittleEndian::Get32
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:85,1
    - Dst: fds_record_close
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - key
    - ' val'
    argTypes:
    - Key
    - bool
    constantsTouched: []
    func_position:
      end: 94
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 94
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::ReadConfigValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Get32
    - VerifyOrExit
    - SuccessOrExit
    - fds_record_close
    - nl::Weave::DeviceLayer::Internal::NRF5Config::OpenRecord
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NRF5Config::ReadConfigValue(Key key, bool & val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::OpenRecord
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:103,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:104,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:107,1
    - Dst: nl::Weave::Encoding::LittleEndian::Get32
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:109,1
    - Dst: fds_record_close
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - key
    - ' val'
    argTypes:
    - Key
    - uint32_t
    constantsTouched: []
    func_position:
      end: 117
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 117
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::ReadConfigValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Get32
    - VerifyOrExit
    - SuccessOrExit
    - fds_record_close
    - nl::Weave::DeviceLayer::Internal::NRF5Config::OpenRecord
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NRF5Config::ReadConfigValue(Key key, uint32_t & val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::OpenRecord
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:126,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:127,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:130,1
    - Dst: nl::Weave::Encoding::LittleEndian::Get64
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:132,1
    - Dst: fds_record_close
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - key
    - ' val'
    argTypes:
    - Key
    - uint64_t
    constantsTouched: []
    func_position:
      end: 140
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 140
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::ReadConfigValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - SuccessOrExit
    - nl::Weave::Encoding::LittleEndian::Get64
    - fds_record_close
    - nl::Weave::DeviceLayer::Internal::NRF5Config::OpenRecord
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NRF5Config::ReadConfigValue(Key key, uint64_t & val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::OpenRecord
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:150,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:151,1
    - Dst: memchr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:154,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:155,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:164,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:166,1
    - Dst: fds_record_close
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - key
    - buf
    - bufSize
    - ' outLen'
    argTypes:
    - Key
    - char*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 175
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 175
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::ReadConfigValueStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - memchr
    - fds_record_close
    - memcpy
    - SuccessOrExit
    - nl::Weave::DeviceLayer::Internal::NRF5Config::OpenRecord
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NRF5Config::ReadConfigValueStr(Key key, char * buf, size_t bufSize,
      size_t & outLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::OpenRecord
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:184,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:185,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:188,1
    - Dst: nl::Weave::Encoding::LittleEndian::Get16
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:191,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:193,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:200,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:202,1
    - Dst: fds_record_close
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - key
    - buf
    - bufSize
    - ' outLen'
    argTypes:
    - Key
    - uint8_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 211
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 211
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::ReadConfigValueBin
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Get16
    - VerifyOrExit
    - fds_record_close
    - memcpy
    - SuccessOrExit
    - nl::Weave::DeviceLayer::Internal::NRF5Config::OpenRecord
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NRF5Config::ReadConfigValueBin(Key key, uint8_t * buf, size_t bufSize,
      size_t & outLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:219,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:220,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:224,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:225,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:227,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:227,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - Key
    - bool
    constantsTouched: []
    func_position:
      end: 231
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 231
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::WriteConfigValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
    - SuccessOrExit
    - nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
    - nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NRF5Config::WriteConfigValue(Key key, bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:238,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:239,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:243,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:244,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:246,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:246,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - Key
    - uint32_t
    constantsTouched: []
    func_position:
      end: 250
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 250
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::WriteConfigValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
    - SuccessOrExit
    - nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
    - nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NRF5Config::WriteConfigValue(Key key, uint32_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:257,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:258,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:262,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:263,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:265,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:265,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - Key
    - uint64_t
    constantsTouched: []
    func_position:
      end: 269
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 269
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::WriteConfigValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
    - SuccessOrExit
    - nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
    - nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NRF5Config::WriteConfigValue(Key key, uint64_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::WriteConfigValueStr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:273,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - str
    argTypes:
    - Key
    - char*
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::WriteConfigValueStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::NRF5Config::WriteConfigValueStr
    - strlen
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NRF5Config::WriteConfigValueStr(Key key, const char * str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nrf_malloc
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:285,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:286,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:288,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:292,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:293,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:297,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:298,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:300,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:300,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:300,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::ClearConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:305,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:306,1
    - Dst: nrf_free
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - key
    - str
    - strLen
    argTypes:
    - Key
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 315
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 315
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::WriteConfigValueStr
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    - nrf_free
    - nrf_malloc
    - VerifyOrExit
    - nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
    - memcpy
    - SuccessOrExit
    - nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
    - nl::Weave::DeviceLayer::Internal::NRF5Config::ClearConfigValue
    - nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NRF5Config::WriteConfigValueStr(Key key, const char * str, size_t strLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nrf_malloc
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:326,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:327,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put16
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:330,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:332,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:335,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:336,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:340,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:341,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:343,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:343,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:343,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::ClearConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:348,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:349,1
    - Dst: nrf_free
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - key
    - data
    - dataLen
    argTypes:
    - Key
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 358
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 358
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::WriteConfigValueBin
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - nrf_free
    - nrf_malloc
    - VerifyOrExit
    - nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
    - memcpy
    - SuccessOrExit
    - nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
    - nl::Weave::Encoding::LittleEndian::Put16
    - nl::Weave::DeviceLayer::Internal::NRF5Config::ClearConfigValue
    - nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NRF5Config::WriteConfigValueBin(Key key, const uint8_t * data, size_t
      dataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:365,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:366,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:368,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:369,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:371,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:371,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    constantsTouched: []
    func_position:
      end: 375
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 375
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::ClearConfigValue
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp
    functionUses: 2
    functionsReached:
    - WeaveLogProgress
    - nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
    - SuccessOrExit
    - nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
    - nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NRF5Config::ClearConfigValue(Key key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:384,1
    - Dst: fds_record_find
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:385,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:385,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    constantsTouched: []
    func_position:
      end: 389
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 389
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::ConfigValueExists
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp
    functionUses: 0
    functionsReached:
    - fds_record_find
    - nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
    - memset
    - nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
    linkageType: ''
    returnType: bool
    signature: NRF5Config::ConfigValueExists(Key key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:399,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:400,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:401,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:407,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 413
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 413
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::FactoryResetConfig
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NRF5Config::FactoryResetConfig(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fdsRes
    argTypes:
    - ret_code_t
    constantsTouched: []
    func_position:
      end: 418
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 418
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::MapFDSError
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NRF5Config::MapFDSError(ret_code_t fdsRes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:427,1
    - Dst: fds_record_find
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:428,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:428,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:428,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::MapFDSError
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:429,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:430,1
    - Dst: fds_record_open
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:433,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::MapFDSError
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:434,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - key
    - ' recDesc'
    - ' rec'
    argTypes:
    - NRF5Config::Key
    - fds_record_desc_t
    - fds_flash_record_t
    constantsTouched: []
    func_position:
      end: 439
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 439
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::OpenRecord
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp
    functionUses: 5
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::NRF5Config::MapFDSError
    - fds_record_find
    - memset
    - fds_record_open
    - SuccessOrExit
    - nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
    - nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NRF5Config::OpenRecord(NRF5Config::Key key, fds_record_desc_t & recDesc,
      fds_flash_record_t & rec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:450,1
    - Dst: fds_record_find
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:455,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::MapFDSError
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:460,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:461,1
    - Dst: fds_record_open
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:464,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::MapFDSError
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:465,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:466,1
    - Dst: funct
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:472,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:473,1
    - Dst: fds_record_close
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:477,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::MapFDSError
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:478,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:479,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:488,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:489,1
    - Dst: fds_record_close
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:496,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 3
    argNames:
    - fileId
    - recordKey
    - funct
    argTypes:
    - uint16_t
    - uint16_t
    - ForEachRecordFunct
    constantsTouched: []
    func_position:
      end: 499
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 499
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::ForEachRecord
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::NRF5Config::MapFDSError
    - funct
    - fds_record_find
    - memset
    - fds_record_open
    - nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
    - fds_record_close
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NRF5Config::ForEachRecord(uint16_t fileId, uint16_t recordKey, ForEachRecordFunct
      funct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:517,1
    - Dst: fds_record_find
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:518,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:519,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::MapFDSError
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:519,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:530,1
    - Dst: fds_init
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:544,1
    - Dst: fds_record_write
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:551,1
    - Dst: fds_record_update
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:557,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:564,1
    - Dst: fds_record_delete
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:568,1
    - Dst: fds_file_delete
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:571,1
    - Dst: fds_gc
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:574,1
    - Dst: WeaveDie
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:582,1
    - Dst: xTaskGetSchedulerState
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:591,1
    - Dst: xSemaphoreTake
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:593,1
    - Dst: xSemaphoreTake
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:598,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:610,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:619,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::MapFDSError
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:619,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:622,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:626,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:627,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:638,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:639,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:650,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::MapFDSError
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:650,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 84
    argCount: 1
    argNames:
    - ' asyncOp'
    argTypes:
    - FDSAsyncOp
    constantsTouched: []
    func_position:
      end: 655
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 655
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp
    functionUses: 10
    functionsReached:
    - xTaskGetSchedulerState
    - nl::Weave::DeviceLayer::Internal::NRF5Config::MapFDSError
    - WeaveLogProgress
    - fds_record_find
    - fds_init
    - VerifyOrExit
    - memset
    - ExitNow
    - nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
    - fds_gc
    - SuccessOrExit
    - fds_record_delete
    - fds_record_write
    - fds_file_delete
    - WeaveDie
    - fds_record_update
    - xSemaphoreTake
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NRF5Config::DoAsyncFDSOp(FDSAsyncOp & asyncOp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xSemaphoreGiveFromISR
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:723,1
    - Dst: xTaskGetSchedulerState
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:726,1
    - Dst: portYIELD_FROM_ISR
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:728,1
    - Dst: xSemaphoreGive
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:735,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 42
    argCount: 1
    argNames:
    - fdsEvent
    argTypes:
    - fds_evt_t*
    constantsTouched: []
    func_position:
      end: 738
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 738
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::HandleFDSEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp
    functionUses: 0
    functionsReached:
    - xTaskGetSchedulerState
    - xSemaphoreGiveFromISR
    - xSemaphoreGive
    - portYIELD_FROM_ISR
    linkageType: ''
    returnType: void
    signature: NRF5Config::HandleFDSEvent(const fds_evt_t * fdsEvent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::nl::Weave::DeviceLayer::Internal::RunConfigUnitTest<NRF5Config>
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:745,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::WriteConfigValueBin
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:773,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:774,1
    - Dst: vTaskDelay
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:776,1
    - Dst: pdMS_TO_TICKS
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:776,1
    - Dst: nl::Weave::DeviceLayer::Internal::NRF5Config::ReadConfigValueBin
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:779,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:780,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:782,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:783,1
    - Dst: memcmp
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp:783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 785
      start: 740
    functionDepth: 2
    functionLinenumber: 740
    functionLinenumberEnd: 785
    functionName: nl::Weave::DeviceLayer::Internal::NRF5Config::RunConfigUnitTest
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - nl::Weave::DeviceLayer::Internal::NRF5Config::WriteConfigValueBin
    - vTaskDelay
    - pdMS_TO_TICKS
    - nl::Weave::DeviceLayer::Internal::NRF5Config::ReadConfigValueBin
    - VerifyOrDie
    - ::nl::Weave::DeviceLayer::Internal::RunConfigUnitTest<NRF5Config>
    linkageType: ''
    returnType: void
    signature: NRF5Config::RunConfigUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ForEachRecord
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:44,1
    - Dst: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKeyId
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:51,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:52,1
    - Dst: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKey
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:58,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:59,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:62,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - keyId
    - ' key'
    argTypes:
    - uint32_t
    - WeaveGroupKey
    constantsTouched: []
    func_position:
      end: 85
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 85
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::RetrieveGroupKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached:
    - ForEachRecord
    - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKey
    - ExitNow
    - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKeyId
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::RetrieveGroupKey(uint32_t keyId, WeaveGroupKey &
      key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteGroupKey
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:94,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:95,1
    - Dst: nrf_malloc
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:98,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:99,1
    - Dst: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::EncodeGroupKey
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:102,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:103,1
    - Dst: FDSWords
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:111,1
    - Dst: DoAsyncFDSOp
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:112,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:113,1
    - Dst: nl::Weave::WeaveKeyId::IsAppEpochKey
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:120,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:122,1
    - Dst: nl::Weave::WeaveKeyId::IsAppGroupMasterKey
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:124,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:126,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:134,1
    - Dst: nl::Weave::WeaveKeyId::DescribeKey
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:135,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:137,1
    - Dst: nl::Weave::WeaveKeyId::DescribeKey
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:138,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:147,1
    - Dst: nrf_free
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - WeaveGroupKey
    constantsTouched: []
    func_position:
      end: 151
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 151
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::StoreGroupKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveKeyId::DescribeKey
    - ClearSecretData
    - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::EncodeGroupKey
    - WeaveLogProgress
    - nrf_free
    - nrf_malloc
    - VerifyOrExit
    - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteGroupKey
    - FDSWords
    - nl::Weave::WeaveKeyId::IsAppEpochKey
    - nl::Weave::WeaveKeyId::IsAppGroupMasterKey
    - snprintf
    - SuccessOrExit
    - DoAsyncFDSOp
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::StoreGroupKey(const WeaveGroupKey & key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ForEachRecord
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:158,1
    - Dst: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKeyId
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:165,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:166,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:173,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 184
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 184
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteGroupKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp
    functionUses: 2
    functionsReached:
    - ForEachRecord
    - WeaveLogProgress
    - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKeyId
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::DeleteGroupKey(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ForEachRecord
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:191,1
    - Dst: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKeyId
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:198,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:199,1
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:203,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:207,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - keyType
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 218
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 218
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteGroupKeysOfAType
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached:
    - ForEachRecord
    - nl::Weave::WeaveKeyId::GetType
    - WeaveLogProgress
    - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKeyId
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::DeleteGroupKeysOfAType(uint32_t keyType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ForEachRecord
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:228,1
    - Dst: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKeyId
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:235,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:236,1
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:239,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:244,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - keyType
    - keyIds
    - keyIdsArraySize
    - ' keyCount'
    argTypes:
    - uint32_t
    - uint32_t*
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 261
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 261
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::EnumerateGroupKeys
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached:
    - ForEachRecord
    - nl::Weave::WeaveKeyId::GetType
    - VerifyOrExit
    - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKeyId
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "GroupKeyStoreImpl::EnumerateGroupKeys(uint32_t keyType, uint32_t *
      keyIds,\n        uint8_t keyIdsArraySize, uint8_t & keyCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ForEachRecord
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:268,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:275,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 281
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 281
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::Clear
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached:
    - ForEachRecord
    - WeaveLogProgress
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 294
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 294
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::RetrieveLastUsedEpochKeyId
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached:
    - ReadConfigValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::RetrieveLastUsedEpochKeyId(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteConfigValue
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::StoreLastUsedEpochKeyId
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached:
    - WriteConfigValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::StoreLastUsedEpochKeyId(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:312,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:314,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:315,1
    - Dst: nl::Weave::Encoding::Write8
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:316,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - ' key'
    - buf
    - bufSize
    - ' encodedKeyLen'
    argTypes:
    - WeaveGroupKey
    - uint8_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 324
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 324
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::EncodeGroupKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Write32
    - memcpy
    - VerifyOrExit
    - nl::Weave::Encoding::Write8
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::EncodeGroupKey(const WeaveGroupKey & key, uint8_t
      * buf, size_t bufSize, size_t & encodedKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:331,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:333,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:334,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:335,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:337,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - encodedKey
    - encodedKeyLen
    - ' key'
    argTypes:
    - uint8_t*
    - size_t
    - WeaveGroupKey
    constantsTouched: []
    func_position:
      end: 343
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 343
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKey
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Encoding::Read8
    - VerifyOrExit
    - memcpy
    - nl::Weave::Encoding::LittleEndian::Read32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::DecodeGroupKey(const uint8_t * encodedKey, size_t
      encodedKeyLen, WeaveGroupKey & key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:349,1
    - Dst: nl::Weave::Encoding::LittleEndian::Get32
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - encodedKey
    - encodedKeyLen
    - ' keyId'
    argTypes:
    - uint8_t*
    - size_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 355
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 355
    functionName: nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKeyId
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp
    functionUses: 8
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Get32
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreImpl::DecodeGroupKeyId(const uint8_t * encodedKey, size_t
      encodedKeyLen, uint32_t & keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericNetworkProvisioningServerImpl<NetworkProvisioningServerImpl>::DoInit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/NetworkProvisioningServerImpl.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::_Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/NetworkProvisioningServerImpl.cpp
    functionUses: 0
    functionsReached:
    - GenericNetworkProvisioningServerImpl<NetworkProvisioningServerImpl>::DoInit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkProvisioningServerImpl::_Init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Entropy.cpp:76,1
    - Dst: nl::Weave::DeviceLayer::ThreadStackManagerImpl::IsInitialized
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Entropy.cpp:81,1
    - Dst: ThreadStackMgr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Entropy.cpp:83,1
    - Dst: sd_rand_application_bytes_available_get
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Entropy.cpp:95,1
    - Dst: otPlatRandomGetTrue
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Entropy.cpp:123,1
    - Dst: nl::Weave::DeviceLayer::ThreadStackManagerImpl::IsInitialized
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Entropy.cpp:129,1
    - Dst: ThreadStackMgr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Entropy.cpp:131,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - buf
    - count
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 136
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 136
    functionName: nl::Weave::DeviceLayer::Internal::GetEntropy_nRF5
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/Entropy.cpp
    functionUses: 0
    functionsReached:
    - ThreadStackMgr
    - otPlatRandomGetTrue
    - nl::Weave::DeviceLayer::ThreadStackManagerImpl::IsInitialized
    - sd_rand_application_bytes_available_get
    - VerifyOrDie
    linkageType: ''
    returnType: int
    signature: GetEntropy_nRF5(uint8_t * buf, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::Security::InitSecureRandomDataSource
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Entropy.cpp:143,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Entropy.cpp:144,1
    - Dst: nl::Weave::Platform::Security::GetSecureRandomData
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Entropy.cpp:149,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Entropy.cpp:150,1
    - Dst: srand
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Entropy.cpp:151,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Entropy.cpp:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 160
    functionName: nl::Weave::DeviceLayer::Internal::InitEntropy
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/Entropy.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - nl::Weave::Platform::Security::GetSecureRandomData
    - nl::Weave::Platform::Security::InitSecureRandomDataSource
    - SuccessOrExit
    - srand
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: InitEntropy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_Weave_Stack_Init
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConnectivityManagerImpl.cpp:69,1
    - Dst: nl::Weave::Warm::Init
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConnectivityManagerImpl.cpp:73,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConnectivityManagerImpl.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - nl_Weave_Stack_Init
    - nl::Weave::Warm::Init
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConnectivityManagerImpl::_Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::_OnPlatformEvent
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/ConnectivityManagerImpl.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: nl::Weave::DeviceLayer::ConnectivityManagerImpl::_OnPlatformEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/ConnectivityManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::_OnPlatformEvent
    linkageType: ''
    returnType: void
    signature: ConnectivityManagerImpl::_OnPlatformEvent(const WeaveDeviceEvent *
      event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sd_ble_uuid_vs_add
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:70,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ' uuid'
    - ' vendorUUID'
    argTypes:
    - ble_uuid_t
    - ble_uuid128_t
    constantsTouched: []
    func_position:
      end: 77
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 77
    functionName: nl::Weave::DeviceLayer::Internal::RegisterVendorUUID
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - SuccessOrExit
    - sd_ble_uuid_vs_add
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: RegisterVendorUUID(ble_uuid_t & uuid, const ble_uuid128_t & vendorUUID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Ble::BleLayer::Init
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:100,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:101,1
    - Dst: RegisterVendorUUID
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:107,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:108,1
    - Dst: RegisterVendorUUID
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:109,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:110,1
    - Dst: sd_ble_gatts_service_add
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:113,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:114,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:117,1
    - Dst: characteristic_add
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:128,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:129,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:132,1
    - Dst: characteristic_add
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:143,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:144,1
    - Dst: nrf_ble_gatt_init
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:148,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:149,1
    - Dst: nrf_ble_gatt_att_mtu_periph_set
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:150,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:151,1
    - Dst: nrf_ble_gatt_data_length_set
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:152,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:153,1
    - Dst: NRF_SDH_BLE_OBSERVER
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:156,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetDeviceName
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:159,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:160,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:164,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 169
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - nrf_ble_gatt_data_length_set
    - NRF_SDH_BLE_OBSERVER
    - WeaveLogProgress
    - RegisterVendorUUID
    - nrf_ble_gatt_init
    - memset
    - nl::Ble::BleLayer::Init
    - SuccessOrExit
    - nrf_ble_gatt_att_mtu_periph_set
    - sd_ble_gatts_service_add
    - characteristic_add
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetDeviceName
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::_Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:175,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:176,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - val
    argTypes:
    - WoBLEServiceMode
    constantsTouched: []
    func_position:
      end: 186
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 186
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetWoBLEServiceMode
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::_SetWoBLEServiceMode(WoBLEServiceMode val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:192,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:194,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:196,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 202
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 202
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - GetFlag
    - VerifyOrExit
    - SetFlag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::_SetAdvertisingEnabled(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:208,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:210,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:212,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 218
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 218
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetFastAdvertisingEnabled
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - PlatformMgr
    - GetFlag
    - VerifyOrExit
    - SetFlag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::_SetFastAdvertisingEnabled(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sd_ble_gap_device_name_get
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:225,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 232
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 232
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_GetDeviceName
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - sd_ble_gap_device_name_get
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::_GetDeviceName(char * buf, size_t bufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:240,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:244,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:244,1
    - Dst: strcpy
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:245,1
    - Dst: snprintf
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:249,1
    - Dst: BLE_GAP_CONN_SEC_MODE_SET_NO_ACCESS
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:256,1
    - Dst: sd_ble_gap_device_name_set
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:259,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:259,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - devName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 264
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 264
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetDeviceName
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - sd_ble_gap_device_name_set
    - BLE_GAP_CONN_SEC_MODE_SET_NO_ACCESS
    - VerifyOrExit
    - strlen
    - snprintf
    - SuccessOrExit
    - strcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::_SetDeviceName(const char * devName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleSoftDeviceBLEEvent
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:271,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleRXCharWrite
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:275,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:279,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:290,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:292,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:293,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:298,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::DriveBLEState
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:300,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 307
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 307
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_OnPlatformEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - ConfigurationMgr
    - WeaveLogProgress
    - ClearFlag
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleRXCharWrite
    - SetFlag
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::DriveBLEState
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleSoftDeviceBLEEvent
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::_OnPlatformEvent(const WeaveDeviceEvent * event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - conId
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveBleUUID*
    - WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 313
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 313
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SubscribeCharacteristic
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::SubscribeCharacteristic(BLE_CONNECTION_OBJECT conId,
      const WeaveBleUUID * svcId, const WeaveBleUUID * charId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - conId
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveBleUUID*
    - WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 319
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 319
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::UnsubscribeCharacteristic
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::UnsubscribeCharacteristic(BLE_CONNECTION_OBJECT conId,
      const WeaveBleUUID * svcId, const WeaveBleUUID * charId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:325,1
    - Dst: sd_ble_gap_disconnect
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:328,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:331,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - conId
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 335
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 335
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::CloseConnection
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - WeaveLogError
    - ErrorStr
    - sd_ble_gap_disconnect
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::CloseConnection(BLE_CONNECTION_OBJECT conId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nrf_ble_gatt_eff_mtu_get
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conId
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetMTU
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - nrf_ble_gatt_eff_mtu_get
    linkageType: ''
    returnType: uint16_t
    signature: BLEManagerImpl::GetMTU(BLE_CONNECTION_OBJECT conId) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:348,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::IsSubscribed
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:348,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:350,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:354,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:359,1
    - Dst: sd_ble_gatts_hvx
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:360,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:361,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:364,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:367,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 4
    argNames:
    - conId
    - svcId
    - charId
    - data
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveBleUUID*
    - WeaveBleUUID*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 371
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 371
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendIndication
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - sd_ble_gatts_hvx
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - memset
    - SuccessOrExit
    - WeaveLogDetail
    - PacketBuffer*::Start
    - ErrorStr
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::IsSubscribed
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::SendIndication(BLE_CONNECTION_OBJECT conId, const WeaveBleUUID
      * svcId, const WeaveBleUUID * charId, PacketBuffer * data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - conId
    - svcId
    - charId
    - pBuf
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveBleUUID*
    - WeaveBleUUID*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 377
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 377
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendWriteRequest
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::SendWriteRequest(BLE_CONNECTION_OBJECT conId, const
      WeaveBleUUID * svcId, const WeaveBleUUID * charId, PacketBuffer * pBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - conId
    - svcId
    - charId
    - pBuf
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveBleUUID*
    - WeaveBleUUID*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 383
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 383
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendReadRequest
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::SendReadRequest(BLE_CONNECTION_OBJECT conId, const
      WeaveBleUUID * svcId, const WeaveBleUUID * charId, PacketBuffer * pBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - conId
    - requestContext
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - BLE_READ_REQUEST_CONTEXT
    - WeaveBleUUID*
    - WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 389
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 389
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendReadResponse
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::SendReadResponse(BLE_CONNECTION_OBJECT conId, BLE_READ_REQUEST_CONTEXT
      requestContext, const WeaveBleUUID * svcId, const WeaveBleUUID * charId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - conId
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 394
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 394
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::NotifyWeaveConnectionClosed
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::NotifyWeaveConnectionClosed(BLE_CONNECTION_OBJECT conId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:401,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:403,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:408,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:410,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:411,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:417,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:426,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:426,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::StartAdvertising
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:428,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:429,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::StopAdvertising
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:436,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:437,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:443,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:443,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 446
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 446
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::DriveBLEState
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 4
    functionsReached:
    - WeaveLogError
    - ConfigurationMgr
    - WeaveLogProgress
    - ClearFlag
    - GetFlag
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::StopAdvertising
    - SetFlag
    - SuccessOrExit
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::StartAdvertising
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::DriveBLEState(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:458,1
    - Dst: ThreadStackMgr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:460,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:465,1
    - Dst: sd_ble_gap_adv_stop
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:473,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:478,1
    - Dst: sd_ble_gap_adv_set_configure
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:483,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:484,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::EncodeAdvertisingData
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:488,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:489,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:492,1
    - Dst: NumConnections
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:500,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:509,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:509,1
    - Dst: GetDeviceName
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:517,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:518,1
    - Dst: sd_ble_gap_adv_set_configure
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:528,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:531,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:531,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:533,1
    - Dst: sd_ble_gap_adv_start
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:536,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:539,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:539,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:541,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:544,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:546,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:548,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:555,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 561
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 561
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::StartAdvertising
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 3
    functionsReached:
    - PlatformMgr
    - WeaveLogError
    - ConfigurationMgr
    - sd_ble_gap_adv_stop
    - WeaveLogProgress
    - ClearFlag
    - ThreadStackMgr
    - GetFlag
    - memset
    - GetDeviceName
    - sd_ble_gap_adv_set_configure
    - SetFlag
    - SuccessOrExit
    - sd_ble_gap_adv_start
    - ErrorStr
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::EncodeAdvertisingData
    - NumConnections
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::StartAdvertising(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:568,1
    - Dst: sd_ble_gap_adv_stop
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:574,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:579,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:582,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:584,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:586,1
    - Dst: ThreadStackMgr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:590,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 604
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 604
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::StopAdvertising
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 2
    functionsReached:
    - PlatformMgr
    - sd_ble_gap_adv_stop
    - WeaveLogProgress
    - ClearFlag
    - GetFlag
    - ThreadStackMgr
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::StopAdvertising(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:614,1
    - Dst: ble_advdata_encode
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:622,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:623,1
    - Dst: ConfigurationMgr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:627,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:628,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:631,1
    - Dst: memset
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:635,1
    - Dst: ble_advdata_encode
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:642,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - ' gapAdvData'
    argTypes:
    - ble_gap_adv_data_t
    constantsTouched: []
    func_position:
      end: 647
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 647
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::EncodeAdvertisingData
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - ble_advdata_encode
    - ConfigurationMgr
    - memset
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::EncodeAdvertisingData(ble_gap_adv_data_t & gapAdvData)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 660
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 660
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_NumConnections
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: BLEManagerImpl::_NumConnections(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::DriveBLEState
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - intptr_t
    constantsTouched: []
    func_position:
      end: 665
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 665
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::DriveBLEState
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 5
    functionsReached:
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::DriveBLEState
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::DriveBLEState(intptr_t arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:672,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleGAPConnect
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:677,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:678,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleGAPDisconnect
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:682,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:683,1
    - Dst: sd_ble_gap_sec_params_reply
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:688,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:692,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:697,1
    - Dst: sd_ble_gap_phy_update
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:699,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:700,1
    - Dst: sd_ble_gatts_sys_attr_set
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:705,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:706,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:710,1
    - Dst: sd_ble_gap_disconnect
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:711,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:713,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharCCCDWrite
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:721,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:722,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXComplete
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:727,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:728,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:738,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:738,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:740,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 742
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 742
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleSoftDeviceBLEEvent
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - PlatformMgr
    - WeaveLogError
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleGAPDisconnect
    - sd_ble_gatts_sys_attr_set
    - WeaveLogProgress
    - sd_ble_gap_disconnect
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXComplete
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharCCCDWrite
    - WeaveLogDetail
    - SuccessOrExit
    - sd_ble_gap_sec_params_reply
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleGAPConnect
    - sd_ble_gap_phy_update
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::HandleSoftDeviceBLEEvent(const WeaveDeviceEvent * event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:761,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:767,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:767,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:768,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:793,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:796,1
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:801,1
    - Dst: PlatformMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:807,1
    - Dst: portYIELD_FROM_ISR
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:808,1
    - Dst: PlatformMgrImpl
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:810,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - bleEvent
    - context
    argTypes:
    - ble_evt_t*
    - void*
    constantsTouched: []
    func_position:
      end: 815
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 815
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SoftDeviceBLEEventCallback
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - pbuf_alloc
    - VerifyOrExit
    - memcpy
    - portYIELD_FROM_ISR
    - PacketBuffer*::Start
    - PlatformMgrImpl
    linkageType: ''
    returnType: void
    signature: BLEManagerImpl::SoftDeviceBLEEventCallback(const ble_evt_t * bleEvent,
      void * context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:821,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:829,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 835
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 835
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleGAPConnect
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    - PlatformMgr
    - SetFlag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::HandleGAPConnect(const WeaveDeviceEvent * event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:841,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::UnsetSubscribed
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:851,1
    - Dst: HandleConnectionError
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:866,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:871,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:872,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 875
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 875
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleGAPDisconnect
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - PlatformMgr
    - WeaveLogProgress
    - SetFlag
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::UnsetSubscribed
    - HandleConnectionError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::HandleGAPDisconnect(const WeaveDeviceEvent * event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:883,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:890,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:891,1
    - Dst: HandleWriteReceived
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:894,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 900
      start: 877
    functionDepth: 2
    functionLinenumber: 877
    functionLinenumberEnd: 900
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleRXCharWrite
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 3
    functionsReached:
    - PacketBuffer*::DataLength
    - HandleWriteReceived
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::HandleRXCharWrite(const WeaveDeviceEvent * event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:915,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:918,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:922,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:924,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::IsSubscribed
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:933,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SetSubscribed
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:937,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:938,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:939,1
    - Dst: HandleSubscribeReceived
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:942,1
    - Dst: nrf_ble_gatt_eff_mtu_get
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:949,1
    - Dst: nrf_ble_gatt_data_length_get
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:950,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:951,1
    - Dst: PlatformMgr
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:960,1
    - Dst: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::UnsetSubscribed
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:969,1
    - Dst: HandleUnsubscribeReceived
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:971,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 977
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 977
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharCCCDWrite
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 3
    functionsReached:
    - PlatformMgr
    - nrf_ble_gatt_data_length_get
    - WeaveLogProgress
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SetSubscribed
    - HandleUnsubscribeReceived
    - VerifyOrExit
    - HandleSubscribeReceived
    - nrf_ble_gatt_eff_mtu_get
    - WeaveLogDetail
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::UnsetSubscribed
    - SuccessOrExit
    - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::IsSubscribed
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::HandleTXCharCCCDWrite(const WeaveDeviceEvent * event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:983,1
    - Dst: HandleIndicationConfirmation
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp:986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - event
    argTypes:
    - WeaveDeviceEvent*
    constantsTouched: []
    func_position:
      end: 989
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 989
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXComplete
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached:
    - HandleIndicationConfirmation
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::HandleTXComplete(const WeaveDeviceEvent * event)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - conId
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1016
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 1016
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SetSubscribed
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BLEManagerImpl::SetSubscribed(uint16_t conId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - conId
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1029
      start: 1018
    functionDepth: 0
    functionLinenumber: 1018
    functionLinenumberEnd: 1029
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::UnsetSubscribed
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::UnsetSubscribed(uint16_t conId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - conId
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1044
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1044
    functionName: nl::Weave::DeviceLayer::Internal::BLEManagerImpl::IsSubscribed
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: BLEManagerImpl::IsSubscribed(uint16_t conId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:52,1
    - Dst: nl::Weave::Logging::GetModuleName
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - module
    argTypes:
    - char*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: GetModuleName
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp
    functionUses: 6
    functionsReached:
    - nl::Weave::Logging::GetModuleName
    - memcpy
    linkageType: ''
    returnType: void
    signature: GetModuleName(char *buf, uint8_t module)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: nl::Weave::DeviceLayer::OnLogOutput
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: OnLogOutput(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:97,1
    - Dst: IsCategoryEnabled
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:101,1
    - Dst: nl::Weave::Logging::GetModuleName
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:112,1
    - Dst: strlen
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:113,1
    - Dst: vsnprintf
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:118,1
    - Dst: NRF_LOG_ERROR
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:123,1
    - Dst: NRF_LOG_PUSH
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:123,1
    - Dst: NRF_LOG_INFO
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:128,1
    - Dst: NRF_LOG_PUSH
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:128,1
    - Dst: NRF_LOG_DEBUG
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:131,1
    - Dst: NRF_LOG_PUSH
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:131,1
    - Dst: nl::Weave::DeviceLayer::OnLogOutput
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:137,1
    - Dst: va_end
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - module
    - category
    - msg
    argTypes:
    - uint8_t
    - uint8_t
    - char*
    constantsTouched: []
    func_position:
      end: 143
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 143
    functionName: nl::Weave::Logging::Log
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp
    functionUses: 0
    functionsReached:
    - NRF_LOG_PUSH
    - vsnprintf
    - va_end
    - nl::Weave::Logging::GetModuleName
    - va_start
    - NRF_LOG_DEBUG
    - IsCategoryEnabled
    - strlen
    - nl::Weave::DeviceLayer::OnLogOutput
    - NRF_LOG_ERROR
    - NRF_LOG_INFO
    linkageType: ''
    returnType: void
    signature: Log(uint8_t module, uint8_t category, const char *msg, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:162,1
    - Dst: isspace
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:171,1
    - Dst: NRF_LOG_DEBUG
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:178,1
    - Dst: NRF_LOG_PUSH
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:178,1
    - Dst: nl::Weave::DeviceLayer::OnLogOutput
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:182,1
    - Dst: va_end
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 187
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 187
    functionName: LwIPLog
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp
    functionUses: 0
    functionsReached:
    - NRF_LOG_PUSH
    - isspace
    - va_end
    - NRF_LOG_DEBUG
    - va_start
    - nl::Weave::DeviceLayer::OnLogOutput
    linkageType: ''
    returnType: void
    signature: LwIPLog(const char *msg, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:203,1
    - Dst: vsnprintf
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:210,1
    - Dst: NRF_LOG_ERROR
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:215,1
    - Dst: NRF_LOG_PUSH
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:215,1
    - Dst: NRF_LOG_WARNING
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:218,1
    - Dst: NRF_LOG_PUSH
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:218,1
    - Dst: NRF_LOG_INFO
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:223,1
    - Dst: NRF_LOG_PUSH
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:223,1
    - Dst: NRF_LOG_DEBUG
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:226,1
    - Dst: NRF_LOG_PUSH
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:226,1
    - Dst: nl::Weave::DeviceLayer::OnLogOutput
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:232,1
    - Dst: va_end
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp:236,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - aLogLevel
    - aLogRegion
    - aFormat
    argTypes:
    - otLogLevel
    - otLogRegion
    - char*
    constantsTouched: []
    func_position:
      end: 237
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 237
    functionName: otPlatLog
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp
    functionUses: 0
    functionsReached:
    - NRF_LOG_PUSH
    - vsnprintf
    - va_end
    - va_start
    - NRF_LOG_DEBUG
    - nl::Weave::DeviceLayer::OnLogOutput
    - NRF_LOG_INFO
    - NRF_LOG_ERROR
    - NRF_LOG_WARNING
    linkageType: ''
    returnType: void
    signature: otPlatLog(otLogLevel aLogLevel, otLogRegion aLogRegion, const char
      *aFormat, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterErrorFormatter
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Utils.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: nl::Weave::DeviceLayer::Internal::RegisterNRFErrorFormatter
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Utils.cpp
    functionUses: 1
    functionsReached:
    - RegisterErrorFormatter
    linkageType: ''
    returnType: void
    signature: RegisterNRFErrorFormatter(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::FormatError
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Utils.cpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - buf
    - bufSize
    - err
    argTypes:
    - char*
    - uint16_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 80
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 80
    functionName: nl::Weave::DeviceLayer::Internal::FormatNRFError
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Utils.cpp
    functionUses: 0
    functionsReached:
    - nl::FormatError
    linkageType: ''
    returnType: bool
    signature: FormatNRFError(char * buf, uint16_t bufSize, int32_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Internal::GenericSoftwareUpdateManagerImpl_BDX<SoftwareUpdateManagerImpl>::DoInit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/SoftwareUpdateManagerImpl.cpp:38,1
    - Dst: Internal::GenericSoftwareUpdateManagerImpl<SoftwareUpdateManagerImpl>::DoInit
      Src: /src/openweave-core/src/adaptations/device-layer/nRF5/SoftwareUpdateManagerImpl.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl::_Init
    functionSourceFile: /src/openweave-core/src/adaptations/device-layer/nRF5/SoftwareUpdateManagerImpl.cpp
    functionUses: 0
    functionsReached:
    - Internal::GenericSoftwareUpdateManagerImpl<SoftwareUpdateManagerImpl>::DoInit
    - Internal::GenericSoftwareUpdateManagerImpl_BDX<SoftwareUpdateManagerImpl>::DoInit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SoftwareUpdateManagerImpl::_Init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 522
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 522
    functionName: nl::Weave::WeaveSecurityManager
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveSecurityMgr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeaveSecurityManager
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FormatError
      Src: /src/openweave-core/src/lib/core/WeaveError.cpp:240,1
    CyclomaticComplexity: 183
    EdgeCount: 183
    ICount: 548
    argCount: 3
    argNames:
    - buf
    - bufSize
    - err
    argTypes:
    - char*
    - uint16_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 243
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 243
    functionName: nl::Weave::FormatWeaveError
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveError.cpp
    functionUses: 0
    functionsReached:
    - FormatError
    linkageType: ''
    returnType: bool
    signature: FormatWeaveError(char * buf, uint16_t bufSize, int32_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - profileId
    - tagNum
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: nl::Weave::TLV::ProfileTag
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVTags.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: ProfileTag(uint32_t profileId, uint32_t tagNum)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - vendorId
    - profileNum
    - tagNum
    argTypes:
    - uint16_t
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: nl::Weave::TLV::ProfileTag
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVTags.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tagNum
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: nl::Weave::TLV::ContextTag
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVTags.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: ContextTag(uint8_t tagNum)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::ProfileTag
      Src: /src/openweave-core/src/lib/core/WeaveTLVTags.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tagNum
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: nl::Weave::TLV::CommonTag
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVTags.h
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::ProfileTag
    linkageType: ''
    returnType: uint64_t
    signature: CommonTag(uint32_t tagNum)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: nl::Weave::TLV::ProfileIdFromTag
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVTags.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: ProfileIdFromTag(uint64_t tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: nl::Weave::TLV::ProfileNumFromTag
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVTags.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: ProfileNumFromTag(uint64_t tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: nl::Weave::TLV::TagNumFromTag
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVTags.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: TagNumFromTag(uint64_t tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: nl::Weave::TLV::VendorIdFromTag
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVTags.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: VendorIdFromTag(uint64_t tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    functionName: nl::Weave::TLV::IsProfileTag
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVTags.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsProfileTag(uint64_t tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TagNumFromTag
      Src: /src/openweave-core/src/lib/core/WeaveTLVTags.h:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 180
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: nl::Weave::TLV::IsContextTag
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVTags.h
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TagNumFromTag
    linkageType: ''
    returnType: bool
    signature: IsContextTag(uint64_t tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: nl::Weave::TLV::IsSpecialTag
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVTags.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsSpecialTag(uint64_t tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - inBuffer
    - inBufferLength
    - inHead
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 70
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 70
    functionName: nl::Weave::TLV::WeaveCircularTLVBuffer::WeaveCircularTLVBuffer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveCircularTLVBuffer::WeaveCircularTLVBuffer(uint8_t *inBuffer, size_t
      inBufferLength, uint8_t *inHead)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - inBuffer
    - inBufferLength
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 94
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 94
    functionName: nl::Weave::TLV::WeaveCircularTLVBuffer::WeaveCircularTLVBuffer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveCircularTLVBuffer::WeaveCircularTLVBuffer(uint8_t *inBuffer, size_t
      inBufferLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CircularTLVReader::Init
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:123,1
    - Dst: CircularTLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:127,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:128,1
    - Dst: CircularTLVReader::Skip
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:131,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:132,1
    - Dst: CircularTLVReader::GetLengthRead
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:135,1
    - Dst: const_cast<uint8_t *>
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:136,1
    - Dst: CircularTLVReader::GetReadPoint
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:136,1
    - Dst: CircularTLVReader::Init
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:143,1
    - Dst: mProcessEvictedElement
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:146,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 156
    functionName: nl::Weave::TLV::WeaveCircularTLVBuffer::EvictHead
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp
    functionUses: 0
    functionsReached:
    - CircularTLVReader::Skip
    - CircularTLVReader::GetReadPoint
    - CircularTLVReader::GetLengthRead
    - CircularTLVReader::Init
    - SuccessOrExit
    - const_cast<uint8_t *>
    - CircularTLVReader::Next
    - mProcessEvictedElement
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCircularTLVBuffer::EvictHead(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::WeaveCircularTLVBuffer::EvictHead
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:183,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - ' ioWriter'
    - ' outBufStart'
    - ' outBufLen'
    argTypes:
    - TLVWriter
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 201
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 201
    functionName: nl::Weave::TLV::WeaveCircularTLVBuffer::GetNewBuffer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::WeaveCircularTLVBuffer::EvictHead
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCircularTLVBuffer::GetNewBuffer(TLVWriter& ioWriter, uint8_t *&
      outBufStart, uint32_t& outBufLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' ioWriter'
    - inBufStart
    - inBufLen
    argTypes:
    - TLVWriter
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 237
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 237
    functionName: nl::Weave::TLV::WeaveCircularTLVBuffer::FinalizeBuffer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCircularTLVBuffer::FinalizeBuffer(TLVWriter& ioWriter, uint8_t
      *inBufStart, uint32_t inBufLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - ' ioReader'
    - ' outBufStart'
    - ' outBufLen'
    argTypes:
    - TLVReader
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 305
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 305
    functionName: nl::Weave::TLV::WeaveCircularTLVBuffer::GetNextBuffer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCircularTLVBuffer::GetNextBuffer(TLVReader& ioReader, const uint8_t
      *& outBufStart, uint32_t & outBufLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:330,1
    - Dst: static_cast<WeaveCircularTLVBuffer *>
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:332,1
    - Dst: WeaveCircularTLVBuffer*::GetNewBuffer
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - ' ioWriter'
    - ' inBufHandle'
    - outBufStart
    - ' outBufLen'
    argTypes:
    - TLVWriter
    - uintptr_t
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 338
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 338
    functionName: nl::Weave::TLV::WeaveCircularTLVBuffer::GetNewBufferFunct
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp
    functionUses: 0
    functionsReached:
    - WeaveCircularTLVBuffer*::GetNewBuffer
    - VerifyOrExit
    - static_cast<WeaveCircularTLVBuffer *>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCircularTLVBuffer::GetNewBufferFunct(TLVWriter& ioWriter, uintptr_t&
      inBufHandle, uint8_t *&outBufStart, uint32_t& outBufLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:362,1
    - Dst: static_cast<WeaveCircularTLVBuffer *>
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:364,1
    - Dst: WeaveCircularTLVBuffer*::FinalizeBuffer
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - ' ioWriter'
    - inBufHandle
    - inBufStart
    - inBufLen
    argTypes:
    - TLVWriter
    - uintptr_t
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 370
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 370
    functionName: nl::Weave::TLV::WeaveCircularTLVBuffer::FinalizeBufferFunct
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp
    functionUses: 0
    functionsReached:
    - WeaveCircularTLVBuffer*::FinalizeBuffer
    - VerifyOrExit
    - static_cast<WeaveCircularTLVBuffer *>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCircularTLVBuffer::FinalizeBufferFunct(TLVWriter& ioWriter, uintptr_t
      inBufHandle, uint8_t *inBufStart, uint32_t inBufLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:395,1
    - Dst: static_cast<WeaveCircularTLVBuffer *>
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:397,1
    - Dst: WeaveCircularTLVBuffer*::GetNextBuffer
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - ' ioReader'
    - inBufHandle
    - outBufStart
    - outBufLen
    argTypes:
    - TLVReader
    - uintptr_t
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 403
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 403
    functionName: nl::Weave::TLV::WeaveCircularTLVBuffer::GetNextBufferFunct
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp
    functionUses: 0
    functionsReached:
    - WeaveCircularTLVBuffer*::GetNextBuffer
    - VerifyOrExit
    - static_cast<WeaveCircularTLVBuffer *>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCircularTLVBuffer::GetNextBufferFunct(TLVReader& ioReader, uintptr_t
      &inBufHandle, const uint8_t *&outBufStart, uint32_t &outBufLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:426,1
    - Dst: SetCloseContainerReserved
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:427,1
    - Dst: GetNewBuffer
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - buf
    argTypes:
    - WeaveCircularTLVBuffer*
    constantsTouched: []
    func_position:
      end: 435
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 435
    functionName: nl::Weave::TLV::CircularTLVWriter::Init
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp
    functionUses: 0
    functionsReached:
    - SetCloseContainerReserved
    - SetContainerOpen
    - GetNewBuffer
    linkageType: ''
    returnType: void
    signature: CircularTLVWriter::Init(WeaveCircularTLVBuffer *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetNextBuffer
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:457,1
    - Dst: WeaveCircularTLVBuffer*::DataLength
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:459,1
    - Dst: SetContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - buf
    argTypes:
    - WeaveCircularTLVBuffer*
    constantsTouched: []
    func_position:
      end: 467
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 467
    functionName: nl::Weave::TLV::CircularTLVReader::Init
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp
    functionUses: 0
    functionsReached:
    - GetNextBuffer
    - SetContainerOpen
    - WeaveCircularTLVBuffer*::DataLength
    linkageType: ''
    returnType: void
    signature: CircularTLVReader::Init(WeaveCircularTLVBuffer *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:173,1
    - Dst: SetCloseContainerReserved
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - maxLen
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 179
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 179
    functionName: nl::Weave::TLV::TLVWriter::Init
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 9
    functionsReached:
    - SetCloseContainerReserved
    - SetContainerOpen
    linkageType: ''
    returnType: void
    signature: TLVWriter::Init(uint8_t *buf, uint32_t maxLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:192,1
    - Dst: SetContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:197,1
    - Dst: SetCloseContainerReserved
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - ' outBuf'
    - initialBufSize
    - maxLen
    argTypes:
    - uint8_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 203
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 203
    functionName: nl::Weave::TLV::TLVWriter::InitMalloced
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 0
    functionsReached:
    - SetCloseContainerReserved
    - malloc
    - SetContainerOpen
    linkageType: ''
    returnType: void
    signature: TLVWriter::InitMalloced(uint8_t *& outBuf, uint32_t initialBufSize,
      uint32_t maxLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:221,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:221,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:222,1
    - Dst: SetContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:228,1
    - Dst: SetCloseContainerReserved
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - maxLen
    argTypes:
    - PacketBuffer*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 234
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 234
    functionName: nl::Weave::TLV::TLVWriter::Init
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 9
    functionsReached:
    - PacketBuffer*::DataLength
    - SetContainerOpen
    - SetCloseContainerReserved
    - PacketBuffer*::Start
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: void
    signature: TLVWriter::Init(PacketBuffer *buf, uint32_t maxLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - buf
    - maxLen
    - allowDiscontiguousBuffers
    argTypes:
    - PacketBuffer*
    - uint32_t
    - bool
    constantsTouched: []
    func_position:
      end: 269
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 269
    functionName: nl::Weave::TLV::TLVWriter::Init
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 10
    functionsReached:
    - nl::Weave::TLV::TLVWriter::Init
    linkageType: ''
    returnType: void
    signature: TLVWriter::Init(PacketBuffer *buf, uint32_t maxLen, bool allowDiscontiguousBuffers)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: nl::Weave::TLV::TLVWriter::GetLengthWritten
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: TLVWriter::GetLengthWritten()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:299,1
    - Dst: FinalizeBuffer
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 304
    functionName: nl::Weave::TLV::TLVWriter::Finalize
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 9
    functionsReached:
    - FinalizeBuffer
    - IsContainerOpen
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::Finalize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementHead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - v
    argTypes:
    - uint64_t
    - bool
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: nl::Weave::TLV::TLVWriter::PutBoolean
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::TLVWriter::WriteElementHead
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::PutBoolean(uint64_t tag, bool v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:365,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - v
    argTypes:
    - uint64_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: nl::Weave::TLV::TLVWriter::Put
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint64_t>
    - nl::Weave::TLV::TLVWriter::Put
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::Put(uint64_t tag, uint8_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementHead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:401,1
    - Dst: nl::Weave::TLV::TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - tag
    - v
    - preserveSize
    argTypes:
    - uint64_t
    - uint8_t
    - bool
    constantsTouched: []
    func_position:
      end: 404
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 404
    functionName: nl::Weave::TLV::TLVWriter::Put
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::TLV::TLVWriter::WriteElementHead
    - nl::Weave::TLV::TLVWriter::Put
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::Put(uint64_t tag, uint8_t v, bool preserveSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:411,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - v
    argTypes:
    - uint64_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: nl::Weave::TLV::TLVWriter::Put
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint64_t>
    - nl::Weave::TLV::TLVWriter::Put
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::Put(uint64_t tag, uint16_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementHead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:420,1
    - Dst: nl::Weave::TLV::TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - tag
    - v
    - preserveSize
    argTypes:
    - uint64_t
    - uint16_t
    - bool
    constantsTouched: []
    func_position:
      end: 423
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 423
    functionName: nl::Weave::TLV::TLVWriter::Put
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 5
    functionsReached:
    - nl::Weave::TLV::TLVWriter::WriteElementHead
    - nl::Weave::TLV::TLVWriter::Put
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::Put(uint64_t tag, uint16_t v, bool preserveSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:430,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - v
    argTypes:
    - uint64_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 431
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 431
    functionName: nl::Weave::TLV::TLVWriter::Put
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 6
    functionsReached:
    - static_cast<uint64_t>
    - nl::Weave::TLV::TLVWriter::Put
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::Put(uint64_t tag, uint32_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementHead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:439,1
    - Dst: nl::Weave::TLV::TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - tag
    - v
    - preserveSize
    argTypes:
    - uint64_t
    - uint32_t
    - bool
    constantsTouched: []
    func_position:
      end: 442
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 442
    functionName: nl::Weave::TLV::TLVWriter::Put
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 7
    functionsReached:
    - nl::Weave::TLV::TLVWriter::WriteElementHead
    - nl::Weave::TLV::TLVWriter::Put
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::Put(uint64_t tag, uint32_t v, bool preserveSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementHead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - tag
    - v
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 459
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 459
    functionName: nl::Weave::TLV::TLVWriter::Put
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 7
    functionsReached:
    - nl::Weave::TLV::TLVWriter::WriteElementHead
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::Put(uint64_t tag, uint64_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementHead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:467,1
    - Dst: nl::Weave::TLV::TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - tag
    - v
    - preserveSize
    argTypes:
    - uint64_t
    - uint64_t
    - bool
    constantsTouched: []
    func_position:
      end: 470
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 470
    functionName: nl::Weave::TLV::TLVWriter::Put
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 8
    functionsReached:
    - nl::Weave::TLV::TLVWriter::WriteElementHead
    - nl::Weave::TLV::TLVWriter::Put
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::Put(uint64_t tag, uint64_t v, bool preserveSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:500,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - v
    argTypes:
    - uint64_t
    - int8_t
    constantsTouched: []
    func_position:
      end: 501
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 501
    functionName: nl::Weave::TLV::TLVWriter::Put
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 9
    functionsReached:
    - static_cast<int64_t>
    - nl::Weave::TLV::TLVWriter::Put
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::Put(uint64_t tag, int8_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementHead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:536,1
    - Dst: nl::Weave::TLV::TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - tag
    - v
    - preserveSize
    argTypes:
    - uint64_t
    - int8_t
    - bool
    constantsTouched: []
    func_position:
      end: 539
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 539
    functionName: nl::Weave::TLV::TLVWriter::Put
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 10
    functionsReached:
    - nl::Weave::TLV::TLVWriter::WriteElementHead
    - nl::Weave::TLV::TLVWriter::Put
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::Put(uint64_t tag, int8_t v, bool preserveSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:546,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - v
    argTypes:
    - uint64_t
    - int16_t
    constantsTouched: []
    func_position:
      end: 547
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 547
    functionName: nl::Weave::TLV::TLVWriter::Put
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 11
    functionsReached:
    - static_cast<int64_t>
    - nl::Weave::TLV::TLVWriter::Put
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::Put(uint64_t tag, int16_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementHead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:555,1
    - Dst: nl::Weave::TLV::TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - tag
    - v
    - preserveSize
    argTypes:
    - uint64_t
    - int16_t
    - bool
    constantsTouched: []
    func_position:
      end: 558
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 558
    functionName: nl::Weave::TLV::TLVWriter::Put
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 12
    functionsReached:
    - nl::Weave::TLV::TLVWriter::WriteElementHead
    - nl::Weave::TLV::TLVWriter::Put
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::Put(uint64_t tag, int16_t v, bool preserveSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:565,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - v
    argTypes:
    - uint64_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 566
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 566
    functionName: nl::Weave::TLV::TLVWriter::Put
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 13
    functionsReached:
    - static_cast<int64_t>
    - nl::Weave::TLV::TLVWriter::Put
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::Put(uint64_t tag, int32_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementHead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:574,1
    - Dst: nl::Weave::TLV::TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - tag
    - v
    - preserveSize
    argTypes:
    - uint64_t
    - int32_t
    - bool
    constantsTouched: []
    func_position:
      end: 577
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 577
    functionName: nl::Weave::TLV::TLVWriter::Put
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 14
    functionsReached:
    - nl::Weave::TLV::TLVWriter::WriteElementHead
    - nl::Weave::TLV::TLVWriter::Put
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::Put(uint64_t tag, int32_t v, bool preserveSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementHead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:593,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - tag
    - v
    argTypes:
    - uint64_t
    - int64_t
    constantsTouched: []
    func_position:
      end: 594
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 594
    functionName: nl::Weave::TLV::TLVWriter::Put
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 14
    functionsReached:
    - nl::Weave::TLV::TLVWriter::WriteElementHead
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::Put(uint64_t tag, int64_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementHead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:602,1
    - Dst: nl::Weave::TLV::TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - tag
    - v
    - preserveSize
    argTypes:
    - uint64_t
    - int64_t
    - bool
    constantsTouched: []
    func_position:
      end: 605
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 605
    functionName: nl::Weave::TLV::TLVWriter::Put
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 15
    functionsReached:
    - nl::Weave::TLV::TLVWriter::WriteElementHead
    - nl::Weave::TLV::TLVWriter::Put
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::Put(uint64_t tag, int64_t v, bool preserveSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementHead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tag
    - v
    argTypes:
    - uint64_t
    - float
    constantsTouched: []
    func_position:
      end: 619
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 619
    functionName: nl::Weave::TLV::TLVWriter::Put
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 15
    functionsReached:
    - nl::Weave::TLV::TLVWriter::WriteElementHead
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::Put(uint64_t tag, float v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementHead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tag
    - v
    argTypes:
    - uint64_t
    - double
    constantsTouched: []
    func_position:
      end: 656
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 656
    functionName: nl::Weave::TLV::TLVWriter::Put
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 15
    functionsReached:
    - nl::Weave::TLV::TLVWriter::WriteElementHead
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::Put(uint64_t tag, double v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementWithData
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tag
    - buf
    - len
    argTypes:
    - uint64_t
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 688
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 688
    functionName: nl::Weave::TLV::TLVWriter::PutBytes
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::WriteElementWithData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::PutBytes(uint64_t tag, const uint8_t *buf, uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementHead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:728,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - tag
    - totalLen
    argTypes:
    - uint64_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 731
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 731
    functionName: nl::Weave::TLV::TLVWriter::StartPutBytes
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::WriteElementHead
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::StartPutBytes(uint64_t tag, uint32_t totalLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::WriteData
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 759
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 759
    functionName: nl::Weave::TLV::TLVWriter::ContinuePutBytes
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::WriteData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::ContinuePutBytes(const uint8_t *buf, uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::PutString
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:789,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - buf
    argTypes:
    - uint64_t
    - char*
    constantsTouched: []
    func_position:
      end: 790
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 790
    functionName: nl::Weave::TLV::TLVWriter::PutString
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 3
    functionsReached:
    - strlen
    - nl::Weave::TLV::TLVWriter::PutString
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::PutString(uint64_t tag, const char *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementWithData
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tag
    - buf
    - len
    argTypes:
    - uint64_t
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 822
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 822
    functionName: nl::Weave::TLV::TLVWriter::PutString
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::TLV::TLVWriter::WriteElementWithData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::PutString(uint64_t tag, const char *buf, uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:876,1
    - Dst: nl::Weave::TLV::TLVWriter::VPutStringF
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:878,1
    - Dst: va_end
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - tag
    - fmt
    argTypes:
    - uint64_t
    - char*
    constantsTouched: []
    func_position:
      end: 883
      start: 871
    functionDepth: 1
    functionLinenumber: 871
    functionLinenumberEnd: 883
    functionName: nl::Weave::TLV::TLVWriter::PutStringF
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::VPutStringF
    - va_start
    - va_end
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::PutStringF(uint64_t tag, const char *fmt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TLVWriter *>
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:893,1
    - Dst: TLVWriter*::WriteData
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - appState
    argTypes:
    - uint8_t
    - void*
    constantsTouched: []
    func_position:
      end: 895
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 895
    functionName: nl::Weave::TLV::TLVWriter::WeaveTLVWriterPutcharCB
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TLVWriter *>
    - TLVWriter*::WriteData
    linkageType: ''
    returnType: void
    signature: TLVWriter::WeaveTLVWriterPutcharCB(uint8_t c, void *appState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:960,1
    - Dst: vsnprintf
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:962,1
    - Dst: va_end
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:964,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:978,1
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementHead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:986,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:987,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:989,1
    - Dst: va_copy
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:998,1
    - Dst: vsnprintf_ex
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1000,1
    - Dst: reinterpret_cast<char*>
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1000,1
    - Dst: va_end
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1002,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1011,1
    - Dst: FinalizeBuffer
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1015,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1016,1
    - Dst: GetNewBuffer
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1019,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1020,1
    - Dst: va_copy
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1029,1
    - Dst: vcbprintf
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1031,1
    - Dst: va_end
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1033,1
    - Dst: static_cast<char*>
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1037,1
    - Dst: malloc
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1037,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1038,1
    - Dst: va_copy
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1040,1
    - Dst: vsnprintf
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1042,1
    - Dst: va_end
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1044,1
    - Dst: nl::Weave::TLV::TLVWriter::WriteData
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1046,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1046,1
    - Dst: free
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1047,1
    - Dst: va_copy
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1051,1
    - Dst: vsnprintf
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1053,1
    - Dst: reinterpret_cast<char *>
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1053,1
    - Dst: va_end
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1055,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 56
    argCount: 3
    argNames:
    - tag
    - fmt
    - ap
    argTypes:
    - uint64_t
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 1066
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 1066
    functionName: nl::Weave::TLV::TLVWriter::VPutStringF
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 1
    functionsReached:
    - vsnprintf_ex
    - reinterpret_cast<uint8_t*>
    - va_end
    - vsnprintf
    - nl::Weave::TLV::TLVWriter::WriteElementHead
    - FinalizeBuffer
    - VerifyOrExit
    - malloc
    - free
    - reinterpret_cast<char*>
    - va_copy
    - GetNewBuffer
    - reinterpret_cast<char *>
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::WriteData
    - vcbprintf
    - static_cast<char*>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::VPutStringF(uint64_t tag, const char *fmt, va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementHead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1097
      start: 1094
    functionDepth: 1
    functionLinenumber: 1094
    functionLinenumberEnd: 1097
    functionName: nl::Weave::TLV::TLVWriter::PutNull
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::TLVWriter::WriteElementHead
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::PutNull(uint64_t tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::CopyElement
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1144,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLVReader
    constantsTouched: []
    func_position:
      end: 1145
      start: 1142
    functionDepth: 1
    functionLinenumber: 1142
    functionLinenumberEnd: 1145
    functionName: nl::Weave::TLV::TLVWriter::CopyElement
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::TLV::TLVWriter::CopyElement
    - GetTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::CopyElement(TLVReader& reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1201,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1207,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1210,1
    - Dst: Skip
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1213,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1214,1
    - Dst: GetLengthRead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1217,1
    - Dst: TLVReader::GetLengthRead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1217,1
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementHead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1221,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1222,1
    - Dst: TLVReader::ReadData
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1227,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1228,1
    - Dst: nl::Weave::TLV::TLVWriter::WriteData
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1230,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - tag
    - ' reader'
    argTypes:
    - uint64_t
    - TLVReader
    constantsTouched: []
    func_position:
      end: 1239
      start: 1198
    functionDepth: 1
    functionLinenumber: 1198
    functionLinenumberEnd: 1239
    functionName: nl::Weave::TLV::TLVWriter::CopyElement
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 3
    functionsReached:
    - TLVReader::Init
    - Skip
    - nl::Weave::TLV::TLVWriter::WriteElementHead
    - VerifyOrExit
    - ElementType
    - GetLengthRead
    - TLVReader::ReadData
    - TLVReader::GetLengthRead
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::WriteData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::CopyElement(uint64_t tag, TLVReader& reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1295,1
    - Dst: TLVTypeIsContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1295,1
    - Dst: IsCloseContainerReserved
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1297,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1299,1
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementHead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1302,1
    - Dst: IsCloseContainerReserved
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1307,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1310,1
    - Dst: SetContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1320,1
    - Dst: SetCloseContainerReserved
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1321,1
    - Dst: IsCloseContainerReserved
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1321,1
    - Dst: SetContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 3
    argNames:
    - tag
    - containerType
    - ' containerWriter'
    argTypes:
    - uint64_t
    - TLVType
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 1330
      start: 1291
    functionDepth: 1
    functionLinenumber: 1291
    functionLinenumberEnd: 1330
    functionName: nl::Weave::TLV::TLVWriter::OpenContainer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 0
    functionsReached:
    - IsCloseContainerReserved
    - TLVTypeIsContainer
    - nl::Weave::TLV::TLVWriter::WriteElementHead
    - VerifyOrExit
    - ExitNow
    - SetContainerOpen
    - SetCloseContainerReserved
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::OpenContainer(uint64_t tag, TLVType containerType, TLVWriter&
      containerWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVTypeIsContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1366,1
    - Dst: IsContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1369,1
    - Dst: IsCloseContainerReserved
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1378,1
    - Dst: SetContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1381,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1384,1
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementHead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1386,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' containerWriter'
    argTypes:
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 1387
      start: 1364
    functionDepth: 1
    functionLinenumber: 1364
    functionLinenumberEnd: 1387
    functionName: nl::Weave::TLV::TLVWriter::CloseContainer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::Init
    - IsCloseContainerReserved
    - TLVTypeIsContainer
    - IsContainerOpen
    - nl::Weave::TLV::TLVWriter::WriteElementHead
    - SetContainerOpen
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::CloseContainer(TLVWriter& containerWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1434,1
    - Dst: TLVTypeIsContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1434,1
    - Dst: IsCloseContainerReserved
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1436,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1438,1
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementHead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1442,1
    - Dst: IsCloseContainerReserved
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1446,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1449,1
    - Dst: SetContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1454,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - tag
    - containerType
    - ' outerContainerType'
    argTypes:
    - uint64_t
    - TLVType
    - TLVType
    constantsTouched: []
    func_position:
      end: 1458
      start: 1430
    functionDepth: 1
    functionLinenumber: 1430
    functionLinenumberEnd: 1458
    functionName: nl::Weave::TLV::TLVWriter::StartContainer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 2
    functionsReached:
    - IsCloseContainerReserved
    - TLVTypeIsContainer
    - nl::Weave::TLV::TLVWriter::WriteElementHead
    - VerifyOrExit
    - ExitNow
    - SetContainerOpen
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::StartContainer(uint64_t tag, TLVType containerType, TLVType&
      outerContainerType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVTypeIsContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1496,1
    - Dst: IsCloseContainerReserved
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1501,1
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementHead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1504,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - outerContainerType
    argTypes:
    - TLVType
    constantsTouched: []
    func_position:
      end: 1505
      start: 1494
    functionDepth: 1
    functionLinenumber: 1494
    functionLinenumberEnd: 1505
    functionName: nl::Weave::TLV::TLVWriter::EndContainer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::TLV::TLVWriter::WriteElementHead
    - IsCloseContainerReserved
    - TLVTypeIsContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::EndContainer(TLVType outerContainerType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVTypeIsContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1549,1
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementHead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1552,1
    - Dst: nl::Weave::TLV::TLVWriter::WriteData
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - tag
    - containerType
    - data
    - dataLen
    argTypes:
    - uint64_t
    - TLVType
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1557
      start: 1547
    functionDepth: 1
    functionLinenumber: 1547
    functionLinenumberEnd: 1557
    functionName: nl::Weave::TLV::TLVWriter::PutPreEncodedContainer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::WriteElementHead
    - nl::Weave::TLV::TLVWriter::WriteData
    - TLVTypeIsContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::PutPreEncodedContainer(uint64_t tag, TLVType containerType,
      const uint8_t *data, uint32_t dataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::CopyContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1604,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' container'
    argTypes:
    - TLVReader
    constantsTouched: []
    func_position:
      end: 1605
      start: 1602
    functionDepth: 1
    functionLinenumber: 1602
    functionLinenumberEnd: 1605
    functionName: nl::Weave::TLV::TLVWriter::CopyContainer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::TLVWriter::CopyContainer
    - GetTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::CopyContainer(TLVReader& container)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetType
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1664,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1666,1
    - Dst: GetReadPoint
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1670,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1672,1
    - Dst: nl::Weave::TLV::TLVWriter::PutPreEncodedContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1676,1
    - Dst: GetReadPoint
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1676,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - tag
    - ' container'
    argTypes:
    - uint64_t
    - TLVReader
    constantsTouched: []
    func_position:
      end: 1677
      start: 1657
    functionDepth: 2
    functionLinenumber: 1657
    functionLinenumberEnd: 1677
    functionName: nl::Weave::TLV::TLVWriter::CopyContainer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 1
    functionsReached:
    - EnterContainer
    - GetType
    - GetReadPoint
    - ExitContainer
    - nl::Weave::TLV::TLVWriter::PutPreEncodedContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::CopyContainer(uint64_t tag, TLVReader& container)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1727,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1729,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1730,1
    - Dst: nl::Weave::TLV::TLVWriter::PutPreEncodedContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1732,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1732,1
    - Dst: TLVReader::GetReadPoint
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1732,1
    - Dst: TLVReader::GetRemainingLength
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1732,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - tag
    - encodedContainer
    - encodedContainerLen
    argTypes:
    - uint64_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1737
      start: 1722
    functionDepth: 2
    functionLinenumber: 1722
    functionLinenumberEnd: 1737
    functionName: nl::Weave::TLV::TLVWriter::CopyContainer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Init
    - TLVReader::Next
    - TLVReader::GetType
    - TLVReader::GetRemainingLength
    - SuccessOrExit
    - TLVReader::GetReadPoint
    - nl::Weave::TLV::TLVWriter::PutPreEncodedContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::CopyContainer(uint64_t tag, const uint8_t * encodedContainer,
      uint16_t encodedContainerLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1749
    functionDepth: 0
    functionLinenumber: 1749
    functionLinenumberEnd: 1752
    functionName: nl::Weave::TLV::TLVWriter::GetContainerType
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TLVType
    signature: TLVWriter::GetContainerType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1759,1
    - Dst: IsSpecialTag
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1769,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1776,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1777,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1785,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1800,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1801,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1805,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1806,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1813,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1814,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1818,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1819,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1829,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1830,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1831,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1832,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1836,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1837,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1838,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1839,1
    - Dst: GetTLVFieldSize
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1844,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1849,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1852,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1855,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1858,1
    - Dst: nl::Weave::TLV::TLVWriter::WriteData
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1871,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 74
    argCount: 3
    argNames:
    - elemType
    - tag
    - lenOrVal
    argTypes:
    - TLVElementType
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1872
      start: 1754
    functionDepth: 1
    functionLinenumber: 1754
    functionLinenumberEnd: 1872
    functionName: nl::Weave::TLV::TLVWriter::WriteElementHead
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 22
    functionsReached:
    - IsSpecialTag
    - nl::Weave::Encoding::LittleEndian::Write64
    - IsContainerOpen
    - Write8
    - GetTLVFieldSize
    - nl::Weave::Encoding::LittleEndian::Write16
    - nl::Weave::Encoding::LittleEndian::Write32
    - nl::Weave::TLV::TLVWriter::WriteData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::WriteElementHead(TLVElementType elemType, uint64_t tag,
      uint64_t lenOrVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::WriteElementHead
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1885,1
    - Dst: nl::Weave::TLV::TLVWriter::WriteData
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1889,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - type
    - tag
    - data
    - dataLen
    argTypes:
    - TLVType
    - uint64_t
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1890
      start: 1874
    functionDepth: 2
    functionLinenumber: 1874
    functionLinenumberEnd: 1890
    functionName: nl::Weave::TLV::TLVWriter::WriteElementWithData
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::TLV::TLVWriter::WriteElementHead
    - nl::Weave::TLV::TLVWriter::WriteData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::WriteElementWithData(TLVType type, uint64_t tag, const uint8_t
      *data, uint32_t dataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1896,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1902,1
    - Dst: FinalizeBuffer
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1906,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1907,1
    - Dst: GetNewBuffer
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1910,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1911,1
    - Dst: memmove
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1923,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1933
      start: 1892
    functionDepth: 0
    functionLinenumber: 1892
    functionLinenumberEnd: 1933
    functionName: nl::Weave::TLV::TLVWriter::WriteData
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 6
    functionsReached:
    - memmove
    - FinalizeBuffer
    - VerifyOrExit
    - SuccessOrExit
    - GetNewBuffer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::WriteData(const uint8_t *p, uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::Next
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1952,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1955,1
    - Dst: PacketBuffer*::AddToEnd
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1957,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1963,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1964,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - ' writer'
    - ' bufHandle'
    - ' bufStart'
    - ' bufLen'
    argTypes:
    - TLVWriter
    - uintptr_t
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1973
      start: 1948
    functionDepth: 3
    functionLinenumber: 1948
    functionLinenumberEnd: 1973
    functionName: nl::Weave::TLV::TLVWriter::GetNewPacketBuffer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::Next
    - PacketBuffer*::AddToEnd
    - PacketBuffer*::MaxDataLength
    - PacketBuffer*::Start
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::GetNewPacketBuffer(TLVWriter& writer, uintptr_t& bufHandle,
      uint8_t *& bufStart, uint32_t& bufLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:1994,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ' writer'
    - ' bufHandle'
    - ' bufStart'
    - ' remainingLen'
    argTypes:
    - TLVWriter
    - uintptr_t
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1999
      start: 1985
    functionDepth: 0
    functionLinenumber: 1985
    functionLinenumberEnd: 1999
    functionName: nl::Weave::TLV::TLVWriter::GetNewBuffer_Malloced
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::GetNewBuffer_Malloced(TLVWriter& writer, uintptr_t& bufHandle,
      uint8_t *& bufStart, uint32_t& remainingLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:2016,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp:2016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' writer'
    - bufHandle
    - bufStart
    - dataLen
    argTypes:
    - TLVWriter
    - uintptr_t
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2019
      start: 2011
    functionDepth: 0
    functionLinenumber: 2011
    functionLinenumberEnd: 2019
    functionName: nl::Weave::TLV::TLVWriter::FinalizePacketBuffer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - PacketBuffer*::Start
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::FinalizePacketBuffer(TLVWriter& writer, uintptr_t bufHandle,
      uint8_t *bufStart, uint32_t dataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:61,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:63,1
    - Dst: memmove
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:67,1
    - Dst: nl::Weave::TLV::TLVUpdater::Init
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:70,1
    - Dst: nl::Weave::TLV::TLVUpdater::Init
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:73,1
    - Dst: SetCloseContainerReserved
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - buf
    - dataLen
    - maxLen
    argTypes:
    - uint8_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 79
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 79
    functionName: nl::Weave::TLV::TLVUpdater::Init
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp
    functionUses: 1
    functionsReached:
    - SetCloseContainerReserved
    - nl::Weave::TLV::TLVUpdater::Init
    - memmove
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVUpdater::Init(uint8_t *buf, uint32_t dataLen, uint32_t maxLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:119,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:122,1
    - Dst: ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:125,1
    - Dst: GetElementHeadLength
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:129,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:130,1
    - Dst: memmove
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:138,1
    - Dst: SetContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:150,1
    - Dst: SetContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:164,1
    - Dst: SetCloseContainerReserved
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:165,1
    - Dst: nl::Weave::TLV::TLVUpdater::Init
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 41
    argCount: 2
    argNames:
    - ' aReader'
    - freeLen
    argTypes:
    - TLVReader
    - uint32_t
    constantsTouched: []
    func_position:
      end: 180
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 180
    functionName: nl::Weave::TLV::TLVUpdater::Init
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp
    functionUses: 2
    functionsReached:
    - memmove
    - VerifyOrExit
    - SetContainerOpen
    - ElementType
    - SetCloseContainerReserved
    - nl::Weave::TLV::TLVUpdater::Init
    - GetElementHeadLength
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVUpdater::Init(TLVReader& aReader, uint32_t freeLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - profileId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: nl::Weave::TLV::TLVUpdater::SetImplicitProfileId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TLVUpdater::SetImplicitProfileId(uint32_t profileId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Skip
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:251,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:252,1
    - Dst: nl::Weave::TLV::TLVUpdater::AdjustInternalWriterFreeSpace
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:254,1
    - Dst: nl::Weave::TLV::TLVUpdater::Next
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:257,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 262
    functionName: nl::Weave::TLV::TLVUpdater::Next
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::TLVUpdater::AdjustInternalWriterFreeSpace
    - Skip
    - nl::Weave::TLV::TLVUpdater::Next
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVUpdater::Next()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:293,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:296,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:296,1
    - Dst: Skip
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:300,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:301,1
    - Dst: memmove
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 318
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 318
    functionName: nl::Weave::TLV::TLVUpdater::Move
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp
    functionUses: 0
    functionsReached:
    - Skip
    - memmove
    - VerifyOrExit
    - GetType
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVUpdater::Move()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:344,1
    - Dst: SetContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:352,1
    - Dst: SetCloseContainerReserved
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:353,1
    - Dst: SetContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 361
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 361
    functionName: nl::Weave::TLV::TLVUpdater::MoveUntilEnd
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp
    functionUses: 0
    functionsReached:
    - SetCloseContainerReserved
    - memmove
    - SetContainerOpen
    linkageType: ''
    returnType: void
    signature: TLVUpdater::MoveUntilEnd()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:404,1
    - Dst: TLVTypeIsContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:404,1
    - Dst: nl::Weave::TLV::TLVUpdater::AdjustInternalWriterFreeSpace
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:408,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:410,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:410,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:411,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:413,1
    - Dst: nl::Weave::TLV::TLVUpdater::EnterContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:415,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' outerContainerType'
    argTypes:
    - TLVType
    constantsTouched: []
    func_position:
      end: 422
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 422
    functionName: nl::Weave::TLV::TLVUpdater::EnterContainer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp
    functionUses: 1
    functionsReached:
    - StartContainer
    - nl::Weave::TLV::TLVUpdater::EnterContainer
    - TLVTypeIsContainer
    - VerifyOrExit
    - nl::Weave::TLV::TLVUpdater::AdjustInternalWriterFreeSpace
    - GetType
    - GetTag
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVUpdater::EnterContainer(TLVType& outerContainerType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVUpdater::ExitContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:471,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:472,1
    - Dst: nl::Weave::TLV::TLVUpdater::AdjustInternalWriterFreeSpace
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:475,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:477,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - outerContainerType
    argTypes:
    - TLVType
    constantsTouched: []
    func_position:
      end: 482
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 482
    functionName: nl::Weave::TLV::TLVUpdater::ExitContainer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::TLVUpdater::AdjustInternalWriterFreeSpace
    - SuccessOrExit
    - EndContainer
    - nl::Weave::TLV::TLVUpdater::ExitContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVUpdater::ExitContainer(TLVType outerContainerType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 501
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 501
    functionName: nl::Weave::TLV::TLVUpdater::AdjustInternalWriterFreeSpace
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TLVUpdater::AdjustInternalWriterFreeSpace()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: nl::Weave::Platform::Security::MemoryInit
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveSecurityMgr-Malloc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MemoryInit(void *buf, size_t bufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: nl::Weave::Platform::Security::MemoryShutdown
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveSecurityMgr-Malloc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MemoryShutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::Security::MemoryAlloc
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr-Malloc.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: nl::Weave::Platform::Security::MemoryAlloc
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveSecurityMgr-Malloc.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Platform::Security::MemoryAlloc
    linkageType: ''
    returnType: void
    signature: '*MemoryAlloc(size_t size)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr-Malloc.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - size
    - isLongTermAlloc
    argTypes:
    - size_t
    - bool
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: nl::Weave::Platform::Security::MemoryAlloc
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveSecurityMgr-Malloc.cpp
    functionUses: 1
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: '*MemoryAlloc(size_t size, bool isLongTermAlloc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr-Malloc.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: nl::Weave::Platform::Security::MemoryFree
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveSecurityMgr-Malloc.cpp
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: MemoryFree(void *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: nl::Weave::WeaveConnection::AddRef
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: WeaveConnection::AddRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveConnection::DoClose
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:82,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 87
    functionName: nl::Weave::WeaveConnection::Release
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrDie
    - nl::Weave::WeaveConnection::DoClose
    linkageType: ''
    returnType: void
    signature: WeaveConnection::Release()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:95,1
    - Dst: nl::Weave::WeaveConnection::StartConnect
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - peerAddr
    - peerAddrLen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 100
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 100
    functionName: nl::Weave::WeaveConnection::StartConnectToAddressLiteral
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveConnection::StartConnect
    - nl::Inet::IPAddress::FromString
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveConnection::StartConnectToAddressLiteral(const char *peerAddr,
      size_t peerAddrLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveConnection::Connect
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - peerNodeId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: nl::Weave::WeaveConnection::Connect
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::WeaveConnection::Connect
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveConnection::Connect(uint64_t peerNodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveConnection::Connect
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - peerNodeId
    - peerAddr
    - peerPort
    argTypes:
    - uint64_t
    - IPAddress
    - uint16_t
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: nl::Weave::WeaveConnection::Connect
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::WeaveConnection::Connect
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveConnection::Connect(uint64_t peerNodeId, const IPAddress &peerAddr,
      uint16_t peerPort)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:192,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:194,1
    - Dst: IsCASEAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:194,1
    - Dst: IsPASEAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:194,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:197,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:213,1
    - Dst: nl::Weave::WeaveConnection::LogId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:213,1
    - Dst: nl::Weave::WeaveConnection::StartConnect
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:215,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - peerNodeId
    - authMode
    - peerAddr
    - peerPort
    - intf
    argTypes:
    - uint64_t
    - WeaveAuthMode
    - IPAddress
    - uint16_t
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 220
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 220
    functionName: nl::Weave::WeaveConnection::Connect
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 2
    functionsReached:
    - IsPASEAuthMode
    - WeaveLogProgress
    - VerifyOrExit
    - nl::Weave::WeaveConnection::LogId
    - SuccessOrExit
    - nl::Weave::WeaveConnection::StartConnect
    - IsCASEAuthMode
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveConnection::Connect(uint64_t peerNodeId, WeaveAuthMode authMode,
      const IPAddress &peerAddr, uint16_t peerPort, InterfaceId intf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveConnection::Connect
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:261,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - peerNodeId
    - authMode
    - peerAddr
    - defaultPort
    argTypes:
    - uint64_t
    - WeaveAuthMode
    - char*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: nl::Weave::WeaveConnection::Connect
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 3
    functionsReached:
    - strlen
    - nl::Weave::WeaveConnection::Connect
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveConnection::Connect(uint64_t peerNodeId, WeaveAuthMode authMode,
      const char *peerAddr, uint16_t defaultPort)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveConnection::Connect
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - peerNodeId
    - authMode
    - peerAddr
    - peerAddrLen
    - defaultPort
    argTypes:
    - uint64_t
    - WeaveAuthMode
    - char*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 313
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 313
    functionName: nl::Weave::WeaveConnection::Connect
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 4
    functionsReached:
    - nl::Weave::WeaveConnection::Connect
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveConnection::Connect(uint64_t peerNodeId, WeaveAuthMode authMode,
      const char *peerAddr,\n                                     uint16_t peerAddrLen,
      uint16_t defaultPort)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:368,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:370,1
    - Dst: IsCASEAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:370,1
    - Dst: IsPASEAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:370,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:373,1
    - Dst: nl::Weave::WeaveConnection::Connect
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:378,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:379,1
    - Dst: nl::Inet::ParseHostPortAndInterface
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:386,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:387,1
    - Dst: InterfaceNameToId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:394,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:395,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:399,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:409,1
    - Dst: nl::Weave::WeaveConnection::LogId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:409,1
    - Dst: Inet::ResolveHostAddress
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:414,1
    - Dst: nl::Weave::WeaveConnection::StartConnectToAddressLiteral
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:416,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 6
    argNames:
    - peerNodeId
    - authMode
    - peerAddr
    - peerAddrLen
    - dnsOptions
    - defaultPort
    argTypes:
    - uint64_t
    - WeaveAuthMode
    - char*
    - uint16_t
    - uint8_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 421
      start: 359
    functionDepth: 3
    functionLinenumber: 359
    functionLinenumberEnd: 421
    functionName: nl::Weave::WeaveConnection::Connect
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 5
    functionsReached:
    - IsPASEAuthMode
    - nl::Weave::WeaveConnection::Connect
    - WeaveLogProgress
    - Inet::ResolveHostAddress
    - nl::Inet::ParseHostPortAndInterface
    - VerifyOrExit
    - ExitNow
    - InterfaceNameToId
    - memset
    - nl::Weave::WeaveConnection::LogId
    - SuccessOrExit
    - nl::Weave::WeaveConnection::StartConnectToAddressLiteral
    - IsCASEAuthMode
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveConnection::Connect(uint64_t peerNodeId, WeaveAuthMode authMode,
      const char *peerAddr,\n                                     uint16_t peerAddrLen,
      uint8_t dnsOptions, uint16_t defaultPort)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveConnection::Connect
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - peerNodeId
    - authMode
    - hostPortList
    - intf
    argTypes:
    - uint64_t
    - WeaveAuthMode
    - HostPortList
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 454
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 454
    functionName: nl::Weave::WeaveConnection::Connect
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 6
    functionsReached:
    - nl::Weave::WeaveConnection::Connect
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveConnection::Connect(uint64_t peerNodeId, WeaveAuthMode authMode,
      HostPortList hostPortList,\n                                     InterfaceId
      intf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:487,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:489,1
    - Dst: IsCASEAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:489,1
    - Dst: IsPASEAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:489,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:492,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:498,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:513,1
    - Dst: nl::Weave::WeaveConnection::LogId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:513,1
    - Dst: nl::Weave::WeaveConnection::TryNextPeerAddress
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:515,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - peerNodeId
    - authMode
    - hostPortList
    - dnsOptions
    - intf
    argTypes:
    - uint64_t
    - WeaveAuthMode
    - HostPortList
    - uint8_t
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 520
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 520
    functionName: nl::Weave::WeaveConnection::Connect
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 6
    functionsReached:
    - IsPASEAuthMode
    - WeaveLogProgress
    - VerifyOrExit
    - memset
    - nl::Weave::WeaveConnection::LogId
    - SuccessOrExit
    - nl::Weave::WeaveConnection::TryNextPeerAddress
    - IsCASEAuthMode
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveConnection::Connect(uint64_t peerNodeId, WeaveAuthMode authMode,
      HostPortList hostPortList,\n                                     uint8_t dnsOptions,
      InterfaceId intf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - connTimeoutMsecs
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 533
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 533
    functionName: nl::Weave::WeaveConnection::SetConnectTimeout
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveConnection::SetConnectTimeout(const uint32_t connTimeoutMsecs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' addrInfo'
    argTypes:
    - IPPacketInfo
    constantsTouched: []
    func_position:
      end: 557
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 557
    functionName: nl::Weave::WeaveConnection::GetPeerAddressInfo
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - Clear
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveConnection::GetPeerAddressInfo(IPPacketInfo& addrInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveConnection::GetPeerDescription
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 575
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 575
    functionName: nl::Weave::WeaveConnection::GetPeerDescription
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::WeaveConnection::GetPeerDescription
    linkageType: ''
    returnType: void
    signature: WeaveConnection::GetPeerDescription(char * buf, size_t bufSize) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveConnection::SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - msgInfo
    - msgBuf
    argTypes:
    - WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 604
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 604
    functionName: nl::Weave::WeaveConnection::SendTunneledMessage
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveConnection::SendMessage
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveConnection::SendTunneledMessage (WeaveMessageInfo *msgInfo, PacketBuffer
      *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:627,1
    - Dst: nl::Weave::WeaveConnection::StateAllowsSend
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:629,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:631,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:654,1
    - Dst: EncodeMessageWithLength
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:667,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:670,1
    - Dst: nl::Weave::System::PacketBuffer::RightSize
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:674,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:677,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:679,1
    - Dst: nl::Weave::WeaveConnection::LogId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:679,1
    - Dst: OnMessageCapture
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:682,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:682,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:682,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:684,1
    - Dst: Send
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:691,1
    - Dst: Send
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:696,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:703,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 2
    argNames:
    - msgInfo
    - msgBuf
    argTypes:
    - WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 708
      start: 623
    functionDepth: 2
    functionLinenumber: 623
    functionLinenumberEnd: 708
    functionName: nl::Weave::WeaveConnection::SendMessage
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 1
    functionsReached:
    - PacketBuffer*::DataLength
    - nl::Weave::System::PacketBuffer::RightSize
    - nl::Weave::System::PacketBuffer::Free
    - GetFlag
    - EncodeMessageWithLength
    - ExitNow
    - nl::Weave::WeaveConnection::LogId
    - nl::Weave::WeaveConnection::StateAllowsSend
    - WeaveLogDetail
    - PacketBuffer*::Start
    - Send
    - OnMessageCapture
    - VerifyOrDie
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveConnection::SendMessage (WeaveMessageInfo *msgInfo, PacketBuffer
      *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:740,1
    - Dst: nl::Weave::WeaveConnection::Shutdown
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:748,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 752
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 752
    functionName: nl::Weave::WeaveConnection::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::WeaveConnection::Shutdown
    - VerifyOrDie
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveConnection::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveConnection::Close
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 783
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 783
    functionName: nl::Weave::WeaveConnection::Close
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::WeaveConnection::Close
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveConnection::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveConnection::DoClose
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:820,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - suppressCloseLog
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 828
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 828
    functionName: nl::Weave::WeaveConnection::Close
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 1
    functionsReached:
    - VerifyOrDie
    - nl::Weave::WeaveConnection::DoClose
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveConnection::Close(bool suppressCloseLog)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveConnection::DoClose
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:852,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 858
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 858
    functionName: nl::Weave::WeaveConnection::Abort
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrDie
    - nl::Weave::WeaveConnection::DoClose
    linkageType: ''
    returnType: void
    signature: WeaveConnection::Abort()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 877
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 877
    functionName: nl::Weave::WeaveConnection::EnableReceive
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveConnection::EnableReceive()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 893
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 893
    functionName: nl::Weave::WeaveConnection::DisableReceive
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveConnection::DisableReceive()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveConnection::StateAllowsSend
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:935,1
    - Dst: nl::Weave::WeaveConnection::EnableKeepAlive
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:938,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - interval
    - timeoutCount
    argTypes:
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 939
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 939
    functionName: nl::Weave::WeaveConnection::EnableKeepAlive
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::WeaveConnection::StateAllowsSend
    - nl::Weave::WeaveConnection::EnableKeepAlive
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveConnection::EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveConnection::StateAllowsSend
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:971,1
    - Dst: nl::Weave::WeaveConnection::DisableKeepAlive
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:974,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 975
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 975
    functionName: nl::Weave::WeaveConnection::DisableKeepAlive
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::WeaveConnection::StateAllowsSend
    - nl::Weave::WeaveConnection::DisableKeepAlive
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveConnection::DisableKeepAlive()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveConnection::StateAllowsSend
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1017,1
    - Dst: nl::Weave::WeaveConnection::SetUserTimeout
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1020,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - userTimeoutMillis
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1021
      start: 1010
    functionDepth: 1
    functionLinenumber: 1010
    functionLinenumberEnd: 1021
    functionName: nl::Weave::WeaveConnection::SetUserTimeout
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::WeaveConnection::StateAllowsSend
    - nl::Weave::WeaveConnection::SetUserTimeout
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveConnection::SetUserTimeout(uint32_t userTimeoutMillis)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveConnection::SetUserTimeout
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1045
    functionDepth: 2
    functionLinenumber: 1045
    functionLinenumberEnd: 1048
    functionName: nl::Weave::WeaveConnection::ResetUserTimeout
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveConnection::SetUserTimeout
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveConnection::ResetUserTimeout(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveConnection::StateAllowsReceive
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1063,1
    - Dst: nl::Weave::WeaveConnection::SetIdleTimeout
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1074,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - timeoutMS
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1078
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1078
    functionName: nl::Weave::WeaveConnection::SetIdleTimeout
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::WeaveConnection::SetIdleTimeout
    - nl::Weave::WeaveConnection::StateAllowsReceive
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveConnection::SetIdleTimeout(uint32_t timeoutMS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveConnection::Close
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1089,1
    - Dst: nl::Weave::WeaveConnection::Abort
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1094,1
    - Dst: nl::Weave::WeaveConnection::Close
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1107,1
    - Dst: nl::Weave::WeaveConnection::Abort
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1109,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1110,1
    - Dst: Inet::CancelResolveHostAddress
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1118,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1126,1
    - Dst: nl::Weave::WeaveConnection::LogId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1126,1
    - Dst: ExchangeMgr::HandleConnectionClosed
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1130,1
    - Dst: FabricState::HandleConnectionClosed
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1134,1
    - Dst: OnConnectionComplete
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1142,1
    - Dst: OnConnectionClosed
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1145,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1151,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 2
    argNames:
    - err
    - flags
    argTypes:
    - WEAVE_ERROR
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1155
      start: 1080
    functionDepth: 2
    functionLinenumber: 1080
    functionLinenumberEnd: 1155
    functionName: nl::Weave::WeaveConnection::DoClose
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 3
    functionsReached:
    - OnConnectionClosed
    - ExchangeMgr::HandleConnectionClosed
    - WeaveLogProgress
    - FabricState::HandleConnectionClosed
    - nl::Weave::WeaveConnection::Abort
    - nl::Weave::WeaveConnection::Close
    - nl::Weave::WeaveConnection::LogId
    - Inet::CancelResolveHostAddress
    - VerifyOrDie
    - OnConnectionComplete
    - Free
    linkageType: ''
    returnType: void
    signature: WeaveConnection::DoClose(WEAVE_ERROR err, uint8_t flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1166,1
    - Dst: WeaveConnection*::LogId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1166,1
    - Dst: WeaveConnection*::TryNextPeerAddress
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - appState
    - dnsRes
    - addrCount
    - addrArray
    argTypes:
    - void*
    - INET_ERROR
    - uint8_t
    - IPAddress*
    constantsTouched: []
    func_position:
      end: 1170
      start: 1157
    functionDepth: 0
    functionLinenumber: 1157
    functionLinenumberEnd: 1170
    functionName: nl::Weave::WeaveConnection::HandleResolveComplete
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - WeaveConnection*::LogId
    - WeaveConnection*::TryNextPeerAddress
    linkageType: ''
    returnType: void
    signature: WeaveConnection::HandleResolveComplete(void *appState, INET_ERROR dnsRes,
      uint8_t addrCount, IPAddress *addrArray)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveConnection::StartConnect
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1185,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1186,1
    - Dst: IsEmpty
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1190,1
    - Dst: Pop
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1195,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1196,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1207,1
    - Dst: nl::Weave::WeaveConnection::LogId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1207,1
    - Dst: Inet::ResolveHostAddress
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1209,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1209,1
    - Dst: nl::Weave::WeaveConnection::StartConnectToAddressLiteral
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1213,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1213,1
    - Dst: nl::Weave::WeaveConnection::DoClose
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - lastErr
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1223
      start: 1172
    functionDepth: 3
    functionLinenumber: 1172
    functionLinenumberEnd: 1223
    functionName: nl::Weave::WeaveConnection::TryNextPeerAddress
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 1
    functionsReached:
    - Pop
    - WeaveLogProgress
    - Inet::ResolveHostAddress
    - ExitNow
    - IsEmpty
    - nl::Weave::WeaveConnection::LogId
    - strlen
    - nl::Weave::WeaveConnection::DoClose
    - SuccessOrExit
    - nl::Weave::WeaveConnection::StartConnect
    - nl::Weave::WeaveConnection::StartConnectToAddressLiteral
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveConnection::TryNextPeerAddress(WEAVE_ERROR lastErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsCASEAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1236,1
    - Dst: SecurityMgr::StartCASESession
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1237,1
    - Dst: IsPASEAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1240,1
    - Dst: SecurityMgr::StartPASESession
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1241,1
    - Dst: nl::Weave::WeaveConnection::DoClose
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1247,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1256,1
    - Dst: nl::Weave::WeaveConnection::LogId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1256,1
    - Dst: OnConnectionComplete
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1225
    functionDepth: 3
    functionLinenumber: 1225
    functionLinenumberEnd: 1262
    functionName: nl::Weave::WeaveConnection::StartSession
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - IsPASEAuthMode
    - WeaveLogProgress
    - nl::Weave::WeaveConnection::DoClose
    - nl::Weave::WeaveConnection::LogId
    - SecurityMgr::StartPASESession
    - SecurityMgr::StartCASESession
    - OnConnectionComplete
    - IsCASEAuthMode
    linkageType: ''
    returnType: void
    signature: WeaveConnection::StartSession()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveConnection*>
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1267,1
    - Dst: WeaveConnection*::mTcpEndPoint::OnConnectComplete
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 1270
      start: 1265
    functionDepth: 0
    functionLinenumber: 1265
    functionLinenumberEnd: 1270
    functionName: nl::Weave::WeaveConnection::AppCallbackAfterConnectionRepair
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<WeaveConnection*>
    - WeaveConnection*::mTcpEndPoint::OnConnectComplete
    linkageType: ''
    returnType: void
    signature: WeaveConnection::AppCallbackAfterConnectionRepair(System::Layer* aSystemLayer,
      void* aAppState, System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Inet::NewTCPEndPoint
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1294,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1295,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1304,1
    - Dst: RepairConnection
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1308,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1309,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1311,1
    - Dst: IsIPv6ULA
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1319,1
    - Dst: IPv6InterfaceIdToWeaveNodeId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1319,1
    - Dst: InterfaceId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1319,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1331,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1337,1
    - Dst: nl::Weave::WeaveConnection::Abort
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1340,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1341,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 3
    argNames:
    - peerNodeId
    - repairInfo
    - intf
    argTypes:
    - uint64_t
    - TCPConnRepairInfo
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 1347
      start: 1289
    functionDepth: 0
    functionLinenumber: 1289
    functionLinenumberEnd: 1347
    functionName: nl::Weave::WeaveConnection::TryConnectionRepair
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - IPv6InterfaceIdToWeaveNodeId
    - WeaveLogProgress
    - nl::Weave::WeaveConnection::Abort
    - IsIPv6ULA
    - Free
    - RepairConnection
    - Inet::NewTCPEndPoint
    - SystemLayer::StartTimer
    - SuccessOrExit
    - InterfaceId
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveConnection::TryConnectionRepair(uint64_t peerNodeId, const TCPConnRepairInfo
      &repairInfo, InterfaceId intf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SelectDestNodeIdAndAddress
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1357,1
    - Dst: Inet::NewTCPEndPoint
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1362,1
    - Dst: IsIPv6ULA
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1368,1
    - Dst: IPv6InterfaceIdToWeaveNodeId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1368,1
    - Dst: InterfaceId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1368,1
    - Dst: IsIPv4
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1380,1
    - Dst: Bind
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1385,1
    - Dst: nl::Weave::WeaveConnection::SetConnectTimeout
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1395,1
    - Dst: ToString
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1400,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1401,1
    - Dst: nl::Weave::WeaveConnection::LogId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1401,1
    - Dst: nl::Weave::WeaveConnection::Connect
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1405,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1350
    functionDepth: 2
    functionLinenumber: 1350
    functionLinenumberEnd: 1406
    functionName: nl::Weave::WeaveConnection::StartConnect
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 3
    functionsReached:
    - Bind
    - nl::Weave::WeaveConnection::Connect
    - IPv6InterfaceIdToWeaveNodeId
    - WeaveLogProgress
    - IsIPv4
    - nl::Weave::WeaveConnection::SetConnectTimeout
    - IsIPv6ULA
    - ToString
    - nl::Weave::WeaveConnection::LogId
    - SelectDestNodeIdAndAddress
    - Inet::NewTCPEndPoint
    - InterfaceId
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveConnection::StartConnect()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1412,1
    - Dst: WeaveConnection*::LogId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1412,1
    - Dst: WeaveConnection*::PeerAddr::IsIPv6ULA
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1422,1
    - Dst: IPv6InterfaceIdToWeaveNodeId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1423,1
    - Dst: WeaveConnection*::PeerAddr::InterfaceId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1423,1
    - Dst: TCPEndPoint*::GetLocalInfo
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1426,1
    - Dst: WeaveConnection*::DoClose
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1429,1
    - Dst: IPAddress::IsIPv6ULA
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1444,1
    - Dst: IPv6InterfaceIdToWeaveNodeId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1444,1
    - Dst: IPAddress::InterfaceId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1444,1
    - Dst: TCPEndPoint*::EnableNoDelay
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1455,1
    - Dst: WeaveConnection*::DoClose
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1458,1
    - Dst: WeaveConnection*::StartSession
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1464,1
    - Dst: TCPEndPoint*::Free
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1471,1
    - Dst: WeaveConnection*::TryNextPeerAddress
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1475,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - endPoint
    - conRes
    argTypes:
    - TCPEndPoint*
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 1477
      start: 1408
    functionDepth: 0
    functionLinenumber: 1408
    functionLinenumberEnd: 1477
    functionName: nl::Weave::WeaveConnection::HandleConnectComplete
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnection*::PeerAddr::IsIPv6ULA
    - WeaveConnection*::DoClose
    - IPAddress::InterfaceId
    - WeaveConnection*::TryNextPeerAddress
    - TCPEndPoint*::EnableNoDelay
    - IPv6InterfaceIdToWeaveNodeId
    - WeaveLogProgress
    - WeaveConnection*::LogId
    - TCPEndPoint*::Free
    - IPAddress::IsIPv6ULA
    - WeaveConnection*::PeerAddr::InterfaceId
    - TCPEndPoint*::GetLocalInfo
    - WeaveConnection*::StartSession
    linkageType: ''
    returnType: void
    signature: WeaveConnection::HandleConnectComplete(TCPEndPoint *endPoint, INET_ERROR
      conRes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::StateAllowsReceive
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1487,1
    - Dst: IPPacketInfo::Clear
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1502,1
    - Dst: WeaveConnection*::GetPeerAddressInfo
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1503,1
    - Dst: WeaveMessageInfo::Clear
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1505,1
    - Dst: WeaveMessageLayer*::DecodeMessageWithLength
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1510,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1536,1
    - Dst: PacketBuffer*::AddToEnd
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1544,1
    - Dst: PacketBuffer*::CompactHead
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1546,1
    - Dst: PacketBuffer*::Next
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1557,1
    - Dst: PacketBuffer*::CompactHead
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1559,1
    - Dst: TCPEndPoint*::AckReceive
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1569,1
    - Dst: TCPEndPoint*::AckReceive
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1576,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1589,1
    - Dst: PacketBuffer*::DetachTail
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1593,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1596,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1597,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1604,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1607,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1607,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1608,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1618,1
    - Dst: WeaveConnection*::LogId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1618,1
    - Dst: WeaveMessageLayer*::SecurityMgr::IsKeyError
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1621,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1625,1
    - Dst: WeaveMessageLayer*::SecurityMgr::SendKeyErrorMsg
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1629,1
    - Dst: WeaveConnection*::DisconnectOnError
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1632,1
    - Dst: WeaveConnection*::OnTunneledMessageReceived
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1650,1
    - Dst: WeaveConnection*::DisconnectOnError
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1654,1
    - Dst: WeaveConnection*::OnMessageReceived
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1664,1
    - Dst: WeaveConnection*::DisconnectOnError
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1668,1
    - Dst: WeaveConnection*::OnMessageReceived
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1680,1
    - Dst: WeaveConnection*::DisconnectOnError
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1684,1
    - Dst: WeaveConnection*::StateAllowsReceive
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1697,1
    - Dst: TCPEndPoint*::PutBackReceivedData
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1702,1
    - Dst: WeaveConnection*::DoClose
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1706,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1709,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 98
    argCount: 2
    argNames:
    - endPoint
    - data
    argTypes:
    - TCPEndPoint*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1711
      start: 1479
    functionDepth: 3
    functionLinenumber: 1479
    functionLinenumberEnd: 1711
    functionName: nl::Weave::WeaveConnection::HandleDataReceived
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnection*::DoClose
    - PacketBuffer*::AddToEnd
    - WeaveConnection*::DisconnectOnError
    - WeaveConnection*::GetPeerAddressInfo
    - WeaveMessageInfo::Clear
    - TCPEndPoint*::AckReceive
    - nl::Weave::System::PacketBuffer::New
    - WeaveMessageLayer*::DecodeMessageWithLength
    - WeaveLogError
    - WeaveMessageLayer*::SecurityMgr::SendKeyErrorMsg
    - nl::Weave::System::PacketBuffer::Free
    - WeaveConnection*::LogId
    - PacketBuffer*::DetachTail
    - PacketBuffer*::Next
    - PacketBuffer*::SetDataLength
    - PacketBuffer*::SetStart
    - WeaveConnection*::StateAllowsReceive
    - PacketBuffer*::CompactHead
    - WeaveConnection*::OnTunneledMessageReceived
    - PacketBuffer*::DataLength
    - WeaveConnection*::OnMessageReceived
    - WeaveMessageLayer*::SecurityMgr::IsKeyError
    - TCPEndPoint*::PutBackReceivedData
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - memcpy
    - PacketBuffer*::Start
    - IPPacketInfo::Clear
    linkageType: ''
    returnType: void
    signature: WeaveConnection::HandleDataReceived(TCPEndPoint *endPoint, PacketBuffer
      *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::DoClose
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1718,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - endPoint
    - err
    argTypes:
    - TCPEndPoint*
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 1719
      start: 1713
    functionDepth: 0
    functionLinenumber: 1713
    functionLinenumberEnd: 1719
    functionName: nl::Weave::WeaveConnection::HandleTcpConnectionClosed
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnection*::DoClose
    linkageType: ''
    returnType: void
    signature: WeaveConnection::HandleTcpConnectionClosed(TCPEndPoint *endPoint, INET_ERROR
      err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1732,1
    - Dst: WeaveConnection*::LogId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1732,1
    - Dst: WeaveConnection*::OnConnectionComplete
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - sm
    - con
    - reqState
    - sessionKeyId
    - peerNodeId
    - encType
    argTypes:
    - WeaveSecurityManager*
    - WeaveConnection*
    - void*
    - uint16_t
    - uint64_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1737
      start: 1721
    functionDepth: 0
    functionLinenumber: 1721
    functionLinenumberEnd: 1737
    functionName: nl::Weave::WeaveConnection::HandleSecureSessionEstablished
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - WeaveConnection*::LogId
    - WeaveConnection*::OnConnectionComplete
    linkageType: ''
    returnType: void
    signature: "WeaveConnection::HandleSecureSessionEstablished(WeaveSecurityManager
      *sm, WeaveConnection *con, void *reqState,\n        uint16_t sessionKeyId, uint64_t
      peerNodeId, uint8_t encType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::DoClose
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - sm
    - con
    - reqState
    - localErr
    - peerNodeId
    - statusReport
    argTypes:
    - WeaveSecurityManager*
    - WeaveConnection*
    - void*
    - WEAVE_ERROR
    - uint64_t
    - Profiles::StatusReporting::StatusReport*
    constantsTouched: []
    func_position:
      end: 1744
      start: 1739
    functionDepth: 0
    functionLinenumber: 1739
    functionLinenumberEnd: 1744
    functionName: nl::Weave::WeaveConnection::HandleSecureSessionError
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnection*::DoClose
    linkageType: ''
    returnType: void
    signature: "WeaveConnection::HandleSecureSessionError(WeaveSecurityManager *sm,
      WeaveConnection *con, void *reqState,\n        WEAVE_ERROR localErr, uint64_t
      peerNodeId, Profiles::StatusReporting::StatusReport *statusReport)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1767,1
    - Dst: Clear
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - msgLayer
    argTypes:
    - WeaveMessageLayer*
    constantsTouched: []
    func_position:
      end: 1786
      start: 1746
    functionDepth: 0
    functionLinenumber: 1746
    functionLinenumberEnd: 1786
    functionName: nl::Weave::WeaveConnection::Init
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - Clear
    - memset
    linkageType: ''
    returnType: void
    signature: WeaveConnection::Init(WeaveMessageLayer *msgLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1803
      start: 1799
    functionDepth: 0
    functionLinenumber: 1799
    functionLinenumberEnd: 1803
    functionName: nl::Weave::WeaveConnection::DefaultConnectionClosedHandler
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnection*::Close
    linkageType: ''
    returnType: void
    signature: WeaveConnection::DefaultConnectionClosedHandler(WeaveConnection *con,
      WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddress::IsIPv6ULA
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1814,1
    - Dst: IPv6InterfaceIdToWeaveNodeId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1814,1
    - Dst: IPAddress::InterfaceId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1814,1
    - Dst: IPAddress::IsIPv6ULA
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1819,1
    - Dst: IPv6InterfaceIdToWeaveNodeId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1819,1
    - Dst: IPAddress::InterfaceId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1819,1
    - Dst: TCPEndPoint*::EnableNoDelay
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1837,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - endPoint
    - localAddr
    - peerAddr
    argTypes:
    - TCPEndPoint*
    - IPAddress
    - IPAddress
    constantsTouched: []
    func_position:
      end: 1840
      start: 1805
    functionDepth: 0
    functionLinenumber: 1805
    functionLinenumberEnd: 1840
    functionName: nl::Weave::WeaveConnection::MakeConnectedTcp
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - IPAddress::IsIPv6ULA
    - IPAddress::InterfaceId
    - TCPEndPoint*::EnableNoDelay
    - IPv6InterfaceIdToWeaveNodeId
    linkageType: ''
    returnType: void
    signature: WeaveConnection::MakeConnectedTcp(TCPEndPoint *endPoint, const IPAddress
      &localAddr, const IPAddress &peerAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1884,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1886,1
    - Dst: IsCASEAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1886,1
    - Dst: IsPASEAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1886,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1889,1
    - Dst: mBle::NewBleEndPoint
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1897,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1898,1
    - Dst: nl::Weave::WeaveConnection::StartConnect
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1917,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1918,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - connObj
    - authMode
    - autoClose
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveAuthMode
    - bool
    constantsTouched: []
    func_position:
      end: 1922
      start: 1880
    functionDepth: 3
    functionLinenumber: 1880
    functionLinenumberEnd: 1922
    functionName: nl::Weave::WeaveConnection::ConnectBle
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - IsPASEAuthMode
    - VerifyOrExit
    - nl::Weave::WeaveConnection::StartConnect
    - SuccessOrExit
    - mBle::NewBleEndPoint
    - IsCASEAuthMode
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveConnection::ConnectBle(BLE_CONNECTION_OBJECT connObj, WeaveAuthMode
      authMode, bool autoClose)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveConnection *>
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1926,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1929,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1931,1
    - Dst: WeaveConnection*::LogId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1931,1
    - Dst: WeaveConnection*::StartSession
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1937,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1942,1
    - Dst: WeaveConnection*::LogId
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1942,1
    - Dst: WeaveConnection*::DoClose
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1943,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - endPoint
    - err
    argTypes:
    - BLEEndPoint*
    - BLE_ERROR
    constantsTouched: []
    func_position:
      end: 1945
      start: 1924
    functionDepth: 0
    functionLinenumber: 1924
    functionLinenumberEnd: 1945
    functionName: nl::Weave::WeaveConnection::HandleBleConnectComplete
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - WeaveConnection*::DoClose
    - WeaveLogProgress
    - WeaveConnection*::LogId
    - static_cast<WeaveConnection *>
    - ExitNow
    - WeaveConnection*::StartSession
    linkageType: ''
    returnType: void
    signature: WeaveConnection::HandleBleConnectComplete(BLEEndPoint *endPoint, BLE_ERROR
      err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveMessageInfo::Clear
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1963,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1967,1
    - Dst: PacketBuffer*::Next
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1967,1
    - Dst: WeaveMessageLayer*::DecodeMessageWithLength
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1970,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1972,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1975,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1980,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1980,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1987,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1988,1
    - Dst: WeaveConnection*::OnMessageReceived
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1992,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:1997,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:2000,1
    - Dst: WeaveMessageLayer*::SecurityMgr::IsKeyError
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:2003,1
    - Dst: WeaveMessageLayer*::SecurityMgr::SendKeyErrorMsg
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:2004,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - endPoint
    - data
    argTypes:
    - BLEEndPoint*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 2006
      start: 1947
    functionDepth: 2
    functionLinenumber: 1947
    functionLinenumberEnd: 2006
    functionName: nl::Weave::WeaveConnection::HandleBleMessageReceived
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - WeaveConnection*::OnMessageReceived
    - PacketBuffer*::Next
    - PacketBuffer*::SetDataLength
    - WeaveLogError
    - WeaveMessageLayer*::SecurityMgr::IsKeyError
    - nl::Weave::System::PacketBuffer::Free
    - WeaveMessageLayer*::SecurityMgr::SendKeyErrorMsg
    - PacketBuffer*::SetStart
    - VerifyOrExit
    - WeaveMessageInfo::Clear
    - SuccessOrExit
    - WeaveMessageLayer*::DecodeMessageWithLength
    linkageType: ''
    returnType: void
    signature: WeaveConnection::HandleBleMessageReceived(BLEEndPoint *endPoint, PacketBuffer
      *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::DoClose
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:2011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - endPoint
    - err
    argTypes:
    - BLEEndPoint*
    - BLE_ERROR
    constantsTouched: []
    func_position:
      end: 2012
      start: 2008
    functionDepth: 0
    functionLinenumber: 2008
    functionLinenumberEnd: 2012
    functionName: nl::Weave::WeaveConnection::HandleBleConnectionClosed
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnection*::DoClose
    linkageType: ''
    returnType: void
    signature: WeaveConnection::HandleBleConnectionClosed(BLEEndPoint *endPoint, BLE_ERROR
      err)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - endPoint
    argTypes:
    - BLEEndPoint*
    constantsTouched: []
    func_position:
      end: 2030
      start: 2014
    functionDepth: 0
    functionLinenumber: 2014
    functionLinenumberEnd: 2030
    functionName: nl::Weave::WeaveConnection::MakeConnectedBle
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveConnection::MakeConnectedBle(BLEEndPoint *endPoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OnReceiveError
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:2038,1
    - Dst: nl::Weave::WeaveConnection::GetPeerAddressInfo
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:2043,1
    - Dst: OnReceiveError
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:2044,1
    - Dst: nl::Weave::WeaveConnection::DoClose
      Src: /src/openweave-core/src/lib/core/WeaveConnection.cpp:2047,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - err
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 2049
      start: 2034
    functionDepth: 3
    functionLinenumber: 2034
    functionLinenumberEnd: 2049
    functionName: nl::Weave::WeaveConnection::DisconnectOnError
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnection.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveConnection::DoClose
    - nl::Weave::WeaveConnection::GetPeerAddressInfo
    - OnReceiveError
    linkageType: ''
    returnType: void
    signature: WeaveConnection::DisconnectOnError (WEAVE_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:62,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:70,1
    - Dst: static_cast<TLVTagControl>
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:71,1
    - Dst: TLVReader::GetControlByte
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:71,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:73,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:76,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:78,1
    - Dst: TLVReader::GetReadPoint
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:78,1
    - Dst: IsProfileTag
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:80,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:82,1
    - Dst: nl::Weave::TLV::Debug::DecodeTagControl
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:82,1
    - Dst: VendorIdFromTag
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:82,1
    - Dst: ProfileNumFromTag
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:82,1
    - Dst: TagNumFromTag
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:82,1
    - Dst: IsContextTag
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:84,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:86,1
    - Dst: nl::Weave::TLV::Debug::DecodeTagControl
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:86,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:86,1
    - Dst: IsSpecialTag
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:88,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:91,1
    - Dst: nl::Weave::TLV::Debug::DecodeTagControl
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:91,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:95,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:98,1
    - Dst: nl::Weave::TLV::Debug::DecodeType
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:98,1
    - Dst: TLVTypeIsContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:101,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:103,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:108,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:110,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:116,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:117,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:117,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:118,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:123,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:124,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:124,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:125,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:130,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:131,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:131,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:132,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:137,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:138,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:138,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:139,1
    - Dst: TLVReader::GetDataPtr
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:145,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:146,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:146,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:148,1
    - Dst: static_cast<int>
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:148,1
    - Dst: TLVReader::GetDataPtr
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:154,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:155,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:155,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:158,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:160,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:164,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:168,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:172,1
    - Dst: aWriter
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:179,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 77
    argCount: 4
    argNames:
    - aWriter
    - aIndent
    - aReader
    - aDepth
    argTypes:
    - DumpWriter
    - char*
    - TLVReader
    - size_t
    constantsTouched: []
    func_position:
      end: 180
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 180
    functionName: nl::Weave::TLV::Debug::DumpHandler
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp
    functionUses: 0
    functionsReached:
    - TLVTypeIsContainer
    - VendorIdFromTag
    - TLVReader::Get
    - TLVReader::Init
    - aWriter
    - IsContextTag
    - VerifyOrExit
    - TLVReader::GetReadPoint
    - TLVReader::GetDataPtr
    - TLVReader::GetControlByte
    - ProfileNumFromTag
    - TLVReader::GetType
    - nl::Weave::TLV::Debug::DecodeType
    - nl::Weave::TLV::Debug::DecodeTagControl
    - IsSpecialTag
    - ContextTag
    - static_cast<TLVTagControl>
    - IsProfileTag
    - static_cast<int>
    - TagNumFromTag
    linkageType: ''
    returnType: void
    signature: DumpHandler(DumpWriter aWriter, const char *aIndent, const TLVReader
      &aReader, size_t aDepth)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - aTagControl
    argTypes:
    - TLVTagControl
    constantsTouched: []
    func_position:
      end: 238
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 238
    functionName: nl::Weave::TLV::Debug::DecodeTagControl
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*DecodeTagControl(const TLVTagControl aTagControl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 1
    argNames:
    - aType
    argTypes:
    - TLVType
    constantsTouched: []
    func_position:
      end: 308
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 308
    functionName: nl::Weave::TLV::Debug::DecodeType
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*DecodeType(const TLVType aType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::Debug::DumpHandler
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aWriter
    - aReader
    argTypes:
    - DumpWriter
    - TLVReader
    constantsTouched: []
    func_position:
      end: 330
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 330
    functionName: nl::Weave::TLV::Debug::DumpIterator
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::Debug::DumpHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DumpIterator(DumpWriter aWriter, const TLVReader &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:352,1
    - Dst: static_cast<DumpContext *>
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:354,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:356,1
    - Dst: nl::Weave::TLV::Debug::DumpHandler
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - aReader
    - aDepth
    - aContext
    argTypes:
    - TLVReader
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 365
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 365
    functionName: nl::Weave::TLV::Debug::DumpHandler
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::TLV::Debug::DumpHandler
    - static_cast<DumpContext *>
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DumpHandler(const TLVReader &aReader, size_t aDepth, void *aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::Utilities::Iterate
      Src: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aReader
    - aWriter
    argTypes:
    - TLVReader
    - DumpWriter
    constantsTouched: []
    func_position:
      end: 388
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 388
    functionName: nl::Weave::TLV::Debug::Dump
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::TLV::Utilities::Iterate
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Dump(const TLVReader &aReader, DumpWriter aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:80,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: nl::Weave::ExchangeContext::IsInitiator
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: ExchangeContext::IsInitiator(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:90,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: nl::Weave::ExchangeContext::IsConnectionClosed
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: ExchangeContext::IsConnectionClosed(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:101,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: nl::Weave::ExchangeContext::IsResponseExpected
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: ExchangeContext::IsResponseExpected(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:115,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inInitiator
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: nl::Weave::ExchangeContext::SetInitiator
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - SetFlag
    linkageType: ''
    returnType: void
    signature: ExchangeContext::SetInitiator(bool inInitiator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:130,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inConnectionClosed
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: nl::Weave::ExchangeContext::SetConnectionClosed
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - SetFlag
    linkageType: ''
    returnType: void
    signature: ExchangeContext::SetConnectionClosed(bool inConnectionClosed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:141,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: nl::Weave::ExchangeContext::IsAckPending
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: ExchangeContext::IsAckPending(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:152,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: nl::Weave::ExchangeContext::HasPeerRequestedAck
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: ExchangeContext::HasPeerRequestedAck(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:163,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: nl::Weave::ExchangeContext::HasRcvdMsgFromPeer
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: ExchangeContext::HasRcvdMsgFromPeer(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:177,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inMsgRcvdFromPeer
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: nl::Weave::ExchangeContext::SetMsgRcvdFromPeer
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - SetFlag
    linkageType: ''
    returnType: void
    signature: ExchangeContext::SetMsgRcvdFromPeer(bool inMsgRcvdFromPeer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:190,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inAckPending
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: nl::Weave::ExchangeContext::SetAckPending
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - SetFlag
    linkageType: ''
    returnType: void
    signature: ExchangeContext::SetAckPending(bool inAckPending)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:204,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inPeerRequestedAck
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: nl::Weave::ExchangeContext::SetPeerRequestedAck
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - SetFlag
    linkageType: ''
    returnType: void
    signature: ExchangeContext::SetPeerRequestedAck(bool inPeerRequestedAck)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:220,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inDropAck
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: nl::Weave::ExchangeContext::SetDropAck
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - SetFlag
    linkageType: ''
    returnType: void
    signature: ExchangeContext::SetDropAck(bool inDropAck)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:232,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: nl::Weave::ExchangeContext::ShouldDropAck
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: ExchangeContext::ShouldDropAck(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - profileId
    - msgType
    argTypes:
    - uint32_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: nl::Weave::IsWRMPControlMessage
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsWRMPControlMessage(uint32_t profileId, uint8_t msgType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:253,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inResponseExpected
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: nl::Weave::ExchangeContext::SetResponseExpected
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - SetFlag
    linkageType: ''
    returnType: void
    signature: ExchangeContext::SetResponseExpected(bool inResponseExpected)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:261,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: nl::Weave::ExchangeContext::AutoRequestAck
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: ExchangeContext::AutoRequestAck() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:273,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - autoReqAck
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: nl::Weave::ExchangeContext::SetAutoRequestAck
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - SetFlag
    linkageType: ''
    returnType: void
    signature: ExchangeContext::SetAutoRequestAck(bool autoReqAck)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:282,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 283
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 283
    functionName: nl::Weave::ExchangeContext::GetAutoReleaseKey
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: ExchangeContext::GetAutoReleaseKey() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:294,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - autoReleaseKey
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: nl::Weave::ExchangeContext::SetAutoReleaseKey
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - SetFlag
    linkageType: ''
    returnType: void
    signature: ExchangeContext::SetAutoReleaseKey(bool autoReleaseKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:303,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: nl::Weave::ExchangeContext::ShouldAutoReleaseConnection
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: ExchangeContext::ShouldAutoReleaseConnection() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:315,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - autoReleaseCon
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: nl::Weave::ExchangeContext::SetShouldAutoReleaseConnection
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - SetFlag
    linkageType: ''
    returnType: void
    signature: ExchangeContext::SetShouldAutoReleaseConnection(bool autoReleaseCon)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:321,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inCaptureSentMessage
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: nl::Weave::ExchangeContext::SetCaptureSentMessage
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - SetFlag
    linkageType: ''
    returnType: void
    signature: ExchangeContext::SetCaptureSentMessage(bool inCaptureSentMessage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:326,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: nl::Weave::ExchangeContext::ShouldCaptureSentMessage
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: ExchangeContext::ShouldCaptureSentMessage() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:341,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 342
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 342
    functionName: nl::Weave::ExchangeContext::UseEphemeralUDPPort
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: ExchangeContext::UseEphemeralUDPPort(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:354,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 355
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 355
    functionName: nl::Weave::ExchangeContext::SetUseEphemeralUDPPort
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - SetFlag
    linkageType: ''
    returnType: void
    signature: ExchangeContext::SetUseEphemeralUDPPort(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveMessageInfo::Clear
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:392,1
    - Dst: nl::Weave::ExchangeContext::SendMessage
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - profileId
    - msgType
    - msgBuf
    - sendFlags
    - msgCtxt
    argTypes:
    - uint32_t
    - uint8_t
    - PacketBuffer*
    - uint16_t
    - void*
    constantsTouched: []
    func_position:
      end: 399
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 399
    functionName: nl::Weave::ExchangeContext::SendMessage
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::ExchangeContext::SendMessage
    - WeaveMessageInfo::Clear
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "ExchangeContext::SendMessage(uint32_t profileId, uint8_t msgType,
      PacketBuffer *msgBuf, uint16_t sendFlags,\n    void *msgCtxt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:445,1
    - Dst: nl::Weave::ExchangeContext::AddRef
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:450,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:464,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:468,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:476,1
    - Dst: IsWRMPControlMessage
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:483,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:493,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:507,1
    - Dst: nl::Weave::ExchangeContext::IsConnectionClosed
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:507,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:517,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:522,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:537,1
    - Dst: nl::Weave::ExchangeContext::EncodeExchHeader
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:539,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:540,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:546,1
    - Dst: nl::Weave::ExchangeContext::IsResponseExpected
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:546,1
    - Dst: nl::Weave::ExchangeContext::SetResponseExpected
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:548,1
    - Dst: nl::Weave::ExchangeContext::StartResponseTimer
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:553,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:554,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:573,1
    - Dst: nl::Weave::ExchangeContext::IsInitiator
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:573,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:576,1
    - Dst: nl::Weave::ExchangeContext::UseEphemeralUDPPort
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:576,1
    - Dst: nl::Weave::ExchangeContext::ShouldCaptureSentMessage
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:582,1
    - Dst: nl::Weave::ExchangeContext::SendMessage
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:595,1
    - Dst: MessageLayer::SelectDestNodeIdAndAddress
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:605,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:606,1
    - Dst: MessageLayer::EncodeMessage
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:607,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:609,1
    - Dst: nl::Weave::System::PacketBuffer::RightSize
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:612,1
    - Dst: AddToRetransTable
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:615,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:616,1
    - Dst: SendFromRetransTable
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:619,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:621,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:623,1
    - Dst: WRMPStartTimer
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:625,1
    - Dst: MessageLayer::SendMessage
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:632,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:636,1
    - Dst: nl::Weave::ExchangeContext::StartTimerT
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:644,1
    - Dst: nlLogError
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:646,1
    - Dst: WeaveLogRetain
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:656,1
    - Dst: LogId
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:658,1
    - Dst: nl::Weave::ExchangeContext::IsResponseExpected
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:660,1
    - Dst: nl::Weave::ExchangeContext::CancelResponseTimer
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:662,1
    - Dst: nl::Weave::ExchangeContext::SetResponseExpected
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:663,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:667,1
    - Dst: nl::Weave::ExchangeContext::Release
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:677,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 116
    argCount: 6
    argNames:
    - profileId
    - msgType
    - msgBuf
    - sendFlags
    - msgInfo
    - msgCtxt
    argTypes:
    - uint32_t
    - uint8_t
    - PacketBuffer*
    - uint16_t
    - WeaveMessageInfo*
    - void*
    constantsTouched: []
    func_position:
      end: 680
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 680
    functionName: nl::Weave::ExchangeContext::SendMessage
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 2
    functionsReached:
    - WEAVE_FAULT_INJECT
    - SendFromRetransTable
    - nl::Weave::ExchangeContext::IsInitiator
    - nl::Weave::ExchangeContext::AddRef
    - IsWRMPControlMessage
    - MessageLayer::SendMessage
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::ExchangeContext::StartResponseTimer
    - nl::Weave::ExchangeContext::Release
    - AddToRetransTable
    - SetFlag
    - nl::Weave::ExchangeContext::SendMessage
    - nlLogError
    - nl::Weave::System::PacketBuffer::RightSize
    - nl::Weave::ExchangeContext::UseEphemeralUDPPort
    - MessageLayer::SelectDestNodeIdAndAddress
    - ExitNow
    - memset
    - WeaveLogRetain
    - nl::Weave::ExchangeContext::SetResponseExpected
    - nl::Weave::ExchangeContext::StartTimerT
    - MessageLayer::EncodeMessage
    - nl::Weave::ExchangeContext::EncodeExchHeader
    - nl::Weave::ExchangeContext::IsResponseExpected
    - nl::Weave::ExchangeContext::CancelResponseTimer
    - WRMPStartTimer
    - nl::Weave::ExchangeContext::IsConnectionClosed
    - SuccessOrExit
    - nl::Weave::ExchangeContext::ShouldCaptureSentMessage
    - LogId
    - VerifyOrDie
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "ExchangeContext::SendMessage(uint32_t profileId, uint8_t msgType,
      PacketBuffer *msgBuf, uint16_t sendFlags,\n    WeaveMessageInfo * msgInfo, void
      *msgCtxt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:700,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:701,1
    - Dst: nl::Weave::ExchangeContext::SendMessage
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:704,1
    - Dst: Weave::WeaveMessageLayer::IsSendErrorNonCritical
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:710,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:712,1
    - Dst: long
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:713,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:718,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 723
      start: 694
    functionDepth: 2
    functionLinenumber: 694
    functionLinenumberEnd: 723
    functionName: nl::Weave::ExchangeContext::SendCommonNullMessage
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - long
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - nl::Weave::ExchangeContext::SendMessage
    - Weave::WeaveMessageLayer::IsSendErrorNonCritical
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ExchangeContext::SendCommonNullMessage(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ExchangeContext::IsInitiator
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:757,1
    - Dst: nl::Weave::ExchangeContext::HasPeerRequestedAck
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:767,1
    - Dst: WRMPExpireTicks
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:770,1
    - Dst: nl::Weave::ExchangeContext::SetAckPending
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:776,1
    - Dst: WRMPStartTimer
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:779,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:782,1
    - Dst: IsWRMPControlMessage
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:788,1
    - Dst: nl::Weave::WeaveExchangeManager::PrependHeader
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:795,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - exchangeHeader
    - profileId
    - msgType
    - msgBuf
    - sendFlags
    argTypes:
    - WeaveExchangeHeader*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 798
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 798
    functionName: nl::Weave::ExchangeContext::EncodeExchHeader
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 1
    functionsReached:
    - IsWRMPControlMessage
    - WeaveLogProgress
    - WRMPExpireTicks
    - nl::Weave::ExchangeContext::SetAckPending
    - nl::Weave::ExchangeContext::HasPeerRequestedAck
    - WRMPStartTimer
    - nl::Weave::ExchangeContext::IsInitiator
    - nl::Weave::WeaveExchangeManager::PrependHeader
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "ExchangeContext::EncodeExchHeader(WeaveExchangeHeader *exchangeHeader,
      uint32_t profileId, uint8_t msgType,\n    PacketBuffer *msgBuf, uint16_t sendFlags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ExchangeContext::TeardownTrickleRetransmit
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 808
      start: 804
    functionDepth: 1
    functionLinenumber: 804
    functionLinenumberEnd: 808
    functionName: nl::Weave::ExchangeContext::CancelRetrans
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ExchangeContext::TeardownTrickleRetransmit
    linkageType: ''
    returnType: void
    signature: ExchangeContext::CancelRetrans()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:818,1
    - Dst: EXCHANGE_CONTEXT_ID
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 820
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 820
    functionName: nl::Weave::ExchangeContext::AddRef
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    - EXCHANGE_CONTEXT_ID
    linkageType: ''
    returnType: void
    signature: ExchangeContext::AddRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WRMPExpireTicks
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:833,1
    - Dst: nl::Weave::ExchangeContext::WRMPFlushAcks
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:841,1
    - Dst: ClearRetransmitTable
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:846,1
    - Dst: WRMPStartTimer
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:850,1
    - Dst: nl::Weave::ExchangeContext::CancelRetrans
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:854,1
    - Dst: nl::Weave::ExchangeContext::CancelResponseTimer
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:856,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - clearRetransTable
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 857
      start: 822
    functionDepth: 2
    functionLinenumber: 822
    functionLinenumberEnd: 857
    functionName: nl::Weave::ExchangeContext::DoClose
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ExchangeContext::WRMPFlushAcks
    - WRMPExpireTicks
    - nl::Weave::ExchangeContext::CancelResponseTimer
    - WRMPStartTimer
    - ClearRetransmitTable
    - nl::Weave::ExchangeContext::CancelRetrans
    linkageType: ''
    returnType: void
    signature: ExchangeContext::DoClose(bool clearRetransTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:867,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:870,1
    - Dst: EXCHANGE_CONTEXT_ID
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:870,1
    - Dst: nl::Weave::ExchangeContext::DoClose
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:873,1
    - Dst: nl::Weave::ExchangeContext::Release
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:874,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 875
      start: 865
    functionDepth: 3
    functionLinenumber: 865
    functionLinenumberEnd: 875
    functionName: nl::Weave::ExchangeContext::Close
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - EXCHANGE_CONTEXT_ID
    - nl::Weave::ExchangeContext::DoClose
    - nl::Weave::ExchangeContext::Release
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: ExchangeContext::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:883,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:886,1
    - Dst: EXCHANGE_CONTEXT_ID
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:886,1
    - Dst: nl::Weave::ExchangeContext::DoClose
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:889,1
    - Dst: nl::Weave::ExchangeContext::Release
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 891
      start: 881
    functionDepth: 3
    functionLinenumber: 881
    functionLinenumberEnd: 891
    functionName: nl::Weave::ExchangeContext::Abort
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - EXCHANGE_CONTEXT_ID
    - nl::Weave::ExchangeContext::DoClose
    - nl::Weave::ExchangeContext::Release
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: ExchangeContext::Abort()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:901,1
    - Dst: nl::Weave::ExchangeContext::GetAutoReleaseKey
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:915,1
    - Dst: WeaveExchangeManager*::MessageLayer::SecurityMgr::ReleaseKey
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:917,1
    - Dst: nl::Weave::ExchangeContext::ShouldAutoReleaseConnection
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:921,1
    - Dst: nl::Weave::ExchangeContext::SetShouldAutoReleaseConnection
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:923,1
    - Dst: nl::Weave::ExchangeContext::Release
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:924,1
    - Dst: nl::Weave::ExchangeContext::DoClose
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:927,1
    - Dst: WeaveExchangeManager*::MessageLayer::SignalMessageLayerActivityChanged
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:932,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:934,1
    - Dst: EXCHANGE_CONTEXT_ID
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:934,1
    - Dst: SYSTEM_STATS_DECREMENT
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:936,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:942,1
    - Dst: EXCHANGE_CONTEXT_ID
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:942,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 945
      start: 899
    functionDepth: 3
    functionLinenumber: 899
    functionLinenumberEnd: 945
    functionName: nl::Weave::ExchangeContext::Release
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 4
    functionsReached:
    - nl::Weave::ExchangeContext::ShouldAutoReleaseConnection
    - SYSTEM_STATS_DECREMENT
    - WeaveLogProgress
    - WeaveExchangeManager*::MessageLayer::SignalMessageLayerActivityChanged
    - nl::Weave::ExchangeContext::DoClose
    - EXCHANGE_CONTEXT_ID
    - nl::Weave::ExchangeContext::GetAutoReleaseKey
    - WeaveExchangeManager*::MessageLayer::SecurityMgr::ReleaseKey
    - nl::Weave::ExchangeContext::Release
    - nl::Weave::ExchangeContext::SetShouldAutoReleaseConnection
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: ExchangeContext::Release(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveMessageInfo::Clear
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:958,1
    - Dst: MessageLayer::DecodeHeader
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:964,1
    - Dst: MessageLayer::ResendMessage
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:974,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 975
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 975
    functionName: nl::Weave::ExchangeContext::ResendMessage
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - MessageLayer::DecodeHeader
    - MessageLayer::ResendMessage
    - WeaveMessageInfo::Clear
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ExchangeContext::ResendMessage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRandU32
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:991,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:993,1
    - Dst: MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:994,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 995
      start: 983
    functionDepth: 0
    functionLinenumber: 983
    functionLinenumberEnd: 995
    functionName: nl::Weave::ExchangeContext::StartTimerT
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 1
    functionsReached:
    - GetRandU32
    - MessageLayer::SystemLayer::StartTimer
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ExchangeContext::StartTimerT()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ExchangeContext*>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:999,1
    - Dst: ExchangeContext*::StartTimerT
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1005,1
    - Dst: nlLogError
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1007,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 1009
      start: 997
    functionDepth: 0
    functionLinenumber: 997
    functionLinenumberEnd: 1009
    functionName: nl::Weave::ExchangeContext::TimerT
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - ExchangeContext*::StartTimerT
    - nlLogError
    - reinterpret_cast<ExchangeContext*>
    linkageType: ''
    returnType: void
    signature: ExchangeContext::TimerT(System::Layer* aSystemLayer, void* aAppState,
      System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ExchangeContext*>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1013,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1021,1
    - Dst: ExchangeContext*::ResendMessage
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1022,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1026,1
    - Dst: System::Layer*::StartTimer
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1032,1
    - Dst: nlLogError
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1034,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 1036
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1036
    functionName: nl::Weave::ExchangeContext::TimerTau
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - System::Layer*::StartTimer
    - WeaveLogDetail
    - ExchangeContext*::ResendMessage
    - nlLogError
    - reinterpret_cast<ExchangeContext*>
    linkageType: ''
    returnType: void
    signature: ExchangeContext::TimerTau(System::Layer* aSystemLayer, void* aAppState,
      System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ExchangeContext::IsInitiator
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1061,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 3
    argNames:
    - msgCon
    - msgInfo
    - exchangeHeader
    argTypes:
    - WeaveConnection*
    - WeaveMessageInfo*
    - WeaveExchangeHeader*
    constantsTouched: []
    func_position:
      end: 1062
      start: 1039
    functionDepth: 1
    functionLinenumber: 1039
    functionLinenumberEnd: 1062
    functionName: nl::Weave::ExchangeContext::MatchExchange
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ExchangeContext::IsInitiator
    linkageType: ''
    returnType: bool
    signature: "ExchangeContext::MatchExchange(WeaveConnection *msgCon, const WeaveMessageInfo
      *msgInfo,\n        const WeaveExchangeHeader *exchangeHeader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1081,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1085,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - pktInfo
    - msgInfo
    argTypes:
    - IPPacketInfo*
    - WeaveMessageInfo*
    constantsTouched: []
    func_position:
      end: 1089
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1089
    functionName: nl::Weave::ExchangeContext::HandleTrickleMessage
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: ExchangeContext::HandleTrickleMessage(const IPPacketInfo *pktInfo,
      const WeaveMessageInfo *msgInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ExchangeContext::CancelRetrans
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1107,1
    - Dst: MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1112,1
    - Dst: nlLogError
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1115,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - retransInterval
    - threshold
    - timeout
    argTypes:
    - uint32_t
    - uint8_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1121
      start: 1104
    functionDepth: 2
    functionLinenumber: 1104
    functionLinenumberEnd: 1121
    functionName: nl::Weave::ExchangeContext::SetupTrickleRetransmit
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - nlLogError
    - MessageLayer::SystemLayer::StartTimer
    - WeaveLogDetail
    - nl::Weave::ExchangeContext::CancelRetrans
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ExchangeContext::SetupTrickleRetransmit(uint32_t retransInterval, uint8_t
      threshold, uint32_t timeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: System::Layer*::CancelTimer
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1137,1
    - Dst: System::Layer*::CancelTimer
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1138,1
    - Dst: System::Layer*::CancelTimer
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1139,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1129
    functionDepth: 2
    functionLinenumber: 1129
    functionLinenumberEnd: 1148
    functionName: nl::Weave::ExchangeContext::TeardownTrickleRetransmit
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - System::Layer*::CancelTimer
    linkageType: ''
    returnType: void
    signature: ExchangeContext::TeardownTrickleRetransmit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ExchangeContext*>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1152,1
    - Dst: ExchangeContext*::CancelRetrans
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1156,1
    - Dst: ExchangeContext*::OnRetransmissionTimeout
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 1161
      start: 1150
    functionDepth: 0
    functionLinenumber: 1150
    functionLinenumberEnd: 1161
    functionName: nl::Weave::ExchangeContext::CancelRetransmissionTimer
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - ExchangeContext*::CancelRetrans
    - reinterpret_cast<ExchangeContext*>
    - ExchangeContext*::OnRetransmissionTimeout
    linkageType: ''
    returnType: void
    signature: ExchangeContext::CancelRetransmissionTimer(System::Layer* aSystemLayer,
      void* aAppState, System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1166
    functionName: nl::Weave::ExchangeContext::StartResponseTimer
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 1
    functionsReached:
    - MessageLayer::SystemLayer::StartTimer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ExchangeContext::StartResponseTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageLayer::SystemLayer::CancelTimer
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1168
    functionDepth: 0
    functionLinenumber: 1168
    functionLinenumberEnd: 1171
    functionName: nl::Weave::ExchangeContext::CancelResponseTimer
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 2
    functionsReached:
    - MessageLayer::SystemLayer::CancelTimer
    linkageType: ''
    returnType: void
    signature: ExchangeContext::CancelResponseTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ExchangeContext*>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1175,1
    - Dst: ExchangeContext*::OnResponseTimeout
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 1183
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1183
    functionName: nl::Weave::ExchangeContext::HandleResponseTimeout
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - ExchangeContext*::OnResponseTimeout
    - reinterpret_cast<ExchangeContext*>
    linkageType: ''
    returnType: void
    signature: ExchangeContext::HandleResponseTimeout(System::Layer* aSystemLayer,
      void* aAppState, System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearRetransmitTable
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1199,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1202,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ackMsgId
    - rCtxt
    argTypes:
    - uint32_t
    - void**
    constantsTouched: []
    func_position:
      end: 1215
      start: 1186
    functionDepth: 0
    functionLinenumber: 1186
    functionLinenumberEnd: 1215
    functionName: nl::Weave::ExchangeContext::WRMPCheckAndRemRetransTable
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - ClearRetransmitTable
    linkageType: ''
    returnType: bool
    signature: ExchangeContext::WRMPCheckAndRemRetransTable(uint32_t ackMsgId, void
      **rCtxt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ExchangeContext::IsAckPending
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1222,1
    - Dst: nl::Weave::ExchangeContext::SendCommonNullMessage
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1225,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1218
    functionDepth: 3
    functionLinenumber: 1218
    functionLinenumberEnd: 1237
    functionName: nl::Weave::ExchangeContext::WRMPFlushAcks
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    - nl::Weave::ExchangeContext::IsAckPending
    - nl::Weave::ExchangeContext::SendCommonNullMessage
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ExchangeContext::WRMPFlushAcks(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ExchangeContext::HasRcvdMsgFromPeer
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1246
    functionDepth: 1
    functionLinenumber: 1246
    functionLinenumberEnd: 1250
    functionName: nl::Weave::ExchangeContext::GetCurrentRetransmitTimeout
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ExchangeContext::HasRcvdMsgFromPeer
    linkageType: ''
    returnType: uint32_t
    signature: ExchangeContext::GetCurrentRetransmitTimeout(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1282,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1283,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1285,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1288,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1289,1
    - Dst: nl::Weave::ExchangeContext::SendMessage
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - pauseTimeMillis
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1301
      start: 1275
    functionDepth: 2
    functionLinenumber: 1275
    functionLinenumberEnd: 1301
    functionName: nl::Weave::ExchangeContext::WRMPSendThrottleFlow
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::ExchangeContext::SendMessage
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - PacketBuffer*::Start
    - nl::Weave::Encoding::LittleEndian::Write32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ExchangeContext::WRMPSendThrottleFlow(uint32_t pauseTimeMillis)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1338,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1339,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1341,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1345,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1346,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1347,1
    - Dst: nl::Weave::ExchangeContext::SendMessage
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - pauseTimeMillis
    - delayedNodeId
    argTypes:
    - uint32_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1359
      start: 1331
    functionDepth: 2
    functionLinenumber: 1331
    functionLinenumberEnd: 1359
    functionName: nl::Weave::ExchangeContext::WRMPSendDelayedDelivery
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Encoding::LittleEndian::Write64
    - nl::Weave::ExchangeContext::SendMessage
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - PacketBuffer*::Start
    - nl::Weave::Encoding::LittleEndian::Write32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ExchangeContext::WRMPSendDelayedDelivery(uint32_t pauseTimeMillis,
      uint64_t delayedNodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ExchangeContext::WRMPCheckAndRemRetransTable
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1382,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1385,1
    - Dst: OnAckRcvd
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1396,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1400,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - exchHeader
    - msgInfo
    argTypes:
    - WeaveExchangeHeader*
    - WeaveMessageInfo*
    constantsTouched: []
    func_position:
      end: 1410
      start: 1376
    functionDepth: 1
    functionLinenumber: 1376
    functionLinenumberEnd: 1410
    functionName: nl::Weave::ExchangeContext::WRMPHandleRcvdAck
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - OnAckRcvd
    - WeaveLogProgress
    - nl::Weave::ExchangeContext::WRMPCheckAndRemRetransTable
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ExchangeContext::WRMPHandleRcvdAck(const WeaveExchangeHeader *exchHeader,
      const WeaveMessageInfo *msgInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WRMPExpireTicks
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1417,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1423,1
    - Dst: nl::Weave::ExchangeContext::SendCommonNullMessage
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1436,1
    - Dst: nl::Weave::ExchangeContext::SetAckPending
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1443,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1446,1
    - Dst: nl::Weave::ExchangeContext::IsAckPending
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1451,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1454,1
    - Dst: nl::Weave::ExchangeContext::SendCommonNullMessage
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1458,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1459,1
    - Dst: GetTickCounterFromTimeDelta
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1464,1
    - Dst: nl::Weave::System::Timer::GetCurrentEpoch
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1464,1
    - Dst: nl::Weave::ExchangeContext::SetAckPending
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1465,1
    - Dst: WRMPStartTimer
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - msgInfo
    argTypes:
    - WeaveMessageInfo*
    constantsTouched: []
    func_position:
      end: 1472
      start: 1412
    functionDepth: 3
    functionLinenumber: 1412
    functionLinenumberEnd: 1472
    functionName: nl::Weave::ExchangeContext::WRMPHandleNeedsAck
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - GetTickCounterFromTimeDelta
    - nl::Weave::ExchangeContext::SendCommonNullMessage
    - WeaveLogProgress
    - nl::Weave::ExchangeContext::IsAckPending
    - WRMPExpireTicks
    - nl::Weave::ExchangeContext::SetAckPending
    - WRMPStartTimer
    - nl::Weave::System::Timer::GetCurrentEpoch
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ExchangeContext::WRMPHandleNeedsAck(const WeaveMessageInfo *msgInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WRMPExpireTicks
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1477,1
    - Dst: GetTickCounterFromTimeDelta
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1484,1
    - Dst: nl::Weave::System::Timer::GetCurrentEpoch
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1484,1
    - Dst: OnThrottleRcvd
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1517,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1521,1
    - Dst: WRMPStartTimer
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1526,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - PauseTimeMillis
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1528
      start: 1474
    functionDepth: 1
    functionLinenumber: 1474
    functionLinenumberEnd: 1528
    functionName: nl::Weave::ExchangeContext::HandleThrottleFlow
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - GetTickCounterFromTimeDelta
    - WRMPExpireTicks
    - WRMPStartTimer
    - nl::Weave::System::Timer::GetCurrentEpoch
    - WeaveLogDetail
    - OnThrottleRcvd
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ExchangeContext::HandleThrottleFlow(uint32_t PauseTimeMillis)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ExchangeContext::HandleMessage
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - msgInfo
    - exchHeader
    - msgBuf
    argTypes:
    - WeaveMessageInfo*
    - WeaveExchangeHeader*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1537
      start: 1534
    functionDepth: 1
    functionLinenumber: 1534
    functionLinenumberEnd: 1537
    functionName: nl::Weave::ExchangeContext::HandleMessage
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::ExchangeContext::HandleMessage
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ExchangeContext::HandleMessage(WeaveMessageInfo *msgInfo, const WeaveExchangeHeader
      *exchHeader, PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ExchangeContext::AddRef
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1572,1
    - Dst: nl::Weave::ExchangeContext::WRMPHandleRcvdAck
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1579,1
    - Dst: nl::Weave::ExchangeContext::SetPeerRequestedAck
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1587,1
    - Dst: nl::Weave::ExchangeContext::ShouldDropAck
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1589,1
    - Dst: nl::Weave::ExchangeContext::WRMPHandleNeedsAck
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1591,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1600,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1609,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1610,1
    - Dst: nl::Weave::ExchangeContext::HandleThrottleFlow
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1611,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1612,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1619,1
    - Dst: nl::Weave::ExchangeContext::CancelResponseTimer
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1624,1
    - Dst: nl::Weave::ExchangeContext::SetResponseExpected
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1628,1
    - Dst: umhandler
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1633,1
    - Dst: const_cast<WeaveMessageInfo *>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1633,1
    - Dst: OnMessageReceived
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1639,1
    - Dst: const_cast<WeaveMessageInfo *>
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1639,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1645,1
    - Dst: nl::Weave::ExchangeContext::Release
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1656,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1660,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 4
    argNames:
    - msgInfo
    - exchHeader
    - msgBuf
    - umhandler
    argTypes:
    - WeaveMessageInfo*
    - WeaveExchangeHeader*
    - PacketBuffer*
    - ExchangeContext::MessageReceiveFunct
    constantsTouched: []
    func_position:
      end: 1664
      start: 1559
    functionDepth: 4
    functionLinenumber: 1559
    functionLinenumberEnd: 1664
    functionName: nl::Weave::ExchangeContext::HandleMessage
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::ExchangeContext::ShouldDropAck
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::ExchangeContext::WRMPHandleNeedsAck
    - nl::Weave::Encoding::LittleEndian::Read32
    - OnMessageReceived
    - ExitNow
    - nl::Weave::ExchangeContext::CancelResponseTimer
    - nl::Weave::ExchangeContext::SetResponseExpected
    - nl::Weave::ExchangeContext::WRMPHandleRcvdAck
    - nl::Weave::ExchangeContext::Release
    - nl::Weave::ExchangeContext::SetPeerRequestedAck
    - const_cast<WeaveMessageInfo *>
    - PacketBuffer*::Start
    - umhandler
    - nl::Weave::ExchangeContext::HandleThrottleFlow
    - nl::Weave::ExchangeContext::AddRef
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "ExchangeContext::HandleMessage(WeaveMessageInfo *msgInfo, const WeaveExchangeHeader
      *exchHeader, PacketBuffer *msgBuf,\n                                           ExchangeContext::MessageReceiveFunct
      umhandler)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ExchangeContext::SetConnectionClosed
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1669,1
    - Dst: nl::Weave::ExchangeContext::ShouldAutoReleaseConnection
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1672,1
    - Dst: nl::Weave::ExchangeContext::SetShouldAutoReleaseConnection
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1674,1
    - Dst: nl::Weave::ExchangeContext::Release
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1675,1
    - Dst: OnConnectionClosed
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1684,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - conErr
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1685
      start: 1666
    functionDepth: 4
    functionLinenumber: 1666
    functionLinenumberEnd: 1685
    functionName: nl::Weave::ExchangeContext::HandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - OnConnectionClosed
    - nl::Weave::ExchangeContext::ShouldAutoReleaseConnection
    - nl::Weave::ExchangeContext::Release
    - nl::Weave::ExchangeContext::SetConnectionClosed
    - nl::Weave::ExchangeContext::SetShouldAutoReleaseConnection
    linkageType: ''
    returnType: void
    signature: ExchangeContext::HandleConnectionClosed(WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveConnection::GetPeerDescription
      Src: /src/openweave-core/src/lib/core/ExchangeContext.cpp:1698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1700
      start: 1696
    functionDepth: 2
    functionLinenumber: 1696
    functionLinenumberEnd: 1700
    functionName: nl::Weave::ExchangeContext::GetPeerDescription
    functionSourceFile: /src/openweave-core/src/lib/core/ExchangeContext.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveConnection::GetPeerDescription
    linkageType: ''
    returnType: void
    signature: ExchangeContext::GetPeerDescription(char * buf, uint32_t bufSize) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::ClearElementState
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:153,1
    - Dst: SetContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - data
    - dataLen
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 160
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 160
    functionName: nl::Weave::TLV::TLVReader::Init
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 8
    functionsReached:
    - nl::Weave::TLV::TLVReader::ClearElementState
    - SetContainerOpen
    linkageType: ''
    returnType: void
    signature: TLVReader::Init(const uint8_t *data, uint32_t dataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:175,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:176,1
    - Dst: nl::Weave::TLV::TLVReader::ClearElementState
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:179,1
    - Dst: SetContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - maxLen
    argTypes:
    - PacketBuffer*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 186
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 186
    functionName: nl::Weave::TLV::TLVReader::Init
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 8
    functionsReached:
    - PacketBuffer*::DataLength
    - nl::Weave::TLV::TLVReader::ClearElementState
    - SetContainerOpen
    - PacketBuffer*::Start
    linkageType: ''
    returnType: void
    signature: TLVReader::Init(PacketBuffer *buf, uint32_t maxLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:207,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:208,1
    - Dst: nl::Weave::TLV::TLVReader::ClearElementState
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:211,1
    - Dst: SetContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - buf
    - maxLen
    - allowDiscontiguousBuffers
    argTypes:
    - PacketBuffer*
    - uint32_t
    - bool
    constantsTouched: []
    func_position:
      end: 226
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 226
    functionName: nl::Weave::TLV::TLVReader::Init
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 8
    functionsReached:
    - PacketBuffer*::DataLength
    - nl::Weave::TLV::TLVReader::ClearElementState
    - SetContainerOpen
    - PacketBuffer*::Start
    linkageType: ''
    returnType: void
    signature: TLVReader::Init(PacketBuffer *buf, uint32_t maxLen, bool allowDiscontiguousBuffers)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:248,1
    - Dst: TLVReader::IsContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - aReader
    argTypes:
    - TLVReader
    constantsTouched: []
    func_position:
      end: 255
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 255
    functionName: nl::Weave::TLV::TLVReader::Init
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 8
    functionsReached:
    - TLVReader::IsContainerOpen
    - SetContainerOpen
    linkageType: ''
    returnType: void
    signature: TLVReader::Init(const TLVReader &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:265,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 273
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 273
    functionName: nl::Weave::TLV::TLVReader::GetType
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::TLVReader::ElementType
    linkageType: ''
    returnType: TLVType
    signature: TLVReader::GetType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: nl::Weave::TLV::TLVReader::GetControlByte
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: TLVReader::GetControlByte() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: nl::Weave::TLV::TLVReader::GetTag
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: TLVReader::GetTag() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVTypeHasLength
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:328,1
    - Dst: nl::Weave::TLV::TLVReader::ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 332
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 332
    functionName: nl::Weave::TLV::TLVReader::GetLength
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 1
    functionsReached:
    - TLVTypeHasLength
    - nl::Weave::TLV::TLVReader::ElementType
    linkageType: ''
    returnType: uint32_t
    signature: TLVReader::GetLength() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 354
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 354
    functionName: nl::Weave::TLV::TLVReader::Get
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::TLV::TLVReader::ElementType
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::Get(bool& v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - int8_t
    constantsTouched: []
    func_position:
      end: 375
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 375
    functionName: nl::Weave::TLV::TLVReader::Get
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::TLV::TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::Get(int8_t& v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - int16_t
    constantsTouched: []
    func_position:
      end: 396
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 396
    functionName: nl::Weave::TLV::TLVReader::Get
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 4
    functionsReached:
    - nl::Weave::TLV::TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::Get(int16_t& v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 417
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 417
    functionName: nl::Weave::TLV::TLVReader::Get
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 5
    functionsReached:
    - nl::Weave::TLV::TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::Get(int32_t& v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 438
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 438
    functionName: nl::Weave::TLV::TLVReader::Get
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 6
    functionsReached:
    - nl::Weave::TLV::TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::Get(int64_t& v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 460
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 460
    functionName: nl::Weave::TLV::TLVReader::Get
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 7
    functionsReached:
    - nl::Weave::TLV::TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::Get(uint8_t& v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 482
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 482
    functionName: nl::Weave::TLV::TLVReader::Get
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 8
    functionsReached:
    - nl::Weave::TLV::TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::Get(uint16_t& v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 504
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 504
    functionName: nl::Weave::TLV::TLVReader::Get
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 9
    functionsReached:
    - nl::Weave::TLV::TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::Get(uint32_t& v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:520,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 542
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 542
    functionName: nl::Weave::TLV::TLVReader::Get
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 9
    functionsReached:
    - nl::Weave::TLV::TLVReader::ElementType
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::Get(uint64_t& v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:548,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - elemLenOrVal
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 551
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 551
    functionName: nl::Weave::TLV::BitCastToFloat
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - memcpy
    linkageType: ''
    returnType: float
    signature: BitCastToFloat(const uint64_t elemLenOrVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:570,1
    - Dst: BitCastToFloat
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:574,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - float
    constantsTouched: []
    func_position:
      end: 581
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 581
    functionName: nl::Weave::TLV::TLVReader::Get
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 9
    functionsReached:
    - nl::Weave::TLV::TLVReader::ElementType
    - BitCastToFloat
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::Get(float & v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:595,1
    - Dst: BitCastToFloat
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:599,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:605,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 613
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 613
    functionName: nl::Weave::TLV::TLVReader::Get
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 9
    functionsReached:
    - nl::Weave::TLV::TLVReader::ElementType
    - BitCastToFloat
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::Get(double& v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVTypeIsString
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:639,1
    - Dst: nl::Weave::TLV::TLVReader::ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:639,1
    - Dst: nl::Weave::TLV::TLVReader::ReadData
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:645,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 652
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 652
    functionName: nl::Weave::TLV::TLVReader::GetBytes
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVReader::ElementType
    - TLVTypeIsString
    - nl::Weave::TLV::TLVReader::ReadData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::GetBytes(uint8_t *buf, uint32_t bufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVTypeIsString
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:678,1
    - Dst: nl::Weave::TLV::TLVReader::ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:678,1
    - Dst: nl::Weave::TLV::TLVReader::GetBytes
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 687
      start: 676
    functionDepth: 2
    functionLinenumber: 676
    functionLinenumberEnd: 687
    functionName: nl::Weave::TLV::TLVReader::GetString
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVReader::ElementType
    - TLVTypeIsString
    - nl::Weave::TLV::TLVReader::GetBytes
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::GetString(char *buf, uint32_t bufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVTypeIsString
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:718,1
    - Dst: nl::Weave::TLV::TLVReader::ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:718,1
    - Dst: malloc
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:721,1
    - Dst: nl::Weave::TLV::TLVReader::ReadData
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:725,1
    - Dst: free
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:728,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' buf'
    - ' dataLen'
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 739
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 739
    functionName: nl::Weave::TLV::TLVReader::DupBytes
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVReader::ReadData
    - TLVTypeIsString
    - free
    - nl::Weave::TLV::TLVReader::ElementType
    - malloc
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::DupBytes(uint8_t *& buf, uint32_t& dataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVTypeIsString
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:767,1
    - Dst: nl::Weave::TLV::TLVReader::ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:767,1
    - Dst: malloc
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:770,1
    - Dst: nl::Weave::TLV::TLVReader::ReadData
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:774,1
    - Dst: free
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:777,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 788
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 788
    functionName: nl::Weave::TLV::TLVReader::DupString
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVReader::ReadData
    - TLVTypeIsString
    - free
    - nl::Weave::TLV::TLVReader::ElementType
    - malloc
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::DupString(char *& buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVTypeIsString
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:816,1
    - Dst: nl::Weave::TLV::TLVReader::ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:816,1
    - Dst: nl::Weave::TLV::TLVReader::EnsureData
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:819,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 833
      start: 812
    functionDepth: 1
    functionLinenumber: 812
    functionLinenumberEnd: 833
    functionName: nl::Weave::TLV::TLVReader::GetDataPtr
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::TLV::TLVReader::ElementType
    - TLVTypeIsString
    - nl::Weave::TLV::TLVReader::EnsureData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::GetDataPtr(const uint8_t *& data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:875,1
    - Dst: TLVTypeIsContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:876,1
    - Dst: nl::Weave::TLV::TLVReader::ClearElementState
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:884,1
    - Dst: SetContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:886,1
    - Dst: SetContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - ' containerReader'
    argTypes:
    - TLVReader
    constantsTouched: []
    func_position:
      end: 894
      start: 873
    functionDepth: 1
    functionLinenumber: 873
    functionLinenumberEnd: 894
    functionName: nl::Weave::TLV::TLVReader::OpenContainer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVReader::ElementType
    - nl::Weave::TLV::TLVReader::ClearElementState
    - SetContainerOpen
    - TLVTypeIsContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::OpenContainer(TLVReader& containerReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:933,1
    - Dst: nl::Weave::TLV::TLVReader::ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:936,1
    - Dst: nl::Weave::TLV::TLVReader::SkipToEndOfContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:939,1
    - Dst: nl::Weave::TLV::TLVReader::ClearElementState
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:948,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' containerReader'
    argTypes:
    - TLVReader
    constantsTouched: []
    func_position:
      end: 951
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 951
    functionName: nl::Weave::TLV::TLVReader::CloseContainer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVReader::ElementType
    - nl::Weave::TLV::TLVReader::ClearElementState
    - nl::Weave::TLV::TLVReader::SkipToEndOfContainer
    - IsContainerOpen
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::CloseContainer(TLVReader& containerReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:980,1
    - Dst: TLVTypeIsContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:981,1
    - Dst: nl::Weave::TLV::TLVReader::ClearElementState
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:987,1
    - Dst: SetContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:988,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' outerContainerType'
    argTypes:
    - TLVType
    constantsTouched: []
    func_position:
      end: 991
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 991
    functionName: nl::Weave::TLV::TLVReader::EnterContainer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::TLVReader::ElementType
    - nl::Weave::TLV::TLVReader::ClearElementState
    - SetContainerOpen
    - TLVTypeIsContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::EnterContainer(TLVType& outerContainerType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::SkipToEndOfContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1033,1
    - Dst: nl::Weave::TLV::TLVReader::ClearElementState
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1038,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - outerContainerType
    argTypes:
    - TLVType
    constantsTouched: []
    func_position:
      end: 1041
      start: 1029
    functionDepth: 1
    functionLinenumber: 1029
    functionLinenumberEnd: 1041
    functionName: nl::Weave::TLV::TLVReader::ExitContainer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::TLVReader::ClearElementState
    - nl::Weave::TLV::TLVReader::SkipToEndOfContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::ExitContainer(TLVType outerContainerType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1068,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1074
    functionName: nl::Weave::TLV::TLVReader::VerifyEndOfContainer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::VerifyEndOfContainer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1089
    functionName: nl::Weave::TLV::TLVReader::GetContainerType
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TLVType
    signature: TLVReader::GetContainerType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1126,1
    - Dst: nl::Weave::TLV::TLVReader::Skip
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1128,1
    - Dst: nl::Weave::TLV::TLVReader::ReadElement
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1132,1
    - Dst: nl::Weave::TLV::TLVReader::ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1141
    functionName: nl::Weave::TLV::TLVReader::Next
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 9
    functionsReached:
    - nl::Weave::TLV::TLVReader::ElementType
    - nl::Weave::TLV::TLVReader::Skip
    - nl::Weave::TLV::TLVReader::ReadElement
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::Next()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1173,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - expectedType
    - expectedTag
    argTypes:
    - TLVType
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1181
      start: 1171
    functionDepth: 2
    functionLinenumber: 1171
    functionLinenumberEnd: 1181
    functionName: nl::Weave::TLV::TLVReader::Next
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 10
    functionsReached:
    - nl::Weave::TLV::TLVReader::GetType
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::Next(TLVType expectedType, uint64_t expectedTag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1207,1
    - Dst: TLVTypeIsContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1212,1
    - Dst: nl::Weave::TLV::TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1215,1
    - Dst: nl::Weave::TLV::TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1218,1
    - Dst: nl::Weave::TLV::TLVReader::SkipData
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1225,1
    - Dst: nl::Weave::TLV::TLVReader::ClearElementState
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1229,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1204
    functionDepth: 2
    functionLinenumber: 1204
    functionLinenumberEnd: 1233
    functionName: nl::Weave::TLV::TLVReader::Skip
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::TLVReader::ClearElementState
    - nl::Weave::TLV::TLVReader::EnterContainer
    - TLVTypeIsContainer
    - nl::Weave::TLV::TLVReader::SkipData
    - nl::Weave::TLV::TLVReader::ElementType
    - nl::Weave::TLV::TLVReader::ExitContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::Skip()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1240
    functionDepth: 0
    functionLinenumber: 1240
    functionLinenumberEnd: 1245
    functionName: nl::Weave::TLV::TLVReader::ClearElementState
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TLVReader::ClearElementState(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1260,1
    - Dst: TLVTypeHasLength
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1262,1
    - Dst: nl::Weave::TLV::TLVReader::ReadData
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1257
    functionDepth: 1
    functionLinenumber: 1257
    functionLinenumberEnd: 1270
    functionName: nl::Weave::TLV::TLVReader::SkipData
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::TLVReader::ElementType
    - TLVTypeHasLength
    - nl::Weave::TLV::TLVReader::ReadData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::SkipData(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetContainerOpen
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1282,1
    - Dst: nl::Weave::TLV::TLVReader::ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1286,1
    - Dst: TLVTypeIsContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1297,1
    - Dst: nl::Weave::TLV::TLVReader::SkipData
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1303,1
    - Dst: nl::Weave::TLV::TLVReader::ReadElement
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1307,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1272
    functionDepth: 2
    functionLinenumber: 1272
    functionLinenumberEnd: 1311
    functionName: nl::Weave::TLV::TLVReader::SkipToEndOfContainer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 2
    functionsReached:
    - TLVTypeIsContainer
    - nl::Weave::TLV::TLVReader::ReadElement
    - nl::Weave::TLV::TLVReader::SkipData
    - SetContainerOpen
    - nl::Weave::TLV::TLVReader::ElementType
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::SkipToEndOfContainer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::EnsureData
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1321,1
    - Dst: nl::Weave::TLV::TLVReader::ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1329,1
    - Dst: IsValidTLVType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1330,1
    - Dst: GetTLVFieldSize
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1340,1
    - Dst: nl::Weave::TLV::TLVReader::ReadData
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1353,1
    - Dst: nl::Weave::TLV::TLVReader::ReadTag
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1369,1
    - Dst: Read8
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1378,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1381,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1384,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read64
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1387,1
    - Dst: nl::Weave::TLV::TLVReader::VerifyElement
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1391,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1313
    functionDepth: 1
    functionLinenumber: 1313
    functionLinenumberEnd: 1392
    functionName: nl::Weave::TLV::TLVReader::ReadElement
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::TLV::TLVReader::ReadData
    - IsValidTLVType
    - nl::Weave::TLV::TLVReader::EnsureData
    - GetTLVFieldSize
    - nl::Weave::TLV::TLVReader::ReadTag
    - nl::Weave::TLV::TLVReader::VerifyElement
    - nl::Weave::Encoding::LittleEndian::Read64
    - nl::Weave::Encoding::LittleEndian::Read32
    - nl::Weave::TLV::TLVReader::ElementType
    - nl::Weave::Encoding::LittleEndian::Read16
    - Read8
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::ReadElement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1396,1
    - Dst: IsContextTag
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1410,1
    - Dst: TLVTypeHasLength
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1437,1
    - Dst: nl::Weave::TLV::TLVReader::ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1437,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1394
    functionDepth: 1
    functionLinenumber: 1394
    functionLinenumberEnd: 1445
    functionName: nl::Weave::TLV::TLVReader::VerifyElement
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::TLVReader::ElementType
    - TLVTypeHasLength
    - IsContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::VerifyElement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1455,1
    - Dst: Read8
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1455,1
    - Dst: CommonTag
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1457,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1457,1
    - Dst: CommonTag
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1459,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1459,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1463,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1463,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1467,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1467,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1469,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1470,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1471,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1471,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1473,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1474,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1475,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 2
    argNames:
    - tagControl
    - ' p'
    argTypes:
    - TLVTagControl
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1480
      start: 1447
    functionDepth: 1
    functionLinenumber: 1447
    functionLinenumberEnd: 1480
    functionName: nl::Weave::TLV::TLVReader::ReadTag
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 1
    functionsReached:
    - CommonTag
    - ContextTag
    - ProfileTag
    - nl::Weave::Encoding::LittleEndian::Read32
    - nl::Weave::Encoding::LittleEndian::Read16
    - Read8
    linkageType: ''
    returnType: uint64_t
    signature: TLVReader::ReadTag(TLVTagControl tagControl, const uint8_t *& p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::EnsureData
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1488,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1500,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1509
      start: 1482
    functionDepth: 1
    functionLinenumber: 1482
    functionLinenumberEnd: 1509
    functionName: nl::Weave::TLV::TLVReader::ReadData
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 5
    functionsReached:
    - memcpy
    - nl::Weave::TLV::TLVReader::EnsureData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::ReadData(uint8_t *buf, uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetNextBuffer
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1524,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - noDataErr
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1540
      start: 1511
    functionDepth: 0
    functionLinenumber: 1511
    functionLinenumberEnd: 1540
    functionName: nl::Weave::TLV::TLVReader::EnsureData
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 3
    functionsReached:
    - GetNextBuffer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::EnsureData(WEAVE_ERROR noDataErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::ElementType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1552,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1555,1
    - Dst: IsValidTLVType
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1555,1
    - Dst: GetTLVFieldSize
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1564,1
    - Dst: TLVFieldSizeToBytes
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ' elemHeadBytes'
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1577
      start: 1545
    functionDepth: 1
    functionLinenumber: 1545
    functionLinenumberEnd: 1577
    functionName: nl::Weave::TLV::TLVReader::GetElementHeadLength
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 0
    functionsReached:
    - IsValidTLVType
    - GetTLVFieldSize
    - TLVFieldSizeToBytes
    - VerifyOrExit
    - nl::Weave::TLV::TLVReader::ElementType
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVReader::GetElementHeadLength(uint8_t& elemHeadBytes) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1582
    functionDepth: 0
    functionLinenumber: 1582
    functionLinenumberEnd: 1588
    functionName: nl::Weave::TLV::TLVReader::ElementType
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: TLVElementType
    signature: TLVReader::ElementType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1596,1
    - Dst: Start
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1599,1
    - Dst: DataLength
      Src: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp:1600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ' reader'
    - ' bufHandle'
    - ' bufStart'
    - ' bufLen'
    argTypes:
    - TLVReader
    - uintptr_t
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1609
      start: 1590
    functionDepth: 2
    functionLinenumber: 1590
    functionLinenumberEnd: 1609
    functionName: nl::Weave::TLV::TLVReader::GetNextPacketBuffer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
    functionUses: 0
    functionsReached:
    - DataLength
    - Start
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TLVReader::GetNextPacketBuffer(TLVReader& reader, uintptr_t& bufHandle,
      const uint8_t *& bufStart,\n        uint32_t& bufLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/core/WeaveBinding.h:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 437
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 437
    functionName: nl::Weave::Clear
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/core/WeaveBinding.h:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 469
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 469
    functionName: nl::Weave::Clear
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 482
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 482
    functionName: nl::Weave::Binding::GetState
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Binding::State
    signature: Binding::GetState(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 487
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 487
    functionName: nl::Weave::Binding::IsPreparing
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: Binding::IsPreparing() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 492
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 492
    functionName: nl::Weave::Binding::IsReady
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: Binding::IsReady() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 497
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 497
    functionName: nl::Weave::Binding::CanBePrepared
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: Binding::CanBePrepared(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 502
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 502
    functionName: nl::Weave::Binding::GetPeerNodeId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: Binding::GetPeerNodeId() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' address'
    - ' port'
    - ' interfaceId'
    argTypes:
    - nl::Inet::IPAddress
    - uint16_t
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 509
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 509
    functionName: nl::Weave::Binding::GetPeerIPAddress
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Binding::GetPeerIPAddress(nl::Inet::IPAddress & address, uint16_t &
      port, InterfaceId & interfaceId) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 514
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 514
    functionName: nl::Weave::Binding::GetKeyId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: Binding::GetKeyId(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 519
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 519
    functionName: nl::Weave::Binding::GetEncryptionType
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: Binding::GetEncryptionType(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 524
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 524
    functionName: nl::Weave::Binding::GetDefaultResponseTimeout
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: Binding::GetDefaultResponseTimeout() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 529
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 529
    functionName: nl::Weave::Binding::SetDefaultResponseTimeout
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Binding::SetDefaultResponseTimeout(uint32_t timeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 536
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 536
    functionName: '& Binding::GetDefaultWRMPConfig(void) const'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WRMPConfig
    signature: '& Binding::GetDefaultWRMPConfig(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' aWRMPConfig'
    argTypes:
    - WRMPConfig
    constantsTouched: []
    func_position:
      end: 541
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 541
    functionName: nl::Weave::Binding::SetDefaultWRMPConfig
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Binding::SetDefaultWRMPConfig(const WRMPConfig& aWRMPConfig)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 548
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 548
    functionName: nl::Weave::Binding::GetEventCallback
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Binding::EventCallback
    signature: Binding::GetEventCallback() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aEventCallback
    argTypes:
    - EventCallback
    constantsTouched: []
    func_position:
      end: 553
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 553
    functionName: nl::Weave::Binding::SetEventCallback
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Binding::SetEventCallback(EventCallback aEventCallback)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' callback'
    - ' state'
    argTypes:
    - EventCallback
    - void*
    constantsTouched: []
    func_position:
      end: 559
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 559
    functionName: nl::Weave::Binding::GetProtocolLayerCallback
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Binding::GetProtocolLayerCallback(EventCallback& callback, void *&
      state) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - callback
    - state
    argTypes:
    - EventCallback
    - void*
    constantsTouched: []
    func_position:
      end: 565
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 565
    functionName: nl::Weave::Binding::SetProtocolLayerCallback
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Binding::SetProtocolLayerCallback(EventCallback callback, void *state)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 570
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 570
    functionName: nl::Weave::Binding::GetConnection
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WeaveConnection
    signature: '*Binding::GetConnection() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 575
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 575
    functionName: nl::Weave::Binding::GetFlag
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: Binding::GetFlag(uint8_t flag) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 580
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 580
    functionName: nl::Weave::Binding::SetFlag
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Binding::SetFlag(uint8_t flag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 585
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 585
    functionName: nl::Weave::Binding::ClearFlag
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Binding::ClearFlag(uint8_t flag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 590
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 590
    functionName: nl::Weave::Binding::GetExchangeManager
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WeaveExchangeManager
    signature: '*Binding::GetExchangeManager() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 595
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 595
    functionName: nl::Weave::Binding::IsConnectionTransport
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: Binding::IsConnectionTransport() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 600
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 600
    functionName: nl::Weave::Binding::IsUDPTransport
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: Binding::IsUDPTransport() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 605
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 605
    functionName: nl::Weave::Binding::IsWRMTransport
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: Binding::IsWRMTransport() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 610
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 610
    functionName: nl::Weave::Binding::IsUnreliableUDPTransport
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: Binding::IsUnreliableUDPTransport() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Configuration
      Src: /src/openweave-core/src/lib/core/WeaveBinding.h:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 615
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 615
    functionName: nl::Weave::Binding::BeginConfiguration
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached:
    - Configuration
    linkageType: ''
    returnType: Binding::Configuration
    signature: Binding::BeginConfiguration()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DoPrepare
      Src: /src/openweave-core/src/lib/core/WeaveBinding.h:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 620
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 620
    functionName: Binding::Configuration::PrepareBinding(void)
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached:
    - DoPrepare
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Binding::Configuration::PrepareBinding(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 625
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 625
    functionName: Binding::Configuration::GetError(void) const
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Binding::Configuration::GetError(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: nl::Weave::WeaveKeyId::GetType
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: GetType(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: nl::Weave::WeaveKeyId::IsGeneralKey
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.h
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveKeyId::GetType
    linkageType: ''
    returnType: bool
    signature: IsGeneralKey(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: nl::Weave::WeaveKeyId::IsSessionKey
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.h
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveKeyId::GetType
    linkageType: ''
    returnType: bool
    signature: IsSessionKey(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: nl::Weave::WeaveKeyId::IsAppStaticKey
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.h
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveKeyId::GetType
    linkageType: ''
    returnType: bool
    signature: IsAppStaticKey(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: nl::Weave::WeaveKeyId::IsAppRotatingKey
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.h
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveKeyId::GetType
    linkageType: ''
    returnType: bool
    signature: IsAppRotatingKey(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: nl::Weave::WeaveKeyId::IsAppRootKey
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.h
    functionUses: 1
    functionsReached:
    - nl::Weave::WeaveKeyId::GetType
    linkageType: ''
    returnType: bool
    signature: IsAppRootKey(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: nl::Weave::WeaveKeyId::IsAppEpochKey
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.h
    functionUses: 4
    functionsReached:
    - nl::Weave::WeaveKeyId::GetType
    linkageType: ''
    returnType: bool
    signature: IsAppEpochKey(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: nl::Weave::WeaveKeyId::IsAppGroupMasterKey
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.h
    functionUses: 4
    functionsReached:
    - nl::Weave::WeaveKeyId::GetType
    linkageType: ''
    returnType: bool
    signature: IsAppGroupMasterKey(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sessionKeyNumber
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: nl::Weave::WeaveKeyId::MakeSessionKeyId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: MakeSessionKeyId(uint16_t sessionKeyNumber)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - generalKeyNumber
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: nl::Weave::WeaveKeyId::MakeGeneralKeyId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: MakeGeneralKeyId(uint16_t generalKeyNumber)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 271
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 271
    functionName: nl::Weave::WeaveKeyId::GetRootKeyId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: GetRootKeyId(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 283
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 283
    functionName: nl::Weave::WeaveKeyId::GetEpochKeyId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: GetEpochKeyId(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: nl::Weave::WeaveKeyId::GetAppGroupMasterKeyId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: GetAppGroupMasterKeyId(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: nl::Weave::WeaveKeyId::GetRootKeyNumber
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: GetRootKeyNumber(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: nl::Weave::WeaveKeyId::GetEpochKeyNumber
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: GetEpochKeyNumber(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 331
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 331
    functionName: nl::Weave::WeaveKeyId::GetAppGroupLocalNumber
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: GetAppGroupLocalNumber(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rootKeyNumber
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 343
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 343
    functionName: nl::Weave::WeaveKeyId::MakeRootKeyId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: MakeRootKeyId(uint8_t rootKeyNumber)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - epochKeyNumber
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 355
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 355
    functionName: nl::Weave::WeaveKeyId::MakeEpochKeyId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: MakeEpochKeyId(uint8_t epochKeyNumber)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appGroupLocalNumber
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 367
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 367
    functionName: nl::Weave::WeaveKeyId::MakeAppGroupMasterKeyId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: MakeAppGroupMasterKeyId(uint8_t appGroupLocalNumber)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 379
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 379
    functionName: nl::Weave::WeaveKeyId::ConvertToCurrentAppKeyId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: ConvertToCurrentAppKeyId(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 391
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 391
    functionName: nl::Weave::WeaveKeyId::IncorporatesEpochKey
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IncorporatesEpochKey(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: nl::Weave::Clear
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.h:310,1
    - Dst: reinterpret_cast<intptr_t>
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.h:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 310
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 310
    functionName: nl::Weave::WeaveConnection::LogId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 8
    functionsReached:
    - static_cast<uint16_t>
    - reinterpret_cast<intptr_t>
    linkageType: ''
    returnType: uint16_t
    signature: LogId(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: nl::Weave::WeaveConnection::GetTCPEndPoint
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TCPEndPoint
    signature: '* GetTCPEndPoint(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.h:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 406
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 406
    functionName: nl::Weave::WeaveConnection::IsIncoming
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: IsIncoming(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.h:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 407
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 407
    functionName: nl::Weave::WeaveConnection::SetIncoming
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 0
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: void
    signature: SetIncoming(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 439
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 439
    functionName: nl::Weave::WeaveConnection::StateAllowsSend
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: StateAllowsSend(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 440
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 440
    functionName: nl::Weave::WeaveConnection::StateAllowsReceive
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: StateAllowsReceive(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 485
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 485
    functionName: nl::Weave::WeaveConnectionTunnel::LogId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: LogId(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 507
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 507
    functionName: nl::Weave::WeaveConnectionTunnel::IsInUse
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsInUse(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 870
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 870
    functionName: nl::Weave::WeaveMessageLayer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeaveMessageLayer
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveMessageLayer::IsBoundToLocalIPv4Address
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.h:886,1
    - Dst: nl::Weave::WeaveMessageLayer::IsBoundToLocalIPv6Address
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.h:886,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 890
      start: 876
    functionDepth: 1
    functionLinenumber: 876
    functionLinenumberEnd: 890
    functionName: nl::Weave::WeaveMessageLayer::IPv4ListenEnabled
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveMessageLayer::IsBoundToLocalIPv6Address
    - nl::Weave::WeaveMessageLayer::IsBoundToLocalIPv4Address
    linkageType: ''
    returnType: bool
    signature: WeaveMessageLayer::IPv4ListenEnabled(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveMessageLayer::IsBoundToLocalIPv6Address
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.h:904,1
    - Dst: nl::Weave::WeaveMessageLayer::IsBoundToLocalIPv4Address
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.h:904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 905
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 905
    functionName: nl::Weave::WeaveMessageLayer::IPv6ListenEnabled
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveMessageLayer::IsBoundToLocalIPv6Address
    - nl::Weave::WeaveMessageLayer::IsBoundToLocalIPv4Address
    linkageType: ''
    returnType: bool
    signature: WeaveMessageLayer::IPv6ListenEnabled(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.h:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 913
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 913
    functionName: nl::Weave::WeaveMessageLayer::TCPListenEnabled
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: WeaveMessageLayer::TCPListenEnabled(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.h:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 923
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 923
    functionName: nl::Weave::WeaveMessageLayer::SetTCPListenEnabled
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 0
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: void
    signature: WeaveMessageLayer::SetTCPListenEnabled(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.h:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 931
      start: 928
    functionDepth: 0
    functionLinenumber: 928
    functionLinenumberEnd: 931
    functionName: nl::Weave::WeaveMessageLayer::UDPListenEnabled
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: WeaveMessageLayer::UDPListenEnabled(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.h:940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 941
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 941
    functionName: nl::Weave::WeaveMessageLayer::SetUDPListenEnabled
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 0
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: void
    signature: WeaveMessageLayer::SetUDPListenEnabled(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.h:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 954
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 954
    functionName: nl::Weave::WeaveMessageLayer::EphemeralUDPPortEnabled
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: WeaveMessageLayer::EphemeralUDPPortEnabled(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.h:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 966
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 966
    functionName: nl::Weave::WeaveMessageLayer::SetEphemeralUDPPortEnabled
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 0
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: void
    signature: WeaveMessageLayer::SetEphemeralUDPPortEnabled(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.h:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 976
      start: 973
    functionDepth: 0
    functionLinenumber: 973
    functionLinenumberEnd: 976
    functionName: nl::Weave::WeaveMessageLayer::UnsecuredListenEnabled
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: WeaveMessageLayer::UnsecuredListenEnabled() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 988
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 988
    functionName: nl::Weave::WeaveMessageLayer::IsBoundToLocalIPv4Address
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveMessageLayer::IsBoundToLocalIPv4Address(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 1000
    functionName: nl::Weave::WeaveMessageLayer::IsBoundToLocalIPv6Address
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveMessageLayer::IsBoundToLocalIPv6Address(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fabricId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1045
      start: 1045
    functionDepth: 0
    functionLinenumber: 1045
    functionLinenumberEnd: 1045
    functionName: nl::Weave::WeaveFabricIdToIPv6GlobalId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: WeaveFabricIdToIPv6GlobalId(uint64_t fabricId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interfaceId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1070
      start: 1067
    functionDepth: 0
    functionLinenumber: 1067
    functionLinenumberEnd: 1070
    functionName: nl::Weave::IPv6InterfaceIdToWeaveNodeId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: IPv6InterfaceIdToWeaveNodeId(uint64_t interfaceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nodeId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1098
      start: 1095
    functionDepth: 0
    functionLinenumber: 1095
    functionLinenumberEnd: 1098
    functionName: nl::Weave::WeaveNodeIdToIPv6InterfaceId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: WeaveNodeIdToIPv6InterfaceId(uint64_t nodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveConnection::GetPeerDescription
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.h:1126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - buf
    - bufSize
    - nodeId
    - addr
    - port
    - con
    argTypes:
    - char*
    - uint32_t
    - uint64_t
    - IPAddress*
    - uint16_t
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 1127
      start: 1124
    functionDepth: 2
    functionLinenumber: 1124
    functionLinenumberEnd: 1127
    functionName: nl::Weave::WeaveNodeAddrToStr
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveConnection::GetPeerDescription
    linkageType: ''
    returnType: void
    signature: WeaveNodeAddrToStr(char *buf, uint32_t bufSize, uint64_t nodeId, const
      IPAddress *addr, uint16_t port, WeaveConnection *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveConnection::GetPeerDescription
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.h:1134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - bufSize
    - msgInfo
    argTypes:
    - char*
    - uint32_t
    - WeaveMessageInfo*
    constantsTouched: []
    func_position:
      end: 1135
      start: 1132
    functionDepth: 2
    functionLinenumber: 1132
    functionLinenumberEnd: 1135
    functionName: nl::Weave::WeaveMessageSourceToStr
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveConnection::GetPeerDescription
    linkageType: ''
    returnType: void
    signature: WeaveMessageSourceToStr(char *buf, uint32_t bufSize, const WeaveMessageInfo
      *msgInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 393
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 393
    functionName: nl::Weave::ExchangeContext
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: ExchangeContext
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 558
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 558
    functionName: nl::Weave::WeaveExchangeManager
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeaveExchangeManager
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 565
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 565
    functionName: nl::Weave::ExchangeContext::UseEphemeralUDPPort
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ExchangeContext::UseEphemeralUDPPort(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: Weave::WeaveMessageLayer::WeaveMessageLayer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveMessageLayer::WeaveMessageLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:122,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:123,1
    - Dst: SystemLayer
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:136,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:149,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:150,1
    - Dst: SetTCPListenEnabled
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:163,1
    - Dst: SetUDPListenEnabled
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:164,1
    - Dst: SetEphemeralUDPPortEnabled
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:166,1
    - Dst: RefreshEndpoints
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:195,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:196,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:203,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:207,1
    - Dst: Weave::WeaveMessageLayer::Shutdown
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:216,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 57
    argCount: 1
    argNames:
    - context
    argTypes:
    - InitContext*
    constantsTouched: []
    func_position:
      end: 219
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 219
    functionName: Weave::WeaveMessageLayer::Init
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - SystemLayer
    - SetEphemeralUDPPortEnabled
    - WeaveLogProgress
    - SetUDPListenEnabled
    - VerifyOrExit
    - memset
    - RefreshEndpoints
    - Weave::WeaveMessageLayer::Shutdown
    - SuccessOrExit
    - SetTCPListenEnabled
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveMessageLayer::Init(InitContext *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CloseEndpoints
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:232,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:251,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 261
    functionName: Weave::WeaveMessageLayer::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 1
    functionsReached:
    - memset
    - CloseEndpoints
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveMessageLayer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Weave::WeaveMessageLayer::SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - destAddr
    - msgInfo
    - msgBuf
    argTypes:
    - IPAddress
    - WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 294
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 294
    functionName: Weave::WeaveMessageLayer::SendUDPTunneledMessage
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - Weave::WeaveMessageLayer::SendMessage
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveMessageLayer::SendUDPTunneledMessage(const IPAddress &destAddr,
      WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsFabricAddress
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:336,1
    - Dst: IPAddress::IsIPv6ULA
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:341,1
    - Dst: IPv6InterfaceIdToWeaveNodeId
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:341,1
    - Dst: IPAddress::InterfaceId
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:341,1
    - Dst: Weave::WeaveMessageLayer::EncodeMessage
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:345,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - destAddr
    - destPort
    - sendIntId
    - msgInfo
    - payload
    argTypes:
    - IPAddress
    - uint16_t
    - InterfaceId
    - WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 348
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 348
    functionName: Weave::WeaveMessageLayer::EncodeMessage
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 1
    functionsReached:
    - IPAddress::InterfaceId
    - Weave::WeaveMessageLayer::EncodeMessage
    - IsFabricAddress
    - IPv6InterfaceIdToWeaveNodeId
    - IPAddress::IsIPv6ULA
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveMessageLayer::EncodeMessage(const IPAddress &destAddr, uint16_t
      destPort, InterfaceId sendIntId,\n                                             WeaveMessageInfo
      *msgInfo, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Weave::WeaveMessageLayer::SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msgInfo
    - payload
    argTypes:
    - WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 369
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 369
    functionName: Weave::WeaveMessageLayer::SendMessage
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 2
    functionsReached:
    - Weave::WeaveMessageLayer::SendMessage
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveMessageLayer::SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer
      *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Weave::WeaveMessageLayer::SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - destAddr
    - msgInfo
    - payload
    argTypes:
    - IPAddress
    - WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 399
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 399
    functionName: Weave::WeaveMessageLayer::SendMessage
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 3
    functionsReached:
    - Weave::WeaveMessageLayer::SendMessage
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveMessageLayer::SendMessage(const IPAddress &destAddr, WeaveMessageInfo
      *msgInfo,\n                                           PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SelectDestNodeIdAndAddress
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:437,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:438,1
    - Dst: Weave::WeaveMessageLayer::EncodeMessage
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:440,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:441,1
    - Dst: nl::Weave::System::PacketBuffer::RightSize
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:450,1
    - Dst: Weave::WeaveMessageLayer::SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:453,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:460,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - aDestAddr
    - destPort
    - sendIntfId
    - msgInfo
    - payload
    argTypes:
    - IPAddress
    - uint16_t
    - InterfaceId
    - WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 464
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 464
    functionName: Weave::WeaveMessageLayer::SendMessage
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 4
    functionsReached:
    - nl::Weave::System::PacketBuffer::RightSize
    - nl::Weave::System::PacketBuffer::Free
    - Weave::WeaveMessageLayer::EncodeMessage
    - Weave::WeaveMessageLayer::SendMessage
    - SelectDestNodeIdAndAddress
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveMessageLayer::SendMessage(const IPAddress &aDestAddr, uint16_t
      destPort, InterfaceId sendIntfId,\n                                           WeaveMessageInfo
      *msgInfo, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:470,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:472,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - err
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 475
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 475
    functionName: Weave::WeaveMessageLayer::IsIgnoredMulticastSendError
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::MapErrorLwIP
    - nl::Weave::System::MapErrorPOSIX
    linkageType: ''
    returnType: bool
    signature: WeaveMessageLayer::IsIgnoredMulticastSendError(WEAVE_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:485,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:492,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:492,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - err
    - isMulticast
    argTypes:
    - WEAVE_ERROR
    - bool
    constantsTouched: []
    func_position:
      end: 500
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 500
    functionName: Weave::WeaveMessageLayer::FilterUDPSendError
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::MapErrorLwIP
    - nl::Weave::System::MapErrorPOSIX
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveMessageLayer::FilterUDPSendError(WEAVE_ERROR err, bool isMulticast)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WEAVE_CONFIG_IsPlatformErrorNonCritical
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:515,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 516
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 516
    functionName: Weave::WeaveMessageLayer::IsSendErrorNonCritical
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 1
    functionsReached:
    - WEAVE_CONFIG_IsPlatformErrorNonCritical
    linkageType: ''
    returnType: bool
    signature: WeaveMessageLayer::IsSendErrorNonCritical(WEAVE_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:532,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - err
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 537
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 537
    functionName: Weave::WeaveMessageLayer::CheckForceRefreshUDPEndPointsNeeded
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::MapErrorPOSIX
    - SetFlag
    linkageType: ''
    returnType: void
    signature: WeaveMessageLayer::CheckForceRefreshUDPEndPointsNeeded(WEAVE_ERROR
      err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:575,1
    - Dst: Subnet
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:575,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:578,1
    - Dst: InterfaceId
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:578,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:579,1
    - Dst: ToString
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:580,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:581,1
    - Dst: IPPacketInfo::Clear
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:586,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:592,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:596,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:597,1
    - Dst: SelectOutboundUDPEndPoint
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:602,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:603,1
    - Dst: IsMulticast
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:625,1
    - Dst: IsIPv4Broadcast
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:625,1
    - Dst: IsIPv4
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:630,1
    - Dst: IsBoundToLocalIPv4Address
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:630,1
    - Dst: IsBoundToLocalIPv6Address
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:630,1
    - Dst: IsIPv6
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:635,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:636,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - ' destAddr'
    - destPort
    - sendIntfId
    - payload
    - msgFlags
    argTypes:
    - IPAddress
    - uint16_t
    - InterfaceId
    - PacketBuffer*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 647
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 647
    functionName: Weave::WeaveMessageLayer::SendMessage
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 4
    functionsReached:
    - IsIPv4Broadcast
    - GetFlag
    - ToString
    - VerifyOrExit
    - IsIPv6
    - WeaveLogDetail
    - InterfaceId
    - IsMulticast
    - ExitNow
    - nl::Inet::IPAddress::MakeULA
    - IsBoundToLocalIPv4Address
    - IsBoundToLocalIPv6Address
    - Subnet
    - ClearFlag
    - IsIPv4
    - SelectOutboundUDPEndPoint
    - SuccessOrExit
    - IPPacketInfo::Clear
    - WEAVE_FAULT_INJECT
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveMessageLayer::SendMessage(IPAddress & destAddr, uint16_t destPort,
      InterfaceId sendIntfId,\n                                           PacketBuffer
      * payload, uint32_t msgFlags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Type
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:753,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:757,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:773,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:788,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:791,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - ' destAddr'
    - msgFlags
    - ' ep'
    argTypes:
    - IPAddress
    - uint32_t
    - UDPEndPoint*
    constantsTouched: []
    func_position:
      end: 795
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 795
    functionName: WeaveMessageLayer::SelectOutboundUDPEndPoint
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - Type
    - GetFlag
    - VerifyOrExit
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveMessageLayer::SelectOutboundUDPEndPoint(const IPAddress & destAddr,
      uint32_t msgFlags, UDPEndPoint *& ep)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveMessageLayer::ResendMessage
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msgInfo
    - payload
    argTypes:
    - WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 813
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 813
    functionName: WeaveMessageLayer::ResendMessage
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 1
    functionsReached:
    - WeaveMessageLayer::ResendMessage
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveMessageLayer::ResendMessage(WeaveMessageInfo *msgInfo, PacketBuffer
      *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveMessageLayer::ResendMessage
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - destAddr
    - msgInfo
    - payload
    argTypes:
    - IPAddress
    - WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 834
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 834
    functionName: WeaveMessageLayer::ResendMessage
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 2
    functionsReached:
    - WeaveMessageLayer::ResendMessage
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveMessageLayer::ResendMessage(const IPAddress &destAddr, WeaveMessageInfo
      *msgInfo, PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveMessageLayer::ResendMessage
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - destAddr
    - destPort
    - msgInfo
    - payload
    argTypes:
    - IPAddress
    - uint16_t
    - WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 854
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 854
    functionName: WeaveMessageLayer::ResendMessage
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 3
    functionsReached:
    - WeaveMessageLayer::ResendMessage
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveMessageLayer::ResendMessage(const IPAddress &destAddr, uint16_t
      destPort, WeaveMessageInfo *msgInfo, PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveMessageLayer::SelectDestNodeIdAndAddress
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:886,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:887,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:889,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:895,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - aDestAddr
    - destPort
    - interfaceId
    - msgInfo
    - payload
    argTypes:
    - IPAddress
    - uint16_t
    - InterfaceId
    - WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 898
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 898
    functionName: WeaveMessageLayer::ResendMessage
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 3
    functionsReached:
    - SendMessage
    - SuccessOrExit
    - nl::Weave::System::PacketBuffer::Free
    - WeaveMessageLayer::SelectDestNodeIdAndAddress
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveMessageLayer::ResendMessage(const IPAddress &aDestAddr, uint16_t
      destPort, InterfaceId interfaceId,\n                                             WeaveMessageInfo
      *msgInfo, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - aOutInUse
    argTypes:
    - nl::Weave::System::Stats::count_t
    constantsTouched: []
    func_position:
      end: 919
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 919
    functionName: WeaveMessageLayer::GetConnectionPoolStats
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveMessageLayer::GetConnectionPoolStats(nl::Weave::System::Stats::count_t
      &aOutInUse) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::Init
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:935,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:940,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 942
      start: 928
    functionDepth: 0
    functionLinenumber: 928
    functionLinenumberEnd: 942
    functionName: WeaveMessageLayer::NewConnection
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - WeaveConnection*::Init
    linkageType: ''
    returnType: WeaveConnection
    signature: '*WeaveMessageLayer::NewConnection()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::IsIncoming
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:954,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - peerAddr
    - count
    - countFromIP
    argTypes:
    - IPAddress
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 963
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 963
    functionName: WeaveMessageLayer::GetIncomingTCPConCount
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnection*::IsIncoming
    linkageType: ''
    returnType: void
    signature: WeaveMessageLayer::GetIncomingTCPConCount(const IPAddress &peerAddr,
      uint16_t &count, uint16_t &countFromIP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnectionTunnel*::IsInUse
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:977,1
    - Dst: WeaveConnectionTunnel*::Init
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:979,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:984,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 986
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 986
    functionName: WeaveMessageLayer::NewConnectionTunnel
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnectionTunnel*::IsInUse
    - WeaveLogError
    - WeaveConnectionTunnel*::Init
    linkageType: ''
    returnType: WeaveConnectionTunnel
    signature: '*WeaveMessageLayer::NewConnectionTunnel()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1012,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1015,1
    - Dst: WeaveMessageLayer::NewConnectionTunnel
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1018,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1019,1
    - Dst: MakeTunnelConnected
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1022,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1023,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1025,1
    - Dst: WeaveConnection::LogId
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1026,1
    - Dst: WeaveConnection::LogId
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1026,1
    - Dst: WeaveConnection::mTcpEndPoint::LogId
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1026,1
    - Dst: WeaveConnection::mTcpEndPoint::LogId
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1026,1
    - Dst: WeaveConnection::mTcpEndPoint::SetIdleTimeout
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1031,1
    - Dst: WeaveConnection::mTcpEndPoint::SetIdleTimeout
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1032,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1040,1
    - Dst: WeaveConnection::Close
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1043,1
    - Dst: WeaveConnection::Close
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1044,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - tunPtr
    - conOne
    - conTwo
    - inactivityTimeoutMS
    argTypes:
    - WeaveConnectionTunnel**
    - WeaveConnection
    - WeaveConnection
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1047
      start: 1009
    functionDepth: 1
    functionLinenumber: 1009
    functionLinenumberEnd: 1047
    functionName: WeaveMessageLayer::CreateTunnel
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnection::LogId
    - MakeTunnelConnected
    - WeaveLogProgress
    - WeaveMessageLayer::NewConnectionTunnel
    - WeaveConnection::mTcpEndPoint::SetIdleTimeout
    - VerifyOrExit
    - WeaveConnection::Close
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveConnection::mTcpEndPoint::LogId
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveMessageLayer::CreateTunnel(WeaveConnectionTunnel **tunPtr, WeaveConnection
      &conOne,\n        WeaveConnection &conTwo, uint32_t inactivityTimeoutMS)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1055,1
    - Dst: UnsecuredListenEnabled
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1058,1
    - Dst: WeaveMessageLayer::EnableUnsecuredListen
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1060,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1061,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1065,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1072,1
    - Dst: OnUnsecuredConnectionCallbacksRemoved
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1077,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - newOnUnsecuredConnectionReceived
    - newOnUnsecuredConnectionCallbacksRemoved
    - force
    - listenerState
    argTypes:
    - ConnectionReceiveFunct
    - CallbackRemovedFunct
    - bool
    - void*
    constantsTouched: []
    func_position:
      end: 1087
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1087
    functionName: WeaveMessageLayer::SetUnsecuredConnectionListener
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - WeaveMessageLayer::EnableUnsecuredListen
    - VerifyOrExit
    - ExitNow
    - SuccessOrExit
    - OnUnsecuredConnectionCallbacksRemoved
    - UnsecuredListenEnabled
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveMessageLayer::SetUnsecuredConnectionListener(ConnectionReceiveFunct\n
      \       newOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved,
      bool force,\n        void *listenerState)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1094,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1103,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1105,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1107,1
    - Dst: UnsecuredListenEnabled
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1110,1
    - Dst: WeaveMessageLayer::DisableUnsecuredListen
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1112,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - oldOnUnsecuredConnectionReceived
    - oldOnUnsecuredConnectionCallbacksRemoved
    argTypes:
    - ConnectionReceiveFunct
    - CallbackRemovedFunct
    constantsTouched: []
    func_position:
      end: 1122
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1122
    functionName: WeaveMessageLayer::ClearUnsecuredConnectionListener
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - WeaveMessageLayer::DisableUnsecuredListen
    - WeaveLogProgress
    - ExitNow
    - SuccessOrExit
    - UnsecuredListenEnabled
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveMessageLayer::ClearUnsecuredConnectionListener(ConnectionReceiveFunct\n
      \       oldOnUnsecuredConnectionReceived, CallbackRemovedFunct oldOnUnsecuredConnectionCallbacksRemoved)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SelectNodeAddress
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1130,1
    - Dst: IsFabricAddress
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1137,1
    - Dst: IPv6InterfaceIdToWeaveNodeId
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1138,1
    - Dst: InterfaceId
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ' destNodeId'
    - ' destAddr'
    argTypes:
    - uint64_t
    - IPAddress
    constantsTouched: []
    func_position:
      end: 1141
      start: 1124
    functionDepth: 0
    functionLinenumber: 1124
    functionLinenumberEnd: 1141
    functionName: WeaveMessageLayer::SelectDestNodeIdAndAddress
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 1
    functionsReached:
    - IsFabricAddress
    - InterfaceId
    - SelectNodeAddress
    - IPv6InterfaceIdToWeaveNodeId
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveMessageLayer::SelectDestNodeIdAndAddress(uint64_t& destNodeId,
      IPAddress& destAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msgInfo
    argTypes:
    - WeaveMessageInfo*
    constantsTouched: []
    func_position:
      end: 1149
      start: 1144
    functionDepth: 0
    functionLinenumber: 1144
    functionLinenumberEnd: 1149
    functionName: EncodeHeaderField
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: EncodeHeaderField(const WeaveMessageInfo *msgInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - headerField
    - msgInfo
    argTypes:
    - uint16_t
    - WeaveMessageInfo*
    constantsTouched: []
    func_position:
      end: 1157
      start: 1152
    functionDepth: 0
    functionLinenumber: 1152
    functionLinenumberEnd: 1157
    functionName: DecodeHeaderField
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DecodeHeaderField(const uint16_t headerField, WeaveMessageInfo *msgInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1188,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1192,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1193,1
    - Dst: DecodeHeaderField
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1196,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1202,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1206,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1213,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read64
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1215,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1223,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read64
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1225,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1240,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1242,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - msgBuf
    - msgInfo
    - payloadStart
    argTypes:
    - PacketBuffer*
    - WeaveMessageInfo*
    - uint8_t**
    constantsTouched: []
    func_position:
      end: 1259
      start: 1177
    functionDepth: 1
    functionLinenumber: 1177
    functionLinenumberEnd: 1259
    functionName: WeaveMessageLayer::DecodeHeader
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - ExitNow
    - DecodeHeaderField
    - nl::Weave::Encoding::LittleEndian::Read32
    - nl::Weave::Encoding::LittleEndian::Read16
    - nl::Weave::Encoding::LittleEndian::Read64
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveMessageLayer::DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo
      *msgInfo, uint8_t **payloadStart)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveMessageInfo::Clear
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1271,1
    - Dst: WeaveMessageLayer::DecodeHeader
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1274,1
    - Dst: GetSessionState
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1280,1
    - Dst: AES128CTRMode::SetKey
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1295,1
    - Dst: AES128CTRMode::SetWeaveMessageCounter
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1296,1
    - Dst: AES128CTRMode::EncryptData
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1297,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1307
      start: 1261
    functionDepth: 2
    functionLinenumber: 1261
    functionLinenumberEnd: 1307
    functionName: WeaveMessageLayer::ReEncodeMessage
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - GetSessionState
    - AES128CTRMode::SetWeaveMessageCounter
    - WeaveMessageInfo::Clear
    - AES128CTRMode::SetKey
    - WeaveMessageLayer::DecodeHeader
    - AES128CTRMode::EncryptData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveMessageLayer::ReEncodeMessage(PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveMessageInfo::Clear
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1350,1
    - Dst: WeaveMessageLayer::DecodeHeader
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1351,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1385,1
    - Dst: PacketBuffer*::EnsureReservedSize
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1390,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1394,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1394,1
    - Dst: GetSessionState
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1404,1
    - Dst: GetSessionState
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1408,1
    - Dst: WeaveSessionState::NewMessageId
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1418,1
    - Dst: WeaveSessionState::MessageIdNotSynchronized
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1422,1
    - Dst: nl::Weave::WeaveKeyId::IsAppGroupKey
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1422,1
    - Dst: OnMsgCounterSyncReqSent
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1428,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1433,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1441,1
    - Dst: WeaveSessionState::IsDuplicateMessage
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1445,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1448,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1453,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1459,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1471,1
    - Dst: WeaveMessageLayer::ComputeIntegrityCheck_AES128CTRSHA1
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1478,1
    - Dst: WeaveMessageLayer::Encrypt_AES128CTRSHA1
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1483,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1491,1
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1496,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 77
    argCount: 5
    argNames:
    - msgInfo
    - msgBuf
    - con
    - maxLen
    - reserve
    argTypes:
    - WeaveMessageInfo*
    - PacketBuffer*
    - WeaveConnection*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1499
      start: 1336
    functionDepth: 2
    functionLinenumber: 1336
    functionLinenumberEnd: 1499
    functionName: WeaveMessageLayer::EncodeMessage
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 2
    functionsReached:
    - PacketBuffer*::MaxDataLength
    - WeaveSessionState::IsDuplicateMessage
    - WeaveMessageInfo::Clear
    - WeaveSessionState::MessageIdNotSynchronized
    - WeaveSessionState::NewMessageId
    - WeaveMessageLayer::ComputeIntegrityCheck_AES128CTRSHA1
    - GetSessionState
    - nl::Weave::Encoding::LittleEndian::Write32
    - OnMsgCounterSyncReqSent
    - PacketBuffer*::SetDataLength
    - IgnoreUnusedVariable
    - PacketBuffer*::SetStart
    - nl::Weave::WeaveKeyId::IsAppGroupKey
    - nl::Weave::Encoding::LittleEndian::Write16
    - WeaveMessageLayer::DecodeHeader
    - WeaveMessageLayer::Encrypt_AES128CTRSHA1
    - PacketBuffer*::DataLength
    - nl::Weave::Encoding::LittleEndian::Write64
    - PacketBuffer*::EnsureReservedSize
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveMessageLayer::EncodeMessage(WeaveMessageInfo *msgInfo, PacketBuffer
      *msgBuf, WeaveConnection *con,\n        uint16_t maxLen, uint16_t reserve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveMessageLayer::DecodeHeader
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1510,1
    - Dst: GetSessionState
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1519,1
    - Dst: WeaveMessageLayer::Encrypt_AES128CTRSHA1
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1546,1
    - Dst: WeaveMessageLayer::ComputeIntegrityCheck_AES128CTRSHA1
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1551,1
    - Dst: ConstantTimeCompare
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1554,1
    - Dst: WeaveSessionState::IsDuplicateMessage
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1569,1
    - Dst: WeaveSessionState::MessageIdNotSynchronized
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1574,1
    - Dst: nl::Weave::WeaveKeyId::IsAppGroupKey
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1574,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 6
    argNames:
    - msgBuf
    - sourceNodeId
    - con
    - msgInfo
    - rPayload
    - rPayloadLen
    argTypes:
    - PacketBuffer*
    - uint64_t
    - WeaveConnection*
    - WeaveMessageInfo*
    - uint8_t**
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 1582
      start: 1501
    functionDepth: 2
    functionLinenumber: 1501
    functionLinenumberEnd: 1582
    functionName: WeaveMessageLayer::DecodeMessage
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - ConstantTimeCompare
    - GetSessionState
    - WeaveMessageLayer::ComputeIntegrityCheck_AES128CTRSHA1
    - nl::Weave::WeaveKeyId::IsAppGroupKey
    - WeaveSessionState::IsDuplicateMessage
    - WeaveSessionState::MessageIdNotSynchronized
    - WeaveMessageLayer::DecodeHeader
    - WeaveMessageLayer::Encrypt_AES128CTRSHA1
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveMessageLayer::DecodeMessage(PacketBuffer *msgBuf, uint64_t sourceNodeId,
      WeaveConnection *con,\n        WeaveMessageInfo *msgInfo, uint8_t **rPayload,
      uint16_t *rPayloadLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveMessageLayer::EncodeMessage
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1588,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1595,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put16
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - msgInfo
    - msgBuf
    - con
    - maxLen
    argTypes:
    - WeaveMessageInfo*
    - PacketBuffer*
    - WeaveConnection*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1599
      start: 1584
    functionDepth: 3
    functionLinenumber: 1584
    functionLinenumberEnd: 1599
    functionName: WeaveMessageLayer::EncodeMessageWithLength
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetStart
    - WeaveMessageLayer::EncodeMessage
    - nl::Weave::Encoding::LittleEndian::Put16
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveMessageLayer::EncodeMessageWithLength(WeaveMessageInfo *msgInfo,
      PacketBuffer *msgBuf,\n        WeaveConnection *con, uint16_t maxLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1618,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1624,1
    - Dst: PacketBuffer*::ReservedSize
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1624,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1631,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1632,1
    - Dst: WeaveMessageLayer::DecodeMessage
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1635,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1641,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1642,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1648,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1649,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 7
    argNames:
    - msgBuf
    - sourceNodeId
    - con
    - msgInfo
    - rPayload
    - rPayloadLen
    - rFrameLen
    argTypes:
    - PacketBuffer*
    - uint64_t
    - WeaveConnection*
    - WeaveMessageInfo*
    - uint8_t**
    - uint16_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 1653
      start: 1601
    functionDepth: 3
    functionLinenumber: 1601
    functionLinenumberEnd: 1653
    functionName: WeaveMessageLayer::DecodeMessageWithLength
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveMessageLayer::DecodeMessage
    - PacketBuffer*::ReservedSize
    - PacketBuffer*::SetDataLength
    - PacketBuffer*::SetStart
    - static_cast<uint32_t>
    - PacketBuffer*::MaxDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveMessageLayer::DecodeMessageWithLength(PacketBuffer *msgBuf, uint64_t
      sourceNodeId, WeaveConnection *con,\n        WeaveMessageInfo *msgInfo, uint8_t
      **rPayload, uint16_t *rPayloadLen, uint32_t *rFrameLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1664,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1665,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1666,1
    - Dst: WeaveMessageInfo::Clear
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1668,1
    - Dst: IPPacketInfo*::DestAddress::IsMulticast
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1681,1
    - Dst: WeaveMessageLayer*::Inet::MatchLocalIPv6Subnet
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1681,1
    - Dst: IPPacketInfo*::SrcAddress::IsIPv6ULA
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1688,1
    - Dst: IPv6InterfaceIdToWeaveNodeId
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1688,1
    - Dst: IPPacketInfo*::SrcAddress::InterfaceId
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1688,1
    - Dst: WeaveMessageLayer*::DecodeMessage
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1691,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1696,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1697,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1709,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1713,1
    - Dst: WeaveMessageLayer*::OnUDPTunneledMessageReceived
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1736,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1740,1
    - Dst: WeaveMessageLayer*::OnMessageReceived
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1750,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1754,1
    - Dst: WeaveMessageLayer*::OnMessageReceived
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1762,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1765,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1772,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1772,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1774,1
    - Dst: IPPacketInfo*::DestAddress::IsMulticast
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1778,1
    - Dst: WeaveMessageLayer*::SecurityMgr::IsKeyError
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1778,1
    - Dst: WeaveMessageLayer*::SecurityMgr::SendKeyErrorMsg
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1779,1
    - Dst: WeaveMessageLayer*::OnReceiveError
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1782,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 3
    argNames:
    - endPoint
    - msg
    - pktInfo
    argTypes:
    - UDPEndPoint*
    - PacketBuffer*
    - IPPacketInfo*
    constantsTouched: []
    func_position:
      end: 1786
      start: 1655
    functionDepth: 2
    functionLinenumber: 1655
    functionLinenumberEnd: 1786
    functionName: WeaveMessageLayer::HandleUDPMessage
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveMessageLayer*::Inet::MatchLocalIPv6Subnet
    - WeaveMessageInfo::Clear
    - IPPacketInfo*::SrcAddress::InterfaceId
    - WeaveLogError
    - WeaveMessageLayer*::SecurityMgr::SendKeyErrorMsg
    - nl::Weave::System::PacketBuffer::Free
    - IPv6InterfaceIdToWeaveNodeId
    - SetFlag
    - nl::ErrorStr
    - WeaveMessageLayer*::DecodeMessage
    - PacketBuffer*::SetDataLength
    - WeaveMessageLayer*::OnUDPTunneledMessageReceived
    - PacketBuffer*::SetStart
    - ExitNow
    - IPPacketInfo*::DestAddress::IsMulticast
    - WeaveMessageLayer*::SecurityMgr::IsKeyError
    - IPPacketInfo*::SrcAddress::IsIPv6ULA
    - WeaveMessageLayer*::OnMessageReceived
    - WeaveMessageLayer*::OnReceiveError
    - SuccessOrExit
    - WEAVE_FAULT_INJECT
    linkageType: ''
    returnType: void
    signature: WeaveMessageLayer::HandleUDPMessage(UDPEndPoint *endPoint, PacketBuffer
      *msg, const IPPacketInfo *pktInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1790,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1790,1
    - Dst: WeaveMessageLayer*::OnReceiveError
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - endPoint
    - err
    - pktInfo
    argTypes:
    - UDPEndPoint*
    - INET_ERROR
    - IPPacketInfo*
    constantsTouched: []
    func_position:
      end: 1795
      start: 1788
    functionDepth: 1
    functionLinenumber: 1788
    functionLinenumberEnd: 1795
    functionName: WeaveMessageLayer::HandleUDPReceiveError
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - WeaveMessageLayer*::OnReceiveError
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: WeaveMessageLayer::HandleUDPReceiveError(UDPEndPoint *endPoint, INET_ERROR
      err, const IPPacketInfo *pktInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BLEEndPoint*::Close
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1805,1
    - Dst: WeaveMessageLayer*::OnAcceptError
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1807,1
    - Dst: WeaveMessageLayer*::NewConnection
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1812,1
    - Dst: BLEEndPoint*::Close
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1815,1
    - Dst: WeaveMessageLayer*::OnAcceptError
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1817,1
    - Dst: WeaveConnection*::MakeConnectedBle
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1822,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1826,1
    - Dst: WeaveConnection*::SetIdleTimeout
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1831,1
    - Dst: WeaveConnection*::SetIncoming
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1834,1
    - Dst: WeaveMessageLayer*::ExchangeMgr::HandleConnectionReceived
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1838,1
    - Dst: WeaveMessageLayer*::OnConnectionReceived
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1842,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - bleEP
    argTypes:
    - BLEEndPoint*
    constantsTouched: []
    func_position:
      end: 1843
      start: 1798
    functionDepth: 0
    functionLinenumber: 1798
    functionLinenumberEnd: 1843
    functionName: WeaveMessageLayer::HandleIncomingBleConnection
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - BLEEndPoint*::Close
    - WeaveConnection*::MakeConnectedBle
    - WeaveMessageLayer*::NewConnection
    - WeaveLogProgress
    - WeaveConnection*::SetIdleTimeout
    - WeaveMessageLayer*::ExchangeMgr::HandleConnectionReceived
    - WeaveConnection*::SetIncoming
    - WeaveMessageLayer*::OnAcceptError
    - WeaveMessageLayer*::OnConnectionReceived
    linkageType: ''
    returnType: void
    signature: WeaveMessageLayer::HandleIncomingBleConnection(BLEEndPoint *bleEP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TCPEndPoint*::Free
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1858,1
    - Dst: WeaveMessageLayer*::OnAcceptError
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1860,1
    - Dst: WeaveMessageLayer*::GetIncomingTCPConCount
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1865,1
    - Dst: TCPEndPoint*::Free
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1869,1
    - Dst: WeaveMessageLayer*::OnAcceptError
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1871,1
    - Dst: WeaveMessageLayer*::NewConnection
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1876,1
    - Dst: TCPEndPoint*::Free
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1879,1
    - Dst: WeaveMessageLayer*::OnAcceptError
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1881,1
    - Dst: TCPEndPoint*::GetLocalInfo
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1886,1
    - Dst: TCPEndPoint*::Free
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1889,1
    - Dst: WeaveMessageLayer*::OnAcceptError
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1891,1
    - Dst: WeaveConnection*::MakeConnectedTcp
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1896,1
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1901,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1902,1
    - Dst: WeaveConnection*::LogId
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1902,1
    - Dst: WeaveConnection*::SetIdleTimeout
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1907,1
    - Dst: WeaveConnection*::SetIncoming
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1910,1
    - Dst: WeaveMessageLayer*::ExchangeMgr::HandleConnectionReceived
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1914,1
    - Dst: WeaveMessageLayer*::OnConnectionReceived
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1918,1
    - Dst: TCPEndPoint*::GetLocalInfo
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1921,1
    - Dst: WeaveMessageLayer*::OnUnsecuredConnectionReceived
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1923,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 4
    argNames:
    - listeningEP
    - conEP
    - peerAddr
    - peerPort
    argTypes:
    - TCPEndPoint*
    - TCPEndPoint*
    - IPAddress
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1925
      start: 1846
    functionDepth: 0
    functionLinenumber: 1846
    functionLinenumberEnd: 1925
    functionName: WeaveMessageLayer::HandleIncomingTcpConnection
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnection*::MakeConnectedTcp
    - WeaveMessageLayer*::NewConnection
    - WeaveMessageLayer*::GetIncomingTCPConCount
    - WeaveLogProgress
    - TCPEndPoint*::Free
    - WeaveConnection*::LogId
    - WeaveConnection*::SetIdleTimeout
    - IPAddress::ToString
    - WeaveMessageLayer*::ExchangeMgr::HandleConnectionReceived
    - WeaveConnection*::SetIncoming
    - WeaveMessageLayer*::OnUnsecuredConnectionReceived
    - WeaveMessageLayer*::OnAcceptError
    - TCPEndPoint*::GetLocalInfo
    - WeaveMessageLayer*::OnConnectionReceived
    linkageType: ''
    returnType: void
    signature: WeaveMessageLayer::HandleIncomingTcpConnection(TCPEndPoint *listeningEP,
      TCPEndPoint *conEP, const IPAddress &peerAddr, uint16_t peerPort)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveMessageLayer*::OnAcceptError
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1931,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ep
    - err
    argTypes:
    - TCPEndPoint*
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 1932
      start: 1927
    functionDepth: 0
    functionLinenumber: 1927
    functionLinenumberEnd: 1932
    functionName: WeaveMessageLayer::HandleAcceptError
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveMessageLayer*::OnAcceptError
    linkageType: ''
    returnType: void
    signature: WeaveMessageLayer::HandleAcceptError(TCPEndPoint *ep, INET_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsBoundToLocalIPv6Address
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1966,1
    - Dst: GetInterfaceFromAddr
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1968,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1969,1
    - Dst: WeaveMessageLayer::RefreshEndpoint
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:1999,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2001,1
    - Dst: WeaveMessageLayer::RefreshEndpoint
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2010,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2012,1
    - Dst: WeaveMessageLayer::RefreshEndpoint
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2023,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2025,1
    - Dst: WeaveMessageLayer::RefreshEndpoint
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2048,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2050,1
    - Dst: WeaveMessageLayer::RefreshEndpoint
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2061,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2063,1
    - Dst: WeaveMessageLayer::RefreshEndpoint
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2077,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2079,1
    - Dst: WeaveMessageLayer::RefreshEndpoint
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2090,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2092,1
    - Dst: nl::Inet::IPAddress::MakeIPv6WellKnownMulticast
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2105,1
    - Dst: WeaveMessageLayer::RefreshEndpoint
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2107,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2109,1
    - Dst: nl::Inet::IPAddress::MakeIPv4Broadcast
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2118,1
    - Dst: WeaveMessageLayer::RefreshEndpoint
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2120,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2122,1
    - Dst: WeaveBindLog
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2132,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2132,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 1948
    functionDepth: 1
    functionLinenumber: 1948
    functionLinenumberEnd: 2134
    functionName: WeaveMessageLayer::RefreshEndpoints
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - GetInterfaceFromAddr
    - IsBoundToLocalIPv6Address
    - nl::Inet::IPAddress::MakeIPv6WellKnownMulticast
    - ErrorStr
    - SuccessOrExit
    - WeaveBindLog
    - WeaveMessageLayer::RefreshEndpoint
    - nl::Inet::IPAddress::MakeIPv4Broadcast
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveMessageLayer::RefreshEndpoints()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Free
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2143,1
    - Dst: NewTCPEndPoint
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2151,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2152,1
    - Dst: Bind
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2155,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2156,1
    - Dst: Listen
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2162,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2163,1
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2168,1
    - Dst: WeaveBindLog
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2169,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2179,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2182,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2182,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 6
    argNames:
    - ' endPoint'
    - enable
    - name
    - addrType
    - addr
    - port
    argTypes:
    - TCPEndPoint*
    - bool
    - char*
    - IPAddressType
    - IPAddress
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2185
      start: 2136
    functionDepth: 0
    functionLinenumber: 2136
    functionLinenumberEnd: 2185
    functionName: WeaveMessageLayer::RefreshEndpoint
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogError
    - Bind
    - Listen
    - IPAddress::ToString
    - SuccessOrExit
    - NewTCPEndPoint
    - WeaveBindLog
    - ErrorStr
    - Free
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveMessageLayer::RefreshEndpoint(TCPEndPoint *& endPoint, bool enable,
      const char * name, IPAddressType addrType, IPAddress addr, uint16_t port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2192,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2194,1
    - Dst: NewUDPEndPoint
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2202,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2203,1
    - Dst: Bind
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2206,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2207,1
    - Dst: reinterpret_cast<IPEndPointBasis::OnMessageReceivedFunct>
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2211,1
    - Dst: reinterpret_cast<IPEndPointBasis::OnReceiveErrorFunct>
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2212,1
    - Dst: Listen
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2213,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2214,1
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2220,1
    - Dst: GetInterfaceName
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2224,1
    - Dst: WeaveBindLog
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2230,1
    - Dst: GetBoundPort
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2230,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2240,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2243,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2243,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 7
    argNames:
    - ' endPoint'
    - enable
    - name
    - addrType
    - addr
    - port
    - intfId
    argTypes:
    - UDPEndPoint*
    - bool
    - char*
    - IPAddressType
    - IPAddress
    - uint16_t
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 2246
      start: 2187
    functionDepth: 0
    functionLinenumber: 2187
    functionLinenumberEnd: 2246
    functionName: WeaveMessageLayer::RefreshEndpoint
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogError
    - Bind
    - Listen
    - WeaveBindLog
    - GetFlag
    - reinterpret_cast<IPEndPointBasis::OnMessageReceivedFunct>
    - reinterpret_cast<IPEndPointBasis::OnReceiveErrorFunct>
    - GetInterfaceName
    - GetBoundPort
    - IPAddress::ToString
    - SuccessOrExit
    - NewUDPEndPoint
    - ErrorStr
    - Free
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveMessageLayer::RefreshEndpoint(UDPEndPoint *& endPoint, bool enable,
      const char * name, IPAddressType addrType, IPAddress addr, uint16_t port, InterfaceId
      intfId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES128CTRMode::SetKey
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2252,1
    - Dst: AES128CTRMode::SetWeaveMessageCounter
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2253,1
    - Dst: AES128CTRMode::EncryptData
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - msgInfo
    - key
    - inData
    - inLen
    - outBuf
    argTypes:
    - WeaveMessageInfo*
    - uint8_t*
    - uint8_t*
    - uint16_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 2255
      start: 2248
    functionDepth: 0
    functionLinenumber: 2248
    functionLinenumberEnd: 2255
    functionName: WeaveMessageLayer::Encrypt_AES128CTRSHA1
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 2
    functionsReached:
    - AES128CTRMode::SetWeaveMessageCounter
    - AES128CTRMode::EncryptData
    - AES128CTRMode::SetKey
    linkageType: ''
    returnType: void
    signature: "WeaveMessageLayer::Encrypt_AES128CTRSHA1(const WeaveMessageInfo *msgInfo,
      const uint8_t *key,\n                                              const uint8_t
      *inData, uint16_t inLen, uint8_t *outBuf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HMACSHA1::Begin
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2265,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2268,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2269,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2281,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2282,1
    - Dst: HMACSHA1::AddData
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2286,1
    - Dst: HMACSHA1::AddData
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2289,1
    - Dst: HMACSHA1::Finish
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - msgInfo
    - key
    - inData
    - inLen
    - outBuf
    argTypes:
    - WeaveMessageInfo*
    - uint8_t*
    - uint8_t*
    - uint16_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 2293
      start: 2257
    functionDepth: 1
    functionLinenumber: 2257
    functionLinenumberEnd: 2293
    functionName: WeaveMessageLayer::ComputeIntegrityCheck_AES128CTRSHA1
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Write64
    - HMACSHA1::AddData
    - nl::Weave::Encoding::LittleEndian::Write16
    - HMACSHA1::Finish
    - nl::Weave::Encoding::LittleEndian::Write32
    - HMACSHA1::Begin
    linkageType: ''
    returnType: void
    signature: "WeaveMessageLayer::ComputeIntegrityCheck_AES128CTRSHA1(const WeaveMessageInfo
      *msgInfo, const uint8_t *key,\n                                                            const
      uint8_t *inData, uint16_t inLen, uint8_t *outBuf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveMessageLayer::CloseListeningEndpoints
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2311,1
    - Dst: static_cast<WeaveConnection *>
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2314,1
    - Dst: WeaveConnection*::Abort
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2317,1
    - Dst: static_cast<WeaveConnectionTunnel *>
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2320,1
    - Dst: WeaveConnectionTunnel*::Shutdown
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2327,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2308
    functionDepth: 1
    functionLinenumber: 2308
    functionLinenumberEnd: 2332
    functionName: WeaveMessageLayer::CloseEndpoints
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnectionTunnel*::Shutdown
    - WeaveMessageLayer::CloseListeningEndpoints
    - static_cast<WeaveConnection *>
    - WeaveConnection*::Abort
    - static_cast<WeaveConnectionTunnel *>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveMessageLayer::CloseEndpoints()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveBindLog
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2336,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2340,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2346,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2354,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2364,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2374,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2384,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2390,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2398,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2408,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2415
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2415
    functionName: WeaveMessageLayer::CloseListeningEndpoints
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 1
    functionsReached:
    - WeaveBindLog
    - Free
    linkageType: ''
    returnType: void
    signature: WeaveMessageLayer::CloseListeningEndpoints(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2421,1
    - Dst: WeaveMessageLayer::RefreshEndpoints
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2417
    functionDepth: 2
    functionLinenumber: 2417
    functionLinenumberEnd: 2423
    functionName: WeaveMessageLayer::EnableUnsecuredListen
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 1
    functionsReached:
    - WeaveMessageLayer::RefreshEndpoints
    - SetFlag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveMessageLayer::EnableUnsecuredListen()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearFlag
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2427,1
    - Dst: WeaveMessageLayer::RefreshEndpoints
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2429
      start: 2425
    functionDepth: 2
    functionLinenumber: 2425
    functionLinenumberEnd: 2429
    functionName: WeaveMessageLayer::DisableUnsecuredListen
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 1
    functionsReached:
    - WeaveMessageLayer::RefreshEndpoints
    - ClearFlag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveMessageLayer::DisableUnsecuredListen()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - messageLayerActivityChangeHandler
    argTypes:
    - MessageLayerActivityChangeHandlerFunct
    constantsTouched: []
    func_position:
      end: 2451
      start: 2448
    functionDepth: 0
    functionLinenumber: 2448
    functionLinenumberEnd: 2451
    functionName: WeaveMessageLayer::SetSignalMessageLayerActivityChanged
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveMessageLayer::SetSignalMessageLayerActivityChanged(MessageLayerActivityChangeHandlerFunct
      messageLayerActivityChangeHandler)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - messageLayerPktCaptureHandler
    argTypes:
    - MessageLayerPktCaptureHandlerFunct
    constantsTouched: []
    func_position:
      end: 2466
      start: 2463
    functionDepth: 0
    functionLinenumber: 2463
    functionLinenumberEnd: 2466
    functionName: WeaveMessageLayer::SetMessageLayerPktCaptureHandler
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveMessageLayer::SetMessageLayerPktCaptureHandler(MessageLayerPktCaptureHandlerFunct
      messageLayerPktCaptureHandler)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsMsgCounterSyncReqInProgress
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2476
      start: 2469
    functionDepth: 0
    functionLinenumber: 2469
    functionLinenumberEnd: 2476
    functionName: WeaveMessageLayer::IsMessageLayerActive
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - IsMsgCounterSyncReqInProgress
    linkageType: ''
    returnType: bool
    signature: WeaveMessageLayer::IsMessageLayerActive(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OnMessageLayerActivityChange
      Src: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp:2493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2495
      start: 2488
    functionDepth: 0
    functionLinenumber: 2488
    functionLinenumberEnd: 2495
    functionName: WeaveMessageLayer::SignalMessageLayerActivityChanged
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - OnMessageLayerActivityChange
    linkageType: ''
    returnType: void
    signature: WeaveMessageLayer::SignalMessageLayerActivityChanged(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - msgBuf
    - isUDP
    - udpMTU
    argTypes:
    - PacketBuffer*
    - bool
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2528
      start: 2519
    functionDepth: 0
    functionLinenumber: 2519
    functionLinenumberEnd: 2528
    functionName: WeaveMessageLayer::GetMaxWeavePayloadSize
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: WeaveMessageLayer::GetMaxWeavePayloadSize(const PacketBuffer *msgBuf,
      bool isUDP, uint32_t udpMTU)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: '* operator new     (size_t, void * p) throw()'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '* operator new     (size_t, void * p) throw()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: '* operator new[]   (size_t, void * p) throw()'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '* operator new[]   (size_t, void * p) throw()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveSessionKey::Init
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:114,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 126
    functionName: WeaveSessionKey::Init
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 1
    functionsReached:
    - WeaveSessionKey::Init
    - memset
    linkageType: ''
    returnType: void
    signature: WeaveSessionKey::Init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveSessionKey::Init
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:133,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: WeaveSessionKey::Clear
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 0
    functionsReached:
    - WeaveSessionKey::Init
    - ClearSecretData
    linkageType: ''
    returnType: void
    signature: WeaveSessionKey::Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetValue
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 151
    functionName: WeaveSessionKey::ComputeNextResumptionMsgIds
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 0
    functionsReached:
    - GetValue
    linkageType: ''
    returnType: void
    signature: WeaveSessionKey::ComputeNextResumptionMsgIds(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: WeaveFabricState::WeaveFabricState
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveFabricState::WeaveFabricState()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveFabricState::Init
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:234,1
    - Dst: DummyGroupKeyStore::DummyGroupKeyStore
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 235
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 235
    functionName: WeaveFabricState::Init
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 1
    functionsReached:
    - WeaveFabricState::Init
    - DummyGroupKeyStore::DummyGroupKeyStore
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveFabricState::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveFabricState::Init
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:259,1
    - Dst: GetRandU32
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:259,1
    - Dst: WeaveFabricState::Init
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:260,1
    - Dst: WeaveFabricState::Init
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:262,1
    - Dst: WeaveFabricState::Init
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:264,1
    - Dst: WeaveFabricState::Init
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:270,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:272,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:274,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:292,1
    - Dst: getenv
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:293,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:295,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 1
    argNames:
    - groupKeyStore
    argTypes:
    - GroupKeyStoreBase*
    constantsTouched: []
    func_position:
      end: 308
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 308
    functionName: WeaveFabricState::Init
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 2
    functionsReached:
    - GetRandU32
    - nl::Inet::IPAddress::FromString
    - memset
    - getenv
    - WeaveFabricState::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveFabricState::Init(GroupKeyStoreBase *groupKeyStore)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveFabricState::Shutdown
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 319
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 319
    functionName: WeaveFabricState::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 1
    functionsReached:
    - WeaveFabricState::Shutdown
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveFabricState::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::MakeSessionKeyId
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:329,1
    - Dst: GetRandU16
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:329,1
    - Dst: FindSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:330,1
    - Dst: IsAllocated
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:333,1
    - Dst: NextMsgId::Init
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:342,1
    - Dst: SetUsedOverConnection
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:351,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - peerNodeId
    - keyId
    - boundCon
    - ' sessionKey'
    argTypes:
    - uint64_t
    - uint16_t
    - WeaveConnection*
    - WeaveSessionKey*
    constantsTouched: []
    func_position:
      end: 355
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 355
    functionName: WeaveFabricState::AllocSessionKey
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 0
    functionsReached:
    - IsAllocated
    - nl::Weave::WeaveKeyId::MakeSessionKeyId
    - FindSessionKey
    - NextMsgId::Init
    - GetRandU16
    - SetUsedOverConnection
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveFabricState::AllocSessionKey(uint64_t peerNodeId, uint16_t keyId,
      WeaveConnection *boundCon, WeaveSessionKey *& sessionKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:362,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:363,1
    - Dst: WeaveFabricState::SetSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:365,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - keyId
    - peerNodeId
    - encType
    - authMode
    - encKey
    argTypes:
    - uint16_t
    - uint64_t
    - uint8_t
    - WeaveAuthMode
    - WeaveEncryptionKey*
    constantsTouched: []
    func_position:
      end: 370
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 370
    functionName: WeaveFabricState::SetSessionKey
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 1
    functionsReached:
    - FindSessionKey
    - WeaveFabricState::SetSessionKey
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveFabricState::SetSessionKey(uint16_t keyId, uint64_t peerNodeId,
      uint8_t encType, WeaveAuthMode authMode, const WeaveEncryptionKey *encKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::Security::GetSecureRandomData
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:380,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:380,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:381,1
    - Dst: WeaveSessionKey*::NextMsgId::Init
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:385,1
    - Dst: WeaveEncryptionKeyToString
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:396,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - sessionKey
    - encType
    - authMode
    - encKey
    argTypes:
    - WeaveSessionKey*
    - uint8_t
    - WeaveAuthMode
    - WeaveEncryptionKey*
    constantsTouched: []
    func_position:
      end: 404
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 404
    functionName: WeaveFabricState::SetSessionKey
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Platform::Security::GetSecureRandomData
    - reinterpret_cast<uint8_t *>
    - WeaveSessionKey*::NextMsgId::Init
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveEncryptionKeyToString
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveFabricState::SetSessionKey(WeaveSessionKey *sessionKey, uint8_t
      encType, WeaveAuthMode authMode, const WeaveEncryptionKey *encKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:411,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:412,1
    - Dst: WeaveFabricState::RemoveSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:414,1
    - Dst: NotifySessionEndSubscribers
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - keyId
    - peerNodeId
    argTypes:
    - uint16_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 420
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 420
    functionName: WeaveFabricState::RemoveSessionKey
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 1
    functionsReached:
    - NotifySessionEndSubscribers
    - FindSessionKey
    - WeaveFabricState::RemoveSessionKey
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveFabricState::RemoveSessionKey(uint16_t keyId, uint64_t peerNodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:424,1
    - Dst: WeaveFabricState::RemoveSharedSessionEndNodes
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:427,1
    - Dst: WeaveSessionKey*::Clear
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sessionKey
    - wasIdle
    argTypes:
    - WeaveSessionKey*
    - bool
    constantsTouched: []
    func_position:
      end: 429
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 429
    functionName: WeaveFabricState::RemoveSessionKey
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 1
    functionsReached:
    - WeaveFabricState::RemoveSharedSessionEndNodes
    - WeaveSessionKey*::Clear
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: WeaveFabricState::RemoveSessionKey(WeaveSessionKey *sessionKey, bool
      wasIdle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - keyId
    - peerNodeId
    - ' outSessionKey'
    argTypes:
    - uint16_t
    - uint64_t
    - WeaveSessionKey*
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 434
    functionName: WeaveFabricState::GetSessionKey
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 0
    functionsReached:
    - FindSessionKey
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveFabricState::GetSessionKey(uint16_t keyId, uint64_t peerNodeId,
      WeaveSessionKey *& outSessionKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveSessionKey*::IsAllocated
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:457,1
    - Dst: WeaveSessionKey*::IsKeySet
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:457,1
    - Dst: WeaveSessionKey*::IsSharedSession
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:457,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 3
    argNames:
    - terminatingNodeId
    - authMode
    - encType
    argTypes:
    - uint64_t
    - WeaveAuthMode
    - uint8_t
    constantsTouched: []
    func_position:
      end: 466
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 466
    functionName: WeaveFabricState::FindSharedSession
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 0
    functionsReached:
    - WeaveSessionKey*::IsAllocated
    - WeaveSessionKey*::IsSharedSession
    - WeaveSessionKey*::IsKeySet
    linkageType: ''
    returnType: WeaveSessionKey
    signature: '*WeaveFabricState::FindSharedSession(uint64_t terminatingNodeId, WeaveAuthMode
      authMode, uint8_t encType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:483,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:484,1
    - Dst: WeaveSessionKey*::IsSharedSession
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - keyId
    - peerNodeId
    argTypes:
    - uint16_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 490
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 490
    functionName: WeaveFabricState::IsSharedSession
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 0
    functionsReached:
    - WeaveSessionKey*::IsSharedSession
    - FindSessionKey
    - SuccessOrExit
    linkageType: ''
    returnType: bool
    signature: WeaveFabricState::IsSharedSession(uint16_t keyId, uint64_t peerNodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - endNodeId
    - sessionKey
    argTypes:
    - uint64_t
    - WeaveSessionKey*
    constantsTouched: []
    func_position:
      end: 518
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 518
    functionName: WeaveFabricState::FindSharedSessionEndNode
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveFabricState::FindSharedSessionEndNode(uint64_t endNodeId, const
      WeaveSessionKey *sessionKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:525,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:526,1
    - Dst: WeaveFabricState::AddSharedSessionEndNode
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:528,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - endNodeId
    - terminatingNodeId
    - keyId
    argTypes:
    - uint64_t
    - uint64_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 533
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 533
    functionName: WeaveFabricState::AddSharedSessionEndNode
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 1
    functionsReached:
    - WeaveFabricState::AddSharedSessionEndNode
    - FindSessionKey
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveFabricState::AddSharedSessionEndNode(uint64_t endNodeId, uint64_t
      terminatingNodeId, uint16_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:555,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:564,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:579,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - sessionKey
    - endNodeId
    argTypes:
    - WeaveSessionKey*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 588
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 588
    functionName: WeaveFabricState::AddSharedSessionEndNode
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 1
    functionsReached:
    - VerifyOrExit
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveFabricState::AddSharedSessionEndNode(WeaveSessionKey *sessionKey,
      uint64_t endNodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - sessionKey
    - endNodeIds
    - endNodeIdsMaxCount
    - ' endNodeIdsCount'
    argTypes:
    - WeaveSessionKey*
    - uint64_t*
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 624
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 624
    functionName: WeaveFabricState::GetSharedSessionEndNodeIds
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveFabricState::GetSharedSessionEndNodeIds(const WeaveSessionKey
      *sessionKey, uint64_t *endNodeIds,\n                                                         uint8_t
      endNodeIdsMaxCount, uint8_t& endNodeIdsCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveSessionKey*::IsSharedSession
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:628,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:637,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - sessionKey
    argTypes:
    - WeaveSessionKey*
    constantsTouched: []
    func_position:
      end: 641
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 641
    functionName: WeaveFabricState::RemoveSharedSessionEndNodes
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 1
    functionsReached:
    - WeaveSessionKey*::IsSharedSession
    - memset
    linkageType: ''
    returnType: void
    signature: WeaveFabricState::RemoveSharedSessionEndNodes(const WeaveSessionKey
      *sessionKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveFabricState::GetSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:659,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:660,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:663,1
    - Dst: WeaveSessionKey*::IsKeySet
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:663,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:664,1
    - Dst: WeaveSessionKey*::IsSuspended
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:664,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:665,1
    - Dst: IsCertAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:665,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:671,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:674,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:674,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:675,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:678,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:678,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:679,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:680,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:680,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:681,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:682,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:682,1
    - Dst: WeaveSessionKey*::NextMsgId::GetValue
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:682,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:683,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:684,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:684,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:685,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:686,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:686,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:687,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:688,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:688,1
    - Dst: WeaveSessionKey*::IsLocallyInitiated
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:688,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:689,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:690,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:690,1
    - Dst: WeaveSessionKey*::IsSharedSession
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:690,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:691,1
    - Dst: WeaveSessionKey*::IsSharedSession
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:694,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:700,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:700,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:701,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:707,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:708,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:713,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:714,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:718,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:718,1
    - Dst: CertTypeFromAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:718,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:719,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:722,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:722,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:723,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:729,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:729,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:731,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:732,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:732,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:734,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:737,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:740,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:740,1
    - Dst: WeaveSessionKey*::AreResumptionMsgIdsValid
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:741,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:742,1
    - Dst: WeaveSessionKey*::AreResumptionMsgIdsValid
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:744,1
    - Dst: WeaveSessionKey*::ComputeNextResumptionMsgIds
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:747,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:749,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:749,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:751,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:753,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:753,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:755,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:758,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:758,1
    - Dst: WeaveSessionKey*::IsUsedOverConnection
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:759,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:760,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:763,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:764,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:765,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:766,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:768,1
    - Dst: WeaveSessionKey*::MarkSuspended
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:772,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:776,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:782,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 75
    argCount: 5
    argNames:
    - keyId
    - peerNodeId
    - buf
    - bufSize
    - ' serializedSessionLen'
    argTypes:
    - uint16_t
    - uint64_t
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 785
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 785
    functionName: WeaveFabricState::SuspendSession
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 0
    functionsReached:
    - WeaveSessionKey*::NextMsgId::GetValue
    - TLVWriter::PutBoolean
    - WeaveSessionKey*::IsKeySet
    - WeaveSessionKey*::ComputeNextResumptionMsgIds
    - TLVWriter::Put
    - ClearSecretData
    - WeaveSessionKey*::IsUsedOverConnection
    - VerifyOrExit
    - TLVWriter::GetLengthWritten
    - IsCertAuthMode
    - WeaveSessionKey*::IsSharedSession
    - WeaveSessionKey*::IsSuspended
    - WeaveSessionKey*::AreResumptionMsgIdsValid
    - ExitNow
    - ProfileTag
    - WeaveFabricState::GetSessionKey
    - WeaveSessionKey*::MarkSuspended
    - WeaveSessionKey*::IsLocallyInitiated
    - TLVWriter::Finalize
    - ContextTag
    - TLVWriter::PutBytes
    - SuccessOrExit
    - CertTypeFromAuthMode
    - TLVWriter::Init
    - TLVWriter::EndContainer
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveFabricState::SuspendSession(uint16_t keyId, uint64_t peerNodeId,
      uint8_t * buf, uint16_t bufSize, uint16_t & serializedSessionLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:801,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:804,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:804,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:805,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:806,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:807,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:810,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:810,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:811,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:812,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:813,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:814,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:814,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:815,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:816,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:817,1
    - Dst: FindSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:820,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:821,1
    - Dst: WeaveSessionKey*::IsAllocated
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:822,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:833,1
    - Dst: WeaveSessionKey*::IsSuspended
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:833,1
    - Dst: WeaveSessionKey*::SetRemoveOnIdle
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:835,1
    - Dst: WeaveSessionKey*::MarkRecentlyActive
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:836,1
    - Dst: WeaveSessionKey*::ClearSuspended
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:842,1
    - Dst: WeaveFabricState::RemoveSharedSessionEndNodes
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:845,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:850,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:850,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:851,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:852,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:853,1
    - Dst: WeaveSessionKey*::NextMsgId::Init
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:854,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:855,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:857,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:857,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:858,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:859,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:860,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:861,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:861,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:862,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:863,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:864,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:867,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:867,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:868,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:869,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:870,1
    - Dst: WeaveSessionKey*::SetLocallyInitiated
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:871,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:872,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:872,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:873,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:874,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:875,1
    - Dst: WeaveSessionKey*::SetSharedSession
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:876,1
    - Dst: WeaveSessionKey*::IsSharedSession
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:880,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:884,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:884,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:885,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:886,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:887,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:889,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:893,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:894,1
    - Dst: WeaveFabricState::AddSharedSessionEndNode
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:896,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:897,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:900,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:901,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:907,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:907,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:908,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:909,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:910,1
    - Dst: CASEAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:911,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:915,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:915,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:916,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:917,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:918,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:924,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:924,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:925,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:926,1
    - Dst: TLVReader::GetLength
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:926,1
    - Dst: TLVReader::GetBytes
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:927,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:928,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:929,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:929,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:930,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:931,1
    - Dst: TLVReader::GetLength
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:931,1
    - Dst: TLVReader::GetBytes
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:932,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:933,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:936,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:941,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:941,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:942,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:943,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:944,1
    - Dst: WeaveSessionKey*::SetResumptionMsgIdsValid
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:946,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:951,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:951,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:952,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:954,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:955,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:957,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:957,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:958,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:960,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:961,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:963,1
    - Dst: WeaveSessionKey*::NextMsgId::GetValue
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:963,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:964,1
    - Dst: WeaveSessionKey*::NextMsgId::Init
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:971,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:975,1
    - Dst: WeaveSessionKey*::NextMsgId::GetValue
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:975,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:976,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:981,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:981,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:982,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:984,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:985,1
    - Dst: WeaveSessionKey*::SetUsedOverConnection
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:987,1
    - Dst: IsCASEAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:992,1
    - Dst: WeaveSessionKey*::IsUsedOverConnection
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:992,1
    - Dst: TLVReader::VerifyEndOfContainer
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1002,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1003,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1004,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1005,1
    - Dst: WeaveFabricState::RemoveSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1010,1
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1024,1
    - Dst: FindOrAllocPeerEntry
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1035,1
    - Dst: WeaveSessionState
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1036,1
    - Dst: WeaveSessionState
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1040,1
    - Dst: FindSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1045,1
    - Dst: WeaveSessionKey*::IsSuspended
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1048,1
    - Dst: WeaveSessionState
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1054,1
    - Dst: FindMsgEncAppKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1062,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1063,1
    - Dst: GroupKeyAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1065,1
    - Dst: FindOrAllocPeerEntry
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1067,1
    - Dst: WeaveSessionState
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1068,1
    - Dst: WeaveSessionState
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1070,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1076,1
    - Dst: nl::Inet::IPAddress::MakeIPv6WellKnownMulticast
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1099,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1103,1
    - Dst: WeaveNodeIdToIPv6InterfaceId
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1103,1
    - Dst: CheckSelectNodeAddress
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1118,1
    - Dst: IsIPv6ULA
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1127,1
    - Dst: GlobalId
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1128,1
    - Dst: WeaveFabricIdToIPv6GlobalId
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1128,1
    - Dst: IsFabricAddress
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1136,1
    - Dst: IPv6InterfaceIdToWeaveNodeId
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1137,1
    - Dst: InterfaceId
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1137,1
    - Dst: IsMsgCounterSyncReqInProgress
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1157,1
    - Dst: GetValue
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1159,1
    - Dst: FindOrAllocPeerEntry
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1161,1
    - Dst: ExchangeMgr::ClearMsgCounterSyncReq
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1172,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1184,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1185,1
    - Dst: IsMsgCounterSyncReqInProgress
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1201,1
    - Dst: StartMsgCounterSyncTimer
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1210,1
    - Dst: SignalMessageLayerActivityChanged
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1213,1
    - Dst: reinterpret_cast<WeaveFabricState*>
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1222,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1225,1
    - Dst: WeaveFabricState*::NextGroupKeyMsgId::GetValue
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1232,1
    - Dst: WeaveFabricState*::StartMsgCounterSyncTimer
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1251,1
    - Dst: WeaveFabricState*::MessageLayer::SignalMessageLayerActivityChanged
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1259,1
    - Dst: GetAppGroupMasterKeyId
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1283,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1284,1
    - Dst: nl::Weave::WeaveKeyId::MakeAppRotatingKeyId
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1289,1
    - Dst: nl::Weave::WeaveKeyId::MakeAppStaticKeyId
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1293,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1320,1
    - Dst: nl::Weave::WeaveKeyId::IsAppGroupKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1320,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1323,1
    - Dst: nl::Weave::WeaveKeyId::GetRootKeyId
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1323,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1326,1
    - Dst: nl::Weave::WeaveKeyId::IsAppRotatingKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1326,1
    - Dst: GetAppGroupMasterKeyId
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1329,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1330,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1333,1
    - Dst: nl::Weave::WeaveKeyId::GetAppGroupMasterKeyId
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1333,1
    - Dst: memmove
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1422,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1446,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1452,1
    - Dst: SessionEndCbCtxt*::OnSessionRemoved
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1478,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1492,1
    - Dst: ClearFabricState
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1509,1
    - Dst: nl::Weave::Platform::Security::GetSecureRandomData
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1528,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1529,1
    - Dst: nl::Weave::Platform::Security::GetSecureRandomData
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1543,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1544,1
    - Dst: StoreGroupKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1546,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1547,1
    - Dst: DidJoinFabric
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1550,1
    - Dst: ClearFabricState
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1554,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1556,1
    - Dst: Clear
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1567,1
    - Dst: DidLeaveFabric
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1572,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1590,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1592,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1592,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1593,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1595,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1595,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1596,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1601,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1601,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1602,1
    - Dst: RetrieveGroupKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1608,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1609,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1611,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1612,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1614,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1614,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1615,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1617,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1617,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1618,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1620,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1620,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1621,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1623,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1623,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1624,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1626,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1626,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1627,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1629,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1629,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1630,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1632,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1633,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1636,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1637,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1640,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1641,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1643,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1644,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1646,1
    - Dst: ClearFabricState
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1662,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1664,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1666,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1666,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1667,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1672,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1673,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1675,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1675,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1676,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1678,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1679,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1681,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1681,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1682,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1687,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1688,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1690,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1691,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1701,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1702,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1704,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1704,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1705,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1706,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1707,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1708,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1711,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1711,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1712,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1713,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1714,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1715,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1717,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1717,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1718,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1719,1
    - Dst: TLVReader::GetLength
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1719,1
    - Dst: TLVReader::GetBytes
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1720,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1721,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1723,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1723,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1724,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1725,1
    - Dst: TLVReader::GetLength
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1725,1
    - Dst: TLVReader::GetBytes
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1726,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1727,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1731,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1731,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1732,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1733,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1734,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1735,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1737,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1737,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1738,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1739,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1740,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1741,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1743,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1744,1
    - Dst: StoreGroupKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1746,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1747,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1750,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1751,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1753,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1754,1
    - Dst: DidJoinFabric
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1759,1
    - Dst: ClearFabricState
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1763,1
    - Dst: WeaveSessionKey*::IsAllocated
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1776,1
    - Dst: BoundConnectionClosedForSession
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1782,1
    - Dst: WeaveFabricState::RemoveSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1785,1
    - Dst: Advance
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1818,1
    - Dst: MessageIdNotSynchronized
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1848,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1857,1
    - Dst: nl::Weave::WeaveKeyId::IsAppGroupKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1863,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1865,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1874,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1912,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1928,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1937,1
    - Dst: nl::Weave::WeaveKeyId::IsSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1981,1
    - Dst: WeaveSessionKey*::IsAllocated
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1989,1
    - Dst: WeaveSessionKey*::IsSharedSession
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1996,1
    - Dst: WeaveFabricState::FindSharedSessionEndNode
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:1996,1
    - Dst: FindOrAllocateKeyEntry
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2020,1
    - Dst: DeriveMsgEncAppKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2027,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2028,1
    - Dst: WeaveEncryptionKeyToString
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2034,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2035,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2076,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2079,1
    - Dst: DeriveApplicationKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2083,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2086,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2089,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2092,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2101,1
    - Dst: WeaveSessionKey*::IsAllocated
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2120,1
    - Dst: WeaveSessionKey*::IsKeySet
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2123,1
    - Dst: WeaveSessionKey*::ClearRecentlyActive
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2128,1
    - Dst: WeaveSessionKey*::IsRemoveOnIdle
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2136,1
    - Dst: WeaveFabricState::RemoveSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2142,1
    - Dst: Reset
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2165,1
    - Dst: Reset
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2170,1
    - Dst: Clear
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2176,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2177,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2183,1
    - Dst: Clear
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2217,1
    - Dst: memmove
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2226,1
    - Dst: ToHex
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2244,1
    - Dst: ToHex
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2245,1
    - Dst: ToHexString
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2254,1
    - Dst: ToHexString
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.cpp:2256,1
    CyclomaticComplexity: 121
    EdgeCount: 121
    ICount: 647
    argCount: 3
    argNames:
    - serializedSession
    - serializedSessionLen
    - con
    argTypes:
    - uint8_t*
    - uint16_t
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 2265
      start: 791
    functionDepth: 2
    functionLinenumber: 791
    functionLinenumberEnd: 2265
    functionName: WeaveFabricState::RestoreSession
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
    functionUses: 0
    functionsReached:
    - GetValue
    - WeaveSessionKey*::NextMsgId::GetValue
    - memmove
    - WeaveEncryptionKeyToString
    - TLVReader::Next
    - TLVReader::VerifyEndOfContainer
    - WeaveSessionState
    - TLVWriter::Put
    - IsCASEAuthMode
    - TLVReader::Init
    - IPv6InterfaceIdToWeaveNodeId
    - WeaveFabricState*::NextGroupKeyMsgId::GetValue
    - VerifyOrExit
    - StartMsgCounterSyncTimer
    - GetAppGroupMasterKeyId
    - InterfaceId
    - GlobalId
    - WeaveFabricState::RemoveSharedSessionEndNodes
    - memset
    - DidLeaveFabric
    - nl::Weave::WeaveKeyId::GetType
    - FindSessionKey
    - TLVWriter::PutBytes
    - Clear
    - memcpy
    - WeaveFabricState*::StartMsgCounterSyncTimer
    - WeaveSessionKey*::SetSharedSession
    - VerifyOrDie
    - WeaveFabricState::AddSharedSessionEndNode
    - WeaveSessionKey*::ClearRecentlyActive
    - WeaveSessionKey*::ClearSuspended
    - WeaveSessionKey*::IsUsedOverConnection
    - WeaveSessionKey*::SetResumptionMsgIdsValid
    - WeaveSessionKey*::IsRemoveOnIdle
    - reinterpret_cast<WeaveFabricState*>
    - SignalMessageLayerActivityChanged
    - ExitNow
    - Advance
    - nl::Inet::IPAddress::MakeULA
    - WeaveSessionKey*::SetLocallyInitiated
    - nl::Weave::Platform::Security::GetSecureRandomData
    - TLVWriter::Finalize
    - DeriveMsgEncAppKey
    - ContextTag
    - WeaveNodeIdToIPv6InterfaceId
    - WeaveSessionKey*::NextMsgId::Init
    - WeaveFabricIdToIPv6GlobalId
    - IsMsgCounterSyncReqInProgress
    - ToHex
    - TLVReader::ExitContainer
    - WeaveFabricState::FindSharedSessionEndNode
    - nl::Weave::WeaveKeyId::MakeAppRotatingKeyId
    - DeriveApplicationKey
    - ClearSecretData
    - CASEAuthMode
    - TLVWriter::GetLengthWritten
    - nl::Weave::WeaveKeyId::MakeAppStaticKeyId
    - WeaveSessionKey*::IsSuspended
    - ToHexString
    - TLVReader::EnterContainer
    - ProfileTag
    - Reset
    - FindOrAllocateKeyEntry
    - WeaveSessionKey*::MarkRecentlyActive
    - WeaveFabricState::RemoveSessionKey
    - StoreGroupKey
    - SessionEndCbCtxt*::OnSessionRemoved
    - ClearFabricState
    - FindMsgEncAppKey
    - CheckSelectNodeAddress
    - TLVWriter::EndContainer
    - nl::Weave::WeaveKeyId::IsAppRotatingKey
    - MessageIdNotSynchronized
    - IsFabricAddress
    - nl::Weave::WeaveKeyId::GetRootKeyId
    - WeaveSessionKey*::IsKeySet
    - nl::Inet::IPAddress::MakeIPv6WellKnownMulticast
    - WeaveFabricState*::MessageLayer::SignalMessageLayerActivityChanged
    - TLVReader::Get
    - BoundConnectionClosedForSession
    - WeaveSessionKey*::IsAllocated
    - WeaveSessionKey*::SetRemoveOnIdle
    - WeaveLogDetail
    - nl::Weave::WeaveKeyId::IsSessionKey
    - WeaveSessionKey*::IsSharedSession
    - nl::Weave::WeaveKeyId::GetAppGroupMasterKeyId
    - TLVReader::GetLength
    - nl::Weave::WeaveKeyId::IsAppGroupKey
    - TLVReader::GetBytes
    - FindOrAllocPeerEntry
    - strlen
    - SystemLayer::StartTimer
    - GroupKeyAuthMode
    - IsIPv6ULA
    - DidJoinFabric
    - ExchangeMgr::ClearMsgCounterSyncReq
    - WeaveSessionKey*::SetUsedOverConnection
    - SuccessOrExit
    - TLVWriter::Init
    - RetrieveGroupKey
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveFabricState::RestoreSession(uint8_t * serializedSession, uint16_t
      serializedSessionLen, WeaveConnection *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::Swap16
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: nl::Weave::Encoding::Swap16
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Encoding::Swap16
    linkageType: ''
    returnType: uint16_t
    signature: Swap16(uint16_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::Swap32
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: nl::Weave::Encoding::Swap32
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Encoding::Swap32
    linkageType: ''
    returnType: uint32_t
    signature: Swap32(uint32_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::Swap64
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: nl::Weave::Encoding::Swap64
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 2
    functionsReached:
    - nl::Weave::Encoding::Swap64
    linkageType: ''
    returnType: uint64_t
    signature: Swap64(uint64_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::Get8
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: nl::Weave::Encoding::Get8
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Encoding::Get8
    linkageType: ''
    returnType: uint8_t
    signature: Get8(const uint8_t *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::Put8
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: nl::Weave::Encoding::Put8
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Encoding::Put8
    linkageType: ''
    returnType: void
    signature: Put8(uint8_t *p, uint8_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: nl::Weave::Encoding::Read8
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 4
    functionsReached:
    - nl::Weave::Encoding::Read8
    linkageType: ''
    returnType: uint8_t
    signature: Read8(uint8_t *& p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: nl::Weave::Encoding::Read8
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 5
    functionsReached:
    - nl::Weave::Encoding::Read8
    linkageType: ''
    returnType: uint8_t
    signature: Read8(const uint8_t *& p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - v
    argTypes:
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: nl::Weave::Encoding::Write8
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Write8(uint8_t *& p, uint8_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ByteOrder::Swap16LittleToHost
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    functionName: nl::Weave::Encoding::LittleEndian::HostSwap16
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 0
    functionsReached:
    - nl::ByteOrder::Swap16LittleToHost
    linkageType: ''
    returnType: uint16_t
    signature: HostSwap16(uint16_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ByteOrder::Swap32LittleToHost
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: nl::Weave::Encoding::LittleEndian::HostSwap32
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 0
    functionsReached:
    - nl::ByteOrder::Swap32LittleToHost
    linkageType: ''
    returnType: uint32_t
    signature: HostSwap32(uint32_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ByteOrder::Swap64LittleToHost
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: nl::Weave::Encoding::LittleEndian::HostSwap64
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 0
    functionsReached:
    - nl::ByteOrder::Swap64LittleToHost
    linkageType: ''
    returnType: uint64_t
    signature: HostSwap64(uint64_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::LittleEndian::GetUnaligned16
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 236
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 236
    functionName: nl::Weave::Encoding::LittleEndian::Get16
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 1
    functionsReached:
    - nl::IO::LittleEndian::GetUnaligned16
    linkageType: ''
    returnType: uint16_t
    signature: Get16(const uint8_t *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::LittleEndian::GetUnaligned32
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 250
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 250
    functionName: nl::Weave::Encoding::LittleEndian::Get32
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 4
    functionsReached:
    - nl::IO::LittleEndian::GetUnaligned32
    linkageType: ''
    returnType: uint32_t
    signature: Get32(const uint8_t *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::LittleEndian::GetUnaligned64
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 264
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 264
    functionName: nl::Weave::Encoding::LittleEndian::Get64
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 1
    functionsReached:
    - nl::IO::LittleEndian::GetUnaligned64
    linkageType: ''
    returnType: uint64_t
    signature: Get64(const uint8_t *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::LittleEndian::PutUnaligned16
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 279
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 279
    functionName: nl::Weave::Encoding::LittleEndian::Put16
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 3
    functionsReached:
    - nl::IO::LittleEndian::PutUnaligned16
    linkageType: ''
    returnType: void
    signature: Put16(uint8_t *p, uint16_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::LittleEndian::PutUnaligned32
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 294
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 294
    functionName: nl::Weave::Encoding::LittleEndian::Put32
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 4
    functionsReached:
    - nl::IO::LittleEndian::PutUnaligned32
    linkageType: ''
    returnType: void
    signature: Put32(uint8_t *p, uint32_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::LittleEndian::PutUnaligned64
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - uint8_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 309
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 309
    functionName: nl::Weave::Encoding::LittleEndian::Put64
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 0
    functionsReached:
    - nl::IO::LittleEndian::PutUnaligned64
    linkageType: ''
    returnType: void
    signature: Put64(uint8_t *p, uint64_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::LittleEndian::ReadUnaligned16
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 326
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 326
    functionName: nl::Weave::Encoding::LittleEndian::Read16
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 5
    functionsReached:
    - nl::IO::LittleEndian::ReadUnaligned16
    linkageType: ''
    returnType: uint16_t
    signature: Read16(uint8_t *& p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::LittleEndian::ReadUnaligned32
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 343
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 343
    functionName: nl::Weave::Encoding::LittleEndian::Read32
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 8
    functionsReached:
    - nl::IO::LittleEndian::ReadUnaligned32
    linkageType: ''
    returnType: uint32_t
    signature: Read32(uint8_t *& p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::LittleEndian::ReadUnaligned64
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 360
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 360
    functionName: nl::Weave::Encoding::LittleEndian::Read64
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 2
    functionsReached:
    - nl::IO::LittleEndian::ReadUnaligned64
    linkageType: ''
    returnType: uint64_t
    signature: Read64(uint8_t *& p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::LittleEndian::ReadUnaligned16
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 377
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 377
    functionName: nl::Weave::Encoding::LittleEndian::Read16
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 5
    functionsReached:
    - nl::IO::LittleEndian::ReadUnaligned16
    linkageType: ''
    returnType: uint16_t
    signature: Read16(const uint8_t *& p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::LittleEndian::ReadUnaligned32
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 394
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 394
    functionName: nl::Weave::Encoding::LittleEndian::Read32
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 8
    functionsReached:
    - nl::IO::LittleEndian::ReadUnaligned32
    linkageType: ''
    returnType: uint32_t
    signature: Read32(const uint8_t *& p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::LittleEndian::ReadUnaligned64
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 411
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 411
    functionName: nl::Weave::Encoding::LittleEndian::Read64
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 2
    functionsReached:
    - nl::IO::LittleEndian::ReadUnaligned64
    linkageType: ''
    returnType: uint64_t
    signature: Read64(const uint8_t *& p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::LittleEndian::Put16
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - v
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 429
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 429
    functionName: nl::Weave::Encoding::LittleEndian::Write16
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 9
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Put16
    linkageType: ''
    returnType: void
    signature: Write16(uint8_t *& p, uint16_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::LittleEndian::Put32
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - v
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 447
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 447
    functionName: nl::Weave::Encoding::LittleEndian::Write32
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 10
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Put32
    linkageType: ''
    returnType: void
    signature: Write32(uint8_t *& p, uint32_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::LittleEndian::Put64
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - v
    argTypes:
    - uint8_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 465
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 465
    functionName: nl::Weave::Encoding::LittleEndian::Write64
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 6
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Put64
    linkageType: ''
    returnType: void
    signature: Write64(uint8_t *& p, uint64_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ByteOrder::Swap16BigToHost
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 506
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 506
    functionName: nl::Weave::Encoding::BigEndian::HostSwap16
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 1
    functionsReached:
    - nl::ByteOrder::Swap16BigToHost
    linkageType: ''
    returnType: uint16_t
    signature: HostSwap16(uint16_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ByteOrder::Swap32BigToHost
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 521
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 521
    functionName: nl::Weave::Encoding::BigEndian::HostSwap32
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 1
    functionsReached:
    - nl::ByteOrder::Swap32BigToHost
    linkageType: ''
    returnType: uint32_t
    signature: HostSwap32(uint32_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ByteOrder::Swap64BigToHost
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 536
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 536
    functionName: nl::Weave::Encoding::BigEndian::HostSwap64
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 0
    functionsReached:
    - nl::ByteOrder::Swap64BigToHost
    linkageType: ''
    returnType: uint64_t
    signature: HostSwap64(uint64_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::BigEndian::GetUnaligned16
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 550
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 550
    functionName: nl::Weave::Encoding::BigEndian::Get16
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 1
    functionsReached:
    - nl::IO::BigEndian::GetUnaligned16
    linkageType: ''
    returnType: uint16_t
    signature: Get16(const uint8_t *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::BigEndian::GetUnaligned32
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 564
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 564
    functionName: nl::Weave::Encoding::BigEndian::Get32
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 0
    functionsReached:
    - nl::IO::BigEndian::GetUnaligned32
    linkageType: ''
    returnType: uint32_t
    signature: Get32(const uint8_t *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::BigEndian::GetUnaligned64
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 578
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 578
    functionName: nl::Weave::Encoding::BigEndian::Get64
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 1
    functionsReached:
    - nl::IO::BigEndian::GetUnaligned64
    linkageType: ''
    returnType: uint64_t
    signature: Get64(const uint8_t *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::BigEndian::PutUnaligned16
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 594
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 594
    functionName: nl::Weave::Encoding::BigEndian::Put16
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 0
    functionsReached:
    - nl::IO::BigEndian::PutUnaligned16
    linkageType: ''
    returnType: void
    signature: Put16(uint8_t *p, uint16_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::BigEndian::PutUnaligned32
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 610
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 610
    functionName: nl::Weave::Encoding::BigEndian::Put32
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 0
    functionsReached:
    - nl::IO::BigEndian::PutUnaligned32
    linkageType: ''
    returnType: void
    signature: Put32(uint8_t *p, uint32_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::BigEndian::PutUnaligned64
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - uint8_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 626
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 626
    functionName: nl::Weave::Encoding::BigEndian::Put64
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 1
    functionsReached:
    - nl::IO::BigEndian::PutUnaligned64
    linkageType: ''
    returnType: void
    signature: Put64(uint8_t *p, uint64_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::BigEndian::ReadUnaligned16
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 643
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 643
    functionName: nl::Weave::Encoding::BigEndian::Read16
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 0
    functionsReached:
    - nl::IO::BigEndian::ReadUnaligned16
    linkageType: ''
    returnType: uint16_t
    signature: Read16(uint8_t *& p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::BigEndian::ReadUnaligned32
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 660
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 660
    functionName: nl::Weave::Encoding::BigEndian::Read32
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 0
    functionsReached:
    - nl::IO::BigEndian::ReadUnaligned32
    linkageType: ''
    returnType: uint32_t
    signature: Read32(uint8_t *& p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::BigEndian::ReadUnaligned64
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 677
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 677
    functionName: nl::Weave::Encoding::BigEndian::Read64
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 0
    functionsReached:
    - nl::IO::BigEndian::ReadUnaligned64
    linkageType: ''
    returnType: uint64_t
    signature: Read64(uint8_t *& p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::BigEndian::ReadUnaligned16
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 694
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 694
    functionName: nl::Weave::Encoding::BigEndian::Read16
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 0
    functionsReached:
    - nl::IO::BigEndian::ReadUnaligned16
    linkageType: ''
    returnType: uint16_t
    signature: Read16(const uint8_t *& p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::BigEndian::ReadUnaligned32
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 711
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 711
    functionName: nl::Weave::Encoding::BigEndian::Read32
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 0
    functionsReached:
    - nl::IO::BigEndian::ReadUnaligned32
    linkageType: ''
    returnType: uint32_t
    signature: Read32(const uint8_t *& p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IO::BigEndian::ReadUnaligned64
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 728
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 728
    functionName: nl::Weave::Encoding::BigEndian::Read64
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 0
    functionsReached:
    - nl::IO::BigEndian::ReadUnaligned64
    linkageType: ''
    returnType: uint64_t
    signature: Read64(const uint8_t *& p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::BigEndian::Put16
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - v
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 746
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 746
    functionName: nl::Weave::Encoding::BigEndian::Write16
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::BigEndian::Put16
    linkageType: ''
    returnType: void
    signature: Write16(uint8_t *& p, uint16_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::BigEndian::Put32
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - v
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 764
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 764
    functionName: nl::Weave::Encoding::BigEndian::Write32
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::BigEndian::Put32
    linkageType: ''
    returnType: void
    signature: Write32(uint8_t *& p, uint32_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::BigEndian::Put64
      Src: /src/openweave-core/src/lib/core/WeaveEncoding.h:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - v
    argTypes:
    - uint8_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 782
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 782
    functionName: nl::Weave::Encoding::BigEndian::Write64
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveEncoding.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::BigEndian::Put64
    linkageType: ''
    returnType: void
    signature: Write64(uint8_t *& p, uint64_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 193
    functionName: nl::Weave::TLV::TLVReader
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLV.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: TLVReader
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::GetNextPacketBuffer
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' reader'
    - ' bufHandle'
    - ' bufStart'
    - ' bufLen'
    argTypes:
    - TLVReader
    - uintptr_t
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 200
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 200
    functionName: nl::Weave::TLV::TLVReader::GetNextInetBuffer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLV.h
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVReader::GetNextPacketBuffer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TLVReader::GetNextInetBuffer(TLVReader& reader, uintptr_t& bufHandle,
      const uint8_t *& bufStart,\n    uint32_t& bufLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 340
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 340
    functionName: nl::Weave::TLV::TLVWriter
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLV.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: TLVWriter
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::GetNewPacketBuffer
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' writer'
    - ' bufHandle'
    - ' bufStart'
    - ' bufLen'
    argTypes:
    - TLVWriter
    - uintptr_t
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 346
      start: 343
    functionDepth: 4
    functionLinenumber: 343
    functionLinenumberEnd: 346
    functionName: nl::Weave::TLV::TLVWriter::GetNewInetBuffer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLV.h
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::GetNewPacketBuffer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::GetNewInetBuffer(TLVWriter& writer, uintptr_t& bufHandle,
      uint8_t *& bufStart, uint32_t& bufLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::FinalizePacketBuffer
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' writer'
    - bufHandle
    - bufStart
    - dataLen
    argTypes:
    - TLVWriter
    - uintptr_t
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 351
    functionName: nl::Weave::TLV::TLVWriter::FinalizeInetBuffer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLV.h
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::FinalizePacketBuffer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TLVWriter::FinalizeInetBuffer(TLVWriter& writer, uintptr_t bufHandle,
      uint8_t *bufStart, uint32_t dataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Finalize
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:393,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:407,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:408,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:409,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:410,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:411,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:412,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:413,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:414,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:415,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:416,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:417,1
    - Dst: GetBytes
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:418,1
    - Dst: DupBytes
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:419,1
    - Dst: GetString
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:420,1
    - Dst: DupString
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:421,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:423,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:424,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:425,1
    - Dst: GetDataPtr
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:426,1
    - Dst: VerifyEndOfContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:427,1
    - Dst: GetContainerType
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:428,1
    - Dst: GetLengthRead
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:429,1
    - Dst: GetRemainingLength
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:430,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:433,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:434,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:435,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:436,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:437,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:438,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:439,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:440,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:441,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:442,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:443,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:444,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:445,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:446,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:447,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:448,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:449,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:450,1
    - Dst: PutBoolean
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:451,1
    - Dst: PutNull
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:452,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:453,1
    - Dst: PutString
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:454,1
    - Dst: PutString
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:455,1
    - Dst: CopyElement
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:456,1
    - Dst: CopyElement
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:457,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:458,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:459,1
    - Dst: GetLengthWritten
      Src: /src/openweave-core/src/lib/core/WeaveTLV.h:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 117
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 470
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 470
    functionName: nl::Weave::TLV::TLVUpdater
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLV.h
    functionUses: 0
    functionsReached:
    - PutString
    - StartContainer
    - GetString
    - CopyElement
    - PutBytes
    - Get
    - GetRemainingLength
    - DupString
    - PutBoolean
    - Finalize
    - DupBytes
    - GetLengthRead
    - GetTag
    - EndContainer
    - Put
    - GetLengthWritten
    - PutNull
    - GetLength
    - GetDataPtr
    - VerifyEndOfContainer
    - GetContainerType
    - GetBytes
    - GetType
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: TLVUpdater
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: nl::Weave::TLV::IsValidTLVType
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsValidTLVType(uint8_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: nl::Weave::TLV::TLVTypeHasValue
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: TLVTypeHasValue(uint8_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: nl::Weave::TLV::TLVTypeHasLength
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: TLVTypeHasLength(uint8_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: nl::Weave::TLV::TLVTypeIsContainer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: TLVTypeIsContainer(uint8_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: nl::Weave::TLV::TLVTypeIsString
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: TLVTypeIsString(uint8_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVTypeHasValue
      Src: /src/openweave-core/src/lib/core/WeaveTLVTypes.h:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: nl::Weave::TLV::GetTLVFieldSize
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVTypes.h
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVTypeHasValue
    linkageType: ''
    returnType: TLVFieldSize
    signature: GetTLVFieldSize(uint8_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fieldSize
    argTypes:
    - TLVFieldSize
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: nl::Weave::TLV::TLVFieldSizeToBytes
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: TLVFieldSizeToBytes(TLVFieldSize fieldSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::IsAppStaticKey
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp:42,1
    - Dst: nl::Weave::WeaveKeyId::IsAppRotatingKey
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: nl::Weave::WeaveKeyId::IsAppGroupKey
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::WeaveKeyId::IsAppRotatingKey
    - nl::Weave::WeaveKeyId::IsAppStaticKey
    linkageType: ''
    returnType: bool
    signature: WeaveKeyId::IsAppGroupKey(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::IncorporatesEpochKey
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: nl::Weave::WeaveKeyId::UsesCurrentEpochKey
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveKeyId::IncorporatesEpochKey
    linkageType: ''
    returnType: bool
    signature: WeaveKeyId::UsesCurrentEpochKey(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: nl::Weave::WeaveKeyId::IncorporatesRootKey
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveKeyId::IncorporatesRootKey(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: nl::Weave::WeaveKeyId::IncorporatesAppGroupMasterKey
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveKeyId::IncorporatesAppGroupMasterKey(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - keyType
    - rootKeyId
    - epochKeyId
    - appGroupMasterKeyId
    - useCurrentEpochKey
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - bool
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: nl::Weave::WeaveKeyId::MakeAppKeyId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "WeaveKeyId::MakeAppKeyId(uint32_t keyType, uint32_t rootKeyId, uint32_t
      epochKeyId,\n                                  uint32_t appGroupMasterKeyId,
      bool useCurrentEpochKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::MakeAppKeyId
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rootKeyId
    - epochKeyId
    - useCurrentEpochKey
    argTypes:
    - uint32_t
    - uint32_t
    - bool
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: nl::Weave::WeaveKeyId::MakeAppIntermediateKeyId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveKeyId::MakeAppKeyId
    linkageType: ''
    returnType: uint32_t
    signature: WeaveKeyId::MakeAppIntermediateKeyId(uint32_t rootKeyId, uint32_t epochKeyId,
      bool useCurrentEpochKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::MakeAppKeyId
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - rootKeyId
    - epochKeyId
    - appGroupMasterKeyId
    - useCurrentEpochKey
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - bool
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: nl::Weave::WeaveKeyId::MakeAppRotatingKeyId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::WeaveKeyId::MakeAppKeyId
    linkageType: ''
    returnType: uint32_t
    signature: "WeaveKeyId::MakeAppRotatingKeyId(uint32_t rootKeyId, uint32_t epochKeyId,\n
      \                                         uint32_t appGroupMasterKeyId, bool
      useCurrentEpochKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::MakeAppKeyId
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rootKeyId
    - appGroupMasterKeyId
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: nl::Weave::WeaveKeyId::MakeAppStaticKeyId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::WeaveKeyId::MakeAppKeyId
    linkageType: ''
    returnType: uint32_t
    signature: WeaveKeyId::MakeAppStaticKeyId(uint32_t rootKeyId, uint32_t appGroupMasterKeyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::MakeAppStaticKeyId
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp:166,1
    - Dst: nl::Weave::WeaveKeyId::GetRootKeyId
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp:166,1
    - Dst: nl::Weave::WeaveKeyId::GetAppGroupMasterKeyId
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: nl::Weave::WeaveKeyId::ConvertToStaticAppKeyId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveKeyId::MakeAppStaticKeyId
    - nl::Weave::WeaveKeyId::GetRootKeyId
    - nl::Weave::WeaveKeyId::GetAppGroupMasterKeyId
    linkageType: ''
    returnType: uint32_t
    signature: WeaveKeyId::ConvertToStaticAppKeyId(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keyId
    - epochKeyId
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: nl::Weave::WeaveKeyId::UpdateEpochKeyId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: WeaveKeyId::UpdateEpochKeyId(uint32_t keyId, uint32_t epochKeyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp:196,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp:198,1
    - Dst: nl::Weave::WeaveKeyId::UsesCurrentEpochKey
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp:211,1
    - Dst: nl::Weave::WeaveKeyId::UsesCurrentEpochKey
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp:222,1
    - Dst: nl::Weave::WeaveKeyId::UsesCurrentEpochKey
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp:229,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp:238,1
    - Dst: nl::Weave::WeaveKeyId::IncorporatesRootKey
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp:241,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp:244,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 253
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 253
    functionName: nl::Weave::WeaveKeyId::IsValidKeyId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveKeyId::GetType
    - nl::Weave::WeaveKeyId::UsesCurrentEpochKey
    - VerifyOrExit
    - ExitNow
    - nl::Weave::WeaveKeyId::IncorporatesRootKey
    linkageType: ''
    returnType: bool
    signature: WeaveKeyId::IsValidKeyId(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp:266,1
    - Dst: nl::Weave::WeaveKeyId::UsesCurrentEpochKey
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp:272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - keyId
    - allowLogicalKeys
    argTypes:
    - uint32_t
    - bool
    constantsTouched: []
    func_position:
      end: 276
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 276
    functionName: nl::Weave::WeaveKeyId::IsMessageEncryptionKeyId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveKeyId::UsesCurrentEpochKey
    - nl::Weave::WeaveKeyId::GetType
    linkageType: ''
    returnType: bool
    signature: WeaveKeyId::IsMessageEncryptionKeyId(uint32_t keyId, bool allowLogicalKeys)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::IncorporatesEpochKey
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp:297,1
    - Dst: nl::Weave::WeaveKeyId::IsAppEpochKey
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp:297,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - keyId1
    - keyId2
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 302
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 302
    functionName: nl::Weave::WeaveKeyId::IsSameKeyOrGroup
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveKeyId::IncorporatesEpochKey
    - nl::Weave::WeaveKeyId::IsAppEpochKey
    linkageType: ''
    returnType: bool
    signature: WeaveKeyId::IsSameKeyOrGroup(uint32_t keyId1, uint32_t keyId2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp:317,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 373
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 373
    functionName: nl::Weave::WeaveKeyId::DescribeKey
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::WeaveKeyId::GetType
    linkageType: ''
    returnType: char
    signature: '*WeaveKeyId::DescribeKey(uint32_t keyId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: nl::Weave::WeaveServerBase::WeaveServerBase
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveServerBase.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveServerBase(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: nl::Weave::WeaveServerDelegateBase::WeaveServerDelegateBase
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveServerBase.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveServerDelegateBase(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - blockSetParams
    - ' blockSize'
    - ' blockCount'
    - ' blockBufferIndex'
    - ' blockIsLongTerm'
    argTypes:
    - BlockSetParams_t
    - uint16_t
    - uint8_t
    - uint8_t
    - bool
    constantsTouched: []
    func_position:
      end: 350
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 350
    functionName: nl::Weave::Platform::Security::DecodeBlockSetParams
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveSecurityMgr-SimpleAlloc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DecodeBlockSetParams(BlockSetParams_t blockSetParams, uint16_t& blockSize,
      uint8_t& blockCount, uint8_t& blockBufferIndex, bool& blockIsLongTerm)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 376
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 376
    functionName: nl::Weave::Platform::Security::MemoryInit
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveSecurityMgr-SimpleAlloc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MemoryInit(void *buf, size_t bufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr-SimpleAlloc.cpp:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 396
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 396
    functionName: nl::Weave::Platform::Security::MemoryShutdown
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveSecurityMgr-SimpleAlloc.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: void
    signature: MemoryShutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::Security::MemoryAlloc
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr-SimpleAlloc.cpp:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 401
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 401
    functionName: nl::Weave::Platform::Security::MemoryAlloc
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveSecurityMgr-SimpleAlloc.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Platform::Security::MemoryAlloc
    linkageType: ''
    returnType: void
    signature: '*MemoryAlloc(size_t size)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::Security::DecodeBlockSetParams
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr-SimpleAlloc.cpp:418,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr-SimpleAlloc.cpp:430,1
    - Dst: Start
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr-SimpleAlloc.cpp:434,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - size
    - isLongTermAlloc
    argTypes:
    - size_t
    - bool
    constantsTouched: []
    func_position:
      end: 460
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 460
    functionName: nl::Weave::Platform::Security::MemoryAlloc
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveSecurityMgr-SimpleAlloc.cpp
    functionUses: 2
    functionsReached:
    - Start
    - nl::Weave::Platform::Security::DecodeBlockSetParams
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    linkageType: ''
    returnType: void
    signature: '*MemoryAlloc(size_t size, bool isLongTermAlloc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::Security::DecodeBlockSetParams
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr-SimpleAlloc.cpp:475,1
    - Dst: Start
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr-SimpleAlloc.cpp:480,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr-SimpleAlloc.cpp:496,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 512
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 512
    functionName: nl::Weave::Platform::Security::MemoryFree
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveSecurityMgr-SimpleAlloc.cpp
    functionUses: 0
    functionsReached:
    - Start
    - nl::Weave::Platform::Security::DecodeBlockSetParams
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: void
    signature: MemoryFree(void *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:198,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: nl::Weave::Binding::AddRef
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: Binding::AddRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:211,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:212,1
    - Dst: nl::Weave::Binding::DoClose
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:220,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:222,1
    - Dst: nl::Weave::Binding::GetLogId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:222,1
    - Dst: FreeBinding
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 225
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 225
    functionName: nl::Weave::Binding::Release
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Binding::DoClose
    - WeaveLogDetail
    - nl::Weave::Binding::GetLogId
    - FreeBinding
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: Binding::Release()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:238,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:239,1
    - Dst: nl::Weave::Binding::DoClose
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:241,1
    - Dst: nl::Weave::Binding::Release
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 243
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 243
    functionName: nl::Weave::Binding::Close
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Binding::Release
    - nl::Weave::Binding::DoClose
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: Binding::Close(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:256,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:257,1
    - Dst: nl::Weave::Binding::DoReset
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:259,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:261,1
    - Dst: nl::Weave::Binding::GetLogId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 262
    functionName: nl::Weave::Binding::Reset
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Binding::DoReset
    - VerifyOrDie
    - nl::Weave::Binding::GetLogId
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: Binding::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetBindingLogId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: nl::Weave::Binding::GetLogId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 2
    functionsReached:
    - GetBindingLogId
    linkageType: ''
    returnType: uint16_t
    signature: Binding::GetLogId(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - apAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - EventType
    - InEventParam
    - OutEventParam
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: nl::Weave::Binding::DefaultEventHandler
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Binding::DefaultEventHandler(void *apAppState, EventType aEvent, const
      InEventParam& aInParam, OutEventParam& aOutParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:302,1
    - Dst: nl::Weave::Binding::SetEventCallback
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:307,1
    - Dst: nl::Weave::Binding::ResetConfig
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:311,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:313,1
    - Dst: nl::Weave::Binding::GetLogId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:313,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:325,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:327,1
    - Dst: aEventCallback
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:328,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:329,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:338,1
    - Dst: nl::Weave::Binding::GetLogId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:338,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - apAppState
    - aEventCallback
    argTypes:
    - void*
    - EventCallback
    constantsTouched: []
    func_position:
      end: 342
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 342
    functionName: nl::Weave::Binding::Init
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Binding::ResetConfig
    - OutEventParam::Clear
    - nl::Weave::Binding::SetEventCallback
    - VerifyOrExit
    - InEventParam::Clear
    - aEventCallback
    - WeaveLogDetail
    - WeaveLogFunctError
    - nl::Weave::Binding::GetLogId
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Binding::Init(void *apAppState, EventCallback aEventCallback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:349,1
    - Dst: nl::Weave::Binding::GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:361,1
    - Dst: WeaveSecurityManager*::ReleaseKey
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:363,1
    - Dst: nl::Weave::Binding::ClearFlag
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:364,1
    - Dst: MessageLayer::Inet::CancelResolveHostAddress
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:372,1
    - Dst: nl::Weave::Binding::GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:379,1
    - Dst: nl::Weave::Binding::Release
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:382,1
    - Dst: nl::Weave::Binding::ClearFlag
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:383,1
    - Dst: WeaveSecurityManager*::CancelSessionEstablishment
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:390,1
    - Dst: nl::Weave::Binding::ResetConfig
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:401,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - newState
    argTypes:
    - State
    constantsTouched: []
    func_position:
      end: 406
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 406
    functionName: nl::Weave::Binding::DoReset
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Binding::ClearFlag
    - nl::Weave::Binding::ResetConfig
    - WeaveSecurityManager*::CancelSessionEstablishment
    - WeaveSecurityManager*::ReleaseKey
    - MessageLayer::Inet::CancelResolveHostAddress
    - nl::Weave::Binding::GetFlag
    - nl::Weave::Binding::Release
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: Binding::DoReset(State newState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Binding::SetEventCallback
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:418,1
    - Dst: nl::Weave::Binding::SetProtocolLayerCallback
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:419,1
    - Dst: nl::Weave::Binding::DoReset
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:422,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:424,1
    - Dst: nl::Weave::Binding::GetLogId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 426
      start: 411
    functionDepth: 3
    functionLinenumber: 411
    functionLinenumberEnd: 426
    functionName: nl::Weave::Binding::DoClose
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Binding::SetEventCallback
    - WeaveLogDetail
    - nl::Weave::Binding::DoReset
    - nl::Weave::Binding::SetProtocolLayerCallback
    - nl::Weave::Binding::GetLogId
    linkageType: ''
    returnType: void
    signature: Binding::DoClose(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 460
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 460
    functionName: nl::Weave::Binding::ResetConfig
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Binding::ResetConfig()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Binding::AddRef
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:482,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:485,1
    - Dst: nl::Weave::Binding::CanBePrepared
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:485,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:487,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:489,1
    - Dst: mAppEventCallback
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:494,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:498,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:504,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:507,1
    - Dst: nl::Weave::Binding::Release
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:510,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 513
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 513
    functionName: nl::Weave::Binding::RequestPrepare
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Binding::CanBePrepared
    - nl::Weave::Binding::AddRef
    - OutEventParam::Clear
    - VerifyOrExit
    - InEventParam::Clear
    - nl::Weave::Binding::Release
    - SuccessOrExit
    - mAppEventCallback
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Binding::RequestPrepare()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:532,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:535,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:538,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:541,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:545,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:551,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:558,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:565,1
    - Dst: nl::Weave::Binding::GetLogId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:565,1
    - Dst: nl::Weave::Binding::PrepareAddress
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:568,1
    - Dst: nl::Weave::Binding::HandleBindingFailed
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:573,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:575,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - configErr
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 577
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 577
    functionName: nl::Weave::Binding::DoPrepare
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Binding::PrepareAddress
    - VerifyOrExit
    - WeaveLogDetail
    - WeaveLogFunctError
    - nl::Weave::Binding::HandleBindingFailed
    - nl::Weave::Binding::GetLogId
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Binding::DoPrepare(WEAVE_ERROR configErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FabricState::SelectNodeAddress
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:603,1
    - Dst: FabricState::SelectNodeAddress
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:609,1
    - Dst: Subnet
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:609,1
    - Dst: MessageLayer::Inet::ResolveHostAddress
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:620,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:623,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:627,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:629,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:634,1
    - Dst: nl::Weave::Binding::PrepareTransport
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:639,1
    - Dst: nl::Weave::Binding::HandleBindingFailed
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:644,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 646
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 646
    functionName: nl::Weave::Binding::PrepareAddress
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 1
    functionsReached:
    - FabricState::SelectNodeAddress
    - MessageLayer::Inet::ResolveHostAddress
    - Subnet
    - nl::Inet::IPAddress::FromString
    - ExitNow
    - nl::Weave::Binding::PrepareTransport
    - nl::Weave::Binding::HandleBindingFailed
    linkageType: ''
    returnType: void
    signature: Binding::PrepareAddress()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageLayer::NewConnection
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:662,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:663,1
    - Dst: nl::Weave::Binding::SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:666,1
    - Dst: Connect
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:684,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:685,1
    - Dst: nl::Weave::Binding::AddRef
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:693,1
    - Dst: nl::Weave::Binding::SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:694,1
    - Dst: nl::Weave::Binding::PrepareSecurity
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:698,1
    - Dst: nl::Weave::Binding::HandleBindingFailed
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:704,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 706
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 706
    functionName: nl::Weave::Binding::PrepareTransport
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Binding::AddRef
    - Connect
    - nl::Weave::Binding::PrepareSecurity
    - VerifyOrExit
    - nl::Weave::Binding::SetFlag
    - MessageLayer::NewConnection
    - SuccessOrExit
    - nl::Weave::Binding::HandleBindingFailed
    linkageType: ''
    returnType: void
    signature: Binding::PrepareTransport()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:742,1
    - Dst: nl::Weave::WeaveNodeIdToIPv6InterfaceId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:743,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:754,1
    - Dst: nl::Weave::Binding::GetLogId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:755,1
    - Dst: WeaveSecurityManager*::StartCASESession
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:762,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:764,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:775,1
    - Dst: nl::Weave::Binding::GetLogId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:776,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:785,1
    - Dst: PasswordSourceFromAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:787,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:788,1
    - Dst: mAppEventCallback
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:789,1
    - Dst: WeaveSecurityManager*::StartPASESession
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:792,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:794,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:805,1
    - Dst: nl::Weave::Binding::GetLogId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:806,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:812,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:814,1
    - Dst: mAppEventCallback
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:815,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:818,1
    - Dst: WeaveSecurityManager*::StartTAKESession
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:821,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:827,1
    - Dst: WeaveSecurityManager*::ReserveKey
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:836,1
    - Dst: nl::Weave::Binding::SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:837,1
    - Dst: nl::Weave::Binding::HandleBindingReady
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:839,1
    - Dst: nl::Weave::Binding::HandleBindingReady
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:844,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:848,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:858,1
    - Dst: nl::Weave::Binding::GetLogId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:859,1
    - Dst: nl::Weave::Binding::HandleBindingFailed
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:867,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 869
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 869
    functionName: nl::Weave::Binding::PrepareSecurity
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 1
    functionsReached:
    - mAppEventCallback
    - nl::Weave::WeaveNodeIdToIPv6InterfaceId
    - WeaveSecurityManager*::StartTAKESession
    - OutEventParam::Clear
    - WeaveSecurityManager*::ReserveKey
    - VerifyOrExit
    - InEventParam::Clear
    - nl::Weave::Binding::SetFlag
    - ExitNow
    - nl::Weave::Binding::HandleBindingReady
    - SuccessOrExit
    - WeaveLogDetail
    - WeaveSecurityManager*::StartPASESession
    - nl::Weave::Binding::GetLogId
    - PasswordSourceFromAuthMode
    - nl::Inet::IPAddress::MakeULA
    - nl::Weave::Binding::HandleBindingFailed
    - WeaveSecurityManager*::StartCASESession
    linkageType: ''
    returnType: void
    signature: Binding::PrepareSecurity()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:880,1
    - Dst: nl::Weave::Binding::IsPreparing
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:880,1
    - Dst: nl::Weave::Binding::GetPeerDescription
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:889,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:917,1
    - Dst: nl::Weave::Binding::GetLogId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:918,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:922,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:924,1
    - Dst: nl::Weave::Binding::AddRef
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:927,1
    - Dst: mAppEventCallback
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:930,1
    - Dst: mProtocolLayerCallback
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:936,1
    - Dst: nl::Weave::Binding::Release
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:939,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 940
      start: 874
    functionDepth: 2
    functionLinenumber: 874
    functionLinenumberEnd: 940
    functionName: nl::Weave::Binding::HandleBindingReady
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Binding::IsPreparing
    - nl::Weave::Binding::AddRef
    - mProtocolLayerCallback
    - OutEventParam::Clear
    - InEventParam::Clear
    - nl::Weave::Binding::GetPeerDescription
    - nl::Weave::Binding::Release
    - WeaveLogDetail
    - nl::Weave::Binding::GetLogId
    - mAppEventCallback
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: Binding::HandleBindingReady()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:951,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:953,1
    - Dst: nl::Weave::Binding::IsPreparing
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:955,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:967,1
    - Dst: nl::Weave::Binding::GetLogId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:968,1
    - Dst: nl::StatusReportStr
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:975,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:976,1
    - Dst: nl::Weave::Binding::DoReset
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:979,1
    - Dst: nl::Weave::Binding::AddRef
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:982,1
    - Dst: mAppEventCallback
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:987,1
    - Dst: mProtocolLayerCallback
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:990,1
    - Dst: nl::Weave::Binding::Release
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:994,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - err
    - statusReport
    - raiseEvents
    argTypes:
    - WEAVE_ERROR
    - Profiles::StatusReporting::StatusReport*
    - bool
    constantsTouched: []
    func_position:
      end: 995
      start: 945
    functionDepth: 3
    functionLinenumber: 945
    functionLinenumberEnd: 995
    functionName: nl::Weave::Binding::HandleBindingFailed
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 4
    functionsReached:
    - nl::Weave::Binding::IsPreparing
    - nl::Weave::Binding::AddRef
    - nl::StatusReportStr
    - mProtocolLayerCallback
    - OutEventParam::Clear
    - InEventParam::Clear
    - nl::Weave::Binding::Release
    - WeaveLogDetail
    - mAppEventCallback
    - nl::Weave::Binding::DoReset
    - ErrorStr
    - nl::Weave::Binding::GetLogId
    linkageType: ''
    returnType: void
    signature: Binding::HandleBindingFailed(WEAVE_ERROR err, Profiles::StatusReporting::StatusReport
      *statusReport, bool raiseEvents)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1011,1
    - Dst: Binding*::GetLogId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1012,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1014,1
    - Dst: Binding*::PrepareTransport
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1019,1
    - Dst: Binding*::HandleBindingFailed
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1023,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - appState
    - err
    - addrCount
    - addrArray
    argTypes:
    - void*
    - INET_ERROR
    - uint8_t
    - IPAddress*
    constantsTouched: []
    func_position:
      end: 1025
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1025
    functionName: nl::Weave::Binding::OnResolveComplete
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - Binding*::GetLogId
    - Binding*::HandleBindingFailed
    - Binding*::PrepareTransport
    - WeaveLogDetail
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: Binding::OnResolveComplete(void *appState, INET_ERROR err, uint8_t
      addrCount, IPAddress *addrArray)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1036,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1037,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1042,1
    - Dst: Binding*::GetLogId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1043,1
    - Dst: WeaveConnection*::LogId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1043,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1050,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1052,1
    - Dst: Binding*::mAppEventCallback
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1053,1
    - Dst: Binding*::PrepareSecurity
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1059,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1066,1
    - Dst: Binding*::GetLogId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1067,1
    - Dst: WeaveConnection*::LogId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1067,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1067,1
    - Dst: Binding*::HandleBindingFailed
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1068,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1070
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1070
    functionName: nl::Weave::Binding::OnConnectionComplete
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - Binding*::GetLogId
    - Binding*::mAppEventCallback
    - OutEventParam::Clear
    - WeaveConnection*::LogId
    - Binding*::HandleBindingFailed
    - InEventParam::Clear
    - Binding*::PrepareSecurity
    - WeaveLogDetail
    - ErrorStr
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: Binding::OnConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1081,1
    - Dst: nl::Weave::Binding::IsPreparing
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1081,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1084,1
    - Dst: nl::Weave::Binding::HandleBindingFailed
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1094,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - con
    - err
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1098
      start: 1075
    functionDepth: 4
    functionLinenumber: 1075
    functionLinenumberEnd: 1098
    functionName: nl::Weave::Binding::OnConnectionClosed
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Binding::HandleBindingFailed
    - nl::Weave::Binding::IsPreparing
    - VerifyOrExit
    linkageType: ''
    returnType: void
    signature: Binding::OnConnectionClosed(WeaveConnection *con, WEAVE_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1110,1
    - Dst: Binding*::SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1117,1
    - Dst: Binding*::HandleBindingReady
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - sm
    - con
    - reqState
    - keyId
    - peerNodeId
    - encType
    argTypes:
    - WeaveSecurityManager*
    - WeaveConnection*
    - void*
    - uint16_t
    - uint64_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1121
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1121
    functionName: nl::Weave::Binding::OnSecureSessionReady
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrDie
    - Binding*::SetFlag
    - Binding*::HandleBindingReady
    linkageType: ''
    returnType: void
    signature: Binding::OnSecureSessionReady(WeaveSecurityManager *sm, WeaveConnection
      *con, void *reqState, uint16_t keyId, uint64_t peerNodeId, uint8_t encType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1132,1
    - Dst: Binding*::HandleBindingFailed
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - sm
    - con
    - reqState
    - localErr
    - peerNodeId
    - statusReport
    argTypes:
    - WeaveSecurityManager*
    - WeaveConnection*
    - void*
    - WEAVE_ERROR
    - uint64_t
    - Profiles::StatusReporting::StatusReport*
    constantsTouched: []
    func_position:
      end: 1136
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1136
    functionName: nl::Weave::Binding::OnSecureSessionFailed
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - Binding*::HandleBindingFailed
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: "Binding::OnSecureSessionFailed(WeaveSecurityManager *sm, WeaveConnection
      *con, void *reqState,\n        WEAVE_ERROR localErr, uint64_t peerNodeId, Profiles::StatusReporting::StatusReport
      *statusReport)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1150,1
    - Dst: nl::Weave::Binding::IsPreparing
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1150,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1153,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1157,1
    - Dst: nl::Weave::Binding::HandleBindingFailed
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - peerNodeId
    - keyId
    - keyErr
    argTypes:
    - uint64_t
    - uint32_t
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1164
      start: 1144
    functionDepth: 4
    functionLinenumber: 1144
    functionLinenumberEnd: 1164
    functionName: nl::Weave::Binding::OnKeyFailed
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Binding::HandleBindingFailed
    - nl::Weave::Binding::IsPreparing
    - VerifyOrExit
    linkageType: ''
    returnType: void
    signature: Binding::OnKeyFailed(uint64_t peerNodeId, uint32_t keyId, WEAVE_ERROR
      keyErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Binding::PrepareSecurity
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1169
    functionDepth: 2
    functionLinenumber: 1169
    functionLinenumberEnd: 1179
    functionName: nl::Weave::Binding::OnSecurityManagerAvailable
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Binding::PrepareSecurity
    linkageType: ''
    returnType: void
    signature: Binding::OnSecurityManagerAvailable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1192,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - apExchangeContext
    argTypes:
    - nl::Weave::ExchangeContext*
    constantsTouched: []
    func_position:
      end: 1204
      start: 1187
    functionDepth: 0
    functionLinenumber: 1187
    functionLinenumberEnd: 1204
    functionName: nl::Weave::Binding::AdjustResponseTimeout
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Binding::AdjustResponseTimeout(nl::Weave::ExchangeContext *apExchangeContext)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::IsSameKeyOrGroup
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1256,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 1
    argNames:
    - msgInfo
    argTypes:
    - nl::Weave::WeaveMessageHeader*
    constantsTouched: []
    func_position:
      end: 1260
      start: 1234
    functionDepth: 3
    functionLinenumber: 1234
    functionLinenumberEnd: 1260
    functionName: nl::Weave::Binding::IsAuthenticMessageFromPeer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveKeyId::IsSameKeyOrGroup
    linkageType: ''
    returnType: bool
    signature: Binding::IsAuthenticMessageFromPeer(const nl::Weave::WeaveMessageHeader
      *msgInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveMessageLayer::GetMaxWeavePayloadSize
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - System::PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1283
      start: 1276
    functionDepth: 1
    functionLinenumber: 1276
    functionLinenumberEnd: 1283
    functionName: nl::Weave::Binding::GetMaxWeavePayloadSize
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - WeaveMessageLayer::GetMaxWeavePayloadSize
    linkageType: ''
    returnType: uint32_t
    signature: Binding::GetMaxWeavePayloadSize(const System::PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveConnection::GetPeerDescription
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1299
      start: 1294
    functionDepth: 2
    functionLinenumber: 1294
    functionLinenumberEnd: 1299
    functionName: nl::Weave::Binding::GetPeerDescription
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::WeaveConnection::GetPeerDescription
    linkageType: ''
    returnType: void
    signature: Binding::GetPeerDescription(char *buf, uint32_t bufSize) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1324,1
    - Dst: NewContext
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1327,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1328,1
    - Dst: SetAutoRequestAck
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1340,1
    - Dst: nl::Weave::Binding::AddRef
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1349,1
    - Dst: SetShouldAutoReleaseConnection
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1353,1
    - Dst: FabricState::GroupKeyStore::GetCurrentAppKeyId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1363,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1364,1
    - Dst: MessageLayer::SecurityMgr::ReserveKey
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1371,1
    - Dst: SetAutoReleaseKey
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1374,1
    - Dst: nl::Weave::Binding::GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1379,1
    - Dst: SetCaptureSentMessage
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1381,1
    - Dst: nl::Weave::Binding::AdjustResponseTimeout
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1385,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1386,1
    - Dst: nl::Weave::Binding::Close
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1391,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1394,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 1
    argNames:
    - ' appExchangeContext'
    argTypes:
    - nl::Weave::ExchangeContext*
    constantsTouched: []
    func_position:
      end: 1396
      start: 1317
    functionDepth: 3
    functionLinenumber: 1317
    functionLinenumberEnd: 1396
    functionName: nl::Weave::Binding::NewExchangeContext
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - SetAutoReleaseKey
    - nl::Weave::Binding::AddRef
    - NewContext
    - SetCaptureSentMessage
    - nl::Weave::Binding::Close
    - VerifyOrExit
    - SetShouldAutoReleaseConnection
    - nl::Weave::Binding::GetFlag
    - SetAutoRequestAck
    - MessageLayer::SecurityMgr::ReserveKey
    - FabricState::GroupKeyStore::GetCurrentAppKeyId
    - SuccessOrExit
    - WeaveLogFunctError
    - nl::Weave::Binding::AdjustResponseTimeout
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Binding::NewExchangeContext(nl::Weave::ExchangeContext *& appExchangeContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1421,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1422,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1430,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1431,1
    - Dst: nl::Weave::Binding::GetMaxWeavePayloadSize
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1433,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1435,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - ' buf'
    - desiredSize
    - minSize
    - ' outMaxPayloadSize'
    argTypes:
    - PacketBuffer*
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1447
      start: 1410
    functionDepth: 2
    functionLinenumber: 1410
    functionLinenumberEnd: 1447
    functionName: nl::Weave::Binding::AllocateRightSizedBuffer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Binding::GetMaxWeavePayloadSize
    - nl::Weave::System::PacketBuffer::Free
    - static_cast<uint32_t>
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - nl::Weave::min
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "Binding::AllocateRightSizedBuffer(PacketBuffer *& buf,\n                                              const
      uint32_t desiredSize,\n                                              const uint32_t
      minSize,\n                                              uint32_t & outMaxPayloadSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1449
    functionDepth: 0
    functionLinenumber: 1449
    functionLinenumberEnd: 1452
    functionName: nl::Weave::Binding::GetWeaveHeaderSize
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: Binding::GetWeaveHeaderSize(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1454
    functionDepth: 0
    functionLinenumber: 1454
    functionLinenumberEnd: 1457
    functionName: nl::Weave::Binding::GetWeaveTrailerSize
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: Binding::GetWeaveTrailerSize(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CanBePrepared
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1467,1
    - Dst: ResetConfig
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1471,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1477,1
    - Dst: GetLogId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1477,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' aBinding'
    argTypes:
    - Binding
    constantsTouched: []
    func_position:
      end: 1483
      start: 1464
    functionDepth: 0
    functionLinenumber: 1464
    functionLinenumberEnd: 1483
    functionName: Binding::Configuration::Configuration(Binding& aBinding)
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - ResetConfig
    - CanBePrepared
    - WeaveLogDetail
    - GetLogId
    linkageType: ''
    returnType: void
    signature: Binding::Configuration::Configuration(Binding& aBinding)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aPeerNodeId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1496
      start: 1492
    functionDepth: 0
    functionLinenumber: 1492
    functionLinenumberEnd: 1496
    functionName: '& Binding::Configuration::Target_NodeId(uint64_t aPeerNodeId)'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::Target_NodeId(uint64_t aPeerNodeId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Target_NodeId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1509,1
    - Dst: TargetAddress_WeaveService
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - serviceEndpointId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1515
      start: 1507
    functionDepth: 0
    functionLinenumber: 1507
    functionLinenumberEnd: 1515
    functionName: '& Binding::Configuration::Target_ServiceEndpoint(uint64_t serviceEndpointId)'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - Target_NodeId
    - TargetAddress_WeaveService
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::Target_ServiceEndpoint(uint64_t serviceEndpointId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - aPeerAddress
    - aPeerPort
    - aInterfaceId
    argTypes:
    - nl::Inet::IPAddress
    - uint16_t
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 1533
      start: 1526
    functionDepth: 0
    functionLinenumber: 1526
    functionLinenumberEnd: 1533
    functionName: '& Binding::Configuration::TargetAddress_IP(const nl::Inet::IPAddress
      aPeerAddress, const uint16_t aPeerPort, const InterfaceId aInterfaceId)'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::TargetAddress_IP(const nl::Inet::IPAddress
      aPeerAddress, const uint16_t aPeerPort, const InterfaceId aInterfaceId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TargetAddress_IP
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1549,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aHostName
    - aPeerPort
    - aInterfaceId
    argTypes:
    - char*
    - uint16_t
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 1550
      start: 1547
    functionDepth: 0
    functionLinenumber: 1547
    functionLinenumberEnd: 1550
    functionName: '& Binding::Configuration::TargetAddress_IP(const char *aHostName,
      uint16_t aPeerPort, InterfaceId aInterfaceId)'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - TargetAddress_IP
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::TargetAddress_IP(const char *aHostName,
      uint16_t aPeerPort, InterfaceId aInterfaceId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - aHostName
    - aHostNameLen
    - aPeerPort
    - aInterfaceId
    argTypes:
    - char*
    - size_t
    - uint16_t
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 1581
      start: 1566
    functionDepth: 0
    functionLinenumber: 1566
    functionLinenumberEnd: 1581
    functionName: '& Binding::Configuration::TargetAddress_IP(const char *aHostName,
      size_t aHostNameLen, uint16_t aPeerPort, InterfaceId aInterfaceId)'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::TargetAddress_IP(const char *aHostName,
      size_t aHostNameLen, uint16_t aPeerPort, InterfaceId aInterfaceId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dnsOptions
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1599
      start: 1591
    functionDepth: 0
    functionLinenumber: 1591
    functionLinenumberEnd: 1599
    functionName: '& Binding::Configuration::DNS_Options(uint8_t dnsOptions)'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::DNS_Options(uint8_t dnsOptions)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TargetAddress_WeaveFabric
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1606
    functionDepth: 0
    functionLinenumber: 1606
    functionLinenumberEnd: 1609
    functionName: '& Binding::Configuration::TargetAddress_WeaveService()'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - TargetAddress_WeaveFabric
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::TargetAddress_WeaveService()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - aSubnetId
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1623
      start: 1618
    functionDepth: 1
    functionLinenumber: 1618
    functionLinenumberEnd: 1623
    functionName: '& Binding::Configuration::TargetAddress_WeaveFabric(uint16_t aSubnetId)'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::MakeULA
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::TargetAddress_WeaveFabric(uint16_t aSubnetId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1630
    functionDepth: 0
    functionLinenumber: 1630
    functionLinenumberEnd: 1634
    functionName: '& Binding::Configuration::Transport_TCP()'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::Transport_TCP()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1641
    functionDepth: 0
    functionLinenumber: 1641
    functionLinenumberEnd: 1645
    functionName: '& Binding::Configuration::Transport_UDP()'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::Transport_UDP()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1660
      start: 1652
    functionDepth: 0
    functionLinenumber: 1652
    functionLinenumberEnd: 1660
    functionName: '& Binding::Configuration::Transport_UDP_WRM()'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::Transport_UDP_WRM()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aPathMTU
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1674
      start: 1670
    functionDepth: 0
    functionLinenumber: 1670
    functionLinenumberEnd: 1674
    functionName: '& Binding::Configuration::Transport_UDP_PathMTU(uint32_t aPathMTU)'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::Transport_UDP_PathMTU(uint32_t aPathMTU)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' aWRMPConfig'
    argTypes:
    - nl::Weave::WRMPConfig
    constantsTouched: []
    func_position:
      end: 1692
      start: 1683
    functionDepth: 0
    functionLinenumber: 1683
    functionLinenumberEnd: 1692
    functionName: '& Binding::Configuration::Transport_DefaultWRMPConfig(const nl::Weave::WRMPConfig&
      aWRMPConfig)'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - IgnoreUnusedVariable
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::Transport_DefaultWRMPConfig(const nl::Weave::WRMPConfig&
      aWRMPConfig)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - con
    argTypes:
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 1710
      start: 1705
    functionDepth: 0
    functionLinenumber: 1705
    functionLinenumberEnd: 1710
    functionName: '& Binding::Configuration::Transport_ExistingConnection(WeaveConnection
      *con)'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::Transport_ExistingConnection(WeaveConnection
      *con)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aResponseTimeoutMsec
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1723
      start: 1719
    functionDepth: 0
    functionLinenumber: 1719
    functionLinenumberEnd: 1723
    functionName: '& Binding::Configuration::Exchange_ResponseTimeoutMsec(uint32_t
      aResponseTimeoutMsec)'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::Exchange_ResponseTimeoutMsec(uint32_t aResponseTimeoutMsec)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1730
    functionDepth: 0
    functionLinenumber: 1730
    functionLinenumberEnd: 1736
    functionName: '& Binding::Configuration::Security_None()'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::Security_None()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1747
    functionDepth: 0
    functionLinenumber: 1747
    functionLinenumberEnd: 1757
    functionName: '& Binding::Configuration::Security_CASESession(void)'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::Security_CASESession(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1768
    functionDepth: 0
    functionLinenumber: 1768
    functionLinenumberEnd: 1778
    functionName: '& Binding::Configuration::Security_SharedCASESession(void)'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::Security_SharedCASESession(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1801,1
    - Dst: Security_SharedCASESession
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1803,1
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - aRouterNodeId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1811
      start: 1792
    functionDepth: 0
    functionLinenumber: 1792
    functionLinenumberEnd: 1811
    functionName: '& Binding::Configuration::Security_SharedCASESession(uint64_t aRouterNodeId)'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - IgnoreUnusedVariable
    - VerifyOrExit
    - Security_SharedCASESession
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::Security_SharedCASESession(uint64_t aRouterNodeId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aPasswordSource
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1836
      start: 1825
    functionDepth: 0
    functionLinenumber: 1825
    functionLinenumberEnd: 1836
    functionName: '& Binding::Configuration::Security_PASESession(uint8_t aPasswordSource)'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - IgnoreUnusedVariable
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::Security_PASESession(uint8_t aPasswordSource)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1847
    functionDepth: 0
    functionLinenumber: 1847
    functionLinenumberEnd: 1857
    functionName: '& Binding::Configuration::Security_TAKESession()'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::Security_TAKESession()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::IsMessageEncryptionKeyId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1869,1
    - Dst: nl::Weave::WeaveKeyId::IsAppRotatingKey
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1872,1
    - Dst: nl::Weave::WeaveKeyId::ConvertToCurrentAppKeyId
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1875,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - aKeyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1883
      start: 1867
    functionDepth: 3
    functionLinenumber: 1867
    functionLinenumberEnd: 1883
    functionName: '& Binding::Configuration::Security_Key(uint32_t aKeyId)'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveKeyId::ConvertToCurrentAppKeyId
    - nl::Weave::WeaveKeyId::IsMessageEncryptionKeyId
    - nl::Weave::WeaveKeyId::IsAppRotatingKey
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::Security_Key(uint32_t aKeyId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mExchangeManager::FabricState::GetMsgEncKeyIdForAppGroup
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1902,1
    - Dst: GroupKeyAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1906,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - aAppGroupGlobalId
    - aRootKeyId
    - aUseRotatingKey
    argTypes:
    - uint32_t
    - uint32_t
    - bool
    constantsTouched: []
    func_position:
      end: 1913
      start: 1897
    functionDepth: 0
    functionLinenumber: 1897
    functionLinenumberEnd: 1913
    functionName: '& Binding::Configuration::Security_AppGroupKey(uint32_t aAppGroupGlobalId,
      uint32_t aRootKeyId, bool aUseRotatingKey)'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - GroupKeyAuthMode
    - mExchangeManager::FabricState::GetMsgEncKeyIdForAppGroup
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::Security_AppGroupKey(uint32_t aAppGroupGlobalId,
      uint32_t aRootKeyId, bool aUseRotatingKey)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aEncType
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1926
      start: 1922
    functionDepth: 0
    functionLinenumber: 1922
    functionLinenumberEnd: 1926
    functionName: '& Binding::Configuration::Security_EncryptionType(uint8_t aEncType)'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::Security_EncryptionType(uint8_t aEncType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aAuthMode
    argTypes:
    - WeaveAuthMode
    constantsTouched: []
    func_position:
      end: 1939
      start: 1935
    functionDepth: 0
    functionLinenumber: 1935
    functionLinenumberEnd: 1939
    functionName: '& Binding::Configuration::Security_AuthenticationMode(WeaveAuthMode
      aAuthMode)'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::Security_AuthenticationMode(WeaveAuthMode
      aAuthMode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1947
    functionDepth: 0
    functionLinenumber: 1947
    functionLinenumberEnd: 1951
    functionName: '& Binding::Configuration::CaptureTxMessage(void)'
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: Binding::Configuration
    signature: '& Binding::Configuration::CaptureTxMessage(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Transport_ExistingConnection
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1969,1
    - Dst: Transport_UDP_WRM
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1976,1
    - Dst: Transport_UDP
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1983,1
    - Dst: TargetAddress_IP
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1990,1
    - Dst: nl::Inet::IPPacketInfo*::SrcAddress::IsIPv6LinkLocal
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1991,1
    - Dst: Security_None
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:1996,1
    - Dst: Security_Key
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:2000,1
    - Dst: Security_EncryptionType
      Src: /src/openweave-core/src/lib/core/WeaveBinding.cpp:2001,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - aMsgInfo
    - aPacketInfo
    argTypes:
    - nl::Weave::WeaveMessageInfo*
    - nl::Inet::IPPacketInfo*
    constantsTouched: []
    func_position:
      end: 2005
      start: 1961
    functionDepth: 0
    functionLinenumber: 1961
    functionLinenumberEnd: 2005
    functionName: "& Binding::Configuration::ConfigureFromMessage(\n        const
      nl::Weave::WeaveMessageInfo *aMsgInfo,\n        const nl::Inet::IPPacketInfo
      *aPacketInfo)"
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveBinding.cpp
    functionUses: 0
    functionsReached:
    - Security_None
    - TargetAddress_IP
    - nl::Inet::IPPacketInfo*::SrcAddress::IsIPv6LinkLocal
    - Security_EncryptionType
    - Transport_ExistingConnection
    - Security_Key
    - Transport_UDP_WRM
    - Transport_UDP
    linkageType: ''
    returnType: Binding::Configuration
    signature: "& Binding::Configuration::ConfigureFromMessage(\n        const nl::Weave::WeaveMessageInfo
      *aMsgInfo,\n        const nl::Inet::IPPacketInfo *aPacketInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: nl::Weave::HostPortList::HostPortList
    functionSourceFile: /src/openweave-core/src/lib/core/HostPortList.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: HostPortList(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - hostPortList
    - hostPortCount
    - suffixList
    - suffixCount
    argTypes:
    - uint8_t*
    - uint8_t
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: nl::Weave::HostPortList::HostPortList
    functionSourceFile: /src/openweave-core/src/lib/core/HostPortList.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: HostPortList(const uint8_t *hostPortList, uint8_t hostPortCount, const
      uint8_t *suffixList, const uint8_t suffixCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: nl::Weave::HostPortList::IsEmpty
    functionSourceFile: /src/openweave-core/src/lib/core/HostPortList.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsEmpty(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: nl::Weave::HostPortList::Clear
    functionSourceFile: /src/openweave-core/src/lib/core/HostPortList.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: HostPortList::Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/HostPortList.cpp:79,1
    - Dst: nl::Weave::HostPortList::Skip
      Src: /src/openweave-core/src/lib/core/HostPortList.cpp:84,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/HostPortList.cpp:85,1
    - Dst: nl::Weave::HostPortList::Get
      Src: /src/openweave-core/src/lib/core/HostPortList.cpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - index
    - hostBuf
    - hostBufSize
    - ' port'
    argTypes:
    - uint8_t
    - char*
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 92
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 92
    functionName: nl::Weave::HostPortList::Get
    functionSourceFile: /src/openweave-core/src/lib/core/HostPortList.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::HostPortList::Skip
    - nl::Weave::HostPortList::Get
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: HostPortList::Get(uint8_t index, char *hostBuf, uint32_t hostBufSize,
      uint16_t& port) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/HostPortList.cpp:121,1
    - Dst: nl::Weave::HostPortList::Get
      Src: /src/openweave-core/src/lib/core/HostPortList.cpp:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - hostBuf
    - hostBufSize
    - ' port'
    argTypes:
    - char*
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 129
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 129
    functionName: nl::Weave::HostPortList::Pop
    functionSourceFile: /src/openweave-core/src/lib/core/HostPortList.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::HostPortList::Get
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: HostPortList::Pop(char *hostBuf, uint32_t hostBufSize, uint16_t& port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/HostPortList.cpp:164,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/HostPortList.cpp:167,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/core/HostPortList.cpp:169,1
    - Dst: nl::Weave::HostPortList::GetSuffix
      Src: /src/openweave-core/src/lib/core/HostPortList.cpp:177,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/HostPortList.cpp:178,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/core/HostPortList.cpp:189,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - ' elem'
    - hostBuf
    - hostBufSize
    - ' port'
    argTypes:
    - uint8_t*
    - char*
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 195
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 195
    functionName: nl::Weave::HostPortList::Get
    functionSourceFile: /src/openweave-core/src/lib/core/HostPortList.cpp
    functionUses: 2
    functionsReached:
    - VerifyOrExit
    - nl::Weave::HostPortList::GetSuffix
    - memcpy
    - SuccessOrExit
    - nl::Weave::Encoding::LittleEndian::Read16
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: HostPortList::Get(const uint8_t *& elem, char *hostBuf, uint32_t hostBufSize,
      uint16_t& port) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/HostPortList.cpp:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' elem'
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 229
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 229
    functionName: nl::Weave::HostPortList::Skip
    functionSourceFile: /src/openweave-core/src/lib/core/HostPortList.cpp
    functionUses: 1
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: HostPortList::Skip(const uint8_t *& elem) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/HostPortList.cpp:261,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/HostPortList.cpp:268,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/core/HostPortList.cpp:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - index
    - buf
    - bufSize
    - ' suffixLen'
    argTypes:
    - uint8_t
    - char*
    - uint32_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 275
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 275
    functionName: nl::Weave::HostPortList::GetSuffix
    functionSourceFile: /src/openweave-core/src/lib/core/HostPortList.cpp
    functionUses: 1
    functionsReached:
    - memcpy
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: HostPortList::GetSuffix(uint8_t index, char *buf, uint32_t bufSize,
      uint8_t& suffixLen) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - messageLayer
    argTypes:
    - WeaveMessageLayer*
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: nl::Weave::WeaveConnectionTunnel::Init
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: WeaveConnectionTunnel::Init(WeaveMessageLayer *messageLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - endPointOne
    - endPointTwo
    argTypes:
    - TCPEndPoint*
    - TCPEndPoint*
    constantsTouched: []
    func_position:
      end: 66
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 66
    functionName: nl::Weave::WeaveConnectionTunnel::MakeTunnelConnected
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveConnectionTunnel::MakeTunnelConnected(TCPEndPoint *endPointOne,
      TCPEndPoint *endPointTwo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:73,1
    - Dst: Abort
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:75,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - endPoint
    argTypes:
    - TCPEndPoint**
    constantsTouched: []
    func_position:
      end: 81
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 81
    functionName: nl::Weave::WeaveConnectionTunnel::CloseEndPoint
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp
    functionUses: 0
    functionsReached:
    - Close
    - Abort
    - Free
    linkageType: ''
    returnType: void
    signature: WeaveConnectionTunnel::CloseEndPoint(TCPEndPoint **endPoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:92,1
    - Dst: nl::Weave::WeaveConnectionTunnel::LogId
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:92,1
    - Dst: nl::Weave::WeaveConnectionTunnel::LogId
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:93,1
    - Dst: nl::Weave::WeaveConnectionTunnel::LogId
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:93,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:96,1
    - Dst: nl::Weave::WeaveConnectionTunnel::CloseEndPoint
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:98,1
    - Dst: nl::Weave::WeaveConnectionTunnel::CloseEndPoint
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:99,1
    - Dst: OnShutdown
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 108
    functionName: nl::Weave::WeaveConnectionTunnel::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveConnectionTunnel::CloseEndPoint
    - WeaveLogProgress
    - OnShutdown
    - nl::Weave::WeaveConnectionTunnel::LogId
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: WeaveConnectionTunnel::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TCPEndPoint::GetPeerInfo
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:117,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:118,1
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:120,1
    - Dst: TCPEndPoint::GetPeerInfo
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:122,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:123,1
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:125,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:127,1
    - Dst: PacketBuffer::DataLength
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:127,1
    - Dst: WeaveConnectionTunnel::LogId
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - tun
    - fromEndPoint
    - toEndPoint
    - data
    argTypes:
    - WeaveConnectionTunnel
    - TCPEndPoint
    - TCPEndPoint
    - PacketBuffer
    constantsTouched: []
    func_position:
      end: 131
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 131
    functionName: nl::Weave::PrintTunnelInfo
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer::DataLength
    - WeaveConnectionTunnel::LogId
    - TCPEndPoint::GetPeerInfo
    - WeaveLogDetail
    - IPAddress::ToString
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: PrintTunnelInfo(const WeaveConnectionTunnel &tun, const TCPEndPoint
      &fromEndPoint, const TCPEndPoint &toEndPoint, const PacketBuffer &data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintTunnelInfo
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:147,1
    - Dst: TCPEndPoint*::AckReceive
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:150,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:150,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:151,1
    - Dst: TCPEndPoint*::Send
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:154,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:156,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:161,1
    - Dst: WeaveConnectionTunnel*::LogId
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:161,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - fromEndPoint
    - data
    argTypes:
    - TCPEndPoint*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 166
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 166
    functionName: nl::Weave::WeaveConnectionTunnel::HandleTunnelDataReceived
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    - WeaveConnectionTunnel*::LogId
    - PrintTunnelInfo
    - TCPEndPoint*::Send
    - SuccessOrExit
    - TCPEndPoint*::AckReceive
    linkageType: ''
    returnType: void
    signature: WeaveConnectionTunnel::HandleTunnelDataReceived(TCPEndPoint *fromEndPoint,
      PacketBuffer *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:174,1
    - Dst: WeaveConnectionTunnel*::Shutdown
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - endPoint
    - err
    argTypes:
    - TCPEndPoint*
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 180
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 180
    functionName: nl::Weave::WeaveConnectionTunnel::HandleTunnelConnectionClosed
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnectionTunnel*::Shutdown
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: WeaveConnectionTunnel::HandleTunnelConnectionClosed(TCPEndPoint *endPoint,
      INET_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:188,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:192,1
    - Dst: WeaveConnectionTunnel*::LogId
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:192,1
    - Dst: TCPEndPoint*::LogId
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:193,1
    - Dst: WeaveConnectionTunnel*::mEPTwo::Shutdown
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:198,1
    - Dst: WeaveConnectionTunnel*::mEPOne::Shutdown
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:202,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:206,1
    - Dst: WeaveConnectionTunnel*::LogId
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:206,1
    - Dst: TCPEndPoint*::LogId
      Src: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp:207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - endPoint
    argTypes:
    - TCPEndPoint*
    constantsTouched: []
    func_position:
      end: 210
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 210
    functionName: nl::Weave::WeaveConnectionTunnel::HandleReceiveShutdown
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp
    functionUses: 0
    functionsReached:
    - TCPEndPoint*::LogId
    - WeaveLogProgress
    - WeaveConnectionTunnel*::mEPTwo::Shutdown
    - WeaveConnectionTunnel*::mEPOne::Shutdown
    - WeaveLogDetail
    - WeaveConnectionTunnel*::LogId
    linkageType: ''
    returnType: void
    signature: WeaveConnectionTunnel::HandleReceiveShutdown(TCPEndPoint *endPoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: nl::Weave::WeaveExchangeManager::WeaveExchangeManager
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::WeaveExchangeManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRandU16
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:87,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:89,1
    - Dst: nl::Weave::WeaveExchangeManager::InitBindingPool
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:92,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:94,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:104,1
    - Dst: nl::Weave::System::Timer::GetCurrentEpoch
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - msgLayer
    argTypes:
    - WeaveMessageLayer*
    constantsTouched: []
    func_position:
      end: 114
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 114
    functionName: nl::Weave::WeaveExchangeManager::Init
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - GetRandU16
    - nl::Weave::WeaveExchangeManager::InitBindingPool
    - nl::Weave::System::Timer::GetCurrentEpoch
    - memset
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveExchangeManager::Init(WeaveMessageLayer *msgLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveExchangeManager::WRMPStopTimer
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:140,1
    - Dst: nl::Weave::WeaveExchangeManager::ClearRetransmitTable
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 158
    functionName: nl::Weave::WeaveExchangeManager::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveExchangeManager::ClearRetransmitTable
    - nl::Weave::WeaveExchangeManager::WRMPStopTimer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveExchangeManager::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveExchangeManager::NewContext
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:173,1
    - Dst: SelectNodeAddress
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - peerNodeId
    - appState
    argTypes:
    - uint64_t
    - void*
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: nl::Weave::WeaveExchangeManager::NewContext
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::WeaveExchangeManager::NewContext
    - SelectNodeAddress
    linkageType: ''
    returnType: ExchangeContext
    signature: '*WeaveExchangeManager::NewContext(const uint64_t &peerNodeId, void
      *appState)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveExchangeManager::NewContext
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - peerNodeId
    - peerAddr
    - appState
    argTypes:
    - uint64_t
    - IPAddress
    - void*
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: nl::Weave::WeaveExchangeManager::NewContext
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::WeaveExchangeManager::NewContext
    linkageType: ''
    returnType: ExchangeContext
    signature: '*WeaveExchangeManager::NewContext(const uint64_t &peerNodeId, const
      IPAddress &peerAddr, void *appState)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveExchangeManager::AllocContext
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:215,1
    - Dst: ExchangeContext*::SetInitiator
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:224,1
    - Dst: ExchangeContext*::SetAckPending
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:230,1
    - Dst: ExchangeContext*::SetMsgRcvdFromPeer
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:231,1
    - Dst: ExchangeContext*::SetDropAck
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:235,1
    - Dst: ExchangeContext*::SetUseEphemeralUDPPort
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:243,1
    - Dst: EphemeralUDPPortEnabled
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:243,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:245,1
    - Dst: EXCHANGE_CONTEXT_ID
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 5
    argNames:
    - peerNodeId
    - peerAddr
    - peerPort
    - sendIntfId
    - appState
    argTypes:
    - uint64_t
    - IPAddress
    - uint16_t
    - InterfaceId
    - void*
    constantsTouched: []
    func_position:
      end: 248
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 248
    functionName: nl::Weave::WeaveExchangeManager::NewContext
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 2
    functionsReached:
    - EphemeralUDPPortEnabled
    - ExchangeContext*::SetMsgRcvdFromPeer
    - ExchangeContext*::SetUseEphemeralUDPPort
    - nl::Weave::WeaveExchangeManager::AllocContext
    - WeaveLogProgress
    - ExchangeContext*::SetInitiator
    - EXCHANGE_CONTEXT_ID
    - ExchangeContext*::SetDropAck
    - ExchangeContext*::SetAckPending
    linkageType: ''
    returnType: ExchangeContext
    signature: '*WeaveExchangeManager::NewContext(const uint64_t &peerNodeId, const
      IPAddress &peerAddr, uint16_t peerPort, InterfaceId sendIntfId, void *appState)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveExchangeManager::NewContext
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - con
    - appState
    argTypes:
    - WeaveConnection*
    - void*
    constantsTouched: []
    func_position:
      end: 272
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 272
    functionName: nl::Weave::WeaveExchangeManager::NewContext
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::WeaveExchangeManager::NewContext
    linkageType: ''
    returnType: ExchangeContext
    signature: '*WeaveExchangeManager::NewContext(WeaveConnection *con, void *appState)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExchangeContext*::IsInitiator
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:295,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 4
    argNames:
    - peerNodeId
    - con
    - appState
    - isInitiator
    argTypes:
    - uint64_t
    - WeaveConnection*
    - void*
    - bool
    constantsTouched: []
    func_position:
      end: 298
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 298
    functionName: nl::Weave::WeaveExchangeManager::FindContext
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - ExchangeContext*::IsInitiator
    linkageType: ''
    returnType: ExchangeContext
    signature: '*WeaveExchangeManager::FindContext(uint64_t peerNodeId, WeaveConnection
      *con, void *appState, bool isInitiator)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveExchangeManager::RegisterUMH
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - profileId
    - handler
    - appState
    argTypes:
    - uint32_t
    - ExchangeContext::MessageReceiveFunct
    - void*
    constantsTouched: []
    func_position:
      end: 318
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 318
    functionName: nl::Weave::WeaveExchangeManager::RegisterUnsolicitedMessageHandler
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveExchangeManager::RegisterUMH
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveExchangeManager::RegisterUnsolicitedMessageHandler(uint32_t profileId,\n
      \       ExchangeContext::MessageReceiveFunct handler, void *appState)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveExchangeManager::RegisterUMH
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - profileId
    - handler
    - allowDups
    - appState
    argTypes:
    - uint32_t
    - ExchangeContext::MessageReceiveFunct
    - bool
    - void*
    constantsTouched: []
    func_position:
      end: 339
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 339
    functionName: nl::Weave::WeaveExchangeManager::RegisterUnsolicitedMessageHandler
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveExchangeManager::RegisterUMH
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveExchangeManager::RegisterUnsolicitedMessageHandler(uint32_t profileId,\n
      \       ExchangeContext::MessageReceiveFunct handler, bool allowDups, void *appState)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveExchangeManager::RegisterUMH
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - profileId
    - msgType
    - handler
    - appState
    argTypes:
    - uint32_t
    - uint8_t
    - ExchangeContext::MessageReceiveFunct
    - void*
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: nl::Weave::WeaveExchangeManager::RegisterUnsolicitedMessageHandler
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveExchangeManager::RegisterUMH
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveExchangeManager::RegisterUnsolicitedMessageHandler(uint32_t profileId,
      uint8_t msgType,\n        ExchangeContext::MessageReceiveFunct handler, void
      *appState)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveExchangeManager::RegisterUMH
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - profileId
    - msgType
    - handler
    - allowDups
    - appState
    argTypes:
    - uint32_t
    - uint8_t
    - ExchangeContext::MessageReceiveFunct
    - bool
    - void*
    constantsTouched: []
    func_position:
      end: 384
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 384
    functionName: nl::Weave::WeaveExchangeManager::RegisterUnsolicitedMessageHandler
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveExchangeManager::RegisterUMH
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveExchangeManager::RegisterUnsolicitedMessageHandler(uint32_t profileId,
      uint8_t msgType,\n        ExchangeContext::MessageReceiveFunct handler, bool
      allowDups, void *appState)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveExchangeManager::RegisterUMH
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - profileId
    - msgType
    - con
    - handler
    - appState
    argTypes:
    - uint32_t
    - uint8_t
    - WeaveConnection*
    - ExchangeContext::MessageReceiveFunct
    - void*
    constantsTouched: []
    func_position:
      end: 409
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 409
    functionName: nl::Weave::WeaveExchangeManager::RegisterUnsolicitedMessageHandler
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveExchangeManager::RegisterUMH
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveExchangeManager::RegisterUnsolicitedMessageHandler(uint32_t profileId,
      uint8_t msgType, WeaveConnection *con,\n        ExchangeContext::MessageReceiveFunct
      handler, void *appState)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveExchangeManager::RegisterUMH
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - profileId
    - msgType
    - con
    - handler
    - allowDups
    - appState
    argTypes:
    - uint32_t
    - uint8_t
    - WeaveConnection*
    - ExchangeContext::MessageReceiveFunct
    - bool
    - void*
    constantsTouched: []
    func_position:
      end: 437
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 437
    functionName: nl::Weave::WeaveExchangeManager::RegisterUnsolicitedMessageHandler
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveExchangeManager::RegisterUMH
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveExchangeManager::RegisterUnsolicitedMessageHandler(uint32_t profileId,
      uint8_t msgType, WeaveConnection *con,\n        ExchangeContext::MessageReceiveFunct
      handler, bool allowDups, void *appState)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveExchangeManager::UnregisterUMH
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - profileId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 451
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 451
    functionName: nl::Weave::WeaveExchangeManager::UnregisterUnsolicitedMessageHandler
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveExchangeManager::UnregisterUMH
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveExchangeManager::UnregisterUnsolicitedMessageHandler(uint32_t
      profileId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveExchangeManager::UnregisterUMH
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - profileId
    - msgType
    argTypes:
    - uint32_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 467
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 467
    functionName: nl::Weave::WeaveExchangeManager::UnregisterUnsolicitedMessageHandler
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveExchangeManager::UnregisterUMH
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveExchangeManager::UnregisterUnsolicitedMessageHandler(uint32_t
      profileId, uint8_t msgType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveExchangeManager::UnregisterUMH
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - profileId
    - msgType
    - con
    argTypes:
    - uint32_t
    - uint8_t
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 486
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 486
    functionName: nl::Weave::WeaveExchangeManager::UnregisterUnsolicitedMessageHandler
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveExchangeManager::UnregisterUMH
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveExchangeManager::UnregisterUnsolicitedMessageHandler(uint32_t
      profileId, uint8_t msgType, WeaveConnection *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:490,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msgLayer
    - err
    argTypes:
    - WeaveMessageLayer*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 491
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 491
    functionName: nl::Weave::WeaveExchangeManager::HandleAcceptError
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::HandleAcceptError(WeaveMessageLayer *msgLayer,
      WEAVE_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - con
    argTypes:
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 497
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 497
    functionName: nl::Weave::WeaveExchangeManager::HandleConnectionReceived
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::HandleConnectionReceived(WeaveConnection *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OnConnectionClosed
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:503,1
    - Dst: ExchangeContext*::HandleConnectionClosed
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:510,1
    - Dst: SYSTEM_STATS_DECREMENT
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:517,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 520
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 520
    functionName: nl::Weave::WeaveExchangeManager::HandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - OnConnectionClosed
    - SYSTEM_STATS_DECREMENT
    - ExchangeContext*::HandleConnectionClosed
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::HandleConnectionClosed(WeaveConnection *con,
      WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExchangeContext*::CancelResponseTimer
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:539,1
    - Dst: ExchangeContext*::StartResponseTimer
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:541,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 547
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 547
    functionName: nl::Weave::WeaveExchangeManager::ExpireExchangeTimers
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - ExchangeContext*::StartResponseTimer
    - ExchangeContext*::CancelResponseTimer
    linkageType: ''
    returnType: size_t
    signature: WeaveExchangeManager::ExpireExchangeTimers(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExchangeContext
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:560,1
    - Dst: SignalMessageLayerActivityChanged
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:564,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:566,1
    - Dst: EXCHANGE_CONTEXT_ID
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:566,1
    - Dst: SYSTEM_STATS_INCREMENT
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:568,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:572,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 574
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 574
    functionName: nl::Weave::WeaveExchangeManager::AllocContext
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogError
    - SYSTEM_STATS_INCREMENT
    - WeaveLogProgress
    - SignalMessageLayerActivityChanged
    - EXCHANGE_CONTEXT_ID
    - ExchangeContext
    linkageType: ''
    returnType: ExchangeContext
    signature: '*WeaveExchangeManager::AllocContext()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveExchangeManager::WRMPExpireTicks
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:580,1
    - Dst: exchContext::OnDDRcvd
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:598,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:603,1
    - Dst: nl::Weave::WeaveExchangeManager::WRMPStartTimer
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:613,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - PauseTimeMillis
    - DelayedNodeId
    argTypes:
    - uint32_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 614
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 614
    functionName: nl::Weave::WeaveExchangeManager::WRMPProcessDDMessage
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - exchContext::OnDDRcvd
    - nl::Weave::WeaveExchangeManager::WRMPStartTimer
    - nl::Weave::WeaveExchangeManager::WRMPExpireTicks
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::WRMPProcessDDMessage(uint32_t PauseTimeMillis,
      uint64_t DelayedNodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:620,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 625
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 625
    functionName: nl::Weave::DefaultOnMessageReceived
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: void
    signature: "DefaultOnMessageReceived(ExchangeContext *ec, const IPPacketInfo *pktInfo,
      const WeaveMessageInfo *msgInfo, uint32_t profileId,\n            uint8_t msgType,
      PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveExchangeManager::DecodeHeader
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:649,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:650,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:656,1
    - Dst: SecurityMgr::OnEncryptedMsgRcvd
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:662,1
    - Dst: WeaveLogRetain
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:667,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:669,1
    - Dst: WeaveConnection*::LogId
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:669,1
    - Dst: SecurityMgr::HandleMsgCounterSyncRespMsg
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:680,1
    - Dst: SecurityMgr::SendMsgCounterSyncResp
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:687,1
    - Dst: nl::Weave::WeaveExchangeManager::RetransPendingAppGroupMsgs
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:691,1
    - Dst: SecurityMgr::SendSolitaryMsgCounterSyncReq
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:697,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:703,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:715,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:717,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read64
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:718,1
    - Dst: nl::Weave::WeaveExchangeManager::WRMPProcessDDMessage
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:720,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:724,1
    - Dst: ExchangeContext*::MatchExchange
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:732,1
    - Dst: ExchangeContext*::HasRcvdMsgFromPeer
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:737,1
    - Dst: ExchangeContext*::SetMsgRcvdFromPeer
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:739,1
    - Dst: ExchangeContext*::HandleMessage
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:744,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:748,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:790,1
    - Dst: nl::Weave::WeaveExchangeManager::AllocContext
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:825,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:826,1
    - Dst: ExchangeContext*::PeerAddr::IsIPv6LinkLocal
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:844,1
    - Dst: ExchangeContext*::SetAckPending
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:854,1
    - Dst: ExchangeContext*::SetMsgRcvdFromPeer
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:855,1
    - Dst: ExchangeContext*::SetDropAck
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:859,1
    - Dst: ExchangeContext*::SetInitiator
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:872,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:877,1
    - Dst: EXCHANGE_CONTEXT_ID
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:877,1
    - Dst: ExchangeContext*::SetInitiator
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:885,1
    - Dst: ExchangeContext*::SetUseEphemeralUDPPort
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:892,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:892,1
    - Dst: SecurityMgr::ReserveKey
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:896,1
    - Dst: ExchangeContext*::SetAutoReleaseKey
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:899,1
    - Dst: ExchangeContext*::HandleMessage
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:901,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:907,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:914,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:919,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 117
    argCount: 2
    argNames:
    - msgInfo
    - msgBuf
    argTypes:
    - WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 923
      start: 627
    functionDepth: 2
    functionLinenumber: 627
    functionLinenumberEnd: 923
    functionName: nl::Weave::WeaveExchangeManager::DispatchMessage
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - ExchangeContext*::SetUseEphemeralUDPPort
    - GetFlag
    - ExchangeContext*::SetInitiator
    - ExchangeContext*::SetAckPending
    - nl::Weave::WeaveExchangeManager::WRMPProcessDDMessage
    - WeaveLogError
    - ExchangeContext*::SetMsgRcvdFromPeer
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    - WeaveConnection*::LogId
    - ExchangeContext*::HasRcvdMsgFromPeer
    - VerifyOrExit
    - ExchangeContext*::SetDropAck
    - EXCHANGE_CONTEXT_ID
    - SuccessOrExit
    - ExchangeContext*::PeerAddr::IsIPv6LinkLocal
    - SecurityMgr::SendSolitaryMsgCounterSyncReq
    - ExchangeContext*::MatchExchange
    - nl::Weave::Encoding::LittleEndian::Read64
    - nl::Weave::WeaveExchangeManager::DecodeHeader
    - ExchangeContext*::SetAutoReleaseKey
    - nl::Weave::WeaveExchangeManager::AllocContext
    - WeaveLogProgress
    - ExitNow
    - SecurityMgr::HandleMsgCounterSyncRespMsg
    - WeaveLogRetain
    - PacketBuffer*::Start
    - SecurityMgr::SendMsgCounterSyncResp
    - SecurityMgr::OnEncryptedMsgRcvd
    - PacketBuffer*::DataLength
    - ExchangeContext*::HandleMessage
    - SecurityMgr::ReserveKey
    - nl::Weave::Encoding::LittleEndian::Read32
    - nl::Weave::WeaveExchangeManager::RetransPendingAppGroupMsgs
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::DispatchMessage(WeaveMessageInfo *msgInfo, PacketBuffer
      *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYSTEM_STATS_INCREMENT
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:955,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 6
    argNames:
    - profileId
    - msgType
    - con
    - allowDups
    - handler
    - appState
    argTypes:
    - uint32_t
    - int16_t
    - WeaveConnection*
    - bool
    - ExchangeContext::MessageReceiveFunct
    - void*
    constantsTouched: []
    func_position:
      end: 958
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 958
    functionName: nl::Weave::WeaveExchangeManager::RegisterUMH
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 6
    functionsReached:
    - SYSTEM_STATS_INCREMENT
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveExchangeManager::RegisterUMH(uint32_t profileId, int16_t msgType,
      WeaveConnection *con, bool allowDups,\n        ExchangeContext::MessageReceiveFunct
      handler, void *appState)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYSTEM_STATS_DECREMENT
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:968,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - profileId
    - msgType
    - con
    argTypes:
    - uint32_t
    - int16_t
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 973
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 973
    functionName: nl::Weave::WeaveExchangeManager::UnregisterUMH
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 3
    functionsReached:
    - SYSTEM_STATS_DECREMENT
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveExchangeManager::UnregisterUMH(uint32_t profileId, int16_t msgType,
      WeaveConnection *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveMessageLayer*::ExchangeMgr::DispatchMessage
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - msgLayer
    - msgInfo
    - msgBuf
    argTypes:
    - WeaveMessageLayer*
    - WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 978
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 978
    functionName: nl::Weave::WeaveExchangeManager::HandleMessageReceived
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveMessageLayer*::ExchangeMgr::DispatchMessage
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::HandleMessageReceived(WeaveMessageLayer *msgLayer,
      WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::MessageLayer::ExchangeMgr::DispatchMessage
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - con
    - msgInfo
    - msgBuf
    argTypes:
    - WeaveConnection*
    - WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 983
      start: 980
    functionDepth: 0
    functionLinenumber: 980
    functionLinenumberEnd: 983
    functionName: nl::Weave::WeaveExchangeManager::HandleMessageReceived
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnection*::MessageLayer::ExchangeMgr::DispatchMessage
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::HandleMessageReceived(WeaveConnection *con, WeaveMessageInfo
      *msgInfo, PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::EnsureReservedSize
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:992,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:993,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:997,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1007,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1013,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1016,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1017,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1018,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1019,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1024,1
    - Dst: WEAVE_FAULT_INJECT_MAX_ARG
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1028,1
    - Dst: nl::Weave::FaultInjection::FuzzExchangeHeader
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1045,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1045,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - exchangeHeader
    - buf
    argTypes:
    - WeaveExchangeHeader*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1050
      start: 985
    functionDepth: 2
    functionLinenumber: 985
    functionLinenumberEnd: 1050
    functionName: nl::Weave::WeaveExchangeManager::PrependHeader
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Write16
    - PacketBuffer*::SetStart
    - Write8
    - WEAVE_FAULT_INJECT_MAX_ARG
    - ExitNow
    - nl::Weave::FaultInjection::FuzzExchangeHeader
    - PacketBuffer*::Start
    - nl::Weave::Encoding::LittleEndian::Write32
    - PacketBuffer*::EnsureReservedSize
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveExchangeManager::PrependHeader(WeaveExchangeHeader *exchangeHeader,
      PacketBuffer *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1063,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1064,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1066,1
    - Dst: Read8
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1068,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1073,1
    - Dst: Read8
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1075,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1077,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1079,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1085,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1086,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1090,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1092,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1092,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - exchangeHeader
    - msgInfo
    - buf
    argTypes:
    - WeaveExchangeHeader*
    - WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1096
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1096
    functionName: nl::Weave::WeaveExchangeManager::DecodeHeader
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 1
    functionsReached:
    - PacketBuffer*::DataLength
    - PacketBuffer*::SetStart
    - nl::Weave::Encoding::LittleEndian::Read32
    - GetFlag
    - ExitNow
    - SetFlag
    - PacketBuffer*::Start
    - nl::Weave::Encoding::LittleEndian::Read16
    - Read8
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveExchangeManager::DecodeHeader(WeaveExchangeHeader *exchangeHeader,
      WeaveMessageInfo *msgInfo, PacketBuffer *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - con
    argTypes:
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 1109
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1109
    functionName: nl::Weave::WeaveExchangeManager::AllowUnsolicitedMessages
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::AllowUnsolicitedMessages(WeaveConnection *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExchangeContext*::AddRef
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1130,1
    - Dst: nl::Weave::WeaveExchangeManager::FailRetransmitTableEntries
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1133,1
    - Dst: ExchangeContext*::OnKeyError
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1138,1
    - Dst: ExchangeContext*::Release
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1142,1
    - Dst: OnKeyFailed
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1149,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - peerNodeId
    - keyId
    - keyErr
    argTypes:
    - uint64_t
    - uint16_t
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1151
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1151
    functionName: nl::Weave::WeaveExchangeManager::NotifyKeyFailed
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - OnKeyFailed
    - ExchangeContext*::AddRef
    - ExchangeContext*::OnKeyError
    - ExchangeContext*::Release
    - nl::Weave::WeaveExchangeManager::FailRetransmitTableEntries
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::NotifyKeyFailed(uint64_t peerNodeId, uint16_t
      keyId, WEAVE_ERROR keyErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OnSecurityManagerAvailable
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1156
    functionDepth: 0
    functionLinenumber: 1156
    functionLinenumberEnd: 1166
    functionName: nl::Weave::WeaveExchangeManager::NotifySecurityManagerAvailable
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - OnSecurityManagerAvailable
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::NotifySecurityManagerAvailable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::IsAppGroupKey
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1182,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put16
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1187,1
    - Dst: RetransTableEntry*::msgBuf::Start
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - peerNodeId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1190
      start: 1175
    functionDepth: 3
    functionLinenumber: 1175
    functionLinenumberEnd: 1190
    functionName: nl::Weave::WeaveExchangeManager::ClearMsgCounterSyncReq
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Put16
    - nl::Weave::WeaveKeyId::IsAppGroupKey
    - RetransTableEntry*::msgBuf::Start
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::ClearMsgCounterSyncReq(uint64_t peerNodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::IsAppGroupKey
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1206,1
    - Dst: nl::Weave::WeaveExchangeManager::SendFromRetransTable
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - peerNodeId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1216
      start: 1199
    functionDepth: 3
    functionLinenumber: 1199
    functionLinenumberEnd: 1216
    functionName: nl::Weave::WeaveExchangeManager::RetransPendingAppGroupMsgs
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::WeaveExchangeManager::SendFromRetransTable
    - nl::Weave::WeaveKeyId::IsAppGroupKey
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::RetransPendingAppGroupMsgs(uint64_t peerNodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - newTime
    - oldTime
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1247
      start: 1231
    functionDepth: 0
    functionLinenumber: 1231
    functionLinenumberEnd: 1247
    functionName: nl::Weave::WeaveExchangeManager::GetTickCounterFromTimeDelta
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "WeaveExchangeManager::GetTickCounterFromTimeDelta (uint64_t newTime,\n
      \                                                           uint64_t oldTime)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1252,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - log
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1264
      start: 1250
    functionDepth: 0
    functionLinenumber: 1250
    functionLinenumberEnd: 1264
    functionName: nl::Weave::WeaveExchangeManager::TicklessDebugDumpRetransTable
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::TicklessDebugDumpRetransTable(const char *log)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - log
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1266
      start: 1266
    functionDepth: 0
    functionLinenumber: 1266
    functionLinenumberEnd: 1266
    functionName: nl::Weave::WeaveExchangeManager::TicklessDebugDumpRetransTable
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::TicklessDebugDumpRetransTable(const char *log)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1283,1
    - Dst: ExchangeContext*::IsAckPending
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1288,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1293,1
    - Dst: ExchangeContext*::SendCommonNullMessage
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1296,1
    - Dst: ExchangeContext*::SetAckPending
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1297,1
    - Dst: nl::Weave::WeaveExchangeManager::TicklessDebugDumpRetransTable
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1302,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1322,1
    - Dst: nl::Weave::WeaveExchangeManager::ClearRetransmitTable
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1326,1
    - Dst: nl::Weave::WeaveExchangeManager::SendFromRetransTable
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1332,1
    - Dst: ExchangeContext*::GetCurrentRetransmitTimeout
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1338,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1340,1
    - Dst: ExchangeContext*::OnSendError
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1349,1
    - Dst: nl::Weave::WeaveExchangeManager::TicklessDebugDumpRetransTable
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1356,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1275
    functionDepth: 1
    functionLinenumber: 1275
    functionLinenumberEnd: 1357
    functionName: nl::Weave::WeaveExchangeManager::WRMPExecuteActions
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - ExchangeContext*::IsAckPending
    - nl::Weave::WeaveExchangeManager::TicklessDebugDumpRetransTable
    - WeaveLogError
    - WeaveLogProgress
    - nl::Weave::WeaveExchangeManager::ClearRetransmitTable
    - ExchangeContext*::GetCurrentRetransmitTimeout
    - nl::Weave::WeaveExchangeManager::SendFromRetransTable
    - ExchangeContext*::SetAckPending
    - ExchangeContext*::OnSendError
    - ExchangeContext*::SendCommonNullMessage
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::WRMPExecuteActions(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Timer::GetCurrentEpoch
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1377,1
    - Dst: nl::Weave::WeaveExchangeManager::GetTickCounterFromTimeDelta
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1384,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1392,1
    - Dst: ExchangeContext*::IsAckPending
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1397,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1409,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1432,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1445,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1460,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1462,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1368
    functionDepth: 1
    functionLinenumber: 1368
    functionLinenumberEnd: 1464
    functionName: nl::Weave::WeaveExchangeManager::WRMPExpireTicks
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 1
    functionsReached:
    - ExchangeContext*::IsAckPending
    - nl::Weave::WeaveExchangeManager::GetTickCounterFromTimeDelta
    - WeaveLogProgress
    - nl::Weave::System::Timer::GetCurrentEpoch
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::WRMPExpireTicks(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<WeaveExchangeManager*>
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1472,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1474,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1477,1
    - Dst: WeaveExchangeManager*::WRMPExpireTicks
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1481,1
    - Dst: WeaveExchangeManager*::WRMPExecuteActions
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1484,1
    - Dst: WeaveExchangeManager*::WRMPStartTimer
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 1488
      start: 1470
    functionDepth: 0
    functionLinenumber: 1470
    functionLinenumberEnd: 1488
    functionName: nl::Weave::WeaveExchangeManager::WRMPTimeout
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveExchangeManager*::WRMPExpireTicks
    - WeaveExchangeManager*::WRMPStartTimer
    - WeaveLogProgress
    - reinterpret_cast<WeaveExchangeManager*>
    - WeaveExchangeManager*::WRMPExecuteActions
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::WRMPTimeout(System::Layer* aSystemLayer, void*
      aAppState,  System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveExchangeManager::WRMPExpireTicks
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1519,1
    - Dst: nl::Weave::WeaveExchangeManager::GetTickCounterFromTimeDelta
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1525,1
    - Dst: ExchangeContext*::GetCurrentRetransmitTimeout
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1525,1
    - Dst: nl::Weave::System::Timer::GetCurrentEpoch
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1525,1
    - Dst: ExchangeContext*::AddRef
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1530,1
    - Dst: nl::Weave::WeaveExchangeManager::WRMPStartTimer
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1534,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1541,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - ec
    - msgBuf
    - messageId
    - msgCtxt
    - rEntry
    argTypes:
    - ExchangeContext*
    - PacketBuffer*
    - uint32_t
    - void*
    - RetransTableEntry**
    constantsTouched: []
    func_position:
      end: 1546
      start: 1508
    functionDepth: 2
    functionLinenumber: 1508
    functionLinenumberEnd: 1546
    functionName: nl::Weave::WeaveExchangeManager::AddToRetransTable
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - nl::Weave::WeaveExchangeManager::WRMPExpireTicks
    - nl::Weave::WeaveExchangeManager::GetTickCounterFromTimeDelta
    - ExchangeContext*::GetCurrentRetransmitTimeout
    - ExchangeContext*::AddRef
    - nl::Weave::System::Timer::GetCurrentEpoch
    - nl::Weave::WeaveExchangeManager::WRMPStartTimer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveExchangeManager::AddToRetransTable(ExchangeContext *ec, PacketBuffer
      *msgBuf, uint32_t messageId, void *msgCtxt, RetransTableEntry **rEntry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1568,1
    - Dst: nl::Weave::WeaveExchangeManager::WRMPStartTimer
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1571,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1572,1
    - Dst: ExchangeContext*::ShouldCaptureSentMessage
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1577,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1579,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1582,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1585,1
    - Dst: ExchangeContext*::UseEphemeralUDPPort
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1585,1
    - Dst: RetransTableEntry*::msgBuf::Start
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1589,1
    - Dst: RetransTableEntry*::msgBuf::DataLength
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1590,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1593,1
    - Dst: RetransTableEntry*::msgBuf::SetStart
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1597,1
    - Dst: RetransTableEntry*::msgBuf::SetDataLength
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1598,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1605,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1608,1
    - Dst: Weave::WeaveMessageLayer::IsSendErrorNonCritical
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1613,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1615,1
    - Dst: long
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1616,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1622,1
    - Dst: long
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1623,1
    - Dst: nl::Weave::WeaveExchangeManager::ClearRetransmitTable
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 1
    argNames:
    - entry
    argTypes:
    - RetransTableEntry*
    constantsTouched: []
    func_position:
      end: 1630
      start: 1556
    functionDepth: 1
    functionLinenumber: 1556
    functionLinenumberEnd: 1630
    functionName: nl::Weave::WeaveExchangeManager::SendFromRetransTable
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 2
    functionsReached:
    - RetransTableEntry*::msgBuf::DataLength
    - SendMessage
    - WeaveLogError
    - long
    - RetransTableEntry*::msgBuf::Start
    - RetransTableEntry*::msgBuf::SetDataLength
    - VerifyOrExit
    - ExitNow
    - ExchangeContext*::ShouldCaptureSentMessage
    - Weave::WeaveMessageLayer::IsSendErrorNonCritical
    - nl::Weave::WeaveExchangeManager::ClearRetransmitTable
    - SetFlag
    - ExchangeContext*::UseEphemeralUDPPort
    - RetransTableEntry*::msgBuf::SetStart
    - WEAVE_FAULT_INJECT
    - nl::Weave::WeaveExchangeManager::WRMPStartTimer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveExchangeManager::SendFromRetransTable(RetransTableEntry *entry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveExchangeManager::ClearRetransmitTable
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1645,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ec
    argTypes:
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 1648
      start: 1638
    functionDepth: 1
    functionLinenumber: 1638
    functionLinenumberEnd: 1648
    functionName: nl::Weave::WeaveExchangeManager::ClearRetransmitTable
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 4
    functionsReached:
    - nl::Weave::WeaveExchangeManager::ClearRetransmitTable
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::ClearRetransmitTable(ExchangeContext *ec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveExchangeManager::WRMPExpireTicks
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1661,1
    - Dst: RetransTableEntry::exchContext::Release
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1663,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1668,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1673,1
    - Dst: nl::Weave::WeaveExchangeManager::WRMPStartTimer
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1676,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - rEntry
    argTypes:
    - RetransTableEntry
    constantsTouched: []
    func_position:
      end: 1679
      start: 1656
    functionDepth: 2
    functionLinenumber: 1656
    functionLinenumberEnd: 1679
    functionName: nl::Weave::WeaveExchangeManager::ClearRetransmitTable
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 4
    functionsReached:
    - RetransTableEntry::exchContext::Release
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::WeaveExchangeManager::WRMPExpireTicks
    - memset
    - nl::Weave::WeaveExchangeManager::WRMPStartTimer
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::ClearRetransmitTable(RetransTableEntry &rEntry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveExchangeManager::ClearRetransmitTable
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1698,1
    - Dst: ExchangeContext*::OnSendError
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1702,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ec
    - err
    argTypes:
    - ExchangeContext*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1705
      start: 1689
    functionDepth: 2
    functionLinenumber: 1689
    functionLinenumberEnd: 1705
    functionName: nl::Weave::WeaveExchangeManager::FailRetransmitTableEntries
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 1
    functionsReached:
    - ExchangeContext*::OnSendError
    - nl::Weave::WeaveExchangeManager::ClearRetransmitTable
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::FailRetransmitTableEntries(ExchangeContext *ec,
      WEAVE_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExchangeContext*::IsAckPending
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1726,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1730,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1745,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1754,1
    - Dst: nl::Weave::System::Timer::GetCurrentEpoch
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1762,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1767,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1780,1
    - Dst: nl::Weave::WeaveExchangeManager::WRMPStopTimer
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1782,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1783,1
    - Dst: VerifyOrDieWithMsg
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1785,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1789,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1794,1
    - Dst: nl::Weave::System::Timer::GetCurrentEpoch
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1794,1
    - Dst: nl::Weave::WeaveExchangeManager::WRMPStopTimer
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1796,1
    - Dst: nl::Weave::WeaveExchangeManager::TicklessDebugDumpRetransTable
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1799,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1800
      start: 1714
    functionDepth: 1
    functionLinenumber: 1714
    functionLinenumberEnd: 1800
    functionName: nl::Weave::WeaveExchangeManager::WRMPStartTimer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 4
    functionsReached:
    - ExchangeContext*::IsAckPending
    - nl::Weave::WeaveExchangeManager::TicklessDebugDumpRetransTable
    - WeaveLogProgress
    - nl::Weave::WeaveExchangeManager::WRMPStopTimer
    - nl::Weave::System::Timer::GetCurrentEpoch
    - SystemLayer::StartTimer
    - VerifyOrDieWithMsg
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::WRMPStartTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SystemLayer::CancelTimer
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1802
    functionDepth: 0
    functionLinenumber: 1802
    functionLinenumberEnd: 1805
    functionName: nl::Weave::WeaveExchangeManager::WRMPStopTimer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 2
    functionsReached:
    - SystemLayer::CancelTimer
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::WRMPStopTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1814,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1812
    functionDepth: 0
    functionLinenumber: 1812
    functionLinenumberEnd: 1821
    functionName: nl::Weave::WeaveExchangeManager::InitBindingPool
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::InitBindingPool(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYSTEM_STATS_INCREMENT
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1842,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1829
    functionDepth: 0
    functionLinenumber: 1829
    functionLinenumberEnd: 1848
    functionName: nl::Weave::WeaveExchangeManager::AllocBinding
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - SYSTEM_STATS_INCREMENT
    linkageType: ''
    returnType: Binding
    signature: '* WeaveExchangeManager::AllocBinding(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYSTEM_STATS_DECREMENT
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - binding
    argTypes:
    - Binding*
    constantsTouched: []
    func_position:
      end: 1862
      start: 1857
    functionDepth: 0
    functionLinenumber: 1857
    functionLinenumberEnd: 1862
    functionName: nl::Weave::WeaveExchangeManager::FreeBinding
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - SYSTEM_STATS_DECREMENT
    linkageType: ''
    returnType: void
    signature: WeaveExchangeManager::FreeBinding(Binding * binding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveExchangeManager::AllocBinding
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1875,1
    - Dst: Binding*::Init
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - eventCallback
    - appState
    argTypes:
    - Binding::EventCallback
    - void*
    constantsTouched: []
    func_position:
      end: 1881
      start: 1873
    functionDepth: 1
    functionLinenumber: 1873
    functionLinenumberEnd: 1881
    functionName: nl::Weave::WeaveExchangeManager::NewBinding
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - Binding*::Init
    - nl::Weave::WeaveExchangeManager::AllocBinding
    linkageType: ''
    returnType: Binding
    signature: '* WeaveExchangeManager::NewBinding(Binding::EventCallback eventCallback,
      void *appState)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp:1894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - binding
    argTypes:
    - Binding*
    constantsTouched: []
    func_position:
      end: 1895
      start: 1891
    functionDepth: 0
    functionLinenumber: 1891
    functionLinenumberEnd: 1895
    functionName: nl::Weave::WeaveExchangeManager::GetBindingLogId
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    linkageType: ''
    returnType: uint16_t
    signature: WeaveExchangeManager::GetBindingLogId(const Binding * const binding)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - authMode
    argTypes:
    - WeaveAuthMode
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: nl::Weave::IsPASEAuthMode
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsPASEAuthMode(WeaveAuthMode authMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - authMode
    argTypes:
    - WeaveAuthMode
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: nl::Weave::IsCASEAuthMode
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsCASEAuthMode(WeaveAuthMode authMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - authMode
    argTypes:
    - WeaveAuthMode
    constantsTouched: []
    func_position:
      end: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    functionName: nl::Weave::IsTAKEAuthMode
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsTAKEAuthMode(WeaveAuthMode authMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::IsPASEAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - authMode
    argTypes:
    - WeaveAuthMode
    constantsTouched: []
    func_position:
      end: 212
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 212
    functionName: nl::Weave::IsPasswordAuthMode
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached:
    - nl::Weave::IsPASEAuthMode
    linkageType: ''
    returnType: bool
    signature: IsPasswordAuthMode(WeaveAuthMode authMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::IsCASEAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.h:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - authMode
    argTypes:
    - WeaveAuthMode
    constantsTouched: []
    func_position:
      end: 215
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: nl::Weave::IsCertAuthMode
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached:
    - nl::Weave::IsCASEAuthMode
    linkageType: ''
    returnType: bool
    signature: IsCertAuthMode(WeaveAuthMode authMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - authMode
    argTypes:
    - WeaveAuthMode
    constantsTouched: []
    func_position:
      end: 218
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 218
    functionName: nl::Weave::IsGroupKeyAuthMode
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsGroupKeyAuthMode(WeaveAuthMode authMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - authMode
    argTypes:
    - WeaveAuthMode
    constantsTouched: []
    func_position:
      end: 224
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 224
    functionName: nl::Weave::PasswordSourceFromAuthMode
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: PasswordSourceFromAuthMode(WeaveAuthMode authMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - authMode
    argTypes:
    - WeaveAuthMode
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: nl::Weave::CertTypeFromAuthMode
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: CertTypeFromAuthMode(WeaveAuthMode authMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::MakeAppGroupMasterKeyId
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - authMode
    argTypes:
    - WeaveAuthMode
    constantsTouched: []
    func_position:
      end: 236
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 236
    functionName: nl::Weave::AppGroupMasterKeyIdFromAuthMode
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveKeyId::MakeAppGroupMasterKeyId
    linkageType: ''
    returnType: uint8_t
    signature: AppGroupMasterKeyIdFromAuthMode(WeaveAuthMode authMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pwSource
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: nl::Weave::PASEAuthMode
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WeaveAuthMode
    signature: PASEAuthMode(uint8_t pwSource)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - certType
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 242
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 242
    functionName: nl::Weave::CASEAuthMode
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WeaveAuthMode
    signature: CASEAuthMode(uint8_t certType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::GetAppGroupLocalNumber
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.h:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 248
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 248
    functionName: nl::Weave::GroupKeyAuthMode
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveKeyId::GetAppGroupLocalNumber
    linkageType: ''
    returnType: WeaveAuthMode
    signature: GroupKeyAuthMode(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 388
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 388
    functionName: nl::Weave::WeaveSessionKey::IsAllocated
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsAllocated() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 389
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 389
    functionName: nl::Weave::WeaveSessionKey::IsKeySet
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsKeySet() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.h:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: nl::Weave::WeaveSessionKey::IsLocallyInitiated
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: IsLocallyInitiated() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.h:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 391
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 391
    functionName: nl::Weave::WeaveSessionKey::SetLocallyInitiated
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: void
    signature: SetLocallyInitiated(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.h:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 392
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 392
    functionName: nl::Weave::WeaveSessionKey::IsSharedSession
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: IsSharedSession() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.h:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 393
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 393
    functionName: nl::Weave::WeaveSessionKey::SetSharedSession
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: void
    signature: SetSharedSession(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.h:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 394
    functionName: nl::Weave::WeaveSessionKey::IsRemoveOnIdle
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: IsRemoveOnIdle() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.h:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 395
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 395
    functionName: nl::Weave::WeaveSessionKey::SetRemoveOnIdle
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: void
    signature: SetRemoveOnIdle(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.h:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 396
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 396
    functionName: nl::Weave::WeaveSessionKey::IsRecentlyActive
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: IsRecentlyActive() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.h:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 397
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 397
    functionName: nl::Weave::WeaveSessionKey::MarkRecentlyActive
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: void
    signature: MarkRecentlyActive()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearFlag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.h:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 398
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 398
    functionName: nl::Weave::WeaveSessionKey::ClearRecentlyActive
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached:
    - ClearFlag
    linkageType: ''
    returnType: void
    signature: ClearRecentlyActive()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.h:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 399
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 399
    functionName: nl::Weave::WeaveSessionKey::IsSuspended
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: IsSuspended() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.h:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 400
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 400
    functionName: nl::Weave::WeaveSessionKey::MarkSuspended
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: void
    signature: MarkSuspended()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearFlag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.h:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 401
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 401
    functionName: nl::Weave::WeaveSessionKey::ClearSuspended
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached:
    - ClearFlag
    linkageType: ''
    returnType: void
    signature: ClearSuspended()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.h:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 402
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 402
    functionName: nl::Weave::WeaveSessionKey::AreResumptionMsgIdsValid
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: AreResumptionMsgIdsValid() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.h:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 403
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 403
    functionName: nl::Weave::WeaveSessionKey::SetResumptionMsgIdsValid
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: void
    signature: SetResumptionMsgIdsValid(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.h:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 404
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 404
    functionName: nl::Weave::WeaveSessionKey::IsUsedOverConnection
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: IsUsedOverConnection() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveFabricState.h:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 405
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 405
    functionName: nl::Weave::WeaveSessionKey::SetUsedOverConnection
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: void
    signature: SetUsedOverConnection(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 669
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 669
    functionName: nl::Weave::WeaveFabricState
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeaveFabricState
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 682
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 682
    functionName: nl::Weave::WeaveFabricState::IsMsgCounterSyncReqInProgress
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveFabricState.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveFabricState::IsMsgCounterSyncReqInProgress(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: nl::Weave::Platform::Security::OnTimeConsumingCryptoStart
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: OnTimeConsumingCryptoStart()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: nl::Weave::Platform::Security::OnTimeConsumingCryptoDone
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: OnTimeConsumingCryptoDone()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: nl::Weave::WeaveSecurityManager::WeaveSecurityManager
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveSecurityManager::WeaveSecurityManager(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:152,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:153,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 47
    argCount: 2
    argNames:
    - ' aExchangeMgr'
    - ' aSystemLayer'
    argTypes:
    - WeaveExchangeManager
    - System::Layer
    constantsTouched: []
    func_position:
      end: 161
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 161
    functionName: nl::Weave::WeaveSecurityManager::Init
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp
    functionUses: 0
    functionsReached:
    - RegisterUnsolicitedMessageHandler
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveSecurityManager::Init(WeaveExchangeManager& aExchangeMgr, System::Layer&
      aSystemLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveSecurityManager::Init
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:167,1
    - Dst: InetLayer*::SystemLayer
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - aExchangeMgr
    - aInetLayer
    argTypes:
    - WeaveExchangeManager*
    - InetLayer*
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: nl::Weave::WeaveSecurityManager::Init
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp
    functionUses: 1
    functionsReached:
    - InetLayer*::SystemLayer
    - nl::Weave::WeaveSecurityManager::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveSecurityManager::Init(WeaveExchangeManager* aExchangeMgr, InetLayer*
      aInetLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:177,1
    - Dst: Reset
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 188
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 188
    functionName: nl::Weave::WeaveSecurityManager::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp
    functionUses: 0
    functionsReached:
    - Reset
    - UnregisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveSecurityManager::Shutdown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveSecurityManager*::HandleKeyErrorMsg
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:199,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:203,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:207,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:209,1
    - Dst: WeaveSecurityManager*::AsyncNotifySecurityManagerAvailable
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:211,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:212,1
    - Dst: ExchangeContext*::HasPeerRequestedAck
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:216,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:220,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:229,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:235,1
    - Dst: WeaveSecurityManager*::HandlePASESessionStart
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:239,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:242,1
    - Dst: WeaveSecurityManager*::HandleCASESessionStart
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:250,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:253,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:263,1
    - Dst: WeaveSecurityManager*::HandleTAKESessionStart
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:265,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:268,1
    - Dst: WeaveSecurityManager*::HandleKeyExportRequest
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:276,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:279,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:285,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:289,1
    - Dst: SendStatusReport
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:293,1
    - Dst: ExchangeContext*::Release
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:294,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:326,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:329,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:331,1
    - Dst: AsyncNotifySecurityManagerAvailable
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:333,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:334,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:338,1
    - Dst: IsPASEAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:338,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:342,1
    - Dst: AllocSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:358,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:359,1
    - Dst: WeaveSessionKey*::SetLocallyInitiated
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:360,1
    - Dst: NewSessionExchange
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:364,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:365,1
    - Dst: nl::Weave::Platform::Security::MemoryInit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:368,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:369,1
    - Dst: nl::Weave::Platform::Security::MemoryAlloc
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:372,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:373,1
    - Dst: nl::Weave::WeaveSecurityManager::Init
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:374,1
    - Dst: StartPASESession
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:384,1
    - Dst: RemoveSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:390,1
    - Dst: Reset
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:392,1
    - Dst: SendPASEInitiatorStep1
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:402,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:403,1
    - Dst: StartSessionTimer
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:409,1
    - Dst: HandleSessionError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:413,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:422,1
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::parse
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:431,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:432,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:436,1
    - Dst: WeaveSecurityManager*::SendPASEInitiatorStep1
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:439,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:440,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:445,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:450,1
    - Dst: WeaveSecurityManager*::ProcessPASEResponderReconfigure
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:458,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:459,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:462,1
    - Dst: WeaveSecurityManager*::SendPASEInitiatorStep1
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:465,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:466,1
    - Dst: WeaveSecurityManager*::ProcessPASEResponderStep1
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:472,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:473,1
    - Dst: WeaveSecurityManager*::ProcessPASEResponderStep2
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:479,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:480,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:483,1
    - Dst: WeaveSecurityManager*::SendPASEInitiatorStep2
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:486,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:487,1
    - Dst: WeaveSecurityManager*::HandleSessionEstablished
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:491,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:492,1
    - Dst: WeaveSecurityManager*::HandleSessionComplete
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:494,1
    - Dst: WeaveSecurityManager*::ProcessPASEResponderKeyConfirm
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:501,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:502,1
    - Dst: WeaveSecurityManager*::HandleSessionEstablished
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:504,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:505,1
    - Dst: WeaveSecurityManager*::HandleSessionComplete
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:507,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:513,1
    - Dst: WeaveSecurityManager*::HandleSessionError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:519,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:521,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:532,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:533,1
    - Dst: PasswordSourceFromAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:536,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoStart
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:539,1
    - Dst: GenerateInitiatorStep1
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:540,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoDone
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:541,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:542,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:545,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:547,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:551,1
    - Dst: ProcessResponderReconfigure
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:561,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:562,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoStart
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:574,1
    - Dst: ProcessResponderStep1
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:575,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoDone
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:576,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:577,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoStart
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:589,1
    - Dst: ProcessResponderStep2
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:590,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoDone
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:591,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:592,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:605,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:606,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoStart
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:609,1
    - Dst: GenerateInitiatorStep2
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:610,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoDone
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:611,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:612,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:615,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:617,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:621,1
    - Dst: ProcessResponderKeyConfirm
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:631,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:632,1
    - Dst: ExchangeContext*::AddRef
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:663,1
    - Dst: StartSessionTimer
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:668,1
    - Dst: nl::Weave::Platform::Security::MemoryInit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:671,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:672,1
    - Dst: nl::Weave::Platform::Security::MemoryAlloc
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:675,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:676,1
    - Dst: nl::Weave::WeaveSecurityManager::Init
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:677,1
    - Dst: ProcessPASEInitiatorStep1
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:679,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:682,1
    - Dst: SendPASEResponderReconfigure
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:688,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:689,1
    - Dst: Reset
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:692,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:696,1
    - Dst: SendPASEResponderStep1
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:698,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:699,1
    - Dst: SendPASEResponderStep2
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:701,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:702,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:707,1
    - Dst: HandleSessionError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:709,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:718,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:723,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:726,1
    - Dst: WeaveSecurityManager*::ProcessPASEInitiatorStep2
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:729,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:730,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:733,1
    - Dst: WeaveSecurityManager*::SendPASEResponderKeyConfirm
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:739,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:740,1
    - Dst: WeaveSecurityManager*::HandleSessionEstablished
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:746,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:747,1
    - Dst: WeaveSecurityManager*::HandleSessionComplete
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:749,1
    - Dst: WeaveSecurityManager*::HandleSessionError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:754,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:756,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoStart
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:766,1
    - Dst: ProcessInitiatorStep1
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:767,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoDone
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:768,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:769,1
    - Dst: AllocSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:777,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:778,1
    - Dst: WeaveSessionKey*::SetLocallyInitiated
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:779,1
    - Dst: WeaveSessionKey*::SetRemoveOnIdle
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:780,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:797,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:798,1
    - Dst: GenerateResponderReconfigure
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:801,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:802,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:805,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:807,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:811,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:822,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:823,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoStart
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:826,1
    - Dst: GenerateResponderStep1
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:827,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoDone
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:828,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:829,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:832,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:834,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:838,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:849,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:850,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoStart
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:853,1
    - Dst: GenerateResponderStep2
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:854,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoDone
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:855,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:856,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:859,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:861,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:865,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoStart
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:875,1
    - Dst: ProcessInitiatorStep2
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:876,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoDone
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:877,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:878,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:891,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:892,1
    - Dst: GenerateResponderKeyConfirm
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:895,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:896,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:899,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:901,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:905,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:947,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:950,1
    - Dst: IsCASEAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:950,1
    - Dst: FindSharedSession
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:957,1
    - Dst: AddSharedSessionEndNode
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:972,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:973,1
    - Dst: ReserveSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:976,1
    - Dst: onComplete
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:979,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:981,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:987,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:989,1
    - Dst: AsyncNotifySecurityManagerAvailable
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:991,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:992,1
    - Dst: AllocSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1009,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1011,1
    - Dst: WeaveSessionKey*::SetLocallyInitiated
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1012,1
    - Dst: WeaveSessionKey*::SetSharedSession
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1013,1
    - Dst: AddSharedSessionEndNode
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1020,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1021,1
    - Dst: NewSessionExchange
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1025,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1026,1
    - Dst: nl::Weave::Platform::Security::MemoryInit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1029,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1030,1
    - Dst: nl::Weave::Platform::Security::MemoryAlloc
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1033,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1034,1
    - Dst: nl::Weave::WeaveSecurityManager::Init
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1035,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1040,1
    - Dst: SetAllowedConfigs
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1044,1
    - Dst: SetAllowedCurves
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1045,1
    - Dst: SetCertType
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1048,1
    - Dst: CertTypeFromAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1048,1
    - Dst: SetUseKnownECDHKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1051,1
    - Dst: StartCASESession
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1055,1
    - Dst: RemoveSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1061,1
    - Dst: Reset
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1063,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1076,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1077,1
    - Dst: CASE::BeginSessionRequestContext::Reset
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1083,1
    - Dst: CASE::BeginSessionRequestContext::SetIsInitiator
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1084,1
    - Dst: SetAlternateConfigs
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1087,1
    - Dst: SetAlternateCurves
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1089,1
    - Dst: CASE::BeginSessionRequestContext::SetPerformKeyConfirm
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1090,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoStart
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1094,1
    - Dst: GenerateBeginSessionRequest
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1095,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoDone
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1096,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1097,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1108,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1110,1
    - Dst: StartSessionTimer
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1116,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1120,1
    - Dst: HandleSessionError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1122,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1132,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1137,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1140,1
    - Dst: WeaveSecurityManager*::mEC::WRMPFlushAcks
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1148,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1149,1
    - Dst: CASE::BeginSessionResponseContext::Reset
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1156,1
    - Dst: CASE::BeginSessionResponseContext::SetIsInitiator
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1157,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoStart
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1161,1
    - Dst: WeaveSecurityManager*::mCASEEngine::ProcessBeginSessionResponse
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1162,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoDone
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1163,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1164,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1168,1
    - Dst: WeaveSecurityManager*::mCASEEngine::PerformingKeyConfirm
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1172,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1175,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1176,1
    - Dst: WeaveSecurityManager*::mCASEEngine::GenerateInitiatorKeyConfirm
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1177,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1178,1
    - Dst: WeaveSecurityManager*::mEC::SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1188,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1190,1
    - Dst: WeaveSecurityManager*::HandleSessionEstablished
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1194,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1195,1
    - Dst: WeaveSecurityManager*::mCASEEngine::PerformingKeyConfirm
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1205,1
    - Dst: WeaveSecurityManager*::HandleSessionComplete
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1208,1
    - Dst: WeaveSecurityManager*::mCASEEngine::ProcessReconfigure
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1218,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1219,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1222,1
    - Dst: WeaveSecurityManager*::NewSessionExchange
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1228,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1229,1
    - Dst: WeaveSecurityManager*::StartCASESession
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1232,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1237,1
    - Dst: WeaveSecurityManager*::HandleSessionError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1241,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1243,1
    - Dst: ExchangeContext*::AddRef
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1276,1
    - Dst: WRMPFlushAcks
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1286,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1287,1
    - Dst: nl::Weave::Platform::Security::MemoryInit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1294,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1295,1
    - Dst: nl::Weave::Platform::Security::MemoryAlloc
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1298,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1299,1
    - Dst: nl::Weave::WeaveSecurityManager::Init
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1300,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1304,1
    - Dst: SetAllowedConfigs
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1308,1
    - Dst: SetAllowedCurves
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1309,1
    - Dst: SetResponderRequiresKeyConfirm
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1310,1
    - Dst: SetUseKnownECDHKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1313,1
    - Dst: CASE::BeginSessionRequestContext::Reset
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1317,1
    - Dst: CASE::ReconfigureContext::Reset
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1320,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoStart
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1321,1
    - Dst: ProcessBeginSessionRequest
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1322,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoDone
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1323,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1325,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1331,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1335,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1336,1
    - Dst: CASE::ReconfigureContext::Encode
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1337,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1338,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1341,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1343,1
    - Dst: Reset
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1346,1
    - Dst: AllocSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1357,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1358,1
    - Dst: WeaveSessionKey*::SetLocallyInitiated
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1359,1
    - Dst: WeaveSessionKey*::SetRemoveOnIdle
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1360,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1367,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1368,1
    - Dst: CASE::BeginSessionResponseContext::Reset
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1374,1
    - Dst: CASE::BeginSessionResponseContext::SetPerformKeyConfirm
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1379,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoStart
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1381,1
    - Dst: GenerateBeginSessionResponse
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1382,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoDone
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1383,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1384,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1388,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1390,1
    - Dst: StartSessionTimer
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1393,1
    - Dst: HandleSessionEstablished
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1400,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1401,1
    - Dst: HandleSessionComplete
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1411,1
    - Dst: HandleSessionError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1418,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1420,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1422,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1431,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1436,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1439,1
    - Dst: WeaveSecurityManager*::mEC::WRMPFlushAcks
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1445,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1446,1
    - Dst: WeaveSecurityManager*::mCASEEngine::ProcessInitiatorKeyConfirm
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1451,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1452,1
    - Dst: WeaveSecurityManager*::HandleSessionEstablished
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1455,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1456,1
    - Dst: WeaveSecurityManager*::HandleSessionComplete
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1459,1
    - Dst: WeaveSecurityManager*::HandleSessionError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1463,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1465,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1508,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1511,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1513,1
    - Dst: AsyncNotifySecurityManagerAvailable
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1515,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1516,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1520,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1523,1
    - Dst: AllocSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1542,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1543,1
    - Dst: WeaveSessionKey*::SetLocallyInitiated
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1544,1
    - Dst: NewSessionExchange
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1549,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1550,1
    - Dst: nl::Weave::Platform::Security::MemoryInit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1553,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1554,1
    - Dst: nl::Weave::Platform::Security::MemoryAlloc
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1557,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1558,1
    - Dst: nl::Weave::WeaveSecurityManager::Init
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1559,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1563,1
    - Dst: StartTAKESession
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1567,1
    - Dst: RemoveSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1572,1
    - Dst: Reset
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1574,1
    - Dst: SendTAKEIdentifyToken
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1584,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1585,1
    - Dst: GetEncryptionType
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1587,1
    - Dst: StartSessionTimer
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1595,1
    - Dst: HandleSessionError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1599,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1609,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1615,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1619,1
    - Dst: WeaveSecurityManager*::ProcessTAKEIdentifyTokenResponse
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1626,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1630,1
    - Dst: WeaveSecurityManager*::mTAKEEngine::IsEncryptAuthPhase
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1632,1
    - Dst: WeaveSecurityManager*::CreateTAKESecureSession
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1634,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1635,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1639,1
    - Dst: WeaveSecurityManager*::SendTAKEReAuthenticateToken
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1644,1
    - Dst: WeaveSecurityManager*::SendTAKEAuthenticateToken
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1648,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1650,1
    - Dst: WeaveSecurityManager*::ProcessTAKETokenReconfigure
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1656,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1657,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1660,1
    - Dst: WeaveSecurityManager*::SendTAKEIdentifyToken
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1663,1
    - Dst: WeaveSecurityManager*::mTAKEEngine::IsEncryptAuthPhase
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1663,1
    - Dst: WeaveSecurityManager*::mTAKEEngine::IsEncryptCommPhase
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1664,1
    - Dst: WeaveSecurityManager*::mTAKEEngine::IsTimeLimitedIK
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1664,1
    - Dst: WeaveSecurityManager*::mTAKEEngine::HasSentChallengerId
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1664,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1665,1
    - Dst: WeaveSecurityManager*::ProcessTAKEAuthenticateTokenResponse
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1669,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1670,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1673,1
    - Dst: WeaveSecurityManager*::FinishTAKESetUp
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1676,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1677,1
    - Dst: WeaveSecurityManager*::HandleSessionComplete
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1679,1
    - Dst: WeaveSecurityManager*::ProcessTAKEReAuthenticateTokenResponse
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1683,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1684,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1687,1
    - Dst: WeaveSecurityManager*::FinishTAKESetUp
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1690,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1691,1
    - Dst: WeaveSecurityManager*::HandleSessionComplete
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1693,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1697,1
    - Dst: WeaveSecurityManager*::HandleSessionError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1703,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1705,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1714,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1715,1
    - Dst: GenerateIdentifyTokenMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1717,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1718,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1721,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1723,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1727,1
    - Dst: ProcessIdentifyTokenResponseMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1736,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1737,1
    - Dst: ProcessTokenReconfigureMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1747,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1748,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1759,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1760,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoStart
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1762,1
    - Dst: GenerateAuthenticateTokenMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1763,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoDone
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1764,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1765,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1767,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1769,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoStart
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1779,1
    - Dst: ProcessAuthenticateTokenResponseMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1780,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoDone
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1781,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1782,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1793,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1794,1
    - Dst: GenerateReAuthenticateTokenMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1796,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1797,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1799,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1801,1
    - Dst: ProcessReAuthenticateTokenResponseMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1811,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1812,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1838,1
    - Dst: ExchangeContext*::AddRef
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1849,1
    - Dst: StartSessionTimer
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1851,1
    - Dst: nl::Weave::Platform::Security::MemoryInit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1854,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1855,1
    - Dst: nl::Weave::Platform::Security::MemoryAlloc
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1858,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1859,1
    - Dst: nl::Weave::WeaveSecurityManager::Init
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1860,1
    - Dst: ProcessIdentifyTokenMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1864,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1865,1
    - Dst: SendTAKETokenReconfigure
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1870,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1871,1
    - Dst: Reset
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1874,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1876,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1879,1
    - Dst: UseSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1881,1
    - Dst: AllocSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1884,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1885,1
    - Dst: WeaveSessionKey*::SetLocallyInitiated
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1886,1
    - Dst: WeaveSessionKey*::SetRemoveOnIdle
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1887,1
    - Dst: GetEncryptionType
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1889,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1892,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1893,1
    - Dst: GenerateIdentifyTokenResponseMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1895,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1896,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1898,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1900,1
    - Dst: IsEncryptAuthPhase
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1902,1
    - Dst: CreateTAKESecureSession
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1904,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1905,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1910,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1912,1
    - Dst: HandleSessionError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1914,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1923,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1928,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1931,1
    - Dst: WeaveSecurityManager*::ProcessTAKEAuthenticateToken
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1936,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1937,1
    - Dst: WeaveSecurityManager*::SendTAKEAuthenticateTokenResponse
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1939,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1940,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1943,1
    - Dst: WeaveSecurityManager*::FinishTAKESetUp
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1946,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1947,1
    - Dst: WeaveSecurityManager*::HandleSessionComplete
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1949,1
    - Dst: WeaveSecurityManager*::ProcessTAKEReAuthenticateToken
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1953,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1954,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1956,1
    - Dst: WeaveSecurityManager*::SendTAKEReAuthenticateTokenResponse
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1959,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1960,1
    - Dst: WeaveSecurityManager*::FinishTAKESetUp
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1962,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1963,1
    - Dst: WeaveSecurityManager*::HandleSessionComplete
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1965,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1969,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1974,1
    - Dst: WeaveSecurityManager*::HandleSessionError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1979,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1981,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoStart
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1988,1
    - Dst: ProcessAuthenticateTokenMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1989,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoDone
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1990,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:1991,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2003,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2004,1
    - Dst: GenerateTokenReconfigureMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2006,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2007,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2009,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2011,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2015,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2024,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2025,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoStart
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2027,1
    - Dst: GenerateAuthenticateTokenResponseMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2028,1
    - Dst: nl::Weave::Platform::Security::OnTimeConsumingCryptoDone
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2029,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2030,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2032,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2034,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2038,1
    - Dst: ProcessReAuthenticateTokenMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2046,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2047,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2059,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2060,1
    - Dst: GenerateReAuthenticateTokenResponseMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2062,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2063,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2065,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2067,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2071,1
    - Dst: HandleSessionEstablished
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2083,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2084,1
    - Dst: ReserveKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2092,1
    - Dst: SetAutoReleaseKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2093,1
    - Dst: IsEncryptCommPhase
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2103,1
    - Dst: HandleSessionEstablished
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2105,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2106,1
    - Dst: IsEncryptAuthPhase
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2110,1
    - Dst: RemoveSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2112,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2113,1
    - Dst: NewSessionExchange
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2144,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2145,1
    - Dst: nl::Weave::Platform::Security::MemoryInit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2152,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2153,1
    - Dst: nl::Weave::Platform::Security::MemoryAlloc
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2156,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2157,1
    - Dst: nl::Weave::WeaveSecurityManager::Init
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2158,1
    - Dst: SetAllowedConfigs
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2161,1
    - Dst: SendKeyExportRequest
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2164,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2165,1
    - Dst: StartSessionTimer
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2175,1
    - Dst: HandleKeyExportError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2179,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2190,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2196,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2200,1
    - Dst: WeaveSecurityManager*::mEC::WRMPFlushAcks
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2205,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2206,1
    - Dst: WeaveSecurityManager*::mKeyExport::ProcessKeyExportReconfigure
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2215,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2215,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2215,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2216,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2219,1
    - Dst: WeaveSecurityManager*::SendKeyExportRequest
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2222,1
    - Dst: WeaveSecurityManager*::mKeyExport::KeyId
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2222,1
    - Dst: WeaveSecurityManager*::mKeyExport::SignMessages
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2222,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2223,1
    - Dst: WeaveSecurityManager*::mKeyExport::ProcessKeyExportResponse
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2232,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2232,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2232,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2234,1
    - Dst: WeaveSecurityManager*::mStartKeyExport_OnComplete
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2239,1
    - Dst: WeaveSecurityManager*::Reset
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2243,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2249,1
    - Dst: WeaveSecurityManager*::HandleKeyExportError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2255,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2258,1
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::parse
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2284,1
    - Dst: Reset
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2292,1
    - Dst: userOnError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2296,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2309,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2310,1
    - Dst: GenerateKeyExportRequest
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2313,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2313,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2313,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2314,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2317,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2327,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2329,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2333,1
    - Dst: ExchangeContext*::AddRef
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2352,1
    - Dst: WRMPFlushAcks
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2364,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2365,1
    - Dst: nl::Weave::Platform::Security::MemoryInit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2370,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2371,1
    - Dst: WeaveKeyExport::Init
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2374,1
    - Dst: WeaveKeyExport::SetAllowedConfigs
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2377,1
    - Dst: WeaveKeyExport::ProcessKeyExportRequest
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2380,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2380,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2380,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2383,1
    - Dst: SendKeyExportResponse
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2389,1
    - Dst: SendKeyExportResponse
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2393,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2395,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2399,1
    - Dst: SendStatusReport
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2403,1
    - Dst: WeaveKeyExport::Shutdown
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2406,1
    - Dst: Reset
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2409,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2421,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2422,1
    - Dst: WeaveKeyExport::GenerateKeyExportReconfigure
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2426,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2426,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2426,1
    - Dst: WeaveKeyExport::GenerateKeyExportResponse
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2428,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2428,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2428,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2431,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2434,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2444,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2446,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2450,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2512,1
    - Dst: NewContext
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2513,1
    - Dst: NewContext
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2518,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2520,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2546,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2547,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2550,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2550,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2553,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2556,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2559,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2562,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2565,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2568,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2571,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2576,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2579,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2600,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2601,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2604,1
    - Dst: Read8
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2605,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2606,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2607,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2610,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2614,1
    - Dst: nl::Weave::WeaveKeyId::IsSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2641,1
    - Dst: FindSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2644,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2650,1
    - Dst: WeaveSessionKey*::NextMsgId::GetValue
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2654,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2655,1
    - Dst: WeaveSessionKey*::IsSharedSession
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2659,1
    - Dst: GetSharedSessionEndNodeIds
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2661,1
    - Dst: RemoveSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2668,1
    - Dst: NotifyKeyFailed
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2682,1
    - Dst: OnKeyErrorMsgRcvd
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2688,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2692,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2695,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2706,1
    - Dst: NewContext
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2713,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2714,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2719,1
    - Dst: NewContext
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2721,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2722,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2728,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2744,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2747,1
    - Dst: nl::Weave::WeaveKeyId::IsAppGroupKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2747,1
    - Dst: NewContext
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2750,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2751,1
    - Dst: NewMsgCounterSyncExchange
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2782,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2783,1
    - Dst: ExchangeContext*::SendCommonNullMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2786,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2787,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2791,1
    - Dst: NewMsgCounterSyncExchange
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2820,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2821,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2824,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2825,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2828,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2828,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put32
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2831,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2831,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2834,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2837,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2842,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2845,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2863,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2863,1
    - Dst: nl::Weave::WeaveKeyId::IsAppGroupKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2863,1
    - Dst: OnMsgCounterSyncRespRcvd
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2866,1
    - Dst: nl::Weave::Encoding::LittleEndian::Get32
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2866,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2866,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2869,1
    - Dst: IsResponder
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2882,1
    - Dst: GetSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2918,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2919,1
    - Dst: CASEAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2927,1
    - Dst: CertType
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2927,1
    - Dst: GetSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2936,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2937,1
    - Dst: PASEAuthMode
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2940,1
    - Dst: UpdatePASERateLimiter
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2943,1
    - Dst: GetSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2953,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2954,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2963,1
    - Dst: SetSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2967,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2968,1
    - Dst: Reset
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2984,1
    - Dst: OnSessionEstablished
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2988,1
    - Dst: userOnComplete
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:2992,1
    - Dst: FindSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3001,1
    - Dst: WeaveSessionKey*::IsLocallyInitiated
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3002,1
    - Dst: ReleaseSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3004,1
    - Dst: AsyncNotifySecurityManagerAvailable
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3010,1
    - Dst: UpdatePASERateLimiter
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3035,1
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::parse
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3042,1
    - Dst: SendStatusReport
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3051,1
    - Dst: RemoveSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3054,1
    - Dst: Reset
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3057,1
    - Dst: OnSessionError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3061,1
    - Dst: userOnError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3065,1
    - Dst: AsyncNotifySecurityManagerAvailable
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3069,1
    - Dst: WeaveSecurityManager*::HandleKeyExportError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3083,1
    - Dst: WeaveSecurityManager*::HandleSessionError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3086,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3097,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3102,1
    - Dst: ExchangeContext*::IsConnectionClosed
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3102,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3110,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3193,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3202,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3203,1
    - Dst: Abort
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3213,1
    - Dst: nl::Weave::WeaveSecurityManager::Shutdown
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3223,1
    - Dst: nl::Weave::Platform::Security::MemoryFree
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3224,1
    - Dst: nl::Weave::WeaveSecurityManager::Shutdown
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3233,1
    - Dst: nl::Weave::Platform::Security::MemoryFree
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3234,1
    - Dst: nl::Weave::WeaveSecurityManager::Shutdown
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3243,1
    - Dst: nl::Weave::Platform::Security::MemoryFree
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3244,1
    - Dst: nl::Weave::WeaveSecurityManager::Shutdown
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3253,1
    - Dst: nl::Weave::Platform::Security::MemoryFree
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3254,1
    - Dst: nl::Weave::Platform::Security::MemoryShutdown
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3263,1
    - Dst: CancelSessionTimer
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3265,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3279,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3283,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3289,1
    - Dst: CancelTimer
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3290,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3295,1
    - Dst: reinterpret_cast<WeaveSecurityManager*>
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3297,1
    - Dst: WeaveSecurityManager*::HandleSessionError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3300,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3306,1
    - Dst: System::Layer*::StartTimer
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3309,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3312,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3313,1
    - Dst: System::Layer*::CancelTimer
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3321,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3322,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3323,1
    - Dst: ClearFlag
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3331,1
    - Dst: WeaveSecurityManager*::FabricState::RemoveIdleSessionKeys
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3333,1
    - Dst: WeaveSecurityManager*::StartIdleSessionTimer
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3337,1
    - Dst: HandleSessionComplete
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3354,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3363,1
    - Dst: WeaveSecurityManager*::HandleSessionComplete
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3369,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3375,1
    - Dst: WeaveSecurityManager*::HandleKeyExportError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3381,1
    - Dst: WeaveSecurityManager*::HandleSessionError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3386,1
    - Dst: ScheduleWork
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3394,1
    - Dst: WeaveSecurityManager*::ExchangeManager::NotifySecurityManagerAvailable
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3402,1
    - Dst: HandleSessionError
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3428,1
    - Dst: nl::Weave::WeaveKeyId::IsSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3460,1
    - Dst: FindSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3463,1
    - Dst: ReserveSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3465,1
    - Dst: nl::Weave::WeaveKeyId::IsSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3488,1
    - Dst: FindSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3491,1
    - Dst: ReleaseSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3493,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3506,1
    - Dst: WeaveSessionKey*::MarkRecentlyActive
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3508,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3509,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3521,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3525,1
    - Dst: WeaveSessionKey*::IsKeySet
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3530,1
    - Dst: WeaveSessionKey*::IsRemoveOnIdle
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3535,1
    - Dst: StartIdleSessionTimer
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3537,1
    - Dst: WeaveSessionKey*::MarkRecentlyActive
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3538,1
    - Dst: RemoveSessionKey
      Src: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp:3544,1
    CyclomaticComplexity: 275
    EdgeCount: 275
    ICount: 1573
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - msgBuf
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 3549
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 3549
    functionName: nl::Weave::WeaveSecurityManager::HandleUnsolicitedMessage
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveSecurityManager*::HandleTAKESessionStart
    - WeaveSessionKey*::NextMsgId::GetValue
    - nl::Weave::Platform::Security::MemoryInit
    - SendKeyExportRequest
    - WeaveSecurityManager*::HandleKeyErrorMsg
    - WeaveKeyExport::Shutdown
    - ProcessAuthenticateTokenResponseMessage
    - WeaveSecurityManager*::mKeyExport::ProcessKeyExportResponse
    - nl::Weave::Encoding::LittleEndian::Put32
    - WeaveSecurityManager*::ProcessPASEResponderStep2
    - AllocSessionKey
    - WeaveSecurityManager*::StartCASESession
    - IsCASEAuthMode
    - nl::Weave::System::PacketBuffer::New
    - OnKeyErrorMsgRcvd
    - GenerateIdentifyTokenMessage
    - HandleSessionComplete
    - Abort
    - VerifyOrExit
    - ExchangeContext*::IsConnectionClosed
    - ProcessReAuthenticateTokenResponseMessage
    - CASE::BeginSessionRequestContext::SetPerformKeyConfirm
    - WeaveSecurityManager*::SendPASEInitiatorStep2
    - WeaveSecurityManager*::ProcessTAKEAuthenticateToken
    - WeaveSecurityManager*::ProcessPASEResponderKeyConfirm
    - nl::Weave::Encoding::LittleEndian::Read16
    - WRMPFlushAcks
    - System::Layer*::CancelTimer
    - PacketBuffer*::SetDataLength
    - WeaveSecurityManager*::HandleKeyExportRequest
    - SendTAKEIdentifyToken
    - SendPASEResponderStep2
    - WeaveKeyExport::GenerateKeyExportResponse
    - CASE::BeginSessionRequestContext::SetIsInitiator
    - WeaveKeyExport::SetAllowedConfigs
    - WeaveSecurityManager*::mTAKEEngine::IsTimeLimitedIK
    - nl::Weave::WeaveSecurityManager::Init
    - WeaveSecurityManager*::ProcessPASEInitiatorStep2
    - nl::Weave::Encoding::LittleEndian::Write16
    - WeaveSecurityManager*::HandleSessionComplete
    - FindSharedSession
    - Read8
    - StartCASESession
    - nl::Weave::WeaveServerBase::SendStatusReport
    - WeaveSecurityManager*::SendTAKEAuthenticateToken
    - IsPASEAuthMode
    - WeaveSecurityManager*::SendTAKEReAuthenticateTokenResponse
    - WeaveSessionKey*::IsLocallyInitiated
    - ClearFlag
    - CASE::ReconfigureContext::Encode
    - FindSessionKey
    - ProcessBeginSessionRequest
    - WeaveSecurityManager*::HandlePASESessionStart
    - GenerateResponderReconfigure
    - WeaveSessionKey*::SetSharedSession
    - WeaveSecurityManager*::mTAKEEngine::IsEncryptCommPhase
    - ProcessPASEInitiatorStep1
    - WeaveSecurityManager*::mCASEEngine::ProcessReconfigure
    - IsEncryptAuthPhase
    - ExchangeContext*::SendCommonNullMessage
    - GenerateResponderStep1
    - VerifyOrDie
    - CASE::ReconfigureContext::Reset
    - WeaveSecurityManager*::ProcessTAKEReAuthenticateToken
    - ProcessResponderKeyConfirm
    - AddSharedSessionEndNode
    - WeaveSecurityManager*::FinishTAKESetUp
    - GenerateKeyExportRequest
    - WeaveSecurityManager*::HandleCASESessionStart
    - StartTimer
    - WeaveSecurityManager*::ProcessTAKEReAuthenticateTokenResponse
    - CreateTAKESecureSession
    - GetSharedSessionEndNodeIds
    - SendMessage
    - WeaveSecurityManager*::ProcessPASEResponderStep1
    - RemoveSessionKey
    - CASE::BeginSessionRequestContext::Reset
    - ProcessIdentifyTokenResponseMessage
    - WeaveLogError
    - ExchangeContext*::Close
    - WeaveSecurityManager*::HandleSessionEstablished
    - WeaveSecurityManager*::mCASEEngine::ProcessBeginSessionResponse
    - userOnComplete
    - nl::Weave::Platform::Security::MemoryFree
    - WeaveSecurityManager*::mCASEEngine::GenerateInitiatorKeyConfirm
    - UpdatePASERateLimiter
    - WeaveSecurityManager*::ProcessTAKEIdentifyTokenResponse
    - WeaveSessionKey*::IsRemoveOnIdle
    - SetFlag
    - ProcessResponderReconfigure
    - StartPASESession
    - HandleSessionEstablished
    - CASE::BeginSessionResponseContext::SetIsInitiator
    - PacketBuffer*::AvailableDataLength
    - WeaveSecurityManager*::SendPASEResponderKeyConfirm
    - WeaveSecurityManager*::NewSessionExchange
    - System::Layer*::StartTimer
    - SetUseKnownECDHKey
    - ProcessResponderStep1
    - nl::Weave::Platform::Security::OnTimeConsumingCryptoStart
    - NewMsgCounterSyncExchange
    - ExitNow
    - CertType
    - PacketBuffer*::Start
    - WeaveSecurityManager*::mKeyExport::SignMessages
    - GetSessionKey
    - PASEAuthMode
    - GetEncryptionType
    - WeaveSecurityManager*::CreateTAKESecureSession
    - WeaveSessionKey*::SetLocallyInitiated
    - GenerateResponderStep2
    - ProcessIdentifyTokenMessage
    - GenerateTokenReconfigureMessage
    - GenerateIdentifyTokenResponseMessage
    - OnMsgCounterSyncRespRcvd
    - nl::Weave::Platform::Security::OnTimeConsumingCryptoDone
    - WeaveSecurityManager*::SendPASEInitiatorStep1
    - ExchangeContext*::HasPeerRequestedAck
    - ExchangeContext*::Release
    - SetAlternateCurves
    - WeaveSecurityManager*::ProcessTAKETokenReconfigure
    - WeaveSecurityManager*::mStartKeyExport_OnComplete
    - WeaveSecurityManager*::SendTAKEAuthenticateTokenResponse
    - GenerateAuthenticateTokenResponseMessage
    - WeaveSecurityManager*::mKeyExport::KeyId
    - nl::Weave::Encoding::LittleEndian::Read32
    - SendPASEResponderStep1
    - SetAutoReleaseKey
    - ProcessInitiatorStep1
    - userOnError
    - GetFlag
    - AsyncNotifySecurityManagerAvailable
    - HandleKeyExportError
    - WeaveSecurityManager*::mCASEEngine::ProcessInitiatorKeyConfirm
    - WeaveSecurityManager*::mKeyExport::ProcessKeyExportReconfigure
    - reinterpret_cast<WeaveSecurityManager*>
    - SetSessionKey
    - WeaveSecurityManager*::ExchangeManager::NotifySecurityManagerAvailable
    - nl::Weave::System::PacketBuffer::Free
    - WeaveSecurityManager*::ProcessPASEResponderReconfigure
    - GenerateBeginSessionResponse
    - SendPASEResponderReconfigure
    - SetCertType
    - WeaveSecurityManager*::mTAKEEngine::IsEncryptAuthPhase
    - GenerateReAuthenticateTokenResponseMessage
    - WeaveSecurityManager*::mTAKEEngine::HasSentChallengerId
    - CASEAuthMode
    - onComplete
    - GenerateReAuthenticateTokenMessage
    - WeaveSecurityManager*::SendTAKEReAuthenticateToken
    - WeaveKeyExport::GenerateKeyExportReconfigure
    - GenerateInitiatorStep2
    - HandleSessionError
    - WeaveSecurityManager*::mCASEEngine::PerformingKeyConfirm
    - CASE::BeginSessionResponseContext::Reset
    - SendTAKETokenReconfigure
    - WeaveSecurityManager*::ProcessTAKEAuthenticateTokenResponse
    - WeaveSecurityManager*::AsyncNotifySecurityManagerAvailable
    - StartSessionTimer
    - SetAllowedConfigs
    - Reset
    - ReserveKey
    - StartTAKESession
    - GenerateBeginSessionRequest
    - PasswordSourceFromAuthMode
    - OnSessionError
    - WeaveSessionKey*::MarkRecentlyActive
    - SetResponderRequiresKeyConfirm
    - PacketBuffer*::DataLength
    - ProcessTokenReconfigureMessage
    - WeaveSecurityManager*::mEC::SendMessage
    - WeaveSecurityManager*::StartIdleSessionTimer
    - ExchangeContext*::AddRef
    - IsEncryptCommPhase
    - GenerateInitiatorStep1
    - CertTypeFromAuthMode
    - WEAVE_FAULT_INJECT
    - SendStatusReport
    - GenerateAuthenticateTokenMessage
    - WeaveSecurityManager*::mEC::WRMPFlushAcks
    - WeaveSecurityManager*::SendTAKEIdentifyToken
    - ProcessInitiatorStep2
    - NewSessionExchange
    - ProcessReAuthenticateTokenMessage
    - WeaveSecurityManager*::SendKeyExportRequest
    - GenerateResponderKeyConfirm
    - OnSessionEstablished
    - WeaveSessionKey*::IsKeySet
    - nl::Weave::Platform::Security::MemoryShutdown
    - WeaveSecurityManager*::HandleSessionError
    - SetAlternateConfigs
    - NotifyKeyFailed
    - nl::Weave::WeaveSecurityManager::Shutdown
    - StartIdleSessionTimer
    - NewContext
    - WeaveSecurityManager*::HandleKeyExportError
    - Write8
    - nl::Weave::Encoding::LittleEndian::Get32
    - SetAllowedCurves
    - nl::Weave::Profiles::StatusReporting::StatusReport::parse
    - WeaveSessionKey*::SetRemoveOnIdle
    - CASE::BeginSessionResponseContext::SetPerformKeyConfirm
    - nl::Weave::WeaveKeyId::IsSessionKey
    - WeaveLogDetail
    - CancelTimer
    - nl::Weave::Encoding::LittleEndian::Write32
    - UseSessionKey
    - Close
    - WeaveKeyExport::ProcessKeyExportRequest
    - WeaveSessionKey*::IsSharedSession
    - WeaveLogProgress
    - WeaveKeyExport::Init
    - WeaveSecurityManager*::Reset
    - nl::Weave::WeaveKeyId::IsAppGroupKey
    - ProcessAuthenticateTokenMessage
    - nl::Weave::Platform::Security::MemoryAlloc
    - ReserveSessionKey
    - SendKeyExportResponse
    - ScheduleWork
    - WeaveSecurityManager*::FabricState::RemoveIdleSessionKeys
    - ProcessResponderStep2
    - SendPASEInitiatorStep1
    - ExchangeContext*::SendMessage
    - IsResponder
    - CancelSessionTimer
    - SuccessOrExit
    - ReleaseSessionKey
    linkageType: ''
    returnType: void
    signature: "WeaveSecurityManager::HandleUnsolicitedMessage(ExchangeContext *ec,
      const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo,\n        uint32_t
      profileId, uint8_t msgType, PacketBuffer* msgBuf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aMessageLayer
    argTypes:
    - WeaveMessageLayer*
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: nl::Weave::Stats::SetObjects
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveStats.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetObjects(WeaveMessageLayer *aMessageLayer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Stats::UpdateSnapshot
      Src: /src/openweave-core/src/lib/core/WeaveStats.cpp:60,1
    - Dst: nl::Inet::InetLayer::UpdateSnapshot
      Src: /src/openweave-core/src/lib/core/WeaveStats.cpp:62,1
    - Dst: GetConnectionPoolStats
      Src: /src/openweave-core/src/lib/core/WeaveStats.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - aSnapshot
    argTypes:
    - nl::Weave::System::Stats::Snapshot
    constantsTouched: []
    func_position:
      end: 68
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 68
    functionName: nl::Weave::Stats::UpdateSnapshot
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveStats.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::InetLayer::UpdateSnapshot
    - nl::Weave::System::Stats::UpdateSnapshot
    - GetConnectionPoolStats
    linkageType: ''
    returnType: void
    signature: UpdateSnapshot(nl::Weave::System::Stats::Snapshot &aSnapshot)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::WeaveCircularTLVBuffer
      Src: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 135
    functionName: nl::Weave::TLV::WeaveCircularTLVBuffer
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.h
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::WeaveCircularTLVBuffer
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeaveCircularTLVBuffer
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: nl::Weave::TLV::CircularTLVReader
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: CircularTLVReader
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: nl::Weave::TLV::CircularTLVWriter
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: CircularTLVWriter
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:67,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:69,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:70,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:75,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:78,1
    - Dst: TLVTypeIsContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:80,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:84,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:85,1
    - Dst: nl::Weave::TLV::Utilities::Iterate
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:87,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:89,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:91,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:92,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:94,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - aReader
    - aDepth
    - aHandler
    - aContext
    - aRecurse
    argTypes:
    - TLVReader
    - size_t
    - IterateHandler
    - void*
    - bool
    constantsTouched: []
    func_position:
      end: 98
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 98
    functionName: nl::Weave::TLV::Utilities::Iterate
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp
    functionUses: 2
    functionsReached:
    - TLVTypeIsContainer
    - TLVReader::Next
    - TLVReader::GetType
    - TLVReader::EnterContainer
    - TLVReader::ExitContainer
    - nl::Weave::TLV::Utilities::Iterate
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Iterate(TLVReader &aReader, size_t aDepth, IterateHandler aHandler,
      void *aContext, bool aRecurse)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::Utilities::Iterate
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - aReader
    - aHandler
    - aContext
    argTypes:
    - TLVReader
    - IterateHandler
    - void*
    constantsTouched: []
    func_position:
      end: 127
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 127
    functionName: nl::Weave::TLV::Utilities::Iterate
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::TLV::Utilities::Iterate
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Iterate(const TLVReader &aReader, IterateHandler aHandler, void *aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:157,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:159,1
    - Dst: nl::Weave::TLV::Utilities::Iterate
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - aReader
    - aHandler
    - aContext
    - aRecurse
    argTypes:
    - TLVReader
    - IterateHandler
    - void*
    - bool
    constantsTouched: []
    func_position:
      end: 165
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 165
    functionName: nl::Weave::TLV::Utilities::Iterate
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp
    functionUses: 4
    functionsReached:
    - TLVReader::Init
    - nl::Weave::TLV::Utilities::Iterate
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Iterate(const TLVReader &aReader, IterateHandler aHandler, void *aContext,
      const bool aRecurse)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:185,1
    - Dst: static_cast<size_t *>
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - aReader
    - aDepth
    - aContext
    argTypes:
    - TLVReader
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 191
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 191
    functionName: nl::Weave::TLV::Utilities::CountHandler
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t *>
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CountHandler(const TLVReader &aReader, size_t aDepth, void *aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::Utilities::Count
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aReader
    - aCount
    argTypes:
    - TLVReader
    - size_t
    constantsTouched: []
    func_position:
      end: 215
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 215
    functionName: nl::Weave::TLV::Utilities::Count
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::Utilities::Count
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Count(const TLVReader &aReader, size_t &aCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::Utilities::Iterate
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - aReader
    - aCount
    - aRecurse
    argTypes:
    - TLVReader
    - size_t
    - bool
    constantsTouched: []
    func_position:
      end: 246
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 246
    functionName: nl::Weave::TLV::Utilities::Count
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::Utilities::Iterate
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Count(const TLVReader &aReader, size_t &aCount, const bool aRecurse)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const FindContext *>
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:265,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:268,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:270,1
    - Dst: FindContext*::mReader::Init
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - aReader
    - aDepth
    - aContext
    argTypes:
    - TLVReader
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 279
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 279
    functionName: nl::Weave::TLV::Utilities::FindHandler
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::GetTag
    - VerifyOrExit
    - static_cast<const FindContext *>
    - FindContext*::mReader::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: FindHandler(const TLVReader &aReader, size_t aDepth, void *aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::Utilities::Find
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - aReader
    - aTag
    - aResult
    argTypes:
    - TLVReader
    - uint64_t
    - TLVReader
    constantsTouched: []
    func_position:
      end: 304
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 304
    functionName: nl::Weave::TLV::Utilities::Find
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::Utilities::Find
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Find(const TLVReader &aReader, const uint64_t &aTag, TLVReader &aResult)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::Utilities::Iterate
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - aReader
    - aTag
    - aResult
    - aRecurse
    argTypes:
    - TLVReader
    - uint64_t
    - TLVReader
    - bool
    constantsTouched: []
    func_position:
      end: 338
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 338
    functionName: nl::Weave::TLV::Utilities::Find
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::Utilities::Iterate
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Find(const TLVReader &aReader, const uint64_t &aTag, TLVReader &aResult,
      const bool aRecurse)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - inReader
    - inHandler
    - inContext
    argTypes:
    - TLVReader
    - IterateHandler
    - void*
    constantsTouched: []
    func_position:
      end: 353
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 353
    functionName: nl::Weave::TLV::Utilities::FindPredicateContext::FindPredicateContext
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: FindPredicateContext::FindPredicateContext(TLVReader &inReader, IterateHandler
      inHandler, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<FindPredicateContext *>
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:357,1
    - Dst: FindPredicateContext*::mHandler
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:360,1
    - Dst: FindPredicateContext*::mResult::Init
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' aReader'
    - aDepth
    - aContext
    argTypes:
    - TLVReader
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 366
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 366
    functionName: nl::Weave::TLV::Utilities::FindPredicateHandler
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp
    functionUses: 0
    functionsReached:
    - FindPredicateContext*::mResult::Init
    - static_cast<FindPredicateContext *>
    - FindPredicateContext*::mHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: FindPredicateHandler(const TLVReader & aReader, size_t aDepth, void
      *aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::Utilities::Find
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - aReader
    - aPredicate
    - aContext
    - aResult
    argTypes:
    - TLVReader
    - IterateHandler
    - void*
    - TLVReader
    constantsTouched: []
    func_position:
      end: 399
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 399
    functionName: nl::Weave::TLV::Utilities::Find
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::TLV::Utilities::Find
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Find(const TLVReader &aReader, IterateHandler aPredicate, void *aContext,
      TLVReader &aResult)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::Utilities::Iterate
      Src: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - aReader
    - aPredicate
    - aContext
    - aResult
    - aRecurse
    argTypes:
    - TLVReader
    - IterateHandler
    - void*
    - TLVReader
    - bool
    constantsTouched: []
    func_position:
      end: 444
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 444
    functionName: nl::Weave::TLV::Utilities::Find
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::TLV::Utilities::Iterate
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Find(const TLVReader &aReader, IterateHandler aPredicate, void *aContext,
      TLVReader &aResult, const bool aRecurse)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/core/WeaveServerBase.cpp:71,1
    - Dst: WeaveServerDelegateBase*::EnforceAccessControl
      Src: /src/openweave-core/src/lib/core/WeaveServerBase.cpp:77,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/core/WeaveServerBase.cpp:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - ec
    - msgProfileId
    - msgType
    - msgInfo
    - delegate
    argTypes:
    - ExchangeContext*
    - uint32_t
    - uint8_t
    - WeaveMessageInfo*
    - WeaveServerDelegateBase*
    constantsTouched: []
    func_position:
      end: 105
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 105
    functionName: nl::Weave::WeaveServerBase::EnforceAccessControl
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveServerBase.cpp
    functionUses: 0
    functionsReached:
    - WeaveServerDelegateBase*::EnforceAccessControl
    - nl::Weave::WeaveServerBase::SendStatusReport
    linkageType: ''
    returnType: bool
    signature: "WeaveServerBase::EnforceAccessControl(ExchangeContext *ec, uint32_t
      msgProfileId, uint8_t msgType,\n        const WeaveMessageInfo *msgInfo, WeaveServerDelegateBase
      *delegate)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/core/WeaveServerBase.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ec
    - statusProfileId
    - statusCode
    - sysError
    argTypes:
    - ExchangeContext*
    - uint32_t
    - uint16_t
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: nl::Weave::WeaveServerBase::SendStatusReport
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveServerBase.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::WeaveServerBase::SendStatusReport
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveServerBase::SendStatusReport(ExchangeContext *ec, uint32_t statusProfileId,
      uint16_t statusCode, WEAVE_ERROR sysError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/core/WeaveServerBase.cpp:156,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/core/WeaveServerBase.cpp:157,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/core/WeaveServerBase.cpp:158,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/core/WeaveServerBase.cpp:160,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/core/WeaveServerBase.cpp:161,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/core/WeaveServerBase.cpp:162,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/core/WeaveServerBase.cpp:163,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/core/WeaveServerBase.cpp:170,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/core/WeaveServerBase.cpp:172,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveServerBase.cpp:173,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/core/WeaveServerBase.cpp:175,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/core/WeaveServerBase.cpp:175,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveServerBase.cpp:176,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/core/WeaveServerBase.cpp:178,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveServerBase.cpp:179,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/core/WeaveServerBase.cpp:181,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/core/WeaveServerBase.cpp:182,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/core/WeaveServerBase.cpp:185,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/core/WeaveServerBase.cpp:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 5
    argNames:
    - ec
    - statusProfileId
    - statusCode
    - sysError
    - sendFlags
    argTypes:
    - ExchangeContext*
    - uint32_t
    - uint16_t
    - WEAVE_ERROR
    - uint16_t
    constantsTouched: []
    func_position:
      end: 192
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 192
    functionName: nl::Weave::WeaveServerBase::SendStatusReport
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveServerBase.cpp
    functionUses: 3
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Encoding::LittleEndian::Write16
    - nl::Weave::System::PacketBuffer::Free
    - TLVWriter::Finalize
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - ProfileTag
    - ExchangeContext*::SendMessage
    - SuccessOrExit
    - TLVWriter::EndContainer
    - PacketBuffer*::Start
    - nl::Weave::Encoding::LittleEndian::Write32
    - TLVWriter::Init
    - TLVWriter::Put
    - VerifyOrDie
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveServerBase::SendStatusReport(ExchangeContext *ec, uint32_t statusProfileId,
      uint16_t statusCode, WEAVE_ERROR sysError, uint16_t sendFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ec
    - msgProfileId
    - msgType
    - msgInfo
    - ' result'
    argTypes:
    - ExchangeContext*
    - uint32_t
    - uint8_t
    - WeaveMessageInfo*
    - AccessControlResult
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: nl::Weave::WeaveServerDelegateBase::EnforceAccessControl
    functionSourceFile: /src/openweave-core/src/lib/core/WeaveServerBase.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "WeaveServerDelegateBase::EnforceAccessControl(ExchangeContext *ec,
      uint32_t msgProfileId, uint8_t msgType,\n        const WeaveMessageInfo *msgInfo,
      AccessControlResult& result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/lib/schema/common/EventIdStructSchema.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: Schema::Weave::Common::EventId::SetResourceIdNull
    functionSourceFile: /src/openweave-core/src/lib/schema/common/EventIdStructSchema.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: EventId::SetResourceIdNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/lib/schema/common/EventIdStructSchema.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: Schema::Weave::Common::EventId::SetResourceIdPresent
    functionSourceFile: /src/openweave-core/src/lib/schema/common/EventIdStructSchema.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: EventId::SetResourceIdPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/lib/schema/common/EventIdStructSchema.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: Schema::Weave::Common::EventId::IsResourceIdPresent
    functionSourceFile: /src/openweave-core/src/lib/schema/common/EventIdStructSchema.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: EventId::IsResourceIdPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/support/StatusReportStr.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - profileId
    - statusCode
    argTypes:
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: nl::StatusReportStr
    functionSourceFile: /src/openweave-core/src/lib/support/StatusReportStr.cpp
    functionUses: 7
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: '*StatusReportStr(uint32_t profileId, uint16_t statusCode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::FindStatusReportStr
      Src: /src/openweave-core/src/lib/support/StatusReportStr.cpp:356,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/support/StatusReportStr.cpp:363,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/support/StatusReportStr.cpp:370,1
    CyclomaticComplexity: 174
    EdgeCount: 174
    ICount: 511
    argCount: 2
    argNames:
    - profileId
    - statusCode
    argTypes:
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 375
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 375
    functionName: nl::StatusReportStr
    functionSourceFile: /src/openweave-core/src/lib/support/StatusReportStr.cpp
    functionUses: 7
    functionsReached:
    - snprintf
    - nl::FindStatusReportStr
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: '*StatusReportStr(uint32_t profileId, uint16_t statusCode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Weave::Support::FindProfileStringInfo
      Src: /src/openweave-core/src/lib/support/StatusReportStr.cpp:384,1
    - Dst: Weave::Support::ProfileStringInfo*::mStatusReportFormatStringFunct
      Src: /src/openweave-core/src/lib/support/StatusReportStr.cpp:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - inProfileId
    - inStatusCode
    argTypes:
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 392
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 392
    functionName: nl::FindStatusReportStr
    functionSourceFile: /src/openweave-core/src/lib/support/StatusReportStr.cpp
    functionUses: 1
    functionsReached:
    - Weave::Support::ProfileStringInfo*::mStatusReportFormatStringFunct
    - Weave::Support::FindProfileStringInfo
    linkageType: ''
    returnType: char
    signature: '*FindStatusReportStr(uint32_t inProfileId, uint16_t inStatusCode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 155
    functionName: nl::Weave::ASN1::ASN1Reader
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: ASN1Reader
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 195
    functionName: nl::Weave::ASN1::ASN1Writer
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: ASN1Writer
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: nl::secondsToMilliseconds
    functionSourceFile: /src/openweave-core/src/lib/support/TimeUtils.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: secondsToMilliseconds(uint32_t seconds)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: nl::Weave::Platform::RoundDown
    functionSourceFile: /src/openweave-core/src/lib/support/MathUtils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: RoundDown(uint32_t a, uint32_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::RoundDown
      Src: /src/openweave-core/src/lib/support/MathUtils.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: nl::Weave::Platform::RoundUp
    functionSourceFile: /src/openweave-core/src/lib/support/MathUtils.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Platform::RoundDown
    linkageType: ''
    returnType: uint32_t
    signature: RoundUp(uint32_t a, uint32_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::RoundUp
      Src: /src/openweave-core/src/lib/support/MathUtils.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aBits
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: nl::Weave::Platform::BitsToByteLength
    functionSourceFile: /src/openweave-core/src/lib/support/MathUtils.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Platform::RoundUp
    linkageType: ''
    returnType: uint32_t
    signature: BitsToByteLength(uint32_t aBits)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:68,1
    - Dst: nl::Weave::GetRandU32
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:68,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:69,1
    - Dst: nl::Weave::GetRandU32
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: nl::Weave::GetRandU64
    functionSourceFile: /src/openweave-core/src/lib/support/RandUtils.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::GetRandU32
    - static_cast<uint64_t>
    linkageType: ''
    returnType: uint64_t
    signature: GetRandU64()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:77,1
    - Dst: rand
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:77,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:79,1
    - Dst: nl::Weave::GetRandU16
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:79,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:80,1
    - Dst: nl::Weave::GetRandU16
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: nl::Weave::GetRandU32
    functionSourceFile: /src/openweave-core/src/lib/support/RandUtils.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint32_t>
    - rand
    - nl::Weave::GetRandU16
    linkageType: ''
    returnType: uint32_t
    signature: GetRandU32()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NORMALIZED_RAND_RANGE
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:87,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:89,1
    - Dst: rand
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:89,1
    - Dst: NORMALIZED_RAND_RANGE
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:95,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:96,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:100,1
    - Dst: nl::Weave::GetRandU8
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:100,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:101,1
    - Dst: nl::Weave::GetRandU8
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 103
    functionName: nl::Weave::GetRandU16
    functionSourceFile: /src/openweave-core/src/lib/support/RandUtils.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::GetRandU8
    - static_cast<uint16_t>
    - NORMALIZED_RAND_RANGE
    - rand
    linkageType: ''
    returnType: uint16_t
    signature: GetRandU16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NORMALIZED_RAND_RANGE
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:107,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:109,1
    - Dst: rand
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:109,1
    - Dst: NORMALIZED_RAND_RANGE
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:115,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/lib/support/RandUtils.cpp:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 119
    functionName: nl::Weave::GetRandU8
    functionSourceFile: /src/openweave-core/src/lib/support/RandUtils.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint8_t>
    - NORMALIZED_RAND_RANGE
    - rand
    linkageType: ''
    returnType: uint8_t
    signature: GetRandU8()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - maxLen
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: nl::Weave::ASN1::ASN1Writer::Init
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ASN1Writer::Init(uint8_t *buf, uint32_t maxLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: nl::Weave::ASN1::ASN1Writer::InitNullWriter
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ASN1Writer::InitNullWriter(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:96,1
    - Dst: memmove
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 114
    functionName: nl::Weave::ASN1::ASN1Writer::Finalize
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Writer::Finalize()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: nl::Weave::ASN1::ASN1Writer::GetLengthWritten
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: ASN1Writer::GetLengthWritten() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::BigEndian::Put64
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:126,1
    - Dst: nl::Weave::ASN1::ASN1Writer::PutValue
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:138,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 1
    argNames:
    - val
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 139
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 139
    functionName: nl::Weave::ASN1::ASN1Writer::PutInteger
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ASN1::ASN1Writer::PutValue
    - nl::Weave::Encoding::BigEndian::Put64
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Writer::PutInteger(int64_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:146,1
    - Dst: nl::Weave::ASN1::ASN1Writer::EncodeHead
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:148,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 155
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 155
    functionName: nl::Weave::ASN1::ASN1Writer::PutBoolean
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ASN1::ASN1Writer::EncodeHead
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Writer::PutBoolean(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ASN1::ASN1Writer::PutValue
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - valLen
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: nl::Weave::ASN1::ASN1Writer::PutObjectId
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ASN1::ASN1Writer::PutValue
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Writer::PutObjectId(const uint8_t *val, uint16_t valLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ASN1::ASN1Writer::PutValue
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tag
    - val
    - valLen
    argTypes:
    - uint32_t
    - char*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: nl::Weave::ASN1::ASN1Writer::PutString
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ASN1::ASN1Writer::PutValue
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Writer::PutString(uint32_t tag, const char *val, uint16_t valLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ASN1::ASN1Writer::PutValue
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - valLen
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: nl::Weave::ASN1::ASN1Writer::PutOctetString
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ASN1::ASN1Writer::PutValue
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Writer::PutOctetString(const uint8_t *val, uint16_t valLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ASN1::ASN1Writer::PutValue
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cls
    - tag
    - val
    - valLen
    argTypes:
    - uint8_t
    - uint32_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: nl::Weave::ASN1::ASN1Writer::PutOctetString
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ASN1::ASN1Writer::PutValue
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Writer::PutOctetString(uint8_t cls, uint32_t tag, const uint8_t
      *val, uint16_t valLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ASN1::ASN1Writer::PutValue
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cls
    - tag
    - ' val'
    argTypes:
    - uint8_t
    - uint32_t
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: nl::Weave::ASN1::ASN1Writer::PutOctetString
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ASN1::ASN1Writer::PutValue
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Writer::PutOctetString(uint8_t cls, uint32_t tag, nl::Weave::TLV::TLVReader&
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 191
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 191
    functionName: nl::Weave::ASN1::ReverseBits
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: ReverseBits(uint8_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 220
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 220
    functionName: nl::Weave::ASN1::HighestBit
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: HighestBit(uint32_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:228,1
    - Dst: nl::Weave::ASN1::ASN1Writer::EncodeHead
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:241,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:242,1
    - Dst: ReverseBits
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:248,1
    - Dst: ReverseBits
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:252,1
    - Dst: ReverseBits
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:256,1
    - Dst: ReverseBits
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:260,1
    - Dst: HighestBit
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:264,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 271
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 271
    functionName: nl::Weave::ASN1::ASN1Writer::PutBitString
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 0
    functionsReached:
    - ReverseBits
    - nl::Weave::ASN1::ASN1Writer::EncodeHead
    - HighestBit
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Writer::PutBitString(uint32_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:278,1
    - Dst: nl::Weave::ASN1::ASN1Writer::EncodeHead
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:280,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:281,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - unusedBitCount
    - encodedBits
    - encodedBitsLen
    argTypes:
    - uint8_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 290
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 290
    functionName: nl::Weave::ASN1::ASN1Writer::PutBitString
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ASN1::ASN1Writer::EncodeHead
    - memcpy
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Writer::PutBitString(uint8_t unusedBitCount, const uint8_t *encodedBits,
      uint16_t encodedBitsLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:298,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:300,1
    - Dst: nl::Weave::ASN1::ASN1Writer::EncodeHead
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:302,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:303,1
    - Dst: GetBytes
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - unusedBitCount
    - ' encodedBits'
    argTypes:
    - uint8_t
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 312
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 312
    functionName: nl::Weave::ASN1::ASN1Writer::PutBitString
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 0
    functionsReached:
    - GetLength
    - nl::Weave::ASN1::ASN1Writer::EncodeHead
    - VerifyOrExit
    - GetBytes
    - SuccessOrExit
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Writer::PutBitString(uint8_t unusedBitCount, nl::Weave::TLV::TLVReader&
      encodedBits)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - val
    - buf
    argTypes:
    - uint32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: nl::Weave::ASN1::itoa2
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: itoa2(uint32_t val, uint8_t *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: itoa2
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:325,1
    - Dst: itoa2
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:326,1
    - Dst: itoa2
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:327,1
    - Dst: itoa2
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:328,1
    - Dst: itoa2
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:329,1
    - Dst: itoa2
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:330,1
    - Dst: itoa2
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:331,1
    - Dst: nl::Weave::ASN1::ASN1Writer::PutValue
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:340,1
    - Dst: nl::Weave::ASN1::ASN1Writer::PutValue
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - ASN1UniversalTime
    constantsTouched: []
    func_position:
      end: 343
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 343
    functionName: nl::Weave::ASN1::ASN1Writer::PutTime
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ASN1::ASN1Writer::PutValue
    - itoa2
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Writer::PutTime(const ASN1UniversalTime& val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ASN1::ASN1Writer::EncodeHead
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 348
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 348
    functionName: nl::Weave::ASN1::ASN1Writer::PutNull
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ASN1::ASN1Writer::EncodeHead
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Writer::PutNull()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ASN1::ASN1Writer::EncodeHead
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cls
    - tag
    argTypes:
    - uint8_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 353
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 353
    functionName: nl::Weave::ASN1::ASN1Writer::StartConstructedType
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ASN1::ASN1Writer::EncodeHead
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Writer::StartConstructedType(uint8_t cls, uint32_t tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ASN1::ASN1Writer::WriteDeferredLength
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: nl::Weave::ASN1::ASN1Writer::EndConstructedType
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ASN1::ASN1Writer::WriteDeferredLength
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Writer::EndConstructedType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:365,1
    - Dst: nl::Weave::ASN1::ASN1Writer::EncodeHead
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:367,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - cls
    - tag
    - bitStringEncoding
    argTypes:
    - uint8_t
    - uint32_t
    - bool
    constantsTouched: []
    func_position:
      end: 382
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 382
    functionName: nl::Weave::ASN1::ASN1Writer::StartEncapsulatedType
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ASN1::ASN1Writer::EncodeHead
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Writer::StartEncapsulatedType(uint8_t cls, uint32_t tag, bool bitStringEncoding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ASN1::ASN1Writer::WriteDeferredLength
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 387
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 387
    functionName: nl::Weave::ASN1::ASN1Writer::EndEncapsulatedType
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ASN1::ASN1Writer::WriteDeferredLength
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Writer::EndEncapsulatedType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:394,1
    - Dst: nl::Weave::ASN1::ASN1Writer::EncodeHead
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:396,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:397,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - cls
    - tag
    - isConstructed
    - val
    - valLen
    argTypes:
    - uint8_t
    - uint32_t
    - bool
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 404
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 404
    functionName: nl::Weave::ASN1::ASN1Writer::PutValue
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 7
    functionsReached:
    - nl::Weave::ASN1::ASN1Writer::EncodeHead
    - memcpy
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Writer::PutValue(uint8_t cls, uint32_t tag, bool isConstructed,
      const uint8_t *val, uint16_t valLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:412,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:414,1
    - Dst: nl::Weave::ASN1::ASN1Writer::EncodeHead
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:416,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:417,1
    - Dst: GetBytes
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - cls
    - tag
    - isConstructed
    - ' val'
    argTypes:
    - uint8_t
    - uint32_t
    - bool
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 424
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 424
    functionName: nl::Weave::ASN1::ASN1Writer::PutValue
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 7
    functionsReached:
    - GetLength
    - nl::Weave::ASN1::ASN1Writer::EncodeHead
    - VerifyOrExit
    - GetBytes
    - SuccessOrExit
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Writer::PutValue(uint8_t cls, uint32_t tag, bool isConstructed,
      nl::Weave::TLV::TLVReader& val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:433,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:436,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:439,1
    - Dst: nl::Weave::ASN1::ASN1Writer::GetLengthOfLength
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:442,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:459,1
    - Dst: nl::Weave::ASN1::ASN1Writer::EncodeLength
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:466,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - cls
    - tag
    - isConstructed
    - len
    argTypes:
    - uint8_t
    - uint32_t
    - bool
    - int32_t
    constantsTouched: []
    func_position:
      end: 480
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 480
    functionName: nl::Weave::ASN1::ASN1Writer::EncodeHead
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 9
    functionsReached:
    - nl::Weave::ASN1::ASN1Writer::GetLengthOfLength
    - VerifyOrExit
    - nl::Weave::ASN1::ASN1Writer::EncodeLength
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Writer::EncodeHead(uint8_t cls, uint32_t tag, bool isConstructed,
      int32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:489,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:512,1
    - Dst: nl::Weave::ASN1::ASN1Writer::EncodeLength
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:519,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/ASN1Writer.cpp:521,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 534
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 534
    functionName: nl::Weave::ASN1::ASN1Writer::WriteDeferredLength
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 2
    functionsReached:
    - VerifyOrExit
    - ExitNow
    - nl::Weave::ASN1::ASN1Writer::EncodeLength
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Writer::WriteDeferredLength()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - len
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 549
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 549
    functionName: nl::Weave::ASN1::ASN1Writer::GetLengthOfLength
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: ASN1Writer::GetLengthOfLength(int32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - buf
    - lenOfLen
    - lenToEncode
    argTypes:
    - uint8_t*
    - uint8_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 565
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 565
    functionName: nl::Weave::ASN1::ASN1Writer::EncodeLength
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Writer.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ASN1Writer::EncodeLength(uint8_t *buf, uint8_t lenOfLen, int32_t lenToEncode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/support/ASN1OID.cpp:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - encodedOID
    - encodedOIDLen
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 52
    functionName: nl::Weave::ASN1::ParseObjectID
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1OID.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: ParseObjectID(const uint8_t *encodedOID, uint16_t encodedOIDLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - oid
    - ' encodedOID'
    - ' encodedOIDLen'
    argTypes:
    - OID
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: nl::Weave::ASN1::GetEncodedObjectID
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1OID.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: GetEncodedObjectID(OID oid, const uint8_t *& encodedOID, uint16_t&
      encodedOIDLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - oid
    argTypes:
    - OID
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: nl::Weave::ASN1::GetOIDCategory
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1OID.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OIDCategory
    signature: GetOIDCategory(OID oid)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - oid
    argTypes:
    - OID
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: nl::Weave::ASN1::GetOIDName
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1OID.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*GetOIDName(OID oid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseObjectID
      Src: /src/openweave-core/src/lib/support/ASN1OID.cpp:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: nl::Weave::ASN1::ASN1Reader::GetObjectId
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1OID.cpp
    functionUses: 0
    functionsReached:
    - ParseObjectID
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Reader::GetObjectId(OID& oid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetEncodedObjectID
      Src: /src/openweave-core/src/lib/support/ASN1OID.cpp:105,1
    - Dst: nl::Weave::ASN1::ASN1Writer::PutObjectId
      Src: /src/openweave-core/src/lib/support/ASN1OID.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - oid
    argTypes:
    - OID
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: nl::Weave::ASN1::ASN1Writer::PutObjectId
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1OID.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::ASN1::ASN1Writer::PutObjectId
    - GetEncodedObjectID
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Writer::PutObjectId(OID oid)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - inIndex
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 62
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 62
    functionName: nl::Weave::GetFibonacciForIndex
    functionSourceFile: /src/openweave-core/src/lib/support/FibonacciUtils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: GetFibonacciForIndex(uint32_t inIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 52
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 52
    functionName: nl::Base64ValToChar
    functionSourceFile: /src/openweave-core/src/lib/support/Base64.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: Base64ValToChar(uint8_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 72
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 72
    functionName: nl::Base64CharToVal
    functionSourceFile: /src/openweave-core/src/lib/support/Base64.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: Base64CharToVal(uint8_t c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 91
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 91
    functionName: nl::Base64URLValToChar
    functionSourceFile: /src/openweave-core/src/lib/support/Base64.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: Base64URLValToChar(uint8_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 111
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 111
    functionName: nl::Base64URLCharToVal
    functionSourceFile: /src/openweave-core/src/lib/support/Base64.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: Base64URLCharToVal(uint8_t c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: valToCharFunct
      Src: /src/openweave-core/src/lib/support/Base64.cpp:144,1
    - Dst: valToCharFunct
      Src: /src/openweave-core/src/lib/support/Base64.cpp:145,1
    - Dst: valToCharFunct
      Src: /src/openweave-core/src/lib/support/Base64.cpp:146,1
    - Dst: valToCharFunct
      Src: /src/openweave-core/src/lib/support/Base64.cpp:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 4
    argNames:
    - in
    - inLen
    - out
    - valToCharFunct
    argTypes:
    - uint8_t*
    - uint16_t
    - char*
    - Base64ValToCharFunct
    constantsTouched: []
    func_position:
      end: 151
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 151
    functionName: nl::Base64Encode
    functionSourceFile: /src/openweave-core/src/lib/support/Base64.cpp
    functionUses: 0
    functionsReached:
    - valToCharFunct
    linkageType: ''
    returnType: uint16_t
    signature: Base64Encode(const uint8_t *in, uint16_t inLen, char *out, Base64ValToCharFunct
      valToCharFunct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Base64Encode
      Src: /src/openweave-core/src/lib/support/Base64.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - inLen
    - out
    argTypes:
    - uint8_t*
    - uint16_t
    - char*
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: nl::Base64Encode
    functionSourceFile: /src/openweave-core/src/lib/support/Base64.cpp
    functionUses: 1
    functionsReached:
    - nl::Base64Encode
    linkageType: ''
    returnType: uint16_t
    signature: Base64Encode(const uint8_t *in, uint16_t inLen, char *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Base64Encode
      Src: /src/openweave-core/src/lib/support/Base64.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - inLen
    - out
    argTypes:
    - uint8_t*
    - uint16_t
    - char*
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: nl::Base64URLEncode
    functionSourceFile: /src/openweave-core/src/lib/support/Base64.cpp
    functionUses: 0
    functionsReached:
    - nl::Base64Encode
    linkageType: ''
    returnType: uint16_t
    signature: Base64URLEncode(const uint8_t *in, uint16_t inLen, char *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - in
    - inLen
    - out
    - valToCharFunct
    argTypes:
    - uint8_t*
    - uint32_t
    - char*
    - Base64ValToCharFunct
    constantsTouched: []
    func_position:
      end: 189
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 189
    functionName: nl::Base64Encode32
    functionSourceFile: /src/openweave-core/src/lib/support/Base64.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: Base64Encode32(const uint8_t *in, uint32_t inLen, char *out, Base64ValToCharFunct
      valToCharFunct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Base64Encode32
      Src: /src/openweave-core/src/lib/support/Base64.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - inLen
    - out
    argTypes:
    - uint8_t*
    - uint32_t
    - char*
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: nl::Base64Encode32
    functionSourceFile: /src/openweave-core/src/lib/support/Base64.cpp
    functionUses: 2
    functionsReached:
    - nl::Base64Encode32
    linkageType: ''
    returnType: uint32_t
    signature: Base64Encode32(const uint8_t *in, uint32_t inLen, char *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isgraph
      Src: /src/openweave-core/src/lib/support/Base64.cpp:201,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 29
    argCount: 4
    argNames:
    - in
    - inLen
    - out
    - charToValFunct
    argTypes:
    - char*
    - uint16_t
    - uint8_t*
    - Base64CharToValFunct
    constantsTouched: []
    func_position:
      end: 242
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 242
    functionName: nl::Base64Decode
    functionSourceFile: /src/openweave-core/src/lib/support/Base64.cpp
    functionUses: 3
    functionsReached:
    - isgraph
    linkageType: ''
    returnType: uint16_t
    signature: Base64Decode(const char *in, uint16_t inLen, uint8_t *out, Base64CharToValFunct
      charToValFunct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Base64Decode
      Src: /src/openweave-core/src/lib/support/Base64.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - inLen
    - out
    argTypes:
    - char*
    - uint16_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: nl::Base64Decode
    functionSourceFile: /src/openweave-core/src/lib/support/Base64.cpp
    functionUses: 4
    functionsReached:
    - nl::Base64Decode
    linkageType: ''
    returnType: uint16_t
    signature: Base64Decode(const char *in, uint16_t inLen, uint8_t *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Base64Decode
      Src: /src/openweave-core/src/lib/support/Base64.cpp:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - inLen
    - out
    argTypes:
    - char*
    - uint16_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: nl::Base64URLDecode
    functionSourceFile: /src/openweave-core/src/lib/support/Base64.cpp
    functionUses: 0
    functionsReached:
    - nl::Base64Decode
    linkageType: ''
    returnType: uint16_t
    signature: Base64URLDecode(const char *in, uint16_t inLen, uint8_t *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - in
    - inLen
    - out
    - charToValFunct
    argTypes:
    - char*
    - uint32_t
    - uint8_t*
    - Base64CharToValFunct
    constantsTouched: []
    func_position:
      end: 281
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 281
    functionName: nl::Base64Decode32
    functionSourceFile: /src/openweave-core/src/lib/support/Base64.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: Base64Decode32(const char *in, uint32_t inLen, uint8_t *out, Base64CharToValFunct
      charToValFunct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Base64Decode32
      Src: /src/openweave-core/src/lib/support/Base64.cpp:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - inLen
    - out
    argTypes:
    - char*
    - uint32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: nl::Base64Decode32
    functionSourceFile: /src/openweave-core/src/lib/support/Base64.cpp
    functionUses: 2
    functionsReached:
    - nl::Base64Decode32
    linkageType: ''
    returnType: uint32_t
    signature: Base64Decode32(const char *in, uint32_t inLen, uint8_t *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/openweave-core/src/lib/support/Base64.cpp:302,1
    - Dst: nl::Base64URLDecode
      Src: /src/openweave-core/src/lib/support/Base64.cpp:305,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/support/Base64.cpp:305,1
    - Dst: nl::Base64Decode
      Src: /src/openweave-core/src/lib/support/Base64.cpp:306,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/support/Base64.cpp:306,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/Base64.cpp:307,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/Base64.cpp:310,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/Base64.cpp:312,1
    - Dst: nl::Base64URLEncode
      Src: /src/openweave-core/src/lib/support/Base64.cpp:315,1
    - Dst: nl::Base64Encode
      Src: /src/openweave-core/src/lib/support/Base64.cpp:316,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/Base64.cpp:317,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/Base64.cpp:319,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/Base64.cpp:322,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/Base64.cpp:323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - test
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 324
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 324
    functionName: TestBase64
    functionSourceFile: /src/openweave-core/src/lib/support/Base64.cpp
    functionUses: 0
    functionsReached:
    - nl::Base64URLEncode
    - nl::Base64URLDecode
    - nl::Base64Decode
    - nl::Base64Encode
    - strlen
    - printf
    - strcpy
    linkageType: ''
    returnType: void
    signature: TestBase64(const char *test, bool base64URL=false)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestBase64
      Src: /src/openweave-core/src/lib/support/Base64.cpp:328,1
    - Dst: TestBase64
      Src: /src/openweave-core/src/lib/support/Base64.cpp:329,1
    - Dst: TestBase64
      Src: /src/openweave-core/src/lib/support/Base64.cpp:330,1
    - Dst: TestBase64
      Src: /src/openweave-core/src/lib/support/Base64.cpp:331,1
    - Dst: TestBase64
      Src: /src/openweave-core/src/lib/support/Base64.cpp:332,1
    - Dst: TestBase64
      Src: /src/openweave-core/src/lib/support/Base64.cpp:333,1
    - Dst: TestBase64
      Src: /src/openweave-core/src/lib/support/Base64.cpp:334,1
    - Dst: TestBase64
      Src: /src/openweave-core/src/lib/support/Base64.cpp:335,1
    - Dst: TestBase64
      Src: /src/openweave-core/src/lib/support/Base64.cpp:337,1
    - Dst: TestBase64
      Src: /src/openweave-core/src/lib/support/Base64.cpp:338,1
    - Dst: TestBase64
      Src: /src/openweave-core/src/lib/support/Base64.cpp:339,1
    - Dst: TestBase64
      Src: /src/openweave-core/src/lib/support/Base64.cpp:340,1
    - Dst: TestBase64
      Src: /src/openweave-core/src/lib/support/Base64.cpp:342,1
    - Dst: TestBase64
      Src: /src/openweave-core/src/lib/support/Base64.cpp:345,1
    - Dst: TestBase64
      Src: /src/openweave-core/src/lib/support/Base64.cpp:346,1
    - Dst: TestBase64
      Src: /src/openweave-core/src/lib/support/Base64.cpp:347,1
    - Dst: TestBase64
      Src: /src/openweave-core/src/lib/support/Base64.cpp:348,1
    - Dst: TestBase64
      Src: /src/openweave-core/src/lib/support/Base64.cpp:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 350
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 350
    functionName: main
    functionSourceFile: /src/openweave-core/src/lib/support/Base64.cpp
    functionUses: 0
    functionsReached:
    - TestBase64
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: nl::IsNullable
    functionSourceFile: /src/openweave-core/src/lib/support/SerializationUtils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsNullable(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<SerializedFieldType>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: nl::GetType
    functionSourceFile: /src/openweave-core/src/lib/support/SerializationUtils.h
    functionUses: 0
    functionsReached:
    - static_cast<SerializedFieldType>
    linkageType: ''
    returnType: SerializedFieldType
    signature: GetType(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inDividend
    - inDivisor
    argTypes:
    - int64_t
    - int64_t
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: nl::Weave::Platform::Divide
    functionSourceFile: /src/openweave-core/src/lib/support/MathUtils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: Divide(int64_t inDividend, int64_t inDivisor)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inDividend
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: nl::Weave::Platform::DivideBy1000
    functionSourceFile: /src/openweave-core/src/lib/support/MathUtils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: DivideBy1000(uint64_t inDividend)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetNumFaults
      Src: /src/openweave-core/src/lib/support/WeaveFaultInjection.cpp:94,1
    - Dst: Init
      Src: /src/openweave-core/src/lib/support/WeaveFaultInjection.cpp:96,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/WeaveFaultInjection.cpp:100,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/lib/support/WeaveFaultInjection.cpp:103,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/WeaveFaultInjection.cpp:105,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/lib/support/WeaveFaultInjection.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 112
    functionName: nl::Weave::FaultInjection::GetManager
    functionSourceFile: /src/openweave-core/src/lib/support/WeaveFaultInjection.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    - memset
    - Init
    - GetNumFaults
    linkageType: ''
    returnType: nl::FaultInjection::Manager
    signature: '&GetManager(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - arg
    argTypes:
    - uint8_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 139
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 139
    functionName: nl::Weave::FaultInjection::FuzzExchangeHeader
    functionSourceFile: /src/openweave-core/src/lib/support/WeaveFaultInjection.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: FuzzExchangeHeader(uint8_t *p, int32_t arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ASN1::ASN1Reader::ResetElementState
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: nl::Weave::ASN1::ASN1Reader::Init
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Reader.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ASN1::ASN1Reader::ResetElementState
    linkageType: ''
    returnType: void
    signature: ASN1Reader::Init(const uint8_t *buf, uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ASN1::ASN1Reader::ResetElementState
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:60,1
    - Dst: nl::Weave::ASN1::ASN1Reader::DecodeHead
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 66
    functionName: nl::Weave::ASN1::ASN1Reader::Next
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Reader.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ASN1::ASN1Reader::DecodeHead
    - nl::Weave::ASN1::ASN1Reader::ResetElementState
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Reader::Next()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ASN1::ASN1Reader::EnterContainer
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: nl::Weave::ASN1::ASN1Reader::EnterConstructedType
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Reader.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ASN1::ASN1Reader::EnterContainer
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Reader::EnterConstructedType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ASN1::ASN1Reader::ExitContainer
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: nl::Weave::ASN1::ASN1Reader::ExitConstructedType
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Reader.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ASN1::ASN1Reader::ExitContainer
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Reader::ExitConstructedType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ASN1::ASN1Reader::EnterContainer
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: nl::Weave::ASN1::ASN1Reader::EnterEncapsulatedType
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Reader.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ASN1::ASN1Reader::EnterContainer
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Reader::EnterEncapsulatedType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ASN1::ASN1Reader::ExitContainer
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: nl::Weave::ASN1::ASN1Reader::ExitEncapsulatedType
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Reader.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::ASN1::ASN1Reader::ExitContainer
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Reader::ExitEncapsulatedType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ASN1::ASN1Reader::ResetElementState
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - offset
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 116
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 116
    functionName: nl::Weave::ASN1::ASN1Reader::EnterContainer
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Reader.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::ASN1::ASN1Reader::ResetElementState
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Reader::EnterContainer(uint32_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ASN1::ASN1Reader::ResetElementState
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 138
    functionName: nl::Weave::ASN1::ASN1Reader::ExitContainer
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Reader.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::ASN1::ASN1Reader::ResetElementState
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Reader::ExitContainer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: nl::Weave::ASN1::ASN1Reader::IsContained
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Reader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ASN1Reader::IsContained() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 160
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 160
    functionName: nl::Weave::ASN1::ASN1Reader::GetInteger
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Reader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Reader::GetInteger(int64_t& val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 177
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 177
    functionName: nl::Weave::ASN1::ASN1Reader::GetBoolean
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Reader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Reader::GetBoolean(bool& val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:194,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - ' outTime'
    argTypes:
    - ASN1UniversalTime
    constantsTouched: []
    func_position:
      end: 216
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 216
    functionName: nl::Weave::ASN1::ASN1Reader::GetUTCTime
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Reader.cpp
    functionUses: 0
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Reader::GetUTCTime(ASN1UniversalTime& outTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:233,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ' outTime'
    argTypes:
    - ASN1UniversalTime
    constantsTouched: []
    func_position:
      end: 252
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 252
    functionName: nl::Weave::ASN1::ASN1Reader::GetGeneralizedTime
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Reader.cpp
    functionUses: 0
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Reader::GetGeneralizedTime(ASN1UniversalTime& outTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 263
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 263
    functionName: nl::Weave::ASN1::ReverseBits
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Reader.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: ReverseBits(uint8_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReverseBits
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:282,1
    - Dst: ReverseBits
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:285,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - ' outVal'
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 289
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 289
    functionName: nl::Weave::ASN1::ASN1Reader::GetBitString
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Reader.cpp
    functionUses: 0
    functionsReached:
    - ReverseBits
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Reader::GetBitString(uint32_t& outVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 355
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 355
    functionName: nl::Weave::ASN1::ASN1Reader::DecodeHead
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Reader.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ASN1_ERROR
    signature: ASN1Reader::DecodeHead()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 367
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 367
    functionName: nl::Weave::ASN1::ASN1Reader::ResetElementState
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Reader.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ASN1Reader::ResetElementState()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Next
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:379,1
    - Dst: IsContained
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:384,1
    - Dst: ExitConstructedType
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:386,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:389,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:398,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:402,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:404,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:406,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:410,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:411,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:412,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:413,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:414,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:415,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:416,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:417,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:418,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:419,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:420,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:421,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:429,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:431,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:432,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:435,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:437,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:439,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:442,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:445,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:447,1
    - Dst: EnterConstructedType
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:451,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/ASN1Reader.cpp:454,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 104
    argCount: 3
    argNames:
    - ' asn1Parser'
    - prefix
    - indent
    argTypes:
    - ASN1Reader
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 462
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 462
    functionName: nl::Weave::ASN1::DumpASN1
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Reader.cpp
    functionUses: 0
    functionsReached:
    - EnterConstructedType
    - IsContained
    - printf
    - ExitConstructedType
    - Next
    linkageType: ''
    returnType: ASN1_ERROR
    signature: DumpASN1(ASN1Reader& asn1Parser, const char *prefix, const char *indent)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - _T
    - _T
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: nl::Weave::min
    functionSourceFile: /src/openweave-core/src/lib/support/CodeUtils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: _T
    signature: '&

      min(const _T &a, const _T &b)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - _T
    - _T
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: nl::Weave::max
    functionSourceFile: /src/openweave-core/src/lib/support/CodeUtils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _T
    signature: '&

      max(const _T &a, const _T &b)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/support/CodeUtils.h:291,1
    - Dst: abort
      Src: /src/openweave-core/src/lib/support/CodeUtils.h:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 298
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 298
    functionName: WeaveDie
    functionSourceFile: /src/openweave-core/src/lib/support/CodeUtils.h
    functionUses: 6
    functionsReached:
    - WeaveLogError
    - abort
    linkageType: ''
    returnType: void
    signature: WeaveDie(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IsLeapYear
      Src: /src/openweave-core/src/lib/support/TimeUtils.cpp:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - year
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: nl::DaysToMarch1
    functionSourceFile: /src/openweave-core/src/lib/support/TimeUtils.cpp
    functionUses: 0
    functionsReached:
    - nl::IsLeapYear
    linkageType: ''
    returnType: uint8_t
    signature: DaysToMarch1(uint16_t year)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - month
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: nl::MarchBasedMonthToDayOfYear
    functionSourceFile: /src/openweave-core/src/lib/support/TimeUtils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: MarchBasedMonthToDayOfYear(uint8_t month)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dayOfYear
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: nl::MarchBasedDayOfYearToMonth
    functionSourceFile: /src/openweave-core/src/lib/support/TimeUtils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: MarchBasedDayOfYearToMonth(uint16_t dayOfYear)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - year
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: nl::IsLeapYear
    functionSourceFile: /src/openweave-core/src/lib/support/TimeUtils.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsLeapYear(uint16_t year)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::IsLeapYear
      Src: /src/openweave-core/src/lib/support/TimeUtils.cpp:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - year
    - month
    argTypes:
    - uint16_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 117
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 117
    functionName: nl::DaysInMonth
    functionSourceFile: /src/openweave-core/src/lib/support/TimeUtils.cpp
    functionUses: 0
    functionsReached:
    - nl::IsLeapYear
    linkageType: ''
    returnType: uint8_t
    signature: DaysInMonth(uint16_t year, uint8_t month)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - year
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: nl::FirstWeekdayOfYear
    functionSourceFile: /src/openweave-core/src/lib/support/TimeUtils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: FirstWeekdayOfYear(uint16_t year)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::MarchBasedDayOfYearToMonth
      Src: /src/openweave-core/src/lib/support/TimeUtils.cpp:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - year
    - dayOfYear
    - ' month'
    - ' dayOfMonth'
    argTypes:
    - uint16_t
    - uint16_t
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 183
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 183
    functionName: nl::OrdinalDateToCalendarDate
    functionSourceFile: /src/openweave-core/src/lib/support/TimeUtils.cpp
    functionUses: 0
    functionsReached:
    - nl::MarchBasedDayOfYearToMonth
    linkageType: ''
    returnType: void
    signature: OrdinalDateToCalendarDate(uint16_t year, uint16_t dayOfYear, uint8_t&
      month, uint8_t& dayOfMonth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::MarchBasedMonthToDayOfYear
      Src: /src/openweave-core/src/lib/support/TimeUtils.cpp:210,1
    - Dst: nl::DaysToMarch1
      Src: /src/openweave-core/src/lib/support/TimeUtils.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - year
    - month
    - dayOfMonth
    - ' dayOfYear'
    argTypes:
    - uint16_t
    - uint8_t
    - uint8_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 220
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 220
    functionName: nl::CalendarDateToOrdinalDate
    functionSourceFile: /src/openweave-core/src/lib/support/TimeUtils.cpp
    functionUses: 0
    functionsReached:
    - nl::MarchBasedMonthToDayOfYear
    - nl::DaysToMarch1
    linkageType: ''
    returnType: void
    signature: CalendarDateToOrdinalDate(uint16_t year, uint8_t month, uint8_t dayOfMonth,
      uint16_t& dayOfYear)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - year
    - month
    - dayOfMonth
    - ' daysSinceEpoch'
    argTypes:
    - uint16_t
    - uint8_t
    - uint8_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 287
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 287
    functionName: nl::CalendarDateToDaysSinceEpoch
    functionSourceFile: /src/openweave-core/src/lib/support/TimeUtils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: CalendarDateToDaysSinceEpoch(uint16_t year, uint8_t month, uint8_t
      dayOfMonth, uint32_t& daysSinceEpoch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::MarchBasedDayOfYearToMonth
      Src: /src/openweave-core/src/lib/support/TimeUtils.cpp:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - daysSinceEpoch
    - ' year'
    - ' month'
    - ' dayOfMonth'
    argTypes:
    - uint32_t
    - uint16_t
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 343
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 343
    functionName: nl::DaysSinceEpochToCalendarDate
    functionSourceFile: /src/openweave-core/src/lib/support/TimeUtils.cpp
    functionUses: 0
    functionsReached:
    - nl::MarchBasedDayOfYearToMonth
    linkageType: ''
    returnType: void
    signature: DaysSinceEpochToCalendarDate(uint32_t daysSinceEpoch, uint16_t& year,
      uint8_t& month, uint8_t& dayOfMonth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::CalendarDateToDaysSinceEpoch
      Src: /src/openweave-core/src/lib/support/TimeUtils.cpp:370,1
    - Dst: nl::DaysSinceEpochToCalendarDate
      Src: /src/openweave-core/src/lib/support/TimeUtils.cpp:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' year'
    - ' month'
    - ' dayOfMonth'
    - relativeDays
    argTypes:
    - uint16_t
    - uint8_t
    - uint8_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 373
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 373
    functionName: nl::AdjustCalendarDate
    functionSourceFile: /src/openweave-core/src/lib/support/TimeUtils.cpp
    functionUses: 0
    functionsReached:
    - nl::DaysSinceEpochToCalendarDate
    - nl::CalendarDateToDaysSinceEpoch
    linkageType: ''
    returnType: void
    signature: AdjustCalendarDate(uint16_t& year, uint8_t& month, uint8_t& dayOfMonth,
      int32_t relativeDays)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::CalendarDateToDaysSinceEpoch
      Src: /src/openweave-core/src/lib/support/TimeUtils.cpp:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - year
    - month
    - dayOfMonth
    - hour
    - minute
    - second
    - ' secondsSinceEpoch'
    argTypes:
    - uint16_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 434
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 434
    functionName: nl::CalendarTimeToSecondsSinceEpoch
    functionSourceFile: /src/openweave-core/src/lib/support/TimeUtils.cpp
    functionUses: 0
    functionsReached:
    - nl::CalendarDateToDaysSinceEpoch
    linkageType: ''
    returnType: bool
    signature: "CalendarTimeToSecondsSinceEpoch(uint16_t year, uint8_t month, uint8_t
      dayOfMonth,\n                                     uint8_t hour, uint8_t minute,
      uint8_t second,\n                                     uint32_t& secondsSinceEpoch)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::DaysSinceEpochToCalendarDate
      Src: /src/openweave-core/src/lib/support/TimeUtils.cpp:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 7
    argNames:
    - secondsSinceEpoch
    - ' year'
    - ' month'
    - ' dayOfMonth'
    - ' hour'
    - ' minute'
    - ' second'
    argTypes:
    - uint32_t
    - uint16_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 488
      start: 474
    functionDepth: 2
    functionLinenumber: 474
    functionLinenumberEnd: 488
    functionName: nl::SecondsSinceEpochToCalendarTime
    functionSourceFile: /src/openweave-core/src/lib/support/TimeUtils.cpp
    functionUses: 0
    functionsReached:
    - nl::DaysSinceEpochToCalendarDate
    linkageType: ''
    returnType: void
    signature: "SecondsSinceEpochToCalendarTime(uint32_t secondsSinceEpoch,\n                                     uint16_t&
      year, uint8_t& month, uint8_t& dayOfMonth,\n                                     uint8_t&
      hour, uint8_t& minute, uint8_t& second)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - vendorId
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: nl::Weave::GetVendorName
    functionSourceFile: /src/openweave-core/src/lib/support/WeaveNames.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*GetVendorName(uint16_t vendorId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Support::FindProfileStringInfo
      Src: /src/openweave-core/src/lib/support/WeaveNames.cpp:75,1
    - Dst: Support::ProfileStringInfo*::mProfileNameFunct
      Src: /src/openweave-core/src/lib/support/WeaveNames.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - inProfileId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 83
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 83
    functionName: nl::Weave::FindProfileName
    functionSourceFile: /src/openweave-core/src/lib/support/WeaveNames.cpp
    functionUses: 0
    functionsReached:
    - Support::ProfileStringInfo*::mProfileNameFunct
    - Support::FindProfileStringInfo
    linkageType: ''
    returnType: char
    signature: '*FindProfileName(uint32_t inProfileId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Support::FindProfileStringInfo
      Src: /src/openweave-core/src/lib/support/WeaveNames.cpp:90,1
    - Dst: Support::ProfileStringInfo*::mMessageNameFunct
      Src: /src/openweave-core/src/lib/support/WeaveNames.cpp:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - inProfileId
    - inMsgType
    argTypes:
    - uint32_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 98
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 98
    functionName: nl::Weave::FindMessageName
    functionSourceFile: /src/openweave-core/src/lib/support/WeaveNames.cpp
    functionUses: 0
    functionsReached:
    - Support::ProfileStringInfo*::mMessageNameFunct
    - Support::FindProfileStringInfo
    linkageType: ''
    returnType: char
    signature: '*FindMessageName(uint32_t inProfileId, uint8_t inMsgType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::FindProfileName
      Src: /src/openweave-core/src/lib/support/WeaveNames.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 67
    argCount: 1
    argNames:
    - profileId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 142
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 142
    functionName: nl::Weave::GetProfileName
    functionSourceFile: /src/openweave-core/src/lib/support/WeaveNames.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::FindProfileName
    linkageType: ''
    returnType: char
    signature: '*GetProfileName(uint32_t profileId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::FindMessageName
      Src: /src/openweave-core/src/lib/support/WeaveNames.cpp:333,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 293
    argCount: 2
    argNames:
    - profileId
    - msgType
    argTypes:
    - uint32_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 336
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 336
    functionName: nl::Weave::GetMessageName
    functionSourceFile: /src/openweave-core/src/lib/support/WeaveNames.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::FindMessageName
    linkageType: ''
    returnType: char
    signature: '*GetMessageName(uint32_t profileId, uint8_t msgType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ErrorFormatter*::FormatError
      Src: /src/openweave-core/src/lib/support/ErrorStr.cpp:83,1
    - Dst: nl::FormatError
      Src: /src/openweave-core/src/lib/support/ErrorStr.cpp:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - err
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 92
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 92
    functionName: nl::ErrorStr
    functionSourceFile: /src/openweave-core/src/lib/support/ErrorStr.cpp
    functionUses: 54
    functionsReached:
    - ErrorFormatter*::FormatError
    - nl::FormatError
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: '* ErrorStr(int32_t err)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - errFormatter
    argTypes:
    - ErrorFormatter*
    constantsTouched: []
    func_position:
      end: 120
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 120
    functionName: nl::RegisterErrorFormatter
    functionSourceFile: /src/openweave-core/src/lib/support/ErrorStr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: RegisterErrorFormatter(ErrorFormatter * errFormatter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/support/ErrorStr.cpp:144,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/support/ErrorStr.cpp:148,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/support/ErrorStr.cpp:157,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/support/ErrorStr.cpp:160,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/support/ErrorStr.cpp:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - buf
    - bufSize
    - subsys
    - err
    - desc
    argTypes:
    - char*
    - uint16_t
    - char*
    - int32_t
    - char*
    constantsTouched: []
    func_position:
      end: 168
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 168
    functionName: nl::FormatError
    functionSourceFile: /src/openweave-core/src/lib/support/ErrorStr.cpp
    functionUses: 6
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: FormatError(char * buf, uint16_t bufSize, const char * subsys, int32_t
      err, const char * desc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: nl::Weave::MonotonicallyIncreasingCounter::MonotonicallyIncreasingCounter
    functionSourceFile: /src/openweave-core/src/lib/support/WeaveCounter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MonotonicallyIncreasingCounter::MonotonicallyIncreasingCounter(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: MonotonicallyIncreasingCounter::~MonotonicallyIncreasingCounter(void)
    functionSourceFile: /src/openweave-core/src/lib/support/WeaveCounter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MonotonicallyIncreasingCounter::~MonotonicallyIncreasingCounter(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aStartValue
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: nl::Weave::MonotonicallyIncreasingCounter::Init
    functionSourceFile: /src/openweave-core/src/lib/support/WeaveCounter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MonotonicallyIncreasingCounter::Init(uint32_t aStartValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: nl::Weave::MonotonicallyIncreasingCounter::Advance
    functionSourceFile: /src/openweave-core/src/lib/support/WeaveCounter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MonotonicallyIncreasingCounter::Advance(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: nl::Weave::MonotonicallyIncreasingCounter::GetValue
    functionSourceFile: /src/openweave-core/src/lib/support/WeaveCounter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: MonotonicallyIncreasingCounter::GetValue(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isascii
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:70,1
    - Dst: isgraph
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: nl::ArgParser::IsShortOptionChar
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached:
    - isgraph
    - isascii
    linkageType: ''
    returnType: bool
    signature: IsShortOptionChar(int ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:286,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:294,1
    - Dst: nl::ArgParser::SanityCheckOptions
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:302,1
    - Dst: nl::ArgParser::MakeShortOptions
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:307,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:310,1
    - Dst: nl::ArgParser::MakeLongOptions
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:315,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:318,1
    - Dst: getopt_long
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:334,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:346,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:348,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:358,1
    - Dst: nl::ArgParser::FindOptionByIndex
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:367,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:370,1
    - Dst: nl::ArgParser::FindOptionById
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:377,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:381,1
    - Dst: OptionSet*::OptionHandler
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:390,1
    - Dst: nonOptArgHandler
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:398,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:405,1
    - Dst: free
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:414,1
    - Dst: free
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:416,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 79
    argCount: 6
    argNames:
    - progName
    - argc
    - argv
    - optSets
    - nonOptArgHandler
    - ignoreUnknown
    argTypes:
    - char*
    - int
    - char*[]
    - OptionSet*[]
    - NonOptionArgHandlerFunct
    - bool
    constantsTouched: []
    func_position:
      end: 421
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 421
    functionName: nl::ArgParser::ParseArgs
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached:
    - nl::ArgParser::FindOptionByIndex
    - nonOptArgHandler
    - getopt_long
    - nl::ArgParser::MakeShortOptions
    - nl::ArgParser::SanityCheckOptions
    - nl::ArgParser::MakeLongOptions
    - nl::ArgParser::FindOptionById
    - OptionSet*::OptionHandler
    - PrintArgError
    - free
    - snprintf
    linkageType: ''
    returnType: bool
    signature: ParseArgs(const char *progName, int argc, char *argv[], OptionSet *optSets[],
      NonOptionArgHandlerFunct nonOptArgHandler, bool ignoreUnknown)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ArgParser::ParseArgs
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - progName
    - argc
    - argv
    - optSets
    - nonOptArgHandler
    argTypes:
    - char*
    - int
    - char*[]
    - OptionSet*[]
    - NonOptionArgHandlerFunct
    constantsTouched: []
    func_position:
      end: 426
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 426
    functionName: nl::ArgParser::ParseArgs
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 1
    functionsReached:
    - nl::ArgParser::ParseArgs
    linkageType: ''
    returnType: bool
    signature: ParseArgs(const char *progName, int argc, char *argv[], OptionSet *optSets[],
      NonOptionArgHandlerFunct nonOptArgHandler)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ArgParser::ParseArgs
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - progName
    - argc
    - argv
    - optSets
    argTypes:
    - char*
    - int
    - char*[]
    - OptionSet*[]
    constantsTouched: []
    func_position:
      end: 431
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 431
    functionName: nl::ArgParser::ParseArgs
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 2
    functionsReached:
    - nl::ArgParser::ParseArgs
    linkageType: ''
    returnType: bool
    signature: ParseArgs(const char *progName, int argc, char *argv[], OptionSet *optSets[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:484,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:487,1
    - Dst: nl::ArgParser::SplitArgs
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:491,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:494,1
    - Dst: free
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:495,1
    - Dst: nl::ArgParser::ParseArgs
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:499,1
    - Dst: free
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:501,1
    - Dst: free
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - progName
    - argStr
    - optSets
    - nonOptArgHandler
    - ignoreUnknown
    argTypes:
    - char*
    - char*
    - OptionSet*[]
    - NonOptionArgHandlerFunct
    - bool
    constantsTouched: []
    func_position:
      end: 505
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 505
    functionName: nl::ArgParser::ParseArgsFromString
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached:
    - nl::ArgParser::ParseArgs
    - strdup
    - free
    - PrintArgError
    - nl::ArgParser::SplitArgs
    linkageType: ''
    returnType: bool
    signature: ParseArgsFromString(const char *progName, const char *argStr, OptionSet
      *optSets[], NonOptionArgHandlerFunct nonOptArgHandler, bool ignoreUnknown)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ArgParser::ParseArgsFromString
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - progName
    - argStr
    - optSets
    - nonOptArgHandler
    argTypes:
    - char*
    - char*
    - OptionSet*[]
    - NonOptionArgHandlerFunct
    constantsTouched: []
    func_position:
      end: 510
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 510
    functionName: nl::ArgParser::ParseArgsFromString
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 1
    functionsReached:
    - nl::ArgParser::ParseArgsFromString
    linkageType: ''
    returnType: bool
    signature: ParseArgsFromString(const char *progName, const char *argStr, OptionSet
      *optSets[], NonOptionArgHandlerFunct nonOptArgHandler)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ArgParser::ParseArgsFromString
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - progName
    - argStr
    - optSets
    argTypes:
    - char*
    - char*
    - OptionSet*[]
    constantsTouched: []
    func_position:
      end: 515
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 515
    functionName: nl::ArgParser::ParseArgsFromString
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 2
    functionsReached:
    - nl::ArgParser::ParseArgsFromString
    linkageType: ''
    returnType: bool
    signature: ParseArgsFromString(const char *progName, const char *argStr, OptionSet
      *optSets[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ArgParser::ParseArgsFromString
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - progName
    - varName
    - optSets
    - nonOptArgHandler
    - ignoreUnknown
    argTypes:
    - char*
    - char*
    - OptionSet*[]
    - NonOptionArgHandlerFunct
    - bool
    constantsTouched: []
    func_position:
      end: 552
      start: 546
    functionDepth: 3
    functionLinenumber: 546
    functionLinenumberEnd: 552
    functionName: nl::ArgParser::ParseArgsFromEnvVar
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached:
    - nl::ArgParser::ParseArgsFromString
    linkageType: ''
    returnType: bool
    signature: ParseArgsFromEnvVar(const char *progName, const char *varName, OptionSet
      *optSets[], NonOptionArgHandlerFunct nonOptArgHandler, bool ignoreUnknown)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ArgParser::ParseArgsFromEnvVar
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - progName
    - varName
    - optSets
    argTypes:
    - char*
    - char*
    - OptionSet*[]
    constantsTouched: []
    func_position:
      end: 557
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 557
    functionName: nl::ArgParser::ParseArgsFromEnvVar
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 1
    functionsReached:
    - nl::ArgParser::ParseArgsFromEnvVar
    linkageType: ''
    returnType: bool
    signature: ParseArgsFromEnvVar(const char *progName, const char *varName, OptionSet
      *optSets[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ArgParser::ParseArgsFromEnvVar
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - progName
    - varName
    - optSets
    - nonOptArgHandler
    argTypes:
    - char*
    - char*
    - OptionSet*[]
    - NonOptionArgHandlerFunct
    constantsTouched: []
    func_position:
      end: 562
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 562
    functionName: nl::ArgParser::ParseArgsFromEnvVar
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 2
    functionsReached:
    - nl::ArgParser::ParseArgsFromEnvVar
    linkageType: ''
    returnType: bool
    signature: ParseArgsFromEnvVar(const char *progName, const char *varName, OptionSet
      *optSets[], NonOptionArgHandlerFunct nonOptArgHandler)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:579,1
    - Dst: nl::ArgParser::PutStringWithBlankLine
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:587,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:591,1
    - Dst: nl::ArgParser::PutStringWithBlankLine
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:593,1
    - Dst: free
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:597,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - optSets
    - s
    argTypes:
    - OptionSet*[]
    - FILE*
    constantsTouched: []
    func_position:
      end: 598
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 598
    functionName: nl::ArgParser::PrintOptionHelp
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached:
    - strcasecmp
    - nl::ArgParser::PutStringWithBlankLine
    - PrintArgError
    - free
    linkageType: ''
    returnType: void
    signature: PrintOptionHelp(OptionSet *optSets[], FILE *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:617,1
    - Dst: vfprintf
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:618,1
    - Dst: va_end
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 620
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 620
    functionName: nl::ArgParser::DefaultPrintArgError
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached:
    - vfprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: DefaultPrintArgError(const char *msg, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:637,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:638,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:645,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:646,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 10
    argCount: 2
    argNames:
    - str
    - ' output'
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 654
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 654
    functionName: nl::ArgParser::ParseBoolean
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: bool
    signature: ParseBoolean(const char *str, bool& output)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strtoull
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:677,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - str
    - ' output'
    - base
    argTypes:
    - char*
    - uint64_t
    - int
    constantsTouched: []
    func_position:
      end: 680
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 680
    functionName: nl::ArgParser::ParseInt
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached:
    - strtoull
    linkageType: ''
    returnType: bool
    signature: ParseInt(const char *str, uint64_t& output, int base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - str
    - ' output'
    - base
    argTypes:
    - char*
    - uint32_t
    - int
    constantsTouched: []
    func_position:
      end: 708
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 708
    functionName: nl::ArgParser::ParseInt
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached:
    - strtoul
    linkageType: ''
    returnType: bool
    signature: ParseInt(const char *str, uint32_t& output, int base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:732,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - str
    - ' output'
    - base
    argTypes:
    - char*
    - int32_t
    - int
    constantsTouched: []
    func_position:
      end: 736
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 736
    functionName: nl::ArgParser::ParseInt
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached:
    - strtol
    linkageType: ''
    returnType: bool
    signature: ParseInt(const char *str, int32_t& output, int base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ArgParser::ParseInt
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - ' output'
    argTypes:
    - char*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 755
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 755
    functionName: nl::ArgParser::ParseInt
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 1
    functionsReached:
    - nl::ArgParser::ParseInt
    linkageType: ''
    returnType: bool
    signature: ParseInt(const char *str, uint64_t& output)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ArgParser::ParseInt
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - ' output'
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 774
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 774
    functionName: nl::ArgParser::ParseInt
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 2
    functionsReached:
    - nl::ArgParser::ParseInt
    linkageType: ''
    returnType: bool
    signature: ParseInt(const char *str, uint32_t& output)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ArgParser::ParseInt
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - ' output'
    argTypes:
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 793
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 793
    functionName: nl::ArgParser::ParseInt
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 3
    functionsReached:
    - nl::ArgParser::ParseInt
    linkageType: ''
    returnType: bool
    signature: ParseInt(const char *str, int32_t& output)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ArgParser::ParseInt
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:812,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - str
    - ' output'
    argTypes:
    - char*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 819
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 819
    functionName: nl::ArgParser::ParseInt
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 4
    functionsReached:
    - nl::ArgParser::ParseInt
    linkageType: ''
    returnType: bool
    signature: ParseInt(const char *str, uint16_t& output)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ArgParser::ParseInt
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:838,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - str
    - ' output'
    argTypes:
    - char*
    - int16_t
    constantsTouched: []
    func_position:
      end: 845
      start: 833
    functionDepth: 1
    functionLinenumber: 833
    functionLinenumberEnd: 845
    functionName: nl::ArgParser::ParseInt
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 5
    functionsReached:
    - nl::ArgParser::ParseInt
    linkageType: ''
    returnType: bool
    signature: ParseInt(const char *str, int16_t& output)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ArgParser::ParseInt
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:864,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - str
    - ' output'
    argTypes:
    - char*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 871
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 871
    functionName: nl::ArgParser::ParseInt
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 6
    functionsReached:
    - nl::ArgParser::ParseInt
    linkageType: ''
    returnType: bool
    signature: ParseInt(const char *str, uint8_t& output)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - ' output'
    argTypes:
    - char*
    - IPAddress
    constantsTouched: []
    func_position:
      end: 886
      start: 883
    functionDepth: 2
    functionLinenumber: 883
    functionLinenumberEnd: 886
    functionName: nl::ArgParser::ParseIPAddress
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::FromString
    linkageType: ''
    returnType: bool
    signature: ParseIPAddress(const char *str, IPAddress& output)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:907,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:907,1
    - Dst: strtoull
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:914,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - str
    - ' nodeId'
    argTypes:
    - char*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 916
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 916
    functionName: nl::ArgParser::ParseNodeId
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached:
    - strcasecmp
    - strtoull
    linkageType: ''
    returnType: bool
    signature: ParseNodeId(const char *str, uint64_t& nodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strtoull
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:939,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 3
    argNames:
    - str
    - ' fabricId'
    - allowReserved
    argTypes:
    - char*
    - uint64_t
    - bool
    constantsTouched: []
    func_position:
      end: 942
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 942
    functionName: nl::ArgParser::ParseFabricId
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached:
    - strtoull
    linkageType: ''
    returnType: bool
    signature: ParseFabricId(const char *str, uint64_t& fabricId, bool allowReserved)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:969,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:979,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - str
    - subnetId
    argTypes:
    - char*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 983
      start: 957
    functionDepth: 0
    functionLinenumber: 957
    functionLinenumberEnd: 983
    functionName: nl::ArgParser::ParseSubnetId
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached:
    - strtoul
    - static_cast<uint16_t>
    linkageType: ''
    returnType: bool
    signature: ParseSubnetId(const char *str, uint16_t &subnetId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1028,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 39
    argCount: 5
    argNames:
    - hexStr
    - strLen
    - outBuf
    - outBufSize
    - ' outDataLen'
    argTypes:
    - char*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1070
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1070
    functionName: nl::ArgParser::ParseHexString
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: bool
    signature: ParseHexString(const char *hexStr, uint32_t strLen, uint8_t *outBuf,
      uint32_t outBufSize, uint32_t& outDataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - appName
    - appUsage
    - appVersion
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1077
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1077
    functionName: nl::ArgParser::HelpOptions::HelpOptions
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: HelpOptions::HelpOptions(const char *appName, const char *appUsage,
      const char *appVersion)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - appName
    - appUsage
    - appVersion
    - appDesc
    argTypes:
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1103
      start: 1079
    functionDepth: 0
    functionLinenumber: 1079
    functionLinenumberEnd: 1103
    functionName: nl::ArgParser::HelpOptions::HelpOptions
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: HelpOptions::HelpOptions(const char *appName, const char *appUsage,
      const char *appVersion, const char *appDesc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PutStringWithNewLine
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1110,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 1112
      start: 1108
    functionDepth: 0
    functionLinenumber: 1108
    functionLinenumberEnd: 1112
    functionName: nl::ArgParser::HelpOptions::PrintBriefUsage
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    - PutStringWithNewLine
    linkageType: ''
    returnType: void
    signature: HelpOptions::PrintBriefUsage(FILE *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PutStringWithBlankLine
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1119,1
    - Dst: PutStringWithBlankLine
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1122,1
    - Dst: PrintOptionHelp
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - optSets
    - s
    argTypes:
    - OptionSet**
    - FILE*
    constantsTouched: []
    func_position:
      end: 1125
      start: 1117
    functionDepth: 0
    functionLinenumber: 1117
    functionLinenumberEnd: 1125
    functionName: nl::ArgParser::HelpOptions::PrintLongUsage
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached:
    - PrintOptionHelp
    - PutStringWithBlankLine
    linkageType: ''
    returnType: void
    signature: HelpOptions::PrintLongUsage(OptionSet **optSets, FILE *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1129,1
    - Dst: PutStringWithNewLine
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 1131
      start: 1127
    functionDepth: 0
    functionLinenumber: 1127
    functionLinenumberEnd: 1131
    functionName: nl::ArgParser::HelpOptions::PrintVersion
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    - PutStringWithNewLine
    linkageType: ''
    returnType: void
    signature: HelpOptions::PrintVersion(FILE *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ArgParser::HelpOptions::PrintLongUsage
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1138,1
    - Dst: exit
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1139,1
    - Dst: nl::ArgParser::HelpOptions::PrintVersion
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1142,1
    - Dst: exit
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1143,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1151
      start: 1133
    functionDepth: 1
    functionLinenumber: 1133
    functionLinenumberEnd: 1151
    functionName: nl::ArgParser::HelpOptions::HandleOption
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached:
    - nl::ArgParser::HelpOptions::PrintLongUsage
    - PrintArgError
    - exit
    - nl::ArgParser::HelpOptions::PrintVersion
    linkageType: ''
    returnType: bool
    signature: HelpOptions::HandleOption(const char *progName, OptionSet *optSet,
      int id, const char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1158
    functionName: nl::ArgParser::OptionSetBase::OptionSetBase
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: OptionSetBase::OptionSetBase()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<OptionSetBase *>
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1163
      start: 1160
    functionDepth: 0
    functionLinenumber: 1160
    functionLinenumberEnd: 1163
    functionName: nl::ArgParser::OptionSetBase::CallHandleFunct
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached:
    - static_cast<OptionSetBase *>
    linkageType: ''
    returnType: bool
    signature: OptionSetBase::CallHandleFunct(const char *progName, OptionSet *optSet,
      int id, const char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ArgParser::IsShortOptionChar
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1193,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - optSets
    argTypes:
    - OptionSet**
    constantsTouched: []
    func_position:
      end: 1208
      start: 1165
    functionDepth: 1
    functionLinenumber: 1165
    functionLinenumberEnd: 1208
    functionName: nl::ArgParser::MakeShortOptions
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 1
    functionsReached:
    - nl::ArgParser::IsShortOptionChar
    linkageType: ''
    returnType: char
    signature: '*MakeShortOptions(OptionSet **optSets)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - optSets
    argTypes:
    - OptionSet**
    constantsTouched: []
    func_position:
      end: 1239
      start: 1210
    functionDepth: 0
    functionLinenumber: 1210
    functionLinenumberEnd: 1239
    functionName: nl::ArgParser::MakeLongOptions
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 1
    functionsReached:
    - malloc
    linkageType: ''
    returnType: struct option
    signature: '*MakeLongOptions(OptionSet **optSets)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1248,1
    - Dst: nl::ArgParser::GetNextArg
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1266,1
    - Dst: realloc
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1274,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - argStr
    - ' argList'
    - initialArg
    argTypes:
    - char*
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 1288
      start: 1241
    functionDepth: 1
    functionLinenumber: 1241
    functionLinenumberEnd: 1288
    functionName: nl::ArgParser::SplitArgs
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 1
    functionsReached:
    - malloc
    - nl::ArgParser::GetNextArg
    - realloc
    linkageType: ''
    returnType: int32_t
    signature: SplitArgs(char *argStr, char **& argList, char *initialArg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1296,1
    - Dst: isspace
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1321,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 1
    argNames:
    - ' parsePoint'
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1355
      start: 1290
    functionDepth: 0
    functionLinenumber: 1290
    functionLinenumberEnd: 1355
    functionName: nl::ArgParser::GetNextArg
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 1
    functionsReached:
    - isspace
    linkageType: ''
    returnType: bool
    signature: GetNextArg(char *& parsePoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - optSets
    argTypes:
    - OptionSet**
    constantsTouched: []
    func_position:
      end: 1363
      start: 1357
    functionDepth: 0
    functionLinenumber: 1357
    functionLinenumberEnd: 1363
    functionName: nl::ArgParser::CountOptionSets
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: CountOptionSets(OptionSet **optSets)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - optSets
    argTypes:
    - OptionSet**
    constantsTouched: []
    func_position:
      end: 1372
      start: 1365
    functionDepth: 0
    functionLinenumber: 1365
    functionLinenumberEnd: 1372
    functionName: nl::ArgParser::CountAllOptions
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: CountAllOptions(OptionSet **optSets)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - optSets
    - optIndex
    - ' optSet'
    - ' optDef'
    argTypes:
    - OptionSet**
    - int
    - OptionSet*
    - OptionDef*
    constantsTouched: []
    func_position:
      end: 1382
      start: 1374
    functionDepth: 0
    functionLinenumber: 1374
    functionLinenumberEnd: 1382
    functionName: nl::ArgParser::FindOptionByIndex
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: FindOptionByIndex(OptionSet **optSets, int optIndex, OptionSet *& optSet,
      OptionDef *& optDef)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - optSets
    - optId
    - ' optSet'
    - ' optDef'
    argTypes:
    - OptionSet**
    - int
    - OptionSet*
    - OptionDef*
    constantsTouched: []
    func_position:
      end: 1392
      start: 1384
    functionDepth: 0
    functionLinenumber: 1384
    functionLinenumberEnd: 1392
    functionName: nl::ArgParser::FindOptionById
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: FindOptionById(OptionSet **optSets, int optId, OptionSet *& optSet,
      OptionDef *& optDef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1408,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1394
    functionDepth: 0
    functionLinenumber: 1394
    functionLinenumberEnd: 1419
    functionName: nl::ArgParser::MakeUniqueHelpGroupNamesList
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: char
    signature: '**MakeUniqueHelpGroupNamesList(OptionSet *optSets[])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1424,1
    - Dst: fputs
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1426,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - s
    - str
    argTypes:
    - FILE*
    - char*
    constantsTouched: []
    func_position:
      end: 1427
      start: 1421
    functionDepth: 0
    functionLinenumber: 1421
    functionLinenumberEnd: 1427
    functionName: nl::ArgParser::PutStringWithNewLine
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 0
    functionsReached:
    - fputs
    linkageType: ''
    returnType: void
    signature: PutStringWithNewLine(FILE *s, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1432,1
    - Dst: fputs
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1434,1
    - Dst: fputs
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1436,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - s
    - str
    argTypes:
    - FILE*
    - char*
    constantsTouched: []
    func_position:
      end: 1437
      start: 1429
    functionDepth: 0
    functionLinenumber: 1429
    functionLinenumberEnd: 1437
    functionName: nl::ArgParser::PutStringWithBlankLine
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 1
    functionsReached:
    - fputs
    linkageType: ''
    returnType: void
    signature: PutStringWithBlankLine(FILE *s, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1450,1
    - Dst: nl::ArgParser::IsShortOptionChar
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1460,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1468,1
    - Dst: nl::ArgParser::HelpTextContainsLongOption
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1481,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1483,1
    - Dst: nl::ArgParser::IsShortOptionChar
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1487,1
    - Dst: nl::ArgParser::HelpTextContainsShortOption
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1488,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1490,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 1
    argNames:
    - optSets
    argTypes:
    - OptionSet*[]
    constantsTouched: []
    func_position:
      end: 1496
      start: 1441
    functionDepth: 1
    functionLinenumber: 1441
    functionLinenumberEnd: 1496
    functionName: nl::ArgParser::SanityCheckOptions
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 1
    functionsReached:
    - nl::ArgParser::HelpTextContainsShortOption
    - nl::ArgParser::IsShortOptionChar
    - PrintArgError
    - nl::ArgParser::HelpTextContainsLongOption
    linkageType: ''
    returnType: bool
    signature: SanityCheckOptions(OptionSet *optSets[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1502,1
    - Dst: isalnum
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1504,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 2
    argNames:
    - optName
    - helpText
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1508
      start: 1498
    functionDepth: 0
    functionLinenumber: 1498
    functionLinenumberEnd: 1508
    functionName: nl::ArgParser::HelpTextContainsLongOption
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 1
    functionsReached:
    - strstr
    - isalnum
    linkageType: ''
    returnType: bool
    signature: HelpTextContainsLongOption(const char *optName, const char *helpText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1517,1
    - Dst: isalnum
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1518,1
    - Dst: isalnum
      Src: /src/openweave-core/src/lib/support/nlargparser.cpp:1519,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - optChar
    - helpText
    argTypes:
    - char
    - char*
    constantsTouched: []
    func_position:
      end: 1524
      start: 1510
    functionDepth: 0
    functionLinenumber: 1510
    functionLinenumberEnd: 1524
    functionName: nl::ArgParser::HelpTextContainsShortOption
    functionSourceFile: /src/openweave-core/src/lib/support/nlargparser.cpp
    functionUses: 1
    functionsReached:
    - strstr
    - isalnum
    linkageType: ''
    returnType: bool
    signature: HelpTextContainsShortOption(char optChar, const char *helpText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: nl::unsupported_malloc
    functionSourceFile: /src/openweave-core/src/lib/support/SerializationUtils.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    linkageType: ''
    returnType: void
    signature: '*unsupported_malloc(size_t size)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: nl::unsupported_free
    functionSourceFile: /src/openweave-core/src/lib/support/SerializationUtils.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    linkageType: ''
    returnType: void
    signature: unsupported_free(void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: nl::unsupported_realloc
    functionSourceFile: /src/openweave-core/src/lib/support/SerializationUtils.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    linkageType: ''
    returnType: void
    signature: '*unsupported_realloc(void *ptr, size_t size)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aType
    argTypes:
    - SerializedFieldType
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: nl::IsValidFieldType
    functionSourceFile: /src/openweave-core/src/lib/support/SerializationUtils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsValidFieldType(SerializedFieldType aType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:149,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:153,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:155,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - aOutSize
    - aFieldPtr
    - aType
    argTypes:
    - uint32_t
    - FieldDescriptor*
    - SerializedFieldType
    constantsTouched: []
    func_position:
      end: 166
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 166
    functionName: nl::GetArrayElementSize
    functionSourceFile: /src/openweave-core/src/lib/support/SerializationUtils.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - LogReadWrite
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetArrayElementSize(uint32_t &aOutSize, const FieldDescriptor * aFieldPtr,
      SerializedFieldType aType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ArrayLengthAndBuffer *>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:193,1
    - Dst: FieldDescriptor*::GetType
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:199,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:200,1
    - Dst: nl::IsValidFieldType
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:200,1
    - Dst: nl::GetArrayElementSize
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:202,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:203,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:210,1
    - Dst: nl::WriteDataForType
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:212,1
    - Dst: static_cast<char *>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:212,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - aWriter
    - aStructureData
    - aFieldPtr
    argTypes:
    - TLVWriter
    - void*
    - FieldDescriptor*
    constantsTouched: []
    func_position:
      end: 218
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 218
    functionName: nl::WriteArrayData
    functionSourceFile: /src/openweave-core/src/lib/support/SerializationUtils.cpp
    functionUses: 0
    functionsReached:
    - nl::WriteDataForType
    - FieldDescriptor*::GetType
    - nl::GetArrayElementSize
    - static_cast<char *>
    - nl::IsValidFieldType
    - VerifyOrExit
    - static_cast<ArrayLengthAndBuffer *>
    - SuccessOrExit
    - LogReadWrite
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WriteArrayData(TLVWriter &aWriter, void *aStructureData, const FieldDescriptor
      * aFieldPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:249,1
    - Dst: TLVWriter::PutNull
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:251,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:251,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:252,1
    - Dst: nl::WriteDataForType
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - aWriter
    - aStructureData
    - aFieldPtr
    - aType
    - aIsNullified
    argTypes:
    - TLVWriter
    - void*
    - FieldDescriptor*
    - SerializedFieldType
    - bool
    constantsTouched: []
    func_position:
      end: 263
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 263
    functionName: nl::WriteNullableDataForType
    functionSourceFile: /src/openweave-core/src/lib/support/SerializationUtils.cpp
    functionUses: 0
    functionsReached:
    - nl::WriteDataForType
    - ContextTag
    - TLVWriter::PutNull
    - SuccessOrExit
    - LogReadWrite
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WriteNullableDataForType(TLVWriter &aWriter, void *aStructureData,
      const FieldDescriptor *&aFieldPtr, SerializedFieldType aType, bool aIsNullified)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:294,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:302,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:304,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:305,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:313,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:315,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:316,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:324,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:326,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:327,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:335,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:337,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:338,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:346,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:348,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:349,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:357,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:359,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:360,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:368,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:370,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:371,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:379,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:381,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:382,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:390,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:392,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:393,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:402,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:405,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:406,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:415,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:418,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:419,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:427,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:429,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:430,1
    - Dst: static_cast<SerializedByteString *>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:436,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:438,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:440,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:441,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:448,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:451,1
    - Dst: LogReadWriteStartContainer
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:453,1
    - Dst: nl::SerializedDataToTLVWriter
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:455,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:456,1
    - Dst: LogReadWriteEndContainer
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:458,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:460,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:461,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:467,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:470,1
    - Dst: LogReadWriteStartContainer
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:472,1
    - Dst: nl::WriteArrayData
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:474,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:479,1
    - Dst: LogReadWriteEndContainer
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:481,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:483,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:484,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 116
    argCount: 5
    argNames:
    - aWriter
    - aStructureData
    - aFieldPtr
    - aType
    - aInArray
    argTypes:
    - TLVWriter
    - void*
    - FieldDescriptor*
    - SerializedFieldType
    - bool
    constantsTouched: []
    func_position:
      end: 501
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 501
    functionName: nl::WriteDataForType
    functionSourceFile: /src/openweave-core/src/lib/support/SerializationUtils.cpp
    functionUses: 2
    functionsReached:
    - nl::SerializedDataToTLVWriter
    - nl::WriteArrayData
    - TLVWriter::StartContainer
    - LogReadWriteEndContainer
    - TLVWriter::PutBoolean
    - LogReadWriteStartContainer
    - static_cast<SerializedByteString *>
    - TLVWriter::PutBytes
    - TLVWriter::EndContainer
    - TLVWriter::PutString
    - SuccessOrExit
    - TLVWriter::Put
    - LogReadWrite
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WriteDataForType(TLVWriter &aWriter, void *aStructureData, const FieldDescriptor
      *&aFieldPtr, SerializedFieldType aType, bool aInArray)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ArrayLengthAndBuffer *>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:544,1
    - Dst: FieldDescriptor*::GetType
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:554,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:555,1
    - Dst: nl::IsValidFieldType
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:555,1
    - Dst: nl::GetArrayElementSize
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:557,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:558,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:560,1
    - Dst: nl::CheckForEndOfTLV
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:563,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:564,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:565,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:565,1
    - Dst: MemoryManagement*::mem_realloc
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:574,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:575,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:577,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:583,1
    - Dst: nl::ReadDataForType
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:585,1
    - Dst: MemoryManagement*::mem_free
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:604,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 4
    argNames:
    - aReader
    - aStructureData
    - aFieldPtr
    - aContext
    argTypes:
    - TLVReader
    - void*
    - FieldDescriptor*
    - SerializationContext*
    constantsTouched: []
    func_position:
      end: 609
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 609
    functionName: nl::ReadArrayData
    functionSourceFile: /src/openweave-core/src/lib/support/SerializationUtils.cpp
    functionUses: 0
    functionsReached:
    - FieldDescriptor*::GetType
    - nl::GetArrayElementSize
    - MemoryManagement*::mem_realloc
    - MemoryManagement*::mem_free
    - nl::IsValidFieldType
    - VerifyOrExit
    - static_cast<ArrayLengthAndBuffer *>
    - nl::ReadDataForType
    - SuccessOrExit
    - nl::CheckForEndOfTLV
    - LogReadWrite
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReadArrayData(TLVReader &aReader, void *aStructureData, const FieldDescriptor
      * aFieldPtr, SerializationContext *aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:634,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:637,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:638,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - aReader
    - aEndOfTLV
    argTypes:
    - TLVReader
    - bool
    constantsTouched: []
    func_position:
      end: 650
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 650
    functionName: nl::CheckForEndOfTLV
    functionSourceFile: /src/openweave-core/src/lib/support/SerializationUtils.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Init
    - VerifyOrExit
    - TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CheckForEndOfTLV(TLVReader &aReader, bool &aEndOfTLV)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FieldDescriptor*::IsNullable
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:682,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:682,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:686,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:687,1
    - Dst: nl::ReadDataForType
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:692,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - aReader
    - aStructureData
    - aFieldPtr
    - aType
    - aIsNullified
    - aContext
    argTypes:
    - TLVReader
    - void*
    - FieldDescriptor*
    - SerializedFieldType
    - bool
    - SerializationContext*
    constantsTouched: []
    func_position:
      end: 696
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 696
    functionName: nl::ReadNullableDataForType
    functionSourceFile: /src/openweave-core/src/lib/support/SerializationUtils.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Next
    - TLVReader::GetType
    - FieldDescriptor*::IsNullable
    - nl::ReadDataForType
    - LogReadWrite
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReadNullableDataForType(TLVReader &aReader, void *aStructureData, const
      FieldDescriptor *&aFieldPtr, SerializedFieldType aType, bool &aIsNullified,
      SerializationContext *aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:738,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:745,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:746,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:748,1
    - Dst: static_cast<bool *>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:750,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:757,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:758,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:760,1
    - Dst: static_cast<uint8_t *>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:762,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:769,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:770,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:772,1
    - Dst: static_cast<uint16_t *>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:774,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:781,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:782,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:784,1
    - Dst: static_cast<uint32_t *>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:786,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:793,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:794,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:796,1
    - Dst: static_cast<uint64_t *>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:798,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:805,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:806,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:808,1
    - Dst: static_cast<int8_t *>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:810,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:817,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:818,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:820,1
    - Dst: static_cast<int16_t *>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:822,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:829,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:830,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:832,1
    - Dst: static_cast<int32_t *>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:834,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:841,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:842,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:844,1
    - Dst: static_cast<int64_t *>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:846,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:853,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:854,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:857,1
    - Dst: static_cast<float *>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:860,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:867,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:868,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:871,1
    - Dst: static_cast<double *>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:874,1
    - Dst: MemoryManagement*::mem_alloc
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:884,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:885,1
    - Dst: TLVReader::GetString
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:887,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:888,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:890,1
    - Dst: static_cast<char**>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:891,1
    - Dst: TLVReader::GetLength
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:898,1
    - Dst: static_cast<uint8_t *>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:900,1
    - Dst: MemoryManagement*::mem_alloc
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:900,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:901,1
    - Dst: TLVReader::GetBytes
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:902,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:904,1
    - Dst: static_cast<SerializedByteString *>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:905,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:911,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:912,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:913,1
    - Dst: TLVReader::GetContainerType
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:913,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:915,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:918,1
    - Dst: LogReadWriteStartContainer
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:920,1
    - Dst: nl::TLVReaderToDeserializedData
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:922,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:927,1
    - Dst: LogReadWriteEndContainer
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:929,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:931,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:935,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:936,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:937,1
    - Dst: TLVReader::GetContainerType
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:937,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:939,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:942,1
    - Dst: LogReadWriteStartContainer
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:944,1
    - Dst: nl::ReadArrayData
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:946,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:947,1
    - Dst: LogReadWriteEndContainer
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:949,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:951,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:963,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 146
    argCount: 6
    argNames:
    - aReader
    - aStructureData
    - aFieldPtr
    - aType
    - aInArray
    - aContext
    argTypes:
    - TLVReader
    - void*
    - FieldDescriptor*
    - SerializedFieldType
    - bool
    - SerializationContext*
    constantsTouched: []
    func_position:
      end: 969
      start: 722
    functionDepth: 2
    functionLinenumber: 722
    functionLinenumberEnd: 969
    functionName: nl::ReadDataForType
    functionSourceFile: /src/openweave-core/src/lib/support/SerializationUtils.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int32_t *>
    - TLVReader::Next
    - nl::TLVReaderToDeserializedData
    - static_cast<float *>
    - static_cast<uint64_t *>
    - TLVReader::GetString
    - static_cast<int16_t *>
    - TLVReader::ExitContainer
    - static_cast<uint32_t *>
    - TLVReader::Get
    - VerifyOrExit
    - static_cast<int8_t *>
    - static_cast<int64_t *>
    - static_cast<bool *>
    - MemoryManagement*::mem_alloc
    - LogReadWriteEndContainer
    - TLVReader::GetLength
    - TLVReader::GetBytes
    - TLVReader::EnterContainer
    - static_cast<double *>
    - static_cast<SerializedByteString *>
    - TLVReader::GetContainerType
    - LogReadWrite
    - LogReadWriteStartContainer
    - static_cast<uint16_t *>
    - SuccessOrExit
    - static_cast<uint8_t *>
    - static_cast<char**>
    - nl::ReadArrayData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReadDataForType(TLVReader &aReader, void *aStructureData, const FieldDescriptor
      *&aFieldPtr, SerializedFieldType aType, bool aInArray, SerializationContext
      *aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::GetType
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1007,1
    - Dst: nl::GetArrayElementSize
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1015,1
    - Dst: FieldDescriptor*::GetType
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1015,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1016,1
    - Dst: static_cast<uint8_t *>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1018,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - aStructureData
    - aSchemaDescriptor
    - aNullifiedFields
    argTypes:
    - void*
    - SchemaFieldDescriptor*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1021
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1021
    functionName: nl::FindNullifiedFieldsArray
    functionSourceFile: /src/openweave-core/src/lib/support/SerializationUtils.cpp
    functionUses: 0
    functionsReached:
    - FieldDescriptor*::GetType
    - nl::GetArrayElementSize
    - SuccessOrExit
    - nl::GetType
    - static_cast<uint8_t *>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: FindNullifiedFieldsArray(void *aStructureData, const SchemaFieldDescriptor
      *aSchemaDescriptor, uint8_t *&aNullifiedFields)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::FindNullifiedFieldsArray
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1047,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1048,1
    - Dst: FieldDescriptor*::IsNullable
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1055,1
    - Dst: nl::WriteNullableDataForType
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1060,1
    - Dst: static_cast<char *>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1061,1
    - Dst: FieldDescriptor*::GetType
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1063,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1065,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - aWriter
    - aStructureData
    - aFieldDescriptors
    argTypes:
    - TLVWriter
    - void*
    - SchemaFieldDescriptor*
    constantsTouched: []
    func_position:
      end: 1070
      start: 1039
    functionDepth: 2
    functionLinenumber: 1039
    functionLinenumberEnd: 1070
    functionName: nl::SerializedDataToTLVWriter
    functionSourceFile: /src/openweave-core/src/lib/support/SerializationUtils.cpp
    functionUses: 1
    functionsReached:
    - FieldDescriptor*::GetType
    - static_cast<char *>
    - FieldDescriptor*::IsNullable
    - nl::WriteNullableDataForType
    - SuccessOrExit
    - nl::FindNullifiedFieldsArray
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SerializedDataToTLVWriter(TLVWriter &aWriter, void *aStructureData,
      const SchemaFieldDescriptor *aFieldDescriptors)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<StructureSchemaPointerPair *>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1092,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1096,1
    - Dst: nl::WriteDataForType
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - aWriter
    - aDataTag
    - aAppData
    argTypes:
    - TLVWriter
    - uint8_t
    - void*
    constantsTouched: []
    func_position:
      end: 1105
      start: 1090
    functionDepth: 3
    functionLinenumber: 1090
    functionLinenumberEnd: 1105
    functionName: nl::SerializedDataToTLVWriterHelper
    functionSourceFile: /src/openweave-core/src/lib/support/SerializationUtils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    - nl::WriteDataForType
    - static_cast<StructureSchemaPointerPair *>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SerializedDataToTLVWriterHelper(TLVWriter &aWriter, uint8_t aDataTag,
      void *aAppData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::FindNullifiedFieldsArray
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1141,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1142,1
    - Dst: TagNumFromTag
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1151,1
    - Dst: nl::Weave::TLV::TLVReader::GetTag
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1151,1
    - Dst: FieldDescriptor*::IsNullable
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1154,1
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1156,1
    - Dst: nl::ReadNullableDataForType
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1172,1
    - Dst: static_cast<char *>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1173,1
    - Dst: FieldDescriptor*::GetType
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1175,1
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1183,1
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1187,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1198,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1203,1
    - Dst: FieldDescriptor*::IsNullable
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1215,1
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1217,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 4
    argNames:
    - aReader
    - aStructureData
    - aFieldDescriptors
    - aContext
    argTypes:
    - nl::Weave::TLV::TLVReader
    - void*
    - SchemaFieldDescriptor*
    - SerializationContext*
    constantsTouched: []
    func_position:
      end: 1228
      start: 1129
    functionDepth: 2
    functionLinenumber: 1129
    functionLinenumberEnd: 1228
    functionName: nl::TLVReaderToDeserializedData
    functionSourceFile: /src/openweave-core/src/lib/support/SerializationUtils.cpp
    functionUses: 1
    functionsReached:
    - FieldDescriptor*::GetType
    - static_cast<char *>
    - nl::ReadNullableDataForType
    - FieldDescriptor*::IsNullable
    - nl::Weave::TLV::TLVReader::GetTag
    - nl::Weave::TLV::TLVReader::Next
    - TagNumFromTag
    - SET_FIELD_NULLIFIED_BIT
    - SuccessOrExit
    - nl::FindNullifiedFieldsArray
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TLVReaderToDeserializedData(nl::Weave::TLV::TLVReader &aReader,\n
      \                                       void *aStructureData,\n                                        const
      SchemaFieldDescriptor *aFieldDescriptors,\n                                        SerializationContext
      *aContext)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<StructureSchemaPointerPair *>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1265,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1269,1
    - Dst: nl::ReadDataForType
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - aReader
    - aDataTag
    - aAppData
    - aContext
    argTypes:
    - nl::Weave::TLV::TLVReader
    - uint8_t
    - void*
    - SerializationContext*
    constantsTouched: []
    func_position:
      end: 1287
      start: 1258
    functionDepth: 3
    functionLinenumber: 1258
    functionLinenumberEnd: 1287
    functionName: nl::TLVReaderToDeserializedDataHelper
    functionSourceFile: /src/openweave-core/src/lib/support/SerializationUtils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    - static_cast<StructureSchemaPointerPair *>
    - nl::ReadDataForType
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TLVReaderToDeserializedDataHelper(nl::Weave::TLV::TLVReader &aReader,\n
      \                                             uint8_t aDataTag,\n                                              void
      *aAppData,\n                                              SerializationContext
      *aContext)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ArrayLengthAndBuffer *>
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1299,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1312,1
    - Dst: MemoryManagement*::mem_free
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1315,1
    - Dst: nl::DeallocateDeserializedStructure
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1323,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1324,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1327,1
    - Dst: MemoryManagement*::mem_free
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1330,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - aArrayData
    - aFieldDescriptors
    - aContext
    argTypes:
    - void*
    - SchemaFieldDescriptor*
    - SerializationContext*
    constantsTouched: []
    func_position:
      end: 1335
      start: 1290
    functionDepth: 1
    functionLinenumber: 1290
    functionLinenumberEnd: 1335
    functionName: nl::DeallocateDeserializedArray
    functionSourceFile: /src/openweave-core/src/lib/support/SerializationUtils.cpp
    functionUses: 0
    functionsReached:
    - nl::DeallocateDeserializedStructure
    - static_cast<ArrayLengthAndBuffer *>
    - SuccessOrExit
    - MemoryManagement*::mem_free
    - LogReadWrite
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "DeallocateDeserializedArray(void *aArrayData,\n                                        const
      SchemaFieldDescriptor *aFieldDescriptors,\n                                        SerializationContext
      *aContext/* = NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_TYPE_AND_FLAGS
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1343,1
    - Dst: SET_TYPE_AND_FLAGS
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1350,1
    - Dst: FieldDescriptor*::GetType
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1375,1
    - Dst: nl::DeallocateDeserializedStructure
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1379,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1382,1
    - Dst: FieldDescriptor*::GetType
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1397,1
    - Dst: FieldDescriptor*::GetType
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1401,1
    - Dst: nl::DeallocateDeserializedArray
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1410,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1413,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1421,1
    - Dst: MemoryManagement*::mem_free
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1424,1
    - Dst: LogReadWrite
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1432,1
    - Dst: MemoryManagement*::mem_free
      Src: /src/openweave-core/src/lib/support/SerializationUtils.cpp:1435,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 3
    argNames:
    - aStructureData
    - aFieldDescriptors
    - aContext
    argTypes:
    - void*
    - SchemaFieldDescriptor*
    - SerializationContext*
    constantsTouched: []
    func_position:
      end: 1458
      start: 1338
    functionDepth: 2
    functionLinenumber: 1338
    functionLinenumberEnd: 1458
    functionName: nl::DeallocateDeserializedStructure
    functionSourceFile: /src/openweave-core/src/lib/support/SerializationUtils.cpp
    functionUses: 2
    functionsReached:
    - nl::DeallocateDeserializedStructure
    - FieldDescriptor*::GetType
    - nl::DeallocateDeserializedArray
    - SET_TYPE_AND_FLAGS
    - SuccessOrExit
    - MemoryManagement*::mem_free
    - LogReadWrite
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "DeallocateDeserializedStructure(void *aStructureData,\n                                            const
      SchemaFieldDescriptor *aFieldDescriptors,\n                                            SerializationContext
      *aContext/* = NULL*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/PersistedCounter.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: nl::Weave::PersistedCounter::PersistedCounter
    functionSourceFile: /src/openweave-core/src/lib/support/PersistedCounter.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: PersistedCounter::PersistedCounter(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: PersistedCounter::~PersistedCounter(void)
    functionSourceFile: /src/openweave-core/src/lib/support/PersistedCounter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: PersistedCounter::~PersistedCounter(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/PersistedCounter.cpp:51,1
    - Dst: nl::Weave::PersistedCounter::ReadStartValue
      Src: /src/openweave-core/src/lib/support/PersistedCounter.cpp:55,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/PersistedCounter.cpp:56,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/support/PersistedCounter.cpp:59,1
    - Dst: nl::Weave::PersistedCounter::WriteStartValue
      Src: /src/openweave-core/src/lib/support/PersistedCounter.cpp:64,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/PersistedCounter.cpp:65,1
    - Dst: nl::Weave::MonotonicallyIncreasingCounter::Init
      Src: /src/openweave-core/src/lib/support/PersistedCounter.cpp:68,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/PersistedCounter.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - aId
    - aEpoch
    argTypes:
    - nl::Weave::Platform::PersistedStorage::Key
    - uint32_t
    constantsTouched: []
    func_position:
      end: 73
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 73
    functionName: nl::Weave::PersistedCounter::Init
    functionSourceFile: /src/openweave-core/src/lib/support/PersistedCounter.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::PersistedCounter::ReadStartValue
    - nl::Weave::PersistedCounter::WriteStartValue
    - VerifyOrExit
    - WeaveLogDetail
    - nl::Weave::MonotonicallyIncreasingCounter::Init
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "PersistedCounter::Init(const nl::Weave::Platform::PersistedStorage::Key
      aId,\n                       uint32_t aEpoch)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::PersistedCounter::WriteStartValue
      Src: /src/openweave-core/src/lib/support/PersistedCounter.cpp:80,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/PersistedCounter.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 87
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 87
    functionName: nl::Weave::PersistedCounter::SetValue
    functionSourceFile: /src/openweave-core/src/lib/support/PersistedCounter.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::PersistedCounter::WriteStartValue
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PersistedCounter::SetValue(uint32_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::PersistedCounter::IncrementCount
      Src: /src/openweave-core/src/lib/support/PersistedCounter.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: nl::Weave::PersistedCounter::Advance
    functionSourceFile: /src/openweave-core/src/lib/support/PersistedCounter.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::PersistedCounter::IncrementCount
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PersistedCounter::Advance(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::PersistedCounter::IncrementCount
      Src: /src/openweave-core/src/lib/support/PersistedCounter.cpp:102,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/support/PersistedCounter.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - aValue
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 108
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 108
    functionName: nl::Weave::PersistedCounter::AdvanceEpochRelative
    functionSourceFile: /src/openweave-core/src/lib/support/PersistedCounter.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - nl::Weave::PersistedCounter::IncrementCount
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PersistedCounter::AdvanceEpochRelative(uint32_t aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - aValue
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 127
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 127
    functionName: nl::Weave::PersistedCounter::GetNextValue
    functionSourceFile: /src/openweave-core/src/lib/support/PersistedCounter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: PersistedCounter::GetNextValue(uint32_t &aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::PersistedCounter::GetNextValue
      Src: /src/openweave-core/src/lib/support/PersistedCounter.cpp:135,1
    - Dst: nl::Weave::PersistedCounter::WriteStartValue
      Src: /src/openweave-core/src/lib/support/PersistedCounter.cpp:138,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/PersistedCounter.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 146
    functionName: nl::Weave::PersistedCounter::IncrementCount
    functionSourceFile: /src/openweave-core/src/lib/support/PersistedCounter.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::PersistedCounter::WriteStartValue
    - nl::Weave::PersistedCounter::GetNextValue
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PersistedCounter::IncrementCount(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/support/PersistedCounter.cpp:152,1
    - Dst: nl::Weave::Platform::PersistedStorage::Write
      Src: /src/openweave-core/src/lib/support/PersistedCounter.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aStartValue
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 156
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 156
    functionName: nl::Weave::PersistedCounter::WriteStartValue
    functionSourceFile: /src/openweave-core/src/lib/support/PersistedCounter.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::Platform::PersistedStorage::Write
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PersistedCounter::WriteStartValue(uint32_t aStartValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::PersistedStorage::Read
      Src: /src/openweave-core/src/lib/support/PersistedCounter.cpp:165,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/PersistedCounter.cpp:174,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/support/PersistedCounter.cpp:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - aStartValue
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 183
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 183
    functionName: nl::Weave::PersistedCounter::ReadStartValue
    functionSourceFile: /src/openweave-core/src/lib/support/PersistedCounter.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Platform::PersistedStorage::Read
    - WeaveLogDetail
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PersistedCounter::ReadStartValue(uint32_t &aStartValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FormatError
      Src: /src/openweave-core/src/lib/support/ASN1Error.cpp:71,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - buf
    - bufSize
    - err
    argTypes:
    - char*
    - uint16_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 74
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 74
    functionName: nl::Weave::ASN1::FormatASN1Error
    functionSourceFile: /src/openweave-core/src/lib/support/ASN1Error.cpp
    functionUses: 0
    functionsReached:
    - FormatError
    linkageType: ''
    returnType: bool
    signature: FormatASN1Error(char * buf, uint16_t bufSize, int32_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::FirstWeekdayOfYear
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:65,1
    - Dst: nl::CalendarDateToOrdinalDate
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:76,1
    - Dst: nl::FirstWeekdayOfYear
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - year
    - month
    - day
    - ' mfgYear'
    - ' mfgWeek'
    argTypes:
    - uint16_t
    - uint8_t
    - uint8_t
    - uint16_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 82
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 82
    functionName: nl::DateToManufacturingWeek
    functionSourceFile: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp
    functionUses: 0
    functionsReached:
    - nl::CalendarDateToOrdinalDate
    - nl::FirstWeekdayOfYear
    linkageType: ''
    returnType: void
    signature: DateToManufacturingWeek(uint16_t year, uint8_t month, uint8_t day,
      uint16_t& mfgYear, uint8_t& mfgWeek)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::OrdinalDateToCalendarDate
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - mfgYear
    - mfgWeek
    - ' year'
    - ' month'
    - ' day'
    argTypes:
    - uint16_t
    - uint8_t
    - uint16_t
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 137
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 137
    functionName: nl::ManufacturingWeekToDate
    functionSourceFile: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp
    functionUses: 0
    functionsReached:
    - nl::OrdinalDateToCalendarDate
    linkageType: ''
    returnType: void
    signature: ManufacturingWeekToDate(uint16_t mfgYear, uint8_t mfgWeek, uint16_t&
      year, uint8_t& month, uint8_t& day)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:181,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:181,1
    - Dst: CONVERT_DECIMAL2
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:183,1
    - Dst: CONVERT_DECIMAL2
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:184,1
    - Dst: nl::ManufacturingWeekToDate
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - serialNum
    - ' year'
    - ' month'
    - ' day'
    argTypes:
    - char*
    - uint16_t
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 191
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 191
    functionName: nl::ExtractManufacturingDateFromSerialNumber
    functionSourceFile: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - CONVERT_DECIMAL2
    - VerifyOrExit
    - nl::ManufacturingWeekToDate
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ExtractManufacturingDateFromSerialNumber(const char *serialNum, uint16_t&
      year, uint8_t& month, uint8_t& day)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: nl::IsBase34NoIOChar
    functionSourceFile: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsBase34NoIOChar(char ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:219,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:219,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:222,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:223,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:226,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:229,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:230,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:231,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:234,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:235,1
    - Dst: CONVERT_DECIMAL2
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:238,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:239,1
    - Dst: CONVERT_DECIMAL2
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:242,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:245,1
    - Dst: nl::IsBase34NoIOChar
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:245,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:246,1
    - Dst: nl::IsBase34NoIOChar
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:246,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:247,1
    - Dst: nl::IsBase34NoIOChar
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:247,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:248,1
    - Dst: nl::IsBase34NoIOChar
      Src: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp:248,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - serialNum
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 252
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 252
    functionName: nl::IsValidSerialNumber
    functionSourceFile: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - CONVERT_DECIMAL2
    - VerifyOrExit
    - nl::IsBase34NoIOChar
    linkageType: ''
    returnType: bool
    signature: IsValidSerialNumber(const char *serialNum)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/lib/support/TraitEventUtils.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aEvent
    argTypes:
    - TEvent*
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: nl::LogEvent
    functionSourceFile: /src/openweave-core/src/lib/support/TraitEventUtils.h
    functionUses: 2
    functionsReached:
    - WiFiTelemetry::GetTelemetryStatsAndLogEvent
    linkageType: ''
    returnType: nl::Weave::Profiles::DataManagement::event_id_t
    signature: LogEvent(TEvent* aEvent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/TraitEventUtils.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aEvent
    argTypes:
    - TEvent*
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: nl::NullifyAllEventFields
    functionSourceFile: /src/openweave-core/src/lib/support/TraitEventUtils.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: NullifyAllEventFields(TEvent *aEvent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/lib/support/TraitEventUtils.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aEvent
    - ' aOptions'
    argTypes:
    - TEvent*
    - nl::Weave::Profiles::DataManagement::EventOptions
    constantsTouched: []
    func_position:
      end: 74
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 74
    functionName: nl::LogEvent
    functionSourceFile: /src/openweave-core/src/lib/support/TraitEventUtils.h
    functionUses: 2
    functionsReached:
    - WiFiTelemetry::GetTelemetryStatsAndLogEvent
    linkageType: ''
    returnType: nl::Weave::Profiles::DataManagement::event_id_t
    signature: "LogEvent(TEvent* aEvent,\n    const nl::Weave::Profiles::DataManagement::EventOptions&
      aOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::TLVReaderToDeserializedDataHelper
      Src: /src/openweave-core/src/lib/support/TraitEventUtils.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aReader
    - aEvent
    - aContext
    argTypes:
    - nl::Weave::TLV::TLVReader
    - TEvent*
    - nl::SerializationContext*
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 4
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: nl::DeserializeEvent
    functionSourceFile: /src/openweave-core/src/lib/support/TraitEventUtils.h
    functionUses: 0
    functionsReached:
    - nl::TLVReaderToDeserializedDataHelper
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "DeserializeEvent(nl::Weave::TLV::TLVReader &aReader,\n    TEvent *aEvent,\n
      \   nl::SerializationContext *aContext)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::DeallocateDeserializedStructure
      Src: /src/openweave-core/src/lib/support/TraitEventUtils.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aEvent
    - aContext
    argTypes:
    - TEvent*
    - nl::SerializationContext*
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: nl::DeallocateEvent
    functionSourceFile: /src/openweave-core/src/lib/support/TraitEventUtils.h
    functionUses: 0
    functionsReached:
    - nl::DeallocateDeserializedStructure
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "DeallocateEvent(TEvent *aEvent,\n    nl::SerializationContext *aContext)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<FlagsT>
      Src: /src/openweave-core/src/lib/support/FlagUtils.hpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' inFlags'
    - inFlag
    argTypes:
    - FlagsT
    - FlagT
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: nl::GetFlag
    functionSourceFile: /src/openweave-core/src/lib/support/FlagUtils.hpp
    functionUses: 2
    functionsReached:
    - static_cast<FlagsT>
    linkageType: ''
    returnType: bool
    signature: GetFlag(const FlagsT& inFlags, const FlagT inFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<FlagsT>
      Src: /src/openweave-core/src/lib/support/FlagUtils.hpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' inFlags'
    - inFlag
    argTypes:
    - FlagsT
    - FlagT
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: nl::ClearFlag
    functionSourceFile: /src/openweave-core/src/lib/support/FlagUtils.hpp
    functionUses: 0
    functionsReached:
    - static_cast<FlagsT>
    linkageType: ''
    returnType: void
    signature: ClearFlag(FlagsT& inFlags, const FlagT inFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<FlagsT>
      Src: /src/openweave-core/src/lib/support/FlagUtils.hpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' inFlags'
    - inFlag
    argTypes:
    - FlagsT
    - FlagT
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: nl::SetFlag
    functionSourceFile: /src/openweave-core/src/lib/support/FlagUtils.hpp
    functionUses: 0
    functionsReached:
    - static_cast<FlagsT>
    linkageType: ''
    returnType: void
    signature: SetFlag(FlagsT& inFlags, const FlagT inFlag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::SetFlag
      Src: /src/openweave-core/src/lib/support/FlagUtils.hpp:56,1
    - Dst: nl::ClearFlag
      Src: /src/openweave-core/src/lib/support/FlagUtils.hpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' inFlags'
    - inFlag
    - inValue
    argTypes:
    - FlagsT
    - FlagT
    - bool
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: nl::SetFlag
    functionSourceFile: /src/openweave-core/src/lib/support/FlagUtils.hpp
    functionUses: 1
    functionsReached:
    - nl::ClearFlag
    - nl::SetFlag
    linkageType: ''
    returnType: void
    signature: SetFlag(FlagsT& inFlags, const FlagT inFlag, const bool inValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - ProfileStringContext
    constantsTouched: []
    func_position:
      end: 77
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 77
    functionName: nl::Weave::Support::FindProfileStringContext
    functionSourceFile: /src/openweave-core/src/lib/support/ProfileStringSupport.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ProfileStringContext
    signature: '*FindProfileStringContext(const ProfileStringContext &inContext)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - inOutContext
    argTypes:
    - ProfileStringContext
    constantsTouched: []
    func_position:
      end: 151
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 151
    functionName: nl::Weave::Support::InsertProfileStringContext
    functionSourceFile: /src/openweave-core/src/lib/support/ProfileStringSupport.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: InsertProfileStringContext(ProfileStringContext &inOutContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - inOutContext
    argTypes:
    - ProfileStringContext
    constantsTouched: []
    func_position:
      end: 210
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 210
    functionName: nl::Weave::Support::RemoveProfileStringContext
    functionSourceFile: /src/openweave-core/src/lib/support/ProfileStringSupport.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: RemoveProfileStringContext(ProfileStringContext &inOutContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inOutContext
    argTypes:
    - ProfileStringContext
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: nl::Weave::Support::WEAVE_ERROR::RegisterProfileStringInfo
    functionSourceFile: /src/openweave-core/src/lib/support/ProfileStringSupport.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: WEAVE_ERROR RegisterProfileStringInfo(ProfileStringContext &inOutContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inOutContext
    argTypes:
    - ProfileStringContext
    constantsTouched: []
    func_position:
      end: 269
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 269
    functionName: nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
    functionSourceFile: /src/openweave-core/src/lib/support/ProfileStringSupport.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: WEAVE_ERROR UnregisterProfileStringInfo(ProfileStringContext &inOutContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Support::FindProfileStringContext
      Src: /src/openweave-core/src/lib/support/ProfileStringSupport.cpp:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 295
    functionName: ProfileStringInfo *FindProfileStringInfo(uint32_t inProfileId)
    functionSourceFile: /src/openweave-core/src/lib/support/ProfileStringSupport.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Support::FindProfileStringContext
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: ProfileStringInfo *FindProfileStringInfo(uint32_t inProfileId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: nl::Weave::Counter::Counter
    functionSourceFile: /src/openweave-core/src/lib/support/WeaveCounter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Counter(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: ~Counter(void)
    functionSourceFile: /src/openweave-core/src/lib/support/WeaveCounter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~Counter(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp:59,1
    - Dst: Verhoeff32::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pairingCode
    - pairingCodeLen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 67
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 67
    functionName: nl::PairingCode::VerifyPairingCode
    functionSourceFile: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp
    functionUses: 1
    functionsReached:
    - VerifyOrExit
    - Verhoeff32::ValidateCheckChar
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: VerifyPairingCode(const char *pairingCode, size_t pairingCodeLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toupper
      Src: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp:94,1
    - Dst: Verhoeff32::CharToVal
      Src: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp:103,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - pairingCode
    - ' pairingCodeLen'
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 115
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 115
    functionName: nl::PairingCode::NormalizePairingCode
    functionSourceFile: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp
    functionUses: 1
    functionsReached:
    - Verhoeff32::CharToVal
    - toupper
    linkageType: ''
    returnType: void
    signature: NormalizePairingCode(char *pairingCode, size_t& pairingCodeLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp:143,1
    - Dst: Verhoeff32::ValToChar
      Src: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp:148,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp:153,1
    - Dst: Verhoeff32::ComputeCheckChar
      Src: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - val
    - pairingCodeLen
    - outBuf
    argTypes:
    - uint64_t
    - uint8_t
    - char*
    constantsTouched: []
    func_position:
      end: 163
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 163
    functionName: nl::PairingCode::IntToPairingCode
    functionSourceFile: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - Verhoeff32::ComputeCheckChar
    - Verhoeff32::ValToChar
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: IntToPairingCode(uint64_t val, uint8_t pairingCodeLen, char *outBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp:193,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp:203,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - pairingCode
    - pairingCodeLen
    - ' val'
    argTypes:
    - char*
    - size_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 214
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 214
    functionName: nl::PairingCode::PairingCodeToInt
    functionSourceFile: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PairingCodeToInt(const char *pairingCode, size_t pairingCodeLen, uint64_t&
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff32::CharToVal
      Src: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: nl::PairingCode::IsValidPairingCodeChar
    functionSourceFile: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - Verhoeff32::CharToVal
    linkageType: ''
    returnType: bool
    signature: IsValidPairingCodeChar(char ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff32::CharToVal
      Src: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: nl::PairingCode::PairingCodeCharToInt
    functionSourceFile: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - Verhoeff32::CharToVal
    linkageType: ''
    returnType: int
    signature: PairingCodeCharToInt(char ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff32::ValToChar
      Src: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: nl::PairingCode::IntToPairingCodeChar
    functionSourceFile: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - Verhoeff32::ValToChar
    linkageType: ''
    returnType: char
    signature: IntToPairingCodeChar(int val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp:286,1
    - Dst: nl::Weave::Platform::Security::GetSecureRandomData
      Src: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp:289,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp:290,1
    - Dst: Verhoeff32::ValToChar
      Src: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp:296,1
    - Dst: Verhoeff32::ComputeCheckChar
      Src: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - pairingCodeLen
    - outBuf
    argTypes:
    - uint8_t
    - char*
    constantsTouched: []
    func_position:
      end: 307
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 307
    functionName: nl::PairingCode::GeneratePairingCode
    functionSourceFile: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Platform::Security::GetSecureRandomData
    - Verhoeff32::ComputeCheckChar
    - VerifyOrExit
    - Verhoeff32::ValToChar
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GeneratePairingCode(uint8_t pairingCodeLen, char * outBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/pairing-code/KryptonitePairingCodeUtils.cpp:55,1
    - Dst: nl::PairingCode::VerifyPairingCode
      Src: /src/openweave-core/src/lib/support/pairing-code/KryptonitePairingCodeUtils.cpp:58,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/pairing-code/KryptonitePairingCodeUtils.cpp:59,1
    - Dst: nl::PairingCode::PairingCodeToInt
      Src: /src/openweave-core/src/lib/support/pairing-code/KryptonitePairingCodeUtils.cpp:62,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/pairing-code/KryptonitePairingCodeUtils.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - pairingCode
    - ' deviceId'
    argTypes:
    - char*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 70
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 70
    functionName: nl::PairingCode::KryptonitePairingCodeToDeviceId
    functionSourceFile: /src/openweave-core/src/lib/support/pairing-code/KryptonitePairingCodeUtils.cpp
    functionUses: 1
    functionsReached:
    - nl::PairingCode::PairingCodeToInt
    - nl::PairingCode::VerifyPairingCode
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: KryptonitePairingCodeToDeviceId(const char *pairingCode, uint64_t&
      deviceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/pairing-code/KryptonitePairingCodeUtils.cpp:90,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/pairing-code/KryptonitePairingCodeUtils.cpp:93,1
    - Dst: nl::PairingCode::IntToPairingCode
      Src: /src/openweave-core/src/lib/support/pairing-code/KryptonitePairingCodeUtils.cpp:99,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/pairing-code/KryptonitePairingCodeUtils.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - deviceId
    - pairingCodeBuf
    - pairingCodeBufSize
    argTypes:
    - uint64_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 104
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 104
    functionName: nl::PairingCode::KryptoniteDeviceIdToPairingCode
    functionSourceFile: /src/openweave-core/src/lib/support/pairing-code/KryptonitePairingCodeUtils.cpp
    functionUses: 1
    functionsReached:
    - nl::PairingCode::IntToPairingCode
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: KryptoniteDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf,
      size_t pairingCodeBufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/pairing-code/NevisPairingCodeUtils.cpp:55,1
    - Dst: nl::PairingCode::VerifyPairingCode
      Src: /src/openweave-core/src/lib/support/pairing-code/NevisPairingCodeUtils.cpp:58,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/pairing-code/NevisPairingCodeUtils.cpp:59,1
    - Dst: nl::PairingCode::PairingCodeToInt
      Src: /src/openweave-core/src/lib/support/pairing-code/NevisPairingCodeUtils.cpp:62,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/pairing-code/NevisPairingCodeUtils.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - pairingCode
    - ' deviceId'
    argTypes:
    - char*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 70
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 70
    functionName: nl::PairingCode::NevisPairingCodeToDeviceId
    functionSourceFile: /src/openweave-core/src/lib/support/pairing-code/NevisPairingCodeUtils.cpp
    functionUses: 1
    functionsReached:
    - nl::PairingCode::PairingCodeToInt
    - nl::PairingCode::VerifyPairingCode
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NevisPairingCodeToDeviceId(const char *pairingCode, uint64_t& deviceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/pairing-code/NevisPairingCodeUtils.cpp:90,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/pairing-code/NevisPairingCodeUtils.cpp:93,1
    - Dst: nl::PairingCode::IntToPairingCode
      Src: /src/openweave-core/src/lib/support/pairing-code/NevisPairingCodeUtils.cpp:99,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/pairing-code/NevisPairingCodeUtils.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - deviceId
    - pairingCodeBuf
    - pairingCodeBufSize
    argTypes:
    - uint64_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 104
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 104
    functionName: nl::PairingCode::NevisDeviceIdToPairingCode
    functionSourceFile: /src/openweave-core/src/lib/support/pairing-code/NevisPairingCodeUtils.cpp
    functionUses: 1
    functionsReached:
    - nl::PairingCode::IntToPairingCode
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NevisDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf,
      size_t pairingCodeBufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_secp160r1
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:48,1
    - Dst: uECC_secp192r1
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:52,1
    - Dst: uECC_secp224r1
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:56,1
    - Dst: uECC_secp256r1
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - curveOID
    argTypes:
    - OID
    constantsTouched: []
    func_position:
      end: 65
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 65
    functionName: nl::Weave::Crypto::CurveOID2uECC_Curve
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - uECC_secp192r1
    - uECC_secp256r1
    - uECC_secp224r1
    - uECC_secp160r1
    linkageType: ''
    returnType: uECC_Curve
    signature: CurveOID2uECC_Curve(OID curveOID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::CurveOID2uECC_Curve
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:69,1
    - Dst: uECC_curve_num_bytes
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - curveOID
    argTypes:
    - OID
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: nl::Weave::Crypto::GetCurveSize
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::CurveOID2uECC_Curve
    - uECC_curve_num_bytes
    linkageType: ''
    returnType: int
    signature: GetCurveSize(const OID curveOID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSecureRandomData
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - unsigned
    constantsTouched: []
    func_position:
      end: 87
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 87
    functionName: nl::Weave::Crypto::GetSecureRandomData_uECC
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - GetSecureRandomData
    linkageType: ''
    returnType: int
    signature: GetSecureRandomData_uECC(uint8_t *buf, unsigned len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:104,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:105,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - derInt
    - derIntLen
    - eccInt
    - eccIntLen
    argTypes:
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 108
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 108
    functionName: nl::Weave::Crypto::DecodeDERInt
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeDERInt(const uint8_t *derInt, uint16_t derIntLen, uint8_t *eccInt,
      const uint16_t eccIntLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - eccInt
    - eccIntLen
    - derInt
    - derIntSize
    - ' derIntLen'
    argTypes:
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 135
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 135
    functionName: nl::Weave::Crypto::EncodeDERInt
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EncodeDERInt(const uint8_t *eccInt, uint16_t eccIntLen, uint8_t *derInt,
      const uint16_t derIntSize, uint16_t& derIntLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::DecodeDERInt
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' encodedPrivKey'
    - privKey
    - privKeyLen
    argTypes:
    - EncodedECPrivateKey
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: nl::Weave::Crypto::DecodeECPrivateKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::DecodeDERInt
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeECPrivateKey(const EncodedECPrivateKey& encodedPrivKey, uint8_t
      *privKey, uint16_t privKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::EncodeDERInt
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - privKey
    - privKeyLen
    - ' encodedPrivKey'
    argTypes:
    - uint8_t*
    - uint16_t
    - EncodedECPrivateKey
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: nl::Weave::Crypto::EncodeECPrivateKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::EncodeDERInt
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EncodeECPrivateKey(const uint8_t *privKey, uint16_t privKeyLen, EncodedECPrivateKey&
      encodedPrivKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::CurveOID2uECC_Curve
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:159,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:160,1
    - Dst: nl::Weave::Crypto::GenerateECDSASignature
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:162,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:163,1
    - Dst: uECC_curve_num_bytes
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:166,1
    - Dst: nl::Weave::Crypto::EncodeDERInt
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:168,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:169,1
    - Dst: nl::Weave::Crypto::EncodeDERInt
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:173,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 5
    argNames:
    - curveOID
    - msgHash
    - msgHashLen
    - ' encodedPrivKey'
    - ' encodedSig'
    argTypes:
    - OID
    - uint8_t*
    - uint8_t
    - EncodedECPrivateKey
    - EncodedECDSASignature
    constantsTouched: []
    func_position:
      end: 180
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 180
    functionName: nl::Weave::Crypto::GenerateECDSASignature
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Crypto::GenerateECDSASignature
    - VerifyOrExit
    - nl::Weave::Crypto::CurveOID2uECC_Curve
    - uECC_curve_num_bytes
    - SuccessOrExit
    - nl::Weave::Crypto::EncodeDERInt
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "GenerateECDSASignature(OID curveOID,\n                                   const
      uint8_t *msgHash, uint8_t msgHashLen,\n                                   const
      EncodedECPrivateKey& encodedPrivKey,\n                                   EncodedECDSASignature&
      encodedSig)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::CurveOID2uECC_Curve
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:194,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:195,1
    - Dst: uECC_curve_num_n_bytes
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:198,1
    - Dst: nl::Weave::Crypto::DecodeECPrivateKey
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:200,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:201,1
    - Dst: uECC_set_rng
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:204,1
    - Dst: uECC_sign
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:208,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:209,1
    - Dst: nl::Weave::Crypto::ClearSecretData
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 5
    argNames:
    - curveOID
    - msgHash
    - msgHashLen
    - ' encodedPrivKey'
    - fixedLenSig
    argTypes:
    - OID
    - uint8_t*
    - uint8_t
    - EncodedECPrivateKey
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 215
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 215
    functionName: nl::Weave::Crypto::GenerateECDSASignature
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Crypto::DecodeECPrivateKey
    - uECC_set_rng
    - uECC_sign
    - nl::Weave::Crypto::ClearSecretData
    - VerifyOrExit
    - nl::Weave::Crypto::CurveOID2uECC_Curve
    - SuccessOrExit
    - uECC_curve_num_n_bytes
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "GenerateECDSASignature(OID curveOID,\n                                   const
      uint8_t *msgHash, uint8_t msgHashLen,\n                                   const
      EncodedECPrivateKey& encodedPrivKey,\n                                   uint8_t
      *fixedLenSig)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::CurveOID2uECC_Curve
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:229,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:230,1
    - Dst: uECC_curve_num_bytes
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:233,1
    - Dst: nl::Weave::Crypto::DecodeDERInt
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:235,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:236,1
    - Dst: nl::Weave::Crypto::DecodeDERInt
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:238,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:239,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:242,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:243,1
    - Dst: uECC_verify
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:245,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 5
    argNames:
    - curveOID
    - msgHash
    - msgHashLen
    - ' encodedSig'
    - ' encodedPubKey'
    argTypes:
    - OID
    - uint8_t*
    - uint8_t
    - EncodedECDSASignature
    - EncodedECPublicKey
    constantsTouched: []
    func_position:
      end: 250
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 250
    functionName: nl::Weave::Crypto::VerifyECDSASignature
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - uECC_verify
    - VerifyOrExit
    - nl::Weave::Crypto::CurveOID2uECC_Curve
    - uECC_curve_num_bytes
    - SuccessOrExit
    - nl::Weave::Crypto::DecodeDERInt
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "VerifyECDSASignature(OID curveOID,\n                                 const
      uint8_t *msgHash, uint8_t msgHashLen,\n                                 const
      EncodedECDSASignature& encodedSig,\n                                 const EncodedECPublicKey&
      encodedPubKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::CurveOID2uECC_Curve
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:263,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:264,1
    - Dst: uECC_curve_num_bytes
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:267,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:270,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:271,1
    - Dst: uECC_verify
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:273,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 5
    argNames:
    - curveOID
    - msgHash
    - msgHashLen
    - fixedLenSig
    - ' encodedPubKey'
    argTypes:
    - OID
    - uint8_t*
    - uint8_t
    - uint8_t*
    - EncodedECPublicKey
    constantsTouched: []
    func_position:
      end: 278
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 278
    functionName: nl::Weave::Crypto::VerifyECDSASignature
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::CurveOID2uECC_Curve
    - uECC_curve_num_bytes
    - VerifyOrExit
    - uECC_verify
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "VerifyECDSASignature(OID curveOID,\n                                 const
      uint8_t *msgHash, uint8_t msgHashLen,\n                                 const
      uint8_t *fixedLenSig,\n                                 const EncodedECPublicKey&
      encodedPubKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - privKey
    - len
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 292
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 292
    functionName: nl::Weave::Crypto::IsOneKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsOneKey(const uint8_t *privKey, uint16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::CurveOID2uECC_Curve
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:304,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:305,1
    - Dst: uECC_curve_num_bytes
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:308,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:310,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:313,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:314,1
    - Dst: uECC_valid_public_key
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:317,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:318,1
    - Dst: nl::Weave::Crypto::DecodeECPrivateKey
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:320,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:321,1
    - Dst: uECC_shared_secret
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:323,1
    - Dst: nl::Weave::Crypto::IsOneKey
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:328,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:330,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:334,1
    - Dst: nl::Weave::Crypto::ClearSecretData
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 6
    argNames:
    - curveOID
    - ' encodedPubKey'
    - ' encodedPrivKey'
    - sharedSecretBuf
    - sharedSecretBufSize
    - ' sharedSecretLen'
    argTypes:
    - OID
    - EncodedECPublicKey
    - EncodedECPrivateKey
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 342
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 342
    functionName: nl::Weave::Crypto::ECDHComputeSharedSecret
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::DecodeECPrivateKey
    - nl::Weave::Crypto::ClearSecretData
    - VerifyOrExit
    - nl::Weave::Crypto::IsOneKey
    - nl::Weave::Crypto::CurveOID2uECC_Curve
    - uECC_valid_public_key
    - uECC_curve_num_bytes
    - memcpy
    - SuccessOrExit
    - uECC_shared_secret
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "ECDHComputeSharedSecret(OID curveOID, const EncodedECPublicKey& encodedPubKey,
      const EncodedECPrivateKey& encodedPrivKey,\n                                    uint8_t
      *sharedSecretBuf, uint16_t sharedSecretBufSize, uint16_t& sharedSecretLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::CurveOID2uECC_Curve
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:352,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:353,1
    - Dst: uECC_curve_num_bytes
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:356,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:358,1
    - Dst: uECC_set_rng
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:361,1
    - Dst: uECC_make_key
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:364,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:365,1
    - Dst: nl::Weave::Crypto::EncodeECPrivateKey
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:371,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:372,1
    - Dst: nl::Weave::Crypto::ClearSecretData
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - curveOID
    - ' encodedPubKey'
    - ' encodedPrivKey'
    argTypes:
    - OID
    - EncodedECPublicKey
    - EncodedECPrivateKey
    constantsTouched: []
    func_position:
      end: 378
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 378
    functionName: nl::Weave::Crypto::GenerateECDHKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - uECC_set_rng
    - nl::Weave::Crypto::ClearSecretData
    - VerifyOrExit
    - nl::Weave::Crypto::CurveOID2uECC_Curve
    - nl::Weave::Crypto::EncodeECPrivateKey
    - uECC_curve_num_bytes
    - SuccessOrExit
    - uECC_make_key
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenerateECDHKey(OID curveOID, EncodedECPublicKey& encodedPubKey, EncodedECPrivateKey&
      encodedPrivKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::CurveOID2uECC_Curve
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:387,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:388,1
    - Dst: uECC_curve_num_bytes
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:391,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:396,1
    - Dst: uECC_curve_G
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:398,1
    - Dst: uECC_vli_nativeToBytes
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:401,1
    - Dst: uECC_vli_nativeToBytes
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:402,1
    - Dst: uECC_curve_num_words
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - curveOID
    - ' encodedG'
    argTypes:
    - OID
    - EncodedECPublicKey
    constantsTouched: []
    func_position:
      end: 407
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 407
    functionName: nl::Weave::Crypto::GetCurveG
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - uECC_curve_G
    - VerifyOrExit
    - nl::Weave::Crypto::CurveOID2uECC_Curve
    - uECC_vli_nativeToBytes
    - uECC_curve_num_bytes
    - uECC_curve_num_words
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetCurveG(OID curveOID, EncodedECPublicKey& encodedG)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_curve_p
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:441,1
    - Dst: uECC_curve_num_words
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:442,1
    - Dst: uECC_point_isZero
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:445,1
    - Dst: uECC_point_set
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:446,1
    - Dst: uECC_point_isZero
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:451,1
    - Dst: uECC_point_set
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:452,1
    - Dst: uECC_point_equal
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:457,1
    - Dst: uECC_point_mult
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:459,1
    - Dst: uECC_vli_equal
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:464,1
    - Dst: uECC_point_clear
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:465,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:480,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:481,1
    - Dst: uECC_vli_modInv
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:483,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:484,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:487,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:488,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:489,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:492,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:493,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:494,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:497,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:498,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 4
    argNames:
    - result
    - left
    - right
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 499
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 499
    functionName: nl::Weave::Crypto::uECC_point_add
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - uECC_curve_p
    - uECC_point_mult
    - uECC_point_clear
    - uECC_vli_set
    - uECC_point_equal
    - uECC_vli_modInv
    - uECC_vli_equal
    - uECC_point_isZero
    - uECC_curve_num_words
    - uECC_point_set
    - uECC_vli_modSub
    - uECC_vli_modMult_fast
    linkageType: ''
    returnType: void
    signature: "uECC_point_add(uECC_word_t *result,\n                           const
      uECC_word_t *left,\n                           const uECC_word_t *right,\n                           uECC_Curve
      curve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_bytesToNative
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:511,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:515,1
    - Dst: uECC_vli_mmod
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:518,1
    - Dst: uECC_curve_n
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - result
    - input
    - input_len
    - curve
    argTypes:
    - uECC_word_t*
    - uint8_t*
    - wordcount_t
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 520
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 520
    functionName: nl::Weave::Crypto::uECC_vli_bytesToNative_mod_n
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - uECC_vli_mmod
    - uECC_vli_bytesToNative
    - uECC_curve_n
    - memcpy
    linkageType: ''
    returnType: void
    signature: "uECC_vli_bytesToNative_mod_n(uECC_word_t *result,\n                                         const
      uint8_t *input,\n                                         wordcount_t input_len,\n
      \                                        uECC_Curve curve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 524
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 524
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::Init
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EllipticCurveJPAKE::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::EllipticCurveJPAKE::Reset
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 529
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 529
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::EllipticCurveJPAKE::Reset
    linkageType: ''
    returnType: void
    signature: EllipticCurveJPAKE::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 535
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 535
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::Reset
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: EllipticCurveJPAKE::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CurveOID2uECC_Curve
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:545,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:546,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:549,1
    - Dst: uECC_vli_bytesToNative_mod_n
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:554,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:557,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:558,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:563,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:564,1
    - Dst: uECC_set_rng
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:567,1
    - Dst: nl::Weave::Crypto::EllipticCurveJPAKE::Reset
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:571,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 7
    argNames:
    - curveOID
    - pw
    - pwLen
    - localName
    - localNameLen
    - peerName
    - peerNameLen
    argTypes:
    - OID
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 574
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 574
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::Init
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - uECC_set_rng
    - uECC_vli_bytesToNative_mod_n
    - VerifyOrExit
    - memset
    - nl::Weave::Crypto::EllipticCurveJPAKE::Reset
    - memcpy
    - CurveOID2uECC_Curve
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "EllipticCurveJPAKE::Init(const OID curveOID,\n                                     const
      uint8_t *pw, const uint16_t pwLen,\n                                     const
      uint8_t *localName, const uint16_t localNameLen,\n                                     const
      uint8_t *peerName, const uint16_t peerNameLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256::Begin
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:582,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:583,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:584,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:585,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:586,1
    - Dst: SHA256::Finish
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - words
    - h
    - zkpG
    - stepPart
    - name
    - nameLen
    argTypes:
    - wordcount_t
    - uint8_t*
    - EccPoint
    - ECJPAKEStepPart*
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 588
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 588
    functionName: nl::Weave::Crypto::ZeroKnowledgeProofHash
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - SHA256::Begin
    - SHA256::AddData
    - SHA256::Finish
    linkageType: ''
    returnType: void
    signature: ZeroKnowledgeProofHash(const wordcount_t words, uint8_t *h, const EccPoint
      zkpG, const ECJPAKEStepPart *stepPart, const uint8_t *name, const uint16_t nameLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - stepPart
    - buf
    - bufSize
    - ' stepDataLen'
    argTypes:
    - ECJPAKEStepPart*
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 607
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 607
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::FindStepPartDataPointers
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EllipticCurveJPAKE::FindStepPartDataPointers(ECJPAKEStepPart *stepPart,
      const uint8_t *buf, const uint16_t bufSize, uint16_t& stepDataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZeroKnowledgeProofHash
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:621,1
    - Dst: uECC_curve_num_words
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:621,1
    - Dst: uECC_vli_bytesToNative_mod_n
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:623,1
    - Dst: uECC_point_mult
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:625,1
    - Dst: uECC_point_mult
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:627,1
    - Dst: uECC_point_add
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:629,1
    - Dst: uECC_point_equal
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:631,1
    - Dst: uECC_curve_num_words
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - stepPart
    - zkpG
    - name
    - nameLen
    argTypes:
    - ECJPAKEStepPart*
    - EccPoint
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 635
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 635
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::VerifyZeroKnowledgeProof
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - uECC_point_mult
    - uECC_vli_bytesToNative_mod_n
    - uECC_point_equal
    - uECC_curve_num_words
    - uECC_point_add
    - ZeroKnowledgeProofHash
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EllipticCurveJPAKE::VerifyZeroKnowledgeProof(const ECJPAKEStepPart
      *stepPart, const EccPoint zkpG, const uint8_t *name, const uint16_t nameLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_curve_n
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:646,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:651,1
    - Dst: uECC_generate_random_int
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:651,1
    - Dst: uECC_point_mult
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:654,1
    - Dst: ZeroKnowledgeProofHash
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:656,1
    - Dst: uECC_curve_num_words
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:656,1
    - Dst: uECC_vli_bytesToNative_mod_n
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:658,1
    - Dst: uECC_vli_modMult
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:660,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 5
    argNames:
    - stepPart
    - x
    - zkpG
    - name
    - nameLen
    argTypes:
    - ECJPAKEStepPart*
    - uECC_word_t*
    - EccPoint
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 665
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 665
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::GenerateZeroKnowledgeProof
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - uECC_generate_random_int
    - uECC_point_mult
    - uECC_vli_bytesToNative_mod_n
    - VerifyOrExit
    - uECC_vli_modSub
    - uECC_curve_num_words
    - uECC_curve_n
    - uECC_vli_modMult
    - ZeroKnowledgeProofHash
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EllipticCurveJPAKE::GenerateZeroKnowledgeProof(ECJPAKEStepPart *stepPart,
      const uECC_word_t *x, const EccPoint zkpG, const uint8_t *name, const uint16_t
      nameLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_point_mult
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:669,1
    - Dst: nl::Weave::Crypto::EllipticCurveJPAKE::GenerateZeroKnowledgeProof
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - stepPart
    - x
    - G
    - name
    - nameLen
    argTypes:
    - ECJPAKEStepPart*
    - uECC_word_t*
    - EccPoint
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 671
      start: 667
    functionDepth: 2
    functionLinenumber: 667
    functionLinenumberEnd: 671
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::GenerateStepPart
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - uECC_point_mult
    - nl::Weave::Crypto::EllipticCurveJPAKE::GenerateZeroKnowledgeProof
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EllipticCurveJPAKE::GenerateStepPart(ECJPAKEStepPart *stepPart, const
      uECC_word_t *x, const EccPoint G, const uint8_t *name, const uint16_t nameLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_curve_n
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:677,1
    - Dst: nl::Weave::Crypto::EllipticCurveJPAKE::FindStepPartDataPointers
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:681,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:682,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:685,1
    - Dst: uECC_generate_random_int
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:685,1
    - Dst: nl::Weave::Crypto::EllipticCurveJPAKE::GenerateStepPart
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:688,1
    - Dst: uECC_curve_G
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:688,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:689,1
    - Dst: uECC_point_add
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:691,1
    - Dst: uECC_point_add
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:692,1
    - Dst: nl::Weave::Crypto::EllipticCurveJPAKE::FindStepPartDataPointers
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:695,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:696,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:698,1
    - Dst: uECC_generate_random_int
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:698,1
    - Dst: nl::Weave::Crypto::EllipticCurveJPAKE::GenerateStepPart
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:701,1
    - Dst: uECC_curve_G
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:701,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:702,1
    - Dst: uECC_point_add
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:704,1
    - Dst: uECC_vli_modMult
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 3
    argNames:
    - buf
    - bufSize
    - ' stepDataLen'
    argTypes:
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 712
      start: 673
    functionDepth: 3
    functionLinenumber: 673
    functionLinenumberEnd: 712
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::GenerateStep1
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - uECC_generate_random_int
    - uECC_curve_G
    - VerifyOrExit
    - nl::Weave::Crypto::EllipticCurveJPAKE::GenerateStepPart
    - SuccessOrExit
    - uECC_vli_modMult
    - uECC_point_add
    - uECC_curve_n
    - nl::Weave::Crypto::EllipticCurveJPAKE::FindStepPartDataPointers
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EllipticCurveJPAKE::GenerateStep1(const uint8_t *buf, const uint16_t
      bufSize, uint16_t& stepDataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::EllipticCurveJPAKE::FindStepPartDataPointers
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:720,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:721,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:723,1
    - Dst: uECC_valid_point
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:723,1
    - Dst: nl::Weave::Crypto::EllipticCurveJPAKE::VerifyZeroKnowledgeProof
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:725,1
    - Dst: uECC_curve_G
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:725,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:726,1
    - Dst: uECC_point_add
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:728,1
    - Dst: uECC_point_add
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:729,1
    - Dst: nl::Weave::Crypto::EllipticCurveJPAKE::FindStepPartDataPointers
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:732,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:733,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:735,1
    - Dst: uECC_valid_point
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:735,1
    - Dst: nl::Weave::Crypto::EllipticCurveJPAKE::VerifyZeroKnowledgeProof
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:737,1
    - Dst: uECC_curve_G
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:737,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:738,1
    - Dst: uECC_point_add
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:740,1
    - Dst: uECC_point_set
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:741,1
    - Dst: uECC_curve_num_words
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 3
    argNames:
    - buf
    - bufSize
    - ' stepDataLen'
    argTypes:
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 745
      start: 714
    functionDepth: 2
    functionLinenumber: 714
    functionLinenumberEnd: 745
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::ProcessStep1
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - uECC_curve_G
    - VerifyOrExit
    - uECC_valid_point
    - uECC_point_set
    - uECC_curve_num_words
    - SuccessOrExit
    - uECC_point_add
    - nl::Weave::Crypto::EllipticCurveJPAKE::VerifyZeroKnowledgeProof
    - nl::Weave::Crypto::EllipticCurveJPAKE::FindStepPartDataPointers
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EllipticCurveJPAKE::ProcessStep1(const uint8_t *buf, const uint16_t
      bufSize, uint16_t& stepDataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::EllipticCurveJPAKE::FindStepPartDataPointers
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:760,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:761,1
    - Dst: nl::Weave::Crypto::EllipticCurveJPAKE::GenerateStepPart
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - buf
    - bufSize
    - ' stepDataLen'
    argTypes:
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 768
      start: 747
    functionDepth: 3
    functionLinenumber: 747
    functionLinenumberEnd: 768
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::GenerateStep2
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - SuccessOrExit
    - nl::Weave::Crypto::EllipticCurveJPAKE::GenerateStepPart
    - nl::Weave::Crypto::EllipticCurveJPAKE::FindStepPartDataPointers
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EllipticCurveJPAKE::GenerateStep2(const uint8_t *buf, const uint16_t
      bufSize, uint16_t& stepDataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_curve_num_words
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:775,1
    - Dst: uECC_point_mult
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:786,1
    - Dst: uECC_vli_sub
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:788,1
    - Dst: uECC_curve_p
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:788,1
    - Dst: uECC_point_add
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:790,1
    - Dst: uECC_point_mult
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:792,1
    - Dst: SHA256::Begin
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:794,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:795,1
    - Dst: uECC_curve_num_words
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:795,1
    - Dst: SHA256::Finish
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - Gx
    argTypes:
    - EccPoint
    constantsTouched: []
    func_position:
      end: 797
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 797
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::ComputeSharedSecret
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - uECC_vli_sub
    - uECC_curve_p
    - uECC_point_mult
    - SHA256::Finish
    - SHA256::Begin
    - uECC_curve_num_words
    - SHA256::AddData
    - uECC_point_add
    linkageType: ''
    returnType: void
    signature: EllipticCurveJPAKE::ComputeSharedSecret(const EccPoint Gx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::EllipticCurveJPAKE::FindStepPartDataPointers
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:805,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:806,1
    - Dst: nl::Weave::Crypto::EllipticCurveJPAKE::VerifyZeroKnowledgeProof
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:808,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:809,1
    - Dst: nl::Weave::Crypto::EllipticCurveJPAKE::ComputeSharedSecret
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - buf
    - bufSize
    - ' stepDataLen'
    argTypes:
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 815
      start: 799
    functionDepth: 2
    functionLinenumber: 799
    functionLinenumberEnd: 815
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::ProcessStep2
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::EllipticCurveJPAKE::ComputeSharedSecret
    - SuccessOrExit
    - nl::Weave::Crypto::EllipticCurveJPAKE::VerifyZeroKnowledgeProof
    - nl::Weave::Crypto::EllipticCurveJPAKE::FindStepPartDataPointers
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EllipticCurveJPAKE::ProcessStep2(const uint8_t *buf, const uint16_t
      bufSize, uint16_t& stepDataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 820
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 820
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::GetSharedSecret
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: '*EllipticCurveJPAKE::GetSharedSecret()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_curve_num_words
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 825
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 825
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::GetCurveSize
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
    functionUses: 0
    functionsReached:
    - uECC_curve_num_words
    linkageType: ''
    returnType: int
    signature: EllipticCurveJPAKE::GetCurveSize()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 100
    functionName: nl::Weave::Crypto::CTR_DRBG
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/DRBG.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: CTR_DRBG
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 66
    functionName: nl::Weave::Crypto::CTRMode
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/CTRMode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: CTRMode
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 73
    functionName: nl::Weave::Crypto::HMAC
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HMAC.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: HMAC
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PutBytes
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' writer'
    - tag
    argTypes:
    - TLVWriter
    - uint64_t
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: nl::Weave::Crypto::EncodedHMACSignature::WriteSignature
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HMAC.h
    functionUses: 0
    functionsReached:
    - PutBytes
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EncodedHMACSignature::WriteSignature(TLVWriter& writer, uint64_t tag)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: nl::Weave::Platform::Security::AES128BlockCipherEnc
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: AES128BlockCipherEnc
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: nl::Weave::Platform::Security::AES128BlockCipherDec
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: AES128BlockCipherDec
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: nl::Weave::Platform::Security::AES256BlockCipherEnc
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: AES256BlockCipherEnc
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: nl::Weave::Platform::Security::AES256BlockCipherDec
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: AES256BlockCipherDec
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: nl::Weave::Crypto::CTR_DRBG<BlockCipher>::CTR_DRBG
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/DRBG.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: CTR_DRBG<BlockCipher>::CTR_DRBG()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Uninstantiate
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: CTR_DRBG<BlockCipher>::~CTR_DRBG()
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/DRBG.cpp
    functionUses: 0
    functionsReached:
    - Uninstantiate
    linkageType: ''
    returnType: void
    signature: CTR_DRBG<BlockCipher>::~CTR_DRBG()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:61,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:67,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:77,1
    - Dst: SetKey
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:80,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:83,1
    - Dst: nl::Weave::Crypto::CTR_DRBG<BlockCipher>::Reseed
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:87,1
    - Dst: nl::Weave::Crypto::CTR_DRBG<BlockCipher>::Uninstantiate
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - entropyFunct
    - entropyLen
    - personalizationData
    - perDataLen
    argTypes:
    - EntropyFunct
    - uint16_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 93
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 93
    functionName: nl::Weave::Crypto::CTR_DRBG<BlockCipher>::Instantiate
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/DRBG.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::CTR_DRBG<BlockCipher>::Uninstantiate
    - nl::Weave::Crypto::CTR_DRBG<BlockCipher>::Reseed
    - VerifyOrExit
    - memset
    - SetKey
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "CTR_DRBG<BlockCipher>::Instantiate(EntropyFunct entropyFunct, uint16_t
      entropyLen,\n                                               const uint8_t *personalizationData,
      uint16_t perDataLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:107,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:111,1
    - Dst: mEntropyFunct
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:115,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:116,1
    - Dst: nl::Weave::Crypto::CTR_DRBG<BlockCipher>::DerivationFunction
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:119,1
    - Dst: nl::Weave::Crypto::CTR_DRBG<BlockCipher>::Update
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - addData
    - addDataLen
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 129
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 129
    functionName: nl::Weave::Crypto::CTR_DRBG<BlockCipher>::Reseed
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/DRBG.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Crypto::CTR_DRBG<BlockCipher>::Update
    - mEntropyFunct
    - nl::Weave::Crypto::CTR_DRBG<BlockCipher>::DerivationFunction
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CTR_DRBG<BlockCipher>::Reseed(const uint8_t *addData, uint16_t addDataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:143,1
    - Dst: nl::Weave::Crypto::CTR_DRBG<BlockCipher>::DerivationFunction
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:146,1
    - Dst: nl::Weave::Crypto::CTR_DRBG<BlockCipher>::Update
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:149,1
    - Dst: nl::Weave::Crypto::CTR_DRBG<BlockCipher>::IncrementCounter
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:155,1
    - Dst: EncryptBlock
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:158,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:164,1
    - Dst: nl::Weave::Crypto::CTR_DRBG<BlockCipher>::Update
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - outData
    - outDataLen
    - addData
    - addDataLen
    argTypes:
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 175
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 175
    functionName: nl::Weave::Crypto::CTR_DRBG<BlockCipher>::GenerateInternal
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/DRBG.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::CTR_DRBG<BlockCipher>::Update
    - nl::Weave::Crypto::CTR_DRBG<BlockCipher>::DerivationFunction
    - VerifyOrExit
    - memcpy
    - nl::Weave::Crypto::CTR_DRBG<BlockCipher>::IncrementCounter
    - EncryptBlock
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "CTR_DRBG<BlockCipher>::GenerateInternal(uint8_t *outData, uint16_t
      outDataLen,\n                                                    const uint8_t
      *addData, uint16_t addDataLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:184,1
    - Dst: nl::Weave::Crypto::CTR_DRBG<BlockCipher>::Reseed
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:189,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:190,1
    - Dst: nl::Weave::Crypto::CTR_DRBG<BlockCipher>::GenerateInternal
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:197,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - outData
    - outDataLen
    - addData
    - addDataLen
    argTypes:
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 202
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 202
    functionName: nl::Weave::Crypto::CTR_DRBG<BlockCipher>::Generate
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/DRBG.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::CTR_DRBG<BlockCipher>::Reseed
    - VerifyOrExit
    - nl::Weave::Crypto::CTR_DRBG<BlockCipher>::GenerateInternal
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "CTR_DRBG<BlockCipher>::Generate(uint8_t *outData, uint16_t outDataLen,\n
      \                                           const uint8_t *addData, uint16_t
      addDataLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:207,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: nl::Weave::Crypto::CTR_DRBG<BlockCipher>::Uninstantiate
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/DRBG.cpp
    functionUses: 1
    functionsReached:
    - Reset
    - memset
    linkageType: ''
    returnType: void
    signature: CTR_DRBG<BlockCipher>::Uninstantiate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::CTR_DRBG<BlockCipher>::IncrementCounter
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:220,1
    - Dst: EncryptBlock
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:223,1
    - Dst: SetKey
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:231,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 233
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 233
    functionName: nl::Weave::Crypto::CTR_DRBG<BlockCipher>::Update
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/DRBG.cpp
    functionUses: 2
    functionsReached:
    - SetKey
    - EncryptBlock
    - memcpy
    - nl::Weave::Crypto::CTR_DRBG<BlockCipher>::IncrementCounter
    linkageType: ''
    returnType: void
    signature: CTR_DRBG<BlockCipher>::Update(const uint8_t *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 241
    functionName: nl::Weave::Crypto::CTR_DRBG<BlockCipher>::IncrementCounter
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/DRBG.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CTR_DRBG<BlockCipher>::IncrementCounter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BlockCipher::SetKey
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:266,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:286,1
    - Dst: BlockCipher::EncryptBlock
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:324,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:328,1
    - Dst: BlockCipher::SetKey
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:332,1
    - Dst: BlockCipher::EncryptBlock
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:340,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/crypto/DRBG.cpp:346,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 5
    argNames:
    - seed
    - data2
    - data2Len
    - data1
    - data1Len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 348
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 348
    functionName: nl::Weave::Crypto::CTR_DRBG<BlockCipher>::DerivationFunction
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/DRBG.cpp
    functionUses: 2
    functionsReached:
    - BlockCipher::EncryptBlock
    - BlockCipher::SetKey
    - memcpy
    - memset
    linkageType: ''
    returnType: void
    signature: "CTR_DRBG<BlockCipher>::DerivationFunction(uint8_t *seed, const uint8_t
      *data2, uint16_t data2Len,\n                                               const
      uint8_t *data1, uint16_t data1Len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 68
    functionName: nl::Weave::Crypto::HKDF
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HKDF.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: HKDF
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: ~HKDFSHA1Or256(void)
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HKDF.h
    functionUses: 0
    functionsReached:
    - Reset
    linkageType: ''
    returnType: void
    signature: ~HKDFSHA1Or256(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: nl::Weave::Crypto::HKDFSHA1Or256::ObjBuf
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HKDF.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*ObjBuf()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::HKDFSHA1Or256::ObjBuf
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA1Obj
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HKDF.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::HKDFSHA1Or256::ObjBuf
    linkageType: ''
    returnType: HKDFSHA1
    signature: '*HKDFSHA1Obj()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::HKDFSHA1Or256::ObjBuf
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA256Obj
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HKDF.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::HKDFSHA1Or256::ObjBuf
    linkageType: ''
    returnType: HKDFSHA256
    signature: '*HKDFSHA256Obj()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_sha1_init
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: nl::Weave::Platform::Security::SHA1::SHA1
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - mbedtls_sha1_init
    linkageType: ''
    returnType: void
    signature: SHA1::SHA1()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_sha1_free
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: SHA1::~SHA1()
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - mbedtls_sha1_free
    linkageType: ''
    returnType: void
    signature: SHA1::~SHA1()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: nl::Weave::Platform::Security::SHA1::Begin
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: SHA1::Begin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - dataLen
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: nl::Weave::Platform::Security::SHA1::AddData
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: SHA1::AddData(const uint8_t * data, uint16_t dataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hashBuf
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: nl::Weave::Platform::Security::SHA1::Finish
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: SHA1::Finish(uint8_t *hashBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_sha1_init
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: nl::Weave::Platform::Security::SHA1::Reset
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - mbedtls_sha1_init
    linkageType: ''
    returnType: void
    signature: SHA1::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_sha256_init
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: nl::Weave::Platform::Security::SHA256::SHA256
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - mbedtls_sha256_init
    linkageType: ''
    returnType: void
    signature: SHA256::SHA256()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_sha256_free
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: SHA256::~SHA256()
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - mbedtls_sha256_free
    linkageType: ''
    returnType: void
    signature: SHA256::~SHA256()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: nl::Weave::Platform::Security::SHA256::Begin
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: SHA256::Begin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - dataLen
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: nl::Weave::Platform::Security::SHA256::AddData
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: SHA256::AddData(const uint8_t * data, uint16_t dataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hashBuf
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: nl::Weave::Platform::Security::SHA256::Finish
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: SHA256::Finish(uint8_t * hashBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_sha256_init
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: nl::Weave::Platform::Security::SHA256::Reset
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - mbedtls_sha256_init
    linkageType: ''
    returnType: void
    signature: SHA256::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_aes_init
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: nl::Weave::Platform::Security::AES128BlockCipher::AES128BlockCipher
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - mbedtls_aes_init
    linkageType: ''
    returnType: void
    signature: AES128BlockCipher::AES128BlockCipher()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_aes_free
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: AES128BlockCipher::~AES128BlockCipher()
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - mbedtls_aes_free
    linkageType: ''
    returnType: void
    signature: AES128BlockCipher::~AES128BlockCipher()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_aes_init
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: nl::Weave::Platform::Security::AES128BlockCipher::Reset
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - mbedtls_aes_init
    linkageType: ''
    returnType: void
    signature: AES128BlockCipher::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_aes_setkey_enc
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: nl::Weave::Platform::Security::AES128BlockCipherEnc::SetKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - mbedtls_aes_setkey_enc
    linkageType: ''
    returnType: void
    signature: AES128BlockCipherEnc::SetKey(const uint8_t *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inBlock
    - outBlock
    argTypes:
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: nl::Weave::Platform::Security::AES128BlockCipherEnc::EncryptBlock
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: AES128BlockCipherEnc::EncryptBlock(const uint8_t *inBlock, uint8_t
      *outBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_aes_setkey_dec
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: nl::Weave::Platform::Security::AES128BlockCipherDec::SetKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - mbedtls_aes_setkey_dec
    linkageType: ''
    returnType: void
    signature: AES128BlockCipherDec::SetKey(const uint8_t *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inBlock
    - outBlock
    argTypes:
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: nl::Weave::Platform::Security::AES128BlockCipherDec::DecryptBlock
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: AES128BlockCipherDec::DecryptBlock(const uint8_t *inBlock, uint8_t
      *outBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_aes_init
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: nl::Weave::Platform::Security::AES256BlockCipher::AES256BlockCipher
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - mbedtls_aes_init
    linkageType: ''
    returnType: void
    signature: AES256BlockCipher::AES256BlockCipher()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_aes_free
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: AES256BlockCipher::~AES256BlockCipher()
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - mbedtls_aes_free
    linkageType: ''
    returnType: void
    signature: AES256BlockCipher::~AES256BlockCipher()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_aes_init
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: nl::Weave::Platform::Security::AES256BlockCipher::Reset
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - mbedtls_aes_init
    linkageType: ''
    returnType: void
    signature: AES256BlockCipher::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_aes_setkey_enc
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: nl::Weave::Platform::Security::AES256BlockCipherEnc::SetKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - mbedtls_aes_setkey_enc
    linkageType: ''
    returnType: void
    signature: AES256BlockCipherEnc::SetKey(const uint8_t *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inBlock
    - outBlock
    argTypes:
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: nl::Weave::Platform::Security::AES256BlockCipherEnc::EncryptBlock
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: AES256BlockCipherEnc::EncryptBlock(const uint8_t *inBlock, uint8_t
      *outBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_aes_setkey_dec
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: nl::Weave::Platform::Security::AES256BlockCipherDec::SetKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - mbedtls_aes_setkey_dec
    linkageType: ''
    returnType: void
    signature: AES256BlockCipherDec::SetKey(const uint8_t *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inBlock
    - outBlock
    argTypes:
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: nl::Weave::Platform::Security::AES256BlockCipherDec::DecryptBlock
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: AES256BlockCipherDec::DecryptBlock(const uint8_t *inBlock, uint8_t
      *outBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Java_SQLite_Database__1open
      Src: /src/openweave-core/src/lib/support/crypto/WeaveRNG-NestDRBG.cpp:68,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/support/crypto/WeaveRNG-NestDRBG.cpp:71,1
    - Dst: strerror
      Src: /src/openweave-core/src/lib/support/crypto/WeaveRNG-NestDRBG.cpp:71,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/crypto/WeaveRNG-NestDRBG.cpp:72,1
    - Dst: nl::Inet::AsyncDNSResolverSockets::NotifyWeaveThread
      Src: /src/openweave-core/src/lib/support/crypto/WeaveRNG-NestDRBG.cpp:75,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/support/crypto/WeaveRNG-NestDRBG.cpp:78,1
    - Dst: strerror
      Src: /src/openweave-core/src/lib/support/crypto/WeaveRNG-NestDRBG.cpp:78,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/crypto/WeaveRNG-NestDRBG.cpp:79,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/support/crypto/WeaveRNG-NestDRBG.cpp:83,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/crypto/WeaveRNG-NestDRBG.cpp:84,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/support/crypto/WeaveRNG-NestDRBG.cpp:87,1
    - Dst: close
      Src: /src/openweave-core/src/lib/support/crypto/WeaveRNG-NestDRBG.cpp:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 93
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 93
    functionName: nl::Weave::Platform::Security::GetDRBGSeedDevRandom
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/WeaveRNG-NestDRBG.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - WeaveLogProgress
    - ExitNow
    - close
    - strerror
    - nl::Inet::AsyncDNSResolverSockets::NotifyWeaveThread
    - Java_SQLite_Database__1open
    linkageType: ''
    returnType: int
    signature: GetDRBGSeedDevRandom(uint8_t *buf, size_t bufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Instantiate
      Src: /src/openweave-core/src/lib/support/crypto/WeaveRNG-NestDRBG.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - entropyFunct
    - entropyLen
    - personalizationData
    - perDataLen
    argTypes:
    - EntropyFunct
    - uint16_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 109
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 109
    functionName: nl::Weave::Platform::Security::InitSecureRandomDataSource
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/WeaveRNG-NestDRBG.cpp
    functionUses: 5
    functionsReached:
    - Instantiate
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: InitSecureRandomDataSource(EntropyFunct entropyFunct, uint16_t entropyLen,
      const uint8_t *personalizationData, uint16_t perDataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Generate
      Src: /src/openweave-core/src/lib/support/crypto/WeaveRNG-NestDRBG.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: nl::Weave::Platform::Security::GetSecureRandomData
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/WeaveRNG-NestDRBG.cpp
    functionUses: 6
    functionsReached:
    - Generate
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetSecureRandomData(uint8_t *buf, uint16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_seed
      Src: /src/openweave-core/src/lib/support/crypto/WeaveRNG-OpenSSL.cpp:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - entropyFunct
    - entropyLen
    - personalizationData
    - perDataLen
    argTypes:
    - nl::Weave::Crypto::EntropyFunct
    - uint16_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 52
    functionName: nl::Weave::Platform::Security::InitSecureRandomDataSource
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/WeaveRNG-OpenSSL.cpp
    functionUses: 5
    functionsReached:
    - RAND_seed
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: InitSecureRandomDataSource(nl::Weave::Crypto::EntropyFunct entropyFunct,
      uint16_t entropyLen, const uint8_t *personalizationData, uint16_t perDataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openweave-core/src/lib/support/crypto/WeaveRNG-OpenSSL.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: nl::Weave::Platform::Security::GetSecureRandomData
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/WeaveRNG-OpenSSL.cpp
    functionUses: 6
    functionsReached:
    - RAND_bytes
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetSecureRandomData(uint8_t *buf, uint16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::WEAVE_ERROR::DecodeECKey
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:73,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:74,1
    - Dst: ECDSA_do_sign
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:77,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:78,1
    - Dst: EncodeECDSASignature
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:81,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:82,1
    - Dst: ECDSA_SIG_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:85,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - curveOID
    - msgHash
    - msgHashLen
    - ' encodedPrivKey'
    - ' encodedSig'
    argTypes:
    - OID
    - uint8_t*
    - uint8_t
    - EncodedECPrivateKey
    - EncodedECDSASignature
    constantsTouched: []
    func_position:
      end: 89
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 89
    functionName: nl::Weave::Crypto::WEAVE_ERROR::GenerateECDSASignature
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - EC_KEY_free
    - VerifyOrExit
    - nl::Weave::Crypto::WEAVE_ERROR::DecodeECKey
    - SuccessOrExit
    - ECDSA_SIG_free
    - EncodeECDSASignature
    - ECDSA_do_sign
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: "WEAVE_ERROR GenerateECDSASignature(OID curveOID,\n                                   const
      uint8_t *msgHash, uint8_t msgHashLen,\n                                   const
      EncodedECPrivateKey& encodedPrivKey,\n                                   EncodedECDSASignature&
      encodedSig)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecodeECKey
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:102,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:103,1
    - Dst: ECDSA_do_sign
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:106,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:107,1
    - Dst: nl::Weave::Crypto::ECDSASigToFixedLenSig
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:110,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:111,1
    - Dst: ECDSA_SIG_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:114,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - curveOID
    - msgHash
    - msgHashLen
    - ' encodedPrivKey'
    - fixedLenSig
    argTypes:
    - OID
    - uint8_t*
    - uint8_t
    - EncodedECPrivateKey
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 118
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 118
    functionName: nl::Weave::Crypto::GenerateECDSASignature
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Crypto::ECDSASigToFixedLenSig
    - EC_KEY_free
    - VerifyOrExit
    - SuccessOrExit
    - DecodeECKey
    - ECDSA_SIG_free
    - ECDSA_do_sign
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "GenerateECDSASignature(OID curveOID,\n                                   const
      uint8_t *msgHash, uint8_t msgHashLen,\n                                   const
      EncodedECPrivateKey& encodedPrivKey,\n                                   uint8_t
      *fixedLenSig)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::WEAVE_ERROR::DecodeECKey
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:132,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:133,1
    - Dst: DecodeECDSASignature
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:135,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:136,1
    - Dst: ECDSA_do_verify
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:138,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:139,1
    - Dst: ECDSA_SIG_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:142,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - curveOID
    - msgHash
    - msgHashLen
    - ' encodedSig'
    - ' encodedPubKey'
    argTypes:
    - OID
    - uint8_t*
    - uint8_t
    - EncodedECDSASignature
    - EncodedECPublicKey
    constantsTouched: []
    func_position:
      end: 146
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 146
    functionName: nl::Weave::Crypto::WEAVE_ERROR::VerifyECDSASignature
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - EC_KEY_free
    - VerifyOrExit
    - nl::Weave::Crypto::WEAVE_ERROR::DecodeECKey
    - SuccessOrExit
    - DecodeECDSASignature
    - ECDSA_do_verify
    - ECDSA_SIG_free
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: "WEAVE_ERROR VerifyECDSASignature(OID curveOID,\n                                 const
      uint8_t *msgHash, uint8_t msgHashLen,\n                                 const
      EncodedECDSASignature& encodedSig,\n                                 const EncodedECPublicKey&
      encodedPubKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecodeECKey
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:160,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:161,1
    - Dst: nl::Weave::Crypto::FixedLenSigToECDSASig
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:164,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:165,1
    - Dst: ECDSA_do_verify
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:168,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:169,1
    - Dst: ECDSA_SIG_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:172,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - curveOID
    - msgHash
    - msgHashLen
    - fixedLenSig
    - ' encodedPubKey'
    argTypes:
    - OID
    - uint8_t*
    - uint8_t
    - uint8_t*
    - EncodedECPublicKey
    constantsTouched: []
    func_position:
      end: 176
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 176
    functionName: nl::Weave::Crypto::VerifyECDSASignature
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - EC_KEY_free
    - VerifyOrExit
    - SuccessOrExit
    - nl::Weave::Crypto::FixedLenSigToECDSASig
    - ECDSA_do_verify
    - DecodeECKey
    - ECDSA_SIG_free
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "VerifyECDSASignature(OID curveOID,\n                                 const
      uint8_t *msgHash, uint8_t msgHashLen,\n                                 const
      uint8_t *fixedLenSig,\n                                 const EncodedECPublicKey&
      encodedPubKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetECGroupForCurve
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:187,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:188,1
    - Dst: EC_KEY_new
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:190,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:191,1
    - Dst: EC_KEY_set_group
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:193,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:194,1
    - Dst: EC_KEY_generate_key
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:196,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:197,1
    - Dst: EncodeX962ECPoint
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:199,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:199,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:200,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:202,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:203,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:204,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:206,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:210,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 3
    argNames:
    - curveOID
    - ' encodedPubKey'
    - ' encodedPrivKey'
    argTypes:
    - OID
    - EncodedECPublicKey
    - EncodedECPrivateKey
    constantsTouched: []
    func_position:
      end: 214
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 214
    functionName: nl::Weave::Crypto::GenerateECDHKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - GetECGroupForCurve
    - EC_KEY_generate_key
    - EC_GROUP_free
    - EC_KEY_free
    - EC_KEY_get0_private_key
    - VerifyOrExit
    - EC_KEY_get0_public_key
    - EC_KEY_new
    - SuccessOrExit
    - BN_bn2bin
    - EC_KEY_set_group
    - BN_num_bytes
    - EncodeX962ECPoint
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GenerateECDHKey(OID curveOID, EncodedECPublicKey& encodedPubKey, EncodedECPrivateKey&
      encodedPrivKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetECGroupForCurve
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:224,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:225,1
    - Dst: nl::Weave::Crypto::DecodeX962ECPoint
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:227,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:228,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:230,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:231,1
    - Dst: nl::Weave::Crypto::ECDHComputeSharedSecret
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:233,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:234,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:237,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:238,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 6
    argNames:
    - curveOID
    - ' encodedPubKey'
    - ' encodedPrivKey'
    - sharedSecretBuf
    - sharedSecretBufSize
    - ' sharedSecretLen'
    argTypes:
    - OID
    - EncodedECPublicKey
    - EncodedECPrivateKey
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 242
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 242
    functionName: nl::Weave::Crypto::ECDHComputeSharedSecret
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 1
    functionsReached:
    - GetECGroupForCurve
    - EC_POINT_free
    - BN_clear_free
    - BN_bin2bn
    - EC_GROUP_free
    - VerifyOrExit
    - SuccessOrExit
    - nl::Weave::Crypto::DecodeX962ECPoint
    - nl::Weave::Crypto::ECDHComputeSharedSecret
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "ECDHComputeSharedSecret(OID curveOID, const EncodedECPublicKey& encodedPubKey,
      const EncodedECPrivateKey& encodedPrivKey,\n                                    uint8_t
      *sharedSecretBuf, uint16_t sharedSecretBufSize, uint16_t& sharedSecretLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetECGroupForCurve
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:249,1
    - Dst: nl::Weave::Crypto::GetCurveSize
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:250,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - curveOID
    argTypes:
    - OID
    constantsTouched: []
    func_position:
      end: 255
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 255
    functionName: nl::Weave::Crypto::GetCurveSize
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 1
    functionsReached:
    - EC_GROUP_free
    - GetECGroupForCurve
    - nl::Weave::Crypto::GetCurveSize
    linkageType: ''
    returnType: int
    signature: GetCurveSize(const OID curveOID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetECGroupForCurve
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:262,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:263,1
    - Dst: EncodeX962ECPoint
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:265,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:265,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:266,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - curveOID
    - ' encodedG'
    argTypes:
    - OID
    - EncodedECPublicKey
    constantsTouched: []
    func_position:
      end: 272
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 272
    functionName: nl::Weave::Crypto::GetCurveG
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - GetECGroupForCurve
    - EC_GROUP_free
    - EC_GROUP_get0_generator
    - SuccessOrExit
    - EncodeX962ECPoint
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetCurveG(OID curveOID, EncodedECPublicKey& encodedG)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - sig
    - pr
    - ps
    argTypes:
    - ECDSA_SIG*
    - BIGNUM**
    - BIGNUM**
    constantsTouched: []
    func_position:
      end: 291
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 291
    functionName: nl::Weave::Crypto::ECDSA_SIG_get0
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM
      **ps)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:297,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - sig
    - r
    - s
    argTypes:
    - ECDSA_SIG*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 302
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 302
    functionName: nl::Weave::Crypto::ECDSA_SIG_set0
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_get_degree
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - curveOID
    - ecGroup
    argTypes:
    - OID
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: nl::Weave::Crypto::GetCurveSize
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 1
    functionsReached:
    - EC_GROUP_get_degree
    linkageType: ''
    returnType: int
    signature: GetCurveSize(const OID curveOID, const EC_GROUP *ecGroup)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetEncodedObjectID
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:336,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:337,1
    - Dst: c2i_ASN1_OBJECT
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:338,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:339,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:340,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:341,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:342,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:346,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:350,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:351,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:354,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - curveOID
    - ' ecGroup'
    argTypes:
    - OID
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 358
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 358
    functionName: nl::Weave::Crypto::WEAVE_ERROR::GetECGroupForCurve
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - EC_GROUP_set_asn1_flag
    - EC_GROUP_new_by_curve_name
    - OBJ_obj2nid
    - VerifyOrExit
    - ExitNow
    - GetEncodedObjectID
    - c2i_ASN1_OBJECT
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: WEAVE_ERROR GetECGroupForCurve(OID curveOID, EC_GROUP *& ecGroup)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetCurveSize
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:376,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:377,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:378,1
    - Dst: EC_KEY_new
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:381,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:382,1
    - Dst: EC_KEY_set_group
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:384,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:385,1
    - Dst: EC_KEY_set_public_key
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:387,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:388,1
    - Dst: EC_KEY_check_key
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:390,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:391,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:394,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:395,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:399,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:400,1
    - Dst: BN_new
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:403,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:404,1
    - Dst: BN_new
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:406,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:407,1
    - Dst: EC_POINT_get_affine_coordinates_GFp
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:409,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:410,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:413,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:414,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:418,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:419,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:420,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:423,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:424,1
    - Dst: EC_POINT_clear_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:425,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 7
    argNames:
    - curveOID
    - ecGroup
    - pubKeyPoint
    - privKeyBN
    - sharedSecretBuf
    - sharedSecretBufSize
    - ' sharedSecretLen'
    argTypes:
    - OID
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 429
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 429
    functionName: nl::Weave::Crypto::WEAVE_ERROR::ECDHComputeSharedSecret
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_clear_free
    - EC_POINT_get_affine_coordinates_GFp
    - EC_KEY_free
    - VerifyOrExit
    - GetCurveSize
    - ExitNow
    - memset
    - EC_KEY_check_key
    - EC_POINT_new
    - BN_num_bytes
    - EC_KEY_new
    - EC_KEY_set_public_key
    - EC_POINT_clear_free
    - BN_bn2bin
    - EC_KEY_set_group
    - EC_POINT_mul
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: "WEAVE_ERROR ECDHComputeSharedSecret(OID curveOID, const EC_GROUP *ecGroup,\n
      \                                   const EC_POINT *pubKeyPoint, const BIGNUM
      *privKeyBN,\n                                    uint8_t *sharedSecretBuf, uint16_t
      sharedSecretBufSize, uint16_t& sharedSecretLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:439,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:439,1
    - Dst: GetCurveSize
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:442,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:443,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:447,1
    - Dst: BN_new
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:450,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:451,1
    - Dst: BN_new
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:453,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:454,1
    - Dst: EC_POINT_get_affine_coordinates_GFp
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:456,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:457,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:461,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:467,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:468,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:470,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:473,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:474,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:476,1
    - Dst: BN_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:479,1
    - Dst: BN_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 6
    argNames:
    - curveOID
    - ecGroup
    - point
    - buf
    - bufSize
    - ' encodedPointLen'
    argTypes:
    - OID
    - EC_GROUP*
    - EC_POINT*
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 483
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 483
    functionName: nl::Weave::Crypto::WEAVE_ERROR::EncodeX962ECPoint
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_free
    - EC_POINT_get_affine_coordinates_GFp
    - GetCurveSize
    - VerifyOrExit
    - EC_POINT_is_at_infinity
    - ExitNow
    - memset
    - BN_bn2bin
    - BN_num_bytes
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: WEAVE_ERROR EncodeX962ECPoint(OID curveOID, EC_GROUP *ecGroup, const
      EC_POINT *point, uint8_t *buf, uint16_t bufSize, uint16_t& encodedPointLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::WEAVE_ERROR::DecodeX962ECPoint
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:493,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:494,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:496,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:497,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:501,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:502,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:507,1
    - Dst: BN_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:510,1
    - Dst: BN_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:511,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - encodedPoint
    - encodedPointLen
    - group
    - ' point'
    argTypes:
    - uint8_t*
    - uint16_t
    - EC_GROUP*
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 514
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 514
    functionName: nl::Weave::Crypto::WEAVE_ERROR::DecodeX962ECPoint
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 1
    functionsReached:
    - EC_POINT_set_affine_coordinates_GFp
    - EC_POINT_free
    - BN_free
    - VerifyOrExit
    - ExitNow
    - EC_POINT_new
    - SuccessOrExit
    - nl::Weave::Crypto::WEAVE_ERROR::DecodeX962ECPoint
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: WEAVE_ERROR DecodeX962ECPoint(const uint8_t *encodedPoint, uint16_t
      encodedPointLen, EC_GROUP *group, EC_POINT *& point)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:523,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:527,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:530,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:534,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:535,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:537,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:538,1
    - Dst: BN_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:543,1
    - Dst: BN_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 4
    argNames:
    - encodedPoint
    - encodedPointLen
    - ' x'
    - ' y'
    argTypes:
    - uint8_t*
    - uint16_t
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 550
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 550
    functionName: nl::Weave::Crypto::DecodeX962ECPoint
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 1
    functionsReached:
    - BN_free
    - VerifyOrExit
    - BN_bin2bn
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeX962ECPoint(const uint8_t *encodedPoint, uint16_t encodedPointLen,
      BIGNUM *& x, BIGNUM *& y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:564,1
    - Dst: nl::Weave::Crypto::WEAVE_ERROR::GetECGroupForCurve
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:568,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:569,1
    - Dst: EC_KEY_new
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:571,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:572,1
    - Dst: EC_KEY_set_group
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:574,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:575,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:579,1
    - Dst: nl::Weave::Crypto::WEAVE_ERROR::DecodeX962ECPoint
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:581,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:582,1
    - Dst: EC_KEY_set_public_key
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:584,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:585,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:590,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:592,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:593,1
    - Dst: EC_KEY_set_private_key
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:595,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:596,1
    - Dst: BN_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:600,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:601,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:604,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:607,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 4
    argNames:
    - curveOID
    - encodedPrivKey
    - encodedPubKey
    - ' ecKey'
    argTypes:
    - OID
    - EncodedECPrivateKey*
    - EncodedECPublicKey*
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 610
      start: 553
    functionDepth: 2
    functionLinenumber: 553
    functionLinenumberEnd: 610
    functionName: nl::Weave::Crypto::WEAVE_ERROR::DecodeECKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 2
    functionsReached:
    - EC_POINT_free
    - BN_free
    - BN_bin2bn
    - EC_KEY_set_private_key
    - EC_KEY_free
    - EC_GROUP_free
    - EC_KEY_set_public_key
    - VerifyOrExit
    - nl::Weave::Crypto::WEAVE_ERROR::GetECGroupForCurve
    - EC_KEY_new
    - SuccessOrExit
    - nl::Weave::Crypto::WEAVE_ERROR::DecodeX962ECPoint
    - EC_KEY_set_group
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: WEAVE_ERROR DecodeECKey(OID curveOID, const EncodedECPrivateKey *encodedPrivKey,
      const EncodedECPublicKey *encodedPubKey, EC_KEY *& ecKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::ECDSA_SIG_get0
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:620,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:622,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:623,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:625,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:629,1
    - Dst: memmove
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:630,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:637,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:638,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:640,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:644,1
    - Dst: memmove
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:645,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 2
    argNames:
    - sig
    - ' encodedSig'
    argTypes:
    - ECDSA_SIG*
    - EncodedECDSASignature
    constantsTouched: []
    func_position:
      end: 654
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 654
    functionName: nl::Weave::Crypto::EncodeECDSASignature
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - memmove
    - VerifyOrExit
    - nl::Weave::Crypto::ECDSA_SIG_get0
    - BN_bn2bin
    - BN_num_bytes
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EncodeECDSASignature(const ECDSA_SIG *sig, EncodedECDSASignature& encodedSig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_SIG_new
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:664,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:665,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:667,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:668,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:670,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:671,1
    - Dst: nl::Weave::Crypto::ECDSA_SIG_set0
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:673,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:674,1
    - Dst: ECDSA_SIG_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:679,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - ' encodedSig'
    - ' sig'
    argTypes:
    - EncodedECDSASignature
    - ECDSA_SIG*
    constantsTouched: []
    func_position:
      end: 684
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 684
    functionName: nl::Weave::Crypto::DecodeECDSASignature
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - VerifyOrExit
    - ECDSA_SIG_new
    - nl::Weave::Crypto::ECDSA_SIG_set0
    - ECDSA_SIG_free
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeECDSASignature(const EncodedECDSASignature& encodedSig, ECDSA_SIG
      *& sig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::GetCurveSize
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:695,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:696,1
    - Dst: nl::Weave::Crypto::ECDSA_SIG_get0
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:698,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:702,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:705,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:706,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:708,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:711,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:712,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - curveOID
    - ecSig
    - fixedLenSig
    argTypes:
    - OID
    - ECDSA_SIG*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 718
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 718
    functionName: nl::Weave::Crypto::ECDSASigToFixedLenSig
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Crypto::GetCurveSize
    - VerifyOrExit
    - memset
    - nl::Weave::Crypto::ECDSA_SIG_get0
    - BN_bn2bin
    - BN_num_bytes
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ECDSASigToFixedLenSig(OID curveOID, const ECDSA_SIG *ecSig, uint8_t
      *fixedLenSig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_SIG_new
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:729,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:730,1
    - Dst: nl::Weave::Crypto::GetCurveSize
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:732,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:733,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:735,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:736,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:738,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:739,1
    - Dst: nl::Weave::Crypto::ECDSA_SIG_set0
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:741,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:742,1
    - Dst: ECDSA_SIG_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:747,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - curveOID
    - fixedLenSig
    - ' ecSig'
    argTypes:
    - OID
    - uint8_t*
    - ECDSA_SIG*
    constantsTouched: []
    func_position:
      end: 752
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 752
    functionName: nl::Weave::Crypto::FixedLenSigToECDSASig
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Crypto::GetCurveSize
    - BN_bin2bn
    - VerifyOrExit
    - ECDSA_SIG_new
    - nl::Weave::Crypto::ECDSA_SIG_set0
    - ECDSA_SIG_free
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: FixedLenSigToECDSASig(OID curveOID, const uint8_t *fixedLenSig, ECDSA_SIG
      *& ecSig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_get_degree
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ecGroup
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 794
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 794
    functionName: nl::Weave::Crypto::GetCurveWordCount
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - EC_GROUP_get_degree
    linkageType: ''
    returnType: int
    signature: GetCurveWordCount(const EC_GROUP *ecGroup)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:826,1
    - Dst: EC_GROUP_get_order
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:827,1
    - Dst: BN_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:831,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - ecGroup
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 837
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 837
    functionName: nl::Weave::Crypto::GetOrderWordCount
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - BN_new
    - EC_GROUP_get_order
    - BN_free
    linkageType: ''
    returnType: int
    signature: GetOrderWordCount(const EC_GROUP *ecGroup)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:845,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:846,1
    - Dst: BN_new
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:847,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:848,1
    - Dst: EC_POINT_get_affine_coordinates_GFp
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:850,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:851,1
    - Dst: nl::Weave::Crypto::EncodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:853,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:854,1
    - Dst: nl::Weave::Crypto::EncodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:855,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:856,1
    - Dst: BN_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:859,1
    - Dst: BN_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:860,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - ecGroup
    - ecPoint
    - wordCount
    - ' p'
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 862
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 862
    functionName: nl::Weave::Crypto::EncodeECPointValue
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_free
    - EC_POINT_get_affine_coordinates_GFp
    - nl::Weave::Crypto::EncodeBIGNUMValueLE
    - VerifyOrExit
    - ExitNow
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EncodeECPointValue(const EC_GROUP *ecGroup, const EC_POINT *ecPoint,
      const uint8_t wordCount, uint8_t *& p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:870,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:871,1
    - Dst: BN_new
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:872,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:873,1
    - Dst: nl::Weave::Crypto::DecodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:875,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:876,1
    - Dst: nl::Weave::Crypto::DecodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:877,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:878,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:880,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:881,1
    - Dst: BN_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:884,1
    - Dst: BN_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:885,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - ecGroup
    - ecPoint
    - wordCount
    - ' p'
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 887
      start: 864
    functionDepth: 1
    functionLinenumber: 864
    functionLinenumberEnd: 887
    functionName: nl::Weave::Crypto::DecodeECPointValue
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - BN_new
    - EC_POINT_set_affine_coordinates_GFp
    - BN_free
    - nl::Weave::Crypto::DecodeBIGNUMValueLE
    - VerifyOrExit
    - ExitNow
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeECPointValue(const EC_GROUP *ecGroup, EC_POINT *ecPoint, const
      uint8_t wordCount, const uint8_t *& p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::GetCurveWordCount
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:895,1
    - Dst: ECJPAKE_get_ecGroup
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:895,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:896,1
    - Dst: nl::Weave::Crypto::GetOrderWordCount
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:898,1
    - Dst: ECJPAKE_get_ecGroup
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:898,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:899,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:902,1
    - Dst: nl::Weave::Crypto::EncodeECPointValue
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:904,1
    - Dst: ECJPAKE_get_ecGroup
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:904,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:905,1
    - Dst: nl::Weave::Crypto::EncodeECPointValue
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:906,1
    - Dst: ECJPAKE_get_ecGroup
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:906,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:907,1
    - Dst: nl::Weave::Crypto::EncodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:908,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 5
    argNames:
    - ctx
    - stepPart
    - buf
    - bufSize
    - ' stepDataLen'
    argTypes:
    - ECJPAKE_CTX*
    - ECJPAKE_STEP_PART*
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 913
      start: 889
    functionDepth: 2
    functionLinenumber: 889
    functionLinenumberEnd: 913
    functionName: nl::Weave::Crypto::EncodeStepPartFields
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - ECJPAKE_get_ecGroup
    - nl::Weave::Crypto::GetCurveWordCount
    - nl::Weave::Crypto::EncodeBIGNUMValueLE
    - VerifyOrExit
    - nl::Weave::Crypto::EncodeECPointValue
    - nl::Weave::Crypto::GetOrderWordCount
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EncodeStepPartFields(const ECJPAKE_CTX *ctx, const ECJPAKE_STEP_PART
      *stepPart, const uint8_t *buf, const uint16_t bufSize, uint16_t& stepDataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::GetCurveWordCount
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:921,1
    - Dst: ECJPAKE_get_ecGroup
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:921,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:922,1
    - Dst: nl::Weave::Crypto::GetOrderWordCount
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:924,1
    - Dst: ECJPAKE_get_ecGroup
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:924,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:925,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:928,1
    - Dst: nl::Weave::Crypto::DecodeECPointValue
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:930,1
    - Dst: ECJPAKE_get_ecGroup
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:930,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:931,1
    - Dst: nl::Weave::Crypto::DecodeECPointValue
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:932,1
    - Dst: ECJPAKE_get_ecGroup
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:932,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:933,1
    - Dst: nl::Weave::Crypto::DecodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:934,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 5
    argNames:
    - ctx
    - stepPart
    - buf
    - bufSize
    - ' stepDataLen'
    argTypes:
    - ECJPAKE_CTX*
    - ECJPAKE_STEP_PART*
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 939
      start: 915
    functionDepth: 2
    functionLinenumber: 915
    functionLinenumberEnd: 939
    functionName: nl::Weave::Crypto::DecodeStepPartFields
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - ECJPAKE_get_ecGroup
    - nl::Weave::Crypto::GetCurveWordCount
    - nl::Weave::Crypto::DecodeBIGNUMValueLE
    - VerifyOrExit
    - nl::Weave::Crypto::GetOrderWordCount
    - SuccessOrExit
    - nl::Weave::Crypto::DecodeECPointValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeStepPartFields(const ECJPAKE_CTX *ctx, ECJPAKE_STEP_PART *stepPart,
      const uint8_t *buf, const uint16_t bufSize, uint16_t& stepDataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::GetCurveWordCount
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:950,1
    - Dst: ECJPAKE_get_ecGroup
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:950,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:951,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:953,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:954,1
    - Dst: nl::Weave::Crypto::EncodeECPointValue
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:958,1
    - Dst: ECJPAKE_get_ecGroup
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:958,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:959,1
    - Dst: SHA256_Update
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:961,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:964,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - ctx
    - sha
    - ecPoint
    argTypes:
    - ECJPAKE_CTX*
    - SHA256_CTX*
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 966
      start: 942
    functionDepth: 2
    functionLinenumber: 942
    functionLinenumberEnd: 966
    functionName: nl::Weave::Crypto::ECJPAKE_HashECPoint
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - ECJPAKE_get_ecGroup
    - nl::Weave::Crypto::GetCurveWordCount
    - SHA256_Update
    - VerifyOrExit
    - nl::Weave::Crypto::EncodeECPointValue
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: ECJPAKE_HashECPoint(ECJPAKE_CTX *ctx, SHA256_CTX *sha, const EC_POINT
      *ecPoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 971
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 971
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::Init
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EllipticCurveJPAKE::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::EllipticCurveJPAKE::Reset
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 977
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 977
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::EllipticCurveJPAKE::Reset
    linkageType: ''
    returnType: void
    signature: EllipticCurveJPAKE::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECJPAKE_get_ecGroup
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:984,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:988,1
    - Dst: ECJPAKE_CTX_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:991,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 994
      start: 980
    functionDepth: 1
    functionLinenumber: 980
    functionLinenumberEnd: 994
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::Reset
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 3
    functionsReached:
    - EC_GROUP_free
    - ECJPAKE_get_ecGroup
    - ECJPAKE_CTX_free
    linkageType: ''
    returnType: void
    signature: EllipticCurveJPAKE::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetECGroupForCurve
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1007,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1008,1
    - Dst: BN_new
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1010,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1011,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1013,1
    - Dst: ECJPAKE_CTX_new
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1015,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1016,1
    - Dst: ECJPAKE_Set_HashECPoint
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1019,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 7
    argNames:
    - curveOID
    - pw
    - pwLen
    - localName
    - localNameLen
    - peerName
    - peerNameLen
    argTypes:
    - OID
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1024
      start: 997
    functionDepth: 1
    functionLinenumber: 997
    functionLinenumberEnd: 1024
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::Init
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - BN_new
    - GetECGroupForCurve
    - BN_clear_free
    - BN_bin2bn
    - VerifyOrExit
    - ECJPAKE_CTX_new
    - SuccessOrExit
    - ECJPAKE_Set_HashECPoint
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "EllipticCurveJPAKE::Init(const OID curveOID, const uint8_t *pw, const
      uint16_t pwLen,\n                                                         const
      uint8_t *localName, const uint16_t localNameLen,\n                                                         const
      uint8_t *peerName, const uint16_t peerNameLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECJPAKE_STEP1_init
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1032,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1033,1
    - Dst: ECJPAKE_STEP1_generate
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1035,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1036,1
    - Dst: EncodeStepPartFields
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1038,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1039,1
    - Dst: EncodeStepPartFields
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1041,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1042,1
    - Dst: ECJPAKE_STEP1_release
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - buf
    - bufSize
    - ' stepDataLen'
    argTypes:
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1047
      start: 1026
    functionDepth: 1
    functionLinenumber: 1026
    functionLinenumberEnd: 1047
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::GenerateStep1
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - ECJPAKE_STEP1_init
    - EncodeStepPartFields
    - VerifyOrExit
    - ECJPAKE_STEP1_release
    - ECJPAKE_STEP1_generate
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EllipticCurveJPAKE::GenerateStep1(const uint8_t *buf, const uint16_t
      bufSize, uint16_t& stepDataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECJPAKE_STEP1_init
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1055,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1056,1
    - Dst: DecodeStepPartFields
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1058,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1059,1
    - Dst: DecodeStepPartFields
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1061,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1062,1
    - Dst: ECJPAKE_STEP1_process
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1064,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1065,1
    - Dst: ECJPAKE_STEP1_release
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - buf
    - bufSize
    - ' stepDataLen'
    argTypes:
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1070
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1070
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::ProcessStep1
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - ECJPAKE_STEP1_init
    - DecodeStepPartFields
    - VerifyOrExit
    - ECJPAKE_STEP1_release
    - SuccessOrExit
    - ECJPAKE_STEP1_process
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EllipticCurveJPAKE::ProcessStep1(const uint8_t *buf, const uint16_t
      bufSize, uint16_t& stepDataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECJPAKE_STEP2_init
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1078,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1079,1
    - Dst: ECJPAKE_STEP2_generate
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1081,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1082,1
    - Dst: EncodeStepPartFields
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1084,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1085,1
    - Dst: ECJPAKE_STEP2_release
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - buf
    - bufSize
    - ' stepDataLen'
    argTypes:
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1090
      start: 1072
    functionDepth: 1
    functionLinenumber: 1072
    functionLinenumberEnd: 1090
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::GenerateStep2
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - EncodeStepPartFields
    - VerifyOrExit
    - ECJPAKE_STEP2_init
    - SuccessOrExit
    - ECJPAKE_STEP2_release
    - ECJPAKE_STEP2_generate
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EllipticCurveJPAKE::GenerateStep2(const uint8_t *buf, const uint16_t
      bufSize, uint16_t& stepDataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECJPAKE_STEP2_init
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1098,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1099,1
    - Dst: DecodeStepPartFields
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1101,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1102,1
    - Dst: ECJPAKE_STEP2_process
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1104,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1105,1
    - Dst: ECJPAKE_STEP2_release
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - buf
    - bufSize
    - ' stepDataLen'
    argTypes:
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1110
      start: 1092
    functionDepth: 1
    functionLinenumber: 1092
    functionLinenumberEnd: 1110
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::ProcessStep2
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - DecodeStepPartFields
    - VerifyOrExit
    - ECJPAKE_STEP2_init
    - SuccessOrExit
    - ECJPAKE_STEP2_release
    - ECJPAKE_STEP2_process
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EllipticCurveJPAKE::ProcessStep2(const uint8_t *buf, const uint16_t
      bufSize, uint16_t& stepDataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECJPAKE_get_shared_key
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1115
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::GetSharedSecret
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - ECJPAKE_get_shared_key
    linkageType: ''
    returnType: uint8_t
    signature: '*EllipticCurveJPAKE::GetSharedSecret()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetCurveWordCount
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1119,1
    - Dst: ECJPAKE_get_ecGroup
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp:1119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1117
    functionDepth: 1
    functionLinenumber: 1117
    functionLinenumberEnd: 1120
    functionName: nl::Weave::Crypto::EllipticCurveJPAKE::GetCurveSize
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - GetCurveWordCount
    - ECJPAKE_get_ecGroup
    linkageType: ''
    returnType: int
    signature: EllipticCurveJPAKE::GetCurveSize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PutBytes
      Src: /src/openweave-core/src/lib/support/crypto/RSA.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' writer'
    - tag
    argTypes:
    - TLVWriter
    - uint64_t
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: nl::Weave::Crypto::EncodedRSASignature::WriteSignature
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/RSA.h
    functionUses: 0
    functionsReached:
    - PutBytes
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EncodedRSASignature::WriteSignature(TLVWriter& writer, uint64_t tag)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EncodedRSAKey
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: nl::Weave::Crypto::EncodedRSAKey::IsEqual
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/RSA.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: EncodedRSAKey::IsEqual(const EncodedRSAKey& other) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EncodedRSASignature
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: nl::Weave::Crypto::EncodedRSASignature::IsEqual
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/RSA.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: EncodedRSASignature::IsEqual(const EncodedRSASignature& other) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:86,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:86,1
    - Dst: GetDataPtr
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:88,1
    - Dst: const_cast<const uint8_t *&>
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:88,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:89,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLVReader
    constantsTouched: []
    func_position:
      end: 95
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 95
    functionName: nl::Weave::Crypto::EncodedRSASignature::ReadSignature
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/RSA.cpp
    functionUses: 0
    functionsReached:
    - const_cast<const uint8_t *&>
    - GetLength
    - GetDataPtr
    - VerifyOrExit
    - GetType
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EncodedRSASignature::ReadSignature(TLVReader& reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sigAlgoOID
    argTypes:
    - OID
    constantsTouched: []
    func_position:
      end: 110
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 110
    functionName: nl::Weave::Crypto::ShaNIDFromSigAlgoOID
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/RSA.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ShaNIDFromSigAlgoOID(OID sigAlgoOID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::ShaNIDFromSigAlgoOID
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:147,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:148,1
    - Dst: d2i_RSAPrivateKey
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:150,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:151,1
    - Dst: RSA_sign
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:153,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:154,1
    - Dst: EncodedRSASignature::WriteSignature
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:160,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:161,1
    - Dst: RSA_free
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 7
    argNames:
    - sigAlgoOID
    - ' writer'
    - tag
    - hash
    - hashLen
    - keyDER
    - keyDERLen
    argTypes:
    - OID
    - TLVWriter
    - uint64_t
    - uint8_t*
    - uint8_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 167
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 167
    functionName: nl::Weave::Crypto::GenerateAndEncodeWeaveRSASignature
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/RSA.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - ExitNow
    - nl::Weave::Crypto::ShaNIDFromSigAlgoOID
    - RSA_sign
    - EncodedRSASignature::WriteSignature
    - RSA_free
    - d2i_RSAPrivateKey
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "GenerateAndEncodeWeaveRSASignature(OID sigAlgoOID,\n                                               TLVWriter&
      writer, uint64_t tag,\n                                               const
      uint8_t * hash, uint8_t hashLen,\n                                               const
      uint8_t * keyDER, uint16_t keyDERLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::ShaNIDFromSigAlgoOID
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:198,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:199,1
    - Dst: BIO_new_mem_buf
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:201,1
    - Dst: reinterpret_cast<void*>
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:201,1
    - Dst: const_cast<uint8_t*>
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:201,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:202,1
    - Dst: d2i_X509_bio
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:204,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:205,1
    - Dst: X509_get_pubkey
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:207,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:208,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:211,1
    - Dst: EVP_PKEY_base_id
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:211,1
    - Dst: RSA_verify
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:213,1
    - Dst: EVP_PKEY_get1_RSA
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:213,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:214,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:217,1
    - Dst: X509_free
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:218,1
    - Dst: BIO_free
      Src: /src/openweave-core/src/lib/support/crypto/RSA.cpp:219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 6
    argNames:
    - sigAlgoOID
    - hash
    - hashLen
    - ' sig'
    - certDER
    - certDERLen
    argTypes:
    - OID
    - uint8_t*
    - uint8_t
    - EncodedRSASignature
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 222
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 222
    functionName: nl::Weave::Crypto::VerifyRSASignature
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/RSA.cpp
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get1_RSA
    - RSA_verify
    - reinterpret_cast<void*>
    - VerifyOrExit
    - X509_get_pubkey
    - BIO_new_mem_buf
    - nl::Weave::Crypto::ShaNIDFromSigAlgoOID
    - d2i_X509_bio
    - BIO_free
    - X509_free
    - const_cast<uint8_t*>
    - EVP_PKEY_base_id
    - EVP_PKEY_free
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "VerifyRSASignature(OID sigAlgoOID,\n                               const
      uint8_t * hash, uint8_t hashLen,\n                               const EncodedRSASignature&
      sig,\n                               const uint8_t * certDER, uint16_t certDERLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: nl::Weave::Platform::Security::SHA1::SHA1
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SHA1::SHA1()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: SHA1::~SHA1()
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SHA1::~SHA1()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Init
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: nl::Weave::Platform::Security::SHA1::Begin
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - SHA1_Init
    linkageType: ''
    returnType: void
    signature: SHA1::Begin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Update
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - dataLen
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: nl::Weave::Platform::Security::SHA1::AddData
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - SHA1_Update
    linkageType: ''
    returnType: void
    signature: SHA1::AddData(const uint8_t *data, uint16_t dataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Final
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hashBuf
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: nl::Weave::Platform::Security::SHA1::Finish
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - SHA1_Final
    linkageType: ''
    returnType: void
    signature: SHA1::Finish(uint8_t *hashBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: nl::Weave::Platform::Security::SHA1::Reset
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: SHA1::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: nl::Weave::Platform::Security::SHA256::SHA256
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SHA256::SHA256()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: SHA256::~SHA256()
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SHA256::~SHA256()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Init
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: nl::Weave::Platform::Security::SHA256::Begin
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - SHA256_Init
    linkageType: ''
    returnType: void
    signature: SHA256::Begin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Update
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - dataLen
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: nl::Weave::Platform::Security::SHA256::AddData
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - SHA256_Update
    linkageType: ''
    returnType: void
    signature: SHA256::AddData(const uint8_t *data, uint16_t dataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Final
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hashBuf
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: nl::Weave::Platform::Security::SHA256::Finish
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - SHA256_Final
    linkageType: ''
    returnType: void
    signature: SHA256::Finish(uint8_t *hashBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: nl::Weave::Platform::Security::SHA256::Reset
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: SHA256::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp:111,1
    - Dst: nl::Weave::Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp:116,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp:123,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp:125,1
    - Dst: nl::Weave::Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp:127,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' num'
    argTypes:
    - BIGNUM
    constantsTouched: []
    func_position:
      end: 131
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 131
    functionName: nl::Weave::Platform::Security::SHA1::AddData
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp
    functionUses: 1
    functionsReached:
    - BN_is_zero
    - BN_is_negative
    - nl::Weave::Platform::Security::SHA1::AddData
    - OPENSSL_free
    - BN_bn2bin
    linkageType: ''
    returnType: void
    signature: SHA1::AddData(const BIGNUM& num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp:144,1
    - Dst: nl::Weave::Platform::Security::SHA256::AddData
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp:149,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp:156,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp:158,1
    - Dst: nl::Weave::Platform::Security::SHA256::AddData
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp:160,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' num'
    argTypes:
    - BIGNUM
    constantsTouched: []
    func_position:
      end: 164
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 164
    functionName: nl::Weave::Platform::Security::SHA256::AddData
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Platform::Security::SHA256::AddData
    - BN_is_zero
    - BN_is_negative
    - OPENSSL_free
    - BN_bn2bin
    linkageType: ''
    returnType: void
    signature: SHA256::AddData(const BIGNUM& num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve.cpp:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EncodedECPublicKey
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: nl::Weave::Crypto::EncodedECPublicKey::IsEqual
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: EncodedECPublicKey::IsEqual(const EncodedECPublicKey& other) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve.cpp:53,1
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve.cpp:54,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EncodedECDSASignature
    constantsTouched: []
    func_position:
      end: 55
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: nl::Weave::Crypto::EncodedECDSASignature::IsEqual
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: EncodedECDSASignature::IsEqual(const EncodedECDSASignature& other)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/support/crypto/EllipticCurve.cpp:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EncodedECPrivateKey
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: nl::Weave::Crypto::EncodedECPrivateKey::IsEqual
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/EllipticCurve.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: EncodedECPrivateKey::IsEqual(const EncodedECPrivateKey& other) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: nl::Weave::Crypto::ReverseBytes
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/WeaveCrypto-OpenSSL.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ReverseBytes(uint8_t *buf, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/WeaveCrypto-OpenSSL.cpp:53,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/src/lib/support/crypto/WeaveCrypto-OpenSSL.cpp:53,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/WeaveCrypto-OpenSSL.cpp:55,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/WeaveCrypto-OpenSSL.cpp:57,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/src/lib/support/crypto/WeaveCrypto-OpenSSL.cpp:58,1
    - Dst: nl::Weave::Crypto::ReverseBytes
      Src: /src/openweave-core/src/lib/support/crypto/WeaveCrypto-OpenSSL.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - ' val'
    - size
    - ' p'
    argTypes:
    - BIGNUM
    - uint16_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 66
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 66
    functionName: nl::Weave::Crypto::EncodeBIGNUMValueLE
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/WeaveCrypto-OpenSSL.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Crypto::ReverseBytes
    - VerifyOrExit
    - memset
    - BN_is_negative
    - BN_bn2bin
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EncodeBIGNUMValueLE(const BIGNUM& val, uint16_t size, uint8_t *& p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/WeaveCrypto-OpenSSL.cpp:73,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/crypto/WeaveCrypto-OpenSSL.cpp:75,1
    - Dst: nl::Weave::Crypto::ReverseBytes
      Src: /src/openweave-core/src/lib/support/crypto/WeaveCrypto-OpenSSL.cpp:77,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/src/lib/support/crypto/WeaveCrypto-OpenSSL.cpp:79,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/crypto/WeaveCrypto-OpenSSL.cpp:80,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/src/lib/support/crypto/WeaveCrypto-OpenSSL.cpp:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ' val'
    - size
    - ' p'
    argTypes:
    - BIGNUM
    - uint16_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 88
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 88
    functionName: nl::Weave::Crypto::DecodeBIGNUMValueLE
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/WeaveCrypto-OpenSSL.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Crypto::ReverseBytes
    - BN_bin2bn
    - VerifyOrExit
    - ExitNow
    - memcpy
    - OPENSSL_free
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeBIGNUMValueLE(BIGNUM& val, uint16_t size, const uint8_t *& p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/CTRMode.cpp:44,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/support/crypto/CTRMode.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: nl::Weave::Crypto::CTRMode<BlockCipher>::CTRMode
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/CTRMode.cpp
    functionUses: 0
    functionsReached:
    - ClearSecretData
    - memset
    linkageType: ''
    returnType: void
    signature: CTRMode<BlockCipher>::CTRMode()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/openweave-core/src/lib/support/crypto/CTRMode.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: CTRMode<BlockCipher>::~CTRMode()
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/CTRMode.cpp
    functionUses: 0
    functionsReached:
    - Reset
    linkageType: ''
    returnType: void
    signature: CTRMode<BlockCipher>::~CTRMode()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::CTRMode<BlockCipher>::SetKey
      Src: /src/openweave-core/src/lib/support/crypto/CTRMode.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: nl::Weave::Crypto::CTRMode<BlockCipher>::SetKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/CTRMode.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Crypto::CTRMode<BlockCipher>::SetKey
    linkageType: ''
    returnType: void
    signature: CTRMode<BlockCipher>::SetKey(const uint8_t *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/crypto/CTRMode.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - counter
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: nl::Weave::Crypto::CTRMode<BlockCipher>::SetCounter
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/CTRMode.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: CTRMode<BlockCipher>::SetCounter(const uint8_t *counter)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - sendingNodeId
    - msgId
    argTypes:
    - uint64_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 91
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 91
    functionName: nl::Weave::Crypto::CTRMode<BlockCipher>::SetWeaveMessageCounter
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/CTRMode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CTRMode<BlockCipher>::SetWeaveMessageCounter(uint64_t sendingNodeId,
      uint32_t msgId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncryptBlock
      Src: /src/openweave-core/src/lib/support/crypto/CTRMode.cpp:106,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - inData
    - dataLen
    - outData
    argTypes:
    - uint8_t*
    - uint16_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 133
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 133
    functionName: nl::Weave::Crypto::CTRMode<BlockCipher>::EncryptData
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/CTRMode.cpp
    functionUses: 0
    functionsReached:
    - EncryptBlock
    linkageType: ''
    returnType: void
    signature: CTRMode<BlockCipher>::EncryptData(const uint8_t *inData, uint16_t dataLen,
      uint8_t *outData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::CTRMode<BlockCipher>::Reset
      Src: /src/openweave-core/src/lib/support/crypto/CTRMode.cpp:138,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/CTRMode.cpp:140,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/support/crypto/CTRMode.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: nl::Weave::Crypto::CTRMode<BlockCipher>::Reset
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/CTRMode.cpp
    functionUses: 1
    functionsReached:
    - ClearSecretData
    - nl::Weave::Crypto::CTRMode<BlockCipher>::Reset
    - memset
    linkageType: ''
    returnType: void
    signature: CTRMode<BlockCipher>::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::HMAC<H>::Reset
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: nl::Weave::Crypto::HMAC<H>::HMAC
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HMAC.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::HMAC<H>::Reset
    linkageType: ''
    returnType: void
    signature: HMAC<H>::HMAC()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: HMAC<H>::~HMAC()
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HMAC.cpp
    functionUses: 0
    functionsReached:
    - Reset
    linkageType: ''
    returnType: void
    signature: HMAC<H>::~HMAC()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::HMAC<H>::Reset
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:61,1
    - Dst: nl::Weave::Crypto::HMAC<H>::Begin
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:66,1
    - Dst: nl::Weave::Crypto::HMAC<H>::AddData
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:67,1
    - Dst: nl::Weave::Crypto::HMAC<H>::Finish
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:68,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:73,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:78,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:80,1
    - Dst: nl::Weave::Crypto::HMAC<H>::Begin
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:85,1
    - Dst: nl::Weave::Crypto::HMAC<H>::AddData
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:86,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - key
    - keyLen
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 89
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 89
    functionName: nl::Weave::Crypto::HMAC<H>::Begin
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HMAC.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Crypto::HMAC<H>::Finish
    - ClearSecretData
    - nl::Weave::Crypto::HMAC<H>::Reset
    - memset
    - nl::Weave::Crypto::HMAC<H>::AddData
    - memcpy
    - nl::Weave::Crypto::HMAC<H>::Begin
    linkageType: ''
    returnType: void
    signature: HMAC<H>::Begin(const uint8_t *key, uint16_t keyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::HMAC<H>::AddData
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msgData
    - dataLen
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: nl::Weave::Crypto::HMAC<H>::AddData
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HMAC.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Crypto::HMAC<H>::AddData
    linkageType: ''
    returnType: void
    signature: HMAC<H>::AddData(const uint8_t *msgData, uint16_t dataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::HMAC<H>::AddData
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' num'
    argTypes:
    - BIGNUM
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: nl::Weave::Crypto::HMAC<H>::AddData
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HMAC.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::Crypto::HMAC<H>::AddData
    linkageType: ''
    returnType: void
    signature: HMAC<H>::AddData(const BIGNUM& num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::HMAC<H>::Finish
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:114,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:117,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:119,1
    - Dst: nl::Weave::Crypto::HMAC<H>::Begin
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:124,1
    - Dst: nl::Weave::Crypto::HMAC<H>::AddData
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:125,1
    - Dst: nl::Weave::Crypto::HMAC<H>::AddData
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:126,1
    - Dst: nl::Weave::Crypto::HMAC<H>::Finish
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:127,1
    - Dst: nl::Weave::Crypto::HMAC<H>::Reset
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:130,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:131,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - hashBuf
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 133
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 133
    functionName: nl::Weave::Crypto::HMAC<H>::Finish
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HMAC.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Crypto::HMAC<H>::Finish
    - ClearSecretData
    - memset
    - nl::Weave::Crypto::HMAC<H>::Reset
    - nl::Weave::Crypto::HMAC<H>::AddData
    - memcpy
    - nl::Weave::Crypto::HMAC<H>::Begin
    linkageType: ''
    returnType: void
    signature: HMAC<H>::Finish(uint8_t *hashBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::HMAC<H>::Reset
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:138,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: nl::Weave::Crypto::HMAC<H>::Reset
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HMAC.cpp
    functionUses: 4
    functionsReached:
    - ClearSecretData
    - nl::Weave::Crypto::HMAC<H>::Reset
    linkageType: ''
    returnType: void
    signature: HMAC<H>::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EncodedHMACSignature
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: nl::Weave::Crypto::EncodedHMACSignature::IsEqual
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HMAC.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: EncodedHMACSignature::IsEqual(const EncodedHMACSignature& other) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:176,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:176,1
    - Dst: GetDataPtr
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:178,1
    - Dst: const_cast<const uint8_t *&>
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:178,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:179,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLVReader
    constantsTouched: []
    func_position:
      end: 185
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 185
    functionName: nl::Weave::Crypto::EncodedHMACSignature::ReadSignature
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HMAC.cpp
    functionUses: 0
    functionsReached:
    - const_cast<const uint8_t *&>
    - GetLength
    - GetDataPtr
    - VerifyOrExit
    - GetType
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EncodedHMACSignature::ReadSignature(TLVReader& reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:217,1
    - Dst: HMACSHA256::Begin
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:220,1
    - Dst: HMACSHA256::AddData
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:221,1
    - Dst: HMACSHA256::Finish
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:222,1
    - Dst: EncodedHMACSignature::WriteSignature
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:228,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 7
    argNames:
    - sigAlgoOID
    - ' writer'
    - tag
    - data
    - dataLen
    - key
    - keyLen
    argTypes:
    - OID
    - TLVWriter
    - uint64_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 233
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 233
    functionName: nl::Weave::Crypto::GenerateAndEncodeWeaveHMACSignature
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HMAC.cpp
    functionUses: 0
    functionsReached:
    - HMACSHA256::Finish
    - HMACSHA256::AddData
    - VerifyOrExit
    - SuccessOrExit
    - HMACSHA256::Begin
    - EncodedHMACSignature::WriteSignature
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "GenerateAndEncodeWeaveHMACSignature(OID sigAlgoOID,\n                                                TLVWriter&
      writer, uint64_t tag,\n                                                const
      uint8_t * data, uint16_t dataLen,\n                                                const
      uint8_t * key, uint16_t keyLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:263,1
    - Dst: HMACSHA256::Begin
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:266,1
    - Dst: HMACSHA256::AddData
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:267,1
    - Dst: HMACSHA256::Finish
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:268,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:273,1
    - Dst: EncodedHMACSignature::IsEqual
      Src: /src/openweave-core/src/lib/support/crypto/HMAC.cpp:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 6
    argNames:
    - sigAlgoOID
    - data
    - dataLen
    - ' sig'
    - key
    - keyLen
    argTypes:
    - OID
    - uint8_t*
    - uint16_t
    - EncodedHMACSignature
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 277
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 277
    functionName: nl::Weave::Crypto::VerifyHMACSignature
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HMAC.cpp
    functionUses: 0
    functionsReached:
    - EncodedHMACSignature::IsEqual
    - HMACSHA256::Finish
    - HMACSHA256::AddData
    - VerifyOrExit
    - HMACSHA256::Begin
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "VerifyHMACSignature(OID sigAlgoOID,\n                                const
      uint8_t * data, uint16_t dataLen,\n                                const EncodedHMACSignature&
      sig,\n                                const uint8_t * key, uint16_t keyLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: '* operator new     (size_t, void * p) throw()'
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HKDF.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '* operator new     (size_t, void * p) throw()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: '* operator new[]   (size_t, void * p) throw()'
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HKDF.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '* operator new[]   (size_t, void * p) throw()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: nl::Weave::Crypto::HKDF<H>::HKDF
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HKDF.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: HKDF<H>::HKDF()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: HKDF<H>::~HKDF()
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HKDF.cpp
    functionUses: 0
    functionsReached:
    - Reset
    linkageType: ''
    returnType: void
    signature: HKDF<H>::~HKDF()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Begin
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - salt
    - saltLen
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: nl::Weave::Crypto::HKDF<H>::BeginExtractKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HKDF.cpp
    functionUses: 0
    functionsReached:
    - Begin
    linkageType: ''
    returnType: void
    signature: HKDF<H>::BeginExtractKey(const uint8_t *salt, uint16_t saltLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddData
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keyData
    - keyDataLen
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: nl::Weave::Crypto::HKDF<H>::AddKeyMaterial
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HKDF.cpp
    functionUses: 0
    functionsReached:
    - AddData
    linkageType: ''
    returnType: void
    signature: HKDF<H>::AddKeyMaterial(const uint8_t *keyData, uint16_t keyDataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddData
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' num'
    argTypes:
    - BIGNUM
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: nl::Weave::Crypto::HKDF<H>::AddKeyMaterial
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HKDF.cpp
    functionUses: 0
    functionsReached:
    - AddData
    linkageType: ''
    returnType: void
    signature: HKDF<H>::AddKeyMaterial(const BIGNUM& num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Finish
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: nl::Weave::Crypto::HKDF<H>::FinishExtractKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HKDF.cpp
    functionUses: 0
    functionsReached:
    - Finish
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: HKDF<H>::FinishExtractKey()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::HKDF<H>::Reset
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:91,1
    - Dst: Begin
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:93,1
    - Dst: AddData
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:96,1
    - Dst: AddData
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:99,1
    - Dst: AddData
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:101,1
    - Dst: Finish
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:106,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:107,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:108,1
    - Dst: Finish
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:112,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - info
    - infoLen
    - keyLen
    - outKey
    argTypes:
    - uint8_t*
    - uint16_t
    - uint16_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 119
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 119
    functionName: nl::Weave::Crypto::HKDF<H>::ExpandKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HKDF.cpp
    functionUses: 0
    functionsReached:
    - Finish
    - nl::Weave::Crypto::HKDF<H>::Reset
    - memset
    - AddData
    - Begin
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: HKDF<H>::ExpandKey(const uint8_t *info, uint16_t infoLen, uint16_t
      keyLen, uint8_t *outKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:131,1
    - Dst: HKDF::BeginExtractKey
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:133,1
    - Dst: HKDF::AddKeyMaterial
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:134,1
    - Dst: HKDF::AddKeyMaterial
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:135,1
    - Dst: HKDF::FinishExtractKey
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:137,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:138,1
    - Dst: HKDF::ExpandKey
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:140,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:141,1
    - Dst: HKDF::Reset
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 11
    argNames:
    - salt
    - saltLen
    - keyMaterial1
    - keyMaterial1Len
    - keyMaterial2
    - keyMaterial2Len
    - info
    - infoLen
    - outKey
    - outKeyBufSize
    - outKeyLen
    argTypes:
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 147
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 147
    functionName: nl::Weave::Crypto::HKDF<H>::DeriveKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HKDF.cpp
    functionUses: 0
    functionsReached:
    - HKDF::FinishExtractKey
    - VerifyOrExit
    - HKDF::ExpandKey
    - HKDF::Reset
    - HKDF::AddKeyMaterial
    - SuccessOrExit
    - HKDF::BeginExtractKey
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "HKDF<H>::DeriveKey(const uint8_t *salt, uint16_t saltLen,\n                               const
      uint8_t *keyMaterial1, uint16_t keyMaterial1Len,\n                               const
      uint8_t *keyMaterial2, uint16_t keyMaterial2Len,\n                               const
      uint8_t *info, uint16_t infoLen,\n                               uint8_t *outKey,
      uint16_t outKeyBufSize, uint16_t outKeyLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::HKDF<H>::Reset
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:152,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 154
    functionName: nl::Weave::Crypto::HKDF<H>::Reset
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HKDF.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Crypto::HKDF<H>::Reset
    - ClearSecretData
    linkageType: ''
    returnType: void
    signature: HKDF<H>::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::HKDFSHA1Or256::ObjBuf
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:165,1
    - Dst: HKDFSHA1::HKDFSHA1
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:165,1
    - Dst: nl::Weave::Crypto::HKDFSHA1Or256::ObjBuf
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:167,1
    - Dst: HKDFSHA256::HKDFSHA256
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - useSHA1
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 168
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 168
    functionName: nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA1Or256
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HKDF.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::HKDFSHA1Or256::ObjBuf
    - HKDFSHA256::HKDFSHA256
    - HKDFSHA1::HKDFSHA1
    linkageType: ''
    returnType: void
    signature: HKDFSHA1Or256::HKDFSHA1Or256(bool useSHA1)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA1Obj
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:173,1
    - Dst: nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA256Obj
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - salt
    - saltLen
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: nl::Weave::Crypto::HKDFSHA1Or256::BeginExtractKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HKDF.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA1Obj
    - nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA256Obj
    linkageType: ''
    returnType: void
    signature: HKDFSHA1Or256::BeginExtractKey(const uint8_t* salt, uint16_t saltLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA1Obj
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:181,1
    - Dst: nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA256Obj
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - keyData
    - keyDataLen
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: nl::Weave::Crypto::HKDFSHA1Or256::AddKeyMaterial
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HKDF.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA1Obj
    - nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA256Obj
    linkageType: ''
    returnType: void
    signature: HKDFSHA1Or256::AddKeyMaterial(const uint8_t* keyData, uint16_t keyDataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA1Obj
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:189,1
    - Dst: nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA256Obj
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: nl::Weave::Crypto::HKDFSHA1Or256::FinishExtractKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HKDF.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA1Obj
    - nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA256Obj
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: HKDFSHA1Or256::FinishExtractKey(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA1Obj
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:197,1
    - Dst: nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA256Obj
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - info
    - infoLen
    - keyLen
    - outKey
    argTypes:
    - uint8_t*
    - uint16_t
    - uint16_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: nl::Weave::Crypto::HKDFSHA1Or256::ExpandKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HKDF.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA1Obj
    - nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA256Obj
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: HKDFSHA1Or256::ExpandKey(const uint8_t* info, uint16_t infoLen, uint16_t
      keyLen, uint8_t* outKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA1Obj
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:205,1
    - Dst: nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA256Obj
      Src: /src/openweave-core/src/lib/support/crypto/HKDF.cpp:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: nl::Weave::Crypto::HKDFSHA1Or256::Reset
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HKDF.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA1Obj
    - nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA256Obj
    linkageType: ''
    returnType: void
    signature: HKDFSHA1Or256::Reset(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: nl::Weave::Platform::Security::SHA1::SHA1
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-MinCrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SHA1::SHA1()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: SHA1::~SHA1()
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-MinCrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SHA1::~SHA1()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA_init
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-MinCrypt.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: nl::Weave::Platform::Security::SHA1::Begin
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-MinCrypt.cpp
    functionUses: 0
    functionsReached:
    - SHA_init
    linkageType: ''
    returnType: void
    signature: SHA1::Begin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA_update
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-MinCrypt.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - dataLen
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: nl::Weave::Platform::Security::SHA1::AddData
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-MinCrypt.cpp
    functionUses: 1
    functionsReached:
    - SHA_update
    linkageType: ''
    returnType: void
    signature: SHA1::AddData(const uint8_t *data, uint16_t dataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-MinCrypt.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hashBuf
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: nl::Weave::Platform::Security::SHA1::Finish
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-MinCrypt.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: SHA1::Finish(uint8_t *hashBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-MinCrypt.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: nl::Weave::Platform::Security::SHA1::Reset
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-MinCrypt.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: SHA1::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: nl::Weave::Platform::Security::SHA256::SHA256
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-MinCrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SHA256::SHA256()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: SHA256::~SHA256()
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-MinCrypt.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SHA256::~SHA256()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_init
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-MinCrypt.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: nl::Weave::Platform::Security::SHA256::Begin
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-MinCrypt.cpp
    functionUses: 0
    functionsReached:
    - SHA256_init
    linkageType: ''
    returnType: void
    signature: SHA256::Begin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_update
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-MinCrypt.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - dataLen
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: nl::Weave::Platform::Security::SHA256::AddData
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-MinCrypt.cpp
    functionUses: 1
    functionsReached:
    - SHA256_update
    linkageType: ''
    returnType: void
    signature: SHA256::AddData(const uint8_t *data, uint16_t dataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-MinCrypt.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hashBuf
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: nl::Weave::Platform::Security::SHA256::Finish
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-MinCrypt.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: SHA256::Finish(uint8_t *hashBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/HashAlgos-MinCrypt.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: nl::Weave::Platform::Security::SHA256::Reset
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos-MinCrypt.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: SHA256::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: nl::Weave::Platform::Security::AES128BlockCipher::AES128BlockCipher
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: AES128BlockCipher::AES128BlockCipher()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: AES128BlockCipher::~AES128BlockCipher()
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp
    functionUses: 0
    functionsReached:
    - Reset
    linkageType: ''
    returnType: void
    signature: AES128BlockCipher::~AES128BlockCipher()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: nl::Weave::Platform::Security::AES128BlockCipher::Reset
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp
    functionUses: 0
    functionsReached:
    - ClearSecretData
    linkageType: ''
    returnType: void
    signature: AES128BlockCipher::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:72,1
    - Dst: ExpandRoundKey128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:73,1
    - Dst: ExpandRoundKey128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:74,1
    - Dst: ExpandRoundKey128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:75,1
    - Dst: ExpandRoundKey128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:76,1
    - Dst: ExpandRoundKey128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:77,1
    - Dst: ExpandRoundKey128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:78,1
    - Dst: ExpandRoundKey128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:79,1
    - Dst: ExpandRoundKey128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:80,1
    - Dst: ExpandRoundKey128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:81,1
    - Dst: ExpandRoundKey128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:82,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - key
    - expandedKey
    argTypes:
    - uint8_t*
    - __m128i*
    constantsTouched: []
    func_position:
      end: 84
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 84
    functionName: nl::Weave::Platform::Security::ExpandKey128
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp
    functionUses: 0
    functionsReached:
    - _mm_loadu_si128
    - ExpandRoundKey128
    - ClearSecretData
    linkageType: ''
    returnType: void
    signature: ExpandKey128(const uint8_t *key, __m128i *expandedKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExpandKey128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: nl::Weave::Platform::Security::AES128BlockCipherEnc::SetKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp
    functionUses: 0
    functionsReached:
    - ExpandKey128
    linkageType: ''
    returnType: void
    signature: AES128BlockCipherEnc::SetKey(const uint8_t *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:95,1
    - Dst: _mm_xor_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:96,1
    - Dst: _mm_aesenc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:97,1
    - Dst: _mm_aesenc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:98,1
    - Dst: _mm_aesenc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:99,1
    - Dst: _mm_aesenc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:100,1
    - Dst: _mm_aesenc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:101,1
    - Dst: _mm_aesenc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:102,1
    - Dst: _mm_aesenc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:103,1
    - Dst: _mm_aesenc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:104,1
    - Dst: _mm_aesenc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:105,1
    - Dst: _mm_aesenclast_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:106,1
    - Dst: _mm_storeu_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:107,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - inBlock
    - outBlock
    argTypes:
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 109
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 109
    functionName: nl::Weave::Platform::Security::AES128BlockCipherEnc::EncryptBlock
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp
    functionUses: 0
    functionsReached:
    - _mm_loadu_si128
    - ClearSecretData
    - _mm_aesenc_si128
    - _mm_storeu_si128
    - _mm_xor_si128
    - _mm_aesenclast_si128
    linkageType: ''
    returnType: void
    signature: AES128BlockCipherEnc::EncryptBlock(const uint8_t *inBlock, uint8_t
      *outBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExpandKey128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:115,1
    - Dst: SWAP
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:116,1
    - Dst: SWAP_WITH_OP
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:117,1
    - Dst: SWAP_WITH_OP
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:118,1
    - Dst: SWAP_WITH_OP
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:119,1
    - Dst: SWAP_WITH_OP
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:120,1
    - Dst: _mm_aesimc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:121,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - key
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: nl::Weave::Platform::Security::AES128BlockCipherDec::SetKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp
    functionUses: 0
    functionsReached:
    - _mm_aesimc_si128
    - ClearSecretData
    - SWAP
    - SWAP_WITH_OP
    - ExpandKey128
    linkageType: ''
    returnType: void
    signature: AES128BlockCipherDec::SetKey(const uint8_t *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:129,1
    - Dst: _mm_xor_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:130,1
    - Dst: _mm_aesdec_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:131,1
    - Dst: _mm_aesdec_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:132,1
    - Dst: _mm_aesdec_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:133,1
    - Dst: _mm_aesdec_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:134,1
    - Dst: _mm_aesdec_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:135,1
    - Dst: _mm_aesdec_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:136,1
    - Dst: _mm_aesdec_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:137,1
    - Dst: _mm_aesdec_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:138,1
    - Dst: _mm_aesdec_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:139,1
    - Dst: _mm_aesdeclast_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:140,1
    - Dst: _mm_storeu_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:141,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - inBlock
    - outBlock
    argTypes:
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 143
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 143
    functionName: nl::Weave::Platform::Security::AES128BlockCipherDec::DecryptBlock
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp
    functionUses: 0
    functionsReached:
    - _mm_loadu_si128
    - ClearSecretData
    - _mm_aesdec_si128
    - _mm_storeu_si128
    - _mm_aesdeclast_si128
    - _mm_xor_si128
    linkageType: ''
    returnType: void
    signature: AES128BlockCipherDec::DecryptBlock(const uint8_t *inBlock, uint8_t
      *outBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: nl::Weave::Platform::Security::AES256BlockCipher::AES256BlockCipher
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: AES256BlockCipher::AES256BlockCipher()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: AES256BlockCipher::~AES256BlockCipher()
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp
    functionUses: 0
    functionsReached:
    - Reset
    linkageType: ''
    returnType: void
    signature: AES256BlockCipher::~AES256BlockCipher()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: nl::Weave::Platform::Security::AES256BlockCipher::Reset
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp
    functionUses: 0
    functionsReached:
    - ClearSecretData
    linkageType: ''
    returnType: void
    signature: AES256BlockCipher::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:190,1
    - Dst: _mm_loadu_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:191,1
    - Dst: ExpandEvenRoundKey256
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:192,1
    - Dst: ExpandOddRoundKey256
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:193,1
    - Dst: ExpandEvenRoundKey256
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:194,1
    - Dst: ExpandOddRoundKey256
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:195,1
    - Dst: ExpandEvenRoundKey256
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:196,1
    - Dst: ExpandOddRoundKey256
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:197,1
    - Dst: ExpandEvenRoundKey256
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:198,1
    - Dst: ExpandOddRoundKey256
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:199,1
    - Dst: ExpandEvenRoundKey256
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:200,1
    - Dst: ExpandOddRoundKey256
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:201,1
    - Dst: ExpandEvenRoundKey256
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:202,1
    - Dst: ExpandOddRoundKey256
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:203,1
    - Dst: ExpandEvenRoundKey256
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:204,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - key
    - expandedKey
    argTypes:
    - uint8_t*
    - __m128i*
    constantsTouched: []
    func_position:
      end: 206
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 206
    functionName: nl::Weave::Platform::Security::ExpandKey256
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp
    functionUses: 0
    functionsReached:
    - ExpandOddRoundKey256
    - _mm_loadu_si128
    - ExpandEvenRoundKey256
    - ClearSecretData
    linkageType: ''
    returnType: void
    signature: ExpandKey256(const uint8_t *key, __m128i *expandedKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExpandKey256
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: nl::Weave::Platform::Security::AES256BlockCipherEnc::SetKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp
    functionUses: 0
    functionsReached:
    - ExpandKey256
    linkageType: ''
    returnType: void
    signature: AES256BlockCipherEnc::SetKey(const uint8_t *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:217,1
    - Dst: _mm_xor_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:218,1
    - Dst: _mm_aesenc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:219,1
    - Dst: _mm_aesenc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:220,1
    - Dst: _mm_aesenc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:221,1
    - Dst: _mm_aesenc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:222,1
    - Dst: _mm_aesenc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:223,1
    - Dst: _mm_aesenc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:224,1
    - Dst: _mm_aesenc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:225,1
    - Dst: _mm_aesenc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:226,1
    - Dst: _mm_aesenc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:227,1
    - Dst: _mm_aesenc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:228,1
    - Dst: _mm_aesenc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:229,1
    - Dst: _mm_aesenc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:230,1
    - Dst: _mm_aesenc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:231,1
    - Dst: _mm_aesenclast_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:232,1
    - Dst: _mm_storeu_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:233,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - inBlock
    - outBlock
    argTypes:
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 235
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 235
    functionName: nl::Weave::Platform::Security::AES256BlockCipherEnc::EncryptBlock
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp
    functionUses: 0
    functionsReached:
    - _mm_loadu_si128
    - ClearSecretData
    - _mm_aesenc_si128
    - _mm_storeu_si128
    - _mm_xor_si128
    - _mm_aesenclast_si128
    linkageType: ''
    returnType: void
    signature: AES256BlockCipherEnc::EncryptBlock(const uint8_t *inBlock, uint8_t
      *outBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExpandKey256
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:241,1
    - Dst: SWAP
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:242,1
    - Dst: SWAP_WITH_OP
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:243,1
    - Dst: SWAP_WITH_OP
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:244,1
    - Dst: SWAP_WITH_OP
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:245,1
    - Dst: SWAP_WITH_OP
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:246,1
    - Dst: SWAP_WITH_OP
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:247,1
    - Dst: SWAP_WITH_OP
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:248,1
    - Dst: _mm_aesimc_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:249,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - key
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 251
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 251
    functionName: nl::Weave::Platform::Security::AES256BlockCipherDec::SetKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp
    functionUses: 0
    functionsReached:
    - _mm_aesimc_si128
    - ClearSecretData
    - SWAP
    - SWAP_WITH_OP
    - ExpandKey256
    linkageType: ''
    returnType: void
    signature: AES256BlockCipherDec::SetKey(const uint8_t *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:257,1
    - Dst: _mm_xor_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:258,1
    - Dst: _mm_aesdec_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:259,1
    - Dst: _mm_aesdec_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:260,1
    - Dst: _mm_aesdec_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:261,1
    - Dst: _mm_aesdec_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:262,1
    - Dst: _mm_aesdec_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:263,1
    - Dst: _mm_aesdec_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:264,1
    - Dst: _mm_aesdec_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:265,1
    - Dst: _mm_aesdec_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:266,1
    - Dst: _mm_aesdec_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:267,1
    - Dst: _mm_aesdec_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:268,1
    - Dst: _mm_aesdec_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:269,1
    - Dst: _mm_aesdec_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:270,1
    - Dst: _mm_aesdec_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:271,1
    - Dst: _mm_aesdeclast_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:272,1
    - Dst: _mm_storeu_si128
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:273,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - inBlock
    - outBlock
    argTypes:
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 275
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 275
    functionName: nl::Weave::Platform::Security::AES256BlockCipherDec::DecryptBlock
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp
    functionUses: 0
    functionsReached:
    - _mm_loadu_si128
    - ClearSecretData
    - _mm_aesdec_si128
    - _mm_storeu_si128
    - _mm_aesdeclast_si128
    - _mm_xor_si128
    linkageType: ''
    returnType: void
    signature: AES256BlockCipherDec::DecryptBlock(const uint8_t *inBlock, uint8_t
      *outBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: nl::Weave::Platform::Security::AES128BlockCipher::AES128BlockCipher
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: AES128BlockCipher::AES128BlockCipher()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: AES128BlockCipher::~AES128BlockCipher()
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - Reset
    linkageType: ''
    returnType: void
    signature: AES128BlockCipher::~AES128BlockCipher()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: nl::Weave::Platform::Security::AES128BlockCipher::Reset
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - ClearSecretData
    linkageType: ''
    returnType: void
    signature: AES128BlockCipher::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: nl::Weave::Platform::Security::AES128BlockCipherEnc::SetKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - AES_set_encrypt_key
    linkageType: ''
    returnType: void
    signature: AES128BlockCipherEnc::SetKey(const uint8_t *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES_encrypt
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inBlock
    - outBlock
    argTypes:
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: nl::Weave::Platform::Security::AES128BlockCipherEnc::EncryptBlock
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - AES_encrypt
    linkageType: ''
    returnType: void
    signature: AES128BlockCipherEnc::EncryptBlock(const uint8_t *inBlock, uint8_t
      *outBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: nl::Weave::Platform::Security::AES128BlockCipherDec::SetKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - AES_set_decrypt_key
    linkageType: ''
    returnType: void
    signature: AES128BlockCipherDec::SetKey(const uint8_t *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES_decrypt
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inBlock
    - outBlock
    argTypes:
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: nl::Weave::Platform::Security::AES128BlockCipherDec::DecryptBlock
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - AES_decrypt
    linkageType: ''
    returnType: void
    signature: AES128BlockCipherDec::DecryptBlock(const uint8_t *inBlock, uint8_t
      *outBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: nl::Weave::Platform::Security::AES256BlockCipher::AES256BlockCipher
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: AES256BlockCipher::AES256BlockCipher()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: AES256BlockCipher::~AES256BlockCipher()
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - Reset
    linkageType: ''
    returnType: void
    signature: AES256BlockCipher::~AES256BlockCipher()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: nl::Weave::Platform::Security::AES256BlockCipher::Reset
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - ClearSecretData
    linkageType: ''
    returnType: void
    signature: AES256BlockCipher::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: nl::Weave::Platform::Security::AES256BlockCipherEnc::SetKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - AES_set_encrypt_key
    linkageType: ''
    returnType: void
    signature: AES256BlockCipherEnc::SetKey(const uint8_t *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES_encrypt
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inBlock
    - outBlock
    argTypes:
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: nl::Weave::Platform::Security::AES256BlockCipherEnc::EncryptBlock
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - AES_encrypt
    linkageType: ''
    returnType: void
    signature: AES256BlockCipherEnc::EncryptBlock(const uint8_t *inBlock, uint8_t
      *outBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: nl::Weave::Platform::Security::AES256BlockCipherDec::SetKey
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - AES_set_decrypt_key
    linkageType: ''
    returnType: void
    signature: AES256BlockCipherDec::SetKey(const uint8_t *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES_decrypt
      Src: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inBlock
    - outBlock
    argTypes:
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: nl::Weave::Platform::Security::AES256BlockCipherDec::DecryptBlock
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp
    functionUses: 0
    functionsReached:
    - AES_decrypt
    linkageType: ''
    returnType: void
    signature: AES256BlockCipherDec::DecryptBlock(const uint8_t *inBlock, uint8_t
      *outBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - buf1
    - buf2
    - len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: nl::Weave::Crypto::ConstantTimeCompare
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/WeaveCrypto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ConstantTimeCompare(const uint8_t *buf1, const uint8_t *buf2, uint16_t
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/support/crypto/WeaveCrypto.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: nl::Weave::Crypto::ClearSecretData
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/WeaveCrypto.cpp
    functionUses: 5
    functionsReached:
    - memset
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: ClearSecretData(uint8_t *buf, uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 116
    functionName: nl::Weave::Platform::Security::SHA1
    functionSourceFile: /src/openweave-core/src/lib/support/crypto/HashAlgos.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: SHA1
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:68,1
    - Dst: nl::Weave::Encoding::BigEndian::Read32
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:71,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:74,1
    - Dst: nl::Weave::Encoding::BigEndian::Read16
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:76,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:78,1
    - Dst: Read8
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:80,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:84,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:88,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:96,1
    - Dst: nl::Weave::Encoding::BigEndian::Read16
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:100,1
    - Dst: nl::Weave::Encoding::BigEndian::Read16
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:102,1
    - Dst: nl::Weave::Encoding::BigEndian::Read16
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:106,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:111,1
    - Dst: nl::Weave::Encoding::BigEndian::Read16
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:115,1
    - Dst: nl::Weave::Encoding::BigEndian::Read16
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:117,1
    - Dst: nl::Weave::Encoding::BigEndian::Read16
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:121,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:127,1
    - Dst: nl::Weave::Encoding::BigEndian::Read16
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:133,1
    - Dst: DecodedIPPacket::DoesPacketHaveWeaveMessage
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:136,1
    - Dst: DecodedIPPacket::ParseWeaveMessageHeader
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:140,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:141,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:149,1
    - Dst: Read8
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:152,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:155,1
    - Dst: Read8
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:157,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:158,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:159,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:167,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:168,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 60
    argCount: 2
    argNames:
    - p
    - pktLen
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 175
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 175
    functionName: DecodedIPPacket::PacketHeaderDecode
    functionSourceFile: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::BigEndian::Read16
    - nl::Weave::Encoding::LittleEndian::Read32
    - nl::Weave::Encoding::BigEndian::Read32
    - VerifyOrExit
    - ExitNow
    - memcpy
    - SuccessOrExit
    - nl::Weave::Encoding::LittleEndian::Read16
    - Read8
    - DecodedIPPacket::DoesPacketHaveWeaveMessage
    - DecodedIPPacket::ParseWeaveMessageHeader
    linkageType: ''
    returnType: INET_ERROR
    signature: DecodedIPPacket::PacketHeaderDecode(const uint8_t *p, uint16_t pktLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:184,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 190
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 190
    functionName: DecodedIPPacket::GetWeaveNodeIdFromAddr
    functionSourceFile: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    linkageType: ''
    returnType: uint64_t
    signature: DecodedIPPacket::GetWeaveNodeIdFromAddr(const uint8_t *addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:202,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:206,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:208,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:210,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:212,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:218,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:222,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:231,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read64
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:233,1
    - Dst: DecodedIPPacket::GetWeaveNodeIdFromAddr
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:237,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:245,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read64
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:247,1
    - Dst: DecodedIPPacket::GetWeaveNodeIdFromAddr
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:251,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:259,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:261,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 3
    argNames:
    - p
    - pktStart
    - payloadStart
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t**
    constantsTouched: []
    func_position:
      end: 274
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 274
    functionName: DecodedIPPacket::ParseWeaveMessageHeader
    functionSourceFile: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint16_t>
    - ExitNow
    - static_cast<uint8_t>
    - nl::Weave::Encoding::LittleEndian::Read32
    - nl::Weave::Encoding::LittleEndian::Read16
    - nl::Weave::Encoding::LittleEndian::Read64
    - DecodedIPPacket::GetWeaveNodeIdFromAddr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodedIPPacket::ParseWeaveMessageHeader(const uint8_t *p, const uint8_t
      *pktStart, const uint8_t **payloadStart)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 292
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 292
    functionName: DecodedIPPacket::DoesPacketHaveWeaveMessage
    functionSourceFile: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: DecodedIPPacket::DoesPacketHaveWeaveMessage(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:318,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:319,1
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:326,1
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:327,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:329,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:334,1
    - Dst: DecodedIPPacket::DoesPacketHaveWeaveMessage
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:336,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:342,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:347,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:349,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:352,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:357,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:360,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:362,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:369,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp:374,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - decodedPacket
    - isTunneled
    argTypes:
    - DecodedIPPacket
    - bool
    constantsTouched: []
    func_position:
      end: 379
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 379
    functionName: LogPacket
    functionSourceFile: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp
    functionUses: 0
    functionsReached:
    - ExitNow
    - memcpy
    - snprintf
    - IPAddress::ToString
    - WeaveLogDetail
    - DecodedIPPacket::DoesPacketHaveWeaveMessage
    linkageType: ''
    returnType: INET_ERROR
    signature: LogPacket(const DecodedIPPacket &decodedPacket, bool isTunneled)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - module
    argTypes:
    - char*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: nl::Weave::Logging::GetModuleName
    functionSourceFile: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp
    functionUses: 7
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: GetModuleName(char *buf, uint8_t module)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:130,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - buf
    - bufSize
    - category
    argTypes:
    - char*
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 132
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 132
    functionName: nl::Weave::Logging::GetCategoryName
    functionSourceFile: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp
    functionUses: 0
    functionsReached:
    - strncpy
    linkageType: ''
    returnType: void
    signature: GetCategoryName(char *buf, uint8_t bufSize, uint8_t category)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Logging::GetModuleName
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:138,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - buf
    - bufSize
    - module
    - msg
    argTypes:
    - char*
    - uint8_t
    - uint8_t
    - char*
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 140
    functionName: nl::Weave::Logging::GetMessageWithPrefix
    functionSourceFile: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Logging::GetModuleName
    - snprintf
    linkageType: ''
    returnType: void
    signature: GetMessageWithPrefix(char *buf, uint8_t bufSize, uint8_t module, const
      char *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Logging::GetModuleName
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:145,1
    - Dst: gettimeofday
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:154,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:155,1
    - Dst: perror
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:155,1
    - Dst: localtime
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:157,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:158,1
    - Dst: perror
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:158,1
    - Dst: strftime
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:160,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:161,1
    - Dst: perror
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:161,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:164,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:169,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - module
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 177
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 177
    functionName: nl::Weave::Logging::PrintMessagePrefix
    functionSourceFile: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Logging::GetModuleName
    - VerifyOrExit
    - perror
    - localtime
    - gettimeofday
    - printf
    - strftime
    linkageType: ''
    returnType: void
    signature: PrintMessagePrefix(uint8_t module)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsCategoryEnabled
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:197,1
    - Dst: nl::Weave::Logging::PrintMessagePrefix
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:199,1
    - Dst: vprintf
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:200,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - module
    - category
    - msg
    - ap
    argTypes:
    - uint8_t
    - uint8_t
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 203
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 203
    functionName: nl::Weave::Logging::DefaultLogMessage
    functionSourceFile: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Logging::PrintMessagePrefix
    - IsCategoryEnabled
    - vprintf
    - printf
    linkageType: ''
    returnType: void
    signature: DefaultLogMessage(uint8_t module, uint8_t category, const char *msg,
      va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsCategoryEnabled
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:209,1
    - Dst: nl::Weave::Logging::GetModuleName
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:212,1
    - Dst: __android_log_vprint
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - module
    - category
    - msg
    - ap
    argTypes:
    - uint8_t
    - uint8_t
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 218
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 218
    functionName: nl::Weave::Logging::DefaultLogMessage
    functionSourceFile: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp
    functionUses: 0
    functionsReached:
    - IsCategoryEnabled
    - nl::Weave::Logging::GetModuleName
    - __android_log_vprint
    linkageType: ''
    returnType: void
    signature: DefaultLogMessage(uint8_t module, uint8_t category, const char *msg,
      va_list ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:264,1
    - Dst: gLogFunct
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:266,1
    - Dst: nl::Weave::Logging::DefaultLogMessage
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:268,1
    - Dst: va_end
      Src: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - category
    - msg
    argTypes:
    - uint8_t
    - uint8_t
    - char*
    constantsTouched: []
    func_position:
      end: 271
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 271
    functionName: nl::Weave::Logging::Log
    functionSourceFile: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp
    functionUses: 0
    functionsReached:
    - va_start
    - nl::Weave::Logging::DefaultLogMessage
    - va_end
    - gLogFunct
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: Log(uint8_t module, uint8_t category, const char *msg, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - logFunct
    argTypes:
    - LogMessageFunct
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: nl::Weave::Logging::SetLogFunct
    functionSourceFile: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: SetLogFunct(LogMessageFunct logFunct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 291
    functionName: nl::Weave::Logging::GetLogFilter
    functionSourceFile: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: GetLogFilter()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - category
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 298
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 298
    functionName: nl::Weave::Logging::SetLogFilter
    functionSourceFile: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: SetLogFilter(uint8_t category)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - bufSize
    - module
    - msg
    argTypes:
    - char*
    - uint8_t
    - uint8_t
    - char*
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: nl::Weave::Logging::GetMessageWithPrefix
    functionSourceFile: /src/openweave-core/src/lib/support/logging/WeaveLogging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: GetMessageWithPrefix(char *buf, uint8_t bufSize, uint8_t module, const
      char *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - module
    argTypes:
    - char*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: nl::Weave::Logging::GetModuleName
    functionSourceFile: /src/openweave-core/src/lib/support/logging/WeaveLogging.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: GetModuleName(char *buf, uint8_t module)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemTimeAsFileTime
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:87,1
    - Dst: gettimeofday
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: VerhoeffTest::Now
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp
    functionUses: 0
    functionsReached:
    - gettimeofday
    - GetSystemTimeAsFileTime
    linkageType: ''
    returnType: uint64_t
    signature: Now()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerhoeffTest::Reset
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: VerhoeffTest::VerhoeffTest
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp
    functionUses: 0
    functionsReached:
    - VerhoeffTest::Reset
    linkageType: ''
    returnType: void
    signature: VerhoeffTest::VerhoeffTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: VerhoeffTest::Reset
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: VerhoeffTest::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerhoeffTest::Reset
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:116,1
    - Dst: VerhoeffTest::TestSingleDigitErrors
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:129,1
    - Dst: VerhoeffTest::TestAdjacentTranspositions
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:130,1
    - Dst: VerhoeffTest::TestJumpTranspositions
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:133,1
    - Dst: VerhoeffTest::Now
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:138,1
    - Dst: free
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - strLen
    - division
    - divisions
    - runBasicTests
    argTypes:
    - int
    - int
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 141
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 141
    functionName: VerhoeffTest::RunTests
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp
    functionUses: 0
    functionsReached:
    - VerhoeffTest::Now
    - VerhoeffTest::Reset
    - VerhoeffTest::TestJumpTranspositions
    - free
    - VerhoeffTest::TestSingleDigitErrors
    - VerhoeffTest::TestAdjacentTranspositions
    linkageType: ''
    returnType: void
    signature: VerhoeffTest::RunTests(int strLen, int division, int divisions, bool
      runBasicTests)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: srand
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:151,1
    - Dst: time
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:151,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:164,1
    - Dst: VerhoeffTest::Reset
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:166,1
    - Dst: VerhoeffTest::MakeTestString
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:170,1
    - Dst: VerhoeffTest::TestSingleDigitErrors
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:173,1
    - Dst: VerhoeffTest::TestAdjacentTranspositions
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:181,1
    - Dst: VerhoeffTest::TestJumpTranspositions
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:188,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:195,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:197,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:198,1
    - Dst: VerhoeffTest::PermutePermutationTable
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:203,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - strLen
    - division
    - divisions
    argTypes:
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 205
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 205
    functionName: VerhoeffTest::SearchPermutations
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp
    functionUses: 0
    functionsReached:
    - VerhoeffTest::Reset
    - VerhoeffTest::MakeTestString
    - VerhoeffTest::PermutePermutationTable
    - VerhoeffTest::TestJumpTranspositions
    - printf
    - VerhoeffTest::TestSingleDigitErrors
    - srand
    - time
    - VerhoeffTest::TestAdjacentTranspositions
    linkageType: ''
    returnType: void
    signature: VerhoeffTest::SearchPermutations(int strLen, int division, int divisions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerhoeffTest::MakeTestString
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - strLen
    - division
    - divisions
    argTypes:
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 230
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 230
    functionName: VerhoeffTest::MakeTestStrings
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp
    functionUses: 0
    functionsReached:
    - VerhoeffTest::MakeTestString
    linkageType: ''
    returnType: char
    signature: '*VerhoeffTest::MakeTestStrings(int strLen, int division, int divisions)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Base64ValToChar
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:239,1
    - Dst: Verhoeff10::ComputeCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - buf
    - strLen
    - val
    argTypes:
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 244
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 244
    functionName: VerhoeffTest::MakeTestString
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp
    functionUses: 2
    functionsReached:
    - nl::Base64ValToChar
    - Verhoeff10::ComputeCheckChar
    linkageType: ''
    returnType: void
    signature: VerhoeffTest::MakeTestString(char *buf, int strLen, int val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Base64ValToChar
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:264,1
    - Dst: Verhoeff10::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:266,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - str
    - strLen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 273
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 273
    functionName: VerhoeffTest::TestSingleDigitErrors
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp
    functionUses: 2
    functionsReached:
    - nl::Base64ValToChar
    - Verhoeff10::ValidateCheckChar
    linkageType: ''
    returnType: void
    signature: VerhoeffTest::TestSingleDigitErrors(char *str, size_t strLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff10::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:289,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - str
    - strLen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 295
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 295
    functionName: VerhoeffTest::TestAdjacentTranspositions
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp
    functionUses: 2
    functionsReached:
    - Verhoeff10::ValidateCheckChar
    linkageType: ''
    returnType: void
    signature: VerhoeffTest::TestAdjacentTranspositions(char *str, size_t strLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff10::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:311,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - str
    - strLen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 317
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 317
    functionName: VerhoeffTest::TestJumpTranspositions
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp
    functionUses: 2
    functionsReached:
    - Verhoeff10::ValidateCheckChar
    linkageType: ''
    returnType: void
    signature: VerhoeffTest::TestJumpTranspositions(char *str, size_t strLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 329
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 329
    functionName: VerhoeffTest::PermutePermutationTable
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: VerhoeffTest::PermutePermutationTable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - limit
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 339
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 339
    functionName: VerhoeffTest::RandRange
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp
    functionUses: 0
    functionsReached:
    - rand
    linkageType: ''
    returnType: int
    signature: VerhoeffTest::RandRange(int limit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:349,1
    - Dst: strrchr
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:351,1
    - Dst: strcmp
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:356,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:360,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:367,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:371,1
    - Dst: strcmp
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:374,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:378,1
    - Dst: Verhoeff10::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:382,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:384,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:389,1
    - Dst: strcmp
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:394,1
    - Dst: VerhoeffTest::VerhoeffTest
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:396,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:400,1
    - Dst: strcmp
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:409,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:411,1
    - Dst: Verhoeff10::ComputeCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:414,1
    - Dst: sprintf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:415,1
    - Dst: Verhoeff10::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:416,1
    - Dst: Verhoeff10::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:417,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:419,1
    - Dst: VerhoeffTest::RunTests
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:424,1
    - Dst: strcmp
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:426,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:428,1
    - Dst: Verhoeff16::ComputeCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:431,1
    - Dst: sprintf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:432,1
    - Dst: Verhoeff16::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:433,1
    - Dst: Verhoeff16::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:434,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:436,1
    - Dst: VerhoeffTest::RunTests
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:441,1
    - Dst: strcmp
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:443,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:445,1
    - Dst: Verhoeff32::ComputeCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:448,1
    - Dst: sprintf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:449,1
    - Dst: Verhoeff32::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:450,1
    - Dst: Verhoeff32::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:451,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:453,1
    - Dst: VerhoeffTest::RunTests
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:458,1
    - Dst: strcmp
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:460,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:462,1
    - Dst: Verhoeff36::ComputeCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:465,1
    - Dst: sprintf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:466,1
    - Dst: Verhoeff36::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:467,1
    - Dst: Verhoeff36::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:468,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:470,1
    - Dst: VerhoeffTest::RunTests
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:475,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:479,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:483,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:485,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:487,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:489,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:491,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:493,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:495,1
    - Dst: strcmp
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:498,1
    - Dst: VerhoeffTest::VerhoeffTest
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:500,1
    - Dst: VerhoeffTest::SearchPermutations
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:501,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp:506,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 97
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 519
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 519
    functionName: main
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp
    functionUses: 0
    functionsReached:
    - VerhoeffTest::RunTests
    - Verhoeff36::ComputeCheckChar
    - Verhoeff16::ValidateCheckChar
    - strcmp
    - VerhoeffTest::VerhoeffTest
    - Verhoeff32::ComputeCheckChar
    - Verhoeff10::ComputeCheckChar
    - VerhoeffTest::SearchPermutations
    - strrchr
    - Verhoeff32::ValidateCheckChar
    - printf
    - Verhoeff36::ValidateCheckChar
    - Verhoeff16::ComputeCheckChar
    - fprintf
    - Verhoeff10::ValidateCheckChar
    - sprintf
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - x
    - y
    - n
    argTypes:
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 49
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 49
    functionName: Verhoeff::DihedralMultiply
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: Verhoeff::DihedralMultiply(int x, int y, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - val
    - n
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: Verhoeff::DihedralInvert
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: Verhoeff::DihedralInvert(int val, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff::Permute
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff.cpp:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - val
    - permTable
    - permTableLen
    - iterCount
    argTypes:
    - int
    - uint8_t*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: Verhoeff::Permute
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff.cpp
    functionUses: 1
    functionsReached:
    - Verhoeff::Permute
    linkageType: ''
    returnType: int
    signature: Verhoeff::Permute(int val, uint8_t *permTable, int permTableLen, int
      iterCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 72
    functionName: Verhoeff10
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: Verhoeff10
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 109
    functionName: Verhoeff16
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: Verhoeff16
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 150
    functionName: Verhoeff32
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: Verhoeff32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 185
    functionName: Verhoeff36
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: Verhoeff36
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff10::ComputeCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff10.cpp:56,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff10.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: Verhoeff10::ComputeCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff10.cpp
    functionUses: 3
    functionsReached:
    - strlen
    - Verhoeff10::ComputeCheckChar
    linkageType: ''
    returnType: char
    signature: Verhoeff10::ComputeCheckChar(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff::DihedralMultiply
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff10.cpp:74,1
    - Dst: Verhoeff::DihedralInvert
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff10.cpp:80,1
    - Dst: Verhoeff10::ValToChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff10.cpp:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - str
    - strLen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 83
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 83
    functionName: Verhoeff10::ComputeCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff10.cpp
    functionUses: 3
    functionsReached:
    - Verhoeff::DihedralInvert
    - Verhoeff10::ValToChar
    - Verhoeff::DihedralMultiply
    linkageType: ''
    returnType: char
    signature: Verhoeff10::ComputeCheckChar(const char *str, size_t strLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff10::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff10.cpp:87,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff10.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - checkChar
    - str
    argTypes:
    - char
    - char*
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: Verhoeff10::ValidateCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff10.cpp
    functionUses: 5
    functionsReached:
    - strlen
    - Verhoeff10::ValidateCheckChar
    linkageType: ''
    returnType: bool
    signature: Verhoeff10::ValidateCheckChar(char checkChar, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff10::ComputeCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff10.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - checkChar
    - str
    - strLen
    argTypes:
    - char
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: Verhoeff10::ValidateCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff10.cpp
    functionUses: 5
    functionsReached:
    - Verhoeff10::ComputeCheckChar
    linkageType: ''
    returnType: bool
    signature: Verhoeff10::ValidateCheckChar(char checkChar, const char *str, size_t
      strLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff10::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff10.cpp:97,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff10.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: Verhoeff10::ValidateCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff10.cpp
    functionUses: 6
    functionsReached:
    - strlen
    - Verhoeff10::ValidateCheckChar
    linkageType: ''
    returnType: bool
    signature: Verhoeff10::ValidateCheckChar(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff10::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff10.cpp:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - strLen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: Verhoeff10::ValidateCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff10.cpp
    functionUses: 7
    functionsReached:
    - Verhoeff10::ValidateCheckChar
    linkageType: ''
    returnType: bool
    signature: Verhoeff10::ValidateCheckChar(const char *str, size_t strLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: Verhoeff10::CharToVal
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff10.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: Verhoeff10::CharToVal(char ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: Verhoeff10::ValToChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff10.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: Verhoeff10::ValToChar(int val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff32::ComputeCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff32.cpp:93,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff32.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: Verhoeff32::ComputeCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff32.cpp
    functionUses: 7
    functionsReached:
    - strlen
    - Verhoeff32::ComputeCheckChar
    linkageType: ''
    returnType: char
    signature: Verhoeff32::ComputeCheckChar(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff::DihedralMultiply
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff32.cpp:111,1
    - Dst: Verhoeff::DihedralInvert
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff32.cpp:117,1
    - Dst: Verhoeff32::ValToChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff32.cpp:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - str
    - strLen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 120
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 120
    functionName: Verhoeff32::ComputeCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff32.cpp
    functionUses: 7
    functionsReached:
    - Verhoeff::DihedralInvert
    - Verhoeff32::ValToChar
    - Verhoeff::DihedralMultiply
    linkageType: ''
    returnType: char
    signature: Verhoeff32::ComputeCheckChar(const char *str, size_t strLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff32::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff32.cpp:124,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff32.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - checkChar
    - str
    argTypes:
    - char
    - char*
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: Verhoeff32::ValidateCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff32.cpp
    functionUses: 4
    functionsReached:
    - strlen
    - Verhoeff32::ValidateCheckChar
    linkageType: ''
    returnType: bool
    signature: Verhoeff32::ValidateCheckChar(char checkChar, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff32::ComputeCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff32.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - checkChar
    - str
    - strLen
    argTypes:
    - char
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: Verhoeff32::ValidateCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff32.cpp
    functionUses: 4
    functionsReached:
    - Verhoeff32::ComputeCheckChar
    linkageType: ''
    returnType: bool
    signature: Verhoeff32::ValidateCheckChar(char checkChar, const char *str, size_t
      strLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff32::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff32.cpp:134,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff32.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: Verhoeff32::ValidateCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff32.cpp
    functionUses: 5
    functionsReached:
    - strlen
    - Verhoeff32::ValidateCheckChar
    linkageType: ''
    returnType: bool
    signature: Verhoeff32::ValidateCheckChar(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff32::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff32.cpp:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - strLen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: Verhoeff32::ValidateCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff32.cpp
    functionUses: 6
    functionsReached:
    - Verhoeff32::ValidateCheckChar
    linkageType: ''
    returnType: bool
    signature: Verhoeff32::ValidateCheckChar(const char *str, size_t strLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: Verhoeff32::CharToVal
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff32.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: Verhoeff32::CharToVal(char ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: Verhoeff32::ValToChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff32.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: Verhoeff32::ValToChar(int val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff16::ComputeCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff16.cpp:62,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff16.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: Verhoeff16::ComputeCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff16.cpp
    functionUses: 2
    functionsReached:
    - Verhoeff16::ComputeCheckChar
    - strlen
    linkageType: ''
    returnType: char
    signature: Verhoeff16::ComputeCheckChar(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff::DihedralMultiply
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff16.cpp:80,1
    - Dst: Verhoeff::DihedralInvert
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff16.cpp:86,1
    - Dst: Verhoeff16::ValToChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff16.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - str
    - strLen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 89
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 89
    functionName: Verhoeff16::ComputeCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff16.cpp
    functionUses: 2
    functionsReached:
    - Verhoeff::DihedralInvert
    - Verhoeff16::ValToChar
    - Verhoeff::DihedralMultiply
    linkageType: ''
    returnType: char
    signature: Verhoeff16::ComputeCheckChar(const char *str, size_t strLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff16::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff16.cpp:93,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff16.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - checkChar
    - str
    argTypes:
    - char
    - char*
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: Verhoeff16::ValidateCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff16.cpp
    functionUses: 2
    functionsReached:
    - strlen
    - Verhoeff16::ValidateCheckChar
    linkageType: ''
    returnType: bool
    signature: Verhoeff16::ValidateCheckChar(char checkChar, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff16::ComputeCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff16.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - checkChar
    - str
    - strLen
    argTypes:
    - char
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: Verhoeff16::ValidateCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff16.cpp
    functionUses: 2
    functionsReached:
    - Verhoeff16::ComputeCheckChar
    linkageType: ''
    returnType: bool
    signature: Verhoeff16::ValidateCheckChar(char checkChar, const char *str, size_t
      strLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff16::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff16.cpp:103,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff16.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: Verhoeff16::ValidateCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff16.cpp
    functionUses: 3
    functionsReached:
    - strlen
    - Verhoeff16::ValidateCheckChar
    linkageType: ''
    returnType: bool
    signature: Verhoeff16::ValidateCheckChar(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff16::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff16.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - strLen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: Verhoeff16::ValidateCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff16.cpp
    functionUses: 4
    functionsReached:
    - Verhoeff16::ValidateCheckChar
    linkageType: ''
    returnType: bool
    signature: Verhoeff16::ValidateCheckChar(const char *str, size_t strLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 123
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 123
    functionName: Verhoeff16::CharToVal
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff16.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: Verhoeff16::CharToVal(char ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: Verhoeff16::ValToChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff16.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: Verhoeff16::ValToChar(int val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff36::ComputeCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff36.cpp:96,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff36.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: Verhoeff36::ComputeCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff36.cpp
    functionUses: 2
    functionsReached:
    - strlen
    - Verhoeff36::ComputeCheckChar
    linkageType: ''
    returnType: char
    signature: Verhoeff36::ComputeCheckChar(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff::DihedralMultiply
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff36.cpp:114,1
    - Dst: Verhoeff::DihedralInvert
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff36.cpp:120,1
    - Dst: Verhoeff36::ValToChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff36.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - str
    - strLen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 123
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 123
    functionName: Verhoeff36::ComputeCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff36.cpp
    functionUses: 2
    functionsReached:
    - Verhoeff36::ValToChar
    - Verhoeff::DihedralInvert
    - Verhoeff::DihedralMultiply
    linkageType: ''
    returnType: char
    signature: Verhoeff36::ComputeCheckChar(const char *str, size_t strLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff36::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff36.cpp:127,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff36.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - checkChar
    - str
    argTypes:
    - char
    - char*
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: Verhoeff36::ValidateCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff36.cpp
    functionUses: 2
    functionsReached:
    - strlen
    - Verhoeff36::ValidateCheckChar
    linkageType: ''
    returnType: bool
    signature: Verhoeff36::ValidateCheckChar(char checkChar, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff36::ComputeCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff36.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - checkChar
    - str
    - strLen
    argTypes:
    - char
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: Verhoeff36::ValidateCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff36.cpp
    functionUses: 2
    functionsReached:
    - Verhoeff36::ComputeCheckChar
    linkageType: ''
    returnType: bool
    signature: Verhoeff36::ValidateCheckChar(char checkChar, const char *str, size_t
      strLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff36::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff36.cpp:137,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff36.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: Verhoeff36::ValidateCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff36.cpp
    functionUses: 3
    functionsReached:
    - strlen
    - Verhoeff36::ValidateCheckChar
    linkageType: ''
    returnType: bool
    signature: Verhoeff36::ValidateCheckChar(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Verhoeff36::ValidateCheckChar
      Src: /src/openweave-core/src/lib/support/verhoeff/Verhoeff36.cpp:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - strLen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: Verhoeff36::ValidateCheckChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff36.cpp
    functionUses: 4
    functionsReached:
    - Verhoeff36::ValidateCheckChar
    linkageType: ''
    returnType: bool
    signature: Verhoeff36::ValidateCheckChar(const char *str, size_t strLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 153
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 153
    functionName: Verhoeff36::CharToVal
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff36.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: Verhoeff36::CharToVal(char ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: Verhoeff36::ValToChar
    functionSourceFile: /src/openweave-core/src/lib/support/verhoeff/Verhoeff36.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: Verhoeff36::ValToChar(int val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 218
    functionName: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: IntegrityTypeList
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SoftwareUpdate::UpdateSchemeList
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 243
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 243
    functionName: nl::Weave::Profiles::SoftwareUpdate::UpdateSchemeList
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SoftwareUpdate::UpdateSchemeList
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: UpdateSchemeList
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ProductSpec
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.h:252,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ProductSpec
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.h:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 261
    functionName: nl::Weave::Profiles::SoftwareUpdate::ProductSpec
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SoftwareUpdate::ProductSpec
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: ProductSpec
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ImageQuery
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.h:299,1
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.h:315,1
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.h:324,1
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.h:327,1
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.h:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 335
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 335
    functionName: nl::Weave::Profiles::SoftwareUpdate::ImageQuery
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.h
    functionUses: 1
    functionsReached:
    - ReferencedTLVData::ReferencedTLVData
    - ReferencedString::ReferencedString
    - nl::Weave::Profiles::SoftwareUpdate::ImageQuery
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: ImageQuery
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegritySpec
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.h:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 386
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 386
    functionName: nl::Weave::Profiles::SoftwareUpdate::IntegritySpec
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SoftwareUpdate::IntegritySpec
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: IntegritySpec
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ImageQueryResponse
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.h:420,1
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.h:431,1
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.h:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 446
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 446
    functionName: nl::Weave::Profiles::SoftwareUpdate::ImageQueryResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.h
    functionUses: 1
    functionsReached:
    - ReferencedString::ReferencedString
    - nl::Weave::Profiles::SoftwareUpdate::ImageQueryResponse
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: ImageQueryResponse
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: nl::Weave::Profiles::SoftwareUpdate::WeaveImageAnnounceServer::WeaveImageAnnounceServer
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/WeaveImageAnnounceServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveImageAnnounceServer::WeaveImageAnnounceServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveExchangeManager*::RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/software-update/WeaveImageAnnounceServer.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - exchangeManager
    - delegate
    argTypes:
    - WeaveExchangeManager*
    - IWeaveImageAnnounceServerDelegate*
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: nl::Weave::Profiles::SoftwareUpdate::WeaveImageAnnounceServer::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/WeaveImageAnnounceServer.cpp
    functionUses: 0
    functionsReached:
    - WeaveExchangeManager*::RegisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveImageAnnounceServer::Init(WeaveExchangeManager * exchangeManager,
      IWeaveImageAnnounceServerDelegate * delegate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/software-update/WeaveImageAnnounceServer.cpp:60,1
    - Dst: WeaveImageAnnounceServer*::mDelegate::OnImageAnnounce
      Src: /src/openweave-core/src/lib/profiles/software-update/WeaveImageAnnounceServer.cpp:66,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/software-update/WeaveImageAnnounceServer.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - ec
    - packetInfo
    - msgInfo
    - profileId
    - msgType
    - imageAnnouncePayload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 73
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 73
    functionName: nl::Weave::Profiles::SoftwareUpdate::WeaveImageAnnounceServer::HandleImageAnnounce
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/WeaveImageAnnounceServer.cpp
    functionUses: 0
    functionsReached:
    - WeaveImageAnnounceServer*::mDelegate::OnImageAnnounce
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: void
    signature: "WeaveImageAnnounceServer::HandleImageAnnounce(ExchangeContext * ec,
      const IPPacketInfo * packetInfo,\n                                                   const
      WeaveMessageInfo * msgInfo, uint32_t profileId, uint8_t msgType,\n                                                   PacketBuffer
      * imageAnnouncePayload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::IntegrityTypeList
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: IntegrityTypeList::IntegrityTypeList()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - aLength
    - aList
    argTypes:
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 67
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 67
    functionName: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: IntegrityTypeList::init(uint8_t aLength, uint8_t * aList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hasRoom
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:79,1
    - Dst: writeByte
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:81,1
    - Dst: writeByte
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - MessageIterator
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::pack
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached:
    - hasRoom
    - writeByte
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: IntegrityTypeList::pack(MessageIterator & i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:104,1
    - Dst: readByte
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:104,1
    - Dst: hasData
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:112,1
    - Dst: readByte
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' i'
    - ' aList'
    argTypes:
    - MessageIterator
    - IntegrityTypeList
    constantsTouched: []
    func_position:
      end: 119
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 119
    functionName: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached:
    - readByte
    - TRY
    - hasData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: IntegrityTypeList::parse(MessageIterator & i, IntegrityTypeList & aList)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' another'
    argTypes:
    - IntegrityTypeList
    constantsTouched: []
    func_position:
      end: 139
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 139
    functionName: IntegrityTypeList::operator ==(const IntegrityTypeList & another)
      const
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IntegrityTypeList::operator ==(const IntegrityTypeList & another) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: nl::Weave::Profiles::SoftwareUpdate::UpdateSchemeList::UpdateSchemeList
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: UpdateSchemeList::UpdateSchemeList()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - aLength
    - aList
    argTypes:
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: nl::Weave::Profiles::SoftwareUpdate::UpdateSchemeList::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateSchemeList::init(uint8_t aLength, uint8_t * aList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hasRoom
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:183,1
    - Dst: writeByte
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:185,1
    - Dst: writeByte
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - MessageIterator
    constantsTouched: []
    func_position:
      end: 193
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 193
    functionName: nl::Weave::Profiles::SoftwareUpdate::UpdateSchemeList::pack
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached:
    - hasRoom
    - writeByte
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateSchemeList::pack(MessageIterator & i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:208,1
    - Dst: readByte
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:208,1
    - Dst: hasData
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:209,1
    - Dst: readByte
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' i'
    - ' aList'
    argTypes:
    - MessageIterator
    - UpdateSchemeList
    constantsTouched: []
    func_position:
      end: 219
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 219
    functionName: nl::Weave::Profiles::SoftwareUpdate::UpdateSchemeList::parse
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached:
    - readByte
    - TRY
    - hasData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateSchemeList::parse(MessageIterator & i, UpdateSchemeList & aList)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' another'
    argTypes:
    - UpdateSchemeList
    constantsTouched: []
    func_position:
      end: 239
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 239
    functionName: UpdateSchemeList::operator ==(const UpdateSchemeList & another)
      const
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: UpdateSchemeList::operator ==(const UpdateSchemeList & another) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - aVendor
    - aProduct
    - aRevision
    argTypes:
    - uint16_t
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 253
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 253
    functionName: nl::Weave::Profiles::SoftwareUpdate::ProductSpec::ProductSpec
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ProductSpec::ProductSpec(uint16_t aVendor, uint16_t aProduct, uint16_t
      aRevision)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: nl::Weave::Profiles::SoftwareUpdate::ProductSpec::ProductSpec
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ProductSpec::ProductSpec()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' another'
    argTypes:
    - ProductSpec
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: ProductSpec::operator ==(const ProductSpec & another) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ProductSpec::operator ==(const ProductSpec & another) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 290
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 290
    functionName: nl::Weave::Profiles::SoftwareUpdate::ImageQuery::ImageQuery
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ImageQuery::ImageQuery()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 8
    argNames:
    - ' aProductSpec'
    - ' aVersion'
    - ' aTypeList'
    - ' aSchemeList'
    - aPackage
    - aLocale
    - aTargetNodeId
    - aMetaData
    argTypes:
    - ProductSpec
    - ReferencedString
    - IntegrityTypeList
    - UpdateSchemeList
    - ReferencedString*
    - ReferencedString*
    - uint64_t
    - ReferencedTLVData*
    constantsTouched: []
    func_position:
      end: 326
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 326
    functionName: nl::Weave::Profiles::SoftwareUpdate::ImageQuery::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "ImageQuery::init(ProductSpec & aProductSpec, ReferencedString & aVersion,
      IntegrityTypeList & aTypeList,\n                             UpdateSchemeList
      & aSchemeList, ReferencedString * aPackage, ReferencedString * aLocale,\n                             uint64_t
      aTargetNodeId, ReferencedTLVData * aMetaData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::append
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:338,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:348,1
    - Dst: MessageIterator::writeByte
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:348,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:350,1
    - Dst: MessageIterator::write16
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:350,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:351,1
    - Dst: MessageIterator::write16
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:351,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:352,1
    - Dst: MessageIterator::write16
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:352,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:354,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ImageQuery::pack
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:354,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:356,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ImageQuery::pack
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:356,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:357,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ImageQuery::pack
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:357,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:360,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ImageQuery::pack
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:360,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:362,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ImageQuery::pack
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:362,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:364,1
    - Dst: MessageIterator::write64
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:364,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:365,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ImageQuery::pack
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:365,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - aBuffer
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 368
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 368
    functionName: nl::Weave::Profiles::SoftwareUpdate::ImageQuery::pack
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 1
    functionsReached:
    - MessageIterator::writeByte
    - MessageIterator::append
    - nl::Weave::Profiles::SoftwareUpdate::ImageQuery::pack
    - TRY
    - MessageIterator::write64
    - MessageIterator::write16
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ImageQuery::pack(PacketBuffer * aBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:385,1
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:385,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:387,1
    - Dst: MessageIterator::read16
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:387,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:388,1
    - Dst: MessageIterator::read16
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:388,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:389,1
    - Dst: MessageIterator::read16
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:389,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:391,1
    - Dst: ReferencedString::parse
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:391,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:393,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:393,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:394,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::UpdateSchemeList::parse
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:394,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:397,1
    - Dst: ReferencedString::parse
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:397,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:400,1
    - Dst: ReferencedString::parse
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:400,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:403,1
    - Dst: MessageIterator::read64
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:403,1
    - Dst: ReferencedTLVData::parse
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - aBuffer
    - ' aQuery'
    argTypes:
    - PacketBuffer*
    - ImageQuery
    constantsTouched: []
    func_position:
      end: 408
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 408
    functionName: nl::Weave::Profiles::SoftwareUpdate::ImageQuery::parse
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached:
    - MessageIterator::read64
    - MessageIterator::readByte
    - ReferencedTLVData::parse
    - nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
    - TRY
    - MessageIterator::read16
    - ReferencedString::parse
    - nl::Weave::Profiles::SoftwareUpdate::UpdateSchemeList::parse
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ImageQuery::parse(PacketBuffer * aBuffer, ImageQuery & aQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 2
    argCount: 1
    argNames:
    - ' another'
    argTypes:
    - ImageQuery
    constantsTouched: []
    func_position:
      end: 423
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 423
    functionName: ImageQuery::operator ==(const ImageQuery & another) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ImageQuery::operator ==(const ImageQuery & another) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - aType
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 444
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 444
    functionName: nl::Weave::Profiles::SoftwareUpdate::integrityLength
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: integrityLength(uint8_t aType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 452
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 452
    functionName: nl::Weave::Profiles::SoftwareUpdate::IntegritySpec::IntegritySpec
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: IntegritySpec::IntegritySpec()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - aType
    - aValue
    argTypes:
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 474
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 474
    functionName: nl::Weave::Profiles::SoftwareUpdate::IntegritySpec::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: IntegritySpec::init(uint8_t aType, uint8_t * aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:484,1
    - Dst: writeByte
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:484,1
    - Dst: integrityLength
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:485,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:486,1
    - Dst: writeByte
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - MessageIterator
    constantsTouched: []
    func_position:
      end: 489
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 489
    functionName: nl::Weave::Profiles::SoftwareUpdate::IntegritySpec::pack
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached:
    - TRY
    - integrityLength
    - writeByte
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: IntegritySpec::pack(MessageIterator & i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:502,1
    - Dst: readByte
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:502,1
    - Dst: integrityLength
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:503,1
    - Dst: integrityLength
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:506,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:507,1
    - Dst: readByte
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' i'
    - ' aSpec'
    argTypes:
    - MessageIterator
    - IntegritySpec
    constantsTouched: []
    func_position:
      end: 510
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 510
    functionName: nl::Weave::Profiles::SoftwareUpdate::IntegritySpec::parse
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached:
    - readByte
    - TRY
    - integrityLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: IntegritySpec::parse(MessageIterator & i, IntegritySpec & aSpec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: integrityLength
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' another'
    argTypes:
    - IntegritySpec
    constantsTouched: []
    func_position:
      end: 530
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 530
    functionName: IntegritySpec::operator ==(const IntegritySpec & another) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached:
    - integrityLength
    linkageType: ''
    returnType: bool
    signature: IntegritySpec::operator ==(const IntegritySpec & another) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 7
    argNames:
    - ' aUri'
    - ' aVersion'
    - ' aIntegrity'
    - aScheme
    - aPriority
    - aCondition
    - aReportStatus
    argTypes:
    - ReferencedString
    - ReferencedString
    - IntegritySpec
    - uint8_t
    - UpdatePriority
    - UpdateCondition
    - bool
    constantsTouched: []
    func_position:
      end: 557
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 557
    functionName: nl::Weave::Profiles::SoftwareUpdate::ImageQueryResponse::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "ImageQueryResponse::init(ReferencedString & aUri, ReferencedString
      & aVersion, IntegritySpec & aIntegrity,\n                                     uint8_t
      aScheme, UpdatePriority aPriority, UpdateCondition aCondition, bool aReportStatus)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 568
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 568
    functionName: nl::Weave::Profiles::SoftwareUpdate::ImageQueryResponse::ImageQueryResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ImageQueryResponse::ImageQueryResponse()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::append
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:580,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:581,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ImageQueryResponse::pack
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:581,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:582,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ImageQueryResponse::pack
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:582,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:583,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ImageQueryResponse::pack
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:583,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:584,1
    - Dst: MessageIterator::writeByte
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:584,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:588,1
    - Dst: MessageIterator::writeByte
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - aBuffer
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 591
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 591
    functionName: nl::Weave::Profiles::SoftwareUpdate::ImageQueryResponse::pack
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SoftwareUpdate::ImageQueryResponse::pack
    - MessageIterator::append
    - TRY
    - MessageIterator::writeByte
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ImageQueryResponse::pack(PacketBuffer * aBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:607,1
    - Dst: ReferencedString::parse
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:607,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:608,1
    - Dst: ReferencedString::parse
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:608,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:609,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegritySpec::parse
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:609,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:610,1
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:610,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:611,1
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - aBuffer
    - ' aResponse'
    argTypes:
    - PacketBuffer*
    - ImageQueryResponse
    constantsTouched: []
    func_position:
      end: 617
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 617
    functionName: nl::Weave::Profiles::SoftwareUpdate::ImageQueryResponse::parse
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached:
    - ReferencedString::parse
    - TRY
    - MessageIterator::readByte
    - nl::Weave::Profiles::SoftwareUpdate::IntegritySpec::parse
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ImageQueryResponse::parse(PacketBuffer * aBuffer, ImageQueryResponse
      & aResponse)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - ' another'
    argTypes:
    - ImageQueryResponse
    constantsTouched: []
    func_position:
      end: 629
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 629
    functionName: ImageQueryResponse::operator ==(const ImageQueryResponse & another)
      const
    functionSourceFile: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ImageQueryResponse::operator ==(const ImageQueryResponse & another)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 99
    functionName: nl::Weave::Profiles::StatusReporting::StatusReport
    functionSourceFile: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.h
    functionUses: 0
    functionsReached:
    - ReferencedTLVData::ReferencedTLVData
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: StatusReport
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: nl::Weave::Profiles::StatusReporting::StatusReport::StatusReport
    functionSourceFile: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: StatusReport::StatusReport(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: StatusReport::~StatusReport(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: StatusReport::~StatusReport(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - aProfileId
    - aCode
    - aInfo
    argTypes:
    - uint32_t
    - uint16_t
    - ReferencedTLVData*
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: nl::Weave::Profiles::StatusReporting::StatusReport::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: StatusReport::init(uint32_t aProfileId, uint16_t aCode, ReferencedTLVData
      *aInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - aError
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 82
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 82
    functionName: nl::Weave::Profiles::StatusReporting::StatusReport::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: StatusReport::init(WEAVE_ERROR aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::append
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:90,1
    - Dst: MessageIterator::write32
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:92,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:93,1
    - Dst: MessageIterator::write16
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:95,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:96,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:109,1
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::StartMetaData
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:111,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:112,1
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::AddErrorCode
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:114,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:115,1
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::EndMetaData
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:117,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:118,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:127,1
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::pack
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - aBuffer
    - maxLen
    argTypes:
    - PacketBuffer*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 137
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 137
    functionName: nl::Weave::Profiles::StatusReporting::StatusReport::pack
    functionSourceFile: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp
    functionUses: 1
    functionsReached:
    - MessageIterator::append
    - nl::Weave::Profiles::StatusReporting::StatusReport::EndMetaData
    - nl::Weave::Profiles::StatusReporting::StatusReport::pack
    - MessageIterator::write16
    - TLVWriter::GetLengthWritten
    - nl::Weave::Profiles::StatusReporting::StatusReport::StartMetaData
    - SuccessOrExit
    - TLVWriter::Init
    - nl::Weave::Profiles::StatusReporting::StatusReport::AddErrorCode
    - MessageIterator::write32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: StatusReport::pack(PacketBuffer *aBuffer, uint32_t maxLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: nl::Weave::Profiles::StatusReporting::StatusReport::packedLength
    functionSourceFile: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: StatusReport::packedLength(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::read32
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:149,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:150,1
    - Dst: MessageIterator::read16
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:152,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:153,1
    - Dst: ReferencedTLVData::parse
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - aBuffer
    - aDestination
    argTypes:
    - PacketBuffer*
    - StatusReport
    constantsTouched: []
    func_position:
      end: 159
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 159
    functionName: nl::Weave::Profiles::StatusReporting::StatusReport::parse
    functionSourceFile: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp
    functionUses: 1
    functionsReached:
    - ReferencedTLVData::parse
    - MessageIterator::read16
    - MessageIterator::read32
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: StatusReport::parse(PacketBuffer *aBuffer, StatusReport &aDestination)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - another
    argTypes:
    - StatusReport
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: StatusReport::operator == (const StatusReport &another) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: StatusReport::operator == (const StatusReport &another) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: nl::Weave::Profiles::StatusReporting::StatusReport::success
    functionSourceFile: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: StatusReport::success(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aWriter
    argTypes:
    - nl::Weave::TLV::TLVWriter
    constantsTouched: []
    func_position:
      end: 181
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 181
    functionName: nl::Weave::Profiles::StatusReporting::StatusReport::StartMetaData
    functionSourceFile: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: StatusReport::StartMetaData(nl::Weave::TLV::TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:188,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:189,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aWriter
    argTypes:
    - nl::Weave::TLV::TLVWriter
    constantsTouched: []
    func_position:
      end: 195
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 195
    functionName: nl::Weave::Profiles::StatusReporting::StatusReport::EndMetaData
    functionSourceFile: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::TLVWriter::Finalize
    - nl::Weave::TLV::TLVWriter::EndContainer
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: StatusReport::EndMetaData(nl::Weave::TLV::TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::Put
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:199,1
    - Dst: CommonTag
      Src: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aWriter
    - aError
    argTypes:
    - nl::Weave::TLV::TLVWriter
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: nl::Weave::Profiles::StatusReporting::StatusReport::AddErrorCode
    functionSourceFile: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp
    functionUses: 1
    functionsReached:
    - CommonTag
    - nl::Weave::TLV::TLVWriter::Put
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: StatusReport::AddErrorCode(nl::Weave::TLV::TLVWriter &aWriter, WEAVE_ERROR
      aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - ' reader'
    - ' weaveIdOut'
    argTypes:
    - ASN1Reader
    - uint64_t
    constantsTouched: []
    func_position:
      end: 69
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 69
    functionName: nl::Weave::Profiles::Security::ParseWeaveIdAttribute
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ParseWeaveIdAttribute(ASN1Reader& reader, uint64_t& weaveIdOut)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:77,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:78,1
    - Dst: while
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:83,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:83,1
    - Dst: ASN1_PARSE_OBJECT_ID
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:93,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:94,1
    - Dst: GetOIDCategory
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:94,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:100,1
    - Dst: nl::Weave::Profiles::Security::IsWeaveX509Attr
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:105,1
    - Dst: nl::Weave::Profiles::Security::IsWeaveIdX509Attr
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:115,1
    - Dst: nl::Weave::Profiles::Security::ParseWeaveIdAttribute
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:119,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:120,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:123,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:123,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:124,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:131,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - ' reader'
    - ' writer'
    - tag
    argTypes:
    - ASN1Reader
    - TLVWriter
    - uint64_t
    constantsTouched: []
    func_position:
      end: 146
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 146
    functionName: nl::Weave::Profiles::Security::ConvertDistinguishedName
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp
    functionUses: 0
    functionsReached:
    - StartContainer
    - ASN1_PARSE_OBJECT_ID
    - while
    - nl::Weave::Profiles::Security::IsWeaveX509Attr
    - ContextTag
    - VerifyOrExit
    - GetOIDCategory
    - nl::Weave::Profiles::Security::IsWeaveIdX509Attr
    - Put
    - SuccessOrExit
    - nl::Weave::Profiles::Security::ParseWeaveIdAttribute
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConvertDistinguishedName(ASN1Reader& reader, TLVWriter& writer, uint64_t
      tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PARSE_TIME
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:163,1
    - Dst: PackCertTime
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:164,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:165,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:166,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:166,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:167,1
    - Dst: ASN1_PARSE_TIME
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:169,1
    - Dst: PackCertTime
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:170,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:171,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:172,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:172,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ' reader'
    - ' writer'
    argTypes:
    - ASN1Reader
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 175
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 175
    functionName: nl::Weave::Profiles::ConvertValidity
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp
    functionUses: 0
    functionsReached:
    - ContextTag
    - PackCertTime
    - ASN1_PARSE_TIME
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConvertValidity(ASN1Reader& reader, TLVWriter& writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:188,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:194,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:196,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:196,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:197,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:199,1
    - Dst: ASN1_ENTER_CONSTRUCTED
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:206,1
    - Dst: ASN1_PARSE_ENTER_CONSTRUCTED
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:211,1
    - Dst: ConvertDistinguishedName
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:213,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:213,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:214,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:219,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:221,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:225,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:232,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:232,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:233,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:235,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:239,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - ' reader'
    - ' writer'
    argTypes:
    - ASN1Reader
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 241
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 241
    functionName: nl::Weave::ConvertAuthorityKeyIdentifierExtension
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp
    functionUses: 0
    functionsReached:
    - ConvertDistinguishedName
    - ContextTag
    - VerifyOrExit
    - PutBytes
    - ExitNow
    - SuccessOrExit
    - ASN1_PARSE_ENTER_CONSTRUCTED
    - Next
    - ASN1_ENTER_CONSTRUCTED
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConvertAuthorityKeyIdentifierExtension(ASN1Reader& reader, TLVWriter&
      writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PARSE_OBJECT_ID
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:261,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:271,1
    - Dst: ASN1_GET_OBJECT_ID
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:300,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:303,1
    - Dst: GetOIDCategory
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:303,1
    - Dst: OIDToWeaveCurveId
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:305,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:306,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:306,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:307,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 2
    argNames:
    - ' reader'
    - ' writer'
    argTypes:
    - ASN1Reader
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 308
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 308
    functionName: nl::ConvertSubjectPublicKeyInfo
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp
    functionUses: 0
    functionsReached:
    - ASN1_PARSE_OBJECT_ID
    - ContextTag
    - VerifyOrExit
    - ASN1_GET_OBJECT_ID
    - GetOIDCategory
    - Put
    - SuccessOrExit
    - OIDToWeaveCurveId
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConvertSubjectPublicKeyInfo(ASN1Reader& reader, TLVWriter& writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:320,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:320,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:321,1
    - Dst: ASN1_PARSE_ELEMENT
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:327,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:328,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:328,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:329,1
    - Dst: ASN1_PARSE_INTEGER
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:333,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:334,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:334,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 337
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 337
    functionName: ASN1_ENTER_ENCAPSULATED
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp
    functionUses: 0
    functionsReached:
    - ASN1_PARSE_ELEMENT
    - StartContainer
    - ContextTag
    - PutBytes
    - Put
    - SuccessOrExit
    - ASN1_PARSE_INTEGER
    linkageType: ''
    returnType: void
    signature: ASN1_ENTER_ENCAPSULATED(kASN1TagClass_Universal, kASN1UniversalTag_BitString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PARSE_OBJECT_ID
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:371,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:374,1
    - Dst: GetOIDCategory
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:375,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:376,1
    - Dst: ASN1_GET_BOOLEAN
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:382,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:385,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:398,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:398,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:399,1
    - Dst: PutBoolean
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:403,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:403,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:404,1
    - Dst: ConvertAuthorityKeyIdentifierExtension
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:407,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:408,1
    - Dst: ASN1_PARSE_ELEMENT
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:413,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:415,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:415,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:416,1
    - Dst: PutBoolean
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:420,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:420,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:421,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:424,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:424,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:425,1
    - Dst: ASN1_PARSE_ELEMENT
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:430,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:432,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:432,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:433,1
    - Dst: PutBoolean
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:437,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:437,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:438,1
    - Dst: GetBitString
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:442,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:443,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:445,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:445,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:446,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:456,1
    - Dst: ASN1_GET_BOOLEAN
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:459,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:461,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:463,1
    - Dst: ASN1_GET_INTEGER
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:469,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:471,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:474,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:474,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:475,1
    - Dst: PutBoolean
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:479,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:479,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:480,1
    - Dst: PutBoolean
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:485,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:485,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:486,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:491,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:491,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:492,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:499,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:499,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:500,1
    - Dst: PutBoolean
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:504,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:504,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:505,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:508,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:508,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:509,1
    - Dst: while
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:514,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:514,1
    - Dst: ASN1_GET_OBJECT_ID
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:518,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:520,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:521,1
    - Dst: GetOIDCategory
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:521,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:523,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:524,1
    - Dst: if
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:526,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:527,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:531,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:532,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 89
    argCount: 2
    argNames:
    - ' reader'
    - ' writer'
    argTypes:
    - ASN1Reader
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 533
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 533
    functionName: ConvertExtension
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp
    functionUses: 0
    functionsReached:
    - ASN1_PARSE_ELEMENT
    - StartContainer
    - PutBytes
    - if
    - GetBitString
    - while
    - VerifyOrExit
    - PutBoolean
    - ASN1_GET_BOOLEAN
    - ExitNow
    - GetOIDCategory
    - EndContainer
    - Put
    - Next
    - ASN1_PARSE_OBJECT_ID
    - ContextTag
    - ASN1_GET_INTEGER
    - ConvertAuthorityKeyIdentifierExtension
    - ASN1_GET_OBJECT_ID
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConvertExtension(ASN1Reader& reader, TLVWriter& writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: while
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:555,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:555,1
    - Dst: ConvertExtension
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:557,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:558,1
    - Dst: if
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:561,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' reader'
    - ' writer'
    argTypes:
    - ASN1Reader
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 564
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 564
    functionName: ConvertExtensions
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp
    functionUses: 0
    functionsReached:
    - while
    - SuccessOrExit
    - if
    - ConvertExtension
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConvertExtensions(ASN1Reader& reader, TLVWriter& writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:577,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:577,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:578,1
    - Dst: ASN1_PARSE_ENTER_CONSTRUCTED
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:588,1
    - Dst: ASN1_PARSE_INTEGER
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:591,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:594,1
    - Dst: ASN1_PARSE_ELEMENT
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:600,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:601,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:601,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:602,1
    - Dst: ASN1_PARSE_OBJECT_ID
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:609,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:611,1
    - Dst: GetOIDCategory
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:611,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:618,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:621,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:621,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:622,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:636,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:637,1
    - Dst: ConvertValidity
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:640,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:641,1
    - Dst: ConvertDistinguishedName
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:644,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:644,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:645,1
    - Dst: ConvertSubjectPublicKeyInfo
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:647,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:648,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:650,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:655,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:660,1
    - Dst: ASN1_ENTER_CONSTRUCTED
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:665,1
    - Dst: ConvertExtensions
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:667,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:668,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:672,1
    - Dst: kASN1UniversalTag_BitString
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:685,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:690,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:690,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:691,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 5
    argCount: 2
    argNames:
    - ' reader'
    - ' writer'
    argTypes:
    - ASN1Reader
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 692
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 692
    functionName: ConvertCertificate
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp
    functionUses: 1
    functionsReached:
    - ASN1_PARSE_ELEMENT
    - StartContainer
    - ConvertValidity
    - PutBytes
    - ASN1_ENTER_CONSTRUCTED
    - kASN1UniversalTag_BitString
    - VerifyOrExit
    - ASN1_PARSE_INTEGER
    - ConvertExtensions
    - ExitNow
    - ProfileTag
    - GetOIDCategory
    - Put
    - ASN1_PARSE_ENTER_CONSTRUCTED
    - Next
    - ConvertDistinguishedName
    - ASN1_PARSE_OBJECT_ID
    - ContextTag
    - ConvertSubjectPublicKeyInfo
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConvertCertificate(ASN1Reader& reader, TLVWriter& writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:700,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:700,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:701,1
    - Dst: ASN1_PARSE_ELEMENT
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:707,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:708,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:708,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:709,1
    - Dst: ASN1_PARSE_ELEMENT
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:712,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:713,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:713,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 716
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 716
    functionName: ASN1_ENTER_ENCAPSULATED
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp
    functionUses: 0
    functionsReached:
    - ASN1_PARSE_ELEMENT
    - StartContainer
    - ContextTag
    - PutBytes
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: ASN1_ENTER_ENCAPSULATED(kASN1TagClass_Universal, kASN1UniversalTag_BitString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1Reader::Init
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:739,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:741,1
    - Dst: ConvertCertificate
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:743,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:744,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:746,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:747,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 5
    argNames:
    - x509Cert
    - x509CertLen
    - weaveCertBuf
    - weaveCertBufSize
    - ' weaveCertLen'
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 753
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 753
    functionName: WEAVE_ERROR::ConvertX509CertToWeaveCert
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp
    functionUses: 0
    functionsReached:
    - TLVWriter::Finalize
    - TLVWriter::GetLengthWritten
    - ConvertCertificate
    - SuccessOrExit
    - TLVWriter::Init
    - ASN1Reader::Init
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: WEAVE_ERROR ConvertX509CertToWeaveCert(const uint8_t *x509Cert, uint32_t
      x509CertLen, uint8_t *weaveCertBuf, uint32_t weaveCertBufSize, uint32_t& weaveCertLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveDummyGroupKeyStore.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore::DummyGroupKeyStore
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveDummyGroupKeyStore.cpp
    functionUses: 0
    functionsReached:
    - Init
    linkageType: ''
    returnType: void
    signature: DummyGroupKeyStore::DummyGroupKeyStore(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keyId
    - ' key'
    argTypes:
    - uint32_t
    - WeaveGroupKey
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore::RetrieveGroupKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveDummyGroupKeyStore.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DummyGroupKeyStore::RetrieveGroupKey(uint32_t keyId, WeaveGroupKey&
      key)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - WeaveGroupKey
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore::StoreGroupKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveDummyGroupKeyStore.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DummyGroupKeyStore::StoreGroupKey(const WeaveGroupKey& key)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore::DeleteGroupKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveDummyGroupKeyStore.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DummyGroupKeyStore::DeleteGroupKey(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyType
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore::DeleteGroupKeysOfAType
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveDummyGroupKeyStore.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DummyGroupKeyStore::DeleteGroupKeysOfAType(uint32_t keyType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - keyType
    - keyIds
    - keyIdsArraySize
    - ' keyCount'
    argTypes:
    - uint32_t
    - uint32_t*
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore::EnumerateGroupKeys
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveDummyGroupKeyStore.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DummyGroupKeyStore::EnumerateGroupKeys(uint32_t keyType, uint32_t *keyIds,
      uint8_t keyIdsArraySize, uint8_t & keyCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveDummyGroupKeyStore.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DummyGroupKeyStore::Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore::RetrieveLastUsedEpochKeyId
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveDummyGroupKeyStore.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DummyGroupKeyStore::RetrieveLastUsedEpochKeyId(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore::StoreLastUsedEpochKeyId
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveDummyGroupKeyStore.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DummyGroupKeyStore::StoreLastUsedEpochKeyId(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' utcTime'
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore::GetCurrentUTCTime
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveDummyGroupKeyStore.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DummyGroupKeyStore::GetCurrentUTCTime(uint32_t& utcTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curveOID
    argTypes:
    - ASN1::OID
    constantsTouched: []
    func_position:
      end: 393
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 393
    functionName: nl::Weave::Profiles::Security::OIDToWeaveCurveId
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSecurity.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: OIDToWeaveCurveId(ASN1::OID curveOID)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - curveId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 58
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 58
    functionName: nl::Weave::Profiles::Security::IsSupportedCurve
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSecurity.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsSupportedCurve(uint32_t curveId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - curveId
    - curveSet
    argTypes:
    - uint32_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 95
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 95
    functionName: nl::Weave::Profiles::Security::IsCurveInSet
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSecurity.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsCurveInSet(uint32_t curveId, uint8_t curveSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - weaveCurveId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: nl::Weave::Profiles::Security::WeaveCurveIdToOID
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSecurity.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: WeaveCurveIdToOID(uint32_t weaveCurveId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 527
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 527
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeaveCASEEngine
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 546
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 546
    functionName: nl::Weave::Profiles::Security::CASE::BeginSessionContext::IsBeginSessionRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: BeginSessionContext::IsBeginSessionRequest() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 551
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 551
    functionName: nl::Weave::Profiles::Security::CASE::BeginSessionContext::SetIsBeginSessionRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: void
    signature: BeginSessionContext::SetIsBeginSessionRequest(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 556
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 556
    functionName: nl::Weave::Profiles::Security::CASE::BeginSessionContext::IsInitiator
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: BeginSessionContext::IsInitiator() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 561
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 561
    functionName: nl::Weave::Profiles::Security::CASE::BeginSessionContext::SetIsInitiator
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: void
    signature: BeginSessionContext::SetIsInitiator(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 566
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 566
    functionName: nl::Weave::Profiles::Security::CASE::BeginSessionContext::PerformKeyConfirm
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: BeginSessionContext::PerformKeyConfirm() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 571
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 571
    functionName: nl::Weave::Profiles::Security::CASE::BeginSessionContext::SetPerformKeyConfirm
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: void
    signature: BeginSessionContext::SetPerformKeyConfirm(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 586
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 586
    functionName: nl::Weave::Profiles::Security::CASE::BeginSessionRequestContext::HeadLength
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: BeginSessionRequestContext::HeadLength(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 592
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 592
    functionName: nl::Weave::Profiles::Security::CASE::BeginSessionRequestContext::Reset
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: BeginSessionRequestContext::Reset(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 600
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 600
    functionName: nl::Weave::Profiles::Security::CASE::BeginSessionResponseContext::HeadLength
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: BeginSessionResponseContext::HeadLength(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 605
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 605
    functionName: nl::Weave::Profiles::Security::CASE::BeginSessionResponseContext::Reset
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: BeginSessionResponseContext::Reset(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 610
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 610
    functionName: nl::Weave::Profiles::Security::CASE::ReconfigureContext::Reset
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: ReconfigureContext::Reset(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetNodePayload
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h:617,1
    - Dst: IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' msgCtx'
    - payloadBuf
    - payloadBufSize
    - ' payloadLen'
    argTypes:
    - BeginSessionContext
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 618
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 618
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEAuthDelegate::EncodeNodePayload
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached:
    - GetNodePayload
    - IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveCASEAuthDelegate::EncodeNodePayload(const BeginSessionContext
      & msgCtx,\n        uint8_t * payloadBuf, uint16_t payloadBufSize, uint16_t &
      payloadLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BeginCertValidation
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h:623,1
    - Dst: IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' msgCtx'
    - ' validCtx'
    - ' certSet'
    argTypes:
    - BeginSessionContext
    - ValidationContext
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 624
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 624
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEAuthDelegate::BeginValidation
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached:
    - BeginCertValidation
    - IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveCASEAuthDelegate::BeginValidation(const BeginSessionContext &
      msgCtx, ValidationContext & validCtx,\n        WeaveCertificateSet & certSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' msgCtx'
    - ' subjectDN'
    - ' subjectKeyId'
    - ' validCtx'
    - ' certSet'
    argTypes:
    - BeginSessionContext
    - WeaveDN
    - CertificateKeyId
    - ValidationContext
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 630
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 630
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEAuthDelegate::OnPeerCertsLoaded
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveCASEAuthDelegate::OnPeerCertsLoaded(const BeginSessionContext
      & msgCtx, WeaveDN & subjectDN,\n        CertificateKeyId & subjectKeyId, ValidationContext
      & validCtx, WeaveCertificateSet& certSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HandleCertValidationResult
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h:635,1
    - Dst: IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' msgCtx'
    - ' validCtx'
    - ' certSet'
    - ' validRes'
    argTypes:
    - BeginSessionContext
    - ValidationContext
    - WeaveCertificateSet
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 636
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 636
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEAuthDelegate::HandleValidationResult
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached:
    - HandleCertValidationResult
    - IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveCASEAuthDelegate::HandleValidationResult(const BeginSessionContext
      & msgCtx, ValidationContext & validCtx,\n        WeaveCertificateSet & certSet,
      WEAVE_ERROR & validRes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndCertValidation
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' msgCtx'
    - ' validCtx'
    - ' certSet'
    argTypes:
    - BeginSessionContext
    - ValidationContext
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 642
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 642
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEAuthDelegate::EndValidation
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached:
    - EndCertValidation
    linkageType: ''
    returnType: void
    signature: "WeaveCASEAuthDelegate::EndValidation(const BeginSessionContext & msgCtx,
      ValidationContext & validCtx,\n        WeaveCertificateSet & certSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 653
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 653
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsUsingConfig1
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveCASEEngine::IsUsingConfig1() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h:663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - config
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 665
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 665
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetSelectedConfig
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached:
    - IgnoreUnusedVariable
    linkageType: ''
    returnType: void
    signature: WeaveCASEEngine::SetSelectedConfig(uint32_t config)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 670
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 670
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SelectedCurve
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: WeaveCASEEngine::SelectedCurve() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 675
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 675
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AllowedConfigs
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: WeaveCASEEngine::AllowedConfigs() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - allowedConfigs
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 680
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 680
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetAllowedConfigs
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveCASEEngine::SetAllowedConfigs(uint8_t allowedConfigs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 689
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 689
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsConfig1Allowed
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveCASEEngine::IsConfig1Allowed() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 694
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 694
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsConfig2Allowed
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveCASEEngine::IsConfig2Allowed() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 699
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 699
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AllowedCurves
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: WeaveCASEEngine::AllowedCurves() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - allowedCurves
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 704
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 704
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetAllowedCurves
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveCASEEngine::SetAllowedCurves(uint8_t allowedCurves)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsCurveInSet
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curveId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 709
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 709
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsAllowedCurve
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached:
    - IsCurveInSet
    linkageType: ''
    returnType: bool
    signature: WeaveCASEEngine::IsAllowedCurve(uint32_t curveId) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 714
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 714
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsInitiator
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveCASEEngine::IsInitiator() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 722
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 722
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetIsInitiator
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveCASEEngine::SetIsInitiator(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 727
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 727
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::PerformingKeyConfirm
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveCASEEngine::PerformingKeyConfirm() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 735
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 735
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetPerformingKeyConfirm
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveCASEEngine::SetPerformingKeyConfirm(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 740
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 740
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::ResponderRequiresKeyConfirm
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveCASEEngine::ResponderRequiresKeyConfirm() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 748
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 748
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetResponderRequiresKeyConfirm
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveCASEEngine::SetResponderRequiresKeyConfirm(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 753
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 753
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::HasReconfigured
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveCASEEngine::HasReconfigured() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 761
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 761
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetHasReconfigured
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveCASEEngine::SetHasReconfigured(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsUsingConfig1
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h:765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 769
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 769
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::ConfigHashLength
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsUsingConfig1
    linkageType: ''
    returnType: uint8_t
    signature: WeaveCASEEngine::ConfigHashLength() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 774
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 774
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::CertType
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: WeaveCASEEngine::CertType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - certType
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 779
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 779
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetCertType
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveCASEEngine::SetCertType(uint8_t certType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 786
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 786
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::UseKnownECDHKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveCASEEngine::UseKnownECDHKey() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 794
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 794
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetUseKnownECDHKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveCASEEngine::SetUseKnownECDHKey(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: nl::Weave::Profiles::Security::WeaveDN::IsEmpty
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsEmpty(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: nl::Weave::Profiles::Security::WeaveDN::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: nl::Weave::Profiles::Security::CertificateKeyId::IsEmpty
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsEmpty(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: nl::Weave::Profiles::Security::CertificateKeyId::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 272
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 272
    functionName: nl::Weave::Profiles::Security::WeaveCertificateSet
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeaveCertificateSet
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.h:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: nl::Weave::Profiles::Security::ValidationContext::Reset
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: ValidationContext::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - oid
    argTypes:
    - OID
    constantsTouched: []
    func_position:
      end: 321
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 321
    functionName: nl::Weave::Profiles::Security::IsWeaveX509Attr
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsWeaveX509Attr(OID oid)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - oid
    argTypes:
    - OID
    constantsTouched: []
    func_position:
      end: 331
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 331
    functionName: nl::Weave::Profiles::Security::IsWeaveIdX509Attr
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsWeaveIdX509Attr(OID oid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:74,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:75,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:76,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:77,1
    - Dst: SHA256::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:80,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:83,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:84,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:85,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:88,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:89,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:90,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:93,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:96,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:97,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:98,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:101,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:104,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:105,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:106,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:109,1
    - Dst: SHA256::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:112,1
    - Dst: Base64Encode
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 9
    argNames:
    - nodeId
    - weaveCert
    - weaveCertLen
    - weavePrivKey
    - weavePrivKeyLen
    - pairingCode
    - pairingCodeLen
    - hashBuf
    - hashBufSize
    argTypes:
    - uint64_t
    - char*
    - size_t
    - char*
    - size_t
    - char*
    - size_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 120
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 120
    functionName: nl::Weave::Profiles::Security::WEAVE_ERROR::MakeWeaveProvisioningHash
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp
    functionUses: 0
    functionsReached:
    - SHA256::Finish
    - SHA256::Begin
    - Base64Encode
    - VerifyOrExit
    - snprintf
    - SHA256::AddData
    - VerifyOrDie
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: "WEAVE_ERROR MakeWeaveProvisioningHash(uint64_t nodeId,\n                                                    const
      char *weaveCert, size_t weaveCertLen,\n                                                    const
      char *weavePrivKey, size_t weavePrivKeyLen,\n                                                    const
      char *pairingCode, size_t pairingCodeLen,\n                                                    char
      *hashBuf, size_t hashBufSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:155,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:156,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:157,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:158,1
    - Dst: SHA256::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:161,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:164,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:165,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:166,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:169,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:172,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:173,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:174,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:177,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:180,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:181,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:182,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:185,1
    - Dst: SHA256::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:188,1
    - Dst: Base64Encode
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 8
    argNames:
    - serialNum
    - serialNumLen
    - deviceId
    - deviceIdLen
    - deviceSecret
    - deviceSecretLen
    - hashBuf
    - hashBufSize
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    - char*
    - size_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 196
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 196
    functionName: nl::Weave::Profiles::Security::WEAVE_ERROR::MakeDeviceCredentialHash
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp
    functionUses: 0
    functionsReached:
    - SHA256::Finish
    - SHA256::Begin
    - Base64Encode
    - VerifyOrExit
    - snprintf
    - SHA256::AddData
    - VerifyOrDie
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: "WEAVE_ERROR MakeDeviceCredentialHash(const char *serialNum, size_t
      serialNumLen,\n                                                   const char
      *deviceId, size_t deviceIdLen,\n                                                   const
      char *deviceSecret, size_t deviceSecretLen,\n                                                   char
      *hashBuf, size_t hashBufSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: nl::Weave::Profiles::Security::PASE::PrintHex
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: PrintHex(const uint8_t *data, uint16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 94
    functionName: nl::Weave::Profiles::Security::PASE::PASEConfig1_JPAKE_P
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: '*PASEConfig1_JPAKE_P()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: nl::Weave::Profiles::Security::PASE::PASEConfig1_JPAKE_Q
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: '*PASEConfig1_JPAKE_Q()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 122
    functionName: nl::Weave::Profiles::Security::PASE::PASEConfig1_JPAKE_G
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: '*PASEConfig1_JPAKE_G()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:133,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:134,1
    - Dst: nl::Weave::Profiles::Security::PASE::PASEConfig1_JPAKE_P
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:136,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:137,1
    - Dst: nl::Weave::Profiles::Security::PASE::PASEConfig1_JPAKE_G
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:139,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:140,1
    - Dst: nl::Weave::Profiles::Security::PASE::PASEConfig1_JPAKE_Q
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:142,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:143,1
    - Dst: JPAKE_CTX_new
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:145,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:146,1
    - Dst: BN_free
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:149,1
    - Dst: BN_free
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:150,1
    - Dst: BN_free
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:151,1
    - Dst: BN_free
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 5
    argNames:
    - pw
    - pwLen
    - localContextStr
    - peerContextStr
    - ' ctx'
    argTypes:
    - uint8_t*
    - uint16_t
    - char*
    - char*
    - struct JPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 154
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 154
    functionName: nl::Weave::Profiles::Security::PASE::NewPASEConfig1JPAKECTX
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::PASE::PASEConfig1_JPAKE_Q
    - BN_free
    - BN_bin2bn
    - JPAKE_CTX_new
    - VerifyOrExit
    - nl::Weave::Profiles::Security::PASE::PASEConfig1_JPAKE_G
    - nl::Weave::Profiles::Security::PASE::PASEConfig1_JPAKE_P
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NewPASEConfig1JPAKECTX(const uint8_t *pw, uint16_t pwLen, const char
      *localContextStr, const char *peerContextStr, struct JPAKE_CTX *& ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::AlignPayload
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: nl::Weave::Profiles::Security::PASE::AlignMessagePayload
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::AlignPayload
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: AlignMessagePayload(PacketBuffer *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: nl::Weave::Profiles::Security::PASE::AlignMessagePayload
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: AlignMessagePayload(PacketBuffer *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:178,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - pwSrc
    - encType
    - sessionKeyId
    - performKeyConfirm
    - ' controlHeader'
    argTypes:
    - uint8_t
    - uint8_t
    - uint16_t
    - bool
    - uint32_t
    constantsTouched: []
    func_position:
      end: 191
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 191
    functionName: nl::Weave::Profiles::Security::PASE::PackControlHeader
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PackControlHeader(uint8_t pwSrc, uint8_t encType, uint16_t sessionKeyId,
      bool performKeyConfirm, uint32_t& controlHeader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - controlHeader
    - ' pwSrc'
    - ' encType'
    - ' sessionKeyId'
    - ' performKeyConfirm'
    argTypes:
    - uint32_t
    - uint8_t
    - uint8_t
    - uint16_t
    - bool
    constantsTouched: []
    func_position:
      end: 206
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 206
    functionName: nl::Weave::Profiles::Security::PASE::UnpackControlHeader
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UnpackControlHeader(uint32_t controlHeader, uint8_t& pwSrc, uint8_t&
      encType, uint16_t& sessionKeyId, bool& performKeyConfirm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetCurveSize
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:231,1
    - Dst: WeaveDie
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - altConfigCount
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 253
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 253
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::PackSizeHeader
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - WeaveDie
    - GetCurveSize
    linkageType: ''
    returnType: uint32_t
    signature: WeavePASEEngine::PackSizeHeader(uint8_t altConfigCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - sizeHeader
    - ' gx'
    - ' zkpxgr'
    - ' zkpxb'
    - ' altConfigCount'
    argTypes:
    - uint32_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 261
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 261
    functionName: nl::Weave::Profiles::Security::PASE::UnpackSizeHeader
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: UnpackSizeHeader(uint32_t sizeHeader, uint8_t& gx, uint8_t& zkpxgr,
      uint8_t& zkpxb, uint8_t& altConfigCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::PASE::UnpackSizeHeader
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:268,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - sizeHeader
    - ' gx'
    - ' zkpxgr'
    - ' zkpxb'
    argTypes:
    - uint32_t
    - uint8_t
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 273
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 273
    functionName: nl::Weave::Profiles::Security::PASE::UnpackSizeHeader
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::PASE::UnpackSizeHeader
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UnpackSizeHeader(uint32_t sizeHeader, uint8_t& gx, uint8_t& zkpxgr,
      uint8_t& zkpxb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:310,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:311,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:320,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:324,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:331,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 8
    argNames:
    - localNodeId
    - peerNodeId
    - pwSource
    - altConfigs
    - altConfigsCount
    - isInitiator
    - buf
    - bufSize
    argTypes:
    - uint64_t
    - uint64_t
    - uint8_t
    - uint32_t*
    - uint8_t
    - bool
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 339
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 339
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::FormProtocolContextString
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - snprintf
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::FormProtocolContextString(uint64_t localNodeId, uint64_t
      peerNodeId, uint8_t pwSource, uint32_t *altConfigs, uint8_t altConfigsCount,
      bool isInitiator, char *buf, size_t bufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:348,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:349,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:368,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:373,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:374,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:375,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:376,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:377,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:378,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:379,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:380,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:381,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 9
    argNames:
    - localNodeId
    - peerNodeId
    - pwSource
    - altConfigs
    - altConfigsCount
    - isInitiator
    - buf
    - bufSize
    - contextLen
    argTypes:
    - uint64_t
    - uint64_t
    - uint8_t
    - uint32_t*
    - uint8_t
    - bool
    - uint8_t*
    - size_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 388
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 388
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::FormProtocolContextData
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Write64
    - VerifyOrExit
    - memset
    - nl::Weave::Encoding::LittleEndian::Write16
    - nl::Weave::Encoding::LittleEndian::Write32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::FormProtocolContextData(uint64_t localNodeId, uint64_t
      peerNodeId, uint8_t pwSource, uint32_t *altConfigs, uint8_t altConfigsCount,
      bool isInitiator, uint8_t *buf, size_t bufSize, uint16_t &contextLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:398,1
    - Dst: SHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:399,1
    - Dst: SHA1::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:400,1
    - Dst: SHA256::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:407,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:408,1
    - Dst: SHA256::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - data
    - dataLen
    - h
    argTypes:
    - uint8_t*
    - uint16_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 415
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 415
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProtocolHash
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - SHA1::AddData
    - SHA256::Finish
    - SHA1::Finish
    - SHA256::Begin
    - SHA256::AddData
    - SHA1::Begin
    linkageType: ''
    returnType: void
    signature: WeavePASEEngine::ProtocolHash(const uint8_t *data, const uint16_t dataLen,
      uint8_t *h)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 421
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 421
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::IsAllowedPASEConfig
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeavePASEEngine::IsAllowedPASEConfig(uint32_t config) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - config
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 457
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 457
    functionName: nl::Weave::Profiles::Security::PASE::GetPASEConfigSecurityStrength
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: GetPASEConfigSecurityStrength(uint32_t config)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::IsAllowedPASEConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:478,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - altConfigs
    - altConfigsCount
    argTypes:
    - uint32_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 502
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 502
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateAltConfigsList
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::IsAllowedPASEConfig
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::GenerateAltConfigsList(uint32_t *altConfigs, uint8_t
      &altConfigsCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPASEConfigSecurityStrength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:539,1
    - Dst: GetPASEConfigSecurityStrength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:544,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::IsAllowedPASEConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:545,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - altConfigs
    - altConfigsCount
    argTypes:
    - uint32_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 558
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 558
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::FindStrongerAltConfig
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::IsAllowedPASEConfig
    - GetPASEConfigSecurityStrength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::FindStrongerAltConfig(uint32_t *altConfigs, uint8_t
      altConfigsCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveFabricState*::GetPassword
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:569,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:570,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:575,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::FormProtocolContextString
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:587,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:589,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::FormProtocolContextString
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:590,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:592,1
    - Dst: NewPASEConfig1JPAKECTX
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:595,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:596,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::FormProtocolContextData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:608,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:610,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::FormProtocolContextData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:611,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:613,1
    - Dst: SHA256::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:619,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:622,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:623,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:627,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:628,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:630,1
    - Dst: SHA256::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:631,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:660,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:663,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:664,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 7
    argNames:
    - localNodeId
    - peerNodeId
    - pwSource
    - FabricState
    - altConfigs
    - altConfigsCount
    - isInitiator
    argTypes:
    - uint64_t
    - uint64_t
    - uint8_t
    - WeaveFabricState*
    - uint32_t*
    - uint8_t
    - bool
    constantsTouched: []
    func_position:
      end: 677
      start: 560
    functionDepth: 3
    functionLinenumber: 560
    functionLinenumberEnd: 677
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::InitState
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::Init
    - SHA256::Finish
    - SHA256::Begin
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::FormProtocolContextString
    - VerifyOrExit
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::FormProtocolContextData
    - ExitNow
    - NewPASEConfig1JPAKECTX
    - WeaveFabricState*::GetPassword
    - SHA256::AddData
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::InitState(uint64_t localNodeId, uint64_t peerNodeId,
      uint8_t pwSource, WeaveFabricState *FabricState, uint32_t *altConfigs, uint8_t
      altConfigsCount, bool isInitiator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 691
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 691
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::Init
    linkageType: ''
    returnType: void
    signature: WeavePASEEngine::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::Reset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 696
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 696
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::Reset
    linkageType: ''
    returnType: void
    signature: WeavePASEEngine::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JPAKE_CTX_free
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:703,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::Reset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:708,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:719,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:720,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 721
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 721
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::Reset
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::Reset
    - JPAKE_CTX_free
    - ClearSecretData
    linkageType: ''
    returnType: void
    signature: WeavePASEEngine::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 726
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 726
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::IsInitiator
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeavePASEEngine::IsInitiator() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 731
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 731
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::IsResponder
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeavePASEEngine::IsResponder() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:750,1
    - Dst: AlignMessagePayload
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:755,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:756,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:759,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:765,1
    - Dst: JPAKE_CTX_free
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:770,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::Reset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:775,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateAltConfigsList
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:786,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:787,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::InitState
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:790,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:791,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:794,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:794,1
    - Dst: PackControlHeader
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:797,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:798,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:799,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::PackSizeHeader
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:802,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:803,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:806,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:810,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep1Data_Config0_TEST_ONLY
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:815,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep1Data_Config1
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:822,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep1Data_ConfigEC
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:828,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:835,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:838,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 9
    argNames:
    - buf
    - proposedPASEConfig
    - localNodeId
    - peerNodeId
    - sessionKeyId
    - encType
    - pwSrc
    - FabricState
    - confirmKey
    argTypes:
    - PacketBuffer*
    - uint32_t
    - uint64_t
    - uint64_t
    - uint16_t
    - uint8_t
    - uint8_t
    - WeaveFabricState*
    - bool
    constantsTouched: []
    func_position:
      end: 845
      start: 733
    functionDepth: 4
    functionLinenumber: 733
    functionLinenumberEnd: 845
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateInitiatorStep1
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::PackSizeHeader
    - VerifyOrExit
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::InitState
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::Reset
    - SuccessOrExit
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateAltConfigsList
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep1Data_Config1
    - AlignMessagePayload
    - PacketBuffer*::Start
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep1Data_Config0_TEST_ONLY
    - nl::Weave::Encoding::LittleEndian::Write32
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep1Data_ConfigEC
    - JPAKE_CTX_free
    - PackControlHeader
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::GenerateInitiatorStep1(PacketBuffer *buf, uint32_t
      proposedPASEConfig, uint64_t localNodeId, uint64_t peerNodeId, uint16_t sessionKeyId,
      uint8_t encType, uint8_t pwSrc, WeaveFabricState *FabricState, bool confirmKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:855,1
    - Dst: AlignMessagePayload
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:858,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:859,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:862,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:865,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:865,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::PackSizeHeader
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:868,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:869,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep1Data_Config0_TEST_ONLY
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:874,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep1Data_Config1
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:881,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep1Data_ConfigEC
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:887,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:894,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - buf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 904
      start: 847
    functionDepth: 2
    functionLinenumber: 847
    functionLinenumberEnd: 904
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateResponderStep1
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::PackSizeHeader
    - VerifyOrExit
    - SuccessOrExit
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep1Data_Config1
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep1Data_ConfigEC
    - AlignMessagePayload
    - PacketBuffer*::Start
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep1Data_Config0_TEST_ONLY
    - nl::Weave::Encoding::LittleEndian::Write32
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::GenerateResponderStep1(PacketBuffer *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:923,1
    - Dst: AlignMessagePayload
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:926,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:927,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:930,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:933,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:936,1
    - Dst: UnpackControlHeader
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:937,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:938,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:941,1
    - Dst: nl::Weave::WeaveKeyId::IsSessionKey
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:941,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:944,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:947,1
    - Dst: UnpackSizeHeader
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:948,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:949,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:952,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:958,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:960,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::FindStrongerAltConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:966,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:967,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::InitState
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:970,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:971,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep1Data_Config0_TEST_ONLY
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:976,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep1Data_Config1
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:983,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep1Data_ConfigEC
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:989,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:996,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:999,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 4
    argNames:
    - buf
    - localNodeId
    - peerNodeId
    - FabricState
    argTypes:
    - PacketBuffer*
    - uint64_t
    - uint64_t
    - WeaveFabricState*
    constantsTouched: []
    func_position:
      end: 1006
      start: 906
    functionDepth: 4
    functionLinenumber: 906
    functionLinenumberEnd: 1006
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessInitiatorStep1
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::FindStrongerAltConfig
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep1Data_Config1
    - VerifyOrExit
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::InitState
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep1Data_ConfigEC
    - UnpackSizeHeader
    - PacketBuffer*::Start
    - SuccessOrExit
    - nl::Weave::WeaveKeyId::IsSessionKey
    - AlignMessagePayload
    - nl::Weave::Encoding::LittleEndian::Read32
    - UnpackControlHeader
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep1Data_Config0_TEST_ONLY
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::ProcessInitiatorStep1(PacketBuffer *buf, uint64_t
      localNodeId, uint64_t peerNodeId, WeaveFabricState *FabricState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1018,1
    - Dst: AlignMessagePayload
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1021,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1022,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1025,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1029,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1030,1
    - Dst: UnpackSizeHeader
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1031,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1032,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep1Data_Config0_TEST_ONLY
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1037,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep1Data_Config1
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1044,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep1Data_ConfigEC
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1050,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1057,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1060,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 1
    argNames:
    - buf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1067
      start: 1008
    functionDepth: 1
    functionLinenumber: 1008
    functionLinenumberEnd: 1067
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessResponderStep1
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep1Data_Config1
    - VerifyOrExit
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep1Data_ConfigEC
    - UnpackSizeHeader
    - PacketBuffer*::Start
    - SuccessOrExit
    - AlignMessagePayload
    - nl::Weave::Encoding::LittleEndian::Read32
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep1Data_Config0_TEST_ONLY
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::ProcessResponderStep1(PacketBuffer *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1077,1
    - Dst: AlignMessagePayload
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1080,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1081,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1084,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1087,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1087,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::PackSizeHeader
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1090,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1091,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep2Data_Config0_TEST_ONLY
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1096,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep2Data_Config1
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1103,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep2Data_ConfigEC
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1109,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1116,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - buf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1126
      start: 1069
    functionDepth: 2
    functionLinenumber: 1069
    functionLinenumberEnd: 1126
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateResponderStep2
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::PackSizeHeader
    - VerifyOrExit
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep2Data_ConfigEC
    - SuccessOrExit
    - AlignMessagePayload
    - PacketBuffer*::Start
    - nl::Weave::Encoding::LittleEndian::Write32
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep2Data_Config1
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep2Data_Config0_TEST_ONLY
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::GenerateResponderStep2(PacketBuffer *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1138,1
    - Dst: AlignMessagePayload
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1141,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1142,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1145,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1149,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1150,1
    - Dst: UnpackSizeHeader
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1151,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1152,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep2Data_Config0_TEST_ONLY
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1157,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep2Data_Config1
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1164,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep2Data_ConfigEC
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1170,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1177,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 1
    argNames:
    - buf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1187
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1187
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessResponderStep2
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep2Data_ConfigEC
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep2Data_Config0_TEST_ONLY
    - VerifyOrExit
    - UnpackSizeHeader
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep2Data_Config1
    - PacketBuffer*::Start
    - SuccessOrExit
    - AlignMessagePayload
    - nl::Weave::Encoding::LittleEndian::Read32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::ProcessResponderStep2(PacketBuffer *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1203,1
    - Dst: AlignMessagePayload
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1206,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1207,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1210,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1234,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1240,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1240,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::PackSizeHeader
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1243,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1244,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep2Data_Config0_TEST_ONLY
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1249,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep2Data_Config1
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1256,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep2Data_ConfigEC
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1262,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1269,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1271,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1274,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1274,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1277,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::DeriveKeys
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1279,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1280,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateKeyConfirmHashes
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1284,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 48
    argCount: 1
    argNames:
    - buf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1296
      start: 1189
    functionDepth: 2
    functionLinenumber: 1189
    functionLinenumberEnd: 1296
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateInitiatorStep2
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::DeriveKeys
    - PacketBuffer*::SetDataLength
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::PackSizeHeader
    - VerifyOrExit
    - ExitNow
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep2Data_ConfigEC
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateKeyConfirmHashes
    - SuccessOrExit
    - AlignMessagePayload
    - PacketBuffer*::Start
    - nl::Weave::Encoding::LittleEndian::Write32
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep2Data_Config1
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep2Data_Config0_TEST_ONLY
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::GenerateInitiatorStep2(PacketBuffer *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1314,1
    - Dst: AlignMessagePayload
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1317,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1318,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1321,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1345,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1352,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1352,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1353,1
    - Dst: UnpackSizeHeader
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1354,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1356,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep2Data_Config0_TEST_ONLY
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1361,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep2Data_Config1
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1368,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep2Data_ConfigEC
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1374,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1381,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1383,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1383,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1385,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::DeriveKeys
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1387,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1388,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateKeyConfirmHashes
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1392,1
    - Dst: ConstantTimeCompare
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1394,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1395,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 49
    argCount: 1
    argNames:
    - buf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1408
      start: 1298
    functionDepth: 1
    functionLinenumber: 1298
    functionLinenumberEnd: 1408
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessInitiatorStep2
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::DeriveKeys
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep2Data_ConfigEC
    - ConstantTimeCompare
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep2Data_Config0_TEST_ONLY
    - nl::Weave::Encoding::LittleEndian::Read32
    - VerifyOrExit
    - ExitNow
    - UnpackSizeHeader
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep2Data_Config1
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateKeyConfirmHashes
    - SuccessOrExit
    - AlignMessagePayload
    - PacketBuffer*::Start
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::ProcessInitiatorStep2(PacketBuffer *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1416,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1418,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1425,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1425,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1427,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1427,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - buf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1437
      start: 1410
    functionDepth: 0
    functionLinenumber: 1410
    functionLinenumberEnd: 1437
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateResponderKeyConfirm
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - VerifyOrExit
    - memcpy
    - PacketBuffer*::Start
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::GenerateResponderKeyConfirm(PacketBuffer *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1445,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1447,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1454,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1454,1
    - Dst: ConstantTimeCompare
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1456,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1456,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - buf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1464
      start: 1439
    functionDepth: 0
    functionLinenumber: 1439
    functionLinenumberEnd: 1464
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessResponderKeyConfirm
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - ConstantTimeCompare
    - VerifyOrExit
    - ExitNow
    - PacketBuffer*::Start
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::ProcessResponderKeyConfirm(PacketBuffer *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1473,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1476,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1476,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1479,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::IsAllowedPASEConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1479,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1482,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - buf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1492
      start: 1466
    functionDepth: 2
    functionLinenumber: 1466
    functionLinenumberEnd: 1492
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateResponderReconfigure
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - VerifyOrExit
    - nl::Weave::Encoding::LittleEndian::Write32
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::IsAllowedPASEConfig
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::GenerateResponderReconfigure(PacketBuffer *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1501,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1504,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1504,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1507,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1510,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::IsAllowedPASEConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - ' proposedPASEConfig'
    argTypes:
    - PacketBuffer*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1517
      start: 1494
    functionDepth: 1
    functionLinenumber: 1494
    functionLinenumberEnd: 1517
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessResponderReconfigure
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::IsAllowedPASEConfig
    - VerifyOrExit
    - nl::Weave::Encoding::LittleEndian::Read32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::ProcessResponderReconfigure(PacketBuffer *buf, uint32_t
      & proposedPASEConfig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' encKey'
    argTypes:
    - WeaveEncryptionKey*
    constantsTouched: []
    func_position:
      end: 1530
      start: 1519
    functionDepth: 0
    functionLinenumber: 1519
    functionLinenumberEnd: 1530
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GetSessionKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::GetSessionKey(const WeaveEncryptionKey *& encKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1541,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1541,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1543,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1545,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1547,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1549,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1551,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - buf
    - stepDataLen
    argTypes:
    - PacketBuffer*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1557
      start: 1534
    functionDepth: 0
    functionLinenumber: 1534
    functionLinenumberEnd: 1557
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep1Data_Config0_TEST_ONLY
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 2
    functionsReached:
    - VerifyOrExit
    - memset
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::GenerateStep1Data_Config0_TEST_ONLY(PacketBuffer *buf,
      uint16_t &stepDataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1565,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1571,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1571,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1576,1
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1577,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1578,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1584,1
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1585,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1586,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1592,1
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1593,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1594,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1600,1
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1601,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1602,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1608,1
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1609,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1610,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1616,1
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1617,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 5
    argNames:
    - buf
    - stepDataLen
    - gxWordCount
    - zkpxgrWordCount
    - zkpxbWordCount
    argTypes:
    - PacketBuffer*
    - uint16_t
    - uint8_t
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1623
      start: 1559
    functionDepth: 0
    functionLinenumber: 1559
    functionLinenumberEnd: 1623
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep1Data_Config0_TEST_ONLY
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 2
    functionsReached:
    - PacketBuffer*::DataLength
    - memcmp
    - VerifyOrExit
    - memset
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::ProcessStep1Data_Config0_TEST_ONLY(PacketBuffer *buf,
      uint16_t &stepDataLen, uint8_t gxWordCount, uint8_t zkpxgrWordCount, uint8_t
      zkpxbWordCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1632,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1632,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1634,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1637,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProtocolHash
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1640,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - buf
    - stepDataLen
    - step2ZKPXGRHash
    argTypes:
    - PacketBuffer*
    - uint16_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1647
      start: 1625
    functionDepth: 1
    functionLinenumber: 1625
    functionLinenumberEnd: 1647
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep2Data_Config0_TEST_ONLY
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProtocolHash
    - VerifyOrExit
    - memset
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::GenerateStep2Data_Config0_TEST_ONLY(PacketBuffer *buf,
      uint16_t &stepDataLen, uint8_t *step2ZKPXGRHash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1655,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1661,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1661,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1666,1
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1667,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1668,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1674,1
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1675,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1676,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProtocolHash
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1679,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1685,1
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1686,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1687,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 6
    argNames:
    - buf
    - stepDataLen
    - gxWordCount
    - zkpxgrWordCount
    - zkpxbWordCount
    - step2ZKPXGRHash
    argTypes:
    - PacketBuffer*
    - uint16_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1692
      start: 1649
    functionDepth: 1
    functionLinenumber: 1649
    functionLinenumberEnd: 1692
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep2Data_Config0_TEST_ONLY
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 2
    functionsReached:
    - PacketBuffer*::DataLength
    - memcmp
    - VerifyOrExit
    - memset
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProtocolHash
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::ProcessStep2Data_Config0_TEST_ONLY(PacketBuffer *buf,
      uint16_t &stepDataLen, uint8_t gxWordCount, uint8_t zkpxgrWordCount, uint8_t
      zkpxbWordCount, uint8_t *step2ZKPXGRHash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1701,1
    - Dst: SHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1702,1
    - Dst: SHA1::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' point'
    - h
    argTypes:
    - BIGNUM
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1704
      start: 1698
    functionDepth: 0
    functionLinenumber: 1698
    functionLinenumberEnd: 1704
    functionName: nl::Weave::Profiles::Security::PASE::BigNumHash
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 0
    functionsReached:
    - SHA1::Begin
    - SHA1::Finish
    - SHA1::AddData
    linkageType: ''
    returnType: void
    signature: BigNumHash(const BIGNUM& point, uint8_t *h)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JPAKE_STEP1_init
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1726,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1735,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1735,1
    - Dst: JPAKE_STEP1_generate
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1738,1
    - Dst: EncodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1741,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1742,1
    - Dst: EncodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1743,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1744,1
    - Dst: EncodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1745,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1746,1
    - Dst: EncodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1747,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1748,1
    - Dst: EncodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1749,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1750,1
    - Dst: EncodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1751,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1752,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1754,1
    - Dst: JPAKE_STEP1_release
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 2
    argNames:
    - buf
    - stepDataLen
    argTypes:
    - PacketBuffer*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1759
      start: 1706
    functionDepth: 1
    functionLinenumber: 1706
    functionLinenumberEnd: 1759
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep1Data_Config1
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 2
    functionsReached:
    - JPAKE_STEP1_init
    - JPAKE_STEP1_generate
    - VerifyOrExit
    - JPAKE_STEP1_release
    - PacketBuffer*::Start
    - SuccessOrExit
    - EncodeBIGNUMValueLE
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::GenerateStep1Data_Config1(PacketBuffer *buf, uint16_t
      &stepDataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JPAKE_STEP1_init
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1769,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1778,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1778,1
    - Dst: DecodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1781,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1782,1
    - Dst: DecodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1783,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1784,1
    - Dst: DecodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1785,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1786,1
    - Dst: DecodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1787,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1788,1
    - Dst: DecodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1789,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1790,1
    - Dst: DecodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1791,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1792,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1794,1
    - Dst: JPAKE_STEP1_process
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1797,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1798,1
    - Dst: JPAKE_STEP1_release
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 5
    argNames:
    - buf
    - stepDataLen
    - gxWordCount
    - zkpxgrWordCount
    - zkpxbWordCount
    argTypes:
    - PacketBuffer*
    - uint16_t
    - uint8_t
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1803
      start: 1761
    functionDepth: 1
    functionLinenumber: 1761
    functionLinenumberEnd: 1803
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep1Data_Config1
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 2
    functionsReached:
    - PacketBuffer*::DataLength
    - JPAKE_STEP1_process
    - JPAKE_STEP1_init
    - VerifyOrExit
    - JPAKE_STEP1_release
    - DecodeBIGNUMValueLE
    - PacketBuffer*::Start
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::ProcessStep1Data_Config1(PacketBuffer *buf, uint16_t
      &stepDataLen, uint8_t gxWordCount, uint8_t zkpxgrWordCount, uint8_t zkpxbWordCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JPAKE_STEP2_init
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1823,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1829,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1829,1
    - Dst: JPAKE_STEP2_generate
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1832,1
    - Dst: EncodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1835,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1836,1
    - Dst: EncodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1837,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1838,1
    - Dst: EncodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1839,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1840,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1842,1
    - Dst: BigNumHash
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1846,1
    - Dst: JPAKE_STEP2_release
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - buf
    - stepDataLen
    - step2ZKPXGRHash
    argTypes:
    - PacketBuffer*
    - uint16_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1851
      start: 1805
    functionDepth: 1
    functionLinenumber: 1805
    functionLinenumberEnd: 1851
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep2Data_Config1
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 2
    functionsReached:
    - JPAKE_STEP2_generate
    - BigNumHash
    - VerifyOrExit
    - JPAKE_STEP2_release
    - PacketBuffer*::Start
    - JPAKE_STEP2_init
    - SuccessOrExit
    - EncodeBIGNUMValueLE
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::GenerateStep2Data_Config1(PacketBuffer *buf, uint16_t
      &stepDataLen, uint8_t *step2ZKPXGRHash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JPAKE_STEP2_init
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1861,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1867,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1867,1
    - Dst: DecodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1870,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1871,1
    - Dst: DecodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1872,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1873,1
    - Dst: DecodeBIGNUMValueLE
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1874,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1875,1
    - Dst: JPAKE_STEP2_process
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1878,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1879,1
    - Dst: BigNumHash
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1883,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1886,1
    - Dst: JPAKE_STEP2_release
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 6
    argNames:
    - buf
    - stepDataLen
    - gxWordCount
    - zkpxgrWordCount
    - zkpxbWordCount
    - step2ZKPXGRHash
    argTypes:
    - PacketBuffer*
    - uint16_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1891
      start: 1853
    functionDepth: 1
    functionLinenumber: 1853
    functionLinenumberEnd: 1891
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep2Data_Config1
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 2
    functionsReached:
    - PacketBuffer*::DataLength
    - VerifyOrExit
    - JPAKE_STEP2_release
    - DecodeBIGNUMValueLE
    - JPAKE_STEP2_init
    - JPAKE_STEP2_process
    - PacketBuffer*::Start
    - SuccessOrExit
    - BigNumHash
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::ProcessStep2Data_Config1(PacketBuffer *buf, uint16_t
      &stepDataLen, uint8_t gxWordCount, uint8_t zkpxgrWordCount, uint8_t zkpxbWordCount,
      uint8_t *step2ZKPXGRHash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenerateStep1
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1898,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1898,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - stepDataLen
    argTypes:
    - PacketBuffer*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1899
      start: 1896
    functionDepth: 0
    functionLinenumber: 1896
    functionLinenumberEnd: 1899
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep1Data_ConfigEC
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 2
    functionsReached:
    - PacketBuffer*::AvailableDataLength
    - PacketBuffer*::Start
    - GenerateStep1
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::GenerateStep1Data_ConfigEC(PacketBuffer *buf, uint16_t
      &stepDataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetCurveSize
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1907,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1915,1
    - Dst: ProcessStep1
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1919,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1919,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1919,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - buf
    - stepDataLen
    - gxWordCount
    - zkpxgrWordCount
    - zkpxbWordCount
    argTypes:
    - PacketBuffer*
    - uint16_t
    - uint8_t
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1923
      start: 1901
    functionDepth: 0
    functionLinenumber: 1901
    functionLinenumberEnd: 1923
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep1Data_ConfigEC
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 2
    functionsReached:
    - PacketBuffer*::DataLength
    - VerifyOrExit
    - GetCurveSize
    - ProcessStep1
    - PacketBuffer*::Start
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::ProcessStep1Data_ConfigEC(PacketBuffer *buf, uint16_t
      &stepDataLen, uint8_t gxWordCount, uint8_t zkpxgrWordCount, uint8_t zkpxbWordCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenerateStep2
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1930,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1930,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1930,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1931,1
    - Dst: GetCurveSize
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1935,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1936,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProtocolHash
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1937,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - buf
    - stepDataLen
    - step2ZKPXGRHash
    argTypes:
    - PacketBuffer*
    - uint16_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1941
      start: 1925
    functionDepth: 1
    functionLinenumber: 1925
    functionLinenumberEnd: 1941
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep2Data_ConfigEC
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 2
    functionsReached:
    - GenerateStep2
    - GetCurveSize
    - VerifyOrExit
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProtocolHash
    - PacketBuffer*::Start
    - SuccessOrExit
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::GenerateStep2Data_ConfigEC(PacketBuffer *buf, uint16_t
      &stepDataLen, uint8_t *step2ZKPXGRHash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetCurveSize
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1950,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1954,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1961,1
    - Dst: ProcessStep2
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1965,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1965,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1965,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1966,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProtocolHash
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1970,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1970,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - buf
    - stepDataLen
    - gxWordCount
    - zkpxgrWordCount
    - zkpxbWordCount
    - step2ZKPXGRHash
    argTypes:
    - PacketBuffer*
    - uint16_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1974
      start: 1943
    functionDepth: 1
    functionLinenumber: 1943
    functionLinenumberEnd: 1974
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep2Data_ConfigEC
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 2
    functionsReached:
    - ProcessStep2
    - PacketBuffer*::DataLength
    - VerifyOrExit
    - GetCurveSize
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProtocolHash
    - SuccessOrExit
    - PacketBuffer*::Start
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::ProcessStep2Data_ConfigEC(PacketBuffer *buf, uint16_t
      &stepDataLen, uint8_t gxWordCount, uint8_t zkpxgrWordCount, uint8_t zkpxbWordCount,
      uint8_t *step2ZKPXGRHash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1990,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1997,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:1998,1
    - Dst: HKDFSHA1::BeginExtractKey
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2002,1
    - Dst: HKDFSHA1::AddKeyMaterial
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2008,1
    - Dst: JPAKE_get_shared_key
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2015,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2016,1
    - Dst: HKDFSHA1::AddKeyMaterial
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2018,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2025,1
    - Dst: HKDFSHA1::AddKeyMaterial
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2027,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2031,1
    - Dst: HKDFSHA1::FinishExtractKey
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2036,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2037,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2040,1
    - Dst: PrintHex
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2040,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2040,1
    - Dst: HKDFSHA1::ExpandKey
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2049,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2050,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2053,1
    - Dst: PrintHex
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2053,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2053,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2057,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2060,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2063,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2068,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 4
    argNames:
    - initiatorStep2ZKPXGRHash
    - step2ZKPXGRHashLength
    - keyConfirmKey
    - keyConfirmKeyLength
    argTypes:
    - uint8_t*
    - uint8_t
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 2072
      start: 1978
    functionDepth: 1
    functionLinenumber: 1978
    functionLinenumberEnd: 2072
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::DeriveKeys
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 2
    functionsReached:
    - ClearSecretData
    - HKDFSHA1::AddKeyMaterial
    - PrintHex
    - VerifyOrExit
    - ExitNow
    - HKDFSHA1::FinishExtractKey
    - memcpy
    - printf
    - HKDFSHA1::ExpandKey
    - SuccessOrExit
    - HKDFSHA1::BeginExtractKey
    - JPAKE_get_shared_key
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeavePASEEngine::DeriveKeys(const uint8_t *initiatorStep2ZKPXGRHash,
      const uint8_t step2ZKPXGRHashLength, uint8_t *keyConfirmKey, const uint8_t keyConfirmKeyLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProtocolHash
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2077,1
    - Dst: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProtocolHash
      Src: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp:2080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - keyConfirmKey
    - keyConfirmKeyLength
    - initiatorHash
    - responderHash
    - keyConfirmHashLength
    argTypes:
    - uint8_t*
    - uint8_t
    - uint8_t*
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 2081
      start: 2074
    functionDepth: 1
    functionLinenumber: 2074
    functionLinenumberEnd: 2081
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateKeyConfirmHashes
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProtocolHash
    linkageType: ''
    returnType: void
    signature: WeavePASEEngine::GenerateKeyConfirmHashes(const uint8_t *keyConfirmKey,
      const uint8_t keyConfirmKeyLength, uint8_t *initiatorHash, uint8_t *responderHash,
      const uint8_t keyConfirmHashLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ProposedConfig
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: ProposedConfig() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ProposedConfig
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ProposedConfig(uint8_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::AllowNestDevelopmentDevices
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: AllowNestDevelopmentDevices() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::AllowNestDevelopmentDevices
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: AllowNestDevelopmentDevices(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::AllowSHA1DeviceCerts
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: AllowSHA1DeviceCerts() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::AllowSHA1DeviceCerts
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: AllowSHA1DeviceCerts(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::WeaveSignatureGeneratorBase::GenerateSignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - msgHash
    - msgHashLen
    - ' writer'
    argTypes:
    - uint8_t*
    - uint8_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: nl::Weave::Profiles::Security::WeaveSignatureGeneratorBase::GenerateSignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::WeaveSignatureGeneratorBase::GenerateSignature
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveSignatureGeneratorBase::GenerateSignature(const uint8_t * msgHash,
      uint8_t msgHashLen, TLVWriter & writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:70,1
    - Dst: nl::Weave::Profiles::Security::WeaveSignatureGeneratorBase::GenerateSignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:72,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:73,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:75,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:76,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 5
    argNames:
    - msgHash
    - msgHashLen
    - sigBuf
    - sigBufSize
    - ' sigLen'
    argTypes:
    - uint8_t*
    - uint8_t
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 82
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 82
    functionName: nl::Weave::Profiles::Security::WeaveSignatureGeneratorBase::GenerateSignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::Security::WeaveSignatureGeneratorBase::GenerateSignature
    - TLVWriter::Finalize
    - TLVWriter::GetLengthWritten
    - SuccessOrExit
    - TLVWriter::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveSignatureGeneratorBase::GenerateSignature(const uint8_t * msgHash,
      uint8_t msgHashLen,\n        uint8_t * sigBuf, uint16_t sigBufSize, uint16_t
      & sigLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:89,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:93,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:97,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:98,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:103,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:103,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:104,1
    - Dst: GenerateSignatureData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:108,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:109,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:117,1
    - Dst: SubjectKeyId::IsEmpty
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:117,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:120,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:120,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:122,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:125,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:125,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:127,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:129,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:130,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:140,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:140,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:141,1
    - Dst: SaveCerts
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:145,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:146,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:148,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:149,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:152,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 4
    argNames:
    - msgHash
    - msgHashLen
    - ' writer'
    - tag
    argTypes:
    - uint8_t*
    - uint8_t
    - TLVWriter
    - uint64_t
    constantsTouched: []
    func_position:
      end: 157
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 157
    functionName: nl::Weave::Profiles::Security::WeaveSignatureGeneratorBase::GenerateSignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp
    functionUses: 2
    functionsReached:
    - StartContainer
    - ContextTag
    - VerifyOrExit
    - PutBytes
    - SaveCerts
    - EndContainer
    - Put
    - SuccessOrExit
    - SubjectKeyId::IsEmpty
    - GenerateSignatureData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveSignatureGeneratorBase::GenerateSignature(const uint8_t * msgHash,
      uint8_t msgHashLen, TLVWriter & writer, uint64_t tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:163,1
    - Dst: nl::Weave::Profiles::Security::WeaveSignatureGeneratorBase::GenerateSignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:165,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - msgHash
    - msgHashLen
    - ' writer'
    - tag
    argTypes:
    - uint8_t*
    - uint8_t
    - TLVWriter
    - uint64_t
    constantsTouched: []
    func_position:
      end: 170
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 170
    functionName: nl::Weave::Profiles::Security::WeaveSignatureGenerator::GenerateSignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::WeaveSignatureGeneratorBase::GenerateSignature
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveSignatureGenerator::GenerateSignature(const uint8_t * msgHash,
      uint8_t msgHashLen, TLVWriter & writer, uint64_t tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:182,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:183,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:186,1
    - Dst: DecodeWeaveECPrivateKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:190,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:191,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:194,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:199,1
    - Dst: EncodedECPublicKey::IsEqual
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:199,1
    - Dst: nl::Weave::Crypto::GenerateECDSASignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:208,1
    - Dst: WeaveCurveIdToOID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:208,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:212,1
    - Dst: EncodeWeaveECDSASignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:216,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:216,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:217,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - msgHash
    - msgHashLen
    - ' writer'
    argTypes:
    - uint8_t*
    - uint8_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 221
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 221
    functionName: nl::Weave::Profiles::Security::WeaveSignatureGenerator::GenerateSignatureData
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::GenerateECDSASignature
    - WeaveCurveIdToOID
    - ContextTag
    - VerifyOrExit
    - SuccessOrExit
    - EncodedECPublicKey::IsEqual
    - DecodeWeaveECPrivateKey
    - EncodeWeaveECDSASignature
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveSignatureGenerator::GenerateSignatureData(const uint8_t * msgHash,
      uint8_t msgHashLen, TLVWriter & writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::WEAVE_ERROR::VerifyWeaveSignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - msgHash
    - msgHashLen
    - sig
    - sigLen
    - ' certSet'
    - ' certValidContext'
    argTypes:
    - uint8_t*
    - uint8_t
    - uint8_t*
    - uint16_t
    - WeaveCertificateSet
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 230
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 230
    functionName: nl::Weave::Profiles::Security::WEAVE_ERROR::VerifyWeaveSignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::WEAVE_ERROR::VerifyWeaveSignature
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: "WEAVE_ERROR VerifyWeaveSignature(\n    const uint8_t *msgHash, uint8_t
      msgHashLen,\n    const uint8_t *sig, uint16_t sigLen,\n    WeaveCertificateSet&
      certSet,\n    ValidationContext& certValidContext)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:246,1
    - Dst: WeaveDN::Clear
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:249,1
    - Dst: CertificateKeyId::Clear
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:250,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:252,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:255,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:255,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:256,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:261,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:262,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:264,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:266,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:266,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:268,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:269,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:271,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:274,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:278,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:278,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:278,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:279,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:279,1
    - Dst: DecodeWeaveECDSASignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:282,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:283,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:285,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:289,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:289,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:293,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:293,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:296,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:297,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:300,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:306,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:306,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:306,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:310,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:310,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:312,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:312,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:316,1
    - Dst: TLVReader::GetDataPtr
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:318,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:319,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:321,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:325,1
    - Dst: TLVReader::VerifyEndOfContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:327,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:328,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:330,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:331,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:333,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:337,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:337,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:341,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:341,1
    - Dst: LoadCerts
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:343,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:344,1
    - Dst: WeaveDN::IsEmpty
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:351,1
    - Dst: CertificateKeyId::IsEmpty
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:351,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:358,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:362,1
    - Dst: TLVReader::VerifyEndOfContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:364,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:365,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:367,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:368,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:372,1
    - Dst: FindValidCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:378,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:379,1
    - Dst: nl::Weave::Crypto::VerifyECDSASignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:382,1
    - Dst: WeaveCurveIdToOID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:382,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:386,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 76
    argCount: 7
    argNames:
    - msgHash
    - msgHashLen
    - sig
    - sigLen
    - expectedSigAlgoOID
    - ' certSet'
    - ' certValidContext'
    argTypes:
    - uint8_t*
    - uint8_t
    - uint8_t*
    - uint16_t
    - OID
    - WeaveCertificateSet
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 393
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 393
    functionName: nl::Weave::Profiles::Security::WEAVE_ERROR::VerifyWeaveSignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Next
    - CertificateKeyId::IsEmpty
    - TLVReader::ExitContainer
    - WeaveDN::IsEmpty
    - TLVReader::VerifyEndOfContainer
    - TLVReader::Get
    - TLVReader::Init
    - nl::Weave::Crypto::VerifyECDSASignature
    - VerifyOrExit
    - WeaveDN::Clear
    - TLVReader::GetDataPtr
    - LoadCerts
    - WeaveCurveIdToOID
    - TLVReader::GetType
    - ProfileTag
    - TLVReader::EnterContainer
    - DecodeWeaveECDSASignature
    - FindValidCert
    - ContextTag
    - CertificateKeyId::Clear
    - TLVReader::GetTag
    - SuccessOrExit
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: "WEAVE_ERROR VerifyWeaveSignature(\n    const uint8_t *msgHash, uint8_t
      msgHashLen,\n    const uint8_t *sig, uint16_t sigLen, OID expectedSigAlgoOID,\n
      \   WeaveCertificateSet& certSet,\n    ValidationContext& certValidContext)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:404,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:407,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:407,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:408,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:410,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:411,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:413,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:415,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:415,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:417,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - sig
    - sigLen
    - ' sigAlgoOID'
    argTypes:
    - uint8_t*
    - uint16_t
    - OID
    constantsTouched: []
    func_position:
      end: 423
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 423
    functionName: nl::Weave::Profiles::Security::GetWeaveSignatureAlgo
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - TLVReader::Next
    - ContextTag
    - TLVReader::EnterContainer
    - ProfileTag
    - TLVReader::GetTag
    - SuccessOrExit
    - TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetWeaveSignatureAlgo(const uint8_t *sig, uint16_t sigLen, OID& sigAlgoOID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecodeWeaveECPrivateKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:459,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:460,1
    - Dst: GenerateECDSASignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:469,1
    - Dst: nl::Weave::Profiles::Security::WeaveCurveIdToOID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:469,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:470,1
    - Dst: nl::Weave::Profiles::Security::EncodeWeaveECDSASignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:473,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 6
    argNames:
    - ' writer'
    - tag
    - msgHash
    - msgHashLen
    - signingKey
    - signingKeyLen
    argTypes:
    - TLVWriter
    - uint64_t
    - uint8_t*
    - uint8_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 478
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 478
    functionName: nl::Weave::Profiles::Security::GenerateAndEncodeWeaveECDSASignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp
    functionUses: 0
    functionsReached:
    - GenerateECDSASignature
    - nl::Weave::Profiles::Security::WeaveCurveIdToOID
    - SuccessOrExit
    - DecodeWeaveECPrivateKey
    - nl::Weave::Profiles::Security::EncodeWeaveECDSASignature
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "GenerateAndEncodeWeaveECDSASignature(TLVWriter& writer, uint64_t tag,\n
      \       const uint8_t * msgHash, uint8_t msgHashLen,\n        const uint8_t
      * signingKey, uint16_t signingKeyLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:487,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:488,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:491,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:491,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:492,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:495,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:495,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:496,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:498,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - ' writer'
    - ' sig'
    - tag
    argTypes:
    - TLVWriter
    - EncodedECDSASignature
    - uint64_t
    constantsTouched: []
    func_position:
      end: 503
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 503
    functionName: nl::Weave::Profiles::Security::EncodeWeaveECDSASignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp
    functionUses: 1
    functionsReached:
    - StartContainer
    - ContextTag
    - PutBytes
    - EndContainer
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EncodeWeaveECDSASignature(TLVWriter& writer, EncodedECDSASignature&
      sig, uint64_t tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1Reader::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:512,1
    - Dst: ASN1_PARSE_ELEMENT
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:517,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:519,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:520,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:522,1
    - Dst: const_cast<uint8_t *>
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:522,1
    - Dst: ASN1_PARSE_ELEMENT
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:526,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:528,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:529,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:531,1
    - Dst: const_cast<uint8_t *>
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - sigBuf
    - sigLen
    - ' sig'
    argTypes:
    - uint8_t*
    - uint8_t
    - EncodedECDSASignature
    constantsTouched: []
    func_position:
      end: 533
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 533
    functionName: nl::Weave::Profiles::Security::DecodeCopyECDSASignature_DER
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp
    functionUses: 0
    functionsReached:
    - ASN1_PARSE_ELEMENT
    - VerifyOrExit
    - memcpy
    - const_cast<uint8_t *>
    - ASN1Reader::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeCopyECDSASignature_DER(const uint8_t * sigBuf, uint8_t sigLen,
      EncodedECDSASignature& sig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1Reader::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:547,1
    - Dst: ASN1_PARSE_ELEMENT
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:552,1
    - Dst: const_cast<uint8_t *>
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:553,1
    - Dst: ASN1_PARSE_ELEMENT
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:556,1
    - Dst: const_cast<uint8_t *>
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - sigBuf
    - sigLen
    - ' writer'
    - tag
    argTypes:
    - uint8_t*
    - uint8_t
    - TLVWriter
    - uint64_t
    constantsTouched: []
    func_position:
      end: 559
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 559
    functionName: nl::Weave::Profiles::ConvertECDSASignature_DERToWeave
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp
    functionUses: 0
    functionsReached:
    - ASN1_PARSE_ELEMENT
    - const_cast<uint8_t *>
    - ASN1Reader::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConvertECDSASignature_DERToWeave(const uint8_t * sigBuf, uint8_t sigLen,
      TLVWriter& writer, uint64_t tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:574,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:574,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:576,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:577,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:580,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:580,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:581,1
    - Dst: GetDataPtr
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:582,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:583,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:584,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:587,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:587,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:588,1
    - Dst: GetDataPtr
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:589,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:590,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:591,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:593,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - ' reader'
    - ' sig'
    argTypes:
    - TLVReader
    - EncodedECDSASignature
    constantsTouched: []
    func_position:
      end: 598
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 598
    functionName: nl::Weave::DecodeWeaveECDSASignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - GetLength
    - GetDataPtr
    - ContextTag
    - VerifyOrExit
    - GetType
    - ExitContainer
    - SuccessOrExit
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeWeaveECDSASignature(TLVReader& reader, EncodedECDSASignature&
      sig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVUpdater::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:611,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:612,1
    - Dst: TLVUpdater::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:615,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:616,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:617,1
    - Dst: TLVUpdater::GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:617,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:618,1
    - Dst: TLVUpdater::GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:618,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:618,1
    - Dst: TLVUpdater::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:621,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:622,1
    - Dst: TLVUpdater::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:626,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:628,1
    - Dst: TLVUpdater::GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:628,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:628,1
    - Dst: TLVUpdater::Move
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:629,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:630,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:634,1
    - Dst: TLVUpdater::StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:637,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:637,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:638,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:641,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:645,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:646,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:649,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:652,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:653,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:654,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:661,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:661,1
    - Dst: TLVUpdater::CopyElement
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:664,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:665,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:668,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:672,1
    - Dst: TLVUpdater::EndContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:675,1
    - Dst: TLVUpdater::MoveUntilEnd
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:678,1
    - Dst: TLVUpdater::Finalize
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:681,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:682,1
    - Dst: TLVUpdater::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp:685,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 6
    argNames:
    - sigBuf
    - sigLen
    - sigBufLen
    - relatedCerts
    - relatedCertsLen
    - ' outSigLen'
    argTypes:
    - uint8_t*
    - uint16_t
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 689
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 689
    functionName: nl::Weave::InsertRelatedCertificatesIntoWeaveSignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp
    functionUses: 0
    functionsReached:
    - TLVUpdater::Move
    - TLVUpdater::GetLengthWritten
    - TLVReader::Next
    - TLVUpdater::Next
    - TLVUpdater::CopyElement
    - TLVUpdater::StartContainer
    - TLVReader::Init
    - TLVUpdater::GetType
    - TLVUpdater::Init
    - VerifyOrExit
    - TLVUpdater::EnterContainer
    - TLVUpdater::MoveUntilEnd
    - TLVUpdater::EndContainer
    - TLVUpdater::GetTag
    - TLVReader::GetType
    - ProfileTag
    - TLVReader::EnterContainer
    - ContextTag
    - TLVUpdater::Finalize
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "InsertRelatedCertificatesIntoWeaveSignature(\n    uint8_t *sigBuf,
      uint16_t sigLen, uint16_t sigBufLen,\n    const uint8_t *relatedCerts, uint16_t
      relatedCertsLen,\n    uint16_t& outSigLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:66,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:68,1
    - Dst: Binding*::AddRef
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 5
    argNames:
    - binding
    - opAuthDelegate
    - mfrAttestDelegate
    - eventCallback
    - appState
    argTypes:
    - Binding*
    - WeaveNodeOpAuthDelegate*
    - WeaveNodeMfrAttestDelegate*
    - EventCallback
    - void*
    constantsTouched: []
    func_position:
      end: 87
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 87
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp
    functionUses: 0
    functionsReached:
    - Binding*::AddRef
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCertProvEngine::Init(Binding * binding, WeaveNodeOpAuthDelegate
      * opAuthDelegate, WeaveNodeMfrAttestDelegate * mfrAttestDelegate, EventCallback
      eventCallback, void * appState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleRequestDone
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:97,1
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 110
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleRequestDone
    - Release
    linkageType: ''
    returnType: void
    signature: WeaveCertProvEngine::Shutdown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:134,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:136,1
    - Dst: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::SendGetCertificateRequest
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:141,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - reqType
    - doMfrAttest
    argTypes:
    - uint8_t
    - bool
    constantsTouched: []
    func_position:
      end: 146
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 146
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::StartCertificateProvisioning
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp
    functionUses: 0
    functionsReached:
    - SuccessOrExit
    - VerifyOrExit
    - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::SendGetCertificateRequest
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCertProvEngine::StartCertificateProvisioning(uint8_t reqType,
      bool doMfrAttest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:175,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:177,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:179,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:187,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:190,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:190,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:192,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:193,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:196,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:197,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:200,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:200,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:201,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:207,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:210,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:211,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:213,1
    - Dst: EncodeOpCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:217,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:217,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:218,1
    - Dst: EncodeOpRelatedCerts
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:221,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:221,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:222,1
    - Dst: EncodeMAInfo
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:227,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:228,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:231,1
    - Dst: SHA256::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:234,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:235,1
    - Dst: SHA256::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:236,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:239,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:239,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:239,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:240,1
    - Dst: GenerateAndEncodeOpSig
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:243,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:243,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:244,1
    - Dst: GenerateAndEncodeMASig
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:249,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:250,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:253,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:254,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:256,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 51
    argCount: 3
    argNames:
    - msgBuf
    - reqType
    - doMfrAttest
    argTypes:
    - PacketBuffer*
    - uint8_t
    - bool
    constantsTouched: []
    func_position:
      end: 261
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 261
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::GenerateGetCertificateRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp
    functionUses: 0
    functionsReached:
    - GenerateAndEncodeOpSig
    - TLVWriter::Put
    - EncodeOpCert
    - mEventCallback
    - VerifyOrExit
    - GenerateAndEncodeMASig
    - TLVWriter::GetLengthWritten
    - EncodeMAInfo
    - WeaveLogDetail
    - SuccessOrExit
    - EncodeOpRelatedCerts
    - PacketBuffer*::AvailableDataLength
    - static_cast<uint16_t>
    - SHA256::Finish
    - SHA256::Begin
    - InEventParam::Clear
    - TLVWriter::Finalize
    - ContextTag
    - OutEventParam::Clear
    - SHA256::AddData
    - PacketBuffer*::Start
    - TLVWriter::Init
    - TLVWriter::EndContainer
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCertProvEngine::GenerateGetCertificateRequest(PacketBuffer * msgBuf,
      uint8_t reqType, bool doMfrAttest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:293,1
    - Dst: memmove
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:299,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:302,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:305,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:307,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:308,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:310,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:311,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:313,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:313,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:314,1
    - Dst: TLVWriter::CopyContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:317,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:317,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:318,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:321,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:323,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:323,1
    - Dst: TLVWriter::CopyContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:331,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:331,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:332,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:334,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:336,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:337,1
    - Dst: TLVReader::VerifyEndOfContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:340,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:341,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:343,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:344,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:346,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:347,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:350,1
    - Dst: TLVReader::GetLengthRead
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:350,1
    - Dst: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::DeliverCommunicationError
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:357,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:363,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:364,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 379
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 379
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::ProcessGetCertificateResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp
    functionUses: 0
    functionsReached:
    - memmove
    - TLVWriter::CopyContainer
    - TLVReader::Next
    - TLVReader::ExitContainer
    - TLVReader::VerifyEndOfContainer
    - TLVReader::Init
    - mEventCallback
    - VerifyOrExit
    - TLVWriter::GetLengthWritten
    - WeaveLogDetail
    - InEventParam::Clear
    - TLVReader::EnterContainer
    - ProfileTag
    - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::DeliverCommunicationError
    - ContextTag
    - OutEventParam::Clear
    - TLVReader::GetLengthRead
    - SuccessOrExit
    - TLVWriter::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCertProvEngine::ProcessGetCertificateResponse(PacketBuffer * msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetProtocolLayerCallback
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:395,1
    - Dst: IsReady
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:398,1
    - Dst: NewExchangeContext
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:401,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:402,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:414,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:415,1
    - Dst: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::GenerateGetCertificateRequest
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:418,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:419,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:425,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:427,1
    - Dst: CanBePrepared
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:442,1
    - Dst: RequestPrepare
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:444,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:445,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:451,1
    - Dst: IsPreparing
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:451,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:458,1
    - Dst: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleRequestDone
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:463,1
    - Dst: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::DeliverCommunicationError
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:468,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 472
      start: 386
    functionDepth: 3
    functionLinenumber: 386
    functionLinenumberEnd: 472
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::SendGetCertificateRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp
    functionUses: 1
    functionsReached:
    - SendMessage
    - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleRequestDone
    - nl::Weave::System::PacketBuffer::Free
    - IsReady
    - SetProtocolLayerCallback
    - VerifyOrExit
    - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::GenerateGetCertificateRequest
    - RequestPrepare
    - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::DeliverCommunicationError
    - CanBePrepared
    - IsPreparing
    - SuccessOrExit
    - NewExchangeContext
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCertProvEngine::SendGetCertificateRequest(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Abort
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 488
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 488
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleRequestDone
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp
    functionUses: 2
    functionsReached:
    - Abort
    linkageType: ''
    returnType: void
    signature: WeaveCertProvEngine::HandleRequestDone(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:498,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:499,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - err
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 504
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 504
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::DeliverCommunicationError
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp
    functionUses: 2
    functionsReached:
    - OutEventParam::Clear
    - mEventCallback
    - InEventParam::Clear
    linkageType: ''
    returnType: void
    signature: WeaveCertProvEngine::DeliverCommunicationError(WEAVE_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveCertProvEngine*::SendGetCertificateRequest
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:524,1
    - Dst: WeaveCertProvEngine*::HandleRequestDone
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:535,1
    - Dst: WeaveCertProvEngine*::DeliverCommunicationError
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:538,1
    - Dst: nl::Weave::Binding::DefaultEventHandler
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:544,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - appState
    - eventType
    - ' inParam'
    - ' outParam'
    argTypes:
    - void*
    - Binding::EventType
    - Binding::InEventParam
    - Binding::OutEventParam
    constantsTouched: []
    func_position:
      end: 546
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 546
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleBindingEvent
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp
    functionUses: 0
    functionsReached:
    - WeaveCertProvEngine*::SendGetCertificateRequest
    - WeaveCertProvEngine*::HandleRequestDone
    - WeaveCertProvEngine*::DeliverCommunicationError
    - nl::Weave::Binding::DefaultEventHandler
    linkageType: ''
    returnType: void
    signature: "WeaveCertProvEngine::HandleBindingEvent(void * const appState, const
      Binding::EventType eventType, const Binding::InEventParam & inParam,\n                                             Binding::OutEventParam
      & outParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:555,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:556,1
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::parse
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:562,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:565,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:568,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:570,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:574,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:575,1
    - Dst: WeaveCertProvEngine*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:583,1
    - Dst: WeaveCertProvEngine*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:591,1
    - Dst: WeaveCertProvEngine*::mEC::Close
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:599,1
    - Dst: WeaveCertProvEngine*::HandleRequestDone
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:603,1
    - Dst: WeaveCertProvEngine*::ProcessGetCertificateResponse
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:608,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:615,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - msgBuf
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 618
      start: 551
    functionDepth: 2
    functionLinenumber: 551
    functionLinenumberEnd: 618
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp
    functionUses: 0
    functionsReached:
    - WeaveCertProvEngine*::HandleRequestDone
    - WeaveCertProvEngine*::mEventCallback
    - nl::Weave::System::PacketBuffer::Free
    - WeaveCertProvEngine*::mEC::Close
    - OutEventParam::Clear
    - VerifyOrExit
    - nl::Weave::Profiles::StatusReporting::StatusReport::parse
    - InEventParam::Clear
    - SuccessOrExit
    - WeaveCertProvEngine*::ProcessGetCertificateResponse
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: WeaveCertProvEngine::HandleResponse(ExchangeContext * ec, const IPPacketInfo
      * pktInfo, const WeaveMessageInfo * msgInfo, uint32_t profileId, uint8_t msgType,
      PacketBuffer * msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:627,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:628,1
    - Dst: WeaveCertProvEngine*::HandleRequestDone
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:631,1
    - Dst: WeaveCertProvEngine*::DeliverCommunicationError
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ec
    argTypes:
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 635
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 635
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleResponseTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp
    functionUses: 0
    functionsReached:
    - WeaveCertProvEngine*::HandleRequestDone
    - VerifyOrDie
    - WeaveCertProvEngine*::DeliverCommunicationError
    linkageType: ''
    returnType: void
    signature: WeaveCertProvEngine::HandleResponseTimeout(ExchangeContext * ec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:646,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ec
    - msgCtxt
    argTypes:
    - ExchangeContext*
    - void*
    constantsTouched: []
    func_position:
      end: 648
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 648
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleAckRcvd
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: WeaveCertProvEngine::HandleAckRcvd(ExchangeContext * ec, void * msgCtxt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:659,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:660,1
    - Dst: WeaveCertProvEngine*::HandleRequestDone
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:663,1
    - Dst: WeaveCertProvEngine*::DeliverCommunicationError
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ec
    - sendErr
    - msgCtxt
    argTypes:
    - ExchangeContext*
    - WEAVE_ERROR
    - void*
    constantsTouched: []
    func_position:
      end: 667
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 667
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleSendError
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp
    functionUses: 0
    functionsReached:
    - WeaveCertProvEngine*::HandleRequestDone
    - VerifyOrDie
    - WeaveCertProvEngine*::DeliverCommunicationError
    linkageType: ''
    returnType: void
    signature: WeaveCertProvEngine::HandleSendError(ExchangeContext * ec, WEAVE_ERROR
      sendErr, void * msgCtxt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleSendError
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ec
    - keyErr
    argTypes:
    - ExchangeContext*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 676
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 676
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleKeyError
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleSendError
    linkageType: ''
    returnType: void
    signature: WeaveCertProvEngine::HandleKeyError(ExchangeContext * ec, WEAVE_ERROR
      keyErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleSendError
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp:691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ec
    - con
    - conErr
    argTypes:
    - ExchangeContext*
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 692
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 692
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleSendError
    linkageType: ''
    returnType: void
    signature: WeaveCertProvEngine::HandleConnectionClosed(ExchangeContext *ec, WeaveConnection
      *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 334
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 334
    functionName: nl::Weave::Profiles::Security::PASE::WeavePASEEngine
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePASE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeavePASEEngine
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - tag
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: nl::Weave::Profiles::Security::IsCertificateExtensionTag
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp
    functionUses: 0
    functionsReached:
    - IsContextTag
    linkageType: ''
    returnType: bool
    signature: IsCertificateExtensionTag(uint64_t tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:78,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:79,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:87,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:88,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:91,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:92,1
    - Dst: IsContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:92,1
    - Dst: TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:93,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:96,1
    - Dst: nl::Weave::Profiles::Security::IsWeaveIdX509Attr
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:115,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:118,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:122,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:123,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:127,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:143,1
    - Dst: GetDataPtr
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:146,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:147,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:148,1
    - Dst: nl::Weave::Profiles::Security::IsWeaveX509Attr
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:155,1
    - Dst: VerifyEndOfContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:168,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:169,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:171,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:172,1
    - Dst: ASN1_ENCODE_OBJECT_ID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:187,1
    - Dst: PutString
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:191,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 3
    argNames:
    - ' reader'
    - ' writer'
    - ' dn'
    argTypes:
    - TLVReader
    - ASN1Writer
    - WeaveDN
    constantsTouched: []
    func_position:
      end: 202
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 202
    functionName: nl::Weave::Profiles::Security::DecodeConvertDN
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - PutString
    - IsContextTag
    - GetLength
    - GetDataPtr
    - VerifyEndOfContainer
    - nl::Weave::Profiles::Security::IsWeaveX509Attr
    - VerifyOrExit
    - ASN1_ENCODE_OBJECT_ID
    - GetType
    - nl::Weave::Profiles::Security::IsWeaveIdX509Attr
    - TagNumFromTag
    - GetTag
    - snprintf
    - Get
    - SuccessOrExit
    - ExitContainer
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeConvertDN(TLVReader& reader, ASN1Writer& writer, WeaveDN& dn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:212,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:212,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:213,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:214,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:215,1
    - Dst: nl::Weave::Profiles::Security::PackedCertTimeToDate
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:216,1
    - Dst: UnpackCertTime
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:217,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:218,1
    - Dst: ASN1_ENCODE_TIME
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:220,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:222,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:222,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:223,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:224,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:225,1
    - Dst: nl::Weave::Profiles::Security::PackedCertTimeToDate
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:226,1
    - Dst: UnpackCertTime
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:227,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:228,1
    - Dst: ASN1_ENCODE_TIME
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - ' reader'
    - ' writer'
    - ' certData'
    argTypes:
    - TLVReader
    - ASN1Writer
    - WeaveCertificateData
    constantsTouched: []
    func_position:
      end: 232
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 232
    functionName: nl::Weave::Profiles::Security::DecodeConvertValidity
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp
    functionUses: 0
    functionsReached:
    - ASN1_ENCODE_TIME
    - ContextTag
    - UnpackCertTime
    - SuccessOrExit
    - Get
    - nl::Weave::Profiles::Security::PackedCertTimeToDate
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeConvertValidity(TLVReader& reader, ASN1Writer& writer, WeaveCertificateData&
      certData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:244,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:244,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:245,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:246,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:247,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:256,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:256,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:257,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:258,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:259,1
    - Dst: WeaveCurveIdToOID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:266,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:270,1
    - Dst: ASN1_ENCODE_OBJECT_ID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:280,1
    - Dst: ASN1_ENCODE_OBJECT_ID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:297,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:307,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:307,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:308,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:309,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:310,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:320,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:320,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:321,1
    - Dst: PutValue
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:322,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:323,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:326,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:326,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:327,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:329,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:330,1
    - Dst: PutInteger
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:331,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:332,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:338,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:339,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - ' reader'
    - ' writer'
    - ' certData'
    argTypes:
    - TLVReader
    - ASN1Writer
    - WeaveCertificateData
    constantsTouched: []
    func_position:
      end: 342
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 342
    functionName: nl::Weave::Profiles::DecodeConvertSubjectPublicKeyInfo
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - PutInteger
    - WeaveCurveIdToOID
    - ContextTag
    - VerifyOrExit
    - ASN1_ENCODE_OBJECT_ID
    - PutValue
    - ExitContainer
    - Get
    - SuccessOrExit
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeConvertSubjectPublicKeyInfo(TLVReader& reader, ASN1Writer& writer,
      WeaveCertificateData& certData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: if
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:380,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:380,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:380,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:382,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:382,1
    - Dst: GetDataPtr
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:384,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:385,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:387,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:388,1
    - Dst: PutOctetString
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:392,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:393,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:395,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' reader'
    - ' writer'
    - ' certData'
    argTypes:
    - TLVReader
    - ASN1Writer
    - WeaveCertificateData
    constantsTouched: []
    func_position:
      end: 405
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 405
    functionName: DecodeConvertAuthorityKeyIdentifierExtension
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp
    functionUses: 0
    functionsReached:
    - PutOctetString
    - GetLength
    - GetDataPtr
    - ContextTag
    - VerifyOrExit
    - GetType
    - GetTag
    - SuccessOrExit
    - if
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeConvertAuthorityKeyIdentifierExtension(TLVReader& reader, ASN1Writer&
      writer, WeaveCertificateData& certData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:416,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:416,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:417,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:417,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:417,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:419,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:420,1
    - Dst: GetDataPtr
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:424,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:425,1
    - Dst: PutOctetString
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:427,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - ' reader'
    - ' writer'
    - ' certData'
    argTypes:
    - TLVReader
    - ASN1Writer
    - WeaveCertificateData
    constantsTouched: []
    func_position:
      end: 432
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 432
    functionName: DecodeConvertSubjectKeyIdentifierExtension
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp
    functionUses: 0
    functionsReached:
    - PutOctetString
    - GetLength
    - GetDataPtr
    - ContextTag
    - VerifyOrExit
    - GetType
    - GetTag
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeConvertSubjectKeyIdentifierExtension(TLVReader& reader, ASN1Writer&
      writer, WeaveCertificateData& certData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:442,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:442,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:442,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:443,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:444,1
    - Dst: ASN1_ENCODE_BIT_STRING
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - ' reader'
    - ' writer'
    - ' certData'
    argTypes:
    - TLVReader
    - ASN1Writer
    - WeaveCertificateData
    constantsTouched: []
    func_position:
      end: 451
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 451
    functionName: DecodeConvertKeyUsageExtension
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp
    functionUses: 0
    functionsReached:
    - ASN1_ENCODE_BIT_STRING
    - ContextTag
    - VerifyOrExit
    - GetTag
    - Get
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeConvertKeyUsageExtension(TLVReader& reader, ASN1Writer& writer,
      WeaveCertificateData& certData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: if
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:463,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:463,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:463,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:467,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:468,1
    - Dst: ASN1_ENCODE_BOOLEAN
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:472,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:476,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:477,1
    - Dst: if
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:481,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:481,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:481,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:485,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:486,1
    - Dst: ASN1_ENCODE_INTEGER
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' reader'
    - ' writer'
    - ' certData'
    argTypes:
    - TLVReader
    - ASN1Writer
    - WeaveCertificateData
    constantsTouched: []
    func_position:
      end: 499
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 499
    functionName: DecodeConvertBasicConstraintsExtension
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp
    functionUses: 0
    functionsReached:
    - ASN1_ENCODE_BOOLEAN
    - ContextTag
    - VerifyOrExit
    - ASN1_ENCODE_INTEGER
    - GetTag
    - Get
    - SuccessOrExit
    - if
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeConvertBasicConstraintsExtension(TLVReader& reader, ASN1Writer&
      writer, WeaveCertificateData& certData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:511,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:511,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:511,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:512,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:512,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:514,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:515,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:517,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:522,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:523,1
    - Dst: ASN1_ENCODE_OBJECT_ID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:528,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:545,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:547,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:548,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - ' reader'
    - ' writer'
    - ' certData'
    argTypes:
    - TLVReader
    - ASN1Writer
    - WeaveCertificateData
    constantsTouched: []
    func_position:
      end: 550
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 550
    functionName: DecodeConvertExtendedKeyUsageExtension
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - ContextTag
    - VerifyOrExit
    - ASN1_ENCODE_OBJECT_ID
    - GetType
    - ExitContainer
    - GetTag
    - Get
    - SuccessOrExit
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeConvertExtendedKeyUsageExtension(TLVReader& reader, ASN1Writer&
      writer, WeaveCertificateData& certData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:574,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:576,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:577,1
    - Dst: ASN1_ENCODE_OBJECT_ID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:583,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:586,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:587,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:588,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:588,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:591,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:592,1
    - Dst: ASN1_ENCODE_BOOLEAN
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:594,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:596,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:597,1
    - Dst: if
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:606,1
    - Dst: DecodeConvertAuthorityKeyIdentifierExtension
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:607,1
    - Dst: DecodeConvertSubjectKeyIdentifierExtension
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:609,1
    - Dst: DecodeConvertKeyUsageExtension
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:611,1
    - Dst: DecodeConvertBasicConstraintsExtension
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:613,1
    - Dst: DecodeConvertExtendedKeyUsageExtension
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:615,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:618,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - ' reader'
    - ' writer'
    - ' certData'
    argTypes:
    - TLVReader
    - ASN1Writer
    - WeaveCertificateData
    constantsTouched: []
    func_position:
      end: 620
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 620
    functionName: DecodeConvertExtension
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - ASN1_ENCODE_BOOLEAN
    - DecodeConvertAuthorityKeyIdentifierExtension
    - DecodeConvertSubjectKeyIdentifierExtension
    - ContextTag
    - VerifyOrExit
    - ExitNow
    - ASN1_ENCODE_OBJECT_ID
    - GetTag
    - DecodeConvertKeyUsageExtension
    - Get
    - SuccessOrExit
    - if
    - DecodeConvertBasicConstraintsExtension
    - DecodeConvertExtendedKeyUsageExtension
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeConvertExtension(TLVReader& reader, ASN1Writer& writer, WeaveCertificateData&
      certData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_START_CONSTRUCTED
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:641,1
    - Dst: while
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:646,1
    - Dst: DecodeConvertExtension
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:648,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:649,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:652,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:653,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:654,1
    - Dst: IsCertificateExtensionTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - ' reader'
    - ' writer'
    - ' certData'
    argTypes:
    - TLVReader
    - ASN1Writer
    - WeaveCertificateData
    constantsTouched: []
    func_position:
      end: 665
      start: 635
    functionDepth: 2
    functionLinenumber: 635
    functionLinenumberEnd: 665
    functionName: DecodeConvertExtensions
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp
    functionUses: 0
    functionsReached:
    - while
    - IsCertificateExtensionTag
    - DecodeConvertExtension
    - GetTag
    - ASN1_START_CONSTRUCTED
    - SuccessOrExit
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeConvertExtensions(TLVReader& reader, ASN1Writer& writer, WeaveCertificateData&
      certData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:671,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:671,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:672,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:672,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:672,1
    - Dst: PutBitString
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:674,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ' reader'
    - ' writer'
    - ' certData'
    argTypes:
    - TLVReader
    - ASN1Writer
    - WeaveCertificateData
    constantsTouched: []
    func_position:
      end: 679
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 679
    functionName: DecodeConvertRSASignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp
    functionUses: 0
    functionsReached:
    - PutBitString
    - ContextTag
    - VerifyOrExit
    - GetType
    - GetTag
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeConvertRSASignature(TLVReader& reader, ASN1Writer& writer, WeaveCertificateData&
      certData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:686,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:686,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:686,1
    - Dst: DecodeWeaveECDSASignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:688,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:689,1
    - Dst: PutValue
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:699,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:700,1
    - Dst: PutValue
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:703,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - ' reader'
    - ' writer'
    - ' certData'
    argTypes:
    - TLVReader
    - ASN1Writer
    - WeaveCertificateData
    constantsTouched: []
    func_position:
      end: 712
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 712
    functionName: DecodeConvertECDSASignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp
    functionUses: 0
    functionsReached:
    - DecodeWeaveECDSASignature
    - ContextTag
    - VerifyOrExit
    - PutValue
    - GetTag
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeConvertECDSASignature(TLVReader& reader, ASN1Writer& writer,
      WeaveCertificateData& certData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_START_CONSTRUCTED
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:726,1
    - Dst: ASN1_ENCODE_INTEGER
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:729,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:733,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:733,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:734,1
    - Dst: PutValue
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:738,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:739,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:745,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:745,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:746,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:748,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:749,1
    - Dst: ASN1_ENCODE_OBJECT_ID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:752,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ' reader'
    - ' writer'
    - ' certData'
    argTypes:
    - TLVReader
    - ASN1Writer
    - WeaveCertificateData
    constantsTouched: []
    func_position:
      end: 765
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 765
    functionName: DecodeConvertTBSCert
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp
    functionUses: 0
    functionsReached:
    - ContextTag
    - ASN1_ENCODE_INTEGER
    - ASN1_ENCODE_OBJECT_ID
    - PutValue
    - ASN1_START_CONSTRUCTED
    - SuccessOrExit
    - Get
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeConvertTBSCert(TLVReader& reader, ASN1Writer& writer, WeaveCertificateData&
      certData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:822,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:824,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:825,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:827,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:827,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:828,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:829,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:829,1
    - Dst: GetReadPoint
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:833,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:835,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:836,1
    - Dst: DecodeConvertTBSCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:842,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:843,1
    - Dst: ASN1_ENCODE_OBJECT_ID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:849,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - ' reader'
    - ' writer'
    - ' certData'
    argTypes:
    - TLVReader
    - ASN1Writer
    - WeaveCertificateData
    constantsTouched: []
    func_position:
      end: 860
      start: 816
    functionDepth: 1
    functionLinenumber: 816
    functionLinenumberEnd: 860
    functionName: DecodeConvertCert
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - DecodeConvertTBSCert
    - VerifyOrExit
    - ProfileTag
    - ASN1_ENCODE_OBJECT_ID
    - GetType
    - GetReadPoint
    - GetTag
    - SuccessOrExit
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeConvertCert(TLVReader& reader, ASN1Writer& writer, WeaveCertificateData&
      certData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:897,1
    - Dst: ASN1Writer::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:899,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:901,1
    - Dst: DecodeConvertCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:903,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:904,1
    - Dst: ASN1Writer::Finalize
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:906,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:907,1
    - Dst: ASN1Writer::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - weaveCert
    - weaveCertLen
    - x509CertBuf
    - x509CertBufSize
    - ' x509CertLen'
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 913
      start: 890
    functionDepth: 2
    functionLinenumber: 890
    functionLinenumberEnd: 913
    functionName: WEAVE_ERROR::ConvertWeaveCertToX509Cert
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - ASN1Writer::GetLengthWritten
    - ASN1Writer::Init
    - DecodeConvertCert
    - memset
    - ASN1Writer::Finalize
    - SuccessOrExit
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: WEAVE_ERROR ConvertWeaveCertToX509Cert(const uint8_t *weaveCert, uint32_t
      weaveCertLen, uint8_t *x509CertBuf, uint32_t x509CertBufSize, uint32_t& x509CertLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:919,1
    - Dst: DecodeWeaveCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - weaveCert
    - weaveCertLen
    - ' certData'
    argTypes:
    - uint8_t*
    - uint32_t
    - WeaveCertificateData
    constantsTouched: []
    func_position:
      end: 921
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 921
    functionName: DecodeWeaveCert
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp
    functionUses: 2
    functionsReached:
    - TLVReader::Init
    - DecodeWeaveCert
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeWeaveCert(const uint8_t *weaveCert, uint32_t weaveCertLen, WeaveCertificateData&
      certData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1Writer::InitNullWriter
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:927,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:928,1
    - Dst: DecodeConvertCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' reader'
    - ' certData'
    argTypes:
    - TLVReader
    - WeaveCertificateData
    constantsTouched: []
    func_position:
      end: 930
      start: 923
    functionDepth: 2
    functionLinenumber: 923
    functionLinenumberEnd: 930
    functionName: DecodeWeaveCert
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp
    functionUses: 2
    functionsReached:
    - DecodeConvertCert
    - ASN1Writer::InitNullWriter
    - memset
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeWeaveCert(TLVReader& reader, WeaveCertificateData& certData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1Writer::InitNullWriter
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:936,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:937,1
    - Dst: DecodeConvertDN
      Src: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' reader'
    - ' dn'
    argTypes:
    - TLVReader
    - WeaveDN
    constantsTouched: []
    func_position:
      end: 939
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 939
    functionName: DecodeWeaveDN
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp
    functionUses: 0
    functionsReached:
    - ASN1Writer::InitNullWriter
    - DecodeConvertDN
    - memset
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeWeaveDN(TLVReader& reader, WeaveDN& dn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::Reset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - keyExportDelegate
    - groupKeyStore
    argTypes:
    - WeaveKeyExportDelegate*
    - GroupKeyStoreBase*
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::Reset
    linkageType: ''
    returnType: void
    signature: WeaveKeyExport::Init(WeaveKeyExportDelegate *keyExportDelegate, GroupKeyStoreBase
      *groupKeyStore)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::Reset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::Reset
    linkageType: ''
    returnType: void
    signature: WeaveKeyExport::Shutdown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::Reset
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 2
    functionsReached:
    - ClearSecretData
    linkageType: ''
    returnType: void
    signature: WeaveKeyExport::Reset(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::IsInitiator
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveKeyExport::IsInitiator() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - config
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 87
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 87
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::IsAllowedConfig
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveKeyExport::IsAllowedConfig(uint8_t config) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::IsAllowedConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:98,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::IsAllowedConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:101,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:115,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::IsAllowedConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 119
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GenerateAltConfigsList
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::IsAllowedConfig
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveKeyExport::GenerateAltConfigsList(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::IsAllowedConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:131,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::IsAllowedConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:135,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:139,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 149
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::ValidateProtocolConfig
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 0
    functionsReached:
    - ExitNow
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::IsAllowedConfig
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveKeyExport::ValidateProtocolConfig(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:159,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GenerateAltConfigsList
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:172,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:173,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetECDHPublicKeyLen
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:177,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:178,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:184,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:187,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:191,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:194,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::AppendNewECDHKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:198,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:199,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::AppendSignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:205,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 6
    argNames:
    - buf
    - bufSize
    - ' msgLen'
    - proposedConfig
    - keyId
    - signMessages
    argTypes:
    - uint8_t*
    - uint16_t
    - uint16_t
    - uint8_t
    - uint32_t
    - bool
    constantsTouched: []
    func_position:
      end: 214
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 214
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GenerateKeyExportRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::AppendSignature
    - Write8
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GenerateAltConfigsList
    - VerifyOrExit
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetECDHPublicKeyLen
    - SuccessOrExit
    - nl::Weave::Encoding::LittleEndian::Write32
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::AppendNewECDHKey
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveKeyExport::GenerateKeyExportRequest(uint8_t *buf, uint16_t bufSize,
      uint16_t& msgLen, uint8_t proposedConfig,\n                                                     uint32_t
      keyId, bool signMessages)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:224,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:230,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:234,1
    - Dst: Read8
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:240,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:243,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:249,1
    - Dst: Read8
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:255,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:259,1
    - Dst: Read8
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:263,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::ValidateProtocolConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:271,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:272,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetECDHPublicKeyLen
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:275,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:276,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:279,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:282,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetECDHPublicKeyLen
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:282,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetECDHPublicKeyLen
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:285,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::VerifySignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:291,1
    - Dst: ValidateUnsignedKeyExportMessage
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:297,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:299,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 3
    argNames:
    - buf
    - msgSize
    - msgInfo
    argTypes:
    - uint8_t*
    - uint16_t
    - WeaveMessageInfo*
    constantsTouched: []
    func_position:
      end: 312
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 312
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::ProcessKeyExportRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Read32
    - VerifyOrExit
    - memcpy
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::VerifySignature
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::ValidateProtocolConfig
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetECDHPublicKeyLen
    - SuccessOrExit
    - Read8
    - ValidateUnsignedKeyExportMessage
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveKeyExport::ProcessKeyExportRequest(const uint8_t *buf, uint16_t
      msgSize, const WeaveMessageInfo *msgInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:323,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetECDHPublicKeyLen
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:326,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:327,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:337,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::AppendNewECDHKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:345,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:346,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::EncryptExportedKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:349,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:350,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:353,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put16
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:356,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::AppendSignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:362,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 4
    argNames:
    - buf
    - bufSize
    - ' msgLen'
    - msgInfo
    argTypes:
    - uint8_t*
    - uint16_t
    - uint16_t
    - WeaveMessageInfo*
    constantsTouched: []
    func_position:
      end: 372
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 372
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GenerateKeyExportResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::AppendSignature
    - Write8
    - VerifyOrExit
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetECDHPublicKeyLen
    - SuccessOrExit
    - nl::Weave::Encoding::LittleEndian::Write32
    - nl::Weave::Encoding::LittleEndian::Put16
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::AppendNewECDHKey
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::EncryptExportedKey
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveKeyExport::GenerateKeyExportResponse(uint8_t *buf, uint16_t bufSize,
      uint16_t& msgLen, const WeaveMessageInfo *msgInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:384,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:387,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:391,1
    - Dst: Read8
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:397,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:400,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:406,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:409,1
    - Dst: nl::Weave::WeaveKeyId::UsesCurrentEpochKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:412,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:415,1
    - Dst: nl::Weave::WeaveKeyId::UsesCurrentEpochKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:415,1
    - Dst: nl::Weave::WeaveKeyId::ConvertToCurrentAppKeyId
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:416,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:421,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:425,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:428,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetECDHPublicKeyLen
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:434,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:435,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::VerifySignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:441,1
    - Dst: ValidateUnsignedKeyExportMessage
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:447,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:449,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::DecryptExportedKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:452,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:453,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 7
    argNames:
    - buf
    - msgSize
    - msgInfo
    - exportedKeyBuf
    - exportedKeyBufSize
    - exportedKeyLen
    - exportedKeyId
    argTypes:
    - uint8_t*
    - uint16_t
    - WeaveMessageInfo*
    - uint8_t*
    - uint16_t
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 463
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 463
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::ProcessKeyExportResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::DecryptExportedKey
    - nl::Weave::WeaveKeyId::UsesCurrentEpochKey
    - Read8
    - VerifyOrExit
    - SuccessOrExit
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::VerifySignature
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetECDHPublicKeyLen
    - nl::Weave::Encoding::LittleEndian::Read32
    - nl::Weave::Encoding::LittleEndian::Read16
    - nl::Weave::WeaveKeyId::ConvertToCurrentAppKeyId
    - ValidateUnsignedKeyExportMessage
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveKeyExport::ProcessKeyExportResponse(const uint8_t *buf, uint16_t
      msgSize, const WeaveMessageInfo *msgInfo,\n                                                     uint8_t
      *exportedKeyBuf, uint16_t exportedKeyBufSize, uint16_t &exportedKeyLen, uint32_t
      &exportedKeyId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:470,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:473,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:476,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::IsAllowedConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:476,1
    - Dst: Put8
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - buf
    - bufSize
    - ' msgLen'
    argTypes:
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 489
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 489
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GenerateKeyExportReconfigure
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 0
    functionsReached:
    - Put8
    - VerifyOrExit
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::IsAllowedConfig
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveKeyExport::GenerateKeyExportReconfigure(uint8_t *buf, uint16_t
      bufSize, uint16_t& msgLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:496,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:499,1
    - Dst: Get8
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:502,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:505,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::IsAllowedConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - buf
    - msgSize
    - config
    argTypes:
    - uint8_t*
    - uint16_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 512
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 512
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::ProcessKeyExportReconfigure
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 0
    functionsReached:
    - Get8
    - VerifyOrExit
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::IsAllowedConfig
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveKeyExport::ProcessKeyExportReconfigure(const uint8_t *buf, uint16_t
      msgSize, uint8_t &config)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetECDHPublicKeyLen
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:523,1
    - Dst: GenerateECDHKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:526,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetCurveOID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:526,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 537
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 537
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::AppendNewECDHKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetCurveOID
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetECDHPublicKeyLen
    - GenerateECDHKey
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveKeyExport::AppendNewECDHKey(uint8_t *& buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:542,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:543,1
    - Dst: SHA256::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - msgStart
    - msgLen
    - msgHash
    argTypes:
    - uint8_t*
    - uint16_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 545
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 545
    functionName: nl::Weave::Profiles::Security::KeyExport::GenerateSHA256Hash
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 0
    functionsReached:
    - SHA256::Begin
    - SHA256::AddData
    - SHA256::Finish
    linkageType: ''
    returnType: void
    signature: GenerateSHA256Hash(const uint8_t * msgStart, uint16_t msgLen, uint8_t
      * msgHash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KeyExportSignatureGenerator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:553,1
    - Dst: KeyExportDelegate::GenerateNodeSignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 566
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 566
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveSignatureGeneratorBase
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 0
    functionsReached:
    - KeyExportDelegate::GenerateNodeSignature
    - KeyExportSignatureGenerator
    linkageType: ''
    returnType: class KeyExportSignatureGenerator
    signature: WeaveSignatureGeneratorBase
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KeyExportSignatureGenerator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:574,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveSignatureGenerator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:575,1
    - Dst: mKeyExportObj
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:575,1
    - Dst: KeyExportDelegate::GetNodePrivateKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:584,1
    - Dst: IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:584,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:585,1
    - Dst: nl::Weave::Profiles::Security::WeaveSignatureGenerator::GenerateSignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:587,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:588,1
    - Dst: KeyExportDelegate::ReleaseNodePrivateKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:593,1
    - Dst: IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 604
      start: 570
    functionDepth: 3
    functionLinenumber: 570
    functionLinenumberEnd: 604
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveSignatureGenerator
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 1
    functionsReached:
    - KeyExportDelegate::GetNodePrivateKey
    - mKeyExportObj
    - nl::Weave::Profiles::Security::KeyExport::WeaveSignatureGenerator
    - IsInitiator
    - nl::Weave::Profiles::Security::WeaveSignatureGenerator::GenerateSignature
    - KeyExportSignatureGenerator
    - SuccessOrExit
    - KeyExportDelegate::ReleaseNodePrivateKey
    linkageType: ''
    returnType: class KeyExportSignatureGenerator
    signature: WeaveSignatureGenerator
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:616,1
    - Dst: GetNodeCertSet
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:619,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:620,1
    - Dst: GenerateSHA256Hash
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:628,1
    - Dst: KeyExportSignatureGenerator::GenerateSignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:637,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:638,1
    - Dst: ReleaseNodeCertSet
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:647,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - msgStart
    - msgBufSize
    - ' msgLen'
    argTypes:
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 653
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 653
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::AppendSignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 2
    functionsReached:
    - GetNodeCertSet
    - KeyExportSignatureGenerator::GenerateSignature
    - VerifyOrExit
    - ReleaseNodeCertSet
    - GenerateSHA256Hash
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveKeyExport::AppendSignature(uint8_t * msgStart, uint16_t msgBufSize,
      uint16_t & msgLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ValidationContext::Reset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:667,1
    - Dst: BeginCertValidation
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:668,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:669,1
    - Dst: GenerateSHA256Hash
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:676,1
    - Dst: VerifyWeaveSignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:683,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:686,1
    - Dst: HandleCertValidationResult
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:693,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:694,1
    - Dst: EndCertValidation
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 4
    argNames:
    - msgStart
    - msgBufSize
    - ' msgLen'
    - msgInfo
    argTypes:
    - uint8_t*
    - uint16_t
    - uint16_t
    - WeaveMessageInfo*
    constantsTouched: []
    func_position:
      end: 705
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 705
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::VerifySignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 2
    functionsReached:
    - HandleCertValidationResult
    - BeginCertValidation
    - EndCertValidation
    - VerifyWeaveSignature
    - GenerateSHA256Hash
    - SuccessOrExit
    - ValidationContext::Reset
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveKeyExport::VerifySignature(const uint8_t *msgStart, uint16_t
      msgBufSize, uint16_t& msgLen,\n                                            const
      WeaveMessageInfo *msgInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:713,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::ComputeSharedSecret
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:716,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:717,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::DeriveKeyEncryptionKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:720,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:721,1
    - Dst: GetGroupKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:724,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:725,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:732,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::EncryptDecryptKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:735,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::AuthenticateKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:738,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 4
    argNames:
    - ' buf'
    - bufSize
    - ' msgLen'
    - ' exportedKeyLen'
    argTypes:
    - uint8_t*
    - uint16_t
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 750
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 750
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::EncryptExportedKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 1
    functionsReached:
    - ClearSecretData
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::DeriveKeyEncryptionKey
    - VerifyOrExit
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::AuthenticateKey
    - GetGroupKey
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::EncryptDecryptKey
    - SuccessOrExit
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::ComputeSharedSecret
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveKeyExport::EncryptExportedKey(uint8_t *& buf, uint16_t bufSize,
      uint16_t& msgLen, uint16_t& exportedKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::ComputeSharedSecret
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:759,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:760,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::DeriveKeyEncryptionKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:763,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:764,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetECDHPublicKeyLen
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:767,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::AuthenticateKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:770,1
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:773,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:774,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::EncryptDecryptKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - ' buf'
    - exportedKey
    - exportedKeyLen
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 784
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 784
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::DecryptExportedKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 1
    functionsReached:
    - memcmp
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::AuthenticateKey
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::DeriveKeyEncryptionKey
    - VerifyOrExit
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::EncryptDecryptKey
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetECDHPublicKeyLen
    - SuccessOrExit
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::ComputeSharedSecret
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveKeyExport::DecryptExportedKey(const uint8_t *& buf, uint8_t *exportedKey,
      uint16_t exportedKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetECDHPublicKeyLen
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:793,1
    - Dst: ECDHComputeSharedSecret
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:796,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetCurveOID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:796,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - peerPubKey
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 801
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 801
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::ComputeSharedSecret
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 2
    functionsReached:
    - ECDHComputeSharedSecret
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetCurveOID
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetECDHPublicKeyLen
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveKeyExport::ComputeSharedSecret(const uint8_t *peerPubKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:812,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put32
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:813,1
    - Dst: HKDFSHA256::DeriveKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:816,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 824
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 824
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::DeriveKeyEncryptionKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 2
    functionsReached:
    - HKDFSHA256::DeriveKey
    - memcpy
    - nl::Weave::Encoding::LittleEndian::Put32
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveKeyExport::DeriveKeyEncryptionKey(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES128CTRMode::SetKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:831,1
    - Dst: AES128CTRMode::EncryptData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:834,1
    - Dst: AES128CTRMode::Reset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - keyIn
    - keyOut
    - keyLen
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 838
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 838
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::EncryptDecryptKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 2
    functionsReached:
    - AES128CTRMode::Reset
    - AES128CTRMode::EncryptData
    - AES128CTRMode::SetKey
    linkageType: ''
    returnType: void
    signature: WeaveKeyExport::EncryptDecryptKey(const uint8_t *keyIn, uint8_t *keyOut,
      uint8_t keyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HMACSHA256::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:845,1
    - Dst: HMACSHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:848,1
    - Dst: HMACSHA256::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:851,1
    - Dst: HMACSHA256::Reset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - key
    - keyLen
    - authenticator
    argTypes:
    - uint8_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 855
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 855
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::AuthenticateKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 2
    functionsReached:
    - HMACSHA256::Finish
    - HMACSHA256::Begin
    - HMACSHA256::Reset
    - HMACSHA256::AddData
    linkageType: ''
    returnType: void
    signature: WeaveKeyExport::AuthenticateKey(const uint8_t *key, uint8_t keyLen,
      uint8_t* authenticator)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 866
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 866
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetECDHPublicKeyLen
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: WeaveKeyExport::GetECDHPublicKeyLen(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 877
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 877
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetCurveOID
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: OID
    signature: WeaveKeyExport::GetCurveOID(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: nl::Weave::Profiles::Security::DefaultAlloc
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: '*DefaultAlloc(size_t size)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: nl::Weave::Profiles::Security::DefaultFree
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: DefaultFree(void *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::WeaveCertificateSet::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - maxCerts
    - decodeBufSize
    argTypes:
    - uint8_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: nl::Weave::Profiles::Security::WeaveCertificateSet::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::WeaveCertificateSet::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCertificateSet::Init(uint8_t maxCerts, uint16_t decodeBufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: nl::Weave::Profiles::Security::WeaveCertificateSet::WeaveCertificateSet
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: WeaveCertificateSet::WeaveCertificateSet()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: allocFunct
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:84,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - maxCerts
    - decodeBufSize
    - allocFunct
    - freeFunct
    argTypes:
    - uint8_t
    - uint16_t
    - AllocFunct
    - FreeFunct
    constantsTouched: []
    func_position:
      end: 98
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 98
    functionName: nl::Weave::Profiles::Security::WeaveCertificateSet::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 1
    functionsReached:
    - allocFunct
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCertificateSet::Init(uint8_t maxCerts, uint16_t decodeBufSize,
      AllocFunct allocFunct, FreeFunct freeFunct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - certsArray
    - certArraySize
    - decodeBuf
    - decodeBufSize
    argTypes:
    - WeaveCertificateData*
    - uint8_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 110
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 110
    functionName: nl::Weave::Profiles::Security::WeaveCertificateSet::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCertificateSet::Init(WeaveCertificateData *certsArray, uint8_t
      certArraySize, uint8_t *decodeBuf, uint16_t decodeBufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mFreeFunct
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:118,1
    - Dst: mFreeFunct
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 127
    functionName: nl::Weave::Profiles::Security::WeaveCertificateSet::Release
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 0
    functionsReached:
    - mFreeFunct
    linkageType: ''
    returnType: void
    signature: WeaveCertificateSet::Release()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: nl::Weave::Profiles::Security::WeaveCertificateSet::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: WeaveCertificateSet::Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubjectKeyId::IsEqual
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' subjectKeyId'
    argTypes:
    - CertificateKeyId
    constantsTouched: []
    func_position:
      end: 144
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 144
    functionName: nl::Weave::Profiles::Security::WeaveCertificateSet::FindCert
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 0
    functionsReached:
    - SubjectKeyId::IsEqual
    linkageType: ''
    returnType: WeaveCertificateData
    signature: '*WeaveCertificateSet::FindCert(const CertificateKeyId& subjectKeyId)
      const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:151,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:154,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:154,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:155,1
    - Dst: nl::Weave::Profiles::Security::WeaveCertificateSet::LoadCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - weaveCert
    - weaveCertLen
    - decodeFlags
    - ' cert'
    argTypes:
    - uint8_t*
    - uint32_t
    - uint16_t
    - WeaveCertificateData*
    constantsTouched: []
    func_position:
      end: 161
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 161
    functionName: nl::Weave::Profiles::Security::WeaveCertificateSet::LoadCert
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Init
    - TLVReader::Next
    - ProfileTag
    - SuccessOrExit
    - nl::Weave::Profiles::Security::WeaveCertificateSet::LoadCert
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCertificateSet::LoadCert(const uint8_t *weaveCert, uint32_t weaveCertLen,
      uint16_t decodeFlags, WeaveCertificateData *& cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:172,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:172,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:175,1
    - Dst: mAllocFunct
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:178,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:179,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:182,1
    - Dst: GetReadPoint
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:185,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:191,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:192,1
    - Dst: ASN1Writer::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:197,1
    - Dst: DecodeConvertTBSCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:198,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:199,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:205,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:210,1
    - Dst: ASN1Writer::Finalize
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:217,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:218,1
    - Dst: Platform::Security::SHA1::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:224,1
    - Dst: Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:225,1
    - Dst: ASN1Writer::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:225,1
    - Dst: Platform::Security::SHA1::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:226,1
    - Dst: Platform::Security::SHA256::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:231,1
    - Dst: Platform::Security::SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:232,1
    - Dst: ASN1Writer::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:232,1
    - Dst: Platform::Security::SHA256::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:233,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:244,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:244,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:245,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:245,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:245,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:247,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:248,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:251,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:251,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:252,1
    - Dst: GetDataPtr
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:253,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:254,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:255,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:258,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:258,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:259,1
    - Dst: GetDataPtr
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:260,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:261,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:262,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:264,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:265,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:268,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:269,1
    - Dst: GetReadPoint
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:273,1
    - Dst: DetermineCertType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:284,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:285,1
    - Dst: mFreeFunct
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:289,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 64
    argCount: 3
    argNames:
    - ' reader'
    - decodeFlags
    - ' cert'
    argTypes:
    - TLVReader
    - uint16_t
    - WeaveCertificateData*
    constantsTouched: []
    func_position:
      end: 291
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 291
    functionName: nl::Weave::Profiles::Security::WeaveCertificateSet::LoadCert
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 1
    functionsReached:
    - EnterContainer
    - ASN1Writer::GetLengthWritten
    - Platform::Security::SHA256::AddData
    - GetReadPoint
    - mFreeFunct
    - Platform::Security::SHA1::Begin
    - DecodeConvertTBSCert
    - VerifyOrExit
    - DetermineCertType
    - memset
    - GetTag
    - ExitContainer
    - Platform::Security::SHA1::Finish
    - Platform::Security::SHA1::AddData
    - Next
    - ASN1Writer::Init
    - GetLength
    - GetDataPtr
    - ContextTag
    - ASN1Writer::Finalize
    - GetType
    - mAllocFunct
    - SuccessOrExit
    - Platform::Security::SHA256::Begin
    - Platform::Security::SHA256::Finish
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCertificateSet::LoadCert(TLVReader& reader, uint16_t decodeFlags,
      WeaveCertificateData *& cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:300,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:303,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:304,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:306,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:307,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:309,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:309,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:310,1
    - Dst: nl::Weave::Profiles::Security::WeaveCertificateSet::LoadCerts
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:313,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - encodedCerts
    - encodedCertsLen
    - decodeFlags
    argTypes:
    - uint8_t*
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 317
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 317
    functionName: nl::Weave::Profiles::Security::WeaveCertificateSet::LoadCerts
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Init
    - TLVReader::Next
    - TLVReader::GetType
    - VerifyOrExit
    - ProfileTag
    - TLVReader::GetTag
    - nl::Weave::Profiles::Security::WeaveCertificateSet::LoadCerts
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCertificateSet::LoadCerts(const uint8_t *encodedCerts, uint32_t
      encodedCertsLen, uint16_t decodeFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:325,1
    - Dst: nl::Weave::Profiles::Security::WeaveCertificateSet::LoadCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:327,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:328,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:337,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:338,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:340,1
    - Dst: nl::Weave::Profiles::Security::WeaveCertificateSet::LoadCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:342,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:343,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:346,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:348,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - ' reader'
    - decodeFlags
    argTypes:
    - TLVReader
    - uint16_t
    constantsTouched: []
    func_position:
      end: 354
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 354
    functionName: nl::Weave::Profiles::Security::WeaveCertificateSet::LoadCerts
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 1
    functionsReached:
    - EnterContainer
    - ExitNow
    - GetType
    - ExitContainer
    - SuccessOrExit
    - nl::Weave::Profiles::Security::WeaveCertificateSet::LoadCert
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCertificateSet::LoadCerts(TLVReader& reader, uint16_t decodeFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:363,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 5
    argNames:
    - caId
    - curveId
    - ' pubKey'
    - pubKeyId
    - pubKeyIdLen
    argTypes:
    - uint64_t
    - uint32_t
    - EncodedECPublicKey
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 384
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 384
    functionName: nl::Weave::Profiles::Security::WeaveCertificateSet::AddTrustedKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - memset
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveCertificateSet::AddTrustedKey(uint64_t caId, uint32_t curveId,
      const EncodedECPublicKey& pubKey,\n                                               const
      uint8_t *pubKeyId, uint16_t pubKeyIdLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PutPreEncodedContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:392,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:393,1
    - Dst: PutPreEncodedContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:401,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:402,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - ' writer'
    - firstCert
    - includeTrusted
    argTypes:
    - TLVWriter
    - WeaveCertificateData*
    - bool
    constantsTouched: []
    func_position:
      end: 408
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 408
    functionName: nl::Weave::Profiles::Security::WeaveCertificateSet::SaveCerts
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 0
    functionsReached:
    - PutPreEncodedContainer
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCertificateSet::SaveCerts(TLVWriter& writer, WeaveCertificateData
      *firstCert, bool includeTrusted)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:414,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:420,1
    - Dst: nl::Weave::Profiles::Security::WeaveCertificateSet::ValidateCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:430,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' cert'
    - ' context'
    argTypes:
    - WeaveCertificateData
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 434
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 434
    functionName: nl::Weave::Profiles::Security::WeaveCertificateSet::ValidateCert
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::WeaveCertificateSet::ValidateCert
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCertificateSet::ValidateCert(WeaveCertificateData& cert, ValidationContext&
      context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:445,1
    - Dst: nl::Weave::Profiles::Security::WeaveCertificateSet::FindValidCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:455,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - ' subjectDN'
    - ' subjectKeyId'
    - ' context'
    - ' cert'
    argTypes:
    - WeaveDN
    - CertificateKeyId
    - ValidationContext
    - WeaveCertificateData*
    constantsTouched: []
    func_position:
      end: 460
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 460
    functionName: nl::Weave::Profiles::Security::WeaveCertificateSet::FindValidCert
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 1
    functionsReached:
    - VerifyOrExit
    - nl::Weave::Profiles::Security::WeaveCertificateSet::FindValidCert
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveCertificateSet::FindValidCert(const WeaveDN& subjectDN, const
      CertificateKeyId& subjectKeyId,\n        ValidationContext& context, WeaveCertificateData
      *& cert)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::GenerateECDSASignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:467,1
    - Dst: WeaveCurveIdToOID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - msgHash
    - msgHashLen
    - ' cert'
    - ' privKey'
    - ' encodedSig'
    argTypes:
    - uint8_t*
    - uint8_t
    - WeaveCertificateData
    - nl::Weave::Crypto::EncodedECPrivateKey
    - nl::Weave::Crypto::EncodedECDSASignature
    constantsTouched: []
    func_position:
      end: 469
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 469
    functionName: nl::Weave::Profiles::Security::WeaveCertificateSet::GenerateECDSASignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::GenerateECDSASignature
    - WeaveCurveIdToOID
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveCertificateSet::GenerateECDSASignature(const uint8_t *msgHash,
      uint8_t msgHashLen,\n                                                        WeaveCertificateData&
      cert,\n                                                        const nl::Weave::Crypto::EncodedECPrivateKey&
      privKey,\n                                                        nl::Weave::Crypto::EncodedECDSASignature&
      encodedSig)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::VerifyECDSASignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:475,1
    - Dst: WeaveCurveIdToOID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - msgHash
    - msgHashLen
    - ' encodedSig'
    - ' cert'
    argTypes:
    - uint8_t*
    - uint8_t
    - nl::Weave::Crypto::EncodedECDSASignature
    - WeaveCertificateData
    constantsTouched: []
    func_position:
      end: 477
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 477
    functionName: nl::Weave::Profiles::Security::WeaveCertificateSet::VerifyECDSASignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::VerifyECDSASignature
    - WeaveCurveIdToOID
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveCertificateSet::VerifyECDSASignature(const uint8_t *msgHash,
      uint8_t msgHashLen,\n                                                      const
      nl::Weave::Crypto::EncodedECDSASignature& encodedSig,\n                                                      WeaveCertificateData&
      cert)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:490,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:493,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:498,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:508,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:517,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:524,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:530,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:535,1
    - Dst: PackedCertDateToTime
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:535,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:537,1
    - Dst: PackedCertDateToTime
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:537,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:544,1
    - Dst: IssuerDN::IsEqual
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:552,1
    - Dst: AuthKeyId::IsEqual
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:552,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:553,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:558,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:562,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:566,1
    - Dst: nl::Weave::Profiles::Security::WeaveCertificateSet::FindValidCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:574,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:576,1
    - Dst: nl::Weave::Profiles::Security::WeaveCertificateSet::VerifyECDSASignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:583,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:584,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 43
    argCount: 4
    argNames:
    - ' cert'
    - ' context'
    - validateFlags
    - depth
    argTypes:
    - WeaveCertificateData
    - ValidationContext
    - uint16_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 594
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 594
    functionName: nl::Weave::Profiles::Security::WeaveCertificateSet::ValidateCert
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::WeaveCertificateSet::FindValidCert
    - nl::Weave::Profiles::Security::WeaveCertificateSet::VerifyECDSASignature
    - PackedCertDateToTime
    - VerifyOrExit
    - ExitNow
    - AuthKeyId::IsEqual
    - IssuerDN::IsEqual
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCertificateSet::ValidateCert(WeaveCertificateData& cert, ValidationContext&
      context, uint16_t validateFlags, uint8_t depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:605,1
    - Dst: IsEmpty
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:605,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:606,1
    - Dst: IsEmpty
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:614,1
    - Dst: SubjectDN::IsEqual
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:614,1
    - Dst: IsEmpty
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:616,1
    - Dst: SubjectKeyId::IsEqual
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:616,1
    - Dst: nl::Weave::Profiles::Security::WeaveCertificateSet::ValidateCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:622,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:626,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 6
    argNames:
    - ' subjectDN'
    - ' subjectKeyId'
    - ' context'
    - validateFlags
    - depth
    - ' cert'
    argTypes:
    - WeaveDN
    - CertificateKeyId
    - ValidationContext
    - uint16_t
    - uint8_t
    - WeaveCertificateData*
    constantsTouched: []
    func_position:
      end: 634
      start: 596
    functionDepth: 2
    functionLinenumber: 596
    functionLinenumberEnd: 634
    functionName: nl::Weave::Profiles::Security::WeaveCertificateSet::FindValidCert
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 2
    functionsReached:
    - SubjectKeyId::IsEqual
    - ExitNow
    - IsEmpty
    - SubjectDN::IsEqual
    - nl::Weave::Profiles::Security::WeaveCertificateSet::ValidateCert
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveCertificateSet::FindValidCert(const WeaveDN& subjectDN, const
      CertificateKeyId& subjectKeyId,\n        ValidationContext& context, uint16_t
      validateFlags, uint8_t depth, WeaveCertificateData *& cert)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:662,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - ' cert'
    argTypes:
    - WeaveCertificateData
    constantsTouched: []
    func_position:
      end: 696
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 696
    functionName: nl::Weave::Profiles::Security::DetermineCertType
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DetermineCertType(WeaveCertificateData& cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsWeaveIdX509Attr
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:703,1
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:707,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - WeaveDN
    constantsTouched: []
    func_position:
      end: 708
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 708
    functionName: nl::Weave::Profiles::Security::WeaveDN::IsEqual
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - IsWeaveIdX509Attr
    linkageType: ''
    returnType: bool
    signature: WeaveDN::IsEqual(const WeaveDN& other) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:712,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CertificateKeyId
    constantsTouched: []
    func_position:
      end: 713
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 713
    functionName: nl::Weave::Profiles::Security::CertificateKeyId::IsEqual
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: CertificateKeyId::IsEqual(const CertificateKeyId& other) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' time'
    - ' packedTime'
    argTypes:
    - ASN1UniversalTime
    - uint32_t
    constantsTouched: []
    func_position:
      end: 779
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 779
    functionName: nl::Weave::Profiles::Security::WEAVE_ERROR::PackCertTime
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: WEAVE_ERROR PackCertTime(const ASN1UniversalTime& time, uint32_t& packedTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - packedTime
    - ' time'
    argTypes:
    - uint32_t
    - ASN1UniversalTime
    constantsTouched: []
    func_position:
      end: 833
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 833
    functionName: nl::Weave::Profiles::Security::WEAVE_ERROR::UnpackCertTime
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: WEAVE_ERROR UnpackCertTime(uint32_t packedTime, ASN1UniversalTime&
      time)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - packedTime
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 855
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 855
    functionName: nl::Weave::Profiles::Security::PackedCertTimeToDate
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: PackedCertTimeToDate(uint32_t packedTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - packedDate
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 871
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 871
    functionName: nl::Weave::Profiles::Security::PackedCertDateToTime
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: PackedCertDateToTime(uint16_t packedDate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SecondsSinceEpochToCalendarTime
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:890,1
    - Dst: PackCertTime
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - secondsSinceEpoch
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 896
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 896
    functionName: nl::Weave::Profiles::Security::SecondsSinceEpochToPackedCertTime
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 0
    functionsReached:
    - PackCertTime
    - SecondsSinceEpochToCalendarTime
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: SecondsSinceEpochToPackedCertTime(uint32_t secondsSinceEpoch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:928,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:930,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:932,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:934,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:934,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:935,1
    - Dst: nl::Weave::Platform::Security::GetSecureRandomData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:948,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:949,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:957,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:957,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:958,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:962,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:962,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:962,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:963,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:967,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:967,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:968,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:970,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:970,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:971,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:973,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:974,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:978,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:978,1
    - Dst: PackedCertDateToTime
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:978,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:979,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:981,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:981,1
    - Dst: PackedCertDateToTime
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:981,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:982,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:986,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:986,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:987,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:989,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:989,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:990,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:992,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:993,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:997,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:997,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:997,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:998,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1001,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1001,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1001,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1002,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1005,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1005,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1006,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1010,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1010,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1011,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1014,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1014,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1015,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1017,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1018,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1023,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1023,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1024,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1027,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1027,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1028,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1030,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1030,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1030,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1031,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1033,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1034,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1039,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1039,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1040,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1043,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1043,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1044,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1046,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1046,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1047,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1050,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1050,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1051,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1054,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1054,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1055,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1057,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1058,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1060,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1061,1
    - Dst: Platform::Security::SHA1::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1084,1
    - Dst: Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1085,1
    - Dst: Platform::Security::SHA1::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1086,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1093,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1093,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1094,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1096,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1096,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1097,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1099,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1100,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1105,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1105,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1106,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1108,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1108,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1109,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1111,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1112,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1121,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1121,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1122,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1134,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1137,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1137,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1138,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1141,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1142,1
    - Dst: static_cast<uint8_t *>
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1145,1
    - Dst: nl::Weave::Platform::Security::MemoryAlloc
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1145,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1146,1
    - Dst: static_cast<WeaveCertificateData *>
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1149,1
    - Dst: nl::Weave::Platform::Security::MemoryAlloc
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1149,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1150,1
    - Dst: ASN1Writer::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1154,1
    - Dst: DecodeConvertTBSCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1155,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1156,1
    - Dst: ASN1Writer::Finalize
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1159,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1160,1
    - Dst: Platform::Security::SHA256::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1164,1
    - Dst: Platform::Security::SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1165,1
    - Dst: ASN1Writer::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1165,1
    - Dst: Platform::Security::SHA256::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1166,1
    - Dst: genCertSignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1176,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1177,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1180,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1180,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1181,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1184,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1184,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1185,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1188,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1189,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1191,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1192,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1194,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1195,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1197,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1197,1
    - Dst: nl::Weave::Platform::Security::MemoryFree
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1202,1
    - Dst: nl::Weave::Platform::Security::MemoryFree
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp:1207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 136
    argCount: 6
    argNames:
    - deviceId
    - ' devicePubKey'
    - cert
    - certBufSize
    - ' certLen'
    - genCertSignature
    argTypes:
    - uint64_t
    - EncodedECPublicKey
    - uint8_t*
    - uint16_t
    - uint16_t
    - GenerateECDSASignatureFunct
    constantsTouched: []
    func_position:
      end: 1211
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 1211
    functionName: nl::Weave::Profiles::Security::WEAVE_ERROR::GenerateOperationalDeviceCert
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
    functionUses: 0
    functionsReached:
    - ASN1Writer::GetLengthWritten
    - TLVReader::Next
    - TLVWriter::PutBoolean
    - static_cast<uint32_t>
    - Platform::Security::SHA256::AddData
    - PackedCertDateToTime
    - TLVWriter::Put
    - TLVReader::Init
    - Platform::Security::SHA1::Begin
    - DecodeConvertTBSCert
    - Platform::Security::SHA256::Begin
    - nl::Weave::Platform::Security::MemoryFree
    - VerifyOrExit
    - static_cast<uint8_t>
    - TLVWriter::GetLengthWritten
    - static_cast<uint16_t>
    - static_cast<WeaveCertificateData *>
    - genCertSignature
    - ProfileTag
    - TLVReader::EnterContainer
    - nl::Weave::Platform::Security::MemoryAlloc
    - Platform::Security::SHA1::Finish
    - Platform::Security::SHA1::AddData
    - nl::Weave::Platform::Security::GetSecureRandomData
    - ASN1Writer::Init
    - static_cast<uint8_t *>
    - TLVWriter::Finalize
    - ContextTag
    - TLVWriter::PutBytes
    - ASN1Writer::Finalize
    - SuccessOrExit
    - TLVWriter::Init
    - TLVWriter::EndContainer
    - Platform::Security::SHA256::Finish
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: "WEAVE_ERROR GenerateOperationalDeviceCert(uint64_t deviceId, EncodedECPublicKey&
      devicePubKey,\n                                                        uint8_t
      *cert, uint16_t certBufSize, uint16_t& certLen,\n                                                        GenerateECDSASignatureFunct
      genCertSignature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:73,1
    - Dst: nl::Weave::Profiles::Security::LoadAccessTokenCerts
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - accessToken
    - accessTokenLen
    - ' certSet'
    - decodeFlags
    - ' accessTokenCert'
    argTypes:
    - uint8_t*
    - uint32_t
    - WeaveCertificateSet
    - uint16_t
    - WeaveCertificateData*
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: nl::Weave::Profiles::Security::LoadAccessTokenCerts
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Init
    - nl::Weave::Profiles::Security::LoadAccessTokenCerts
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LoadAccessTokenCerts(const uint8_t *accessToken, uint32_t accessTokenLen,
      WeaveCertificateSet& certSet, uint16_t decodeFlags, WeaveCertificateData *&
      accessTokenCert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:109,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:109,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:110,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:113,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:114,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:117,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:117,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:118,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:122,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:123,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:126,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:126,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:127,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:130,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:130,1
    - Dst: LoadCerts
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:134,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:135,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:140,1
    - Dst: VerifyEndOfContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:144,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:145,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:148,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 4
    argNames:
    - ' reader'
    - ' certSet'
    - decodeFlags
    - ' accessTokenCert'
    argTypes:
    - TLVReader
    - WeaveCertificateSet
    - uint16_t
    - WeaveCertificateData*
    constantsTouched: []
    func_position:
      end: 153
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 153
    functionName: nl::Weave::Profiles::Security::LoadAccessTokenCerts
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp
    functionUses: 1
    functionsReached:
    - EnterContainer
    - LoadCert
    - LoadCerts
    - VerifyEndOfContainer
    - ContextTag
    - ProfileTag
    - ExitContainer
    - SuccessOrExit
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LoadAccessTokenCerts(TLVReader& reader, WeaveCertificateSet& certSet,
      uint16_t decodeFlags, WeaveCertificateData *& accessTokenCert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:187,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:189,1
    - Dst: nl::Weave::Profiles::Security::CASECertInfoFromAccessToken
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:192,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:193,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:195,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:196,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - accessToken
    - accessTokenLen
    - certInfoBuf
    - certInfoBufSize
    - ' certInfoLen'
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 202
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 202
    functionName: nl::Weave::Profiles::Security::CASECertInfoFromAccessToken
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Init
    - TLVWriter::Finalize
    - nl::Weave::Profiles::Security::CASECertInfoFromAccessToken
    - TLVWriter::GetLengthWritten
    - SuccessOrExit
    - TLVWriter::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CASECertInfoFromAccessToken(const uint8_t *accessToken, uint32_t accessTokenLen,
      uint8_t *certInfoBuf, uint16_t certInfoBufSize, uint16_t& certInfoLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:234,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:234,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:235,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:238,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:239,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:242,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:242,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:243,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:246,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:246,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:247,1
    - Dst: CopyContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:250,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:250,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:251,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:254,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:254,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:255,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:258,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:258,1
    - Dst: CopyContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:262,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:262,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:263,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:268,1
    - Dst: VerifyEndOfContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:272,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:273,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:276,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:277,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:280,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 2
    argNames:
    - ' reader'
    - ' writer'
    argTypes:
    - TLVReader
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 285
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 285
    functionName: nl::Weave::Profiles::Security::CASECertInfoFromAccessToken
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp
    functionUses: 1
    functionsReached:
    - EnterContainer
    - StartContainer
    - VerifyEndOfContainer
    - ContextTag
    - ProfileTag
    - ExitContainer
    - EndContainer
    - SuccessOrExit
    - Next
    - CopyContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CASECertInfoFromAccessToken(TLVReader& reader, TLVWriter& writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:315,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:315,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:316,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:319,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:320,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:323,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:323,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:324,1
    - Dst: CopyContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:327,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:328,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:331,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - ' reader'
    - ' writer'
    - tag
    argTypes:
    - TLVReader
    - TLVWriter
    - uint64_t
    constantsTouched: []
    func_position:
      end: 336
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 336
    functionName: nl::Weave::Profiles::Security::ExtractCertFromAccessToken
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - ContextTag
    - ProfileTag
    - ExitContainer
    - SuccessOrExit
    - Next
    - CopyContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ExtractCertFromAccessToken(TLVReader& reader, TLVWriter& writer, uint64_t
      tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:366,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:368,1
    - Dst: nl::Weave::Profiles::Security::ExtractPrivateKeyFromAccessToken
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:370,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:371,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:373,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:374,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 5
    argNames:
    - accessToken
    - accessTokenLen
    - privKeyBuf
    - privKeyBufSize
    - ' privKeyLen'
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 380
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 380
    functionName: nl::Weave::Profiles::Security::ExtractPrivateKeyFromAccessToken
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Init
    - TLVWriter::Finalize
    - nl::Weave::Profiles::Security::ExtractPrivateKeyFromAccessToken
    - TLVWriter::GetLengthWritten
    - SuccessOrExit
    - TLVWriter::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ExtractPrivateKeyFromAccessToken(const uint8_t *accessToken, uint32_t
      accessTokenLen, uint8_t *privKeyBuf, uint16_t privKeyBufSize, uint16_t& privKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:407,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:407,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:408,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:411,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:412,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:415,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:415,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:416,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:419,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:419,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:420,1
    - Dst: CopyContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:423,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:423,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:424,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:427,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - ' reader'
    - ' writer'
    argTypes:
    - TLVReader
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 432
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 432
    functionName: nl::Weave::Profiles::Security::ExtractPrivateKeyFromAccessToken
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp
    functionUses: 1
    functionsReached:
    - EnterContainer
    - ContextTag
    - ProfileTag
    - ExitContainer
    - SuccessOrExit
    - Next
    - CopyContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ExtractPrivateKeyFromAccessToken(TLVReader& reader, TLVWriter& writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: nl::Weave::Profiles::Security::CASE::PrintHex
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: PrintHex(const uint8_t *data, uint16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: WeaveCASEEngine::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 0
    functionsReached:
    - ClearSecretData
    linkageType: ''
    returnType: void
    signature: WeaveCASEEngine::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::Reset
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 0
    functionsReached:
    - ClearSecretData
    linkageType: ''
    returnType: void
    signature: WeaveCASEEngine::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsAllowedConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' reqCtx'
    argTypes:
    - BeginSessionRequestContext
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetAlternateConfigs
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsAllowedConfig
    linkageType: ''
    returnType: void
    signature: WeaveCASEEngine::SetAlternateConfigs(BeginSessionRequestContext & reqCtx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' reqCtx'
    argTypes:
    - BeginSessionRequestContext
    constantsTouched: []
    func_position:
      end: 118
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 118
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetAlternateCurves
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveCASEEngine::SetAlternateCurves(BeginSessionRequestContext & reqCtx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:125,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:128,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:130,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsConfig2Allowed
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:134,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:137,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsAllowedConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:137,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:144,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsAllowedCurve
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:144,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:147,1
    - Dst: nl::Weave::WeaveKeyId::IsSessionKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:147,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:150,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetIsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:154,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetIsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:155,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetSelectedConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:158,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetPerformingKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:160,1
    - Dst: PerformKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:160,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:167,1
    - Dst: HeadLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:167,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendNewECDHKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:171,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:172,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendCertInfo
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:175,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:176,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendPayload
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:179,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:180,1
    - Dst: EncodeHead
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:183,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:184,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendSignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:188,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 2
    argNames:
    - ' reqCtx'
    - msgBuf
    argTypes:
    - BeginSessionRequestContext
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 195
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 195
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::GenerateBeginSessionRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendCertInfo
    - PacketBuffer*::SetDataLength
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendSignature
    - EncodeHead
    - HeadLength
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsAllowedCurve
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetSelectedConfig
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendNewECDHKey
    - VerifyOrExit
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsConfig2Allowed
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetIsInitiator
    - nl::Weave::WeaveKeyId::IsSessionKey
    - WeaveLogDetail
    - SuccessOrExit
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetPerformingKeyConfirm
    - PerformKeyConfirm
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsAllowedConfig
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendPayload
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCASEEngine::GenerateBeginSessionRequest(BeginSessionRequestContext
      & reqCtx, PacketBuffer * msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:203,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:205,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetIsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:208,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetIsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:209,1
    - Dst: DecodeHead
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:212,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:213,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::VerifyProposedConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:220,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:224,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::VerifyProposedCurve
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:225,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:229,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:231,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetSelectedConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:234,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetPerformingKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:236,1
    - Dst: PerformKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:236,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::VerifySignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:241,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:242,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:245,1
    - Dst: nl::Weave::WeaveKeyId::IsSessionKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:245,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 3
    argNames:
    - msgBuf
    - ' reqCtx'
    - ' reconfCtx'
    argTypes:
    - PacketBuffer*
    - BeginSessionRequestContext
    - ReconfigureContext
    constantsTouched: []
    func_position:
      end: 257
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 257
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::ProcessBeginSessionRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 0
    functionsReached:
    - DecodeHead
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::VerifyProposedCurve
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetSelectedConfig
    - VerifyOrExit
    - ExitNow
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetIsInitiator
    - nl::Weave::WeaveKeyId::IsSessionKey
    - WeaveLogDetail
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::VerifyProposedConfig
    - SuccessOrExit
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::VerifySignature
    - PerformKeyConfirm
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetPerformingKeyConfirm
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCASEEngine::ProcessBeginSessionRequest(PacketBuffer * msgBuf,
      BeginSessionRequestContext & reqCtx, ReconfigureContext & reconfCtx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:266,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:268,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetIsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:270,1
    - Dst: PerformKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:275,1
    - Dst: PerformKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:275,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::ResponderRequiresKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:275,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetPerformingKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:276,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::PerformingKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:280,1
    - Dst: SetPerformKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:282,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::ConfigHashLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:283,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:288,1
    - Dst: HeadLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:288,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendNewECDHKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:292,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:293,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendCertInfo
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:296,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:297,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendPayload
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:300,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:301,1
    - Dst: EncodeHead
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:304,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:305,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendSignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:308,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:309,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::DeriveSessionKeys
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:315,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:316,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::PerformingKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:319,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:323,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:323,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:325,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:325,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:326,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 3
    argNames:
    - ' respCtx'
    - msgBuf
    - ' reqCtx'
    argTypes:
    - BeginSessionResponseContext
    - PacketBuffer*
    - BeginSessionRequestContext
    constantsTouched: []
    func_position:
      end: 338
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 338
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::GenerateBeginSessionResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendSignature
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetIsInitiator
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::ConfigHashLength
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::PerformingKeyConfirm
    - VerifyOrExit
    - SetPerformKeyConfirm
    - WeaveLogDetail
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::DeriveSessionKeys
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetPerformingKeyConfirm
    - PacketBuffer*::AvailableDataLength
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendNewECDHKey
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendCertInfo
    - PacketBuffer*::SetDataLength
    - PerformKeyConfirm
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendPayload
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::ResponderRequiresKeyConfirm
    - PacketBuffer*::Start
    - HeadLength
    - memcpy
    - SuccessOrExit
    - EncodeHead
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveCASEEngine::GenerateBeginSessionResponse(BeginSessionResponseContext
      & respCtx, PacketBuffer * msgBuf,\n                                                          BeginSessionRequestContext
      & reqCtx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:345,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:347,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetIsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:349,1
    - Dst: DecodeHead
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:352,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:353,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::VerifySignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:356,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:357,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:360,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::PerformingKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:360,1
    - Dst: PerformKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:360,1
    - Dst: PerformKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:363,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetPerformingKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:364,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::DeriveSessionKeys
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:370,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:371,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::PerformingKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:374,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:381,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:381,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:383,1
    - Dst: ConstantTimeCompare
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - msgBuf
    - ' respCtx'
    argTypes:
    - PacketBuffer*
    - BeginSessionResponseContext
    constantsTouched: []
    func_position:
      end: 398
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 398
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::ProcessBeginSessionResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 0
    functionsReached:
    - ConstantTimeCompare
    - DecodeHead
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::PerformingKeyConfirm
    - VerifyOrExit
    - ExitNow
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetIsInitiator
    - WeaveLogDetail
    - SuccessOrExit
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetPerformingKeyConfirm
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::VerifySignature
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::DeriveSessionKeys
    - WEAVE_FAULT_INJECT
    - PerformKeyConfirm
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCASEEngine::ProcessBeginSessionResponse(PacketBuffer * msgBuf,
      BeginSessionResponseContext & respCtx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:405,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::PerformingKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:405,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:407,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:409,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:409,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 418
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 418
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::GenerateInitiatorKeyConfirm
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::PerformingKeyConfirm
    - VerifyOrExit
    - memcpy
    - WeaveLogDetail
    - PacketBuffer*::Start
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCASEEngine::GenerateInitiatorKeyConfirm(PacketBuffer * msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:425,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::PerformingKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:425,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:427,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:429,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:429,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:431,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:431,1
    - Dst: ConstantTimeCompare
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:432,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 441
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 441
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::ProcessInitiatorKeyConfirm
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - ConstantTimeCompare
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::PerformingKeyConfirm
    - VerifyOrExit
    - ExitNow
    - WeaveLogDetail
    - PacketBuffer*::Start
    - WEAVE_FAULT_INJECT
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCASEEngine::ProcessInitiatorKeyConfirm(PacketBuffer * msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:447,1
    - Dst: nl::Weave::Profiles::Security::CASE::ReconfigureContext::Decode
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:450,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:451,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:454,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::HasReconfigured
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:454,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetHasReconfigured
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:455,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:458,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsAllowedConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:458,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:461,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsAllowedCurve
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - msgBuf
    - ' reconfCtx'
    argTypes:
    - PacketBuffer*
    - ReconfigureContext
    constantsTouched: []
    func_position:
      end: 468
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 468
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::ProcessReconfigure
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::HasReconfigured
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsAllowedCurve
    - VerifyOrExit
    - nl::Weave::Profiles::Security::CASE::ReconfigureContext::Decode
    - WeaveLogDetail
    - SuccessOrExit
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetHasReconfigured
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsAllowedConfig
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCASEEngine::ProcessReconfigure(PacketBuffer * msgBuf, ReconfigureContext
      & reconfCtx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' encKey'
    argTypes:
    - WeaveEncryptionKey*
    constantsTouched: []
    func_position:
      end: 480
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 480
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::GetSessionKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCASEEngine::GetSessionKey(const WeaveEncryptionKey *& encKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:486,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsConfig2Allowed
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:491,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:494,1
    - Dst: IsAltConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:495,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:498,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsConfig1Allowed
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:505,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:508,1
    - Dst: IsAltConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:511,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:514,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - ' reqCtx'
    - ' selectedAltConfig'
    argTypes:
    - BeginSessionRequestContext
    - uint32_t
    constantsTouched: []
    func_position:
      end: 520
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 520
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::VerifyProposedConfig
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsConfig1Allowed
    - IsAltConfig
    - ExitNow
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsConfig2Allowed
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCASEEngine::VerifyProposedConfig(BeginSessionRequestContext &
      reqCtx, uint32_t & selectedAltConfig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:526,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsAllowedCurve
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:529,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsAllowedCurve
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:533,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:536,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:539,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ' reqCtx'
    - ' selectedAltCurve'
    argTypes:
    - BeginSessionRequestContext
    - uint32_t
    constantsTouched: []
    func_position:
      end: 544
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 544
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::VerifyProposedCurve
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsAllowedCurve
    - VerifyOrExit
    - WeaveLogDetail
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCASEEngine::VerifyProposedCurve(BeginSessionRequestContext & reqCtx,
      uint32_t & selectedAltCurve)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:552,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:556,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:557,1
    - Dst: GenerateECDHKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:560,1
    - Dst: WeaveCurveIdToOID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:560,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:561,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::UseKnownECDHKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:569,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:576,1
    - Dst: GetCurveG
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:577,1
    - Dst: WeaveCurveIdToOID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:577,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:578,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:580,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - ' msgCtx'
    - msgBuf
    argTypes:
    - BeginSessionContext
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 591
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 591
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendNewECDHKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 2
    functionsReached:
    - WeaveLogError
    - PacketBuffer*::SetDataLength
    - WeaveCurveIdToOID
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::UseKnownECDHKey
    - SuccessOrExit
    - WeaveLogDetail
    - GenerateECDHKey
    - PacketBuffer*::Start
    - GetCurveG
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCASEEngine::AppendNewECDHKey(BeginSessionContext & msgCtx, PacketBuffer
      * msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:597,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:603,1
    - Dst: EncodeNodeCertInfo
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:607,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:608,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:611,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:612,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:616,1
    - Dst: GetNodeCertInfo
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:623,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:623,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:623,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:623,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:624,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - ' msgCtx'
    - msgBuf
    argTypes:
    - BeginSessionContext
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 631
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 631
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendCertInfo
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 2
    functionsReached:
    - GetNodeCertInfo
    - PacketBuffer*::SetDataLength
    - EncodeNodeCertInfo
    - TLVWriter::Finalize
    - TLVWriter::GetLengthWritten
    - PacketBuffer*::Start
    - WeaveLogDetail
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsInitiator
    - SuccessOrExit
    - TLVWriter::Init
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCASEEngine::AppendCertInfo(BeginSessionContext & msgCtx, PacketBuffer
      * msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:638,1
    - Dst: EncodeNodePayload
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:640,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:640,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:640,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:641,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ' msgCtx'
    - msgBuf
    argTypes:
    - BeginSessionContext
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 647
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 647
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendPayload
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 2
    functionsReached:
    - PacketBuffer*::SetDataLength
    - EncodeNodePayload
    - PacketBuffer*::Start
    - WeaveLogDetail
    - SuccessOrExit
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCASEEngine::AppendPayload(BeginSessionContext & msgCtx, PacketBuffer
      * msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:657,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::GenerateHash
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:660,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:665,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:669,1
    - Dst: GenerateNodeSignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:672,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::ConfigHashLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:672,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:673,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:675,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:676,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - ' msgCtx'
    - msgBuf
    - msgHash
    argTypes:
    - BeginSessionContext
    - PacketBuffer*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 684
      start: 650
    functionDepth: 2
    functionLinenumber: 650
    functionLinenumberEnd: 684
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendSignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 2
    functionsReached:
    - TLVWriter::Finalize
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::GenerateHash
    - TLVWriter::GetLengthWritten
    - WeaveLogDetail
    - GenerateNodeSignature
    - SuccessOrExit
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::ConfigHashLength
    - TLVWriter::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCASEEngine::AppendSignature(BeginSessionContext & msgCtx, PacketBuffer
      * msgBuf, uint8_t * msgHash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:701,1
    - Dst: ValidationContext::Reset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:705,1
    - Dst: BeginValidation
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:710,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:711,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:718,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::DecodeCertificateInfo
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:722,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:727,1
    - Dst: OnPeerCertsLoaded
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:731,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:732,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:737,1
    - Dst: WeaveCertificateSet::FindValidCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:738,1
    - Dst: HandleValidationResult
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:750,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:752,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:755,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:756,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:759,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:761,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:761,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:762,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:763,1
    - Dst: DecodeWeaveECDSASignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:764,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:765,1
    - Dst: TLVReader::VerifyEndOfContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:766,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:767,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::GenerateHash
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:773,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:777,1
    - Dst: VerifyECDSASignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:778,1
    - Dst: WeaveCurveIdToOID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:778,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::ConfigHashLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:778,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:780,1
    - Dst: EndValidation
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:785,1
    - Dst: WeaveCertificateSet::Release
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:787,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 3
    argNames:
    - ' msgCtx'
    - msgBuf
    - msgHash
    argTypes:
    - BeginSessionContext
    - PacketBuffer*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 789
      start: 688
    functionDepth: 2
    functionLinenumber: 688
    functionLinenumberEnd: 789
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::VerifySignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 2
    functionsReached:
    - TLVReader::Next
    - EndValidation
    - TLVReader::VerifyEndOfContainer
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::ConfigHashLength
    - ValidationContext::Reset
    - TLVReader::Init
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::GenerateHash
    - VerifyOrExit
    - VerifyECDSASignature
    - WeaveCertificateSet::FindValidCert
    - WeaveLogDetail
    - WeaveCurveIdToOID
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::DecodeCertificateInfo
    - ProfileTag
    - HandleValidationResult
    - BeginValidation
    - DecodeWeaveECDSASignature
    - OnPeerCertsLoaded
    - WeaveCertificateSet::Release
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveCASEEngine::VerifySignature(BeginSessionContext & msgCtx, PacketBuffer
      * msgBuf, uint8_t * msgHash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:799,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:801,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:801,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:802,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:807,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:808,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:810,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:813,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:813,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:816,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:817,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:822,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:827,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:827,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:829,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:833,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:833,1
    - Dst: LoadCerts
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:835,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:836,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:838,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:845,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:845,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:847,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:851,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:853,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:855,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:856,1
    - Dst: TLVReader::VerifyEndOfContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:859,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:860,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:863,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 4
    argNames:
    - ' msgCtx'
    - ' certSet'
    - ' entityCertDN'
    - ' entityCertSubjectKeyId'
    argTypes:
    - BeginSessionContext
    - WeaveCertificateSet
    - WeaveDN
    - CertificateKeyId
    constantsTouched: []
    func_position:
      end: 867
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 867
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::DecodeCertificateInfo
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Init
    - LoadCert
    - LoadCerts
    - TLVReader::Next
    - ContextTag
    - VerifyOrExit
    - ExitNow
    - TLVReader::EnterContainer
    - ProfileTag
    - TLVReader::ExitContainer
    - TLVReader::GetTag
    - TLVReader::VerifyEndOfContainer
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveCASEEngine::DecodeCertificateInfo(BeginSessionContext & msgCtx,
      WeaveCertificateSet & certSet,\n                                                   WeaveDN
      & entityCertDN, CertificateKeyId & entityCertSubjectKeyId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:880,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:883,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:892,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:893,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:896,1
    - Dst: PrintHex
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:896,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:896,1
    - Dst: HKDFSHA256::BeginExtractKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:899,1
    - Dst: WeaveCurveIdToOID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:912,1
    - Dst: ECDHComputeSharedSecret
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:913,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:914,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:916,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:919,1
    - Dst: PrintHex
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:919,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:919,1
    - Dst: HKDFSHA256::AddKeyMaterial
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:924,1
    - Dst: HKDFSHA256::FinishExtractKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:925,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:926,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:927,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::PerformingKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:937,1
    - Dst: HKDFSHA256::ExpandKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:943,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:944,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:947,1
    - Dst: PrintHex
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:947,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:947,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:951,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:954,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::PerformingKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:959,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::GenerateKeyConfirmHashes
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:965,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:969,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 42
    argCount: 3
    argNames:
    - ' pubKey'
    - respMsgHash
    - responderKeyConfirmHash
    argTypes:
    - EncodedECPublicKey
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 974
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 974
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::DeriveSessionKeys
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 2
    functionsReached:
    - ECDHComputeSharedSecret
    - HKDFSHA256::AddKeyMaterial
    - WeaveCurveIdToOID
    - ClearSecretData
    - HKDFSHA256::BeginExtractKey
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::PerformingKeyConfirm
    - PrintHex
    - VerifyOrExit
    - printf
    - memcpy
    - WeaveLogDetail
    - HKDFSHA256::ExpandKey
    - SuccessOrExit
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::GenerateKeyConfirmHashes
    - HKDFSHA256::FinishExtractKey
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveCASEEngine::DeriveSessionKeys(EncodedECPublicKey & pubKey, const
      uint8_t * respMsgHash,\n                                               uint8_t
      * responderKeyConfirmHash)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsUsingConfig1
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:978,1
    - Dst: SHA1::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:981,1
    - Dst: SHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:982,1
    - Dst: SHA1::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:983,1
    - Dst: SHA256::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:988,1
    - Dst: SHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:989,1
    - Dst: SHA256::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:990,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - inData
    - inDataLen
    - hash
    argTypes:
    - uint8_t*
    - uint16_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 992
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 992
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::GenerateHash
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 2
    functionsReached:
    - SHA1::Begin
    - SHA256::Finish
    - SHA1::Finish
    - SHA256::Begin
    - SHA256::AddData
    - SHA1::AddData
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsUsingConfig1
    linkageType: ''
    returnType: void
    signature: WeaveCASEEngine::GenerateHash(const uint8_t * inData, uint16_t inDataLen,
      uint8_t * hash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::GenerateHash
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:999,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::GenerateHash
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - keyConfirmKey
    - singleHash
    - doubleHash
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1003
      start: 994
    functionDepth: 2
    functionLinenumber: 994
    functionLinenumberEnd: 1003
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::GenerateKeyConfirmHashes
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::GenerateHash
    linkageType: ''
    returnType: void
    signature: WeaveCASEEngine::GenerateKeyConfirmHashes(const uint8_t * keyConfirmKey,
      uint8_t * singleHash, uint8_t * doubleHash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsUsingConfig1
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1011
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SelectedConfig
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsUsingConfig1
    linkageType: ''
    returnType: uint32_t
    signature: WeaveCASEEngine::SelectedConfig() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsConfig1Allowed
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1015,1
    - Dst: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsConfig2Allowed
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1016,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1017
      start: 1013
    functionDepth: 1
    functionLinenumber: 1013
    functionLinenumberEnd: 1017
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsAllowedConfig
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsConfig1Allowed
    - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsConfig2Allowed
    linkageType: ''
    returnType: bool
    signature: WeaveCASEEngine::IsAllowedConfig(uint32_t config) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' msgCtx'
    - payloadBuf
    - payloadBufSize
    - ' payloadLen'
    argTypes:
    - BeginSessionContext
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1027
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1027
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEAuthDelegate::EncodeNodePayload
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveCASEAuthDelegate::EncodeNodePayload(const BeginSessionContext
      & msgCtx,\n            uint8_t * payloadBuf, uint16_t payloadBufSize, uint16_t
      & payloadLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' msgCtx'
    - ' subjectDN'
    - ' subjectKeyId'
    - ' validCtx'
    - ' certSet'
    argTypes:
    - BeginSessionContext
    - WeaveDN
    - CertificateKeyId
    - ValidationContext
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 1034
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1034
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEAuthDelegate::OnPeerCertsLoaded
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveCASEAuthDelegate::OnPeerCertsLoaded(const BeginSessionContext
      & msgCtx,\n            WeaveDN & subjectDN, CertificateKeyId & subjectKeyId,
      ValidationContext & validCtx,\n            WeaveCertificateSet & certSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1045,1
    - Dst: GetNodePrivateKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1048,1
    - Dst: IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1048,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1049,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1051,1
    - Dst: GenerateAndEncodeWeaveECDSASignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1054,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1055,1
    - Dst: ReleaseNodePrivateKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1061,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - ' msgCtx'
    - msgHash
    - msgHashLen
    - ' writer'
    - tag
    argTypes:
    - BeginSessionContext
    - uint8_t*
    - uint8_t
    - TLVWriter
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1065
      start: 1038
    functionDepth: 0
    functionLinenumber: 1038
    functionLinenumberEnd: 1065
    functionName: nl::Weave::Profiles::Security::CASE::WeaveCASEAuthDelegate::GenerateNodeSignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 0
    functionsReached:
    - ReleaseNodePrivateKey
    - GenerateAndEncodeWeaveECDSASignature
    - IsInitiator
    - WeaveLogDetail
    - SuccessOrExit
    - GetNodePrivateKey
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveCASEAuthDelegate::GenerateNodeSignature(const BeginSessionContext
      & msgCtx,\n        const uint8_t * msgHash, uint8_t msgHashLen, TLVWriter &
      writer, uint64_t tag)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1109,1
    - Dst: nl::Weave::Profiles::Security::CASE::EncodeCASECertInfo
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1112,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1113,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1115,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1116,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 7
    argNames:
    - buf
    - bufSize
    - ' certInfoLen'
    - entityCert
    - entityCertLen
    - intermediateCerts
    - intermediateCertsLen
    argTypes:
    - uint8_t*
    - uint16_t
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1122
      start: 1102
    functionDepth: 1
    functionLinenumber: 1102
    functionLinenumberEnd: 1122
    functionName: nl::Weave::Profiles::Security::CASE::EncodeCASECertInfo
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::CASE::EncodeCASECertInfo
    - TLVWriter::Finalize
    - TLVWriter::GetLengthWritten
    - SuccessOrExit
    - TLVWriter::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "EncodeCASECertInfo(uint8_t * buf, uint16_t bufSize, uint16_t& certInfoLen,\n
      \       const uint8_t * entityCert, uint16_t entityCertLen,\n        const uint8_t
      * intermediateCerts, uint16_t intermediateCertsLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1160,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1160,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1161,1
    - Dst: CopyContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1164,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1164,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1165,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1172,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1174,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1175,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1178,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1183,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1183,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1185,1
    - Dst: CopyContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1188,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1188,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1190,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1193,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1194,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1197,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1197,1
    - Dst: PutPreEncodedContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1199,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1199,1
    - Dst: TLVReader::GetReadPoint
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1201,1
    - Dst: TLVReader::GetRemainingLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1202,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1203,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1207,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1212,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp:1213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 5
    argNames:
    - ' writer'
    - entityCert
    - entityCertLen
    - intermediateCerts
    - intermediateCertsLen
    argTypes:
    - TLVWriter
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1217
      start: 1152
    functionDepth: 0
    functionLinenumber: 1152
    functionLinenumberEnd: 1217
    functionName: nl::Weave::Profiles::Security::CASE::EncodeCASECertInfo
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Init
    - StartContainer
    - PutPreEncodedContainer
    - TLVReader::Next
    - TLVReader::GetType
    - ContextTag
    - ExitNow
    - ProfileTag
    - EndContainer
    - SuccessOrExit
    - TLVReader::GetReadPoint
    - TLVReader::GetRemainingLength
    - CopyContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "EncodeCASECertInfo(TLVWriter & writer,\n        const uint8_t * entityCert,
      uint16_t entityCertLen,\n        const uint8_t * intermediateCerts, uint16_t
      intermediateCertsLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 391
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 391
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeaveKeyExport
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::GetNodeCertSet
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h:408,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keyExport
    - ' certSet'
    argTypes:
    - WeaveKeyExport*
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 409
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 409
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::GetNodeCertSet
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::GetNodeCertSet
    - WeaveKeyExport*::IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveKeyExportDelegate::GetNodeCertSet(WeaveKeyExport * keyExport,
      WeaveCertificateSet & certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::ReleaseNodeCertSet
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h:413,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keyExport
    - ' certSet'
    argTypes:
    - WeaveKeyExport*
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 414
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 414
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::ReleaseNodeCertSet
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::ReleaseNodeCertSet
    - WeaveKeyExport*::IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveKeyExportDelegate::ReleaseNodeCertSet(WeaveKeyExport * keyExport,
      WeaveCertificateSet & certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::BeginCertValidation
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h:419,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - keyExport
    - ' validCtx'
    - ' certSet'
    argTypes:
    - WeaveKeyExport*
    - ValidationContext
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 420
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 420
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::BeginCertValidation
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::BeginCertValidation
    - WeaveKeyExport*::IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveKeyExportDelegate::BeginCertValidation(WeaveKeyExport * keyExport,
      ValidationContext & validCtx,\n        WeaveCertificateSet & certSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::HandleCertValidationResult
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h:425,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h:425,1
    - Dst: WeaveKeyExport*::MessageInfo
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - keyExport
    - ' validCtx'
    - ' certSet'
    - requestedKeyId
    argTypes:
    - WeaveKeyExport*
    - ValidationContext
    - WeaveCertificateSet
    - uint32_t
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::HandleCertValidationResult
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::HandleCertValidationResult
    - WeaveKeyExport*::MessageInfo
    - WeaveKeyExport*::IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveKeyExportDelegate::HandleCertValidationResult(WeaveKeyExport
      * keyExport, ValidationContext & validCtx,\n        WeaveCertificateSet & certSet,
      uint32_t requestedKeyId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::EndCertValidation
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h:431,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - keyExport
    - ' validCtx'
    - ' certSet'
    argTypes:
    - WeaveKeyExport*
    - ValidationContext
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 432
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 432
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::EndCertValidation
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::EndCertValidation
    - WeaveKeyExport*::IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveKeyExportDelegate::EndCertValidation(WeaveKeyExport * keyExport,
      ValidationContext & validCtx,\n        WeaveCertificateSet & certSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::ValidateUnsignedKeyExportMessage
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h:436,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h:436,1
    - Dst: WeaveKeyExport*::MessageInfo
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keyExport
    - requestedKeyId
    argTypes:
    - WeaveKeyExport*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 437
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 437
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::ValidateUnsignedKeyExportMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h
    functionUses: 1
    functionsReached:
    - WeaveKeyExport*::MessageInfo
    - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::ValidateUnsignedKeyExportMessage
    - WeaveKeyExport*::IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveKeyExportDelegate::ValidateUnsignedKeyExportMessage(WeaveKeyExport
      * keyExport, uint32_t requestedKeyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 444
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 444
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::State
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: WeaveKeyExport::State() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 449
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 449
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::ProtocolConfig
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: WeaveKeyExport::ProtocolConfig() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 454
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 454
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::KeyId
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: WeaveKeyExport::KeyId() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 459
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 459
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::AllowedConfigs
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: WeaveKeyExport::AllowedConfigs() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - allowedConfigs
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 464
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 464
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::SetAllowedConfigs
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveKeyExport::SetAllowedConfigs(uint8_t allowedConfigs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 469
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 469
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::MessageInfo
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WeaveMessageInfo
    signature: '* WeaveKeyExport::MessageInfo() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::SignMessages
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveKeyExport::SignMessages() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fputc
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - out
    - count
    argTypes:
    - FILE*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: nl::Weave::Profiles::Security::Indent
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp
    functionUses: 0
    functionsReached:
    - fputc
    linkageType: ''
    returnType: void
    signature: Indent(FILE *out, uint16_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:61,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:62,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:68,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:69,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:72,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - out
    - name
    - indent
    - count
    - data
    argTypes:
    - FILE*
    - char*
    - uint16_t
    - uint16_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 76
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 76
    functionName: nl::Weave::Profiles::Security::PrintHexField
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::Indent
    - fprintf
    linkageType: ''
    returnType: void
    signature: PrintHexField(FILE *out, const char *name, uint16_t indent, uint16_t
      count, const uint8_t *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:107,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:109,1
    - Dst: fputs
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:113,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - out
    - certType
    argTypes:
    - FILE*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 114
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 114
    functionName: nl::Weave::Profiles::Security::PrintCertType
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    - fputs
    linkageType: ''
    returnType: void
    signature: PrintCertType(FILE *out, uint8_t certType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:118,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:119,1
    - Dst: nl::Weave::Profiles::Security::PrintWeaveDN
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:121,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:123,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:124,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:126,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:127,1
    - Dst: nl::Weave::Profiles::Security::PrintWeaveDN
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:129,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:131,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:132,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:136,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:137,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:139,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:140,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:145,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:146,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:148,1
    - Dst: WeaveCertificateSet*::FindCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:151,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:153,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:155,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:157,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:160,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:161,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:162,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:163,1
    - Dst: nl::Weave::Profiles::Security::PrintPackedDate
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:163,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:163,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:164,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:165,1
    - Dst: nl::Weave::Profiles::Security::PrintPackedDate
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:165,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:165,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:169,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:170,1
    - Dst: nl::Weave::Profiles::Security::PrintCertType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:171,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:172,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:177,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:178,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:183,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:184,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:189,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:190,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:195,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:196,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:198,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:200,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:202,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:204,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:206,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:208,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:210,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:212,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:214,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:215,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:220,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:221,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:223,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:225,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:227,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:229,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:231,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:233,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:234,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:237,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:238,1
    - Dst: GetOIDName
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:238,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:240,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:241,1
    - Dst: GetOIDName
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:241,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:247,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:248,1
    - Dst: GetOIDName
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:248,1
    - Dst: nl::Weave::Profiles::Security::WeaveCurveIdToOID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:248,1
    - Dst: nl::Weave::Profiles::Security::PrintHexField
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:252,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:254,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:255,1
    - Dst: nl::Weave::Profiles::Security::PrintHexField
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:256,1
    - Dst: nl::Weave::Profiles::Security::PrintHexField
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:257,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 115
    argCount: 5
    argNames:
    - out
    - ' cert'
    - certSet
    - indent
    - verbose
    argTypes:
    - FILE*
    - WeaveCertificateData
    - WeaveCertificateSet*
    - uint16_t
    - bool
    constantsTouched: []
    func_position:
      end: 260
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 260
    functionName: nl::Weave::Profiles::Security::PrintCert
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::Indent
    - nl::Weave::Profiles::Security::PrintPackedDate
    - nl::Weave::Profiles::Security::PrintWeaveDN
    - nl::Weave::Profiles::Security::PrintHexField
    - nl::Weave::Profiles::Security::WeaveCurveIdToOID
    - nl::Weave::Profiles::Security::PrintCertType
    - WeaveCertificateSet*::FindCert
    - fprintf
    - GetOIDName
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: PrintCert(FILE *out, const WeaveCertificateData& cert, const WeaveCertificateSet
      *certSet, uint16_t indent, bool verbose)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:271,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:273,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:275,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:277,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:277,1
    - Dst: nl::Weave::Profiles::Security::PrintCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:278,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:281,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:282,1
    - Dst: printf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:284,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - out
    - ' certSet'
    - ' validContext'
    - indent
    argTypes:
    - FILE*
    - WeaveCertificateSet
    - ValidationContext
    - uint16_t
    constantsTouched: []
    func_position:
      end: 288
      start: 262
    functionDepth: 3
    functionLinenumber: 262
    functionLinenumberEnd: 288
    functionName: nl::Weave::Profiles::Security::PrintCertValidationResults
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::Indent
    - printf
    - nl::ErrorStr
    - nl::Weave::Profiles::Security::PrintCert
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: PrintCertValidationResults(FILE *out, const WeaveCertificateSet& certSet,
      const ValidationContext& validContext, uint16_t indent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::IsWeaveIdX509Attr
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:295,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:297,1
    - Dst: nl::Weave::Profiles::Security::DescribeWeaveCertId
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:298,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:305,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:309,1
    - Dst: nl::Weave::ASN1::GetOIDName
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:309,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - out
    - ' dn'
    argTypes:
    - FILE*
    - WeaveDN
    constantsTouched: []
    func_position:
      end: 312
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 312
    functionName: nl::Weave::Profiles::Security::PrintWeaveDN
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::IsWeaveIdX509Attr
    - nl::Weave::ASN1::GetOIDName
    - memcpy
    - nl::Weave::Profiles::Security::DescribeWeaveCertId
    - snprintf
    - fprintf
    linkageType: ''
    returnType: void
    signature: PrintWeaveDN(FILE *out, const WeaveDN& dn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecodeWeaveDN
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:319,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:320,1
    - Dst: nl::Weave::Profiles::Security::PrintWeaveDN
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - out
    - ' reader'
    argTypes:
    - FILE*
    - TLVReader
    constantsTouched: []
    func_position:
      end: 326
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 326
    functionName: nl::Weave::Profiles::Security::PrintWeaveDN
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::Security::PrintWeaveDN
    - DecodeWeaveDN
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PrintWeaveDN(FILE *out, TLVReader & reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnpackCertTime
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:331,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - t
    argTypes:
    - FILE*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 335
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 335
    functionName: nl::Weave::Profiles::Security::PrintPackedTime
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    - UnpackCertTime
    linkageType: ''
    returnType: void
    signature: PrintPackedTime(FILE *out, uint32_t t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnpackCertTime
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:340,1
    - Dst: nl::Weave::Profiles::Security::PackedCertDateToTime
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:340,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - t
    argTypes:
    - FILE*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 343
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 343
    functionName: nl::Weave::Profiles::Security::PrintPackedDate
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::PackedCertDateToTime
    - fprintf
    - UnpackCertTime
    linkageType: ''
    returnType: void
    signature: PrintPackedDate(FILE *out, uint16_t t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 2
    argNames:
    - attrOID
    - weaveCertId
    argTypes:
    - OID
    - uint64_t
    constantsTouched: []
    func_position:
      end: 399
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 399
    functionName: nl::Weave::Profiles::Security::DescribeWeaveCertId
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*DescribeWeaveCertId(OID attrOID, uint64_t weaveCertId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:408,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:410,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:411,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:414,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:414,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:416,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:417,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:419,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:421,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:421,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:423,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:424,1
    - Dst: DecodeWeaveCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:426,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:427,1
    - Dst: nl::Weave::Profiles::Security::DetermineCertType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:429,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:430,1
    - Dst: nl::Weave::Profiles::Security::PrintCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:432,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:437,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:439,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 3
    argNames:
    - out
    - ' reader'
    - indent
    argTypes:
    - FILE*
    - TLVReader
    - uint16_t
    constantsTouched: []
    func_position:
      end: 444
      start: 401
    functionDepth: 3
    functionLinenumber: 401
    functionLinenumberEnd: 444
    functionName: nl::Weave::Profiles::Security::PrintCertArray
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - nl::Weave::Profiles::Security::DetermineCertType
    - nl::Weave::Profiles::Security::Indent
    - DecodeWeaveCert
    - VerifyOrExit
    - nl::Weave::Profiles::Security::PrintCert
    - GetType
    - ExitContainer
    - SuccessOrExit
    - fprintf
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PrintCertArray(FILE * out, TLVReader & reader, uint16_t indent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:451,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:453,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:454,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:458,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:458,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:460,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:461,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:463,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:470,1
    - Dst: IsContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:472,1
    - Dst: TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:477,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:491,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:491,1
    - Dst: GetDataPtr
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:493,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:494,1
    - Dst: nl::Weave::Profiles::Security::PrintHexField
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:496,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:496,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:499,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:501,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:502,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - out
    - ' reader'
    - indent
    argTypes:
    - FILE*
    - TLVReader
    - uint16_t
    constantsTouched: []
    func_position:
      end: 506
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 506
    functionName: nl::Weave::Profiles::Security::PrintECDSASignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - IsContextTag
    - GetLength
    - GetDataPtr
    - nl::Weave::Profiles::Security::PrintHexField
    - VerifyOrExit
    - GetType
    - ExitContainer
    - TagNumFromTag
    - GetTag
    - SuccessOrExit
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PrintECDSASignature(FILE * out, TLVReader & reader, uint16_t indent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:513,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:515,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:516,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:520,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:520,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:522,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:523,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:525,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:532,1
    - Dst: IsContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:534,1
    - Dst: TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:539,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:544,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:545,1
    - Dst: nl::Weave::Profiles::Security::PrintWeaveDN
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:546,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:547,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:550,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:550,1
    - Dst: GetDataPtr
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:551,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:552,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:553,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:554,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:555,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:557,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:558,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:565,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:567,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:568,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 3
    argNames:
    - out
    - ' reader'
    - indent
    argTypes:
    - FILE*
    - TLVReader
    - uint16_t
    constantsTouched: []
    func_position:
      end: 572
      start: 508
    functionDepth: 2
    functionLinenumber: 508
    functionLinenumberEnd: 572
    functionName: nl::Weave::Profiles::Security::PrintCertReference
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - IsContextTag
    - GetLength
    - GetDataPtr
    - nl::Weave::Profiles::Security::Indent
    - nl::Weave::Profiles::Security::PrintWeaveDN
    - VerifyOrExit
    - GetType
    - ExitContainer
    - TagNumFromTag
    - GetTag
    - SuccessOrExit
    - fprintf
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PrintCertReference(FILE * out, TLVReader & reader, uint16_t indent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:580,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:582,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:583,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:587,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:587,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:589,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:590,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:592,1
    - Dst: IsContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:597,1
    - Dst: TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:602,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:606,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:607,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:614,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:615,1
    - Dst: nl::Weave::Profiles::Security::PrintECDSASignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:616,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:617,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:621,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:622,1
    - Dst: nl::Weave::Profiles::Security::PrintCertReference
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:623,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:624,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:628,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:629,1
    - Dst: nl::Weave::Profiles::Security::PrintCertArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:630,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:631,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:638,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:638,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:640,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:641,1
    - Dst: nl::Weave::Profiles::Security::Indent
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:643,1
    - Dst: fprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:644,1
    - Dst: GetOIDName
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:644,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:656,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:658,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp:659,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 3
    argNames:
    - out
    - ' reader'
    - indent
    argTypes:
    - FILE*
    - TLVReader
    - uint16_t
    constantsTouched: []
    func_position:
      end: 663
      start: 574
    functionDepth: 4
    functionLinenumber: 574
    functionLinenumberEnd: 663
    functionName: nl::Weave::Profiles::Security::PrintWeaveSignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - IsContextTag
    - nl::Weave::Profiles::Security::Indent
    - nl::Weave::Profiles::Security::PrintECDSASignature
    - VerifyOrExit
    - GetType
    - ExitContainer
    - TagNumFromTag
    - nl::Weave::Profiles::Security::PrintCertArray
    - SuccessOrExit
    - Get
    - fprintf
    - GetOIDName
    - nl::Weave::Profiles::Security::PrintCertReference
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PrintWeaveSignature(FILE * out, TLVReader & reader, uint16_t indent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:85,1
    - Dst: GroupKeyStoreBase*::EnumerateGroupKeys
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:88,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:89,1
    - Dst: GroupKeyStoreBase*::RetrieveGroupKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:94,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:95,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:101,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:105,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - groupGlobalId
    - groupKeyStore
    - ' groupMasterKeyId'
    argTypes:
    - uint32_t
    - GroupKeyStoreBase*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 111
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 111
    functionName: nl::Weave::Profiles::Security::AppKeys::GetAppGroupMasterKeyId
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp
    functionUses: 0
    functionsReached:
    - ClearSecretData
    - GroupKeyStoreBase*::RetrieveGroupKey
    - VerifyOrExit
    - ExitNow
    - GroupKeyStoreBase*::EnumerateGroupKeys
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetAppGroupMasterKeyId(uint32_t groupGlobalId, GroupKeyStoreBase *groupKeyStore,
      uint32_t& groupMasterKeyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GroupKeyStoreBase*::EnumerateGroupKeys
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:123,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:126,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:127,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:130,1
    - Dst: GroupKeyStoreBase*::RetrieveGroupKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:134,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:137,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:138,1
    - Dst: nl::Weave::WeaveKeyId::IsAppEpochKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:142,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:144,1
    - Dst: nl::Weave::WeaveKeyId::IsAppGroupMasterKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:146,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:148,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:156,1
    - Dst: nl::Weave::WeaveKeyId::DescribeKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:157,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:159,1
    - Dst: nl::Weave::WeaveKeyId::DescribeKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:160,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - groupKeyStore
    argTypes:
    - GroupKeyStoreBase*
    constantsTouched: []
    func_position:
      end: 172
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 172
    functionName: nl::Weave::Profiles::Security::AppKeys::LogGroupKeys
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveKeyId::DescribeKey
    - WeaveLogError
    - WeaveLogProgress
    - GroupKeyStoreBase*::RetrieveGroupKey
    - ExitNow
    - nl::Weave::WeaveKeyId::IsAppGroupMasterKey
    - GroupKeyStoreBase*::EnumerateGroupKeys
    - snprintf
    - nl::Weave::WeaveKeyId::IsAppEpochKey
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LogGroupKeys(GroupKeyStoreBase * groupKeyStore)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: GroupKeyStoreBase::Init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::OnEpochKeysChange
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: GroupKeyStoreBase::OnEpochKeysChange(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Layer::GetClock_RealTimeMS
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:214,1
    - Dst: nl::Weave::Platform::DivideBy1000
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' utcTime'
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 217
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 217
    functionName: nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::GetCurrentUTCTime
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Layer::GetClock_RealTimeMS
    - nl::Weave::Platform::DivideBy1000
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreBase::GetCurrentUTCTime(uint32_t& utcTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::UsesCurrentEpochKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:248,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:251,1
    - Dst: RetrieveLastUsedEpochKeyId
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:258,1
    - Dst: nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::GetCurrentUTCTime
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:270,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:276,1
    - Dst: EnumerateGroupKeys
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:282,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:283,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:285,1
    - Dst: RetrieveGroupKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:290,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:291,1
    - Dst: StoreLastUsedEpochKeyId
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:330,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:331,1
    - Dst: nl::Weave::WeaveKeyId::UpdateEpochKeyId
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:335,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:338,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 2
    argNames:
    - keyId
    - ' curKeyId'
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 341
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 341
    functionName: nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::GetCurrentAppKeyId
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::GetCurrentUTCTime
    - EnumerateGroupKeys
    - ClearSecretData
    - nl::Weave::WeaveKeyId::UsesCurrentEpochKey
    - RetrieveLastUsedEpochKeyId
    - VerifyOrExit
    - ExitNow
    - nl::Weave::WeaveKeyId::UpdateEpochKeyId
    - SuccessOrExit
    - StoreLastUsedEpochKeyId
    - RetrieveGroupKey
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreBase::GetCurrentAppKeyId(uint32_t keyId, uint32_t& curKeyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::GetCurrentAppKeyId
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:367,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:368,1
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:370,1
    - Dst: nl::Weave::WeaveKeyId::GetRootKeyId
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:373,1
    - Dst: nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::DeriveFabricOrClientRootKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:378,1
    - Dst: RetrieveGroupKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:386,1
    - Dst: nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::DeriveIntermediateKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:391,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:395,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:397,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:405,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - keyId
    - ' groupKey'
    argTypes:
    - uint32_t
    - WeaveGroupKey
    constantsTouched: []
    func_position:
      end: 410
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 410
    functionName: nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::GetGroupKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveKeyId::GetType
    - nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::GetCurrentAppKeyId
    - nl::Weave::WeaveKeyId::GetRootKeyId
    - nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::DeriveFabricOrClientRootKey
    - VerifyOrExit
    - ExitNow
    - SuccessOrExit
    - nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::DeriveIntermediateKey
    - RetrieveGroupKey
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreBase::GetGroupKey(uint32_t keyId, WeaveGroupKey& groupKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RetrieveGroupKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:448,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:449,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:452,1
    - Dst: nl::Weave::Crypto::HKDF<H>::DeriveKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:455,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - rootKeyId
    - ' rootKey'
    argTypes:
    - uint32_t
    - WeaveGroupKey
    constantsTouched: []
    func_position:
      end: 464
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 464
    functionName: nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::DeriveFabricOrClientRootKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Crypto::HKDF<H>::DeriveKey
    - VerifyOrExit
    - RetrieveGroupKey
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreBase::DeriveFabricOrClientRootKey(uint32_t rootKeyId,
      WeaveGroupKey& rootKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::GetRootKeyId
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:490,1
    - Dst: nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::GetGroupKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:493,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:494,1
    - Dst: nl::Weave::WeaveKeyId::GetEpochKeyId
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:497,1
    - Dst: RetrieveGroupKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:500,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:501,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:504,1
    - Dst: nl::Weave::Crypto::HKDF<H>::DeriveKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:511,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:516,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:519,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - keyId
    - ' intermediateKey'
    argTypes:
    - uint32_t
    - WeaveGroupKey
    constantsTouched: []
    func_position:
      end: 523
      start: 483
    functionDepth: 4
    functionLinenumber: 483
    functionLinenumberEnd: 523
    functionName: nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::DeriveIntermediateKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp
    functionUses: 1
    functionsReached:
    - ClearSecretData
    - nl::Weave::WeaveKeyId::GetRootKeyId
    - nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::GetGroupKey
    - VerifyOrExit
    - nl::Weave::Crypto::HKDF<H>::DeriveKey
    - SuccessOrExit
    - nl::Weave::WeaveKeyId::GetEpochKeyId
    - RetrieveGroupKey
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GroupKeyStoreBase::DeriveIntermediateKey(uint32_t keyId, WeaveGroupKey&
      intermediateKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:569,1
    - Dst: nl::Weave::WeaveKeyId::IsAppGroupKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:569,1
    - Dst: nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::GetCurrentAppKeyId
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:572,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:573,1
    - Dst: nl::Weave::WeaveKeyId::GetRootKeyId
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:578,1
    - Dst: nl::Weave::WeaveKeyId::IsAppRotatingKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:579,1
    - Dst: nl::Weave::WeaveKeyId::MakeAppIntermediateKeyId
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:582,1
    - Dst: nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::GetGroupKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:586,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:587,1
    - Dst: nl::Weave::WeaveKeyId::GetAppGroupMasterKeyId
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:590,1
    - Dst: RetrieveGroupKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:593,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:594,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:597,1
    - Dst: nl::Weave::Crypto::HKDF<H>::DeriveKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:600,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:605,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:611,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 9
    argNames:
    - ' keyId'
    - keySalt
    - saltLen
    - keyDiversifier
    - diversifierLen
    - appKey
    - keyBufSize
    - keyLen
    - ' appGroupGlobalId'
    argTypes:
    - uint32_t
    - uint8_t*
    - uint8_t
    - uint8_t*
    - uint8_t
    - uint8_t*
    - uint8_t
    - uint8_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 615
      start: 557
    functionDepth: 4
    functionLinenumber: 557
    functionLinenumberEnd: 615
    functionName: nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::DeriveApplicationKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::GetCurrentAppKeyId
    - nl::Weave::WeaveKeyId::GetAppGroupMasterKeyId
    - ClearSecretData
    - nl::Weave::WeaveKeyId::GetRootKeyId
    - nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::GetGroupKey
    - nl::Weave::WeaveKeyId::IsAppGroupKey
    - VerifyOrExit
    - nl::Weave::Crypto::HKDF<H>::DeriveKey
    - nl::Weave::WeaveKeyId::MakeAppIntermediateKeyId
    - SuccessOrExit
    - nl::Weave::WeaveKeyId::IsAppRotatingKey
    - RetrieveGroupKey
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "GroupKeyStoreBase::DeriveApplicationKey(uint32_t& keyId,\n                                                    const
      uint8_t *keySalt, uint8_t saltLen,\n                                                    const
      uint8_t *keyDiversifier, uint8_t diversifierLen,\n                                                    uint8_t
      *appKey, uint8_t keyBufSize, uint8_t keyLen,\n                                                    uint32_t&
      appGroupGlobalId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:90,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::Reset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::Init
    - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::Reset
    linkageType: ''
    returnType: void
    signature: WeaveStandAloneKeyExportClient::Init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::Reset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:101,1
    - Dst: SetAllowedConfigs
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 112
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::Reset
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::Reset
    - SetAllowedConfigs
    linkageType: ''
    returnType: void
    signature: WeaveStandAloneKeyExportClient::Reset(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:143,1
    - Dst: State
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:143,1
    - Dst: State
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:144,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::GenerateKeyExportRequest
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:156,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 9
    argNames:
    - keyId
    - responderNodeId
    - clientCert
    - clientCertLen
    - clientKey
    - clientKeyLen
    - reqBuf
    - reqBufSize
    - ' reqLen'
    argTypes:
    - uint32_t
    - uint64_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 167
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 167
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::GenerateKeyExportRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp
    functionUses: 1
    functionsReached:
    - State
    - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::GenerateKeyExportRequest
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveStandAloneKeyExportClient::GenerateKeyExportRequest(uint32_t
      keyId, uint64_t responderNodeId, const uint8_t* clientCert,\n        uint16_t
      clientCertLen, const uint8_t* clientKey, uint16_t clientKeyLen, uint8_t* reqBuf,
      uint16_t reqBufSize, uint16_t& reqLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:196,1
    - Dst: State
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:196,1
    - Dst: State
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:197,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::GenerateKeyExportRequest
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:207,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 7
    argNames:
    - keyId
    - responderNodeId
    - accessToken
    - accessTokenLen
    - reqBuf
    - reqBufSize
    - ' reqLen'
    argTypes:
    - uint32_t
    - uint64_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 216
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 216
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::GenerateKeyExportRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp
    functionUses: 2
    functionsReached:
    - State
    - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::GenerateKeyExportRequest
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveStandAloneKeyExportClient::GenerateKeyExportRequest(uint32_t
      keyId, uint64_t responderNodeId,\n        const uint8_t *accessToken, uint16_t
      accessTokenLen,\n        uint8_t *reqBuf, uint16_t reqBufSize, uint16_t& reqLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:245,1
    - Dst: State
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:245,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:248,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ProcessKeyExportResponse
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:251,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 7
    argNames:
    - resp
    - respLen
    - responderNodeId
    - exportedKeyBuf
    - exportedKeyBufSize
    - exportedKeyLen
    - exportedKeyId
    argTypes:
    - uint8_t*
    - uint16_t
    - uint64_t
    - uint8_t*
    - uint16_t
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 256
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 256
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ProcessKeyExportResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp
    functionUses: 1
    functionsReached:
    - State
    - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ProcessKeyExportResponse
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveStandAloneKeyExportClient::ProcessKeyExportResponse(const uint8_t
      *resp, uint16_t respLen, uint64_t responderNodeId,\n        uint8_t *exportedKeyBuf,
      uint16_t exportedKeyBufSize, uint16_t &exportedKeyLen, uint32_t &exportedKeyId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:274,1
    - Dst: State
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:274,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ProcessKeyExportReconfigure
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:277,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - reconfig
    - reconfigLen
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 282
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 282
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ProcessKeyExportReconfigure
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ProcessKeyExportReconfigure
    - State
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveStandAloneKeyExportClient::ProcessKeyExportReconfigure(const uint8_t
      *reconfig, uint16_t reconfigLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::GetNodeCertSet
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:288,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keyExport
    - ' certSet'
    argTypes:
    - WeaveKeyExport*
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::GetNodeCertSet
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::GetNodeCertSet
    - WeaveKeyExport*::IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveStandAloneKeyExportClient::GetNodeCertSet(WeaveKeyExport * keyExport,
      WeaveCertificateSet & certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ReleaseNodeCertSet
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:293,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keyExport
    - ' certSet'
    argTypes:
    - WeaveKeyExport*
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ReleaseNodeCertSet
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ReleaseNodeCertSet
    - WeaveKeyExport*::IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveStandAloneKeyExportClient::ReleaseNodeCertSet(WeaveKeyExport *
      keyExport, WeaveCertificateSet & certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::GetNodePrivateKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:303,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:303,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:304,1
    - Dst: GenerateAndEncodeWeaveECDSASignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:306,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:306,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:307,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ReleaseNodePrivateKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:312,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - keyExport
    - msgHash
    - msgHashLen
    - ' writer'
    argTypes:
    - WeaveKeyExport*
    - uint8_t*
    - uint8_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 316
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 316
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::GenerateNodeSignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::GetNodePrivateKey
    - WeaveKeyExport*::IsInitiator
    - GenerateAndEncodeWeaveECDSASignature
    - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ReleaseNodePrivateKey
    - SuccessOrExit
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveStandAloneKeyExportClient::GenerateNodeSignature(WeaveKeyExport
      * keyExport, const uint8_t * msgHash, uint8_t msgHashLen,\n    TLVWriter & writer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::BeginCertValidation
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:321,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - keyExport
    - ' validCtx'
    - ' certSet'
    argTypes:
    - WeaveKeyExport*
    - ValidationContext
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::BeginCertValidation
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp
    functionUses: 1
    functionsReached:
    - WeaveKeyExport*::IsInitiator
    - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::BeginCertValidation
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveStandAloneKeyExportClient::BeginCertValidation(WeaveKeyExport
      * keyExport, ValidationContext & validCtx,\n        WeaveCertificateSet & certSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::HandleCertValidationResult
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:327,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:327,1
    - Dst: WeaveKeyExport*::MessageInfo
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - keyExport
    - ' validCtx'
    - ' certSet'
    - requestedKeyId
    argTypes:
    - WeaveKeyExport*
    - ValidationContext
    - WeaveCertificateSet
    - uint32_t
    constantsTouched: []
    func_position:
      end: 328
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 328
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::HandleCertValidationResult
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::HandleCertValidationResult
    - WeaveKeyExport*::MessageInfo
    - WeaveKeyExport*::IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveStandAloneKeyExportClient::HandleCertValidationResult(WeaveKeyExport
      * keyExport, ValidationContext & validCtx,\n        WeaveCertificateSet & certSet,
      uint32_t requestedKeyId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::EndCertValidation
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:333,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - keyExport
    - ' validCtx'
    - ' certSet'
    argTypes:
    - WeaveKeyExport*
    - ValidationContext
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 334
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 334
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::EndCertValidation
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp
    functionUses: 1
    functionsReached:
    - WeaveKeyExport*::IsInitiator
    - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::EndCertValidation
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveStandAloneKeyExportClient::EndCertValidation(WeaveKeyExport *
      keyExport, ValidationContext & validCtx,\n        WeaveCertificateSet & certSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keyExport
    - requestedKeyId
    argTypes:
    - WeaveKeyExport*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 340
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 340
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ValidateUnsignedKeyExportMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveStandAloneKeyExportClient::ValidateUnsignedKeyExportMessage(WeaveKeyExport
      * keyExport, uint32_t requestedKeyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:356,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:359,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:360,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:366,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:367,1
    - Dst: LoadAccessTokenCerts
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:372,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:373,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:377,1
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:383,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - isInitiator
    - ' certSet'
    argTypes:
    - bool
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 387
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 387
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::GetNodeCertSet
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp
    functionUses: 1
    functionsReached:
    - LoadCert
    - VerifyOrExit
    - ExitNow
    - LoadAccessTokenCerts
    - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::Init
    - Release
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveStandAloneKeyExportClient::GetNodeCertSet(bool isInitiator, WeaveCertificateSet&
      certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:393,1
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - isInitiator
    - ' certSet'
    argTypes:
    - bool
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 399
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 399
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ReleaseNodeCertSet
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp
    functionUses: 1
    functionsReached:
    - Release
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveStandAloneKeyExportClient::ReleaseNodeCertSet(bool isInitiator,
      WeaveCertificateSet& certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:406,1
    - Dst: malloc
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:418,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:419,1
    - Dst: ExtractPrivateKeyFromAccessToken
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:422,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:423,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:431,1
    - Dst: free
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:436,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - isInitiator
    - ' weavePrivKey'
    - ' weavePrivKeyLen'
    argTypes:
    - bool
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 438
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 438
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::GetNodePrivateKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp
    functionUses: 1
    functionsReached:
    - VerifyOrExit
    - ExitNow
    - free
    - ExtractPrivateKeyFromAccessToken
    - SuccessOrExit
    - malloc
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveStandAloneKeyExportClient::GetNodePrivateKey(bool isInitiator,
      const uint8_t*& weavePrivKey, uint16_t& weavePrivKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:444,1
    - Dst: free
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:453,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:457,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - isInitiator
    - ' weavePrivKey'
    argTypes:
    - bool
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 462
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 462
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ReleaseNodePrivateKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp
    functionUses: 1
    functionsReached:
    - free
    - VerifyOrExit
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveStandAloneKeyExportClient::ReleaseNodePrivateKey(bool isInitiator,
      const uint8_t *& weavePrivKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:477,1
    - Dst: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:479,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:480,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:484,1
    - Dst: SecondsSinceEpochToPackedCertTime
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:485,1
    - Dst: time
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:485,1
    - Dst: AddTrustedKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:494,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:499,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:502,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:505,1
    - Dst: AddTrustedKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:515,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:520,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:523,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:526,1
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:532,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 3
    argNames:
    - isInitiator
    - ' certSet'
    - ' validContext'
    argTypes:
    - bool
    - WeaveCertificateSet
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 536
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 536
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::BeginCertValidation
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp
    functionUses: 1
    functionsReached:
    - LoadCert
    - VerifyOrExit
    - memset
    - AddTrustedKey
    - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::Init
    - SuccessOrExit
    - Release
    - SecondsSinceEpochToPackedCertTime
    - time
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveStandAloneKeyExportClient::BeginCertValidation(bool isInitiator,
      WeaveCertificateSet& certSet, ValidationContext& validContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:544,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - isInitiator
    - ' certSet'
    - ' validContext'
    - pktInfo
    - msgInfo
    - requestedKeyId
    argTypes:
    - bool
    - WeaveCertificateSet
    - ValidationContext
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 552
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 552
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::HandleCertValidationResult
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp
    functionUses: 1
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveStandAloneKeyExportClient::HandleCertValidationResult(bool isInitiator,
      WeaveCertificateSet& certSet, ValidationContext& validContext,\n        const
      IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t requestedKeyId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:558,1
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - isInitiator
    - ' certSet'
    - ' validContext'
    argTypes:
    - bool
    - WeaveCertificateSet
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 564
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 564
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::EndCertValidation
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp
    functionUses: 1
    functionsReached:
    - Release
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveStandAloneKeyExportClient::EndCertValidation(bool isInitiator,
      WeaveCertificateSet& certSet, ValidationContext& validContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - isInitiator
    - pktInfo
    - msgInfo
    - requestedKeyId
    argTypes:
    - bool
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 571
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 571
    functionName: nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ValidateUnsignedKeyExportMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveStandAloneKeyExportClient::ValidateUnsignedKeyExportMessage(bool
      isInitiator, const IPPacketInfo *pktInfo,\n        const WeaveMessageInfo *msgInfo,
      uint32_t requestedKeyId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:54,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:56,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:56,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:57,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:59,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:59,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:60,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:62,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:62,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:63,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:67,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:67,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:68,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:71,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:72,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:74,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:75,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 6
    argNames:
    - weaveCurveId
    - pubKey
    - ' privKey'
    - outBuf
    - outBufSize
    - ' outLen'
    argTypes:
    - uint32_t
    - EncodedECPublicKey*
    - EncodedECPrivateKey
    - uint8_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 81
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 81
    functionName: nl::Weave::Profiles::Security::WEAVE_ERROR::EncodeWeaveECPrivateKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp
    functionUses: 0
    functionsReached:
    - TLVWriter::Finalize
    - ContextTag
    - ProfileTag
    - TLVWriter::PutBytes
    - TLVWriter::EndContainer
    - TLVWriter::GetLengthWritten
    - SuccessOrExit
    - TLVWriter::Init
    - TLVWriter::Put
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: "WEAVE_ERROR EncodeWeaveECPrivateKey(uint32_t weaveCurveId, const EncodedECPublicKey
      *pubKey, const EncodedECPrivateKey& privKey,\n                                    uint8_t
      *outBuf, uint32_t outBufSize, uint32_t& outLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:95,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:97,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:97,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:98,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:100,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:101,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:105,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:108,1
    - Dst: IsContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:108,1
    - Dst: TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:110,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:113,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:114,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:115,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:122,1
    - Dst: TLVReader::GetDataPtr
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:123,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:124,1
    - Dst: TLVReader::GetLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:125,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:129,1
    - Dst: TLVReader::GetDataPtr
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:130,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:131,1
    - Dst: TLVReader::GetLength
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:132,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:136,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:141,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:143,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp:144,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 5
    argNames:
    - buf
    - len
    - ' weaveCurveId'
    - ' pubKey'
    - ' privKey'
    argTypes:
    - uint8_t*
    - uint32_t
    - uint32_t
    - EncodedECPublicKey
    - EncodedECPrivateKey
    constantsTouched: []
    func_position:
      end: 148
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 148
    functionName: nl::Weave::Profiles::Security::WEAVE_ERROR::DecodeWeaveECPrivateKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - IsContextTag
    - TLVReader::Next
    - TLVReader::GetLength
    - VerifyOrExit
    - ExitNow
    - TLVReader::EnterContainer
    - ProfileTag
    - TLVReader::ExitContainer
    - TagNumFromTag
    - SuccessOrExit
    - TLVReader::GetDataPtr
    - TLVReader::Get
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: "WEAVE_ERROR DecodeWeaveECPrivateKey(const uint8_t *buf, uint32_t len,
      uint32_t& weaveCurveId,\n                                    EncodedECPublicKey&
      pubKey, EncodedECPrivateKey& privKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:53,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - keyId
    - ' key'
    argTypes:
    - uint32_t
    - WeaveGroupKey
    constantsTouched: []
    func_position:
      end: 64
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 64
    functionName: nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceGroupKeyStore::RetrieveGroupKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - memset
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: RetrieveGroupKey(uint32_t keyId, WeaveGroupKey& key)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - deviceCert
    - deviceCertLen
    - devicePrivKey
    - devicePrivKeyLen
    - rootCert
    - rootCertLen
    argTypes:
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::SimulatedDeviceKeyExportDelegate
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SimulatedDeviceKeyExportDelegate(const uint8_t *deviceCert, uint16_t
      deviceCertLen,\n                                     const uint8_t *devicePrivKey,
      uint16_t devicePrivKeyLen,\n                                     const uint8_t
      *rootCert, uint16_t rootCertLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:93,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:93,1
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:95,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:96,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:98,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:99,1
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - keyExport
    - ' certSet'
    argTypes:
    - WeaveKeyExport*
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 107
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 107
    functionName: nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::GetNodeCertSet
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp
    functionUses: 0
    functionsReached:
    - LoadCert
    - WeaveKeyExport*::IsInitiator
    - VerifyOrExit
    - Init
    - Release
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetNodeCertSet(WeaveKeyExport * keyExport, WeaveCertificateSet& certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:113,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:113,1
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - keyExport
    - ' certSet'
    argTypes:
    - WeaveKeyExport*
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::ReleaseNodeCertSet
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp
    functionUses: 0
    functionsReached:
    - Release
    - VerifyOrExit
    - WeaveKeyExport*::IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReleaseNodeCertSet(WeaveKeyExport * keyExport, WeaveCertificateSet&
      certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenerateAndEncodeWeaveECDSASignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:124,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - keyExport
    - msgHash
    - msgHashLen
    - ' writer'
    argTypes:
    - WeaveKeyExport*
    - uint8_t*
    - uint8_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::GenerateNodeSignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::ContextTag
    - GenerateAndEncodeWeaveECDSASignature
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "GenerateNodeSignature(WeaveKeyExport * keyExport, const uint8_t *
      msgHash, uint8_t msgHashLen,\n            TLVWriter & writer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:138,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:138,1
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:140,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:141,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:144,1
    - Dst: SecondsSinceEpochToPackedCertTime
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:145,1
    - Dst: time
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:145,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:150,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - keyExport
    - ' validCtx'
    - ' certSet'
    argTypes:
    - WeaveKeyExport*
    - ValidationContext
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 155
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 155
    functionName: nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::BeginCertValidation
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp
    functionUses: 0
    functionsReached:
    - LoadCert
    - WeaveKeyExport*::IsInitiator
    - SecondsSinceEpochToPackedCertTime
    - VerifyOrExit
    - memset
    - Init
    - SuccessOrExit
    - time
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "BeginCertValidation(WeaveKeyExport * keyExport, ValidationContext
      & validCtx,\n            WeaveCertificateSet & certSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - keyExport
    - ' validCtx'
    - ' certSet'
    - requestedKeyId
    argTypes:
    - WeaveKeyExport*
    - ValidationContext
    - WeaveCertificateSet
    - uint32_t
    constantsTouched: []
    func_position:
      end: 166
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 166
    functionName: nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::HandleCertValidationResult
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "HandleCertValidationResult(WeaveKeyExport * keyExport, ValidationContext
      & validCtx,\n            WeaveCertificateSet & certSet, uint32_t requestedKeyId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:173,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:173,1
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - keyExport
    - ' validCtx'
    - ' certSet'
    argTypes:
    - WeaveKeyExport*
    - ValidationContext
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 179
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 179
    functionName: nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::EndCertValidation
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp
    functionUses: 0
    functionsReached:
    - Release
    - VerifyOrExit
    - WeaveKeyExport*::IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "EndCertValidation(WeaveKeyExport * keyExport, ValidationContext &
      validCtx,\n            WeaveCertificateSet & certSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keyExport
    - requestedKeyId
    argTypes:
    - WeaveKeyExport*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::ValidateUnsignedKeyExportMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ValidateUnsignedKeyExportMessage(WeaveKeyExport * keyExport, uint32_t
      requestedKeyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:198,1
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:200,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:201,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:203,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:204,1
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - isInitiator
    - ' certSet'
    argTypes:
    - bool
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 212
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 212
    functionName: nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::GetNodeCertSet
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp
    functionUses: 0
    functionsReached:
    - LoadCert
    - VerifyOrExit
    - Release
    - Init
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetNodeCertSet(bool isInitiator, WeaveCertificateSet& certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:218,1
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - isInitiator
    - ' certSet'
    argTypes:
    - bool
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 224
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 224
    functionName: nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::ReleaseNodeCertSet
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp
    functionUses: 0
    functionsReached:
    - Release
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReleaseNodeCertSet(bool isInitiator, WeaveCertificateSet& certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - isInitiator
    - ' weavePrivKey'
    - ' weavePrivKeyLen'
    argTypes:
    - bool
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::GetNodePrivateKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetNodePrivateKey(bool isInitiator, const uint8_t *& weavePrivKey,
      uint16_t& weavePrivKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - isInitiator
    - ' weavePrivKey'
    argTypes:
    - bool
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::ReleaseNodePrivateKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReleaseNodePrivateKey(bool isInitiator, const uint8_t *& weavePrivKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:247,1
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:249,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:250,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:253,1
    - Dst: SecondsSinceEpochToPackedCertTime
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:254,1
    - Dst: time
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:254,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:259,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - isInitiator
    - ' certSet'
    - ' validCtx'
    argTypes:
    - bool
    - WeaveCertificateSet
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 264
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 264
    functionName: nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::BeginCertValidation
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp
    functionUses: 0
    functionsReached:
    - LoadCert
    - VerifyOrExit
    - memset
    - SuccessOrExit
    - Init
    - SecondsSinceEpochToPackedCertTime
    - time
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BeginCertValidation(bool isInitiator, WeaveCertificateSet& certSet,
      ValidationContext& validCtx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - isInitiator
    - ' certSet'
    - ' validCtx'
    - pktInfo
    - msgInfo
    - requestedKeyId
    argTypes:
    - bool
    - WeaveCertificateSet
    - ValidationContext
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 275
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 275
    functionName: nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::HandleCertValidationResult
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "HandleCertValidationResult(bool isInitiator, WeaveCertificateSet&
      certSet, ValidationContext& validCtx,\n        const IPPacketInfo *pktInfo,
      const WeaveMessageInfo *msgInfo, uint32_t requestedKeyId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:281,1
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - isInitiator
    - ' certSet'
    - ' validCtx'
    argTypes:
    - bool
    - WeaveCertificateSet
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 287
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 287
    functionName: nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::EndCertValidation
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp
    functionUses: 0
    functionsReached:
    - Release
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EndCertValidation(bool isInitiator, WeaveCertificateSet& certSet, ValidationContext&
      validCtx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - isInitiator
    - pktInfo
    - msgInfo
    - requestedKeyId
    argTypes:
    - bool
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 294
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 294
    functionName: nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::ValidateUnsignedKeyExportMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "ValidateUnsignedKeyExportMessage(bool isInitiator, const IPPacketInfo
      *pktInfo,\n            const WeaveMessageInfo *msgInfo, uint32_t requestedKeyId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveKeyExport::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:319,1
    - Dst: WeaveKeyExport::SetAllowedConfigs
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:320,1
    - Dst: WeaveKeyExport::ProcessKeyExportRequest
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:326,1
    - Dst: WeaveKeyExport::GenerateKeyExportReconfigure
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:331,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:332,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:338,1
    - Dst: WeaveKeyExport::GenerateKeyExportResponse
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:341,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:342,1
    - Dst: WeaveKeyExport::Reset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 12
    argNames:
    - deviceCert
    - deviceCertLen
    - devicePrivKey
    - devicePrivKeyLen
    - trustRootCert
    - trustRootCertLen
    - exportReq
    - exportReqLen
    - exportRespBuf
    - exportRespBufSize
    - ' exportRespLen'
    - ' respIsReconfig'
    argTypes:
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint16_t
    - bool
    constantsTouched: []
    func_position:
      end: 348
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 348
    functionName: nl::Weave::Profiles::Security::KeyExport::SimulateDeviceKeyExport
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp
    functionUses: 0
    functionsReached:
    - WeaveKeyExport::Reset
    - WeaveKeyExport::GenerateKeyExportResponse
    - WeaveKeyExport::SetAllowedConfigs
    - WeaveKeyExport::Init
    - SuccessOrExit
    - WeaveKeyExport::ProcessKeyExportRequest
    - WeaveKeyExport::GenerateKeyExportReconfigure
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SimulateDeviceKeyExport(const uint8_t *deviceCert, uint16_t deviceCertLen,\n
      \                                   const uint8_t *devicePrivKey, uint16_t devicePrivKeyLen,\n
      \                                   const uint8_t *trustRootCert, uint16_t trustRootCertLen,\n
      \                                   const uint8_t *exportReq, uint16_t exportReqLen,\n
      \                                   uint8_t *exportRespBuf, uint16_t exportRespBufSize,
      uint16_t& exportRespLen,\n                                    bool& respIsReconfig)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 311
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKE.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeaveTAKEEngine
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:64,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:65,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:68,1
    - Dst: nl::Weave::Profiles::Security::CASE::BeginSessionRequestContext::HeadLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:68,1
    - Dst: PerformKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:72,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:80,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:83,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:86,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:89,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:92,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:96,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 104
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 104
    functionName: nl::Weave::Profiles::Security::CASE::BeginSessionRequestContext::EncodeHead
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - nl::Weave::Encoding::LittleEndian::Write16
    - nl::Weave::Encoding::LittleEndian::Write32
    - nl::Weave::Profiles::Security::CASE::BeginSessionRequestContext::HeadLength
    - PerformKeyConfirm
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BeginSessionRequestContext::EncodeHead(PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:116,1
    - Dst: SetPerformKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:121,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:122,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:126,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:128,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:132,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:135,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:138,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:141,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:144,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:148,1
    - Dst: nl::Weave::Profiles::Security::CASE::BeginSessionRequestContext::HeadLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:148,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:149,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:153,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 177
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 177
    functionName: nl::Weave::Profiles::Security::CASE::BeginSessionRequestContext::DecodeHead
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - VerifyOrExit
    - SetPerformKeyConfirm
    - nl::Weave::Encoding::LittleEndian::Read32
    - nl::Weave::Encoding::LittleEndian::Read16
    - nl::Weave::Profiles::Security::CASE::BeginSessionRequestContext::HeadLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BeginSessionRequestContext::DecodeHead(PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - config
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 186
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 186
    functionName: nl::Weave::Profiles::Security::CASE::BeginSessionRequestContext::IsAltConfig
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: BeginSessionRequestContext::IsAltConfig(uint32_t config) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:197,1
    - Dst: nl::Weave::Profiles::Security::CASE::BeginSessionResponseContext::HeadLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:197,1
    - Dst: PerformKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:201,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:212,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:223,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 230
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 230
    functionName: nl::Weave::Profiles::Security::CASE::BeginSessionResponseContext::EncodeHead
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::CASE::BeginSessionResponseContext::HeadLength
    - VerifyOrExit
    - ExitNow
    - nl::Weave::Encoding::LittleEndian::Write16
    - PerformKeyConfirm
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BeginSessionResponseContext::EncodeHead(PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:242,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:246,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:250,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:251,1
    - Dst: SetPerformKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:257,1
    - Dst: SetPerformKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:261,1
    - Dst: SetPerformKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:265,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:269,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:274,1
    - Dst: PerformKeyConfirm
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:296,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 300
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 300
    functionName: nl::Weave::Profiles::Security::CASE::BeginSessionResponseContext::DecodeHead
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - ExitNow
    - SetPerformKeyConfirm
    - nl::Weave::Encoding::LittleEndian::Read16
    - PerformKeyConfirm
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BeginSessionResponseContext::DecodeHead(PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:309,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:312,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:315,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 322
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 322
    functionName: nl::Weave::Profiles::Security::CASE::ReconfigureContext::Encode
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Write32
    - PacketBuffer*::SetDataLength
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReconfigureContext::Encode(PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:331,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:332,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:334,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - msgBuf
    - ' msg'
    argTypes:
    - PacketBuffer*
    - ReconfigureContext
    constantsTouched: []
    func_position:
      end: 339
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 339
    functionName: nl::Weave::Profiles::Security::CASE::ReconfigureContext::Decode
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp
    functionUses: 1
    functionsReached:
    - VerifyOrExit
    - nl::Weave::Encoding::LittleEndian::Read32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReconfigureContext::Decode(PacketBuffer *msgBuf, ReconfigureContext&
      msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_GET_REASON
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:95,1
    - Dst: ERR_get_error
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - defaultErr
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: nl::Weave::Profiles::Security::TranslateOpenSSLError
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp
    functionUses: 0
    functionsReached:
    - ERR_get_error
    - ERR_GET_REASON
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TranslateOpenSSLError(WEAVE_ERROR defaultErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveCertificateSet::Init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:110,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:111,1
    - Dst: WeaveCertificateSet::LoadCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:114,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:115,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:118,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:121,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:124,1
    - Dst: DecodeWeaveECPrivateKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:127,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:128,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:132,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:135,1
    - Dst: WeaveCertificateData*::PublicKey::EC::IsEqual
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:135,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:138,1
    - Dst: Verhoeff32::ValidateCheckChar
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:138,1
    - Dst: WeaveCertificateSet::Release
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - expectedDeviceId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 143
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 143
    functionName: nl::Weave::Profiles::Security::WeaveProvisioningBundle::Verify
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp
    functionUses: 0
    functionsReached:
    - WeaveCertificateSet::Init
    - WeaveCertificateSet::Release
    - WeaveCertificateData*::PublicKey::EC::IsEqual
    - VerifyOrExit
    - Verhoeff32::ValidateCheckChar
    - SuccessOrExit
    - WeaveCertificateSet::LoadCert
    - DecodeWeaveECPrivateKey
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveProvisioningBundle::Verify(uint64_t expectedDeviceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveProvisioningBundle::Clear
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:165,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:167,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:168,1
    - Dst: EVP_CIPHER_CTX_init
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:170,1
    - Dst: Base64Decode
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:173,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:174,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:177,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:180,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:181,1
    - Dst: malloc
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:185,1
    - Dst: PKCS5_PBKDF2_HMAC
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:188,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:191,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:194,1
    - Dst: TranslateOpenSSLError
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:194,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:198,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:198,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:203,1
    - Dst: TranslateOpenSSLError
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:203,1
    - Dst: EVP_CipherUpdate
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:210,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:212,1
    - Dst: TranslateOpenSSLError
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:212,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:219,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:221,1
    - Dst: TranslateOpenSSLError
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:221,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:225,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:229,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:232,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:235,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:236,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:237,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read64
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:238,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:246,1
    - Dst: HMACSHA256::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:249,1
    - Dst: HMACSHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:250,1
    - Dst: HMACSHA256::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:251,1
    - Dst: ConstantTimeCompare
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:254,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:255,1
    - Dst: free
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:259,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp:261,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 56
    argCount: 5
    argNames:
    - provBundleBuf
    - provBundleLen
    - masterKey
    - masterKeyLen
    - provBundle
    argTypes:
    - uint8_t*
    - uint32_t
    - char*
    - uint32_t
    - WeaveProvisioningBundle
    constantsTouched: []
    func_position:
      end: 263
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 263
    functionName: nl::Weave::Profiles::Security::WeaveProvisioningBundle::Decode
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp
    functionUses: 0
    functionsReached:
    - HMACSHA256::Finish
    - Base64Decode
    - EVP_CipherInit_ex
    - HMACSHA256::Begin
    - ConstantTimeCompare
    - EVP_sha1
    - VerifyOrExit
    - WeaveProvisioningBundle::Clear
    - TranslateOpenSSLError
    - nl::Weave::Encoding::LittleEndian::Read16
    - EVP_CIPHER_CTX_new
    - ExitNow
    - EVP_CipherFinal_ex
    - EVP_CIPHER_CTX_free
    - EVP_aes_256_cbc
    - EVP_CIPHER_CTX_init
    - HMACSHA256::AddData
    - PKCS5_PBKDF2_HMAC
    - free
    - memcpy
    - EVP_CipherUpdate
    - nl::Weave::Encoding::LittleEndian::Read64
    - malloc
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveProvisioningBundle::Decode(uint8_t *provBundleBuf, uint32_t provBundleLen,
      const char *masterKey, uint32_t masterKeyLen, WeaveProvisioningBundle &provBundle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 274
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 274
    functionName: nl::Weave::Profiles::Security::WeaveProvisioningBundle::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveProvisioningBundle::Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: Schema::Weave::Trait::Auth::ApplicationKeysTrait::ApplicationKeysTraitDataSink::ApplicationKeysTraitDataSink
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ApplicationKeysTraitDataSink::ApplicationKeysTraitDataSink(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - groupKeyStore
    argTypes:
    - GroupKeyStoreBase*
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: Schema::Weave::Trait::Auth::ApplicationKeysTrait::ApplicationKeysTraitDataSink::SetGroupKeyStore
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ApplicationKeysTraitDataSink::SetGroupKeyStore(GroupKeyStoreBase *groupKeyStore)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aType
    - aInEventParam
    argTypes:
    - uint16_t
    - void*
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: Schema::Weave::Trait::Auth::ApplicationKeysTrait::ApplicationKeysTraitDataSink::OnEvent
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ApplicationKeysTraitDataSink::OnEvent(uint16_t aType, void *aInEventParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:118,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:119,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:122,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:129,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:129,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:131,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:132,1
    - Dst: DeleteGroupKeysOfAType
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:135,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:137,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:143,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:148,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:149,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:158,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:158,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:159,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:160,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:161,1
    - Dst: nl::Weave::WeaveKeyId::MakeEpochKeyId
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:162,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:164,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:165,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:167,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:168,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:168,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:170,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:171,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:174,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:175,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:178,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:178,1
    - Dst: nl::Weave::Platform::DivideBy1000
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:182,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:184,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:184,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:190,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:190,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:191,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:192,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:193,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:195,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:195,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:196,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:197,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:198,1
    - Dst: nl::Weave::WeaveKeyId::MakeAppGroupMasterKeyId
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:199,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:201,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:201,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:203,1
    - Dst: TLVReader::GetLength
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:204,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:205,1
    - Dst: TLVReader::GetBytes
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:206,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:207,1
    - Dst: StoreGroupKey
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:209,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:210,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:212,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:216,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:217,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:221,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:222,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp:226,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 73
    argCount: 2
    argNames:
    - aLeafHandle
    - aReader
    argTypes:
    - PropertyPathHandle
    - TLVReader
    constantsTouched: []
    func_position:
      end: 229
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 229
    functionName: Schema::Weave::Trait::Auth::ApplicationKeysTrait::ApplicationKeysTraitDataSink::SetLeafData
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Next
    - TLVReader::ExitContainer
    - TLVReader::Get
    - ClearSecretData
    - nl::Weave::WeaveKeyId::MakeAppGroupMasterKeyId
    - VerifyOrExit
    - WeaveLogDetail
    - nl::Weave::WeaveKeyId::MakeEpochKeyId
    - TLVReader::GetLength
    - TLVReader::GetType
    - nl::Weave::Platform::DivideBy1000
    - ExitNow
    - TLVReader::EnterContainer
    - TLVReader::GetBytes
    - StoreGroupKey
    - ContextTag
    - DeleteGroupKeysOfAType
    - TLVReader::GetTag
    - SuccessOrExit
    - static_cast<int64_t>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ApplicationKeysTraitDataSink::SetLeafData(PropertyPathHandle aLeafHandle,
      TLVReader &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LastCert
      Src: /src/openweave-core/src/lib/profiles/security/WeaveSig.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' certSet'
    argTypes:
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: nl::Weave::Profiles::Security::WeaveSignatureGeneratorBase::WeaveSignatureGeneratorBase
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSig.h
    functionUses: 0
    functionsReached:
    - LastCert
    linkageType: ''
    returnType: void
    signature: WeaveSignatureGeneratorBase::WeaveSignatureGeneratorBase(WeaveCertificateSet
      & certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' certSet'
    - privKey
    - privKeyLen
    argTypes:
    - WeaveCertificateSet
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: nl::Weave::Profiles::Security::WeaveSignatureGenerator::WeaveSignatureGenerator
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveSig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveSignatureGenerator::WeaveSignatureGenerator(WeaveCertificateSet
      & certSet, const uint8_t * privKey, uint16_t privKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:67,1
    - Dst: SHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:68,1
    - Dst: SHA1::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:69,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' encPasscodeStruct'
    argTypes:
    - EncryptedPasscodeStruct
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: nl::Weave::Profiles::Security::Passcodes::GeneratePasscodeFingerprint_Config1
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp
    functionUses: 0
    functionsReached:
    - SHA1::Begin
    - SHA1::Finish
    - SHA1::AddData
    - memcpy
    linkageType: ''
    returnType: void
    signature: GeneratePasscodeFingerprint_Config1(EncryptedPasscodeStruct& encPasscodeStruct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:81,1
    - Dst: SHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:82,1
    - Dst: SHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:83,1
    - Dst: SHA1::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:84,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' encPasscodeStruct'
    argTypes:
    - EncryptedPasscodeStruct
    constantsTouched: []
    func_position:
      end: 88
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 88
    functionName: nl::Weave::Profiles::Security::Passcodes::EncryptPasscode_Config1
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp
    functionUses: 0
    functionsReached:
    - SHA1::Begin
    - SHA1::Finish
    - SHA1::AddData
    - memcpy
    linkageType: ''
    returnType: void
    signature: EncryptPasscode_Config1(EncryptedPasscodeStruct& encPasscodeStruct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:98,1
    - Dst: SHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:99,1
    - Dst: SHA1::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:100,1
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:103,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' encPasscodeStruct'
    argTypes:
    - EncryptedPasscodeStruct
    constantsTouched: []
    func_position:
      end: 108
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 108
    functionName: nl::Weave::Profiles::Security::Passcodes::VerifyPasscodeFingerprint_Config1
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - SHA1::AddData
    - SHA1::Finish
    - VerifyOrExit
    - SHA1::Begin
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: VerifyPasscodeFingerprint_Config1(const EncryptedPasscodeStruct& encPasscodeStruct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:119,1
    - Dst: SHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:120,1
    - Dst: SHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:121,1
    - Dst: SHA1::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:122,1
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:125,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:126,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ' encPasscodeStruct'
    - decryptedPasscode
    argTypes:
    - EncryptedPasscodeStruct
    - uint8_t[]
    constantsTouched: []
    func_position:
      end: 133
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 133
    functionName: nl::Weave::Profiles::Security::Passcodes::DecryptPasscode_Config1
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - SHA1::AddData
    - SHA1::Finish
    - VerifyOrExit
    - memcpy
    - SHA1::Begin
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "DecryptPasscode_Config1(const EncryptedPasscodeStruct& encPasscodeStruct,\n
      \                                          uint8_t decryptedPasscode[kPasscodePaddedLen])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HMACSHA1::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:149,1
    - Dst: HMACSHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:150,1
    - Dst: HMACSHA1::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:151,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - fingerprintKey
    - ' encPasscodeStruct'
    argTypes:
    - uint8_t*
    - EncryptedPasscodeStruct
    constantsTouched: []
    func_position:
      end: 155
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 155
    functionName: nl::Weave::Profiles::Security::Passcodes::GeneratePasscodeFingerprint_Config2
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp
    functionUses: 0
    functionsReached:
    - HMACSHA1::Finish
    - HMACSHA1::AddData
    - memcpy
    - HMACSHA1::Begin
    linkageType: ''
    returnType: void
    signature: GeneratePasscodeFingerprint_Config2(const uint8_t *fingerprintKey,
      EncryptedPasscodeStruct& encPasscodeStruct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES128BlockCipherEnc::SetKey
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:164,1
    - Dst: AES128BlockCipherEnc::EncryptBlock
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:165,1
    - Dst: HMACSHA1::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:168,1
    - Dst: HMACSHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:169,1
    - Dst: HMACSHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:170,1
    - Dst: HMACSHA1::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:171,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - encKey
    - authKey
    - ' encPasscodeStruct'
    argTypes:
    - uint8_t*
    - uint8_t*
    - EncryptedPasscodeStruct
    constantsTouched: []
    func_position:
      end: 175
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 175
    functionName: nl::Weave::Profiles::Security::Passcodes::EncryptPasscode_Config2
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp
    functionUses: 0
    functionsReached:
    - HMACSHA1::AddData
    - AES128BlockCipherEnc::SetKey
    - memcpy
    - AES128BlockCipherEnc::EncryptBlock
    - HMACSHA1::Finish
    - HMACSHA1::Begin
    linkageType: ''
    returnType: void
    signature: EncryptPasscode_Config2(const uint8_t *encKey, const uint8_t *authKey,
      EncryptedPasscodeStruct& encPasscodeStruct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HMACSHA1::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:185,1
    - Dst: HMACSHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:186,1
    - Dst: HMACSHA1::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:187,1
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:190,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - fingerprintKey
    - passcode
    - ' encPasscodeStruct'
    argTypes:
    - uint8_t*
    - uint8_t[]
    - EncryptedPasscodeStruct
    constantsTouched: []
    func_position:
      end: 195
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 195
    functionName: nl::Weave::Profiles::Security::Passcodes::VerifyPasscodeFingerprint_Config2
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - HMACSHA1::AddData
    - VerifyOrExit
    - HMACSHA1::Finish
    - HMACSHA1::Begin
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: VerifyPasscodeFingerprint_Config2(const uint8_t *fingerprintKey, uint8_t
      passcode[kPasscodePaddedLen], const EncryptedPasscodeStruct& encPasscodeStruct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HMACSHA1::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:208,1
    - Dst: HMACSHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:209,1
    - Dst: HMACSHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:210,1
    - Dst: HMACSHA1::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:211,1
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:214,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:215,1
    - Dst: AES128BlockCipherDec::SetKey
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:218,1
    - Dst: AES128BlockCipherDec::DecryptBlock
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - encKey
    - authKey
    - ' encPasscodeStruct'
    - decryptedPasscode
    argTypes:
    - uint8_t*
    - uint8_t*
    - EncryptedPasscodeStruct
    - uint8_t[]
    constantsTouched: []
    func_position:
      end: 223
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 223
    functionName: nl::Weave::Profiles::Security::Passcodes::DecryptPasscode_Config2
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - AES128BlockCipherDec::SetKey
    - HMACSHA1::AddData
    - VerifyOrExit
    - AES128BlockCipherDec::DecryptBlock
    - HMACSHA1::Finish
    - HMACSHA1::Begin
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "DecryptPasscode_Config2(const uint8_t *encKey, const uint8_t *authKey,\n
      \                                          const EncryptedPasscodeStruct& encPasscodeStruct,\n
      \                                          uint8_t decryptedPasscode[kPasscodePaddedLen])"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 246
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 246
    functionName: nl::Weave::Profiles::Security::Passcodes::IsSupportedPasscodeEncryptionConfig
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsSupportedPasscodeEncryptionConfig(uint8_t config)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - encPasscode
    - encPasscodeLen
    - ' config'
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 267
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 267
    functionName: nl::Weave::Profiles::Security::Passcodes::GetEncryptedPasscodeConfig
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetEncryptedPasscodeConfig(const uint8_t *encPasscode, size_t encPasscodeLen,
      uint8_t& config)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:282,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:285,1
    - Dst: nl::Weave::Profiles::Security::Passcodes::IsSupportedPasscodeEncryptionConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:285,1
    - Dst: nl::Weave::Encoding::LittleEndian::Get32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - encPasscode
    - encPasscodeLen
    - ' keyId'
    argTypes:
    - uint8_t*
    - size_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 292
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 292
    functionName: nl::Weave::Profiles::Security::Passcodes::GetEncryptedPasscodeKeyId
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::Passcodes::IsSupportedPasscodeEncryptionConfig
    - VerifyOrExit
    - nl::Weave::Encoding::LittleEndian::Get32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetEncryptedPasscodeKeyId(const uint8_t *encPasscode, size_t encPasscodeLen,
      uint32_t& keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:307,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:310,1
    - Dst: nl::Weave::Profiles::Security::Passcodes::IsSupportedPasscodeEncryptionConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:310,1
    - Dst: nl::Weave::Encoding::LittleEndian::Get32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - encPasscode
    - encPasscodeLen
    - ' nonce'
    argTypes:
    - uint8_t*
    - size_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 317
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 317
    functionName: nl::Weave::Profiles::Security::Passcodes::GetEncryptedPasscodeNonce
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::Passcodes::IsSupportedPasscodeEncryptionConfig
    - VerifyOrExit
    - nl::Weave::Encoding::LittleEndian::Get32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetEncryptedPasscodeNonce(const uint8_t *encPasscode, size_t encPasscodeLen,
      uint32_t& nonce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:335,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:338,1
    - Dst: nl::Weave::Profiles::Security::Passcodes::IsSupportedPasscodeEncryptionConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:338,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:341,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - encPasscode
    - encPasscodeLen
    - fingerprintBuf
    - fingerprintBufSize
    - ' fingerprintLen'
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 349
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 349
    functionName: nl::Weave::Profiles::Security::Passcodes::GetEncryptedPasscodeFingerprint
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::Passcodes::IsSupportedPasscodeEncryptionConfig
    - VerifyOrExit
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "GetEncryptedPasscodeFingerprint(const uint8_t *encPasscode, size_t
      encPasscodeLen,\n                                            uint8_t *fingerprintBuf,
      size_t fingerprintBufSize, size_t& fingerprintLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:390,1
    - Dst: nl::Weave::Profiles::Security::Passcodes::IsSupportedPasscodeEncryptionConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:390,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:393,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:396,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:402,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:405,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:406,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:412,1
    - Dst: nl::Weave::Profiles::Security::Passcodes::GeneratePasscodeFingerprint_Config1
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:415,1
    - Dst: nl::Weave::Profiles::Security::Passcodes::EncryptPasscode_Config1
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:418,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:429,1
    - Dst: nl::Weave::WeaveKeyId::ConvertToStaticAppKeyId
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:432,1
    - Dst: GroupKeyStoreBase*::DeriveApplicationKey
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:435,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:438,1
    - Dst: nl::Weave::Profiles::Security::Passcodes::GeneratePasscodeFingerprint_Config2
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:441,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:444,1
    - Dst: GroupKeyStoreBase*::DeriveApplicationKey
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:448,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:451,1
    - Dst: nl::Weave::Profiles::Security::Passcodes::EncryptPasscode_Config2
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:454,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:463,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 9
    argNames:
    - config
    - keyId
    - nonce
    - passcode
    - passcodeLen
    - encPasscode
    - encPasscodeBufSize
    - ' encPasscodeLen'
    - groupKeyStore
    argTypes:
    - uint8_t
    - uint32_t
    - uint32_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - size_t
    - GroupKeyStoreBase*
    constantsTouched: []
    func_position:
      end: 477
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 477
    functionName: nl::Weave::Profiles::Security::Passcodes::EncryptPasscode
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::Passcodes::IsSupportedPasscodeEncryptionConfig
    - nl::Weave::WeaveKeyId::ConvertToStaticAppKeyId
    - ClearSecretData
    - nl::Weave::Profiles::Security::Passcodes::GeneratePasscodeFingerprint_Config2
    - VerifyOrExit
    - memset
    - nl::Weave::Encoding::LittleEndian::Put32
    - nl::Weave::Profiles::Security::Passcodes::GeneratePasscodeFingerprint_Config1
    - nl::Weave::Profiles::Security::Passcodes::EncryptPasscode_Config2
    - memcpy
    - SuccessOrExit
    - GroupKeyStoreBase*::DeriveApplicationKey
    - nl::Weave::Profiles::Security::Passcodes::EncryptPasscode_Config1
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "EncryptPasscode(uint8_t config, uint32_t keyId, uint32_t nonce, const
      uint8_t *passcode, size_t passcodeLen,\n                            uint8_t
      *encPasscode, size_t encPasscodeBufSize, size_t& encPasscodeLen,\n                            GroupKeyStoreBase
      *groupKeyStore)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:519,1
    - Dst: nl::Weave::Profiles::Security::Passcodes::IsSupportedPasscodeEncryptionConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:519,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:522,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:525,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:531,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:534,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:537,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:538,1
    - Dst: nl::Weave::Profiles::Security::Passcodes::GeneratePasscodeFingerprint_Config1
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:544,1
    - Dst: nl::Weave::Profiles::Security::Passcodes::EncryptPasscode_Config1
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:547,1
    - Dst: nl::Weave::Profiles::Security::Passcodes::GeneratePasscodeFingerprint_Config2
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:555,1
    - Dst: nl::Weave::Profiles::Security::Passcodes::EncryptPasscode_Config2
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:558,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:568,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 11
    argNames:
    - config
    - keyId
    - nonce
    - passcode
    - passcodeLen
    - encKey
    - authKey
    - fingerprintKey
    - encPasscode
    - encPasscodeBufSize
    - ' encPasscodeLen'
    argTypes:
    - uint8_t
    - uint32_t
    - uint32_t
    - uint8_t*
    - size_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 570
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 570
    functionName: nl::Weave::Profiles::Security::Passcodes::EncryptPasscode
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::Passcodes::IsSupportedPasscodeEncryptionConfig
    - ClearSecretData
    - nl::Weave::Profiles::Security::Passcodes::GeneratePasscodeFingerprint_Config2
    - VerifyOrExit
    - memset
    - nl::Weave::Encoding::LittleEndian::Put32
    - nl::Weave::Profiles::Security::Passcodes::GeneratePasscodeFingerprint_Config1
    - nl::Weave::Profiles::Security::Passcodes::EncryptPasscode_Config2
    - memcpy
    - nl::Weave::Profiles::Security::Passcodes::EncryptPasscode_Config1
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "EncryptPasscode(uint8_t config, uint32_t keyId, uint32_t nonce, const
      uint8_t *passcode, size_t passcodeLen,\n                            const uint8_t
      *encKey, const uint8_t *authKey, const uint8_t *fingerprintKey,\n                            uint8_t
      *encPasscode, size_t encPasscodeBufSize, size_t& encPasscodeLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:615,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:618,1
    - Dst: nl::Weave::Profiles::Security::Passcodes::IsSupportedPasscodeEncryptionConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:618,1
    - Dst: nl::Weave::Encoding::LittleEndian::Get32
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:621,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:627,1
    - Dst: nl::Weave::Profiles::Security::Passcodes::DecryptPasscode_Config1
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:630,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:631,1
    - Dst: nl::Weave::Profiles::Security::Passcodes::VerifyPasscodeFingerprint_Config1
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:634,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:635,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:645,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:648,1
    - Dst: GroupKeyStoreBase*::DeriveApplicationKey
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:652,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:655,1
    - Dst: nl::Weave::Profiles::Security::Passcodes::DecryptPasscode_Config2
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:658,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:659,1
    - Dst: nl::Weave::WeaveKeyId::ConvertToStaticAppKeyId
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:662,1
    - Dst: GroupKeyStoreBase*::DeriveApplicationKey
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:665,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:668,1
    - Dst: nl::Weave::Profiles::Security::Passcodes::VerifyPasscodeFingerprint_Config2
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:671,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:672,1
    - Dst: memchr
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:678,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:682,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:685,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 6
    argNames:
    - encPasscode
    - encPasscodeLen
    - passcodeBuf
    - passcodeBufSize
    - ' passcodeLen'
    - groupKeyStore
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - size_t
    - GroupKeyStoreBase*
    constantsTouched: []
    func_position:
      end: 694
      start: 601
    functionDepth: 3
    functionLinenumber: 601
    functionLinenumberEnd: 694
    functionName: nl::Weave::Profiles::Security::Passcodes::DecryptPasscode
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::Passcodes::IsSupportedPasscodeEncryptionConfig
    - nl::Weave::Profiles::Security::Passcodes::VerifyPasscodeFingerprint_Config2
    - nl::Weave::WeaveKeyId::ConvertToStaticAppKeyId
    - ClearSecretData
    - nl::Weave::Profiles::Security::Passcodes::DecryptPasscode_Config1
    - nl::Weave::Encoding::LittleEndian::Get32
    - VerifyOrExit
    - GroupKeyStoreBase*::DeriveApplicationKey
    - nl::Weave::Profiles::Security::Passcodes::DecryptPasscode_Config2
    - memchr
    - memcpy
    - SuccessOrExit
    - nl::Weave::Profiles::Security::Passcodes::VerifyPasscodeFingerprint_Config1
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "DecryptPasscode(const uint8_t *encPasscode, size_t encPasscodeLen,\n
      \                           uint8_t *passcodeBuf, size_t passcodeBufSize, size_t&
      passcodeLen,\n                            GroupKeyStoreBase *groupKeyStore)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:737,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:740,1
    - Dst: nl::Weave::Profiles::Security::Passcodes::IsSupportedPasscodeEncryptionConfig
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:740,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:747,1
    - Dst: nl::Weave::Profiles::Security::Passcodes::DecryptPasscode_Config1
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:750,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:751,1
    - Dst: nl::Weave::Profiles::Security::Passcodes::VerifyPasscodeFingerprint_Config1
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:754,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:755,1
    - Dst: nl::Weave::Profiles::Security::Passcodes::DecryptPasscode_Config2
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:763,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:764,1
    - Dst: nl::Weave::Profiles::Security::Passcodes::VerifyPasscodeFingerprint_Config2
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:767,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:768,1
    - Dst: memchr
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:774,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:778,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:781,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp:784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 8
    argNames:
    - encPasscode
    - encPasscodeLen
    - encKey
    - authKey
    - fingerprintKey
    - passcodeBuf
    - passcodeBufSize
    - ' passcodeLen'
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 786
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 786
    functionName: nl::Weave::Profiles::Security::Passcodes::DecryptPasscode
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::Passcodes::IsSupportedPasscodeEncryptionConfig
    - nl::Weave::Profiles::Security::Passcodes::VerifyPasscodeFingerprint_Config2
    - ClearSecretData
    - nl::Weave::Profiles::Security::Passcodes::DecryptPasscode_Config1
    - VerifyOrExit
    - nl::Weave::Profiles::Security::Passcodes::DecryptPasscode_Config2
    - memchr
    - memcpy
    - SuccessOrExit
    - nl::Weave::Profiles::Security::Passcodes::VerifyPasscodeFingerprint_Config1
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "DecryptPasscode(const uint8_t *encPasscode, size_t encPasscodeLen,\n
      \                           const uint8_t *encKey, const uint8_t *authKey, const
      uint8_t *fingerprintKey,\n                            uint8_t *passcodeBuf,
      size_t passcodeBufSize, size_t& passcodeLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 167
    functionName: nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: GroupKeyStoreBase
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveTAKEEngine::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:57,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:58,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached:
    - ClearSecretData
    linkageType: ''
    returnType: void
    signature: WeaveTAKEEngine::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 6
    argNames:
    - numOptionalConfigurations
    - encryptAuthPhase
    - encryptCommPhase
    - timeLimitedIK
    - hasChallengerId
    - ' controlHeader'
    argTypes:
    - uint8_t
    - bool
    - bool
    - bool
    - bool
    - uint8_t
    constantsTouched: []
    func_position:
      end: 83
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 83
    functionName: nl::Weave::Profiles::Security::TAKE::PackControlHeader
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PackControlHeader(uint8_t numOptionalConfigurations, bool encryptAuthPhase,
      bool encryptCommPhase, bool timeLimitedIK, bool hasChallengerId, uint8_t& controlHeader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetNumOptionalConfigurations
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: WeaveTAKEEngine::GetNumOptionalConfigurations() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::IsEncryptAuthPhase
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveTAKEEngine::IsEncryptAuthPhase() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::IsEncryptCommPhase
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveTAKEEngine::IsEncryptCommPhase() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::IsTimeLimitedIK
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveTAKEEngine::IsTimeLimitedIK() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::HasSentChallengerId
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveTAKEEngine::HasSentChallengerId() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:117,1
    - Dst: PackControlHeader
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:119,1
    - Dst: GetChallengerID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:124,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:125,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:127,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:132,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetNumOptionalConfigurations
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:136,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::UseSessionKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:136,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:137,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:137,1
    - Dst: nl::Weave::Platform::Security::GetSecureRandomData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:139,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:140,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:152,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::UseSessionKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:158,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:161,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:166,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:169,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:171,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 9
    argNames:
    - sessionKeyId
    - takeConfig
    - encryptAuthPhase
    - encryptCommPhase
    - timeLimitedIK
    - sendChallengerId
    - encryptionType
    - localNodeId
    - msgBuf
    argTypes:
    - uint16_t
    - uint8_t
    - bool
    - bool
    - bool
    - bool
    - uint8_t
    - uint64_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 176
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 176
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateIdentifyTokenMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Platform::Security::GetSecureRandomData
    - nl::Weave::Encoding::LittleEndian::Write64
    - nl::Weave::Encoding::LittleEndian::Write16
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::UseSessionKey
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetNumOptionalConfigurations
    - VerifyOrExit
    - GetChallengerID
    - SuccessOrExit
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
    - PackControlHeader
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTAKEEngine::GenerateIdentifyTokenMessage(uint16_t sessionKeyId,
      uint8_t takeConfig, bool encryptAuthPhase, bool encryptCommPhase, bool timeLimitedIK,\n
      \                                                             bool sendChallengerId,
      uint8_t encryptionType, uint64_t localNodeId, PacketBuffer *msgBuf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:184,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:185,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::HasSentChallengerId
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:189,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:192,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:197,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:201,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::HasSentChallengerId
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:201,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetNumOptionalConfigurations
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:201,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::UseSessionKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:201,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:204,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::ReadArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:208,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetNumOptionalConfigurations
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:208,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetNumOptionalConfigurations
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:214,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:224,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::UseSessionKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:226,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:228,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::HasSentChallengerId
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:231,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::ReadArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:233,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::ReadArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:236,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 2
    argNames:
    - peerNodeId
    - msgBuf
    argTypes:
    - uint64_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 242
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 242
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::ProcessIdentifyTokenMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Write64
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::UseSessionKey
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetNumOptionalConfigurations
    - VerifyOrExit
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::ReadArray
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::HasSentChallengerId
    - nl::Weave::Encoding::LittleEndian::Read16
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTAKEEngine::ProcessIdentifyTokenMessage(uint64_t peerNodeId, const
      PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:254,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:255,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:255,1
    - Dst: nl::Weave::Platform::Security::GetSecureRandomData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:257,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:258,1
    - Dst: GetIdentificationRootKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:260,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:261,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:265,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:269,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::IsTimeLimitedIK
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:270,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:272,1
    - Dst: GetTAKETime
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:277,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:278,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:280,1
    - Dst: HKDFSHA1::BeginExtractKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:283,1
    - Dst: HKDFSHA1::AddKeyMaterial
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:285,1
    - Dst: HKDFSHA1::FinishExtractKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:287,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:288,1
    - Dst: HKDFSHA1::ExpandKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:290,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:291,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHMACSignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:294,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:296,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::UseSessionKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:298,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateProtocolEncryptionKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:300,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 308
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 308
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateIdentifyTokenResponseMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Platform::Security::GetSecureRandomData
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::UseSessionKey
    - HKDFSHA1::AddKeyMaterial
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHMACSignature
    - VerifyOrExit
    - GetTAKETime
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateProtocolEncryptionKey
    - GetIdentificationRootKey
    - HKDFSHA1::FinishExtractKey
    - HKDFSHA1::ExpandKey
    - SuccessOrExit
    - nl::Weave::Encoding::LittleEndian::Write32
    - HKDFSHA1::BeginExtractKey
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::IsTimeLimitedIK
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTAKEEngine::GenerateIdentifyTokenResponseMessage(PacketBuffer
      *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:321,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:322,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::ReadArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:326,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetNumOptionalConfigurations
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:331,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:339,1
    - Dst: RewindIdentificationKeyIterator
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:344,1
    - Dst: GetNextIdentificationKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:350,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:351,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:355,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHMACSignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:358,1
    - Dst: ConstantTimeCompare
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:360,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:367,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::UseSessionKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:369,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateProtocolEncryptionKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:371,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:372,1
    - Dst: GetTokenAuthData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:375,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:376,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:378,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:379,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 390
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 390
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::ProcessIdentifyTokenResponseMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached:
    - ConstantTimeCompare
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::UseSessionKey
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetNumOptionalConfigurations
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHMACSignature
    - VerifyOrExit
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::ReadArray
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateProtocolEncryptionKey
    - RewindIdentificationKeyIterator
    - GetTokenAuthData
    - SuccessOrExit
    - GetNextIdentificationKey
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTAKEEngine::ProcessIdentifyTokenResponseMessage(const PacketBuffer
      *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:397,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:398,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:398,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 408
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 408
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateTokenReconfigureMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - VerifyOrExit
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTAKEEngine::GenerateTokenReconfigureMessage(PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:416,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:417,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - ' config'
    - msgBuf
    argTypes:
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 427
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 427
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::ProcessTokenReconfigureMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTAKEEngine::ProcessTokenReconfigureMessage(uint8_t& config, const
      PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:436,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:437,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:437,1
    - Dst: GenerateECDHKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:445,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetCurveOID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:445,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:446,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:450,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetECPointLen
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:450,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHMACSignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:452,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetECPointLen
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:452,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 460
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 460
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateAuthenticateTokenMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHMACSignature
    - VerifyOrExit
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetECPointLen
    - memcpy
    - GenerateECDHKey
    - SuccessOrExit
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetCurveOID
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTAKEEngine::GenerateAuthenticateTokenMessage(PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:470,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:471,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHMACSignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:475,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetECPointLen
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:475,1
    - Dst: ConstantTimeCompare
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:477,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:478,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:480,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetECPointLen
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 486
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 486
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::ProcessAuthenticateTokenMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached:
    - ConstantTimeCompare
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHMACSignature
    - VerifyOrExit
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetECPointLen
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTAKEEngine::ProcessAuthenticateTokenMessage(const PacketBuffer
      *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:507,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:508,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:508,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetECPointLen
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:513,1
    - Dst: GenerateECDHKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:516,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetCurveOID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:516,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:517,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateAuthenticationKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:519,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:520,1
    - Dst: GetTokenMasterKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:522,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:523,1
    - Dst: Platform::Security::AES256BlockCipherEnc::SetKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:525,1
    - Dst: Platform::Security::AES256BlockCipherEnc::EncryptBlock
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:526,1
    - Dst: GetTokenPrivateKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:528,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:529,1
    - Dst: GetCurveSize
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:531,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:532,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateSignatureForAuthenticateTokenResponse
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:534,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:535,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:537,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetECPointLen
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:537,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:542,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:543,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:544,1
    - Dst: Platform::Security::AES256BlockCipherEnc::Reset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 548
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 548
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateAuthenticateTokenResponseMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached:
    - GetTokenMasterKey
    - PacketBuffer*::SetDataLength
    - ClearSecretData
    - Platform::Security::AES256BlockCipherEnc::Reset
    - VerifyOrExit
    - Platform::Security::AES256BlockCipherEnc::SetKey
    - Platform::Security::AES256BlockCipherEnc::EncryptBlock
    - GetCurveSize
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetECPointLen
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateSignatureForAuthenticateTokenResponse
    - GenerateECDHKey
    - SuccessOrExit
    - GetTokenPrivateKey
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateAuthenticationKey
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetCurveOID
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTAKEEngine::GenerateAuthenticateTokenResponseMessage(PacketBuffer
      *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:562,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetECPointLen
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:565,1
    - Dst: GetTokenPublicKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:567,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:568,1
    - Dst: GetCurveSize
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:570,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:571,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:573,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetECPointLen
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:573,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateAuthenticationKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:575,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:576,1
    - Dst: StoreTokenAuthData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:578,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:579,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::VerifySignatureForAuthenticateTokenResponse
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:581,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 588
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 588
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::ProcessAuthenticateTokenResponseMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached:
    - StoreTokenAuthData
    - VerifyOrExit
    - GetCurveSize
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetECPointLen
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::VerifySignatureForAuthenticateTokenResponse
    - GetTokenPublicKey
    - SuccessOrExit
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateAuthenticationKey
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTAKEEngine::ProcessAuthenticateTokenResponseMessage(const PacketBuffer
      *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:596,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:597,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:597,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:599,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHMACSignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:601,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 609
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 609
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateReAuthenticateTokenMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHMACSignature
    - VerifyOrExit
    - memcpy
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTAKEEngine::GenerateReAuthenticateTokenMessage(PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:623,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:624,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:625,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:626,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetNumOptionalConfigurations
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:626,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:627,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:628,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:629,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:630,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:631,1
    - Dst: HKDFSHA1::BeginExtractKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:633,1
    - Dst: HKDFSHA1::AddKeyMaterial
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:635,1
    - Dst: HKDFSHA1::FinishExtractKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:637,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:638,1
    - Dst: HKDFSHA1::ExpandKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:640,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:641,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:643,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:646,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 656
      start: 611
    functionDepth: 2
    functionLinenumber: 611
    functionLinenumberEnd: 656
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateProtocolEncryptionKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 2
    functionsReached:
    - ClearSecretData
    - HKDFSHA1::AddKeyMaterial
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetNumOptionalConfigurations
    - HKDFSHA1::FinishExtractKey
    - SuccessOrExit
    - HKDFSHA1::ExpandKey
    - memcpy
    - nl::Weave::Encoding::LittleEndian::Write16
    - HKDFSHA1::BeginExtractKey
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTAKEEngine::GenerateProtocolEncryptionKey()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:668,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:669,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHMACSignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:672,1
    - Dst: ConstantTimeCompare
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:674,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:675,1
    - Dst: GetTokenMasterKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:677,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:678,1
    - Dst: Platform::Security::AES256BlockCipherDec::SetKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:680,1
    - Dst: Platform::Security::AES256BlockCipherDec::DecryptBlock
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:681,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:686,1
    - Dst: Platform::Security::AES256BlockCipherDec::Reset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 690
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 690
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::ProcessReAuthenticateTokenMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached:
    - GetTokenMasterKey
    - ConstantTimeCompare
    - ClearSecretData
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHMACSignature
    - VerifyOrExit
    - Platform::Security::AES256BlockCipherDec::Reset
    - Platform::Security::AES256BlockCipherDec::SetKey
    - SuccessOrExit
    - Platform::Security::AES256BlockCipherDec::DecryptBlock
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTAKEEngine::ProcessReAuthenticateTokenMessage(const PacketBuffer
      *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:698,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:699,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:699,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHMACSignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:701,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 709
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 709
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateReAuthenticateTokenResponseMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHMACSignature
    - VerifyOrExit
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTAKEEngine::GenerateReAuthenticateTokenResponseMessage(PacketBuffer
      *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:718,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:719,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHMACSignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:722,1
    - Dst: ConstantTimeCompare
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:724,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 731
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 731
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::ProcessReAuthenticateTokenResponseMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached:
    - ConstantTimeCompare
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHMACSignature
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTAKEEngine::ProcessReAuthenticateTokenResponseMessage(const PacketBuffer
      *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' encKey'
    argTypes:
    - WeaveEncryptionKey*
    constantsTouched: []
    func_position:
      end: 743
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 743
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetSessionKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTAKEEngine::GetSessionKey(const WeaveEncryptionKey *& encKey)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 748
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 748
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetEncryptionType
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: WeaveTAKEEngine::GetEncryptionType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::LittleEndian::Put16
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:755,1
    - Dst: Crypto::HMACSHA1::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:757,1
    - Dst: Crypto::HMACSHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:758,1
    - Dst: Crypto::HMACSHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:759,1
    - Dst: Crypto::HMACSHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:760,1
    - Dst: Crypto::HMACSHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:761,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetNumOptionalConfigurations
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:761,1
    - Dst: Crypto::HMACSHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:762,1
    - Dst: Crypto::HMACSHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:763,1
    - Dst: Crypto::HMACSHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:764,1
    - Dst: Crypto::HMACSHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:765,1
    - Dst: Crypto::HMACSHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:768,1
    - Dst: Crypto::HMACSHA1::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 5
    argNames:
    - key
    - dest
    - additionalField
    - additionalFieldLength
    - keyLength
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 771
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 771
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHMACSignature
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 8
    functionsReached:
    - Crypto::HMACSHA1::Finish
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetNumOptionalConfigurations
    - Crypto::HMACSHA1::AddData
    - Crypto::HMACSHA1::Begin
    - nl::Weave::Encoding::LittleEndian::Put16
    linkageType: ''
    returnType: void
    signature: WeaveTAKEEngine::GenerateHMACSignature(const uint8_t* key, uint8_t*
      dest, const uint8_t* additionalField, uint8_t additionalFieldLength, uint16_t
      keyLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetECPointLen
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:788,1
    - Dst: ECDHComputeSharedSecret
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:792,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetCurveOID
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:792,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:793,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:795,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:796,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:797,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:798,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:799,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetNumOptionalConfigurations
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:799,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:800,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:801,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:802,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:803,1
    - Dst: HKDFSHA1::BeginExtractKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:805,1
    - Dst: HKDFSHA1::AddKeyMaterial
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:806,1
    - Dst: HKDFSHA1::FinishExtractKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:808,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:809,1
    - Dst: HKDFSHA1::ExpandKey
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:811,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:812,1
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 4
    argNames:
    - challengerId
    - privateKey
    - publicKey
    - privateKeyLen
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 818
      start: 773
    functionDepth: 2
    functionLinenumber: 773
    functionLinenumberEnd: 818
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateAuthenticationKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 2
    functionsReached:
    - ECDHComputeSharedSecret
    - nl::Weave::Encoding::LittleEndian::Write16
    - ClearSecretData
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetNumOptionalConfigurations
    - HKDFSHA1::AddKeyMaterial
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetECPointLen
    - HKDFSHA1::FinishExtractKey
    - HKDFSHA1::ExpandKey
    - SuccessOrExit
    - HKDFSHA1::BeginExtractKey
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetCurveOID
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTAKEEngine::GenerateAuthenticationKey(const uint8_t* challengerId,
      uint8_t* privateKey, uint8_t* publicKey, uint16_t privateKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::LittleEndian::Put16
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:825,1
    - Dst: Platform::Security::SHA1::Begin
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:827,1
    - Dst: Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:828,1
    - Dst: Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:829,1
    - Dst: Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:830,1
    - Dst: Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:831,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetNumOptionalConfigurations
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:831,1
    - Dst: Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:832,1
    - Dst: Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:833,1
    - Dst: Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:834,1
    - Dst: Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:835,1
    - Dst: Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:836,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetECPointLen
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:836,1
    - Dst: Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:837,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetECPointLen
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:837,1
    - Dst: Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:838,1
    - Dst: Platform::Security::SHA1::Finish
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 4
    argNames:
    - dest
    - challengerECDHPublicKey
    - tokenECDHPublicKey
    - encryptedState
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 840
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 840
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHashForAuthenticateTokenResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached:
    - Platform::Security::SHA1::Begin
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetNumOptionalConfigurations
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetECPointLen
    - Platform::Security::SHA1::Finish
    - Platform::Security::SHA1::AddData
    - nl::Weave::Encoding::LittleEndian::Put16
    linkageType: ''
    returnType: void
    signature: WeaveTAKEEngine::GenerateHashForAuthenticateTokenResponse(uint8_t*
      dest, const uint8_t* challengerECDHPublicKey, const uint8_t* tokenECDHPublicKey,
      const uint8_t* encryptedState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHashForAuthenticateTokenResponse
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:848,1
    - Dst: GenerateECDSASignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:850,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - dest
    - challengerECDHPublicKey
    - tokenECDHPublicKey
    - TPriv
    - encryptedState
    - ' curveOID'
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - EncodedECPrivateKey
    - uint8_t*
    - OID
    constantsTouched: []
    func_position:
      end: 855
      start: 842
    functionDepth: 2
    functionLinenumber: 842
    functionLinenumberEnd: 855
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateSignatureForAuthenticateTokenResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHashForAuthenticateTokenResponse
    - GenerateECDSASignature
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTAKEEngine::GenerateSignatureForAuthenticateTokenResponse(uint8_t*
      dest, const uint8_t* challengerECDHPublicKey, const uint8_t* tokenECDHPublicKey,\n
      \                                                                          EncodedECPrivateKey
      TPriv, const uint8_t* encryptedState, OID& curveOID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHashForAuthenticateTokenResponse
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:863,1
    - Dst: VerifyECDSASignature
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:865,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - signature
    - challengerECDHPublicKey
    - tokenECDHPublicKey
    - encryptedState
    - ' curveOID'
    - ' encodedPubKey'
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - OID
    - EncodedECPublicKey
    constantsTouched: []
    func_position:
      end: 870
      start: 857
    functionDepth: 2
    functionLinenumber: 857
    functionLinenumberEnd: 870
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::VerifySignatureForAuthenticateTokenResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHashForAuthenticateTokenResponse
    - VerifyECDSASignature
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTAKEEngine::VerifySignatureForAuthenticateTokenResponse(const
      uint8_t* signature, const uint8_t* challengerECDHPublicKey, const uint8_t* tokenECDHPublicKey,\n
      \                                                                        const
      uint8_t* encryptedState, OID& curveOID, EncodedECPublicKey& encodedPubKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dest
    - ' src'
    - length
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 876
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 876
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::ReadArray
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: WeaveTAKEEngine::ReadArray(uint8_t* dest, const uint8_t*& src, uint8_t
      length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - src
    - ' dest'
    - length
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 882
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 882
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 4
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: WeaveTAKEEngine::WriteArray(const uint8_t* src, uint8_t*& dest, uint8_t
      length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::IsEncryptAuthPhase
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:886,1
    - Dst: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::IsEncryptCommPhase
      Src: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp:886,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 887
      start: 884
    functionDepth: 1
    functionLinenumber: 884
    functionLinenumberEnd: 887
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::UseSessionKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 4
    functionsReached:
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::IsEncryptCommPhase
    - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::IsEncryptAuthPhase
    linkageType: ''
    returnType: bool
    signature: WeaveTAKEEngine::UseSessionKey() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 893
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 893
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetCurveLen
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: WeaveTAKEEngine::GetCurveLen() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 899
      start: 895
    functionDepth: 0
    functionLinenumber: 895
    functionLinenumberEnd: 899
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetPrivKeyLen
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: WeaveTAKEEngine::GetPrivKeyLen() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 905
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 905
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetECPointLen
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: WeaveTAKEEngine::GetECPointLen() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 911
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 911
    functionName: nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetCurveOID
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: OID
    signature: WeaveTAKEEngine::GetCurveOID() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 232
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 232
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeaveCertProvEngine
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.h:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 265
    functionName: nl::Weave::Profiles::Security::CertProvisioning::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.h:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 288
    functionName: nl::Weave::Profiles::Security::CertProvisioning::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 299
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 299
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::WeaveCertProvEngine
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveCertProvEngine::WeaveCertProvEngine(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleRequestDone
      Src: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.h:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::AbortCertificateProvisioning
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleRequestDone
    linkageType: ''
    returnType: void
    signature: WeaveCertProvEngine::AbortCertificateProvisioning(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::GetState
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WeaveCertProvEngine::State
    signature: WeaveCertProvEngine::GetState(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::GetReqType
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: WeaveCertProvEngine::GetReqType(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::GetBinding
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Binding
    signature: '*WeaveCertProvEngine::GetBinding(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - binding
    argTypes:
    - Binding*
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::SetBinding
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveCertProvEngine::SetBinding(Binding * binding)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 329
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 329
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::GetOpAuthDelegate
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WeaveNodeOpAuthDelegate
    signature: '* WeaveCertProvEngine::GetOpAuthDelegate(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - opAuthDelegate
    argTypes:
    - WeaveNodeOpAuthDelegate*
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::SetOpAuthDelegate
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveCertProvEngine::SetOpAuthDelegate(WeaveNodeOpAuthDelegate * opAuthDelegate)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::GetMfrAttestDelegate
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WeaveNodeMfrAttestDelegate
    signature: '* WeaveCertProvEngine::GetMfrAttestDelegate(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mfrAttestDelegate
    argTypes:
    - WeaveNodeMfrAttestDelegate*
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 344
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::SetMfrAttestDelegate
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveCertProvEngine::SetMfrAttestDelegate(WeaveNodeMfrAttestDelegate
      * mfrAttestDelegate)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::GetEventCallback
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WeaveCertProvEngine::EventCallback
    signature: WeaveCertProvEngine::GetEventCallback(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eventCallback
    argTypes:
    - WeaveCertProvEngine::EventCallback
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 354
    functionName: nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::SetEventCallback
    functionSourceFile: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveCertProvEngine::SetEventCallback(WeaveCertProvEngine::EventCallback
      eventCallback)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 134
    functionName: nl::Weave::Profiles::ServiceProvisioning::RegisterServicePairAccountMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: RegisterServicePairAccountMessage
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 145
    functionName: nl::Weave::Profiles::ServiceProvisioning::UpdateServiceMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: UpdateServiceMessage
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 163
    functionName: nl::Weave::Profiles::ServiceProvisioning::PairDeviceToAccountMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: PairDeviceToAccountMessage
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 176
    functionName: nl::Weave::Profiles::ServiceProvisioning::IFJServiceFabricJoinMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: IFJServiceFabricJoinMessage
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 286
    functionName: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: ServiceProvisioningServer
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::ServiceProvisioningServer
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ServiceProvisioningServer::ServiceProvisioningServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 68
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 68
    functionName: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - RegisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ServiceProvisioningServer::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:73,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 87
    functionName: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - UnregisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ServiceProvisioningServer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - delegate
    argTypes:
    - ServiceProvisioningDelegate*
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::SetDelegate
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ServiceProvisioningServer::SetDelegate(ServiceProvisioningDelegate
      *delegate)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::GetDelegate
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ServiceProvisioningDelegate
    signature: '* ServiceProvisioningServer::GetDelegate(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::SendSuccessResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::SendStatusReport
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ServiceProvisioningServer::SendSuccessResponse()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:108,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:110,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:117,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - statusProfileId
    - statusCode
    - sysError
    argTypes:
    - uint32_t
    - uint16_t
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 128
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 128
    functionName: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::SendStatusReport
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp
    functionUses: 1
    functionsReached:
    - Close
    - nl::Weave::WeaveServerBase::SendStatusReport
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ServiceProvisioningServer::SendStatusReport(uint32_t statusProfileId,
      uint16_t statusCode, WEAVE_ERROR sysError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:157,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:158,1
    - Dst: PairDeviceToAccountMessage::Encode
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:161,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:162,1
    - Dst: NewContext
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:165,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:166,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:182,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:187,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:192,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 11
    argNames:
    - serverCon
    - serviceId
    - fabricId
    - accountId
    - accountIdLen
    - pairingToken
    - pairingTokenLen
    - pairingInitData
    - pairingInitDataLen
    - deviceInitData
    - deviceInitDataLen
    argTypes:
    - WeaveConnection*
    - uint64_t
    - uint64_t
    - char*
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 198
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 198
    functionName: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::SendPairDeviceToAccountRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - NewContext
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - PairDeviceToAccountMessage::Encode
    - SuccessOrExit
    - Close
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "ServiceProvisioningServer::SendPairDeviceToAccountRequest(WeaveConnection
      *serverCon, uint64_t serviceId, uint64_t fabricId,\n                                                                      const
      char *accountId, uint16_t accountIdLen,\n                                                                      const
      uint8_t *pairingToken, uint16_t pairingTokenLen,\n                                                                      const
      uint8_t *pairingInitData, uint16_t pairingInitDataLen,\n                                                                      const
      uint8_t *deviceInitData, uint16_t deviceInitDataLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:228,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:229,1
    - Dst: PairDeviceToAccountMessage::Encode
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:232,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:233,1
    - Dst: Binding*::NewExchangeContext
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:236,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:237,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:261,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:266,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:272,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 11
    argNames:
    - binding
    - serviceId
    - fabricId
    - accountId
    - accountIdLen
    - pairingToken
    - pairingTokenLen
    - pairingInitData
    - pairingInitDataLen
    - deviceInitData
    - deviceInitDataLen
    argTypes:
    - Binding*
    - uint64_t
    - uint64_t
    - char*
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 277
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 277
    functionName: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::SendPairDeviceToAccountRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - Close
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - PairDeviceToAccountMessage::Encode
    - SuccessOrExit
    - Binding*::NewExchangeContext
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "ServiceProvisioningServer::SendPairDeviceToAccountRequest(Binding
      *binding, uint64_t serviceId, uint64_t fabricId,\n                                                                      const
      char *accountId, uint16_t accountIdLen,\n                                                                      const
      uint8_t *pairingToken, uint16_t pairingTokenLen,\n                                                                      const
      uint8_t *pairingInitData, uint16_t pairingInitDataLen,\n                                                                      const
      uint8_t *deviceInitData, uint16_t deviceInitDataLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:297,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:298,1
    - Dst: IFJServiceFabricJoinMessage::Encode
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:301,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:302,1
    - Dst: Binding*::NewExchangeContext
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:305,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:306,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:326,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:332,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:338,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 5
    argNames:
    - binding
    - serviceId
    - fabricId
    - deviceInitData
    - deviceInitDataLen
    argTypes:
    - Binding*
    - uint64_t
    - uint64_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 344
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 344
    functionName: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::SendIFJServiceFabricJoinRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - Close
    - IFJServiceFabricJoinMessage::Encode
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - SuccessOrExit
    - Binding*::NewExchangeContext
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "ServiceProvisioningServer::SendIFJServiceFabricJoinRequest(Binding
      *binding, uint64_t serviceId, uint64_t fabricId,\n                                                                       const
      uint8_t *deviceInitData, uint16_t deviceInitDataLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:359,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:360,1
    - Dst: ServiceProvisioningServer*::EnforceAccessControl
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:367,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:369,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:370,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:376,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:377,1
    - Dst: nl::Weave::Profiles::ServiceProvisioning::RegisterServicePairAccountMessage::Decode
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:389,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:390,1
    - Dst: ServiceProvisioningDelegate*::HandleRegisterServicePairAccount
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:395,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:396,1
    - Dst: nl::Weave::Profiles::ServiceProvisioning::UpdateServiceMessage::Decode
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:401,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:402,1
    - Dst: ServiceProvisioningDelegate*::HandleUpdateService
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:407,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:408,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:416,1
    - Dst: nl::Weave::Encoding::LittleEndian::Get64
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:417,1
    - Dst: ServiceProvisioningDelegate*::HandleUnregisterService
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:419,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:420,1
    - Dst: ServiceProvisioningServer*::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:426,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:433,1
    - Dst: ServiceProvisioningServer*::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:440,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 442
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 442
    functionName: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::HandleClientRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - ServiceProvisioningDelegate*::HandleUnregisterService
    - ServiceProvisioningServer*::EnforceAccessControl
    - ServiceProvisioningServer*::SendStatusReport
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::Profiles::ServiceProvisioning::UpdateServiceMessage::Decode
    - ServiceProvisioningDelegate*::HandleUpdateService
    - ServiceProvisioningDelegate*::HandleRegisterServicePairAccount
    - VerifyOrExit
    - ExitNow
    - nl::Weave::Profiles::ServiceProvisioning::RegisterServicePairAccountMessage::Decode
    - nl::Weave::Encoding::LittleEndian::Get64
    - SuccessOrExit
    - nl::Weave::WeaveServerBase::SendStatusReport
    linkageType: ''
    returnType: void
    signature: "ServiceProvisioningServer::HandleClientRequest(ExchangeContext *ec,
      const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo,\n                                                    uint32_t
      profileId, uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:455,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:459,1
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::parse
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:463,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:464,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:467,1
    - Dst: ServiceProvisioningServer*::HandleServiceProvisioningOpResult
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:474,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:479,1
    - Dst: ServiceProvisioningServer*::HandleServiceProvisioningOpResult
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:481,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:483,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 484
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 484
    functionName: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::HandleServerResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - ExchangeContext*::Close
    - VerifyOrExit
    - nl::Weave::Profiles::StatusReporting::StatusReport::parse
    - ServiceProvisioningServer*::HandleServiceProvisioningOpResult
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: "ServiceProvisioningServer::HandleServerResponse(ExchangeContext *ec,
      const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo,\n                                                     uint32_t
      profileId, uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:493,1
    - Dst: ServiceProvisioningServer*::HandleServiceProvisioningOpResult
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:496,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ec
    argTypes:
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 501
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 501
    functionName: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::HandleServerResponseTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - ServiceProvisioningServer*::HandleServiceProvisioningOpResult
    - VerifyOrExit
    - ExchangeContext*::Close
    linkageType: ''
    returnType: void
    signature: ServiceProvisioningServer::HandleServerResponseTimeout(ExchangeContext
      *ec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:510,1
    - Dst: ServiceProvisioningServer*::HandleServiceProvisioningOpResult
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:518,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ec
    - con
    - conErr
    argTypes:
    - ExchangeContext*
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 523
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 523
    functionName: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::HandleServerConnectionClosed
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - ServiceProvisioningServer*::HandleServiceProvisioningOpResult
    - VerifyOrExit
    - ExchangeContext*::Close
    linkageType: ''
    returnType: void
    signature: ServiceProvisioningServer::HandleServerConnectionClosed(ExchangeContext
      *ec, WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:532,1
    - Dst: ServiceProvisioningServer*::HandleServiceProvisioningOpResult
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:535,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ec
    - keyErr
    argTypes:
    - ExchangeContext*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 540
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 540
    functionName: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::HandleServerKeyError
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - ServiceProvisioningServer*::HandleServiceProvisioningOpResult
    - VerifyOrExit
    - ExchangeContext*::Close
    linkageType: ''
    returnType: void
    signature: ServiceProvisioningServer::HandleServerKeyError(ExchangeContext *ec,
      WEAVE_ERROR keyErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:550,1
    - Dst: ServiceProvisioningServer*::HandleServiceProvisioningOpResult
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:553,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ec
    - err
    - msgCtxt
    argTypes:
    - ExchangeContext*
    - WEAVE_ERROR
    - void*
    constantsTouched: []
    func_position:
      end: 558
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 558
    functionName: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::HandleServerSendError
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - ServiceProvisioningServer*::HandleServiceProvisioningOpResult
    - VerifyOrExit
    - ExchangeContext*::Close
    linkageType: ''
    returnType: void
    signature: ServiceProvisioningServer::HandleServerSendError(ExchangeContext *ec,
      WEAVE_ERROR err, void *msgCtxt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:567,1
    - Dst: HandleIFJServiceFabricJoinResult
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:575,1
    - Dst: HandlePairDeviceToAccountResult
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:580,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - localErr
    - serverStatusProfileId
    - serverStatusCode
    argTypes:
    - WEAVE_ERROR
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 583
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 583
    functionName: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::HandleServiceProvisioningOpResult
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - HandleIFJServiceFabricJoinResult
    - Close
    - HandlePairDeviceToAccountResult
    linkageType: ''
    returnType: void
    signature: ServiceProvisioningServer::HandleServiceProvisioningOpResult(WEAVE_ERROR
      localErr, uint32_t serverStatusProfileId, uint16_t serverStatusCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:590,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:592,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:593,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:595,1
    - Dst: nl::Weave::TLV::TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:595,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:595,1
    - Dst: nl::Weave::TLV::TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:601,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:602,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:604,1
    - Dst: IsContextTag
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:608,1
    - Dst: TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:611,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:614,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:614,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:618,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:618,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:628,1
    - Dst: nl::Weave::TLV::TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:630,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:631,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:633,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - serviceConfig
    - serviceConfigLen
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 638
      start: 585
    functionDepth: 2
    functionLinenumber: 585
    functionLinenumberEnd: 638
    functionName: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::IsValidServiceConfig
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp
    functionUses: 2
    functionsReached:
    - IsContextTag
    - nl::Weave::TLV::TLVReader::EnterContainer
    - nl::Weave::TLV::TLVReader::GetTag
    - VerifyOrExit
    - ExitNow
    - ProfileTag
    - TagNumFromTag
    - nl::Weave::TLV::TLVReader::GetType
    - SuccessOrExit
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::ExitContainer
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: bool
    signature: ServiceProvisioningServer::IsValidServiceConfig(const uint8_t *serviceConfig,
      uint16_t serviceConfigLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningDelegate::IsPairedToAccount
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:653,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:685,1
    - Dst: nl::Weave::WeaveServerDelegateBase::EnforceAccessControl
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp:692,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 5
    argNames:
    - ec
    - msgProfileId
    - msgType
    - msgInfo
    - ' result'
    argTypes:
    - ExchangeContext*
    - uint32_t
    - uint8_t
    - WeaveMessageInfo*
    - AccessControlResult
    constantsTouched: []
    func_position:
      end: 693
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 693
    functionName: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningDelegate::EnforceAccessControl
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveServerDelegateBase::EnforceAccessControl
    - nl::Weave::WeaveServerBase::SendStatusReport
    - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningDelegate::IsPairedToAccount
    linkageType: ''
    returnType: void
    signature: "ServiceProvisioningDelegate::EnforceAccessControl(ExchangeContext
      *ec, uint32_t msgProfileId, uint8_t msgType,\n        const WeaveMessageInfo
      *msgInfo, AccessControlResult& result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 699
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 699
    functionName: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningDelegate::IsPairedToAccount
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ServiceProvisioningDelegate::IsPairedToAccount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:52,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:52,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:54,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:55,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:56,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:57,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:58,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:59,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:60,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:61,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:62,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:63,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 68
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 68
    functionName: nl::Weave::Profiles::ServiceProvisioning::RegisterServicePairAccountMessage::Encode
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Encoding::LittleEndian::Write64
    - nl::Weave::Encoding::LittleEndian::Write16
    - VerifyOrExit
    - memcpy
    - PacketBuffer*::Start
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: RegisterServicePairAccountMessage::Encode(PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:76,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:77,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:78,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:79,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:80,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read64
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:81,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - msgBuf
    - ' msg'
    argTypes:
    - PacketBuffer*
    - RegisterServicePairAccountMessage
    constantsTouched: []
    func_position:
      end: 93
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 93
    functionName: nl::Weave::Profiles::ServiceProvisioning::RegisterServicePairAccountMessage::Decode
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Read16
    - VerifyOrExit
    - nl::Weave::Encoding::LittleEndian::Read64
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: RegisterServicePairAccountMessage::Decode(PacketBuffer *msgBuf, RegisterServicePairAccountMessage&
      msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:102,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:102,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:104,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:105,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:106,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:107,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 112
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 112
    functionName: nl::Weave::Profiles::ServiceProvisioning::UpdateServiceMessage::Encode
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Encoding::LittleEndian::Write64
    - nl::Weave::Encoding::LittleEndian::Write16
    - VerifyOrExit
    - memcpy
    - PacketBuffer*::Start
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateServiceMessage::Encode(PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:120,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:121,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read64
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:122,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - msgBuf
    - ' msg'
    argTypes:
    - PacketBuffer*
    - UpdateServiceMessage
    constantsTouched: []
    func_position:
      end: 130
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 130
    functionName: nl::Weave::Profiles::ServiceProvisioning::UpdateServiceMessage::Decode
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Read16
    - VerifyOrExit
    - nl::Weave::Encoding::LittleEndian::Read64
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateServiceMessage::Decode(PacketBuffer *msgBuf, UpdateServiceMessage&
      msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:139,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:139,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:141,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:142,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:143,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:144,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:145,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:146,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:147,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:148,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:149,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:150,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:151,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 156
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 156
    functionName: nl::Weave::Profiles::ServiceProvisioning::PairDeviceToAccountMessage::Encode
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Encoding::LittleEndian::Write64
    - nl::Weave::Encoding::LittleEndian::Write16
    - VerifyOrExit
    - memcpy
    - PacketBuffer*::Start
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PairDeviceToAccountMessage::Encode(PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:164,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:165,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:166,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:167,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:168,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read64
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:169,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read64
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:170,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - msgBuf
    - ' msg'
    argTypes:
    - PacketBuffer*
    - PairDeviceToAccountMessage
    constantsTouched: []
    func_position:
      end: 182
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 182
    functionName: nl::Weave::Profiles::ServiceProvisioning::PairDeviceToAccountMessage::Decode
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Read16
    - VerifyOrExit
    - nl::Weave::Encoding::LittleEndian::Read64
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PairDeviceToAccountMessage::Decode(PacketBuffer *msgBuf, PairDeviceToAccountMessage&
      msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:192,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:192,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:194,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:195,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:196,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:197,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:198,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 203
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 203
    functionName: nl::Weave::Profiles::ServiceProvisioning::IFJServiceFabricJoinMessage::Encode
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Encoding::LittleEndian::Write64
    - nl::Weave::Encoding::LittleEndian::Write16
    - VerifyOrExit
    - memcpy
    - PacketBuffer*::Start
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: IFJServiceFabricJoinMessage::Encode(PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:211,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:212,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read64
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:213,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read64
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:214,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - msgBuf
    - ' msg'
    argTypes:
    - PacketBuffer*
    - IFJServiceFabricJoinMessage
    constantsTouched: []
    func_position:
      end: 223
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 223
    functionName: nl::Weave::Profiles::ServiceProvisioning::IFJServiceFabricJoinMessage::Decode
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Read16
    - VerifyOrExit
    - nl::Weave::Encoding::LittleEndian::Read64
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: IFJServiceFabricJoinMessage::Decode(PacketBuffer *msgBuf, IFJServiceFabricJoinMessage&
      msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:231,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:236,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:236,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:237,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:242,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:242,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:243,1
    - Dst: SaveCerts
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:245,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:246,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:248,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:249,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:256,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:256,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:257,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:259,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:259,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:260,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:265,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:265,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:266,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:271,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:272,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:274,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:274,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:275,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:279,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:279,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:280,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:283,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:284,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:287,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:288,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:291,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:292,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:296,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:297,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:300,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:301,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 5
    argNames:
    - ' certSet'
    - dirHostName
    - dirPort
    - outBuf
    - ' outLen'
    argTypes:
    - WeaveCertificateSet
    - char*
    - uint16_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 307
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 307
    functionName: nl::Weave::Profiles::ServiceProvisioning::WEAVE_ERROR::EncodeServiceConfig
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp
    functionUses: 0
    functionsReached:
    - TLVWriter::Finalize
    - ContextTag
    - ProfileTag
    - SaveCerts
    - TLVWriter::GetLengthWritten
    - TLVWriter::PutString
    - SuccessOrExit
    - TLVWriter::Put
    - TLVWriter::Init
    - TLVWriter::EndContainer
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: WEAVE_ERROR EncodeServiceConfig(WeaveCertificateSet& certSet, const
      char *dirHostName, uint16_t dirPort, uint8_t *outBuf, uint16_t& outLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: nl::Weave::Profiles::SendInit::SendInit
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SendInit::SendInit()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 8
    argNames:
    - aSenderDrive
    - aReceiverDrive
    - asynchMode
    - aMaxBlockSize
    - aStartOffset
    - aLength
    - aFileDesignator
    - aMetaData
    argTypes:
    - bool
    - bool
    - bool
    - uint16_t
    - uint64_t
    - uint64_t
    - ReferencedString
    - ReferencedTLVData*
    constantsTouched: []
    func_position:
      end: 90
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 90
    functionName: nl::Weave::Profiles::SendInit::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SendInit::init(bool aSenderDrive, bool aReceiverDrive, bool asynchMode,\n
      \                          uint16_t aMaxBlockSize, uint64_t aStartOffset, uint64_t
      aLength,\n                           ReferencedString &aFileDesignator, ReferencedTLVData
      *aMetaData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SendInit::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 8
    argNames:
    - aSenderDrive
    - aReceiverDrive
    - asynchMode
    - aMaxBlockSize
    - aStartOffset
    - aLength
    - aFileDesignator
    - aMetaData
    argTypes:
    - bool
    - bool
    - bool
    - uint16_t
    - uint32_t
    - uint32_t
    - ReferencedString
    - ReferencedTLVData*
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: nl::Weave::Profiles::SendInit::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SendInit::init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SendInit::init(bool aSenderDrive, bool aReceiverDrive, bool asynchMode,\n\t\t\t
      \  uint16_t aMaxBlockSize, uint32_t aStartOffset, uint32_t aLength,\n\t\t\t
      \  ReferencedString &aFileDesignator, ReferencedTLVData *aMetaData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::append
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:114,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:120,1
    - Dst: MessageIterator::writeByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:120,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:126,1
    - Dst: MessageIterator::writeByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:126,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:127,1
    - Dst: MessageIterator::write16
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:127,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:130,1
    - Dst: MessageIterator::write64
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:130,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:133,1
    - Dst: MessageIterator::write32
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:133,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:138,1
    - Dst: MessageIterator::write64
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:138,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:141,1
    - Dst: MessageIterator::write32
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:141,1
    - Dst: nl::Weave::Profiles::SendInit::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:144,1
    - Dst: nl::Weave::Profiles::SendInit::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:145,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 1
    argNames:
    - aBuffer
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 147
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 147
    functionName: nl::Weave::Profiles::SendInit::pack
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 1
    functionsReached:
    - MessageIterator::writeByte
    - MessageIterator::append
    - TRY
    - MessageIterator::write64
    - MessageIterator::write16
    - nl::Weave::Profiles::SendInit::pack
    - MessageIterator::write32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendInit::pack(PacketBuffer *aBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SendInit::packedLength
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: nl::Weave::Profiles::SendInit::packedLength
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SendInit::packedLength
    linkageType: ''
    returnType: uint16_t
    signature: SendInit::packedLength()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:170,1
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:170,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:176,1
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:176,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:181,1
    - Dst: MessageIterator::read16
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:181,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:184,1
    - Dst: MessageIterator::read64
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:184,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:187,1
    - Dst: MessageIterator::read32
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:187,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:193,1
    - Dst: MessageIterator::read64
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:193,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:196,1
    - Dst: MessageIterator::read32
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:196,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:200,1
    - Dst: ReferencedString::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:200,1
    - Dst: ReferencedTLVData::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:201,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - aBuffer
    - aRequest
    argTypes:
    - PacketBuffer*
    - SendInit
    constantsTouched: []
    func_position:
      end: 203
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 203
    functionName: nl::Weave::Profiles::SendInit::parse
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached:
    - MessageIterator::read64
    - MessageIterator::readByte
    - ReferencedTLVData::parse
    - TRY
    - MessageIterator::read16
    - MessageIterator::read32
    - ReferencedString::parse
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendInit::parse(PacketBuffer *aBuffer, SendInit &aRequest)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 2
    argCount: 1
    argNames:
    - another
    argTypes:
    - SendInit
    constantsTouched: []
    func_position:
      end: 219
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 219
    functionName: SendInit::operator == (const SendInit &another) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: SendInit::operator == (const SendInit &another) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: nl::Weave::Profiles::SendAccept::SendAccept
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SendAccept::SendAccept()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - aTransferMode
    - aMaxBlockSize
    argTypes:
    - uint8_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 248
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 248
    functionName: nl::Weave::Profiles::SendAccept::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendAccept::init(uint8_t aTransferMode, uint16_t aMaxBlockSize, ReferencedTLVData
      *aMetaData=NULL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::append
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:256,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:257,1
    - Dst: MessageIterator::writeByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:257,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:258,1
    - Dst: MessageIterator::write16
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:258,1
    - Dst: nl::Weave::Profiles::SendAccept::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - aBuffer
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 261
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 261
    functionName: nl::Weave::Profiles::SendAccept::pack
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 1
    functionsReached:
    - MessageIterator::writeByte
    - MessageIterator::append
    - nl::Weave::Profiles::SendAccept::pack
    - TRY
    - MessageIterator::write16
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendAccept::pack(PacketBuffer *aBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SendAccept::packedLength
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: nl::Weave::Profiles::SendAccept::packedLength
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SendAccept::packedLength
    linkageType: ''
    returnType: uint16_t
    signature: SendAccept::packedLength()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:279,1
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:279,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:280,1
    - Dst: MessageIterator::read16
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:280,1
    - Dst: ReferencedTLVData::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - aBuffer
    - aResponse
    argTypes:
    - PacketBuffer*
    - SendAccept
    constantsTouched: []
    func_position:
      end: 283
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 283
    functionName: nl::Weave::Profiles::SendAccept::parse
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached:
    - TRY
    - MessageIterator::readByte
    - MessageIterator::read16
    - ReferencedTLVData::parse
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendAccept::parse(PacketBuffer *aBuffer, SendAccept &aResponse)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - another
    argTypes:
    - SendAccept
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: SendAccept::operator== (const SendAccept &another) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: SendAccept::operator== (const SendAccept &another) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 311
    functionName: nl::Weave::Profiles::ReceiveInit::ReceiveInit
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ReceiveInit::ReceiveInit()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 324
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 324
    functionName: nl::Weave::Profiles::ReceiveAccept::ReceiveAccept
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ReceiveAccept::ReceiveAccept()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SendAccept::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - aTransferMode
    - aMaxBlockSize
    - aLength
    argTypes:
    - uint8_t
    - uint16_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 341
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 341
    functionName: nl::Weave::Profiles::ReceiveAccept::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SendAccept::init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReceiveAccept::init(uint8_t aTransferMode, uint16_t aMaxBlockSize,
      uint64_t aLength, ReferencedTLVData *aMetaData=NULL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SendAccept::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - aTransferMode
    - aMaxBlockSize
    - aLength
    argTypes:
    - uint8_t
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 359
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 359
    functionName: nl::Weave::Profiles::ReceiveAccept::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SendAccept::init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReceiveAccept::init(uint8_t aTransferMode, uint16_t aMaxBlockSize,
      uint32_t aLength, ReferencedTLVData *aMetaData=NULL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::append
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:367,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:368,1
    - Dst: MessageIterator::writeByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:368,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:373,1
    - Dst: MessageIterator::writeByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:373,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:374,1
    - Dst: MessageIterator::write16
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:374,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:378,1
    - Dst: MessageIterator::write64
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:378,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:381,1
    - Dst: MessageIterator::write32
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:381,1
    - Dst: nl::Weave::Profiles::ReceiveAccept::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:384,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - aBuffer
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 386
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 386
    functionName: nl::Weave::Profiles::ReceiveAccept::pack
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 1
    functionsReached:
    - MessageIterator::writeByte
    - MessageIterator::append
    - TRY
    - MessageIterator::write64
    - MessageIterator::write16
    - nl::Weave::Profiles::ReceiveAccept::pack
    - MessageIterator::write32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReceiveAccept::pack(PacketBuffer *aBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ReceiveAccept::packedLength
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 394
    functionName: nl::Weave::Profiles::ReceiveAccept::packedLength
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::ReceiveAccept::packedLength
    linkageType: ''
    returnType: uint16_t
    signature: ReceiveAccept::packedLength()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:405,1
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:405,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:408,1
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:408,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:411,1
    - Dst: MessageIterator::read16
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:411,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:414,1
    - Dst: MessageIterator::read64
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:414,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:417,1
    - Dst: MessageIterator::read32
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:417,1
    - Dst: ReferencedTLVData::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - aBuffer
    - aResponse
    argTypes:
    - PacketBuffer*
    - ReceiveAccept
    constantsTouched: []
    func_position:
      end: 423
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 423
    functionName: nl::Weave::Profiles::ReceiveAccept::parse
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached:
    - MessageIterator::read64
    - MessageIterator::readByte
    - ReferencedTLVData::parse
    - TRY
    - MessageIterator::read16
    - MessageIterator::read32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReceiveAccept::parse(PacketBuffer *aBuffer, ReceiveAccept &aResponse)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - another
    argTypes:
    - ReceiveAccept
    constantsTouched: []
    func_position:
      end: 435
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 435
    functionName: ReceiveAccept::operator== (const ReceiveAccept &another) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ReceiveAccept::operator== (const ReceiveAccept &another) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 444
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 444
    functionName: nl::Weave::Profiles::BlockQuery::BlockQuery
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BlockQuery::BlockQuery()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aCounter
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 453
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 453
    functionName: nl::Weave::Profiles::BlockQuery::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BlockQuery::init(uint8_t aCounter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::append
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:461,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:462,1
    - Dst: MessageIterator::writeByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - aBuffer
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 464
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 464
    functionName: nl::Weave::Profiles::BlockQuery::pack
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached:
    - MessageIterator::writeByte
    - MessageIterator::append
    - TRY
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BlockQuery::pack(PacketBuffer *aBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 472
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 472
    functionName: nl::Weave::Profiles::BlockQuery::packedLength
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: BlockQuery::packedLength()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:482,1
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aBuffer
    - aQuery
    argTypes:
    - PacketBuffer*
    - BlockQuery
    constantsTouched: []
    func_position:
      end: 484
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 484
    functionName: nl::Weave::Profiles::BlockQuery::parse
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached:
    - TRY
    - MessageIterator::readByte
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BlockQuery::parse(PacketBuffer *aBuffer, BlockQuery &aQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - another
    argTypes:
    - BlockQuery
    constantsTouched: []
    func_position:
      end: 491
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 491
    functionName: BlockQuery::operator== (const BlockQuery &another) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: BlockQuery::operator== (const BlockQuery &another) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 503
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 503
    functionName: nl::Weave::Profiles::BlockSend::BlockSend
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BlockSend::BlockSend(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - aCounter
    - aLength
    - aData
    argTypes:
    - uint8_t
    - uint64_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 518
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 518
    functionName: nl::Weave::Profiles::BlockSend::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BlockSend::init(uint8_t aCounter, uint64_t aLength, uint8_t *aData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::append
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:526,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:527,1
    - Dst: MessageIterator::writeByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:527,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:536,1
    - Dst: MessageIterator::writeByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - aBuffer
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 538
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 538
    functionName: nl::Weave::Profiles::BlockSend::pack
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached:
    - MessageIterator::writeByte
    - MessageIterator::append
    - TRY
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BlockSend::pack(PacketBuffer *aBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 546
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 546
    functionName: nl::Weave::Profiles::BlockSend::packedLength
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: BlockSend::packedLength()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:556,1
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:556,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:557,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:558,1
    - Dst: BlockSend::Retain
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - aBuffer
    - aResponse
    argTypes:
    - PacketBuffer*
    - BlockSend
    constantsTouched: []
    func_position:
      end: 570
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 570
    functionName: nl::Weave::Profiles::BlockSend::parse
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - MessageIterator::readByte
    - TRY
    - PacketBuffer*::Start
    - BlockSend::Retain
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BlockSend::parse(PacketBuffer *aBuffer, BlockSend &aResponse)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - another
    argTypes:
    - BlockSend
    constantsTouched: []
    func_position:
      end: 579
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 579
    functionName: BlockSend::operator== (const BlockSend &another) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: BlockSend::operator== (const BlockSend &another) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 619
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 619
    functionName: nl::Weave::Profiles::WeaveBdxClient::WeaveBdxClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveBdxClient::WeaveBdxClient()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 7
    argNames:
    - anExchangeMgr
    - aAppState
    - aFileDesignator
    - aMaxBlockSize
    - aStartOffset
    - aLength
    - aWideRange
    argTypes:
    - WeaveExchangeManager*
    - void*
    - ReferencedString
    - uint16_t
    - uint64_t
    - uint64_t
    - bool
    constantsTouched: []
    func_position:
      end: 656
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 656
    functionName: nl::Weave::Profiles::WeaveBdxClient::initClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveBdxClient::initClient(WeaveExchangeManager *anExchangeMgr,\n
      \                                      void *aAppState,\n                                       ReferencedString
      &aFileDesignator,\n                                       uint16_t aMaxBlockSize,\n
      \                                      uint64_t aStartOffset,\n                                       uint64_t
      aLength,\n                                       bool aWideRange)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::WeaveBdxClient::shutdownClient
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 664
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 664
    functionName: nl::Weave::Profiles::WeaveBdxClient::shutdownClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::WeaveBdxClient::shutdownClient
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveBdxClient::shutdownClient()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:672,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:678,1
    - Dst: Abort
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:682,1
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:696,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 1
    argNames:
    - aErr
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 702
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 702
    functionName: nl::Weave::Profiles::WeaveBdxClient::shutdownClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 1
    functionsReached:
    - Close
    - Abort
    - Release
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveBdxClient::shutdownClient(WEAVE_ERROR aErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:728,1
    - Dst: NewContext
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:733,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:760,1
    - Dst: RESCUE
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:766,1
    - Dst: ReceiveInit::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:766,1
    - Dst: RESCUE
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:769,1
    - Dst: ReceiveInit::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:769,1
    - Dst: RESCUE
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:771,1
    - Dst: ReceiveInit::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:771,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:773,1
    - Dst: nl::Weave::Profiles::WeaveBdxClient::DispatchErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:777,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:778,1
    - Dst: nl::Weave::Profiles::WeaveBdxClient::shutdownClient
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:779,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 46
    argCount: 7
    argNames:
    - iCanDrive
    - anAcceptHandler
    - aRejectHandler
    - aBlockHandler
    - aXferErrorHandler
    - aDoneHandler
    - anErrorHandler
    argTypes:
    - bool
    - ReceiveAcceptHandler
    - RejectHandler
    - PutBlockHandler
    - XferErrorHandler
    - XferDoneHandler
    - ErrorHandler
    constantsTouched: []
    func_position:
      end: 781
      start: 720
    functionDepth: 3
    functionLinenumber: 720
    functionLinenumberEnd: 781
    functionName: nl::Weave::Profiles::WeaveBdxClient::initBdxReceive
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached:
    - ReceiveInit::init
    - SendMessage
    - NewContext
    - RESCUE
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::Profiles::WeaveBdxClient::shutdownClient
    - Close
    - nl::Weave::Profiles::WeaveBdxClient::DispatchErrorHandler
    - ReceiveInit::pack
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveBdxClient::initBdxReceive(bool iCanDrive,\n                                           ReceiveAcceptHandler
      anAcceptHandler, RejectHandler aRejectHandler,\n                                           PutBlockHandler
      aBlockHandler, XferErrorHandler aXferErrorHandler,\n                                           XferDoneHandler
      aDoneHandler, ErrorHandler anErrorHandler)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:811,1
    - Dst: NewContext
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:816,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:843,1
    - Dst: RESCUE
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:849,1
    - Dst: SendInit::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:849,1
    - Dst: RESCUE
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:852,1
    - Dst: SendInit::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:852,1
    - Dst: RESCUE
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:854,1
    - Dst: SendInit::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:854,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:856,1
    - Dst: nl::Weave::Profiles::WeaveBdxClient::DispatchErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:860,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:861,1
    - Dst: nl::Weave::Profiles::WeaveBdxClient::shutdownClient
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:862,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 46
    argCount: 10
    argNames:
    - iCanDrive
    - uCanDrive
    - aSynchOK
    - anAcceptHandler
    - aRejectHandler
    - aBlockHandler
    - aXferErrorHandler
    - aDoneHandler
    - anErrorHandler
    - aMetaData
    argTypes:
    - bool
    - bool
    - bool
    - SendAcceptHandler
    - RejectHandler
    - GetBlockHandler
    - XferErrorHandler
    - XferDoneHandler
    - ErrorHandler
    - ReferencedTLVData*
    constantsTouched: []
    func_position:
      end: 864
      start: 802
    functionDepth: 3
    functionLinenumber: 802
    functionLinenumberEnd: 864
    functionName: nl::Weave::Profiles::WeaveBdxClient::initBdxSend
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - NewContext
    - RESCUE
    - SendInit::pack
    - nl::Weave::System::PacketBuffer::Free
    - SendInit::init
    - nl::Weave::Profiles::WeaveBdxClient::shutdownClient
    - Close
    - nl::Weave::Profiles::WeaveBdxClient::DispatchErrorHandler
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveBdxClient::initBdxSend(bool iCanDrive, bool uCanDrive, bool aSynchOK,\n
      \                                       SendAcceptHandler anAcceptHandler, RejectHandler
      aRejectHandler,\n                                        GetBlockHandler aBlockHandler,
      XferErrorHandler aXferErrorHandler,\n                                        XferDoneHandler
      aDoneHandler, ErrorHandler anErrorHandler,\n                                        ReferencedTLVData
      *aMetaData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:880,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:883,1
    - Dst: BlockQuery::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:883,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:884,1
    - Dst: BlockQuery::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:884,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:885,1
    - Dst: WeaveBdxClient*::theExchangeCtx::SendMessage
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:885,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bdxApp
    argTypes:
    - WeaveBdxClient*
    constantsTouched: []
    func_position:
      end: 888
      start: 878
    functionDepth: 3
    functionLinenumber: 878
    functionLinenumberEnd: 888
    functionName: nl::Weave::Profiles::sendBlockQuery
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached:
    - WeaveBdxClient*::theExchangeCtx::SendMessage
    - TRY
    - nl::Weave::System::PacketBuffer::New
    - BlockQuery::init
    - BlockQuery::pack
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: sendBlockQuery(WeaveBdxClient *bdxApp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:896,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:899,1
    - Dst: BlockEOFAck::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:899,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:900,1
    - Dst: BlockEOFAck::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:900,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:901,1
    - Dst: WeaveBdxClient*::theExchangeCtx::SendMessage
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:901,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bdxApp
    argTypes:
    - WeaveBdxClient*
    constantsTouched: []
    func_position:
      end: 904
      start: 894
    functionDepth: 3
    functionLinenumber: 894
    functionLinenumberEnd: 904
    functionName: nl::Weave::Profiles::sendBlockEOFAck
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached:
    - WeaveBdxClient*::theExchangeCtx::SendMessage
    - BlockEOFAck::init
    - TRY
    - BlockEOFAck::pack
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: sendBlockEOFAck(WeaveBdxClient *bdxApp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:923,1
    - Dst: WeaveBdxClient*::DispatchGetBlockHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:925,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:926,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:928,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:929,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:935,1
    - Dst: BlockEOF::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:935,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:936,1
    - Dst: BlockEOF::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:936,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:941,1
    - Dst: BlockSend::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:941,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:942,1
    - Dst: BlockSend::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:942,1
    - Dst: TRY
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:944,1
    - Dst: WeaveBdxClient*::theExchangeCtx::SendMessage
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:944,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - bdxApp
    argTypes:
    - WeaveBdxClient*
    constantsTouched: []
    func_position:
      end: 948
      start: 910
    functionDepth: 3
    functionLinenumber: 910
    functionLinenumberEnd: 948
    functionName: nl::Weave::Profiles::sendBlock
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached:
    - BlockSend::pack
    - WeaveBdxClient*::theExchangeCtx::SendMessage
    - TRY
    - WeaveBdxClient*::DispatchGetBlockHandler
    - VerifyOrExit
    - BlockSend::init
    - BlockEOF::pack
    - BlockEOF::init
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: sendBlock(WeaveBdxClient *bdxApp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:998,1
    - Dst: sendBlock
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1003,1
    - Dst: WeaveBdxClient*::DispatchXferDoneHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1013,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1018,1
    - Dst: WeaveBdxClient*::DispatchXferErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1019,1
    - Dst: WeaveBdxClient*::DispatchErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1023,1
    - Dst: nl::Weave::Profiles::BlockSend::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1059,1
    - Dst: WeaveBdxClient*::DispatchPutBlockHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1060,1
    - Dst: sendBlockQuery
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1063,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1070,1
    - Dst: WeaveBdxClient*::DispatchPutBlockHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1071,1
    - Dst: sendBlockEOFAck
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1074,1
    - Dst: WeaveBdxClient*::DispatchXferDoneHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1075,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1081,1
    - Dst: WeaveBdxClient*::DispatchXferErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1082,1
    - Dst: WeaveBdxClient*::DispatchErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1086,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1103,1
    - Dst: WeaveBdxClient*::DispatchXferErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1104,1
    - Dst: nl::Weave::Profiles::SendAccept::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1114,1
    - Dst: WeaveBdxClient*::DispatchSendAccept
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1116,1
    - Dst: sendBlock
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1123,1
    - Dst: WeaveBdxClient*::DispatchRejectHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1140,1
    - Dst: nl::Weave::Profiles::ReceiveAccept::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1149,1
    - Dst: WeaveBdxClient*::DispatchReceiveAccept
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1151,1
    - Dst: sendBlockQuery
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1159,1
    - Dst: WeaveBdxClient*::DispatchRejectHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1176,1
    - Dst: WeaveBdxClient*::DispatchErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1203,1
    - Dst: WeaveBdxClient*::shutdownClient
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1204,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1206,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 147
    argCount: 6
    argNames:
    - anExchangeCtx
    - pktInfo
    - aWeaveMsgInfo
    - aProfileId
    - aMessageType
    - aPacketBuffer
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1207
      start: 958
    functionDepth: 2
    functionLinenumber: 958
    functionLinenumberEnd: 1207
    functionName: nl::Weave::Profiles::WeaveBdxClient::handleResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached:
    - WeaveBdxClient*::DispatchXferDoneHandler
    - sendBlock
    - WeaveBdxClient*::DispatchPutBlockHandler
    - nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
    - sendBlockQuery
    - WeaveBdxClient*::DispatchRejectHandler
    - nl::Weave::Profiles::BlockSend::parse
    - WeaveBdxClient*::DispatchErrorHandler
    - WeaveBdxClient*::DispatchReceiveAccept
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::Profiles::SendAccept::parse
    - nl::Weave::Profiles::ReceiveAccept::parse
    - WeaveBdxClient*::DispatchSendAccept
    - sendBlockEOFAck
    - WeaveBdxClient*::shutdownClient
    - WeaveBdxClient*::DispatchXferErrorHandler
    linkageType: ''
    returnType: void
    signature: "WeaveBdxClient::handleResponse(ExchangeContext *anExchangeCtx, const
      IPPacketInfo *pktInfo, const WeaveMessageInfo *aWeaveMsgInfo,\n                                    uint32_t
      aProfileId, uint8_t aMessageType, PacketBuffer *aPacketBuffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveBdxClient*::shutdownClient
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1217,1
    - Dst: WeaveBdxClient*::theErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - anExchangeCtx
    - con
    - conErr
    argTypes:
    - ExchangeContext*
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1224
      start: 1209
    functionDepth: 0
    functionLinenumber: 1209
    functionLinenumberEnd: 1224
    functionName: nl::Weave::Profiles::WeaveBdxClient::handleConnectionClosed
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached:
    - WeaveBdxClient*::theErrorHandler
    - WeaveBdxClient*::shutdownClient
    linkageType: ''
    returnType: void
    signature: WeaveBdxClient::handleConnectionClosed(ExchangeContext *anExchangeCtx,
      WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: theReceiveAcceptHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aReceiveAcceptMsg
    argTypes:
    - ReceiveAccept*
    constantsTouched: []
    func_position:
      end: 1232
      start: 1226
    functionDepth: 0
    functionLinenumber: 1226
    functionLinenumberEnd: 1232
    functionName: nl::Weave::Profiles::WeaveBdxClient::DispatchReceiveAccept
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached:
    - theReceiveAcceptHandler
    linkageType: ''
    returnType: void
    signature: WeaveBdxClient::DispatchReceiveAccept(ReceiveAccept *aReceiveAcceptMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: theSendAcceptHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aSendAcceptMsg
    argTypes:
    - SendAccept*
    constantsTouched: []
    func_position:
      end: 1240
      start: 1234
    functionDepth: 0
    functionLinenumber: 1234
    functionLinenumberEnd: 1240
    functionName: nl::Weave::Profiles::WeaveBdxClient::DispatchSendAccept
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached:
    - theSendAcceptHandler
    linkageType: ''
    returnType: void
    signature: WeaveBdxClient::DispatchSendAccept(SendAccept *aSendAcceptMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: theRejectHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aReport
    argTypes:
    - StatusReport*
    constantsTouched: []
    func_position:
      end: 1248
      start: 1242
    functionDepth: 0
    functionLinenumber: 1242
    functionLinenumberEnd: 1248
    functionName: nl::Weave::Profiles::WeaveBdxClient::DispatchRejectHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached:
    - theRejectHandler
    linkageType: ''
    returnType: void
    signature: WeaveBdxClient::DispatchRejectHandler(StatusReport *aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: thePutBlockHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - length
    - dataBlock
    - isLastBlock
    argTypes:
    - uint64_t
    - uint8_t*
    - bool
    constantsTouched: []
    func_position:
      end: 1258
      start: 1250
    functionDepth: 0
    functionLinenumber: 1250
    functionLinenumberEnd: 1258
    functionName: nl::Weave::Profiles::WeaveBdxClient::DispatchPutBlockHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached:
    - thePutBlockHandler
    linkageType: ''
    returnType: void
    signature: "WeaveBdxClient::DispatchPutBlockHandler(uint64_t length,\n                                             uint8_t
      *dataBlock,\n                                             bool isLastBlock)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: theGetBlockHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pLength
    - aDataBlock
    - isLastBlock
    argTypes:
    - uint64_t*
    - uint8_t**
    - bool*
    constantsTouched: []
    func_position:
      end: 1268
      start: 1260
    functionDepth: 0
    functionLinenumber: 1260
    functionLinenumberEnd: 1268
    functionName: nl::Weave::Profiles::WeaveBdxClient::DispatchGetBlockHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached:
    - theGetBlockHandler
    linkageType: ''
    returnType: void
    signature: "WeaveBdxClient::DispatchGetBlockHandler(uint64_t *pLength,\n                                             uint8_t
      **aDataBlock,\n                                             bool *isLastBlock)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: theXferErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aXferError
    argTypes:
    - StatusReport*
    constantsTouched: []
    func_position:
      end: 1276
      start: 1270
    functionDepth: 0
    functionLinenumber: 1270
    functionLinenumberEnd: 1276
    functionName: nl::Weave::Profiles::WeaveBdxClient::DispatchXferErrorHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached:
    - theXferErrorHandler
    linkageType: ''
    returnType: void
    signature: WeaveBdxClient::DispatchXferErrorHandler(StatusReport *aXferError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: theXferDoneHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1278
    functionDepth: 0
    functionLinenumber: 1278
    functionLinenumberEnd: 1284
    functionName: nl::Weave::Profiles::WeaveBdxClient::DispatchXferDoneHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 0
    functionsReached:
    - theXferDoneHandler
    linkageType: ''
    returnType: void
    signature: WeaveBdxClient::DispatchXferDoneHandler()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: theErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp:1290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - anErrorCode
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1292
      start: 1286
    functionDepth: 0
    functionLinenumber: 1286
    functionLinenumberEnd: 1292
    functionName: nl::Weave::Profiles::WeaveBdxClient::DispatchErrorHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
    functionUses: 2
    functionsReached:
    - theErrorHandler
    linkageType: ''
    returnType: void
    signature: WeaveBdxClient::DispatchErrorHandler(WEAVE_ERROR anErrorCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SendInit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.h:143,1
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.h:172,1
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 175
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 175
    functionName: nl::Weave::Profiles::SendInit
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SendInit
    - ReferencedString::ReferencedString
    - ReferencedTLVData::ReferencedTLVData
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: SendInit
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ReceiveInit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.h:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 210
    functionName: nl::Weave::Profiles::ReceiveInit
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::ReceiveInit
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: ReceiveInit
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::BlockQuery
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.h:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 258
    functionName: nl::Weave::Profiles::BlockQuery
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::BlockQuery
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: BlockQuery
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::WeaveBdxClient
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.h:314,1
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.h:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 396
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 396
    functionName: nl::Weave::Profiles::WeaveBdxClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.h
    functionUses: 1
    functionsReached:
    - ReferencedString::ReferencedString
    - nl::Weave::Profiles::WeaveBdxClient
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeaveBdxClient
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: nl::Weave::Profiles::WeaveBdxDelegate::UploadInProgress
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/WeaveBdxDelegate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: UploadInProgress(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: nl::Weave::Profiles::BdxNode::BdxNode
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BdxNode::BdxNode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:73,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:74,1
    - Dst: Reset
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - anExchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 89
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 89
    functionName: nl::Weave::Profiles::BdxNode::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp
    functionUses: 0
    functionsReached:
    - Reset
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BdxNode::Init(WeaveExchangeManager *anExchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::BdxNode::ShutdownTransfer
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:109,1
    - Dst: nl::Weave::Profiles::BdxNode::AllowBdxTransferToRun
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:112,1
    - Dst: nl::Weave::Profiles::BdxNode::AwaitBdxSendInit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:116,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:117,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:119,1
    - Dst: nl::Weave::Profiles::BdxNode::AwaitBdxReceiveInit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:123,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:124,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 136
    functionName: nl::Weave::Profiles::BdxNode::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::BdxNode::AllowBdxTransferToRun
    - nl::Weave::Profiles::BdxNode::AwaitBdxReceiveInit
    - VerifyOrExit
    - nl::Weave::Profiles::BdxNode::ShutdownTransfer
    - nl::Weave::Profiles::BdxNode::AwaitBdxSendInit
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BdxNode::Shutdown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:165,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:165,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:177,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:183,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - aXfer
    argTypes:
    - BDXTransfer*
    constantsTouched: []
    func_position:
      end: 191
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 191
    functionName: nl::Weave::Profiles::BdxNode::AllocTransfer
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp
    functionUses: 0
    functionsReached:
    - WEAVE_FAULT_INJECT
    - ExitNow
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BdxNode::AllocTransfer(BDXTransfer * &aXfer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:228,1
    - Dst: Binding*::NewExchangeContext
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:230,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:231,1
    - Dst: nl::Weave::Profiles::BdxNode::NewTransfer
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - aBinding
    - aBDXHandlers
    - aFileDesignator
    - anAppState
    - aXfer
    argTypes:
    - Binding*
    - BDXHandlers
    - ReferencedString
    - void*
    - BDXTransfer*
    constantsTouched: []
    func_position:
      end: 238
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 238
    functionName: nl::Weave::Profiles::BdxNode::NewTransfer
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp
    functionUses: 1
    functionsReached:
    - Binding*::NewExchangeContext
    - nl::Weave::Profiles::BdxNode::NewTransfer
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "BdxNode::NewTransfer(Binding * aBinding, BDXHandlers aBDXHandlers,\n
      \                                ReferencedString &aFileDesignator, void * anAppState,\n
      \                                BDXTransfer * &aXfer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:275,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:276,1
    - Dst: NewContext
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:278,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:279,1
    - Dst: nl::Weave::Profiles::BdxNode::NewTransfer
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - aCon
    - aBDXHandlers
    - aFileDesignator
    - anAppState
    - aXfer
    argTypes:
    - WeaveConnection*
    - BDXHandlers
    - ReferencedString
    - void*
    - BDXTransfer*
    constantsTouched: []
    func_position:
      end: 286
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 286
    functionName: nl::Weave::Profiles::BdxNode::NewTransfer
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::BdxNode::NewTransfer
    - VerifyOrExit
    - NewContext
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "BdxNode::NewTransfer(WeaveConnection * aCon, BDXHandlers aBDXHandlers,\n
      \                                ReferencedString &aFileDesignator, void * anAppState,\n
      \                                BDXTransfer * &aXfer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::BdxNode::InitTransfer
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:328,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:329,1
    - Dst: BDXTransfer*::SetHandlers
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:336,1
    - Dst: BDXTransfer*::Shutdown
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:343,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:350,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 5
    argNames:
    - anEc
    - aBDXHandlers
    - aFileDesignator
    - anAppState
    - aXfer
    argTypes:
    - ExchangeContext*
    - BDXHandlers
    - ReferencedString
    - void*
    - BDXTransfer*
    constantsTouched: []
    func_position:
      end: 357
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 357
    functionName: nl::Weave::Profiles::BdxNode::NewTransfer
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp
    functionUses: 2
    functionsReached:
    - ExchangeContext*::Close
    - BDXTransfer*::SetHandlers
    - nl::Weave::Profiles::BdxNode::InitTransfer
    - BDXTransfer*::Shutdown
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "BdxNode::NewTransfer(ExchangeContext *anEc, BDXHandlers aBDXHandlers,\n
      \                                ReferencedString &aFileDesignator, void * anAppState,\n
      \                                BDXTransfer * &aXfer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:386,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:387,1
    - Dst: ExchangeContext*::IsConnectionClosed
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:387,1
    - Dst: nl::Weave::Profiles::BdxNode::AllocTransfer
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:389,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - anEc
    - aXfer
    argTypes:
    - ExchangeContext*
    - BDXTransfer*
    constantsTouched: []
    func_position:
      end: 414
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 414
    functionName: nl::Weave::Profiles::BdxNode::InitTransfer
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::BdxNode::AllocTransfer
    - ExchangeContext*::IsConnectionClosed
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "BdxNode::InitTransfer(ExchangeContext *anEc,\n                                 BDXTransfer
      * &aXfer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BDXTransfer*::Shutdown
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aXfer
    argTypes:
    - BDXTransfer*
    constantsTouched: []
    func_position:
      end: 426
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 426
    functionName: nl::Weave::Profiles::BdxNode::ShutdownTransfer
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp
    functionUses: 1
    functionsReached:
    - BDXTransfer*::Shutdown
    linkageType: ''
    returnType: void
    signature: BdxNode::ShutdownTransfer(BDXTransfer *aXfer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aEnable
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 437
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 437
    functionName: nl::Weave::Profiles::BdxNode::AllowBdxTransferToRun
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BdxNode::AllowBdxTransferToRun(bool aEnable)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 448
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 448
    functionName: nl::Weave::Profiles::BdxNode::CanBdxTransferRun
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: BdxNode::CanBdxTransferRun(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 459
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 459
    functionName: nl::Weave::Profiles::BdxNode::IsInitialized
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: BdxNode::IsInitialized(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:487,1
    - Dst: nl::Weave::Profiles::BdxNode::CanBdxTransferRun
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:487,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:488,1
    - Dst: nl::Weave::Profiles::BdxProtocol::InitBdxReceive
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 5
    argNames:
    - aXfer
    - aICanDrive
    - aUCanDrive
    - aAsyncOk
    - aMetaData
    argTypes:
    - BDXTransfer
    - bool
    - bool
    - bool
    - ReferencedTLVData*
    constantsTouched: []
    func_position:
      end: 501
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 501
    functionName: nl::Weave::Profiles::BdxNode::InitBdxReceive
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::BdxProtocol::InitBdxReceive
    - nl::Weave::Profiles::BdxNode::CanBdxTransferRun
    - VerifyOrExit
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "BdxNode::InitBdxReceive(BDXTransfer &aXfer, bool aICanDrive, bool
      aUCanDrive,\n                                    bool aAsyncOk, ReferencedTLVData
      *aMetaData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:530,1
    - Dst: nl::Weave::Profiles::BdxNode::CanBdxTransferRun
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:530,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:531,1
    - Dst: nl::Weave::Profiles::BdxProtocol::InitBdxSend
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 5
    argNames:
    - aXfer
    - aICanDrive
    - aUCanDrive
    - aAsyncOk
    - aMetaData
    argTypes:
    - BDXTransfer
    - bool
    - bool
    - bool
    - ReferencedTLVData*
    constantsTouched: []
    func_position:
      end: 543
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 543
    functionName: nl::Weave::Profiles::BdxNode::InitBdxSend
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::BdxProtocol::InitBdxSend
    - nl::Weave::Profiles::BdxNode::CanBdxTransferRun
    - VerifyOrExit
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "BdxNode::InitBdxSend(BDXTransfer &aXfer, bool aICanDrive, bool aUCanDrive,\n
      \                                bool aAsyncOk, ReferencedTLVData *aMetaData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:572,1
    - Dst: nl::Weave::Profiles::BdxNode::CanBdxTransferRun
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:572,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:573,1
    - Dst: nl::Weave::Profiles::BdxProtocol::InitBdxSend
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 6
    argNames:
    - aXfer
    - aICanDrive
    - aUCanDrive
    - aAsyncOk
    - aMetaDataWriteCallback
    - aMetaDataAppState
    argTypes:
    - BDXTransfer
    - bool
    - bool
    - bool
    - SendInit::MetaDataTLVWriteCallback
    - void*
    constantsTouched: []
    func_position:
      end: 585
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 585
    functionName: nl::Weave::Profiles::BdxNode::InitBdxSend
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::BdxProtocol::InitBdxSend
    - nl::Weave::Profiles::BdxNode::CanBdxTransferRun
    - VerifyOrExit
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "BdxNode::InitBdxSend(BDXTransfer &aXfer, bool aICanDrive, bool aUCanDrive,\n
      \                                bool aAsyncOk, SendInit::MetaDataTLVWriteCallback
      aMetaDataWriteCallback,\n                                 void *aMetaDataAppState)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:604,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:609,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:610,1
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - aReceiveInitHandler
    argTypes:
    - ReceiveInitHandler
    constantsTouched: []
    func_position:
      end: 622
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 622
    functionName: nl::Weave::Profiles::BdxNode::AwaitBdxReceiveInit
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp
    functionUses: 1
    functionsReached:
    - UnregisterUnsolicitedMessageHandler
    - VerifyOrExit
    - RegisterUnsolicitedMessageHandler
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BdxNode::AwaitBdxReceiveInit(ReceiveInitHandler aReceiveInitHandler)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:639,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:643,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:644,1
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - aSendInitHandler
    argTypes:
    - SendInitHandler
    constantsTouched: []
    func_position:
      end: 655
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 655
    functionName: nl::Weave::Profiles::BdxNode::AwaitBdxSendInit
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp
    functionUses: 1
    functionsReached:
    - UnregisterUnsolicitedMessageHandler
    - VerifyOrExit
    - RegisterUnsolicitedMessageHandler
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BdxNode::AwaitBdxSendInit(SendInitHandler aSendInitHandler)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:693,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:695,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:697,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:698,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:701,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:702,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:704,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:705,1
    - Dst: static_cast<BdxNode *>
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:708,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:710,1
    - Dst: BdxNode*::CanBdxTransferRun
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:710,1
    - Dst: BdxNode*::InitTransfer
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:714,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:715,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:726,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:729,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:734,1
    - Dst: BdxNode*::mReceiveInitHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:737,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:738,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:741,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:748,1
    - Dst: nl::Weave::Profiles::BdxNode::SendReceiveAccept
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:750,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:751,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:753,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:759,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:764,1
    - Dst: nl::Weave::Profiles::BdxNode::SendReject
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:773,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:776,1
    - Dst: BDXTransfer*::Shutdown
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:782,1
    - Dst: ExchangeContext*::Con::Close
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:791,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:795,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 59
    argCount: 6
    argNames:
    - anEc
    - aPktInfo
    - aWeaveMsgInfo
    - aProfileId
    - aMessageType
    - aPayloadReceiveInit
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 800
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 800
    functionName: nl::Weave::Profiles::BdxNode::HandleReceiveInit
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp
    functionUses: 0
    functionsReached:
    - ExchangeContext*::Con::Close
    - WeaveLogError
    - BdxNode*::InitTransfer
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::Profiles::BdxNode::SendReject
    - nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
    - ExchangeContext*::Close
    - VerifyOrExit
    - BDXTransfer*::Shutdown
    - static_cast<BdxNode *>
    - BdxNode*::CanBdxTransferRun
    - WeaveLogDetail
    - nl::Weave::Profiles::BdxNode::SendReceiveAccept
    - BdxNode*::mReceiveInitHandler
    linkageType: ''
    returnType: void
    signature: "BdxNode::HandleReceiveInit(ExchangeContext *anEc, const IPPacketInfo
      *aPktInfo,\n                                const WeaveMessageInfo *aWeaveMsgInfo,\n
      \                               uint32_t aProfileId, uint8_t aMessageType,\n
      \                               PacketBuffer *aPayloadReceiveInit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:839,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:841,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:843,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:844,1
    - Dst: nl::Weave::Profiles::SendInit::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:847,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:848,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:850,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:851,1
    - Dst: static_cast<BdxNode *>
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:854,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:856,1
    - Dst: BdxNode*::CanBdxTransferRun
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:856,1
    - Dst: BdxNode*::InitTransfer
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:860,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:861,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:873,1
    - Dst: BdxNode*::mSendInitHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:876,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:877,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:880,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:886,1
    - Dst: nl::Weave::Profiles::BdxNode::SendSendAccept
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:888,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:889,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:891,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:897,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:897,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:902,1
    - Dst: nl::Weave::Profiles::BdxNode::SendReject
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:910,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:913,1
    - Dst: BDXTransfer*::Shutdown
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:919,1
    - Dst: ExchangeContext*::Con::Close
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:928,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:932,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 6
    argNames:
    - anEc
    - aPktInfo
    - aWeaveMsgInfo
    - aProfileId
    - aMessageType
    - aPayload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 937
      start: 823
    functionDepth: 2
    functionLinenumber: 823
    functionLinenumberEnd: 937
    functionName: nl::Weave::Profiles::BdxNode::HandleSendInit
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp
    functionUses: 0
    functionsReached:
    - ExchangeContext*::Con::Close
    - WeaveLogError
    - BdxNode*::InitTransfer
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::Profiles::BdxNode::SendReject
    - ExchangeContext*::Close
    - BdxNode*::mSendInitHandler
    - VerifyOrExit
    - BDXTransfer*::Shutdown
    - nl::Weave::Profiles::BdxNode::SendSendAccept
    - static_cast<BdxNode *>
    - BdxNode*::CanBdxTransferRun
    - WeaveLogDetail
    - nl::Weave::Profiles::SendInit::parse
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: "BdxNode::HandleSendInit(ExchangeContext *anEc, const IPPacketInfo
      *aPktInfo,\n                             const WeaveMessageInfo *aWeaveMsgInfo,\n
      \                            uint32_t aProfileId, uint8_t aMessageType,\n                             PacketBuffer
      *aPayload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:949,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:952,1
    - Dst: StatusReport::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:954,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:955,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:956,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:958,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:959,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:960,1
    - Dst: StatusReport::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:962,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:963,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:964,1
    - Dst: GetBDXAckFlag
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:966,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:969,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:974,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:982,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:983,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:988,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 4
    argNames:
    - anEc
    - aVersion
    - anErr
    - aMsgType
    argTypes:
    - ExchangeContext*
    - uint8_t
    - uint16_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 992
      start: 942
    functionDepth: 3
    functionLinenumber: 942
    functionLinenumberEnd: 992
    functionName: nl::Weave::Profiles::BdxNode::SendReject
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - ExchangeContext*::SendMessage
    - GetBDXAckFlag
    - StatusReport::pack
    - StatusReport::init
    - WeaveLogDetail
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BdxNode::SendReject(ExchangeContext *anEc, uint8_t aVersion, uint16_t
      anErr, uint8_t aMsgType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReceiveAccept::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1005,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1006,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1007,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1009,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1010,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1012,1
    - Dst: ReceiveAccept::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1014,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1015,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1016,1
    - Dst: BDXTransfer*::GetDefaultFlags
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1022,1
    - Dst: BDXTransfer*::IsDriver
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1022,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1024,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1026,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1026,1
    - Dst: BDXTransfer*::IsDriver
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1029,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1031,1
    - Dst: nl::Weave::Profiles::BdxProtocol::SendNextBlockV1
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1034,1
    - Dst: nl::Weave::Profiles::BdxProtocol::SendNextBlock
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1039,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1047,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1048,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - anEc
    - aXfer
    argTypes:
    - ExchangeContext*
    - BDXTransfer*
    constantsTouched: []
    func_position:
      end: 1049
      start: 997
    functionDepth: 3
    functionLinenumber: 997
    functionLinenumberEnd: 1049
    functionName: nl::Weave::Profiles::BdxNode::SendReceiveAccept
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::BdxProtocol::SendNextBlockV1
    - VerifyOrExit
    - ExchangeContext*::SendMessage
    - ReceiveAccept::pack
    - BDXTransfer*::IsDriver
    - BDXTransfer*::GetDefaultFlags
    - WeaveLogDetail
    - nl::Weave::Profiles::BdxProtocol::SendNextBlock
    - ReceiveAccept::init
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BdxNode::SendReceiveAccept(ExchangeContext *anEc, BDXTransfer *aXfer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SendAccept::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1071,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1072,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1073,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1075,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1076,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1078,1
    - Dst: SendAccept::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1080,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1081,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1082,1
    - Dst: BDXTransfer*::GetDefaultFlags
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1088,1
    - Dst: BDXTransfer*::IsDriver
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1088,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1090,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1092,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1093,1
    - Dst: BDXTransfer*::IsDriver
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1096,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1098,1
    - Dst: nl::Weave::Profiles::BdxProtocol::SendBlockQueryV1
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1101,1
    - Dst: nl::Weave::Profiles::BdxProtocol::SendBlockQuery
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1106,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1114,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp:1115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - anEc
    - aXfer
    argTypes:
    - ExchangeContext*
    - BDXTransfer*
    constantsTouched: []
    func_position:
      end: 1116
      start: 1063
    functionDepth: 3
    functionLinenumber: 1063
    functionLinenumberEnd: 1116
    functionName: nl::Weave::Profiles::BdxNode::SendSendAccept
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::BdxProtocol::SendBlockQueryV1
    - SendAccept::init
    - nl::Weave::Profiles::BdxProtocol::SendBlockQuery
    - VerifyOrExit
    - ExchangeContext*::SendMessage
    - BDXTransfer*::IsDriver
    - BDXTransfer*::GetDefaultFlags
    - WeaveLogDetail
    - SendAccept::pack
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BdxNode::SendSendAccept(ExchangeContext *anEc, BDXTransfer *aXfer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: nl::Weave::Profiles::BulkDataTransfer::BdxDelegate::UploadInProgress
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXDelegate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: UploadInProgress(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - anEc
    argTypes:
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 357
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 357
    functionName: nl::Weave::Profiles::GetBDXAckFlag
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: GetBDXAckFlag(ExchangeContext *anEc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 142
    functionName: nl::Weave::Profiles::BdxNode
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: BdxNode
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: nl::Weave::Profiles::SendInit::SendInit
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SendInit::SendInit()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 8
    argNames:
    - aVersion
    - aSenderDrive
    - aReceiverDrive
    - aAsynchMode
    - aMaxBlockSize
    - aStartOffset
    - aLength
    - aFileDesignator
    argTypes:
    - uint8_t
    - bool
    - bool
    - bool
    - uint16_t
    - uint64_t
    - uint64_t
    - ReferencedString
    constantsTouched: []
    func_position:
      end: 114
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 114
    functionName: nl::Weave::Profiles::SendInit::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SendInit::init(uint8_t aVersion, bool aSenderDrive, bool aReceiverDrive,
      bool aAsynchMode,\n                           uint16_t aMaxBlockSize, uint64_t
      aStartOffset, uint64_t aLength,\n                           ReferencedString
      &aFileDesignator, ReferencedTLVData *aMetaData = NULL)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SendInit::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - aVersion
    - aSenderDrive
    - aReceiverDrive
    - aAsynchMode
    - aMaxBlockSize
    - aStartOffset
    - aLength
    - aFileDesignator
    argTypes:
    - uint8_t
    - bool
    - bool
    - bool
    - uint16_t
    - uint32_t
    - uint32_t
    - ReferencedString
    constantsTouched: []
    func_position:
      end: 141
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 141
    functionName: nl::Weave::Profiles::SendInit::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::SendInit::init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SendInit::init(uint8_t aVersion, bool aSenderDrive, bool aReceiverDrive,
      bool aAsynchMode,\n                           uint16_t aMaxBlockSize, uint32_t
      aStartOffset, uint32_t aLength,\n                           ReferencedString
      &aFileDesignator, ReferencedTLVData *aMetaData = NULL)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 8
    argNames:
    - aVersion
    - aSenderDrive
    - aReceiverDrive
    - aAsynchMode
    - aMaxBlockSize
    - aStartOffset
    - aLength
    - aFileDesignator
    argTypes:
    - uint8_t
    - bool
    - bool
    - bool
    - uint16_t
    - uint64_t
    - uint64_t
    - ReferencedString
    constantsTouched: []
    func_position:
      end: 191
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 191
    functionName: nl::Weave::Profiles::SendInit::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SendInit::init(uint8_t aVersion, bool aSenderDrive, bool aReceiverDrive,
      bool aAsynchMode,\n                           uint16_t aMaxBlockSize, uint64_t
      aStartOffset, uint64_t aLength,\n                           ReferencedString
      &aFileDesignator, MetaDataTLVWriteCallback aMetaDataWriteCallback = NULL, void
      *aMetaDataAppState = NULL)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SendInit::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - aVersion
    - aSenderDrive
    - aReceiverDrive
    - aAsynchMode
    - aMaxBlockSize
    - aStartOffset
    - aLength
    - aFileDesignator
    argTypes:
    - uint8_t
    - bool
    - bool
    - bool
    - uint16_t
    - uint32_t
    - uint32_t
    - ReferencedString
    constantsTouched: []
    func_position:
      end: 219
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 219
    functionName: nl::Weave::Profiles::SendInit::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::Profiles::SendInit::init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SendInit::init(uint8_t aVersion, bool aSenderDrive, bool aReceiverDrive,
      bool aAsynchMode,\n                           uint16_t aMaxBlockSize, uint32_t
      aStartOffset, uint32_t aLength,\n                           ReferencedString
      &aFileDesignator, MetaDataTLVWriteCallback aMetaDataWriteCallback = NULL, void
      *aMetaDataAppState = NULL)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::append
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:233,1
    - Dst: MessageIterator::writeByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:245,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:246,1
    - Dst: MessageIterator::writeByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:253,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:254,1
    - Dst: MessageIterator::write16
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:255,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:256,1
    - Dst: MessageIterator::write64
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:262,1
    - Dst: MessageIterator::write32
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:266,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:269,1
    - Dst: MessageIterator::write64
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:275,1
    - Dst: MessageIterator::write32
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:279,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:282,1
    - Dst: nl::Weave::Profiles::SendInit::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:285,1
    - Dst: MessageIterator::GetBuffer
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:289,1
    - Dst: mMetaDataWriteCallback
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:297,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:298,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:302,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:306,1
    - Dst: nl::Weave::Profiles::SendInit::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:310,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 1
    argNames:
    - aBuffer
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 315
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 315
    functionName: nl::Weave::Profiles::SendInit::pack
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 2
    functionsReached:
    - MessageIterator::writeByte
    - MessageIterator::append
    - PacketBuffer*::DataLength
    - mMetaDataWriteCallback
    - PacketBuffer*::SetDataLength
    - MessageIterator::write64
    - MessageIterator::write16
    - nl::Weave::Profiles::SendInit::pack
    - MessageIterator::GetBuffer
    - SuccessOrExit
    - MessageIterator::write32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendInit::pack(PacketBuffer *aBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mMetaDataWriteCallback
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 348
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 348
    functionName: nl::Weave::Profiles::SendInit::GetWrittenMetaDataCallbackLength
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached:
    - mMetaDataWriteCallback
    linkageType: ''
    returnType: uint16_t
    signature: SendInit::GetWrittenMetaDataCallbackLength(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SendInit::GetWrittenMetaDataCallbackLength
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:365,1
    - Dst: nl::Weave::Profiles::SendInit::packedLength
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 373
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 373
    functionName: nl::Weave::Profiles::SendInit::packedLength
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::SendInit::packedLength
    - nl::Weave::Profiles::SendInit::GetWrittenMetaDataCallbackLength
    linkageType: ''
    returnType: uint16_t
    signature: SendInit::packedLength()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:394,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:395,1
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:403,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:404,1
    - Dst: MessageIterator::read16
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:410,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:411,1
    - Dst: MessageIterator::read64
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:416,1
    - Dst: MessageIterator::read32
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:420,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:424,1
    - Dst: MessageIterator::read64
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:431,1
    - Dst: MessageIterator::read32
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:435,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:439,1
    - Dst: ReferencedString::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:442,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:443,1
    - Dst: ReferencedTLVData::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:444,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 2
    argNames:
    - aBuffer
    - aRequest
    argTypes:
    - PacketBuffer*
    - SendInit
    constantsTouched: []
    func_position:
      end: 448
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 448
    functionName: nl::Weave::Profiles::SendInit::parse
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 1
    functionsReached:
    - MessageIterator::read64
    - MessageIterator::readByte
    - ReferencedTLVData::parse
    - MessageIterator::read16
    - MessageIterator::read32
    - SuccessOrExit
    - ReferencedString::parse
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendInit::parse(PacketBuffer *aBuffer, SendInit &aRequest)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 2
    argCount: 1
    argNames:
    - another
    argTypes:
    - SendInit
    constantsTouched: []
    func_position:
      end: 471
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 471
    functionName: SendInit::operator == (const SendInit &another) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: SendInit::operator == (const SendInit &another) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 483
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 483
    functionName: nl::Weave::Profiles::SendAccept::SendAccept
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SendAccept::SendAccept()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - aVersion
    - aTransferMode
    - aMaxBlockSize
    argTypes:
    - uint8_t
    - uint8_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 517
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 517
    functionName: nl::Weave::Profiles::SendAccept::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 2
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendAccept::init(uint8_t aVersion, uint8_t aTransferMode, uint16_t
      aMaxBlockSize, ReferencedTLVData *aMetaData = NULL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::append
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:533,1
    - Dst: MessageIterator::writeByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:534,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:535,1
    - Dst: MessageIterator::write16
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:537,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:538,1
    - Dst: nl::Weave::Profiles::SendAccept::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - aBuffer
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 544
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 544
    functionName: nl::Weave::Profiles::SendAccept::pack
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 2
    functionsReached:
    - MessageIterator::writeByte
    - MessageIterator::append
    - nl::Weave::Profiles::SendAccept::pack
    - MessageIterator::write16
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendAccept::pack(PacketBuffer *aBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SendAccept::packedLength
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 556
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 556
    functionName: nl::Weave::Profiles::SendAccept::packedLength
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::SendAccept::packedLength
    linkageType: ''
    returnType: uint16_t
    signature: SendAccept::packedLength()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:575,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:576,1
    - Dst: MessageIterator::read16
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:581,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:582,1
    - Dst: ReferencedTLVData::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - aBuffer
    - aResponse
    argTypes:
    - PacketBuffer*
    - SendAccept
    constantsTouched: []
    func_position:
      end: 588
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 588
    functionName: nl::Weave::Profiles::SendAccept::parse
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 1
    functionsReached:
    - MessageIterator::readByte
    - MessageIterator::read16
    - ReferencedTLVData::parse
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendAccept::parse(PacketBuffer *aBuffer, SendAccept &aResponse)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - another
    argTypes:
    - SendAccept
    constantsTouched: []
    func_position:
      end: 604
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 604
    functionName: SendAccept::operator == (const SendAccept &another) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: SendAccept::operator == (const SendAccept &another) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 625
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 625
    functionName: nl::Weave::Profiles::ReceiveInit::ReceiveInit
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ReceiveInit::ReceiveInit()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 640
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 640
    functionName: nl::Weave::Profiles::ReceiveAccept::ReceiveAccept
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ReceiveAccept::ReceiveAccept()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:657,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - aVersion
    - aTransferMode
    - aMaxBlockSize
    - aLength
    argTypes:
    - uint8_t
    - uint8_t
    - uint16_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 675
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 675
    functionName: nl::Weave::Profiles::ReceiveAccept::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReceiveAccept::init(uint8_t aVersion, uint8_t aTransferMode, uint16_t
      aMaxBlockSize, uint64_t aLength, ReferencedTLVData *aMetaData = NULL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ReceiveAccept::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - aVersion
    - aTransferMode
    - aMaxBlockSize
    - aLength
    argTypes:
    - uint8_t
    - uint8_t
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 695
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 695
    functionName: nl::Weave::Profiles::ReceiveAccept::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::ReceiveAccept::init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReceiveAccept::init(uint8_t aVersion, uint8_t aTransferMode, uint16_t
      aMaxBlockSize, uint32_t aLength, ReferencedTLVData *aMetaData = NULL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::append
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:712,1
    - Dst: MessageIterator::writeByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:713,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:714,1
    - Dst: MessageIterator::writeByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:720,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:721,1
    - Dst: MessageIterator::write16
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:723,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:724,1
    - Dst: MessageIterator::write64
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:731,1
    - Dst: MessageIterator::write32
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:735,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:738,1
    - Dst: nl::Weave::Profiles::ReceiveAccept::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:741,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - aBuffer
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 745
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 745
    functionName: nl::Weave::Profiles::ReceiveAccept::pack
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 2
    functionsReached:
    - MessageIterator::writeByte
    - MessageIterator::append
    - MessageIterator::write64
    - MessageIterator::write16
    - nl::Weave::Profiles::ReceiveAccept::pack
    - SuccessOrExit
    - MessageIterator::write32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReceiveAccept::pack(PacketBuffer *aBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ReceiveAccept::packedLength
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 757
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 757
    functionName: nl::Weave::Profiles::ReceiveAccept::packedLength
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::ReceiveAccept::packedLength
    linkageType: ''
    returnType: uint16_t
    signature: ReceiveAccept::packedLength()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:778,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:779,1
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:785,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:786,1
    - Dst: MessageIterator::read16
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:791,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:792,1
    - Dst: MessageIterator::read64
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:798,1
    - Dst: MessageIterator::read32
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:802,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:806,1
    - Dst: ReferencedTLVData::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:809,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 2
    argNames:
    - aBuffer
    - aResponse
    argTypes:
    - PacketBuffer*
    - ReceiveAccept
    constantsTouched: []
    func_position:
      end: 813
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 813
    functionName: nl::Weave::Profiles::ReceiveAccept::parse
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 1
    functionsReached:
    - MessageIterator::read64
    - MessageIterator::readByte
    - ReferencedTLVData::parse
    - MessageIterator::read16
    - MessageIterator::read32
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReceiveAccept::parse(PacketBuffer *aBuffer, ReceiveAccept &aResponse)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - another
    argTypes:
    - ReceiveAccept
    constantsTouched: []
    func_position:
      end: 831
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 831
    functionName: ReceiveAccept::operator == (const ReceiveAccept &another) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ReceiveAccept::operator == (const ReceiveAccept &another) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 841
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 841
    functionName: nl::Weave::Profiles::BlockQuery::BlockQuery
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BlockQuery::BlockQuery()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aCounter
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 855
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 855
    functionName: nl::Weave::Profiles::BlockQuery::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BlockQuery::init(uint8_t aCounter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::append
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:870,1
    - Dst: MessageIterator::writeByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - aBuffer
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 873
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 873
    functionName: nl::Weave::Profiles::BlockQuery::pack
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached:
    - MessageIterator::writeByte
    - MessageIterator::append
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BlockQuery::pack(PacketBuffer *aBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 885
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 885
    functionName: nl::Weave::Profiles::BlockQuery::packedLength
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: BlockQuery::packedLength()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aBuffer
    - aQuery
    argTypes:
    - PacketBuffer*
    - BlockQuery
    constantsTouched: []
    func_position:
      end: 904
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 904
    functionName: nl::Weave::Profiles::BlockQuery::parse
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached:
    - MessageIterator::readByte
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BlockQuery::parse(PacketBuffer *aBuffer, BlockQuery &aQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - another
    argTypes:
    - BlockQuery
    constantsTouched: []
    func_position:
      end: 917
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 917
    functionName: BlockQuery::operator == (const BlockQuery &another) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: BlockQuery::operator == (const BlockQuery &another) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 929
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 929
    functionName: nl::Weave::Profiles::BlockSend::BlockSend
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BlockSend::BlockSend()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - aCounter
    - aLength
    - aData
    argTypes:
    - uint8_t
    - uint64_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 947
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 947
    functionName: nl::Weave::Profiles::BlockSend::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BlockSend::init(uint8_t aCounter, uint64_t aLength, uint8_t *aData)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 959
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 959
    functionName: nl::Weave::Profiles::BlockSend::packedLength
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: BlockSend::packedLength()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:976,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:976,1
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:978,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:979,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:981,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:988,1
    - Dst: BlockSend::Retain
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:999,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - aBuffer
    - aResponse
    argTypes:
    - PacketBuffer*
    - BlockSend
    constantsTouched: []
    func_position:
      end: 1003
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 1003
    functionName: nl::Weave::Profiles::BlockSend::parse
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 1
    functionsReached:
    - PacketBuffer*::DataLength
    - MessageIterator::readByte
    - VerifyOrExit
    - SuccessOrExit
    - PacketBuffer*::Start
    - BlockSend::Retain
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BlockSend::parse(PacketBuffer *aBuffer, BlockSend &aResponse)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:1018,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - another
    argTypes:
    - BlockSend
    constantsTouched: []
    func_position:
      end: 1019
      start: 1013
    functionDepth: 0
    functionLinenumber: 1013
    functionLinenumberEnd: 1019
    functionName: BlockSend::operator == (const BlockSend &another) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: BlockSend::operator == (const BlockSend &another) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1027
    functionDepth: 0
    functionLinenumber: 1027
    functionLinenumberEnd: 1030
    functionName: nl::Weave::Profiles::BlockQueryV1::BlockQueryV1
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BlockQueryV1::BlockQueryV1()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aCounter
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1045
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1045
    functionName: nl::Weave::Profiles::BlockQueryV1::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BlockQueryV1::init(uint32_t aCounter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::append
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:1061,1
    - Dst: MessageIterator::write32
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - aBuffer
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1065
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1065
    functionName: nl::Weave::Profiles::BlockQueryV1::pack
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached:
    - MessageIterator::append
    - MessageIterator::write32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BlockQueryV1::pack(PacketBuffer *aBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1073
    functionDepth: 0
    functionLinenumber: 1073
    functionLinenumberEnd: 1077
    functionName: nl::Weave::Profiles::BlockQueryV1::packedLength
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: BlockQueryV1::packedLength()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::read32
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:1094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aBuffer
    - aQuery
    argTypes:
    - PacketBuffer*
    - BlockQueryV1
    constantsTouched: []
    func_position:
      end: 1097
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1097
    functionName: nl::Weave::Profiles::BlockQueryV1::parse
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached:
    - MessageIterator::read32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BlockQueryV1::parse(PacketBuffer *aBuffer, BlockQueryV1 &aQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - another
    argTypes:
    - BlockQueryV1
    constantsTouched: []
    func_position:
      end: 1110
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1110
    functionName: BlockQueryV1::operator == (const BlockQueryV1 &another) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: BlockQueryV1::operator == (const BlockQueryV1 &another) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1117
    functionDepth: 0
    functionLinenumber: 1117
    functionLinenumberEnd: 1122
    functionName: nl::Weave::Profiles::BlockSendV1::BlockSendV1
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BlockSendV1::BlockSendV1()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - aCounter
    - aLength
    - aData
    argTypes:
    - uint32_t
    - uint64_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1141
      start: 1134
    functionDepth: 0
    functionLinenumber: 1134
    functionLinenumberEnd: 1141
    functionName: nl::Weave::Profiles::BlockSendV1::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BlockSendV1::init(uint32_t aCounter, uint64_t aLength, uint8_t *aData)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1149
    functionDepth: 0
    functionLinenumber: 1149
    functionLinenumberEnd: 1153
    functionName: nl::Weave::Profiles::BlockSendV1::packedLength
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: BlockSendV1::packedLength()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:1170,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:1170,1
    - Dst: MessageIterator::read32
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:1172,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:1173,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:1175,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:1182,1
    - Dst: BlockSendV1::Retain
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:1193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - aBuffer
    - aResponse
    argTypes:
    - PacketBuffer*
    - BlockSendV1
    constantsTouched: []
    func_position:
      end: 1197
      start: 1165
    functionDepth: 1
    functionLinenumber: 1165
    functionLinenumberEnd: 1197
    functionName: nl::Weave::Profiles::BlockSendV1::parse
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - BlockSendV1::Retain
    - VerifyOrExit
    - MessageIterator::read32
    - SuccessOrExit
    - PacketBuffer*::Start
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BlockSendV1::parse(PacketBuffer *aBuffer, BlockSendV1 &aResponse)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp:1212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - another
    argTypes:
    - BlockSendV1
    constantsTouched: []
    func_position:
      end: 1213
      start: 1207
    functionDepth: 0
    functionLinenumber: 1207
    functionLinenumberEnd: 1213
    functionName: BlockSendV1::operator == (const BlockSendV1 &another) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: BlockSendV1::operator == (const BlockSendV1 &another) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.h:152,1
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 157
    functionName: nl::Weave::Profiles::SendInit
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.h
    functionUses: 1
    functionsReached:
    - ReferencedTLVData::ReferencedTLVData
    - ReferencedString::ReferencedString
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: SendInit
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: nl::Weave::Profiles::ReceiveInit
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: ReceiveInit
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 282
    functionName: nl::Weave::Profiles::BlockQuery
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: BlockQuery
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 370
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 370
    functionName: nl::Weave::Profiles::BlockQueryV1
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: BlockQueryV1
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp:60,1
    - Dst: Abort
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp:64,1
    - Dst: nl::Weave::Profiles::BDXTransfer::Reset
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 69
    functionName: nl::Weave::Profiles::BDXTransfer::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp
    functionUses: 0
    functionsReached:
    - Close
    - nl::Weave::Profiles::BDXTransfer::Reset
    - Abort
    linkageType: ''
    returnType: void
    signature: BDXTransfer::Shutdown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 98
    functionName: nl::Weave::Profiles::BDXTransfer::Reset
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BDXTransfer::Reset(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: nl::Weave::Profiles::BDXTransfer::IsAsync
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: BDXTransfer::IsAsync(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: nl::Weave::Profiles::BDXTransfer::IsDriver
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: BDXTransfer::IsDriver(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aHandlers
    argTypes:
    - BDXHandlers
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: nl::Weave::Profiles::BDXTransfer::SetHandlers
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BDXTransfer::SetHandlers(BDXHandlers aHandlers)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetBDXAckFlag
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aExpectResponse
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: nl::Weave::Profiles::BDXTransfer::GetDefaultFlags
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp
    functionUses: 0
    functionsReached:
    - GetBDXAckFlag
    linkageType: ''
    returnType: uint16_t
    signature: BDXTransfer::GetDefaultFlags(bool aExpectResponse)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mReceiveAcceptHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - aReceiveAcceptMsg
    argTypes:
    - ReceiveAccept*
    constantsTouched: []
    func_position:
      end: 174
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 174
    functionName: nl::Weave::Profiles::BDXTransfer::DispatchReceiveAccept
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp
    functionUses: 0
    functionsReached:
    - mReceiveAcceptHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BDXTransfer::DispatchReceiveAccept(ReceiveAccept *aReceiveAcceptMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mSendAcceptHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - aSendAcceptMsg
    argTypes:
    - SendAccept*
    constantsTouched: []
    func_position:
      end: 192
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 192
    functionName: nl::Weave::Profiles::BDXTransfer::DispatchSendAccept
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp
    functionUses: 0
    functionsReached:
    - mSendAcceptHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BDXTransfer::DispatchSendAccept(SendAccept *aSendAcceptMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mRejectHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp:205,1
    - Dst: nl::Weave::Profiles::BDXTransfer::Shutdown
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - aReport
    argTypes:
    - StatusReport*
    constantsTouched: []
    func_position:
      end: 211
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 211
    functionName: nl::Weave::Profiles::BDXTransfer::DispatchRejectHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::BDXTransfer::Shutdown
    - mRejectHandler
    linkageType: ''
    returnType: void
    signature: BDXTransfer::DispatchRejectHandler(StatusReport *aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mPutBlockHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - aLength
    - aDataBlock
    - aLastBlock
    argTypes:
    - uint64_t
    - uint8_t*
    - bool
    constantsTouched: []
    func_position:
      end: 230
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 230
    functionName: nl::Weave::Profiles::BDXTransfer::DispatchPutBlockHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp
    functionUses: 0
    functionsReached:
    - mPutBlockHandler
    linkageType: ''
    returnType: void
    signature: "BDXTransfer::DispatchPutBlockHandler(uint64_t aLength,\n                                          uint8_t
      *aDataBlock,\n                                          bool aLastBlock)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mGetBlockHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - aLength
    - aDataBlock
    - aLastBlock
    argTypes:
    - uint64_t*
    - uint8_t**
    - bool*
    constantsTouched: []
    func_position:
      end: 248
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 248
    functionName: nl::Weave::Profiles::BDXTransfer::DispatchGetBlockHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp
    functionUses: 0
    functionsReached:
    - mGetBlockHandler
    linkageType: ''
    returnType: void
    signature: "BDXTransfer::DispatchGetBlockHandler(uint64_t *aLength,\n                                          uint8_t
      **aDataBlock,\n                                          bool *aLastBlock)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp:261,1
    - Dst: nl::Weave::Profiles::BDXTransfer::Shutdown
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - anErrorCode
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 267
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 267
    functionName: nl::Weave::Profiles::BDXTransfer::DispatchErrorHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp
    functionUses: 0
    functionsReached:
    - mErrorHandler
    - nl::Weave::Profiles::BDXTransfer::Shutdown
    linkageType: ''
    returnType: void
    signature: BDXTransfer::DispatchErrorHandler(WEAVE_ERROR anErrorCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mXferErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp:280,1
    - Dst: nl::Weave::Profiles::BDXTransfer::Shutdown
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - aXferError
    argTypes:
    - StatusReport*
    constantsTouched: []
    func_position:
      end: 286
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 286
    functionName: nl::Weave::Profiles::BDXTransfer::DispatchXferErrorHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::BDXTransfer::Shutdown
    - mXferErrorHandler
    linkageType: ''
    returnType: void
    signature: BDXTransfer::DispatchXferErrorHandler(StatusReport *aXferError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mXferDoneHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp:297,1
    - Dst: nl::Weave::Profiles::BDXTransfer::Shutdown
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 303
    functionName: nl::Weave::Profiles::BDXTransfer::DispatchXferDoneHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::BDXTransfer::Shutdown
    - mXferDoneHandler
    linkageType: ''
    returnType: void
    signature: BDXTransfer::DispatchXferDoneHandler(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:65,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:68,1
    - Dst: ReceiveInit::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:72,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:73,1
    - Dst: ReceiveInit::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:77,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:78,1
    - Dst: ReceiveInit::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:81,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:82,1
    - Dst: BDXTransfer::GetDefaultFlags
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:84,1
    - Dst: BDXTransfer::mExchangeContext::SendMessage
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:86,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:88,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 5
    argNames:
    - aXfer
    - aICanDrive
    - aUCanDrive
    - aAsyncOk
    - aMetaData
    argTypes:
    - BDXTransfer
    - bool
    - bool
    - bool
    - ReferencedTLVData*
    constantsTouched: []
    func_position:
      end: 97
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 97
    functionName: nl::Weave::Profiles::BdxProtocol::InitBdxReceive
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp
    functionUses: 1
    functionsReached:
    - ReceiveInit::init
    - BDXTransfer::mExchangeContext::SendMessage
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - BDXTransfer::GetDefaultFlags
    - SuccessOrExit
    - ReceiveInit::pack
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "InitBdxReceive(BDXTransfer &aXfer, bool aICanDrive, bool aUCanDrive,\n
      \                          bool aAsyncOk, ReferencedTLVData *aMetaData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:121,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:124,1
    - Dst: SendInit::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:128,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:129,1
    - Dst: SendInit::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:133,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:134,1
    - Dst: SendInit::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:137,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:138,1
    - Dst: BDXTransfer::GetDefaultFlags
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:140,1
    - Dst: BDXTransfer::mExchangeContext::SendMessage
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:142,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:144,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 5
    argNames:
    - aXfer
    - aICanDrive
    - aUCanDrive
    - aAsyncOk
    - aMetaData
    argTypes:
    - BDXTransfer
    - bool
    - bool
    - bool
    - ReferencedTLVData*
    constantsTouched: []
    func_position:
      end: 153
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 153
    functionName: nl::Weave::Profiles::BdxProtocol::InitBdxSend
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp
    functionUses: 2
    functionsReached:
    - BDXTransfer::mExchangeContext::SendMessage
    - SendInit::pack
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - SendInit::init
    - BDXTransfer::GetDefaultFlags
    - SuccessOrExit
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "InitBdxSend(BDXTransfer &aXfer, bool aICanDrive, bool aUCanDrive,\n
      \                       bool aAsyncOk, ReferencedTLVData *aMetaData)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:177,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:180,1
    - Dst: SendInit::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:184,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:185,1
    - Dst: SendInit::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:189,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:190,1
    - Dst: SendInit::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:193,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:194,1
    - Dst: BDXTransfer::GetDefaultFlags
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:196,1
    - Dst: BDXTransfer::mExchangeContext::SendMessage
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:198,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:200,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 6
    argNames:
    - aXfer
    - aICanDrive
    - aUCanDrive
    - aAsyncOk
    - aMetaDataWriteCallback
    - aMetaDataAppState
    argTypes:
    - BDXTransfer
    - bool
    - bool
    - bool
    - SendInit::MetaDataTLVWriteCallback
    - void*
    constantsTouched: []
    func_position:
      end: 209
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 209
    functionName: nl::Weave::Profiles::BdxProtocol::InitBdxSend
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp
    functionUses: 2
    functionsReached:
    - BDXTransfer::mExchangeContext::SendMessage
    - SendInit::pack
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - SendInit::init
    - BDXTransfer::GetDefaultFlags
    - SuccessOrExit
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "InitBdxSend(BDXTransfer &aXfer, bool aICanDrive, bool aUCanDrive,\n
      \                       bool aAsyncOk, SendInit::MetaDataTLVWriteCallback aMetaDataWriteCallback,\n
      \                       void *aMetaDataAppState)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::BdxProtocol::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' aXfer'
    argTypes:
    - BDXTransfer
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: nl::Weave::Profiles::BdxProtocol::SendBadBlockCounterStatusReport
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::BdxProtocol::SendStatusReport
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendBadBlockCounterStatusReport(BDXTransfer & aXfer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:233,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:237,1
    - Dst: BlockQuery::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:239,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:239,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:240,1
    - Dst: BlockQuery::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:242,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:243,1
    - Dst: BDXTransfer::GetDefaultFlags
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:245,1
    - Dst: BDXTransfer::mExchangeContext::SendMessage
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:247,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - aXfer
    argTypes:
    - BDXTransfer
    constantsTouched: []
    func_position:
      end: 257
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 257
    functionName: nl::Weave::Profiles::BdxProtocol::SendBlockQuery
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp
    functionUses: 1
    functionsReached:
    - BDXTransfer::mExchangeContext::SendMessage
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - static_cast<uint8_t>
    - BDXTransfer::GetDefaultFlags
    - SuccessOrExit
    - BlockQuery::init
    - BlockQuery::pack
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendBlockQuery(BDXTransfer &aXfer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:273,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:277,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:279,1
    - Dst: BlockQueryV1::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:279,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:280,1
    - Dst: BlockQueryV1::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:280,1
    - Dst: BDXTransfer::GetDefaultFlags
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:282,1
    - Dst: BDXTransfer::mExchangeContext::SendMessage
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:284,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - aXfer
    argTypes:
    - BDXTransfer
    constantsTouched: []
    func_position:
      end: 294
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 294
    functionName: nl::Weave::Profiles::BdxProtocol::SendBlockQueryV1
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp
    functionUses: 1
    functionsReached:
    - BDXTransfer::mExchangeContext::SendMessage
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - BlockQueryV1::pack
    - BDXTransfer::GetDefaultFlags
    - SuccessOrExit
    - BlockQueryV1::init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendBlockQueryV1(BDXTransfer &aXfer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:312,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:316,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:318,1
    - Dst: BlockAck::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:318,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:318,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:319,1
    - Dst: BlockAck::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:319,1
    - Dst: BDXTransfer::GetDefaultFlags
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:321,1
    - Dst: BDXTransfer::mExchangeContext::SendMessage
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:323,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - aXfer
    argTypes:
    - BDXTransfer
    constantsTouched: []
    func_position:
      end: 333
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 333
    functionName: nl::Weave::Profiles::BdxProtocol::SendBlockAck
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp
    functionUses: 0
    functionsReached:
    - BlockAck::pack
    - BDXTransfer::mExchangeContext::SendMessage
    - nl::Weave::System::PacketBuffer::Free
    - BlockAck::init
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - static_cast<uint8_t>
    - BDXTransfer::GetDefaultFlags
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendBlockAck(BDXTransfer &aXfer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:351,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:355,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:357,1
    - Dst: BlockAckV1::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:357,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:358,1
    - Dst: BlockAckV1::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:358,1
    - Dst: BDXTransfer::GetDefaultFlags
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:360,1
    - Dst: BDXTransfer::mExchangeContext::SendMessage
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:362,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - aXfer
    argTypes:
    - BDXTransfer
    constantsTouched: []
    func_position:
      end: 372
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 372
    functionName: nl::Weave::Profiles::BdxProtocol::SendBlockAckV1
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp
    functionUses: 0
    functionsReached:
    - BDXTransfer::mExchangeContext::SendMessage
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - BDXTransfer::GetDefaultFlags
    - SuccessOrExit
    - BlockAckV1::init
    - BlockAckV1::pack
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendBlockAckV1(BDXTransfer &aXfer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:388,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:392,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:394,1
    - Dst: BlockEOFAck::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:394,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:394,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:395,1
    - Dst: BlockEOFAck::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:395,1
    - Dst: BDXTransfer::GetDefaultFlags
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:397,1
    - Dst: BDXTransfer::mExchangeContext::SendMessage
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:399,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:405,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:410,1
    - Dst: BDXTransfer::DispatchXferDoneHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - aXfer
    argTypes:
    - BDXTransfer
    constantsTouched: []
    func_position:
      end: 417
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 417
    functionName: nl::Weave::Profiles::BdxProtocol::SendBlockEOFAck
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp
    functionUses: 0
    functionsReached:
    - BDXTransfer::DispatchXferDoneHandler
    - BDXTransfer::mExchangeContext::SendMessage
    - nl::Weave::System::PacketBuffer::Free
    - BlockEOFAck::init
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - static_cast<uint8_t>
    - BDXTransfer::GetDefaultFlags
    - WeaveLogDetail
    - SuccessOrExit
    - BlockEOFAck::pack
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendBlockEOFAck(BDXTransfer &aXfer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:433,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:437,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:439,1
    - Dst: BlockEOFAckV1::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:439,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:440,1
    - Dst: BlockEOFAckV1::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:440,1
    - Dst: BDXTransfer::GetDefaultFlags
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:442,1
    - Dst: BDXTransfer::mExchangeContext::SendMessage
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:444,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:450,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:455,1
    - Dst: BDXTransfer::DispatchXferDoneHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - aXfer
    argTypes:
    - BDXTransfer
    constantsTouched: []
    func_position:
      end: 462
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 462
    functionName: nl::Weave::Profiles::BdxProtocol::SendBlockEOFAckV1
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp
    functionUses: 0
    functionsReached:
    - BDXTransfer::DispatchXferDoneHandler
    - BDXTransfer::mExchangeContext::SendMessage
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - BDXTransfer::GetDefaultFlags
    - BlockEOFAckV1::init
    - WeaveLogDetail
    - SuccessOrExit
    - BlockEOFAckV1::pack
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendBlockEOFAckV1(BDXTransfer &aXfer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:486,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:489,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:490,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:492,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:497,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:504,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:506,1
    - Dst: nl::Weave::Encoding::Write8
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:507,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:510,1
    - Dst: BDXTransfer::DispatchGetBlockHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:512,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:517,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:517,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:522,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:524,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:524,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:527,1
    - Dst: BDXTransfer::GetDefaultFlags
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:540,1
    - Dst: BDXTransfer::mExchangeContext::SendMessage
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:542,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:548,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 1
    argNames:
    - aXfer
    argTypes:
    - BDXTransfer
    constantsTouched: []
    func_position:
      end: 552
      start: 478
    functionDepth: 3
    functionLinenumber: 478
    functionLinenumberEnd: 552
    functionName: nl::Weave::Profiles::BdxProtocol::SendNextBlock
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp
    functionUses: 1
    functionsReached:
    - PacketBuffer*::SetDataLength
    - BDXTransfer::mExchangeContext::SendMessage
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::Encoding::Write8
    - BDXTransfer::DispatchGetBlockHandler
    - VerifyOrExit
    - static_cast<uint8_t>
    - PacketBuffer*::AvailableDataLength
    - BDXTransfer::GetDefaultFlags
    - memcpy
    - WeaveLogDetail
    - PacketBuffer*::Start
    - WEAVE_FAULT_INJECT
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendNextBlock(BDXTransfer &aXfer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:572,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:576,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:578,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:580,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:584,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:587,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:589,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:591,1
    - Dst: BDXTransfer::DispatchGetBlockHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:598,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:603,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:603,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:608,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:610,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:610,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:613,1
    - Dst: BDXTransfer::GetDefaultFlags
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:626,1
    - Dst: BDXTransfer::mExchangeContext::SendMessage
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:628,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:634,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - aXfer
    argTypes:
    - BDXTransfer
    constantsTouched: []
    func_position:
      end: 638
      start: 565
    functionDepth: 3
    functionLinenumber: 565
    functionLinenumberEnd: 638
    functionName: nl::Weave::Profiles::BdxProtocol::SendNextBlockV1
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp
    functionUses: 1
    functionsReached:
    - PacketBuffer*::SetDataLength
    - BDXTransfer::mExchangeContext::SendMessage
    - nl::Weave::System::PacketBuffer::Free
    - BDXTransfer::DispatchGetBlockHandler
    - VerifyOrExit
    - BDXTransfer::GetDefaultFlags
    - PacketBuffer*::AvailableDataLength
    - memcpy
    - WeaveLogDetail
    - PacketBuffer*::Start
    - nl::Weave::Encoding::LittleEndian::Write32
    - WEAVE_FAULT_INJECT
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendNextBlockV1(BDXTransfer &aXfer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BDXTransfer *>
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:658,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:660,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:661,1
    - Dst: nl::Weave::Profiles::BdxProtocol::HandleResponseTransmit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:671,1
    - Dst: nl::Weave::Profiles::BdxProtocol::HandleResponseReceive
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:677,1
    - Dst: nl::Weave::Profiles::BdxProtocol::HandleResponseNotAccepted
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:683,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:686,1
    - Dst: BDXTransfer*::mNext
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:691,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:697,1
    - Dst: BDXTransfer*::DispatchErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:701,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 6
    argNames:
    - anEc
    - aPktInfo
    - aWeaveMsgInfo
    - aProfileId
    - aMessageType
    - aPacketBuffer
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 703
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 703
    functionName: nl::Weave::Profiles::BdxProtocol::HandleResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::BdxProtocol::HandleResponseNotAccepted
    - nl::Weave::Profiles::BdxProtocol::HandleResponseTransmit
    - nl::Weave::Profiles::BdxProtocol::HandleResponseReceive
    - static_cast<BDXTransfer *>
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - BDXTransfer*::DispatchErrorHandler
    - BDXTransfer*::mNext
    linkageType: ''
    returnType: void
    signature: "HandleResponse(ExchangeContext *anEc, const IPPacketInfo *aPktInfo,
      const WeaveMessageInfo *aWeaveMsgInfo,\n                    uint32_t aProfileId,
      uint8_t aMessageType, PacketBuffer *aPacketBuffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BDXTransfer *>
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:717,1
    - Dst: BDXTransfer*::DispatchErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - anEc
    - aCon
    - aConErr
    argTypes:
    - ExchangeContext*
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 727
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 727
    functionName: nl::Weave::Profiles::BdxProtocol::HandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp
    functionUses: 0
    functionsReached:
    - static_cast<BDXTransfer *>
    - BDXTransfer*::DispatchErrorHandler
    linkageType: ''
    returnType: void
    signature: HandleConnectionClosed(ExchangeContext *anEc, WeaveConnection *aCon,
      WEAVE_ERROR aConErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BDXTransfer *>
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:738,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:740,1
    - Dst: BDXTransfer*::DispatchErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - anEc
    argTypes:
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 742
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 742
    functionName: nl::Weave::Profiles::BdxProtocol::HandleResponseTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp
    functionUses: 0
    functionsReached:
    - static_cast<BDXTransfer *>
    - WeaveLogDetail
    - BDXTransfer*::DispatchErrorHandler
    linkageType: ''
    returnType: void
    signature: HandleResponseTimeout(ExchangeContext *anEc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BDXTransfer *>
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:754,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:756,1
    - Dst: BDXTransfer*::DispatchErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - anEc
    - aKeyErr
    argTypes:
    - ExchangeContext*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 758
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 758
    functionName: nl::Weave::Profiles::BdxProtocol::HandleKeyError
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp
    functionUses: 0
    functionsReached:
    - static_cast<BDXTransfer *>
    - WeaveLogDetail
    - BDXTransfer*::DispatchErrorHandler
    linkageType: ''
    returnType: void
    signature: HandleKeyError(ExchangeContext *anEc, WEAVE_ERROR aKeyErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BDXTransfer *>
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:773,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:775,1
    - Dst: BDXTransfer*::DispatchErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - anEc
    - aSendErr
    - aMsgCtxt
    argTypes:
    - ExchangeContext*
    - WEAVE_ERROR
    - void*
    constantsTouched: []
    func_position:
      end: 777
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 777
    functionName: nl::Weave::Profiles::BdxProtocol::HandleSendError
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp
    functionUses: 0
    functionsReached:
    - static_cast<BDXTransfer *>
    - WeaveLogDetail
    - BDXTransfer*::DispatchErrorHandler
    linkageType: ''
    returnType: void
    signature: HandleSendError(ExchangeContext *anEc, WEAVE_ERROR aSendErr, void *aMsgCtxt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:792,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:795,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:796,1
    - Dst: TransferError::init
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:799,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:800,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:801,1
    - Dst: TransferError::pack
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:804,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:805,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:806,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:812,1
    - Dst: GetBDXAckFlag
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:812,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:815,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:816,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - anEc
    - aProfileId
    - aStatusCode
    argTypes:
    - ExchangeContext*
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 822
      start: 789
    functionDepth: 3
    functionLinenumber: 789
    functionLinenumberEnd: 822
    functionName: nl::Weave::Profiles::BdxProtocol::SendTransferError
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - TransferError::init
    - VerifyOrExit
    - TransferError::pack
    - ExchangeContext*::SendMessage
    - GetBDXAckFlag
    - WeaveLogDetail
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: SendTransferError(ExchangeContext *anEc, uint32_t aProfileId, uint16_t
      aStatusCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:840,1
    - Dst: GetBDXAckFlag
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:840,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - anEc
    - aProfileId
    - aStatusCode
    argTypes:
    - ExchangeContext*
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 845
      start: 833
    functionDepth: 2
    functionLinenumber: 833
    functionLinenumberEnd: 845
    functionName: nl::Weave::Profiles::BdxProtocol::SendStatusReport
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp
    functionUses: 1
    functionsReached:
    - GetBDXAckFlag
    - nl::Weave::WeaveServerBase::SendStatusReport
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: SendStatusReport(ExchangeContext *anEc, uint32_t aProfileId, uint16_t
      aStatusCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:864,1
    - Dst: BDXTransfer::DispatchXferErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:867,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:887,1
    - Dst: BDXTransfer::IsDriver
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:887,1
    - Dst: BDXTransfer::IsAsync
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:887,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:889,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:890,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:890,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:894,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:900,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:903,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:908,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:919,1
    - Dst: BDXTransfer::IsDriver
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:919,1
    - Dst: BDXTransfer::IsAsync
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:919,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:921,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:922,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:922,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:934,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:952,1
    - Dst: BDXTransfer::IsDriver
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:952,1
    - Dst: BDXTransfer::IsAsync
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:952,1
    - Dst: nl::Weave::Profiles::BlockQuery::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:954,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:955,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:955,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:966,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:978,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:989,1
    - Dst: BDXTransfer::IsDriver
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:989,1
    - Dst: BDXTransfer::IsAsync
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:989,1
    - Dst: nl::Weave::Profiles::BlockQueryV1::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:991,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:992,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:992,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1014,1
    - Dst: BDXTransfer::DispatchXferDoneHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1034,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1044,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1045,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1045,1
    - Dst: BDXTransfer::DispatchXferDoneHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1052,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1057,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1068,1
    - Dst: BDXTransfer::DispatchXferErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1069,1
    - Dst: BDXTransfer::DispatchErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1077,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1087,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 115
    argCount: 4
    argNames:
    - aXfer
    - aProfileId
    - aMessageType
    - aPacketBuffer
    argTypes:
    - BDXTransfer
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1091
      start: 855
    functionDepth: 2
    functionLinenumber: 855
    functionLinenumberEnd: 1091
    functionName: nl::Weave::Profiles::BdxProtocol::HandleResponseTransmit
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp
    functionUses: 1
    functionsReached:
    - BDXTransfer::DispatchXferDoneHandler
    - WeaveLogError
    - nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
    - VerifyOrExit
    - nl::Weave::Profiles::StatusReporting::StatusReport::parse
    - BDXTransfer::IsDriver
    - static_cast<uint8_t>
    - nl::Weave::Profiles::BlockQuery::parse
    - BDXTransfer::IsAsync
    - WeaveLogDetail
    - nl::Weave::Profiles::BlockQueryV1::parse
    - BDXTransfer::DispatchErrorHandler
    - BDXTransfer::DispatchXferErrorHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: HandleResponseTransmit(BDXTransfer &aXfer, uint32_t aProfileId, uint8_t
      aMessageType, PacketBuffer *aPacketBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1109,1
    - Dst: BDXTransfer::DispatchXferErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1112,1
    - Dst: nl::Weave::Profiles::BlockSend::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1124,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1125,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1125,1
    - Dst: BDXTransfer::DispatchPutBlockHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1127,1
    - Dst: BDXTransfer::IsDriver
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1131,1
    - Dst: nl::Weave::Profiles::BlockSendV1::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1140,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1141,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1141,1
    - Dst: BDXTransfer::DispatchPutBlockHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1147,1
    - Dst: BDXTransfer::IsDriver
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1153,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1157,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1180,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1182,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1183,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1183,1
    - Dst: BDXTransfer::DispatchPutBlockHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1185,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1198,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1199,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1199,1
    - Dst: BDXTransfer::DispatchPutBlockHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1205,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1214,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1226,1
    - Dst: BDXTransfer::DispatchXferErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1227,1
    - Dst: BDXTransfer::DispatchErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1235,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1245,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 76
    argCount: 4
    argNames:
    - aXfer
    - aProfileId
    - aMessageType
    - aPacketBuffer
    argTypes:
    - BDXTransfer
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1249
      start: 1100
    functionDepth: 2
    functionLinenumber: 1100
    functionLinenumberEnd: 1249
    functionName: nl::Weave::Profiles::BdxProtocol::HandleResponseReceive
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp
    functionUses: 1
    functionsReached:
    - PacketBuffer*::DataLength
    - WeaveLogError
    - nl::Weave::Profiles::BlockSendV1::parse
    - nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
    - nl::Weave::Profiles::BlockSend::parse
    - VerifyOrExit
    - nl::Weave::Profiles::StatusReporting::StatusReport::parse
    - BDXTransfer::DispatchPutBlockHandler
    - BDXTransfer::IsDriver
    - WeaveLogDetail
    - BDXTransfer::DispatchErrorHandler
    - BDXTransfer::DispatchXferErrorHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: HandleResponseReceive(BDXTransfer &aXfer, uint32_t aProfileId, uint8_t
      aMessageType, PacketBuffer *aPacketBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1262,1
    - Dst: BDXTransfer::DispatchRejectHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1265,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1281,1
    - Dst: BDXTransfer::DispatchXferErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1282,1
    - Dst: nl::Weave::Profiles::SendAccept::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1298,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1299,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1299,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1301,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1303,1
    - Dst: BDXTransfer::DispatchSendAccept
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1309,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1310,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1310,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1318,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1332,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1350,1
    - Dst: BDXTransfer::DispatchRejectHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1353,1
    - Dst: nl::Weave::Profiles::ReceiveAccept::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1370,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1372,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1372,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1374,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1376,1
    - Dst: BDXTransfer::DispatchReceiveAccept
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1384,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1385,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1385,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1391,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1396,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1397,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1408,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1425,1
    - Dst: BDXTransfer::DispatchRejectHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1428,1
    - Dst: BDXTransfer::DispatchErrorHandler
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1436,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp:1444,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 102
    argCount: 4
    argNames:
    - aXfer
    - aProfileId
    - aMessageType
    - aPacketBuffer
    argTypes:
    - BDXTransfer
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1448
      start: 1252
    functionDepth: 2
    functionLinenumber: 1252
    functionLinenumberEnd: 1448
    functionName: nl::Weave::Profiles::BdxProtocol::HandleResponseNotAccepted
    functionSourceFile: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogError
    - BDXTransfer::DispatchRejectHandler
    - BDXTransfer::DispatchSendAccept
    - nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
    - nl::Weave::Profiles::StatusReporting::StatusReport::parse
    - VerifyOrExit
    - nl::Weave::Profiles::SendAccept::parse
    - BDXTransfer::DispatchReceiveAccept
    - nl::Weave::Profiles::ReceiveAccept::parse
    - WeaveLogDetail
    - BDXTransfer::DispatchErrorHandler
    - BDXTransfer::DispatchXferErrorHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: HandleResponseNotAccepted(BDXTransfer &aXfer, uint32_t aProfileId,
      uint8_t aMessageType, PacketBuffer *aPacketBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 398
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 398
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: DeviceControlServer
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 80
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::DeviceControlServer
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DeviceControlServer::DeviceControlServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 114
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 114
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - RegisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceControlServer::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:125,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::CloseClientOp
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:127,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::CloseRemotePassiveRendezvous
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 139
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::CloseRemotePassiveRendezvous
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::CloseClientOp
    - UnregisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceControlServer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - delegate
    argTypes:
    - DeviceControlDelegate*
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SetDelegate
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DeviceControlServer::SetDelegate(DeviceControlDelegate *delegate)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::IsRemotePassiveRendezvousInProgress
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: DeviceControlServer::IsRemotePassiveRendezvousInProgress() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendSuccessResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendStatusReport
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceControlServer::SendSuccessResponse()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:191,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:193,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::CloseClientOp
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - statusProfileId
    - statusCode
    - sysError
    argTypes:
    - uint32_t
    - uint16_t
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 200
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 200
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendStatusReport
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::WeaveServerBase::SendStatusReport
    - VerifyOrExit
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::CloseClientOp
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceControlServer::SendStatusReport(uint32_t statusProfileId, uint16_t
      statusCode, WEAVE_ERROR sysError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 209
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::CloseClientOp
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 2
    functionsReached:
    - Close
    linkageType: ''
    returnType: void
    signature: DeviceControlServer::CloseClientOp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::CloseClientOp
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SystemTestTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::CloseClientOp
    linkageType: ''
    returnType: void
    signature: DeviceControlServer::SystemTestTimeout()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:227,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:228,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:229,1
    - Dst: DeviceControlServer*::EnforceAccessControl
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:235,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:237,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:238,1
    - Dst: DeviceControlServer*::HandleLookingToRendezvousMessage
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:244,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:245,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:251,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:252,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:253,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:259,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:260,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:267,1
    - Dst: DeviceControlServer*::CloseRemotePassiveRendezvous
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:274,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:276,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:282,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:283,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:289,1
    - Dst: DeviceControlServer*::HandleResetConfig
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:291,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:292,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:296,1
    - Dst: DeviceControlServer*::HandleArmFailSafe
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:298,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:299,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:303,1
    - Dst: DeviceControlServer*::HandleDisarmFailSafe
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:305,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:306,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:310,1
    - Dst: DeviceControlServer*::HandleEnableConnectionMonitor
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:312,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:313,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:317,1
    - Dst: DeviceControlServer*::HandleDisableConnectionMonitor
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:319,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:320,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:324,1
    - Dst: DeviceControlServer*::HandleRemotePassiveRendezvous
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:326,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:327,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:331,1
    - Dst: DeviceControlServer*::HandleStartSystemTest
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:333,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:334,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:338,1
    - Dst: DeviceControlServer*::HandleStopSystemTest
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:340,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:341,1
    - Dst: DeviceControlServer*::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:345,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:346,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:352,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:356,1
    - Dst: DeviceControlServer*::CloseRemotePassiveRendezvous
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:360,1
    - Dst: DeviceControlServer*::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:366,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 91
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - msgBuf
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 368
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 368
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleClientRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - DeviceControlServer*::SendStatusReport
    - DeviceControlServer*::HandleLookingToRendezvousMessage
    - DeviceControlServer*::HandleEnableConnectionMonitor
    - WeaveLogError
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - DeviceControlServer*::HandleStartSystemTest
    - DeviceControlServer*::HandleDisarmFailSafe
    - DeviceControlServer*::HandleResetConfig
    - DeviceControlServer*::CloseRemotePassiveRendezvous
    - DeviceControlServer*::EnforceAccessControl
    - ExitNow
    - PacketBuffer*::Start
    - nl::Weave::WeaveServerBase::SendStatusReport
    - DeviceControlServer*::HandleArmFailSafe
    - PacketBuffer*::DataLength
    - DeviceControlServer*::HandleRemotePassiveRendezvous
    - DeviceControlServer*::HandleStopSystemTest
    - DeviceControlServer*::HandleDisableConnectionMonitor
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: "DeviceControlServer::HandleClientRequest(ExchangeContext *ec, const
      IPPacketInfo *pktInfo,\n    const WeaveMessageInfo *msgInfo, uint32_t profileId,
      uint8_t msgType, PacketBuffer *msgBuf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:374,1
    - Dst: DeviceControlDelegate*::OnResetConfig
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - aCon
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 379
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 379
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleResetConfigConnectionClose
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - DeviceControlDelegate*::OnResetConfig
    - WeaveConnection*::Close
    linkageType: ''
    returnType: void
    signature: DeviceControlServer::HandleResetConfigConnectionClose(WeaveConnection
      *aCon, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindContext
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:388,1
    - Dst: NewContext
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:396,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:397,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::StartMonitorTimer
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:407,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::CancelMonitorTimer
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:416,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:417,1
    - Dst: WeaveConnection*::SetIdleTimeout
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:423,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:424,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:428,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - peerNodeId
    - peerCon
    - idleTimeout
    - monitorInterval
    argTypes:
    - uint64_t
    - WeaveConnection*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 430
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 430
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SetConnectionMonitor
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - NewContext
    - ExchangeContext*::Close
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::CancelMonitorTimer
    - VerifyOrExit
    - WeaveConnection*::SetIdleTimeout
    - SuccessOrExit
    - FindContext
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::StartMonitorTimer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceControlServer::SetConnectionMonitor(uint64_t peerNodeId, WeaveConnection
      *peerCon, uint16_t idleTimeout, uint16_t monitorInterval)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: System::Layer*::StartTimer
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - monitorOp
    argTypes:
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 436
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 436
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::StartMonitorTimer
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 1
    functionsReached:
    - System::Layer*::StartTimer
    linkageType: ''
    returnType: void
    signature: DeviceControlServer::StartMonitorTimer(ExchangeContext *monitorOp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: System::Layer*::CancelTimer
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - monitorOp
    argTypes:
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 442
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 442
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::CancelMonitorTimer
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 1
    functionsReached:
    - System::Layer*::CancelTimer
    linkageType: ''
    returnType: void
    signature: DeviceControlServer::CancelMonitorTimer(ExchangeContext *monitorOp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ExchangeContext*>
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:446,1
    - Dst: reinterpret_cast<DeviceControlServer*>
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:447,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:450,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:453,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:454,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:455,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:460,1
    - Dst: DeviceControlServer*::StartMonitorTimer
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 466
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 466
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleMonitorTimer
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - WeaveLogProgress
    - DeviceControlServer*::StartMonitorTimer
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - ExchangeContext*::SendMessage
    - reinterpret_cast<DeviceControlServer*>
    - reinterpret_cast<ExchangeContext*>
    linkageType: ''
    returnType: void
    signature: DeviceControlServer::HandleMonitorTimer(System::Layer* aSystemLayer,
      void* aAppState, System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:473,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:475,1
    - Dst: DeviceControlServer*::StartMonitorTimer
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 479
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 479
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleMonitorResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - DeviceControlServer*::StartMonitorTimer
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: void
    signature: "DeviceControlServer::HandleMonitorResponse(ExchangeContext *ec, const
      IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId,\n
      \       uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:485,1
    - Dst: DeviceControlServer*::CancelMonitorTimer
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:488,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ec
    - con
    - conErr
    argTypes:
    - ExchangeContext*
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 490
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 490
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleMonitorConnectionClose
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - DeviceControlServer*::CancelMonitorTimer
    - ExchangeContext*::Close
    linkageType: ''
    returnType: void
    signature: DeviceControlServer::HandleMonitorConnectionClose(ExchangeContext *ec,
      WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:496,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:501,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:508,1
    - Dst: Abort
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:509,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:516,1
    - Dst: Abort
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:517,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::Shutdown
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:524,1
    - Dst: WillCloseRemotePassiveRendezvous
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:532,1
    - Dst: MessageLayer::ClearUnsecuredConnectionListener
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:538,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:541,1
    - Dst: MessageLayer::SystemLayer::CancelTimer
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:546,1
    - Dst: OnRemotePassiveRendezvousDone
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:552,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 553
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 553
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::CloseRemotePassiveRendezvous
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 1
    functionsReached:
    - MessageLayer::SystemLayer::CancelTimer
    - WeaveLogProgress
    - Abort
    - WillCloseRemotePassiveRendezvous
    - MessageLayer::ClearUnsecuredConnectionListener
    - OnRemotePassiveRendezvousDone
    - Close
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::Shutdown
    linkageType: ''
    returnType: void
    signature: DeviceControlServer::CloseRemotePassiveRendezvous()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:560,1
    - Dst: DeviceControlServer*::CloseRemotePassiveRendezvous
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ec
    - con
    - conErr
    argTypes:
    - ExchangeContext*
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 564
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 564
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleRemotePassiveRendezvousConnectionClosed
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - DeviceControlServer*::CloseRemotePassiveRendezvous
    linkageType: ''
    returnType: void
    signature: "DeviceControlServer::HandleRemotePassiveRendezvousConnectionClosed(ExchangeContext
      *ec, WeaveConnection *con,\n        WEAVE_ERROR conErr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:571,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:576,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:578,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:580,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:589,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:590,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:593,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:596,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:598,1
    - Dst: MessageLayer::ClearUnsecuredConnectionListener
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:603,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:606,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:610,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:615,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:617,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:619,1
    - Dst: MessageLayer::CreateTunnel
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:622,1
    - Dst: secondsToMilliseconds
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:624,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:627,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:628,1
    - Dst: MessageLayer::SystemLayer::CancelTimer
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:637,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:642,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:647,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:652,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::CloseRemotePassiveRendezvous
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:655,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - con
    argTypes:
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 659
      start: 566
    functionDepth: 3
    functionLinenumber: 566
    functionLinenumberEnd: 659
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::CompleteRemotePassiveRendezvous
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - WeaveLogError
    - MessageLayer::SystemLayer::CancelTimer
    - nl::Weave::System::PacketBuffer::Free
    - WeaveConnection*::Close
    - WeaveLogProgress
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - ExitNow
    - MessageLayer::ClearUnsecuredConnectionListener
    - MessageLayer::CreateTunnel
    - secondsToMilliseconds
    - SuccessOrExit
    - Close
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::CloseRemotePassiveRendezvous
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceControlServer::CompleteRemotePassiveRendezvous(WeaveConnection
      *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsResetAllowed
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:667,1
    - Dst: ShouldCloseConBeforeResetConfig
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:672,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:684,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:685,1
    - Dst: WeaveConnection*::Shutdown
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:687,1
    - Dst: OnResetConfig
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:689,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:690,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendSuccessResponse
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:692,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:693,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:698,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:699,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - p
    - curCon
    argTypes:
    - uint8_t*
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 710
      start: 661
    functionDepth: 3
    functionLinenumber: 661
    functionLinenumberEnd: 710
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleResetConfig
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendSuccessResponse
    - WeaveConnection*::Shutdown
    - IsResetAllowed
    - ExitNow
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendStatusReport
    - ShouldCloseConBeforeResetConfig
    - SuccessOrExit
    - OnResetConfig
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceControlServer::HandleResetConfig(uint8_t *p, WeaveConnection
      *curCon)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:724,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:725,1
    - Dst: IsResetAllowed
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:732,1
    - Dst: OnResetConfig
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:734,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:735,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:739,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:740,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:750,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendSuccessResponse
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:754,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:756,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:761,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:762,1
    - Dst: OnFailSafeArmed
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:771,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:772,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendSuccessResponse
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:775,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:776,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 780
      start: 712
    functionDepth: 3
    functionLinenumber: 712
    functionLinenumberEnd: 780
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleArmFailSafe
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendSuccessResponse
    - IsResetAllowed
    - ExitNow
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendStatusReport
    - SuccessOrExit
    - OnFailSafeArmed
    - OnResetConfig
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceControlServer::HandleArmFailSafe(uint8_t *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:788,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:789,1
    - Dst: OnFailSafeDisarmed
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:797,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:798,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendSuccessResponse
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:801,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 806
      start: 782
    functionDepth: 3
    functionLinenumber: 782
    functionLinenumberEnd: 806
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleDisarmFailSafe
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendSuccessResponse
    - OnFailSafeDisarmed
    - ExitNow
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendStatusReport
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceControlServer::HandleDisarmFailSafe()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SetConnectionMonitor
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:817,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:818,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendSuccessResponse
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:820,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - p
    - msgInfo
    - ec
    argTypes:
    - uint8_t*
    - WeaveMessageInfo*
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 825
      start: 808
    functionDepth: 2
    functionLinenumber: 808
    functionLinenumberEnd: 825
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleEnableConnectionMonitor
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendSuccessResponse
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::SetConnectionMonitor
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "DeviceControlServer::HandleEnableConnectionMonitor(uint8_t *p, const
      WeaveMessageInfo *msgInfo,\n    ExchangeContext *ec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SetConnectionMonitor
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:832,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:833,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendSuccessResponse
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:835,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - msgInfo
    - ec
    argTypes:
    - WeaveMessageInfo*
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 840
      start: 827
    functionDepth: 2
    functionLinenumber: 827
    functionLinenumberEnd: 840
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleDisableConnectionMonitor
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendSuccessResponse
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::SetConnectionMonitor
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "DeviceControlServer::HandleDisableConnectionMonitor(const WeaveMessageInfo
      *msgInfo,\n    ExchangeContext *ec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::IsRemotePassiveRendezvousInProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:848,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:850,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:851,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:852,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:858,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:859,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:860,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:874,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:875,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:876,1
    - Dst: nl::Inet::IPAddress::ReadAddress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:879,1
    - Dst: const_cast<const uint8_t *&>
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:879,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:881,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::ArmRemotePassiveRendezvousTimer
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:886,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:887,1
    - Dst: MessageLayer::SetUnsecuredConnectionListener
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:891,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:893,1
    - Dst: WillStartRemotePassiveRendezvous
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:899,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:900,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:903,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:904,1
    - Dst: OnRemotePassiveRendezvousStarted
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:908,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:913,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::CloseRemotePassiveRendezvous
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:920,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 2
    argNames:
    - p
    - ec
    argTypes:
    - uint8_t*
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 925
      start: 842
    functionDepth: 3
    functionLinenumber: 842
    functionLinenumberEnd: 925
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleRemotePassiveRendezvous
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - const_cast<const uint8_t *&>
    - nl::Inet::IPAddress::ReadAddress
    - MessageLayer::SetUnsecuredConnectionListener
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::IsRemotePassiveRendezvousInProgress
    - WeaveLogProgress
    - ExitNow
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendStatusReport
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::ArmRemotePassiveRendezvousTimer
    - SuccessOrExit
    - nl::Weave::Encoding::LittleEndian::Read16
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::CloseRemotePassiveRendezvous
    - OnRemotePassiveRendezvousStarted
    - nl::Weave::WeaveServerBase::SendStatusReport
    - WillStartRemotePassiveRendezvous
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceControlServer::HandleRemotePassiveRendezvous(uint8_t *p, ExchangeContext
      *ec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OnSystemTestStarted
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:936,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:940,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 944
      start: 927
    functionDepth: 3
    functionLinenumber: 927
    functionLinenumberEnd: 944
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleStartSystemTest
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendStatusReport
    - OnSystemTestStarted
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceControlServer::HandleStartSystemTest(uint8_t *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OnSystemTestStopped
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:952,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 960
      start: 946
    functionDepth: 3
    functionLinenumber: 946
    functionLinenumberEnd: 960
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleStopSystemTest
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - OnSystemTestStopped
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendStatusReport
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceControlServer::HandleStopSystemTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: System::Layer*::CancelTimer
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:968,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::IsRemotePassiveRendezvousInProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:972,1
    - Dst: nl::Inet::IPAddress::MakeLLA
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:978,1
    - Dst: WeaveNodeIdToIPv6InterfaceId
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:978,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:980,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlServer::CompleteRemotePassiveRendezvous
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:981,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:982,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:984,1
    - Dst: ToString
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:991,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:992,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:994,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1000,1
    - Dst: ExchangeContext*::Con::Close
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1008,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1010,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - msgInfo
    - ec
    argTypes:
    - WeaveMessageInfo*
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 1014
      start: 962
    functionDepth: 4
    functionLinenumber: 962
    functionLinenumberEnd: 1014
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleLookingToRendezvousMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - ExchangeContext*::Con::Close
    - ExchangeContext*::Close
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::IsRemotePassiveRendezvousInProgress
    - WeaveLogProgress
    - WeaveNodeIdToIPv6InterfaceId
    - ToString
    - SuccessOrExit
    - nl::Weave::Profiles::DeviceControl::DeviceControlServer::CompleteRemotePassiveRendezvous
    - nl::Inet::IPAddress::MakeLLA
    - System::Layer*::CancelTimer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceControlServer::HandleLookingToRendezvousMessage(const WeaveMessageInfo
      *msgInfo, ExchangeContext *ec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1022,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1029,1
    - Dst: DeviceControlServer*::CompleteRemotePassiveRendezvous
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1030,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1032,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1038,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1039,1
    - Dst: DeviceControlServer*::ExchangeMgr::AllowUnsolicitedMessages
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1040,1
    - Dst: System::Layer*::StartTimer
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1041,1
    - Dst: secondsToMilliseconds
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1041,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1042,1
    - Dst: DeviceControlServer*::CompleteRemotePassiveRendezvous
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1051,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1053,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1060,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - msgLayer
    - con
    argTypes:
    - WeaveMessageLayer*
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 1062
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1062
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleConnectionReceived
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - System::Layer*::StartTimer
    - WeaveConnection*::Close
    - WeaveLogProgress
    - VerifyOrExit
    - secondsToMilliseconds
    - DeviceControlServer*::ExchangeMgr::AllowUnsolicitedMessages
    - SuccessOrExit
    - DeviceControlServer*::CompleteRemotePassiveRendezvous
    linkageType: ''
    returnType: void
    signature: DeviceControlServer::HandleConnectionReceived(WeaveMessageLayer *msgLayer,
      WeaveConnection *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1083,1
    - Dst: System::Layer*::CancelTimer
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1085,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1088
      start: 1078
    functionDepth: 0
    functionLinenumber: 1078
    functionLinenumberEnd: 1088
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleLookingToRendezvousClosed
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - WeaveConnection*::Close
    - System::Layer*::CancelTimer
    linkageType: ''
    returnType: void
    signature: DeviceControlServer::HandleLookingToRendezvousClosed(WeaveConnection
      *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveConnection *>
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1092,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1097,1
    - Dst: WeaveConnection*::Abort
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1098,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 1100
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1100
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleLookingToRendezvousTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - WeaveConnection*::Abort
    - static_cast<WeaveConnection *>
    linkageType: ''
    returnType: void
    signature: DeviceControlServer::HandleLookingToRendezvousTimeout(System::Layer*
      aSystemLayer, void* aAppState, System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1118,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1119,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1121,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ec
    argTypes:
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 1130
      start: 1113
    functionDepth: 2
    functionLinenumber: 1113
    functionLinenumberEnd: 1130
    functionName: nl::Weave::Profiles::DeviceControl::SendLookingToRendezvous
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - ExchangeContext*::SendMessage
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendLookingToRendezvous(ExchangeContext *ec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1134,1
    - Dst: static_cast<DeviceControlServer *>
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1136,1
    - Dst: DeviceControlServer*::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1138,1
    - Dst: DeviceControlServer*::CloseRemotePassiveRendezvous
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - appState
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1142
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1142
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleUnsecuredConnectionCallbackRemoved
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - DeviceControlServer*::WeaveServerBase::SendStatusReport
    - static_cast<DeviceControlServer *>
    - DeviceControlServer*::CloseRemotePassiveRendezvous
    linkageType: ''
    returnType: void
    signature: DeviceControlServer::HandleUnsecuredConnectionCallbackRemoved(void
      *appState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<DeviceControlServer*>
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1146,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1147,1
    - Dst: DeviceControlServer*::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1149,1
    - Dst: DeviceControlServer*::CloseRemotePassiveRendezvous
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 1155
      start: 1144
    functionDepth: 0
    functionLinenumber: 1144
    functionLinenumberEnd: 1155
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleRemotePassiveRendezvousTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - reinterpret_cast<DeviceControlServer*>
    - DeviceControlServer*::WeaveServerBase::SendStatusReport
    - DeviceControlServer*::CloseRemotePassiveRendezvous
    linkageType: ''
    returnType: void
    signature: DeviceControlServer::HandleRemotePassiveRendezvousTimeout(System::Layer*
      aSystemLayer, void* aAppState, System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1163,1
    - Dst: static_cast<unsigned long>
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1164,1
    - Dst: System::Layer*::StartTimer
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1157
    functionDepth: 0
    functionLinenumber: 1157
    functionLinenumberEnd: 1167
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::ArmRemotePassiveRendezvousTimer
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    - System::Layer*::StartTimer
    - static_cast<unsigned long>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceControlServer::ArmRemotePassiveRendezvousTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1171,1
    - Dst: DeviceControlServer*::CloseRemotePassiveRendezvous
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tun
    argTypes:
    - WeaveConnectionTunnel*
    constantsTouched: []
    func_position:
      end: 1181
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1181
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleTunnelShutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - DeviceControlServer*::CloseRemotePassiveRendezvous
    linkageType: ''
    returnType: void
    signature: DeviceControlServer::HandleTunnelShutdown(WeaveConnectionTunnel *tun)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlDelegate::IsPairedToAccount
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1197,1
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlDelegate::IsPairedToAccount
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1205,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1251,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1257,1
    - Dst: nl::Weave::WeaveServerDelegateBase::EnforceAccessControl
      Src: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp:1264,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 5
    argNames:
    - ec
    - msgProfileId
    - msgType
    - msgInfo
    - ' result'
    argTypes:
    - ExchangeContext*
    - uint32_t
    - uint8_t
    - WeaveMessageInfo*
    - AccessControlResult
    constantsTouched: []
    func_position:
      end: 1265
      start: 1183
    functionDepth: 2
    functionLinenumber: 1183
    functionLinenumberEnd: 1265
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlDelegate::EnforceAccessControl
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveServerDelegateBase::EnforceAccessControl
    - nl::Weave::WeaveServerBase::SendStatusReport
    - nl::Weave::Profiles::DeviceControl::DeviceControlDelegate::IsPairedToAccount
    linkageType: ''
    returnType: void
    signature: "DeviceControlDelegate::EnforceAccessControl(ExchangeContext *ec, uint32_t
      msgProfileId, uint8_t msgType,\n        const WeaveMessageInfo *msgInfo, AccessControlResult&
      result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1268
    functionDepth: 0
    functionLinenumber: 1268
    functionLinenumberEnd: 1271
    functionName: nl::Weave::Profiles::DeviceControl::DeviceControlDelegate::IsPairedToAccount
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: DeviceControlDelegate::IsPairedToAccount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 185
    functionName: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeaveDeviceDescriptor
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 266
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 266
    functionName: nl::Weave::Profiles::DeviceDescription::DeviceDescriptionServer
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: DeviceDescriptionServer
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 342
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 342
    functionName: nl::Weave::Profiles::DeviceDescription::IdentifyDeviceCriteria
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: IdentifyDeviceCriteria
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 353
    functionName: nl::Weave::Profiles::DeviceDescription::IdentifyRequestMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: IdentifyRequestMessage
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 369
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 369
    functionName: nl::Weave::Profiles::DeviceDescription::IdentifyResponseMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: IdentifyResponseMessage
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: nl::Weave::Profiles::DeviceDescription::DeviceDescriptionClient::DeviceDescriptionClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DeviceDescriptionClient::DeviceDescriptionClient()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 71
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 71
    functionName: nl::Weave::Profiles::DeviceDescription::DeviceDescriptionClient::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceDescriptionClient::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: nl::Weave::Profiles::DeviceDescription::DeviceDescriptionClient::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp
    functionUses: 0
    functionsReached:
    - Close
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceDescriptionClient::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::DeviceDescription::DeviceDescriptionClient::SendIdentifyRequest
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - IdentifyRequestMessage
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: nl::Weave::Profiles::DeviceDescription::DeviceDescriptionClient::SendIdentifyRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::DeviceDescription::DeviceDescriptionClient::SendIdentifyRequest
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceDescriptionClient::SendIdentifyRequest(const IdentifyRequestMessage&
      msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp:127,1
    - Dst: NewContext
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp:132,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp:133,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp:139,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp:140,1
    - Dst: Encode
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp:141,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp:142,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp:145,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp:150,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - ' nodeAddr'
    - ' msg'
    argTypes:
    - IPAddress
    - IdentifyRequestMessage
    constantsTouched: []
    func_position:
      end: 157
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 157
    functionName: nl::Weave::Profiles::DeviceDescription::DeviceDescriptionClient::SendIdentifyRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp
    functionUses: 1
    functionsReached:
    - SendMessage
    - Encode
    - NewContext
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - SuccessOrExit
    - Close
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceDescriptionClient::SendIdentifyRequest(const IPAddress& nodeAddr,
      const IdentifyRequestMessage& msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 174
    functionName: nl::Weave::Profiles::DeviceDescription::DeviceDescriptionClient::CancelExchange
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp
    functionUses: 0
    functionsReached:
    - Close
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceDescriptionClient::CancelExchange()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp:186,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp:191,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp:195,1
    - Dst: nl::Weave::Profiles::DeviceDescription::IdentifyResponseMessage::Decode
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp:198,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp:199,1
    - Dst: DeviceDescriptionClient*::OnIdentifyResponseReceived
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp:202,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 208
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 208
    functionName: nl::Weave::Profiles::DeviceDescription::DeviceDescriptionClient::HandleResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp
    functionUses: 0
    functionsReached:
    - DeviceDescriptionClient*::OnIdentifyResponseReceived
    - nl::Weave::System::PacketBuffer::Free
    - ExitNow
    - nl::Weave::Profiles::DeviceDescription::IdentifyResponseMessage::Decode
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: DeviceDescriptionClient::HandleResponse(ExchangeContext *ec, const
      IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId,
      uint8_t msgType, PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::TextDescriptorWriter
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TextDescriptorWriter(char *buf, uint32_t bufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:100,1
    - Dst: nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::HexDigit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:106,1
    - Dst: nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::HexDigit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:108,1
    - Dst: nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::HexDigit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:110,1
    - Dst: nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::HexDigit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:111,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - fieldId
    - val
    argTypes:
    - char
    - uint16_t
    constantsTouched: []
    func_position:
      end: 117
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 117
    functionName: nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::WriteHex
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::HexDigit
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WriteHex(char fieldId, uint16_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:123,1
    - Dst: nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::HexDigit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:130,1
    - Dst: nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::HexDigit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - fieldId
    - val
    - valLen
    argTypes:
    - char
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 138
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 138
    functionName: nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::WriteHex
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::HexDigit
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WriteHex(char fieldId, const uint8_t *val, uint32_t valLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:145,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:147,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:148,1
    - Dst: strchr
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:148,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - fieldId
    - val
    argTypes:
    - char
    - char*
    constantsTouched: []
    func_position:
      end: 159
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 159
    functionName: nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::WriteString
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    - VerifyOrExit
    - strchr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WriteString(char fieldId, const char *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:168,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:174,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:175,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 4
    argNames:
    - fieldId
    - year
    - month
    - day
    argTypes:
    - char
    - uint16_t
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 194
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 194
    functionName: nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::WriteDate
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WriteDate(char fieldId, uint16_t year, uint8_t month, uint8_t day)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::WriteVersion
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WriteVersion()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 210
    functionName: nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::Finalize
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Finalize()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::GetLengthWritten
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: GetLengthWritten()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::HexDigit
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: HexDigit(uint8_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - val
    - valLen
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 244
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 244
    functionName: nl::Weave::Profiles::DeviceDescription::TextDescriptorReader::TextDescriptorReader
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: void
    signature: TextDescriptorReader(const char *val, uint32_t valLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:253,1
    - Dst: memchr
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 267
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 267
    functionName: nl::Weave::Profiles::DeviceDescription::TextDescriptorReader::Next
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 0
    functionsReached:
    - memchr
    - isspace
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Next()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 279
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 279
    functionName: nl::Weave::Profiles::DeviceDescription::TextDescriptorReader::ReadString
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReadString(char *buf, uint32_t bufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 297
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 297
    functionName: nl::Weave::Profiles::DeviceDescription::TextDescriptorReader::ReadHex
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReadHex(uint16_t& val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - bufLen
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 315
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 315
    functionName: nl::Weave::Profiles::DeviceDescription::TextDescriptorReader::ReadHex
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReadHex(uint8_t *buf, uint32_t bufLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::DeviceDescription::TextDescriptorReader::DecimalDigitPairValue
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:328,1
    - Dst: nl::Weave::Profiles::DeviceDescription::TextDescriptorReader::DecimalDigitPairValue
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:334,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - ' year'
    - ' month'
    - ' day'
    argTypes:
    - uint16_t
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 342
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 342
    functionName: nl::Weave::Profiles::DeviceDescription::TextDescriptorReader::ReadDate
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::DeviceDescription::TextDescriptorReader::DecimalDigitPairValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReadDate(uint16_t& year, uint8_t& month, uint8_t& day)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - digit
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 359
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 359
    functionName: nl::Weave::Profiles::DeviceDescription::TextDescriptorReader::HexDigitValue
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int8_t
    signature: HexDigitValue(char digit)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - digit1
    - digit2
    argTypes:
    - char
    - char
    constantsTouched: []
    func_position:
      end: 366
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 366
    functionName: nl::Weave::Profiles::DeviceDescription::TextDescriptorReader::DecimalDigitPairValue
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int8_t
    signature: DecimalDigitPairValue(char digit1, char digit2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::WeaveDeviceDescriptor
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: WeaveDeviceDescriptor::WeaveDeviceDescriptor()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 381
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 381
    functionName: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: WeaveDeviceDescriptor::Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TextDescriptorWriter::WriteVersion
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:402,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:403,1
    - Dst: TextDescriptorWriter::WriteHex
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:407,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:408,1
    - Dst: TextDescriptorWriter::WriteHex
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:413,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:414,1
    - Dst: TextDescriptorWriter::WriteHex
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:419,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:420,1
    - Dst: TextDescriptorWriter::WriteDate
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:425,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:426,1
    - Dst: TextDescriptorWriter::WriteString
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:431,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:432,1
    - Dst: TextDescriptorWriter::WriteHex
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:438,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:439,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::IsZeroBytes
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:442,1
    - Dst: TextDescriptorWriter::WriteHex
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:444,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:445,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::IsZeroBytes
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:448,1
    - Dst: TextDescriptorWriter::WriteHex
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:450,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:451,1
    - Dst: TextDescriptorWriter::WriteString
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:460,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:461,1
    - Dst: TextDescriptorWriter::WriteString
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:466,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:467,1
    - Dst: TextDescriptorWriter::WriteHex
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:472,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:473,1
    - Dst: TextDescriptorWriter::WriteHex
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:478,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:479,1
    - Dst: TextDescriptorWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:482,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:483,1
    - Dst: TextDescriptorWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:485,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 4
    argNames:
    - ' desc'
    - buf
    - bufLen
    - ' outEncodedLen'
    argTypes:
    - WeaveDeviceDescriptor
    - char*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 489
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 489
    functionName: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeText
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::IsZeroBytes
    - TextDescriptorWriter::WriteVersion
    - TextDescriptorWriter::GetLengthWritten
    - TextDescriptorWriter::WriteString
    - TextDescriptorWriter::Finalize
    - TextDescriptorWriter::WriteHex
    - SuccessOrExit
    - TextDescriptorWriter::WriteDate
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceDescriptor::EncodeText(const WeaveDeviceDescriptor& desc,
      char *buf, uint32_t bufLen, uint32_t& outEncodedLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:509,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeTLV
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:511,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:512,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:514,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:515,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - ' desc'
    - buf
    - bufLen
    - ' outEncodedLen'
    argTypes:
    - WeaveDeviceDescriptor
    - uint8_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 521
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 521
    functionName: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeTLV
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 1
    functionsReached:
    - TLVWriter::Finalize
    - TLVWriter::GetLengthWritten
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeTLV
    - SuccessOrExit
    - TLVWriter::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceDescriptor::EncodeTLV(const WeaveDeviceDescriptor& desc,
      uint8_t *buf, uint32_t bufLen, uint32_t& outEncodedLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:540,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:540,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:541,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:545,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:545,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:546,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:551,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:551,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:552,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:557,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:557,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:558,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeManufacturingDate
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:564,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:565,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:566,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:566,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:567,1
    - Dst: PutString
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:572,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:572,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:573,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::IsZeroBytes
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:576,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:578,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:578,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:579,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::IsZeroBytes
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:582,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:584,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:584,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:585,1
    - Dst: PutString
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:594,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:595,1
    - Dst: PutString
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:600,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:600,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:601,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:606,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:606,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:607,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:612,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:612,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:613,1
    - Dst: PutString
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:618,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:618,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:619,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:624,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:624,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:625,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:630,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:630,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:631,1
    - Dst: PutBoolean
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:636,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:636,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:637,1
    - Dst: PutBoolean
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:642,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:642,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:643,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:646,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:647,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 74
    argCount: 2
    argNames:
    - ' desc'
    - ' writer'
    argTypes:
    - WeaveDeviceDescriptor
    - nl::Weave::TLV::TLVWriter
    constantsTouched: []
    func_position:
      end: 651
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 651
    functionName: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeTLV
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeManufacturingDate
    - PutString
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::IsZeroBytes
    - StartContainer
    - ContextTag
    - PutBytes
    - ProfileTag
    - EndContainer
    - Put
    - SuccessOrExit
    - PutBoolean
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceDescriptor::EncodeTLV(const WeaveDeviceDescriptor& desc,
      nl::Weave::TLV::TLVWriter& writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeTLV
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:680,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeText
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:683,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 6
    argCount: 3
    argNames:
    - data
    - dataLen
    - ' outDesc'
    argTypes:
    - uint8_t*
    - uint32_t
    - WeaveDeviceDescriptor
    constantsTouched: []
    func_position:
      end: 684
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 684
    functionName: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::Decode
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeTLV
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeText
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceDescriptor::Decode(const uint8_t *data, uint32_t dataLen,
      WeaveDeviceDescriptor& outDesc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::Clear
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:711,1
    - Dst: TextDescriptorReader::Next
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:716,1
    - Dst: TextDescriptorReader::ReadHex
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:721,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:722,1
    - Dst: TextDescriptorReader::ReadHex
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:726,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:727,1
    - Dst: TextDescriptorReader::ReadHex
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:730,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:731,1
    - Dst: TextDescriptorReader::ReadDate
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:734,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:735,1
    - Dst: TextDescriptorReader::ReadString
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:739,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:740,1
    - Dst: TextDescriptorReader::ReadHex
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:746,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:747,1
    - Dst: nl::Weave::Encoding::BigEndian::HostSwap64
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:748,1
    - Dst: TextDescriptorReader::ReadHex
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:752,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:753,1
    - Dst: TextDescriptorReader::ReadHex
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:756,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:757,1
    - Dst: TextDescriptorReader::ReadString
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:765,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:766,1
    - Dst: TextDescriptorReader::ReadString
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:769,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:770,1
    - Dst: TextDescriptorReader::ReadHex
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:773,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:774,1
    - Dst: TextDescriptorReader::ReadHex
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:777,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:778,1
    - Dst: ExtractManufacturingDateFromSerialNumber
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:801,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 79
    argCount: 3
    argNames:
    - data
    - dataLen
    - ' outDesc'
    argTypes:
    - char*
    - uint32_t
    - WeaveDeviceDescriptor
    constantsTouched: []
    func_position:
      end: 806
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 806
    functionName: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeText
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 1
    functionsReached:
    - TextDescriptorReader::ReadDate
    - ExtractManufacturingDateFromSerialNumber
    - TextDescriptorReader::ReadString
    - TextDescriptorReader::ReadHex
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::Clear
    - SuccessOrExit
    - TextDescriptorReader::Next
    - nl::Weave::Encoding::BigEndian::HostSwap64
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceDescriptor::DecodeText(const char *data, uint32_t dataLen,
      WeaveDeviceDescriptor& outDesc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::Clear
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:828,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:830,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:835,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:836,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:838,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:838,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:838,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeTLV
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:840,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:841,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:843,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - data
    - dataLen
    - ' outDesc'
    argTypes:
    - uint8_t*
    - uint32_t
    - WeaveDeviceDescriptor
    constantsTouched: []
    func_position:
      end: 849
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 849
    functionName: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeTLV
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 2
    functionsReached:
    - TLVReader::Init
    - TLVReader::Next
    - VerifyOrExit
    - ProfileTag
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeTLV
    - TLVReader::GetTag
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::Clear
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceDescriptor::DecodeTLV(const uint8_t *data, uint32_t dataLen,
      WeaveDeviceDescriptor& outDesc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::Clear
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:868,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:870,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:871,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:873,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:876,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:878,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:879,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:880,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:882,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:884,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:885,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:886,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:888,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:890,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:891,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:892,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:894,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:897,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:898,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeManufacturingDate
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:899,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:900,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:902,1
    - Dst: GetString
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:904,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:905,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:906,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:908,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:910,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:910,1
    - Dst: GetBytes
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:911,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:912,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:914,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:916,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:916,1
    - Dst: GetBytes
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:917,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:918,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:920,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:920,1
    - Dst: GetString
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:922,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:923,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:924,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:925,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:934,1
    - Dst: GetString
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:936,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:937,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:938,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:940,1
    - Dst: GetDataPtr
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:944,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:945,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:948,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:951,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:953,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:954,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:956,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:958,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:959,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:961,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:963,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:964,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:965,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:967,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:969,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:970,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:971,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:975,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:977,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:984,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:985,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:993,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:995,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:996,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 101
    argCount: 2
    argNames:
    - ' reader'
    - ' outDesc'
    argTypes:
    - nl::Weave::TLV::TLVReader
    - WeaveDeviceDescriptor
    constantsTouched: []
    func_position:
      end: 1000
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 1000
    functionName: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeTLV
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 2
    functionsReached:
    - EnterContainer
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeManufacturingDate
    - GetLength
    - GetString
    - GetDataPtr
    - ContextTag
    - VerifyOrExit
    - GetBytes
    - ExitContainer
    - memcpy
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::Clear
    - SuccessOrExit
    - Get
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceDescriptor::DecodeTLV(nl::Weave::TLV::TLVReader& reader,
      WeaveDeviceDescriptor& outDesc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 4
    argNames:
    - year
    - month
    - day
    - ' outEncodedDate'
    argTypes:
    - uint16_t
    - uint8_t
    - uint8_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1010
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1010
    functionName: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeManufacturingDate
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceDescriptor::EncodeManufacturingDate(uint16_t year, uint8_t
      month, uint8_t day, uint16_t& outEncodedDate)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - encodedDate
    - ' outYear'
    - ' outMonth'
    - ' outDay'
    argTypes:
    - uint16_t
    - uint16_t
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1020
      start: 1012
    functionDepth: 0
    functionLinenumber: 1012
    functionLinenumberEnd: 1020
    functionName: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeManufacturingDate
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveDeviceDescriptor::DecodeManufacturingDate(uint16_t encodedDate,
      uint16_t& outYear, uint8_t& outMonth, uint8_t& outDay)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1037
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1037
    functionName: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::IsZeroBytes
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveDeviceDescriptor::IsZeroBytes(const uint8_t *buf, uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:1051,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:1052,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:1053,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:1054,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:1055,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:1056,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:1056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1059
      start: 1047
    functionDepth: 2
    functionLinenumber: 1047
    functionLinenumberEnd: 1059
    functionName: nl::Weave::Profiles::DeviceDescription::IdentifyRequestMessage::Encode
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Encoding::LittleEndian::Write64
    - PacketBuffer*::Start
    - nl::Weave::Encoding::LittleEndian::Write16
    - nl::Weave::Encoding::LittleEndian::Write32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: IdentifyRequestMessage::Encode(PacketBuffer *msgBuf) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:1078,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:1078,1
    - Dst: IdentifyRequestMessage
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:1080,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:1081,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read64
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:1082,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:1083,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:1084,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:1085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - msgBuf
    - msgDestNodeId
    - ' msg'
    argTypes:
    - PacketBuffer*
    - uint64_t
    - IdentifyRequestMessage
    constantsTouched: []
    func_position:
      end: 1090
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1090
    functionName: nl::Weave::Profiles::DeviceDescription::IdentifyRequestMessage::Decode
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - nl::Weave::Encoding::LittleEndian::Read32
    - VerifyOrExit
    - IdentifyRequestMessage
    - PacketBuffer*::Start
    - nl::Weave::Encoding::LittleEndian::Read64
    - nl::Weave::Encoding::LittleEndian::Read16
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: IdentifyRequestMessage::Decode(PacketBuffer *msgBuf, uint64_t msgDestNodeId,
      IdentifyRequestMessage& msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeTLV
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:1107,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:1107,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:1107,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:1109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1112
      start: 1102
    functionDepth: 2
    functionLinenumber: 1102
    functionLinenumberEnd: 1112
    functionName: nl::Weave::Profiles::DeviceDescription::IdentifyResponseMessage::Encode
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::AvailableDataLength
    - PacketBuffer*::SetDataLength
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeTLV
    - PacketBuffer*::Start
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: IdentifyResponseMessage::Encode(PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeTLV
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:1131,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:1131,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:1131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msgBuf
    - ' msg'
    argTypes:
    - PacketBuffer*
    - IdentifyResponseMessage
    constantsTouched: []
    func_position:
      end: 1132
      start: 1129
    functionDepth: 2
    functionLinenumber: 1129
    functionLinenumberEnd: 1132
    functionName: nl::Weave::Profiles::DeviceDescription::IdentifyResponseMessage::Decode
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 5
    functionsReached:
    - PacketBuffer*::DataLength
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeTLV
    - PacketBuffer*::Start
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: IdentifyResponseMessage::Decode(PacketBuffer *msgBuf, IdentifyResponseMessage&
      msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::DeviceDescription::IdentifyDeviceCriteria::Reset
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp:1136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1134
    functionDepth: 1
    functionLinenumber: 1134
    functionLinenumberEnd: 1137
    functionName: nl::Weave::Profiles::DeviceDescription::IdentifyDeviceCriteria::IdentifyDeviceCriteria
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::DeviceDescription::IdentifyDeviceCriteria::Reset
    linkageType: ''
    returnType: void
    signature: IdentifyDeviceCriteria::IdentifyDeviceCriteria()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1143
    functionDepth: 0
    functionLinenumber: 1143
    functionLinenumberEnd: 1150
    functionName: nl::Weave::Profiles::DeviceDescription::IdentifyDeviceCriteria::Reset
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: IdentifyDeviceCriteria::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - fabricId
    - targetFabricId
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1173
      start: 1161
    functionDepth: 0
    functionLinenumber: 1161
    functionLinenumberEnd: 1173
    functionName: nl::Weave::Profiles::DeviceDescription::MatchTargetFabricId
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NL_DLL_EXPORT
    signature: MatchTargetFabricId(uint64_t fabricId, uint64_t targetFabricId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: nl::Weave::Profiles::DeviceDescription::DeviceDescriptionServer::DeviceDescriptionServer
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DeviceDescriptionServer::DeviceDescriptionServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionServer.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 71
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 71
    functionName: nl::Weave::Profiles::DeviceDescription::DeviceDescriptionServer::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionServer.cpp
    functionUses: 0
    functionsReached:
    - RegisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceDescriptionServer::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionServer.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: nl::Weave::Profiles::DeviceDescription::DeviceDescriptionServer::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionServer.cpp
    functionUses: 0
    functionsReached:
    - UnregisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeviceDescriptionServer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionServer.cpp:106,1
    - Dst: nl::Weave::Profiles::DeviceDescription::IdentifyRequestMessage::Decode
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionServer.cpp:109,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionServer.cpp:110,1
    - Dst: DeviceDescriptionServer*::OnIdentifyRequestReceived
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionServer.cpp:113,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionServer.cpp:118,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionServer.cpp:121,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionServer.cpp:122,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionServer.cpp:123,1
    - Dst: IdentifyResponseMessage::Encode
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionServer.cpp:126,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionServer.cpp:127,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionServer.cpp:130,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionServer.cpp:136,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionServer.cpp:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 141
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 141
    functionName: nl::Weave::Profiles::DeviceDescription::DeviceDescriptionServer::HandleRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - ExchangeContext*::Close
    - DeviceDescriptionServer*::OnIdentifyRequestReceived
    - VerifyOrExit
    - ExitNow
    - ExchangeContext*::SendMessage
    - nl::Weave::Profiles::DeviceDescription::IdentifyRequestMessage::Decode
    - IdentifyResponseMessage::Encode
    - SuccessOrExit
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: "DeviceDescriptionServer::HandleRequest(ExchangeContext *ec, const
      IPPacketInfo *pktInfo,\n        const WeaveMessageInfo *msgInfo, uint32_t profileId,
      uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 236
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 236
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeaveEchoClient
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 258
    functionName: nl::Weave::Profiles::Echo_Next::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.h:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 279
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 279
    functionName: nl::Weave::Profiles::Echo_Next::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 291
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::WeaveEchoClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::WeaveEchoClient(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::GetState
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WeaveEchoClient::State
    signature: WeaveEchoClient::GetState(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::RequestInProgress
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveEchoClient::RequestInProgress() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::GetFlag
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::IsSendRrepeating
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::GetFlag
    linkageType: ''
    returnType: bool
    signature: WeaveEchoClient::IsSendRrepeating() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::GetBinding
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Binding
    signature: '*WeaveEchoClient::GetBinding(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::GetEventCallback
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WeaveEchoClient::EventCallback
    signature: WeaveEchoClient::GetEventCallback(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eventCallback
    argTypes:
    - WeaveEchoClient::EventCallback
    constantsTouched: []
    func_position:
      end: 321
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 321
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::SetEventCallback
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::SetEventCallback(WeaveEchoClient::EventCallback eventCallback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::GetFlag
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.h:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::GetFlag
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.h
    functionUses: 1
    functionsReached:
    - nl::GetFlag
    linkageType: ''
    returnType: bool
    signature: WeaveEchoClient::GetFlag(uint8_t flag) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::SetFlag
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.h:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 331
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 331
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::SetFlag
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.h
    functionUses: 0
    functionsReached:
    - nl::SetFlag
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::SetFlag(uint8_t flag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::SetFlag
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.h:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - flag
    - value
    argTypes:
    - uint8_t
    - bool
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 336
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::SetFlag
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.h
    functionUses: 0
    functionsReached:
    - nl::SetFlag
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::SetFlag(uint8_t flag, const bool value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::ClearFlag
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.h:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::ClearFlag
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.h
    functionUses: 0
    functionsReached:
    - nl::ClearFlag
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::ClearFlag(uint8_t flag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 124
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoServer
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeaveEchoServer
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: nl::Weave::Profiles::Echo_Next::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: nl::Weave::Profiles::Echo_Next::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoServer::GetEventCallback
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WeaveEchoServer::EventCallback
    signature: WeaveEchoServer::GetEventCallback(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eventCallback
    argTypes:
    - WeaveEchoServer::EventCallback
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoServer::SetEventCallback
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveEchoServer::SetEventCallback(WeaveEchoServer::EventCallback eventCallback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:52,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:53,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:74,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:76,1
    - Dst: eventCallback
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:77,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:78,1
    - Dst: Binding*::AddRef
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 3
    argNames:
    - binding
    - eventCallback
    - appState
    argTypes:
    - Binding*
    - EventCallback
    - void*
    constantsTouched: []
    func_position:
      end: 89
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 89
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached:
    - eventCallback
    - OutEventParam::Clear
    - VerifyOrExit
    - InEventParam::Clear
    - Binding*::AddRef
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveEchoClient::Init(Binding * binding, EventCallback eventCallback,
      void * appState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::Stop
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:99,1
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 110
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached:
    - Release
    - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::Stop
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::Shutdown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::Send
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::Send
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::Send
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveEchoClient::Send(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:167,1
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::DoSend
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - payloadBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 172
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 172
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::Send
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::DoSend
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveEchoClient::Send(PacketBuffer * payloadBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::SetFlag
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:202,1
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::DoSend
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sendIntervalMS
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 209
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 209
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::SendRepeating
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::DoSend
    - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::SetFlag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveEchoClient::SendRepeating(uint32_t sendIntervalMS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::ClearRequestState
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:217,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:220,1
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::CancelSendTimer
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:224,1
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::ClearFlag
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 231
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 231
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::Stop
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::CancelSendTimer
    - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::ClearFlag
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::ClearRequestState
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::Stop(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - appState
    - eventType
    - ' inParam'
    - ' outParam'
    argTypes:
    - void*
    - EventType
    - InEventParam
    - OutEventParam
    constantsTouched: []
    func_position:
      end: 257
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 257
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::DefaultEventHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::DefaultEventHandler(void * appState, EventType eventType,
      const InEventParam & inParam, OutEventParam & outParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetProtocolLayerCallback
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:274,1
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::ClearRequestState
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:282,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:294,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:296,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:297,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:304,1
    - Dst: IsReady
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:310,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:323,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:325,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:326,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:328,1
    - Dst: NewExchangeContext
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:333,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:334,1
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::SetFlag
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:346,1
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::IsMultiResponseAddress
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:346,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:352,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:354,1
    - Dst: CanBePrepared
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:371,1
    - Dst: RequestPrepare
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:373,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:374,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:380,1
    - Dst: IsPreparing
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:380,1
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::GetFlag
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:390,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:394,1
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::ArmSendTimer
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:397,1
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::DeliverCommunicationError
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:410,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:420,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:422,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:423,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 72
    argCount: 1
    argNames:
    - callbackOnError
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 427
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 427
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::DoSend
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::ClearRequestState
    - SetProtocolLayerCallback
    - RequestPrepare
    - SendMessage
    - mEventCallback
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::IsMultiResponseAddress
    - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::GetFlag
    - IsReady
    - InEventParam::Clear
    - ExitNow
    - CanBePrepared
    - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::ArmSendTimer
    - IsPreparing
    - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::SetFlag
    - OutEventParam::Clear
    - SuccessOrExit
    - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::DeliverCommunicationError
    - NewExchangeContext
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveEchoClient::DoSend(bool callbackOnError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::GetFlag
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:445,1
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::GetFlag
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:445,1
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::GetFlag
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:445,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 446
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 446
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::IsRequestDone
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::GetFlag
    linkageType: ''
    returnType: bool
    signature: WeaveEchoClient::IsRequestDone() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::ClearRequestState
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:454,1
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::GetFlag
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 458
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 458
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::HandleRequestDone
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::GetFlag
    - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::ClearRequestState
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::HandleRequestDone()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Abort
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:468,1
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::ClearFlag
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 474
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 474
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::ClearRequestState
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::ClearFlag
    - Abort
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::ClearRequestState()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::CancelSendTimer
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:484,1
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::GetFlag
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:489,1
    - Dst: GetExchangeManager
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:491,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 495
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 495
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::ArmSendTimer
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::CancelSendTimer
    - GetExchangeManager
    - SystemLayer::StartTimer
    - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::GetFlag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveEchoClient::ArmSendTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetExchangeManager
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:502,1
    - Dst: SystemLayer::CancelTimer
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 503
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 503
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::CancelSendTimer
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
    functionUses: 2
    functionsReached:
    - GetExchangeManager
    - SystemLayer::CancelTimer
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::CancelSendTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:513,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:517,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - err
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 520
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 520
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::DeliverCommunicationError
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
    functionUses: 1
    functionsReached:
    - OutEventParam::Clear
    - mEventCallback
    - InEventParam::Clear
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::DeliverCommunicationError(WEAVE_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveEchoClient*::DoSend
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:538,1
    - Dst: WeaveEchoClient*::HandleRequestDone
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:550,1
    - Dst: WeaveEchoClient*::GetFlag
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:556,1
    - Dst: WeaveEchoClient*::ArmSendTimer
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:558,1
    - Dst: WeaveEchoClient*::DeliverCommunicationError
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:562,1
    - Dst: nl::Weave::Binding::DefaultEventHandler
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:569,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - appState
    - eventType
    - ' inParam'
    - ' outParam'
    argTypes:
    - void*
    - Binding::EventType
    - Binding::InEventParam
    - Binding::OutEventParam
    constantsTouched: []
    func_position:
      end: 571
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 571
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::HandleBindingEvent
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached:
    - WeaveEchoClient*::GetFlag
    - WeaveEchoClient*::DoSend
    - WeaveEchoClient*::HandleRequestDone
    - WeaveEchoClient*::ArmSendTimer
    - nl::Weave::Binding::DefaultEventHandler
    - WeaveEchoClient*::DeliverCommunicationError
    linkageType: ''
    returnType: void
    signature: "WeaveEchoClient::HandleBindingEvent(void * const appState, const Binding::EventType
      eventType, const Binding::InEventParam & inParam,\n                                         Binding::OutEventParam
      & outParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:580,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:581,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:586,1
    - Dst: WeaveEchoClient*::SetFlag
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:591,1
    - Dst: WeaveEchoClient*::IsRequestDone
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:595,1
    - Dst: WeaveEchoClient*::HandleRequestDone
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:597,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:607,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:611,1
    - Dst: WeaveEchoClient*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:612,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 614
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 614
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::HandleResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached:
    - WeaveEchoClient*::SetFlag
    - nl::Weave::System::PacketBuffer::Free
    - WeaveEchoClient*::IsRequestDone
    - OutEventParam::Clear
    - InEventParam::Clear
    - WeaveEchoClient*::HandleRequestDone
    - WeaveEchoClient*::mEventCallback
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::HandleResponse(ExchangeContext * ec, const IPPacketInfo
      * pktInfo, const WeaveMessageInfo * msgInfo, uint32_t profileId, uint8_t msgType,
      PacketBuffer * payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:623,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:624,1
    - Dst: WeaveEchoClient*::HandleRequestDone
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:627,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:633,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:635,1
    - Dst: WeaveEchoClient*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ec
    argTypes:
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 638
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 638
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::HandleResponseTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached:
    - OutEventParam::Clear
    - InEventParam::Clear
    - WeaveEchoClient*::HandleRequestDone
    - WeaveEchoClient*::mEventCallback
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::HandleResponseTimeout(ExchangeContext * ec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:649,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:650,1
    - Dst: WeaveEchoClient*::SetFlag
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:653,1
    - Dst: WeaveEchoClient*::IsRequestDone
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:657,1
    - Dst: WeaveEchoClient*::HandleRequestDone
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ec
    - msgCtxt
    argTypes:
    - ExchangeContext*
    - void*
    constantsTouched: []
    func_position:
      end: 661
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 661
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::HandleAckRcvd
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached:
    - WeaveEchoClient*::IsRequestDone
    - WeaveEchoClient*::SetFlag
    - VerifyOrDie
    - WeaveEchoClient*::HandleRequestDone
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::HandleAckRcvd(ExchangeContext * ec, void * msgCtxt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:672,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:673,1
    - Dst: WeaveEchoClient*::HandleRequestDone
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:677,1
    - Dst: WeaveEchoClient*::DeliverCommunicationError
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ec
    - sendErr
    - msgCtxt
    argTypes:
    - ExchangeContext*
    - WEAVE_ERROR
    - void*
    constantsTouched: []
    func_position:
      end: 681
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 681
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::HandleSendError
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrDie
    - WeaveEchoClient*::DeliverCommunicationError
    - WeaveEchoClient*::HandleRequestDone
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::HandleSendError(ExchangeContext * ec, WEAVE_ERROR
      sendErr, void * msgCtxt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::HandleSendError
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ec
    - keyErr
    argTypes:
    - ExchangeContext*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 690
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 690
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::HandleKeyError
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::HandleSendError
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::HandleKeyError(ExchangeContext * ec, WEAVE_ERROR keyErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::HandleSendError
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ec
    - con
    - conErr
    argTypes:
    - ExchangeContext*
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 706
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 706
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::HandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::HandleSendError
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::HandleConnectionClosed(ExchangeContext *ec, WeaveConnection
      *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:715,1
    - Dst: WeaveEchoClient*::DoSend
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - systemLayer
    - appState
    - err
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 722
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 722
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::HandleSendTimerExpired
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached:
    - WeaveEchoClient*::DoSend
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::HandleSendTimerExpired(System::Layer * systemLayer,
      void * appState, System::Error err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsMulticast
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:730,1
    - Dst: IsIPv4Broadcast
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:730,1
    - Dst: IsMulticast
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp:732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - IPAddress
    constantsTouched: []
    func_position:
      end: 734
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 734
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoClient::IsMultiResponseAddress
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
    functionUses: 1
    functionsReached:
    - IsMulticast
    - IsIPv4Broadcast
    linkageType: ''
    returnType: bool
    signature: WeaveEchoClient::IsMultiResponseAddress(const IPAddress & addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoServer::WeaveEchoServer
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveEchoServer::WeaveEchoServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:64,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:76,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:78,1
    - Dst: eventCallback
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:79,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:80,1
    - Dst: WeaveExchangeManager*::RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:85,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 3
    argNames:
    - exchangeMgr
    - eventCallback
    - appState
    argTypes:
    - WeaveExchangeManager*
    - EventCallback
    - void*
    constantsTouched: []
    func_position:
      end: 97
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 97
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoServer::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp
    functionUses: 0
    functionsReached:
    - eventCallback
    - WeaveExchangeManager*::RegisterUnsolicitedMessageHandler
    - OutEventParam::Clear
    - VerifyOrExit
    - InEventParam::Clear
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveEchoServer::Init(WeaveExchangeManager * exchangeMgr, EventCallback
      eventCallback, void * appState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 115
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoServer::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp
    functionUses: 0
    functionsReached:
    - UnregisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveEchoServer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - appState
    - eventType
    - ' inParam'
    - ' outParam'
    argTypes:
    - void*
    - EventType
    - InEventParam
    - OutEventParam
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoServer::DefaultEventHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveEchoServer::DefaultEventHandler(void * appState, EventType eventType,
      const InEventParam & inParam, OutEventParam & outParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoServer::Init
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoServer::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Echo_Next::WeaveEchoServer::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveEchoServer::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:169,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:170,1
    - Dst: WeaveEchoServer*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:180,1
    - Dst: WeaveEchoServer*::OnEchoRequestReceived
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:186,1
    - Dst: ExchangeContext*::Abort
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:193,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:194,1
    - Dst: PacketBuffer*::EnsureReservedSize
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:203,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:204,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:204,1
    - Dst: nl::Weave::Profiles::Echo_Next::WeaveEchoServer::SendEchoResponse
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:210,1
    - Dst: System::Layer*::StartTimer
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 217
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 217
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoServer::HandleEchoRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp
    functionUses: 0
    functionsReached:
    - WeaveEchoServer*::mEventCallback
    - System::Layer*::StartTimer
    - nl::Weave::System::PacketBuffer::Free
    - OutEventParam::Clear
    - InEventParam::Clear
    - WeaveEchoServer*::OnEchoRequestReceived
    - memcpy
    - PacketBuffer*::Start
    - PacketBuffer*::EnsureReservedSize
    - nl::Weave::Profiles::Echo_Next::WeaveEchoServer::SendEchoResponse
    - ExchangeContext*::Abort
    linkageType: ''
    returnType: void
    signature: "WeaveEchoServer::HandleEchoRequest(ExchangeContext * ec, const IPPacketInfo
      * pktInfo,\n        const WeaveMessageInfo * msgInfo, uint32_t profileId, uint8_t
      msgType, PacketBuffer * payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:231,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:232,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:235,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:235,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:241,1
    - Dst: PacketBuffer*::EnsureReservedSize
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:247,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:250,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:254,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:261,1
    - Dst: Abort
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:265,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - systemLayer
    - appState
    argTypes:
    - System::Layer*
    - void*
    constantsTouched: []
    func_position:
      end: 270
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 270
    functionName: nl::Weave::Profiles::Echo_Next::WeaveEchoServer::SendEchoResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp
    functionUses: 1
    functionsReached:
    - SendMessage
    - Close
    - mEventCallback
    - nl::Weave::System::PacketBuffer::Free
    - OutEventParam::Clear
    - Abort
    - VerifyOrExit
    - InEventParam::Clear
    - memcpy
    - PacketBuffer*::Start
    - PacketBuffer*::EnsureReservedSize
    linkageType: ''
    returnType: void
    signature: WeaveEchoServer::SendEchoResponse(System::Layer * systemLayer, void
      * appState, System::Error /* ignored */)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 51
    functionName: nl::Weave::Profiles::WeaveEchoClient::WeaveEchoClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::WeaveEchoClient()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: nl::Weave::Profiles::WeaveEchoClient::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveEchoClient::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Abort
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 81
    functionName: nl::Weave::Profiles::WeaveEchoClient::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached:
    - Abort
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveEchoClient::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Abort
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:98,1
    - Dst: NewContext
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:103,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:106,1
    - Dst: nl::Weave::Profiles::WeaveEchoClient::SendEchoRequest
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - con
    - payload
    argTypes:
    - WeaveConnection*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 113
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 113
    functionName: nl::Weave::Profiles::WeaveEchoClient::SendEchoRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - Abort
    - nl::Weave::Profiles::WeaveEchoClient::SendEchoRequest
    - NewContext
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveEchoClient::SendEchoRequest(WeaveConnection *con, PacketBuffer
      *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::WeaveEchoClient::SendEchoRequest
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nodeId
    - nodeAddr
    - payload
    argTypes:
    - uint64_t
    - IPAddress
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: nl::Weave::Profiles::WeaveEchoClient::SendEchoRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::WeaveEchoClient::SendEchoRequest
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveEchoClient::SendEchoRequest(uint64_t nodeId, IPAddress nodeAddr,
      PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Abort
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:149,1
    - Dst: SelectNodeAddress
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:153,1
    - Dst: NewContext
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:156,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:159,1
    - Dst: nl::Weave::Profiles::WeaveEchoClient::SendEchoRequest
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - nodeId
    - nodeAddr
    - port
    - sendIntfId
    - payload
    argTypes:
    - uint64_t
    - IPAddress
    - uint16_t
    - InterfaceId
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 164
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 164
    functionName: nl::Weave::Profiles::WeaveEchoClient::SendEchoRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::Profiles::WeaveEchoClient::SendEchoRequest
    - NewContext
    - nl::Weave::System::PacketBuffer::Free
    - Abort
    - SelectNodeAddress
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveEchoClient::SendEchoRequest(uint64_t nodeId, IPAddress nodeAddr,
      uint16_t port, InterfaceId sendIntfId, PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:192,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:195,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:197,1
    - Dst: Abort
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - payload
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 207
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 207
    functionName: nl::Weave::Profiles::WeaveEchoClient::SendEchoRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp
    functionUses: 3
    functionsReached:
    - SendMessage
    - Abort
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveEchoClient::SendEchoRequest(PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:217,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:223,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:225,1
    - Dst: WeaveEchoClient*::ExchangeCtx::Abort
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:238,1
    - Dst: WeaveEchoClient*::OnEchoResponseReceived
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:244,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:248,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 249
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 249
    functionName: nl::Weave::Profiles::WeaveEchoClient::HandleResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached:
    - WeaveEchoClient*::OnEchoResponseReceived
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    - ExitNow
    - WeaveEchoClient*::ExchangeCtx::Abort
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::HandleResponse(ExchangeContext *ec, const IPPacketInfo
      *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType,
      PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::WeaveEchoClient::HandleError
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ec
    - con
    - conErr
    argTypes:
    - ExchangeContext*
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: nl::Weave::Profiles::WeaveEchoClient::HandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::WeaveEchoClient::HandleError
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::HandleConnectionClosed(ExchangeContext *ec, WeaveConnection
      *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::WeaveEchoClient::HandleError
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ec
    - sendErr
    - msgCtxt
    argTypes:
    - ExchangeContext*
    - WEAVE_ERROR
    - void*
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: nl::Weave::Profiles::WeaveEchoClient::HandleSendError
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::WeaveEchoClient::HandleError
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::HandleSendError(ExchangeContext *ec, WEAVE_ERROR sendErr,
      void *msgCtxt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::WeaveEchoClient::HandleError
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ec
    - keyErr
    argTypes:
    - ExchangeContext*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 264
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 264
    functionName: nl::Weave::Profiles::WeaveEchoClient::HandleKeyError
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::WeaveEchoClient::HandleError
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::HandleKeyError(ExchangeContext *ec, WEAVE_ERROR keyErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:270,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:272,1
    - Dst: WeaveEchoClient*::ExchangeCtx::Abort
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:276,1
    - Dst: WeaveEchoClient*::ExchangeCtx::Close
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ec
    - err
    argTypes:
    - ExchangeContext*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 284
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 284
    functionName: nl::Weave::Profiles::WeaveEchoClient::HandleError
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp
    functionUses: 3
    functionsReached:
    - VerifyOrDie
    - WeaveEchoClient*::ExchangeCtx::Close
    - WeaveEchoClient*::ExchangeCtx::Abort
    - VerifyOrExit
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::HandleError(ExchangeContext *ec, WEAVE_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:295,1
    - Dst: WeaveEchoClient*::ExchangeCtx::Close
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:303,1
    - Dst: WeaveEchoClient*::OnAckRcvdReceived
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp:309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ec
    - msgCtxt
    argTypes:
    - ExchangeContext*
    - void*
    constantsTouched: []
    func_position:
      end: 310
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 310
    functionName: nl::Weave::Profiles::WeaveEchoClient::HandleAckRcvd
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached:
    - WeaveEchoClient*::ExchangeCtx::Close
    - WeaveEchoClient*::OnAckRcvdReceived
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::HandleAckRcvd(ExchangeContext *ec, void *msgCtxt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - requestAck
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: nl::Weave::Profiles::WeaveEchoClient::SetRequestAck
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::SetRequestAck(bool requestAck)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aWRMPACKDelay
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: nl::Weave::Profiles::WeaveEchoClient::SetWRMPACKDelay
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::SetWRMPACKDelay(uint16_t aWRMPACKDelay)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aWRMPRetransInterval
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: nl::Weave::Profiles::WeaveEchoClient::SetWRMPRetransInterval
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::SetWRMPRetransInterval(uint32_t aWRMPRetransInterval)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aWRMPRetransCount
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: nl::Weave::Profiles::WeaveEchoClient::SetWRMPRetransCount
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveEchoClient::SetWRMPRetransCount(uint8_t aWRMPRetransCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 96
    functionName: nl::Weave::Profiles::WeaveEchoClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEcho.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeaveEchoClient
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 114
    functionName: nl::Weave::Profiles::WeaveEchoServer
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEcho.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeaveEchoServer
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: nl::Weave::Profiles::WeaveEchoServer::WeaveEchoServer
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveEchoServer::WeaveEchoServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoServer.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 54
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 54
    functionName: nl::Weave::Profiles::WeaveEchoServer::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoServer.cpp
    functionUses: 0
    functionsReached:
    - RegisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveEchoServer::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoServer.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 67
    functionName: nl::Weave::Profiles::WeaveEchoServer::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoServer.cpp
    functionUses: 0
    functionsReached:
    - UnregisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveEchoServer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveEchoServer*::OnEchoRequestReceived
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoServer.cpp:79,1
    - Dst: PacketBuffer*::EnsureReservedSize
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoServer.cpp:85,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoServer.cpp:88,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoServer.cpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 92
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 92
    functionName: nl::Weave::Profiles::WeaveEchoServer::HandleEchoRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoServer.cpp
    functionUses: 0
    functionsReached:
    - WeaveEchoServer*::OnEchoRequestReceived
    - PacketBuffer*::EnsureReservedSize
    - ExchangeContext*::Close
    - ExchangeContext*::SendMessage
    linkageType: ''
    returnType: void
    signature: "WeaveEchoServer::HandleEchoRequest(ExchangeContext *ec, const IPPacketInfo
      *pktInfo,\n        const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t
      msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 142
    functionName: nl::Weave::Profiles::RetainedPacketBuffer
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: RetainedPacketBuffer
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 181
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 181
    functionName: nl::Weave::Profiles::RetainedPacketBuffer
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.h
    functionUses: 0
    functionsReached:
    - MessageIterator
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: RetainedPacketBuffer
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 207
    functionName: nl::Weave::Profiles::RetainedPacketBuffer
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: RetainedPacketBuffer
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pack
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.h:289,1
    - Dst: parse
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.h:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 344
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 344
    functionName: nl::Weave::Profiles::RetainedPacketBuffer
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.h
    functionUses: 0
    functionsReached:
    - pack
    - parse
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: RetainedPacketBuffer
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Retain
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:46,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aBuffer
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: MessageIterator::MessageIterator
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached:
    - Retain
    - PacketBuffer*::Start
    linkageType: ''
    returnType: void
    signature: MessageIterator::MessageIterator(PacketBuffer *aBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::hasData
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:62,1
    - Dst: READBYTE
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - aDestination
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: MessageIterator::readByte
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 12
    functionsReached:
    - READBYTE
    - MessageIterator::hasData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MessageIterator::readByte(uint8_t *aDestination)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::hasData
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:83,1
    - Dst: READ16
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - aDestination
    argTypes:
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 91
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 91
    functionName: MessageIterator::read16
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 8
    functionsReached:
    - MessageIterator::hasData
    - READ16
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MessageIterator::read16(uint16_t *aDestination)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::hasData
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:104,1
    - Dst: READ32
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - aDestination
    argTypes:
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 112
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 112
    functionName: MessageIterator::read32
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 7
    functionsReached:
    - MessageIterator::hasData
    - READ32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MessageIterator::read32(uint32_t *aDestination)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::hasData
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:126,1
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - aDestination
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 136
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 136
    functionName: MessageIterator::read64
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 5
    functionsReached:
    - MessageIterator::readByte
    - MessageIterator::hasData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MessageIterator::read64(uint64_t *aDestination)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::hasData
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:150,1
    - Dst: READBYTE
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - aLength
    - aString
    argTypes:
    - uint16_t
    - char*
    constantsTouched: []
    func_position:
      end: 162
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 162
    functionName: MessageIterator::readString
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached:
    - READBYTE
    - MessageIterator::hasData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MessageIterator::readString(uint16_t aLength, char* aString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::hasData
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:176,1
    - Dst: READBYTE
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - aLength
    - aByteString
    argTypes:
    - uint16_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 188
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 188
    functionName: MessageIterator::readBytes
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached:
    - READBYTE
    - MessageIterator::hasData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MessageIterator::readBytes(uint16_t aLength, uint8_t* aByteString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::hasRoom
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:201,1
    - Dst: WRITEBYTE
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:205,1
    - Dst: MessageIterator::finishWriting
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - aValue
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 210
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 210
    functionName: MessageIterator::writeByte
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 11
    functionsReached:
    - MessageIterator::finishWriting
    - MessageIterator::hasRoom
    - WRITEBYTE
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MessageIterator::writeByte(uint8_t aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::hasRoom
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:223,1
    - Dst: WRITE16
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:227,1
    - Dst: MessageIterator::finishWriting
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - aValue
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 232
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 232
    functionName: MessageIterator::write16
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 8
    functionsReached:
    - MessageIterator::finishWriting
    - MessageIterator::hasRoom
    - WRITE16
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MessageIterator::write16(uint16_t aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::hasRoom
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:245,1
    - Dst: WRITE32
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:249,1
    - Dst: MessageIterator::finishWriting
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - aValue
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 254
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 254
    functionName: MessageIterator::write32
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 6
    functionsReached:
    - MessageIterator::finishWriting
    - MessageIterator::hasRoom
    - WRITE32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MessageIterator::write32(uint32_t aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::hasRoom
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:268,1
    - Dst: MessageIterator::writeByte
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - aValue
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 277
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 277
    functionName: MessageIterator::write64
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 5
    functionsReached:
    - MessageIterator::writeByte
    - MessageIterator::hasRoom
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MessageIterator::write64(uint64_t aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::hasRoom
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:291,1
    - Dst: WRITEBYTE
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:297,1
    - Dst: MessageIterator::finishWriting
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - aLength
    - aString
    argTypes:
    - uint16_t
    - char*
    constantsTouched: []
    func_position:
      end: 304
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 304
    functionName: MessageIterator::writeString
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached:
    - MessageIterator::finishWriting
    - MessageIterator::hasRoom
    - WRITEBYTE
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MessageIterator::writeString(uint16_t aLength, char *aString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::hasRoom
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:318,1
    - Dst: WRITEBYTE
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:324,1
    - Dst: MessageIterator::finishWriting
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - aLength
    - aByteString
    argTypes:
    - uint16_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 331
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 331
    functionName: MessageIterator::writeBytes
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached:
    - MessageIterator::finishWriting
    - MessageIterator::hasRoom
    - WRITEBYTE
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MessageIterator::writeBytes(uint16_t aLength, uint8_t *aByteString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hasRoom
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 343
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 343
    functionName: '& MessageIterator::operator ++(void)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached:
    - hasRoom
    linkageType: ''
    returnType: MessageIterator
    signature: '& MessageIterator::operator ++(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hasRoom
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:354,1
    - Dst: AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - inc
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 361
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 361
    functionName: '& MessageIterator::operator +(uint16_t inc)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached:
    - hasRoom
    - AvailableDataLength
    linkageType: ''
    returnType: MessageIterator
    signature: '& MessageIterator::operator +(uint16_t inc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DataLength
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:372,1
    - Dst: Start
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dec
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 377
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 377
    functionName: '& MessageIterator::operator -(uint16_t dec)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached:
    - DataLength
    - Start
    linkageType: ''
    returnType: MessageIterator
    signature: '& MessageIterator::operator -(uint16_t dec)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - aMessageIterator
    argTypes:
    - MessageIterator
    constantsTouched: []
    func_position:
      end: 386
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 386
    functionName: MessageIterator::operator==(const MessageIterator &aMessageIterator)
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: MessageIterator::operator==(const MessageIterator &aMessageIterator)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - aMessageIterator
    argTypes:
    - MessageIterator
    constantsTouched: []
    func_position:
      end: 395
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 395
    functionName: MessageIterator::operator!=(const MessageIterator &aMessageIterator)
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: MessageIterator::operator!=(const MessageIterator &aMessageIterator)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 404
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 404
    functionName: '& MessageIterator::operator *(void)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: '& MessageIterator::operator *(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Start
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:412,1
    - Dst: DataLength
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 413
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 413
    functionName: MessageIterator::append
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 13
    functionsReached:
    - DataLength
    - Start
    linkageType: ''
    returnType: void
    signature: MessageIterator::append(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Start
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:426,1
    - Dst: DataLength
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inc
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 427
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 427
    functionName: MessageIterator::hasData
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 6
    functionsReached:
    - DataLength
    - Start
    linkageType: ''
    returnType: bool
    signature: MessageIterator::hasData(uint16_t inc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inc
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 442
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 442
    functionName: MessageIterator::hasRoom
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 6
    functionsReached:
    - AvailableDataLength
    linkageType: ''
    returnType: bool
    signature: MessageIterator::hasRoom(uint16_t inc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDataLength
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:450,1
    - Dst: Start
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 451
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 451
    functionName: MessageIterator::finishWriting
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 5
    functionsReached:
    - SetDataLength
    - Start
    linkageType: ''
    returnType: void
    signature: MessageIterator::finishWriting(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 465
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 465
    functionName: ReferencedString::ReferencedString
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ReferencedString::ReferencedString(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: System::PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:485,1
    - Dst: System::PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:485,1
    - Dst: Retain
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - aLength
    - aString
    - aBuffer
    argTypes:
    - uint16_t
    - char*
    - System::PacketBuffer*
    constantsTouched: []
    func_position:
      end: 498
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 498
    functionName: ReferencedString::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached:
    - System::PacketBuffer*::AvailableDataLength
    - System::PacketBuffer*::DataLength
    - Retain
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReferencedString::init(uint16_t aLength, char *aString, System::PacketBuffer
      *aBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - aLength
    - aString
    argTypes:
    - uint16_t
    - char*
    constantsTouched: []
    func_position:
      end: 527
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 527
    functionName: ReferencedString::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReferencedString::init(uint16_t aLength, char *aString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: System::PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:535,1
    - Dst: System::PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:535,1
    - Dst: Retain
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - aLength
    - aString
    - aBuffer
    argTypes:
    - uint8_t
    - char*
    - System::PacketBuffer*
    constantsTouched: []
    func_position:
      end: 544
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 544
    functionName: ReferencedString::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached:
    - System::PacketBuffer*::AvailableDataLength
    - System::PacketBuffer*::DataLength
    - Retain
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReferencedString::init(uint8_t aLength, char *aString, System::PacketBuffer
      *aBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - aLength
    - aString
    argTypes:
    - uint8_t
    - char*
    constantsTouched: []
    func_position:
      end: 561
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 561
    functionName: ReferencedString::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReferencedString::init(uint8_t aLength, char *aString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::writeByte
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:573,1
    - Dst: MessageIterator::write16
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:576,1
    - Dst: MessageIterator::writeString
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - i
    argTypes:
    - MessageIterator
    constantsTouched: []
    func_position:
      end: 582
      start: 568
    functionDepth: 2
    functionLinenumber: 568
    functionLinenumberEnd: 582
    functionName: ReferencedString::pack
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached:
    - MessageIterator::writeByte
    - MessageIterator::write16
    - MessageIterator::writeString
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReferencedString::pack(MessageIterator &i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:599,1
    - Dst: MessageIterator::read16
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:602,1
    - Dst: MessageIterator::hasRoom
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:604,1
    - Dst: ReferencedString::Retain
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:608,1
    - Dst: MessageIterator::GetBuffer
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:608,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - i
    - aString
    argTypes:
    - MessageIterator
    - ReferencedString
    constantsTouched: []
    func_position:
      end: 619
      start: 593
    functionDepth: 2
    functionLinenumber: 593
    functionLinenumberEnd: 619
    functionName: ReferencedString::parse
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 4
    functionsReached:
    - MessageIterator::readByte
    - MessageIterator::read16
    - MessageIterator::hasRoom
    - MessageIterator::GetBuffer
    - ReferencedString::Retain
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReferencedString::parse(MessageIterator &i, ReferencedString &aString)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - aReferencedString
    argTypes:
    - ReferencedString
    constantsTouched: []
    func_position:
      end: 646
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 646
    functionName: ReferencedString::operator== (const ReferencedString &aReferencedString)
      const
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ReferencedString::operator== (const ReferencedString &aReferencedString)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 657
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 657
    functionName: ReferencedString::printString
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*ReferencedString::printString(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 677
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 677
    functionName: ReferencedTLVData::ReferencedTLVData
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ReferencedTLVData::ReferencedTLVData(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Retain
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:694,1
    - Dst: Start
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:696,1
    - Dst: DataLength
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:697,1
    - Dst: MaxDataLength
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - aBuffer
    argTypes:
    - System::PacketBuffer*
    constantsTouched: []
    func_position:
      end: 704
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 704
    functionName: ReferencedTLVData::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached:
    - DataLength
    - MaxDataLength
    - Start
    - Retain
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReferencedTLVData::init(System::PacketBuffer *aBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::GetBuffer
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:722,1
    - Dst: Retain
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:724,1
    - Dst: System::PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:727,1
    - Dst: Start
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:727,1
    - Dst: System::PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - i
    argTypes:
    - MessageIterator
    constantsTouched: []
    func_position:
      end: 734
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 734
    functionName: ReferencedTLVData::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached:
    - System::PacketBuffer*::MaxDataLength
    - System::PacketBuffer*::DataLength
    - Start
    - MessageIterator::GetBuffer
    - Retain
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReferencedTLVData::init(MessageIterator &i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - aLength
    - aMaxLength
    - aByteString
    argTypes:
    - uint16_t
    - uint16_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 768
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 768
    functionName: ReferencedTLVData::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReferencedTLVData::init(uint16_t aLength, uint16_t aMaxLength, uint8_t
      *aByteString)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - aWriteCallback
    - anAppState
    argTypes:
    - TLVWriteCallback
    - void*
    constantsTouched: []
    func_position:
      end: 812
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 812
    functionName: ReferencedTLVData::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReferencedTLVData::init(TLVWriteCallback aWriteCallback, void *anAppState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::RetainedPacketBuffer::Release
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 835
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 835
    functionName: ReferencedTLVData::free
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::RetainedPacketBuffer::Release
    linkageType: ''
    returnType: void
    signature: ReferencedTLVData::free(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 846
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 846
    functionName: ReferencedTLVData::isFree
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ReferencedTLVData::isFree(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::GetBuffer
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:865,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:872,1
    - Dst: theWriteCallback
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:873,1
    - Dst: System::PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:874,1
    - Dst: MessageIterator::writeBytes
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - i
    - maxLen
    argTypes:
    - MessageIterator
    - uint32_t
    constantsTouched: []
    func_position:
      end: 881
      start: 862
    functionDepth: 2
    functionLinenumber: 862
    functionLinenumberEnd: 881
    functionName: ReferencedTLVData::pack
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached:
    - System::PacketBuffer*::DataLength
    - MessageIterator::writeBytes
    - theWriteCallback
    - MessageIterator::GetBuffer
    - TLVWriter::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReferencedTLVData::pack(MessageIterator &i, uint32_t maxLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::GetBuffer
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:905,1
    - Dst: ReferencedTLVData::Retain
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:907,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:909,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp:909,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - i
    - aTarget
    argTypes:
    - MessageIterator
    - ReferencedTLVData
    constantsTouched: []
    func_position:
      end: 922
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 922
    functionName: ReferencedTLVData::parse
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 8
    functionsReached:
    - PacketBuffer*::DataLength
    - ReferencedTLVData::Retain
    - MessageIterator::GetBuffer
    - PacketBuffer*::Start
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReferencedTLVData::parse(MessageIterator &i, ReferencedTLVData &aTarget)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - another
    argTypes:
    - ReferencedTLVData
    constantsTouched: []
    func_position:
      end: 954
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 954
    functionName: ReferencedTLVData::operator== (const ReferencedTLVData &another)
      const
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ReferencedTLVData::operator== (const ReferencedTLVData &another) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: nl::Weave::Profiles::RetainedPacketBuffer::RetainedPacketBuffer
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/RetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: RetainedPacketBuffer::RetainedPacketBuffer(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::RetainedPacketBuffer::Retain
      Src: /src/openweave-core/src/lib/profiles/common/RetainedPacketBuffer.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aRetainedPacketBuffer
    argTypes:
    - RetainedPacketBuffer
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: nl::Weave::Profiles::RetainedPacketBuffer::RetainedPacketBuffer
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/RetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::RetainedPacketBuffer::Retain
    linkageType: ''
    returnType: void
    signature: RetainedPacketBuffer::RetainedPacketBuffer(const RetainedPacketBuffer
      &aRetainedPacketBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/common/RetainedPacketBuffer.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: RetainedPacketBuffer::~RetainedPacketBuffer(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/RetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: RetainedPacketBuffer::~RetainedPacketBuffer(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Retain
      Src: /src/openweave-core/src/lib/profiles/common/RetainedPacketBuffer.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aRetainedPacketBuffer
    argTypes:
    - RetainedPacketBuffer
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: '&RetainedPacketBuffer::operator =(const RetainedPacketBuffer &aRetainedPacketBuffer)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/RetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - Retain
    linkageType: ''
    returnType: RetainedPacketBuffer
    signature: '&RetainedPacketBuffer::operator =(const RetainedPacketBuffer &aRetainedPacketBuffer)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: nl::Weave::Profiles::RetainedPacketBuffer::IsRetaining
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/RetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: RetainedPacketBuffer::IsRetaining(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: System::PacketBuffer*::AddRef
      Src: /src/openweave-core/src/lib/profiles/common/RetainedPacketBuffer.cpp:117,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/common/RetainedPacketBuffer.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - aBuffer
    argTypes:
    - System::PacketBuffer*
    constantsTouched: []
    func_position:
      end: 126
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 126
    functionName: nl::Weave::Profiles::RetainedPacketBuffer::Retain
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/RetainedPacketBuffer.cpp
    functionUses: 1
    functionsReached:
    - System::PacketBuffer*::AddRef
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: void
    signature: RetainedPacketBuffer::Retain(System::PacketBuffer *aBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::RetainedPacketBuffer::Retain
      Src: /src/openweave-core/src/lib/profiles/common/RetainedPacketBuffer.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: nl::Weave::Profiles::RetainedPacketBuffer::Release
    functionSourceFile: /src/openweave-core/src/lib/profiles/common/RetainedPacketBuffer.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::RetainedPacketBuffer::Retain
    linkageType: ''
    returnType: void
    signature: RetainedPacketBuffer::Release(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: nl::Weave::Profiles::TokenPairing::TokenPairingServer::TokenPairingServer
    functionSourceFile: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TokenPairingServer::TokenPairingServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:74,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:75,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 80
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 80
    functionName: nl::Weave::Profiles::TokenPairing::TokenPairingServer::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp
    functionUses: 0
    functionsReached:
    - RegisterUnsolicitedMessageHandler
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TokenPairingServer::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:92,1
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:93,1
    - Dst: nl::Weave::Profiles::TokenPairing::TokenPairingServer::CloseClientOp
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 100
    functionName: nl::Weave::Profiles::TokenPairing::TokenPairingServer::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::TokenPairing::TokenPairingServer::CloseClientOp
    - UnregisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TokenPairingServer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - delegate
    argTypes:
    - TokenPairingDelegate*
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: nl::Weave::Profiles::TokenPairing::TokenPairingServer::SetDelegate
    functionSourceFile: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TokenPairingServer::SetDelegate(TokenPairingDelegate *delegate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:128,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:129,1
    - Dst: nl::Weave::Profiles::TokenPairing::TokenPairingServer::CloseClientOp
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - statusProfileId
    - statusCode
    - sysError
    argTypes:
    - uint32_t
    - uint16_t
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 134
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 134
    functionName: nl::Weave::Profiles::TokenPairing::TokenPairingServer::SendStatusReport
    functionSourceFile: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::TokenPairing::TokenPairingServer::CloseClientOp
    - nl::Weave::WeaveServerBase::SendStatusReport
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TokenPairingServer::SendStatusReport(uint32_t statusProfileId, uint16_t
      statusCode, WEAVE_ERROR sysError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:140,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:141,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:144,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:146,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - certificateBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 156
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 156
    functionName: nl::Weave::Profiles::TokenPairing::TokenPairingServer::SendTokenCertificateResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - WeaveLogError
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TokenPairingServer::SendTokenCertificateResponse(PacketBuffer *certificateBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:162,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:163,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:165,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:171,1
    - Dst: nl::Weave::Profiles::TokenPairing::TokenPairingServer::CloseClientOp
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - tokenBundleBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 175
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 175
    functionName: nl::Weave::Profiles::TokenPairing::TokenPairingServer::SendTokenPairedResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::Profiles::TokenPairing::TokenPairingServer::CloseClientOp
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TokenPairingServer::SendTokenPairedResponse(PacketBuffer *tokenBundleBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 185
    functionName: nl::Weave::Profiles::TokenPairing::TokenPairingServer::CloseClientOp
    functionSourceFile: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp
    functionUses: 3
    functionsReached:
    - Close
    linkageType: ''
    returnType: void
    signature: TokenPairingServer::CloseClientOp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:196,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:197,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:198,1
    - Dst: TokenPairingServer*::EnforceAccessControl
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:204,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:206,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:207,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:213,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:214,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:215,1
    - Dst: TokenPairingServer*::mDelegate::OnPairTokenRequest
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:228,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:228,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:228,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:230,1
    - Dst: TokenPairingServer*::mDelegate::OnUnpairTokenRequest
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:236,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:238,1
    - Dst: TokenPairingServer*::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:242,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:243,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:249,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:253,1
    - Dst: TokenPairingServer*::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:254,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - msgBuf
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 256
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 256
    functionName: nl::Weave::Profiles::TokenPairing::TokenPairingServer::HandleClientRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - WeaveLogError
    - TokenPairingServer*::mDelegate::OnUnpairTokenRequest
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    - TokenPairingServer*::SendStatusReport
    - ExitNow
    - TokenPairingServer*::mDelegate::OnPairTokenRequest
    - SuccessOrExit
    - PacketBuffer*::Start
    - TokenPairingServer*::EnforceAccessControl
    - nl::Weave::WeaveServerBase::SendStatusReport
    linkageType: ''
    returnType: void
    signature: "TokenPairingServer::HandleClientRequest(ExchangeContext *ec, const
      IPPacketInfo *pktInfo,\n        const WeaveMessageInfo *msgInfo, uint32_t profileId,
      uint8_t msgType, PacketBuffer *msgBuf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:279,1
    - Dst: nl::Weave::WeaveServerDelegateBase::EnforceAccessControl
      Src: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp:286,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - ec
    - msgProfileId
    - msgType
    - msgInfo
    - ' result'
    argTypes:
    - ExchangeContext*
    - uint32_t
    - uint8_t
    - WeaveMessageInfo*
    - AccessControlResult
    constantsTouched: []
    func_position:
      end: 287
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 287
    functionName: nl::Weave::Profiles::TokenPairing::TokenPairingDelegate::EnforceAccessControl
    functionSourceFile: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveServerDelegateBase::EnforceAccessControl
    - nl::Weave::WeaveServerBase::SendStatusReport
    linkageType: ''
    returnType: void
    signature: "TokenPairingDelegate::EnforceAccessControl(ExchangeContext *ec, uint32_t
      msgProfileId, uint8_t msgType,\n        const WeaveMessageInfo *msgInfo, AccessControlResult&
      result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 129
    functionName: nl::Weave::Profiles::TokenPairing::TokenPairingServer
    functionSourceFile: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: TokenPairingServer
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: WeaveTunnelConnectionMgr::WeaveTunnelConnectionMgr
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::WeaveTunnelConnectionMgr(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:78,1
    - Dst: strncpy
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:93,1
    - Dst: WeaveTunnelConnectionMgr::Init
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:146,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 4
    argNames:
    - tunAgent
    - tunType
    - srcIntfType
    - connIntfName
    argTypes:
    - WeaveTunnelAgent*
    - TunnelType
    - SrcInterfaceType
    - char*
    constantsTouched: []
    func_position:
      end: 151
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 151
    functionName: WeaveTunnelConnectionMgr::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 1
    functionsReached:
    - SuccessOrExit
    - strncpy
    - VerifyOrExit
    - WeaveTunnelConnectionMgr::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelConnectionMgr::Init(WeaveTunnelAgent *tunAgent,\n                                           TunnelType
      tunType,\n                                           SrcInterfaceType srcIntfType,\n
      \                                          const char *connIntfName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelConnectionMgr::StopOnlineCheck
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:160,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 170
    functionName: WeaveTunnelConnectionMgr::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - Close
    - WeaveTunnelConnectionMgr::StopOnlineCheck
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::Shutdown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tunIntf
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 185
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 185
    functionName: WeaveTunnelConnectionMgr::SetInterfaceName
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - strncpy
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::SetInterfaceName(const char *tunIntf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - srcIntfType
    argTypes:
    - SrcInterfaceType
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: WeaveTunnelConnectionMgr::SetInterfaceType
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::SetInterfaceType (const SrcInterfaceType
      srcIntfType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetUserTimeout
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:216,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:221,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - maxTimeoutSecs
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 232
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 232
    functionName: WeaveTunnelConnectionMgr::ConfigureConnTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - SetUserTimeout
    - VerifyOrExit
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelConnectionMgr::ConfigureConnTimeout(uint16_t maxTimeoutSecs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnableKeepAlive
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:257,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - intervalSecs
    - maxNumProbes
    argTypes:
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 267
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 267
    functionName: WeaveTunnelConnectionMgr::ConfigureAndEnableTCPKeepAlive
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - EnableKeepAlive
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelConnectionMgr::ConfigureAndEnableTCPKeepAlive(uint16_t intervalSecs,
      uint16_t maxNumProbes)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - livenessIntervalSecs
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: WeaveTunnelConnectionMgr::ConfigureTunnelLivenessInterval
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::ConfigureTunnelLivenessInterval(uint16_t
      livenessIntervalSecs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aIsPersistedTunnelSessionPresent
    - aLoadPersistedTunnelSession
    argTypes:
    - PersistedSecureSessionExistsFunct
    - LoadPersistedSessionFunct
    constantsTouched: []
    func_position:
      end: 286
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 286
    functionName: WeaveTunnelConnectionMgr::SetCallbacksForPersistedTunnelConnection
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelConnectionMgr::SetCallbacksForPersistedTunnelConnection(PersistedSecureSessionExistsFunct
      aIsPersistedTunnelSessionPresent,\n                                                                        LoadPersistedSessionFunct
      aLoadPersistedTunnelSession)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:297,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:303,1
    - Dst: mExchangeMgr::MessageLayer::NewConnection
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:307,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:309,1
    - Dst: SetConnectTimeout
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - outCon
    argTypes:
    - WeaveConnection**
    constantsTouched: []
    func_position:
      end: 326
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 326
    functionName: WeaveTunnelConnectionMgr::AllocateAndPrepTunnelConnection
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - SetConnectTimeout
    - Close
    - VerifyOrExit
    - mExchangeMgr::MessageLayer::NewConnection
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelConnectionMgr::AllocateAndPrepTunnelConnection(WeaveConnection
      **outCon)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - aGetConnectionRepairInfo
    - repairCtxt
    argTypes:
    - nl::Weave::WeaveConnection::ConnectionRepairInfoGetterFunct
    - void*
    constantsTouched: []
    func_position:
      end: 336
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 336
    functionName: WeaveTunnelConnectionMgr::SetConnectionRepairInfoCallback
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelConnectionMgr::SetConnectionRepairInfoCallback(nl::Weave::WeaveConnection::ConnectionRepairInfoGetterFunct
      aGetConnectionRepairInfo,\n                                                               void
      *repairCtxt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:348,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:351,1
    - Dst: mConnRepairInfoGet
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:353,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:354,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:356,1
    - Dst: WeaveTunnelConnectionMgr::AllocateAndPrepTunnelConnection
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:358,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:359,1
    - Dst: WeaveConnection*::TryConnectionRepair
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:363,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:364,1
    - Dst: WeaveConnection*::Abort
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - aPeerNodeId
    - aAuthMode
    - aConnIntfId
    argTypes:
    - uint64_t
    - WeaveAuthMode
    - nl::Inet::InterfaceId
    constantsTouched: []
    func_position:
      end: 380
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 380
    functionName: WeaveTunnelConnectionMgr::AttemptRepairTunnelConnection
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - VerifyOrExit
    - mConnRepairInfoGet
    - WeaveConnection*::Abort
    - WeaveTunnelConnectionMgr::AllocateAndPrepTunnelConnection
    - SuccessOrExit
    - WeaveConnection*::TryConnectionRepair
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelConnectionMgr::AttemptRepairTunnelConnection(uint64_t aPeerNodeId,\n
      \                                                                   WeaveAuthMode
      aAuthMode,\n                                                                    nl::Inet::InterfaceId
      aConnIntfId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:397,1
    - Dst: InterfaceNameToId
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:405,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:406,1
    - Dst: IsPersistedTunnelSessionPresent
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:414,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:416,1
    - Dst: WeaveTunnelConnectionMgr::AttemptRepairTunnelConnection
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:423,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:426,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:432,1
    - Dst: mServiceMgr::connect
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:437,1
    - Dst: WeaveTunnelConnectionMgr::StartServiceTunnelConn
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:447,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:454,1
    - Dst: GetCommonTunnelStatistics
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:462,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 472
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 472
    functionName: WeaveTunnelConnectionMgr::TryConnectingNow
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelConnectionMgr::AttemptRepairTunnelConnection
    - IsPersistedTunnelSessionPresent
    - WeaveTunnelConnectionMgr::StartServiceTunnelConn
    - InterfaceNameToId
    - ExitNow
    - GetCommonTunnelStatistics
    - WeaveLogDetail
    - SuccessOrExit
    - mServiceMgr::connect
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelConnectionMgr::TryConnectingNow(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsPrimaryTunnelEnabled
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:480,1
    - Dst: IsBackupTunnelEnabled
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:483,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:487,1
    - Dst: mServiceConnDelayPolicyCallback
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:491,1
    - Dst: mServiceMgr::clearCache
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:509,1
    - Dst: WeaveTunnelConnectionMgr::ScheduleConnect
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:515,1
    - Dst: WeaveTunnelConnectionMgr::ResetCacheAndScheduleConnect
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:519,1
    - Dst: WeaveTunnelConnectionDown
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:528,1
    - Dst: WeaveTunnelConnectionMgr::SetOnlineCheckIntervalFast
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:532,1
    - Dst: WeaveTunnelConnectionMgr::StartOnlineCheck
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:534,1
    - Dst: WeaveTunnelConnectionErrorNotify
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:540,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - reconnParam
    argTypes:
    - ReconnectParam
    constantsTouched: []
    func_position:
      end: 545
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 545
    functionName: WeaveTunnelConnectionMgr::DecideOnReconnect
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - mServiceMgr::clearCache
    - WeaveTunnelConnectionErrorNotify
    - mServiceConnDelayPolicyCallback
    - ExitNow
    - WeaveTunnelConnectionMgr::ScheduleConnect
    - WeaveTunnelConnectionDown
    - IsPrimaryTunnelEnabled
    - WeaveTunnelConnectionMgr::StartOnlineCheck
    - IsBackupTunnelEnabled
    - WeaveTunnelConnectionMgr::ResetCacheAndScheduleConnect
    - WeaveTunnelConnectionMgr::SetOnlineCheckIntervalFast
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::DecideOnReconnect(ReconnectParam &reconnParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelConnectionMgr*>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:551,1
    - Dst: WeaveTunnelConnectionMgr*::mTunAgent::IsPrimaryTunnelEnabled
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:557,1
    - Dst: WeaveTunnelConnectionMgr*::mTunAgent::IsBackupTunnelEnabled
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:560,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:564,1
    - Dst: WeaveTunnelConnectionMgr*::StopServiceTunnelConn
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:572,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:577,1
    - Dst: WeaveTunnelConnectionMgr*::TryConnectingNow
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:584,1
    - Dst: ReconnectParam::PopulateReconnectParam
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:588,1
    - Dst: WeaveTunnelConnectionMgr*::StopAndReconnectTunnelConn
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:590,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 595
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 595
    functionName: WeaveTunnelConnectionMgr::ServiceConnectTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelConnectionMgr*::StopServiceTunnelConn
    - WeaveTunnelConnectionMgr*::StopAndReconnectTunnelConn
    - WeaveTunnelConnectionMgr*::TryConnectingNow
    - ExitNow
    - WeaveTunnelConnectionMgr*::mTunAgent::IsPrimaryTunnelEnabled
    - ReconnectParam::PopulateReconnectParam
    - WeaveTunnelConnectionMgr*::mTunAgent::IsBackupTunnelEnabled
    - WeaveLogDetail
    - static_cast<WeaveTunnelConnectionMgr*>
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::ServiceConnectTimeout(System::Layer* aSystemLayer,
      void* aAppState, System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mServiceMgr::clearCache
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:605,1
    - Dst: WeaveTunnelConnectionMgr::ScheduleConnect
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - delay
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 610
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 610
    functionName: WeaveTunnelConnectionMgr::ResetCacheAndScheduleConnect
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 1
    functionsReached:
    - mServiceMgr::clearCache
    - WeaveTunnelConnectionMgr::ScheduleConnect
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::ResetCacheAndScheduleConnect(uint32_t delay)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mExchangeMgr::MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - delay
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 616
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 616
    functionName: WeaveTunnelConnectionMgr::ScheduleConnect
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 2
    functionsReached:
    - mExchangeMgr::MessageLayer::SystemLayer::StartTimer
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::ScheduleConnect(uint32_t delay)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mExchangeMgr::MessageLayer::SystemLayer::CancelTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 621
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 621
    functionName: WeaveTunnelConnectionMgr::CancelDelayedReconnect
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - mExchangeMgr::MessageLayer::SystemLayer::CancelTimer
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::CancelDelayedReconnect(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelConnectionMgr::AllocateAndPrepTunnelConnection
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:631,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:632,1
    - Dst: Connect
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - destNodeId
    - destIPAddr
    - destPort
    - authMode
    - connIntfId
    argTypes:
    - uint64_t
    - IPAddress
    - uint16_t
    - WeaveAuthMode
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 638
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 638
    functionName: WeaveTunnelConnectionMgr::StartServiceTunnelConn
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 1
    functionsReached:
    - Connect
    - WeaveTunnelConnectionMgr::AllocateAndPrepTunnelConnection
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelConnectionMgr::StartServiceTunnelConn(uint64_t destNodeId,
      IPAddress destIPAddr,\n                                                             uint16_t
      destPort,\n                                                             WeaveAuthMode
      authMode,\n                                                             InterfaceId
      connIntfId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mServiceMgr::cancel
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:648,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:656,1
    - Dst: Abort
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:658,1
    - Dst: Abort
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:663,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - err
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 670
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 670
    functionName: WeaveTunnelConnectionMgr::StopServiceTunnelConn
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - Close
    - mServiceMgr::cancel
    - Abort
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::StopServiceTunnelConn(WEAVE_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelConnectionMgr::ReleaseResourcesAndStopTunnelConn
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:680,1
    - Dst: WeaveTunnelConnectionMgr::AttemptReconnect
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' reconnParam'
    argTypes:
    - ReconnectParam
    constantsTouched: []
    func_position:
      end: 685
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 685
    functionName: WeaveTunnelConnectionMgr::StopAndReconnectTunnelConn
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelConnectionMgr::ReleaseResourcesAndStopTunnelConn
    - WeaveTunnelConnectionMgr::AttemptReconnect
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::StopAndReconnectTunnelConn(ReconnectParam
      & reconnParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SendTunnelClose
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:706,1
    - Dst: WeaveTunnelConnectionMgr::ReleaseResourcesAndStopTunnelConn
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:720,1
    - Dst: WeaveTunnelConnectionDown
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:724,1
    - Dst: WeaveTunnelConnectionMgr::StopOnlineCheck
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:728,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - err
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 736
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 736
    functionName: WeaveTunnelConnectionMgr::ServiceTunnelClose
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelConnectionDown
    - SendTunnelClose
    - WeaveTunnelConnectionMgr::ReleaseResourcesAndStopTunnelConn
    - WeaveTunnelConnectionMgr::StopOnlineCheck
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::ServiceTunnelClose(WEAVE_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 757
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 757
    functionName: WeaveTunnelConnectionMgr::GetTunnelConnection
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: nl::Weave::WeaveConnection
    signature: '* WeaveTunnelConnectionMgr::GetTunnelConnection(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelConnectionMgr *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:774,1
    - Dst: WeaveTunnelConnectionMgr*::mTunAgent::HandleTunneledReceive
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - con
    - msgInfo
    - msg
    argTypes:
    - WeaveConnection*
    - WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 779
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 779
    functionName: WeaveTunnelConnectionMgr::RecvdFromService
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelConnectionMgr*::mTunAgent::HandleTunneledReceive
    - static_cast<WeaveTunnelConnectionMgr *>
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelConnectionMgr::RecvdFromService (WeaveConnection *con,\n
      \                                                const WeaveMessageInfo *msgInfo,\n
      \                                                PacketBuffer *msg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelConnectionMgr *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:785,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:787,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:788,1
    - Dst: nl::StatusReportStr
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:788,1
    - Dst: ReconnectParam::PopulateReconnectParam
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:805,1
    - Dst: ReconnectParam::PopulateReconnectParam
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:809,1
    - Dst: WeaveTunnelConnectionMgr*::ReleaseResourcesAndStopTunnelConn
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:812,1
    - Dst: WeaveTunnelConnectionMgr*::AttemptReconnect
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:814,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - appState
    - err
    - report
    argTypes:
    - void*
    - WEAVE_ERROR
    - StatusReport*
    constantsTouched: []
    func_position:
      end: 815
      start: 781
    functionDepth: 2
    functionLinenumber: 781
    functionLinenumberEnd: 815
    functionName: WeaveTunnelConnectionMgr::ServiceMgrStatusHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - WeaveTunnelConnectionMgr*::AttemptReconnect
    - nl::StatusReportStr
    - ReconnectParam::PopulateReconnectParam
    - WeaveTunnelConnectionMgr*::ReleaseResourcesAndStopTunnelConn
    - nl::ErrorStr
    - static_cast<WeaveTunnelConnectionMgr *>
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::ServiceMgrStatusHandler(void* appState, WEAVE_ERROR
      err, StatusReport *report)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveConnection *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:826,1
    - Dst: static_cast<WeaveTunnelConnectionMgr *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:828,1
    - Dst: WeaveTunnelConnectionMgr*::mTunAgent::WeaveTunnelNotifyTCPSendIdleStateChange
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tcpEndPoint
    - isIdle
    argTypes:
    - TCPEndPoint*
    - bool
    constantsTouched: []
    func_position:
      end: 831
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 831
    functionName: WeaveTunnelConnectionMgr::HandleTCPSendIdleChanged
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelConnectionMgr*::mTunAgent::WeaveTunnelNotifyTCPSendIdleStateChange
    - static_cast<WeaveConnection *>
    - static_cast<WeaveTunnelConnectionMgr *>
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::HandleTCPSendIdleChanged(TCPEndPoint *tcpEndPoint,
      bool isIdle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelConnectionMgr *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:851,1
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:852,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:856,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:862,1
    - Dst: WeaveTunnelConnectionMgr*::mServiceCon::GetTCPEndPoint
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:871,1
    - Dst: WeaveTunnelConnectionMgr*::mTunAgent::WeaveTunnelConnectionEstablishedNotify
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:876,1
    - Dst: WeaveTunnelConnectionMgr*::LoadPersistedTunnelSession
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:889,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:905,1
    - Dst: WeaveTunnelConnectionMgr*::StopOnlineCheck
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:915,1
    - Dst: WeaveTunnelConnectionMgr*::StartLivenessTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:920,1
    - Dst: WeaveTunnelConnectionMgr*::mTunAgent::WeaveTunnelUp
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:925,1
    - Dst: WeaveTunnelRoute
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:932,1
    - Dst: WeaveFabricIdToIPv6GlobalId
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:933,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:936,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:938,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:940,1
    - Dst: WeaveNodeIdToIPv6InterfaceId
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:941,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:943,1
    - Dst: WeaveNodeIdToIPv6InterfaceId
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:944,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:951,1
    - Dst: WeaveNodeIdToIPv6InterfaceId
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:952,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:960,1
    - Dst: WeaveNodeIdToIPv6InterfaceId
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:961,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:963,1
    - Dst: WeaveNodeIdToIPv6InterfaceId
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:964,1
    - Dst: WeaveTunnelConnectionMgr*::mTunControl::SendTunnelOpen
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:970,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:971,1
    - Dst: WeaveTunnelConnectionMgr*::ConfigureConnTimeout
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:977,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:978,1
    - Dst: WeaveTunnelConnectionMgr*::ConfigureAndEnableTCPKeepAlive
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:984,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:985,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:992,1
    - Dst: ReconnectParam::PopulateReconnectParam
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:996,1
    - Dst: WeaveTunnelConnectionMgr*::StopAndReconnectTunnelConn
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:998,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 70
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1002
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 1002
    functionName: WeaveTunnelConnectionMgr::HandleServiceConnectionComplete
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveFabricIdToIPv6GlobalId
    - WeaveTunnelConnectionMgr*::StopAndReconnectTunnelConn
    - WeaveTunnelConnectionMgr*::mTunAgent::WeaveTunnelConnectionEstablishedNotify
    - WeaveLogError
    - WeaveTunnelConnectionMgr*::LoadPersistedTunnelSession
    - WeaveTunnelConnectionMgr*::StopOnlineCheck
    - WeaveLogDetail
    - static_cast<WeaveTunnelConnectionMgr *>
    - WeaveTunnelConnectionMgr*::mTunAgent::WeaveTunnelUp
    - ReconnectParam::PopulateReconnectParam
    - WeaveTunnelConnectionMgr*::ConfigureConnTimeout
    - nl::Inet::IPAddress::MakeULA
    - WeaveTunnelConnectionMgr*::StartLivenessTimer
    - WeaveTunnelConnectionMgr*::mTunControl::SendTunnelOpen
    - WeaveConnection*::PeerAddr::ToString
    - WeaveNodeIdToIPv6InterfaceId
    - WeaveTunnelRoute
    - SuccessOrExit
    - WeaveTunnelConnectionMgr*::ConfigureAndEnableTCPKeepAlive
    - WeaveTunnelConnectionMgr*::mServiceCon::GetTCPEndPoint
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::HandleServiceConnectionComplete(WeaveConnection
      *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelConnectionMgr *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1019,1
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1021,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1026,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1034,1
    - Dst: ReconnectParam::PopulateReconnectParam
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1038,1
    - Dst: WeaveTunnelConnectionMgr*::StopAndReconnectTunnelConn
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1040,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1041
      start: 1013
    functionDepth: 1
    functionLinenumber: 1013
    functionLinenumberEnd: 1041
    functionName: WeaveTunnelConnectionMgr::HandleServiceConnectionClosed
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - WeaveTunnelConnectionMgr*::StopAndReconnectTunnelConn
    - WeaveConnection*::PeerAddr::ToString
    - ReconnectParam::PopulateReconnectParam
    - WeaveLogDetail
    - static_cast<WeaveTunnelConnectionMgr *>
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::HandleServiceConnectionClosed (WeaveConnection
      *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mServiceExchangeCtxt::Close
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1052,1
    - Dst: WeaveTunnelConnectionMgr::StopLivenessTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1059,1
    - Dst: WeaveTunnelConnectionMgr::CancelDelayedReconnect
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1064,1
    - Dst: WeaveTunnelConnectionMgr::StopServiceTunnelConn
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1068,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - err
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1069
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1069
    functionName: WeaveTunnelConnectionMgr::ReleaseResourcesAndStopTunnelConn
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 2
    functionsReached:
    - WeaveTunnelConnectionMgr::StopLivenessTimer
    - mServiceExchangeCtxt::Close
    - WeaveTunnelConnectionMgr::CancelDelayedReconnect
    - WeaveTunnelConnectionMgr::StopServiceTunnelConn
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::ReleaseResourcesAndStopTunnelConn(WEAVE_ERROR
      err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelConnectionMgr::DecideOnReconnect
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reconnParam
    argTypes:
    - ReconnectParam
    constantsTouched: []
    func_position:
      end: 1079
      start: 1074
    functionDepth: 2
    functionLinenumber: 1074
    functionLinenumberEnd: 1079
    functionName: WeaveTunnelConnectionMgr::AttemptReconnect
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 1
    functionsReached:
    - WeaveTunnelConnectionMgr::DecideOnReconnect
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::AttemptReconnect(ReconnectParam &reconnParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1094,1
    - Dst: WeaveTunnelConnectionMgr::CancelDelayedReconnect
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1098,1
    - Dst: WeaveTunnelConnectionMgr::ResetCacheAndScheduleConnect
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1109,1
    - Dst: GetRandU32
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1113,1
    - Dst: WeaveTunnelConnectionMgr::ResetCacheAndScheduleConnect
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - reconnectImmediately
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1122
      start: 1086
    functionDepth: 2
    functionLinenumber: 1086
    functionLinenumberEnd: 1122
    functionName: WeaveTunnelConnectionMgr::ResetReconnectBackoff
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - GetRandU32
    - WeaveTunnelConnectionMgr::CancelDelayedReconnect
    - WeaveTunnelConnectionMgr::ResetCacheAndScheduleConnect
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelConnectionMgr::ResetReconnectBackoff(bool reconnectImmediately)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelConnectionMgr*>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1130,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1132,1
    - Dst: WeaveTunnelConnectionMgr*::mTunControl::SendTunnelLiveness
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1135,1
    - Dst: ReconnectParam::PopulateReconnectParam
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1139,1
    - Dst: WeaveTunnelConnectionMgr*::StopAndReconnectTunnelConn
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 1145
      start: 1125
    functionDepth: 1
    functionLinenumber: 1125
    functionLinenumberEnd: 1145
    functionName: WeaveTunnelConnectionMgr::TunnelLivenessTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelConnectionMgr*::mTunControl::SendTunnelLiveness
    - WeaveTunnelConnectionMgr*::StopAndReconnectTunnelConn
    - ReconnectParam::PopulateReconnectParam
    - WeaveLogDetail
    - static_cast<WeaveTunnelConnectionMgr*>
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::TunnelLivenessTimeout(System::Layer* aSystemLayer,
      void* aAppState, System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mExchangeMgr::MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1148
    functionDepth: 0
    functionLinenumber: 1148
    functionLinenumberEnd: 1151
    functionName: WeaveTunnelConnectionMgr::StartLivenessTimer
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - mExchangeMgr::MessageLayer::SystemLayer::StartTimer
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::StartLivenessTimer(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mExchangeMgr::MessageLayer::SystemLayer::CancelTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1154
    functionDepth: 0
    functionLinenumber: 1154
    functionLinenumberEnd: 1157
    functionName: WeaveTunnelConnectionMgr::StopLivenessTimer
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 1
    functionsReached:
    - mExchangeMgr::MessageLayer::SystemLayer::CancelTimer
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::StopLivenessTimer(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelConnectionMgr::StopLivenessTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1162,1
    - Dst: WeaveTunnelConnectionMgr::StartLivenessTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1160
    functionDepth: 1
    functionLinenumber: 1160
    functionLinenumberEnd: 1165
    functionName: WeaveTunnelConnectionMgr::RestartLivenessTimer
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelConnectionMgr::StopLivenessTimer
    - WeaveTunnelConnectionMgr::StartLivenessTimer
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::RestartLivenessTimer(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelConnectionMgr*>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1170,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1172,1
    - Dst: WeaveTunnelConnectionMgr*::mTunAgent::NetworkOnlineCheck
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1177,1
    - Dst: WeaveTunnelConnectionMgr*::StartOnlineCheck
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 1183
      start: 1168
    functionDepth: 0
    functionLinenumber: 1168
    functionLinenumberEnd: 1183
    functionName: WeaveTunnelConnectionMgr::OnlineCheckTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelConnectionMgr*::StartOnlineCheck
    - WeaveLogDetail
    - WeaveTunnelConnectionMgr*::mTunAgent::NetworkOnlineCheck
    - static_cast<WeaveTunnelConnectionMgr*>
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::OnlineCheckTimeout(System::Layer* aSystemLayer,
      void* aAppState, System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aProbeFast
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1190
      start: 1185
    functionDepth: 0
    functionLinenumber: 1185
    functionLinenumberEnd: 1190
    functionName: WeaveTunnelConnectionMgr::SetOnlineCheckIntervalFast
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::SetOnlineCheckIntervalFast(bool aProbeFast)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mExchangeMgr::MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1196,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1192
    functionDepth: 0
    functionLinenumber: 1192
    functionLinenumberEnd: 1203
    functionName: WeaveTunnelConnectionMgr::StartOnlineCheck
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogError
    - mExchangeMgr::MessageLayer::SystemLayer::StartTimer
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::StartOnlineCheck(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mExchangeMgr::MessageLayer::SystemLayer::CancelTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1205
    functionDepth: 0
    functionLinenumber: 1205
    functionLinenumberEnd: 1208
    functionName: WeaveTunnelConnectionMgr::StopOnlineCheck
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 2
    functionsReached:
    - mExchangeMgr::MessageLayer::SystemLayer::CancelTimer
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::StopOnlineCheck(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelConnectionMgr::StopOnlineCheck
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1212,1
    - Dst: WeaveTunnelConnectionMgr::StartOnlineCheck
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1210
    functionDepth: 1
    functionLinenumber: 1210
    functionLinenumberEnd: 1215
    functionName: WeaveTunnelConnectionMgr::ReStartOnlineCheck
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelConnectionMgr::StopOnlineCheck
    - WeaveTunnelConnectionMgr::StartOnlineCheck
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::ReStartOnlineCheck(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelConnectionMgr::SetOnlineCheckIntervalFast
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1224,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1231,1
    - Dst: WeaveTunnelConnectionMgr::ResetReconnectBackoff
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1233,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1236,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - isOnline
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1245
      start: 1217
    functionDepth: 3
    functionLinenumber: 1217
    functionLinenumberEnd: 1245
    functionName: WeaveTunnelConnectionMgr::HandleOnlineCheckResult
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - WeaveTunnelConnectionMgr::ResetReconnectBackoff
    - WeaveLogDetail
    - ErrorStr
    - WeaveTunnelConnectionMgr::SetOnlineCheckIntervalFast
    linkageType: ''
    returnType: void
    signature: WeaveTunnelConnectionMgr::HandleOnlineCheckResult(bool isOnline)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelConnectionMgr*>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1271,1
    - Dst: GetFibonacciForIndex
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1278,1
    - Dst: GetRandU32
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1293,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp:1300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - appState
    - ' reconnParam'
    - ' delayMsec'
    argTypes:
    - void*
    - ReconnectParam
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1304
      start: 1262
    functionDepth: 0
    functionLinenumber: 1262
    functionLinenumberEnd: 1304
    functionName: WeaveTunnelConnectionMgr::DefaultReconnectPolicyCallback
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 0
    functionsReached:
    - GetRandU32
    - GetFibonacciForIndex
    - WeaveLogDetail
    - static_cast<WeaveTunnelConnectionMgr*>
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelConnectionMgr::DefaultReconnectPolicyCallback(void * const
      appState,\n                                                              ReconnectParam
      & reconnParam,\n                                                              uint32_t
      & delayMsec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - lastConnectError
    - profileId
    - statusCode
    - minDelayToConnectSecs
    argTypes:
    - WEAVE_ERROR
    - uint32_t
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1318
      start: 1309
    functionDepth: 0
    functionLinenumber: 1309
    functionLinenumberEnd: 1318
    functionName: ReconnectParam::PopulateReconnectParam
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "ReconnectParam::PopulateReconnectParam(WEAVE_ERROR lastConnectError,\n
      \                                           uint32_t profileId,\n                                            uint16_t
      statusCode,\n                                            uint32_t minDelayToConnectSecs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:65,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:67,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:74,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:78,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - tunHeader
    - msg
    argTypes:
    - WeaveTunnelHeader*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 84
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 84
    functionName: WeaveTunnelHeader::EncodeTunnelHeader
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - PacketBuffer*::SetStart
    - Write8
    - ExitNow
    - PacketBuffer*::Start
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelHeader::EncodeTunnelHeader (WeaveTunnelHeader *tunHeader,\n
      \                                                  PacketBuffer *msg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:105,1
    - Dst: Read8
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:107,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:110,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:114,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - tunHeader
    - msg
    argTypes:
    - WeaveTunnelHeader*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 122
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 122
    functionName: WeaveTunnelHeader::DecodeTunnelHeader
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetStart
    - Read8
    - ExitNow
    - PacketBuffer*::Start
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelHeader::DecodeTunnelHeader (WeaveTunnelHeader *tunHeader,\n
      \                                                  PacketBuffer *msg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:162,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:162,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:164,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:164,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:168,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:174,1
    - Dst: IPAddr::WriteAddress
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:177,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:178,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:179,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:183,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - fabricId
    - tunRoutes
    - msg
    argTypes:
    - uint64_t
    - WeaveTunnelRoute*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 187
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 187
    functionName: WeaveTunnelRoute::EncodeFabricTunnelRoutes
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - IPAddr::WriteAddress
    - PacketBuffer*::SetDataLength
    - nl::Weave::Encoding::LittleEndian::Write64
    - Write8
    - VerifyOrExit
    - PacketBuffer*::Start
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelRoute::EncodeFabricTunnelRoutes(uint64_t fabricId,\n                                                       WeaveTunnelRoute
      *tunRoutes,\n                                                       PacketBuffer
      *msg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:213,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:217,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read64
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:222,1
    - Dst: Read8
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:226,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:233,1
    - Dst: nl::Inet::IPAddress::ReadAddress
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:237,1
    - Dst: const_cast<const uint8_t *&>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:237,1
    - Dst: Read8
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:238,1
    - Dst: Read8
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:239,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - fabricId
    - tunRoutes
    - msg
    argTypes:
    - uint64_t*
    - WeaveTunnelRoute*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 247
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 247
    functionName: WeaveTunnelRoute::DecodeFabricTunnelRoutes
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp
    functionUses: 0
    functionsReached:
    - const_cast<const uint8_t *&>
    - nl::Inet::IPAddress::ReadAddress
    - PacketBuffer*::SetStart
    - VerifyOrExit
    - PacketBuffer*::Start
    - nl::Weave::Encoding::LittleEndian::Read64
    - Read8
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelRoute::DecodeFabricTunnelRoutes(uint64_t *fabricId,\n                                                       WeaveTunnelRoute
      *tunRoutes,\n                                                       PacketBuffer
      *msg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelControl::WeaveTunnelControl
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.h:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 367
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 367
    functionName: nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.h
    functionUses: 0
    functionsReached:
    - WeaveTunnelControl::WeaveTunnelControl
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeaveTunnelConnectionMgr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 85
    functionName: WeaveTunnelAgent::WeaveTunnelAgent
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::WeaveTunnelAgent()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:118,1
    - Dst: WeaveTunnelAgent::ConfigureAndInit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 8
    argNames:
    - inet
    - exchMgr
    - dstNodeId
    - authMode
    - svcMgr
    - intfName
    - role
    - appContext
    argTypes:
    - InetLayer*
    - WeaveExchangeManager*
    - uint64_t
    - WeaveAuthMode
    - WeaveServiceManager*
    - char*
    - uint8_t
    - void*
    constantsTouched: []
    func_position:
      end: 126
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 126
    functionName: WeaveTunnelAgent::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelAgent::ConfigureAndInit
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelAgent::Init (InetLayer *inet, WeaveExchangeManager *exchMgr,\n
      \                                   uint64_t dstNodeId, WeaveAuthMode authMode,\n
      \                                   WeaveServiceManager *svcMgr,\n                                    const
      char *intfName, uint8_t role, void *appContext)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelAgent::ConfigureAndInit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - inet
    - exchMgr
    - dstNodeId
    - dstIPAddr
    - authMode
    - intfName
    - role
    - appContext
    argTypes:
    - InetLayer*
    - WeaveExchangeManager*
    - uint64_t
    - IPAddress
    - WeaveAuthMode
    - char*
    - uint8_t
    - void*
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: WeaveTunnelAgent::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelAgent::ConfigureAndInit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelAgent::Init (InetLayer *inet, WeaveExchangeManager *exchMgr,\n
      \                                   uint64_t dstNodeId, IPAddress dstIPAddr,
      WeaveAuthMode authMode,\n                                    const char *intfName,
      uint8_t role, void *appContext)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:181,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:185,1
    - Dst: WeaveTunnelAgent::EnablePrimaryTunnel
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:188,1
    - Dst: WeaveTunnelAgent::DisableBackupTunnel
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:190,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:201,1
    - Dst: strncpy
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:203,1
    - Dst: WeaveTunnelAgent::CreateTunEndPoint
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:209,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:210,1
    - Dst: WeaveTunnelAgent::SetupTunEndPoint
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:212,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:213,1
    - Dst: WeaveTunnelAgent::Init
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:218,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:219,1
    - Dst: WeaveTunnelAgent::Init
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:226,1
    - Dst: WeaveTunnelAgent::Init
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:228,1
    - Dst: WeaveTunnelAgent::Init
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:233,1
    - Dst: EnableShortcutTunneling
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 9
    argNames:
    - inet
    - exchMgr
    - dstNodeId
    - dstIPAddr
    - authMode
    - WeaveServiceManager *svcMgr
    - intfName
    - role
    - appContext
    argTypes:
    - InetLayer*
    - WeaveExchangeManager*
    - uint64_t
    - IPAddress
    - WeaveAuthMode
    - WEAVE_CONFIG_ENABLE_SERVICE_DIRECTORY
    - char*
    - uint8_t
    - void*
    constantsTouched: []
    func_position:
      end: 266
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 266
    functionName: WeaveTunnelAgent::ConfigureAndInit
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 2
    functionsReached:
    - WeaveTunnelAgent::EnablePrimaryTunnel
    - WeaveTunnelAgent::CreateTunEndPoint
    - WeaveTunnelAgent::DisableBackupTunnel
    - strncpy
    - memset
    - WeaveLogDetail
    - SuccessOrExit
    - EnableShortcutTunneling
    - WeaveTunnelAgent::SetupTunEndPoint
    - WeaveTunnelAgent::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelAgent::ConfigureAndInit (InetLayer *inet, WeaveExchangeManager
      *exchMgr,\n                                                uint64_t dstNodeId,
      IPAddress dstIPAddr, WeaveAuthMode authMode,\n#if WEAVE_CONFIG_ENABLE_SERVICE_DIRECTORY\n
      \                                               WeaveServiceManager *svcMgr,\n#endif\n
      \                                               const char *intfName, uint8_t
      role, void *appContext)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetConnectionRepairInfoCallback
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:276,1
    - Dst: SetConnectionRepairInfoCallback
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:281,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - tunType
    - aGetConnectionRepairInfo
    - repairCtxt
    argTypes:
    - TunnelType
    - nl::Weave::WeaveConnection::ConnectionRepairInfoGetterFunct
    - void*
    constantsTouched: []
    func_position:
      end: 288
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 288
    functionName: WeaveTunnelAgent::SetTunnelConnectionRepairInfoCallback
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - SetConnectionRepairInfoCallback
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelAgent::SetTunnelConnectionRepairInfoCallback(TunnelType
      tunType,\n                                                             nl::Weave::WeaveConnection::ConnectionRepairInfoGetterFunct
      aGetConnectionRepairInfo,\n                                                             void
      *repairCtxt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - authMode
    argTypes:
    - WeaveAuthMode
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: WeaveTunnelAgent::SetAuthMode
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::SetAuthMode(const WeaveAuthMode authMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - nodeId
    - ipAddr
    - servicePort
    argTypes:
    - uint64_t
    - IPAddress
    - uint16_t
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: WeaveTunnelAgent::SetDestination
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::SetDestination(const uint64_t nodeId, const IPAddress
      ipAddr, const uint16_t servicePort)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - role
    argTypes:
    - Role
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: WeaveTunnelAgent::SetTunnelingDeviceRole
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::SetTunnelingDeviceRole(const Role role)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetInterfaceName
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - primaryIntfName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: WeaveTunnelAgent::SetPrimaryTunnelInterface
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - SetInterfaceName
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::SetPrimaryTunnelInterface(const char *primaryIntfName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetInterfaceType
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - primaryIntfType
    argTypes:
    - SrcInterfaceType
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: WeaveTunnelAgent::SetPrimaryTunnelInterfaceType
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - SetInterfaceType
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::SetPrimaryTunnelInterfaceType (const SrcInterfaceType
      primaryIntfType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetInterfaceName
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - backupIntfName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 370
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 370
    functionName: WeaveTunnelAgent::SetBackupTunnelInterface
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - SetInterfaceName
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::SetBackupTunnelInterface(const char *backupIntfName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetInterfaceType
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - backupIntfType
    argTypes:
    - SrcInterfaceType
    constantsTouched: []
    func_position:
      end: 380
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 380
    functionName: WeaveTunnelAgent::SetBackupTunnelInterfaceType
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - SetInterfaceType
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::SetBackupTunnelInterfaceType (const SrcInterfaceType
      backupIntfType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 393
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 393
    functionName: WeaveTunnelAgent::GetWeaveTunnelAgentState
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WeaveTunnelAgent::AgentState
    signature: WeaveTunnelAgent::GetWeaveTunnelAgentState(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetTunnelConnection
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 405
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 405
    functionName: WeaveTunnelAgent::GetPrimaryTunnelConnection
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - GetTunnelConnection
    linkageType: ''
    returnType: nl::Weave::WeaveConnection
    signature: '* WeaveTunnelAgent::GetPrimaryTunnelConnection(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelAgent::SetCallbacksForPersistedTunnelConnection
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:411,1
    - Dst: WeaveTunnelAgent::SetCallbacksForPersistedTunnelConnection
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aIsPersistedTunnelSessionPresent
    - aLoadPersistedTunnelSession
    argTypes:
    - WeaveTunnelConnectionMgr::PersistedSecureSessionExistsFunct
    - WeaveTunnelConnectionMgr::LoadPersistedSessionFunct
    constantsTouched: []
    func_position:
      end: 417
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 417
    functionName: WeaveTunnelAgent::SetCallbacksForPersistedTunnelConnection
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 1
    functionsReached:
    - WeaveTunnelAgent::SetCallbacksForPersistedTunnelConnection
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelAgent::SetCallbacksForPersistedTunnelConnection(WeaveTunnelConnectionMgr::PersistedSecureSessionExistsFunct
      aIsPersistedTunnelSessionPresent,\n                                                                WeaveTunnelConnectionMgr::LoadPersistedSessionFunct
      aLoadPersistedTunnelSession)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:432,1
    - Dst: WeaveTunnelAgent::StopServiceTunnel
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:437,1
    - Dst: DisableShortcutTunneling
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:442,1
    - Dst: WeaveTunnelAgent::Shutdown
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:446,1
    - Dst: WeaveTunnelAgent::Shutdown
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:450,1
    - Dst: WeaveTunnelAgent::SetState
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:454,1
    - Dst: WeaveTunnelAgent::TeardownTunEndPoint
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 462
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 462
    functionName: WeaveTunnelAgent::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 1
    functionsReached:
    - WeaveTunnelAgent::StopServiceTunnel
    - WeaveTunnelAgent::SetState
    - WeaveTunnelAgent::Shutdown
    - VerifyOrExit
    - WeaveTunnelAgent::TeardownTunEndPoint
    - DisableShortcutTunneling
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelAgent::Shutdown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResetReconnectBackoff
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - reconnectImmediately
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 479
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 479
    functionName: WeaveTunnelAgent::ResetPrimaryReconnectBackoff
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - ResetReconnectBackoff
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelAgent::ResetPrimaryReconnectBackoff(bool reconnectImmediately)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResetReconnectBackoff
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - reconnectImmediately
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 497
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 497
    functionName: WeaveTunnelAgent::ResetBackupReconnectBackoff
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - ResetReconnectBackoff
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelAgent::ResetBackupReconnectBackoff(bool reconnectImmediately)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigureConnTimeout
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - maxTimeoutSecs
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 517
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 517
    functionName: WeaveTunnelAgent::ConfigurePrimaryTunnelTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - ConfigureConnTimeout
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelAgent::ConfigurePrimaryTunnelTimeout(uint16_t maxTimeoutSecs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigureAndEnableTCPKeepAlive
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keepAliveIntervalSecs
    - maxNumProbes
    argTypes:
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 544
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 544
    functionName: WeaveTunnelAgent::ConfigureAndEnablePrimaryTunnelTCPKeepAlive
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - ConfigureAndEnableTCPKeepAlive
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelAgent::ConfigureAndEnablePrimaryTunnelTCPKeepAlive(uint16_t
      keepAliveIntervalSecs,\n                                                                          uint16_t
      maxNumProbes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigureTunnelLivenessInterval
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - livenessIntervalSecs
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 554
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 554
    functionName: WeaveTunnelAgent::ConfigurePrimaryTunnelLivenessInterval
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - ConfigureTunnelLivenessInterval
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::ConfigurePrimaryTunnelLivenessInterval(uint16_t livenessIntervalSecs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 565
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 565
    functionName: WeaveTunnelAgent::IsPrimaryTunnelEnabled
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: WeaveTunnelAgent::IsPrimaryTunnelEnabled(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 577
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 577
    functionName: WeaveTunnelAgent::EnablePrimaryTunnel
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 1
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::EnablePrimaryTunnel(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 589
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 589
    functionName: WeaveTunnelAgent::DisablePrimaryTunnel
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::DisablePrimaryTunnel(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 602
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 602
    functionName: WeaveTunnelAgent::IsPrimaryTunnelRoutingRestricted
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: WeaveTunnelAgent::IsPrimaryTunnelRoutingRestricted(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 614
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 614
    functionName: WeaveTunnelAgent::IsBackupTunnelEnabled
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: WeaveTunnelAgent::IsBackupTunnelEnabled(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 626
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 626
    functionName: WeaveTunnelAgent::EnableBackupTunnel
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::EnableBackupTunnel(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 638
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 638
    functionName: WeaveTunnelAgent::DisableBackupTunnel
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 1
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::DisableBackupTunnel(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelAgent::StopPrimaryTunnel
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:649,1
    - Dst: WeaveTunnelAgent::EnablePrimaryTunnel
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:651,1
    - Dst: ScheduleConnect
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 656
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 656
    functionName: WeaveTunnelAgent::StartPrimaryTunnel
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - ScheduleConnect
    - WeaveTunnelAgent::EnablePrimaryTunnel
    - WeaveTunnelAgent::StopPrimaryTunnel
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::StartPrimaryTunnel(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelAgent::DisablePrimaryTunnel
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:664,1
    - Dst: ServiceTunnelClose
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 669
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 669
    functionName: WeaveTunnelAgent::StopPrimaryTunnel
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 1
    functionsReached:
    - ServiceTunnelClose
    - WeaveTunnelAgent::DisablePrimaryTunnel
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::StopPrimaryTunnel(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelAgent::StopBackupTunnel
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:678,1
    - Dst: WeaveTunnelAgent::EnableBackupTunnel
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:680,1
    - Dst: ScheduleConnect
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 685
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 685
    functionName: WeaveTunnelAgent::StartBackupTunnel
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelAgent::StopBackupTunnel
    - WeaveTunnelAgent::EnableBackupTunnel
    - ScheduleConnect
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::StartBackupTunnel(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelAgent::DisableBackupTunnel
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:694,1
    - Dst: ServiceTunnelClose
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 697
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 697
    functionName: WeaveTunnelAgent::StopBackupTunnel
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 1
    functionsReached:
    - WeaveTunnelAgent::DisableBackupTunnel
    - ServiceTunnelClose
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::StopBackupTunnel(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:709,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 710
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 710
    functionName: WeaveTunnelAgent::IsBackupTunnelRoutingRestricted
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: WeaveTunnelAgent::IsBackupTunnelRoutingRestricted(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigureConnTimeout
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - maxTimeoutSecs
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 729
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 729
    functionName: WeaveTunnelAgent::ConfigureBackupTunnelTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - ConfigureConnTimeout
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelAgent::ConfigureBackupTunnelTimeout(uint16_t maxTimeoutSecs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigureAndEnableTCPKeepAlive
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keepAliveIntervalSecs
    - maxNumProbes
    argTypes:
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 756
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 756
    functionName: WeaveTunnelAgent::ConfigureAndEnableBackupTunnelTCPKeepAlive
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - ConfigureAndEnableTCPKeepAlive
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelAgent::ConfigureAndEnableBackupTunnelTCPKeepAlive(uint16_t
      keepAliveIntervalSecs,\n                                                                         uint16_t
      maxNumProbes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigureTunnelLivenessInterval
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - livenessIntervalSecs
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 766
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 766
    functionName: WeaveTunnelAgent::ConfigureBackupTunnelLivenessInterval
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - ConfigureTunnelLivenessInterval
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::ConfigureBackupTunnelLivenessInterval(uint16_t livenessIntervalSecs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelAgent::StartServiceTunnel
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 779
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 779
    functionName: WeaveTunnelAgent::StartServiceTunnel
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 1
    functionsReached:
    - WeaveTunnelAgent::StartServiceTunnel
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelAgent::StartServiceTunnel (void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:806,1
    - Dst: ReleaseResourcesAndStopTunnelConn
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:812,1
    - Dst: ReleaseResourcesAndStopTunnelConn
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:815,1
    - Dst: WeaveTunnelAgent::IsPrimaryTunnelEnabled
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:821,1
    - Dst: ScheduleConnect
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:823,1
    - Dst: WeaveTunnelAgent::IsBackupTunnelEnabled
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:827,1
    - Dst: ScheduleConnect
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:829,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - dstNodeId
    - dstIPAddr
    - authMode
    argTypes:
    - uint64_t
    - IPAddress
    - WeaveAuthMode
    constantsTouched: []
    func_position:
      end: 835
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 835
    functionName: WeaveTunnelAgent::StartServiceTunnel
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 1
    functionsReached:
    - VerifyOrExit
    - WeaveTunnelAgent::IsBackupTunnelEnabled
    - ScheduleConnect
    - WeaveTunnelAgent::IsPrimaryTunnelEnabled
    - ReleaseResourcesAndStopTunnelConn
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelAgent::StartServiceTunnel(uint64_t dstNodeId,\n                                                 IPAddress
      dstIPAddr,\n                                                 WeaveAuthMode authMode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelAgent::StopServiceTunnel
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 844
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 844
    functionName: WeaveTunnelAgent::StopServiceTunnel
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 2
    functionsReached:
    - WeaveTunnelAgent::StopServiceTunnel
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::StopServiceTunnel(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelAgent::IsPrimaryTunnelEnabled
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:859,1
    - Dst: ServiceTunnelClose
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:861,1
    - Dst: WeaveTunnelAgent::IsBackupTunnelEnabled
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:865,1
    - Dst: ServiceTunnelClose
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:867,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - err
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 871
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 871
    functionName: WeaveTunnelAgent::StopServiceTunnel
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 2
    functionsReached:
    - WeaveTunnelAgent::IsBackupTunnelEnabled
    - ServiceTunnelClose
    - WeaveTunnelAgent::IsPrimaryTunnelEnabled
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::StopServiceTunnel(WEAVE_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelAgent::IsPrimaryTunnelRoutingRestricted
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:881,1
    - Dst: WeaveTunnelAgent::IsBackupTunnelRoutingRestricted
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 886
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 886
    functionName: WeaveTunnelAgent::IsTunnelRoutingRestricted
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelAgent::IsBackupTunnelRoutingRestricted
    - WeaveTunnelAgent::IsPrimaryTunnelRoutingRestricted
    linkageType: ''
    returnType: bool
    signature: WeaveTunnelAgent::IsTunnelRoutingRestricted(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tunnelStats
    argTypes:
    - WeaveTunnelStatistics
    constantsTouched: []
    func_position:
      end: 902
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 902
    functionName: WeaveTunnelAgent::GetWeaveTunnelStatistics
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelAgent::GetWeaveTunnelStatistics(WeaveTunnelStatistics &tunnelStats)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:908,1
    - Dst: WeaveTunnelAgent::GetAgentStateName
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:908,1
    - Dst: WeaveTunnelAgent::GetAgentStateName
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - toState
    argTypes:
    - AgentState
    constantsTouched: []
    func_position:
      end: 911
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 911
    functionName: WeaveTunnelAgent::SetState
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 1
    functionsReached:
    - WeaveTunnelAgent::GetAgentStateName
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::SetState(AgentState toState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer::Start
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:930,1
    - Dst: ip6_addr_copy
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:935,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:936,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - inMsg
    - outDest
    argTypes:
    - PacketBuffer
    - IPAddress
    constantsTouched: []
    func_position:
      end: 940
      start: 920
    functionDepth: 1
    functionLinenumber: 920
    functionLinenumberEnd: 940
    functionName: WeaveTunnelAgent::ParseDestinationIPAddress
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - ip6_addr_copy
    - nl::Inet::IPAddress::FromIPv6
    - PacketBuffer::Start
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::ParseDestinationIPAddress(const PacketBuffer &inMsg,
      IPAddress &outDest)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint16_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 969
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 969
    functionName: WeaveTunnelAgent::Checksum
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: WeaveTunnelAgent::Checksum(uint16_t *buf, uint16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:983,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1003,1
    - Dst: nl::Weave::Encoding::BigEndian::HostSwap16
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1006,1
    - Dst: nl::Weave::Encoding::BigEndian::HostSwap16
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1007,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1008,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1009,1
    - Dst: WeaveTunnelAgent::Checksum
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1012,1
    - Dst: WeaveTunnelAgent::Checksum
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1014,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1024,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 3
    argNames:
    - inMsg
    - srcAddr
    - destAddr
    argTypes:
    - PacketBuffer*
    - IPAddress
    - IPAddress
    constantsTouched: []
    func_position:
      end: 1032
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 1032
    functionName: WeaveTunnelAgent::ComputeUDPChecksumForIPv6Pkt
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - nl::Weave::Encoding::BigEndian::HostSwap16
    - WeaveTunnelAgent::Checksum
    - memcpy
    - WeaveLogDetail
    - PacketBuffer*::Start
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelAgent::ComputeUDPChecksumForIPv6Pkt(PacketBuffer *inMsg,
      const IPAddress &srcAddr, const IPAddress &destAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1050,1
    - Dst: ip6_addr_copy
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1056,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1057,1
    - Dst: ip6_addr_copy
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1059,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1060,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1062,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1063,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1066,1
    - Dst: IPAddress::GlobalId
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1066,1
    - Dst: IPAddress::InterfaceId
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1066,1
    - Dst: ToIPv6
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1071,1
    - Dst: ToIPv6
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1075,1
    - Dst: ip6_addr_copy
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1076,1
    - Dst: WeaveTunnelAgent::ComputeUDPChecksumForIPv6Pkt
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - inMsg
    - subnetId
    argTypes:
    - PacketBuffer*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1083
      start: 1034
    functionDepth: 2
    functionLinenumber: 1034
    functionLinenumberEnd: 1083
    functionName: WeaveTunnelAgent::ReplaceDestSubnetInAddress
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - IPAddress::InterfaceId
    - ToIPv6
    - IPAddress::GlobalId
    - WeaveTunnelAgent::ComputeUDPChecksumForIPv6Pkt
    - ip6_addr_copy
    - nl::Inet::IPAddress::FromIPv6
    - PacketBuffer*::Start
    - nl::Inet::IPAddress::MakeULA
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelAgent::ReplaceDestSubnetInAddress(PacketBuffer *inMsg, const
      uint16_t subnetId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelAgent *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1102,1
    - Dst: WeaveTunnelAgent*::ParseDestinationIPAddress
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1104,1
    - Dst: WeaveTunnelAgent*::AddTunnelHdrToMsg
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1106,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1107,1
    - Dst: IPAddress::InterfaceId
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1109,1
    - Dst: IPAddress::Subnet
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1111,1
    - Dst: WeaveTunnelAgent*::HandleSendingToService
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1115,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1117,1
    - Dst: IPAddress::Subnet
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1119,1
    - Dst: WeaveTunnelAgent*::DecideAndSendShortcutOrRemoteTunnel
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1126,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1128,1
    - Dst: IPAddress::Subnet
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1131,1
    - Dst: IPAddress::Subnet
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1132,1
    - Dst: WeaveTunnelAgent*::DecideAndSendShortcutOrRemoteTunnel
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1141,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1143,1
    - Dst: IPAddress::Subnet
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1147,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1149,1
    - Dst: WeaveTunnelAgent*::ReplaceDestSubnetInAddress
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1150,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1151,1
    - Dst: WeaveTunnelAgent*::HandleSendingToService
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1153,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1155,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1162,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 2
    argNames:
    - tunEP
    - msg
    argTypes:
    - TunEndPoint*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1171
      start: 1097
    functionDepth: 2
    functionLinenumber: 1097
    functionLinenumberEnd: 1171
    functionName: WeaveTunnelAgent::RecvdFromTunnelEndPoint
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - IPAddress::InterfaceId
    - WeaveTunnelAgent*::HandleSendingToService
    - WeaveTunnelAgent*::DecideAndSendShortcutOrRemoteTunnel
    - nl::Weave::System::PacketBuffer::Free
    - WeaveTunnelAgent*::ReplaceDestSubnetInAddress
    - IPAddress::Subnet
    - WeaveTunnelAgent*::ParseDestinationIPAddress
    - static_cast<WeaveTunnelAgent *>
    - WeaveTunnelAgent*::AddTunnelHdrToMsg
    - SuccessOrExit
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::RecvdFromTunnelEndPoint(TunEndPoint *tunEP, PacketBuffer
      *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelAgent *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1186,1
    - Dst: WeaveTunnelAgent*::HandleTunneledReceive
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - msgLayer
    - msg
    argTypes:
    - WeaveMessageLayer*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1191
      start: 1184
    functionDepth: 0
    functionLinenumber: 1184
    functionLinenumberEnd: 1191
    functionName: WeaveTunnelAgent::RecvdFromShortcutUDPTunnel
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelAgent*::HandleTunneledReceive
    - static_cast<WeaveTunnelAgent *>
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::RecvdFromShortcutUDPTunnel(WeaveMessageLayer *msgLayer,
      PacketBuffer *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - AgentState
    constantsTouched: []
    func_position:
      end: 1209
      start: 1196
    functionDepth: 0
    functionLinenumber: 1196
    functionLinenumberEnd: 1209
    functionName: WeaveTunnelAgent::GetAgentStateName
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*WeaveTunnelAgent::GetAgentStateName(const AgentState state)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HandleOnlineCheckResult
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1226,1
    - Dst: HandleOnlineCheckResult
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - tunType
    - isOnline
    argTypes:
    - TunnelType
    - bool
    constantsTouched: []
    func_position:
      end: 1238
      start: 1221
    functionDepth: 0
    functionLinenumber: 1221
    functionLinenumberEnd: 1238
    functionName: WeaveTunnelAgent::NetworkOnlineCheckResult
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - HandleOnlineCheckResult
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::NetworkOnlineCheckResult(TunnelType tunType, bool
      isOnline)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewTunEndPoint
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1247,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1248,1
    - Dst: WeaveTunnelAgent::Init
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1243
    functionDepth: 2
    functionLinenumber: 1243
    functionLinenumberEnd: 1255
    functionName: WeaveTunnelAgent::CreateTunEndPoint
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 1
    functionsReached:
    - WeaveTunnelAgent::Init
    - NewTunEndPoint
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelAgent::CreateTunEndPoint(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Open
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1265,1
    - Dst: Open
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1267,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1269,1
    - Dst: IsInterfaceUp
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1271,1
    - Dst: InterfaceUp
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1275,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1276,1
    - Dst: nl::Weave::Warm::Profiles::WeaveTunnel::Platform::TunnelInterfaceUp
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1282,1
    - Dst: GetTunnelInterfaceId
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1282,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1260
    functionDepth: 1
    functionLinenumber: 1260
    functionLinenumberEnd: 1292
    functionName: WeaveTunnelAgent::SetupTunEndPoint
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 1
    functionsReached:
    - InterfaceUp
    - IsInterfaceUp
    - nl::Weave::Warm::Profiles::WeaveTunnel::Platform::TunnelInterfaceUp
    - GetTunnelInterfaceId
    - SuccessOrExit
    - Open
    - Free
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelAgent::SetupTunEndPoint(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::Profiles::WeaveTunnel::Platform::TunnelInterfaceDown
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1306,1
    - Dst: GetTunnelInterfaceId
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1306,1
    - Dst: IsInterfaceUp
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1308,1
    - Dst: InterfaceDown
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1312,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1297
    functionDepth: 1
    functionLinenumber: 1297
    functionLinenumberEnd: 1321
    functionName: WeaveTunnelAgent::TeardownTunEndPoint
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Warm::Profiles::WeaveTunnel::Platform::TunnelInterfaceDown
    - IsInterfaceUp
    - GetTunnelInterfaceId
    - InterfaceDown
    - Free
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelAgent::TeardownTunEndPoint(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - msgInfo
    - connMgr
    argTypes:
    - WeaveMessageInfo*
    - WeaveTunnelConnectionMgr*
    constantsTouched: []
    func_position:
      end: 1345
      start: 1326
    functionDepth: 0
    functionLinenumber: 1326
    functionLinenumberEnd: 1345
    functionName: WeaveTunnelAgent::PopulateTunnelMsgHeader
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelAgent::PopulateTunnelMsgHeader(WeaveMessageInfo *msgInfo,\n
      \                                              const WeaveTunnelConnectionMgr
      *connMgr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::EnsureReservedSize
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1357,1
    - Dst: WeaveTunnelHeader::EncodeTunnelHeader
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - msg
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1368
      start: 1350
    functionDepth: 1
    functionLinenumber: 1350
    functionLinenumberEnd: 1368
    functionName: WeaveTunnelAgent::AddTunnelHdrToMsg
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::EnsureReservedSize
    - WeaveTunnelHeader::EncodeTunnelHeader
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelAgent::AddTunnelHdrToMsg(PacketBuffer *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OnTunneledPacketTransit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1384,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1390,1
    - Dst: WeaveTunnelConnectionMgr*::mServiceCon::SendTunneledMessage
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1391,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1392,1
    - Dst: WeaveTunnelAgent::UpdateOutboundMessageStatistics
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1395,1
    - Dst: WeaveTunnelAgent::RestartTunnelLivenessTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 6
    argNames:
    - connMgr
    - pktDir
    - tunType
    - msgInfo
    - msg
    - dropPacket
    argTypes:
    - WeaveTunnelConnectionMgr*
    - TunnelPktDirection
    - TunnelType
    - WeaveMessageInfo*
    - PacketBuffer*
    - bool
    constantsTouched: []
    func_position:
      end: 1420
      start: 1370
    functionDepth: 1
    functionLinenumber: 1370
    functionLinenumberEnd: 1420
    functionName: WeaveTunnelAgent::SendMessageUponPktTransitAnalysis
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - OnTunneledPacketTransit
    - WeaveTunnelAgent::UpdateOutboundMessageStatistics
    - WeaveTunnelAgent::RestartTunnelLivenessTimer
    - SuccessOrExit
    - WeaveTunnelConnectionMgr*::mServiceCon::SendTunneledMessage
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelAgent::SendMessageUponPktTransitAnalysis(const WeaveTunnelConnectionMgr
      *connMgr,\n                                                                TunnelPktDirection
      pktDir,\n                                                                TunnelType
      tunType,\n                                                                WeaveMessageInfo
      *msgInfo,\n                                                                PacketBuffer
      *msg,\n                                                                bool
      &dropPacket)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveMessageInfo::Clear
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1431,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1441,1
    - Dst: WeaveTunnelAgent::EnQueuePacket
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1442,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1449,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1455,1
    - Dst: WeaveTunnelAgent::PopulateTunnelMsgHeader
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1464,1
    - Dst: WeaveTunnelAgent::SendMessageUponPktTransitAnalysis
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1466,1
    - Dst: WeaveTunnelAgent::PopulateTunnelMsgHeader
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1472,1
    - Dst: WeaveTunnelAgent::SendMessageUponPktTransitAnalysis
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1474,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1492,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - msg
    - shouldCapture
    argTypes:
    - PacketBuffer*
    - bool
    constantsTouched: []
    func_position:
      end: 1496
      start: 1425
    functionDepth: 2
    functionLinenumber: 1425
    functionLinenumberEnd: 1496
    functionName: WeaveTunnelAgent::HandleSendingToService
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelAgent::SendMessageUponPktTransitAnalysis
    - nl::Weave::System::PacketBuffer::Free
    - WeaveTunnelAgent::EnQueuePacket
    - ExitNow
    - WeaveMessageInfo::Clear
    - WeaveLogDetail
    - WeaveTunnelAgent::PopulateTunnelMsgHeader
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelAgent::HandleSendingToService(PacketBuffer *msg, const bool
      shouldCapture)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsPeerInShortcutTunnelCache
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1510,1
    - Dst: WeaveTunnelAgent::PopulateTunnelMsgHeader
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1514,1
    - Dst: OnTunneledPacketTransit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1520,1
    - Dst: SendMessageOverTunnelShortcut
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1528,1
    - Dst: WeaveTunnelAgent::HandleSendingToService
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1537,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1543,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - peerId
    - msg
    argTypes:
    - uint64_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1552
      start: 1501
    functionDepth: 3
    functionLinenumber: 1501
    functionLinenumberEnd: 1552
    functionName: WeaveTunnelAgent::DecideAndSendShortcutOrRemoteTunnel
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - IsPeerInShortcutTunnelCache
    - OnTunneledPacketTransit
    - nl::Weave::System::PacketBuffer::Free
    - SendMessageOverTunnelShortcut
    - WeaveTunnelAgent::HandleSendingToService
    - WeaveTunnelAgent::PopulateTunnelMsgHeader
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelAgent::DecideAndSendShortcutOrRemoteTunnel(uint64_t peerId,
      PacketBuffer *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelAgent::GetCommonTunnelStatistics
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1569,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1573,1
    - Dst: OnTunneledPacketTransit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1583,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1588,1
    - Dst: WeaveTunnelHeader::DecodeTunnelHeader
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1594,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1595,1
    - Dst: WeaveTunnelAgent::ParseDestinationIPAddress
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1597,1
    - Dst: IPAddress::Subnet
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1603,1
    - Dst: IPAddress::Subnet
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1604,1
    - Dst: IPAddress::Subnet
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1605,1
    - Dst: Send
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1607,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1615,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1616,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - msg
    - tunType
    argTypes:
    - PacketBuffer*
    - TunnelType
    constantsTouched: []
    func_position:
      end: 1624
      start: 1558
    functionDepth: 2
    functionLinenumber: 1558
    functionLinenumberEnd: 1624
    functionName: WeaveTunnelAgent::HandleTunneledReceive
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - WeaveTunnelHeader::DecodeTunnelHeader
    - OnTunneledPacketTransit
    - nl::Weave::System::PacketBuffer::Free
    - WeaveLogProgress
    - ExitNow
    - IPAddress::Subnet
    - SuccessOrExit
    - Send
    - WeaveTunnelAgent::ParseDestinationIPAddress
    - WeaveTunnelAgent::GetCommonTunnelStatistics
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelAgent::HandleTunneledReceive(PacketBuffer *msg, TunnelType
      tunType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - tunType
    argTypes:
    - TunnelType
    constantsTouched: []
    func_position:
      end: 1647
      start: 1627
    functionDepth: 0
    functionLinenumber: 1627
    functionLinenumberEnd: 1647
    functionName: WeaveTunnelAgent::GetCommonTunnelStatistics
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WeaveTunnelCommonStatistics
    signature: '*WeaveTunnelAgent::GetCommonTunnelStatistics(const TunnelType tunType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelAgent::GetCommonTunnelStatistics
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tunType
    - msgLen
    argTypes:
    - TunnelType
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1661
      start: 1649
    functionDepth: 1
    functionLinenumber: 1649
    functionLinenumberEnd: 1661
    functionName: WeaveTunnelAgent::UpdateOutboundMessageStatistics
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 1
    functionsReached:
    - WeaveTunnelAgent::GetCommonTunnelStatistics
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::UpdateOutboundMessageStatistics(const TunnelType
      tunType, const uint64_t msgLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelAgent::GetCommonTunnelStatistics
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1667,1
    - Dst: WeaveTunnelAgent::GetTimeMsec
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - tunType
    - conErr
    argTypes:
    - TunnelType
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1675
      start: 1663
    functionDepth: 1
    functionLinenumber: 1663
    functionLinenumberEnd: 1675
    functionName: WeaveTunnelAgent::UpdateTunnelDownStatistics
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelAgent::GetTimeMsec
    - WeaveTunnelAgent::GetCommonTunnelStatistics
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::UpdateTunnelDownStatistics(const TunnelType tunType,
      const WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1685,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1686,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1694,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1709
      start: 1681
    functionDepth: 0
    functionLinenumber: 1681
    functionLinenumberEnd: 1709
    functionName: WeaveTunnelAgent::EnQueuePacket
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 1
    functionsReached:
    - WEAVE_FAULT_INJECT
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelAgent::EnQueuePacket(PacketBuffer *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelAgent::DeQueuePacket
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1717,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1711
    functionDepth: 2
    functionLinenumber: 1711
    functionLinenumberEnd: 1730
    functionName: WeaveTunnelAgent::DumpQueuedMessages
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelAgent::DeQueuePacket
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::DumpQueuedMessages(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1735
    functionDepth: 0
    functionLinenumber: 1735
    functionLinenumberEnd: 1753
    functionName: WeaveTunnelAgent::DeQueuePacket
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PacketBuffer
    signature: '*WeaveTunnelAgent::DeQueuePacket(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelAgent::DeQueuePacket
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1765,1
    - Dst: WeaveTunnelAgent::PopulateTunnelMsgHeader
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1768,1
    - Dst: WeaveTunnelAgent::SendMessageUponPktTransitAnalysis
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1773,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1787,1
    - Dst: WeaveTunnelAgent::UpdateOutboundMessageStatistics
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1792,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1792,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - connMgr
    argTypes:
    - WeaveTunnelConnectionMgr*
    constantsTouched: []
    func_position:
      end: 1800
      start: 1759
    functionDepth: 2
    functionLinenumber: 1759
    functionLinenumberEnd: 1800
    functionName: WeaveTunnelAgent::SendQueuedMessages
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - WeaveTunnelAgent::SendMessageUponPktTransitAnalysis
    - nl::Weave::System::PacketBuffer::Free
    - WeaveTunnelAgent::UpdateOutboundMessageStatistics
    - WeaveTunnelAgent::DeQueuePacket
    - WeaveTunnelAgent::PopulateTunnelMsgHeader
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::SendQueuedMessages(const WeaveTunnelConnectionMgr
      *connMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelAgent::WeaveTunnelUpNotifyAndSetState
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1818,1
    - Dst: WeaveTunnelAgent::GetTimeMsec
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1825,1
    - Dst: WeaveTunnelAgent::WeaveTunnelUpNotifyAndSetState
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1832,1
    - Dst: WeaveTunnelAgent::GetTimeMsec
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1839,1
    - Dst: WeaveTunnelAgent::WeaveTunnelUpNotifyAndSetState
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1850,1
    - Dst: WeaveTunnelAgent::WeaveTunnelUpNotifyAndSetState
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1860,1
    - Dst: WeaveTunnelAgent::GetTimeMsec
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1867,1
    - Dst: WeaveTunnelAgent::WeaveTunnelUpNotifyAndSetState
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1880,1
    - Dst: WeaveTunnelAgent::GetTimeMsec
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1887,1
    - Dst: WeaveTunnelAgent::WeaveTunnelUpNotifyAndSetState
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1893,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - msgInfo
    - connMgr
    - isRoutingRestricted
    argTypes:
    - WeaveMessageInfo*
    - WeaveTunnelConnectionMgr*
    - bool
    constantsTouched: []
    func_position:
      end: 1909
      start: 1805
    functionDepth: 1
    functionLinenumber: 1805
    functionLinenumberEnd: 1909
    functionName: WeaveTunnelAgent::WeaveTunnelUp
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelAgent::WeaveTunnelUpNotifyAndSetState
    - WeaveTunnelAgent::GetTimeMsec
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelAgent::WeaveTunnelUp(const WeaveMessageInfo *msgInfo,\n
      \                                    const WeaveTunnelConnectionMgr *connMgr,\n
      \                                    const bool isRoutingRestricted)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OnServiceTunStatusNotify
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1920,1
    - Dst: OnServiceTunStatusNotify
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1925,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - connMgr
    argTypes:
    - WeaveTunnelConnectionMgr*
    constantsTouched: []
    func_position:
      end: 1930
      start: 1914
    functionDepth: 0
    functionLinenumber: 1914
    functionLinenumberEnd: 1930
    functionName: WeaveTunnelAgent::WeaveTunnelConnectionEstablishedNotify
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - OnServiceTunStatusNotify
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::WeaveTunnelConnectionEstablishedNotify(const WeaveTunnelConnectionMgr
      *connMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OnServiceTunStatusNotify
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1941,1
    - Dst: OnServiceTunStatusNotify
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - connMgr
    - conErr
    argTypes:
    - WeaveTunnelConnectionMgr*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1950
      start: 1935
    functionDepth: 0
    functionLinenumber: 1935
    functionLinenumberEnd: 1950
    functionName: WeaveTunnelAgent::WeaveTunnelConnectionErrorNotify
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - OnServiceTunStatusNotify
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::WeaveTunnelConnectionErrorNotify(const WeaveTunnelConnectionMgr
      *connMgr, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OnServiceTunTCPIdleNotify
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1960,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - tunType
    - isIdle
    argTypes:
    - TunnelType
    - bool
    constantsTouched: []
    func_position:
      end: 1962
      start: 1956
    functionDepth: 0
    functionLinenumber: 1956
    functionLinenumberEnd: 1962
    functionName: WeaveTunnelAgent::WeaveTunnelNotifyTCPSendIdleStateChange
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - OnServiceTunTCPIdleNotify
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::WeaveTunnelNotifyTCPSendIdleStateChange(const TunnelType
      tunType, const bool isIdle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OnServiceTunReconnectNotify
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - connMgr
    - reconnectHost
    - reconnectPort
    argTypes:
    - WeaveTunnelConnectionMgr*
    - char*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1975
      start: 1965
    functionDepth: 0
    functionLinenumber: 1965
    functionLinenumberEnd: 1975
    functionName: WeaveTunnelAgent::WeaveTunnelServiceReconnectRequested
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - OnServiceTunReconnectNotify
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelAgent::WeaveTunnelServiceReconnectRequested(const WeaveTunnelConnectionMgr
      *connMgr,\n                                                            const
      char *reconnectHost,\n                                                            const
      uint16_t reconnectPort)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelAgent::WeaveTunnelDownNotifyAndSetState
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1988,1
    - Dst: WeaveTunnelAgent::WeaveTunnelDownNotifyAndSetState
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1997,1
    - Dst: WeaveTunnelAgent::UpdateTunnelDownStatistics
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:1999,1
    - Dst: WeaveTunnelAgent::GetTimeMsec
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2002,1
    - Dst: WeaveTunnelAgent::WeaveTunnelDownNotifyAndSetState
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2015,1
    - Dst: WeaveTunnelAgent::UpdateTunnelDownStatistics
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2017,1
    - Dst: WeaveTunnelAgent::GetTimeMsec
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2020,1
    - Dst: WeaveTunnelAgent::WeaveTunnelModeChangeNotifyAndSetState
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2034,1
    - Dst: WeaveTunnelAgent::UpdateTunnelDownStatistics
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2040,1
    - Dst: WeaveTunnelAgent::GetTimeMsec
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2042,1
    - Dst: WeaveTunnelAgent::WeaveTunnelModeChangeNotifyAndSetState
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2050,1
    - Dst: WeaveTunnelAgent::UpdateTunnelDownStatistics
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2055,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - connMgr
    - conErr
    argTypes:
    - WeaveTunnelConnectionMgr*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 2065
      start: 1980
    functionDepth: 2
    functionLinenumber: 1980
    functionLinenumberEnd: 2065
    functionName: WeaveTunnelAgent::WeaveTunnelConnectionDown
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelAgent::WeaveTunnelDownNotifyAndSetState
    - WeaveTunnelAgent::WeaveTunnelModeChangeNotifyAndSetState
    - WeaveTunnelAgent::UpdateTunnelDownStatistics
    - WeaveTunnelAgent::GetTimeMsec
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::WeaveTunnelConnectionDown(const WeaveTunnelConnectionMgr
      *connMgr, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::Profiles::WeaveTunnel::Platform::DisableBorderRouting
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2072
      start: 2067
    functionDepth: 1
    functionLinenumber: 2067
    functionLinenumberEnd: 2072
    functionName: WeaveTunnelAgent::DisableBorderRouting
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::Profiles::WeaveTunnel::Platform::DisableBorderRouting
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::DisableBorderRouting(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelAgent::SetState
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2078,1
    - Dst: nl::Weave::Warm::Profiles::WeaveTunnel::Platform::ServiceTunnelDisconnected
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2082,1
    - Dst: GetTunnelInterfaceId
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2082,1
    - Dst: WeaveTunnelAgent::DisableBorderRouting
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2084,1
    - Dst: WeaveTunnelAgent::DumpQueuedMessages
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2088,1
    - Dst: OnServiceTunStatusNotify
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2094,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - conErr
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 2096
      start: 2074
    functionDepth: 3
    functionLinenumber: 2074
    functionLinenumberEnd: 2096
    functionName: WeaveTunnelAgent::WeaveTunnelDownNotifyAndSetState
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 1
    functionsReached:
    - WeaveTunnelAgent::SetState
    - WeaveTunnelAgent::DisableBorderRouting
    - OnServiceTunStatusNotify
    - WeaveTunnelAgent::DumpQueuedMessages
    - GetTunnelInterfaceId
    - nl::Weave::Warm::Profiles::WeaveTunnel::Platform::ServiceTunnelDisconnected
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::WeaveTunnelDownNotifyAndSetState(WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2110,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2114,1
    - Dst: nl::Weave::Warm::Profiles::WeaveTunnel::Platform::DisableBorderRouting
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2130,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2134,1
    - Dst: nl::Weave::Warm::Profiles::WeaveTunnel::Platform::EnableBorderRouting
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2140,1
    - Dst: nl::Weave::Warm::Profiles::WeaveTunnel::Platform::ServiceTunnelEstablished
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2150,1
    - Dst: GetTunnelInterfaceId
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2150,1
    - Dst: nl::Weave::Warm::Profiles::WeaveTunnel::Platform::ServiceTunnelModeChange
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2158,1
    - Dst: GetTunnelInterfaceId
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2158,1
    - Dst: WeaveTunnelAgent::SetState
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2164,1
    - Dst: WeaveTunnelAgent::SendQueuedMessages
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2176,1
    - Dst: OnServiceTunStatusNotify
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2183,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 5
    argNames:
    - state
    - tunMode
    - notifyReason
    - connMgr
    - isRoutingRestricted
    argTypes:
    - AgentState
    - Platform::TunnelAvailabilityMode
    - WeaveTunnelConnectionMgr::TunnelConnNotifyReasons
    - WeaveTunnelConnectionMgr*
    - bool
    constantsTouched: []
    func_position:
      end: 2186
      start: 2098
    functionDepth: 3
    functionLinenumber: 2098
    functionLinenumberEnd: 2186
    functionName: WeaveTunnelAgent::WeaveTunnelUpNotifyAndSetState
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 1
    functionsReached:
    - WeaveTunnelAgent::SetState
    - nl::Weave::Warm::Profiles::WeaveTunnel::Platform::DisableBorderRouting
    - nl::Weave::Warm::Profiles::WeaveTunnel::Platform::EnableBorderRouting
    - OnServiceTunStatusNotify
    - nl::Weave::Warm::Profiles::WeaveTunnel::Platform::ServiceTunnelEstablished
    - GetTunnelInterfaceId
    - SetFlag
    - WeaveLogDetail
    - nl::Weave::Warm::Profiles::WeaveTunnel::Platform::ServiceTunnelModeChange
    - WeaveTunnelAgent::SendQueuedMessages
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelAgent::WeaveTunnelUpNotifyAndSetState(AgentState state,\n
      \                                                     Platform::TunnelAvailabilityMode
      tunMode,\n                                                      WeaveTunnelConnectionMgr::TunnelConnNotifyReasons
      notifyReason,\n                                                      WeaveTunnelConnectionMgr
      *connMgr,\n                                                      const bool
      isRoutingRestricted)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelAgent::SetState
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2196,1
    - Dst: nl::Weave::Warm::Profiles::WeaveTunnel::Platform::ServiceTunnelModeChange
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2200,1
    - Dst: GetTunnelInterfaceId
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2200,1
    - Dst: OnServiceTunStatusNotify
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - state
    - tunMode
    - notifyReason
    - conErr
    argTypes:
    - AgentState
    - Platform::TunnelAvailabilityMode
    - WeaveTunnelConnectionMgr::TunnelConnNotifyReasons
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 2209
      start: 2189
    functionDepth: 2
    functionLinenumber: 2189
    functionLinenumberEnd: 2209
    functionName: WeaveTunnelAgent::WeaveTunnelModeChangeNotifyAndSetState
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Warm::Profiles::WeaveTunnel::Platform::ServiceTunnelModeChange
    - WeaveTunnelAgent::SetState
    - OnServiceTunStatusNotify
    - GetTunnelInterfaceId
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelAgent::WeaveTunnelModeChangeNotifyAndSetState(AgentState
      state,\n                                                              Platform::TunnelAvailabilityMode
      tunMode,\n                                                              WeaveTunnelConnectionMgr::TunnelConnNotifyReasons
      notifyReason,\n                                                              WEAVE_ERROR
      conErr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RestartLivenessTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2218,1
    - Dst: RestartLivenessTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2223,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - tunType
    argTypes:
    - TunnelType
    constantsTouched: []
    func_position:
      end: 2229
      start: 2213
    functionDepth: 0
    functionLinenumber: 2213
    functionLinenumberEnd: 2229
    functionName: WeaveTunnelAgent::RestartTunnelLivenessTimer
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 1
    functionsReached:
    - RestartLivenessTimer
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::RestartTunnelLivenessTimer(TunnelType tunType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OnServiceTunStatusNotify
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2238,1
    - Dst: OnServiceTunStatusNotify
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2243,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - tunType
    - err
    argTypes:
    - TunnelType
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 2250
      start: 2231
    functionDepth: 0
    functionLinenumber: 2231
    functionLinenumberEnd: 2250
    functionName: WeaveTunnelAgent::NotifyTunnelLiveness
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 0
    functionsReached:
    - OnServiceTunStatusNotify
    linkageType: ''
    returnType: void
    signature: WeaveTunnelAgent::NotifyTunnelLiveness(TunnelType tunType, WEAVE_ERROR
      err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Layer::GetClock_RealTimeMS
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2266,1
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp:2269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2272
      start: 2261
    functionDepth: 1
    functionLinenumber: 2261
    functionLinenumberEnd: 2272
    functionName: WeaveTunnelAgent::GetTimeMsec
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::System::Layer::GetClock_RealTimeMS
    - nl::Weave::System::Layer::GetClock_MonotonicMS
    linkageType: ''
    returnType: uint64_t
    signature: WeaveTunnelAgent::GetTimeMsec(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 277
    functionName: nl::Weave::Profiles::WeaveTunnel::WeaveTunnelControl
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeaveTunnelControl
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 58
    functionName: WeaveTunnelControl::WeaveTunnelControl
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveTunnelControl::WeaveTunnelControl(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:77,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:85,1
    - Dst: mExchangeMgr::RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:87,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - tunAgent
    - statusRcvd
    argTypes:
    - WeaveTunnelAgent*
    - TunnelStatusRcvdFunct
    constantsTouched: []
    func_position:
      end: 94
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 94
    functionName: WeaveTunnelControl::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - mExchangeMgr::RegisterUnsolicitedMessageHandler
    - VerifyOrExit
    - memset
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelControl::Init(WeaveTunnelAgent *tunAgent,\n                                     TunnelStatusRcvdFunct
      statusRcvd)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelControl::Close
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:108,1
    - Dst: WeaveTunnelControl::Close
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:114,1
    - Dst: mExchangeMgr::UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:119,1
    - Dst: WeaveTunnelControl::Free
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 125
    functionName: WeaveTunnelControl::Close
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 1
    functionsReached:
    - WeaveTunnelControl::Close
    - mExchangeMgr::UnregisterUnsolicitedMessageHandler
    - WeaveTunnelControl::Free
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelControl::Close(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelControl::SendTunnelMessage
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conMgr
    - tunRoutes
    argTypes:
    - WeaveTunnelConnectionMgr*
    - WeaveTunnelRoute*
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: WeaveTunnelControl::SendTunnelOpen
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelControl::SendTunnelMessage
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelControl::SendTunnelOpen(WeaveTunnelConnectionMgr *conMgr,\n
      \                                              WeaveTunnelRoute *tunRoutes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelControl::SendTunnelMessage
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conMgr
    argTypes:
    - WeaveTunnelConnectionMgr*
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: WeaveTunnelControl::SendTunnelClose
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelControl::SendTunnelMessage
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelControl::SendTunnelClose (WeaveTunnelConnectionMgr *conMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelControl::SendTunnelMessage
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conMgr
    - tunRoutes
    argTypes:
    - WeaveTunnelConnectionMgr*
    - WeaveTunnelRoute*
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: WeaveTunnelControl::SendTunnelRouteUpdate
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelControl::SendTunnelMessage
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelControl::SendTunnelRouteUpdate(WeaveTunnelConnectionMgr
      *conMgr,\n                                                      WeaveTunnelRoute
      *tunRoutes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelControl::SendTunnelMessage
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conMgr
    argTypes:
    - WeaveTunnelConnectionMgr*
    constantsTouched: []
    func_position:
      end: 188
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 188
    functionName: WeaveTunnelControl::SendTunnelLiveness
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelControl::SendTunnelMessage
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelControl::SendTunnelLiveness(WeaveTunnelConnectionMgr *conMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveFabricIdToIPv6GlobalId
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:204,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:207,1
    - Dst: WeaveNodeIdToIPv6InterfaceId
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:208,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:212,1
    - Dst: WeaveNodeIdToIPv6InterfaceId
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:213,1
    - Dst: mInet::GetInterfaceFromAddr
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - sendIntfId
    argTypes:
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 218
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 218
    functionName: WeaveTunnelControl::GetSendInterfaceIdForBroadcast
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - WeaveFabricIdToIPv6GlobalId
    - mInet::GetInterfaceFromAddr
    - WeaveNodeIdToIPv6InterfaceId
    - nl::Inet::IPAddress::MakeULA
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelControl::GetSendInterfaceIdForBroadcast (InterfaceId &sendIntfId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:231,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:233,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:235,1
    - Dst: mExchangeMgr::NewContext
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:238,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:240,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:245,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:246,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:247,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:249,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:252,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:257,1
    - Dst: WeaveTunnelControl::Close
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 3
    argNames:
    - shortcutTunAdvMsgType
    - sendIntfId
    - localAddrIdentifier
    argTypes:
    - TunnelCtrlMsgType
    - InterfaceId
    - uint64_t
    constantsTouched: []
    func_position:
      end: 267
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 267
    functionName: WeaveTunnelControl::SendShortcutTunnelAdvertiseMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - PacketBuffer*::SetDataLength
    - WeaveTunnelControl::Close
    - nl::Weave::Encoding::LittleEndian::Write64
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - SuccessOrExit
    - PacketBuffer*::Start
    - mExchangeMgr::NewContext
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelControl::SendShortcutTunnelAdvertiseMessage (TunnelCtrlMsgType
      shortcutTunAdvMsgType,\n                                                                    InterfaceId
      sendIntfId,\n                                                                    uint64_t
      localAddrIdentifier)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelControl::GetSendInterfaceIdForBroadcast
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:281,1
    - Dst: WeaveTunnelControl::SendShortcutTunnelAdvertiseMessage
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 290
      start: 274
    functionDepth: 4
    functionLinenumber: 274
    functionLinenumberEnd: 290
    functionName: WeaveTunnelControl::SendBorderRouterAdvertise
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelControl::GetSendInterfaceIdForBroadcast
    - WeaveTunnelControl::SendShortcutTunnelAdvertiseMessage
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelControl::SendBorderRouterAdvertise (void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelControl::GetSendInterfaceIdForBroadcast
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:303,1
    - Dst: WeaveTunnelControl::SendShortcutTunnelAdvertiseMessage
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 312
      start: 297
    functionDepth: 4
    functionLinenumber: 297
    functionLinenumberEnd: 312
    functionName: WeaveTunnelControl::SendMobileClientAdvertise
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelControl::GetSendInterfaceIdForBroadcast
    - WeaveTunnelControl::SendShortcutTunnelAdvertiseMessage
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelControl::SendMobileClientAdvertise (void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelControl *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:337,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:342,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:345,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read64
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:346,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:355,1
    - Dst: WeaveTunnelControl*::UpdateOrAddTunnelPeerEntry
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:358,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:366,1
    - Dst: WeaveTunnelControl*::UpdateOrAddTunnelPeerEntry
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:369,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:379,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:382,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 386
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 386
    functionName: WeaveTunnelControl::HandleShortcutTunnelAdvertiseMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - static_cast<WeaveTunnelControl *>
    - nl::Weave::System::PacketBuffer::Free
    - WeaveTunnelControl*::UpdateOrAddTunnelPeerEntry
    - ExchangeContext*::Close
    - ExitNow
    - PacketBuffer*::Start
    - nl::Weave::Encoding::LittleEndian::Read64
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelControl::HandleShortcutTunnelAdvertiseMessage (ExchangeContext
      *ec, const IPPacketInfo *pktInfo,\n                                                               const
      WeaveMessageInfo *msgInfo, uint32_t profileId,\n                                                               uint8_t
      msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelControl::FindTunnelPeerEntry
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - peerId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 409
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 409
    functionName: WeaveTunnelControl::IsPeerInShortcutTunnelCache
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelControl::FindTunnelPeerEntry
    linkageType: ''
    returnType: bool
    signature: WeaveTunnelControl::IsPeerInShortcutTunnelCache(uint64_t peerId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelControl::RegisterShortcutTunnelAdvHandlers
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:419,1
    - Dst: WeaveTunnelControl::StartShortcutTunnelAdvertisementsFromBorderRouter
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:423,1
    - Dst: WeaveTunnelControl::StartShortcutTunnelAdvertisementsFromMobileClient
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:427,1
    - Dst: WeaveTunnelControl::StartNextHopTableMonitor
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 431
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 431
    functionName: WeaveTunnelControl::EnableShortcutTunneling
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelControl::StartNextHopTableMonitor
    - WeaveTunnelControl::RegisterShortcutTunnelAdvHandlers
    - WeaveTunnelControl::StartShortcutTunnelAdvertisementsFromMobileClient
    - WeaveTunnelControl::StartShortcutTunnelAdvertisementsFromBorderRouter
    linkageType: ''
    returnType: void
    signature: WeaveTunnelControl::EnableShortcutTunneling (void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelControl::UnregisterShortcutTunnelAdvHandlers
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:440,1
    - Dst: WeaveTunnelControl::StopShortcutTunnelAdvertisementsFromBorderRouter
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:444,1
    - Dst: WeaveTunnelControl::StopShortcutTunnelAdvertisementsFromMobileClient
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:448,1
    - Dst: WeaveTunnelControl::StopNextHopTableMonitor
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 452
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 452
    functionName: WeaveTunnelControl::DisableShortcutTunneling
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelControl::StopShortcutTunnelAdvertisementsFromBorderRouter
    - WeaveTunnelControl::StopShortcutTunnelAdvertisementsFromMobileClient
    - WeaveTunnelControl::StopNextHopTableMonitor
    - WeaveTunnelControl::UnregisterShortcutTunnelAdvHandlers
    linkageType: ''
    returnType: void
    signature: WeaveTunnelControl::DisableShortcutTunneling (void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelControl::FindTunnelPeerEntry
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:464,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:466,1
    - Dst: mExchangeMgr::MessageLayer::SendUDPTunneledMessage
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:472,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - peerId
    - msgInfo
    - msg
    argTypes:
    - uint64_t
    - WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 488
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 488
    functionName: WeaveTunnelControl::SendMessageOverTunnelShortcut
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - mExchangeMgr::MessageLayer::SendUDPTunneledMessage
    - WeaveTunnelControl::FindTunnelPeerEntry
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelControl::SendMessageOverTunnelShortcut(uint64_t peerId,\n
      \                                                             WeaveMessageInfo
      *msgInfo,\n                                                              PacketBuffer
      *msg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelControl *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:494,1
    - Dst: WeaveTunnelControl*::SendBorderRouterAdvertise
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:498,1
    - Dst: WeaveTunnelControl*::mTunnelAgent::mExchangeMgr::MessageLayer::Inet::StartTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:502,1
    - Dst: VerifyOrDieWithMsg
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - inetLayer
    - appState
    - err
    argTypes:
    - InetLayer*
    - void*
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 505
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 505
    functionName: WeaveTunnelControl::BorderRouterAdvTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - static_cast<WeaveTunnelControl *>
    - VerifyOrDieWithMsg
    - WeaveTunnelControl*::mTunnelAgent::mExchangeMgr::MessageLayer::Inet::StartTimer
    - WeaveTunnelControl*::SendBorderRouterAdvertise
    linkageType: ''
    returnType: void
    signature: WeaveTunnelControl::BorderRouterAdvTimeout (InetLayer *inetLayer, void
      *appState, INET_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelControl *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:511,1
    - Dst: WeaveTunnelControl*::SendMobileClientAdvertise
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:515,1
    - Dst: WeaveTunnelControl*::mTunnelAgent::mExchangeMgr::MessageLayer::Inet::StartTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:519,1
    - Dst: VerifyOrDieWithMsg
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - inetLayer
    - appState
    - err
    argTypes:
    - InetLayer*
    - void*
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 522
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 522
    functionName: WeaveTunnelControl::MobileClientAdvTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - static_cast<WeaveTunnelControl *>
    - WeaveTunnelControl*::SendMobileClientAdvertise
    - VerifyOrDieWithMsg
    - WeaveTunnelControl*::mTunnelAgent::mExchangeMgr::MessageLayer::Inet::StartTimer
    linkageType: ''
    returnType: void
    signature: WeaveTunnelControl::MobileClientAdvTimeout (InetLayer *inetLayer, void
      *appState, INET_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelControl *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:528,1
    - Dst: WeaveTunnelControl*::FreeNextHopEntry
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:540,1
    - Dst: WeaveTunnelControl*::mTunnelAgent::mExchangeMgr::MessageLayer::Inet::StartTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:553,1
    - Dst: VerifyOrDieWithMsg
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:555,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - inetLayer
    - appState
    - err
    argTypes:
    - InetLayer*
    - void*
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 556
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 556
    functionName: WeaveTunnelControl::PurgeStaleNextHopEntries
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - static_cast<WeaveTunnelControl *>
    - WeaveTunnelControl*::FreeNextHopEntry
    - VerifyOrDieWithMsg
    - WeaveTunnelControl*::mTunnelAgent::mExchangeMgr::MessageLayer::Inet::StartTimer
    linkageType: ''
    returnType: void
    signature: WeaveTunnelControl::PurgeStaleNextHopEntries (InetLayer *inetLayer,
      void *appState, INET_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mExchangeMgr::MessageLayer::Inet::StartTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 563
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 563
    functionName: WeaveTunnelControl::StartNextHopTableMonitor
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 1
    functionsReached:
    - mExchangeMgr::MessageLayer::Inet::StartTimer
    linkageType: ''
    returnType: void
    signature: WeaveTunnelControl::StartNextHopTableMonitor (void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mExchangeMgr::MessageLayer::Inet::CancelTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 569
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 569
    functionName: WeaveTunnelControl::StopNextHopTableMonitor
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 1
    functionsReached:
    - mExchangeMgr::MessageLayer::Inet::CancelTimer
    linkageType: ''
    returnType: void
    signature: WeaveTunnelControl::StopNextHopTableMonitor (void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mExchangeMgr::RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:574,1
    - Dst: mExchangeMgr::RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 579
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 579
    functionName: WeaveTunnelControl::RegisterShortcutTunnelAdvHandlers
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 1
    functionsReached:
    - mExchangeMgr::RegisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: void
    signature: WeaveTunnelControl::RegisterShortcutTunnelAdvHandlers (void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mExchangeMgr::UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:584,1
    - Dst: mExchangeMgr::UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 587
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 587
    functionName: WeaveTunnelControl::UnregisterShortcutTunnelAdvHandlers
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 1
    functionsReached:
    - mExchangeMgr::UnregisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: void
    signature: WeaveTunnelControl::UnregisterShortcutTunnelAdvHandlers (void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mExchangeMgr::MessageLayer::Inet::StartTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 594
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 594
    functionName: WeaveTunnelControl::StartShortcutTunnelAdvertisementsFromBorderRouter
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 1
    functionsReached:
    - mExchangeMgr::MessageLayer::Inet::StartTimer
    linkageType: ''
    returnType: void
    signature: WeaveTunnelControl::StartShortcutTunnelAdvertisementsFromBorderRouter(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mExchangeMgr::MessageLayer::Inet::CancelTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 600
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 600
    functionName: WeaveTunnelControl::StopShortcutTunnelAdvertisementsFromBorderRouter
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 1
    functionsReached:
    - mExchangeMgr::MessageLayer::Inet::CancelTimer
    linkageType: ''
    returnType: void
    signature: WeaveTunnelControl::StopShortcutTunnelAdvertisementsFromBorderRouter(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mExchangeMgr::MessageLayer::Inet::StartTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 607
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 607
    functionName: WeaveTunnelControl::StartShortcutTunnelAdvertisementsFromMobileClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 1
    functionsReached:
    - mExchangeMgr::MessageLayer::Inet::StartTimer
    linkageType: ''
    returnType: void
    signature: WeaveTunnelControl::StartShortcutTunnelAdvertisementsFromMobileClient(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mExchangeMgr::MessageLayer::Inet::CancelTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 613
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 613
    functionName: WeaveTunnelControl::StopShortcutTunnelAdvertisementsFromMobileClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 1
    functionsReached:
    - mExchangeMgr::MessageLayer::Inet::CancelTimer
    linkageType: ''
    returnType: void
    signature: WeaveTunnelControl::StopShortcutTunnelAdvertisementsFromMobileClient(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - peerId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 629
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 629
    functionName: WeaveTunnelControl::FindTunnelPeerEntry
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: WeaveTunnelControl::FindTunnelPeerEntry (uint64_t peerId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 646
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 646
    functionName: WeaveTunnelControl::NewNextHopEntry
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: WeaveTunnelControl::NewNextHopEntry (void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:655,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 663
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 663
    functionName: WeaveTunnelControl::FreeNextHopEntry
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - memset
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelControl::FreeNextHopEntry (int index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelControl::FindTunnelPeerEntry
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:672,1
    - Dst: WeaveTunnelControl::NewNextHopEntry
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:677,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:680,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - peerId
    - peerAddress
    - peerNodeId
    argTypes:
    - uint64_t
    - IPAddress
    - uint64_t
    constantsTouched: []
    func_position:
      end: 694
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 694
    functionName: WeaveTunnelControl::UpdateOrAddTunnelPeerEntry
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelControl::NewNextHopEntry
    - WeaveTunnelControl::FindTunnelPeerEntry
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelControl::UpdateOrAddTunnelPeerEntry (uint64_t peerId, IPAddress
      peerAddress, uint64_t peerNodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 706
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 706
    functionName: WeaveTunnelControl::Free
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveTunnelControl::Free (void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:716,1
    - Dst: mExchangeMgr::NewContext
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:719,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - aConnection
    - onMsgRcvd
    argTypes:
    - WeaveConnection*
    - ExchangeContext::MessageReceiveFunct
    constantsTouched: []
    func_position:
      end: 733
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 733
    functionName: WeaveTunnelControl::CreateContext
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - mExchangeMgr::NewContext
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelControl::CreateContext (WeaveConnection *aConnection,\n
      \                                              ExchangeContext::MessageReceiveFunct
      onMsgRcvd)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:744,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:746,1
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::parse
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:750,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:751,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:753,1
    - Dst: WeaveTunnelControl::ParseTunnelTLVData
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:760,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:761,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - profileId
    - msgType
    - payload
    - ' outReport'
    - ' outIsRoutingRestricted'
    argTypes:
    - uint32_t
    - uint8_t
    - PacketBuffer*
    - StatusReport
    - bool
    constantsTouched: []
    func_position:
      end: 766
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 766
    functionName: WeaveTunnelControl::VerifyAndParseStatusResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelControl::ParseTunnelTLVData
    - SuccessOrExit
    - VerifyOrExit
    - nl::Weave::Profiles::StatusReporting::StatusReport::parse
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelControl::VerifyAndParseStatusResponse(uint32_t profileId,\n
      \                                                            uint8_t msgType,
      PacketBuffer *payload,\n                                                             StatusReport
      & outReport,\n                                                             bool
      & outIsRoutingRestricted)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:784,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:785,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:786,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:789,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:791,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:792,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:794,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:795,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:797,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:798,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:800,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:801,1
    - Dst: nl::Weave::TLV::IsProfileTag
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:801,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:804,1
    - Dst: nl::Weave::TLV::ProfileIdFromTag
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:804,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:807,1
    - Dst: nl::Weave::TLV::TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:807,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:810,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - ' report'
    - ' outIsRoutingRestricted'
    argTypes:
    - StatusReport
    - bool
    constantsTouched: []
    func_position:
      end: 815
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 815
    functionName: WeaveTunnelControl::ParseTunnelTLVData
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Init
    - TLVReader::Next
    - VerifyOrExit
    - TLVReader::EnterContainer
    - nl::Weave::TLV::IsProfileTag
    - nl::Weave::TLV::TagNumFromTag
    - TLVReader::GetTag
    - SuccessOrExit
    - nl::Weave::TLV::ProfileIdFromTag
    - TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelControl::ParseTunnelTLVData(StatusReport & report, bool
      & outIsRoutingRestricted)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelControl *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:825,1
    - Dst: static_cast<WeaveTunnelConnectionMgr *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:826,1
    - Dst: WeaveTunnelControl::VerifyAndParseStatusResponse
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:828,1
    - Dst: WeaveTunnelControl*::FreeBufferAndCloseExchange
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:832,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:834,1
    - Dst: WeaveTunnelConnectionMgr*::StartLivenessTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:848,1
    - Dst: WeaveTunnelControl*::mTunnelAgent::WeaveTunnelUp
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:853,1
    - Dst: WeaveTunnelConnectionMgr*::StopOnlineCheck
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:857,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:867,1
    - Dst: WeaveTunnelControl*::TunnelCloseAndReportErrorStatus
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 873
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 873
    functionName: WeaveTunnelControl::HandleTunnelOpenResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - static_cast<WeaveTunnelControl *>
    - WeaveLogError
    - WeaveTunnelControl*::mTunnelAgent::WeaveTunnelUp
    - WeaveTunnelControl*::FreeBufferAndCloseExchange
    - WeaveTunnelConnectionMgr*::StopOnlineCheck
    - WeaveTunnelControl*::TunnelCloseAndReportErrorStatus
    - WeaveTunnelConnectionMgr*::StartLivenessTimer
    - SuccessOrExit
    - WeaveTunnelControl::VerifyAndParseStatusResponse
    - static_cast<WeaveTunnelConnectionMgr *>
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelControl::HandleTunnelOpenResponse(ExchangeContext *ec,
      const IPPacketInfo *pktInfo,\n                                                  const
      WeaveMessageInfo *msgInfo, uint32_t profileId,\n                                                  uint8_t
      msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelControl *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:882,1
    - Dst: static_cast<WeaveTunnelConnectionMgr *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:883,1
    - Dst: WeaveTunnelControl::VerifyAndParseStatusResponse
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:885,1
    - Dst: WeaveTunnelControl*::FreeBufferAndCloseExchange
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:889,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:891,1
    - Dst: WeaveTunnelConnectionMgr*::StopLivenessTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:899,1
    - Dst: WeaveTunnelConnectionMgr*::StopServiceTunnelConn
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:905,1
    - Dst: WeaveTunnelControl*::mTunnelAgent::WeaveTunnelConnectionDown
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:909,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:914,1
    - Dst: WeaveTunnelControl*::TunnelCloseAndReportErrorStatus
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:916,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 920
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 920
    functionName: WeaveTunnelControl::HandleTunnelCloseResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - static_cast<WeaveTunnelControl *>
    - WeaveTunnelConnectionMgr*::StopServiceTunnelConn
    - WeaveTunnelConnectionMgr*::StopLivenessTimer
    - WeaveLogError
    - WeaveTunnelControl*::FreeBufferAndCloseExchange
    - WeaveTunnelControl*::TunnelCloseAndReportErrorStatus
    - WeaveTunnelControl*::mTunnelAgent::WeaveTunnelConnectionDown
    - SuccessOrExit
    - WeaveTunnelControl::VerifyAndParseStatusResponse
    - static_cast<WeaveTunnelConnectionMgr *>
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelControl::HandleTunnelCloseResponse(ExchangeContext *ec,
      const IPPacketInfo *pktInfo,\n                                                   const
      WeaveMessageInfo *msgInfo, uint32_t profileId,\n                                                   uint8_t
      msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelControl *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:929,1
    - Dst: static_cast<WeaveTunnelConnectionMgr *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:930,1
    - Dst: WeaveTunnelControl::VerifyAndParseStatusResponse
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:932,1
    - Dst: WeaveTunnelControl*::FreeBufferAndCloseExchange
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:936,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:938,1
    - Dst: WeaveTunnelConnectionMgr*::mTunAgent::DisableBorderRouting
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:952,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:954,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:960,1
    - Dst: WeaveTunnelControl*::TunnelCloseAndReportErrorStatus
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:962,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 966
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 966
    functionName: WeaveTunnelControl::HandleTunnelRouteUpdateResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - static_cast<WeaveTunnelControl *>
    - WeaveLogError
    - WeaveTunnelControl*::FreeBufferAndCloseExchange
    - WeaveTunnelControl*::TunnelCloseAndReportErrorStatus
    - WeaveTunnelConnectionMgr*::mTunAgent::DisableBorderRouting
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveTunnelControl::VerifyAndParseStatusResponse
    - static_cast<WeaveTunnelConnectionMgr *>
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelControl::HandleTunnelRouteUpdateResponse(ExchangeContext
      *ec, const IPPacketInfo *pktInfo,\n                                                         const
      WeaveMessageInfo *msgInfo, uint32_t profileId,\n                                                         uint8_t
      msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelControl *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:976,1
    - Dst: static_cast<WeaveTunnelConnectionMgr *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:977,1
    - Dst: WeaveTunnelControl::VerifyAndParseStatusResponse
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:979,1
    - Dst: WeaveTunnelControl*::FreeBufferAndCloseExchange
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:983,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:985,1
    - Dst: WeaveTunnelConnectionMgr*::StartLivenessTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:991,1
    - Dst: WeaveTunnelConnectionMgr*::mTunAgent::NotifyTunnelLiveness
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:995,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1000,1
    - Dst: WeaveTunnelControl*::TunnelCloseAndReportErrorStatus
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1006
      start: 969
    functionDepth: 0
    functionLinenumber: 969
    functionLinenumberEnd: 1006
    functionName: WeaveTunnelControl::HandleTunnelLivenessResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - static_cast<WeaveTunnelControl *>
    - WeaveLogError
    - WeaveTunnelConnectionMgr*::mTunAgent::NotifyTunnelLiveness
    - WeaveTunnelControl*::FreeBufferAndCloseExchange
    - WeaveTunnelControl*::TunnelCloseAndReportErrorStatus
    - WeaveTunnelConnectionMgr*::StartLivenessTimer
    - SuccessOrExit
    - WeaveTunnelControl::VerifyAndParseStatusResponse
    - static_cast<WeaveTunnelConnectionMgr *>
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelControl::HandleTunnelLivenessResponse(ExchangeContext *ec,
      const IPPacketInfo *pktInfo,\n                                                      const
      WeaveMessageInfo *msgInfo, uint32_t profileId,\n                                                      uint8_t
      msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelControl *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1019,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1026,1
    - Dst: static_cast<WeaveTunnelConnectionMgr *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1028,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1030,1
    - Dst: WeaveTunnelControl::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1038,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1039,1
    - Dst: WeaveTunnelControl*::DecodeTunnelReconnect
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1049,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1050,1
    - Dst: WeaveTunnelControl*::mTunnelAgent::mServiceMgr::clearCache
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1061,1
    - Dst: WeaveTunnelControl*::mTunnelAgent::mServiceMgr::replaceOrAddCacheEntry
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1068,1
    - Dst: WeaveTunnelControl*::mTunnelAgent::mServiceMgr::clearCache
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1072,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1076,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1086,1
    - Dst: WeaveTunnelControl*::FreeBufferAndCloseExchange
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1096,1
    - Dst: ReconnectParam::PopulateReconnectParam
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1106,1
    - Dst: WeaveTunnelConnectionMgr*::StopAndReconnectTunnelConn
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1108,1
    - Dst: WeaveTunnelControl*::mTunnelAgent::WeaveTunnelServiceReconnectRequested
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1114
      start: 1013
    functionDepth: 2
    functionLinenumber: 1013
    functionLinenumberEnd: 1114
    functionName: WeaveTunnelControl::HandleTunnelReconnect
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - static_cast<WeaveTunnelControl *>
    - PacketBuffer*::DataLength
    - WeaveTunnelConnectionMgr*::StopAndReconnectTunnelConn
    - WeaveTunnelControl*::mTunnelAgent::mServiceMgr::replaceOrAddCacheEntry
    - WeaveTunnelControl*::DecodeTunnelReconnect
    - WeaveTunnelControl::SendStatusReport
    - VerifyOrExit
    - ExitNow
    - nl::Inet::IPAddress::FromString
    - ReconnectParam::PopulateReconnectParam
    - WeaveTunnelControl*::FreeBufferAndCloseExchange
    - WeaveTunnelControl*::mTunnelAgent::mServiceMgr::clearCache
    - SuccessOrExit
    - WeaveTunnelControl*::mTunnelAgent::WeaveTunnelServiceReconnectRequested
    - static_cast<WeaveTunnelConnectionMgr *>
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelControl::HandleTunnelReconnect(ExchangeContext *ec, const
      IPPacketInfo *pktInfo,\n                                               const
      WeaveMessageInfo *msgInfo, uint32_t profileId,\n                                               uint8_t
      msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelConnectionMgr*::StopLivenessTimer
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1125,1
    - Dst: OnTunStatusRcvd
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1132,1
    - Dst: WeaveTunnelConnectionMgr*::StopServiceTunnelConn
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1139,1
    - Dst: WeaveTunnelConnectionDown
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1143,1
    - Dst: ReconnectParam::PopulateReconnectParam
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1149,1
    - Dst: WeaveTunnelConnectionMgr*::StopAndReconnectTunnelConn
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - connMgr
    - err
    - report
    argTypes:
    - WeaveTunnelConnectionMgr*
    - WEAVE_ERROR
    - StatusReport
    constantsTouched: []
    func_position:
      end: 1157
      start: 1116
    functionDepth: 1
    functionLinenumber: 1116
    functionLinenumberEnd: 1157
    functionName: WeaveTunnelControl::TunnelCloseAndReportErrorStatus
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelConnectionMgr*::StopServiceTunnelConn
    - WeaveTunnelConnectionMgr*::StopLivenessTimer
    - WeaveTunnelConnectionMgr*::StopAndReconnectTunnelConn
    - ReconnectParam::PopulateReconnectParam
    - WeaveTunnelConnectionDown
    - OnTunStatusRcvd
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelControl::TunnelCloseAndReportErrorStatus(WeaveTunnelConnectionMgr
      *connMgr,\n                                                         WEAVE_ERROR
      err,\n                                                         StatusReport
      report)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1165,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - ec
    argTypes:
    - PacketBuffer*
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 1176
      start: 1159
    functionDepth: 2
    functionLinenumber: 1159
    functionLinenumberEnd: 1176
    functionName: WeaveTunnelControl::FreeBufferAndCloseExchange
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: void
    signature: WeaveTunnelControl::FreeBufferAndCloseExchange(PacketBuffer *buf, ExchangeContext
      *&ec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ec
    - profileId
    - tunStatusCode
    argTypes:
    - ExchangeContext*
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1187
      start: 1179
    functionDepth: 2
    functionLinenumber: 1179
    functionLinenumberEnd: 1187
    functionName: WeaveTunnelControl::SendStatusReport
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::WeaveServerBase::SendStatusReport
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelControl::SendStatusReport(ExchangeContext *ec, uint32_t
      profileId,\n                                                 uint16_t tunStatusCode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1203,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1205,1
    - Dst: WeaveTunnelControl::CreateContext
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1209,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1210,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1219,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1221,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1221,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1228,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1230,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1232,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1235,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1237,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1239,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1241,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1247,1
    - Dst: WeaveTunnelRoute::EncodeFabricTunnelRoutes
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1250,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1252,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1255,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1258,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1263,1
    - Dst: WeaveTunnelControl::Close
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 5
    argNames:
    - msgType
    - conMgr
    - fabricId
    - tunRoutes
    - onMsgRcvd
    argTypes:
    - TunnelCtrlMsgType
    - WeaveTunnelConnectionMgr*
    - uint64_t
    - WeaveTunnelRoute*
    - ExchangeContext::MessageReceiveFunct
    constantsTouched: []
    func_position:
      end: 1274
      start: 1191
    functionDepth: 3
    functionLinenumber: 1191
    functionLinenumberEnd: 1274
    functionName: WeaveTunnelControl::SendTunnelMessage
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 4
    functionsReached:
    - SendMessage
    - PacketBuffer*::SetDataLength
    - nl::Weave::Encoding::LittleEndian::Write16
    - nl::Weave::System::PacketBuffer::Free
    - Write8
    - VerifyOrExit
    - WeaveTunnelControl::CreateContext
    - PacketBuffer*::AvailableDataLength
    - SuccessOrExit
    - PacketBuffer*::Start
    - WeaveTunnelControl::Close
    - WeaveTunnelRoute::EncodeFabricTunnelRoutes
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelControl::SendTunnelMessage(TunnelCtrlMsgType msgType,\n
      \                                                 WeaveTunnelConnectionMgr *conMgr,\n
      \                                                 uint64_t fabricId,\n                                                  WeaveTunnelRoute
      *tunRoutes,\n                                                  ExchangeContext::MessageReceiveFunct
      onMsgRcvd)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelControl *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1285,1
    - Dst: static_cast<WeaveTunnelConnectionMgr *>
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1289,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1294,1
    - Dst: WeaveTunnelConnectionMgr*::StopServiceTunnelConn
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1306,1
    - Dst: WeaveTunnelControl*::mTunnelAgent::WeaveTunnelConnectionDown
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1310,1
    - Dst: ReconnectParam::PopulateReconnectParam
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1316,1
    - Dst: WeaveTunnelConnectionMgr*::StopAndReconnectTunnelConn
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1318,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - ec
    argTypes:
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 1321
      start: 1279
    functionDepth: 1
    functionLinenumber: 1279
    functionLinenumberEnd: 1321
    functionName: WeaveTunnelControl::TunCtrlRespTimeoutHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - static_cast<WeaveTunnelControl *>
    - WeaveTunnelConnectionMgr*::StopServiceTunnelConn
    - WeaveTunnelConnectionMgr*::StopAndReconnectTunnelConn
    - ExchangeContext*::Close
    - ReconnectParam::PopulateReconnectParam
    - WeaveTunnelControl*::mTunnelAgent::WeaveTunnelConnectionDown
    - static_cast<WeaveTunnelConnectionMgr *>
    linkageType: ''
    returnType: void
    signature: WeaveTunnelControl::TunCtrlRespTimeoutHandler(ExchangeContext *ec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1342,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1346,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1348,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1352,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp:1360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - hostPort
    - hostName
    - hostNameLen
    - msg
    argTypes:
    - uint16_t
    - char*
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1365
      start: 1333
    functionDepth: 1
    functionLinenumber: 1333
    functionLinenumberEnd: 1365
    functionName: WeaveTunnelControl::DecodeTunnelReconnect
    functionSourceFile: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Read16
    - memcpy
    - VerifyOrExit
    - PacketBuffer*::Start
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelControl::DecodeTunnelReconnect(uint16_t &hostPort,\n                                                      char
      *hostName,\n                                                      uint8_t &hostNameLen,\n
      \                                                     PacketBuffer *msg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 499
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 499
    functionName: nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeaveServiceManager
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aConnectBegin
    argTypes:
    - OnConnectBegin
    constantsTouched: []
    func_position:
      end: 540
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 540
    functionName: nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::SetConnectBeginCallback
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::SetConnectBeginCallback(OnConnectBegin aConnectBegin)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: '* operator new(size_t, void * p) throw()'
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '* operator new(size_t, void * p) throw()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: '* operator new[](size_t, void * p) throw()'
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '* operator new[](size_t, void * p) throw()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:112,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:112,1
    - Dst: WeaveServiceManager*::onConnectionComplete
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - aConnection
    - aError
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: handleSDConnectionComplete
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - WeaveServiceManager*::onConnectionComplete
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: handleSDConnectionComplete(WeaveConnection *aConnection, WEAVE_ERROR
      aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:133,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:133,1
    - Dst: WeaveServiceManager::ConnectRequest*::onConnectionComplete
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - aConnection
    - aError
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: handleAppConnectionComplete
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - WeaveServiceManager::ConnectRequest*::onConnectionComplete
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: handleAppConnectionComplete(WeaveConnection *aConnection, WEAVE_ERROR
      aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:154,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:156,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aConnection
    - aError
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: handleConnectionClosed
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - nl::ErrorStr
    - WeaveConnection*::Close
    linkageType: ''
    returnType: void
    signature: handleConnectionClosed(WeaveConnection *aConnection, WEAVE_ERROR aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:194,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:194,1
    - Dst: WeaveServiceManager*::onConnectionClosed
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - aExchangeCtx
    - aConnection
    - aError
    argTypes:
    - ExchangeContext*
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 198
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 198
    functionName: ecHandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - nl::ErrorStr
    - WeaveServiceManager*::onConnectionClosed
    linkageType: ''
    returnType: void
    signature: "ecHandleConnectionClosed(ExchangeContext *aExchangeCtx,\n                                   WeaveConnection
      *aConnection,\n                                   WEAVE_ERROR aError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:225,1
    - Dst: WeaveServiceManager*::onResponseReceived
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - aExchangeCtx
    - anAddrInfo
    - aMsgInfo
    - aProfileId
    - aMsgType
    - aMsg
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 229
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 229
    functionName: handleResponseMsg
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - WeaveServiceManager*::onResponseReceived
    linkageType: ''
    returnType: void
    signature: "handleResponseMsg(ExchangeContext *aExchangeCtx,\n                              const
      IPPacketInfo *anAddrInfo,\n                              const WeaveMessageInfo
      *aMsgInfo,\n                              uint32_t aProfileId,\n                              uint8_t
      aMsgType,\n                              PacketBuffer *aMsg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:243,1
    - Dst: WeaveServiceManager*::onResponseTimeout
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aExchangeCtx
    argTypes:
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 247
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 247
    functionName: handleResponseTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - WeaveServiceManager*::onResponseTimeout
    linkageType: ''
    returnType: void
    signature: handleResponseTimeout(ExchangeContext *aExchangeCtx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveServiceManager::freeConnectRequests
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:266,1
    - Dst: WeaveServiceManager::clearWorkingState
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:268,1
    - Dst: clearCacheState
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 270
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 270
    functionName: WeaveServiceManager::WeaveServiceManager
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 1
    functionsReached:
    - clearCacheState
    - WeaveServiceManager::freeConnectRequests
    - WeaveServiceManager::clearWorkingState
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::WeaveServiceManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveServiceManager::reset
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 284
    functionName: WeaveServiceManager::~WeaveServiceManager()
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 0
    functionsReached:
    - WeaveServiceManager::reset
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::~WeaveServiceManager()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:342,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:344,1
    - Dst: WeaveServiceManager::cleanupExchangeContext
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:357,1
    - Dst: clearCacheState
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:359,1
    - Dst: Platform::IsPersistentServiceDirPresent
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:363,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:365,1
    - Dst: WeaveServiceManager::loadPersistentServiceDirIntoCache
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:367,1
    - Dst: Platform::ClearPersistentServiceDir
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:371,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:372,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:378,1
    - Dst: WeaveServiceManager::finalizeConnectRequests
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:385,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 8
    argNames:
    - aExchangeMgr
    - aCache
    - aCacheLen
    - aAccessor
    - aDirAuthMode
    - aServiceEndpointQueryBegin
    - aServiceEndpointQueryEndWithTimeInfo
    - aConnectBegin
    argTypes:
    - WeaveExchangeManager*
    - uint8_t*
    - uint16_t
    - RootDirectoryAccessor
    - WeaveAuthMode
    - OnServiceEndpointQueryBegin
    - OnServiceEndpointQueryEndWithTimeInfo
    - OnConnectBegin
    constantsTouched: []
    func_position:
      end: 390
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 390
    functionName: WeaveServiceManager::init
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 0
    functionsReached:
    - WeaveServiceManager::cleanupExchangeContext
    - WeaveLogProgress
    - VerifyOrExit
    - Platform::IsPersistentServiceDirPresent
    - Platform::ClearPersistentServiceDir
    - WeaveServiceManager::finalizeConnectRequests
    - WeaveServiceManager::loadPersistentServiceDirIntoCache
    - clearCacheState
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveServiceManager::init(WeaveExchangeManager *aExchangeMgr,\n                                      uint8_t
      *aCache,\n                                      uint16_t aCacheLen,\n                                      RootDirectoryAccessor
      aAccessor,\n                                      WeaveAuthMode aDirAuthMode,\n
      \                                     OnServiceEndpointQueryBegin aServiceEndpointQueryBegin,\n
      \                                     OnServiceEndpointQueryEndWithTimeInfo
      aServiceEndpointQueryEndWithTimeInfo,\n                                      OnConnectBegin
      aConnectBegin)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:442,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:446,1
    - Dst: Platform::ClearPersistentServiceDir
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:456,1
    - Dst: mAccessor
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:459,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:460,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:470,1
    - Dst: MessageLayer::NewConnection
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:478,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:479,1
    - Dst: WeaveServiceManager::lookupAndConnect
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:481,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:487,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:508,1
    - Dst: WeaveServiceManager::getAvailableRequest
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:520,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:521,1
    - Dst: ConnectRequest*::init
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:523,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:531,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:535,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:540,1
    - Dst: WeaveServiceManager::lookupAndConnect
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:542,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:561,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:561,1
    - Dst: WeaveServiceManager::cleanupExchangeContext
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:571,1
    - Dst: ConnectRequest*::finalize
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:575,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 7
    argNames:
    - aServiceEp
    - aAuthMode
    - aAppState
    - aStatusHandler
    - aConnectionCompleteHandler
    - aConnectTimeoutMsecs
    - aConnectIntf
    argTypes:
    - uint64_t
    - WeaveAuthMode
    - void*
    - StatusHandler
    - WeaveConnection::ConnectionCompleteFunct
    - uint32_t
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 580
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 580
    functionName: WeaveServiceManager::connect
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 0
    functionsReached:
    - WeaveServiceManager::cleanupExchangeContext
    - WeaveLogProgress
    - VerifyOrExit
    - Platform::ClearPersistentServiceDir
    - ExitNow
    - ConnectRequest*::init
    - ConnectRequest*::finalize
    - MessageLayer::NewConnection
    - WeaveServiceManager::getAvailableRequest
    - SuccessOrExit
    - ErrorStr
    - WeaveServiceManager::lookupAndConnect
    - mAccessor
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveServiceManager::connect(uint64_t aServiceEp,\n                                         WeaveAuthMode
      aAuthMode,\n                                         void *aAppState,\n                                         StatusHandler
      aStatusHandler,\n                                         WeaveConnection::ConnectionCompleteFunct
      aConnectionCompleteHandler,\n                                         const
      uint32_t aConnectTimeoutMsecs,\n                                         const
      InterfaceId aConnectIntf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:615,1
    - Dst: WeaveServiceManager::lookup
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:617,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:618,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:620,1
    - Dst: HostPortList::HostPortList
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - aServiceEp
    - outHostPortList
    argTypes:
    - uint64_t
    - HostPortList*
    constantsTouched: []
    func_position:
      end: 628
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 628
    functionName: WeaveServiceManager::lookup
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 1
    functionsReached:
    - SuccessOrExit
    - VerifyOrExit
    - HostPortList::HostPortList
    - WeaveServiceManager::lookup
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveServiceManager::lookup(uint64_t aServiceEp, HostPortList *outHostPortList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:667,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:669,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:670,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:682,1
    - Dst: WeaveServiceManager::calculateEntryLength
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:695,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:696,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:707,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:707,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - aServiceEp
    - aControlByte
    - aDirectoryEntry
    argTypes:
    - uint64_t
    - uint8_t*
    - uint8_t**
    constantsTouched: []
    func_position:
      end: 710
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 710
    functionName: WeaveServiceManager::lookup
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    - memset
    - SuccessOrExit
    - WeaveServiceManager::calculateEntryLength
    - ErrorStr
    - WEAVE_FAULT_INJECT
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveServiceManager::lookup(uint64_t aServiceEp, uint8_t *aControlByte,
      uint8_t **aDirectoryEntry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:739,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:740,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:748,1
    - Dst: WeaveServiceManager::lookup
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:753,1
    - Dst: WeaveServiceManager::calculateEntryLength
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:758,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:759,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:767,1
    - Dst: memmove
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:772,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:780,1
    - Dst: memmove
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:789,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:795,1
    - Dst: Write64
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:799,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:805,1
    - Dst: Write8
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:809,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:813,1
    - Dst: Write16
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:821,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:835,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 4
    argNames:
    - port
    - hostName
    - hostLen
    - serviceEndpointId
    argTypes:
    - uint16_t
    - char*
    - uint8_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 838
      start: 716
    functionDepth: 2
    functionLinenumber: 716
    functionLinenumberEnd: 838
    functionName: WeaveServiceManager::replaceOrAddCacheEntry
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 0
    functionsReached:
    - memmove
    - WeaveLogProgress
    - Write8
    - Write16
    - Write64
    - VerifyOrExit
    - ExitNow
    - WeaveServiceManager::lookup
    - memcpy
    - SuccessOrExit
    - WeaveServiceManager::calculateEntryLength
    - WEAVE_FAULT_INJECT
    - nl::ErrorStr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveServiceManager::replaceOrAddCacheEntry(uint16_t port,\n                                                        const
      char *hostName,\n                                                        uint8_t
      hostLen,\n                                                        uint64_t serviceEndpointId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:858,1
    - Dst: ARRAY_SIZE
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:860,1
    - Dst: ConnectRequest*::isAllocatedTo
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:864,1
    - Dst: ConnectRequest*::finalize
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:865,1
    - Dst: ConnectRequest*::isFree
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:867,1
    - Dst: WeaveServiceManager::cleanupExchangeContext
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:889,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - aServiceEp
    - aAppState
    argTypes:
    - uint64_t
    - void*
    constantsTouched: []
    func_position:
      end: 891
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 891
    functionName: WeaveServiceManager::cancel
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 0
    functionsReached:
    - ConnectRequest*::isAllocatedTo
    - ARRAY_SIZE
    - WeaveServiceManager::cleanupExchangeContext
    - WeaveLogProgress
    - ConnectRequest*::isFree
    - ConnectRequest*::finalize
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::cancel(uint64_t aServiceEp, void *aAppState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:908,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:908,1
    - Dst: WeaveServiceManager::unresolve
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aError
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 911
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 911
    functionName: WeaveServiceManager::unresolve
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    - ErrorStr
    - WeaveServiceManager::unresolve
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::unresolve(WEAVE_ERROR aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:924,1
    - Dst: Platform::ClearPersistentServiceDir
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:936,1
    - Dst: WeaveServiceManager::cleanupExchangeContext
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:939,1
    - Dst: WeaveServiceManager::finalizeConnectRequests
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 945
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 945
    functionName: WeaveServiceManager::unresolve
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    - WeaveServiceManager::finalizeConnectRequests
    - Platform::ClearPersistentServiceDir
    - WeaveServiceManager::cleanupExchangeContext
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::unresolve(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:962,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:962,1
    - Dst: WeaveServiceManager::reset
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aError
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 965
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 965
    functionName: WeaveServiceManager::reset
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 2
    functionsReached:
    - WeaveLogProgress
    - WeaveServiceManager::reset
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::reset(WEAVE_ERROR aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:978,1
    - Dst: WeaveServiceManager::cleanupExchangeContext
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:980,1
    - Dst: WeaveServiceManager::clearWorkingState
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:982,1
    - Dst: clearCacheState
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:983,1
    - Dst: Platform::ClearPersistentServiceDir
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:986,1
    - Dst: WeaveServiceManager::finalizeConnectRequests
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 990
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 990
    functionName: WeaveServiceManager::reset
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 2
    functionsReached:
    - WeaveServiceManager::cleanupExchangeContext
    - WeaveLogProgress
    - Platform::ClearPersistentServiceDir
    - WeaveServiceManager::finalizeConnectRequests
    - clearCacheState
    - WeaveServiceManager::clearWorkingState
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::reset(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1010,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1010,1
    - Dst: WeaveServiceManager::relocate
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aError
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1013
      start: 1008
    functionDepth: 1
    functionLinenumber: 1008
    functionLinenumberEnd: 1013
    functionName: WeaveServiceManager::relocate
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    - ErrorStr
    - WeaveServiceManager::relocate
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::relocate(WEAVE_ERROR aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1028,1
    - Dst: WeaveServiceManager::reset
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1032,1
    - Dst: WeaveServiceManager::unresolve
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1038,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1026
    functionDepth: 2
    functionLinenumber: 1026
    functionLinenumberEnd: 1040
    functionName: WeaveServiceManager::relocate
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    - WeaveServiceManager::reset
    - WeaveServiceManager::unresolve
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::relocate(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1060,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1060,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1062,1
    - Dst: NewContext
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1066,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1067,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1071,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1072,1
    - Dst: mServiceEndpointQueryBegin
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1075,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1090,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1101,1
    - Dst: WeaveServiceManager::fail
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - aError
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1105
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1105
    functionName: WeaveServiceManager::onConnectionComplete
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - WeaveServiceManager::fail
    - NewContext
    - nl::Weave::System::PacketBuffer::Free
    - WeaveLogProgress
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - SuccessOrExit
    - ErrorStr
    - mServiceEndpointQueryBegin
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::onConnectionComplete(WEAVE_ERROR aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1114,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1114,1
    - Dst: WeaveServiceManager::fail
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aError
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1117
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1117
    functionName: WeaveServiceManager::onConnectionClosed
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - ErrorStr
    - WeaveServiceManager::fail
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::onConnectionClosed(WEAVE_ERROR aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1134,1
    - Dst: WeaveServiceManager::cleanupExchangeContext
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1138,1
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::parse
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1148,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1150,1
    - Dst: WeaveServiceManager::clearWorkingState
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1152,1
    - Dst: Platform::ClearPersistentServiceDir
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1155,1
    - Dst: WeaveServiceManager::transactionsReportStatus
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1160,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1165,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1167,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1174,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1175,1
    - Dst: WeaveServiceManager::unpackPacketBuffer
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1177,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1178,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1183,1
    - Dst: Platform::StorePersistentServiceDir
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1184,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1184,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1185,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1187,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1196,1
    - Dst: MessageLayer::NewConnection
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1203,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1204,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1206,1
    - Dst: WeaveServiceManager::lookupAndConnect
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1208,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1220,1
    - Dst: ARRAY_SIZE
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1224,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1241,1
    - Dst: WeaveServiceManager::lookupAndConnect
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1243,1
    - Dst: ConnectRequest*::finalize
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1253,1
    - Dst: handler
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1256,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1267,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1271,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1271,1
    - Dst: WeaveServiceManager::fail
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1273,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 3
    argNames:
    - aProfileId
    - aMsgType
    - aMsg
    argTypes:
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1275
      start: 1128
    functionDepth: 2
    functionLinenumber: 1128
    functionLinenumberEnd: 1275
    functionName: WeaveServiceManager::onResponseReceived
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 0
    functionsReached:
    - WeaveServiceManager::cleanupExchangeContext
    - Platform::ClearPersistentServiceDir
    - WeaveServiceManager::clearWorkingState
    - WeaveServiceManager::fail
    - nl::Weave::System::PacketBuffer::Free
    - WeaveServiceManager::unpackPacketBuffer
    - nl::Weave::Profiles::StatusReporting::StatusReport::parse
    - VerifyOrExit
    - SuccessOrExit
    - WeaveServiceManager::transactionsReportStatus
    - ARRAY_SIZE
    - WeaveLogProgress
    - Platform::StorePersistentServiceDir
    - ErrorStr
    - WeaveServiceManager::lookupAndConnect
    - PacketBuffer*::DataLength
    - handler
    - ConnectRequest*::finalize
    - MessageLayer::NewConnection
    - PacketBuffer*::Start
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::onResponseReceived(uint32_t aProfileId, uint8_t
      aMsgType, PacketBuffer *aMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveServiceManager::fail
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1282
    functionDepth: 1
    functionLinenumber: 1282
    functionLinenumberEnd: 1285
    functionName: WeaveServiceManager::onResponseTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 0
    functionsReached:
    - WeaveServiceManager::fail
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::onResponseTimeout(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1320,1
    - Dst: WeaveServiceManager*::mExchangeManager::MessageLayer::NewConnection
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1322,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 8
    argNames:
    - aManager
    - aServiceEp
    - aAuthMode
    - aAppState
    - aStatusHandler
    - aCompleteHandler
    - aConnectTimeoutMsecs
    - aConnIntf
    argTypes:
    - WeaveServiceManager*
    - uint64_t
    - WeaveAuthMode
    - void*
    - StatusHandler
    - WeaveConnection::ConnectionCompleteFunct
    - uint32_t
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 1336
      start: 1309
    functionDepth: 0
    functionLinenumber: 1309
    functionLinenumberEnd: 1336
    functionName: "WeaveServiceManager::ConnectRequest::init(WeaveServiceManager *aManager,\n
      \                                                     const uint64_t &aServiceEp,\n
      \                                                     WeaveAuthMode aAuthMode,\n
      \                                                     void *aAppState,\n                                                      StatusHandler
      aStatusHandler,\n                                                      WeaveConnection::ConnectionCompleteFunct
      aCompleteHandler,\n                                                      const
      uint32_t aConnectTimeoutMsecs,\n                                                      const
      InterfaceId aConnIntf)"
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 0
    functionsReached:
    - WeaveServiceManager*::mExchangeManager::MessageLayer::NewConnection
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveServiceManager::ConnectRequest::init(WeaveServiceManager *aManager,\n
      \                                                     const uint64_t &aServiceEp,\n
      \                                                     WeaveAuthMode aAuthMode,\n
      \                                                     void *aAppState,\n                                                      StatusHandler
      aStatusHandler,\n                                                      WeaveConnection::ConnectionCompleteFunct
      aCompleteHandler,\n                                                      const
      uint32_t aConnectTimeoutMsecs,\n                                                      const
      InterfaceId aConnIntf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isFree
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1343,1
    - Dst: SYSTEM_STATS_DECREMENT
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1345,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1341
    functionDepth: 0
    functionLinenumber: 1341
    functionLinenumberEnd: 1349
    functionName: WeaveServiceManager::ConnectRequest::free(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 0
    functionsReached:
    - SYSTEM_STATS_DECREMENT
    - memset
    - isFree
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::ConnectRequest::free(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1358,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1354
    functionDepth: 0
    functionLinenumber: 1354
    functionLinenumberEnd: 1362
    functionName: WeaveServiceManager::ConnectRequest::finalize(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 0
    functionsReached:
    - free
    - WeaveConnection*::Close
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::ConnectRequest::finalize(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1375,1
    - Dst: handler
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - aError
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1378
      start: 1368
    functionDepth: 0
    functionLinenumber: 1368
    functionLinenumberEnd: 1378
    functionName: WeaveServiceManager::ConnectRequest::onConnectionComplete(WEAVE_ERROR
      aError)
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 0
    functionsReached:
    - free
    - handler
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::ConnectRequest::onConnectionComplete(WEAVE_ERROR
      aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1385,1
    - Dst: SYSTEM_STATS_RESET
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1383
    functionDepth: 0
    functionLinenumber: 1383
    functionLinenumberEnd: 1388
    functionName: WeaveServiceManager::freeConnectRequests
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 1
    functionsReached:
    - SYSTEM_STATS_RESET
    - memset
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::freeConnectRequests(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConnectRequest::finalize
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1399,1
    - Dst: SYSTEM_STATS_RESET
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1393
    functionDepth: 0
    functionLinenumber: 1393
    functionLinenumberEnd: 1403
    functionName: WeaveServiceManager::finalizeConnectRequests
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 3
    functionsReached:
    - ConnectRequest::finalize
    - SYSTEM_STATS_RESET
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::finalizeConnectRequests(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1421,1
    - Dst: SYSTEM_STATS_INCREMENT
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1415
    functionDepth: 0
    functionLinenumber: 1415
    functionLinenumberEnd: 1432
    functionName: WeaveServiceManager::getAvailableRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 1
    functionsReached:
    - SYSTEM_STATS_INCREMENT
    - ARRAY_SIZE
    linkageType: ''
    returnType: WeaveServiceManager::ConnectRequest
    signature: '*WeaveServiceManager::getAvailableRequest(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - entryStart
    - entryCtrlByte
    - entryLen
    argTypes:
    - uint8_t*
    - uint8_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 1478
      start: 1434
    functionDepth: 0
    functionLinenumber: 1434
    functionLinenumberEnd: 1478
    functionName: WeaveServiceManager::calculateEntryLength
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveServiceManager::calculateEntryLength(uint8_t *entryStart,\n                                                      uint8_t
      entryCtrlByte,\n                                                      uint16_t
      *entryLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - inServiceEndpoint
    - inConnection
    - inEndpointHostPortList
    - inConnectIntf
    - inAuthMode
    - inDNSOptions
    argTypes:
    - uint64_t
    - WeaveConnection*
    - HostPortList*
    - InterfaceId
    - WeaveAuthMode
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1494
      start: 1480
    functionDepth: 0
    functionLinenumber: 1480
    functionLinenumberEnd: 1494
    functionName: ServiceConnectBeginArgs::ServiceConnectBeginArgs
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "ServiceConnectBeginArgs::ServiceConnectBeginArgs(\n    uint64_t inServiceEndpoint,\n
      \   WeaveConnection *inConnection,\n    HostPortList *inEndpointHostPortList,\n
      \   InterfaceId inConnectIntf,\n    WeaveAuthMode inAuthMode,\n    uint8_t inDNSOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1514,1
    - Dst: WeaveServiceManager::lookup
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1516,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1517,1
    - Dst: WeaveConnection*::SetConnectTimeout
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1522,1
    - Dst: mConnectBegin
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1541,1
    - Dst: WeaveConnection*::Connect
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1544,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1549,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1555,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 7
    argNames:
    - aConnection
    - aServiceEp
    - aAuthMode
    - aAppState
    - aHandler
    - aConnectTimeoutMsecs
    - aConnectIntf
    argTypes:
    - WeaveConnection*
    - uint64_t
    - WeaveAuthMode
    - void*
    - WeaveConnection::ConnectionCompleteFunct
    - uint32_t
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 1558
      start: 1503
    functionDepth: 0
    functionLinenumber: 1503
    functionLinenumberEnd: 1558
    functionName: WeaveServiceManager::lookupAndConnect
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 2
    functionsReached:
    - WeaveLogProgress
    - WeaveConnection*::SetConnectTimeout
    - WeaveServiceManager::lookup
    - WeaveConnection*::Connect
    - SuccessOrExit
    - ErrorStr
    - mConnectBegin
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveServiceManager::lookupAndConnect(WeaveConnection *aConnection,\n
      \                                                 uint64_t aServiceEp,\n                                                  WeaveAuthMode
      aAuthMode,\n                                                  void *aAppState,\n
      \                                                 WeaveConnection::ConnectionCompleteFunct
      aHandler,\n                                                  const uint32_t
      aConnectTimeoutMsecs,\n                                                  const
      InterfaceId aConnectIntf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1571,1
    - Dst: Platform::LoadPersistentServiceDir
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1572,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1572,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1573,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1576,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1578,1
    - Dst: WeaveServiceManager::unpackPacketBuffer
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1580,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1581,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1565
    functionDepth: 3
    functionLinenumber: 1565
    functionLinenumberEnd: 1589
    functionName: WeaveServiceManager::loadPersistentServiceDirIntoCache
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 1
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::Free
    - WeaveServiceManager::unpackPacketBuffer
    - PacketBuffer*::Start
    - SuccessOrExit
    - Platform::LoadPersistentServiceDir
    - nl::Weave::System::PacketBuffer::New
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveServiceManager::loadPersistentServiceDirIntoCache()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1604,1
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1617,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1618,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1629,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1633,1
    - Dst: WeaveServiceManager::cacheDirectory
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1643,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1644,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1648,1
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1650,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1651,1
    - Dst: WeaveServiceManager::cacheSuffixes
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1659,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1660,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1671,1
    - Dst: WeaveServiceManager::handleTimeInfo
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1673,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1674,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 3
    argNames:
    - aMsg
    - useTimeInfo
    - redir
    argTypes:
    - PacketBuffer*
    - bool
    - bool*
    constantsTouched: []
    func_position:
      end: 1681
      start: 1600
    functionDepth: 2
    functionLinenumber: 1600
    functionLinenumberEnd: 1681
    functionName: WeaveServiceManager::unpackPacketBuffer
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 2
    functionsReached:
    - MessageIterator::readByte
    - WeaveServiceManager::handleTimeInfo
    - WeaveLogProgress
    - WeaveServiceManager::cacheDirectory
    - SuccessOrExit
    - WeaveServiceManager::cacheSuffixes
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveServiceManager::unpackPacketBuffer(PacketBuffer *aMsg, bool useTimeInfo,
      bool *redir)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1707,1
    - Dst: MessageIterator::read64
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1718,1
    - Dst: MessageIterator::read64
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1730,1
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1745,1
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1756,1
    - Dst: MessageIterator::readBytes
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1765,1
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1776,1
    - Dst: MessageIterator::read16
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1786,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 46
    argCount: 3
    argNames:
    - aIterator
    - aLength
    - aWritePtr
    argTypes:
    - MessageIterator
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1802
      start: 1698
    functionDepth: 3
    functionLinenumber: 1698
    functionLinenumberEnd: 1802
    functionName: WeaveServiceManager::cacheDirectory
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 1
    functionsReached:
    - MessageIterator::read64
    - MessageIterator::readByte
    - MessageIterator::read16
    - MessageIterator::readBytes
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveServiceManager::cacheDirectory(MessageIterator &aIterator, uint8_t
      aLength, uint8_t *&aWritePtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1828,1
    - Dst: MessageIterator::readBytes
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1837,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - aIterator
    - aLength
    - aWritePtr
    argTypes:
    - MessageIterator
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1850
      start: 1819
    functionDepth: 2
    functionLinenumber: 1819
    functionLinenumberEnd: 1850
    functionName: WeaveServiceManager::cacheSuffixes
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 1
    functionsReached:
    - MessageIterator::readByte
    - MessageIterator::readBytes
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveServiceManager::cacheSuffixes(MessageIterator &aIterator, uint8_t
      aLength, uint8_t *&aWritePtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1862,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1862,1
    - Dst: WeaveServiceManager::cleanupExchangeContext
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1864,1
    - Dst: WeaveServiceManager::clearWorkingState
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1866,1
    - Dst: clearCacheState
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1867,1
    - Dst: Platform::ClearPersistentServiceDir
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1870,1
    - Dst: WeaveServiceManager::transactionsErrorOut
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aError
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1874
      start: 1860
    functionDepth: 1
    functionLinenumber: 1860
    functionLinenumberEnd: 1874
    functionName: WeaveServiceManager::fail
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 4
    functionsReached:
    - WeaveServiceManager::cleanupExchangeContext
    - WeaveLogProgress
    - Platform::ClearPersistentServiceDir
    - clearCacheState
    - ErrorStr
    - WeaveServiceManager::transactionsErrorOut
    - WeaveServiceManager::clearWorkingState
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::fail(WEAVE_ERROR aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1885,1
    - Dst: ConnectRequest*::finalize
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1892,1
    - Dst: statusHndlr
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1895,1
    - Dst: SYSTEM_STATS_RESET
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1898,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - aError
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1899
      start: 1883
    functionDepth: 0
    functionLinenumber: 1883
    functionLinenumberEnd: 1899
    functionName: WeaveServiceManager::transactionsErrorOut
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 1
    functionsReached:
    - statusHndlr
    - ConnectRequest*::finalize
    - ARRAY_SIZE
    - SYSTEM_STATS_RESET
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::transactionsErrorOut(WEAVE_ERROR aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1910,1
    - Dst: ConnectRequest*::finalize
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1917,1
    - Dst: statusHndlr
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1920,1
    - Dst: SYSTEM_STATS_RESET
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1923,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - aReport
    argTypes:
    - StatusReport
    constantsTouched: []
    func_position:
      end: 1924
      start: 1908
    functionDepth: 0
    functionLinenumber: 1908
    functionLinenumberEnd: 1924
    functionName: WeaveServiceManager::transactionsReportStatus
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 1
    functionsReached:
    - statusHndlr
    - ConnectRequest*::finalize
    - ARRAY_SIZE
    - SYSTEM_STATS_RESET
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::transactionsReportStatus(StatusReport &aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1941,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1949,1
    - Dst: Abort
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1953,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - aErr
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1957
      start: 1937
    functionDepth: 0
    functionLinenumber: 1937
    functionLinenumberEnd: 1957
    functionName: WeaveServiceManager::cleanupExchangeContext
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 7
    functionsReached:
    - Close
    - Abort
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::cleanupExchangeContext(WEAVE_ERROR aErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveServiceManager::cleanupExchangeContext
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:1968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1966
    functionDepth: 1
    functionLinenumber: 1966
    functionLinenumberEnd: 1969
    functionName: WeaveServiceManager::cleanupExchangeContext
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 8
    functionsReached:
    - WeaveServiceManager::cleanupExchangeContext
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::cleanupExchangeContext(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1983
      start: 1976
    functionDepth: 0
    functionLinenumber: 1976
    functionLinenumberEnd: 1983
    functionName: WeaveServiceManager::clearWorkingState
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::clearWorkingState(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:2005,1
    - Dst: MessageIterator::read64
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:2005,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:2006,1
    - Dst: MessageIterator::read32
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:2006,1
    - Dst: mServiceEndpointQueryEndWithTimeInfo
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:2010,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:2014,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - itMsg
    argTypes:
    - MessageIterator
    constantsTouched: []
    func_position:
      end: 2016
      start: 1999
    functionDepth: 3
    functionLinenumber: 1999
    functionLinenumberEnd: 2016
    functionName: WeaveServiceManager::handleTimeInfo
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 1
    functionsReached:
    - MessageIterator::read64
    - MessageIterator::read32
    - mServiceEndpointQueryEndWithTimeInfo
    - SuccessOrExit
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveServiceManager::handleTimeInfo(MessageIterator &itMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:2026,1
    - Dst: WeaveServiceManager::clearWorkingState
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:2030,1
    - Dst: clearCacheState
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:2031,1
    - Dst: Platform::ClearPersistentServiceDir
      Src: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp:2034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 2024
    functionDepth: 1
    functionLinenumber: 2024
    functionLinenumberEnd: 2037
    functionName: WeaveServiceManager::clearCache
    functionSourceFile: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - clearCacheState
    - WeaveServiceManager::clearWorkingState
    - Platform::ClearPersistentServiceDir
    linkageType: ''
    returnType: void
    signature: WeaveServiceManager::clearCache(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - struct WirelessRegDomain
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: WirelessRegDomain::operator ==(const struct WirelessRegDomain &
      other) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.h
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: WirelessRegDomain::operator ==(const struct WirelessRegDomain & other)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - struct WirelessRegDomain
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: WirelessRegDomain::operator !=(const struct WirelessRegDomain &
      other) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.h
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: WirelessRegDomain::operator !=(const struct WirelessRegDomain & other)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: nl::Weave::Profiles::NetworkProvisioning::WirelessRegDomain::IsNull
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WirelessRegDomain::IsNull(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: nl::Weave::Profiles::NetworkProvisioning::WirelessRegDomain::IsWorldWide
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WirelessRegDomain::IsWorldWide(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: nl::Weave::Profiles::NetworkProvisioning::WirelessRegConfig::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: WirelessRegConfig::Init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsNull
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: nl::Weave::Profiles::NetworkProvisioning::WirelessRegConfig::IsRegDomainPresent
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.h
    functionUses: 0
    functionsReached:
    - IsNull
    linkageType: ''
    returnType: bool
    signature: WirelessRegConfig::IsRegDomainPresent(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: nl::Weave::Profiles::NetworkProvisioning::WirelessRegConfig::IsOpLocationPresent
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WirelessRegConfig::IsOpLocationPresent(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: NetworkProvisioning::NetworkProvisioningServer::NetworkProvisioningServer
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: NetworkProvisioningServer::NetworkProvisioningServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:78,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:82,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:83,1
    - Dst: NetworkProvisioning::NetworkProvisioningServer::RegisterSessionEndCallbackWithFabricState
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 90
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 90
    functionName: NetworkProvisioning::NetworkProvisioningServer::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp
    functionUses: 0
    functionsReached:
    - NetworkProvisioning::NetworkProvisioningServer::RegisterSessionEndCallbackWithFabricState
    - RegisterUnsolicitedMessageHandler
    - memset
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkProvisioningServer::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: NetworkProvisioning::NetworkProvisioningServer::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkProvisioningServer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - delegate
    argTypes:
    - NetworkProvisioningDelegate*
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: NetworkProvisioning::NetworkProvisioningServer::SetDelegate
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: NetworkProvisioningServer::SetDelegate(NetworkProvisioningDelegate
      *delegate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetworkProvisioning::NetworkProvisioningServer::SendCompleteWithNetworkList
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - resultCount
    - scanResultsTLV
    argTypes:
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: NetworkProvisioning::NetworkProvisioningServer::SendNetworkScanComplete
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp
    functionUses: 0
    functionsReached:
    - NetworkProvisioning::NetworkProvisioningServer::SendCompleteWithNetworkList
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkProvisioningServer::SendNetworkScanComplete(uint8_t resultCount,
      PacketBuffer *scanResultsTLV)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetworkProvisioning::NetworkProvisioningServer::SendCompleteWithNetworkList
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - resultCount
    - scanResultsTLV
    argTypes:
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: NetworkProvisioning::NetworkProvisioningServer::SendGetNetworksComplete
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp
    functionUses: 0
    functionsReached:
    - NetworkProvisioning::NetworkProvisioningServer::SendCompleteWithNetworkList
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkProvisioningServer::SendGetNetworksComplete(uint8_t resultCount,
      PacketBuffer *scanResultsTLV)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:157,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:158,1
    - Dst: PacketBuffer*::EnsureReservedSize
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:160,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:161,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:163,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:164,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:168,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:178,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - msgType
    - resultCount
    - resultTLV
    argTypes:
    - uint8_t
    - int8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 184
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 184
    functionName: NetworkProvisioning::NetworkProvisioningServer::SendCompleteWithNetworkList
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp
    functionUses: 2
    functionsReached:
    - SendMessage
    - Close
    - nl::Weave::System::PacketBuffer::Free
    - PacketBuffer*::SetStart
    - VerifyOrExit
    - ExitNow
    - PacketBuffer*::Start
    - PacketBuffer*::EnsureReservedSize
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkProvisioningServer::SendCompleteWithNetworkList(uint8_t msgType,
      int8_t resultCount, PacketBuffer *resultTLV)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:204,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:205,1
    - Dst: nl::Weave::WeaveKeyId::IsSessionKey
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:210,1
    - Dst: NetworkProvisioning::NetworkProvisioningServer::GrantCredentialAccessPrivilege
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:212,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:215,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:216,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:218,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:219,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:220,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:222,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:232,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:236,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - networkId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 238
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 238
    functionName: NetworkProvisioning::NetworkProvisioningServer::SendAddNetworkComplete
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - NetworkProvisioning::NetworkProvisioningServer::GrantCredentialAccessPrivilege
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - nl::Weave::WeaveKeyId::IsSessionKey
    - PacketBuffer*::Start
    - nl::Weave::Encoding::LittleEndian::Write32
    - Close
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkProvisioningServer::SendAddNetworkComplete(uint32_t networkId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:256,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:257,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:259,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:269,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - resultsTLV
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 274
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 274
    functionName: NetworkProvisioning::NetworkProvisioningServer::SendGetWirelessRegulatoryConfigComplete
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - Close
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkProvisioningServer::SendGetWirelessRegulatoryConfigComplete(PacketBuffer
      *resultsTLV)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetworkProvisioning::NetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 287
    functionName: NetworkProvisioning::NetworkProvisioningServer::SendSuccessResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp
    functionUses: 0
    functionsReached:
    - NetworkProvisioning::NetworkProvisioningServer::SendStatusReport
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkProvisioningServer::SendSuccessResponse()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:305,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:306,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:308,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - statusProfileId
    - statusCode
    - sysError
    argTypes:
    - uint32_t
    - uint16_t
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 323
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 323
    functionName: NetworkProvisioning::NetworkProvisioningServer::SendStatusReport
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp
    functionUses: 1
    functionsReached:
    - Close
    - nl::Weave::WeaveServerBase::SendStatusReport
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkProvisioningServer::SendStatusReport(uint32_t statusProfileId,
      uint16_t statusCode, WEAVE_ERROR sysError)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - keyId
    - peerNodeId
    argTypes:
    - uint16_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 337
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 337
    functionName: NetworkProvisioning::NetworkProvisioningServer::SessionHasCredentialAccessPrivilege
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: NetworkProvisioningServer::SessionHasCredentialAccessPrivilege(uint16_t
      keyId, uint64_t peerNodeId) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - keyId
    - peerNodeId
    argTypes:
    - uint16_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 343
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 343
    functionName: NetworkProvisioning::NetworkProvisioningServer::GrantCredentialAccessPrivilege
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: NetworkProvisioningServer::GrantCredentialAccessPrivilege(uint16_t
      keyId, uint64_t peerNodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 348
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 348
    functionName: NetworkProvisioning::NetworkProvisioningServer::ClearCredentialAccessPrivilege
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: NetworkProvisioningServer::ClearCredentialAccessPrivilege(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<NetworkProvisioningServer *>
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:352,1
    - Dst: NetworkProvisioningServer*::SessionHasCredentialAccessPrivilege
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:355,1
    - Dst: NetworkProvisioningServer*::ClearCredentialAccessPrivilege
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - keyId
    - peerNodeId
    - context
    argTypes:
    - uint16_t
    - uint64_t
    - void*
    constantsTouched: []
    func_position:
      end: 359
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 359
    functionName: NetworkProvisioning::NetworkProvisioningServer::HandleSessionEnd
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp
    functionUses: 0
    functionsReached:
    - NetworkProvisioningServer*::SessionHasCredentialAccessPrivilege
    - static_cast<NetworkProvisioningServer *>
    - NetworkProvisioningServer*::ClearCredentialAccessPrivilege
    linkageType: ''
    returnType: void
    signature: NetworkProvisioningServer::HandleSessionEnd(uint16_t keyId, uint64_t
      peerNodeId, void *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterSessionEndCallback
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 372
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 372
    functionName: NetworkProvisioning::NetworkProvisioningServer::RegisterSessionEndCallbackWithFabricState
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp
    functionUses: 1
    functionsReached:
    - RegisterSessionEndCallback
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkProvisioningServer::RegisterSessionEndCallbackWithFabricState(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:390,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:391,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:392,1
    - Dst: NetworkProvisioningServer*::EnforceAccessControl
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:398,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:400,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:401,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:407,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:408,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:409,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:416,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:417,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:423,1
    - Dst: Get8
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:424,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:425,1
    - Dst: NetworkProvisioningDelegate*::HandleScanNetworks
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:427,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:434,1
    - Dst: NetworkProvisioningDelegate*::HandleAddNetwork
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:435,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:440,1
    - Dst: NetworkProvisioningDelegate*::HandleUpdateNetwork
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:441,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:449,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:450,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:451,1
    - Dst: NetworkProvisioningDelegate*::HandleRemoveNetwork
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:454,1
    - Dst: NetworkProvisioningDelegate*::HandleEnableNetwork
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:456,1
    - Dst: NetworkProvisioningDelegate*::HandleDisableNetwork
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:458,1
    - Dst: NetworkProvisioningDelegate*::HandleTestConnectivity
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:460,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:464,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:466,1
    - Dst: NetworkProvisioningDelegate*::IsPairedToAccount
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:476,1
    - Dst: NetworkProvisioningServer*::SessionHasCredentialAccessPrivilege
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:478,1
    - Dst: NetworkProvisioningServer*::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:480,1
    - Dst: NetworkProvisioningDelegate*::HandleGetNetworks
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:485,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:489,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:490,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:492,1
    - Dst: NetworkProvisioningDelegate*::IsPairedToAccount
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:500,1
    - Dst: NetworkProvisioningServer*::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:502,1
    - Dst: NetworkProvisioningDelegate*::HandleSetRendezvousMode
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:508,1
    - Dst: NetworkProvisioningServer*::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:512,1
    - Dst: NetworkProvisioningDelegate*::HandleGetWirelessRegulatoryConfig
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:516,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:520,1
    - Dst: NetworkProvisioningDelegate*::HandleSetWirelessRegulatoryConfig
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:521,1
    - Dst: NetworkProvisioningServer*::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:526,1
    - Dst: NetworkProvisioningServer*::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:536,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:540,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 99
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 541
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 541
    functionName: NetworkProvisioning::NetworkProvisioningServer::HandleRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp
    functionUses: 0
    functionsReached:
    - NetworkProvisioningDelegate*::HandleScanNetworks
    - NetworkProvisioningDelegate*::HandleAddNetwork
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - NetworkProvisioningDelegate*::HandleSetRendezvousMode
    - NetworkProvisioningServer*::SendStatusReport
    - nl::Weave::Encoding::LittleEndian::Read16
    - Get8
    - NetworkProvisioningDelegate*::HandleEnableNetwork
    - NetworkProvisioningServer*::SessionHasCredentialAccessPrivilege
    - NetworkProvisioningDelegate*::HandleSetWirelessRegulatoryConfig
    - ExitNow
    - PacketBuffer*::Start
    - NetworkProvisioningDelegate*::HandleRemoveNetwork
    - NetworkProvisioningDelegate*::HandleDisableNetwork
    - NetworkProvisioningDelegate*::HandleUpdateNetwork
    - nl::Weave::WeaveServerBase::SendStatusReport
    - NetworkProvisioningDelegate*::HandleGetNetworks
    - PacketBuffer*::DataLength
    - NetworkProvisioningDelegate*::IsPairedToAccount
    - NetworkProvisioningDelegate*::HandleTestConnectivity
    - NetworkProvisioningDelegate*::HandleGetWirelessRegulatoryConfig
    - NetworkProvisioningServer*::EnforceAccessControl
    - nl::Weave::Encoding::LittleEndian::Read32
    linkageType: ''
    returnType: void
    signature: "NetworkProvisioningServer::HandleRequest(ExchangeContext *ec, const
      IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId,\n
      \       uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 547
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 547
    functionName: NetworkProvisioning::NetworkProvisioningDelegate::HandleGetWirelessRegulatoryConfig
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp
    functionUses: 0
    functionsReached:
    - SendStatusReport
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkProvisioningDelegate::HandleGetWirelessRegulatoryConfig(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:551,1
    - Dst: SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - regConfigTLV
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 554
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 554
    functionName: NetworkProvisioning::NetworkProvisioningDelegate::HandleSetWirelessRegulatoryConfig
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp
    functionUses: 0
    functionsReached:
    - SendStatusReport
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkProvisioningDelegate::HandleSetWirelessRegulatoryConfig(PacketBuffer
      * regConfigTLV)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsPairedToAccount
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:580,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:597,1
    - Dst: nl::Weave::WeaveServerDelegateBase::EnforceAccessControl
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp:604,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 5
    argNames:
    - ec
    - msgProfileId
    - msgType
    - msgInfo
    - ' result'
    argTypes:
    - ExchangeContext*
    - uint32_t
    - uint8_t
    - WeaveMessageInfo*
    - AccessControlResult
    constantsTouched: []
    func_position:
      end: 615
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 615
    functionName: NetworkProvisioning::NetworkProvisioningDelegate::EnforceAccessControl
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp
    functionUses: 0
    functionsReached:
    - IsPairedToAccount
    - nl::Weave::WeaveServerDelegateBase::EnforceAccessControl
    - nl::Weave::WeaveServerBase::SendStatusReport
    linkageType: ''
    returnType: void
    signature: "NetworkProvisioningDelegate::EnforceAccessControl(ExchangeContext
      *ec, uint32_t msgProfileId, uint8_t msgType,\n        const WeaveMessageInfo
      *msgInfo, AccessControlResult& result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 58
    functionName: nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::NetworkInfo
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: NetworkInfo::NetworkInfo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: NetworkInfo::~NetworkInfo()
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp
    functionUses: 0
    functionsReached:
    - Clear
    linkageType: ''
    returnType: void
    signature: NetworkInfo::~NetworkInfo()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:69,1
    - Dst: strdup
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ' dest'
    - src
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 83
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 83
    functionName: nl::Weave::Profiles::NetworkProvisioning::ReplaceValue
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp
    functionUses: 0
    functionsReached:
    - free
    - strdup
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReplaceValue(char *& dest, const char *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:89,1
    - Dst: malloc
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:92,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:95,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - ' dest'
    - ' destLen'
    - src
    - srcLen
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 108
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 108
    functionName: nl::Weave::Profiles::NetworkProvisioning::ReplaceValue
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReplaceValue(uint8_t *& dest, uint32_t& destLen, const uint8_t *src,
      uint32_t srcLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReplaceValue
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:117,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:118,1
    - Dst: ReplaceValue
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:122,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:123,1
    - Dst: ReplaceValue
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:124,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:125,1
    - Dst: ReplaceValue
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:126,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:127,1
    - Dst: ReplaceValue
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:128,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:129,1
    - Dst: ReplaceValue
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:130,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - ' dest'
    argTypes:
    - NetworkInfo
    constantsTouched: []
    func_position:
      end: 138
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 138
    functionName: nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::CopyTo
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp
    functionUses: 0
    functionsReached:
    - ReplaceValue
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkInfo::CopyTo(NetworkInfo& dest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReplaceValue
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:151,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:152,1
    - Dst: ReplaceValue
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:162,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:163,1
    - Dst: ReplaceValue
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:167,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:168,1
    - Dst: ReplaceValue
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:172,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:173,1
    - Dst: ReplaceValue
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:177,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:178,1
    - Dst: ReplaceValue
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:182,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:183,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 1
    argNames:
    - ' dest'
    argTypes:
    - NetworkInfo
    constantsTouched: []
    func_position:
      end: 194
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 194
    functionName: nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::MergeTo
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp
    functionUses: 0
    functionsReached:
    - ReplaceValue
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkInfo::MergeTo(NetworkInfo& dest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:202,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:202,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:204,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:205,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:207,1
    - Dst: IsProfileTag
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:211,1
    - Dst: ProfileIdFromTag
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:211,1
    - Dst: TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:214,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:217,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:217,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:218,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:219,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:222,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:222,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:223,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:224,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:228,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:228,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:229,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:230,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:233,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:233,1
    - Dst: DupString
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:234,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:235,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:238,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:238,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:239,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:240,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:244,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:244,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:245,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:246,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:250,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:250,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:251,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:252,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:256,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:256,1
    - Dst: DupBytes
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:257,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:258,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:261,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:261,1
    - Dst: DupString
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:262,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:263,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:266,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:266,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:267,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:267,1
    - Dst: DupBytes
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:268,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:269,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:272,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:272,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:273,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:274,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:275,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:279,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:279,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:280,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:281,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:282,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:286,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:286,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:287,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:287,1
    - Dst: DupBytes
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:288,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:289,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:292,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:292,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:293,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:293,1
    - Dst: DupBytes
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:294,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:295,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:305,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:307,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:308,1
    - Dst: nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::Clear
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:312,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 102
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 314
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 314
    functionName: nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::Decode
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - DupString
    - DupBytes
    - GetLength
    - VerifyOrExit
    - IsProfileTag
    - ExitNow
    - GetType
    - ExitContainer
    - TagNumFromTag
    - nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::Clear
    - Get
    - SuccessOrExit
    - ProfileIdFromTag
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkInfo::Decode(nl::Weave::TLV::TLVReader& reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:325,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:326,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:330,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:330,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:331,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:336,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:336,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:337,1
    - Dst: PutString
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:342,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:342,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:343,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:348,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:348,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:349,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:354,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:354,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:355,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:360,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:360,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:362,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:367,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:367,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:369,1
    - Dst: PutString
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:374,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:374,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:375,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:380,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:380,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:381,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:386,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:387,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:387,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:388,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:393,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:393,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:394,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:399,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:399,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:401,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:406,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:406,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:408,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:413,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:413,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:415,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:418,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:419,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 65
    argCount: 2
    argNames:
    - ' writer'
    - encodeFlags
    argTypes:
    - nl::Weave::TLV::TLVWriter
    - uint8_t
    constantsTouched: []
    func_position:
      end: 423
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 423
    functionName: nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::Encode
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp
    functionUses: 0
    functionsReached:
    - PutString
    - StartContainer
    - VerifyOrExit
    - PutBytes
    - ProfileTag
    - EndContainer
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkInfo::Encode(nl::Weave::TLV::TLVWriter& writer, uint8_t encodeFlags)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:440,1
    - Dst: free
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:445,1
    - Dst: free
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:450,1
    - Dst: free
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:455,1
    - Dst: free
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:460,1
    - Dst: free
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:465,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 470
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 470
    functionName: nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: NetworkInfo::Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:479,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:479,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:481,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:482,1
    - Dst: NetworkInfo::NetworkInfo
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:487,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:494,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:495,1
    - Dst: nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::Decode
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:497,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:498,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:501,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:502,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - ' reader'
    - ' elemCount'
    - ' elemArray'
    argTypes:
    - nl::Weave::TLV::TLVReader
    - uint16_t
    - NetworkInfo*
    constantsTouched: []
    func_position:
      end: 517
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 517
    functionName: nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::DecodeList
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp
    functionUses: 1
    functionsReached:
    - EnterContainer
    - Next
    - nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::Decode
    - VerifyOrExit
    - GetType
    - ExitContainer
    - SuccessOrExit
    - NetworkInfo::NetworkInfo
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkInfo::DecodeList(nl::Weave::TLV::TLVReader& reader, uint16_t&
      elemCount, NetworkInfo *& elemArray)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:524,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:525,1
    - Dst: nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::Encode
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:529,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:530,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:533,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - ' writer'
    - elemCount
    - elemArray
    - encodeFlags
    argTypes:
    - nl::Weave::TLV::TLVWriter
    - uint16_t
    - NetworkInfo*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 538
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 538
    functionName: nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::EncodeList
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::Encode
    - EndContainer
    - StartContainer
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NetworkInfo::EncodeList(nl::Weave::TLV::TLVWriter& writer, uint16_t
      elemCount, const NetworkInfo *elemArray, uint8_t encodeFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:548,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:549,1
    - Dst: nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::Encode
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:555,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:556,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:560,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp:561,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - ' writer'
    - arrayLen
    - elemArray
    - networkType
    - encodeFlags
    - ' encodedElemCount'
    argTypes:
    - nl::Weave::TLV::TLVWriter
    - uint16_t
    - NetworkInfo*
    - ::nl::Weave::Profiles::NetworkProvisioning::NetworkType
    - uint8_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 565
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 565
    functionName: nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::EncodeList
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::Encode
    - EndContainer
    - StartContainer
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "NetworkInfo::EncodeList(nl::Weave::TLV::TLVWriter& writer, uint16_t
      arrayLen, const NetworkInfo *elemArray,\n                                    ::nl::Weave::Profiles::NetworkProvisioning::NetworkType
      networkType, uint8_t encodeFlags, uint16_t& encodedElemCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::NetworkProvisioning::NetworkInfo
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 234
    functionName: nl::Weave::Profiles::NetworkProvisioning::NetworkInfo
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::NetworkProvisioning::NetworkInfo
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: NetworkInfo
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:67,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:68,1
    - Dst: nl::Weave::Profiles::NetworkProvisioning::WirelessRegConfig::IsRegDomainPresent
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:70,1
    - Dst: PutString
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:72,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:72,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:73,1
    - Dst: nl::Weave::Profiles::NetworkProvisioning::WirelessRegConfig::IsOpLocationPresent
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:76,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:78,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:78,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:79,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:86,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:86,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:87,1
    - Dst: PutString
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:91,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:92,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:95,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:96,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:99,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - ' writer'
    argTypes:
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 104
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 104
    functionName: nl::Weave::Profiles::NetworkProvisioning::WirelessRegConfig::Encode
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp
    functionUses: 0
    functionsReached:
    - PutString
    - StartContainer
    - nl::Weave::Profiles::NetworkProvisioning::WirelessRegConfig::IsRegDomainPresent
    - ContextTag
    - EndContainer
    - Put
    - SuccessOrExit
    - nl::Weave::Profiles::NetworkProvisioning::WirelessRegConfig::IsOpLocationPresent
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WirelessRegConfig::Encode(TLVWriter & writer) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:133,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:135,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:136,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:139,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:139,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:141,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:142,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:144,1
    - Dst: IsContextTag
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:148,1
    - Dst: TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:151,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:154,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:154,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:155,1
    - Dst: nl::Weave::Profiles::NetworkProvisioning::WirelessRegConfig::IsRegDomainPresent
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:155,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:156,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:156,1
    - Dst: GetBytes
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:157,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:158,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:162,1
    - Dst: nl::Weave::Profiles::NetworkProvisioning::WirelessRegConfig::IsOpLocationPresent
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:162,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:163,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:164,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:165,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:169,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:169,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:170,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:172,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:173,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:175,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:177,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:178,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:178,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:179,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:179,1
    - Dst: GetBytes
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:180,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:181,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:182,1
    - Dst: IsNull
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:182,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:186,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:187,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:197,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:198,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLVReader
    constantsTouched: []
    func_position:
      end: 202
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 202
    functionName: nl::Weave::Profiles::NetworkProvisioning::WirelessRegConfig::Decode
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - IsContextTag
    - GetLength
    - IsNull
    - nl::Weave::Profiles::NetworkProvisioning::WirelessRegConfig::IsRegDomainPresent
    - VerifyOrExit
    - GetBytes
    - GetType
    - ExitContainer
    - TagNumFromTag
    - Get
    - SuccessOrExit
    - nl::Weave::Profiles::NetworkProvisioning::WirelessRegConfig::IsOpLocationPresent
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WirelessRegConfig::Decode(TLVReader & reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<WirelessRegDomain *>
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:228,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:228,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:229,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:229,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:231,1
    - Dst: nl::Weave::Profiles::NetworkProvisioning::WirelessRegConfig::Decode
      Src: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - buf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 234
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 234
    functionName: nl::Weave::Profiles::NetworkProvisioning::WirelessRegConfig::DecodeInPlace
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - static_cast<uint16_t>
    - nl::Weave::Profiles::NetworkProvisioning::WirelessRegConfig::Decode
    - reinterpret_cast<WirelessRegDomain *>
    - PacketBuffer*::MaxDataLength
    - PacketBuffer*::Start
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WirelessRegConfig::DecodeInPlace(PacketBuffer * buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 457
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 457
    functionName: nl::Weave::Profiles::NetworkProvisioning::NetworkProvisioningServer
    functionSourceFile: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: NetworkProvisioningServer
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 225
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 225
    functionName: nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer
    functionSourceFile: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: FabricProvisioningServer
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::FabricProvisioningServer
    functionSourceFile: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: FabricProvisioningServer::FabricProvisioningServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:76,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:80,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:81,1
    - Dst: nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::RegisterSessionEndCallbackWithFabricState
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 88
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 88
    functionName: nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp
    functionUses: 0
    functionsReached:
    - RegisterUnsolicitedMessageHandler
    - nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::RegisterSessionEndCallbackWithFabricState
    - memset
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: FabricProvisioningServer::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp
    functionUses: 0
    functionsReached:
    - UnregisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: FabricProvisioningServer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - delegate
    argTypes:
    - FabricProvisioningDelegate*
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::SetDelegate
    functionSourceFile: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: FabricProvisioningServer::SetDelegate(FabricProvisioningDelegate *delegate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::SendSuccessResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::SendStatusReport
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: FabricProvisioningServer::SendSuccessResponse()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:148,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:150,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - statusProfileId
    - statusCode
    - sysError
    argTypes:
    - uint32_t
    - uint16_t
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 161
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 161
    functionName: nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::SendStatusReport
    functionSourceFile: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp
    functionUses: 1
    functionsReached:
    - Close
    - nl::Weave::WeaveServerBase::SendStatusReport
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: FabricProvisioningServer::SendStatusReport(uint32_t statusProfileId,
      uint16_t statusCode, WEAVE_ERROR sysError)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - keyId
    - peerNodeId
    argTypes:
    - uint16_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::SessionHasFabricConfigAccessPrivilege
    functionSourceFile: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: FabricProvisioningServer::SessionHasFabricConfigAccessPrivilege(uint16_t
      keyId, uint64_t peerNodeId) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - keyId
    - peerNodeId
    argTypes:
    - uint16_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::GrantFabricConfigAccessPrivilege
    functionSourceFile: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: FabricProvisioningServer::GrantFabricConfigAccessPrivilege(uint16_t
      keyId, uint64_t peerNodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::ClearFabricConfigAccessPrivilege
    functionSourceFile: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: FabricProvisioningServer::ClearFabricConfigAccessPrivilege(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<FabricProvisioningServer *>
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:190,1
    - Dst: FabricProvisioningServer*::SessionHasFabricConfigAccessPrivilege
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:193,1
    - Dst: FabricProvisioningServer*::ClearFabricConfigAccessPrivilege
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - keyId
    - peerNodeId
    - context
    argTypes:
    - uint16_t
    - uint64_t
    - void*
    constantsTouched: []
    func_position:
      end: 197
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 197
    functionName: nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::HandleSessionEnd
    functionSourceFile: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp
    functionUses: 0
    functionsReached:
    - FabricProvisioningServer*::SessionHasFabricConfigAccessPrivilege
    - static_cast<FabricProvisioningServer *>
    - FabricProvisioningServer*::ClearFabricConfigAccessPrivilege
    linkageType: ''
    returnType: void
    signature: FabricProvisioningServer::HandleSessionEnd(uint16_t keyId, uint64_t
      peerNodeId, void *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterSessionEndCallback
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 210
    functionName: nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::RegisterSessionEndCallbackWithFabricState
    functionSourceFile: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp
    functionUses: 1
    functionsReached:
    - RegisterSessionEndCallback
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: FabricProvisioningServer::RegisterSessionEndCallbackWithFabricState(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:222,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:223,1
    - Dst: FabricProvisioningServer*::EnforceAccessControl
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:230,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:232,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:233,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:239,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:240,1
    - Dst: FabricProvisioningServer*::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:255,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:256,1
    - Dst: FabricProvisioningServer*::FabricState::CreateFabric
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:260,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:261,1
    - Dst: FabricProvisioningDelegate*::HandleCreateFabric
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:265,1
    - Dst: FabricProvisioningServer*::FabricState::ClearFabricState
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:267,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:268,1
    - Dst: nl::Weave::WeaveKeyId::IsSessionKey
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:271,1
    - Dst: FabricProvisioningServer*::GrantFabricConfigAccessPrivilege
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:274,1
    - Dst: FabricProvisioningServer*::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:284,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:285,1
    - Dst: FabricProvisioningServer*::FabricState::ClearFabricState
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:289,1
    - Dst: FabricProvisioningDelegate*::HandleLeaveFabric
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:292,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:293,1
    - Dst: FabricProvisioningServer*::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:302,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:303,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:307,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:308,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:309,1
    - Dst: FabricProvisioningServer*::FabricState::GetFabricState
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:311,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:311,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:311,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:312,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:313,1
    - Dst: FabricProvisioningServer*::mCurClientOp::SendMessage
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:316,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:318,1
    - Dst: FabricProvisioningServer*::mCurClientOp::Close
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:320,1
    - Dst: FabricProvisioningDelegate*::HandleGetFabricConfig
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:323,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:324,1
    - Dst: FabricProvisioningServer*::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:333,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:334,1
    - Dst: FabricProvisioningServer*::FabricState::JoinExistingFabric
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:339,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:339,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:339,1
    - Dst: FabricProvisioningServer*::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:342,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:343,1
    - Dst: FabricProvisioningDelegate*::HandleJoinExistingFabric
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:348,1
    - Dst: FabricProvisioningServer*::FabricState::ClearFabricState
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:350,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:351,1
    - Dst: FabricProvisioningServer*::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:356,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:363,1
    - Dst: FabricProvisioningServer*::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:370,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 88
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - msgBuf
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 372
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 372
    functionName: nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::HandleClientRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp
    functionUses: 0
    functionsReached:
    - FabricProvisioningDelegate*::HandleLeaveFabric
    - FabricProvisioningServer*::FabricState::ClearFabricState
    - nl::Weave::System::PacketBuffer::New
    - FabricProvisioningServer*::SendStatusReport
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    - FabricProvisioningServer*::mCurClientOp::SendMessage
    - VerifyOrExit
    - SuccessOrExit
    - nl::Weave::WeaveKeyId::IsSessionKey
    - PacketBuffer*::AvailableDataLength
    - PacketBuffer*::SetDataLength
    - FabricProvisioningServer*::FabricState::JoinExistingFabric
    - ExitNow
    - FabricProvisioningServer*::EnforceAccessControl
    - FabricProvisioningDelegate*::HandleCreateFabric
    - nl::Weave::WeaveServerBase::SendStatusReport
    - PacketBuffer*::DataLength
    - FabricProvisioningServer*::FabricState::CreateFabric
    - FabricProvisioningDelegate*::HandleJoinExistingFabric
    - FabricProvisioningServer*::FabricState::GetFabricState
    - FabricProvisioningServer*::mCurClientOp::Close
    - FabricProvisioningServer*::GrantFabricConfigAccessPrivilege
    - PacketBuffer*::Start
    - FabricProvisioningDelegate*::HandleGetFabricConfig
    linkageType: ''
    returnType: void
    signature: "FabricProvisioningServer::HandleClientRequest(ExchangeContext *ec,
      const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo,\n                                                   uint32_t
      profileId, uint8_t msgType, PacketBuffer *msgBuf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<FabricProvisioningServer *>
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:378,1
    - Dst: nl::Weave::Profiles::FabricProvisioning::FabricProvisioningDelegate::IsPairedToAccount
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:391,1
    - Dst: nl::Weave::Profiles::FabricProvisioning::FabricProvisioningDelegate::IsPairedToAccount
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:400,1
    - Dst: FabricProvisioningServer*::SessionHasFabricConfigAccessPrivilege
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:401,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:419,1
    - Dst: nl::Weave::WeaveServerDelegateBase::EnforceAccessControl
      Src: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp:426,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 5
    argNames:
    - ec
    - msgProfileId
    - msgType
    - msgInfo
    - ' result'
    argTypes:
    - ExchangeContext*
    - uint32_t
    - uint8_t
    - WeaveMessageInfo*
    - AccessControlResult
    constantsTouched: []
    func_position:
      end: 427
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 427
    functionName: nl::Weave::Profiles::FabricProvisioning::FabricProvisioningDelegate::EnforceAccessControl
    functionSourceFile: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp
    functionUses: 0
    functionsReached:
    - FabricProvisioningServer*::SessionHasFabricConfigAccessPrivilege
    - static_cast<FabricProvisioningServer *>
    - nl::Weave::Profiles::FabricProvisioning::FabricProvisioningDelegate::IsPairedToAccount
    - nl::Weave::WeaveServerDelegateBase::EnforceAccessControl
    - nl::Weave::WeaveServerBase::SendStatusReport
    linkageType: ''
    returnType: void
    signature: "FabricProvisioningDelegate::EnforceAccessControl(ExchangeContext *ec,
      uint32_t msgProfileId, uint8_t msgType,\n        const WeaveMessageInfo *msgInfo,
      AccessControlResult& result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 433
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 433
    functionName: nl::Weave::Profiles::FabricProvisioning::FabricProvisioningDelegate::IsPairedToAccount
    functionSourceFile: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: FabricProvisioningDelegate::IsPairedToAccount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - format
    - status
    argTypes:
    - char*
    - InFieldJoiningStatus
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
    functionSourceFile: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: '*FormatIfjStatus(const char *format, InFieldJoiningStatus status)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:56,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:57,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:58,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:59,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:60,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:61,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:62,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:63,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:64,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:65,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:66,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:67,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:68,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:69,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:70,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:71,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:72,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:73,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:74,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:75,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:76,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:77,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:78,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:79,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:80,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:81,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:82,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:83,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:84,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:85,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:86,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:87,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:88,1
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 71
    argCount: 1
    argNames:
    - status
    argTypes:
    - InFieldJoiningStatus
    constantsTouched: []
    func_position:
      end: 91
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 91
    functionName: nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::IfjStatusStr
    functionSourceFile: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
    linkageType: ''
    returnType: char
    signature: '*IfjStatusStr(InFieldJoiningStatus status)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 172
    functionName: nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DropcamLegacyPairingServer
    functionSourceFile: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: DropcamLegacyPairingServer
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Support::WEAVE_ERROR::RegisterProfileStringInfo
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::_DropcamLegacyPairingProfileStringInit
    functionSourceFile: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Support::WEAVE_ERROR::RegisterProfileStringInfo
    linkageType: ''
    returnType: void
    signature: _DropcamLegacyPairingProfileStringInit(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::_DropcamLegacyPairingProfileStringDestroy
    functionSourceFile: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
    linkageType: ''
    returnType: void
    signature: _DropcamLegacyPairingProfileStringDestroy(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - inProfileId
    - inMsgType
    argTypes:
    - uint32_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 162
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 162
    functionName: nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::GetDropcamLegacyPairingMessageName
    functionSourceFile: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*GetDropcamLegacyPairingMessageName(uint32_t inProfileId, uint8_t
      inMsgType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - inProfileId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 191
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 191
    functionName: nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::GetDropcamLegacyPairingProfileName
    functionSourceFile: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*GetDropcamLegacyPairingProfileName(uint32_t inProfileId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:209,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:209,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:211,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:212,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:214,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - nonce
    argTypes:
    - PacketBuffer*
    - char*
    constantsTouched: []
    func_position:
      end: 219
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 219
    functionName: nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::EncodeCameraAuthDataRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp
    functionUses: 0
    functionsReached:
    - TLVWriter::Finalize
    - PacketBuffer*::MaxDataLength
    - TLVWriter::PutString
    - SuccessOrExit
    - TLVWriter::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EncodeCameraAuthDataRequest(PacketBuffer *buf, const char *nonce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:240,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:242,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:243,1
    - Dst: TLVReader::GetBytes
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:245,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:246,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:248,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:249,1
    - Dst: TLVReader::GetBytes
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:251,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - buf
    - (macAddress)
    - (hmac)
    argTypes:
    - PacketBuffer*
    - uint8_t[]
    - uint8_t[]
    constantsTouched: []
    func_position:
      end: 256
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 256
    functionName: nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DecodeCameraAuthDataResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - SuccessOrExit
    - TLVReader::GetBytes
    - TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DecodeCameraAuthDataResponse(PacketBuffer *buf, uint8_t (&macAddress)[EUI48_LEN],
      uint8_t (&hmac)[HMAC_BUF_LEN])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 266
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 266
    functionName: nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DropcamLegacyPairingServer::DropcamLegacyPairingServer
    functionSourceFile: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DropcamLegacyPairingServer::DropcamLegacyPairingServer(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 288
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 288
    functionName: nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DropcamLegacyPairingServer::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp
    functionUses: 0
    functionsReached:
    - RegisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DropcamLegacyPairingServer::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 304
    functionName: nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DropcamLegacyPairingServer::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp
    functionUses: 0
    functionsReached:
    - UnregisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DropcamLegacyPairingServer::Shutdown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - delegate
    argTypes:
    - DropcamLegacyPairingDelegate*
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DropcamLegacyPairingServer::SetDelegate
    functionSourceFile: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DropcamLegacyPairingServer::SetDelegate(DropcamLegacyPairingDelegate
      *delegate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<DropcamLegacyPairingServer *>
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:320,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:325,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:326,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:327,1
    - Dst: DropcamLegacyPairingServer*::EnforceAccessControl
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:333,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:335,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:336,1
    - Dst: DropcamLegacyPairingServer*::HandleCameraAuthDataRequest
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:343,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:344,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:348,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:349,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:356,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:361,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:362,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:367,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - msgBuf
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 369
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 369
    functionName: nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DropcamLegacyPairingServer::HandleClientRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - ExchangeContext*::Close
    - DropcamLegacyPairingServer*::HandleCameraAuthDataRequest
    - nl::Weave::System::PacketBuffer::Free
    - ExitNow
    - DropcamLegacyPairingServer*::EnforceAccessControl
    - SuccessOrExit
    - reinterpret_cast<DropcamLegacyPairingServer *>
    - nl::Weave::WeaveServerBase::SendStatusReport
    linkageType: ''
    returnType: void
    signature: "DropcamLegacyPairingServer::HandleClientRequest(ExchangeContext *ec,
      const IPPacketInfo *pktInfo,\n    const WeaveMessageInfo *msgInfo, uint32_t
      profileId, uint8_t msgType, PacketBuffer *msgBuf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:385,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:387,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:390,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:392,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:393,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:395,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:395,1
    - Dst: TLVReader::GetDataPtr
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:396,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:397,1
    - Dst: TLVReader::GetLength
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:399,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:400,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:402,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:403,1
    - Dst: GetCameraMACAddress
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:406,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:407,1
    - Dst: GetCameraSecret
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:410,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:411,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:414,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:415,1
    - Dst: HMACSHA256::Begin
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:417,1
    - Dst: HMACSHA256::AddData
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:418,1
    - Dst: HMACSHA256::Finish
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:419,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:422,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:423,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:424,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:427,1
    - Dst: MaxDataLength
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:427,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:429,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:430,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:432,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:433,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:435,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:436,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:439,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 2
    argNames:
    - ec
    - (msgBuf)
    argTypes:
    - ExchangeContext*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 445
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 445
    functionName: nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DropcamLegacyPairingServer::HandleCameraAuthDataRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Next
    - HMACSHA256::Finish
    - GetCameraSecret
    - HMACSHA256::Begin
    - nl::Weave::System::PacketBuffer::New
    - TLVReader::Init
    - GetCameraMACAddress
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - TLVReader::GetDataPtr
    - MaxDataLength
    - TLVReader::GetLength
    - TLVReader::GetType
    - memset
    - TLVWriter::Finalize
    - HMACSHA256::AddData
    - ExchangeContext*::SendMessage
    - TLVWriter::PutBytes
    - memcpy
    - SuccessOrExit
    - TLVWriter::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DropcamLegacyPairingServer::HandleCameraAuthDataRequest(ExchangeContext
      *ec, PacketBuffer *(&msgBuf))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:467,1
    - Dst: nl::Weave::WeaveServerDelegateBase::EnforceAccessControl
      Src: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp:474,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - ec
    - msgProfileId
    - msgType
    - msgInfo
    - ' result'
    argTypes:
    - ExchangeContext*
    - uint32_t
    - uint8_t
    - WeaveMessageInfo*
    - AccessControlResult
    constantsTouched: []
    func_position:
      end: 475
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 475
    functionName: nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DropcamLegacyPairingDelegate::EnforceAccessControl
    functionSourceFile: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveServerDelegateBase::EnforceAccessControl
    - nl::Weave::WeaveServerBase::SendStatusReport
    linkageType: ''
    returnType: void
    signature: "DropcamLegacyPairingDelegate::EnforceAccessControl(ExchangeContext
      *ec, uint32_t msgProfileId, uint8_t msgType,\n        const WeaveMessageInfo
      *msgInfo, AccessControlResult& result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DMClient::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: DMClient::DMClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - DMClient::Clear
    linkageType: ''
    returnType: void
    signature: DMClient::DMClient(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DMClient::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: DMClient::~DMClient(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - DMClient::Finalize
    linkageType: ''
    returnType: void
    signature: DMClient::~DMClient(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:102,1
    - Dst: SYSTEM_STATS_RESET
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:103,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:106,1
    - Dst: SYSTEM_STATS_RESET
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:107,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:112,1
    - Dst: SYSTEM_STATS_RESET
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:113,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:116,1
    - Dst: SYSTEM_STATS_RESET
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 120
    functionName: DMClient::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 1
    functionsReached:
    - SYSTEM_STATS_RESET
    - Free
    linkageType: ''
    returnType: void
    signature: DMClient::Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RemoveSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:139,1
    - Dst: DMClient::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:143,1
    - Dst: nl::Weave::Profiles::ProtocolEngine::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 146
    functionName: DMClient::Finalize
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 1
    functionsReached:
    - RemoveSubscription
    - nl::Weave::Profiles::ProtocolEngine::Finalize
    - DMClient::Clear
    linkageType: ''
    returnType: void
    signature: DMClient::Finalize(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ProtocolEngine::IncompleteIndication
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:164,1
    - Dst: FailSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aBinding
    - aReport
    argTypes:
    - Binding*
    - StatusReport
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: DMClient::IncompleteIndication
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::ProtocolEngine::IncompleteIndication
    - FailSubscription
    linkageType: ''
    returnType: void
    signature: DMClient::IncompleteIndication(Binding *aBinding, StatusReport &aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetBinding
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:222,1
    - Dst: DMClient::NewView
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:227,1
    - Dst: View*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:231,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:232,1
    - Dst: StartTransaction
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - aDestinationId
    - aPathList
    - aTxnId
    - aTimeout
    argTypes:
    - uint64_t
    - ReferencedTLVData
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 245
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 245
    functionName: DMClient::ViewRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - GetBinding
    - StartTransaction
    - View*::Init
    - SuccessOrExit
    - DMClient::NewView
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::ViewRequest(const uint64_t &aDestinationId, ReferencedTLVData
      &aPathList, uint16_t aTxnId, uint32_t aTimeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DMClient::NewView
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:280,1
    - Dst: View*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:284,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:285,1
    - Dst: StartTransaction
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - aPathList
    - aTxnId
    - aTimeout
    argTypes:
    - ReferencedTLVData
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 292
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 292
    functionName: DMClient::ViewRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - DMClient::NewView
    - StartTransaction
    - View*::Init
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::ViewRequest(ReferencedTLVData &aPathList, uint16_t aTxnId,
      uint32_t aTimeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DMClient::HasSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aTopicId
    - aPublisherId
    argTypes:
    - TopicIdentifier
    - uint64_t
    constantsTouched: []
    func_position:
      end: 345
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 345
    functionName: DMClient::HasSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 1
    functionsReached:
    - DMClient::HasSubscription
    linkageType: ''
    returnType: bool
    signature: DMClient::HasSubscription(const TopicIdentifier &aTopicId, const uint64_t
      &aPublisherId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InstallSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - aAssignedId
    - aRequestedId
    - aPublisherId
    argTypes:
    - TopicIdentifier
    - TopicIdentifier
    - uint64_t
    constantsTouched: []
    func_position:
      end: 394
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 394
    functionName: DMClient::BeginSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - InstallSubscription
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::BeginSubscription(const TopicIdentifier &aAssignedId, const
      TopicIdentifier &aRequestedId, const uint64_t &aPublisherId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RemoveSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aTopicId
    - aPublisherId
    argTypes:
    - TopicIdentifier
    - uint64_t
    constantsTouched: []
    func_position:
      end: 432
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 432
    functionName: DMClient::EndSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - RemoveSubscription
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::EndSubscription(const TopicIdentifier &aTopicId, const uint64_t
      &aPublisherId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetBinding
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:474,1
    - Dst: DMClient::NewSubscribe
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:479,1
    - Dst: Subscribe*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:483,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:484,1
    - Dst: StartTransaction
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - aDestinationId
    - aTopicId
    - aTxnId
    - aTimeout
    argTypes:
    - uint64_t
    - TopicIdentifier
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 502
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 502
    functionName: DMClient::SubscribeRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - GetBinding
    - StartTransaction
    - Subscribe*::Init
    - SuccessOrExit
    - DMClient::NewSubscribe
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::SubscribeRequest(const uint64_t &aDestinationId, const TopicIdentifier
      &aTopicId, uint16_t aTxnId, uint32_t aTimeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DMClient::NewSubscribe
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:539,1
    - Dst: Subscribe*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:543,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:544,1
    - Dst: StartTransaction
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - aTopicId
    - aTxnId
    - aTimeout
    argTypes:
    - TopicIdentifier
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 556
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 556
    functionName: DMClient::SubscribeRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - Subscribe*::Init
    - DMClient::NewSubscribe
    - StartTransaction
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::SubscribeRequest(const TopicIdentifier &aTopicId, uint16_t
      aTxnId, uint32_t aTimeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetBinding
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:600,1
    - Dst: DMClient::NewSubscribe
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:605,1
    - Dst: Subscribe*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:609,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:610,1
    - Dst: StartTransaction
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:612,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - aDestinationId
    - aPathList
    - aTxnId
    - aTimeout
    argTypes:
    - uint64_t
    - ReferencedTLVData
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 628
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 628
    functionName: DMClient::SubscribeRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - GetBinding
    - StartTransaction
    - Subscribe*::Init
    - SuccessOrExit
    - DMClient::NewSubscribe
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::SubscribeRequest(const uint64_t &aDestinationId, ReferencedTLVData
      &aPathList, uint16_t aTxnId, uint32_t aTimeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DMClient::NewSubscribe
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:667,1
    - Dst: Subscribe*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:671,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:672,1
    - Dst: StartTransaction
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - aPathList
    - aTxnId
    - aTimeout
    argTypes:
    - ReferencedTLVData
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 684
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 684
    functionName: DMClient::SubscribeRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - Subscribe*::Init
    - DMClient::NewSubscribe
    - StartTransaction
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::SubscribeRequest(ReferencedTLVData &aPathList, uint16_t aTxnId,
      uint32_t aTimeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DMClient::HasSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:731,1
    - Dst: RemoveSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:742,1
    - Dst: GetBinding
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:744,1
    - Dst: DMClient::NewCancelSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:748,1
    - Dst: CancelSubscription*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:752,1
    - Dst: StartTransaction
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:755,1
    - Dst: StatusReport::init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:780,1
    - Dst: CancelSubscriptionConfirm
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:782,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - aDestinationId
    - aTopicId
    - aTxnId
    - aTimeout
    argTypes:
    - uint64_t
    - TopicIdentifier
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 786
      start: 726
    functionDepth: 2
    functionLinenumber: 726
    functionLinenumberEnd: 786
    functionName: DMClient::CancelSubscriptionRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - DMClient::NewCancelSubscription
    - RemoveSubscription
    - GetBinding
    - CancelSubscription*::Init
    - StartTransaction
    - DMClient::HasSubscription
    - StatusReport::init
    - CancelSubscriptionConfirm
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::CancelSubscriptionRequest(const uint64_t &aDestinationId,
      const TopicIdentifier &aTopicId, uint16_t aTxnId, uint32_t aTimeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DMClient::CancelSubscriptionRequest
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:830,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - aTopicId
    - aTxnId
    - aTimeout
    argTypes:
    - TopicIdentifier
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 833
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 833
    functionName: DMClient::CancelSubscriptionRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 1
    functionsReached:
    - DMClient::CancelSubscriptionRequest
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::CancelSubscriptionRequest(const TopicIdentifier &aTopicId,
      uint16_t aTxnId, uint32_t aTimeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetBinding
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:890,1
    - Dst: DMClient::NewUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:895,1
    - Dst: Update*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:899,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:900,1
    - Dst: StartTransaction
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:902,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - aDestinationId
    - aDataList
    - aTxnId
    - aTimeout
    argTypes:
    - uint64_t
    - ReferencedTLVData
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 918
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 918
    functionName: DMClient::UpdateRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - DMClient::NewUpdate
    - GetBinding
    - StartTransaction
    - Update*::Init
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::UpdateRequest(const uint64_t &aDestinationId, ReferencedTLVData
      &aDataList, uint16_t aTxnId, uint32_t aTimeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DMClient::UpdateRequest
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aDataList
    - aTxnId
    - aTimeout
    argTypes:
    - ReferencedTLVData
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 962
      start: 959
    functionDepth: 1
    functionLinenumber: 959
    functionLinenumberEnd: 962
    functionName: DMClient::UpdateRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 1
    functionsReached:
    - DMClient::UpdateRequest
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::UpdateRequest(ReferencedTLVData &aDataList, uint16_t aTxnId,
      uint32_t aTimeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DMClient::NewUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1006,1
    - Dst: Update*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1010,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1011,1
    - Dst: StartTransaction
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - aDataList
    - aTxnId
    - aTimeout
    - aUseLegacyMsgType
    argTypes:
    - ReferencedTLVData
    - uint16_t
    - uint32_t
    - bool
    constantsTouched: []
    func_position:
      end: 1020
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1020
    functionName: DMClient::UpdateRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 1
    functionsReached:
    - SuccessOrExit
    - Update*::Init
    - StartTransaction
    - DMClient::NewUpdate
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::UpdateRequest(ReferencedTLVData &aDataList, uint16_t aTxnId,
      uint32_t aTimeout, bool aUseLegacyMsgType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DMClient::NewUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1060,1
    - Dst: Update*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1064,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1065,1
    - Dst: StartTransaction
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1067,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - aDataList
    - aTxnId
    - aTimeout
    argTypes:
    - ReferencedTLVData
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1077
      start: 1057
    functionDepth: 1
    functionLinenumber: 1057
    functionLinenumberEnd: 1077
    functionName: DMClient::UpdateRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 1
    functionsReached:
    - SuccessOrExit
    - Update*::Init
    - StartTransaction
    - DMClient::NewUpdate
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::UpdateRequest(ReferencedTLVData &aDataList, uint16_t aTxnId,
      uint32_t aTimeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DMClient::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1109,1
    - Dst: DMClient::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1112,1
    - Dst: DMClient::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1117,1
    - Dst: DMClient::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1120,1
    - Dst: View::IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1132,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1133,1
    - Dst: View::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1133,1
    - Dst: Update::IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1140,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1141,1
    - Dst: Update::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1141,1
    - Dst: Subscribe::IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1150,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1151,1
    - Dst: Subscribe::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1151,1
    - Dst: CancelSubscription::IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1158,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1159,1
    - Dst: CancelSubscription::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1159,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 2
    argNames:
    - aTxnId
    - aError
    argTypes:
    - uint16_t
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1168
      start: 1101
    functionDepth: 2
    functionLinenumber: 1101
    functionLinenumberEnd: 1168
    functionName: DMClient::CancelTransactionRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - Update::IsFree
    - Update::Finalize
    - VerifyOrExit
    - View::Finalize
    - DMClient::Finalize
    - CancelSubscription::Finalize
    - CancelSubscription::IsFree
    - Subscribe::IsFree
    - Subscribe::Finalize
    - View::IsFree
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::CancelTransactionRequest(uint16_t aTxnId, WEAVE_ERROR aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TunEndPoint::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - aClient
    - aPathList
    - aTxnId
    - aTimeout
    argTypes:
    - DMClient*
    - ReferencedTLVData
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1182
      start: 1175
    functionDepth: 1
    functionLinenumber: 1175
    functionLinenumberEnd: 1182
    functionName: DMClient::View::Init(DMClient *aClient, ReferencedTLVData &aPathList,
      uint16_t aTxnId, uint32_t aTimeout)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TunEndPoint::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::View::Init(DMClient *aClient, ReferencedTLVData &aPathList,
      uint16_t aTxnId, uint32_t aTimeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TunEndPoint::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1186,1
    - Dst: free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1188,1
    - Dst: SYSTEM_STATS_DECREMENT
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1184
    functionDepth: 3
    functionLinenumber: 1184
    functionLinenumberEnd: 1191
    functionName: DMClient::View::Free(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - free
    - SYSTEM_STATS_DECREMENT
    - nl::Inet::TunEndPoint::Free
    linkageType: ''
    returnType: void
    signature: DMClient::View::Free(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1197,1
    - Dst: pack
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1199,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1200,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1202,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1208,1
    - Dst: free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - aBuffer
    - aSendFlags
    argTypes:
    - PacketBuffer*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1220
      start: 1193
    functionDepth: 2
    functionLinenumber: 1193
    functionLinenumberEnd: 1220
    functionName: DMClient::View::SendRequest(PacketBuffer *aBuffer, uint16_t aSendFlags)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - nl::Weave::System::PacketBuffer::Free
    - pack
    - VerifyOrExit
    - free
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::View::SendRequest(PacketBuffer *aBuffer, uint16_t aSendFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DMClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1224,1
    - Dst: Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1227,1
    - Dst: DMClient*::ViewConfirm
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aResponderId
    - aStatus
    argTypes:
    - uint64_t
    - StatusReport
    constantsTouched: []
    func_position:
      end: 1230
      start: 1222
    functionDepth: 0
    functionLinenumber: 1222
    functionLinenumberEnd: 1230
    functionName: DMClient::View::OnStatusReceived(const uint64_t &aResponderId, StatusReport
      &aStatus)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - Finalize
    - DMClient*::ViewConfirm
    - static_cast<DMClient *>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::View::OnStatusReceived(const uint64_t &aResponderId, StatusReport
      &aStatus)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DMClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1237,1
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1240,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1242,1
    - Dst: ReferencedTLVData::parse
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1244,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1245,1
    - Dst: Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1247,1
    - Dst: DMClient*::ViewConfirm
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1249,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1252,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1252,1
    - Dst: OnError
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - aResponderId
    - aMsgType
    - aMsg
    argTypes:
    - uint64_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1259
      start: 1232
    functionDepth: 1
    functionLinenumber: 1232
    functionLinenumberEnd: 1259
    functionName: DMClient::View::OnResponseReceived(const uint64_t &aResponderId,
      uint8_t aMsgType, PacketBuffer *aMsg)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - ReferencedTLVData::ReferencedTLVData
    - WeaveLogError
    - DMClient*::ViewConfirm
    - ReferencedTLVData::parse
    - VerifyOrExit
    - static_cast<DMClient *>
    - OnError
    - SuccessOrExit
    - Finalize
    - ErrorStr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::View::OnResponseReceived(const uint64_t &aResponderId, uint8_t
      aMsgType, PacketBuffer *aMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1268,1
    - Dst: SYSTEM_STATS_INCREMENT
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1261
    functionDepth: 0
    functionLinenumber: 1261
    functionLinenumberEnd: 1278
    functionName: DMClient::NewView
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 2
    functionsReached:
    - IsFree
    - SYSTEM_STATS_INCREMENT
    linkageType: ''
    returnType: DMClient::View
    signature: '*DMClient::NewView(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TunEndPoint::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1293,1
    - Dst: free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - aClient
    - aTopicId
    - aTxnId
    - aTimeout
    argTypes:
    - DMClient*
    - TopicIdentifier
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1300
      start: 1282
    functionDepth: 1
    functionLinenumber: 1282
    functionLinenumberEnd: 1300
    functionName: DMClient::Subscribe::Init(DMClient *aClient, const TopicIdentifier
      &aTopicId, uint16_t aTxnId, uint32_t aTimeout)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TunEndPoint::Init
    - free
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::Subscribe::Init(DMClient *aClient, const TopicIdentifier
      &aTopicId, uint16_t aTxnId, uint32_t aTimeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TunEndPoint::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - aClient
    - aPathList
    - aTxnId
    - aTimeout
    argTypes:
    - DMClient*
    - ReferencedTLVData
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1310
      start: 1302
    functionDepth: 1
    functionLinenumber: 1302
    functionLinenumberEnd: 1310
    functionName: DMClient::Subscribe::Init(DMClient *aClient, ReferencedTLVData &aPathList,
      uint16_t aTxnId, uint32_t aTimeout)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TunEndPoint::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::Subscribe::Init(DMClient *aClient, ReferencedTLVData &aPathList,
      uint16_t aTxnId, uint32_t aTimeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TunEndPoint::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1314,1
    - Dst: free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1317,1
    - Dst: SYSTEM_STATS_DECREMENT
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1312
    functionDepth: 3
    functionLinenumber: 1312
    functionLinenumberEnd: 1320
    functionName: DMClient::Subscribe::Free(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - free
    - SYSTEM_STATS_DECREMENT
    - nl::Inet::TunEndPoint::Free
    linkageType: ''
    returnType: void
    signature: DMClient::Subscribe::Free(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1326,1
    - Dst: MessageIterator::append
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1330,1
    - Dst: MessageIterator::write64
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1332,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1333,1
    - Dst: isEmpty
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1335,1
    - Dst: pack
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1337,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1338,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1342,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1348,1
    - Dst: free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - aBuffer
    - aSendFlags
    argTypes:
    - PacketBuffer*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1360
      start: 1322
    functionDepth: 3
    functionLinenumber: 1322
    functionLinenumberEnd: 1360
    functionName: DMClient::Subscribe::SendRequest(PacketBuffer *aBuffer, uint16_t
      aSendFlags)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - MessageIterator::append
    - nl::Weave::System::PacketBuffer::Free
    - pack
    - MessageIterator::write64
    - VerifyOrExit
    - isEmpty
    - free
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::Subscribe::SendRequest(PacketBuffer *aBuffer, uint16_t aSendFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DMClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1364,1
    - Dst: Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1367,1
    - Dst: DMClient*::SubscribeConfirm
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aResponderId
    - aStatus
    argTypes:
    - uint64_t
    - StatusReport
    constantsTouched: []
    func_position:
      end: 1370
      start: 1362
    functionDepth: 0
    functionLinenumber: 1362
    functionLinenumberEnd: 1370
    functionName: DMClient::Subscribe::OnStatusReceived(const uint64_t &aResponderId,
      StatusReport &aStatus)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - Finalize
    - DMClient*::SubscribeConfirm
    - static_cast<DMClient *>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::Subscribe::OnStatusReceived(const uint64_t &aResponderId,
      StatusReport &aStatus)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1376,1
    - Dst: static_cast<DMClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1379,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1385,1
    - Dst: MessageIterator::read64
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1387,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1388,1
    - Dst: ReferencedTLVData::parse
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1390,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1391,1
    - Dst: DMClient*::BeginSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1398,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1399,1
    - Dst: Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1410,1
    - Dst: ReferencedTLVData::isEmpty
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1412,1
    - Dst: DMClient*::SubscribeConfirm
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1413,1
    - Dst: DMClient*::SubscribeConfirm
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1416,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1419,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1419,1
    - Dst: OnError
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1423,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - aResponderId
    - aMsgType
    - aMsg
    argTypes:
    - uint64_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1426
      start: 1372
    functionDepth: 3
    functionLinenumber: 1372
    functionLinenumberEnd: 1426
    functionName: DMClient::Subscribe::OnResponseReceived(const uint64_t &aResponderId,
      uint8_t aMsgType, PacketBuffer *aMsg)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - ReferencedTLVData::ReferencedTLVData
    - MessageIterator::read64
    - WeaveLogError
    - ReferencedTLVData::isEmpty
    - ReferencedTLVData::parse
    - VerifyOrExit
    - static_cast<DMClient *>
    - OnError
    - DMClient*::BeginSubscription
    - DMClient*::SubscribeConfirm
    - SuccessOrExit
    - Finalize
    - ErrorStr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::Subscribe::OnResponseReceived(const uint64_t &aResponderId,
      uint8_t aMsgType, PacketBuffer *aMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1435,1
    - Dst: SYSTEM_STATS_INCREMENT
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1438,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1428
    functionDepth: 0
    functionLinenumber: 1428
    functionLinenumberEnd: 1445
    functionName: DMClient::NewSubscribe
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 4
    functionsReached:
    - IsFree
    - SYSTEM_STATS_INCREMENT
    linkageType: ''
    returnType: DMClient::Subscribe
    signature: '*DMClient::NewSubscribe(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TunEndPoint::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1454,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - aClient
    - aTopicId
    - aTxnId
    - aTimeout
    argTypes:
    - DMClient*
    - TopicIdentifier
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1461
      start: 1447
    functionDepth: 1
    functionLinenumber: 1447
    functionLinenumberEnd: 1461
    functionName: "DMClient::CancelSubscription::Init(DMClient *aClient,\n                                               const
      TopicIdentifier &aTopicId,\n                                               uint16_t
      aTxnId,\n                                               uint32_t aTimeout)"
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TunEndPoint::Init
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "DMClient::CancelSubscription::Init(DMClient *aClient,\n                                               const
      TopicIdentifier &aTopicId,\n                                               uint16_t
      aTxnId,\n                                               uint32_t aTimeout)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TunEndPoint::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1465,1
    - Dst: SYSTEM_STATS_DECREMENT
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1463
    functionDepth: 3
    functionLinenumber: 1463
    functionLinenumberEnd: 1470
    functionName: DMClient::CancelSubscription::Free(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - SYSTEM_STATS_DECREMENT
    - nl::Inet::TunEndPoint::Free
    linkageType: ''
    returnType: void
    signature: DMClient::CancelSubscription::Free(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1476,1
    - Dst: MessageIterator::append
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1480,1
    - Dst: MessageIterator::write64
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1482,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1483,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1486,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - aBuffer
    - aSendFlags
    argTypes:
    - PacketBuffer*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1496
      start: 1472
    functionDepth: 3
    functionLinenumber: 1472
    functionLinenumberEnd: 1496
    functionName: DMClient::CancelSubscription::SendRequest(PacketBuffer *aBuffer,
      uint16_t aSendFlags)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - MessageIterator::append
    - nl::Weave::System::PacketBuffer::Free
    - MessageIterator::write64
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::CancelSubscription::SendRequest(PacketBuffer *aBuffer, uint16_t
      aSendFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DMClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1500,1
    - Dst: Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1503,1
    - Dst: DMClient*::CancelSubscriptionConfirm
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aResponderId
    - aStatus
    argTypes:
    - uint64_t
    - StatusReport
    constantsTouched: []
    func_position:
      end: 1506
      start: 1498
    functionDepth: 0
    functionLinenumber: 1498
    functionLinenumberEnd: 1506
    functionName: DMClient::CancelSubscription::OnStatusReceived(const uint64_t &aResponderId,
      StatusReport &aStatus)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - Finalize
    - static_cast<DMClient *>
    - DMClient*::CancelSubscriptionConfirm
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::CancelSubscription::OnStatusReceived(const uint64_t &aResponderId,
      StatusReport &aStatus)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1515,1
    - Dst: SYSTEM_STATS_INCREMENT
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1508
    functionDepth: 0
    functionLinenumber: 1508
    functionLinenumberEnd: 1525
    functionName: DMClient::NewCancelSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 1
    functionsReached:
    - IsFree
    - SYSTEM_STATS_INCREMENT
    linkageType: ''
    returnType: DMClient::CancelSubscription
    signature: '*DMClient::NewCancelSubscription(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TunEndPoint::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - aClient
    - aDataList
    - aTxnId
    - aTimeout
    argTypes:
    - DMClient*
    - ReferencedTLVData
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1539
      start: 1529
    functionDepth: 1
    functionLinenumber: 1529
    functionLinenumberEnd: 1539
    functionName: "DMClient::Update::Init(DMClient *aClient,\n                                   ReferencedTLVData
      &aDataList,\n                                   uint16_t aTxnId,\n                                   uint32_t
      aTimeout)"
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TunEndPoint::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "DMClient::Update::Init(DMClient *aClient,\n                                   ReferencedTLVData
      &aDataList,\n                                   uint16_t aTxnId,\n                                   uint32_t
      aTimeout)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TunEndPoint::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1543,1
    - Dst: free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1545,1
    - Dst: SYSTEM_STATS_DECREMENT
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1541
    functionDepth: 3
    functionLinenumber: 1541
    functionLinenumberEnd: 1548
    functionName: DMClient::Update::Free(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - free
    - SYSTEM_STATS_DECREMENT
    - nl::Inet::TunEndPoint::Free
    linkageType: ''
    returnType: void
    signature: DMClient::Update::Free(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1555,1
    - Dst: pack
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1557,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1558,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1567,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1573,1
    - Dst: free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1582,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - aBuffer
    - aSendFlags
    argTypes:
    - PacketBuffer*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1585
      start: 1550
    functionDepth: 2
    functionLinenumber: 1550
    functionLinenumberEnd: 1585
    functionName: DMClient::Update::SendRequest(PacketBuffer *aBuffer, uint16_t aSendFlags)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - nl::Weave::System::PacketBuffer::Free
    - pack
    - VerifyOrExit
    - free
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::Update::SendRequest(PacketBuffer *aBuffer, uint16_t aSendFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DMClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1589,1
    - Dst: Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1592,1
    - Dst: DMClient*::UpdateConfirm
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aResponderId
    - aStatus
    argTypes:
    - uint64_t
    - StatusReport
    constantsTouched: []
    func_position:
      end: 1595
      start: 1587
    functionDepth: 0
    functionLinenumber: 1587
    functionLinenumberEnd: 1595
    functionName: DMClient::Update::OnStatusReceived(const uint64_t &aResponderId,
      StatusReport &aStatus)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 0
    functionsReached:
    - Finalize
    - DMClient*::UpdateConfirm
    - static_cast<DMClient *>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMClient::Update::OnStatusReceived(const uint64_t &aResponderId, StatusReport
      &aStatus)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1604,1
    - Dst: SYSTEM_STATS_INCREMENT
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp:1607,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1597
    functionDepth: 0
    functionLinenumber: 1597
    functionLinenumberEnd: 1614
    functionName: DMClient::NewUpdate
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
    functionUses: 3
    functionsReached:
    - IsFree
    - SYSTEM_STATS_INCREMENT
    linkageType: ''
    returnType: DMClient::Update
    signature: '*DMClient::NewUpdate(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 112
    functionName: nl::Weave::Profiles::ClientNotifier::Subscription::IsFree
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsFree(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - aTopicId
    - aPublisherId
    argTypes:
    - TopicIdentifier
    - uint64_t
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: nl::Weave::Profiles::ClientNotifier::Subscription::CheckSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: CheckSubscription(const TopicIdentifier &aTopicId, const uint64_t &aPublisherId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - aTopicId
    - aPublisherId
    argTypes:
    - TopicIdentifier
    - uint64_t
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: nl::Weave::Profiles::ClientNotifier::Subscription::MatchSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: MatchSubscription(const TopicIdentifier &aTopicId, const uint64_t &aPublisherId)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ClientNotifier::Subscription::MatchSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.h:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - aTopicId
    - aPublisherId
    - aClient
    argTypes:
    - TopicIdentifier
    - uint64_t
    - DMClient*
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: nl::Weave::Profiles::ClientNotifier::Subscription::MatchSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::ClientNotifier::Subscription::MatchSubscription
    linkageType: ''
    returnType: bool
    signature: MatchSubscription(const TopicIdentifier &aTopicId, const uint64_t &aPublisherId,
      DMClient *aClient) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: nl::Weave::Profiles::ClientNotifier::SubscriptionIsEnabled
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: SubscriptionIsEnabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/TopicIdentifier.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: nl::Weave::Profiles::PublisherSpecificTopicId
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/TopicIdentifier.h
    functionUses: 0
    functionsReached:
    - rand
    linkageType: ''
    returnType: TopicIdentifier
    signature: PublisherSpecificTopicId(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - aTopicId
    argTypes:
    - TopicIdentifier
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: nl::Weave::Profiles::IsPublisherSpecific
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/TopicIdentifier.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsPublisherSpecific(const TopicIdentifier &aTopicId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h:62,1
    - Dst: nl::Weave::TLV::ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aWriter
    argTypes:
    - nl::Weave::TLV::TLVWriter
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: nl::Weave::Profiles::StartPathList
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::StartContainer
    - nl::Weave::TLV::ProfileTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: StartPathList(nl::Weave::TLV::TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h:85,1
    - Dst: nl::Weave::TLV::ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aWriter
    argTypes:
    - nl::Weave::TLV::TLVWriter
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: nl::Weave::Profiles::StartDataList
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::StartContainer
    - nl::Weave::TLV::ProfileTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: StartDataList(nl::Weave::TLV::TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h:114,1
    - Dst: nl::Weave::Profiles::StartDataList
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aDataList
    - aWriter
    argTypes:
    - ReferencedTLVData
    - nl::Weave::TLV::TLVWriter
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: nl::Weave::Profiles::StartDataList
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::TLVWriter::Init
    - nl::Weave::Profiles::StartDataList
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: StartDataList(ReferencedTLVData &aDataList, nl::Weave::TLV::TLVWriter
      &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h:146,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - aWriter
    argTypes:
    - nl::Weave::TLV::TLVWriter
    constantsTouched: []
    func_position:
      end: 153
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 153
    functionName: nl::Weave::Profiles::EndList
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::Finalize
    - nl::Weave::TLV::TLVWriter::EndContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EndList(nl::Weave::TLV::TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::EndList
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h:181,1
    - Dst: nl::Weave::TLV::TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - aList
    - aWriter
    argTypes:
    - ReferencedTLVData
    - nl::Weave::TLV::TLVWriter
    constantsTouched: []
    func_position:
      end: 186
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 186
    functionName: nl::Weave::Profiles::EndList
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::EndList
    - nl::Weave::TLV::TLVWriter::GetLengthWritten
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EndList(ReferencedTLVData &aList, nl::Weave::TLV::TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aWriter
    argTypes:
    - nl::Weave::TLV::TLVWriter
    constantsTouched: []
    func_position:
      end: 206
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 206
    functionName: nl::Weave::Profiles::StartDataListElement
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: StartDataListElement(nl::Weave::TLV::TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aWriter
    argTypes:
    - nl::Weave::TLV::TLVWriter
    constantsTouched: []
    func_position:
      end: 233
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 233
    functionName: nl::Weave::Profiles::EndDataListElement
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::EndContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EndDataListElement(nl::Weave::TLV::TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::CheckWDMTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - aTagNum
    - aReader
    argTypes:
    - uint32_t
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 264
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 264
    functionName: nl::Weave::Profiles::ValidateWDMTag
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::CheckWDMTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ValidateWDMTag(uint32_t aTagNum, nl::Weave::TLV::TLVReader &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aType
    - aReader
    argTypes:
    - nl::Weave::TLV::TLVType
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 291
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 291
    functionName: nl::Weave::Profiles::CheckTLVType
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVReader::GetType
    linkageType: ''
    returnType: bool
    signature: CheckTLVType(nl::Weave::TLV::TLVType aType, nl::Weave::TLV::TLVReader
      &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::CheckTLVType
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - aType
    - aReader
    argTypes:
    - nl::Weave::TLV::TLVType
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 326
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 326
    functionName: nl::Weave::Profiles::ValidateTLVType
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::CheckTLVType
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ValidateTLVType(nl::Weave::TLV::TLVType aType, nl::Weave::TLV::TLVReader
      &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aReader
    argTypes:
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 351
    functionName: nl::Weave::Profiles::CloseList
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVReader::ExitContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CloseList(nl::Weave::TLV::TLVReader &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aReader
    argTypes:
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 370
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 370
    functionName: nl::Weave::Profiles::CloseDataListElement
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVReader::ExitContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CloseDataListElement(nl::Weave::TLV::TLVReader &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aExchangeCtx
    - aStatus
    argTypes:
    - ExchangeContext*
    - StatusReport
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: nl::Weave::Profiles::ProtocolEngine::StatusResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.h
    functionUses: 0
    functionsReached:
    - SendStatusReport
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: StatusResponse(ExchangeContext *aExchangeCtx, StatusReport &aStatus)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ProtocolEngine::BindRequest
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.h:188,1
    - Dst: nl::Weave::Profiles::ProtocolEngine::BindRequest
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aPeerNodeId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 192
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 192
    functionName: nl::Weave::Profiles::ProtocolEngine::BindRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::ProtocolEngine::BindRequest
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BindRequest(const uint64_t &aPeerNodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ProtocolEngine::StartTransaction
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.h:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aTransaction
    argTypes:
    - DMTransaction*
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: nl::Weave::Profiles::ProtocolEngine::StartTransaction
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::ProtocolEngine::StartTransaction
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: StartTransaction(DMTransaction *aTransaction)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ProtocolEngine::EnqueueTransaction
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.h:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aTransaction
    argTypes:
    - DMTransaction*
    constantsTouched: []
    func_position:
      end: 264
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 264
    functionName: nl::Weave::Profiles::ProtocolEngine::EnqueueTransaction
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::ProtocolEngine::EnqueueTransaction
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EnqueueTransaction(DMTransaction *aTransaction)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aTransaction
    - aBinding
    argTypes:
    - DMTransaction*
    - Binding*
    constantsTouched: []
    func_position:
      end: 312
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 312
    functionName: nl::Weave::Profiles::ProtocolEngine::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Init(DMTransaction *aTransaction, Binding *aBinding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYSTEM_STATS_DECREMENT
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.h:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 320
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 320
    functionName: nl::Weave::Profiles::ProtocolEngine::Free
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.h
    functionUses: 0
    functionsReached:
    - SYSTEM_STATS_DECREMENT
    linkageType: ''
    returnType: void
    signature: Free(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: nl::Weave::Profiles::ProtocolEngine::IsFree
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsFree(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::DMPublisher::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aExchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: nl::Weave::Profiles::DMPublisher::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::DMPublisher::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Init(WeaveExchangeManager *aExchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: nl::Weave::Profiles::DMPublisher::Subscription::IsFree
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsFree(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: nl::Weave::Profiles::DMPublisher::Subscription::IsActive
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsActive(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: nl::Weave::Profiles::DMPublisher::Subscription::Activate
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Activate(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: nl::Weave::Profiles::DMPublisher::Subscription::Deactivate
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Deactivate(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - aTopicId
    - aClientId
    argTypes:
    - TopicIdentifier
    - uint64_t
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: nl::Weave::Profiles::DMPublisher::Subscription::MatchSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: MatchSubscription(const TopicIdentifier &aTopicId, const uint64_t &aClientId)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::DMClient::HasSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aTopicId
    argTypes:
    - TopicIdentifier
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: nl::Weave::Profiles::DMClient::HasSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::DMClient::HasSubscription
    linkageType: ''
    returnType: bool
    signature: HasSubscription(const TopicIdentifier &aTopicId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CommonTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:81,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:81,1
    - Dst: CommonTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:86,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:87,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:88,1
    - Dst: CommonTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:93,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:94,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:95,1
    - Dst: CommonTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:100,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:101,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:102,1
    - Dst: CommonTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:107,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:108,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:109,1
    - Dst: CommonTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:124,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:125,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:126,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:127,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:128,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:129,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:130,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:131,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:132,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 29
    argCount: 2
    argNames:
    - aTagNum
    - aReader
    argTypes:
    - uint32_t
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 143
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 143
    functionName: nl::Weave::Profiles::CheckWDMTag
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp
    functionUses: 1
    functionsReached:
    - CommonTag
    - ContextTag
    - ProfileTag
    linkageType: ''
    returnType: bool
    signature: CheckWDMTag(uint32_t aTagNum, nl::Weave::TLV::TLVReader &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:175,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:179,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:180,1
    - Dst: nl::Weave::Profiles::ValidateTLVType
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:182,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:183,1
    - Dst: nl::Weave::Profiles::ValidateWDMTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:185,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:186,1
    - Dst: nl::Weave::TLV::TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:188,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - aPathList
    - aReader
    argTypes:
    - ReferencedTLVData
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 193
      start: 170
    functionDepth: 4
    functionLinenumber: 170
    functionLinenumberEnd: 193
    functionName: nl::Weave::Profiles::OpenPathList
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::ValidateTLVType
    - nl::Weave::TLV::TLVReader::EnterContainer
    - SuccessOrExit
    - nl::Weave::Profiles::ValidateWDMTag
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: OpenPathList(ReferencedTLVData &aPathList, nl::Weave::TLV::TLVReader
      &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:225,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:229,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:230,1
    - Dst: nl::Weave::Profiles::ValidateTLVType
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:232,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:233,1
    - Dst: nl::Weave::Profiles::ValidateWDMTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:235,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:236,1
    - Dst: nl::Weave::TLV::TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:238,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - aDataList
    - aReader
    argTypes:
    - ReferencedTLVData
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 243
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 243
    functionName: nl::Weave::Profiles::OpenDataList
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::ValidateTLVType
    - nl::Weave::TLV::TLVReader::EnterContainer
    - SuccessOrExit
    - nl::Weave::Profiles::ValidateWDMTag
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: OpenDataList(ReferencedTLVData &aDataList, nl::Weave::TLV::TLVReader
      &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:281,1
    - Dst: nl::Weave::TLV::TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:281,1
    - Dst: nl::Weave::Profiles::ValidateTLVType
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:283,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:284,1
    - Dst: nl::Weave::TLV::TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:286,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:287,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:294,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:295,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:297,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:297,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:305,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:306,1
    - Dst: nl::Weave::Profiles::CheckWDMTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:308,1
    - Dst: nl::Weave::Profiles::ValidateTLVType
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:310,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:311,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:313,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:315,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:316,1
    - Dst: nl::Weave::Profiles::ValidateWDMTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 3
    argNames:
    - aReader
    - aPathReader
    - aVersion
    argTypes:
    - nl::Weave::TLV::TLVReader
    - nl::Weave::TLV::TLVReader
    - uint64_t
    constantsTouched: []
    func_position:
      end: 328
      start: 271
    functionDepth: 4
    functionLinenumber: 271
    functionLinenumberEnd: 328
    functionName: nl::Weave::Profiles::OpenDataListElement
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::ValidateTLVType
    - nl::Weave::TLV::TLVReader::EnterContainer
    - nl::Weave::TLV::TLVReader::GetTag
    - VerifyOrExit
    - nl::Weave::TLV::TLVReader::Get
    - nl::Weave::Profiles::CheckWDMTag
    - SuccessOrExit
    - nl::Weave::Profiles::ValidateWDMTag
    - nl::Weave::TLV::TLVReader::GetType
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: OpenDataListElement(nl::Weave::TLV::TLVReader &aReader, nl::Weave::TLV::TLVReader
      &aPathReader, uint64_t &aVersion)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:356,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:357,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:361,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:361,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:362,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:364,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:364,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 5
    argNames:
    - aWriter
    - aTag
    - aProfileId
    - mOuterContainer
    - mPath
    argTypes:
    - TLVWriter
    - uint64_t
    - uint32_t
    - TLVType
    - TLVType
    constantsTouched: []
    func_position:
      end: 370
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 370
    functionName: nl::Weave::Profiles::StartEncodePath
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp
    functionUses: 0
    functionsReached:
    - ContextTag
    - ProfileTag
    - SuccessOrExit
    - TLVWriter::Put
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "StartEncodePath(TLVWriter &aWriter,\n                                   const
      uint64_t &aTag,\n                                   uint32_t aProfileId,\n                                   TLVType
      &mOuterContainer,\n                                   TLVType &mPath)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - aWriter
    - mOuterContainer
    - mError
    argTypes:
    - TLVWriter
    - TLVType
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 384
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 384
    functionName: nl::Weave::Profiles::EndEncodePath
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp
    functionUses: 0
    functionsReached:
    - TLVWriter::EndContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EndEncodePath(TLVWriter &aWriter, TLVType &mOuterContainer, WEAVE_ERROR
      mError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::StartEncodePath
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:440,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:441,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:445,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:445,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:446,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:449,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:450,1
    - Dst: va_start
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:452,1
    - Dst: TLVWriter::PutNull
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:456,1
    - Dst: va_arg
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:456,1
    - Dst: va_end
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:462,1
    - Dst: nl::Weave::Profiles::EndEncodePath
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - aWriter
    - aTag
    - aProfileId
    - aInstanceId
    - aPathLen
    argTypes:
    - TLVWriter
    - uint64_t
    - uint32_t
    - uint64_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 467
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 467
    functionName: nl::Weave::Profiles::EncodePath
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::StartEncodePath
    - va_end
    - nl::Weave::Profiles::EndEncodePath
    - ContextTag
    - va_start
    - va_arg
    - TLVWriter::EndContainer
    - TLVWriter::PutNull
    - SuccessOrExit
    - TLVWriter::Put
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "EncodePath(TLVWriter &aWriter,\n                       const uint64_t
      &aTag,\n                       uint32_t aProfileId,\n                       const
      uint64_t &aInstanceId,\n                       uint32_t aPathLen,\n                       ...)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::StartEncodePath
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:528,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:529,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:533,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:533,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:534,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:537,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:538,1
    - Dst: va_start
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:540,1
    - Dst: TLVWriter::PutNull
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:544,1
    - Dst: va_arg
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:544,1
    - Dst: va_end
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:550,1
    - Dst: nl::Weave::Profiles::EndEncodePath
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:554,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - aWriter
    - aTag
    - aProfileId
    - aInstanceIdLen
    - aInstanceId
    - aPathLen
    argTypes:
    - TLVWriter
    - uint64_t
    - uint32_t
    - uint32_t
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 555
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 555
    functionName: nl::Weave::Profiles::EncodePath
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::StartEncodePath
    - va_end
    - nl::Weave::Profiles::EndEncodePath
    - ContextTag
    - va_start
    - va_arg
    - TLVWriter::PutBytes
    - TLVWriter::PutNull
    - SuccessOrExit
    - TLVWriter::EndContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "EncodePath(TLVWriter &aWriter,\n                       const uint64_t
      &aTag,\n                       uint32_t aProfileId,\n                       const
      uint32_t aInstanceIdLen,\n                       const uint8_t *aInstanceId,\n
      \                      uint32_t aPathLen,\n                       ...)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::StartEncodePath
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:609,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:610,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:614,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:614,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:615,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:618,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:619,1
    - Dst: va_start
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:621,1
    - Dst: TLVWriter::PutNull
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:625,1
    - Dst: va_arg
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:625,1
    - Dst: va_end
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:631,1
    - Dst: nl::Weave::Profiles::EndEncodePath
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:635,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - aWriter
    - aTag
    - aProfileId
    - aInstanceId
    - aPathLen
    argTypes:
    - TLVWriter
    - uint64_t
    - uint32_t
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 636
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 636
    functionName: nl::Weave::Profiles::EncodePath
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::StartEncodePath
    - va_end
    - nl::Weave::Profiles::EndEncodePath
    - ContextTag
    - va_start
    - va_arg
    - TLVWriter::PutString
    - TLVWriter::PutNull
    - SuccessOrExit
    - TLVWriter::EndContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "EncodePath(TLVWriter &aWriter,\n                       const uint64_t
      &aTag,\n                       uint32_t aProfileId,\n                       const
      char *aInstanceId,\n                       uint32_t aPathLen,\n                       ...)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:690,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:691,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:695,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:695,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:696,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:698,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:698,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:699,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:703,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:703,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:704,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:707,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:708,1
    - Dst: va_start
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:710,1
    - Dst: TLVWriter::PutNull
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:714,1
    - Dst: va_arg
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:714,1
    - Dst: va_end
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:720,1
    - Dst: nl::Weave::Profiles::EndEncodePath
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:724,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - aWriter
    - aTag
    - aProfileId
    - aInstanceId
    - aPathLen
    argTypes:
    - TLVWriter
    - uint64_t
    - uint32_t
    - uint64_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 725
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 725
    functionName: nl::Weave::Profiles::EncodeDeprecatedPath
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp
    functionUses: 0
    functionsReached:
    - va_end
    - nl::Weave::Profiles::EndEncodePath
    - va_start
    - va_arg
    - ProfileTag
    - TLVWriter::EndContainer
    - TLVWriter::PutNull
    - SuccessOrExit
    - TLVWriter::Put
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "EncodeDeprecatedPath(TLVWriter &aWriter,\n                                 const
      uint64_t &aTag,\n                                 uint32_t aProfileId,\n                                 const
      uint64_t &aInstanceId,\n                                 uint32_t aPathLen,\n
      \                                ...)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:779,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:780,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:784,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:784,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:785,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:787,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:787,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:788,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:792,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:792,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:793,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:796,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:797,1
    - Dst: va_start
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:799,1
    - Dst: TLVWriter::PutNull
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:803,1
    - Dst: va_arg
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:803,1
    - Dst: va_end
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:809,1
    - Dst: nl::Weave::Profiles::EndEncodePath
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:813,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - aWriter
    - aTag
    - aProfileId
    - aInstanceId
    - aPathLen
    argTypes:
    - TLVWriter
    - uint64_t
    - uint32_t
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 814
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 814
    functionName: nl::Weave::Profiles::EncodeDeprecatedPath
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp
    functionUses: 0
    functionsReached:
    - va_end
    - nl::Weave::Profiles::EndEncodePath
    - va_start
    - va_arg
    - ProfileTag
    - TLVWriter::EndContainer
    - TLVWriter::PutString
    - TLVWriter::PutNull
    - SuccessOrExit
    - TLVWriter::Put
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "EncodeDeprecatedPath(TLVWriter &aWriter,\n                                 const
      uint64_t &aTag,\n                                 uint32_t aProfileId,\n                                 const
      char *aInstanceId,\n                                 uint32_t aPathLen,\n                                 ...)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 833
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 833
    functionName: ProfileDatabase::ProfileData::ProfileData(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ProfileDatabase::ProfileData::ProfileData(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 845
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 845
    functionName: ProfileDatabase::ProfileData::~ProfileData(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ProfileDatabase::ProfileData::~ProfileData(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:877,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:887,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:887,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:889,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:890,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:892,1
    - Dst: StoreItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:895,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:895,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:896,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:898,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:906,1
    - Dst: StoreItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:916,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:916,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:917,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - aPathReader
    - aVersion
    - aDataReader
    argTypes:
    - TLVReader
    - uint64_t
    - TLVReader
    constantsTouched: []
    func_position:
      end: 929
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 929
    functionName: ProfileDatabase::ProfileData::Store(TLVReader &aPathReader, uint64_t
      aVersion, TLVReader &aDataReader)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Next
    - TLVReader::GetType
    - VerifyOrExit
    - TLVReader::EnterContainer
    - TLVReader::ExitContainer
    - TLVReader::GetTag
    - SuccessOrExit
    - StoreItem
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ProfileDatabase::ProfileData::Store(TLVReader &aPathReader, uint64_t
      aVersion, TLVReader &aDataReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenDataList
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:955,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:957,1
    - Dst: OpenDataListElement
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:960,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:961,1
    - Dst: nl::Weave::Profiles::ProfileDatabase::StoreInternal
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:963,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:964,1
    - Dst: CloseDataListElement
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:966,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:967,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:969,1
    - Dst: CloseList
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - aDataList
    argTypes:
    - ReferencedTLVData
    constantsTouched: []
    func_position:
      end: 976
      start: 948
    functionDepth: 1
    functionLinenumber: 948
    functionLinenumberEnd: 976
    functionName: nl::Weave::Profiles::ProfileDatabase::Store
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::ProfileDatabase::StoreInternal
    - CloseList
    - OpenDataListElement
    - TLVReader::Next
    - CloseDataListElement
    - OpenDataList
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ProfileDatabase::Store(ReferencedTLVData &aDataList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1007,1
    - Dst: nl::Weave::Profiles::ProfileDatabase::Retrieve
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1009,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1010,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - aPathList
    - aDataList
    argTypes:
    - ReferencedTLVData
    - ReferencedTLVData
    constantsTouched: []
    func_position:
      end: 1016
      start: 1002
    functionDepth: 1
    functionLinenumber: 1002
    functionLinenumberEnd: 1016
    functionName: nl::Weave::Profiles::ProfileDatabase::Retrieve
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp
    functionUses: 1
    functionsReached:
    - TLVWriter::Init
    - TLVWriter::GetLengthWritten
    - nl::Weave::Profiles::ProfileDatabase::Retrieve
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ProfileDatabase::Retrieve(ReferencedTLVData &aPathList, ReferencedTLVData
      &aDataList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenPathList
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1051,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1052,1
    - Dst: StartDataList
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1055,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1056,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1058,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1063,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1064,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1066,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1067,1
    - Dst: nl::Weave::Profiles::ProfileDatabase::LookupDataFromProfileDescriptor
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1069,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1070,1
    - Dst: StartDataListElement
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1078,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1079,1
    - Dst: ProfileData*::Retrieve
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1081,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1082,1
    - Dst: EndDataListElement
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1084,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1085,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1092,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1093,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1095,1
    - Dst: EndList
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1101,1
    - Dst: CloseList
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - aPathList
    - aWriter
    argTypes:
    - ReferencedTLVData
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 1110
      start: 1043
    functionDepth: 1
    functionLinenumber: 1043
    functionLinenumberEnd: 1110
    functionName: nl::Weave::Profiles::ProfileDatabase::Retrieve
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp
    functionUses: 1
    functionsReached:
    - CloseList
    - TLVReader::Next
    - StartDataListElement
    - EndDataListElement
    - TLVReader::EnterContainer
    - TLVReader::ExitContainer
    - OpenPathList
    - ProfileData*::Retrieve
    - SuccessOrExit
    - EndList
    - nl::Weave::Profiles::ProfileDatabase::LookupDataFromProfileDescriptor
    - StartDataList
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ProfileDatabase::Retrieve(ReferencedTLVData &aPathList, TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ValidateTLVType
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1156,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1157,1
    - Dst: ValidateWDMTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1159,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1160,1
    - Dst: nl::Weave::TLV::TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1166,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1167,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1173,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1174,1
    - Dst: ValidateTLVType
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1176,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1177,1
    - Dst: ValidateWDMTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1179,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1180,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1182,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1183,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1190,1
    - Dst: nl::Weave::Profiles::ProfileDatabase::LookupProfileData
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1194,1
    - Dst: nl::Weave::Profiles::ProfileDatabase::LookupProfileData
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1201,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1204,1
    - Dst: nl::Weave::TLV::TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 2
    argNames:
    - aDescReader
    - aProfileData
    argTypes:
    - nl::Weave::TLV::TLVReader
    - ProfileData**
    constantsTouched: []
    func_position:
      end: 1216
      start: 1141
    functionDepth: 2
    functionLinenumber: 1141
    functionLinenumberEnd: 1216
    functionName: nl::Weave::Profiles::ProfileDatabase::LookupDataFromProfileDescriptor
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::TLVReader::EnterContainer
    - ValidateTLVType
    - nl::Weave::TLV::TLVReader::Get
    - ValidateWDMTag
    - nl::Weave::Profiles::ProfileDatabase::LookupProfileData
    - SuccessOrExit
    - nl::Weave::TLV::TLVReader::ExitContainer
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ProfileDatabase::LookupDataFromProfileDescriptor(nl::Weave::TLV::TLVReader
      &aDescReader, ProfileData **aProfileData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1251,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1252,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1259,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1260,1
    - Dst: nl::Weave::Profiles::ProfileDatabase::LookupDataFromProfileDescriptor
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1262,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - aPathReader
    - aProfileData
    argTypes:
    - TLVReader
    - ProfileData**
    constantsTouched: []
    func_position:
      end: 1272
      start: 1246
    functionDepth: 3
    functionLinenumber: 1246
    functionLinenumberEnd: 1272
    functionName: nl::Weave::Profiles::ProfileDatabase::LookupProfileData
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::ProfileDatabase::LookupDataFromProfileDescriptor
    - SuccessOrExit
    - TLVReader::Next
    - TLVReader::EnterContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ProfileDatabase::LookupProfileData(TLVReader &aPathReader, ProfileData
      **aProfileData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1280,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1281,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1283,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1284,1
    - Dst: nl::Weave::Profiles::ProfileDatabase::LookupDataFromProfileDescriptor
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1286,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1287,1
    - Dst: ProfileData*::Store
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1289,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1290,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp:1292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - aPathReader
    - aVersion
    - aDataReader
    argTypes:
    - TLVReader
    - uint64_t
    - TLVReader
    constantsTouched: []
    func_position:
      end: 1296
      start: 1274
    functionDepth: 3
    functionLinenumber: 1274
    functionLinenumberEnd: 1296
    functionName: nl::Weave::Profiles::ProfileDatabase::StoreInternal
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Next
    - TLVReader::EnterContainer
    - TLVReader::ExitContainer
    - ProfileData*::Store
    - SuccessOrExit
    - nl::Weave::Profiles::ProfileDatabase::LookupDataFromProfileDescriptor
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ProfileDatabase::StoreInternal(TLVReader &aPathReader, uint64_t aVersion,
      TLVReader &aDataReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ClientNotifier*>
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:70,1
    - Dst: ClientNotifier*::DispatchNotifyIndication
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:73,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:79,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:79,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 82
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 82
    functionName: ClientListener
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - static_cast<ClientNotifier*>
    - nl::Weave::System::PacketBuffer::Free
    - ClientNotifier*::DispatchNotifyIndication
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: "ClientListener(ExchangeContext *ec,\n                           const
      IPPacketInfo *pktInfo,\n                           const WeaveMessageInfo *msgInfo,\n
      \                          uint32_t profileId,\n                           uint8_t
      msgType,\n                           PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: ClientNotifier::Subscription::Subscription(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp
    functionUses: 0
    functionsReached:
    - Free
    linkageType: ''
    returnType: void
    signature: ClientNotifier::Subscription::Subscription(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: ClientNotifier::Subscription::~Subscription(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp
    functionUses: 0
    functionsReached:
    - Free
    linkageType: ''
    returnType: void
    signature: ClientNotifier::Subscription::~Subscription(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - aAssignedId
    - aRequestedId
    - aPublisherId
    - aClient
    argTypes:
    - TopicIdentifier
    - TopicIdentifier
    - uint64_t
    - DMClient*
    constantsTouched: []
    func_position:
      end: 177
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 177
    functionName: "ClientNotifier::Subscription::Init(const TopicIdentifier &aAssignedId,\n
      \                                              const TopicIdentifier &aRequestedId,\n
      \                                              const uint64_t &aPublisherId,\n
      \                                              DMClient *aClient)"
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "ClientNotifier::Subscription::Init(const TopicIdentifier &aAssignedId,\n
      \                                              const TopicIdentifier &aRequestedId,\n
      \                                              const uint64_t &aPublisherId,\n
      \                                              DMClient *aClient)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: ClientNotifier::Subscription::Free(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ClientNotifier::Subscription::Free(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClientNotifier::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: ClientNotifier::ClientNotifier
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp
    functionUses: 0
    functionsReached:
    - ClientNotifier::Clear
    linkageType: ''
    returnType: void
    signature: ClientNotifier::ClientNotifier(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:219,1
    - Dst: ClientNotifier::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: ClientNotifier::~ClientNotifier(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp
    functionUses: 0
    functionsReached:
    - ClientNotifier::Clear
    - UnregisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: void
    signature: ClientNotifier::~ClientNotifier(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:255,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:261,1
    - Dst: MessageIterator::read64
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:263,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:264,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:266,1
    - Dst: ReferencedTLVData::parse
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:268,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:269,1
    - Dst: Subscription::CheckSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:275,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:279,1
    - Dst: Subscription::mClient::NotifyIndication
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:281,1
    - Dst: IsPublisherSpecific
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:294,1
    - Dst: StatusReport::init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:298,1
    - Dst: StatusReport::init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:305,1
    - Dst: SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:308,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:317,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:319,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:319,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - aResponseCtx
    - payload
    argTypes:
    - ExchangeContext*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 322
      start: 248
    functionDepth: 3
    functionLinenumber: 248
    functionLinenumberEnd: 322
    functionName: ClientNotifier::DispatchNotifyIndication
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp
    functionUses: 0
    functionsReached:
    - ReferencedTLVData::ReferencedTLVData
    - MessageIterator::read64
    - IsPublisherSpecific
    - Subscription::CheckSubscription
    - ReferencedTLVData::parse
    - ExchangeContext*::Close
    - WeaveLogProgress
    - Subscription::mClient::NotifyIndication
    - StatusReport::init
    - SuccessOrExit
    - ErrorStr
    - SendStatusReport
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ClientNotifier::DispatchNotifyIndication(ExchangeContext *aResponseCtx,
      PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Subscription::MatchSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:355,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - aTopicId
    - aPublisherId
    - aClient
    argTypes:
    - TopicIdentifier
    - uint64_t
    - DMClient*
    constantsTouched: []
    func_position:
      end: 364
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 364
    functionName: ClientNotifier::HasSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp
    functionUses: 0
    functionsReached:
    - Subscription::MatchSubscription
    linkageType: ''
    returnType: bool
    signature: ClientNotifier::HasSubscription(const TopicIdentifier &aTopicId, const
      uint64_t &aPublisherId, DMClient *aClient) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClientNotifier::HasSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:415,1
    - Dst: ClientNotifier::HasSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:426,1
    - Dst: Subscription::MatchSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:432,1
    - Dst: Subscription::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:434,1
    - Dst: Subscription::IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:451,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:472,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:473,1
    - Dst: Subscription::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:476,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - aTopicId
    - aRequestedId
    - aPublisherId
    - aClient
    argTypes:
    - TopicIdentifier
    - TopicIdentifier
    - uint64_t
    - DMClient*
    constantsTouched: []
    func_position:
      end: 486
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 486
    functionName: ClientNotifier::InstallSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp
    functionUses: 0
    functionsReached:
    - Subscription::MatchSubscription
    - Subscription::Init
    - ClientNotifier::HasSubscription
    - SuccessOrExit
    - Subscription::IsFree
    - RegisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "ClientNotifier::InstallSubscription(const TopicIdentifier &aTopicId,\n
      \                                               const TopicIdentifier &aRequestedId,\n
      \                                               const uint64_t &aPublisherId,\n
      \                                               DMClient *aClient)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Subscription::MatchSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:517,1
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:528,1
    - Dst: Subscription::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:530,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - aTopicId
    - aPublisherId
    - aClient
    argTypes:
    - TopicIdentifier
    - uint64_t
    - DMClient*
    constantsTouched: []
    func_position:
      end: 533
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 533
    functionName: ClientNotifier::RemoveSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp
    functionUses: 0
    functionsReached:
    - Subscription::MatchSubscription
    - Subscription::Free
    - UnregisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: void
    signature: ClientNotifier::RemoveSubscription(const TopicIdentifier &aTopicId,
      const uint64_t &aPublisherId, DMClient *aClient)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Subscription::MatchSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:568,1
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:579,1
    - Dst: DMClient*::UnsubscribeIndication
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:581,1
    - Dst: Subscription::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:583,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - aTopicId
    - aPublisherId
    - aClient
    - aReport
    argTypes:
    - TopicIdentifier
    - uint64_t
    - DMClient*
    - StatusReport
    constantsTouched: []
    func_position:
      end: 586
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 586
    functionName: ClientNotifier::FailSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp
    functionUses: 0
    functionsReached:
    - Subscription::Free
    - Subscription::MatchSubscription
    - DMClient*::UnsubscribeIndication
    - UnregisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: void
    signature: ClientNotifier::FailSubscription(const TopicIdentifier &aTopicId, const
      uint64_t &aPublisherId, DMClient *aClient, StatusReport &aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Subscription::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp:604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 608
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 608
    functionName: ClientNotifier::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp
    functionUses: 2
    functionsReached:
    - Subscription::Free
    linkageType: ''
    returnType: void
    signature: ClientNotifier::Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Binding::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.h:108,1
    - Dst: nl::Weave::Profiles::Binding::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aPeerNodeId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: nl::Weave::Profiles::Binding::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Binding::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Init(const uint64_t &aPeerNodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: nl::Weave::Profiles::Binding::IsComplete
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsComplete(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Binding *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:74,1
    - Dst: StatusReport::init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:85,1
    - Dst: Binding*::IncompleteIndication
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - aConnection
    - aError
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 87
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 87
    functionName: ConnectionClosedHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp
    functionUses: 0
    functionsReached:
    - StatusReport::init
    - static_cast<Binding *>
    - Binding*::IncompleteIndication
    linkageType: ''
    returnType: void
    signature: ConnectionClosedHandler(WeaveConnection *aConnection, WEAVE_ERROR aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Binding *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:111,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:122,1
    - Dst: Binding*::CompleteConfirm
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:133,1
    - Dst: StatusReport::init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:139,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:141,1
    - Dst: Binding*::CompleteConfirm
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - aConnection
    - aError
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 146
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 146
    functionName: ConnectionCompleteHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp
    functionUses: 0
    functionsReached:
    - StatusReport::init
    - static_cast<Binding *>
    - Binding*::CompleteConfirm
    - WeaveConnection*::Close
    linkageType: ''
    returnType: void
    signature: ConnectionCompleteHandler(WeaveConnection *aConnection, WEAVE_ERROR
      aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Binding *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:180,1
    - Dst: Binding*::CompleteConfirm
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:184,1
    - Dst: StatusReport::init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:191,1
    - Dst: Binding*::CompleteConfirm
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - aAppState
    - aError
    - aReport
    argTypes:
    - void*
    - WEAVE_ERROR
    - StatusReport*
    constantsTouched: []
    func_position:
      end: 194
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 194
    functionName: ServiceMgrStatusHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp
    functionUses: 0
    functionsReached:
    - StatusReport::init
    - static_cast<Binding *>
    - Binding*::CompleteConfirm
    linkageType: ''
    returnType: void
    signature: ServiceMgrStatusHandler(void* aAppState, WEAVE_ERROR aError, StatusReport
      *aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Binding::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: Binding::Binding
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp
    functionUses: 0
    functionsReached:
    - Binding::Free
    linkageType: ''
    returnType: void
    signature: Binding::Binding(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Binding::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: Binding::~Binding(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp
    functionUses: 0
    functionsReached:
    - Binding::Finalize
    linkageType: ''
    returnType: void
    signature: Binding::~Binding(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Binding::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:266,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - aPeerNodeId
    - aTransport
    argTypes:
    - uint64_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 279
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 279
    functionName: Binding::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp
    functionUses: 1
    functionsReached:
    - Binding::Finalize
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Binding::Init(const uint64_t &aPeerNodeId, uint8_t aTransport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Binding::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:328,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - aServiceEpt
    - aServiceMgr
    - aAuthMode
    argTypes:
    - uint64_t
    - WeaveServiceManager*
    - WeaveAuthMode
    constantsTouched: []
    func_position:
      end: 339
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 339
    functionName: Binding::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp
    functionUses: 1
    functionsReached:
    - Binding::Finalize
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Binding::Init(const uint64_t &aServiceEpt, WeaveServiceManager *aServiceMgr,
      WeaveAuthMode aAuthMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Binding::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - aConnection
    argTypes:
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 382
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 382
    functionName: Binding::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp
    functionUses: 1
    functionsReached:
    - Binding::Finalize
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Binding::Init(WeaveConnection *aConnection)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - aConnection
    argTypes:
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 430
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 430
    functionName: Binding::Connect
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Binding::Connect(WeaveConnection *aConnection)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Binding::IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:450,1
    - Dst: Binding::UncompleteRequest
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:452,1
    - Dst: Binding::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - aErr
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 456
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 456
    functionName: Binding::Finalize
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp
    functionUses: 4
    functionsReached:
    - Binding::IsFree
    - Binding::UncompleteRequest
    - Binding::Free
    linkageType: ''
    returnType: void
    signature: Binding::Finalize(WEAVE_ERROR aErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Binding::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: Binding::Finalize
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp
    functionUses: 5
    functionsReached:
    - Binding::Finalize
    linkageType: ''
    returnType: void
    signature: Binding::Finalize(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYSTEM_STATS_DECREMENT
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 504
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 504
    functionName: Binding::Free
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp
    functionUses: 2
    functionsReached:
    - SYSTEM_STATS_DECREMENT
    linkageType: ''
    returnType: void
    signature: Binding::Free(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 520
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 520
    functionName: Binding::IsFree
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: Binding::IsFree(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:563,1
    - Dst: Binding::CompleteConfirm
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:565,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:570,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:575,1
    - Dst: connect
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:582,1
    - Dst: ProtocolEngine*::mExchangeMgr::MessageLayer::NewConnection
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:589,1
    - Dst: WeaveConnection*::Connect
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:603,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - aEngine
    argTypes:
    - ProtocolEngine*
    constantsTouched: []
    func_position:
      end: 623
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 623
    functionName: Binding::CompleteRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp
    functionUses: 0
    functionsReached:
    - ProtocolEngine*::mExchangeMgr::MessageLayer::NewConnection
    - WeaveLogProgress
    - connect
    - WeaveConnection*::Connect
    - Binding::CompleteConfirm
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Binding::CompleteRequest(ProtocolEngine *aEngine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Binding::Connect
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:636,1
    - Dst: Binding::CompleteConfirm
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aConnection
    argTypes:
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 639
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 639
    functionName: Binding::CompleteConfirm
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp
    functionUses: 2
    functionsReached:
    - Binding::CompleteConfirm
    - Binding::Connect
    linkageType: ''
    returnType: void
    signature: Binding::CompleteConfirm(WeaveConnection *aConnection)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:653,1
    - Dst: StatusReportStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:654,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:654,1
    - Dst: Binding::UncompleteRequest
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:661,1
    - Dst: BindConfirm
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:664,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:667,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - aReport
    argTypes:
    - StatusReport
    constantsTouched: []
    func_position:
      end: 668
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 668
    functionName: Binding::CompleteConfirm
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp
    functionUses: 2
    functionsReached:
    - WeaveLogProgress
    - BindConfirm
    - Binding::UncompleteRequest
    - ErrorStr
    - StatusReportStr
    linkageType: ''
    returnType: void
    signature: Binding::CompleteConfirm(StatusReport &aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:679,1
    - Dst: BindConfirm
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:682,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:685,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:685,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 686
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 686
    functionName: Binding::CompleteConfirm
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp
    functionUses: 2
    functionsReached:
    - WeaveLogProgress
    - ErrorStr
    - BindConfirm
    linkageType: ''
    returnType: void
    signature: Binding::CompleteConfirm(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:712,1
    - Dst: Abort
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:716,1
    - Dst: cancel
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - aErr
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 733
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 733
    functionName: Binding::UncompleteRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp
    functionUses: 2
    functionsReached:
    - Close
    - Abort
    - cancel
    linkageType: ''
    returnType: void
    signature: Binding::UncompleteRequest(WEAVE_ERROR aErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Binding::UncompleteRequest
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 753
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 753
    functionName: Binding::UncompleteRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp
    functionUses: 3
    functionsReached:
    - Binding::UncompleteRequest
    linkageType: ''
    returnType: void
    signature: Binding::UncompleteRequest(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:771,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:771,1
    - Dst: Binding::UncompleteRequest
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:778,1
    - Dst: Binding::IncompleteIndication
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:781,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - aReport
    argTypes:
    - StatusReport
    constantsTouched: []
    func_position:
      end: 782
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 782
    functionName: Binding::IncompleteIndication
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    - ErrorStr
    - Binding::UncompleteRequest
    - Binding::IncompleteIndication
    linkageType: ''
    returnType: void
    signature: Binding::IncompleteIndication(StatusReport &aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveExchangeManager*::NewContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:806,1
    - Dst: WeaveExchangeManager*::NewContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp:809,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - aExchangeMgr
    - aAppState
    argTypes:
    - WeaveExchangeManager*
    - void*
    constantsTouched: []
    func_position:
      end: 812
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 812
    functionName: Binding::GetExchangeCtx
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp
    functionUses: 0
    functionsReached:
    - WeaveExchangeManager*::NewContext
    linkageType: ''
    returnType: ExchangeContext
    signature: '*Binding::GetExchangeCtx(WeaveExchangeManager *aExchangeMgr, void
      *aAppState)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ProtocolEngine::DMTransaction *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:69,1
    - Dst: ProtocolEngine::DMTransaction*::OnMsgReceived
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - anExchangeCtx
    - anAddrInfo
    - aMsgInfo
    - aProfileId
    - aMsgType
    - aMsg
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: nl::Weave::Profiles::TxnResponseHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 0
    functionsReached:
    - static_cast<ProtocolEngine::DMTransaction *>
    - ProtocolEngine::DMTransaction*::OnMsgReceived
    linkageType: ''
    returnType: void
    signature: "TxnResponseHandler(ExchangeContext *anExchangeCtx,\n                               const
      IPPacketInfo *anAddrInfo,\n                               const WeaveMessageInfo
      *aMsgInfo,\n                               uint32_t aProfileId,\n                               uint8_t
      aMsgType,\n                               PacketBuffer *aMsg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ProtocolEngine::DMTransaction *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:76,1
    - Dst: ProtocolEngine::DMTransaction*::OnResponseTimeout
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - anExchangeCtx
    argTypes:
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: nl::Weave::Profiles::TxnTimeoutHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 0
    functionsReached:
    - static_cast<ProtocolEngine::DMTransaction *>
    - ProtocolEngine::DMTransaction*::OnResponseTimeout
    linkageType: ''
    returnType: void
    signature: TxnTimeoutHandler(ExchangeContext *anExchangeCtx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:84,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:87,1
    - Dst: StatusReport::pack
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:89,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:90,1
    - Dst: ExchangeContext*::HasPeerRequestedAck
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:93,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:99,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:102,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - aExchangeCtx
    - aStatus
    argTypes:
    - ExchangeContext*
    - StatusReport
    constantsTouched: []
    func_position:
      end: 112
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 112
    functionName: nl::Weave::Profiles::SendStatusReport
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - ExchangeContext*::SendMessage
    - SuccessOrExit
    - StatusReport::pack
    - ExchangeContext*::HasPeerRequestedAck
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendStatusReport(ExchangeContext *aExchangeCtx, StatusReport &aStatus)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::parse
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:124,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:125,1
    - Dst: GetBinding
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:138,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:140,1
    - Dst: Binding*::mServiceMgr::unresolve
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:142,1
    - Dst: OnStatusReceived
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:146,1
    - Dst: OnResponseReceived
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:151,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:161,1
    - Dst: OnError
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:164,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - aResponderId
    - aProfileId
    - aMsgType
    - aMsg
    argTypes:
    - uint64_t
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 165
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 165
    functionName: "ProtocolEngine::DMTransaction::OnMsgReceived(const uint64_t &aResponderId,\n
      \                                                 uint32_t aProfileId,\n                                                  uint8_t
      aMsgType,\n                                                  PacketBuffer *aMsg)"
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 0
    functionsReached:
    - GetBinding
    - nl::Weave::System::PacketBuffer::Free
    - OnStatusReceived
    - Binding*::mServiceMgr::unresolve
    - VerifyOrExit
    - nl::Weave::Profiles::StatusReporting::StatusReport::parse
    - OnError
    - SuccessOrExit
    - OnResponseReceived
    linkageType: ''
    returnType: void
    signature: "ProtocolEngine::DMTransaction::OnMsgReceived(const uint64_t &aResponderId,\n
      \                                                 uint32_t aProfileId,\n                                                  uint8_t
      aMsgType,\n                                                  PacketBuffer *aMsg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OnError
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - aResponderId
    - aMsgType
    - aMsg
    argTypes:
    - uint64_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: ProtocolEngine::DMTransaction::OnResponseReceived(const uint64_t
      &aResponderId, uint8_t aMsgType, PacketBuffer *aMsg)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 0
    functionsReached:
    - OnError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ProtocolEngine::DMTransaction::OnResponseReceived(const uint64_t &aResponderId,
      uint8_t aMsgType, PacketBuffer *aMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OnError
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aResponderId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: ProtocolEngine::DMTransaction::OnResponseTimeout(const uint64_t
      &aResponderId)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 0
    functionsReached:
    - OnError
    linkageType: ''
    returnType: void
    signature: ProtocolEngine::DMTransaction::OnResponseTimeout(const uint64_t &aResponderId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - aEngine
    - aTxnId
    - aTimeout
    argTypes:
    - ProtocolEngine*
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 201
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 201
    functionName: ProtocolEngine::DMTransaction::Init(ProtocolEngine *aEngine, uint16_t
      aTxnId, uint32_t aTimeout)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ProtocolEngine::DMTransaction::Init(ProtocolEngine *aEngine, uint16_t
      aTxnId, uint32_t aTimeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 215
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 215
    functionName: ProtocolEngine::DMTransaction::Free(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ProtocolEngine::DMTransaction::Free(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: ProtocolEngine::DMTransaction::IsFree(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ProtocolEngine::DMTransaction::IsFree(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:225,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:229,1
    - Dst: SendRequest
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:240,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - aTransport
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 251
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 251
    functionName: ProtocolEngine::DMTransaction::Start(uint8_t aTransport)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 0
    functionsReached:
    - SendRequest
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ProtocolEngine::DMTransaction::Start(uint8_t aTransport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:255,1
    - Dst: DequeueTransaction
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:259,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:263,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 269
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 269
    functionName: ProtocolEngine::DMTransaction::Finalize(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 0
    functionsReached:
    - IsFree
    - Close
    - DequeueTransaction
    - Free
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ProtocolEngine::DMTransaction::Finalize(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StatusReport::init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:274,1
    - Dst: OnStatusReceived
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aResponderId
    - aError
    argTypes:
    - uint64_t
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 277
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 277
    functionName: ProtocolEngine::DMTransaction::OnError(const uint64_t &aResponderId,
      WEAVE_ERROR aError)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 0
    functionsReached:
    - StatusReport::init
    - OnStatusReceived
    linkageType: ''
    returnType: void
    signature: ProtocolEngine::DMTransaction::OnError(const uint64_t &aResponderId,
      WEAVE_ERROR aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ProtocolEngine::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: nl::Weave::Profiles::ProtocolEngine::ProtocolEngine
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::ProtocolEngine::Clear
    linkageType: ''
    returnType: void
    signature: ProtocolEngine::ProtocolEngine(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 287
    functionName: ProtocolEngine::~ProtocolEngine(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 0
    functionsReached:
    - Finalize
    linkageType: ''
    returnType: void
    signature: ProtocolEngine::~ProtocolEngine(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ProtocolEngine::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aExchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 292
    functionName: nl::Weave::Profiles::ProtocolEngine::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::ProtocolEngine::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ProtocolEngine::Init(WeaveExchangeManager *aExchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - aExchangeMgr
    - aResponseTimeout
    argTypes:
    - WeaveExchangeManager*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 315
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 315
    functionName: nl::Weave::Profiles::ProtocolEngine::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ProtocolEngine::Init(WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ProtocolEngine::FinalizeBindingTable
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:319,1
    - Dst: nl::Weave::Profiles::ProtocolEngine::FinalizeTransactionTable
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:321,1
    - Dst: nl::Weave::Profiles::ProtocolEngine::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 324
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 324
    functionName: nl::Weave::Profiles::ProtocolEngine::Finalize
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::ProtocolEngine::FinalizeTransactionTable
    - nl::Weave::Profiles::ProtocolEngine::Clear
    - nl::Weave::Profiles::ProtocolEngine::FinalizeBindingTable
    linkageType: ''
    returnType: void
    signature: ProtocolEngine::Finalize(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ProtocolEngine::ClearBindingTable
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:331,1
    - Dst: nl::Weave::Profiles::ProtocolEngine::ClearTransactionTable
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 334
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 334
    functionName: nl::Weave::Profiles::ProtocolEngine::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::ProtocolEngine::ClearBindingTable
    - nl::Weave::Profiles::ProtocolEngine::ClearTransactionTable
    linkageType: ''
    returnType: void
    signature: ProtocolEngine::Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ProtocolEngine::GetBinding
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:371,1
    - Dst: nl::Weave::Profiles::ProtocolEngine::NewBinding
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:380,1
    - Dst: Binding*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - aPeerNodeId
    - aTransport
    argTypes:
    - uint64_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 387
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 387
    functionName: nl::Weave::Profiles::ProtocolEngine::BindRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 1
    functionsReached:
    - Binding*::Init
    - nl::Weave::Profiles::ProtocolEngine::NewBinding
    - nl::Weave::Profiles::ProtocolEngine::GetBinding
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ProtocolEngine::BindRequest(const uint64_t &aPeerNodeId, uint8_t aTransport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ProtocolEngine::GetBinding
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:420,1
    - Dst: nl::Weave::Profiles::ProtocolEngine::NewBinding
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:427,1
    - Dst: Binding*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - aServiceMgr
    - aAuthMode
    argTypes:
    - WeaveServiceManager*
    - WeaveAuthMode
    constantsTouched: []
    func_position:
      end: 434
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 434
    functionName: nl::Weave::Profiles::ProtocolEngine::BindRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 1
    functionsReached:
    - Binding*::Init
    - nl::Weave::Profiles::ProtocolEngine::NewBinding
    - nl::Weave::Profiles::ProtocolEngine::GetBinding
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ProtocolEngine::BindRequest(WeaveServiceManager *aServiceMgr, WeaveAuthMode
      aAuthMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ProtocolEngine::GetBinding
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:462,1
    - Dst: nl::Weave::Profiles::ProtocolEngine::NewBinding
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:469,1
    - Dst: Binding*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - aConnection
    argTypes:
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 476
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 476
    functionName: nl::Weave::Profiles::ProtocolEngine::BindRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 1
    functionsReached:
    - Binding*::Init
    - nl::Weave::Profiles::ProtocolEngine::NewBinding
    - nl::Weave::Profiles::ProtocolEngine::GetBinding
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ProtocolEngine::BindRequest(WeaveConnection *aConnection)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Binding*::GetExchangeCtx
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:508,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:509,1
    - Dst: DMTransaction*::Start
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:518,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:519,1
    - Dst: TransactionTableEntry*::IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:527,1
    - Dst: TransactionTableEntry*::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:528,1
    - Dst: DMTransaction*::IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:530,1
    - Dst: DMTransaction*::OnError
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:531,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - aBinding
    argTypes:
    - Binding*
    constantsTouched: []
    func_position:
      end: 535
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 535
    functionName: nl::Weave::Profiles::ProtocolEngine::BindConfirm
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 0
    functionsReached:
    - Binding*::GetExchangeCtx
    - TransactionTableEntry*::Free
    - VerifyOrExit
    - DMTransaction*::Start
    - DMTransaction*::IsFree
    - SuccessOrExit
    - TransactionTableEntry*::IsFree
    - DMTransaction*::OnError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ProtocolEngine::BindConfirm(Binding *aBinding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ProtocolEngine::FailTransactions
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aBinding
    - aReport
    argTypes:
    - Binding*
    - StatusReport
    constantsTouched: []
    func_position:
      end: 561
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 561
    functionName: nl::Weave::Profiles::ProtocolEngine::BindConfirm
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::ProtocolEngine::FailTransactions
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ProtocolEngine::BindConfirm(Binding *aBinding, StatusReport &aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ProtocolEngine::FinalizeTransactions
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:589,1
    - Dst: Binding::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:591,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - aPeerNodeId
    - aErr
    argTypes:
    - uint64_t
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 596
      start: 581
    functionDepth: 2
    functionLinenumber: 581
    functionLinenumberEnd: 596
    functionName: nl::Weave::Profiles::ProtocolEngine::UnbindRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 0
    functionsReached:
    - Binding::Finalize
    - nl::Weave::Profiles::ProtocolEngine::FinalizeTransactions
    linkageType: ''
    returnType: void
    signature: ProtocolEngine::UnbindRequest(const uint64_t &aPeerNodeId, WEAVE_ERROR
      aErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ProtocolEngine::UnbindRequest
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aPeerNodeId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 616
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 616
    functionName: nl::Weave::Profiles::ProtocolEngine::UnbindRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::ProtocolEngine::UnbindRequest
    linkageType: ''
    returnType: void
    signature: ProtocolEngine::UnbindRequest(const uint64_t &aPeerNodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ProtocolEngine::IncompleteIndication
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - aBinding
    - aReport
    argTypes:
    - Binding*
    - StatusReport
    constantsTouched: []
    func_position:
      end: 642
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 642
    functionName: nl::Weave::Profiles::ProtocolEngine::IncompleteIndication
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::ProtocolEngine::IncompleteIndication
    linkageType: ''
    returnType: void
    signature: ProtocolEngine::IncompleteIndication(Binding *aBinding, StatusReport
      &aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ProtocolEngine::GetBinding
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:648,1
    - Dst: nl::Weave::Profiles::ProtocolEngine::NewBinding
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:652,1
    - Dst: Binding*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:658,1
    - Dst: Binding*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:671,1
    - Dst: Binding*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:676,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - aExchangeCtx
    argTypes:
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 683
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 683
    functionName: nl::Weave::Profiles::ProtocolEngine::FromExchangeCtx
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 0
    functionsReached:
    - Binding*::Init
    - nl::Weave::Profiles::ProtocolEngine::NewBinding
    - nl::Weave::Profiles::ProtocolEngine::GetBinding
    linkageType: ''
    returnType: Binding
    signature: '*ProtocolEngine::FromExchangeCtx(ExchangeContext *aExchangeCtx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - aPeerNodeId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 705
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 705
    functionName: nl::Weave::Profiles::ProtocolEngine::GetBinding
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Binding
    signature: '*ProtocolEngine::GetBinding(const uint64_t &aPeerNodeId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Binding::IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:715,1
    - Dst: SYSTEM_STATS_INCREMENT
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:719,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 726
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 726
    functionName: nl::Weave::Profiles::ProtocolEngine::NewBinding
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 4
    functionsReached:
    - Binding::IsFree
    - SYSTEM_STATS_INCREMENT
    linkageType: ''
    returnType: Binding
    signature: '*ProtocolEngine::NewBinding(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ProtocolEngine::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:731,1
    - Dst: SYSTEM_STATS_RESET
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 734
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 734
    functionName: nl::Weave::Profiles::ProtocolEngine::ClearBindingTable
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::ProtocolEngine::Free
    - SYSTEM_STATS_RESET
    linkageType: ''
    returnType: void
    signature: ProtocolEngine::ClearBindingTable(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Binding::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:742,1
    - Dst: SYSTEM_STATS_RESET
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 746
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 746
    functionName: nl::Weave::Profiles::ProtocolEngine::FinalizeBindingTable
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 1
    functionsReached:
    - Binding::Finalize
    - SYSTEM_STATS_RESET
    linkageType: ''
    returnType: void
    signature: ProtocolEngine::FinalizeBindingTable(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:753,1
    - Dst: Binding*::IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:753,1
    - Dst: nl::Weave::Profiles::ProtocolEngine::EnqueueTransaction
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:755,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:756,1
    - Dst: Binding*::IsComplete
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:758,1
    - Dst: Binding*::GetExchangeCtx
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:760,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:761,1
    - Dst: DMTransaction*::Start
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:770,1
    - Dst: Binding*::CompleteRequest
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:775,1
    - Dst: DMTransaction*::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - aTransaction
    - aBinding
    argTypes:
    - DMTransaction*
    - Binding*
    constantsTouched: []
    func_position:
      end: 791
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 791
    functionName: nl::Weave::Profiles::ProtocolEngine::StartTransaction
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 1
    functionsReached:
    - Binding*::IsComplete
    - Binding*::GetExchangeCtx
    - Binding*::IsFree
    - VerifyOrExit
    - DMTransaction*::Start
    - Binding*::CompleteRequest
    - DMTransaction*::Finalize
    - SuccessOrExit
    - nl::Weave::Profiles::ProtocolEngine::EnqueueTransaction
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ProtocolEngine::StartTransaction(DMTransaction *aTransaction, Binding
      *aBinding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TransactionTableEntry::IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:801,1
    - Dst: TransactionTableEntry::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:805,1
    - Dst: SYSTEM_STATS_INCREMENT
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:807,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - aTxn
    - aBinding
    argTypes:
    - DMTransaction*
    - Binding*
    constantsTouched: []
    func_position:
      end: 814
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 814
    functionName: nl::Weave::Profiles::ProtocolEngine::EnqueueTransaction
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 2
    functionsReached:
    - TransactionTableEntry::IsFree
    - SYSTEM_STATS_INCREMENT
    - TransactionTableEntry::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ProtocolEngine::EnqueueTransaction(DMTransaction *aTxn, Binding *aBinding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TransactionTableEntry::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:824,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - aTransaction
    argTypes:
    - DMTransaction*
    constantsTouched: []
    func_position:
      end: 829
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 829
    functionName: nl::Weave::Profiles::ProtocolEngine::DequeueTransaction
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 0
    functionsReached:
    - TransactionTableEntry::Free
    linkageType: ''
    returnType: void
    signature: ProtocolEngine::DequeueTransaction(DMTransaction *aTransaction)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TransactionTableEntry::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:838,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - aBinding
    argTypes:
    - Binding*
    constantsTouched: []
    func_position:
      end: 840
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 840
    functionName: nl::Weave::Profiles::ProtocolEngine::FinalizeTransactions
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 1
    functionsReached:
    - TransactionTableEntry::Finalize
    linkageType: ''
    returnType: void
    signature: ProtocolEngine::FinalizeTransactions(Binding *aBinding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TransactionTableEntry::IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:850,1
    - Dst: TransactionTableEntry::Fail
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:854,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - aBinding
    - aReport
    argTypes:
    - Binding*
    - StatusReport
    constantsTouched: []
    func_position:
      end: 859
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 859
    functionName: nl::Weave::Profiles::ProtocolEngine::FailTransactions
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 1
    functionsReached:
    - TransactionTableEntry::Fail
    - TransactionTableEntry::IsFree
    linkageType: ''
    returnType: bool
    signature: ProtocolEngine::FailTransactions(Binding *aBinding, StatusReport &aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ProtocolEngine::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:865,1
    - Dst: SYSTEM_STATS_RESET
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 868
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 868
    functionName: nl::Weave::Profiles::ProtocolEngine::ClearTransactionTable
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::ProtocolEngine::Free
    - SYSTEM_STATS_RESET
    linkageType: ''
    returnType: void
    signature: ProtocolEngine::ClearTransactionTable(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TransactionTableEntry::IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:876,1
    - Dst: TransactionTableEntry::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:880,1
    - Dst: Binding*::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 885
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 885
    functionName: nl::Weave::Profiles::ProtocolEngine::FinalizeTransactionTable
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 1
    functionsReached:
    - TransactionTableEntry::IsFree
    - TransactionTableEntry::Finalize
    - Binding*::Finalize
    linkageType: ''
    returnType: void
    signature: ProtocolEngine::FinalizeTransactionTable(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:898,1
    - Dst: mExchangeCtx::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:901,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:903,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:905,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 907
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 907
    functionName: ProtocolEngine::TransactionTableEntry::Finalize(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 0
    functionsReached:
    - IsFree
    - mExchangeCtx::Close
    - Free
    linkageType: ''
    returnType: void
    signature: ProtocolEngine::TransactionTableEntry::Finalize(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:913,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:915,1
    - Dst: DMTransaction*::OnStatusReceived
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp:917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - aPeerId
    - aReport
    argTypes:
    - uint64_t
    - StatusReport
    constantsTouched: []
    func_position:
      end: 919
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 919
    functionName: ProtocolEngine::TransactionTableEntry::Fail(const uint64_t &aPeerId,
      StatusReport &aReport)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
    functionUses: 0
    functionsReached:
    - IsFree
    - DMTransaction*::OnStatusReceived
    - Free
    linkageType: ''
    returnType: void
    signature: ProtocolEngine::TransactionTableEntry::Fail(const uint64_t &aPeerId,
      StatusReport &aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DMPublisher*>
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:64,1
    - Dst: DMPublisher*::OnMsgReceived
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 67
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 67
    functionName: PublisherListener
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached:
    - static_cast<DMPublisher*>
    - DMPublisher*::OnMsgReceived
    linkageType: ''
    returnType: void
    signature: "PublisherListener(ExchangeContext *ec,\n                              const
      IPPacketInfo *pktInfo,\n                              const WeaveMessageInfo
      *msgInfo,\n                              uint32_t profileId,\n                              uint8_t
      msgType,\n                              PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DMPublisher::Subscription*>
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:82,1
    - Dst: DMPublisher::Subscription*::Activate
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:84,1
    - Dst: DMPublisher::Subscription*::mSubscriptionCtx::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ec
    - aSubscription
    argTypes:
    - ExchangeContext*
    - void*
    constantsTouched: []
    func_position:
      end: 89
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 89
    functionName: SubscriptionSuccess
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached:
    - DMPublisher::Subscription*::Activate
    - static_cast<DMPublisher::Subscription*>
    - DMPublisher::Subscription*::mSubscriptionCtx::Close
    linkageType: ''
    returnType: void
    signature: SubscriptionSuccess(ExchangeContext *ec, void *aSubscription)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DMPublisher::Subscription*>
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:99,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:101,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:106,1
    - Dst: DMPublisher::Subscription*::mSubscriptionCtx::Abort
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:108,1
    - Dst: DMPublisher::Subscription*::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ec
    - aError
    - aSubscription
    argTypes:
    - ExchangeContext*
    - WEAVE_ERROR
    - void*
    constantsTouched: []
    func_position:
      end: 110
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 110
    functionName: SubscriptionFailure
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - DMPublisher::Subscription*::Free
    - DMPublisher::Subscription*::mSubscriptionCtx::Abort
    - static_cast<DMPublisher::Subscription*>
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: SubscriptionFailure(ExchangeContext *ec, WEAVE_ERROR aError, void *aSubscription)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DMPublisher::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: DMPublisher::DMPublisher
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached:
    - DMPublisher::Clear
    linkageType: ''
    returnType: void
    signature: DMPublisher::DMPublisher(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DMPublisher::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: DMPublisher::~DMPublisher(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached:
    - DMPublisher::Finalize
    linkageType: ''
    returnType: void
    signature: DMPublisher::~DMPublisher(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ProtocolEngine::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:162,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:163,1
    - Dst: WeaveExchangeManager*::RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:165,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:166,1
    - Dst: WeaveExchangeManager*::RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:168,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:169,1
    - Dst: WeaveExchangeManager*::RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:173,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:177,1
    - Dst: DMPublisher::ClearSubscriptionTable
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:183,1
    - Dst: WeaveExchangeManager*::RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:187,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:188,1
    - Dst: WeaveExchangeManager*::RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:190,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - aExchangeMgr
    - aResponseTimeout
    argTypes:
    - WeaveExchangeManager*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 195
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 195
    functionName: DMPublisher::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::ProtocolEngine::Init
    - WeaveExchangeManager*::RegisterUnsolicitedMessageHandler
    - DMPublisher::ClearSubscriptionTable
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMPublisher::Init(WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DMPublisher::ClearSubscriptionTable
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:211,1
    - Dst: Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 218
    functionName: DMPublisher::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 1
    functionsReached:
    - Free
    - DMPublisher::ClearSubscriptionTable
    linkageType: ''
    returnType: void
    signature: DMPublisher::Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:232,1
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:233,1
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:234,1
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:235,1
    - Dst: DMPublisher::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:238,1
    - Dst: nl::Weave::Profiles::ProtocolEngine::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 241
    functionName: DMPublisher::Finalize
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::ProtocolEngine::Finalize
    - DMPublisher::Clear
    - UnregisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: void
    signature: DMPublisher::Finalize(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DMPublisher::FailSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aBinding
    - aReport
    argTypes:
    - Binding*
    - StatusReport
    constantsTouched: []
    func_position:
      end: 252
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 252
    functionName: DMPublisher::IncompleteIndication
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached:
    - DMPublisher::FailSubscription
    linkageType: ''
    returnType: void
    signature: DMPublisher::IncompleteIndication(Binding *aBinding, StatusReport &aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:297,1
    - Dst: StatusReport::success
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:297,1
    - Dst: StatusReport::success
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:299,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:301,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:302,1
    - Dst: ReferencedTLVData*::pack
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:304,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:305,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:307,1
    - Dst: StatusResponse
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:312,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:318,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - aResponseCtx
    - aStatus
    - aDataList
    argTypes:
    - ExchangeContext*
    - StatusReport
    - ReferencedTLVData*
    constantsTouched: []
    func_position:
      end: 322
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 322
    functionName: DMPublisher::ViewResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached:
    - StatusReport::success
    - nl::Weave::System::PacketBuffer::Free
    - StatusResponse
    - VerifyOrExit
    - ExchangeContext*::SendMessage
    - ReferencedTLVData*::pack
    - SuccessOrExit
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMPublisher::ViewResponse(ExchangeContext *aResponseCtx, StatusReport
      &aStatus, ReferencedTLVData *aDataList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StatusResponse
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aResponseCtx
    - aStatus
    argTypes:
    - ExchangeContext*
    - StatusReport
    constantsTouched: []
    func_position:
      end: 346
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 346
    functionName: DMPublisher::UpdateResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached:
    - StatusResponse
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMPublisher::UpdateResponse(ExchangeContext *aResponseCtx, StatusReport
      &aStatus)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:366,1
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:367,1
    - Dst: ReferencedTLVData::parse
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:383,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:384,1
    - Dst: ViewIndication
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:386,1
    - Dst: ReferencedTLVData::parse
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:392,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:393,1
    - Dst: UpdateIndication
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:395,1
    - Dst: ReferencedTLVData::parse
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:403,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:404,1
    - Dst: UpdateIndication
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:406,1
    - Dst: MessageIterator::read64
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:416,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:417,1
    - Dst: ReferencedTLVData::parse
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:421,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:422,1
    - Dst: SubscribeIndication
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:424,1
    - Dst: SubscribeIndication
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:429,1
    - Dst: MessageIterator::read64
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:436,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:437,1
    - Dst: DMPublisher::CancelSubscriptionIndication
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:439,1
    - Dst: StatusReport::init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:443,1
    - Dst: StatusReport::init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:447,1
    - Dst: StatusReport::init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:460,1
    - Dst: StatusReport::init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:471,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:478,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:478,1
    - Dst: StatusResponse
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:482,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:484,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:487,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 60
    argCount: 4
    argNames:
    - aExchangeCtx
    - aProfileId
    - aMsgType
    - aMsg
    argTypes:
    - ExchangeContext*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 488
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 488
    functionName: DMPublisher::OnMsgReceived
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached:
    - ReferencedTLVData::ReferencedTLVData
    - MessageIterator::read64
    - WeaveLogError
    - DMPublisher::CancelSubscriptionIndication
    - ReferencedTLVData::parse
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    - StatusResponse
    - StatusReport::init
    - ErrorStr
    - SuccessOrExit
    - UpdateIndication
    - ViewIndication
    - SubscribeIndication
    linkageType: ''
    returnType: void
    signature: DMPublisher::OnMsgReceived(ExchangeContext *aExchangeCtx, uint32_t
      aProfileId, uint8_t aMsgType, PacketBuffer *aMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DMPublisher::AddSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:515,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:516,1
    - Dst: Subscription*::Activate
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - aTopicId
    - aClientId
    argTypes:
    - TopicIdentifier
    - uint64_t
    constantsTouched: []
    func_position:
      end: 522
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 522
    functionName: DMPublisher::BeginSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached:
    - DMPublisher::AddSubscription
    - VerifyOrExit
    - Subscription*::Activate
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMPublisher::BeginSubscription(const TopicIdentifier &aTopicId, const
      uint64_t &aClientId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DMPublisher::RemoveSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aTopicId
    - aClientId
    argTypes:
    - TopicIdentifier
    - uint64_t
    constantsTouched: []
    func_position:
      end: 551
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 551
    functionName: DMPublisher::EndSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached:
    - DMPublisher::RemoveSubscription
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMPublisher::EndSubscription(const TopicIdentifier &aTopicId, const
      uint64_t &aClientId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Subscription::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 566
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 566
    functionName: DMPublisher::ClearSubscriptionTable
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 2
    functionsReached:
    - Subscription::Free
    linkageType: ''
    returnType: void
    signature: DMPublisher::ClearSubscriptionTable(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 595
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 595
    functionName: DMPublisher::SubscriptionTableEmpty
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: DMPublisher::SubscriptionTableEmpty(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PublisherSpecificTopicId
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:649,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:653,1
    - Dst: StatusReport::success
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:653,1
    - Dst: FromExchangeCtx
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:660,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:661,1
    - Dst: DMPublisher::AddSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:663,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:664,1
    - Dst: StatusReport::success
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:666,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:668,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:669,1
    - Dst: MessageIterator::append
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:672,1
    - Dst: MessageIterator::write64
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:674,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:675,1
    - Dst: ReferencedTLVData*::pack
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:677,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:678,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:697,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:706,1
    - Dst: Subscription*::Activate
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:711,1
    - Dst: Subscription*::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:715,1
    - Dst: StatusResponse
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:721,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:727,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 4
    argNames:
    - aResponseCtx
    - aStatus
    - aTopicId
    - aDataList
    argTypes:
    - ExchangeContext*
    - StatusReport
    - TopicIdentifier
    - ReferencedTLVData*
    constantsTouched: []
    func_position:
      end: 731
      start: 642
    functionDepth: 3
    functionLinenumber: 642
    functionLinenumberEnd: 731
    functionName: DMPublisher::SubscribeResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached:
    - MessageIterator::append
    - StatusReport::success
    - PublisherSpecificTopicId
    - nl::Weave::System::PacketBuffer::Free
    - DMPublisher::AddSubscription
    - MessageIterator::write64
    - VerifyOrExit
    - ExchangeContext*::SendMessage
    - StatusResponse
    - FromExchangeCtx
    - ReferencedTLVData*::pack
    - Subscription*::Free
    - SuccessOrExit
    - Subscription*::Activate
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "DMPublisher::SubscribeResponse(ExchangeContext *aResponseCtx,\n                                           StatusReport
      &aStatus,\n                                           const TopicIdentifier
      &aTopicId,\n                                           ReferencedTLVData *aDataList)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DMPublisher::EndSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aResponseCtx
    - aTopicId
    argTypes:
    - ExchangeContext*
    - TopicIdentifier
    constantsTouched: []
    func_position:
      end: 761
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 761
    functionName: DMPublisher::CancelSubscriptionIndication
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 1
    functionsReached:
    - DMPublisher::EndSubscription
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMPublisher::CancelSubscriptionIndication(ExchangeContext *aResponseCtx,
      const TopicIdentifier &aTopicId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetBinding
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:802,1
    - Dst: DMPublisher::NewNotify
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:807,1
    - Dst: Notify*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:811,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:812,1
    - Dst: StartTransaction
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:814,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - aDestinationId
    - aTopicId
    - aDataList
    - aTxnId
    - aTimeout
    argTypes:
    - uint64_t
    - TopicIdentifier
    - ReferencedTLVData
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 831
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 831
    functionName: DMPublisher::NotifyRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached:
    - Notify*::Init
    - DMPublisher::NewNotify
    - GetBinding
    - StartTransaction
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "DMPublisher::NotifyRequest(const uint64_t &aDestinationId,\n                                       const
      TopicIdentifier &aTopicId,\n                                       ReferencedTLVData
      &aDataList,\n                                       uint16_t aTxnId,\n                                       uint32_t
      aTimeout)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Subscription::IsActive
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:871,1
    - Dst: DMPublisher::NewNotify
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:883,1
    - Dst: Notify*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:887,1
    - Dst: StartTransaction
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:890,1
    - Dst: DMPublisher::NotifyRequest
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:902,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 4
    argNames:
    - aTopicId
    - aDataList
    - aTxnId
    - aTimeout
    argTypes:
    - TopicIdentifier
    - ReferencedTLVData
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 912
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 912
    functionName: DMPublisher::NotifyRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 1
    functionsReached:
    - Notify*::Init
    - DMPublisher::NewNotify
    - DMPublisher::NotifyRequest
    - StartTransaction
    - Subscription::IsActive
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMPublisher::NotifyRequest(const TopicIdentifier &aTopicId, ReferencedTLVData
      &aDataList, uint16_t aTxnId, uint32_t aTimeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aDataList
    - aTxnId
    - aTimeout
    argTypes:
    - ReferencedTLVData
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 947
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 947
    functionName: DMPublisher::NotifyRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMPublisher::NotifyRequest(ReferencedTLVData &aDataList, uint16_t aTxnId,
      uint32_t aTimeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DMPublisher::FailSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1001,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - aResponderId
    - aAssignedId
    - aStatus
    - aTxnId
    argTypes:
    - uint64_t
    - TopicIdentifier
    - StatusReport
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1012
      start: 993
    functionDepth: 1
    functionLinenumber: 993
    functionLinenumberEnd: 1012
    functionName: DMPublisher::NotifyConfirm
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached:
    - DMPublisher::FailSubscription
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "DMPublisher::NotifyConfirm(const uint64_t &aResponderId,\n                                       const
      TopicIdentifier &aAssignedId,\n                                       StatusReport
      &aStatus,\n                                       uint16_t aTxnId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1022
    functionName: DMPublisher::Subscription::Subscription(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached:
    - Free
    linkageType: ''
    returnType: void
    signature: DMPublisher::Subscription::Subscription(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1024
    functionDepth: 0
    functionLinenumber: 1024
    functionLinenumberEnd: 1027
    functionName: DMPublisher::Subscription::~Subscription(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached:
    - Free
    linkageType: ''
    returnType: void
    signature: DMPublisher::Subscription::~Subscription(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - aAssignedId
    - aRequestedId
    - aClientId
    argTypes:
    - TopicIdentifier
    - TopicIdentifier
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1039
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1039
    functionName: "DMPublisher::Subscription::Init(const TopicIdentifier &aAssignedId,\n
      \                                           const TopicIdentifier &aRequestedId,\n
      \                                           const uint64_t &aClientId)"
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "DMPublisher::Subscription::Init(const TopicIdentifier &aAssignedId,\n
      \                                           const TopicIdentifier &aRequestedId,\n
      \                                           const uint64_t &aClientId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1048
    functionName: DMPublisher::Subscription::Free(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DMPublisher::Subscription::Free(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Subscription::IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1079,1
    - Dst: Subscription::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1081,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 3
    argNames:
    - aAssignedId
    - aRequestedId
    - aClientId
    argTypes:
    - TopicIdentifier
    - TopicIdentifier
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1091
      start: 1050
    functionDepth: 0
    functionLinenumber: 1050
    functionLinenumberEnd: 1091
    functionName: DMPublisher::AddSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 2
    functionsReached:
    - Subscription::IsFree
    - Subscription::Init
    linkageType: ''
    returnType: DMPublisher::Subscription
    signature: "*DMPublisher::AddSubscription(const TopicIdentifier &aAssignedId,\n
      \                                                       const TopicIdentifier
      &aRequestedId,\n                                                        const
      uint64_t &aClientId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Subscription::MatchSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1099,1
    - Dst: Subscription::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - aTopicId
    - aClientId
    argTypes:
    - TopicIdentifier
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1102
      start: 1093
    functionDepth: 0
    functionLinenumber: 1093
    functionLinenumberEnd: 1102
    functionName: DMPublisher::RemoveSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 1
    functionsReached:
    - Subscription::MatchSubscription
    - Subscription::Free
    linkageType: ''
    returnType: void
    signature: DMPublisher::RemoveSubscription(const TopicIdentifier &aTopicId, const
      uint64_t &aClientId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Subscription::MatchSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1110,1
    - Dst: UnsubscribeIndication
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1112,1
    - Dst: Subscription::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - aTopicId
    - aClientId
    - aReport
    argTypes:
    - TopicIdentifier
    - uint64_t
    - StatusReport
    constantsTouched: []
    func_position:
      end: 1117
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1117
    functionName: DMPublisher::FailSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 2
    functionsReached:
    - Subscription::MatchSubscription
    - Subscription::Free
    - UnsubscribeIndication
    linkageType: ''
    returnType: void
    signature: DMPublisher::FailSubscription(const TopicIdentifier &aTopicId, const
      uint64_t &aClientId, StatusReport &aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TunEndPoint::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - aPublisher
    - aTopicId
    - aDataList
    - aTxnId
    - aTimeout
    argTypes:
    - DMPublisher*
    - TopicIdentifier
    - ReferencedTLVData
    - uint16_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1136
      start: 1124
    functionDepth: 1
    functionLinenumber: 1124
    functionLinenumberEnd: 1136
    functionName: "DMPublisher::Notify::Init(DMPublisher *aPublisher,\n                                      const
      TopicIdentifier &aTopicId,\n                                      ReferencedTLVData
      &aDataList,\n                                      uint16_t aTxnId,\n                                      uint32_t
      aTimeout)"
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TunEndPoint::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "DMPublisher::Notify::Init(DMPublisher *aPublisher,\n                                      const
      TopicIdentifier &aTopicId,\n                                      ReferencedTLVData
      &aDataList,\n                                      uint16_t aTxnId,\n                                      uint32_t
      aTimeout)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TunEndPoint::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1140,1
    - Dst: free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1138
    functionDepth: 3
    functionLinenumber: 1138
    functionLinenumberEnd: 1144
    functionName: DMPublisher::Notify::Free(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached:
    - free
    - nl::Inet::TunEndPoint::Free
    linkageType: ''
    returnType: void
    signature: DMPublisher::Notify::Free(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1151,1
    - Dst: MessageIterator::append
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1155,1
    - Dst: MessageIterator::write64
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1157,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1158,1
    - Dst: pack
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1160,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1161,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1164,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1170,1
    - Dst: free
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - aBuffer
    - aSendFlags
    argTypes:
    - PacketBuffer*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1182
      start: 1146
    functionDepth: 3
    functionLinenumber: 1146
    functionLinenumberEnd: 1182
    functionName: DMPublisher::Notify::SendRequest(PacketBuffer *aBuffer, uint16_t
      aSendFlags)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - MessageIterator::append
    - nl::Weave::System::PacketBuffer::Free
    - pack
    - MessageIterator::write64
    - VerifyOrExit
    - free
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMPublisher::Notify::SendRequest(PacketBuffer *aBuffer, uint16_t aSendFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DMPublisher *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1186,1
    - Dst: Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1190,1
    - Dst: DMPublisher*::NotifyConfirm
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aResponderId
    - aStatus
    argTypes:
    - uint64_t
    - StatusReport
    constantsTouched: []
    func_position:
      end: 1193
      start: 1184
    functionDepth: 0
    functionLinenumber: 1184
    functionLinenumberEnd: 1193
    functionName: DMPublisher::Notify::OnStatusReceived(const uint64_t &aResponderId,
      StatusReport &aStatus)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached:
    - Finalize
    - static_cast<DMPublisher *>
    - DMPublisher*::NotifyConfirm
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMPublisher::Notify::OnStatusReceived(const uint64_t &aResponderId,
      StatusReport &aStatus)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1211
    functionName: DMPublisher::NewNotify
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 2
    functionsReached:
    - IsFree
    linkageType: ''
    returnType: DMPublisher::Notify
    signature: '*DMPublisher::NewNotify(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1243,1
    - Dst: Notify::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp:1243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - aTxnId
    - aError
    argTypes:
    - uint16_t
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1248
      start: 1234
    functionDepth: 0
    functionLinenumber: 1234
    functionLinenumberEnd: 1248
    functionName: DMPublisher::CancelTransactionRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
    functionUses: 0
    functionsReached:
    - Notify::Finalize
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DMPublisher::CancelTransactionRequest(uint16_t aTxnId, WEAVE_ERROR
      aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: nl::Weave::Profiles::IsEmpty
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsEmpty()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: nl::Weave::Profiles::IsFull
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsFull()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: nl::Weave::Profiles::GetNumItems
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: GetNumItems()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: nl::Weave::Profiles::GetPathStoreSize
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: GetPathStoreSize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InsertItemAt
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aIndex
    - aItem
    - aFlags
    argTypes:
    - size_t
    - TraitPath
    - Flags
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: nl::Weave::Profiles::InsertItemAfter
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.h
    functionUses: 0
    functionsReached:
    - InsertItemAt
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: InsertItemAfter(size_t aIndex, const TraitPath &aItem, Flags aFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlags
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aIndex
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: nl::Weave::Profiles::SetFailed
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.h
    functionUses: 0
    functionsReached:
    - SetFlags
    linkageType: ''
    returnType: void
    signature: SetFailed(size_t aIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aIndex
    - aTraitPath
    argTypes:
    - size_t
    - TraitPath
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: nl::Weave::Profiles::GetItemAt
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: GetItemAt(size_t aIndex, TraitPath &aTraitPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::AreFlagsSet_private
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aIndex
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: nl::Weave::Profiles::IsItemInUse
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::AreFlagsSet_private
    linkageType: ''
    returnType: bool
    signature: IsItemInUse(size_t aIndex) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::IsItemInUse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.h:96,1
    - Dst: nl::Weave::Profiles::IsItemFailed
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.h:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - aIndex
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: nl::Weave::Profiles::IsItemValid
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::IsItemFailed
    - nl::Weave::Profiles::IsItemInUse
    linkageType: ''
    returnType: bool
    signature: IsItemValid(size_t aIndex) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::AreFlagsSet_private
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aIndex
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: nl::Weave::Profiles::IsItemFailed
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::AreFlagsSet_private
    linkageType: ''
    returnType: bool
    signature: IsItemFailed(size_t aIndex) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aIndex
    - aFlags
    argTypes:
    - size_t
    - Flags
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: nl::Weave::Profiles::AreFlagsSet_private
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: AreFlagsSet_private(size_t aIndex, Flags aFlags) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: TraitPathStore::TraitPathStore
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TraitPathStore::TraitPathStore()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitPathStore::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - aRecordArray
    - aArrayLength
    argTypes:
    - TraitPathStore::Record*
    - size_t
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: TraitPathStore::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 0
    functionsReached:
    - TraitPathStore::Clear
    linkageType: ''
    returnType: void
    signature: TraitPathStore::Init(TraitPathStore::Record *aRecordArray, size_t aArrayLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:104,1
    - Dst: static_cast<Flags>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:104,1
    - Dst: TraitPathStore::FindFirstAvailableItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:107,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:108,1
    - Dst: TraitPathStore::SetItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - aItem
    - aFlags
    argTypes:
    - TraitPath
    - Flags
    constantsTouched: []
    func_position:
      end: 115
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 115
    functionName: TraitPathStore::AddItem
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 0
    functionsReached:
    - TraitPathStore::SetItem
    - static_cast<Flags>
    - TraitPathStore::FindFirstAvailableItem
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitPathStore::AddItem(const TraitPath &aItem, Flags aFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitPathStore::AddItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aItem
    argTypes:
    - TraitPath
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: TraitPathStore::AddItem
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 1
    functionsReached:
    - TraitPathStore::AddItem
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitPathStore::AddItem(const TraitPath &aItem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitPathStore::Includes
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:134,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:136,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:137,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:142,1
    - Dst: TraitPathStore::GetNextValidItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:143,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:145,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:147,1
    - Dst: TraitPathStore::RemoveItemAt
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:151,1
    - Dst: TraitPathStore::AddItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - aItem
    - aSchemaEngine
    argTypes:
    - TraitPath
    - TraitSchemaEngine*
    constantsTouched: []
    func_position:
      end: 159
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 159
    functionName: TraitPathStore::AddItemDedup
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 0
    functionsReached:
    - TraitPathStore::Includes
    - ExitNow
    - TraitSchemaEngine*::IsParent
    - TraitPathStore::AddItem
    - TraitPathStore::GetNextValidItem
    - WeaveLogDetail
    - TraitPathStore::RemoveItemAt
    - GetPathStoreSize
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitPathStore::AddItemDedup(const TraitPath &aItem, const TraitSchemaEngine
      * const aSchemaEngine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:182,1
    - Dst: IsFull
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:182,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:183,1
    - Dst: TraitPathStore::FindFirstAvailableItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:183,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:184,1
    - Dst: memmove
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:190,1
    - Dst: TraitPathStore::SetFlags
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:192,1
    - Dst: TraitPathStore::SetItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - aIndex
    - aItem
    - aFlags
    argTypes:
    - size_t
    - TraitPath
    - Flags
    constantsTouched: []
    func_position:
      end: 200
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 200
    functionName: TraitPathStore::InsertItemAt
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 0
    functionsReached:
    - memmove
    - TraitPathStore::SetItem
    - VerifyOrExit
    - IsFull
    - TraitPathStore::SetFlags
    - TraitPathStore::FindFirstAvailableItem
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitPathStore::InsertItemAt(size_t aIndex, const TraitPath &aItem,
      Flags aFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitPathStore::GetNextValidItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:211,1
    - Dst: TraitPathStore::RemoveItemAt
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aDataHandle
    argTypes:
    - TraitDataHandle
    constantsTouched: []
    func_position:
      end: 215
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 215
    functionName: TraitPathStore::RemoveTrait
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 0
    functionsReached:
    - TraitPathStore::GetNextValidItem
    - TraitPathStore::RemoveItemAt
    linkageType: ''
    returnType: void
    signature: TraitPathStore::RemoveTrait(TraitDataHandle aDataHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aDataHandle
    argTypes:
    - TraitDataHandle
    constantsTouched: []
    func_position:
      end: 227
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 227
    functionName: TraitPathStore::IsTraitPresent
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: TraitPathStore::IsTraitPresent(TraitDataHandle aDataHandle) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitPathStore::GetNextValidItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:236,1
    - Dst: TraitPathStore::SetFailed
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 240
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 240
    functionName: TraitPathStore::SetFailed
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 1
    functionsReached:
    - TraitPathStore::GetNextValidItem
    - TraitPathStore::SetFailed
    linkageType: ''
    returnType: void
    signature: TraitPathStore::SetFailed()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitPathStore::GetNextValidItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:251,1
    - Dst: TraitPathStore::SetFailed
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aDataHandle
    argTypes:
    - TraitDataHandle
    constantsTouched: []
    func_position:
      end: 255
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 255
    functionName: TraitPathStore::SetFailedTrait
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 0
    functionsReached:
    - TraitPathStore::GetNextValidItem
    - TraitPathStore::SetFailed
    linkageType: ''
    returnType: void
    signature: TraitPathStore::SetFailedTrait(TraitDataHandle aDataHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:260,1
    - Dst: TraitPathStore::GetNextValidItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:261,1
    - Dst: TraitPathStore::RemoveItemAt
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:265,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - aItem
    argTypes:
    - TraitPath
    constantsTouched: []
    func_position:
      end: 271
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 271
    functionName: TraitPathStore::RemoveItem
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 0
    functionsReached:
    - TraitPathStore::GetNextValidItem
    - WeaveLogDetail
    - TraitPathStore::RemoveItemAt
    - GetPathStoreSize
    linkageType: ''
    returnType: void
    signature: TraitPathStore::RemoveItem(const TraitPath &aItem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:275,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:276,1
    - Dst: IsItemInUse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:276,1
    - Dst: IsItemInUse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:278,1
    - Dst: TraitPathStore::ClearItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - aIndex
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 283
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 283
    functionName: TraitPathStore::RemoveItemAt
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 3
    functionsReached:
    - TraitPathStore::ClearItem
    - IsItemInUse
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: TraitPathStore::RemoveItemAt(size_t aIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsItemInUse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:301,1
    - Dst: memmove
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:310,1
    - Dst: TraitPathStore::SetFlags
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:311,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 313
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 313
    functionName: TraitPathStore::Compact
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 0
    functionsReached:
    - TraitPathStore::SetFlags
    - IsItemInUse
    - memmove
    linkageType: ''
    returnType: void
    signature: TraitPathStore::Compact()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitPathStore::GetNextValidItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - aItem
    argTypes:
    - TraitPath
    constantsTouched: []
    func_position:
      end: 333
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 333
    functionName: TraitPathStore::IsPresent
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 0
    functionsReached:
    - TraitPathStore::GetNextValidItem
    linkageType: ''
    returnType: bool
    signature: TraitPathStore::IsPresent(const TraitPath &aItem) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitPathStore::GetNextValidItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:353,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:356,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:357,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - aTraitPath
    - aSchemaEngine
    argTypes:
    - TraitPath
    - TraitSchemaEngine*
    constantsTouched: []
    func_position:
      end: 365
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 365
    functionName: TraitPathStore::Intersects
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 0
    functionsReached:
    - TraitPathStore::GetNextValidItem
    - TraitSchemaEngine*::IsParent
    linkageType: ''
    returnType: bool
    signature: TraitPathStore::Intersects(const TraitPath &aTraitPath, const TraitSchemaEngine
      * const aSchemaEngine) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitPathStore::GetNextValidItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:385,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:388,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - aItem
    - aSchemaEngine
    argTypes:
    - TraitPath
    - TraitSchemaEngine*
    constantsTouched: []
    func_position:
      end: 396
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 396
    functionName: TraitPathStore::Includes
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 1
    functionsReached:
    - TraitPathStore::GetNextValidItem
    - TraitSchemaEngine*::IsParent
    linkageType: ''
    returnType: bool
    signature: TraitPathStore::Includes(const TraitPath &aItem, const TraitSchemaEngine
      * const aSchemaEngine) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitPathStore::ClearItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 409
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 409
    functionName: TraitPathStore::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 1
    functionsReached:
    - TraitPathStore::ClearItem
    linkageType: ''
    returnType: void
    signature: TraitPathStore::Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsItemValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:425,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 431
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 431
    functionName: TraitPathStore::GetFirstValidItem
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 0
    functionsReached:
    - IsItemValid
    linkageType: ''
    returnType: size_t
    signature: TraitPathStore::GetFirstValidItem() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsItemValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - aIndex
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 448
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 448
    functionName: TraitPathStore::GetNextValidItem
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 8
    functionsReached:
    - IsItemValid
    linkageType: ''
    returnType: size_t
    signature: TraitPathStore::GetNextValidItem(size_t aIndex) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitPathStore::GetNextValidItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - aTDH
    argTypes:
    - TraitDataHandle
    constantsTouched: []
    func_position:
      end: 467
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 467
    functionName: TraitPathStore::GetFirstValidItem
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 0
    functionsReached:
    - TraitPathStore::GetNextValidItem
    linkageType: ''
    returnType: size_t
    signature: TraitPathStore::GetFirstValidItem(TraitDataHandle aTDH) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitPathStore::GetNextValidItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - aIndex
    - aTDH
    argTypes:
    - size_t
    - TraitDataHandle
    constantsTouched: []
    func_position:
      end: 486
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 486
    functionName: TraitPathStore::GetNextValidItem
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 10
    functionsReached:
    - TraitPathStore::GetNextValidItem
    linkageType: ''
    returnType: size_t
    signature: TraitPathStore::GetNextValidItem(size_t aIndex, TraitDataHandle aTDH)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AreFlagsSet_private
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - aIndex
    - aFlags
    argTypes:
    - size_t
    - Flags
    constantsTouched: []
    func_position:
      end: 496
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 496
    functionName: TraitPathStore::AreFlagsSet
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 0
    functionsReached:
    - AreFlagsSet_private
    linkageType: ''
    returnType: bool
    signature: TraitPathStore::AreFlagsSet(size_t aIndex, Flags aFlags) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsItemInUse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:504,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 510
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 510
    functionName: TraitPathStore::FindFirstAvailableItem
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 2
    functionsReached:
    - IsItemInUse
    linkageType: ''
    returnType: size_t
    signature: TraitPathStore::FindFirstAvailableItem() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitPathStore::SetFlags
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - aIndex
    - aItem
    - aFlags
    argTypes:
    - size_t
    - TraitPath
    - Flags
    constantsTouched: []
    func_position:
      end: 517
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 517
    functionName: TraitPathStore::SetItem
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 2
    functionsReached:
    - TraitPathStore::SetFlags
    linkageType: ''
    returnType: void
    signature: TraitPathStore::SetItem(size_t aIndex, const TraitPath &aItem, Flags
      aFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - aIndex
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 524
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 524
    functionName: TraitPathStore::ClearItem
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TraitPathStore::ClearItem(size_t aIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - aIndex
    - aFlags
    - aValue
    argTypes:
    - size_t
    - Flags
    - bool
    constantsTouched: []
    func_position:
      end: 533
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 533
    functionName: TraitPathStore::SetFlags
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TraitPathStore::SetFlags(size_t aIndex, Flags aFlags, bool aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Abort
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:66,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - aAbortNow
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 75
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 75
    functionName: nl::Weave::Profiles::UpdateClient::FlushExistingExchangeContext
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp
    functionUses: 0
    functionsReached:
    - Close
    - Abort
    linkageType: ''
    returnType: void
    signature: UpdateClient::FlushExistingExchangeContext(const bool aAbortNow)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: nl::Weave::Profiles::UpdateClient::UpdateClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: UpdateClient::UpdateClient()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:89,1
    - Dst: Binding*::AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:92,1
    - Dst: nl::Weave::Profiles::UpdateClient::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - apBinding
    - apAppState
    - aEventCallback
    argTypes:
    - Binding*
    - void*
    - EventCallback
    constantsTouched: []
    func_position:
      end: 103
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 103
    functionName: nl::Weave::Profiles::UpdateClient::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp
    functionUses: 0
    functionsReached:
    - Binding*::AddRef
    - nl::Weave::Profiles::UpdateClient::MoveToState
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateClient::Init(Binding * const apBinding, void * const apAppState,
      EventCallback const aEventCallback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:122,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:124,1
    - Dst: nl::Weave::Profiles::UpdateClient::FlushExistingExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:128,1
    - Dst: NewExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:129,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:130,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:141,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:142,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:143,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:143,1
    - Dst: UpdateRequest::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:144,1
    - Dst: UpdateRequest::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:145,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:154,1
    - Dst: nl::Inet::FaultInjection::GetManager
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:155,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:162,1
    - Dst: nl::Inet::FaultInjection::GetManager
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:163,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:169,1
    - Dst: nl::Weave::FaultInjection::GetManager
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:170,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:175,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:178,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:180,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:181,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:183,1
    - Dst: nl::Weave::FaultInjection::GetManager
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:184,1
    - Dst: nl::Weave::Profiles::UpdateClient::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:188,1
    - Dst: nl::Weave::Profiles::UpdateClient::CancelUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:194,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:199,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:203,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 3
    argNames:
    - aIsPartialUpdate
    - aBuf
    - aIsFirstPayload
    argTypes:
    - bool
    - PacketBuffer*
    - bool
    constantsTouched: []
    func_position:
      end: 207
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 207
    functionName: nl::Weave::Profiles::UpdateClient::SendUpdate
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - nl::Weave::Profiles::UpdateClient::CancelUpdate
    - nl::Weave::System::PacketBuffer::Free
    - UpdateRequest::Parser::CheckSchemaValidity
    - nl::Weave::Profiles::UpdateClient::FlushExistingExchangeContext
    - VerifyOrExit
    - SubscriptionEngine::GetInstance
    - WeaveLogFunctError
    - UpdateRequest::Parser::Init
    - WeaveLogDetail
    - nl::Inet::FaultInjection::GetManager
    - SuccessOrExit
    - nl::Weave::Profiles::UpdateClient::MoveToState
    - nl::Weave::FaultInjection::GetManager
    - nl::Weave::TLV::TLVReader::Init
    - WEAVE_FAULT_INJECT
    - NewExchangeContext
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateClient::SendUpdate(bool aIsPartialUpdate, PacketBuffer *aBuf,
      bool aIsFirstPayload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::UpdateClient::FlushExistingExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:213,1
    - Dst: nl::Weave::Profiles::UpdateClient::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - aAbort
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 219
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 219
    functionName: nl::Weave::Profiles::UpdateClient::CloseUpdate
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::UpdateClient::FlushExistingExchangeContext
    - nl::Weave::Profiles::UpdateClient::MoveToState
    linkageType: ''
    returnType: void
    signature: UpdateClient::CloseUpdate(bool aAbort)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:230,1
    - Dst: nl::Weave::Profiles::UpdateClient::CloseUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 233
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 233
    functionName: nl::Weave::Profiles::UpdateClient::CancelUpdate
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::UpdateClient::CloseUpdate
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: UpdateClient::CancelUpdate(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::UpdateClient::CancelUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:244,1
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:248,1
    - Dst: nl::Weave::Profiles::UpdateClient::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 258
    functionName: nl::Weave::Profiles::UpdateClient::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::UpdateClient::MoveToState
    - Release
    - nl::Weave::Profiles::UpdateClient::CancelUpdate
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateClient::Shutdown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:265,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:266,1
    - Dst: reinterpret_cast<UpdateClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:268,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:272,1
    - Dst: UpdateClient*::CancelUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:274,1
    - Dst: CallbackFunc
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:278,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:284,1
    - Dst: UpdateClient*::CancelUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - aEC
    - aErrorCode
    - aMsgSpecificContext
    argTypes:
    - ExchangeContext*
    - WEAVE_ERROR
    - void*
    constantsTouched: []
    func_position:
      end: 287
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 287
    functionName: nl::Weave::Profiles::UpdateClient::OnSendError
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp
    functionUses: 0
    functionsReached:
    - CallbackFunc
    - OutEventParam::Clear
    - VerifyOrExit
    - reinterpret_cast<UpdateClient *>
    - InEventParam::Clear
    - UpdateClient*::CancelUpdate
    - WeaveLogFunctError
    linkageType: ''
    returnType: void
    signature: UpdateClient::OnSendError(ExchangeContext * aEC, WEAVE_ERROR aErrorCode,
      void * aMsgSpecificContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:294,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:295,1
    - Dst: reinterpret_cast<UpdateClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:297,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:301,1
    - Dst: UpdateClient*::CancelUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:303,1
    - Dst: CallbackFunc
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:307,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:311,1
    - Dst: UpdateClient*::CancelUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - aEC
    argTypes:
    - nl::Weave::ExchangeContext*
    constantsTouched: []
    func_position:
      end: 318
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 318
    functionName: nl::Weave::Profiles::UpdateClient::OnResponseTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp
    functionUses: 0
    functionsReached:
    - CallbackFunc
    - OutEventParam::Clear
    - VerifyOrExit
    - reinterpret_cast<UpdateClient *>
    - InEventParam::Clear
    - UpdateClient*::CancelUpdate
    - WeaveLogFunctError
    linkageType: ''
    returnType: void
    signature: UpdateClient::OnResponseTimeout(nl::Weave::ExchangeContext * aEC)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::StatusReport
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:325,1
    - Dst: reinterpret_cast<UpdateClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:326,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:332,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:333,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:335,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:336,1
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::parse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:343,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:344,1
    - Dst: UpdateClient*::CloseUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:350,1
    - Dst: CallbackFunc
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:352,1
    - Dst: UpdateClient*::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:357,1
    - Dst: CallbackFunc
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:358,1
    - Dst: CallbackFunc
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:363,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:368,1
    - Dst: UpdateClient*::CancelUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:372,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:377,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 6
    argNames:
    - aEC
    - aPktInfo
    - aMsgInfo
    - aProfileId
    - aMsgType
    - aPayload
    argTypes:
    - nl::Weave::ExchangeContext*
    - nl::Inet::IPPacketInfo*
    - nl::Weave::WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 382
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 382
    functionName: nl::Weave::Profiles::UpdateClient::OnMessageReceived
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp
    functionUses: 0
    functionsReached:
    - UpdateClient*::MoveToState
    - nl::Weave::System::PacketBuffer::Free
    - CallbackFunc
    - OutEventParam::Clear
    - VerifyOrExit
    - InEventParam::Clear
    - reinterpret_cast<UpdateClient *>
    - nl::Weave::Profiles::StatusReporting::StatusReport::parse
    - UpdateClient*::CancelUpdate
    - nl::Weave::Profiles::StatusReporting::StatusReport::StatusReport
    - SuccessOrExit
    - UpdateClient*::CloseUpdate
    - WeaveLogFunctError
    linkageType: ''
    returnType: void
    signature: "UpdateClient::OnMessageReceived(nl::Weave::ExchangeContext * aEC,
      const nl::Inet::IPPacketInfo * aPktInfo,\n                                   const
      nl::Weave::WeaveMessageInfo * aMsgInfo, uint32_t aProfileId, uint8_t aMsgType,\n
      \                                  PacketBuffer * aPayload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:386,1
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:387,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - apAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - EventType
    - InEventParam
    - OutEventParam
    constantsTouched: []
    func_position:
      end: 390
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 390
    functionName: nl::Weave::Profiles::UpdateClient::DefaultEventHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp
    functionUses: 0
    functionsReached:
    - IgnoreUnusedVariable
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: UpdateClient::DefaultEventHandler(void *apAppState, EventType aEvent,
      const InEventParam & aInParam, OutEventParam & aOutParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 407
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 407
    functionName: nl::Weave::Profiles::UpdateClient::GetStateStr
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* UpdateClient::GetStateStr() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:413,1
    - Dst: nl::Weave::Profiles::UpdateClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aTargetState
    argTypes:
    - UpdateClientState
    constantsTouched: []
    func_position:
      end: 414
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 414
    functionName: nl::Weave::Profiles::UpdateClient::MoveToState
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp
    functionUses: 4
    functionsReached:
    - nl::Weave::Profiles::UpdateClient::GetStateStr
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: UpdateClient::MoveToState(const UpdateClientState aTargetState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::UpdateClient::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 419
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 419
    functionName: nl::Weave::Profiles::UpdateClient::ClearState
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::UpdateClient::MoveToState
    linkageType: ''
    returnType: void
    signature: UpdateClient::ClearState(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aPropertyPathSchemaId
    argTypes:
    - PropertySchemaHandle
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: nl::Weave::Profiles::CreatePropertyPathHandle
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PropertyPathHandle
    signature: "CreatePropertyPathHandle(PropertySchemaHandle aPropertyPathSchemaId,\n
      \                                                  PropertyDictionaryKey aPropertyPathDictionaryKey
      = 0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aHandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: nl::Weave::Profiles::GetPropertySchemaHandle
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PropertySchemaHandle
    signature: GetPropertySchemaHandle(PropertyPathHandle aHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aHandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: nl::Weave::Profiles::GetPropertyDictionaryKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PropertyDictionaryKey
    signature: GetPropertyDictionaryKey(PropertyPathHandle aHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aHandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: nl::Weave::Profiles::IsRootPropertyPathHandle
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsRootPropertyPathHandle(PropertyPathHandle aHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aHandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: nl::Weave::Profiles::IsNullPropertyPathHandle
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsNullPropertyPathHandle(PropertyPathHandle aHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 581
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 581
    functionName: ~TraitDataSink()
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~TraitDataSink()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 582
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 582
    functionName: nl::Weave::Profiles::TraitDataSink::GetSchemaEngine
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TraitSchemaEngine
    signature: '* GetSchemaEngine(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 608
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 608
    functionName: nl::Weave::Profiles::TraitDataSink::GetVersion
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: GetVersion(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 612
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 612
    functionName: nl::Weave::Profiles::TraitDataSink::IsVersionValid
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsVersionValid(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' aVersion'
    argTypes:
    - DataVersion
    constantsTouched: []
    func_position:
      end: 614
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 614
    functionName: nl::Weave::Profiles::TraitDataSink::IsVersionNewer
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsVersionNewer(DataVersion & aVersion)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 621
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 621
    functionName: nl::Weave::Profiles::TraitDataSink::AcceptsSubscriptionlessNotifications
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: AcceptsSubscriptionlessNotifications(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 636
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 636
    functionName: nl::Weave::Profiles::TraitDataSink::HandleUnknownLeafHandle
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: HandleUnknownLeafHandle(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aType
    - aInEventParam
    argTypes:
    - uint16_t
    - void*
    constantsTouched: []
    func_position:
      end: 723
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 723
    functionName: nl::Weave::Profiles::TraitDataSink::OnEvent
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: OnEvent(uint16_t aType, void * aInEventParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 726
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 726
    functionName: nl::Weave::Profiles::TraitDataSink::IsUpdatableDataSink
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsUpdatableDataSink(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apSubClient
    argTypes:
    - SubscriptionClient*
    constantsTouched: []
    func_position:
      end: 728
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 728
    functionName: nl::Weave::Profiles::TraitDataSink::SetSubscriptionClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SetSubscriptionClient(SubscriptionClient * apSubClient)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apEncoder
    argTypes:
    - UpdateEncoder*
    constantsTouched: []
    func_position:
      end: 729
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 729
    functionName: nl::Weave::Profiles::TraitDataSink::SetUpdateEncoder
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SetUpdateEncoder(UpdateEncoder * apEncoder)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 733
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 733
    functionName: nl::Weave::Profiles::TraitDataSink::GetSubscriptionClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SubscriptionClient
    signature: '* GetSubscriptionClient()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 734
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 734
    functionName: nl::Weave::Profiles::TraitDataSink::GetUpdateEncoder
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UpdateEncoder
    signature: '* GetUpdateEncoder()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aAcceptsSublessNotifies
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 763
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 763
    functionName: nl::Weave::Profiles::TraitDataSink::SetAcceptsSubscriptionlessNotifications
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetAcceptsSubscriptionlessNotifications(const bool aAcceptsSublessNotifies)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 769
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 769
    functionName: nl::Weave::Profiles::TraitDataSink::GetLastNotifyVersion
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: GetLastNotifyVersion(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 815
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 815
    functionName: nl::Weave::Profiles::TraitUpdatableDataSink::IsUpdatableDataSink
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsUpdatableDataSink(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - apSubClient
    argTypes:
    - SubscriptionClient*
    constantsTouched: []
    func_position:
      end: 821
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 821
    functionName: nl::Weave::Profiles::TraitUpdatableDataSink::SetSubscriptionClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SetSubscriptionClient(SubscriptionClient * apSubClient)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - apEncoder
    argTypes:
    - UpdateEncoder*
    constantsTouched: []
    func_position:
      end: 826
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 826
    functionName: nl::Weave::Profiles::TraitUpdatableDataSink::SetUpdateEncoder
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SetUpdateEncoder(UpdateEncoder * apEncoder)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 828
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 828
    functionName: nl::Weave::Profiles::TraitUpdatableDataSink::GetSubscriptionClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SubscriptionClient
    signature: '* GetSubscriptionClient()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 829
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 829
    functionName: nl::Weave::Profiles::TraitUpdatableDataSink::GetUpdateEncoder
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UpdateEncoder
    signature: '* GetUpdateEncoder()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsVersionValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h:845,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h:845,1
    - Dst: GetLastNotifyVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h:845,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' aVersion'
    argTypes:
    - DataVersion
    constantsTouched: []
    func_position:
      end: 846
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 846
    functionName: nl::Weave::Profiles::TraitUpdatableDataSink::IsVersionNewer
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached:
    - IsVersionValid
    - GetLastNotifyVersion
    - GetVersion
    linkageType: ''
    returnType: bool
    signature: IsVersionNewer(DataVersion & aVersion)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 847
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 847
    functionName: nl::Weave::Profiles::TraitUpdatableDataSink::GetUpdateRequiredVersion
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: GetUpdateRequiredVersion(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetUpdateRequiredVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 848
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 848
    functionName: nl::Weave::Profiles::TraitUpdatableDataSink::ClearUpdateRequiredVersion
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached:
    - SetUpdateRequiredVersion
    linkageType: ''
    returnType: void
    signature: ClearUpdateRequiredVersion(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 851
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 851
    functionName: nl::Weave::Profiles::TraitUpdatableDataSink::GetUpdateStartVersion
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: GetUpdateStartVersion(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 853
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 853
    functionName: nl::Weave::Profiles::TraitUpdatableDataSink::ClearUpdateStartVersion
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ClearUpdateStartVersion(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 855
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 855
    functionName: nl::Weave::Profiles::TraitUpdatableDataSink::IsConditionalUpdate
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsConditionalUpdate(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aValue
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 856
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 856
    functionName: nl::Weave::Profiles::TraitUpdatableDataSink::SetConditionalUpdate
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetConditionalUpdate(bool aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 858
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 858
    functionName: nl::Weave::Profiles::TraitUpdatableDataSink::IsPotentialDataLoss
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsPotentialDataLoss(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aValue
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 859
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 859
    functionName: nl::Weave::Profiles::TraitUpdatableDataSink::SetPotentialDataLoss
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetPotentialDataLoss(bool aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 876
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 876
    functionName: ~TraitDataSource()
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~TraitDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 877
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 877
    functionName: nl::Weave::Profiles::TraitDataSource::GetSchemaEngine
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TraitSchemaEngine
    signature: '* GetSchemaEngine(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 895
      start: 895
    functionDepth: 0
    functionLinenumber: 895
    functionLinenumberEnd: 895
    functionName: nl::Weave::Profiles::TraitDataSource::IsUpdatableDataSource
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsUpdatableDataSource(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' aVersion'
    argTypes:
    - DataVersion
    constantsTouched: []
    func_position:
      end: 898
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 898
    functionName: nl::Weave::Profiles::TraitDataSource::IsVersionEqual
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached:
    - GetVersion
    linkageType: ''
    returnType: bool
    signature: IsVersionEqual(DataVersion & aVersion)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aType
    - aInEventParam
    argTypes:
    - uint16_t
    - void*
    constantsTouched: []
    func_position:
      end: 924
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 924
    functionName: nl::Weave::Profiles::TraitDataSource::OnEvent
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: OnEvent(uint16_t aType, void * aInEventParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 929
      start: 929
    functionDepth: 0
    functionLinenumber: 929
    functionLinenumberEnd: 929
    functionName: nl::Weave::Profiles::TraitDataSource::SetRootDirty
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetRootDirty(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 930
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 930
    functionName: nl::Weave::Profiles::TraitDataSource::ClearRootDirty
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ClearRootDirty(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 931
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 931
    functionName: nl::Weave::Profiles::TraitDataSource::IsRootDirty
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsRootDirty(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 936
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 936
    functionName: nl::Weave::Profiles::TraitDataSource::SetVersion
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetVersion(uint64_t version)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aDictionaryHandle
    - ' aContext'
    - ' aKey'
    argTypes:
    - PropertyPathHandle
    - uintptr_t
    - PropertyDictionaryKey
    constantsTouched: []
    func_position:
      end: 958
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 958
    functionName: nl::Weave::Profiles::TraitDataSource::GetNextDictionaryItemKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "GetNextDictionaryItemKey(PropertyPathHandle aDictionaryHandle, uintptr_t
      & aContext,\n                                                 PropertyDictionaryKey
      & aKey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 1003
    functionName: nl::Weave::Profiles::TraitUpdatableDataSource::HandleUnknownLeafHandle
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: HandleUnknownLeafHandle(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1085
    functionName: nl::Weave::Profiles::TraitUpdatableDataSource::IsUpdatableDataSource
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsUpdatableDataSource(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: nl::Weave::Profiles::PrettyPrintCheckpoint::PrettyPrintCheckpoint
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: PrettyPrintCheckpoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: ~PrettyPrintCheckpoint()
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~PrettyPrintCheckpoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:117,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:125,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:134,1
    - Dst: MIN
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:137,1
    - Dst: vsnprintf
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:146,1
    - Dst: MIN
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:149,1
    - Dst: va_end
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:153,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - aIsNewLine
    - aFmt
    argTypes:
    - bool
    - char*
    constantsTouched: []
    func_position:
      end: 154
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 154
    functionName: nl::Weave::Profiles::PrettyPrintWDM
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - MIN
    - vsnprintf
    - va_end
    - va_start
    - snprintf
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: PrettyPrintWDM(bool aIsNewLine, const char * aFmt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:170,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:172,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:175,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:175,1
    - Dst: nl::Weave::TLV::TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:177,1
    - Dst: nl::Weave::TLV::TLVReader*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:179,1
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - ' aSrcReader'
    - aTagInApiForm
    - apDstReader
    argTypes:
    - nl::Weave::TLV::TLVReader
    - uint64_t
    - nl::Weave::TLV::TLVReader*
    constantsTouched: []
    func_position:
      end: 188
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 188
    functionName: nl::Weave::Profiles::LookForElementWithTag
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogIfFalse
    - nl::Weave::TLV::TLVReader::GetTag
    - nl::Weave::TLV::TLVReader::Next
    - VerifyOrExit
    - nl::Weave::TLV::TLVReader*::Init
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::GetType
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "LookForElementWithTag(const nl::Weave::TLV::TLVReader & aSrcReader,
      const uint64_t aTagInApiForm,\n                                  nl::Weave::TLV::TLVReader
      * apDstReader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: nl::Weave::Profiles::ParserBase::ParserBase
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ParserBase::ParserBase()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LookForElementWithTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aTagToFind
    - apReader
    argTypes:
    - uint64_t
    - nl::Weave::TLV::TLVReader*
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: nl::Weave::Profiles::ParserBase::GetReaderOnTag
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - LookForElementWithTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ParserBase::GetReaderOnTag(const uint64_t aTagToFind, nl::Weave::TLV::TLVReader
      * const apReader) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ParserBase::GetSimpleValue
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aContextTag
    - apLValue
    argTypes:
    - uint8_t
    - T*
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: nl::Weave::Profiles::ParserBase::GetUnsignedInteger
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::ParserBase::GetSimpleValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ParserBase::GetUnsignedInteger(const uint8_t aContextTag, T * const
      apLValue) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LookForElementWithTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:211,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:211,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:212,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:214,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:214,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:216,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:217,1
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - aContextTag
    - aTLVType
    - apLValue
    argTypes:
    - uint8_t
    - nl::Weave::TLV::TLVType
    - T*
    constantsTouched: []
    func_position:
      end: 223
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 223
    functionName: nl::Weave::Profiles::ParserBase::GetSimpleValue
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogIfFalse
    - VerifyOrExit
    - nl::Weave::TLV::TLVReader::Get
    - LookForElementWithTag
    - SuccessOrExit
    - nl::Weave::TLV::ContextTag
    - nl::Weave::TLV::TLVReader::GetType
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ParserBase::GetSimpleValue(const uint8_t aContextTag, const nl::Weave::TLV::TLVType
      aTLVType, T * const apLValue) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    functionName: nl::Weave::Profiles::ListParserBase::ListParserBase
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ListParserBase::ListParserBase()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ListParserBase::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:232,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:234,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:234,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:238,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' aReader'
    argTypes:
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 244
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 244
    functionName: nl::Weave::Profiles::ListParserBase::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 1
    functionsReached:
    - EnterContainer
    - VerifyOrExit
    - GetType
    - nl::Weave::Profiles::ListParserBase::Init
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ListParserBase::Init(const nl::Weave::TLV::TLVReader & aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LookForElementWithTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:251,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:251,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:252,1
    - Dst: nl::Weave::Profiles::ListParserBase::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:254,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:255,1
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' aReader'
    - aContextTagToFind
    argTypes:
    - nl::Weave::TLV::TLVReader
    - uint8_t
    constantsTouched: []
    func_position:
      end: 261
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 261
    functionName: nl::Weave::Profiles::ListParserBase::InitIfPresent
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogIfFalse
    - LookForElementWithTag
    - nl::Weave::Profiles::ListParserBase::Init
    - SuccessOrExit
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ListParserBase::InitIfPresent(const nl::Weave::TLV::TLVReader & aReader,
      const uint8_t aContextTagToFind)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ListParserBase::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:265,1
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 270
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 270
    functionName: nl::Weave::Profiles::ListParserBase::Next
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogIfFalse
    - nl::Weave::Profiles::ListParserBase::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ListParserBase::Next(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apReader
    argTypes:
    - nl::Weave::TLV::TLVReader*
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: nl::Weave::Profiles::ListParserBase::GetReader
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVReader*::Init
    linkageType: ''
    returnType: void
    signature: ListParserBase::GetReader(nl::Weave::TLV::TLVReader * const apReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 279
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 279
    functionName: nl::Weave::Profiles::BuilderBase::BuilderBase
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BuilderBase::BuilderBase()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::BuilderBase::ResetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: nl::Weave::Profiles::BuilderBase::ResetError
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::BuilderBase::ResetError
    linkageType: ''
    returnType: void
    signature: BuilderBase::ResetError()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aErr
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 290
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 290
    functionName: nl::Weave::Profiles::BuilderBase::ResetError
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BuilderBase::ResetError(WEAVE_ERROR aErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:295,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:297,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 305
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 305
    functionName: nl::Weave::Profiles::BuilderBase::EndOfContainer
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EndContainer
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: BuilderBase::EndOfContainer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:311,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - apWriter
    argTypes:
    - nl::Weave::TLV::TLVWriter*
    constantsTouched: []
    func_position:
      end: 315
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 315
    functionName: nl::Weave::Profiles::BuilderBase::InitAnonymousStructure
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BuilderBase::InitAnonymousStructure(nl::Weave::TLV::TLVWriter * const
      apWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 317
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 317
    functionName: nl::Weave::Profiles::ListBuilderBase::ListBuilderBase
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ListBuilderBase::ListBuilderBase(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:324,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:324,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - apWriter
    - aContextTagToUse
    argTypes:
    - nl::Weave::TLV::TLVWriter*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 328
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 328
    functionName: nl::Weave::Profiles::ListBuilderBase::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - StartContainer
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ListBuilderBase::Init(nl::Weave::TLV::TLVWriter * const apWriter, const
      uint8_t aContextTagToUse)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:344,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - apWriter
    argTypes:
    - nl::Weave::TLV::TLVWriter*
    constantsTouched: []
    func_position:
      end: 348
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 348
    functionName: nl::Weave::Profiles::ListBuilderBase::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ListBuilderBase::Init(nl::Weave::TLV::TLVWriter * const apWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:355,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:357,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:357,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:362,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:363,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:364,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:365,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:367,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:367,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:367,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:368,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:368,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:371,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:372,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - ' aReader'
    argTypes:
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 378
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 378
    functionName: Path::Parser::Init(const nl::Weave::TLV::TLVReader & aReader)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - VerifyOrExit
    - GetType
    - Init
    - GetTag
    - SuccessOrExit
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Path::Parser::Init(const nl::Weave::TLV::TLVReader & aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:384,1
    - Dst: nl::Weave::TLV::TLVReader*::ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - apReader
    argTypes:
    - nl::Weave::TLV::TLVReader*
    constantsTouched: []
    func_position:
      end: 388
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 388
    functionName: Path::Parser::GetTags(nl::Weave::TLV::TLVReader * const apReader)
      const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVReader*::Init
    - nl::Weave::TLV::TLVReader*::ExitContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Path::Parser::GetTags(nl::Weave::TLV::TLVReader * const apReader) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:402,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:405,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:407,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:409,1
    - Dst: nl::Weave::TLV::IsContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:409,1
    - Dst: nl::Weave::TLV::TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:409,1
    - Dst: nl::Weave::TLV::TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:410,1
    - Dst: nl::Weave::TLV::TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:410,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:414,1
    - Dst: ResourceIdentifier::FromTLV
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:422,1
    - Dst: ResourceIdentifier::ToString
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:425,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:426,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:430,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:438,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:443,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:446,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:447,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:451,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:462,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:465,1
    - Dst: nl::Weave::TLV::TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:469,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:470,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:472,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:473,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:475,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:475,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:477,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:478,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:480,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:481,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:485,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:485,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:486,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:487,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:490,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:491,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:495,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:495,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:496,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:497,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:502,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:503,1
    - Dst: nl::Weave::TLV::TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:505,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:509,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:509,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:510,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:511,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:518,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:522,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:527,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:531,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:536,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:545,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:558,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:560,1
    - Dst: GetTags
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:562,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:563,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:566,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:569,1
    - Dst: nl::Weave::TLV::TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:569,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:571,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:571,1
    - Dst: nl::Weave::TLV::IsContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:575,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:577,1
    - Dst: nl::Weave::TLV::TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:577,1
    - Dst: nl::Weave::TLV::IsProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:579,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:581,1
    - Dst: nl::Weave::TLV::ProfileIdFromTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:581,1
    - Dst: nl::Weave::TLV::TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:582,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:586,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:591,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:597,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:600,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 603
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 603
    functionName: Path::Parser::CheckSchemaValidity(void) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - PRETTY_PRINT_SAMELINE
    - nl::Weave::TLV::IsProfileTag
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::ExitContainer
    - nl::Weave::TLV::ProfileIdFromTag
    - nl::Weave::TLV::TLVReader::Next
    - VerifyOrExit
    - nl::Weave::TLV::TagNumFromTag
    - GetTags
    - nl::Weave::TLV::IsContextTag
    - nl::Weave::TLV::TLVReader::EnterContainer
    - ResourceIdentifier::FromTLV
    - nl::Weave::TLV::TLVReader::GetTag
    - ExitNow
    - ResourceIdentifier::ToString
    - nl::Weave::TLV::TLVReader::Get
    - SuccessOrExit
    - nl::Weave::TLV::TLVReader::GetType
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Path::Parser::CheckSchemaValidity(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LookForElementWithTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:611,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:611,1
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - apReader
    argTypes:
    - nl::Weave::TLV::TLVReader*
    constantsTouched: []
    func_position:
      end: 616
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 616
    functionName: Path::Parser::GetResourceID(nl::Weave::TLV::TLVReader * const apReader)
      const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - LookForElementWithTag
    - WeaveLogIfFalse
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Path::Parser::GetResourceID(nl::Weave::TLV::TLVReader * const apReader)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LookForElementWithTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:622,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:622,1
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - apReader
    argTypes:
    - nl::Weave::TLV::TLVReader*
    constantsTouched: []
    func_position:
      end: 627
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 627
    functionName: Path::Parser::GetInstanceID(nl::Weave::TLV::TLVReader * const apReader)
      const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - LookForElementWithTag
    - WeaveLogIfFalse
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Path::Parser::GetInstanceID(nl::Weave::TLV::TLVReader * const apReader)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apInstanceID
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 634
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 634
    functionName: Path::Parser::GetInstanceID(uint64_t * const apInstanceID) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetUnsignedInteger
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Path::Parser::GetInstanceID(uint64_t * const apInstanceID) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LookForElementWithTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:648,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:648,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:649,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:651,1
    - Dst: nl::Weave::TLV::TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:653,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:654,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:656,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:657,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:659,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:659,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:661,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:662,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:664,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:665,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:669,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:669,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:671,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:672,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:675,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:676,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:680,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:680,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:682,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:683,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:686,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:687,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:691,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:691,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:693,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 2
    argNames:
    - apProfileID
    - apSchemaVersionRange
    argTypes:
    - uint32_t*
    - SchemaVersionRange*
    constantsTouched: []
    func_position:
      end: 703
      start: 639
    functionDepth: 2
    functionLinenumber: 639
    functionLinenumberEnd: 703
    functionName: Path::Parser::GetProfileID(uint32_t * const apProfileID, SchemaVersionRange
      * const apSchemaVersionRange)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVReader::EnterContainer
    - nl::Weave::TLV::TLVReader::Next
    - VerifyOrExit
    - nl::Weave::TLV::TLVReader::Get
    - LookForElementWithTag
    - SuccessOrExit
    - nl::Weave::TLV::ContextTag
    - nl::Weave::TLV::TLVReader::GetType
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Path::Parser::GetProfileID(uint32_t * const apProfileID, SchemaVersionRange
      * const apSchemaVersionRange)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:709,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:710,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:714,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:714,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:716,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - apWriter
    - aTagInApiForm
    argTypes:
    - nl::Weave::TLV::TLVWriter*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 724
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 724
    functionName: Path::Builder::_Init(nl::Weave::TLV::TLVWriter * const apWriter,
      const uint64_t aTagInApiForm)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - StartContainer
    - nl::Weave::TLV::ContextTag
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Path::Builder::_Init(nl::Weave::TLV::TLVWriter * const apWriter, const
      uint64_t aTagInApiForm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apWriter
    argTypes:
    - nl::Weave::TLV::TLVWriter*
    constantsTouched: []
    func_position:
      end: 729
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 729
    functionName: Path::Builder::Init(nl::Weave::TLV::TLVWriter * const apWriter)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - _Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Path::Builder::Init(nl::Weave::TLV::TLVWriter * const apWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:733,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - apWriter
    - aContextTagToUse
    argTypes:
    - nl::Weave::TLV::TLVWriter*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 734
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 734
    functionName: Path::Builder::Init(nl::Weave::TLV::TLVWriter * const apWriter,
      const uint8_t aContextTagToUse)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - _Init
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Path::Builder::Init(nl::Weave::TLV::TLVWriter * const apWriter, const
      uint8_t aContextTagToUse)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:739,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:741,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:743,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:743,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - aResourceID
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 749
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 749
    functionName: '& Path::Builder::ResourceID(const uint64_t aResourceID)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - Put
    - SuccessOrExit
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: Path::Builder
    signature: '& Path::Builder::ResourceID(const uint64_t aResourceID)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:754,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:756,1
    - Dst: ToTLV
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:757,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:758,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' aResourceID'
    argTypes:
    - ResourceIdentifier
    constantsTouched: []
    func_position:
      end: 764
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 764
    functionName: '& Path::Builder::ResourceID(const ResourceIdentifier& aResourceID)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - ToTLV
    - WeaveLogFunctError
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: Path::Builder
    signature: '& Path::Builder::ResourceID(const ResourceIdentifier& aResourceID)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:769,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:771,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:773,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:773,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - aInstanceID
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 779
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 779
    functionName: '& Path::Builder::InstanceID(const uint64_t aInstanceID)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - Put
    - SuccessOrExit
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: Path::Builder
    signature: '& Path::Builder::InstanceID(const uint64_t aInstanceID)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ProfileID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aProfileID
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 785
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 785
    functionName: '& Path::Builder::ProfileID(const uint32_t aProfileID)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - ProfileID
    linkageType: ''
    returnType: Path::Builder
    signature: '& Path::Builder::ProfileID(const uint32_t aProfileID)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:790,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:793,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:795,1
    - Dst: IsValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:795,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:801,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:801,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:802,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:804,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:805,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:809,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:810,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:815,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:816,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:819,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:820,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:824,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:824,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - aProfileID
    - ' aSchemaVersionRange'
    argTypes:
    - uint32_t
    - SchemaVersionRange
    constantsTouched: []
    func_position:
      end: 830
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 830
    functionName: '& Path::Builder::ProfileID(const uint32_t aProfileID, const SchemaVersionRange
      & aSchemaVersionRange)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - StartContainer
    - IsValid
    - VerifyOrExit
    - EndContainer
    - Put
    - SuccessOrExit
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: Path::Builder
    signature: '& Path::Builder::ProfileID(const uint32_t aProfileID, const SchemaVersionRange
      & aSchemaVersionRange)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:835,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:837,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:839,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 847
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 847
    functionName: '& Path::Builder::TagSection(void)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - EndContainer
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: Path::Builder
    signature: '& Path::Builder::TagSection(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:852,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:854,1
    - Dst: PutNull
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:856,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - aTagInApiForm
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 862
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 862
    functionName: '& Path::Builder::AdditionalTag(const uint64_t aTagInApiForm)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - PutNull
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: Path::Builder
    signature: '& Path::Builder::AdditionalTag(const uint64_t aTagInApiForm)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:867,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:872,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:873,1
    - Dst: EndOfContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:876,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 881
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 881
    functionName: '& Path::Builder::EndOfPath(void)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EndOfContainer
    - EndContainer
    - SuccessOrExit
    linkageType: ''
    returnType: Path::Builder
    signature: '& Path::Builder::EndOfPath(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:889,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:891,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:900,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:906,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:910,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ' aReader'
    argTypes:
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 912
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 912
    functionName: StatusElement::Parser::Init(const nl::Weave::TLV::TLVReader & aReader)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - ExitNow
    - GetType
    - Init
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: StatusElement::Parser::Init(const nl::Weave::TLV::TLVReader & aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:931,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:932,1
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:933,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:934,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:939,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:941,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:942,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:943,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:943,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:945,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:946,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:948,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:949,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:950,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:950,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:952,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:953,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - apProfileID
    - apStatusCode
    argTypes:
    - uint32_t*
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 957
      start: 924
    functionDepth: 2
    functionLinenumber: 924
    functionLinenumberEnd: 957
    functionName: "StatusElement::Parser::GetProfileIDAndStatusCode(uint32_t * const
      apProfileID,\n        uint16_t *const apStatusCode) const"
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - nl::Weave::TLV::TLVReader::Get
    - GetUnsignedInteger
    - nl::Weave::TLV::TLVReader::GetType
    - SuccessOrExit
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "StatusElement::Parser::GetProfileIDAndStatusCode(uint32_t * const
      apProfileID,\n        uint16_t *const apStatusCode) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckSchemaValidityDeprecated
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:976,1
    - Dst: CheckSchemaValidityCurrent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:980,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 984
      start: 970
    functionDepth: 0
    functionLinenumber: 970
    functionLinenumberEnd: 984
    functionName: StatusElement::Parser::CheckSchemaValidity(void) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - CheckSchemaValidityCurrent
    - CheckSchemaValidityDeprecated
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: StatusElement::Parser::CheckSchemaValidity(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1001,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1004,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1006,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1008,1
    - Dst: nl::Weave::TLV::IsContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1008,1
    - Dst: nl::Weave::TLV::TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1008,1
    - Dst: nl::Weave::TLV::TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1010,1
    - Dst: nl::Weave::TLV::TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1010,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1016,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1018,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1018,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1023,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1024,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1026,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1032,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1034,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1034,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1039,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1040,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1042,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1048,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1053,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1072,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 994
    functionDepth: 2
    functionLinenumber: 994
    functionLinenumberEnd: 1075
    functionName: StatusElement::Parser::CheckSchemaValidityDeprecated(void) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::IsContextTag
    - nl::Weave::TLV::TLVReader::GetTag
    - VerifyOrExit
    - nl::Weave::TLV::TLVReader::Get
    - nl::Weave::TLV::TagNumFromTag
    - nl::Weave::TLV::TLVReader::GetType
    - SuccessOrExit
    - PRETTY_PRINT
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: StatusElement::Parser::CheckSchemaValidityDeprecated(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1090,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1093,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1095,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1098,1
    - Dst: nl::Weave::TLV::TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1098,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1104,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1104,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1109,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1110,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1112,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1120,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1120,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1125,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1126,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1128,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1134,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1138,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1157,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1084
    functionDepth: 2
    functionLinenumber: 1084
    functionLinenumberEnd: 1160
    functionName: StatusElement::Parser::CheckSchemaValidityCurrent(void) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVReader::GetTag
    - VerifyOrExit
    - nl::Weave::TLV::TLVReader::Get
    - nl::Weave::TLV::TLVReader::GetType
    - SuccessOrExit
    - PRETTY_PRINT
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: StatusElement::Parser::CheckSchemaValidityCurrent(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ListBuilderBase::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - apWriter
    argTypes:
    - nl::Weave::TLV::TLVWriter*
    constantsTouched: []
    func_position:
      end: 1167
      start: 1163
    functionDepth: 2
    functionLinenumber: 1163
    functionLinenumberEnd: 1167
    functionName: StatusElement::Builder::Init(nl::Weave::TLV::TLVWriter * const apWriter)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::ListBuilderBase::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: StatusElement::Builder::Init(nl::Weave::TLV::TLVWriter * const apWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitAnonymousStructure
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - apWriter
    argTypes:
    - nl::Weave::TLV::TLVWriter*
    constantsTouched: []
    func_position:
      end: 1173
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1173
    functionName: StatusElement::Builder::InitDeprecated(nl::Weave::TLV::TLVWriter
      * const apWriter)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - InitAnonymousStructure
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: StatusElement::Builder::InitDeprecated(nl::Weave::TLV::TLVWriter *
      const apWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1178,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1182,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1184,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1188,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1190,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - aProfileID
    - aStatusCode
    argTypes:
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1196
      start: 1175
    functionDepth: 1
    functionLinenumber: 1175
    functionLinenumberEnd: 1196
    functionName: '& StatusElement::Builder::ProfileIDAndStatus(const uint32_t aProfileID,
      const uint16_t aStatusCode)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: StatusElement::Builder
    signature: '& StatusElement::Builder::ProfileIDAndStatus(const uint32_t aProfileID,
      const uint16_t aStatusCode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndOfContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1198
    functionDepth: 0
    functionLinenumber: 1198
    functionLinenumberEnd: 1203
    functionName: '& StatusElement::Builder::EndOfStatusElement(void)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EndOfContainer
    linkageType: ''
    returnType: StatusElement::Builder
    signature: '& StatusElement::Builder::EndOfStatusElement(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1211,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1213,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1213,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1217,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' aReader'
    argTypes:
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 1223
      start: 1206
    functionDepth: 0
    functionLinenumber: 1206
    functionLinenumberEnd: 1223
    functionName: DataElement::Parser::Init(const nl::Weave::TLV::TLVReader & aReader)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - VerifyOrExit
    - GetType
    - Init
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DataElement::Parser::Init(const nl::Weave::TLV::TLVReader & aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1232,1
    - Dst: nl::Weave::TLV::IsContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1236,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1236,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1238,1
    - Dst: nl::Weave::TLV::TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1238,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1238,1
    - Dst: nl::Weave::TLV::IsProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1240,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1240,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1242,1
    - Dst: nl::Weave::TLV::ProfileIdFromTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1242,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1242,1
    - Dst: nl::Weave::TLV::TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1243,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1243,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1251,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1254,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1258,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1259,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1266,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1267,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1269,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1277,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1278,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1280,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1288,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1289,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1291,1
    - Dst: GetString
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1299,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1300,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1304,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1309,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1319,1
    - Dst: GetBytes
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1321,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1322,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1324,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1325,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1338,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1344,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1349,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1354,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1358,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1362,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1362,1
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1367,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1369,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1370,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1372,1
    - Dst: PRETTY_PRINT_INCDEPTH
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1374,1
    - Dst: ParseData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1376,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1377,1
    - Dst: PRETTY_PRINT_DECDEPTH
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1379,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1382,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1384,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1385,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1389,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 96
    argCount: 2
    argNames:
    - ' aReader'
    - aDepth
    argTypes:
    - nl::Weave::TLV::TLVReader
    - int
    constantsTouched: []
    func_position:
      end: 1391
      start: 1225
    functionDepth: 2
    functionLinenumber: 1225
    functionLinenumberEnd: 1391
    functionName: DataElement::Parser::ParseData(nl::Weave::TLV::TLVReader & aReader,
      int aDepth) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - GetString
    - PRETTY_PRINT_SAMELINE
    - nl::Weave::TLV::IsProfileTag
    - Get
    - ParseData
    - WeaveLogFunctError
    - nl::Weave::TLV::ProfileIdFromTag
    - VerifyOrExit
    - nl::Weave::TLV::TagNumFromTag
    - nl::Weave::TLV::IsContextTag
    - IgnoreUnusedVariable
    - PRETTY_PRINT_DECDEPTH
    - GetTag
    - ExitContainer
    - PRETTY_PRINT
    - Next
    - GetLength
    - GetBytes
    - PRETTY_PRINT_INCDEPTH
    - GetType
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DataElement::Parser::ParseData(nl::Weave::TLV::TLVReader & aReader,
      int aDepth) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1406,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1409,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1411,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1413,1
    - Dst: nl::Weave::TLV::IsContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1413,1
    - Dst: nl::Weave::TLV::TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1413,1
    - Dst: nl::Weave::TLV::TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1415,1
    - Dst: nl::Weave::TLV::TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1415,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1421,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1423,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1423,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1425,1
    - Dst: Path::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1429,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1430,1
    - Dst: Path::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1431,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1432,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1438,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1440,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1440,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1445,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1446,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1448,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1454,1
    - Dst: ParseData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1457,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1458,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1464,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1466,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1466,1
    - Dst: nl::Weave::TLV::TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1468,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1469,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1471,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1472,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1474,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1478,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1479,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1481,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1484,1
    - Dst: nl::Weave::TLV::TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1486,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1487,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1492,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1494,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1494,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1499,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1500,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1502,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1509,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1514,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1539,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 79
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1399
    functionDepth: 2
    functionLinenumber: 1399
    functionLinenumberEnd: 1542
    functionName: DataElement::Parser::CheckSchemaValidity(void) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::IsContextTag
    - nl::Weave::TLV::TLVReader::EnterContainer
    - nl::Weave::TLV::TLVReader::GetTag
    - VerifyOrExit
    - Path::Parser::Init
    - nl::Weave::TLV::TagNumFromTag
    - nl::Weave::TLV::TLVReader::Get
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::GetType
    - SuccessOrExit
    - PRETTY_PRINT
    - Path::Parser::CheckSchemaValidity
    - ParseData
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::ExitContainer
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DataElement::Parser::CheckSchemaValidity(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LookForElementWithTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1549,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1549,1
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - apReader
    argTypes:
    - nl::Weave::TLV::TLVReader*
    constantsTouched: []
    func_position:
      end: 1554
      start: 1547
    functionDepth: 1
    functionLinenumber: 1547
    functionLinenumberEnd: 1554
    functionName: DataElement::Parser::GetReaderOnPath(nl::Weave::TLV::TLVReader *
      const apReader) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - LookForElementWithTag
    - WeaveLogIfFalse
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DataElement::Parser::GetReaderOnPath(nl::Weave::TLV::TLVReader * const
      apReader) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LookForElementWithTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1563,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1563,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1564,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1566,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1566,1
    - Dst: Path::Parser*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1568,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1569,1
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - apPath
    argTypes:
    - Path::Parser*
    constantsTouched: []
    func_position:
      end: 1575
      start: 1558
    functionDepth: 2
    functionLinenumber: 1558
    functionLinenumberEnd: 1575
    functionName: DataElement::Parser::GetPath(Path::Parser * const apPath) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogIfFalse
    - VerifyOrExit
    - Path::Parser*::Init
    - LookForElementWithTag
    - SuccessOrExit
    - nl::Weave::TLV::ContextTag
    - nl::Weave::TLV::TLVReader::GetType
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DataElement::Parser::GetPath(Path::Parser * const apPath) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apVersion
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 1582
      start: 1579
    functionDepth: 0
    functionLinenumber: 1579
    functionLinenumberEnd: 1582
    functionName: DataElement::Parser::GetVersion(uint64_t * const apVersion) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetUnsignedInteger
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DataElement::Parser::GetVersion(uint64_t * const apVersion) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LookForElementWithTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1590,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1590,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1591,1
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - apReader
    argTypes:
    - nl::Weave::TLV::TLVReader*
    constantsTouched: []
    func_position:
      end: 1597
      start: 1586
    functionDepth: 1
    functionLinenumber: 1586
    functionLinenumberEnd: 1597
    functionName: DataElement::Parser::GetData(nl::Weave::TLV::TLVReader * const apReader)
      const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - LookForElementWithTag
    - WeaveLogIfFalse
    - nl::Weave::TLV::ContextTag
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DataElement::Parser::GetData(nl::Weave::TLV::TLVReader * const apReader)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSimpleValue
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apPartialChangeFlag
    argTypes:
    - bool*
    constantsTouched: []
    func_position:
      end: 1604
      start: 1601
    functionDepth: 0
    functionLinenumber: 1601
    functionLinenumberEnd: 1604
    functionName: DataElement::Parser::GetPartialChangeFlag(bool * const apPartialChangeFlag)
      const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetSimpleValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DataElement::Parser::GetPartialChangeFlag(bool * const apPartialChangeFlag)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LookForElementWithTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1611,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1611,1
    - Dst: LookForElementWithTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1612,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1612,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - apDataPresentFlag
    - apDeletePresentFlag
    argTypes:
    - bool*
    - bool*
    constantsTouched: []
    func_position:
      end: 1630
      start: 1606
    functionDepth: 1
    functionLinenumber: 1606
    functionLinenumberEnd: 1630
    functionName: DataElement::Parser::CheckPresence(bool * const apDataPresentFlag,
      bool * const apDeletePresentFlag) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - LookForElementWithTag
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DataElement::Parser::CheckPresence(bool * const apDataPresentFlag,
      bool * const apDeletePresentFlag) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LookForElementWithTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1637,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1637,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1638,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1640,1
    - Dst: nl::Weave::TLV::TLVReader*::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1640,1
    - Dst: nl::Weave::TLV::TLVReader*::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1642,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - apReader
    argTypes:
    - nl::Weave::TLV::TLVReader*
    constantsTouched: []
    func_position:
      end: 1647
      start: 1632
    functionDepth: 1
    functionLinenumber: 1632
    functionLinenumberEnd: 1647
    functionName: DataElement::Parser::GetDeletedDictionaryKeys(nl::Weave::TLV::TLVReader
      * const apReader) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVReader*::GetType
    - VerifyOrExit
    - LookForElementWithTag
    - nl::Weave::TLV::TLVReader*::EnterContainer
    - SuccessOrExit
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DataElement::Parser::GetDeletedDictionaryKeys(nl::Weave::TLV::TLVReader
      * const apReader) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitAnonymousStructure
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apWriter
    argTypes:
    - nl::Weave::TLV::TLVWriter*
    constantsTouched: []
    func_position:
      end: 1654
      start: 1651
    functionDepth: 0
    functionLinenumber: 1651
    functionLinenumberEnd: 1654
    functionName: DataElement::Builder::Init(nl::Weave::TLV::TLVWriter * const apWriter)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - InitAnonymousStructure
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DataElement::Builder::Init(nl::Weave::TLV::TLVWriter * const apWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1659,1
    - Dst: ResetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1659,1
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1661,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1661,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1656
    functionDepth: 1
    functionLinenumber: 1656
    functionLinenumberEnd: 1668
    functionName: '& DataElement::Builder::CreatePathBuilder()'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - Init
    - ResetError
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: Path::Builder
    signature: '& DataElement::Builder::CreatePathBuilder()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1673,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1675,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1675,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aVersion
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1681
      start: 1670
    functionDepth: 1
    functionLinenumber: 1670
    functionLinenumberEnd: 1681
    functionName: '& DataElement::Builder::Version(const uint64_t aVersion)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: DataElement::Builder
    signature: '& DataElement::Builder::Version(const uint64_t aVersion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1687,1
    - Dst: PutBoolean
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1691,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1691,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - aIsPartialChange
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1697
      start: 1684
    functionDepth: 1
    functionLinenumber: 1684
    functionLinenumberEnd: 1697
    functionName: '& DataElement::Builder::PartialChange(const bool aIsPartialChange)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - PutBoolean
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - SuccessOrExit
    linkageType: ''
    returnType: DataElement::Builder
    signature: '& DataElement::Builder::PartialChange(const bool aIsPartialChange)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndOfContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1699
    functionDepth: 0
    functionLinenumber: 1699
    functionLinenumberEnd: 1704
    functionName: '& DataElement::Builder::EndOfDataElement(void)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EndOfContainer
    linkageType: ''
    returnType: DataElement::Builder
    signature: '& DataElement::Builder::EndOfDataElement(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1718,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1719,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1722,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1724,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1726,1
    - Dst: nl::Weave::TLV::TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1726,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1727,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1727,1
    - Dst: Path::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1731,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1732,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1734,1
    - Dst: Path::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1736,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1737,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1743,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1712
    functionDepth: 2
    functionLinenumber: 1712
    functionLinenumberEnd: 1755
    functionName: PathList::Parser::CheckSchemaValidity(void) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVReader::GetTag
    - VerifyOrExit
    - Path::Parser::Init
    - nl::Weave::TLV::TLVReader::GetType
    - SuccessOrExit
    - PRETTY_PRINT
    - Path::Parser::CheckSchemaValidity
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PathList::Parser::CheckSchemaValidity(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1762,1
    - Dst: ResetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1762,1
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1764,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1759
    functionDepth: 0
    functionLinenumber: 1759
    functionLinenumberEnd: 1771
    functionName: '& PathList::Builder::CreatePathBuilder()'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - Init
    - VerifyOrExit
    - ResetError
    linkageType: ''
    returnType: Path::Builder
    signature: '& PathList::Builder::CreatePathBuilder()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndOfContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1774
    functionDepth: 0
    functionLinenumber: 1774
    functionLinenumberEnd: 1779
    functionName: '& PathList::Builder::EndOfPathList(void)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EndOfContainer
    linkageType: ''
    returnType: PathList::Builder
    signature: '& PathList::Builder::EndOfPathList(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1792,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1793,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1796,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1798,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1800,1
    - Dst: nl::Weave::TLV::TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1800,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1801,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1801,1
    - Dst: DataElement::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1805,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1806,1
    - Dst: DataElement::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1807,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1808,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1814,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1827,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1830
      start: 1786
    functionDepth: 2
    functionLinenumber: 1786
    functionLinenumberEnd: 1830
    functionName: DataList::Parser::CheckSchemaValidity(void) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVReader::GetTag
    - VerifyOrExit
    - DataElement::Parser::Init
    - DataElement::Parser::CheckSchemaValidity
    - nl::Weave::TLV::TLVReader::GetType
    - SuccessOrExit
    - PRETTY_PRINT
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DataList::Parser::CheckSchemaValidity(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1837,1
    - Dst: ResetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1837,1
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1839,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1834
    functionDepth: 0
    functionLinenumber: 1834
    functionLinenumberEnd: 1846
    functionName: '& DataList::Builder::CreateDataElementBuilder()'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - Init
    - VerifyOrExit
    - ResetError
    linkageType: ''
    returnType: DataElement::Builder
    signature: '& DataList::Builder::CreateDataElementBuilder()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndOfContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1854
      start: 1849
    functionDepth: 0
    functionLinenumber: 1849
    functionLinenumberEnd: 1854
    functionName: '& DataList::Builder::EndOfDataList(void)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EndOfContainer
    linkageType: ''
    returnType: DataList::Builder
    signature: '& DataList::Builder::EndOfDataList(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1861,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1863,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1863,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1867,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' aReader'
    argTypes:
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 1873
      start: 1856
    functionDepth: 0
    functionLinenumber: 1856
    functionLinenumberEnd: 1873
    functionName: Event::Parser::Init(const nl::Weave::TLV::TLVReader & aReader)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - VerifyOrExit
    - GetType
    - Init
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Event::Parser::Init(const nl::Weave::TLV::TLVReader & aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1906,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1909,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1911,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1913,1
    - Dst: nl::Weave::TLV::IsContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1913,1
    - Dst: nl::Weave::TLV::TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1913,1
    - Dst: nl::Weave::TLV::TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1915,1
    - Dst: nl::Weave::TLV::TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1915,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1921,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1924,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1924,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1929,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1930,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1932,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1940,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1943,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1943,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1948,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1949,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1951,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1959,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1962,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1962,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1967,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1968,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1970,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1978,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1981,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1981,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1986,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1987,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1989,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:1997,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2000,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2000,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2005,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2006,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2008,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2016,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2019,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2019,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2024,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2025,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2027,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2035,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2038,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2038,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2043,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2044,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2046,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2054,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2057,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2057,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2057,1
    - Dst: ResourceIdentifier::FromTLV
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2063,1
    - Dst: ResourceIdentifier::ToString
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2066,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2067,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2071,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2073,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2085,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2088,1
    - Dst: nl::Weave::TLV::TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2092,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2093,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2095,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2096,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2098,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2098,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2100,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2101,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2103,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2104,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2108,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2108,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2110,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2111,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2114,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2115,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2119,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2119,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2121,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2122,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2125,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2126,1
    - Dst: nl::Weave::TLV::TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2128,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2132,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2132,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2134,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2135,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2142,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2146,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2151,1
    - Dst: PRETTY_PRINT_SAMELINE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2155,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2160,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2170,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2173,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2173,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2178,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2179,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2181,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2189,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2192,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2192,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2197,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2198,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2200,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2208,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2211,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2211,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2216,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2217,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2219,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2227,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2230,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2230,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2235,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2236,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2238,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2246,1
    - Dst: ParseData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2249,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2250,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2254,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2259,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2260,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2269,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 189
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2272
      start: 1877
    functionDepth: 2
    functionLinenumber: 1877
    functionLinenumberEnd: 2272
    functionName: Event::Parser::CheckSchemaValidity(void) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::IsContextTag
    - nl::Weave::TLV::TLVReader::EnterContainer
    - ResourceIdentifier::FromTLV
    - nl::Weave::TLV::TLVReader::GetTag
    - PRETTY_PRINT_SAMELINE
    - VerifyOrExit
    - nl::Weave::TLV::TLVReader::Get
    - nl::Weave::TLV::TagNumFromTag
    - ResourceIdentifier::ToString
    - nl::Weave::TLV::TLVReader::GetType
    - SuccessOrExit
    - PRETTY_PRINT
    - ParseData
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::ExitContainer
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Event::Parser::CheckSchemaValidity(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apSourceId
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 2278
      start: 2275
    functionDepth: 0
    functionLinenumber: 2275
    functionLinenumberEnd: 2278
    functionName: Event::Parser::GetSourceId(uint64_t * const apSourceId)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetUnsignedInteger
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Event::Parser::GetSourceId(uint64_t * const apSourceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apImportance
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 2283
      start: 2280
    functionDepth: 0
    functionLinenumber: 2280
    functionLinenumberEnd: 2283
    functionName: Event::Parser::GetImportance(uint64_t * const apImportance)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetUnsignedInteger
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Event::Parser::GetImportance(uint64_t * const apImportance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apEventId
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 2288
      start: 2285
    functionDepth: 0
    functionLinenumber: 2285
    functionLinenumberEnd: 2288
    functionName: Event::Parser::GetEventId(uint64_t * const apEventId)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetUnsignedInteger
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Event::Parser::GetEventId(uint64_t * const apEventId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apImportance
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 2293
      start: 2290
    functionDepth: 0
    functionLinenumber: 2290
    functionLinenumberEnd: 2293
    functionName: Event::Parser::GetRelatedEventImportance(uint64_t * const apImportance)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetUnsignedInteger
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Event::Parser::GetRelatedEventImportance(uint64_t * const apImportance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apEventId
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 2298
      start: 2295
    functionDepth: 0
    functionLinenumber: 2295
    functionLinenumberEnd: 2298
    functionName: Event::Parser::GetRelatedEventId(uint64_t * const apEventId)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetUnsignedInteger
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Event::Parser::GetRelatedEventId(uint64_t * const apEventId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apUTCTimestamp
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 2303
      start: 2300
    functionDepth: 0
    functionLinenumber: 2300
    functionLinenumberEnd: 2303
    functionName: Event::Parser::GetUTCTimestamp(uint64_t * const apUTCTimestamp)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetUnsignedInteger
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Event::Parser::GetUTCTimestamp(uint64_t * const apUTCTimestamp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apSystemTimestamp
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 2308
      start: 2305
    functionDepth: 0
    functionLinenumber: 2305
    functionLinenumberEnd: 2308
    functionName: Event::Parser::GetSystemTimestamp(uint64_t * const apSystemTimestamp)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetUnsignedInteger
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Event::Parser::GetSystemTimestamp(uint64_t * const apSystemTimestamp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apResourceId
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 2313
      start: 2310
    functionDepth: 0
    functionLinenumber: 2310
    functionLinenumberEnd: 2313
    functionName: Event::Parser::GetResourceId(uint64_t * const apResourceId)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetUnsignedInteger
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Event::Parser::GetResourceId(uint64_t * const apResourceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apTraitProfileId
    argTypes:
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 2318
      start: 2315
    functionDepth: 0
    functionLinenumber: 2315
    functionLinenumberEnd: 2318
    functionName: Event::Parser::GetTraitProfileId(uint32_t * const apTraitProfileId)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetUnsignedInteger
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Event::Parser::GetTraitProfileId(uint32_t * const apTraitProfileId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apTraitInstanceId
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 2323
      start: 2320
    functionDepth: 0
    functionLinenumber: 2320
    functionLinenumberEnd: 2323
    functionName: Event::Parser::GetTraitInstanceId(uint64_t * const apTraitInstanceId)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetUnsignedInteger
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Event::Parser::GetTraitInstanceId(uint64_t * const apTraitInstanceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apEventType
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 2328
      start: 2325
    functionDepth: 0
    functionLinenumber: 2325
    functionLinenumberEnd: 2328
    functionName: Event::Parser::GetEventType(uint64_t * const apEventType)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetUnsignedInteger
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Event::Parser::GetEventType(uint64_t * const apEventType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSimpleValue
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apDeltaUTCTime
    argTypes:
    - int64_t*
    constantsTouched: []
    func_position:
      end: 2333
      start: 2330
    functionDepth: 0
    functionLinenumber: 2330
    functionLinenumberEnd: 2333
    functionName: Event::Parser::GetDeltaUTCTime(int64_t * const apDeltaUTCTime)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetSimpleValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Event::Parser::GetDeltaUTCTime(int64_t * const apDeltaUTCTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSimpleValue
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apDeltaSystemTime
    argTypes:
    - int64_t*
    constantsTouched: []
    func_position:
      end: 2338
      start: 2335
    functionDepth: 0
    functionLinenumber: 2335
    functionLinenumberEnd: 2338
    functionName: Event::Parser::GetDeltaSystemTime(int64_t * const apDeltaSystemTime)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetSimpleValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Event::Parser::GetDeltaSystemTime(int64_t * const apDeltaSystemTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LookForElementWithTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2344,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2344,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - apReader
    argTypes:
    - nl::Weave::TLV::TLVReader*
    constantsTouched: []
    func_position:
      end: 2348
      start: 2340
    functionDepth: 1
    functionLinenumber: 2340
    functionLinenumberEnd: 2348
    functionName: Event::Parser::GetReaderOnEvent(nl::Weave::TLV::TLVReader * const
      apReader) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - LookForElementWithTag
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Event::Parser::GetReaderOnEvent(nl::Weave::TLV::TLVReader * const apReader)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitAnonymousStructure
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apWriter
    argTypes:
    - nl::Weave::TLV::TLVWriter*
    constantsTouched: []
    func_position:
      end: 2353
      start: 2350
    functionDepth: 0
    functionLinenumber: 2350
    functionLinenumberEnd: 2353
    functionName: Event::Builder::Init(nl::Weave::TLV::TLVWriter * const apWriter)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - InitAnonymousStructure
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Event::Builder::Init(nl::Weave::TLV::TLVWriter * const apWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2358,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2360,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2360,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aSourceId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 2366
      start: 2355
    functionDepth: 1
    functionLinenumber: 2355
    functionLinenumberEnd: 2366
    functionName: Event::Builder::SourceId(const uint64_t aSourceId)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: Event::Builder
    signature: Event::Builder::SourceId(const uint64_t aSourceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2371,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2373,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2373,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aImportance
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 2379
      start: 2368
    functionDepth: 1
    functionLinenumber: 2368
    functionLinenumberEnd: 2379
    functionName: Event::Builder::Importance(const uint64_t aImportance)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: Event::Builder
    signature: Event::Builder::Importance(const uint64_t aImportance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2384,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2386,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2386,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aEventId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 2392
      start: 2381
    functionDepth: 1
    functionLinenumber: 2381
    functionLinenumberEnd: 2392
    functionName: Event::Builder::EventId(const uint64_t aEventId)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: Event::Builder
    signature: Event::Builder::EventId(const uint64_t aEventId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2397,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2399,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2399,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aImportance
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 2405
      start: 2394
    functionDepth: 1
    functionLinenumber: 2394
    functionLinenumberEnd: 2405
    functionName: Event::Builder::RelatedEventImportance(const uint64_t aImportance)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: Event::Builder
    signature: Event::Builder::RelatedEventImportance(const uint64_t aImportance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2410,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2412,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2412,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aEventId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 2418
      start: 2407
    functionDepth: 1
    functionLinenumber: 2407
    functionLinenumberEnd: 2418
    functionName: Event::Builder::RelatedEventId(const uint64_t aEventId)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: Event::Builder
    signature: Event::Builder::RelatedEventId(const uint64_t aEventId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2423,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2425,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2425,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aUTCTimestamp
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 2431
      start: 2420
    functionDepth: 1
    functionLinenumber: 2420
    functionLinenumberEnd: 2431
    functionName: Event::Builder::UTCTimestamp(const uint64_t aUTCTimestamp)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: Event::Builder
    signature: Event::Builder::UTCTimestamp(const uint64_t aUTCTimestamp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2436,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2438,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2438,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aSystemTimestamp
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 2444
      start: 2433
    functionDepth: 1
    functionLinenumber: 2433
    functionLinenumberEnd: 2444
    functionName: Event::Builder::SystemTimestamp(const uint64_t aSystemTimestamp)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: Event::Builder
    signature: Event::Builder::SystemTimestamp(const uint64_t aSystemTimestamp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2449,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2451,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2451,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aResourceId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 2457
      start: 2446
    functionDepth: 1
    functionLinenumber: 2446
    functionLinenumberEnd: 2457
    functionName: Event::Builder::ResourceId(const uint64_t aResourceId)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: Event::Builder
    signature: Event::Builder::ResourceId(const uint64_t aResourceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2462,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2464,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2464,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aTraitProfileId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2470
      start: 2459
    functionDepth: 1
    functionLinenumber: 2459
    functionLinenumberEnd: 2470
    functionName: Event::Builder::TraitProfileId(const uint32_t aTraitProfileId)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: Event::Builder
    signature: Event::Builder::TraitProfileId(const uint32_t aTraitProfileId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2475,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2477,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2477,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aTraitInstanceId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 2483
      start: 2472
    functionDepth: 1
    functionLinenumber: 2472
    functionLinenumberEnd: 2483
    functionName: Event::Builder::TraitInstanceId(const uint64_t aTraitInstanceId)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: Event::Builder
    signature: Event::Builder::TraitInstanceId(const uint64_t aTraitInstanceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2488,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2490,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2490,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aEventType
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 2496
      start: 2485
    functionDepth: 1
    functionLinenumber: 2485
    functionLinenumberEnd: 2496
    functionName: Event::Builder::EventType(const uint64_t aEventType)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: Event::Builder
    signature: Event::Builder::EventType(const uint64_t aEventType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2501,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2503,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2503,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aDeltaUTCTime
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 2509
      start: 2498
    functionDepth: 1
    functionLinenumber: 2498
    functionLinenumberEnd: 2509
    functionName: Event::Builder::DeltaUTCTime(const int64_t aDeltaUTCTime)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: Event::Builder
    signature: Event::Builder::DeltaUTCTime(const int64_t aDeltaUTCTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2514,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2516,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2516,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aDeltaSystemTime
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 2522
      start: 2511
    functionDepth: 1
    functionLinenumber: 2511
    functionLinenumberEnd: 2522
    functionName: Event::Builder::DeltaSystemTime(const int64_t aDeltaSystemTime)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: Event::Builder
    signature: Event::Builder::DeltaSystemTime(const int64_t aDeltaSystemTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndOfContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2530
      start: 2525
    functionDepth: 0
    functionLinenumber: 2525
    functionLinenumberEnd: 2530
    functionName: '& Event::Builder::EndOfEvent(void)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EndOfContainer
    linkageType: ''
    returnType: Event::Builder
    signature: '& Event::Builder::EndOfEvent(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2539,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2540,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2543,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2545,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2547,1
    - Dst: nl::Weave::TLV::TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2547,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2548,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2548,1
    - Dst: Event::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2552,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2553,1
    - Dst: Event::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2554,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2555,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2561,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2574,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2583
      start: 2533
    functionDepth: 2
    functionLinenumber: 2533
    functionLinenumberEnd: 2583
    functionName: EventList::Parser::CheckSchemaValidity(void) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - nl::Weave::TLV::TLVReader::GetTag
    - VerifyOrExit
    - Event::Parser::Init
    - Event::Parser::CheckSchemaValidity
    - nl::Weave::TLV::TLVReader::GetType
    - SuccessOrExit
    - PRETTY_PRINT
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EventList::Parser::CheckSchemaValidity(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2589,1
    - Dst: ResetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2589,1
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2591,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2598
      start: 2586
    functionDepth: 0
    functionLinenumber: 2586
    functionLinenumberEnd: 2598
    functionName: '& EventList::Builder::CreateEventBuilder()'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - Init
    - VerifyOrExit
    - ResetError
    linkageType: ''
    returnType: Event::Builder
    signature: '& EventList::Builder::CreateEventBuilder()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndOfContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2606
      start: 2601
    functionDepth: 0
    functionLinenumber: 2601
    functionLinenumberEnd: 2606
    functionName: '& EventList::Builder::EndOfEventList(void)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EndOfContainer
    linkageType: ''
    returnType: EventList::Builder
    signature: '& EventList::Builder::EndOfEventList(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2616,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2617,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2619,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2621,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2623,1
    - Dst: nl::Weave::TLV::TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2623,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2625,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2628,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2632,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2633,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2635,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2639,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2646,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2654,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2657
      start: 2609
    functionDepth: 2
    functionLinenumber: 2609
    functionLinenumberEnd: 2657
    functionName: VersionList::Parser::CheckSchemaValidity(void) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVReader::GetTag
    - VerifyOrExit
    - ExitNow
    - nl::Weave::TLV::TLVReader::Get
    - nl::Weave::TLV::TLVReader::GetType
    - SuccessOrExit
    - PRETTY_PRINT
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: VersionList::Parser::CheckSchemaValidity(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2672,1
    - Dst: StatusElement::Builder::InitDeprecated
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2676,1
    - Dst: StatusElement::Builder::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2680,1
    - Dst: StatusElement::Builder::ProfileIDAndStatus
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2683,1
    - Dst: StatusElement::Builder::EndOfStatusElement
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2684,1
    - Dst: StatusElement::Builder::GetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2686,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2689,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - aProfileID
    - aStatusCode
    argTypes:
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2692
      start: 2668
    functionDepth: 0
    functionLinenumber: 2668
    functionLinenumberEnd: 2692
    functionName: '& StatusList::Builder::AddStatus(uint32_t aProfileID, uint16_t
      aStatusCode)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - StatusElement::Builder::ProfileIDAndStatus
    - StatusElement::Builder::GetError
    - StatusElement::Builder::InitDeprecated
    - StatusElement::Builder::Init
    - StatusElement::Builder::EndOfStatusElement
    - SuccessOrExit
    - WeaveLogFunctError
    linkageType: ''
    returnType: StatusList::Builder
    signature: '& StatusList::Builder::AddStatus(uint32_t aProfileID, uint16_t aStatusCode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndOfContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2694
    functionDepth: 0
    functionLinenumber: 2694
    functionLinenumberEnd: 2699
    functionName: '& StatusList::Builder::EndOfStatusList()'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EndOfContainer
    linkageType: ''
    returnType: StatusList::Builder
    signature: '& StatusList::Builder::EndOfStatusList()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StatusElement::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2716,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2717,1
    - Dst: StatusElement::Parser::GetProfileIDAndStatusCode
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2719,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - apProfileID
    - apStatusCode
    argTypes:
    - uint32_t*
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 2724
      start: 2711
    functionDepth: 0
    functionLinenumber: 2711
    functionLinenumberEnd: 2724
    functionName: StatusList::Parser::GetProfileIDAndStatusCode(uint32_t * const apProfileID,
      uint16_t * const apStatusCode)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - StatusElement::Parser::GetProfileIDAndStatusCode
    - StatusElement::Parser::Init
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: StatusList::Parser::GetProfileIDAndStatusCode(uint32_t * const apProfileID,
      uint16_t * const apStatusCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2737,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2738,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2741,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2744,1
    - Dst: nl::Weave::TLV::TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2753,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2754,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2756,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2757,1
    - Dst: StatusElement::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2762,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2763,1
    - Dst: StatusElement::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2764,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2765,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2771,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2782,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2785
      start: 2731
    functionDepth: 2
    functionLinenumber: 2731
    functionLinenumberEnd: 2785
    functionName: StatusList::Parser::CheckSchemaValidity(void) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVReader::GetTag
    - StatusElement::Parser::CheckSchemaValidity
    - VerifyOrExit
    - nl::Weave::TLV::TLVReader::GetType
    - SuccessOrExit
    - PRETTY_PRINT
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Init
    - StatusElement::Parser::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: StatusList::Parser::CheckSchemaValidity(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2795,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2795,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2797,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2805,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2810,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2813
      start: 2790
    functionDepth: 0
    functionLinenumber: 2790
    functionLinenumberEnd: 2813
    functionName: VersionList::Parser::IsElementValid(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - ExitNow
    - GetType
    - GetTag
    - WeaveLogFunctError
    linkageType: ''
    returnType: bool
    signature: VersionList::Parser::IsElementValid(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2818
      start: 2815
    functionDepth: 0
    functionLinenumber: 2815
    functionLinenumberEnd: 2818
    functionName: VersionList::Parser::IsNull(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetType
    linkageType: ''
    returnType: bool
    signature: VersionList::Parser::IsNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2823,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2826,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2830,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - apVersion
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 2833
      start: 2820
    functionDepth: 0
    functionLinenumber: 2820
    functionLinenumberEnd: 2833
    functionName: VersionList::Parser::GetVersion(uint64_t * const apVersion)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetType
    - WeaveLogDetail
    - Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: VersionList::Parser::GetVersion(uint64_t * const apVersion)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2838,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2840,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aVersion
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 2846
      start: 2835
    functionDepth: 0
    functionLinenumber: 2835
    functionLinenumberEnd: 2846
    functionName: '& VersionList::Builder::AddVersion(const uint64_t aVersion)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: VersionList::Builder
    signature: '& VersionList::Builder::AddVersion(const uint64_t aVersion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2851,1
    - Dst: PutNull
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2853,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2859
      start: 2848
    functionDepth: 0
    functionLinenumber: 2848
    functionLinenumberEnd: 2859
    functionName: '& VersionList::Builder::AddNull(void)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - PutNull
    - SuccessOrExit
    linkageType: ''
    returnType: VersionList::Builder
    signature: '& VersionList::Builder::AddNull(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndOfContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2866
      start: 2862
    functionDepth: 0
    functionLinenumber: 2862
    functionLinenumberEnd: 2866
    functionName: '& VersionList::Builder::EndOfVersionList(void)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EndOfContainer
    linkageType: ''
    returnType: VersionList::Builder
    signature: '& VersionList::Builder::EndOfVersionList(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2874,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2876,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2876,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2877,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2877,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2881,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ' aReader'
    argTypes:
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 2889
      start: 2869
    functionDepth: 0
    functionLinenumber: 2869
    functionLinenumberEnd: 2889
    functionName: BaseMessageWithSubscribeId::Parser::Init(const nl::Weave::TLV::TLVReader
      & aReader)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - VerifyOrExit
    - GetType
    - GetTag
    - Init
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BaseMessageWithSubscribeId::Parser::Init(const nl::Weave::TLV::TLVReader
      & aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apSubscriptionID
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 2896
      start: 2893
    functionDepth: 0
    functionLinenumber: 2893
    functionLinenumberEnd: 2896
    functionName: BaseMessageWithSubscribeId::Parser::GetSubscriptionID(uint64_t *
      const apSubscriptionID) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetUnsignedInteger
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BaseMessageWithSubscribeId::Parser::GetSubscriptionID(uint64_t * const
      apSubscriptionID) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitAnonymousStructure
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2902,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - apWriter
    argTypes:
    - nl::Weave::TLV::TLVWriter*
    constantsTouched: []
    func_position:
      end: 2909
      start: 2899
    functionDepth: 0
    functionLinenumber: 2899
    functionLinenumberEnd: 2909
    functionName: BaseMessageWithSubscribeId::Builder::Init(nl::Weave::TLV::TLVWriter
      * const apWriter)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - InitAnonymousStructure
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BaseMessageWithSubscribeId::Builder::Init(nl::Weave::TLV::TLVWriter
      * const apWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2914,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2916,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2916,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aSubscriptionID
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 2920
      start: 2911
    functionDepth: 1
    functionLinenumber: 2911
    functionLinenumberEnd: 2920
    functionName: BaseMessageWithSubscribeId::Builder::SetSubscriptionID(const uint64_t
      aSubscriptionID)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: BaseMessageWithSubscribeId::Builder::SetSubscriptionID(const uint64_t
      aSubscriptionID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndOfContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2925
      start: 2922
    functionDepth: 0
    functionLinenumber: 2922
    functionLinenumberEnd: 2925
    functionName: BaseMessageWithSubscribeId::Builder::EndOfMessage(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EndOfContainer
    linkageType: ''
    returnType: void
    signature: BaseMessageWithSubscribeId::Builder::EndOfMessage(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2950,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2953,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2955,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2958,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2960,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2962,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2962,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2967,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2968,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2970,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2974,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2976,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2978,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2978,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2983,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2984,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2986,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2990,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2992,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2994,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2994,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:2999,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3000,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3002,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3006,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3008,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3010,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3010,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3015,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3016,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3018,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3022,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3026,1
    - Dst: EventList::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3029,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3030,1
    - Dst: PRETTY_PRINT_INCDEPTH
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3032,1
    - Dst: EventList::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3034,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3035,1
    - Dst: PRETTY_PRINT_DECDEPTH
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3037,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3039,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3043,1
    - Dst: PathList::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3046,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3047,1
    - Dst: PRETTY_PRINT_INCDEPTH
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3049,1
    - Dst: PathList::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3051,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3052,1
    - Dst: PRETTY_PRINT_DECDEPTH
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3054,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3056,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3060,1
    - Dst: VersionList::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3063,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3064,1
    - Dst: PRETTY_PRINT_INCDEPTH
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3066,1
    - Dst: VersionList::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3068,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3069,1
    - Dst: PRETTY_PRINT_DECDEPTH
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3071,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3075,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3086,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3087,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3090,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3093
      start: 2933
    functionDepth: 2
    functionLinenumber: 2933
    functionLinenumberEnd: 3093
    functionName: SubscribeRequest::Parser::CheckSchemaValidity(void) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EventList::Parser::CheckSchemaValidity
    - VersionList::Parser::Init
    - PRETTY_PRINT_DECDEPTH
    - VerifyOrExit
    - PathList::Parser::CheckSchemaValidity
    - nl::Weave::TLV::TLVReader::Get
    - PRETTY_PRINT_INCDEPTH
    - PathList::Parser::Init
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::GetType
    - SuccessOrExit
    - PRETTY_PRINT
    - VersionList::Parser::CheckSchemaValidity
    - EventList::Parser::Init
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::ContextTag
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscribeRequest::Parser::CheckSchemaValidity(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apTimeOutMin
    argTypes:
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 3101
      start: 3098
    functionDepth: 0
    functionLinenumber: 3098
    functionLinenumberEnd: 3101
    functionName: SubscribeRequest::Parser::GetSubscribeTimeoutMin(uint32_t * const
      apTimeOutMin) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetUnsignedInteger
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscribeRequest::Parser::GetSubscribeTimeoutMin(uint32_t * const apTimeOutMin)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apTimeOutMax
    argTypes:
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 3108
      start: 3105
    functionDepth: 0
    functionLinenumber: 3105
    functionLinenumberEnd: 3108
    functionName: SubscribeRequest::Parser::GetSubscribeTimeoutMax(uint32_t * const
      apTimeOutMax) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetUnsignedInteger
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscribeRequest::Parser::GetSubscribeTimeoutMax(uint32_t * const apTimeOutMax)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSimpleValue
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apAllEvents
    argTypes:
    - bool*
    constantsTouched: []
    func_position:
      end: 3113
      start: 3110
    functionDepth: 0
    functionLinenumber: 3110
    functionLinenumberEnd: 3113
    functionName: SubscribeRequest::Parser::GetSubscribeToAllEvents(bool * const apAllEvents)
      const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetSimpleValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscribeRequest::Parser::GetSubscribeToAllEvents(bool * const apAllEvents)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EventList::Parser*::InitIfPresent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apEventList
    argTypes:
    - EventList::Parser*
    constantsTouched: []
    func_position:
      end: 3118
      start: 3115
    functionDepth: 0
    functionLinenumber: 3115
    functionLinenumberEnd: 3118
    functionName: SubscribeRequest::Parser::GetLastObservedEventIdList(EventList::Parser
      * const apEventList) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EventList::Parser*::InitIfPresent
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscribeRequest::Parser::GetLastObservedEventIdList(EventList::Parser
      * const apEventList) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathList::Parser*::InitIfPresent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apPathList
    argTypes:
    - PathList::Parser*
    constantsTouched: []
    func_position:
      end: 3124
      start: 3121
    functionDepth: 0
    functionLinenumber: 3121
    functionLinenumberEnd: 3124
    functionName: SubscribeRequest::Parser::GetPathList(PathList::Parser * const apPathList)
      const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - PathList::Parser*::InitIfPresent
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscribeRequest::Parser::GetPathList(PathList::Parser * const apPathList)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VersionList::Parser*::InitIfPresent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apVersionList
    argTypes:
    - VersionList::Parser*
    constantsTouched: []
    func_position:
      end: 3132
      start: 3129
    functionDepth: 0
    functionLinenumber: 3129
    functionLinenumberEnd: 3132
    functionName: SubscribeRequest::Parser::GetVersionList(VersionList::Parser * const
      apVersionList) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - VersionList::Parser*::InitIfPresent
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscribeRequest::Parser::GetVersionList(VersionList::Parser * const
      apVersionList) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetSubscriptionID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aSubscriptionID
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 3138
      start: 3134
    functionDepth: 0
    functionLinenumber: 3134
    functionLinenumberEnd: 3138
    functionName: '& SubscribeRequest::Builder::SubscriptionID(const uint64_t aSubscriptionID)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - SetSubscriptionID
    linkageType: ''
    returnType: SubscribeRequest::Builder
    signature: '& SubscribeRequest::Builder::SubscriptionID(const uint64_t aSubscriptionID)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3143,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3145,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3145,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aSubscribeTimeoutMin
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 3151
      start: 3140
    functionDepth: 1
    functionLinenumber: 3140
    functionLinenumberEnd: 3151
    functionName: '& SubscribeRequest::Builder::SubscribeTimeoutMin(const uint32_t
      aSubscribeTimeoutMin)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: SubscribeRequest::Builder
    signature: '& SubscribeRequest::Builder::SubscribeTimeoutMin(const uint32_t aSubscribeTimeoutMin)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3156,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3158,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3158,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aSubscribeTimeoutMax
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 3164
      start: 3153
    functionDepth: 1
    functionLinenumber: 3153
    functionLinenumberEnd: 3164
    functionName: '& SubscribeRequest::Builder::SubscribeTimeoutMax(const uint32_t
      aSubscribeTimeoutMax)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: SubscribeRequest::Builder
    signature: '& SubscribeRequest::Builder::SubscribeTimeoutMax(const uint32_t aSubscribeTimeoutMax)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3169,1
    - Dst: PutBoolean
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3171,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3171,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aSubscribeToAllEvents
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 3177
      start: 3166
    functionDepth: 1
    functionLinenumber: 3166
    functionLinenumberEnd: 3177
    functionName: '& SubscribeRequest::Builder::SubscribeToAllEvents(const bool aSubscribeToAllEvents)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - PutBoolean
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - SuccessOrExit
    linkageType: ''
    returnType: SubscribeRequest::Builder
    signature: '& SubscribeRequest::Builder::SubscribeToAllEvents(const bool aSubscribeToAllEvents)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3182,1
    - Dst: ResetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3182,1
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3184,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3191
      start: 3179
    functionDepth: 0
    functionLinenumber: 3179
    functionLinenumberEnd: 3191
    functionName: '& SubscribeRequest::Builder::CreateLastObservedEventIdListBuilder()'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - Init
    - VerifyOrExit
    - ResetError
    linkageType: ''
    returnType: EventList::Builder
    signature: '& SubscribeRequest::Builder::CreateLastObservedEventIdListBuilder()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3196,1
    - Dst: ResetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3196,1
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3198,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3205
      start: 3193
    functionDepth: 0
    functionLinenumber: 3193
    functionLinenumberEnd: 3205
    functionName: '& SubscribeRequest::Builder::CreatePathListBuilder()'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - Init
    - VerifyOrExit
    - ResetError
    linkageType: ''
    returnType: PathList::Builder
    signature: '& SubscribeRequest::Builder::CreatePathListBuilder()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3210,1
    - Dst: ResetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3210,1
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3212,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3219
      start: 3207
    functionDepth: 0
    functionLinenumber: 3207
    functionLinenumberEnd: 3219
    functionName: '& SubscribeRequest::Builder::CreateVersionListBuilder()'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - Init
    - VerifyOrExit
    - ResetError
    linkageType: ''
    returnType: VersionList::Builder
    signature: '& SubscribeRequest::Builder::CreateVersionListBuilder()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndOfMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3226
      start: 3221
    functionDepth: 0
    functionLinenumber: 3221
    functionLinenumberEnd: 3226
    functionName: '& SubscribeRequest::Builder::EndOfRequest(void)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EndOfMessage
    linkageType: ''
    returnType: SubscribeRequest::Builder
    signature: '& SubscribeRequest::Builder::EndOfRequest(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3248,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3251,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3253,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3256,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3258,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3260,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3260,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3265,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3266,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3268,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3272,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3274,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3276,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3276,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3281,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3282,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3284,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3288,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3290,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3292,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3292,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3297,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3298,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3300,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3304,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3310,1
    - Dst: EventList::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3313,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3314,1
    - Dst: PRETTY_PRINT_INCDEPTH
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3316,1
    - Dst: EventList::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3318,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3319,1
    - Dst: PRETTY_PRINT_DECDEPTH
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3321,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3325,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3339,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3340,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3343,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3346
      start: 3234
    functionDepth: 2
    functionLinenumber: 3234
    functionLinenumberEnd: 3346
    functionName: SubscribeResponse::Parser::CheckSchemaValidity(void) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EventList::Parser::CheckSchemaValidity
    - PRETTY_PRINT_DECDEPTH
    - VerifyOrExit
    - nl::Weave::TLV::TLVReader::Get
    - PRETTY_PRINT_INCDEPTH
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::GetType
    - SuccessOrExit
    - PRETTY_PRINT
    - EventList::Parser::Init
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::ContextTag
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscribeResponse::Parser::CheckSchemaValidity(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apTimeOut
    argTypes:
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 3354
      start: 3351
    functionDepth: 0
    functionLinenumber: 3351
    functionLinenumberEnd: 3354
    functionName: SubscribeResponse::Parser::GetSubscribeTimeout(uint32_t * const
      apTimeOut) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetUnsignedInteger
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscribeResponse::Parser::GetSubscribeTimeout(uint32_t * const apTimeOut)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSimpleValue
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apPossibleLossOfEvents
    argTypes:
    - bool*
    constantsTouched: []
    func_position:
      end: 3359
      start: 3356
    functionDepth: 0
    functionLinenumber: 3356
    functionLinenumberEnd: 3359
    functionName: SubscribeResponse::Parser::GetPossibleLossOfEvents(bool * const
      apPossibleLossOfEvents) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetSimpleValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscribeResponse::Parser::GetPossibleLossOfEvents(bool * const apPossibleLossOfEvents)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EventList::Parser*::InitIfPresent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apEventList
    argTypes:
    - EventList::Parser*
    constantsTouched: []
    func_position:
      end: 3364
      start: 3361
    functionDepth: 0
    functionLinenumber: 3361
    functionLinenumberEnd: 3364
    functionName: SubscribeResponse::Parser::GetLastVendedEventIdList(EventList::Parser
      * const apEventList) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EventList::Parser*::InitIfPresent
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscribeResponse::Parser::GetLastVendedEventIdList(EventList::Parser
      * const apEventList) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetSubscriptionID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aSubscriptionID
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 3371
      start: 3366
    functionDepth: 0
    functionLinenumber: 3366
    functionLinenumberEnd: 3371
    functionName: '& SubscribeResponse::Builder::SubscriptionID(const uint64_t aSubscriptionID)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - SetSubscriptionID
    linkageType: ''
    returnType: SubscribeResponse::Builder
    signature: '& SubscribeResponse::Builder::SubscriptionID(const uint64_t aSubscriptionID)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3376,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3378,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3378,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aSubscribeTimeout
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 3384
      start: 3373
    functionDepth: 1
    functionLinenumber: 3373
    functionLinenumberEnd: 3384
    functionName: '& SubscribeResponse::Builder::SubscribeTimeout(const uint32_t aSubscribeTimeout)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: SubscribeResponse::Builder
    signature: '& SubscribeResponse::Builder::SubscribeTimeout(const uint32_t aSubscribeTimeout)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3389,1
    - Dst: PutBoolean
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3391,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3391,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aPossibleLossOfEvents
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 3397
      start: 3386
    functionDepth: 1
    functionLinenumber: 3386
    functionLinenumberEnd: 3397
    functionName: '& SubscribeResponse::Builder::PossibleLossOfEvents(const bool aPossibleLossOfEvents)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - PutBoolean
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - SuccessOrExit
    linkageType: ''
    returnType: SubscribeResponse::Builder
    signature: '& SubscribeResponse::Builder::PossibleLossOfEvents(const bool aPossibleLossOfEvents)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3402,1
    - Dst: ResetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3402,1
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3404,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3411
      start: 3399
    functionDepth: 0
    functionLinenumber: 3399
    functionLinenumberEnd: 3411
    functionName: '& SubscribeResponse::Builder::CreateLastVendedEventIdListBuilder()'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - Init
    - VerifyOrExit
    - ResetError
    linkageType: ''
    returnType: EventList::Builder
    signature: '& SubscribeResponse::Builder::CreateLastVendedEventIdListBuilder()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndOfMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3418
      start: 3413
    functionDepth: 0
    functionLinenumber: 3413
    functionLinenumberEnd: 3418
    functionName: '& SubscribeResponse::Builder::EndOfResponse(void)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EndOfMessage
    linkageType: ''
    returnType: SubscribeResponse::Builder
    signature: '& SubscribeResponse::Builder::EndOfResponse(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3437,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3440,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3442,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3445,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3447,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3449,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3449,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3454,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3455,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3456,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3462,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3476,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3477,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3480,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3483
      start: 3426
    functionDepth: 2
    functionLinenumber: 3426
    functionLinenumberEnd: 3483
    functionName: SubscribeCancelRequest::Parser::CheckSchemaValidity(void) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - nl::Weave::TLV::TLVReader::Get
    - nl::Weave::TLV::TLVReader::GetType
    - SuccessOrExit
    - PRETTY_PRINT
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::ContextTag
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscribeCancelRequest::Parser::CheckSchemaValidity(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetSubscriptionID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aSubscriptionID
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 3491
      start: 3486
    functionDepth: 0
    functionLinenumber: 3486
    functionLinenumberEnd: 3491
    functionName: '& SubscribeCancelRequest::Builder::SubscriptionID(const uint64_t
      aSubscriptionID)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - SetSubscriptionID
    linkageType: ''
    returnType: SubscribeCancelRequest::Builder
    signature: '& SubscribeCancelRequest::Builder::SubscriptionID(const uint64_t aSubscriptionID)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndOfMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3498
      start: 3493
    functionDepth: 0
    functionLinenumber: 3493
    functionLinenumberEnd: 3498
    functionName: '& SubscribeCancelRequest::Builder::EndOfRequest(void)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EndOfMessage
    linkageType: ''
    returnType: SubscribeCancelRequest::Builder
    signature: '& SubscribeCancelRequest::Builder::EndOfRequest(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetSubscriptionID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aSubscriptionID
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 3505
      start: 3500
    functionDepth: 0
    functionLinenumber: 3500
    functionLinenumberEnd: 3505
    functionName: '& SubscribeConfirmRequest::Builder::SubscriptionID(const uint64_t
      aSubscriptionID)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - SetSubscriptionID
    linkageType: ''
    returnType: SubscribeConfirmRequest::Builder
    signature: '& SubscribeConfirmRequest::Builder::SubscriptionID(const uint64_t
      aSubscriptionID)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndOfMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3512
      start: 3507
    functionDepth: 0
    functionLinenumber: 3507
    functionLinenumberEnd: 3512
    functionName: '& SubscribeConfirmRequest::Builder::EndOfRequest(void)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EndOfMessage
    linkageType: ''
    returnType: SubscribeConfirmRequest::Builder
    signature: '& SubscribeConfirmRequest::Builder::EndOfRequest(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3538,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3541,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3543,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3547,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3549,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3551,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3551,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3556,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3557,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3558,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3562,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3564,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3566,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3566,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3571,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3572,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3573,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3577,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3579,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3581,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3581,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3586,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3587,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3588,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3592,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3594,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3596,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3596,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3601,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3602,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3603,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3607,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3609,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3611,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3611,1
    - Dst: EventList::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3613,1
    - Dst: PRETTY_PRINT_INCDEPTH
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3615,1
    - Dst: EventList::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3617,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3618,1
    - Dst: PRETTY_PRINT_DECDEPTH
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3620,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3622,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3624,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3626,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3626,1
    - Dst: DataList::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3628,1
    - Dst: PRETTY_PRINT_INCDEPTH
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3630,1
    - Dst: DataList::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3632,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3633,1
    - Dst: PRETTY_PRINT_DECDEPTH
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3635,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3639,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3644,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3645,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3659,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3662
      start: 3520
    functionDepth: 2
    functionLinenumber: 3520
    functionLinenumberEnd: 3662
    functionName: NotificationRequest::Parser::CheckSchemaValidity(void) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EventList::Parser::CheckSchemaValidity
    - DataList::Parser::Init
    - PRETTY_PRINT_DECDEPTH
    - VerifyOrExit
    - nl::Weave::TLV::TLVReader::Get
    - PRETTY_PRINT_INCDEPTH
    - DataList::Parser::CheckSchemaValidity
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::GetType
    - SuccessOrExit
    - PRETTY_PRINT
    - EventList::Parser::Init
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::ContextTag
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationRequest::Parser::CheckSchemaValidity(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DataList::Parser*::InitIfPresent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apDataList
    argTypes:
    - DataList::Parser*
    constantsTouched: []
    func_position:
      end: 3669
      start: 3666
    functionDepth: 0
    functionLinenumber: 3666
    functionLinenumberEnd: 3669
    functionName: NotificationRequest::Parser::GetDataList(DataList::Parser * const
      apDataList) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - DataList::Parser*::InitIfPresent
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationRequest::Parser::GetDataList(DataList::Parser * const apDataList)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSimpleValue
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apPossibleLossOfEvent
    argTypes:
    - bool*
    constantsTouched: []
    func_position:
      end: 3674
      start: 3671
    functionDepth: 0
    functionLinenumber: 3671
    functionLinenumberEnd: 3674
    functionName: NotificationRequest::Parser::GetPossibleLossOfEvent(bool * const
      apPossibleLossOfEvent) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetSimpleValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationRequest::Parser::GetPossibleLossOfEvent(bool * const apPossibleLossOfEvent)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apUTCTimestamp
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 3679
      start: 3676
    functionDepth: 0
    functionLinenumber: 3676
    functionLinenumberEnd: 3679
    functionName: NotificationRequest::Parser::GetUTCTimestamp(uint64_t * const apUTCTimestamp)
      const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetUnsignedInteger
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationRequest::Parser::GetUTCTimestamp(uint64_t * const apUTCTimestamp)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apSystemTimestamp
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 3684
      start: 3681
    functionDepth: 0
    functionLinenumber: 3681
    functionLinenumberEnd: 3684
    functionName: NotificationRequest::Parser::GetSystemTimestamp(uint64_t * const
      apSystemTimestamp) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetUnsignedInteger
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationRequest::Parser::GetSystemTimestamp(uint64_t * const apSystemTimestamp)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EventList::Parser*::InitIfPresent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apEventList
    argTypes:
    - EventList::Parser*
    constantsTouched: []
    func_position:
      end: 3689
      start: 3686
    functionDepth: 0
    functionLinenumber: 3686
    functionLinenumberEnd: 3689
    functionName: NotificationRequest::Parser::GetEventList(EventList::Parser * const
      apEventList) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EventList::Parser*::InitIfPresent
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationRequest::Parser::GetEventList(EventList::Parser * const
      apEventList) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3696,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3696,1
    - Dst: nl::Inet::TunEndPoint::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3698,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3699,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' aReader'
    argTypes:
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 3707
      start: 3691
    functionDepth: 1
    functionLinenumber: 3691
    functionLinenumberEnd: 3707
    functionName: CustomCommand::Parser::Init(const nl::Weave::TLV::TLVReader & aReader)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TunEndPoint::Init
    - VerifyOrExit
    - GetTag
    - SuccessOrExit
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CustomCommand::Parser::Init(const nl::Weave::TLV::TLVReader & aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3729,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3732,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3734,1
    - Dst: nl::Weave::TLV::IsContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3739,1
    - Dst: nl::Weave::TLV::TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3741,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3745,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3748,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3748,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3750,1
    - Dst: Path::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3754,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3755,1
    - Dst: Path::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3756,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3757,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3764,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3767,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3767,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3772,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3773,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3775,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3783,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3786,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3786,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3791,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3792,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3794,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3794,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3802,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3805,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3805,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3810,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3811,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3813,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3813,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3821,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3824,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3824,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3829,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3830,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3832,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3832,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3840,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3843,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3843,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3848,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3849,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3851,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3859,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3862,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3862,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3866,1
    - Dst: ParseData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3868,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3869,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3876,1
    - Dst: nl::Weave::TLV::IsProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3879,1
    - Dst: nl::Weave::TLV::ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3883,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3888,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3893,1
    - Dst: ParseData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3895,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3896,1
    - Dst: nl::Weave::TLV::ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3903,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3908,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3913,1
    - Dst: ParseData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3915,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3916,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3924,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3928,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3929,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3938,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 105
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3941
      start: 3710
    functionDepth: 2
    functionLinenumber: 3710
    functionLinenumberEnd: 3941
    functionName: CustomCommand::Parser::CheckSchemaValidity(void) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::IsContextTag
    - nl::Weave::TLV::ProfileTag
    - VerifyOrExit
    - ExitNow
    - Path::Parser::Init
    - nl::Weave::TLV::TagNumFromTag
    - nl::Weave::TLV::TLVReader::Get
    - nl::Weave::TLV::IsProfileTag
    - WeaveLogFunctError
    - WeaveLogDetail
    - nl::Weave::TLV::TLVReader::GetType
    - SuccessOrExit
    - PRETTY_PRINT
    - Path::Parser::CheckSchemaValidity
    - ParseData
    - nl::Weave::TLV::TLVReader::Init
    - static_cast<uint64_t>
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CustomCommand::Parser::CheckSchemaValidity(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apMustBeVersion
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 3947
      start: 3944
    functionDepth: 0
    functionLinenumber: 3944
    functionLinenumberEnd: 3947
    functionName: CustomCommand::Parser::GetMustBeVersion(uint64_t * const apMustBeVersion)
      const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetUnsignedInteger
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CustomCommand::Parser::GetMustBeVersion(uint64_t * const apMustBeVersion)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSimpleValue
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apInitiationTimeMicroSecond
    argTypes:
    - int64_t*
    constantsTouched: []
    func_position:
      end: 3952
      start: 3949
    functionDepth: 0
    functionLinenumber: 3949
    functionLinenumberEnd: 3952
    functionName: CustomCommand::Parser::GetInitiationTimeMicroSecond(int64_t * const
      apInitiationTimeMicroSecond) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetSimpleValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CustomCommand::Parser::GetInitiationTimeMicroSecond(int64_t * const
      apInitiationTimeMicroSecond) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSimpleValue
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apActionTimeMicroSecond
    argTypes:
    - int64_t*
    constantsTouched: []
    func_position:
      end: 3957
      start: 3954
    functionDepth: 0
    functionLinenumber: 3954
    functionLinenumberEnd: 3957
    functionName: CustomCommand::Parser::GetActionTimeMicroSecond(int64_t * const
      apActionTimeMicroSecond) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetSimpleValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CustomCommand::Parser::GetActionTimeMicroSecond(int64_t * const apActionTimeMicroSecond)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSimpleValue
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apExpiryTimeMicroSecond
    argTypes:
    - int64_t*
    constantsTouched: []
    func_position:
      end: 3962
      start: 3959
    functionDepth: 0
    functionLinenumber: 3959
    functionLinenumberEnd: 3962
    functionName: CustomCommand::Parser::GetExpiryTimeMicroSecond(int64_t * const
      apExpiryTimeMicroSecond) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetSimpleValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CustomCommand::Parser::GetExpiryTimeMicroSecond(int64_t * const apExpiryTimeMicroSecond)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apCommandType
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 3967
      start: 3964
    functionDepth: 0
    functionLinenumber: 3964
    functionLinenumberEnd: 3967
    functionName: CustomCommand::Parser::GetCommandType(uint64_t * const apCommandType)
      const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetUnsignedInteger
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CustomCommand::Parser::GetCommandType(uint64_t * const apCommandType)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DataElement::Parser::GetPath
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apPath
    argTypes:
    - Path::Parser*
    constantsTouched: []
    func_position:
      end: 3974
      start: 3969
    functionDepth: 0
    functionLinenumber: 3969
    functionLinenumberEnd: 3974
    functionName: CustomCommand::Parser::GetPath(Path::Parser * const apPath) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - DataElement::Parser::GetPath
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CustomCommand::Parser::GetPath(Path::Parser * const apPath) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetReaderOnTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3978,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apReader
    argTypes:
    - nl::Weave::TLV::TLVReader*
    constantsTouched: []
    func_position:
      end: 3979
      start: 3976
    functionDepth: 1
    functionLinenumber: 3976
    functionLinenumberEnd: 3979
    functionName: CustomCommand::Parser::GetReaderOnArgument(nl::Weave::TLV::TLVReader
      * const apReader) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetReaderOnTag
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CustomCommand::Parser::GetReaderOnArgument(nl::Weave::TLV::TLVReader
      * const apReader) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetReaderOnTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3983,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apReader
    argTypes:
    - nl::Weave::TLV::TLVReader*
    constantsTouched: []
    func_position:
      end: 3984
      start: 3981
    functionDepth: 1
    functionLinenumber: 3981
    functionLinenumberEnd: 3984
    functionName: CustomCommand::Parser::GetReaderOnPath(nl::Weave::TLV::TLVReader
      * const apReader) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetReaderOnTag
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CustomCommand::Parser::GetReaderOnPath(nl::Weave::TLV::TLVReader *
      const apReader) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitAnonymousStructure
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apWriter
    argTypes:
    - nl::Weave::TLV::TLVWriter*
    constantsTouched: []
    func_position:
      end: 3989
      start: 3986
    functionDepth: 0
    functionLinenumber: 3986
    functionLinenumberEnd: 3989
    functionName: CustomCommand::Builder::Init(nl::Weave::TLV::TLVWriter * const apWriter)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - InitAnonymousStructure
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CustomCommand::Builder::Init(nl::Weave::TLV::TLVWriter * const apWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3994,1
    - Dst: ResetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3994,1
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3996,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3996,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:3997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4003
      start: 3991
    functionDepth: 1
    functionLinenumber: 3991
    functionLinenumberEnd: 4003
    functionName: '& CustomCommand::Builder::CreatePathBuilder()'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - Init
    - ResetError
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: Path::Builder
    signature: '& CustomCommand::Builder::CreatePathBuilder()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4008,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4010,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4010,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aCommandType
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 4016
      start: 4005
    functionDepth: 1
    functionLinenumber: 4005
    functionLinenumberEnd: 4016
    functionName: '& CustomCommand::Builder::CommandType(const uint64_t aCommandType)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: CustomCommand::Builder
    signature: '& CustomCommand::Builder::CommandType(const uint64_t aCommandType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4021,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4023,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4023,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aInitiationTimeMicroSecond
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 4029
      start: 4018
    functionDepth: 1
    functionLinenumber: 4018
    functionLinenumberEnd: 4029
    functionName: '& CustomCommand::Builder::InitiationTimeMicroSecond(const int64_t
      aInitiationTimeMicroSecond)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: CustomCommand::Builder
    signature: '& CustomCommand::Builder::InitiationTimeMicroSecond(const int64_t
      aInitiationTimeMicroSecond)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4034,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4036,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4036,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aActionTimeMicroSecond
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 4042
      start: 4031
    functionDepth: 1
    functionLinenumber: 4031
    functionLinenumberEnd: 4042
    functionName: '& CustomCommand::Builder::ActionTimeMicroSecond(const int64_t aActionTimeMicroSecond)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: CustomCommand::Builder
    signature: '& CustomCommand::Builder::ActionTimeMicroSecond(const int64_t aActionTimeMicroSecond)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4047,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4049,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4054,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4054,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - aExpiryTimeMicroSecond
    argTypes:
    - int64_t
    constantsTouched: []
    func_position:
      end: 4060
      start: 4044
    functionDepth: 1
    functionLinenumber: 4044
    functionLinenumberEnd: 4060
    functionName: '& CustomCommand::Builder::ExpiryTimeMicroSecond(const int64_t aExpiryTimeMicroSecond)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WEAVE_FAULT_INJECT
    - Put
    - SuccessOrExit
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: CustomCommand::Builder
    signature: '& CustomCommand::Builder::ExpiryTimeMicroSecond(const int64_t aExpiryTimeMicroSecond)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4065,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4067,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4072,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4072,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - aMustBeVersion
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 4078
      start: 4062
    functionDepth: 1
    functionLinenumber: 4062
    functionLinenumberEnd: 4078
    functionName: '& CustomCommand::Builder::MustBeVersion(const uint64_t aMustBeVersion)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WEAVE_FAULT_INJECT
    - Put
    - SuccessOrExit
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: CustomCommand::Builder
    signature: '& CustomCommand::Builder::MustBeVersion(const uint64_t aMustBeVersion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndOfContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4085
      start: 4080
    functionDepth: 0
    functionLinenumber: 4080
    functionLinenumberEnd: 4085
    functionName: '& CustomCommand::Builder::EndOfCustomCommand(void)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EndOfContainer
    linkageType: ''
    returnType: CustomCommand::Builder
    signature: '& CustomCommand::Builder::EndOfCustomCommand(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4092,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4092,1
    - Dst: nl::Inet::TunEndPoint::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4094,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4095,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' aReader'
    argTypes:
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 4103
      start: 4087
    functionDepth: 1
    functionLinenumber: 4087
    functionLinenumberEnd: 4103
    functionName: CustomCommandResponse::Parser::Init(const nl::Weave::TLV::TLVReader
      & aReader)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TunEndPoint::Init
    - VerifyOrExit
    - GetTag
    - SuccessOrExit
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CustomCommandResponse::Parser::Init(const nl::Weave::TLV::TLVReader
      & aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4119,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4122,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4124,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4126,1
    - Dst: nl::Weave::TLV::IsContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4126,1
    - Dst: nl::Weave::TLV::TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4126,1
    - Dst: nl::Weave::TLV::TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4127,1
    - Dst: nl::Weave::TLV::TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4127,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4131,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4134,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4134,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4139,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4140,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4142,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4150,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4153,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4153,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4157,1
    - Dst: ParseData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4159,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4160,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4167,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4171,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4172,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4181,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4184
      start: 4106
    functionDepth: 2
    functionLinenumber: 4106
    functionLinenumberEnd: 4184
    functionName: CustomCommandResponse::Parser::CheckSchemaValidity(void) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::IsContextTag
    - nl::Weave::TLV::TLVReader::GetTag
    - VerifyOrExit
    - nl::Weave::TLV::TLVReader::Get
    - nl::Weave::TLV::TagNumFromTag
    - WeaveLogDetail
    - nl::Weave::TLV::TLVReader::GetType
    - SuccessOrExit
    - PRETTY_PRINT
    - ParseData
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CustomCommandResponse::Parser::CheckSchemaValidity(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUnsignedInteger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apVersion
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 4190
      start: 4187
    functionDepth: 0
    functionLinenumber: 4187
    functionLinenumberEnd: 4190
    functionName: CustomCommandResponse::Parser::GetVersion(uint64_t * const apVersion)
      const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetUnsignedInteger
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CustomCommandResponse::Parser::GetVersion(uint64_t * const apVersion)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetReaderOnTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4194,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apReader
    argTypes:
    - nl::Weave::TLV::TLVReader*
    constantsTouched: []
    func_position:
      end: 4195
      start: 4192
    functionDepth: 1
    functionLinenumber: 4192
    functionLinenumberEnd: 4195
    functionName: CustomCommandResponse::Parser::GetReaderOnResponse(nl::Weave::TLV::TLVReader
      * const apReader) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetReaderOnTag
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CustomCommandResponse::Parser::GetReaderOnResponse(nl::Weave::TLV::TLVReader
      * const apReader) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitAnonymousStructure
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apWriter
    argTypes:
    - nl::Weave::TLV::TLVWriter*
    constantsTouched: []
    func_position:
      end: 4200
      start: 4197
    functionDepth: 0
    functionLinenumber: 4197
    functionLinenumberEnd: 4200
    functionName: CustomCommandResponse::Builder::Init(nl::Weave::TLV::TLVWriter *
      const apWriter)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - InitAnonymousStructure
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CustomCommandResponse::Builder::Init(nl::Weave::TLV::TLVWriter * const
      apWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4205,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4207,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4207,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aMustBeVersion
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 4213
      start: 4202
    functionDepth: 1
    functionLinenumber: 4202
    functionLinenumberEnd: 4213
    functionName: '& CustomCommandResponse::Builder::Version(const uint64_t aMustBeVersion)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: CustomCommandResponse::Builder
    signature: '& CustomCommandResponse::Builder::Version(const uint64_t aMustBeVersion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndOfContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4220
      start: 4215
    functionDepth: 0
    functionLinenumber: 4215
    functionLinenumberEnd: 4220
    functionName: '& CustomCommandResponse::Builder::EndOfResponse(void)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EndOfContainer
    linkageType: ''
    returnType: CustomCommandResponse::Builder
    signature: '& CustomCommandResponse::Builder::EndOfResponse(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4227,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4227,1
    - Dst: nl::Inet::TunEndPoint::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4229,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4230,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' aReader'
    argTypes:
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 4237
      start: 4222
    functionDepth: 1
    functionLinenumber: 4222
    functionLinenumberEnd: 4237
    functionName: UpdateRequest::Parser::Init(const nl::Weave::TLV::TLVReader & aReader)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::TunEndPoint::Init
    - VerifyOrExit
    - GetTag
    - SuccessOrExit
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateRequest::Parser::Init(const nl::Weave::TLV::TLVReader & aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4257,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4260,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4262,1
    - Dst: nl::Weave::TLV::IsContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4267,1
    - Dst: nl::Weave::TLV::TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4269,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4273,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4276,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4276,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4281,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4282,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4284,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4284,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4292,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4295,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4295,1
    - Dst: nl::Weave::TLV::TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4300,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4301,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4303,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4303,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4311,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4314,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4314,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4318,1
    - Dst: ParseData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4320,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4321,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4329,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4332,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4332,1
    - Dst: DataList::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4336,1
    - Dst: PRETTY_PRINT_INCDEPTH
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4338,1
    - Dst: DataList::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4340,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4341,1
    - Dst: PRETTY_PRINT_DECDEPTH
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4343,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4349,1
    - Dst: nl::Weave::TLV::IsProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4352,1
    - Dst: nl::Weave::TLV::ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4356,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4361,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4366,1
    - Dst: ParseData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4368,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4369,1
    - Dst: nl::Weave::TLV::ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4376,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4381,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4386,1
    - Dst: ParseData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4388,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4389,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4397,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4401,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4402,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4410,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4413
      start: 4240
    functionDepth: 2
    functionLinenumber: 4240
    functionLinenumberEnd: 4413
    functionName: UpdateRequest::Parser::CheckSchemaValidity(void) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - DataList::Parser::Init
    - static_cast<uint32_t>
    - nl::Weave::TLV::IsProfileTag
    - ParseData
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    - VerifyOrExit
    - nl::Weave::TLV::TagNumFromTag
    - WeaveLogDetail
    - nl::Weave::TLV::IsContextTag
    - PRETTY_PRINT_DECDEPTH
    - ExitNow
    - DataList::Parser::CheckSchemaValidity
    - PRETTY_PRINT
    - static_cast<uint64_t>
    - nl::Weave::TLV::ProfileTag
    - nl::Weave::TLV::TLVReader::Get
    - PRETTY_PRINT_INCDEPTH
    - SuccessOrExit
    - nl::Weave::TLV::TLVReader::GetType
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateRequest::Parser::CheckSchemaValidity(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSimpleValue
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apExpiryTimeMicroSecond
    argTypes:
    - int64_t*
    constantsTouched: []
    func_position:
      end: 4419
      start: 4416
    functionDepth: 0
    functionLinenumber: 4416
    functionLinenumberEnd: 4419
    functionName: UpdateRequest::Parser::GetExpiryTimeMicroSecond(int64_t * const
      apExpiryTimeMicroSecond) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetSimpleValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateRequest::Parser::GetExpiryTimeMicroSecond(int64_t * const apExpiryTimeMicroSecond)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetReaderOnTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4423,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apReader
    argTypes:
    - nl::Weave::TLV::TLVReader*
    constantsTouched: []
    func_position:
      end: 4424
      start: 4421
    functionDepth: 1
    functionLinenumber: 4421
    functionLinenumberEnd: 4424
    functionName: UpdateRequest::Parser::GetReaderOnArgument(nl::Weave::TLV::TLVReader
      * const apReader) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetReaderOnTag
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateRequest::Parser::GetReaderOnArgument(nl::Weave::TLV::TLVReader
      * const apReader) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSimpleValue
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apUpdateRequestIndex
    argTypes:
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 4429
      start: 4426
    functionDepth: 0
    functionLinenumber: 4426
    functionLinenumberEnd: 4429
    functionName: UpdateRequest::Parser::GetUpdateRequestIndex(uint32_t * const apUpdateRequestIndex)
      const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetSimpleValue
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateRequest::Parser::GetUpdateRequestIndex(uint32_t * const apUpdateRequestIndex)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DataList::Parser*::InitIfPresent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apDataList
    argTypes:
    - DataList::Parser*
    constantsTouched: []
    func_position:
      end: 4435
      start: 4432
    functionDepth: 0
    functionLinenumber: 4432
    functionLinenumberEnd: 4435
    functionName: UpdateRequest::Parser::GetDataList (DataList::Parser * const apDataList)
      const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - DataList::Parser*::InitIfPresent
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateRequest::Parser::GetDataList (DataList::Parser * const apDataList)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4443,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4445,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4445,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4446,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4446,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4450,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' aReader'
    argTypes:
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 4455
      start: 4438
    functionDepth: 0
    functionLinenumber: 4438
    functionLinenumberEnd: 4455
    functionName: UpdateResponse::Parser::Init(const nl::Weave::TLV::TLVReader & aReader)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - VerifyOrExit
    - GetType
    - GetTag
    - Init
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateResponse::Parser::Init(const nl::Weave::TLV::TLVReader & aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4471,1
    - Dst: PRETTY_PRINT_CHECKPOINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4473,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4475,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4477,1
    - Dst: nl::Weave::TLV::IsContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4481,1
    - Dst: nl::Weave::TLV::TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4483,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4486,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4488,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4488,1
    - Dst: StatusList::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4490,1
    - Dst: PRETTY_PRINT_INCDEPTH
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4492,1
    - Dst: StatusList::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4494,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4495,1
    - Dst: PRETTY_PRINT_DECDEPTH
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4497,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4502,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4504,1
    - Dst: nl::Weave::TLV::TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4504,1
    - Dst: VersionList::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4506,1
    - Dst: PRETTY_PRINT_INCDEPTH
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4508,1
    - Dst: VersionList::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4510,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4511,1
    - Dst: PRETTY_PRINT_DECDEPTH
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4513,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4518,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4532,1
    - Dst: PRETTY_PRINT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4533,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4536,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4538
      start: 4457
    functionDepth: 2
    functionLinenumber: 4457
    functionLinenumberEnd: 4538
    functionName: UpdateResponse::Parser::CheckSchemaValidity(void) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::IsContextTag
    - StatusList::Parser::Init
    - StatusList::Parser::CheckSchemaValidity
    - PRETTY_PRINT_DECDEPTH
    - VerifyOrExit
    - PRETTY_PRINT_INCDEPTH
    - nl::Weave::TLV::TagNumFromTag
    - SuccessOrExit
    - WeaveLogDetail
    - nl::Weave::TLV::TLVReader::GetType
    - PRETTY_PRINT_CHECKPOINT
    - PRETTY_PRINT
    - VersionList::Parser::CheckSchemaValidity
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Init
    - VersionList::Parser::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateResponse::Parser::CheckSchemaValidity(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StatusList::Parser*::InitIfPresent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apStatusList
    argTypes:
    - StatusList::Parser*
    constantsTouched: []
    func_position:
      end: 4544
      start: 4541
    functionDepth: 0
    functionLinenumber: 4541
    functionLinenumberEnd: 4544
    functionName: UpdateResponse::Parser::GetStatusList(StatusList::Parser * const
      apStatusList) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - StatusList::Parser*::InitIfPresent
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateResponse::Parser::GetStatusList(StatusList::Parser * const apStatusList)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VersionList::Parser*::InitIfPresent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apVersionList
    argTypes:
    - VersionList::Parser*
    constantsTouched: []
    func_position:
      end: 4552
      start: 4549
    functionDepth: 0
    functionLinenumber: 4549
    functionLinenumberEnd: 4552
    functionName: UpdateResponse::Parser::GetVersionList(VersionList::Parser * const
      apVersionList) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - VersionList::Parser*::InitIfPresent
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateResponse::Parser::GetVersionList(VersionList::Parser * const
      apVersionList) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitAnonymousStructure
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apWriter
    argTypes:
    - nl::Weave::TLV::TLVWriter*
    constantsTouched: []
    func_position:
      end: 4557
      start: 4554
    functionDepth: 0
    functionLinenumber: 4554
    functionLinenumberEnd: 4557
    functionName: UpdateResponse::Builder::Init(nl::Weave::TLV::TLVWriter * const
      apWriter)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - InitAnonymousStructure
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateResponse::Builder::Init(nl::Weave::TLV::TLVWriter * const apWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4562,1
    - Dst: ResetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4562,1
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4564,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4571
      start: 4559
    functionDepth: 0
    functionLinenumber: 4559
    functionLinenumberEnd: 4571
    functionName: '& UpdateResponse::Builder::CreateVersionListBuilder()'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - Init
    - VerifyOrExit
    - ResetError
    linkageType: ''
    returnType: VersionList::Builder
    signature: '& UpdateResponse::Builder::CreateVersionListBuilder()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4578,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4582,1
    - Dst: ResetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4582,1
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4584,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4591
      start: 4573
    functionDepth: 0
    functionLinenumber: 4573
    functionLinenumberEnd: 4591
    functionName: '& UpdateResponse::Builder::CreateStatusListBuilder()'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - GetError
    - VerifyOrExit
    - Init
    - ResetError
    - WeaveLogFunctError
    linkageType: ''
    returnType: StatusList::Builder
    signature: '& UpdateResponse::Builder::CreateStatusListBuilder()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4598,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4600,1
    - Dst: EndOfContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp:4602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4606
      start: 4593
    functionDepth: 0
    functionLinenumber: 4593
    functionLinenumberEnd: 4606
    functionName: '& UpdateResponse::Builder::EndOfResponse(void)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
    functionUses: 0
    functionsReached:
    - EndOfContainer
    - GetError
    - SuccessOrExit
    linkageType: ''
    returnType: UpdateResponse::Builder
    signature: '& UpdateResponse::Builder::EndOfResponse(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - apSubClient
    - traitDataHandle
    - aEngine
    argTypes:
    - SubscriptionClient*
    - TraitDataHandle
    - TraitSchemaEngine*
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: UpdateDirtyPathFilter::UpdateDirtyPathFilter
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "UpdateDirtyPathFilter::UpdateDirtyPathFilter(SubscriptionClient *
      apSubClient, TraitDataHandle traitDataHandle,\n                                             const
      TraitSchemaEngine * aEngine)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FilterNotifiedPath
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pathhandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 73
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 73
    functionName: UpdateDirtyPathFilter::FilterPath
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - FilterNotifiedPath
    linkageType: ''
    returnType: bool
    signature: UpdateDirtyPathFilter::FilterPath(PropertyPathHandle pathhandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aTraitDataHandle
    - apEncoder
    argTypes:
    - TraitDataHandle
    - UpdateEncoder*
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: UpdateDictionaryDirtyPathCut::UpdateDictionaryDirtyPathCut
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: UpdateDictionaryDirtyPathCut::UpdateDictionaryDirtyPathCut(TraitDataHandle
      aTraitDataHandle, UpdateEncoder * apEncoder)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InsertInProgressUpdateItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:87,1
    - Dst: TraitPath
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:87,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - aPathhandle
    - apEngine
    argTypes:
    - PropertyPathHandle
    - TraitSchemaEngine*
    constantsTouched: []
    func_position:
      end: 92
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 92
    functionName: UpdateDictionaryDirtyPathCut::CutPath
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDetail
    - TraitPath
    - InsertInProgressUpdateItem
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateDictionaryDirtyPathCut::CutPath(PropertyPathHandle aPathhandle,
      const TraitSchemaEngine * apEngine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:98,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:99,1
    - Dst: strtoul
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:102,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:103,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - apTagString
    - apEndptr
    - ' aParseRes'
    argTypes:
    - char*
    - char**
    - uint8_t
    constantsTouched: []
    func_position:
      end: 108
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 108
    functionName: TraitSchemaEngine::ParseTagString
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - strtoul
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitSchemaEngine::ParseTagString(const char * apTagString, char **
      apEndptr, uint8_t & aParseRes) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:118,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:128,1
    - Dst: TraitSchemaEngine::ParseTagString
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:134,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:135,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:138,1
    - Dst: TraitSchemaEngine::GetChildHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:140,1
    - Dst: TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:140,1
    - Dst: IsNullPropertyPathHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:141,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - aPathString
    - ' aHandle'
    argTypes:
    - char*
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 160
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 160
    functionName: TraitSchemaEngine::MapPathToHandle
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - IsNullPropertyPathHandle
    - TraitSchemaEngine::ParseTagString
    - ContextTag
    - VerifyOrExit
    - ExitNow
    - TagNumFromTag
    - SuccessOrExit
    - TraitSchemaEngine::GetChildHandle
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitSchemaEngine::MapPathToHandle(const char * aPathString, PropertyPathHandle
      & aHandle) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:175,1
    - Dst: IsProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:181,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:183,1
    - Dst: ProfileIdFromTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:183,1
    - Dst: TraitSchemaEngine::GetDictionaryItemHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:184,1
    - Dst: TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:184,1
    - Dst: TraitSchemaEngine::GetChildHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:188,1
    - Dst: TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:188,1
    - Dst: IsNullPropertyPathHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:191,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:204,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - ' aPathReader'
    - ' aHandle'
    argTypes:
    - TLVReader
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 213
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 213
    functionName: TraitSchemaEngine::MapPathToHandle
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - IsNullPropertyPathHandle
    - TraitSchemaEngine::GetDictionaryItemHandle
    - IsProfileTag
    - VerifyOrExit
    - TagNumFromTag
    - SuccessOrExit
    - ExitContainer
    - TraitSchemaEngine::GetChildHandle
    - ProfileIdFromTag
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitSchemaEngine::MapPathToHandle(TLVReader & aPathReader, PropertyPathHandle
      & aHandle) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitSchemaEngine::GetParent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:227,1
    - Dst: PutNull
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:235,1
    - Dst: TraitSchemaEngine::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:235,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - aHandle
    - ' aPathWriter'
    argTypes:
    - PropertyPathHandle
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 243
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 243
    functionName: TraitSchemaEngine::MapHandleToPath
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - PutNull
    - TraitSchemaEngine::GetParent
    - TraitSchemaEngine::GetTag
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitSchemaEngine::MapHandleToPath(PropertyPathHandle aHandle, TLVWriter
      & aPathWriter) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitSchemaEngine::GetParent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:257,1
    - Dst: append
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:267,1
    - Dst: append
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:269,1
    - Dst: std::to_string
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:269,1
    - Dst: TraitSchemaEngine::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - aHandle
    - ' aPathString'
    argTypes:
    - PropertyPathHandle
    - std::string
    constantsTouched: []
    func_position:
      end: 275
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 275
    functionName: TraitSchemaEngine::MapHandleToPath
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - TraitSchemaEngine::GetParent
    - TraitSchemaEngine::GetTag
    - append
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitSchemaEngine::MapHandleToPath(PropertyPathHandle aHandle, std::string
      & aPathString) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitSchemaEngine::IsDictionary
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:280,1
    - Dst: TraitSchemaEngine::GetParent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:280,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:282,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:282,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:286,1
    - Dst: TraitSchemaEngine::GetMap
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - aHandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 288
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 288
    functionName: TraitSchemaEngine::GetTag
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 2
    functionsReached:
    - TraitSchemaEngine::GetMap
    - GetPropertyDictionaryKey
    - ContextTag
    - TraitSchemaEngine::GetParent
    - ProfileTag
    - TraitSchemaEngine::IsDictionary
    linkageType: ''
    returnType: uint64_t
    signature: TraitSchemaEngine::GetTag(PropertyPathHandle aHandle) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitSchemaEngine::IsLeaf
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:295,1
    - Dst: TraitSchemaEngine::IsNullable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:295,1
    - Dst: TraitSchemaEngine::IsOptional
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:295,1
    - Dst: IGetDataDelegate*::GetData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:299,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:300,1
    - Dst: TraitSchemaEngine::IsOptional
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:302,1
    - Dst: TraitSchemaEngine::IsEphemeral
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:302,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:306,1
    - Dst: TraitSchemaEngine::IsNullable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:310,1
    - Dst: PutNull
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:316,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:317,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:320,1
    - Dst: TraitSchemaEngine::IsLeaf
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:323,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:327,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:328,1
    - Dst: TraitSchemaEngine::IsDictionary
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:331,1
    - Dst: IGetDataDelegate*::GetNextDictionaryItemKey
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:341,1
    - Dst: TraitSchemaEngine::GetFirstChild
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:344,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:346,1
    - Dst: TraitSchemaEngine::RetrieveData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:348,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:348,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:349,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:352,1
    - Dst: IGetDataDelegate*::GetNextDictionaryItemKey
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:368,1
    - Dst: IDirtyPathCut*::CutPath
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:370,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:371,1
    - Dst: TraitSchemaEngine::GetFirstChild
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:381,1
    - Dst: IsNullPropertyPathHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:381,1
    - Dst: TraitSchemaEngine::GetNextChild
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:382,1
    - Dst: TraitSchemaEngine::GetMap
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:384,1
    - Dst: TraitSchemaEngine::RetrieveData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:386,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:386,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:387,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:391,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:392,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 5
    argNames:
    - aHandle
    - aTagToWrite
    - ' aWriter'
    - aDelegate
    - updateDirtyPathCut
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - nl::Weave::TLV::TLVWriter
    - IGetDataDelegate*
    - IDirtyPathCut*
    constantsTouched: []
    func_position:
      end: 397
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 397
    functionName: TraitSchemaEngine::RetrieveData
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 1
    functionsReached:
    - StartContainer
    - IGetDataDelegate*::GetNextDictionaryItemKey
    - TraitSchemaEngine::IsEphemeral
    - IsNullPropertyPathHandle
    - TraitSchemaEngine::IsLeaf
    - IDirtyPathCut*::CutPath
    - VerifyOrExit
    - IGetDataDelegate*::GetData
    - CreatePropertyPathHandle
    - TraitSchemaEngine::GetMap
    - TraitSchemaEngine::RetrieveData
    - EndContainer
    - PutNull
    - ContextTag
    - TraitSchemaEngine::IsOptional
    - TraitSchemaEngine::IsNullable
    - TraitSchemaEngine::GetFirstChild
    - TraitSchemaEngine::GetNextChild
    - SuccessOrExit
    - TraitSchemaEngine::IsDictionary
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TraitSchemaEngine::RetrieveData(PropertyPathHandle aHandle, uint64_t
      aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter,\n                                            IGetDataDelegate
      * aDelegate, IDirtyPathCut * updateDirtyPathCut) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:411,1
    - Dst: TraitSchemaEngine::GetFirstChild
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:411,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:415,1
    - Dst: TraitSchemaEngine::IsDictionary
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:415,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:421,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:422,1
    - Dst: IGetDataDelegate*::GetNextDictionaryItemKey
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:424,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:428,1
    - Dst: TraitSchemaEngine::RetrieveData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:439,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:442,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:456,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:465,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:467,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:468,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 5
    argNames:
    - aHandle
    - aTagToWrite
    - ' aWriter'
    - aDelegate
    - ' aPropertyPathHandleOfDictItemToStartFrom'
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    - IGetDataDelegate*
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 473
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 473
    functionName: TraitSchemaEngine::RetrieveUpdatableDictionaryData
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - StartContainer
    - TraitSchemaEngine::RetrieveData
    - VerifyOrExit
    - GetPropertySchemaHandle
    - TraitSchemaEngine::GetFirstChild
    - EndContainer
    - WeaveLogDetail
    - SuccessOrExit
    - IGetDataDelegate*::GetNextDictionaryItemKey
    - TraitSchemaEngine::IsDictionary
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TraitSchemaEngine::RetrieveUpdatableDictionaryData(PropertyPathHandle
      aHandle, uint64_t aTagToWrite,\n                                                               TLVWriter
      & aWriter, IGetDataDelegate * aDelegate,\n                                                               PropertyPathHandle
      & aPropertyPathHandleOfDictItemToStartFrom) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitSchemaEngine::GetParent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:492,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:495,1
    - Dst: TraitSchemaEngine::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - aCandidateHandle
    - aTags
    - aTagsSize
    - ' aNumTags'
    argTypes:
    - PropertyPathHandle
    - uint64_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 509
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 509
    functionName: TraitSchemaEngine::GetRelativePathTags
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - TraitSchemaEngine::GetTag
    - TraitSchemaEngine::GetParent
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TraitSchemaEngine::GetRelativePathTags(const PropertyPathHandle aCandidateHandle,
      uint64_t * aTags,\n                                                   const
      uint32_t aTagsSize, uint32_t & aNumTags) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:523,1
    - Dst: IPathFilter*::FilterPath
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:523,1
    - Dst: TraitSchemaEngine::IsInDictionary
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:530,1
    - Dst: ISetDataDelegate*::OnSetDataEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:532,1
    - Dst: TraitSchemaEngine::IsLeaf
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:536,1
    - Dst: ISetDataDelegate*::SetData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:538,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:538,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:539,1
    - Dst: IPathFilter*::FilterPath
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:550,1
    - Dst: IsNullPropertyPathHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:553,1
    - Dst: TraitSchemaEngine::IsLeaf
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:556,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:563,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:564,1
    - Dst: TraitSchemaEngine::IsNullable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:570,1
    - Dst: ISetDataDelegate*::SetData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:572,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:578,1
    - Dst: ISetDataDelegate*::SetData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:584,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:584,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:585,1
    - Dst: TraitSchemaEngine::IsDictionary
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:595,1
    - Dst: ISetDataDelegate*::OnSetDataEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:600,1
    - Dst: TraitSchemaEngine::IsDictionary
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:602,1
    - Dst: ISetDataDelegate*::OnSetDataEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:608,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:614,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:615,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:621,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:622,1
    - Dst: TraitSchemaEngine::GetParent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:625,1
    - Dst: IsProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:635,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:637,1
    - Dst: ProfileIdFromTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:637,1
    - Dst: TraitSchemaEngine::GetDictionaryItemHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:638,1
    - Dst: TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:638,1
    - Dst: TraitSchemaEngine::GetChildHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:642,1
    - Dst: TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:642,1
    - Dst: IPathFilter*::FilterPath
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:645,1
    - Dst: TraitSchemaEngine::IsDictionary
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:647,1
    - Dst: ISetDataDelegate*::OnSetDataEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:652,1
    - Dst: TraitSchemaEngine::IsDictionary
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:654,1
    - Dst: ISetDataDelegate*::OnSetDataEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:659,1
    - Dst: IsNullPropertyPathHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:663,1
    - Dst: ISetDataDelegate*::OnSetDataEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:675,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 81
    argCount: 4
    argNames:
    - aHandle
    - ' aReader'
    - aDelegate
    - apPathFilter
    argTypes:
    - PropertyPathHandle
    - TLVReader
    - ISetDataDelegate*
    - IPathFilter*
    constantsTouched: []
    func_position:
      end: 680
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 680
    functionName: TraitSchemaEngine::StoreData
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - TraitSchemaEngine::GetParent
    - TraitSchemaEngine::GetDictionaryItemHandle
    - ISetDataDelegate*::SetData
    - IsNullPropertyPathHandle
    - TraitSchemaEngine::IsLeaf
    - VerifyOrExit
    - TraitSchemaEngine::GetChildHandle
    - ProfileIdFromTag
    - TraitSchemaEngine::IsInDictionary
    - ExitContainer
    - ISetDataDelegate*::OnSetDataEvent
    - Next
    - IPathFilter*::FilterPath
    - TraitSchemaEngine::IsNullable
    - IsProfileTag
    - GetType
    - TagNumFromTag
    - SuccessOrExit
    - TraitSchemaEngine::IsDictionary
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TraitSchemaEngine::StoreData(PropertyPathHandle aHandle, TLVReader
      & aReader, ISetDataDelegate * aDelegate,\n                                         IPathFilter
      * apPathFilter) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitSchemaEngine::GetNextChild
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aParentHandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 685
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 685
    functionName: TraitSchemaEngine::GetFirstChild
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 2
    functionsReached:
    - TraitSchemaEngine::GetNextChild
    linkageType: ''
    returnType: PropertyPathHandle
    signature: TraitSchemaEngine::GetFirstChild(PropertyPathHandle aParentHandle)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:691,1
    - Dst: TraitSchemaEngine::GetParent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:695,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:699,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - aChildHandle
    - aParentHandle
    argTypes:
    - PropertyPathHandle
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 705
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 705
    functionName: TraitSchemaEngine::IsParent
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - TraitSchemaEngine::GetParent
    - VerifyOrExit
    - ExitNow
    linkageType: ''
    returnType: bool
    signature: TraitSchemaEngine::IsParent(PropertyPathHandle aChildHandle, PropertyPathHandle
      aParentHandle) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:709,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:710,1
    - Dst: TraitSchemaEngine::GetMap
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:711,1
    - Dst: TraitSchemaEngine::IsDictionary
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:723,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:730,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - aHandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 734
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 734
    functionName: TraitSchemaEngine::GetParent
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 6
    functionsReached:
    - CreatePropertyPathHandle
    - TraitSchemaEngine::GetMap
    - GetPropertyDictionaryKey
    - GetPropertySchemaHandle
    - TraitSchemaEngine::IsDictionary
    linkageType: ''
    returnType: PropertyPathHandle
    signature: TraitSchemaEngine::GetParent(PropertyPathHandle aHandle) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:739,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:740,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:741,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:758,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - aParentHandle
    - aChildHandle
    argTypes:
    - PropertyPathHandle
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 760
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 760
    functionName: TraitSchemaEngine::GetNextChild
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 2
    functionsReached:
    - CreatePropertyPathHandle
    - GetPropertyDictionaryKey
    - GetPropertySchemaHandle
    linkageType: ''
    returnType: PropertyPathHandle
    signature: TraitSchemaEngine::GetNextChild(PropertyPathHandle aParentHandle, PropertyPathHandle
      aChildHandle) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitSchemaEngine::IsDictionary
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:764,1
    - Dst: TraitSchemaEngine::_GetChildHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:769,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - aParentHandle
    - aContextTag
    argTypes:
    - PropertyPathHandle
    - uint8_t
    constantsTouched: []
    func_position:
      end: 770
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 770
    functionName: TraitSchemaEngine::GetChildHandle
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 3
    functionsReached:
    - TraitSchemaEngine::_GetChildHandle
    - TraitSchemaEngine::IsDictionary
    linkageType: ''
    returnType: PropertyPathHandle
    signature: TraitSchemaEngine::GetChildHandle(PropertyPathHandle aParentHandle,
      uint8_t aContextTag) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitSchemaEngine::GetFirstChild
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:774,1
    - Dst: IsNullPropertyPathHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:774,1
    - Dst: TraitSchemaEngine::GetNextChild
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:775,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:777,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - aParentHandle
    - aContextTag
    argTypes:
    - PropertyPathHandle
    - uint8_t
    constantsTouched: []
    func_position:
      end: 784
      start: 772
    functionDepth: 2
    functionLinenumber: 772
    functionLinenumberEnd: 784
    functionName: TraitSchemaEngine::_GetChildHandle
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 1
    functionsReached:
    - IsNullPropertyPathHandle
    - TraitSchemaEngine::GetNextChild
    - GetPropertySchemaHandle
    - TraitSchemaEngine::GetFirstChild
    linkageType: ''
    returnType: PropertyPathHandle
    signature: TraitSchemaEngine::_GetChildHandle(PropertyPathHandle aParentHandle,
      uint8_t aContextTag) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitSchemaEngine::IsDictionary
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:788,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:793,1
    - Dst: TraitSchemaEngine::_GetChildHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - aParentHandle
    - aDictionaryKey
    argTypes:
    - PropertyPathHandle
    - uint16_t
    constantsTouched: []
    func_position:
      end: 794
      start: 786
    functionDepth: 3
    functionLinenumber: 786
    functionLinenumberEnd: 794
    functionName: TraitSchemaEngine::GetDictionaryItemHandle
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 2
    functionsReached:
    - CreatePropertyPathHandle
    - TraitSchemaEngine::_GetChildHandle
    - TraitSchemaEngine::IsDictionary
    linkageType: ''
    returnType: PropertyPathHandle
    signature: TraitSchemaEngine::GetDictionaryItemHandle(PropertyPathHandle aParentHandle,
      uint16_t aDictionaryKey) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:798,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - aHandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 818
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 818
    functionName: TraitSchemaEngine::IsLeaf
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 2
    functionsReached:
    - GetPropertySchemaHandle
    linkageType: ''
    returnType: bool
    signature: TraitSchemaEngine::IsLeaf(PropertyPathHandle aHandle) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:823,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - aHandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 837
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 837
    functionName: TraitSchemaEngine::GetDepth
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - GetPropertySchemaHandle
    linkageType: ''
    returnType: int32_t
    signature: TraitSchemaEngine::GetDepth(PropertyPathHandle aHandle) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitSchemaEngine::GetParent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:860,1
    - Dst: TraitSchemaEngine::GetParent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:866,1
    - Dst: TraitSchemaEngine::GetParent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:876,1
    - Dst: TraitSchemaEngine::GetParent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:877,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - aHandle1
    - aHandle2
    - aHandle1BranchChild
    - aHandle2BranchChild
    argTypes:
    - PropertyPathHandle
    - PropertyPathHandle
    - PropertyPathHandle*
    - PropertyPathHandle*
    constantsTouched: []
    func_position:
      end: 891
      start: 839
    functionDepth: 2
    functionLinenumber: 839
    functionLinenumberEnd: 891
    functionName: TraitSchemaEngine::FindLowestCommonAncestor
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - TraitSchemaEngine::GetParent
    linkageType: ''
    returnType: PropertyPathHandle
    signature: "TraitSchemaEngine::FindLowestCommonAncestor(PropertyPathHandle aHandle1,
      PropertyPathHandle aHandle2,\n                                                               PropertyPathHandle
      * aHandle1BranchChild,\n                                                               PropertyPathHandle
      * aHandle2BranchChild) const"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:895,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - aHandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 903
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 903
    functionName: TraitSchemaEngine::GetMap
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 3
    functionsReached:
    - GetPropertySchemaHandle
    linkageType: ''
    returnType: TraitSchemaEngine::PropertyInfo
    signature: '* TraitSchemaEngine::GetMap(PropertyPathHandle aHandle) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitSchemaEngine::GetBitFromPathHandleBitfield
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aHandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 910
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 910
    functionName: TraitSchemaEngine::IsDictionary
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 7
    functionsReached:
    - TraitSchemaEngine::GetBitFromPathHandleBitfield
    linkageType: ''
    returnType: bool
    signature: TraitSchemaEngine::IsDictionary(PropertyPathHandle aHandle) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitSchemaEngine::GetParent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:916,1
    - Dst: TraitSchemaEngine::IsDictionary
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:918,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - aHandle
    - ' aDictionaryItemHandle'
    argTypes:
    - PropertyPathHandle
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 928
      start: 912
    functionDepth: 2
    functionLinenumber: 912
    functionLinenumberEnd: 928
    functionName: TraitSchemaEngine::IsInDictionary
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 1
    functionsReached:
    - TraitSchemaEngine::GetParent
    - TraitSchemaEngine::IsDictionary
    linkageType: ''
    returnType: bool
    signature: TraitSchemaEngine::IsInDictionary(PropertyPathHandle aHandle, PropertyPathHandle
      & aDictionaryItemHandle) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitSchemaEngine::GetBitFromPathHandleBitfield
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aHandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 933
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 933
    functionName: TraitSchemaEngine::IsOptional
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 1
    functionsReached:
    - TraitSchemaEngine::GetBitFromPathHandleBitfield
    linkageType: ''
    returnType: bool
    signature: TraitSchemaEngine::IsOptional(PropertyPathHandle aHandle) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitSchemaEngine::GetBitFromPathHandleBitfield
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aHandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 938
      start: 935
    functionDepth: 1
    functionLinenumber: 935
    functionLinenumberEnd: 938
    functionName: TraitSchemaEngine::IsNullable
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 2
    functionsReached:
    - TraitSchemaEngine::GetBitFromPathHandleBitfield
    linkageType: ''
    returnType: bool
    signature: TraitSchemaEngine::IsNullable(PropertyPathHandle aHandle) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitSchemaEngine::GetBitFromPathHandleBitfield
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aHandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 943
      start: 940
    functionDepth: 1
    functionLinenumber: 940
    functionLinenumberEnd: 943
    functionName: TraitSchemaEngine::IsEphemeral
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 1
    functionsReached:
    - TraitSchemaEngine::GetBitFromPathHandleBitfield
    linkageType: ''
    returnType: bool
    signature: TraitSchemaEngine::IsEphemeral(PropertyPathHandle aHandle) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsRootPropertyPathHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:948,1
    - Dst: IsNullPropertyPathHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:948,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:950,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - aBitfield
    - aPathHandle
    argTypes:
    - uint8_t*
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 954
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 954
    functionName: TraitSchemaEngine::GetBitFromPathHandleBitfield
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 4
    functionsReached:
    - IsNullPropertyPathHandle
    - IsRootPropertyPathHandle
    - GetPropertySchemaHandle
    linkageType: ''
    returnType: bool
    signature: TraitSchemaEngine::GetBitFromPathHandleBitfield(uint8_t * aBitfield,
      PropertyPathHandle aPathHandle) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aProfileId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 959
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 959
    functionName: TraitSchemaEngine::MatchesProfileId
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: TraitSchemaEngine::MatchesProfileId(uint32_t aProfileId) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 964
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 964
    functionName: TraitSchemaEngine::GetProfileId
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: TraitSchemaEngine::GetProfileId(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:978,1
    - Dst: min
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:979,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ' aVersion'
    - ' aIntersection'
    argTypes:
    - SchemaVersionRange
    - SchemaVersionRange
    constantsTouched: []
    func_position:
      end: 989
      start: 966
    functionDepth: 0
    functionLinenumber: 966
    functionLinenumberEnd: 989
    functionName: TraitSchemaEngine::GetVersionIntersection
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - min
    - max
    linkageType: ''
    returnType: bool
    signature: TraitSchemaEngine::GetVersionIntersection(SchemaVersionRange & aVersion,
      SchemaVersionRange & aIntersection) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - aVersion
    argTypes:
    - SchemaVersion
    constantsTouched: []
    func_position:
      end: 1008
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 1008
    functionName: TraitSchemaEngine::GetHighestForwardVersion
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SchemaVersion
    signature: TraitSchemaEngine::GetHighestForwardVersion(SchemaVersion aVersion)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - aVersion
    argTypes:
    - SchemaVersion
    constantsTouched: []
    func_position:
      end: 1021
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1021
    functionName: TraitSchemaEngine::GetLowestCompatibleVersion
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SchemaVersion
    signature: TraitSchemaEngine::GetLowestCompatibleVersion(SchemaVersion aVersion)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1033
    functionName: TraitSchemaEngine::GetMinVersion
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SchemaVersion
    signature: TraitSchemaEngine::GetMinVersion() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1045
    functionName: TraitSchemaEngine::GetMaxVersion
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SchemaVersion
    signature: TraitSchemaEngine::GetMaxVersion() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1053,1
    - Dst: GetProfileId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1053,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1059,1
    - Dst: GetProfileId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1059,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - aVersion
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1063
      start: 1047
    functionDepth: 0
    functionLinenumber: 1047
    functionLinenumberEnd: 1063
    functionName: TraitDataSink::SetVersion
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - GetProfileId
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: TraitDataSink::SetVersion(uint64_t aVersion)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1067,1
    - Dst: GetProfileId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1069
    functionName: TraitDataSink::ClearVersion
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - GetProfileId
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: TraitDataSink::ClearVersion(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1073,1
    - Dst: GetProfileId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aVersion
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1077
      start: 1071
    functionDepth: 0
    functionLinenumber: 1071
    functionLinenumberEnd: 1077
    functionName: TraitDataSink::SetLastNotifyVersion
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - GetProfileId
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: TraitDataSink::SetLastNotifyVersion(uint64_t aVersion)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - aEngine
    argTypes:
    - TraitSchemaEngine*
    constantsTouched: []
    func_position:
      end: 1088
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1088
    functionName: TraitDataSink::TraitDataSink
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TraitDataSink::TraitDataSink(const TraitSchemaEngine * aEngine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DataElement::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1098,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1099,1
    - Dst: DataElement::Parser::GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1101,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1102,1
    - Dst: IsVersionNewer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1104,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1108,1
    - Dst: GetProfileId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1109,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1113,1
    - Dst: GetProfileId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1114,1
    - Dst: DataElement::Parser::CheckPresence
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1117,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1118,1
    - Dst: OnEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1122,1
    - Dst: OnEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1126,1
    - Dst: DataElement::Parser::GetDeletedDictionaryKeys
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1132,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1133,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1135,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1140,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1141,1
    - Dst: GetFirstChild
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1146,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1147,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1149,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1149,1
    - Dst: OnEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1150,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1153,1
    - Dst: DataElement::Parser::GetData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1159,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1160,1
    - Dst: StoreData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1163,1
    - Dst: OnEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1166,1
    - Dst: TraitDataSink::SetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1174,1
    - Dst: OnEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1176,1
    - Dst: TraitDataSink::ClearVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1182,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1187,1
    - Dst: GetProfileId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1187,1
    - Dst: TraitDataSink::SetLastNotifyVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1193,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 6
    argNames:
    - aHandle
    - ' aReader'
    - aFlags
    - aFunc
    - aContext
    - aDatahandle
    argTypes:
    - PropertyPathHandle
    - TLVReader
    - uint8_t
    - OnChangeRejection
    - void*
    - TraitDataHandle
    constantsTouched: []
    func_position:
      end: 1198
      start: 1090
    functionDepth: 1
    functionLinenumber: 1090
    functionLinenumberEnd: 1198
    functionName: TraitDataSink::StoreDataElement
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - OnEvent
    - StoreData
    - Get
    - DataElement::Parser::GetData
    - IsVersionNewer
    - VerifyOrExit
    - GetPropertySchemaHandle
    - DataElement::Parser::Init
    - TraitDataSink::SetVersion
    - WeaveLogDetail
    - CreatePropertyPathHandle
    - GetProfileId
    - DataElement::Parser::GetVersion
    - DataElement::Parser::GetDeletedDictionaryKeys
    - Next
    - GetFirstChild
    - DataElement::Parser::CheckPresence
    - TraitDataSink::SetLastNotifyVersion
    - TraitDataSink::ClearVersion
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TraitDataSink::StoreDataElement(PropertyPathHandle aHandle, TLVReader
      & aReader, uint8_t aFlags,\n                                            OnChangeRejection
      aFunc, void * aContext, TraitDataHandle aDatahandle)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OnEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1226,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - aEventType
    - aHandle
    argTypes:
    - SetDataEventType
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 1227
      start: 1200
    functionDepth: 0
    functionLinenumber: 1200
    functionLinenumberEnd: 1227
    functionName: TraitDataSink::OnSetDataEvent
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - OnEvent
    linkageType: ''
    returnType: void
    signature: TraitDataSink::OnSetDataEvent(SetDataEventType aEventType, PropertyPathHandle
      aHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sChangeRejectionCb
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aRejectionStatusCode
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1235
      start: 1229
    functionDepth: 0
    functionLinenumber: 1229
    functionLinenumberEnd: 1235
    functionName: TraitDataSink::RejectChange
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - sChangeRejectionCb
    linkageType: ''
    returnType: void
    signature: TraitDataSink::RejectChange(uint16_t aRejectionStatusCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1243,1
    - Dst: IsLeaf
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1245,1
    - Dst: SetLeafData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1247,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - aHandle
    - ' aReader'
    - aIsNull
    argTypes:
    - PropertyPathHandle
    - TLVReader
    - bool
    constantsTouched: []
    func_position:
      end: 1254
      start: 1237
    functionDepth: 0
    functionLinenumber: 1237
    functionLinenumberEnd: 1254
    functionName: TraitDataSink::SetData
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - IsLeaf
    - SetLeafData
    - IgnoreUnusedVariable
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitDataSink::SetData(PropertyPathHandle aHandle, TLVReader & aReader,
      bool aIsNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1259,1
    - Dst: ClearRootDirty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - aEngine
    argTypes:
    - TraitSchemaEngine*
    constantsTouched: []
    func_position:
      end: 1268
      start: 1256
    functionDepth: 0
    functionLinenumber: 1256
    functionLinenumberEnd: 1268
    functionName: TraitDataSource::TraitDataSource
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - SetVersion
    - ClearRootDirty
    linkageType: ''
    returnType: void
    signature: TraitDataSource::TraitDataSource(const TraitSchemaEngine * aEngine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRandU64
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1270
    functionDepth: 0
    functionLinenumber: 1270
    functionLinenumberEnd: 1281
    functionName: TraitDataSource::GetVersion
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - GetRandU64
    linkageType: ''
    returnType: uint64_t
    signature: TraitDataSource::GetVersion(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1286,1
    - Dst: TraitDataSource::GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1283
    functionDepth: 1
    functionLinenumber: 1283
    functionLinenumberEnd: 1287
    functionName: TraitDataSource::IncrementVersion
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - SetVersion
    - TraitDataSource::GetVersion
    linkageType: ''
    returnType: void
    signature: TraitDataSource::IncrementVersion()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1302,1
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1303,1
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1304,1
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1305,1
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1306,1
    - Dst: TraitDataSource::OnCustomCommand
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 9
    argNames:
    - aCommand
    - aMsgInfo
    - aPayload
    - ' aCommandType'
    - aIsExpiryTimeValid
    - ' aExpiryTimeMicroSecond'
    - aIsMustBeVersionValid
    - ' aMustBeVersion'
    - ' aArgumentReader'
    argTypes:
    - Command*
    - nl::Weave::WeaveMessageInfo*
    - nl::Weave::PacketBuffer*
    - uint64_t
    - bool
    - int64_t
    - bool
    - uint64_t
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 1309
      start: 1296
    functionDepth: 1
    functionLinenumber: 1296
    functionLinenumberEnd: 1309
    functionName: TraitDataSource::OnCustomCommand
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 1
    functionsReached:
    - IgnoreUnusedVariable
    - TraitDataSource::OnCustomCommand
    linkageType: ''
    returnType: void
    signature: "TraitDataSource::OnCustomCommand(Command * aCommand, const nl::Weave::WeaveMessageInfo
      * aMsgInfo,\n                                      nl::Weave::PacketBuffer *
      aPayload, const uint64_t & aCommandType,\n                                      const
      bool aIsExpiryTimeValid, const int64_t & aExpiryTimeMicroSecond,\n                                      const
      bool aIsMustBeVersionValid, const uint64_t & aMustBeVersion,\n                                      nl::Weave::TLV::TLVReader
      & aArgumentReader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1325,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1327,1
    - Dst: Command*::SendError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1330,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - aCommand
    - aMsgInfo
    - aPayload
    - ' aArgumentReader'
    argTypes:
    - Command*
    - nl::Weave::WeaveMessageInfo*
    - nl::Weave::PacketBuffer*
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 1335
      start: 1320
    functionDepth: 2
    functionLinenumber: 1320
    functionLinenumberEnd: 1335
    functionName: TraitDataSource::OnCustomCommand
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 1
    functionsReached:
    - Command*::SendError
    - WeaveLogFunctError
    - IgnoreUnusedVariable
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: void
    signature: "TraitDataSource::OnCustomCommand(Command * aCommand, const nl::Weave::WeaveMessageInfo
      * aMsgInfo,\n                                      nl::Weave::PacketBuffer *
      aPayload, nl::Weave::TLV::TLVReader & aArgumentReader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsLeaf
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1344,1
    - Dst: GetLeafData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - aHandle
    - aTagToWrite
    - ' aWriter'
    - ' aIsNull'
    - ' aIsPresent'
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - nl::Weave::TLV::TLVWriter
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1350
      start: 1337
    functionDepth: 0
    functionLinenumber: 1337
    functionLinenumberEnd: 1350
    functionName: TraitDataSource::GetData
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - IsLeaf
    - GetLeafData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TraitDataSource::GetData(PropertyPathHandle aHandle, uint64_t aTagToWrite,
      nl::Weave::TLV::TLVWriter & aWriter,\n                                     bool
      & aIsNull, bool & aIsPresent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitDataSource::Lock
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1355,1
    - Dst: RetrieveData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1356,1
    - Dst: TraitDataSource::Unlock
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - aHandle
    - aTagToWrite
    - ' aWriter'
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 1360
      start: 1352
    functionDepth: 1
    functionLinenumber: 1352
    functionLinenumberEnd: 1360
    functionName: TraitDataSource::ReadData
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - TraitDataSource::Unlock
    - TraitDataSource::Lock
    - RetrieveData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitDataSource::ReadData(PropertyPathHandle aHandle, uint64_t aTagToWrite,
      TLVWriter & aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - aPropertyHandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 1369
      start: 1362
    functionDepth: 0
    functionLinenumber: 1362
    functionLinenumberEnd: 1369
    functionName: TraitDataSource::SetDirty
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionEngine::GetInstance
    linkageType: ''
    returnType: void
    signature: TraitDataSource::SetDirty(PropertyPathHandle aPropertyHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsDictionary
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1375,1
    - Dst: GetParent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1375,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - aPropertyHandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 1380
      start: 1372
    functionDepth: 0
    functionLinenumber: 1372
    functionLinenumberEnd: 1380
    functionName: TraitDataSource::DeleteKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - GetParent
    - SubscriptionEngine::GetInstance
    - IsDictionary
    linkageType: ''
    returnType: void
    signature: TraitDataSource::DeleteKey(PropertyPathHandle aPropertyHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1386,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1386,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1383
    functionDepth: 0
    functionLinenumber: 1383
    functionLinenumberEnd: 1388
    functionName: TraitDataSource::Lock
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 1
    functionsReached:
    - SubscriptionEngine::GetInstance
    - VerifyOrDie
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitDataSource::Lock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitDataSource::IncrementVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1394,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1397,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1397,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1390
    functionDepth: 2
    functionLinenumber: 1390
    functionLinenumberEnd: 1399
    functionName: TraitDataSource::Unlock
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 1
    functionsReached:
    - VerifyOrDie
    - TraitDataSource::IncrementVersion
    - SubscriptionEngine::GetInstance
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitDataSource::Unlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitDataSource::IncrementVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1406,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1409,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1409,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - aSkipVersionIncrement
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1411
      start: 1402
    functionDepth: 2
    functionLinenumber: 1402
    functionLinenumberEnd: 1411
    functionName: TraitDataSource::Unlock
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 1
    functionsReached:
    - VerifyOrDie
    - TraitDataSource::IncrementVersion
    - SubscriptionEngine::GetInstance
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitDataSource::Unlock(bool aSkipVersionIncrement)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aEngine
    argTypes:
    - TraitSchemaEngine*
    constantsTouched: []
    func_position:
      end: 1417
      start: 1415
    functionDepth: 0
    functionLinenumber: 1415
    functionLinenumberEnd: 1417
    functionName: TraitUpdatableDataSink::TraitUpdatableDataSink
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TraitUpdatableDataSink::TraitUpdatableDataSink(const TraitSchemaEngine
      * aEngine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1421,1
    - Dst: SubscriptionClient*::LockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - apSubClient
    argTypes:
    - SubscriptionClient*
    constantsTouched: []
    func_position:
      end: 1423
      start: 1419
    functionDepth: 0
    functionLinenumber: 1419
    functionLinenumberEnd: 1423
    functionName: TraitUpdatableDataSink::Lock
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionClient*::LockUpdateMutex
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: TraitUpdatableDataSink::Lock(SubscriptionClient * apSubClient)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1427,1
    - Dst: SubscriptionClient*::UnlockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - apSubClient
    argTypes:
    - SubscriptionClient*
    constantsTouched: []
    func_position:
      end: 1429
      start: 1425
    functionDepth: 0
    functionLinenumber: 1425
    functionLinenumberEnd: 1429
    functionName: TraitUpdatableDataSink::Unlock
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionClient*::UnlockUpdateMutex
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: TraitUpdatableDataSink::Unlock(SubscriptionClient * apSubClient)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsLeaf
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1438,1
    - Dst: GetLeafData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - aHandle
    - aTagToWrite
    - ' aWriter'
    - ' aIsNull'
    - ' aIsPresent'
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - nl::Weave::TLV::TLVWriter
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1444
      start: 1431
    functionDepth: 0
    functionLinenumber: 1431
    functionLinenumberEnd: 1444
    functionName: TraitUpdatableDataSink::GetData
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - IsLeaf
    - GetLeafData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TraitUpdatableDataSink::GetData(PropertyPathHandle aHandle, uint64_t
      aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter,\n                                            bool
      & aIsNull, bool & aIsPresent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1450,1
    - Dst: GetProfileId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1451,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' aUpdateRequiredVersion'
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1462
      start: 1446
    functionDepth: 0
    functionLinenumber: 1446
    functionLinenumberEnd: 1462
    functionName: TraitUpdatableDataSink::SetUpdateRequiredVersion
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - GetProfileId
    - WeaveLogDetail
    - WEAVE_FAULT_INJECT
    linkageType: ''
    returnType: void
    signature: TraitUpdatableDataSink::SetUpdateRequiredVersion(const uint64_t & aUpdateRequiredVersion)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1466,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1468,1
    - Dst: GetProfileId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1469,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1469,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1464
    functionDepth: 0
    functionLinenumber: 1464
    functionLinenumberEnd: 1472
    functionName: TraitUpdatableDataSink::SetUpdateStartVersion
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - GetVersion
    - GetProfileId
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: TraitUpdatableDataSink::SetUpdateStartVersion(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsDictionary
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1479,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1481,1
    - Dst: RetrieveUpdatableDictionaryData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1482,1
    - Dst: static_cast<TraitSchemaEngine::IGetDataDelegate *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1483,1
    - Dst: RetrieveData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1489,1
    - Dst: static_cast<TraitSchemaEngine::IGetDataDelegate *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1489,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - aTraitDataHandle
    - aHandle
    - aTagToWrite
    - ' aWriter'
    - ' aPropertyPathHandleOfDictItemToStartFrom'
    argTypes:
    - TraitDataHandle
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 1497
      start: 1474
    functionDepth: 0
    functionLinenumber: 1474
    functionLinenumberEnd: 1497
    functionName: TraitUpdatableDataSink::ReadData
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - RetrieveUpdatableDictionaryData
    - RetrieveData
    - WeaveLogDetail
    - SuccessOrExit
    - static_cast<TraitSchemaEngine::IGetDataDelegate *>
    - IsDictionary
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TraitUpdatableDataSink::ReadData(TraitDataHandle aTraitDataHandle,
      PropertyPathHandle aHandle, uint64_t aTagToWrite,\n                                             TLVWriter
      & aWriter, PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1531,1
    - Dst: SubscriptionClient*::SetUpdated
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1533,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - apSubClient
    - aPropertyHandle
    - aIsConditional
    argTypes:
    - SubscriptionClient*
    - PropertyPathHandle
    - bool
    constantsTouched: []
    func_position:
      end: 1538
      start: 1526
    functionDepth: 0
    functionLinenumber: 1526
    functionLinenumberEnd: 1538
    functionName: TraitUpdatableDataSink::SetUpdated
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionClient*::SetUpdated
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TraitUpdatableDataSink::SetUpdated(SubscriptionClient * apSubClient,
      PropertyPathHandle aPropertyHandle,\n                                               bool
      aIsConditional)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1544,1
    - Dst: SubscriptionClient*::ClearUpdated
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - apSubClient
    - aPropertyHandle
    argTypes:
    - SubscriptionClient*
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 1550
      start: 1540
    functionDepth: 0
    functionLinenumber: 1540
    functionLinenumberEnd: 1550
    functionName: TraitUpdatableDataSink::ClearUpdated
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionClient*::ClearUpdated
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitUpdatableDataSink::ClearUpdated(SubscriptionClient * apSubClient,
      PropertyPathHandle aPropertyHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aEngine
    argTypes:
    - TraitSchemaEngine*
    constantsTouched: []
    func_position:
      end: 1558
      start: 1558
    functionDepth: 0
    functionLinenumber: 1558
    functionLinenumberEnd: 1558
    functionName: TraitUpdatableDataSource::TraitUpdatableDataSource
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TraitUpdatableDataSource::TraitUpdatableDataSource(const TraitSchemaEngine
      * aEngine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DataElement::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1567,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1568,1
    - Dst: DataElement::Parser::CheckPresence
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1570,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1571,1
    - Dst: DataElement::Parser::GetDeletedDictionaryKeys
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1575,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1576,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1578,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1583,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1584,1
    - Dst: GetFirstChild
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1589,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1590,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1592,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1592,1
    - Dst: OnEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1593,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1596,1
    - Dst: DataElement::Parser::GetData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1602,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1603,1
    - Dst: StoreData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1604,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1605,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 5
    argNames:
    - aHandle
    - ' aReader'
    - aFlags
    - aFunc
    - aContext
    argTypes:
    - PropertyPathHandle
    - TLVReader
    - uint8_t
    - OnChangeRejection
    - void*
    constantsTouched: []
    func_position:
      end: 1610
      start: 1560
    functionDepth: 0
    functionLinenumber: 1560
    functionLinenumberEnd: 1610
    functionName: TraitUpdatableDataSource::StoreDataElement
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - GetFirstChild
    - DataElement::Parser::CheckPresence
    - OnEvent
    - StoreData
    - DataElement::Parser::GetDeletedDictionaryKeys
    - VerifyOrExit
    - GetPropertySchemaHandle
    - DataElement::Parser::Init
    - Get
    - SuccessOrExit
    - DataElement::Parser::GetData
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TraitUpdatableDataSource::StoreDataElement(PropertyPathHandle aHandle,
      TLVReader & aReader, uint8_t aFlags,\n                                                       OnChangeRejection
      aFunc, void * aContext)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OnEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1638,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - aEventType
    - aHandle
    argTypes:
    - SetDataEventType
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 1639
      start: 1612
    functionDepth: 0
    functionLinenumber: 1612
    functionLinenumberEnd: 1639
    functionName: TraitUpdatableDataSource::OnSetDataEvent
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - OnEvent
    linkageType: ''
    returnType: void
    signature: TraitUpdatableDataSource::OnSetDataEvent(SetDataEventType aEventType,
      PropertyPathHandle aHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sChangeRejectionCb
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1645,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aRejectionStatusCode
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1647
      start: 1641
    functionDepth: 0
    functionLinenumber: 1641
    functionLinenumberEnd: 1647
    functionName: TraitUpdatableDataSource::RejectChange
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - GetVersion
    - sChangeRejectionCb
    linkageType: ''
    returnType: void
    signature: TraitUpdatableDataSource::RejectChange(uint16_t aRejectionStatusCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1655,1
    - Dst: IsLeaf
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1657,1
    - Dst: SetLeafData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1659,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp:1662,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - aHandle
    - ' aReader'
    - aIsNull
    argTypes:
    - PropertyPathHandle
    - TLVReader
    - bool
    constantsTouched: []
    func_position:
      end: 1666
      start: 1649
    functionDepth: 0
    functionLinenumber: 1649
    functionLinenumberEnd: 1666
    functionName: TraitUpdatableDataSource::SetData
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
    functionUses: 0
    functionsReached:
    - IsLeaf
    - SetLeafData
    - IgnoreUnusedVariable
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TraitUpdatableDataSource::SetData(PropertyPathHandle aHandle, TLVReader
      & aReader, bool aIsNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 267
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 267
    functionName: nl::Weave::Profiles::NotificationEngine::NotifyRequestBuilder::GetWriter
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TLV::TLVWriter
    signature: '* GetWriter(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 370
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 370
    functionName: nl::Weave::Profiles::NotificationEngine::IntermediateGraphSolver::IsFull
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsFull()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 371
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 371
    functionName: nl::Weave::Profiles::NotificationEngine::IntermediateGraphSolver::GetNumItems
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: GetNumItems()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 372
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 372
    functionName: nl::Weave::Profiles::NotificationEngine::IntermediateGraphSolver::GetStoreSize
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: GetStoreSize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionHandler::ClearDirty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: nl::Weave::Profiles::SubscriptionHandler::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionHandler::ClearDirty
    linkageType: ''
    returnType: void
    signature: Init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: nl::Weave::Profiles::SubscriptionHandler::IsDirty
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsDirty(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: nl::Weave::Profiles::SubscriptionHandler::SetDirty
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetDirty(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: nl::Weave::Profiles::SubscriptionHandler::ClearDirty
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ClearDirty(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: nl::Weave::Profiles::SubscriptionHandler::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: nl::Weave::Profiles::SubscriptionHandler::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: nl::Weave::Profiles::SubscriptionHandler::IsEstablishedIdle
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsEstablishedIdle()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: nl::Weave::Profiles::SubscriptionHandler::IsActive
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsActive(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: nl::Weave::Profiles::SubscriptionHandler::IsCanceling
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsCanceling() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: nl::Weave::Profiles::SubscriptionHandler::IsTerminated
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsTerminated()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: nl::Weave::Profiles::SubscriptionHandler::IsFree
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsFree()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: nl::Weave::Profiles::SubscriptionHandler::GetMaxNotificationSize
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: GetMaxNotificationSize(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: nl::Weave::Profiles::SubscriptionHandler::IsNotifiable
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsNotifiable(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: nl::Weave::Profiles::SubscriptionHandler::IsSubscribing
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsSubscribing(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: nl::Weave::Profiles::SubscriptionHandler::IsNotifying
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsNotifying(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 277
    functionName: nl::Weave::Profiles::SubscriptionHandler::GetTraitInstanceInfoList
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TraitInstanceInfo
    signature: '* GetTraitInstanceInfoList(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 278
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 278
    functionName: nl::Weave::Profiles::SubscriptionHandler::GetNumTraitInstances
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: GetNumTraitInstances(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: nl::Weave::Profiles::SubscriptionEngine::SubscriptionEngine
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SubscriptionEngine::SubscriptionEngine()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aAppState
    - aEventCallback
    argTypes:
    - void*
    - EventCallback
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: nl::Weave::Profiles::SubscriptionEngine::SetEventCallback
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SubscriptionEngine::SetEventCallback(void * const aAppState, const
      EventCallback aEventCallback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:60,1
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:61,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - EventID
    - InEventParam
    - OutEventParam
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: nl::Weave::Profiles::SubscriptionEngine::DefaultEventHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 3
    functionsReached:
    - IgnoreUnusedVariable
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: SubscriptionEngine::DefaultEventHandler(EventID aEvent, const InEventParam
      & aInParam, OutEventParam & aOutParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:76,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:77,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:82,1
    - Dst: InitAsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:87,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:93,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:94,1
    - Dst: InitAsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:98,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::DisablePublisher
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:102,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - apExchangeMgr
    - aAppState
    - aEventCallback
    argTypes:
    - nl::Weave::WeaveExchangeManager*
    - void*
    - EventCallback
    constantsTouched: []
    func_position:
      end: 112
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 112
    functionName: nl::Weave::Profiles::SubscriptionEngine::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SubscriptionEngine::Init
    - nl::Weave::Profiles::SubscriptionEngine::DisablePublisher
    - WeaveLogFunctError
    - SuccessOrExit
    - InitAsFree
    - RegisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscriptionEngine::Init(nl::Weave::WeaveExchangeManager * const apExchangeMgr,
      void * const aAppState,\n                                     const EventCallback
      aEventCallback)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 143
    functionName: nl::Weave::Profiles::SubscriptionEngine::LogSubscriptionFreed
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: SubscriptionEngine::LogSubscriptionFreed(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SubscriptionEngine *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:152,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:160,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:162,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:163,1
    - Dst: SubscribeCancelRequest::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:165,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:166,1
    - Dst: SubscribeCancelRequest::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:169,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:170,1
    - Dst: SubscribeCancelRequest::Parser::GetSubscriptionID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:173,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:174,1
    - Dst: CancelRequestHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:185,1
    - Dst: CancelRequestHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:202,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:212,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:213,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:217,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:220,1
    - Dst: nl::Weave::ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:223,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 6
    argNames:
    - aEC
    - aPktInfo
    - aMsgInfo
    - aProfileId
    - aMsgType
    - aPayload
    argTypes:
    - nl::Weave::ExchangeContext*
    - nl::Inet::IPPacketInfo*
    - nl::Weave::WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 224
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 224
    functionName: nl::Weave::Profiles::SubscriptionEngine::OnCancelRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - SubscribeCancelRequest::Parser::CheckSchemaValidity
    - nl::Weave::System::PacketBuffer::Free
    - CancelRequestHandler
    - SubscribeCancelRequest::Parser::GetSubscriptionID
    - nl::Weave::Profiles::SubscriptionEngine::SendStatusReport
    - SubscribeCancelRequest::Parser::Init
    - nl::Weave::ExchangeContext*::Close
    - SuccessOrExit
    - reinterpret_cast<SubscriptionEngine *>
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: void
    signature: "SubscriptionEngine::OnCancelRequest(nl::Weave::ExchangeContext * aEC,
      const nl::Inet::IPPacketInfo * aPktInfo,\n                                         const
      nl::Weave::WeaveMessageInfo * aMsgInfo, uint32_t aProfileId, uint8_t aMsgType,\n
      \                                        PacketBuffer * aPayload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apClient
    argTypes:
    - SubscriptionClient*
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: nl::Weave::Profiles::SubscriptionEngine::GetClientId
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    linkageType: ''
    returnType: uint16_t
    signature: SubscriptionEngine::GetClientId(const SubscriptionClient * const apClient)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:244,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:247,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:247,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:257,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:263,1
    - Dst: SetMaxUpdateSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:266,1
    - Dst: SYSTEM_STATS_INCREMENT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:268,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 7
    argNames:
    - appClient
    - apBinding
    - apAppState
    - aEventCallback
    - apCatalog
    - aInactivityTimeoutDuringSubscribingMsec
    - aUpdateMutex
    argTypes:
    - SubscriptionClient**
    - Binding*
    - void*
    - SubscriptionClient::EventCallback
    - TraitCatalogBase<TraitDataSink>*
    - uint32_t
    - IWeaveWDMMutex*
    constantsTouched: []
    func_position:
      end: 276
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 276
    functionName: nl::Weave::Profiles::SubscriptionEngine::NewClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - SYSTEM_STATS_INCREMENT
    - VerifyOrExit
    - ExitNow
    - SetMaxUpdateSize
    - nl::Weave::Profiles::SubscriptionEngine::Init
    - WEAVE_FAULT_INJECT
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscriptionEngine::NewClient(SubscriptionClient ** const appClient,
      Binding * const apBinding, void * const apAppState,\n                                          SubscriptionClient::EventCallback
      const aEventCallback,\n                                          const TraitCatalogBase<TraitDataSink>
      * const apCatalog,\n                                          const uint32_t
      aInactivityTimeoutDuringSubscribingMsec, IWeaveWDMMutex * aUpdateMutex)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::NewClient
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - appClient
    - apBinding
    - apAppState
    - aEventCallback
    - apCatalog
    - aInactivityTimeoutDuringSubscribingMsec
    argTypes:
    - SubscriptionClient**
    - Binding*
    - void*
    - SubscriptionClient::EventCallback
    - TraitCatalogBase<TraitDataSink>*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 284
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 284
    functionName: nl::Weave::Profiles::SubscriptionEngine::NewClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SubscriptionEngine::NewClient
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscriptionEngine::NewClient(SubscriptionClient ** const appClient,
      Binding * const apBinding, void * const apAppState,\n                                          SubscriptionClient::EventCallback
      const aEventCallback,\n                                          const TraitCatalogBase<TraitDataSink>
      * const apCatalog,\n                                          const uint32_t
      aInactivityTimeoutDuringSubscribingMsec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:298,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:298,1
    - Dst: LoadFromPersistedState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:308,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:314,1
    - Dst: SetMaxUpdateSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:317,1
    - Dst: SYSTEM_STATS_INCREMENT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:319,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:327,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 7
    argNames:
    - appClient
    - apBinding
    - apAppState
    - aEventCallback
    - apCatalog
    - aInactivityTimeoutDuringSubscribingMsec
    - ' reader'
    argTypes:
    - SubscriptionClient**
    - Binding*
    - void*
    - SubscriptionClient::EventCallback
    - TraitCatalogBase<TraitDataSink>*
    - uint32_t
    - TLVReader
    constantsTouched: []
    func_position:
      end: 330
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 330
    functionName: nl::Weave::Profiles::SubscriptionEngine::NewClientFromPersistedState
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - SYSTEM_STATS_INCREMENT
    - ExitNow
    - SetMaxUpdateSize
    - LoadFromPersistedState
    - WEAVE_FAULT_INJECT
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscriptionEngine::NewClientFromPersistedState(SubscriptionClient
      ** const appClient, Binding * const apBinding, void * const apAppState,\n                                                            SubscriptionClient::EventCallback
      const aEventCallback,\n                                                            const
      TraitCatalogBase<TraitDataSink> * const apCatalog,\n                                                            const
      uint32_t aInactivityTimeoutDuringSubscribingMsec, TLVReader & reader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::NewSubscriptionHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:338,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:339,1
    - Dst: SubscriptionHandler*::SetMaxNotificationSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:341,1
    - Dst: SubscriptionHandler*::LoadFromPersistedState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:342,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:343,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - apBinding
    - apAppState
    - aEventCallback
    - ' reader'
    argTypes:
    - Binding*
    - void*
    - SubscriptionHandler::EventCallback
    - TLVReader
    constantsTouched: []
    func_position:
      end: 349
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 349
    functionName: nl::Weave::Profiles::SubscriptionEngine::NewSubscriptionHandlerFromPersistedState
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionEngine::NewSubscriptionHandler
    - SubscriptionHandler*::SetMaxNotificationSize
    - SuccessOrExit
    - WeaveLogFunctError
    - SubscriptionHandler*::LoadFromPersistedState
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscriptionEngine::NewSubscriptionHandlerFromPersistedState(Binding
      * const apBinding, void * const apAppState,\n                                                                         SubscriptionHandler::EventCallback
      const aEventCallback, TLVReader & reader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::FindEstablishedIdleClient
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:356,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:357,1
    - Dst: SubscriptionClient*::SerializeSubscriptionState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:359,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - aPeerNodeID
    - aWriter
    argTypes:
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 365
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 365
    functionName: nl::Weave::Profiles::SubscriptionEngine::SaveClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionEngine::FindEstablishedIdleClient
    - VerifyOrExit
    - SubscriptionClient*::SerializeSubscriptionState
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionEngine::SaveClient(uint64_t aPeerNodeID, TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::FindEstablishedIdleHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:372,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:373,1
    - Dst: SubscriptionHandler*::SerializeSubscriptionState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:375,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - aPeerNodeID
    - aWriter
    argTypes:
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 381
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 381
    functionName: nl::Weave::Profiles::SubscriptionEngine::SaveSubscriptionHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionHandler*::SerializeSubscriptionState
    - SuccessOrExit
    - VerifyOrExit
    - nl::Weave::Profiles::SubscriptionEngine::FindEstablishedIdleHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionEngine::SaveSubscriptionHandler(uint64_t aPeerNodeID, TLVWriter
      &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:404,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - aEC
    - aProfileId
    - aStatusCode
    argTypes:
    - nl::Weave::ExchangeContext*
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 408
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 408
    functionName: nl::Weave::Profiles::SubscriptionEngine::SendStatusReport
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::WeaveServerBase::SendStatusReport
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionEngine::SendStatusReport(nl::Weave::ExchangeContext * aEC,
      uint32_t aProfileId, uint16_t aStatusCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:422,1
    - Dst: nl::Weave::ExchangeContext*::SetAutoRequestAck
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:424,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:433,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:472,1
    - Dst: func
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:480,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 6
    argNames:
    - aEC
    - aPktInfo
    - aMsgInfo
    - aProfileId
    - aMsgType
    - aPayload
    argTypes:
    - nl::Weave::ExchangeContext*
    - nl::Inet::IPPacketInfo*
    - nl::Weave::WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 481
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 481
    functionName: nl::Weave::Profiles::SubscriptionEngine::UnsolicitedMessageHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - WEAVE_FAULT_INJECT
    - GetFlag
    - nl::Weave::ExchangeContext*::SetAutoRequestAck
    - WeaveLogDetail
    - func
    linkageType: ''
    returnType: void
    signature: "SubscriptionEngine::UnsolicitedMessageHandler(nl::Weave::ExchangeContext
      * aEC, const nl::Inet::IPPacketInfo * aPktInfo,\n                                                   const
      nl::Weave::WeaveMessageInfo * aMsgInfo, uint32_t aProfileId,\n                                                   uint8_t
      aMsgType, PacketBuffer * aPayload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:493,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:496,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:498,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:499,1
    - Dst: nl::Weave::ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:501,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:505,1
    - Dst: nl::Weave::ExchangeContext*::Abort
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 6
    argNames:
    - aEC
    - aPktInfo
    - aMsgInfo
    - aProfileId
    - aMsgType
    - aPayload
    argTypes:
    - nl::Weave::ExchangeContext*
    - nl::Inet::IPPacketInfo*
    - nl::Weave::WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 512
      start: 487
    functionDepth: 3
    functionLinenumber: 487
    functionLinenumberEnd: 512
    functionName: nl::Weave::Profiles::SubscriptionEngine::OnUnknownMsgType
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::ExchangeContext*::Abort
    - nl::Weave::Profiles::SubscriptionEngine::SendStatusReport
    - nl::Weave::ExchangeContext*::Close
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveLogFunctError
    linkageType: ''
    returnType: void
    signature: "SubscriptionEngine::OnUnknownMsgType(nl::Weave::ExchangeContext *
      aEC, const nl::Inet::IPPacketInfo * aPktInfo,\n                                          const
      nl::Weave::WeaveMessageInfo * aMsgInfo, uint32_t aProfileId, uint8_t aMsgType,\n
      \                                         PacketBuffer * aPayload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SubscriptionEngine *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:519,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:526,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:528,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:529,1
    - Dst: NotificationRequest::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:531,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:532,1
    - Dst: NotificationRequest::Parser::GetSubscriptionID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:535,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:536,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:538,1
    - Dst: mBinding::IsAuthenticMessageFromPeer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:546,1
    - Dst: NotificationRequestHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:549,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:552,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:557,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:559,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:560,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:563,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:567,1
    - Dst: nl::Weave::ExchangeContext*::Abort
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:573,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 6
    argNames:
    - aEC
    - aPktInfo
    - aMsgInfo
    - aProfileId
    - aMsgType
    - aPayload
    argTypes:
    - nl::Weave::ExchangeContext*
    - nl::Inet::IPPacketInfo*
    - nl::Weave::WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 576
      start: 514
    functionDepth: 3
    functionLinenumber: 514
    functionLinenumberEnd: 576
    functionName: nl::Weave::Profiles::SubscriptionEngine::OnNotificationRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - NotificationRequestHandler
    - mBinding::IsAuthenticMessageFromPeer
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::ExchangeContext*::Abort
    - ExitNow
    - nl::Weave::Profiles::SubscriptionEngine::SendStatusReport
    - NotificationRequest::Parser::Init
    - WeaveLogDetail
    - SuccessOrExit
    - NotificationRequest::Parser::GetSubscriptionID
    - reinterpret_cast<SubscriptionEngine *>
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Init
    - WEAVE_FAULT_INJECT
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: void
    signature: "SubscriptionEngine::OnNotificationRequest(nl::Weave::ExchangeContext
      * aEC, const nl::Inet::IPPacketInfo * aPktInfo,\n                                               const
      nl::Weave::WeaveMessageInfo * aMsgInfo, uint32_t aProfileId, uint8_t aMsgType,\n
      \                                              PacketBuffer * aPayload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:590,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:592,1
    - Dst: DataElement::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:599,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:600,1
    - Dst: DataElement::Parser::GetReaderOnPath
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:602,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:603,1
    - Dst: DataElement::Parser::GetPartialChangeFlag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:606,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:607,1
    - Dst: TraitCatalogBase<TraitDataSink>*::AddressToHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:616,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:626,1
    - Dst: TraitCatalogBase<TraitDataSink>*::Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:628,1
    - Dst: TraitDataSink*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:636,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:645,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:649,1
    - Dst: DataElementAccessCheck
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:654,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:658,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:662,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:672,1
    - Dst: TraitDataSink*::StoreDataElement
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:689,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:690,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 5
    argNames:
    - ' aReader'
    - aCatalog
    - ' aOutIsPartialChange'
    - ' aOutTraitDataHandle'
    - ' acDelegate'
    argTypes:
    - nl::Weave::TLV::TLVReader
    - TraitCatalogBase<TraitDataSink>*
    - bool
    - TraitDataHandle
    - IDataElementAccessControlDelegate
    constantsTouched: []
    func_position:
      end: 707
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 707
    functionName: nl::Weave::Profiles::SubscriptionEngine::ProcessDataList
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - TraitCatalogBase<TraitDataSink>*::AddressToHandle
    - TraitDataSink*::StoreDataElement
    - TraitDataSink*::GetSchemaEngine
    - TraitCatalogBase<TraitDataSink>*::Locate
    - DataElement::Parser::GetPartialChangeFlag
    - VerifyOrExit
    - DataElement::Parser::GetReaderOnPath
    - DataElement::Parser::Init
    - WeaveLogDetail
    - SuccessOrExit
    - DataElementAccessCheck
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscriptionEngine::ProcessDataList(nl::Weave::TLV::TLVReader & aReader,\n
      \                                               const TraitCatalogBase<TraitDataSink>
      * aCatalog, bool & aOutIsPartialChange,\n                                                TraitDataHandle
      & aOutTraitDataHandle,\n                                                IDataElementAccessControlDelegate
      & acDelegate)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - apCatalog
    argTypes:
    - TraitCatalogBase<TraitDataSink>*
    constantsTouched: []
    func_position:
      end: 716
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 716
    functionName: nl::Weave::Profiles::SubscriptionEngine::RegisterForSubscriptionlessNotifications
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionEngine::RegisterForSubscriptionlessNotifications(const
      TraitCatalogBase<TraitDataSink> * const apCatalog)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SubscriptionEngine *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:729,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:734,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:735,1
    - Dst: SubscriptionEngine*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:743,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:748,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:749,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:752,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:754,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:755,1
    - Dst: NotificationRequest::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:757,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:758,1
    - Dst: NotificationRequest::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:762,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:763,1
    - Dst: NotificationRequest::Parser::GetDataList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:769,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:779,1
    - Dst: DataList::Parser::GetReader
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:782,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::ProcessDataList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:792,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:793,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:799,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:807,1
    - Dst: nl::Weave::ExchangeContext*::Abort
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:813,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:819,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:820,1
    - Dst: SubscriptionEngine*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:825,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 55
    argCount: 6
    argNames:
    - aEC
    - aPktInfo
    - aMsgInfo
    - aProfileId
    - aMsgType
    - aPayload
    argTypes:
    - nl::Weave::ExchangeContext*
    - nl::Inet::IPPacketInfo*
    - nl::Weave::WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 827
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 827
    functionName: nl::Weave::Profiles::SubscriptionEngine::OnSubscriptionlessNotification
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::ExchangeContext*::Abort
    - OutEventParam::Clear
    - InEventParam::Clear
    - ExitNow
    - NotificationRequest::Parser::Init
    - NotificationRequest::Parser::CheckSchemaValidity
    - SuccessOrExit
    - nl::Weave::Profiles::SubscriptionEngine::ProcessDataList
    - WeaveLogDetail
    - DataList::Parser::GetReader
    - SubscriptionEngine*::mEventCallback
    - reinterpret_cast<SubscriptionEngine *>
    - NotificationRequest::Parser::GetDataList
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: void
    signature: "SubscriptionEngine::OnSubscriptionlessNotification(nl::Weave::ExchangeContext
      * aEC, const nl::Inet::IPPacketInfo * aPktInfo,\n                                                        const
      nl::Weave::WeaveMessageInfo * aMsgInfo, uint32_t aProfileId,\n                                                        uint8_t
      aMsgType, PacketBuffer * aPayload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:836,1
    - Dst: Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:838,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:839,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:841,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:842,1
    - Dst: TraitDataSink*::AcceptsSubscriptionlessNotifications
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:844,1
    - Dst: SubscriptionEngine*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:861,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 2
    argNames:
    - ' aTraitPath'
    - ' aCatalog'
    argTypes:
    - TraitPath
    - TraitCatalogBase<TraitDataSink>
    constantsTouched: []
    func_position:
      end: 878
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 878
    functionName: "SubscriptionEngine::SubscriptionlessNotifyDataElementAccessControlDelegate::DataElementAccessCheck(\n
      \   const TraitPath & aTraitPath, const TraitCatalogBase<TraitDataSink> & aCatalog)"
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionEngine*::mEventCallback
    - Locate
    - OutEventParam::Clear
    - InEventParam::Clear
    - SubscriptionEngine::GetInstance
    - SuccessOrExit
    - TraitDataSink*::AcceptsSubscriptionlessNotifications
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscriptionEngine::SubscriptionlessNotifyDataElementAccessControlDelegate::DataElementAccessCheck(\n
      \   const TraitPath & aTraitPath, const TraitCatalogBase<TraitDataSink> & aCatalog)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mBinding::GetPeerNodeId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:890,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - aPeerNodeId
    - aSubscriptionId
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 899
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 899
    functionName: nl::Weave::Profiles::SubscriptionEngine::FindClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - mBinding::GetPeerNodeId
    linkageType: ''
    returnType: SubscriptionClient
    signature: '* SubscriptionEngine::FindClient(const uint64_t aPeerNodeId, const
      uint64_t aSubscriptionId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mBinding::GetPeerNodeId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:910,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - aPeerNodeId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 919
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 919
    functionName: nl::Weave::Profiles::SubscriptionEngine::FindEstablishedIdleClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 1
    functionsReached:
    - mBinding::GetPeerNodeId
    linkageType: ''
    returnType: SubscriptionClient
    signature: '* SubscriptionEngine::FindEstablishedIdleClient(const uint64_t aPeerNodeId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::FindClient
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:926,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:938,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetClientId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:938,1
    - Dst: SubscriptionClient*::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:938,1
    - Dst: SubscriptionClient*::IndicateActivity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:941,1
    - Dst: SubscriptionClient*::RefreshTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:944,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:949,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetClientId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:949,1
    - Dst: SubscriptionClient*::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:950,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:956,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetClientId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:956,1
    - Dst: SubscriptionClient*::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:957,1
    - Dst: SubscriptionClient*::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:959,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - aPeerNodeId
    - aSubscriptionId
    - aKill
    argTypes:
    - uint64_t
    - uint64_t
    - bool
    constantsTouched: []
    func_position:
      end: 964
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 964
    functionName: nl::Weave::Profiles::SubscriptionEngine::UpdateClientLiveness
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionEngine::FindClient
    - SubscriptionClient*::GetStateStr
    - SubscriptionClient*::TerminateSubscription
    - nl::Weave::Profiles::SubscriptionEngine::GetClientId
    - SubscriptionClient*::IndicateActivity
    - WeaveLogDetail
    - SubscriptionClient*::RefreshTimer
    linkageType: ''
    returnType: bool
    signature: SubscriptionEngine::UpdateClientLiveness(const uint64_t aPeerNodeId,
      const uint64_t aSubscriptionId, const bool aKill)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apHandler
    argTypes:
    - SubscriptionHandler*
    constantsTouched: []
    func_position:
      end: 973
      start: 970
    functionDepth: 0
    functionLinenumber: 970
    functionLinenumberEnd: 973
    functionName: nl::Weave::Profiles::SubscriptionEngine::GetHandlerId
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    linkageType: ''
    returnType: uint16_t
    signature: SubscriptionEngine::GetHandlerId(const SubscriptionHandler * const
      apHandler) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apHandle
    argTypes:
    - Command*
    constantsTouched: []
    func_position:
      end: 978
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 978
    functionName: nl::Weave::Profiles::SubscriptionEngine::GetCommandObjId
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    linkageType: ''
    returnType: uint16_t
    signature: SubscriptionEngine::GetCommandObjId(const Command * const apHandle)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::FindHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:984,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:995,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetHandlerId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:995,1
    - Dst: SubscriptionHandler*::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:996,1
    - Dst: SubscriptionHandler*::RefreshTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:999,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1004,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetHandlerId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1004,1
    - Dst: SubscriptionHandler*::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1005,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1011,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetHandlerId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1011,1
    - Dst: SubscriptionHandler*::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1012,1
    - Dst: SubscriptionHandler*::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1014,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - aPeerNodeId
    - aSubscriptionId
    - aKill
    argTypes:
    - uint64_t
    - uint64_t
    - bool
    constantsTouched: []
    func_position:
      end: 1019
      start: 980
    functionDepth: 1
    functionLinenumber: 980
    functionLinenumberEnd: 1019
    functionName: nl::Weave::Profiles::SubscriptionEngine::UpdateHandlerLiveness
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionHandler*::GetStateStr
    - nl::Weave::Profiles::SubscriptionEngine::FindHandler
    - SubscriptionHandler*::TerminateSubscription
    - nl::Weave::Profiles::SubscriptionEngine::GetHandlerId
    - SubscriptionHandler*::RefreshTimer
    - WeaveLogDetail
    linkageType: ''
    returnType: bool
    signature: SubscriptionEngine::UpdateHandlerLiveness(const uint64_t aPeerNodeId,
      const uint64_t aSubscriptionId, const bool aKill)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mBinding::GetPeerNodeId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1030,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - aPeerNodeId
    - aSubscriptionId
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1039
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1039
    functionName: nl::Weave::Profiles::SubscriptionEngine::FindHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 1
    functionsReached:
    - mBinding::GetPeerNodeId
    linkageType: ''
    returnType: SubscriptionHandler
    signature: '* SubscriptionEngine::FindHandler(const uint64_t aPeerNodeId, const
      uint64_t aSubscriptionId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPeerNodeId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1050,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - aPeerNodeId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1059
      start: 1042
    functionDepth: 0
    functionLinenumber: 1042
    functionLinenumberEnd: 1059
    functionName: nl::Weave::Profiles::SubscriptionEngine::FindEstablishedIdleHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 1
    functionsReached:
    - GetPeerNodeId
    linkageType: ''
    returnType: SubscriptionHandler
    signature: '* SubscriptionEngine::FindEstablishedIdleHandler(const uint64_t aPeerNodeId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' outLogPosition'
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 1081
      start: 1062
    functionDepth: 0
    functionLinenumber: 1062
    functionLinenumberEnd: 1081
    functionName: nl::Weave::Profiles::SubscriptionEngine::GetMinEventLogPosition
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionEngine::GetMinEventLogPosition(size_t & outLogPosition)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1094,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1095,1
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1099,1
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1100,1
    - Dst: SYSTEM_STATS_DECREMENT_BY_N
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1109,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1113,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1114,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1117,1
    - Dst: static_cast<unsigned int>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1118,1
    - Dst: memmove
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1120,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - aHandlerToBeReclaimed
    argTypes:
    - SubscriptionHandler*
    constantsTouched: []
    func_position:
      end: 1135
      start: 1083
    functionDepth: 0
    functionLinenumber: 1083
    functionLinenumberEnd: 1135
    functionName: nl::Weave::Profiles::SubscriptionEngine::ReclaimTraitInfo
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogIfFalse
    - memmove
    - ExitNow
    - static_cast<unsigned int>
    - WeaveLogDetail
    - SYSTEM_STATS_DECREMENT_BY_N
    linkageType: ''
    returnType: void
    signature: SubscriptionEngine::ReclaimTraitInfo(SubscriptionHandler * const aHandlerToBeReclaimed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::DisablePublisher
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - aLock
    - aPublisherCatalog
    argTypes:
    - IWeavePublisherLock*
    - TraitCatalogBase<TraitDataSource>*
    constantsTouched: []
    func_position:
      end: 1153
      start: 1137
    functionDepth: 1
    functionLinenumber: 1137
    functionLinenumberEnd: 1153
    functionName: nl::Weave::Profiles::SubscriptionEngine::EnablePublisher
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionEngine::DisablePublisher
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscriptionEngine::EnablePublisher(IWeavePublisherLock * aLock,\n
      \                                               TraitCatalogBase<TraitDataSource>
      * const aPublisherCatalog)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::Lock
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1163
    functionName: nl::Weave::Profiles::SubscriptionEngine::Lock
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SubscriptionEngine::Lock
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionEngine::Lock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::Unlock
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1165
    functionDepth: 1
    functionLinenumber: 1165
    functionLinenumberEnd: 1173
    functionName: nl::Weave::Profiles::SubscriptionEngine::Unlock
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SubscriptionEngine::Unlock
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionEngine::Unlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AbortSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1175
    functionDepth: 0
    functionLinenumber: 1175
    functionLinenumberEnd: 1195
    functionName: nl::Weave::Profiles::SubscriptionEngine::DisablePublisher
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 2
    functionsReached:
    - AbortSubscription
    linkageType: ''
    returnType: void
    signature: SubscriptionEngine::DisablePublisher()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1203,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1203,1
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1209,1
    - Dst: SYSTEM_STATS_INCREMENT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1213,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - subHandler
    argTypes:
    - SubscriptionHandler**
    constantsTouched: []
    func_position:
      end: 1222
      start: 1197
    functionDepth: 0
    functionLinenumber: 1197
    functionLinenumberEnd: 1222
    functionName: nl::Weave::Profiles::SubscriptionEngine::NewSubscriptionHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogIfFalse
    - SYSTEM_STATS_INCREMENT
    - WEAVE_FAULT_INJECT
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionEngine::NewSubscriptionHandler(SubscriptionHandler ** subHandler)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SubscriptionEngine *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1229,1
    - Dst: SubscriptionEngine*::mExchangeMgr::NewBinding
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1240,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1244,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1245,1
    - Dst: Binding*::BeginConfiguration
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1251,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1252,1
    - Dst: SubscriptionEngine*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1269,1
    - Dst: Binding*::AdjustResponseTimeout
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1274,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1275,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1279,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1285,1
    - Dst: TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1301,1
    - Dst: nl::Weave::Platform::Security::GetSecureRandomData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1307,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1308,1
    - Dst: SubscriptionEngine*::NewSubscriptionHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1310,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1317,1
    - Dst: WEAVE_FAULT_INJECT_WITH_ARGS
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1325,1
    - Dst: if
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1328,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1328,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1332,1
    - Dst: SubscriptionEngine*::GetHandlerId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1332,1
    - Dst: SubscriptionHandler*::SetMaxNotificationSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1334,1
    - Dst: SubscriptionHandler*::InitWithIncomingRequest
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1336,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1343,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1347,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1353,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1354,1
    - Dst: nl::Weave::ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1356,1
    - Dst: Binding*::Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1362,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 72
    argCount: 6
    argNames:
    - aEC
    - aPktInfo
    - aMsgInfo
    - aProfileId
    - aMsgType
    - aPayload
    argTypes:
    - nl::Weave::ExchangeContext*
    - nl::Inet::IPPacketInfo*
    - nl::Weave::WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1364
      start: 1224
    functionDepth: 3
    functionLinenumber: 1224
    functionLinenumberEnd: 1364
    functionName: nl::Weave::Profiles::SubscriptionEngine::OnSubscribeRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - TerminateSubscription
    - SubscriptionEngine*::NewSubscriptionHandler
    - SubscriptionHandler*::InitWithIncomingRequest
    - static_cast<uint32_t>
    - SubscriptionHandler*::SetMaxNotificationSize
    - if
    - WeaveLogFunctError
    - Binding*::Release
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    - Binding*::BeginConfiguration
    - nl::Weave::Profiles::SubscriptionEngine::SendStatusReport
    - nl::Weave::ExchangeContext*::Close
    - WeaveLogDetail
    - SubscriptionEngine*::mEventCallback
    - SubscriptionEngine*::GetHandlerId
    - ExitNow
    - reinterpret_cast<SubscriptionEngine *>
    - nl::Weave::Platform::Security::GetSecureRandomData
    - SubscriptionEngine*::mExchangeMgr::NewBinding
    - WEAVE_FAULT_INJECT_WITH_ARGS
    - Binding*::AdjustResponseTimeout
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: "SubscriptionEngine::OnSubscribeRequest(nl::Weave::ExchangeContext
      * aEC, const nl::Inet::IPPacketInfo * aPktInfo,\n                                            const
      nl::Weave::WeaveMessageInfo * aMsgInfo, uint32_t aProfileId, uint8_t aMsgType,\n
      \                                           PacketBuffer * aPayload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SubscriptionEngine *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1371,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1380,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1382,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1383,1
    - Dst: SubscribeConfirmRequest::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1385,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1386,1
    - Dst: SubscribeConfirmRequest::Parser::GetSubscriptionID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1388,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1389,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1393,1
    - Dst: SubscriptionEngine*::UpdateClientLiveness
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1402,1
    - Dst: SubscriptionEngine*::UpdateHandlerLiveness
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1409,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1431,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1432,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1436,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1440,1
    - Dst: nl::Weave::ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1444,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 6
    argNames:
    - aEC
    - aPktInfo
    - aMsgInfo
    - aProfileId
    - aMsgType
    - aPayload
    argTypes:
    - nl::Weave::ExchangeContext*
    - nl::Inet::IPPacketInfo*
    - nl::Weave::WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1445
      start: 1366
    functionDepth: 3
    functionLinenumber: 1366
    functionLinenumberEnd: 1445
    functionName: nl::Weave::Profiles::SubscriptionEngine::OnSubscribeConfirmRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - SubscribeConfirmRequest::Parser::Init
    - nl::Weave::System::PacketBuffer::Free
    - SubscriptionEngine*::UpdateHandlerLiveness
    - nl::Weave::Profiles::SubscriptionEngine::SendStatusReport
    - nl::Weave::ExchangeContext*::Close
    - SubscribeConfirmRequest::Parser::GetSubscriptionID
    - SuccessOrExit
    - SubscriptionEngine*::UpdateClientLiveness
    - reinterpret_cast<SubscriptionEngine *>
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: void
    signature: "SubscriptionEngine::OnSubscribeConfirmRequest(nl::Weave::ExchangeContext
      * aEC, const nl::Inet::IPPacketInfo * aPktInfo,\n                                                   const
      nl::Weave::WeaveMessageInfo * aMsgInfo, uint32_t aProfileId,\n                                                   uint8_t
      aMsgType, PacketBuffer * aPayload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SubscriptionEngine *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1453,1
    - Dst: IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1460,1
    - Dst: SYSTEM_STATS_INCREMENT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1462,1
    - Dst: Command*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1464,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1469,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1476,1
    - Dst: Command*::SetIsOneWay
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1483,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1492,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1494,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1495,1
    - Dst: CustomCommand::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1503,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1504,1
    - Dst: CustomCommand::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1507,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1508,1
    - Dst: CustomCommand::Parser::GetReaderOnPath
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1511,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1512,1
    - Dst: SubscriptionEngine*::mPublisherCatalog::AddressToHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1514,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1515,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1517,1
    - Dst: Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1517,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1518,1
    - Dst: TraitDataSource*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1520,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1522,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1527,1
    - Dst: CustomCommand::Parser::GetCommandType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1530,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1531,1
    - Dst: CustomCommand::Parser::GetInitiationTimeMicroSecond
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1533,1
    - Dst: Command*::SetInitiationTimeValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1536,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1544,1
    - Dst: CustomCommand::Parser::GetActionTimeMicroSecond
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1547,1
    - Dst: Command*::SetActionTimeValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1550,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1558,1
    - Dst: CustomCommand::Parser::GetExpiryTimeMicroSecond
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1561,1
    - Dst: Command*::SetExpiryTimeValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1564,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1572,1
    - Dst: CustomCommand::Parser::GetMustBeVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1575,1
    - Dst: Command*::SetMustBeVersionValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1578,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1586,1
    - Dst: CustomCommand::Parser::GetReaderOnArgument
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1589,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1590,1
    - Dst: Command*::IsExpiryTimeValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1594,1
    - Dst: nl::Weave::System::Layer::GetClock_RealTime
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1597,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1601,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1606,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1611,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1613,1
    - Dst: Command*::IsMustBeVersionValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1618,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1624,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1627,1
    - Dst: TraitDataSource*::OnCustomCommand
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1635,1
    - Dst: Command*::IsExpiryTimeValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1635,1
    - Dst: Command*::IsMustBeVersionValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1636,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1644,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1648,1
    - Dst: Command*::SendError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1655,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1656,1
    - Dst: nl::Weave::ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1661,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 121
    argCount: 6
    argNames:
    - aEC
    - aPktInfo
    - aMsgInfo
    - aProfileId
    - aMsgType
    - aPayload
    argTypes:
    - nl::Weave::ExchangeContext*
    - nl::Inet::IPPacketInfo*
    - nl::Weave::WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1664
      start: 1448
    functionDepth: 2
    functionLinenumber: 1448
    functionLinenumberEnd: 1664
    functionName: nl::Weave::Profiles::SubscriptionEngine::OnCustomCommand
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - SYSTEM_STATS_INCREMENT
    - nl::Weave::System::Layer::GetClock_RealTime
    - CustomCommand::Parser::GetCommandType
    - IsFree
    - Command*::IsMustBeVersionValid
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    - CustomCommand::Parser::GetExpiryTimeMicroSecond
    - nl::Weave::System::PacketBuffer::Free
    - Locate
    - Command*::SendError
    - VerifyOrExit
    - SubscriptionEngine::GetInstance
    - nl::Weave::ExchangeContext*::Close
    - WeaveLogDetail
    - CustomCommand::Parser::GetReaderOnPath
    - Command*::SetExpiryTimeValid
    - Command*::SetActionTimeValid
    - Command*::SetIsOneWay
    - TraitDataSource*::GetSchemaEngine
    - CustomCommand::Parser::GetActionTimeMicroSecond
    - ExitNow
    - CustomCommand::Parser::Init
    - Command*::Init
    - Command*::IsExpiryTimeValid
    - reinterpret_cast<SubscriptionEngine *>
    - TraitDataSource*::OnCustomCommand
    - CustomCommand::Parser::GetMustBeVersion
    - CustomCommand::Parser::GetInitiationTimeMicroSecond
    - SubscriptionEngine*::mPublisherCatalog::AddressToHandle
    - Command*::SetInitiationTimeValid
    - CustomCommand::Parser::GetReaderOnArgument
    - CustomCommand::Parser::CheckSchemaValidity
    - SuccessOrExit
    - Command*::SetMustBeVersionValid
    linkageType: ''
    returnType: void
    signature: "SubscriptionEngine::OnCustomCommand(nl::Weave::ExchangeContext * aEC,
      const nl::Inet::IPPacketInfo * aPktInfo,\n                                         const
      nl::Weave::WeaveMessageInfo * aMsgInfo, uint32_t aProfileId, uint8_t aMsgType,\n
      \                                        PacketBuffer * aPayload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1677,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1678,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1684,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1685,1
    - Dst: WeaveMessageLayer::GetMaxWeavePayloadSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1687,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1689,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - ' buf'
    - desiredSize
    - minSize
    - ' outMaxPayloadSize'
    argTypes:
    - PacketBuffer*
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1701
      start: 1668
    functionDepth: 2
    functionLinenumber: 1668
    functionLinenumberEnd: 1701
    functionName: nl::Weave::Profiles::SubscriptionEngine::AllocateRightSizedBuffer
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - WeaveMessageLayer::GetMaxWeavePayloadSize
    - nl::Weave::System::PacketBuffer::Free
    - static_cast<uint32_t>
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - nl::Weave::min
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscriptionEngine::AllocateRightSizedBuffer(PacketBuffer *& buf,
      const uint32_t desiredSize, const uint32_t minSize,\n                                                         uint32_t
      & outMaxPayloadSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1712,1
    - Dst: Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1714,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - ' aReader'
    - apStatusDataHandleList
    - ' aNumDataElements'
    - apBufEndAddr
    argTypes:
    - Weave::TLV::TLVReader
    - StatusDataHandleElement*
    - uint32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1731
      start: 1706
    functionDepth: 0
    functionLinenumber: 1706
    functionLinenumberEnd: 1731
    functionName: nl::Weave::Profiles::SubscriptionEngine::InitializeStatusDataHandleList
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - Weave::TLV::TLVReader::Next
    - Weave::TLV::TLVReader::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscriptionEngine::InitializeStatusDataHandleList(Weave::TLV::TLVReader
      & aReader,\n                                                               StatusDataHandleElement
      * apStatusDataHandleList,\n                                                               uint32_t
      & aNumDataElements, uint8_t * apBufEndAddr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1742,1
    - Dst: static_cast<UpdateResponseWriterContext *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1743,1
    - Dst: UpdateResponse::Builder::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1745,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1746,1
    - Dst: static_cast<struct StatusDataHandleElement *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1748,1
    - Dst: UpdateResponse::Builder::CreateVersionListBuilder
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1750,1
    - Dst: AddNull
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1756,1
    - Dst: AddNull
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1761,1
    - Dst: UpdateResponseWriterContext*::mpCatalog::Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1763,1
    - Dst: AddVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1765,1
    - Dst: TraitDataSource*::GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1765,1
    - Dst: AddNull
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1769,1
    - Dst: EndOfVersionList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1773,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1774,1
    - Dst: GetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1774,1
    - Dst: static_cast<struct StatusDataHandleElement *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1777,1
    - Dst: UpdateResponse::Builder::CreateStatusListBuilder
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1779,1
    - Dst: AddStatus
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1782,1
    - Dst: EndOfStatusList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1785,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1786,1
    - Dst: GetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1786,1
    - Dst: UpdateResponse::Builder::EndOfResponse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1789,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1790,1
    - Dst: UpdateResponse::Builder::GetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1790,1
    - Dst: Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1792,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1793,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1795,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 2
    argNames:
    - ' aWriter'
    - apContext
    argTypes:
    - nl::Weave::TLV::TLVWriter
    - void*
    constantsTouched: []
    func_position:
      end: 1802
      start: 1733
    functionDepth: 0
    functionLinenumber: 1733
    functionLinenumberEnd: 1802
    functionName: nl::Weave::Profiles::SubscriptionEngine::ConstructStatusListVersionList
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - EndOfVersionList
    - GetError
    - static_cast<struct StatusDataHandleElement *>
    - UpdateResponse::Builder::EndOfResponse
    - UpdateResponse::Builder::Init
    - AddVersion
    - VerifyOrExit
    - UpdateResponse::Builder::CreateStatusListBuilder
    - WeaveLogDetail
    - Finalize
    - static_cast<UpdateResponseWriterContext *>
    - EndOfStatusList
    - AddStatus
    - UpdateResponse::Builder::CreateVersionListBuilder
    - UpdateResponse::Builder::GetError
    - AddNull
    - SuccessOrExit
    - UpdateResponseWriterContext*::mpCatalog::Locate
    - TraitDataSource*::GetVersion
    linkageType: ''
    returnType: void
    signature: SubscriptionEngine::ConstructStatusListVersionList(nl::Weave::TLV::TLVWriter
      & aWriter, void * apContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - apStatusDataHandleList
    - aTraitDataHandle
    - ' err'
    - aCurrentIndex
    argTypes:
    - StatusDataHandleElement*
    - TraitDataHandle
    - WEAVE_ERROR
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1848
      start: 1804
    functionDepth: 0
    functionLinenumber: 1804
    functionLinenumberEnd: 1848
    functionName: nl::Weave::Profiles::SubscriptionEngine::UpdateStatusDataHandleElement
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SubscriptionEngine::UpdateStatusDataHandleElement(StatusDataHandleElement
      * apStatusDataHandleList,\n                                                       TraitDataHandle
      aTraitDataHandle, WEAVE_ERROR & err, uint32_t aCurrentIndex)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - apStatusDataHandleList
    - aTraitDataHandle
    - aCurrentIndex
    argTypes:
    - StatusDataHandleElement*
    - TraitDataHandle
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1868
      start: 1853
    functionDepth: 0
    functionLinenumber: 1853
    functionLinenumberEnd: 1868
    functionName: nl::Weave::Profiles::SubscriptionEngine::IsStartingPath
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "SubscriptionEngine::IsStartingPath(StatusDataHandleElement * apStatusDataHandleList,
      TraitDataHandle aTraitDataHandle,\n                                        uint32_t
      aCurrentIndex)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitCatalogBase<TraitDataSource>*::Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1887,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1888,1
    - Dst: static_cast<TraitUpdatableDataSource *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1890,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::IsStartingPath
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1892,1
    - Dst: TraitUpdatableDataSource*::IncrementVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1894,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1895,1
    - Dst: TraitUpdatableDataSource*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1896,1
    - Dst: TraitUpdatableDataSource*::GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1896,1
    - Dst: TraitUpdatableDataSource*::OnEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1898,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1902,1
    - Dst: TraitUpdatableDataSource*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1903,1
    - Dst: TraitUpdatableDataSource*::GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1903,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - apStatusDataHandleList
    - apCatalog
    - aNumDataElements
    argTypes:
    - StatusDataHandleElement*
    - TraitCatalogBase<TraitDataSource>*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1910
      start: 1874
    functionDepth: 1
    functionLinenumber: 1874
    functionLinenumberEnd: 1910
    functionName: nl::Weave::Profiles::SubscriptionEngine::UpdateTraitVersions
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - TraitUpdatableDataSource*::IncrementVersion
    - static_cast<TraitUpdatableDataSource *>
    - TraitUpdatableDataSource*::GetSchemaEngine
    - WeaveLogDetail
    - TraitUpdatableDataSource*::GetVersion
    - SuccessOrExit
    - TraitUpdatableDataSource*::OnEvent
    - TraitCatalogBase<TraitDataSource>*::Locate
    - nl::Weave::Profiles::SubscriptionEngine::IsStartingPath
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscriptionEngine::UpdateTraitVersions(StatusDataHandleElement *
      apStatusDataHandleList,\n                                                    const
      TraitCatalogBase<TraitDataSource> * apCatalog, uint32_t aNumDataElements)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1920,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1921,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1923,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1924,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1925,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1926,1
    - Dst: Weave::ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1928,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1930,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1935,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - apEC
    argTypes:
    - Weave::ExchangeContext*
    constantsTouched: []
    func_position:
      end: 1939
      start: 1915
    functionDepth: 2
    functionLinenumber: 1915
    functionLinenumberEnd: 1939
    functionName: nl::Weave::Profiles::SubscriptionEngine::SendFaultyUpdateResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - Weave::ExchangeContext*::SendMessage
    - PacketBuffer*::Start
    - SuccessOrExit
    - nl::Weave::Encoding::LittleEndian::Write16
    - nl::Weave::Encoding::LittleEndian::Write32
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionEngine::SendFaultyUpdateResponse(Weave::ExchangeContext
      * apEC)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1952,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1961,1
    - Dst: WEAVE_WDM_ALIGNED_TYPE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1964,1
    - Dst: memmove
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1966,1
    - Dst: ReferencedTLVData::init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1973,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1974,1
    - Dst: StatusReport::init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1987,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1988,1
    - Dst: StatusReport::pack
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1990,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1991,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1993,1
    - Dst: Weave::ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:1995,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2001,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 6
    argNames:
    - apEC
    - aNumDataElements
    - apCatalog
    - apBuf
    - existFailure
    - aMaxPayloadSize
    argTypes:
    - Weave::ExchangeContext*
    - uint32_t
    - TraitCatalogBase<TraitDataSource>*
    - PacketBuffer*
    - bool
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2005
      start: 1945
    functionDepth: 2
    functionLinenumber: 1945
    functionLinenumberEnd: 2005
    functionName: nl::Weave::Profiles::SubscriptionEngine::SendUpdateResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - ReferencedTLVData::ReferencedTLVData
    - WEAVE_WDM_ALIGNED_TYPE
    - memmove
    - nl::Weave::System::PacketBuffer::Free
    - Weave::ExchangeContext*::SendMessage
    - ReferencedTLVData::init
    - WeaveLogDetail
    - StatusReport::init
    - SuccessOrExit
    - StatusReport::pack
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscriptionEngine::SendUpdateResponse(Weave::ExchangeContext * apEC,
      uint32_t aNumDataElements,\n                                                   const
      TraitCatalogBase<TraitDataSource> * apCatalog, PacketBuffer * apBuf,\n                                                   bool
      existFailure, uint32_t aMaxPayloadSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2035,1
    - Dst: DataElement::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2037,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2038,1
    - Dst: DataElement::Parser::GetReaderOnPath
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2039,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2040,1
    - Dst: DataElement::Parser::GetPartialChangeFlag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2044,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2045,1
    - Dst: TraitCatalogBase<TraitDataSource>*::AddressToHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2047,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2048,1
    - Dst: TraitCatalogBase<TraitDataSource>*::Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2050,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2051,1
    - Dst: TraitDataSource*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2052,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2056,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2060,1
    - Dst: DataElementAccessCheck
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2065,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2066,1
    - Dst: static_cast<TraitUpdatableDataSource *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2068,1
    - Dst: TraitUpdatableDataSource*::Lock
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2069,1
    - Dst: TraitUpdatableDataSource*::GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2072,1
    - Dst: DataElement::Parser::GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2074,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2080,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2084,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2085,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2089,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2091,1
    - Dst: TraitUpdatableDataSource*::StoreDataElement
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2093,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2094,1
    - Dst: TraitUpdatableDataSource*::SetDirty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2096,1
    - Dst: TraitUpdatableDataSource*::Unlock
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2098,1
    - Dst: TraitUpdatableDataSource*::Unlock
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2104,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2109,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::UpdateStatusDataHandleElement
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2115,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 58
    argCount: 9
    argNames:
    - ' aReader'
    - ' aHandle'
    - ' aPathHandle'
    - apCatalog
    - ' acDelegate'
    - aConditionalLoop
    - aCurrentIndex
    - ' aExistFailure'
    - apStatusDataHandleList
    argTypes:
    - Weave::TLV::TLVReader
    - TraitDataHandle
    - PropertyPathHandle
    - TraitCatalogBase<TraitDataSource>*
    - IUpdateRequestDataElementAccessControlDelegate
    - bool
    - uint32_t
    - bool
    - StatusDataHandleElement*
    constantsTouched: []
    func_position:
      end: 2119
      start: 2013
    functionDepth: 1
    functionLinenumber: 2013
    functionLinenumberEnd: 2119
    functionName: nl::Weave::Profiles::SubscriptionEngine::ProcessUpdateRequestDataElement
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - TraitUpdatableDataSource*::Unlock
    - TraitCatalogBase<TraitDataSource>*::Locate
    - VerifyOrExit
    - DataElement::Parser::Init
    - WeaveLogDetail
    - nl::Weave::Profiles::SubscriptionEngine::UpdateStatusDataHandleElement
    - TraitUpdatableDataSource*::StoreDataElement
    - TraitDataSource*::GetSchemaEngine
    - DataElement::Parser::GetVersion
    - DataElement::Parser::GetPartialChangeFlag
    - Weave::TLV::TLVReader::Init
    - TraitUpdatableDataSource*::Lock
    - TraitUpdatableDataSource*::SetDirty
    - DataElement::Parser::GetReaderOnPath
    - static_cast<TraitUpdatableDataSource *>
    - TraitCatalogBase<TraitDataSource>*::AddressToHandle
    - TraitUpdatableDataSource*::GetVersion
    - SuccessOrExit
    - DataElementAccessCheck
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscriptionEngine::ProcessUpdateRequestDataElement(Weave::TLV::TLVReader
      & aReader, TraitDataHandle & aHandle,\n                                                                PropertyPathHandle
      & aPathHandle,\n                                                                const
      TraitCatalogBase<TraitDataSource> * apCatalog,\n                                                                IUpdateRequestDataElementAccessControlDelegate
      & acDelegate,\n                                                                bool
      aConditionalLoop, uint32_t aCurrentIndex, bool & aExistFailure,\n                                                                StatusDataHandleElement
      * apStatusDataHandleList)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2132,1
    - Dst: Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2134,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::ProcessUpdateRequestDataElement
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2141,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 6
    argNames:
    - ' aReader'
    - apStatusDataHandleList
    - apCatalog
    - ' acDelegate'
    - ' aExistFailure'
    - aConditionalLoop
    argTypes:
    - Weave::TLV::TLVReader
    - StatusDataHandleElement*
    - TraitCatalogBase<TraitDataSource>*
    - IUpdateRequestDataElementAccessControlDelegate
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 2155
      start: 2125
    functionDepth: 2
    functionLinenumber: 2125
    functionLinenumberEnd: 2155
    functionName: nl::Weave::Profiles::SubscriptionEngine::ProcessUpdateRequestDataListWithConditionality
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - SuccessOrExit
    - nl::Weave::Profiles::SubscriptionEngine::ProcessUpdateRequestDataElement
    - Weave::TLV::TLVReader::Next
    - Weave::TLV::TLVReader::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscriptionEngine::ProcessUpdateRequestDataListWithConditionality(\n
      \   Weave::TLV::TLVReader & aReader, StatusDataHandleElement * apStatusDataHandleList,\n
      \   const TraitCatalogBase<TraitDataSource> * apCatalog, IUpdateRequestDataElementAccessControlDelegate
      & acDelegate,\n    bool & aExistFailure, bool aConditionalLoop)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::ProcessUpdateRequestDataListWithConditionality
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2170,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2171,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::ProcessUpdateRequestDataListWithConditionality
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2175,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2177,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::UpdateTraitVersions
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - ' aReader'
    - apStatusDataHandleList
    - apCatalog
    - ' acDelegate'
    - ' aExistFailure'
    - aNumDataElements
    argTypes:
    - Weave::TLV::TLVReader
    - StatusDataHandleElement*
    - TraitCatalogBase<TraitDataSource>*
    - IUpdateRequestDataElementAccessControlDelegate
    - bool
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2182
      start: 2160
    functionDepth: 3
    functionLinenumber: 2160
    functionLinenumberEnd: 2182
    functionName: nl::Weave::Profiles::SubscriptionEngine::ProcessUpdateRequestDataList
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionEngine::ProcessUpdateRequestDataListWithConditionality
    - nl::Weave::Profiles::SubscriptionEngine::UpdateTraitVersions
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscriptionEngine::ProcessUpdateRequestDataList(Weave::TLV::TLVReader
      & aReader,\n                                                             StatusDataHandleElement
      * apStatusDataHandleList,\n                                                             const
      TraitCatalogBase<TraitDataSource> * apCatalog,\n                                                             IUpdateRequestDataElementAccessControlDelegate
      & acDelegate,\n                                                             bool
      & aExistFailure, uint32_t aNumDataElements)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2199,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::AllocateRightSizedBuffer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2201,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2202,1
    - Dst: WEAVE_WDM_ALIGNED_TYPE
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2204,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2204,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2205,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::InitializeStatusDataHandleList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2206,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2207,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::ProcessUpdateRequestDataList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2209,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2210,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::SendUpdateResponse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2212,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2218,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::SendFaultyUpdateResponse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 4
    argNames:
    - apEC
    - ' aReader'
    - apCatalog
    - ' acDelegate'
    argTypes:
    - Weave::ExchangeContext*
    - Weave::TLV::TLVReader
    - TraitCatalogBase<TraitDataSource>*
    - IUpdateRequestDataElementAccessControlDelegate
    constantsTouched: []
    func_position:
      end: 2226
      start: 2188
    functionDepth: 4
    functionLinenumber: 2188
    functionLinenumberEnd: 2226
    functionName: nl::Weave::Profiles::SubscriptionEngine::ProcessUpdateRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - WEAVE_WDM_ALIGNED_TYPE
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::Profiles::SubscriptionEngine::ProcessUpdateRequestDataList
    - nl::Weave::Profiles::SubscriptionEngine::SendUpdateResponse
    - nl::Weave::Profiles::SubscriptionEngine::SendFaultyUpdateResponse
    - VerifyOrExit
    - nl::Weave::Profiles::SubscriptionEngine::AllocateRightSizedBuffer
    - nl::Weave::Profiles::SubscriptionEngine::InitializeStatusDataHandleList
    - SuccessOrExit
    - PacketBuffer*::Start
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscriptionEngine::ProcessUpdateRequest(Weave::ExchangeContext *
      apEC, Weave::TLV::TLVReader & aReader,\n                                                     const
      TraitCatalogBase<TraitDataSource> * apCatalog,\n                                                     IUpdateRequestDataElementAccessControlDelegate
      & acDelegate)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SubscriptionEngine *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2243,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2245,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2246,1
    - Dst: SubscriptionEngine*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2254,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2259,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2260,1
    - Dst: SubscriptionEngine*::mPublisherCatalog::DispatchEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2263,1
    - Dst: Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2266,1
    - Dst: Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2268,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2269,1
    - Dst: UpdateRequest::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2271,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2272,1
    - Dst: UpdateRequest::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2275,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2276,1
    - Dst: UpdateRequest::Parser::GetDataList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2282,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2292,1
    - Dst: DataList::Parser::GetReader
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2295,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::ProcessUpdateRequest
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2303,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2304,1
    - Dst: SubscriptionEngine*::GetNotificationEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2306,1
    - Dst: SubscriptionEngine*::mPublisherCatalog::DispatchEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2312,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2317,1
    - Dst: Weave::ExchangeContext*::Abort
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2323,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2329,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2330,1
    - Dst: SubscriptionEngine*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2335,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 58
    argCount: 6
    argNames:
    - apEC
    - aPktInfo
    - aMsgInfo
    - aProfileId
    - aMsgType
    - aPayload
    argTypes:
    - Weave::ExchangeContext*
    - Inet::IPPacketInfo*
    - Weave::WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 2337
      start: 2231
    functionDepth: 5
    functionLinenumber: 2231
    functionLinenumberEnd: 2337
    functionName: nl::Weave::Profiles::SubscriptionEngine::OnUpdateRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - UpdateRequest::Parser::GetDataList
    - nl::Weave::Profiles::SubscriptionEngine::ProcessUpdateRequest
    - UpdateRequest::Parser::CheckSchemaValidity
    - nl::Weave::System::PacketBuffer::Free
    - OutEventParam::Clear
    - Weave::ExchangeContext*::Abort
    - InEventParam::Clear
    - ExitNow
    - Weave::TLV::TLVReader::Init
    - SuccessOrExit
    - WeaveLogDetail
    - DataList::Parser::GetReader
    - SubscriptionEngine*::mEventCallback
    - reinterpret_cast<SubscriptionEngine *>
    - SubscriptionEngine*::mPublisherCatalog::DispatchEvent
    - UpdateRequest::Parser::Init
    - Weave::TLV::TLVReader::Next
    - SubscriptionEngine*::GetNotificationEngine
    linkageType: ''
    returnType: void
    signature: "SubscriptionEngine::OnUpdateRequest(Weave::ExchangeContext * apEC,
      const Inet::IPPacketInfo * aPktInfo,\n                                         const
      Weave::WeaveMessageInfo * aMsgInfo, uint32_t aProfileId, uint8_t aMsgType,\n
      \                                        PacketBuffer * aPayload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2346,1
    - Dst: Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2348,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2349,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2351,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2352,1
    - Dst: TraitDataSource*::IsUpdatableDataSource
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2354,1
    - Dst: SubscriptionEngine*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp:2371,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 2
    argNames:
    - ' aTraitPath'
    - ' aCatalog'
    argTypes:
    - TraitPath
    - TraitCatalogBase<TraitDataSource>
    constantsTouched: []
    func_position:
      end: 2388
      start: 2339
    functionDepth: 0
    functionLinenumber: 2339
    functionLinenumberEnd: 2388
    functionName: "SubscriptionEngine::UpdateRequestDataElementAccessControlDelegate::DataElementAccessCheck(\n
      \   const TraitPath & aTraitPath, const TraitCatalogBase<TraitDataSource> &
      aCatalog)"
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionEngine*::mEventCallback
    - Locate
    - OutEventParam::Clear
    - InEventParam::Clear
    - SubscriptionEngine::GetInstance
    - SuccessOrExit
    - TraitDataSource*::IsUpdatableDataSource
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscriptionEngine::UpdateRequestDataElementAccessControlDelegate::DataElementAccessCheck(\n
      \   const TraitPath & aTraitPath, const TraitCatalogBase<TraitDataSource> &
      aCatalog)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: nl::Weave::Profiles::EventProcessor::EventHeader
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EventHeader()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - inPublisherSourceId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: nl::Weave::Profiles::EventProcessor::StreamParsingContext
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: StreamParsingContext(uint64_t inPublisherSourceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - inLocalNodeId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: nl::Weave::Profiles::EventProcessor::EventProcessor
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EventProcessor::EventProcessor(uint64_t inLocalNodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: EventProcessor::~EventProcessor(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EventProcessor::~EventProcessor(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::EventProcessor::ParseEventList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:46,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' inReader'
    - ' inClient'
    argTypes:
    - nl::Weave::TLV::TLVReader
    - nl::Weave::Profiles::DataManagement::SubscriptionClient
    constantsTouched: []
    func_position:
      end: 54
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 54
    functionName: nl::Weave::Profiles::EventProcessor::ProcessEvents
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::EventProcessor::ParseEventList
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "EventProcessor::ProcessEvents(nl::Weave::TLV::TLVReader & inReader,\n
      \                             nl::Weave::Profiles::DataManagement::SubscriptionClient
      & inClient)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetBinding
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:61,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:63,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:65,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:65,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:66,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:66,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:71,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:72,1
    - Dst: nl::Weave::Profiles::EventProcessor::ParseEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:74,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:75,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:77,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - ' inReader'
    - ' inClient'
    argTypes:
    - nl::Weave::TLV::TLVReader
    - nl::Weave::Profiles::DataManagement::SubscriptionClient
    constantsTouched: []
    func_position:
      end: 89
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 89
    functionName: nl::Weave::Profiles::EventProcessor::ParseEventList
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp
    functionUses: 1
    functionsReached:
    - EnterContainer
    - GetBinding
    - nl::Weave::Profiles::EventProcessor::ParseEvent
    - VerifyOrExit
    - GetType
    - ExitContainer
    - GetTag
    - SuccessOrExit
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "EventProcessor::ParseEventList(nl::Weave::TLV::TLVReader & inReader,\n
      \                              nl::Weave::Profiles::DataManagement::SubscriptionClient
      & inClient)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:99,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:103,1
    - Dst: nl::Weave::TLV::IsContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:103,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:103,1
    - Dst: nl::Weave::TLV::TagNumFromTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:105,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:105,1
    - Dst: ReadAndCheckPresence
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:111,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:112,1
    - Dst: ReadAndCheckPresence
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:120,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:121,1
    - Dst: ReadAndCheckPresence
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:129,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:130,1
    - Dst: ReadAndCheckPresence
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:138,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:139,1
    - Dst: ReadAndCheckPresence
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:147,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:149,1
    - Dst: ReadAndCheckPresence
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:155,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:157,1
    - Dst: ReadAndCheckPresence
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:163,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:165,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:172,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:172,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:174,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:175,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:184,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:184,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:185,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:188,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:190,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:191,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:193,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:194,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:196,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:196,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:198,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:199,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:201,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:202,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:207,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:207,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:209,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:210,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:214,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:215,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:219,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:219,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:221,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:222,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:225,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:226,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:228,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:229,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:233,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:233,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:235,1
    - Dst: ReadAndCheckPresence
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:243,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:245,1
    - Dst: ReadAndCheckPresence
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:251,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:252,1
    - Dst: ReadAndCheckPresence
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:259,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:260,1
    - Dst: ReadAndCheckPresence
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:268,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:269,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:279,1
    - Dst: nl::Weave::Profiles::EventProcessor::UpdateContextQualifyHeader
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:284,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:285,1
    - Dst: nl::Weave::Profiles::EventProcessor::ProcessHeader
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:290,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:291,1
    - Dst: ProcessEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:295,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:296,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:306,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 129
    argCount: 3
    argNames:
    - ' inReader'
    - ' inClient'
    - ' inOutParsingContext'
    argTypes:
    - nl::Weave::TLV::TLVReader
    - nl::Weave::Profiles::DataManagement::SubscriptionClient
    - StreamParsingContext
    constantsTouched: []
    func_position:
      end: 320
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 320
    functionName: nl::Weave::Profiles::EventProcessor::ParseEvent
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp
    functionUses: 1
    functionsReached:
    - EnterContainer
    - nl::Weave::TLV::IsContextTag
    - WeaveLogError
    - nl::Weave::Profiles::EventProcessor::ProcessHeader
    - VerifyOrExit
    - nl::Weave::TLV::TagNumFromTag
    - GetType
    - ExitContainer
    - GetTag
    - Get
    - SuccessOrExit
    - nl::Weave::Profiles::EventProcessor::UpdateContextQualifyHeader
    - ReadAndCheckPresence
    - ProcessEvent
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "EventProcessor::ParseEvent(nl::Weave::TLV::TLVReader & inReader, nl::Weave::Profiles::DataManagement::SubscriptionClient
      & inClient,\n                           StreamParsingContext & inOutParsingContext)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' inReceivedMask'
    - ' inOutPublishedMask'
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 350
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 350
    functionName: nl::Weave::Profiles::EventProcessor::MapReceivedMaskToPublishedMask
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EventProcessor::MapReceivedMaskToPublishedMask(const uint64_t & inReceivedMask,
      uint64_t & inOutPublishedMask)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::EventProcessor::MapReceivedMaskToPublishedMask
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:358,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:359,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 3
    argNames:
    - ' inOutEventHeader'
    - ' inOutContext'
    - inReceivedMask
    argTypes:
    - EventHeader
    - StreamParsingContext
    - uint64_t
    constantsTouched: []
    func_position:
      end: 438
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 438
    functionName: nl::Weave::Profiles::EventProcessor::UpdateContextQualifyHeader
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::EventProcessor::MapReceivedMaskToPublishedMask
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "EventProcessor::UpdateContextQualifyHeader(EventHeader & inOutEventHeader,
      StreamParsingContext & inOutContext,\n                                           uint64_t
      inReceivedMask)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:454,1
    - Dst: GapDetected
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:458,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:466,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ' inEventHeader'
    - ' outIsNewEvent'
    argTypes:
    - EventHeader
    - bool
    constantsTouched: []
    func_position:
      end: 482
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 482
    functionName: nl::Weave::Profiles::EventProcessor::ProcessHeader
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp
    functionUses: 1
    functionsReached:
    - GapDetected
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EventProcessor::ProcessHeader(const EventHeader & inEventHeader, bool
      & outIsNewEvent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:491,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:494,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:494,1
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:495,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:498,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ' inReader'
    - ' inOutReceivedMask'
    - ' inReceivedFieldFlag'
    - ' inOutValue'
    argTypes:
    - nl::Weave::TLV::TLVReader
    - uint64_t
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 505
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 505
    functionName: nl::Weave::Profiles::ReadAndCheckPresence
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp
    functionUses: 0
    functionsReached:
    - GetType
    - VerifyOrExit
    - Get
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "ReadAndCheckPresence(nl::Weave::TLV::TLVReader & inReader, uint64_t
      & inOutReceivedMask, const uint64_t & inReceivedFieldFlag,\n                     uint64_t
      & inOutValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' outSize'
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 512
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 512
    functionName: nl::Weave::Profiles::EventProcessor::GetLargestEventIdList
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: event_id_t
    signature: '*

      EventProcessor::GetLargestEventIdList(size_t & outSize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: nl::Weave::Profiles::UpdateEncoder::UpdateEncoder
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: UpdateEncoder()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: ~UpdateEncoder()
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~UpdateEncoder()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: nl::Weave::Profiles::UpdateEncoder::Context
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Context()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: nl::Weave::Profiles::UpdateEncoder::DataElementPathContext
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DataElementPathContext()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: nl::Weave::Profiles::UpdateEncoder::DataElementDataContext
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DataElementDataContext()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aWriter
    argTypes:
    - TLV::TLVWriter
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: nl::Weave::Profiles::UpdateEncoder::Checkpoint
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Checkpoint(TLV::TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aWriter
    argTypes:
    - TLV::TLVWriter
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: nl::Weave::Profiles::UpdateEncoder::Rollback
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Rollback(TLV::TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: nl::Weave::Profiles::SubscriptionClient::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 261
    functionName: nl::Weave::Profiles::SubscriptionClient::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 363
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 363
    functionName: nl::Weave::Profiles::SubscriptionClient::GetLivenessTimeoutMsec
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: GetLivenessTimeoutMsec(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 364
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 364
    functionName: nl::Weave::Profiles::SubscriptionClient::SetLivenessTimeoutMsec
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetLivenessTimeoutMsec(uint32_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: nl::Weave::Profiles::SubscriptionClient::IsInProgressOrEstablished
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsInProgressOrEstablished()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 375
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 375
    functionName: nl::Weave::Profiles::SubscriptionClient::IsRetryEnabled
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsRetryEnabled()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 377
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 377
    functionName: nl::Weave::Profiles::SubscriptionClient::IsEstablished
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsEstablished()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 378
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 378
    functionName: nl::Weave::Profiles::SubscriptionClient::IsEstablishedIdle
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsEstablishedIdle()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 379
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 379
    functionName: nl::Weave::Profiles::SubscriptionClient::IsFree
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsFree()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 380
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 380
    functionName: nl::Weave::Profiles::SubscriptionClient::IsCanceling
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsCanceling() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 381
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 381
    functionName: nl::Weave::Profiles::SubscriptionClient::IsTerminated
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsTerminated()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 382
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 382
    functionName: nl::Weave::Profiles::SubscriptionClient::IsInResubscribeHoldoff
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsInResubscribeHoldoff()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionClient::IsUpdateInProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 398
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 398
    functionName: nl::Weave::Profiles::SubscriptionClient::IsUpdatePendingOrInProgress
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::IsUpdateInProgress
    linkageType: ''
    returnType: bool
    signature: IsUpdatePendingOrInProgress()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 465
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 465
    functionName: nl::Weave::Profiles::SubscriptionClient::IsInitiator
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsInitiator()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 466
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 466
    functionName: nl::Weave::Profiles::SubscriptionClient::IsCounterSubscriber
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsCounterSubscriber()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 467
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 467
    functionName: nl::Weave::Profiles::SubscriptionClient::ShouldSubscribe
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ShouldSubscribe()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 593
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 593
    functionName: nl::Weave::Profiles::SubscriptionClient::GetMaxUpdateSize
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: GetMaxUpdateSize(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 636
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 636
    functionName: nl::Weave::Profiles::SubscriptionClient::IsUpdateInFlight
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsUpdateInFlight()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 637
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 637
    functionName: nl::Weave::Profiles::SubscriptionClient::SetUpdateInFlight
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetUpdateInFlight()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 638
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 638
    functionName: nl::Weave::Profiles::SubscriptionClient::ClearUpdateInFlight
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ClearUpdateInFlight()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsEmpty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 641
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 641
    functionName: nl::Weave::Profiles::SubscriptionClient::IsUpdateInProgress
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h
    functionUses: 1
    functionsReached:
    - IsEmpty
    linkageType: ''
    returnType: bool
    signature: IsUpdateInProgress()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionClient::IsUpdateInProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 642
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 642
    functionName: nl::Weave::Profiles::SubscriptionClient::IsReadyToSendNewUpdate
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::IsUpdateInProgress
    linkageType: ''
    returnType: bool
    signature: IsReadyToSendNewUpdate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aXfer
    - aSendAcceptMsg
    argTypes:
    - nl::Weave::Profiles::BulkDataTransfer::BDXTransfer*
    - nl::Weave::Profiles::BulkDataTransfer::SendAccept*
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: nl::Weave::Profiles::BdxSendAcceptHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "BdxSendAcceptHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer
      * aXfer,\n                                 nl::Weave::Profiles::BulkDataTransfer::SendAccept
      * aSendAcceptMsg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:48,1
    - Dst: nl::Weave::Profiles::BulkDataTransfer::BDXTransfer*::Shutdown
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:52,1
    - Dst: static_cast<LogBDXUpload *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:55,1
    - Dst: LogBDXUpload*::Abort
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - aXfer
    - aReport
    argTypes:
    - nl::Weave::Profiles::BulkDataTransfer::BDXTransfer*
    - nl::Weave::Profiles::StatusReporting::StatusReport*
    constantsTouched: []
    func_position:
      end: 57
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 57
    functionName: nl::Weave::Profiles::BdxRejectHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - static_cast<LogBDXUpload *>
    - nl::Weave::Profiles::BulkDataTransfer::BDXTransfer*::Shutdown
    - LogBDXUpload*::Abort
    linkageType: ''
    returnType: void
    signature: "BdxRejectHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer
      * aXfer,\n                      nl::Weave::Profiles::StatusReporting::StatusReport
      * aReport)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:64,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:65,1
    - Dst: static_cast<LogBDXUpload *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:66,1
    - Dst: LogBDXUpload*::BlockHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - aXfer
    - aLength
    - aDataBlock
    - aIsLastBlock
    argTypes:
    - nl::Weave::Profiles::BulkDataTransfer::BDXTransfer*
    - uint64_t*
    - uint8_t**
    - bool*
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: nl::Weave::Profiles::BdxGetBlockHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - static_cast<LogBDXUpload *>
    - LogBDXUpload*::BlockHandler
    - VerifyOrExit
    linkageType: ''
    returnType: void
    signature: "BdxGetBlockHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer
      * aXfer, uint64_t * aLength, uint8_t ** aDataBlock,\n                        bool
      * aIsLastBlock)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFirstEventID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:79,1
    - Dst: ThrottleLogger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 86
    functionName: nl::Weave::Profiles::LogBDXUpload::ThrottleIfNeeded
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp
    functionUses: 0
    functionsReached:
    - ThrottleLogger
    - GetFirstEventID
    linkageType: ''
    returnType: void
    signature: LogBDXUpload::ThrottleIfNeeded(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:95,1
    - Dst: nl::Weave::Profiles::LogBDXUpload::ThrottleIfNeeded
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:106,1
    - Dst: FetchEventsSince
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:109,1
    - Dst: static_cast<ImportanceType>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:131,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:131,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:152,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:154,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 4
    argNames:
    - aXfer
    - aLength
    - aDataBlock
    - aIsLastBlock
    argTypes:
    - nl::Weave::Profiles::BulkDataTransfer::BDXTransfer*
    - uint64_t*
    - uint8_t**
    - bool*
    constantsTouched: []
    func_position:
      end: 157
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 157
    functionName: nl::Weave::Profiles::LogBDXUpload::BlockHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - TLVWriter::Init
    - SuccessOrExit
    - TLVWriter::GetLengthWritten
    - static_cast<ImportanceType>
    - nl::Weave::Profiles::LogBDXUpload::ThrottleIfNeeded
    - FetchEventsSince
    linkageType: ''
    returnType: void
    signature: "LogBDXUpload::BlockHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer
      * aXfer, uint64_t * aLength,\n                                uint8_t ** aDataBlock,
      bool * aIsLastBlock)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:164,1
    - Dst: nl::Weave::Profiles::BulkDataTransfer::BDXTransfer*::Shutdown
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:166,1
    - Dst: static_cast<LogBDXUpload *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:169,1
    - Dst: LogBDXUpload*::Abort
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - aXfer
    - aXferError
    argTypes:
    - nl::Weave::Profiles::BulkDataTransfer::BDXTransfer*
    - nl::Weave::Profiles::StatusReporting::StatusReport*
    constantsTouched: []
    func_position:
      end: 171
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 171
    functionName: nl::Weave::Profiles::BdxXferErrorHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - static_cast<LogBDXUpload *>
    - nl::Weave::Profiles::BulkDataTransfer::BDXTransfer*::Shutdown
    - LogBDXUpload*::Abort
    linkageType: ''
    returnType: void
    signature: "BdxXferErrorHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer
      * aXfer,\n                         nl::Weave::Profiles::StatusReporting::StatusReport
      * aXferError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:176,1
    - Dst: nl::Weave::Profiles::BulkDataTransfer::BDXTransfer*::Shutdown
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:178,1
    - Dst: static_cast<LogBDXUpload *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:181,1
    - Dst: LogBDXUpload*::Done
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - aXfer
    argTypes:
    - nl::Weave::Profiles::BulkDataTransfer::BDXTransfer*
    constantsTouched: []
    func_position:
      end: 183
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 183
    functionName: nl::Weave::Profiles::BdxXferDoneHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::BulkDataTransfer::BDXTransfer*::Shutdown
    - static_cast<LogBDXUpload *>
    - LogBDXUpload*::Done
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: BdxXferDoneHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer
      * aXfer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:188,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:188,1
    - Dst: nl::Weave::Profiles::BulkDataTransfer::BDXTransfer*::Shutdown
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:190,1
    - Dst: static_cast<LogBDXUpload *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:193,1
    - Dst: LogBDXUpload*::Abort
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - aXfer
    - aErrorCode
    argTypes:
    - nl::Weave::Profiles::BulkDataTransfer::BDXTransfer*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: nl::Weave::Profiles::BdxErrorHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp
    functionUses: 0
    functionsReached:
    - static_cast<LogBDXUpload *>
    - WeaveLogProgress
    - nl::Weave::Profiles::BulkDataTransfer::BDXTransfer*::Shutdown
    - LogBDXUpload*::Abort
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: BdxErrorHandler(nl::Weave::Profiles::BulkDataTransfer::BDXTransfer
      * aXfer, WEAVE_ERROR aErrorCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: nl::Weave::Profiles::LogBDXUpload::LogBDXUpload
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: LogBDXUpload::LogBDXUpload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:205,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:206,1
    - Dst: nl::Weave::Profiles::LogBDXUpload::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:208,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - inLogger
    argTypes:
    - LoggingManagement*
    constantsTouched: []
    func_position:
      end: 214
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 214
    functionName: nl::Weave::Profiles::LogBDXUpload::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::LogBDXUpload::Init
    - memset
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LogBDXUpload::Init(LoggingManagement * inLogger)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:219,1
    - Dst: ReferencedString::init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:222,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:222,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:222,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:234,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:235,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:238,1
    - Dst: NewTransfer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:245,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:246,1
    - Dst: InitBdxSend
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:254,1
    - Dst: nl::Weave::Profiles::BulkDataTransfer::BDXTransfer*::Shutdown
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:258,1
    - Dst: nl::Weave::Profiles::LogBDXUpload::Abort
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - aBinding
    argTypes:
    - nl::Weave::Binding*
    constantsTouched: []
    func_position:
      end: 265
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 265
    functionName: nl::Weave::Profiles::LogBDXUpload::StartUpload
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp
    functionUses: 0
    functionsReached:
    - ReferencedString::init
    - static_cast<uint16_t>
    - nl::Weave::Profiles::LogBDXUpload::Abort
    - ReferencedString::ReferencedString
    - VerifyOrExit
    - nl::Weave::Profiles::BulkDataTransfer::BDXTransfer*::Shutdown
    - strlen
    - memcpy
    - NewTransfer
    - SuccessOrExit
    - InitBdxSend
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LogBDXUpload::StartUpload(nl::Weave::Binding * aBinding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:271,1
    - Dst: UnthrottleLogger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:275,1
    - Dst: SignalUploadDone
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 279
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 279
    functionName: nl::Weave::Profiles::LogBDXUpload::Abort
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp
    functionUses: 1
    functionsReached:
    - UnthrottleLogger
    - memcpy
    - SignalUploadDone
    linkageType: ''
    returnType: void
    signature: LogBDXUpload::Abort(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:285,1
    - Dst: GetBytesWritten
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:287,1
    - Dst: UnthrottleLogger
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:290,1
    - Dst: SignalUploadDone
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 294
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 294
    functionName: nl::Weave::Profiles::LogBDXUpload::Done
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp
    functionUses: 0
    functionsReached:
    - UnthrottleLogger
    - memcpy
    - GetBytesWritten
    - SignalUploadDone
    linkageType: ''
    returnType: void
    signature: LogBDXUpload::Done(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::LogBDXUpload::Shutdown
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: nl::Weave::Profiles::LogBDXUpload::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::LogBDXUpload::Shutdown
    linkageType: ''
    returnType: void
    signature: LogBDXUpload::Shutdown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: nl::Weave::Profiles::LogBDXUpload::GetUploadPosition
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: LogBDXUpload::GetUploadPosition(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitCatalogBase<TraitDataSink>*::Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:57,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:58,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:60,1
    - Dst: TraitDataSink*::IsUpdatableDataSink
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:60,1
    - Dst: static_cast<TraitUpdatableDataSink *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - aTraitDataHandle
    - aDataSinkCatalog
    argTypes:
    - TraitDataHandle
    - TraitCatalogBase<TraitDataSink>*
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: nl::Weave::Profiles::Locate
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - TraitCatalogBase<TraitDataSink>*::Locate
    - TraitDataSink*::IsUpdatableDataSink
    - VerifyOrExit
    - static_cast<TraitUpdatableDataSink *>
    - SuccessOrExit
    linkageType: ''
    returnType: TraitUpdatableDataSink
    signature: '*Locate(TraitDataHandle aTraitDataHandle, const TraitCatalogBase<TraitDataSink>
      *aDataSinkCatalog)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:84,1
    - Dst: nl::Weave::Profiles::UpdateEncoder::EncodePreamble
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:88,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:89,1
    - Dst: nl::Weave::Profiles::UpdateEncoder::EncodeDataList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:91,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:92,1
    - Dst: nl::Weave::Profiles::UpdateEncoder::EndUpdateRequest
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:94,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - aContext
    argTypes:
    - Context
    constantsTouched: []
    func_position:
      end: 101
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 101
    functionName: nl::Weave::Profiles::UpdateEncoder::EncodeRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::UpdateEncoder::EncodeDataList
    - nl::Weave::Profiles::UpdateEncoder::EndUpdateRequest
    - VerifyOrExit
    - nl::Weave::Profiles::UpdateEncoder::EncodePreamble
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateEncoder::EncodeRequest(Context &aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mInProgressUpdateList::InsertItemAfter
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:121,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:122,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:125,1
    - Dst: mInProgressUpdateList::GetNumItems
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aItem
    argTypes:
    - TraitPath
    constantsTouched: []
    func_position:
      end: 131
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 131
    functionName: nl::Weave::Profiles::UpdateEncoder::InsertInProgressUpdateItem
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - mInProgressUpdateList::GetNumItems
    - SuccessOrExit
    - WeaveLogDetail
    - mInProgressUpdateList::InsertItemAfter
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateEncoder::InsertInProgressUpdateItem(const TraitPath &aItem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:143,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:145,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:147,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:151,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:151,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:153,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:156,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:156,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:158,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 164
    functionName: nl::Weave::Profiles::UpdateEncoder::EncodePreamble
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp
    functionUses: 1
    functionsReached:
    - StartContainer
    - Init
    - Put
    - SuccessOrExit
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateEncoder::EncodePreamble()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:178,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:178,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:180,1
    - Dst: nl::Weave::Profiles::UpdateEncoder::EncodeDataElements
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:182,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:183,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:185,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:186,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 193
    functionName: nl::Weave::Profiles::UpdateEncoder::EncodeDataList
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::UpdateEncoder::EncodeDataElements
    - StartContainer
    - EndContainer
    - SuccessOrExit
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateEncoder::EncodeDataList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:209,1
    - Dst: TraitPathStore::GetNumItems
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:210,1
    - Dst: TraitPathStore::GetPathStoreSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:211,1
    - Dst: TraitPathStore::GetPathStoreSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:214,1
    - Dst: TraitPathStore::IsItemValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:218,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:224,1
    - Dst: TraitPathStore::AreFlagsSet
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:224,1
    - Dst: TraitPathStore::AreFlagsSet
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:225,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:229,1
    - Dst: nl::Weave::Profiles::UpdateEncoder::EncodeDataElement
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:232,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:233,1
    - Dst: TraitPathStore::GetItemAt
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:239,1
    - Dst: nl::Weave::Profiles::UpdateEncoder::InsertInProgressUpdateItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:240,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:245,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:253,1
    - Dst: nl::Weave::Profiles::UpdateEncoder::RemoveInProgressPrivateItemsAfter
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:254,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 260
    functionName: nl::Weave::Profiles::UpdateEncoder::EncodeDataElements
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp
    functionUses: 1
    functionsReached:
    - TraitPathStore::GetPathStoreSize
    - TraitPathStore::GetItemAt
    - TraitPathStore::IsItemValid
    - VerifyOrExit
    - TraitPathStore::GetNumItems
    - TraitPathStore::AreFlagsSet
    - nl::Weave::Profiles::UpdateEncoder::InsertInProgressUpdateItem
    - WeaveLogDetail
    - nl::Weave::Profiles::UpdateEncoder::RemoveInProgressPrivateItemsAfter
    - SuccessOrExit
    - nl::Weave::Profiles::UpdateEncoder::EncodeDataElement
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateEncoder::EncodeDataElements()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::UpdateEncoder::Checkpoint
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:283,1
    - Dst: mInProgressUpdateList::GetItemAt
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:285,1
    - Dst: Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:287,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:288,1
    - Dst: DataElementDataContext::mDataSink::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:290,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:291,1
    - Dst: DataElementDataContext::mSchemaEngine::GetProfileId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:293,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:295,1
    - Dst: mDataSinkCatalog::GetResourceId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:298,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:300,1
    - Dst: mDataSinkCatalog::GetInstanceId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:302,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:304,1
    - Dst: DataElementDataContext::mDataSink::GetUpdateRequiredVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:306,1
    - Dst: DataElementDataContext::mSchemaEngine::GetRelativePathTags
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:313,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:317,1
    - Dst: mInProgressUpdateList::AreFlagsSet
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:319,1
    - Dst: DataElementDataContext::mSchemaEngine::IsDictionary
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:321,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:327,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:331,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:333,1
    - Dst: nl::Weave::Profiles::UpdateEncoder::EncodeElementPath
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:335,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:336,1
    - Dst: nl::Weave::Profiles::UpdateEncoder::EncodeElementData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:338,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:339,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:343,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:344,1
    - Dst: nl::Weave::Profiles::UpdateEncoder::Rollback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 356
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 356
    functionName: nl::Weave::Profiles::UpdateEncoder::EncodeDataElement
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp
    functionUses: 1
    functionsReached:
    - WEAVE_FAULT_INJECT
    - StartContainer
    - Locate
    - mInProgressUpdateList::AreFlagsSet
    - VerifyOrExit
    - DataElementDataContext::mSchemaEngine::IsDictionary
    - mDataSinkCatalog::GetInstanceId
    - mInProgressUpdateList::GetItemAt
    - DataElementDataContext::mDataSink::GetSchemaEngine
    - nl::Weave::Profiles::UpdateEncoder::Checkpoint
    - DataElementDataContext::mDataSink::GetUpdateRequiredVersion
    - DataElementDataContext::mSchemaEngine::GetProfileId
    - nl::Weave::Profiles::UpdateEncoder::EncodeElementData
    - EndContainer
    - nl::Weave::Profiles::UpdateEncoder::Rollback
    - DataElementDataContext::mSchemaEngine::GetRelativePathTags
    - nl::Weave::Profiles::UpdateEncoder::EncodeElementPath
    - SuccessOrExit
    - mDataSinkCatalog::GetResourceId
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateEncoder::EncodeDataElement()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Path::Builder::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:372,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:372,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:373,1
    - Dst: Path::Builder::ProfileID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:376,1
    - Dst: Path::Builder::ProfileID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:378,1
    - Dst: Path::Builder::ResourceID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:381,1
    - Dst: Path::Builder::InstanceID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:384,1
    - Dst: Path::Builder::TagSection
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:388,1
    - Dst: Path::Builder::AdditionalTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:392,1
    - Dst: Path::Builder::EndOfPath
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:396,1
    - Dst: Path::Builder::GetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:398,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:399,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:403,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - aElementContext
    - aWriter
    argTypes:
    - DataElementPathContext
    - TLV::TLVWriter
    constantsTouched: []
    func_position:
      end: 406
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 406
    functionName: nl::Weave::Profiles::UpdateEncoder::EncodeElementPath
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp
    functionUses: 1
    functionsReached:
    - Path::Builder::EndOfPath
    - Path::Builder::Init
    - Path::Builder::AdditionalTag
    - Path::Builder::GetError
    - Path::Builder::InstanceID
    - Path::Builder::ResourceID
    - Path::Builder::TagSection
    - Path::Builder::ProfileID
    - SuccessOrExit
    - WeaveLogFunctError
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateEncoder::EncodeElementPath(const DataElementPathContext &aElementContext,
      TLV::TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:427,1
    - Dst: TLV::TLVWriter::Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:428,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:428,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:429,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:433,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:436,1
    - Dst: DataElementDataContext::mSchemaEngine::IsDictionary
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:439,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:443,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:457,1
    - Dst: TLV::TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:458,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:459,1
    - Dst: DataElementDataContext::mSchemaEngine::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:461,1
    - Dst: DataElementDataContext::mDataSink::ReadData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:464,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:469,1
    - Dst: TLV::TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:473,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:474,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - aElementContext
    - aWriter
    argTypes:
    - DataElementDataContext
    - TLV::TLVWriter
    constantsTouched: []
    func_position:
      end: 479
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 479
    functionName: nl::Weave::Profiles::UpdateEncoder::EncodeElementData
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp
    functionUses: 1
    functionsReached:
    - DataElementDataContext::mDataSink::ReadData
    - DataElementDataContext::mSchemaEngine::GetTag
    - TLV::TLVWriter::StartContainer
    - VerifyOrExit
    - DataElementDataContext::mSchemaEngine::IsDictionary
    - TLV::TLVWriter::EndContainer
    - WeaveLogDetail
    - TLV::TLVWriter::Put
    - SuccessOrExit
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateEncoder::EncodeElementData(DataElementDataContext &aElementContext,
      TLV::TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:491,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:492,1
    - Dst: Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:494,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:495,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 502
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 502
    functionName: nl::Weave::Profiles::UpdateEncoder::EndUpdateRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp
    functionUses: 1
    functionsReached:
    - Finalize
    - WeaveLogFunctError
    - EndContainer
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateEncoder::EndUpdateRequest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitPathStore::GetPathStoreSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:518,1
    - Dst: TraitPathStore::GetNextValidItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:519,1
    - Dst: TraitPathStore::AreFlagsSet
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:521,1
    - Dst: TraitPathStore::RemoveItemAt
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:523,1
    - Dst: TraitPathStore::Compact
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:530,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:533,1
    - Dst: TraitPathStore::GetNumItems
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp:534,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - aList
    - aItemInProgress
    argTypes:
    - TraitPathStore
    - size_t
    constantsTouched: []
    func_position:
      end: 535
      start: 513
    functionDepth: 2
    functionLinenumber: 513
    functionLinenumberEnd: 535
    functionName: nl::Weave::Profiles::UpdateEncoder::RemoveInProgressPrivateItemsAfter
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp
    functionUses: 1
    functionsReached:
    - TraitPathStore::GetPathStoreSize
    - TraitPathStore::GetNumItems
    - TraitPathStore::AreFlagsSet
    - TraitPathStore::RemoveItemAt
    - TraitPathStore::GetNextValidItem
    - TraitPathStore::Compact
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: UpdateEncoder::RemoveInProgressPrivateItemsAfter(TraitPathStore &aList,
      size_t aItemInProgress)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Command::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: nl::Weave::Profiles::Command::Command
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Command::Init
    linkageType: ''
    returnType: void
    signature: Command::Command(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - aEC
    argTypes:
    - nl::Weave::ExchangeContext*
    constantsTouched: []
    func_position:
      end: 66
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 66
    functionName: nl::Weave::Profiles::Command::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Command::Init(nl::Weave::ExchangeContext * aEC)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: nl::Weave::Profiles::Command::IsMustBeVersionValid
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: Command::IsMustBeVersionValid(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: nl::Weave::Profiles::Command::IsInitiationTimeValid
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: Command::IsInitiationTimeValid(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: nl::Weave::Profiles::Command::IsActionTimeValid
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: Command::IsActionTimeValid(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: nl::Weave::Profiles::Command::IsExpiryTimeValid
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: Command::IsExpiryTimeValid(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: nl::Weave::Profiles::Command::IsOneWay
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: Command::IsOneWay(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inMustBeVersionValid
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: nl::Weave::Profiles::Command::SetMustBeVersionValid
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp
    functionUses: 0
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: void
    signature: Command::SetMustBeVersionValid(bool inMustBeVersionValid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inInitiationTimeValid
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: nl::Weave::Profiles::Command::SetInitiationTimeValid
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp
    functionUses: 0
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: void
    signature: Command::SetInitiationTimeValid(bool inInitiationTimeValid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inActionTimeValid
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: nl::Weave::Profiles::Command::SetActionTimeValid
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp
    functionUses: 0
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: void
    signature: Command::SetActionTimeValid(bool inActionTimeValid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inExpiryTimeValid
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: nl::Weave::Profiles::Command::SetExpiryTimeValid
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp
    functionUses: 0
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: void
    signature: Command::SetExpiryTimeValid(bool inExpiryTimeValid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFlag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inIsOneWay
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: nl::Weave::Profiles::Command::SetIsOneWay
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp
    functionUses: 0
    functionsReached:
    - SetFlag
    linkageType: ''
    returnType: void
    signature: Command::SetIsOneWay(bool inIsOneWay)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:194,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:194,1
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:197,1
    - Dst: nl::Weave::Profiles::Command::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:201,1
    - Dst: SYSTEM_STATS_DECREMENT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 206
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 206
    functionName: nl::Weave::Profiles::Command::Close
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Command::Close
    - SYSTEM_STATS_DECREMENT
    - WeaveLogIfFalse
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: Command::Close(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:227,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:228,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:229,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:231,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:235,1
    - Dst: nl::Weave::Profiles::Command::IsOneWay
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:235,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:237,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:241,1
    - Dst: nl::Weave::Profiles::Command::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - aProfileId
    - aStatusCode
    - aWeaveError
    argTypes:
    - uint32_t
    - uint16_t
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 246
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 246
    functionName: nl::Weave::Profiles::Command::SendError
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Command::Close
    - nl::Weave::Profiles::Command::IsOneWay
    - VerifyOrExit
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - WeaveLogFunctError
    - nl::Weave::WeaveServerBase::SendStatusReport
    - nl::ErrorStr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Command::SendError(uint32_t aProfileId, uint16_t aStatusCode, WEAVE_ERROR
      aWeaveError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Command::IsOneWay
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:262,1
    - Dst: nl::Weave::Profiles::Command::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:264,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:266,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:269,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:272,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:273,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:275,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:281,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:281,1
    - Dst: nl::Weave::Profiles::Command::IsOneWay
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:283,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 288
    functionName: nl::Weave::Profiles::Command::SendInProgress
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Command::Close
    - SendMessage
    - nl::Weave::Profiles::Command::IsOneWay
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - ExitNow
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Command::SendInProgress(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:327,1
    - Dst: nl::Weave::Profiles::Command::IsOneWay
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:327,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:329,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:334,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:335,1
    - Dst: nl::Weave::System::PacketBuffer*::EnsureReservedSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:339,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:340,1
    - Dst: nl::Weave::System::PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:343,1
    - Dst: nl::Weave::System::PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:344,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:352,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:353,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:354,1
    - Dst: nl::Weave::System::PacketBuffer*::SetStart
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:363,1
    - Dst: nl::Weave::System::PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:363,1
    - Dst: nl::Weave::System::PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:366,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:369,1
    - Dst: nl::Weave::TLV::TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:372,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:373,1
    - Dst: nl::Weave::TLV::TLVWriter::Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:376,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:376,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:377,1
    - Dst: nl::Weave::TLV::TLVWriter::PutPreEncodedContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:385,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:385,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:387,1
    - Dst: nl::Weave::TLV::TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:391,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:392,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:395,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:396,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:399,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:406,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:406,1
    - Dst: nl::Weave::Profiles::Command::IsOneWay
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:408,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:410,1
    - Dst: nl::Weave::Profiles::Command::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:412,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:416,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 2
    argNames:
    - traitInstanceVersion
    - respBuf
    argTypes:
    - uint32_t
    - nl::Weave::System::PacketBuffer*
    constantsTouched: []
    func_position:
      end: 420
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 420
    functionName: nl::Weave::Profiles::Command::SendResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - nl::Weave::System::PacketBuffer*::Start
    - nl::Weave::System::PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::New
    - nl::Weave::TLV::TLVWriter::StartContainer
    - SendMessage
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::Profiles::Command::IsOneWay
    - VerifyOrExit
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - nl::Weave::TLV::TLVWriter::PutPreEncodedContainer
    - nl::Weave::Profiles::Command::Close
    - nl::Weave::TLV::TLVWriter::EndContainer
    - nl::Weave::System::PacketBuffer*::EnsureReservedSize
    - nl::Weave::TLV::TLVWriter::Put
    - nl::Weave::System::PacketBuffer*::DataLength
    - nl::Weave::System::PacketBuffer*::SetStart
    - nl::Weave::TLV::TLVWriter::Init
    - ContextTag
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::Finalize
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Command::SendResponse(uint32_t traitInstanceVersion, nl::Weave::System::PacketBuffer
      * respBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:434,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:436,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:436,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:439,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - aRequestBuffer
    argTypes:
    - nl::Weave::System::PacketBuffer*
    constantsTouched: []
    func_position:
      end: 445
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 445
    functionName: nl::Weave::Profiles::Command::ValidateAuthenticator
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp
    functionUses: 0
    functionsReached:
    - IgnoreUnusedVariable
    - VerifyOrExit
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Command::ValidateAuthenticator(nl::Weave::System::PacketBuffer * aRequestBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 235
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 235
    functionName: nl::Weave::Profiles::LoggingManagement::IsValid
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsValid(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: nl::Weave::Profiles::DetailedRootSection
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventLoggingTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DetailedRootSection(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: nl::Weave::Profiles::Timestamp
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventLoggingTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Timestamp(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aUtc
    argTypes:
    - utc_timestamp_t
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    functionName: nl::Weave::Profiles::Timestamp
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventLoggingTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Timestamp(utc_timestamp_t aUtc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aSystem
    argTypes:
    - timestamp_t
    constantsTouched: []
    func_position:
      end: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    functionName: nl::Weave::Profiles::Timestamp
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventLoggingTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Timestamp(timestamp_t aSystem)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 362
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 362
    functionName: nl::Weave::Profiles::ExternalEvents
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventLoggingTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ExternalEvents(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 370
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 370
    functionName: nl::Weave::Profiles::IsValid
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventLoggingTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsValid(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 371
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 371
    functionName: nl::Weave::Profiles::Invalidate
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventLoggingTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Invalidate(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ResourceIdentifier::ToTLV
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:46,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' aWriter'
    argTypes:
    - nl::Weave::TLV::TLVWriter
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: nl::Weave::Profiles::ResourceIdentifier::ToTLV
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::ResourceIdentifier::ToTLV
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ResourceIdentifier::ToTLV(nl::Weave::TLV::TLVWriter & aWriter) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:55,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:60,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:61,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put16
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:67,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put64
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:68,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:69,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - ' aWriter'
    - ' aTag'
    argTypes:
    - nl::Weave::TLV::TLVWriter
    - uint64_t
    constantsTouched: []
    func_position:
      end: 75
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 75
    functionName: nl::Weave::Profiles::ResourceIdentifier::ToTLV
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp
    functionUses: 1
    functionsReached:
    - VerifyOrExit
    - PutBytes
    - Put
    - SuccessOrExit
    - nl::Weave::Encoding::LittleEndian::Put16
    - nl::Weave::Encoding::LittleEndian::Put64
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ResourceIdentifier::ToTLV(nl::Weave::TLV::TLVWriter & aWriter, const
      uint64_t & aTag) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ResourceIdentifier::FromTLV
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' aReader'
    argTypes:
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: nl::Weave::Profiles::ResourceIdentifier::FromTLV
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::ResourceIdentifier::FromTLV
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ResourceIdentifier::FromTLV(nl::Weave::TLV::TLVReader & aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:86,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:88,1
    - Dst: GetBytes
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:92,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:93,1
    - Dst: nl::Weave::Encoding::LittleEndian::Get16
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:95,1
    - Dst: nl::Weave::Encoding::LittleEndian::Get64
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:96,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:101,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:106,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:107,1
    - Dst: nl::Weave::Profiles::ResourceIdentifier::NormalizeResource
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - ' aReader'
    - ' aSelfNodeId'
    argTypes:
    - nl::Weave::TLV::TLVReader
    - uint64_t
    constantsTouched: []
    func_position:
      end: 115
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 115
    functionName: nl::Weave::Profiles::ResourceIdentifier::FromTLV
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Get16
    - GetLength
    - GetBytes
    - ExitNow
    - nl::Weave::Profiles::ResourceIdentifier::NormalizeResource
    - GetType
    - nl::Weave::Encoding::LittleEndian::Get64
    - SuccessOrExit
    - Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ResourceIdentifier::FromTLV(nl::Weave::TLV::TLVReader & aReader, const
      uint64_t & aSelfNodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ResourceIdentifier::NormalizeResource
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: nl::Weave::Profiles::ResourceIdentifier::NormalizeResource
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::ResourceIdentifier::NormalizeResource
    linkageType: ''
    returnType: void
    signature: ResourceIdentifier::NormalizeResource(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ' aSelfNodeId'
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: nl::Weave::Profiles::ResourceIdentifier::NormalizeResource
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ResourceIdentifier::NormalizeResource(const uint64_t & aSelfNodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ResourceIdentifier::ResourceTypeAsString
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: nl::Weave::Profiles::ResourceIdentifier::ResourceTypeAsString
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::ResourceIdentifier::ResourceTypeAsString
    linkageType: ''
    returnType: char
    signature: '* ResourceIdentifier::ResourceTypeAsString(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - aResourceType
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 181
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 181
    functionName: nl::Weave::Profiles::ResourceIdentifier::ResourceTypeAsString
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* ResourceIdentifier::ResourceTypeAsString(uint16_t aResourceType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:191,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:195,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:199,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:204,1
    - Dst: snprintf
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - outBuffer
    - outBufferLen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 211
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 211
    functionName: nl::Weave::Profiles::ResourceIdentifier::ToString
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ResourceIdentifier::ToString(char * outBuffer, size_t outBufferLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ResourceIdentifier::FromString
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inBuffer
    - bufferLen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: nl::Weave::Profiles::ResourceIdentifier::FromString
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::ResourceIdentifier::FromString
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ResourceIdentifier::FromString(const char * inBuffer, size_t bufferLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ResourceIdentifier::ResourceTypeAsString
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:231,1
    - Dst: strncmp
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:240,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:244,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:251,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:259,1
    - Dst: strtoul
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:262,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:263,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:263,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:265,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:266,1
    - Dst: strtoul
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:268,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:269,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:269,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:274,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:275,1
    - Dst: strtoul
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:277,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:278,1
    - Dst: strlen
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:278,1
    - Dst: nl::Weave::Profiles::ResourceIdentifier::NormalizeResource
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp:284,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - inBuffer
    - bufferLen
    - ' aSelfNodeId'
    argTypes:
    - char*
    - size_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 288
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 288
    functionName: nl::Weave::Profiles::ResourceIdentifier::FromString
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp
    functionUses: 1
    functionsReached:
    - strncmp
    - VerifyOrExit
    - memset
    - nl::Weave::Profiles::ResourceIdentifier::NormalizeResource
    - strlen
    - memcpy
    - strtoul
    - nl::Weave::Profiles::ResourceIdentifier::ResourceTypeAsString
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ResourceIdentifier::FromString(const char * inBuffer, size_t bufferLen,
      const uint64_t & aSelfNodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: nl::Weave::Profiles::SubscriptionHandler::SubscriptionHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SubscriptionHandler::SubscriptionHandler()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:76,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:77,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 81
    functionName: nl::Weave::Profiles::SubscriptionHandler::InitAsFree
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: SubscriptionHandler::InitAsFree()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:87,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:87,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:88,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:90,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:106,1
    - Dst: AdjustResponseTimeout
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:113,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:114,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:117,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:120,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:123,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::AbortSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - aLivenessTimeoutSec
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 130
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 130
    functionName: nl::Weave::Profiles::SubscriptionHandler::AcceptSubscribeRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionHandler::AbortSubscription
    - nl::Weave::Profiles::SubscriptionHandler::GetStateStr
    - AdjustResponseTimeout
    - nl::Weave::Profiles::SubscriptionHandler::MoveToState
    - VerifyOrExit
    - ExitNow
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionHandler::AcceptSubscribeRequest(const uint32_t aLivenessTimeoutSec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:134,1
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:135,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:137,1
    - Dst: mSubscribeRequestParsed::mHandler::EndSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - EventID
    - InEventParam
    - OutEventParam
    constantsTouched: []
    func_position:
      end: 151
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 151
    functionName: nl::Weave::Profiles::SubscriptionHandler::DefaultEventHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 1
    functionsReached:
    - mSubscribeRequestParsed::mHandler::EndSubscription
    - IgnoreUnusedVariable
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: SubscriptionHandler::DefaultEventHandler(EventID aEvent, const InEventParam
      & aInParam, OutEventParam & aOutParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:179,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:179,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:180,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:190,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:191,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:193,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:194,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:195,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:196,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:198,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:200,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::FlushExistingExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:203,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::AbortSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:207,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:209,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:220,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::Cancel
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:225,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::AbortSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:227,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:234,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:239,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::AbortSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:243,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 2
    argNames:
    - aReasonProfileId
    - aReasonStatusCode
    argTypes:
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 247
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 247
    functionName: nl::Weave::Profiles::SubscriptionHandler::EndSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - PacketBuffer*::SetDataLength
    - nl::Weave::Profiles::SubscriptionHandler::AbortSubscription
    - nl::Weave::Profiles::SubscriptionHandler::GetStateStr
    - nl::Weave::Encoding::LittleEndian::Write16
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - ExitNow
    - SubscriptionEngine::GetInstance
    - nl::Weave::Profiles::SubscriptionHandler::Cancel
    - SuccessOrExit
    - WeaveLogDetail
    - PacketBuffer*::Start
    - nl::Weave::Encoding::LittleEndian::Write32
    - WeaveLogFunctError
    - nl::Weave::Profiles::SubscriptionHandler::FlushExistingExchangeContext
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionHandler::EndSubscription(const uint32_t aReasonProfileId,
      const uint16_t aReasonStatusCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPathList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:263,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:264,1
    - Dst: PathList::Parser::GetReader
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:266,1
    - Dst: GetVersionList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:268,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:278,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:281,1
    - Dst: VersionList::Parser::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:294,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:297,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:302,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:304,1
    - Dst: AddressToHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:304,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:312,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:316,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:318,1
    - Dst: Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:318,1
    - Dst: TraitDataSource*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:326,1
    - Dst: TraitDataSource*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:329,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:333,1
    - Dst: TraitDataSource*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:334,1
    - Dst: TraitDataSource*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:334,1
    - Dst: TraitDataSource*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:338,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:339,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:343,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:344,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:360,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:360,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:362,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:365,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:365,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:367,1
    - Dst: SYSTEM_STATS_INCREMENT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:368,1
    - Dst: TraitInstanceInfo*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:370,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:378,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:395,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:396,1
    - Dst: TraitInstanceInfo*::SetDirty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:398,1
    - Dst: VersionList::Parser::IsNull
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:402,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:406,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:407,1
    - Dst: TraitInstanceInfo*::SetDirty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:409,1
    - Dst: VersionList::Parser::GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:415,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:416,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:420,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:421,1
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:423,1
    - Dst: TraitInstanceInfo*::SetDirty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:424,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:428,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:429,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:440,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:441,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:445,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:451,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:452,1
    - Dst: VersionList::Parser::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:458,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:461,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:462,1
    - Dst: GetSubscribeToAllEvents
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:469,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:474,1
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:476,1
    - Dst: GetLastObservedEventIdList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:483,1
    - Dst: EventList::Parser::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:487,1
    - Dst: EventList::Parser::GetReader
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:492,1
    - Dst: Event::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:494,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:495,1
    - Dst: Event::Parser::GetSourceId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:497,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:498,1
    - Dst: Event::Parser::GetImportance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:500,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:501,1
    - Dst: Event::Parser::GetEventId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:503,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:504,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:509,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:509,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:510,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:510,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::DeliveredEventsExist
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:514,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:516,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:527,1
    - Dst: static_cast<event_id_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:529,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:536,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:550,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:558,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 153
    argCount: 3
    argNames:
    - ' aRequest'
    - ' aRejectReasonProfileId'
    - ' aRejectReasonStatusCode'
    argTypes:
    - SubscribeRequest::Parser
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 569
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 569
    functionName: nl::Weave::Profiles::SubscriptionHandler::ParsePathVersionEventLists
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached:
    - VersionList::Parser::GetVersion
    - SYSTEM_STATS_INCREMENT
    - GetVersionList
    - static_cast<uint32_t>
    - TraitInstanceInfo*::Init
    - VersionList::Parser::IsNull
    - AddressToHandle
    - nl::Weave::TLV::TLVReader::Init
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Next
    - WeaveLogError
    - Locate
    - EventList::Parser::Next
    - VerifyOrExit
    - PathList::Parser::GetReader
    - Event::Parser::GetEventId
    - TraitInstanceInfo*::SetDirty
    - SubscriptionEngine::GetInstance
    - static_cast<event_id_t>
    - GetSubscribeToAllEvents
    - WeaveLogDetail
    - TraitDataSource*::GetSchemaEngine
    - WeaveLogProgress
    - ExitNow
    - memset
    - Event::Parser::Init
    - Event::Parser::GetSourceId
    - nl::Weave::Profiles::SubscriptionHandler::DeliveredEventsExist
    - VersionList::Parser::Next
    - EventList::Parser::GetReader
    - WeaveLogIfFalse
    - Event::Parser::GetImportance
    - GetLastObservedEventIdList
    - GetPathList
    - SuccessOrExit
    - WEAVE_FAULT_INJECT
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscriptionHandler::ParsePathVersionEventLists(SubscribeRequest::Parser
      & aRequest,\n                                                            uint32_t
      & aRejectReasonProfileId,\n                                                            uint16_t
      & aRejectReasonStatusCode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSubscriptionID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:581,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:595,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:598,1
    - Dst: SubscriptionClient*::IndicateActivity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:607,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:613,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:614,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:622,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:623,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:627,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:630,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:637,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:643,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 4
    argNames:
    - ' aRequest'
    - ' aRejectReasonProfileId'
    - ' aRejectReasonStatusCode'
    - aRandomNumber
    argTypes:
    - SubscribeRequest::Parser
    - uint32_t
    - uint16_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 654
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 654
    functionName: nl::Weave::Profiles::SubscriptionHandler::ParseSubscriptionId
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached:
    - GetSubscriptionID
    - WeaveLogError
    - ExitNow
    - SubscriptionClient*::IndicateActivity
    - SubscriptionEngine::GetInstance
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscriptionHandler::ParseSubscriptionId(SubscribeRequest::Parser
      & aRequest, uint32_t & aRejectReasonProfileId,\n                                                     uint16_t
      & aRejectReasonStatusCode, const uint64_t aRandomNumber)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - importance
    argTypes:
    - ImportanceType
    constantsTouched: []
    func_position:
      end: 661
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 661
    functionName: nl::Weave::Profiles::SubscriptionHandler::UpdateDeliveredEvents
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SubscriptionHandler::UpdateDeliveredEvents(ImportanceType importance)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - importance
    argTypes:
    - ImportanceType
    constantsTouched: []
    func_position:
      end: 671
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 671
    functionName: nl::Weave::Profiles::SubscriptionHandler::DeliveredEventsExist
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: SubscriptionHandler::DeliveredEventsExist(ImportanceType importance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:684,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:684,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:685,1
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:687,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:690,1
    - Dst: Binding*::AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:693,1
    - Dst: SetProtocolLayerCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:695,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:708,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:709,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::InitExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:711,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:719,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:721,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:722,1
    - Dst: SubscribeRequest::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:724,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:725,1
    - Dst: SubscribeRequest::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:728,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:729,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::ParseSubscriptionId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:733,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:734,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::ParsePathVersionEventLists
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:737,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:738,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:751,1
    - Dst: SubscribeRequest::Parser::GetSubscribeTimeoutMin
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:753,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:761,1
    - Dst: SubscribeRequest::Parser::GetSubscribeTimeoutMax
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:764,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:772,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:776,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:784,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:790,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:793,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::EndSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:798,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:801,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 62
    argCount: 6
    argNames:
    - aBinding
    - aRandomNumber
    - aEC
    - aPktInfo
    - aMsgInfo
    - aPayload
    argTypes:
    - Binding*
    - uint64_t
    - nl::Weave::ExchangeContext*
    - nl::Inet::IPPacketInfo*
    - nl::Weave::WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 802
      start: 674
    functionDepth: 3
    functionLinenumber: 674
    functionLinenumberEnd: 802
    functionName: nl::Weave::Profiles::SubscriptionHandler::InitWithIncomingRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionHandler::GetStateStr
    - SetProtocolLayerCallback
    - nl::Weave::Profiles::SubscriptionHandler::_AddRef
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    - mEventCallback
    - nl::Weave::System::PacketBuffer::Free
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - SubscribeRequest::Parser::GetSubscribeTimeoutMin
    - nl::Weave::Profiles::SubscriptionHandler::InitExchangeContext
    - SubscribeRequest::Parser::GetSubscribeTimeoutMax
    - nl::Weave::Profiles::SubscriptionHandler::MoveToState
    - ExitNow
    - SubscribeRequest::Parser::Init
    - nl::Weave::Profiles::SubscriptionHandler::ParsePathVersionEventLists
    - SubscribeRequest::Parser::CheckSchemaValidity
    - nl::Weave::Profiles::SubscriptionHandler::_Release
    - Binding*::AddRef
    - WeaveLogIfFalse
    - nl::Weave::Profiles::SubscriptionHandler::EndSubscription
    - nl::Weave::Profiles::SubscriptionHandler::ParseSubscriptionId
    - memcpy
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: "SubscriptionHandler::InitWithIncomingRequest(Binding * const aBinding,
      const uint64_t aRandomNumber,\n                                                  nl::Weave::ExchangeContext
      * aEC, const nl::Inet::IPPacketInfo * aPktInfo,\n                                                  const
      nl::Weave::WeaveMessageInfo * aMsgInfo, PacketBuffer * aPayload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:808,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:808,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:809,1
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:811,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:814,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::ReplaceExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:819,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:820,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:824,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:827,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:832,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:836,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:842,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:845,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - aMsgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 848
      start: 804
    functionDepth: 2
    functionLinenumber: 804
    functionLinenumberEnd: 848
    functionName: nl::Weave::Profiles::SubscriptionHandler::SendNotificationRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - WeaveLogIfFalse
    - nl::Weave::Profiles::SubscriptionHandler::GetStateStr
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::Profiles::SubscriptionHandler::TerminateSubscription
    - nl::Weave::Profiles::SubscriptionHandler::_Release
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - SuccessOrExit
    - nl::Weave::Profiles::SubscriptionHandler::_AddRef
    - WeaveLogFunctError
    - nl::Weave::Profiles::SubscriptionHandler::ReplaceExchangeContext
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionHandler::SendNotificationRequest(PacketBuffer * aMsgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionHandler::SendSubscribeResponse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:855,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - aPossibleLossOfEvent
    - aLastVendedEventList
    - aLastVendedEventListSize
    argTypes:
    - bool
    - LastVendedEvent[]
    - size_t
    constantsTouched: []
    func_position:
      end: 857
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 857
    functionName: nl::Weave::Profiles::SubscriptionHandler::OnNotifyProcessingComplete
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionHandler::SendSubscribeResponse
    linkageType: ''
    returnType: void
    signature: "SubscriptionHandler::OnNotifyProcessingComplete(const bool aPossibleLossOfEvent,
      const LastVendedEvent aLastVendedEventList[],\n                                                     const
      size_t aLastVendedEventListSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:868,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:868,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:869,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:872,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:874,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:875,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:877,1
    - Dst: SubscribeResponse::Builder::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:879,1
    - Dst: SubscribeResponse::Builder::SubscriptionID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:880,1
    - Dst: SubscribeResponse::Builder::SubscribeTimeout
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:888,1
    - Dst: SubscribeResponse::Builder::PossibleLossOfEvents
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:894,1
    - Dst: SubscribeResponse::Builder::CreateLastVendedEventIdListBuilder
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:899,1
    - Dst: CreateEventBuilder
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:903,1
    - Dst: SourceId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:904,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:908,1
    - Dst: GetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:908,1
    - Dst: EndOfEventList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:910,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:911,1
    - Dst: GetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:911,1
    - Dst: SubscribeResponse::Builder::EndOfResponse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:914,1
    - Dst: SubscribeResponse::Builder::GetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:916,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:917,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:919,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:920,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:923,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:925,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:928,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:931,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:935,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:941,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:944,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 45
    argCount: 3
    argNames:
    - aPossibleLossOfEvent
    - aLastVendedEventList
    - aLastVendedEventListSize
    argTypes:
    - bool
    - LastVendedEvent[]
    - size_t
    constantsTouched: []
    func_position:
      end: 947
      start: 859
    functionDepth: 3
    functionLinenumber: 859
    functionLinenumberEnd: 947
    functionName: nl::Weave::Profiles::SubscriptionHandler::SendSubscribeResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 1
    functionsReached:
    - SubscribeResponse::Builder::CreateLastVendedEventIdListBuilder
    - nl::Weave::Profiles::SubscriptionHandler::GetStateStr
    - GetError
    - EndOfEventList
    - SourceId
    - nl::Weave::Profiles::SubscriptionHandler::_AddRef
    - WeaveLogFunctError
    - SubscribeResponse::Builder::GetError
    - nl::Weave::System::PacketBuffer::New
    - SendMessage
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - SubscriptionEngine::GetInstance
    - CreateEventBuilder
    - WeaveLogDetail
    - SubscribeResponse::Builder::PossibleLossOfEvents
    - SubscribeResponse::Builder::SubscriptionID
    - nl::Weave::Profiles::SubscriptionHandler::MoveToState
    - SubscribeResponse::Builder::SubscribeTimeout
    - nl::Weave::Profiles::SubscriptionHandler::TerminateSubscription
    - SubscribeResponse::Builder::Init
    - nl::Weave::Profiles::SubscriptionHandler::_Release
    - nl::Weave::TLV::TLVWriter::Init
    - SubscribeResponse::Builder::EndOfResponse
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::Finalize
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscriptionHandler::SendSubscribeResponse(const bool aPossibleLossOfEvent,\n
      \                                                      const LastVendedEvent
      aLastVendedEventList[],\n                                                       const
      size_t aLastVendedEventListSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 952
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 952
    functionName: nl::Weave::Profiles::SubscriptionHandler::GetBinding
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Binding
    signature: '* SubscriptionHandler::GetBinding(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 957
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 957
    functionName: nl::Weave::Profiles::SubscriptionHandler::GetPeerNodeId
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: SubscriptionHandler::GetPeerNodeId(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 968
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 968
    functionName: nl::Weave::Profiles::SubscriptionHandler::InitExchangeContext
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SubscriptionHandler::InitExchangeContext()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:976,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:976,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:977,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:980,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::FlushExistingExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:982,1
    - Dst: NewExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:984,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:985,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::InitExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:987,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:991,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:994,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 999
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 999
    functionName: nl::Weave::Profiles::SubscriptionHandler::ReplaceExchangeContext
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SubscriptionHandler::InitExchangeContext
    - nl::Weave::Profiles::SubscriptionHandler::GetStateStr
    - mEventCallback
    - nl::Weave::Profiles::SubscriptionHandler::_Release
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - SuccessOrExit
    - nl::Weave::Profiles::SubscriptionHandler::_AddRef
    - WeaveLogFunctError
    - nl::Weave::Profiles::SubscriptionHandler::FlushExistingExchangeContext
    - NewExchangeContext
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionHandler::ReplaceExchangeContext()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Abort
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1014,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1018,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - aAbortNow
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1022
      start: 1001
    functionDepth: 0
    functionLinenumber: 1001
    functionLinenumberEnd: 1022
    functionName: nl::Weave::Profiles::SubscriptionHandler::FlushExistingExchangeContext
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 2
    functionsReached:
    - Close
    - Abort
    linkageType: ''
    returnType: void
    signature: SubscriptionHandler::FlushExistingExchangeContext(const bool aAbortNow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1031,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1031,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1032,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1035,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::FlushExistingExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1041,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1052,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1060,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1061,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1062,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::ReplaceExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1064,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1065,1
    - Dst: SubscribeCancelRequest::Builder::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1067,1
    - Dst: SubscribeCancelRequest::Builder::SubscriptionID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1069,1
    - Dst: SubscribeCancelRequest::Builder::GetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1071,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1072,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1074,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1075,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1078,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1081,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1083,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1087,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1091,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1095,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1025
    functionDepth: 2
    functionLinenumber: 1025
    functionLinenumberEnd: 1098
    functionName: nl::Weave::Profiles::SubscriptionHandler::Cancel
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SubscriptionHandler::GetStateStr
    - SubscribeCancelRequest::Builder::GetError
    - nl::Weave::Profiles::SubscriptionHandler::_AddRef
    - WeaveLogFunctError
    - nl::Weave::Profiles::SubscriptionHandler::ReplaceExchangeContext
    - nl::Weave::Profiles::SubscriptionHandler::FlushExistingExchangeContext
    - SendMessage
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - SubscribeCancelRequest::Builder::Init
    - nl::Weave::Profiles::SubscriptionHandler::MoveToState
    - ExitNow
    - SubscribeCancelRequest::Builder::SubscriptionID
    - nl::Weave::Profiles::SubscriptionHandler::_Release
    - nl::Weave::TLV::TLVWriter::Init
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::Finalize
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionHandler::Cancel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1113,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - apSubscriptionId
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 1120
      start: 1101
    functionDepth: 0
    functionLinenumber: 1101
    functionLinenumberEnd: 1120
    functionName: nl::Weave::Profiles::SubscriptionHandler::GetSubscriptionId
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionHandler::GetSubscriptionId(uint64_t * const apSubscriptionId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1122
    functionDepth: 0
    functionLinenumber: 1122
    functionLinenumberEnd: 1127
    functionName: nl::Weave::Profiles::SubscriptionHandler::_AddRef
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 5
    functionsReached:
    - WeaveLogIfFalse
    linkageType: ''
    returnType: void
    signature: SubscriptionHandler::_AddRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1131,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::AbortSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1140,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1146,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::InitAsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1149,1
    - Dst: SYSTEM_STATS_DECREMENT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1157
    functionName: nl::Weave::Profiles::SubscriptionHandler::_Release
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 5
    functionsReached:
    - nl::Weave::Profiles::SubscriptionHandler::AbortSubscription
    - WeaveLogIfFalse
    - SYSTEM_STATS_DECREMENT
    - nl::Weave::Profiles::SubscriptionHandler::MoveToState
    - nl::Weave::Profiles::SubscriptionHandler::InitAsFree
    linkageType: ''
    returnType: void
    signature: SubscriptionHandler::_Release()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionHandler::IsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1161,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::IsTerminated
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1161,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1163,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1163,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1164,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1168,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1172,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::FlushExistingExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1175,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::RefreshTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1178,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1184,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1193,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1194,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1206,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1210,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1213,1
    - Dst: SetProtocolLayerCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1217,1
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1218,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1222,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1226,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - aReason
    - aStatusReport
    - suppressAppCallback
    argTypes:
    - WEAVE_ERROR
    - StatusReporting::StatusReport*
    - bool
    constantsTouched: []
    func_position:
      end: 1228
      start: 1159
    functionDepth: 2
    functionLinenumber: 1159
    functionLinenumberEnd: 1228
    functionName: nl::Weave::Profiles::SubscriptionHandler::TerminateSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::SubscriptionHandler::GetStateStr
    - mEventCallback
    - nl::Weave::Profiles::SubscriptionHandler::MoveToState
    - nl::Weave::Profiles::SubscriptionHandler::RefreshTimer
    - OutEventParam::Clear
    - SetProtocolLayerCallback
    - nl::Weave::Profiles::SubscriptionHandler::IsFree
    - InEventParam::Clear
    - nl::Weave::Profiles::SubscriptionHandler::_Release
    - SubscriptionEngine::GetInstance
    - Release
    - WeaveLogDetail
    - nl::Weave::Profiles::SubscriptionHandler::_AddRef
    - nl::Weave::Profiles::SubscriptionHandler::FlushExistingExchangeContext
    - nl::Weave::Profiles::SubscriptionHandler::IsTerminated
    linkageType: ''
    returnType: void
    signature: SubscriptionHandler::TerminateSubscription(WEAVE_ERROR aReason, StatusReporting::StatusReport
      * aStatusReport, bool suppressAppCallback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1244,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1244,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1245,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1242
    functionDepth: 3
    functionLinenumber: 1242
    functionLinenumberEnd: 1248
    functionName: nl::Weave::Profiles::SubscriptionHandler::AbortSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 3
    functionsReached:
    - SubscriptionEngine::GetInstance
    - nl::Weave::Profiles::SubscriptionHandler::TerminateSubscription
    - WeaveLogDetail
    - nl::Weave::Profiles::SubscriptionHandler::GetStateStr
    linkageType: ''
    returnType: void
    signature: SubscriptionHandler::AbortSubscription()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1256,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1262,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1262,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1263,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1266,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1268,1
    - Dst: IsAuthenticMessageFromPeer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1272,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1274,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1280,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1281,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1282,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1283,1
    - Dst: nl::Weave::ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1285,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1287,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::FlushExistingExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1292,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1295,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1297,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1303,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 4
    argNames:
    - aEC
    - aPktInfo
    - aMsgInfo
    - aPayload
    argTypes:
    - nl::Weave::ExchangeContext*
    - nl::Inet::IPPacketInfo*
    - nl::Weave::WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1307
      start: 1251
    functionDepth: 3
    functionLinenumber: 1251
    functionLinenumberEnd: 1307
    functionName: nl::Weave::Profiles::SubscriptionHandler::CancelRequestHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Profiles::SubscriptionHandler::GetStateStr
    - nl::Weave::Encoding::LittleEndian::Write16
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::ExchangeContext*::SendMessage
    - nl::Weave::Profiles::SubscriptionHandler::TerminateSubscription
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - nl::Weave::Profiles::SubscriptionHandler::_Release
    - SubscriptionEngine::GetInstance
    - SuccessOrExit
    - WeaveLogDetail
    - IsAuthenticMessageFromPeer
    - PacketBuffer*::Start
    - nl::Weave::Profiles::SubscriptionHandler::FlushExistingExchangeContext
    - nl::Weave::Profiles::SubscriptionHandler::_AddRef
    - WeaveLogFunctError
    - nl::Weave::Encoding::LittleEndian::Write32
    linkageType: ''
    returnType: void
    signature: "SubscriptionHandler::CancelRequestHandler(nl::Weave::ExchangeContext
      * aEC, const nl::Inet::IPPacketInfo * aPktInfo,\n                                               const
      nl::Weave::WeaveMessageInfo * aMsgInfo, PacketBuffer * aPayload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SubscriptionHandler *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1314,1
    - Dst: SubscriptionHandler*::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1326,1
    - Dst: nl::Weave::Binding::DefaultEventHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - aAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - Binding::EventType
    - Binding::InEventParam
    - Binding::OutEventParam
    constantsTouched: []
    func_position:
      end: 1333
      start: 1311
    functionDepth: 1
    functionLinenumber: 1311
    functionLinenumberEnd: 1333
    functionName: nl::Weave::Profiles::SubscriptionHandler::BindingEventCallback
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionHandler*::TerminateSubscription
    - reinterpret_cast<SubscriptionHandler *>
    - nl::Weave::Binding::DefaultEventHandler
    linkageType: ''
    returnType: void
    signature: "SubscriptionHandler::BindingEventCallback(void * const aAppState,
      const Binding::EventType aEvent,\n                                               const
      Binding::InEventParam & aInParam, Binding::OutEventParam & aOutParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SubscriptionHandler *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1337,1
    - Dst: SubscriptionHandler*::TimerEventHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aSystemLayer
    - aAppState
    argTypes:
    - System::Layer*
    - void*
    constantsTouched: []
    func_position:
      end: 1340
      start: 1335
    functionDepth: 0
    functionLinenumber: 1335
    functionLinenumberEnd: 1340
    functionName: nl::Weave::Profiles::SubscriptionHandler::OnTimerCallback
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionHandler*::TimerEventHandler
    - reinterpret_cast<SubscriptionHandler *>
    linkageType: ''
    returnType: void
    signature: SubscriptionHandler::OnTimerCallback(System::Layer * aSystemLayer,
      void * aAppState, System::Error)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1346,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1346,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1347,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1350,1
    - Dst: SystemLayer::CancelTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1350,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1359,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1360,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1360,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1364,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1365,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1365,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1368,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1368,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1371,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1378,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1382,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1342
    functionDepth: 1
    functionLinenumber: 1342
    functionLinenumberEnd: 1385
    functionName: nl::Weave::Profiles::SubscriptionHandler::RefreshTimer
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SubscriptionHandler::GetStateStr
    - VerifyOrExit
    - ExitNow
    - SubscriptionEngine::GetInstance
    - SystemLayer::StartTimer
    - SystemLayer::CancelTimer
    - WeaveLogDetail
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionHandler::RefreshTimer(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1395,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1399,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1405,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1406,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1406,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1410,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1411,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1411,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1417,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1387
    functionDepth: 3
    functionLinenumber: 1387
    functionLinenumberEnd: 1424
    functionName: nl::Weave::Profiles::SubscriptionHandler::TimerEventHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionHandler::GetStateStr
    - nl::Weave::Profiles::SubscriptionHandler::TerminateSubscription
    - ExitNow
    - nl::Weave::Profiles::SubscriptionHandler::_Release
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - nl::Weave::Profiles::SubscriptionHandler::_AddRef
    linkageType: ''
    returnType: void
    signature: SubscriptionHandler::TimerEventHandler(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1430,1
    - Dst: GetLastEventID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1434,1
    - Dst: static_cast<ImportanceType>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1434,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - ' inLogger'
    argTypes:
    - LoggingManagement
    constantsTouched: []
    func_position:
      end: 1444
      start: 1426
    functionDepth: 0
    functionLinenumber: 1426
    functionLinenumberEnd: 1444
    functionName: nl::Weave::Profiles::SubscriptionHandler::CheckEventUpToDate
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached:
    - static_cast<ImportanceType>
    - IsValid
    - GetLastEventID
    linkageType: ''
    returnType: bool
    signature: SubscriptionHandler::CheckEventUpToDate(LoggingManagement & inLogger)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ImportanceType>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1454,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1446
    functionDepth: 0
    functionLinenumber: 1446
    functionLinenumberEnd: 1460
    functionName: nl::Weave::Profiles::SubscriptionHandler::FindNextImportanceForTransfer
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached:
    - static_cast<ImportanceType>
    linkageType: ''
    returnType: ImportanceType
    signature: SubscriptionHandler::FindNextImportanceForTransfer(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1466,1
    - Dst: IsValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1466,1
    - Dst: SetLoggingEndpoint
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' inLogger'
    argTypes:
    - LoggingManagement
    constantsTouched: []
    func_position:
      end: 1473
      start: 1462
    functionDepth: 0
    functionLinenumber: 1462
    functionLinenumberEnd: 1473
    functionName: nl::Weave::Profiles::SubscriptionHandler::SetEventLogEndpoint
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached:
    - IsValid
    - SetLoggingEndpoint
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionHandler::SetEventLogEndpoint(LoggingManagement & inLogger)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1508
      start: 1476
    functionDepth: 0
    functionLinenumber: 1476
    functionLinenumberEnd: 1508
    functionName: nl::Weave::Profiles::SubscriptionHandler::GetStateStr
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* SubscriptionHandler::GetStateStr() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1510
    functionDepth: 0
    functionLinenumber: 1510
    functionLinenumberEnd: 1513
    functionName: nl::Weave::Profiles::SubscriptionHandler::GetStateStr
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* SubscriptionHandler::GetStateStr() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1519,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1519,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1520,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - aTargetState
    argTypes:
    - HandlerState
    constantsTouched: []
    func_position:
      end: 1528
      start: 1516
    functionDepth: 1
    functionLinenumber: 1516
    functionLinenumberEnd: 1528
    functionName: nl::Weave::Profiles::SubscriptionHandler::MoveToState
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 6
    functionsReached:
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - nl::Weave::Profiles::SubscriptionHandler::GetStateStr
    linkageType: ''
    returnType: void
    signature: SubscriptionHandler::MoveToState(const HandlerState aTargetState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SubscriptionHandler *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1535,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1537,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1537,1
    - Dst: SubscriptionHandler*::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1538,1
    - Dst: SubscriptionHandler*::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1541,1
    - Dst: SubscriptionHandler*::FlushExistingExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1547,1
    - Dst: SubscriptionHandler*::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1549,1
    - Dst: SubscriptionHandler*::RefreshTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1551,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1552,1
    - Dst: SubscriptionHandler*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1561,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1565,1
    - Dst: SubscriptionHandler*::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1576,1
    - Dst: SubscriptionHandler*::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1579,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - aEC
    - aMsgSpecificContext
    argTypes:
    - ExchangeContext*
    - void*
    constantsTouched: []
    func_position:
      end: 1580
      start: 1532
    functionDepth: 0
    functionLinenumber: 1532
    functionLinenumberEnd: 1580
    functionName: nl::Weave::Profiles::SubscriptionHandler::OnAckReceived
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionHandler*::GetStateStr
    - SubscriptionHandler*::_Release
    - SubscriptionHandler*::TerminateSubscription
    - SubscriptionHandler*::_AddRef
    - SubscriptionEngine::GetInstance
    - SubscriptionHandler*::RefreshTimer
    - WeaveLogDetail
    - SuccessOrExit
    - SubscriptionHandler*::MoveToState
    - SubscriptionHandler*::FlushExistingExchangeContext
    - SubscriptionHandler*::mEventCallback
    - reinterpret_cast<SubscriptionHandler *>
    linkageType: ''
    returnType: void
    signature: SubscriptionHandler::OnAckReceived(ExchangeContext * aEC, void * aMsgSpecificContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SubscriptionHandler *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1586,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1588,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1588,1
    - Dst: SubscriptionHandler*::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1589,1
    - Dst: SubscriptionHandler*::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1592,1
    - Dst: SubscriptionHandler*::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1593,1
    - Dst: SubscriptionHandler*::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1594,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - aEC
    - aErrorCode
    - aMsgSpecificContext
    argTypes:
    - ExchangeContext*
    - WEAVE_ERROR
    - void*
    constantsTouched: []
    func_position:
      end: 1599
      start: 1584
    functionDepth: 0
    functionLinenumber: 1584
    functionLinenumberEnd: 1599
    functionName: nl::Weave::Profiles::SubscriptionHandler::OnSendError
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionHandler*::GetStateStr
    - SubscriptionHandler*::TerminateSubscription
    - SubscriptionHandler*::_AddRef
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - SubscriptionHandler*::_Release
    - reinterpret_cast<SubscriptionHandler *>
    linkageType: ''
    returnType: void
    signature: SubscriptionHandler::OnSendError(ExchangeContext * aEC, WEAVE_ERROR
      aErrorCode, void * aMsgSpecificContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SubscriptionHandler *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1603,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1605,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1605,1
    - Dst: SubscriptionHandler*::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1606,1
    - Dst: SubscriptionHandler*::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1609,1
    - Dst: SubscriptionHandler*::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1610,1
    - Dst: SubscriptionHandler*::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - aEC
    argTypes:
    - nl::Weave::ExchangeContext*
    constantsTouched: []
    func_position:
      end: 1612
      start: 1601
    functionDepth: 0
    functionLinenumber: 1601
    functionLinenumberEnd: 1612
    functionName: nl::Weave::Profiles::SubscriptionHandler::OnResponseTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionHandler*::GetStateStr
    - SubscriptionHandler*::TerminateSubscription
    - SubscriptionHandler*::_AddRef
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - SubscriptionHandler*::_Release
    - reinterpret_cast<SubscriptionHandler *>
    linkageType: ''
    returnType: void
    signature: SubscriptionHandler::OnResponseTimeout(nl::Weave::ExchangeContext *
      aEC)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SubscriptionHandler *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1624,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1631,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1631,1
    - Dst: SubscriptionHandler*::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1632,1
    - Dst: SubscriptionHandler*::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1635,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1637,1
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::parse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1643,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1644,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1646,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1660,1
    - Dst: StatusReporting::StatusReport::success
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1662,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1670,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1674,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1682,1
    - Dst: StatusReporting::StatusReport::success
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1682,1
    - Dst: SubscriptionHandler*::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1685,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1689,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1694,1
    - Dst: StatusReporting::StatusReport::success
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1696,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1704,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1708,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1716,1
    - Dst: StatusReporting::StatusReport::success
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1716,1
    - Dst: SubscriptionHandler*::FlushExistingExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1720,1
    - Dst: SubscriptionHandler*::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1724,1
    - Dst: SubscriptionHandler*::RefreshTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1726,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1727,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1730,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1737,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1746,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1754,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1755,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1759,1
    - Dst: SubscriptionHandler*::FlushExistingExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1764,1
    - Dst: SubscriptionHandler*::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1772,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1779,1
    - Dst: SubscriptionHandler*::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1781,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 66
    argCount: 6
    argNames:
    - aEC
    - aPktInfo
    - aMsgInfo
    - aProfileId
    - aMsgType
    - aPayload
    argTypes:
    - nl::Weave::ExchangeContext*
    - nl::Inet::IPPacketInfo*
    - nl::Weave::WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1782
      start: 1614
    functionDepth: 2
    functionLinenumber: 1614
    functionLinenumberEnd: 1782
    functionName: nl::Weave::Profiles::SubscriptionHandler::OnMessageReceivedFromLocallyHeldExchange
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionHandler*::GetStateStr
    - SubscriptionHandler*::_Release
    - nl::Weave::System::PacketBuffer::Free
    - SubscriptionHandler*::TerminateSubscription
    - SubscriptionHandler*::_AddRef
    - StatusReporting::StatusReport::success
    - VerifyOrExit
    - nl::Weave::Profiles::StatusReporting::StatusReport::parse
    - ExitNow
    - SubscriptionEngine::GetInstance
    - WeaveLogFunctError
    - SubscriptionHandler*::RefreshTimer
    - WeaveLogDetail
    - SuccessOrExit
    - SubscriptionHandler*::MoveToState
    - SubscriptionHandler*::FlushExistingExchangeContext
    - reinterpret_cast<SubscriptionHandler *>
    linkageType: ''
    returnType: void
    signature: "SubscriptionHandler::OnMessageReceivedFromLocallyHeldExchange(nl::Weave::ExchangeContext
      * aEC,\n                                                                   const
      nl::Inet::IPPacketInfo * aPktInfo,\n                                                                   const
      nl::Weave::WeaveMessageInfo * aMsgInfo,\n                                                                   uint32_t
      aProfileId, uint8_t aMsgType, PacketBuffer * aPayload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aMaxSize
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1790
      start: 1784
    functionDepth: 0
    functionLinenumber: 1784
    functionLinenumberEnd: 1790
    functionName: nl::Weave::Profiles::SubscriptionHandler::SetMaxNotificationSize
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SubscriptionHandler::SetMaxNotificationSize(const uint32_t aMaxSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1797,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1797,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1798,1
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1800,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1803,1
    - Dst: AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1810,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::LoadSubscriptionState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1814,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1815,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1818,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1819,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1828,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::ReplaceExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1831,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1832,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1834,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1837,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1842,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1845,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 4
    argNames:
    - apBinding
    - apAppState
    - aEventCallback
    - ' reader'
    argTypes:
    - Binding*
    - void*
    - EventCallback
    - TLVReader
    constantsTouched: []
    func_position:
      end: 1848
      start: 1793
    functionDepth: 3
    functionLinenumber: 1793
    functionLinenumberEnd: 1848
    functionName: nl::Weave::Profiles::SubscriptionHandler::LoadFromPersistedState
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogIfFalse
    - nl::Weave::Profiles::SubscriptionHandler::GetStateStr
    - mEventCallback
    - nl::Weave::Profiles::SubscriptionHandler::MoveToState
    - AddRef
    - nl::Weave::Profiles::SubscriptionHandler::TerminateSubscription
    - nl::Weave::Profiles::SubscriptionHandler::_Release
    - SubscriptionEngine::GetInstance
    - WeaveLogFunctError
    - WeaveLogDetail
    - SuccessOrExit
    - nl::Weave::Profiles::SubscriptionHandler::_AddRef
    - nl::Weave::Profiles::SubscriptionHandler::LoadSubscriptionState
    - nl::Weave::Profiles::SubscriptionHandler::ReplaceExchangeContext
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionHandler::LoadFromPersistedState(Binding * const apBinding,
      void * const apAppState, EventCallback const aEventCallback, TLVReader & reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1856,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1857,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1858,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1859,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1861,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1861,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1862,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1863,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1864,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1866,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1866,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1867,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1868,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1869,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1871,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1871,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1872,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1873,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1874,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1876,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1876,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1877,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1878,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1879,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1881,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1881,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1882,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1883,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1884,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::LoadTraitInstances
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1886,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1887,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::LoadDeliveredEvents
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1889,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1890,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1892,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1893,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1899,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1908,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLVReader
    constantsTouched: []
    func_position:
      end: 1911
      start: 1850
    functionDepth: 1
    functionLinenumber: 1850
    functionLinenumberEnd: 1911
    functionName: nl::Weave::Profiles::SubscriptionHandler::LoadSubscriptionState
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SubscriptionHandler::LoadTraitInstances
    - EnterContainer
    - WeaveLogError
    - WeaveLogProgress
    - ExitContainer
    - Get
    - SuccessOrExit
    - nl::Weave::Profiles::SubscriptionHandler::LoadDeliveredEvents
    - nl::Weave::TLV::ContextTag
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionHandler::LoadSubscriptionState(TLVReader & reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionEnter
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1918,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1922,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1922,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1923,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1924,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1925,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1927,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1936,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1937,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1939,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1939,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1940,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1941,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1942,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1944,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1944,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1945,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1946,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1947,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1949,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1949,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1950,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1951,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1952,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1954,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1955,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1958,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1958,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1960,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1963,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1963,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1965,1
    - Dst: SYSTEM_STATS_INCREMENT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1966,1
    - Dst: TraitInstanceInfo*::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1968,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1976,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1996,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:1997,1
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2000,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2004,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 52
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLVReader
    constantsTouched: []
    func_position:
      end: 2007
      start: 1914
    functionDepth: 1
    functionLinenumber: 1914
    functionLinenumberEnd: 2007
    functionName: nl::Weave::Profiles::SubscriptionHandler::LoadTraitInstances
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 1
    functionsReached:
    - EnterContainer
    - WEAVE_FAULT_INJECT
    - WeaveLogError
    - SYSTEM_STATS_INCREMENT
    - nl::Weave::Profiles::Platform::CriticalSectionExit
    - ExitNow
    - SubscriptionEngine::GetInstance
    - ExitContainer
    - Get
    - SuccessOrExit
    - TraitInstanceInfo*::Init
    - nl::Weave::Profiles::Platform::CriticalSectionEnter
    - nl::Weave::TLV::ContextTag
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionHandler::LoadTraitInstances(TLVReader & reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2015,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2016,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2019,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2019,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2020,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2021,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2021,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2022,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2023,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2023,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2024,1
    - Dst: PutBoolean
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2025,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2025,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2026,1
    - Dst: PutBoolean
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2027,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2027,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2028,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::SerializeTraitInstances
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2030,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2031,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::SerializeDeliveredEvents
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2033,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2034,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2036,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2037,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - ' writer'
    argTypes:
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 2046
      start: 2009
    functionDepth: 1
    functionLinenumber: 2009
    functionLinenumberEnd: 2046
    functionName: nl::Weave::Profiles::SubscriptionHandler::SerializeSubscriptionState
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - StartContainer
    - nl::Weave::Profiles::SubscriptionHandler::SerializeDeliveredEvents
    - EndContainer
    - Put
    - SuccessOrExit
    - PutBoolean
    - nl::Weave::Profiles::SubscriptionHandler::SerializeTraitInstances
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionHandler::SerializeSubscriptionState(TLVWriter & writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionEnter
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2052,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2055,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2055,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2056,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2062,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2063,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2064,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2064,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2065,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2066,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2066,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2067,1
    - Dst: PutBoolean
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2068,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2068,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2069,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2071,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2072,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2075,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2076,1
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2079,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2083,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - ' writer'
    argTypes:
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 2086
      start: 2048
    functionDepth: 1
    functionLinenumber: 2048
    functionLinenumberEnd: 2086
    functionName: nl::Weave::Profiles::SubscriptionHandler::SerializeTraitInstances
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogError
    - StartContainer
    - nl::Weave::Profiles::Platform::CriticalSectionExit
    - EndContainer
    - Put
    - SuccessOrExit
    - PutBoolean
    - nl::Weave::Profiles::Platform::CriticalSectionEnter
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionHandler::SerializeTraitInstances(TLVWriter & writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionEnter
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2092,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2096,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2096,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2097,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2102,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2103,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2105,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2105,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2106,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2108,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2108,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2108,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2108,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2109,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2111,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2112,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2115,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2116,1
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2119,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - ' writer'
    argTypes:
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 2126
      start: 2088
    functionDepth: 1
    functionLinenumber: 2088
    functionLinenumberEnd: 2126
    functionName: nl::Weave::Profiles::SubscriptionHandler::SerializeDeliveredEvents
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogError
    - StartContainer
    - nl::Weave::Profiles::Platform::CriticalSectionExit
    - static_cast<uint32_t>
    - EndContainer
    - Put
    - SuccessOrExit
    - nl::Weave::Profiles::Platform::CriticalSectionEnter
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionHandler::SerializeDeliveredEvents(TLVWriter & writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionEnter
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2132,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2136,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2136,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2137,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2138,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2139,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2146,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2147,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2148,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2149,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2151,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2151,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2152,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2153,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2154,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2155,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2157,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2157,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2158,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2159,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2159,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2159,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2160,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2162,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2163,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2166,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2167,1
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2170,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp:2173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLVReader
    constantsTouched: []
    func_position:
      end: 2176
      start: 2128
    functionDepth: 1
    functionLinenumber: 2128
    functionLinenumberEnd: 2176
    functionName: nl::Weave::Profiles::SubscriptionHandler::LoadDeliveredEvents
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
    functionUses: 1
    functionsReached:
    - EnterContainer
    - WeaveLogError
    - nl::Weave::Profiles::Platform::CriticalSectionExit
    - static_cast<uint32_t>
    - VerifyOrExit
    - ExitContainer
    - Get
    - SuccessOrExit
    - nl::Weave::Profiles::Platform::CriticalSectionEnter
    - nl::Weave::TLV::ContextTag
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionHandler::LoadDeliveredEvents(TLVReader & reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: nl::Weave::Profiles::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: nl::Weave::Profiles::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: nl::Weave::Profiles::ResourceIdentifier::ResourceIdentifier
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ResourceIdentifier()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ResourceIdentifier::NormalizeResource
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' aNodeId'
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: nl::Weave::Profiles::ResourceIdentifier::ResourceIdentifier
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::ResourceIdentifier::NormalizeResource
    linkageType: ''
    returnType: void
    signature: ResourceIdentifier(const uint64_t & aNodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ResourceIdentifier::NormalizeResource
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aResourceType
    - ' aResourceId'
    argTypes:
    - uint16_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: nl::Weave::Profiles::ResourceIdentifier::ResourceIdentifier
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::ResourceIdentifier::NormalizeResource
    linkageType: ''
    returnType: void
    signature: ResourceIdentifier(uint16_t aResourceType, const uint64_t & aResourceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.h:108,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.h:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - aResourceType
    - aResourceId
    - aResourceIdLen
    argTypes:
    - uint16_t
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 114
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 114
    functionName: nl::Weave::Profiles::ResourceIdentifier::ResourceIdentifier
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.h
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: void
    signature: ResourceIdentifier(uint16_t aResourceType, const uint8_t * aResourceId,
      size_t aResourceIdLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 251
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 251
    functionName: nl::Weave::Profiles::ResourceIdentifier::GetResourceId
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: GetResourceId() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 257
    functionName: nl::Weave::Profiles::ResourceIdentifier::GetResourceType
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: GetResourceType() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - ResourceIdentifier
    - ResourceIdentifier
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: operator ==(const ResourceIdentifier & lhs, const ResourceIdentifier
      & rhs)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: operator ==(const ResourceIdentifier & lhs, const ResourceIdentifier
      & rhs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - ResourceIdentifier
    - ResourceIdentifier
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: operator !=(const ResourceIdentifier & lhs, const ResourceIdentifier
      & rhs)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: operator !=(const ResourceIdentifier & lhs, const ResourceIdentifier
      & rhs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: nl::Weave::Profiles::LoggingConfiguration::LoggingConfiguration
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingConfiguration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: LoggingConfiguration::LoggingConfiguration(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: nl::Weave::Profiles::LoggingConfiguration::SupportsPerProfileImportance
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingConfiguration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: LoggingConfiguration::SupportsPerProfileImportance(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - profileId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: nl::Weave::Profiles::LoggingConfiguration::GetProfileImportance
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingConfiguration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ImportanceType
    signature: LoggingConfiguration::GetProfileImportance(uint32_t profileId) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: '& LoggingConfiguration::GetInstance(void)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingConfiguration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LoggingConfiguration
    signature: '& LoggingConfiguration::GetInstance(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: nl::Weave::Profiles::LoggingConfiguration::GetDestNodeId
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingConfiguration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: LoggingConfiguration::GetDestNodeId() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: nl::Weave::Profiles::LoggingConfiguration::GetDestNodeIPAddress
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingConfiguration.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: nl::Inet::IPAddress
    signature: LoggingConfiguration::GetDestNodeIPAddress() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' aTraitPath'
    - ' aCatalog'
    argTypes:
    - TraitPath
    - TraitCatalogBase<TraitDataSink>
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: nl::Weave::Profiles::AlwaysAcceptDataElementAccessControlDelegate::DataElementAccessCheck
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "DataElementAccessCheck(const TraitPath & aTraitPath,\n                                        const
      TraitCatalogBase<TraitDataSink> & aCatalog)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: nl::Weave::Profiles::SubscriptionClient::SubscriptionClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::SubscriptionClient()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionClient::Reset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: nl::Weave::Profiles::SubscriptionClient::InitAsFree
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::Reset
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::InitAsFree()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionClient::Reset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:93,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:95,1
    - Dst: ArraySize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:95,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:96,1
    - Dst: ArraySize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 108
    functionName: nl::Weave::Profiles::SubscriptionClient::Reset
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 2
    functionsReached:
    - ArraySize
    - nl::Weave::Profiles::SubscriptionClient::Init
    - nl::Weave::Profiles::SubscriptionClient::Reset
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::Reset(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:118,1
    - Dst: Binding*::AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:121,1
    - Dst: SetProtocolLayerCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:130,1
    - Dst: const_cast <TraitCatalogBase<TraitDataSink>*>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:138,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:150,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:152,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:152,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:153,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:154,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:158,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:159,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::ConfigureUpdatableSinks
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 6
    argNames:
    - apBinding
    - apAppState
    - aEventCallback
    - apCatalog
    - aInactivityTimeoutDuringSubscribingMsec
    - aUpdateMutex
    argTypes:
    - Binding*
    - void*
    - EventCallback
    - TraitCatalogBase<TraitDataSink>*
    - uint32_t
    - IWeaveWDMMutex*
    constantsTouched: []
    func_position:
      end: 166
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 166
    functionName: nl::Weave::Profiles::SubscriptionClient::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::_AddRef
    - WeaveLogIfFalse
    - nl::Weave::Profiles::SubscriptionClient::GetStateStr
    - const_cast <TraitCatalogBase<TraitDataSink>*>
    - SetProtocolLayerCallback
    - SubscriptionEngine::GetInstance
    - nl::Weave::Profiles::SubscriptionClient::Init
    - WeaveLogDetail
    - nl::Weave::Profiles::SubscriptionClient::ConfigureUpdatableSinks
    - SuccessOrExit
    - Binding*::AddRef
    - nl::Weave::Profiles::SubscriptionClient::MoveToState
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscriptionClient::Init(Binding * const apBinding, void * const apAppState,
      EventCallback const aEventCallback,\n                                     const
      TraitCatalogBase<TraitDataSink> * const apCatalog,\n                                     const
      uint32_t aInactivityTimeoutDuringSubscribingMsec, IWeaveWDMMutex * aUpdateMutex)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:179,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:182,1
    - Dst: Binding*::AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:185,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::LoadSubscriptionState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:188,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:189,1
    - Dst: SetProtocolLayerCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:198,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_PrepareBinding
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:200,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:201,1
    - Dst: const_cast <TraitCatalogBase<TraitDataSink>*>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:209,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:220,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:221,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::ConfigureUpdatableSinks
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:223,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:228,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:229,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:231,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:231,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:232,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:240,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:246,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 7
    argNames:
    - apBinding
    - apAppState
    - aEventCallback
    - apCatalog
    - aInactivityTimeoutDuringSubscribingMsec
    - aUpdateMutex
    - ' reader'
    argTypes:
    - Binding*
    - void*
    - EventCallback
    - TraitCatalogBase<TraitDataSink>*
    - uint32_t
    - IWeaveWDMMutex*
    - TLVReader
    constantsTouched: []
    func_position:
      end: 252
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 252
    functionName: nl::Weave::Profiles::SubscriptionClient::LoadFromPersistedState
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::_AddRef
    - WeaveLogIfFalse
    - nl::Weave::Profiles::SubscriptionClient::GetStateStr
    - nl::Weave::Profiles::SubscriptionClient::_PrepareBinding
    - mEventCallback
    - const_cast <TraitCatalogBase<TraitDataSink>*>
    - SetProtocolLayerCallback
    - nl::Weave::Profiles::SubscriptionClient::_Release
    - nl::Weave::Profiles::SubscriptionClient::Init
    - SubscriptionEngine::GetInstance
    - nl::Weave::Profiles::SubscriptionClient::LoadSubscriptionState
    - WeaveLogDetail
    - nl::Weave::Profiles::SubscriptionClient::ConfigureUpdatableSinks
    - SuccessOrExit
    - Binding*::AddRef
    - nl::Weave::Profiles::SubscriptionClient::MoveToState
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscriptionClient::LoadFromPersistedState(Binding * const apBinding,
      void * const apAppState, EventCallback const aEventCallback,\n                                                       const
      TraitCatalogBase<TraitDataSink> * const apCatalog,\n                                                       const
      uint32_t aInactivityTimeoutDuringSubscribingMsec, IWeaveWDMMutex * aUpdateMutex,\n
      \                                                      TLVReader & reader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:260,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:261,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:263,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:263,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:264,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:265,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:265,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:266,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:268,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:269,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ' writer'
    argTypes:
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 278
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 278
    functionName: nl::Weave::Profiles::SubscriptionClient::SerializeSubscriptionState
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - StartContainer
    - EndContainer
    - Put
    - SuccessOrExit
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionClient::SerializeSubscriptionState(TLVWriter & writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:286,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:287,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:288,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:289,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:291,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:291,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:292,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:293,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:294,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:296,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:296,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:297,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:298,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:299,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:301,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:302,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLVReader
    constantsTouched: []
    func_position:
      end: 312
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 312
    functionName: nl::Weave::Profiles::SubscriptionClient::LoadSubscriptionState
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 1
    functionsReached:
    - EnterContainer
    - WeaveLogError
    - ExitContainer
    - Get
    - SuccessOrExit
    - nl::Weave::TLV::ContextTag
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionClient::LoadSubscriptionState(TLVReader & reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 348
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 348
    functionName: nl::Weave::Profiles::SubscriptionClient::GetStateStr
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* SubscriptionClient::GetStateStr() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 353
    functionName: nl::Weave::Profiles::SubscriptionClient::GetStateStr
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* SubscriptionClient::GetStateStr() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:359,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:359,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:360,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - aTargetState
    argTypes:
    - ClientState
    constantsTouched: []
    func_position:
      end: 368
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 368
    functionName: nl::Weave::Profiles::SubscriptionClient::MoveToState
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 2
    functionsReached:
    - SubscriptionEngine::GetInstance
    - nl::Weave::Profiles::SubscriptionClient::GetStateStr
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::MoveToState(const ClientState aTargetState)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - aCallback
    argTypes:
    - ResubscribePolicyCallback
    constantsTouched: []
    func_position:
      end: 388
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 388
    functionName: nl::Weave::Profiles::SubscriptionClient::EnableResubscribe
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::EnableResubscribe(ResubscribePolicyCallback aCallback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionClient::CancelSubscriptionTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:401,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::AbortSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 406
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 406
    functionName: nl::Weave::Profiles::SubscriptionClient::DisableResubscribe
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::CancelSubscriptionTimer
    - nl::Weave::Profiles::SubscriptionClient::AbortSubscription
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::DisableResubscribe(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionClient::CancelSubscriptionTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:416,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:417,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::SetRetryTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:424,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 426
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 426
    functionName: nl::Weave::Profiles::SubscriptionClient::ResetResubscribe
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::MoveToState
    - nl::Weave::Profiles::SubscriptionClient::CancelSubscriptionTimer
    - nl::Weave::Profiles::SubscriptionClient::SetRetryTimer
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::ResetResubscribe(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 436
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 436
    functionName: nl::Weave::Profiles::SubscriptionClient::IndicateActivity
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - mEventCallback
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::IndicateActivity(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:451,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:455,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - apSubscriptionId
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 462
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 462
    functionName: nl::Weave::Profiles::SubscriptionClient::GetSubscriptionId
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionClient::GetSubscriptionId(uint64_t * const apSubscriptionId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:466,1
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:467,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - EventID
    - InEventParam
    - OutEventParam
    constantsTouched: []
    func_position:
      end: 470
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 470
    functionName: nl::Weave::Profiles::SubscriptionClient::DefaultEventHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 2
    functionsReached:
    - IgnoreUnusedVariable
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::DefaultEventHandler(EventID aEvent, const InEventParam
      & aInParam, OutEventParam & aOutParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:484,1
    - Dst: GetFibonacciForIndex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:493,1
    - Dst: GetRandU32
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:504,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - aAppState
    - ' aInParam'
    - ' aOutIntervalMsec'
    argTypes:
    - void*
    - ResubscribeParam
    - uint32_t
    constantsTouched: []
    func_position:
      end: 516
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 516
    functionName: nl::Weave::Profiles::SubscriptionClient::DefaultResubscribePolicyCallback
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - GetRandU32
    - IgnoreUnusedVariable
    - WeaveLogDetail
    - GetFibonacciForIndex
    linkageType: ''
    returnType: void
    signature: "SubscriptionClient::DefaultResubscribePolicyCallback(void * const
      aAppState, ResubscribeParam & aInParam,\n                                                          uint32_t
      & aOutIntervalMsec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:522,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:522,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:523,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:526,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:528,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:530,1
    - Dst: IsReady
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:539,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::IsInitiator
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:542,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:544,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:548,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::SendSubscribeRequest
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:552,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:553,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::RefreshTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:555,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:556,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_PrepareBinding
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:560,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:561,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:565,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:569,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:572,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 573
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 573
    functionName: nl::Weave::Profiles::SubscriptionClient::_InitiateSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::_AddRef
    - nl::Weave::Profiles::SubscriptionClient::GetStateStr
    - nl::Weave::Profiles::SubscriptionClient::_PrepareBinding
    - nl::Weave::Profiles::SubscriptionClient::SendSubscribeRequest
    - IsReady
    - nl::Weave::Profiles::SubscriptionClient::TerminateSubscription
    - VerifyOrExit
    - nl::Weave::Profiles::SubscriptionClient::_Release
    - SubscriptionEngine::GetInstance
    - nl::Weave::Profiles::SubscriptionClient::RefreshTimer
    - WeaveLogFunctError
    - WeaveLogDetail
    - SuccessOrExit
    - nl::Weave::Profiles::SubscriptionClient::IsInitiator
    - nl::Weave::Profiles::SubscriptionClient::MoveToState
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::_InitiateSubscription(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetProtocolLayerCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:580,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:582,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:582,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:583,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:584,1
    - Dst: IsReady
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:586,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:588,1
    - Dst: CanBePrepared
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:590,1
    - Dst: RequestPrepare
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:596,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:597,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:604,1
    - Dst: IsPreparing
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:604,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:608,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 611
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 611
    functionName: nl::Weave::Profiles::SubscriptionClient::_PrepareBinding
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::_AddRef
    - nl::Weave::Profiles::SubscriptionClient::GetStateStr
    - IsReady
    - SetProtocolLayerCallback
    - RequestPrepare
    - ExitNow
    - VerifyOrExit
    - nl::Weave::Profiles::SubscriptionClient::_Release
    - SubscriptionEngine::GetInstance
    - CanBePrepared
    - WeaveLogDetail
    - SuccessOrExit
    - IsPreparing
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionClient::_PrepareBinding()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:621,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:621,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:622,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:624,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:625,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:631,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::IsCounterSubscriber
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:633,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:638,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:639,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:642,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:646,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:647,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:653,1
    - Dst: SubscribeRequest::Builder::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:655,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:656,1
    - Dst: SubscribeRequest::Builder::SubscribeTimeoutMin
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:660,1
    - Dst: SubscribeRequest::Builder::SubscribeTimeoutMax
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:664,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::IsCounterSubscriber
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:666,1
    - Dst: SubscribeRequest::Builder::SubscriptionID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:668,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:673,1
    - Dst: SubscribeRequest::Builder::GetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:673,1
    - Dst: SubscribeRequest::Builder::CreatePathListBuilder
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:676,1
    - Dst: Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:699,1
    - Dst: nl::Weave::TLV::TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:707,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:708,1
    - Dst: HandleToAddress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:711,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:723,1
    - Dst: TraitDataSink*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:726,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:727,1
    - Dst: nl::Weave::TLV::TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:730,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:731,1
    - Dst: EndOfPathList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:734,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:735,1
    - Dst: GetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:735,1
    - Dst: SubscribeRequest::Builder::CreateVersionListBuilder
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:739,1
    - Dst: Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:758,1
    - Dst: TraitDataSink*::IsVersionValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:765,1
    - Dst: AddVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:767,1
    - Dst: TraitDataSink*::GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:767,1
    - Dst: AddNull
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:771,1
    - Dst: TraitDataSink*::IsUpdatableDataSink
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:773,1
    - Dst: TraitDataSink*::IsVersionValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:773,1
    - Dst: static_cast<TraitUpdatableDataSink *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:775,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::ClearPotentialDataLoss
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:776,1
    - Dst: EndOfVersionList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:783,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:784,1
    - Dst: GetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:784,1
    - Dst: SubscribeRequest::Builder::SubscribeToAllEvents
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:789,1
    - Dst: SubscribeRequest::Builder::CreateLastObservedEventIdListBuilder
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:794,1
    - Dst: CreateEventBuilder
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:798,1
    - Dst: SourceId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:799,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:803,1
    - Dst: GetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:803,1
    - Dst: EndOfEventList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:805,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:806,1
    - Dst: GetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:806,1
    - Dst: SubscribeRequest::Builder::EndOfRequest
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:810,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:811,1
    - Dst: SubscribeRequest::Builder::GetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:811,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:813,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:814,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::ReplaceExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:817,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:818,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:821,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:831,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:833,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:834,1
    - Dst: SubscribeRequest::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:836,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:837,1
    - Dst: SubscribeRequest::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:839,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:840,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:844,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:847,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:850,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:854,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 115
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 859
      start: 613
    functionDepth: 3
    functionLinenumber: 613
    functionLinenumberEnd: 859
    functionName: nl::Weave::Profiles::SubscriptionClient::SendSubscribeRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::IsCounterSubscriber
    - SubscribeRequest::Builder::SubscribeTimeoutMin
    - GetError
    - EndOfVersionList
    - SubscribeRequest::Builder::CreatePathListBuilder
    - EndOfEventList
    - SourceId
    - SubscribeRequest::Builder::SubscribeTimeoutMax
    - nl::Weave::TLV::TLVReader::Init
    - WeaveLogFunctError
    - AddVersion
    - nl::Weave::System::PacketBuffer::New
    - nl::Weave::TLV::TLVWriter::StartContainer
    - nl::Weave::TLV::TLVReader::Next
    - SendMessage
    - nl::Weave::Profiles::SubscriptionClient::GetStateStr
    - mEventCallback
    - Locate
    - nl::Weave::System::PacketBuffer::Free
    - TraitDataSink*::IsUpdatableDataSink
    - VerifyOrExit
    - SubscriptionEngine::GetInstance
    - CreateEventBuilder
    - WeaveLogDetail
    - SubscribeRequest::Builder::CreateVersionListBuilder
    - nl::Weave::Profiles::SubscriptionClient::ClearPotentialDataLoss
    - TraitDataSink*::IsVersionValid
    - nl::Weave::TLV::TLVWriter::EndContainer
    - HandleToAddress
    - EndOfPathList
    - TraitDataSink*::GetSchemaEngine
    - SubscribeRequest::Builder::GetError
    - SubscribeRequest::Builder::CreateLastObservedEventIdListBuilder
    - InEventParam::Clear
    - SubscribeRequest::Parser::Init
    - static_cast<TraitUpdatableDataSink *>
    - TraitDataSink*::GetVersion
    - SubscribeRequest::Builder::Init
    - SubscribeRequest::Parser::CheckSchemaValidity
    - nl::Weave::Profiles::SubscriptionClient::ReplaceExchangeContext
    - nl::Weave::TLV::TLVWriter::Init
    - SubscribeRequest::Builder::SubscriptionID
    - OutEventParam::Clear
    - SubscribeRequest::Builder::SubscribeToAllEvents
    - AddNull
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::Finalize
    - SubscribeRequest::Builder::EndOfRequest
    - WEAVE_FAULT_INJECT
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionClient::SendSubscribeRequest(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionClient::IsRetryEnabled
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:869,1
    - Dst: IsPreparing
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:871,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::ResetResubscribe
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:873,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_InitiateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:878,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 880
      start: 865
    functionDepth: 3
    functionLinenumber: 865
    functionLinenumberEnd: 880
    functionName: nl::Weave::Profiles::SubscriptionClient::InitiateSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::IsRetryEnabled
    - nl::Weave::Profiles::SubscriptionClient::_InitiateSubscription
    - nl::Weave::Profiles::SubscriptionClient::ResetResubscribe
    - IsPreparing
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::InitiateSubscription(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionClient::_InitiateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - aLivenessTimeoutSec
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 890
      start: 882
    functionDepth: 3
    functionLinenumber: 882
    functionLinenumberEnd: 890
    functionName: nl::Weave::Profiles::SubscriptionClient::InitiateCounterSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::_InitiateSubscription
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::InitiateCounterSubscription(const uint32_t aLivenessTimeoutSec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 902
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 902
    functionName: nl::Weave::Profiles::SubscriptionClient::_AddRef
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 4
    functionsReached:
    - WeaveLogIfFalse
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::_AddRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:906,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::AbortSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:915,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_Cleanup
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:918,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:924,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::InitAsFree
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:927,1
    - Dst: SYSTEM_STATS_DECREMENT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:929,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:936,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:936,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:937,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 938
      start: 904
    functionDepth: 2
    functionLinenumber: 904
    functionLinenumberEnd: 938
    functionName: nl::Weave::Profiles::SubscriptionClient::_Release
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 3
    functionsReached:
    - WeaveLogIfFalse
    - SYSTEM_STATS_DECREMENT
    - nl::Weave::Profiles::SubscriptionClient::GetStateStr
    - nl::Weave::Profiles::SubscriptionClient::_Cleanup
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - nl::Weave::Profiles::SubscriptionClient::AbortSubscription
    - nl::Weave::Profiles::SubscriptionClient::MoveToState
    - nl::Weave::Profiles::SubscriptionClient::InitAsFree
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::_Release()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 943
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 943
    functionName: nl::Weave::Profiles::SubscriptionClient::GetBinding
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Binding
    signature: '* SubscriptionClient::GetBinding() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetPeerNodeId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 948
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 948
    functionName: nl::Weave::Profiles::SubscriptionClient::GetPeerNodeId
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::GetPeerNodeId
    linkageType: ''
    returnType: uint64_t
    signature: SubscriptionClient::GetPeerNodeId(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:956,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:956,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:957,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:959,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::FlushExistingExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:961,1
    - Dst: NewExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:963,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:964,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:978,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:981,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 986
      start: 950
    functionDepth: 3
    functionLinenumber: 950
    functionLinenumberEnd: 986
    functionName: nl::Weave::Profiles::SubscriptionClient::ReplaceExchangeContext
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::_AddRef
    - nl::Weave::Profiles::SubscriptionClient::GetStateStr
    - mEventCallback
    - nl::Weave::Profiles::SubscriptionClient::_Release
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - SuccessOrExit
    - nl::Weave::Profiles::SubscriptionClient::FlushExistingExchangeContext
    - WeaveLogFunctError
    - NewExchangeContext
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionClient::ReplaceExchangeContext()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Abort
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1001,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1005,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - aAbortNow
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1009
      start: 988
    functionDepth: 0
    functionLinenumber: 988
    functionLinenumberEnd: 1009
    functionName: nl::Weave::Profiles::SubscriptionClient::FlushExistingExchangeContext
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 1
    functionsReached:
    - Close
    - Abort
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::FlushExistingExchangeContext(const bool aAbortNow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1035,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1035,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1036,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1046,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1059,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::FlushExistingExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1065,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1070,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1071,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::ReplaceExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1073,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1074,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1076,1
    - Dst: SubscribeCancelRequest::Builder::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1077,1
    - Dst: SubscribeCancelRequest::Builder::SubscriptionID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1078,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1079,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1081,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1082,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1085,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1088,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1090,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1095,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1099,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1103,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1107,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1033
    functionDepth: 4
    functionLinenumber: 1033
    functionLinenumberEnd: 1120
    functionName: nl::Weave::Profiles::SubscriptionClient::EndSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - SendMessage
    - nl::Weave::Profiles::SubscriptionClient::GetStateStr
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::Profiles::SubscriptionClient::TerminateSubscription
    - VerifyOrExit
    - nl::Weave::Profiles::SubscriptionClient::_Release
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - SubscribeCancelRequest::Builder::Init
    - ExitNow
    - SubscribeCancelRequest::Builder::SubscriptionID
    - nl::Weave::Profiles::SubscriptionClient::ReplaceExchangeContext
    - nl::Weave::TLV::TLVWriter::Init
    - nl::Weave::Profiles::SubscriptionClient::_AddRef
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::Finalize
    - nl::Weave::Profiles::SubscriptionClient::FlushExistingExchangeContext
    - nl::Weave::Profiles::SubscriptionClient::MoveToState
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionClient::EndSubscription()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetProtocolLayerCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1126,1
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1127,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1132,1
    - Dst: Iterate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1122
    functionDepth: 0
    functionLinenumber: 1122
    functionLinenumberEnd: 1139
    functionName: nl::Weave::Profiles::SubscriptionClient::_Cleanup
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 1
    functionsReached:
    - Release
    - SetProtocolLayerCallback
    - Shutdown
    - Iterate
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::_Cleanup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1159,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1159,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1160,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1157
    functionDepth: 1
    functionLinenumber: 1157
    functionLinenumberEnd: 1167
    functionName: nl::Weave::Profiles::SubscriptionClient::AbortSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 2
    functionsReached:
    - SubscriptionEngine::GetInstance
    - nl::Weave::Profiles::SubscriptionClient::TerminateSubscription
    - nl::Weave::Profiles::SubscriptionClient::GetStateStr
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::AbortSubscription(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1176,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1176,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1177,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1180,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::FlushExistingExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1183,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::CancelSubscriptionTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1186,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1188,1
    - Dst: DispatchEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1200,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1209,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1210,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::ShouldSubscribe
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1214,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::IsRetryEnabled
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1214,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1223,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1227,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::ShouldSubscribe
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1233,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::IsRetryEnabled
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1233,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::SetRetryTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1235,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1239,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1245,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 3
    argNames:
    - aReason
    - aStatusReport
    - suppressAppCallback
    argTypes:
    - WEAVE_ERROR
    - StatusReporting::StatusReport*
    - bool
    constantsTouched: []
    func_position:
      end: 1247
      start: 1169
    functionDepth: 3
    functionLinenumber: 1169
    functionLinenumberEnd: 1247
    functionName: nl::Weave::Profiles::SubscriptionClient::TerminateSubscription
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::_AddRef
    - nl::Weave::Profiles::SubscriptionClient::GetStateStr
    - nl::Weave::Profiles::SubscriptionClient::CancelSubscriptionTimer
    - mEventCallback
    - nl::Weave::Profiles::SubscriptionClient::SetRetryTimer
    - DispatchEvent
    - OutEventParam::Clear
    - nl::Weave::Profiles::SubscriptionClient::ShouldSubscribe
    - InEventParam::Clear
    - nl::Weave::Profiles::SubscriptionClient::_Release
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - nl::Weave::Profiles::SubscriptionClient::IsRetryEnabled
    - nl::Weave::Profiles::SubscriptionClient::FlushExistingExchangeContext
    - nl::Weave::Profiles::SubscriptionClient::MoveToState
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::TerminateSubscription(WEAVE_ERROR aReason, StatusReporting::StatusReport
      * aStatusReport, bool suppressAppCallback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1253,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1253,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1254,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1255,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::ShouldSubscribe
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1259,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::IsRetryEnabled
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1259,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1263,1
    - Dst: mResubscribePolicyCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1270,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1272,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1272,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1274,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1276,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1277,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1277,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1285,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1288,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - aReason
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1289
      start: 1249
    functionDepth: 4
    functionLinenumber: 1249
    functionLinenumberEnd: 1289
    functionName: nl::Weave::Profiles::SubscriptionClient::SetRetryTimer
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::_AddRef
    - nl::Weave::Profiles::SubscriptionClient::GetStateStr
    - nl::Weave::Profiles::SubscriptionClient::TerminateSubscription
    - nl::Weave::Profiles::SubscriptionClient::ShouldSubscribe
    - mResubscribePolicyCallback
    - nl::Weave::Profiles::SubscriptionClient::_Release
    - SubscriptionEngine::GetInstance
    - SystemLayer::StartTimer
    - WeaveLogDetail
    - SuccessOrExit
    - nl::Weave::Profiles::SubscriptionClient::IsRetryEnabled
    - nl::Weave::Profiles::SubscriptionClient::MoveToState
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::SetRetryTimer(WEAVE_ERROR aReason)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1293,1
    - Dst: SystemLayer::CancelTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1291
    functionDepth: 0
    functionLinenumber: 1291
    functionLinenumberEnd: 1294
    functionName: nl::Weave::Profiles::SubscriptionClient::CancelSubscriptionTimer
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 3
    functionsReached:
    - SubscriptionEngine::GetInstance
    - SystemLayer::CancelTimer
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::CancelSubscriptionTimer(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1309,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1309,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1310,1
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1312,1
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1313,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::AbortSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1316,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::AbortUpdates
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1319,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1307
    functionDepth: 3
    functionLinenumber: 1307
    functionLinenumberEnd: 1324
    functionName: nl::Weave::Profiles::SubscriptionClient::Free
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogIfFalse
    - nl::Weave::Profiles::SubscriptionClient::GetStateStr
    - nl::Weave::Profiles::SubscriptionClient::_Release
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - nl::Weave::Profiles::SubscriptionClient::AbortSubscription
    - nl::Weave::Profiles::SubscriptionClient::AbortUpdates
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::Free()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SubscriptionClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1329,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1331,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1331,1
    - Dst: SubscriptionClient*::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1332,1
    - Dst: SubscriptionClient*::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1334,1
    - Dst: SubscriptionClient*::IsUpdatePendingOrInProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1340,1
    - Dst: SubscriptionClient*::IsUpdateInFlight
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1342,1
    - Dst: SubscriptionClient*::StartUpdateRetryTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1344,1
    - Dst: SubscriptionClient*::ShouldSubscribe
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1350,1
    - Dst: SubscriptionClient*::_InitiateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1352,1
    - Dst: SubscriptionClient*::IsUpdatePendingOrInProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1359,1
    - Dst: SubscriptionClient*::StartUpdateRetryTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1361,1
    - Dst: SubscriptionClient*::ShouldSubscribe
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1367,1
    - Dst: SubscriptionClient*::SetRetryTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1369,1
    - Dst: SubscriptionClient*::mUpdateClient::CancelUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1381,1
    - Dst: SubscriptionClient*::IsUpdatePendingOrInProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1382,1
    - Dst: SubscriptionClient*::StartUpdateRetryTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1384,1
    - Dst: SubscriptionClient*::IsInProgressOrEstablished
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1392,1
    - Dst: SubscriptionClient*::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1394,1
    - Dst: nl::Weave::Binding::DefaultEventHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1400,1
    - Dst: SubscriptionClient*::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1403,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 4
    argNames:
    - aAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - Binding::EventType
    - Binding::InEventParam
    - Binding::OutEventParam
    constantsTouched: []
    func_position:
      end: 1404
      start: 1326
    functionDepth: 1
    functionLinenumber: 1326
    functionLinenumberEnd: 1404
    functionName: nl::Weave::Profiles::SubscriptionClient::BindingEventCallback
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionClient*::_Release
    - SubscriptionClient*::_AddRef
    - SubscriptionClient*::SetRetryTimer
    - SubscriptionClient*::ShouldSubscribe
    - SubscriptionClient*::GetStateStr
    - SubscriptionClient*::IsInProgressOrEstablished
    - SubscriptionClient*::_InitiateSubscription
    - SubscriptionClient*::TerminateSubscription
    - SubscriptionClient*::IsUpdateInFlight
    - SubscriptionEngine::GetInstance
    - SubscriptionClient*::StartUpdateRetryTimer
    - reinterpret_cast<SubscriptionClient *>
    - WeaveLogDetail
    - SubscriptionClient*::IsUpdatePendingOrInProgress
    - nl::Weave::Binding::DefaultEventHandler
    - SubscriptionClient*::mUpdateClient::CancelUpdate
    linkageType: ''
    returnType: void
    signature: "SubscriptionClient::BindingEventCallback(void * const aAppState, const
      Binding::EventType aEvent,\n                                              const
      Binding::InEventParam & aInParam, Binding::OutEventParam & aOutParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SubscriptionClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1408,1
    - Dst: SubscriptionClient*::TimerEventHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aSystemLayer
    - aAppState
    argTypes:
    - System::Layer*
    - void*
    constantsTouched: []
    func_position:
      end: 1411
      start: 1406
    functionDepth: 0
    functionLinenumber: 1406
    functionLinenumberEnd: 1411
    functionName: nl::Weave::Profiles::SubscriptionClient::OnTimerCallback
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionClient*::TimerEventHandler
    - reinterpret_cast<SubscriptionClient *>
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::OnTimerCallback(System::Layer * aSystemLayer, void
      * aAppState, System::Error)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1419,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1419,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1420,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::CancelSubscriptionTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1423,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1436,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1438,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1438,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::IsInitiator
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1451,1
    - Dst: IsWRMTransport
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1451,1
    - Dst: GetDefaultWRMPConfig
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1455,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1467,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1469,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1471,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1477,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1478,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1478,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1485,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1490,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1490,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1493,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1497,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1413
    functionDepth: 1
    functionLinenumber: 1413
    functionLinenumberEnd: 1500
    functionName: nl::Weave::Profiles::SubscriptionClient::RefreshTimer
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::GetStateStr
    - nl::Weave::Profiles::SubscriptionClient::CancelSubscriptionTimer
    - GetDefaultWRMPConfig
    - VerifyOrExit
    - ExitNow
    - SubscriptionEngine::GetInstance
    - IsWRMTransport
    - SystemLayer::StartTimer
    - WeaveLogDetail
    - WeaveLogFunctError
    - nl::Weave::Profiles::SubscriptionClient::IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionClient::RefreshTimer(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1511,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1514,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1514,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1515,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1518,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1524,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1525,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1525,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1527,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::IsInitiator
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1531,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1533,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1534,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1534,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1539,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1540,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::ReplaceExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1542,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1543,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1545,1
    - Dst: SubscribeConfirmRequest::Builder::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1546,1
    - Dst: SubscribeConfirmRequest::Builder::SubscriptionID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1547,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1548,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1550,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1551,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1554,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1557,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1561,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1566,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1572,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1573,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1573,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1576,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1583,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::ShouldSubscribe
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1585,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_InitiateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1587,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1592,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1593,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1593,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1598,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1602,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1608,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1613,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1502
    functionDepth: 4
    functionLinenumber: 1502
    functionLinenumberEnd: 1615
    functionName: nl::Weave::Profiles::SubscriptionClient::TimerEventHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - SubscribeConfirmRequest::Builder::Init
    - WeaveLogFunctError
    - SendMessage
    - nl::Weave::Profiles::SubscriptionClient::GetStateStr
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::Profiles::SubscriptionClient::TerminateSubscription
    - nl::Weave::Profiles::SubscriptionClient::ShouldSubscribe
    - VerifyOrExit
    - nl::Weave::Profiles::SubscriptionClient::_Release
    - SubscriptionEngine::GetInstance
    - nl::Weave::Profiles::SubscriptionClient::_InitiateSubscription
    - WeaveLogDetail
    - ExitNow
    - nl::Weave::Profiles::SubscriptionClient::IsInitiator
    - nl::Weave::Profiles::SubscriptionClient::ReplaceExchangeContext
    - nl::Weave::TLV::TLVWriter::Init
    - nl::Weave::Profiles::SubscriptionClient::_AddRef
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - SubscribeConfirmRequest::Builder::SubscriptionID
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::Finalize
    - nl::Weave::Profiles::SubscriptionClient::MoveToState
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::TimerEventHandler(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1624,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1624,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1625,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1626,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::LockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1627,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::ProcessDataList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1630,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1631,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::IsUpdateInProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1634,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::PurgePendingUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1637,1
    - Dst: IsEmpty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1639,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::NoMorePendingEventCbHelper
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1641,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1649,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ' aReader'
    argTypes:
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 1653
      start: 1617
    functionDepth: 3
    functionLinenumber: 1617
    functionLinenumberEnd: 1653
    functionName: nl::Weave::Profiles::SubscriptionClient::ProcessDataList
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::_AddRef
    - nl::Weave::Profiles::SubscriptionClient::GetStateStr
    - nl::Weave::Profiles::SubscriptionClient::PurgePendingUpdate
    - nl::Weave::Profiles::SubscriptionClient::IsUpdateInProgress
    - nl::Weave::Profiles::SubscriptionClient::_Release
    - IsEmpty
    - SubscriptionEngine::GetInstance
    - nl::Weave::Profiles::SubscriptionEngine::ProcessDataList
    - WeaveLogDetail
    - SuccessOrExit
    - nl::Weave::Profiles::SubscriptionClient::LockUpdateMutex
    - nl::Weave::Profiles::SubscriptionClient::NoMorePendingEventCbHelper
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionClient::ProcessDataList(nl::Weave::TLV::TLVReader & aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1670,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1672,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1672,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1673,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1676,1
    - Dst: AdjustResponseTimeout
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1681,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1684,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1687,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1694,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::RefreshTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1697,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1698,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::RefreshTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1705,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1706,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1709,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetPeerNodeId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1709,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1716,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1720,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1722,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1724,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1725,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1731,1
    - Dst: DispatchEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1733,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1736,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1738,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1739,1
    - Dst: NotificationRequest::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1741,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1742,1
    - Dst: NotificationRequest::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1746,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1747,1
    - Dst: NotificationRequest::Parser::GetDataList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1754,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1764,1
    - Dst: DataList::Parser::GetReader
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1767,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::ProcessDataList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1772,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1773,1
    - Dst: NotificationRequest::Parser::GetEventList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1780,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1790,1
    - Dst: EventList::Parser::GetReader
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1793,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1802,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1811,1
    - Dst: DispatchEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1813,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1816,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1820,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1821,1
    - Dst: nl::Weave::ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1823,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1825,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1829,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1833,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1839,1
    - Dst: nl::Weave::ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1846,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1853,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1856,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 101
    argCount: 4
    argNames:
    - aEC
    - aPktInfo
    - aMsgInfo
    - aPayload
    argTypes:
    - nl::Weave::ExchangeContext*
    - nl::Inet::IPPacketInfo*
    - nl::Weave::WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1857
      start: 1655
    functionDepth: 4
    functionLinenumber: 1655
    functionLinenumberEnd: 1857
    functionName: nl::Weave::Profiles::SubscriptionClient::NotificationRequestHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::ProcessDataList
    - nl::Weave::ExchangeContext*::SendMessage
    - DispatchEvent
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    - nl::Weave::Profiles::SubscriptionClient::GetPeerNodeId
    - nl::Weave::Profiles::SubscriptionClient::GetStateStr
    - mEventCallback
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::Profiles::SubscriptionClient::TerminateSubscription
    - VerifyOrExit
    - nl::Weave::Profiles::SubscriptionClient::_Release
    - SubscriptionEngine::GetInstance
    - nl::Weave::Profiles::SubscriptionClient::RefreshTimer
    - NotificationRequest::Parser::CheckSchemaValidity
    - nl::Weave::ExchangeContext*::Close
    - WeaveLogDetail
    - DataList::Parser::GetReader
    - nl::Weave::Encoding::LittleEndian::Write32
    - NotificationRequest::Parser::GetDataList
    - PacketBuffer*::SetDataLength
    - ExitNow
    - InEventParam::Clear
    - NotificationRequest::Parser::Init
    - nl::Weave::Encoding::LittleEndian::Write16
    - EventList::Parser::GetReader
    - nl::Weave::Profiles::SubscriptionClient::_AddRef
    - AdjustResponseTimeout
    - OutEventParam::Clear
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - NotificationRequest::Parser::GetEventList
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: "SubscriptionClient::NotificationRequestHandler(nl::Weave::ExchangeContext
      * aEC, const nl::Inet::IPPacketInfo * aPktInfo,\n                                                    const
      nl::Weave::WeaveMessageInfo * aMsgInfo, PacketBuffer * aPayload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1865,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1871,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1871,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1872,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1875,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1877,1
    - Dst: IsAuthenticMessageFromPeer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1881,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1883,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1889,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1890,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1891,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1892,1
    - Dst: nl::Weave::ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1894,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1896,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::FlushExistingExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1901,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1904,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1906,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1913,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1916,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 4
    argNames:
    - aEC
    - aPktInfo
    - aMsgInfo
    - aPayload
    argTypes:
    - nl::Weave::ExchangeContext*
    - nl::Inet::IPPacketInfo*
    - nl::Weave::WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1917
      start: 1860
    functionDepth: 4
    functionLinenumber: 1860
    functionLinenumberEnd: 1917
    functionName: nl::Weave::Profiles::SubscriptionClient::CancelRequestHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::_AddRef
    - PacketBuffer*::SetDataLength
    - nl::Weave::Profiles::SubscriptionClient::GetStateStr
    - nl::Weave::Encoding::LittleEndian::Write16
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::ExchangeContext*::SendMessage
    - nl::Weave::Profiles::SubscriptionClient::TerminateSubscription
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - nl::Weave::Profiles::SubscriptionClient::_Release
    - SubscriptionEngine::GetInstance
    - SuccessOrExit
    - WeaveLogDetail
    - IsAuthenticMessageFromPeer
    - PacketBuffer*::Start
    - nl::Weave::Profiles::SubscriptionClient::FlushExistingExchangeContext
    - nl::Weave::Encoding::LittleEndian::Write32
    - WeaveLogFunctError
    linkageType: ''
    returnType: void
    signature: "SubscriptionClient::CancelRequestHandler(nl::Weave::ExchangeContext
      * aEC, const nl::Inet::IPPacketInfo * aPktInfo,\n                                              const
      nl::Weave::WeaveMessageInfo * aMsgInfo, PacketBuffer * aPayload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1924,1
    - Dst: reinterpret_cast<SubscriptionClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1925,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1928,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1928,1
    - Dst: SubscriptionClient*::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1929,1
    - Dst: SubscriptionClient*::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1932,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1940,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1946,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1960,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1965,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1969,1
    - Dst: SubscriptionClient*::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1973,1
    - Dst: SubscriptionClient*::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1976,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - aEC
    - aErrorCode
    - aMsgSpecificContext
    argTypes:
    - ExchangeContext*
    - WEAVE_ERROR
    - void*
    constantsTouched: []
    func_position:
      end: 1977
      start: 1920
    functionDepth: 0
    functionLinenumber: 1920
    functionLinenumberEnd: 1977
    functionName: nl::Weave::Profiles::SubscriptionClient::OnSendError
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionClient*::_Release
    - SubscriptionClient*::_AddRef
    - IgnoreUnusedVariable
    - SubscriptionClient*::GetStateStr
    - SubscriptionClient*::TerminateSubscription
    - ExitNow
    - SubscriptionEngine::GetInstance
    - reinterpret_cast<SubscriptionClient *>
    - WeaveLogDetail
    - WeaveLogFunctError
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::OnSendError(ExchangeContext * aEC, WEAVE_ERROR
      aErrorCode, void * aMsgSpecificContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SubscriptionClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1981,1
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1983,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1985,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1985,1
    - Dst: SubscriptionClient*::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1986,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::OnSendError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:1988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - aEC
    argTypes:
    - nl::Weave::ExchangeContext*
    constantsTouched: []
    func_position:
      end: 1989
      start: 1979
    functionDepth: 1
    functionLinenumber: 1979
    functionLinenumberEnd: 1989
    functionName: nl::Weave::Profiles::SubscriptionClient::OnResponseTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - IgnoreUnusedVariable
    - nl::Weave::Profiles::SubscriptionClient::OnSendError
    - SubscriptionClient*::GetStateStr
    - SubscriptionEngine::GetInstance
    - reinterpret_cast<SubscriptionClient *>
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::OnResponseTimeout(nl::Weave::ExchangeContext *
      aEC)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SubscriptionClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2004,1
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::StatusReport
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2008,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2010,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2010,1
    - Dst: SubscriptionClient*::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2011,1
    - Dst: SubscriptionClient*::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2014,1
    - Dst: WeaveLogIfFalse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2016,1
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::parse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2022,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2023,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2025,1
    - Dst: nl::StatusReportStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2025,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2034,1
    - Dst: SubscriptionClient*::NotificationRequestHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2041,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2048,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2049,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2050,1
    - Dst: SubscribeResponse::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2053,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2054,1
    - Dst: SubscribeResponse::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2058,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2059,1
    - Dst: SubscribeResponse::Parser::GetSubscriptionID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2064,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2065,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2074,1
    - Dst: SubscribeResponse::Parser::GetSubscribeTimeout
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2081,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2085,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2096,1
    - Dst: SubscriptionClient*::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2101,1
    - Dst: SubscriptionClient*::RefreshTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2103,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2104,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2108,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2112,1
    - Dst: SubscriptionClient*::mBinding::GetPeerNodeId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2112,1
    - Dst: SubscriptionClient*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2123,1
    - Dst: SubscriptionClient*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2129,1
    - Dst: SubscriptionClient*::LockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2133,1
    - Dst: SubscriptionClient*::IsUpdatePendingOrInProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2134,1
    - Dst: SubscriptionClient*::CheckForSinksWithDataLoss
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2136,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2138,1
    - Dst: SubscriptionClient*::UnlockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2141,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2144,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2149,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2156,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2159,1
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::success
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2159,1
    - Dst: SubscriptionClient*::FlushExistingExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2162,1
    - Dst: SubscriptionClient*::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2163,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2165,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2166,1
    - Dst: SubscriptionClient*::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2166,1
    - Dst: SubscriptionClient*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2173,1
    - Dst: SubscriptionClient*::RefreshTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2177,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2178,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2181,1
    - Dst: SubscriptionClient*::mBinding::GetPeerNodeId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2181,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2192,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2200,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2201,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2205,1
    - Dst: SubscriptionClient*::FlushExistingExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2210,1
    - Dst: SubscriptionClient*::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2218,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2225,1
    - Dst: SubscriptionClient*::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2227,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 106
    argCount: 6
    argNames:
    - aEC
    - aPktInfo
    - aMsgInfo
    - aProfileId
    - aMsgType
    - aPayload
    argTypes:
    - nl::Weave::ExchangeContext*
    - nl::Inet::IPPacketInfo*
    - nl::Weave::WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 2228
      start: 1991
    functionDepth: 2
    functionLinenumber: 1991
    functionLinenumberEnd: 2228
    functionName: nl::Weave::Profiles::SubscriptionClient::OnMessageReceivedFromLocallyInitiatedExchange
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionClient*::_AddRef
    - nl::StatusReportStr
    - SubscriptionClient*::GetStateStr
    - nl::Weave::Profiles::StatusReporting::StatusReport::success
    - SubscriptionClient*::MoveToState
    - SubscribeResponse::Parser::GetSubscribeTimeout
    - SubscriptionClient*::TerminateSubscription
    - SubscriptionClient*::mEventCallback
    - SubscriptionClient*::IsUpdatePendingOrInProgress
    - SubscriptionClient*::RefreshTimer
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Init
    - SubscriptionClient*::mBinding::GetPeerNodeId
    - nl::Weave::TLV::TLVReader::Next
    - nl::Weave::System::PacketBuffer::Free
    - SubscribeResponse::Parser::GetSubscriptionID
    - nl::Weave::Profiles::StatusReporting::StatusReport::parse
    - VerifyOrExit
    - SubscriptionEngine::GetInstance
    - reinterpret_cast<SubscriptionClient *>
    - WeaveLogDetail
    - SubscriptionClient*::CheckForSinksWithDataLoss
    - SubscribeResponse::Parser::Init
    - ExitNow
    - SubscriptionClient*::LockUpdateMutex
    - SubscriptionClient*::UnlockUpdateMutex
    - SubscribeResponse::Parser::CheckSchemaValidity
    - SubscriptionClient*::NotificationRequestHandler
    - SubscriptionClient*::_Release
    - WeaveLogIfFalse
    - SubscriptionClient*::FlushExistingExchangeContext
    - nl::Weave::Profiles::StatusReporting::StatusReport::StatusReport
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: "SubscriptionClient::OnMessageReceivedFromLocallyInitiatedExchange(nl::Weave::ExchangeContext
      * aEC,\n                                                                       const
      nl::Inet::IPPacketInfo * aPktInfo,\n                                                                       const
      nl::Weave::WeaveMessageInfo * aMsgInfo,\n                                                                       uint32_t
      aProfileId, uint8_t aMsgType,\n                                                                       PacketBuffer
      * aPayload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2236,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2238,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2238,1
    - Dst: mResubscribePolicyCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2250,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2252,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2254,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2254,1
    - Dst: WeaveDie
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - aReason
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 2266
      start: 2231
    functionDepth: 1
    functionLinenumber: 2231
    functionLinenumberEnd: 2266
    functionName: nl::Weave::Profiles::SubscriptionClient::StartUpdateRetryTimer
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - mResubscribePolicyCallback
    - VerifyOrExit
    - SubscriptionEngine::GetInstance
    - SystemLayer::StartTimer
    - WeaveLogDetail
    - WeaveDie
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::StartUpdateRetryTimer(WEAVE_ERROR aReason)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2270,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2274,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2274,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::FormAndSendUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2280
      start: 2268
    functionDepth: 1
    functionLinenumber: 2268
    functionLinenumberEnd: 2280
    functionName: nl::Weave::Profiles::SubscriptionClient::UpdateTimerEventHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::FormAndSendUpdate
    - VerifyOrExit
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::UpdateTimerEventHandler()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SubscriptionClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2284,1
    - Dst: SubscriptionClient*::UpdateTimerEventHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aSystemLayer
    - aAppState
    argTypes:
    - System::Layer*
    - void*
    constantsTouched: []
    func_position:
      end: 2287
      start: 2282
    functionDepth: 0
    functionLinenumber: 2282
    functionLinenumberEnd: 2287
    functionName: nl::Weave::Profiles::SubscriptionClient::OnUpdateTimerCallback
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionClient*::UpdateTimerEventHandler
    - reinterpret_cast<SubscriptionClient *>
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::OnUpdateTimerCallback(System::Layer * aSystemLayer,
      void * aAppState, System::Error)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SubscriptionClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2291,1
    - Dst: SubscriptionClient*::LockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2293,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2296,1
    - Dst: SubscriptionClient*::StartUpdateRetryTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2303,1
    - Dst: SubscriptionClient*::UnlockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2306,1
    - Dst: SubscriptionClient*::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - aSystemLayer
    - aAppState
    argTypes:
    - System::Layer*
    - void*
    constantsTouched: []
    func_position:
      end: 2308
      start: 2289
    functionDepth: 0
    functionLinenumber: 2289
    functionLinenumberEnd: 2308
    functionName: nl::Weave::Profiles::SubscriptionClient::OnUpdateScheduleWorkCallback
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionClient*::_Release
    - VerifyOrExit
    - SubscriptionClient*::StartUpdateRetryTimer
    - reinterpret_cast<SubscriptionClient *>
    - SubscriptionClient*::UnlockUpdateMutex
    - SubscriptionClient*::LockUpdateMutex
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::OnUpdateScheduleWorkCallback(System::Layer * aSystemLayer,
      void * aAppState, System::Error)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aMaxSize
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2316
      start: 2310
    functionDepth: 0
    functionLinenumber: 2310
    functionLinenumberEnd: 2316
    functionName: nl::Weave::Profiles::SubscriptionClient::SetMaxUpdateSize
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::SetMaxUpdateSize(const uint32_t aMaxSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2330,1
    - Dst: GetNextValidItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2331,1
    - Dst: GetItemAt
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2333,1
    - Dst: AreFlagsSet
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2335,1
    - Dst: Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2339,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::AddItemPendingUpdateSet
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2341,1
    - Dst: TraitDataSink*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2341,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2342,1
    - Dst: RemoveItemAt
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2347,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2353,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::SetPendingSetState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2355,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2359,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::Reset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2361,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2364,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2367
      start: 2322
    functionDepth: 2
    functionLinenumber: 2322
    functionLinenumberEnd: 2367
    functionName: nl::Weave::Profiles::SubscriptionClient::MoveInProgressToPending
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - GetItemAt
    - nl::Weave::Profiles::SubscriptionClient::SetPendingSetState
    - TraitDataSink*::GetSchemaEngine
    - Locate
    - GetNextValidItem
    - nl::Weave::Profiles::SubscriptionClient::Clear
    - nl::Weave::Profiles::SubscriptionClient::AddItemPendingUpdateSet
    - SuccessOrExit
    - AreFlagsSet
    - WeaveLogDetail
    - GetPathStoreSize
    - GetNumItems
    - nl::Weave::Profiles::SubscriptionClient::Reset
    - RemoveItemAt
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionClient::MoveInProgressToPending(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2373,1
    - Dst: IsEmpty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2373,1
    - Dst: Iterate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2377,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2380,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::SetPendingSetState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2384
      start: 2371
    functionDepth: 1
    functionLinenumber: 2371
    functionLinenumberEnd: 2384
    functionName: nl::Weave::Profiles::SubscriptionClient::MovePendingToInProgress
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - Iterate
    - nl::Weave::Profiles::SubscriptionClient::Clear
    - IsEmpty
    - nl::Weave::Profiles::SubscriptionClient::SetPendingSetState
    - VerifyOrDie
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionClient::MovePendingToInProgress(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<SubscriptionClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2388,1
    - Dst: static_cast<TraitDataSink *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2389,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2393,1
    - Dst: TraitDataSink*::IsUpdatableDataSink
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2393,1
    - Dst: SubscriptionClient*::mPendingUpdateSet::GetPathStoreSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2396,1
    - Dst: SubscriptionClient*::mPendingUpdateSet::GetNextValidItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2397,1
    - Dst: SubscriptionClient*::mPendingUpdateSet::GetItemAt
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2401,1
    - Dst: SubscriptionClient*::mInProgressUpdateList::AddItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2403,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2404,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - aDataSink
    - aDataHandle
    - aContext
    argTypes:
    - void*
    - TraitDataHandle
    - void*
    constantsTouched: []
    func_position:
      end: 2411
      start: 2386
    functionDepth: 0
    functionLinenumber: 2386
    functionLinenumberEnd: 2411
    functionName: nl::Weave::Profiles::SubscriptionClient::MovePendingToInProgressUpdatableSinkTrait
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionClient*::mPendingUpdateSet::GetItemAt
    - static_cast<TraitDataSink *>
    - static_cast<SubscriptionClient *>
    - SubscriptionClient*::mPendingUpdateSet::GetPathStoreSize
    - SubscriptionClient*::mPendingUpdateSet::GetNextValidItem
    - TraitDataSink*::IsUpdatableDataSink
    - VerifyOrExit
    - WeaveLogDetail
    - SuccessOrExit
    - SubscriptionClient*::mInProgressUpdateList::AddItem
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::MovePendingToInProgressUpdatableSinkTrait(void
      * aDataSink, TraitDataHandle aDataHandle, void * aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitPathStore::GetPathStoreSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2426,1
    - Dst: TraitPathStore::IsItemInUse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2428,1
    - Dst: TraitPathStore::IsItemFailed
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2432,1
    - Dst: TraitPathStore::GetItemAt
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2436,1
    - Dst: Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2437,1
    - Dst: TraitPathStore::RemoveItemAt
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2443,1
    - Dst: TraitUpdatableDataSink*::ClearVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2447,1
    - Dst: TraitUpdatableDataSink*::ClearUpdateRequiredVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2448,1
    - Dst: TraitUpdatableDataSink*::SetConditionalUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2449,1
    - Dst: TraitPathStore::RemoveItemAt
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2451,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::UpdateCompleteEventCbHelper
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2455,1
    - Dst: TraitPathStore::IsEmpty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2465,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::SetPendingSetState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2467,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::Reset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2471,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - aErr
    - aPathStore
    - aCount
    argTypes:
    - WEAVE_ERROR
    - TraitPathStore
    - size_t
    constantsTouched: []
    func_position:
      end: 2475
      start: 2420
    functionDepth: 2
    functionLinenumber: 2420
    functionLinenumberEnd: 2475
    functionName: nl::Weave::Profiles::SubscriptionClient::PurgeAndNotifyFailedPaths
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - TraitUpdatableDataSink*::SetConditionalUpdate
    - TraitPathStore::IsItemInUse
    - TraitPathStore::IsItemFailed
    - nl::Weave::Profiles::SubscriptionClient::SetPendingSetState
    - TraitPathStore::GetPathStoreSize
    - Locate
    - TraitPathStore::GetItemAt
    - nl::Weave::Profiles::SubscriptionClient::UpdateCompleteEventCbHelper
    - TraitUpdatableDataSink*::ClearUpdateRequiredVersion
    - TraitPathStore::IsEmpty
    - TraitPathStore::RemoveItemAt
    - TraitUpdatableDataSink*::ClearVersion
    - nl::Weave::Profiles::SubscriptionClient::Reset
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::PurgeAndNotifyFailedPaths(WEAVE_ERROR aErr, TraitPathStore
      &aPathStore, size_t &aCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddItemDedup
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2481,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - aItem
    - aSchemaEngine
    argTypes:
    - TraitPath
    - TraitSchemaEngine*
    constantsTouched: []
    func_position:
      end: 2485
      start: 2477
    functionDepth: 0
    functionLinenumber: 2477
    functionLinenumberEnd: 2485
    functionName: nl::Weave::Profiles::SubscriptionClient::AddItemPendingUpdateSet
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 1
    functionsReached:
    - AddItemDedup
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionClient::AddItemPendingUpdateSet(const TraitPath &aItem,
      const TraitSchemaEngine * const aSchemaEngine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitUpdatableDataSink::IsPotentialDataLoss
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2489,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2491,1
    - Dst: TraitUpdatableDataSink::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2492,1
    - Dst: TraitUpdatableDataSink::SetPotentialDataLoss
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - aTraitDataHandle
    - aUpdatableSink
    argTypes:
    - TraitDataHandle
    - TraitUpdatableDataSink
    constantsTouched: []
    func_position:
      end: 2496
      start: 2487
    functionDepth: 0
    functionLinenumber: 2487
    functionLinenumberEnd: 2496
    functionName: nl::Weave::Profiles::SubscriptionClient::ClearPotentialDataLoss
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 1
    functionsReached:
    - TraitUpdatableDataSink::IsPotentialDataLoss
    - TraitUpdatableDataSink::GetSchemaEngine
    - WeaveLogDetail
    - TraitUpdatableDataSink::SetPotentialDataLoss
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::ClearPotentialDataLoss(TraitDataHandle aTraitDataHandle,
      TraitUpdatableDataSink &aUpdatableSink)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitUpdatableDataSink::IsConditionalUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2500,1
    - Dst: IsVersionNewer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2501,1
    - Dst: TraitUpdatableDataSink::GetUpdateRequiredVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2501,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2503,1
    - Dst: TraitUpdatableDataSink::GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2507,1
    - Dst: TraitUpdatableDataSink::IsVersionValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2508,1
    - Dst: TraitUpdatableDataSink::GetUpdateRequiredVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2509,1
    - Dst: SetFailedTrait
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - aTraitDataHandle
    - aSink
    - aLatestVersion
    argTypes:
    - TraitDataHandle
    - TraitUpdatableDataSink
    - DataVersion
    constantsTouched: []
    func_position:
      end: 2516
      start: 2498
    functionDepth: 0
    functionLinenumber: 2498
    functionLinenumberEnd: 2516
    functionName: nl::Weave::Profiles::SubscriptionClient::MarkFailedPendingPaths
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - TraitUpdatableDataSink::GetUpdateRequiredVersion
    - TraitUpdatableDataSink::IsConditionalUpdate
    - SetFailedTrait
    - IsVersionNewer
    - TraitUpdatableDataSink::GetVersion
    - TraitUpdatableDataSink::IsVersionValid
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::MarkFailedPendingPaths(TraitDataHandle aTraitDataHandle,
      TraitUpdatableDataSink &aSink, const DataVersion &aLatestVersion)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Includes
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2524,1
    - Dst: TraitPath
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2524,1
    - Dst: Includes
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2525,1
    - Dst: TraitPath
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2525,1
    - Dst: Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2529,1
    - Dst: TraitUpdatableDataSink*::IsPotentialDataLoss
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2531,1
    - Dst: TraitUpdatableDataSink*::SetPotentialDataLoss
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2533,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2535,1
    - Dst: TraitSchemaEngine*::GetProfileId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2536,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - aTraitDataHandle
    - aLeafPathHandle
    - aSchemaEngine
    argTypes:
    - TraitDataHandle
    - PropertyPathHandle
    - TraitSchemaEngine*
    constantsTouched: []
    func_position:
      end: 2541
      start: 2518
    functionDepth: 0
    functionLinenumber: 2518
    functionLinenumberEnd: 2541
    functionName: nl::Weave::Profiles::SubscriptionClient::FilterNotifiedPath
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - TraitSchemaEngine*::GetProfileId
    - TraitPath
    - Locate
    - Includes
    - TraitUpdatableDataSink*::IsPotentialDataLoss
    - WeaveLogDetail
    - TraitUpdatableDataSink*::SetPotentialDataLoss
    linkageType: ''
    returnType: bool
    signature: "SubscriptionClient::FilterNotifiedPath(TraitDataHandle aTraitDataHandle,\n
      \                                           PropertyPathHandle aLeafPathHandle,\n
      \                                           const TraitSchemaEngine * const
      aSchemaEngine)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2549
      start: 2543
    functionDepth: 0
    functionLinenumber: 2543
    functionLinenumberEnd: 2549
    functionName: nl::Weave::Profiles::SubscriptionClient::LockUpdateMutex
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 1
    functionsReached:
    - Lock
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::LockUpdateMutex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unlock
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2557
      start: 2551
    functionDepth: 0
    functionLinenumber: 2551
    functionLinenumberEnd: 2557
    functionName: nl::Weave::Profiles::SubscriptionClient::UnlockUpdateMutex
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - Unlock
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::UnlockUpdateMutex()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - aErr
    - aStatusProfileId
    - aStatusCode
    argTypes:
    - WEAVE_ERROR
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2577
      start: 2559
    functionDepth: 0
    functionLinenumber: 2559
    functionLinenumberEnd: 2577
    functionName: nl::Weave::Profiles::SubscriptionClient::WillRetryUpdate
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: SubscriptionClient::WillRetryUpdate(WEAVE_ERROR aErr, uint32_t aStatusProfileId,
      uint16_t aStatusCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2595,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2596,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2605,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - aTraitPath
    - aStatusProfileId
    - aStatusCode
    - aReason
    - aWillRetry
    argTypes:
    - TraitPath
    - uint32_t
    - uint16_t
    - WEAVE_ERROR
    - bool
    constantsTouched: []
    func_position:
      end: 2606
      start: 2579
    functionDepth: 0
    functionLinenumber: 2579
    functionLinenumberEnd: 2606
    functionName: nl::Weave::Profiles::SubscriptionClient::UpdateCompleteEventCbHelper
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 1
    functionsReached:
    - OutEventParam::Clear
    - mEventCallback
    - InEventParam::Clear
    linkageType: ''
    returnType: void
    signature: "SubscriptionClient::UpdateCompleteEventCbHelper(const TraitPath &aTraitPath,\n
      \                                                    uint32_t aStatusProfileId,\n
      \                                                    uint16_t aStatusCode,\n
      \                                                    WEAVE_ERROR aReason,\n
      \                                                    bool aWillRetry)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2613,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2614,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2617
      start: 2608
    functionDepth: 0
    functionLinenumber: 2608
    functionLinenumberEnd: 2617
    functionName: nl::Weave::Profiles::SubscriptionClient::NoMorePendingEventCbHelper
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 1
    functionsReached:
    - OutEventParam::Clear
    - mEventCallback
    - InEventParam::Clear
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::NoMorePendingEventCbHelper()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - aState
    argTypes:
    - PendingSetState
    constantsTouched: []
    func_position:
      end: 2626
      start: 2619
    functionDepth: 0
    functionLinenumber: 2619
    functionLinenumberEnd: 2626
    functionName: nl::Weave::Profiles::SubscriptionClient::SetPendingSetState
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 3
    functionsReached:
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::SetPendingSetState(PendingSetState aState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2636,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2651,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2651,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2652,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2654,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::LockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2656,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::ClearUpdateInFlight
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2659,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2663,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2666,1
    - Dst: nl::StatusReportStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2666,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2667,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2686,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2688,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2689,1
    - Dst: UpdateResponse::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2691,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2692,1
    - Dst: UpdateResponse::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2695,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2696,1
    - Dst: UpdateResponse::Parser::GetVersionList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2699,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2709,1
    - Dst: UpdateResponse::Parser::GetStatusList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2713,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2723,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2730,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2731,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2738,1
    - Dst: GetNextValidItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2739,1
    - Dst: VersionList::Parser::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2743,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2744,1
    - Dst: VersionList::Parser::GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2746,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2747,1
    - Dst: StatusList::Parser::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2752,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2753,1
    - Dst: StatusList::Parser::GetProfileIDAndStatusCode
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2755,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2756,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2759,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::WillRetryUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2772,1
    - Dst: AreFlagsSet
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2774,1
    - Dst: GetItemAt
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2776,1
    - Dst: Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2778,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2783,1
    - Dst: RemoveItemAt
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2785,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2789,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2791,1
    - Dst: RemoveItemAt
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2796,1
    - Dst: TraitUpdatableDataSink*::IsConditionalUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2798,1
    - Dst: TraitUpdatableDataSink*::IsVersionValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2800,1
    - Dst: TraitUpdatableDataSink*::GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2801,1
    - Dst: TraitUpdatableDataSink*::GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2802,1
    - Dst: TraitUpdatableDataSink*::GetUpdateStartVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2802,1
    - Dst: TraitUpdatableDataSink*::SetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2804,1
    - Dst: IsPresent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2806,1
    - Dst: TraitUpdatableDataSink*::SetUpdateRequiredVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2808,1
    - Dst: TraitUpdatableDataSink*::ClearUpdateRequiredVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2812,1
    - Dst: TraitUpdatableDataSink*::SetConditionalUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2813,1
    - Dst: TraitUpdatableDataSink*::IsPotentialDataLoss
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2817,1
    - Dst: TraitUpdatableDataSink*::IsVersionValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2818,1
    - Dst: TraitUpdatableDataSink*::GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2819,1
    - Dst: TraitUpdatableDataSink*::GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2820,1
    - Dst: TraitUpdatableDataSink*::GetUpdateStartVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2820,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::ClearPotentialDataLoss
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2822,1
    - Dst: RemoveItemAt
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2830,1
    - Dst: IsTraitPresent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2833,1
    - Dst: SetFailedTrait
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2835,1
    - Dst: TraitUpdatableDataSink*::ClearVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2837,1
    - Dst: TraitUpdatableDataSink*::ClearUpdateRequiredVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2838,1
    - Dst: TraitUpdatableDataSink*::SetConditionalUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2839,1
    - Dst: RemoveItemAt
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2848,1
    - Dst: TraitUpdatableDataSink*::IsConditionalUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2850,1
    - Dst: IsTraitPresent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2851,1
    - Dst: SetFailedTrait
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2853,1
    - Dst: TraitUpdatableDataSink*::ClearUpdateRequiredVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2854,1
    - Dst: TraitUpdatableDataSink*::SetConditionalUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2855,1
    - Dst: TraitUpdatableDataSink*::IsVersionValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2858,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2860,1
    - Dst: TraitUpdatableDataSink*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2862,1
    - Dst: TraitUpdatableDataSink*::ClearVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2864,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::UpdateCompleteEventCbHelper
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2873,1
    - Dst: SetFailed
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2889,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::PurgeAndNotifyFailedPaths
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2890,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::MoveInProgressToPending
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2896,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::AbortUpdates
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2899,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::Reset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2903,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::PurgePendingUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2905,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::NoMorePendingEventCbHelper
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2911,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::CheckForSinksWithDataLoss
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2913,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::StartUpdateRetryTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2921,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::IsInProgressOrEstablished
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2925,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2927,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2928,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::UnlockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2931,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2933,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2935,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 162
    argCount: 2
    argNames:
    - aReason
    - apStatus
    argTypes:
    - WEAVE_ERROR
    - nl::Weave::Profiles::StatusReporting::StatusReport*
    constantsTouched: []
    func_position:
      end: 2936
      start: 2629
    functionDepth: 4
    functionLinenumber: 2629
    functionLinenumberEnd: 2936
    functionName: nl::Weave::Profiles::SubscriptionClient::OnUpdateResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - TraitUpdatableDataSink*::SetUpdateRequiredVersion
    - nl::Weave::Profiles::SubscriptionClient::MoveInProgressToPending
    - VersionList::Parser::GetVersion
    - IsTraitPresent
    - TraitUpdatableDataSink*::GetUpdateStartVersion
    - nl::Weave::Profiles::SubscriptionClient::WillRetryUpdate
    - nl::StatusReportStr
    - nl::Weave::Profiles::SubscriptionClient::ClearUpdateInFlight
    - StatusList::Parser::Next
    - GetPathStoreSize
    - TraitUpdatableDataSink*::ClearVersion
    - nl::Weave::Profiles::SubscriptionClient::UnlockUpdateMutex
    - WeaveLogFunctError
    - UpdateResponse::Parser::Init
    - nl::Weave::TLV::TLVReader::Init
    - UpdateResponse::Parser::CheckSchemaValidity
    - nl::Weave::Profiles::SubscriptionClient::Reset
    - nl::Weave::TLV::TLVReader::Next
    - nl::Weave::Profiles::SubscriptionClient::IsInProgressOrEstablished
    - nl::Weave::Profiles::SubscriptionClient::GetStateStr
    - TraitUpdatableDataSink*::IsConditionalUpdate
    - Locate
    - nl::Weave::Profiles::SubscriptionClient::TerminateSubscription
    - nl::Weave::Profiles::SubscriptionClient::_Release
    - SubscriptionEngine::GetInstance
    - TraitUpdatableDataSink*::ClearUpdateRequiredVersion
    - AreFlagsSet
    - WeaveLogDetail
    - StatusList::Parser::GetProfileIDAndStatusCode
    - nl::Weave::Profiles::SubscriptionClient::ClearPotentialDataLoss
    - nl::Weave::Profiles::SubscriptionClient::AbortUpdates
    - ReferencedTLVData::ReferencedTLVData
    - SetFailed
    - SetFailedTrait
    - IsPresent
    - nl::Weave::Profiles::SubscriptionClient::PurgeAndNotifyFailedPaths
    - ExitNow
    - TraitUpdatableDataSink*::GetVersion
    - TraitUpdatableDataSink*::IsPotentialDataLoss
    - TraitUpdatableDataSink*::GetSchemaEngine
    - UpdateResponse::Parser::GetStatusList
    - nl::Weave::Profiles::SubscriptionClient::UpdateCompleteEventCbHelper
    - nl::Weave::Profiles::SubscriptionClient::StartUpdateRetryTimer
    - nl::Weave::Profiles::SubscriptionClient::LockUpdateMutex
    - VersionList::Parser::Next
    - TraitUpdatableDataSink*::SetVersion
    - RemoveItemAt
    - nl::Weave::Profiles::SubscriptionClient::NoMorePendingEventCbHelper
    - TraitUpdatableDataSink*::SetConditionalUpdate
    - GetItemAt
    - nl::Weave::Profiles::SubscriptionClient::_AddRef
    - nl::Weave::Profiles::SubscriptionClient::CheckForSinksWithDataLoss
    - nl::Weave::Profiles::SubscriptionClient::PurgePendingUpdate
    - GetNextValidItem
    - TraitUpdatableDataSink*::IsVersionValid
    - UpdateResponse::Parser::GetVersionList
    - SuccessOrExit
    - WEAVE_FAULT_INJECT
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::OnUpdateResponse(WEAVE_ERROR aReason, nl::Weave::Profiles::StatusReporting::StatusReport
      * apStatus)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2947,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2947,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2948,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2949,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::LockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2951,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::ClearUpdateInFlight
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2953,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2957,1
    - Dst: GetNextValidItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2958,1
    - Dst: AreFlagsSet
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2960,1
    - Dst: GetItemAt
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2962,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::UpdateCompleteEventCbHelper
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2964,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::MoveInProgressToPending
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2973,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::AbortUpdates
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2976,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::PurgePendingUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2980,1
    - Dst: IsEmpty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2983,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::NoMorePendingEventCbHelper
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2985,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::StartUpdateRetryTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2989,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::UnlockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2992,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:2994,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - aError
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 2995
      start: 2942
    functionDepth: 3
    functionLinenumber: 2942
    functionLinenumberEnd: 2995
    functionName: nl::Weave::Profiles::SubscriptionClient::OnUpdateNoResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::MoveInProgressToPending
    - nl::Weave::Profiles::SubscriptionClient::ClearUpdateInFlight
    - GetPathStoreSize
    - nl::Weave::Profiles::SubscriptionClient::UnlockUpdateMutex
    - nl::Weave::Profiles::SubscriptionClient::GetStateStr
    - nl::Weave::Profiles::SubscriptionClient::_Release
    - SubscriptionEngine::GetInstance
    - AreFlagsSet
    - WeaveLogDetail
    - nl::Weave::Profiles::SubscriptionClient::AbortUpdates
    - IsEmpty
    - nl::Weave::Profiles::SubscriptionClient::UpdateCompleteEventCbHelper
    - nl::Weave::Profiles::SubscriptionClient::StartUpdateRetryTimer
    - nl::Weave::Profiles::SubscriptionClient::LockUpdateMutex
    - nl::Weave::Profiles::SubscriptionClient::NoMorePendingEventCbHelper
    - GetItemAt
    - nl::Weave::Profiles::SubscriptionClient::_AddRef
    - nl::Weave::Profiles::SubscriptionClient::PurgePendingUpdate
    - GetNextValidItem
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::OnUpdateNoResponse(WEAVE_ERROR aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SubscriptionClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3002,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3007,1
    - Dst: SubscriptionClient*::OnUpdateResponse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3011,1
    - Dst: SubscriptionClient*::OnUpdateNoResponse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3015,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3020,1
    - Dst: SubscriptionClient*::ClearUpdateInFlight
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3021,1
    - Dst: SubscriptionClient*::FormAndSendUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3022,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3025,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - aAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - UpdateClient::EventType
    - UpdateClient::InEventParam
    - UpdateClient::OutEventParam
    constantsTouched: []
    func_position:
      end: 3030
      start: 2997
    functionDepth: 0
    functionLinenumber: 2997
    functionLinenumberEnd: 3030
    functionName: nl::Weave::Profiles::SubscriptionClient::UpdateEventCallback
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionClient*::FormAndSendUpdate
    - SubscriptionClient*::ClearUpdateInFlight
    - reinterpret_cast<SubscriptionClient *>
    - SubscriptionClient*::OnUpdateNoResponse
    - WeaveLogDetail
    - SubscriptionClient*::OnUpdateResponse
    linkageType: ''
    returnType: void
    signature: "SubscriptionClient::UpdateEventCallback (void * const aAppState,\n
      \                                             UpdateClient::EventType aEvent,\n
      \                                             const UpdateClient::InEventParam
      & aInParam,\n                                              UpdateClient::OutEventParam
      & aOutParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionClient::LockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3040,1
    - Dst: TraitUpdatableDataSink*::IsVersionValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3044,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3047,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3048,1
    - Dst: TraitUpdatableDataSink*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3052,1
    - Dst: Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3054,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3055,1
    - Dst: IsTraitPresent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3057,1
    - Dst: IsTraitPresent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3058,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3064,1
    - Dst: TraitUpdatableDataSink*::IsConditionalUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3064,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::AddItemPendingUpdateSet
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3074,1
    - Dst: TraitPath
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3074,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3075,1
    - Dst: TraitUpdatableDataSink*::SetUpdateRequiredVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3081,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3082,1
    - Dst: TraitUpdatableDataSink*::GetUpdateRequiredVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3082,1
    - Dst: TraitUpdatableDataSink*::SetConditionalUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3084,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::SetPendingSetState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3086,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::UnlockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3090,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - aDataSink
    - aPropertyHandle
    - aIsConditional
    argTypes:
    - TraitUpdatableDataSink*
    - PropertyPathHandle
    - bool
    constantsTouched: []
    func_position:
      end: 3093
      start: 3032
    functionDepth: 1
    functionLinenumber: 3032
    functionLinenumberEnd: 3093
    functionName: nl::Weave::Profiles::SubscriptionClient::SetUpdated
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - TraitUpdatableDataSink*::SetUpdateRequiredVersion
    - TraitUpdatableDataSink*::SetConditionalUpdate
    - IsTraitPresent
    - nl::Weave::Profiles::SubscriptionClient::SetPendingSetState
    - TraitPath
    - TraitUpdatableDataSink*::IsConditionalUpdate
    - Locate
    - TraitUpdatableDataSink*::GetUpdateRequiredVersion
    - TraitUpdatableDataSink*::IsVersionValid
    - VerifyOrExit
    - ExitNow
    - TraitUpdatableDataSink*::GetSchemaEngine
    - nl::Weave::Profiles::SubscriptionClient::UnlockUpdateMutex
    - nl::Weave::Profiles::SubscriptionClient::AddItemPendingUpdateSet
    - WeaveLogDetail
    - SuccessOrExit
    - nl::Weave::Profiles::SubscriptionClient::LockUpdateMutex
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionClient::SetUpdated(TraitUpdatableDataSink * aDataSink,
      PropertyPathHandle aPropertyHandle, bool aIsConditional)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionClient::LockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3101,1
    - Dst: Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3103,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3104,1
    - Dst: IsTraitPresent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3106,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3110,1
    - Dst: RemoveItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3114,1
    - Dst: TraitPath
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3114,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::UnlockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - aDataSink
    - aPropertyHandle
    argTypes:
    - TraitUpdatableDataSink*
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 3119
      start: 3095
    functionDepth: 1
    functionLinenumber: 3095
    functionLinenumberEnd: 3119
    functionName: nl::Weave::Profiles::SubscriptionClient::ClearUpdated
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - TraitPath
    - Locate
    - RemoveItem
    - nl::Weave::Profiles::SubscriptionClient::UnlockUpdateMutex
    - SuccessOrExit
    - WeaveLogDetail
    - IsTraitPresent
    - nl::Weave::Profiles::SubscriptionClient::LockUpdateMutex
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionClient::ClearUpdated(TraitUpdatableDataSink * aDataSink,
      PropertyPathHandle aPropertyHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionClient::AbortUpdates
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3129
      start: 3126
    functionDepth: 1
    functionLinenumber: 3126
    functionLinenumberEnd: 3129
    functionName: nl::Weave::Profiles::SubscriptionClient::DiscardUpdates
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::AbortUpdates
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::DiscardUpdates()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionClient::LockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3153,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3155,1
    - Dst: SystemLayer::CancelTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3155,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::ClearUpdateInFlight
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3160,1
    - Dst: CancelUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3162,1
    - Dst: Iterate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3166,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::IsInProgressOrEstablished
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3169,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3171,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3177,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3178,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::SetPendingSetState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3179,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3181,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3182,1
    - Dst: SetFailed
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3193,1
    - Dst: SetFailed
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3194,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::PurgeAndNotifyFailedPaths
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3195,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::PurgeAndNotifyFailedPaths
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3196,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3199,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::UnlockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - aErr
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 3205
      start: 3147
    functionDepth: 4
    functionLinenumber: 3147
    functionLinenumberEnd: 3205
    functionName: nl::Weave::Profiles::SubscriptionClient::AbortUpdates
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 4
    functionsReached:
    - SetFailed
    - nl::Weave::Profiles::SubscriptionClient::SetPendingSetState
    - CancelUpdate
    - Iterate
    - nl::Weave::Profiles::SubscriptionClient::ClearUpdateInFlight
    - nl::Weave::Profiles::SubscriptionClient::TerminateSubscription
    - GetNumItems
    - nl::Weave::Profiles::SubscriptionClient::PurgeAndNotifyFailedPaths
    - nl::Weave::Profiles::SubscriptionClient::Clear
    - SubscriptionEngine::GetInstance
    - nl::Weave::Profiles::SubscriptionClient::UnlockUpdateMutex
    - SystemLayer::CancelTimer
    - WeaveLogDetail
    - nl::Weave::Profiles::SubscriptionClient::LockUpdateMutex
    - nl::Weave::Profiles::SubscriptionClient::IsInProgressOrEstablished
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::AbortUpdates(WEAVE_ERROR aErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<SubscriptionClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3209,1
    - Dst: static_cast<TraitDataSink *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3210,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3214,1
    - Dst: TraitDataSink*::IsUpdatableDataSink
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3214,1
    - Dst: static_cast<TraitUpdatableDataSink *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3216,1
    - Dst: SubscriptionClient*::mPendingUpdateSet::IsTraitPresent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3218,1
    - Dst: SubscriptionClient*::mInProgressUpdateList::IsTraitPresent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3223,1
    - Dst: TraitUpdatableDataSink*::SetConditionalUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3230,1
    - Dst: TraitUpdatableDataSink*::ClearUpdateRequiredVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3231,1
    - Dst: TraitUpdatableDataSink*::ClearVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - aDataSink
    - aDataHandle
    - aContext
    argTypes:
    - void*
    - TraitDataHandle
    - void*
    constantsTouched: []
    func_position:
      end: 3238
      start: 3207
    functionDepth: 0
    functionLinenumber: 3207
    functionLinenumberEnd: 3238
    functionName: nl::Weave::Profiles::SubscriptionClient::RefreshUpdatableSinkTrait
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - TraitUpdatableDataSink*::SetConditionalUpdate
    - static_cast<TraitDataSink *>
    - static_cast<SubscriptionClient *>
    - SubscriptionClient*::mPendingUpdateSet::IsTraitPresent
    - TraitDataSink*::IsUpdatableDataSink
    - VerifyOrExit
    - TraitUpdatableDataSink*::ClearUpdateRequiredVersion
    - static_cast<TraitUpdatableDataSink *>
    - TraitUpdatableDataSink*::ClearVersion
    - SubscriptionClient*::mInProgressUpdateList::IsTraitPresent
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::RefreshUpdatableSinkTrait(void * aDataSink, TraitDataHandle
      aDataHandle, void * aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionClient::LockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3251,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3253,1
    - Dst: SystemLayer::CancelTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3253,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3258,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::UnlockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3264
      start: 3249
    functionDepth: 1
    functionLinenumber: 3249
    functionLinenumberEnd: 3264
    functionName: nl::Weave::Profiles::SubscriptionClient::SuspendUpdateRetries
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionEngine::GetInstance
    - nl::Weave::Profiles::SubscriptionClient::UnlockUpdateMutex
    - SystemLayer::CancelTimer
    - WeaveLogDetail
    - nl::Weave::Profiles::SubscriptionClient::LockUpdateMutex
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::SuspendUpdateRetries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3275,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3275,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3277,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3277,1
    - Dst: Iterate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3281,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::PurgeAndNotifyFailedPaths
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3284,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::IsInProgressOrEstablished
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3286,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3288,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3292,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3295
      start: 3270
    functionDepth: 4
    functionLinenumber: 3270
    functionLinenumberEnd: 3295
    functionName: nl::Weave::Profiles::SubscriptionClient::PurgePendingUpdate
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 3
    functionsReached:
    - Iterate
    - nl::Weave::Profiles::SubscriptionClient::TerminateSubscription
    - nl::Weave::Profiles::SubscriptionClient::PurgeAndNotifyFailedPaths
    - VerifyOrExit
    - WeaveLogDetail
    - GetNumItems
    - nl::Weave::Profiles::SubscriptionClient::IsInProgressOrEstablished
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionClient::PurgePendingUpdate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<SubscriptionClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3299,1
    - Dst: static_cast<TraitDataSink *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3300,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3303,1
    - Dst: TraitDataSink*::IsUpdatableDataSink
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3303,1
    - Dst: static_cast<TraitUpdatableDataSink *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3305,1
    - Dst: TraitUpdatableDataSink*::IsVersionValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3307,1
    - Dst: SubscriptionClient*::MarkFailedPendingPaths
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3309,1
    - Dst: TraitUpdatableDataSink*::GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - aDataSink
    - aDataHandle
    - aContext
    argTypes:
    - void*
    - TraitDataHandle
    - void*
    constantsTouched: []
    func_position:
      end: 3314
      start: 3297
    functionDepth: 0
    functionLinenumber: 3297
    functionLinenumberEnd: 3314
    functionName: nl::Weave::Profiles::SubscriptionClient::PurgePendingUpdatableSinkTrait
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TraitDataSink *>
    - static_cast<SubscriptionClient *>
    - TraitDataSink*::IsUpdatableDataSink
    - TraitUpdatableDataSink*::IsVersionValid
    - VerifyOrExit
    - SubscriptionClient*::MarkFailedPendingPaths
    - TraitUpdatableDataSink*::GetVersion
    - static_cast<TraitUpdatableDataSink *>
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::PurgePendingUpdatableSinkTrait(void * aDataSink,
      TraitDataHandle aDataHandle, void * aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3322,1
    - Dst: GetNextValidItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3323,1
    - Dst: GetItemAt
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3325,1
    - Dst: Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3327,1
    - Dst: TraitUpdatableDataSink*::SetUpdateStartVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3333
      start: 3316
    functionDepth: 0
    functionLinenumber: 3316
    functionLinenumberEnd: 3333
    functionName: nl::Weave::Profiles::SubscriptionClient::SetUpdateStartVersions
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - GetItemAt
    - Locate
    - GetNextValidItem
    - TraitUpdatableDataSink*::SetUpdateStartVersion
    - GetPathStoreSize
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::SetUpdateStartVersions(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetMaxUpdateSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3343,1
    - Dst: mpBinding::AllocateRightSizedBuffer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3344,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3345,1
    - Dst: EncodeRequest
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3358,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3359,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3363,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::SetUpdateStartVersions
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3376,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3379,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::SetUpdateInFlight
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3385,1
    - Dst: SendUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3387,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3389,1
    - Dst: CancelUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3395,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3402,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3408,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3412
      start: 3335
    functionDepth: 2
    functionLinenumber: 3335
    functionLinenumberEnd: 3412
    functionName: nl::Weave::Profiles::SubscriptionClient::SendSingleUpdateRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::GetMaxUpdateSize
    - mpBinding::AllocateRightSizedBuffer
    - CancelUpdate
    - nl::Weave::Profiles::SubscriptionClient::SetUpdateStartVersions
    - nl::Weave::System::PacketBuffer::Free
    - SuccessOrExit
    - WeaveLogDetail
    - SendUpdate
    - GetPathStoreSize
    - nl::Weave::Profiles::SubscriptionClient::SetUpdateInFlight
    - EncodeRequest
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionClient::SendSingleUpdateRequest(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionClient::LockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3418,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3420,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::IsUpdateInFlight
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3420,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3420,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3422,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3422,1
    - Dst: IsReady
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3424,1
    - Dst: IsEmpty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3426,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::MovePendingToInProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3428,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::SendSingleUpdateRequest
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3431,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3432,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3434,1
    - Dst: IsPreparing
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3436,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_PrepareBinding
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3438,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3439,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::OnUpdateNoResponse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3448,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::UnlockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3451,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3453,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3456
      start: 3414
    functionDepth: 4
    functionLinenumber: 3414
    functionLinenumberEnd: 3456
    functionName: nl::Weave::Profiles::SubscriptionClient::FormAndSendUpdate
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::GetStateStr
    - nl::Weave::Profiles::SubscriptionClient::SendSingleUpdateRequest
    - nl::Weave::Profiles::SubscriptionClient::_PrepareBinding
    - IsReady
    - nl::Weave::Profiles::SubscriptionClient::IsUpdateInFlight
    - VerifyOrExit
    - IsEmpty
    - nl::Weave::Profiles::SubscriptionClient::UnlockUpdateMutex
    - nl::Weave::Profiles::SubscriptionClient::MovePendingToInProgress
    - nl::Weave::Profiles::SubscriptionClient::OnUpdateNoResponse
    - WeaveLogDetail
    - SuccessOrExit
    - nl::Weave::Profiles::SubscriptionClient::LockUpdateMutex
    - WeaveLogFunctError
    - IsPreparing
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::FormAndSendUpdate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionClient::FlushUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3473
      start: 3470
    functionDepth: 1
    functionLinenumber: 3470
    functionLinenumberEnd: 3473
    functionName: nl::Weave::Profiles::SubscriptionClient::FlushUpdate
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::FlushUpdate
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionClient::FlushUpdate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3478,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::LockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3480,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::SetPendingSetState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3486,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3489,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3490,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3490,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3492,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::IsUpdateInFlight
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3492,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3493,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3502,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3504,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3507,1
    - Dst: SystemLayer::ScheduleWork
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3507,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3508,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3510,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3510,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3511,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3512,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::UnlockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3516,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::NoMorePendingEventCbHelper
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3520,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - aForce
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 3524
      start: 3474
    functionDepth: 2
    functionLinenumber: 3474
    functionLinenumberEnd: 3524
    functionName: nl::Weave::Profiles::SubscriptionClient::FlushUpdate
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::_AddRef
    - nl::Weave::Profiles::SubscriptionClient::SetPendingSetState
    - nl::Weave::Profiles::SubscriptionClient::GetStateStr
    - SystemLayer::ScheduleWork
    - VerifyOrExit
    - nl::Weave::Profiles::SubscriptionClient::IsUpdateInFlight
    - nl::Weave::Profiles::SubscriptionClient::NoMorePendingEventCbHelper
    - SubscriptionEngine::GetInstance
    - nl::Weave::Profiles::SubscriptionClient::UnlockUpdateMutex
    - WeaveLogDetail
    - SuccessOrExit
    - nl::Weave::Profiles::SubscriptionClient::LockUpdateMutex
    - nl::ErrorStr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscriptionClient::FlushUpdate(bool aForce)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Iterate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3533
      start: 3526
    functionDepth: 0
    functionLinenumber: 3526
    functionLinenumberEnd: 3533
    functionName: nl::Weave::Profiles::SubscriptionClient::CheckForSinksWithDataLoss
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 1
    functionsReached:
    - Iterate
    linkageType: ''
    returnType: bool
    signature: SubscriptionClient::CheckForSinksWithDataLoss()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TraitDataSink *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3537,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3541,1
    - Dst: TraitDataSink*::IsUpdatableDataSink
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3541,1
    - Dst: static_cast<TraitUpdatableDataSink *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3543,1
    - Dst: TraitUpdatableDataSink*::IsPotentialDataLoss
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3545,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3547,1
    - Dst: TraitUpdatableDataSink*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3549,1
    - Dst: TraitUpdatableDataSink*::ClearVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3551,1
    - Dst: TraitUpdatableDataSink*::ClearUpdateRequiredVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3552,1
    - Dst: TraitUpdatableDataSink*::SetConditionalUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - aDataSink
    - aDataHandle
    - aContext
    argTypes:
    - void*
    - TraitDataHandle
    - void*
    constantsTouched: []
    func_position:
      end: 3559
      start: 3535
    functionDepth: 0
    functionLinenumber: 3535
    functionLinenumberEnd: 3559
    functionName: nl::Weave::Profiles::SubscriptionClient::CheckForSinksWithDataLossIteratorCb
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - TraitUpdatableDataSink*::SetConditionalUpdate
    - static_cast<TraitDataSink *>
    - TraitDataSink*::IsUpdatableDataSink
    - VerifyOrExit
    - TraitUpdatableDataSink*::IsPotentialDataLoss
    - TraitUpdatableDataSink*::GetSchemaEngine
    - TraitUpdatableDataSink*::ClearUpdateRequiredVersion
    - static_cast<TraitUpdatableDataSink *>
    - WeaveLogDetail
    - TraitUpdatableDataSink*::ClearVersion
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::CheckForSinksWithDataLossIteratorCb(void * aDataSink,
      TraitDataHandle aDataHandle, void * aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionClient::ConfigureUpdatableSinks
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3568
      start: 3565
    functionDepth: 1
    functionLinenumber: 3565
    functionLinenumberEnd: 3568
    functionName: nl::Weave::Profiles::SubscriptionClient::OnCatalogChanged
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::ConfigureUpdatableSinks
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::OnCatalogChanged()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionClient::LockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3575,1
    - Dst: Iterate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3579,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::UnlockUpdateMutex
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3583
      start: 3573
    functionDepth: 1
    functionLinenumber: 3573
    functionLinenumberEnd: 3583
    functionName: nl::Weave::Profiles::SubscriptionClient::ConfigureUpdatableSinks
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::Profiles::SubscriptionClient::LockUpdateMutex
    - nl::Weave::Profiles::SubscriptionClient::UnlockUpdateMutex
    - Iterate
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::ConfigureUpdatableSinks()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<SubscriptionClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3587,1
    - Dst: static_cast<TraitDataSink *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3588,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3591,1
    - Dst: TraitDataSink*::IsUpdatableDataSink
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3591,1
    - Dst: static_cast<TraitUpdatableDataSink *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3593,1
    - Dst: TraitUpdatableDataSink*::GetSubscriptionClient
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3595,1
    - Dst: TraitUpdatableDataSink*::SetSubscriptionClient
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3597,1
    - Dst: TraitUpdatableDataSink*::SetUpdateEncoder
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3598,1
    - Dst: TraitUpdatableDataSink*::ClearUpdateRequiredVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3599,1
    - Dst: TraitUpdatableDataSink*::ClearUpdateStartVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3600,1
    - Dst: TraitUpdatableDataSink*::SetConditionalUpdate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3601,1
    - Dst: TraitUpdatableDataSink*::SetPotentialDataLoss
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - aDataSink
    - aDataHandle
    - aContext
    argTypes:
    - void*
    - TraitDataHandle
    - void*
    constantsTouched: []
    func_position:
      end: 3607
      start: 3585
    functionDepth: 0
    functionLinenumber: 3585
    functionLinenumberEnd: 3607
    functionName: nl::Weave::Profiles::SubscriptionClient::ConfigureUpdatableSinkTrait
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - TraitUpdatableDataSink*::SetConditionalUpdate
    - TraitUpdatableDataSink*::ClearUpdateStartVersion
    - static_cast<TraitDataSink *>
    - static_cast<SubscriptionClient *>
    - TraitUpdatableDataSink*::SetUpdateEncoder
    - TraitDataSink*::IsUpdatableDataSink
    - TraitUpdatableDataSink*::GetSubscriptionClient
    - VerifyOrExit
    - TraitUpdatableDataSink*::SetSubscriptionClient
    - TraitUpdatableDataSink*::ClearUpdateRequiredVersion
    - static_cast<TraitUpdatableDataSink *>
    - TraitUpdatableDataSink*::SetPotentialDataLoss
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::ConfigureUpdatableSinkTrait(void * aDataSink, TraitDataHandle
      aDataHandle, void * aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TraitDataSink *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3612,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3614,1
    - Dst: TraitDataSink*::IsUpdatableDataSink
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3614,1
    - Dst: static_cast<TraitUpdatableDataSink *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3616,1
    - Dst: TraitUpdatableDataSink*::SetSubscriptionClient
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3618,1
    - Dst: TraitUpdatableDataSink*::SetUpdateEncoder
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp:3619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - aDataSink
    - aDataHandle
    - aContext
    argTypes:
    - void*
    - TraitDataHandle
    - void*
    constantsTouched: []
    func_position:
      end: 3623
      start: 3609
    functionDepth: 0
    functionLinenumber: 3609
    functionLinenumberEnd: 3623
    functionName: nl::Weave::Profiles::SubscriptionClient::CleanupUpdatableSinkTrait
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TraitDataSink *>
    - TraitUpdatableDataSink*::SetUpdateEncoder
    - TraitDataSink*::IsUpdatableDataSink
    - TraitUpdatableDataSink*::SetSubscriptionClient
    - VerifyOrExit
    - static_cast<TraitUpdatableDataSink *>
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::CleanupUpdatableSinkTrait(void * aDataSink, TraitDataHandle
      aDataHandle, void * aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3632
      start: 3625
    functionDepth: 0
    functionLinenumber: 3625
    functionLinenumberEnd: 3632
    functionName: SubscriptionClient::UpdateRequestContext::Reset()
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SubscriptionClient::UpdateRequestContext::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TLVReader *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:49,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:51,1
    - Dst: TLVReader*::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:53,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:54,1
    - Dst: CopyElement
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:56,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ' ioWriter'
    - inDataTag
    - appData
    argTypes:
    - TLVWriter
    - uint8_t
    - void*
    constantsTouched: []
    func_position:
      end: 60
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 60
    functionName: nl::Weave::Profiles::EventWriterTLVCopy
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp
    functionUses: 0
    functionsReached:
    - CopyElement
    - static_cast<TLVReader *>
    - VerifyOrExit
    - TLVReader*::Next
    - SuccessOrExit
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EventWriterTLVCopy(TLVWriter & ioWriter, uint8_t inDataTag, void *
      appData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::LogEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' inSchema'
    - ' inData'
    argTypes:
    - EventSchema
    - TLVReader
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: nl::Weave::Profiles::LogEvent
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::LogEvent
    linkageType: ''
    returnType: event_id_t
    signature: LogEvent(const EventSchema & inSchema, TLVReader & inData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::LogEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' inSchema'
    - ' inData'
    - inOptions
    argTypes:
    - EventSchema
    - TLVReader
    - EventOptions*
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: nl::Weave::Profiles::LogEvent
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::LogEvent
    linkageType: ''
    returnType: event_id_t
    signature: LogEvent(const EventSchema & inSchema, TLVReader & inData, const EventOptions
      * inOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::LogEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' inSchema'
    - inEventWriter
    - inAppData
    argTypes:
    - EventSchema
    - EventWriterFunct
    - void*
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: nl::Weave::Profiles::LogEvent
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::Profiles::LogEvent
    linkageType: ''
    returnType: event_id_t
    signature: LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter,
      void * inAppData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:80,1
    - Dst: nl::Weave::Profiles::LogEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' inSchema'
    - inEventWriter
    - inAppData
    - inOptions
    argTypes:
    - EventSchema
    - EventWriterFunct
    - void*
    - EventOptions*
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: nl::Weave::Profiles::LogEvent
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp
    functionUses: 4
    functionsReached:
    - nl::Weave::Profiles::LogEvent
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    linkageType: ''
    returnType: event_id_t
    signature: LogEvent(const EventSchema & inSchema, EventWriterFunct inEventWriter,
      void * inAppData, const EventOptions * inOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DebugLogContext *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:115,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:118,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:118,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:119,1
    - Dst: PutString
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:121,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:121,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:122,1
    - Dst: VPutStringF
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:124,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:124,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:124,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:126,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:128,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:129,1
    - Dst: Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - ' ioWriter'
    - inDataTag
    - appData
    argTypes:
    - TLVWriter
    - uint8_t
    - void*
    constantsTouched: []
    func_position:
      end: 135
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 135
    functionName: nl::Weave::Profiles::PlainTextWriter
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp
    functionUses: 0
    functionsReached:
    - PutString
    - VPutStringF
    - StartContainer
    - EndContainer
    - SuccessOrExit
    - Finalize
    - static_cast<DebugLogContext *>
    - reinterpret_cast<const char *>
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PlainTextWriter(TLVWriter & ioWriter, uint8_t inDataTag, void * appData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:143,1
    - Dst: nl::Weave::Profiles::LogEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:147,1
    - Dst: va_end
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - inImportance
    - inFormat
    argTypes:
    - ImportanceType
    - char*
    constantsTouched: []
    func_position:
      end: 152
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 152
    functionName: nl::Weave::Profiles::LogFreeform
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - nl::Weave::Profiles::LogEvent
    linkageType: ''
    returnType: event_id_t
    signature: LogFreeform(ImportanceType inImportance, const char * inFormat, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Command
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/Command.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 130
    functionName: nl::Weave::Profiles::Command
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/Command.h
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::Command
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: Command
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: '* operator new(size_t, void * p) throw()'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '* operator new(size_t, void * p) throw()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: '* operator new[](size_t, void * p) throw()'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '* operator new[](size_t, void * p) throw()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: '& LoggingManagement::GetInstance(void)'
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LoggingManagement
    signature: '& LoggingManagement::GetInstance(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' inBuffer'
    - inAppData
    - ' inReader'
    argTypes:
    - nl::Weave::TLV::WeaveCircularTLVBuffer
    - void*
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: nl::Weave::Profiles::LoggingManagement::AlwaysFail
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "LoggingManagement::AlwaysFail(nl::Weave::TLV::WeaveCircularTLVBuffer
      & inBuffer, void * inAppData,\n                                          nl::Weave::TLV::TLVReader
      & inReader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CircularTLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:98,1
    - Dst: CircularTLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:101,1
    - Dst: CircularTLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:103,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:104,1
    - Dst: CircularTLVWriter::CopyElement
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:106,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:107,1
    - Dst: CircularTLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:109,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - inEventBuffer
    argTypes:
    - CircularEventBuffer*
    constantsTouched: []
    func_position:
      end: 118
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 118
    functionName: nl::Weave::Profiles::LoggingManagement::CopyToNextBuffer
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - CircularTLVWriter::Init
    - CircularTLVWriter::Finalize
    - CircularTLVWriter::CopyElement
    - CircularTLVReader::Init
    - SuccessOrExit
    - CircularTLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LoggingManagement::CopyToNextBuffer(CircularEventBuffer * inEventBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:129,1
    - Dst: CircularEventBuffer*::mBuffer::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:129,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:135,1
    - Dst: WeaveCircularTLVBuffer*::GetQueueSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:135,1
    - Dst: WeaveCircularTLVBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:137,1
    - Dst: WeaveCircularTLVBuffer*::EvictHead
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:144,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:152,1
    - Dst: CircularEventBuffer*::mNext::mBuffer::AvailableDataLength
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:153,1
    - Dst: nl::Weave::Profiles::LoggingManagement::CopyToNextBuffer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:161,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:162,1
    - Dst: WeaveCircularTLVBuffer*::EvictHead
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:166,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:172,1
    - Dst: reinterpret_cast<void *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:179,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:186,1
    - Dst: reinterpret_cast<size_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:196,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 1
    argNames:
    - inRequiredSpace
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 207
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 207
    functionName: nl::Weave::Profiles::LoggingManagement::EnsureSpace
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - CircularEventBuffer*::mBuffer::AvailableDataLength
    - CircularEventBuffer*::mNext::mBuffer::AvailableDataLength
    - VerifyOrExit
    - reinterpret_cast<void *>
    - WeaveCircularTLVBuffer*::GetQueueSize
    - nl::Weave::Profiles::LoggingManagement::CopyToNextBuffer
    - SuccessOrExit
    - WeaveCircularTLVBuffer*::EvictHead
    - WeaveCircularTLVBuffer*::AvailableDataLength
    - VerifyOrDie
    - reinterpret_cast<size_t>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LoggingManagement::EnsureSpace(size_t inRequiredSpace)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:236,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:239,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:240,1
    - Dst: EventLoadOutContext*::mWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:242,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:243,1
    - Dst: EventLoadOutContext*::mWriter::Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:248,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:248,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:248,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:249,1
    - Dst: EventLoadOutContext*::mWriter::Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:254,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:254,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:255,1
    - Dst: EventLoadOutContext*::mWriter::Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:261,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:261,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:261,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:262,1
    - Dst: EventLoadOutContext*::mWriter::Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:264,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:264,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:265,1
    - Dst: EventLoadOutContext*::mWriter::Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:274,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:274,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:275,1
    - Dst: EventLoadOutContext*::mWriter::Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:280,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:280,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:281,1
    - Dst: EventLoadOutContext*::mWriter::Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:291,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:291,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:292,1
    - Dst: EventLoadOutContext*::mWriter::Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:298,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:298,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:299,1
    - Dst: EventLoadOutContext*::mWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:308,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:308,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:309,1
    - Dst: EventLoadOutContext*::mWriter::Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:311,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:312,1
    - Dst: EventLoadOutContext*::mWriter::Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:316,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:317,1
    - Dst: EventLoadOutContext*::mWriter::Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:322,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:323,1
    - Dst: EventLoadOutContext*::mWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:326,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:327,1
    - Dst: EventLoadOutContext*::mWriter::Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:331,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:331,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:332,1
    - Dst: EventOptions*::eventSource::ResourceID::ToTLV
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:338,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:338,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:339,1
    - Dst: EventLoadOutContext*::mWriter::Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:341,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:341,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:342,1
    - Dst: EventLoadOutContext*::mWriter::Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:346,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:346,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:347,1
    - Dst: inEventWriter
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:350,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:351,1
    - Dst: EventLoadOutContext*::mWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:353,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:354,1
    - Dst: EventLoadOutContext*::mWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:356,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:357,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 84
    argCount: 5
    argNames:
    - aContext
    - ' inSchema'
    - inEventWriter
    - inAppData
    - inOptions
    argTypes:
    - EventLoadOutContext*
    - EventSchema
    - EventWriterFunct
    - void*
    - EventOptions*
    constantsTouched: []
    func_position:
      end: 387
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 387
    functionName: nl::Weave::Profiles::LoggingManagement::BlitEvent
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - EventLoadOutContext*::mWriter::EndContainer
    - inEventWriter
    - ContextTag
    - VerifyOrExit
    - EventLoadOutContext*::mWriter::Put
    - EventLoadOutContext*::mWriter::Finalize
    - EventLoadOutContext*::mWriter::StartContainer
    - SuccessOrExit
    - EventOptions*::eventSource::ResourceID::ToTLV
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "LoggingManagement::BlitEvent(EventLoadOutContext * aContext, const
      EventSchema & inSchema,\n                                         EventWriterFunct
      inEventWriter, void * inAppData, const EventOptions * inOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aContext
    argTypes:
    - EventLoadOutContext*
    constantsTouched: []
    func_position:
      end: 401
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 401
    functionName: nl::Weave::Profiles::LoggingManagement::SkipEvent
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: LoggingManagement::SkipEvent(EventLoadOutContext * aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoggingManagement::LoggingManagement
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inMgr
    - inNumBuffers
    - inLogStorageResources
    argTypes:
    - nl::Weave::WeaveExchangeManager*
    - size_t
    - LogStorageResources*
    constantsTouched: []
    func_position:
      end: 427
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 427
    functionName: nl::Weave::Profiles::LoggingManagement::CreateLoggingManagement
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 1
    functionsReached:
    - LoggingManagement::LoggingManagement
    linkageType: ''
    returnType: void
    signature: "LoggingManagement::CreateLoggingManagement(nl::Weave::WeaveExchangeManager
      * inMgr,\n                                                size_t inNumBuffers,\n
      \                                               const LogStorageResources *
      const inLogStorageResources)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionEnter
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:434,1
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 438
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 438
    functionName: nl::Weave::Profiles::LoggingManagement::DestroyLoggingManagement
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Platform::CriticalSectionEnter
    - nl::Weave::Profiles::Platform::CriticalSectionExit
    linkageType: ''
    returnType: void
    signature: LoggingManagement::DestroyLoggingManagement(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionEnter
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:454,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:459,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:459,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:460,1
    - Dst: CircularEventBuffer*::SerializeEvents
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:464,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:465,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:470,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:471,1
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ' writer'
    argTypes:
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 477
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 477
    functionName: nl::Weave::Profiles::LoggingManagement::SerializeEvents
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - StartContainer
    - nl::Weave::Profiles::Platform::CriticalSectionExit
    - ProfileTag
    - EndContainer
    - SuccessOrExit
    - nl::Weave::Profiles::Platform::CriticalSectionEnter
    - CircularEventBuffer*::SerializeEvents
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LoggingManagement::SerializeEvents(TLVWriter & writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionEnter
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:487,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:492,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:492,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:493,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:494,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:495,1
    - Dst: CircularEventBuffer*::LoadEvents
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:499,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:500,1
    - Dst: VerifyEndOfContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:505,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:506,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:507,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:508,1
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLVReader
    constantsTouched: []
    func_position:
      end: 514
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 514
    functionName: nl::Weave::Profiles::LoggingManagement::LoadEvents
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - nl::Weave::Profiles::Platform::CriticalSectionExit
    - VerifyEndOfContainer
    - CircularEventBuffer*::LoadEvents
    - ProfileTag
    - ExitContainer
    - SuccessOrExit
    - nl::Weave::Profiles::Platform::CriticalSectionEnter
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LoggingManagement::LoadEvents(TLVReader & reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 522
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 522
    functionName: nl::Weave::Profiles::LoggingManagement::MarkShutdownInProgress
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: LoggingManagement::MarkShutdownInProgress(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 530
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 530
    functionName: nl::Weave::Profiles::LoggingManagement::CancelShutdownInProgress
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: LoggingManagement::CancelShutdownInProgress(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 538
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 538
    functionName: nl::Weave::Profiles::LoggingManagement::IsShutdownInProgress
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: LoggingManagement::IsShutdownInProgress(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - inMgr
    argTypes:
    - nl::Weave::WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 550
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 550
    functionName: nl::Weave::Profiles::LoggingManagement::SetExchangeManager
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LoggingManagement::SetExchangeManager(nl::Weave::WeaveExchangeManager
      * inMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:580,1
    - Dst: static_cast<CircularEventBuffer *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:589,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:591,1
    - Dst: static_cast<uint8_t *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:594,1
    - Dst: CircularEventBuffer::CircularEventBuffer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:593,1
    - Dst: static_cast<CircularEventBuffer *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:597,1
    - Dst: PersistedCounter::PersistedCounter
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:606,1
    - Dst: mCounterStorage::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:607,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:611,1
    - Dst: CircularEventBuffer*::mNonPersistedCounter::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:619,1
    - Dst: CircularEventBuffer*::mEventIdCounter::GetValue
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:623,1
    - Dst: static_cast<CircularEventBuffer *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:625,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - inMgr
    - inNumBuffers
    - inLogStorageResources
    argTypes:
    - nl::Weave::WeaveExchangeManager*
    - size_t
    - LogStorageResources*
    constantsTouched: []
    func_position:
      end: 632
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 632
    functionName: nl::Weave::Profiles::LoggingManagement::LoggingManagement
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - PersistedCounter::PersistedCounter
    - CircularEventBuffer::CircularEventBuffer
    - mCounterStorage::Init
    - CircularEventBuffer*::mNonPersistedCounter::Init
    - CircularEventBuffer*::mEventIdCounter::GetValue
    - static_cast<uint8_t *>
    - static_cast<CircularEventBuffer *>
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: "LoggingManagement::LoggingManagement(nl::Weave::WeaveExchangeManager
      * inMgr,\n                                     size_t inNumBuffers,\n                                     const
      LogStorageResources * const inLogStorageResources)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 644
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 644
    functionName: nl::Weave::Profiles::LoggingManagement::LoggingManagement
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: LoggingManagement::LoggingManagement(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:662,1
    - Dst: SupportsPerProfileImportance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:669,1
    - Dst: GetProfileImportance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:671,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - profileId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 678
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 678
    functionName: nl::Weave::Profiles::LoggingManagement::GetCurrentImportance
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - GetProfileImportance
    - SupportsPerProfileImportance
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    linkageType: ''
    returnType: ImportanceType
    signature: LoggingManagement::GetCurrentImportance(uint32_t profileId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 693
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 693
    functionName: nl::Weave::Profiles::LoggingManagement::GetMaxImportance
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    linkageType: ''
    returnType: ImportanceType
    signature: LoggingManagement::GetMaxImportance(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetValue
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:708,1
    - Dst: static_cast<event_id_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:709,1
    - Dst: Advance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:712,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 719
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 719
    functionName: nl::Weave::Profiles::CircularEventBuffer::VendEventID
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - GetValue
    - Advance
    - static_cast<event_id_t>
    linkageType: ''
    returnType: event_id_t
    signature: CircularEventBuffer::VendEventID(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::LoggingManagement::GetImportanceBuffer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inImportance
    argTypes:
    - ImportanceType
    constantsTouched: []
    func_position:
      end: 732
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 732
    functionName: nl::Weave::Profiles::LoggingManagement::GetLastEventID
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::LoggingManagement::GetImportanceBuffer
    linkageType: ''
    returnType: event_id_t
    signature: LoggingManagement::GetLastEventID(ImportanceType inImportance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::LoggingManagement::GetImportanceBuffer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inImportance
    argTypes:
    - ImportanceType
    constantsTouched: []
    func_position:
      end: 745
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 745
    functionName: nl::Weave::Profiles::LoggingManagement::GetFirstEventID
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::LoggingManagement::GetImportanceBuffer
    linkageType: ''
    returnType: event_id_t
    signature: LoggingManagement::GetFirstEventID(ImportanceType inImportance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CircularEventBuffer*::IsFinalDestinationForImportance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - inImportance
    argTypes:
    - ImportanceType
    constantsTouched: []
    func_position:
      end: 755
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 755
    functionName: nl::Weave::Profiles::LoggingManagement::GetImportanceBuffer
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 2
    functionsReached:
    - CircularEventBuffer*::IsFinalDestinationForImportance
    linkageType: ''
    returnType: CircularEventBuffer
    signature: '* LoggingManagement::GetImportanceBuffer(ImportanceType inImportance)
      const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::LoggingManagement::RegisterEventCallbackForImportance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - inImportance
    - inCallback
    - inNumEvents
    - outLastEventID
    argTypes:
    - ImportanceType
    - FetchExternalEventsFunct
    - size_t
    - event_id_t*
    constantsTouched: []
    func_position:
      end: 800
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 800
    functionName: nl::Weave::Profiles::LoggingManagement::RegisterEventCallbackForImportance
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::LoggingManagement::RegisterEventCallbackForImportance
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "LoggingManagement::RegisterEventCallbackForImportance(ImportanceType
      inImportance, FetchExternalEventsFunct inCallback,\n                                                                  size_t
      inNumEvents, event_id_t * outLastEventID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::LoggingManagement::RegisterEventCallbackForImportance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - inImportance
    - inFetchCallback
    - inNotifyCallback
    - inNumEvents
    - outLastEventID
    argTypes:
    - ImportanceType
    - FetchExternalEventsFunct
    - NotifyExternalEventsDeliveredFunct
    - size_t
    - event_id_t*
    constantsTouched: []
    func_position:
      end: 854
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 854
    functionName: nl::Weave::Profiles::LoggingManagement::RegisterEventCallbackForImportance
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::LoggingManagement::RegisterEventCallbackForImportance
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "LoggingManagement::RegisterEventCallbackForImportance(ImportanceType
      inImportance,\n                                                                  FetchExternalEventsFunct
      inFetchCallback,\n                                                                  NotifyExternalEventsDeliveredFunct
      inNotifyCallback,\n                                                                  size_t
      inNumEvents, event_id_t * outLastEventID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::LoggingManagement::GetImportanceBuffer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:917,1
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionEnter
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:920,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:924,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:925,1
    - Dst: CircularEventBuffer*::VendEventID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:927,1
    - Dst: CircularEventBuffer*::VendEventID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:932,1
    - Dst: nl::Weave::Profiles::LoggingManagement::EnsureSpace
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:940,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:943,1
    - Dst: CircularTLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:947,1
    - Dst: nl::Weave::Profiles::LoggingManagement::BlitExternalEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:951,1
    - Dst: CircularTLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:953,1
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:969,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 6
    argNames:
    - inImportance
    - inFetchCallback
    - inNotifyCallback
    - inEvictedCallback
    - inNumEvents
    - outLastEventID
    argTypes:
    - ImportanceType
    - FetchExternalEventsFunct
    - NotifyExternalEventsDeliveredFunct
    - NotifyExternalEventsEvictedFunct
    - size_t
    - event_id_t*
    constantsTouched: []
    func_position:
      end: 972
      start: 909
    functionDepth: 2
    functionLinenumber: 909
    functionLinenumberEnd: 972
    functionName: nl::Weave::Profiles::LoggingManagement::RegisterEventCallbackForImportance
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::Platform::CriticalSectionExit
    - nl::Weave::Profiles::LoggingManagement::GetImportanceBuffer
    - CircularTLVWriter::Init
    - CircularTLVWriter::GetLengthWritten
    - VerifyOrExit
    - nl::Weave::Profiles::LoggingManagement::BlitExternalEvent
    - SuccessOrExit
    - nl::Weave::Profiles::Platform::CriticalSectionEnter
    - nl::Weave::Profiles::LoggingManagement::EnsureSpace
    - CircularEventBuffer*::VendEventID
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "LoggingManagement::RegisterEventCallbackForImportance(ImportanceType
      inImportance,\n                                                                  FetchExternalEventsFunct
      inFetchCallback,\n                                                                  NotifyExternalEventsDeliveredFunct
      inNotifyCallback,\n                                                                  NotifyExternalEventsEvictedFunct
      inEvictedCallback,\n                                                                  size_t
      inNumEvents, event_id_t * outLastEventID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:980,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:981,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:984,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:984,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:984,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:985,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:990,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:990,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:990,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:990,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:992,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:994,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:995,1
    - Dst: Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:997,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - ' inWriter'
    - inImportance
    - ' inEvents'
    argTypes:
    - nl::Weave::TLV::TLVWriter
    - ImportanceType
    - ExternalEvents
    constantsTouched: []
    func_position:
      end: 1002
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 1002
    functionName: nl::Weave::Profiles::LoggingManagement::BlitExternalEvent
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint16_t>
    - static_cast<const uint8_t *>
    - StartContainer
    - ContextTag
    - PutBytes
    - static_cast<void *>
    - EndContainer
    - Put
    - SuccessOrExit
    - Finalize
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "LoggingManagement::BlitExternalEvent(nl::Weave::TLV::TLVWriter & inWriter,
      ImportanceType inImportance,\n                                                 ExternalEvents
      & inEvents)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionEnter
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1032,1
    - Dst: nl::Weave::Profiles::LoggingManagement::GetExternalEventsFromEventId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1034,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1035,1
    - Dst: const_cast<uint8_t *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1037,1
    - Dst: TLVReader::GetReadPoint
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1037,1
    - Dst: static_cast<WeaveCircularTLVBuffer *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1038,1
    - Dst: TLVReader::GetBufHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1038,1
    - Dst: WeaveCircularTLVBuffer*::GetQueue
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1044,1
    - Dst: WeaveCircularTLVBuffer*::GetQueue
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1050,1
    - Dst: WeaveCircularTLVBuffer*::GetQueueSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1050,1
    - Dst: ExternalEvents::IsValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1053,1
    - Dst: WeaveCircularTLVBuffer*::GetQueue
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1056,1
    - Dst: WeaveCircularTLVBuffer*::GetQueueSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1056,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1059,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1059,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1061,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1061,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1063,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1064,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1066,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1066,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1067,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1069,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1069,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1070,1
    - Dst: CircularTLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1077,1
    - Dst: nl::Weave::Profiles::LoggingManagement::BlitExternalEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1079,1
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1083,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 2
    argNames:
    - inImportance
    - inEventID
    argTypes:
    - ImportanceType
    - event_id_t
    constantsTouched: []
    func_position:
      end: 1084
      start: 1022
    functionDepth: 1
    functionLinenumber: 1022
    functionLinenumberEnd: 1084
    functionName: nl::Weave::Profiles::LoggingManagement::UnregisterEventCallbackForImportance
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - static_cast<WeaveCircularTLVBuffer *>
    - TLVReader::Next
    - const_cast<uint8_t *>
    - VerifyOrExit
    - TLVReader::GetReadPoint
    - TLVReader::GetBufHandle
    - nl::Weave::Profiles::Platform::CriticalSectionEnter
    - nl::Weave::Profiles::Platform::CriticalSectionExit
    - CircularTLVWriter::Init
    - TLVReader::GetType
    - nl::Weave::Profiles::LoggingManagement::GetExternalEventsFromEventId
    - TLVReader::EnterContainer
    - ExternalEvents::IsValid
    - WeaveCircularTLVBuffer*::GetQueue
    - ContextTag
    - nl::Weave::Profiles::LoggingManagement::BlitExternalEvent
    - WeaveCircularTLVBuffer*::GetQueueSize
    - TLVReader::GetTag
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: LoggingManagement::UnregisterEventCallbackForImportance(ImportanceType
      inImportance, event_id_t inEventID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<CopyAndAdjustDeltaTimeContext *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1093,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1096,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1096,1
    - Dst: CopyAndAdjustDeltaTimeContext*::mWriter::Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1100,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1100,1
    - Dst: CopyAndAdjustDeltaTimeContext*::mWriter::CopyElement
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1104,1
    - Dst: GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1108,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1108,1
    - Dst: CopyAndAdjustDeltaTimeContext*::mWriter::Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1112,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1112,1
    - Dst: CopyAndAdjustDeltaTimeContext*::mWriter::CopyElement
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1117,1
    - Dst: CopyAndAdjustDeltaTimeContext*::mWriter::CopyElement
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ' aReader'
    - aDepth
    - aContext
    argTypes:
    - TLVReader
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 1124
      start: 1090
    functionDepth: 1
    functionLinenumber: 1090
    functionLinenumberEnd: 1124
    functionName: nl::Weave::Profiles::LoggingManagement::CopyAndAdjustDeltaTime
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - static_cast<CopyAndAdjustDeltaTimeContext *>
    - CopyAndAdjustDeltaTimeContext*::mWriter::Put
    - ContextTag
    - GetTag
    - CopyAndAdjustDeltaTimeContext*::mWriter::CopyElement
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LoggingManagement::CopyAndAdjustDeltaTime(const TLVReader & aReader,
      size_t aDepth, void * aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionEnter
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1189,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1192,1
    - Dst: nl::Weave::Profiles::LoggingManagement::LogEventPrivate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1194,1
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1197,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - ' inSchema'
    - inEventWriter
    - inAppData
    - inOptions
    argTypes:
    - EventSchema
    - EventWriterFunct
    - void*
    - EventOptions*
    constantsTouched: []
    func_position:
      end: 1203
      start: 1184
    functionDepth: 1
    functionLinenumber: 1184
    functionLinenumberEnd: 1203
    functionName: nl::Weave::Profiles::LoggingManagement::LogEvent
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Platform::CriticalSectionExit
    - WeaveLogProgress
    - VerifyOrExit
    - nl::Weave::Profiles::LoggingManagement::LogEventPrivate
    - nl::Weave::Profiles::Platform::CriticalSectionEnter
    linkageType: ''
    returnType: event_id_t
    signature: "LoggingManagement::LogEvent(const EventSchema & inSchema, EventWriterFunct
      inEventWriter, void * inAppData,\n                                       const
      EventOptions * inOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EventLoadOutContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1221,1
    - Dst: nl::Weave::Profiles::LoggingManagement::GetImportanceBuffer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1221,1
    - Dst: EventOptions
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1222,1
    - Dst: static_cast<timestamp_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1222,1
    - Dst: nl::Weave::System::Timer::GetCurrentEpoch
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1222,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1225,1
    - Dst: nl::Weave::Profiles::LoggingManagement::GetCurrentImportance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1225,1
    - Dst: nl::Weave::Profiles::LoggingManagement::GetImportanceBuffer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1237,1
    - Dst: nl::Weave::Profiles::LoggingManagement::GetImportanceBuffer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1239,1
    - Dst: nl::Weave::System::Layer::GetClock_RealTimeMS
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1252,1
    - Dst: static_cast<utc_timestamp_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1255,1
    - Dst: nl::Weave::Profiles::LoggingManagement::GetImportanceBuffer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1260,1
    - Dst: nl::Weave::Profiles::LoggingManagement::GetImportanceBuffer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1262,1
    - Dst: nl::Weave::Profiles::LoggingManagement::GetImportanceBuffer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1274,1
    - Dst: nl::Weave::Profiles::LoggingManagement::GetImportanceBuffer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1275,1
    - Dst: nl::Weave::Profiles::LoggingManagement::GetImportanceBuffer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1277,1
    - Dst: nl::Weave::Profiles::LoggingManagement::EnsureSpace
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1284,1
    - Dst: WeaveDie
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1289,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1290,1
    - Dst: CircularTLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1299,1
    - Dst: nl::Weave::Profiles::LoggingManagement::BlitEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1301,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1321,1
    - Dst: CircularTLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1321,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1323,1
    - Dst: CircularEventBuffer*::mBuffer::GetQueueSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1323,1
    - Dst: CircularTLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1323,1
    - Dst: CircularEventBuffer*::IsFinalDestinationForImportance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1324,1
    - Dst: CircularTLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1331,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1338,1
    - Dst: nl::Weave::Profiles::LoggingManagement::GetCurrentImportance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1340,1
    - Dst: nl::Weave::Profiles::LoggingManagement::GetImportanceBuffer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1342,1
    - Dst: nl::Weave::Profiles::LoggingManagement::GetImportanceBuffer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1347,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1350,1
    - Dst: nl::Weave::Profiles::LoggingManagement::GetImportanceBuffer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1358,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1361,1
    - Dst: nl::Weave::Profiles::LoggingManagement::ScheduleFlushIfNeeded
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1367,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 74
    argCount: 4
    argNames:
    - ' inSchema'
    - inEventWriter
    - inAppData
    - inOptions
    argTypes:
    - EventSchema
    - EventWriterFunct
    - void*
    - EventOptions*
    constantsTouched: []
    func_position:
      end: 1371
      start: 1208
    functionDepth: 2
    functionLinenumber: 1208
    functionLinenumberEnd: 1371
    functionName: nl::Weave::Profiles::LoggingManagement::LogEventPrivate
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 1
    functionsReached:
    - CircularTLVWriter::GetLengthWritten
    - WeaveDie
    - nl::Weave::Profiles::LoggingManagement::ScheduleFlushIfNeeded
    - nl::Weave::System::Layer::GetClock_RealTimeMS
    - static_cast<timestamp_t>
    - WeaveLogError
    - nl::Weave::Profiles::LoggingManagement::BlitEvent
    - VerifyOrExit
    - EventLoadOutContext
    - CircularEventBuffer*::mBuffer::GetQueueSize
    - nl::Weave::Profiles::LoggingManagement::GetImportanceBuffer
    - CircularTLVWriter::Init
    - WeaveLogProgress
    - nl::Weave::System::Timer::GetCurrentEpoch
    - static_cast<utc_timestamp_t>
    - nl::Weave::Profiles::LoggingManagement::GetCurrentImportance
    - CircularEventBuffer*::IsFinalDestinationForImportance
    - SuccessOrExit
    - EventOptions
    - nl::Weave::Profiles::LoggingManagement::EnsureSpace
    linkageType: ''
    returnType: event_id_t
    signature: "LoggingManagement::LogEventPrivate(const EventSchema & inSchema, EventWriterFunct
      inEventWriter, void * inAppData,\n                                                     const
      EventOptions * inOptions)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1380,1
    - Dst: __sync_add_and_fetch
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1378
    functionDepth: 0
    functionLinenumber: 1378
    functionLinenumberEnd: 1383
    functionName: nl::Weave::Profiles::LoggingManagement::ThrottleLogger
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - __sync_add_and_fetch
    linkageType: ''
    returnType: void
    signature: LoggingManagement::ThrottleLogger(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1390
    functionDepth: 0
    functionLinenumber: 1390
    functionLinenumberEnd: 1398
    functionName: nl::Weave::Profiles::LoggingManagement::UnthrottleLogger
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    linkageType: ''
    returnType: void
    signature: LoggingManagement::UnthrottleLogger(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1409,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1410,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1411,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1413,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1414,1
    - Dst: nl::Weave::TLV::Utilities::Iterate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1416,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1417,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1419,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1420,1
    - Dst: Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - ' aReader'
    - ' aWriter'
    - aContext
    argTypes:
    - TLVReader
    - TLVWriter
    - EventLoadOutContext*
    constantsTouched: []
    func_position:
      end: 1426
      start: 1401
    functionDepth: 2
    functionLinenumber: 1401
    functionLinenumberEnd: 1426
    functionName: nl::Weave::Profiles::LoggingManagement::CopyEvent
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - StartContainer
    - VerifyOrExit
    - TLVReader::EnterContainer
    - nl::Weave::TLV::Utilities::Iterate
    - EndContainer
    - SuccessOrExit
    - Finalize
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LoggingManagement::CopyEvent(const TLVReader & aReader, TLVWriter &
      aWriter, EventLoadOutContext * aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<EventLoadOutContext *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1433,1
    - Dst: nl::Weave::Profiles::LoggingManagement::EventIterator
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1435,1
    - Dst: EventLoadOutContext*::mExternalEvents::IsValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1440,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ' aReader'
    - aDepth
    - aContext
    argTypes:
    - TLVReader
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 1445
      start: 1430
    functionDepth: 1
    functionLinenumber: 1430
    functionLinenumberEnd: 1445
    functionName: nl::Weave::Profiles::LoggingManagement::FindExternalEvents
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::LoggingManagement::EventIterator
    - EventLoadOutContext*::mExternalEvents::IsValid
    - static_cast<EventLoadOutContext *>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LoggingManagement::FindExternalEvents(const TLVReader & aReader, size_t
      aDepth, void * aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<EventLoadOutContext *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1462,1
    - Dst: EventEnvelopeContext::mExternalEvents::Invalidate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1468,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1472,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1473,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1474,1
    - Dst: nl::Weave::TLV::Utilities::Iterate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1476,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1477,1
    - Dst: EventEnvelopeContext::mExternalEvents::IsValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1485,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1493,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1496,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1509,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - ' aReader'
    - aDepth
    - aContext
    argTypes:
    - TLVReader
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 1516
      start: 1455
    functionDepth: 2
    functionLinenumber: 1455
    functionLinenumberEnd: 1516
    functionName: nl::Weave::Profiles::LoggingManagement::EventIterator
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Init
    - EventEnvelopeContext::mExternalEvents::Invalidate
    - EventEnvelopeContext::mExternalEvents::IsValid
    - VerifyOrExit
    - TLVReader::EnterContainer
    - nl::Weave::TLV::Utilities::Iterate
    - static_cast<EventLoadOutContext *>
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LoggingManagement::EventIterator(const TLVReader & aReader, size_t
      aDepth, void * aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<EventLoadOutContext *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1538,1
    - Dst: nl::Weave::Profiles::LoggingManagement::EventIterator
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1540,1
    - Dst: nl::Weave::Profiles::LoggingManagement::CopyEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1546,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1552,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ' aReader'
    - aDepth
    - aContext
    argTypes:
    - TLVReader
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 1561
      start: 1534
    functionDepth: 3
    functionLinenumber: 1534
    functionLinenumberEnd: 1561
    functionName: nl::Weave::Profiles::LoggingManagement::CopyEventsSince
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - nl::Weave::Profiles::LoggingManagement::EventIterator
    - nl::Weave::Profiles::LoggingManagement::CopyEvent
    - static_cast<EventLoadOutContext *>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LoggingManagement::CopyEventsSince(const TLVReader & aReader, size_t
      aDepth, void * aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionEnter
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1609,1
    - Dst: CircularEventBuffer*::IsFinalDestinationForImportance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1611,1
    - Dst: nl::Weave::Profiles::LoggingManagement::GetEventReader
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1621,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1622,1
    - Dst: nl::Weave::TLV::Utilities::Iterate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1624,1
    - Dst: ExternalEvents::IsValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1627,1
    - Dst: ExternalEvents::mFetchEventsFunct
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1631,1
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1644,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - ' ioWriter'
    - inImportance
    - ' ioEventID'
    argTypes:
    - TLVWriter
    - ImportanceType
    - event_id_t
    constantsTouched: []
    func_position:
      end: 1646
      start: 1595
    functionDepth: 2
    functionLinenumber: 1595
    functionLinenumberEnd: 1646
    functionName: nl::Weave::Profiles::LoggingManagement::FetchEventsSince
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - ExternalEvents::IsValid
    - nl::Weave::Profiles::Platform::CriticalSectionExit
    - nl::Weave::Profiles::LoggingManagement::GetEventReader
    - nl::Weave::TLV::Utilities::Iterate
    - ExternalEvents::mFetchEventsFunct
    - CircularEventBuffer*::IsFinalDestinationForImportance
    - SuccessOrExit
    - nl::Weave::Profiles::Platform::CriticalSectionEnter
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LoggingManagement::FetchEventsSince(TLVWriter & ioWriter, ImportanceType
      inImportance, event_id_t & ioEventID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CircularEventBuffer*::IsFinalDestinationForImportance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1672,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1674,1
    - Dst: CircularEventReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1676,1
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1678,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' ioReader'
    - inImportance
    argTypes:
    - TLVReader
    - ImportanceType
    constantsTouched: []
    func_position:
      end: 1681
      start: 1667
    functionDepth: 0
    functionLinenumber: 1667
    functionLinenumberEnd: 1681
    functionName: nl::Weave::Profiles::LoggingManagement::GetEventReader
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 1
    functionsReached:
    - CircularEventReader::Init
    - VerifyOrExit
    - Init
    - CircularEventBuffer*::IsFinalDestinationForImportance
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LoggingManagement::GetEventReader(TLVReader & ioReader, ImportanceType
      inImportance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<EventEnvelopeContext *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1687,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1690,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1692,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1694,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1694,1
    - Dst: TLVReader::GetBytes
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1696,1
    - Dst: static_cast<uint8_t *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1696,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1696,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1697,1
    - Dst: ExternalEvents
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1697,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1701,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1701,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1703,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1704,1
    - Dst: static_cast<ImportanceType>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1705,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1710,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1710,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1712,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1713,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1719,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1719,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1721,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1722,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - ' aReader'
    - aDepth
    - aContext
    argTypes:
    - TLVReader
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 1730
      start: 1684
    functionDepth: 1
    functionLinenumber: 1684
    functionLinenumberEnd: 1730
    functionName: nl::Weave::Profiles::LoggingManagement::FetchEventParameters
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - static_cast<EventEnvelopeContext *>
    - static_cast<ImportanceType>
    - VerifyOrExit
    - TLVReader::GetBytes
    - static_cast<void *>
    - TLVReader::GetTag
    - SuccessOrExit
    - ExternalEvents
    - static_cast<uint8_t *>
    - nl::Weave::TLV::ContextTag
    - TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LoggingManagement::FetchEventParameters(const TLVReader & aReader,
      size_t aDepth, void * aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ReclaimEventCtx *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1736,1
    - Dst: ExternalEvents::Invalidate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1747,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1754,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1755,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1757,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1758,1
    - Dst: nl::Weave::TLV::Utilities::Iterate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1760,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1762,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1764,1
    - Dst: static_cast<ImportanceType>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1766,1
    - Dst: CircularEventBuffer*::IsFinalDestinationForImportance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1768,1
    - Dst: ExternalEvents::IsValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1774,1
    - Dst: ExternalEvents::mNotifyEventsEvictedFunct
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1780,1
    - Dst: CircularEventBuffer*::RemoveEvent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1785,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1787,1
    - Dst: GetLengthRead
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1797,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 3
    argNames:
    - ' inBuffer'
    - inAppData
    - ' inReader'
    argTypes:
    - WeaveCircularTLVBuffer
    - void*
    - TLVReader
    constantsTouched: []
    func_position:
      end: 1803
      start: 1734
    functionDepth: 2
    functionLinenumber: 1734
    functionLinenumberEnd: 1803
    functionName: nl::Weave::Profiles::LoggingManagement::EvictEvent
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - static_cast<ReclaimEventCtx *>
    - EnterContainer
    - ExternalEvents::IsValid
    - ExternalEvents::Invalidate
    - static_cast<ImportanceType>
    - ExternalEvents::mNotifyEventsEvictedFunct
    - CircularEventBuffer*::RemoveEvent
    - GetLengthRead
    - ExitContainer
    - nl::Weave::TLV::Utilities::Iterate
    - CircularEventBuffer*::IsFinalDestinationForImportance
    - WeaveLogDetail
    - SuccessOrExit
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LoggingManagement::EvictEvent(WeaveCircularTLVBuffer & inBuffer, void
      * inAppData, TLVReader & inReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<LoggingManagement *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1811,1
    - Dst: LoggingManagement*::FlushHandler
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - systemLayer
    - appState
    - err
    argTypes:
    - System::Layer*
    - void*
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 1813
      start: 1809
    functionDepth: 0
    functionLinenumber: 1809
    functionLinenumberEnd: 1813
    functionName: nl::Weave::Profiles::LoggingManagement::LoggingFlushHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - LoggingManagement*::FlushHandler
    - static_cast<LoggingManagement *>
    linkageType: ''
    returnType: void
    signature: LoggingManagement::LoggingFlushHandler(System::Layer * systemLayer,
      void * appState, INET_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1820,1
    - Dst: GetDestNodeId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1832,1
    - Dst: StartUpload
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1836,1
    - Dst: GetDestNodeId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1836,1
    - Dst: GetDestNodeIPAddress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1836,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1838,1
    - Dst: MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1844,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1852,1
    - Dst: nl::Weave::Profiles::LoggingManagement::ScheduleFlushIfNeeded
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1864,1
    - Dst: MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1869,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - inSystemLayer
    - inErr
    argTypes:
    - System::Layer*
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 1882
      start: 1817
    functionDepth: 1
    functionLinenumber: 1817
    functionLinenumberEnd: 1882
    functionName: nl::Weave::Profiles::LoggingManagement::FlushHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - MessageLayer::SystemLayer::StartTimer
    - GetDestNodeId
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - GetDestNodeIPAddress
    - nl::Weave::Profiles::LoggingManagement::ScheduleFlushIfNeeded
    - StartUpload
    linkageType: ''
    returnType: void
    signature: LoggingManagement::FlushHandler(System::Layer * inSystemLayer, INET_ERROR
      inErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1887,1
    - Dst: MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1893,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1884
    functionDepth: 0
    functionLinenumber: 1884
    functionLinenumberEnd: 1897
    functionName: nl::Weave::Profiles::LoggingManagement::SignalUploadDone
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - MessageLayer::SystemLayer::StartTimer
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    linkageType: ''
    returnType: void
    signature: LoggingManagement::SignalUploadDone(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::LoggingManagement::CheckShouldRunBDX
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1942,1
    - Dst: nl::Weave::Profiles::LoggingManagement::CheckShouldRunWDM
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1945,1
    - Dst: __sync_bool_compare_and_swap
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1948,1
    - Dst: MessageLayer::SystemLayer::ScheduleWork
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1952,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1953,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1959,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1959,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1964,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - inRequestFlush
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1968
      start: 1937
    functionDepth: 1
    functionLinenumber: 1937
    functionLinenumberEnd: 1968
    functionName: nl::Weave::Profiles::LoggingManagement::ScheduleFlushIfNeeded
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 2
    functionsReached:
    - WeaveLogError
    - WeaveLogProgress
    - __sync_bool_compare_and_swap
    - nl::Weave::Profiles::LoggingManagement::CheckShouldRunWDM
    - ErrorStr
    - nl::Weave::Profiles::LoggingManagement::CheckShouldRunBDX
    - MessageLayer::SystemLayer::ScheduleWork
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LoggingManagement::ScheduleFlushIfNeeded(bool inRequestFlush)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1973,1
    - Dst: GetUploadPosition
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1974,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1971
    functionDepth: 0
    functionLinenumber: 1971
    functionLinenumberEnd: 1975
    functionName: nl::Weave::Profiles::LoggingManagement::CheckShouldRunBDX
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 1
    functionsReached:
    - GetUploadPosition
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    linkageType: ''
    returnType: bool
    signature: LoggingManagement::CheckShouldRunBDX(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:1999,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2007
      start: 1992
    functionDepth: 0
    functionLinenumber: 1992
    functionLinenumberEnd: 2007
    functionName: nl::Weave::Profiles::LoggingManagement::CheckShouldRunWDM
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - SuccessOrExit
    linkageType: ''
    returnType: bool
    signature: LoggingManagement::CheckShouldRunWDM(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionEnter
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2017,1
    - Dst: static_cast<size_t>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2024,1
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2031,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - inEventEndpoints
    - inNumImportanceLevels
    - ' outBytesOffloaded'
    argTypes:
    - event_id_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 2033
      start: 2011
    functionDepth: 0
    functionLinenumber: 2011
    functionLinenumberEnd: 2033
    functionName: nl::Weave::Profiles::LoggingManagement::SetLoggingEndpoint
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Platform::CriticalSectionEnter
    - nl::Weave::Profiles::Platform::CriticalSectionExit
    - static_cast<size_t>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "LoggingManagement::SetLoggingEndpoint(event_id_t * inEventEndpoints,
      size_t inNumImportanceLevels,\n                                                  size_t
      & outBytesOffloaded)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2045
      start: 2042
    functionDepth: 0
    functionLinenumber: 2042
    functionLinenumberEnd: 2045
    functionName: nl::Weave::Profiles::LoggingManagement::GetBytesWritten
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: LoggingManagement::GetBytesWritten(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionEnter
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2057,1
    - Dst: nl::Weave::Profiles::LoggingManagement::GetFirstEventID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2058,1
    - Dst: nl::Weave::Profiles::LoggingManagement::GetExternalEventsFromEventId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2061,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2062,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2064,1
    - Dst: ExternalEvents::IsValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2064,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2066,1
    - Dst: ExternalEvents::mNotifyEventsDeliveredFunct
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2070,1
    - Dst: nl::Weave::Profiles::Platform::CriticalSectionExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2077,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - inImportance
    - inLastDeliveredEventID
    - inRecipientNodeID
    argTypes:
    - ImportanceType
    - event_id_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 2079
      start: 2047
    functionDepth: 2
    functionLinenumber: 2047
    functionLinenumberEnd: 2079
    functionName: nl::Weave::Profiles::LoggingManagement::NotifyEventsDelivered
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - ExternalEvents::IsValid
    - nl::Weave::Profiles::Platform::CriticalSectionExit
    - VerifyOrExit
    - nl::Weave::Profiles::LoggingManagement::GetExternalEventsFromEventId
    - ExternalEvents::mNotifyEventsDeliveredFunct
    - SuccessOrExit
    - nl::Weave::Profiles::LoggingManagement::GetFirstEventID
    - nl::Weave::Profiles::Platform::CriticalSectionEnter
    linkageType: ''
    returnType: void
    signature: "LoggingManagement::NotifyEventsDelivered(ImportanceType inImportance,
      event_id_t inLastDeliveredEventID,\n                                              uint64_t
      inRecipientNodeID)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2113,1
    - Dst: static_cast<uint8_t *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2113,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2113,1
    - Dst: CircularEventBuffer*::IsFinalDestinationForImportance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2115,1
    - Dst: nl::Weave::Profiles::LoggingManagement::GetEventReader
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2126,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2127,1
    - Dst: nl::Weave::TLV::Utilities::Find
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2129,1
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - inImportance
    - inEventID
    - outExternalEvents
    - ' outReader'
    argTypes:
    - ImportanceType
    - event_id_t
    - ExternalEvents*
    - TLVReader
    constantsTouched: []
    func_position:
      end: 2136
      start: 2102
    functionDepth: 2
    functionLinenumber: 2102
    functionLinenumberEnd: 2136
    functionName: nl::Weave::Profiles::LoggingManagement::GetExternalEventsFromEventId
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::TLV::Utilities::Find
    - static_cast<void *>
    - SuccessOrExit
    - Init
    - CircularEventBuffer*::IsFinalDestinationForImportance
    - nl::Weave::Profiles::LoggingManagement::GetEventReader
    - TLVWriter::Init
    - static_cast<uint8_t *>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "LoggingManagement::GetExternalEventsFromEventId(ImportanceType inImportance,
      event_id_t inEventID,\n                                                            ExternalEvents
      * outExternalEvents, TLVReader & outReader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - inUploader
    argTypes:
    - LogBDXUpload*
    constantsTouched: []
    func_position:
      end: 2149
      start: 2139
    functionDepth: 0
    functionLinenumber: 2139
    functionLinenumberEnd: 2149
    functionName: nl::Weave::Profiles::LoggingManagement::SetBDXUploader
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    linkageType: ''
    returnType: void
    signature: LoggingManagement::SetBDXUploader(LogBDXUpload * inUploader)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - inBuffer
    - inBufferLength
    - inPrev
    - inNext
    argTypes:
    - uint8_t*
    - size_t
    - CircularEventBuffer*
    - CircularEventBuffer*
    constantsTouched: []
    func_position:
      end: 2178
      start: 2167
    functionDepth: 0
    functionLinenumber: 2167
    functionLinenumberEnd: 2178
    functionName: nl::Weave::Profiles::CircularEventBuffer::CircularEventBuffer
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "CircularEventBuffer::CircularEventBuffer(uint8_t * inBuffer, size_t
      inBufferLength, CircularEventBuffer * inPrev,\n                                         CircularEventBuffer
      * inNext)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - inImportance
    argTypes:
    - ImportanceType
    constantsTouched: []
    func_position:
      end: 2194
      start: 2191
    functionDepth: 0
    functionLinenumber: 2191
    functionLinenumberEnd: 2194
    functionName: nl::Weave::Profiles::CircularEventBuffer::IsFinalDestinationForImportance
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: CircularEventBuffer::IsFinalDestinationForImportance(ImportanceType
      inImportance) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - inEventTimestamp
    argTypes:
    - timestamp_t
    constantsTouched: []
    func_position:
      end: 2212
      start: 2204
    functionDepth: 0
    functionLinenumber: 2204
    functionLinenumberEnd: 2212
    functionName: nl::Weave::Profiles::CircularEventBuffer::AddEvent
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CircularEventBuffer::AddEvent(timestamp_t inEventTimestamp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - inEventTimestamp
    argTypes:
    - utc_timestamp_t
    constantsTouched: []
    func_position:
      end: 2231
      start: 2223
    functionDepth: 0
    functionLinenumber: 2223
    functionLinenumberEnd: 2231
    functionName: nl::Weave::Profiles::CircularEventBuffer::AddEventUTC
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CircularEventBuffer::AddEventUTC(utc_timestamp_t inEventTimestamp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aNumEvents
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 2239
      start: 2234
    functionDepth: 0
    functionLinenumber: 2234
    functionLinenumberEnd: 2239
    functionName: nl::Weave::Profiles::CircularEventBuffer::RemoveEvent
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: CircularEventBuffer::RemoveEvent(size_t aNumEvents)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CircularTLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2256,1
    - Dst: nl::Weave::TLV::CircularTLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2257,1
    - Dst: CircularTLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2262,1
    - Dst: CircularTLVReader::GetRemainingLength
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - inBuf
    argTypes:
    - CircularEventBuffer*
    constantsTouched: []
    func_position:
      end: 2265
      start: 2252
    functionDepth: 1
    functionLinenumber: 2252
    functionLinenumberEnd: 2265
    functionName: nl::Weave::Profiles::CircularEventReader::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::CircularTLVReader::Init
    - CircularTLVReader::Init
    - CircularTLVReader::GetRemainingLength
    linkageType: ''
    returnType: void
    signature: CircularEventReader::Init(CircularEventBuffer * inBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2284,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2285,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2287,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2287,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2288,1
    - Dst: StartPutBytes
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2290,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2290,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2291,1
    - Dst: ContinuePutBytes
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2293,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2294,1
    - Dst: ContinuePutBytes
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2298,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2299,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2302,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2302,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2303,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2305,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2305,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2306,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2308,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2308,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2309,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2311,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2311,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2312,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2314,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2314,1
    - Dst: GetValue
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2314,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2315,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2318,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2318,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2319,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2321,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2321,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2322,1
    - Dst: PutBoolean
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2324,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2324,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2325,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2328,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2329,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 1
    argNames:
    - ' writer'
    argTypes:
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 2337
      start: 2267
    functionDepth: 0
    functionLinenumber: 2267
    functionLinenumberEnd: 2337
    functionName: nl::Weave::Profiles::CircularEventBuffer::SerializeEvents
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - GetValue
    - WeaveLogError
    - StartContainer
    - StartPutBytes
    - ContextTag
    - ContinuePutBytes
    - EndContainer
    - Put
    - SuccessOrExit
    - PutBoolean
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CircularEventBuffer::SerializeEvents(TLVWriter & writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2348,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2349,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2350,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2351,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2353,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2353,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2354,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2355,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2356,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2359,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2359,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2360,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2361,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2361,1
    - Dst: GetQueueSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2361,1
    - Dst: SetQueueLength
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2362,1
    - Dst: GetLength
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2362,1
    - Dst: SetQueueHead
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2363,1
    - Dst: GetQueue
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2363,1
    - Dst: GetBytes
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2364,1
    - Dst: GetQueue
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2364,1
    - Dst: DataLength
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2364,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2365,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2367,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2367,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2368,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2369,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2370,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2372,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2372,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2373,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2374,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2375,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2377,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2377,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2378,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2379,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2380,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2382,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2382,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2383,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2384,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2385,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2387,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2387,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2388,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2389,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2390,1
    - Dst: static_cast<PersistedCounter *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2392,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2395,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2395,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2396,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2397,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2398,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2400,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2400,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2401,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2402,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2403,1
    - Dst: Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2405,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2405,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2406,1
    - Dst: Get
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2407,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2408,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2411,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2412,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 58
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLVReader
    constantsTouched: []
    func_position:
      end: 2420
      start: 2339
    functionDepth: 0
    functionLinenumber: 2339
    functionLinenumberEnd: 2420
    functionName: nl::Weave::Profiles::CircularEventBuffer::LoadEvents
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - WeaveLogError
    - GetLength
    - SetQueueHead
    - static_cast<PersistedCounter *>
    - DataLength
    - ContextTag
    - VerifyOrExit
    - GetBytes
    - ExitContainer
    - GetQueue
    - Get
    - SuccessOrExit
    - SetQueueLength
    - GetQueueSize
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CircularEventBuffer::LoadEvents(TLVReader & reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2428,1
    - Dst: static_cast<CircularEventBuffer *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2430,1
    - Dst: CircularEventBuffer*::mBuffer::GetNextBuffer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2432,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2433,1
    - Dst: nl::Weave::Profiles::CircularEventBuffer::GetNextBufferFunct
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp:2439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ' ioReader'
    - ' inBufHandle'
    - ' outBufStart'
    - ' outBufLen'
    argTypes:
    - TLVReader
    - uintptr_t
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2444
      start: 2422
    functionDepth: 1
    functionLinenumber: 2422
    functionLinenumberEnd: 2444
    functionName: nl::Weave::Profiles::CircularEventBuffer::GetNextBufferFunct
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 1
    functionsReached:
    - CircularEventBuffer*::mBuffer::GetNextBuffer
    - VerifyOrExit
    - nl::Weave::Profiles::CircularEventBuffer::GetNextBufferFunct
    - SuccessOrExit
    - static_cast<CircularEventBuffer *>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "CircularEventBuffer::GetNextBufferFunct(TLVReader & ioReader, uintptr_t
      & inBufHandle, const uint8_t *& outBufStart,\n                                                    uint32_t
      & outBufLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - inWriter
    - inContext
    argTypes:
    - TLVWriter*
    - EventLoadOutContext*
    constantsTouched: []
    func_position:
      end: 2448
      start: 2446
    functionDepth: 0
    functionLinenumber: 2446
    functionLinenumberEnd: 2448
    functionName: nl::Weave::Profiles::CopyAndAdjustDeltaTimeContext::CopyAndAdjustDeltaTimeContext
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CopyAndAdjustDeltaTimeContext::CopyAndAdjustDeltaTimeContext(TLVWriter
      * inWriter, EventLoadOutContext * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2457
      start: 2450
    functionDepth: 0
    functionLinenumber: 2450
    functionLinenumberEnd: 2457
    functionName: nl::Weave::Profiles::EventEnvelopeContext::EventEnvelopeContext
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EventEnvelopeContext::EventEnvelopeContext(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: nl::Weave::Profiles::SubscriptionEngine::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: nl::Weave::Profiles::SubscriptionEngine::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    functionName: nl::Weave::Profiles::SubscriptionEngine::GetNotificationEngine
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NotificationEngine
    signature: '* GetNotificationEngine(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 377
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 377
    functionName: nl::Weave::Profiles::SubscriptionEngine::GetExchangeManager
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: nl::Weave::WeaveExchangeManager
    signature: '* GetExchangeManager(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aMsgInfo
    argTypes:
    - WeaveMessageInfo*
    constantsTouched: []
    func_position:
      end: 415
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 415
    functionName: nl::Weave::Profiles::SubscriptionEngine::SubscriptionlessNotifyDataElementAccessControlDelegate::SubscriptionlessNotifyDataElementAccessControlDelegate
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SubscriptionlessNotifyDataElementAccessControlDelegate(const WeaveMessageInfo
      * aMsgInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aMsgInfo
    argTypes:
    - WeaveMessageInfo*
    constantsTouched: []
    func_position:
      end: 432
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 432
    functionName: nl::Weave::Profiles::SubscriptionEngine::UpdateRequestDataElementAccessControlDelegate::UpdateRequestDataElementAccessControlDelegate
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: UpdateRequestDataElementAccessControlDelegate(const WeaveMessageInfo
      * aMsgInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: nl::Weave::Profiles::TraitPath
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitCatalog.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TraitPath()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - aDataHandle
    - aPropertyPathHandle
    argTypes:
    - TraitDataHandle
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: nl::Weave::Profiles::TraitPath
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitCatalog.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TraitPath(TraitDataHandle aDataHandle, PropertyPathHandle aPropertyPathHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - TraitPath
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: operator ==(const TraitPath & rhs) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitCatalog.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: operator ==(const TraitPath & rhs) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: nl::Weave::Profiles::IsValid
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitCatalog.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsValid()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: nl::Weave::Profiles::VersionedTraitPath
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitCatalog.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: VersionedTraitPath()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aDataHandle
    - aPropertyPathHandle
    - aRequestedVersionRange
    argTypes:
    - TraitDataHandle
    - PropertyPathHandle
    - SchemaVersionRange
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: nl::Weave::Profiles::VersionedTraitPath
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/TraitCatalog.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "VersionedTraitPath(TraitDataHandle aDataHandle, PropertyPathHandle
      aPropertyPathHandle,\n                       SchemaVersionRange aRequestedVersionRange)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 85
    functionName: nl::Weave::Profiles::LogBDXUpload
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: LogBDXUpload
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - aHandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: NotificationEngine::BasicGraphSolver::IsPropertyPathSupported(PropertyPathHandle
      aHandle)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: NotificationEngine::BasicGraphSolver::IsPropertyPathSupported(PropertyPathHandle
      aHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NotifyRequestBuilder*::WriteDataElement
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:70,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - aBuilder
    - aTraitDataHandle
    - aSchemaVersion
    - aRetrieveAll
    argTypes:
    - NotifyRequestBuilder*
    - TraitDataHandle
    - SchemaVersion
    - bool
    constantsTouched: []
    func_position:
      end: 75
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 75
    functionName: "NotificationEngine::BasicGraphSolver::RetrieveTraitInstanceData(NotifyRequestBuilder
      * aBuilder,\n                                                                            TraitDataHandle
      aTraitDataHandle,\n                                                                            SchemaVersion
      aSchemaVersion, bool aRetrieveAll)"
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - NotifyRequestBuilder*::WriteDataElement
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "NotificationEngine::BasicGraphSolver::RetrieveTraitInstanceData(NotifyRequestBuilder
      * aBuilder,\n                                                                            TraitDataHandle
      aTraitDataHandle,\n                                                                            SchemaVersion
      aSchemaVersion, bool aRetrieveAll)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:79,1
    - Dst: SubscriptionHandler*::IsActive
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:86,1
    - Dst: SubscriptionHandler*::GetTraitInstanceInfoList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:88,1
    - Dst: SubscriptionHandler*::GetNumTraitInstances
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:90,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:94,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - aDataHandle
    - aPropertyHandle
    argTypes:
    - TraitDataHandle
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 102
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 102
    functionName: NotificationEngine::BasicGraphSolver::SetDirty(TraitDataHandle aDataHandle,
      PropertyPathHandle aPropertyHandle)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionHandler*::GetNumTraitInstances
    - SubscriptionHandler*::IsActive
    - SubscriptionHandler*::GetTraitInstanceInfoList
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - SetDirty
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationEngine::BasicGraphSolver::SetDirty(TraitDataHandle aDataHandle,
      PropertyPathHandle aPropertyHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: NotificationEngine::BasicGraphSolver::ClearDirty()
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationEngine::BasicGraphSolver::ClearDirty()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 122
    functionName: NotificationEngine::IntermediateGraphSolver::Store::Store()
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: NotificationEngine::IntermediateGraphSolver::Store::Store()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - aItem
    argTypes:
    - TraitPath
    constantsTouched: []
    func_position:
      end: 149
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 149
    functionName: NotificationEngine::IntermediateGraphSolver::Store::AddItem(TraitPath
      aItem)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrDie
    linkageType: ''
    returnType: bool
    signature: NotificationEngine::IntermediateGraphSolver::Store::AddItem(TraitPath
      aItem)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - aDataHandle
    argTypes:
    - TraitDataHandle
    constantsTouched: []
    func_position:
      end: 164
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 164
    functionName: NotificationEngine::IntermediateGraphSolver::Store::RemoveItem(TraitDataHandle
      aDataHandle)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: NotificationEngine::IntermediateGraphSolver::Store::RemoveItem(TraitDataHandle
      aDataHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - aIndex
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: NotificationEngine::IntermediateGraphSolver::Store::RemoveItemAt(uint32_t
      aIndex)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: NotificationEngine::IntermediateGraphSolver::Store::RemoveItemAt(uint32_t
      aIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - aItem
    argTypes:
    - TraitPath
    constantsTouched: []
    func_position:
      end: 186
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 186
    functionName: NotificationEngine::IntermediateGraphSolver::Store::IsPresent(TraitPath
      aItem)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: NotificationEngine::IntermediateGraphSolver::Store::IsPresent(TraitPath
      aItem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BasicGraphSolver::IsPropertyPathSupported
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aHandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: NotificationEngine::IntermediateGraphSolver::IsPropertyPathSupported(PropertyPathHandle
      aHandle)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - BasicGraphSolver::IsPropertyPathSupported
    linkageType: ''
    returnType: bool
    signature: NotificationEngine::IntermediateGraphSolver::IsPropertyPathSupported(PropertyPathHandle
      aHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:202,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:205,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:206,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:206,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:206,1
    - Dst: SubscriptionEngine*::mPublisherCatalog::Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:210,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:211,1
    - Dst: TraitDataSource::SetDirty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:214,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:215,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:218,1
    - Dst: TraitDataSource*::IsRootDirty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:218,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:218,1
    - Dst: IsPresent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:222,1
    - Dst: TraitPath
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:222,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:224,1
    - Dst: IsFull
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:230,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:232,1
    - Dst: RemoveItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:234,1
    - Dst: TraitDataSource*::SetRootDirty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:237,1
    - Dst: AddItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:241,1
    - Dst: TraitPath
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:241,1
    - Dst: GetStoreSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:244,1
    - Dst: TraitDataSource*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:249,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:251,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:252,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:253,1
    - Dst: RemoveItemAt
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:254,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - aDataHandle
    - aPropertyHandle
    argTypes:
    - TraitDataHandle
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 262
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 262
    functionName: NotificationEngine::IntermediateGraphSolver::DeleteKey(TraitDataHandle
      aDataHandle, PropertyPathHandle aPropertyHandle)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - TraitDataSource::SetDirty
    - TraitPath
    - IsFull
    - RemoveItem
    - SubscriptionEngine*::mPublisherCatalog::Locate
    - GetStoreSize
    - AddItem
    - GetPropertySchemaHandle
    - VerifyOrExit
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - GetNumItems
    - TraitDataSource*::IsRootDirty
    - TraitDataSource*::GetSchemaEngine
    - GetPropertyDictionaryKey
    - IsPresent
    - RemoveItemAt
    - TraitDataSource*::SetRootDirty
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationEngine::IntermediateGraphSolver::DeleteKey(TraitDataHandle
      aDataHandle, PropertyPathHandle aPropertyHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:268,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:271,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:272,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:272,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:272,1
    - Dst: SubscriptionEngine*::mPublisherCatalog::Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:276,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:277,1
    - Dst: TraitDataSource::SetDirty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:280,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:281,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:284,1
    - Dst: TraitDataSource*::IsRootDirty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:284,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:284,1
    - Dst: IsPresent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:288,1
    - Dst: TraitPath
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:288,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:290,1
    - Dst: IsFull
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:296,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:298,1
    - Dst: RemoveItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:300,1
    - Dst: TraitDataSource*::SetRootDirty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:303,1
    - Dst: GetStoreSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:311,1
    - Dst: TraitDataSource*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:316,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:318,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:319,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:320,1
    - Dst: TraitDataSource*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:325,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:326,1
    - Dst: RemoveItemAt
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:328,1
    - Dst: AddItem
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:334,1
    - Dst: TraitPath
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:334,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - aDataHandle
    - aPropertyHandle
    argTypes:
    - TraitDataHandle
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 339
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 339
    functionName: NotificationEngine::IntermediateGraphSolver::SetDirty(TraitDataHandle
      aDataHandle, PropertyPathHandle aPropertyHandle)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - TraitDataSource::SetDirty
    - TraitPath
    - IsFull
    - RemoveItem
    - SubscriptionEngine*::mPublisherCatalog::Locate
    - AddItem
    - GetStoreSize
    - GetPropertySchemaHandle
    - VerifyOrExit
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - GetNumItems
    - TraitDataSource*::IsRootDirty
    - TraitDataSource*::GetSchemaEngine
    - GetPropertyDictionaryKey
    - IsPresent
    - RemoveItemAt
    - TraitDataSource*::SetRootDirty
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationEngine::IntermediateGraphSolver::SetDirty(TraitDataHandle
      aDataHandle, PropertyPathHandle aPropertyHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetStoreSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:347,1
    - Dst: GetStoreSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:363,1
    - Dst: GetStoreSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:364,1
    - Dst: GetStoreSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:364,1
    - Dst: GetStoreSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:366,1
    - Dst: GetStoreSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:368,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - ' aChangeStoreCursor'
    - aTargetDataHandle
    - ' aCandidateHandleIsDelete'
    argTypes:
    - uint32_t
    - TraitDataHandle
    - bool
    constantsTouched: []
    func_position:
      end: 382
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 382
    functionName: "NotificationEngine::IntermediateGraphSolver::GetNextCandidateHandle(uint32_t
      & aChangeStoreCursor,\n                                                                                       TraitDataHandle
      aTargetDataHandle,\n                                                                                       bool
      & aCandidateHandleIsDelete)"
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - GetStoreSize
    linkageType: ''
    returnType: PropertyPathHandle
    signature: "NotificationEngine::IntermediateGraphSolver::GetNextCandidateHandle(uint32_t
      & aChangeStoreCursor,\n                                                                                       TraitDataHandle
      aTargetDataHandle,\n                                                                                       bool
      & aCandidateHandleIsDelete)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:397,1
    - Dst: Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:397,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:398,1
    - Dst: TraitDataSource*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:400,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:401,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:401,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:405,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:405,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:412,1
    - Dst: TraitDataSource*::IsRootDirty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:416,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:418,1
    - Dst: GetNextCandidateHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:471,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:486,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:486,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:487,1
    - Dst: TraitSchemaEngine*::GetParent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:506,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:515,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:516,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:516,1
    - Dst: TraitSchemaEngine*::FindLowestCommonAncestor
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:522,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:524,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:526,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:528,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:529,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:529,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:530,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:530,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:531,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:531,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:532,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:539,1
    - Dst: TraitSchemaEngine*::GetParent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:550,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:558,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:559,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:559,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:570,1
    - Dst: TraitSchemaEngine*::GetParent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:574,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:584,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:586,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:586,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:600,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:613,1
    - Dst: TraitSchemaEngine*::IsDictionary
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:618,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:620,1
    - Dst: TraitSchemaEngine*::GetParent
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:622,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:638,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:639,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:640,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:649,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:654,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:655,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:656,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:672,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:679,1
    - Dst: TraitSchemaEngine*::IsDictionary
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:679,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:683,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:684,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:684,1
    - Dst: NotifyRequestBuilder*::WriteDataElement
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:694,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:696,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 117
    argCount: 4
    argNames:
    - aBuilder
    - aTraitDataHandle
    - aSchemaVersion
    - aRetrieveAll
    argTypes:
    - NotifyRequestBuilder*
    - TraitDataHandle
    - SchemaVersion
    - bool
    constantsTouched: []
    func_position:
      end: 700
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 700
    functionName: "NotificationEngine::IntermediateGraphSolver::RetrieveTraitInstanceData(NotifyRequestBuilder
      * aBuilder,\n                                                                                   TraitDataHandle
      aTraitDataHandle,\n                                                                                   SchemaVersion
      aSchemaVersion, bool aRetrieveAll)"
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - TraitSchemaEngine*::GetParent
    - VerifyOrDie
    - TraitDataSource*::GetSchemaEngine
    - Locate
    - GetNextCandidateHandle
    - GetPropertyDictionaryKey
    - GetPropertySchemaHandle
    - VerifyOrExit
    - SubscriptionEngine::GetInstance
    - NotifyRequestBuilder*::WriteDataElement
    - WeaveLogDetail
    - TraitSchemaEngine*::IsDictionary
    - SuccessOrExit
    - GetNumItems
    - TraitDataSource*::IsRootDirty
    - TraitSchemaEngine*::FindLowestCommonAncestor
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "NotificationEngine::IntermediateGraphSolver::RetrieveTraitInstanceData(NotifyRequestBuilder
      * aBuilder,\n                                                                                   TraitDataHandle
      aTraitDataHandle,\n                                                                                   SchemaVersion
      aSchemaVersion, bool aRetrieveAll)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TraitDataSource *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:705,1
    - Dst: TraitDataSource*::ClearRootDirty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aDataSource
    - aDataHandle
    - aContext
    argTypes:
    - void*
    - TraitDataHandle
    - void*
    constantsTouched: []
    func_position:
      end: 707
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 707
    functionName: "NotificationEngine::IntermediateGraphSolver::ClearTraitInstanceDirty(void
      * aDataSource, TraitDataHandle aDataHandle,\n                                                                          void
      * aContext)"
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TraitDataSource *>
    - TraitDataSource*::ClearRootDirty
    linkageType: ''
    returnType: void
    signature: "NotificationEngine::IntermediateGraphSolver::ClearTraitInstanceDirty(void
      * aDataSource, TraitDataHandle aDataHandle,\n                                                                          void
      * aContext)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:712,1
    - Dst: Iterate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:712,1
    - Dst: Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:715,1
    - Dst: Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 722
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 722
    functionName: NotificationEngine::IntermediateGraphSolver::ClearDirty()
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionEngine::GetInstance
    - Iterate
    - Clear
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationEngine::IntermediateGraphSolver::ClearDirty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 728
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 728
    functionName: NotificationEngine::IntermediateGraphSolver::Store::Clear()
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: NotificationEngine::IntermediateGraphSolver::Store::Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - aBuf
    - aWriter
    - aSubHandler
    - aMaxPayloadSize
    argTypes:
    - PacketBuffer*
    - TLV::TLVWriter*
    - SubscriptionHandler*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 751
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 751
    functionName: "NotificationEngine::NotifyRequestBuilder::Init(PacketBuffer * aBuf,
      TLV::TLVWriter * aWriter,\n                                                           SubscriptionHandler
      * aSubHandler,\n                                                           uint32_t
      aMaxPayloadSize)"
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "NotificationEngine::NotifyRequestBuilder::Init(PacketBuffer * aBuf,
      TLV::TLVWriter * aWriter,\n                                                           SubscriptionHandler
      * aSubHandler,\n                                                           uint32_t
      aMaxPayloadSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:758,1
    - Dst: Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:760,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:762,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:763,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:767,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:767,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:768,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 775
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 775
    functionName: NotificationEngine::NotifyRequestBuilder::StartNotifyRequest()
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - StartContainer
    - ContextTag
    - VerifyOrExit
    - Init
    - Put
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationEngine::NotifyRequestBuilder::StartNotifyRequest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:781,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:783,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:784,1
    - Dst: Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:786,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 793
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 793
    functionName: NotificationEngine::NotifyRequestBuilder::EndNotifyRequest()
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - Finalize
    - EndContainer
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationEngine::NotifyRequestBuilder::EndNotifyRequest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:800,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:802,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:802,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 809
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 809
    functionName: NotificationEngine::NotifyRequestBuilder::StartDataList()
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - ContextTag
    - StartContainer
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationEngine::NotifyRequestBuilder::StartDataList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:815,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:817,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 823
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 823
    functionName: NotificationEngine::NotifyRequestBuilder::EndDataList()
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - EndContainer
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationEngine::NotifyRequestBuilder::EndDataList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:830,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:832,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:832,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 839
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 839
    functionName: NotificationEngine::NotifyRequestBuilder::StartEventList()
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - ContextTag
    - StartContainer
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationEngine::NotifyRequestBuilder::StartEventList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:845,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:847,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 853
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 853
    functionName: NotificationEngine::NotifyRequestBuilder::EndEventList()
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - EndContainer
    - VerifyOrExit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationEngine::NotifyRequestBuilder::EndEventList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:867,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:869,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:870,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:872,1
    - Dst: Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:872,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:873,1
    - Dst: TraitDataSource*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:876,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:878,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:878,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:879,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:881,1
    - Dst: HandleToAddress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:881,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:882,1
    - Dst: TraitDataSource*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:884,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:885,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:887,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:888,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:890,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:890,1
    - Dst: TraitDataSource*::GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:890,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:891,1
    - Dst: TraitDataSource*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:895,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:901,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:901,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:902,1
    - Dst: Put
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:906,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:906,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:907,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:910,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:911,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:917,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:917,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:918,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:924,1
    - Dst: TraitDataSource*::ReadData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:926,1
    - Dst: TraitSchemaEngine*::GetTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:926,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:927,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:932,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:933,1
    - Dst: TraitDataSource*::ReadData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:940,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:940,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:941,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:946,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:947,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:952,1
    - Dst: TraitDataSource*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:953,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 56
    argCount: 7
    argNames:
    - aTraitDataHandle
    - aPropertyPathHandle
    - aSchemaVersion
    - aMergeDataHandleSet
    - aNumMergeDataHandles
    - aDeleteHandleSet
    - aNumDeleteHandles
    argTypes:
    - TraitDataHandle
    - PropertyPathHandle
    - SchemaVersion
    - PropertyPathHandle*
    - uint32_t
    - PropertyPathHandle*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 957
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 957
    functionName: "NotificationEngine::NotifyRequestBuilder::WriteDataElement(TraitDataHandle
      aTraitDataHandle, PropertyPathHandle aPropertyPathHandle,\n                                                           SchemaVersion
      aSchemaVersion, PropertyPathHandle * aMergeDataHandleSet,\n                                                           uint32_t
      aNumMergeDataHandles, PropertyPathHandle * aDeleteHandleSet,\n                                                           uint32_t
      aNumDeleteHandles)"
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - HandleToAddress
    - WeaveLogError
    - StartContainer
    - TraitDataSource*::GetSchemaEngine
    - Locate
    - GetPropertyDictionaryKey
    - ContextTag
    - VerifyOrExit
    - TraitSchemaEngine*::GetTag
    - TraitDataSource*::ReadData
    - SubscriptionEngine::GetInstance
    - EndContainer
    - WeaveLogDetail
    - Put
    - SuccessOrExit
    - TraitDataSource*::GetVersion
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "NotificationEngine::NotifyRequestBuilder::WriteDataElement(TraitDataHandle
      aTraitDataHandle, PropertyPathHandle aPropertyPathHandle,\n                                                           SchemaVersion
      aSchemaVersion, PropertyPathHandle * aMergeDataHandleSet,\n                                                           uint32_t
      aNumMergeDataHandles, PropertyPathHandle * aDeleteHandleSet,\n                                                           uint32_t
      aNumDeleteHandles)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:966,1
    - Dst: StartNotifyRequest
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:973,1
    - Dst: EndDataList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:978,1
    - Dst: EndEventList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:981,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:986,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:986,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:988,1
    - Dst: EndNotifyRequest
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:995,1
    - Dst: StartDataList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1000,1
    - Dst: StartEventList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1003,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1006,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1006,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1008,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - aDesiredState
    argTypes:
    - NotifyRequestBuilderState
    constantsTouched: []
    func_position:
      end: 1012
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 1012
    functionName: NotificationEngine::NotifyRequestBuilder::MoveToState(NotifyRequestBuilderState
      aDesiredState)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - EndDataList
    - VerifyOrExit
    - ExitNow
    - StartEventList
    - StartNotifyRequest
    - EndNotifyRequest
    - WeaveLogDetail
    - EndEventList
    - StartDataList
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationEngine::NotifyRequestBuilder::MoveToState(NotifyRequestBuilderState
      aDesiredState)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' aPoint'
    argTypes:
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 1019
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1019
    functionName: NotificationEngine::NotifyRequestBuilder::Checkpoint(TLVWriter &
      aPoint)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationEngine::NotifyRequestBuilder::Checkpoint(TLVWriter & aPoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' aPoint'
    argTypes:
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 1026
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1026
    functionName: NotificationEngine::NotifyRequestBuilder::Rollback(TLVWriter & aPoint)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationEngine::NotifyRequestBuilder::Rollback(TLVWriter & aPoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1039
    functionName: NotificationEngine::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationEngine::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1046,1
    - Dst: SubscriptionEngine*::mPublisherCatalog::Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1049,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1050,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1052,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1053,1
    - Dst: NotificationEngine::DeleteKey
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1057,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1058,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1063,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - aDataSource
    - aPropertyHandle
    argTypes:
    - TraitDataSource*
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 1067
      start: 1042
    functionDepth: 1
    functionLinenumber: 1042
    functionLinenumberEnd: 1067
    functionName: NotificationEngine::DeleteKey
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 1
    functionsReached:
    - SubscriptionEngine::GetInstance
    - SubscriptionEngine*::mPublisherCatalog::Locate
    - NotificationEngine::DeleteKey
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationEngine::DeleteKey(TraitDataSource * aDataSource, PropertyPathHandle
      aPropertyHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1074,1
    - Dst: SubscriptionEngine*::mPublisherCatalog::Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1077,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1078,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1080,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1081,1
    - Dst: NotificationEngine::SetDirty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1085,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1086,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1091,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - aDataSource
    - aPropertyHandle
    argTypes:
    - TraitDataSource*
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 1095
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1095
    functionName: NotificationEngine::SetDirty
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 1
    functionsReached:
    - SubscriptionEngine::GetInstance
    - NotificationEngine::SetDirty
    - SubscriptionEngine*::mPublisherCatalog::Locate
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationEngine::SetDirty(TraitDataSource * aDataSource, PropertyPathHandle
      aPropertyHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NotificationEngine::RetrieveTraitInstanceData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1105,1
    - Dst: SubscriptionHandler*::IsSubscribing
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1106,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1107,1
    - Dst: SubscriptionHandler::TraitInstanceInfo*::ClearDirty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - aSubHandler
    - aTraitInfo
    - aBuilder
    - aPacketFull
    argTypes:
    - SubscriptionHandler*
    - SubscriptionHandler::TraitInstanceInfo*
    - NotifyRequestBuilder*
    - bool*
    constantsTouched: []
    func_position:
      end: 1120
      start: 1097
    functionDepth: 1
    functionLinenumber: 1097
    functionLinenumberEnd: 1120
    functionName: NotificationEngine::RetrieveTraitInstanceData
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 1
    functionsReached:
    - SubscriptionHandler::TraitInstanceInfo*::ClearDirty
    - SuccessOrExit
    - NotificationEngine::RetrieveTraitInstanceData
    - SubscriptionHandler*::IsSubscribing
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "NotificationEngine::RetrieveTraitInstanceData(SubscriptionHandler
      * aSubHandler,\n                                                          SubscriptionHandler::TraitInstanceInfo
      * aTraitInfo,\n                                                          NotifyRequestBuilder
      * aBuilder, bool * aPacketFull)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionHandler*::SendNotificationRequest
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1129,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - aBuffer
    - aSubHandler
    argTypes:
    - PacketBuffer*
    - SubscriptionHandler*
    constantsTouched: []
    func_position:
      end: 1138
      start: 1122
    functionDepth: 0
    functionLinenumber: 1122
    functionLinenumberEnd: 1138
    functionName: NotificationEngine::SendNotify
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - SuccessOrExit
    - SubscriptionHandler*::SendNotificationRequest
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationEngine::SendNotify(PacketBuffer * aBuffer, SubscriptionHandler
      * aSubHandler)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1142,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1144,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1149,1
    - Dst: NotifyEventsDelivered
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1155,1
    - Dst: SubscriptionHandler*::GetPeerNodeId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1155,1
    - Dst: SubscriptionHandler*::UpdateDeliveredEvents
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1157,1
    - Dst: NotificationEngine::Run
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - aSubHandler
    - aNotifyDelivered
    argTypes:
    - SubscriptionHandler*
    - bool
    constantsTouched: []
    func_position:
      end: 1164
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1164
    functionName: NotificationEngine::OnNotifyConfirm
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - NotificationEngine::Run
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - NotifyEventsDelivered
    - SubscriptionHandler*::UpdateDeliveredEvents
    - VerifyOrDie
    - SubscriptionHandler*::GetPeerNodeId
    linkageType: ''
    returnType: void
    signature: NotificationEngine::OnNotifyConfirm(SubscriptionHandler * aSubHandler,
      bool aNotifyDelivered)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1213,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1222,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1226,1
    - Dst: IsValid
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1226,1
    - Dst: GetFirstEventID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1230,1
    - Dst: static_cast<ImportanceType>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1230,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1233,1
    - Dst: SubscriptionHandler*::CheckEventUpToDate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1244,1
    - Dst: SubscriptionHandler*::SetEventLogEndpoint
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1248,1
    - Dst: SubscriptionHandler*::FindNextImportanceForTransfer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1252,1
    - Dst: SubscriptionHandler*::FindNextImportanceForTransfer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1256,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1263,1
    - Dst: MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1267,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1273,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1275,1
    - Dst: FetchEventsSince
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1280,1
    - Dst: GetWriter
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1280,1
    - Dst: SubscriptionHandler*::FindNextImportanceForTransfer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1289,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1310,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1324,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1332,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1351,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1356,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1365,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 75
    argCount: 4
    argNames:
    - aSubHandler
    - ' aNotifyRequest'
    - ' aIsSubscriptionClean'
    - ' aNeWriteInProgress'
    argTypes:
    - SubscriptionHandler*
    - NotifyRequestBuilder
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1369
      start: 1205
    functionDepth: 0
    functionLinenumber: 1205
    functionLinenumberEnd: 1369
    functionName: NotificationEngine::BuildSingleNotifyRequestEventList
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - SubscriptionHandler*::CheckEventUpToDate
    - SubscriptionHandler*::FindNextImportanceForTransfer
    - WeaveLogProgress
    - static_cast<ImportanceType>
    - SubscriptionHandler*::SetEventLogEndpoint
    - IsValid
    - VerifyOrExit
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - ExitNow
    - memcpy
    - SuccessOrExit
    - WeaveLogDetail
    - GetFirstEventID
    - MoveToState
    - GetWriter
    - FetchEventsSince
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "NotificationEngine::BuildSingleNotifyRequestEventList(SubscriptionHandler
      * aSubHandler,\n                                                                  NotifyRequestBuilder
      & aNotifyRequest,\n                                                                  bool
      & aIsSubscriptionClean, bool & aNeWriteInProgress)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionHandler*::GetTraitInstanceInfoList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1415,1
    - Dst: SubscriptionHandler*::GetNumTraitInstances
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1417,1
    - Dst: SubscriptionHandler::TraitInstanceInfo*::IsDirty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1419,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1424,1
    - Dst: MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1427,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1437,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1440,1
    - Dst: Checkpoint
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1443,1
    - Dst: NotificationEngine::RetrieveTraitInstanceData
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1446,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1447,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1448,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1452,1
    - Dst: Rollback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1454,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1458,1
    - Dst: SubscriptionHandler::TraitInstanceInfo*::ClearDirty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1459,1
    - Dst: SubscriptionHandler*::GetNumTraitInstances
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1477,1
    - Dst: SubscriptionHandler*::GetNumTraitInstances
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1479,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 4
    argNames:
    - aSubHandler
    - ' aNotifyRequest'
    - ' aIsSubscriptionClean'
    - ' aNeWriteInProgress'
    argTypes:
    - SubscriptionHandler*
    - NotifyRequestBuilder
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1484
      start: 1408
    functionDepth: 2
    functionLinenumber: 1408
    functionLinenumberEnd: 1484
    functionName: NotificationEngine::BuildSingleNotifyRequestDataList
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionHandler*::GetNumTraitInstances
    - WeaveLogError
    - NotificationEngine::RetrieveTraitInstanceData
    - SubscriptionHandler*::GetTraitInstanceInfoList
    - SubscriptionHandler::TraitInstanceInfo*::IsDirty
    - ExitNow
    - VerifyOrExit
    - WeaveLogDetail
    - SuccessOrExit
    - MoveToState
    - SubscriptionHandler::TraitInstanceInfo*::ClearDirty
    - Rollback
    - Checkpoint
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "NotificationEngine::BuildSingleNotifyRequestDataList(SubscriptionHandler
      * aSubHandler,\n                                                                 NotifyRequestBuilder
      & aNotifyRequest, bool & aIsSubscriptionClean,\n                                                                 bool
      & aNeWriteInProgress)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionHandler*::GetMaxNotificationSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1557,1
    - Dst: SubscriptionHandler*::mBinding::AllocateRightSizedBuffer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1559,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1560,1
    - Dst: NotifyRequestBuilder::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1563,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1564,1
    - Dst: NotificationEngine::BuildSingleNotifyRequestEventList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1573,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1574,1
    - Dst: NotificationEngine::BuildSingleNotifyRequestDataList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1580,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1581,1
    - Dst: NotificationEngine::BuildSingleNotifyRequestDataList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1583,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1584,1
    - Dst: NotificationEngine::BuildSingleNotifyRequestEventList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1591,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1592,1
    - Dst: NotifyRequestBuilder::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1602,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1603,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1612,1
    - Dst: NotificationEngine::SendNotify
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1614,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1617,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1617,1
    - Dst: SubscriptionHandler*::TerminateSubscription
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1626,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1634,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 3
    argNames:
    - aSubHandler
    - ' aSubscriptionHandled'
    - ' aIsSubscriptionClean'
    argTypes:
    - SubscriptionHandler*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1638
      start: 1535
    functionDepth: 3
    functionLinenumber: 1535
    functionLinenumberEnd: 1638
    functionName: NotificationEngine::BuildSingleNotifyRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    - SubscriptionHandler*::TerminateSubscription
    - NotificationEngine::SendNotify
    - SubscriptionHandler*::GetMaxNotificationSize
    - SubscriptionHandler*::mBinding::AllocateRightSizedBuffer
    - NotifyRequestBuilder::Init
    - NotificationEngine::BuildSingleNotifyRequestDataList
    - NotifyRequestBuilder::MoveToState
    - VerifyOrExit
    - WeaveLogDetail
    - SuccessOrExit
    - NotificationEngine::BuildSingleNotifyRequestEventList
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "NotificationEngine::BuildSingleNotifyRequest(SubscriptionHandler *
      aSubHandler, bool & aSubscriptionHandled,\n                                                         bool
      & aIsSubscriptionClean)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1650,1
    - Dst: Binding*::AllocateRightSizedBuffer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1653,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1654,1
    - Dst: NotificationEngine::BuildSubscriptionlessNotification
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1658,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1659,1
    - Dst: Binding*::NewExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1661,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1662,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1666,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1668,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1670,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1676,1
    - Dst: ExchangeContext*::Abort
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1682,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - apBinding
    - aPathList
    - aPathListSize
    argTypes:
    - Binding*
    - TraitPath*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1687
      start: 1641
    functionDepth: 2
    functionLinenumber: 1641
    functionLinenumberEnd: 1687
    functionName: NotificationEngine::SendSubscriptionlessNotification
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - NotificationEngine::BuildSubscriptionlessNotification
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - ExchangeContext*::SendMessage
    - Binding*::AllocateRightSizedBuffer
    - SuccessOrExit
    - Binding*::NewExchangeContext
    - ExchangeContext*::Abort
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "NotificationEngine::SendSubscriptionlessNotification(Binding * const
      apBinding,\n                                                                 TraitPath
      *aPathList,\n                                                                 uint16_t
      aPathListSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1701,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1706,1
    - Dst: NotifyRequestBuilder::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1709,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1710,1
    - Dst: NotifyRequestBuilder::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1713,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1714,1
    - Dst: TraitCatalogBase*::Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1725,1
    - Dst: TraitDataSource*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1727,1
    - Dst: NotifyRequestBuilder::WriteDataElement
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1729,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1730,1
    - Dst: NotifyRequestBuilder::MoveToState
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1734,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - aMsgBuf
    - maxPayloadSize
    - aPathList
    - aPathListSize
    argTypes:
    - PacketBuffer*
    - uint32_t
    - TraitPath*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1740
      start: 1689
    functionDepth: 0
    functionLinenumber: 1689
    functionLinenumberEnd: 1740
    functionName: NotificationEngine::BuildSubscriptionlessNotification
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 1
    functionsReached:
    - NotifyRequestBuilder::WriteDataElement
    - TraitDataSource*::GetSchemaEngine
    - NotifyRequestBuilder::Init
    - VerifyOrExit
    - NotifyRequestBuilder::MoveToState
    - SubscriptionEngine::GetInstance
    - TraitCatalogBase*::Locate
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "NotificationEngine::BuildSubscriptionlessNotification(PacketBuffer
      *aMsgBuf, uint32_t maxPayloadSize,\n                                                                  TraitPath
      *aPathList,\n                                                                  uint16_t
      aPathListSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<NotificationEngine *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1746,1
    - Dst: NotificationEngine*::Run
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aSystemLayer
    - aAppState
    argTypes:
    - System::Layer*
    - void*
    constantsTouched: []
    func_position:
      end: 1748
      start: 1744
    functionDepth: 0
    functionLinenumber: 1744
    functionLinenumberEnd: 1748
    functionName: NotificationEngine::Run
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<NotificationEngine *>
    - NotificationEngine*::Run
    linkageType: ''
    returnType: void
    signature: NotificationEngine::Run(System::Layer * aSystemLayer, void * aAppState,
      System::Error)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1752,1
    - Dst: SystemLayer::ScheduleWork
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1750
    functionDepth: 0
    functionLinenumber: 1750
    functionLinenumberEnd: 1753
    functionName: NotificationEngine::ScheduleRun
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionEngine::GetInstance
    - SystemLayer::ScheduleWork
    linkageType: ''
    returnType: void
    signature: NotificationEngine::ScheduleRun()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1759,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1766,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1766,1
    - Dst: SubscriptionEngine*::Lock
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1770,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1771,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1775,1
    - Dst: SubscriptionHandler*::IsNotifying
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1783,1
    - Dst: SubscriptionHandler*::IsSubscribing
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1783,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1785,1
    - Dst: SubscriptionHandler*::GetStateStr
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1786,1
    - Dst: SubscriptionHandler*::GetNumTraitInstances
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1786,1
    - Dst: SubscriptionHandler*::IsNotifiable
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1789,1
    - Dst: SubscriptionHandler*::_AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1792,1
    - Dst: NotificationEngine::BuildSingleNotifyRequest
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1793,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1794,1
    - Dst: SubscriptionHandler*::OnNotifyProcessingComplete
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1799,1
    - Dst: SubscriptionHandler*::_Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1801,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1810,1
    - Dst: SubscriptionHandler*::IsActive
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1825,1
    - Dst: SubscriptionHandler*::GetTraitInstanceInfoList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1827,1
    - Dst: SubscriptionHandler*::GetNumTraitInstances
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1828,1
    - Dst: SubscriptionHandler::TraitInstanceInfo*::IsDirty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1830,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1832,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1846,1
    - Dst: ClearDirty
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1847,1
    - Dst: SubscriptionEngine*::Unlock
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1853,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1755
    functionDepth: 4
    functionLinenumber: 1755
    functionLinenumberEnd: 1857
    functionName: NotificationEngine::Run
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 1
    functionsReached:
    - SubscriptionHandler*::IsActive
    - SubscriptionHandler*::IsSubscribing
    - SubscriptionHandler*::_AddRef
    - SubscriptionHandler*::_Release
    - SubscriptionHandler*::GetStateStr
    - VerifyOrExit
    - SubscriptionEngine*::Lock
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - WeaveLogProgress
    - SubscriptionHandler*::GetTraitInstanceInfoList
    - SubscriptionHandler::TraitInstanceInfo*::IsDirty
    - SubscriptionHandler*::IsNotifiable
    - ClearDirty
    - NotificationEngine::BuildSingleNotifyRequest
    - SubscriptionHandler*::GetNumTraitInstances
    - SubscriptionEngine*::Unlock
    - SubscriptionHandler*::OnNotifyProcessingComplete
    - SuccessOrExit
    - SubscriptionHandler*::IsNotifying
    linkageType: ''
    returnType: void
    signature: NotificationEngine::Run()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1859
    functionDepth: 0
    functionLinenumber: 1859
    functionLinenumberEnd: 1867
    functionName: NotificationEngine::EnableNotifications
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationEngine::EnableNotifications(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp:1873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1877
      start: 1869
    functionDepth: 0
    functionLinenumber: 1869
    functionLinenumberEnd: 1877
    functionName: NotificationEngine::DisableNotifications
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotificationEngine::DisableNotifications(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: nl::Weave::Profiles::ViewClient::ViewClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ViewClient::ViewClient()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ViewClient::Cancel
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:52,1
    - Dst: Binding*::AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - apBinding
    - apAppState
    - aEventCallback
    argTypes:
    - Binding*
    - void*
    - EventCallback
    constantsTouched: []
    func_position:
      end: 69
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 69
    functionName: nl::Weave::Profiles::ViewClient::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp
    functionUses: 0
    functionsReached:
    - Binding*::AddRef
    - nl::Weave::Profiles::ViewClient::Cancel
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ViewClient::Init(Binding * const apBinding, void * const apAppState,
      EventCallback const aEventCallback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:78,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:83,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:84,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:89,1
    - Dst: nl::Weave::TLV::TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:91,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:92,1
    - Dst: PathList::Builder::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:95,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:96,1
    - Dst: nl::Weave::TLV::TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:104,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:105,1
    - Dst: HandleToAddress
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:108,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:118,1
    - Dst: Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:120,1
    - Dst: TraitDataSink*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:129,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:130,1
    - Dst: nl::Weave::TLV::TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:133,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:134,1
    - Dst: PathList::Builder::EndOfPathList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:137,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:138,1
    - Dst: nl::Weave::TLV::TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:140,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:141,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:143,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:144,1
    - Dst: NewExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:147,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:152,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:153,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:161,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:163,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:166,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:170,1
    - Dst: nl::Weave::Profiles::ViewClient::Cancel
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:176,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 58
    argCount: 3
    argNames:
    - apCatalog
    - aPathList
    - aPathListSize
    argTypes:
    - TraitCatalogBase<TraitDataSink>*
    - TraitPath[]
    - size_t
    constantsTouched: []
    func_position:
      end: 180
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 180
    functionName: nl::Weave::Profiles::ViewClient::SendRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - PathList::Builder::EndOfPathList
    - nl::Weave::System::PacketBuffer::New
    - nl::Weave::TLV::TLVWriter::StartContainer
    - SendMessage
    - mEventCallback
    - Locate
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::Profiles::ViewClient::Cancel
    - nl::Weave::TLV::TLVWriter::EndContainer
    - HandleToAddress
    - TraitDataSink*::GetSchemaEngine
    - ExitNow
    - nl::Weave::TLV::TLVWriter::Init
    - PathList::Builder::Init
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::Finalize
    - NewExchangeContext
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "ViewClient::SendRequest(TraitCatalogBase<TraitDataSink> * apCatalog,
      const TraitPath aPathList[],\n                                    const size_t
      aPathListSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:188,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:193,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:194,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:199,1
    - Dst: nl::Weave::TLV::TLVWriter::StartContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:201,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:202,1
    - Dst: PathList::Builder::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:205,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:206,1
    - Dst: aAppendToPathList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:208,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:209,1
    - Dst: PathList::Builder::EndOfPathList
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:211,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:212,1
    - Dst: nl::Weave::TLV::TLVWriter::EndContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:214,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:215,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:217,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:218,1
    - Dst: NewExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:230,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:235,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:236,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:244,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:246,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:249,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:253,1
    - Dst: nl::Weave::Profiles::ViewClient::Cancel
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 2
    argNames:
    - aAppendToPathList
    - aHandleDataElement
    argTypes:
    - AppendToPathList
    - HandleDataElement
    constantsTouched: []
    func_position:
      end: 263
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 263
    functionName: nl::Weave::Profiles::ViewClient::SendRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::Init
    - nl::Weave::TLV::TLVWriter::StartContainer
    - nl::Weave::TLV::TLVWriter::EndContainer
    - SendMessage
    - PathList::Builder::Init
    - mEventCallback
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - ExitNow
    - nl::Weave::Profiles::ViewClient::Cancel
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::Finalize
    - WeaveLogFunctError
    - aAppendToPathList
    - PathList::Builder::EndOfPathList
    - NewExchangeContext
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ViewClient::SendRequest(AppendToPathList const aAppendToPathList, HandleDataElement
      const aHandleDataElement)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:275,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 293
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 293
    functionName: nl::Weave::Profiles::ViewClient::Cancel
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp
    functionUses: 3
    functionsReached:
    - Close
    - Release
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ViewClient::Cancel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ViewClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:299,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:303,1
    - Dst: ViewClient*::Cancel
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:306,1
    - Dst: CallbackFunc
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:310,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - aEC
    - aErrorCode
    - aMsgSpecificContext
    argTypes:
    - ExchangeContext*
    - WEAVE_ERROR
    - void*
    constantsTouched: []
    func_position:
      end: 314
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 314
    functionName: nl::Weave::Profiles::ViewClient::OnSendError
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp
    functionUses: 0
    functionsReached:
    - ViewClient*::Cancel
    - reinterpret_cast<ViewClient *>
    - CallbackFunc
    - VerifyOrExit
    - WeaveLogFunctError
    linkageType: ''
    returnType: void
    signature: ViewClient::OnSendError(ExchangeContext * aEC, WEAVE_ERROR aErrorCode,
      void * aMsgSpecificContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ViewClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:320,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:324,1
    - Dst: ViewClient*::Cancel
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:327,1
    - Dst: CallbackFunc
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:331,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - aEC
    argTypes:
    - nl::Weave::ExchangeContext*
    constantsTouched: []
    func_position:
      end: 335
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 335
    functionName: nl::Weave::Profiles::ViewClient::OnResponseTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp
    functionUses: 0
    functionsReached:
    - ViewClient*::Cancel
    - reinterpret_cast<ViewClient *>
    - CallbackFunc
    - VerifyOrExit
    - WeaveLogFunctError
    linkageType: ''
    returnType: void
    signature: ViewClient::OnResponseTimeout(nl::Weave::ExchangeContext * aEC)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ViewClient *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:342,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:347,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:350,1
    - Dst: ViewClient*::Cancel
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:355,1
    - Dst: CallbackFunc
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:358,1
    - Dst: CallbackFunc
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:364,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:368,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:370,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:371,1
    - Dst: nl::Weave::TLV::TLVReader::EnterContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:373,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:374,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:376,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:377,1
    - Dst: DataList::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:380,1
    - Dst: DataList::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:384,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:385,1
    - Dst: DataList::Parser::GetReader
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:389,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:396,1
    - Dst: DataElement::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:407,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:408,1
    - Dst: DataElement::Parser::GetReaderOnPath
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:410,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:411,1
    - Dst: DataElement::Parser::GetPartialChangeFlag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:414,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:415,1
    - Dst: Path::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:421,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:422,1
    - Dst: Path::Parser::GetTags
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:424,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:425,1
    - Dst: ViewClient*::mDataSinkCatalog::AddressToHandle
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:433,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:443,1
    - Dst: ViewClient*::mDataSinkCatalog::Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:445,1
    - Dst: TraitDataSink*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:453,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:460,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:463,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:467,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:480,1
    - Dst: TraitDataSink*::StoreDataElement
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:497,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:498,1
    - Dst: DataElement::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:519,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:520,1
    - Dst: ViewClient*::mHandleDataElement
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:522,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:523,1
    - Dst: nl::Weave::TLV::TLVReader::ExitContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:533,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:534,1
    - Dst: ViewClient*::Cancel
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:536,1
    - Dst: CallbackFunc
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:539,1
    - Dst: ViewClient*::Cancel
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:543,1
    - Dst: CallbackFunc
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:546,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:550,1
    - Dst: ViewClient*::Cancel
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:554,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp:559,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 105
    argCount: 6
    argNames:
    - aEC
    - aPktInfo
    - aMsgInfo
    - aProfileId
    - aMsgType
    - aPayload
    argTypes:
    - nl::Weave::ExchangeContext*
    - nl::Inet::IPPacketInfo*
    - nl::Weave::WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 562
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 562
    functionName: nl::Weave::Profiles::ViewClient::OnMessageReceived
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp
    functionUses: 0
    functionsReached:
    - ViewClient*::Cancel
    - CallbackFunc
    - DataList::Parser::Init
    - ViewClient*::mDataSinkCatalog::Locate
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::ExitContainer
    - nl::Weave::TLV::TLVReader::Next
    - WeaveLogError
    - TraitDataSink*::StoreDataElement
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - DataElement::Parser::Init
    - Path::Parser::GetTags
    - DataList::Parser::GetReader
    - WeaveLogDetail
    - nl::Weave::TLV::TLVReader::EnterContainer
    - TraitDataSink*::GetSchemaEngine
    - DataElement::Parser::GetPartialChangeFlag
    - DataList::Parser::CheckSchemaValidity
    - Path::Parser::Init
    - ViewClient*::mDataSinkCatalog::AddressToHandle
    - ViewClient*::mHandleDataElement
    - reinterpret_cast<ViewClient *>
    - DataElement::Parser::GetReaderOnPath
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: "ViewClient::OnMessageReceived(nl::Weave::ExchangeContext * aEC, const
      nl::Inet::IPPacketInfo * aPktInfo,\n                                   const
      nl::Weave::WeaveMessageInfo * aMsgInfo, uint32_t aProfileId, uint8_t aMsgType,\n
      \                                  PacketBuffer * aPayload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: nl::Weave::Profiles::CommandSender::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: nl::Weave::Profiles::CommandSender::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: nl::Weave::Profiles::EventOptions::EventOptions
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventLoggingTypes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EventOptions::EventOptions(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aUrgent
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: nl::Weave::Profiles::EventOptions::EventOptions
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventLoggingTypes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EventOptions::EventOptions(bool aUrgent)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aSystemTimestamp
    argTypes:
    - timestamp_t
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: nl::Weave::Profiles::EventOptions::EventOptions
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventLoggingTypes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EventOptions::EventOptions(timestamp_t aSystemTimestamp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aUtcTimestamp
    argTypes:
    - utc_timestamp_t
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: nl::Weave::Profiles::EventOptions::EventOptions
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventLoggingTypes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EventOptions::EventOptions(utc_timestamp_t aUtcTimestamp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - aSystemTimestamp
    - aUrgent
    argTypes:
    - timestamp_t
    - bool
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: nl::Weave::Profiles::EventOptions::EventOptions
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventLoggingTypes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EventOptions::EventOptions(timestamp_t aSystemTimestamp, bool aUrgent)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - aUtcTimestamp
    - aUrgent
    argTypes:
    - utc_timestamp_t
    - bool
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: nl::Weave::Profiles::EventOptions::EventOptions
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventLoggingTypes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EventOptions::EventOptions(utc_timestamp_t aUtcTimestamp, bool aUrgent)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - aSystemTimestamp
    - aEventSource
    - aRelatedEventID
    - aRelatedImportance
    - aUrgent
    argTypes:
    - timestamp_t
    - DetailedRootSection*
    - event_id_t
    - ImportanceType
    - bool
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: nl::Weave::Profiles::EventOptions::EventOptions
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventLoggingTypes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EventOptions::EventOptions(timestamp_t aSystemTimestamp, DetailedRootSection
      * aEventSource, event_id_t aRelatedEventID,\n                           ImportanceType
      aRelatedImportance, bool aUrgent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - aUtcTimestamp
    - aEventSource
    - aRelatedEventID
    - aRelatedImportance
    - aUrgent
    argTypes:
    - utc_timestamp_t
    - DetailedRootSection*
    - event_id_t
    - ImportanceType
    - bool
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: nl::Weave::Profiles::EventOptions::EventOptions
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventLoggingTypes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EventOptions::EventOptions(utc_timestamp_t aUtcTimestamp, DetailedRootSection
      * aEventSource, event_id_t aRelatedEventID,\n                           ImportanceType
      aRelatedImportance, bool aUrgent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' inWriter'
    - inImportance
    - inStartingEventID
    - ioExternalEvents
    argTypes:
    - nl::Weave::TLV::TLVWriter
    - ImportanceType
    - uint32_t
    - ExternalEvents*
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 88
    functionName: nl::Weave::Profiles::EventLoadOutContext::EventLoadOutContext
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/EventLoggingTypes.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EventLoadOutContext::EventLoadOutContext(nl::Weave::TLV::TLVWriter
      & inWriter, ImportanceType inImportance,\n                                         uint32_t
      inStartingEventID, ExternalEvents * ioExternalEvents)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aVersion
    - aReference
    argTypes:
    - DataVersion
    - DataVersion
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: nl::Weave::Profiles::IsVersionNewer
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsVersionNewer(const DataVersion &aVersion, const DataVersion &aReference)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aVersion
    - aReference
    argTypes:
    - DataVersion
    - DataVersion
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: nl::Weave::Profiles::IsVersionNewerOrEqual
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsVersionNewerOrEqual(const DataVersion &aVersion, const DataVersion
      &aReference)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: nl::Weave::Profiles::SchemaVersionRange
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SchemaVersionRange()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aMaxVersion
    - aMinVersion
    argTypes:
    - SchemaVersion
    - SchemaVersion
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: nl::Weave::Profiles::SchemaVersionRange
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SchemaVersionRange(SchemaVersion aMaxVersion, SchemaVersion aMinVersion)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - SchemaVersionRange
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: operator ==(const SchemaVersionRange & rhs) const
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: operator ==(const SchemaVersionRange & rhs) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: nl::Weave::Profiles::IsValid
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsValid() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 251
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 251
    functionName: nl::Weave::Profiles::BuilderBase::GetError
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetError(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: nl::Weave::Profiles::BuilderBase::GetWriter
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: nl::Weave::TLV::TLVWriter
    signature: '* GetWriter(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 751
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 751
    functionName: nl::Weave::Profiles::StatusList::Builder::UseDeprecatedFormat
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: UseDeprecatedFormat()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: CommandSender::SynchronizedTraitState::Init()
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CommandSender::SynchronizedTraitState::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:60,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:65,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 104
    functionName: CommandSender::SynchronizedTraitState::HasDataCaughtUp(void)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp
    functionUses: 0
    functionsReached:
    - GetVersion
    linkageType: ''
    returnType: bool
    signature: CommandSender::SynchronizedTraitState::HasDataCaughtUp(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TraitCatalogBase<TraitDataSink>*::Locate
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:120,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:121,1
    - Dst: TraitCatalogBase<TraitDataSink>*::GetInstanceId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:123,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:124,1
    - Dst: TraitCatalogBase<TraitDataSink>*::GetResourceId
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:126,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:127,1
    - Dst: TraitDataSink*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:129,1
    - Dst: TraitDataSink*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:130,1
    - Dst: TraitDataSink*::GetSchemaEngine
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:131,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - aCatalog
    - aSink
    - aCommandType
    argTypes:
    - TraitCatalogBase<TraitDataSink>*
    - TraitDataSink*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 137
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 137
    functionName: CommandSender::SendParams::PopulateTraitPath(TraitCatalogBase<TraitDataSink>
      *aCatalog, TraitDataSink *aSink, uint32_t aCommandType)
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp
    functionUses: 0
    functionsReached:
    - TraitDataSink*::GetSchemaEngine
    - TraitCatalogBase<TraitDataSink>*::Locate
    - TraitCatalogBase<TraitDataSink>*::GetInstanceId
    - WeaveLogFunctError
    - SuccessOrExit
    - TraitCatalogBase<TraitDataSink>*::GetResourceId
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CommandSender::SendParams::PopulateTraitPath(TraitCatalogBase<TraitDataSink>
      *aCatalog, TraitDataSink *aSink, uint32_t aCommandType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddRef
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:158,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:169,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:170,1
    - Dst: aEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:173,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:174,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - aBinding
    - aEventCallback
    - aAppState
    argTypes:
    - Binding*
    - EventCallback
    - void*
    constantsTouched: []
    func_position:
      end: 185
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 185
    functionName: nl::Weave::Profiles::CommandSender::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp
    functionUses: 0
    functionsReached:
    - AddRef
    - OutEventParam::Clear
    - VerifyOrExit
    - InEventParam::Clear
    - aEventCallback
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CommandSender::Init(Binding *aBinding, const EventCallback aEventCallback,
      void * const aAppState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Abort
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:193,1
    - Dst: nl::Weave::Profiles::CommandSender::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:197,1
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - aAbortNow
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 208
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 208
    functionName: nl::Weave::Profiles::CommandSender::Close
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::CommandSender::Close
    - Release
    - Abort
    linkageType: ''
    returnType: void
    signature: CommandSender::Close(bool aAbortNow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SendParams
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:212,1
    - Dst: nl::Weave::Profiles::CommandSender::SendCommand
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - aPayload
    - aBinding
    - aResourceId
    - aProfileId
    - aCommandType
    argTypes:
    - nl::Weave::PacketBuffer*
    - nl::Weave::Binding*
    - ResourceIdentifier
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 221
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 221
    functionName: nl::Weave::Profiles::CommandSender::SendCommand
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp
    functionUses: 1
    functionsReached:
    - SendParams
    - nl::Weave::Profiles::CommandSender::SendCommand
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CommandSender::SendCommand(nl::Weave::PacketBuffer *aPayload, nl::Weave::Binding
      *aBinding, ResourceIdentifier &aResourceId, uint32_t aProfileId, uint32_t aCommandType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:268,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:269,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:274,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:275,1
    - Dst: PacketBuffer*::EnsureReservedSize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:279,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:280,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:282,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:283,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:290,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:291,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:292,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:301,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:301,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:302,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:304,1
    - Dst: CustomCommand::Builder::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:309,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:310,1
    - Dst: CustomCommand::Builder::CreatePathBuilder
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:312,1
    - Dst: Path::Builder::ResourceID
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:313,1
    - Dst: Path::Builder::GetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:314,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:315,1
    - Dst: CustomCommand::Builder::CommandType
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:317,1
    - Dst: CustomCommand::Builder::MustBeVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:321,1
    - Dst: CustomCommand::Builder::ExpiryTimeMicroSecond
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:326,1
    - Dst: CustomCommand::Builder::ActionTimeMicroSecond
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:331,1
    - Dst: CustomCommand::Builder::GetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:334,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:335,1
    - Dst: TLVWriter::PutPreEncodedContainer
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:342,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:342,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:343,1
    - Dst: CustomCommand::Builder::EndOfCustomCommand
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:346,1
    - Dst: CustomCommand::Builder::GetError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:347,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:348,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:350,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:351,1
    - Dst: mDataSink::GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:358,1
    - Dst: nl::Weave::Profiles::CommandSender::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:362,1
    - Dst: Binding*::NewExchangeContext
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:364,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:365,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:389,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:395,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:398,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 78
    argCount: 3
    argNames:
    - aRequestBuf
    - aBinding
    - aSendParams
    argTypes:
    - PacketBuffer*
    - Binding*
    - SendParams
    constantsTouched: []
    func_position:
      end: 400
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 400
    functionName: nl::Weave::Profiles::CommandSender::SendCommand
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp
    functionUses: 1
    functionsReached:
    - CustomCommand::Builder::GetError
    - CustomCommand::Builder::ActionTimeMicroSecond
    - WeaveLogFunctError
    - nl::Weave::System::PacketBuffer::New
    - SendMessage
    - nl::Weave::System::PacketBuffer::Free
    - Path::Builder::GetError
    - VerifyOrExit
    - Path::Builder::ResourceID
    - CustomCommand::Builder::EndOfCustomCommand
    - Binding*::NewExchangeContext
    - mDataSink::GetVersion
    - PacketBuffer*::SetDataLength
    - PacketBuffer*::SetStart
    - CustomCommand::Builder::MustBeVersion
    - PacketBuffer*::Start
    - PacketBuffer*::EnsureReservedSize
    - PacketBuffer*::DataLength
    - CustomCommand::Builder::Init
    - CustomCommand::Builder::ExpiryTimeMicroSecond
    - TLVWriter::PutPreEncodedContainer
    - TLVWriter::Finalize
    - CustomCommand::Builder::CommandType
    - ContextTag
    - nl::Weave::Profiles::CommandSender::Close
    - SuccessOrExit
    - TLVWriter::Init
    - CustomCommand::Builder::CreatePathBuilder
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CommandSender::SendCommand(PacketBuffer *aRequestBuf, Binding *aBinding,
      SendParams &aSendParams)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - aAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - EventType
    - InEventParam
    - OutEventParam
    constantsTouched: []
    func_position:
      end: 406
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 406
    functionName: nl::Weave::Profiles::CommandSender::DefaultEventHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CommandSender::DefaultEventHandler(void *aAppState, EventType aEvent,
      const InEventParam& aInParam, OutEventParam& aOutParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<CommandSender *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:410,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:415,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:416,1
    - Dst: CommandSender*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:419,1
    - Dst: CommandSender*::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:422,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - aEC
    - sendError
    - aMsgCtxt
    argTypes:
    - ExchangeContext*
    - WEAVE_ERROR
    - void*
    constantsTouched: []
    func_position:
      end: 428
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 428
    functionName: nl::Weave::Profiles::CommandSender::OnSendError
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - static_cast<CommandSender *>
    - WeaveLogFunctError
    - CommandSender*::mEventCallback
    - CommandSender*::Close
    linkageType: ''
    returnType: void
    signature: CommandSender::OnSendError(ExchangeContext *aEC, WEAVE_ERROR sendError,
      void *aMsgCtxt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<CommandSender *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:432,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:436,1
    - Dst: CommandSender*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:439,1
    - Dst: CommandSender*::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - aEC
    argTypes:
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 445
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 445
    functionName: nl::Weave::Profiles::CommandSender::OnResponseTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp
    functionUses: 0
    functionsReached:
    - CommandSender*::mEventCallback
    - CommandSender*::Close
    - VerifyOrExit
    - static_cast<CommandSender *>
    linkageType: ''
    returnType: void
    signature: CommandSender::OnResponseTimeout(ExchangeContext *aEC)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<CommandSender *>
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:450,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:455,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:458,1
    - Dst: CommandSender*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:462,1
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::parse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:466,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:467,1
    - Dst: CommandSender*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:472,1
    - Dst: CommandSender*::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:474,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:482,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:484,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:485,1
    - Dst: CustomCommandResponse::Parser::Init
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:487,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:488,1
    - Dst: CustomCommandResponse::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:493,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:494,1
    - Dst: CustomCommandResponse::Parser::GetVersion
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:497,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:498,1
    - Dst: CustomCommandResponse::Parser::GetReaderOnResponse
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:510,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:511,1
    - Dst: CommandSender*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:515,1
    - Dst: CommandSender*::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:518,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:525,1
    - Dst: CommandSender*::Close
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:529,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp:534,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 6
    argNames:
    - aEC
    - aPktInfo
    - aMsgInfo
    - aProfileId
    - aMsgType
    - aPayload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 538
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 538
    functionName: nl::Weave::Profiles::CommandSender::OnMessageReceived
    functionSourceFile: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - nl::Weave::System::PacketBuffer::Free
    - TLVReader::Next
    - CustomCommandResponse::Parser::Init
    - CustomCommandResponse::Parser::GetVersion
    - VerifyOrExit
    - static_cast<CommandSender *>
    - nl::Weave::Profiles::StatusReporting::StatusReport::parse
    - CustomCommandResponse::Parser::GetReaderOnResponse
    - CustomCommandResponse::Parser::CheckSchemaValidity
    - WeaveLogFunctError
    - SuccessOrExit
    - CommandSender*::mEventCallback
    - CommandSender*::Close
    linkageType: ''
    returnType: void
    signature: CommandSender::OnMessageReceived(ExchangeContext *aEC, const IPPacketInfo
      *aPktInfo, const WeaveMessageInfo *aMsgInfo, uint32_t aProfileId, uint8_t aMsgType,
      PacketBuffer *aPayload)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: TimeChangeNotification::TimeChangeNotification
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TimeChangeNotification::TimeChangeNotification(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:55,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:57,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - aMsg
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: TimeChangeNotification::Encode
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - PacketBuffer*::Start
    - nl::Weave::Encoding::LittleEndian::Write16
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TimeChangeNotification::Encode(PacketBuffer* const aMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:68,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:70,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:81,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - aObject
    - aMsg
    argTypes:
    - TimeChangeNotification*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 91
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 91
    functionName: TimeChangeNotification::Decode
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - WeaveLogFunctError
    - WeaveLogDetail
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TimeChangeNotification::Decode(TimeChangeNotification * const aObject,
      PacketBuffer* const aMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: TimeSyncRequest::TimeSyncRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TimeSyncRequest::TimeSyncRequest(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aLikelihood
    - aIsTimeCoordinator
    argTypes:
    - uint8_t
    - bool
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: TimeSyncRequest::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TimeSyncRequest::Init(const uint8_t aLikelihood, const bool aIsTimeCoordinator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:114,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:124,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:127,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:127,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - aMsg
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 134
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 134
    functionName: TimeSyncRequest::Encode
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Encoding::LittleEndian::Write16
    - ExitNow
    - PacketBuffer*::Start
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TimeSyncRequest::Encode(PacketBuffer* const aMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:142,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:144,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:161,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:168,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - aObject
    - aMsg
    argTypes:
    - TimeSyncRequest*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 177
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 177
    functionName: TimeSyncRequest::Decode
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - WeaveLogFunctError
    - WeaveLogDetail
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TimeSyncRequest::Decode(TimeSyncRequest * const aObject, PacketBuffer*
      const aMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: TimeSyncResponse::TimeSyncResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TimeSyncResponse::TimeSyncResponse(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - aRole
    - aTimeOfRequest
    - aTimeOfResponse
    - aNumContributorInLastLocalSync
    - aTimeSinceLastSyncWithServer_min
    argTypes:
    - TimeSyncRole
    - timesync_t
    - timesync_t
    - uint8_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 206
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 206
    functionName: TimeSyncResponse::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "TimeSyncResponse::Init(const TimeSyncRole aRole, const timesync_t
      aTimeOfRequest,\n    const timesync_t aTimeOfResponse,\n    const uint8_t aNumContributorInLastLocalSync,
      const uint16_t aTimeSinceLastSyncWithServer_min)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:220,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:221,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:222,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:223,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:226,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:226,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - aMsg
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 231
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 231
    functionName: TimeSyncResponse::Encode
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Encoding::LittleEndian::Write64
    - nl::Weave::Encoding::LittleEndian::Write16
    - PacketBuffer*::Start
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TimeSyncResponse::Encode(PacketBuffer* const aMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:239,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:241,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read64
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:248,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read64
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:249,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:250,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:254,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:259,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:272,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - aObject
    - aMsg
    argTypes:
    - TimeSyncResponse*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 281
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 281
    functionName: TimeSyncResponse::Decode
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - ExitNow
    - WeaveLogDetail
    - nl::Weave::Encoding::LittleEndian::Read64
    - nl::Weave::Encoding::LittleEndian::Read16
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TimeSyncResponse::Decode(TimeSyncResponse * const aObject, PacketBuffer*
      const aMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 288
    functionName: _TimeSyncNodeBase::_TimeSyncNodeBase
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: _TimeSyncNodeBase::_TimeSyncNodeBase(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aFabricState
    - aExchangeMgr
    argTypes:
    - WeaveFabricState*
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: _TimeSyncNodeBase::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "_TimeSyncNodeBase::Init(WeaveFabricState * const aFabricState,\n    WeaveExchangeManager
      * const aExchangeMgr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Layer::GetClock_Monotonic
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: _TimeSyncNodeBase::GetClock_Monotonic
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Layer::GetClock_Monotonic
    linkageType: ''
    returnType: timesync_t
    signature: _TimeSyncNodeBase::GetClock_Monotonic(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicHiRes
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: _TimeSyncNodeBase::GetClock_MonotonicHiRes
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Layer::GetClock_MonotonicHiRes
    linkageType: ''
    returnType: timesync_t
    signature: _TimeSyncNodeBase::GetClock_MonotonicHiRes(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Layer::GetClock_RealTime
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' curTime'
    argTypes:
    - timesync_t
    constantsTouched: []
    func_position:
      end: 313
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 313
    functionName: _TimeSyncNodeBase::GetClock_RealTime
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Layer::GetClock_RealTime
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: _TimeSyncNodeBase::GetClock_RealTime(timesync_t & curTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Layer::SetClock_RealTime
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - newCurTime
    argTypes:
    - timesync_t
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: _TimeSyncNodeBase::SetClock_RealTime
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Layer::SetClock_RealTime
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: _TimeSyncNodeBase::SetClock_RealTime(timesync_t newCurTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeCoordinator.cpp:50,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeCoordinator.cpp:51,1
    - Dst: TimeSyncNode::_InitServer
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeCoordinator.cpp:54,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeCoordinator.cpp:55,1
    - Dst: TimeSyncNode::MulticastTimeChangeNotification
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeCoordinator.cpp:57,1
    - Dst: TimeSyncNode::_InitClient
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeCoordinator.cpp:60,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeCoordinator.cpp:65,1
    - Dst: TimeSyncNode::EnableAutoSync
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeCoordinator.cpp:68,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeCoordinator.cpp:73,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeCoordinator.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 6
    argNames:
    - aExchangeMgr
    - aEncryptionType
    - aKeyId
    - WEAVE_CONFIG_TIME_CLIENT_FABRIC_LOCAL_DISCOVERY
    - aNominalDiscoveryPeriod_msec
    - aShortestDiscoveryPeriod_msec
    argTypes:
    - nl::Weave::WeaveExchangeManager*
    - uint8_t
    - uint16_t
    - int32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 79
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 79
    functionName: TimeSyncNode::InitCoordinator
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeCoordinator.cpp
    functionUses: 0
    functionsReached:
    - TimeSyncNode::MulticastTimeChangeNotification
    - TimeSyncNode::_InitClient
    - TimeSyncNode::EnableAutoSync
    - WeaveLogFunctError
    - SuccessOrExit
    - TimeSyncNode::_InitServer
    - InitState
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TimeSyncNode::InitCoordinator(nl::Weave::WeaveExchangeManager *aExchangeMgr,
      const uint8_t aEncryptionType,\n    const uint16_t aKeyId, const int32_t aSyncPeriod_msec\n#if
      WEAVE_CONFIG_TIME_CLIENT_FABRIC_LOCAL_DISCOVERY\n    ,\n    const int32_t aNominalDiscoveryPeriod_msec,\n
      \   const int32_t aShortestDiscoveryPeriod_msec\n#endif // WEAVE_CONFIG_TIME_CLIENT_FABRIC_LOCAL_DISCOVERY\n
      \   )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeSyncNode::_ShutdownServer
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeCoordinator.cpp:83,1
    - Dst: TimeSyncNode::_ShutdownClient
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeCoordinator.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: TimeSyncNode::_ShutdownCoordinator
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeCoordinator.cpp
    functionUses: 0
    functionsReached:
    - TimeSyncNode::_ShutdownServer
    - TimeSyncNode::_ShutdownClient
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TimeSyncNode::_ShutdownCoordinator(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<TimeSyncNode *>
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeCoordinator.cpp:93,1
    - Dst: TimeSyncNode*::RegisterLocalSyncOperation
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeCoordinator.cpp:95,1
    - Dst: TimeSyncNode*::RegisterCorrectionFromServerOrNtp
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeCoordinator.cpp:100,1
    - Dst: TimeSyncNode*::MulticastTimeChangeNotification
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeCoordinator.cpp:117,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 5
    argNames:
    - aApp
    - aOffsetUsec
    - aIsReliable
    - aIsServer
    - aNumContributor
    argTypes:
    - void*
    - timesync_t
    - bool
    - bool
    - uint8_t
    constantsTouched: []
    func_position:
      end: 123
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 123
    functionName: TimeSyncNode::_OnSyncSucceeded
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeCoordinator.cpp
    functionUses: 0
    functionsReached:
    - TimeSyncNode*::RegisterCorrectionFromServerOrNtp
    - reinterpret_cast<TimeSyncNode *>
    - TimeSyncNode*::MulticastTimeChangeNotification
    - TimeSyncNode*::RegisterLocalSyncOperation
    linkageType: ''
    returnType: bool
    signature: "TimeSyncNode::_OnSyncSucceeded(void * const aApp, const timesync_t
      aOffsetUsec, const bool aIsReliable,\n    const bool aIsServer, const uint8_t
      aNumContributor)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:71,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:72,1
    - Dst: TimeSyncNode::_InitClient
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:75,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:80,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - aApp
    - aExchangeMgr
    - aEncryptionType
    - WEAVE_CONFIG_TIME_CLIENT_FABRIC_LOCAL_DISCOVERY
    - aInitialLikelyhood
    argTypes:
    - void*
    - WeaveExchangeManager*
    - uint8_t
    - uint16_t
    - int8_t
    constantsTouched: []
    func_position:
      end: 86
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 86
    functionName: TimeSyncNode::InitClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - TimeSyncNode::_InitClient
    - InitState
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TimeSyncNode::InitClient(void * const aApp, WeaveExchangeManager *aExchangeMgr,\n
      \   const uint8_t aEncryptionType, const uint16_t aKeyId\n#if WEAVE_CONFIG_TIME_CLIENT_FABRIC_LOCAL_DISCOVERY\n
      \   , const int8_t aInitialLikelyhood\n#endif // WEAVE_CONFIG_TIME_CLIENT_FABRIC_LOCAL_DISCOVERY\n
      \   )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeSyncNode::InvalidateAllContacts
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:97,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:106,1
    - Dst: GetExchangeMgr
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:115,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:118,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:125,1
    - Dst: TimeSyncNode::SetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - aEncryptionType
    - WEAVE_CONFIG_TIME_CLIENT_FABRIC_LOCAL_DISCOVERY
    - aInitialLikelyhood
    argTypes:
    - uint8_t
    - uint16_t
    - int8_t
    constantsTouched: []
    func_position:
      end: 129
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 129
    functionName: TimeSyncNode::_InitClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 2
    functionsReached:
    - TimeSyncNode::InvalidateAllContacts
    - ExitNow
    - TimeSyncNode::SetClientState
    - GetExchangeMgr
    - SuccessOrExit
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TimeSyncNode::_InitClient(const uint8_t aEncryptionType,\n    const
      uint16_t aKeyId\n#if WEAVE_CONFIG_TIME_CLIENT_FABRIC_LOCAL_DISCOVERY\n    ,
      const int8_t aInitialLikelyhood\n#endif // WEAVE_CONFIG_TIME_CLIENT_FABRIC_LOCAL_DISCOVERY\n
      \   )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:137,1
    - Dst: TimeSyncNode::DisableAutoSync
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:140,1
    - Dst: TimeSyncNode::Abort
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:142,1
    - Dst: GetExchangeMgr
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:145,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:149,1
    - Dst: TimeSyncNode::SetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 153
    functionName: TimeSyncNode::_ShutdownClient
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 1
    functionsReached:
    - ExitNow
    - TimeSyncNode::SetClientState
    - GetExchangeMgr
    - TimeSyncNode::DisableAutoSync
    - WeaveLogFunctError
    - TimeSyncNode::Abort
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TimeSyncNode::_ShutdownClient()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OnSyncFailed
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:166,1
    - Dst: TimeSyncNode::Abort
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - aCode
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 172
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 172
    functionName: TimeSyncNode::AbortOnError
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - OnSyncFailed
    - TimeSyncNode::Abort
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::AbortOnError(const WEAVE_ERROR aCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: TimeSyncNode::GetNextLikelihood
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int8_t
    signature: TimeSyncNode::GetNextLikelihood(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 239
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 239
    functionName: TimeSyncNode::GetClientStateName
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* const TimeSyncNode::GetClientStateName() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:245,1
    - Dst: TimeSyncNode::GetClientStateName
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - TimeSyncNode::ClientState
    constantsTouched: []
    func_position:
      end: 247
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 247
    functionName: TimeSyncNode::SetClientState
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 2
    functionsReached:
    - TimeSyncNode::GetClientStateName
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::SetClientState(const TimeSyncNode::ClientState state)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: TimeSyncNode::GetClientState
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TimeSyncNode::ClientState
    signature: TimeSyncNode::GetClientState(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: TimeSyncNode::GetCapacityOfContactList
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TimeSyncNode::GetCapacityOfContactList(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: TimeSyncNode::InvalidateServiceContact
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::InvalidateServiceContact(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeSyncNode::InvalidateServiceContact
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 279
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 279
    functionName: TimeSyncNode::InvalidateAllContacts
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 1
    functionsReached:
    - TimeSyncNode::InvalidateServiceContact
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::InvalidateAllContacts(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 296
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 296
    functionName: TimeSyncNode::SetAllValidContactsToIdleAndInvalidateResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int16_t
    signature: TimeSyncNode::SetAllValidContactsToIdleAndInvalidateResponse(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 312
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 312
    functionName: TimeSyncNode::SetAllCompletedContactsToIdle
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int16_t
    signature: TimeSyncNode::SetAllCompletedContactsToIdle(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 330
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 330
    functionName: TimeSyncNode::GetNumNotYetCompletedContacts
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int16_t
    signature: TimeSyncNode::GetNumNotYetCompletedContacts(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 347
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 347
    functionName: TimeSyncNode::GetNumReliableResponses
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int16_t
    signature: TimeSyncNode::GetNumReliableResponses(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 364
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 364
    functionName: TimeSyncNode::GetNextIdleContact
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Contact
    signature: '* TimeSyncNode::GetNextIdleContact(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:372,1
    - Dst: Contact*::mNodeAddr::ToString
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:381,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:382,1
    - Dst: GetExchangeMgr
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:393,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:395,1
    - Dst: GetExchangeMgr
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:406,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:408,1
    - Dst: GetClock_MonotonicHiRes
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:420,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:424,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:427,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 1
    argNames:
    - aContact
    argTypes:
    - Contact*
    constantsTouched: []
    func_position:
      end: 432
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 432
    functionName: TimeSyncNode::SetupUnicastCommContext
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - Close
    - VerifyOrExit
    - ExitNow
    - GetClock_MonotonicHiRes
    - GetExchangeMgr
    - WeaveLogDetail
    - Contact*::mNodeAddr::ToString
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TimeSyncNode::SetupUnicastCommContext(Contact * const aContact)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 448
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 448
    functionName: TimeSyncNode::DestroyCommContext
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - Close
    linkageType: ''
    returnType: bool
    signature: TimeSyncNode::DestroyCommContext(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:456,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:461,1
    - Dst: TimeSyncNode::GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:464,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:466,1
    - Dst: TimeSyncNode::InvalidateAllContacts
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:469,1
    - Dst: TimeSyncNode::EnterState_Sync_1
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:482,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:485,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - aNumNode
    - aNodes
    argTypes:
    - int16_t
    - ServingNode[]
    constantsTouched: []
    func_position:
      end: 488
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 488
    functionName: TimeSyncNode::SyncWithNodes
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - TimeSyncNode::InvalidateAllContacts
    - TimeSyncNode::EnterState_Sync_1
    - ExitNow
    - TimeSyncNode::GetClientState
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TimeSyncNode::SyncWithNodes(const int16_t aNumNode, const ServingNode
      aNodes[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:500,1
    - Dst: GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:503,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:505,1
    - Dst: InvalidateAllContacts
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:512,1
    - Dst: EnterState_Discover
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:513,1
    - Dst: WEAVE_TIME_PROGRESS_LOG
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:521,1
    - Dst: RegisterCommError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:522,1
    - Dst: EnterState_Sync_1
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:524,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:528,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 531
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 531
    functionName: aForceDiscoverAgain
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - GetClientState
    - WEAVE_TIME_PROGRESS_LOG
    - EnterState_Sync_1
    - ExitNow
    - EnterState_Discover
    - InvalidateAllContacts
    - RegisterCommError
    - WeaveLogFunctError
    linkageType: ''
    returnType: bool
    signature: aForceDiscoverAgain
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeSyncNode::GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:537,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:541,1
    - Dst: WEAVE_TIME_PROGRESS_LOG
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:550,1
    - Dst: TimeSyncNode::GetClientStateName
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:550,1
    - Dst: GetExchangeMgr
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:555,1
    - Dst: SystemLayer::CancelTimer
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:555,1
    - Dst: TimeSyncNode::DestroyCommContext
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:558,1
    - Dst: IsOperationalState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:560,1
    - Dst: TimeSyncNode::SetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:562,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:568,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 571
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 571
    functionName: TimeSyncNode::Abort
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 2
    functionsReached:
    - IsOperationalState
    - WEAVE_TIME_PROGRESS_LOG
    - ExitNow
    - TimeSyncNode::DestroyCommContext
    - TimeSyncNode::SetClientState
    - GetExchangeMgr
    - SystemLayer::CancelTimer
    - TimeSyncNode::GetClientState
    - WeaveLogFunctError
    - TimeSyncNode::GetClientStateName
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TimeSyncNode::Abort(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeSyncNode::FindReplaceableContact
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:582,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:584,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - aNodeId
    - ' aNodeAddr'
    argTypes:
    - uint64_t
    - IPAddress
    constantsTouched: []
    func_position:
      end: 598
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 598
    functionName: TimeSyncNode::StoreNotifyingContact
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - VerifyOrExit
    - TimeSyncNode::FindReplaceableContact
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::StoreNotifyingContact(const uint64_t aNodeId, const IPAddress
      & aNodeAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:604,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:613,1
    - Dst: GetClock_Monotonic
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:628,1
    - Dst: timesync_t
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:630,1
    - Dst: GetExchangeMgr
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:633,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:633,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:635,1
    - Dst: timesync_t
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:638,1
    - Dst: WEAVE_TIME_PROGRESS_LOG
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:640,1
    - Dst: WEAVE_TIME_PROGRESS_LOG
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:645,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:650,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - aContact
    argTypes:
    - Contact*
    constantsTouched: []
    func_position:
      end: 652
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 652
    functionName: TimeSyncNode::RegisterCommError
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - timesync_t
    - IgnoreUnusedVariable
    - WEAVE_TIME_PROGRESS_LOG
    - GetClock_Monotonic
    - SystemLayer::StartTimer
    - GetExchangeMgr
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveLogFunctError
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::RegisterCommError(Contact * const aContact)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeSyncRequest::TimeSyncRequest
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:657,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:666,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:667,1
    - Dst: TimeSyncRequest::Init
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:671,1
    - Dst: TimeSyncNode::SetupUnicastCommContext
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:673,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:674,1
    - Dst: TimeSyncRequest::Encode
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:676,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:677,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:680,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:693,1
    - Dst: TimeSyncNode::RegisterCommError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:695,1
    - Dst: TimeSyncNode::DestroyCommContext
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:696,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:700,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:704,1
    - Dst: TimeSyncNode::DestroyCommContext
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:714,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - rIsMessageSent
    - aContact
    argTypes:
    - bool*
    - Contact*
    constantsTouched: []
    func_position:
      end: 718
      start: 654
    functionDepth: 3
    functionLinenumber: 654
    functionLinenumberEnd: 718
    functionName: TimeSyncNode::SendSyncRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - TimeSyncRequest::Init
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - TimeSyncNode::DestroyCommContext
    - WeaveLogFunctError
    - TimeSyncRequest::Encode
    - SuccessOrExit
    - TimeSyncNode::RegisterCommError
    - TimeSyncRequest::TimeSyncRequest
    - TimeSyncNode::SetupUnicastCommContext
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TimeSyncNode::SendSyncRequest(bool * const rIsMessageSent, Contact
      * const aContact)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeSyncNode::GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:727,1
    - Dst: TimeSyncNode::SetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:737,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:740,1
    - Dst: TimeSyncNode::GetNextIdleContact
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:745,1
    - Dst: TimeSyncNode::SetAllCompletedContactsToIdle
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:749,1
    - Dst: TimeSyncNode::EnterState_Sync_2
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:750,1
    - Dst: TimeSyncNode::SendSyncRequest
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:754,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:756,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:761,1
    - Dst: TimeSyncNode::AbortOnError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:764,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 765
      start: 720
    functionDepth: 4
    functionLinenumber: 720
    functionLinenumberEnd: 765
    functionName: TimeSyncNode::EnterState_Sync_1
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 1
    functionsReached:
    - TimeSyncNode::SetAllCompletedContactsToIdle
    - TimeSyncNode::AbortOnError
    - ExitNow
    - TimeSyncNode::SetClientState
    - TimeSyncNode::GetNextIdleContact
    - TimeSyncNode::SendSyncRequest
    - SuccessOrExit
    - TimeSyncNode::GetClientState
    - TimeSyncNode::EnterState_Sync_2
    - WeaveLogFunctError
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::EnterState_Sync_1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeSyncNode::GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:774,1
    - Dst: TimeSyncNode::SetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:784,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:787,1
    - Dst: TimeSyncNode::GetNextIdleContact
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:793,1
    - Dst: TimeSyncNode::EndLocalSyncAndTryCalculateTimeFix
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:797,1
    - Dst: TimeSyncNode::SendSyncRequest
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:801,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:803,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:808,1
    - Dst: TimeSyncNode::AbortOnError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:811,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 812
      start: 767
    functionDepth: 4
    functionLinenumber: 767
    functionLinenumberEnd: 812
    functionName: TimeSyncNode::EnterState_Sync_2
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 1
    functionsReached:
    - TimeSyncNode::AbortOnError
    - ExitNow
    - TimeSyncNode::SetClientState
    - TimeSyncNode::GetNextIdleContact
    - TimeSyncNode::SendSyncRequest
    - SuccessOrExit
    - TimeSyncNode::EndLocalSyncAndTryCalculateTimeFix
    - TimeSyncNode::GetClientState
    - WeaveLogFunctError
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::EnterState_Sync_2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeSyncNode::GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:821,1
    - Dst: TimeSyncNode::SetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:824,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:827,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:833,1
    - Dst: TimeSyncNode::SendSyncRequest
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:836,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:837,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:843,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:847,1
    - Dst: TimeSyncNode::AbortOnError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:850,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 851
      start: 815
    functionDepth: 4
    functionLinenumber: 815
    functionLinenumberEnd: 851
    functionName: TimeSyncNode::EnterState_ServiceSync_1
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - TimeSyncNode::AbortOnError
    - TimeSyncNode::GetClientState
    - TimeSyncNode::SendSyncRequest
    - TimeSyncNode::SetClientState
    - ExitNow
    - SuccessOrExit
    - WeaveLogFunctError
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::EnterState_ServiceSync_1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeSyncNode::GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:859,1
    - Dst: TimeSyncNode::SetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:862,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:865,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:871,1
    - Dst: TimeSyncNode::SendSyncRequest
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:874,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:875,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:878,1
    - Dst: TimeSyncNode::AbortOnError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:881,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 882
      start: 853
    functionDepth: 4
    functionLinenumber: 853
    functionLinenumberEnd: 882
    functionName: TimeSyncNode::EnterState_ServiceSync_2
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - TimeSyncNode::AbortOnError
    - TimeSyncNode::GetClientState
    - TimeSyncNode::SendSyncRequest
    - TimeSyncNode::SetClientState
    - ExitNow
    - SuccessOrExit
    - WeaveLogFunctError
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::EnterState_ServiceSync_2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeSyncRequest::TimeSyncRequest
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:890,1
    - Dst: TimeSyncNode::GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:892,1
    - Dst: TimeSyncNode::SetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:900,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:903,1
    - Dst: TimeSyncNode::InvalidateAllContacts
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:910,1
    - Dst: TimeSyncNode::DestroyCommContext
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:914,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:916,1
    - Dst: GetExchangeMgr
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:923,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:923,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:925,1
    - Dst: GetExchangeMgr
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:928,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:929,1
    - Dst: GetClock_MonotonicHiRes
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:940,1
    - Dst: TimeSyncRequest::Init
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:942,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:945,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:946,1
    - Dst: TimeSyncRequest::Encode
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:948,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:949,1
    - Dst: WEAVE_TIME_PROGRESS_LOG
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:951,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:955,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:957,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:960,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:964,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:971,1
    - Dst: TimeSyncNode::Abort
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:975,1
    - Dst: TimeSyncNode::AbortOnError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:978,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 979
      start: 886
    functionDepth: 3
    functionLinenumber: 886
    functionLinenumberEnd: 979
    functionName: TimeSyncNode::EnterState_Discover
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - GetClock_MonotonicHiRes
    - GetExchangeMgr
    - WeaveLogFunctError
    - TimeSyncRequest::TimeSyncRequest
    - TimeSyncNode::Abort
    - SendMessage
    - WeaveLogError
    - TimeSyncRequest::Init
    - nl::Weave::System::PacketBuffer::Free
    - WEAVE_TIME_PROGRESS_LOG
    - TimeSyncNode::AbortOnError
    - VerifyOrExit
    - SuccessOrExit
    - TimeSyncNode::GetClientState
    - Close
    - TimeSyncNode::InvalidateAllContacts
    - ExitNow
    - SystemLayer::StartTimer
    - TimeSyncRequest::Encode
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - TimeSyncNode::SetClientState
    - TimeSyncNode::DestroyCommContext
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::EnterState_Discover(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:989,1
    - Dst: TimeSyncNode::GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:992,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:994,1
    - Dst: TimeSyncNode::EnterState_ServiceSync_1
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1012,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1015,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - aConnection
    argTypes:
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 1018
      start: 983
    functionDepth: 5
    functionLinenumber: 983
    functionLinenumberEnd: 1018
    functionName: TimeSyncNode::SyncWithService
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - TimeSyncNode::EnterState_ServiceSync_1
    - WeaveLogFunctError
    - ExitNow
    - TimeSyncNode::GetClientState
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TimeSyncNode::SyncWithService(WeaveConnection * const aConnection)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1034,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1038,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1052,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1055,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1064,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1067,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1078,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1081,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1104,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1107,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 3
    argNames:
    - aNodeId
    - ' aNodeAddr'
    - aIsTimeChangeNotification
    argTypes:
    - uint64_t
    - IPAddress
    - bool
    constantsTouched: []
    func_position:
      end: 1118
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1118
    functionName: TimeSyncNode::FindReplaceableContact
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogDetail
    - ExitNow
    linkageType: ''
    returnType: Contact
    signature: "* TimeSyncNode::FindReplaceableContact(const uint64_t aNodeId,\n    const
      IPAddress & aNodeAddr, bool aIsTimeChangeNotification)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeSyncNode::FindReplaceableContact
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1125,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1127,1
    - Dst: TimeSyncNode::UpdateUnicastSyncResponse
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1137,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - aNodeId
    - ' aNodeAddr'
    - ' aResponse'
    argTypes:
    - uint64_t
    - IPAddress
    - TimeSyncResponse
    constantsTouched: []
    func_position:
      end: 1146
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1146
    functionName: TimeSyncNode::UpdateMulticastSyncResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - TimeSyncNode::UpdateUnicastSyncResponse
    - WeaveLogFunctError
    - VerifyOrExit
    - TimeSyncNode::FindReplaceableContact
    linkageType: ''
    returnType: void
    signature: "TimeSyncNode::UpdateMulticastSyncResponse(const uint64_t aNodeId,\n
      \   const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetClock_MonotonicHiRes
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1157,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1168,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1179,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1216,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1220,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1275,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1279,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1285,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 1
    argNames:
    - ' aResponse'
    argTypes:
    - TimeSyncResponse
    constantsTouched: []
    func_position:
      end: 1288
      start: 1149
    functionDepth: 0
    functionLinenumber: 1149
    functionLinenumberEnd: 1288
    functionName: TimeSyncNode::UpdateUnicastSyncResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogFunctError
    - GetClock_MonotonicHiRes
    - ExitNow
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::UpdateUnicastSyncResponse(const TimeSyncResponse & aResponse)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WEAVE_TIME_PROGRESS_LOG
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1298,1
    - Dst: OnSyncFailed
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1303,1
    - Dst: WEAVE_TIME_PROGRESS_LOG
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1309,1
    - Dst: OnSyncSucceeded
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1314,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1330,1
    - Dst: SetClock_RealTime
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1333,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1334,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1338,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1344,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1349,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 7
    argNames:
    - aIsSuccessful
    - aShouldUpdate
    - aIsCorrectionReliable
    - aIsFromServer
    - aNumContributor
    - aSystemTimestamp_usec
    - aDiffTime_usec
    argTypes:
    - bool
    - bool
    - bool
    - bool
    - uint8_t
    - timesync_t
    - timesync_t
    constantsTouched: []
    func_position:
      end: 1352
      start: 1290
    functionDepth: 0
    functionLinenumber: 1290
    functionLinenumberEnd: 1352
    functionName: TimeSyncNode::CallbackForSyncCompletion
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - OnSyncSucceeded
    - WEAVE_TIME_PROGRESS_LOG
    - OnSyncFailed
    - WeaveLogFunctError
    - WeaveLogDetail
    - SuccessOrExit
    - SetClock_RealTime
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TimeSyncNode::CallbackForSyncCompletion(const bool aIsSuccessful,
      bool aShouldUpdate,\n    const bool aIsCorrectionReliable, const bool aIsFromServer,
      const uint8_t aNumContributor,\n    const timesync_t aSystemTimestamp_usec,
      const timesync_t aDiffTime_usec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeSyncNode::GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1364,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1367,1
    - Dst: GetClock_MonotonicHiRes
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1371,1
    - Dst: GetClock_RealTime
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1374,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1377,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1379,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1382,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1396,1
    - Dst: TimeSyncNode::CallbackForSyncCompletion
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1398,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1410,1
    - Dst: TimeSyncNode::CallbackForSyncCompletion
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1412,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1423,1
    - Dst: TimeSyncNode::DestroyCommContext
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1425,1
    - Dst: TimeSyncNode::SetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1427,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1355
    functionDepth: 2
    functionLinenumber: 1355
    functionLinenumberEnd: 1430
    functionName: TimeSyncNode::EndServiceSyncAndTryCalculateTimeFix
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - TimeSyncNode::CallbackForSyncCompletion
    - GetClock_RealTime
    - GetClock_MonotonicHiRes
    - ExitNow
    - TimeSyncNode::DestroyCommContext
    - TimeSyncNode::SetClientState
    - WeaveLogDetail
    - TimeSyncNode::GetClientState
    - WeaveLogFunctError
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::EndServiceSyncAndTryCalculateTimeFix(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1446,1
    - Dst: TimeSyncNode::GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1460,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1463,1
    - Dst: FilterTimeCorrectionContributor
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1469,1
    - Dst: GetClock_MonotonicHiRes
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1474,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1509,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1524,1
    - Dst: GetClock_RealTime
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1530,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1533,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1535,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1538,1
    - Dst: nl::Weave::Platform::Divide
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1548,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1551,1
    - Dst: TimeSyncNode::CallbackForSyncCompletion
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1553,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1562,1
    - Dst: nl::Weave::Platform::Divide
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1572,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1579,1
    - Dst: TimeSyncNode::CallbackForSyncCompletion
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1581,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1590,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1598,1
    - Dst: TimeSyncNode::CallbackForSyncCompletion
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1600,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1609,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1613,1
    - Dst: TimeSyncNode::CallbackForSyncCompletion
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1616,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1625,1
    - Dst: nl::Weave::Platform::Divide
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1641,1
    - Dst: nl::Weave::Platform::Divide
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1651,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1654,1
    - Dst: TimeSyncNode::CallbackForSyncCompletion
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1656,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1665,1
    - Dst: nl::Weave::Platform::Divide
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1678,1
    - Dst: nl::Weave::Platform::Divide
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1688,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1692,1
    - Dst: TimeSyncNode::CallbackForSyncCompletion
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1694,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1703,1
    - Dst: TimeSyncNode::CallbackForSyncCompletion
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1706,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1716,1
    - Dst: TimeSyncNode::DestroyCommContext
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1718,1
    - Dst: TimeSyncNode::SetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1720,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 101
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1433
    functionDepth: 2
    functionLinenumber: 1433
    functionLinenumberEnd: 1723
    functionName: TimeSyncNode::EndLocalSyncAndTryCalculateTimeFix
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 1
    functionsReached:
    - TimeSyncNode::CallbackForSyncCompletion
    - IgnoreUnusedVariable
    - GetClock_MonotonicHiRes
    - ExitNow
    - GetClock_RealTime
    - FilterTimeCorrectionContributor
    - TimeSyncNode::DestroyCommContext
    - TimeSyncNode::SetClientState
    - WeaveLogDetail
    - TimeSyncNode::GetClientState
    - WeaveLogFunctError
    - nl::Weave::Platform::Divide
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::EndLocalSyncAndTryCalculateTimeFix(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<TimeSyncNode *>
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1731,1
    - Dst: TimeSyncResponse::TimeSyncResponse
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1732,1
    - Dst: TimeSyncNode*::GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1733,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1737,1
    - Dst: TimeSyncResponse::Decode
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1740,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1741,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1750,1
    - Dst: TimeSyncNode*::UpdateUnicastSyncResponse
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1755,1
    - Dst: TimeSyncNode*::DestroyCommContext
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1760,1
    - Dst: TimeSyncNode*::GetNumNotYetCompletedContacts
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1766,1
    - Dst: TimeSyncNode*::SetAllCompletedContactsToIdle
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1769,1
    - Dst: TimeSyncNode*::EnterState_Sync_2
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1770,1
    - Dst: TimeSyncNode*::EnterState_Sync_1
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1775,1
    - Dst: TimeSyncNode*::GetNumNotYetCompletedContacts
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1781,1
    - Dst: TimeSyncNode*::EndLocalSyncAndTryCalculateTimeFix
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1784,1
    - Dst: TimeSyncNode*::EnterState_Sync_2
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1789,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1802,1
    - Dst: TimeSyncNode*::UpdateUnicastSyncResponse
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1807,1
    - Dst: TimeSyncNode*::DestroyCommContext
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1812,1
    - Dst: TimeSyncNode*::EnterState_ServiceSync_2
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1819,1
    - Dst: TimeSyncNode*::EndServiceSyncAndTryCalculateTimeFix
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1824,1
    - Dst: TimeSyncNode*::InvalidateServiceContact
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1825,1
    - Dst: TimeSyncNode*::DestroyCommContext
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1832,1
    - Dst: TimeSyncNode*::AbortOnError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1833,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1834
      start: 1725
    functionDepth: 2
    functionLinenumber: 1725
    functionLinenumberEnd: 1834
    functionName: TimeSyncNode::HandleUnicastSyncResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - TimeSyncNode*::SetAllCompletedContactsToIdle
    - TimeSyncNode*::InvalidateServiceContact
    - TimeSyncNode*::EndLocalSyncAndTryCalculateTimeFix
    - TimeSyncNode*::DestroyCommContext
    - TimeSyncNode*::EnterState_Sync_1
    - reinterpret_cast<TimeSyncNode *>
    - TimeSyncNode*::EnterState_ServiceSync_2
    - TimeSyncNode*::UpdateUnicastSyncResponse
    - ExitNow
    - TimeSyncNode*::GetClientState
    - TimeSyncNode*::EndServiceSyncAndTryCalculateTimeFix
    - TimeSyncNode*::EnterState_Sync_2
    - SuccessOrExit
    - TimeSyncNode*::GetNumNotYetCompletedContacts
    - TimeSyncNode*::AbortOnError
    - TimeSyncResponse::Decode
    - TimeSyncResponse::TimeSyncResponse
    linkageType: ''
    returnType: void
    signature: "TimeSyncNode::HandleUnicastSyncResponse(ExchangeContext *ec, const
      IPPacketInfo *pktInfo,\n    const WeaveMessageInfo *msgInfo,\n    uint32_t profileId,
      uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<TimeSyncNode *>
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1855,1
    - Dst: TimeSyncResponse::TimeSyncResponse
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1856,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1860,1
    - Dst: WeaveMessageSourceToStr
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1866,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1867,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1875,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1880,1
    - Dst: TimeSyncNode*::GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1883,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1885,1
    - Dst: TimeSyncResponse::Decode
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1888,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1889,1
    - Dst: TimeSyncNode*::UpdateMulticastSyncResponse
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1892,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1899,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1902,1
    - Dst: TimeSyncNode*::AbortOnError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1908,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1910
      start: 1847
    functionDepth: 2
    functionLinenumber: 1847
    functionLinenumberEnd: 1910
    functionName: TimeSyncNode::HandleMulticastSyncResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - TimeSyncNode*::AbortOnError
    - reinterpret_cast<TimeSyncNode *>
    - TimeSyncResponse::Decode
    - ExitNow
    - TimeSyncNode*::UpdateMulticastSyncResponse
    - TimeSyncNode*::GetClientState
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveLogFunctError
    - WeaveMessageSourceToStr
    - TimeSyncResponse::TimeSyncResponse
    linkageType: ''
    returnType: void
    signature: "TimeSyncNode::HandleMulticastSyncResponse(ExchangeContext *ec, const
      IPPacketInfo *pktInfo,\n    const WeaveMessageInfo *msgInfo,\n    uint32_t profileId,
      uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<TimeSyncNode *>
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1920,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1924,1
    - Dst: TimeSyncNode*::GetFabricState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1925,1
    - Dst: TimeSyncNode*::GetFabricState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1929,1
    - Dst: TimeChangeNotification::TimeChangeNotification
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1935,1
    - Dst: TimeSyncNode*::GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1936,1
    - Dst: IsOperationalState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1940,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1942,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1948,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1950,1
    - Dst: TimeChangeNotification::Decode
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1955,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1956,1
    - Dst: TimeSyncNode*::StoreNotifyingContact
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1960,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1970,1
    - Dst: TimeSyncNode*::GetExchangeMgr
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1972,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1972,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1973,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1978,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1981,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:1991,1
    - Dst: TimeSyncNode*::OnTimeChangeNotificationReceived
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2000,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2016,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 2018
      start: 1913
    functionDepth: 2
    functionLinenumber: 1913
    functionLinenumberEnd: 2018
    functionName: TimeSyncNode::HandleTimeChangeNotification
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - TimeChangeNotification::Decode
    - IsOperationalState
    - TimeChangeNotification::TimeChangeNotification
    - nl::Weave::System::PacketBuffer::Free
    - ExchangeContext*::Close
    - reinterpret_cast<TimeSyncNode *>
    - ExitNow
    - TimeSyncNode*::GetClientState
    - SuccessOrExit
    - SystemLayer::StartTimer
    - WeaveLogDetail
    - WeaveLogFunctError
    - TimeSyncNode*::GetFabricState
    - TimeSyncNode*::GetExchangeMgr
    - TimeSyncNode*::OnTimeChangeNotificationReceived
    - TimeSyncNode*::StoreNotifyingContact
    linkageType: ''
    returnType: void
    signature: "TimeSyncNode::HandleTimeChangeNotification(ExchangeContext *ec, const
      IPPacketInfo *pktInfo,\n    const WeaveMessageInfo *msgInfo,\n    uint32_t profileId,
      uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<TimeSyncNode *>
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2025,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2027,1
    - Dst: TimeSyncNode*::GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2027,1
    - Dst: TimeSyncNode*::GetClientStateName
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2028,1
    - Dst: TimeSyncNode*::GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2030,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2032,1
    - Dst: TimeSyncNode*::DestroyCommContext
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2035,1
    - Dst: TimeSyncNode*::GetNumReliableResponses
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2038,1
    - Dst: TimeSyncNode*::EnterState_Discover
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2047,1
    - Dst: TimeSyncNode*::SetAllCompletedContactsToIdle
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2059,1
    - Dst: TimeSyncNode*::EnterState_Sync_2
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2060,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2064,1
    - Dst: TimeSyncNode*::AbortOnError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2068,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 2072
      start: 2021
    functionDepth: 0
    functionLinenumber: 2021
    functionLinenumberEnd: 2072
    functionName: TimeSyncNode::HandleMulticastResponseTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - TimeSyncNode*::SetAllCompletedContactsToIdle
    - TimeSyncNode*::DestroyCommContext
    - TimeSyncNode*::GetNumReliableResponses
    - TimeSyncNode*::AbortOnError
    - reinterpret_cast<TimeSyncNode *>
    - ExitNow
    - TimeSyncNode*::GetClientState
    - TimeSyncNode*::EnterState_Discover
    - WeaveLogDetail
    - TimeSyncNode*::EnterState_Sync_2
    - TimeSyncNode*::GetClientStateName
    - WeaveLogFunctError
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::HandleMulticastResponseTimeout(System::Layer* aSystemLayer,
      void* aAppState, System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<TimeSyncNode *>
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2080,1
    - Dst: TimeSyncNode*::GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2083,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2085,1
    - Dst: TimeSyncNode*::GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2085,1
    - Dst: TimeSyncNode*::GetClientStateName
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2086,1
    - Dst: TimeSyncNode*::DestroyCommContext
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2089,1
    - Dst: TimeSyncNode*::RegisterCommError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2093,1
    - Dst: TimeSyncNode*::GetNumNotYetCompletedContacts
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2097,1
    - Dst: TimeSyncNode*::SetAllCompletedContactsToIdle
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2101,1
    - Dst: TimeSyncNode*::EnterState_Sync_2
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2102,1
    - Dst: TimeSyncNode*::EnterState_Sync_1
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2108,1
    - Dst: TimeSyncNode*::GetNumNotYetCompletedContacts
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2113,1
    - Dst: TimeSyncNode*::EndLocalSyncAndTryCalculateTimeFix
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2116,1
    - Dst: TimeSyncNode*::EnterState_Sync_2
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2122,1
    - Dst: TimeSyncNode*::EnterState_ServiceSync_2
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2130,1
    - Dst: TimeSyncNode*::EndServiceSyncAndTryCalculateTimeFix
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2135,1
    - Dst: TimeSyncNode*::InvalidateServiceContact
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2136,1
    - Dst: TimeSyncNode*::AbortOnError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - ec
    argTypes:
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 2143
      start: 2075
    functionDepth: 0
    functionLinenumber: 2075
    functionLinenumberEnd: 2143
    functionName: TimeSyncNode::HandleUnicastResponseTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - TimeSyncNode*::SetAllCompletedContactsToIdle
    - TimeSyncNode*::EndLocalSyncAndTryCalculateTimeFix
    - TimeSyncNode*::DestroyCommContext
    - TimeSyncNode*::EnterState_Sync_1
    - reinterpret_cast<TimeSyncNode *>
    - TimeSyncNode*::RegisterCommError
    - TimeSyncNode*::EnterState_ServiceSync_2
    - TimeSyncNode*::GetClientState
    - TimeSyncNode*::EndServiceSyncAndTryCalculateTimeFix
    - WeaveLogDetail
    - TimeSyncNode*::EnterState_Sync_2
    - TimeSyncNode*::GetClientStateName
    - TimeSyncNode*::GetNumNotYetCompletedContacts
    - TimeSyncNode*::AbortOnError
    - TimeSyncNode*::InvalidateServiceContact
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::HandleUnicastResponseTimeout(ExchangeContext * const
      ec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetExchangeMgr
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2154,1
    - Dst: SystemLayer::CancelTimer
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2154,1
    - Dst: GetExchangeMgr
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2156,1
    - Dst: SystemLayer::CancelTimer
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2152
    functionDepth: 0
    functionLinenumber: 2152
    functionLinenumberEnd: 2159
    functionName: TimeSyncNode::DisableAutoSync
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 1
    functionsReached:
    - SystemLayer::CancelTimer
    - GetExchangeMgr
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::DisableAutoSync(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2173,1
    - Dst: TimeSyncNode::GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2176,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2178,1
    - Dst: GetExchangeMgr
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2190,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2190,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2191,1
    - Dst: GetClock_Monotonic
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2195,1
    - Dst: GetExchangeMgr
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2199,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2199,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2200,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - WEAVE_CONFIG_TIME_CLIENT_FABRIC_LOCAL_DISCOVERY
    - aNominalDiscoveryPeriod_msec
    - aShortestDiscoveryPeriod_msec
    argTypes:
    - int32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 2206
      start: 2161
    functionDepth: 1
    functionLinenumber: 2161
    functionLinenumberEnd: 2206
    functionName: TimeSyncNode::EnableAutoSync
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 1
    functionsReached:
    - TimeSyncNode::GetClientState
    - ExitNow
    - GetClock_Monotonic
    - SystemLayer::StartTimer
    - GetExchangeMgr
    - SuccessOrExit
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TimeSyncNode::EnableAutoSync(const int32_t aSyncPeriod_msec\n#if WEAVE_CONFIG_TIME_CLIENT_FABRIC_LOCAL_DISCOVERY\n
      \   ,\n    const int32_t aNominalDiscoveryPeriod_msec,\n    const int32_t aShortestDiscoveryPeriod_msec\n#endif
      // WEAVE_CONFIG_TIME_CLIENT_FABRIC_LOCAL_DISCOVERY\n    )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetExchangeMgr
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2212,1
    - Dst: SystemLayer::CancelTimer
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2212,1
    - Dst: GetExchangeMgr
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2217,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2217,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2218,1
    - Dst: TimeSyncNode::GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2220,1
    - Dst: Sync
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2222,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2227,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2236,1
    - Dst: TimeSyncNode::AbortOnError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2239
      start: 2208
    functionDepth: 1
    functionLinenumber: 2208
    functionLinenumberEnd: 2239
    functionName: TimeSyncNode::AutoSyncNow
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - TimeSyncNode::AbortOnError
    - SuccessOrExit
    - SystemLayer::StartTimer
    - SystemLayer::CancelTimer
    - GetExchangeMgr
    - TimeSyncNode::GetClientState
    - WeaveLogDetail
    - Sync
    - WeaveLogFunctError
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::AutoSyncNow(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<TimeSyncNode *>
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2243,1
    - Dst: WEAVE_TIME_PROGRESS_LOG
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2245,1
    - Dst: TimeSyncNode*::GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2245,1
    - Dst: TimeSyncNode*::GetClientStateName
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2246,1
    - Dst: TimeSyncNode*::AutoSyncNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 2249
      start: 2241
    functionDepth: 0
    functionLinenumber: 2241
    functionLinenumberEnd: 2249
    functionName: TimeSyncNode::HandleAutoSyncTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - WEAVE_TIME_PROGRESS_LOG
    - reinterpret_cast<TimeSyncNode *>
    - TimeSyncNode*::GetClientState
    - TimeSyncNode*::GetClientStateName
    - TimeSyncNode*::AutoSyncNow
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::HandleAutoSyncTimeout(System::Layer* aSystemLayer, void*
      aAppState, System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<TimeSyncNode *>
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2256,1
    - Dst: WEAVE_TIME_PROGRESS_LOG
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2258,1
    - Dst: TimeSyncNode*::GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2258,1
    - Dst: TimeSyncNode*::GetClientStateName
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2259,1
    - Dst: TimeSyncNode*::GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2265,1
    - Dst: TimeSyncNode*::Abort
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2268,1
    - Dst: TimeSyncNode*::GetExchangeMgr
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2272,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2272,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2274,1
    - Dst: TimeSyncNode*::GetExchangeMgr
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2277,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2277,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2279,1
    - Dst: GetClock_Monotonic
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2283,1
    - Dst: timesync_t
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2284,1
    - Dst: TimeSyncNode*::Sync
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2286,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2287,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2295,1
    - Dst: TimeSyncNode*::AbortOnError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 2298
      start: 2252
    functionDepth: 0
    functionLinenumber: 2252
    functionLinenumberEnd: 2298
    functionName: TimeSyncNode::HandleAutoDiscoveryTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - TimeSyncNode*::Sync
    - timesync_t
    - TimeSyncNode*::AbortOnError
    - WEAVE_TIME_PROGRESS_LOG
    - reinterpret_cast<TimeSyncNode *>
    - GetClock_Monotonic
    - TimeSyncNode*::GetClientState
    - SuccessOrExit
    - SystemLayer::StartTimer
    - WeaveLogFunctError
    - TimeSyncNode*::Abort
    - TimeSyncNode*::GetClientStateName
    - TimeSyncNode*::GetExchangeMgr
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::HandleAutoDiscoveryTimeout(System::Layer* aSystemLayer,
      void* aAppState, System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2305,1
    - Dst: SingleSourceTimeSyncClient::GetClientStateName
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - SingleSourceTimeSyncClient::ClientState
    constantsTouched: []
    func_position:
      end: 2307
      start: 2301
    functionDepth: 1
    functionLinenumber: 2301
    functionLinenumberEnd: 2307
    functionName: SingleSourceTimeSyncClient::SetClientState
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - SingleSourceTimeSyncClient::GetClientStateName
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: SingleSourceTimeSyncClient::SetClientState(const SingleSourceTimeSyncClient::ClientState
      state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SingleSourceTimeSyncClient::SetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2314,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - aApp
    - aExchangeMgr
    argTypes:
    - void*
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 2331
      start: 2309
    functionDepth: 2
    functionLinenumber: 2309
    functionLinenumberEnd: 2331
    functionName: SingleSourceTimeSyncClient::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - SingleSourceTimeSyncClient::SetClientState
    - RegisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SingleSourceTimeSyncClient::Init(void * const aApp, WeaveExchangeManager
      * const aExchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2337,1
    - Dst: SingleSourceTimeSyncClient::Abort
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2343,1
    - Dst: SingleSourceTimeSyncClient::SetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2348
      start: 2333
    functionDepth: 2
    functionLinenumber: 2333
    functionLinenumberEnd: 2348
    functionName: SingleSourceTimeSyncClient::Abort
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 1
    functionsReached:
    - SingleSourceTimeSyncClient::SetClientState
    - Release
    - SingleSourceTimeSyncClient::Abort
    linkageType: ''
    returnType: void
    signature: SingleSourceTimeSyncClient::Abort(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2354,1
    - Dst: SingleSourceTimeSyncClient::Abort
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2358,1
    - Dst: SingleSourceTimeSyncClient::SetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2361,1
    - Dst: InvalidateRegisteredResult
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2363,1
    - Dst: AddRef
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2368,1
    - Dst: SingleSourceTimeSyncClient::SendSyncRequest
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2372,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2373,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2376,1
    - Dst: SingleSourceTimeSyncClient::Abort
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - aBinding
    - OnSyncCompleted
    argTypes:
    - Binding*
    - SyncCompletionHandler
    constantsTouched: []
    func_position:
      end: 2385
      start: 2350
    functionDepth: 2
    functionLinenumber: 2350
    functionLinenumberEnd: 2385
    functionName: SingleSourceTimeSyncClient::Sync
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - SingleSourceTimeSyncClient::SendSyncRequest
    - SingleSourceTimeSyncClient::SetClientState
    - AddRef
    - VerifyOrExit
    - InvalidateRegisteredResult
    - SuccessOrExit
    - SingleSourceTimeSyncClient::Abort
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SingleSourceTimeSyncClient::Sync(Binding * const aBinding, SyncCompletionHandler
      OnSyncCompleted)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeSyncRequest::TimeSyncRequest
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2390,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2394,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2395,1
    - Dst: TimeSyncRequest::Init
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2399,1
    - Dst: TimeSyncRequest::Encode
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2401,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2402,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2406,1
    - Dst: NewExchangeContext
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2410,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2411,1
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicHiRes
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2422,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2425,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2428,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2431,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2443
      start: 2387
    functionDepth: 3
    functionLinenumber: 2387
    functionLinenumberEnd: 2443
    functionName: SingleSourceTimeSyncClient::SendSyncRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 1
    functionsReached:
    - Close
    - SendMessage
    - TimeSyncRequest::Init
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - WeaveLogFunctError
    - TimeSyncRequest::Encode
    - SuccessOrExit
    - TimeSyncRequest::TimeSyncRequest
    - nl::Weave::System::Layer::GetClock_MonotonicHiRes
    - NewExchangeContext
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SingleSourceTimeSyncClient::SendSyncRequest(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SingleSourceTimeSyncClient *>
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2448,1
    - Dst: SingleSourceTimeSyncClient*::OnSyncResponse
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - aEC
    - aPktInfo
    - aMsgInfo
    - aProfileId
    - aMsgType
    - aPayload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 2450
      start: 2445
    functionDepth: 0
    functionLinenumber: 2445
    functionLinenumberEnd: 2450
    functionName: SingleSourceTimeSyncClient::HandleSyncResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - SingleSourceTimeSyncClient*::OnSyncResponse
    - reinterpret_cast<SingleSourceTimeSyncClient *>
    linkageType: ''
    returnType: void
    signature: "SingleSourceTimeSyncClient::HandleSyncResponse(ExchangeContext *aEC,
      const IPPacketInfo *aPktInfo,\n    const WeaveMessageInfo *aMsgInfo, uint32_t
      aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2454,1
    - Dst: SingleSourceTimeSyncClient::GetClientStateName
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2455,1
    - Dst: IsRegisteredResultValid
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2457,1
    - Dst: IsRegisteredResultValid
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2459,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2461,1
    - Dst: SingleSourceTimeSyncClient::GetClientStateName
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2461,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2465,1
    - Dst: SingleSourceTimeSyncClient::GetClientStateName
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2465,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - aNow_usec
    - aRemoteTimestamp_usec
    - aFlightTime_usec
    argTypes:
    - timesync_t
    - timesync_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 2472
      start: 2452
    functionDepth: 1
    functionLinenumber: 2452
    functionLinenumberEnd: 2472
    functionName: SingleSourceTimeSyncClient::RegisterSyncResultIfNewOrBetter
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - SingleSourceTimeSyncClient::GetClientStateName
    - IsRegisteredResultValid
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: SingleSourceTimeSyncClient::RegisterSyncResultIfNewOrBetter(const timesync_t
      aNow_usec, const timesync_t aRemoteTimestamp_usec, const int32_t aFlightTime_usec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsRegisteredResultValid
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2483,1
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicHiRes
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2487,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2489,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2494,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2495,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2496,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2497,1
    - Dst: mOnSyncCompleted
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2500,1
    - Dst: SingleSourceTimeSyncClient::Abort
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2503,1
    - Dst: SingleSourceTimeSyncClient::_AbortWithCallback
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2510
      start: 2474
    functionDepth: 1
    functionLinenumber: 2474
    functionLinenumberEnd: 2510
    functionName: SingleSourceTimeSyncClient::FinalProcessing
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - SingleSourceTimeSyncClient::_AbortWithCallback
    - IsRegisteredResultValid
    - mOnSyncCompleted
    - WeaveLogDetail
    - SingleSourceTimeSyncClient::Abort
    - nl::Weave::System::Layer::GetClock_MonotonicHiRes
    linkageType: ''
    returnType: void
    signature: SingleSourceTimeSyncClient::FinalProcessing()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SingleSourceTimeSyncClient::SetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2515,1
    - Dst: SingleSourceTimeSyncClient::SendSyncRequest
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2517,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2519,1
    - Dst: SingleSourceTimeSyncClient::FinalProcessing
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2523
      start: 2512
    functionDepth: 4
    functionLinenumber: 2512
    functionLinenumberEnd: 2523
    functionName: SingleSourceTimeSyncClient::EnterSync2
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - SingleSourceTimeSyncClient::SendSyncRequest
    - SingleSourceTimeSyncClient::SetClientState
    - WeaveLogDetail
    - SingleSourceTimeSyncClient::FinalProcessing
    linkageType: ''
    returnType: void
    signature: SingleSourceTimeSyncClient::EnterSync2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeSyncResponse::TimeSyncResponse
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2528,1
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicHiRes
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2536,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2538,1
    - Dst: TimeSyncResponse::Decode
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2542,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2543,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2549,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2550,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2551,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2552,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2553,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2554,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2556,1
    - Dst: static_cast<int32_t>
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2564,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2567,1
    - Dst: SingleSourceTimeSyncClient::RegisterSyncResultIfNewOrBetter
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2570,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2573,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2578,1
    - Dst: Close
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2585,1
    - Dst: SingleSourceTimeSyncClient::ProceedToNextState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2589,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - aProfileId
    - aMsgType
    - aPayload
    argTypes:
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 2590
      start: 2525
    functionDepth: 2
    functionLinenumber: 2525
    functionLinenumberEnd: 2590
    functionName: SingleSourceTimeSyncClient::OnSyncResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - Close
    - SingleSourceTimeSyncClient::ProceedToNextState
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::System::Layer::GetClock_MonotonicHiRes
    - VerifyOrExit
    - static_cast<int32_t>
    - WeaveLogDetail
    - SuccessOrExit
    - SingleSourceTimeSyncClient::RegisterSyncResultIfNewOrBetter
    - WeaveLogFunctError
    - TimeSyncResponse::Decode
    - TimeSyncResponse::TimeSyncResponse
    linkageType: ''
    returnType: void
    signature: SingleSourceTimeSyncClient::OnSyncResponse(uint32_t aProfileId, uint8_t
      aMsgType, PacketBuffer *aPayload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2594,1
    - Dst: GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2594,1
    - Dst: SingleSourceTimeSyncClient::GetClientStateName
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2595,1
    - Dst: SingleSourceTimeSyncClient::Abort
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2599,1
    - Dst: SingleSourceTimeSyncClient::ProceedToNextState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2604
      start: 2592
    functionDepth: 1
    functionLinenumber: 2592
    functionLinenumberEnd: 2604
    functionName: SingleSourceTimeSyncClient::OnResponseTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - SingleSourceTimeSyncClient::GetClientStateName
    - SingleSourceTimeSyncClient::ProceedToNextState
    - GetClientState
    - WeaveLogDetail
    - SingleSourceTimeSyncClient::Abort
    linkageType: ''
    returnType: void
    signature: SingleSourceTimeSyncClient::OnResponseTimeout(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SingleSourceTimeSyncClient::EnterSync2
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2611,1
    - Dst: SingleSourceTimeSyncClient::FinalProcessing
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2616,1
    - Dst: SingleSourceTimeSyncClient::_AbortWithCallback
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2623
      start: 2606
    functionDepth: 5
    functionLinenumber: 2606
    functionLinenumberEnd: 2623
    functionName: SingleSourceTimeSyncClient::ProceedToNextState
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 2
    functionsReached:
    - SingleSourceTimeSyncClient::_AbortWithCallback
    - SingleSourceTimeSyncClient::FinalProcessing
    - SingleSourceTimeSyncClient::EnterSync2
    linkageType: ''
    returnType: void
    signature: SingleSourceTimeSyncClient::ProceedToNextState(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SingleSourceTimeSyncClient *>
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2628,1
    - Dst: SingleSourceTimeSyncClient*::OnResponseTimeout
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aEC
    argTypes:
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 2630
      start: 2625
    functionDepth: 0
    functionLinenumber: 2625
    functionLinenumberEnd: 2630
    functionName: SingleSourceTimeSyncClient::HandleResponseTimeout
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - SingleSourceTimeSyncClient*::OnResponseTimeout
    - reinterpret_cast<SingleSourceTimeSyncClient *>
    linkageType: ''
    returnType: void
    signature: SingleSourceTimeSyncClient::HandleResponseTimeout(ExchangeContext *aEC)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2634,1
    - Dst: GetClientState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2634,1
    - Dst: SingleSourceTimeSyncClient::GetClientStateName
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2635,1
    - Dst: mOnSyncCompleted
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2640,1
    - Dst: SingleSourceTimeSyncClient::Abort
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - aErrorCode
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 2645
      start: 2632
    functionDepth: 1
    functionLinenumber: 2632
    functionLinenumberEnd: 2645
    functionName: SingleSourceTimeSyncClient::_AbortWithCallback
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 2
    functionsReached:
    - SingleSourceTimeSyncClient::GetClientStateName
    - GetClientState
    - mOnSyncCompleted
    - WeaveLogDetail
    - SingleSourceTimeSyncClient::Abort
    linkageType: ''
    returnType: void
    signature: SingleSourceTimeSyncClient::_AbortWithCallback(const WEAVE_ERROR aErrorCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SingleSourceTimeSyncClient *>
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2651,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2653,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2655,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2658,1
    - Dst: SingleSourceTimeSyncClient*::OnTimeChangeNotificationReceived
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp:2668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - aEC
    - aPktInfo
    - aMsgInfo
    - aProfileId
    - aMsgType
    - aPayload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 2670
      start: 2647
    functionDepth: 2
    functionLinenumber: 2647
    functionLinenumberEnd: 2670
    functionName: SingleSourceTimeSyncClient::HandleTimeChangeNotification
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 0
    functionsReached:
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    - SingleSourceTimeSyncClient*::OnTimeChangeNotificationReceived
    - reinterpret_cast<SingleSourceTimeSyncClient *>
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: "SingleSourceTimeSyncClient::HandleTimeChangeNotification(ExchangeContext
      *aEC, const IPPacketInfo *aPktInfo,\n    const WeaveMessageInfo *aMsgInfo,\n
      \   uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2693
      start: 2672
    functionDepth: 0
    functionLinenumber: 2672
    functionLinenumberEnd: 2693
    functionName: SingleSourceTimeSyncClient::GetClientStateName
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* SingleSourceTimeSyncClient::GetClientStateName(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 241
    functionName: TimeSyncNode::ClearState
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::ClearState(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:249,1
    - Dst: TimeSyncNode::_ShutdownServer
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:256,1
    - Dst: TimeSyncNode::_ShutdownClient
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:262,1
    - Dst: TimeSyncNode::_ShutdownCoordinator
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:268,1
    - Dst: TimeSyncNode::ClearState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:277,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:280,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 283
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 283
    functionName: TimeSyncNode::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp
    functionUses: 0
    functionsReached:
    - TimeSyncNode::_ShutdownClient
    - TimeSyncNode::ClearState
    - ExitNow
    - WeaveLogFunctError
    - TimeSyncNode::_ShutdownServer
    - TimeSyncNode::_ShutdownCoordinator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TimeSyncNode::Shutdown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:292,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:293,1
    - Dst: TimeSyncNode::_InitServer
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:296,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:297,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - aApp
    - aExchangeMgr
    - aIsAlwaysFresh
    argTypes:
    - void*
    - WeaveExchangeManager*
    - bool
    constantsTouched: []
    func_position:
      end: 303
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 303
    functionName: TimeSyncNode::InitServer
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp
    functionUses: 0
    functionsReached:
    - TimeSyncNode::_InitServer
    - WeaveLogFunctError
    - InitState
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TimeSyncNode::InitServer(void * const aApp, WeaveExchangeManager *
      const aExchangeMgr,\n    const bool aIsAlwaysFresh)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetExchangeMgr
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:315,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:317,1
    - Dst: GetExchangeMgr
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:319,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:319,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:321,1
    - Dst: WEAVE_TIME_PROGRESS_LOG
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:329,1
    - Dst: WEAVE_TIME_PROGRESS_LOG
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:337,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - aIsAlwaysFresh
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 348
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 348
    functionName: TimeSyncNode::_InitServer
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp
    functionUses: 2
    functionsReached:
    - WEAVE_TIME_PROGRESS_LOG
    - SystemLayer::StartTimer
    - GetExchangeMgr
    - SuccessOrExit
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TimeSyncNode::_InitServer(const bool aIsAlwaysFresh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:356,1
    - Dst: GetExchangeMgr
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:360,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:361,1
    - Dst: GetExchangeMgr
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:365,1
    - Dst: SystemLayer::CancelTimer
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:365,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 372
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 372
    functionName: TimeSyncNode::_ShutdownServer
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp
    functionUses: 2
    functionsReached:
    - SystemLayer::CancelTimer
    - WeaveLogFunctError
    - GetExchangeMgr
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TimeSyncNode::_ShutdownServer(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<TimeSyncNode *>
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:378,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:382,1
    - Dst: WEAVE_TIME_PROGRESS_LOG
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:387,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 393
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 393
    functionName: TimeSyncNode::HandleUnreliableAfterBootTimer
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<TimeSyncNode *>
    - WeaveLogFunctError
    - ExitNow
    - WEAVE_TIME_PROGRESS_LOG
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::HandleUnreliableAfterBootTimer(System::Layer* aSystemLayer,
      void* aAppState, System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<TimeSyncNode*>
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:401,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:406,1
    - Dst: TimeSyncNode*::GetFabricState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:407,1
    - Dst: TimeSyncNode*::GetFabricState
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:411,1
    - Dst: TimeSyncRequest::TimeSyncRequest
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:418,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:425,1
    - Dst: TimeSyncRequest::Decode
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:428,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:429,1
    - Dst: TimeSyncNode*::OnSyncRequestReceived
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:433,1
    - Dst: TimeSyncResponse::TimeSyncResponse
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:453,1
    - Dst: GetClock_Monotonic
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:458,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:472,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:477,1
    - Dst: nl::Weave::Platform::Divide
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:484,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:491,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:496,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:502,1
    - Dst: GetClock_RealTime
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:508,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:509,1
    - Dst: TimeSyncResponse::Init
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:512,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:516,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:517,1
    - Dst: TimeSyncResponse::Encode
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:519,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:520,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:523,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:525,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:530,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:536,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:541,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:546,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:548,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 67
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 549
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 549
    functionName: TimeSyncNode::HandleSyncRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp
    functionUses: 0
    functionsReached:
    - GetClock_Monotonic
    - TimeSyncNode*::GetFabricState
    - TimeSyncRequest::TimeSyncRequest
    - WeaveLogFunctError
    - TimeSyncResponse::TimeSyncResponse
    - nl::Weave::Platform::Divide
    - nl::Weave::System::PacketBuffer::New
    - reinterpret_cast<TimeSyncNode*>
    - TimeSyncResponse::Init
    - nl::Weave::System::PacketBuffer::Free
    - ExchangeContext*::Close
    - VerifyOrExit
    - WeaveLogDetail
    - TimeSyncResponse::Encode
    - GetClock_RealTime
    - ExitNow
    - TimeSyncNode*::OnSyncRequestReceived
    - ExchangeContext*::SendMessage
    - TimeSyncRequest::Decode
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: "TimeSyncNode::HandleSyncRequest(ExchangeContext *ec, const IPPacketInfo
      *pktInfo,\n    const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t
      msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 554
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 554
    functionName: TimeSyncNode::GetServerState
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TimeSyncNode::ServerState
    signature: TimeSyncNode::GetServerState(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetClock_Monotonic
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 559
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 559
    functionName: TimeSyncNode::RegisterCorrectionFromServerOrNtp
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp
    functionUses: 0
    functionsReached:
    - GetClock_Monotonic
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::RegisterCorrectionFromServerOrNtp(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetClock_Monotonic
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aNumContributor
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 565
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 565
    functionName: TimeSyncNode::RegisterLocalSyncOperation
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp
    functionUses: 0
    functionsReached:
    - GetClock_Monotonic
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::RegisterLocalSyncOperation(const uint8_t aNumContributor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeChangeNotification::TimeChangeNotification
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:572,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:576,1
    - Dst: GetExchangeMgr
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:580,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:581,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:588,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:589,1
    - Dst: TimeChangeNotification::Encode
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:591,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:592,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:595,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:597,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:600,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:603,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp:607,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - aEncryptionType
    - aKeyId
    argTypes:
    - uint8_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 609
      start: 567
    functionDepth: 3
    functionLinenumber: 567
    functionLinenumberEnd: 609
    functionName: TimeSyncNode::MulticastTimeChangeNotification
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp
    functionUses: 1
    functionsReached:
    - TimeChangeNotification::Encode
    - TimeChangeNotification::TimeChangeNotification
    - nl::Weave::System::PacketBuffer::Free
    - ExchangeContext*::Close
    - VerifyOrExit
    - ExitNow
    - ExchangeContext*::SendMessage
    - GetExchangeMgr
    - SuccessOrExit
    - WeaveLogFunctError
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: TimeSyncNode::MulticastTimeChangeNotification(const uint8_t aEncryptionType,
      const uint16_t aKeyId) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 172
    functionName: Weave::Profiles::Time::TimeZoneUtcOffset
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: TimeZoneUtcOffset
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 200
    functionName: Weave::Profiles::Time::TimeChangeNotification
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: TimeChangeNotification
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 262
    functionName: Weave::Profiles::Time::TimeSyncRequest
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: TimeSyncRequest
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 338
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 338
    functionName: Weave::Profiles::Time::TimeSyncResponse
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: TimeSyncResponse
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 352
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 352
    functionName: Weave::Profiles::Time::_TimeSyncNodeBase::GetFabricState
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WeaveFabricState
    signature: '* GetFabricState(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 357
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 357
    functionName: Weave::Profiles::Time::_TimeSyncNodeBase::GetExchangeMgr
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WeaveExchangeManager
    signature: '* GetExchangeMgr(void) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 423
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 423
    functionName: Weave::Profiles::Time::Contact
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct NL_DLL_EXPORT
    signature: Contact
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 432
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 432
    functionName: Weave::Profiles::Time::ServingNode
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct NL_DLL_EXPORT
    signature: ServingNode
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 1272
    functionName: Weave::Profiles::Time::_TimeSyncNodeBase
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: _TimeSyncNodeBase
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: timesync_t
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:68,1
    - Dst: timesync_t
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:78,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:90,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:94,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - aLocalTime
    - aUtcTime
    argTypes:
    - timesync_t*
    - timesync_t
    constantsTouched: []
    func_position:
      end: 97
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 97
    functionName: TimeZoneUtcOffset::GetCurrentLocalTime
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - timesync_t
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TimeZoneUtcOffset::GetCurrentLocalTime(timesync_t * const aLocalTime,
      const timesync_t aUtcTime) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:115,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:117,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:124,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:129,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:137,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:147,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:153,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:169,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:172,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:175,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:182,1
    - Dst: timesync_t
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:184,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:188,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:194,1
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:209,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:210,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 61
    argCount: 2
    argNames:
    - aInputBuf
    - aDataSize
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 213
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 213
    functionName: TimeZoneUtcOffset::Decode
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp
    functionUses: 0
    functionsReached:
    - timesync_t
    - IgnoreUnusedVariable
    - ExitNow
    - memcpy
    - WeaveLogDetail
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TimeZoneUtcOffset::Decode(const uint8_t * const aInputBuf, const uint32_t
      aDataSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:229,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:236,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:242,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:248,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:250,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:270,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:273,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:275,1
    - Dst: nl::Weave::Platform::Divide
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:284,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:287,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:291,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:295,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:302,1
    - Dst: memcpy
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:309,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp:318,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 60
    argCount: 2
    argNames:
    - aOutputBuf
    - aDataSize
    argTypes:
    - uint8_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 321
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 321
    functionName: TimeZoneUtcOffset::Encode
    functionSourceFile: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Platform::Divide
    - memcpy
    - WeaveLogFunctError
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TimeZoneUtcOffset::Encode(uint8_t * const aOutputBuf, uint32_t * const
      aDataSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatReceiver::WeaveHeartbeatReceiver
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatReceiver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveHeartbeatReceiver::WeaveHeartbeatReceiver()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatReceiver.cpp:55,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatReceiver.cpp:57,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatReceiver.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 67
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 67
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatReceiver::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatReceiver.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - RegisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveHeartbeatReceiver::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatReceiver.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatReceiver::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatReceiver.cpp
    functionUses: 0
    functionsReached:
    - UnregisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveHeartbeatReceiver::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatReceiver.cpp:109,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatReceiver.cpp:110,1
    - Dst: static_cast<WeaveHeartbeatReceiver *>
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatReceiver.cpp:112,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatReceiver.cpp:116,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatReceiver.cpp:117,1
    - Dst: WeaveHeartbeatReceiver*::OnHeartbeatReceived
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatReceiver.cpp:119,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatReceiver.cpp:124,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatReceiver.cpp:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 131
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 131
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatReceiver::HandleHeartbeat
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatReceiver.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::Read8
    - nl::Weave::System::PacketBuffer::Free
    - ExchangeContext*::Close
    - VerifyOrExit
    - PacketBuffer*::Start
    - static_cast<WeaveHeartbeatReceiver *>
    - WeaveHeartbeatReceiver*::OnHeartbeatReceived
    linkageType: ''
    returnType: void
    signature: "WeaveHeartbeatReceiver::HandleHeartbeat(ExchangeContext *ec, const
      IPPacketInfo *pktInfo,\n        const WeaveMessageInfo *msgInfo, uint32_t profileId,
      uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 142
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeaveHeartbeatSender
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeat.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: nl::Weave::Profiles::Heartbeat::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeat.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeat.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: nl::Weave::Profiles::Heartbeat::Clear
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeat.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 189
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatReceiver
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeaveHeartbeatReceiver
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::GetBinding
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Binding
    signature: '*WeaveHeartbeatSender::GetBinding() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::GetRequestAck
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WeaveHeartbeatSender::GetRequestAck() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::SetRequestAck
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveHeartbeatSender::SetRequestAck(bool val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::GetSubscriptionState
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: WeaveHeartbeatSender::GetSubscriptionState() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::SetSubscriptionState
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveHeartbeatSender::SetSubscriptionState(uint8_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::GetEventCallback
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WeaveHeartbeatSender::EventCallback
    signature: WeaveHeartbeatSender::GetEventCallback() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eventCallback
    argTypes:
    - EventCallback
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::SetEventCallback
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveHeartbeatSender::SetEventCallback(EventCallback eventCallback)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 51
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::WeaveHeartbeatSender
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveHeartbeatSender::WeaveHeartbeatSender()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:71,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:73,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:74,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:75,1
    - Dst: Binding*::AddRef
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:82,1
    - Dst: SetProtocolLayerCallback
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:95,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:107,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:109,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:110,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:111,1
    - Dst: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::Shutdown
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 4
    argNames:
    - exchangeMgr
    - binding
    - eventCallback
    - appState
    argTypes:
    - WeaveExchangeManager*
    - Binding*
    - EventCallback
    - void*
    constantsTouched: []
    func_position:
      end: 121
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 121
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::Init
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp
    functionUses: 0
    functionsReached:
    - mEventCallback
    - OutEventParam::Clear
    - SetProtocolLayerCallback
    - VerifyOrExit
    - InEventParam::Clear
    - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::Shutdown
    - Binding*::AddRef
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveHeartbeatSender::Init(WeaveExchangeManager *exchangeMgr, Binding
      *binding, EventCallback eventCallback, void *appState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::StopHeartbeat
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:132,1
    - Dst: Abort
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:137,1
    - Dst: Release
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 152
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::Shutdown
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp
    functionUses: 1
    functionsReached:
    - Release
    - Abort
    - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::StopHeartbeat
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveHeartbeatSender::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' interval'
    - ' phase'
    - ' window'
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::GetConfiguration
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveHeartbeatSender::GetConfiguration(uint32_t& interval, uint32_t&
      phase, uint32_t& window) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - interval
    - phase
    - window
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 182
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::SetConfiguration
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveHeartbeatSender::SetConfiguration(uint32_t interval, uint32_t
      phase, uint32_t window)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:195,1
    - Dst: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::GetHeartbeatBase
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:197,1
    - Dst: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::ScheduleHeartbeat
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 203
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::StartHeartbeat
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::GetHeartbeatBase
    - VerifyOrExit
    - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::ScheduleHeartbeat
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveHeartbeatSender::StartHeartbeat()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:227,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 228
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::ScheduleHeartbeat
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint32_t>
    - MessageLayer::SystemLayer::StartTimer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveHeartbeatSender::ScheduleHeartbeat()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageLayer::SystemLayer::CancelTimer
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 241
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::StopHeartbeat
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp
    functionUses: 1
    functionsReached:
    - MessageLayer::SystemLayer::CancelTimer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveHeartbeatSender::StopHeartbeat()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:255,1
    - Dst: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::SendHeartbeat
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 261
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::SendHeartbeatNow
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::SendHeartbeat
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveHeartbeatSender::SendHeartbeatNow()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 279
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 279
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::GetHeartbeatBase
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: WeaveHeartbeatSender::GetHeartbeatBase()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Layer::GetClock_RealTimeMS
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:289,1
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 295
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::GetPlatformTimeMs
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Layer::GetClock_RealTimeMS
    - nl::Weave::System::Layer::GetClock_MonotonicMS
    linkageType: ''
    returnType: uint64_t
    signature: WeaveHeartbeatSender::GetPlatformTimeMs(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - minVal
    - maxVal
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 319
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 319
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::GetRandomInterval
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp
    functionUses: 0
    functionsReached:
    - rand
    linkageType: ''
    returnType: uint32_t
    signature: WeaveHeartbeatSender::GetRandomInterval(uint32_t minVal, uint32_t maxVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<WeaveHeartbeatSender*>
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:328,1
    - Dst: WeaveHeartbeatSender*::SendHeartbeat
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 331
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 331
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::HandleHeartbeatTimer
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<WeaveHeartbeatSender*>
    - WeaveHeartbeatSender*::SendHeartbeat
    linkageType: ''
    returnType: void
    signature: WeaveHeartbeatSender::HandleHeartbeatTimer(System::Layer* aSystemLayer,
      void* aAppState, System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Abort
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:347,1
    - Dst: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::ScheduleHeartbeat
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:354,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:355,1
    - Dst: CanBePrepared
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:359,1
    - Dst: RequestPrepare
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:370,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:371,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:374,1
    - Dst: IsPreparing
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:378,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:380,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:385,1
    - Dst: IsReady
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:385,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:393,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:395,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:397,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:401,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:402,1
    - Dst: nl::Weave::Encoding::Put8
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:405,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:405,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:406,1
    - Dst: NewExchangeContext
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:409,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:410,1
    - Dst: SetAutoRequestAck
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:419,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:428,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:430,1
    - Dst: AutoRequestAck
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:432,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:439,1
    - Dst: Abort
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:452,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:457,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:460,1
    - Dst: mEventCallback
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:462,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 54
    argCount: 1
    argNames:
    - scheduleNextHeartbeat
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 464
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 464
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::SendHeartbeat
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp
    functionUses: 1
    functionsReached:
    - RequestPrepare
    - AutoRequestAck
    - nl::Weave::Encoding::Put8
    - SendMessage
    - mEventCallback
    - nl::Weave::System::PacketBuffer::Free
    - Abort
    - VerifyOrExit
    - SetAutoRequestAck
    - SuccessOrExit
    - PacketBuffer*::SetDataLength
    - IsReady
    - ExitNow
    - InEventParam::Clear
    - CanBePrepared
    - IsPreparing
    - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::ScheduleHeartbeat
    - OutEventParam::Clear
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - PacketBuffer*::Start
    - NewExchangeContext
    linkageType: ''
    returnType: void
    signature: WeaveHeartbeatSender::SendHeartbeat(bool scheduleNextHeartbeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - appState
    - eventType
    - ' inParam'
    - ' outParam'
    argTypes:
    - void*
    - EventType
    - InEventParam
    - OutEventParam
    constantsTouched: []
    func_position:
      end: 475
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 475
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::DefaultEventHandler
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveHeartbeatSender::DefaultEventHandler(void *appState, EventType
      eventType, const InEventParam& inParam, OutEventParam& outParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveHeartbeatSender*::SendHeartbeat
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:489,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:497,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:501,1
    - Dst: WeaveHeartbeatSender*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:504,1
    - Dst: nl::Weave::Binding::DefaultEventHandler
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - appState
    - eventType
    - ' inParam'
    - ' outParam'
    argTypes:
    - void*
    - Binding::EventType
    - Binding::InEventParam
    - Binding::OutEventParam
    constantsTouched: []
    func_position:
      end: 511
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 511
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::BindingEventCallback
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp
    functionUses: 0
    functionsReached:
    - WeaveHeartbeatSender*::SendHeartbeat
    - OutEventParam::Clear
    - WeaveHeartbeatSender*::mEventCallback
    - InEventParam::Clear
    - nl::Weave::Binding::DefaultEventHandler
    linkageType: ''
    returnType: void
    signature: WeaveHeartbeatSender::BindingEventCallback(void *appState, Binding::EventType
      eventType, const Binding::InEventParam& inParam, Binding::OutEventParam& outParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:522,1
    - Dst: WeaveHeartbeatSender*::mExchangeCtx::Abort
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:524,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:527,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:530,1
    - Dst: WeaveHeartbeatSender*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ec
    - msgCtxt
    argTypes:
    - ExchangeContext*
    - void*
    constantsTouched: []
    func_position:
      end: 533
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 533
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::HandleAckReceived
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp
    functionUses: 0
    functionsReached:
    - WeaveHeartbeatSender*::mExchangeCtx::Abort
    - WeaveHeartbeatSender*::mEventCallback
    - OutEventParam::Clear
    - InEventParam::Clear
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: WeaveHeartbeatSender::HandleAckReceived(ExchangeContext *ec, void *msgCtxt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:544,1
    - Dst: WeaveHeartbeatSender*::mExchangeCtx::Abort
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:546,1
    - Dst: InEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:549,1
    - Dst: OutEventParam::Clear
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:553,1
    - Dst: WeaveHeartbeatSender*::mEventCallback
      Src: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - ec
    - err
    - msgCtxt
    argTypes:
    - ExchangeContext*
    - WEAVE_ERROR
    - void*
    constantsTouched: []
    func_position:
      end: 556
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 556
    functionName: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::HandleSendError
    functionSourceFile: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp
    functionUses: 0
    functionsReached:
    - WeaveHeartbeatSender*::mExchangeCtx::Abort
    - WeaveHeartbeatSender*::mEventCallback
    - OutEventParam::Clear
    - InEventParam::Clear
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: WeaveHeartbeatSender::HandleSendError(ExchangeContext *ec, WEAVE_ERROR
      err, void *msgCtxt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setvbuf
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: UseStdoutLineBuffering
    functionSourceFile: /src/openweave-core/src/examples/weave-app-common.cpp
    functionUses: 0
    functionsReached:
    - setvbuf
    linkageType: ''
    returnType: void
    signature: UseStdoutLineBuffering()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:61,1
    - Dst: exit
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:62,1
    - Dst: Init
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:65,1
    - Dst: Init
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:67,1
    - Dst: Init
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:69,1
    - Dst: printf
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:72,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:72,1
    - Dst: exit
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:73,1
    - Dst: GlobalId
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:78,1
    - Dst: IPv6InterfaceIdToWeaveNodeId
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:79,1
    - Dst: InterfaceId
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:79,1
    - Dst: Subnet
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:80,1
    - Dst: Init
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:90,1
    - Dst: printf
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:93,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:93,1
    - Dst: exit
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:94,1
    - Dst: Init
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:99,1
    - Dst: printf
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:102,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:102,1
    - Dst: exit
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:103,1
    - Dst: UseStdoutLineBuffering
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - listenTCP
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 107
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 107
    functionName: InitializeWeave
    functionSourceFile: /src/openweave-core/src/examples/weave-app-common.cpp
    functionUses: 0
    functionsReached:
    - GlobalId
    - UseStdoutLineBuffering
    - exit
    - IPv6InterfaceIdToWeaveNodeId
    - Subnet
    - printf
    - Init
    - nl::ErrorStr
    - InterfaceId
    linkageType: ''
    returnType: void
    signature: InitializeWeave(bool listenTCP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Shutdown
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:113,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:115,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:117,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 120
    functionName: ShutdownWeave
    functionSourceFile: /src/openweave-core/src/examples/weave-app-common.cpp
    functionUses: 0
    functionsReached:
    - Shutdown
    linkageType: ''
    returnType: void
    signature: ShutdownWeave(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: State
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:129,1
    - Dst: PrepareSelect
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:130,1
    - Dst: PrepareSelect
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:133,1
    - Dst: printf
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:138,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:138,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:138,1
    - Dst: State
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:142,1
    - Dst: HandleSelectResult
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:144,1
    - Dst: HandleSelectResult
      Src: /src/openweave-core/src/examples/weave-app-common.cpp:149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 152
    functionName: DriveIO
    functionSourceFile: /src/openweave-core/src/examples/weave-app-common.cpp
    functionUses: 0
    functionsReached:
    - State
    - HandleSelectResult
    - PrepareSelect
    - printf
    - nl::Weave::System::MapErrorPOSIX
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: DriveIO(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aKey
    - aValue
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: nl::Weave::Platform::PersistedStorage::Read
    functionSourceFile: /src/openweave-core/src/examples/weave-app-common.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Read(const char *aKey, uint32_t &aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aKey
    - aValue
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: nl::Weave::Platform::PersistedStorage::Write
    functionSourceFile: /src/openweave-core/src/examples/weave-app-common.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Write(const char *aKey, uint32_t aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/openweave-core/src/examples/weave-app-common.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: Now
    functionSourceFile: /src/openweave-core/src/examples/weave-app-common.h
    functionUses: 327
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: uint64_t
    signature: Now(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveNodeAddrToStr
      Src: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp:58,1
    - Dst: printf
      Src: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp:60,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - nodeId
    - nodeAddr
    - payload
    argTypes:
    - uint64_t
    - IPAddress
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: HandleEchoRequestReceived
    functionSourceFile: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp
    functionUses: 0
    functionsReached:
    - printf
    - WeaveNodeAddrToStr
    - PacketBuffer*::DataLength
    linkageType: ''
    returnType: void
    signature: HandleEchoRequestReceived(uint64_t nodeId, IPAddress nodeAddr, PacketBuffer
      *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveNodeAddrToStr
      Src: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp:68,1
    - Dst: printf
      Src: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - msgLayer
    - con
    argTypes:
    - WeaveMessageLayer*
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: HandleConnectionReceived
    functionSourceFile: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp
    functionUses: 3
    functionsReached:
    - printf
    - WeaveNodeAddrToStr
    linkageType: ''
    returnType: void
    signature: HandleConnectionReceived(WeaveMessageLayer *msgLayer, WeaveConnection
      *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveNodeAddrToStr
      Src: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp:79,1
    - Dst: printf
      Src: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp:82,1
    - Dst: printf
      Src: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp:84,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp:84,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 87
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 87
    functionName: HandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp
    functionUses: 2
    functionsReached:
    - printf
    - WeaveNodeAddrToStr
    - WeaveConnection*::Close
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp:95,1
    - Dst: InitializeWeave
      Src: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp:99,1
    - Dst: Init
      Src: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp:106,1
    - Dst: printf
      Src: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp:109,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp:109,1
    - Dst: exit
      Src: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp:110,1
    - Dst: printf
      Src: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp:116,1
    - Dst: DriveIO
      Src: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp:120,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp:125,1
    - Dst: ShutdownWeave
      Src: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 132
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 132
    functionName: main
    functionSourceFile: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp
    functionUses: 0
    functionsReached:
    - InitializeWeave
    - exit
    - DriveIO
    - nl::Inet::IPAddress::FromString
    - ShutdownWeave
    - Shutdown
    - printf
    - Init
    - nl::ErrorStr
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: EchoIntervalExpired
    functionSourceFile: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp
    functionUses: 0
    functionsReached:
    - Now
    linkageType: ''
    returnType: bool
    signature: EchoIntervalExpired(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:105,1
    - Dst: printf
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:108,1
    - Dst: SetDataLength
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' payloadBuf'
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 119
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 119
    functionName: FormulateEchoRequestBuffer
    functionSourceFile: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp
    functionUses: 0
    functionsReached:
    - SetDataLength
    - printf
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: FormulateEchoRequestBuffer(PacketBuffer*& payloadBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:126,1
    - Dst: FormulateEchoRequestBuffer
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:128,1
    - Dst: SendEchoRequest
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:136,1
    - Dst: printf
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:149,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 121
    functionDepth: 4
    functionLinenumber: 121
    functionLinenumberEnd: 152
    functionName: SendEchoRequest
    functionSourceFile: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp
    functionUses: 4
    functionsReached:
    - Now
    - SendEchoRequest
    - printf
    - FormulateEchoRequestBuffer
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: SendEchoRequest(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveNodeAddrToStr
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:164,1
    - Dst: printf
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:166,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - nodeId
    - nodeAddr
    - payload
    argTypes:
    - uint64_t
    - IPAddress
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 169
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 169
    functionName: HandleEchoResponseReceived
    functionSourceFile: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp
    functionUses: 0
    functionsReached:
    - printf
    - WeaveNodeAddrToStr
    - PacketBuffer*::DataLength
    linkageType: ''
    returnType: void
    signature: HandleEchoResponseReceived(uint64_t nodeId, IPAddress nodeAddr, PacketBuffer
      *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewConnection
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:181,1
    - Dst: printf
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:184,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:184,1
    - Dst: Now
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:185,1
    - Dst: Connect
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:193,1
    - Dst: printf
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:196,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:196,1
    - Dst: Now
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:197,1
    - Dst: CloseClientConnection
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 204
    functionName: StartClientConnection
    functionSourceFile: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp
    functionUses: 0
    functionsReached:
    - Now
    - Connect
    - CloseClientConnection
    - printf
    - NewConnection
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: StartClientConnection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:211,1
    - Dst: printf
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 217
    functionName: CloseClientConnection
    functionSourceFile: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp
    functionUses: 1
    functionsReached:
    - Close
    - printf
    linkageType: ''
    returnType: void
    signature: CloseClientConnection(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveNodeAddrToStr
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:223,1
    - Dst: printf
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:227,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:227,1
    - Dst: Now
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:228,1
    - Dst: CloseClientConnection
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:229,1
    - Dst: printf
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 242
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 242
    functionName: HandleConnectionComplete
    functionSourceFile: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp
    functionUses: 0
    functionsReached:
    - Now
    - WeaveNodeAddrToStr
    - CloseClientConnection
    - printf
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveNodeAddrToStr
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:248,1
    - Dst: printf
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:251,1
    - Dst: printf
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:253,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:253,1
    - Dst: CloseClientConnection
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 261
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 261
    functionName: HandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp
    functionUses: 2
    functionsReached:
    - printf
    - WeaveNodeAddrToStr
    - CloseClientConnection
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:269,1
    - Dst: InitializeWeave
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:273,1
    - Dst: Init
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:276,1
    - Dst: printf
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:279,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:279,1
    - Dst: exit
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:280,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:288,1
    - Dst: IPv6InterfaceIdToWeaveNodeId
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:291,1
    - Dst: InterfaceId
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:291,1
    - Dst: StartClientConnection
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:300,1
    - Dst: DriveIO
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:302,1
    - Dst: exit
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:306,1
    - Dst: SendEchoRequest
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:314,1
    - Dst: EchoIntervalExpired
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:317,1
    - Dst: DriveIO
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:319,1
    - Dst: printf
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:325,1
    - Dst: CloseClientConnection
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:332,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:335,1
    - Dst: ShutdownWeave
      Src: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp:338,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 341
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 341
    functionName: main
    functionSourceFile: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp
    functionUses: 0
    functionsReached:
    - InitializeWeave
    - exit
    - DriveIO
    - IPv6InterfaceIdToWeaveNodeId
    - SendEchoRequest
    - nl::Inet::IPAddress::FromString
    - CloseClientConnection
    - ShutdownWeave
    - Shutdown
    - printf
    - Init
    - EchoIntervalExpired
    - StartClientConnection
    - nl::ErrorStr
    - InterfaceId
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogRetain
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBleApplicationDelegate.cpp:43,1
    - Dst: RunOnBluezIOThread
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBleApplicationDelegate.cpp:45,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBleApplicationDelegate.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - connObj
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: nl::Ble::Platform::BlueZ::BluezBleApplicationDelegate::NotifyWeaveConnectionClosed
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezBleApplicationDelegate.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogRetain
    - RunOnBluezIOThread
    - WeaveLogError
    linkageType: ''
    returnType: void
    signature: BluezBleApplicationDelegate::NotifyWeaveConnectionClosed(BLE_CONNECTION_OBJECT
      connObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Ble::Platform::BlueZ::CloseBleconnection
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBleApplicationDelegate.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aArg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: nl::Ble::Platform::BlueZ::CloseBleconnectionCB
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezBleApplicationDelegate.cpp
    functionUses: 0
    functionsReached:
    - nl::Ble::Platform::BlueZ::CloseBleconnection
    linkageType: ''
    returnType: int
    signature: CloseBleconnectionCB(void *aArg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dbus_message_iter_append_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:149,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:150,1
    - Dst: dbus_message_iter_open_container
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:152,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:156,1
    - Dst: dbus_message_iter_close_container
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:158,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:159,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - iter
    - bluezData
    argTypes:
    - DBusMessageIter*
    - void*
    constantsTouched: []
    func_position:
      end: 167
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 167
    functionName: nl::Ble::Platform::BlueZ::WeaveRegisterSetup
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - dbus_message_iter_append_basic
    - dbus_message_iter_open_container
    - VerifyOrExit
    - dbus_message_iter_close_container
    linkageType: ''
    returnType: void
    signature: WeaveRegisterSetup(DBusMessageIter * iter, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DBusConnection *>
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:171,1
    - Dst: dbus_error_init
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:173,1
    - Dst: dbus_set_error_from_message
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:175,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:177,1
    - Dst: dbus_error_free
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:178,1
    - Dst: g_dbus_unregister_interface
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:180,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:182,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - message
    - bluezData
    argTypes:
    - DBusMessage*
    - void*
    constantsTouched: []
    func_position:
      end: 189
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 189
    functionName: nl::Ble::Platform::BlueZ::WeaveRegisterReply
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - dbus_set_error_from_message
    - static_cast<DBusConnection *>
    - dbus_error_free
    - WeaveLogProgress
    - dbus_error_init
    - g_dbus_unregister_interface
    linkageType: ''
    returnType: void
    signature: WeaveRegisterReply(DBusMessage * message, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dbus_message_iter_append_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:197,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:198,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - iter
    - bluezData
    argTypes:
    - DBusMessageIter*
    - void*
    constantsTouched: []
    func_position:
      end: 206
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 206
    functionName: nl::Ble::Platform::BlueZ::WeaveUnregisterSetup
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - dbus_message_iter_append_basic
    - VerifyOrExit
    linkageType: ''
    returnType: void
    signature: WeaveUnregisterSetup(DBusMessageIter *iter, void *bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dbus_error_init
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:212,1
    - Dst: dbus_set_error_from_message
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:214,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:216,1
    - Dst: g_dbus_unregister_interface
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:219,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:221,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:227,1
    - Dst: dbus_error_free
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - message
    - bluezData
    argTypes:
    - DBusMessage*
    - void*
    constantsTouched: []
    func_position:
      end: 230
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 230
    functionName: nl::Ble::Platform::BlueZ::WeaveUnregisterReply
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - dbus_set_error_from_message
    - WeaveLogError
    - dbus_error_free
    - WeaveLogProgress
    - dbus_error_init
    - g_dbus_unregister_interface
    linkageType: ''
    returnType: void
    signature: WeaveUnregisterReply(DBusMessage *message, void *bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dbus_message_iter_append_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:234,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - property
    - iter
    - bluezData
    argTypes:
    - GDBusPropertyTable*
    - DBusMessageIter*
    - void*
    constantsTouched: []
    func_position:
      end: 241
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 241
    functionName: nl::Ble::Platform::BlueZ::WeaveAdvertisingGetType
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - dbus_message_iter_append_basic
    linkageType: ''
    returnType: gboolean
    signature: WeaveAdvertisingGetType(const GDBusPropertyTable * property, DBusMessageIter
      * iter, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dbus_message_iter_open_container
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:249,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:250,1
    - Dst: dbus_message_iter_append_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:252,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:253,1
    - Dst: dbus_message_iter_close_container
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:255,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:256,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - property
    - iter
    - bluezData
    argTypes:
    - GDBusPropertyTable*
    - DBusMessageIter*
    - void*
    constantsTouched: []
    func_position:
      end: 266
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 266
    functionName: nl::Ble::Platform::BlueZ::GetWeaveUUIDs
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - dbus_message_iter_append_basic
    - dbus_message_iter_open_container
    - VerifyOrExit
    - dbus_message_iter_close_container
    linkageType: ''
    returnType: gboolean
    signature: GetWeaveUUIDs(const GDBusPropertyTable * property, DBusMessageIter
      * iter, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - property
    - bluezData
    argTypes:
    - GDBusPropertyTable*
    - void*
    constantsTouched: []
    func_position:
      end: 278
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 278
    functionName: nl::Ble::Platform::BlueZ::WeaveServiceDataCheck
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: WeaveServiceDataCheck(const GDBusPropertyTable * property, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dbus_message_iter_open_container
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:290,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:291,1
    - Dst: dbus_message_iter_open_container
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:293,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:294,1
    - Dst: dbus_type_is_fixed
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:296,1
    - Dst: dbus_message_iter_append_fixed_array
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:298,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:299,1
    - Dst: dbus_message_iter_append_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:305,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:306,1
    - Dst: dbus_message_iter_close_container
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:310,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:311,1
    - Dst: dbus_message_iter_close_container
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:313,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:314,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:320,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - iter
    - type
    - val
    - nElements
    argTypes:
    - DBusMessageIter*
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 324
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 324
    functionName: nl::Ble::Platform::BlueZ::AppendArrayVariant
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - dbus_message_iter_append_basic
    - WeaveLogError
    - dbus_message_iter_open_container
    - dbus_type_is_fixed
    - VerifyOrExit
    - dbus_message_iter_close_container
    - dbus_message_iter_append_fixed_array
    linkageType: ''
    returnType: gboolean
    signature: AppendArrayVariant(DBusMessageIter * iter, int type, void * val, int
      nElements)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dbus_message_iter_open_container
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:332,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:333,1
    - Dst: dbus_message_iter_append_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:335,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:336,1
    - Dst: nl::Ble::Platform::BlueZ::AppendArrayVariant
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:338,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:339,1
    - Dst: dbus_message_iter_close_container
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:341,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:342,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 6
    argNames:
    - dict
    - keyType
    - key
    - type
    - val
    - nElements
    argTypes:
    - DBusMessageIter*
    - int
    - void*
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 352
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 352
    functionName: nl::Ble::Platform::BlueZ::DictAppendBasicArray
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - dbus_message_iter_append_basic
    - WeaveLogError
    - dbus_message_iter_open_container
    - VerifyOrExit
    - nl::Ble::Platform::BlueZ::AppendArrayVariant
    - dbus_message_iter_close_container
    linkageType: ''
    returnType: gboolean
    signature: DictAppendBasicArray(DBusMessageIter * dict, int keyType, const void
      * key, int type, void * val, int nElements)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dbus_message_iter_open_container
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:360,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:361,1
    - Dst: nl::Ble::Platform::BlueZ::DictAppendBasicArray
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:363,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:365,1
    - Dst: dbus_message_iter_close_container
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:367,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:368,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - property
    - iter
    - bluezData
    argTypes:
    - GDBusPropertyTable*
    - DBusMessageIter*
    - void*
    constantsTouched: []
    func_position:
      end: 378
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 378
    functionName: nl::Ble::Platform::BlueZ::GetWeaveServiceData
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - nl::Ble::Platform::BlueZ::DictAppendBasicArray
    - dbus_message_iter_open_container
    - VerifyOrExit
    - dbus_message_iter_close_container
    linkageType: ''
    returnType: gboolean
    signature: GetWeaveServiceData(const GDBusPropertyTable * property, DBusMessageIter
      * iter, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - property
    - bluezData
    argTypes:
    - GDBusPropertyTable*
    - void*
    constantsTouched: []
    func_position:
      end: 390
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 390
    functionName: nl::Ble::Platform::BlueZ::WeaveNameCheck
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gboolean
    signature: WeaveNameCheck(const GDBusPropertyTable * property, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dbus_message_iter_append_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:394,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - property
    - iter
    - bluezData
    argTypes:
    - GDBusPropertyTable*
    - DBusMessageIter*
    - void*
    constantsTouched: []
    func_position:
      end: 402
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 402
    functionName: nl::Ble::Platform::BlueZ::WeaveGetName
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - dbus_message_iter_append_basic
    linkageType: ''
    returnType: gboolean
    signature: WeaveGetName(const GDBusPropertyTable * property, DBusMessageIter *
      iter, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: g_dbus_unregister_interface
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:406,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:408,1
    - Dst: dbus_message_new_method_return
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dbusConn
    - dbusMsg
    - bluezData
    argTypes:
    - DBusConnection*
    - DBusMessage*
    - void*
    constantsTouched: []
    func_position:
      end: 412
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 412
    functionName: nl::Ble::Platform::BlueZ::WeaveDestroyAdvertising
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - dbus_message_new_method_return
    - g_dbus_unregister_interface
    linkageType: ''
    returnType: DBusMessage
    signature: '* WeaveDestroyAdvertising(DBusConnection * dbusConn, DBusMessage *
      dbusMsg, void * bluezData)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: g_dbus_proxy_set_property_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:416,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 423
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 423
    functionName: nl::Ble::Platform::BlueZ::SetAlias
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - g_dbus_proxy_set_property_basic
    linkageType: ''
    returnType: gboolean
    signature: SetAlias(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: g_dbus_proxy_set_property_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:429,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 436
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 436
    functionName: nl::Ble::Platform::BlueZ::EnableDiscoverable
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - g_dbus_proxy_set_property_basic
    linkageType: ''
    returnType: gboolean
    signature: EnableDiscoverable(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: g_dbus_register_interface
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:443,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:445,1
    - Dst: g_dbus_proxy_method_call
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:447,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:448,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - dbusConn
    - proxy
    argTypes:
    - DBusConnection*
    - GDBusProxy*
    constantsTouched: []
    func_position:
      end: 458
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 458
    functionName: nl::Ble::Platform::BlueZ::AdvertisingRegister
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - g_dbus_register_interface
    - WeaveLogError
    - g_dbus_proxy_method_call
    - VerifyOrExit
    linkageType: ''
    returnType: gboolean
    signature: AdvertisingRegister(DBusConnection * dbusConn, GDBusProxy * proxy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: g_dbus_unregister_interface
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:462,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:464,1
    - Dst: dbus_message_new_method_return
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dbusConn
    - dbusMsg
    - bluezData
    argTypes:
    - DBusConnection*
    - DBusMessage*
    - void*
    constantsTouched: []
    func_position:
      end: 468
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 468
    functionName: nl::Ble::Platform::BlueZ::WeaveDestroyProfile
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - dbus_message_new_method_return
    - g_dbus_unregister_interface
    linkageType: ''
    returnType: DBusMessage
    signature: '* WeaveDestroyProfile(DBusConnection * dbusConn, DBusMessage * dbusMsg,
      void * bluezData)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dbus_message_iter_append_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:477,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:478,1
    - Dst: dbus_message_iter_open_container
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:480,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:484,1
    - Dst: dbus_message_iter_close_container
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:486,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:487,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - iter
    - bluezData
    argTypes:
    - DBusMessageIter*
    - void*
    constantsTouched: []
    func_position:
      end: 495
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 495
    functionName: nl::Ble::Platform::BlueZ::RegisterWeaveAppSetup
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - dbus_message_iter_append_basic
    - dbus_message_iter_open_container
    - VerifyOrExit
    - dbus_message_iter_close_container
    linkageType: ''
    returnType: void
    signature: RegisterWeaveAppSetup(DBusMessageIter * iter, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dbus_error_init
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:500,1
    - Dst: dbus_set_error_from_message
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:502,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:504,1
    - Dst: dbus_error_free
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - message
    - bluezData
    argTypes:
    - DBusMessage*
    - void*
    constantsTouched: []
    func_position:
      end: 507
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 507
    functionName: nl::Ble::Platform::BlueZ::RegisterWeaveAppReply
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - dbus_set_error_from_message
    - dbus_error_init
    - dbus_error_free
    linkageType: ''
    returnType: void
    signature: RegisterWeaveAppReply(DBusMessage * message, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: g_dbus_register_interface
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:514,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:515,1
    - Dst: g_dbus_proxy_method_call
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:517,1
    - Dst: g_dbus_unregister_interface
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:521,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:522,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:529,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - dbusConn
    - proxy
    argTypes:
    - DBusConnection*
    - GDBusProxy*
    constantsTouched: []
    func_position:
      end: 533
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 533
    functionName: nl::Ble::Platform::BlueZ::SetupWeaveApp
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - VerifyOrExit
    - ExitNow
    - g_dbus_proxy_method_call
    - g_dbus_unregister_interface
    - g_dbus_register_interface
    linkageType: ''
    returnType: gboolean
    signature: SetupWeaveApp(DBusConnection * dbusConn, GDBusProxy * proxy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Characteristic *>
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:537,1
    - Dst: g_free
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:540,1
    - Dst: g_free
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:541,1
    - Dst: g_free
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:542,1
    - Dst: g_strfreev
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:543,1
    - Dst: g_free
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:544,1
    - Dst: g_free
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - bluezData
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 547
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 547
    functionName: nl::Ble::Platform::BlueZ::WeaveCharacteristicDestroy
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Characteristic *>
    - g_strfreev
    - g_free
    linkageType: ''
    returnType: void
    signature: WeaveCharacteristicDestroy(void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Service *>
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:551,1
    - Dst: dbus_message_iter_append_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:552,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - property
    - iter
    - bluezData
    argTypes:
    - GDBusPropertyTable*
    - DBusMessageIter*
    - void*
    constantsTouched: []
    func_position:
      end: 559
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 559
    functionName: nl::Ble::Platform::BlueZ::WeaveServiceGetUUID
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - dbus_message_iter_append_basic
    - static_cast<Service *>
    linkageType: ''
    returnType: gboolean
    signature: WeaveServiceGetUUID(const GDBusPropertyTable * property, DBusMessageIter
      * iter, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Service *>
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:563,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:568,1
    - Dst: dbus_message_iter_append_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:572,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:573,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - property
    - iter
    - bluezData
    argTypes:
    - GDBusPropertyTable*
    - DBusMessageIter*
    - void*
    constantsTouched: []
    func_position:
      end: 583
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 583
    functionName: nl::Ble::Platform::BlueZ::WeaveServiceGetPrimary
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - dbus_message_iter_append_basic
    - VerifyOrExit
    - static_cast<Service *>
    linkageType: ''
    returnType: gboolean
    signature: WeaveServiceGetPrimary(const GDBusPropertyTable * property, DBusMessageIter
      * iter, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Service *>
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:587,1
    - Dst: g_free
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:590,1
    - Dst: g_free
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:591,1
    - Dst: g_free
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bluezData
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 594
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 594
    functionName: nl::Ble::Platform::BlueZ::ServiceDestroy
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Service *>
    - g_free
    linkageType: ''
    returnType: void
    signature: ServiceDestroy(void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:601,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:603,1
    - Dst: g_strdup_printf
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:606,1
    - Dst: g_strdup
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:608,1
    - Dst: g_dbus_register_interface
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:610,1
    - Dst: nl::Ble::Platform::BlueZ::ServiceDestroy
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:615,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - dbusConn
    argTypes:
    - DBusConnection*
    constantsTouched: []
    func_position:
      end: 629
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 629
    functionName: nl::Ble::Platform::BlueZ::RegisterWeaveService
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - nl::Ble::Platform::BlueZ::ServiceDestroy
    - WeaveLogError
    - g_strdup_printf
    - VerifyOrExit
    - g_dbus_register_interface
    - g_strdup
    - g_new0
    linkageType: ''
    returnType: gboolean
    signature: RegisterWeaveService(DBusConnection * dbusConn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Characteristic *>
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:633,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:637,1
    - Dst: dbus_message_iter_append_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:639,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:640,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - property
    - iter
    - bluezData
    argTypes:
    - GDBusPropertyTable*
    - DBusMessageIter*
    - void*
    constantsTouched: []
    func_position:
      end: 650
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 650
    functionName: nl::Ble::Platform::BlueZ::CharacteristicGetUUID
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Characteristic *>
    - dbus_message_iter_append_basic
    - WeaveLogError
    - VerifyOrExit
    linkageType: ''
    returnType: gboolean
    signature: CharacteristicGetUUID(const GDBusPropertyTable * property, DBusMessageIter
      * iter, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Characteristic *>
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:654,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:658,1
    - Dst: dbus_message_iter_append_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:660,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:661,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - property
    - iter
    - bluezData
    argTypes:
    - GDBusPropertyTable*
    - DBusMessageIter*
    - void*
    constantsTouched: []
    func_position:
      end: 671
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 671
    functionName: nl::Ble::Platform::BlueZ::CharacteristicGetService
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Characteristic *>
    - dbus_message_iter_append_basic
    - WeaveLogError
    - VerifyOrExit
    linkageType: ''
    returnType: gboolean
    signature: CharacteristicGetService(const GDBusPropertyTable * property, DBusMessageIter
      * iter, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Characteristic *>
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:675,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:680,1
    - Dst: dbus_message_iter_open_container
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:682,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:683,1
    - Dst: dbus_message_iter_append_fixed_array
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:685,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:686,1
    - Dst: dbus_message_iter_close_container
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:688,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:689,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:695,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - property
    - iter
    - bluezData
    argTypes:
    - GDBusPropertyTable*
    - DBusMessageIter*
    - void*
    constantsTouched: []
    func_position:
      end: 699
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 699
    functionName: nl::Ble::Platform::BlueZ::CharacteristicGetValue
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Characteristic *>
    - WeaveLogError
    - dbus_message_iter_open_container
    - VerifyOrExit
    - dbus_message_iter_close_container
    - dbus_message_iter_append_fixed_array
    linkageType: ''
    returnType: gboolean
    signature: CharacteristicGetValue(const GDBusPropertyTable * property, DBusMessageIter
      * iter, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Characteristic *>
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:703,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:708,1
    - Dst: dbus_message_iter_append_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:712,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:713,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - property
    - iter
    - bluezData
    argTypes:
    - GDBusPropertyTable*
    - DBusMessageIter*
    - void*
    constantsTouched: []
    func_position:
      end: 723
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 723
    functionName: nl::Ble::Platform::BlueZ::CharacteristicGetNotifying
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Characteristic *>
    - dbus_message_iter_append_basic
    - WeaveLogError
    - VerifyOrExit
    linkageType: ''
    returnType: gboolean
    signature: CharacteristicGetNotifying(const GDBusPropertyTable * property, DBusMessageIter
      * iter, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Characteristic *>
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:727,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:733,1
    - Dst: dbus_message_iter_open_container
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:735,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:736,1
    - Dst: dbus_message_iter_append_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:740,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:741,1
    - Dst: dbus_message_iter_close_container
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:745,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:746,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:752,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - property
    - iter
    - bluezData
    argTypes:
    - GDBusPropertyTable*
    - DBusMessageIter*
    - void*
    constantsTouched: []
    func_position:
      end: 756
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 756
    functionName: nl::Ble::Platform::BlueZ::CharacteristicGetFlags
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Characteristic *>
    - dbus_message_iter_append_basic
    - WeaveLogError
    - dbus_message_iter_open_container
    - VerifyOrExit
    - dbus_message_iter_close_container
    linkageType: ''
    returnType: gboolean
    signature: CharacteristicGetFlags(const GDBusPropertyTable * property, DBusMessageIter
      * iter, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Characteristic *>
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:760,1
    - Dst: g_dbus_create_reply
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:765,1
    - Dst: dbus_message_iter_init_append
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:766,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:768,1
    - Dst: dbus_message_iter_open_container
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:770,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:771,1
    - Dst: dbus_message_iter_append_fixed_array
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:773,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:774,1
    - Dst: dbus_message_iter_close_container
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:776,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:777,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:783,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - dbusConn
    - dbusMsg
    - bluezData
    argTypes:
    - DBusConnection*
    - DBusMessage*
    - void*
    constantsTouched: []
    func_position:
      end: 787
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 787
    functionName: nl::Ble::Platform::BlueZ::CharacteristicRead
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Characteristic *>
    - WeaveLogError
    - dbus_message_iter_init_append
    - dbus_message_iter_close_container
    - dbus_message_iter_open_container
    - VerifyOrExit
    - g_dbus_create_reply
    - dbus_message_iter_append_fixed_array
    linkageType: ''
    returnType: DBusMessage
    signature: '* CharacteristicRead(DBusConnection * dbusConn, DBusMessage * dbusMsg,
      void * bluezData)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Characteristic *>
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:792,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:799,1
    - Dst: io_get_fd
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:803,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:804,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:809,1
    - Dst: read
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:812,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:813,1
    - Dst: g_free
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:815,1
    - Dst: static_cast<uint8_t *>
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:816,1
    - Dst: g_memdup
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:816,1
    - Dst: strcmp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:819,1
    - Dst: nl::Ble::Platform::BlueZ::WoBLEz_WriteReceived
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:821,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:833,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 2
    argNames:
    - io
    - bluezData
    argTypes:
    - struct io*
    - void*
    constantsTouched: []
    func_position:
      end: 837
      start: 790
    functionDepth: 1
    functionLinenumber: 790
    functionLinenumberEnd: 837
    functionName: nl::Ble::Platform::BlueZ::WritePipeIORead
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Characteristic *>
    - g_memdup
    - static_cast<uint8_t *>
    - strcmp
    - VerifyOrExit
    - ExitNow
    - nl::Ble::Platform::BlueZ::WoBLEz_WriteReceived
    - WeaveLogDetail
    - g_free
    - read
    - io_get_fd
    linkageType: ''
    returnType: bool
    signature: WritePipeIORead(struct io * io, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Characteristic *>
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:843,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:844,1
    - Dst: io_destroy
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:850,1
    - Dst: io_destroy
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:855,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:861,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:871,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - io
    - bluezData
    argTypes:
    - struct io*
    - void*
    constantsTouched: []
    func_position:
      end: 875
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 875
    functionName: nl::Ble::Platform::BlueZ::PipeIODestroy
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Characteristic *>
    - WeaveLogError
    - VerifyOrExit
    - ExitNow
    - io_destroy
    linkageType: ''
    returnType: bool
    signature: PipeIODestroy(struct io * io, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:885,1
    - Dst: pipe2
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:887,1
    - Dst: strerror
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:889,1
    - Dst: g_dbus_create_error
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:890,1
    - Dst: strerror
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:890,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:891,1
    - Dst: dbus_message_has_member
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:894,1
    - Dst: dbus_message_has_member
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:900,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:909,1
    - Dst: io_new
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:912,1
    - Dst: close
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:915,1
    - Dst: close
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:916,1
    - Dst: strerror
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:917,1
    - Dst: g_dbus_create_error
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:918,1
    - Dst: strerror
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:918,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:919,1
    - Dst: io_set_close_on_destroy
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:922,1
    - Dst: io_set_read_handler
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:923,1
    - Dst: io_set_disconnect_handler
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:924,1
    - Dst: g_dbus_create_reply
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:926,1
    - Dst: close
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:929,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:940,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 2
    argNames:
    - characteristic
    - dbusMsg
    argTypes:
    - Characteristic*
    - DBusMessage*
    constantsTouched: []
    func_position:
      end: 944
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 944
    functionName: nl::Ble::Platform::BlueZ::CharacteristicCreatePipe
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - pipe2
    - VerifyOrExit
    - ExitNow
    - io_set_close_on_destroy
    - g_dbus_create_error
    - dbus_message_has_member
    - io_set_read_handler
    - close
    - io_new
    - g_dbus_create_reply
    - strerror
    - io_set_disconnect_handler
    linkageType: ''
    returnType: DBusMessage
    signature: '* CharacteristicCreatePipe(Characteristic * characteristic, DBusMessage
      * dbusMsg)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Characteristic *>
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:948,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:956,1
    - Dst: g_dbus_create_error
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:961,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:962,1
    - Dst: dbus_message_iter_init
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:965,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:966,1
    - Dst: dbus_message_iter_get_arg_type
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:966,1
    - Dst: dbus_message_iter_recurse
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:969,1
    - Dst: dbus_message_iter_get_arg_type
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:971,1
    - Dst: dbus_message_iter_recurse
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:973,1
    - Dst: dbus_message_iter_get_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:974,1
    - Dst: dbus_message_iter_next
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:975,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:976,1
    - Dst: dbus_message_iter_recurse
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:978,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:980,1
    - Dst: dbus_message_iter_get_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:982,1
    - Dst: dbus_message_iter_next
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:987,1
    - Dst: g_dbus_create_error
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:993,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:994,1
    - Dst: nl::Ble::Platform::BlueZ::CharacteristicCreatePipe
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:997,1
    - Dst: strcmp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1001,1
    - Dst: g_dbus_emit_property_changed
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1003,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1008,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1016,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 3
    argNames:
    - dbusConn
    - dbusMsg
    - bluezData
    argTypes:
    - DBusConnection*
    - DBusMessage*
    - void*
    constantsTouched: []
    func_position:
      end: 1020
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 1020
    functionName: nl::Ble::Platform::BlueZ::CharacteristicAcquireWrite
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Characteristic *>
    - g_dbus_emit_property_changed
    - strcmp
    - dbus_message_iter_get_basic
    - dbus_message_iter_recurse
    - dbus_message_iter_next
    - VerifyOrExit
    - ExitNow
    - g_dbus_create_error
    - dbus_message_iter_init
    - WeaveLogDetail
    - dbus_message_iter_get_arg_type
    - strcasecmp
    - nl::Ble::Platform::BlueZ::CharacteristicCreatePipe
    linkageType: ''
    returnType: DBusMessage
    signature: '* CharacteristicAcquireWrite(DBusConnection * dbusConn, DBusMessage
      * dbusMsg, void * bluezData)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Characteristic *>
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1024,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1028,1
    - Dst: g_dbus_create_error
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1033,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1034,1
    - Dst: g_dbus_create_error
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1040,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1041,1
    - Dst: nl::Ble::Platform::BlueZ::CharacteristicCreatePipe
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1044,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1050,1
    - Dst: strcmp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1052,1
    - Dst: nl::Ble::Platform::BlueZ::WoBLEz_SubscriptionChange
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1054,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1059,1
    - Dst: g_dbus_emit_property_changed
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1062,1
    - Dst: g_dbus_emit_property_changed
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1063,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1070,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - dbusConn
    - dbusMsg
    - bluezData
    argTypes:
    - DBusConnection*
    - DBusMessage*
    - void*
    constantsTouched: []
    func_position:
      end: 1074
      start: 1022
    functionDepth: 1
    functionLinenumber: 1022
    functionLinenumberEnd: 1074
    functionName: nl::Ble::Platform::BlueZ::CharacteristicAcquireNotify
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Characteristic *>
    - WeaveLogError
    - g_dbus_emit_property_changed
    - strcmp
    - WeaveLogProgress
    - VerifyOrExit
    - ExitNow
    - g_dbus_create_error
    - nl::Ble::Platform::BlueZ::CharacteristicCreatePipe
    - nl::Ble::Platform::BlueZ::WoBLEz_SubscriptionChange
    linkageType: ''
    returnType: DBusMessage
    signature: '* CharacteristicAcquireNotify(DBusConnection * dbusConn, DBusMessage
      * dbusMsg, void * bluezData)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Characteristic *>
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1079,1
    - Dst: dbus_message_iter_init
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1081,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1088,1
    - Dst: dbus_message_iter_get_arg_type
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1090,1
    - Dst: g_dbus_create_error
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1093,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1094,1
    - Dst: dbus_message_iter_recurse
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1097,1
    - Dst: dbus_message_iter_get_fixed_array
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1098,1
    - Dst: static_cast<uint8_t *>
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1099,1
    - Dst: g_memdup
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1099,1
    - Dst: g_dbus_emit_property_changed
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1102,1
    - Dst: strcmp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1104,1
    - Dst: nl::Ble::Platform::BlueZ::WoBLEz_WriteReceived
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1106,1
    - Dst: g_dbus_create_reply
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1109,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - dbusConn
    - dbusMsg
    - bluezData
    argTypes:
    - DBusConnection*
    - DBusMessage*
    - void*
    constantsTouched: []
    func_position:
      end: 1119
      start: 1077
    functionDepth: 1
    functionLinenumber: 1077
    functionLinenumberEnd: 1119
    functionName: nl::Ble::Platform::BlueZ::CharacteristicWrite
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Characteristic *>
    - WeaveLogError
    - g_dbus_emit_property_changed
    - strcmp
    - g_dbus_create_reply
    - dbus_message_iter_recurse
    - VerifyOrExit
    - ExitNow
    - g_dbus_create_error
    - dbus_message_iter_init
    - nl::Ble::Platform::BlueZ::WoBLEz_WriteReceived
    - dbus_message_iter_get_arg_type
    - dbus_message_iter_get_fixed_array
    - g_memdup
    - static_cast<uint8_t *>
    linkageType: ''
    returnType: DBusMessage
    signature: '* CharacteristicWrite(DBusConnection * dbusConn, DBusMessage * dbusMsg,
      void * bluezData)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Characteristic *>
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1123,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1127,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1129,1
    - Dst: g_dbus_emit_property_changed
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1132,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1133,1
    - Dst: strcmp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1135,1
    - Dst: nl::Ble::Platform::BlueZ::WoBLEz_SubscriptionChange
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1137,1
    - Dst: g_dbus_create_reply
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1140,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - dbusConn
    - dbusMsg
    - bluezData
    argTypes:
    - DBusConnection*
    - DBusMessage*
    - void*
    constantsTouched: []
    func_position:
      end: 1150
      start: 1121
    functionDepth: 1
    functionLinenumber: 1121
    functionLinenumberEnd: 1150
    functionName: nl::Ble::Platform::BlueZ::CharacteristicStartNotify
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Characteristic *>
    - WeaveLogError
    - g_dbus_emit_property_changed
    - strcmp
    - VerifyOrExit
    - WeaveLogDetail
    - g_dbus_create_reply
    - nl::Ble::Platform::BlueZ::WoBLEz_SubscriptionChange
    linkageType: ''
    returnType: DBusMessage
    signature: '* CharacteristicStartNotify(DBusConnection * dbusConn, DBusMessage
      * dbusMsg, void * bluezData)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Characteristic *>
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1154,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1158,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1160,1
    - Dst: g_dbus_emit_property_changed
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1163,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1164,1
    - Dst: strcmp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1166,1
    - Dst: nl::Ble::Platform::BlueZ::WoBLEz_SubscriptionChange
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1168,1
    - Dst: g_dbus_create_reply
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1171,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - dbusConn
    - dbusMsg
    - bluezData
    argTypes:
    - DBusConnection*
    - DBusMessage*
    - void*
    constantsTouched: []
    func_position:
      end: 1181
      start: 1152
    functionDepth: 1
    functionLinenumber: 1152
    functionLinenumberEnd: 1181
    functionName: nl::Ble::Platform::BlueZ::CharacteristicStopNotify
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Characteristic *>
    - WeaveLogError
    - g_dbus_emit_property_changed
    - strcmp
    - WeaveLogProgress
    - VerifyOrExit
    - g_dbus_create_reply
    - nl::Ble::Platform::BlueZ::WoBLEz_SubscriptionChange
    linkageType: ''
    returnType: DBusMessage
    signature: '* CharacteristicStopNotify(DBusConnection * dbusConn, DBusMessage
      * dbusMsg, void * bluezData)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Characteristic *>
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1186,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1187,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1189,1
    - Dst: nl::Ble::Platform::BlueZ::WoBLEz_IndicationConfirmation
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1190,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1196,1
    - Dst: g_dbus_create_reply
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - dbusConn
    - dbusMsg
    - bluezData
    argTypes:
    - DBusConnection*
    - DBusMessage*
    - void*
    constantsTouched: []
    func_position:
      end: 1200
      start: 1183
    functionDepth: 1
    functionLinenumber: 1183
    functionLinenumberEnd: 1200
    functionName: nl::Ble::Platform::BlueZ::CharacteristicIndicationConf
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Characteristic *>
    - VerifyOrExit
    - nl::Ble::Platform::BlueZ::WoBLEz_IndicationConfirmation
    - WeaveLogDetail
    - g_dbus_create_reply
    linkageType: ''
    returnType: DBusMessage
    signature: '* CharacteristicIndicationConf(DBusConnection * dbusConn, DBusMessage
      * dbusMsg, void * bluezData)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Characteristic *>
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1208,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1209,1
    - Dst: strcmp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1211,1
    - Dst: strcmp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1215,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1221,1
    - Dst: dbus_message_iter_append_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1224,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - property
    - iter
    - bluezData
    argTypes:
    - GDBusPropertyTable*
    - DBusMessageIter*
    - void*
    constantsTouched: []
    func_position:
      end: 1234
      start: 1203
    functionDepth: 0
    functionLinenumber: 1203
    functionLinenumberEnd: 1234
    functionName: nl::Ble::Platform::BlueZ::CharacteristicPipeAcquired
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - static_cast<Characteristic *>
    - dbus_message_iter_append_basic
    - strcmp
    - VerifyOrExit
    - WeaveLogDetail
    linkageType: ''
    returnType: gboolean
    signature: CharacteristicPipeAcquired(const GDBusPropertyTable * property, DBusMessageIter
      * iter, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: g_new0
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1243,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1245,1
    - Dst: g_strdup
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1248,1
    - Dst: g_strdup_printf
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1251,1
    - Dst: g_strdup_printf
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1252,1
    - Dst: g_strsplit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1253,1
    - Dst: g_dbus_register_interface
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1258,1
    - Dst: nl::Ble::Platform::BlueZ::WeaveCharacteristicDestroy
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1264,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - dbusConn
    - uuid
    - flags
    argTypes:
    - DBusConnection*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1276
      start: 1237
    functionDepth: 1
    functionLinenumber: 1237
    functionLinenumberEnd: 1276
    functionName: nl::Ble::Platform::BlueZ::RegisterWeaveCharacteristic
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - g_dbus_register_interface
    - g_strdup_printf
    - VerifyOrExit
    - nl::Ble::Platform::BlueZ::WeaveCharacteristicDestroy
    - g_strsplit
    - g_strdup
    - g_new0
    linkageType: ''
    returnType: Characteristic
    signature: '* RegisterWeaveCharacteristic(DBusConnection * dbusConn, const char
      * uuid, const char * flags)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - connection
    - bluezData
    argTypes:
    - DBusConnection*
    - void*
    constantsTouched: []
    func_position:
      end: 1281
      start: 1278
    functionDepth: 0
    functionLinenumber: 1278
    functionLinenumberEnd: 1281
    functionName: nl::Ble::Platform::BlueZ::WeaveClientConnectHandler
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    linkageType: ''
    returnType: void
    signature: WeaveClientConnectHandler(DBusConnection * connection, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1285,1
    - Dst: nl::Ble::Platform::BlueZ::ExitBluezIOThread
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - connection
    - bluezData
    argTypes:
    - DBusConnection*
    - void*
    constantsTouched: []
    func_position:
      end: 1288
      start: 1283
    functionDepth: 1
    functionLinenumber: 1283
    functionLinenumberEnd: 1288
    functionName: nl::Ble::Platform::BlueZ::WeaveClientDisconnectHandler
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - nl::Ble::Platform::BlueZ::ExitBluezIOThread
    linkageType: ''
    returnType: void
    signature: WeaveClientDisconnectHandler(DBusConnection * connection, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1298,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1299,1
    - Dst: g_dbus_proxy_get_property
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1301,1
    - Dst: dbus_message_iter_get_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1303,1
    - Dst: g_dbus_proxy_get_path
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1304,1
    - Dst: strcmp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1306,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - childProxy
    - parentProxy
    argTypes:
    - GDBusProxy*
    - GDBusProxy*
    constantsTouched: []
    func_position:
      end: 1320
      start: 1290
    functionDepth: 0
    functionLinenumber: 1290
    functionLinenumberEnd: 1320
    functionName: nl::Ble::Platform::BlueZ::CheckDeviceIsChild
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - dbus_message_iter_get_basic
    - VerifyOrExit
    - g_dbus_proxy_get_path
    - WeaveLogDetail
    - g_dbus_proxy_get_property
    linkageType: ''
    returnType: gboolean
    signature: CheckDeviceIsChild(GDBusProxy * childProxy, GDBusProxy * parentProxy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: g_dbus_proxy_get_property
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1329,1
    - Dst: dbus_message_iter_get_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1331,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1332,1
    - Dst: deviceProxies::clear
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1339,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1342,1
    - Dst: g_dbus_proxy_set_property_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1344,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1346,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1354,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - GDBusProxy*
    constantsTouched: []
    func_position:
      end: 1356
      start: 1322
    functionDepth: 0
    functionLinenumber: 1322
    functionLinenumberEnd: 1356
    functionName: nl::Ble::Platform::BlueZ::WeaveAdapterAdded
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - deviceProxies::clear
    - dbus_message_iter_get_basic
    - WeaveLogProgress
    - WeaveLogDetail
    - strcasecmp
    - g_dbus_proxy_get_property
    - g_dbus_proxy_set_property_basic
    linkageType: ''
    returnType: void
    signature: WeaveAdapterAdded(GDBusProxy * proxy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1362,1
    - Dst: g_dbus_proxy_get_path
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1362,1
    - Dst: g_dbus_proxy_get_path
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1362,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1364,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - GDBusProxy*
    constantsTouched: []
    func_position:
      end: 1368
      start: 1358
    functionDepth: 0
    functionLinenumber: 1358
    functionLinenumberEnd: 1368
    functionName: nl::Ble::Platform::BlueZ::WeaveProfileAdded
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - g_dbus_proxy_get_path
    - strcmp
    linkageType: ''
    returnType: void
    signature: WeaveProfileAdded(GDBusProxy * proxy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1374,1
    - Dst: g_dbus_proxy_get_path
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1374,1
    - Dst: g_dbus_proxy_get_path
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1374,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1376,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - GDBusProxy*
    constantsTouched: []
    func_position:
      end: 1380
      start: 1370
    functionDepth: 0
    functionLinenumber: 1370
    functionLinenumberEnd: 1380
    functionName: nl::Ble::Platform::BlueZ::WeaveAdvertisingAdded
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - g_dbus_proxy_get_path
    - strcmp
    linkageType: ''
    returnType: void
    signature: WeaveAdvertisingAdded(GDBusProxy * proxy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Ble::Platform::BlueZ::CheckDeviceIsChild
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1387,1
    - Dst: g_dbus_proxy_get_property
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1389,1
    - Dst: dbus_message_iter_get_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1391,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1392,1
    - Dst: deviceProxies::push_back
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1395,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - GDBusProxy*
    constantsTouched: []
    func_position:
      end: 1397
      start: 1382
    functionDepth: 1
    functionLinenumber: 1382
    functionLinenumberEnd: 1397
    functionName: nl::Ble::Platform::BlueZ::WeaveDeviceAdded
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - deviceProxies::push_back
    - dbus_message_iter_get_basic
    - WeaveLogProgress
    - nl::Ble::Platform::BlueZ::CheckDeviceIsChild
    - g_dbus_proxy_get_property
    linkageType: ''
    returnType: void
    signature: WeaveDeviceAdded(GDBusProxy *proxy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: g_dbus_proxy_get_interface
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1403,1
    - Dst: strcmp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1405,1
    - Dst: nl::Ble::Platform::BlueZ::WeaveAdapterAdded
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1407,1
    - Dst: strcmp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1409,1
    - Dst: nl::Ble::Platform::BlueZ::WeaveProfileAdded
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1411,1
    - Dst: strcmp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1413,1
    - Dst: nl::Ble::Platform::BlueZ::WeaveAdvertisingAdded
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1415,1
    - Dst: strcmp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1417,1
    - Dst: nl::Ble::Platform::BlueZ::WeaveDeviceAdded
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1419,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - proxy
    - bluezData
    argTypes:
    - GDBusProxy*
    - void*
    constantsTouched: []
    func_position:
      end: 1421
      start: 1399
    functionDepth: 2
    functionLinenumber: 1399
    functionLinenumberEnd: 1421
    functionName: nl::Ble::Platform::BlueZ::WeaveProxyAdded
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - nl::Ble::Platform::BlueZ::WeaveAdvertisingAdded
    - nl::Ble::Platform::BlueZ::WeaveAdapterAdded
    - g_dbus_proxy_get_interface
    - nl::Ble::Platform::BlueZ::WeaveDeviceAdded
    - nl::Ble::Platform::BlueZ::WeaveProfileAdded
    linkageType: ''
    returnType: void
    signature: WeaveProxyAdded(GDBusProxy * proxy, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: g_dbus_proxy_get_interface
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1426,1
    - Dst: strcmp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1428,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1430,1
    - Dst: strcmp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1436,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1438,1
    - Dst: strcmp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1444,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1446,1
    - Dst: strcmp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1452,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1454,1
    - Dst: deviceProxies::empty
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1455,1
    - Dst: deviceProxies::remove
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1457,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 2
    argNames:
    - proxy
    - bluezData
    argTypes:
    - GDBusProxy*
    - void*
    constantsTouched: []
    func_position:
      end: 1460
      start: 1423
    functionDepth: 0
    functionLinenumber: 1423
    functionLinenumberEnd: 1460
    functionName: nl::Ble::Platform::BlueZ::WeaveProxyDeleted
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - deviceProxies::remove
    - strcmp
    - WeaveLogProgress
    - g_dbus_proxy_get_interface
    - deviceProxies::empty
    linkageType: ''
    returnType: void
    signature: WeaveProxyDeleted(GDBusProxy * proxy, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dbus_error_init
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1465,1
    - Dst: dbus_set_error_from_message
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1466,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1468,1
    - Dst: dbus_error_free
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dbusMsg
    - bluezData
    argTypes:
    - DBusMessage*
    - void*
    constantsTouched: []
    func_position:
      end: 1471
      start: 1462
    functionDepth: 0
    functionLinenumber: 1462
    functionLinenumberEnd: 1471
    functionName: nl::Ble::Platform::BlueZ::WeaveDisconnReply
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - dbus_set_error_from_message
    - dbus_error_init
    - dbus_error_free
    linkageType: ''
    returnType: void
    signature: WeaveDisconnReply(DBusMessage * dbusMsg, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: g_dbus_proxy_get_property
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1478,1
    - Dst: dbus_message_iter_get_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1480,1
    - Dst: g_dbus_proxy_get_property
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1483,1
    - Dst: dbus_message_iter_get_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1485,1
    - Dst: WeaveLogRetain
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1486,1
    - Dst: g_dbus_proxy_method_call
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1488,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - GDBusProxy*
    constantsTouched: []
    func_position:
      end: 1491
      start: 1473
    functionDepth: 0
    functionLinenumber: 1473
    functionLinenumberEnd: 1491
    functionName: nl::Ble::Platform::BlueZ::WeaveDeviceDisconnect
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - dbus_message_iter_get_basic
    - g_dbus_proxy_get_property
    - g_dbus_proxy_method_call
    - WeaveLogRetain
    linkageType: ''
    returnType: void
    signature: WeaveDeviceDisconnect(GDBusProxy * proxy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: g_dbus_proxy_get_interface
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1500,1
    - Dst: strcmp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1501,1
    - Dst: nl::Ble::Platform::BlueZ::CheckDeviceIsChild
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1502,1
    - Dst: strcmp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1503,1
    - Dst: dbus_message_iter_get_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1505,1
    - Dst: g_dbus_proxy_get_property
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1507,1
    - Dst: dbus_message_iter_get_basic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1509,1
    - Dst: WeaveLogRetain
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1510,1
    - Dst: NotifyBleActivity
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1515,1
    - Dst: nl::Ble::Platform::BlueZ::WoBLEz_NewConnection
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1516,1
    - Dst: nl::Ble::Platform::BlueZ::WoBLEz_ConnectionClosed
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1520,1
    - Dst: nl::Ble::Platform::BlueZ::CloseBleconnection
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1521,1
    - Dst: NotifyBleActivity
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1522,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - proxy
    - name
    - iter
    - bluezData
    argTypes:
    - GDBusProxy*
    - char*
    - DBusMessageIter*
    - void*
    constantsTouched: []
    func_position:
      end: 1527
      start: 1493
    functionDepth: 1
    functionLinenumber: 1493
    functionLinenumberEnd: 1527
    functionName: nl::Ble::Platform::BlueZ::WeavePropertyChange
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - nl::Ble::Platform::BlueZ::CloseBleconnection
    - strcmp
    - dbus_message_iter_get_basic
    - nl::Ble::Platform::BlueZ::WoBLEz_ConnectionClosed
    - nl::Ble::Platform::BlueZ::CheckDeviceIsChild
    - WeaveLogRetain
    - NotifyBleActivity
    - g_dbus_proxy_get_interface
    - nl::Ble::Platform::BlueZ::WoBLEz_NewConnection
    - g_dbus_proxy_get_property
    linkageType: ''
    returnType: void
    signature: WeavePropertyChange(GDBusProxy *proxy, const char *name, DBusMessageIter
      *iter, void *bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1534,1
    - Dst: dbus_error_is_set
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1534,1
    - Dst: nl::Ble::Platform::BlueZ::RegisterWeaveService
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1536,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1537,1
    - Dst: nl::Ble::Platform::BlueZ::RegisterWeaveCharacteristic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1539,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1540,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1542,1
    - Dst: nl::Ble::Platform::BlueZ::RegisterWeaveCharacteristic
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1544,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1545,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1547,1
    - Dst: nl::Ble::Platform::BlueZ::SetupWeaveApp
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1549,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1550,1
    - Dst: nl::Ble::Platform::BlueZ::EnableDiscoverable
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1552,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1553,1
    - Dst: nl::Ble::Platform::BlueZ::SetAlias
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1555,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1556,1
    - Dst: nl::Ble::Platform::BlueZ::AdvertisingRegister
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1558,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1559,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 2
    argNames:
    - error
    - bluezData
    argTypes:
    - DBusError*
    - void*
    constantsTouched: []
    func_position:
      end: 1567
      start: 1529
    functionDepth: 2
    functionLinenumber: 1529
    functionLinenumberEnd: 1567
    functionName: nl::Ble::Platform::BlueZ::PowerCb
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - nl::Ble::Platform::BlueZ::RegisterWeaveCharacteristic
    - nl::Ble::Platform::BlueZ::SetupWeaveApp
    - WeaveLogError
    - nl::Ble::Platform::BlueZ::SetAlias
    - nl::Ble::Platform::BlueZ::RegisterWeaveService
    - dbus_error_is_set
    - VerifyOrExit
    - nl::Ble::Platform::BlueZ::AdvertisingRegister
    - WeaveLogDetail
    - nl::Ble::Platform::BlueZ::EnableDiscoverable
    linkageType: ''
    returnType: void
    signature: PowerCb(const DBusError * error, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - weaveClient
    - bluezData
    argTypes:
    - GDBusClient*
    - void*
    constantsTouched: []
    func_position:
      end: 1573
      start: 1569
    functionDepth: 0
    functionLinenumber: 1569
    functionLinenumberEnd: 1573
    functionName: nl::Ble::Platform::BlueZ::WeaveClientReady
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    linkageType: ''
    returnType: void
    signature: WeaveClientReady(GDBusClient * weaveClient, void * bluezData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - connObj
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 1580
      start: 1575
    functionDepth: 0
    functionLinenumber: 1575
    functionLinenumberEnd: 1580
    functionName: nl::Ble::Platform::BlueZ::GetMTUWeaveCb
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDetail
    linkageType: ''
    returnType: uint16_t
    signature: GetMTUWeaveCb(BLE_CONNECTION_OBJECT connObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: deviceProxies::empty
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1584,1
    - Dst: deviceProxies::begin
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1587,1
    - Dst: deviceProxies::end
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1588,1
    - Dst: nl::Ble::Platform::BlueZ::WeaveDeviceDisconnect
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1590,1
    - Dst: g_dbus_emit_property_changed
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1595,1
    - Dst: nl::Ble::Platform::BlueZ::PipeIODestroy
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1598,1
    - Dst: nl::Ble::Platform::BlueZ::PipeIODestroy
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1599,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1582
    functionDepth: 2
    functionLinenumber: 1582
    functionLinenumberEnd: 1601
    functionName: nl::Ble::Platform::BlueZ::CloseBleconnection
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 2
    functionsReached:
    - g_dbus_emit_property_changed
    - deviceProxies::begin
    - deviceProxies::empty
    - deviceProxies::end
    - nl::Ble::Platform::BlueZ::WeaveDeviceDisconnect
    - nl::Ble::Platform::BlueZ::PipeIODestroy
    linkageType: ''
    returnType: void
    signature: CloseBleconnection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: g_main_loop_quit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1603
    functionDepth: 0
    functionLinenumber: 1603
    functionLinenumberEnd: 1606
    functionName: nl::Ble::Platform::BlueZ::ExitBluezIOThread
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 1
    functionsReached:
    - g_main_loop_quit
    linkageType: ''
    returnType: void
    signature: ExitBluezIOThread(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1613,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1614,1
    - Dst: g_main_loop_is_running
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1614,1
    - Dst: g_main_loop_get_context
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1616,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1617,1
    - Dst: g_main_context_invoke
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1618,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - aClosure
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1626
      start: 1608
    functionDepth: 0
    functionLinenumber: 1608
    functionLinenumberEnd: 1626
    functionName: nl::Ble::Platform::BlueZ::RunOnBluezIOThread
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - g_main_context_invoke
    - VerifyOrExit
    - g_main_loop_is_running
    - g_main_loop_get_context
    linkageType: ''
    returnType: bool
    signature: RunOnBluezIOThread(int (*aCallback)(void *), void * aClosure)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1636,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1638,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1641,1
    - Dst: SetSendIndicationCallback
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1644,1
    - Dst: SetGetMTUCallback
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1645,1
    - Dst: Adapter::Adapter
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1647,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1648,1
    - Dst: g_new0
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1650,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1651,1
    - Dst: g_strdup
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1653,1
    - Dst: g_strdup
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1654,1
    - Dst: g_strdup
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1655,1
    - Dst: g_strdup
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1656,1
    - Dst: g_new0
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1658,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1659,1
    - Dst: g_main_loop_new
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1674,1
    - Dst: g_dbus_setup_bus
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1675,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1676,1
    - Dst: g_dbus_attach_object_manager
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1678,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1679,1
    - Dst: g_dbus_client_new
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1681,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1682,1
    - Dst: g_dbus_client_set_proxy_handlers
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1684,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1685,1
    - Dst: g_dbus_client_set_ready_watch
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1687,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1688,1
    - Dst: g_dbus_client_set_connect_watch
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1690,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1691,1
    - Dst: g_dbus_client_set_disconnect_watch
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1693,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1694,1
    - Dst: g_main_loop_run
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1696,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1697,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1703,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1708,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1713,1
    - Dst: g_dbus_proxy_method_call
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1715,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1720,1
    - Dst: g_dbus_unregister_interface
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1723,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1726,1
    - Dst: nl::Ble::Platform::BlueZ::ServiceDestroy
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1735,1
    - Dst: nl::Ble::Platform::BlueZ::WeaveCharacteristicDestroy
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1741,1
    - Dst: nl::Ble::Platform::BlueZ::WeaveCharacteristicDestroy
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1747,1
    - Dst: g_free
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1751,1
    - Dst: g_free
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1753,1
    - Dst: g_free
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1755,1
    - Dst: g_free
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1757,1
    - Dst: g_free
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1759,1
    - Dst: g_free
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1761,1
    - Dst: g_dbus_client_unref
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1773,1
    - Dst: dbus_connection_unref
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1778,1
    - Dst: g_main_loop_unref
      Src: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp:1784,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 106
    argCount: 1
    argNames:
    - arg
    argTypes:
    - BluezPeripheralArgs*
    constantsTouched: []
    func_position:
      end: 1791
      start: 1628
    functionDepth: 1
    functionLinenumber: 1628
    functionLinenumberEnd: 1791
    functionName: nl::Ble::Platform::BlueZ::RunBluezIOThread
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
    functionUses: 0
    functionsReached:
    - g_dbus_client_new
    - nl::Ble::Platform::BlueZ::ServiceDestroy
    - g_main_loop_new
    - g_dbus_client_set_ready_watch
    - g_dbus_attach_object_manager
    - WeaveLogError
    - g_dbus_client_set_connect_watch
    - VerifyOrExit
    - nl::Ble::Platform::BlueZ::WeaveCharacteristicDestroy
    - g_dbus_client_unref
    - g_dbus_client_set_proxy_handlers
    - g_dbus_unregister_interface
    - g_strdup
    - Adapter::Adapter
    - g_main_loop_unref
    - WeaveLogProgress
    - g_dbus_client_set_disconnect_watch
    - SetSendIndicationCallback
    - g_free
    - SetGetMTUCallback
    - g_main_loop_run
    - g_dbus_proxy_method_call
    - g_dbus_setup_bus
    - dbus_connection_unref
    - g_new0
    linkageType: ''
    returnType: bool
    signature: RunBluezIOThread(BluezPeripheralArgs * arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: nl::Ble::Platform::BlueZ::WoBLEz_NewConnection
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    linkageType: ''
    returnType: void
    signature: WoBLEz_NewConnection(void * data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:63,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:65,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:66,1
    - Dst: nl::Weave::System::PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:66,1
    - Dst: NewEventParams
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:68,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:69,1
    - Dst: memcpy
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:71,1
    - Dst: nl::Weave::System::PacketBuffer*::Start
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:71,1
    - Dst: nl::Weave::System::PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:72,1
    - Dst: SendToWeaveThread
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:80,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:81,1
    - Dst: NotifyBleActivity
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:85,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:93,1
    - Dst: ReleaseEventParams
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:98,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:103,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:108,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 3
    argNames:
    - data
    - value
    - len
    argTypes:
    - void*
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 110
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 110
    functionName: nl::Ble::Platform::BlueZ::WoBLEz_WriteReceived
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp
    functionUses: 2
    functionsReached:
    - NewEventParams
    - WeaveLogError
    - ReleaseEventParams
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::System::PacketBuffer*::AvailableDataLength
    - VerifyOrExit
    - memcpy
    - NotifyBleActivity
    - SendToWeaveThread
    - SuccessOrExit
    - nl::Weave::System::PacketBuffer*::Start
    - nl::Weave::System::PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: WoBLEz_WriteReceived(void * data, const uint8_t * value, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<nl::Weave::System::PacketBuffer *>
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:115,1
    - Dst: g_free
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:122,1
    - Dst: static_cast<uint8_t *>
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:124,1
    - Dst: g_memdup
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:124,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:129,1
    - Dst: io_send
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:132,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:134,1
    - Dst: g_dbus_emit_property_changed
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:138,1
    - Dst: NotifyBleActivity
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:143,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - aClosure
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 148
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 148
    functionName: nl::Ble::Platform::BlueZ::WoBLEz_SendIndication
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - g_dbus_emit_property_changed
    - nl::Weave::System::PacketBuffer::Free
    - static_cast<nl::Weave::System::PacketBuffer *>
    - static_cast<void *>
    - NotifyBleActivity
    - g_free
    - g_memdup
    - static_cast<uint8_t *>
    - io_send
    linkageType: ''
    returnType: int
    signature: WoBLEz_SendIndication(void * aClosure)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BluezServerEndpoint *>
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:154,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:156,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:157,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:158,1
    - Dst: nl::Ble::Platform::BlueZ::RunOnBluezIOThread
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:160,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:166,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - data
    - msgBuf
    argTypes:
    - void*
    - nl::Weave::System::PacketBuffer*
    constantsTouched: []
    func_position:
      end: 175
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 175
    functionName: nl::Ble::Platform::BlueZ::WoBLEz_ScheduleSendIndication
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp
    functionUses: 0
    functionsReached:
    - static_cast<BluezServerEndpoint *>
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Ble::Platform::BlueZ::RunOnBluezIOThread
    linkageType: ''
    returnType: bool
    signature: WoBLEz_ScheduleSendIndication(void * data, nl::Weave::System::PacketBuffer
      * msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:184,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:185,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:187,1
    - Dst: NewEventParams
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:189,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:190,1
    - Dst: SendToWeaveThread
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:196,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:197,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:204,1
    - Dst: ReleaseEventParams
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 211
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 211
    functionName: nl::Ble::Platform::BlueZ::WoBLEz_ConnectionClosed
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp
    functionUses: 1
    functionsReached:
    - NewEventParams
    - WeaveLogError
    - ReleaseEventParams
    - WeaveLogProgress
    - ExitNow
    - SendToWeaveThread
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: WoBLEz_ConnectionClosed(void * data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BluezServerEndpoint *>
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:217,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:220,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:221,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:222,1
    - Dst: NewEventParams
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:224,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:225,1
    - Dst: SendToWeaveThread
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:233,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:234,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:242,1
    - Dst: ReleaseEventParams
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:247,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 254
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 254
    functionName: nl::Ble::Platform::BlueZ::WoBLEz_SubscriptionChange
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp
    functionUses: 3
    functionsReached:
    - static_cast<BluezServerEndpoint *>
    - NewEventParams
    - WeaveLogError
    - ReleaseEventParams
    - VerifyOrExit
    - SendToWeaveThread
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: WoBLEz_SubscriptionChange(void * data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewEventParams
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:261,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:262,1
    - Dst: SendToWeaveThread
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:269,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:270,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:277,1
    - Dst: ReleaseEventParams
      Src: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 284
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 284
    functionName: nl::Ble::Platform::BlueZ::WoBLEz_IndicationConfirmation
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp
    functionUses: 1
    functionsReached:
    - NewEventParams
    - WeaveLogError
    - ReleaseEventParams
    - SendToWeaveThread
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: WoBLEz_IndicationConfirmation(void * data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ble
    argTypes:
    - BleLayer*
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::BluezBlePlatformDelegate
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BluezBlePlatformDelegate::BluezBlePlatformDelegate(BleLayer * ble)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetMTUCb
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - connObj
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::GetMTU
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached:
    - GetMTUCb
    linkageType: ''
    returnType: uint16_t
    signature: BluezBlePlatformDelegate::GetMTU(BLE_CONNECTION_OBJECT connObj) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - connObj
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::SubscribeCharacteristic
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    linkageType: ''
    returnType: bool
    signature: "BluezBlePlatformDelegate::SubscribeCharacteristic(BLE_CONNECTION_OBJECT
      connObj, const nl::Ble::WeaveBleUUID * svcId,\n                                                       const
      nl::Ble::WeaveBleUUID * charId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - connObj
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::UnsubscribeCharacteristic
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    linkageType: ''
    returnType: bool
    signature: "BluezBlePlatformDelegate::UnsubscribeCharacteristic(BLE_CONNECTION_OBJECT
      connObj, const nl::Ble::WeaveBleUUID * svcId,\n                                                         const
      nl::Ble::WeaveBleUUID * charId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - connObj
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::CloseConnection
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    linkageType: ''
    returnType: bool
    signature: BluezBlePlatformDelegate::CloseConnection(BLE_CONNECTION_OBJECT connObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:75,1
    - Dst: SendIndicationCb
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - connObj
    - svcId
    - charId
    - pBuf
    argTypes:
    - BLE_CONNECTION_OBJECT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    - nl::Weave::System::PacketBuffer*
    constantsTouched: []
    func_position:
      end: 83
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 83
    functionName: nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::SendIndication
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached:
    - SendIndicationCb
    - WeaveLogDetail
    linkageType: ''
    returnType: bool
    signature: "BluezBlePlatformDelegate::SendIndication(BLE_CONNECTION_OBJECT connObj,
      const nl::Ble::WeaveBleUUID * svcId,\n                                              const
      nl::Ble::WeaveBleUUID * charId, nl::Weave::System::PacketBuffer * pBuf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - connObj
    - svcId
    - charId
    - pBuf
    argTypes:
    - BLE_CONNECTION_OBJECT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    - nl::Weave::System::PacketBuffer*
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::SendWriteRequest
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    linkageType: ''
    returnType: bool
    signature: "BluezBlePlatformDelegate::SendWriteRequest(BLE_CONNECTION_OBJECT connObj,
      const nl::Ble::WeaveBleUUID * svcId,\n                                                const
      nl::Ble::WeaveBleUUID * charId, nl::Weave::System::PacketBuffer * pBuf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - connObj
    - svcId
    - charId
    - pBuf
    argTypes:
    - BLE_CONNECTION_OBJECT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    - nl::Weave::System::PacketBuffer*
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::SendReadRequest
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    linkageType: ''
    returnType: bool
    signature: "BluezBlePlatformDelegate::SendReadRequest(BLE_CONNECTION_OBJECT connObj,
      const nl::Ble::WeaveBleUUID * svcId,\n                                               const
      nl::Ble::WeaveBleUUID * charId, nl::Weave::System::PacketBuffer * pBuf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - connObj
    - requestContext
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - BLE_READ_REQUEST_CONTEXT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::SendReadResponse
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    linkageType: ''
    returnType: bool
    signature: "BluezBlePlatformDelegate::SendReadResponse(BLE_CONNECTION_OBJECT connObj,
      BLE_READ_REQUEST_CONTEXT requestContext,\n                                                const
      nl::Ble::WeaveBleUUID * svcId, const nl::Ble::WeaveBleUUID * charId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - SendIndicationCallback
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::SetSendIndicationCallback
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BluezBlePlatformDelegate::SetSendIndicationCallback(SendIndicationCallback
      cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - GetMTUCallback
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::SetGetMTUCallback
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BluezBlePlatformDelegate::SetGetMTUCallback(GetMTUCallback cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScheduleWork
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aParams
    argTypes:
    - InEventParam*
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::SendToWeaveThread
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached:
    - ScheduleWork
    linkageType: ''
    returnType: nl::Weave::System::Error
    signature: BluezBlePlatformDelegate::SendToWeaveThread(InEventParam * aParams)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<InEventParam *>
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:126,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:128,1
    - Dst: InEventParam*::Ble::HandleIndicationConfirmation
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:134,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:137,1
    - Dst: InEventParam*::Ble::HandleSubscribeReceived
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:142,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:145,1
    - Dst: InEventParam*::Ble::HandleUnsubscribeReceived
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:150,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:153,1
    - Dst: InEventParam*::Ble::HandleConnectionError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:158,1
    - Dst: InEventParam*::Ble::HandleWriteReceived
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:162,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:165,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:171,1
    - Dst: InEventParam*::PlatformDelegate::ReleaseEventParams
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:178,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - aLayer
    - aAppState
    - aError
    argTypes:
    - nl::Weave::System::Layer*
    - void*
    - nl::Weave::System::Error
    constantsTouched: []
    func_position:
      end: 180
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 180
    functionName: nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::HandleBleDelegate
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - InEventParam*::PlatformDelegate::ReleaseEventParams
    - VerifyOrExit
    - InEventParam*::Ble::HandleUnsubscribeReceived
    - InEventParam*::Ble::HandleWriteReceived
    - InEventParam*::Ble::HandleSubscribeReceived
    - InEventParam*::Ble::HandleIndicationConfirmation
    - static_cast<InEventParam *>
    - InEventParam*::Ble::HandleConnectionError
    linkageType: ''
    returnType: void
    signature: "BluezBlePlatformDelegate::HandleBleDelegate(nl::Weave::System::Layer
      * aLayer, void * aAppState,\n                                                 nl::Weave::System::Error
      aError)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InEventParam::InEventParam
      Src: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - aParam
    argTypes:
    - InEventParam**
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::NewEventParams
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached:
    - InEventParam::InEventParam
    linkageType: ''
    returnType: nl::Weave::System::Error
    signature: BluezBlePlatformDelegate::NewEventParams(InEventParam ** aParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aParam
    argTypes:
    - InEventParam*
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::ReleaseEventParams
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BluezBlePlatformDelegate::ReleaseEventParams(InEventParam * aParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: nl::Ble::Platform::BlueZ::BluezBleApplicationDelegate::BluezBleApplicationDelegate
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezBleApplicationDelegate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BluezBleApplicationDelegate()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: ~BluezBleApplicationDelegate()
    functionSourceFile: /src/openweave-core/src/platform/ble/bluez/BluezBleApplicationDelegate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~BluezBleApplicationDelegate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - env
    - object
    - remoteAddr
    argTypes:
    - JNIEnv*
    - jobject
    - jstring
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: Java_com_example_PingTest_PingWrapper_pingNode
    functionSourceFile: /src/openweave-core/src/test-apps/AndroidTest.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::ReleaseStringUTFChars
    linkageType: ''
    returnType: jint
    signature: Java_com_example_PingTest_PingWrapper_pingNode(JNIEnv* env, jobject
      object, jstring remoteAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOGV
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:89,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:92,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:103,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:108,1
    - Dst: LOGV
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:110,1
    - Dst: SendEchoRequest
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:118,1
    - Dst: LOGV
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:123,1
    - Dst: LOGV
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:127,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:127,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:131,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - remoteAddr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 134
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 134
    functionName: PingNode
    functionSourceFile: /src/openweave-core/src/test-apps/AndroidTest.cpp
    functionUses: 0
    functionsReached:
    - Now
    - ShutdownWeaveStack
    - LOGV
    - ServiceNetwork
    - SendEchoRequest
    - InitWeaveStack
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PingNode(const char *remoteAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:141,1
    - Dst: LOGV
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:143,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:147,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:150,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:155,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:156,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:156,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:158,1
    - Dst: SendEchoRequest
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:160,1
    - Dst: IPAddress::InterfaceId
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:160,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - remoteAddr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 170
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 170
    functionName: SendEchoRequest
    functionSourceFile: /src/openweave-core/src/test-apps/AndroidTest.cpp
    functionUses: 7
    functionsReached:
    - PacketBuffer*::SetDataLength
    - Now
    - IPAddress::InterfaceId
    - LOGV
    - SendEchoRequest
    - nl::Inet::IPAddress::FromString
    - strlen
    - printf
    - strcpy
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendEchoRequest(const char * remoteAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nodeId
    - nodeAddr
    - payload
    argTypes:
    - uint64_t
    - IPAddress
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: HandleEchoResponse
    functionSourceFile: /src/openweave-core/src/test-apps/AndroidTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: HandleEchoResponse(uint64_t nodeId, IPAddress nodeAddr, PacketBuffer
      *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_init
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:182,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:185,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:187,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:189,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:191,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:196,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:198,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:208,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:210,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:216,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:218,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:224,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:226,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:236,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 239
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 239
    functionName: InitWeaveStack
    functionSourceFile: /src/openweave-core/src/test-apps/AndroidTest.cpp
    functionUses: 4
    functionsReached:
    - tcpip_init
    - printf
    - Init
    - ShutdownWeaveStack
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: InitWeaveStack()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:243,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:244,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:245,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:246,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:247,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:248,1
    - Dst: tcpip_finish
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 252
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 252
    functionName: ShutdownWeaveStack
    functionSourceFile: /src/openweave-core/src/test-apps/AndroidTest.cpp
    functionUses: 2
    functionsReached:
    - tcpip_finish
    - Shutdown
    linkageType: ''
    returnType: void
    signature: ShutdownWeaveStack()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareSelect
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:261,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:266,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:266,1
    - Dst: MapErrorPOSIX
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:266,1
    - Dst: HandleSelectResult
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - sleepTime
    argTypes:
    - struct timeval
    constantsTouched: []
    func_position:
      end: 271
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 271
    functionName: ServiceNetwork
    functionSourceFile: /src/openweave-core/src/test-apps/AndroidTest.cpp
    functionUses: 1
    functionsReached:
    - MapErrorPOSIX
    - HandleSelectResult
    - PrepareSelect
    - printf
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: ServiceNetwork(struct timeval sleepTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: Now
    functionSourceFile: /src/openweave-core/src/test-apps/AndroidTest.cpp
    functionUses: 341
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: uint64_t
    signature: Now()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PingNode
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:284,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/AndroidTest.cpp:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 286
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/AndroidTest.cpp
    functionUses: 0
    functionsReached:
    - PingNode
    - printf
    linkageType: ''
    returnType: int
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: TestMismatchedCTraitDataSource::TestMismatchedCTraitDataSource
    functionSourceFile: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestMismatchedCTraitDataSource::TestMismatchedCTraitDataSource(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<bool>
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:48,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:49,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:50,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:58,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:59,1
    - Dst: static_cast<bool>
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:63,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:64,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:65,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:70,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:71,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:76,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:77,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:82,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:83,1
    - Dst: static_cast<bool>
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:87,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:88,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:89,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:94,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:95,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 2
    argNames:
    - aLeafHandle
    - aValue
    argTypes:
    - PropertyPathHandle
    - uint32_t
    constantsTouched: []
    func_position:
      end: 101
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 101
    functionName: TestMismatchedCTraitDataSource::SetValue
    functionSourceFile: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDetail
    - static_cast<bool>
    - SetDirty
    linkageType: ''
    returnType: void
    signature: TestMismatchedCTraitDataSource::SetValue(PropertyPathHandle aLeafHandle,
      uint32_t aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:111,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:112,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:113,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:120,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:121,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:122,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:126,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:127,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:128,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:132,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:133,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:134,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:138,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:139,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:140,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:144,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:145,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:146,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:150,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:151,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:152,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:156,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:157,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:158,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 3
    argNames:
    - aLeafHandle
    - aTagToWrite
    - aWriter
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 167
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 167
    functionName: TestMismatchedCTraitDataSource::GetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp
    functionUses: 0
    functionsReached:
    - TLVWriter::Put
    - WeaveLogDetail
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TestMismatchedCTraitDataSource::GetLeafData(\n        PropertyPathHandle
      aLeafHandle, uint64_t aTagToWrite, TLVWriter &aWriter)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: TestCTraitDataSink::TestCTraitDataSink
    functionSourceFile: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestCTraitDataSink::TestCTraitDataSink(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearVersion
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:178,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: TestCTraitDataSink::Reset
    functionSourceFile: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp
    functionUses: 0
    functionsReached:
    - ClearVersion
    - memset
    linkageType: ''
    returnType: void
    signature: TestCTraitDataSink::Reset(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - aLeafHandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 193
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 193
    functionName: TestCTraitDataSink::WasPathHandleSet
    functionSourceFile: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: TestCTraitDataSink::WasPathHandleSet(PropertyPathHandle aLeafHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 205
    functionName: TestCTraitDataSink::WasAnyPathHandleSet
    functionSourceFile: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: TestCTraitDataSink::WasAnyPathHandleSet(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - aLeafHandle
    - aReader
    argTypes:
    - PropertyPathHandle
    - TLVReader
    constantsTouched: []
    func_position:
      end: 228
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 228
    functionName: TestCTraitDataSink::SetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TestCTraitDataSink::SetLeafData(\n        PropertyPathHandle aLeafHandle,
      TLVReader &aReader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aType
    - aInParam
    argTypes:
    - uint16_t
    - void*
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: TestCTraitDataSink::OnEvent
    functionSourceFile: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestCTraitDataSink::OnEvent(uint16_t aType, void *aInParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 240
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 240
    functionName: TestMismatchedCTraitDataSink::TestMismatchedCTraitDataSink
    functionSourceFile: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestMismatchedCTraitDataSink::TestMismatchedCTraitDataSink(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearVersion
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:245,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 247
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 247
    functionName: TestMismatchedCTraitDataSink::Reset
    functionSourceFile: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp
    functionUses: 0
    functionsReached:
    - ClearVersion
    - memset
    linkageType: ''
    returnType: void
    signature: TestMismatchedCTraitDataSink::Reset(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - aLeafHandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 260
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 260
    functionName: TestMismatchedCTraitDataSink::WasPathHandleSet
    functionSourceFile: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: TestMismatchedCTraitDataSink::WasPathHandleSet(PropertyPathHandle aLeafHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 272
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 272
    functionName: TestMismatchedCTraitDataSink::WasAnyPathHandleSet
    functionSourceFile: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: TestMismatchedCTraitDataSink::WasAnyPathHandleSet(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HandleUnknownLeafHandle
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - aLeafHandle
    - aReader
    argTypes:
    - PropertyPathHandle
    - TLVReader
    constantsTouched: []
    func_position:
      end: 298
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 298
    functionName: TestMismatchedCTraitDataSink::SetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp
    functionUses: 0
    functionsReached:
    - HandleUnknownLeafHandle
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TestMismatchedCTraitDataSink::SetLeafData(\n        PropertyPathHandle
      aLeafHandle, TLVReader &aReader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aType
    - aInParam
    argTypes:
    - uint16_t
    - void*
    constantsTouched: []
    func_position:
      end: 304
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 304
    functionName: TestMismatchedCTraitDataSink::OnEvent
    functionSourceFile: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestMismatchedCTraitDataSink::OnEvent(uint16_t aType, void *aInParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - isInitiator
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: TestAuthDelegate::TestAuthDelegate
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestAuthDelegate(bool isInitiator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:102,1
    - Dst: IsInitiator
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:102,1
    - Dst: EncodeCASECertInfo
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' msgCtx'
    - ' writer'
    argTypes:
    - BeginSessionContext
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: TestAuthDelegate::EncodeNodeCertInfo
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrQuit
    - EncodeCASECertInfo
    - IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EncodeNodeCertInfo(const BeginSessionContext & msgCtx, TLVWriter &
      writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:116,1
    - Dst: IsInitiator
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:116,1
    - Dst: GenerateAndEncodeWeaveECDSASignature
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' msgCtx'
    - msgHash
    - msgHashLen
    - ' writer'
    - tag
    argTypes:
    - BeginSessionContext
    - uint8_t*
    - uint8_t
    - TLVWriter
    - uint64_t
    constantsTouched: []
    func_position:
      end: 122
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 122
    functionName: TestAuthDelegate::GenerateNodeSignature
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrQuit
    - GenerateAndEncodeWeaveECDSASignature
    - IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "GenerateNodeSignature(const BeginSessionContext & msgCtx,\n            const
      uint8_t * msgHash, uint8_t msgHashLen, TLVWriter & writer, uint64_t tag)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:127,1
    - Dst: IsInitiator
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' msgCtx'
    - payloadBuf
    - payloadBufSize
    - ' payloadLen'
    argTypes:
    - BeginSessionContext
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: TestAuthDelegate::EncodeNodePayload
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrQuit
    - IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "EncodeNodePayload(const BeginSessionContext & msgCtx,\n            uint8_t
      * payloadBuf, uint16_t payloadBufSize, uint16_t & payloadLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:139,1
    - Dst: IsInitiator
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:139,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:141,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:143,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:144,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:149,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:152,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:155,1
    - Dst: PackCertTime
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:160,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 3
    argNames:
    - ' msgCtx'
    - ' validCtx'
    - ' certSet'
    argTypes:
    - BeginSessionContext
    - ValidationContext
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 168
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 168
    functionName: TestAuthDelegate::BeginValidation
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - LoadCert
    - VerifyOrQuit
    - memset
    - IsInitiator
    - PackCertTime
    - Init
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "BeginValidation(const BeginSessionContext & msgCtx, ValidationContext
      & validCtx,\n            WeaveCertificateSet & certSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:174,1
    - Dst: IsInitiator
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' msgCtx'
    - ' subjectDN'
    - ' subjectKeyId'
    - ' validCtx'
    - ' certSet'
    argTypes:
    - BeginSessionContext
    - WeaveDN
    - CertificateKeyId
    - ValidationContext
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: TestAuthDelegate::OnPeerCertsLoaded
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrQuit
    - IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "OnPeerCertsLoaded(const BeginSessionContext & msgCtx,\n            WeaveDN
      & subjectDN, CertificateKeyId & subjectKeyId, ValidationContext & validCtx,\n
      \           WeaveCertificateSet & certSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:181,1
    - Dst: IsInitiator
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' msgCtx'
    - ' validCtx'
    - ' certSet'
    - ' validRes'
    argTypes:
    - BeginSessionContext
    - ValidationContext
    - WeaveCertificateSet
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: TestAuthDelegate::HandleValidationResult
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrQuit
    - IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "HandleValidationResult(const BeginSessionContext & msgCtx, ValidationContext
      & validCtx,\n            WeaveCertificateSet & certSet, WEAVE_ERROR & validRes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:188,1
    - Dst: IsInitiator
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' msgCtx'
    - ' validCtx'
    - ' certSet'
    argTypes:
    - BeginSessionContext
    - ValidationContext
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: TestAuthDelegate::EndValidation
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrQuit
    - IsInitiator
    linkageType: ''
    returnType: void
    signature: "EndValidation(const BeginSessionContext & msgCtx, ValidationContext
      & validCtx,\n            WeaveCertificateSet & certSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:195,1
    - Dst: EncodeCASECertInfo
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - isInitiator
    - buf
    - bufSize
    - ' certInfoLen'
    argTypes:
    - bool
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 204
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 204
    functionName: TestAuthDelegate::GetNodeCertInfo
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrQuit
    - EncodeCASECertInfo
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetNodeCertInfo(bool isInitiator, uint8_t *buf, uint16_t bufSize, uint16_t&
      certInfoLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - isInitiator
    - ' weavePrivKey'
    - ' weavePrivKeyLen'
    argTypes:
    - bool
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: TestAuthDelegate::GetNodePrivateKey
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrQuit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetNodePrivateKey(bool isInitiator, const uint8_t *& weavePrivKey,
      uint16_t& weavePrivKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - weavePrivKey
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 220
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 220
    functionName: TestAuthDelegate::ReleaseNodePrivateKey
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReleaseNodePrivateKey(const uint8_t *weavePrivKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - isInitiator
    - buf
    - bufSize
    - ' payloadLen'
    argTypes:
    - bool
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 227
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 227
    functionName: TestAuthDelegate::GetNodePayload
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrQuit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetNodePayload(bool isInitiator, uint8_t *buf, uint16_t bufSize, uint16_t&
      payloadLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:235,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:237,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:239,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:240,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:245,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:246,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:249,1
    - Dst: PackCertTime
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:254,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 3
    argNames:
    - isInitiator
    - ' certSet'
    - ' validContext'
    argTypes:
    - bool
    - WeaveCertificateSet
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 262
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 262
    functionName: TestAuthDelegate::BeginCertValidation
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - LoadCert
    - VerifyOrQuit
    - memset
    - PackCertTime
    - Init
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BeginCertValidation(bool isInitiator, WeaveCertificateSet& certSet,
      ValidationContext& validContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - isInitiator
    - ' validRes'
    - peerCert
    - peerNodeId
    - ' certSet'
    - ' validContext'
    argTypes:
    - bool
    - WEAVE_ERROR
    - WeaveCertificateData*
    - uint64_t
    - WeaveCertificateSet
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 269
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 269
    functionName: TestAuthDelegate::HandleCertValidationResult
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrQuit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "HandleCertValidationResult(bool isInitiator, WEAVE_ERROR& validRes,
      WeaveCertificateData *peerCert,\n            uint64_t peerNodeId, WeaveCertificateSet&
      certSet, ValidationContext& validContext)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' certSet'
    - ' validContext'
    argTypes:
    - WeaveCertificateSet
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: TestAuthDelegate::EndCertValidation
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EndCertValidation(WeaveCertificateSet& certSet, ValidationContext&
      validContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 282
    functionName: ~MessageMutator()
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~MessageMutator()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 291
    functionName: NullMutator::Reset
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - msgName
    - msgBuf
    - ' initiatorEng'
    - ' responderEng'
    argTypes:
    - char*
    - PacketBuffer*
    - WeaveCASEEngine
    - WeaveCASEEngine
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: NullMutator::MutateMessage
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MutateMessage(const char *msgName, PacketBuffer *msgBuf, WeaveCASEEngine&
      initiatorEng, WeaveCASEEngine& responderEng)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 293
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 293
    functionName: NullMutator::IsComplete
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsComplete()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - msgType
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 309
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 309
    functionName: MessageFuzzer::MessageFuzzer
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MessageFuzzer(const char *msgType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 311
    functionName: MessageFuzzer::Reset
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:315,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:321,1
    - Dst: GetRandU8
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:330,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:333,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - msgType
    - msgBuf
    - ' initiatorEng'
    - ' responderEng'
    argTypes:
    - char*
    - PacketBuffer*
    - WeaveCASEEngine
    - WeaveCASEEngine
    constantsTouched: []
    func_position:
      end: 341
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 341
    functionName: MessageFuzzer::MutateMessage
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrQuit
    - printf
    - GetRandU8
    - strcmp
    linkageType: ''
    returnType: void
    signature: MutateMessage(const char *msgType, PacketBuffer *msgBuf, WeaveCASEEngine&
      initiatorEng, WeaveCASEEngine& responderEng)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 357
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 357
    functionName: MessageFuzzer::IsComplete
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - time
    linkageType: ''
    returnType: bool
    signature: IsComplete()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - start
    - len
    argTypes:
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 359
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 359
    functionName: '& Skip(uint16_t start, uint16_t len)'
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MessageFuzzer
    signature: '& Skip(uint16_t start, uint16_t len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - timeLimit
    argTypes:
    - time_t
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: '& TimeLimit(time_t timeLimit)'
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MessageFuzzer
    signature: '& TimeLimit(time_t timeLimit)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - testName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 391
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 391
    functionName: CASEEngineTest::CASEEngineTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: CASEEngineTest(const char *testName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 393
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 393
    functionName: CASEEngineTest::TestName
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*TestName() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 395
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 395
    functionName: CASEEngineTest::ProposedConfig
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: ProposedConfig() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 396
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 396
    functionName: '& ProposedConfig(uint32_t val)'
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CASEEngineTest
    signature: '& ProposedConfig(uint32_t val)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 398
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 398
    functionName: CASEEngineTest::ProposedCurve
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: ProposedCurve() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 399
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 399
    functionName: '& ProposedCurve(uint32_t val)'
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CASEEngineTest
    signature: '& ProposedCurve(uint32_t val)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 401
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 401
    functionName: CASEEngineTest::InitiatorAllowedConfigs
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: InitiatorAllowedConfigs() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 402
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 402
    functionName: '& InitiatorAllowedConfigs(uint8_t val)'
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CASEEngineTest
    signature: '& InitiatorAllowedConfigs(uint8_t val)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 404
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 404
    functionName: CASEEngineTest::ResponderAllowedConfigs
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: ResponderAllowedConfigs() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 405
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 405
    functionName: '& ResponderAllowedConfigs(uint8_t val)'
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CASEEngineTest
    signature: '& ResponderAllowedConfigs(uint8_t val)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 407
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 407
    functionName: CASEEngineTest::InitiatorAllowedCurves
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: InitiatorAllowedCurves() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 408
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 408
    functionName: '& InitiatorAllowedCurves(uint8_t val)'
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CASEEngineTest
    signature: '& InitiatorAllowedCurves(uint8_t val)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 410
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 410
    functionName: CASEEngineTest::ResponderAllowedCurves
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: ResponderAllowedCurves() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 411
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 411
    functionName: '& ResponderAllowedCurves(uint8_t val)'
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CASEEngineTest
    signature: '& ResponderAllowedCurves(uint8_t val)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 413
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 413
    functionName: CASEEngineTest::InitiatorRequestKeyConfirm
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: InitiatorRequestKeyConfirm() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 414
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 414
    functionName: '& InitiatorRequestKeyConfirm(bool val)'
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CASEEngineTest
    signature: '& InitiatorRequestKeyConfirm(bool val)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 416
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 416
    functionName: CASEEngineTest::ResponderRequiresKeyConfirm
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ResponderRequiresKeyConfirm() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 417
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 417
    functionName: '& ResponderRequiresKeyConfirm(bool val)'
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CASEEngineTest
    signature: '& ResponderRequiresKeyConfirm(bool val)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 419
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 419
    functionName: CASEEngineTest::ExpectReconfig
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: ExpectReconfig() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - expectedConfig
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 425
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 425
    functionName: '& ExpectReconfig(uint32_t expectedConfig)'
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CASEEngineTest
    signature: '& ExpectReconfig(uint32_t expectedConfig)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - expectedCurve
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 431
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 431
    functionName: '& ExpectReconfigCurve(uint32_t expectedCurve)'
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CASEEngineTest
    signature: '& ExpectReconfigCurve(uint32_t expectedCurve)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 432
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 432
    functionName: CASEEngineTest::ExpectedConfig
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: ExpectedConfig() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 433
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 433
    functionName: CASEEngineTest::ExpectedCurve
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: ExpectedCurve() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 435
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 435
    functionName: CASEEngineTest::ForceRepeatedReconfig
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ForceRepeatedReconfig() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 436
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 436
    functionName: '& ForceRepeatedReconfig(bool val)'
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CASEEngineTest
    signature: '& ForceRepeatedReconfig(bool val)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExpectError
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 441
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 441
    functionName: '& ExpectError(WEAVE_ERROR err)'
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - ExpectError
    linkageType: ''
    returnType: CASEEngineTest
    signature: '& ExpectError(WEAVE_ERROR err)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - opName
    - err
    argTypes:
    - char*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 456
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 456
    functionName: '& ExpectError(const char *opName, WEAVE_ERROR err)'
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CASEEngineTest
    signature: '& ExpectError(const char *opName, WEAVE_ERROR err)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:463,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - opName
    - err
    argTypes:
    - char*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 467
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 467
    functionName: CASEEngineTest::IsExpectedError
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: IsExpectedError(const char *opName, WEAVE_ERROR err) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 469
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 469
    functionName: CASEEngineTest::IsSuccessExpected
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsSuccessExpected() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mutator
    argTypes:
    - MessageMutator*
    constantsTouched: []
    func_position:
      end: 471
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 471
    functionName: '& Mutator(MessageMutator *mutator)'
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CASEEngineTest
    signature: '& Mutator(MessageMutator *mutator)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 473
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 473
    functionName: CASEEngineTest::LogMessageData
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: LogMessageData() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 474
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 474
    functionName: '& LogMessageData(bool val)'
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CASEEngineTest
    signature: '& LogMessageData(bool val)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:520,1
    - Dst: CASEEngineTest::TestName
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:520,1
    - Dst: CASEEngineTest::TestName
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:522,1
    - Dst: Reset
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:524,1
    - Dst: WeaveCASEEngine::Init
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:532,1
    - Dst: WeaveCASEEngine::SetAllowedConfigs
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:534,1
    - Dst: CASEEngineTest::InitiatorAllowedConfigs
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:534,1
    - Dst: WeaveCASEEngine::SetAllowedCurves
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:535,1
    - Dst: CASEEngineTest::InitiatorAllowedCurves
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:535,1
    - Dst: WeaveCASEEngine::Init
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:539,1
    - Dst: WeaveCASEEngine::SetAllowedConfigs
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:541,1
    - Dst: CASEEngineTest::ResponderAllowedConfigs
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:541,1
    - Dst: WeaveCASEEngine::SetAllowedCurves
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:542,1
    - Dst: CASEEngineTest::ResponderAllowedCurves
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:542,1
    - Dst: WeaveCASEEngine::SetResponderRequiresKeyConfirm
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:543,1
    - Dst: CASEEngineTest::ResponderRequiresKeyConfirm
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:543,1
    - Dst: BeginSessionRequestContext::Reset
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:549,1
    - Dst: WeaveCASEEngine::SetAlternateConfigs
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:551,1
    - Dst: WeaveCASEEngine::SetAlternateCurves
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:553,1
    - Dst: BeginSessionRequestContext::SetPerformKeyConfirm
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:554,1
    - Dst: CASEEngineTest::InitiatorRequestKeyConfirm
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:554,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:558,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:559,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:561,1
    - Dst: WeaveCASEEngine::GenerateBeginSessionRequest
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:563,1
    - Dst: CASEEngineTest::IsExpectedError
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:565,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:568,1
    - Dst: MutateMessage
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:573,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:575,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:575,1
    - Dst: CASEEngineTest::LogMessageData
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:576,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:577,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:577,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:577,1
    - Dst: BeginSessionRequestContext::Reset
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:584,1
    - Dst: ReconfigureContext::Reset
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:585,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:587,1
    - Dst: WeaveCASEEngine::ProcessBeginSessionRequest
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:589,1
    - Dst: CASEEngineTest::IsExpectedError
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:591,1
    - Dst: CASEEngineTest::ExpectReconfig
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:594,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:596,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:598,1
    - Dst: CASEEngineTest::ExpectedConfig
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:598,1
    - Dst: CASEEngineTest::ExpectedConfig
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:598,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:599,1
    - Dst: CASEEngineTest::ExpectedCurve
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:599,1
    - Dst: CASEEngineTest::ExpectedCurve
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:599,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:601,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:606,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:608,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:609,1
    - Dst: ReconfigureContext::Encode
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:610,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:611,1
    - Dst: MutateMessage
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:615,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:617,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:617,1
    - Dst: CASEEngineTest::LogMessageData
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:618,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:619,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:619,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:619,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:623,1
    - Dst: WeaveCASEEngine::ProcessReconfigure
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:625,1
    - Dst: CASEEngineTest::IsExpectedError
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:627,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:630,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:632,1
    - Dst: CASEEngineTest::ForceRepeatedReconfig
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:635,1
    - Dst: WeaveCASEEngine::Shutdown
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:643,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:650,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:653,1
    - Dst: BeginSessionResponseContext::Reset
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:658,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:662,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:663,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:665,1
    - Dst: WeaveCASEEngine::GenerateBeginSessionResponse
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:667,1
    - Dst: CASEEngineTest::IsExpectedError
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:669,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:672,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:674,1
    - Dst: MutateMessage
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:680,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:682,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:682,1
    - Dst: CASEEngineTest::LogMessageData
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:683,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:684,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:684,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:684,1
    - Dst: BeginSessionResponseContext::Reset
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:690,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:692,1
    - Dst: WeaveCASEEngine::ProcessBeginSessionResponse
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:694,1
    - Dst: CASEEngineTest::IsExpectedError
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:696,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:699,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:701,1
    - Dst: CASEEngineTest::InitiatorRequestKeyConfirm
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:705,1
    - Dst: CASEEngineTest::ResponderRequiresKeyConfirm
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:705,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:707,1
    - Dst: WeaveCASEEngine::PerformingKeyConfirm
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:707,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:708,1
    - Dst: WeaveCASEEngine::PerformingKeyConfirm
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:708,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:712,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:713,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:715,1
    - Dst: WeaveCASEEngine::GenerateInitiatorKeyConfirm
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:717,1
    - Dst: CASEEngineTest::IsExpectedError
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:719,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:722,1
    - Dst: MutateMessage
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:726,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:728,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:728,1
    - Dst: CASEEngineTest::LogMessageData
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:729,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:730,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:730,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:730,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:734,1
    - Dst: WeaveCASEEngine::ProcessInitiatorKeyConfirm
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:736,1
    - Dst: CASEEngineTest::IsExpectedError
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:738,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:741,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:743,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:747,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:748,1
    - Dst: CASEEngineTest::ExpectedConfig
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:750,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:752,1
    - Dst: WeaveCASEEngine::SelectedConfig
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:752,1
    - Dst: CASEEngineTest::ExpectedConfig
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:752,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:753,1
    - Dst: WeaveCASEEngine::SelectedConfig
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:753,1
    - Dst: CASEEngineTest::ExpectedConfig
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:753,1
    - Dst: CASEEngineTest::ExpectedCurve
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:756,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:758,1
    - Dst: WeaveCASEEngine::SelectedCurve
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:758,1
    - Dst: CASEEngineTest::ExpectedCurve
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:758,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:759,1
    - Dst: WeaveCASEEngine::SelectedCurve
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:759,1
    - Dst: CASEEngineTest::ExpectedCurve
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:759,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:762,1
    - Dst: WeaveCASEEngine::GetSessionKey
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:764,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:765,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:767,1
    - Dst: WeaveCASEEngine::GetSessionKey
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:769,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:770,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:772,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:772,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:775,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:775,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:778,1
    - Dst: CASEEngineTest::IsSuccessExpected
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:778,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:782,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:785,1
    - Dst: WeaveCASEEngine::Shutdown
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:788,1
    - Dst: WeaveCASEEngine::Shutdown
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:789,1
    - Dst: IsComplete
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:791,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:793,1
    - Dst: CASEEngineTest::TestName
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:793,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 161
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 796
      start: 508
    functionDepth: 3
    functionLinenumber: 508
    functionLinenumberEnd: 796
    functionName: CASEEngineTest::Run
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - WeaveCASEEngine::SelectedCurve
    - WeaveCASEEngine::SetResponderRequiresKeyConfirm
    - CASEEngineTest::IsExpectedError
    - WeaveCASEEngine::SelectedConfig
    - WeaveCASEEngine::GenerateBeginSessionRequest
    - CASEEngineTest::LogMessageData
    - printf
    - CASEEngineTest::IsSuccessExpected
    - WeaveCASEEngine::ProcessInitiatorKeyConfirm
    - WeaveCASEEngine::PerformingKeyConfirm
    - nl::Weave::System::PacketBuffer::New
    - WeaveCASEEngine::ProcessBeginSessionResponse
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrQuit
    - CASEEngineTest::ExpectedConfig
    - CASEEngineTest::ResponderRequiresKeyConfirm
    - CASEEngineTest::InitiatorAllowedConfigs
    - CASEEngineTest::ForceRepeatedReconfig
    - ReconfigureContext::Reset
    - WeaveCASEEngine::GenerateBeginSessionResponse
    - ReconfigureContext::Encode
    - WeaveCASEEngine::SetAllowedConfigs
    - WeaveCASEEngine::GetSessionKey
    - CASEEngineTest::InitiatorAllowedCurves
    - CASEEngineTest::TestName
    - Reset
    - BeginSessionResponseContext::Reset
    - CASEEngineTest::ResponderAllowedCurves
    - WeaveCASEEngine::SetAlternateCurves
    - SuccessOrQuit
    - MutateMessage
    - CASEEngineTest::ExpectReconfig
    - CASEEngineTest::ResponderAllowedConfigs
    - WeaveCASEEngine::ProcessBeginSessionRequest
    - WeaveCASEEngine::GenerateInitiatorKeyConfirm
    - WeaveCASEEngine::ProcessReconfigure
    - PacketBuffer*::DataLength
    - memcmp
    - WeaveCASEEngine::SetAllowedCurves
    - CASEEngineTest::ExpectedCurve
    - WeaveCASEEngine::Init
    - BeginSessionRequestContext::Reset
    - WeaveCASEEngine::Shutdown
    - IsComplete
    - BeginSessionRequestContext::SetPerformKeyConfirm
    - DumpMemory
    - PacketBuffer*::Start
    - CASEEngineTest::InitiatorRequestKeyConfirm
    - WeaveCASEEngine::SetAlternateConfigs
    linkageType: ''
    returnType: void
    signature: CASEEngineTest::Run() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 803
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 803
    functionName: CASEEngineTests_BasicTests
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - CASEEngineTest
    linkageType: ''
    returnType: void
    signature: CASEEngineTests_BasicTests()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:845,1
    - Dst: CASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:851,1
    - Dst: CASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:857,1
    - Dst: CASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:863,1
    - Dst: CASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:870,1
    - Dst: CASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:876,1
    - Dst: CASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:883,1
    - Dst: CASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:891,1
    - Dst: CASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 907
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 907
    functionName: CASEEngineTests_ConfigNegotiationTests
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - CASEEngineTest
    linkageType: ''
    returnType: void
    signature: CASEEngineTests_ConfigNegotiationTests()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:914,1
    - Dst: CASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:922,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 930
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 930
    functionName: CASEEngineTests_CurveNegotiationTests
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - CASEEngineTest
    linkageType: ''
    returnType: void
    signature: CASEEngineTests_CurveNegotiationTests()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:935,1
    - Dst: CASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 944
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 944
    functionName: CASEEngineTests_KeyConfirmationTests
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - CASEEngineTest
    linkageType: ''
    returnType: void
    signature: CASEEngineTests_KeyConfirmationTests()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:952,1
    - Dst: time
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:957,1
    - Dst: MessageFuzzer
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:963,1
    - Dst: CASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:968,1
    - Dst: MessageFuzzer
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:992,1
    - Dst: CASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:994,1
    - Dst: MessageFuzzer
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:1019,1
    - Dst: CASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:1021,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 1029
    functionName: CASEEngineTests_FuzzTests
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - time
    - CASEEngineTest
    - MessageFuzzer
    linkageType: ''
    returnType: void
    signature: CASEEngineTests_FuzzTests()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_init
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:1069,1
    - Dst: nl::Weave::Platform::Security::InitSecureRandomDataSource
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:1072,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:1073,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:1075,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:1077,1
    - Dst: CASEEngineTests_BasicTests
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:1080,1
    - Dst: CASEEngineTests_EllipticCurveTests
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:1081,1
    - Dst: CASEEngineTests_ConfigNegotiationTests
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:1082,1
    - Dst: CASEEngineTests_CurveNegotiationTests
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:1083,1
    - Dst: CASEEngineTests_KeyConfirmationTests
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:1084,1
    - Dst: CASEEngineTests_FuzzTests
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:1085,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:1087,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:1089,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 1090
      start: 1064
    functionDepth: 1
    functionLinenumber: 1064
    functionLinenumberEnd: 1090
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - ParseArgs
    - exit
    - CASEEngineTests_FuzzTests
    - CASEEngineTests_KeyConfirmationTests
    - nl::Weave::Platform::Security::InitSecureRandomDataSource
    - CASEEngineTests_BasicTests
    - CASEEngineTests_EllipticCurveTests
    - printf
    - CASEEngineTests_CurveNegotiationTests
    - tcpip_init
    - CASEEngineTests_ConfigNegotiationTests
    - FAIL_ERROR
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:1097,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:1099,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestCASE.cpp:1104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1109
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1109
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/TestCASE.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseInt
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: MockWdmViewClient::GetInstance
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MockWdmViewClient
    signature: '* MockWdmViewClient::GetInstance ()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResourceIdentifier
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:94,1
    - Dst: AddAt
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:96,1
    - Dst: AddAt
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: MockWdmViewClientImpl::MockWdmViewClientImpl
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp
    functionUses: 0
    functionsReached:
    - AddAt
    - ResourceIdentifier
    linkageType: ''
    returnType: void
    signature: MockWdmViewClientImpl::MockWdmViewClientImpl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - aExchangeMgr
    - aTestCaseId
    argTypes:
    - nl::Weave::WeaveExchangeManager*
    - char*
    constantsTouched: []
    func_position:
      end: 108
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 108
    functionName: MockWdmViewClientImpl::Init
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockWdmViewClientImpl::Init (nl::Weave::WeaveExchangeManager *aExchangeMgr,
      const char * const aTestCaseId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:115,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:116,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:118,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:119,1
    - Dst: Binding*::Transport_WRM
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:121,1
    - Dst: Binding*::Addressing_Subnet
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:126,1
    - Dst: Binding*::Prepare
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:131,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:132,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - aPublisherNodeId
    - aSubnetId
    argTypes:
    - uint64_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 138
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 138
    functionName: MockWdmViewClientImpl::StartTesting
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp
    functionUses: 0
    functionsReached:
    - Binding*::Transport_WRM
    - VerifyOrExit
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - Binding*::Prepare
    - WeaveLogFunctError
    - SuccessOrExit
    - Binding*::Addressing_Subnet
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockWdmViewClientImpl::StartTesting(const uint64_t aPublisherNodeId,
      const uint16_t aSubnetId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:145,1
    - Dst: reinterpret_cast<MockWdmViewClientImpl *>
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:147,1
    - Dst: MockWdmViewClientImpl*::mViewClient::Init
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:154,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:155,1
    - Dst: MockWdmViewClientImpl*::mViewClient::SendRequest
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:167,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:168,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:172,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 4
    argNames:
    - apAppState
    - aEvent
    - aErrorCode
    - ' aParam'
    argTypes:
    - void*
    - Binding::EventID
    - WEAVE_ERROR
    - Binding::EventParam
    constantsTouched: []
    func_position:
      end: 177
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 177
    functionName: MockWdmViewClientImpl::BindingEventCallback
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp
    functionUses: 0
    functionsReached:
    - MockWdmViewClientImpl*::mViewClient::SendRequest
    - SuccessOrExit
    - WeaveLogDetail
    - MockWdmViewClientImpl*::mViewClient::Init
    - reinterpret_cast<MockWdmViewClientImpl *>
    - WeaveLogFunctError
    linkageType: ''
    returnType: void
    signature: "MockWdmViewClientImpl::BindingEventCallback (void * const apAppState,
      const Binding::EventID aEvent,\n    const WEAVE_ERROR aErrorCode, Binding::EventParam
      & aParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<MockWdmViewClientImpl *>
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:181,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:186,1
    - Dst: MockWdmViewClientImpl*::mBinding::Release
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:189,1
    - Dst: MockWdmViewClientImpl*::onCompleteTest
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:190,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:193,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:196,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:199,1
    - Dst: MockWdmViewClientImpl*::mBinding::Release
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:202,1
    - Dst: MockWdmViewClientImpl*::onCompleteTest
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:203,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:207,1
    - Dst: MockWdmViewClientImpl*::mBinding::Release
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:210,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:214,1
    - Dst: MockWdmViewClientImpl*::mViewClient::Cancel
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:219,1
    - Dst: MockWdmViewClientImpl*::mBinding::Release
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:220,1
    - Dst: MockWdmViewClientImpl*::onCompleteTest
      Src: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp:221,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - apAppState
    - aEvent
    - aErrorCode
    - ' aEventParam'
    argTypes:
    - void*
    - ViewClient::EventID
    - WEAVE_ERROR
    - ViewClient::EventParam
    constantsTouched: []
    func_position:
      end: 224
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 224
    functionName: MockWdmViewClientImpl::EventCallback
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp
    functionUses: 0
    functionsReached:
    - MockWdmViewClientImpl*::mBinding::Release
    - MockWdmViewClientImpl*::mViewClient::Cancel
    - MockWdmViewClientImpl*::onCompleteTest
    - WeaveLogDetail
    - reinterpret_cast<MockWdmViewClientImpl *>
    linkageType: ''
    returnType: void
    signature: MockWdmViewClientImpl::EventCallback (void * const apAppState, ViewClient::EventID
      aEvent, WEAVE_ERROR aErrorCode, ViewClient::EventParam & aEventParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: MockDeviceDescriptionServer::MockDeviceDescriptionServer
    functionSourceFile: /src/openweave-core/src/test-apps/MockDDServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MockDeviceDescriptionServer::MockDeviceDescriptionServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockDeviceDescriptionServer::DeviceDescriptionServer::Init
      Src: /src/openweave-core/src/test-apps/MockDDServer.cpp:55,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockDDServer.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: MockDeviceDescriptionServer::Init
    functionSourceFile: /src/openweave-core/src/test-apps/MockDDServer.cpp
    functionUses: 0
    functionsReached:
    - MockDeviceDescriptionServer::DeviceDescriptionServer::Init
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockDeviceDescriptionServer::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockDeviceDescriptionServer::DeviceDescriptionServer::Shutdown
      Src: /src/openweave-core/src/test-apps/MockDDServer.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: MockDeviceDescriptionServer::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/MockDDServer.cpp
    functionUses: 0
    functionsReached:
    - MockDeviceDescriptionServer::DeviceDescriptionServer::Shutdown
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockDeviceDescriptionServer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToString
      Src: /src/openweave-core/src/test-apps/MockDDServer.cpp:79,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDDServer.cpp:81,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDDServer.cpp:82,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDDServer.cpp:83,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDDServer.cpp:84,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDDServer.cpp:85,1
    - Dst: GetDeviceDesc
      Src: /src/openweave-core/src/test-apps/MockDDServer.cpp:89,1
    - Dst: MatchTargetFabricId
      Src: /src/openweave-core/src/test-apps/MockDDServer.cpp:91,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDDServer.cpp:106,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDDServer.cpp:109,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 6
    argNames:
    - appState
    - nodeId
    - ' nodeAddr'
    - ' reqMsg'
    - ' sendResp'
    - ' respMsg'
    argTypes:
    - void*
    - uint64_t
    - IPAddress
    - IdentifyRequestMessage
    - bool
    - IdentifyResponseMessage
    constantsTouched: []
    func_position:
      end: 110
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 110
    functionName: MockDeviceDescriptionServer::HandleIdentifyRequest
    functionSourceFile: /src/openweave-core/src/test-apps/MockDDServer.cpp
    functionUses: 0
    functionsReached:
    - GetDeviceDesc
    - MatchTargetFabricId
    - printf
    - ToString
    linkageType: ''
    returnType: void
    signature: MockDeviceDescriptionServer::HandleIdentifyRequest(void *appState,
      uint64_t nodeId, const IPAddress& nodeAddr, const IdentifyRequestMessage& reqMsg,
      bool& sendResp, IdentifyResponseMessage& respMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - entropy
    - entropyLen
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 89
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 89
    functionName: DefaultEntropy
    functionSourceFile: /src/openweave-core/src/test-apps/TestDRBG.cpp
    functionUses: 0
    functionsReached:
    - rand
    linkageType: ''
    returnType: int
    signature: DefaultEntropy(uint8_t *entropy, size_t entropyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - entropy
    - entropyLen
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 106
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 106
    functionName: TestEntropyFunct
    functionSourceFile: /src/openweave-core/src/test-apps/TestDRBG.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: TestEntropyFunct(uint8_t *entropy, size_t entropyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - randomOutput
    - randomOutputLen
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 127
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 127
    functionName: TestRandomOutputFunction
    functionSourceFile: /src/openweave-core/src/test-apps/TestDRBG.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: TestRandomOutputFunction(uint8_t *randomOutput, size_t randomOutputLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:141,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:144,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:146,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:164,1
    - Dst: AES128CTRDRBG::Instantiate
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:168,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:170,1
    - Dst: AES128CTRDRBG::Reseed
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:177,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:178,1
    - Dst: AES128CTRDRBG::Generate
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:184,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:185,1
    - Dst: AES128CTRDRBG::Generate
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:188,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:189,1
    - Dst: TestRandomOutputFunction
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:193,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:194,1
    - Dst: AES128CTRDRBG::Uninstantiate
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 11
    argNames:
    - iterationCount
    - usePR
    - useReseed
    - entropyInput
    - entropyInputLen
    - personalizationString
    - personalizationStringLen
    - additionalInput
    - additionalInputLen
    - randomOutput
    - randomOutputLen
    argTypes:
    - uint8_t
    - bool
    - bool
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 202
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 202
    functionName: TestDRBG
    functionSourceFile: /src/openweave-core/src/test-apps/TestDRBG.cpp
    functionUses: 0
    functionsReached:
    - TestRandomOutputFunction
    - AES128CTRDRBG::Instantiate
    - VerifyOrExit
    - printf
    - AES128CTRDRBG::Reseed
    - SuccessOrExit
    - AES128CTRDRBG::Generate
    - AES128CTRDRBG::Uninstantiate
    linkageType: ''
    returnType: int
    signature: "TestDRBG(uint8_t iterationCount, bool usePR, bool useReseed,\n                    uint8_t
      *entropyInput, size_t entropyInputLen,\n                    uint8_t *personalizationString,
      size_t personalizationStringLen,\n                    uint8_t *additionalInput,
      size_t additionalInputLen,\n                    uint8_t *randomOutput, size_t
      randomOutputLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestDRBG
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:225,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:236,1
    - Dst: TestDRBG
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:249,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:260,1
    - Dst: TestDRBG
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:273,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:284,1
    - Dst: TestDRBG
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:297,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:308,1
    - Dst: TestDRBG
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:321,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:332,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDRBG.cpp:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 336
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 336
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestDRBG.cpp
    functionUses: 0
    functionsReached:
    - printf
    - SuccessOrFail
    - TestDRBG
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: nl::Weave::Profiles::SubscriptionEngine::GetInstance
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: SubscriptionEngine
    signature: '* SubscriptionEngine::GetInstance()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: nl::Weave::Profiles::Platform::CriticalSectionEnter
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionEnter()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: nl::Weave::Profiles::Platform::CriticalSectionExit
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionExit()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: ~WdmUpdateEncoderTest()
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~WdmUpdateEncoderTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResourceIdentifier
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:183,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:186,1
    - Dst: ArraySize
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:186,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:188,1
    - Dst: SetUpdateEncoder
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 191
    functionName: nl::Weave::Profiles::WdmUpdateEncoderTest::WdmUpdateEncoderTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - ArraySize
    - Add
    - SetUpdateEncoder
    - Init
    - ResourceIdentifier
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest::WdmUpdateEncoderTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:196,1
    - Dst: tai_map::clear
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 204
    functionName: nl::Weave::Profiles::WdmUpdateEncoderTest::SetupTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - tai_map::clear
    - Clear
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest::SetupTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 213
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 213
    functionName: nl::Weave::Profiles::WdmUpdateEncoderTest::TearDownTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest::TearDownTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:220,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:221,1
    - Dst: SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:224,1
    - Dst: AvailableDataLength
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 234
      start: 216
    functionDepth: 3
    functionLinenumber: 216
    functionLinenumberEnd: 234
    functionName: nl::Weave::Profiles::WdmUpdateEncoderTest::InitEncoderContext
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - SetDataLength
    - AvailableDataLength
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest::InitEncoderContext(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:238,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:240,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 241
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 241
    functionName: nl::Weave::Profiles::WdmUpdateEncoderTest::TestInitCleanup
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - GetNumItems
    - NL_TEST_ASSERT
    - PRINT_TEST_NAME
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest::TestInitCleanup(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:253,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:254,1
    - Dst: UpdateRequest::Parser::Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:255,1
    - Dst: UpdateRequest::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:257,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:258,1
    - Dst: UpdateRequest::Parser::GetDataList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:262,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:263,1
    - Dst: UpdateRequest::Parser::GetUpdateRequestIndex
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:266,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:267,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:268,1
    - Dst: DataList::Parser::GetReader
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:270,1
    - Dst: GetNextValidItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:276,1
    - Dst: GetItemAt
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:287,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:289,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:290,1
    - Dst: DataElement::Parser::Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:292,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:293,1
    - Dst: DataElement::Parser::GetReaderOnPath
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:295,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:296,1
    - Dst: AddressToHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:299,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:300,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:302,1
    - Dst: Locate
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:304,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:305,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:306,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:307,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:308,1
    - Dst: TraitDataSink*::GetSchemaEngine
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:310,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:311,1
    - Dst: TraitDataSink*::GetSchemaEngine
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:313,1
    - Dst: AreFlagsSet
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:314,1
    - Dst: TraitDataSink*::GetSchemaEngine
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:318,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:321,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:324,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:325,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 3
    argNames:
    - inSuite
    - aBuf
    - aItemToStartFrom
    argTypes:
    - nlTestSuite*
    - PacketBuffer*
    - size_t
    constantsTouched: []
    func_position:
      end: 330
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 330
    functionName: nl::Weave::Profiles::WdmUpdateEncoderTest::VerifyDataList
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - GetItemAt
    - UpdateRequest::Parser::GetUpdateRequestIndex
    - TraitDataSink*::GetSchemaEngine
    - Locate
    - UpdateRequest::Parser::CheckSchemaValidity
    - NL_TEST_ASSERT
    - GetNextValidItem
    - VerifyOrExit
    - DataElement::Parser::GetReaderOnPath
    - DataElement::Parser::Init
    - UpdateRequest::Parser::Init
    - DataList::Parser::GetReader
    - AreFlagsSet
    - SuccessOrExit
    - UpdateRequest::Parser::GetDataList
    - AddressToHandle
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest::VerifyDataList(nlTestSuite *inSuite, PacketBuffer
      *aBuf, size_t aItemToStartFrom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::InitEncoderContext
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:337,1
    - Dst: EncodeRequest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:339,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:341,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:342,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:342,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:343,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::VerifyDataList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 346
      start: 333
    functionDepth: 4
    functionLinenumber: 333
    functionLinenumberEnd: 346
    functionName: nl::Weave::Profiles::WdmUpdateEncoderTest::BasicTestBody
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::WdmUpdateEncoderTest::VerifyDataList
    - nl::Weave::Profiles::WdmUpdateEncoderTest::InitEncoderContext
    - NL_TEST_ASSERT
    - GetPathStoreSize
    - EncodeRequest
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest::BasicTestBody(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:353,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:357,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:360,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:361,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::BasicTestBody
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:363,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:365,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 367
      start: 349
    functionDepth: 5
    functionLinenumber: 349
    functionLinenumberEnd: 367
    functionName: nl::Weave::Profiles::WdmUpdateEncoderTest::TestOneLeaf
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - nl::Weave::Profiles::WdmUpdateEncoderTest::BasicTestBody
    - NL_TEST_ASSERT
    - GetNumItems
    - PRINT_TEST_NAME
    - AddItem
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest::TestOneLeaf(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:374,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:381,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:382,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::BasicTestBody
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:384,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:388,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 389
      start: 370
    functionDepth: 5
    functionLinenumber: 370
    functionLinenumberEnd: 389
    functionName: nl::Weave::Profiles::WdmUpdateEncoderTest::TestRoot
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::WdmUpdateEncoderTest::BasicTestBody
    - NL_TEST_ASSERT
    - GetNumItems
    - PRINT_TEST_NAME
    - AddItem
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest::TestRoot(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:396,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:400,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:403,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:404,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::BasicTestBody
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:406,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:408,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 409
      start: 392
    functionDepth: 5
    functionLinenumber: 392
    functionLinenumberEnd: 409
    functionName: nl::Weave::Profiles::WdmUpdateEncoderTest::TestWholeDictionary
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - nl::Weave::Profiles::WdmUpdateEncoderTest::BasicTestBody
    - NL_TEST_ASSERT
    - GetNumItems
    - PRINT_TEST_NAME
    - AddItem
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest::TestWholeDictionary(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:416,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:420,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:423,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:424,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:426,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:427,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:428,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::BasicTestBody
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:430,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:432,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 433
      start: 412
    functionDepth: 5
    functionLinenumber: 412
    functionLinenumberEnd: 433
    functionName: nl::Weave::Profiles::WdmUpdateEncoderTest::TestTwoProperties
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - nl::Weave::Profiles::WdmUpdateEncoderTest::BasicTestBody
    - NL_TEST_ASSERT
    - GetNumItems
    - PRINT_TEST_NAME
    - AddItem
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest::TestTwoProperties(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:440,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:446,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:449,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:450,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::BasicTestBody
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:453,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:455,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 456
      start: 436
    functionDepth: 5
    functionLinenumber: 436
    functionLinenumberEnd: 456
    functionName: nl::Weave::Profiles::WdmUpdateEncoderTest::TestDictionaryElements
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - nl::Weave::Profiles::WdmUpdateEncoderTest::BasicTestBody
    - NL_TEST_ASSERT
    - GetNumItems
    - PRINT_TEST_NAME
    - AddItem
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest::TestDictionaryElements(nlTestSuite *inSuite,
      void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:463,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:467,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:470,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:471,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::BasicTestBody
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:473,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:475,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 476
      start: 459
    functionDepth: 5
    functionLinenumber: 459
    functionLinenumberEnd: 476
    functionName: nl::Weave::Profiles::WdmUpdateEncoderTest::TestStructure
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - nl::Weave::Profiles::WdmUpdateEncoderTest::BasicTestBody
    - NL_TEST_ASSERT
    - GetNumItems
    - PRINT_TEST_NAME
    - AddItem
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest::TestStructure(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:482,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:484,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:487,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::SetupTest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:489,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:493,1
    - Dst: AvailableDataLength
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:493,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:499,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:502,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:503,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::BasicTestBody
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:505,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:509,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::SetupTest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:514,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:516,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:520,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:523,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:524,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:526,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:528,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:529,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::BasicTestBody
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:531,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:533,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:533,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:536,1
    - Dst: TotalLength
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:537,1
    - Dst: AvailableDataLength
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:537,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:539,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::SetupTest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:547,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:551,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:554,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:555,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:557,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:559,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:560,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:564,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:568,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:569,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::InitEncoderContext
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:571,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:572,1
    - Dst: AvailableDataLength
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:572,1
    - Dst: EncodeRequest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:574,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:576,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::VerifyDataList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:583,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:587,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:587,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:590,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:597,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:599,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:599,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:603,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:603,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:605,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:605,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:611,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:611,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:613,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:616,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:617,1
    - Dst: AvailableDataLength
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:620,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:623,1
    - Dst: EncodeRequest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:625,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:627,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::VerifyDataList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:634,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:635,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:636,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:636,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 76
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 638
      start: 478
    functionDepth: 5
    functionLinenumber: 478
    functionLinenumberEnd: 638
    functionName: nl::Weave::Profiles::WdmUpdateEncoderTest::TestOverflowDictionary
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - nl::Weave::Profiles::WdmUpdateEncoderTest::VerifyDataList
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::Profiles::WdmUpdateEncoderTest::BasicTestBody
    - nl::Weave::Profiles::WdmUpdateEncoderTest::SetupTest
    - NL_TEST_ASSERT
    - GetNumItems
    - AvailableDataLength
    - nl::Weave::Profiles::WdmUpdateEncoderTest::InitEncoderContext
    - GetPropertyDictionaryKey
    - printf
    - TotalLength
    - GetPathStoreSize
    - AddItem
    - PRINT_TEST_NAME
    - EncodeRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest::TestOverflowDictionary(nlTestSuite *inSuite,
      void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:644,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:646,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:649,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::SetupTest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:651,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:655,1
    - Dst: AvailableDataLength
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:655,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:661,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:664,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:665,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::BasicTestBody
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:667,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:671,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::SetupTest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:676,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:678,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:682,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:685,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:686,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:690,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:691,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::BasicTestBody
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:693,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:696,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:696,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:699,1
    - Dst: TotalLength
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:700,1
    - Dst: AvailableDataLength
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:700,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:702,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::SetupTest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:710,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:714,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:717,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:718,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:722,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:723,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:727,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:731,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:732,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::InitEncoderContext
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:734,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:735,1
    - Dst: AvailableDataLength
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:735,1
    - Dst: EncodeRequest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:737,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:739,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::VerifyDataList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:746,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:753,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:753,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:754,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:754,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:759,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:759,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:764,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:764,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:766,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:766,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:771,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:771,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:773,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:776,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:777,1
    - Dst: AvailableDataLength
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:780,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:783,1
    - Dst: EncodeRequest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:785,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:787,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::VerifyDataList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:794,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:795,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:796,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:796,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 76
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 798
      start: 640
    functionDepth: 5
    functionLinenumber: 640
    functionLinenumberEnd: 798
    functionName: nl::Weave::Profiles::WdmUpdateEncoderTest::TestOverflowRoot
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - nl::Weave::Profiles::WdmUpdateEncoderTest::VerifyDataList
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::Profiles::WdmUpdateEncoderTest::BasicTestBody
    - nl::Weave::Profiles::WdmUpdateEncoderTest::SetupTest
    - NL_TEST_ASSERT
    - GetNumItems
    - AvailableDataLength
    - nl::Weave::Profiles::WdmUpdateEncoderTest::InitEncoderContext
    - GetPropertyDictionaryKey
    - printf
    - TotalLength
    - GetPathStoreSize
    - AddItem
    - PRINT_TEST_NAME
    - EncodeRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest::TestOverflowRoot(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:804,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:806,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:809,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::SetupTest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:811,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:815,1
    - Dst: AvailableDataLength
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:815,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:821,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:824,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:825,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::BasicTestBody
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:827,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:831,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::SetupTest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:838,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:842,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:845,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:846,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:850,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:854,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:855,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::InitEncoderContext
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:857,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:858,1
    - Dst: AvailableDataLength
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:858,1
    - Dst: EncodeRequest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:860,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:862,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:863,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:864,1
    - Dst: TotalLength
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:864,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 866
      start: 800
    functionDepth: 5
    functionLinenumber: 800
    functionLinenumberEnd: 866
    functionName: nl::Weave::Profiles::WdmUpdateEncoderTest::TestDataElementTooBig
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::Profiles::WdmUpdateEncoderTest::BasicTestBody
    - nl::Weave::Profiles::WdmUpdateEncoderTest::SetupTest
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::WdmUpdateEncoderTest::InitEncoderContext
    - AvailableDataLength
    - printf
    - TotalLength
    - AddItem
    - PRINT_TEST_NAME
    - EncodeRequest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest::TestDataElementTooBig(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:872,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:879,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:882,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:883,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::InitEncoderContext
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:885,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:886,1
    - Dst: EncodeRequest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:888,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:890,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:891,1
    - Dst: TotalLength
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 892
      start: 868
    functionDepth: 4
    functionLinenumber: 868
    functionLinenumberEnd: 892
    functionName: nl::Weave::Profiles::WdmUpdateEncoderTest::TestBadInputs
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::WdmUpdateEncoderTest::InitEncoderContext
    - TotalLength
    - PRINT_TEST_NAME
    - EncodeRequest
    - AddItem
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest::TestBadInputs(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:898,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:908,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::InitEncoderContext
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:911,1
    - Dst: EncodeRequest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:913,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:915,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:916,1
    - Dst: TotalLength
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:916,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 917
      start: 894
    functionDepth: 4
    functionLinenumber: 894
    functionLinenumberEnd: 917
    functionName: nl::Weave::Profiles::WdmUpdateEncoderTest::TestStoreTooSmall
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::WdmUpdateEncoderTest::InitEncoderContext
    - NL_TEST_ASSERT
    - TotalLength
    - PRINT_TEST_NAME
    - EncodeRequest
    - AddItem
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest::TestStoreTooSmall(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:924,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:926,1
    - Dst: tai_map::clear
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:928,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:938,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:941,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::InitEncoderContext
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:943,1
    - Dst: EncodeRequest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:948,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::VerifyDataList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:950,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:952,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:953,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:953,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:954,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:955,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:962,1
    - Dst: tai_map::clear
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:963,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:967,1
    - Dst: tai_map::erase
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:968,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:971,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:972,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:973,1
    - Dst: AvailableDataLength
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:976,1
    - Dst: EncodeRequest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:978,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::VerifyDataList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:980,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:982,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:982,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:983,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:983,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:986,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:987,1
    - Dst: UpdateRequest::Parser::Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:990,1
    - Dst: UpdateRequest::Parser::GetDataList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:993,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:994,1
    - Dst: DataList::Parser::GetReader
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:997,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:998,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:999,1
    - Dst: DataElement::Parser::Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1002,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1003,1
    - Dst: DataElement::Parser::GetData
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1006,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1007,1
    - Dst: nl::Weave::TLV::TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1011,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1012,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1018,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1019,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1020,1
    - Dst: nl::Weave::TLV::TagNumFromTag
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1020,1
    - Dst: nl::Weave::TLV::TLVReader::GetTag
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1020,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1024,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1025,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 56
    argCount: 3
    argNames:
    - inSuite
    - inContext
    - aRemoveAll
    argTypes:
    - nlTestSuite*
    - void*
    - bool
    constantsTouched: []
    func_position:
      end: 1027
      start: 919
    functionDepth: 4
    functionLinenumber: 919
    functionLinenumberEnd: 1027
    functionName: nl::Weave::Profiles::WdmUpdateEncoderTest::TestRemoveDictionaryItemsBetweenPayloads_loop
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - printf
    - GetPathStoreSize
    - UpdateRequest::Parser::GetDataList
    - DataElement::Parser::GetData
    - UpdateRequest::Parser::Init
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    - nl::Weave::System::PacketBuffer::New
    - AddItem
    - nl::Weave::Profiles::WdmUpdateEncoderTest::VerifyDataList
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::Profiles::WdmUpdateEncoderTest::InitEncoderContext
    - DataElement::Parser::Init
    - nl::Weave::TLV::TagNumFromTag
    - DataList::Parser::GetReader
    - GetNumItems
    - PRINT_TEST_NAME
    - CreatePropertyPathHandle
    - nl::Weave::TLV::TLVReader::EnterContainer
    - nl::Weave::TLV::TLVReader::GetTag
    - AvailableDataLength
    - tai_map::clear
    - tai_map::erase
    - EncodeRequest
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest::TestRemoveDictionaryItemsBetweenPayloads_loop(nlTestSuite
      *inSuite, void *inContext, bool aRemoveAll)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::TestRemoveDictionaryItemsBetweenPayloads_loop
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1030,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::SetupTest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1032,1
    - Dst: nl::Weave::Profiles::WdmUpdateEncoderTest::TestRemoveDictionaryItemsBetweenPayloads_loop
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1037
      start: 1028
    functionDepth: 5
    functionLinenumber: 1028
    functionLinenumberEnd: 1037
    functionName: nl::Weave::Profiles::WdmUpdateEncoderTest::TestRemoveDictionaryItemsBetweenPayloads
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::WdmUpdateEncoderTest::TestRemoveDictionaryItemsBetweenPayloads_loop
    - nl::Weave::Profiles::WdmUpdateEncoderTest::SetupTest
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest::TestRemoveDictionaryItemsBetweenPayloads(nlTestSuite
      *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestInitCleanup
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1052
      start: 1049
    functionDepth: 0
    functionLinenumber: 1049
    functionLinenumberEnd: 1052
    functionName: WdmUpdateEncoderTest_InitCleanup
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - TestInitCleanup
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest_InitCleanup(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestOneLeaf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1057
      start: 1054
    functionDepth: 0
    functionLinenumber: 1054
    functionLinenumberEnd: 1057
    functionName: WdmUpdateEncoderTest_OneLeaf
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - TestOneLeaf
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest_OneLeaf(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestRoot
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1062
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1062
    functionName: WdmUpdateEncoderTest_Root
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - TestRoot
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest_Root(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestWholeDictionary
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1067
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1067
    functionName: WdmUpdateEncoderTest_WholeDictionary
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - TestWholeDictionary
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest_WholeDictionary(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTwoProperties
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1072
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1072
    functionName: WdmUpdateEncoderTest_TwoProperties
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - TestTwoProperties
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest_TwoProperties(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestDictionaryElements
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1077
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1077
    functionName: WdmUpdateEncoderTest_DictionaryElements
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - TestDictionaryElements
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest_DictionaryElements(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestStructure
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1082
      start: 1079
    functionDepth: 0
    functionLinenumber: 1079
    functionLinenumberEnd: 1082
    functionName: WdmUpdateEncoderTest_Structure
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - TestStructure
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest_Structure(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestOverflowDictionary
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1087
      start: 1084
    functionDepth: 0
    functionLinenumber: 1084
    functionLinenumberEnd: 1087
    functionName: WdmUpdateEncoderTest_OverflowDictionary
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - TestOverflowDictionary
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest_OverflowDictionary(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestOverflowRoot
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1092
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1092
    functionName: WdmUpdateEncoderTest_OverflowRoot
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - TestOverflowRoot
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest_OverflowRoot(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestDataElementTooBig
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1097
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1097
    functionName: WdmUpdateEncoderTest_DataElementTooBig
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - TestDataElementTooBig
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest_DataElementTooBig(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestBadInputs
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1102
      start: 1099
    functionDepth: 0
    functionLinenumber: 1099
    functionLinenumberEnd: 1102
    functionName: WdmUpdateEncoderTest_BadInputs
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - TestBadInputs
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest_BadInputs(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestStoreTooSmall
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1107
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1107
    functionName: WdmUpdateEncoderTest_StoreTooSmall
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - TestStoreTooSmall
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest_StoreTooSmall(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestRemoveDictionaryItemsBetweenPayloads
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1112
      start: 1109
    functionDepth: 0
    functionLinenumber: 1109
    functionLinenumberEnd: 1112
    functionName: WdmUpdateEncoderTest_RemoveDictionaryItemsBetweenPayloads
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - TestRemoveDictionaryItemsBetweenPayloads
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest_RemoveDictionaryItemsBetweenPayloads(nlTestSuite
      *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1143
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1143
    functionName: SuiteSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SuiteSetup(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1151
      start: 1148
    functionDepth: 0
    functionLinenumber: 1148
    functionLinenumberEnd: 1151
    functionName: SuiteTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SuiteTeardown(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetupTest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1161
      start: 1156
    functionDepth: 0
    functionLinenumber: 1156
    functionLinenumberEnd: 1161
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - SetupTest
    linkageType: ''
    returnType: int
    signature: TestSetup(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TearDownTest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1171
      start: 1166
    functionDepth: 0
    functionLinenumber: 1166
    functionLinenumberEnd: 1171
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - TearDownTest
    linkageType: ''
    returnType: int
    signature: TestTeardown(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1180,1
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1193,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1196,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp:1198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 1199
      start: 1177
    functionDepth: 1
    functionLinenumber: 1177
    functionLinenumberEnd: 1199
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached:
    - tcpip_init
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 1206
      start: 1203
    functionDepth: 0
    functionLinenumber: 1203
    functionLinenumberEnd: 1206
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: TestBTraitDataSource::TestBTraitDataSource
    functionSourceFile: /src/openweave-core/src/test-apps/MockTestBTrait.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestBTraitDataSource::TestBTraitDataSource(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetVersion
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:47,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:73,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 75
    functionName: TestBTraitDataSource::Reset
    functionSourceFile: /src/openweave-core/src/test-apps/MockTestBTrait.cpp
    functionUses: 0
    functionsReached:
    - SetVersion
    - memset
    linkageType: ''
    returnType: void
    signature: TestBTraitDataSource::Reset(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsLeaf
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:102,1
    - Dst: TestBTraitDataSource::GetLeafData
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 5
    argNames:
    - aHandle
    - aTagToWrite
    - aWriter
    - aIsNull
    - aIsPresent
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 108
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 108
    functionName: TestBTraitDataSource::GetData
    functionSourceFile: /src/openweave-core/src/test-apps/MockTestBTrait.cpp
    functionUses: 0
    functionsReached:
    - IsLeaf
    - TestBTraitDataSource::GetLeafData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TestBTraitDataSource::GetData(PropertyPathHandle aHandle,\n                                          uint64_t
      aTagToWrite,\n                                          TLVWriter &aWriter,\n
      \                                         bool &aIsNull,\n                                          bool
      &aIsPresent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IncrementVersion
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - aHandle
    - isNull
    argTypes:
    - PropertyPathHandle
    - bool
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: TestBTraitDataSource::SetNullifiedPath
    functionSourceFile: /src/openweave-core/src/test-apps/MockTestBTrait.cpp
    functionUses: 0
    functionsReached:
    - IncrementVersion
    linkageType: ''
    returnType: void
    signature: TestBTraitDataSource::SetNullifiedPath(PropertyPathHandle aHandle,
      bool isNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IncrementVersion
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - aHandle
    - isPresent
    argTypes:
    - PropertyPathHandle
    - bool
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: TestBTraitDataSource::SetPresentPath
    functionSourceFile: /src/openweave-core/src/test-apps/MockTestBTrait.cpp
    functionUses: 0
    functionsReached:
    - IncrementVersion
    linkageType: ''
    returnType: void
    signature: TestBTraitDataSource::SetPresentPath(PropertyPathHandle aHandle, bool
      isPresent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:144,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:145,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:147,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:151,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:152,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:154,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:158,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:159,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:161,1
    - Dst: TLVWriter::PutNull
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:167,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:168,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:176,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:177,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:180,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:184,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:185,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:187,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:194,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:195,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:198,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:199,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:201,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:204,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:211,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:212,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:214,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:218,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:219,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:221,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:230,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:231,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:236,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:237,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:239,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:242,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:247,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:248,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:254,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:255,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:256,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:257,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:262,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:263,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:267,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:268,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:272,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:273,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:277,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:278,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:282,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:283,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:292,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:293,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:295,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:299,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:300,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:302,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:306,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:307,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:309,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:313,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:314,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:316,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:320,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:321,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:323,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:327,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:328,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:330,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:334,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:338,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 137
    argCount: 3
    argNames:
    - aLeafHandle
    - aTagToWrite
    - aWriter
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 340
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 340
    functionName: TestBTraitDataSource::GetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockTestBTrait.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Write64
    - nl::Weave::Encoding::LittleEndian::Write16
    - TLVWriter::PutBoolean
    - TLVWriter::PutBytes
    - TLVWriter::EndContainer
    - TLVWriter::PutNull
    - WeaveLogDetail
    - TLVWriter::PutString
    - SuccessOrExit
    - WeaveLogFunctError
    - TLVWriter::Put
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestBTraitDataSource::GetLeafData(PropertyPathHandle aLeafHandle, uint64_t
      aTagToWrite, TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aDictionaryHandle
    - aContext
    - aKey
    argTypes:
    - PropertyPathHandle
    - uintptr_t
    - PropertyDictionaryKey
    constantsTouched: []
    func_position:
      end: 345
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 345
    functionName: TestBTraitDataSource::GetNextDictionaryItemKey
    functionSourceFile: /src/openweave-core/src/test-apps/MockTestBTrait.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestBTraitDataSource::GetNextDictionaryItemKey(PropertyPathHandle aDictionaryHandle,
      uintptr_t &aContext, PropertyDictionaryKey &aKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 350
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 350
    functionName: TestBTraitDataSink::TestBTraitDataSink
    functionSourceFile: /src/openweave-core/src/test-apps/MockTestBTrait.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestBTraitDataSink::TestBTraitDataSink()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearVersion
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:354,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:356,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 358
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 358
    functionName: TestBTraitDataSink::Reset
    functionSourceFile: /src/openweave-core/src/test-apps/MockTestBTrait.cpp
    functionUses: 0
    functionsReached:
    - ClearVersion
    - memset
    linkageType: ''
    returnType: void
    signature: TestBTraitDataSink::Reset(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aHandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 366
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 366
    functionName: TestBTraitDataSink::SetDataCalled
    functionSourceFile: /src/openweave-core/src/test-apps/MockTestBTrait.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestBTraitDataSink::SetDataCalled(PropertyPathHandle aHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - aHandle
    - aIsNull
    argTypes:
    - PropertyPathHandle
    - bool
    constantsTouched: []
    func_position:
      end: 374
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 374
    functionName: TestBTraitDataSink::SetPathHandleNull
    functionSourceFile: /src/openweave-core/src/test-apps/MockTestBTrait.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestBTraitDataSink::SetPathHandleNull(PropertyPathHandle aHandle, bool
      aIsNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - aHandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 384
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 384
    functionName: TestBTraitDataSink::IsPathHandleSet
    functionSourceFile: /src/openweave-core/src/test-apps/MockTestBTrait.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: TestBTraitDataSink::IsPathHandleSet(PropertyPathHandle aHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - aHandle
    argTypes:
    - PropertyPathHandle
    constantsTouched: []
    func_position:
      end: 394
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 394
    functionName: TestBTraitDataSink::IsPathHandleNull
    functionSourceFile: /src/openweave-core/src/test-apps/MockTestBTrait.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: TestBTraitDataSink::IsPathHandleNull(PropertyPathHandle aHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestBTraitDataSink::SetDataCalled
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:401,1
    - Dst: TestBTraitDataSink::SetPathHandleNull
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:402,1
    - Dst: IsLeaf
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:404,1
    - Dst: TestBTraitDataSink::SetLeafData
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - aHandle
    - aReader
    - aIsNull
    argTypes:
    - PropertyPathHandle
    - TLVReader
    - bool
    constantsTouched: []
    func_position:
      end: 409
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 409
    functionName: TestBTraitDataSink::SetData
    functionSourceFile: /src/openweave-core/src/test-apps/MockTestBTrait.cpp
    functionUses: 0
    functionsReached:
    - TestBTraitDataSink::SetDataCalled
    - IsLeaf
    - TestBTraitDataSink::SetPathHandleNull
    - TestBTraitDataSink::SetLeafData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestBTraitDataSink::SetData(PropertyPathHandle aHandle, TLVReader &aReader,
      bool aIsNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestBTraitDataSink::SetDataCalled
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:415,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:423,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:424,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:426,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:430,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:431,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:433,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:437,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:438,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:440,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:444,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:445,1
    - Dst: TestBTraitDataSink::SetPathHandleNull
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:446,1
    - Dst: TestBTraitDataSink::SetPathHandleNull
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:448,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:450,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:455,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:456,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:458,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:466,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:467,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:469,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:471,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:472,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:474,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:478,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:487,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:488,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:490,1
    - Dst: TLVReader::GetString
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:494,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:495,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:497,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:501,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:502,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:504,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:508,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:509,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:511,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:515,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:516,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:518,1
    - Dst: TLVReader::GetString
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:522,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:523,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:525,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTestBTrait.cpp:529,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 78
    argCount: 2
    argNames:
    - aLeafHandle
    - aReader
    argTypes:
    - PropertyPathHandle
    - TLVReader
    constantsTouched: []
    func_position:
      end: 534
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 534
    functionName: TestBTraitDataSink::SetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockTestBTrait.cpp
    functionUses: 1
    functionsReached:
    - TestBTraitDataSink::SetPathHandleNull
    - TLVReader::Next
    - TLVReader::EnterContainer
    - TLVReader::GetString
    - TLVReader::ExitContainer
    - WeaveLogDetail
    - SuccessOrExit
    - TestBTraitDataSink::SetDataCalled
    - TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestBTraitDataSink::SetLeafData(PropertyPathHandle aLeafHandle, TLVReader
      &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:116,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:118,1
    - Dst: IsPersistentTunnelSessionPresent
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:122,1
    - Dst: RestorePersistedTunnelCASESession
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - msgLayer
    - con
    argTypes:
    - WeaveMessageLayer*
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 126
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 126
    functionName: HandleConnectionReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp
    functionUses: 3
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - RestorePersistedTunnelCASESession
    - WeaveLogDetail
    - IsPersistentTunnelSessionPresent
    linkageType: ''
    returnType: void
    signature: HandleConnectionReceived(WeaveMessageLayer *msgLayer, WeaveConnection
      *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:138,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:141,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:144,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 155
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 155
    functionName: TunServerInit
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp
    functionUses: 0
    functionsReached:
    - RegisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TunServerInit (WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:161,1
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:163,1
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:165,1
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 171
    functionName: TunServerShutdown
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp
    functionUses: 0
    functionsReached:
    - UnregisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TunServerShutdown (void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: PersistedSessionKeyExists
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp
    functionUses: 0
    functionsReached:
    - access
    linkageType: ''
    returnType: bool
    signature: PersistedSessionKeyExists(const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PersistedSessionKeyExists
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - peerNodeId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: IsPersistentTunnelSessionPresent
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp
    functionUses: 1
    functionsReached:
    - PersistedSessionKeyExists
    linkageType: ''
    returnType: bool
    signature: IsPersistentTunnelSessionPresent(uint64_t peerNodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:194,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:197,1
    - Dst: PersistedSessionKeyExists
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:197,1
    - Dst: FindSessionKey
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:203,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:205,1
    - Dst: nl::Weave::WeaveSessionKey*::SetResumptionMsgIdsValid
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:208,1
    - Dst: SuspendSession
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:211,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:216,1
    - Dst: std::ofstream::open
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:220,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:222,1
    - Dst: std::ofstream::is_open
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:222,1
    - Dst: std::ofstream::write
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:225,1
    - Dst: std::ofstream::close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:227,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:229,1
    - Dst: std::ofstream::good
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:229,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:232,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - con
    argTypes:
    - nl::Weave::WeaveConnection*
    constantsTouched: []
    func_position:
      end: 241
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 241
    functionName: SuspendAndPersistTunnelCASESession
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp
    functionUses: 0
    functionsReached:
    - SuspendSession
    - std::ofstream::open
    - FindSessionKey
    - VerifyOrExit
    - PersistedSessionKeyExists
    - std::ofstream::close
    - std::ofstream::good
    - std::ofstream::is_open
    - std::ofstream::write
    - printf
    - nl::Weave::WeaveSessionKey*::SetResumptionMsgIdsValid
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SuspendAndPersistTunnelCASESession(nl::Weave::WeaveConnection *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PersistedSessionKeyExists
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:251,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:253,1
    - Dst: std::ifstream::open
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:257,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:258,1
    - Dst: std::ifstream::is_open
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:258,1
    - Dst: std::ifstream::seekg
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:261,1
    - Dst: std::ifstream::seekg
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:263,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:265,1
    - Dst: std::ifstream::read
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:268,1
    - Dst: std::ifstream::close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:270,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:272,1
    - Dst: std::ifstream::fail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:272,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:276,1
    - Dst: std::remove
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:276,1
    - Dst: RestoreSession
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:280,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:281,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:283,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:287,1
    - Dst: std::ifstream::is_open
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:290,1
    - Dst: std::ifstream::close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:292,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 1
    argNames:
    - con
    argTypes:
    - nl::Weave::WeaveConnection*
    constantsTouched: []
    func_position:
      end: 301
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 301
    functionName: RestorePersistedTunnelCASESession
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp
    functionUses: 1
    functionsReached:
    - std::ifstream::seekg
    - std::remove
    - std::ifstream::is_open
    - std::ifstream::close
    - RestoreSession
    - VerifyOrExit
    - PersistedSessionKeyExists
    - std::ifstream::fail
    - std::ifstream::read
    - printf
    - SuccessOrExit
    - std::ifstream::open
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: RestorePersistedTunnelCASESession(nl::Weave::WeaveConnection *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuspendAndPersistTunnelCASESession
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:307,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - con
    argTypes:
    - nl::Weave::WeaveConnection*
    constantsTouched: []
    func_position:
      end: 313
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 313
    functionName: HandleSessionPersistOnTunnelClosure
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp
    functionUses: 0
    functionsReached:
    - printf
    - SuspendAndPersistTunnelCASESession
    linkageType: ''
    returnType: void
    signature: HandleSessionPersistOnTunnelClosure(nl::Weave::WeaveConnection *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:326,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:327,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:329,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:332,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:333,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:334,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:339,1
    - Dst: nl::Weave::TLV::TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:342,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:343,1
    - Dst: nl::Weave::TLV::TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:346,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:346,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:347,1
    - Dst: nl::Weave::TLV::TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:350,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:351,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:353,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:354,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:357,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 4
    argNames:
    - ec
    - profileId
    - tunStatusCode
    - isRoutingRestricted
    argTypes:
    - ExchangeContext*
    - uint32_t
    - uint32_t
    - bool
    constantsTouched: []
    func_position:
      end: 365
      start: 316
    functionDepth: 3
    functionLinenumber: 316
    functionLinenumberEnd: 365
    functionName: SendStatusReportResponse
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::Init
    - nl::Weave::TLV::TLVWriter::StartContainer
    - PacketBuffer*::SetDataLength
    - nl::Weave::TLV::TLVWriter::EndContainer
    - nl::Weave::Encoding::LittleEndian::Write16
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - ExchangeContext*::SendMessage
    - ProfileTag
    - nl::Weave::TLV::TLVWriter::Finalize
    - SuccessOrExit
    - PacketBuffer*::Start
    - nl::Weave::TLV::TLVWriter::PutBoolean
    - nl::Weave::Encoding::LittleEndian::Write32
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SendStatusReportResponse(ExchangeContext *ec, uint32_t profileId,
      uint32_t tunStatusCode,\n                                     bool isRoutingRestricted)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:388,1
    - Dst: static_cast<Role>
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:390,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:390,1
    - Dst: static_cast<TunnelType>
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:392,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:392,1
    - Dst: static_cast<SrcInterfaceType>
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:394,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:394,1
    - Dst: static_cast<LivenessStrategy>
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:396,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:396,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:398,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:400,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:405,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:408,1
    - Dst: WeaveTunnelRoute::DecodeFabricTunnelRoutes
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:409,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:410,1
    - Dst: SendStatusReportResponse
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:414,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:415,1
    - Dst: SendStatusReportResponse
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:426,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:427,1
    - Dst: WeaveTunnelRoute::DecodeFabricTunnelRoutes
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:432,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:433,1
    - Dst: SendStatusReportResponse
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:435,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:436,1
    - Dst: SendStatusReportResponse
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:441,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:442,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:450,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:454,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 456
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 456
    functionName: HandleTunnelControlMsg
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<SrcInterfaceType>
    - nl::Weave::Encoding::Read8
    - static_cast<LivenessStrategy>
    - SendStatusReportResponse
    - ExchangeContext*::Close
    - PacketBuffer*::SetStart
    - nl::Weave::System::PacketBuffer::Free
    - static_cast<TunnelType>
    - memset
    - WeaveTunnelRoute::DecodeFabricTunnelRoutes
    - SuccessOrExit
    - WeaveLogDetail
    - PacketBuffer*::Start
    - static_cast<Role>
    - nl::Weave::Encoding::LittleEndian::Read16
    linkageType: ''
    returnType: void
    signature: "HandleTunnelControlMsg (ExchangeContext *ec, const IPPacketInfo *pktInfo,\n
      \                            const WeaveMessageInfo *msgInfo, uint32_t profileId,\n
      \                            uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:462,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:466,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:471,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 476
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 476
    functionName: HandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp
    functionUses: 2
    functionsReached:
    - WeaveLogError
    - WeaveConnection*::PeerAddr::ToString
    - WeaveLogDetail
    - WeaveConnection*::Close
    linkageType: ''
    returnType: void
    signature: HandleConnectionClosed (WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:486,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - sm
    - con
    - reqState
    - sessionKeyId
    - peerNodeId
    - encType
    argTypes:
    - WeaveSecurityManager*
    - WeaveConnection*
    - void*
    - uint16_t
    - uint64_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 491
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 491
    functionName: HandleSecureSessionEstablished
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: "HandleSecureSessionEstablished (WeaveSecurityManager *sm, WeaveConnection
      *con,\n                                     void *reqState, uint16_t sessionKeyId,\n
      \                                    uint64_t peerNodeId, uint8_t encType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:500,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:503,1
    - Dst: StatusReportStr
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:504,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:506,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:507,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 6
    argNames:
    - sm
    - con
    - reqState
    - localErr
    - peerNodeId
    - statusReport
    argTypes:
    - WeaveSecurityManager*
    - WeaveConnection*
    - void*
    - WEAVE_ERROR
    - uint64_t
    - StatusReport*
    constantsTouched: []
    func_position:
      end: 508
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 508
    functionName: HandleSecureSessionError
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - WeaveConnection*::PeerAddr::ToString
    - WeaveLogDetail
    - ErrorStr
    - StatusReportStr
    linkageType: ''
    returnType: void
    signature: "HandleSecureSessionError (WeaveSecurityManager *sm, WeaveConnection
      *con,\n                               void *reqState, WEAVE_ERROR localErr,\n
      \                              uint64_t peerNodeId, StatusReport *statusReport)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetupFaultInjectionContext
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:524,1
    - Dst: SetSignalHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:525,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:527,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:528,1
    - Dst: ResolveWeaveNetworkOptions
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:529,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:531,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:534,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:535,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:536,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:540,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:541,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:542,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:543,1
    - Dst: nl::Weave::Stats::UpdateSnapshot
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:545,1
    - Dst: TunServerInit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:547,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:548,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:556,1
    - Dst: TunServerShutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:560,1
    - Dst: ProcessStats
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:562,1
    - Dst: PrintFaultInjectionCounters
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:563,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:565,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:566,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp:567,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 571
      start: 513
    functionDepth: 4
    functionLinenumber: 513
    functionLinenumberEnd: 571
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp
    functionUses: 0
    functionsReached:
    - ShutdownSystemLayer
    - InitWeaveStack
    - nl::Weave::Stats::UpdateSnapshot
    - exit
    - ServiceNetwork
    - ParseArgsFromEnvVar
    - TunServerShutdown
    - WeaveLogDetail
    - ResolveWeaveNetworkOptions
    - ShutdownWeaveStack
    - ParseArgs
    - InitNetwork
    - SetupFaultInjectionContext
    - TunServerInit
    - PrintFaultInjectionCounters
    - SetSignalHandler
    - InitSystemLayer
    - ProcessStats
    - ShutdownNetwork
    - FAIL_ERROR
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:47,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:48,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:48,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:48,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:50,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:51,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:51,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:51,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:53,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:54,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:54,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:54,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:56,1
    - Dst: IntegrityTypeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:59,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:60,1
    - Dst: IntegrityTypeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:62,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:63,1
    - Dst: IntegrityTypeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:65,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:66,1
    - Dst: IntegrityTypeList::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:72,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:73,1
    - Dst: IntegrityTypeList::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:79,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:80,1
    - Dst: IntegrityTypeList::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:86,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:87,1
    - Dst: IntegrityTypeList::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:93,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:94,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:102,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:103,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:110,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:112,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:113,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:120,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:122,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:123,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:129,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:130,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:138,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:139,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:140,1
    - Dst: IntegrityTypeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:145,1
    - Dst: IntegrityTypeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:146,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:147,1
    - Dst: IntegrityTypeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:149,1
    - Dst: IntegrityTypeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:150,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:151,1
    - Dst: IntegrityTypeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:153,1
    - Dst: IntegrityTypeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:154,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:155,1
    - Dst: IntegrityTypeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:157,1
    - Dst: IntegrityTypeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:158,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:159,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:161,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:162,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:163,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:164,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 68
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 165
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 165
    functionName: WeaveTestIntegrityTypeList
    functionSourceFile: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - IntegrityTypeList::pack
    - nl::Weave::System::PacketBuffer::Free
    - PacketBuffer*::SetStart
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
    - PacketBuffer*::MaxDataLength
    - PacketBuffer*::Start
    - nl::Weave::System::PacketBuffer::New
    - IntegrityTypeList::init
    linkageType: ''
    returnType: void
    signature: WeaveTestIntegrityTypeList(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:176,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:177,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:177,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:177,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:179,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:180,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:180,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:180,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:182,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:183,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:183,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:183,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:185,1
    - Dst: UpdateSchemeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:188,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:189,1
    - Dst: UpdateSchemeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:191,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:192,1
    - Dst: UpdateSchemeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:194,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:195,1
    - Dst: UpdateSchemeList::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:201,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:202,1
    - Dst: UpdateSchemeList::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:208,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:209,1
    - Dst: UpdateSchemeList::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:215,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:216,1
    - Dst: UpdateSchemeList::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:222,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:223,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::UpdateSchemeList::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:231,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:232,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:239,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::UpdateSchemeList::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:241,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:242,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:249,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::UpdateSchemeList::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:251,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:252,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::UpdateSchemeList::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:258,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:259,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:267,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::UpdateSchemeList::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:268,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:269,1
    - Dst: UpdateSchemeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:274,1
    - Dst: UpdateSchemeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:275,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:276,1
    - Dst: UpdateSchemeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:278,1
    - Dst: UpdateSchemeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:279,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:280,1
    - Dst: UpdateSchemeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:282,1
    - Dst: UpdateSchemeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:283,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:284,1
    - Dst: UpdateSchemeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:286,1
    - Dst: UpdateSchemeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:287,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:288,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:290,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:291,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:292,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:293,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 68
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 294
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 294
    functionName: WeaveTestUpdateSchemeList
    functionSourceFile: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp
    functionUses: 0
    functionsReached:
    - UpdateSchemeList::init
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::Free
    - PacketBuffer*::SetStart
    - NL_TEST_ASSERT
    - UpdateSchemeList::pack
    - PacketBuffer*::MaxDataLength
    - PacketBuffer*::Start
    - nl::Weave::Profiles::SoftwareUpdate::UpdateSchemeList::parse
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: WeaveTestUpdateSchemeList(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:304,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:305,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:305,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:305,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:307,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:308,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:308,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:308,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:310,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:311,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:311,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:311,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:313,1
    - Dst: IntegritySpec::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:316,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:317,1
    - Dst: IntegritySpec::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:319,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:320,1
    - Dst: IntegritySpec::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:327,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:328,1
    - Dst: IntegritySpec::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:334,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:335,1
    - Dst: IntegritySpec::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:341,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:342,1
    - Dst: IntegritySpec::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:348,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:349,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegritySpec::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:357,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:358,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:366,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegritySpec::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:368,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:369,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:371,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegritySpec::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:379,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:380,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:386,1
    - Dst: IntegritySpec::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:389,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegritySpec::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:390,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:391,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:396,1
    - Dst: IntegritySpec::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:399,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegritySpec::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:402,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:403,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:408,1
    - Dst: IntegritySpec::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:411,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegritySpec::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:414,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:415,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:418,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:419,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:420,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:421,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 65
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 422
      start: 296
    functionDepth: 3
    functionLinenumber: 296
    functionLinenumberEnd: 422
    functionName: WeaveTestIntegritySpec
    functionSourceFile: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Profiles::SoftwareUpdate::IntegritySpec::parse
    - nl::Weave::System::PacketBuffer::Free
    - PacketBuffer*::SetStart
    - NL_TEST_ASSERT
    - PacketBuffer*::MaxDataLength
    - IntegritySpec::init
    - PacketBuffer*::Start
    - IntegritySpec::pack
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: WeaveTestIntegritySpec(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:434,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:435,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:436,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:437,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:438,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 440
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 440
    functionName: WeaveTestProductSpec
    functionSourceFile: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: WeaveTestProductSpec(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:454,1
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:456,1
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:458,1
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:460,1
    - Dst: IntegrityTypeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:466,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:467,1
    - Dst: UpdateSchemeList::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:469,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:470,1
    - Dst: ReferencedString::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:472,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:472,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:472,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:473,1
    - Dst: ReferencedString::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:475,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:475,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:475,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:476,1
    - Dst: ReferencedString::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:478,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:478,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:478,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:479,1
    - Dst: ReferencedTLVData::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:481,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:482,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:490,1
    - Dst: ImageQuery::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:492,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:493,1
    - Dst: ImageQuery::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:495,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:496,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ImageQuery::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:498,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:499,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:500,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:501,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:503,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:511,1
    - Dst: ImageQuery::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:513,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:514,1
    - Dst: ImageQuery::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:516,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:517,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ImageQuery::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:519,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:520,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:521,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:523,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:531,1
    - Dst: ImageQuery::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:533,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:534,1
    - Dst: ImageQuery::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:536,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:537,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ImageQuery::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:539,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:540,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:541,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:543,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:551,1
    - Dst: ImageQuery::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:553,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:554,1
    - Dst: ImageQuery::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:556,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:557,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ImageQuery::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:559,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:560,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:561,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:563,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:571,1
    - Dst: ImageQuery::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:573,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:574,1
    - Dst: ImageQuery::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:576,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:577,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ImageQuery::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:579,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:580,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:581,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:583,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:590,1
    - Dst: ImageQuery::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:592,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:594,1
    - Dst: ImageQuery::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:596,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:597,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ImageQuery::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:599,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:600,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:601,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:602,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:604,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:612,1
    - Dst: ImageQuery::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:615,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:616,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:620,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:621,1
    - Dst: ImageQuery::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:622,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:623,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:625,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:632,1
    - Dst: ImageQuery::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:635,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:637,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:641,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:642,1
    - Dst: ImageQuery::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:643,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:644,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:646,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:655,1
    - Dst: ImageQuery::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:657,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:658,1
    - Dst: ImageQuery::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:660,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:661,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:665,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ImageQuery::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:666,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:667,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:669,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:677,1
    - Dst: ImageQuery::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:679,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:680,1
    - Dst: ImageQuery::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:682,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:683,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:684,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:688,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ImageQuery::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:689,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:690,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:692,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 122
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 694
      start: 442
    functionDepth: 3
    functionLinenumber: 442
    functionLinenumberEnd: 694
    functionName: WeaveTestImageQuery
    functionSourceFile: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp
    functionUses: 0
    functionsReached:
    - ReferencedTLVData::ReferencedTLVData
    - UpdateSchemeList::init
    - ReferencedString::init
    - ImageQuery::init
    - PacketBuffer*::DataLength
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::Free
    - PacketBuffer*::SetStart
    - ReferencedString::ReferencedString
    - NL_TEST_ASSERT
    - ImageQuery::pack
    - nl::Weave::Profiles::SoftwareUpdate::ImageQuery::parse
    - static_cast<uint8_t>
    - strlen
    - ReferencedTLVData::init
    - nl::Weave::System::PacketBuffer::New
    - IntegrityTypeList::init
    linkageType: ''
    returnType: void
    signature: WeaveTestImageQuery(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:702,1
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:708,1
    - Dst: ReferencedString::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:710,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:710,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:710,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:711,1
    - Dst: ReferencedString::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:713,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:713,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:713,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:714,1
    - Dst: IntegritySpec::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:716,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:717,1
    - Dst: ImageQueryResponse::init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:719,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:720,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:725,1
    - Dst: ImageQueryResponse::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:727,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:728,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ImageQueryResponse::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:730,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:731,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:732,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:734,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:740,1
    - Dst: ImageQueryResponse::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:744,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:745,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:746,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:750,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:751,1
    - Dst: ImageQueryResponse::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:752,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:753,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:755,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:761,1
    - Dst: ImageQueryResponse::pack
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:763,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:764,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:766,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:769,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ImageQueryResponse::parse
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:770,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:771,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:773,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 775
      start: 696
    functionDepth: 3
    functionLinenumber: 696
    functionLinenumberEnd: 775
    functionName: WeaveTestImageQueryResponse
    functionSourceFile: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SoftwareUpdate::ImageQueryResponse::parse
    - ReferencedString::init
    - static_cast<uint16_t>
    - PacketBuffer*::DataLength
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::Free
    - PacketBuffer*::SetStart
    - ReferencedString::ReferencedString
    - NL_TEST_ASSERT
    - ImageQueryResponse::init
    - static_cast<uint8_t>
    - strlen
    - IntegritySpec::init
    - ImageQueryResponse::pack
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: WeaveTestImageQueryResponse(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_init
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 797
      start: 791
    functionDepth: 1
    functionLinenumber: 791
    functionLinenumberEnd: 797
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp
    functionUses: 0
    functionsReached:
    - tcpip_init
    linkageType: ''
    returnType: int
    signature: TestSetup(void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 805
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 805
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestTeardown(void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:812,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:815,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 818
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 818
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp
    functionUses: 0
    functionsReached:
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(int argc, char * argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:68,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - dst
    - src
    - size
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: MOCK_strlcpy
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - strncpy
    linkageType: ''
    returnType: size_t
    signature: MOCK_strlcpy(char * dst, const char * src, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetVersion
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:82,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:83,1
    - Dst: MOCK_strlcpy
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: (&LocaleSettingsTrait::TraitSchema)
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - SetVersion
    - memset
    - MOCK_strlcpy
    linkageType: ''
    returnType: TraitDataSource
    signature: (&LocaleSettingsTrait::TraitSchema)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:92,1
    - Dst: MOCK_strlcpy
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:94,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:97,1
    - Dst: Unlock
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 100
    functionName: LocaleSettingsTraitDataSource::Mutate
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - SetDirty
    - Unlock
    - Lock
    - MOCK_strlcpy
    linkageType: ''
    returnType: void
    signature: LocaleSettingsTraitDataSource::Mutate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::GetString
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:111,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:112,1
    - Dst: strncmp
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:113,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:115,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:116,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:119,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - aLeafHandle
    - aReader
    argTypes:
    - PropertyPathHandle
    - TLVReader
    constantsTouched: []
    func_position:
      end: 129
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 129
    functionName: LocaleSettingsTraitDataSource::SetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - strncmp
    - TLVReader::GetString
    - memcpy
    - WeaveLogDetail
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LocaleSettingsTraitDataSource::SetLeafData(PropertyPathHandle aLeafHandle,
      TLVReader &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:140,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:141,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:143,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:147,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:148,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - aLeafHandle
    - aTagToWrite
    - aWriter
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 155
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 155
    functionName: LocaleSettingsTraitDataSource::GetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - ExitNow
    - TLVWriter::PutString
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LocaleSettingsTraitDataSource::GetLeafData(PropertyPathHandle aLeafHandle,
      uint64_t aTagToWrite, TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:174,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:176,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:179,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:180,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:185,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:190,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:191,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:192,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:196,1
    - Dst: Unlock
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 199
    functionName: LocaleCapabilitiesTraitDataSource::Mutate
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - Unlock
    - GetVersion
    - memcpy
    - SetDirty
    - Lock
    linkageType: ''
    returnType: void
    signature: LocaleCapabilitiesTraitDataSource::Mutate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:215,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:215,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:217,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:218,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:220,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:222,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:222,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:223,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:223,1
    - Dst: TLVReader::GetString
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:225,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:226,1
    - Dst: strncmp
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:227,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:229,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:230,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:233,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:239,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:245,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:246,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:250,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - aLeafHandle
    - aReader
    argTypes:
    - PropertyPathHandle
    - TLVReader
    constantsTouched: []
    func_position:
      end: 256
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 256
    functionName: LocaleCapabilitiesTraitDataSource::SetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Next
    - TLVReader::GetType
    - strncmp
    - VerifyOrExit
    - ExitNow
    - TLVReader::EnterContainer
    - TLVReader::GetString
    - TLVReader::ExitContainer
    - memcpy
    - TLVReader::GetTag
    - WeaveLogDetail
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LocaleCapabilitiesTraitDataSource::SetLeafData(PropertyPathHandle aLeafHandle,
      TLVReader &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:268,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:269,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:272,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:273,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:275,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:278,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:279,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:282,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:283,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - aLeafHandle
    - aTagToWrite
    - aWriter
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 290
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 290
    functionName: LocaleCapabilitiesTraitDataSource::GetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - ExitNow
    - TLVWriter::PutString
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveLogFunctError
    - TLVWriter::EndContainer
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LocaleCapabilitiesTraitDataSource::GetLeafData(PropertyPathHandle aLeafHandle,
      uint64_t aTagToWrite, TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetVersion
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 299
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 299
    functionName: BoltLockSettingTraitDataSource::BoltLockSettingTraitDataSource
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - SetVersion
    linkageType: ''
    returnType: void
    signature: BoltLockSettingTraitDataSource::BoltLockSettingTraitDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:303,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:305,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:306,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:310,1
    - Dst: Unlock
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 315
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 315
    functionName: BoltLockSettingTraitDataSource::Mutate
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - GetVersion
    - Unlock
    - Lock
    - SetDirty
    linkageType: ''
    returnType: void
    signature: BoltLockSettingTraitDataSource::Mutate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:324,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:325,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:327,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:331,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:332,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:334,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:338,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:339,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:343,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - aLeafHandle
    - aTagToWrite
    - aWriter
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 345
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 345
    functionName: BoltLockSettingTraitDataSource::GetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - TLVWriter::PutBoolean
    - ExitNow
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveLogFunctError
    - TLVWriter::Put
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BoltLockSettingTraitDataSource::GetLeafData(PropertyPathHandle aLeafHandle,
      uint64_t aTagToWrite, TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:403,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:406,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:414,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:415,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:416,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:430,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:431,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:432,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:433,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:443,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:444,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:447,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:451,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:458,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:465,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:466,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:467,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:468,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:469,1
    - Dst: TestATraitDataSource::SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:483,1
    - Dst: TestATraitDataSource::SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:484,1
    - Dst: TestATraitDataSource::SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:485,1
    - Dst: TestATraitDataSource::SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:486,1
    - Dst: TestATraitDataSource::SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:487,1
    - Dst: TestATraitDataSource::SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:488,1
    - Dst: TestATraitDataSource::SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:493,1
    - Dst: TestATraitDataSource::SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:494,1
    - Dst: TestATraitDataSource::SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:495,1
    - Dst: TestATraitDataSource::SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:496,1
    - Dst: TestATraitDataSource::SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:497,1
    - Dst: TestATraitDataSource::SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:498,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:503,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:525,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:532,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:532,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:536,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:536,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:540,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:540,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:541,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:541,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:547,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:547,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:548,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:548,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:549,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:549,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:550,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:550,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:551,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:551,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:552,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:552,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:553,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:553,1
    - Dst: erase
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:564,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:565,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:565,1
    - Dst: erase
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:568,1
    - Dst: erase
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:569,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:570,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:570,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:571,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:571,1
    - Dst: erase
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:574,1
    - Dst: erase
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:575,1
    - Dst: erase
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:576,1
    - Dst: erase
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:577,1
    - Dst: erase
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:578,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:580,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:580,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:581,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:581,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:582,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:582,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:583,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:583,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:584,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:584,1
    - Dst: erase
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:587,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:588,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:588,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:591,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:591,1
    - Dst: erase
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:596,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:597,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:597,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:600,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:600,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:605,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:605,1
    - Dst: erase
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:607,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:608,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:608,1
    - Dst: erase
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:611,1
    - Dst: erase
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:612,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:613,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:613,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:614,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:614,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:619,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:619,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:620,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:620,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:623,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:624,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:630,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:640,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:641,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:642,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:650,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:651,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:652,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:653,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:662,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:663,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:672,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:674,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:688,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:689,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:690,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:702,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:709,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:715,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:716,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:717,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:730,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:731,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:732,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:733,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:734,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:749,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:751,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:757,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:759,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:760,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:761,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:762,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:763,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:765,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:779,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:780,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:781,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:782,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:783,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:784,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:786,1
    - Dst: Unlock
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:802,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 300
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 803
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 803
    functionName: TestATraitDataSource::Mutate
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - Unlock
    - TestATraitDataSource::SetNullifiedPath
    - clear
    - erase
    - printf
    - WeaveLogDetail
    - DeleteKey
    - nl::Weave::Encoding::LittleEndian::Write16
    - SetDirty
    - Lock
    linkageType: ''
    returnType: void
    signature: TestATraitDataSource::Mutate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::map<uint16_t, T>*::begin
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:809,1
    - Dst: std::map<uint16_t, T>*::end
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:816,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - aMap
    - it
    - aContext
    - aKey
    argTypes:
    - std::map<uint16_t, T>*
    - typename std::map<uint16_t, T>::iterator
    - uintptr_t
    - PropertyDictionaryKey
    constantsTouched: []
    func_position:
      end: 824
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 824
    functionName: GetNextDictionaryItemKeyHelper
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - std::map<uint16_t, T>*::end
    - std::map<uint16_t, T>*::begin
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetNextDictionaryItemKeyHelper(std::map<uint16_t, T> *aMap, typename
      std::map<uint16_t, T>::iterator &it, uintptr_t &aContext, PropertyDictionaryKey
      &aKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetNextDictionaryItemKeyHelper
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:832,1
    - Dst: GetNextDictionaryItemKeyHelper
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - aDictionaryHandle
    - aContext
    - aKey
    argTypes:
    - PropertyPathHandle
    - uintptr_t
    - PropertyDictionaryKey
    constantsTouched: []
    func_position:
      end: 840
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 840
    functionName: TestATraitDataSource::GetNextDictionaryItemKey
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - GetNextDictionaryItemKeyHelper
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestATraitDataSource::GetNextDictionaryItemKey(PropertyPathHandle aDictionaryHandle,
      uintptr_t &aContext, PropertyDictionaryKey &aKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - aHandle
    - isNull
    argTypes:
    - PropertyPathHandle
    - bool
    constantsTouched: []
    func_position:
      end: 852
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 852
    functionName: TestATraitDataSource::SetNullifiedPath
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 1
    functionsReached:
    - SetDirty
    linkageType: ''
    returnType: void
    signature: TestATraitDataSource::SetNullifiedPath(PropertyPathHandle aHandle,
      bool isNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:860,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:862,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:863,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:865,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:869,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:870,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:872,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:877,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:878,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:881,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:885,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:890,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:891,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:894,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:898,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:903,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:904,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:907,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:911,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:919,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:920,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:922,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:924,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:925,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:928,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:932,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:936,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:942,1
    - Dst: TLVReader::GetString
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:944,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:945,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:949,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:953,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:954,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:958,1
    - Dst: TLVReader::GetBytes
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:964,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:965,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:967,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:971,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:972,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:974,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:978,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:979,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:981,1
    - Dst: TLVReader::GetBytes
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:985,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:986,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:988,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:989,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:993,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:994,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:996,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1001,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1002,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1006,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1009,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1013,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1014,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1016,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1020,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1021,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1023,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1027,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1028,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1030,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1034,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1035,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1037,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1041,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1042,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1044,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1048,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1049,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1051,1
    - Dst: TLVReader::GetString
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1055,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1056,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1058,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1062,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1063,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1065,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1069,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1070,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1072,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1072,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1076,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1077,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1079,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1079,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1083,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1084,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1086,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1086,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1090,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 165
    argCount: 2
    argNames:
    - aLeafHandle
    - aReader
    argTypes:
    - PropertyPathHandle
    - TLVReader
    constantsTouched: []
    func_position:
      end: 1095
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 1095
    functionName: TestATraitDataSource::SetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Next
    - TLVReader::GetType
    - GetPropertyDictionaryKey
    - GetPropertySchemaHandle
    - TLVReader::GetBytes
    - TLVReader::EnterContainer
    - TLVReader::GetString
    - TLVReader::ExitContainer
    - DumpMemory
    - WeaveLogDetail
    - SuccessOrExit
    - TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestATraitDataSource::SetLeafData(PropertyPathHandle aLeafHandle, TLVReader
      &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsNullable
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1107,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1109,1
    - Dst: IsLeaf
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1119,1
    - Dst: TestATraitDataSource::GetLeafData
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - aHandle
    - aTagToWrite
    - aWriter
    - aIsNull
    - aIsPresent
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1125
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1125
    functionName: TestATraitDataSource::GetData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - IsLeaf
    - IsNullable
    - GetPropertySchemaHandle
    - TestATraitDataSource::GetLeafData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TestATraitDataSource::GetData(PropertyPathHandle aHandle,\n                                          uint64_t
      aTagToWrite,\n                                          TLVWriter &aWriter,\n
      \                                         bool &aIsNull,\n                                          bool
      &aIsPresent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1131,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1133,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1134,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1136,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1140,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1141,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1143,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1147,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1148,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1150,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1154,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1155,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1157,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1161,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1162,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1164,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1171,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1172,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1175,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1176,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1178,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1181,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1189,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1190,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1192,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1196,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1197,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1199,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1209,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1210,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1212,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1217,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1218,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1220,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1225,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1226,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1228,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1232,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1233,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1235,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1236,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1240,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1241,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1243,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1247,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1248,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1250,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1254,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1255,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1257,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1261,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1262,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1264,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1268,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1269,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1271,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1275,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1276,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1278,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1282,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1283,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1285,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1289,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1290,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1292,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1296,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1297,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1299,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1303,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1304,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1306,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1311,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1313,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1314,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1316,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1322,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1324,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1325,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1327,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1334,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1336,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1337,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1339,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1344,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1348,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 149
    argCount: 3
    argNames:
    - aLeafHandle
    - aTagToWrite
    - aWriter
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 1350
      start: 1127
    functionDepth: 1
    functionLinenumber: 1127
    functionLinenumberEnd: 1350
    functionName: TestATraitDataSource::GetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 1
    functionsReached:
    - TLVWriter::PutBoolean
    - GetPropertyDictionaryKey
    - GetPropertySchemaHandle
    - TLVWriter::PutBytes
    - TLVWriter::EndContainer
    - TLVWriter::PutString
    - WeaveLogDetail
    - DumpMemory
    - SuccessOrExit
    - WeaveLogFunctError
    - TLVWriter::Put
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestATraitDataSource::GetLeafData(PropertyPathHandle aLeafHandle, uint64_t
      aTagToWrite, TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<TestATraitDataSource *>
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1356,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1358,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1360,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1364,1
    - Dst: TestATraitDataSource*::mActiveCommand::IsOneWay
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1364,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1369,1
    - Dst: TestATraitDataSource*::mActiveCommand::SendError
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1373,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1376,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1384,1
    - Dst: nl::Weave::TLV::TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1386,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1387,1
    - Dst: nl::Weave::TLV::TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1389,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1389,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1390,1
    - Dst: nl::Weave::TLV::TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1391,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1391,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1392,1
    - Dst: nl::Weave::TLV::TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1394,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1395,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1397,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1398,1
    - Dst: TestATraitDataSource*::mActiveCommand::SendResponse
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1402,1
    - Dst: TestATraitDataSource*::GetVersion
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1402,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1403,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1409,1
    - Dst: TestATraitDataSource*::mActiveCommand::Close
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aErr
    argTypes:
    - nl::Weave::System::Layer*
    - void*
    - nl::Weave::System::Error
    constantsTouched: []
    func_position:
      end: 1416
      start: 1352
    functionDepth: 3
    functionLinenumber: 1352
    functionLinenumberEnd: 1416
    functionName: TestATraitDataSource::HandleCommandOperationTimeout
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::PutBoolean
    - WeaveLogFunctError
    - nl::Weave::System::PacketBuffer::New
    - nl::Weave::TLV::TLVWriter::StartContainer
    - VerifyOrExit
    - TestATraitDataSource*::mActiveCommand::SendError
    - WeaveLogDetail
    - nl::Weave::TLV::ContextTag
    - reinterpret_cast<TestATraitDataSource *>
    - nl::Weave::TLV::TLVWriter::EndContainer
    - ExitNow
    - TestATraitDataSource*::mActiveCommand::Close
    - TestATraitDataSource*::GetVersion
    - TestATraitDataSource*::mActiveCommand::SendResponse
    - nl::Weave::TLV::TLVWriter::Put
    - nl::Weave::TLV::TLVWriter::Init
    - TestATraitDataSource*::mActiveCommand::IsOneWay
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::Finalize
    linkageType: ''
    returnType: void
    signature: "TestATraitDataSource::HandleCommandOperationTimeout(nl::Weave::System::Layer*
      aSystemLayer, void *aAppState,\n        nl::Weave::System::Error aErr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1432,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1442,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1452,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1452,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1454,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1458,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1462,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1471,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1472,1
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1474,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1477,1
    - Dst: nl::Weave::TLV::IsContextTag
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1477,1
    - Dst: GetTag
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1477,1
    - Dst: nl::Weave::TLV::TagNumFromTag
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1478,1
    - Dst: GetTag
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1478,1
    - Dst: Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1481,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1482,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1483,1
    - Dst: Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1487,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1488,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1489,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1494,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1503,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1508,1
    - Dst: nl::Weave::Profiles::DataManagement::Command*::IsOneWay
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1513,1
    - Dst: nl::Weave::Profiles::DataManagement::Command*::Close
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1515,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1517,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1523,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1530,1
    - Dst: nl::Weave::Profiles::DataManagement::Command*::SendResponse
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1533,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1533,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1544,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1545,1
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1547,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1550,1
    - Dst: nl::Weave::TLV::IsContextTag
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1550,1
    - Dst: GetTag
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1550,1
    - Dst: nl::Weave::TLV::TagNumFromTag
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1551,1
    - Dst: GetTag
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1551,1
    - Dst: Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1554,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1555,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1556,1
    - Dst: Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1560,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1561,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1562,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1567,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1576,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1581,1
    - Dst: nl::Weave::Profiles::DataManagement::Command*::IsOneWay
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1584,1
    - Dst: nl::Weave::Profiles::DataManagement::Command*::Close
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1586,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1588,1
    - Dst: nl::Weave::Profiles::DataManagement::Command*::GetExchangeContext
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1594,1
    - Dst: MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1594,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1595,1
    - Dst: nl::Weave::Profiles::DataManagement::Command*::SendInProgress
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1597,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1598,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1609,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1614,1
    - Dst: nl::Weave::Profiles::DataManagement::Command*::SendError
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1618,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1624,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 113
    argCount: 9
    argNames:
    - aCommand
    - aMsgInfo
    - aPayload
    - ' aCommandType'
    - aIsExpiryTimeValid
    - ' aExpiryTimeMicroSecond'
    - aIsMustBeVersionValid
    - ' aMustBeVersion'
    - ' aArgumentReader'
    argTypes:
    - nl::Weave::Profiles::DataManagement::Command*
    - nl::Weave::WeaveMessageInfo*
    - nl::Weave::PacketBuffer*
    - uint64_t
    - bool
    - int64_t
    - bool
    - uint64_t
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 1627
      start: 1418
    functionDepth: 3
    functionLinenumber: 1418
    functionLinenumberEnd: 1627
    functionName: TestATraitDataSource::OnCustomCommand
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - nl::Weave::Profiles::DataManagement::Command*::GetExchangeContext
    - MessageLayer::SystemLayer::StartTimer
    - nl::Weave::Profiles::DataManagement::Command*::SendInProgress
    - Get
    - WeaveLogFunctError
    - nl::Weave::System::PacketBuffer::New
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::TLV::TagNumFromTag
    - WeaveLogDetail
    - nl::Weave::TLV::IsContextTag
    - nl::Weave::Profiles::DataManagement::Command*::Close
    - ExitNow
    - GetTag
    - nl::Weave::Profiles::DataManagement::Command*::IsOneWay
    - Next
    - nl::Weave::Profiles::DataManagement::Command*::SendResponse
    - nl::Weave::Profiles::DataManagement::Command*::SendError
    - GetVersion
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: "TestATraitDataSource::OnCustomCommand(nl::Weave::Profiles::DataManagement::Command
      * aCommand,\n            const nl::Weave::WeaveMessageInfo * aMsgInfo,\n            nl::Weave::PacketBuffer
      * aPayload,\n            const uint64_t & aCommandType,\n            const bool
      aIsExpiryTimeValid,\n            const int64_t & aExpiryTimeMicroSecond,\n            const
      bool aIsMustBeVersionValid,\n            const uint64_t & aMustBeVersion,\n
      \           nl::Weave::TLV::TLVReader & aArgumentReader)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetVersion
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1636,1
    - Dst: MOCK_strlcpy
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1650,1
    - Dst: MOCK_strlcpy
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1656
    functionName: (&TestBTrait::TraitSchema)
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - SetVersion
    - MOCK_strlcpy
    linkageType: ''
    returnType: TraitDataSource
    signature: (&TestBTrait::TraitSchema)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1671,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1672,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1675,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1679,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1684,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1685,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1688,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1692,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1697,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1698,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1701,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1705,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1710,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1711,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1714,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1718,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1723,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1724,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1727,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1731,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1739,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1740,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1742,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1744,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1745,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1748,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1752,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1756,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1761,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1762,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1764,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1773,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1774,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1777,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1781,1
    - Dst: TLVReader::GetString
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1786,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1787,1
    - Dst: strncmp
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1788,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1790,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1791,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1794,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1799,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1800,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1803,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1807,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1812,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1813,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1816,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1820,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1825,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1826,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1829,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1833,1
    - Dst: TLVReader::GetString
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1838,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1839,1
    - Dst: strncmp
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1840,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1842,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1843,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1846,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1850,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 128
    argCount: 2
    argNames:
    - aLeafHandle
    - aReader
    argTypes:
    - PropertyPathHandle
    - TLVReader
    constantsTouched: []
    func_position:
      end: 1855
      start: 1659
    functionDepth: 0
    functionLinenumber: 1659
    functionLinenumberEnd: 1855
    functionName: TestBTraitDataSource::SetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Next
    - strncmp
    - TLVReader::EnterContainer
    - TLVReader::GetString
    - TLVReader::ExitContainer
    - memcpy
    - WeaveLogDetail
    - SuccessOrExit
    - TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestBTraitDataSource::SetLeafData(PropertyPathHandle aLeafHandle, TLVReader
      &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1861,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1863,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1864,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1865,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1876,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1877,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1878,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1879,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1885,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1887,1
    - Dst: Unlock
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1892,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1893
      start: 1859
    functionDepth: 0
    functionLinenumber: 1859
    functionLinenumberEnd: 1893
    functionName: TestBTraitDataSource::Mutate
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - GetVersion
    - Unlock
    - Lock
    - SetDirty
    linkageType: ''
    returnType: void
    signature: TestBTraitDataSource::Mutate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1905,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1906,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1908,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1912,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1913,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1915,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1919,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1920,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1922,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1926,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1927,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1929,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1933,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1934,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1936,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1943,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1944,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1947,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1948,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1950,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1953,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1958,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1959,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1961,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1969,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1970,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1972,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1976,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1977,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1979,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1983,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1984,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1986,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1990,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1991,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1993,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1997,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:1998,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2000,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2004,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2005,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2007,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2011,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2015,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 80
    argCount: 3
    argNames:
    - aLeafHandle
    - aTagToWrite
    - aWriter
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 2017
      start: 1895
    functionDepth: 0
    functionLinenumber: 1895
    functionLinenumberEnd: 2017
    functionName: TestBTraitDataSource::GetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 1
    functionsReached:
    - TLVWriter::PutBoolean
    - TLVWriter::EndContainer
    - TLVWriter::PutString
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveLogFunctError
    - TLVWriter::Put
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestBTraitDataSource::GetLeafData(PropertyPathHandle aLeafHandle, uint64_t
      aTagToWrite, TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aDictionaryHandle
    - aContext
    - aKey
    argTypes:
    - PropertyPathHandle
    - uintptr_t
    - PropertyDictionaryKey
    constantsTouched: []
    func_position:
      end: 2022
      start: 2019
    functionDepth: 0
    functionLinenumber: 2019
    functionLinenumberEnd: 2022
    functionName: TestBTraitDataSource::GetNextDictionaryItemKey
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestBTraitDataSource::GetNextDictionaryItemKey(PropertyPathHandle aDictionaryHandle,
      uintptr_t &aContext, PropertyDictionaryKey &aKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetVersion
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2027,1
    - Dst: MOCK_strlcpy
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2041,1
    - Dst: MOCK_strlcpy
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2046,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2047
      start: 2024
    functionDepth: 0
    functionLinenumber: 2024
    functionLinenumberEnd: 2047
    functionName: TestBLargeTraitDataSource::TestBLargeTraitDataSource
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - SetVersion
    - MOCK_strlcpy
    linkageType: ''
    returnType: void
    signature: TestBLargeTraitDataSource::TestBLargeTraitDataSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2051,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2053,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2054,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2055,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2066,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2067,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2068,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2069,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2075,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2076,1
    - Dst: Unlock
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2081,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2082
      start: 2049
    functionDepth: 0
    functionLinenumber: 2049
    functionLinenumberEnd: 2082
    functionName: TestBLargeTraitDataSource::Mutate
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - GetVersion
    - Unlock
    - Lock
    - SetDirty
    linkageType: ''
    returnType: void
    signature: TestBLargeTraitDataSource::Mutate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2094,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2095,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2097,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2101,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2102,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2104,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2108,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2109,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2111,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2115,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2116,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2118,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2122,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2123,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2125,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2132,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2133,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2136,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2137,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2139,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2142,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2147,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2148,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2150,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2158,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2159,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2161,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2165,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2166,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2168,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2172,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2173,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2175,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2179,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2180,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2182,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2186,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2187,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2189,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2193,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2194,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2196,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2200,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2204,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 80
    argCount: 3
    argNames:
    - aLeafHandle
    - aTagToWrite
    - aWriter
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 2206
      start: 2084
    functionDepth: 0
    functionLinenumber: 2084
    functionLinenumberEnd: 2206
    functionName: TestBLargeTraitDataSource::GetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - TLVWriter::PutBoolean
    - TLVWriter::EndContainer
    - TLVWriter::PutString
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveLogFunctError
    - TLVWriter::Put
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestBLargeTraitDataSource::GetLeafData(PropertyPathHandle aLeafHandle,
      uint64_t aTagToWrite, TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aDictionaryHandle
    - aContext
    - aKey
    argTypes:
    - PropertyPathHandle
    - uintptr_t
    - PropertyDictionaryKey
    constantsTouched: []
    func_position:
      end: 2211
      start: 2208
    functionDepth: 0
    functionLinenumber: 2208
    functionLinenumberEnd: 2211
    functionName: TestBLargeTraitDataSource::GetNextDictionaryItemKey
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestBLargeTraitDataSource::GetNextDictionaryItemKey(PropertyPathHandle
      aDictionaryHandle, uintptr_t &aContext, PropertyDictionaryKey &aKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetVersion
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2216,1
    - Dst: ApplicationKeysTraitDataSource::ClearEpochKeys
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2218,1
    - Dst: ApplicationKeysTraitDataSource::ClearGroupMasterKeys
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2219,1
    - Dst: ApplicationKeysTraitDataSource::AddEpochKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2221,1
    - Dst: ApplicationKeysTraitDataSource::AddGroupMasterKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2213
    functionDepth: 1
    functionLinenumber: 2213
    functionLinenumberEnd: 2223
    functionName: ApplicationKeysTraitDataSource::ApplicationKeysTraitDataSource
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - ApplicationKeysTraitDataSource::AddGroupMasterKey
    - ApplicationKeysTraitDataSource::ClearGroupMasterKeys
    - SetVersion
    - ApplicationKeysTraitDataSource::ClearEpochKeys
    - ApplicationKeysTraitDataSource::AddEpochKey
    linkageType: ''
    returnType: void
    signature: ApplicationKeysTraitDataSource::ApplicationKeysTraitDataSource(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2231,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2234,1
    - Dst: ApplicationKeysTraitDataSource::MutateEpochKeys
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2253,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2254,1
    - Dst: ApplicationKeysTraitDataSource::MutateGroupMasterKeys
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2259,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2260,1
    - Dst: Unlock
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2264,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2267
      start: 2225
    functionDepth: 1
    functionLinenumber: 2225
    functionLinenumberEnd: 2267
    functionName: ApplicationKeysTraitDataSource::Mutate
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - Unlock
    - GetVersion
    - SuccessOrExit
    - ApplicationKeysTraitDataSource::MutateEpochKeys
    - ApplicationKeysTraitDataSource::MutateGroupMasterKeys
    - Lock
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ApplicationKeysTraitDataSource::Mutate(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ApplicationKeysTraitDataSource::ClearEpochKeys
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2273,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2277,1
    - Dst: ApplicationKeysTraitDataSource::AddEpochKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2279,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2280,1
    - Dst: ApplicationKeysTraitDataSource::AddEpochKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2282,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2283,1
    - Dst: ApplicationKeysTraitDataSource::AddEpochKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2287,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2288,1
    - Dst: ApplicationKeysTraitDataSource::AddEpochKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2290,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2291,1
    - Dst: ApplicationKeysTraitDataSource::AddEpochKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2295,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2296,1
    - Dst: ApplicationKeysTraitDataSource::AddEpochKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2298,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2299,1
    - Dst: ApplicationKeysTraitDataSource::AddEpochKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2303,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2304,1
    - Dst: ApplicationKeysTraitDataSource::AddEpochKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2306,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2307,1
    - Dst: ApplicationKeysTraitDataSource::AddEpochKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2311,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2312,1
    - Dst: ApplicationKeysTraitDataSource::AddEpochKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2314,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2315,1
    - Dst: ApplicationKeysTraitDataSource::AddEpochKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2319,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2320,1
    - Dst: ApplicationKeysTraitDataSource::AddEpochKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2322,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2323,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2328,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2269
    functionDepth: 1
    functionLinenumber: 2269
    functionLinenumberEnd: 2331
    functionName: ApplicationKeysTraitDataSource::MutateEpochKeys
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 1
    functionsReached:
    - GetVersion
    - SuccessOrExit
    - SetDirty
    - ApplicationKeysTraitDataSource::ClearEpochKeys
    - ApplicationKeysTraitDataSource::AddEpochKey
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ApplicationKeysTraitDataSource::MutateEpochKeys(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ApplicationKeysTraitDataSource::ClearGroupMasterKeys
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2337,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2340,1
    - Dst: ApplicationKeysTraitDataSource::AddGroupMasterKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2342,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2343,1
    - Dst: ApplicationKeysTraitDataSource::AddGroupMasterKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2345,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2346,1
    - Dst: ApplicationKeysTraitDataSource::AddGroupMasterKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2350,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2351,1
    - Dst: ApplicationKeysTraitDataSource::AddGroupMasterKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2355,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2356,1
    - Dst: ApplicationKeysTraitDataSource::AddGroupMasterKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2358,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2359,1
    - Dst: ApplicationKeysTraitDataSource::AddGroupMasterKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2361,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2362,1
    - Dst: ApplicationKeysTraitDataSource::AddGroupMasterKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2366,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2367,1
    - Dst: ApplicationKeysTraitDataSource::AddGroupMasterKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2369,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2370,1
    - Dst: ApplicationKeysTraitDataSource::AddGroupMasterKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2372,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2373,1
    - Dst: ApplicationKeysTraitDataSource::AddGroupMasterKey
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2375,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2376,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2384,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2387
      start: 2333
    functionDepth: 1
    functionLinenumber: 2333
    functionLinenumberEnd: 2387
    functionName: ApplicationKeysTraitDataSource::MutateGroupMasterKeys
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 1
    functionsReached:
    - ApplicationKeysTraitDataSource::AddGroupMasterKey
    - ApplicationKeysTraitDataSource::ClearGroupMasterKeys
    - GetVersion
    - SuccessOrExit
    - SetDirty
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ApplicationKeysTraitDataSource::MutateGroupMasterKeys(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2391,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2392
      start: 2389
    functionDepth: 0
    functionLinenumber: 2389
    functionLinenumberEnd: 2392
    functionName: ApplicationKeysTraitDataSource::ClearEpochKeys
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 2
    functionsReached:
    - memset
    - reinterpret_cast<uint8_t *>
    linkageType: ''
    returnType: void
    signature: ApplicationKeysTraitDataSource::ClearEpochKeys(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2396,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2397
      start: 2394
    functionDepth: 0
    functionLinenumber: 2394
    functionLinenumberEnd: 2397
    functionName: ApplicationKeysTraitDataSource::ClearGroupMasterKeys
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 2
    functionsReached:
    - memset
    - reinterpret_cast<uint8_t *>
    linkageType: ''
    returnType: void
    signature: ApplicationKeysTraitDataSource::ClearGroupMasterKeys(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2405,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2421,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2426,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - epochKeyNumber
    - startTime
    - key
    - keyLen
    argTypes:
    - uint8_t
    - uint32_t
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 2430
      start: 2399
    functionDepth: 0
    functionLinenumber: 2399
    functionLinenumberEnd: 2430
    functionName: ApplicationKeysTraitDataSource::AddEpochKey
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 2
    functionsReached:
    - memcpy
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ApplicationKeysTraitDataSource::AddEpochKey(uint8_t epochKeyNumber,
      uint32_t startTime, const uint8_t *key, uint8_t keyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2438,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2454,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2459,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - appGroupLocalNumber
    - globalId
    - key
    - keyLen
    argTypes:
    - uint8_t
    - uint32_t
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 2463
      start: 2432
    functionDepth: 0
    functionLinenumber: 2432
    functionLinenumberEnd: 2463
    functionName: ApplicationKeysTraitDataSource::AddGroupMasterKey
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 2
    functionsReached:
    - memcpy
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ApplicationKeysTraitDataSource::AddGroupMasterKey(uint8_t appGroupLocalNumber,
      uint32_t globalId, const uint8_t *key, uint8_t keyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aDictionaryHandle
    - aContext
    - aKey
    argTypes:
    - PropertyPathHandle
    - uintptr_t
    - PropertyDictionaryKey
    constantsTouched: []
    func_position:
      end: 2468
      start: 2465
    functionDepth: 0
    functionLinenumber: 2465
    functionLinenumberEnd: 2468
    functionName: ApplicationKeysTraitDataSource::GetNextDictionaryItemKey
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ApplicationKeysTraitDataSource::GetNextDictionaryItemKey(PropertyPathHandle
      aDictionaryHandle, uintptr_t &aContext, PropertyDictionaryKey &aKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2475,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2476,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2486,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2487,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2490,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2490,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2491,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2493,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2493,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2493,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2494,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2496,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2496,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2497,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2499,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2500,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2502,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2514,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2515,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2517,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2517,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2518,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2521,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2521,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2522,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2524,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2524,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2525,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2527,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2528,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2530,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2536,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2537,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2540,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2541,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2544,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 46
    argCount: 3
    argNames:
    - aLeafHandle
    - aTagToWrite
    - aWriter
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 2547
      start: 2470
    functionDepth: 0
    functionLinenumber: 2470
    functionLinenumberEnd: 2547
    functionName: ApplicationKeysTraitDataSource::GetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - ContextTag
    - ExitNow
    - TLVWriter::PutBytes
    - TLVWriter::EndContainer
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveLogFunctError
    - TLVWriter::Put
    - static_cast<int64_t>
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ApplicationKeysTraitDataSource::GetLeafData(PropertyPathHandle aLeafHandle,
      uint64_t aTagToWrite, TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetVersion
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2562
      start: 2553
    functionDepth: 0
    functionLinenumber: 2553
    functionLinenumberEnd: 2562
    functionName: (&TestCTrait::TraitSchema)
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - SetVersion
    linkageType: ''
    returnType: TraitDataSource
    signature: (&TestCTrait::TraitSchema)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2566,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2568,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2569,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2574,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2575,1
    - Dst: Unlock
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2581
      start: 2564
    functionDepth: 0
    functionLinenumber: 2564
    functionLinenumberEnd: 2581
    functionName: TestCTraitDataSource::Mutate
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - GetVersion
    - Unlock
    - Lock
    - SetDirty
    linkageType: ''
    returnType: void
    signature: TestCTraitDataSource::Mutate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2588,1
    - Dst: vprintf
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2590,1
    - Dst: va_end
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - aFormat
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2593
      start: 2584
    functionDepth: 0
    functionLinenumber: 2584
    functionLinenumberEnd: 2593
    functionName: TestCTraitDataSource::TLVPrettyPrinter
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - vprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: TestCTraitDataSource::TLVPrettyPrinter(const char *aFormat, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2602,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2603,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2605,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2608,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2609,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2611,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2614,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2615,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2617,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2620,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2621,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2623,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2626,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2627,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2629,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2633,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 2
    argNames:
    - aLeafHandle
    - aReader
    argTypes:
    - PropertyPathHandle
    - TLVReader
    constantsTouched: []
    func_position:
      end: 2639
      start: 2595
    functionDepth: 0
    functionLinenumber: 2595
    functionLinenumberEnd: 2639
    functionName: TestCTraitDataSource::SetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDetail
    - TLVReader::Get
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestCTraitDataSource::SetLeafData(PropertyPathHandle aLeafHandle, TLVReader
      &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2650,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2651,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2653,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2656,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2657,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2659,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2663,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2664,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2666,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2670,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2671,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2673,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2676,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2677,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2679,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2683,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2684,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.cpp:2688,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 3
    argNames:
    - aLeafHandle
    - aTagToWrite
    - aWriter
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 2691
      start: 2643
    functionDepth: 0
    functionLinenumber: 2643
    functionLinenumberEnd: 2691
    functionName: TestCTraitDataSource::GetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
    functionUses: 0
    functionsReached:
    - TLVWriter::PutBoolean
    - ExitNow
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveLogFunctError
    - TLVWriter::Put
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestCTraitDataSource::GetLeafData(PropertyPathHandle aLeafHandle, uint64_t
      aTagToWrite, TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp:71,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp:78,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp:79,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp:80,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp:81,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 90
    functionName: DeviceDescOptions::DeviceDescOptions
    functionSourceFile: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp
    functionUses: 0
    functionsReached:
    - Clear
    - strcpy
    - memset
    linkageType: ''
    returnType: void
    signature: DeviceDescOptions::DeviceDescOptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' deviceDesc'
    argTypes:
    - WeaveDeviceDescriptor
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: DeviceDescOptions::GetDeviceDesc
    functionSourceFile: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: DeviceDescOptions::GetDeviceDesc(WeaveDeviceDescriptor& deviceDesc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DeviceDescOptions *>
      Src: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp:102,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp:107,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp:109,1
    - Dst: strncpy
      Src: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp:112,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp:115,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp:117,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp:122,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp:124,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp:129,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp:131,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp:136,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp:138,1
    - Dst: strncpy
      Src: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp:141,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp:144,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 149
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 149
    functionName: DeviceDescOptions::HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp
    functionUses: 0
    functionsReached:
    - strncpy
    - ParseInt
    - strlen
    - static_cast<DeviceDescOptions *>
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: DeviceDescOptions::HandleOption(const char *progName, OptionSet *optSet,
      int id, const char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveFabricIdToIPv6GlobalId
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:109,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:110,1
    - Dst: nl::Weave::WeaveNodeIdToIPv6InterfaceId
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:111,1
    - Dst: InterfaceAddAddress
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:112,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tunIf
    argTypes:
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 117
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 117
    functionName: ServiceTunnelInterfaceUp
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 0
    functionsReached:
    - WeaveFabricIdToIPv6GlobalId
    - WeaveLogError
    - InterfaceAddAddress
    - nl::Weave::WeaveNodeIdToIPv6InterfaceId
    - nl::Inet::IPAddress::MakeULA
    linkageType: ''
    returnType: void
    signature: ServiceTunnelInterfaceUp(InterfaceId tunIf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: VirtualRouteTable::VirtualRouteTable
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: VirtualRouteTable::VirtualRouteTable(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ip6Route
    argTypes:
    - IPPrefix
    constantsTouched: []
    func_position:
      end: 138
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 138
    functionName: VirtualRouteTable::FindRouteEntry
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: VirtualRouteTable::FindRouteEntry (IPPrefix &ip6Route)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:159,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - con
    argTypes:
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 163
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 163
    functionName: VirtualRouteTable::RemoveRouteEntryByConnection
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: VirtualRouteTable::RemoveRouteEntryByConnection (WeaveConnection *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prefix::IsZero
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 180
    functionName: VirtualRouteTable::NewRouteEntry
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 0
    functionsReached:
    - prefix::IsZero
    linkageType: ''
    returnType: int
    signature: VirtualRouteTable::NewRouteEntry (void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:189,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:192,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 201
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 201
    functionName: VirtualRouteTable::FreeRouteEntry
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 0
    functionsReached:
    - memset
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: VirtualRouteTable::FreeRouteEntry (int index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: WeaveTunnelServer::WeaveTunnelServer
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: WeaveTunnelServer::WeaveTunnelServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:214,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:216,1
    - Dst: mConTable::AddConnection
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:221,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:228,1
    - Dst: mConTable::RemoveConnection
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:231,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:232,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - msgLayer
    - con
    argTypes:
    - WeaveMessageLayer*
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 235
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 235
    functionName: WeaveTunnelServer::HandleConnectionReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnection*::Close
    - WeaveConnection*::PeerAddr::ToString
    - WeaveLogDetail
    - mConTable::RemoveConnection
    - mConTable::AddConnection
    linkageType: ''
    returnType: void
    signature: WeaveTunnelServer::HandleConnectionReceived(WeaveMessageLayer *msgLayer,
      WeaveConnection *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:247,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:250,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:253,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:256,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:259,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:262,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:265,1
    - Dst: WeaveTunnelServer::CreateServiceTunEndPoint
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:270,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:271,1
    - Dst: WeaveTunnelServer::SetupServiceTunEndPoint
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:273,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:274,1
    - Dst: WeaveTunnelServer::Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:283,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 295
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 295
    functionName: WeaveTunnelServer::Init
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 1
    functionsReached:
    - WeaveTunnelServer::CreateServiceTunEndPoint
    - RegisterUnsolicitedMessageHandler
    - FAIL_ERROR
    - SuccessOrExit
    - WeaveTunnelServer::SetupServiceTunEndPoint
    - WeaveTunnelServer::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelServer::Init (WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelServer::CloseConnections
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:301,1
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:303,1
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:305,1
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:307,1
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:309,1
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:311,1
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:312,1
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:313,1
    - Dst: WeaveTunnelServer::TeardownServiceTunEndPoint
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:316,1
    - Dst: WeaveTunnelServer::Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 321
    functionName: WeaveTunnelServer::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 1
    functionsReached:
    - WeaveTunnelServer::TeardownServiceTunEndPoint
    - WeaveTunnelServer::Shutdown
    - WeaveTunnelServer::CloseConnections
    - UnregisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelServer::Shutdown (void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:338,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:340,1
    - Dst: ip6_addr_copy
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:346,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:347,1
    - Dst: ip6_addr_copy
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:349,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:350,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:352,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:353,1
    - Dst: WeaveMessageInfo::Clear
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:357,1
    - Dst: IPAddress::Subnet
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:364,1
    - Dst: Send
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:368,1
    - Dst: IPAddress::IsIPv6ULA
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:374,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:376,1
    - Dst: IPAddress::Subnet
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:379,1
    - Dst: IPAddress::Subnet
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:380,1
    - Dst: IPAddress::Subnet
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:381,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:383,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:384,1
    - Dst: IPAddress::Subnet
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:388,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:395,1
    - Dst: IPAddress::GlobalId
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:395,1
    - Dst: IPAddress::Subnet
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:395,1
    - Dst: FindRouteEntry
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:400,1
    - Dst: PacketBuffer*::EnsureReservedSize
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:404,1
    - Dst: WeaveTunnelHeader::EncodeTunnelHeader
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:408,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:409,1
    - Dst: WeaveTunnelServer::GetOutgoingConn
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:411,1
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:413,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:414,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:415,1
    - Dst: WeaveConnection*::SendTunneledMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:425,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:430,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:438,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 56
    argCount: 3
    argNames:
    - con
    - recvMsgInfo
    - msg
    argTypes:
    - WeaveConnection*
    - WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 443
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 443
    functionName: WeaveTunnelServer::ProcessIPv6Message
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 0
    functionsReached:
    - IPAddress::GlobalId
    - WeaveMessageInfo::Clear
    - WeaveTunnelHeader::EncodeTunnelHeader
    - FindRouteEntry
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    - nl::Inet::IPAddress::FromIPv6
    - VerifyOrExit
    - IPAddress::IsIPv6ULA
    - WeaveLogDetail
    - WeaveConnection*::SendTunneledMessage
    - ip6_addr_copy
    - ExitNow
    - IPAddress::Subnet
    - PacketBuffer*::Start
    - nl::Inet::IPAddress::MakeULA
    - PacketBuffer*::DataLength
    - WeaveTunnelServer::GetOutgoingConn
    - WeaveConnection*::PeerAddr::ToString
    - SuccessOrExit
    - PacketBuffer*::EnsureReservedSize
    - Send
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "WeaveTunnelServer::ProcessIPv6Message (WeaveConnection *con, const
      WeaveMessageInfo *recvMsgInfo,\n                                                   PacketBuffer
      *msg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:456,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:457,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:459,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:462,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:463,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:464,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:469,1
    - Dst: nl::Weave::TLV::TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:472,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:473,1
    - Dst: nl::Weave::TLV::TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:476,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:476,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:477,1
    - Dst: nl::Weave::TLV::TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:480,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:481,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:483,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:484,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:487,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 4
    argNames:
    - ec
    - profileId
    - tunStatusCode
    - isRoutingRestricted
    argTypes:
    - ExchangeContext*
    - uint32_t
    - uint32_t
    - bool
    constantsTouched: []
    func_position:
      end: 495
      start: 446
    functionDepth: 3
    functionLinenumber: 446
    functionLinenumberEnd: 495
    functionName: SendStatusReportResponse
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::TLVWriter::Init
    - nl::Weave::TLV::TLVWriter::StartContainer
    - PacketBuffer*::SetDataLength
    - nl::Weave::TLV::TLVWriter::EndContainer
    - nl::Weave::Encoding::LittleEndian::Write16
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - ExchangeContext*::SendMessage
    - ProfileTag
    - nl::Weave::TLV::TLVWriter::Finalize
    - SuccessOrExit
    - PacketBuffer*::Start
    - nl::Weave::TLV::TLVWriter::PutBoolean
    - nl::Weave::Encoding::LittleEndian::Write32
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SendStatusReportResponse(ExchangeContext *ec, uint32_t profileId,
      uint32_t tunStatusCode,\n                                     bool isRoutingRestricted)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - conn
    - rtIndex
    - priorityIndex
    - priorityVal
    - pktInfo
    - msgInfo
    argTypes:
    - WeaveConnection*
    - uint8_t
    - uint8_t
    - uint8_t
    - IPPacketInfo*
    - WeaveMessageInfo*
    constantsTouched: []
    func_position:
      end: 509
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 509
    functionName: WeaveTunnelServer::StoreGatewayInfoForPriority
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelServer::StoreGatewayInfoForPriority(WeaveConnection *conn,
      uint8_t rtIndex, uint8_t priorityIndex,\n                                                    uint8_t
      priorityVal, const IPPacketInfo *pktInfo,\n                                                    const
      WeaveMessageInfo *msgInfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:521,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:522,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:526,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:529,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:531,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:533,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:533,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - ec
    - port
    - tunnelHostname
    - hostLen
    argTypes:
    - ExchangeContext*
    - uint16_t
    - char*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 544
      start: 514
    functionDepth: 3
    functionLinenumber: 514
    functionLinenumberEnd: 544
    functionName: SendTunnelReconnectMessage
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Encoding::LittleEndian::Write16
    - VerifyOrExit
    - ExchangeContext*::SendMessage
    - memcpy
    - PacketBuffer*::Start
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SendTunnelReconnectMessage(ExchangeContext *ec, const uint16_t port,\n
      \                                      const char *tunnelHostname, uint16_t
      hostLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:554,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:556,1
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::parse
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:560,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - profileId
    - msgType
    - payload
    - outReport
    argTypes:
    - uint32_t
    - uint8_t
    - PacketBuffer*
    - StatusReport
    constantsTouched: []
    func_position:
      end: 565
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 565
    functionName: VerifyAndParseStatusResponse
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 4
    functionsReached:
    - SuccessOrExit
    - VerifyOrExit
    - nl::Weave::Profiles::StatusReporting::StatusReport::parse
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "VerifyAndParseStatusResponse(uint32_t profileId,\n                                         uint8_t
      msgType, PacketBuffer *payload,\n                                         StatusReport
      &outReport)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelServer *>
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:573,1
    - Dst: VerifyAndParseStatusResponse
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:575,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:576,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:582,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:595,1
    - Dst: WeaveTunnelServer*::CloseConnections
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:599,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:604,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:610,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 615
      start: 567
    functionDepth: 3
    functionLinenumber: 567
    functionLinenumberEnd: 615
    functionName: WeaveTunnelServer::HandleReconnectResponse
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    - ExchangeContext*::Close
    - static_cast<WeaveTunnelServer *>
    - VerifyAndParseStatusResponse
    - WeaveTunnelServer*::CloseConnections
    - WeaveLogDetail
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelServer::HandleReconnectResponse(ExchangeContext *ec, const
      IPPacketInfo *pktInfo,\n                                                const
      WeaveMessageInfo *msgInfo, uint32_t profileId,\n                                                uint8_t
      msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:621,1
    - Dst: RemoveRouteEntryByConnection
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:628,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:629,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 633
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 633
    functionName: WeaveTunnelServer::CloseConnections
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 1
    functionsReached:
    - printf
    - RemoveRouteEntryByConnection
    - WeaveConnection*::Close
    linkageType: ''
    returnType: void
    signature: WeaveTunnelServer::CloseConnections(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelServer *>
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:640,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:653,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:660,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:663,1
    - Dst: WeaveTunnelServer::CloseConnections
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:664,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:669,1
    - Dst: WeaveTunnelServer::CloseConnections
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:677,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:687,1
    - Dst: static_cast<Role>
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:689,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:689,1
    - Dst: static_cast<TunnelType>
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:691,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:691,1
    - Dst: static_cast<SrcInterfaceType>
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:693,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:693,1
    - Dst: static_cast<LivenessStrategy>
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:695,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:695,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:697,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:699,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:704,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:707,1
    - Dst: WeaveTunnelRoute::DecodeFabricTunnelRoutes
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:708,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:709,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:716,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:717,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:722,1
    - Dst: SendStatusReportResponse
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:724,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:725,1
    - Dst: WeaveTunnelServer*::vRouteDB::FindRouteEntry
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:735,1
    - Dst: WeaveTunnelServer*::vRouteDB::NewRouteEntry
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:739,1
    - Dst: WeaveTunnelServer*::StoreGatewayInfoForPriority
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:750,1
    - Dst: WeaveTunnelServer*::StoreGatewayInfoForPriority
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:760,1
    - Dst: WeaveTunnelServer*::StoreGatewayInfoForPriority
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:765,1
    - Dst: SendStatusReportResponse
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:773,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:774,1
    - Dst: sleep
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:780,1
    - Dst: WeaveTunnelServer*::ExchangeMgr::NewContext
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:784,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:786,1
    - Dst: SendTunnelReconnectMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:792,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:794,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:795,1
    - Dst: SendStatusReportResponse
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:810,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:811,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:817,1
    - Dst: SendStatusReportResponse
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:819,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:820,1
    - Dst: WeaveTunnelRoute::DecodeFabricTunnelRoutes
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:823,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:824,1
    - Dst: SendStatusReportResponse
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:826,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:827,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:833,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:834,1
    - Dst: SendStatusReportResponse
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:837,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:838,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:846,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:850,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 107
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 852
      start: 635
    functionDepth: 4
    functionLinenumber: 635
    functionLinenumberEnd: 852
    functionName: WeaveTunnelServer::HandleTunnelControlMsg
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<SrcInterfaceType>
    - nl::Weave::Encoding::Read8
    - static_cast<WeaveTunnelServer *>
    - static_cast<TunnelType>
    - WeaveTunnelServer*::ExchangeMgr::NewContext
    - static_cast<LivenessStrategy>
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - WeaveLogDetail
    - sleep
    - WeaveTunnelRoute::DecodeFabricTunnelRoutes
    - static_cast<Role>
    - nl::Weave::Encoding::LittleEndian::Read16
    - WeaveTunnelServer*::StoreGatewayInfoForPriority
    - PacketBuffer*::SetStart
    - memset
    - ExitNow
    - strlen
    - PacketBuffer*::Start
    - WeaveTunnelServer::CloseConnections
    - WeaveTunnelServer*::vRouteDB::NewRouteEntry
    - WeaveTunnelServer*::vRouteDB::FindRouteEntry
    - SendTunnelReconnectMessage
    - SendStatusReportResponse
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelServer::HandleTunnelControlMsg (ExchangeContext *ec, const
      IPPacketInfo *pktInfo,\n                                                const
      WeaveMessageInfo *msgInfo, uint32_t profileId,\n                                                uint8_t
      msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelServer *>
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:860,1
    - Dst: WeaveTunnelHeader::DecodeTunnelHeader
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:864,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:865,1
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:867,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:869,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:870,1
    - Dst: WeaveTunnelServer*::ProcessIPv6Message
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:874,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - con
    - recvMsgInfo
    - msg
    argTypes:
    - WeaveConnection*
    - WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 880
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 880
    functionName: WeaveTunnelServer::HandleTunnelDataMessage
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - WeaveTunnelHeader::DecodeTunnelHeader
    - static_cast<WeaveTunnelServer *>
    - WeaveConnection*::PeerAddr::ToString
    - WeaveTunnelServer*::ProcessIPv6Message
    - WeaveLogDetail
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelServer::HandleTunnelDataMessage (WeaveConnection *con,
      const WeaveMessageInfo *recvMsgInfo,\n                                                 PacketBuffer
      *msg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelServer *>
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:885,1
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:887,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:891,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:896,1
    - Dst: WeaveTunnelServer*::vRouteDB::RemoveRouteEntryByConnection
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:903,1
    - Dst: WeaveTunnelServer*::mConTable::RemoveConnection
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:905,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:908,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 909
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 909
    functionName: WeaveTunnelServer::HandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - WeaveTunnelServer*::mConTable::RemoveConnection
    - WeaveConnection*::Close
    - static_cast<WeaveTunnelServer *>
    - WeaveConnection*::PeerAddr::ToString
    - WeaveTunnelServer*::vRouteDB::RemoveRouteEntryByConnection
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: WeaveTunnelServer::HandleConnectionClosed (WeaveConnection *con, WEAVE_ERROR
      conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewTunEndPoint
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:916,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:917,1
    - Dst: WeaveTunnelServer::Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 924
      start: 912
    functionDepth: 2
    functionLinenumber: 912
    functionLinenumberEnd: 924
    functionName: WeaveTunnelServer::CreateServiceTunEndPoint
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 1
    functionsReached:
    - WeaveTunnelServer::Init
    - NewTunEndPoint
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelServer::CreateServiceTunEndPoint (void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Open
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:937,1
    - Dst: Open
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:939,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:941,1
    - Dst: IsInterfaceUp
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:943,1
    - Dst: InterfaceUp
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:946,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:947,1
    - Dst: ServiceTunnelInterfaceUp
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:951,1
    - Dst: GetTunnelInterfaceId
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:951,1
    - Dst: WeaveFabricIdToIPv6GlobalId
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:953,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:954,1
    - Dst: SetRouteToTunnelInterface
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:960,1
    - Dst: GetTunnelInterfaceId
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:960,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:961,1
    - Dst: Free
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:967,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 972
      start: 927
    functionDepth: 2
    functionLinenumber: 927
    functionLinenumberEnd: 972
    functionName: WeaveTunnelServer::SetupServiceTunEndPoint
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 1
    functionsReached:
    - WeaveFabricIdToIPv6GlobalId
    - ServiceTunnelInterfaceUp
    - InterfaceUp
    - IsInterfaceUp
    - GetTunnelInterfaceId
    - SetRouteToTunnelInterface
    - SuccessOrExit
    - nl::Inet::IPAddress::MakeULA
    - Open
    - Free
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelServer::SetupServiceTunEndPoint (void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveFabricIdToIPv6GlobalId
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:985,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:986,1
    - Dst: SetRouteToTunnelInterface
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:991,1
    - Dst: GetTunnelInterfaceId
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:991,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:992,1
    - Dst: IsInterfaceUp
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:995,1
    - Dst: InterfaceDown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:998,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:999,1
    - Dst: Free
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1006,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 1011
    functionName: WeaveTunnelServer::TeardownServiceTunEndPoint
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 1
    functionsReached:
    - WeaveFabricIdToIPv6GlobalId
    - IsInterfaceUp
    - GetTunnelInterfaceId
    - SetRouteToTunnelInterface
    - SuccessOrExit
    - nl::Inet::IPAddress::MakeULA
    - InterfaceDown
    - Free
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WeaveTunnelServer::TeardownServiceTunEndPoint (void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveTunnelServer *>
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1027,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1030,1
    - Dst: ip6_addr_copy
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1035,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1036,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1038,1
    - Dst: IPAddress::Subnet
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1041,1
    - Dst: IPAddress::Subnet
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1042,1
    - Dst: WeaveMessageInfo::Clear
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1045,1
    - Dst: PacketBuffer*::EnsureReservedSize
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1050,1
    - Dst: WeaveTunnelHeader::EncodeTunnelHeader
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1055,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1056,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1059,1
    - Dst: IPAddress::GlobalId
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1059,1
    - Dst: IPAddress::Subnet
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1059,1
    - Dst: WeaveTunnelServer*::vRouteDB::FindRouteEntry
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1062,1
    - Dst: WeaveTunnelServer*::GetOutgoingConn
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1069,1
    - Dst: WeaveConnection*::SendTunneledMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1077,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1079,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1083,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1088,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1095,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 2
    argNames:
    - tunEP
    - msg
    argTypes:
    - TunEndPoint*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1100
      start: 1013
    functionDepth: 2
    functionLinenumber: 1013
    functionLinenumberEnd: 1100
    functionName: WeaveTunnelServer::RecvdFromServiceTunEndPoint
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 0
    functionsReached:
    - WeaveTunnelServer*::vRouteDB::FindRouteEntry
    - nl::Inet::IPAddress::MakeULA
    - IPAddress::GlobalId
    - nl::Weave::System::PacketBuffer::Free
    - static_cast<WeaveTunnelServer *>
    - ip6_addr_copy
    - nl::Inet::IPAddress::FromIPv6
    - WeaveTunnelServer*::GetOutgoingConn
    - IPAddress::Subnet
    - WeaveMessageInfo::Clear
    - WeaveTunnelHeader::EncodeTunnelHeader
    - SuccessOrExit
    - printf
    - PacketBuffer*::Start
    - PacketBuffer*::EnsureReservedSize
    - WeaveConnection*::SendTunneledMessage
    linkageType: ''
    returnType: void
    signature: WeaveTunnelServer::RecvdFromServiceTunEndPoint (TunEndPoint *tunEP,
      PacketBuffer *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1126
      start: 1102
    functionDepth: 0
    functionLinenumber: 1102
    functionLinenumberEnd: 1126
    functionName: WeaveTunnelServer::GetOutgoingConn
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WeaveConnection
    signature: '* WeaveTunnelServer::GetOutgoingConn(uint8_t index)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1132,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1134,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - nodeId
    - nodeAddr
    - payload
    argTypes:
    - uint64_t
    - IPAddress
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1136
      start: 1128
    functionDepth: 0
    functionLinenumber: 1128
    functionLinenumberEnd: 1136
    functionName: WeaveTunnelServer::HandleEchoRequestReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - IPAddress::ToString
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelServer::HandleEchoRequestReceived (uint64_t nodeId, IPAddress
      nodeAddr,\n                                                   PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1145,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - sm
    - con
    - reqState
    - sessionKeyId
    - peerNodeId
    - encType
    argTypes:
    - WeaveSecurityManager*
    - WeaveConnection*
    - void*
    - uint16_t
    - uint64_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1148
      start: 1138
    functionDepth: 0
    functionLinenumber: 1138
    functionLinenumberEnd: 1148
    functionName: WeaveTunnelServer::HandleSecureSessionEstablished
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelServer::HandleSecureSessionEstablished (WeaveSecurityManager
      *sm, WeaveConnection *con,\n                                                        void
      *reqState, uint16_t sessionKeyId,\n                                                        uint64_t
      peerNodeId, uint8_t encType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1157,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1160,1
    - Dst: StatusReportStr
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1161,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1163,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 6
    argNames:
    - sm
    - con
    - reqState
    - localErr
    - peerNodeId
    - statusReport
    argTypes:
    - WeaveSecurityManager*
    - WeaveConnection*
    - void*
    - WEAVE_ERROR
    - uint64_t
    - StatusReport*
    constantsTouched: []
    func_position:
      end: 1165
      start: 1150
    functionDepth: 0
    functionLinenumber: 1150
    functionLinenumberEnd: 1165
    functionName: WeaveTunnelServer::HandleSecureSessionError
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - WeaveConnection*::PeerAddr::ToString
    - WeaveLogDetail
    - ErrorStr
    - StatusReportStr
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelServer::HandleSecureSessionError (WeaveSecurityManager
      *sm, WeaveConnection *con,\n                                                  void
      *reqState, WEAVE_ERROR localErr,\n                                                  uint64_t
      peerNodeId, StatusReport *statusReport)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1167
    functionDepth: 0
    functionLinenumber: 1167
    functionLinenumberEnd: 1170
    functionName: ConnectionTable::ConnectionTable
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: ConnectionTable::ConnectionTable(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1181,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - aCon
    argTypes:
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 1196
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1196
    functionName: ConnectionTable::AddConnection
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ConnectionTable::AddConnection(WeaveConnection *aCon)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - aCon
    argTypes:
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 1210
      start: 1198
    functionDepth: 0
    functionLinenumber: 1198
    functionLinenumberEnd: 1210
    functionName: ConnectionTable::RemoveConnection
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: ConnectionTable::RemoveConnection(WeaveConnection *aCon)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetupFaultInjectionContext
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1225,1
    - Dst: SetSignalHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1226,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1228,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1229,1
    - Dst: ResolveWeaveNetworkOptions
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1230,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1232,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1235,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1236,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1237,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1239,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1240,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1241,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1242,1
    - Dst: nl::Weave::Stats::UpdateSnapshot
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1244,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1246,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1247,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1255,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1259,1
    - Dst: ProcessStats
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1261,1
    - Dst: PrintFaultInjectionCounters
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1262,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1264,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1265,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp:1266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 1270
      start: 1214
    functionDepth: 4
    functionLinenumber: 1214
    functionLinenumberEnd: 1270
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
    functionUses: 0
    functionsReached:
    - ShutdownSystemLayer
    - InitWeaveStack
    - nl::Weave::Stats::UpdateSnapshot
    - exit
    - ServiceNetwork
    - ParseArgsFromEnvVar
    - WeaveLogDetail
    - ResolveWeaveNetworkOptions
    - ShutdownWeaveStack
    - ParseArgs
    - InitNetwork
    - SetupFaultInjectionContext
    - Shutdown
    - PrintFaultInjectionCounters
    - SetSignalHandler
    - InitSystemLayer
    - ProcessStats
    - ShutdownNetwork
    - Init
    - FAIL_ERROR
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:87,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:88,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:89,1
    - Dst: nl::Inet::IPAddress::FromIPv4
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:93,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - name
    - ipaddrs
    - numipaddrs
    - callback_arg
    argTypes:
    - char*
    - ip_addr_t*
    - u8_t
    - void*
    constantsTouched: []
    func_position:
      end: 97
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 97
    functionName: found_multi
    functionSourceFile: /src/openweave-core/src/test-apps/TestDNS.cpp
    functionUses: 0
    functionsReached:
    - printf
    - nl::Inet::IPAddress::FromIPv4
    linkageType: ''
    returnType: void
    signature: found_multi(const char *name, ip_addr_t *ipaddrs, u8_t numipaddrs,
      void *callback_arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetSIGUSR1Handler
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:104,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:108,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:109,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:112,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:114,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:117,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:118,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:123,1
    - Dst: IPAddress::ToIPv4
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:124,1
    - Dst: dns_setserver
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:125,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:127,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:130,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:131,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:132,1
    - Dst: dns_gethostbyname_multi
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:133,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:136,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:140,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:165,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:169,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:171,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:172,1
    - Dst: dns_gethostbyname_multi
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:173,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:176,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:177,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:178,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:179,1
    - Dst: nl::Inet::IPAddress::FromIPv4
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:183,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:184,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:189,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:193,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:195,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:196,1
    - Dst: dns_gethostbyname_multi
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:197,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:200,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:201,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:202,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:203,1
    - Dst: nl::Inet::IPAddress::FromIPv4
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:207,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:208,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:213,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:217,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:219,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:220,1
    - Dst: dns_gethostbyname_multi
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:221,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:224,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:225,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:226,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:227,1
    - Dst: nl::Inet::IPAddress::FromIPv4
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:231,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:232,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:237,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 80
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 241
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 241
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestDNS.cpp
    functionUses: 0
    functionsReached:
    - InitSystemLayer
    - ParseArgs
    - exit
    - SetSIGUSR1Handler
    - dns_gethostbyname_multi
    - InitNetwork
    - ServiceNetwork
    - nl::Inet::IPAddress::FromString
    - PrintBriefUsage
    - printf
    - IPAddress::ToIPv4
    - dns_setserver
    - nl::Inet::IPAddress::FromIPv4
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:247,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 260
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 260
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/test-apps/TestDNS.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewUDPEndPoint
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:268,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:269,1
    - Dst: NewTCPEndPoint
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:278,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:279,1
    - Dst: Bind
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:284,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:285,1
    - Dst: Listen
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:287,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:288,1
    - Dst: Bind
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:292,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:293,1
    - Dst: Listen
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:295,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:296,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:299,1
    - Dst: NewTCPEndPoint
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:303,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:304,1
    - Dst: Connect
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:311,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 314
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 314
    functionName: StartTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestDNS.cpp
    functionUses: 0
    functionsReached:
    - Bind
    - Listen
    - Connect
    - printf
    - NewTCPEndPoint
    - NewUDPEndPoint
    - FAIL_ERROR
    linkageType: ''
    returnType: void
    signature: StartTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PendingSendLength
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:330,1
    - Dst: MakeDataBuffer
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:342,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:345,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:346,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:350,1
    - Dst: Send
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:352,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:353,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:359,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:360,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:361,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:363,1
    - Dst: Free
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:364,1
    - Dst: MakeDataBuffer
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:379,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:382,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:383,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:387,1
    - Dst: SendTo
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:389,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:390,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 394
    functionName: DriveSend
    functionSourceFile: /src/openweave-core/src/test-apps/TestDNS.cpp
    functionUses: 0
    functionsReached:
    - Now
    - SendTo
    - printf
    - MakeDataBuffer
    - Close
    - Send
    - PendingSendLength
    - FAIL_ERROR
    - Free
    linkageType: ''
    returnType: void
    signature: DriveSend()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TCPEndPoint*::GetPeerInfo
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:404,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:405,1
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:408,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:410,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:413,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ep
    - conErr
    argTypes:
    - TCPEndPoint*
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 414
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 414
    functionName: HandleConnectionComplete
    functionSourceFile: /src/openweave-core/src/test-apps/TestDNS.cpp
    functionUses: 0
    functionsReached:
    - TCPEndPoint*::GetPeerInfo
    - printf
    - IPAddress::ToString
    - ErrorStr
    - FAIL_ERROR
    linkageType: ''
    returnType: void
    signature: HandleConnectionComplete(TCPEndPoint *ep, INET_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:419,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:423,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - listeningEP
    - conEP
    - peerAddr
    - peerPort
    argTypes:
    - TCPEndPoint*
    - TCPEndPoint*
    - IPAddress
    - uint16_t
    constantsTouched: []
    func_position:
      end: 434
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 434
    functionName: HandleConnectionReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestDNS.cpp
    functionUses: 3
    functionsReached:
    - printf
    - IPAddress::ToString
    linkageType: ''
    returnType: void
    signature: HandleConnectionReceived(TCPEndPoint *listeningEP, TCPEndPoint *conEP,
      IPAddress peerAddr, uint16_t peerPort)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:439,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:441,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:441,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:443,1
    - Dst: TCPEndPoint*::Free
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ep
    - err
    argTypes:
    - TCPEndPoint*
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 447
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 447
    functionName: HandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/test-apps/TestDNS.cpp
    functionUses: 2
    functionsReached:
    - printf
    - TCPEndPoint*::Free
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleConnectionClosed(TCPEndPoint *ep, INET_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:451,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:455,1
    - Dst: TCPEndPoint*::Free
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:456,1
    - Dst: DriveSend
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ep
    - len
    argTypes:
    - TCPEndPoint*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 460
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 460
    functionName: HandleDataSent
    functionSourceFile: /src/openweave-core/src/test-apps/TestDNS.cpp
    functionUses: 0
    functionsReached:
    - printf
    - TCPEndPoint*::Free
    - DriveSend
    linkageType: ''
    returnType: void
    signature: HandleDataSent(TCPEndPoint *ep, uint16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::TotalLength
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:466,1
    - Dst: TCPEndPoint*::PutBackReceivedData
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:468,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:469,1
    - Dst: PacketBuffer*::Next
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:473,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:475,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:475,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:476,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:476,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:476,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:479,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:482,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:483,1
    - Dst: TCPEndPoint*::AckReceive
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:487,1
    - Dst: PacketBuffer*::TotalLength
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:487,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:489,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:493,1
    - Dst: TCPEndPoint*::Close
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:494,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:495,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:497,1
    - Dst: TCPEndPoint*::Free
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:498,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - ep
    - data
    argTypes:
    - TCPEndPoint*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 502
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 502
    functionName: HandleDataReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestDNS.cpp
    functionUses: 2
    functionsReached:
    - PacketBuffer*::DataLength
    - PacketBuffer*::Next
    - exit
    - nl::Weave::System::PacketBuffer::Free
    - TCPEndPoint*::PutBackReceivedData
    - TCPEndPoint*::Close
    - TCPEndPoint*::Free
    - printf
    - DumpMemory
    - PacketBuffer*::Start
    - PacketBuffer*::TotalLength
    - TCPEndPoint*::AckReceive
    - FAIL_ERROR
    linkageType: ''
    returnType: void
    signature: HandleDataReceived(TCPEndPoint *ep, PacketBuffer *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:506,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - endPoint
    - err
    argTypes:
    - TCPEndPoint*
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 507
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 507
    functionName: HandleAcceptError
    functionSourceFile: /src/openweave-core/src/test-apps/TestDNS.cpp
    functionUses: 0
    functionsReached:
    - printf
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleAcceptError(TCPEndPoint *endPoint, INET_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:512,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:514,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:514,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:515,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:515,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:515,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - endPoint
    - msg
    - senderAddr
    - senderPort
    argTypes:
    - UDPEndPoint*
    - PacketBuffer*
    - IPAddress
    - uint16_t
    constantsTouched: []
    func_position:
      end: 518
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 518
    functionName: HandleUDPMessageReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestDNS.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - nl::Weave::System::PacketBuffer::Free
    - printf
    - DumpMemory
    - IPAddress::ToString
    - PacketBuffer*::Start
    linkageType: ''
    returnType: void
    signature: HandleUDPMessageReceived(UDPEndPoint *endPoint, PacketBuffer *msg,
      IPAddress senderAddr, uint16_t senderPort)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:523,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:525,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - endPoint
    - err
    - senderAddr
    - senderPort
    argTypes:
    - UDPEndPoint*
    - INET_ERROR
    - IPAddress
    - uint16_t
    constantsTouched: []
    func_position:
      end: 526
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 526
    functionName: HandleUDPReceiveError
    functionSourceFile: /src/openweave-core/src/test-apps/TestDNS.cpp
    functionUses: 0
    functionsReached:
    - printf
    - IPAddress::ToString
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleUDPReceiveError(UDPEndPoint *endPoint, INET_ERROR err, IPAddress
      senderAddr, uint16_t senderPort)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:532,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:536,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:537,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestDNS.cpp:544,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - desiredLen
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 547
      start: 528
    functionDepth: 3
    functionLinenumber: 528
    functionLinenumberEnd: 547
    functionName: MakeDataBuffer
    functionSourceFile: /src/openweave-core/src/test-apps/TestDNS.cpp
    functionUses: 1
    functionsReached:
    - PacketBuffer*::MaxDataLength
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: PacketBuffer
    signature: '*MakeDataBuffer(int32_t desiredLen)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:62,1
    - Dst: vprintf
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:65,1
    - Dst: va_end
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - aFormat
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: TLVPrettyPrinter
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp
    functionUses: 0
    functionsReached:
    - vprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: TLVPrettyPrinter(const char *aFormat, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::Debug::Dump
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' aReader'
    argTypes:
    - nl::Weave::TLV::TLVReader
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: DebugPrettyPrint
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp
    functionUses: 14
    functionsReached:
    - nl::Weave::TLV::Debug::Dump
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DebugPrettyPrint(nl::Weave::TLV::TLVReader & aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:86,1
    - Dst: nl::Weave::WeaveExchangeManager*::RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:92,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - aExchangeMgr
    - aTestCaseId
    argTypes:
    - nl::Weave::WeaveExchangeManager*
    - char*
    constantsTouched: []
    func_position:
      end: 97
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 97
    functionName: MockWdmViewServerImpl::Init
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveExchangeManager*::RegisterUnsolicitedMessageHandler
    - WeaveLogDetail
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Init (nl::Weave::WeaveExchangeManager *aExchangeMgr, const char * const
      aTestCaseId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: MockWdmViewServer::GetInstance
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MockWdmViewServer
    signature: '* MockWdmViewServer::GetInstance ()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:118,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:120,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:127,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:128,1
    - Dst: nl::Weave::TLV::TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:130,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:131,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:133,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:134,1
    - Dst: PathList::Parser::Init
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:137,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:138,1
    - Dst: PathList::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:138,1
    - Dst: nl::Weave::TLV::TLVReader::ExitContainer
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:140,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:141,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:145,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:149,1
    - Dst: nl::Weave::TLV::TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:151,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:152,1
    - Dst: DataList::Builder::Init
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:155,1
    - Dst: DataList::Builder::CreateDataElementBuilder
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:158,1
    - Dst: LastForCurrentChange
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:160,1
    - Dst: CreatePathBuilder
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:162,1
    - Dst: ProfileID
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:163,1
    - Dst: GetError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:168,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:170,1
    - Dst: GetWriter
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:173,1
    - Dst: nl::Weave::TLV::TLVWriter*::StartContainer
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:177,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:177,1
    - Dst: nl::Weave::TLV::TLVWriter*::PutString
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:180,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:180,1
    - Dst: nl::Weave::TLV::TLVWriter*::EndContainer
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:183,1
    - Dst: EndOfDataElement
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:186,1
    - Dst: GetError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:188,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:190,1
    - Dst: DataList::Builder::CreateDataElementBuilder
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:195,1
    - Dst: LastForCurrentChange
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:197,1
    - Dst: CreatePathBuilder
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:199,1
    - Dst: ProfileID
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:200,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:204,1
    - Dst: GetError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:207,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:209,1
    - Dst: GetWriter
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:212,1
    - Dst: nl::Weave::TLV::TLVWriter*::PutString
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:213,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:213,1
    - Dst: EndOfDataElement
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:215,1
    - Dst: GetError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:217,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:219,1
    - Dst: DataList::Builder::CreateDataElementBuilder
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:224,1
    - Dst: LastForCurrentChange
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:226,1
    - Dst: CreatePathBuilder
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:228,1
    - Dst: ProfileID
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:229,1
    - Dst: GetError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:234,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:236,1
    - Dst: GetWriter
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:239,1
    - Dst: nl::Weave::TLV::TLVWriter*::StartContainer
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:243,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:243,1
    - Dst: nl::Weave::TLV::TLVWriter*::StartContainer
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:248,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:248,1
    - Dst: nl::Weave::TLV::TLVWriter*::StartContainer
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:253,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:253,1
    - Dst: nl::Weave::TLV::TLVWriter*::Put
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:259,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:259,1
    - Dst: nl::Weave::TLV::TLVWriter*::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:263,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:263,1
    - Dst: nl::Weave::TLV::TLVWriter*::PutString
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:267,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:267,1
    - Dst: nl::Weave::TLV::TLVWriter*::EndContainer
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:270,1
    - Dst: nl::Weave::TLV::TLVWriter*::Put
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:274,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:274,1
    - Dst: nl::Weave::TLV::TLVWriter*::EndContainer
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:277,1
    - Dst: nl::Weave::TLV::TLVWriter*::StartContainer
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:278,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:278,1
    - Dst: nl::Weave::TLV::TLVWriter*::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:284,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:284,1
    - Dst: nl::Weave::TLV::TLVWriter*::Put
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:287,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:287,1
    - Dst: nl::Weave::TLV::TLVWriter*::Put
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:290,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:290,1
    - Dst: nl::Weave::TLV::TLVWriter*::EndContainer
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:293,1
    - Dst: nl::Weave::TLV::TLVWriter*::Put
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:297,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:297,1
    - Dst: nl::Weave::TLV::TLVWriter*::EndContainer
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:300,1
    - Dst: EndOfDataElement
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:303,1
    - Dst: GetError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:305,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:307,1
    - Dst: DataList::Builder::EndOfDataList
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:311,1
    - Dst: DataList::Builder::GetError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:313,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:315,1
    - Dst: nl::Weave::TLV::TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:318,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:319,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:321,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:322,1
    - Dst: nl::Weave::ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:325,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:327,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:330,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:334,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:340,1
    - Dst: nl::Weave::ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:346,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 101
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - nl::Weave::ExchangeContext*
    - nl::Weave::IPPacketInfo*
    - nl::Weave::WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 348
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 348
    functionName: MockWdmViewServerImpl::IncomingViewRequest
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp
    functionUses: 0
    functionsReached:
    - GetError
    - nl::Weave::ExchangeContext*::SendMessage
    - nl::Weave::TLV::TLVWriter*::Put
    - PathList::Parser::CheckSchemaValidity
    - DataList::Builder::GetError
    - WeaveLogFunctError
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::ExitContainer
    - nl::Weave::System::PacketBuffer::New
    - nl::Weave::TLV::TLVWriter::StartContainer
    - nl::Weave::TLV::TLVReader::Next
    - WeaveLogError
    - nl::Weave::TLV::TLVWriter*::PutString
    - nl::Weave::System::PacketBuffer::Free
    - LastForCurrentChange
    - VerifyOrExit
    - nl::Weave::ExchangeContext*::Close
    - WeaveLogDetail
    - DataList::Builder::EndOfDataList
    - GetWriter
    - nl::Weave::TLV::ContextTag
    - CreatePathBuilder
    - nl::Weave::TLV::TLVWriter::EndContainer
    - nl::Weave::TLV::TLVReader::EnterContainer
    - DataList::Builder::Init
    - PathList::Parser::Init
    - EndOfDataElement
    - DataList::Builder::CreateDataElementBuilder
    - nl::Weave::TLV::TLVWriter::Init
    - nl::Weave::TLV::TLVWriter*::EndContainer
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::Finalize
    - nl::Weave::TLV::TLVWriter*::StartContainer
    - nl::Weave::TLV::TLVWriter*::PutBoolean
    - ProfileID
    linkageType: ''
    returnType: void
    signature: "MockWdmViewServerImpl::IncomingViewRequest(nl::Weave::ExchangeContext
      *ec, const nl::Weave::IPPacketInfo *pktInfo,\n    const nl::Weave::WeaveMessageInfo
      *msgInfo, uint32_t profileId,\n            uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:352,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:354,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:358,1
    - Dst: Path::Builder::Init
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:361,1
    - Dst: Path::Builder::ProfileID
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:362,1
    - Dst: Path::Builder::GetError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:367,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:369,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:374,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:375,1
    - Dst: Path::Parser::Init
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:377,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:379,1
    - Dst: Path::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:379,1
    - Dst: Path::Parser::GetResourceID
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:382,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:383,1
    - Dst: Path::Parser::GetProfileID
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:385,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:386,1
    - Dst: Path::Parser::GetInstanceID
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:388,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:389,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:392,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:396,1
    - Dst: DataElement::Builder::Init
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:399,1
    - Dst: DataElement::Builder::LastForCurrentChange
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:401,1
    - Dst: DataElement::Builder::CreatePathBuilder
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:403,1
    - Dst: ProfileID
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:404,1
    - Dst: nl::Weave::TLV::ProfileTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:408,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:409,1
    - Dst: GetError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:412,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:414,1
    - Dst: DataElement::Builder::GetWriter
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:417,1
    - Dst: nl::Weave::TLV::TLVWriter*::StartContainer
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:421,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:421,1
    - Dst: nl::Weave::TLV::TLVWriter*::Put
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:424,1
    - Dst: nl::Weave::TLV::ProfileTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:424,1
    - Dst: nl::Weave::TLV::TLVWriter*::EndContainer
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:427,1
    - Dst: DataElement::Builder::EndOfDataElement
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:429,1
    - Dst: DataElement::Builder::GetError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:431,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:433,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:438,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:439,1
    - Dst: DataElement::Parser::Init
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:443,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:444,1
    - Dst: DataElement::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:444,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:448,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:452,1
    - Dst: PathList::Builder::Init
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:455,1
    - Dst: PathList::Builder::CreatePathBuilder
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:459,1
    - Dst: Path::Parser::ProfileID
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:460,1
    - Dst: Path::Parser::AdditionalTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:467,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:467,1
    - Dst: Path::Parser::EndOfPath
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:470,1
    - Dst: Path::Parser::GetError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:472,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:474,1
    - Dst: PathList::Builder::EndOfPathList
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:477,1
    - Dst: PathList::Builder::GetError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:479,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:481,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:486,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:487,1
    - Dst: PathList::Parser::Init
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:491,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:492,1
    - Dst: PathList::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:492,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:496,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:500,1
    - Dst: DataList::Builder::Init
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:503,1
    - Dst: DataList::Builder::CreateDataElementBuilder
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:507,1
    - Dst: DataElement::Builder::LastForCurrentChange
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:509,1
    - Dst: DataElement::Builder::CreatePathBuilder
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:511,1
    - Dst: ProfileID
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:512,1
    - Dst: nl::Weave::TLV::ProfileTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:516,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:517,1
    - Dst: GetError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:520,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:522,1
    - Dst: DataElement::Builder::GetWriter
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:525,1
    - Dst: nl::Weave::TLV::TLVWriter*::Put
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:526,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:526,1
    - Dst: DataElement::Builder::EndOfDataElement
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:528,1
    - Dst: DataElement::Builder::GetError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:530,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:532,1
    - Dst: DataList::Builder::EndOfDataList
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:535,1
    - Dst: DataList::Builder::GetError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:537,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:539,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:544,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:545,1
    - Dst: DataList::Parser::Init
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:549,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:550,1
    - Dst: DataList::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:550,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp:554,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 91
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 557
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 557
    functionName: MockWdmViewServerImpl::SimpleTest
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp
    functionUses: 0
    functionsReached:
    - GetError
    - DataList::Parser::Init
    - nl::Weave::TLV::TLVWriter*::Put
    - PathList::Parser::CheckSchemaValidity
    - Path::Builder::ProfileID
    - DataElement::Builder::GetError
    - DataElement::Builder::GetWriter
    - DataList::Builder::GetError
    - nl::Weave::TLV::TLVReader::Init
    - PathList::Builder::EndOfPathList
    - nl::Weave::TLV::TLVReader::Next
    - PathList::Builder::CreatePathBuilder
    - WeaveLogError
    - Path::Builder::Init
    - Path::Builder::GetError
    - DataElement::Parser::Init
    - DataElement::Parser::CheckSchemaValidity
    - DataElement::Builder::LastForCurrentChange
    - DataList::Builder::EndOfDataList
    - PathList::Builder::GetError
    - nl::Weave::TLV::ContextTag
    - DataElement::Builder::CreatePathBuilder
    - DataList::Builder::Init
    - Path::Parser::Init
    - DataList::Parser::CheckSchemaValidity
    - PathList::Parser::Init
    - DataElement::Builder::Init
    - Path::Parser::GetResourceID
    - Path::Parser::GetProfileID
    - DataList::Builder::CreateDataElementBuilder
    - Path::Parser::AdditionalTag
    - nl::Weave::TLV::TLVWriter::Init
    - Path::Parser::GetError
    - PathList::Builder::Init
    - nl::Weave::TLV::ProfileTag
    - Path::Parser::EndOfPath
    - Path::Parser::GetInstanceID
    - Path::Parser::ProfileID
    - nl::Weave::TLV::TLVWriter*::EndContainer
    - Path::Parser::CheckSchemaValidity
    - nl::Weave::TLV::TLVWriter*::StartContainer
    - DataElement::Builder::EndOfDataElement
    - ProfileID
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockWdmViewServerImpl::SimpleTest ()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: MockFabricProvisioningServer::MockFabricProvisioningServer
    functionSourceFile: /src/openweave-core/src/test-apps/MockFPServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MockFabricProvisioningServer::MockFabricProvisioningServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockFabricProvisioningServer::FabricProvisioningServer::Init
      Src: /src/openweave-core/src/test-apps/MockFPServer.cpp:53,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockFPServer.cpp:54,1
    - Dst: SetDelegate
      Src: /src/openweave-core/src/test-apps/MockFPServer.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 61
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 61
    functionName: MockFabricProvisioningServer::Init
    functionSourceFile: /src/openweave-core/src/test-apps/MockFPServer.cpp
    functionUses: 0
    functionsReached:
    - SetDelegate
    - SuccessOrExit
    - MockFabricProvisioningServer::FabricProvisioningServer::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockFabricProvisioningServer::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearFabricState
      Src: /src/openweave-core/src/test-apps/MockFPServer.cpp:65,1
    - Dst: CreateFabric
      Src: /src/openweave-core/src/test-apps/MockFPServer.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: MockFabricProvisioningServer::Preconfig
    functionSourceFile: /src/openweave-core/src/test-apps/MockFPServer.cpp
    functionUses: 0
    functionsReached:
    - CreateFabric
    - ClearFabricState
    linkageType: ''
    returnType: void
    signature: MockFabricProvisioningServer::Preconfig()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockFabricProvisioningServer::FabricProvisioningServer::Shutdown
      Src: /src/openweave-core/src/test-apps/MockFPServer.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: MockFabricProvisioningServer::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/MockFPServer.cpp
    functionUses: 0
    functionsReached:
    - MockFabricProvisioningServer::FabricProvisioningServer::Shutdown
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockFabricProvisioningServer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockFPServer.cpp:80,1
    - Dst: SendSuccessResponse
      Src: /src/openweave-core/src/test-apps/MockFPServer.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: MockFabricProvisioningServer::HandleCreateFabric
    functionSourceFile: /src/openweave-core/src/test-apps/MockFPServer.cpp
    functionUses: 0
    functionsReached:
    - printf
    - SendSuccessResponse
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockFabricProvisioningServer::HandleCreateFabric()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockFPServer.cpp:86,1
    - Dst: SendSuccessResponse
      Src: /src/openweave-core/src/test-apps/MockFPServer.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: MockFabricProvisioningServer::HandleJoinExistingFabric
    functionSourceFile: /src/openweave-core/src/test-apps/MockFPServer.cpp
    functionUses: 0
    functionsReached:
    - printf
    - SendSuccessResponse
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockFabricProvisioningServer::HandleJoinExistingFabric()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockFPServer.cpp:92,1
    - Dst: SendSuccessResponse
      Src: /src/openweave-core/src/test-apps/MockFPServer.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: MockFabricProvisioningServer::HandleLeaveFabric
    functionSourceFile: /src/openweave-core/src/test-apps/MockFPServer.cpp
    functionUses: 0
    functionsReached:
    - printf
    - SendSuccessResponse
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockFabricProvisioningServer::HandleLeaveFabric()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockFPServer.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: MockFabricProvisioningServer::HandleGetFabricConfig
    functionSourceFile: /src/openweave-core/src/test-apps/MockFPServer.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockFabricProvisioningServer::HandleGetFabricConfig()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::FabricProvisioning::FabricProvisioningDelegate::EnforceAccessControl
      Src: /src/openweave-core/src/test-apps/MockFPServer.cpp:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ec
    - msgProfileId
    - msgType
    - msgInfo
    - ' result'
    argTypes:
    - nl::Weave::ExchangeContext*
    - uint32_t
    - uint8_t
    - nl::Weave::WeaveMessageInfo*
    - AccessControlResult
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: MockFabricProvisioningServer::EnforceAccessControl
    functionSourceFile: /src/openweave-core/src/test-apps/MockFPServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::FabricProvisioning::FabricProvisioningDelegate::EnforceAccessControl
    linkageType: ''
    returnType: void
    signature: "MockFabricProvisioningServer::EnforceAccessControl(nl::Weave::ExchangeContext
      *ec, uint32_t msgProfileId, uint8_t msgType,\n            const nl::Weave::WeaveMessageInfo
      *msgInfo, AccessControlResult& result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: MockFabricProvisioningServer::IsPairedToAccount
    functionSourceFile: /src/openweave-core/src/test-apps/MockFPServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: MockFabricProvisioningServer::IsPairedToAccount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockFPServer.cpp:121,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockFPServer.cpp:124,1
    - Dst: nl::StatusReportStr
      Src: /src/openweave-core/src/test-apps/MockFPServer.cpp:124,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockFPServer.cpp:126,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/MockFPServer.cpp:126,1
    - Dst: MockFabricProvisioningServer::FabricProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockFPServer.cpp:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - statusProfileId
    - statusCode
    - sysError
    argTypes:
    - uint32_t
    - uint16_t
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 129
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 129
    functionName: MockFabricProvisioningServer::SendStatusReport
    functionSourceFile: /src/openweave-core/src/test-apps/MockFPServer.cpp
    functionUses: 0
    functionsReached:
    - printf
    - MockFabricProvisioningServer::FabricProvisioningServer::SendStatusReport
    - nl::ErrorStr
    - nl::StatusReportStr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockFabricProvisioningServer::SendStatusReport(uint32_t statusProfileId,
      uint16_t statusCode, WEAVE_ERROR sysError)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 238
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 238
    functionName: ResetTestContext
    functionSourceFile: /src/openweave-core/src/test-apps/weave-ping.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ResetTestContext(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:475,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:477,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:482,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:484,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:489,1
    - Dst: EchoInterval < 0 || EchoInterval >
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:489,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:491,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:503,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 48
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 508
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 508
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/weave-ping.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - EchoInterval < 0 || EchoInterval >
    - ParseInt
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:516,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:522,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:536,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:538,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:547,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 553
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 553
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/test-apps/weave-ping.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseNodeId
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:559,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:564,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:571,1
    - Dst: RefreshEndpoints
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:572,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:574,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:574,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:582,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:583,1
    - Dst: StartClientConnection
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:597,1
    - Dst: StartSecureSession
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:607,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:612,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:615,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:616,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:623,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:624,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:636,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:640,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:642,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:646,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:650,1
    - Dst: SendEchoRequest
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:655,1
    - Dst: SetRequestAck
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:661,1
    - Dst: SetWRMPACKDelay
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:662,1
    - Dst: SetWRMPRetransInterval
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:663,1
    - Dst: SetWRMPRetransCount
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:664,1
    - Dst: GetEncKeyId
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:670,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:683,1
    - Dst: SuspendSession
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:684,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:687,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:687,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:692,1
    - Dst: RemoveSessionKey
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:693,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:696,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:696,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:702,1
    - Dst: RestoreSession
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:703,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:706,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:706,1
    - Dst: SendEchoRequest
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:712,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:723,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:723,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 108
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 729
      start: 555
    functionDepth: 3
    functionLinenumber: 555
    functionLinenumberEnd: 729
    functionName: DriveSending
    functionSourceFile: /src/openweave-core/src/test-apps/weave-ping.cpp
    functionUses: 11
    functionsReached:
    - SendEchoRequest
    - PacketBuffer*::MaxDataLength
    - SetWRMPRetransInterval
    - printf
    - nl::Weave::System::PacketBuffer::New
    - StartSecureSession
    - SuspendSession
    - RemoveSessionKey
    - RestoreSession
    - GetEncKeyId
    - Close
    - SetWRMPRetransCount
    - SetRequestAck
    - Now
    - PacketBuffer*::SetDataLength
    - SetWRMPACKDelay
    - StartClientConnection
    - ErrorStr
    - RefreshEndpoints
    - memcpy
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: DriveSending()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:736,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:738,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:739,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:742,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:742,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:742,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - nodeId
    - nodeAddr
    - payload
    argTypes:
    - uint64_t
    - IPAddress
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 744
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 744
    functionName: HandleEchoRequestReceived
    functionSourceFile: /src/openweave-core/src/test-apps/weave-ping.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - printf
    - DumpMemory
    - IPAddress::ToString
    - PacketBuffer*::Start
    linkageType: ''
    returnType: void
    signature: HandleEchoRequestReceived(uint64_t nodeId, IPAddress nodeAddr, PacketBuffer
      *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:755,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:757,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:758,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:762,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:762,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - nodeId
    - nodeAddr
    - payload
    argTypes:
    - uint64_t
    - IPAddress
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 763
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 763
    functionName: HandleEchoResponseReceived
    functionSourceFile: /src/openweave-core/src/test-apps/weave-ping.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - printf
    - DumpMemory
    - IPAddress::ToString
    - PacketBuffer*::Start
    linkageType: ''
    returnType: void
    signature: HandleEchoResponseReceived(uint64_t nodeId, IPAddress nodeAddr, PacketBuffer
      *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:768,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - msgLayer
    - con
    argTypes:
    - WeaveMessageLayer*
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 773
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 773
    functionName: HandleConnectionReceived
    functionSourceFile: /src/openweave-core/src/test-apps/weave-ping.cpp
    functionUses: 3
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    linkageType: ''
    returnType: void
    signature: HandleConnectionReceived(WeaveMessageLayer *msgLayer, WeaveConnection
      *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartPASESession
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:796,1
    - Dst: StartCASESession
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:800,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:804,1
    - Dst: WeaveFabricIdToIPv6GlobalId
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:804,1
    - Dst: nl::Weave::WeaveNodeIdToIPv6InterfaceId
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:806,1
    - Dst: StartCASESession
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:808,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:818,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:818,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:819,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 823
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 823
    functionName: StartSecureSession
    functionSourceFile: /src/openweave-core/src/test-apps/weave-ping.cpp
    functionUses: 1
    functionsReached:
    - WeaveFabricIdToIPv6GlobalId
    - Now
    - nl::Weave::WeaveNodeIdToIPv6InterfaceId
    - printf
    - nl::Inet::IPAddress::MakeULA
    - StartPASESession
    - ErrorStr
    - StartCASESession
    linkageType: ''
    returnType: void
    signature: StartSecureSession()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:831,1
    - Dst: connect
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:844,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:851,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:851,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:852,1
    - Dst: NewConnection
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:859,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:862,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:862,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:863,1
    - Dst: Connect
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:870,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:873,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:873,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:874,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:876,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 883
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 883
    functionName: StartClientConnection
    functionSourceFile: /src/openweave-core/src/test-apps/weave-ping.cpp
    functionUses: 2
    functionsReached:
    - Now
    - Connect
    - connect
    - printf
    - Close
    - ErrorStr
    - NewConnection
    linkageType: ''
    returnType: void
    signature: StartClientConnection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:888,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:892,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:892,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:893,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:895,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 913
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 913
    functionName: HandleConnectionComplete
    functionSourceFile: /src/openweave-core/src/test-apps/weave-ping.cpp
    functionUses: 0
    functionsReached:
    - Now
    - WeaveConnection*::Close
    - WeaveConnection*::PeerAddr::ToString
    - printf
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:918,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:921,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:923,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:923,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:926,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:929,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 936
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 936
    functionName: HandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/test-apps/weave-ping.cpp
    functionUses: 2
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    - WeaveConnection*::Close
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:944,1
    - Dst: ToString
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:949,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:959,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - sm
    - con
    - reqState
    - sessionKeyId
    - peerNodeId
    - encType
    argTypes:
    - WeaveSecurityManager*
    - WeaveConnection*
    - void*
    - uint16_t
    - uint64_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 960
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 960
    functionName: HandleSecureSessionEstablished
    functionSourceFile: /src/openweave-core/src/test-apps/weave-ping.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    - ToString
    linkageType: ''
    returnType: void
    signature: HandleSecureSessionEstablished(WeaveSecurityManager *sm, WeaveConnection
      *con, void *reqState, uint16_t sessionKeyId, uint64_t peerNodeId, uint8_t encType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:969,1
    - Dst: ToString
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:974,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:982,1
    - Dst: StatusReportStr
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:982,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:984,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:984,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:994,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 6
    argNames:
    - sm
    - con
    - reqState
    - localErr
    - peerNodeId
    - statusReport
    argTypes:
    - WeaveSecurityManager*
    - WeaveConnection*
    - void*
    - WEAVE_ERROR
    - uint64_t
    - StatusReport*
    constantsTouched: []
    func_position:
      end: 1002
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 1002
    functionName: HandleSecureSessionError
    functionSourceFile: /src/openweave-core/src/test-apps/weave-ping.cpp
    functionUses: 0
    functionsReached:
    - Now
    - WeaveConnection*::PeerAddr::ToString
    - ToString
    - printf
    - ErrorStr
    - StatusReportStr
    linkageType: ''
    returnType: void
    signature: HandleSecureSessionError(WeaveSecurityManager *sm, WeaveConnection
      *con, void *reqState, WEAVE_ERROR localErr, uint64_t peerNodeId, StatusReport
      *statusReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseHostPortAndInterface
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:1015,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:1015,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:1018,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:1019,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:1022,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:1024,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:1025,1
    - Dst: InterfaceNameToId
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:1030,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:1033,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:1034,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1004
    functionDepth: 2
    functionLinenumber: 1004
    functionLinenumberEnd: 1037
    functionName: ParseDestAddress
    functionSourceFile: /src/openweave-core/src/test-apps/weave-ping.cpp
    functionUses: 0
    functionsReached:
    - ParseHostPortAndInterface
    - exit
    - nl::Inet::IPAddress::FromString
    - InterfaceNameToId
    - strlen
    - printf
    linkageType: ''
    returnType: void
    signature: ParseDestAddress()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:1043,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:1046,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:1046,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/weave-ping.cpp:1048,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - anAppState
    - anError
    - aReport
    argTypes:
    - void*
    - WEAVE_ERROR
    - StatusReport*
    constantsTouched: []
    func_position:
      end: 1051
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1051
    functionName: HandleServiceMgrStatus
    functionSourceFile: /src/openweave-core/src/test-apps/weave-ping.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Now
    - printf
    linkageType: ''
    returnType: void
    signature: HandleServiceMgrStatus(void* anAppState, WEAVE_ERROR anError, StatusReport
      *aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitToolCommon
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:123,1
    - Dst: UseStdoutLineBuffering
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:125,1
    - Dst: SetupFaultInjectionContext
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:126,1
    - Dst: SetSignalHandler
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:127,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:131,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:132,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:135,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:136,1
    - Dst: ResolveWeaveNetworkOptions
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:137,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:139,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:143,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:144,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:147,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:148,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:149,1
    - Dst: RefreshEndpoints
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:150,1
    - Dst: ResetAppStates
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:151,1
    - Dst: nl::Weave::Stats::UpdateSnapshot
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:157,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:165,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:167,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:171,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:171,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:172,1
    - Dst: AllowBDXServerToRun
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:177,1
    - Dst: PrintNodeConfig
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:180,1
    - Dst: AwaitBdxSendInit
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:183,1
    - Dst: AwaitBdxReceiveInit
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:184,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:193,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:197,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:199,1
    - Dst: ProcessStats
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:202,1
    - Dst: PrintFaultInjectionCounters
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:203,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:205,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 45
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 208
      start: 116
    functionDepth: 4
    functionLinenumber: 116
    functionLinenumberEnd: 208
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp
    functionUses: 0
    functionsReached:
    - InitToolCommon
    - InitWeaveStack
    - printf
    - nl::Weave::Stats::UpdateSnapshot
    - exit
    - ServiceNetwork
    - ParseArgsFromEnvVar
    - ResolveWeaveNetworkOptions
    - ShutdownWeaveStack
    - ParseArgs
    - InitNetwork
    - ResetAppStates
    - SetupFaultInjectionContext
    - PrintBriefUsage
    - Shutdown
    - AllowBDXServerToRun
    - ErrorStr
    - PrintNodeConfig
    - PrintFaultInjectionCounters
    - SetSignalHandler
    - InitSystemLayer
    - UseStdoutLineBuffering
    - AwaitBdxSendInit
    - ProcessStats
    - RefreshEndpoints
    - Init
    - AwaitBdxReceiveInit
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetReceivedFileLocation
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:216,1
    - Dst: SetTempLocation
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:220,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 228
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 228
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp
    functionUses: 0
    functionsReached:
    - SetReceivedFileLocation
    - SetTempLocation
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: MockServiceProvisioningServer::MockServiceProvisioningServer
    functionSourceFile: /src/openweave-core/src/test-apps/MockSPServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MockServiceProvisioningServer::MockServiceProvisioningServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockServiceProvisioningServer::ServiceProvisioningServer::Init
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:67,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:68,1
    - Dst: SetDelegate
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:71,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:74,1
    - Dst: ListenIPv6Addr::ToString
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:80,1
    - Dst: ListenIPv4Addr::ToString
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 99
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 99
    functionName: MockServiceProvisioningServer::Init
    functionSourceFile: /src/openweave-core/src/test-apps/MockSPServer.cpp
    functionUses: 0
    functionsReached:
    - ListenIPv6Addr::ToString
    - ListenIPv4Addr::ToString
    - SuccessOrExit
    - strcpy
    - SetDelegate
    - MockServiceProvisioningServer::ServiceProvisioningServer::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockServiceProvisioningServer::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockServiceProvisioningServer::ClearPersistedService
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:103,1
    - Dst: MockServiceProvisioningServer::ServiceProvisioningServer::Shutdown
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: MockServiceProvisioningServer::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/MockSPServer.cpp
    functionUses: 0
    functionsReached:
    - MockServiceProvisioningServer::ServiceProvisioningServer::Shutdown
    - MockServiceProvisioningServer::ClearPersistedService
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockServiceProvisioningServer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockServiceProvisioningServer::ClearPersistedService
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: MockServiceProvisioningServer::Reset
    functionSourceFile: /src/openweave-core/src/test-apps/MockSPServer.cpp
    functionUses: 0
    functionsReached:
    - MockServiceProvisioningServer::ClearPersistedService
    linkageType: ''
    returnType: void
    signature: MockServiceProvisioningServer::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockServiceProvisioningServer::ClearPersistedService
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:190,1
    - Dst: MockServiceProvisioningServer::PersistNewService
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:191,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 192
    functionName: MockServiceProvisioningServer::Preconfig
    functionSourceFile: /src/openweave-core/src/test-apps/MockSPServer.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - MockServiceProvisioningServer::ClearPersistedService
    - MockServiceProvisioningServer::PersistNewService
    linkageType: ''
    returnType: void
    signature: MockServiceProvisioningServer::Preconfig()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:198,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:203,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:204,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:205,1
    - Dst: fwrite
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:205,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:205,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:206,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:207,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:208,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:209,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:210,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:211,1
    - Dst: MockServiceProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:218,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:219,1
    - Dst: MockServiceProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:228,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:229,1
    - Dst: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::IsValidServiceConfig
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:233,1
    - Dst: MockServiceProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:235,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:236,1
    - Dst: MockServiceProvisioningServer::StartConnectToPairingServer
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:261,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:262,1
    - Dst: MockServiceProvisioningServer::PrepareBindingForPairingServer
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:266,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:267,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - RegisterServicePairAccountMessage
    constantsTouched: []
    func_position:
      end: 276
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 276
    functionName: MockServiceProvisioningServer::HandleRegisterServicePairAccount
    functionSourceFile: /src/openweave-core/src/test-apps/MockSPServer.cpp
    functionUses: 0
    functionsReached:
    - fwrite
    - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::IsValidServiceConfig
    - MockServiceProvisioningServer::PrepareBindingForPairingServer
    - PeerAddr::ToString
    - ExitNow
    - printf
    - DumpMemory
    - SuccessOrExit
    - MockServiceProvisioningServer::StartConnectToPairingServer
    - MockServiceProvisioningServer::SendStatusReport
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockServiceProvisioningServer::HandleRegisterServicePairAccount(RegisterServicePairAccountMessage&
      msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:283,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:283,1
    - Dst: NewBinding
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:285,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:286,1
    - Dst: BeginConfiguration
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:292,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:298,1
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 310
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 310
    functionName: MockServiceProvisioningServer::PrepareBindingForPairingServer
    functionSourceFile: /src/openweave-core/src/test-apps/MockSPServer.cpp
    functionUses: 1
    functionsReached:
    - NewBinding
    - nl::Inet::IPAddress::FromString
    - VerifyOrExit
    - Release
    - SuccessOrExit
    - BeginConfiguration
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockServiceProvisioningServer::PrepareBindingForPairingServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:329,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:333,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:333,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:334,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:337,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:337,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:338,1
    - Dst: nl::Weave::Binding::DefaultEventHandler
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:341,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:342,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:346,1
    - Dst: GetDeviceDesc
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:349,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeTLV
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:350,1
    - Dst: MockServiceProvisioningServer*::SendPairDeviceToAccountRequest
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:353,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:359,1
    - Dst: MockServiceProvisioningServer*::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:364,1
    - Dst: MockServiceProvisioningServer*::mPairingServerBinding::Release
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:367,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 4
    argNames:
    - appState
    - event
    - inParam
    - outParam
    argTypes:
    - void*
    - nl::Weave::Binding::EventType
    - nl::Weave::Binding::InEventParam
    - nl::Weave::Binding::OutEventParam
    constantsTouched: []
    func_position:
      end: 371
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 371
    functionName: MockServiceProvisioningServer::HandlePairingServerBindingEvent
    functionSourceFile: /src/openweave-core/src/test-apps/MockSPServer.cpp
    functionUses: 0
    functionsReached:
    - MockServiceProvisioningServer*::SendPairDeviceToAccountRequest
    - MockServiceProvisioningServer*::SendStatusReport
    - ExitNow
    - GetDeviceDesc
    - MockServiceProvisioningServer*::mPairingServerBinding::Release
    - printf
    - SuccessOrExit
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeTLV
    - nl::Weave::Binding::DefaultEventHandler
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: "MockServiceProvisioningServer::HandlePairingServerBindingEvent(void
      *const appState,\n                                                                    const
      nl::Weave::Binding::EventType event,\n                                                                    const
      nl::Weave::Binding::InEventParam &inParam,\n                                                                    nl::Weave::Binding::OutEventParam
      &outParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:379,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:381,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:382,1
    - Dst: MessageLayer::NewConnection
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:384,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:385,1
    - Dst: WeaveConnection*::Connect
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:394,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:395,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 404
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 404
    functionName: MockServiceProvisioningServer::StartConnectToPairingServer
    functionSourceFile: /src/openweave-core/src/test-apps/MockSPServer.cpp
    functionUses: 1
    functionsReached:
    - WeaveConnection*::Close
    - VerifyOrExit
    - nl::Inet::IPAddress::FromString
    - ExitNow
    - printf
    - MessageLayer::NewConnection
    - WeaveConnection*::Connect
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockServiceProvisioningServer::StartConnectToPairingServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:414,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:414,1
    - Dst: MockServiceProvisioningServer*::mPairingServerCon::Close
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:416,1
    - Dst: MockServiceProvisioningServer*::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:418,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:422,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:427,1
    - Dst: GetDeviceDesc
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:431,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeTLV
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:434,1
    - Dst: MockServiceProvisioningServer*::SendPairDeviceToAccountRequest
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:437,1
    - Dst: MockServiceProvisioningServer*::mPairingServerCon::Close
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:446,1
    - Dst: MockServiceProvisioningServer*::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:448,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 451
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 451
    functionName: MockServiceProvisioningServer::HandlePairingServerConnectionComplete
    functionSourceFile: /src/openweave-core/src/test-apps/MockSPServer.cpp
    functionUses: 0
    functionsReached:
    - MockServiceProvisioningServer*::mPairingServerCon::Close
    - MockServiceProvisioningServer*::SendPairDeviceToAccountRequest
    - MockServiceProvisioningServer*::SendStatusReport
    - GetDeviceDesc
    - printf
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeTLV
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: MockServiceProvisioningServer::HandlePairingServerConnectionComplete(WeaveConnection
      *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:458,1
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:464,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:471,1
    - Dst: MockServiceProvisioningServer::PersistNewService
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:479,1
    - Dst: MockServiceProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:482,1
    - Dst: SendSuccessResponse
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:486,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:492,1
    - Dst: nl::StatusReportStr
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:492,1
    - Dst: MockServiceProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:493,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:497,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:497,1
    - Dst: MockServiceProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:498,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - err
    - serverStatusProfileId
    - serverStatusCode
    argTypes:
    - WEAVE_ERROR
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 500
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 500
    functionName: MockServiceProvisioningServer::HandlePairDeviceToAccountResult
    functionSourceFile: /src/openweave-core/src/test-apps/MockSPServer.cpp
    functionUses: 0
    functionsReached:
    - nl::StatusReportStr
    - printf
    - Release
    - SendSuccessResponse
    - MockServiceProvisioningServer::PersistNewService
    - MockServiceProvisioningServer::SendStatusReport
    - Close
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: MockServiceProvisioningServer::HandlePairDeviceToAccountResult(WEAVE_ERROR
      err, uint32_t serverStatusProfileId, uint16_t serverStatusCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:508,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:515,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:522,1
    - Dst: nl::StatusReportStr
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:522,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:526,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:526,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - err
    - serverStatusProfileId
    - serverStatusCode
    argTypes:
    - WEAVE_ERROR
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 528
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 528
    functionName: MockServiceProvisioningServer::HandleIFJServiceFabricJoinResult
    functionSourceFile: /src/openweave-core/src/test-apps/MockSPServer.cpp
    functionUses: 0
    functionsReached:
    - printf
    - Release
    - nl::ErrorStr
    - nl::StatusReportStr
    linkageType: ''
    returnType: void
    signature: MockServiceProvisioningServer::HandleIFJServiceFabricJoinResult(WEAVE_ERROR
      err, uint32_t serverStatusProfileId, uint16_t serverStatusCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningDelegate::EnforceAccessControl
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ec
    - msgProfileId
    - msgType
    - msgInfo
    - ' result'
    argTypes:
    - nl::Weave::ExchangeContext*
    - uint32_t
    - uint8_t
    - nl::Weave::WeaveMessageInfo*
    - AccessControlResult
    constantsTouched: []
    func_position:
      end: 540
      start: 531
    functionDepth: 3
    functionLinenumber: 531
    functionLinenumberEnd: 540
    functionName: MockServiceProvisioningServer::EnforceAccessControl
    functionSourceFile: /src/openweave-core/src/test-apps/MockSPServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningDelegate::EnforceAccessControl
    linkageType: ''
    returnType: void
    signature: "MockServiceProvisioningServer::EnforceAccessControl(nl::Weave::ExchangeContext
      *ec, uint32_t msgProfileId, uint8_t msgType,\n            const nl::Weave::WeaveMessageInfo
      *msgInfo, AccessControlResult& result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 545
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 545
    functionName: MockServiceProvisioningServer::IsPairedToAccount
    functionSourceFile: /src/openweave-core/src/test-apps/MockSPServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: MockServiceProvisioningServer::IsPairedToAccount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockServiceProvisioningServer*::mPairingServerCon::Close
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 555
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 555
    functionName: MockServiceProvisioningServer::HandlePairingServerConnectionClosed
    functionSourceFile: /src/openweave-core/src/test-apps/MockSPServer.cpp
    functionUses: 0
    functionsReached:
    - MockServiceProvisioningServer*::mPairingServerCon::Close
    linkageType: ''
    returnType: void
    signature: MockServiceProvisioningServer::HandlePairingServerConnectionClosed(WeaveConnection
      *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:561,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:566,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:567,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:568,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:569,1
    - Dst: MockServiceProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:575,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:576,1
    - Dst: nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::IsValidServiceConfig
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:580,1
    - Dst: MockServiceProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:582,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:583,1
    - Dst: MockServiceProvisioningServer::UpdatedPersistedService
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:588,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:589,1
    - Dst: SendSuccessResponse
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:592,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - UpdateServiceMessage
    constantsTouched: []
    func_position:
      end: 597
      start: 557
    functionDepth: 3
    functionLinenumber: 557
    functionLinenumberEnd: 597
    functionName: MockServiceProvisioningServer::HandleUpdateService
    functionSourceFile: /src/openweave-core/src/test-apps/MockSPServer.cpp
    functionUses: 0
    functionsReached:
    - MockServiceProvisioningServer::UpdatedPersistedService
    - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::IsValidServiceConfig
    - ExitNow
    - PeerAddr::ToString
    - printf
    - DumpMemory
    - SendSuccessResponse
    - SuccessOrExit
    - MockServiceProvisioningServer::SendStatusReport
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockServiceProvisioningServer::HandleUpdateService(UpdateServiceMessage&
      msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:603,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:605,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:606,1
    - Dst: MockServiceProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:612,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:613,1
    - Dst: MockServiceProvisioningServer::ClearPersistedService
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:617,1
    - Dst: SendSuccessResponse
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:620,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - serviceId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 625
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 625
    functionName: MockServiceProvisioningServer::HandleUnregisterService
    functionSourceFile: /src/openweave-core/src/test-apps/MockSPServer.cpp
    functionUses: 0
    functionsReached:
    - ExitNow
    - PeerAddr::ToString
    - MockServiceProvisioningServer::ClearPersistedService
    - printf
    - SendSuccessResponse
    - SuccessOrExit
    - MockServiceProvisioningServer::SendStatusReport
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockServiceProvisioningServer::HandleUnregisterService(uint64_t serviceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:635,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:636,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:637,1
    - Dst: malloc
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:640,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:641,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:642,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:657,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:659,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 5
    argNames:
    - serviceId
    - accountId
    - accountIdLen
    - serviceConfig
    - serviceConfigLen
    argTypes:
    - uint64_t
    - char*
    - uint16_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 662
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 662
    functionName: MockServiceProvisioningServer::PersistNewService
    functionSourceFile: /src/openweave-core/src/test-apps/MockSPServer.cpp
    functionUses: 2
    functionsReached:
    - free
    - malloc
    - VerifyOrExit
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "MockServiceProvisioningServer::PersistNewService(uint64_t serviceId,\n
      \                                                            const char *accountId,
      uint16_t accountIdLen,\n                                                             const
      uint8_t *serviceConfig, uint16_t serviceConfigLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:669,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:670,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:671,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:673,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - serviceConfig
    - serviceConfigLen
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 685
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 685
    functionName: MockServiceProvisioningServer::UpdatedPersistedService
    functionSourceFile: /src/openweave-core/src/test-apps/MockSPServer.cpp
    functionUses: 1
    functionsReached:
    - free
    - malloc
    - VerifyOrExit
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockServiceProvisioningServer::UpdatedPersistedService(const uint8_t
      *serviceConfig, uint16_t serviceConfigLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:692,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:697,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 704
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 704
    functionName: MockServiceProvisioningServer::ClearPersistedService
    functionSourceFile: /src/openweave-core/src/test-apps/MockSPServer.cpp
    functionUses: 4
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: MockServiceProvisioningServer::ClearPersistedService()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:709,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:712,1
    - Dst: nl::StatusReportStr
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:712,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:714,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:714,1
    - Dst: MockServiceProvisioningServer::ServiceProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockSPServer.cpp:716,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - statusProfileId
    - statusCode
    - sysError
    argTypes:
    - uint32_t
    - uint16_t
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 717
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 717
    functionName: MockServiceProvisioningServer::SendStatusReport
    functionSourceFile: /src/openweave-core/src/test-apps/MockSPServer.cpp
    functionUses: 4
    functionsReached:
    - MockServiceProvisioningServer::ServiceProvisioningServer::SendStatusReport
    - printf
    - nl::ErrorStr
    - nl::StatusReportStr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockServiceProvisioningServer::SendStatusReport(uint32_t statusProfileId,
      uint16_t statusCode, WEAVE_ERROR sysError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SelectNodeAddress
      Src: /src/openweave-core/src/test-apps/TestWeaveFabricState.cpp:59,1
    - Dst: nl::Inet::IPAddress::MakeIPv6WellKnownMulticast
      Src: /src/openweave-core/src/test-apps/TestWeaveFabricState.cpp:64,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWeaveFabricState.cpp:68,1
    - Dst: WeaveNodeIdToIPv6InterfaceId
      Src: /src/openweave-core/src/test-apps/TestWeaveFabricState.cpp:68,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveFabricState.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 72
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 72
    functionName: CheckSelectNodeAddress
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveFabricState.cpp
    functionUses: 1
    functionsReached:
    - NL_TEST_ASSERT
    - WeaveNodeIdToIPv6InterfaceId
    - nl::Inet::IPAddress::MakeIPv6WellKnownMulticast
    - SelectNodeAddress
    - nl::Inet::IPAddress::MakeULA
    linkageType: ''
    returnType: void
    signature: CheckSelectNodeAddress(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SelectNodeAddress
      Src: /src/openweave-core/src/test-apps/TestWeaveFabricState.cpp:96,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWeaveFabricState.cpp:98,1
    - Dst: WeaveNodeIdToIPv6InterfaceId
      Src: /src/openweave-core/src/test-apps/TestWeaveFabricState.cpp:98,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveFabricState.cpp:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 102
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 102
    functionName: CheckSelectNodeAddressWithSubnet
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveFabricState.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - WeaveNodeIdToIPv6InterfaceId
    - SelectNodeAddress
    - nl::Inet::IPAddress::MakeULA
    linkageType: ''
    returnType: void
    signature: CheckSelectNodeAddressWithSubnet(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveFabricState.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 115
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 115
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveFabricState.cpp
    functionUses: 0
    functionsReached:
    - Init
    linkageType: ''
    returnType: int
    signature: TestSetup(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveFabricState.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestTeardown(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestWeaveFabricState.cpp:149,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestWeaveFabricState.cpp:152,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestWeaveFabricState.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 155
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveFabricState.cpp
    functionUses: 0
    functionsReached:
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - connObj
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: MockBlePlatformDelegate::SubscribeCharacteristic
    functionSourceFile: /src/openweave-core/src/test-apps/MockBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: MockBlePlatformDelegate::SubscribeCharacteristic(BLE_CONNECTION_OBJECT
      connObj, const nl::Ble::WeaveBleUUID *svcId, const nl::Ble::WeaveBleUUID *charId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - connObj
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: MockBlePlatformDelegate::UnsubscribeCharacteristic
    functionSourceFile: /src/openweave-core/src/test-apps/MockBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: MockBlePlatformDelegate::UnsubscribeCharacteristic(BLE_CONNECTION_OBJECT
      connObj, const nl::Ble::WeaveBleUUID *svcId, const nl::Ble::WeaveBleUUID *charId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - connObj
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: MockBlePlatformDelegate::CloseConnection
    functionSourceFile: /src/openweave-core/src/test-apps/MockBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: MockBlePlatformDelegate::CloseConnection(BLE_CONNECTION_OBJECT connObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - connObj
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: MockBlePlatformDelegate::GetMTU
    functionSourceFile: /src/openweave-core/src/test-apps/MockBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: MockBlePlatformDelegate::GetMTU(BLE_CONNECTION_OBJECT connObj) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - connObj
    - svcId
    - charId
    - pBuf
    argTypes:
    - BLE_CONNECTION_OBJECT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    - nl::Weave::System::PacketBuffer*
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: MockBlePlatformDelegate::SendIndication
    functionSourceFile: /src/openweave-core/src/test-apps/MockBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: MockBlePlatformDelegate::SendIndication(BLE_CONNECTION_OBJECT connObj,
      const nl::Ble::WeaveBleUUID *svcId, const nl::Ble::WeaveBleUUID *charId, nl::Weave::System::PacketBuffer
      *pBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - connObj
    - svcId
    - charId
    - pBuf
    argTypes:
    - BLE_CONNECTION_OBJECT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    - nl::Weave::System::PacketBuffer*
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: MockBlePlatformDelegate::SendWriteRequest
    functionSourceFile: /src/openweave-core/src/test-apps/MockBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: MockBlePlatformDelegate::SendWriteRequest(BLE_CONNECTION_OBJECT connObj,
      const nl::Ble::WeaveBleUUID *svcId, const nl::Ble::WeaveBleUUID *charId, nl::Weave::System::PacketBuffer
      *pBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - connObj
    - svcId
    - charId
    - pBuf
    argTypes:
    - BLE_CONNECTION_OBJECT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    - nl::Weave::System::PacketBuffer*
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: MockBlePlatformDelegate::SendReadRequest
    functionSourceFile: /src/openweave-core/src/test-apps/MockBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: MockBlePlatformDelegate::SendReadRequest(BLE_CONNECTION_OBJECT connObj,
      const nl::Ble::WeaveBleUUID *svcId, const nl::Ble::WeaveBleUUID *charId, nl::Weave::System::PacketBuffer
      *pBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - connObj
    - requestContext
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - BLE_READ_REQUEST_CONTEXT
    - nl::Ble::WeaveBleUUID*
    - nl::Ble::WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: MockBlePlatformDelegate::SendReadResponse
    functionSourceFile: /src/openweave-core/src/test-apps/MockBlePlatformDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: MockBlePlatformDelegate::SendReadResponse(BLE_CONNECTION_OBJECT connObj,
      BLE_READ_REQUEST_CONTEXT requestContext, const nl::Ble::WeaveBleUUID *svcId,
      const nl::Ble::WeaveBleUUID *charId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: '* nl::Weave::Profiles::DataManagement::SubscriptionEngine::GetInstance()'
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: nl::Weave::Profiles::DataManagement::SubscriptionEngine
    signature: '* nl::Weave::Profiles::DataManagement::SubscriptionEngine::GetInstance()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: WdmResponderState::init
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: MockWdmSubscriptionResponder::GetInstance
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MockWdmSubscriptionResponder
    signature: '* MockWdmSubscriptionResponder::GetInstance ()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResourceIdentifier
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:292,1
    - Dst: ResourceIdentifier
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 297
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 297
    functionName: MockWdmSubscriptionResponderImpl::MockWdmSubscriptionResponderImpl
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 0
    functionsReached:
    - ResourceIdentifier
    linkageType: ''
    returnType: void
    signature: MockWdmSubscriptionResponderImpl::MockWdmSubscriptionResponderImpl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:302,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:305,1
    - Dst: atoi
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:309,1
    - Dst: atoi
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:322,1
    - Dst: atoi
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:331,1
    - Dst: atoi
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:340,1
    - Dst: atoi
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:351,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:361,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:362,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:363,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:364,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:366,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:367,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:373,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:376,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:380,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:381,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:382,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:383,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:384,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:389,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:393,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:397,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:402,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:406,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:410,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:414,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:418,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:422,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:426,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:439,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:440,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:442,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:443,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:445,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:447,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:449,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:451,1
    - Dst: MockWdmSubscriptionResponderImpl::Command_End
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:459,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 111
    argCount: 2
    argNames:
    - aExchangeMgr
    - aConfig
    argTypes:
    - nl::Weave::WeaveExchangeManager*
    - MockWdmNodeOptions
    constantsTouched: []
    func_position:
      end: 463
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 463
    functionName: MockWdmSubscriptionResponderImpl::Init
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 0
    functionsReached:
    - MockWdmSubscriptionResponderImpl::Command_End
    - Add
    - atoi
    - SubscriptionEngine::GetInstance
    - GetVersion
    - init
    - WeaveLogDetail
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "MockWdmSubscriptionResponderImpl::Init (nl::Weave::WeaveExchangeManager
      *aExchangeMgr,\n                                                    const MockWdmNodeOptions
      &aConfig)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Locate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:469,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:470,1
    - Dst: MockWdmSubscriptionResponderImpl::DumpPublisherTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:472,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - inTraitDataSourceIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 475
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 475
    functionName: MockWdmSubscriptionResponderImpl::DumpPublisherTraitChecksum
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 1
    functionsReached:
    - MockWdmSubscriptionResponderImpl::DumpPublisherTraitChecksum
    - WeaveLogFunctError
    - SuccessOrExit
    - Locate
    linkageType: ''
    returnType: void
    signature: MockWdmSubscriptionResponderImpl::DumpPublisherTraitChecksum(int inTraitDataSourceIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Locate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:484,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:485,1
    - Dst: MockWdmSubscriptionResponderImpl::DumpClientTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:487,1
    - Dst: TraitDataSink*::GetSchemaEngine
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:487,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - inTraitDataSinkIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 490
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 490
    functionName: MockWdmSubscriptionResponderImpl::DumpClientTraitChecksum
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 1
    functionsReached:
    - TraitDataSink*::GetSchemaEngine
    - Locate
    - MockWdmSubscriptionResponderImpl::DumpClientTraitChecksum
    - SuccessOrExit
    - WeaveLogFunctError
    linkageType: ''
    returnType: void
    signature: MockWdmSubscriptionResponderImpl::DumpClientTraitChecksum(int inTraitDataSinkIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockWdmSubscriptionResponderImpl::DumpClientTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:497,1
    - Dst: MockWdmSubscriptionResponderImpl::DumpClientTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:503,1
    - Dst: MockWdmSubscriptionResponderImpl::DumpClientTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:504,1
    - Dst: MockWdmSubscriptionResponderImpl::DumpClientTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:505,1
    - Dst: MockWdmSubscriptionResponderImpl::DumpClientTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:509,1
    - Dst: MockWdmSubscriptionResponderImpl::DumpClientTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:510,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 515
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 515
    functionName: MockWdmSubscriptionResponderImpl::DumpClientTraits
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 0
    functionsReached:
    - MockWdmSubscriptionResponderImpl::DumpClientTraitChecksum
    linkageType: ''
    returnType: void
    signature: MockWdmSubscriptionResponderImpl::DumpClientTraits(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockWdmSubscriptionResponderImpl::DumpPublisherTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:522,1
    - Dst: MockWdmSubscriptionResponderImpl::DumpPublisherTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:523,1
    - Dst: MockWdmSubscriptionResponderImpl::DumpPublisherTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:529,1
    - Dst: MockWdmSubscriptionResponderImpl::DumpPublisherTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:530,1
    - Dst: MockWdmSubscriptionResponderImpl::DumpPublisherTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:531,1
    - Dst: MockWdmSubscriptionResponderImpl::DumpPublisherTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:532,1
    - Dst: MockWdmSubscriptionResponderImpl::DumpPublisherTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:535,1
    - Dst: MockWdmSubscriptionResponderImpl::DumpPublisherTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:536,1
    - Dst: MockWdmSubscriptionResponderImpl::DumpPublisherTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:537,1
    - Dst: MockWdmSubscriptionResponderImpl::DumpPublisherTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:540,1
    - Dst: MockWdmSubscriptionResponderImpl::DumpPublisherTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:541,1
    - Dst: MockWdmSubscriptionResponderImpl::DumpPublisherTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:542,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 547
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 547
    functionName: MockWdmSubscriptionResponderImpl::DumpPublisherTraits
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 0
    functionsReached:
    - MockWdmSubscriptionResponderImpl::DumpPublisherTraitChecksum
    linkageType: ''
    returnType: void
    signature: MockWdmSubscriptionResponderImpl::DumpPublisherTraits(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<MockWdmSubscriptionResponderImpl *>
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:553,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:557,1
    - Dst: mIncomingSubscribeRequest::mBinding::SetDefaultResponseTimeout
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:562,1
    - Dst: mIncomingSubscribeRequest::mBinding::SetDefaultWRMPConfig
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:563,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::DefaultEventHandler
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - aAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - SubscriptionEngine::EventID
    - SubscriptionEngine::InEventParam
    - SubscriptionEngine::OutEventParam
    constantsTouched: []
    func_position:
      end: 570
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 570
    functionName: MockWdmSubscriptionResponderImpl::EngineEventCallback
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<MockWdmSubscriptionResponderImpl *>
    - mIncomingSubscribeRequest::mBinding::SetDefaultResponseTimeout
    - nl::Weave::Profiles::SubscriptionEngine::DefaultEventHandler
    - WeaveLogDetail
    - mIncomingSubscribeRequest::mBinding::SetDefaultWRMPConfig
    linkageType: ''
    returnType: void
    signature: "MockWdmSubscriptionResponderImpl::EngineEventCallback (void * const
      aAppState,\n    SubscriptionEngine::EventID aEvent,\n    const SubscriptionEngine::InEventParam
      & aInParam, SubscriptionEngine::OutEventParam & aOutParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mItem::GetVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:580,1
    - Dst: malloc
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:582,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:583,1
    - Dst: mItem::GetVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:583,1
    - Dst: mItem::GetVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - aTraitDataSinkIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 588
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 588
    functionName: MockWdmSubscriptionResponderImpl::AddNewVersion
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 0
    functionsReached:
    - malloc
    - mItem::GetVersion
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: MockWdmSubscriptionResponderImpl::AddNewVersion(int aTraitDataSinkIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<MockWdmSubscriptionResponderImpl *>
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:594,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:598,1
    - Dst: mSubscribeRequestParsed::mHandler::GetBinding
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:604,1
    - Dst: mSubscribeRequestParsed::mHandler::GetBinding
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:605,1
    - Dst: mSubscribeRequestParsed::mHandler::EndSubscription
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:611,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:615,1
    - Dst: mSubscribeRequestParsed::mHandler::AcceptSubscribeRequest
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:619,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:624,1
    - Dst: MockWdmSubscriptionResponderImpl*::DumpPublisherTraits
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:630,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:634,1
    - Dst: GetBinding
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:636,1
    - Dst: AddRef
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:637,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:643,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:647,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:718,1
    - Dst: mSubscriptionEstablished::mHandler::GetBinding
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:719,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:722,1
    - Dst: MockWdmSubscriptionResponderImpl*::mSubscriptionClient::InitiateCounterSubscription
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:725,1
    - Dst: MockWdmSubscriptionResponderImpl*::mExchangeMgr::MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:734,1
    - Dst: MockWdmSubscriptionResponderImpl*::mExchangeMgr::MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:744,1
    - Dst: MockWdmSubscriptionResponderImpl*::mExchangeMgr::MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:748,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:759,1
    - Dst: mSubscriptionTerminated::mHandler::GetPeerNodeId
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:760,1
    - Dst: nl::StatusReportStr
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:763,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:764,1
    - Dst: MockWdmSubscriptionResponderImpl*::mExchangeMgr::MessageLayer::SystemLayer::CancelTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:769,1
    - Dst: MockWdmSubscriptionResponderImpl*::mExchangeMgr::MessageLayer::SystemLayer::CancelTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:773,1
    - Dst: MockWdmSubscriptionResponderImpl::HandlePublisherRelease
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:784,1
    - Dst: init
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:785,1
    - Dst: MockWdmSubscriptionResponderImpl*::onCompleteTest
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:786,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::DefaultEventHandler
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:790,1
    - Dst: EndSubscription
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:798,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:801,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 145
    argCount: 4
    argNames:
    - aAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - SubscriptionHandler::EventID
    - SubscriptionHandler::InEventParam
    - SubscriptionHandler::OutEventParam
    constantsTouched: []
    func_position:
      end: 802
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 802
    functionName: MockWdmSubscriptionResponderImpl::PublisherEventCallback
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 0
    functionsReached:
    - mSubscribeRequestParsed::mHandler::AcceptSubscribeRequest
    - nl::StatusReportStr
    - WeaveLogFunctError
    - EndSubscription
    - reinterpret_cast<MockWdmSubscriptionResponderImpl *>
    - MockWdmSubscriptionResponderImpl*::DumpPublisherTraits
    - AddRef
    - mSubscribeRequestParsed::mHandler::GetBinding
    - SubscriptionEngine::GetInstance
    - WeaveLogDetail
    - MockWdmSubscriptionResponderImpl*::mExchangeMgr::MessageLayer::SystemLayer::StartTimer
    - MockWdmSubscriptionResponderImpl*::onCompleteTest
    - nl::ErrorStr
    - MockWdmSubscriptionResponderImpl*::mExchangeMgr::MessageLayer::SystemLayer::CancelTimer
    - mSubscriptionTerminated::mHandler::GetPeerNodeId
    - MockWdmSubscriptionResponderImpl*::mSubscriptionClient::InitiateCounterSubscription
    - GetBinding
    - mSubscriptionEstablished::mHandler::GetBinding
    - MockWdmSubscriptionResponderImpl::HandlePublisherRelease
    - init
    - SuccessOrExit
    - mSubscribeRequestParsed::mHandler::EndSubscription
    - nl::Weave::Profiles::SubscriptionHandler::DefaultEventHandler
    linkageType: ''
    returnType: void
    signature: "MockWdmSubscriptionResponderImpl::PublisherEventCallback (void * const
      aAppState,\n        SubscriptionHandler::EventID aEvent, const SubscriptionHandler::InEventParam
      & aInParam, SubscriptionHandler::OutEventParam & aOutParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:811,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:816,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 821
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 821
    functionName: MockWdmSubscriptionResponderImpl::PrintVersionsLog
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: MockWdmSubscriptionResponderImpl::PrintVersionsLog()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 826
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 826
    functionName: MockWdmSubscriptionResponderImpl::ClearDataSinkState
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MockWdmSubscriptionResponderImpl::ClearDataSinkState(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<MockTraitDataSink *>
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:830,1
    - Dst: MockTraitDataSink*::ResetDataSink
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aTraitInstance
    - aHandle
    - aContext
    argTypes:
    - void*
    - TraitDataHandle
    - void*
    constantsTouched: []
    func_position:
      end: 832
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 832
    functionName: MockWdmSubscriptionResponderImpl::ClearDataSinkIterator
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 0
    functionsReached:
    - MockTraitDataSink*::ResetDataSink
    - static_cast<MockTraitDataSink *>
    linkageType: ''
    returnType: void
    signature: MockWdmSubscriptionResponderImpl::ClearDataSinkIterator(void *aTraitInstance,
      TraitDataHandle aHandle, void *aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<MockWdmSubscriptionResponderImpl *>
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:838,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:842,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:846,1
    - Dst: GetSubscriptionId
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:847,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:850,1
    - Dst: MockWdmSubscriptionResponderImpl::HandleClientRelease
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:851,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:871,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:872,1
    - Dst: mSubscriptionEstablished::mClient::GetLivenessTimeoutMsec
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:872,1
    - Dst: MockWdmSubscriptionResponderImpl*::mExchangeMgr::MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:876,1
    - Dst: MockWdmSubscriptionResponderImpl*::mExchangeMgr::MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:886,1
    - Dst: MockWdmSubscriptionResponderImpl*::mExchangeMgr::MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:890,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:899,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:902,1
    - Dst: MockWdmSubscriptionResponderImpl*::AddNewVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:906,1
    - Dst: MockWdmSubscriptionResponderImpl*::AddNewVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:912,1
    - Dst: MockWdmSubscriptionResponderImpl*::AddNewVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:913,1
    - Dst: MockWdmSubscriptionResponderImpl*::AddNewVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:914,1
    - Dst: MockWdmSubscriptionResponderImpl*::AddNewVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:918,1
    - Dst: MockWdmSubscriptionResponderImpl*::AddNewVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:919,1
    - Dst: MockWdmSubscriptionResponderImpl*::DumpClientTraits
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:922,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:925,1
    - Dst: mSubscriptionTerminated::mClient::GetPeerNodeId
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:927,1
    - Dst: MockWdmSubscriptionResponderImpl*::mExchangeMgr::MessageLayer::SystemLayer::CancelTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:933,1
    - Dst: MockWdmSubscriptionResponderImpl*::mExchangeMgr::MessageLayer::SystemLayer::CancelTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:937,1
    - Dst: MockWdmSubscriptionResponderImpl*::mExchangeMgr::MessageLayer::SystemLayer::CancelTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:945,1
    - Dst: MockWdmSubscriptionResponderImpl*::mSinkCatalog::Iterate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:949,1
    - Dst: MockWdmSubscriptionResponderImpl::HandleClientRelease
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:951,1
    - Dst: MockWdmSubscriptionResponderImpl::HandlePublisherRelease
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:952,1
    - Dst: init
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:953,1
    - Dst: MockWdmSubscriptionResponderImpl*::onCompleteTest
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:954,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::DefaultEventHandler
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:957,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 99
    argCount: 4
    argNames:
    - aAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - SubscriptionClient::EventID
    - SubscriptionClient::InEventParam
    - SubscriptionClient::OutEventParam
    constantsTouched: []
    func_position:
      end: 960
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 960
    functionName: MockWdmSubscriptionResponderImpl::ClientEventCallback
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<MockWdmSubscriptionResponderImpl *>
    - MockWdmSubscriptionResponderImpl*::AddNewVersion
    - nl::Weave::Profiles::SubscriptionClient::DefaultEventHandler
    - GetSubscriptionId
    - MockWdmSubscriptionResponderImpl::HandlePublisherRelease
    - mSubscriptionTerminated::mClient::GetPeerNodeId
    - MockWdmSubscriptionResponderImpl*::mSinkCatalog::Iterate
    - WeaveLogDetail
    - init
    - MockWdmSubscriptionResponderImpl::HandleClientRelease
    - MockWdmSubscriptionResponderImpl*::DumpClientTraits
    - MockWdmSubscriptionResponderImpl*::mExchangeMgr::MessageLayer::SystemLayer::StartTimer
    - mSubscriptionEstablished::mClient::GetLivenessTimeoutMsec
    - MockWdmSubscriptionResponderImpl*::onCompleteTest
    - MockWdmSubscriptionResponderImpl*::mExchangeMgr::MessageLayer::SystemLayer::CancelTimer
    linkageType: ''
    returnType: void
    signature: "MockWdmSubscriptionResponderImpl::ClientEventCallback (void * const
      aAppState, SubscriptionClient::EventID aEvent,\n        const SubscriptionClient::InEventParam
      & aInParam, SubscriptionClient::OutEventParam & aOutParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndSubscription
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:968,1
    - Dst: AbortSubscription
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:972,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 975
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 975
    functionName: MockWdmSubscriptionResponderImpl::HandlePublisherComplete
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 0
    functionsReached:
    - AbortSubscription
    - EndSubscription
    linkageType: ''
    returnType: void
    signature: MockWdmSubscriptionResponderImpl::HandlePublisherComplete()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<MockWdmSubscriptionResponderImpl *>
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:979,1
    - Dst: MockWdmSubscriptionResponderImpl*::mSubscriptionClient::Free
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:982,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - aAppState
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 985
      start: 977
    functionDepth: 0
    functionLinenumber: 977
    functionLinenumberEnd: 985
    functionName: MockWdmSubscriptionResponderImpl::HandleClientRelease
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<MockWdmSubscriptionResponderImpl *>
    - MockWdmSubscriptionResponderImpl*::mSubscriptionClient::Free
    linkageType: ''
    returnType: void
    signature: MockWdmSubscriptionResponderImpl::HandleClientRelease(void *aAppState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<MockWdmSubscriptionResponderImpl *>
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:989,1
    - Dst: MockWdmSubscriptionResponderImpl*::mSubscriptionClient::EndSubscription
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:994,1
    - Dst: MockWdmSubscriptionResponderImpl*::mSubscriptionClient::AbortSubscription
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:998,1
    - Dst: MockWdmSubscriptionResponderImpl*::mSubscriptionClient::Free
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:999,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - aAppState
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1003
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 1003
    functionName: MockWdmSubscriptionResponderImpl::HandleClientComplete
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<MockWdmSubscriptionResponderImpl *>
    - MockWdmSubscriptionResponderImpl*::mSubscriptionClient::EndSubscription
    - MockWdmSubscriptionResponderImpl*::mSubscriptionClient::Free
    - MockWdmSubscriptionResponderImpl*::mSubscriptionClient::AbortSubscription
    linkageType: ''
    returnType: void
    signature: MockWdmSubscriptionResponderImpl::HandleClientComplete(void *aAppState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1012,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1005
    functionDepth: 0
    functionLinenumber: 1005
    functionLinenumberEnd: 1016
    functionName: MockWdmSubscriptionResponderImpl::HandlePublisherRelease
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 2
    functionsReached:
    - Release
    linkageType: ''
    returnType: void
    signature: MockWdmSubscriptionResponderImpl::HandlePublisherRelease()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1020,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aAbort
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1022
      start: 1018
    functionDepth: 0
    functionLinenumber: 1018
    functionLinenumberEnd: 1022
    functionName: MockWdmSubscriptionResponderImpl::Command_End
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 1
    functionsReached:
    - Close
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: MockWdmSubscriptionResponderImpl::Command_End(const bool aAbort)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<MockWdmSubscriptionResponderImpl *>
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1026,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1031,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1034,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1038,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1041,1
    - Dst: MockWdmSubscriptionResponderImpl*::mCommandSender::DefaultEventHandler
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1044,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - aAppState
    - aEvent
    - aInParam
    - aOutEventParam
    argTypes:
    - void*
    - CommandSender::EventType
    - CommandSender::InEventParam
    - CommandSender::OutEventParam
    constantsTouched: []
    func_position:
      end: 1047
      start: 1024
    functionDepth: 0
    functionLinenumber: 1024
    functionLinenumberEnd: 1047
    functionName: MockWdmSubscriptionResponderImpl::CommandEventHandler
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - static_cast<MockWdmSubscriptionResponderImpl *>
    - WeaveLogDetail
    - MockWdmSubscriptionResponderImpl*::mCommandSender::DefaultEventHandler
    linkageType: ''
    returnType: void
    signature: MockWdmSubscriptionResponderImpl::CommandEventHandler(void * const
      aAppState, CommandSender::EventType aEvent, const CommandSender::InEventParam
      &aInParam, CommandSender::OutEventParam &aOutEventParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1056,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1058,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1060,1
    - Dst: MockWdmSubscriptionResponderImpl::Init
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1062,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1063,1
    - Dst: CommandSender::SendParams
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1067,1
    - Dst: CommandSender::SendParams::PopulateTraitPath
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1084,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1085,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1087,1
    - Dst: nl::SetFlag
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1088,1
    - Dst: nl::Weave::System::Layer::GetClock_RealTime
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1090,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1091,1
    - Dst: nl::SetFlag
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1095,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1102,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1103,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1105,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1107,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1108,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1110,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1110,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1111,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1112,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1112,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1113,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1115,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1116,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1118,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1119,1
    - Dst: SendCommand
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1122,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1125,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1129,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1133,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1139,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1049
    functionDepth: 3
    functionLinenumber: 1049
    functionLinenumberEnd: 1141
    functionName: MockWdmSubscriptionResponderImpl::Command_Send
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 0
    functionsReached:
    - CommandSender::SendParams::PopulateTraitPath
    - TLVWriter::PutBoolean
    - nl::Weave::System::Layer::GetClock_RealTime
    - printf
    - SendCommand
    - WeaveLogFunctError
    - TLVWriter::Put
    - nl::Weave::System::PacketBuffer::New
    - MockWdmSubscriptionResponderImpl::Init
    - nl::Weave::System::PacketBuffer::Free
    - CommandSender::SendParams
    - VerifyOrExit
    - WeaveLogDetail
    - Close
    - nl::Weave::TLV::ContextTag
    - nl::SetFlag
    - TLVWriter::Finalize
    - ContextTag
    - GetVersion
    - SuccessOrExit
    - TLVWriter::Init
    - TLVWriter::EndContainer
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: void
    signature: MockWdmSubscriptionResponderImpl::Command_Send(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<MockWdmSubscriptionResponderImpl *>
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1146,1
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1148,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1152,1
    - Dst: MockWdmSubscriptionResponderImpl*::mLocaleSettingsDataSource::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1158,1
    - Dst: MockWdmSubscriptionResponderImpl*::mApplicationKeysTraitDataSource::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1159,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1160,1
    - Dst: MockWdmSubscriptionResponderImpl*::mTestADataSource0::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1165,1
    - Dst: MockWdmSubscriptionResponderImpl*::mTestADataSource1::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1166,1
    - Dst: MockWdmSubscriptionResponderImpl*::mTestBDataSource::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1167,1
    - Dst: MockWdmSubscriptionResponderImpl*::mLocaleSettingsDataSource::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1168,1
    - Dst: MockWdmSubscriptionResponderImpl*::Command_Send
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1169,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1170,1
    - Dst: MockWdmSubscriptionResponderImpl*::Command_Send
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1175,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1176,1
    - Dst: MockWdmSubscriptionResponderImpl*::mTestADataSource0::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1180,1
    - Dst: MockWdmSubscriptionResponderImpl*::mTestADataSource1::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1181,1
    - Dst: MockWdmSubscriptionResponderImpl*::mLocaleSettingsDataSource::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1182,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1183,1
    - Dst: MockWdmSubscriptionResponderImpl*::mTestADataSource0::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1187,1
    - Dst: MockWdmSubscriptionResponderImpl*::mTestADataSource1::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1188,1
    - Dst: MockWdmSubscriptionResponderImpl*::mLocaleSettingsDataSource::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1189,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1190,1
    - Dst: MockWdmSubscriptionResponderImpl*::DumpPublisherTraits
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1193,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1198,1
    - Dst: nl::Weave::System::Layer*::StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1200,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1205,1
    - Dst: nl::Weave::System::Layer*::StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1215,1
    - Dst: nl::Weave::System::Layer*::StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1219,1
    - Dst: nl::Weave::System::Layer*::StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1230,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 69
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aErr
    argTypes:
    - nl::Weave::System::Layer*
    - void*
    - nl::Weave::System::Error
    constantsTouched: []
    func_position:
      end: 1233
      start: 1143
    functionDepth: 0
    functionLinenumber: 1143
    functionLinenumberEnd: 1233
    functionName: MockWdmSubscriptionResponderImpl::HandleDataFlipTimeout
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 0
    functionsReached:
    - MockWdmSubscriptionResponderImpl*::mTestADataSource1::Mutate
    - reinterpret_cast<MockWdmSubscriptionResponderImpl *>
    - MockWdmSubscriptionResponderImpl*::mLocaleSettingsDataSource::Mutate
    - IgnoreUnusedVariable
    - MockWdmSubscriptionResponderImpl*::DumpPublisherTraits
    - MockWdmSubscriptionResponderImpl*::mTestBDataSource::Mutate
    - MockWdmSubscriptionResponderImpl*::mApplicationKeysTraitDataSource::Mutate
    - nl::Weave::System::Layer*::StartTimer
    - MockWdmSubscriptionResponderImpl*::mTestADataSource0::Mutate
    - SubscriptionEngine::GetInstance
    - MockWdmSubscriptionResponderImpl*::Command_Send
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: "MockWdmSubscriptionResponderImpl::HandleDataFlipTimeout(nl::Weave::System::Layer*
      aSystemLayer, void *aAppState,\n    nl::Weave::System::Error aErr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<MockWdmSubscriptionResponderImpl *>
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1237,1
    - Dst: IsEstablishedIdle
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1240,1
    - Dst: MockWdmSubscriptionResponderImpl*::mSubscriptionClient::IsEstablishedIdle
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1240,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1242,1
    - Dst: MockWdmSubscriptionResponderImpl::HandlePublisherComplete
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1244,1
    - Dst: MockWdmSubscriptionResponderImpl::HandlePublisherRelease
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1247,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1248,1
    - Dst: MockWdmSubscriptionResponderImpl*::onCompleteTest
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1249,1
    - Dst: nl::Weave::System::Layer*::StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1257,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1262,1
    - Dst: AbortSubscription
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1263,1
    - Dst: MockWdmSubscriptionResponderImpl::HandleClientRelease
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1264,1
    - Dst: MockWdmSubscriptionResponderImpl::HandlePublisherRelease
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1265,1
    - Dst: MockWdmSubscriptionResponderImpl*::onCompleteTest
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1266,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1272,1
    - Dst: MockWdmSubscriptionResponderImpl::HandleClientRelease
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1273,1
    - Dst: MockWdmSubscriptionResponderImpl::HandlePublisherRelease
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1274,1
    - Dst: MockWdmSubscriptionResponderImpl*::onCompleteTest
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1275,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aErr
    argTypes:
    - nl::Weave::System::Layer*
    - void*
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 1277
      start: 1235
    functionDepth: 1
    functionLinenumber: 1235
    functionLinenumberEnd: 1277
    functionName: MockWdmSubscriptionResponderImpl::MonitorPublisherCurrentState
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<MockWdmSubscriptionResponderImpl *>
    - MockWdmSubscriptionResponderImpl::HandlePublisherComplete
    - AbortSubscription
    - MockWdmSubscriptionResponderImpl*::mSubscriptionClient::IsEstablishedIdle
    - MockWdmSubscriptionResponderImpl::HandlePublisherRelease
    - nl::Weave::System::Layer*::StartTimer
    - WeaveLogDetail
    - IsEstablishedIdle
    - MockWdmSubscriptionResponderImpl::HandleClientRelease
    - MockWdmSubscriptionResponderImpl*::onCompleteTest
    linkageType: ''
    returnType: void
    signature: MockWdmSubscriptionResponderImpl::MonitorPublisherCurrentState (nl::Weave::System::Layer*
      aSystemLayer, void *aAppState, INET_ERROR aErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<MockWdmSubscriptionResponderImpl *>
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1281,1
    - Dst: MockWdmSubscriptionResponderImpl*::mSubscriptionClient::IsEstablishedIdle
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1284,1
    - Dst: IsEstablishedIdle
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1284,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1286,1
    - Dst: MockWdmSubscriptionResponderImpl::HandleClientComplete
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1288,1
    - Dst: nl::Weave::System::Layer*::StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1295,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1300,1
    - Dst: AbortSubscription
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1301,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1307,1
    - Dst: AbortSubscription
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1308,1
    - Dst: MockWdmSubscriptionResponderImpl::HandleClientRelease
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1309,1
    - Dst: MockWdmSubscriptionResponderImpl::HandlePublisherRelease
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1310,1
    - Dst: MockWdmSubscriptionResponderImpl*::onCompleteTest
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp:1311,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aErr
    argTypes:
    - nl::Weave::System::Layer*
    - void*
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 1313
      start: 1279
    functionDepth: 1
    functionLinenumber: 1279
    functionLinenumberEnd: 1313
    functionName: MockWdmSubscriptionResponderImpl::MonitorClientCurrentState
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
    functionUses: 0
    functionsReached:
    - MockWdmSubscriptionResponderImpl::HandleClientComplete
    - reinterpret_cast<MockWdmSubscriptionResponderImpl *>
    - AbortSubscription
    - MockWdmSubscriptionResponderImpl*::mSubscriptionClient::IsEstablishedIdle
    - MockWdmSubscriptionResponderImpl::HandlePublisherRelease
    - nl::Weave::System::Layer*::StartTimer
    - WeaveLogDetail
    - IsEstablishedIdle
    - MockWdmSubscriptionResponderImpl::HandleClientRelease
    - MockWdmSubscriptionResponderImpl*::onCompleteTest
    linkageType: ''
    returnType: void
    signature: MockWdmSubscriptionResponderImpl::MonitorClientCurrentState (nl::Weave::System::Layer*
      aSystemLayer, void *aAppState, INET_ERROR aErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: nl::Weave::Profiles::Platform::CriticalSectionEnter
    functionSourceFile: /src/openweave-core/src/test-apps/MockLoggingManager.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionEnter()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: nl::Weave::Profiles::Platform::CriticalSectionExit
    functionSourceFile: /src/openweave-core/src/test-apps/MockLoggingManager.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionExit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DebugEventGenerator::DebugEventGenerator
      Src: /src/openweave-core/src/test-apps/MockLoggingManager.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: GetTestDebugGenerator
    functionSourceFile: /src/openweave-core/src/test-apps/MockLoggingManager.cpp
    functionUses: 0
    functionsReached:
    - DebugEventGenerator::DebugEventGenerator
    linkageType: ''
    returnType: EventGenerator
    signature: '* GetTestDebugGenerator(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LivenessEventGenerator::LivenessEventGenerator
      Src: /src/openweave-core/src/test-apps/MockLoggingManager.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: GetTestLivenessGenerator
    functionSourceFile: /src/openweave-core/src/test-apps/MockLoggingManager.cpp
    functionUses: 0
    functionsReached:
    - LivenessEventGenerator::LivenessEventGenerator
    linkageType: ''
    returnType: EventGenerator
    signature: '* GetTestLivenessGenerator(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SecurityEventGenerator::SecurityEventGenerator
      Src: /src/openweave-core/src/test-apps/MockLoggingManager.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: GetTestSecurityGenerator
    functionSourceFile: /src/openweave-core/src/test-apps/MockLoggingManager.cpp
    functionUses: 0
    functionsReached:
    - SecurityEventGenerator::SecurityEventGenerator
    linkageType: ''
    returnType: EventGenerator
    signature: '* GetTestSecurityGenerator(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TelemetryEventGenerator::TelemetryEventGenerator
      Src: /src/openweave-core/src/test-apps/MockLoggingManager.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: GetTestTelemetryGenerator
    functionSourceFile: /src/openweave-core/src/test-apps/MockLoggingManager.cpp
    functionUses: 0
    functionsReached:
    - TelemetryEventGenerator::TelemetryEventGenerator
    linkageType: ''
    returnType: EventGenerator
    signature: '* GetTestTelemetryGenerator(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTraitEventGenerator::TestTraitEventGenerator
      Src: /src/openweave-core/src/test-apps/MockLoggingManager.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: GetTestTraitGenerator
    functionSourceFile: /src/openweave-core/src/test-apps/MockLoggingManager.cpp
    functionUses: 0
    functionsReached:
    - TestTraitEventGenerator::TestTraitEventGenerator
    linkageType: ''
    returnType: EventGenerator
    signature: '* GetTestTraitGenerator(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/MockLoggingManager.cpp:136,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/MockLoggingManager.cpp:138,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/MockLoggingManager.cpp:140,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/MockLoggingManager.cpp:142,1
    - Dst: nl::Weave::Profiles::LoggingManagement::CreateLoggingManagement
      Src: /src/openweave-core/src/test-apps/MockLoggingManager.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 147
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 147
    functionName: InitializeEventLogging
    functionSourceFile: /src/openweave-core/src/test-apps/MockLoggingManager.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void *>
    - nl::Weave::Profiles::LoggingManagement::CreateLoggingManagement
    linkageType: ''
    returnType: void
    signature: InitializeEventLogging(WeaveExchangeManager * inMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockEventGeneratorImpl::MockEventGeneratorImpl
      Src: /src/openweave-core/src/test-apps/MockLoggingManager.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: MockEventGenerator::GetInstance
    functionSourceFile: /src/openweave-core/src/test-apps/MockLoggingManager.cpp
    functionUses: 0
    functionsReached:
    - MockEventGeneratorImpl::MockEventGeneratorImpl
    linkageType: ''
    returnType: MockEventGenerator
    signature: '* MockEventGenerator::GetInstance(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: MockEventGeneratorImpl::MockEventGeneratorImpl
    functionSourceFile: /src/openweave-core/src/test-apps/MockLoggingManager.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MockEventGeneratorImpl::MockEventGeneratorImpl(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetNumStates
      Src: /src/openweave-core/src/test-apps/MockLoggingManager.cpp:173,1
    - Dst: MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockLoggingManager.cpp:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - aExchangeMgr
    - aEventGenerator
    - aDelayBetweenEvents
    - aWraparound
    - aBatch
    argTypes:
    - nl::Weave::WeaveExchangeManager*
    - EventGenerator*
    - int
    - bool
    - size_t
    constantsTouched: []
    func_position:
      end: 179
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 179
    functionName: MockEventGeneratorImpl::Init
    functionSourceFile: /src/openweave-core/src/test-apps/MockLoggingManager.cpp
    functionUses: 0
    functionsReached:
    - GetNumStates
    - MessageLayer::SystemLayer::StartTimer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "MockEventGeneratorImpl::Init(nl::Weave::WeaveExchangeManager * aExchangeMgr,
      EventGenerator * aEventGenerator,\n                                         int
      aDelayBetweenEvents, bool aWraparound, size_t aBatch)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<MockEventGeneratorImpl *>
      Src: /src/openweave-core/src/test-apps/MockLoggingManager.cpp:184,1
    - Dst: nl::Weave::System::Layer*::CancelTimer
      Src: /src/openweave-core/src/test-apps/MockLoggingManager.cpp:188,1
    - Dst: MockEventGeneratorImpl*::mEventGenerator::Generate
      Src: /src/openweave-core/src/test-apps/MockLoggingManager.cpp:194,1
    - Dst: nl::Weave::System::Layer*::StartTimer
      Src: /src/openweave-core/src/test-apps/MockLoggingManager.cpp:200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aErr
    argTypes:
    - nl::Weave::System::Layer*
    - void*
    - ::nl::Weave::System::Error
    constantsTouched: []
    func_position:
      end: 203
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 203
    functionName: MockEventGeneratorImpl::HandleNextEvent
    functionSourceFile: /src/openweave-core/src/test-apps/MockLoggingManager.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Layer*::CancelTimer
    - static_cast<MockEventGeneratorImpl *>
    - nl::Weave::System::Layer*::StartTimer
    - MockEventGeneratorImpl*::mEventGenerator::Generate
    linkageType: ''
    returnType: void
    signature: "MockEventGeneratorImpl::HandleNextEvent(nl::Weave::System::Layer *
      aSystemLayer, void * aAppState,\n                                             ::nl::Weave::System::Error
      aErr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockLoggingManager.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 214
    functionName: MockEventGeneratorImpl::SetEventGeneratorStop
    functionSourceFile: /src/openweave-core/src/test-apps/MockLoggingManager.cpp
    functionUses: 0
    functionsReached:
    - MessageLayer::SystemLayer::StartTimer
    linkageType: ''
    returnType: void
    signature: MockEventGeneratorImpl::SetEventGeneratorStop()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 228
    functionName: MockEventGeneratorImpl::IsEventGeneratorStopped
    functionSourceFile: /src/openweave-core/src/test-apps/MockLoggingManager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: MockEventGeneratorImpl::IsEventGeneratorStopped()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:240,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:244,1
    - Dst: ParseIPAddress
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:268,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:270,1
    - Dst: ParseIPAddress
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:277,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:279,1
    - Dst: IsIPv6ULA
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:282,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:284,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:291,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:293,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:300,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 305
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 305
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - IsIPv6ULA
    - ParseInt
    - ParseIPAddress
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:313,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:317,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 325
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 325
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseNodeId
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseHostAndPort
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:336,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:336,1
    - Dst: Write8
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:347,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:348,1
    - Dst: Write8
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:349,1
    - Dst: Write8
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:350,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:351,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 355
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 355
    functionName: GetRootDirectoryEntry
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Write64
    - Write8
    - strlen
    - memcpy
    - nl::Weave::Encoding::LittleEndian::Write16
    - ParseHostAndPort
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetRootDirectoryEntry (uint8_t *buf, uint16_t bufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:368,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:369,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - ec
    - profileId
    - msgType
    - sendFlags
    argTypes:
    - ExchangeContext*
    - uint32_t
    - uint8_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 384
      start: 361
    functionDepth: 3
    functionLinenumber: 361
    functionLinenumberEnd: 384
    functionName: SendTunnelTestMessage
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - ExchangeContext*::SendMessage
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SendTunnelTestMessage(ExchangeContext *ec, uint32_t profileId,\n                                  uint8_t
      msgType,\n                                  uint16_t sendFlags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetInterfaceName
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:394,1
    - Dst: strncpy
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:396,1
    - Dst: snprintf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:398,1
    - Dst: system
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - intf
    - ipAddr
    - isAdd
    argTypes:
    - InterfaceId
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 401
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 401
    functionName: AddDeleteIPv4Address
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - system
    - snprintf
    - GetInterfaceName
    - strncpy
    linkageType: ''
    returnType: int
    signature: AddDeleteIPv4Address(InterfaceId intf, const char *ipAddr, bool isAdd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: popen
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:411,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:414,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:416,1
    - Dst: fgets
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:419,1
    - Dst: sscanf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:428,1
    - Dst: strstr
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:433,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:434,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:435,1
    - Dst: strtok
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:437,1
    - Dst: strncpy
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:438,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:438,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:439,1
    - Dst: pclose
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:450,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ip
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 453
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 453
    functionName: GetIPAddressOfWeaveTCPConnection
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - sscanf
    - exit
    - strstr
    - strcmp
    - fgets
    - strncpy
    - strtok
    - popen
    - strlen
    - pclose
    linkageType: ''
    returnType: bool
    signature: GetIPAddressOfWeaveTCPConnection(char **ip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:463,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:466,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:468,1
    - Dst: fgets
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:472,1
    - Dst: sscanf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:480,1
    - Dst: strstr
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:489,1
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:496,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 499
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 499
    functionName: Is48BitIPv6FabricRoutePresent
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - sscanf
    - exit
    - strstr
    - fgets
    - fclose
    - fopen
    linkageType: ''
    returnType: bool
    signature: Is48BitIPv6FabricRoutePresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:509,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:514,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:520,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:524,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 527
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 527
    functionName: TestWeaveTunnelAgentInit
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - Now
    - Init
    - Shutdown
    linkageType: ''
    returnType: void
    signature: TestWeaveTunnelAgentInit(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:539,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:544,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:550,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:554,1
    - Dst: SetAuthMode
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:558,1
    - Dst: SetDestination
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:562,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:567,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:568,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:576,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:578,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:597,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:602,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:603,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 604
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 604
    functionName: TestWeaveTunnelAgentConfigure
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - ServiceNetwork
    - NL_TEST_ASSERT
    - Shutdown
    - Init
    - SuccessOrExit
    - SetAuthMode
    - SetDestination
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestWeaveTunnelAgentConfigure(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:614,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:619,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:625,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:628,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:630,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:633,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 634
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 634
    functionName: TestWeaveTunnelAgentShutdown
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - NL_TEST_ASSERT
    - Shutdown
    - Init
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: TestWeaveTunnelAgentShutdown(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:644,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:647,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 650
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 650
    functionName: TestStartTunnelWithoutInit
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - Now
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestStartTunnelWithoutInit(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:662,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:667,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:673,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:679,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:681,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:682,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:684,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:686,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:687,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:695,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:697,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:716,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:721,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:722,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:724,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 725
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 725
    functionName: TestBackToBackStartStopStart
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - ServiceNetwork
    - NL_TEST_ASSERT
    - StopServiceTunnel
    - Shutdown
    - Init
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestBackToBackStartStopStart(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:739,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:744,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:750,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:756,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:759,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:760,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:768,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:770,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:789,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:794,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:795,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:797,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 798
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 798
    functionName: TestTunnelOpenCompleteThenStopStart
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - ServiceNetwork
    - NL_TEST_ASSERT
    - StopServiceTunnel
    - Shutdown
    - Init
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestTunnelOpenCompleteThenStopStart(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:810,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:815,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:821,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:827,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:829,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:830,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:838,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:840,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:859,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:864,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:865,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:867,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 868
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 868
    functionName: TestReceiveStatusReportForTunnelOpen
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - ServiceNetwork
    - NL_TEST_ASSERT
    - StopServiceTunnel
    - Shutdown
    - Init
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestReceiveStatusReportForTunnelOpen(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:881,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:886,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:892,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:898,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:900,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:901,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:909,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:911,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:930,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:931,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:933,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 934
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 934
    functionName: TestTunnelOpenThenTunnelClose
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - ServiceNetwork
    - NL_TEST_ASSERT
    - Shutdown
    - Init
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestTunnelOpenThenTunnelClose(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:946,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:951,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:957,1
    - Dst: SetTunnelingDeviceRole
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:961,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:965,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:967,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:968,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:976,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:978,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:997,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1002,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1003,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1005,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1006
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 1006
    functionName: TestStandaloneTunnelSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - ServiceNetwork
    - NL_TEST_ASSERT
    - StopServiceTunnel
    - Shutdown
    - Init
    - SuccessOrExit
    - SetTunnelingDeviceRole
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestStandaloneTunnelSetup(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1021,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1026,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1032,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1038,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1040,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1041,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1043,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1046,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1048,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1049,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1057,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1059,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1079,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1082,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1084,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1091,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1095,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1096,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1098,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 48
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1099
      start: 1012
    functionDepth: 4
    functionLinenumber: 1012
    functionLinenumberEnd: 1099
    functionName: TestTunnelNoStatusReportReconnect
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - NewContext
    - ExchangeContext*::Close
    - ServiceNetwork
    - NL_TEST_ASSERT
    - VerifyOrExit
    - SendTunnelTestMessage
    - StopServiceTunnel
    - Shutdown
    - Init
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestTunnelNoStatusReportReconnect(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1103,1
    - Dst: ResetPrimaryReconnectBackoff
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 1106
      start: 1101
    functionDepth: 0
    functionLinenumber: 1101
    functionLinenumberEnd: 1106
    functionName: ResetReconnectTimeout
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - ResetPrimaryReconnectBackoff
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: ResetReconnectTimeout(System::Layer* aSystemLayer, void* aAppState,
      System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1128,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1133,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1139,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1145,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1147,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1148,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1150,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1153,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1155,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1156,1
    - Dst: MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1162,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1170,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1172,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1192,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1195,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1197,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1204,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1208,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1209,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1211,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 50
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1212
      start: 1117
    functionDepth: 4
    functionLinenumber: 1117
    functionLinenumberEnd: 1212
    functionName: TestTunnelNoStatusReportResetReconnectBackoff
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - MessageLayer::SystemLayer::StartTimer
    - NewContext
    - ExchangeContext*::Close
    - ServiceNetwork
    - NL_TEST_ASSERT
    - VerifyOrExit
    - SendTunnelTestMessage
    - StopServiceTunnel
    - Shutdown
    - Init
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestTunnelNoStatusReportResetReconnectBackoff(nlTestSuite *inSuite,
      void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1227,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1232,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1238,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1244,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1246,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1247,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1249,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1252,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1254,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1255,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1263,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1265,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1285,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1288,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1290,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1297,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1301,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1302,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1304,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 48
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1305
      start: 1218
    functionDepth: 4
    functionLinenumber: 1218
    functionLinenumberEnd: 1305
    functionName: TestTunnelErrorStatusReportReconnect
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - NewContext
    - ExchangeContext*::Close
    - ServiceNetwork
    - NL_TEST_ASSERT
    - VerifyOrExit
    - SendTunnelTestMessage
    - StopServiceTunnel
    - Shutdown
    - Init
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestTunnelErrorStatusReportReconnect(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1320,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1325,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1331,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1337,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1339,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1340,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1342,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1345,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1347,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1348,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1356,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1358,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1378,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1381,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1388,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1392,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1393,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1395,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1396
      start: 1311
    functionDepth: 4
    functionLinenumber: 1311
    functionLinenumberEnd: 1396
    functionName: TestTunnelErrorStatusReportOnTunnelClose
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - NewContext
    - ExchangeContext*::Close
    - ServiceNetwork
    - NL_TEST_ASSERT
    - VerifyOrExit
    - SendTunnelTestMessage
    - Shutdown
    - Init
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestTunnelErrorStatusReportOnTunnelClose(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1410,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1415,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1421,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1427,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1429,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1430,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1432,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1435,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1437,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1438,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1446,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1448,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1467,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1470,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1472,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1479,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1483,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1484,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1486,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 48
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1487
      start: 1401
    functionDepth: 4
    functionLinenumber: 1401
    functionLinenumberEnd: 1487
    functionName: TestTunnelConnectionDownReconnect
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - NewContext
    - ExchangeContext*::Close
    - ServiceNetwork
    - NL_TEST_ASSERT
    - VerifyOrExit
    - SendTunnelTestMessage
    - StopServiceTunnel
    - Shutdown
    - Init
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestTunnelConnectionDownReconnect(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1502,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1506,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1508,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1511,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1516,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1517,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1525,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1527,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1546,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1551,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1552,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1554,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1555
      start: 1493
    functionDepth: 2
    functionLinenumber: 1493
    functionLinenumberEnd: 1555
    functionName: TestCallTunnelDownAfterMaxReconnects
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - ServiceNetwork
    - NL_TEST_ASSERT
    - nl::Inet::IPAddress::FromString
    - StopServiceTunnel
    - Shutdown
    - Init
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestCallTunnelDownAfterMaxReconnects(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1570,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1575,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1581,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1588,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1590,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1591,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1593,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1596,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1598,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1599,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1607,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1609,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1629,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1632,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1634,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1641,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1645,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1646,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1648,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 49
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1649
      start: 1561
    functionDepth: 4
    functionLinenumber: 1561
    functionLinenumberEnd: 1649
    functionName: TestReceiveReconnectFromService
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - NewContext
    - ExchangeContext*::Close
    - ServiceNetwork
    - NL_TEST_ASSERT
    - VerifyOrExit
    - SendTunnelTestMessage
    - StopServiceTunnel
    - Shutdown
    - Init
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestReceiveReconnectFromService(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1662,1
    - Dst: Is48BitIPv6FabricRoutePresent
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1665,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1667,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1672,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1678,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1684,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1686,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1687,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1695,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1697,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1716,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1721,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1722,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1724,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1725
      start: 1654
    functionDepth: 1
    functionLinenumber: 1654
    functionLinenumberEnd: 1725
    functionName: TestWARMRouteAddWhenTunnelEstablished
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - NL_TEST_ASSERT
    - ServiceNetwork
    - Is48BitIPv6FabricRoutePresent
    - StopServiceTunnel
    - Shutdown
    - Init
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestWARMRouteAddWhenTunnelEstablished(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1738,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1743,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1749,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1755,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1757,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1758,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1766,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1768,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1787,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1788,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1790,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1791
      start: 1730
    functionDepth: 0
    functionLinenumber: 1730
    functionLinenumberEnd: 1791
    functionName: TestWARMRouteDeleteWhenTunnelStopped
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - ServiceNetwork
    - NL_TEST_ASSERT
    - Shutdown
    - Init
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestWARMRouteDeleteWhenTunnelStopped(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1804,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1809,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1815,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1821,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1823,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1824,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1832,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1834,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1853,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1858,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1859,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1861,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1862
      start: 1796
    functionDepth: 0
    functionLinenumber: 1796
    functionLinenumberEnd: 1862
    functionName: TestWeavePingOverTunnel
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - ServiceNetwork
    - NL_TEST_ASSERT
    - StopServiceTunnel
    - Shutdown
    - Init
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestWeavePingOverTunnel(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1880,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1885,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1891,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1897,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1899,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1900,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1902,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1905,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1907,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1908,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1916,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1918,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1938,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1941,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1943,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1950,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1954,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1955,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1957,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 48
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1958
      start: 1868
    functionDepth: 4
    functionLinenumber: 1868
    functionLinenumberEnd: 1958
    functionName: TestQueueingOfTunneledPackets
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - NewContext
    - ExchangeContext*::Close
    - ServiceNetwork
    - NL_TEST_ASSERT
    - VerifyOrExit
    - SendTunnelTestMessage
    - StopServiceTunnel
    - Shutdown
    - Init
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestQueueingOfTunneledPackets(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1973,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1978,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1984,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1990,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1992,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:1993,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2001,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2003,1
    - Dst: GetWeaveTunnelStatistics
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2023,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2024,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2027,1
    - Dst: GetTimeMsec
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2027,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2029,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2030,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2031,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2032,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2033,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2034,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2035,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2036,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2037,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2039,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2040,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2041,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2042,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2043,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2044,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2045,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2046,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2047,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2048,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2049,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2050,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2051,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2053,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2055,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2056,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2057,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2058,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2060,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2064,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2065,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2067,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 66
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2068
      start: 1964
    functionDepth: 0
    functionLinenumber: 1964
    functionLinenumberEnd: 2068
    functionName: TestTunnelStatistics
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - GetTimeMsec
    - ServiceNetwork
    - NL_TEST_ASSERT
    - GetWeaveTunnelStatistics
    - Shutdown
    - Init
    - WeaveLogDetail
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestTunnelStatistics(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2083,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2088,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2094,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2100,1
    - Dst: ConfigurePrimaryTunnelLivenessInterval
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2102,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2104,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2105,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2113,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2115,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2134,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2139,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2140,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2143
      start: 2075
    functionDepth: 0
    functionLinenumber: 2075
    functionLinenumberEnd: 2143
    functionName: TestTunnelLivenessSendAndRecvResponse
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - ConfigurePrimaryTunnelLivenessInterval
    - ServiceNetwork
    - NL_TEST_ASSERT
    - StopServiceTunnel
    - Shutdown
    - Init
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestTunnelLivenessSendAndRecvResponse(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2158,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2163,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2169,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2175,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2177,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2178,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2180,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2183,1
    - Dst: ConfigurePrimaryTunnelLivenessInterval
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2185,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2187,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2188,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2196,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2198,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2217,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2220,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2222,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2229,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2233,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2234,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2236,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 50
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2237
      start: 2148
    functionDepth: 4
    functionLinenumber: 2148
    functionLinenumberEnd: 2237
    functionName: TestTunnelLivenessDisconnectOnNoResponse
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - NewContext
    - ExchangeContext*::Close
    - ConfigurePrimaryTunnelLivenessInterval
    - ServiceNetwork
    - NL_TEST_ASSERT
    - VerifyOrExit
    - SendTunnelTestMessage
    - StopServiceTunnel
    - Shutdown
    - Init
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestTunnelLivenessDisconnectOnNoResponse(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2250,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2255,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2261,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2265,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2269,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2270,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2272,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2275,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2277,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2278,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2286,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2288,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2307,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2310,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2312,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2319,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2323,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2324,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2326,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 49
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2327
      start: 2240
    functionDepth: 4
    functionLinenumber: 2240
    functionLinenumberEnd: 2327
    functionName: TestTunnelRestrictedRoutingOnTunnelOpen
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - NewContext
    - ExchangeContext*::Close
    - ServiceNetwork
    - NL_TEST_ASSERT
    - VerifyOrExit
    - SendTunnelTestMessage
    - StopServiceTunnel
    - Shutdown
    - Init
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestTunnelRestrictedRoutingOnTunnelOpen(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2336,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2341,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2347,1
    - Dst: SetTunnelingDeviceRole
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2351,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2355,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2357,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2358,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2366,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2368,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2387,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2392,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2393,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2395,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2396
      start: 2329
    functionDepth: 0
    functionLinenumber: 2329
    functionLinenumberEnd: 2396
    functionName: TestTunnelRestrictedRoutingOnStandaloneTunnelOpen
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - ServiceNetwork
    - NL_TEST_ASSERT
    - StopServiceTunnel
    - Shutdown
    - Init
    - SuccessOrExit
    - SetTunnelingDeviceRole
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestTunnelRestrictedRoutingOnStandaloneTunnelOpen(nlTestSuite *inSuite,
      void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2410,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2415,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2421,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2425,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2429,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2430,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2432,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2435,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2437,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2438,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2446,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2448,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2467,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2470,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2472,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2479,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2483,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2484,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2486,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 51
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2487
      start: 2398
    functionDepth: 4
    functionLinenumber: 2398
    functionLinenumberEnd: 2487
    functionName: TestTunnelResetReconnectBackoffImmediately
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - NewContext
    - ExchangeContext*::Close
    - ServiceNetwork
    - NL_TEST_ASSERT
    - VerifyOrExit
    - SendTunnelTestMessage
    - StopServiceTunnel
    - Shutdown
    - Init
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestTunnelResetReconnectBackoffImmediately(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2501,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2506,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2512,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2516,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2520,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2521,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2523,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2526,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2528,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2529,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2537,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2539,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2558,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2561,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2563,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2570,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2574,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2575,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2577,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 51
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2578
      start: 2489
    functionDepth: 4
    functionLinenumber: 2489
    functionLinenumberEnd: 2578
    functionName: TestTunnelResetReconnectBackoffRandomized
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - NewContext
    - ExchangeContext*::Close
    - ServiceNetwork
    - NL_TEST_ASSERT
    - VerifyOrExit
    - SendTunnelTestMessage
    - StopServiceTunnel
    - Shutdown
    - Init
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestTunnelResetReconnectBackoffRandomized(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2595,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2600,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2606,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2610,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2619,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2620,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2628,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2630,1
    - Dst: ToString
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2649,1
    - Dst: AddDeleteIPv4Address
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2652,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2654,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2657,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2662,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2663,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2665,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2666
      start: 2585
    functionDepth: 1
    functionLinenumber: 2585
    functionLinenumberEnd: 2666
    functionName: TestTCPUserTimeoutOnAddrRemoval
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - ServiceNetwork
    - NL_TEST_ASSERT
    - ExitNow
    - ToString
    - AddDeleteIPv4Address
    - StopServiceTunnel
    - Shutdown
    - Init
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestTCPUserTimeoutOnAddrRemoval(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2682,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2687,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2693,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2697,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2703,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2704,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2712,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2714,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2733,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2738,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2739,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2741,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2742
      start: 2673
    functionDepth: 0
    functionLinenumber: 2673
    functionLinenumberEnd: 2742
    functionName: TestTunnelTCPIdle
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - Now
    - ServiceNetwork
    - NL_TEST_ASSERT
    - StopServiceTunnel
    - Shutdown
    - Init
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestTunnelTCPIdle(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2764,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2769,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2775,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2782,1
    - Dst: MessageLayer::SetMessageLayerPktCaptureHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2784,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2786,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2787,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2795,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2797,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2817,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2823,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2824,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2826,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2827
      start: 2753
    functionDepth: 0
    functionLinenumber: 2753
    functionLinenumberEnd: 2827
    functionName: TestTunneledPacketCapture
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - MessageLayer::SetMessageLayerPktCaptureHandler
    - Now
    - ServiceNetwork
    - NL_TEST_ASSERT
    - StopServiceTunnel
    - Shutdown
    - Init
    - SuccessOrExit
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: TestTunneledPacketCapture(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2852,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2868,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2870,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 2871
      start: 2830
    functionDepth: 2
    functionLinenumber: 2830
    functionLinenumberEnd: 2871
    functionName: HandleTunnelTestResponse
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - StopServiceTunnel
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: void
    signature: "HandleTunnelTestResponse(ExchangeContext *ec, const IPPacketInfo *pktInfo,\n
      \                             const WeaveMessageInfo *msgInfo, uint32_t profileId,\n
      \                             uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2880,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - tunType
    - reconnectHost
    - reconnectPort
    - appCtxt
    argTypes:
    - TunnelType
    - char*
    - uint16_t
    - void*
    constantsTouched: []
    func_position:
      end: 2887
      start: 2873
    functionDepth: 0
    functionLinenumber: 2873
    functionLinenumberEnd: 2887
    functionName: WeaveTunnelOnReconnectNotifyCB
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - strncmp
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelOnReconnectNotifyCB(TunnelType tunType,\n                                    const
      char *reconnectHost,\n                                    const uint16_t reconnectPort,\n
      \                                   void *appCtxt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2894,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2895,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2903
      start: 2889
    functionDepth: 4
    functionLinenumber: 2889
    functionLinenumberEnd: 2903
    functionName: SendWeavePingMessage
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - SendTunnelTestMessage
    - VerifyOrExit
    - NewContext
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendWeavePingMessage(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2915,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2923,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2932,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2937,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - tunType
    - aIsIdle
    - appCtxt
    argTypes:
    - TunnelType
    - bool
    - void*
    constantsTouched: []
    func_position:
      end: 2941
      start: 2906
    functionDepth: 0
    functionLinenumber: 2906
    functionLinenumberEnd: 2941
    functionName: WeaveTunnelTCPIdleNotifyHandlerCB
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelTCPIdleNotifyHandlerCB(TunnelType tunType,\n                                  bool
      aIsIdle, void *appCtxt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Binding*::NewExchangeContext
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2950,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2951,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2953,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2954,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - binding
    argTypes:
    - nl::Weave::Binding*
    constantsTouched: []
    func_position:
      end: 2962
      start: 2945
    functionDepth: 4
    functionLinenumber: 2945
    functionLinenumberEnd: 2962
    functionName: SendMessageForCapture
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Binding*::NewExchangeContext
    - SendTunnelTestMessage
    - WeaveLogDetail
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendMessageForCapture(nl::Weave::Binding* binding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - msgBuf
    - msgLen
    - msgInfo
    argTypes:
    - uint8_t*
    - uint16_t
    - WeaveMessageInfo*
    constantsTouched: []
    func_position:
      end: 2969
      start: 2964
    functionDepth: 0
    functionLinenumber: 2964
    functionLinenumberEnd: 2969
    functionName: MessageLayerPacketCaptureHandler
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: MessageLayerPacketCaptureHandler(uint8_t *msgBuf, uint16_t msgLen,
      WeaveMessageInfo *msgInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2992,1
    - Dst: SendMessageForCapture
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:2995,1
    - Dst: nl::Weave::Binding::DefaultEventHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3006,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - apAppState
    - aEventType
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - nl::Weave::Binding::EventType
    - nl::Weave::Binding::InEventParam
    - nl::Weave::Binding::OutEventParam
    constantsTouched: []
    func_position:
      end: 3009
      start: 2971
    functionDepth: 5
    functionLinenumber: 2971
    functionLinenumberEnd: 3009
    functionName: BindingEventCallback
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - SendMessageForCapture
    - WeaveLogDetail
    - nl::Weave::Binding::DefaultEventHandler
    linkageType: ''
    returnType: void
    signature: "BindingEventCallback(\n    void* const apAppState,\n    const nl::Weave::Binding::EventType
      aEventType,\n    const nl::Weave::Binding::InEventParam& aInParam,\n    nl::Weave::Binding::OutEventParam&
      aOutParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3019,1
    - Dst: Is48BitIPv6FabricRoutePresent
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3042,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3060,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3062,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3080,1
    - Dst: SendWeavePingMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3093,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3094,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3120,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3125,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3125,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3138,1
    - Dst: SendWeavePingMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3146,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3147,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3169,1
    - Dst: ConfigurePrimaryTunnelTimeout
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3172,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3173,1
    - Dst: GetInterfaceFromAddr
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3176,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3177,1
    - Dst: AddDeleteIPv4Address
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3180,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3182,1
    - Dst: SendWeavePingMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3186,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3187,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3191,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3196,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3197,1
    - Dst: ConfigurePrimaryTunnelTimeout
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3211,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3212,1
    - Dst: SendWeavePingMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3215,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3216,1
    - Dst: Is48BitIPv6FabricRoutePresent
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3258,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3273,1
    - Dst: Is48BitIPv6FabricRoutePresent
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3277,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3290,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3303,1
    - Dst: SetDestination
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3305,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3309,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3310,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3312,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3315,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3326,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3327,1
    - Dst: SendTunnelTestMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3329,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3332,1
    - Dst: SetDestination
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3337,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3353,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3357,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3369,1
    - Dst: ResetPrimaryReconnectBackoff
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3389,1
    - Dst: ResetPrimaryReconnectBackoff
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3393,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3396,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3399,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3411,1
    - Dst: NewBinding
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3412,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3413,1
    - Dst: nl::Weave::Binding*::BeginConfiguration
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3416,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3425,1
    - Dst: Binding::Configuration::CaptureTxMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3426,1
    - Dst: Binding::Configuration::PrepareBinding
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3428,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3429,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3447,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 242
    argCount: 3
    argNames:
    - reason
    - aErr
    - appCtxt
    argTypes:
    - WeaveTunnelConnectionMgr::TunnelConnNotifyReasons
    - WEAVE_ERROR
    - void*
    constantsTouched: []
    func_position:
      end: 3453
      start: 3012
    functionDepth: 5
    functionLinenumber: 3012
    functionLinenumberEnd: 3453
    functionName: WeaveTunnelOnStatusNotifyHandlerCB
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - SendTunnelTestMessage
    - StopServiceTunnel
    - NewContext
    - ExchangeContext*::Close
    - ConfigurePrimaryTunnelTimeout
    - VerifyOrExit
    - WeaveLogDetail
    - ResetPrimaryReconnectBackoff
    - nl::Weave::Binding*::BeginConfiguration
    - StartServiceTunnel
    - Binding::Configuration::CaptureTxMessage
    - Now
    - GetInterfaceFromAddr
    - NewBinding
    - ExitNow
    - Binding::Configuration::PrepareBinding
    - ErrorStr
    - SendWeavePingMessage
    - nl::Inet::IPAddress::FromString
    - Is48BitIPv6FabricRoutePresent
    - AddDeleteIPv4Address
    - SuccessOrExit
    - SetDestination
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelOnStatusNotifyHandlerCB(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons
      reason,\n                                   WEAVE_ERROR aErr, void *appCtxt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3511,1
    - Dst: UseStdoutLineBuffering
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3513,1
    - Dst: SetSIGUSR1Handler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3514,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3518,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3522,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3523,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3526,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3527,1
    - Dst: ResolveWeaveNetworkOptions
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3528,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3530,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3533,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3534,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3535,1
    - Dst: SelectNodeAddress
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3539,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3542,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3543,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3544,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3545,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3549,1
    - Dst: init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3553,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3555,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3563,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3565,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3566,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3567,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp:3569,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 3571
      start: 3500
    functionDepth: 2
    functionLinenumber: 3500
    functionLinenumberEnd: 3571
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
    functionUses: 0
    functionsReached:
    - ShutdownSystemLayer
    - nl_test_set_output_style
    - nlTestRunner
    - InitWeaveStack
    - SelectNodeAddress
    - nlTestRunnerStats
    - exit
    - ParseArgsFromEnvVar
    - WeaveLogDetail
    - ResolveWeaveNetworkOptions
    - ShutdownWeaveStack
    - ParseArgs
    - InitNetwork
    - PrintBriefUsage
    - InitSystemLayer
    - UseStdoutLineBuffering
    - SetSIGUSR1Handler
    - nl::Inet::IPAddress::FromString
    - ShutdownNetwork
    - init
    - FAIL_ERROR
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::WeaveProvisioningBundle::Decode
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:97,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:97,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:97,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:98,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:100,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:101,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:102,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:102,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:103,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:104,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:104,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:105,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:105,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:106,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:106,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:106,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 109
    functionName: WeaveProvBundle_DecodeTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - strlen
    - nl::Weave::Profiles::Security::WeaveProvisioningBundle::Decode
    - printf
    - VerifyOrFail
    linkageType: ''
    returnType: void
    signature: WeaveProvBundle_DecodeTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Security::WeaveProvisioningBundle::Decode
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:118,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:118,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:118,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:119,1
    - Dst: WeaveProvisioningBundle::Verify
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:121,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:122,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 125
    functionName: WeaveProvBundle_VerifyTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - nl::Weave::Profiles::Security::WeaveProvisioningBundle::Decode
    - printf
    - VerifyOrFail
    - WeaveProvisioningBundle::Verify
    linkageType: ''
    returnType: void
    signature: WeaveProvBundle_VerifyTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::Security::InitSecureRandomDataSource
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:131,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:132,1
    - Dst: WeaveProvBundle_DecodeTest
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:134,1
    - Dst: WeaveProvBundle_VerifyTest
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:135,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 4
    functionLinenumber: 127
    functionLinenumberEnd: 138
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Platform::Security::InitSecureRandomDataSource
    - WeaveProvBundle_DecodeTest
    - WeaveProvBundle_VerifyTest
    - printf
    - FAIL_ERROR
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: MockTimeSyncServer::MockTimeSyncServer
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MockTimeSyncServer::MockTimeSyncServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitServer
      Src: /src/openweave-core/src/test-apps/MockTimeSyncServer.cpp:37,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTimeSyncServer.cpp:38,1
    - Dst: MulticastTimeChangeNotification
      Src: /src/openweave-core/src/test-apps/MockTimeSyncServer.cpp:44,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockTimeSyncServer.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 50
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 50
    functionName: MockTimeSyncServer::Init
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncServer.cpp
    functionUses: 0
    functionsReached:
    - InitServer
    - WeaveLogFunctError
    - MulticastTimeChangeNotification
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockTimeSyncServer::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeSyncNode::Shutdown
      Src: /src/openweave-core/src/test-apps/MockTimeSyncServer.cpp:56,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockTimeSyncServer.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: MockTimeSyncServer::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncServer.cpp
    functionUses: 0
    functionsReached:
    - TimeSyncNode::Shutdown
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockTimeSyncServer::Shutdown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: nl::Weave::Profiles::SubscriptionEngine::GetInstance
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: SubscriptionEngine
    signature: '* SubscriptionEngine::GetInstance()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: nl::Weave::Profiles::Platform::CriticalSectionEnter
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionEnter()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: nl::Weave::Profiles::Platform::CriticalSectionExit
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionExit()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: ~WdmUpdateServerTest()
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~WdmUpdateServerTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResourceIdentifier
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:169,1
    - Dst: ResourceIdentifier
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:171,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:174,1
    - Dst: ArraySize
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:174,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:176,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:177,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:179,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:180,1
    - Dst: SetUpdateEncoder
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 183
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 183
    functionName: nl::Weave::Profiles::WdmUpdateServerTest::WdmUpdateServerTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - ArraySize
    - Add
    - SetUpdateEncoder
    - Init
    - ResourceIdentifier
    linkageType: ''
    returnType: void
    signature: WdmUpdateServerTest::WdmUpdateServerTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:187,1
    - Dst: tai_map::clear
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: nl::Weave::Profiles::WdmUpdateServerTest::SetupTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - tai_map::clear
    - Clear
    linkageType: ''
    returnType: void
    signature: WdmUpdateServerTest::SetupTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 204
    functionName: nl::Weave::Profiles::WdmUpdateServerTest::TearDownTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: void
    signature: WdmUpdateServerTest::TearDownTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:210,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:211,1
    - Dst: SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:214,1
    - Dst: AvailableDataLength
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 224
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 224
    functionName: nl::Weave::Profiles::WdmUpdateServerTest::InitEncoderContext
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - SetDataLength
    - AvailableDataLength
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: WdmUpdateServerTest::InitEncoderContext(nlTestSuite * inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:228,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:230,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: nl::Weave::Profiles::WdmUpdateServerTest::TestInitCleanup
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - GetNumItems
    - NL_TEST_ASSERT
    - PRINT_TEST_NAME
    linkageType: ''
    returnType: void
    signature: WdmUpdateServerTest::TestInitCleanup(nlTestSuite * inSuite, void *
      inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:237,1
    - Dst: vprintf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:239,1
    - Dst: va_end
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - aFormat
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 242
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: nl::Weave::Profiles::WdmUpdateServerTest::TLVPrettyPrinter
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - vprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: WdmUpdateServerTest::TLVPrettyPrinter(const char * aFormat, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:248,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:249,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:250,1
    - Dst: nl::Weave::TLV::Debug::Dump
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:251,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - apMsgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 260
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 260
    functionName: nl::Weave::Profiles::WdmUpdateServerTest::DebugPrettyPrint
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - nl::Weave::TLV::Debug::Dump
    - SuccessOrExit
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WdmUpdateServerTest::DebugPrettyPrint(PacketBuffer * apMsgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:275,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:276,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:278,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:279,1
    - Dst: nl::Weave::Profiles::WdmUpdateServerTest::DebugPrettyPrint
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:281,1
    - Dst: Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:283,1
    - Dst: Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:285,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:286,1
    - Dst: UpdateRequest::Parser::Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:288,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:289,1
    - Dst: UpdateRequest::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:292,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:293,1
    - Dst: UpdateRequest::Parser::GetDataList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:298,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:303,1
    - Dst: DataList::Parser::GetReader
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:306,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::AllocateRightSizedBuffer
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:309,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:311,1
    - Dst: WEAVE_SYSTEM_ALIGN_SIZE
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:314,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:314,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:315,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::InitializeStatusDataHandleList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:316,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:317,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::ProcessUpdateRequestDataList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:319,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:321,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 3
    argNames:
    - inSuite
    - aPayload
    - aItemToStartFrom
    argTypes:
    - nlTestSuite*
    - PacketBuffer*
    - size_t
    constantsTouched: []
    func_position:
      end: 330
      start: 262
    functionDepth: 4
    functionLinenumber: 262
    functionLinenumberEnd: 330
    functionName: nl::Weave::Profiles::WdmUpdateServerTest::VerifyUpdateRequest
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - UpdateRequest::Parser::CheckSchemaValidity
    - nl::Weave::Profiles::SubscriptionEngine::ProcessUpdateRequestDataList
    - nl::Weave::Profiles::WdmUpdateServerTest::DebugPrettyPrint
    - nl::Weave::Profiles::SubscriptionEngine::AllocateRightSizedBuffer
    - Weave::TLV::TLVReader::Init
    - nl::Weave::Profiles::SubscriptionEngine::InitializeStatusDataHandleList
    - SubscriptionEngine::GetInstance
    - WEAVE_SYSTEM_ALIGN_SIZE
    - PacketBuffer*::Start
    - DataList::Parser::GetReader
    - SuccessOrExit
    - UpdateRequest::Parser::GetDataList
    - UpdateRequest::Parser::Init
    - Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WdmUpdateServerTest::VerifyUpdateRequest(nlTestSuite * inSuite, PacketBuffer
      * aPayload, size_t aItemToStartFrom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::WdmUpdateServerTest::InitEncoderContext
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:336,1
    - Dst: EncodeRequest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:338,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:339,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:340,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:340,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:341,1
    - Dst: nl::Weave::Profiles::WdmUpdateServerTest::VerifyUpdateRequest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:343,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 345
      start: 332
    functionDepth: 5
    functionLinenumber: 332
    functionLinenumberEnd: 345
    functionName: nl::Weave::Profiles::WdmUpdateServerTest::UpdateServerBasicTestBody
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::WdmUpdateServerTest::InitEncoderContext
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::WdmUpdateServerTest::VerifyUpdateRequest
    - GetPathStoreSize
    - EncodeRequest
    linkageType: ''
    returnType: void
    signature: WdmUpdateServerTest::UpdateServerBasicTestBody(nlTestSuite * inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:351,1
    - Dst: SetUpdateRequiredVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:352,1
    - Dst: SetConditionalUpdate
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:353,1
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:355,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:357,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:359,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:360,1
    - Dst: nl::Weave::Profiles::WdmUpdateServerTest::UpdateServerBasicTestBody
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:362,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:364,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:364,1
    - Dst: ClearUpdateRequiredVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:365,1
    - Dst: SetConditionalUpdate
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:366,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:367,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 368
      start: 347
    functionDepth: 6
    functionLinenumber: 347
    functionLinenumberEnd: 368
    functionName: nl::Weave::Profiles::WdmUpdateServerTest::TestUpdateServerConditionalOneLeaf
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - SetConditionalUpdate
    - SetUpdateRequiredVersion
    - ClearUpdateRequiredVersion
    - NL_TEST_ASSERT
    - SetVersion
    - nl::Weave::Profiles::WdmUpdateServerTest::UpdateServerBasicTestBody
    - GetVersion
    - GetNumItems
    - PRINT_TEST_NAME
    - AddItem
    linkageType: ''
    returnType: void
    signature: WdmUpdateServerTest::TestUpdateServerConditionalOneLeaf(nlTestSuite
      * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:373,1
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:375,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:377,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:379,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:380,1
    - Dst: nl::Weave::Profiles::WdmUpdateServerTest::UpdateServerBasicTestBody
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:382,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:383,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:383,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:385,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 386
      start: 370
    functionDepth: 6
    functionLinenumber: 370
    functionLinenumberEnd: 386
    functionName: nl::Weave::Profiles::WdmUpdateServerTest::TestUpdateServerUnconditionalOneLeaf
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - NL_TEST_ASSERT
    - SetVersion
    - nl::Weave::Profiles::WdmUpdateServerTest::UpdateServerBasicTestBody
    - GetVersion
    - GetNumItems
    - PRINT_TEST_NAME
    - AddItem
    linkageType: ''
    returnType: void
    signature: WdmUpdateServerTest::TestUpdateServerUnconditionalOneLeaf(nlTestSuite
      * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:391,1
    - Dst: SetUpdateRequiredVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:392,1
    - Dst: SetConditionalUpdate
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:393,1
    - Dst: SetVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:395,1
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:397,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:399,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:401,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:402,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:404,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:406,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:407,1
    - Dst: nl::Weave::Profiles::WdmUpdateServerTest::UpdateServerBasicTestBody
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:409,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:411,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:411,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:412,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:412,1
    - Dst: ClearUpdateRequiredVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:414,1
    - Dst: SetConditionalUpdate
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:415,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:416,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 417
      start: 388
    functionDepth: 6
    functionLinenumber: 388
    functionLinenumberEnd: 417
    functionName: nl::Weave::Profiles::WdmUpdateServerTest::TestUpdateServerMixedConditionalOneLeaf
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - SetConditionalUpdate
    - SetUpdateRequiredVersion
    - ClearUpdateRequiredVersion
    - NL_TEST_ASSERT
    - SetVersion
    - nl::Weave::Profiles::WdmUpdateServerTest::UpdateServerBasicTestBody
    - GetVersion
    - GetNumItems
    - PRINT_TEST_NAME
    - AddItem
    linkageType: ''
    returnType: void
    signature: WdmUpdateServerTest::TestUpdateServerMixedConditionalOneLeaf(nlTestSuite
      * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:422,1
    - Dst: SetUpdateRequiredVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:423,1
    - Dst: SetConditionalUpdate
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:424,1
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:426,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:428,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:430,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:431,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:433,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:434,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:435,1
    - Dst: nl::Weave::Profiles::WdmUpdateServerTest::UpdateServerBasicTestBody
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:437,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:439,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:439,1
    - Dst: ClearUpdateRequiredVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:441,1
    - Dst: SetConditionalUpdate
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:442,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:444,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 445
      start: 419
    functionDepth: 6
    functionLinenumber: 419
    functionLinenumberEnd: 445
    functionName: nl::Weave::Profiles::WdmUpdateServerTest::TestUpdateServerConditionalTwoProperties
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - SetConditionalUpdate
    - SetUpdateRequiredVersion
    - ClearUpdateRequiredVersion
    - NL_TEST_ASSERT
    - SetVersion
    - nl::Weave::Profiles::WdmUpdateServerTest::UpdateServerBasicTestBody
    - GetVersion
    - GetNumItems
    - PRINT_TEST_NAME
    - AddItem
    linkageType: ''
    returnType: void
    signature: WdmUpdateServerTest::TestUpdateServerConditionalTwoProperties(nlTestSuite
      * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:450,1
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:452,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:454,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:456,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:457,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:459,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:460,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:461,1
    - Dst: nl::Weave::Profiles::WdmUpdateServerTest::UpdateServerBasicTestBody
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:463,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:465,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:465,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:467,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 468
      start: 447
    functionDepth: 6
    functionLinenumber: 447
    functionLinenumberEnd: 468
    functionName: nl::Weave::Profiles::WdmUpdateServerTest::TestUpdateServerUnconditionalTwoProperties
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - NL_TEST_ASSERT
    - SetVersion
    - nl::Weave::Profiles::WdmUpdateServerTest::UpdateServerBasicTestBody
    - GetVersion
    - GetNumItems
    - PRINT_TEST_NAME
    - AddItem
    linkageType: ''
    returnType: void
    signature: WdmUpdateServerTest::TestUpdateServerUnconditionalTwoProperties(nlTestSuite
      * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:473,1
    - Dst: SetUpdateRequiredVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:474,1
    - Dst: SetConditionalUpdate
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:475,1
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:477,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:479,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:481,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:482,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:484,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:485,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:486,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:488,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:490,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:491,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:493,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:494,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:495,1
    - Dst: nl::Weave::Profiles::WdmUpdateServerTest::UpdateServerBasicTestBody
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:497,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:499,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:499,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:500,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:500,1
    - Dst: ClearUpdateRequiredVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:502,1
    - Dst: SetConditionalUpdate
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:503,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:505,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 506
      start: 470
    functionDepth: 6
    functionLinenumber: 470
    functionLinenumberEnd: 506
    functionName: nl::Weave::Profiles::WdmUpdateServerTest::TestUpdateServerMixedConditionalTwoProperties
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - SetConditionalUpdate
    - SetUpdateRequiredVersion
    - ClearUpdateRequiredVersion
    - NL_TEST_ASSERT
    - SetVersion
    - nl::Weave::Profiles::WdmUpdateServerTest::UpdateServerBasicTestBody
    - GetVersion
    - GetNumItems
    - PRINT_TEST_NAME
    - AddItem
    linkageType: ''
    returnType: void
    signature: WdmUpdateServerTest::TestUpdateServerMixedConditionalTwoProperties(nlTestSuite
      * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestInitCleanup
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 518
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 518
    functionName: WdmUpdateEncoderTest_InitCleanup
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - TestInitCleanup
    linkageType: ''
    returnType: void
    signature: WdmUpdateEncoderTest_InitCleanup(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestUpdateServerConditionalOneLeaf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 523
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 523
    functionName: WdmUpdateServerTest_ConditionalOneLeaf
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - TestUpdateServerConditionalOneLeaf
    linkageType: ''
    returnType: void
    signature: WdmUpdateServerTest_ConditionalOneLeaf(nlTestSuite * inSuite, void
      * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestUpdateServerUnconditionalOneLeaf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 528
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 528
    functionName: WdmUpdateServerTest_UnconditionalOneLeaf
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - TestUpdateServerUnconditionalOneLeaf
    linkageType: ''
    returnType: void
    signature: WdmUpdateServerTest_UnconditionalOneLeaf(nlTestSuite * inSuite, void
      * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestUpdateServerMixedConditionalOneLeaf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 533
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 533
    functionName: WdmUpdateServerTest_MiexedConditionalOneLeaf
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - TestUpdateServerMixedConditionalOneLeaf
    linkageType: ''
    returnType: void
    signature: WdmUpdateServerTest_MiexedConditionalOneLeaf(nlTestSuite * inSuite,
      void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestUpdateServerConditionalTwoProperties
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 538
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 538
    functionName: WdmUpdateServerTest_ConditionalTwoProperties
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - TestUpdateServerConditionalTwoProperties
    linkageType: ''
    returnType: void
    signature: WdmUpdateServerTest_ConditionalTwoProperties(nlTestSuite * inSuite,
      void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestUpdateServerUnconditionalTwoProperties
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 543
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 543
    functionName: WdmUpdateServerTest_UnconditionalTwoProperties
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - TestUpdateServerUnconditionalTwoProperties
    linkageType: ''
    returnType: void
    signature: WdmUpdateServerTest_UnconditionalTwoProperties(nlTestSuite * inSuite,
      void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestUpdateServerMixedConditionalTwoProperties
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 548
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 548
    functionName: WdmUpdateServerTest_MixedConditionalTwoProperties
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - TestUpdateServerMixedConditionalTwoProperties
    linkageType: ''
    returnType: void
    signature: WdmUpdateServerTest_MixedConditionalTwoProperties(nlTestSuite * inSuite,
      void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 571
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 571
    functionName: SuiteSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SuiteSetup(void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 579
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 579
    functionName: SuiteTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SuiteTeardown(void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetupTest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 589
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 589
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - SetupTest
    linkageType: ''
    returnType: int
    signature: TestSetup(void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TearDownTest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 599
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 599
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - TearDownTest
    linkageType: ''
    returnType: int
    signature: TestTeardown(void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:607,1
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:613,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:616,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 619
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 619
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached:
    - tcpip_init
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(int argc, char * argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 626
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 626
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: main(int argc, char * argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: MockTimeSyncCoordinator::MockTimeSyncCoordinator
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncCoordinator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MockTimeSyncCoordinator::MockTimeSyncCoordinator()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitCoordinator
      Src: /src/openweave-core/src/test-apps/MockTimeSyncCoordinator.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - exchangeMgr
    - encryptionType
    - keyId
    argTypes:
    - nl::Weave::WeaveExchangeManager*
    - uint8_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: MockTimeSyncCoordinator::Init
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncCoordinator.cpp
    functionUses: 0
    functionsReached:
    - InitCoordinator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "MockTimeSyncCoordinator::Init(nl::Weave::WeaveExchangeManager *exchangeMgr,
      const uint8_t encryptionType,\n    const uint16_t keyId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockTimeSyncCoordinator::Shutdown
      Src: /src/openweave-core/src/test-apps/MockTimeSyncCoordinator.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: MockTimeSyncCoordinator::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncCoordinator.cpp
    functionUses: 1
    functionsReached:
    - MockTimeSyncCoordinator::Shutdown
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockTimeSyncCoordinator::Shutdown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: MockDropcamLegacyPairingServer::MockDropcamLegacyPairingServer
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCLPServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MockDropcamLegacyPairingServer::MockDropcamLegacyPairingServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockDropcamLegacyPairingServer::DropcamLegacyPairingServer::Init
      Src: /src/openweave-core/src/test-apps/MockDCLPServer.cpp:54,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockDCLPServer.cpp:55,1
    - Dst: SetDelegate
      Src: /src/openweave-core/src/test-apps/MockDCLPServer.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: MockDropcamLegacyPairingServer::Init
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCLPServer.cpp
    functionUses: 0
    functionsReached:
    - SetDelegate
    - MockDropcamLegacyPairingServer::DropcamLegacyPairingServer::Init
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockDropcamLegacyPairingServer::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockDropcamLegacyPairingServer::DropcamLegacyPairingServer::Shutdown
      Src: /src/openweave-core/src/test-apps/MockDCLPServer.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: MockDropcamLegacyPairingServer::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCLPServer.cpp
    functionUses: 0
    functionsReached:
    - MockDropcamLegacyPairingServer::DropcamLegacyPairingServer::Shutdown
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockDropcamLegacyPairingServer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/MockDCLPServer.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - (secret)
    argTypes:
    - uint8_t[]
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: MockDropcamLegacyPairingServer::GetCameraSecret
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCLPServer.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockDropcamLegacyPairingServer::GetCameraSecret(uint8_t (&secret)[CAMERA_SECRET_LEN])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (macAddress)
    argTypes:
    - uint8_t[]
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: MockDropcamLegacyPairingServer::GetCameraMACAddress
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCLPServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockDropcamLegacyPairingServer::GetCameraMACAddress(uint8_t (&macAddress)[EUI48_LEN])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DropcamLegacyPairingDelegate::EnforceAccessControl
      Src: /src/openweave-core/src/test-apps/MockDCLPServer.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ec
    - msgProfileId
    - msgType
    - msgInfo
    - ' result'
    argTypes:
    - nl::Weave::ExchangeContext*
    - uint32_t
    - uint8_t
    - nl::Weave::WeaveMessageInfo*
    - AccessControlResult
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: MockDropcamLegacyPairingServer::EnforceAccessControl
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCLPServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DropcamLegacyPairingDelegate::EnforceAccessControl
    linkageType: ''
    returnType: void
    signature: "MockDropcamLegacyPairingServer::EnforceAccessControl(nl::Weave::ExchangeContext
      *ec, uint32_t msgProfileId, uint8_t msgType,\n            const nl::Weave::WeaveMessageInfo
      *msgInfo, AccessControlResult& result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: Abort
    functionSourceFile: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp
    functionUses: 57
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: Abort()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:49,1
    - Dst: Abort
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - assert
    - msg
    argTypes:
    - bool
    - char*
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: TestAssert
    functionSourceFile: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp
    functionUses: 0
    functionsReached:
    - printf
    - Abort
    linkageType: ''
    returnType: void
    signature: TestAssert(bool assert, const char *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: IsEqual
    functionSourceFile: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsEqual(uint64_t v1, uint64_t v2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: IsEqual
    functionSourceFile: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsEqual(uint32_t v1, uint32_t v2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - uint32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: IsEqual
    functionSourceFile: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsEqual(uint32_t v1, int32_t v2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - int64_t
    - int64_t
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: IsEqual
    functionSourceFile: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsEqual(int64_t v1, int64_t v2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: IsEqual
    functionSourceFile: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsEqual(int32_t v1, int32_t v2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - int32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: IsEqual
    functionSourceFile: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsEqual(int32_t v1, uint32_t v2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: IsEqual
    functionSourceFile: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp
    functionUses: 6
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: IsEqual(const char *s1, const char *s2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - s1
    - s2
    - len
    argTypes:
    - uint8_t*
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: IsEqual
    functionSourceFile: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp
    functionUses: 6
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: IsEqual(const uint8_t *s1, const uint8_t *s2, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceDescriptor::Clear
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:93,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeText
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:94,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:94,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:95,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:96,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:97,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:98,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:99,1
    - Dst: WeaveDeviceDescriptor::Clear
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:101,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeText
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:102,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:102,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:103,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:104,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:105,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:106,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:107,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:108,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:109,1
    - Dst: AssertByteArrayValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:112,1
    - Dst: AssertByteArrayValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:116,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:118,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:119,1
    - Dst: WeaveDeviceDescriptor::Clear
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:121,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeText
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:122,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:122,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:123,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:124,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:125,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:126,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:127,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:128,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:129,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:130,1
    - Dst: WeaveDeviceDescriptor::Clear
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:132,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeText
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:133,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:133,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:134,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:135,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:136,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:137,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:138,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:139,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:140,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 142
    functionName: TestTextDecoding
    functionSourceFile: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeText
    - AssertValue
    - strlen
    - WeaveDeviceDescriptor::Clear
    - AssertByteArrayValue
    linkageType: ''
    returnType: void
    signature: TestTextDecoding(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceDescriptor::Clear
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:151,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:155,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:161,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:165,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:167,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:168,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeText
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:170,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:171,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:175,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:175,1
    - Dst: WeaveDeviceDescriptor::Clear
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:178,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:182,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeText
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:188,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:189,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:193,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 195
    functionName: TestTextEncoding
    functionSourceFile: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp
    functionUses: 0
    functionsReached:
    - TestAssert
    - strcmp
    - memcpy
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeText
    - WeaveDeviceDescriptor::Clear
    - strcpy
    linkageType: ''
    returnType: void
    signature: TestTextEncoding(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceDescriptor::Clear
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:220,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeTLV
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:221,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:222,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:224,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:225,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:226,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:227,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:228,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:229,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:230,1
    - Dst: AssertByteArrayValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:233,1
    - Dst: AssertByteArrayValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:237,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:239,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:240,1
    - Dst: WeaveDeviceDescriptor::Clear
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:242,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeTLV
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:243,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:244,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:246,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:247,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:248,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:249,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:250,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:251,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:252,1
    - Dst: AssertValue
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 254
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 254
    functionName: TestTLVDecoding
    functionSourceFile: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp
    functionUses: 0
    functionsReached:
    - TestAssert
    - AssertValue
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeTLV
    - WeaveDeviceDescriptor::Clear
    - AssertByteArrayValue
    linkageType: ''
    returnType: void
    signature: TestTLVDecoding(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveDeviceDescriptor::Clear
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:263,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:267,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:273,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:277,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:279,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:280,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeTLV
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:282,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:283,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:285,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:286,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:286,1
    - Dst: WeaveDeviceDescriptor::Clear
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:288,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:292,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeTLV
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:298,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:299,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:301,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:302,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 303
    functionName: TestTLVEncoding
    functionSourceFile: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - TestAssert
    - memcpy
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeTLV
    - WeaveDeviceDescriptor::Clear
    - strcpy
    linkageType: ''
    returnType: void
    signature: TestTLVEncoding(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTextDecoding
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:307,1
    - Dst: TestTextEncoding
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:308,1
    - Dst: TestTLVDecoding
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:309,1
    - Dst: TestTLVEncoding
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:310,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 313
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 313
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp
    functionUses: 0
    functionsReached:
    - TestTLVEncoding
    - TestTextEncoding
    - TestTextDecoding
    - printf
    - TestTLVDecoding
    linkageType: ''
    returnType: int
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:66,1
    - Dst: strdup
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:73,1
    - Dst: strdup
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:80,1
    - Dst: strdup
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:87,1
    - Dst: malloc
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 91
    functionName: MockNetworkProvisioningServer::MockNetworkProvisioningServer
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 0
    functionsReached:
    - strdup
    - malloc
    linkageType: ''
    returnType: void
    signature: MockNetworkProvisioningServer::MockNetworkProvisioningServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockNetworkProvisioningServer::NetworkProvisioningServer::Init
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:97,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:98,1
    - Dst: SetDelegate
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:100,1
    - Dst: ArraySize
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 109
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 109
    functionName: MockNetworkProvisioningServer::Init
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 0
    functionsReached:
    - ArraySize
    - SetDelegate
    - SuccessOrExit
    - MockNetworkProvisioningServer::NetworkProvisioningServer::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockNetworkProvisioningServer::NetworkProvisioningServer::Shutdown
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: MockNetworkProvisioningServer::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 0
    functionsReached:
    - MockNetworkProvisioningServer::NetworkProvisioningServer::Shutdown
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: MockNetworkProvisioningServer::Reset
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 0
    functionsReached:
    - Clear
    linkageType: ''
    returnType: void
    signature: MockNetworkProvisioningServer::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockNetworkProvisioningServer::Reset
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:129,1
    - Dst: strdup
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:133,1
    - Dst: strdup
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:137,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:138,1
    - Dst: strdup
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:142,1
    - Dst: malloc
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:143,1
    - Dst: strdup
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 147
    functionName: MockNetworkProvisioningServer::Preconfig
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - strdup
    - malloc
    - MockNetworkProvisioningServer::Reset
    linkageType: ''
    returnType: void
    signature: MockNetworkProvisioningServer::Preconfig()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:153,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:154,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:155,1
    - Dst: MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - networkType
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 163
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 163
    functionName: MockNetworkProvisioningServer::HandleScanNetworks
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 0
    functionsReached:
    - MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
    - printf
    - PeerAddr::ToString
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::HandleScanNetworks(uint8_t networkType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:171,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:172,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:173,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:174,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:181,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:182,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:183,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:184,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:189,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:190,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:191,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:192,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:197,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:198,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:199,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:200,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:205,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:206,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:207,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:208,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:213,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:214,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:215,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:216,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:221,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:222,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:223,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:224,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:232,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:233,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:234,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:235,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:240,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:241,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:242,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:243,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:256,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:257,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:258,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:259,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:264,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:265,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:266,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:267,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:274,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:275,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:276,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:277,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:280,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 82
    argCount: 1
    argNames:
    - ' netConfig'
    argTypes:
    - NetworkInfo
    constantsTouched: []
    func_position:
      end: 284
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 284
    functionName: MockNetworkProvisioningServer::ValidateNetworkConfig
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 0
    functionsReached:
    - printf
    - MockNetworkProvisioningServer::SendStatusReport
    - ExitNow
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::ValidateNetworkConfig(NetworkInfo& netConfig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:290,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:291,1
    - Dst: MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - networkInfoTLV
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 299
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 299
    functionName: MockNetworkProvisioningServer::HandleAddNetwork
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 0
    functionsReached:
    - MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
    - printf
    - PeerAddr::ToString
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::HandleAddNetwork(PacketBuffer* networkInfoTLV)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:305,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:306,1
    - Dst: MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - networkInfoTLV
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 314
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 314
    functionName: MockNetworkProvisioningServer::HandleUpdateNetwork
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 0
    functionsReached:
    - MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
    - printf
    - PeerAddr::ToString
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::HandleUpdateNetwork(PacketBuffer* networkInfoTLV)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:320,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:321,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:322,1
    - Dst: MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - networkId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 330
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 330
    functionName: MockNetworkProvisioningServer::HandleRemoveNetwork
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 0
    functionsReached:
    - MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
    - printf
    - PeerAddr::ToString
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::HandleRemoveNetwork(uint32_t networkId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:336,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:337,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:338,1
    - Dst: MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 346
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 346
    functionName: MockNetworkProvisioningServer::HandleGetNetworks
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 0
    functionsReached:
    - MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
    - printf
    - PeerAddr::ToString
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::HandleGetNetworks(uint8_t flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:352,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:353,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:354,1
    - Dst: MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - networkId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 362
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 362
    functionName: MockNetworkProvisioningServer::HandleEnableNetwork
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 0
    functionsReached:
    - MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
    - printf
    - PeerAddr::ToString
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::HandleEnableNetwork(uint32_t networkId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:368,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:369,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:370,1
    - Dst: MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - networkId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 378
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 378
    functionName: MockNetworkProvisioningServer::HandleDisableNetwork
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 0
    functionsReached:
    - MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
    - printf
    - PeerAddr::ToString
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::HandleDisableNetwork(uint32_t networkId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:384,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:385,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:386,1
    - Dst: MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - networkId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 394
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 394
    functionName: MockNetworkProvisioningServer::HandleTestConnectivity
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 0
    functionsReached:
    - MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
    - printf
    - PeerAddr::ToString
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::HandleTestConnectivity(uint32_t networkId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:400,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:401,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:402,1
    - Dst: MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - rendezvousMode
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 410
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 410
    functionName: MockNetworkProvisioningServer::HandleSetRendezvousMode
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 0
    functionsReached:
    - MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
    - printf
    - PeerAddr::ToString
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::HandleSetRendezvousMode(uint16_t rendezvousMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:416,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:417,1
    - Dst: MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 423
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 423
    functionName: MockNetworkProvisioningServer::HandleGetWirelessRegulatoryConfig
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 0
    functionsReached:
    - MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
    - printf
    - PeerAddr::ToString
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::HandleGetWirelessRegulatoryConfig(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:429,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:430,1
    - Dst: MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - regConfigTLV
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 438
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 438
    functionName: MockNetworkProvisioningServer::HandleSetWirelessRegulatoryConfig
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 0
    functionsReached:
    - MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
    - printf
    - PeerAddr::ToString
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::HandleSetWirelessRegulatoryConfig(PacketBuffer*
      regConfigTLV)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetworkProvisioning::NetworkProvisioningDelegate::EnforceAccessControl
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ec
    - msgProfileId
    - msgType
    - msgInfo
    - ' result'
    argTypes:
    - nl::Weave::ExchangeContext*
    - uint32_t
    - uint8_t
    - nl::Weave::WeaveMessageInfo*
    - AccessControlResult
    constantsTouched: []
    func_position:
      end: 449
      start: 440
    functionDepth: 3
    functionLinenumber: 440
    functionLinenumberEnd: 449
    functionName: MockNetworkProvisioningServer::EnforceAccessControl
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 0
    functionsReached:
    - NetworkProvisioning::NetworkProvisioningDelegate::EnforceAccessControl
    linkageType: ''
    returnType: void
    signature: "MockNetworkProvisioningServer::EnforceAccessControl(nl::Weave::ExchangeContext
      *ec, uint32_t msgProfileId, uint8_t msgType,\n            const nl::Weave::WeaveMessageInfo
      *msgInfo, AccessControlResult& result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 454
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 454
    functionName: MockNetworkProvisioningServer::IsPairedToAccount
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: MockNetworkProvisioningServer::IsPairedToAccount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<MockNetworkProvisioningServer*>
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:458,1
    - Dst: MockNetworkProvisioningServer*::CompleteCurrentOp
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 460
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 460
    functionName: MockNetworkProvisioningServer::HandleOpDelayComplete
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 0
    functionsReached:
    - MockNetworkProvisioningServer*::CompleteCurrentOp
    - reinterpret_cast<MockNetworkProvisioningServer*>
    linkageType: ''
    returnType: void
    signature: MockNetworkProvisioningServer::HandleOpDelayComplete(System::Layer*
      lSystemLayer, void* aAppState, System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:467,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:468,1
    - Dst: MockNetworkProvisioningServer::CompleteCurrentOp
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - opName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 472
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 472
    functionName: MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 11
    functionsReached:
    - printf
    - StartTimer
    - MockNetworkProvisioningServer::CompleteCurrentOp
    linkageType: ''
    returnType: void
    signature: MockNetworkProvisioningServer::CompleteOrDelayCurrentOp(const char
      *opName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockNetworkProvisioningServer::CompleteAddNetwork
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:484,1
    - Dst: MockNetworkProvisioningServer::CompleteDisableNetwork
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:487,1
    - Dst: MockNetworkProvisioningServer::CompleteEnableNetwork
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:490,1
    - Dst: MockNetworkProvisioningServer::CompleteGetNetworks
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:493,1
    - Dst: MockNetworkProvisioningServer::CompleteRemoveNetwork
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:496,1
    - Dst: MockNetworkProvisioningServer::CompleteScanNetworks
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:499,1
    - Dst: MockNetworkProvisioningServer::CompleteSetRendezvousMode
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:502,1
    - Dst: MockNetworkProvisioningServer::CompleteTestConnectivity
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:505,1
    - Dst: MockNetworkProvisioningServer::CompleteUpdateNetwork
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:508,1
    - Dst: MockNetworkProvisioningServer::CompleteGetWirelessRegulatoryConfig
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:511,1
    - Dst: MockNetworkProvisioningServer::CompleteSetWirelessRegulatoryConfig
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:514,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:522,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 523
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 523
    functionName: MockNetworkProvisioningServer::CompleteCurrentOp
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 1
    functionsReached:
    - MockNetworkProvisioningServer::CompleteUpdateNetwork
    - MockNetworkProvisioningServer::CompleteTestConnectivity
    - MockNetworkProvisioningServer::CompleteRemoveNetwork
    - MockNetworkProvisioningServer::CompleteGetWirelessRegulatoryConfig
    - MockNetworkProvisioningServer::CompleteAddNetwork
    - MockNetworkProvisioningServer::CompleteGetNetworks
    - MockNetworkProvisioningServer::CompleteScanNetworks
    - MockNetworkProvisioningServer::SendStatusReport
    - MockNetworkProvisioningServer::CompleteEnableNetwork
    - MockNetworkProvisioningServer::CompleteSetWirelessRegulatoryConfig
    - MockNetworkProvisioningServer::CompleteDisableNetwork
    - MockNetworkProvisioningServer::CompleteSetRendezvousMode
    linkageType: ''
    returnType: void
    signature: MockNetworkProvisioningServer::CompleteCurrentOp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:532,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:536,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:537,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:548,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:558,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:566,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:567,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:569,1
    - Dst: nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::EncodeList
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:571,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:572,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:574,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:575,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:577,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:578,1
    - Dst: SendNetworkScanComplete
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:580,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:582,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:588,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 1
    argNames:
    - networkType
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 590
      start: 525
    functionDepth: 3
    functionLinenumber: 525
    functionLinenumberEnd: 590
    functionName: MockNetworkProvisioningServer::CompleteScanNetworks
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - strcmp
    - TLVWriter::Finalize
    - SendNetworkScanComplete
    - VerifyOrExit
    - ExitNow
    - PeerAddr::ToString
    - printf
    - MockNetworkProvisioningServer::SendStatusReport
    - nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::EncodeList
    - SuccessOrExit
    - TLVWriter::Init
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::CompleteScanNetworks(uint8_t networkType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:599,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:601,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:602,1
    - Dst: NetworkInfo::Decode
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:604,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:605,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:607,1
    - Dst: MockNetworkProvisioningServer::PrintNetworkInfo
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:608,1
    - Dst: MockNetworkProvisioningServer::ValidateNetworkConfig
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:612,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:614,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:615,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:628,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:637,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:638,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:647,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:648,1
    - Dst: NetworkInfo::CopyTo
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:656,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:658,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:659,1
    - Dst: SendAddNetworkComplete
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:661,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:662,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:665,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 1
    argNames:
    - networkInfoTLV
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 667
      start: 592
    functionDepth: 2
    functionLinenumber: 592
    functionLinenumberEnd: 667
    functionName: MockNetworkProvisioningServer::CompleteAddNetwork
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Init
    - memcmp
    - SendAddNetworkComplete
    - nl::Weave::System::PacketBuffer::Free
    - TLVReader::Next
    - strcmp
    - ExitNow
    - MockNetworkProvisioningServer::ValidateNetworkConfig
    - printf
    - MockNetworkProvisioningServer::SendStatusReport
    - NetworkInfo::CopyTo
    - SuccessOrExit
    - NetworkInfo::Decode
    - MockNetworkProvisioningServer::PrintNetworkInfo
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::CompleteAddNetwork(PacketBuffer* networkInfoTLV)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:676,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:678,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:679,1
    - Dst: NetworkInfo::Decode
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:681,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:682,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:684,1
    - Dst: MockNetworkProvisioningServer::PrintNetworkInfo
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:685,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:689,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:690,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:703,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:704,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:705,1
    - Dst: NetworkInfo*::CopyTo
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:708,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:709,1
    - Dst: NetworkInfo::MergeTo
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:711,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:712,1
    - Dst: MockNetworkProvisioningServer::ValidateNetworkConfig
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:714,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:716,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:717,1
    - Dst: CopyTo
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:719,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:720,1
    - Dst: SendSuccessResponse
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:722,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:723,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:726,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 1
    argNames:
    - networkInfoTLV
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 728
      start: 669
    functionDepth: 2
    functionLinenumber: 669
    functionLinenumberEnd: 728
    functionName: MockNetworkProvisioningServer::CompleteUpdateNetwork
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Init
    - nl::Weave::System::PacketBuffer::Free
    - TLVReader::Next
    - NetworkInfo*::CopyTo
    - ExitNow
    - MockNetworkProvisioningServer::ValidateNetworkConfig
    - printf
    - MockNetworkProvisioningServer::SendStatusReport
    - SendSuccessResponse
    - SuccessOrExit
    - NetworkInfo::Decode
    - MockNetworkProvisioningServer::PrintNetworkInfo
    - CopyTo
    - NetworkInfo::MergeTo
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::CompleteUpdateNetwork(PacketBuffer*
      networkInfoTLV)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:745,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:746,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:747,1
    - Dst: NetworkInfo*::Clear
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:750,1
    - Dst: SendSuccessResponse
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:752,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:753,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - networkId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 757
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 757
    functionName: MockNetworkProvisioningServer::CompleteRemoveNetwork
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 1
    functionsReached:
    - NetworkInfo*::Clear
    - ExitNow
    - printf
    - MockNetworkProvisioningServer::SendStatusReport
    - SendSuccessResponse
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::CompleteRemoveNetwork(uint32_t networkId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:766,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:768,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:769,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:771,1
    - Dst: nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::EncodeList
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:773,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:774,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:776,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:777,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:779,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:780,1
    - Dst: SendGetNetworksComplete
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:782,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:784,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:790,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 792
      start: 759
    functionDepth: 3
    functionLinenumber: 759
    functionLinenumberEnd: 792
    functionName: MockNetworkProvisioningServer::CompleteGetNetworks
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - TLVWriter::Finalize
    - VerifyOrExit
    - PeerAddr::ToString
    - SendGetNetworksComplete
    - printf
    - nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::EncodeList
    - SuccessOrExit
    - TLVWriter::Init
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::CompleteGetNetworks(uint8_t flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:809,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:810,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:811,1
    - Dst: SendSuccessResponse
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:814,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:815,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - networkId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 819
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 819
    functionName: MockNetworkProvisioningServer::CompleteEnableNetwork
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 1
    functionsReached:
    - ExitNow
    - printf
    - MockNetworkProvisioningServer::SendStatusReport
    - SendSuccessResponse
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::CompleteEnableNetwork(uint32_t networkId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:830,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:837,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:838,1
    - Dst: SendSuccessResponse
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:841,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:842,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - networkId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 846
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 846
    functionName: MockNetworkProvisioningServer::CompleteDisableNetwork
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 1
    functionsReached:
    - ExitNow
    - printf
    - MockNetworkProvisioningServer::SendStatusReport
    - SendSuccessResponse
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::CompleteDisableNetwork(uint32_t networkId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:863,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:864,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:865,1
    - Dst: SendSuccessResponse
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:868,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:869,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - networkId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 873
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 873
    functionName: MockNetworkProvisioningServer::CompleteTestConnectivity
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 1
    functionsReached:
    - ExitNow
    - printf
    - MockNetworkProvisioningServer::SendStatusReport
    - SendSuccessResponse
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::CompleteTestConnectivity(uint32_t networkId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SendSuccessResponse
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:879,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - rendezvousMode
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 884
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 884
    functionName: MockNetworkProvisioningServer::CompleteSetRendezvousMode
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 1
    functionsReached:
    - SendSuccessResponse
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::CompleteSetRendezvousMode(uint16_t rendezvousMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:892,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:893,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:895,1
    - Dst: Encode
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:897,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:898,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:900,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:901,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:903,1
    - Dst: SendGetWirelessRegulatoryConfigComplete
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:905,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:907,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 912
      start: 886
    functionDepth: 3
    functionLinenumber: 886
    functionLinenumberEnd: 912
    functionName: MockNetworkProvisioningServer::CompleteGetWirelessRegulatoryConfig
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 1
    functionsReached:
    - Encode
    - nl::Weave::System::PacketBuffer::Free
    - TLVWriter::Finalize
    - VerifyOrExit
    - printf
    - SendGetWirelessRegulatoryConfigComplete
    - SuccessOrExit
    - TLVWriter::Init
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::CompleteGetWirelessRegulatoryConfig(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WirelessRegConfig::Init
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:919,1
    - Dst: WirelessRegConfig::DecodeInPlace
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:920,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:923,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:924,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:930,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:931,1
    - Dst: WirelessRegConfig::IsRegDomainPresent
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:934,1
    - Dst: WirelessRegConfig::RegDomain::IsWorldWide
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:937,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:947,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:948,1
    - Dst: WirelessRegConfig::IsOpLocationPresent
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:953,1
    - Dst: MockNetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:960,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:961,1
    - Dst: WirelessRegConfig::IsRegDomainPresent
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:965,1
    - Dst: WirelessRegConfig::IsOpLocationPresent
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:970,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:975,1
    - Dst: MockNetworkProvisioningServer::PrintWirelessRegConfig
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:976,1
    - Dst: SendSuccessResponse
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:978,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:981,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 1
    argNames:
    - regConfigTLV
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 983
      start: 914
    functionDepth: 2
    functionLinenumber: 914
    functionLinenumberEnd: 983
    functionName: MockNetworkProvisioningServer::CompleteSetWirelessRegulatoryConfig
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 1
    functionsReached:
    - WirelessRegConfig::IsRegDomainPresent
    - nl::Weave::System::PacketBuffer::Free
    - WirelessRegConfig::Init
    - WirelessRegConfig::IsOpLocationPresent
    - ExitNow
    - WirelessRegConfig::RegDomain::IsWorldWide
    - MockNetworkProvisioningServer::PrintWirelessRegConfig
    - printf
    - MockNetworkProvisioningServer::SendStatusReport
    - SendSuccessResponse
    - WirelessRegConfig::DecodeInPlace
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::CompleteSetWirelessRegulatoryConfig(PacketBuffer*
      regConfigTLV)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:987,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:989,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:991,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:993,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:995,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:997,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:1002,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:1004,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:1008,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:1011,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:1013,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:1014,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:1018,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:1020,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:1021,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:1024,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 2
    argNames:
    - ' netInfo'
    - prefix
    argTypes:
    - NetworkInfo
    - char*
    constantsTouched: []
    func_position:
      end: 1025
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 1025
    functionName: MockNetworkProvisioningServer::PrintNetworkInfo
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 2
    functionsReached:
    - printf
    - memcpy
    linkageType: ''
    returnType: void
    signature: MockNetworkProvisioningServer::PrintNetworkInfo(NetworkInfo& netInfo,
      const char *prefix)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsRegDomainPresent
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:1029,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:1030,1
    - Dst: IsOpLocationPresent
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:1031,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:1032,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:1035,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:1037,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:1040,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ' regConfig'
    - prefix
    argTypes:
    - WirelessRegConfig
    - char*
    constantsTouched: []
    func_position:
      end: 1042
      start: 1027
    functionDepth: 0
    functionLinenumber: 1027
    functionLinenumberEnd: 1042
    functionName: MockNetworkProvisioningServer::PrintWirelessRegConfig
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 1
    functionsReached:
    - IsRegDomainPresent
    - IsOpLocationPresent
    - printf
    linkageType: ''
    returnType: void
    signature: MockNetworkProvisioningServer::PrintWirelessRegConfig(WirelessRegConfig&
      regConfig, const char *prefix)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:1047,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:1049,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:1051,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:1051,1
    - Dst: MockNetworkProvisioningServer::NetworkProvisioningServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockNPServer.cpp:1052,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - statusProfileId
    - statusCode
    - sysError
    argTypes:
    - uint32_t
    - uint16_t
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1053
      start: 1044
    functionDepth: 2
    functionLinenumber: 1044
    functionLinenumberEnd: 1053
    functionName: MockNetworkProvisioningServer::SendStatusReport
    functionSourceFile: /src/openweave-core/src/test-apps/MockNPServer.cpp
    functionUses: 10
    functionsReached:
    - MockNetworkProvisioningServer::NetworkProvisioningServer::SendStatusReport
    - printf
    - nl::ErrorStr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockNetworkProvisioningServer::SendStatusReport(uint32_t statusProfileId,
      uint16_t statusCode, WEAVE_ERROR sysError)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: Common::IsReceiver
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsReceiver(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::IsReceiver
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: Common::IsSender
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 0
    functionsReached:
    - Common::IsReceiver
    linkageType: ''
    returnType: bool
    signature: IsSender(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - aTestStatus
    argTypes:
    - TestStatus
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: Common::IsTesting
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsTesting(const TestStatus &aTestStatus)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - aTestStatus
    argTypes:
    - TestStatus
    constantsTouched: []
    func_position:
      end: 123
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 123
    functionName: Common::WasSuccessful
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WasSuccessful(const TestStatus &aTestStatus)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - aBuffer
    - aLength
    - aPatternStartOffset
    - aFirstValue
    argTypes:
    - uint8_t*
    - uint16_t
    - uint16_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: Common::FillDataBufferPattern
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: FillDataBufferPattern(uint8_t *aBuffer, uint16_t aLength, uint16_t
      aPatternStartOffset, uint8_t aFirstValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:145,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:145,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:146,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - aBuffer
    - aLength
    - aPatternStartOffset
    - aFirstValue
    argTypes:
    - uint8_t*
    - uint16_t
    - uint16_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 160
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 160
    functionName: Common::CheckDataBufferPattern
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    - printf
    - DumpMemory
    - VerifyOrExit
    linkageType: ''
    returnType: bool
    signature: CheckDataBufferPattern(const uint8_t *aBuffer, uint16_t aLength, uint16_t
      aPatternStartOffset, uint8_t aFirstValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:166,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:168,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:169,1
    - Dst: min
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:171,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:171,1
    - Dst: Common::FillDataBufferPattern
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:173,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:173,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - aDesiredLength
    - aPatternStartOffset
    - aFirstValue
    argTypes:
    - uint16_t
    - uint16_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 179
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 179
    functionName: Common::MakeDataBuffer
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 0
    functionsReached:
    - min
    - PacketBuffer*::SetDataLength
    - VerifyOrExit
    - PacketBuffer*::MaxDataLength
    - Common::FillDataBufferPattern
    - PacketBuffer*::Start
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: PacketBuffer
    signature: '*MakeDataBuffer(uint16_t aDesiredLength, uint16_t aPatternStartOffset,
      uint8_t aFirstValue)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::MakeDataBuffer
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:186,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - aDesiredLength
    - aPatternStartOffset
    argTypes:
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 191
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 191
    functionName: Common::MakeDataBuffer
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 1
    functionsReached:
    - Common::MakeDataBuffer
    - VerifyOrExit
    linkageType: ''
    returnType: PacketBuffer
    signature: '*MakeDataBuffer(uint16_t aDesiredLength, uint16_t aPatternStartOffset)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::MakeDataBuffer
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:202,1
    - Dst: reinterpret_cast<tType *>
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:206,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:206,1
    - Dst: rand
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:211,1
    - Dst: nlByteOrderSwap16HostToBig
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - aDesiredUserLength
    - aHeaderLength
    - aPatternStartOffset
    - aType
    argTypes:
    - uint16_t
    - uint16_t
    - uint16_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 216
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 216
    functionName: Common::MakeICMPDataBuffer
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 0
    functionsReached:
    - nlByteOrderSwap16HostToBig
    - reinterpret_cast<tType *>
    - PacketBuffer*::Start
    - Common::MakeDataBuffer
    - rand
    linkageType: ''
    returnType: PacketBuffer
    signature: '*MakeICMPDataBuffer(uint16_t aDesiredUserLength, uint16_t aHeaderLength,
      uint16_t aPatternStartOffset, uint8_t aType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::MakeICMPDataBuffer
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aDesiredUserLength
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 228
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 228
    functionName: Common::MakeICMPv4DataBuffer
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 0
    functionsReached:
    - Common::MakeICMPDataBuffer
    linkageType: ''
    returnType: PacketBuffer
    signature: '*MakeICMPv4DataBuffer(uint16_t aDesiredUserLength)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::MakeICMPDataBuffer
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aDesiredUserLength
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 240
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 240
    functionName: Common::MakeICMPv6DataBuffer
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 0
    functionsReached:
    - Common::MakeICMPDataBuffer
    linkageType: ''
    returnType: PacketBuffer
    signature: '*MakeICMPv6DataBuffer(uint16_t aDesiredUserLength)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::MakeDataBuffer
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aDesiredLength
    - aFirstValue
    argTypes:
    - uint16_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 250
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 250
    functionName: Common::MakeDataBuffer
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 3
    functionsReached:
    - Common::MakeDataBuffer
    linkageType: ''
    returnType: PacketBuffer
    signature: '*MakeDataBuffer(uint16_t aDesiredLength, uint8_t aFirstValue)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::MakeDataBuffer
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aDesiredLength
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 260
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 260
    functionName: Common::MakeDataBuffer
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 4
    functionsReached:
    - Common::MakeDataBuffer
    linkageType: ''
    returnType: PacketBuffer
    signature: '*MakeDataBuffer(uint16_t aDesiredLength)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::Next
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:270,1
    - Dst: Common::CheckDataBufferPattern
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:278,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:279,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:282,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - aBuffer
    - aStats
    - aStatsByPacket
    - aCheckBuffer
    - aPatternStartOffset
    - aFirstValue
    argTypes:
    - PacketBuffer*
    - TransferStats
    - bool
    - bool
    - uint16_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 294
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 294
    functionName: Common::HandleDataReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - PacketBuffer*::Next
    - Common::CheckDataBufferPattern
    - VerifyOrExit
    linkageType: ''
    returnType: bool
    signature: HandleDataReceived(const PacketBuffer *aBuffer, TransferStats &aStats,
      bool aStatsByPacket, bool aCheckBuffer, uint16_t aPatternStartOffset, uint8_t
      aFirstValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::ConsumeHead
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:301,1
    - Dst: Common::HandleDataReceived
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - aBuffer
    - aHeaderLength
    - aStats
    - aStatsByPacket
    - aCheckBuffer
    argTypes:
    - PacketBuffer*
    - uint16_t
    - TransferStats
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 306
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 306
    functionName: Common::HandleICMPDataReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 0
    functionsReached:
    - Common::HandleDataReceived
    - PacketBuffer*::ConsumeHead
    linkageType: ''
    returnType: bool
    signature: HandleICMPDataReceived(PacketBuffer *aBuffer, uint16_t aHeaderLength,
      TransferStats &aStats, bool aStatsByPacket, bool aCheckBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::HandleICMPDataReceived
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - aBuffer
    - aStats
    - aStatsByPacket
    - aCheckBuffer
    argTypes:
    - PacketBuffer*
    - TransferStats
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 316
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 316
    functionName: Common::HandleICMPv4DataReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 0
    functionsReached:
    - Common::HandleICMPDataReceived
    linkageType: ''
    returnType: bool
    signature: HandleICMPv4DataReceived(PacketBuffer *aBuffer, TransferStats &aStats,
      bool aStatsByPacket, bool aCheckBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::HandleICMPDataReceived
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - aBuffer
    - aStats
    - aStatsByPacket
    - aCheckBuffer
    argTypes:
    - PacketBuffer*
    - TransferStats
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 326
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 326
    functionName: Common::HandleICMPv6DataReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 0
    functionsReached:
    - Common::HandleICMPDataReceived
    linkageType: ''
    returnType: bool
    signature: HandleICMPv6DataReceived(PacketBuffer *aBuffer, TransferStats &aStats,
      bool aStatsByPacket, bool aCheckBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::HandleDataReceived
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - aBuffer
    - aStats
    - aStatsByPacket
    - aCheckBuffer
    - aFirstValue
    argTypes:
    - PacketBuffer*
    - TransferStats
    - bool
    - bool
    - uint8_t
    constantsTouched: []
    func_position:
      end: 336
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 336
    functionName: Common::HandleDataReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 2
    functionsReached:
    - Common::HandleDataReceived
    linkageType: ''
    returnType: bool
    signature: HandleDataReceived(const PacketBuffer *aBuffer, TransferStats &aStats,
      bool aStatsByPacket, bool aCheckBuffer, uint8_t aFirstValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::HandleDataReceived
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - aBuffer
    - aStats
    - aStatsByPacket
    - aCheckBuffer
    argTypes:
    - PacketBuffer*
    - TransferStats
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 348
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 348
    functionName: Common::HandleDataReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 3
    functionsReached:
    - Common::HandleDataReceived
    linkageType: ''
    returnType: bool
    signature: HandleDataReceived(const PacketBuffer *aBuffer, TransferStats &aStats,
      bool aStatsByPacket, bool aCheckBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::HandleDataReceived
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - aBuffer
    - aStats
    - aStatsByPacket
    - aCheckBuffer
    argTypes:
    - PacketBuffer*
    - TransferStats
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 357
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 357
    functionName: Common::HandleUDPDataReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 0
    functionsReached:
    - Common::HandleDataReceived
    linkageType: ''
    returnType: bool
    signature: HandleUDPDataReceived(const PacketBuffer *aBuffer, TransferStats &aStats,
      bool aStatsByPacket, bool aCheckBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::HandleDataReceived
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - aBuffer
    - aStats
    - aStatsByPacket
    - aCheckBuffer
    argTypes:
    - PacketBuffer*
    - TransferStats
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 366
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 366
    functionName: Common::HandleTCPDataReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 0
    functionsReached:
    - Common::HandleDataReceived
    linkageType: ''
    returnType: bool
    signature: HandleTCPDataReceived(const PacketBuffer *aBuffer, TransferStats &aStats,
      bool aStatsByPacket, bool aCheckBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:372,1
    - Dst: DriveSend
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 377
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 377
    functionName: Common::HandleSendTimerComplete
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 0
    functionsReached:
    - DriveSend
    - FAIL_ERROR
    linkageType: ''
    returnType: void
    signature: HandleSendTimerComplete(System::Layer *aSystemLayer, void *aAppState,
      System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPPacketInfo*::SrcAddress::ToString
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:386,1
    - Dst: IPPacketInfo*::DestAddress::ToString
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:387,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:389,1
    - Dst: static_cast<size_t>
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:392,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - aEndPoint
    - aBuffer
    - aPacketInfo
    argTypes:
    - IPEndPointBasis*
    - PacketBuffer*
    - IPPacketInfo*
    constantsTouched: []
    func_position:
      end: 393
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 393
    functionName: Common::HandleRawMessageReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - IPPacketInfo*::DestAddress::ToString
    - printf
    - static_cast<size_t>
    - IPPacketInfo*::SrcAddress::ToString
    linkageType: ''
    returnType: void
    signature: HandleRawMessageReceived(const IPEndPointBasis *aEndPoint, const PacketBuffer
      *aBuffer, const IPPacketInfo *aPacketInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPPacketInfo*::SrcAddress::ToString
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:401,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:405,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:408,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - aEndPoint
    - aError
    - aPacketInfo
    argTypes:
    - IPEndPointBasis*
    - INET_ERROR
    - IPPacketInfo*
    constantsTouched: []
    func_position:
      end: 409
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 409
    functionName: Common::HandleRawReceiveError
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 0
    functionsReached:
    - strcpy
    - IPPacketInfo*::SrcAddress::ToString
    - printf
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleRawReceiveError(const IPEndPointBasis *aEndPoint, const INET_ERROR
      &aError, const IPPacketInfo *aPacketInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPPacketInfo*::SrcAddress::ToString
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:418,1
    - Dst: IPPacketInfo*::DestAddress::ToString
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:419,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:421,1
    - Dst: static_cast<size_t>
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:424,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - aEndPoint
    - aBuffer
    - aPacketInfo
    argTypes:
    - IPEndPointBasis*
    - PacketBuffer*
    - IPPacketInfo*
    constantsTouched: []
    func_position:
      end: 425
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 425
    functionName: Common::HandleUDPMessageReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - IPPacketInfo*::DestAddress::ToString
    - printf
    - static_cast<size_t>
    - IPPacketInfo*::SrcAddress::ToString
    linkageType: ''
    returnType: void
    signature: HandleUDPMessageReceived(const IPEndPointBasis *aEndPoint, const PacketBuffer
      *aBuffer, const IPPacketInfo *aPacketInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPPacketInfo*::SrcAddress::ToString
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:434,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:439,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:443,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - aEndPoint
    - aError
    - aPacketInfo
    argTypes:
    - IPEndPointBasis*
    - INET_ERROR
    - IPPacketInfo*
    constantsTouched: []
    func_position:
      end: 444
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 444
    functionName: Common::HandleUDPReceiveError
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
    functionUses: 0
    functionsReached:
    - strcpy
    - IPPacketInfo*::SrcAddress::ToString
    - printf
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleUDPReceiveError(const IPEndPointBasis *aEndPoint, const INET_ERROR
      &aError, const IPPacketInfo *aPacketInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: IsValidPairingCodeChar
    functionSourceFile: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsValidPairingCodeChar(char ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:76,1
    - Dst: nl::PairingCode::IsValidPairingCodeChar
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - inSuite
    - pairingCode
    argTypes:
    - nlTestSuite*
    - char*
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: CheckPairingCodeChars
    functionSourceFile: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - nl::PairingCode::IsValidPairingCodeChar
    linkageType: ''
    returnType: void
    signature: CheckPairingCodeChars(nlTestSuite *inSuite, const char *pairingCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IntToPairingCode
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:96,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:97,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:100,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:100,1
    - Dst: CheckPairingCodeChars
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:103,1
    - Dst: PairingCodeToInt
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:107,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:108,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 116
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 116
    functionName: Test_IntEncodeDecode
    functionSourceFile: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - IntToPairingCode
    - NL_TEST_ASSERT_EXIT
    - PairingCodeToInt
    - strlen
    - CheckPairingCodeChars
    linkageType: ''
    returnType: void
    signature: Test_IntEncodeDecode(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:123,1
    - Dst: IntToPairingCodeChar
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 131
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 131
    functionName: MutatePairingCodeChar
    functionSourceFile: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - IntToPairingCodeChar
    - rand
    linkageType: ''
    returnType: char
    signature: MutatePairingCodeChar(char ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IntToPairingCode
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:147,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:148,1
    - Dst: VerifyPairingCode
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:151,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:152,1
    - Dst: MutatePairingCodeChar
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:160,1
    - Dst: VerifyPairingCode
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:163,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 172
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 172
    functionName: Test_CheckCharacter
    functionSourceFile: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - IntToPairingCode
    - NL_TEST_ASSERT_EXIT
    - VerifyPairingCode
    - MutatePairingCodeChar
    linkageType: ''
    returnType: void
    signature: Test_CheckCharacter(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NevisPairingCodeToDeviceId
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:180,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:181,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:182,1
    - Dst: NevisDeviceIdToPairingCode
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:184,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:185,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:186,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 190
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 190
    functionName: Test_NevisPairingCode
    functionSourceFile: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT_EXIT
    - NevisPairingCodeToDeviceId
    - NevisDeviceIdToPairingCode
    - strcmp
    linkageType: ''
    returnType: void
    signature: Test_NevisPairingCode(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KryptonitePairingCodeToDeviceId
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:198,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:199,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:200,1
    - Dst: KryptoniteDeviceIdToPairingCode
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:202,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:203,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:204,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 208
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 208
    functionName: Test_KryptonitePairingCode
    functionSourceFile: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT_EXIT
    - KryptoniteDeviceIdToPairingCode
    - KryptonitePairingCodeToDeviceId
    - strcmp
    linkageType: ''
    returnType: void
    signature: Test_KryptonitePairingCode(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:216,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:217,1
    - Dst: NormalizePairingCode
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:218,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:219,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:220,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:220,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:223,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:224,1
    - Dst: NormalizePairingCode
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:225,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:226,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:227,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 231
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 231
    functionName: Test_Normalization
    functionSourceFile: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - NL_TEST_ASSERT_EXIT
    - strlen
    - strcpy
    - NormalizePairingCode
    linkageType: ''
    returnType: void
    signature: Test_Normalization(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GeneratePairingCode
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:240,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:241,1
    - Dst: GeneratePairingCode
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:242,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:243,1
    - Dst: GeneratePairingCode
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:248,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:249,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:251,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:252,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:252,1
    - Dst: VerifyPairingCode
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:254,1
    - Dst: NL_TEST_ASSERT_EXIT
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 260
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 260
    functionName: Test_Generation
    functionSourceFile: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT_EXIT
    - strlen
    - VerifyPairingCode
    - GeneratePairingCode
    linkageType: ''
    returnType: void
    signature: Test_Generation(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestSetup(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 291
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 291
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestTeardown(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: srand
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:304,1
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:307,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:310,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 313
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 313
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - srand
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: TestPersistedCounterContext::TestPersistedCounterContext
    functionSourceFile: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestPersistedCounterContext::TestPersistedCounterContext()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - TestPersistedCounterContext*
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: InitializePersistedStorage
    functionSourceFile: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: InitializePersistedStorage(TestPersistedCounterContext *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestSetup(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: int
    signature: TestTeardown(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestPersistedCounterContext *>
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:79,1
    - Dst: nl::Weave::PersistedCounter::PersistedCounter
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:81,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:86,1
    - Dst: InitializePersistedStorage
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:88,1
    - Dst: nl::Weave::PersistedCounter::Init
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:94,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:95,1
    - Dst: nl::Weave::PersistedCounter::GetValue
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:97,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 99
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 99
    functionName: CheckOOB
    functionSourceFile: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestPersistedCounterContext *>
    - InitializePersistedStorage
    - NL_TEST_ASSERT
    - memset
    - nl::Weave::PersistedCounter::GetValue
    - nl::Weave::PersistedCounter::PersistedCounter
    - nl::Weave::PersistedCounter::Init
    linkageType: ''
    returnType: void
    signature: CheckOOB(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestPersistedCounterContext *>
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:103,1
    - Dst: nl::Weave::PersistedCounter::PersistedCounter
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:105,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:110,1
    - Dst: InitializePersistedStorage
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:112,1
    - Dst: nl::Weave::PersistedCounter::Init
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:117,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:118,1
    - Dst: nl::Weave::PersistedCounter::GetValue
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:120,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:121,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:125,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:126,1
    - Dst: GetValue
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:128,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 130
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 130
    functionName: CheckReboot
    functionSourceFile: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestPersistedCounterContext *>
    - InitializePersistedStorage
    - GetValue
    - NL_TEST_ASSERT
    - memset
    - Init
    - nl::Weave::PersistedCounter::GetValue
    - nl::Weave::PersistedCounter::PersistedCounter
    - nl::Weave::PersistedCounter::Init
    linkageType: ''
    returnType: void
    signature: CheckReboot(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestPersistedCounterContext *>
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:134,1
    - Dst: nl::Weave::PersistedCounter::PersistedCounter
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:136,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:141,1
    - Dst: InitializePersistedStorage
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:143,1
    - Dst: nl::Weave::PersistedCounter::Init
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:148,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:149,1
    - Dst: nl::Weave::PersistedCounter::GetValue
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:151,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:152,1
    - Dst: nl::Weave::PersistedCounter::Advance
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:159,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:160,1
    - Dst: nl::Weave::PersistedCounter::GetValue
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:163,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:164,1
    - Dst: nl::Weave::PersistedCounter::Advance
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:168,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:169,1
    - Dst: nl::Weave::PersistedCounter::GetValue
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:172,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 174
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 174
    functionName: CheckWriteNextCounterStart
    functionSourceFile: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestPersistedCounterContext *>
    - InitializePersistedStorage
    - NL_TEST_ASSERT
    - memset
    - nl::Weave::PersistedCounter::Advance
    - nl::Weave::PersistedCounter::GetValue
    - nl::Weave::PersistedCounter::PersistedCounter
    - nl::Weave::PersistedCounter::Init
    linkageType: ''
    returnType: void
    signature: CheckWriteNextCounterStart(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestPersistedCounterContext::TestPersistedCounterContext
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:205,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:207,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:208,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:210,1
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:221,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:224,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 227
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 227
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp
    functionUses: 0
    functionsReached:
    - ParseArgs
    - exit
    - nlTestRunnerStats
    - ParseArgsFromEnvVar
    - nl_test_set_output_style
    - nlTestRunner
    - TestPersistedCounterContext::TestPersistedCounterContext
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitToolCommon
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:109,1
    - Dst: SetSIGUSR1Handler
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:111,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:115,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:116,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:119,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:120,1
    - Dst: ResolveWeaveNetworkOptions
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:121,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:123,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:126,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:128,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:130,1
    - Dst: PrintNodeConfig
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:134,1
    - Dst: StartConnections
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:138,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:146,1
    - Dst: DriveSending
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:149,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:152,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:153,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:154,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 157
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 157
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp
    functionUses: 0
    functionsReached:
    - InitSystemLayer
    - DriveSending
    - ShutdownWeaveStack
    - ParseArgs
    - exit
    - SetSIGUSR1Handler
    - InitToolCommon
    - ShutdownSystemLayer
    - InitNetwork
    - StartConnections
    - ServiceNetwork
    - ParseArgsFromEnvVar
    - InitWeaveStack
    - PrintBriefUsage
    - ShutdownNetwork
    - ResolveWeaveNetworkOptions
    - PrintNodeConfig
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewConnection
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:163,1
    - Dst: NewConnection
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:164,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:165,1
    - Dst: SelectNodeAddress
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:169,1
    - Dst: SelectNodeAddress
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:170,1
    - Dst: Connect
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:172,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:173,1
    - Dst: Connect
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:175,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:176,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:180,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 182
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 182
    functionName: StartConnections
    functionSourceFile: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp
    functionUses: 1
    functionsReached:
    - exit
    - Connect
    - VerifyOrExit
    - printf
    - SelectNodeAddress
    - SuccessOrExit
    - NewConnection
    linkageType: ''
    returnType: void
    signature: StartConnections()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 203
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 203
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:211,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:217,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:221,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:223,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:227,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:229,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:238,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 244
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 244
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseNodeId
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:250,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:250,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:251,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - con
    - msgInfo
    - msgBuf
    argTypes:
    - WeaveConnection*
    - WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 255
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 255
    functionName: HandleMessageReceived
    functionSourceFile: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - printf
    - WeaveConnection*::Close
    - PacketBuffer*::Start
    linkageType: ''
    returnType: void
    signature: HandleMessageReceived(WeaveConnection *con, WeaveMessageInfo *msgInfo,
      PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - msgLayer
    - con
    argTypes:
    - WeaveMessageLayer*
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: HandleConnectionReceived
    functionSourceFile: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: HandleConnectionReceived(WeaveMessageLayer *msgLayer, WeaveConnection
      *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:269,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:272,1
    - Dst: CreateTunnel
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:277,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:280,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:281,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 284
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 284
    functionName: HandleConnectionComplete
    functionSourceFile: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp
    functionUses: 0
    functionsReached:
    - printf
    - exit
    - CreateTunnel
    linkageType: ''
    returnType: void
    signature: HandleConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:296,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:299,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:300,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:302,1
    - Dst: sprintf
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:303,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:304,1
    - Dst: WeaveMessageInfo::Clear
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:306,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:314,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:317,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp:318,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 286
    functionDepth: 3
    functionLinenumber: 286
    functionLinenumberEnd: 321
    functionName: DriveSending
    functionSourceFile: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp
    functionUses: 12
    functionsReached:
    - SendMessage
    - PacketBuffer*::SetDataLength
    - exit
    - printf
    - WeaveMessageInfo::Clear
    - PacketBuffer*::Start
    - nl::Weave::System::PacketBuffer::New
    - sprintf
    linkageType: ''
    returnType: void
    signature: DriveSending()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: MockPairingServer::MockPairingServer
    functionSourceFile: /src/openweave-core/src/test-apps/MockPairingServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MockPairingServer::MockPairingServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/MockPairingServer.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - nl::Weave::WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 59
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 59
    functionName: MockPairingServer::Init
    functionSourceFile: /src/openweave-core/src/test-apps/MockPairingServer.cpp
    functionUses: 0
    functionsReached:
    - RegisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockPairingServer::Init(nl::Weave::WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/MockPairingServer.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: MockPairingServer::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/MockPairingServer.cpp
    functionUses: 0
    functionsReached:
    - UnregisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockPairingServer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::ExchangeContext*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/MockPairingServer.cpp:74,1
    - Dst: nl::Weave::Profiles::ServiceProvisioning::PairDeviceToAccountMessage::Decode
      Src: /src/openweave-core/src/test-apps/MockPairingServer.cpp:87,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockPairingServer.cpp:88,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockPairingServer.cpp:90,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockPairingServer.cpp:91,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockPairingServer.cpp:92,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockPairingServer.cpp:93,1
    - Dst: fwrite
      Src: /src/openweave-core/src/test-apps/MockPairingServer.cpp:93,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockPairingServer.cpp:93,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockPairingServer.cpp:94,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/MockPairingServer.cpp:95,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockPairingServer.cpp:96,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/MockPairingServer.cpp:97,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockPairingServer.cpp:98,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/MockPairingServer.cpp:99,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/MockPairingServer.cpp:119,1
    - Dst: StatusReporting::StatusReport::pack
      Src: /src/openweave-core/src/test-apps/MockPairingServer.cpp:120,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockPairingServer.cpp:121,1
    - Dst: nl::Weave::ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/MockPairingServer.cpp:123,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockPairingServer.cpp:125,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/MockPairingServer.cpp:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - nl::Weave::ExchangeContext*
    - nl::Inet::IPPacketInfo*
    - nl::Weave::WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 130
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 130
    functionName: MockPairingServer::HandleClientRequest
    functionSourceFile: /src/openweave-core/src/test-apps/MockPairingServer.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - StatusReporting::StatusReport::pack
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::ExchangeContext*::SendMessage
    - fwrite
    - printf
    - nl::Weave::ExchangeContext*::PeerAddr::ToString
    - DumpMemory
    - SuccessOrExit
    - nl::Weave::Profiles::ServiceProvisioning::PairDeviceToAccountMessage::Decode
    linkageType: ''
    returnType: void
    signature: "MockPairingServer::HandleClientRequest(nl::Weave::ExchangeContext
      *ec, const nl::Inet::IPPacketInfo *pktInfo,\n                                            const
      nl::Weave::WeaveMessageInfo *msgInfo, uint32_t profileId,\n                                            uint8_t
      msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::LogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLoggingSchemaExamples.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aEvent
    - aImportance
    argTypes:
    - SampleTrait::Event*
    - ImportanceType
    constantsTouched: []
    func_position:
      end: 186
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 186
    functionName: nl::Weave::Profiles::LogSampleEvent
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLoggingSchemaExamples.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::LogEvent
    linkageType: ''
    returnType: event_id_t
    signature: LogSampleEvent(SampleTrait::Event *aEvent, ImportanceType aImportance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::TLVReaderToDeserializedDataHelper
      Src: /src/openweave-core/src/test-apps/TestEventLoggingSchemaExamples.h:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aReader
    - aEvent
    argTypes:
    - nl::Weave::TLV::TLVReader
    - SampleTrait::Event*
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 4
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: nl::Weave::Profiles::DeserializeSampleEvent
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLoggingSchemaExamples.h
    functionUses: 0
    functionsReached:
    - nl::TLVReaderToDeserializedDataHelper
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeserializeSampleEvent(nl::Weave::TLV::TLVReader &aReader, SampleTrait::Event
      *aEvent, nl::SerializationContext *aContext = NULL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::LogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLoggingSchemaExamples.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aEvent
    - aImportance
    argTypes:
    - OpenCloseTrait::Event*
    - ImportanceType
    constantsTouched: []
    func_position:
      end: 251
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 251
    functionName: nl::Weave::Profiles::LogOpenCloseEvent
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLoggingSchemaExamples.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::LogEvent
    linkageType: ''
    returnType: event_id_t
    signature: LogOpenCloseEvent(OpenCloseTrait::Event *aEvent, ImportanceType aImportance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::LogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLoggingSchemaExamples.h:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aEvent
    argTypes:
    - ByteStringTestTrait::Event*
    constantsTouched: []
    func_position:
      end: 294
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 294
    functionName: nl::Weave::Profiles::LogByteStringTestEvent
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLoggingSchemaExamples.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::LogEvent
    linkageType: ''
    returnType: event_id_t
    signature: LogByteStringTestEvent(ByteStringTestTrait::Event *aEvent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::TLVReaderToDeserializedDataHelper
      Src: /src/openweave-core/src/test-apps/TestEventLoggingSchemaExamples.h:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aReader
    - aEvent
    argTypes:
    - nl::Weave::TLV::TLVReader
    - ByteStringTestTrait::Event*
    constantsTouched: []
    func_position:
      end: 301
      start: 296
    functionDepth: 4
    functionLinenumber: 296
    functionLinenumberEnd: 301
    functionName: nl::Weave::Profiles::DeserializeByteStringTestEvent
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLoggingSchemaExamples.h
    functionUses: 0
    functionsReached:
    - nl::TLVReaderToDeserializedDataHelper
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeserializeByteStringTestEvent(nl::Weave::TLV::TLVReader &aReader,
      ByteStringTestTrait::Event *aEvent, nl::SerializationContext *aContext = NULL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::LogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLoggingSchemaExamples.h:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aEvent
    argTypes:
    - ByteStringArrayTestTrait::Event*
    constantsTouched: []
    func_position:
      end: 347
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 347
    functionName: nl::Weave::Profiles::LogByteStringArrayTestEvent
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLoggingSchemaExamples.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::LogEvent
    linkageType: ''
    returnType: event_id_t
    signature: LogByteStringArrayTestEvent(ByteStringArrayTestTrait::Event *aEvent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::TLVReaderToDeserializedDataHelper
      Src: /src/openweave-core/src/test-apps/TestEventLoggingSchemaExamples.h:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aReader
    - aEvent
    argTypes:
    - nl::Weave::TLV::TLVReader
    - ByteStringArrayTestTrait::Event*
    constantsTouched: []
    func_position:
      end: 354
      start: 349
    functionDepth: 4
    functionLinenumber: 349
    functionLinenumberEnd: 354
    functionName: nl::Weave::Profiles::DeserializeByteStringArrayTestEvent
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLoggingSchemaExamples.h
    functionUses: 0
    functionsReached:
    - nl::TLVReaderToDeserializedDataHelper
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: DeserializeByteStringArrayTestEvent(nl::Weave::TLV::TLVReader &aReader,
      ByteStringArrayTestTrait::Event *aEvent, nl::SerializationContext *aContext
      = NULL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:74,1
    - Dst: cancel
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:78,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: HandleTestTimeout
    functionSourceFile: /src/openweave-core/src/test-apps/weave-service-dir.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void *>
    - printf
    - cancel
    linkageType: ''
    returnType: void
    signature: HandleTestTimeout(System::Layer* aSystemLayer, void* aAppState, System::Error
      aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - argument
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: ExpireTimer
    functionSourceFile: /src/openweave-core/src/test-apps/weave-service-dir.cpp
    functionUses: 0
    functionsReached:
    - StartTimer
    linkageType: ''
    returnType: void
    signature: ExpireTimer(int32_t argument)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 96
    functionName: GetNumEventsAvailable
    functionSourceFile: /src/openweave-core/src/test-apps/weave-service-dir.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: GetNumEventsAvailable(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitToolCommon
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:105,1
    - Dst: SetupFaultInjectionContext
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:107,1
    - Dst: SetSignalHandler
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:108,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:112,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:113,1
    - Dst: ResolveWeaveNetworkOptions
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:114,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:116,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:121,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:122,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:123,1
    - Dst: PrintNodeConfig
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:125,1
    - Dst: nl::Weave::Stats::UpdateSnapshot
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:127,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:132,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:133,1
    - Dst: init
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:137,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:141,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:141,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:142,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:154,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:158,1
    - Dst: connect
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:161,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:163,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:168,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:168,1
    - Dst: ServiceNetworkUntil
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:175,1
    - Dst: CancelTimer
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:177,1
    - Dst: ServiceNetworkUntil
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:186,1
    - Dst: relocate
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:192,1
    - Dst: reset
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:193,1
    - Dst: unresolve
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:194,1
    - Dst: cancel
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:195,1
    - Dst: TearDown
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:199,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:200,1
    - Dst: ProcessStats
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:203,1
    - Dst: PrintFaultInjectionCounters
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:204,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:206,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:207,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:208,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 59
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 211
      start: 98
    functionDepth: 4
    functionLinenumber: 98
    functionLinenumberEnd: 211
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/weave-service-dir.cpp
    functionUses: 0
    functionsReached:
    - InitToolCommon
    - ShutdownSystemLayer
    - InitWeaveStack
    - unresolve
    - printf
    - StartTimer
    - nl::Weave::Stats::UpdateSnapshot
    - relocate
    - TearDown
    - exit
    - ParseArgsFromEnvVar
    - reset
    - CancelTimer
    - ServiceNetworkUntil
    - ResolveWeaveNetworkOptions
    - ShutdownWeaveStack
    - ParseArgs
    - InitNetwork
    - SetupFaultInjectionContext
    - ErrorStr
    - PrintNodeConfig
    - PrintFaultInjectionCounters
    - SetSignalHandler
    - InitSystemLayer
    - ProcessStats
    - connect
    - static_cast<void *>
    - ShutdownNetwork
    - Init
    - init
    - cancel
    - FAIL_ERROR
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:216,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:220,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:224,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 229
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 229
    functionName: HandleConnectionComplete
    functionSourceFile: /src/openweave-core/src/test-apps/weave-service-dir.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    - WeaveConnection*::Close
    linkageType: ''
    returnType: void
    signature: HandleConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:234,1
    - Dst: nl::StatusReportStr
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:235,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:238,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:238,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:238,1
    - Dst: clearCache
      Src: /src/openweave-core/src/test-apps/weave-service-dir.cpp:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - anAppState
    - anError
    - aReport
    argTypes:
    - void*
    - WEAVE_ERROR
    - StatusReport*
    constantsTouched: []
    func_position:
      end: 247
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 247
    functionName: HandleServiceMgrStatus
    functionSourceFile: /src/openweave-core/src/test-apps/weave-service-dir.cpp
    functionUses: 0
    functionsReached:
    - nl::StatusReportStr
    - static_cast<uint32_t>
    - printf
    - clearCache
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleServiceMgrStatus(void* anAppState, WEAVE_ERROR anError, StatusReport
      *aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:83,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:85,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - ' writer'
    - ' tag'
    - resourceId
    argTypes:
    - nl::Weave::TLV::TLVWriter
    - uint64_t
    - user_id_t
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: WriteResourceID
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - PutBytes
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WriteResourceID(nl::Weave::TLV::TLVWriter & writer, const uint64_t
      & tag, user_id_t resourceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Put
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' writer'
    - ' tag'
    - resourceId
    argTypes:
    - nl::Weave::TLV::TLVWriter
    - uint64_t
    - user_id_t
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: WriteResourceID
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 0
    functionsReached:
    - Put
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WriteResourceID(nl::Weave::TLV::TLVWriter & writer, const uint64_t
      & tag, user_id_t resourceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:116,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:117,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:117,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:118,1
    - Dst: Put
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:120,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:121,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:123,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:124,1
    - Dst: Finalize
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:126,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - ' writer'
    - inDataTag
    - anAppState
    argTypes:
    - nl::Weave::TLV::TLVWriter
    - uint8_t
    - void*
    constantsTouched: []
    func_position:
      end: 131
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 131
    functionName: WriteLivenessStatusEvent
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 0
    functionsReached:
    - StartContainer
    - ContextTag
    - VerifyOrExit
    - EndContainer
    - Put
    - SuccessOrExit
    - Finalize
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WriteLivenessStatusEvent(nl::Weave::TLV::TLVWriter & writer, uint8_t
      inDataTag, void * anAppState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EventOptions
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:149,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - inNodeID
    - inStatus
    argTypes:
    - uint64_t
    - LivenessDeviceStatus
    constantsTouched: []
    func_position:
      end: 156
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 156
    functionName: LogLiveness
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 0
    functionsReached:
    - EventOptions
    - WiFiTelemetry::GetTelemetryStatsAndLogEvent
    linkageType: ''
    returnType: event_id_t
    signature: LogLiveness(uint64_t inNodeID, LivenessDeviceStatus inStatus)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 178
    functionName: KeypadEntryEventStruct::KeypadEntryEventStruct
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: KeypadEntryEventStruct::KeypadEntryEventStruct()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: UserDisabledEventStruct::UserDisabledEventStruct
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: UserDisabledEventStruct::UserDisabledEventStruct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<KeypadEntryEventStruct *>
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:190,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:192,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:193,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:193,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:194,1
    - Dst: Put
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:196,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:197,1
    - Dst: WriteResourceID
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:199,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:200,1
    - Dst: Put
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:202,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:203,1
    - Dst: Put
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:205,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:206,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:208,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:209,1
    - Dst: Finalize
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:211,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 3
    argNames:
    - ' writer'
    - inDataTag
    - anAppState
    argTypes:
    - nl::Weave::TLV::TLVWriter
    - uint8_t
    - void*
    constantsTouched: []
    func_position:
      end: 216
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 216
    functionName: WriteKeypadEntryEvent
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 0
    functionsReached:
    - StartContainer
    - ContextTag
    - VerifyOrExit
    - WriteResourceID
    - EndContainer
    - Put
    - SuccessOrExit
    - Finalize
    - static_cast<KeypadEntryEventStruct *>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WriteKeypadEntryEvent(nl::Weave::TLV::TLVWriter & writer, uint8_t inDataTag,
      void * anAppState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KeypadEntryEventStruct::KeypadEntryEventStruct
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:220,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - inStatus
    - inResult
    - inUserID
    argTypes:
    - CredentialStatus
    - PincodeEntryResult
    - user_id_t
    constantsTouched: []
    func_position:
      end: 246
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 246
    functionName: LogKeypadEntry
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 0
    functionsReached:
    - KeypadEntryEventStruct::KeypadEntryEventStruct
    - WiFiTelemetry::GetTelemetryStatsAndLogEvent
    linkageType: ''
    returnType: event_id_t
    signature: LogKeypadEntry(CredentialStatus inStatus, PincodeEntryResult inResult,
      user_id_t inUserID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UserDisabledEventStruct *>
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:252,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:254,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:255,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:255,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:256,1
    - Dst: PutBoolean
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:258,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:259,1
    - Dst: WriteResourceID
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:261,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:262,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:264,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:265,1
    - Dst: Finalize
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:267,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - ' writer'
    - inDataTag
    - anAppState
    argTypes:
    - nl::Weave::TLV::TLVWriter
    - uint8_t
    - void*
    constantsTouched: []
    func_position:
      end: 272
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 272
    functionName: WriteUserDisabledEvent
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 0
    functionsReached:
    - Finalize
    - StartContainer
    - ContextTag
    - VerifyOrExit
    - WriteResourceID
    - static_cast<UserDisabledEventStruct *>
    - EndContainer
    - SuccessOrExit
    - PutBoolean
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WriteUserDisabledEvent(nl::Weave::TLV::TLVWriter & writer, uint8_t
      inDataTag, void * anAppState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UserDisabledEventStruct::UserDisabledEventStruct
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:276,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - inEnable
    - inUserID
    argTypes:
    - bool
    - user_id_t
    constantsTouched: []
    func_position:
      end: 292
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 292
    functionName: LogKeypadEnable
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 0
    functionsReached:
    - UserDisabledEventStruct::UserDisabledEventStruct
    - WiFiTelemetry::GetTelemetryStatsAndLogEvent
    linkageType: ''
    returnType: event_id_t
    signature: LogKeypadEnable(bool inEnable, user_id_t inUserID)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 318
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 318
    functionName: BoltActuatorEventStruct::BoltActuatorEventStruct
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BoltActuatorEventStruct::BoltActuatorEventStruct()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: BoltLockActorStruct::BoltLockActorStruct
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BoltLockActorStruct::BoltLockActorStruct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BoltActuatorEventStruct *>
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:331,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:333,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:334,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:334,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:335,1
    - Dst: Put
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:337,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:338,1
    - Dst: Put
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:340,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:341,1
    - Dst: Put
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:343,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:344,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:346,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:347,1
    - Dst: Put
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:349,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:350,1
    - Dst: WriteResourceID
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:352,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:353,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:355,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:356,1
    - Dst: Put
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:358,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:359,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:361,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:362,1
    - Dst: Finalize
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:364,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 3
    argNames:
    - ' writer'
    - inDataTag
    - anAppState
    argTypes:
    - nl::Weave::TLV::TLVWriter
    - uint8_t
    - void*
    constantsTouched: []
    func_position:
      end: 369
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 369
    functionName: WriteBoltActuatorStateChangeEvent
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 0
    functionsReached:
    - StartContainer
    - ContextTag
    - VerifyOrExit
    - WriteResourceID
    - EndContainer
    - static_cast<BoltActuatorEventStruct *>
    - Put
    - SuccessOrExit
    - Finalize
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WriteBoltActuatorStateChangeEvent(nl::Weave::TLV::TLVWriter & writer,
      uint8_t inDataTag, void * anAppState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BoltActuatorEventStruct::BoltActuatorEventStruct
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:374,1
    - Dst: static_cast<int16_t>
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:383,1
    - Dst: static_cast<int16_t>
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:384,1
    - Dst: static_cast<int16_t>
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:385,1
    - Dst: static_cast<BoltLockActorStruct>
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:386,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:387,1
    - Dst: EventOptions
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:391,1
    - Dst: EventOptions
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:395,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - inState
    - inActuatorState
    - inLockedState
    - inBolt_lock_actor
    - inLocked_state_last_changed_at
    - inEventID
    argTypes:
    - BoltState
    - BoltActuatorState
    - BoltLockedState
    - BoltLockActorStruct
    - utc_timestamp_t
    - event_id_t
    constantsTouched: []
    func_position:
      end: 405
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 405
    functionName: LogBoltStateChange
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int16_t>
    - BoltActuatorEventStruct::BoltActuatorEventStruct
    - static_cast<BoltLockActorStruct>
    - EventOptions
    - static_cast<uint64_t>
    - WiFiTelemetry::GetTelemetryStatsAndLogEvent
    linkageType: ''
    returnType: event_id_t
    signature: LogBoltStateChange(BoltState inState, BoltActuatorState inActuatorState,
      BoltLockedState inLockedState, BoltLockActorStruct inBolt_lock_actor, utc_timestamp_t
      inLocked_state_last_changed_at, event_id_t inEventID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:421,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:422,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:422,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:423,1
    - Dst: Put
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:425,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:426,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:428,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:429,1
    - Dst: Finalize
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:431,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - ' writer'
    - inDataTag
    - anAppState
    argTypes:
    - nl::Weave::TLV::TLVWriter
    - uint8_t
    - void*
    constantsTouched: []
    func_position:
      end: 436
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 436
    functionName: WriteOpenCloseEvent
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 0
    functionsReached:
    - StartContainer
    - ContextTag
    - VerifyOrExit
    - EndContainer
    - Put
    - SuccessOrExit
    - Finalize
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WriteOpenCloseEvent(nl::Weave::TLV::TLVWriter & writer, uint8_t inDataTag,
      void * anAppState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inState
    argTypes:
    - OpenCloseState
    constantsTouched: []
    func_position:
      end: 453
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 453
    functionName: LogOpenClose
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 0
    functionsReached:
    - WiFiTelemetry::GetTelemetryStatsAndLogEvent
    linkageType: ''
    returnType: event_id_t
    signature: LogOpenClose(OpenCloseState inState)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - aNumStates
    - aInitialState
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 462
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 462
    functionName: EventGenerator::EventGenerator
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EventGenerator::EventGenerator(size_t aNumStates, size_t aInitialState)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 467
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 467
    functionName: EventGenerator::GetNumStates
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: EventGenerator::GetNumStates()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 534
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 534
    functionName: DebugEventGenerator::DebugEventGenerator
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DebugEventGenerator::DebugEventGenerator()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 540
      start: 536
    functionDepth: 3
    functionLinenumber: 536
    functionLinenumberEnd: 540
    functionName: DebugEventGenerator::Generate
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::LogFreeform
    linkageType: ''
    returnType: void
    signature: DebugEventGenerator::Generate(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 545
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 545
    functionName: LivenessEventGenerator::LivenessEventGenerator
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: LivenessEventGenerator::LivenessEventGenerator(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LogLiveness
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:553,1
    - Dst: LogLiveness
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:557,1
    - Dst: LogLiveness
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:561,1
    - Dst: LogLiveness
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:565,1
    - Dst: LogLiveness
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:569,1
    - Dst: LogLiveness
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:573,1
    - Dst: LogLiveness
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:577,1
    - Dst: LogLiveness
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:581,1
    - Dst: LogLiveness
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:585,1
    - Dst: LogLiveness
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:589,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 597
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 597
    functionName: LivenessEventGenerator::Generate
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 0
    functionsReached:
    - LogLiveness
    linkageType: ''
    returnType: void
    signature: LivenessEventGenerator::Generate(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 603
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 603
    functionName: SecurityEventGenerator::SecurityEventGenerator
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SecurityEventGenerator::SecurityEventGenerator(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Timer::GetCurrentEpoch
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:614,1
    - Dst: BoltLockActorStruct::BoltLockActorStruct
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:615,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:620,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:624,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:628,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:632,1
    - Dst: LogBoltStateChange
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:640,1
    - Dst: LogBoltStateChange
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:647,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:649,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:664,1
    - Dst: LogBoltStateChange
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:665,1
    - Dst: LogBoltStateChange
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:671,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:675,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:679,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:684,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:689,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 697
      start: 605
    functionDepth: 3
    functionLinenumber: 605
    functionLinenumberEnd: 697
    functionName: SecurityEventGenerator::Generate
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 0
    functionsReached:
    - BoltLockActorStruct::BoltLockActorStruct
    - nl::Weave::Profiles::LogFreeform
    - nl::Weave::System::Timer::GetCurrentEpoch
    - LogBoltStateChange
    linkageType: ''
    returnType: void
    signature: SecurityEventGenerator::Generate(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 703
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 703
    functionName: TelemetryEventGenerator::TelemetryEventGenerator
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TelemetryEventGenerator::TelemetryEventGenerator(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LogNetworkWiFiStatsEvent
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:737,1
    - Dst: LogNetworkWiFiDeauthEvent
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:742,1
    - Dst: LogNetworkWiFiInvalidKeyEvent
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:747,1
    - Dst: LogNetworkWiFiDHCPFailureEvent
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:752,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 756
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 756
    functionName: TelemetryEventGenerator::Generate
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 0
    functionsReached:
    - LogNetworkWiFiInvalidKeyEvent
    - LogNetworkWiFiStatsEvent
    - LogNetworkWiFiDeauthEvent
    - LogNetworkWiFiDHCPFailureEvent
    linkageType: ''
    returnType: void
    signature: TelemetryEventGenerator::Generate(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 763
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 763
    functionName: TestTraitEventGenerator::TestTraitEventGenerator
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestTraitEventGenerator::TestTraitEventGenerator(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:784,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:798,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:799,1
    - Dst: nl::LogEvent
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:813,1
    - Dst: nl::LogEvent
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:824,1
    - Dst: nl::LogEvent
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:830,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:837,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:838,1
    - Dst: nl::LogEvent
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:843,1
    - Dst: nl::LogEvent
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:856,1
    - Dst: SetTeJNull
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:861,1
    - Dst: SetTeMNull
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:862,1
    - Dst: SetTeNNull
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:863,1
    - Dst: SetTePNull
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:864,1
    - Dst: SetTeSNull
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:865,1
    - Dst: nl::LogEvent
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:867,1
    - Dst: neJ::SetNeANull
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:869,1
    - Dst: nl::LogEvent
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:871,1
    - Dst: SetTeJPresent
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:873,1
    - Dst: SetTeMPresent
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:874,1
    - Dst: SetTeNPresent
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:875,1
    - Dst: SetTePPresent
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:876,1
    - Dst: SetTeSPresent
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:877,1
    - Dst: neJ::SetNeAPresent
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:879,1
    - Dst: SetNeJNull
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:880,1
    - Dst: nl::LogEvent
      Src: /src/openweave-core/src/test-apps/MockEvents.cpp:882,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 887
      start: 765
    functionDepth: 2
    functionLinenumber: 765
    functionLinenumberEnd: 887
    functionName: TestTraitEventGenerator::Generate
    functionSourceFile: /src/openweave-core/src/test-apps/MockEvents.cpp
    functionUses: 0
    functionsReached:
    - SetTeMNull
    - SetTeJNull
    - SetTeSNull
    - nl::Weave::Encoding::LittleEndian::Write64
    - SetTeSPresent
    - SetTePNull
    - SetNeJNull
    - memset
    - SetTeMPresent
    - SetTeJPresent
    - neJ::SetNeAPresent
    - SetTeNNull
    - nl::Weave::Encoding::LittleEndian::Write16
    - SetTePPresent
    - SetTeNPresent
    - nl::LogEvent
    - neJ::SetNeANull
    linkageType: ''
    returnType: void
    signature: TestTraitEventGenerator::Generate(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:39,1
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:39,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:40,1
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:40,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:41,1
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:41,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:42,1
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:42,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:43,1
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:43,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:44,1
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:44,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:45,1
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:45,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:46,1
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:46,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:47,1
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:47,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:50,1
    - Dst: nl::Weave::WeaveKeyId::IsGeneralKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:50,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:51,1
    - Dst: nl::Weave::WeaveKeyId::IsSessionKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:51,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:52,1
    - Dst: nl::Weave::WeaveKeyId::IsAppStaticKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:52,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:53,1
    - Dst: nl::Weave::WeaveKeyId::IsAppRotatingKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:53,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:54,1
    - Dst: nl::Weave::WeaveKeyId::IsAppGroupKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:54,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:55,1
    - Dst: nl::Weave::WeaveKeyId::IsAppRootKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:55,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:56,1
    - Dst: nl::Weave::WeaveKeyId::IsAppEpochKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:56,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:57,1
    - Dst: nl::Weave::WeaveKeyId::IsAppGroupMasterKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:57,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:59,1
    - Dst: nl::Weave::WeaveKeyId::IsGeneralKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:59,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:60,1
    - Dst: nl::Weave::WeaveKeyId::IsSessionKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:60,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:61,1
    - Dst: nl::Weave::WeaveKeyId::IsAppStaticKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:61,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:62,1
    - Dst: nl::Weave::WeaveKeyId::IsAppRotatingKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:62,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:63,1
    - Dst: nl::Weave::WeaveKeyId::IsAppGroupKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:63,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:64,1
    - Dst: nl::Weave::WeaveKeyId::IsAppRootKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:64,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:65,1
    - Dst: nl::Weave::WeaveKeyId::IsAppEpochKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:65,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:66,1
    - Dst: nl::Weave::WeaveKeyId::IsAppGroupMasterKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:66,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:69,1
    - Dst: nl::Weave::WeaveKeyId::GetRootKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:69,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:70,1
    - Dst: nl::Weave::WeaveKeyId::GetEpochKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:70,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:71,1
    - Dst: nl::Weave::WeaveKeyId::GetAppGroupMasterKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:71,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:72,1
    - Dst: nl::Weave::WeaveKeyId::GetRootKeyNumber
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:72,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:73,1
    - Dst: nl::Weave::WeaveKeyId::GetEpochKeyNumber
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:73,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:74,1
    - Dst: nl::Weave::WeaveKeyId::GetAppGroupLocalNumber
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:74,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:79,1
    - Dst: nl::Weave::WeaveKeyId::MakeSessionKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:79,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:80,1
    - Dst: nl::Weave::WeaveKeyId::MakeGeneralKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:80,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:81,1
    - Dst: nl::Weave::WeaveKeyId::MakeSessionKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:81,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:82,1
    - Dst: nl::Weave::WeaveKeyId::MakeGeneralKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:82,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:84,1
    - Dst: nl::Weave::WeaveKeyId::MakeRootKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:84,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:84,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:85,1
    - Dst: nl::Weave::WeaveKeyId::MakeEpochKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:85,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:85,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:86,1
    - Dst: nl::Weave::WeaveKeyId::MakeAppGroupMasterKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:86,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:86,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:89,1
    - Dst: nl::Weave::WeaveKeyId::IncorporatesEpochKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:89,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:90,1
    - Dst: nl::Weave::WeaveKeyId::UsesCurrentEpochKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:90,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:91,1
    - Dst: nl::Weave::WeaveKeyId::IncorporatesRootKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:91,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:92,1
    - Dst: nl::Weave::WeaveKeyId::IncorporatesAppGroupMasterKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:92,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:94,1
    - Dst: nl::Weave::WeaveKeyId::IncorporatesEpochKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:94,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:95,1
    - Dst: nl::Weave::WeaveKeyId::UsesCurrentEpochKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:95,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:96,1
    - Dst: nl::Weave::WeaveKeyId::IncorporatesRootKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:96,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:97,1
    - Dst: nl::Weave::WeaveKeyId::IncorporatesAppGroupMasterKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:97,1
    - Dst: nl::Weave::WeaveKeyId::MakeAppKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:102,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:103,1
    - Dst: nl::Weave::WeaveKeyId::MakeAppKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:104,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:105,1
    - Dst: nl::Weave::WeaveKeyId::ConvertToCurrentAppKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:105,1
    - Dst: nl::Weave::WeaveKeyId::MakeAppIntermediateKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:106,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:108,1
    - Dst: nl::Weave::WeaveKeyId::MakeAppRotatingKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:109,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:111,1
    - Dst: nl::Weave::WeaveKeyId::MakeAppStaticKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:112,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:114,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:116,1
    - Dst: nl::Weave::WeaveKeyId::ConvertToCurrentAppKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:116,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:117,1
    - Dst: nl::Weave::WeaveKeyId::ConvertToStaticAppKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:117,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:118,1
    - Dst: nl::Weave::WeaveKeyId::UpdateEpochKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:118,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:121,1
    - Dst: nl::Weave::WeaveKeyId::IsValidKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:121,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:122,1
    - Dst: nl::Weave::WeaveKeyId::IsValidKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:122,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:123,1
    - Dst: nl::Weave::WeaveKeyId::IsValidKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:123,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:124,1
    - Dst: nl::Weave::WeaveKeyId::IsValidKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:124,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:125,1
    - Dst: nl::Weave::WeaveKeyId::IsValidKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:125,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:126,1
    - Dst: nl::Weave::WeaveKeyId::IsValidKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:126,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:127,1
    - Dst: nl::Weave::WeaveKeyId::IsValidKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:127,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:128,1
    - Dst: nl::Weave::WeaveKeyId::IsValidKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:128,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:129,1
    - Dst: nl::Weave::WeaveKeyId::IsValidKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:129,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:130,1
    - Dst: nl::Weave::WeaveKeyId::IsValidKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:130,1
    - Dst: nl::Weave::WeaveKeyId::ConvertToCurrentAppKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:130,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:131,1
    - Dst: nl::Weave::WeaveKeyId::IsValidKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:131,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:133,1
    - Dst: nl::Weave::WeaveKeyId::IsValidKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:133,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:134,1
    - Dst: nl::Weave::WeaveKeyId::IsValidKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:134,1
    - Dst: nl::Weave::WeaveKeyId::MakeEpochKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:134,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:135,1
    - Dst: nl::Weave::WeaveKeyId::IsValidKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:135,1
    - Dst: nl::Weave::WeaveKeyId::MakeAppGroupMasterKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:135,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:136,1
    - Dst: nl::Weave::WeaveKeyId::IsValidKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:136,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:137,1
    - Dst: nl::Weave::WeaveKeyId::IsValidKeyId
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:137,1
    - Dst: nl::Weave::WeaveKeyId::DescribeKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:142,1
    - Dst: nl::Weave::WeaveKeyId::DescribeKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:143,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:144,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:144,1
    - Dst: nl::Weave::WeaveKeyId::DescribeKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:145,1
    - Dst: nl::Weave::WeaveKeyId::DescribeKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:146,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:147,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:147,1
    - Dst: nl::Weave::WeaveKeyId::DescribeKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:148,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:149,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:149,1
    - Dst: nl::Weave::WeaveKeyId::DescribeKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:150,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:151,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:151,1
    - Dst: nl::Weave::WeaveKeyId::DescribeKey
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:152,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:153,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 92
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 154
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 154
    functionName: KeyIds_Test1
    functionSourceFile: /src/openweave-core/src/test-apps/TestKeyIds.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveKeyId::ConvertToStaticAppKeyId
    - nl::Weave::WeaveKeyId::UsesCurrentEpochKey
    - NL_TEST_ASSERT
    - nl::Weave::WeaveKeyId::GetRootKeyId
    - static_cast<uint32_t>
    - nl::Weave::WeaveKeyId::IsAppGroupMasterKey
    - nl::Weave::WeaveKeyId::IncorporatesAppGroupMasterKey
    - nl::Weave::WeaveKeyId::IsAppEpochKey
    - nl::Weave::WeaveKeyId::IsValidKeyId
    - nl::Weave::WeaveKeyId::GetEpochKeyId
    - nl::Weave::WeaveKeyId::MakeAppRotatingKeyId
    - nl::Weave::WeaveKeyId::IsGeneralKey
    - nl::Weave::WeaveKeyId::IsAppRootKey
    - nl::Weave::WeaveKeyId::MakeSessionKeyId
    - nl::Weave::WeaveKeyId::IsAppStaticKey
    - nl::Weave::WeaveKeyId::MakeAppGroupMasterKeyId
    - nl::Weave::WeaveKeyId::MakeAppKeyId
    - nl::Weave::WeaveKeyId::IsSessionKey
    - nl::Weave::WeaveKeyId::GetEpochKeyNumber
    - nl::Weave::WeaveKeyId::MakeAppStaticKeyId
    - nl::Weave::WeaveKeyId::GetAppGroupMasterKeyId
    - nl::Weave::WeaveKeyId::MakeEpochKeyId
    - nl::Weave::WeaveKeyId::IsAppGroupKey
    - nl::Weave::WeaveKeyId::GetAppGroupLocalNumber
    - nl::Weave::WeaveKeyId::IncorporatesRootKey
    - nl::Weave::WeaveKeyId::MakeGeneralKeyId
    - nl::Weave::WeaveKeyId::GetType
    - nl::Weave::WeaveKeyId::DescribeKey
    - strcmp
    - nl::Weave::WeaveKeyId::GetRootKeyNumber
    - nl::Weave::WeaveKeyId::IncorporatesEpochKey
    - nl::Weave::WeaveKeyId::UpdateEpochKeyId
    - nl::Weave::WeaveKeyId::MakeAppIntermediateKeyId
    - nl::Weave::WeaveKeyId::MakeRootKeyId
    - nl::Weave::WeaveKeyId::ConvertToCurrentAppKeyId
    - nl::Weave::WeaveKeyId::IsAppRotatingKey
    linkageType: ''
    returnType: void
    signature: KeyIds_Test1(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_DEF
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:160,1
    - Dst: NL_TEST_SENTINEL
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:161,1
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:169,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:171,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestKeyIds.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 174
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 174
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestKeyIds.cpp
    functionUses: 0
    functionsReached:
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    - NL_TEST_DEF
    - NL_TEST_SENTINEL
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadTestCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:76,1
    - Dst: LoadTestCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:77,1
    - Dst: LoadTestCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' certSet'
    argTypes:
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: LoadStandardCerts
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveCert.cpp
    functionUses: 0
    functionsReached:
    - LoadTestCert
    linkageType: ''
    returnType: void
    signature: LoadStandardCerts(WeaveCertificateSet& certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PackCertTime
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:92,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ' validContext'
    - year
    - mon
    - day
    argTypes:
    - ValidationContext
    - uint16_t
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: SetEffectiveTime
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveCert.cpp
    functionUses: 0
    functionsReached:
    - PackCertTime
    - SuccessOrFail
    linkageType: ''
    returnType: void
    signature: SetEffectiveTime(ValidationContext& validContext, uint16_t year, uint8_t
      mon, uint8_t day, uint8_t hour = 0, uint8_t min = 0, uint8_t sec = 0)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetTestCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:110,1
    - Dst: GetTestCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:111,1
    - Dst: ConvertWeaveCertToX509Cert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:113,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:114,1
    - Dst: GetTestCertName
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:114,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:115,1
    - Dst: GetTestCertName
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:115,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:116,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:116,1
    - Dst: GetTestCertName
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:116,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 120
    functionName: WeaveCertTest_WeaveToX509
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveCert.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - GetTestCert
    - GetTestCertName
    - ConvertWeaveCertToX509Cert
    - SuccessOrFail
    - VerifyOrFail
    - printf
    linkageType: ''
    returnType: void
    signature: WeaveCertTest_WeaveToX509()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetTestCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:136,1
    - Dst: GetTestCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:137,1
    - Dst: ConvertX509CertToWeaveCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:139,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:140,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:141,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:142,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:142,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 146
    functionName: WeaveCertTest_X509ToWeave
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveCert.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - GetTestCert
    - SuccessOrFail
    - VerifyOrFail
    - printf
    - ConvertX509CertToWeaveCert
    linkageType: ''
    returnType: void
    signature: WeaveCertTest_X509ToWeave()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveCertificateSet::Init
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:393,1
    - Dst: LoadTestCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:396,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:399,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:403,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:405,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:410,1
    - Dst: SetEffectiveTime
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:411,1
    - Dst: WeaveCertificateSet::FindValidCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:422,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:423,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:429,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:432,1
    - Dst: WeaveCertificateSet::Release
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:436,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:439,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 440
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 440
    functionName: WeaveCertTest_CertValidation
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveCert.cpp
    functionUses: 0
    functionsReached:
    - LoadTestCert
    - WeaveCertificateSet::Init
    - WeaveCertificateSet::Release
    - memset
    - VerifyOrFail
    - WeaveCertificateSet::FindValidCert
    - printf
    - SetEffectiveTime
    linkageType: ''
    returnType: void
    signature: WeaveCertTest_CertValidation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveCertificateSet::Init
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:448,1
    - Dst: LoadStandardCerts
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:450,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:452,1
    - Dst: SetEffectiveTime
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:457,1
    - Dst: WeaveCertificateSet::ValidateCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:458,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:459,1
    - Dst: SetEffectiveTime
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:462,1
    - Dst: WeaveCertificateSet::ValidateCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:463,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:464,1
    - Dst: SetEffectiveTime
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:469,1
    - Dst: WeaveCertificateSet::ValidateCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:470,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:471,1
    - Dst: SetEffectiveTime
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:475,1
    - Dst: WeaveCertificateSet::ValidateCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:476,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:477,1
    - Dst: SetEffectiveTime
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:480,1
    - Dst: WeaveCertificateSet::ValidateCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:481,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:482,1
    - Dst: SetEffectiveTime
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:485,1
    - Dst: WeaveCertificateSet::ValidateCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:486,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:487,1
    - Dst: SetEffectiveTime
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:491,1
    - Dst: WeaveCertificateSet::ValidateCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:492,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:493,1
    - Dst: SetEffectiveTime
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:497,1
    - Dst: WeaveCertificateSet::ValidateCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:498,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:499,1
    - Dst: WeaveCertificateSet::Release
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:501,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 504
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 504
    functionName: WeaveCertTest_CertValidTime
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveCert.cpp
    functionUses: 0
    functionsReached:
    - LoadStandardCerts
    - WeaveCertificateSet::Init
    - WeaveCertificateSet::Release
    - WeaveCertificateSet::ValidateCert
    - memset
    - VerifyOrFail
    - printf
    - SetEffectiveTime
    linkageType: ''
    returnType: void
    signature: WeaveCertTest_CertValidTime()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveCertificateSet::Init
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:612,1
    - Dst: LoadStandardCerts
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:614,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:618,1
    - Dst: SetEffectiveTime
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:619,1
    - Dst: WeaveCertificateSet::ValidateCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:622,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:624,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:625,1
    - Dst: WeaveCertificateSet::Release
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:628,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:630,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 631
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 631
    functionName: WeaveCertTest_CertUsage
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveCert.cpp
    functionUses: 0
    functionsReached:
    - LoadStandardCerts
    - WeaveCertificateSet::Init
    - WeaveCertificateSet::Release
    - WeaveCertificateSet::ValidateCert
    - memset
    - VerifyOrFail
    - printf
    - SetEffectiveTime
    linkageType: ''
    returnType: void
    signature: WeaveCertTest_CertUsage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveCertificateSet::Init
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:686,1
    - Dst: LoadTestCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:687,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:689,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 693
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 693
    functionName: WeaveCertTest_CertType
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveCert.cpp
    functionUses: 0
    functionsReached:
    - LoadTestCert
    - VerifyOrFail
    - printf
    - WeaveCertificateSet::Init
    linkageType: ''
    returnType: void
    signature: WeaveCertTest_CertType()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Crypto::GenerateECDSASignature
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:699,1
    - Dst: WeaveCurveIdToOID
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hash
    - hashLen
    - ' ecdsaSig'
    argTypes:
    - uint8_t*
    - uint8_t
    - EncodedECDSASignature
    constantsTouched: []
    func_position:
      end: 701
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 701
    functionName: sGenerateCertSignature
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveCert.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Crypto::GenerateECDSASignature
    - WeaveCurveIdToOID
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: sGenerateCertSignature(const uint8_t *hash, uint8_t hashLen, EncodedECDSASignature&
      ecdsaSig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenerateWeaveNodeId
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:722,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:723,1
    - Dst: GenerateECDHKey
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:725,1
    - Dst: WeaveCurveIdToOID
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:725,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:726,1
    - Dst: GenerateOperationalDeviceCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:728,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:729,1
    - Dst: WeaveCertificateSet::Init
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:732,1
    - Dst: WeaveCertificateSet::LoadCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:735,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:736,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:740,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:741,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:742,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:743,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:744,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:745,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:746,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:747,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:748,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:749,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:756,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:758,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:759,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:760,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:762,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:763,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:764,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:765,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:765,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:771,1
    - Dst: SetEffectiveTime
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:780,1
    - Dst: WeaveCertificateSet::ValidateCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:789,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:790,1
    - Dst: VerifyECDSASignature
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:793,1
    - Dst: WeaveCurveIdToOID
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:793,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:796,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:800,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:801,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 805
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 805
    functionName: WeaveCertTest_GenerateOperationalDeviceCert
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveCert.cpp
    functionUses: 0
    functionsReached:
    - DumpMemoryCStyle
    - SetEffectiveTime
    - memcmp
    - WeaveCurveIdToOID
    - GenerateOperationalDeviceCert
    - GenerateWeaveNodeId
    - WeaveCertificateSet::Init
    - WeaveCertificateSet::ValidateCert
    - SuccessOrFail
    - VerifyECDSASignature
    - memset
    - VerifyOrFail
    - printf
    - GenerateECDHKey
    - WeaveCertificateSet::LoadCert
    linkageType: ''
    returnType: void
    signature: WeaveCertTest_GenerateOperationalDeviceCert()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenerateECDHKey
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:836,1
    - Dst: WeaveCurveIdToOID
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:836,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:837,1
    - Dst: EncodeWeaveECPrivateKey
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:839,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:841,1
    - Dst: GenerateOperationalDeviceCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:843,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:844,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:846,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:848,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:850,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:851,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:852,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:854,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:856,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:857,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:858,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:860,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 864
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 864
    functionName: WeaveCertTest_GenerateAndPrintTestOperationalDeviceCert
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveCert.cpp
    functionUses: 0
    functionsReached:
    - DumpMemoryCStyle
    - WeaveCurveIdToOID
    - GenerateOperationalDeviceCert
    - SuccessOrFail
    - printf
    - GenerateECDHKey
    - EncodeWeaveECPrivateKey
    linkageType: ''
    returnType: void
    signature: WeaveCertTest_GenerateAndPrintTestOperationalDeviceCert()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveCertTest_WeaveToX509
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:868,1
    - Dst: WeaveCertTest_X509ToWeave
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:869,1
    - Dst: WeaveCertTest_CertValidation
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:870,1
    - Dst: WeaveCertTest_CertValidTime
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:871,1
    - Dst: WeaveCertTest_CertUsage
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:872,1
    - Dst: WeaveCertTest_CertType
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:873,1
    - Dst: WeaveCertTest_GenerateOperationalDeviceCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:874,1
    - Dst: WeaveCertTest_GenerateAndPrintTestOperationalDeviceCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:876,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveCert.cpp:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 879
      start: 866
    functionDepth: 2
    functionLinenumber: 866
    functionLinenumberEnd: 879
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveCert.cpp
    functionUses: 0
    functionsReached:
    - WeaveCertTest_GenerateOperationalDeviceCert
    - WeaveCertTest_WeaveToX509
    - WeaveCertTest_CertValidTime
    - WeaveCertTest_X509ToWeave
    - WeaveCertTest_CertType
    - WeaveCertTest_CertUsage
    - printf
    - WeaveCertTest_GenerateAndPrintTestOperationalDeviceCert
    - WeaveCertTest_CertValidation
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: Abort
    functionSourceFile: /src/openweave-core/src/test-apps/TestTimeZone.cpp
    functionUses: 58
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: Abort()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:42,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:42,1
    - Dst: Abort
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - err
    - msg
    argTypes:
    - WEAVE_ERROR
    - char*
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: TestError
    functionSourceFile: /src/openweave-core/src/test-apps/TestTimeZone.cpp
    functionUses: 0
    functionsReached:
    - printf
    - Abort
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: TestError(WEAVE_ERROR err, const char *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:51,1
    - Dst: Abort
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - assert
    - msg
    argTypes:
    - bool
    - char*
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: TestAssert
    functionSourceFile: /src/openweave-core/src/test-apps/TestTimeZone.cpp
    functionUses: 3
    functionsReached:
    - printf
    - Abort
    linkageType: ''
    returnType: void
    signature: TestAssert(bool assert, const char *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:60,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:77,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:78,1
    - Dst: TimeZoneUtcOffset::Encode
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:79,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:80,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:81,1
    - Dst: TimeZoneUtcOffset::Decode
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:82,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:83,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:84,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:88,1
    - Dst: time_t
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:97,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:99,1
    - Dst: asctime
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:99,1
    - Dst: localtime
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:99,1
    - Dst: TimeZoneUtcOffset::GetCurrentLocalTime
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:102,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:103,1
    - Dst: time_t
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:104,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:106,1
    - Dst: asctime
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:106,1
    - Dst: gmtime
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:106,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:109,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:112,1
    - Dst: TestError
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 116
    functionName: TestCase1
    functionSourceFile: /src/openweave-core/src/test-apps/TestTimeZone.cpp
    functionUses: 0
    functionsReached:
    - TimeZoneUtcOffset::GetCurrentLocalTime
    - gmtime
    - time_t
    - WeaveLogProgress
    - TestError
    - localtime
    - asctime
    - TimeZoneUtcOffset::Decode
    - SuccessOrExit
    - TimeZoneUtcOffset::Encode
    linkageType: ''
    returnType: void
    signature: TestCase1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:122,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:141,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:142,1
    - Dst: TimeZoneUtcOffset::Encode
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:143,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:144,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:145,1
    - Dst: TimeZoneUtcOffset::Decode
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:146,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:147,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:148,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:152,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:156,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:159,1
    - Dst: TestError
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 163
    functionName: TestCase2
    functionSourceFile: /src/openweave-core/src/test-apps/TestTimeZone.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - TestError
    - TimeZoneUtcOffset::Decode
    - SuccessOrExit
    - TimeZoneUtcOffset::Encode
    linkageType: ''
    returnType: void
    signature: TestCase2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:169,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:182,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:183,1
    - Dst: TimeZoneUtcOffset::Encode
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:184,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:185,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:186,1
    - Dst: TimeZoneUtcOffset::Decode
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:187,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:188,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:189,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:193,1
    - Dst: time_t
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:202,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:204,1
    - Dst: asctime
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:204,1
    - Dst: gmtime
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:204,1
    - Dst: TimeZoneUtcOffset::GetCurrentLocalTime
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:207,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:208,1
    - Dst: time_t
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:209,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:211,1
    - Dst: asctime
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:211,1
    - Dst: gmtime
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:211,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:214,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:217,1
    - Dst: TestError
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 221
    functionName: TestCase3
    functionSourceFile: /src/openweave-core/src/test-apps/TestTimeZone.cpp
    functionUses: 0
    functionsReached:
    - TimeZoneUtcOffset::GetCurrentLocalTime
    - gmtime
    - time_t
    - WeaveLogProgress
    - TestError
    - asctime
    - TimeZoneUtcOffset::Decode
    - SuccessOrExit
    - TimeZoneUtcOffset::Encode
    linkageType: ''
    returnType: void
    signature: TestCase3(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestCase1
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:225,1
    - Dst: TestCase2
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:226,1
    - Dst: TestCase3
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:227,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 231
      start: 223
    functionDepth: 4
    functionLinenumber: 223
    functionLinenumberEnd: 231
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestTimeZone.cpp
    functionUses: 0
    functionsReached:
    - TestCase2
    - printf
    - TestCase1
    - TestCase3
    linkageType: ''
    returnType: int
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTimeZone.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 239
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 239
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestTimeZone.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:46,1
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:49,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:54,1
    - Dst: ReferencedTLVData::init
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:69,1
    - Dst: Retrieve
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:70,1
    - Dst: StatusReport::init
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:75,1
    - Dst: ViewResponse
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:78,1
    - Dst: LookupFailureMode
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:92,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:98,1
    - Dst: ExchangeContext*::Con::Close
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:100,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:105,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:110,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:127,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:127,1
    - Dst: StatusReport::init
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:129,1
    - Dst: ViewResponse
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:132,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:135,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:135,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:139,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:140,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 2
    argNames:
    - aResponseCtx
    - aPathList
    argTypes:
    - ExchangeContext*
    - ReferencedTLVData
    constantsTouched: []
    func_position:
      end: 143
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 143
    functionName: MockDMPublisher::ViewIndication
    functionSourceFile: /src/openweave-core/src/test-apps/MockDMPublisher.cpp
    functionUses: 0
    functionsReached:
    - ReferencedTLVData::ReferencedTLVData
    - ExchangeContext*::Con::Close
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    - printf
    - ReferencedTLVData::init
    - StatusReport::init
    - LookupFailureMode
    - ErrorStr
    - Retrieve
    - ViewResponse
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockDMPublisher::ViewIndication(ExchangeContext *aResponseCtx, ReferencedTLVData
      &aPathList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:152,1
    - Dst: Store
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:158,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:159,1
    - Dst: StatusReport::init
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:166,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:176,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:176,1
    - Dst: StatusReport::init
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:178,1
    - Dst: StatusResponse
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:182,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:184,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:193,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - aResponseCtx
    - aDataList
    argTypes:
    - ExchangeContext*
    - ReferencedTLVData
    constantsTouched: []
    func_position:
      end: 196
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 196
    functionName: MockDMPublisher::UpdateIndication
    functionSourceFile: /src/openweave-core/src/test-apps/MockDMPublisher.cpp
    functionUses: 0
    functionsReached:
    - ExchangeContext*::Close
    - StatusResponse
    - printf
    - StatusReport::init
    - SuccessOrExit
    - ErrorStr
    - Store
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockDMPublisher::UpdateIndication(ExchangeContext *aResponseCtx, ReferencedTLVData
      &aDataList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aPeerNodeId
    - aReport
    argTypes:
    - uint64_t
    - StatusReport
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: MockDMPublisher::IncompleteIndication
    functionSourceFile: /src/openweave-core/src/test-apps/MockDMPublisher.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: MockDMPublisher::IncompleteIndication(const uint64_t &aPeerNodeId,
      StatusReport &aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:210,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:217,1
    - Dst: StatusReport::init
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:229,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:230,1
    - Dst: ReferencedTLVData::init
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:234,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:235,1
    - Dst: StartDataList
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:237,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:238,1
    - Dst: StartDataListElement
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:240,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:241,1
    - Dst: mTestData::Retrieve
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:243,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:244,1
    - Dst: EndDataListElement
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:246,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:247,1
    - Dst: EndList
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:249,1
    - Dst: StatusReport::init
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:256,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:257,1
    - Dst: SubscribeResponse
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:263,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:273,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:273,1
    - Dst: StatusReport::init
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:275,1
    - Dst: StatusResponse
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:278,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:281,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:290,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:290,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 2
    argNames:
    - aResponseCtx
    - aTopicId
    argTypes:
    - ExchangeContext*
    - TopicIdentifier
    constantsTouched: []
    func_position:
      end: 293
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 293
    functionName: MockDMPublisher::SubscribeIndication
    functionSourceFile: /src/openweave-core/src/test-apps/MockDMPublisher.cpp
    functionUses: 0
    functionsReached:
    - ReferencedTLVData::ReferencedTLVData
    - ExchangeContext*::Close
    - mTestData::Retrieve
    - StartDataListElement
    - EndDataListElement
    - SubscribeResponse
    - StatusResponse
    - printf
    - StatusReport::init
    - ReferencedTLVData::init
    - EndList
    - SuccessOrExit
    - ErrorStr
    - StartDataList
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockDMPublisher::SubscribeIndication(ExchangeContext *aResponseCtx,
      const TopicIdentifier &aTopicId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:301,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:308,1
    - Dst: StatusReport::init
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:310,1
    - Dst: StatusResponse
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:313,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:315,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:324,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - aResponseCtx
    - aPathList
    argTypes:
    - ExchangeContext*
    - ReferencedTLVData
    constantsTouched: []
    func_position:
      end: 327
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 327
    functionName: MockDMPublisher::SubscribeIndication
    functionSourceFile: /src/openweave-core/src/test-apps/MockDMPublisher.cpp
    functionUses: 0
    functionsReached:
    - ExchangeContext*::Close
    - StatusResponse
    - printf
    - StatusReport::init
    - ErrorStr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockDMPublisher::SubscribeIndication(ExchangeContext *aResponseCtx,
      ReferencedTLVData &aPathList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - aClientId
    - aTopicId
    - aReport
    argTypes:
    - uint64_t
    - TopicIdentifier
    - StatusReport
    constantsTouched: []
    func_position:
      end: 334
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 334
    functionName: MockDMPublisher::UnsubscribeIndication
    functionSourceFile: /src/openweave-core/src/test-apps/MockDMPublisher.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockDMPublisher::UnsubscribeIndication(const uint64_t &aClientId, const
      TopicIdentifier &aTopicId, StatusReport &aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:341,1
    - Dst: DMPublisher::CancelSubscriptionIndication
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:343,1
    - Dst: SubscriptionTableEmpty
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:345,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - aResponseCtx
    - aTopicId
    argTypes:
    - ExchangeContext*
    - TopicIdentifier
    constantsTouched: []
    func_position:
      end: 349
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 349
    functionName: MockDMPublisher::CancelSubscriptionIndication
    functionSourceFile: /src/openweave-core/src/test-apps/MockDMPublisher.cpp
    functionUses: 0
    functionsReached:
    - printf
    - DMPublisher::CancelSubscriptionIndication
    - SubscriptionTableEmpty
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockDMPublisher::CancelSubscriptionIndication(ExchangeContext *aResponseCtx,
      const TopicIdentifier &aTopicId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:355,1
    - Dst: DMPublisher::NotifyConfirm
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:357,1
    - Dst: EndSubscription
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - aResponderId
    - aTopicId
    - aStatus
    - aTxnId
    argTypes:
    - uint64_t
    - TopicIdentifier
    - StatusReport
    - uint16_t
    constantsTouched: []
    func_position:
      end: 363
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 363
    functionName: MockDMPublisher::NotifyConfirm
    functionSourceFile: /src/openweave-core/src/test-apps/MockDMPublisher.cpp
    functionUses: 0
    functionsReached:
    - printf
    - EndSubscription
    - DMPublisher::NotifyConfirm
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockDMPublisher::NotifyConfirm(const uint64_t &aResponderId, const
      TopicIdentifier &aTopicId, StatusReport &aStatus, uint16_t aTxnId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:371,1
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:374,1
    - Dst: SubscriptionTableEmpty
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:380,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:382,1
    - Dst: ChangeProfileData
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:384,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:388,1
    - Dst: StartPathList
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:390,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:391,1
    - Dst: EncodePath
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:393,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:393,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:394,1
    - Dst: EndList
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:396,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:397,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:399,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:400,1
    - Dst: ReferencedTLVData::init
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:402,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:402,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:403,1
    - Dst: ReferencedTLVData::init
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:405,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:406,1
    - Dst: Retrieve
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:408,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:409,1
    - Dst: NotifyRequest
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:413,1
    - Dst: RevertProfileData
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:420,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:422,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/MockDMPublisher.cpp:422,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 426
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 426
    functionName: MockDMPublisher::Republish
    functionSourceFile: /src/openweave-core/src/test-apps/MockDMPublisher.cpp
    functionUses: 0
    functionsReached:
    - ReferencedTLVData::ReferencedTLVData
    - StartPathList
    - TLVWriter::Finalize
    - ChangeProfileData
    - ContextTag
    - RevertProfileData
    - EncodePath
    - printf
    - SuccessOrExit
    - ReferencedTLVData::init
    - EndList
    - SubscriptionTableEmpty
    - TLVWriter::GetLengthWritten
    - Retrieve
    - TLVWriter::Init
    - NotifyRequest
    - ErrorStr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockDMPublisher::Republish(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitToolCommon
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:139,1
    - Dst: SetSIGUSR1Handler
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:141,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:150,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:151,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:154,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:155,1
    - Dst: ResolveWeaveNetworkOptions
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:156,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:158,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:161,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:163,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:165,1
    - Dst: NewBinding
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:170,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:173,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:176,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:176,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:177,1
    - Dst: Binding*::Release
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:181,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:186,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:189,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:189,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:190,1
    - Dst: PrintNodeConfig
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:197,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:201,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:203,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:204,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:206,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:207,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:209,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:210,1
    - Dst: SetConfiguration
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:212,1
    - Dst: SetRequestAck
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:213,1
    - Dst: SetSubscriptionState
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:214,1
    - Dst: StartHeartbeat
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:216,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:219,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:219,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:220,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:225,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:234,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:240,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:241,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:243,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:244,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:245,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 66
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 248
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 248
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/weave-heartbeat.cpp
    functionUses: 0
    functionsReached:
    - InitToolCommon
    - ShutdownSystemLayer
    - InitWeaveStack
    - printf
    - SetConfiguration
    - Binding*::Release
    - exit
    - ServiceNetwork
    - ParseArgsFromEnvVar
    - StartHeartbeat
    - ResolveWeaveNetworkOptions
    - SetRequestAck
    - ShutdownWeaveStack
    - ParseArgs
    - NewBinding
    - InitNetwork
    - SetSubscriptionState
    - PrintBriefUsage
    - Shutdown
    - ErrorStr
    - PrintNodeConfig
    - InitSystemLayer
    - SetSIGUSR1Handler
    - ShutdownNetwork
    - Init
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:258,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:260,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:265,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:267,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:272,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:274,1
    - Dst: ParseDestAddress
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:279,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:286,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:290,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 295
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 295
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/weave-heartbeat.cpp
    functionUses: 0
    functionsReached:
    - ParseDestAddress
    - PrintArgError
    - ParseInt
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:305,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:311,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:323,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:325,1
    - Dst: ParseDestAddress
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:329,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:337,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 343
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 343
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/test-apps/weave-heartbeat.cpp
    functionUses: 0
    functionsReached:
    - ParseDestAddress
    - PrintArgError
    - ParseNodeId
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:348,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:350,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - destId
    - destAddr
    - state
    - err
    argTypes:
    - uint64_t
    - IPAddress
    - uint8_t
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 353
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 353
    functionName: HandleHeartbeatSent
    functionSourceFile: /src/openweave-core/src/test-apps/weave-heartbeat.cpp
    functionUses: 0
    functionsReached:
    - printf
    - IPAddress::ToString
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleHeartbeatSent(uint64_t destId, IPAddress destAddr, uint8_t state,
      WEAVE_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveMessageInfo*::InPacketInfo::SrcAddress::ToString
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:358,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:360,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - aMsgInfo
    - nodeState
    - err
    argTypes:
    - WeaveMessageInfo*
    - uint8_t
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 363
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 363
    functionName: HandleHeartbeatReceived
    functionSourceFile: /src/openweave-core/src/test-apps/weave-heartbeat.cpp
    functionUses: 0
    functionsReached:
    - printf
    - WeaveMessageInfo*::InPacketInfo::SrcAddress::ToString
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleHeartbeatReceived(const WeaveMessageInfo *aMsgInfo, uint8_t nodeState,
      WEAVE_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseHostPortAndInterface
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:373,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:373,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:376,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:380,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:382,1
    - Dst: InterfaceNameToId
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:388,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - progName
    - arg
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 399
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 399
    functionName: ParseDestAddress
    functionSourceFile: /src/openweave-core/src/test-apps/weave-heartbeat.cpp
    functionUses: 2
    functionsReached:
    - ParseHostPortAndInterface
    - InterfaceNameToId
    - nl::Inet::IPAddress::FromString
    - strlen
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: ParseDestAddress(const char *progName, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveHeartbeatSender*::GetBinding
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:404,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:409,1
    - Dst: Binding*::GetPeerNodeId
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:410,1
    - Dst: WeaveHeartbeatSender*::GetSubscriptionState
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:410,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:414,1
    - Dst: Binding*::GetPeerNodeId
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:415,1
    - Dst: WeaveHeartbeatSender*::GetSubscriptionState
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:415,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:416,1
    - Dst: nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::DefaultEventHandler
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - appState
    - eventType
    - ' inParam'
    - ' outParam'
    argTypes:
    - void*
    - WeaveHeartbeatSender::EventType
    - WeaveHeartbeatSender::InEventParam
    - WeaveHeartbeatSender::OutEventParam
    constantsTouched: []
    func_position:
      end: 423
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 423
    functionName: HeartbeatSenderEventHandler
    functionSourceFile: /src/openweave-core/src/test-apps/weave-heartbeat.cpp
    functionUses: 0
    functionsReached:
    - WeaveHeartbeatSender*::GetBinding
    - Binding*::GetPeerNodeId
    - printf
    - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::DefaultEventHandler
    - ErrorStr
    - WeaveHeartbeatSender*::GetSubscriptionState
    linkageType: ''
    returnType: void
    signature: HeartbeatSenderEventHandler(void *appState, WeaveHeartbeatSender::EventType
      eventType, const WeaveHeartbeatSender::InEventParam& inParam, WeaveHeartbeatSender::OutEventParam&
      outParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Source::BeginConfiguration
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:431,1
    - Dst: GetWRMPConfig
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:434,1
    - Dst: Binding::Configuration::TargetAddress_IP
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:438,1
    - Dst: Binding::Configuration::PrepareBinding
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:440,1
    - Dst: nl::Weave::Binding::DefaultEventHandler
      Src: /src/openweave-core/src/test-apps/weave-heartbeat.cpp:444,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - appState
    - eventType
    - ' inParam'
    - ' outParam'
    argTypes:
    - void*
    - Binding::EventType
    - Binding::InEventParam
    - Binding::OutEventParam
    constantsTouched: []
    func_position:
      end: 447
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 447
    functionName: BindingEventHandler
    functionSourceFile: /src/openweave-core/src/test-apps/weave-heartbeat.cpp
    functionUses: 0
    functionsReached:
    - GetWRMPConfig
    - Binding::Configuration::TargetAddress_IP
    - nl::Weave::Binding::DefaultEventHandler
    - Binding::Configuration::PrepareBinding
    - Source::BeginConfiguration
    linkageType: ''
    returnType: void
    signature: BindingEventHandler(void *appState, Binding::EventType eventType, const
      Binding::InEventParam& inParam, Binding::OutEventParam& outParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned int>
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:103,1
    - Dst: rand
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: nl::Weave::System::TestObject::Init
    functionSourceFile: /src/openweave-core/src/test-apps/TestSystemObject.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned int>
    - rand
    linkageType: ''
    returnType: Error
    signature: TestObject::Init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestContext*>
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:123,1
    - Dst: Layer::Init
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:127,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:128,1
    - Dst: TryCreate
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:132,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:134,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:137,1
    - Dst: TestObject*::IsRetained
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:137,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:138,1
    - Dst: TestObject*::SystemLayer
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:138,1
    - Dst: TestObject*::Init
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:140,1
    - Dst: Get
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:144,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:148,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:152,1
    - Dst: TestObject*::Retain
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:153,1
    - Dst: Get
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:160,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:162,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:166,1
    - Dst: TestObject*::IsRetained
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:166,1
    - Dst: TestObject*::Release
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:167,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:170,1
    - Dst: TestObject*::IsRetained
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:170,1
    - Dst: TestObject*::Release
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:171,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:172,1
    - Dst: TestObject*::IsRetained
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:172,1
    - Dst: Get
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:177,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:179,1
    - Dst: Layer::Shutdown
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:182,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - inSuite
    - aContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 183
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 183
    functionName: nl::Weave::System::TestObject::CheckRetention
    functionSourceFile: /src/openweave-core/src/test-apps/TestSystemObject.cpp
    functionUses: 0
    functionsReached:
    - TestObject*::SystemLayer
    - static_cast<TestContext*>
    - Layer::Init
    - NL_TEST_ASSERT
    - TestObject*::IsRetained
    - TestObject*::Retain
    - memset
    - Get
    - TryCreate
    - Layer::Shutdown
    - TestObject*::Release
    - TestObject*::Init
    linkageType: ''
    returnType: void
    signature: TestObject::CheckRetention(nlTestSuite* inSuite, void* aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' aAccumulator'
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 204
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 204
    functionName: nl::Weave::System::TestObject::Delay
    functionSourceFile: /src/openweave-core/src/test-apps/TestSystemObject.cpp
    functionUses: 0
    functionsReached:
    - rand
    linkageType: ''
    returnType: void
    signature: TestObject::Delay(volatile unsigned int& aAccumulator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestContext*>
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:210,1
    - Dst: Layer::Init
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:214,1
    - Dst: TryCreate
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:222,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:225,1
    - Dst: TestObject*::IsRetained
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:225,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:226,1
    - Dst: TestObject*::SystemLayer
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:226,1
    - Dst: TestObject*::Init
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:228,1
    - Dst: TestObject*::Delay
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:229,1
    - Dst: Get
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:235,1
    - Dst: TestObject*::Release
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:239,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:240,1
    - Dst: TestObject*::IsRetained
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:240,1
    - Dst: TryCreate
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:253,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:256,1
    - Dst: TestObject*::IsRetained
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:256,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:257,1
    - Dst: TestObject*::SystemLayer
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:257,1
    - Dst: TestObject*::Init
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:259,1
    - Dst: TestObject*::Delay
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:260,1
    - Dst: Get
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:266,1
    - Dst: TestObject*::Release
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:270,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:271,1
    - Dst: TestObject*::IsRetained
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:271,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:275,1
    - Dst: Get
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:282,1
    - Dst: TestObject*::Release
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:286,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:287,1
    - Dst: TestObject*::IsRetained
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:287,1
    - Dst: Layer::Shutdown
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:290,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 1
    argNames:
    - aContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 293
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 293
    functionName: nl::Weave::System::TestObject::CheckConcurrencyThread
    functionSourceFile: /src/openweave-core/src/test-apps/TestSystemObject.cpp
    functionUses: 0
    functionsReached:
    - TestObject*::SystemLayer
    - static_cast<TestContext*>
    - Layer::Init
    - NL_TEST_ASSERT
    - TestObject*::IsRetained
    - TestObject*::Delay
    - Get
    - TryCreate
    - Layer::Shutdown
    - TestObject*::Release
    - TestObject*::Init
    linkageType: ''
    returnType: void
    signature: '* TestObject::CheckConcurrencyThread(void* aContext)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestContext*>
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:297,1
    - Dst: rand
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:302,1
    - Dst: UpdateHighWatermark
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:304,1
    - Dst: GetStatistics
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:306,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:308,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - aContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 315
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 315
    functionName: nl::Weave::System::TestObject::CheckHighWatermarkThread
    functionSourceFile: /src/openweave-core/src/test-apps/TestSystemObject.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestContext*>
    - NL_TEST_ASSERT
    - GetStatistics
    - printf
    - rand
    - UpdateHighWatermark
    linkageType: ''
    returnType: void
    signature: '* TestObject::CheckHighWatermarkThread(void* aContext)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestContext*>
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:319,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:322,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:328,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - inSuite
    - aContext
    - (*aStartRoutine) (void *)
    argTypes:
    - nlTestSuite*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 337
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 337
    functionName: nl::Weave::System::TestObject::MultithreadedTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestSystemObject.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestContext*>
    - NL_TEST_ASSERT
    - memset
    linkageType: ''
    returnType: void
    signature: TestObject::MultithreadedTest(nlTestSuite* inSuite, void* aContext,
      void *(*aStartRoutine) (void *))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::TestObject::MultithreadedTest
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - aContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 346
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 346
    functionName: nl::Weave::System::TestObject::CheckConcurrency
    functionSourceFile: /src/openweave-core/src/test-apps/TestSystemObject.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::TestObject::MultithreadedTest
    linkageType: ''
    returnType: void
    signature: TestObject::CheckConcurrency(nlTestSuite* inSuite, void* aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::TestObject::MultithreadedTest
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - inSuite
    - aContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 356
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 356
    functionName: nl::Weave::System::TestObject::CheckHighWatermarkConcurrency
    functionSourceFile: /src/openweave-core/src/test-apps/TestSystemObject.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::TestObject::MultithreadedTest
    linkageType: ''
    returnType: void
    signature: TestObject::CheckHighWatermarkConcurrency(nlTestSuite* inSuite, void*
      aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:360,1
    - Dst: static_cast<TestContext*>
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:364,1
    - Dst: Layer::Init
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:370,1
    - Dst: TryCreate
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:377,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:379,1
    - Dst: TestObject*::IsRetained
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:379,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:380,1
    - Dst: TestObject*::SystemLayer
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:380,1
    - Dst: GetStatistics
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:382,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:383,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:384,1
    - Dst: TestObject*::Init
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:386,1
    - Dst: TryCreate
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:391,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:392,1
    - Dst: GetStatistics
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:394,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:395,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:396,1
    - Dst: Get
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:403,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:405,1
    - Dst: TestObject*::Release
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:407,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:408,1
    - Dst: TestObject*::IsRetained
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:408,1
    - Dst: GetStatistics
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:410,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:411,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:412,1
    - Dst: TryCreate
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:420,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:422,1
    - Dst: TestObject*::IsRetained
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:422,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:423,1
    - Dst: TestObject*::SystemLayer
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:423,1
    - Dst: GetStatistics
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:425,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:426,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:427,1
    - Dst: TestObject*::Init
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:429,1
    - Dst: Get
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:437,1
    - Dst: TestObject*::Release
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:441,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:442,1
    - Dst: TestObject*::IsRetained
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:442,1
    - Dst: Layer::Shutdown
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:445,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 2
    argNames:
    - inSuite
    - aContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 446
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 446
    functionName: nl::Weave::System::TestObject::CheckHighWatermark
    functionSourceFile: /src/openweave-core/src/test-apps/TestSystemObject.cpp
    functionUses: 0
    functionsReached:
    - TestObject*::SystemLayer
    - static_cast<TestContext*>
    - Layer::Init
    - NL_TEST_ASSERT
    - TestObject*::IsRetained
    - memset
    - GetStatistics
    - Get
    - TryCreate
    - Layer::Shutdown
    - TestObject*::Release
    - TestObject*::Init
    linkageType: ''
    returnType: void
    signature: TestObject::CheckHighWatermark(nlTestSuite* inSuite, void* aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<TestContext*>
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:468,1
    - Dst: sys_mbox_new
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - aContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 487
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 487
    functionName: nl::Weave::System::Initialize
    functionSourceFile: /src/openweave-core/src/test-apps/TestSystemObject.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<TestContext*>
    - sys_mbox_new
    linkageType: ''
    returnType: int
    signature: Initialize(void* aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<TestContext*>
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 499
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 499
    functionName: nl::Weave::System::Finalize
    functionSourceFile: /src/openweave-core/src/test-apps/TestSystemObject.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<TestContext*>
    linkageType: ''
    returnType: int
    signature: Finalize(void* aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: srand
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:516,1
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:519,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:522,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestSystemObject.cpp:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 525
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 525
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestSystemObject.cpp
    functionUses: 0
    functionsReached:
    - srand
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - WeaveGroupKey
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: ClearSecretKeyMaterial
    functionSourceFile: /src/openweave-core/src/test-apps/TestAppKeys.cpp
    functionUses: 0
    functionsReached:
    - ClearSecretData
    linkageType: ''
    returnType: void
    signature: ClearSecretKeyMaterial(WeaveGroupKey& key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestGroupKeyStore::TestGroupKeyStore
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:66,1
    - Dst: TestGroupKeyStore::GetGroupKey
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:73,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:74,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:75,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:76,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:79,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:80,1
    - Dst: nl::Weave::Crypto::HKDF<H>::DeriveKey
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:84,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:89,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:90,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:90,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:93,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:93,1
    - Dst: ClearSecretKeyMaterial
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:95,1
    - Dst: TestGroupKeyStore::GetGroupKey
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:99,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:100,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:101,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:102,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:105,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:106,1
    - Dst: nl::Weave::Crypto::HKDF<H>::DeriveKey
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:110,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:115,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:116,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:116,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:119,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:119,1
    - Dst: ClearSecretKeyMaterial
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:121,1
    - Dst: TestGroupKeyStore::GetGroupKey
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:125,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:126,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:127,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:128,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:129,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:129,1
    - Dst: ClearSecretKeyMaterial
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:131,1
    - Dst: TestGroupKeyStore::GetGroupKey
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:135,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 137
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 137
    functionName: DeriveAppRootKey_Test
    functionSourceFile: /src/openweave-core/src/test-apps/TestAppKeys.cpp
    functionUses: 0
    functionsReached:
    - DumpMemoryCStyle
    - memcmp
    - NL_TEST_ASSERT
    - TestGroupKeyStore::TestGroupKeyStore
    - TestGroupKeyStore::GetGroupKey
    - nl::Weave::Crypto::HKDF<H>::DeriveKey
    - printf
    - ClearSecretKeyMaterial
    linkageType: ''
    returnType: void
    signature: DeriveAppRootKey_Test(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestGroupKeyStore::TestGroupKeyStore
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:142,1
    - Dst: TestGroupKeyStore::GetGroupKey
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:148,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:149,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:152,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:153,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:157,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:158,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:159,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:159,1
    - Dst: ClearSecretKeyMaterial
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:161,1
    - Dst: TestGroupKeyStore::GetGroupKey
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:166,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:167,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:169,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:170,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:171,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:171,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:172,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:173,1
    - Dst: TestGroupKeyStore::TestValue_LastUsedEpochKeyId
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:173,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:174,1
    - Dst: TestGroupKeyStore::TestValue_NextEpochKeyStartTime
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:174,1
    - Dst: ClearSecretKeyMaterial
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:176,1
    - Dst: TestGroupKeyStore::GetGroupKey
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:181,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:182,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:184,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:185,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:186,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:186,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:187,1
    - Dst: TestGroupKeyStore::TestValue_LastUsedEpochKeyId
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:187,1
    - Dst: ClearSecretKeyMaterial
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 190
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 190
    functionName: DeriveAppIntermediateKey_Test
    functionSourceFile: /src/openweave-core/src/test-apps/TestAppKeys.cpp
    functionUses: 0
    functionsReached:
    - DumpMemoryCStyle
    - memcmp
    - NL_TEST_ASSERT
    - TestGroupKeyStore::TestGroupKeyStore
    - TestGroupKeyStore::TestValue_LastUsedEpochKeyId
    - TestGroupKeyStore::GetGroupKey
    - TestGroupKeyStore::TestValue_NextEpochKeyStartTime
    - printf
    - ClearSecretKeyMaterial
    linkageType: ''
    returnType: void
    signature: DeriveAppIntermediateKey_Test(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestGroupKeyStore::TestGroupKeyStore
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:195,1
    - Dst: TestGroupKeyStore::DeriveApplicationKey
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:203,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:206,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:207,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:210,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:211,1
    - Dst: nl::Weave::Crypto::HKDF<H>::DeriveKey
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:215,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:220,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:222,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:222,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:225,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:226,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 227
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 227
    functionName: DeriveAppStaticKey_Test
    functionSourceFile: /src/openweave-core/src/test-apps/TestAppKeys.cpp
    functionUses: 0
    functionsReached:
    - DumpMemoryCStyle
    - memcmp
    - NL_TEST_ASSERT
    - TestGroupKeyStore::TestGroupKeyStore
    - nl::Weave::Crypto::HKDF<H>::DeriveKey
    - printf
    - TestGroupKeyStore::DeriveApplicationKey
    linkageType: ''
    returnType: void
    signature: DeriveAppStaticKey_Test(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestGroupKeyStore::TestGroupKeyStore
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:232,1
    - Dst: TestGroupKeyStore::DeriveApplicationKey
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:241,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:244,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:245,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:248,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:249,1
    - Dst: nl::Weave::Crypto::HKDF<H>::DeriveKey
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:253,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:258,1
    - Dst: nl::Weave::Crypto::HKDF<H>::DeriveKey
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:260,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:265,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:267,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:267,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:270,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:271,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 272
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 272
    functionName: DeriveAppRotatingKey_Test
    functionSourceFile: /src/openweave-core/src/test-apps/TestAppKeys.cpp
    functionUses: 0
    functionsReached:
    - DumpMemoryCStyle
    - memcmp
    - NL_TEST_ASSERT
    - TestGroupKeyStore::TestGroupKeyStore
    - nl::Weave::Crypto::HKDF<H>::DeriveKey
    - printf
    - TestGroupKeyStore::DeriveApplicationKey
    linkageType: ''
    returnType: void
    signature: DeriveAppRotatingKey_Test(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestGroupKeyStore::TestGroupKeyStore
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:277,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put32
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:287,1
    - Dst: TestGroupKeyStore::DeriveApplicationKey
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:288,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:291,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:292,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:293,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:293,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:294,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:297,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:298,1
    - Dst: nl::Weave::Crypto::HKDF<H>::DeriveKey
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:302,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:307,1
    - Dst: nl::Weave::Crypto::HKDF<H>::DeriveKey
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:309,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:314,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:315,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:315,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put32
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:320,1
    - Dst: TestGroupKeyStore::DeriveApplicationKey
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:321,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:324,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:325,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:326,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:326,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:327,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:330,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:331,1
    - Dst: nl::Weave::Crypto::HKDF<H>::DeriveKey
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:335,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:340,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:341,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:341,1
    - Dst: TestGroupKeyStore::DeriveApplicationKey
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:346,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:349,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:350,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:351,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:351,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:352,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:355,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:356,1
    - Dst: nl::Weave::Crypto::HKDF<H>::DeriveKey
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:360,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:365,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:366,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 367
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 367
    functionName: DerivePasscodeKeys_Test
    functionSourceFile: /src/openweave-core/src/test-apps/TestAppKeys.cpp
    functionUses: 0
    functionsReached:
    - DumpMemoryCStyle
    - memcmp
    - NL_TEST_ASSERT
    - TestGroupKeyStore::TestGroupKeyStore
    - nl::Weave::Encoding::LittleEndian::Put32
    - nl::Weave::Crypto::HKDF<H>::DeriveKey
    - printf
    - TestGroupKeyStore::DeriveApplicationKey
    linkageType: ''
    returnType: void
    signature: DerivePasscodeKeys_Test(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestGroupKeyStore::TestGroupKeyStore
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:372,1
    - Dst: GetAppGroupMasterKeyId
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:378,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:379,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:380,1
    - Dst: GetAppGroupMasterKeyId
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:387,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:388,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:389,1
    - Dst: GetAppGroupMasterKeyId
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:396,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:397,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:398,1
    - Dst: GetAppGroupMasterKeyId
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:405,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:406,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 408
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 408
    functionName: GetAppGroupMasterKeyId_Test
    functionSourceFile: /src/openweave-core/src/test-apps/TestAppKeys.cpp
    functionUses: 0
    functionsReached:
    - GetAppGroupMasterKeyId
    - NL_TEST_ASSERT
    - TestGroupKeyStore::TestGroupKeyStore
    linkageType: ''
    returnType: void
    signature: GetAppGroupMasterKeyId_Test(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_DEF
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:414,1
    - Dst: NL_TEST_DEF
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:415,1
    - Dst: NL_TEST_DEF
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:416,1
    - Dst: NL_TEST_DEF
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:417,1
    - Dst: NL_TEST_DEF
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:418,1
    - Dst: NL_TEST_DEF
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:419,1
    - Dst: NL_TEST_SENTINEL
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:420,1
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:428,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:430,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestAppKeys.cpp:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 433
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 433
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestAppKeys.cpp
    functionUses: 0
    functionsReached:
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    - NL_TEST_DEF
    - NL_TEST_SENTINEL
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::RegisterSystemLayerErrorFormatter
      Src: /src/openweave-core/src/test-apps/TestErrorStr.cpp:320,1
    - Dst: nl::Inet::RegisterInetLayerErrorFormatter
      Src: /src/openweave-core/src/test-apps/TestErrorStr.cpp:321,1
    - Dst: nl::Ble::RegisterBleLayerErrorFormatter
      Src: /src/openweave-core/src/test-apps/TestErrorStr.cpp:322,1
    - Dst: snprintf
      Src: /src/openweave-core/src/test-apps/TestErrorStr.cpp:332,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestErrorStr.cpp:333,1
    - Dst: strstr
      Src: /src/openweave-core/src/test-apps/TestErrorStr.cpp:333,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestErrorStr.cpp:338,1
    - Dst: strchr
      Src: /src/openweave-core/src/test-apps/TestErrorStr.cpp:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 341
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 341
    functionName: CheckErrorStrStart
    functionSourceFile: /src/openweave-core/src/test-apps/TestErrorStr.cpp
    functionUses: 0
    functionsReached:
    - strstr
    - nl::Ble::RegisterBleLayerErrorFormatter
    - nl::Weave::System::RegisterSystemLayerErrorFormatter
    - NL_TEST_ASSERT
    - nl::Inet::RegisterInetLayerErrorFormatter
    - strchr
    - snprintf
    linkageType: ''
    returnType: void
    signature: CheckErrorStrStart(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 360
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 360
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestErrorStr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestSetup(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestErrorStr.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestTeardown(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestErrorStr.cpp:382,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestErrorStr.cpp:385,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestErrorStr.cpp:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 388
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 388
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestErrorStr.cpp
    functionUses: 0
    functionsReached:
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearCallbackRecords
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:175,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:178,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:179,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:180,1
    - Dst: VerifyHandleOptionCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:181,1
    - Dst: VerifyHandleNonOptionArgsCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 183
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 183
    functionName: SimpleParseTest_SingleLongOption
    functionSourceFile: /src/openweave-core/src/test-apps/TestArgParser.cpp
    functionUses: 0
    functionsReached:
    - ParseArgs
    - VerifyOrQuit
    - ClearCallbackRecords
    - VerifyHandleOptionCallback
    - VerifyHandleNonOptionArgsCallback
    linkageType: ''
    returnType: void
    signature: SimpleParseTest_SingleLongOption()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearCallbackRecords
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:203,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:206,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:207,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:208,1
    - Dst: VerifyHandleOptionCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:209,1
    - Dst: VerifyHandleNonOptionArgsCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 211
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 211
    functionName: SimpleParseTest_SingleShortOption
    functionSourceFile: /src/openweave-core/src/test-apps/TestArgParser.cpp
    functionUses: 0
    functionsReached:
    - ParseArgs
    - VerifyOrQuit
    - ClearCallbackRecords
    - VerifyHandleOptionCallback
    - VerifyHandleNonOptionArgsCallback
    linkageType: ''
    returnType: void
    signature: SimpleParseTest_SingleShortOption()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearCallbackRecords
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:231,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:234,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:235,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:236,1
    - Dst: VerifyHandleOptionCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:237,1
    - Dst: VerifyHandleNonOptionArgsCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 239
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 239
    functionName: SimpleParseTest_SingleLongOptionWithValue
    functionSourceFile: /src/openweave-core/src/test-apps/TestArgParser.cpp
    functionUses: 0
    functionsReached:
    - ParseArgs
    - VerifyOrQuit
    - ClearCallbackRecords
    - VerifyHandleOptionCallback
    - VerifyHandleNonOptionArgsCallback
    linkageType: ''
    returnType: void
    signature: SimpleParseTest_SingleLongOptionWithValue()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearCallbackRecords
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:259,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:262,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:263,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:264,1
    - Dst: VerifyHandleOptionCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:265,1
    - Dst: VerifyHandleNonOptionArgsCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 267
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 267
    functionName: SimpleParseTest_SingleShortOptionWithValue
    functionSourceFile: /src/openweave-core/src/test-apps/TestArgParser.cpp
    functionUses: 0
    functionsReached:
    - ParseArgs
    - VerifyOrQuit
    - ClearCallbackRecords
    - VerifyHandleOptionCallback
    - VerifyHandleNonOptionArgsCallback
    linkageType: ''
    returnType: void
    signature: SimpleParseTest_SingleShortOptionWithValue()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearCallbackRecords
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:296,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:299,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:300,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:301,1
    - Dst: VerifyHandleOptionCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:302,1
    - Dst: VerifyHandleOptionCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:303,1
    - Dst: VerifyHandleOptionCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:304,1
    - Dst: VerifyHandleOptionCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:305,1
    - Dst: VerifyHandleOptionCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:306,1
    - Dst: VerifyHandleOptionCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:307,1
    - Dst: VerifyHandleOptionCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:308,1
    - Dst: VerifyHandleNonOptionArgsCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:309,1
    - Dst: VerifyNonOptionArg
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:310,1
    - Dst: VerifyNonOptionArg
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:311,1
    - Dst: VerifyNonOptionArg
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:312,1
    - Dst: VerifyNonOptionArg
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 314
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 314
    functionName: SimpleParseTest_VariousShortAndLongWithArgs
    functionSourceFile: /src/openweave-core/src/test-apps/TestArgParser.cpp
    functionUses: 0
    functionsReached:
    - VerifyNonOptionArg
    - ParseArgs
    - VerifyOrQuit
    - ClearCallbackRecords
    - VerifyHandleOptionCallback
    - VerifyHandleNonOptionArgsCallback
    linkageType: ''
    returnType: void
    signature: SimpleParseTest_VariousShortAndLongWithArgs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearCallbackRecords
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:338,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:341,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:342,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:343,1
    - Dst: VerifyHandleOptionCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:344,1
    - Dst: VerifyHandleOptionCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:345,1
    - Dst: VerifyPrintArgErrorCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:346,1
    - Dst: VerifyArgErrorContains
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:347,1
    - Dst: VerifyArgErrorContains
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 349
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 349
    functionName: UnknownOptionTest_UnknownShortOption
    functionSourceFile: /src/openweave-core/src/test-apps/TestArgParser.cpp
    functionUses: 0
    functionsReached:
    - ParseArgs
    - VerifyOrQuit
    - ClearCallbackRecords
    - VerifyHandleOptionCallback
    - VerifyPrintArgErrorCallback
    - VerifyArgErrorContains
    linkageType: ''
    returnType: void
    signature: UnknownOptionTest_UnknownShortOption()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearCallbackRecords
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:373,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:376,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:377,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:378,1
    - Dst: VerifyHandleOptionCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:379,1
    - Dst: VerifyHandleOptionCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:380,1
    - Dst: VerifyPrintArgErrorCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:381,1
    - Dst: VerifyArgErrorContains
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:382,1
    - Dst: VerifyArgErrorContains
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 384
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 384
    functionName: UnknownOptionTest_UnknownLongOption
    functionSourceFile: /src/openweave-core/src/test-apps/TestArgParser.cpp
    functionUses: 0
    functionsReached:
    - ParseArgs
    - VerifyOrQuit
    - ClearCallbackRecords
    - VerifyHandleOptionCallback
    - VerifyPrintArgErrorCallback
    - VerifyArgErrorContains
    linkageType: ''
    returnType: void
    signature: UnknownOptionTest_UnknownLongOption()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearCallbackRecords
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:408,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:411,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:412,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:413,1
    - Dst: VerifyHandleOptionCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:414,1
    - Dst: VerifyHandleOptionCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:415,1
    - Dst: VerifyHandleOptionCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:416,1
    - Dst: VerifyPrintArgErrorCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:417,1
    - Dst: VerifyArgErrorContains
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:418,1
    - Dst: VerifyArgErrorContains
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 420
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 420
    functionName: UnknownOptionTest_UnknownShortOptionAfterKnown
    functionSourceFile: /src/openweave-core/src/test-apps/TestArgParser.cpp
    functionUses: 0
    functionsReached:
    - ParseArgs
    - VerifyOrQuit
    - ClearCallbackRecords
    - VerifyHandleOptionCallback
    - VerifyPrintArgErrorCallback
    - VerifyArgErrorContains
    linkageType: ''
    returnType: void
    signature: UnknownOptionTest_UnknownShortOptionAfterKnown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearCallbackRecords
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:440,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:443,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:444,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:445,1
    - Dst: VerifyPrintArgErrorCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:446,1
    - Dst: VerifyArgErrorContains
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:447,1
    - Dst: VerifyArgErrorContains
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 449
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 449
    functionName: UnknownOptionTest_UnknownShortOptionBeforeKnown
    functionSourceFile: /src/openweave-core/src/test-apps/TestArgParser.cpp
    functionUses: 0
    functionsReached:
    - ParseArgs
    - VerifyOrQuit
    - ClearCallbackRecords
    - VerifyPrintArgErrorCallback
    - VerifyArgErrorContains
    linkageType: ''
    returnType: void
    signature: UnknownOptionTest_UnknownShortOptionBeforeKnown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearCallbackRecords
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:471,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:474,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:475,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:476,1
    - Dst: VerifyPrintArgErrorCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:477,1
    - Dst: VerifyArgErrorContains
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:478,1
    - Dst: VerifyArgErrorContains
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 480
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 480
    functionName: UnknownOptionTest_UnknownShortOptionAfterArgs
    functionSourceFile: /src/openweave-core/src/test-apps/TestArgParser.cpp
    functionUses: 0
    functionsReached:
    - ParseArgs
    - VerifyOrQuit
    - ClearCallbackRecords
    - VerifyPrintArgErrorCallback
    - VerifyArgErrorContains
    linkageType: ''
    returnType: void
    signature: UnknownOptionTest_UnknownShortOptionAfterArgs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearCallbackRecords
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:502,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:505,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:506,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:507,1
    - Dst: VerifyPrintArgErrorCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:508,1
    - Dst: VerifyArgErrorContains
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:509,1
    - Dst: VerifyArgErrorContains
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 511
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 511
    functionName: UnknownOptionTest_UnknownLongOptionAfterArgs
    functionSourceFile: /src/openweave-core/src/test-apps/TestArgParser.cpp
    functionUses: 0
    functionsReached:
    - ParseArgs
    - VerifyOrQuit
    - ClearCallbackRecords
    - VerifyPrintArgErrorCallback
    - VerifyArgErrorContains
    linkageType: ''
    returnType: void
    signature: UnknownOptionTest_UnknownLongOptionAfterArgs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearCallbackRecords
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:534,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:537,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:538,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:540,1
    - Dst: VerifyHandleOptionCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:542,1
    - Dst: VerifyHandleNonOptionArgsCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:543,1
    - Dst: VerifyNonOptionArg
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:544,1
    - Dst: VerifyNonOptionArg
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 546
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 546
    functionName: UnknownOptionTest_IgnoreUnknownLongOption
    functionSourceFile: /src/openweave-core/src/test-apps/TestArgParser.cpp
    functionUses: 0
    functionsReached:
    - VerifyNonOptionArg
    - ParseArgs
    - VerifyOrQuit
    - ClearCallbackRecords
    - VerifyHandleOptionCallback
    - VerifyHandleNonOptionArgsCallback
    linkageType: ''
    returnType: void
    signature: UnknownOptionTest_IgnoreUnknownLongOption()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearCallbackRecords
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:569,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:572,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:573,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:575,1
    - Dst: VerifyHandleOptionCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:577,1
    - Dst: VerifyHandleOptionCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:578,1
    - Dst: VerifyHandleNonOptionArgsCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:579,1
    - Dst: VerifyNonOptionArg
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:580,1
    - Dst: VerifyNonOptionArg
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 582
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 582
    functionName: UnknownOptionTest_IgnoreUnknownShortOption
    functionSourceFile: /src/openweave-core/src/test-apps/TestArgParser.cpp
    functionUses: 0
    functionsReached:
    - VerifyNonOptionArg
    - ParseArgs
    - VerifyOrQuit
    - ClearCallbackRecords
    - VerifyHandleOptionCallback
    - VerifyHandleNonOptionArgsCallback
    linkageType: ''
    returnType: void
    signature: UnknownOptionTest_IgnoreUnknownShortOption()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearCallbackRecords
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:602,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:605,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:606,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:607,1
    - Dst: VerifyPrintArgErrorCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:608,1
    - Dst: VerifyArgErrorContains
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:609,1
    - Dst: VerifyArgErrorContains
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 611
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 611
    functionName: MissingValueTest_MissingShortOptionValue
    functionSourceFile: /src/openweave-core/src/test-apps/TestArgParser.cpp
    functionUses: 0
    functionsReached:
    - ParseArgs
    - VerifyOrQuit
    - ClearCallbackRecords
    - VerifyPrintArgErrorCallback
    - VerifyArgErrorContains
    linkageType: ''
    returnType: void
    signature: MissingValueTest_MissingShortOptionValue()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearCallbackRecords
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:631,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:634,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:635,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:636,1
    - Dst: VerifyPrintArgErrorCallback
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:637,1
    - Dst: VerifyArgErrorContains
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:638,1
    - Dst: VerifyArgErrorContains
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 640
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 640
    functionName: MissingValueTest_MissingLongOptionValue
    functionSourceFile: /src/openweave-core/src/test-apps/TestArgParser.cpp
    functionUses: 0
    functionsReached:
    - ParseArgs
    - VerifyOrQuit
    - ClearCallbackRecords
    - VerifyPrintArgErrorCallback
    - VerifyArgErrorContains
    linkageType: ''
    returnType: void
    signature: MissingValueTest_MissingLongOptionValue()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:647,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:649,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:651,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:653,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:655,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 657
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 657
    functionName: ClearCallbackRecords
    functionSourceFile: /src/openweave-core/src/test-apps/TestArgParser.cpp
    functionUses: 15
    functionsReached:
    - free
    - memset
    linkageType: ''
    returnType: void
    signature: ClearCallbackRecords()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:662,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:665,1
    - Dst: strdup
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:667,1
    - Dst: strdup
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:670,1
    - Dst: strdup
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 674
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 674
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/TestArgParser.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrQuit
    - strdup
    - printf
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:679,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:688,1
    - Dst: strdup
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:690,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:696,1
    - Dst: strdup
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 703
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 703
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/test-apps/TestArgParser.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrQuit
    - strdup
    - printf
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:710,1
    - Dst: va_start
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:714,1
    - Dst: vasprintf
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:715,1
    - Dst: va_end
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:717,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 724
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 724
    functionName: HandleArgError
    functionSourceFile: /src/openweave-core/src/test-apps/TestArgParser.cpp
    functionUses: 0
    functionsReached:
    - va_end
    - VerifyOrQuit
    - va_start
    - vasprintf
    - printf
    linkageType: ''
    returnType: void
    signature: HandleArgError(const char *msg, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SimpleParseTest_SingleLongOption
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:728,1
    - Dst: SimpleParseTest_SingleShortOption
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:729,1
    - Dst: SimpleParseTest_SingleLongOptionWithValue
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:730,1
    - Dst: SimpleParseTest_SingleShortOptionWithValue
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:731,1
    - Dst: SimpleParseTest_VariousShortAndLongWithArgs
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:732,1
    - Dst: UnknownOptionTest_UnknownShortOption
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:734,1
    - Dst: UnknownOptionTest_UnknownLongOption
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:735,1
    - Dst: UnknownOptionTest_UnknownShortOptionAfterArgs
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:736,1
    - Dst: UnknownOptionTest_UnknownShortOptionAfterKnown
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:737,1
    - Dst: UnknownOptionTest_UnknownShortOptionBeforeKnown
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:738,1
    - Dst: UnknownOptionTest_UnknownLongOptionAfterArgs
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:739,1
    - Dst: UnknownOptionTest_IgnoreUnknownShortOption
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:740,1
    - Dst: UnknownOptionTest_IgnoreUnknownLongOption
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:741,1
    - Dst: MissingValueTest_MissingShortOptionValue
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:743,1
    - Dst: MissingValueTest_MissingLongOptionValue
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:744,1
    - Dst: ClearCallbackRecords
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:746,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestArgParser.cpp:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 751
      start: 726
    functionDepth: 2
    functionLinenumber: 726
    functionLinenumberEnd: 751
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestArgParser.cpp
    functionUses: 0
    functionsReached:
    - MissingValueTest_MissingLongOptionValue
    - UnknownOptionTest_IgnoreUnknownShortOption
    - SimpleParseTest_SingleShortOptionWithValue
    - ClearCallbackRecords
    - UnknownOptionTest_UnknownShortOption
    - UnknownOptionTest_UnknownShortOptionAfterArgs
    - UnknownOptionTest_UnknownShortOptionAfterKnown
    - printf
    - SimpleParseTest_SingleLongOption
    - UnknownOptionTest_UnknownLongOptionAfterArgs
    - UnknownOptionTest_UnknownShortOptionBeforeKnown
    - SimpleParseTest_SingleLongOptionWithValue
    - UnknownOptionTest_IgnoreUnknownLongOption
    - MissingValueTest_MissingShortOptionValue
    - SimpleParseTest_VariousShortAndLongWithArgs
    - SimpleParseTest_SingleShortOption
    - UnknownOptionTest_UnknownLongOption
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pBuffer
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: refCount
    functionSourceFile: /src/openweave-core/src/test-apps/infratest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: refCount(PacketBuffer *pBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/infratest.cpp:81,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/infratest.cpp:82,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/infratest.cpp:84,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/infratest.cpp:84,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/infratest.cpp:85,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/infratest.cpp:87,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/infratest.cpp:87,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/infratest.cpp:88,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/infratest.cpp:90,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/infratest.cpp:90,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/infratest.cpp:91,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/infratest.cpp:93,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/infratest.cpp:94,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/infratest.cpp:96,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/infratest.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - w
    - a
    argTypes:
    - TLVWriter
    - void*
    constantsTouched: []
    func_position:
      end: 104
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 104
    functionName: testWriter
    functionSourceFile: /src/openweave-core/src/test-apps/infratest.cpp
    functionUses: 0
    functionsReached:
    - TLVWriter::Finalize
    - ProfileTag
    - TLVWriter::EndContainer
    - SuccessOrExit
    - TLVWriter::Put
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: void
    signature: testWriter(TLVWriter &w, void  *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_init
      Src: /src/openweave-core/src/test-apps/infratest.cpp:120,1
    - Dst: WRITEBYTE
      Src: /src/openweave-core/src/test-apps/infratest.cpp:123,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:124,1
    - Dst: READBYTE
      Src: /src/openweave-core/src/test-apps/infratest.cpp:124,1
    - Dst: WRITE16
      Src: /src/openweave-core/src/test-apps/infratest.cpp:127,1
    - Dst: READ16
      Src: /src/openweave-core/src/test-apps/infratest.cpp:128,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:129,1
    - Dst: WRITE32
      Src: /src/openweave-core/src/test-apps/infratest.cpp:132,1
    - Dst: READ32
      Src: /src/openweave-core/src/test-apps/infratest.cpp:133,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:134,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/infratest.cpp:143,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:144,1
    - Dst: refCount
      Src: /src/openweave-core/src/test-apps/infratest.cpp:144,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:147,1
    - Dst: refCount
      Src: /src/openweave-core/src/test-apps/infratest.cpp:147,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:150,1
    - Dst: refCount
      Src: /src/openweave-core/src/test-apps/infratest.cpp:150,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:153,1
    - Dst: refCount
      Src: /src/openweave-core/src/test-apps/infratest.cpp:153,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:163,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:167,1
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/test-apps/infratest.cpp:167,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:171,1
    - Dst: MessageIterator::writeByte
      Src: /src/openweave-core/src/test-apps/infratest.cpp:171,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:172,1
    - Dst: MessageIterator::hasData
      Src: /src/openweave-core/src/test-apps/infratest.cpp:172,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:176,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:177,1
    - Dst: MessageIterator::readByte
      Src: /src/openweave-core/src/test-apps/infratest.cpp:177,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:181,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:182,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:186,1
    - Dst: MessageIterator::write16
      Src: /src/openweave-core/src/test-apps/infratest.cpp:186,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:187,1
    - Dst: MessageIterator::hasData
      Src: /src/openweave-core/src/test-apps/infratest.cpp:187,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:188,1
    - Dst: MessageIterator::read16
      Src: /src/openweave-core/src/test-apps/infratest.cpp:188,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:189,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:193,1
    - Dst: MessageIterator::write32
      Src: /src/openweave-core/src/test-apps/infratest.cpp:193,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:194,1
    - Dst: MessageIterator::hasData
      Src: /src/openweave-core/src/test-apps/infratest.cpp:194,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:195,1
    - Dst: MessageIterator::read32
      Src: /src/openweave-core/src/test-apps/infratest.cpp:195,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:196,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:200,1
    - Dst: MessageIterator::writeString
      Src: /src/openweave-core/src/test-apps/infratest.cpp:200,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:201,1
    - Dst: MessageIterator::hasData
      Src: /src/openweave-core/src/test-apps/infratest.cpp:201,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:202,1
    - Dst: MessageIterator::readString
      Src: /src/openweave-core/src/test-apps/infratest.cpp:202,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:203,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:207,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:208,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:214,1
    - Dst: refCount
      Src: /src/openweave-core/src/test-apps/infratest.cpp:214,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:215,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:216,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:218,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:219,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:221,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:222,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:227,1
    - Dst: refCount
      Src: /src/openweave-core/src/test-apps/infratest.cpp:227,1
    - Dst: MessageIterator::Release
      Src: /src/openweave-core/src/test-apps/infratest.cpp:228,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:229,1
    - Dst: refCount
      Src: /src/openweave-core/src/test-apps/infratest.cpp:229,1
    - Dst: MessageIterator::Release
      Src: /src/openweave-core/src/test-apps/infratest.cpp:230,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:231,1
    - Dst: refCount
      Src: /src/openweave-core/src/test-apps/infratest.cpp:231,1
    - Dst: MessageIterator::Release
      Src: /src/openweave-core/src/test-apps/infratest.cpp:232,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:233,1
    - Dst: refCount
      Src: /src/openweave-core/src/test-apps/infratest.cpp:233,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:238,1
    - Dst: refCount
      Src: /src/openweave-core/src/test-apps/infratest.cpp:238,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:241,1
    - Dst: refCount
      Src: /src/openweave-core/src/test-apps/infratest.cpp:241,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/infratest.cpp:245,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/infratest.cpp:249,1
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/test-apps/infratest.cpp:250,1
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/test-apps/infratest.cpp:251,1
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/test-apps/infratest.cpp:256,1
    - Dst: ReferencedTLVData::init
      Src: /src/openweave-core/src/test-apps/infratest.cpp:258,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:260,1
    - Dst: refCount
      Src: /src/openweave-core/src/test-apps/infratest.cpp:260,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:263,1
    - Dst: refCount
      Src: /src/openweave-core/src/test-apps/infratest.cpp:263,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:265,1
    - Dst: ReferencedTLVData::init
      Src: /src/openweave-core/src/test-apps/infratest.cpp:265,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:266,1
    - Dst: ReferencedTLVData::pack
      Src: /src/openweave-core/src/test-apps/infratest.cpp:266,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:267,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:269,1
    - Dst: ReferencedTLVData::parse
      Src: /src/openweave-core/src/test-apps/infratest.cpp:269,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:270,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:272,1
    - Dst: refCount
      Src: /src/openweave-core/src/test-apps/infratest.cpp:272,1
    - Dst: ReferencedTLVData::free
      Src: /src/openweave-core/src/test-apps/infratest.cpp:276,1
    - Dst: ReferencedTLVData::free
      Src: /src/openweave-core/src/test-apps/infratest.cpp:277,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:278,1
    - Dst: refCount
      Src: /src/openweave-core/src/test-apps/infratest.cpp:278,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:280,1
    - Dst: ReferencedTLVData::isFree
      Src: /src/openweave-core/src/test-apps/infratest.cpp:280,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/infratest.cpp:281,1
    - Dst: ReferencedTLVData::isFree
      Src: /src/openweave-core/src/test-apps/infratest.cpp:281,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/infratest.cpp:285,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 288
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/infratest.cpp
    functionUses: 0
    functionsReached:
    - ReferencedTLVData::parse
    - READ16
    - MessageIterator::hasData
    - MessageIterator::writeString
    - ReferencedTLVData::init
    - READ32
    - tcpip_init
    - nl::Weave::System::PacketBuffer::New
    - nl::Weave::System::PacketBuffer::Free
    - READBYTE
    - WRITEBYTE
    - MessageIterator::write32
    - ReferencedTLVData::ReferencedTLVData
    - MessageIterator::readByte
    - MessageIterator::readString
    - MessageIterator::read32
    - WRITE32
    - MessageIterator::write16
    - assert
    - ReferencedTLVData::isFree
    - MessageIterator::writeByte
    - WRITE16
    - ReferencedTLVData::free
    - MessageIterator::read16
    - MessageIterator::Release
    - ReferencedTLVData::pack
    - refCount
    linkageType: ''
    returnType: int
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: nl::Weave::Profiles::Platform::CriticalSectionEnter
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdm.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionEnter()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: nl::Weave::Profiles::Platform::CriticalSectionExit
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdm.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionExit()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: SubscriptionEngine::GetInstance
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdm.cpp
    functionUses: 93
    functionsReached: []
    linkageType: ''
    returnType: SubscriptionEngine
    signature: '* SubscriptionEngine::GetInstance()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResourceIdentifier
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:151,1
    - Dst: ResourceIdentifier
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: nl::Weave::Profiles::TestWdm::TestWdm
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdm.cpp
    functionUses: 0
    functionsReached:
    - ResourceIdentifier
    linkageType: ''
    returnType: void
    signature: TestWdm::TestWdm()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: nl::Weave::Profiles::TestWdm::SpoofPublisherSubscription
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestWdm::SpoofPublisherSubscription()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestWdm*>
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:172,1
    - Dst: TestWdm*::mClientBinding::BeginConfiguration
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:178,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:184,1
    - Dst: nl::Weave::Binding::DefaultEventHandler
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - apAppState
    - aEventType
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - nl::Weave::Binding::EventType
    - nl::Weave::Binding::InEventParam
    - nl::Weave::Binding::OutEventParam
    constantsTouched: []
    func_position:
      end: 211
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 211
    functionName: nl::Weave::Profiles::TestWdm::BindingEventCallback
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdm.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestWdm*>
    - nl::Weave::Binding::DefaultEventHandler
    - TestWdm*::mClientBinding::BeginConfiguration
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: "TestWdm::BindingEventCallback(void * const apAppState, const nl::Weave::Binding::EventType
      aEventType,\n                                            const nl::Weave::Binding::InEventParam
      & aInParam,\n                                            nl::Weave::Binding::OutEventParam
      & aOutParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestWdm*>
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:219,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:224,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - aAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - SubscriptionClient::EventID
    - SubscriptionClient::InEventParam
    - SubscriptionClient::OutEventParam
    constantsTouched: []
    func_position:
      end: 246
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 246
    functionName: nl::Weave::Profiles::TestWdm::ClientSubscriptionEventCallback
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdm.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestWdm*>
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: "TestWdm::ClientSubscriptionEventCallback (void * const aAppState,\n
      \                                       SubscriptionClient::EventID aEvent,\n
      \                                       const SubscriptionClient::InEventParam
      & aInParam,\n                                        SubscriptionClient::OutEventParam
      & aOutParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestWdm *>
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:253,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - aAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - SubscriptionHandler::EventID
    - SubscriptionHandler::InEventParam
    - SubscriptionHandler::OutEventParam
    constantsTouched: []
    func_position:
      end: 266
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 266
    functionName: nl::Weave::Profiles::TestWdm::PublisherEventCallback
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdm.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestWdm *>
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: "TestWdm::PublisherEventCallback (void * const aAppState,\n        SubscriptionHandler::EventID
      aEvent, const SubscriptionHandler::InEventParam & aInParam,\n        SubscriptionHandler::OutEventParam
      & aOutParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:274,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:275,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:276,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:279,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:280,1
    - Dst: EnablePublisher
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:282,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:283,1
    - Dst: NewSubscriptionHandler
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:286,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:287,1
    - Dst: NewBinding
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:289,1
    - Dst: mBinding::BeginConfiguration
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:290,1
    - Dst: NewBinding
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:295,1
    - Dst: NewClient
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:297,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:298,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 308
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 308
    functionName: nl::Weave::Profiles::TestWdm::Setup
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdm.cpp
    functionUses: 0
    functionsReached:
    - InitSystemLayer
    - WeaveLogError
    - NewBinding
    - NewClient
    - InitNetwork
    - NewSubscriptionHandler
    - InitWeaveStack
    - mBinding::BeginConfiguration
    - Init
    - EnablePublisher
    - SuccessOrExit
    linkageType: ''
    returnType: int
    signature: TestWdm::Setup()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 321
    functionName: nl::Weave::Profiles::TestWdm::Teardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdm.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: int
    signature: TestWdm::Teardown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MoveToState
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:327,1
    - Dst: mGraphSolver::ClearDirty
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 331
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 331
    functionName: nl::Weave::Profiles::TestWdm::Reset
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdm.cpp
    functionUses: 0
    functionsReached:
    - MoveToState
    - mGraphSolver::ClearDirty
    linkageType: ''
    returnType: int
    signature: TestWdm::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetMaxNotificationSize
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:347,1
    - Dst: mBinding::AllocateRightSizedBuffer
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:349,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:350,1
    - Dst: NotificationEngine::NotifyRequestBuilder::Init
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:352,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:353,1
    - Dst: BuildSingleNotifyRequestDataList
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:355,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:356,1
    - Dst: NotificationEngine::NotifyRequestBuilder::MoveToState
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:360,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:361,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:363,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:365,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:366,1
    - Dst: NotificationRequest::Parser::Init
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:368,1
    - Dst: NotificationRequest::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:370,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:371,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:374,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:375,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:378,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:379,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:381,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:382,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:384,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:384,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:386,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:387,1
    - Dst: ProcessDataList
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:389,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:390,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:394,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 403
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 403
    functionName: nl::Weave::Profiles::TestWdm::BuildAndProcessNotify
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdm.cpp
    functionUses: 0
    functionsReached:
    - GetMaxNotificationSize
    - TLVReader::Init
    - ProcessDataList
    - nl::Weave::System::PacketBuffer::Free
    - TLVReader::Next
    - NotificationEngine::NotifyRequestBuilder::Init
    - TLVReader::GetType
    - NotificationEngine::NotifyRequestBuilder::MoveToState
    - VerifyOrExit
    - TLVReader::EnterContainer
    - NotificationRequest::Parser::Init
    - BuildSingleNotifyRequestDataList
    - NotificationRequest::Parser::CheckSchemaValidity
    - WeaveLogDetail
    - SuccessOrExit
    - mBinding::AllocateRightSizedBuffer
    linkageType: ''
    returnType: int
    signature: TestWdm::BuildAndProcessNotify()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestWdm::Reset
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:407,1
    - Dst: nl::Weave::Profiles::TestWdm::SpoofPublisherSubscription
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:410,1
    - Dst: nl::Weave::System::FaultInjection::GetManager
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:417,1
    - Dst: InitiateCounterSubscription
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:422,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:425,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 427
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 427
    functionName: nl::Weave::Profiles::TestWdm::TestCounterSubscription_BufferAllocFailure
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdm.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::FaultInjection::GetManager
    - nl::Weave::Profiles::TestWdm::SpoofPublisherSubscription
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestWdm::Reset
    - InitiateCounterSubscription
    linkageType: ''
    returnType: void
    signature: TestWdm::TestCounterSubscription_BufferAllocFailure(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestWdm::Setup
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 443
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 443
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdm.cpp
    functionUses: 0
    functionsReached:
    - TestWdm::Setup
    linkageType: ''
    returnType: int
    signature: TestSetup(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Teardown
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 451
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 451
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdm.cpp
    functionUses: 0
    functionsReached:
    - Teardown
    linkageType: ''
    returnType: int
    signature: TestTeardown(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestCounterSubscription_BufferAllocFailure
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 456
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 456
    functionName: TestCounterSubscription_BufferAllocFailure
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdm.cpp
    functionUses: 1
    functionsReached:
    - TestCounterSubscription_BufferAllocFailure
    linkageType: ''
    returnType: void
    signature: TestCounterSubscription_BufferAllocFailure(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_init
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:464,1
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:475,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:478,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestWdm.cpp:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 481
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 481
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdm.cpp
    functionUses: 0
    functionsReached:
    - tcpip_init
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:190,1
    - Dst: SetStatusFailed
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:212,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 14
    argCount: 3
    argNames:
    - aTestState
    - aOutSucceeded
    - aOutFailed
    argTypes:
    - TestState
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 214
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 214
    functionName: CheckSucceededOrFailed
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 0
    functionsReached:
    - SetStatusFailed
    - printf
    linkageType: ''
    returnType: void
    signature: CheckSucceededOrFailed(TestState &aTestState, bool &aOutSucceeded,
      bool &aOutFailed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetStatusFailed
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - aSignal
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 226
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 226
    functionName: HandleSignal
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 0
    functionsReached:
    - SetStatusFailed
    linkageType: ''
    returnType: void
    signature: HandleSignal(int aSignal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitToolCommon
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:233,1
    - Dst: SetupFaultInjectionContext
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:235,1
    - Dst: SetSignalHandler
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:237,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:241,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:246,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:247,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:253,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:255,1
    - Dst: InterfaceNameToId
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:263,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:266,1
    - Dst: StartTest
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:272,1
    - Dst: Common::IsTesting
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:274,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:283,1
    - Dst: CheckSucceededOrFailed
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:285,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:288,1
    - Dst: Common::IsReceiver
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:292,1
    - Dst: Common::IsReceiver
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:293,1
    - Dst: Common::IsReceiver
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:294,1
    - Dst: CleanupTest
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:299,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:302,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:303,1
    - Dst: Common::WasSuccessful
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:305,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 309
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 309
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 0
    functionsReached:
    - InitToolCommon
    - ShutdownSystemLayer
    - printf
    - Common::WasSuccessful
    - CleanupTest
    - ServiceNetwork
    - ParseArgsFromEnvVar
    - PrintArgError
    - StartTest
    - ParseArgs
    - Common::IsTesting
    - CheckSucceededOrFailed
    - Common::IsReceiver
    - InitNetwork
    - SetupFaultInjectionContext
    - PrintBriefUsage
    - SetSignalHandler
    - InitSystemLayer
    - InterfaceNameToId
    - ShutdownNetwork
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:319,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:321,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:331,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:333,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:340,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:342,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:352,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:362,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:382,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:387,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:396,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:401,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:408,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:410,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:418,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:423,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:430,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 87
    argCount: 5
    argNames:
    - aProgram
    - aOptions
    - aIdentifier
    - aName
    - aValue
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 437
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 437
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseInt
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *aProgram, OptionSet *aOptions, int aIdentifier,
      const char *aName, const char *aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::IsSender
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:443,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:447,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:452,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:453,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:454,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:463,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - aProgram
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 489
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 489
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - VerifyOrExit
    - nl::Inet::IPAddress::FromString
    - Common::IsSender
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *aProgram, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aStats
    argTypes:
    - TransferStats
    constantsTouched: []
    func_position:
      end: 496
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 496
    functionName: PrintReceivedStats
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: PrintReceivedStats(const TransferStats &aStats)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::HandleDataReceived
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:503,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:508,1
    - Dst: PrintReceivedStats
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - aBuffer
    - aCheckBuffer
    - aFirstValue
    argTypes:
    - PacketBuffer*
    - bool
    - uint8_t
    constantsTouched: []
    func_position:
      end: 514
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 514
    functionName: HandleDataReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 8
    functionsReached:
    - Common::HandleDataReceived
    - VerifyOrExit
    - PrintReceivedStats
    linkageType: ''
    returnType: bool
    signature: HandleDataReceived(const PacketBuffer *aBuffer, bool aCheckBuffer,
      uint8_t aFirstValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HandleDataReceived
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:521,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - aBuffer
    - aCheckBuffer
    argTypes:
    - PacketBuffer*
    - bool
    constantsTouched: []
    func_position:
      end: 526
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 526
    functionName: HandleDataReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 9
    functionsReached:
    - HandleDataReceived
    - VerifyOrExit
    linkageType: ''
    returnType: bool
    signature: HandleDataReceived(const PacketBuffer *aBuffer, bool aCheckBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TCPEndPoint*::GetPeerInfo
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:540,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:541,1
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:543,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:545,1
    - Dst: PendingReceiveLength
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:547,1
    - Dst: PutBackReceivedData
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:548,1
    - Dst: DisableReceive
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:550,1
    - Dst: EnableKeepAlive
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:551,1
    - Dst: DisableKeepAlive
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:552,1
    - Dst: EnableReceive
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:553,1
    - Dst: DriveSend
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:555,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:559,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:559,1
    - Dst: TCPEndPoint*::Free
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:561,1
    - Dst: CancelTimer
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:565,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:566,1
    - Dst: SetStatusFailed
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - aEndPoint
    - aError
    argTypes:
    - TCPEndPoint*
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 570
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 570
    functionName: HandleTCPConnectionComplete
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 0
    functionsReached:
    - TCPEndPoint*::GetPeerInfo
    - CancelTimer
    - PutBackReceivedData
    - TCPEndPoint*::Free
    - PendingReceiveLength
    - DriveSend
    - EnableReceive
    - SetStatusFailed
    - printf
    - StartTimer
    - IPAddress::ToString
    - DisableKeepAlive
    - ErrorStr
    - EnableKeepAlive
    - FAIL_ERROR
    - DisableReceive
    linkageType: ''
    returnType: void
    signature: HandleTCPConnectionComplete(TCPEndPoint *aEndPoint, INET_ERROR aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:576,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:580,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:580,1
    - Dst: SetStatusFailed
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:582,1
    - Dst: TCPEndPoint*::Free
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - aEndPoint
    - aError
    argTypes:
    - TCPEndPoint*
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 591
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 591
    functionName: HandleTCPConnectionClosed
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 0
    functionsReached:
    - SetStatusFailed
    - printf
    - TCPEndPoint*::Free
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleTCPConnectionClosed(TCPEndPoint *aEndPoint, INET_ERROR aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aEndPoint
    - len
    argTypes:
    - TCPEndPoint*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 596
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 596
    functionName: HandleTCPDataSent
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: HandleTCPDataSent(TCPEndPoint *aEndPoint, uint16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:608,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:609,1
    - Dst: TCPEndPoint*::PutBackReceivedData
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:613,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:615,1
    - Dst: TCPEndPoint*::GetPeerInfo
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:619,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:620,1
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:622,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:624,1
    - Dst: static_cast<size_t>
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:627,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:627,1
    - Dst: HandleDataReceived
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:629,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:630,1
    - Dst: TCPEndPoint*::AckReceive
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:632,1
    - Dst: PacketBuffer*::TotalLength
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:632,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:633,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:638,1
    - Dst: SetStatusFailed
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:643,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - aEndPoint
    - aBuffer
    argTypes:
    - TCPEndPoint*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 645
      start: 598
    functionDepth: 2
    functionLinenumber: 598
    functionLinenumberEnd: 645
    functionName: HandleTCPDataReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - TCPEndPoint*::GetPeerInfo
    - nl::Weave::System::PacketBuffer::Free
    - TCPEndPoint*::PutBackReceivedData
    - HandleDataReceived
    - VerifyOrExit
    - SetStatusFailed
    - printf
    - IPAddress::ToString
    - static_cast<size_t>
    - PacketBuffer*::TotalLength
    - TCPEndPoint*::AckReceive
    - FAIL_ERROR
    linkageType: ''
    returnType: void
    signature: HandleTCPDataReceived(TCPEndPoint *aEndPoint, PacketBuffer *aBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:649,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:649,1
    - Dst: SetStatusFailed
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aEndPoint
    - aError
    argTypes:
    - TCPEndPoint*
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 652
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 652
    functionName: HandleTCPAcceptError
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 0
    functionsReached:
    - SetStatusFailed
    - printf
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleTCPAcceptError(TCPEndPoint *aEndPoint, INET_ERROR aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:658,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - aListenEndPoint
    - aConnectEndPoint
    - aPeerAddress
    - aPeerPort
    argTypes:
    - TCPEndPoint*
    - TCPEndPoint*
    - IPAddress
    - uint16_t
    constantsTouched: []
    func_position:
      end: 668
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 668
    functionName: HandleTCPConnectionReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 0
    functionsReached:
    - printf
    - IPAddress::ToString
    linkageType: ''
    returnType: void
    signature: HandleTCPConnectionReceived(TCPEndPoint *aListenEndPoint, TCPEndPoint
      *aConnectEndPoint, const IPAddress &aPeerAddress, uint16_t aPeerPort)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:679,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:680,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:681,1
    - Dst: Common::HandleRawMessageReceived
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:683,1
    - Dst: IPPacketInfo*::DestAddress::Type
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:685,1
    - Dst: PacketBuffer*::ConsumeHead
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:691,1
    - Dst: Common::HandleICMPv4DataReceived
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:693,1
    - Dst: Common::HandleICMPv6DataReceived
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:697,1
    - Dst: PrintReceivedStats
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:706,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:712,1
    - Dst: SetStatusFailed
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:717,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - aEndPoint
    - aBuffer
    - aPacketInfo
    argTypes:
    - IPEndPointBasis*
    - PacketBuffer*
    - IPPacketInfo*
    constantsTouched: []
    func_position:
      end: 719
      start: 672
    functionDepth: 2
    functionLinenumber: 672
    functionLinenumberEnd: 719
    functionName: HandleRawMessageReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 1
    functionsReached:
    - IPPacketInfo*::DestAddress::Type
    - Common::HandleICMPv6DataReceived
    - Common::HandleICMPv4DataReceived
    - nl::Weave::System::PacketBuffer::Free
    - Common::HandleRawMessageReceived
    - VerifyOrExit
    - PrintReceivedStats
    - SetStatusFailed
    - PacketBuffer*::ConsumeHead
    linkageType: ''
    returnType: void
    signature: HandleRawMessageReceived(IPEndPointBasis *aEndPoint, PacketBuffer *aBuffer,
      const IPPacketInfo *aPacketInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::HandleRawReceiveError
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:723,1
    - Dst: SetStatusFailed
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - aEndPoint
    - aError
    - aPacketInfo
    argTypes:
    - IPEndPointBasis*
    - INET_ERROR
    - IPPacketInfo*
    constantsTouched: []
    func_position:
      end: 726
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 726
    functionName: HandleRawReceiveError
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 1
    functionsReached:
    - SetStatusFailed
    - Common::HandleRawReceiveError
    linkageType: ''
    returnType: void
    signature: HandleRawReceiveError(IPEndPointBasis *aEndPoint, INET_ERROR aError,
      const IPPacketInfo *aPacketInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:735,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:736,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:737,1
    - Dst: Common::HandleUDPMessageReceived
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:739,1
    - Dst: HandleDataReceived
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:741,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:746,1
    - Dst: SetStatusFailed
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:751,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - aEndPoint
    - aBuffer
    - aPacketInfo
    argTypes:
    - IPEndPointBasis*
    - PacketBuffer*
    - IPPacketInfo*
    constantsTouched: []
    func_position:
      end: 753
      start: 730
    functionDepth: 2
    functionLinenumber: 730
    functionLinenumberEnd: 753
    functionName: HandleUDPMessageReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - HandleDataReceived
    - VerifyOrExit
    - SetStatusFailed
    - Common::HandleUDPMessageReceived
    linkageType: ''
    returnType: void
    signature: HandleUDPMessageReceived(IPEndPointBasis *aEndPoint, PacketBuffer *aBuffer,
      const IPPacketInfo *aPacketInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::HandleUDPReceiveError
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:757,1
    - Dst: SetStatusFailed
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - aEndPoint
    - aError
    - aPacketInfo
    argTypes:
    - IPEndPointBasis*
    - INET_ERROR
    - IPPacketInfo*
    constantsTouched: []
    func_position:
      end: 760
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 760
    functionName: HandleUDPReceiveError
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 1
    functionsReached:
    - SetStatusFailed
    - Common::HandleUDPReceiveError
    linkageType: ''
    returnType: void
    signature: HandleUDPReceiveError(IPEndPointBasis *aEndPoint, INET_ERROR aError,
      const IPPacketInfo *aPacketInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PendingSendLength
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:778,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 795
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 795
    functionName: IsTransportReadyForSend
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 0
    functionsReached:
    - PendingSendLength
    linkageType: ''
    returnType: bool
    signature: IsTransportReadyForSend(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewTCPEndPoint
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:805,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:806,1
    - Dst: Connect
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:813,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:814,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 819
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 819
    functionName: PrepareTransportForSend
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 0
    functionsReached:
    - NewTCPEndPoint
    - Connect
    - FAIL_ERROR
    linkageType: ''
    returnType: INET_ERROR
    signature: PrepareTransportForSend(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::MakeICMPv6DataBuffer
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:835,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:836,1
    - Dst: Common::MakeICMPv4DataBuffer
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:841,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:842,1
    - Dst: SendTo
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:846,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:847,1
    - Dst: Common::MakeDataBuffer
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:858,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:859,1
    - Dst: SendTo
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:861,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:862,1
    - Dst: Common::MakeDataBuffer
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:873,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:874,1
    - Dst: Send
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:876,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:877,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - aAddress
    - aSize
    argTypes:
    - IPAddress
    - uint16_t
    constantsTouched: []
    func_position:
      end: 883
      start: 821
    functionDepth: 2
    functionLinenumber: 821
    functionLinenumberEnd: 883
    functionName: DriveSendForDestination
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 0
    functionsReached:
    - Common::MakeICMPv6DataBuffer
    - Common::MakeDataBuffer
    - VerifyOrExit
    - SendTo
    - SuccessOrExit
    - Common::MakeICMPv4DataBuffer
    - Send
    linkageType: ''
    returnType: INET_ERROR
    signature: DriveSendForDestination(const IPAddress &aAddress, uint16_t aSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::IsSender
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:889,1
    - Dst: IsTransportReadyForSend
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:895,1
    - Dst: PrepareTransportForSend
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:897,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:898,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:903,1
    - Dst: DriveSendForDestination
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:912,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:913,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:917,1
    - Dst: SetStatusFailed
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:927,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 931
      start: 885
    functionDepth: 2
    functionLinenumber: 885
    functionLinenumberEnd: 931
    functionName: DriveSend
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 3
    functionsReached:
    - PrepareTransportForSend
    - DriveSendForDestination
    - Common::IsSender
    - SetStatusFailed
    - IsTransportReadyForSend
    - StartTimer
    - printf
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: DriveSend(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LocalIPv6Addr::empty
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:941,1
    - Dst: LocalIPv6Addr::empty
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:950,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:957,1
    - Dst: NewRawEndPoint
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:967,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:968,1
    - Dst: IsInterfaceIdPresent
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:973,1
    - Dst: BindInterface
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:975,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:976,1
    - Dst: NewUDPEndPoint
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:981,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:982,1
    - Dst: IsInterfaceIdPresent
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:987,1
    - Dst: BindInterface
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:989,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:990,1
    - Dst: Common::IsReceiver
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:994,1
    - Dst: Bind
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:998,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:999,1
    - Dst: SetICMPFilter
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1003,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1004,1
    - Dst: Listen
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1007,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1008,1
    - Dst: Bind
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1012,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1013,1
    - Dst: Listen
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1015,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1016,1
    - Dst: NewTCPEndPoint
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1023,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1024,1
    - Dst: Bind
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1029,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1030,1
    - Dst: Listen
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1032,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1033,1
    - Dst: Common::IsReceiver
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1037,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1038,1
    - Dst: DriveSend
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1040,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 1041
    functionName: StartTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 1
    functionsReached:
    - NewRawEndPoint
    - NewTCPEndPoint
    - Bind
    - Listen
    - Common::IsReceiver
    - LocalIPv6Addr::empty
    - DriveSend
    - printf
    - IsInterfaceIdPresent
    - SetICMPFilter
    - NewUDPEndPoint
    - FAIL_ERROR
    - BindInterface
    linkageType: ''
    returnType: void
    signature: StartTest(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CancelTimer
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1048,1
    - Dst: Free
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1054,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1059,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1060,1
    - Dst: Free
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1062,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1067,1
    - Dst: Free
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1068,1
    - Dst: Free
      Src: /src/openweave-core/src/test-apps/TestInetLayer.cpp:1073,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1075
    functionName: CleanupTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayer.cpp
    functionUses: 1
    functionsReached:
    - Shutdown
    - CancelTimer
    - Close
    - FAIL_ERROR
    - Free
    linkageType: ''
    returnType: void
    signature: CleanupTest(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:106,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:111,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:130,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - strConst
    - ' output'
    argTypes:
    - char*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 133
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 133
    functionName: ParseAllowedKeyExportConfigs
    functionSourceFile: /src/openweave-core/src/test-apps/KeyExportOptions.cpp
    functionUses: 0
    functionsReached:
    - free
    - ParseInt
    - strchr
    linkageType: ''
    returnType: bool
    signature: ParseAllowedKeyExportConfigs(const char *strConst, uint8_t& output)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 167
    functionName: KeyExportOptions::KeyExportOptions
    functionSourceFile: /src/openweave-core/src/test-apps/KeyExportOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: KeyExportOptions::KeyExportOptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseAllowedKeyExportConfigs
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:177,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:179,1
    - Dst: ReadFileArg
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:184,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:192,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 197
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 197
    functionName: KeyExportOptions::HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/KeyExportOptions.cpp
    functionUses: 0
    functionsReached:
    - ReadFileArg
    - ParseAllowedKeyExportConfigs
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: KeyExportOptions::HandleOption(const char *progName, OptionSet *optSet,
      int id, const char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KeyExportOptions::GetNodeCertSet
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:224,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keyExport
    - ' certSet'
    argTypes:
    - WeaveKeyExport*
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: KeyExportOptions::GetNodeCertSet
    functionSourceFile: /src/openweave-core/src/test-apps/KeyExportOptions.cpp
    functionUses: 1
    functionsReached:
    - WeaveKeyExport*::IsInitiator
    - KeyExportOptions::GetNodeCertSet
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: KeyExportOptions::GetNodeCertSet(WeaveKeyExport * keyExport, WeaveCertificateSet
      & certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KeyExportOptions::ReleaseNodeCertSet
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:229,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keyExport
    - ' certSet'
    argTypes:
    - WeaveKeyExport*
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: KeyExportOptions::ReleaseNodeCertSet
    functionSourceFile: /src/openweave-core/src/test-apps/KeyExportOptions.cpp
    functionUses: 1
    functionsReached:
    - WeaveKeyExport*::IsInitiator
    - KeyExportOptions::ReleaseNodeCertSet
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: KeyExportOptions::ReleaseNodeCertSet(WeaveKeyExport * keyExport, WeaveCertificateSet
      & certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KeyExportOptions::GetNodePrivateKey
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:239,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:239,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:240,1
    - Dst: GenerateAndEncodeWeaveECDSASignature
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:242,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:242,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:243,1
    - Dst: KeyExportOptions::ReleaseNodePrivateKey
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:248,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - keyExport
    - msgHash
    - msgHashLen
    - ' writer'
    argTypes:
    - WeaveKeyExport*
    - uint8_t*
    - uint8_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 252
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 252
    functionName: KeyExportOptions::GenerateNodeSignature
    functionSourceFile: /src/openweave-core/src/test-apps/KeyExportOptions.cpp
    functionUses: 0
    functionsReached:
    - WeaveKeyExport*::IsInitiator
    - KeyExportOptions::ReleaseNodePrivateKey
    - GenerateAndEncodeWeaveECDSASignature
    - SuccessOrExit
    - KeyExportOptions::GetNodePrivateKey
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "KeyExportOptions::GenerateNodeSignature(WeaveKeyExport * keyExport,
      const uint8_t * msgHash, uint8_t msgHashLen,\n    TLVWriter & writer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KeyExportOptions::BeginCertValidation
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:257,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - keyExport
    - ' validCtx'
    - ' certSet'
    argTypes:
    - WeaveKeyExport*
    - ValidationContext
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 258
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 258
    functionName: KeyExportOptions::BeginCertValidation
    functionSourceFile: /src/openweave-core/src/test-apps/KeyExportOptions.cpp
    functionUses: 1
    functionsReached:
    - KeyExportOptions::BeginCertValidation
    - WeaveKeyExport*::IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "KeyExportOptions::BeginCertValidation(WeaveKeyExport * keyExport,
      ValidationContext & validCtx,\n        WeaveCertificateSet & certSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KeyExportOptions::HandleCertValidationResult
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:263,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:263,1
    - Dst: WeaveKeyExport*::MessageInfo
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - keyExport
    - ' validCtx'
    - ' certSet'
    - requestedKeyId
    argTypes:
    - WeaveKeyExport*
    - ValidationContext
    - WeaveCertificateSet
    - uint32_t
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: KeyExportOptions::HandleCertValidationResult
    functionSourceFile: /src/openweave-core/src/test-apps/KeyExportOptions.cpp
    functionUses: 1
    functionsReached:
    - KeyExportOptions::HandleCertValidationResult
    - WeaveKeyExport*::MessageInfo
    - WeaveKeyExport*::IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "KeyExportOptions::HandleCertValidationResult(WeaveKeyExport * keyExport,
      ValidationContext & validCtx,\n        WeaveCertificateSet & certSet, uint32_t
      requestedKeyId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KeyExportOptions::EndCertValidation
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:269,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - keyExport
    - ' validCtx'
    - ' certSet'
    argTypes:
    - WeaveKeyExport*
    - ValidationContext
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 270
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 270
    functionName: KeyExportOptions::EndCertValidation
    functionSourceFile: /src/openweave-core/src/test-apps/KeyExportOptions.cpp
    functionUses: 1
    functionsReached:
    - WeaveKeyExport*::IsInitiator
    - KeyExportOptions::EndCertValidation
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "KeyExportOptions::EndCertValidation(WeaveKeyExport * keyExport, ValidationContext
      & validCtx,\n        WeaveCertificateSet & certSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keyExport
    - requestedKeyId
    argTypes:
    - WeaveKeyExport*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: KeyExportOptions::ValidateUnsignedKeyExportMessage
    functionSourceFile: /src/openweave-core/src/test-apps/KeyExportOptions.cpp
    functionUses: 0
    functionsReached:
    - WeaveKeyExport*::IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: KeyExportOptions::ValidateUnsignedKeyExportMessage(WeaveKeyExport *
      keyExport, uint32_t requestedKeyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:291,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:292,1
    - Dst: LoadAccessTokenCerts
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:307,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:308,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:311,1
    - Dst: GetTestNodeCert
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:323,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:327,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:328,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:331,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:332,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:335,1
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:341,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - isInitiator
    - ' certSet'
    argTypes:
    - bool
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 344
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 344
    functionName: KeyExportOptions::GetNodeCertSet
    functionSourceFile: /src/openweave-core/src/test-apps/KeyExportOptions.cpp
    functionUses: 1
    functionsReached:
    - LoadCert
    - ExitNow
    - LoadAccessTokenCerts
    - printf
    - Init
    - Release
    - SuccessOrExit
    - GetTestNodeCert
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: KeyExportOptions::GetNodeCertSet(bool isInitiator, WeaveCertificateSet&
      certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - isInitiator
    - ' certSet'
    argTypes:
    - bool
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 352
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 352
    functionName: KeyExportOptions::ReleaseNodeCertSet
    functionSourceFile: /src/openweave-core/src/test-apps/KeyExportOptions.cpp
    functionUses: 1
    functionsReached:
    - Release
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: KeyExportOptions::ReleaseNodeCertSet(bool isInitiator, WeaveCertificateSet&
      certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::Security::MemoryAlloc
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:373,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:374,1
    - Dst: ExtractPrivateKeyFromAccessToken
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:377,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:378,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:385,1
    - Dst: GetTestNodePrivateKey
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:397,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:401,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:402,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:406,1
    - Dst: nl::Weave::Platform::Security::MemoryFree
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:412,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - isInitiator
    - ' weavePrivKey'
    - ' weavePrivKeyLen'
    argTypes:
    - bool
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 415
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 415
    functionName: KeyExportOptions::GetNodePrivateKey
    functionSourceFile: /src/openweave-core/src/test-apps/KeyExportOptions.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Platform::Security::MemoryFree
    - VerifyOrExit
    - ExitNow
    - GetTestNodePrivateKey
    - nl::Weave::Platform::Security::MemoryAlloc
    - ExtractPrivateKeyFromAccessToken
    - printf
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: KeyExportOptions::GetNodePrivateKey(bool isInitiator, const uint8_t
      *& weavePrivKey, uint16_t& weavePrivKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::Security::MemoryFree
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - isInitiator
    - ' weavePrivKey'
    argTypes:
    - bool
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 429
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 429
    functionName: KeyExportOptions::ReleaseNodePrivateKey
    functionSourceFile: /src/openweave-core/src/test-apps/KeyExportOptions.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Platform::Security::MemoryFree
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: KeyExportOptions::ReleaseNodePrivateKey(bool isInitiator, const uint8_t
      *& weavePrivKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:439,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:440,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:446,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:447,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:450,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:451,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:454,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:455,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:457,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:458,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:461,1
    - Dst: LoadAccessTokenCerts
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:476,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:477,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:481,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:486,1
    - Dst: SecondsSinceEpochToPackedCertTime
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:487,1
    - Dst: time
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:487,1
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:493,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 3
    argNames:
    - isInitiator
    - ' certSet'
    - ' validContext'
    argTypes:
    - bool
    - WeaveCertificateSet
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 496
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 496
    functionName: KeyExportOptions::BeginCertValidation
    functionSourceFile: /src/openweave-core/src/test-apps/KeyExportOptions.cpp
    functionUses: 1
    functionsReached:
    - LoadCert
    - SecondsSinceEpochToPackedCertTime
    - ExitNow
    - memset
    - LoadAccessTokenCerts
    - Init
    - Release
    - SuccessOrExit
    - time
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: KeyExportOptions::BeginCertValidation(bool isInitiator, WeaveCertificateSet&
      certSet, ValidationContext& validContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:510,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:514,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:525,1
    - Dst: WeaveCertificateData*::IssuerDN::IsEqual
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:527,1
    - Dst: WeaveCertificateData*::AuthKeyId::IsEqual
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:528,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:532,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 6
    argNames:
    - isInitiator
    - ' certSet'
    - ' validContext'
    - pktInfo
    - msgInfo
    - requestedKeyId
    argTypes:
    - bool
    - WeaveCertificateSet
    - ValidationContext
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 538
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 538
    functionName: KeyExportOptions::HandleCertValidationResult
    functionSourceFile: /src/openweave-core/src/test-apps/KeyExportOptions.cpp
    functionUses: 1
    functionsReached:
    - WeaveCertificateData*::AuthKeyId::IsEqual
    - WeaveCertificateData*::IssuerDN::IsEqual
    - VerifyOrExit
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "KeyExportOptions::HandleCertValidationResult(bool isInitiator, WeaveCertificateSet&
      certSet, ValidationContext& validContext,\n                                                         const
      IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t requestedKeyId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/KeyExportOptions.cpp:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - isInitiator
    - ' certSet'
    - ' validContext'
    argTypes:
    - bool
    - WeaveCertificateSet
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 546
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 546
    functionName: KeyExportOptions::EndCertValidation
    functionSourceFile: /src/openweave-core/src/test-apps/KeyExportOptions.cpp
    functionUses: 1
    functionsReached:
    - Release
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: KeyExportOptions::EndCertValidation(bool isInitiator, WeaveCertificateSet&
      certSet, ValidationContext& validContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - isInitiator
    - pktInfo
    - msgInfo
    - requestedKeyId
    argTypes:
    - bool
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 554
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 554
    functionName: KeyExportOptions::ValidateUnsignedKeyExportMessage
    functionSourceFile: /src/openweave-core/src/test-apps/KeyExportOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: KeyExportOptions::ValidateUnsignedKeyExportMessage(bool isInitiator,
      const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t requestedKeyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ServiceEvents
      Src: /src/openweave-core/src/test-apps/ToolCommon.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aSleepTime
    argTypes:
    - struct ::timeval
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: ServiceNetwork
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.h
    functionUses: 35
    functionsReached:
    - ServiceEvents
    linkageType: ''
    returnType: void
    signature: ServiceNetwork(struct ::timeval aSleepTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/openweave-core/src/test-apps/ToolCommon.h:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: Now
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.h
    functionUses: 408
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: uint64_t
    signature: Now()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/ToolCommon.h:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: NowMs
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.h
    functionUses: 0
    functionsReached:
    - Now
    linkageType: ''
    returnType: uint64_t
    signature: NowMs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestDelegate::ClearState
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: TestDelegate::TestDelegate
    functionSourceFile: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp
    functionUses: 0
    functionsReached:
    - TestDelegate::ClearState
    linkageType: ''
    returnType: void
    signature: TestDelegate()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fabricState
    - newFabricId
    argTypes:
    - WeaveFabricState*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: TestDelegate::DidJoinFabric
    functionSourceFile: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DidJoinFabric(WeaveFabricState *fabricState, uint64_t newFabricId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fabricState
    - oldFabricId
    argTypes:
    - WeaveFabricState*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: TestDelegate::DidLeaveFabric
    functionSourceFile: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DidLeaveFabric(WeaveFabricState *fabricState, uint64_t oldFabricId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: TestDelegate::ClearState
    functionSourceFile: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ClearState(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: TestDelegate::CheckStateIsClear
    functionSourceFile: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: CheckStateIsClear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:93,1
    - Dst: TestGroupKeyStore::TestGroupKeyStore
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:93,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: Setup
    functionSourceFile: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp
    functionUses: 1
    functionsReached:
    - TestGroupKeyStore::TestGroupKeyStore
    - NL_TEST_ASSERT
    - Init
    linkageType: ''
    returnType: void
    signature: Setup(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestDelegate::TestDelegate
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:103,1
    - Dst: SetDelegate
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:109,1
    - Dst: CreateFabric
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:115,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:116,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:117,1
    - Dst: TestDelegate::ClearState
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:121,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:122,1
    - Dst: TestDelegate::CheckStateIsClear
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:122,1
    - Dst: ClearFabricState
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:124,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:126,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:127,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:128,1
    - Dst: TestDelegate::ClearState
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:131,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:132,1
    - Dst: TestDelegate::CheckStateIsClear
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:132,1
    - Dst: ClearFabricState
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:134,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:136,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:137,1
    - Dst: CreateFabric
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:144,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:145,1
    - Dst: GetFabricState
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:148,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:149,1
    - Dst: ClearFabricState
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:151,1
    - Dst: TestDelegate::ClearState
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:154,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:155,1
    - Dst: TestDelegate::CheckStateIsClear
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:155,1
    - Dst: JoinExistingFabric
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:157,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:158,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:160,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:161,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 164
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 164
    functionName: CheckDelegateCallbacks
    functionSourceFile: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp
    functionUses: 0
    functionsReached:
    - ClearFabricState
    - NL_TEST_ASSERT
    - JoinExistingFabric
    - TestDelegate::TestDelegate
    - GetFabricState
    - TestDelegate::ClearState
    - CreateFabric
    - TestDelegate::CheckStateIsClear
    - SetDelegate
    linkageType: ''
    returnType: void
    signature: CheckDelegateCallbacks(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::Security::InitSecureRandomDataSource
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:181,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:182,1
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:184,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:186,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 189
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp
    functionUses: 0
    functionsReached:
    - nlTestRunnerStats
    - nlTestRunner
    - nl_test_set_output_style
    - nl::Weave::Platform::Security::InitSecureRandomDataSource
    - FAIL_ERROR
    linkageType: ''
    returnType: int
    signature: main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: Abort
    functionSourceFile: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp
    functionUses: 60
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: Abort()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:45,1
    - Dst: Abort
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - assert
    - msg
    argTypes:
    - bool
    - char*
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: TestAssert
    functionSourceFile: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp
    functionUses: 3
    functionsReached:
    - printf
    - Abort
    linkageType: ''
    returnType: void
    signature: TestAssert(bool assert, const char *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DateToManufacturingWeek
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:149,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:150,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:151,1
    - Dst: ManufacturingWeekToDate
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:152,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:153,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:154,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 157
    functionName: TestMfgDateConversion
    functionSourceFile: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp
    functionUses: 0
    functionsReached:
    - DateToManufacturingWeek
    - ManufacturingWeekToDate
    - TestAssert
    linkageType: ''
    returnType: void
    signature: TestMfgDateConversion(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:170,1
    - Dst: ExtractManufacturingDateFromSerialNumber
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:172,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:173,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:174,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:175,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:176,1
    - Dst: ExtractManufacturingDateFromSerialNumber
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:179,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:180,1
    - Dst: ExtractManufacturingDateFromSerialNumber
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:182,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:183,1
    - Dst: ExtractManufacturingDateFromSerialNumber
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:185,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:186,1
    - Dst: ExtractManufacturingDateFromSerialNumber
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:188,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 190
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 190
    functionName: TestMfgDateFromSerialNum
    functionSourceFile: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp
    functionUses: 0
    functionsReached:
    - ExtractManufacturingDateFromSerialNumber
    - snprintf
    - TestAssert
    linkageType: ''
    returnType: void
    signature: TestMfgDateFromSerialNum(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:264,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:265,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:272,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:273,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 275
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 275
    functionName: TestSerialNumValidation
    functionSourceFile: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp
    functionUses: 0
    functionsReached:
    - printf
    - TestAssert
    linkageType: ''
    returnType: void
    signature: TestSerialNumValidation(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestMfgDateConversion
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:279,1
    - Dst: TestMfgDateFromSerialNum
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:280,1
    - Dst: TestSerialNumValidation
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:281,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 284
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp
    functionUses: 0
    functionsReached:
    - TestMfgDateConversion
    - TestSerialNumValidation
    - printf
    - TestMfgDateFromSerialNum
    linkageType: ''
    returnType: int
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: char::char
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:61,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:62,1
    - Dst: uint8_t::uint8_t
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:65,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:66,1
    - Dst: uint8_t::uint8_t
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:69,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:70,1
    - Dst: char::char
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:78,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:79,1
    - Dst: uint8_t::uint8_t
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:82,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:83,1
    - Dst: uint8_t::uint8_t
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:86,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:87,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:92,1
    - Dst: nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::EncodeList
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:94,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:95,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:96,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:97,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:99,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:101,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:104,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:109,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:110,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:111,1
    - Dst: nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::DecodeList
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:113,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:114,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 41
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 116
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 116
    functionName: WeaveTestNetworkInfo
    functionSourceFile: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp
    functionUses: 0
    functionsReached:
    - char::char
    - TLVReader::Init
    - TLVReader::Next
    - TLVWriter::Finalize
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::DecodeList
    - uint8_t::uint8_t
    - memcpy
    - TLVWriter::GetLengthWritten
    - printf
    - nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::EncodeList
    - strcpy
    - TLVWriter::Init
    linkageType: ''
    returnType: void
    signature: WeaveTestNetworkInfo(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestSetup(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestTeardown(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:154,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:157,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 160
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 160
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp
    functionUses: 0
    functionsReached:
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: nl::Weave::Profiles::BulkDataTransferClient::BulkDataTransferClient
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BulkDataTransferClient::BulkDataTransferClient()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: BulkDataTransferClient::~BulkDataTransferClient()
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BulkDataTransferClient::~BulkDataTransferClient()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:70,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - exchangeMgr
    - DestFileName
    argTypes:
    - WeaveExchangeManager*
    - char*
    constantsTouched: []
    func_position:
      end: 76
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 76
    functionName: nl::Weave::Profiles::BulkDataTransferClient::Init
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::MapErrorPOSIX
    - open
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::Init(WeaveExchangeManager *exchangeMgr, const
      char* DestFileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - con
    argTypes:
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: nl::Weave::Profiles::BulkDataTransferClient::setCon
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BulkDataTransferClient::setCon(WeaveConnection *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: nl::Weave::Profiles::BulkDataTransferClient::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:103,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:108,1
    - Dst: nl::Weave::Profiles::BulkDataTransferClient::SendReceiveInitRequest
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - con
    argTypes:
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 113
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 113
    functionName: nl::Weave::Profiles::BulkDataTransferClient::SendReceiveInitRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::BulkDataTransferClient::SendReceiveInitRequest
    - Close
    - NewContext
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::SendReceiveInitRequest(WeaveConnection *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::BulkDataTransferClient::SendReceiveInitRequest
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nodeId
    - nodeAddr
    argTypes:
    - uint64_t
    - IPAddress
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: nl::Weave::Profiles::BulkDataTransferClient::SendReceiveInitRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::BulkDataTransferClient::SendReceiveInitRequest
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::SendReceiveInitRequest(uint64_t nodeId, IPAddress
      nodeAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:126,1
    - Dst: SelectNodeAddress
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:131,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:134,1
    - Dst: nl::Weave::Profiles::BulkDataTransferClient::SendReceiveInitRequest
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - nodeId
    - nodeAddr
    - port
    argTypes:
    - uint64_t
    - IPAddress
    - uint16_t
    constantsTouched: []
    func_position:
      end: 139
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 139
    functionName: nl::Weave::Profiles::BulkDataTransferClient::SendReceiveInitRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::Profiles::BulkDataTransferClient::SendReceiveInitRequest
    - Close
    - NewContext
    - SelectNodeAddress
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::SendReceiveInitRequest(uint64_t nodeId, IPAddress
      nodeAddr, uint16_t port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:149,1
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:162,1
    - Dst: ReferencedString::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:167,1
    - Dst: ReceiveInit::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:170,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:172,1
    - Dst: ReceiveInit::pack
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:173,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:176,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:180,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:181,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:183,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 190
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 190
    functionName: nl::Weave::Profiles::BulkDataTransferClient::SendReceiveInitRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp
    functionUses: 3
    functionsReached:
    - ReceiveInit::init
    - ReferencedString::init
    - SendMessage
    - ReferencedString::ReferencedString
    - printf
    - Close
    - ReceiveInit::pack
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::SendReceiveInitRequest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:194,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:201,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:209,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:215,1
    - Dst: BulkDataTransferClient*::SendBlockQueryRequest
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:218,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:222,1
    - Dst: BulkDataTransferClient*::mCon::Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:224,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:229,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:231,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 6
    argNames:
    - ec
    - packetInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 232
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 232
    functionName: nl::Weave::Profiles::BulkDataTransferClient::HandleReceiveInitResponse
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp
    functionUses: 0
    functionsReached:
    - printf
    - BulkDataTransferClient*::SendBlockQueryRequest
    - BulkDataTransferClient*::mCon::Close
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: void
    signature: BulkDataTransferClient::HandleReceiveInitResponse(ExchangeContext *ec,
      const IPPacketInfo *packetInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId,
      uint8_t msgType, PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:240,1
    - Dst: BlockQuery::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:257,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:258,1
    - Dst: BlockQuery::pack
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:259,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:262,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:266,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:267,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:269,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 276
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 276
    functionName: nl::Weave::Profiles::BulkDataTransferClient::SendBlockQueryRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - printf
    - Close
    - nl::Weave::System::PacketBuffer::New
    - BlockQuery::init
    - BlockQuery::pack
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::SendBlockQueryRequest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:280,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:287,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:296,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:306,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:307,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:307,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:307,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:312,1
    - Dst: BulkDataTransferClient*::SendBlockQueryRequest
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:316,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:320,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:321,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:321,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:321,1
    - Dst: close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:325,1
    - Dst: BulkDataTransferClient*::SendBlockEOFAck
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:329,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:333,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:335,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 6
    argNames:
    - ec
    - packetInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 336
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 336
    functionName: nl::Weave::Profiles::BulkDataTransferClient::HandleBlockQueryResponse
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - nl::Weave::System::PacketBuffer::Free
    - BulkDataTransferClient*::SendBlockEOFAck
    - printf
    - DumpMemory
    - close
    - PacketBuffer*::Start
    - BulkDataTransferClient*::SendBlockQueryRequest
    linkageType: ''
    returnType: void
    signature: BulkDataTransferClient::HandleBlockQueryResponse(ExchangeContext *ec,
      const IPPacketInfo *packetInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId,
      uint8_t msgType, PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:344,1
    - Dst: BlockEOFAck::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:361,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:362,1
    - Dst: BlockEOFAck::pack
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:363,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:366,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:370,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:372,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 380
      start: 342
    functionDepth: 3
    functionLinenumber: 342
    functionLinenumberEnd: 380
    functionName: nl::Weave::Profiles::BulkDataTransferClient::SendBlockEOFAck
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - BlockEOFAck::init
    - printf
    - Close
    - BlockEOFAck::pack
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::SendBlockEOFAck()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ec
    - packetInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 385
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 385
    functionName: nl::Weave::Profiles::BulkDataTransferClient::HandleBlockEOFAckResponse
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: BulkDataTransferClient::HandleBlockEOFAckResponse(ExchangeContext *ec,
      const IPPacketInfo *packetInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId,
      uint8_t msgType, PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenPathList
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:58,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:59,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:61,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:62,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:70,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:71,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:78,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:79,1
    - Dst: ValidateTLVType
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:81,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:82,1
    - Dst: ValidateWDMTag
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:84,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:85,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:91,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:92,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:98,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:99,1
    - Dst: ValidateTLVType
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:101,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:102,1
    - Dst: ValidateWDMTag
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:104,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:105,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:107,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:108,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:114,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:115,1
    - Dst: ValidateWDMTag
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:117,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:118,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:120,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:121,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:123,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:124,1
    - Dst: CloseList
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:125,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:132,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 49
    argCount: 1
    argNames:
    - aPathList
    argTypes:
    - ReferencedTLVData
    constantsTouched: []
    func_position:
      end: 154
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 154
    functionName: LookupFailureMode
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfile.cpp
    functionUses: 1
    functionsReached:
    - CloseList
    - TLVReader::Next
    - ValidateTLVType
    - VerifyOrExit
    - TLVReader::EnterContainer
    - TLVReader::ExitContainer
    - ValidateWDMTag
    - OpenPathList
    - SuccessOrExit
    - TLVReader::Get
    linkageType: ''
    returnType: uint8_t
    signature: LookupFailureMode(ReferencedTLVData &aPathList)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: TestProfileDB::TestData::TestData(void)
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestProfileDB::TestData::TestData(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: TestProfileDB::TestData::~TestData(void)
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestProfileDB::TestData::~TestData(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:174,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - aTag
    - aDataRdr
    argTypes:
    - uint64_t
    - TLVReader
    constantsTouched: []
    func_position:
      end: 187
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 187
    functionName: TestProfileDB::TestData::StoreItem(const uint64_t &aTag, TLVReader
      &aDataRdr)
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfile.cpp
    functionUses: 0
    functionsReached:
    - ContextTag
    - TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestProfileDB::TestData::StoreItem(const uint64_t &aTag, TLVReader
      &aDataRdr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:194,1
    - Dst: Retrieve
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:198,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:199,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:204,1
    - Dst: EncodePath
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:213,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:214,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:219,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:223,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:223,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:224,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:228,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - aPathRdr
    - aDataWrtr
    argTypes:
    - TLVReader
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 233
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 233
    functionName: TestProfileDB::TestData::Retrieve(TLVReader &aPathRdr, TLVWriter
      &aDataWrtr)
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfile.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Next
    - ContextTag
    - EncodePath
    - TLVReader::GetTag
    - SuccessOrExit
    - Retrieve
    - TLVWriter::Put
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestProfileDB::TestData::Retrieve(TLVReader &aPathRdr, TLVWriter &aDataWrtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncodePath
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:242,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:243,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:247,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:251,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:251,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:252,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:256,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:256,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:257,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:259,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:259,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:260,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:263,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - aDataWrtr
    argTypes:
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 268
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 268
    functionName: TestProfileDB::TestData::Retrieve(TLVWriter &aDataWrtr)
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfile.cpp
    functionUses: 0
    functionsReached:
    - ContextTag
    - EncodePath
    - TLVWriter::EndContainer
    - SuccessOrExit
    - TLVWriter::Put
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestProfileDB::TestData::Retrieve(TLVWriter &aDataWrtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ProfileData *>
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - aProfileId
    - aInstanceIdReader
    - aResult
    argTypes:
    - uint32_t
    - TLVReader*
    - ProfileData**
    constantsTouched: []
    func_position:
      end: 291
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 291
    functionName: TestProfileDB::LookupProfileData
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfile.cpp
    functionUses: 0
    functionsReached:
    - static_cast<ProfileData *>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestProfileDB::LookupProfileData(uint32_t aProfileId, TLVReader *aInstanceIdReader,
      ProfileData **aResult)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/openweave-core/src/test-apps/TestProfile.cpp:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 300
    functionName: TestProfileDB::ChangeProfileData
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfile.cpp
    functionUses: 0
    functionsReached:
    - rand
    linkageType: ''
    returnType: void
    signature: TestProfileDB::ChangeProfileData(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 307
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 307
    functionName: TestProfileDB::RevertProfileData
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestProfileDB::RevertProfileData(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: '* nl::Weave::Profiles::DataManagement::SubscriptionEngine::GetInstance()'
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmOneWayCommandReceiver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: nl::Weave::Profiles::DataManagement::SubscriptionEngine
    signature: '* nl::Weave::Profiles::DataManagement::SubscriptionEngine::GetInstance()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: TestWdmOneWayCommandReceiver::GetInstance
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmOneWayCommandReceiver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TestWdmOneWayCommandReceiver
    signature: '* TestWdmOneWayCommandReceiver::GetInstance ()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResourceIdentifier
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandReceiver.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: TestWdmOneWayCommandReceiver::TestWdmOneWayCommandReceiver
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmOneWayCommandReceiver.cpp
    functionUses: 0
    functionsReached:
    - ResourceIdentifier
    linkageType: ''
    returnType: void
    signature: TestWdmOneWayCommandReceiver::TestWdmOneWayCommandReceiver()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandReceiver.cpp:78,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandReceiver.cpp:82,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandReceiver.cpp:86,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandReceiver.cpp:87,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandReceiver.cpp:89,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandReceiver.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - aExchangeMgr
    argTypes:
    - nl::Weave::WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 94
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 94
    functionName: TestWdmOneWayCommandReceiver::Init
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmOneWayCommandReceiver.cpp
    functionUses: 0
    functionsReached:
    - Add
    - SuccessOrExit
    - WeaveLogDetail
    - SubscriptionEngine::GetInstance
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestWdmOneWayCommandReceiver::Init (nl::Weave::WeaveExchangeManager
      *aExchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::DefaultEventHandler
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandReceiver.cpp:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - aAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - SubscriptionEngine::EventID
    - SubscriptionEngine::InEventParam
    - SubscriptionEngine::OutEventParam
    constantsTouched: []
    func_position:
      end: 106
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 106
    functionName: TestWdmOneWayCommandReceiver::EngineEventCallback
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmOneWayCommandReceiver.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionEngine::DefaultEventHandler
    linkageType: ''
    returnType: void
    signature: "TestWdmOneWayCommandReceiver::EngineEventCallback (void * const aAppState,\n
      \   SubscriptionEngine::EventID aEvent,\n    const SubscriptionEngine::InEventParam
      & aInParam, SubscriptionEngine::OutEventParam & aOutParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandReceiver.cpp:110,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandReceiver.cpp:111,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandReceiver.cpp:112,1
    - Dst: TestWdmOneWayCommandReceiver::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandReceiver.cpp:114,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandReceiver.cpp:122,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandReceiver.cpp:126,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandReceiver.cpp:127,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandReceiver.cpp:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 131
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 131
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmOneWayCommandReceiver.cpp
    functionUses: 0
    functionsReached:
    - InitSystemLayer
    - TestWdmOneWayCommandReceiver::GetInstance
    - ShutdownWeaveStack
    - ShutdownSystemLayer
    - InitNetwork
    - ServiceNetwork
    - InitWeaveStack
    - ShutdownNetwork
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearVersion
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: MockTraitDataSink::ResetDataSink
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.h
    functionUses: 0
    functionsReached:
    - ClearVersion
    linkageType: ''
    returnType: void
    signature: ResetDataSink(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearVersion
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: MockTraitUpdatableDataSink::ResetDataSink
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.h
    functionUses: 0
    functionsReached:
    - ClearVersion
    linkageType: ''
    returnType: void
    signature: ResetDataSink(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: ResetTestContext
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ResetTestContext(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 166
    functionName: GetNumAsyncEventsAvailable
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: GetNumAsyncEventsAvailable(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - argument
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: ExpireTimer
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp
    functionUses: 0
    functionsReached:
    - StartTimer
    linkageType: ''
    returnType: void
    signature: ExpireTimer(int32_t argument)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitToolCommon
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:183,1
    - Dst: SetupFaultInjectionContext
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:185,1
    - Dst: SetSIGUSR1Handler
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:186,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:190,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:191,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:194,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:195,1
    - Dst: ResolveWeaveNetworkOptions
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:196,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:198,1
    - Dst: PreTest
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:202,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:204,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:205,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:206,1
    - Dst: nl::Weave::Stats::UpdateSnapshot
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:212,1
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:220,1
    - Dst: ReferencedString::init
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:226,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:226,1
    - Dst: ReferencedString::init
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:229,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:229,1
    - Dst: SelectNodeAddress
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:232,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:236,1
    - Dst: WeaveBdxClient::initClient
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:238,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:240,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:243,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:244,1
    - Dst: PrintNodeConfig
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:247,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:255,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:260,1
    - Dst: CancelTimer
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:264,1
    - Dst: ResetTestContext
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:267,1
    - Dst: WeaveBdxClient::shutdownClient
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:271,1
    - Dst: ProcessStats
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:274,1
    - Dst: PrintFaultInjectionCounters
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:275,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:277,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:278,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:279,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 57
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 282
      start: 175
    functionDepth: 4
    functionLinenumber: 175
    functionLinenumberEnd: 282
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp
    functionUses: 0
    functionsReached:
    - InitToolCommon
    - ShutdownSystemLayer
    - ReferencedString::ReferencedString
    - WeaveBdxClient::shutdownClient
    - InitWeaveStack
    - printf
    - StartTimer
    - nl::Weave::Stats::UpdateSnapshot
    - SelectNodeAddress
    - ReferencedString::init
    - exit
    - nl::Weave::System::PacketBuffer::Free
    - ServiceNetwork
    - ParseArgsFromEnvVar
    - CancelTimer
    - ResolveWeaveNetworkOptions
    - ResetTestContext
    - ShutdownWeaveStack
    - ParseArgs
    - InitNetwork
    - WeaveBdxClient::initClient
    - SetupFaultInjectionContext
    - PrintBriefUsage
    - strlen
    - PrintNodeConfig
    - PrintFaultInjectionCounters
    - InitSystemLayer
    - SetSIGUSR1Handler
    - ProcessStats
    - ShutdownNetwork
    - PreTest
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<WeaveBdxClient*>
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:286,1
    - Dst: NewConnection
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:288,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:291,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:292,1
    - Dst: WeaveBdxClient*::theConnection::Connect
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:297,1
    - Dst: HandleConnectionComplete
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 301
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 301
    functionName: InitiateConnection
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp
    functionUses: 9
    functionsReached:
    - reinterpret_cast<WeaveBdxClient*>
    - exit
    - HandleConnectionComplete
    - WeaveBdxClient*::theConnection::Connect
    - printf
    - NewConnection
    linkageType: ''
    returnType: void
    signature: InitiateConnection(System::Layer* aSystemLayer, void* aAppState, System::Error
      aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 308
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 308
    functionName: HandleTransferTimeout
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: HandleTransferTimeout(System::Layer* aSystemLayer, void* aAppState,
      System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aAppState
    - aReport
    argTypes:
    - void*
    - StatusReport*
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: handleReject
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: handleReject(void *aAppState, StatusReport *aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aAppState
    - aXferError
    argTypes:
    - void*
    - StatusReport*
    constantsTouched: []
    func_position:
      end: 320
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 320
    functionName: handleXferError
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: handleXferError(void *aAppState, StatusReport *aXferError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aAppState
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: handleDone
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: handleDone(void *aAppState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aAppState
    - anErrorCode
    argTypes:
    - void*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 332
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 332
    functionName: handleError
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: handleError(void *aAppState, WEAVE_ERROR anErrorCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aReceiveAcceptMsg
    argTypes:
    - ReceiveAccept*
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: handleReceiveAccept
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: handleReceiveAccept(ReceiveAccept *aReceiveAcceptMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:344,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:345,1
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - length
    - dataBlock
    - isLastBlock
    argTypes:
    - uint64_t
    - uint8_t*
    - bool
    constantsTouched: []
    func_position:
      end: 349
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 349
    functionName: handlePutBlock
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp
    functionUses: 0
    functionsReached:
    - printf
    - exit
    - fclose
    linkageType: ''
    returnType: void
    signature: handlePutBlock(uint64_t length, uint8_t *dataBlock, bool isLastBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:355,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:358,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:366,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:369,1
    - Dst: fread
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:375,1
    - Dst: Start
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:375,1
    - Dst: Start
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:376,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:378,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - aAppState
    - pLength
    - aDataBlock
    - isLastBlock
    argTypes:
    - void*
    - uint64_t*
    - uint8_t**
    - bool*
    constantsTouched: []
    func_position:
      end: 379
      start: 351
    functionDepth: 3
    functionLinenumber: 351
    functionLinenumberEnd: 379
    functionName: handleGetBlock
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp
    functionUses: 0
    functionsReached:
    - fread
    - printf
    - Start
    - fopen
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: handleGetBlock(void *aAppState, uint64_t *pLength, uint8_t **aDataBlock,
      bool *isLastBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aAppState
    - aSendAcceptMsg
    argTypes:
    - void*
    - SendAccept*
    constantsTouched: []
    func_position:
      end: 384
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 384
    functionName: handleSendAccept
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: handleSendAccept(void *aAppState, SendAccept *aSendAcceptMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:401,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:401,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:402,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:405,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:408,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:408,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:408,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:409,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:409,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:411,1
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 413
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 413
    functionName: OpenDestFile
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp
    functionUses: 0
    functionsReached:
    - printf
    - strlen
    - fopen
    - memcpy
    linkageType: ''
    returnType: void
    signature: OpenDestFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:420,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:422,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:427,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:429,1
    - Dst: ParseIPAddress
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:434,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:436,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:447,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:449,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:460,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 465
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 465
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseInt
    - ParseIPAddress
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:471,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:477,1
    - Dst: ParseIPAddress
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:486,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:488,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:493,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:495,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 500
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 500
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseNodeId
    - ParseIPAddress
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<WeaveBdxClient *>
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:505,1
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:506,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:511,1
    - Dst: WeaveBdxClient*::initBdxSend
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:514,1
    - Dst: OpenDestFile
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:520,1
    - Dst: WeaveBdxClient*::initBdxReceive
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:521,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:525,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:528,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:529,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:535,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:535,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:536,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:540,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:543,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:544,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:549,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:550,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 553
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 553
    functionName: HandleConnectionComplete
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp
    functionUses: 1
    functionsReached:
    - exit
    - static_cast<WeaveBdxClient *>
    - WeaveBdxClient*::initBdxSend
    - WeaveConnection*::Close
    - WeaveConnection*::PeerAddr::ToString
    - OpenDestFile
    - printf
    - StartTimer
    - ErrorStr
    - WeaveBdxClient*::initBdxReceive
    linkageType: ''
    returnType: void
    signature: HandleConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:558,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:561,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:563,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:563,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 566
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 566
    functionName: HandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp
    functionUses: 2
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    - WeaveConnection*::Close
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:578,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:579,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:581,1
    - Dst: SendInit::packedLength
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:581,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:584,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:585,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:587,1
    - Dst: SendAccept::packedLength
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:587,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:590,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:591,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:593,1
    - Dst: ReceiveAccept::packedLength
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:593,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:596,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:597,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:599,1
    - Dst: BlockQuery::packedLength
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:599,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:602,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:603,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:605,1
    - Dst: BlockSend::packedLength
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp:605,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 606
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 606
    functionName: PreTest
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp
    functionUses: 1
    functionsReached:
    - exit
    - printf
    - ReceiveAccept::packedLength
    - BlockSend::packedLength
    - SendInit::packedLength
    - SendAccept::packedLength
    - BlockQuery::packedLength
    linkageType: ''
    returnType: void
    signature: PreTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:88,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 90
    functionName: nl::Weave::Profiles::NewAppState
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    linkageType: ''
    returnType: BdxAppState
    signature: '*NewAppState()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: nl::Weave::Profiles::ResetAppStates
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ResetAppStates()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:104,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:107,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 113
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 113
    functionName: nl::Weave::Profiles::SetReceivedFileLocation
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - strncpy
    linkageType: ''
    returnType: void
    signature: SetReceivedFileLocation(const char *path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:117,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:120,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 126
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 126
    functionName: nl::Weave::Profiles::SetTempLocation
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - strncpy
    linkageType: ''
    returnType: void
    signature: SetTempLocation(const char *path)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - aPtr
    - aSize
    - aNmemb
    - aStream
    argTypes:
    - void*
    - size_t
    - size_t
    - FILE*
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: nl::Weave::Profiles::WriteData
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: WriteData(void *aPtr, size_t aSize, size_t aNmemb, FILE *aStream)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:143,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:147,1
    - Dst: fread
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:149,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:153,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:157,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - aPtr
    - aSize
    - aNmemb
    - aStream
    argTypes:
    - char*
    - size_t
    - size_t
    - FILE*
    constantsTouched: []
    func_position:
      end: 164
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 164
    functionName: nl::Weave::Profiles::ReadData
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp
    functionUses: 0
    functionsReached:
    - fread
    - WeaveLogDetail
    linkageType: ''
    returnType: size_t
    signature: ReadData(char *aPtr, size_t aSize, size_t aNmemb, FILE *aStream)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:186,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:189,1
    - Dst: strtok
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:192,1
    - Dst: strtok
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:196,1
    - Dst: strncat
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:199,1
    - Dst: mkstemp
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:201,1
    - Dst: curl_easy_init
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:203,1
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:208,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:210,1
    - Dst: curl_easy_setopt
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:211,1
    - Dst: curl_easy_setopt
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:212,1
    - Dst: curl_easy_setopt
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:213,1
    - Dst: curl_easy_perform
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:214,1
    - Dst: curl_easy_cleanup
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:217,1
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:218,1
    - Dst: remove
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:222,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:225,1
    - Dst: rename
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:231,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:234,1
    - Dst: strncpy
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:237,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:243,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:247,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 2
    argNames:
    - aFileDesignator
    - aFileDesignatorBufferSize
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 251
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 251
    functionName: nl::Weave::Profiles::DownloadFile
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - WeaveLogError
    - curl_easy_setopt
    - strncpy
    - strtok
    - fclose
    - free
    - strncat
    - WeaveLogDetail
    - rename
    - curl_easy_cleanup
    - curl_easy_init
    - strcpy
    - fopen
    - mkstemp
    - remove
    linkageType: ''
    returnType: int
    signature: DownloadFile(char *aFileDesignator, size_t aFileDesignatorBufferSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:274,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:274,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:275,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:275,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:276,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:278,1
    - Dst: nl::Weave::Profiles::NewAppState
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:280,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:281,1
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:286,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:287,1
    - Dst: malloc
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:291,1
    - Dst: BDXTransfer*::SetHandlers
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - aXfer
    - aSendInitMsg
    argTypes:
    - BDXTransfer*
    - SendInit*
    constantsTouched: []
    func_position:
      end: 301
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 301
    functionName: nl::Weave::Profiles::BdxSendInitHandler
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::NewAppState
    - BDXTransfer*::SetHandlers
    - VerifyOrExit
    - strlen
    - memcpy
    - WeaveLogDetail
    - fopen
    - malloc
    linkageType: ''
    returnType: uint16_t
    signature: BdxSendInitHandler(BDXTransfer *aXfer, SendInit *aSendInitMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:331,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:332,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:333,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:338,1
    - Dst: nl::Weave::Profiles::DownloadFile
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:341,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:343,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:345,1
    - Dst: strncmp
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:349,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:349,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:351,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:353,1
    - Dst: malloc
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:357,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:357,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:358,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:360,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:360,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:361,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:362,1
    - Dst: nl::Weave::Profiles::NewAppState
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:366,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:367,1
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:373,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:374,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:376,1
    - Dst: fseek
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:378,1
    - Dst: ftell
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:380,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:381,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:382,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:382,1
    - Dst: fseek
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:384,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:385,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:397,1
    - Dst: malloc
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:402,1
    - Dst: BDXTransfer*::SetHandlers
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:407,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:412,1
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:417,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 53
    argCount: 2
    argNames:
    - aXfer
    - aReceiveInit
    argTypes:
    - BDXTransfer*
    - ReceiveInit*
    constantsTouched: []
    func_position:
      end: 422
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 422
    functionName: nl::Weave::Profiles::BdxReceiveInitHandler
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - strcpy
    - nl::Weave::Profiles::NewAppState
    - BDXTransfer*::SetHandlers
    - strncmp
    - VerifyOrExit
    - fseek
    - fclose
    - strlen
    - free
    - memcpy
    - WeaveLogDetail
    - ftell
    - SuccessOrExit
    - nl::Weave::Profiles::DownloadFile
    - fopen
    - malloc
    - static_cast<uint64_t>
    linkageType: ''
    returnType: uint16_t
    signature: BdxReceiveInitHandler(BDXTransfer *aXfer, ReceiveInit *aReceiveInit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:431,1
    - Dst: static_cast<BdxAppState*>
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:432,1
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:437,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:440,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:441,1
    - Dst: malloc
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - aXfer
    - aSendAcceptMsg
    argTypes:
    - BDXTransfer*
    - SendAccept*
    constantsTouched: []
    func_position:
      end: 449
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 449
    functionName: nl::Weave::Profiles::BdxSendAcceptHandler
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp
    functionUses: 0
    functionsReached:
    - exit
    - printf
    - static_cast<BdxAppState*>
    - WeaveLogDetail
    - fopen
    - malloc
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BdxSendAcceptHandler(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:461,1
    - Dst: static_cast<BdxAppState*>
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:462,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:482,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:482,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:483,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:483,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:483,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:485,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:485,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:487,1
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:489,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:492,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - aXfer
    - aReceiveAcceptMsg
    argTypes:
    - BDXTransfer*
    - ReceiveAccept*
    constantsTouched: []
    func_position:
      end: 497
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 497
    functionName: nl::Weave::Profiles::BdxReceiveAcceptHandler
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp
    functionUses: 0
    functionsReached:
    - exit
    - strlen
    - memcpy
    - static_cast<BdxAppState*>
    - WeaveLogDetail
    - fopen
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BdxReceiveAcceptHandler(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aXfer
    - aReport
    argTypes:
    - BDXTransfer*
    - StatusReport*
    constantsTouched: []
    func_position:
      end: 507
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 507
    functionName: nl::Weave::Profiles::BdxRejectHandler
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    linkageType: ''
    returnType: void
    signature: BdxRejectHandler(BDXTransfer *aXfer, StatusReport *aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BdxAppState*>
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:518,1
    - Dst: fread
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - aXfer
    - aLength
    - aDataBlock
    - aIsLastBlock
    argTypes:
    - BDXTransfer*
    - uint64_t*
    - uint8_t**
    - bool*
    constantsTouched: []
    func_position:
      end: 535
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 535
    functionName: nl::Weave::Profiles::BdxGetBlockHandler
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp
    functionUses: 0
    functionsReached:
    - fread
    - static_cast<BdxAppState*>
    linkageType: ''
    returnType: void
    signature: "BdxGetBlockHandler(BDXTransfer *aXfer,\n                        uint64_t
      *aLength,\n                        uint8_t **aDataBlock,\n                        bool
      *aIsLastBlock)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BdxAppState*>
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:542,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:544,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - aXfer
    - aLength
    - aDataBlock
    - aIsLastBlock
    argTypes:
    - BDXTransfer*
    - uint64_t
    - uint8_t*
    - bool
    constantsTouched: []
    func_position:
      end: 552
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 552
    functionName: nl::Weave::Profiles::BdxPutBlockHandler
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp
    functionUses: 0
    functionsReached:
    - DumpMemory
    - static_cast<BdxAppState*>
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: BdxPutBlockHandler(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock,
      bool aIsLastBlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:564,1
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:568,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:570,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:580,1
    - Dst: BDXTransfer*::Shutdown
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:585,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - aXfer
    - aXferError
    argTypes:
    - BDXTransfer*
    - StatusReport*
    constantsTouched: []
    func_position:
      end: 586
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 586
    functionName: nl::Weave::Profiles::BdxXferErrorHandler
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - BDXTransfer*::Shutdown
    - fclose
    - free
    - printf
    linkageType: ''
    returnType: void
    signature: BdxXferErrorHandler(BDXTransfer *aXfer, StatusReport *aXferError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:594,1
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:598,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:600,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:610,1
    - Dst: BDXTransfer*::Shutdown
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:615,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - aXfer
    argTypes:
    - BDXTransfer*
    constantsTouched: []
    func_position:
      end: 616
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 616
    functionName: nl::Weave::Profiles::BdxXferDoneHandler
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp
    functionUses: 0
    functionsReached:
    - BDXTransfer*::Shutdown
    - fclose
    - free
    - printf
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: BdxXferDoneHandler(BDXTransfer *aXfer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BdxAppState *>
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:623,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:625,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:625,1
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:632,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:638,1
    - Dst: BDXTransfer*::Shutdown
      Src: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp:643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - aXfer
    - aErrorCode
    argTypes:
    - BDXTransfer*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 644
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 644
    functionName: nl::Weave::Profiles::BdxErrorHandler
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp
    functionUses: 0
    functionsReached:
    - static_cast<BdxAppState *>
    - WeaveLogProgress
    - fclose
    - BDXTransfer*::Shutdown
    - free
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: BdxErrorHandler(BDXTransfer *aXfer, WEAVE_ERROR aErrorCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SELECT_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:82,1
    - Dst: SELECT_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:83,1
    - Dst: SELECT_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:84,1
    - Dst: SELECT_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:85,1
    - Dst: SELECT_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:86,1
    - Dst: SELECT_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:87,1
    - Dst: SELECT_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:88,1
    - Dst: SELECT_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:89,1
    - Dst: SELECT_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:90,1
    - Dst: SELECT_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:91,1
    - Dst: SELECT_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:92,1
    - Dst: SELECT_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:93,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:95,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - selector
    - ' certData'
    - ' certDataLen'
    argTypes:
    - int
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 97
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 97
    functionName: nl::TestCerts::GetTestCert
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    - SELECT_CERT
    - exit
    linkageType: ''
    returnType: void
    signature: GetTestCert(int selector, const uint8_t *& certData, size_t& certDataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NAME_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:111,1
    - Dst: NAME_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:112,1
    - Dst: NAME_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:113,1
    - Dst: NAME_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:114,1
    - Dst: NAME_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:115,1
    - Dst: NAME_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:116,1
    - Dst: NAME_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:117,1
    - Dst: NAME_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:118,1
    - Dst: NAME_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:119,1
    - Dst: NAME_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:120,1
    - Dst: NAME_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:121,1
    - Dst: NAME_CERT
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:122,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:124,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - selector
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 128
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 128
    functionName: nl::TestCerts::GetTestCertName
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp
    functionUses: 0
    functionsReached:
    - fprintf
    - NAME_CERT
    - exit
    linkageType: ''
    returnType: char
    signature: '*GetTestCertName(int selector)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddTrustedKey
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:144,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:147,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:147,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:148,1
    - Dst: nl::TestCerts::GetTestCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:154,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:157,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:160,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:160,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp:161,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - ' certSet'
    - selector
    argTypes:
    - WeaveCertificateSet
    - int
    constantsTouched: []
    func_position:
      end: 180
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 180
    functionName: nl::TestCerts::LoadTestCert
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp
    functionUses: 0
    functionsReached:
    - LoadCert
    - exit
    - AddTrustedKey
    - nl::TestCerts::GetTestCert
    - fprintf
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: LoadTestCert(WeaveCertificateSet& certSet, int selector)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: nl::Weave::Platform::PersistedStorage::RemoveEndOfLineSymbol
    functionSourceFile: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: RemoveEndOfLineSymbol(char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rewind
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:66,1
    - Dst: fgets
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:68,1
    - Dst: nl::Weave::Platform::PersistedStorage::RemoveEndOfLineSymbol
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:70,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:72,1
    - Dst: fgets
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:74,1
    - Dst: nl::Weave::Platform::PersistedStorage::RemoveEndOfLineSymbol
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:80,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:82,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - aKey
    - aValue
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 94
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 94
    functionName: nl::Weave::Platform::PersistedStorage::GetCounterValueFromFile
    functionSourceFile: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - rewind
    - fgets
    - ParseInt
    - ExitNow
    - nl::Weave::Platform::PersistedStorage::RemoveEndOfLineSymbol
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetCounterValueFromFile(const char *aKey, uint32_t &aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:103,1
    - Dst: rewind
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:105,1
    - Dst: fgets
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:108,1
    - Dst: nl::Weave::Platform::PersistedStorage::RemoveEndOfLineSymbol
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:110,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:113,1
    - Dst: fputs
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:115,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:116,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:118,1
    - Dst: fputs
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:124,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:125,1
    - Dst: fputs
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:127,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:128,1
    - Dst: fputs
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:130,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:131,1
    - Dst: fflush
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - aKey
    - aValue
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 136
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 136
    functionName: nl::Weave::Platform::PersistedStorage::SaveCounterValueToFile
    functionSourceFile: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - rewind
    - fgets
    - VerifyOrExit
    - ExitNow
    - nl::Weave::Platform::PersistedStorage::RemoveEndOfLineSymbol
    - fputs
    - snprintf
    - fflush
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SaveCounterValueToFile(const char *aKey, uint32_t aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:143,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:144,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:144,1
    - Dst: nl::Weave::Platform::PersistedStorage::GetCounterValueFromFile
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:149,1
    - Dst: find
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:153,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:154,1
    - Dst: end
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:154,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - aKey
    - aValue
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 162
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 162
    functionName: nl::Weave::Platform::PersistedStorage::Read
    functionSourceFile: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp
    functionUses: 1
    functionsReached:
    - end
    - VerifyOrExit
    - strlen
    - nl::Weave::Platform::PersistedStorage::GetCounterValueFromFile
    - find
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Read(const char *aKey, uint32_t &aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:168,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:169,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:169,1
    - Dst: nl::Weave::Platform::PersistedStorage::SaveCounterValueToFile
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:174,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:180,1
    - Dst: Base64Encode
      Src: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - aKey
    - aValue
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 188
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 188
    functionName: nl::Weave::Platform::PersistedStorage::Write
    functionSourceFile: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp
    functionUses: 1
    functionsReached:
    - Base64Encode
    - VerifyOrExit
    - memset
    - strlen
    - nl::Weave::Platform::PersistedStorage::SaveCounterValueToFile
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Write(const char *aKey, uint32_t aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: ResetTestContext
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ResetTestContext(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 198
    functionName: GetNumAsyncEventsAvailable
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: GetNumAsyncEventsAvailable(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - argument
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 205
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 205
    functionName: ExpireTimer
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp
    functionUses: 0
    functionsReached:
    - StartTimer
    linkageType: ''
    returnType: void
    signature: ExpireTimer(int32_t argument)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitToolCommon
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:215,1
    - Dst: SetupFaultInjectionContext
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:217,1
    - Dst: SetSIGUSR1Handler
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:218,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:220,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:221,1
    - Dst: ResolveWeaveNetworkOptions
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:222,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:224,1
    - Dst: PreTest
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:232,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:236,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:237,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:240,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:241,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:242,1
    - Dst: ResetAppStates
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:243,1
    - Dst: nl::Weave::Stats::UpdateSnapshot
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:245,1
    - Dst: NewAppState
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:247,1
    - Dst: PrintNodeConfig
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:254,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:257,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:259,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:261,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:268,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:269,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:276,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:277,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:281,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:284,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:284,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:285,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:290,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:293,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:297,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:300,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:301,1
    - Dst: PrepareBinding
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:306,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:319,1
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:324,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:330,1
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:336,1
    - Dst: CancelTimer
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:340,1
    - Dst: ResetTestContext
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:343,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:346,1
    - Dst: ProcessStats
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:348,1
    - Dst: PrintFaultInjectionCounters
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:349,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:351,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 85
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 354
      start: 207
    functionDepth: 4
    functionLinenumber: 207
    functionLinenumberEnd: 354
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp
    functionUses: 0
    functionsReached:
    - InitToolCommon
    - InitWeaveStack
    - fclose
    - printf
    - StartTimer
    - nl::Weave::Stats::UpdateSnapshot
    - exit
    - NewAppState
    - ServiceNetwork
    - ParseArgsFromEnvVar
    - Release
    - CancelTimer
    - Close
    - ResolveWeaveNetworkOptions
    - ResetTestContext
    - ShutdownWeaveStack
    - ParseArgs
    - InitNetwork
    - ResetAppStates
    - SetupFaultInjectionContext
    - Shutdown
    - ErrorStr
    - PrintNodeConfig
    - PrintFaultInjectionCounters
    - InitSystemLayer
    - SetSIGUSR1Handler
    - ProcessStats
    - Init
    - PrepareBinding
    - PreTest
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:358,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 363
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 363
    functionName: HandleTransferTimeout
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp
    functionUses: 0
    functionsReached:
    - Shutdown
    - printf
    linkageType: ''
    returnType: void
    signature: HandleTransferTimeout(System::Layer* aSystemLayer, void* aAppState,
      System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:367,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:371,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:372,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:379,1
    - Dst: NewConnection
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:384,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:387,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:390,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:394,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:399,1
    - Dst: Connect
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:400,1
    - Dst: Connect
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:404,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:409,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:409,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:410,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:416,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 3
    argNames:
    - lSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 417
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 417
    functionName: StartClientConnection
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp
    functionUses: 2
    functionsReached:
    - Connect
    - nl::Inet::IPAddress::FromString
    - printf
    - Close
    - ErrorStr
    - NewConnection
    linkageType: ''
    returnType: void
    signature: StartClientConnection(System::Layer* lSystemLayer, void* aAppState,
      System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:424,1
    - Dst: ReferencedString::init
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:427,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:427,1
    - Dst: NewTransfer
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:441,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:445,1
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:447,1
    - Dst: strrchr
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:460,1
    - Dst: init
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:464,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:464,1
    - Dst: InitBdxSend
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:468,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:477,1
    - Dst: ShutdownTransfer
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:479,1
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 484
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 484
    functionName: StartUDPUpload
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp
    functionUses: 0
    functionsReached:
    - ReferencedString::init
    - ReferencedString::ReferencedString
    - strrchr
    - strlen
    - printf
    - NewTransfer
    - Release
    - init
    - InitBdxSend
    - ShutdownTransfer
    linkageType: ''
    returnType: void
    signature: StartUDPUpload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:491,1
    - Dst: ReferencedString::init
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:493,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:493,1
    - Dst: NewTransfer
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:507,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:511,1
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:513,1
    - Dst: InitBdxReceive
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:522,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:530,1
    - Dst: ShutdownTransfer
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:532,1
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:533,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 537
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 537
    functionName: StartUDPDownload
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp
    functionUses: 0
    functionsReached:
    - ReferencedString::init
    - ReferencedString::ReferencedString
    - InitBdxReceive
    - strlen
    - printf
    - NewTransfer
    - Release
    - ShutdownTransfer
    linkageType: ''
    returnType: void
    signature: StartUDPDownload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:547,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:549,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:554,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:556,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:561,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:563,1
    - Dst: SetReceivedFileLocation
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:569,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:587,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 592
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 592
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp
    functionUses: 0
    functionsReached:
    - SetReceivedFileLocation
    - PrintArgError
    - ParseInt
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:598,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:604,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:616,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:618,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 623
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 623
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseNodeId
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:628,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - msgLayer
    - con
    argTypes:
    - WeaveMessageLayer*
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 633
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 633
    functionName: HandleConnectionReceived
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp
    functionUses: 3
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    linkageType: ''
    returnType: void
    signature: HandleConnectionReceived(WeaveMessageLayer *msgLayer, WeaveConnection
      *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:637,1
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:642,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:646,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:646,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:647,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:652,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:655,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:656,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:661,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:662,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:669,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:671,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:674,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:675,1
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:684,1
    - Dst: ReferencedString::init
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:685,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:685,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:690,1
    - Dst: NewTransfer
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:708,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:714,1
    - Dst: strrchr
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:716,1
    - Dst: init
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:720,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:720,1
    - Dst: InitBdxSend
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:724,1
    - Dst: NewTransfer
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:747,1
    - Dst: InitBdxReceive
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:751,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:758,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:759,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:768,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:771,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:776,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 65
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 777
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 777
    functionName: HandleConnectionComplete
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp
    functionUses: 1
    functionsReached:
    - ReferencedString::init
    - exit
    - WeaveConnection*::Close
    - ReferencedString::ReferencedString
    - WeaveConnection*::PeerAddr::ToString
    - InitBdxReceive
    - strrchr
    - strlen
    - StartTimer
    - printf
    - NewTransfer
    - WeaveLogDetail
    - init
    - Close
    - ErrorStr
    - InitBdxSend
    linkageType: ''
    returnType: void
    signature: HandleConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:782,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:785,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:787,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:787,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:792,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:795,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 798
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 798
    functionName: HandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp
    functionUses: 2
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    - WeaveConnection*::Close
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewBinding
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:805,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:808,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:810,1
    - Dst: BeginConfiguration
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:815,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:822,1
    - Dst: nl::Weave::Binding::Configuration::TargetAddress_IP
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:823,1
    - Dst: nl::Weave::Binding::Configuration::PrepareBinding
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:827,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:828,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:828,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 833
      start: 800
    functionDepth: 2
    functionLinenumber: 800
    functionLinenumberEnd: 833
    functionName: PrepareBinding
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp
    functionUses: 8
    functionsReached:
    - NewBinding
    - nl::Weave::Binding::Configuration::TargetAddress_IP
    - nl::Inet::IPAddress::FromString
    - ExitNow
    - nl::Weave::Binding::Configuration::PrepareBinding
    - VerifyOrExit
    - printf
    - BeginConfiguration
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: PrepareBinding()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:842,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:845,1
    - Dst: StartUDPUpload
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:852,1
    - Dst: StartUDPDownload
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:856,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:861,1
    - Dst: nl::Weave::Binding::DefaultEventHandler
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:864,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - ctx
    - event
    - inParam
    - outParam
    argTypes:
    - void*
    - Binding::EventType
    - Binding::InEventParam
    - Binding::OutEventParam
    constantsTouched: []
    func_position:
      end: 866
      start: 835
    functionDepth: 2
    functionLinenumber: 835
    functionLinenumberEnd: 866
    functionName: HandleBindingEvent
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp
    functionUses: 0
    functionsReached:
    - StartUDPDownload
    - StartUDPUpload
    - printf
    - StartTimer
    - nl::Weave::Binding::DefaultEventHandler
    linkageType: ''
    returnType: void
    signature: HandleBindingEvent(void *const ctx, const Binding::EventType event,
      const Binding::InEventParam &inParam, Binding::OutEventParam &outParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:880,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:881,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:883,1
    - Dst: SendInit::packedLength
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:883,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:886,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:887,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:889,1
    - Dst: SendAccept::packedLength
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:889,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:892,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:893,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:895,1
    - Dst: ReceiveAccept::packedLength
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:895,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:898,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:899,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:901,1
    - Dst: BlockQuery::packedLength
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:901,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:904,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:905,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:907,1
    - Dst: BlockSend::packedLength
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:907,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:910,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:911,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:913,1
    - Dst: BlockSendV1::packedLength
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:913,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:916,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:917,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:919,1
    - Dst: BlockQueryV1::packedLength
      Src: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp:919,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 920
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 920
    functionName: PreTest
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp
    functionUses: 2
    functionsReached:
    - exit
    - BlockQueryV1::packedLength
    - printf
    - ReceiveAccept::packedLength
    - BlockSend::packedLength
    - SendInit::packedLength
    - SendAccept::packedLength
    - BlockQuery::packedLength
    - BlockSendV1::packedLength
    linkageType: ''
    returnType: void
    signature: PreTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:61,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:62,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:64,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:65,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:67,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:68,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:70,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:71,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:73,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:74,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:76,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:77,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:79,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:80,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:82,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:83,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:85,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:86,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:90,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:91,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:93,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:94,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:96,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:97,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:99,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:100,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:102,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:103,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:105,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:106,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:108,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:109,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:111,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:112,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:114,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:115,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:119,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:120,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:122,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:123,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:125,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:126,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:128,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:129,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:131,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:132,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:134,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:135,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:137,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:138,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:140,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:141,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:143,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:144,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:148,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:149,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:151,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:152,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:154,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:154,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:155,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:157,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:157,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:158,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:160,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:160,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:161,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:161,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:163,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:163,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:164,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:164,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:166,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:166,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:166,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:167,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:167,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:169,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:170,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:172,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:173,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:177,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:178,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:180,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:181,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:183,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:184,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:186,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:187,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:191,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:192,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:194,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:195,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:197,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:198,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:200,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:201,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:205,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:206,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:208,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:208,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:209,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:209,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:211,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:211,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:212,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:212,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:214,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:214,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:214,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:215,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:215,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:219,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:220,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:222,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:222,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:223,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:223,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:225,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:225,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:226,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:226,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:228,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:228,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:228,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:229,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 105
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 230
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 230
    functionName: CheckMin
    functionSourceFile: /src/openweave-core/src/test-apps/TestCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - static_cast<uint32_t>
    - nl::Weave::min
    - static_cast<int64_t>
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: CheckMin(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:245,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:246,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:248,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:249,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:251,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:252,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:254,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:255,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:257,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:258,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:260,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:261,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:263,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:264,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:266,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:267,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:269,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:270,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:274,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:275,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:277,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:278,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:280,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:281,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:283,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:284,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:286,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:287,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:289,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:290,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:292,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:293,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:295,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:296,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:298,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:299,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:303,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:304,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:306,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:307,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:309,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:310,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:312,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:313,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:315,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:316,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:318,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:319,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:321,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:322,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:324,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:325,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:327,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:328,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:332,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:333,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:335,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:336,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:338,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:338,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:339,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:339,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:341,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:341,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:342,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:342,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:344,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:344,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:345,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:347,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:347,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:348,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:350,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:350,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:350,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:351,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:351,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:353,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:354,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:356,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:357,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:361,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:362,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:364,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:365,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:367,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:368,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:370,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:371,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:375,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:376,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:378,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:379,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:381,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:382,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:384,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:385,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:389,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:390,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:392,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:392,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:393,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:395,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:395,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:396,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:398,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:398,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:398,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:399,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:399,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:403,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:404,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:406,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:406,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:407,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:409,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:409,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:410,1
    - Dst: nl::Weave::max
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:412,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:412,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:412,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:413,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 105
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 414
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 414
    functionName: CheckMax
    functionSourceFile: /src/openweave-core/src/test-apps/TestCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - static_cast<uint32_t>
    - nl::Weave::max
    - static_cast<int64_t>
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: CheckMax(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inFailure
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 419
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 419
    functionName: GetStatus
    functionSourceFile: /src/openweave-core/src/test-apps/TestCodeUtils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetStatus(bool inFailure)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetStatus
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:427,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:430,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 435
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 435
    functionName: CheckSuccessOrExitFailure
    functionSourceFile: /src/openweave-core/src/test-apps/TestCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - GetStatus
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: CheckSuccessOrExitFailure(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetStatus
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:443,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:446,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 451
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 451
    functionName: CheckSuccessOrExitSuccess
    functionSourceFile: /src/openweave-core/src/test-apps/TestCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - GetStatus
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: CheckSuccessOrExitSuccess(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:461,1
    - Dst: GetStatus
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:461,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 466
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 466
    functionName: CheckSuccessOrExitAssignmentFailure
    functionSourceFile: /src/openweave-core/src/test-apps/TestCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - GetStatus
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: CheckSuccessOrExitAssignmentFailure(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:476,1
    - Dst: GetStatus
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:476,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 481
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 481
    functionName: CheckSuccessOrExitAssignmentSuccess
    functionSourceFile: /src/openweave-core/src/test-apps/TestCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - GetStatus
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: CheckSuccessOrExitAssignmentSuccess(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckSuccessOrExitFailure
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:485,1
    - Dst: CheckSuccessOrExitSuccess
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:486,1
    - Dst: CheckSuccessOrExitAssignmentFailure
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:487,1
    - Dst: CheckSuccessOrExitAssignmentSuccess
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 489
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 489
    functionName: CheckSuccessOrExit
    functionSourceFile: /src/openweave-core/src/test-apps/TestCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - CheckSuccessOrExitSuccess
    - CheckSuccessOrExitAssignmentSuccess
    - CheckSuccessOrExitAssignmentFailure
    - CheckSuccessOrExitFailure
    linkageType: ''
    returnType: void
    signature: CheckSuccessOrExit(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:501,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:505,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 507
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 507
    functionName: CheckVerifyOrExitFailure
    functionSourceFile: /src/openweave-core/src/test-apps/TestCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - VerifyOrExit
    linkageType: ''
    returnType: void
    signature: CheckVerifyOrExitFailure(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:519,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:523,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 525
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 525
    functionName: CheckVerifyOrExitSuccess
    functionSourceFile: /src/openweave-core/src/test-apps/TestCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - VerifyOrExit
    linkageType: ''
    returnType: void
    signature: CheckVerifyOrExitSuccess(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckVerifyOrExitFailure
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:529,1
    - Dst: CheckVerifyOrExitSuccess
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 531
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 531
    functionName: CheckVerifyOrExit
    functionSourceFile: /src/openweave-core/src/test-apps/TestCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - CheckVerifyOrExitSuccess
    - CheckVerifyOrExitFailure
    linkageType: ''
    returnType: void
    signature: CheckVerifyOrExit(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:541,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:545,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 547
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 547
    functionName: CheckExitNow
    functionSourceFile: /src/openweave-core/src/test-apps/TestCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - ExitNow
    linkageType: ''
    returnType: void
    signature: CheckExitNow(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 552
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 552
    functionName: TestWeaveDie
    functionSourceFile: /src/openweave-core/src/test-apps/TestCodeUtils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestWeaveDie(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<struct TestVerifyOrDieContext *>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:556,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:564,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 567
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 567
    functionName: CheckVerifyOrDieFailure
    functionSourceFile: /src/openweave-core/src/test-apps/TestCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - VerifyOrDie
    - static_cast<struct TestVerifyOrDieContext *>
    linkageType: ''
    returnType: void
    signature: CheckVerifyOrDieFailure(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<struct TestVerifyOrDieContext *>
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:571,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:579,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 582
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 582
    functionName: CheckVerifyOrDieSuccess
    functionSourceFile: /src/openweave-core/src/test-apps/TestCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - VerifyOrDie
    - static_cast<struct TestVerifyOrDieContext *>
    linkageType: ''
    returnType: void
    signature: CheckVerifyOrDieSuccess(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckVerifyOrDieFailure
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:586,1
    - Dst: CheckVerifyOrDieSuccess
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 588
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 588
    functionName: CheckVerifyOrDie
    functionSourceFile: /src/openweave-core/src/test-apps/TestCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - CheckVerifyOrDieFailure
    - CheckVerifyOrDieSuccess
    linkageType: ''
    returnType: void
    signature: CheckVerifyOrDie(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 593
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 593
    functionName: CheckLogFileLineFunc
    functionSourceFile: /src/openweave-core/src/test-apps/TestCodeUtils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CheckLogFileLineFunc(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:613,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:615,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestCodeUtils.cpp:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 618
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 618
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestCodeUtils.cpp
    functionUses: 0
    functionsReached:
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - inInterfaceType
    - inAddress
    - inPrefixLength
    - inAssign
    argTypes:
    - InterfaceType
    - Inet::IPAddress
    - uint8_t
    - bool
    constantsTouched: []
    func_position:
      end: 121
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 121
    functionName: nl::Weave::Warm::Platform::AddRemoveHostAddress
    functionSourceFile: /src/openweave-core/src/test-apps/TestWarm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PlatformResult
    signature: AddRemoveHostAddress(InterfaceType inInterfaceType, const Inet::IPAddress
      &inAddress, uint8_t inPrefixLength, bool inAssign)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - inInterfaceType
    - inPrefix
    - inPriority
    - inAssign
    argTypes:
    - InterfaceType
    - Inet::IPPrefix
    - RoutePriority
    - bool
    constantsTouched: []
    func_position:
      end: 152
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 152
    functionName: nl::Weave::Warm::Platform::AddRemoveHostRoute
    functionSourceFile: /src/openweave-core/src/test-apps/TestWarm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PlatformResult
    signature: AddRemoveHostRoute(InterfaceType inInterfaceType, const Inet::IPPrefix
      &inPrefix, RoutePriority inPriority, bool inAssign)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - inInterfaceType
    - inAddress
    - inAssign
    argTypes:
    - InterfaceType
    - Inet::IPAddress
    - bool
    constantsTouched: []
    func_position:
      end: 179
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 179
    functionName: nl::Weave::Warm::Platform::AddRemoveThreadAddress
    functionSourceFile: /src/openweave-core/src/test-apps/TestWarm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PlatformResult
    signature: AddRemoveThreadAddress(InterfaceType inInterfaceType, const Inet::IPAddress
      &inAddress, bool inAssign)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - inInterfaceType
    - inPrefix
    - inAdvertise
    argTypes:
    - InterfaceType
    - Inet::IPPrefix
    - bool
    constantsTouched: []
    func_position:
      end: 206
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 206
    functionName: nl::Weave::Warm::Platform::StartStopThreadAdvertisement
    functionSourceFile: /src/openweave-core/src/test-apps/TestWarm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PlatformResult
    signature: StartStopThreadAdvertisement(InterfaceType inInterfaceType, const Inet::IPPrefix
      &inPrefix, bool inAdvertise)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - inInterfaceType
    - inPrefix
    - inPriority
    - inAssign
    argTypes:
    - InterfaceType
    - Inet::IPPrefix
    - RoutePriority
    - bool
    constantsTouched: []
    func_position:
      end: 235
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 235
    functionName: nl::Weave::Warm::Platform::AddRemoveThreadRoute
    functionSourceFile: /src/openweave-core/src/test-apps/TestWarm.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PlatformResult
    signature: AddRemoveThreadRoute(InterfaceType inInterfaceType, const Inet::IPPrefix
      &inPrefix, RoutePriority inPriority, bool inAssign)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - inInterfaceType
    - inPrefix
    - inPriority
    argTypes:
    - InterfaceType
    - Inet::IPPrefix
    - RoutePriority
    constantsTouched: []
    func_position:
      end: 260
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 260
    functionName: nl::Weave::Warm::Platform::SetThreadRoutePriority
    functionSourceFile: /src/openweave-core/src/test-apps/TestWarm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PlatformResult
    signature: SetThreadRoutePriority(InterfaceType inInterfaceType, const Inet::IPPrefix
      &inPrefix, RoutePriority inPriority)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: nl::Weave::Warm::Platform::CriticalSectionEnter
    functionSourceFile: /src/openweave-core/src/test-apps/TestWarm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionEnter(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: nl::Weave::Warm::Platform::CriticalSectionExit
    functionSourceFile: /src/openweave-core/src/test-apps/TestWarm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionExit(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InvokeActions
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 309
    functionName: nl::Weave::Warm::Platform::RequestInvokeActions
    functionSourceFile: /src/openweave-core/src/test-apps/TestWarm.cpp
    functionUses: 0
    functionsReached:
    - InvokeActions
    linkageType: ''
    returnType: void
    signature: RequestInvokeActions(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - inFabricStateDelegate
    argTypes:
    - WarmFabricStateDelegate*
    constantsTouched: []
    func_position:
      end: 322
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 322
    functionName: nl::Weave::Warm::Platform::Init
    functionSourceFile: /src/openweave-core/src/test-apps/TestWarm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Init(WarmFabricStateDelegate *inFabricStateDelegate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:334,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:335,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:336,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:337,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:338,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:339,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 341
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 341
    functionName: InitPlatformState
    functionSourceFile: /src/openweave-core/src/test-apps/TestWarm.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: InitPlatformState(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:348,1
    - Dst: TestGroupKeyStore::TestGroupKeyStore
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:348,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 354
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 354
    functionName: Setup
    functionSourceFile: /src/openweave-core/src/test-apps/TestWarm.cpp
    functionUses: 1
    functionsReached:
    - TestGroupKeyStore::TestGroupKeyStore
    - NL_TEST_ASSERT
    - Init
    linkageType: ''
    returnType: void
    signature: Setup(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitPlatformState
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:363,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:365,1
    - Dst: nl::Weave::Warm::GetFabricState
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:368,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:369,1
    - Dst: nl::Weave::Warm::Init
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:371,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:373,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:374,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:375,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:376,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:377,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:378,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:379,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:380,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:381,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:382,1
    - Dst: nl::Weave::Warm::GetFabricState
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:386,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:387,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:388,1
    - Dst: ClearFabricState
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 392
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 392
    functionName: CheckInit
    functionSourceFile: /src/openweave-core/src/test-apps/TestWarm.cpp
    functionUses: 0
    functionsReached:
    - ClearFabricState
    - NL_TEST_ASSERT
    - memcpy
    - nl::Weave::Warm::Init
    - InitPlatformState
    - nl::Weave::Warm::GetFabricState
    linkageType: ''
    returnType: void
    signature: CheckInit(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitPlatformState
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:412,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:414,1
    - Dst: nl::Weave::Warm::ThreadInterfaceStateChange
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:418,1
    - Dst: CreateFabric
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:419,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:423,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:425,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:427,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:428,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:429,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:431,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:432,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:436,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:436,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:438,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:438,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:440,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:440,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:441,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:441,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:442,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:442,1
    - Dst: nl::Weave::WeaveFabricIdToIPv6GlobalId
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:445,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:447,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:448,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:450,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:451,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:453,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:454,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:455,1
    - Dst: nl::Weave::Warm::GetULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:457,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:458,1
    - Dst: nl::Weave::Warm::GetULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:459,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:460,1
    - Dst: nl::Weave::Warm::ThreadInterfaceStateChange
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:464,1
    - Dst: ClearFabricState
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:465,1
    - Dst: nl::Weave::Warm::GetULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:468,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:469,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:473,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:475,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:477,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:478,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:479,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:481,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:482,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:485,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:485,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:486,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:486,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:487,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:487,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:488,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:488,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:489,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:489,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:492,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:493,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:495,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 49
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 497
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 497
    functionName: CheckThread
    functionSourceFile: /src/openweave-core/src/test-apps/TestWarm.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::ThreadInterfaceStateChange
    - memcmp
    - nl::Weave::Warm::GetULA
    - ClearFabricState
    - NL_TEST_ASSERT
    - CreateFabric
    - memcpy
    - nl::Inet::IPAddress::MakeULA
    - InitPlatformState
    - nl::Weave::WeaveFabricIdToIPv6GlobalId
    linkageType: ''
    returnType: void
    signature: CheckThread(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitPlatformState
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:519,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:521,1
    - Dst: nl::Weave::Warm::WiFiInterfaceStateChange
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:525,1
    - Dst: nl::Weave::Warm::ThreadInterfaceStateChange
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:526,1
    - Dst: CreateFabric
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:527,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:531,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:533,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:535,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:536,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:537,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:539,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:540,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:544,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:544,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:546,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:546,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:548,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:548,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:549,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:549,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:550,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:550,1
    - Dst: nl::Weave::WeaveFabricIdToIPv6GlobalId
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:553,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:555,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:556,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:558,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:559,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:561,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:562,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:564,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:565,1
    - Dst: nl::Weave::Warm::GetULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:567,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:568,1
    - Dst: nl::Weave::Warm::GetULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:569,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:570,1
    - Dst: nl::Weave::Warm::GetULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:571,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:572,1
    - Dst: nl::Weave::Warm::WiFiInterfaceStateChange
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:576,1
    - Dst: nl::Weave::Warm::ThreadInterfaceStateChange
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:577,1
    - Dst: ClearFabricState
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:578,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:582,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:584,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:586,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:587,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:588,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:590,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:591,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:595,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:595,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:596,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:596,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:597,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:597,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:598,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:598,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:599,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:599,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:603,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:604,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:606,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:607,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:609,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:610,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 54
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 611
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 611
    functionName: CheckWiFiThread
    functionSourceFile: /src/openweave-core/src/test-apps/TestWarm.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::ThreadInterfaceStateChange
    - memcmp
    - nl::Weave::Warm::GetULA
    - ClearFabricState
    - NL_TEST_ASSERT
    - CreateFabric
    - memcpy
    - nl::Weave::WeaveFabricIdToIPv6GlobalId
    - InitPlatformState
    - nl::Inet::IPAddress::MakeULA
    - nl::Weave::Warm::WiFiInterfaceStateChange
    linkageType: ''
    returnType: void
    signature: CheckWiFiThread(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitPlatformState
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:632,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:634,1
    - Dst: CreateFabric
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:638,1
    - Dst: nl::Weave::Warm::WiFiInterfaceStateChange
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:639,1
    - Dst: nl::Weave::Warm::ThreadInterfaceStateChange
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:640,1
    - Dst: nl::Weave::Warm::ThreadRoutingStateChange
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:641,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:645,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:647,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:649,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:650,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:651,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:653,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:654,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:658,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:658,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:660,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:660,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:662,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:662,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:663,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:663,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:664,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:664,1
    - Dst: nl::Weave::WeaveFabricIdToIPv6GlobalId
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:667,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:669,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:670,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:672,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:673,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:675,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:676,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:678,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:679,1
    - Dst: nl::Weave::Warm::GetULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:681,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:682,1
    - Dst: nl::Weave::Warm::GetULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:683,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:684,1
    - Dst: nl::Weave::Warm::GetULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:685,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:686,1
    - Dst: ClearFabricState
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:690,1
    - Dst: nl::Weave::Warm::WiFiInterfaceStateChange
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:691,1
    - Dst: nl::Weave::Warm::ThreadInterfaceStateChange
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:692,1
    - Dst: nl::Weave::Warm::ThreadRoutingStateChange
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:693,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:697,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:699,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:701,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:702,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:703,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:705,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:706,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:710,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:710,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:711,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:711,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:712,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:712,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:713,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:713,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:714,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:714,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:718,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:719,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:721,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:722,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:724,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:725,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 56
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 726
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 726
    functionName: CheckWiFiThreadRoute
    functionSourceFile: /src/openweave-core/src/test-apps/TestWarm.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::ThreadInterfaceStateChange
    - memcmp
    - nl::Inet::IPAddress::MakeULA
    - nl::Weave::Warm::GetULA
    - ClearFabricState
    - NL_TEST_ASSERT
    - CreateFabric
    - memcpy
    - nl::Weave::WeaveFabricIdToIPv6GlobalId
    - InitPlatformState
    - nl::Weave::Warm::ThreadRoutingStateChange
    - nl::Weave::Warm::WiFiInterfaceStateChange
    linkageType: ''
    returnType: void
    signature: CheckWiFiThreadRoute(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitPlatformState
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:749,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:751,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:752,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:753,1
    - Dst: CreateFabric
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:757,1
    - Dst: nl::Weave::Warm::WiFiInterfaceStateChange
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:759,1
    - Dst: nl::Weave::Warm::ThreadInterfaceStateChange
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:760,1
    - Dst: nl::Weave::Warm::ThreadRoutingStateChange
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:761,1
    - Dst: nl::Weave::Warm::Profiles::WeaveTunnel::Platform::TunnelInterfaceUp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:763,1
    - Dst: nl::Weave::Warm::Profiles::WeaveTunnel::Platform::ServiceTunnelEstablished
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:765,1
    - Dst: nl::Weave::Warm::Profiles::WeaveTunnel::Platform::ServiceTunnelModeChange
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:767,1
    - Dst: nl::Weave::Warm::Warm::BorderRouterStateChange
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:768,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:772,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:774,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:776,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:778,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:779,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:780,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:782,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:783,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:786,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:786,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:787,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:787,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:788,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:788,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:789,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:789,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:790,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:790,1
    - Dst: nl::Weave::WeaveFabricIdToIPv6GlobalId
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:793,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:795,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:796,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:798,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:799,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:801,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:802,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:804,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:805,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:807,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:811,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:815,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:820,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:825,1
    - Dst: nl::Weave::Warm::Warm::BorderRouterStateChange
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:830,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:835,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:835,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:836,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:836,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:837,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:837,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:838,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:838,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:839,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:839,1
    - Dst: nl::Weave::Warm::Profiles::WeaveTunnel::Platform::TunnelInterfaceDown
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:843,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:849,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:849,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:850,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:850,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:851,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:851,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:852,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:852,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:853,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:853,1
    - Dst: nl::Weave::Warm::WiFiInterfaceStateChange
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:856,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:861,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:861,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:862,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:862,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:863,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:863,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:864,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:864,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:865,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:865,1
    - Dst: ClearFabricState
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:870,1
    - Dst: nl::Weave::Warm::WiFiInterfaceStateChange
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:871,1
    - Dst: nl::Weave::Warm::ThreadInterfaceStateChange
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:872,1
    - Dst: nl::Weave::Warm::ThreadRoutingStateChange
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:873,1
    - Dst: nl::Weave::Warm::Profiles::WeaveTunnel::Platform::TunnelInterfaceDown
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:875,1
    - Dst: nl::Weave::Warm::Profiles::WeaveTunnel::Platform::ServiceTunnelDisconnected
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:877,1
    - Dst: nl::Weave::Warm::Warm::BorderRouterStateChange
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:878,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:882,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:884,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:886,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:888,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:889,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:890,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:892,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:893,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:896,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:896,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:897,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:897,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:898,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:898,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:899,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:899,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:900,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:900,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:904,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:905,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:907,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:908,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:910,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:911,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:913,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:914,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:918,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 99
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 923
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 923
    functionName: CheckWiFiThreadRouteBorderTunnel
    functionSourceFile: /src/openweave-core/src/test-apps/TestWarm.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::ThreadInterfaceStateChange
    - nl::Weave::Warm::Profiles::WeaveTunnel::Platform::ServiceTunnelDisconnected
    - memcmp
    - nl::Inet::IPAddress::MakeULA
    - nl::Weave::Warm::Profiles::WeaveTunnel::Platform::TunnelInterfaceDown
    - ClearFabricState
    - NL_TEST_ASSERT
    - nl::Weave::Warm::Profiles::WeaveTunnel::Platform::TunnelInterfaceUp
    - memset
    - nl::Weave::Warm::Profiles::WeaveTunnel::Platform::ServiceTunnelEstablished
    - CreateFabric
    - memcpy
    - nl::Weave::WeaveFabricIdToIPv6GlobalId
    - nl::Weave::Warm::Profiles::WeaveTunnel::Platform::ServiceTunnelModeChange
    - InitPlatformState
    - nl::Weave::Warm::ThreadRoutingStateChange
    - nl::Weave::Warm::WiFiInterfaceStateChange
    - nl::Weave::Warm::Warm::BorderRouterStateChange
    linkageType: ''
    returnType: void
    signature: CheckWiFiThreadRouteBorderTunnel(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::Security::InitSecureRandomDataSource
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:951,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:952,1
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:959,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:961,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestWarm.cpp:963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 964
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 964
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWarm.cpp
    functionUses: 0
    functionsReached:
    - nlTestRunnerStats
    - nlTestRunner
    - nl_test_set_output_style
    - nl::Weave::Platform::Security::InitSecureRandomDataSource
    - FAIL_ERROR
    linkageType: ''
    returnType: int
    signature: main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:93,1
    - Dst: OF_LWIP_PBUF
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - theContext
    argTypes:
    - struct TestContext*
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: BufferFree
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - OF_LWIP_PBUF
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: void
    signature: BufferFree(struct TestContext* theContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TO_LWIP_PBUF
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:115,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:115,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:120,1
    - Dst: strerror
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:120,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:121,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:130,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:137,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:143,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - theContext
    argTypes:
    - struct TestContext*
    constantsTouched: []
    func_position:
      end: 154
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 154
    functionName: BufferAlloc
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint8_t*>
    - exit
    - TO_LWIP_PBUF
    - memset
    - fprintf
    - strerror
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: BufferAlloc(struct TestContext* theContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BufferAlloc
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:161,1
    - Dst: reinterpret_cast<PacketBuffer*>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - theContext
    argTypes:
    - struct TestContext*
    constantsTouched: []
    func_position:
      end: 170
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 170
    functionName: PrepareTestBuffer
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - BufferAlloc
    - reinterpret_cast<PacketBuffer*>
    linkageType: ''
    returnType: PacketBuffer
    signature: '* PrepareTestBuffer(struct TestContext* theContext)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:183,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:185,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 189
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 189
    functionName: CheckStart
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - PacketBuffer*::Start
    linkageType: ''
    returnType: void
    signature: CheckStart(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:222,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:226,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:240,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:245,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 257
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 257
    functionName: CheckSetStart
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetStart
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: CheckSetStart(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:268,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:270,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 274
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 274
    functionName: CheckDataLength
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: CheckDataLength(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:291,1
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:295,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:301,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:302,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:307,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:311,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:313,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:315,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:319,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:320,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:321,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:327,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:331,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:333,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:335,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:337,1
    - Dst: static_cast<int32_t>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:339,1
    - Dst: static_cast<int32_t>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:340,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:344,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:345,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:346,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:348,1
    - Dst: static_cast<int32_t>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:350,1
    - Dst: static_cast<int32_t>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:351,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 361
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 361
    functionName: CheckSetDataLength
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - static_cast<struct TestContext *>
    - NL_TEST_ASSERT
    - static_cast<int32_t>
    - PrepareTestBuffer
    linkageType: ''
    returnType: void
    signature: CheckSetDataLength(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:372,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:374,1
    - Dst: PacketBuffer*::TotalLength
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 378
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 378
    functionName: CheckTotalLength
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - PacketBuffer*::TotalLength
    linkageType: ''
    returnType: void
    signature: CheckTotalLength(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:389,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:391,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 396
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 396
    functionName: CheckMaxDataLength
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - PacketBuffer*::MaxDataLength
    linkageType: ''
    returnType: void
    signature: CheckMaxDataLength(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:407,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:409,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 414
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 414
    functionName: CheckAvailableDataLength
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: void
    signature: CheckAvailableDataLength(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:425,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:430,1
    - Dst: ReservedSize
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:430,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:434,1
    - Dst: ReservedSize
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:434,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 439
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 439
    functionName: CheckReservedSize
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - ReservedSize
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: CheckReservedSize(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:454,1
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:458,1
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:462,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:478,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:479,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:480,1
    - Dst: PacketBuffer*::AddToEnd
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:482,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:484,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:486,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:487,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:489,1
    - Dst: PacketBuffer*::AddToEnd
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:491,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:493,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:495,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:496,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:497,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 507
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 507
    functionName: CheckAddToEnd
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - PacketBuffer*::AddToEnd
    - static_cast<struct TestContext *>
    linkageType: ''
    returnType: void
    signature: CheckAddToEnd(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:521,1
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:525,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:529,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:530,1
    - Dst: PacketBuffer*::DetachTail
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:539,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:541,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:542,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:546,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 554
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 554
    functionName: CheckDetachTail
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - PacketBuffer*::DetachTail
    - static_cast<struct TestContext *>
    linkageType: ''
    returnType: void
    signature: CheckDetachTail(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:569,1
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:573,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:583,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:584,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:588,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:589,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:596,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:597,1
    - Dst: PacketBuffer*::CompactHead
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:600,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:602,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:607,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:609,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:611,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:611,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:612,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:613,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:617,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:618,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:621,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:626,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 637
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 637
    functionName: CheckCompactHead
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - PacketBuffer*::SetDataLength
    - static_cast<struct TestContext *>
    - NL_TEST_ASSERT
    - PacketBuffer*::MaxDataLength
    - PrepareTestBuffer
    - PacketBuffer*::CompactHead
    linkageType: ''
    returnType: void
    signature: CheckCompactHead(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:657,1
    - Dst: PacketBuffer*::ConsumeHead
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:659,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:663,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:664,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:665,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:669,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:670,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:671,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 681
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 681
    functionName: CheckConsumeHead
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - PacketBuffer*::ConsumeHead
    linkageType: ''
    returnType: void
    signature: CheckConsumeHead(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:697,1
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:701,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:725,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:726,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:731,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:732,1
    - Dst: PacketBuffer*::Consume
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:737,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:741,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:747,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:752,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:757,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 770
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 770
    functionName: CheckConsume
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - static_cast<struct TestContext *>
    - NL_TEST_ASSERT
    - PacketBuffer*::Consume
    - PrepareTestBuffer
    linkageType: ''
    returnType: void
    signature: CheckConsume(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:789,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:800,1
    - Dst: EnsureReservedSize
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:800,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:806,1
    - Dst: EnsureReservedSize
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:806,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:810,1
    - Dst: EnsureReservedSize
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:810,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:811,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 816
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 816
    functionName: CheckEnsureReservedSize
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - EnsureReservedSize
    linkageType: ''
    returnType: void
    signature: CheckEnsureReservedSize(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:835,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:840,1
    - Dst: AlignPayload
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:840,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:857,1
    - Dst: AlignPayload
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:857,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:858,1
    - Dst: Start
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:858,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:862,1
    - Dst: AlignPayload
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:862,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 868
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 868
    functionName: CheckAlignPayload
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - Start
    - AlignPayload
    linkageType: ''
    returnType: void
    signature: CheckAlignPayload(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:875,1
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:879,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:883,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:884,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:890,1
    - Dst: PacketBuffer*::Next
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:890,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:894,1
    - Dst: PacketBuffer*::Next
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:894,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:897,1
    - Dst: PacketBuffer*::Next
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:897,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 903
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 903
    functionName: CheckNext
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - PacketBuffer*::Next
    - static_cast<struct TestContext *>
    linkageType: ''
    returnType: void
    signature: CheckNext(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:914,1
    - Dst: PacketBuffer*::AddRef
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:915,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 921
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 921
    functionName: CheckAddRef
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - PacketBuffer*::AddRef
    linkageType: ''
    returnType: void
    signature: CheckAddRef(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:942,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:946,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:951,1
    - Dst: PacketBuffer*::AllocSize
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:951,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:952,1
    - Dst: TO_LWIP_PBUF
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:956,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:958,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:959,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:960,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:961,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:964,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:972,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 975
      start: 933
    functionDepth: 2
    functionLinenumber: 933
    functionLinenumberEnd: 975
    functionName: CheckNewWithAvailableSizeAndFree
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - TO_LWIP_PBUF
    - NL_TEST_ASSERT
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - PacketBuffer*::AllocSize
    linkageType: ''
    returnType: void
    signature: CheckNewWithAvailableSizeAndFree(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:990,1
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:994,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:1011,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:1012,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:1020,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:1022,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:1026,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:1030,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:1035,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1054
      start: 988
    functionDepth: 2
    functionLinenumber: 988
    functionLinenumberEnd: 1054
    functionName: CheckFree
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - nl::Weave::System::PacketBuffer::Free
    - static_cast<struct TestContext *>
    linkageType: ''
    returnType: void
    signature: CheckFree(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:1067,1
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:1071,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:1084,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:1085,1
    - Dst: nl::Weave::System::PacketBuffer::FreeHead
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:1089,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:1091,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1099
      start: 1065
    functionDepth: 3
    functionLinenumber: 1065
    functionLinenumberEnd: 1099
    functionName: CheckFreeHead
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - nl::Weave::System::PacketBuffer::FreeHead
    - static_cast<struct TestContext *>
    linkageType: ''
    returnType: void
    signature: CheckFreeHead(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1109
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1109
    functionName: CheckBuildFreeList
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CheckBuildFreeList(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<TestContext*>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:1148,1
    - Dst: BufferAlloc
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:1152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1157
      start: 1146
    functionDepth: 0
    functionLinenumber: 1146
    functionLinenumberEnd: 1157
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - BufferAlloc
    - reinterpret_cast<TestContext*>
    linkageType: ''
    returnType: int
    signature: TestSetup(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<TestContext*>
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:1166,1
    - Dst: BufferFree
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:1170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1175
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1175
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - BufferFree
    - reinterpret_cast<TestContext*>
    linkageType: ''
    returnType: int
    signature: TestTeardown(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_init
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:1187,1
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:1191,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:1194,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp:1196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1177
    functionDepth: 1
    functionLinenumber: 1177
    functionLinenumberEnd: 1197
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - tcpip_init
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 79
    functionName: TAKEOptions::TAKEOptions
    functionSourceFile: /src/openweave-core/src/test-apps/TAKEOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TAKEOptions::TAKEOptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TAKEOptions.cpp:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: TAKEOptions::HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/TAKEOptions.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: TAKEOptions::HandleOption(const char *progName, OptionSet *optSet,
      int id, const char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StoreTokenAuthData
      Src: /src/openweave-core/src/test-apps/TAKEOptions.cpp:102,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TAKEOptions.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: TAKEOptions::PrepopulateTokenData
    functionSourceFile: /src/openweave-core/src/test-apps/TAKEOptions.cpp
    functionUses: 0
    functionsReached:
    - StoreTokenAuthData
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TAKEOptions::PrepopulateTokenData()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: MockTAKEChallengerDelegate::MockTAKEChallengerDelegate
    functionSourceFile: /src/openweave-core/src/test-apps/TAKEOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MockTAKEChallengerDelegate::MockTAKEChallengerDelegate()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: MockTAKEChallengerDelegate::RewindIdentificationKeyIterator
    functionSourceFile: /src/openweave-core/src/test-apps/TAKEOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockTAKEChallengerDelegate::RewindIdentificationKeyIterator()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TAKEOptions.cpp:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ' tokenId'
    - identificationKey
    - ' identificationKeyLen'
    argTypes:
    - uint64_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 146
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 146
    functionName: MockTAKEChallengerDelegate::GetNextIdentificationKey
    functionSourceFile: /src/openweave-core/src/test-apps/TAKEOptions.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockTAKEChallengerDelegate::GetNextIdentificationKey(uint64_t & tokenId,
      uint8_t *identificationKey, uint16_t & identificationKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TAKEOptions.cpp:172,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TAKEOptions.cpp:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 6
    argNames:
    - tokenId
    - takeConfig
    - authKey
    - authKeyLen
    - encAuthBlob
    - encAuthBlobLen
    argTypes:
    - uint64_t
    - uint8_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 180
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 180
    functionName: MockTAKEChallengerDelegate::GetTokenAuthData
    functionSourceFile: /src/openweave-core/src/test-apps/TAKEOptions.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockTAKEChallengerDelegate::GetTokenAuthData(uint64_t tokenId, uint8_t
      &takeConfig, uint8_t *authKey, uint16_t &authKeyLen, uint8_t *encAuthBlob, uint16_t
      &encAuthBlobLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TAKEOptions.cpp:193,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TAKEOptions.cpp:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 6
    argNames:
    - tokenId
    - takeConfig
    - authKey
    - authKeyLen
    - encAuthBlob
    - encAuthBlobLen
    argTypes:
    - uint64_t
    - uint8_t
    - uint8_t*
    - uint16_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 204
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 204
    functionName: MockTAKEChallengerDelegate::StoreTokenAuthData
    functionSourceFile: /src/openweave-core/src/test-apps/TAKEOptions.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockTAKEChallengerDelegate::StoreTokenAuthData(uint64_t tokenId, uint8_t
      takeConfig, const uint8_t *authKey, uint16_t authKeyLen, const uint8_t *encAuthBlob,
      uint16_t encAuthBlobLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - tokenId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 216
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 216
    functionName: MockTAKEChallengerDelegate::ClearTokenAuthData
    functionSourceFile: /src/openweave-core/src/test-apps/TAKEOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockTAKEChallengerDelegate::ClearTokenAuthData(uint64_t tokenId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TAKEOptions.cpp:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - tokenId
    - ' curveOID'
    - ' tokenPubKey'
    argTypes:
    - uint64_t
    - OID
    - EncodedECPublicKey
    constantsTouched: []
    func_position:
      end: 233
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 233
    functionName: MockTAKEChallengerDelegate::GetTokenPublicKey
    functionSourceFile: /src/openweave-core/src/test-apps/TAKEOptions.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockTAKEChallengerDelegate::GetTokenPublicKey(uint64_t tokenId, OID&
      curveOID, EncodedECPublicKey& tokenPubKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TAKEOptions.cpp:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - challengerID
    - challengerIDLen
    argTypes:
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 246
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 246
    functionName: MockTAKEChallengerDelegate::GetChallengerID
    functionSourceFile: /src/openweave-core/src/test-apps/TAKEOptions.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockTAKEChallengerDelegate::GetChallengerID(uint8_t *challengerID,
      uint8_t &challengerIDLen) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TAKEOptions.cpp:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tokenMasterKey
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: MockTAKETokenDelegate::GetTokenMasterKey
    functionSourceFile: /src/openweave-core/src/test-apps/TAKEOptions.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockTAKETokenDelegate::GetTokenMasterKey(uint8_t *tokenMasterKey) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TAKEOptions.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - identificationRootKey
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: MockTAKETokenDelegate::GetIdentificationRootKey
    functionSourceFile: /src/openweave-core/src/test-apps/TAKEOptions.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockTAKETokenDelegate::GetIdentificationRootKey(uint8_t *identificationRootKey)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TAKEOptions.cpp:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' curveOID'
    - ' tokenPrivKey'
    argTypes:
    - OID
    - EncodedECPrivateKey
    constantsTouched: []
    func_position:
      end: 275
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 275
    functionName: MockTAKETokenDelegate::GetTokenPrivateKey
    functionSourceFile: /src/openweave-core/src/test-apps/TAKEOptions.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockTAKETokenDelegate::GetTokenPrivateKey(OID& curveOID, EncodedECPrivateKey&
      tokenPrivKey)  const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - takeTime
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 285
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 285
    functionName: MockTAKETokenDelegate::GetTAKETime
    functionSourceFile: /src/openweave-core/src/test-apps/TAKEOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockTAKETokenDelegate::GetTAKETime(uint32_t &takeTime) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTunnelServer
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.h:152,1
    - Dst: WeaveTunnelServer
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.h:172,1
    - Dst: VirtualRouteTable::VirtualRouteTable
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.h:227,1
    - Dst: ConnectionTable::ConnectionTable
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.h:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 230
    functionName: WeaveTunnelServer
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.h
    functionUses: 1
    functionsReached:
    - VirtualRouteTable::VirtualRouteTable
    - WeaveTunnelServer
    - ConnectionTable::ConnectionTable
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeaveTunnelServer
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:215,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:216,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' certSet'
    argTypes:
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 218
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 218
    functionName: LoadRootCert
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrFail
    - LoadCert
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: LoadRootCert(WeaveCertificateSet& certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:226,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:227,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' certSet'
    argTypes:
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 228
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 228
    functionName: LoadIntermediateCert
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrFail
    - LoadCert
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: LoadIntermediateCert(WeaveCertificateSet& certSet, uint16_t decodeFlags
      = 0)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:236,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:237,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' certSet'
    argTypes:
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 238
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 238
    functionName: LoadSigningCert
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrFail
    - LoadCert
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: LoadSigningCert(WeaveCertificateSet& certSet, uint16_t decodeFlags
      = 0)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadRootCert
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:242,1
    - Dst: LoadIntermediateCert
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:243,1
    - Dst: LoadSigningCert
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' certSet'
    argTypes:
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: LoadAllCerts
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp
    functionUses: 0
    functionsReached:
    - LoadRootCert
    - LoadSigningCert
    - LoadIntermediateCert
    linkageType: ''
    returnType: void
    signature: LoadAllCerts(WeaveCertificateSet& certSet, uint16_t decodeFlags = 0)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddTrustedKey
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:255,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:256,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' certSet'
    argTypes:
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 257
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 257
    functionName: LoadRootKey
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp
    functionUses: 0
    functionsReached:
    - AddTrustedKey
    - VerifyOrFail
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: LoadRootKey(WeaveCertificateSet& certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:265,1
    - Dst: PackCertTime
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:274,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:275,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ' validContext'
    argTypes:
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 276
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 276
    functionName: InitValidationContext
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrFail
    - PackCertTime
    - nl::ErrorStr
    - memset
    linkageType: ''
    returnType: void
    signature: InitValidationContext(ValidationContext& validContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveCertificateSet::Init
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:287,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:288,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:288,1
    - Dst: LoadAllCerts
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:290,1
    - Dst: WeaveSignatureGenerator::GenerateSignature
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:295,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:296,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:296,1
    - Dst: WeaveCertificateSet::Clear
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:302,1
    - Dst: LoadRootCert
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:305,1
    - Dst: InitValidationContext
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:308,1
    - Dst: VerifyWeaveSignature
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:311,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:315,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:315,1
    - Dst: WeaveCertificateSet::Release
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:317,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 320
      start: 278
    functionDepth: 4
    functionLinenumber: 278
    functionLinenumberEnd: 320
    functionName: WeaveSignatureTest_SignTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp
    functionUses: 0
    functionsReached:
    - WeaveCertificateSet::Init
    - LoadAllCerts
    - WeaveCertificateSet::Release
    - LoadRootCert
    - VerifyWeaveSignature
    - InitValidationContext
    - VerifyOrFail
    - printf
    - WeaveSignatureGenerator::GenerateSignature
    - WeaveCertificateSet::Clear
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: WeaveSignatureTest_SignTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveCertificateSet::Init
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:331,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:332,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:332,1
    - Dst: LoadSigningCert
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:335,1
    - Dst: WeaveSignatureGenerator::GenerateSignature
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:341,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:342,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:342,1
    - Dst: WeaveCertificateSet::Clear
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:348,1
    - Dst: LoadAllCerts
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:351,1
    - Dst: InitValidationContext
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:354,1
    - Dst: VerifyWeaveSignature
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:357,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:361,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:361,1
    - Dst: WeaveCertificateSet::Release
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:363,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 366
      start: 322
    functionDepth: 4
    functionLinenumber: 322
    functionLinenumberEnd: 366
    functionName: WeaveSignatureTest_SignTest_CertRef
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp
    functionUses: 0
    functionsReached:
    - WeaveCertificateSet::Init
    - LoadAllCerts
    - WeaveCertificateSet::Release
    - LoadSigningCert
    - VerifyWeaveSignature
    - InitValidationContext
    - VerifyOrFail
    - printf
    - WeaveSignatureGenerator::GenerateSignature
    - WeaveCertificateSet::Clear
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: WeaveSignatureTest_SignTest_CertRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveCertificateSet::Init
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:377,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:378,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:378,1
    - Dst: LoadSigningCert
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:381,1
    - Dst: WeaveSignatureGenerator::GenerateSignature
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:387,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:388,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:388,1
    - Dst: WeaveCertificateSet::Clear
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:394,1
    - Dst: LoadAllCerts
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:397,1
    - Dst: InitValidationContext
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:400,1
    - Dst: VerifyWeaveSignature
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:403,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:407,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:407,1
    - Dst: WeaveCertificateSet::Release
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:409,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 412
      start: 368
    functionDepth: 4
    functionLinenumber: 368
    functionLinenumberEnd: 412
    functionName: WeaveSignatureTest_SignTest_ECDSAWithSHA256
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp
    functionUses: 0
    functionsReached:
    - WeaveCertificateSet::Init
    - LoadAllCerts
    - WeaveCertificateSet::Release
    - LoadSigningCert
    - VerifyWeaveSignature
    - InitValidationContext
    - VerifyOrFail
    - printf
    - WeaveSignatureGenerator::GenerateSignature
    - WeaveCertificateSet::Clear
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: WeaveSignatureTest_SignTest_ECDSAWithSHA256()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveCertificateSet::Init
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:421,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:422,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:422,1
    - Dst: LoadRootKey
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:425,1
    - Dst: InitValidationContext
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:428,1
    - Dst: VerifyWeaveSignature
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:430,1
    - Dst: PrintCertValidationResults
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:436,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:437,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:437,1
    - Dst: WeaveCertificateSet::Release
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:440,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 443
      start: 414
    functionDepth: 3
    functionLinenumber: 414
    functionLinenumberEnd: 443
    functionName: WeaveSignatureTest_VerifyTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp
    functionUses: 0
    functionsReached:
    - WeaveCertificateSet::Init
    - PrintCertValidationResults
    - WeaveCertificateSet::Release
    - VerifyWeaveSignature
    - InitValidationContext
    - VerifyOrFail
    - printf
    - nl::ErrorStr
    - LoadRootKey
    linkageType: ''
    returnType: void
    signature: WeaveSignatureTest_VerifyTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveCertificateSet::Init
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:452,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:453,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:453,1
    - Dst: LoadAllCerts
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:456,1
    - Dst: InitValidationContext
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:459,1
    - Dst: VerifyWeaveSignature
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:461,1
    - Dst: PrintCertValidationResults
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:468,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:469,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:469,1
    - Dst: WeaveCertificateSet::Release
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:472,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 475
      start: 445
    functionDepth: 4
    functionLinenumber: 445
    functionLinenumberEnd: 475
    functionName: WeaveSignatureTest_VerifyTest_CertRef_ECDSAWithSHA256
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp
    functionUses: 0
    functionsReached:
    - WeaveCertificateSet::Init
    - LoadAllCerts
    - PrintCertValidationResults
    - WeaveCertificateSet::Release
    - VerifyWeaveSignature
    - InitValidationContext
    - VerifyOrFail
    - printf
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: WeaveSignatureTest_VerifyTest_CertRef_ECDSAWithSHA256()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveCertificateSet::Init
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:484,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:485,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:485,1
    - Dst: InitValidationContext
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:490,1
    - Dst: VerifyWeaveSignature
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:492,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:497,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:497,1
    - Dst: WeaveCertificateSet::Release
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:499,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 502
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 502
    functionName: WeaveSignatureTest_FailureTest_NoCerts
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp
    functionUses: 0
    functionsReached:
    - WeaveCertificateSet::Init
    - WeaveCertificateSet::Release
    - VerifyWeaveSignature
    - InitValidationContext
    - VerifyOrFail
    - printf
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: WeaveSignatureTest_FailureTest_NoCerts()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveCertificateSet::Init
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:511,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:512,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:512,1
    - Dst: LoadRootCert
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:515,1
    - Dst: LoadIntermediateCert
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:516,1
    - Dst: InitValidationContext
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:519,1
    - Dst: VerifyWeaveSignature
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:521,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:526,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:526,1
    - Dst: WeaveCertificateSet::Release
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:528,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 531
      start: 504
    functionDepth: 3
    functionLinenumber: 504
    functionLinenumberEnd: 531
    functionName: WeaveSignatureTest_FailureTest_NoSigningCert
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp
    functionUses: 0
    functionsReached:
    - WeaveCertificateSet::Init
    - WeaveCertificateSet::Release
    - LoadRootCert
    - VerifyWeaveSignature
    - InitValidationContext
    - VerifyOrFail
    - printf
    - LoadIntermediateCert
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: WeaveSignatureTest_FailureTest_NoSigningCert()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveCertificateSet::Init
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:540,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:541,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:541,1
    - Dst: LoadRootCert
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:544,1
    - Dst: LoadSigningCert
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:545,1
    - Dst: InitValidationContext
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:548,1
    - Dst: VerifyWeaveSignature
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:550,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:555,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:555,1
    - Dst: WeaveCertificateSet::Release
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:557,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 560
      start: 533
    functionDepth: 3
    functionLinenumber: 533
    functionLinenumberEnd: 560
    functionName: WeaveSignatureTest_FailureTest_NoIntermediateCert
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp
    functionUses: 0
    functionsReached:
    - WeaveCertificateSet::Init
    - WeaveCertificateSet::Release
    - LoadRootCert
    - LoadSigningCert
    - VerifyWeaveSignature
    - InitValidationContext
    - VerifyOrFail
    - printf
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: WeaveSignatureTest_FailureTest_NoIntermediateCert()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveCertificateSet::Init
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:581,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:582,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:582,1
    - Dst: LoadRootKey
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:585,1
    - Dst: InitValidationContext
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:588,1
    - Dst: VerifyWeaveSignature
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:590,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:595,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:595,1
    - Dst: WeaveCertificateSet::Release
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:597,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 601
      start: 562
    functionDepth: 3
    functionLinenumber: 562
    functionLinenumberEnd: 601
    functionName: WeaveSignatureTest_FailureTest_BadHashLength
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp
    functionUses: 0
    functionsReached:
    - WeaveCertificateSet::Init
    - WeaveCertificateSet::Release
    - VerifyWeaveSignature
    - InitValidationContext
    - VerifyOrFail
    - printf
    - nl::ErrorStr
    - LoadRootKey
    linkageType: ''
    returnType: void
    signature: WeaveSignatureTest_FailureTest_BadHashLength()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveCertificateSet::Init
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:610,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:611,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:611,1
    - Dst: LoadRootKey
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:614,1
    - Dst: InitValidationContext
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:617,1
    - Dst: VerifyWeaveSignature
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:622,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:627,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:627,1
    - Dst: WeaveCertificateSet::Release
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:629,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 635
      start: 603
    functionDepth: 3
    functionLinenumber: 603
    functionLinenumberEnd: 635
    functionName: WeaveSignatureTest_FailureTest_BadHash_ECDSAWithSHA1
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp
    functionUses: 0
    functionsReached:
    - WeaveCertificateSet::Init
    - WeaveCertificateSet::Release
    - VerifyWeaveSignature
    - InitValidationContext
    - VerifyOrFail
    - printf
    - nl::ErrorStr
    - LoadRootKey
    linkageType: ''
    returnType: void
    signature: WeaveSignatureTest_FailureTest_BadHash_ECDSAWithSHA1()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveCertificateSet::Init
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:644,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:645,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:645,1
    - Dst: LoadAllCerts
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:648,1
    - Dst: InitValidationContext
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:651,1
    - Dst: VerifyWeaveSignature
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:656,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:661,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:661,1
    - Dst: WeaveCertificateSet::Release
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:663,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 669
      start: 637
    functionDepth: 4
    functionLinenumber: 637
    functionLinenumberEnd: 669
    functionName: WeaveSignatureTest_FailureTest_BadHash_ECDSAWithSHA256
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp
    functionUses: 0
    functionsReached:
    - WeaveCertificateSet::Init
    - LoadAllCerts
    - WeaveCertificateSet::Release
    - VerifyWeaveSignature
    - InitValidationContext
    - VerifyOrFail
    - printf
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: WeaveSignatureTest_FailureTest_BadHash_ECDSAWithSHA256()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveCertificateSet::Init
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:680,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:681,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:681,1
    - Dst: LoadSigningCert
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:684,1
    - Dst: WeaveSignatureGenerator::GenerateSignature
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:690,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:691,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:691,1
    - Dst: WeaveCertificateSet::Clear
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:697,1
    - Dst: InsertRelatedCertificatesIntoWeaveSignature
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:700,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:703,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:703,1
    - Dst: LoadRootCert
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:706,1
    - Dst: LoadIntermediateCert
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:707,1
    - Dst: InitValidationContext
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:710,1
    - Dst: VerifyWeaveSignature
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:713,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:717,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:717,1
    - Dst: WeaveCertificateSet::Release
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:719,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 722
      start: 671
    functionDepth: 3
    functionLinenumber: 671
    functionLinenumberEnd: 722
    functionName: WeaveSignatureTest_InsertRelatedCertsTest_SingleCert
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp
    functionUses: 0
    functionsReached:
    - WeaveCertificateSet::Init
    - WeaveCertificateSet::Release
    - LoadRootCert
    - LoadSigningCert
    - VerifyWeaveSignature
    - InitValidationContext
    - VerifyOrFail
    - printf
    - LoadIntermediateCert
    - InsertRelatedCertificatesIntoWeaveSignature
    - WeaveSignatureGenerator::GenerateSignature
    - WeaveCertificateSet::Clear
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: WeaveSignatureTest_InsertRelatedCertsTest_SingleCert()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveCertificateSet::Init
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:735,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:736,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:736,1
    - Dst: LoadSigningCert
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:739,1
    - Dst: WeaveSignatureGenerator::GenerateSignature
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:745,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:746,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:746,1
    - Dst: WeaveCertificateSet::Clear
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:752,1
    - Dst: LoadIntermediateCert
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:755,1
    - Dst: LoadSigningCert
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:756,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:762,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:763,1
    - Dst: WeaveCertificateSet::SaveCerts
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:764,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:765,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:766,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:767,1
    - Dst: InsertRelatedCertificatesIntoWeaveSignature
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:771,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:774,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:774,1
    - Dst: WeaveCertificateSet::Clear
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:777,1
    - Dst: LoadRootKey
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:780,1
    - Dst: InitValidationContext
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:783,1
    - Dst: VerifyWeaveSignature
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:786,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:790,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:790,1
    - Dst: WeaveCertificateSet::Release
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:792,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 795
      start: 724
    functionDepth: 3
    functionLinenumber: 724
    functionLinenumberEnd: 795
    functionName: WeaveSignatureTest_InsertRelatedCertsTest_MultipleCerts
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp
    functionUses: 0
    functionsReached:
    - WeaveCertificateSet::SaveCerts
    - LoadSigningCert
    - printf
    - LoadIntermediateCert
    - InsertRelatedCertificatesIntoWeaveSignature
    - VerifyWeaveSignature
    - VerifyOrFail
    - TLVWriter::GetLengthWritten
    - LoadRootKey
    - nl::ErrorStr
    - WeaveCertificateSet::Init
    - InitValidationContext
    - WeaveCertificateSet::Release
    - TLVWriter::Finalize
    - TLVWriter::Init
    - TLVWriter::EndContainer
    - WeaveSignatureGenerator::GenerateSignature
    - WeaveCertificateSet::Clear
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: void
    signature: WeaveSignatureTest_InsertRelatedCertsTest_MultipleCerts()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetWeaveSignatureAlgo
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:802,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:803,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:803,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:804,1
    - Dst: GetWeaveSignatureAlgo
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:806,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:807,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:807,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:808,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 811
      start: 797
    functionDepth: 2
    functionLinenumber: 797
    functionLinenumberEnd: 811
    functionName: WeaveSignatureTest_GetWeaveSignatureAlgoTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrFail
    - printf
    - GetWeaveSignatureAlgo
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: WeaveSignatureTest_GetWeaveSignatureAlgoTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::Security::InitSecureRandomDataSource
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:818,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:819,1
    - Dst: WeaveSignatureTest_VerifyTest
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:822,1
    - Dst: WeaveSignatureTest_VerifyTest_CertRef_ECDSAWithSHA256
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:823,1
    - Dst: WeaveSignatureTest_SignTest
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:825,1
    - Dst: WeaveSignatureTest_SignTest_CertRef
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:826,1
    - Dst: WeaveSignatureTest_SignTest_ECDSAWithSHA256
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:827,1
    - Dst: WeaveSignatureTest_FailureTest_NoCerts
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:829,1
    - Dst: WeaveSignatureTest_FailureTest_NoSigningCert
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:830,1
    - Dst: WeaveSignatureTest_FailureTest_NoIntermediateCert
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:831,1
    - Dst: WeaveSignatureTest_FailureTest_BadHashLength
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:832,1
    - Dst: WeaveSignatureTest_FailureTest_BadHash_ECDSAWithSHA1
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:833,1
    - Dst: WeaveSignatureTest_FailureTest_BadHash_ECDSAWithSHA256
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:834,1
    - Dst: WeaveSignatureTest_InsertRelatedCertsTest_SingleCert
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:836,1
    - Dst: WeaveSignatureTest_InsertRelatedCertsTest_MultipleCerts
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:837,1
    - Dst: WeaveSignatureTest_GetWeaveSignatureAlgoTest
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:839,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 842
      start: 814
    functionDepth: 5
    functionLinenumber: 814
    functionLinenumberEnd: 842
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp
    functionUses: 0
    functionsReached:
    - WeaveSignatureTest_GetWeaveSignatureAlgoTest
    - WeaveSignatureTest_VerifyTest_CertRef_ECDSAWithSHA256
    - WeaveSignatureTest_SignTest_CertRef
    - WeaveSignatureTest_SignTest_ECDSAWithSHA256
    - WeaveSignatureTest_VerifyTest
    - WeaveSignatureTest_FailureTest_NoSigningCert
    - WeaveSignatureTest_FailureTest_BadHash_ECDSAWithSHA1
    - nl::Weave::Platform::Security::InitSecureRandomDataSource
    - WeaveSignatureTest_FailureTest_BadHash_ECDSAWithSHA256
    - WeaveSignatureTest_FailureTest_NoCerts
    - WeaveSignatureTest_FailureTest_BadHashLength
    - WeaveSignatureTest_InsertRelatedCertsTest_SingleCert
    - WeaveSignatureTest_InsertRelatedCertsTest_MultipleCerts
    - printf
    - WeaveSignatureTest_FailureTest_NoIntermediateCert
    - WeaveSignatureTest_SignTest
    - FAIL_ERROR
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: nl::Weave::Profiles::SoftwareUpdateClient::SoftwareUpdateClient
    functionSourceFile: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SoftwareUpdateClient::SoftwareUpdateClient()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: SoftwareUpdateClient::~SoftwareUpdateClient()
    functionSourceFile: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SoftwareUpdateClient::~SoftwareUpdateClient()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: nl::Weave::Profiles::SoftwareUpdateClient::Init
    functionSourceFile: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SoftwareUpdateClient::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: nl::Weave::Profiles::SoftwareUpdateClient::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SoftwareUpdateClient::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:75,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:80,1
    - Dst: nl::Weave::Profiles::SoftwareUpdateClient::SendImageQueryRequest
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - con
    argTypes:
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 85
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 85
    functionName: nl::Weave::Profiles::SoftwareUpdateClient::SendImageQueryRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp
    functionUses: 1
    functionsReached:
    - Close
    - nl::Weave::Profiles::SoftwareUpdateClient::SendImageQueryRequest
    - NewContext
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SoftwareUpdateClient::SendImageQueryRequest(WeaveConnection *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SoftwareUpdateClient::SendImageQueryRequest
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nodeId
    - nodeAddr
    argTypes:
    - uint64_t
    - IPAddress
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: nl::Weave::Profiles::SoftwareUpdateClient::SendImageQueryRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::SoftwareUpdateClient::SendImageQueryRequest
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SoftwareUpdateClient::SendImageQueryRequest(uint64_t nodeId, IPAddress
      nodeAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:98,1
    - Dst: SelectNodeAddress
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:103,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:106,1
    - Dst: nl::Weave::Profiles::SoftwareUpdateClient::SendImageQueryRequest
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - nodeId
    - nodeAddr
    - port
    argTypes:
    - uint64_t
    - IPAddress
    - uint16_t
    constantsTouched: []
    func_position:
      end: 111
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 111
    functionName: nl::Weave::Profiles::SoftwareUpdateClient::SendImageQueryRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp
    functionUses: 3
    functionsReached:
    - Close
    - NewContext
    - nl::Weave::Profiles::SoftwareUpdateClient::SendImageQueryRequest
    - SelectNodeAddress
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SoftwareUpdateClient::SendImageQueryRequest(uint64_t nodeId, IPAddress
      nodeAddr, uint16_t port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:115,1
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:130,1
    - Dst: ReferencedString::init
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:132,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:132,1
    - Dst: IntegrityTypeList::init
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:136,1
    - Dst: UpdateSchemeList::init
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:140,1
    - Dst: ImageQuery::init
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:143,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:145,1
    - Dst: ImageQuery::pack
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:146,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:149,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:153,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:154,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 160
    functionName: nl::Weave::Profiles::SoftwareUpdateClient::SendImageQueryRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp
    functionUses: 3
    functionsReached:
    - UpdateSchemeList::init
    - ReferencedString::init
    - ImageQuery::init
    - SendMessage
    - ReferencedString::ReferencedString
    - ImageQuery::pack
    - strlen
    - printf
    - Close
    - nl::Weave::System::PacketBuffer::New
    - IntegrityTypeList::init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SoftwareUpdateClient::SendImageQueryRequest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:165,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:172,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:178,1
    - Dst: nl::Weave::Profiles::StatusReporting::StatusReport::parse
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:181,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:183,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:187,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:196,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:202,1
    - Dst: ImageQueryResponse::parse
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:202,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:203,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:204,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:204,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:204,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:205,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:206,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:207,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:208,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:209,1
    - Dst: ImageQueryResponse::versionSpec::printString
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:209,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:210,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:211,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:212,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:213,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:214,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:215,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:218,1
    - Dst: SoftwareUpdateClient*::ExchangeCtx::Close
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:221,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp:224,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 6
    argNames:
    - ec
    - packetInfo
    - msgInfo
    - profileId
    - msgType
    - payloadImageQueryResponse
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 226
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 226
    functionName: nl::Weave::Profiles::SoftwareUpdateClient::HandleImageQueryResponse
    functionSourceFile: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - ImageQueryResponse::versionSpec::printString
    - ImageQueryResponse::parse
    - nl::Weave::System::PacketBuffer::Free
    - SoftwareUpdateClient*::ExchangeCtx::Close
    - nl::Weave::Profiles::StatusReporting::StatusReport::parse
    - printf
    - DumpMemory
    - PacketBuffer*::Start
    linkageType: ''
    returnType: void
    signature: SoftwareUpdateClient::HandleImageQueryResponse(ExchangeContext *ec,
      const IPPacketInfo *packetInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId,
      uint8_t msgType, PacketBuffer *payloadImageQueryResponse)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ec
    argTypes:
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: nl::Weave::Profiles::SoftwareUpdateClient::SetExchangeCtx
    functionSourceFile: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SoftwareUpdateClient::SetExchangeCtx(ExchangeContext *ec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aBuffer
    argTypes:
    - System::PacketBuffer*
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: PacketBufferAlloc
    functionSourceFile: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: PacketBufferAlloc(System::PacketBuffer *&aBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - aBuffer
    argTypes:
    - System::PacketBuffer*
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: PacketBufferFree
    functionSourceFile: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    linkageType: ''
    returnType: void
    signature: PacketBufferFree(System::PacketBuffer *&aBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: CheckDefaultConstruction
    functionSourceFile: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CheckDefaultConstruction(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:88,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: CheckGetBufferAccessor
    functionSourceFile: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - Profiles::RetainedPacketBuffer::GetBuffer
    linkageType: ''
    returnType: void
    signature: CheckGetBufferAccessor(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:102,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:103,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:105,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: CheckIsRetainingAccessor
    functionSourceFile: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - Profiles::RetainedPacketBuffer::GetBuffer
    - Profiles::RetainedPacketBuffer::IsRetaining
    linkageType: ''
    returnType: void
    signature: CheckIsRetainingAccessor(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:120,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:121,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:123,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:124,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:126,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:127,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:129,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 131
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 131
    functionName: CheckCopyConstructionWithoutRetainedBuffer
    functionSourceFile: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - Profiles::RetainedPacketBuffer::GetBuffer
    - Profiles::RetainedPacketBuffer::IsRetaining
    linkageType: ''
    returnType: void
    signature: CheckCopyConstructionWithoutRetainedBuffer(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:144,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:145,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:147,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:148,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:150,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:151,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:153,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:154,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:158,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:159,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:161,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:162,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:164,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:165,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:167,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 169
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 169
    functionName: CheckAssignmentWithoutRetainedBuffer
    functionSourceFile: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - Profiles::RetainedPacketBuffer::GetBuffer
    - Profiles::RetainedPacketBuffer::IsRetaining
    linkageType: ''
    returnType: void
    signature: CheckAssignmentWithoutRetainedBuffer(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:181,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:182,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:184,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:185,1
    - Dst: Profiles::RetainedPacketBuffer::Release
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:187,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:189,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:190,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:192,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 194
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 194
    functionName: CheckReleaseWithoutRetainedBuffer
    functionSourceFile: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - Profiles::RetainedPacketBuffer::GetBuffer
    - Profiles::RetainedPacketBuffer::IsRetaining
    - Profiles::RetainedPacketBuffer::Release
    linkageType: ''
    returnType: void
    signature: CheckReleaseWithoutRetainedBuffer(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:206,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:207,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:209,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:210,1
    - Dst: Profiles::RetainedPacketBuffer::Retain
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:212,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:214,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:215,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:217,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:218,1
    - Dst: Profiles::RetainedPacketBuffer::Release
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:220,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:222,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:223,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:225,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 227
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 227
    functionName: CheckRetainWithNullPointer
    functionSourceFile: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - Profiles::RetainedPacketBuffer::Retain
    - NL_TEST_ASSERT
    - Profiles::RetainedPacketBuffer::GetBuffer
    - Profiles::RetainedPacketBuffer::IsRetaining
    - Profiles::RetainedPacketBuffer::Release
    linkageType: ''
    returnType: void
    signature: CheckRetainWithNullPointer(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:246,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:247,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:249,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:250,1
    - Dst: PacketBufferAlloc
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:254,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:255,1
    - Dst: Profiles::RetainedPacketBuffer::Retain
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:257,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:259,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:260,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:261,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:263,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:264,1
    - Dst: PacketBufferFree
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:274,1
    - Dst: NL_TEST_ASSERT_NO_BUFFERS_IN_USE
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 279
      start: 234
    functionDepth: 4
    functionLinenumber: 234
    functionLinenumberEnd: 279
    functionName: CheckRetainAllocatedBufferWithImplicitRelease
    functionSourceFile: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - Profiles::RetainedPacketBuffer::Retain
    - NL_TEST_ASSERT
    - PacketBufferFree
    - PacketBufferAlloc
    - NL_TEST_ASSERT_NO_BUFFERS_IN_USE
    - Profiles::RetainedPacketBuffer::GetBuffer
    - Profiles::RetainedPacketBuffer::IsRetaining
    linkageType: ''
    returnType: void
    signature: CheckRetainAllocatedBufferWithImplicitRelease(nlTestSuite *inSuite,
      void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:293,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:294,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:296,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:297,1
    - Dst: PacketBufferAlloc
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:301,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:302,1
    - Dst: Profiles::RetainedPacketBuffer::Retain
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:304,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:306,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:307,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:308,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:310,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:311,1
    - Dst: Profiles::RetainedPacketBuffer::Release
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:318,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:320,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:321,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:323,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:324,1
    - Dst: PacketBufferFree
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:329,1
    - Dst: NL_TEST_ASSERT_NO_BUFFERS_IN_USE
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 334
      start: 286
    functionDepth: 4
    functionLinenumber: 286
    functionLinenumberEnd: 334
    functionName: CheckRetainAllocatedBufferWithExplicitRelease
    functionSourceFile: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - Profiles::RetainedPacketBuffer::Retain
    - NL_TEST_ASSERT
    - PacketBufferFree
    - PacketBufferAlloc
    - NL_TEST_ASSERT_NO_BUFFERS_IN_USE
    - Profiles::RetainedPacketBuffer::GetBuffer
    - Profiles::RetainedPacketBuffer::IsRetaining
    - Profiles::RetainedPacketBuffer::Release
    linkageType: ''
    returnType: void
    signature: CheckRetainAllocatedBufferWithExplicitRelease(nlTestSuite *inSuite,
      void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:354,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:355,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:357,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:358,1
    - Dst: PacketBufferAlloc
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:362,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:363,1
    - Dst: Profiles::RetainedPacketBuffer::Retain
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:365,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:367,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:368,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:369,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:371,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:372,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:383,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:384,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:385,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:387,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:388,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:390,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:391,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:392,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:394,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:395,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:404,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:405,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:406,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:408,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:409,1
    - Dst: PacketBufferFree
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:420,1
    - Dst: NL_TEST_ASSERT_NO_BUFFERS_IN_USE
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 425
      start: 342
    functionDepth: 4
    functionLinenumber: 342
    functionLinenumberEnd: 425
    functionName: CheckCopyConstructionWithAllocatedBufferImplicitTargetImplicitSourceRelease
    functionSourceFile: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - Profiles::RetainedPacketBuffer::Retain
    - NL_TEST_ASSERT
    - PacketBufferFree
    - PacketBufferAlloc
    - NL_TEST_ASSERT_NO_BUFFERS_IN_USE
    - Profiles::RetainedPacketBuffer::GetBuffer
    - Profiles::RetainedPacketBuffer::IsRetaining
    linkageType: ''
    returnType: void
    signature: CheckCopyConstructionWithAllocatedBufferImplicitTargetImplicitSourceRelease(nlTestSuite
      *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:439,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:440,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:442,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:443,1
    - Dst: PacketBufferAlloc
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:447,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:448,1
    - Dst: Profiles::RetainedPacketBuffer::Retain
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:450,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:452,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:453,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:454,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:456,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:457,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:468,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:469,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:470,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:472,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:473,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:475,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:476,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:477,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:479,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:480,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:489,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:490,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:491,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:493,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:494,1
    - Dst: Profiles::RetainedPacketBuffer::Release
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:502,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:504,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:505,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:507,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:508,1
    - Dst: PacketBufferFree
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:513,1
    - Dst: NL_TEST_ASSERT_NO_BUFFERS_IN_USE
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 518
      start: 432
    functionDepth: 4
    functionLinenumber: 432
    functionLinenumberEnd: 518
    functionName: CheckCopyConstructionWithAllocatedBufferImplicitTargetExplicitSourceRelease
    functionSourceFile: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - Profiles::RetainedPacketBuffer::Retain
    - NL_TEST_ASSERT
    - PacketBufferFree
    - PacketBufferAlloc
    - NL_TEST_ASSERT_NO_BUFFERS_IN_USE
    - Profiles::RetainedPacketBuffer::GetBuffer
    - Profiles::RetainedPacketBuffer::IsRetaining
    - Profiles::RetainedPacketBuffer::Release
    linkageType: ''
    returnType: void
    signature: CheckCopyConstructionWithAllocatedBufferImplicitTargetExplicitSourceRelease(nlTestSuite
      *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:537,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:538,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:540,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:541,1
    - Dst: PacketBufferAlloc
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:545,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:546,1
    - Dst: Profiles::RetainedPacketBuffer::Retain
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:548,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:550,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:551,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:552,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:554,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:555,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:566,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:567,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:568,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:570,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:571,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:573,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:574,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:575,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:577,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:578,1
    - Dst: Profiles::RetainedPacketBuffer::Release
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:585,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:587,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:588,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:590,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:591,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:593,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:594,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:595,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:597,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:598,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:605,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:606,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:607,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:609,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:610,1
    - Dst: PacketBufferFree
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:620,1
    - Dst: NL_TEST_ASSERT_NO_BUFFERS_IN_USE
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 625
      start: 525
    functionDepth: 4
    functionLinenumber: 525
    functionLinenumberEnd: 625
    functionName: CheckCopyConstructionWithAllocatedBufferExplicitTargetImplicitSourceRelease
    functionSourceFile: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - Profiles::RetainedPacketBuffer::Retain
    - NL_TEST_ASSERT
    - PacketBufferFree
    - PacketBufferAlloc
    - NL_TEST_ASSERT_NO_BUFFERS_IN_USE
    - Profiles::RetainedPacketBuffer::GetBuffer
    - Profiles::RetainedPacketBuffer::IsRetaining
    - Profiles::RetainedPacketBuffer::Release
    linkageType: ''
    returnType: void
    signature: CheckCopyConstructionWithAllocatedBufferExplicitTargetImplicitSourceRelease(nlTestSuite
      *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:639,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:640,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:642,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:643,1
    - Dst: PacketBufferAlloc
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:647,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:648,1
    - Dst: Profiles::RetainedPacketBuffer::Retain
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:650,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:652,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:653,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:654,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:656,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:657,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:665,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:666,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:667,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:669,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:670,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:672,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:673,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:674,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:676,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:677,1
    - Dst: Profiles::RetainedPacketBuffer::Release
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:684,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:686,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:687,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:689,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:690,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:695,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:696,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:697,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:699,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:700,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:706,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:707,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:708,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:710,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:711,1
    - Dst: Profiles::RetainedPacketBuffer::Release
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:715,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:717,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:718,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:720,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:721,1
    - Dst: PacketBufferFree
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:726,1
    - Dst: NL_TEST_ASSERT_NO_BUFFERS_IN_USE
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 731
      start: 632
    functionDepth: 4
    functionLinenumber: 632
    functionLinenumberEnd: 731
    functionName: CheckCopyConstructionWithAllocatedBufferExplicitTargetExplicitSourceRelease
    functionSourceFile: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - Profiles::RetainedPacketBuffer::Retain
    - NL_TEST_ASSERT
    - PacketBufferFree
    - PacketBufferAlloc
    - NL_TEST_ASSERT_NO_BUFFERS_IN_USE
    - Profiles::RetainedPacketBuffer::GetBuffer
    - Profiles::RetainedPacketBuffer::IsRetaining
    - Profiles::RetainedPacketBuffer::Release
    linkageType: ''
    returnType: void
    signature: CheckCopyConstructionWithAllocatedBufferExplicitTargetExplicitSourceRelease(nlTestSuite
      *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:751,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:752,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:754,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:755,1
    - Dst: PacketBufferAlloc
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:759,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:760,1
    - Dst: Profiles::RetainedPacketBuffer::Retain
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:762,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:764,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:765,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:766,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:768,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:769,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:782,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:783,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:784,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:786,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:787,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:789,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:790,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:791,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:793,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:794,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:803,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:804,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:805,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:807,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:808,1
    - Dst: PacketBufferFree
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:819,1
    - Dst: NL_TEST_ASSERT_NO_BUFFERS_IN_USE
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 824
      start: 739
    functionDepth: 4
    functionLinenumber: 739
    functionLinenumberEnd: 824
    functionName: CheckAssignmentWithAllocatedBufferImplicitTargetImplicitSourceRelease
    functionSourceFile: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - Profiles::RetainedPacketBuffer::Retain
    - NL_TEST_ASSERT
    - PacketBufferFree
    - PacketBufferAlloc
    - NL_TEST_ASSERT_NO_BUFFERS_IN_USE
    - Profiles::RetainedPacketBuffer::GetBuffer
    - Profiles::RetainedPacketBuffer::IsRetaining
    linkageType: ''
    returnType: void
    signature: CheckAssignmentWithAllocatedBufferImplicitTargetImplicitSourceRelease(nlTestSuite
      *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:838,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:839,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:841,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:842,1
    - Dst: PacketBufferAlloc
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:846,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:847,1
    - Dst: Profiles::RetainedPacketBuffer::Retain
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:849,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:851,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:852,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:853,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:855,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:856,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:869,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:870,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:871,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:873,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:874,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:876,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:877,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:878,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:880,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:881,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:890,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:891,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:892,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:894,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:895,1
    - Dst: Profiles::RetainedPacketBuffer::Release
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:903,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:905,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:906,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:908,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:909,1
    - Dst: PacketBufferFree
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:914,1
    - Dst: NL_TEST_ASSERT_NO_BUFFERS_IN_USE
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 919
      start: 831
    functionDepth: 4
    functionLinenumber: 831
    functionLinenumberEnd: 919
    functionName: CheckAssignmentWithAllocatedBufferImplicitTargetExplicitSourceRelease
    functionSourceFile: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - Profiles::RetainedPacketBuffer::Retain
    - NL_TEST_ASSERT
    - PacketBufferFree
    - PacketBufferAlloc
    - NL_TEST_ASSERT_NO_BUFFERS_IN_USE
    - Profiles::RetainedPacketBuffer::GetBuffer
    - Profiles::RetainedPacketBuffer::IsRetaining
    - Profiles::RetainedPacketBuffer::Release
    linkageType: ''
    returnType: void
    signature: CheckAssignmentWithAllocatedBufferImplicitTargetExplicitSourceRelease(nlTestSuite
      *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:938,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:939,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:941,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:942,1
    - Dst: PacketBufferAlloc
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:946,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:947,1
    - Dst: Profiles::RetainedPacketBuffer::Retain
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:949,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:951,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:952,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:953,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:955,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:956,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:969,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:970,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:971,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:973,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:974,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:976,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:977,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:978,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:980,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:981,1
    - Dst: Profiles::RetainedPacketBuffer::Release
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:988,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:990,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:991,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:993,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:994,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:996,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:997,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:998,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1000,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1001,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1008,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1009,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1010,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1012,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1013,1
    - Dst: PacketBufferFree
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1023,1
    - Dst: NL_TEST_ASSERT_NO_BUFFERS_IN_USE
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1028
      start: 926
    functionDepth: 4
    functionLinenumber: 926
    functionLinenumberEnd: 1028
    functionName: CheckAssignmentWithAllocatedBufferExplicitTargetImplicitSourceRelease
    functionSourceFile: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - Profiles::RetainedPacketBuffer::Retain
    - NL_TEST_ASSERT
    - PacketBufferFree
    - PacketBufferAlloc
    - NL_TEST_ASSERT_NO_BUFFERS_IN_USE
    - Profiles::RetainedPacketBuffer::GetBuffer
    - Profiles::RetainedPacketBuffer::IsRetaining
    - Profiles::RetainedPacketBuffer::Release
    linkageType: ''
    returnType: void
    signature: CheckAssignmentWithAllocatedBufferExplicitTargetImplicitSourceRelease(nlTestSuite
      *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1042,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1043,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1045,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1046,1
    - Dst: PacketBufferAlloc
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1050,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1051,1
    - Dst: Profiles::RetainedPacketBuffer::Retain
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1053,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1055,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1056,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1057,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1059,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1060,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1070,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1071,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1072,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1074,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1075,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1077,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1078,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1079,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1081,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1082,1
    - Dst: Profiles::RetainedPacketBuffer::Release
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1089,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1091,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1092,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1094,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1095,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1100,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1101,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1102,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1104,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1105,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1111,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1112,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1113,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1115,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1116,1
    - Dst: Profiles::RetainedPacketBuffer::Release
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1120,1
    - Dst: Profiles::RetainedPacketBuffer::GetBuffer
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1122,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1123,1
    - Dst: Profiles::RetainedPacketBuffer::IsRetaining
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1125,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1126,1
    - Dst: PacketBufferFree
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1131,1
    - Dst: NL_TEST_ASSERT_NO_BUFFERS_IN_USE
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1136
      start: 1035
    functionDepth: 4
    functionLinenumber: 1035
    functionLinenumberEnd: 1136
    functionName: CheckAssignmentWithAllocatedBufferExplicitTargetExplicitSourceRelease
    functionSourceFile: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - Profiles::RetainedPacketBuffer::Retain
    - NL_TEST_ASSERT
    - PacketBufferFree
    - PacketBufferAlloc
    - NL_TEST_ASSERT_NO_BUFFERS_IN_USE
    - Profiles::RetainedPacketBuffer::GetBuffer
    - Profiles::RetainedPacketBuffer::IsRetaining
    - Profiles::RetainedPacketBuffer::Release
    linkageType: ''
    returnType: void
    signature: CheckAssignmentWithAllocatedBufferExplicitTargetExplicitSourceRelease(nlTestSuite
      *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_init
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1167,1
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1170,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1172,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp:1174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1159
    functionDepth: 1
    functionLinenumber: 1159
    functionLinenumberEnd: 1175
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp
    functionUses: 0
    functionsReached:
    - tcpip_init
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/openweave-core/src/test-apps/TestThermostatStatus.cpp:91,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestThermostatStatus.cpp:92,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestThermostatStatus.cpp:92,1
    - Dst: IfjStatusStr
      Src: /src/openweave-core/src/test-apps/TestThermostatStatus.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: CheckStatus
    functionSourceFile: /src/openweave-core/src/test-apps/TestThermostatStatus.cpp
    functionUses: 0
    functionsReached:
    - IfjStatusStr
    - NL_TEST_ASSERT
    - snprintf
    - strcmp
    linkageType: ''
    returnType: void
    signature: CheckStatus(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestThermostatStatus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestSetup(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestThermostatStatus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestTeardown(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestThermostatStatus.cpp:133,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestThermostatStatus.cpp:136,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestThermostatStatus.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 139
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 139
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestThermostatStatus.cpp
    functionUses: 0
    functionsReached:
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:126,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:130,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:134,1
    - Dst: SendImageQueryRequest
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:135,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:140,1
    - Dst: ToString
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:140,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:140,1
    - Dst: SendImageQueryRequest
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:141,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:149,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:150,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:156,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - ec
    argTypes:
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 160
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 160
    functionName: HandleImageAnnounce
    functionSourceFile: /src/openweave-core/src/test-apps/weave-swu-client.cpp
    functionUses: 0
    functionsReached:
    - SendImageQueryRequest
    - ToString
    - strlen
    - printf
    - Close
    linkageType: ''
    returnType: void
    signature: HandleImageAnnounce(ExchangeContext *ec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitToolCommon
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:166,1
    - Dst: SetSIGUSR1Handler
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:168,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:172,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:173,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:176,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:177,1
    - Dst: ResolveWeaveNetworkOptions
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:178,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:180,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:183,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:185,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:187,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:195,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:198,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:198,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:199,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:202,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:205,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:205,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:206,1
    - Dst: PrintNodeConfig
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:210,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:215,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:217,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:219,1
    - Dst: StartClientConnection
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:222,1
    - Dst: CreateExchangeCtx
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:228,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:230,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:239,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:244,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:248,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:249,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:250,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:251,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:252,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:253,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 256
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 256
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/weave-swu-client.cpp
    functionUses: 0
    functionsReached:
    - InitToolCommon
    - ShutdownSystemLayer
    - InitWeaveStack
    - printf
    - exit
    - ServiceNetwork
    - ParseArgsFromEnvVar
    - Close
    - ResolveWeaveNetworkOptions
    - ShutdownWeaveStack
    - ParseArgs
    - InitNetwork
    - PrintBriefUsage
    - Shutdown
    - ErrorStr
    - StartClientConnection
    - PrintNodeConfig
    - InitSystemLayer
    - SetSIGUSR1Handler
    - CreateExchangeCtx
    - ShutdownNetwork
    - Init
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:260,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:264,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:265,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:273,1
    - Dst: NewConnection
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:274,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:277,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:282,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:284,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:285,1
    - Dst: Connect
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:286,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:289,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:289,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:290,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:297,1
    - Dst: HandleConnectionComplete
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:298,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:301,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 302
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 302
    functionName: StartClientConnection
    functionSourceFile: /src/openweave-core/src/test-apps/weave-swu-client.cpp
    functionUses: 3
    functionsReached:
    - Connect
    - nl::Inet::IPAddress::FromString
    - HandleConnectionComplete
    - printf
    - Close
    - ErrorStr
    - NewConnection
    linkageType: ''
    returnType: void
    signature: StartClientConnection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:321,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 326
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 326
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/weave-swu-client.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:334,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:340,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:352,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:354,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:363,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 369
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 369
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/test-apps/weave-swu-client.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseNodeId
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:374,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:376,1
    - Dst: CreateExchangeCtx
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - msgLayer
    - con
    argTypes:
    - WeaveMessageLayer*
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 381
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 381
    functionName: HandleConnectionReceived
    functionSourceFile: /src/openweave-core/src/test-apps/weave-swu-client.cpp
    functionUses: 3
    functionsReached:
    - CreateExchangeCtx
    - WeaveConnection*::PeerAddr::ToString
    - printf
    linkageType: ''
    returnType: void
    signature: HandleConnectionReceived(WeaveMessageLayer *msgLayer, WeaveConnection
      *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:385,1
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:389,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:393,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:393,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:394,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:399,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:401,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:405,1
    - Dst: SendImageQueryRequest
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:406,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:411,1
    - Dst: ToString
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:411,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:411,1
    - Dst: SendImageQueryRequest
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:412,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:420,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:421,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:425,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 426
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 426
    functionName: HandleConnectionComplete
    functionSourceFile: /src/openweave-core/src/test-apps/weave-swu-client.cpp
    functionUses: 2
    functionsReached:
    - SendImageQueryRequest
    - WeaveConnection*::Close
    - WeaveConnection*::PeerAddr::ToString
    - ToString
    - strlen
    - printf
    - Close
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:431,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:434,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:436,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:436,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:441,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/weave-swu-client.cpp:444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 447
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 447
    functionName: HandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/test-apps/weave-swu-client.cpp
    functionUses: 2
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    - WeaveConnection*::Close
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:71,1
    - Dst: ResourceIdentifier::GetResourceId
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:71,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:72,1
    - Dst: ResourceIdentifier::GetResourceType
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:72,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:74,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 77
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 77
    functionName: CheckDefaultConstructor
    functionSourceFile: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - ResourceIdentifier::GetResourceId
    - ResourceIdentifier::GetResourceType
    linkageType: ''
    returnType: void
    signature: CheckDefaultConstructor(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:87,1
    - Dst: ResourceIdentifier::GetResourceId
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:87,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:88,1
    - Dst: ResourceIdentifier::GetResourceType
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:88,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:89,1
    - Dst: strncmp
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:89,1
    - Dst: ResourceIdentifier::ResourceTypeAsString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:89,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:92,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 96
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 96
    functionName: CheckU64Constructor
    functionSourceFile: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - ResourceIdentifier::ResourceTypeAsString
    - ResourceIdentifier::GetResourceId
    - strncmp
    - ResourceIdentifier::GetResourceType
    linkageType: ''
    returnType: void
    signature: CheckU64Constructor(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:105,1
    - Dst: ResourceIdentifier::GetResourceId
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:105,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:106,1
    - Dst: ResourceIdentifier::GetResourceType
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:106,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:109,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:112,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 115
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 115
    functionName: CheckTypeU64Constructor
    functionSourceFile: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - ResourceIdentifier::GetResourceId
    - ResourceIdentifier::GetResourceType
    linkageType: ''
    returnType: void
    signature: CheckTypeU64Constructor(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: CheckByteArrayConstructor
    functionSourceFile: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CheckByteArrayConstructor(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckEncoding
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:198,1
    - Dst: CheckEncoding
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:200,1
    - Dst: CheckEncoding
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:202,1
    - Dst: CheckEncoding
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:204,1
    - Dst: CheckEncoding
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:207,1
    - Dst: CheckEncoding
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:210,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:210,1
    - Dst: CheckDecoding
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:214,1
    - Dst: CheckDecoding
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:215,1
    - Dst: CheckDecoding
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:216,1
    - Dst: CheckDecoding
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:217,1
    - Dst: CheckDecoding
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:218,1
    - Dst: CheckDecoding
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:219,1
    - Dst: CheckDecoding
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:222,1
    - Dst: CheckDecoding
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:223,1
    - Dst: CheckDecoding
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:224,1
    - Dst: CheckDecoding
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:226,1
    - Dst: CheckDecoding
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:228,1
    - Dst: CheckDecoding
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 232
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 232
    functionName: CheckTLVSerDes
    functionSourceFile: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp
    functionUses: 0
    functionsReached:
    - CheckDecoding
    - ContextTag
    - CheckEncoding
    linkageType: ''
    returnType: void
    signature: CheckTLVSerDes(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:257,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:258,1
    - Dst: nl::Weave::TLV::TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:259,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:260,1
    - Dst: ResourceIdentifier::FromTLV
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:261,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:262,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:265,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:266,1
    - Dst: nl::Weave::TLV::TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:267,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:268,1
    - Dst: ResourceIdentifier::FromTLV
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:269,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 271
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 271
    functionName: CheckTLVDecodingErrors
    functionSourceFile: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVReader::EnterContainer
    - ResourceIdentifier::FromTLV
    - NL_TEST_ASSERT
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: void
    signature: CheckTLVDecodingErrors(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:283,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:284,1
    - Dst: nl::Weave::TLV::TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:285,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:286,1
    - Dst: ResourceIdentifier::FromTLV
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:287,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:289,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:289,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:290,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:293,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:295,1
    - Dst: ResourceIdentifier::ToString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:296,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:297,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:299,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - inSuite
    - buffer
    - bufferLen
    - reference
    argTypes:
    - nlTestSuite*
    - uint8_t*
    - size_t
    - ResourceIdentifier
    constantsTouched: []
    func_position:
      end: 301
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 301
    functionName: CheckDecoding
    functionSourceFile: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::TLVReader::EnterContainer
    - ResourceIdentifier::FromTLV
    - NL_TEST_ASSERT
    - ResourceIdentifier::ToString
    - printf
    - ErrorStr
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: void
    signature: CheckDecoding(nlTestSuite * inSuite, const uint8_t * buffer, size_t
      bufferLen, ResourceIdentifier reference)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:314,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:315,1
    - Dst: nl::Weave::TLV::TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:316,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:317,1
    - Dst: ResourceIdentifier::FromTLV
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:318,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:321,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:321,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:322,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:325,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:327,1
    - Dst: ResourceIdentifier::ToString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:328,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:329,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:332,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 5
    argNames:
    - inSuite
    - buffer
    - bufferLen
    - nodeid
    - reference
    argTypes:
    - nlTestSuite*
    - uint8_t*
    - size_t
    - uint64_t
    - ResourceIdentifier
    constantsTouched: []
    func_position:
      end: 334
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 334
    functionName: CheckDecoding
    functionSourceFile: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::TLVReader::EnterContainer
    - ResourceIdentifier::FromTLV
    - NL_TEST_ASSERT
    - ResourceIdentifier::ToString
    - printf
    - ErrorStr
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: void
    signature: "CheckDecoding(nlTestSuite * inSuite, const uint8_t * buffer, size_t
      bufferLen, uint64_t nodeid,\n                          ResourceIdentifier reference)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:343,1
    - Dst: nl::Weave::TLV::TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:344,1
    - Dst: ResourceIdentifier::ToTLV
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:345,1
    - Dst: nl::Weave::TLV::TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:346,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:347,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:350,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:350,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:351,1
    - Dst: nl::Weave::TLV::TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:351,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:352,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:355,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:357,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:358,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:361,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:363,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:365,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:366,1
    - Dst: nl::Weave::TLV::TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:366,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:367,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 6
    argNames:
    - inSuite
    - resource
    - refBuffer
    - refBufferLen
    - buffer
    - bufferLen
    argTypes:
    - nlTestSuite*
    - ResourceIdentifier
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 368
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 368
    functionName: CheckEncoding
    functionSourceFile: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::TLVWriter::Init
    - nl::Weave::TLV::TLVWriter::EndContainer
    - nl::Weave::TLV::TLVWriter::StartContainer
    - memcmp
    - NL_TEST_ASSERT
    - ResourceIdentifier::ToTLV
    - printf
    - nl::Weave::TLV::TLVWriter::GetLengthWritten
    - nl::Weave::TLV::TLVWriter::Finalize
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: "CheckEncoding(nlTestSuite * inSuite, ResourceIdentifier resource,
      const uint8_t * refBuffer, size_t refBufferLen,\n                          uint8_t
      * buffer, size_t bufferLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:377,1
    - Dst: nl::Weave::TLV::TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:378,1
    - Dst: ResourceIdentifier::ToTLV
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:379,1
    - Dst: nl::Weave::TLV::TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:380,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:381,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:384,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:384,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:385,1
    - Dst: nl::Weave::TLV::TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:385,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:386,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:389,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:391,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:392,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:395,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:397,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:399,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:400,1
    - Dst: nl::Weave::TLV::TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:400,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:401,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 7
    argNames:
    - inSuite
    - resource
    - tag
    - refBuffer
    - refBufferLen
    - buffer
    - bufferLen
    argTypes:
    - nlTestSuite*
    - ResourceIdentifier
    - uint64_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 402
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 402
    functionName: CheckEncoding
    functionSourceFile: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::TLV::TLVWriter::Init
    - nl::Weave::TLV::TLVWriter::EndContainer
    - nl::Weave::TLV::TLVWriter::StartContainer
    - memcmp
    - NL_TEST_ASSERT
    - ResourceIdentifier::ToTLV
    - printf
    - nl::Weave::TLV::TLVWriter::GetLengthWritten
    - nl::Weave::TLV::TLVWriter::Finalize
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: "CheckEncoding(nlTestSuite * inSuite, ResourceIdentifier resource,
      uint64_t tag, const uint8_t * refBuffer,\n                          size_t refBufferLen,
      uint8_t * buffer, size_t bufferLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResourceIdentifier::ToString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:432,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:433,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:433,1
    - Dst: ResourceIdentifier::ToString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:435,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:436,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:436,1
    - Dst: ResourceIdentifier::ToString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:438,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:439,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:439,1
    - Dst: ResourceIdentifier::ToString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:441,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:442,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:442,1
    - Dst: ResourceIdentifier::ToString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:444,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:445,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:445,1
    - Dst: ResourceIdentifier::ToString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:447,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:448,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:448,1
    - Dst: ResourceIdentifier::FromString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:452,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:453,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:454,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:455,1
    - Dst: ResourceIdentifier::FromString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:457,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:458,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:459,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:460,1
    - Dst: ResourceIdentifier::FromString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:462,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:463,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:464,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:465,1
    - Dst: ResourceIdentifier::FromString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:467,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:468,1
    - Dst: ResourceIdentifier::ToString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:469,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:470,1
    - Dst: ResourceIdentifier::FromString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:472,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:473,1
    - Dst: ResourceIdentifier::ToString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:474,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:475,1
    - Dst: ResourceIdentifier::FromString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:477,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:478,1
    - Dst: ResourceIdentifier::ToString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:479,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:480,1
    - Dst: ResourceIdentifier::FromString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:483,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:484,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:485,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:486,1
    - Dst: ResourceIdentifier::FromString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:488,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:489,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:490,1
    - Dst: ResourceIdentifier::FromString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:494,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:495,1
    - Dst: ResourceIdentifier::FromString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:497,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:498,1
    - Dst: ResourceIdentifier::FromString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:500,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:501,1
    - Dst: ResourceIdentifier::FromString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:503,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:504,1
    - Dst: ResourceIdentifier::FromString
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:506,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 54
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 508
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 508
    functionName: CheckStringSerDes
    functionSourceFile: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp
    functionUses: 0
    functionsReached:
    - ResourceIdentifier::ToString
    - NL_TEST_ASSERT
    - ResourceIdentifier::FromString
    - strcmp
    linkageType: ''
    returnType: void
    signature: CheckStringSerDes(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 513
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 513
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestSetup(void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 519
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 519
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestTeardown(void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:540,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:543,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 546
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 546
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp
    functionUses: 0
    functionsReached:
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(int argc, char * argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetSIGUSR1Handler
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:90,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:92,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:93,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:95,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:98,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:99,1
    - Dst: RADaemon::Init
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:101,1
    - Dst: ip6addr_ntoa_r
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:115,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:115,1
    - Dst: ip6addr_ntoa_r
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:117,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:119,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:124,1
    - Dst: RADaemon::SetPrefixInfo
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:127,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:128,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:128,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:131,1
    - Dst: RADaemon::SetPrefixInfo
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:134,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:135,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:135,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:138,1
    - Dst: RADaemon::SetPrefixInfo
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:141,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:142,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:142,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:145,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:150,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:158,1
    - Dst: RADaemon::DelPrefixInfo
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:161,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:164,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:169,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:182,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 186
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 186
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestRADaemon.cpp
    functionUses: 0
    functionsReached:
    - InitSystemLayer
    - RADaemon::DelPrefixInfo
    - ip_2_ip6
    - ParseArgs
    - exit
    - SetSIGUSR1Handler
    - InitNetwork
    - ServiceNetwork
    - ParseArgsFromEnvVar
    - nl::Inet::IPAddress::FromString
    - printf
    - ip6addr_ntoa_r
    - RADaemon::SetPrefixInfo
    - RADaemon::Init
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestRADaemon.cpp:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 201
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 201
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/TestRADaemon.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestRADaemon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:289,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:293,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:298,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:308,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:314,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:320,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:326,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:332,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:346,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:352,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:358,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:364,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:370,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 377
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 377
    functionName: TestGroupKeyStore::TestGroupKeyStore
    functionSourceFile: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp
    functionUses: 8
    functionsReached:
    - memcpy
    - Init
    - memset
    linkageType: ''
    returnType: void
    signature: TestGroupKeyStore::TestGroupKeyStore(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:383,1
    - Dst: TestGroupKeyStore::StoreLastUsedEpochKeyId
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:386,1
    - Dst: TestGroupKeyStore::DeleteGroupKey
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:389,1
    - Dst: TestGroupKeyStore::DeleteGroupKey
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:392,1
    - Dst: TestGroupKeyStore::DeleteGroupKeysOfAType
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:395,1
    - Dst: TestGroupKeyStore::DeleteGroupKeysOfAType
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 401
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 401
    functionName: TestGroupKeyStore::Clear
    functionSourceFile: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp
    functionUses: 0
    functionsReached:
    - TestGroupKeyStore::DeleteGroupKeysOfAType
    - TestGroupKeyStore::DeleteGroupKey
    - Init
    - TestGroupKeyStore::StoreLastUsedEpochKeyId
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestGroupKeyStore::Clear(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:412,1
    - Dst: nl::Weave::WeaveKeyId::IsAppEpochKey
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:416,1
    - Dst: nl::Weave::WeaveKeyId::IsAppGroupMasterKey
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:418,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:421,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:425,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - keyId
    - ' key'
    argTypes:
    - uint32_t
    - WeaveGroupKey
    constantsTouched: []
    func_position:
      end: 429
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 429
    functionName: TestGroupKeyStore::RetrieveGroupKey
    functionSourceFile: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveKeyId::IsAppGroupMasterKey
    - memcpy
    - ExitNow
    - nl::Weave::WeaveKeyId::IsAppEpochKey
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestGroupKeyStore::RetrieveGroupKey(uint32_t keyId, WeaveGroupKey&
      key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:437,1
    - Dst: nl::Weave::WeaveKeyId::IsAppEpochKey
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:438,1
    - Dst: nl::Weave::WeaveKeyId::IsAppGroupMasterKey
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:438,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:456,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:459,1
    - Dst: nl::Weave::WeaveKeyId::IsAppEpochKey
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:463,1
    - Dst: nl::Weave::WeaveKeyId::IsAppGroupMasterKey
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:465,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - WeaveGroupKey
    constantsTouched: []
    func_position:
      end: 470
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 470
    functionName: TestGroupKeyStore::StoreGroupKey
    functionSourceFile: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveKeyId::IsAppGroupMasterKey
    - memcpy
    - VerifyOrExit
    - nl::Weave::WeaveKeyId::IsAppEpochKey
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestGroupKeyStore::StoreGroupKey(const WeaveGroupKey& key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClearSecretData
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:481,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:487,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - keyId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 495
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 495
    functionName: TestGroupKeyStore::DeleteGroupKey
    functionSourceFile: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp
    functionUses: 1
    functionsReached:
    - ExitNow
    - ClearSecretData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestGroupKeyStore::DeleteGroupKey(uint32_t keyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestGroupKeyStore::EnumerateGroupKeys
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:504,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:505,1
    - Dst: TestGroupKeyStore::DeleteGroupKey
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:510,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - keyType
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 516
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 516
    functionName: TestGroupKeyStore::DeleteGroupKeysOfAType
    functionSourceFile: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp
    functionUses: 1
    functionsReached:
    - TestGroupKeyStore::EnumerateGroupKeys
    - TestGroupKeyStore::DeleteGroupKey
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestGroupKeyStore::DeleteGroupKeysOfAType(uint32_t keyType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:523,1
    - Dst: nl::Weave::WeaveKeyId::IsGeneralKey
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:523,1
    - Dst: nl::Weave::WeaveKeyId::IsAppRootKey
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:524,1
    - Dst: nl::Weave::WeaveKeyId::IsAppEpochKey
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:525,1
    - Dst: nl::Weave::WeaveKeyId::IsAppGroupMasterKey
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:526,1
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:534,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp:536,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - keyType
    - keyIds
    - keyIdsArraySize
    - ' keyCount'
    argTypes:
    - uint32_t
    - uint32_t*
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 545
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 545
    functionName: TestGroupKeyStore::EnumerateGroupKeys
    functionSourceFile: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::WeaveKeyId::GetType
    - nl::Weave::WeaveKeyId::IsGeneralKey
    - nl::Weave::WeaveKeyId::IsAppRootKey
    - VerifyOrExit
    - nl::Weave::WeaveKeyId::IsAppGroupMasterKey
    - nl::Weave::WeaveKeyId::IsAppEpochKey
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestGroupKeyStore::EnumerateGroupKeys(uint32_t keyType, uint32_t *keyIds,
      uint8_t keyIdsArraySize, uint8_t & keyCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 551
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 551
    functionName: TestGroupKeyStore::RetrieveLastUsedEpochKeyId
    functionSourceFile: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestGroupKeyStore::RetrieveLastUsedEpochKeyId(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 557
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 557
    functionName: TestGroupKeyStore::StoreLastUsedEpochKeyId
    functionSourceFile: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestGroupKeyStore::StoreLastUsedEpochKeyId(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' utcTime'
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 570
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 570
    functionName: TestGroupKeyStore::GetCurrentUTCTime
    functionSourceFile: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestGroupKeyStore::GetCurrentUTCTime(uint32_t& utcTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 575
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 575
    functionName: TestGroupKeyStore::TestValue_LastUsedEpochKeyId
    functionSourceFile: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: TestGroupKeyStore::TestValue_LastUsedEpochKeyId(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 580
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 580
    functionName: TestGroupKeyStore::TestValue_NextEpochKeyStartTime
    functionSourceFile: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: TestGroupKeyStore::TestValue_NextEpochKeyStartTime(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/openweave-core/src/test-apps/TestStatusReportStr.cpp:301,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestStatusReportStr.cpp:302,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestStatusReportStr.cpp:302,1
    - Dst: nl::StatusReportStr
      Src: /src/openweave-core/src/test-apps/TestStatusReportStr.cpp:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 305
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 305
    functionName: CheckStatusReportStrStart
    functionSourceFile: /src/openweave-core/src/test-apps/TestStatusReportStr.cpp
    functionUses: 0
    functionsReached:
    - nl::StatusReportStr
    - NL_TEST_ASSERT
    - snprintf
    - strcmp
    linkageType: ''
    returnType: void
    signature: CheckStatusReportStrStart(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestStatusReportStr.cpp:326,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestStatusReportStr.cpp:329,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestStatusReportStr.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 332
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 332
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestStatusReportStr.cpp
    functionUses: 0
    functionsReached:
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:192,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:194,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:199,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:201,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:206,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:208,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:235,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:237,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:242,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 247
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 247
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/weave-swu-server.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseNodeId
    - ParseInt
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:255,1
    - Dst: ReferencedString::init
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:256,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:256,1
    - Dst: ParseStringToUint8_List
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:259,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:260,1
    - Dst: ParseStringToUint8_List
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:263,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:264,1
    - Dst: ImageQuery*::init
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - aImageQuery
    argTypes:
    - ImageQuery*
    constantsTouched: []
    func_position:
      end: 268
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 268
    functionName: GenerateReferenceImageQuery
    functionSourceFile: /src/openweave-core/src/test-apps/weave-swu-server.cpp
    functionUses: 0
    functionsReached:
    - ReferencedString::init
    - ImageQuery*::init
    - exit
    - ReferencedString::ReferencedString
    - strlen
    - ParseStringToUint8_List
    linkageType: ''
    returnType: void
    signature: GenerateReferenceImageQuery(ImageQuery *aImageQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:272,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:276,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:277,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:285,1
    - Dst: NewConnection
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:286,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:289,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:294,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:296,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:297,1
    - Dst: Connect
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:298,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:301,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:301,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:302,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:309,1
    - Dst: HandleConnectionComplete
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:310,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:313,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 314
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 314
    functionName: StartServerConnection
    functionSourceFile: /src/openweave-core/src/test-apps/weave-swu-server.cpp
    functionUses: 0
    functionsReached:
    - Connect
    - nl::Inet::IPAddress::FromString
    - HandleConnectionComplete
    - printf
    - Close
    - ErrorStr
    - NewConnection
    linkageType: ''
    returnType: void
    signature: StartServerConnection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitToolCommon
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:320,1
    - Dst: SetSIGUSR1Handler
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:322,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:326,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:327,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:330,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:331,1
    - Dst: ResolveWeaveNetworkOptions
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:332,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:334,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:339,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:340,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:343,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:345,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:347,1
    - Dst: PrintNodeConfig
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:349,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:359,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:360,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:361,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:362,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:363,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:364,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:365,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:366,1
    - Dst: GenerateReferenceImageQuery
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:369,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:372,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:375,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:375,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:376,1
    - Dst: SetReferenceImageQuery
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:379,1
    - Dst: SetFileDesignator
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:380,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:383,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:384,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:385,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:390,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:394,1
    - Dst: StartServerConnection
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:397,1
    - Dst: SendImageAnnounce
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:401,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:404,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:404,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:416,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:419,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:420,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:421,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:422,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 68
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 425
      start: 316
    functionDepth: 3
    functionLinenumber: 316
    functionLinenumberEnd: 425
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/weave-swu-server.cpp
    functionUses: 0
    functionsReached:
    - InitToolCommon
    - ShutdownSystemLayer
    - InitWeaveStack
    - printf
    - exit
    - ServiceNetwork
    - ParseArgsFromEnvVar
    - ResolveWeaveNetworkOptions
    - ShutdownWeaveStack
    - ParseArgs
    - SetReferenceImageQuery
    - InitNetwork
    - PrintBriefUsage
    - Shutdown
    - StartServerConnection
    - ErrorStr
    - PrintNodeConfig
    - InitSystemLayer
    - SetFileDesignator
    - SetSIGUSR1Handler
    - SendImageAnnounce
    - ShutdownNetwork
    - Init
    - GenerateReferenceImageQuery
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:430,1
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:433,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:437,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:437,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:438,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:443,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:447,1
    - Dst: SendImageAnnounce
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:448,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:451,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:451,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:458,1
    - Dst: ToString
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:458,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:458,1
    - Dst: SendImageAnnounce
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:459,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:462,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:462,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:467,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 468
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 468
    functionName: HandleConnectionComplete
    functionSourceFile: /src/openweave-core/src/test-apps/weave-swu-server.cpp
    functionUses: 3
    functionsReached:
    - WeaveConnection*::Close
    - WeaveConnection*::PeerAddr::ToString
    - SendImageAnnounce
    - ToString
    - strlen
    - printf
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:473,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - msgLayer
    - con
    argTypes:
    - WeaveMessageLayer*
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 478
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 478
    functionName: HandleConnectionReceived
    functionSourceFile: /src/openweave-core/src/test-apps/weave-swu-server.cpp
    functionUses: 3
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    linkageType: ''
    returnType: void
    signature: HandleConnectionReceived(WeaveMessageLayer *msgLayer, WeaveConnection
      *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:485,1
    - Dst: ToString
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:487,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - sm
    - con
    - reqState
    - sessionKeyId
    - peerNodeId
    - encType
    argTypes:
    - WeaveSecurityManager*
    - WeaveConnection*
    - void*
    - uint16_t
    - uint64_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 490
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 490
    functionName: HandleSecureSessionEstablished
    functionSourceFile: /src/openweave-core/src/test-apps/weave-swu-server.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    - ToString
    linkageType: ''
    returnType: void
    signature: HandleSecureSessionEstablished(WeaveSecurityManager *sm, WeaveConnection
      *con, void *reqState, uint16_t sessionKeyId, uint64_t peerNodeId, uint8_t encType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:498,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:499,1
    - Dst: ToString
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:502,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:505,1
    - Dst: nl::StatusReportStr
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:505,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:507,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:507,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 6
    argNames:
    - sm
    - con
    - reqState
    - localErr
    - peerNodeId
    - statusReport
    argTypes:
    - WeaveSecurityManager*
    - WeaveConnection*
    - void*
    - WEAVE_ERROR
    - uint64_t
    - StatusReport*
    constantsTouched: []
    func_position:
      end: 508
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 508
    functionName: HandleSecureSessionError
    functionSourceFile: /src/openweave-core/src/test-apps/weave-swu-server.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnection*::Close
    - nl::StatusReportStr
    - WeaveConnection*::PeerAddr::ToString
    - ToString
    - printf
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleSecureSessionError(WeaveSecurityManager *sm, WeaveConnection
      *con, void *reqState, WEAVE_ERROR localErr, uint64_t peerNodeId, StatusReport
      *statusReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:513,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:516,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:518,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:518,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 521
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 521
    functionName: HandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/test-apps/weave-swu-server.cpp
    functionUses: 2
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    - WeaveConnection*::Close
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:532,1
    - Dst: strtok
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:534,1
    - Dst: strtoul
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:536,1
    - Dst: strtok
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:537,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/weave-swu-server.cpp:543,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - aString
    - aDelim
    - aList
    - aListSize
    argTypes:
    - char*
    - char*
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 546
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 546
    functionName: ParseStringToUint8_List
    functionSourceFile: /src/openweave-core/src/test-apps/weave-swu-server.cpp
    functionUses: 1
    functionsReached:
    - strcpy
    - strtoul
    - free
    - strtok
    linkageType: ''
    returnType: bool
    signature: ParseStringToUint8_List(char const *aString, char const *aDelim, uint8_t
      *aList, uint8_t *aListSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: Abort
    functionSourceFile: /src/openweave-core/src/test-apps/TestTimeUtils.cpp
    functionUses: 61
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: Abort()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:45,1
    - Dst: Abort
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - assert
    - msg
    argTypes:
    - bool
    - char*
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: TestAssert
    functionSourceFile: /src/openweave-core/src/test-apps/TestTimeUtils.cpp
    functionUses: 6
    functionsReached:
    - printf
    - Abort
    linkageType: ''
    returnType: void
    signature: TestAssert(bool assert, const char *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsLeapYear
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:802,1
    - Dst: OrdinalDateToCalendarDate
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:809,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:811,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:812,1
    - Dst: CalendarDateToOrdinalDate
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:814,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:816,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 819
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 819
    functionName: TestOrdinalDateConversion
    functionSourceFile: /src/openweave-core/src/test-apps/TestTimeUtils.cpp
    functionUses: 0
    functionsReached:
    - CalendarDateToOrdinalDate
    - IsLeapYear
    - OrdinalDateToCalendarDate
    - TestAssert
    linkageType: ''
    returnType: void
    signature: TestOrdinalDateConversion(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DaysInMonth
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:829,1
    - Dst: CalendarDateToDaysSinceEpoch
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:835,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:838,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:840,1
    - Dst: DaysSinceEpochToCalendarDate
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:848,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:851,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:853,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:854,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:855,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 862
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 862
    functionName: TestDaysSinceEpochConversion
    functionSourceFile: /src/openweave-core/src/test-apps/TestTimeUtils.cpp
    functionUses: 0
    functionsReached:
    - TestAssert
    - DaysInMonth
    - DaysSinceEpochToCalendarDate
    - printf
    - CalendarDateToDaysSinceEpoch
    linkageType: ''
    returnType: void
    signature: TestDaysSinceEpochConversion(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DaysInMonth
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:873,1
    - Dst: gmtime
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:889,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:891,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:892,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:893,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:894,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:895,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:896,1
    - Dst: SecondsSinceEpochToCalendarTime
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:905,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:907,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:908,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:909,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:910,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:911,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:912,1
    - Dst: CalendarTimeToSecondsSinceEpoch
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:920,1
    - Dst: TestAssert
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:922,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 934
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 934
    functionName: TestSecondsSinceEpochConversion
    functionSourceFile: /src/openweave-core/src/test-apps/TestTimeUtils.cpp
    functionUses: 0
    functionsReached:
    - gmtime
    - TestAssert
    - DaysInMonth
    - SecondsSinceEpochToCalendarTime
    - CalendarTimeToSecondsSinceEpoch
    linkageType: ''
    returnType: void
    signature: TestSecondsSinceEpochConversion(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestOrdinalDateConversion
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:939,1
    - Dst: TestDaysSinceEpochConversion
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:940,1
    - Dst: TestSecondsSinceEpochConversion
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:941,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTimeUtils.cpp:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 944
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 944
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestTimeUtils.cpp
    functionUses: 0
    functionsReached:
    - TestOrdinalDateConversion
    - TestSecondsSinceEpochConversion
    - printf
    - TestDaysSinceEpochConversion
    linkageType: ''
    returnType: int
    signature: main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:205,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 3
    argNames:
    - aAddress
    - aOutSucceeded
    - aOutFailed
    argTypes:
    - GroupAddress
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 221
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 221
    functionName: CheckSucceededOrFailed
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: CheckSucceededOrFailed(const GroupAddress &aAddress, bool &aOutSucceeded,
      bool &aOutFailed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckSucceededOrFailed
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:230,1
    - Dst: SetStatusFailed
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - aTestState
    - aOutSucceeded
    - aOutFailed
    argTypes:
    - TestState<tCapacity>
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 241
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 241
    functionName: CheckSucceededOrFailed
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 2
    functionsReached:
    - SetStatusFailed
    - CheckSucceededOrFailed
    linkageType: ''
    returnType: void
    signature: CheckSucceededOrFailed(TestState<tCapacity> &aTestState, bool &aOutSucceeded,
      bool &aOutFailed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetStatusFailed
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - aSignal
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 253
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 253
    functionName: HandleSignal
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 0
    functionsReached:
    - SetStatusFailed
    linkageType: ''
    returnType: void
    signature: HandleSignal(int aSignal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitToolCommon
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:260,1
    - Dst: SetupFaultInjectionContext
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:262,1
    - Dst: SetSignalHandler
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:264,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:268,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:273,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:274,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:280,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:282,1
    - Dst: InterfaceNameToId
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:290,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:293,1
    - Dst: IsInterfaceIdPresent
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:302,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:304,1
    - Dst: StartTest
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:309,1
    - Dst: Common::IsTesting
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:311,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:320,1
    - Dst: CheckSucceededOrFailed
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:322,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:325,1
    - Dst: Common::IsReceiver
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:329,1
    - Dst: Common::IsReceiver
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:330,1
    - Dst: Common::IsReceiver
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:331,1
    - Dst: CleanupTest
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:336,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:339,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:340,1
    - Dst: Common::WasSuccessful
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:342,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 346
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 346
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 0
    functionsReached:
    - InitToolCommon
    - ShutdownSystemLayer
    - printf
    - Common::WasSuccessful
    - CleanupTest
    - ServiceNetwork
    - ParseArgsFromEnvVar
    - PrintArgError
    - IsInterfaceIdPresent
    - StartTest
    - ParseArgs
    - Common::IsTesting
    - CheckSucceededOrFailed
    - Common::IsReceiver
    - InitNetwork
    - SetupFaultInjectionContext
    - PrintBriefUsage
    - SetSignalHandler
    - InitSystemLayer
    - InterfaceNameToId
    - ShutdownNetwork
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:356,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:358,1
    - Dst: ParseGroupOpt
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:372,1
    - Dst: ParseAndUpdateExpectedGroupPackets
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:382,1
    - Dst: ParseAndUpdateExpectedGroupPackets
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:393,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:404,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:414,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:434,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:441,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:443,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:451,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:458,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 74
    argCount: 5
    argNames:
    - aProgram
    - aOptions
    - aIdentifier
    - aName
    - aValue
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 465
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 465
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 0
    functionsReached:
    - ParseGroupOpt
    - PrintArgError
    - ParseAndUpdateExpectedGroupPackets
    - ParseInt
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *aProgram, OptionSet *aOptions, int aIdentifier,
      const char *aName, const char *aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:473,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:482,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - aProgram
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 496
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 496
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *aProgram, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nlByteOrderSwap32HostToBig
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:506,1
    - Dst: nlByteOrderSwap32HostToBig
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - aGroupIdentifier
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 510
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 510
    functionName: MakeIPv4Multicast
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 0
    functionsReached:
    - nlByteOrderSwap32HostToBig
    linkageType: ''
    returnType: IPAddress
    signature: MakeIPv4Multicast(uint32_t aGroupIdentifier)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::MakeIPv6Multicast
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aGroupIdentifier
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 519
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 519
    functionName: MakeIPv6Multicast
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 4
    functionsReached:
    - nl::Inet::IPAddress::MakeIPv6Multicast
    linkageType: ''
    returnType: IPAddress
    signature: MakeIPv6Multicast(uint32_t aGroupIdentifier)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - aGroupAddress
    - aGroupIdentifier
    - aExpectedRx
    - aExpectedTx
    argTypes:
    - GroupAddress
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 528
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 528
    functionName: SetGroup
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetGroup(GroupAddress &aGroupAddress, uint32_t aGroupIdentifier, uint32_t
      aExpectedRx, uint32_t aExpectedTx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:537,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:542,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:544,1
    - Dst: SetGroup
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:551,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - aProgram
    - aValue
    - aIPv6
    - aOutLastGroupIndex
    argTypes:
    - char*
    - char*
    - bool
    - uint32_t
    constantsTouched: []
    func_position:
      end: 558
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 558
    functionName: ParseGroupOpt
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 1
    functionsReached:
    - PrintArgError
    - SetGroup
    - ParseInt
    linkageType: ''
    returnType: bool
    signature: ParseGroupOpt(const char *aProgram, const char *aValue, bool aIPv6,
      uint32_t &aOutLastGroupIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:565,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:567,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - aProgram
    - aValue
    - aGroup
    - aDescription
    - aOutExpected
    argTypes:
    - char*
    - char*
    - uint32_t
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 576
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 576
    functionName: ParseAndUpdateExpectedGroupPackets
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 1
    functionsReached:
    - PrintArgError
    - ParseInt
    linkageType: ''
    returnType: bool
    signature: ParseAndUpdateExpectedGroupPackets(const char *aProgram, const char
      *aValue, uint32_t aGroup, const char *aDescription, uint32_t &aOutExpected)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - aSourceAddress
    argTypes:
    - IPAddress
    constantsTouched: []
    func_position:
      end: 594
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 594
    functionName: FindGroupAddress
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GroupAddress
    signature: '*FindGroupAddress(const IPAddress &aSourceAddress)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aGroupAddress
    argTypes:
    - GroupAddress
    constantsTouched: []
    func_position:
      end: 602
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 602
    functionName: PrintReceivedStats
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: PrintReceivedStats(const GroupAddress &aGroupAddress)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::HandleDataReceived
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:609,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:613,1
    - Dst: PrintReceivedStats
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - aBuffer
    - aGroupAddress
    - aCheckBuffer
    argTypes:
    - PacketBuffer*
    - GroupAddress
    - bool
    constantsTouched: []
    func_position:
      end: 619
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 619
    functionName: HandleDataReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 12
    functionsReached:
    - Common::HandleDataReceived
    - VerifyOrExit
    - PrintReceivedStats
    linkageType: ''
    returnType: bool
    signature: HandleDataReceived(const PacketBuffer *aBuffer, GroupAddress &aGroupAddress,
      bool aCheckBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindGroupAddress
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:626,1
    - Dst: HandleDataReceived
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:630,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - aBuffer
    - aPacketInfo
    - aCheckBuffer
    argTypes:
    - PacketBuffer*
    - IPPacketInfo
    - bool
    constantsTouched: []
    func_position:
      end: 636
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 636
    functionName: HandleDataReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 13
    functionsReached:
    - FindGroupAddress
    - HandleDataReceived
    - VerifyOrExit
    linkageType: ''
    returnType: bool
    signature: HandleDataReceived(const PacketBuffer *aBuffer, const IPPacketInfo
      &aPacketInfo, bool aCheckBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:648,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:649,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:650,1
    - Dst: Common::HandleRawMessageReceived
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:652,1
    - Dst: FindGroupAddress
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:654,1
    - Dst: IPPacketInfo*::DestAddress::Type
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:658,1
    - Dst: PacketBuffer*::ConsumeHead
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:664,1
    - Dst: Common::HandleICMPv4DataReceived
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:666,1
    - Dst: Common::HandleICMPv6DataReceived
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:670,1
    - Dst: PrintReceivedStats
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:679,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:686,1
    - Dst: SetStatusFailed
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:691,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - aEndPoint
    - aBuffer
    - aPacketInfo
    argTypes:
    - IPEndPointBasis*
    - PacketBuffer*
    - IPPacketInfo*
    constantsTouched: []
    func_position:
      end: 693
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 693
    functionName: HandleRawMessageReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 2
    functionsReached:
    - IPPacketInfo*::DestAddress::Type
    - Common::HandleICMPv6DataReceived
    - Common::HandleICMPv4DataReceived
    - nl::Weave::System::PacketBuffer::Free
    - Common::HandleRawMessageReceived
    - VerifyOrExit
    - PrintReceivedStats
    - SetStatusFailed
    - PacketBuffer*::ConsumeHead
    - FindGroupAddress
    linkageType: ''
    returnType: void
    signature: HandleRawMessageReceived(IPEndPointBasis *aEndPoint, PacketBuffer *aBuffer,
      const IPPacketInfo *aPacketInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::HandleRawReceiveError
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:697,1
    - Dst: SetStatusFailed
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - aEndPoint
    - aError
    - aPacketInfo
    argTypes:
    - IPEndPointBasis*
    - INET_ERROR
    - IPPacketInfo*
    constantsTouched: []
    func_position:
      end: 700
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 700
    functionName: HandleRawReceiveError
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 2
    functionsReached:
    - SetStatusFailed
    - Common::HandleRawReceiveError
    linkageType: ''
    returnType: void
    signature: HandleRawReceiveError(IPEndPointBasis *aEndPoint, INET_ERROR aError,
      const IPPacketInfo *aPacketInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:709,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:710,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:711,1
    - Dst: Common::HandleUDPMessageReceived
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:713,1
    - Dst: HandleDataReceived
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:715,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:720,1
    - Dst: SetStatusFailed
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:725,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - aEndPoint
    - aBuffer
    - aPacketInfo
    argTypes:
    - IPEndPointBasis*
    - PacketBuffer*
    - IPPacketInfo*
    constantsTouched: []
    func_position:
      end: 727
      start: 704
    functionDepth: 2
    functionLinenumber: 704
    functionLinenumberEnd: 727
    functionName: HandleUDPMessageReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - HandleDataReceived
    - VerifyOrExit
    - SetStatusFailed
    - Common::HandleUDPMessageReceived
    linkageType: ''
    returnType: void
    signature: HandleUDPMessageReceived(IPEndPointBasis *aEndPoint, PacketBuffer *aBuffer,
      const IPPacketInfo *aPacketInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::HandleUDPReceiveError
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:731,1
    - Dst: SetStatusFailed
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - aEndPoint
    - aError
    - aPacketInfo
    argTypes:
    - IPEndPointBasis*
    - INET_ERROR
    - IPPacketInfo*
    constantsTouched: []
    func_position:
      end: 734
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 734
    functionName: HandleUDPReceiveError
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 2
    functionsReached:
    - SetStatusFailed
    - Common::HandleUDPReceiveError
    linkageType: ''
    returnType: void
    signature: HandleUDPReceiveError(IPEndPointBasis *aEndPoint, INET_ERROR aError,
      const IPPacketInfo *aPacketInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 750
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 750
    functionName: IsTransportReadyForSend
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsTransportReadyForSend(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 757
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 757
    functionName: PrepareTransportForSend
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: INET_ERROR
    signature: PrepareTransportForSend(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::MakeICMPv6DataBuffer
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:773,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:774,1
    - Dst: Common::MakeICMPv4DataBuffer
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:779,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:780,1
    - Dst: SendTo
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:784,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:785,1
    - Dst: Common::MakeDataBuffer
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:796,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:797,1
    - Dst: SendTo
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:799,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:800,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - aAddress
    - aSize
    argTypes:
    - IPAddress
    - uint16_t
    constantsTouched: []
    func_position:
      end: 806
      start: 759
    functionDepth: 2
    functionLinenumber: 759
    functionLinenumberEnd: 806
    functionName: DriveSendForDestination
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 1
    functionsReached:
    - Common::MakeICMPv6DataBuffer
    - Common::MakeDataBuffer
    - VerifyOrExit
    - SendTo
    - SuccessOrExit
    - Common::MakeICMPv4DataBuffer
    linkageType: ''
    returnType: INET_ERROR
    signature: DriveSendForDestination(const IPAddress &aAddress, uint16_t aSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DriveSendForDestination
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:814,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:815,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:819,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - aGroupAddress
    argTypes:
    - GroupAddress
    constantsTouched: []
    func_position:
      end: 827
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 827
    functionName: DriveSendForGroup
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 0
    functionsReached:
    - DriveSendForDestination
    - printf
    - SuccessOrExit
    linkageType: ''
    returnType: INET_ERROR
    signature: DriveSendForGroup(GroupAddress &aGroupAddress)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DriveSendForGroup
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:841,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - aGroupAddresses
    argTypes:
    - GroupAddresses<tCapacity>
    constantsTouched: []
    func_position:
      end: 847
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 847
    functionName: DriveSendForGroups
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 0
    functionsReached:
    - DriveSendForGroup
    - SuccessOrExit
    linkageType: ''
    returnType: INET_ERROR
    signature: DriveSendForGroups(GroupAddresses<tCapacity> &aGroupAddresses)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Common::IsSender
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:853,1
    - Dst: IsTransportReadyForSend
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:859,1
    - Dst: PrepareTransportForSend
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:861,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:862,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:867,1
    - Dst: DriveSendForGroups
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:869,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:870,1
    - Dst: SetStatusFailed
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:876,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 880
      start: 849
    functionDepth: 2
    functionLinenumber: 849
    functionLinenumberEnd: 880
    functionName: DriveSend
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 4
    functionsReached:
    - PrepareTransportForSend
    - Common::IsSender
    - SetStatusFailed
    - IsTransportReadyForSend
    - StartTimer
    - SuccessOrExit
    - DriveSendForGroups
    linkageType: ''
    returnType: void
    signature: DriveSend(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:901,1
    - Dst: NewRawEndPoint
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:911,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:912,1
    - Dst: Bind
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:917,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:918,1
    - Dst: SetICMPFilter
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:922,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:923,1
    - Dst: IsInterfaceIdPresent
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:926,1
    - Dst: BindInterface
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:928,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:929,1
    - Dst: Listen
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:932,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:933,1
    - Dst: NewUDPEndPoint
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:939,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:940,1
    - Dst: Bind
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:945,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:946,1
    - Dst: IsInterfaceIdPresent
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:948,1
    - Dst: BindInterface
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:950,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:951,1
    - Dst: Listen
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:954,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:955,1
    - Dst: IPEndPointBasis*::SetMulticastLoopback
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:963,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:964,1
    - Dst: IsInterfaceIdPresent
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:974,1
    - Dst: MakeIPv4Multicast
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:978,1
    - Dst: MakeIPv6Multicast
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:982,1
    - Dst: ToString
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:985,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:987,1
    - Dst: IPEndPointBasis*::JoinMulticastGroup
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:989,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:990,1
    - Dst: Common::IsReceiver
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:994,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:995,1
    - Dst: DriveSend
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:997,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 998
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 998
    functionName: StartTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 2
    functionsReached:
    - NewRawEndPoint
    - Bind
    - Listen
    - MakeIPv4Multicast
    - MakeIPv6Multicast
    - Common::IsReceiver
    - IPEndPointBasis*::SetMulticastLoopback
    - DriveSend
    - ToString
    - printf
    - IsInterfaceIdPresent
    - IPEndPointBasis*::JoinMulticastGroup
    - SetICMPFilter
    - NewUDPEndPoint
    - FAIL_ERROR
    - BindInterface
    linkageType: ''
    returnType: void
    signature: StartTest(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CancelTimer
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:1006,1
    - Dst: IsInterfaceIdPresent
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:1025,1
    - Dst: ToString
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:1027,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:1029,1
    - Dst: IPEndPointBasis*::LeaveMulticastGroup
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:1031,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:1032,1
    - Dst: Free
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:1040,1
    - Dst: Free
      Src: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp:1045,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1000
    functionDepth: 0
    functionLinenumber: 1000
    functionLinenumberEnd: 1047
    functionName: CleanupTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
    functionUses: 2
    functionsReached:
    - IPEndPointBasis*::LeaveMulticastGroup
    - ToString
    - printf
    - IsInterfaceIdPresent
    - CancelTimer
    - FAIL_ERROR
    - Free
    linkageType: ''
    returnType: void
    signature: CleanupTest(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_curve_num_words
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:158,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:165,1
    - Dst: uECC_vli_sub
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:166,1
    - Dst: uECC_curve_p
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:166,1
    - Dst: uECC_point_add
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - result
    - left
    - right
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 169
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 169
    functionName: uECC_point_sub
    functionSourceFile: /src/openweave-core/src/test-apps/TestECMath.cpp
    functionUses: 0
    functionsReached:
    - uECC_vli_sub
    - uECC_curve_p
    - uECC_vli_set
    - uECC_curve_num_words
    - uECC_point_add
    linkageType: ''
    returnType: void
    signature: "uECC_point_sub(uECC_word_t *result,\n                           const
      uECC_word_t *left,\n                           const uECC_word_t *right,\n                           uECC_Curve
      curve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_point_mult
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - result
    - point
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 180
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 180
    functionName: uECC_point_dbl
    functionSourceFile: /src/openweave-core/src/test-apps/TestECMath.cpp
    functionUses: 0
    functionsReached:
    - uECC_point_mult
    linkageType: ''
    returnType: void
    signature: "uECC_point_dbl(uECC_word_t *result,\n                           const
      uECC_word_t *point,\n                           uECC_Curve curve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_secp160r1
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:188,1
    - Dst: uECC_secp192r1
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:192,1
    - Dst: uECC_secp224r1
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:196,1
    - Dst: uECC_secp256r1
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - curveOID
    argTypes:
    - OID
    constantsTouched: []
    func_position:
      end: 205
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 205
    functionName: CurveOID2uECC_Curve
    functionSourceFile: /src/openweave-core/src/test-apps/TestECMath.cpp
    functionUses: 9
    functionsReached:
    - uECC_secp192r1
    - uECC_secp256r1
    - uECC_secp224r1
    - uECC_secp160r1
    linkageType: ''
    returnType: uECC_Curve
    signature: CurveOID2uECC_Curve(OID curveOID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CurveOID2uECC_Curve
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:215,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:218,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:242,1
    - Dst: uECC_point_add
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:248,1
    - Dst: uECC_point_equal
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:251,1
    - Dst: uECC_curve_num_words
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:251,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:253,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - curveOID
    - iterationCounter
    argTypes:
    - OID
    - uint32_t
    constantsTouched: []
    func_position:
      end: 258
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 258
    functionName: TestECMath_PointAddition
    functionSourceFile: /src/openweave-core/src/test-apps/TestECMath.cpp
    functionUses: 0
    functionsReached:
    - uECC_point_equal
    - printf
    - uECC_curve_num_words
    - CurveOID2uECC_Curve
    - uECC_point_add
    linkageType: ''
    returnType: bool
    signature: TestECMath_PointAddition(OID curveOID, uint32_t iterationCounter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CurveOID2uECC_Curve
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:268,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:271,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:295,1
    - Dst: uECC_point_sub
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:303,1
    - Dst: uECC_point_equal
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:307,1
    - Dst: uECC_curve_num_words
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:307,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:309,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - curveOID
    - iterationCounter
    argTypes:
    - OID
    - uint32_t
    constantsTouched: []
    func_position:
      end: 314
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 314
    functionName: TestECMath_PointSubtraction
    functionSourceFile: /src/openweave-core/src/test-apps/TestECMath.cpp
    functionUses: 0
    functionsReached:
    - uECC_point_equal
    - printf
    - uECC_curve_num_words
    - uECC_point_sub
    - CurveOID2uECC_Curve
    linkageType: ''
    returnType: bool
    signature: TestECMath_PointSubtraction(OID curveOID, uint32_t iterationCounter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CurveOID2uECC_Curve
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:323,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:326,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:347,1
    - Dst: uECC_point_dbl
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:353,1
    - Dst: uECC_point_equal
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:356,1
    - Dst: uECC_curve_num_words
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:356,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:358,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - curveOID
    - iterationCounter
    argTypes:
    - OID
    - uint32_t
    constantsTouched: []
    func_position:
      end: 363
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 363
    functionName: TestECMath_PointDouble
    functionSourceFile: /src/openweave-core/src/test-apps/TestECMath.cpp
    functionUses: 0
    functionsReached:
    - uECC_point_dbl
    - uECC_point_equal
    - printf
    - uECC_curve_num_words
    - CurveOID2uECC_Curve
    linkageType: ''
    returnType: bool
    signature: TestECMath_PointDouble(OID curveOID, uint32_t iterationCounter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CurveOID2uECC_Curve
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:373,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:376,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:400,1
    - Dst: uECC_point_mult
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:406,1
    - Dst: uECC_point_equal
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:409,1
    - Dst: uECC_curve_num_words
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:409,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:411,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - curveOID
    - iterationCounter
    argTypes:
    - OID
    - uint32_t
    constantsTouched: []
    func_position:
      end: 416
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 416
    functionName: TestECMath_PointMultiply
    functionSourceFile: /src/openweave-core/src/test-apps/TestECMath.cpp
    functionUses: 0
    functionsReached:
    - uECC_point_mult
    - uECC_point_equal
    - printf
    - uECC_curve_num_words
    - CurveOID2uECC_Curve
    linkageType: ''
    returnType: bool
    signature: TestECMath_PointMultiply(OID curveOID, uint32_t iterationCounter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CurveOID2uECC_Curve
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:430,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:433,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:464,1
    - Dst: uECC_point_mult
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:472,1
    - Dst: uECC_point_mult
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:475,1
    - Dst: uECC_point_add
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:478,1
    - Dst: uECC_point_equal
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:482,1
    - Dst: uECC_curve_num_words
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:482,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:484,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 2
    argNames:
    - curveOID
    - iterationCounter
    argTypes:
    - OID
    - uint32_t
    constantsTouched: []
    func_position:
      end: 489
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 489
    functionName: TestECMath_JointScalarMultiply
    functionSourceFile: /src/openweave-core/src/test-apps/TestECMath.cpp
    functionUses: 0
    functionsReached:
    - uECC_point_mult
    - uECC_point_equal
    - printf
    - uECC_curve_num_words
    - CurveOID2uECC_Curve
    - uECC_point_add
    linkageType: ''
    returnType: bool
    signature: TestECMath_JointScalarMultiply(OID curveOID, uint32_t iterationCounter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NIST_P192_ECPointS_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:515,1
    - Dst: NIST_P192_ECPointS_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:516,1
    - Dst: NIST_P192_ECPointT_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:517,1
    - Dst: NIST_P192_ECPointT_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:518,1
    - Dst: NIST_P192_ECPointRadd_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:519,1
    - Dst: NIST_P192_ECPointRadd_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:520,1
    - Dst: NIST_P224_ECPointS_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:524,1
    - Dst: NIST_P224_ECPointS_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:525,1
    - Dst: NIST_P224_ECPointT_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:526,1
    - Dst: NIST_P224_ECPointT_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:527,1
    - Dst: NIST_P224_ECPointRadd_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:528,1
    - Dst: NIST_P224_ECPointRadd_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:529,1
    - Dst: NIST_P256_ECPointS_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:533,1
    - Dst: NIST_P256_ECPointS_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:534,1
    - Dst: NIST_P256_ECPointT_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:535,1
    - Dst: NIST_P256_ECPointT_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:536,1
    - Dst: NIST_P256_ECPointRadd_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:537,1
    - Dst: NIST_P256_ECPointRadd_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:538,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:542,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:543,1
    - Dst: GetECGroupForCurve
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:547,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:548,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:551,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:552,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:554,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:555,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:558,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:559,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:561,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:562,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:565,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:566,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:568,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:569,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:572,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:573,1
    - Dst: EC_POINT_add
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:577,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:578,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:581,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:583,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:584,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:588,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:589,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:590,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:591,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:592,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:593,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:594,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:595,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:596,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:597,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:598,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:601,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 71
    argCount: 2
    argNames:
    - curveOID
    - iterationCounter
    argTypes:
    - OID
    - uint32_t
    constantsTouched: []
    func_position:
      end: 606
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 606
    functionName: TestECMath_PointAddition
    functionSourceFile: /src/openweave-core/src/test-apps/TestECMath.cpp
    functionUses: 0
    functionsReached:
    - EC_POINT_set_affine_coordinates_GFp
    - GetECGroupForCurve
    - NIST_P256_ECPointT_X
    - NIST_P192_ECPointRadd_X
    - NIST_P256_ECPointRadd_X
    - printf
    - NIST_P224_ECPointRadd_Y
    - EC_POINT_free
    - BN_free
    - VerifyOrExit
    - NIST_P256_ECPointS_Y
    - NIST_P256_ECPointT_Y
    - NIST_P192_ECPointT_Y
    - EC_POINT_cmp
    - NIST_P192_ECPointRadd_Y
    - NIST_P192_ECPointS_Y
    - NIST_P224_ECPointT_X
    - NIST_P256_ECPointRadd_Y
    - NIST_P192_ECPointS_X
    - EC_GROUP_free
    - ExitNow
    - NIST_P224_ECPointS_Y
    - NIST_P224_ECPointT_Y
    - NIST_P224_ECPointRadd_X
    - NIST_P192_ECPointT_X
    - EC_POINT_new
    - NIST_P224_ECPointS_X
    - SuccessOrExit
    - NIST_P256_ECPointS_X
    - EC_POINT_add
    linkageType: ''
    returnType: bool
    signature: TestECMath_PointAddition(OID curveOID, uint32_t iterationCounter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NIST_P192_ECPointS_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:626,1
    - Dst: NIST_P192_ECPointS_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:627,1
    - Dst: NIST_P192_ECPointT_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:628,1
    - Dst: NIST_P192_ECPointT_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:629,1
    - Dst: NIST_P192_ECPointRsub_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:630,1
    - Dst: NIST_P192_ECPointRsub_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:631,1
    - Dst: NIST_P224_ECPointS_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:635,1
    - Dst: NIST_P224_ECPointS_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:636,1
    - Dst: NIST_P224_ECPointT_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:637,1
    - Dst: NIST_P224_ECPointT_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:638,1
    - Dst: NIST_P224_ECPointRsub_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:639,1
    - Dst: NIST_P224_ECPointRsub_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:640,1
    - Dst: NIST_P256_ECPointS_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:644,1
    - Dst: NIST_P256_ECPointS_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:645,1
    - Dst: NIST_P256_ECPointT_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:646,1
    - Dst: NIST_P256_ECPointT_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:647,1
    - Dst: NIST_P256_ECPointRsub_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:648,1
    - Dst: NIST_P256_ECPointRsub_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:649,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:653,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:654,1
    - Dst: GetECGroupForCurve
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:658,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:659,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:662,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:663,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:665,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:666,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:669,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:670,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:672,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:673,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:676,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:677,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:679,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:680,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:683,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:684,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:687,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:688,1
    - Dst: EC_POINT_dup
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:693,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:694,1
    - Dst: EC_POINT_invert
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:696,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:697,1
    - Dst: EC_POINT_add
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:699,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:700,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:704,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:706,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:707,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:711,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:712,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:713,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:714,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:715,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:716,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:717,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:718,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:719,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:720,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:721,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:722,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:725,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 79
    argCount: 2
    argNames:
    - curveOID
    - iterationCounter
    argTypes:
    - OID
    - uint32_t
    constantsTouched: []
    func_position:
      end: 730
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 730
    functionName: TestECMath_PointSubtraction
    functionSourceFile: /src/openweave-core/src/test-apps/TestECMath.cpp
    functionUses: 0
    functionsReached:
    - EC_POINT_set_affine_coordinates_GFp
    - GetECGroupForCurve
    - EC_POINT_dup
    - NIST_P256_ECPointT_X
    - printf
    - NIST_P224_ECPointRsub_Y
    - EC_POINT_free
    - BN_free
    - VerifyOrExit
    - NIST_P256_ECPointS_Y
    - NIST_P256_ECPointT_Y
    - NIST_P192_ECPointT_Y
    - EC_POINT_cmp
    - NIST_P256_ECPointRsub_Y
    - NIST_P224_ECPointRsub_X
    - NIST_P192_ECPointS_Y
    - NIST_P224_ECPointT_X
    - NIST_P192_ECPointS_X
    - EC_GROUP_free
    - ExitNow
    - EC_POINT_invert
    - NIST_P224_ECPointS_Y
    - NIST_P224_ECPointT_Y
    - NIST_P192_ECPointRsub_X
    - NIST_P256_ECPointRsub_X
    - NIST_P192_ECPointRsub_Y
    - NIST_P192_ECPointT_X
    - EC_POINT_new
    - NIST_P224_ECPointS_X
    - SuccessOrExit
    - NIST_P256_ECPointS_X
    - EC_POINT_add
    linkageType: ''
    returnType: bool
    signature: TestECMath_PointSubtraction(OID curveOID, uint32_t iterationCounter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NIST_P192_ECPointS_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:746,1
    - Dst: NIST_P192_ECPointS_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:747,1
    - Dst: NIST_P192_ECPointRdbl_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:748,1
    - Dst: NIST_P192_ECPointRdbl_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:749,1
    - Dst: NIST_P224_ECPointS_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:753,1
    - Dst: NIST_P224_ECPointS_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:754,1
    - Dst: NIST_P224_ECPointRdbl_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:755,1
    - Dst: NIST_P224_ECPointRdbl_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:756,1
    - Dst: NIST_P256_ECPointS_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:760,1
    - Dst: NIST_P256_ECPointS_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:761,1
    - Dst: NIST_P256_ECPointRdbl_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:762,1
    - Dst: NIST_P256_ECPointRdbl_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:763,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:767,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:768,1
    - Dst: GetECGroupForCurve
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:772,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:773,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:776,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:777,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:779,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:780,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:783,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:784,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:786,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:787,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:790,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:791,1
    - Dst: EC_POINT_dbl
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:795,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:796,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:799,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:801,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:802,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:806,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:807,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:808,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:809,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:810,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:811,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:812,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:813,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:816,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 58
    argCount: 2
    argNames:
    - curveOID
    - iterationCounter
    argTypes:
    - OID
    - uint32_t
    constantsTouched: []
    func_position:
      end: 821
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 821
    functionName: TestECMath_PointDouble
    functionSourceFile: /src/openweave-core/src/test-apps/TestECMath.cpp
    functionUses: 0
    functionsReached:
    - EC_POINT_set_affine_coordinates_GFp
    - NIST_P192_ECPointRdbl_Y
    - GetECGroupForCurve
    - EC_POINT_dbl
    - NIST_P224_ECPointRdbl_Y
    - printf
    - EC_POINT_free
    - BN_free
    - VerifyOrExit
    - NIST_P256_ECPointS_Y
    - EC_POINT_cmp
    - NIST_P256_ECPointRdbl_Y
    - NIST_P192_ECPointS_Y
    - NIST_P192_ECPointRdbl_X
    - NIST_P192_ECPointS_X
    - NIST_P256_ECPointRdbl_X
    - EC_GROUP_free
    - ExitNow
    - NIST_P224_ECPointS_Y
    - NIST_P224_ECPointRdbl_X
    - EC_POINT_new
    - NIST_P224_ECPointS_X
    - SuccessOrExit
    - NIST_P256_ECPointS_X
    linkageType: ''
    returnType: bool
    signature: TestECMath_PointDouble(OID curveOID, uint32_t iterationCounter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NIST_P192_ECPointS_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:838,1
    - Dst: NIST_P192_ECPointS_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:839,1
    - Dst: NIST_P192_D
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:840,1
    - Dst: NIST_P192_ECPointRmul_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:841,1
    - Dst: NIST_P192_ECPointRmul_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:842,1
    - Dst: NIST_P224_ECPointS_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:846,1
    - Dst: NIST_P224_ECPointS_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:847,1
    - Dst: NIST_P224_D
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:848,1
    - Dst: NIST_P224_ECPointRmul_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:849,1
    - Dst: NIST_P224_ECPointRmul_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:850,1
    - Dst: NIST_P256_ECPointS_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:854,1
    - Dst: NIST_P256_ECPointS_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:855,1
    - Dst: NIST_P256_D
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:856,1
    - Dst: NIST_P256_ECPointRmul_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:857,1
    - Dst: NIST_P256_ECPointRmul_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:858,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:862,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:863,1
    - Dst: GetECGroupForCurve
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:867,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:868,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:871,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:872,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:874,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:875,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:878,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:879,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:881,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:882,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:885,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:886,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:890,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:891,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:894,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:896,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:897,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:901,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:902,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:903,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:904,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:905,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:906,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:907,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:908,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:909,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:912,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 62
    argCount: 2
    argNames:
    - curveOID
    - iterationCounter
    argTypes:
    - OID
    - uint32_t
    constantsTouched: []
    func_position:
      end: 917
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 917
    functionName: TestECMath_PointMultiply
    functionSourceFile: /src/openweave-core/src/test-apps/TestECMath.cpp
    functionUses: 0
    functionsReached:
    - EC_POINT_set_affine_coordinates_GFp
    - GetECGroupForCurve
    - printf
    - EC_POINT_free
    - NIST_P256_D
    - BN_free
    - NIST_P192_ECPointRmul_Y
    - VerifyOrExit
    - NIST_P256_ECPointS_Y
    - EC_POINT_cmp
    - NIST_P192_ECPointS_Y
    - NIST_P192_D
    - NIST_P256_ECPointRmul_Y
    - NIST_P224_ECPointRmul_Y
    - NIST_P192_ECPointS_X
    - EC_GROUP_free
    - NIST_P224_ECPointRmul_X
    - ExitNow
    - NIST_P256_ECPointRmul_X
    - NIST_P224_ECPointS_Y
    - NIST_P224_D
    - EC_POINT_mul
    - NIST_P192_ECPointRmul_X
    - EC_POINT_new
    - NIST_P224_ECPointS_X
    - SuccessOrExit
    - NIST_P256_ECPointS_X
    linkageType: ''
    returnType: bool
    signature: TestECMath_PointMultiply(OID curveOID, uint32_t iterationCounter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NIST_P192_ECPointS_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:942,1
    - Dst: NIST_P192_ECPointS_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:943,1
    - Dst: NIST_P192_ECPointT_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:944,1
    - Dst: NIST_P192_ECPointT_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:945,1
    - Dst: NIST_P192_D
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:946,1
    - Dst: NIST_P192_E
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:947,1
    - Dst: NIST_P192_ECPointRjsm_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:948,1
    - Dst: NIST_P192_ECPointRjsm_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:949,1
    - Dst: NIST_P224_ECPointS_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:953,1
    - Dst: NIST_P224_ECPointS_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:954,1
    - Dst: NIST_P224_ECPointT_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:955,1
    - Dst: NIST_P224_ECPointT_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:956,1
    - Dst: NIST_P224_D
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:957,1
    - Dst: NIST_P224_E
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:958,1
    - Dst: NIST_P224_ECPointRjsm_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:959,1
    - Dst: NIST_P224_ECPointRjsm_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:960,1
    - Dst: NIST_P256_ECPointS_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:964,1
    - Dst: NIST_P256_ECPointS_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:965,1
    - Dst: NIST_P256_ECPointT_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:966,1
    - Dst: NIST_P256_ECPointT_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:967,1
    - Dst: NIST_P256_D
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:968,1
    - Dst: NIST_P256_E
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:969,1
    - Dst: NIST_P256_ECPointRjsm_X
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:970,1
    - Dst: NIST_P256_ECPointRjsm_Y
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:971,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:975,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:976,1
    - Dst: GetECGroupForCurve
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:980,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:981,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:984,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:985,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:987,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:988,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:991,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:992,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:994,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:995,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:998,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:999,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1001,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1002,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1005,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1006,1
    - Dst: EC_POINTs_mul
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1015,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1016,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1019,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1021,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1022,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1026,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1027,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1028,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1029,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1030,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1031,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1032,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1033,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1034,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1035,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1036,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1037,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1038,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1041,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 83
    argCount: 2
    argNames:
    - curveOID
    - iterationCounter
    argTypes:
    - OID
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1046
      start: 921
    functionDepth: 1
    functionLinenumber: 921
    functionLinenumberEnd: 1046
    functionName: TestECMath_JointScalarMultiply
    functionSourceFile: /src/openweave-core/src/test-apps/TestECMath.cpp
    functionUses: 0
    functionsReached:
    - EC_POINT_set_affine_coordinates_GFp
    - GetECGroupForCurve
    - NIST_P256_ECPointT_X
    - NIST_P192_ECPointRjsm_X
    - NIST_P256_E
    - printf
    - NIST_P256_ECPointRjsm_Y
    - NIST_P192_ECPointRjsm_Y
    - NIST_P256_D
    - EC_POINT_free
    - BN_free
    - VerifyOrExit
    - NIST_P256_ECPointS_Y
    - NIST_P256_ECPointT_Y
    - NIST_P192_ECPointT_Y
    - EC_POINT_cmp
    - EC_POINTs_mul
    - NIST_P256_ECPointRjsm_X
    - NIST_P192_ECPointS_Y
    - NIST_P192_D
    - NIST_P224_ECPointT_X
    - NIST_P192_ECPointS_X
    - EC_GROUP_free
    - ExitNow
    - NIST_P224_ECPointS_Y
    - NIST_P224_ECPointT_Y
    - NIST_P192_E
    - NIST_P224_D
    - NIST_P224_ECPointRjsm_X
    - NIST_P224_E
    - NIST_P192_ECPointT_X
    - EC_POINT_new
    - NIST_P224_ECPointS_X
    - SuccessOrExit
    - NIST_P224_ECPointRjsm_Y
    - NIST_P256_ECPointS_X
    linkageType: ''
    returnType: bool
    signature: TestECMath_JointScalarMultiply(OID curveOID, uint32_t iterationCounter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1097,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1105,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1110,1
    - Dst: time
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1111,1
    - Dst: function
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1114,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1115,1
    - Dst: time
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1118,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECMath.cpp:1119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 1126
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1126
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestECMath.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - defined
    - printf
    - function
    - time
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::BulkDataTransferClient
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BulkDataTransferClient::BulkDataTransferClient()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: BulkDataTransferClient::~BulkDataTransferClient()
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BulkDataTransferClient::~BulkDataTransferClient()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - aExchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 68
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 68
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::Init
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::Init(WeaveExchangeManager *aExchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aCon
    argTypes:
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::setCon
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BulkDataTransferClient::setCon(WeaveConnection *aCon)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:90,1
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:92,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:94,1
    - Dst: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendSendInitRequest
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - DestFileName
    - aCon
    argTypes:
    - char*
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 97
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 97
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendFile
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendSendInitRequest
    - fopen
    - printf
    - nl::Weave::System::MapErrorPOSIX
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::SendFile(const char *DestFileName, WeaveConnection
      *aCon)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:101,1
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:103,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:105,1
    - Dst: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendSendInitRequest
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - DestFileName
    - nodeId
    - nodeAddr
    argTypes:
    - char*
    - uint64_t
    - IPAddress
    constantsTouched: []
    func_position:
      end: 108
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 108
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendFile
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendSendInitRequest
    - fopen
    - printf
    - nl::Weave::System::MapErrorPOSIX
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::SendFile(const char *DestFileName, uint64_t
      nodeId, IPAddress nodeAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:112,1
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:114,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:116,1
    - Dst: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendSendInitRequest
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - DestFileName
    - aCon
    argTypes:
    - char*
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::ReceiveFile
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendSendInitRequest
    - fopen
    - printf
    - nl::Weave::System::MapErrorPOSIX
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::ReceiveFile(const char *DestFileName, WeaveConnection
      *aCon)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:123,1
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:125,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:127,1
    - Dst: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendSendInitRequest
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - DestFileName
    - nodeId
    - nodeAddr
    argTypes:
    - char*
    - uint64_t
    - IPAddress
    constantsTouched: []
    func_position:
      end: 130
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 130
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::ReceiveFile
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendSendInitRequest
    - fopen
    - printf
    - nl::Weave::System::MapErrorPOSIX
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::ReceiveFile(const char *DestFileName, uint64_t
      nodeId, IPAddress nodeAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:142,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:147,1
    - Dst: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendSendInitRequest
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - aCon
    argTypes:
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 152
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 152
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendSendInitRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 5
    functionsReached:
    - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendSendInitRequest
    - Close
    - NewContext
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::SendSendInitRequest(WeaveConnection *aCon)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendSendInitRequest
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nodeId
    - nodeAddr
    argTypes:
    - uint64_t
    - IPAddress
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendSendInitRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 6
    functionsReached:
    - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendSendInitRequest
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::SendSendInitRequest(uint64_t nodeId, IPAddress
      nodeAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:165,1
    - Dst: SelectNodeAddress
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:170,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:173,1
    - Dst: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendSendInitRequest
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - nodeId
    - nodeAddr
    - port
    argTypes:
    - uint64_t
    - IPAddress
    - uint16_t
    constantsTouched: []
    func_position:
      end: 178
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 178
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendSendInitRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 7
    functionsReached:
    - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendSendInitRequest
    - Close
    - NewContext
    - SelectNodeAddress
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::SendSendInitRequest(uint64_t nodeId, IPAddress
      nodeAddr, uint16_t port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:188,1
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:201,1
    - Dst: ReferencedString::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:206,1
    - Dst: SendInit::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:210,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:212,1
    - Dst: SendInit::pack
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:213,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:216,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:220,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:221,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:223,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 230
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendSendInitRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 7
    functionsReached:
    - SendMessage
    - ReferencedString::init
    - SendInit::pack
    - ReferencedString::ReferencedString
    - SendInit::init
    - printf
    - Close
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::SendSendInitRequest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:235,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:242,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:250,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:256,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:258,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:258,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:258,1
    - Dst: nl::Weave::Profiles::SendAccept::parse
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:262,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:263,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:263,1
    - Dst: BulkDataTransferClient*::IsSenderDriveMode
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:267,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:272,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:274,1
    - Dst: BulkDataTransferClient*::SendBlock
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:277,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:281,1
    - Dst: BulkDataTransferClient*::mCon::Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:283,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:288,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:293,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:297,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 6
    argNames:
    - ec
    - packetInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 301
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 301
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::HandleSendInitResponse
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Weave::Profiles::SendAccept::parse
    - BulkDataTransferClient*::IsSenderDriveMode
    - printf
    - DumpMemory
    - BulkDataTransferClient*::SendBlock
    - PacketBuffer*::Start
    - BulkDataTransferClient*::mCon::Close
    linkageType: ''
    returnType: void
    signature: BulkDataTransferClient::HandleSendInitResponse(ExchangeContext *ec,
      const IPPacketInfo *packetInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId,
      uint8_t msgType, PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:308,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:310,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:311,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:311,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:312,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:313,1
    - Dst: BulkDataTransferClient*::SendBlock
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:318,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:319,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:319,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 6
    argNames:
    - ec
    - packetInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 328
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 328
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::HandleBlockAck
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
    - printf
    - VerifyOrExit
    - BulkDataTransferClient*::SendBlock
    linkageType: ''
    returnType: void
    signature: BulkDataTransferClient::HandleBlockAck(ExchangeContext *ec, const IPPacketInfo
      *packetInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType,
      PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:332,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:333,1
    - Dst: BulkDataTransferClient*::mExchangeCtx::Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:337,1
    - Dst: BulkDataTransferClient*::mCon::Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:339,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 6
    argNames:
    - ec
    - packetInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 347
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 347
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::HandleBlockEOFAck
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 0
    functionsReached:
    - BulkDataTransferClient*::mExchangeCtx::Close
    - BulkDataTransferClient*::mCon::Close
    - printf
    - VerifyOrExit
    linkageType: ''
    returnType: void
    signature: BulkDataTransferClient::HandleBlockEOFAck(ExchangeContext *ec, const
      IPPacketInfo *packetInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId,
      uint8_t msgType, PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:359,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:364,1
    - Dst: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendReceiveInitRequest
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - con
    argTypes:
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 369
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 369
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendReceiveInitRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendReceiveInitRequest
    - Close
    - NewContext
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::SendReceiveInitRequest(WeaveConnection *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendReceiveInitRequest
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nodeId
    - nodeAddr
    argTypes:
    - uint64_t
    - IPAddress
    constantsTouched: []
    func_position:
      end: 374
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 374
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendReceiveInitRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendReceiveInitRequest
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::SendReceiveInitRequest(uint64_t nodeId, IPAddress
      nodeAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:382,1
    - Dst: SelectNodeAddress
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:387,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:390,1
    - Dst: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendReceiveInitRequest
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:394,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - nodeId
    - nodeAddr
    - port
    argTypes:
    - uint64_t
    - IPAddress
    - uint16_t
    constantsTouched: []
    func_position:
      end: 395
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 395
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendReceiveInitRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendReceiveInitRequest
    - Close
    - NewContext
    - SelectNodeAddress
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::SendReceiveInitRequest(uint64_t nodeId, IPAddress
      nodeAddr, uint16_t port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:402,1
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:415,1
    - Dst: ReferencedString::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:420,1
    - Dst: ReceiveInit::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:423,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:425,1
    - Dst: ReceiveInit::pack
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:426,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:429,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:433,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:434,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:436,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 443
      start: 397
    functionDepth: 3
    functionLinenumber: 397
    functionLinenumberEnd: 443
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendReceiveInitRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 3
    functionsReached:
    - ReceiveInit::init
    - ReferencedString::init
    - SendMessage
    - ReferencedString::ReferencedString
    - printf
    - Close
    - ReceiveInit::pack
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::SendReceiveInitRequest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:449,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:456,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:464,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:470,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:473,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:474,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:475,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:475,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:475,1
    - Dst: BulkDataTransferClient*::SendBlockQueryRequest
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:478,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:482,1
    - Dst: BulkDataTransferClient*::mCon::Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:484,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:489,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:491,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 6
    argNames:
    - ec
    - packetInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 494
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 494
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::HandleReceiveInitResponse
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
    - printf
    - DumpMemory
    - PacketBuffer*::Start
    - BulkDataTransferClient*::SendBlockQueryRequest
    - BulkDataTransferClient*::mCon::Close
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::HandleReceiveInitResponse(ExchangeContext *ec,
      const IPPacketInfo *packetInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId,
      uint8_t msgType, PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:501,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:511,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:514,1
    - Dst: BlockSend::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:517,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:518,1
    - Dst: BlockSend::pack
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:519,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:533,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:537,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:539,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:543,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:544,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:546,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:550,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 553
      start: 499
    functionDepth: 3
    functionLinenumber: 499
    functionLinenumberEnd: 553
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendBlock
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - BlockSend::pack
    - printf
    - BlockSend::init
    - Close
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::SendBlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:560,1
    - Dst: BlockQuery::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:578,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:579,1
    - Dst: BlockQuery::pack
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:580,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:583,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:587,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:588,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:590,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:594,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 597
      start: 558
    functionDepth: 3
    functionLinenumber: 558
    functionLinenumberEnd: 597
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendBlockQueryRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - printf
    - Close
    - nl::Weave::System::PacketBuffer::New
    - BlockQuery::init
    - BlockQuery::pack
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::SendBlockQueryRequest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:601,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:608,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:617,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:624,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:625,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:625,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:625,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:631,1
    - Dst: BulkDataTransferClient*::SendBlockQueryRequest
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:635,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:639,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:640,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:640,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:640,1
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:645,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:647,1
    - Dst: ferror
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:647,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:648,1
    - Dst: BulkDataTransferClient*::SendBlockEOFAck
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:653,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:657,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:659,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 6
    argNames:
    - ec
    - packetInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 660
      start: 599
    functionDepth: 2
    functionLinenumber: 599
    functionLinenumberEnd: 660
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::HandleBlockQueryResponse
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - exit
    - nl::Weave::System::PacketBuffer::Free
    - ferror
    - BulkDataTransferClient*::SendBlockEOFAck
    - fclose
    - printf
    - DumpMemory
    - PacketBuffer*::Start
    - BulkDataTransferClient*::SendBlockQueryRequest
    linkageType: ''
    returnType: void
    signature: BulkDataTransferClient::HandleBlockQueryResponse(ExchangeContext *ec,
      const IPPacketInfo *packetInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId,
      uint8_t msgType, PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:667,1
    - Dst: BlockEOFAck::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:684,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:685,1
    - Dst: BlockEOFAck::pack
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:686,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:689,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:693,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:695,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 703
      start: 665
    functionDepth: 3
    functionLinenumber: 665
    functionLinenumberEnd: 703
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendBlockEOFAck
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - BlockEOFAck::init
    - printf
    - Close
    - BlockEOFAck::pack
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferClient::SendBlockEOFAck()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ec
    - packetInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 708
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 708
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::HandleBlockEOFAckResponse
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: BulkDataTransferClient::HandleBlockEOFAckResponse(ExchangeContext *ec,
      const IPPacketInfo *packetInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId,
      uint8_t msgType, PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 713
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 713
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::IsAsyncMode
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: BulkDataTransferClient::IsAsyncMode()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 718
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 718
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::IsSenderDriveMode
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: BulkDataTransferClient::IsSenderDriveMode()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 723
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 723
    functionName: nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::IsReceiverDriveMode
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: BulkDataTransferClient::IsReceiverDriveMode()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: TestPersistedStorageContext::TestPersistedStorageContext
    functionSourceFile: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestPersistedStorageContext::TestPersistedStorageContext()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - TestPersistedStorageContext*
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: InitializePersistedStorage
    functionSourceFile: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp
    functionUses: 3
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: InitializePersistedStorage(TestPersistedStorageContext *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestSetup(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: int
    signature: TestTeardown(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestPersistedStorageContext *>
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:78,1
    - Dst: InitializePersistedStorage
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:82,1
    - Dst: nl::Weave::Platform::PersistedStorage::Write
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:86,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 88
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 88
    functionName: CheckWriteEmptyKey
    functionSourceFile: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp
    functionUses: 0
    functionsReached:
    - InitializePersistedStorage
    - nl::Weave::Platform::PersistedStorage::Write
    - static_cast<TestPersistedStorageContext *>
    - NL_TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: CheckWriteEmptyKey(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestPersistedStorageContext *>
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:92,1
    - Dst: InitializePersistedStorage
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:96,1
    - Dst: nl::Weave::Platform::PersistedStorage::Read
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:100,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: CheckReadEmptyKey
    functionSourceFile: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Platform::PersistedStorage::Read
    - InitializePersistedStorage
    - NL_TEST_ASSERT
    - static_cast<TestPersistedStorageContext *>
    linkageType: ''
    returnType: void
    signature: CheckReadEmptyKey(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestPersistedStorageContext *>
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:106,1
    - Dst: InitializePersistedStorage
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:111,1
    - Dst: nl::Weave::Platform::PersistedStorage::Write
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:115,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 117
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 117
    functionName: CheckWriteNonexistentKey
    functionSourceFile: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp
    functionUses: 0
    functionsReached:
    - InitializePersistedStorage
    - nl::Weave::Platform::PersistedStorage::Write
    - static_cast<TestPersistedStorageContext *>
    - NL_TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: CheckWriteNonexistentKey(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestPersistedStorageContext *>
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:121,1
    - Dst: InitializePersistedStorage
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:126,1
    - Dst: nl::Weave::Platform::PersistedStorage::Read
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:130,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 132
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 132
    functionName: CheckReadNonexistentKey
    functionSourceFile: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Platform::PersistedStorage::Read
    - InitializePersistedStorage
    - NL_TEST_ASSERT
    - static_cast<TestPersistedStorageContext *>
    linkageType: ''
    returnType: void
    signature: CheckReadNonexistentKey(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestPersistedStorageContext *>
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:136,1
    - Dst: InitializePersistedStorage
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:142,1
    - Dst: nl::Weave::Platform::PersistedStorage::Write
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:146,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:147,1
    - Dst: nl::Weave::Platform::PersistedStorage::Read
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:149,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:150,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 152
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 152
    functionName: CheckWriteRead
    functionSourceFile: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp
    functionUses: 0
    functionsReached:
    - InitializePersistedStorage
    - nl::Weave::Platform::PersistedStorage::Write
    - NL_TEST_ASSERT
    - nl::Weave::Platform::PersistedStorage::Read
    - static_cast<TestPersistedStorageContext *>
    linkageType: ''
    returnType: void
    signature: CheckWriteRead(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestPersistedStorageContext::TestPersistedStorageContext
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:190,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:192,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:193,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:195,1
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:206,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:209,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 212
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 212
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp
    functionUses: 0
    functionsReached:
    - ParseArgs
    - exit
    - nlTestRunnerStats
    - ParseArgsFromEnvVar
    - nl_test_set_output_style
    - nlTestRunner
    - TestPersistedStorageContext::TestPersistedStorageContext
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetSIGUSR1Handler
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:122,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:124,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:125,1
    - Dst: ResolveWeaveNetworkOptions
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:126,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:128,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:131,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:133,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:135,1
    - Dst: SelectNodeAddress
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:138,1
    - Dst: PrintNodeConfig
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:144,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:147,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:155,1
    - Dst: DriveSending
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:158,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:161,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:162,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:163,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 166
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 166
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - InitSystemLayer
    - DriveSending
    - ShutdownWeaveStack
    - ParseArgs
    - SetSIGUSR1Handler
    - exit
    - ShutdownSystemLayer
    - InitNetwork
    - ServiceNetwork
    - ParseArgsFromEnvVar
    - InitWeaveStack
    - ShutdownNetwork
    - printf
    - SelectNodeAddress
    - ResolveWeaveNetworkOptions
    - PrintNodeConfig
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:181,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:183,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:188,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:190,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:195,1
    - Dst: SendInterval < 0 || SendInterval >
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:195,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:197,1
    - Dst: ParseIPAddress
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:203,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:205,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:210,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 215
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 215
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - SendInterval < 0 || SendInterval >
    - ParseInt
    - ParseIPAddress
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:223,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:227,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 237
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 237
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseNodeId
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:249,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:257,1
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:260,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:262,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:274,1
    - Dst: NewConnection
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:280,1
    - Dst: WeaveConnection*::Connect
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:286,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:289,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:290,1
    - Dst: MakeWeaveMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:298,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:307,1
    - Dst: WeaveConnection*::SendMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:309,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:312,1
    - Dst: MakeWeaveMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:319,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:328,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:330,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:333,1
    - Dst: ToString
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:341,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:343,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 345
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 345
    functionName: DriveSending
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp
    functionUses: 13
    functionsReached:
    - SendMessage
    - Now
    - WeaveConnection*::Close
    - MakeWeaveMessage
    - WeaveConnection*::PeerAddr::ToString
    - ToString
    - printf
    - WeaveConnection*::Connect
    - NewConnection
    - WeaveConnection*::SendMessage
    linkageType: ''
    returnType: void
    signature: DriveSending()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:353,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:360,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:361,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:373,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:378,1
    - Dst: WeaveMessageInfo*::Clear
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:380,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - msgInfo
    argTypes:
    - WeaveMessageInfo*
    constantsTouched: []
    func_position:
      end: 389
      start: 347
    functionDepth: 3
    functionLinenumber: 347
    functionLinenumberEnd: 389
    functionName: MakeWeaveMessage
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp
    functionUses: 1
    functionsReached:
    - PacketBuffer*::SetDataLength
    - WeaveMessageInfo*::Clear
    - PacketBuffer*::MaxDataLength
    - memcpy
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: PacketBuffer
    signature: '*MakeWeaveMessage(WeaveMessageInfo *msgInfo)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveMessageInfo*::InPacketInfo::SrcAddress::ToString
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:408,1
    - Dst: GetInterfaceName
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:412,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:419,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:422,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:422,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:422,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:425,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - msgLayer
    - msgInfo
    - payload
    argTypes:
    - WeaveMessageLayer*
    - WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 426
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 426
    functionName: HandleMessageReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - nl::Weave::System::PacketBuffer::Free
    - printf
    - GetInterfaceName
    - WeaveMessageInfo*::InPacketInfo::SrcAddress::ToString
    - PacketBuffer*::Start
    linkageType: ''
    returnType: void
    signature: HandleMessageReceived(WeaveMessageLayer *msgLayer, WeaveMessageInfo
      *msgInfo, PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HandleMessageReceived
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - con
    - msgInfo
    - msgBuf
    argTypes:
    - WeaveConnection*
    - WeaveMessageInfo*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 431
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 431
    functionName: HandleMessageReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp
    functionUses: 1
    functionsReached:
    - HandleMessageReceived
    linkageType: ''
    returnType: void
    signature: HandleMessageReceived(WeaveConnection *con, WeaveMessageInfo *msgInfo,
      PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:435,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - msgLayer
    - err
    - pktInfo
    argTypes:
    - WeaveMessageLayer*
    - WEAVE_ERROR
    - IPPacketInfo*
    constantsTouched: []
    func_position:
      end: 436
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 436
    functionName: HandleReceiveError
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - printf
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleReceiveError(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const
      IPPacketInfo *pktInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HandleReceiveError
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - con
    - err
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 441
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 441
    functionName: HandleReceiveError
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp
    functionUses: 1
    functionsReached:
    - HandleReceiveError
    linkageType: ''
    returnType: void
    signature: HandleReceiveError(WeaveConnection *con, WEAVE_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:446,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - msgLayer
    - con
    argTypes:
    - WeaveMessageLayer*
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 453
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 453
    functionName: HandleConnectionReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp
    functionUses: 3
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    linkageType: ''
    returnType: void
    signature: HandleConnectionReceived(WeaveMessageLayer *msgLayer, WeaveConnection
      *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:458,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:461,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:464,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:464,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 467
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 467
    functionName: HandleConnectionComplete
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp
    functionUses: 3
    functionsReached:
    - Now
    - WeaveConnection*::PeerAddr::ToString
    - printf
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:472,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:475,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:477,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - con
    - err
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 478
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 478
    functionName: HandleOutboundConnectionClosed
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleOutboundConnectionClosed(WeaveConnection *con, WEAVE_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HandleOutboundConnectionClosed
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:482,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - con
    - err
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 484
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 484
    functionName: HandleInboundConnectionClosed
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp
    functionUses: 0
    functionsReached:
    - HandleOutboundConnectionClosed
    - WeaveConnection*::Close
    linkageType: ''
    returnType: void
    signature: HandleInboundConnectionClosed(WeaveConnection *con, WEAVE_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:176,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:179,1
    - Dst: ParseHostAndPort
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:198,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:198,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:200,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:205,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:208,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:225,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 230
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 230
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/mock-weave-bg.cpp
    functionUses: 0
    functionsReached:
    - ParseInt
    - strlen
    - free
    - PrintArgError
    - ParseHostAndPort
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:238,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:242,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 250
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 250
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/test-apps/mock-weave-bg.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseNodeId
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecodedIPPacket::PacketHeaderDecode
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:261,1
    - Dst: PacketBuffer::Start
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:261,1
    - Dst: PacketBuffer::DataLength
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:261,1
    - Dst: strncpy
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:263,1
    - Dst: strncpy
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:264,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:266,1
    - Dst: LogPacket
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:270,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - pkt
    - pktDir
    - tunnelType
    - toDrop
    argTypes:
    - PacketBuffer
    - TunnelPktDirection
    - TunnelType
    - bool
    constantsTouched: []
    func_position:
      end: 276
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 276
    functionName: TunneledPacketTransitHandler
    functionSourceFile: /src/openweave-core/src/test-apps/mock-weave-bg.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer::DataLength
    - DecodedIPPacket::PacketHeaderDecode
    - PacketBuffer::Start
    - strncpy
    - LogPacket
    - WeaveLogDetail
    - WEAVE_FAULT_INJECT
    linkageType: ''
    returnType: void
    signature: TunneledPacketTransitHandler(const PacketBuffer &pkt, TunnelPktDirection
      pktDir, TunnelType tunnelType, bool &toDrop)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitToolCommon
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:292,1
    - Dst: SetupFaultInjectionContext
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:294,1
    - Dst: UseStdoutLineBuffering
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:295,1
    - Dst: SetSignalHandler
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:296,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:300,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:301,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:306,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:307,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:310,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:311,1
    - Dst: ResolveWeaveNetworkOptions
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:312,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:314,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:320,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:321,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:325,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:326,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:331,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:332,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:336,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:338,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:340,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:342,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:343,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:344,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:345,1
    - Dst: nl::Weave::Stats::UpdateSnapshot
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:347,1
    - Dst: init
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:350,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:353,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:362,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:369,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:374,1
    - Dst: SetDestination
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:378,1
    - Dst: SetPrimaryTunnelInterface
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:384,1
    - Dst: SetBackupTunnelInterface
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:389,1
    - Dst: EnableBackupTunnel
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:394,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:409,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:410,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:418,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:423,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:426,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:427,1
    - Dst: ProcessStats
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:429,1
    - Dst: PrintFaultInjectionCounters
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:430,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:432,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:433,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/mock-weave-bg.cpp:434,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 82
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 438
      start: 281
    functionDepth: 4
    functionLinenumber: 281
    functionLinenumberEnd: 438
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/mock-weave-bg.cpp
    functionUses: 0
    functionsReached:
    - InitToolCommon
    - ShutdownSystemLayer
    - InitWeaveStack
    - StopServiceTunnel
    - printf
    - nl::Weave::Stats::UpdateSnapshot
    - strcpy
    - exit
    - ServiceNetwork
    - ParseArgsFromEnvVar
    - SetBackupTunnelInterface
    - ResolveWeaveNetworkOptions
    - StartServiceTunnel
    - EnableBackupTunnel
    - ShutdownWeaveStack
    - ParseArgs
    - InitNetwork
    - SetupFaultInjectionContext
    - PrintBriefUsage
    - Shutdown
    - PrintFaultInjectionCounters
    - SetSignalHandler
    - InitSystemLayer
    - UseStdoutLineBuffering
    - ProcessStats
    - ShutdownNetwork
    - SetPrimaryTunnelInterface
    - Init
    - init
    - SetDestination
    - FAIL_ERROR
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:50,1
    - Dst: Swap16
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:50,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:51,1
    - Dst: Swap32
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:51,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:52,1
    - Dst: Swap64
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: CheckSwap
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - Swap64
    - Swap32
    - Swap16
    linkageType: ''
    returnType: void
    signature: CheckSwap(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::BigEndian::HostSwap16
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:67,1
    - Dst: nl::Weave::Encoding::BigEndian::HostSwap32
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:68,1
    - Dst: nl::Weave::Encoding::BigEndian::HostSwap64
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:69,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:72,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:73,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:74,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:77,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:78,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 82
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 82
    functionName: CheckSwapBig
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - nl::Weave::Encoding::BigEndian::HostSwap32
    - nl::Weave::Encoding::BigEndian::HostSwap64
    - nl::Weave::Encoding::BigEndian::HostSwap16
    linkageType: ''
    returnType: void
    signature: CheckSwapBig(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::LittleEndian::HostSwap16
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:96,1
    - Dst: nl::Weave::Encoding::LittleEndian::HostSwap32
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:97,1
    - Dst: nl::Weave::Encoding::LittleEndian::HostSwap64
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:98,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:101,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:102,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:103,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:106,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:107,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 111
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 111
    functionName: CheckSwapLittle
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::HostSwap16
    - NL_TEST_ASSERT
    - nl::Weave::Encoding::LittleEndian::HostSwap64
    - nl::Weave::Encoding::LittleEndian::HostSwap32
    linkageType: ''
    returnType: void
    signature: CheckSwapLittle(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Get8
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:124,1
    - Dst: nl::Weave::Encoding::BigEndian::Get16
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:125,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:125,1
    - Dst: nl::Weave::Encoding::BigEndian::Get32
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:126,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:126,1
    - Dst: nl::Weave::Encoding::BigEndian::Get64
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:127,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:127,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:130,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:131,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:132,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:133,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:136,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:137,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:138,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:139,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 145
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 145
    functionName: CheckGetBig
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp
    functionUses: 0
    functionsReached:
    - Get8
    - nl::Weave::Encoding::BigEndian::Get32
    - nl::Weave::Encoding::BigEndian::Get64
    - NL_TEST_ASSERT
    - reinterpret_cast<const uint8_t *>
    - nl::Weave::Encoding::BigEndian::Get16
    linkageType: ''
    returnType: void
    signature: CheckGetBig(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Get8
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:158,1
    - Dst: nl::Weave::Encoding::LittleEndian::Get16
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:159,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:159,1
    - Dst: nl::Weave::Encoding::LittleEndian::Get32
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:160,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:160,1
    - Dst: nl::Weave::Encoding::LittleEndian::Get64
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:161,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:161,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:164,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:165,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:166,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:167,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:170,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:171,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:172,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:173,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 179
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 179
    functionName: CheckGetLittle
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp
    functionUses: 0
    functionsReached:
    - Get8
    - nl::Weave::Encoding::LittleEndian::Get16
    - NL_TEST_ASSERT
    - nl::Weave::Encoding::LittleEndian::Get32
    - nl::Weave::Encoding::LittleEndian::Get64
    - reinterpret_cast<const uint8_t *>
    linkageType: ''
    returnType: void
    signature: CheckGetLittle(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Put8
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:192,1
    - Dst: nl::Weave::Encoding::BigEndian::Put16
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:193,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:193,1
    - Dst: nl::Weave::Encoding::BigEndian::Put32
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:194,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:194,1
    - Dst: nl::Weave::Encoding::BigEndian::Put64
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:195,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:195,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:198,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:199,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:200,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:201,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:204,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:205,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:206,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:207,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 213
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 213
    functionName: CheckPutBig
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp
    functionUses: 0
    functionsReached:
    - Put8
    - nl::Weave::Encoding::BigEndian::Put32
    - reinterpret_cast<uint8_t *>
    - nl::Weave::Encoding::BigEndian::Put64
    - NL_TEST_ASSERT
    - nl::Weave::Encoding::BigEndian::Put16
    linkageType: ''
    returnType: void
    signature: CheckPutBig(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Put8
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:226,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put16
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:227,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:227,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put32
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:228,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:228,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put64
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:229,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:229,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:232,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:233,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:234,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:235,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:238,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:239,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:240,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:241,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 247
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 247
    functionName: CheckPutLittle
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp
    functionUses: 0
    functionsReached:
    - Put8
    - reinterpret_cast<uint8_t *>
    - NL_TEST_ASSERT
    - nl::Weave::Encoding::LittleEndian::Put32
    - nl::Weave::Encoding::LittleEndian::Put16
    - nl::Weave::Encoding::LittleEndian::Put64
    linkageType: ''
    returnType: void
    signature: CheckPutLittle(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Read8
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:264,1
    - Dst: nl::Weave::Encoding::BigEndian::Read16
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:265,1
    - Dst: nl::Weave::Encoding::BigEndian::Read32
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:266,1
    - Dst: nl::Weave::Encoding::BigEndian::Read64
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:267,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:269,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:270,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:270,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:271,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:271,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:272,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:272,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:275,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:276,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:277,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:278,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:281,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:282,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:283,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:284,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 290
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 290
    functionName: CheckReadBig
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint8_t *>
    - nl::Weave::Encoding::BigEndian::Read16
    - NL_TEST_ASSERT
    - nl::Weave::Encoding::BigEndian::Read32
    - nl::Weave::Encoding::BigEndian::Read64
    - Read8
    linkageType: ''
    returnType: void
    signature: CheckReadBig(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Read8
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:307,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:308,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:309,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read64
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:310,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:312,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:313,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:313,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:314,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:314,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:315,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:315,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:318,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:319,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:320,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:321,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:324,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:325,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:326,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:327,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 333
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 333
    functionName: CheckReadLittle
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint8_t *>
    - NL_TEST_ASSERT
    - nl::Weave::Encoding::LittleEndian::Read32
    - nl::Weave::Encoding::LittleEndian::Read64
    - nl::Weave::Encoding::LittleEndian::Read16
    - Read8
    linkageType: ''
    returnType: void
    signature: CheckReadLittle(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Read8
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:350,1
    - Dst: nl::Weave::Encoding::BigEndian::Read16
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:351,1
    - Dst: nl::Weave::Encoding::BigEndian::Read32
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:352,1
    - Dst: nl::Weave::Encoding::BigEndian::Read64
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:353,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:355,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:356,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:356,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:357,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:357,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:358,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:358,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:361,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:362,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:363,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:364,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:367,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:368,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:369,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:370,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 376
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 376
    functionName: CheckConstReadBig
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::BigEndian::Read16
    - NL_TEST_ASSERT
    - nl::Weave::Encoding::BigEndian::Read32
    - reinterpret_cast<const uint8_t *>
    - nl::Weave::Encoding::BigEndian::Read64
    - Read8
    linkageType: ''
    returnType: void
    signature: CheckConstReadBig(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Read8
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:393,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:394,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read32
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:395,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read64
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:396,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:398,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:399,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:399,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:400,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:400,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:401,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:401,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:404,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:405,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:406,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:407,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:410,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:411,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:412,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:413,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 419
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 419
    functionName: CheckConstReadLittle
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - nl::Weave::Encoding::LittleEndian::Read32
    - reinterpret_cast<const uint8_t *>
    - nl::Weave::Encoding::LittleEndian::Read64
    - nl::Weave::Encoding::LittleEndian::Read16
    - Read8
    linkageType: ''
    returnType: void
    signature: CheckConstReadLittle(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Write8
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:436,1
    - Dst: nl::Weave::Encoding::BigEndian::Write16
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:437,1
    - Dst: nl::Weave::Encoding::BigEndian::Write32
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:438,1
    - Dst: nl::Weave::Encoding::BigEndian::Write64
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:439,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:441,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:442,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:442,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:443,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:443,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:444,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:444,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:447,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:448,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:449,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:450,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:453,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:454,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:455,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:456,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 462
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 462
    functionName: CheckWriteBig
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint8_t *>
    - Write8
    - NL_TEST_ASSERT
    - nl::Weave::Encoding::BigEndian::Write32
    - nl::Weave::Encoding::BigEndian::Write64
    - nl::Weave::Encoding::BigEndian::Write16
    linkageType: ''
    returnType: void
    signature: CheckWriteBig(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Write8
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:479,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:480,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:481,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:482,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:484,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:485,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:485,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:486,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:486,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:487,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:487,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:490,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:491,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:492,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:493,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:496,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:497,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:498,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:499,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 505
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 505
    functionName: CheckWriteLittle
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Write64
    - reinterpret_cast<uint8_t *>
    - Write8
    - NL_TEST_ASSERT
    - nl::Weave::Encoding::LittleEndian::Write16
    - nl::Weave::Encoding::LittleEndian::Write32
    linkageType: ''
    returnType: void
    signature: CheckWriteLittle(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:531,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:533,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 536
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 536
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp
    functionUses: 0
    functionsReached:
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:240,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:243,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:244,1
    - Dst: MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:251,1
    - Dst: MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:252,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:264,1
    - Dst: SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:269,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - buf
    argTypes:
    - PacketBuffer**
    constantsTouched: []
    func_position:
      end: 271
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 271
    functionName: PrepareNewBuf
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - SetDataLength
    - Now
    - MaxDataLength
    - printf
    - memcpy
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: PrepareNewBuf(PacketBuffer **buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:277,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - transmitTime
    - retransTimeout
    argTypes:
    - uint64_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 279
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 279
    functionName: IsRetransOutsideWindow
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - Now
    linkageType: ''
    returnType: bool
    signature: IsRetransOutsideWindow(uint64_t transmitTime, uint32_t retransTimeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:287,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:291,1
    - Dst: SendEchoRequest
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:300,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:308,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:308,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:317,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:320,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:338,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 346
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 346
    functionName: TestWRMPPiggybackedAckReceipt
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - Now
    - ServiceNetwork
    - SendEchoRequest
    - printf
    - ErrorStr
    - PrepareNewBuf
    linkageType: ''
    returnType: testStatus_t
    signature: TestWRMPPiggybackedAckReceipt(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:355,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:359,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:368,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:371,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:371,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:382,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:385,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 410
      start: 350
    functionDepth: 4
    functionLinenumber: 350
    functionLinenumberEnd: 410
    functionName: TestWRMPTimeoutSolitaryAckReceipt
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - Now
    - ServiceNetwork
    - printf
    - ErrorStr
    - PrepareNewBuf
    - SendCustomMessage
    linkageType: ''
    returnType: testStatus_t
    signature: TestWRMPTimeoutSolitaryAckReceipt(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:423,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:427,1
    - Dst: ExchangeCtx::SetInitiator
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:434,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:435,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:438,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:438,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:450,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:453,1
    - Dst: ExchangeCtx::SetInitiator
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:473,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 475
      start: 417
    functionDepth: 4
    functionLinenumber: 417
    functionLinenumberEnd: 475
    functionName: TestWRMPTimeoutSolitaryAckReceiptNoInitiator
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - Now
    - ExchangeCtx::SetInitiator
    - ServiceNetwork
    - printf
    - ErrorStr
    - PrepareNewBuf
    - SendCustomMessage
    linkageType: ''
    returnType: testStatus_t
    signature: TestWRMPTimeoutSolitaryAckReceiptNoInitiator(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:485,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:489,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:498,1
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:501,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:502,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:505,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:505,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:512,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:512,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:521,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:524,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 548
      start: 480
    functionDepth: 4
    functionLinenumber: 480
    functionLinenumberEnd: 548
    functionName: TestWRMPFlushedSolitaryAckReceipt
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - Now
    - ServiceNetwork
    - printf
    - ErrorStr
    - PrepareNewBuf
    - SendCustomMessage
    linkageType: ''
    returnType: testStatus_t
    signature: TestWRMPFlushedSolitaryAckReceipt(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:556,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:560,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:571,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:575,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:575,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:587,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:590,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 615
      start: 552
    functionDepth: 4
    functionLinenumber: 552
    functionLinenumberEnd: 615
    functionName: TestWRMPRetransmitMessage
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - Now
    - ServiceNetwork
    - printf
    - ErrorStr
    - PrepareNewBuf
    - SendCustomMessage
    linkageType: ''
    returnType: testStatus_t
    signature: TestWRMPRetransmitMessage(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:629,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:640,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:642,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:646,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:646,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:659,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:662,1
    - Dst: IsRetransOutsideWindow
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:669,1
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:680,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:681,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:688,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:693,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:699,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:699,1
    - Dst: IsRetransOutsideWindow
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:707,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 725
      start: 620
    functionDepth: 4
    functionLinenumber: 620
    functionLinenumberEnd: 725
    functionName: TestWRMPTwoStageRetransmitTimeout
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - Now
    - PacketBuffer*::SetDataLength
    - ServiceNetwork
    - IsRetransOutsideWindow
    - printf
    - ErrorStr
    - PrepareNewBuf
    - SendCustomMessage
    linkageType: ''
    returnType: testStatus_t
    signature: TestWRMPTwoStageRetransmitTimeout(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:731,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:735,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:745,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:749,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:749,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:760,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:764,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 788
      start: 727
    functionDepth: 4
    functionLinenumber: 727
    functionLinenumberEnd: 788
    functionName: TestWRMPSendThrottleFlowMessage
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - Now
    - ServiceNetwork
    - printf
    - ErrorStr
    - PrepareNewBuf
    - SendCustomMessage
    linkageType: ''
    returnType: testStatus_t
    signature: TestWRMPSendThrottleFlowMessage(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:797,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:801,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:802,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:806,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:806,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:817,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 836
      start: 793
    functionDepth: 4
    functionLinenumber: 793
    functionLinenumberEnd: 836
    functionName: TestWRMPThrottleFlowBehavior
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - Now
    - ServiceNetwork
    - printf
    - ErrorStr
    - PrepareNewBuf
    - SendCustomMessage
    linkageType: ''
    returnType: testStatus_t
    signature: TestWRMPThrottleFlowBehavior(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:843,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:847,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:857,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:861,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:861,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:872,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:876,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 900
      start: 839
    functionDepth: 4
    functionLinenumber: 839
    functionLinenumberEnd: 900
    functionName: TestWRMPSendDelayedDeliveryMessage
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - Now
    - ServiceNetwork
    - printf
    - ErrorStr
    - PrepareNewBuf
    - SendCustomMessage
    linkageType: ''
    returnType: testStatus_t
    signature: TestWRMPSendDelayedDeliveryMessage(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:906,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:910,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:913,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:917,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:917,1
    - Dst: ExchangeCtx::SetDropAck
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:922,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:930,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:937,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:947,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 954
      start: 902
    functionDepth: 4
    functionLinenumber: 902
    functionLinenumberEnd: 954
    functionName: TestWRMPDelayedDeliveryBehavior
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - Now
    - ServiceNetwork
    - printf
    - ErrorStr
    - ExchangeCtx::SetDropAck
    - PrepareNewBuf
    - SendCustomMessage
    linkageType: ''
    returnType: testStatus_t
    signature: TestWRMPDelayedDeliveryBehavior(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:960,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:963,1
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:968,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:969,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:973,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:973,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:978,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:984,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:984,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 987
      start: 956
    functionDepth: 4
    functionLinenumber: 956
    functionLinenumberEnd: 987
    functionName: TestWRMPSendVer2AfterVer1
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - printf
    - PrepareNewBuf
    - ErrorStr
    - SendCustomMessage
    linkageType: ''
    returnType: testStatus_t
    signature: TestWRMPSendVer2AfterVer1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:998,1
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1001,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1004,1
    - Dst: sprintf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1005,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1006,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1007,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1017,1
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1022,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1023,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1024,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1025,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1031,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1031,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1037,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1037,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1047,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1051,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 989
    functionDepth: 4
    functionLinenumber: 989
    functionLinenumberEnd: 1076
    functionName: TestWRMPDuplicateMsgAcking
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - Now
    - PacketBuffer*::SetDataLength
    - PacketBuffer*::SetStart
    - ServiceNetwork
    - SendCustomMessage
    - memcpy
    - printf
    - ErrorStr
    - PacketBuffer*::Start
    - PrepareNewBuf
    - sprintf
    linkageType: ''
    returnType: testStatus_t
    signature: TestWRMPDuplicateMsgAcking(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1097,1
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1107,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1108,1
    - Dst: sprintf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1109,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1110,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1113,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1115,1
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1118,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1119,1
    - Dst: sprintf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1120,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1121,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1125,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1127,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1135,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1088
    functionDepth: 4
    functionLinenumber: 1088
    functionLinenumberEnd: 1152
    functionName: TestWRMPDuplicateMsgLostAck
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - Now
    - PacketBuffer*::SetDataLength
    - ServiceNetwork
    - SuccessOrFail
    - SendCustomMessage
    - PacketBuffer*::Start
    - PrepareNewBuf
    - sprintf
    linkageType: ''
    returnType: testStatus_t
    signature: TestWRMPDuplicateMsgLostAck(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1175,1
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1185,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1186,1
    - Dst: sprintf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1187,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1188,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1191,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1193,1
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1196,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1197,1
    - Dst: sprintf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1198,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1199,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1205,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1207,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1215,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1224,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1166
    functionDepth: 4
    functionLinenumber: 1166
    functionLinenumberEnd: 1230
    functionName: TestWRMPDuplicateMsgAckOnClosedExResponder
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - Now
    - PacketBuffer*::SetDataLength
    - ServiceNetwork
    - SuccessOrFail
    - SendCustomMessage
    - VerifyOrFail
    - PacketBuffer*::Start
    - PrepareNewBuf
    - sprintf
    linkageType: ''
    returnType: testStatus_t
    signature: TestWRMPDuplicateMsgAckOnClosedExResponder(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1253,1
    - Dst: ExchangeCtx::SetDropAck
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1263,1
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1266,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1267,1
    - Dst: sprintf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1268,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1269,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1272,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1274,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1282,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1286,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1294,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1244
    functionDepth: 4
    functionLinenumber: 1244
    functionLinenumberEnd: 1302
    functionName: TestWRMPDuplicateMsgAckOnClosedExInitiator
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - Now
    - PacketBuffer*::SetDataLength
    - ServiceNetwork
    - SuccessOrFail
    - SendCustomMessage
    - printf
    - PacketBuffer*::Start
    - ExchangeCtx::SetDropAck
    - PrepareNewBuf
    - sprintf
    linkageType: ''
    returnType: testStatus_t
    signature: TestWRMPDuplicateMsgAckOnClosedExInitiator(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1316,1
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1326,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1327,1
    - Dst: sprintf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1328,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1329,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1335,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1337,1
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1340,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1341,1
    - Dst: sprintf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1342,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1343,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1346,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1348,1
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1353,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1354,1
    - Dst: sprintf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1355,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1356,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1361,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1363,1
    - Dst: SendEchoRequest
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1368,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1369,1
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1374,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1375,1
    - Dst: sprintf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1376,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1377,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1380,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1381,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1404,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1408,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1410,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1305
    functionDepth: 4
    functionLinenumber: 1305
    functionLinenumberEnd: 1424
    functionName: TestWRMPDuplicateMsgDetection
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - Now
    - PacketBuffer*::SetDataLength
    - ServiceNetwork
    - SendEchoRequest
    - SuccessOrFail
    - SendCustomMessage
    - printf
    - PacketBuffer*::Start
    - PrepareNewBuf
    - sprintf
    linkageType: ''
    returnType: testStatus_t
    signature: TestWRMPDuplicateMsgDetection(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1462,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1463,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1466,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1467,1
    - Dst: ResolveWeaveNetworkOptions
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1468,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1470,1
    - Dst: GetEncKeyId
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1476,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1479,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1480,1
    - Dst: UseStdoutLineBuffering
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1484,1
    - Dst: SetSIGUSR1Handler
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1485,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1487,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1489,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1491,1
    - Dst: ParseDestAddress
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1500,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1502,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1505,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1505,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1506,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1516,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1519,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1519,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1520,1
    - Dst: PrintNodeConfig
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1530,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1535,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1537,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1539,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1545,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1546,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1550,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1552,1
    - Dst: mTest
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1556,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1557,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1562,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1572,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1576,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1577,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1578,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1579,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1580,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 78
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 1586
      start: 1453
    functionDepth: 1
    functionLinenumber: 1453
    functionLinenumberEnd: 1586
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - ShutdownSystemLayer
    - InitWeaveStack
    - printf
    - exit
    - ServiceNetwork
    - ParseArgsFromEnvVar
    - ParseDestAddress
    - PrintArgError
    - GetEncKeyId
    - ResolveWeaveNetworkOptions
    - ShutdownWeaveStack
    - ParseArgs
    - InitNetwork
    - PrintBriefUsage
    - Shutdown
    - ErrorStr
    - PrintNodeConfig
    - InitSystemLayer
    - UseStdoutLineBuffering
    - SetSIGUSR1Handler
    - ShutdownNetwork
    - Init
    - mTest
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1596,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1598,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1600,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1603,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1603,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - nodeId
    - nodeAddr
    - payload
    argTypes:
    - uint64_t
    - IPAddress
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1605
      start: 1589
    functionDepth: 1
    functionLinenumber: 1589
    functionLinenumberEnd: 1605
    functionName: HandleEchoRequestReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - printf
    - DumpMemory
    - IPAddress::ToString
    - PacketBuffer*::Start
    linkageType: ''
    returnType: void
    signature: "HandleEchoRequestReceived(uint64_t nodeId,\n                               IPAddress
      nodeAddr,\n                               PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1618,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1620,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1623,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1627,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1627,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - nodeId
    - nodeAddr
    - payload
    argTypes:
    - uint64_t
    - IPAddress
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1628
      start: 1607
    functionDepth: 1
    functionLinenumber: 1607
    functionLinenumberEnd: 1628
    functionName: HandleEchoResponseReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - printf
    - DumpMemory
    - IPAddress::ToString
    - PacketBuffer*::Start
    linkageType: ''
    returnType: void
    signature: "HandleEchoResponseReceived(uint64_t nodeId,\n                                IPAddress
      nodeAddr,\n                                PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1646,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1648,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1656,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1658,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1663,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1665,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1670,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1672,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1677,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1682
      start: 1630
    functionDepth: 0
    functionLinenumber: 1630
    functionLinenumberEnd: 1682
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseInt
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1690,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1696,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1708,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1710,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1719,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 1725
      start: 1684
    functionDepth: 0
    functionLinenumber: 1684
    functionLinenumberEnd: 1725
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseNodeId
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseHostPortAndInterface
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1735,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1735,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1738,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1739,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1742,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1744,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1745,1
    - Dst: InterfaceNameToId
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1750,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1753,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1754,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1727
    functionDepth: 2
    functionLinenumber: 1727
    functionLinenumberEnd: 1757
    functionName: ParseDestAddress
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 3
    functionsReached:
    - ParseHostPortAndInterface
    - exit
    - nl::Inet::IPAddress::FromString
    - InterfaceNameToId
    - strlen
    - printf
    linkageType: ''
    returnType: void
    signature: ParseDestAddress()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1760
    functionDepth: 0
    functionLinenumber: 1760
    functionLinenumberEnd: 1766
    functionName: WRMPTestClient::WRMPTestClient
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WRMPTestClient::WRMPTestClient()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1778,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - exchangeMgr
    - nodeId
    - nodeAddr
    - port
    - sendIntfId
    argTypes:
    - WeaveExchangeManager*
    - uint64_t
    - IPAddress
    - uint16_t
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 1790
      start: 1768
    functionDepth: 0
    functionLinenumber: 1768
    functionLinenumberEnd: 1790
    functionName: WRMPTestClient::Init
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - NewContext
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WRMPTestClient::Init(WeaveExchangeManager *exchangeMgr, uint64_t nodeId,
      IPAddress nodeAddr, uint16_t port, InterfaceId sendIntfId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 1798
      start: 1792
    functionDepth: 0
    functionLinenumber: 1792
    functionLinenumberEnd: 1798
    functionName: ThrottleTimeout
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: ThrottleTimeout(System::Layer* aSystemLayer, void* aAppState, System::Error
      aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1804,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1800
    functionDepth: 0
    functionLinenumber: 1800
    functionLinenumberEnd: 1812
    functionName: WRMPTestClient::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - Close
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WRMPTestClient::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SendMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1824,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - payload
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1832
      start: 1814
    functionDepth: 0
    functionLinenumber: 1814
    functionLinenumberEnd: 1832
    functionName: WRMPTestClient::SendEchoRequest
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - Close
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WRMPTestClient::SendEchoRequest(PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SendMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1844,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - payload
    - sendFlags
    argTypes:
    - PacketBuffer*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1852
      start: 1834
    functionDepth: 0
    functionLinenumber: 1834
    functionLinenumberEnd: 1852
    functionName: WRMPTestClient::SendEchoRequest
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - Close
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WRMPTestClient::SendEchoRequest(PacketBuffer *payload, uint16_t sendFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1870,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - ec
    - ProfileId
    - msgType
    - sendFlags
    - payload
    - lAppContext
    argTypes:
    - ExchangeContext*
    - uint32_t
    - uint8_t
    - uint16_t
    - PacketBuffer*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 1871
      start: 1854
    functionDepth: 0
    functionLinenumber: 1854
    functionLinenumberEnd: 1871
    functionName: SendCustomMessage
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 15
    functionsReached:
    - ExchangeContext*::SendMessage
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SendCustomMessage(ExchangeContext *ec, uint32_t ProfileId, uint8_t
      msgType, uint16_t sendFlags, PacketBuffer *payload, uint32_t *lAppContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WRMPTestClient*::OnEchoResponseReceived
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1886,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1891,1
    - Dst: ExchangeContext*::WRMPSendThrottleFlow
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1894,1
    - Dst: MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1896,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1903,1
    - Dst: ExchangeContext*::SetDropAck
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1906,1
    - Dst: ExchangeContext*::WRMPSendDelayedDelivery
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1910,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1914,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1923,1
    - Dst: ExchangeContext*::SetDropAck
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1924,1
    - Dst: ExchangeContext*::Release
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1925,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1931,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1937,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1938
      start: 1873
    functionDepth: 2
    functionLinenumber: 1873
    functionLinenumberEnd: 1938
    functionName: WRMPTestClient::HandleResponse
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - Now
    - MessageLayer::SystemLayer::StartTimer
    - nl::Weave::System::PacketBuffer::Free
    - ExchangeContext*::SetDropAck
    - ExchangeContext*::WRMPSendDelayedDelivery
    - printf
    - WRMPTestClient*::OnEchoResponseReceived
    - ExchangeContext*::Release
    - ExchangeContext*::WRMPSendThrottleFlow
    linkageType: ''
    returnType: void
    signature: WRMPTestClient::HandleResponse(ExchangeContext *ec, const IPPacketInfo
      *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType,
      PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1941
    functionDepth: 0
    functionLinenumber: 1941
    functionLinenumberEnd: 1946
    functionName: WRMPTestServer::WRMPTestServer
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WRMPTestServer::WRMPTestServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1959,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1961,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1963,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1965,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1967,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1969,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1971,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1973,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1975,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1977,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1979,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 1983
      start: 1948
    functionDepth: 0
    functionLinenumber: 1948
    functionLinenumberEnd: 1983
    functionName: WRMPTestServer::Init
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - RegisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WRMPTestServer::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:1989,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1985
    functionDepth: 0
    functionLinenumber: 1985
    functionLinenumberEnd: 1996
    functionName: WRMPTestServer::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - UnregisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WRMPTestServer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2007,1
    - Dst: PrepareNewBuf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2012,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2013,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2027,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2029,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - MaxCount
    - ec
    argTypes:
    - int
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 2034
      start: 1998
    functionDepth: 4
    functionLinenumber: 1998
    functionLinenumberEnd: 2034
    functionName: WRMPTestServer::GeneratePeriodicMessage
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - ServiceNetwork
    - printf
    - PrepareNewBuf
    - SendCustomMessage
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WRMPTestServer::GeneratePeriodicMessage(int MaxCount, ExchangeContext
      *ec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WRMPTestServer*::OnEchoRequestReceived
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2056,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2059,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2063,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2064,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2071,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2076,1
    - Dst: ExchangeContext*::WRMPSendThrottleFlow
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2077,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2083,1
    - Dst: ExchangeContext*::WRMPSendDelayedDelivery
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2085,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2090,1
    - Dst: WRMPTestServer*::GeneratePeriodicMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2091,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2095,1
    - Dst: SendCustomMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2096,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2097,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2101,1
    - Dst: ExchangeContext*::SetDropAck
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2102,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2103,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2107,1
    - Dst: ExchangeContext*::SetDropAck
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2108,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2109,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2115,1
    - Dst: ExchangeContext*::SetDropAck
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2116,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2120,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2122,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2128,1
    - Dst: ExchangeContext*::SetDropAck
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2129,1
    - Dst: ExchangeContext*::Release
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2130,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2134,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2136,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2140,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2144,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2147,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2149,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2153,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2155,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2159,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2161,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2168,1
    - Dst: HandleEchoRequestReceived
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2169,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2172,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2176,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2177,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 87
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 2180
      start: 2036
    functionDepth: 2
    functionLinenumber: 2036
    functionLinenumberEnd: 2180
    functionName: WRMPTestServer::HandleRcvdMessage
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - WRMPTestServer*::GeneratePeriodicMessage
    - WRMPTestServer*::OnEchoRequestReceived
    - nl::Weave::System::PacketBuffer::Free
    - SuccessOrFail
    - ExchangeContext*::SendMessage
    - ExchangeContext*::WRMPSendDelayedDelivery
    - ExchangeContext*::SetDropAck
    - printf
    - ExchangeContext*::Release
    - ExchangeContext*::WRMPSendThrottleFlow
    - HandleEchoRequestReceived
    - SendCustomMessage
    linkageType: ''
    returnType: void
    signature: "WRMPTestServer::HandleRcvdMessage(ExchangeContext *ec, const IPPacketInfo
      *pktInfo,\n        const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t
      msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2190,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ec
    - msgCtxt
    argTypes:
    - ExchangeContext*
    - void*
    constantsTouched: []
    func_position:
      end: 2199
      start: 2182
    functionDepth: 0
    functionLinenumber: 2182
    functionLinenumberEnd: 2199
    functionName: HandleAckRcvd
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: HandleAckRcvd(ExchangeContext *ec, void *msgCtxt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ec
    - pauseTime
    argTypes:
    - ExchangeContext*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2205
      start: 2201
    functionDepth: 0
    functionLinenumber: 2201
    functionLinenumberEnd: 2205
    functionName: HandleDDRcvd
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: HandleDDRcvd(ExchangeContext *ec, uint32_t pauseTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWRMP.cpp:2209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ec
    - pauseTime
    argTypes:
    - ExchangeContext*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2211
      start: 2207
    functionDepth: 0
    functionLinenumber: 2207
    functionLinenumberEnd: 2211
    functionName: HandleThrottleRcvd
    functionSourceFile: /src/openweave-core/src/test-apps/TestWRMP.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: HandleThrottleRcvd(ExchangeContext *ec, uint32_t pauseTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: MockTokenPairingServer::MockTokenPairingServer
    functionSourceFile: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MockTokenPairingServer::MockTokenPairingServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockTokenPairingServer::TokenPairingServer::Init
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:55,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:56,1
    - Dst: SetDelegate
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 64
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 64
    functionName: MockTokenPairingServer::Init
    functionSourceFile: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp
    functionUses: 0
    functionsReached:
    - SetDelegate
    - MockTokenPairingServer::TokenPairingServer::Init
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockTokenPairingServer::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockTokenPairingServer::TokenPairingServer::Shutdown
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: MockTokenPairingServer::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp
    functionUses: 0
    functionsReached:
    - MockTokenPairingServer::TokenPairingServer::Shutdown
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockTokenPairingServer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:78,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:81,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:83,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:85,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:88,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:89,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:91,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:96,1
    - Dst: TokenPairingServer*::SendTokenCertificateResponse
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:98,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:99,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:103,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:104,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:106,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:111,1
    - Dst: TokenPairingServer*::SendTokenPairedResponse
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:113,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:114,1
    - Dst: TokenPairingServer*::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:121,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:125,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 3
    argNames:
    - server
    - pairingToken
    - pairingTokenLength
    argTypes:
    - TokenPairingServer*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 132
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 132
    functionName: MockTokenPairingServer::OnPairTokenRequest
    functionSourceFile: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::Free
    - TokenPairingServer*::SendStatusReport
    - VerifyOrExit
    - TokenPairingServer*::SendTokenCertificateResponse
    - printf
    - SuccessOrExit
    - TokenPairingServer*::SendTokenPairedResponse
    - PacketBuffer*::Start
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockTokenPairingServer::OnPairTokenRequest(TokenPairingServer *server,
      uint8_t *pairingToken, uint32_t pairingTokenLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:138,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:142,1
    - Dst: TokenPairingServer*::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:144,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:145,1
    - Dst: TokenPairingServer*::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - server
    argTypes:
    - TokenPairingServer*
    constantsTouched: []
    func_position:
      end: 152
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 152
    functionName: MockTokenPairingServer::OnUnpairTokenRequest
    functionSourceFile: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp
    functionUses: 0
    functionsReached:
    - TokenPairingServer*::SendStatusReport
    - printf
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockTokenPairingServer::OnUnpairTokenRequest(TokenPairingServer *server)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TokenPairing::TokenPairingDelegate::EnforceAccessControl
      Src: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ec
    - msgProfileId
    - msgType
    - msgInfo
    - ' result'
    argTypes:
    - nl::Weave::ExchangeContext*
    - uint32_t
    - uint8_t
    - nl::Weave::WeaveMessageInfo*
    - AccessControlResult
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 163
    functionName: MockTokenPairingServer::EnforceAccessControl
    functionSourceFile: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::TokenPairing::TokenPairingDelegate::EnforceAccessControl
    linkageType: ''
    returnType: void
    signature: "MockTokenPairingServer::EnforceAccessControl(nl::Weave::ExchangeContext
      *ec, uint32_t msgProfileId, uint8_t msgType,\n            const nl::Weave::WeaveMessageInfo
      *msgInfo, AccessControlResult& result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 243
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 243
    functionName: MockWdmNodeOptions::MockWdmNodeOptions
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MockWdmNodeOptions::MockWdmNodeOptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 264
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 264
    functionName: MockWdmNodeOptions::GetMutationStrings
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '**MockWdmNodeOptions::GetMutationStrings(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 278
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 278
    functionName: MockWdmNodeOptions::GetGeneratorStrings
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '**MockWdmNodeOptions::GetGeneratorStrings(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 290
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 290
    functionName: MockWdmNodeOptions::GetConditionalityStrings
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '**MockWdmNodeOptions::GetConditionalityStrings(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 302
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 302
    functionName: MockWdmNodeOptions::GetUpdateTimingStrings
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '**MockWdmNodeOptions::GetUpdateTimingStrings(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:306,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - aTarget
    - aArray
    - aArrayLength
    - aIndex
    argTypes:
    - char*
    - char**
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 317
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 317
    functionName: FindStringInArray
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: FindStringInArray(const char *aTarget, const char **aArray, size_t
      aArrayLength, size_t &aIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:324,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:326,1
    - Dst: ParseSubnetId
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:331,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:333,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:343,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:351,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:363,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:371,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:377,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:379,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:388,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:396,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:404,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:413,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:427,1
    - Dst: const_cast<char *>
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:427,1
    - Dst: strdup
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:429,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:440,1
    - Dst: const_cast<char *>
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:440,1
    - Dst: strdup
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:442,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:447,1
    - Dst: const_cast<char *>
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:447,1
    - Dst: strdup
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:449,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:454,1
    - Dst: const_cast<char *>
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:454,1
    - Dst: strdup
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:456,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:461,1
    - Dst: const_cast<char *>
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:461,1
    - Dst: strdup
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:463,1
    - Dst: ParseBoolean
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:466,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:468,1
    - Dst: FindStringInArray
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:480,1
    - Dst: MockWdmNodeOptions::GetGeneratorStrings
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:480,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:482,1
    - Dst: static_cast<EventGeneratorType>
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:485,1
    - Dst: strtoul
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:491,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:494,1
    - Dst: strtoul
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:502,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:505,1
    - Dst: FindStringInArray
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:514,1
    - Dst: MockWdmNodeOptions::GetMutationStrings
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:514,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:516,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:517,1
    - Dst: static_cast<WdmUpdateMutation>
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:520,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:527,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:529,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:532,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:539,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:541,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:544,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:551,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:553,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:556,1
    - Dst: FindStringInArray
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:563,1
    - Dst: MockWdmNodeOptions::GetConditionalityStrings
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:563,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:565,1
    - Dst: static_cast<WdmUpdateConditionality>
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:568,1
    - Dst: FindStringInArray
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:575,1
    - Dst: MockWdmNodeOptions::GetUpdateTimingStrings
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:575,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:577,1
    - Dst: static_cast<WdmUpdateTiming>
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:580,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:589,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 208
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 594
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 594
    functionName: MockWdmNodeOptions::HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp
    functionUses: 0
    functionsReached:
    - ParseNodeId
    - FindStringInArray
    - static_cast<uint32_t>
    - printf
    - static_cast<EventGeneratorType>
    - strtoul
    - ParseInt
    - PrintArgError
    - static_cast<WdmUpdateMutation>
    - ParseSubnetId
    - MockWdmNodeOptions::GetMutationStrings
    - ParseBoolean
    - MockWdmNodeOptions::GetUpdateTimingStrings
    - static_cast<WdmUpdateTiming>
    - const_cast<char *>
    - strdup
    - static_cast<WdmUpdateConditionality>
    - free
    - MockWdmNodeOptions::GetGeneratorStrings
    - MockWdmNodeOptions::GetConditionalityStrings
    linkageType: ''
    returnType: bool
    signature: MockWdmNodeOptions::HandleOption(const char *progName, OptionSet *optSet,
      int id, const char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 636
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 636
    functionName: TestWdmNextOptions::TestWdmNextOptions
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestWdmNextOptions::TestWdmNextOptions(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:646,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:648,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:653,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:655,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp:666,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 671
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 671
    functionName: TestWdmNextOptions::HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseInt
    linkageType: ''
    returnType: bool
    signature: TestWdmNextOptions::HandleOption(const char *progName, OptionSet *optSet,
      int id, const char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: nl::Weave::Profiles::SubscriptionEngine::GetInstance
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: SubscriptionEngine
    signature: '* SubscriptionEngine::GetInstance()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: nl::Weave::Profiles::Platform::CriticalSectionEnter
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionEnter()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: nl::Weave::Profiles::Platform::CriticalSectionExit
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionExit()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: nl::Weave::Profiles::WdmUpdateResponseTest::WdmUpdateResponseTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WdmUpdateResponseTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: ~WdmUpdateResponseTest()
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~WdmUpdateResponseTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: nl::Weave::Profiles::WdmUpdateResponseTest::SetupTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: WdmUpdateResponseTest::SetupTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: nl::Weave::Profiles::WdmUpdateResponseTest::TearDownTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WdmUpdateResponseTest::TearDownTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VersionList::Builder::AddVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:153,1
    - Dst: VersionList::Builder::AddVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:155,1
    - Dst: VersionList::Builder::EndOfVersionList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:157,1
    - Dst: VersionList::Builder::GetError
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - aBuilder
    argTypes:
    - VersionList::Builder
    constantsTouched: []
    func_position:
      end: 160
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 160
    functionName: nl::Weave::Profiles::WdmUpdateResponseTest::WriteVersionList
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached:
    - VersionList::Builder::EndOfVersionList
    - VersionList::Builder::GetError
    - VersionList::Builder::AddVersion
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WdmUpdateResponseTest::WriteVersionList(VersionList::Builder &aBuilder)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StatusList::Builder::AddStatus
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:164,1
    - Dst: StatusList::Builder::AddStatus
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:166,1
    - Dst: StatusList::Builder::EndOfStatusList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:168,1
    - Dst: StatusList::Builder::GetError
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - aBuilder
    argTypes:
    - StatusList::Builder
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: nl::Weave::Profiles::WdmUpdateResponseTest::WriteStatusList
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached:
    - StatusList::Builder::GetError
    - StatusList::Builder::AddStatus
    - StatusList::Builder::EndOfStatusList
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WdmUpdateResponseTest::WriteStatusList(StatusList::Builder &aBuilder)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VersionList::Parser::Next
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:178,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:179,1
    - Dst: VersionList::Parser::GetVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:181,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:182,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:183,1
    - Dst: VersionList::Parser::Next
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:185,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:186,1
    - Dst: VersionList::Parser::GetVersion
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:187,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:188,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:189,1
    - Dst: VersionList::Parser::Next
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:191,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - inSuite
    - aParser
    argTypes:
    - nlTestSuite*
    - VersionList::Parser
    constantsTouched: []
    func_position:
      end: 193
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 193
    functionName: nl::Weave::Profiles::WdmUpdateResponseTest::VerifyVersionList
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached:
    - VersionList::Parser::Next
    - NL_TEST_ASSERT
    - VersionList::Parser::GetVersion
    linkageType: ''
    returnType: void
    signature: WdmUpdateResponseTest::VerifyVersionList(nlTestSuite *inSuite, VersionList::Parser
      &aParser)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StatusList::Parser::Next
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:201,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:202,1
    - Dst: StatusList::Parser::GetProfileIDAndStatusCode
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:204,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:205,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:206,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:207,1
    - Dst: StatusList::Parser::Next
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:209,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:210,1
    - Dst: StatusList::Parser::GetProfileIDAndStatusCode
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:212,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:213,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:214,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:215,1
    - Dst: StatusList::Parser::Next
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:217,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - inSuite
    - aParser
    argTypes:
    - nlTestSuite*
    - StatusList::Parser
    constantsTouched: []
    func_position:
      end: 219
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 219
    functionName: nl::Weave::Profiles::WdmUpdateResponseTest::VerifyStatusList
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached:
    - StatusList::Parser::GetProfileIDAndStatusCode
    - NL_TEST_ASSERT
    - StatusList::Parser::Next
    linkageType: ''
    returnType: void
    signature: WdmUpdateResponseTest::VerifyStatusList(nlTestSuite *inSuite, StatusList::Parser
      &aParser)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:225,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:227,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:229,1
    - Dst: nl::Weave::Profiles::WdmUpdateResponseTest::WriteVersionList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:231,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:233,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:236,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:238,1
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:239,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:240,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:242,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:243,1
    - Dst: CheckSchemaValidity
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:245,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:246,1
    - Dst: nl::Weave::Profiles::WdmUpdateResponseTest::VerifyVersionList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:248,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:254,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:256,1
    - Dst: nl::Weave::Profiles::WdmUpdateResponseTest::WriteVersionList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:259,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:261,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:263,1
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:264,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:267,1
    - Dst: CheckSchemaValidity
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:270,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:274,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 276
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 276
    functionName: nl::Weave::Profiles::WdmUpdateResponseTest::TestVersionList
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::WdmUpdateResponseTest::WriteVersionList
    - CheckSchemaValidity
    - printf
    - Init
    - nl::Weave::Profiles::WdmUpdateResponseTest::VerifyVersionList
    - PRINT_TEST_NAME
    - Next
    linkageType: ''
    returnType: void
    signature: WdmUpdateResponseTest::TestVersionList(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:282,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:284,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:286,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:287,1
    - Dst: UseDeprecatedFormat
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:291,1
    - Dst: nl::Weave::Profiles::WdmUpdateResponseTest::WriteStatusList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:294,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:296,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:299,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:301,1
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:302,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:303,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:305,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:306,1
    - Dst: CheckSchemaValidity
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:308,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:309,1
    - Dst: nl::Weave::Profiles::WdmUpdateResponseTest::VerifyStatusList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:311,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:317,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:319,1
    - Dst: UseDeprecatedFormat
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:323,1
    - Dst: nl::Weave::Profiles::WdmUpdateResponseTest::WriteStatusList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:327,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:329,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:330,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:332,1
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:333,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:336,1
    - Dst: CheckSchemaValidity
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:339,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:343,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - inSuite
    - inContext
    - aUseDeprecatedFormat
    argTypes:
    - nlTestSuite*
    - void*
    - bool
    constantsTouched: []
    func_position:
      end: 345
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 345
    functionName: nl::Weave::Profiles::WdmUpdateResponseTest::TestStatusList
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - UseDeprecatedFormat
    - nl::Weave::Profiles::WdmUpdateResponseTest::WriteStatusList
    - nl::Weave::Profiles::WdmUpdateResponseTest::VerifyStatusList
    - CheckSchemaValidity
    - printf
    - Init
    - PRINT_TEST_NAME
    - Next
    linkageType: ''
    returnType: void
    signature: WdmUpdateResponseTest::TestStatusList(nlTestSuite *inSuite, void *inContext,
      bool aUseDeprecatedFormat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::WdmUpdateResponseTest::TestStatusList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 350
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 350
    functionName: nl::Weave::Profiles::WdmUpdateResponseTest::TestStatusList
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::WdmUpdateResponseTest::TestStatusList
    linkageType: ''
    returnType: void
    signature: WdmUpdateResponseTest::TestStatusList(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::WdmUpdateResponseTest::TestStatusList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 355
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 355
    functionName: nl::Weave::Profiles::WdmUpdateResponseTest::TestDeprecatedStatusList
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::WdmUpdateResponseTest::TestStatusList
    linkageType: ''
    returnType: void
    signature: WdmUpdateResponseTest::TestDeprecatedStatusList(nlTestSuite *inSuite,
      void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:361,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:363,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:365,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:366,1
    - Dst: CreateVersionListBuilder
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:368,1
    - Dst: nl::Weave::Profiles::WdmUpdateResponseTest::WriteVersionList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:370,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:371,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:374,1
    - Dst: CreateStatusListBuilder
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:376,1
    - Dst: nl::Weave::Profiles::WdmUpdateResponseTest::WriteStatusList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:378,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:379,1
    - Dst: GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:381,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:382,1
    - Dst: EndOfResponse
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:384,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:385,1
    - Dst: GetError
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:385,1
    - Dst: GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:387,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:388,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:390,1
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:391,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:392,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:394,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:395,1
    - Dst: CheckSchemaValidity
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:397,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:398,1
    - Dst: GetStatusList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:400,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:401,1
    - Dst: GetVersionList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:403,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:404,1
    - Dst: nl::Weave::Profiles::WdmUpdateResponseTest::VerifyStatusList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:406,1
    - Dst: nl::Weave::Profiles::WdmUpdateResponseTest::VerifyVersionList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:407,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:413,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:416,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:418,1
    - Dst: CreateVersionListBuilder
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:420,1
    - Dst: nl::Weave::Profiles::WdmUpdateResponseTest::WriteVersionList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:422,1
    - Dst: CreateStatusListBuilder
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:424,1
    - Dst: nl::Weave::Profiles::WdmUpdateResponseTest::WriteStatusList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:426,1
    - Dst: EndOfResponse
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:428,1
    - Dst: GetError
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:430,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:432,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:433,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:436,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:438,1
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:439,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:442,1
    - Dst: CheckSchemaValidity
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:445,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:449,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 48
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 451
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 451
    functionName: nl::Weave::Profiles::WdmUpdateResponseTest::TestUpdateResponse
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached:
    - CreateStatusListBuilder
    - GetLengthWritten
    - GetError
    - NL_TEST_ASSERT
    - CreateVersionListBuilder
    - nl::Weave::Profiles::WdmUpdateResponseTest::WriteStatusList
    - EndOfResponse
    - GetVersionList
    - nl::Weave::Profiles::WdmUpdateResponseTest::WriteVersionList
    - nl::Weave::Profiles::WdmUpdateResponseTest::VerifyStatusList
    - memset
    - CheckSchemaValidity
    - printf
    - Init
    - nl::Weave::Profiles::WdmUpdateResponseTest::VerifyVersionList
    - PRINT_TEST_NAME
    - Next
    - GetStatusList
    linkageType: ''
    returnType: void
    signature: WdmUpdateResponseTest::TestUpdateResponse(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_TEST_NAME
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:460,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:462,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:464,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:465,1
    - Dst: CreateVersionListBuilder
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:467,1
    - Dst: nl::Weave::Profiles::WdmUpdateResponseTest::WriteVersionList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:469,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:470,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:473,1
    - Dst: CreateStatusListBuilder
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:475,1
    - Dst: StatusList::Builder::EndOfStatusList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:477,1
    - Dst: StatusList::Builder::GetError
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:479,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:480,1
    - Dst: GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:482,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:483,1
    - Dst: EndOfResponse
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:485,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:486,1
    - Dst: GetError
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:486,1
    - Dst: GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:488,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:489,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:491,1
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:492,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:493,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:495,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:496,1
    - Dst: CheckSchemaValidity
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:498,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:499,1
    - Dst: GetStatusList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:501,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:502,1
    - Dst: GetVersionList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:504,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:505,1
    - Dst: nl::Weave::Profiles::WdmUpdateResponseTest::VerifyVersionList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:507,1
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:511,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:512,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:513,1
    - Dst: GetProfileIDAndStatusCode
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:515,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:516,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 518
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 518
    functionName: nl::Weave::Profiles::WdmUpdateResponseTest::TestCompactResponse
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached:
    - CreateStatusListBuilder
    - GetLengthWritten
    - GetError
    - NL_TEST_ASSERT
    - CreateVersionListBuilder
    - EndOfResponse
    - GetVersionList
    - nl::Weave::Profiles::WdmUpdateResponseTest::WriteVersionList
    - StatusList::Builder::GetError
    - StatusList::Builder::EndOfStatusList
    - printf
    - Init
    - CheckSchemaValidity
    - nl::Weave::Profiles::WdmUpdateResponseTest::VerifyVersionList
    - PRINT_TEST_NAME
    - GetProfileIDAndStatusCode
    - Next
    - GetStatusList
    linkageType: ''
    returnType: void
    signature: WdmUpdateResponseTest::TestCompactResponse(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestVersionList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 533
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 533
    functionName: WdmUpdateResponseTest_VersionList
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached:
    - TestVersionList
    linkageType: ''
    returnType: void
    signature: WdmUpdateResponseTest_VersionList(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestStatusList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 538
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 538
    functionName: WdmUpdateResponseTest_StatusList
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached:
    - TestStatusList
    linkageType: ''
    returnType: void
    signature: WdmUpdateResponseTest_StatusList(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestDeprecatedStatusList
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 543
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 543
    functionName: WdmUpdateResponseTest_DeprecatedStatusList
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached:
    - TestDeprecatedStatusList
    linkageType: ''
    returnType: void
    signature: WdmUpdateResponseTest_DeprecatedStatusList(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestUpdateResponse
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 548
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 548
    functionName: WdmUpdateResponseTest_UpdateResponse
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached:
    - TestUpdateResponse
    linkageType: ''
    returnType: void
    signature: WdmUpdateResponseTest_UpdateResponse(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestCompactResponse
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 553
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 553
    functionName: WdmUpdateResponseTest_CompactResponse
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached:
    - TestCompactResponse
    linkageType: ''
    returnType: void
    signature: WdmUpdateResponseTest_CompactResponse(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 575
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 575
    functionName: SuiteSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SuiteSetup(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 583
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 583
    functionName: SuiteTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SuiteTeardown(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetupTest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 593
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 593
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached:
    - SetupTest
    linkageType: ''
    returnType: int
    signature: TestSetup(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TearDownTest
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 603
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 603
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached:
    - TearDownTest
    linkageType: ''
    returnType: int
    signature: TestTeardown(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_init
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:612,1
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:625,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:628,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 631
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 631
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached:
    - tcpip_init
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 638
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 638
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: MockServiceDirServer::MockServiceDirServer
    functionSourceFile: /src/openweave-core/src/test-apps/MockSDServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MockServiceDirServer::MockServiceDirServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: MockServiceDirServer::Init
    functionSourceFile: /src/openweave-core/src/test-apps/MockSDServer.cpp
    functionUses: 0
    functionsReached:
    - RegisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockServiceDirServer::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: MockServiceDirServer::TearDown
    functionSourceFile: /src/openweave-core/src/test-apps/MockSDServer.cpp
    functionUses: 0
    functionsReached:
    - UnregisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockServiceDirServer::TearDown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:74,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:75,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:76,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:78,1
    - Dst: ParseHostAndPort
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:81,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:81,1
    - Dst: Write8
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:85,1
    - Dst: Write8
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:87,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:88,1
    - Dst: Write8
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:89,1
    - Dst: Write8
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:90,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:91,1
    - Dst: Write8
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:92,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:93,1
    - Dst: Write8
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:95,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:96,1
    - Dst: Write8
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:97,1
    - Dst: Write8
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:98,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:99,1
    - Dst: Write8
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:100,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:101,1
    - Dst: Write8
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:103,1
    - Dst: Write8
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:104,1
    - Dst: Write8
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:105,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:106,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:107,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:109,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:110,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:112,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:117,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:118,1
    - Dst: ExchangeContext*::HasPeerRequestedAck
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:122,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:126,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:131,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/MockSDServer.cpp:134,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 6
    argNames:
    - ec
    - packetInfo
    - msgInfo
    - profileId
    - msgType
    - payloadReceiveInit
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 136
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 136
    functionName: MockServiceDirServer::HandleServiceDirRequest
    functionSourceFile: /src/openweave-core/src/test-apps/MockSDServer.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Encoding::LittleEndian::Write64
    - nl::Weave::Encoding::LittleEndian::Write16
    - nl::Weave::System::PacketBuffer::Free
    - Write8
    - ExchangeContext*::Close
    - ExchangeContext*::HasPeerRequestedAck
    - VerifyOrExit
    - ExchangeContext*::SendMessage
    - strlen
    - memcpy
    - SuccessOrExit
    - printf
    - PacketBuffer*::Start
    - nl::Weave::Encoding::LittleEndian::Write32
    - ParseHostAndPort
    - nl::Weave::WeaveServerBase::SendStatusReport
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: "MockServiceDirServer::HandleServiceDirRequest(ExchangeContext *ec,
      const IPPacketInfo *packetInfo,\n        const WeaveMessageInfo *msgInfo, uint32_t
      profileId, uint8_t msgType, PacketBuffer *payloadReceiveInit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WdmNextPerfUtility::WdmNextPerfUtility
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: WdmNextPerfUtility::Instance
    functionSourceFile: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp
    functionUses: 0
    functionsReached:
    - WdmNextPerfUtility::WdmNextPerfUtility
    linkageType: ''
    returnType: WdmNextPerfUtility
    signature: '*WdmNextPerfUtility::Instance()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: WdmNextPerfUtility::Remove
    functionSourceFile: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WdmNextPerfUtility::Remove()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:53,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: WdmNextPerfUtility::WdmNextPerfUtility
    functionSourceFile: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp
    functionUses: 1
    functionsReached:
    - gettimeofday
    - printf
    linkageType: ''
    returnType: void
    signature: WdmNextPerfUtility::WdmNextPerfUtility()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: WdmNextPerfUtility::~WdmNextPerfUtility()
    functionSourceFile: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WdmNextPerfUtility::~WdmNextPerfUtility()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 78
    functionName: WdmNextPerfUtility::operator()()
    functionSourceFile: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: WdmNextPerfUtility::operator()()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: task_info
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:93,1
    - Dst: mach_task_self
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:93,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:95,1
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:105,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:107,1
    - Dst: fgets
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:110,1
    - Dst: strncmp
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:113,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:121,1
    - Dst: atoi
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:122,1
    - Dst: strncmp
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:125,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:133,1
    - Dst: atoi
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:134,1
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:138,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:142,1
    - Dst: size
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:146,1
    - Dst: push_back
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:148,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 149
    functionName: WdmNextPerfUtility::SetPerf
    functionSourceFile: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp
    functionUses: 0
    functionsReached:
    - size
    - atoi
    - strncmp
    - fgets
    - fclose
    - strlen
    - push_back
    - printf
    - mach_task_self
    - fopen
    - task_info
    linkageType: ''
    returnType: void
    signature: WdmNextPerfUtility::SetPerf()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: WdmNextPerfUtility::GetPerf
    functionSourceFile: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: perfData
    signature: WdmNextPerfUtility::GetPerf()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:167,1
    - Dst: static_cast<int>
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:168,1
    - Dst: static_cast<int>
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: WdmNextPerfUtility::ReportPerf
    functionSourceFile: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp
    functionUses: 0
    functionsReached:
    - printf
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: WdmNextPerfUtility::ReportPerf()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:178,1
    - Dst: end
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:178,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:179,1
    - Dst: static_cast<int>
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:180,1
    - Dst: static_cast<int>
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 181
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 181
    functionName: WdmNextPerfUtility::ReportAll
    functionSourceFile: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp
    functionUses: 0
    functionsReached:
    - end
    - begin
    - printf
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: WdmNextPerfUtility::ReportAll()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:195,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:196,1
    - Dst: gettimeofday
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:198,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:199,1
    - Dst: perror
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:199,1
    - Dst: localtime
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:201,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:202,1
    - Dst: perror
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:202,1
    - Dst: strftime
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:204,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:205,1
    - Dst: perror
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:205,1
    - Dst: snprintf
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:208,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 215
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 215
    functionName: WdmNextPerfUtility::GetCurrentTimestamp
    functionSourceFile: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    - perror
    - localtime
    - gettimeofday
    - printf
    - snprintf
    - strftime
    linkageType: ''
    returnType: int
    signature: WdmNextPerfUtility::GetCurrentTimestamp(char *buf, size_t num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WdmNextPerfUtility::GetCurrentTimestamp
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:226,1
    - Dst: begin
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:231,1
    - Dst: end
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:231,1
    - Dst: static_cast<int>
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:234,1
    - Dst: static_cast<int>
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:235,1
    - Dst: std::ofstream::close
      Src: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 240
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 240
    functionName: WdmNextPerfUtility::SaveToFile
    functionSourceFile: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp
    functionUses: 0
    functionsReached:
    - end
    - std::ofstream::close
    - static_cast<int>
    - WdmNextPerfUtility::GetCurrentTimestamp
    - begin
    linkageType: ''
    returnType: void
    signature: WdmNextPerfUtility::SaveToFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LocaleSettingsTraitDataSource
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: nl::Weave::Profiles::DataManagement::TraitDataSource
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.h
    functionUses: 0
    functionsReached:
    - LocaleSettingsTraitDataSource
    linkageType: ''
    returnType: public
    signature: nl::Weave::Profiles::DataManagement::TraitDataSource
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LocaleCapabilitiesTraitDataSource
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 89
    functionName: nl::Weave::Profiles::DataManagement::TraitDataSource
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.h
    functionUses: 0
    functionsReached:
    - LocaleCapabilitiesTraitDataSource
    linkageType: ''
    returnType: public
    signature: nl::Weave::Profiles::DataManagement::TraitDataSource
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestATraitDataSource
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 196
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 196
    functionName: nl::Weave::Profiles::DataManagement::TraitDataSource
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.h
    functionUses: 0
    functionsReached:
    - TestATraitDataSource
    linkageType: ''
    returnType: public
    signature: nl::Weave::Profiles::DataManagement::TraitDataSource
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestBTraitDataSource
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 229
    functionName: nl::Weave::Profiles::DataManagement::TraitDataSource
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.h
    functionUses: 0
    functionsReached:
    - TestBTraitDataSource
    linkageType: ''
    returnType: public
    signature: nl::Weave::Profiles::DataManagement::TraitDataSource
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestCTraitDataSource
      Src: /src/openweave-core/src/test-apps/MockSourceTraits.h:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 304
    functionName: nl::Weave::Profiles::DataManagement::TraitDataSource
    functionSourceFile: /src/openweave-core/src/test-apps/MockSourceTraits.h
    functionUses: 0
    functionsReached:
    - TestCTraitDataSource
    linkageType: ''
    returnType: public
    signature: nl::Weave::Profiles::DataManagement::TraitDataSource
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: State
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:64,1
    - Dst: PrepareSelect
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:65,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:70,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:70,1
    - Dst: MapErrorPOSIX
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:70,1
    - Dst: State
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:75,1
    - Dst: HandleSelectResult
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:78,1
    - Dst: State
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:82,1
    - Dst: HandlePlatformTimer
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ' aLayer'
    - ' aSleepTime'
    argTypes:
    - Layer
    - ::timeval
    constantsTouched: []
    func_position:
      end: 90
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 90
    functionName: ServiceEvents
    functionSourceFile: /src/openweave-core/src/test-apps/TestSystemTimer.cpp
    functionUses: 1
    functionsReached:
    - MapErrorPOSIX
    - State
    - HandleSelectResult
    - PrepareSelect
    - printf
    - HandlePlatformTimer
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: ServiceEvents(Layer& aLayer, ::timeval& aSleepTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestContext*>
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:109,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - inetLayer
    - aState
    - aError
    argTypes:
    - Layer*
    - void*
    - Error
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: HandleTimer0Failed
    functionSourceFile: /src/openweave-core/src/test-apps/TestSystemTimer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestContext*>
    - NL_TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: HandleTimer0Failed(Layer* inetLayer, void* aState, Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestContext*>
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:116,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - inetLayer
    - aState
    - aError
    argTypes:
    - Layer*
    - void*
    - Error
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: HandleTimer1Failed
    functionSourceFile: /src/openweave-core/src/test-apps/TestSystemTimer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestContext*>
    - NL_TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: HandleTimer1Failed(Layer* inetLayer, void* aState, Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestContext*>
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:123,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - inetLayer
    - aState
    - aError
    argTypes:
    - Layer*
    - void*
    - Error
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: HandleTimer10Success
    functionSourceFile: /src/openweave-core/src/test-apps/TestSystemTimer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestContext*>
    - NL_TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: HandleTimer10Success(Layer* inetLayer, void* aState, Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestContext*>
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:134,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:139,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:140,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:141,1
    - Dst: ServiceEvents
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:148,1
    - Dst: CancelTimer
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:151,1
    - Dst: CancelTimer
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:152,1
    - Dst: CancelTimer
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - inSuite
    - aContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 154
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 154
    functionName: CheckOverflow
    functionSourceFile: /src/openweave-core/src/test-apps/TestSystemTimer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestContext*>
    - StartTimer
    - CancelTimer
    - ServiceEvents
    linkageType: ''
    returnType: void
    signature: CheckOverflow(nlTestSuite* inSuite, void* aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestContext*>
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:162,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:163,1
    - Dst: Layer*::StartTimer
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - aLayer
    - aState
    - aError
    argTypes:
    - Layer*
    - void*
    - Error
    constantsTouched: []
    func_position:
      end: 173
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 173
    functionName: HandleGreedyTimer
    functionSourceFile: /src/openweave-core/src/test-apps/TestSystemTimer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestContext*>
    - NL_TEST_ASSERT
    - Layer*::StartTimer
    linkageType: ''
    returnType: void
    signature: HandleGreedyTimer(Layer *aLayer, void * aState, Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestContext*>
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:177,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:181,1
    - Dst: ServiceEvents
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - aContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 186
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 186
    functionName: CheckStarvation
    functionSourceFile: /src/openweave-core/src/test-apps/TestSystemTimer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<TestContext*>
    - StartTimer
    - ServiceEvents
    linkageType: ''
    returnType: void
    signature: CheckStarvation(nlTestSuite* inSuite, void* aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<TestContext*>
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:218,1
    - Dst: sys_mbox_new
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:224,1
    - Dst: tcpip_init
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:225,1
    - Dst: Layer::Init
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - aContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 235
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 235
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestSystemTimer.cpp
    functionUses: 0
    functionsReached:
    - Layer::Init
    - tcpip_init
    - reinterpret_cast<TestContext*>
    - sys_mbox_new
    linkageType: ''
    returnType: int
    signature: TestSetup(void* aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<TestContext*>
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:243,1
    - Dst: mLayer::Shutdown
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:245,1
    - Dst: tcpip_finish
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - aContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 252
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 252
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestSystemTimer.cpp
    functionUses: 0
    functionsReached:
    - tcpip_finish
    - mLayer::Shutdown
    - reinterpret_cast<TestContext*>
    linkageType: ''
    returnType: int
    signature: TestTeardown(void* aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:257,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:260,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestSystemTimer.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 263
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 263
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestSystemTimer.cpp
    functionUses: 0
    functionsReached:
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: WdmInitiatorState::init
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResourceIdentifier
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:306,1
    - Dst: ResourceIdentifier
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: Weave::Profiles::MockWdmSubscriptionInitiatorImpl::MockWdmSubscriptionInitiatorImpl
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp
    functionUses: 0
    functionsReached:
    - ResourceIdentifier
    linkageType: ''
    returnType: void
    signature: MockWdmSubscriptionInitiatorImpl::MockWdmSubscriptionInitiatorImpl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsUpdateInFlight
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 324
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 324
    functionName: Weave::Profiles::MockWdmSubscriptionInitiatorImpl::GetNumFaultInjectionEventsAvailable
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp
    functionUses: 0
    functionsReached:
    - IsUpdateInFlight
    linkageType: ''
    returnType: int32_t
    signature: MockWdmSubscriptionInitiatorImpl::GetNumFaultInjectionEventsAvailable(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:336,1
    - Dst: atoi
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:340,1
    - Dst: atoi
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:349,1
    - Dst: atoi
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:358,1
    - Dst: atoi
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:367,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:376,1
    - Dst: atoi
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:380,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:420,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:421,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:422,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:423,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:427,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:428,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:429,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:430,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:433,1
    - Dst: SetGroupKeyStore
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:434,1
    - Dst: TestGroupKeyStore::TestGroupKeyStore
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:434,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:435,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:437,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:438,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:439,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:445,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:448,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:455,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:459,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:463,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:468,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:472,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:476,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:480,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:484,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:488,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:492,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:502,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:503,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:507,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:508,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:511,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:513,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:515,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:517,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:519,1
    - Dst: GetVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:521,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 140
    argCount: 4
    argNames:
    - aExchangeMgr
    - aKeyId
    - aTestSecurityMode
    - aConfig
    argTypes:
    - nl::Weave::WeaveExchangeManager*
    - uint32_t
    - uint32_t
    - MockWdmNodeOptions
    constantsTouched: []
    func_position:
      end: 533
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 533
    functionName: Weave::Profiles::MockWdmSubscriptionInitiatorImpl::Init
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp
    functionUses: 0
    functionsReached:
    - Add
    - atoi
    - TestGroupKeyStore::TestGroupKeyStore
    - SubscriptionEngine::GetInstance
    - GetVersion
    - printf
    - WeaveLogDetail
    - SuccessOrExit
    - SetGroupKeyStore
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "MockWdmSubscriptionInitiatorImpl::Init(\n        nl::Weave::WeaveExchangeManager
      *aExchangeMgr,\n        uint32_t aKeyId,\n        uint32_t aTestSecurityMode,\n
      \       const MockWdmNodeOptions &aConfig)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:537,1
    - Dst: NewBinding
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:545,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:546,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:551,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:557,1
    - Dst: EnableResubscribe
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:673,1
    - Dst: ApplyWdmUpdateMutations
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:684,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:686,1
    - Dst: InitiateSubscription
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:696,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:703,1
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:706,1
    - Dst: BeginConfiguration
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:716,1
    - Dst: Binding::Configuration::Transport_TCP
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:722,1
    - Dst: Binding::Configuration::Transport_UDP_WRM
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:726,1
    - Dst: Binding::Configuration::TargetAddress_WeaveFabric
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:732,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:738,1
    - Dst: Binding::Configuration::Security_SharedCASESession
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:739,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:743,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:746,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:748,1
    - Dst: Binding::Configuration::Security_Key
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:750,1
    - Dst: Binding::Configuration::Security_None
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:756,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:760,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:762,1
    - Dst: Binding::Configuration::PrepareBinding
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:765,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:766,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:769,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:778,1
    - Dst: reinterpret_cast<MockWdmSubscriptionInitiatorImpl *>
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:780,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:782,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:783,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:788,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::PrepareBinding
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:789,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:790,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:796,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:796,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:802,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:802,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:806,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:809,1
    - Dst: nl::Weave::Binding::DefaultEventHandler
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:812,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::onError
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:820,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mBinding::Release
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:822,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mSubscriptionClient::Free
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:826,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:830,1
    - Dst: Locate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:837,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:838,1
    - Dst: MockWdmSubscriptionResponderImpl::DumpPublisherTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:840,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:842,1
    - Dst: Locate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:852,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:853,1
    - Dst: MockWdmSubscriptionResponderImpl::DumpClientTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:855,1
    - Dst: TraitDataSink*::GetSchemaEngine
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:855,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:857,1
    - Dst: DumpClientTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:866,1
    - Dst: DumpClientTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:867,1
    - Dst: DumpClientTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:870,1
    - Dst: DumpClientTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:871,1
    - Dst: DumpClientTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:872,1
    - Dst: DumpClientTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:873,1
    - Dst: DumpClientTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:878,1
    - Dst: DumpClientTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:879,1
    - Dst: DumpClientTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:880,1
    - Dst: DumpClientTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:885,1
    - Dst: DumpClientTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:889,1
    - Dst: DumpClientTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:890,1
    - Dst: DumpPublisherTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:901,1
    - Dst: DumpPublisherTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:904,1
    - Dst: DumpPublisherTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:905,1
    - Dst: DumpPublisherTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:906,1
    - Dst: DumpPublisherTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:910,1
    - Dst: DumpPublisherTraitChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:911,1
    - Dst: reinterpret_cast<MockWdmSubscriptionInitiatorImpl *>
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:920,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:924,1
    - Dst: mIncomingSubscribeRequest::mBinding::SetDefaultResponseTimeout
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:929,1
    - Dst: mIncomingSubscribeRequest::mBinding::SetDefaultWRMPConfig
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:930,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::DefaultEventHandler
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:934,1
    - Dst: mItem::GetVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:947,1
    - Dst: malloc
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:949,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:950,1
    - Dst: mItem::GetVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:950,1
    - Dst: mItem::GetVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:951,1
    - Dst: Free
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:961,1
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:967,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:979,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:984,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:986,1
    - Dst: static_cast<MockTraitDataSink *>
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:992,1
    - Dst: MockTraitDataSink*::ResetDataSink
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:993,1
    - Dst: Iterate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:998,1
    - Dst: reinterpret_cast<MockWdmSubscriptionInitiatorImpl *>
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1005,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1010,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1013,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1030,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1031,1
    - Dst: mSubscriptionEstablished::mClient::GetLivenessTimeoutMsec
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1031,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mExchangeMgr::MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1038,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mExchangeMgr::MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1048,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mExchangeMgr::MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1052,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1062,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1065,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::AddNewVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1072,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::AddNewVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1073,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::AddNewVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1076,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::AddNewVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1077,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::AddNewVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1078,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::AddNewVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1079,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::AddNewVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1084,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::AddNewVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1085,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::AddNewVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1086,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::AddNewVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1091,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::AddNewVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1095,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::AddNewVersion
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1096,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::DumpClientTraits
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1101,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1110,1
    - Dst: mSubscriptionTerminated::mClient::GetPeerNodeId
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1111,1
    - Dst: nl::StatusReportStr
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1114,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1115,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1118,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mExchangeMgr::MessageLayer::SystemLayer::CancelTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1124,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mExchangeMgr::MessageLayer::SystemLayer::CancelTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1128,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1141,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mExchangeMgr::MessageLayer::SystemLayer::CancelTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1146,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::onCompleteTest
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1148,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1155,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1159,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1160,1
    - Dst: nl::StatusReportStr
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1161,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mSubscriptionClient::DiscardUpdates
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1167,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1172,1
    - Dst: nl::Weave::Profiles::SubscriptionClient::DefaultEventHandler
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1177,1
    - Dst: reinterpret_cast<MockWdmSubscriptionInitiatorImpl *>
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1185,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1191,1
    - Dst: mSubscribeRequestParsed::mHandler::GetBinding
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1197,1
    - Dst: mSubscribeRequestParsed::mHandler::GetBinding
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1198,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mSubscriptionClient::GetSubscriptionId
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1205,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1206,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mBinding::GetPeerNodeId
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1209,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1212,1
    - Dst: mSubscribeRequestParsed::mHandler::AcceptSubscribeRequest
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1218,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1223,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::DumpPublisherTraits
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1229,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1233,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mExchangeMgr::MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1238,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mExchangeMgr::MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1248,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mExchangeMgr::MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1252,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1262,1
    - Dst: mSubscriptionTerminated::mHandler::GetPeerNodeId
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1264,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mExchangeMgr::MessageLayer::SystemLayer::CancelTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1269,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mExchangeMgr::MessageLayer::SystemLayer::CancelTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1273,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mExchangeMgr::MessageLayer::SystemLayer::CancelTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1282,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1287,1
    - Dst: HandlePublisherRelease
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1288,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1291,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::onCompleteTest
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1295,1
    - Dst: nl::Weave::Profiles::SubscriptionHandler::DefaultEventHandler
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1300,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1305,1
    - Dst: reinterpret_cast<MockWdmSubscriptionInitiatorImpl *>
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1311,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1313,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1317,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mSubscriptionClient::EndSubscription
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1326,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mSubscriptionClient::AbortSubscription
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1329,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mSubscriptionClient::AbortSubscription
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1334,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1343,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1347,1
    - Dst: EndSubscription
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1355,1
    - Dst: AbortSubscription
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1360,1
    - Dst: reinterpret_cast<MockWdmSubscriptionInitiatorImpl *>
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1374,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::ApplyWdmUpdateMutations
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1378,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1382,1
    - Dst: WeaveDie
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1414,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1420,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mTestATraitUpdatableDataSink1::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1425,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1426,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mTestBTraitUpdatableDataSink::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1428,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1429,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mLocaleSettingsTraitUpdatableDataSink::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1431,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1432,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mTestATraitUpdatableDataSink0::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1434,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1435,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mLocaleSettingsTraitUpdatableDataSink::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1438,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1439,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mSubscriptionClient::FlushUpdate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1442,1
    - Dst: static_cast<MockWdmNodeOptions::WdmUpdateMutation>
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1450,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1453,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mExchangeMgr::MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1455,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1456,1
    - Dst: reinterpret_cast<MockWdmSubscriptionInitiatorImpl *>
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1467,1
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1469,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1473,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1479,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1493,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1497,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1503,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1505,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1506,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1511,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1512,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1513,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1517,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mLocaleCapabilitiesDataSource::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1523,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1524,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mLocaleCapabilitiesDataSource::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1527,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1528,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1529,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mTestATraitDataSource0::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1532,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mTestATraitDataSource1::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1533,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mTestBTraitDataSource::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1534,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1535,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1541,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1542,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mTestATraitDataSource0::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1549,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mTestATraitDataSource1::Mutate
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1550,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1551,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::DumpPublisherTraits
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1554,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1558,1
    - Dst: reinterpret_cast<MockWdmSubscriptionInitiatorImpl *>
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1563,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mSubscriptionClient::IsEstablishedIdle
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1566,1
    - Dst: IsEstablishedIdle
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1566,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1568,1
    - Dst: HandlePublisherComplete
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1570,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1577,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1582,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mSubscriptionClient::AbortSubscription
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1583,1
    - Dst: HandlePublisherRelease
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1584,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::onCompleteTest
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1585,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1591,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mSubscriptionClient::AbortSubscription
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1592,1
    - Dst: HandlePublisherRelease
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1593,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::onCompleteTest
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1594,1
    - Dst: reinterpret_cast<MockWdmSubscriptionInitiatorImpl *>
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1601,1
    - Dst: WEAVE_CONFIG_ENABLE_WDM_UPDATE
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1605,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mSubscriptionClient::IsUpdatePendingOrInProgress
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1606,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mSubscriptionClient::IsEstablishedIdle
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1608,1
    - Dst: IsEstablishedIdle
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1608,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1610,1
    - Dst: HandleClientComplete
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1612,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1616,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::onCompleteTest
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1617,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1624,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1626,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1631,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::mSubscriptionClient::AbortSubscription
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1632,1
    - Dst: HandlePublisherRelease
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1633,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::onCompleteTest
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1634,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1641,1
    - Dst: HandlePublisherRelease
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1642,1
    - Dst: MockWdmSubscriptionInitiatorImpl*::onCompleteTest
      Src: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp:1643,1
    CyclomaticComplexity: 171
    EdgeCount: 171
    ICount: 728
    argCount: 2
    argNames:
    - aPublisherNodeId
    - aSubnetId
    argTypes:
    - uint64_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1646
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 1646
    functionName: Weave::Profiles::MockWdmSubscriptionInitiatorImpl::StartTesting
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp
    functionUses: 0
    functionsReached:
    - MockWdmSubscriptionInitiatorImpl*::DumpClientTraits
    - Binding::Configuration::TargetAddress_WeaveFabric
    - WeaveLogFunctError
    - HandlePublisherRelease
    - EndSubscription
    - Locate
    - VerifyOrExit
    - SubscriptionEngine::GetInstance
    - WEAVE_CONFIG_ENABLE_WDM_UPDATE
    - Free
    - IgnoreUnusedVariable
    - TraitDataSink*::GetSchemaEngine
    - MockWdmSubscriptionInitiatorImpl*::mBinding::GetPeerNodeId
    - mIncomingSubscribeRequest::mBinding::SetDefaultResponseTimeout
    - Binding::Configuration::Security_None
    - MockWdmSubscriptionInitiatorImpl*::mTestATraitUpdatableDataSink0::Mutate
    - MockWdmSubscriptionInitiatorImpl*::ApplyWdmUpdateMutations
    - mSubscriptionTerminated::mHandler::GetPeerNodeId
    - MockWdmSubscriptionInitiatorImpl*::mSubscriptionClient::EndSubscription
    - HandleClientComplete
    - init
    - MockWdmSubscriptionInitiatorImpl*::mSubscriptionClient::DiscardUpdates
    - mSubscriptionTerminated::mClient::GetPeerNodeId
    - HandlePublisherComplete
    - mSubscriptionEstablished::mClient::GetLivenessTimeoutMsec
    - malloc
    - BeginConfiguration
    - VerifyOrDie
    - MockWdmSubscriptionInitiatorImpl*::mSubscriptionClient::AbortSubscription
    - MockWdmSubscriptionInitiatorImpl*::mExchangeMgr::MessageLayer::SystemLayer::CancelTimer
    - DumpPublisherTraitChecksum
    - StartTimer
    - IsEstablishedIdle
    - nl::Weave::Binding::DefaultEventHandler
    - DumpClientTraitChecksum
    - MockWdmSubscriptionInitiatorImpl*::mExchangeMgr::MessageLayer::SystemLayer::StartTimer
    - Iterate
    - Binding::Configuration::Security_SharedCASESession
    - nl::Weave::Profiles::SubscriptionEngine::DefaultEventHandler
    - Release
    - EnableResubscribe
    - MockWdmSubscriptionInitiatorImpl*::mTestATraitUpdatableDataSink1::Mutate
    - AbortSubscription
    - ExitNow
    - MockWdmSubscriptionInitiatorImpl*::AddNewVersion
    - reinterpret_cast<MockWdmSubscriptionInitiatorImpl *>
    - Binding::Configuration::Transport_UDP_WRM
    - MockWdmSubscriptionResponderImpl::DumpClientTraitChecksum
    - MockWdmSubscriptionInitiatorImpl*::mTestBTraitUpdatableDataSink::Mutate
    - mIncomingSubscribeRequest::mBinding::SetDefaultWRMPConfig
    - mSubscribeRequestParsed::mHandler::AcceptSubscribeRequest
    - MockWdmSubscriptionInitiatorImpl*::mBinding::Release
    - printf
    - Binding::Configuration::Transport_TCP
    - MockWdmSubscriptionInitiatorImpl*::mTestATraitDataSource1::Mutate
    - mSubscribeRequestParsed::mHandler::GetBinding
    - ApplyWdmUpdateMutations
    - static_cast<MockTraitDataSink *>
    - MockWdmSubscriptionInitiatorImpl*::PrepareBinding
    - NewBinding
    - MockWdmSubscriptionInitiatorImpl*::mSubscriptionClient::GetSubscriptionId
    - MockWdmSubscriptionInitiatorImpl*::onError
    - MockTraitDataSink*::ResetDataSink
    - MockWdmSubscriptionInitiatorImpl*::mLocaleCapabilitiesDataSource::Mutate
    - MockWdmSubscriptionInitiatorImpl*::DumpPublisherTraits
    - MockWdmSubscriptionResponderImpl::DumpPublisherTraitChecksum
    - mItem::GetVersion
    - nl::Weave::Profiles::SubscriptionHandler::DefaultEventHandler
    - InitiateSubscription
    - nl::Weave::Profiles::SubscriptionClient::DefaultEventHandler
    - MockWdmSubscriptionInitiatorImpl*::mSubscriptionClient::FlushUpdate
    - nl::StatusReportStr
    - MockWdmSubscriptionInitiatorImpl*::mSubscriptionClient::IsUpdatePendingOrInProgress
    - static_cast<MockWdmNodeOptions::WdmUpdateMutation>
    - WeaveDie
    - MockWdmSubscriptionInitiatorImpl*::onCompleteTest
    - MockWdmSubscriptionInitiatorImpl*::mTestATraitDataSource0::Mutate
    - MockWdmSubscriptionInitiatorImpl*::mSubscriptionClient::IsEstablishedIdle
    - WeaveLogDetail
    - Binding::Configuration::Security_Key
    - MockWdmSubscriptionInitiatorImpl*::mLocaleSettingsTraitUpdatableDataSink::Mutate
    - nl::ErrorStr
    - Binding::Configuration::PrepareBinding
    - ErrorStr
    - MockWdmSubscriptionInitiatorImpl*::mSubscriptionClient::Free
    - SuccessOrExit
    - MockWdmSubscriptionInitiatorImpl*::mTestBTraitDataSource::Mutate
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockWdmSubscriptionInitiatorImpl::StartTesting(const uint64_t aPublisherNodeId,
      const uint16_t aSubnetId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1652
    functionDepth: 0
    functionLinenumber: 1652
    functionLinenumberEnd: 1655
    functionName: MockWdmSubscriptionInitiator::GetInstance
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MockWdmSubscriptionInitiator
    signature: '* MockWdmSubscriptionInitiator::GetInstance(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1657
    functionDepth: 0
    functionLinenumber: 1657
    functionLinenumberEnd: 1664
    functionName: MockWdmSubscriptionInitiator::GetNumUpdatableTraits
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: MockWdmSubscriptionInitiator::GetNumUpdatableTraits(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:91,1
    - Dst: MockTimeSync::Init
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:92,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:94,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:97,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:102,1
    - Dst: MockTimeSync::Init
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:103,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:105,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:108,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:113,1
    - Dst: MockTimeSync::Init
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:114,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:116,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:119,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:123,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:127,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:128,1
    - Dst: SetRandomRealTimeOffset
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:132,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 3
    argNames:
    - exchangeMgr
    - serviceNodeId
    - serviceNodeAddr
    argTypes:
    - nl::Weave::WeaveExchangeManager*
    - uint64_t
    - char*
    constantsTouched: []
    func_position:
      end: 138
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 138
    functionName: MockTimeSync::Init
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp
    functionUses: 1
    functionsReached:
    - SetRandomRealTimeOffset
    - MockTimeSync::Init
    - ExitNow
    - printf
    - SuccessOrExit
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockTimeSync::Init(nl::Weave::WeaveExchangeManager * const exchangeMgr,
      uint64_t serviceNodeId, const char * serviceNodeAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - mode
    argTypes:
    - OperatingMode
    constantsTouched: []
    func_position:
      end: 154
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 154
    functionName: MockTimeSync::SetMode
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockTimeSync::SetMode(const OperatingMode mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:163,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - role
    argTypes:
    - MockTimeSyncRole
    constantsTouched: []
    func_position:
      end: 171
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 171
    functionName: MockTimeSync::SetRole
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogFunctError
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockTimeSync::SetRole(const MockTimeSyncRole role)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:180,1
    - Dst: MockTimeSync::Shutdown
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:181,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:187,1
    - Dst: MockTimeSync::Shutdown
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:188,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:194,1
    - Dst: MockTimeSync::Shutdown
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:195,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:200,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:204,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:205,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp:209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 212
    functionName: MockTimeSync::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp
    functionUses: 1
    functionsReached:
    - MockTimeSync::Shutdown
    - WeaveLogFunctError
    - printf
    - ExitNow
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockTimeSync::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: nl::Weave::Profiles::Platform::CriticalSectionEnter
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionEnter()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: nl::Weave::Profiles::Platform::CriticalSectionExit
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionExit()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: '* nl::Weave::Profiles::DataManagement::SubscriptionEngine::GetInstance()'
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: nl::Weave::Profiles::DataManagement::SubscriptionEngine
    signature: '* nl::Weave::Profiles::DataManagement::SubscriptionEngine::GetInstance()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: TestWdmOneWayCommandSender::GetInstance
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TestWdmOneWayCommandSender
    signature: '* TestWdmOneWayCommandSender::GetInstance ()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: TestWdmOneWayCommandSender::TestWdmOneWayCommandSender
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestWdmOneWayCommandSender::TestWdmOneWayCommandSender()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Binding::DefaultEventHandler
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - apAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - Binding::EventType
    - Binding::InEventParam
    - Binding::OutEventParam
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: TestWdmOneWayCommandSender::BindingEventCallback
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Binding::DefaultEventHandler
    linkageType: ''
    returnType: void
    signature: "TestWdmOneWayCommandSender::BindingEventCallback (void * const apAppState,\n
      \                                                      const Binding::EventType
      aEvent,\n                                                       const Binding::InEventParam
      & aInParam,\n                                                       Binding::OutEventParam
      & aOutParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewBinding
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:133,1
    - Dst: BeginConfiguration
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:134,1
    - Dst: TestWdmOneWayCommandSender::Init
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - aExchangeMgr
    - ' destAddr'
    - destNodeId
    argTypes:
    - WeaveExchangeManager*
    - IPAddress
    - uint64_t
    constantsTouched: []
    func_position:
      end: 144
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 144
    functionName: TestWdmOneWayCommandSender::Init
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp
    functionUses: 1
    functionsReached:
    - BeginConfiguration
    - TestWdmOneWayCommandSender::Init
    - NewBinding
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TestWdmOneWayCommandSender::Init(WeaveExchangeManager *aExchangeMgr,\n
      \                                            const IPAddress & destAddr,\n                                             const
      uint64_t destNodeId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:152,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 159
    functionName: TestWdmOneWayCommandSender::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp
    functionUses: 0
    functionsReached:
    - Close
    - Release
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestWdmOneWayCommandSender::Shutdown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResourceIdentifier
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:167,1
    - Dst: SchemaVersionRange
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:169,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:175,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:177,1
    - Dst: nl::Weave::System::Layer::GetClock_RealTime
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:183,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:184,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:198,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:199,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:201,1
    - Dst: nl::Weave::TLV::TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:203,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:204,1
    - Dst: nl::Weave::TLV::TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:206,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:206,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:207,1
    - Dst: nl::Weave::TLV::TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:209,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:209,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:210,1
    - Dst: nl::Weave::TLV::TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:212,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:213,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:215,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:216,1
    - Dst: SendCommand
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:220,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:221,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:228,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 234
    functionName: TestWdmOneWayCommandSender::SendOneWayCommand
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::TLV::TLVWriter::Init
    - nl::Weave::TLV::TLVWriter::StartContainer
    - nl::Weave::TLV::TLVWriter::EndContainer
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::System::Layer::GetClock_RealTime
    - VerifyOrExit
    - nl::Weave::TLV::TLVWriter::Finalize
    - WeaveLogDetail
    - nl::Weave::TLV::TLVWriter::Put
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::PutBoolean
    - SendCommand
    - Close
    - ResourceIdentifier
    - nl::Weave::TLV::ContextTag
    - SchemaVersionRange
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestWdmOneWayCommandSender::SendOneWayCommand(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseHostPortAndInterface
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:295,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:295,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:298,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:299,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:302,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:304,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:305,1
    - Dst: InterfaceNameToId
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:310,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:313,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 317
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 317
    functionName: ParseDestAddress
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp
    functionUses: 3
    functionsReached:
    - ParseHostPortAndInterface
    - exit
    - nl::Inet::IPAddress::FromString
    - InterfaceNameToId
    - strlen
    - printf
    linkageType: ''
    returnType: void
    signature: ParseDestAddress()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitToolCommon
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:321,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:325,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:326,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:329,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:330,1
    - Dst: ResolveWeaveNetworkOptions
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:331,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:333,1
    - Dst: GetEncKeyId
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:336,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:338,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:339,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:342,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:344,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:346,1
    - Dst: PrintNodeConfig
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:348,1
    - Dst: ParseDestAddress
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:352,1
    - Dst: TestWdmOneWayCommandSender::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:354,1
    - Dst: TestWdmOneWayCommandSender::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:356,1
    - Dst: TestWdmOneWayCommandSender::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:358,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:362,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:363,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:366,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:367,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:368,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 371
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 371
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp
    functionUses: 0
    functionsReached:
    - InitSystemLayer
    - ShutdownWeaveStack
    - ParseArgs
    - exit
    - InitToolCommon
    - ShutdownSystemLayer
    - TestWdmOneWayCommandSender::GetInstance
    - InitNetwork
    - ParseArgsFromEnvVar
    - InitWeaveStack
    - PrintBriefUsage
    - ParseDestAddress
    - PrintArgError
    - printf
    - ShutdownNetwork
    - GetEncKeyId
    - ResolveWeaveNetworkOptions
    - PrintNodeConfig
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 386
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 386
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:394,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:406,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:408,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp:415,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 420
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 420
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseNodeId
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: getBluezApplicationDelegate
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: nl::Ble::Platform::BlueZ::BluezBleApplicationDelegate
    signature: '*getBluezApplicationDelegate()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: getBluezPlatformDelegate
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate
    signature: '*getBluezPlatformDelegate()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sys_mbox_new
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: AcquireLwIP
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - sys_mbox_new
    linkageType: ''
    returnType: void
    signature: AcquireLwIP(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_finish
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: ReleaseLwIP
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - tcpip_finish
    linkageType: ''
    returnType: void
    signature: ReleaseLwIP(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::Security::InitSecureRandomDataSource
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:153,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:154,1
    - Dst: nl::Weave::Platform::Security::GetSecureRandomData
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:157,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:158,1
    - Dst: srand
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:159,1
    - Dst: UseStdoutLineBuffering
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:161,1
    - Dst: GetClock_Monotonic
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 166
    functionName: InitToolCommon
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 12
    functionsReached:
    - nl::Weave::Platform::Security::GetSecureRandomData
    - UseStdoutLineBuffering
    - nl::Weave::Platform::Security::InitSecureRandomDataSource
    - GetClock_Monotonic
    - srand
    - FAIL_ERROR
    linkageType: ''
    returnType: void
    signature: InitToolCommon()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: ExitOnSIGUSR1Handler
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - exit
    linkageType: ''
    returnType: void
    signature: ExitOnSIGUSR1Handler(int signum)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetSignalHandler
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: SetSIGUSR1Handler
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 11
    functionsReached:
    - SetSignalHandler
    linkageType: ''
    returnType: void
    signature: SetSIGUSR1Handler(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: DoneOnHandleSIGUSR1
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DoneOnHandleSIGUSR1(int signum)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:192,1
    - Dst: sigaction
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:197,1
    - Dst: perror
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:199,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - handler
    argTypes:
    - SignalHandler
    constantsTouched: []
    func_position:
      end: 203
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 203
    functionName: SetSignalHandler
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 8
    functionsReached:
    - exit
    - perror
    - memset
    - sigaction
    linkageType: ''
    returnType: void
    signature: SetSignalHandler(SignalHandler handler)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setvbuf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: UseStdoutLineBuffering
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 6
    functionsReached:
    - setvbuf
    linkageType: ''
    returnType: void
    signature: UseStdoutLineBuffering()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:237,1
    - Dst: IPAddress::ToIPv6
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:242,1
    - Dst: ip6_addr_islinklocal
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:244,1
    - Dst: ip6_addr_set
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:247,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:247,1
    - Dst: ip6_addr_set
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:249,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:257,1
    - Dst: netif_add_ip6_address_with_route
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:257,1
    - Dst: netif_ip6_addr_set_state
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:264,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - tunIf
    - ipAddr
    - prefixLen
    argTypes:
    - InterfaceId
    - IPAddress
    - uint8_t
    constantsTouched: []
    func_position:
      end: 272
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 272
    functionName: InterfaceAddAddress_LwIP
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - ip_2_ip6
    - LOCK_TCPIP_CORE
    - ip6_addr_islinklocal
    - ip6_addr_set
    - nl::Weave::System::MapErrorLwIP
    - IPAddress::ToIPv6
    - UNLOCK_TCPIP_CORE
    - netif_ip6_addr_set_state
    - netif_add_ip6_address_with_route
    linkageType: ''
    returnType: INET_ERROR
    signature: InterfaceAddAddress_LwIP(InterfaceId tunIf, IPAddress ipAddr, uint8_t
      prefixLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:280,1
    - Dst: IPAddress::ToIPv6
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:283,1
    - Dst: ip6_addr_islinklocal
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:285,1
    - Dst: ip6_addr_set_zero
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:288,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:288,1
    - Dst: ip6_addr_set_zero
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:290,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:299,1
    - Dst: netif_remove_ip6_address_with_route
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:299,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - tunIf
    - ipAddr
    - prefixLen
    argTypes:
    - InterfaceId
    - IPAddress
    - uint8_t
    constantsTouched: []
    func_position:
      end: 307
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 307
    functionName: InterfaceRemoveAddress_LwIP
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - ip_2_ip6
    - LOCK_TCPIP_CORE
    - ip6_addr_islinklocal
    - nl::Weave::System::MapErrorLwIP
    - IPAddress::ToIPv6
    - ip6_addr_set_zero
    - UNLOCK_TCPIP_CORE
    - netif_remove_ip6_address_with_route
    linkageType: ''
    returnType: INET_ERROR
    signature: InterfaceRemoveAddress_LwIP(InterfaceId tunIf, IPAddress ipAddr, uint8_t
      prefixLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:316,1
    - Dst: IPPrefix::IPAddr::ToIPv6
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:318,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:322,1
    - Dst: ip6_add_route_entry
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:322,1
    - Dst: ip6_remove_route_entry
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:326,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - tunIf
    - ipPrefix
    - routeAddDel
    argTypes:
    - InterfaceId
    - IPPrefix
    - nl::Inet::TunEndPoint::RouteOp
    constantsTouched: []
    func_position:
      end: 334
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 334
    functionName: SetRouteToTunnelInterface_LwIP
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - ip6_remove_route_entry
    - LOCK_TCPIP_CORE
    - nl::Weave::System::MapErrorLwIP
    - UNLOCK_TCPIP_CORE
    - ip6_add_route_entry
    - IPPrefix::IPAddr::ToIPv6
    linkageType: ''
    returnType: INET_ERROR
    signature: SetRouteToTunnelInterface_LwIP(InterfaceId tunIf, IPPrefix ipPrefix,
      nl::Inet::TunEndPoint::RouteOp routeAddDel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:349,1
    - Dst: socket
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:352,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:355,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:355,1
    - Dst: ioctl
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:365,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:368,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:368,1
    - Dst: close
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:374,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - tunIf
    - ipAddr
    - prefixLen
    argTypes:
    - InterfaceId
    - IPAddress
    - uint8_t
    constantsTouched: []
    func_position:
      end: 378
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 378
    functionName: InterfaceAddAddress_Linux
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - ioctl
    - ExitNow
    - close
    - socket
    - nl::Weave::Encoding::LittleEndian::Write32
    - nl::Weave::System::MapErrorPOSIX
    linkageType: ''
    returnType: INET_ERROR
    signature: InterfaceAddAddress_Linux(InterfaceId tunIf, IPAddress ipAddr, uint8_t
      prefixLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:388,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:391,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:391,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:397,1
    - Dst: ioctl
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:405,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:408,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:408,1
    - Dst: close
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:414,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - tunIf
    - ipAddr
    - prefixLen
    argTypes:
    - InterfaceId
    - IPAddress
    - uint8_t
    constantsTouched: []
    func_position:
      end: 418
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 418
    functionName: InterfaceRemoveAddress_Linux
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - ioctl
    - ExitNow
    - close
    - socket
    - nl::Weave::Encoding::LittleEndian::Write32
    - nl::Weave::System::MapErrorPOSIX
    linkageType: ''
    returnType: INET_ERROR
    signature: InterfaceRemoveAddress_Linux(InterfaceId tunIf, IPAddress ipAddr, uint8_t
      prefixLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:427,1
    - Dst: IPPrefix::IPAddr::ToIPv6
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:429,1
    - Dst: socket
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:441,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:444,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:444,1
    - Dst: ioctl
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:453,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:456,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:456,1
    - Dst: ioctl
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:463,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:466,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:466,1
    - Dst: close
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:473,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - tunIf
    - ipPrefix
    - routeAddDel
    argTypes:
    - InterfaceId
    - IPPrefix
    - nl::Inet::TunEndPoint::RouteOp
    constantsTouched: []
    func_position:
      end: 477
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 477
    functionName: SetRouteToTunnelInterface_Linux
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - ioctl
    - ExitNow
    - memset
    - close
    - socket
    - nl::Weave::System::MapErrorPOSIX
    - IPPrefix::IPAddr::ToIPv6
    linkageType: ''
    returnType: INET_ERROR
    signature: SetRouteToTunnelInterface_Linux(InterfaceId tunIf, IPPrefix ipPrefix,
      nl::Inet::TunEndPoint::RouteOp routeAddDel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InterfaceAddAddress_LwIP
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:500,1
    - Dst: InterfaceAddAddress_Linux
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:502,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - tunIf
    - ipAddr
    - prefixLen
    argTypes:
    - InterfaceId
    - IPAddress
    - uint8_t
    constantsTouched: []
    func_position:
      end: 508
      start: 496
    functionDepth: 3
    functionLinenumber: 496
    functionLinenumberEnd: 508
    functionName: InterfaceAddAddress
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 1
    functionsReached:
    - InterfaceAddAddress_Linux
    - InterfaceAddAddress_LwIP
    - SuccessOrExit
    linkageType: ''
    returnType: INET_ERROR
    signature: InterfaceAddAddress(InterfaceId tunIf, IPAddress ipAddr, uint8_t prefixLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InterfaceRemoveAddress_LwIP
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:526,1
    - Dst: InterfaceRemoveAddress_Linux
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:528,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - tunIf
    - ipAddr
    - prefixLen
    argTypes:
    - InterfaceId
    - IPAddress
    - uint8_t
    constantsTouched: []
    func_position:
      end: 534
      start: 522
    functionDepth: 3
    functionLinenumber: 522
    functionLinenumberEnd: 534
    functionName: InterfaceRemoveAddress
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - InterfaceRemoveAddress_LwIP
    - InterfaceRemoveAddress_Linux
    - SuccessOrExit
    linkageType: ''
    returnType: INET_ERROR
    signature: InterfaceRemoveAddress(InterfaceId tunIf, IPAddress ipAddr, uint8_t
      prefixLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:559,1
    - Dst: SetRouteToTunnelInterface_LwIP
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:563,1
    - Dst: SetRouteToTunnelInterface_Linux
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:565,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - tunIf
    - ipPrefix
    - routeAddDel
    argTypes:
    - InterfaceId
    - IPPrefix
    - nl::Inet::TunEndPoint::RouteOp
    constantsTouched: []
    func_position:
      end: 571
      start: 551
    functionDepth: 2
    functionLinenumber: 551
    functionLinenumberEnd: 571
    functionName: SetRouteToTunnelInterface
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 2
    functionsReached:
    - SuccessOrExit
    - SetRouteToTunnelInterface_LwIP
    - ExitNow
    - SetRouteToTunnelInterface_Linux
    linkageType: ''
    returnType: INET_ERROR
    signature: SetRouteToTunnelInterface(InterfaceId tunIf, IPPrefix ipPrefix, nl::Inet::TunEndPoint::RouteOp
      routeAddDel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveFabricIdToIPv6GlobalId
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:595,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:596,1
    - Dst: nl::Weave::WeaveNodeIdToIPv6InterfaceId
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:597,1
    - Dst: InterfaceAddAddress
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:598,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tunIf
    argTypes:
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 603
      start: 582
    functionDepth: 4
    functionLinenumber: 582
    functionLinenumberEnd: 603
    functionName: nl::Weave::Profiles::WeaveTunnel::Platform::TunnelInterfaceUp(InterfaceId
      tunIf)
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - WeaveFabricIdToIPv6GlobalId
    - WeaveLogError
    - InterfaceAddAddress
    - nl::Weave::WeaveNodeIdToIPv6InterfaceId
    - nl::Inet::IPAddress::MakeULA
    linkageType: ''
    returnType: void
    signature: nl::Weave::Profiles::WeaveTunnel::Platform::TunnelInterfaceUp(InterfaceId
      tunIf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveFabricIdToIPv6GlobalId
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:624,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:625,1
    - Dst: nl::Weave::WeaveNodeIdToIPv6InterfaceId
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:626,1
    - Dst: InterfaceRemoveAddress
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:627,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:630,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tunIf
    argTypes:
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 632
      start: 614
    functionDepth: 4
    functionLinenumber: 614
    functionLinenumberEnd: 632
    functionName: nl::Weave::Profiles::WeaveTunnel::Platform::TunnelInterfaceDown(InterfaceId
      tunIf)
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - WeaveFabricIdToIPv6GlobalId
    - WeaveLogError
    - nl::Weave::WeaveNodeIdToIPv6InterfaceId
    - InterfaceRemoveAddress
    - nl::Inet::IPAddress::MakeULA
    linkageType: ''
    returnType: void
    signature: nl::Weave::Profiles::WeaveTunnel::Platform::TunnelInterfaceDown(InterfaceId
      tunIf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveFabricIdToIPv6GlobalId
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:656,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:657,1
    - Dst: SetRouteToTunnelInterface
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:663,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - tunIf
    - tunMode
    argTypes:
    - InterfaceId
    - TunnelAvailabilityMode
    constantsTouched: []
    func_position:
      end: 668
      start: 646
    functionDepth: 3
    functionLinenumber: 646
    functionLinenumberEnd: 668
    functionName: "nl::Weave::Profiles::WeaveTunnel::Platform::ServiceTunnelEstablished(InterfaceId
      tunIf,\n                                                                          TunnelAvailabilityMode
      tunMode)"
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - WeaveFabricIdToIPv6GlobalId
    - WeaveLogError
    - SetRouteToTunnelInterface
    - nl::Inet::IPAddress::MakeULA
    linkageType: ''
    returnType: void
    signature: "nl::Weave::Profiles::WeaveTunnel::Platform::ServiceTunnelEstablished(InterfaceId
      tunIf,\n                                                                          TunnelAvailabilityMode
      tunMode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 681
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 681
    functionName: nl::Weave::Profiles::WeaveTunnel::Platform::EnableBorderRouting(void)
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: nl::Weave::Profiles::WeaveTunnel::Platform::EnableBorderRouting(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 694
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 694
    functionName: nl::Weave::Profiles::WeaveTunnel::Platform::DisableBorderRouting(void)
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: nl::Weave::Profiles::WeaveTunnel::Platform::DisableBorderRouting(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveFabricIdToIPv6GlobalId
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:714,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:715,1
    - Dst: SetRouteToTunnelInterface
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:722,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - tunIf
    argTypes:
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 727
      start: 705
    functionDepth: 3
    functionLinenumber: 705
    functionLinenumberEnd: 727
    functionName: nl::Weave::Profiles::WeaveTunnel::Platform::ServiceTunnelDisconnected(InterfaceId
      tunIf)
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - WeaveFabricIdToIPv6GlobalId
    - WeaveLogError
    - SetRouteToTunnelInterface
    - nl::Inet::IPAddress::MakeULA
    linkageType: ''
    returnType: void
    signature: nl::Weave::Profiles::WeaveTunnel::Platform::ServiceTunnelDisconnected(InterfaceId
      tunIf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tunIf
    - tunMode
    argTypes:
    - InterfaceId
    - TunnelAvailabilityMode
    constantsTouched: []
    func_position:
      end: 746
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 746
    functionName: "nl::Weave::Profiles::WeaveTunnel::Platform::ServiceTunnelModeChange(InterfaceId
      tunIf,\n                                                                         TunnelAvailabilityMode
      tunMode)"
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "nl::Weave::Profiles::WeaveTunnel::Platform::ServiceTunnelModeChange(InterfaceId
      tunIf,\n                                                                         TunnelAvailabilityMode
      tunMode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AcquireLwIP
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:754,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:755,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 759
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 759
    functionName: InitSystemLayer
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 21
    functionsReached:
    - AcquireLwIP
    - Init
    linkageType: ''
    returnType: void
    signature: InitSystemLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:763,1
    - Dst: ReleaseLwIP
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 768
      start: 761
    functionDepth: 2
    functionLinenumber: 761
    functionLinenumberEnd: 768
    functionName: ShutdownSystemLayer
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 16
    functionsReached:
    - ReleaseLwIP
    - Shutdown
    linkageType: ''
    returnType: void
    signature: ShutdownSystemLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TapDeviceName::size
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:775,1
    - Dst: GetInterfaceName
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:780,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:782,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:783,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:784,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:785,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:787,1
    - Dst: ipaddr_ntoa
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:787,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:788,1
    - Dst: ipaddr_ntoa
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:788,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:789,1
    - Dst: ipaddr_ntoa
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:789,1
    - Dst: ip6_addr_isany
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:793,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:793,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:795,1
    - Dst: ip6addr_ntoa
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:795,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:795,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:795,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:801,1
    - Dst: DNSServerAddr::ToString
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:801,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 803
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 803
    functionName: PrintNetworkState
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - netif_ip6_addr
    - ip6addr_ntoa
    - DNSServerAddr::ToString
    - ip6_addr_isany
    - ipaddr_ntoa
    - printf
    - GetInterfaceName
    - TapDeviceName::size
    - netif_ip6_addr_state
    linkageType: ''
    returnType: void
    signature: PrintNetworkState()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_init
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:813,1
    - Dst: TapDeviceName::empty
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:819,1
    - Dst: LocalIPv6Addr::size
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:821,1
    - Dst: snprintf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:825,1
    - Dst: TapDeviceName::push_back
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:827,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:833,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:834,1
    - Dst: TapDeviceName::size
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:835,1
    - Dst: push_back
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:839,1
    - Dst: push_back
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:840,1
    - Dst: TapDeviceName::size
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:843,1
    - Dst: TapInterface_Init
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:845,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:848,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:848,1
    - Dst: nl::Weave::System::MapErrorLwIP
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:848,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:849,1
    - Dst: tcpip_init
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:852,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:855,1
    - Dst: TapDeviceName::size
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:857,1
    - Dst: std::vector::clear
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:860,1
    - Dst: CollectTapAddresses
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:863,1
    - Dst: LocalIPv4Addr::size
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:868,1
    - Dst: std::vector::size
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:871,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:874,1
    - Dst: IPAddress::IsIPv4
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:874,1
    - Dst: IPv4GatewayAddr::size
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:880,1
    - Dst: IPAddress::ToIPv4
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:891,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:892,1
    - Dst: IPAddress::ToIPv4
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:893,1
    - Dst: netif_add
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:894,1
    - Dst: netif_create_ip6_linklocal_address
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:899,1
    - Dst: LocalIPv6Addr::size
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:901,1
    - Dst: ToIPv6
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:903,1
    - Dst: netif_add_ip6_address_with_route
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:905,1
    - Dst: IPv6GatewayAddr::size
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:907,1
    - Dst: ToIPv6
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:909,1
    - Dst: ToIPv6
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:911,1
    - Dst: ip6_add_route_entry
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:913,1
    - Dst: netif_ip6_addr_set_state
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:917,1
    - Dst: std::vector::size
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:920,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:923,1
    - Dst: IPAddress::IsIPv4
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:923,1
    - Dst: IPAddress::ToIPv6
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:925,1
    - Dst: IPAddress::IsIPv6LinkLocal
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:927,1
    - Dst: IPAddress::IsIPv6Multicast
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:929,1
    - Dst: netif_add_ip6_address_with_route
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:931,1
    - Dst: netif_ip6_addr_set_state
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:934,1
    - Dst: netif_set_up
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:939,1
    - Dst: netif_set_link_up
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:940,1
    - Dst: netif_set_default
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:944,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:947,1
    - Dst: NetworkIsReady
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:950,1
    - Dst: ServiceEvents
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:955,1
    - Dst: TapDeviceName::size
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:961,1
    - Dst: LocalIPv6Addr::size
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:963,1
    - Dst: netif_ip6_addr_set_state
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:964,1
    - Dst: netif_ip6_addr_set_state
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:968,1
    - Dst: DNSServerAddr::ToLwIPAddr
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:976,1
    - Dst: DNSServerAddr::ToIPv4
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:979,1
    - Dst: dns_setserver
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:985,1
    - Dst: PrintNetworkState
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:989,1
    - Dst: AcquireLwIP
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:993,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:998,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 999
      start: 806
    functionDepth: 2
    functionLinenumber: 806
    functionLinenumberEnd: 999
    functionName: InitNetwork
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 21
    functionsReached:
    - netif_create_ip6_linklocal_address
    - IPAddress::IsIPv6Multicast
    - IPAddress::IsIPv4
    - clear
    - TapDeviceName::empty
    - printf
    - snprintf
    - UNLOCK_TCPIP_CORE
    - tcpip_init
    - netif_add_ip6_address_with_route
    - dns_setserver
    - LOCK_TCPIP_CORE
    - exit
    - netif_add
    - IPv6GatewayAddr::size
    - IPAddress::ToIPv6
    - DNSServerAddr::ToIPv4
    - netif_set_link_up
    - TapDeviceName::size
    - ServiceEvents
    - std::vector::size
    - ip6_add_route_entry
    - netif_ip6_addr_set_state
    - IPv4GatewayAddr::size
    - netif_set_up
    - std::vector::clear
    - IP4_ADDR
    - ToIPv6
    - LocalIPv4Addr::size
    - IPAddress::IsIPv6LinkLocal
    - TapInterface_Init
    - CollectTapAddresses
    - push_back
    - IPAddress::ToIPv4
    - NetworkIsReady
    - ErrorStr
    - netif_set_default
    - LocalIPv6Addr::size
    - nl::Weave::System::MapErrorLwIP
    - DNSServerAddr::ToLwIPAddr
    - nl::Inet::IPAddress::FromString
    - AcquireLwIP
    - Init
    - TapDeviceName::push_back
    - PrintNetworkState
    linkageType: ''
    returnType: void
    signature: InitNetwork()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetworkIsReady
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1007,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1010,1
    - Dst: getpid
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1010,1
    - Dst: getppid
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1010,1
    - Dst: fflush
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1011,1
    - Dst: State
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1021,1
    - Dst: PrepareSelect
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1022,1
    - Dst: PrepareSelect
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1027,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1033,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1033,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1033,1
    - Dst: State
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1039,1
    - Dst: HandleSelectResult
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1047,1
    - Dst: State
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1052,1
    - Dst: DispatchEvents
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1056,1
    - Dst: HandlePlatformTimer
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1066,1
    - Dst: TapInterface_Select
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1073,1
    - Dst: TapDeviceName::size
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1073,1
    - Dst: HandleSelectResult
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1084,1
    - Dst: DispatchEvents
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1093,1
    - Dst: HandlePlatformTimer
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1102,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 1
    argNames:
    - ' aSleepTime'
    argTypes:
    - ::timeval
    constantsTouched: []
    func_position:
      end: 1107
      start: 1001
    functionDepth: 3
    functionLinenumber: 1001
    functionLinenumberEnd: 1107
    functionName: ServiceEvents
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 4
    functionsReached:
    - getpid
    - State
    - HandleSelectResult
    - PrepareSelect
    - printf
    - NetworkIsReady
    - TapDeviceName::size
    - HandlePlatformTimer
    - DispatchEvents
    - fflush
    - nl::Weave::System::MapErrorPOSIX
    - ErrorStr
    - getppid
    - TapInterface_Select
    linkageType: ''
    returnType: void
    signature: ServiceEvents(::timeval& aSleepTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TapDeviceName::size
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1115,1
    - Dst: ip6_addr_isany
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1119,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1119,1
    - Dst: ip6_addr_istentative
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1119,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1119,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1111
    functionDepth: 0
    functionLinenumber: 1111
    functionLinenumberEnd: 1127
    functionName: NetworkIsReady
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 2
    functionsReached:
    - netif_ip6_addr
    - ip6_addr_isany
    - TapDeviceName::size
    - ip6_addr_istentative
    - netif_ip6_addr_state
    linkageType: ''
    returnType: bool
    signature: NetworkIsReady()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1132
      start: 1129
    functionDepth: 0
    functionLinenumber: 1129
    functionLinenumberEnd: 1132
    functionName: OnLwIPInitComplete
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: OnLwIPInitComplete(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1144,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1148,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1148,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1149,1
    - Dst: nl::Weave::Stats::SetObjects
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1153,1
    - Dst: nl::Weave::System::Timer::GetCurrentEpoch
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1157,1
    - Dst: srand
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1158,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1162,1
    - Dst: TestGroupKeyStore::TestGroupKeyStore
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1162,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1165,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1165,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1166,1
    - Dst: LocalIPv4Addr::empty
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1179,1
    - Dst: LocalIPv6Addr::empty
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1183,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1208,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1211,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1211,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1212,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1219,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1222,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1222,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1223,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1226,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1229,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1229,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1230,1
    - Dst: GetIdleSessionTimeout
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1232,1
    - Dst: GetSessionEstablishmentTimeout
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1233,1
    - Dst: PrepopulateTokenData
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1237,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1240,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1240,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1241,1
    - Dst: SetCASEAuthDelegate
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1245,1
    - Dst: SetKeyExportDelegate
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1246,1
    - Dst: SetTAKEAuthDelegate
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1247,1
    - Dst: SetTAKETokenAuthDelegate
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1248,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 70
    argCount: 2
    argNames:
    - listen
    - initExchangeMgr
    argTypes:
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1273
      start: 1136
    functionDepth: 1
    functionLinenumber: 1136
    functionLinenumberEnd: 1273
    functionName: InitWeaveStack
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 21
    functionsReached:
    - exit
    - GetIdleSessionTimeout
    - SetTAKEAuthDelegate
    - PrepopulateTokenData
    - TestGroupKeyStore::TestGroupKeyStore
    - LocalIPv6Addr::empty
    - nl::Weave::Stats::SetObjects
    - GetSessionEstablishmentTimeout
    - printf
    - Init
    - nl::Weave::System::Timer::GetCurrentEpoch
    - LocalIPv4Addr::empty
    - SetCASEAuthDelegate
    - SetTAKETokenAuthDelegate
    - ErrorStr
    - SetKeyExportDelegate
    - srand
    linkageType: ''
    returnType: void
    signature: InitWeaveStack(bool listen, bool initExchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1278,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1279,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1280,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1281,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1285,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1294,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1297,1
    - Dst: ListenIPv6Addr::ToString
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1300,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1301,1
    - Dst: ListenIPv4Addr::ToString
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1307,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1308,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1313,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1275
    functionDepth: 0
    functionLinenumber: 1275
    functionLinenumberEnd: 1316
    functionName: PrintNodeConfig
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 11
    functionsReached:
    - ListenIPv6Addr::ToString
    - printf
    - ListenIPv4Addr::ToString
    linkageType: ''
    returnType: void
    signature: PrintNodeConfig()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1320,1
    - Dst: ReleaseLwIP
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1318
    functionDepth: 2
    functionLinenumber: 1318
    functionLinenumberEnd: 1324
    functionName: ShutdownNetwork
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 16
    functionsReached:
    - ReleaseLwIP
    - Shutdown
    linkageType: ''
    returnType: void
    signature: ShutdownNetwork()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1328,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1329,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1330,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1326
    functionDepth: 0
    functionLinenumber: 1326
    functionLinenumberEnd: 1332
    functionName: ShutdownWeaveStack
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 18
    functionsReached:
    - Shutdown
    linkageType: ''
    returnType: void
    signature: ShutdownWeaveStack()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1344,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1350,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1353,1
    - Dst: isprint
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1356,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1357,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1359,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1361,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 4
    argNames:
    - mem
    - len
    - prefix
    - rowWidth
    argTypes:
    - uint8_t*
    - uint32_t
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1363
      start: 1334
    functionDepth: 0
    functionLinenumber: 1334
    functionLinenumberEnd: 1363
    functionName: DumpMemory
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 19
    functionsReached:
    - isprint
    - printf
    linkageType: ''
    returnType: void
    signature: DumpMemory(const uint8_t *mem, uint32_t len, const char *prefix, uint32_t
      rowWidth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1371,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1377,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1379,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - mem
    - len
    - prefix
    - rowWidth
    argTypes:
    - uint8_t*
    - uint32_t
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1381
      start: 1365
    functionDepth: 0
    functionLinenumber: 1365
    functionLinenumberEnd: 1381
    functionName: DumpMemoryCStyle
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 7
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: DumpMemoryCStyle(const uint8_t *mem, uint32_t len, const char *prefix,
      uint32_t rowWidth)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1389
      start: 1383
    functionDepth: 0
    functionLinenumber: 1383
    functionLinenumberEnd: 1389
    functionName: IsZeroBytes
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: IsZeroBytes(const uint8_t *buf, uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1396,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1400
      start: 1391
    functionDepth: 0
    functionLinenumber: 1391
    functionLinenumberEnd: 1400
    functionName: PrintMACAddress
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: PrintMACAddress(const uint8_t *buf, uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1405,1
    - Dst: InterfaceAddressIterator::HasCurrent
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1406,1
    - Dst: InterfaceAddressIterator::Next
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1406,1
    - Dst: InterfaceAddressIterator::GetAddress
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1407,1
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1409,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1402
    functionDepth: 0
    functionLinenumber: 1402
    functionLinenumberEnd: 1412
    functionName: PrintAddresses
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - InterfaceAddressIterator::HasCurrent
    - InterfaceAddressIterator::Next
    - printf
    - InterfaceAddressIterator::GetAddress
    - IPAddress::ToString
    linkageType: ''
    returnType: void
    signature: PrintAddresses()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1421,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1424,1
    - Dst: strerror
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1424,1
    - Dst: fseek
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1428,1
    - Dst: ftell
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1429,1
    - Dst: fseek
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1430,1
    - Dst: ferror
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1431,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1433,1
    - Dst: strerror
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1433,1
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1434,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1441,1
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1442,1
    - Dst: malloc
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1446,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1449,1
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1450,1
    - Dst: fread
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1454,1
    - Dst: ferror
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1456,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1458,1
    - Dst: strerror
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1458,1
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1459,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1460,1
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1464,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 3
    argNames:
    - fileName
    - ' len'
    - maxLen
    argTypes:
    - char*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1467
      start: 1414
    functionDepth: 0
    functionLinenumber: 1414
    functionLinenumberEnd: 1467
    functionName: ReadFileArg
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 1
    functionsReached:
    - ferror
    - fseek
    - fread
    - fclose
    - malloc
    - free
    - printf
    - ftell
    - fopen
    - strerror
    linkageType: ''
    returnType: uint8_t
    signature: '*ReadFileArg(const char *fileName, uint32_t& len, uint32_t maxLen)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPPacketInfo*::SrcAddress::ToString
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1477,1
    - Dst: IPPacketInfo*::DestAddress::IsMulticast
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1478,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1480,1
    - Dst: IPPacketInfo*::DestAddress::IsMulticast
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1482,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1484,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1488,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1488,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1495,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1495,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - msgLayer
    - err
    - pktInfo
    argTypes:
    - WeaveMessageLayer*
    - WEAVE_ERROR
    - IPPacketInfo*
    constantsTouched: []
    func_position:
      end: 1497
      start: 1469
    functionDepth: 0
    functionLinenumber: 1469
    functionLinenumberEnd: 1497
    functionName: HandleMessageReceiveError
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - IPPacketInfo*::DestAddress::IsMulticast
    - IPPacketInfo*::SrcAddress::ToString
    - printf
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleMessageReceiveError(WeaveMessageLayer *msgLayer, WEAVE_ERROR
      err, const IPPacketInfo *pktInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1501,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msgLayer
    - err
    argTypes:
    - WeaveMessageLayer*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1502
      start: 1499
    functionDepth: 0
    functionLinenumber: 1499
    functionLinenumberEnd: 1502
    functionName: HandleAcceptConnectionError
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - printf
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleAcceptConnectionError(WeaveMessageLayer *msgLayer, WEAVE_ERROR
      err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Ble::Platform::BlueZ::RunBluezIOThread
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1508,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1514
      start: 1506
    functionDepth: 2
    functionLinenumber: 1506
    functionLinenumberEnd: 1514
    functionName: WeaveBleIOLoop
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - exit
    - nl::Ble::Platform::BlueZ::RunBluezIOThread
    linkageType: ''
    returnType: void
    signature: '*WeaveBleIOLoop(void *arg)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Stats::GetStrings
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1520,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - counters
    - aPrefix
    argTypes:
    - nl::Weave::System::Stats::count_t*
    - char*
    constantsTouched: []
    func_position:
      end: 1527
      start: 1517
    functionDepth: 1
    functionLinenumber: 1517
    functionLinenumberEnd: 1527
    functionName: PrintStatsCounters
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - printf
    - nl::Weave::System::Stats::GetStrings
    linkageType: ''
    returnType: void
    signature: PrintStatsCounters(nl::Weave::System::Stats::count_t *counters, const
      char *aPrefix)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Stats::UpdateSnapshot
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1556,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1558,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1561,1
    - Dst: nl::Weave::System::Stats::Difference
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1563,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1569,1
    - Dst: nl::Weave::Stats::UpdateSnapshot
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1571,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1578,1
    - Dst: PrintStatsCounters
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1579,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1581,1
    - Dst: PrintStatsCounters
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1582,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1585,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1588,1
    - Dst: PrintStatsCounters
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1589,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1590,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1595,1
    - Dst: PrintStatsCounters
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1596,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 4
    argNames:
    - aBefore
    - aAfter
    - aPrint
    - aPrefix
    argTypes:
    - nl::Weave::System::Stats::Snapshot
    - nl::Weave::System::Stats::Snapshot
    - bool
    - char*
    constantsTouched: []
    func_position:
      end: 1601
      start: 1529
    functionDepth: 4
    functionLinenumber: 1529
    functionLinenumberEnd: 1601
    functionName: ProcessStats
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 7
    functionsReached:
    - PrintStatsCounters
    - Now
    - nl::Weave::System::Stats::Difference
    - ServiceNetwork
    - printf
    - nl::Weave::Stats::UpdateSnapshot
    linkageType: ''
    returnType: bool
    signature: ProcessStats(nl::Weave::System::Stats::Snapshot &aBefore, nl::Weave::System::Stats::Snapshot
      &aAfter, bool aPrint, const char *aPrefix)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1618,1
    - Dst: nl::FaultInjection::Manager::GetNumFaults
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1623,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1625,1
    - Dst: nl::FaultInjection::Manager::GetName
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1625,1
    - Dst: nl::FaultInjection::Manager::GetFaultNames
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1625,1
    - Dst: nl::FaultInjection::Manager::GetFaultRecords
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1626,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1629,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1603
    functionDepth: 0
    functionLinenumber: 1603
    functionLinenumberEnd: 1631
    functionName: PrintFaultInjectionCounters
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 7
    functionsReached:
    - nl::FaultInjection::Manager::GetNumFaults
    - nl::FaultInjection::Manager::GetFaultRecords
    - nl::FaultInjection::Manager::GetName
    - printf
    - nl::FaultInjection::Manager::GetFaultNames
    linkageType: ''
    returnType: void
    signature: PrintFaultInjectionCounters(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1647,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1648,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1653,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1666,1
    - Dst: close
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1676,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1679,1
    - Dst: fflush
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1680,1
    - Dst: execvp
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1681,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1639
    functionDepth: 0
    functionLinenumber: 1639
    functionLinenumberEnd: 1685
    functionName: RebootCallbackFn
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - ExitNow
    - printf
    - close
    - execvp
    - fflush
    linkageType: ''
    returnType: void
    signature: RebootCallbackFn(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1694,1
    - Dst: nl::FaultInjection::Manager*::GetName
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1695,1
    - Dst: nl::FaultInjection::Manager*::GetFaultNames
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1695,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1699,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1703,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1707,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - aManager
    - aId
    - aFaultRecord
    argTypes:
    - nl::FaultInjection::Manager*
    - nl::FaultInjection::Identifier
    - nl::FaultInjection::Record*
    constantsTouched: []
    func_position:
      end: 1708
      start: 1687
    functionDepth: 0
    functionLinenumber: 1687
    functionLinenumberEnd: 1708
    functionName: PostInjectionCallbackFn
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - nl::FaultInjection::Manager*::GetFaultNames
    - printf
    - nl::FaultInjection::Manager*::GetName
    linkageType: ''
    returnType: void
    signature: "PostInjectionCallbackFn(nl::FaultInjection::Manager *aManager,\n                             nl::FaultInjection::Identifier
      aId,\n                             nl::FaultInjection::Record *aFaultRecord)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1726,1
    - Dst: nl::FaultInjection::Manager::GetName
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1726,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - mgr
    - aId
    - aFaultRecord
    - aContext
    argTypes:
    - nl::FaultInjection::Manager
    - nl::FaultInjection::Identifier
    - nl::FaultInjection::Record*
    - void*
    constantsTouched: []
    func_position:
      end: 1731
      start: 1720
    functionDepth: 0
    functionLinenumber: 1720
    functionLinenumberEnd: 1731
    functionName: PrintFaultInjectionMaxArgCbFn
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - printf
    - nl::FaultInjection::Manager::GetName
    linkageType: ''
    returnType: bool
    signature: PrintFaultInjectionMaxArgCbFn(nl::FaultInjection::Manager &mgr, nl::FaultInjection::Identifier
      aId, nl::FaultInjection::Record *aFaultRecord, void *aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::FaultInjection::GetManager
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1735,1
    - Dst: PrintFaultInjectionMaxArgCbFn
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aId
    - aFaultRecord
    - aContext
    argTypes:
    - nl::FaultInjection::Identifier
    - nl::FaultInjection::Record*
    - void*
    constantsTouched: []
    func_position:
      end: 1738
      start: 1733
    functionDepth: 1
    functionLinenumber: 1733
    functionLinenumberEnd: 1738
    functionName: PrintWeaveFaultInjectionMaxArgCbFn
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - PrintFaultInjectionMaxArgCbFn
    - nl::Weave::FaultInjection::GetManager
    linkageType: ''
    returnType: bool
    signature: PrintWeaveFaultInjectionMaxArgCbFn(nl::FaultInjection::Identifier aId,
      nl::FaultInjection::Record *aFaultRecord, void *aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::FaultInjection::GetManager
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1742,1
    - Dst: PrintFaultInjectionMaxArgCbFn
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aId
    - aFaultRecord
    - aContext
    argTypes:
    - nl::FaultInjection::Identifier
    - nl::FaultInjection::Record*
    - void*
    constantsTouched: []
    func_position:
      end: 1745
      start: 1740
    functionDepth: 1
    functionLinenumber: 1740
    functionLinenumberEnd: 1745
    functionName: PrintSystemFaultInjectionMaxArgCbFn
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 0
    functionsReached:
    - PrintFaultInjectionMaxArgCbFn
    - nl::Weave::System::FaultInjection::GetManager
    linkageType: ''
    returnType: bool
    signature: PrintSystemFaultInjectionMaxArgCbFn(nl::FaultInjection::Identifier
      aId, nl::FaultInjection::Record *aFaultRecord, void *aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetupFaultInjectionContext
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 1750
      start: 1747
    functionDepth: 1
    functionLinenumber: 1747
    functionLinenumberEnd: 1750
    functionName: SetupFaultInjectionContext
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 10
    functionsReached:
    - SetupFaultInjectionContext
    linkageType: ''
    returnType: void
    signature: SetupFaultInjectionContext(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::FaultInjection::GetManager
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1754,1
    - Dst: nl::Weave::System::FaultInjection::GetManager
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1755,1
    - Dst: nl::FaultInjection::SetGlobalContext
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1760,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1762,1
    - Dst: nl::FaultInjection::Manager::InsertCallbackAtFault
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1764,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1768,1
    - Dst: nl::FaultInjection::Manager::InsertCallbackAtFault
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1770,1
    - Dst: nl::Weave::System::FaultInjection::SetAsyncEventCallbacks
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1772,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 1774
      start: 1752
    functionDepth: 1
    functionLinenumber: 1752
    functionLinenumberEnd: 1774
    functionName: SetupFaultInjectionContext
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 10
    functionsReached:
    - nl::Weave::System::FaultInjection::GetManager
    - nl::FaultInjection::Manager::InsertCallbackAtFault
    - nl::Weave::System::FaultInjection::SetAsyncEventCallbacks
    - memset
    - nl::FaultInjection::SetGlobalContext
    - nl::Weave::FaultInjection::GetManager
    linkageType: ''
    returnType: void
    signature: SetupFaultInjectionContext(int argc, char *argv[], int32_t (*aNumEventsAvailable)(void),
      void (*aInjectAsyncEvents)(int32_t index))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1798,1
    - Dst: NowMs
      Src: /src/openweave-core/src/test-apps/ToolCommon.cpp:1800,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - aDone
    - aIntervalMs
    argTypes:
    - bool*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 1802
      start: 1786
    functionDepth: 1
    functionLinenumber: 1786
    functionLinenumberEnd: 1802
    functionName: ServiceNetworkUntil
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommon.cpp
    functionUses: 1
    functionsReached:
    - ServiceNetwork
    - NowMs
    linkageType: ''
    returnType: void
    signature: ServiceNetworkUntil(const bool *aDone, const uint32_t *aIntervalMs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' tokenId'
    - identificationKey
    - ' identificationKeyLen'
    argTypes:
    - uint64_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: TAKEConfigNoAuthorized::GetNextIdentificationKey
    functionSourceFile: /src/openweave-core/src/test-apps/TestTAKE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetNextIdentificationKey(uint64_t & tokenId, uint8_t *identificationKey,
      uint16_t & identificationKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: TAKEConfigJunkAuthorized::TAKEConfigJunkAuthorized
    functionSourceFile: /src/openweave-core/src/test-apps/TestTAKE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TAKEConfigJunkAuthorized()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: TAKEConfigJunkAuthorized::RewindIdentificationKeyIterator
    functionSourceFile: /src/openweave-core/src/test-apps/TestTAKE.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: RewindIdentificationKeyIterator()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:117,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:120,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:123,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - ' tokenId'
    - identificationKey
    - ' identificationKeyLen'
    argTypes:
    - uint64_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 131
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 131
    functionName: TAKEConfigJunkAuthorized::GetNextIdentificationKey
    functionSourceFile: /src/openweave-core/src/test-apps/TestTAKE.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetNextIdentificationKey(uint64_t & tokenId, uint8_t *identificationKey,
      uint16_t & identificationKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ' tokenId'
    - identificationKey
    - ' identificationKeyLen'
    argTypes:
    - uint64_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 160
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 160
    functionName: TAKEConfigTimeLimitedIK::GetNextIdentificationKey
    functionSourceFile: /src/openweave-core/src/test-apps/TestTAKE.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetNextIdentificationKey(uint64_t & tokenId, uint8_t *identificationKey,
      uint16_t & identificationKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ' tokenId'
    - identificationKey
    - ' identificationKeyLen'
    argTypes:
    - uint64_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 186
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 186
    functionName: TAKEConfigChallengerIdIsNodeId::GetNextIdentificationKey
    functionSourceFile: /src/openweave-core/src/test-apps/TestTAKE.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetNextIdentificationKey(uint64_t & tokenId, uint8_t *identificationKey,
      uint16_t & identificationKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveTAKEEngine::Init
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:206,1
    - Dst: WeaveTAKEEngine::Init
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:207,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:214,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:217,1
    - Dst: WeaveTAKEEngine::GenerateIdentifyTokenMessage
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:219,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:222,1
    - Dst: Clean
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:223,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:226,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:229,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:229,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:233,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:240,1
    - Dst: WeaveTAKEEngine::ProcessIdentifyTokenMessage
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:243,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:246,1
    - Dst: Clean
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:247,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:252,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:253,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:257,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:259,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:265,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:268,1
    - Dst: WeaveTAKEEngine::GenerateIdentifyTokenResponseMessage
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:270,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:271,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:274,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:274,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:278,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:285,1
    - Dst: WeaveTAKEEngine::ProcessIdentifyTokenResponseMessage
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:288,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:291,1
    - Dst: Clean
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:292,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:297,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:301,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:305,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:307,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:311,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:312,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:313,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:314,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:315,1
    - Dst: WeaveTAKEEngine::GetNumOptionalConfigurations
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:315,1
    - Dst: WeaveTAKEEngine::GetNumOptionalConfigurations
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:315,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:316,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:317,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:317,1
    - Dst: WeaveTAKEEngine::GetNumOptionalConfigurations
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:317,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:319,1
    - Dst: WeaveTAKEEngine::IsEncryptAuthPhase
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:319,1
    - Dst: WeaveTAKEEngine::IsEncryptAuthPhase
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:319,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:320,1
    - Dst: WeaveTAKEEngine::IsEncryptCommPhase
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:320,1
    - Dst: WeaveTAKEEngine::IsEncryptCommPhase
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:320,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:321,1
    - Dst: WeaveTAKEEngine::IsTimeLimitedIK
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:321,1
    - Dst: WeaveTAKEEngine::IsTimeLimitedIK
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:321,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:323,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:324,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:324,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:325,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:325,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:326,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:326,1
    - Dst: WeaveTAKEEngine::GetSessionKey
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:330,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:331,1
    - Dst: WeaveTAKEEngine::GetSessionKey
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:333,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:334,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:336,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:336,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:339,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:339,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:347,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:350,1
    - Dst: WeaveTAKEEngine::GenerateReAuthenticateTokenMessage
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:352,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:353,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:356,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:356,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:360,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:367,1
    - Dst: WeaveTAKEEngine::ProcessReAuthenticateTokenMessage
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:370,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:371,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:374,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:376,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:382,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:385,1
    - Dst: WeaveTAKEEngine::GenerateReAuthenticateTokenResponseMessage
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:387,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:388,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:391,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:391,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:395,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:402,1
    - Dst: WeaveTAKEEngine::ProcessReAuthenticateTokenResponseMessage
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:405,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:406,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:409,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:411,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:420,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:423,1
    - Dst: WeaveTAKEEngine::GenerateAuthenticateTokenMessage
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:425,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:426,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:429,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:429,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:433,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:440,1
    - Dst: WeaveTAKEEngine::ProcessAuthenticateTokenMessage
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:443,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:444,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:447,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:449,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:455,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:458,1
    - Dst: WeaveTAKEEngine::GenerateAuthenticateTokenResponseMessage
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:460,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:461,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:464,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:464,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:468,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:475,1
    - Dst: WeaveTAKEEngine::ProcessAuthenticateTokenResponseMessage
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:478,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:479,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:482,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:484,1
    - Dst: WeaveTAKEEngine::GetSessionKey
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:491,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:492,1
    - Dst: WeaveTAKEEngine::GetSessionKey
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:494,1
    - Dst: SuccessOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:495,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:497,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:497,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:500,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:500,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 143
    argCount: 1
    argNames:
    - ' ChallengerAuthDelegate'
    argTypes:
    - WeaveTAKEChallengerAuthDelegate
    constantsTouched: []
    func_position:
      end: 503
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 503
    functionName: TestTAKEEngine
    functionSourceFile: /src/openweave-core/src/test-apps/TestTAKE.cpp
    functionUses: 0
    functionsReached:
    - SuccessOrFail
    - fprintf
    - WeaveTAKEEngine::GenerateIdentifyTokenMessage
    - WeaveTAKEEngine::GetNumOptionalConfigurations
    - WeaveTAKEEngine::ProcessReAuthenticateTokenMessage
    - WeaveTAKEEngine::GenerateAuthenticateTokenMessage
    - nl::Weave::System::PacketBuffer::New
    - WeaveTAKEEngine::ProcessAuthenticateTokenResponseMessage
    - WeaveTAKEEngine::ProcessAuthenticateTokenMessage
    - nl::Weave::System::PacketBuffer::Free
    - WeaveTAKEEngine::IsTimeLimitedIK
    - WeaveTAKEEngine::ProcessIdentifyTokenMessage
    - WeaveTAKEEngine::GenerateReAuthenticateTokenMessage
    - VerifyOrFail
    - WeaveTAKEEngine::GenerateIdentifyTokenResponseMessage
    - WeaveTAKEEngine::IsEncryptAuthPhase
    - WeaveTAKEEngine::IsEncryptCommPhase
    - WeaveTAKEEngine::GenerateAuthenticateTokenResponseMessage
    - Clean
    - WeaveTAKEEngine::GetSessionKey
    - WeaveTAKEEngine::ProcessIdentifyTokenResponseMessage
    - PacketBuffer*::DataLength
    - WeaveTAKEEngine::Init
    - memcmp
    - WeaveTAKEEngine::ProcessReAuthenticateTokenResponseMessage
    - WeaveTAKEEngine::GenerateReAuthenticateTokenResponseMessage
    linkageType: ''
    returnType: void
    signature: TestTAKEEngine(WeaveTAKEChallengerAuthDelegate& ChallengerAuthDelegate,
      bool authorized = true, uint8_t config = kTAKEConfig_Config1, bool encryptAuthPhase
      = false, bool encryptCommPhase = true, bool timeLimitedIK = false, bool canDoReauth
      = false, bool sendChallengerId = true)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockTAKEChallengerDelegate::MockTAKEChallengerDelegate
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:508,1
    - Dst: TestTAKEEngine
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - EAP
    - ECP
    argTypes:
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 510
      start: 505
    functionDepth: 4
    functionLinenumber: 505
    functionLinenumberEnd: 510
    functionName: test1
    functionSourceFile: /src/openweave-core/src/test-apps/TestTAKE.cpp
    functionUses: 0
    functionsReached:
    - MockTAKEChallengerDelegate::MockTAKEChallengerDelegate
    - TestTAKEEngine
    linkageType: ''
    returnType: void
    signature: test1(bool EAP, bool ECP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTAKEEngine
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - EAP
    - ECP
    argTypes:
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 517
      start: 512
    functionDepth: 4
    functionLinenumber: 512
    functionLinenumberEnd: 517
    functionName: test2
    functionSourceFile: /src/openweave-core/src/test-apps/TestTAKE.cpp
    functionUses: 0
    functionsReached:
    - TestTAKEEngine
    linkageType: ''
    returnType: void
    signature: test2(bool EAP, bool ECP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TAKEConfigJunkAuthorized::TAKEConfigJunkAuthorized
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:521,1
    - Dst: TestTAKEEngine
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - EAP
    - ECP
    argTypes:
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 523
      start: 518
    functionDepth: 4
    functionLinenumber: 518
    functionLinenumberEnd: 523
    functionName: test3
    functionSourceFile: /src/openweave-core/src/test-apps/TestTAKE.cpp
    functionUses: 0
    functionsReached:
    - TAKEConfigJunkAuthorized::TAKEConfigJunkAuthorized
    - TestTAKEEngine
    linkageType: ''
    returnType: void
    signature: test3(bool EAP, bool ECP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockTAKEChallengerDelegate::MockTAKEChallengerDelegate
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:527,1
    - Dst: TestTAKEEngine
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - EAP
    - ECP
    argTypes:
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 529
      start: 524
    functionDepth: 4
    functionLinenumber: 524
    functionLinenumberEnd: 529
    functionName: test4
    functionSourceFile: /src/openweave-core/src/test-apps/TestTAKE.cpp
    functionUses: 0
    functionsReached:
    - MockTAKEChallengerDelegate::MockTAKEChallengerDelegate
    - TestTAKEEngine
    linkageType: ''
    returnType: void
    signature: test4(bool EAP, bool ECP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTAKEEngine
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - EAP
    - ECP
    argTypes:
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 535
      start: 530
    functionDepth: 4
    functionLinenumber: 530
    functionLinenumberEnd: 535
    functionName: test5
    functionSourceFile: /src/openweave-core/src/test-apps/TestTAKE.cpp
    functionUses: 0
    functionsReached:
    - TestTAKEEngine
    linkageType: ''
    returnType: void
    signature: test5(bool EAP, bool ECP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockTAKEChallengerDelegate::MockTAKEChallengerDelegate
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:542,1
    - Dst: MockTAKEChallengerDelegate::StoreTokenAuthData
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:545,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:548,1
    - Dst: fputs
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:549,1
    - Dst: fputs
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:550,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:550,1
    - Dst: fputs
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:551,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:552,1
    - Dst: TestTAKEEngine
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - EAP
    - ECP
    argTypes:
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 555
      start: 537
    functionDepth: 4
    functionLinenumber: 537
    functionLinenumberEnd: 555
    functionName: test6
    functionSourceFile: /src/openweave-core/src/test-apps/TestTAKE.cpp
    functionUses: 0
    functionsReached:
    - TestTAKEEngine
    - exit
    - MockTAKEChallengerDelegate::MockTAKEChallengerDelegate
    - fputs
    - fprintf
    - ErrorStr
    - MockTAKEChallengerDelegate::StoreTokenAuthData
    linkageType: ''
    returnType: void
    signature: test6(bool EAP, bool ECP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTAKEEngine
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - EAP
    - ECP
    argTypes:
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 562
      start: 557
    functionDepth: 4
    functionLinenumber: 557
    functionLinenumberEnd: 562
    functionName: test7
    functionSourceFile: /src/openweave-core/src/test-apps/TestTAKE.cpp
    functionUses: 0
    functionsReached:
    - TestTAKEEngine
    linkageType: ''
    returnType: void
    signature: test7(bool EAP, bool ECP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_init
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:575,1
    - Dst: nl::Weave::Platform::Security::InitSecureRandomDataSource
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:578,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:579,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:594,1
    - Dst: time
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:595,1
    - Dst: time
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:600,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:601,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTAKE.cpp:605,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 606
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 606
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestTAKE.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Platform::Security::InitSecureRandomDataSource
    - printf
    - tcpip_init
    - time
    - FAIL_ERROR
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: Abort
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 62
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: Abort()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:68,1
    - Dst: GetType
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:68,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:69,1
    - Dst: GetTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:69,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:70,1
    - Dst: GetLength
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:70,1
    - Dst: OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:72,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:73,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:75,1
    - Dst: GetContainerType
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - inSuite
    - ' reader'
    - type
    - tag
    - ' containerReader'
    argTypes:
    - nlTestSuite*
    - TLVReader
    - TLVType
    - uint64_t
    - TLVReader
    constantsTouched: []
    func_position:
      end: 76
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 76
    functionName: TestAndOpenContainer
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - OpenContainer
    - GetLength
    - NL_TEST_ASSERT
    - GetContainerType
    - GetType
    - GetTag
    linkageType: ''
    returnType: void
    signature: TestAndOpenContainer(nlTestSuite *inSuite, TLVReader& reader, TLVType
      type, uint64_t tag, TLVReader& containerReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:81,1
    - Dst: GetType
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:81,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:82,1
    - Dst: GetTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:82,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:83,1
    - Dst: GetLength
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:83,1
    - Dst: GetContainerType
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:85,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:87,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:88,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:90,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:91,1
    - Dst: GetContainerType
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - inSuite
    - ' t'
    - type
    - tag
    - ' outerContainerType'
    argTypes:
    - nlTestSuite*
    - T
    - TLVType
    - uint64_t
    - TLVType
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: TestAndEnterContainer
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - GetLength
    - NL_TEST_ASSERT
    - GetContainerType
    - GetType
    - GetTag
    linkageType: ''
    returnType: void
    signature: TestAndEnterContainer(nlTestSuite *inSuite, T& t, TLVType type, uint64_t
      tag, TLVType& outerContainerType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:97,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - ' t'
    argTypes:
    - nlTestSuite*
    - T
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: TestNext
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - Next
    linkageType: ''
    returnType: void
    signature: TestNext(nlTestSuite *inSuite, T& t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Skip
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:103,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - ' reader'
    argTypes:
    - nlTestSuite*
    - TLVReader
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: TestSkip
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - Skip
    - NL_TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: TestSkip(nlTestSuite *inSuite, TLVReader& reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Move
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:109,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - ' updater'
    argTypes:
    - nlTestSuite*
    - TLVUpdater
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: TestMove
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - Move
    linkageType: ''
    returnType: void
    signature: TestMove(nlTestSuite *inSuite, TLVUpdater& updater)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:118,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - ' t'
    argTypes:
    - nlTestSuite*
    - T
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: TestEnd
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - Next
    linkageType: ''
    returnType: void
    signature: TestEnd(nlTestSuite *inSuite, T& t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:126,1
    - Dst: CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:128,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - inSuite
    - ' reader'
    - ' containerReader'
    argTypes:
    - nlTestSuite*
    - TLVReader
    - TLVReader
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: TestEndAndCloseContainer
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - CloseContainer
    - NL_TEST_ASSERT
    - TestEnd
    linkageType: ''
    returnType: void
    signature: TestEndAndCloseContainer(nlTestSuite *inSuite, TLVReader& reader, TLVReader&
      containerReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:137,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:139,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:140,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:142,1
    - Dst: GetContainerType
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - inSuite
    - ' t'
    - outerContainerType
    argTypes:
    - nlTestSuite*
    - T
    - TLVType
    constantsTouched: []
    func_position:
      end: 143
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 143
    functionName: TestEndAndExitContainer
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - GetContainerType
    - NL_TEST_ASSERT
    - TestEnd
    - ExitContainer
    linkageType: ''
    returnType: void
    signature: TestEndAndExitContainer(nlTestSuite *inSuite, T& t, TLVType outerContainerType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:148,1
    - Dst: GetType
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:148,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:149,1
    - Dst: GetTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:149,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:150,1
    - Dst: GetLength
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:150,1
    - Dst: Get
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:153,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:154,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - inSuite
    - ' s'
    - type
    - tag
    - expectedVal
    argTypes:
    - nlTestSuite*
    - S
    - TLVType
    - uint64_t
    - T
    constantsTouched: []
    func_position:
      end: 157
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 157
    functionName: TestGet
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - GetLength
    - NL_TEST_ASSERT
    - GetType
    - GetTag
    - Get
    linkageType: ''
    returnType: void
    signature: TestGet(nlTestSuite *inSuite, S& s, TLVType type, uint64_t tag, T expectedVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:165,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:170,1
    - Dst: cb
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:174,1
    - Dst: TLVTypeIsContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:177,1
    - Dst: GetType
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:177,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:181,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:182,1
    - Dst: ForEachElement
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:184,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:186,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - inSuite
    - ' reader'
    - context
    argTypes:
    - nlTestSuite*
    - TLVReader
    - void*
    constantsTouched: []
    func_position:
      end: 190
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 190
    functionName: ForEachElement
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 1
    functionsReached:
    - EnterContainer
    - TLVTypeIsContainer
    - NL_TEST_ASSERT
    - ForEachElement
    - cb
    - GetType
    - ExitContainer
    - Next
    linkageType: ''
    returnType: void
    signature: ForEachElement(nlTestSuite *inSuite, TLVReader& reader, void *context,
      void (*cb)(nlTestSuite *inSuite, TLVReader& reader, void *context))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:206,1
    - Dst: GetType
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:206,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:207,1
    - Dst: GetTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:207,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:208,1
    - Dst: GetLength
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - inSuite
    - ' reader'
    - tag
    argTypes:
    - nlTestSuite*
    - TLVReader
    - uint64_t
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: TestNull
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - GetLength
    - GetTag
    - GetType
    linkageType: ''
    returnType: void
    signature: TestNull(nlTestSuite *inSuite, TLVReader& reader, uint64_t tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:213,1
    - Dst: GetType
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:213,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:214,1
    - Dst: GetTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:214,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:217,1
    - Dst: GetLength
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:217,1
    - Dst: GetString
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:221,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:222,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:224,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:224,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - inSuite
    - ' reader'
    - tag
    - expectedVal
    argTypes:
    - nlTestSuite*
    - TLVReader
    - uint64_t
    - char*
    constantsTouched: []
    func_position:
      end: 227
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 227
    functionName: TestString
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 2
    functionsReached:
    - memcmp
    - GetLength
    - GetString
    - NL_TEST_ASSERT
    - GetType
    - free
    - GetTag
    linkageType: ''
    returnType: void
    signature: TestString(nlTestSuite *inSuite, TLVReader& reader, uint64_t tag, const
      char *expectedVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:231,1
    - Dst: GetType
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:231,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:232,1
    - Dst: GetTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:232,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:235,1
    - Dst: GetLength
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:235,1
    - Dst: DupString
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:239,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:240,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:242,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:242,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - inSuite
    - ' reader'
    - tag
    - expectedVal
    argTypes:
    - nlTestSuite*
    - TLVReader
    - uint64_t
    - char*
    constantsTouched: []
    func_position:
      end: 245
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 245
    functionName: TestDupString
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - DupString
    - memcmp
    - GetLength
    - NL_TEST_ASSERT
    - GetType
    - free
    - GetTag
    linkageType: ''
    returnType: void
    signature: TestDupString(nlTestSuite *inSuite, TLVReader& reader, uint64_t tag,
      const char *expectedVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:249,1
    - Dst: GetType
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:249,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:250,1
    - Dst: GetTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:250,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:252,1
    - Dst: GetLength
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:252,1
    - Dst: DupBytes
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:255,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:256,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:258,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:258,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - inSuite
    - ' reader'
    - tag
    - expectedVal
    - expectedLen
    argTypes:
    - nlTestSuite*
    - TLVReader
    - uint64_t
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 261
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 261
    functionName: TestDupBytes
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - GetLength
    - NL_TEST_ASSERT
    - GetType
    - free
    - GetTag
    - DupBytes
    linkageType: ''
    returnType: void
    signature: TestDupBytes(nlTestSuite *inSuite, TLVReader& reader, uint64_t tag,
      const uint8_t *expectedVal, uint32_t expectedLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:268,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:270,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:270,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:270,1
    - Dst: PacketBuffer*::Next
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:275,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - inSuite
    - buf
    - expectedVal
    - expectedLen
    argTypes:
    - nlTestSuite*
    - PacketBuffer*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 279
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 279
    functionName: TestBufferContents
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - PacketBuffer*::Next
    - memcmp
    - PacketBuffer*::Start
    linkageType: ''
    returnType: void
    signature: TestBufferContents(nlTestSuite *inSuite, PacketBuffer *buf, const uint8_t
      *expectedVal, uint32_t expectedLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:362,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:362,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:363,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:365,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:365,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:366,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:368,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:368,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:369,1
    - Dst: TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:374,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:374,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:375,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:377,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:378,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:380,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:381,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:383,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:384,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:386,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:387,1
    - Dst: TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:392,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:393,1
    - Dst: TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:395,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:396,1
    - Dst: TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:402,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:403,1
    - Dst: TLVWriter::PutNull
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:405,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:405,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:406,1
    - Dst: TLVWriter::PutNull
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:408,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:408,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:409,1
    - Dst: TLVWriter::PutNull
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:411,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:412,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:417,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:417,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:418,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:420,1
    - Dst: CommonTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:420,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:421,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:423,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:424,1
    - Dst: TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:427,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:428,1
    - Dst: TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:431,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:432,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:435,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:435,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:436,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:438,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:438,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:439,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:441,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:441,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:442,1
    - Dst: CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:444,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:445,1
    - Dst: Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:447,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 2
    argNames:
    - inSuite
    - ' writer'
    argTypes:
    - nlTestSuite*
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 449
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 449
    functionName: WriteEncoding1
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - CommonTag
    - OpenContainer
    - TLVWriter::OpenContainer
    - TLVWriter::PutBoolean
    - NL_TEST_ASSERT
    - ContextTag
    - CloseContainer
    - ProfileTag
    - TLVWriter::CloseContainer
    - TLVWriter::EndContainer
    - TLVWriter::PutNull
    - TLVWriter::PutString
    - Finalize
    - TLVWriter::Put
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: void
    signature: WriteEncoding1(nlTestSuite *inSuite, TLVWriter& writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:456,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:456,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:457,1
    - Dst: TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:462,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:462,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:463,1
    - Dst: TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:465,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:466,1
    - Dst: CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:469,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:470,1
    - Dst: Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:472,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - inSuite
    - ' writer'
    argTypes:
    - nlTestSuite*
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 474
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 474
    functionName: WriteEmptyEncoding
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - OpenContainer
    - TLVWriter::OpenContainer
    - NL_TEST_ASSERT
    - CloseContainer
    - ProfileTag
    - TLVWriter::CloseContainer
    - Finalize
    linkageType: ''
    returnType: void
    signature: WriteEmptyEncoding(nlTestSuite *inSuite, TLVWriter& writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:478,1
    - Dst: TestAndOpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:483,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:483,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:485,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:487,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:487,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:489,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:491,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:491,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:493,1
    - Dst: TestAndOpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:498,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:498,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:500,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:502,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:503,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:504,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:505,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:506,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:507,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:508,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:509,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:511,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:513,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:514,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:515,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:516,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:518,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:520,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:521,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:523,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:525,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:526,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:528,1
    - Dst: TestAndOpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:533,1
    - Dst: TestEndAndCloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:535,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:538,1
    - Dst: TestAndOpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:543,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:545,1
    - Dst: TestNull
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:547,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:547,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:549,1
    - Dst: TestNull
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:551,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:551,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:553,1
    - Dst: TestNull
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:555,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:557,1
    - Dst: TestAndEnterContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:562,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:562,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:564,1
    - Dst: TestString
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:566,1
    - Dst: CommonTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:566,1
    - Dst: TestEndAndExitContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:568,1
    - Dst: TestEndAndCloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:571,1
    - Dst: TestEndAndCloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:574,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:577,1
    - Dst: TestString
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:579,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:579,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:581,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:583,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:583,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:584,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:584,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:586,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:588,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:588,1
    - Dst: TestEndAndCloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:590,1
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 61
    argCount: 2
    argNames:
    - inSuite
    - ' reader'
    argTypes:
    - nlTestSuite*
    - TLVReader
    constantsTouched: []
    func_position:
      end: 594
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 594
    functionName: ReadEncoding1
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - CommonTag
    - TestAndEnterContainer
    - TestEnd
    - TestNext
    - ContextTag
    - ProfileTag
    - TestEndAndCloseContainer
    - TestAndOpenContainer
    - TestGet
    - TestEndAndExitContainer
    - TestString
    - TestNull
    linkageType: ''
    returnType: void
    signature: ReadEncoding1(nlTestSuite *inSuite, TLVReader& reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:603,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:603,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:604,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:606,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:606,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:607,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:609,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:609,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:610,1
    - Dst: CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:612,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:613,1
    - Dst: OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:619,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:619,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:620,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:622,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:622,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:623,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:625,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:625,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:626,1
    - Dst: CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:628,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:629,1
    - Dst: Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:632,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 2
    argNames:
    - inSuite
    - ' writer'
    argTypes:
    - nlTestSuite*
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 634
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 634
    functionName: WriteEncoding2
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - OpenContainer
    - TLVWriter::PutBoolean
    - NL_TEST_ASSERT
    - CloseContainer
    - ProfileTag
    - Finalize
    linkageType: ''
    returnType: void
    signature: WriteEncoding2(nlTestSuite *inSuite, TLVWriter& writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:643,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:643,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:644,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:646,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:646,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:647,1
    - Dst: CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:649,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:650,1
    - Dst: Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:653,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - inSuite
    - ' writer'
    argTypes:
    - nlTestSuite*
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 655
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 655
    functionName: WriteEncoding3
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - OpenContainer
    - TLVWriter::PutBoolean
    - NL_TEST_ASSERT
    - CloseContainer
    - ProfileTag
    - Finalize
    linkageType: ''
    returnType: void
    signature: WriteEncoding3(nlTestSuite *inSuite, TLVWriter& writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestAndOpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:661,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:661,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:663,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:665,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:665,1
    - Dst: TestEndAndCloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - ' reader'
    argTypes:
    - nlTestSuite*
    - TLVReader
    constantsTouched: []
    func_position:
      end: 668
      start: 657
    functionDepth: 2
    functionLinenumber: 657
    functionLinenumberEnd: 668
    functionName: ReadEncoding3
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TestNext
    - ProfileTag
    - TestEndAndCloseContainer
    - TestAndOpenContainer
    - TestGet
    linkageType: ''
    returnType: void
    signature: ReadEncoding3(nlTestSuite *inSuite, TLVReader& reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:702,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:702,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:703,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:705,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:705,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:706,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:708,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:708,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:709,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:711,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:711,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:712,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:714,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:714,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:715,1
    - Dst: TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:720,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:720,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:721,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:723,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:723,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:724,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:726,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:726,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:727,1
    - Dst: TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:729,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:730,1
    - Dst: TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:736,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:736,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:737,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:739,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:739,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:740,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:742,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:742,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:743,1
    - Dst: TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:745,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:746,1
    - Dst: CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:749,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:750,1
    - Dst: OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:756,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:756,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:757,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:759,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:759,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:760,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:762,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:762,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:763,1
    - Dst: CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:765,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:766,1
    - Dst: Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:769,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 2
    argNames:
    - inSuite
    - ' writer'
    argTypes:
    - nlTestSuite*
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 771
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 771
    functionName: WriteEncoding5
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - OpenContainer
    - TLVWriter::OpenContainer
    - TLVWriter::PutBoolean
    - NL_TEST_ASSERT
    - CloseContainer
    - ProfileTag
    - TLVWriter::CloseContainer
    - Finalize
    linkageType: ''
    returnType: void
    signature: WriteEncoding5(nlTestSuite *inSuite, TLVWriter& writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVUpdater::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:793,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:794,1
    - Dst: TLVUpdater::SetImplicitProfileId
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:796,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:798,1
    - Dst: TestAndEnterContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:803,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:803,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:805,1
    - Dst: TestMove
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:808,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:810,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:813,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:813,1
    - Dst: TLVUpdater::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:814,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:814,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:815,1
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:818,1
    - Dst: TLVUpdater::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:822,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:822,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:823,1
    - Dst: TLVUpdater::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:826,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:826,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:827,1
    - Dst: TLVUpdater::StartContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:833,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:833,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:834,1
    - Dst: TLVUpdater::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:837,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:837,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:838,1
    - Dst: TLVUpdater::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:841,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:841,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:842,1
    - Dst: TLVUpdater::EndContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:845,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:846,1
    - Dst: TLVUpdater::StartContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:853,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:853,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:854,1
    - Dst: TLVUpdater::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:857,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:857,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:858,1
    - Dst: TLVUpdater::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:861,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:861,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:862,1
    - Dst: TLVUpdater::EndContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:865,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:866,1
    - Dst: TestEndAndExitContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:869,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:872,1
    - Dst: TestMove
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:875,1
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:877,1
    - Dst: TLVUpdater::Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:879,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:880,1
    - Dst: TLVUpdater::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 5
    argNames:
    - inSuite
    - buf
    - dataLen
    - maxLen
    - ' updatedLen'
    argTypes:
    - nlTestSuite*
    - uint8_t*
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 883
      start: 787
    functionDepth: 2
    functionLinenumber: 787
    functionLinenumberEnd: 883
    functionName: AppendEncoding2
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TestAndEnterContainer
    - TestEnd
    - TLVUpdater::GetLengthWritten
    - TestNext
    - TLVUpdater::Init
    - NL_TEST_ASSERT
    - TLVUpdater::PutBoolean
    - TLVUpdater::Finalize
    - ProfileTag
    - TLVUpdater::StartContainer
    - TLVUpdater::SetImplicitProfileId
    - TestGet
    - TLVUpdater::EndContainer
    - TestEndAndExitContainer
    - TestMove
    linkageType: ''
    returnType: void
    signature: AppendEncoding2(nlTestSuite *inSuite, uint8_t *buf, uint32_t dataLen,
      uint32_t maxLen, uint32_t& updatedLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:909,1
    - Dst: nl::Weave::TLV::Utilities::Find
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:917,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:917,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:918,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:920,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:921,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:924,1
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:927,1
    - Dst: TLVUpdater::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:930,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:931,1
    - Dst: nl::Weave::TLV::Utilities::Find
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:937,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:937,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:938,1
    - Dst: nl::Weave::TLV::Utilities::Find
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:942,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:942,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:943,1
    - Dst: nl::Weave::TLV::Utilities::Find
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:947,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:947,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:948,1
    - Dst: TLVUpdater::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:951,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:952,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:954,1
    - Dst: TestMove
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:957,1
    - Dst: TLVUpdater::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:962,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:962,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:963,1
    - Dst: TLVUpdater::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:966,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:966,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:967,1
    - Dst: TLVUpdater::StartContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:973,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:973,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:974,1
    - Dst: TLVUpdater::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:977,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:977,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:978,1
    - Dst: TLVUpdater::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:981,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:981,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:982,1
    - Dst: TLVUpdater::EndContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:985,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:986,1
    - Dst: TLVUpdater::StartContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:993,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:993,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:994,1
    - Dst: TLVUpdater::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:997,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:997,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:998,1
    - Dst: TLVUpdater::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1001,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1001,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1002,1
    - Dst: TLVUpdater::EndContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1005,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1006,1
    - Dst: TLVUpdater::MoveUntilEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1010,1
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1012,1
    - Dst: TLVUpdater::Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1014,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1015,1
    - Dst: TLVUpdater::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1017,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 53
    argCount: 6
    argNames:
    - inSuite
    - buf
    - dataLen
    - maxLen
    - ' updatedLen'
    - findContainer
    argTypes:
    - nlTestSuite*
    - uint8_t*
    - uint32_t
    - uint32_t
    - uint32_t
    - bool
    constantsTouched: []
    func_position:
      end: 1018
      start: 901
    functionDepth: 2
    functionLinenumber: 901
    functionLinenumberEnd: 1018
    functionName: FindAppendEncoding2
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - nl::Weave::TLV::Utilities::Find
    - TestEnd
    - TLVUpdater::GetLengthWritten
    - TLVReader::Next
    - TestNext
    - NL_TEST_ASSERT
    - TLVUpdater::Init
    - TLVUpdater::Finalize
    - TLVReader::EnterContainer
    - ProfileTag
    - TLVUpdater::MoveUntilEnd
    - TLVUpdater::StartContainer
    - TLVUpdater::PutBoolean
    - TLVUpdater::EndContainer
    - TestMove
    linkageType: ''
    returnType: void
    signature: FindAppendEncoding2(nlTestSuite *inSuite, uint8_t *buf, uint32_t dataLen,
      uint32_t maxLen, uint32_t& updatedLen, bool findContainer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVUpdater::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1026,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1027,1
    - Dst: TLVUpdater::SetImplicitProfileId
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1029,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1031,1
    - Dst: TestAndEnterContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1036,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1036,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1038,1
    - Dst: TestMove
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1041,1
    - Dst: TLVUpdater::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1045,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1045,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1046,1
    - Dst: TestEndAndExitContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1048,1
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1051,1
    - Dst: TLVUpdater::Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1053,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1054,1
    - Dst: TLVUpdater::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 5
    argNames:
    - inSuite
    - buf
    - dataLen
    - maxLen
    - ' updatedLen'
    argTypes:
    - nlTestSuite*
    - uint8_t*
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1057
      start: 1020
    functionDepth: 2
    functionLinenumber: 1020
    functionLinenumberEnd: 1057
    functionName: AppendEncoding3
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TestAndEnterContainer
    - TestEnd
    - TLVUpdater::GetLengthWritten
    - TestNext
    - TLVUpdater::Init
    - NL_TEST_ASSERT
    - TLVUpdater::Finalize
    - ProfileTag
    - TLVUpdater::SetImplicitProfileId
    - TLVUpdater::PutBoolean
    - TestEndAndExitContainer
    - TestMove
    linkageType: ''
    returnType: void
    signature: AppendEncoding3(nlTestSuite *inSuite, uint8_t *buf, uint32_t dataLen,
      uint32_t maxLen, uint32_t& updatedLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVUpdater::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1065,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1066,1
    - Dst: TLVUpdater::SetImplicitProfileId
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1068,1
    - Dst: TLVUpdater::StartContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1074,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1074,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1075,1
    - Dst: TLVUpdater::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1078,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1078,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1079,1
    - Dst: TLVUpdater::EndContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1082,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1083,1
    - Dst: TLVUpdater::Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1086,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1087,1
    - Dst: TLVUpdater::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - inSuite
    - buf
    - dataLen
    - maxLen
    - ' updatedLen'
    argTypes:
    - nlTestSuite*
    - uint8_t*
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1090
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1090
    functionName: AppendEncoding4
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVUpdater::GetLengthWritten
    - TLVUpdater::Init
    - NL_TEST_ASSERT
    - TLVUpdater::Finalize
    - ProfileTag
    - TLVUpdater::SetImplicitProfileId
    - TLVUpdater::PutBoolean
    - TLVUpdater::EndContainer
    - TLVUpdater::StartContainer
    linkageType: ''
    returnType: void
    signature: AppendEncoding4(nlTestSuite *inSuite, uint8_t *buf, uint32_t dataLen,
      uint32_t maxLen, uint32_t& updatedLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVUpdater::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1098,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1099,1
    - Dst: TLVUpdater::SetImplicitProfileId
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1101,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1103,1
    - Dst: TestAndEnterContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1108,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1108,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1110,1
    - Dst: TestMove
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1112,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1114,1
    - Dst: TestMove
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1116,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1118,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1121,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1121,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1123,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1127,1
    - Dst: TLVUpdater::GetReader
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1135,1
    - Dst: TestAndEnterContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1137,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1137,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1139,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1143,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1143,1
    - Dst: TestMove
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1144,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1147,1
    - Dst: TestEndAndExitContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1151,1
    - Dst: TLVUpdater::MoveUntilEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1155,1
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1157,1
    - Dst: TLVUpdater::Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1159,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1160,1
    - Dst: TLVUpdater::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 5
    argNames:
    - inSuite
    - buf
    - dataLen
    - maxLen
    - ' updatedLen'
    argTypes:
    - nlTestSuite*
    - uint8_t*
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1163
      start: 1092
    functionDepth: 2
    functionLinenumber: 1092
    functionLinenumberEnd: 1163
    functionName: DeleteEncoding5
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TestAndEnterContainer
    - TestEnd
    - TLVUpdater::GetLengthWritten
    - TestNext
    - TLVUpdater::Init
    - NL_TEST_ASSERT
    - TLVUpdater::Finalize
    - ProfileTag
    - TLVUpdater::GetReader
    - TLVReader::GetTag
    - TLVUpdater::MoveUntilEnd
    - TLVUpdater::SetImplicitProfileId
    - TestGet
    - TestEndAndExitContainer
    - TestMove
    linkageType: ''
    returnType: void
    signature: DeleteEncoding5(nlTestSuite *inSuite, uint8_t *buf, uint32_t dataLen,
      uint32_t maxLen, uint32_t& updatedLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1167,1
    - Dst: TestAndOpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1172,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1172,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1174,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1176,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1176,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1178,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1180,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1180,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1182,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1184,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1184,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1186,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1188,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1188,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1190,1
    - Dst: TestAndOpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1195,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1195,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1197,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1199,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1199,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1201,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1203,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1203,1
    - Dst: TestEndAndCloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1205,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1208,1
    - Dst: TestAndOpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1213,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1213,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1215,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1217,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1217,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1219,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1221,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1221,1
    - Dst: TestEndAndCloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1223,1
    - Dst: TestEndAndCloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1226,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1229,1
    - Dst: TestAndOpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1234,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1234,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1236,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1238,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1238,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1240,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1242,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1242,1
    - Dst: TestEndAndCloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1244,1
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 2
    argNames:
    - inSuite
    - ' reader'
    argTypes:
    - nlTestSuite*
    - TLVReader
    constantsTouched: []
    func_position:
      end: 1248
      start: 1165
    functionDepth: 2
    functionLinenumber: 1165
    functionLinenumberEnd: 1248
    functionName: ReadAppendedEncoding2
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TestEnd
    - TestNext
    - ProfileTag
    - TestEndAndCloseContainer
    - TestAndOpenContainer
    - TestGet
    linkageType: ''
    returnType: void
    signature: ReadAppendedEncoding2(nlTestSuite *inSuite, TLVReader& reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1252,1
    - Dst: TestAndOpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1257,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1257,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1259,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1261,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1261,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1263,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1265,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1265,1
    - Dst: TestEndAndCloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1267,1
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - inSuite
    - ' reader'
    argTypes:
    - nlTestSuite*
    - TLVReader
    constantsTouched: []
    func_position:
      end: 1271
      start: 1250
    functionDepth: 2
    functionLinenumber: 1250
    functionLinenumberEnd: 1271
    functionName: ReadAppendedEncoding3
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TestEnd
    - TestNext
    - ProfileTag
    - TestEndAndCloseContainer
    - TestAndOpenContainer
    - TestGet
    linkageType: ''
    returnType: void
    signature: ReadAppendedEncoding3(nlTestSuite *inSuite, TLVReader& reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1275,1
    - Dst: TestAndOpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1280,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1280,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1282,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1284,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1284,1
    - Dst: TestEndAndCloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1286,1
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - inSuite
    - ' reader'
    argTypes:
    - nlTestSuite*
    - TLVReader
    constantsTouched: []
    func_position:
      end: 1290
      start: 1273
    functionDepth: 2
    functionLinenumber: 1273
    functionLinenumberEnd: 1290
    functionName: ReadAppendedEncoding4
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TestEnd
    - TestNext
    - ProfileTag
    - TestEndAndCloseContainer
    - TestAndOpenContainer
    - TestGet
    linkageType: ''
    returnType: void
    signature: ReadAppendedEncoding4(nlTestSuite *inSuite, TLVReader& reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1294,1
    - Dst: TestAndOpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1299,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1299,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1301,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1303,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1303,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1305,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1307,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1307,1
    - Dst: TestEndAndCloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1309,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1312,1
    - Dst: TestAndOpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1317,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1317,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1319,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1321,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1321,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1323,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1325,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1325,1
    - Dst: TestEndAndCloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1327,1
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - inSuite
    - ' reader'
    argTypes:
    - nlTestSuite*
    - TLVReader
    constantsTouched: []
    func_position:
      end: 1331
      start: 1292
    functionDepth: 2
    functionLinenumber: 1292
    functionLinenumberEnd: 1331
    functionName: ReadDeletedEncoding5
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TestEnd
    - TestNext
    - ProfileTag
    - TestEndAndCloseContainer
    - TestAndOpenContainer
    - TestGet
    linkageType: ''
    returnType: void
    signature: ReadDeletedEncoding5(nlTestSuite *inSuite, TLVReader& reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1342,1
    - Dst: WriteEncoding1
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1345,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1353,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1354,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1356,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1359,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1360,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1360,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1362,1
    - Dst: ReadEncoding1
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1365,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1366
      start: 1336
    functionDepth: 3
    functionLinenumber: 1336
    functionLinenumberEnd: 1366
    functionName: CheckSimpleWriteRead
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - memcmp
    - WriteEncoding1
    - NL_TEST_ASSERT
    - printf
    - ReadEncoding1
    - TLVWriter::Init
    linkageType: ''
    returnType: void
    signature: CheckSimpleWriteRead(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1384,1
    - Dst: vprintf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1386,1
    - Dst: va_end
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - aFormat
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1389
      start: 1380
    functionDepth: 0
    functionLinenumber: 1380
    functionLinenumberEnd: 1389
    functionName: SimpleDumpWriter
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - vprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: SimpleDumpWriter(const char *aFormat, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1400,1
    - Dst: WriteEncoding1
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1403,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1407,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1408,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1408,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1410,1
    - Dst: nl::Weave::TLV::Debug::Dump
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1413
      start: 1394
    functionDepth: 2
    functionLinenumber: 1394
    functionLinenumberEnd: 1413
    functionName: CheckPrettyPrinter
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - memcmp
    - WriteEncoding1
    - NL_TEST_ASSERT
    - nl::Weave::TLV::Debug::Dump
    - TLVWriter::Init
    linkageType: ''
    returnType: void
    signature: CheckPrettyPrinter(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1420,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1421,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1421,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1425,1
    - Dst: WriteEncoding5
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1427,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1430,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1431,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1432
      start: 1418
    functionDepth: 1
    functionLinenumber: 1418
    functionLinenumberEnd: 1432
    functionName: CheckDataMacro
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - TLVWriter::Init
    - memcmp
    - WriteEncoding5
    linkageType: ''
    returnType: void
    signature: CheckDataMacro(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - aReader
    - aDepth
    - aContext
    argTypes:
    - TLVReader
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 1441
      start: 1434
    functionDepth: 0
    functionLinenumber: 1434
    functionLinenumberEnd: 1441
    functionName: NullIterateHandler
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NullIterateHandler(const TLVReader &aReader, size_t aDepth, void *aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1451,1
    - Dst: TLVTypeIsContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1453,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1453,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1455,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1456,1
    - Dst: nl::Weave::TLV::Utilities::Find
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - aReader
    - aDepth
    - aContext
    argTypes:
    - TLVReader
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 1473
      start: 1443
    functionDepth: 2
    functionLinenumber: 1443
    functionLinenumberEnd: 1473
    functionName: FindContainerWithElement
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - nl::Weave::TLV::Utilities::Find
    - TLVTypeIsContainer
    - TLVReader::GetType
    - TLVReader::EnterContainer
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: FindContainerWithElement(const TLVReader &aReader, size_t aDepth, void
      *aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1485,1
    - Dst: WriteEncoding1
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1488,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1492,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1493,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1493,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1495,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1498,1
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1499,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1500,1
    - Dst: nl::Weave::TLV::Utilities::Find
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1504,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1504,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1505,1
    - Dst: nl::Weave::TLV::Utilities::Find
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1508,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1508,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1509,1
    - Dst: nl::Weave::TLV::Utilities::Find
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1512,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1512,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1513,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1519,1
    - Dst: WriteEncoding2
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1522,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1525,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1525,1
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1529,1
    - Dst: nl::Weave::TLV::Utilities::Find
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1531,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1532,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1534,1
    - Dst: nl::Weave::TLV::Utilities::Find
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1535,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1536,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1537,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1537,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1538,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1538,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1538,1
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1541,1
    - Dst: nl::Weave::TLV::Utilities::Find
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1542,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1543,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1544,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1544,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1545,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1545,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1545,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1551,1
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1552,1
    - Dst: nl::Weave::TLV::Utilities::Count
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1554,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1555,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1556,1
    - Dst: nl::Weave::TLV::Utilities::Count
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1559,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1560,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1561,1
    - Dst: nl::Weave::TLV::Utilities::Iterate
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1564,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1566
      start: 1478
    functionDepth: 2
    functionLinenumber: 1478
    functionLinenumberEnd: 1566
    functionName: CheckWeaveTLVUtilities
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - nl::Weave::TLV::Utilities::Find
    - WriteEncoding2
    - memcmp
    - WriteEncoding1
    - nl::Weave::TLV::Utilities::Count
    - NL_TEST_ASSERT
    - TLVReader::GetType
    - ProfileTag
    - TLVWriter::GetLengthWritten
    - Init
    - TLVReader::GetTag
    - nl::Weave::TLV::Utilities::Iterate
    - TLVWriter::Init
    - Next
    linkageType: ''
    returnType: void
    signature: CheckWeaveTLVUtilities(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1578,1
    - Dst: WriteEmptyEncoding
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1581,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1585,1
    - Dst: nl::Weave::TLV::Utilities::Find
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1590,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1590,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1592
      start: 1571
    functionDepth: 2
    functionLinenumber: 1571
    functionLinenumberEnd: 1592
    functionName: CheckWeaveTLVEmptyFind
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - nl::Weave::TLV::Utilities::Find
    - NL_TEST_ASSERT
    - ProfileTag
    - TLVWriter::Init
    - WriteEmptyEncoding
    linkageType: ''
    returnType: void
    signature: CheckWeaveTLVEmptyFind(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1640,1
    - Dst: WriteEncoding2
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1643,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1648,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1652,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1653,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1655,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1658,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1659,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1659,1
    - Dst: AppendEncoding2
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1662,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1665,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1669,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1670,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1672,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1675,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1676,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1676,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1678,1
    - Dst: ReadAppendedEncoding2
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1681,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1682
      start: 1632
    functionDepth: 3
    functionLinenumber: 1632
    functionLinenumberEnd: 1682
    functionName: WriteAppendReadTest0
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - WriteEncoding2
    - memcmp
    - NL_TEST_ASSERT
    - printf
    - ReadAppendedEncoding2
    - TLVWriter::Init
    - AppendEncoding2
    linkageType: ''
    returnType: void
    signature: WriteAppendReadTest0(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1692,1
    - Dst: WriteEncoding2
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1695,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1700,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1704,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1705,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1707,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1710,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1711,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1711,1
    - Dst: FindAppendEncoding2
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1714,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1717,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1721,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1722,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1724,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1727,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1728,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1728,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1730,1
    - Dst: ReadAppendedEncoding2
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1733,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - inSuite
    - findContainer
    argTypes:
    - nlTestSuite*
    - bool
    constantsTouched: []
    func_position:
      end: 1734
      start: 1684
    functionDepth: 3
    functionLinenumber: 1684
    functionLinenumberEnd: 1734
    functionName: WriteFindAppendReadTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - WriteEncoding2
    - FindAppendEncoding2
    - memcmp
    - NL_TEST_ASSERT
    - printf
    - ReadAppendedEncoding2
    - TLVWriter::Init
    linkageType: ''
    returnType: void
    signature: WriteFindAppendReadTest(nlTestSuite *inSuite, bool findContainer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1761,1
    - Dst: WriteEncoding3
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1764,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1769,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1773,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1774,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1776,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1779,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1780,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1780,1
    - Dst: AppendEncoding3
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1783,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1786,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1790,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1791,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1793,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1796,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1797,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1797,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1799,1
    - Dst: ReadAppendedEncoding3
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1802,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1803
      start: 1753
    functionDepth: 3
    functionLinenumber: 1753
    functionLinenumberEnd: 1803
    functionName: WriteAppendReadTest1
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - memcmp
    - NL_TEST_ASSERT
    - AppendEncoding3
    - WriteEncoding3
    - printf
    - ReadAppendedEncoding3
    - TLVWriter::Init
    linkageType: ''
    returnType: void
    signature: WriteAppendReadTest1(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1818,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1821,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1825,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1826,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1828,1
    - Dst: AppendEncoding4
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1832,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1835,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1839,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1840,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1842,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1845,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1846,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1846,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1849,1
    - Dst: ReadAppendedEncoding4
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1852,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1853
      start: 1813
    functionDepth: 3
    functionLinenumber: 1813
    functionLinenumberEnd: 1853
    functionName: AppendReadTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - memcmp
    - NL_TEST_ASSERT
    - AppendEncoding4
    - memset
    - printf
    - ReadAppendedEncoding4
    linkageType: ''
    returnType: void
    signature: AppendReadTest(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1901,1
    - Dst: WriteEncoding5
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1904,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1912,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1913,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1915,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1918,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1919,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1919,1
    - Dst: DeleteEncoding5
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1922,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1924,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1925,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1925,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1927,1
    - Dst: ReadDeletedEncoding5
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1930,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1931
      start: 1893
    functionDepth: 3
    functionLinenumber: 1893
    functionLinenumberEnd: 1931
    functionName: WriteDeleteReadTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - DeleteEncoding5
    - memcmp
    - ReadDeletedEncoding5
    - NL_TEST_ASSERT
    - WriteEncoding5
    - printf
    - TLVWriter::Init
    linkageType: ''
    returnType: void
    signature: WriteDeleteReadTest(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1938,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1942,1
    - Dst: WriteEncoding1
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1945,1
    - Dst: TestBufferContents
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1947,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1949,1
    - Dst: ReadEncoding1
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1952,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1954,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1954,1
    - Dst: ReadEncoding1
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1957,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1960
      start: 1936
    functionDepth: 3
    functionLinenumber: 1936
    functionLinenumberEnd: 1960
    functionName: CheckPacketBuffer
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - WriteEncoding1
    - nl::Weave::System::PacketBuffer::Free
    - PacketBuffer*::MaxDataLength
    - ReadEncoding1
    - TestBufferContents
    - TLVWriter::Init
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: CheckPacketBuffer(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestTLVContext *>
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1964,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1968,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1969,1
    - Dst: TLVReader::Skip
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1971,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1972,1
    - Dst: TLVReader::GetLengthRead
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - inBuffer
    - inAppData
    - inReader
    argTypes:
    - WeaveCircularTLVBuffer
    - void*
    - TLVReader
    constantsTouched: []
    func_position:
      end: 1978
      start: 1962
    functionDepth: 0
    functionLinenumber: 1962
    functionLinenumberEnd: 1978
    functionName: CountEvictedMembers
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Skip
    - TLVReader::Next
    - static_cast<TestTLVContext *>
    - NL_TEST_ASSERT
    - TLVReader::GetLengthRead
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CountEvictedMembers(WeaveCircularTLVBuffer &inBuffer, void * inAppData,
      TLVReader &inReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestTLVContext *>
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1990,1
    - Dst: CircularTLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:1992,1
    - Dst: CircularTLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2001,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2001,1
    - Dst: WriteEncoding3
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2003,1
    - Dst: WriteEncoding3
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2005,1
    - Dst: WriteEncoding3
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2007,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2009,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2010,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2011,1
    - Dst: WeaveCircularTLVBuffer::DataLength
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2011,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2012,1
    - Dst: WeaveCircularTLVBuffer::DataLength
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2012,1
    - Dst: CircularTLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2012,1
    - Dst: CircularTLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2015,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2018,1
    - Dst: ReadEncoding3
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2020,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2022,1
    - Dst: ReadEncoding3
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2024,1
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2028
      start: 1980
    functionDepth: 3
    functionLinenumber: 1980
    functionLinenumberEnd: 2028
    functionName: CheckCircularTLVBufferSimple
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - ReadEncoding3
    - TestEnd
    - TestNext
    - CircularTLVWriter::Init
    - static_cast<TestTLVContext *>
    - NL_TEST_ASSERT
    - CircularTLVWriter::GetLengthWritten
    - WeaveCircularTLVBuffer::DataLength
    - ProfileTag
    - WriteEncoding3
    - CircularTLVReader::Init
    - CircularTLVWriter::PutBoolean
    linkageType: ''
    returnType: void
    signature: CheckCircularTLVBufferSimple(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestTLVContext *>
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2040,1
    - Dst: CircularTLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2042,1
    - Dst: CircularTLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2051,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2051,1
    - Dst: WriteEncoding3
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2053,1
    - Dst: WriteEncoding3
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2055,1
    - Dst: WriteEncoding3
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2057,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2059,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2060,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2061,1
    - Dst: WeaveCircularTLVBuffer::DataLength
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2061,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2062,1
    - Dst: WeaveCircularTLVBuffer::DataLength
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2062,1
    - Dst: CircularTLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2062,1
    - Dst: CircularTLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2065,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2068,1
    - Dst: ReadEncoding3
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2070,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2072,1
    - Dst: ReadEncoding3
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2074,1
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2078
      start: 2030
    functionDepth: 3
    functionLinenumber: 2030
    functionLinenumberEnd: 2078
    functionName: CheckCircularTLVBufferStartMidway
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - ReadEncoding3
    - TestEnd
    - TestNext
    - CircularTLVWriter::Init
    - static_cast<TestTLVContext *>
    - NL_TEST_ASSERT
    - CircularTLVWriter::GetLengthWritten
    - WeaveCircularTLVBuffer::DataLength
    - ProfileTag
    - WriteEncoding3
    - CircularTLVReader::Init
    - CircularTLVWriter::PutBoolean
    linkageType: ''
    returnType: void
    signature: CheckCircularTLVBufferStartMidway(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestTLVContext *>
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2088,1
    - Dst: CircularTLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2093,1
    - Dst: CircularTLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2102,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2102,1
    - Dst: WriteEncoding3
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2104,1
    - Dst: WriteEncoding3
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2106,1
    - Dst: WriteEncoding3
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2108,1
    - Dst: WriteEncoding3
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2110,1
    - Dst: WriteEncoding3
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2113,1
    - Dst: WriteEncoding3
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2115,1
    - Dst: WriteEncoding3
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2117,1
    - Dst: WriteEncoding3
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2119,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2121,1
    - Dst: CircularTLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2121,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2122,1
    - Dst: WeaveCircularTLVBuffer::DataLength
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2122,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2123,1
    - Dst: WeaveCircularTLVBuffer::DataLength
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2123,1
    - Dst: CircularTLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2123,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2124,1
    - Dst: CircularTLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2127,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2130,1
    - Dst: ReadEncoding3
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2132,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2134,1
    - Dst: ReadEncoding3
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2136,1
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2140
      start: 2080
    functionDepth: 3
    functionLinenumber: 2080
    functionLinenumberEnd: 2140
    functionName: CheckCircularTLVBufferEvictStraddlingEvent
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - ReadEncoding3
    - TestEnd
    - TestNext
    - CircularTLVWriter::Init
    - static_cast<TestTLVContext *>
    - NL_TEST_ASSERT
    - CircularTLVWriter::GetLengthWritten
    - WeaveCircularTLVBuffer::DataLength
    - ProfileTag
    - WriteEncoding3
    - CircularTLVReader::Init
    - CircularTLVWriter::PutBoolean
    linkageType: ''
    returnType: void
    signature: CheckCircularTLVBufferEvictStraddlingEvent(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestTLVContext *>
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2144,1
    - Dst: CircularTLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2154,1
    - Dst: CircularTLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2164,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2164,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2165,1
    - Dst: CircularTLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2167,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2167,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2168,1
    - Dst: CircularTLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2170,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2171,1
    - Dst: CircularTLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2173,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2176,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2177,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2177,1
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2180,1
    - Dst: CircularTLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2183,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2183,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2184,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2186,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2186,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2187,1
    - Dst: CircularTLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2197,1
    - Dst: CircularTLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2200,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2200,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2201,1
    - Dst: CircularTLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2203,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2204,1
    - Dst: CircularTLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2206,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2209,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2210,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2210,1
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2211,1
    - Dst: WeaveCircularTLVBuffer::EvictHead
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2213,1
    - Dst: CircularTLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2215,1
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2217,1
    - Dst: CircularTLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2221,1
    - Dst: CircularTLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2231,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2231,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2232,1
    - Dst: CircularTLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2234,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2234,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2235,1
    - Dst: CircularTLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2237,1
    - Dst: CircularTLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2240,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2243,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2244,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2244,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2246,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2247,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2247,1
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2249,1
    - Dst: WeaveCircularTLVBuffer::EvictHead
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2253,1
    - Dst: CircularTLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2256,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2259,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2260,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2260,1
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2263,1
    - Dst: CircularTLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2267,1
    - Dst: CircularTLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2270,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2270,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2271,1
    - Dst: CircularTLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2273,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2274,1
    - Dst: CircularTLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2277,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2280,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2281,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2281,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2283,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2284,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2284,1
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2286,1
    - Dst: WeaveCircularTLVBuffer::EvictHead
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2291,1
    - Dst: WeaveCircularTLVBuffer::EvictHead
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2292,1
    - Dst: CircularTLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2294,1
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 81
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2299
      start: 2142
    functionDepth: 1
    functionLinenumber: 2142
    functionLinenumberEnd: 2299
    functionName: CheckCircularTLVBufferEdge
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TestEnd
    - TestNext
    - CircularTLVWriter::Init
    - static_cast<TestTLVContext *>
    - NL_TEST_ASSERT
    - CircularTLVWriter::Finalize
    - CircularTLVWriter::OpenContainer
    - TLVWriter::PutBoolean
    - WeaveCircularTLVBuffer::EvictHead
    - ProfileTag
    - CircularTLVReader::Init
    - TestGet
    - CircularTLVWriter::PutBoolean
    linkageType: ''
    returnType: void
    signature: CheckCircularTLVBufferEdge(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2311,1
    - Dst: snprintf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2312,1
    - Dst: TLVWriter::PutStringF
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2314,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2314,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2315,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2317,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2318,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2320,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2320,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2321,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2322,1
    - Dst: TLVReader::GetString
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2324,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2325,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2327,1
    - Dst: strncmp
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2328
      start: 2300
    functionDepth: 0
    functionLinenumber: 2300
    functionLinenumberEnd: 2328
    functionName: CheckWeaveTLVPutStringF
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - TLVWriter::PutStringF
    - TLVReader::Next
    - TLVWriter::Finalize
    - NL_TEST_ASSERT
    - strncmp
    - ProfileTag
    - TLVReader::GetString
    - TLVWriter::GetLengthWritten
    - snprintf
    - TLVWriter::Init
    linkageType: ''
    returnType: void
    signature: CheckWeaveTLVPutStringF(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CircularTLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2344,1
    - Dst: snprintf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2345,1
    - Dst: CircularTLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2347,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2347,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2348,1
    - Dst: CircularTLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2350,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2351,1
    - Dst: CircularTLVWriter::PutStringF
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2353,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2353,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2354,1
    - Dst: CircularTLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2356,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2357,1
    - Dst: CircularTLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2359,1
    - Dst: CircularTLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2362,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2363,1
    - Dst: CircularTLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2365,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2366,1
    - Dst: CircularTLVReader::GetString
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2368,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2369,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2371,1
    - Dst: strncmp
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2371,1
    - Dst: snprintf
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2377,1
    - Dst: CircularTLVWriter::PutStringF
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2379,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2379,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2380,1
    - Dst: CircularTLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2382,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2383,1
    - Dst: CircularTLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2385,1
    - Dst: CircularTLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2386,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2387,1
    - Dst: CircularTLVReader::GetString
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2389,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2390,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2392,1
    - Dst: strncmp
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2393
      start: 2330
    functionDepth: 0
    functionLinenumber: 2330
    functionLinenumberEnd: 2393
    functionName: CheckWeaveTLVPutStringFCircular
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - CircularTLVWriter::Init
    - NL_TEST_ASSERT
    - CircularTLVWriter::Finalize
    - CircularTLVReader::GetString
    - strncmp
    - ProfileTag
    - CircularTLVWriter::PutStringF
    - snprintf
    - CircularTLVReader::Init
    - CircularTLVReader::Next
    - CircularTLVWriter::PutBoolean
    linkageType: ''
    returnType: void
    signature: CheckWeaveTLVPutStringFCircular(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CircularTLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2406,1
    - Dst: CircularTLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2408,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2409,1
    - Dst: CircularTLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2411,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2412,1
    - Dst: CircularTLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2414,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2415,1
    - Dst: CircularTLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2417,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2418,1
    - Dst: CircularTLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2420,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2421,1
    - Dst: CircularTLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2423,1
    - Dst: CircularTLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2425,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2426,1
    - Dst: CircularTLVReader::Skip
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2428,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2431
      start: 2395
    functionDepth: 0
    functionLinenumber: 2395
    functionLinenumberEnd: 2431
    functionName: CheckWeaveTLVSkipCircular
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - CircularTLVReader::Skip
    - CircularTLVWriter::Init
    - NL_TEST_ASSERT
    - CircularTLVWriter::Finalize
    - CircularTLVReader::Init
    - CircularTLVReader::Next
    - CircularTLVWriter::PutString
    linkageType: ''
    returnType: void
    signature: CheckWeaveTLVSkipCircular(nlTestSuite *inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2441,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2450,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2450,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2452,1
    - Dst: WriteEncoding1
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2456,1
    - Dst: TestBufferContents
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2458,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2460,1
    - Dst: ReadEncoding1
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2463,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2465,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2469
      start: 2436
    functionDepth: 3
    functionLinenumber: 2436
    functionLinenumberEnd: 2469
    functionName: CheckBufferOverflow
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - WriteEncoding1
    - nl::Weave::System::PacketBuffer::Free
    - PacketBuffer*::SetStart
    - ReadEncoding1
    - PacketBuffer*::Start
    - TestBufferContents
    - TLVWriter::Init
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: CheckBufferOverflow(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2500,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2503,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2504,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2506,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2507
      start: 2495
    functionDepth: 0
    functionLinenumber: 2495
    functionLinenumberEnd: 2507
    functionName: CheckSapphire10921
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - NL_TEST_ASSERT
    - TLVReader::GetTag
    - TLVReader::Next
    linkageType: ''
    returnType: void
    signature: CheckSapphire10921(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2520,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2523,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2525,1
    - Dst: TLVWriter::CopyContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2528,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2529,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2532,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2535,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2541,1
    - Dst: TLVWriter::CopyContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2544,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2544,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2545,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2548,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 2554
      start: 2512
    functionDepth: 1
    functionLinenumber: 2512
    functionLinenumberEnd: 2554
    functionName: TestWeaveTLVWriterCopyContainer
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - TLVWriter::CopyContainer
    - TestNext
    - NL_TEST_ASSERT
    - ProfileTag
    - TLVWriter::Init
    linkageType: ''
    returnType: void
    signature: TestWeaveTLVWriterCopyContainer(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2568,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2571,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2572,1
    - Dst: WriteEncoding1
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2576,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2579,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2580,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2582,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2583,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2585,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2587,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2590,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2591,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2597,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2600,1
    - Dst: TLVWriter::CopyElement
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2602,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2603,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2606,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2607,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2609,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2610,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2612,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2614,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2617,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 2618
      start: 2559
    functionDepth: 1
    functionLinenumber: 2559
    functionLinenumberEnd: 2618
    functionName: TestWeaveTLVWriterCopyElement
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - WriteEncoding1
    - TestNext
    - TLVWriter::Finalize
    - NL_TEST_ASSERT
    - TLVWriter::CopyElement
    - TLVWriter::GetLengthWritten
    - TLVWriter::Init
    - TLVWriter::EndContainer
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: void
    signature: TestWeaveTLVWriterCopyElement(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2626,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2626,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2627,1
    - Dst: Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2629,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2629,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2630,1
    - Dst: Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2632,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2632,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2633,1
    - Dst: OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2635,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2635,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2636,1
    - Dst: TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2641,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2641,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2642,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2644,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2645,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2647,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2648,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2650,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2651,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2653,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2654,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2656,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2657,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2659,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2660,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2662,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2663,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2665,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2666,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2669,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2670,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2672,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2673,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2675,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2676,1
    - Dst: TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2678,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2679,1
    - Dst: CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2682,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2683,1
    - Dst: Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2685,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 3
    argNames:
    - inSuite
    - ' writer'
    - preserveSize
    argTypes:
    - nlTestSuite*
    - TLVWriter
    - bool
    constantsTouched: []
    func_position:
      end: 2687
      start: 2620
    functionDepth: 0
    functionLinenumber: 2620
    functionLinenumberEnd: 2687
    functionName: PreserveSizeWrite
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - OpenContainer
    - TLVWriter::OpenContainer
    - NL_TEST_ASSERT
    - ContextTag
    - CloseContainer
    - ProfileTag
    - TLVWriter::CloseContainer
    - Put
    - Finalize
    - TLVWriter::Put
    linkageType: ''
    returnType: void
    signature: PreserveSizeWrite(nlTestSuite *inSuite, TLVWriter& writer, bool preserveSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2697,1
    - Dst: PreserveSizeWrite
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2700,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 2704
      start: 2692
    functionDepth: 1
    functionLinenumber: 2692
    functionLinenumberEnd: 2704
    functionName: TestWeaveTLVWriterPreserveSize
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - TLVWriter::Init
    - PreserveSizeWrite
    linkageType: ''
    returnType: void
    signature: TestWeaveTLVWriterPreserveSize(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2715,1
    - Dst: TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2719,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2719,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2720,1
    - Dst: TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2723,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2724,1
    - Dst: TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2727,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2727,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2728,1
    - Dst: OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2730,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2730,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2731,1
    - Dst: TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2734,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2735,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2739,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2739,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2740,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2744,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2745,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2749,1
    - Dst: TLVWriter::PutPreEncodedContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2750,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2750,1
    - Dst: TLVReader::GetReadPoint
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2750,1
    - Dst: TLVReader::GetRemainingLength
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2750,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 2752
      start: 2709
    functionDepth: 0
    functionLinenumber: 2709
    functionLinenumberEnd: 2752
    functionName: TestWeaveTLVWriterErrorHandling
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - OpenContainer
    - TLVWriter::OpenContainer
    - TLVWriter::PutPreEncodedContainer
    - NL_TEST_ASSERT
    - TLVReader::GetRemainingLength
    - ProfileTag
    - TLVWriter::CloseContainer
    - TLVReader::GetReadPoint
    - TLVWriter::Init
    - TLVWriter::EndContainer
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: void
    signature: TestWeaveTLVWriterErrorHandling(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestWeaveTLVWriterCopyContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2759,1
    - Dst: TestWeaveTLVWriterCopyElement
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2761,1
    - Dst: TestWeaveTLVWriterPreserveSize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2763,1
    - Dst: TestWeaveTLVWriterErrorHandling
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2766
      start: 2757
    functionDepth: 2
    functionLinenumber: 2757
    functionLinenumberEnd: 2766
    functionName: CheckWeaveTLVWriter
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TestWeaveTLVWriterPreserveSize
    - TestWeaveTLVWriterErrorHandling
    - TestWeaveTLVWriterCopyContainer
    - TestWeaveTLVWriterCopyElement
    linkageType: ''
    returnType: void
    signature: CheckWeaveTLVWriter(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2774,1
    - Dst: TestSkip
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2777,1
    - Dst: TLVReader::GetReadPoint
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2779,1
    - Dst: TestSkip
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2782,1
    - Dst: TLVReader::GetReadPoint
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2784,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 2787
      start: 2768
    functionDepth: 1
    functionLinenumber: 2768
    functionLinenumberEnd: 2787
    functionName: SkipNonContainer
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - TestSkip
    - NL_TEST_ASSERT
    - TLVReader::GetReadPoint
    linkageType: ''
    returnType: void
    signature: SkipNonContainer(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2795,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2798,1
    - Dst: TestSkip
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2800,1
    - Dst: TLVReader::GetReadPoint
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2802,1
    - Dst: TestSkip
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2805,1
    - Dst: TLVReader::GetReadPoint
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2807,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 2810
      start: 2789
    functionDepth: 1
    functionLinenumber: 2789
    functionLinenumberEnd: 2810
    functionName: SkipContainer
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - TestNext
    - TestSkip
    - NL_TEST_ASSERT
    - TLVReader::GetReadPoint
    linkageType: ''
    returnType: void
    signature: SkipContainer(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2816,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2819,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2821,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 2823
      start: 2812
    functionDepth: 1
    functionLinenumber: 2812
    functionLinenumberEnd: 2823
    functionName: NextContainer
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - NL_TEST_ASSERT
    - TLVReader::Next
    - TestNext
    linkageType: ''
    returnType: void
    signature: NextContainer(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SkipNonContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2830,1
    - Dst: SkipContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2832,1
    - Dst: NextContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 2835
      start: 2828
    functionDepth: 2
    functionLinenumber: 2828
    functionLinenumberEnd: 2835
    functionName: TestWeaveTLVReaderSkip
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - SkipNonContainer
    - SkipContainer
    - NextContainer
    linkageType: ''
    returnType: void
    signature: TestWeaveTLVReaderSkip(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2844,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2847,1
    - Dst: TestAndOpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2852,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2852,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2854,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2856,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2856,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2858,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2860,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2860,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2862,1
    - Dst: TestAndOpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2867,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2867,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2869,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2871,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2872,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2873,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2874,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2875,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2876,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2878,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2880,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2881,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2882,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2883,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2885,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2887,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2888,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2890,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2892,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2893,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2895,1
    - Dst: TestAndOpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2900,1
    - Dst: TestEndAndCloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2902,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2905,1
    - Dst: TestAndOpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2910,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2912,1
    - Dst: TestNull
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2914,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2914,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2916,1
    - Dst: TestNull
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2918,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2918,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2920,1
    - Dst: TestNull
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2922,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2924,1
    - Dst: TestAndEnterContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2929,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2929,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2931,1
    - Dst: TestDupString
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2933,1
    - Dst: CommonTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2933,1
    - Dst: TestEndAndExitContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2935,1
    - Dst: TestEndAndCloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2938,1
    - Dst: TestEndAndCloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2941,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2944,1
    - Dst: TestDupBytes
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2946,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2946,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2948,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2950,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2950,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2951,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2951,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2953,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2955,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2955,1
    - Dst: TestEndAndCloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2957,1
    - Dst: TestEnd
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 61
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 2961
      start: 2840
    functionDepth: 2
    functionLinenumber: 2840
    functionLinenumberEnd: 2961
    functionName: TestWeaveTLVReaderDup
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - CommonTag
    - TestAndEnterContainer
    - TestEnd
    - TestNext
    - TestDupBytes
    - ContextTag
    - ProfileTag
    - TestEndAndCloseContainer
    - TestAndOpenContainer
    - TestGet
    - TestEndAndExitContainer
    - TestDupString
    - TestNull
    linkageType: ''
    returnType: void
    signature: TestWeaveTLVReaderDup(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2971,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2976,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2977,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2981,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2982,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2986,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2987,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2991,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2992,1
    - Dst: TLVReader::GetBytes
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2996,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:2997,1
    - Dst: TLVReader::GetString
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3001,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3002,1
    - Dst: TLVReader::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3006,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3007,1
    - Dst: TLVReader::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3010,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3011,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3015,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3016,1
    - Dst: TLVReader::DupString
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3020,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3021,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3022,1
    - Dst: TLVReader::GetDataPtr
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3026,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3027,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 3029
      start: 2965
    functionDepth: 0
    functionLinenumber: 2965
    functionLinenumberEnd: 3029
    functionName: TestWeaveTLVReaderErrorHandling
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - TLVReader::OpenContainer
    - NL_TEST_ASSERT
    - TLVReader::CloseContainer
    - TLVReader::GetBytes
    - TLVReader::EnterContainer
    - TLVReader::GetString
    - free
    - TLVReader::DupString
    - TLVReader::GetDataPtr
    - TLVReader::Get
    linkageType: ''
    returnType: void
    signature: TestWeaveTLVReaderErrorHandling(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3045,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3048,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3049,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3052,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3054,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3056,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3058,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 3060
      start: 3035
    functionDepth: 1
    functionLinenumber: 3035
    functionLinenumberEnd: 3060
    functionName: TestWeaveTLVReaderTruncatedReads
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - TestNext
    - NL_TEST_ASSERT
    - TestGet
    - TLVWriter::Init
    - TLVWriter::Put
    - TLVReader::Get
    linkageType: ''
    returnType: void
    signature: TestWeaveTLVReaderTruncatedReads(nlTestSuite * inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3071,1
    - Dst: PreserveSizeWrite
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3074,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3076,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3078,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3080,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3080,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3082,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3084,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3084,1
    - Dst: TestNext
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3086,1
    - Dst: TestGet
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3088,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 3089
      start: 3065
    functionDepth: 1
    functionLinenumber: 3065
    functionLinenumberEnd: 3089
    functionName: TestWeaveTLVReaderInPractice
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - TestNext
    - ProfileTag
    - PreserveSizeWrite
    - TestGet
    - TLVWriter::Init
    linkageType: ''
    returnType: void
    signature: TestWeaveTLVReaderInPractice(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVTypeIsContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3097,1
    - Dst: GetType
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3097,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3104,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3105,1
    - Dst: ForEachElement
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3106,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3107,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3108,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3109,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3110,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3113,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3114,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3117,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3118,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3118,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3118,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3119,1
    - Dst: TLVReader::GetReadPoint
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3119,1
    - Dst: TLVReader::GetReadPoint
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - inSuite
    - ' reader'
    - context
    argTypes:
    - nlTestSuite*
    - TLVReader
    - void*
    constantsTouched: []
    func_position:
      end: 3121
      start: 3091
    functionDepth: 2
    functionLinenumber: 3091
    functionLinenumberEnd: 3121
    functionName: TestWeaveTLVReader_NextOverContainer_ProcessElement
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVTypeIsContainer
    - TLVReader::Next
    - NL_TEST_ASSERT
    - ForEachElement
    - TLVReader::GetType
    - TLVReader::EnterContainer
    - GetType
    - TLVReader::ExitContainer
    - TLVReader::GetReadPoint
    linkageType: ''
    returnType: void
    signature: TestWeaveTLVReader_NextOverContainer_ProcessElement(nlTestSuite *inSuite,
      TLVReader& reader, void *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3130,1
    - Dst: ForEachElement
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 3134
      start: 3126
    functionDepth: 2
    functionLinenumber: 3126
    functionLinenumberEnd: 3134
    functionName: TestWeaveTLVReader_NextOverContainer
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - ForEachElement
    linkageType: ''
    returnType: void
    signature: TestWeaveTLVReader_NextOverContainer(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVTypeIsContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3142,1
    - Dst: GetType
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3142,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3149,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3150,1
    - Dst: ForEachElement
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3151,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3152,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3153,1
    - Dst: TLVReader::Skip
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3156,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3157,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3160,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3160,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3160,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3161,1
    - Dst: TLVReader::GetReadPoint
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3161,1
    - Dst: TLVReader::GetReadPoint
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - inSuite
    - ' reader'
    - context
    argTypes:
    - nlTestSuite*
    - TLVReader
    - void*
    constantsTouched: []
    func_position:
      end: 3163
      start: 3136
    functionDepth: 2
    functionLinenumber: 3136
    functionLinenumberEnd: 3163
    functionName: TestWeaveTLVReader_SkipOverContainer_ProcessElement
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Skip
    - TLVTypeIsContainer
    - NL_TEST_ASSERT
    - ForEachElement
    - TLVReader::GetType
    - TLVReader::EnterContainer
    - GetType
    - TLVReader::ExitContainer
    - TLVReader::GetReadPoint
    linkageType: ''
    returnType: void
    signature: TestWeaveTLVReader_SkipOverContainer_ProcessElement(nlTestSuite *inSuite,
      TLVReader& reader, void *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3172,1
    - Dst: ForEachElement
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 3176
      start: 3168
    functionDepth: 2
    functionLinenumber: 3168
    functionLinenumberEnd: 3176
    functionName: TestWeaveTLVReader_SkipOverContainer
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - ForEachElement
    linkageType: ''
    returnType: void
    signature: TestWeaveTLVReader_SkipOverContainer(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestWeaveTLVReaderSkip
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3183,1
    - Dst: TestWeaveTLVReaderDup
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3185,1
    - Dst: TestWeaveTLVReaderErrorHandling
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3187,1
    - Dst: TestWeaveTLVReaderTruncatedReads
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3189,1
    - Dst: TestWeaveTLVReaderInPractice
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3191,1
    - Dst: TestWeaveTLVReader_NextOverContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3193,1
    - Dst: TestWeaveTLVReader_SkipOverContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 3196
      start: 3181
    functionDepth: 3
    functionLinenumber: 3181
    functionLinenumberEnd: 3196
    functionName: CheckWeaveTLVReader
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TestWeaveTLVReaderTruncatedReads
    - TestWeaveTLVReaderErrorHandling
    - TestWeaveTLVReader_SkipOverContainer
    - TestWeaveTLVReader_NextOverContainer
    - TestWeaveTLVReaderDup
    - TestWeaveTLVReaderInPractice
    - TestWeaveTLVReaderSkip
    linkageType: ''
    returnType: void
    signature: CheckWeaveTLVReader(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3208,1
    - Dst: TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3211,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3212,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3215,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3216,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3218,1
    - Dst: static_cast<int8_t>
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3218,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3219,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3221,1
    - Dst: static_cast<int16_t>
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3221,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3222,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3224,1
    - Dst: static_cast<int32_t>
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3224,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3225,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3227,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3227,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3228,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3230,1
    - Dst: static_cast<float>
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3230,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3231,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3233,1
    - Dst: static_cast<double>
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3233,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3234,1
    - Dst: TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3237,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3238,1
    - Dst: TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3240,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3241,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3244,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3245,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3247,1
    - Dst: static_cast<int8_t>
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3247,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3248,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3250,1
    - Dst: static_cast<int16_t>
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3250,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3251,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3253,1
    - Dst: static_cast<int32_t>
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3253,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3254,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3256,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3256,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3257,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3259,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3259,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3260,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3262,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3262,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3263,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3265,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3265,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3266,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3268,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3268,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3269,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3271,1
    - Dst: static_cast<float>
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3271,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3272,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3274,1
    - Dst: static_cast<double>
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3274,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3275,1
    - Dst: TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3278,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3279,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3281,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 3283
      start: 3201
    functionDepth: 0
    functionLinenumber: 3201
    functionLinenumberEnd: 3283
    functionName: TestItems
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - static_cast<float>
    - static_cast<uint16_t>
    - static_cast<int8_t>
    - TLVWriter::OpenContainer
    - TLVWriter::PutBoolean
    - NL_TEST_ASSERT
    - static_cast<int16_t>
    - static_cast<uint32_t>
    - TLVWriter::Finalize
    - static_cast<int32_t>
    - static_cast<uint8_t>
    - TLVWriter::CloseContainer
    - static_cast<double>
    - TLVWriter::Init
    - TLVWriter::Put
    - static_cast<int64_t>
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: TestItems(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3294,1
    - Dst: TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3297,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3298,1
    - Dst: TLVWriter::GetContainerType
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3300,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3301,1
    - Dst: TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3303,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3304,1
    - Dst: TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3306,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3307,1
    - Dst: TLVWriter::GetContainerType
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3309,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3310,1
    - Dst: TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3312,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3313,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3315,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 3317
      start: 3288
    functionDepth: 0
    functionLinenumber: 3288
    functionLinenumberEnd: 3317
    functionName: TestContainers
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TLVWriter::OpenContainer
    - TLVWriter::Finalize
    - NL_TEST_ASSERT
    - TLVWriter::GetContainerType
    - TLVWriter::CloseContainer
    - TLVWriter::Init
    linkageType: ''
    returnType: void
    signature: TestContainers(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestItems
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3324,1
    - Dst: TestContainers
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 3326
      start: 3322
    functionDepth: 1
    functionLinenumber: 3322
    functionLinenumberEnd: 3326
    functionName: CheckWeaveTLVBasics
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - TestItems
    - TestContainers
    linkageType: ''
    returnType: void
    signature: CheckWeaveTLVBasics(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteAppendReadTest0
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3333,1
    - Dst: WriteAppendReadTest1
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3335,1
    - Dst: WriteFindAppendReadTest
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3337,1
    - Dst: WriteFindAppendReadTest
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3339,1
    - Dst: AppendReadTest
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3341,1
    - Dst: WriteDeleteReadTest
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 3344
      start: 3331
    functionDepth: 4
    functionLinenumber: 3331
    functionLinenumberEnd: 3344
    functionName: CheckWeaveUpdater
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - WriteAppendReadTest1
    - WriteDeleteReadTest
    - AppendReadTest
    - WriteFindAppendReadTest
    - WriteAppendReadTest0
    linkageType: ''
    returnType: void
    signature: CheckWeaveUpdater(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::CircularTLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3358,1
    - Dst: SetCloseContainerReserved
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - maxLen
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 3360
      start: 3356
    functionDepth: 1
    functionLinenumber: 3356
    functionLinenumberEnd: 3360
    functionName: OptimisticTLVWriter::Init
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - SetCloseContainerReserved
    - nl::Weave::TLV::CircularTLVWriter::Init
    linkageType: ''
    returnType: void
    signature: OptimisticTLVWriter::Init(uint8_t *buf, uint32_t maxLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3388,1
    - Dst: TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3390,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3391,1
    - Dst: TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3393,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3394,1
    - Dst: PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3396,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3396,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3397,1
    - Dst: TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3399,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3400,1
    - Dst: TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3402,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3403,1
    - Dst: OptimisticTLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3405,1
    - Dst: OptimisticTLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3407,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3408,1
    - Dst: TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3410,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3411,1
    - Dst: PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3413,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3413,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3414,1
    - Dst: TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3416,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3417,1
    - Dst: OptimisticTLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3419,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3420,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3424,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3426,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3427,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3429,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3430,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3432,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3432,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3433,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3435,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3436,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3438,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3439,1
    - Dst: OptimisticTLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3441,1
    - Dst: OptimisticTLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3443,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3444,1
    - Dst: OptimisticTLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3446,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3447,1
    - Dst: OptimisticTLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3449,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3449,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3450,1
    - Dst: OptimisticTLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3452,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3453,1
    - Dst: OptimisticTLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3455,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3456,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3460,1
    - Dst: TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3461,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3461,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3462,1
    - Dst: TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3464,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3465,1
    - Dst: OptimisticTLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3467,1
    - Dst: OptimisticTLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3468,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3468,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3469,1
    - Dst: OptimisticTLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3471,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3472,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3474,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3476,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3476,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3477,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3479,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3480,1
    - Dst: OptimisticTLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3482,1
    - Dst: OptimisticTLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3484,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3484,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3485,1
    - Dst: OptimisticTLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3487,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3488,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3492,1
    - Dst: TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3494,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3494,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3495,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3497,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3498,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3506,1
    - Dst: TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3508,1
    - Dst: TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3511,1
    - Dst: PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3514,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3514,1
    - Dst: TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3517,1
    - Dst: TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3520,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3522,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3526,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3529,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3532,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3535,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3535,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3538,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3541,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTLV.cpp:3543,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 95
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 3545
      start: 3362
    functionDepth: 2
    functionLinenumber: 3362
    functionLinenumberEnd: 3545
    functionName: CheckCloseContainerReserve
    functionSourceFile: /src/openweave-core/src/test-apps/TestTLV.cpp
    functionUses: 0
    functionsReached:
    - OptimisticTLVWriter::Init
    - OptimisticTLVWriter::EndContainer
    - OptimisticTLVWriter::CloseContainer
    - TLVWriter::OpenContainer
    - TLVWriter::PutBoolean
    - NL_TEST_ASSERT
    - OptimisticTLVWriter::StartContainer
    - ProfileTag
    - TLVWriter::CloseContainer
    - PutBoolean
    - OptimisticTLVWriter::PutBoolean
    - TLVWriter::Init
    - TLVWriter::EndContainer
    - OptimisticTLVWriter::OpenContainer
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: void
    signature: CheckCloseContainerReserve(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - msgName
    - msgBuf
    argTypes:
    - char*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: MessageMutator::MutateMessage
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MessageMutator::MutateMessage(const char *msgName, PacketBuffer *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msgType
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: MessageExternalFuzzer::MessageExternalFuzzer
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MessageExternalFuzzer::MessageExternalFuzzer(const char *msgType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:85,1
    - Dst: MessageExternalFuzzer::SaveCorpus
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:90,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:90,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:92,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:93,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - msgType
    - msgBuf
    argTypes:
    - char*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: MessageExternalFuzzer::MutateMessage
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - PacketBuffer*::SetDataLength
    - strcmp
    - memcpy
    - MessageExternalFuzzer::SaveCorpus
    linkageType: ''
    returnType: void
    signature: MessageExternalFuzzer::MutateMessage(const char *msgType, PacketBuffer
      *msgBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:99,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:100,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:101,1
    - Dst: fwrite
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:101,1
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - inBuf
    - size
    - fileName
    argTypes:
    - uint8_t*
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: MessageExternalFuzzer::SaveCorpus
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 1
    functionsReached:
    - VerifyOrQuit
    - fopen
    - fwrite
    - fclose
    linkageType: ''
    returnType: void
    signature: MessageExternalFuzzer::SaveCorpus(const uint8_t *inBuf, size_t size,
      const char *fileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: '& MessageExternalFuzzer::SaveCorpusFile(bool val)'
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MessageExternalFuzzer
    signature: '& MessageExternalFuzzer::SaveCorpusFile(bool val)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - val
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: '& MessageExternalFuzzer::FuzzInput(const uint8_t *val, size_t size)'
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MessageExternalFuzzer
    signature: '& MessageExternalFuzzer::FuzzInput(const uint8_t *val, size_t size)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - testName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 121
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 121
    functionName: PASEEngineTest::PASEEngineTest
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: PASEEngineTest::PASEEngineTest(const char *testName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: PASEEngineTest::TestName
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*PASEEngineTest::TestName() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: PASEEngineTest::ProposedConfig
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: PASEEngineTest::ProposedConfig() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: '& PASEEngineTest::ProposedConfig(uint32_t val)'
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PASEEngineTest
    signature: '& PASEEngineTest::ProposedConfig(uint32_t val)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: PASEEngineTest::InitiatorAllowedConfigs
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: PASEEngineTest::InitiatorAllowedConfigs() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: '& PASEEngineTest::InitiatorAllowedConfigs(uint32_t val)'
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PASEEngineTest
    signature: '& PASEEngineTest::InitiatorAllowedConfigs(uint32_t val)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: PASEEngineTest::ResponderAllowedConfigs
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: PASEEngineTest::ResponderAllowedConfigs() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: '& PASEEngineTest::ResponderAllowedConfigs(uint32_t val)'
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PASEEngineTest
    signature: '& PASEEngineTest::ResponderAllowedConfigs(uint32_t val)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: PASEEngineTest::InitiatorPassword
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* PASEEngineTest::InitiatorPassword() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: '& PASEEngineTest::InitiatorPassword(const char* val)'
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PASEEngineTest
    signature: '& PASEEngineTest::InitiatorPassword(const char* val)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: PASEEngineTest::ResponderPassword
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* PASEEngineTest::ResponderPassword() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: '& PASEEngineTest::ResponderPassword(const char* val)'
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PASEEngineTest
    signature: '& PASEEngineTest::ResponderPassword(const char* val)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: PASEEngineTest::ExpectReconfig
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: PASEEngineTest::ExpectReconfig() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - expectedConfig
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: '& PASEEngineTest::ExpectReconfig(uint32_t expectedConfig)'
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PASEEngineTest
    signature: '& PASEEngineTest::ExpectReconfig(uint32_t expectedConfig)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: PASEEngineTest::ExpectedConfig
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: PASEEngineTest::ExpectedConfig() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: PASEEngineTest::PerformReconfig
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: PASEEngineTest::PerformReconfig() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: '& PASEEngineTest::PerformReconfig(bool val)'
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PASEEngineTest
    signature: '& PASEEngineTest::PerformReconfig(bool val)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: PASEEngineTest::ConfirmKey
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: PASEEngineTest::ConfirmKey() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: '& PASEEngineTest::ConfirmKey(bool val)'
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PASEEngineTest
    signature: '& PASEEngineTest::ConfirmKey(bool val)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExpectError
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: '& PASEEngineTest::ExpectError(WEAVE_ERROR err)'
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached:
    - ExpectError
    linkageType: ''
    returnType: PASEEngineTest
    signature: '& PASEEngineTest::ExpectError(WEAVE_ERROR err)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - opName
    - err
    argTypes:
    - char*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 173
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 173
    functionName: '& PASEEngineTest::ExpectError(const char *opName, WEAVE_ERROR err)'
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PASEEngineTest
    signature: '& PASEEngineTest::ExpectError(const char *opName, WEAVE_ERROR err)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:180,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - opName
    - err
    argTypes:
    - char*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 186
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 186
    functionName: PASEEngineTest::IsExpectedError
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: PASEEngineTest::IsExpectedError(const char *opName, WEAVE_ERROR err)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 188
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 188
    functionName: PASEEngineTest::IsSuccessExpected
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: PASEEngineTest::IsSuccessExpected() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mutator
    argTypes:
    - MessageMutator*
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: '& PASEEngineTest::Mutator(MessageMutator *mutator)'
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PASEEngineTest
    signature: '& PASEEngineTest::Mutator(MessageMutator *mutator)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    functionName: PASEEngineTest::LogMessageData
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: PASEEngineTest::LogMessageData() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: '& PASEEngineTest::LogMessageData(bool val)'
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PASEEngineTest
    signature: '& PASEEngineTest::LogMessageData(bool val)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - responderEng
    argTypes:
    - WeavePASEEngine
    constantsTouched: []
    func_position:
      end: 229
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 229
    functionName: PASEEngineTest::setAllowedResponderConfigs
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: PASEEngineTest::setAllowedResponderConfigs(WeavePASEEngine &responderEng)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveFabricState::WeaveFabricState
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:244,1
    - Dst: WeaveFabricState::WeaveFabricState
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:245,1
    - Dst: PASEEngineTest::LogMessageData
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:256,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:258,1
    - Dst: PASEEngineTest::TestName
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:258,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:259,1
    - Dst: PASEEngineTest::ProposedConfig
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:259,1
    - Dst: PASEEngineTest::ExpectedConfig
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:259,1
    - Dst: WeavePASEEngine::Init
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:261,1
    - Dst: WeaveFabricState::Init
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:262,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:263,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:265,1
    - Dst: WeavePASEEngine::Init
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:268,1
    - Dst: WeaveFabricState::Init
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:269,1
    - Dst: PASEEngineTest::setAllowedResponderConfigs
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:270,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:272,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:276,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:277,1
    - Dst: WeavePASEEngine::GenerateInitiatorStep1
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:280,1
    - Dst: PASEEngineTest::ProposedConfig
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:280,1
    - Dst: PASEEngineTest::IsExpectedError
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:282,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:284,1
    - Dst: MutateMessage
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:288,1
    - Dst: PASEEngineTest::LogMessageData
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:289,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:291,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:291,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:292,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:292,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:292,1
    - Dst: WeavePASEEngine::ProcessInitiatorStep1
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:296,1
    - Dst: PASEEngineTest::IsExpectedError
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:297,1
    - Dst: PASEEngineTest::ExpectReconfig
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:300,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:302,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:303,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:308,1
    - Dst: WeavePASEEngine::GenerateResponderReconfigure
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:309,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:310,1
    - Dst: WeavePASEEngine::Reset
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:312,1
    - Dst: MutateMessage
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:315,1
    - Dst: PASEEngineTest::LogMessageData
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:317,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:319,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:319,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:320,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:320,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:320,1
    - Dst: WeavePASEEngine::ProcessResponderReconfigure
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:326,1
    - Dst: PASEEngineTest::IsExpectedError
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:327,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:332,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:333,1
    - Dst: WeaveFabricState::Shutdown
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:337,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:343,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:346,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:347,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:352,1
    - Dst: WeavePASEEngine::GenerateResponderStep1
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:353,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:354,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:357,1
    - Dst: WeavePASEEngine::GenerateResponderStep2
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:358,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:359,1
    - Dst: MutateMessage
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:362,1
    - Dst: PASEEngineTest::LogMessageData
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:364,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:366,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:366,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:367,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:367,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:367,1
    - Dst: MutateMessage
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:371,1
    - Dst: PASEEngineTest::LogMessageData
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:373,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:375,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:375,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:376,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:376,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:376,1
    - Dst: WeavePASEEngine::ProcessResponderStep1
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:382,1
    - Dst: PASEEngineTest::IsExpectedError
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:383,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:385,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:386,1
    - Dst: WeavePASEEngine::ProcessResponderStep2
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:390,1
    - Dst: PASEEngineTest::IsExpectedError
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:391,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:393,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:394,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:400,1
    - Dst: WeavePASEEngine::GenerateInitiatorStep2
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:401,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:402,1
    - Dst: MutateMessage
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:406,1
    - Dst: PASEEngineTest::LogMessageData
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:408,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:410,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:410,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:411,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:411,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:411,1
    - Dst: WeavePASEEngine::ProcessInitiatorStep2
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:416,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:417,1
    - Dst: PASEEngineTest::IsExpectedError
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:420,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:424,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:427,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:436,1
    - Dst: WeavePASEEngine::GenerateResponderKeyConfirm
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:437,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:438,1
    - Dst: MutateMessage
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:443,1
    - Dst: PASEEngineTest::LogMessageData
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:445,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:447,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:447,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:448,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:448,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:448,1
    - Dst: WeavePASEEngine::ProcessResponderKeyConfirm
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:453,1
    - Dst: PASEEngineTest::IsExpectedError
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:455,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:458,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:459,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:464,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:465,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:467,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:468,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:469,1
    - Dst: WeavePASEEngine::GetSessionKey
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:471,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:472,1
    - Dst: WeavePASEEngine::GetSessionKey
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:474,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:475,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:477,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:477,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:479,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:479,1
    - Dst: WeaveFabricState::Shutdown
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:483,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:484,1
    - Dst: WeaveFabricState::Shutdown
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:485,1
    - Dst: SuccessOrQuit
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:486,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:489,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:492,1
    - Dst: WeavePASEEngine::Shutdown
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:495,1
    - Dst: WeavePASEEngine::Shutdown
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:496,1
    - Dst: WeaveFabricState::Shutdown
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:497,1
    - Dst: WeaveFabricState::Shutdown
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:498,1
    - Dst: PASEEngineTest::LogMessageData
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:499,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:500,1
    - Dst: PASEEngineTest::TestName
      Src: /src/openweave-core/src/test-apps/PASEEngineTest.cpp:500,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 167
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 501
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 501
    functionName: PASEEngineTest::Run
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
    functionUses: 0
    functionsReached:
    - WeavePASEEngine::GenerateResponderReconfigure
    - WeavePASEEngine::Reset
    - WeavePASEEngine::GenerateInitiatorStep2
    - WeaveFabricState::Shutdown
    - printf
    - PASEEngineTest::setAllowedResponderConfigs
    - WeaveFabricState::Init
    - WeavePASEEngine::GenerateInitiatorStep1
    - WeavePASEEngine::GenerateResponderKeyConfirm
    - WeavePASEEngine::GenerateResponderStep1
    - nl::Weave::System::PacketBuffer::New
    - PASEEngineTest::IsExpectedError
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrQuit
    - WeavePASEEngine::ProcessInitiatorStep1
    - WeavePASEEngine::ProcessResponderStep2
    - WeavePASEEngine::Shutdown
    - PASEEngineTest::ExpectedConfig
    - WeavePASEEngine::GetSessionKey
    - WeavePASEEngine::ProcessResponderReconfigure
    - WeavePASEEngine::Init
    - WeavePASEEngine::ProcessResponderKeyConfirm
    - strlen
    - WeaveFabricState::WeaveFabricState
    - MutateMessage
    - SuccessOrQuit
    - PASEEngineTest::LogMessageData
    - PacketBuffer*::DataLength
    - memcmp
    - WeavePASEEngine::ProcessInitiatorStep2
    - WeavePASEEngine::GenerateResponderStep2
    - PASEEngineTest::ExpectReconfig
    - PASEEngineTest::ProposedConfig
    - DumpMemory
    - PacketBuffer*::Start
    - PASEEngineTest::TestName
    - WeavePASEEngine::ProcessResponderStep1
    linkageType: ''
    returnType: void
    signature: PASEEngineTest::Run()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:65,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - dst
    - src
    - size
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: MOCK_strlcpy
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 4
    functionsReached:
    - strlen
    - strncpy
    linkageType: ''
    returnType: size_t
    signature: MOCK_strlcpy(char * dst, const char * src, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aEngine
    argTypes:
    - TraitSchemaEngine*
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: MockTraitDataSink::MockTraitDataSink
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MockTraitDataSink::MockTraitDataSink(const TraitSchemaEngine * aEngine)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aEngine
    argTypes:
    - TraitSchemaEngine*
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: MockTraitUpdatableDataSink::MockTraitUpdatableDataSink
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MockTraitUpdatableDataSink::MockTraitUpdatableDataSink(const TraitSchemaEngine
      * aEngine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLeafData
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - aHandle
    - aTagToWrite
    - aWriter
    - aIsNull
    - aIsPresent
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - nl::Weave::TLV::TLVWriter
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 98
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 98
    functionName: MockTraitDataSourceDelegate::GetData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - GetLeafData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "MockTraitDataSourceDelegate::GetData(PropertyPathHandle aHandle,\n
      \                                    uint64_t aTagToWrite,\n                                     nl::Weave::TLV::TLVWriter
      &aWriter,\n                                     bool &aIsNull,\n                                     bool
      &aIsPresent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: LocaleSettingsTraitDataSink::LocaleSettingsTraitDataSink
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: LocaleSettingsTraitDataSink::LocaleSettingsTraitDataSink()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::GetString
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:114,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:115,1
    - Dst: strncmp
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:116,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:118,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:119,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:122,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - aLeafHandle
    - aReader
    argTypes:
    - PropertyPathHandle
    - TLVReader
    constantsTouched: []
    func_position:
      end: 132
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 132
    functionName: LocaleSettingsTraitDataSink::SetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - strncmp
    - TLVReader::GetString
    - memcpy
    - WeaveLogDetail
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LocaleSettingsTraitDataSink::SetLeafData(PropertyPathHandle aLeafHandle,
      TLVReader &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:141,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:142,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:144,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:148,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:149,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - aLeafHandle
    - aTagToWrite
    - aWriter
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 156
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 156
    functionName: LocaleSettingsTraitDataSink::GetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - ExitNow
    - TLVWriter::PutString
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LocaleSettingsTraitDataSink::GetLeafData(PropertyPathHandle aLeafHandle,
      uint64_t aTagToWrite, TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aDictionaryHandle
    - aContext
    - aKey
    argTypes:
    - PropertyPathHandle
    - uintptr_t
    - PropertyDictionaryKey
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: LocaleSettingsTraitDataSink::GetNextDictionaryItemKey
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LocaleSettingsTraitDataSink::GetNextDictionaryItemKey(PropertyPathHandle
      aDictionaryHandle, uintptr_t &aContext, PropertyDictionaryKey &aKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: LocaleCapabilitiesTraitDataSink::LocaleCapabilitiesTraitDataSink
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: LocaleCapabilitiesTraitDataSink::LocaleCapabilitiesTraitDataSink()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aType
    - aInParam
    argTypes:
    - uint16_t
    - void*
    constantsTouched: []
    func_position:
      end: 175
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 175
    functionName: LocaleCapabilitiesTraitDataSink::OnEvent
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LocaleCapabilitiesTraitDataSink::OnEvent(uint16_t aType, void *aInParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:190,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:190,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:192,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:193,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:195,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:197,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:197,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:198,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:198,1
    - Dst: TLVReader::GetString
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:200,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:201,1
    - Dst: strncmp
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:202,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:204,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:205,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:208,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:214,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:220,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:221,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:225,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:226,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - aLeafHandle
    - aReader
    argTypes:
    - PropertyPathHandle
    - TLVReader
    constantsTouched: []
    func_position:
      end: 231
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 231
    functionName: LocaleCapabilitiesTraitDataSink::SetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Next
    - TLVReader::GetType
    - strncmp
    - VerifyOrExit
    - ExitNow
    - TLVReader::EnterContainer
    - TLVReader::GetString
    - TLVReader::ExitContainer
    - memcpy
    - TLVReader::GetTag
    - WeaveLogDetail
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LocaleCapabilitiesTraitDataSink::SetLeafData(PropertyPathHandle aLeafHandle,
      TLVReader &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:241,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:242,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:245,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:246,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:248,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:251,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:252,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:255,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:256,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - aLeafHandle
    - aTagToWrite
    - aWriter
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 263
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 263
    functionName: LocaleCapabilitiesTraitDataSink::GetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - ExitNow
    - TLVWriter::PutString
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveLogFunctError
    - TLVWriter::EndContainer
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LocaleCapabilitiesTraitDataSink::GetLeafData(PropertyPathHandle aLeafHandle,
      uint64_t aTagToWrite, TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aDictionaryHandle
    - aContext
    - aKey
    argTypes:
    - PropertyPathHandle
    - uintptr_t
    - PropertyDictionaryKey
    constantsTouched: []
    func_position:
      end: 268
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 268
    functionName: LocaleCapabilitiesTraitDataSink::GetNextDictionaryItemKey
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LocaleCapabilitiesTraitDataSink::GetNextDictionaryItemKey(PropertyPathHandle
      aDictionaryHandle, uintptr_t &aContext, PropertyDictionaryKey &aKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 275
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 275
    functionName: BoltLockSettingTraitDataSink::BoltLockSettingTraitDataSink
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BoltLockSettingTraitDataSink::BoltLockSettingTraitDataSink()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:285,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:286,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:289,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:293,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:298,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:299,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:302,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:306,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:310,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - aLeafHandle
    - aReader
    argTypes:
    - PropertyPathHandle
    - TLVReader
    constantsTouched: []
    func_position:
      end: 316
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 316
    functionName: BoltLockSettingTraitDataSink::SetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDetail
    - TLVReader::Get
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BoltLockSettingTraitDataSink::SetLeafData(PropertyPathHandle aLeafHandle,
      TLVReader &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:325,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:326,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:328,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:332,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:333,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:335,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:339,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:340,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:344,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - aLeafHandle
    - aTagToWrite
    - aWriter
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 346
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 346
    functionName: BoltLockSettingTraitDataSink::GetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - TLVWriter::PutBoolean
    - ExitNow
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveLogFunctError
    - TLVWriter::Put
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BoltLockSettingTraitDataSink::GetLeafData(PropertyPathHandle aLeafHandle,
      uint64_t aTagToWrite, TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aDictionaryHandle
    - aContext
    - aKey
    argTypes:
    - PropertyPathHandle
    - uintptr_t
    - PropertyDictionaryKey
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 351
    functionName: BoltLockSettingTraitDataSink::GetNextDictionaryItemKey
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BoltLockSettingTraitDataSink::GetNextDictionaryItemKey(PropertyPathHandle
      aDictionaryHandle, uintptr_t &aContext, PropertyDictionaryKey &aKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 369
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 369
    functionName: TestATraitDataSink::TestATraitDataSink
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestATraitDataSink::TestATraitDataSink()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestATraitDataSink::TestATraitDataSink
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:374,1
    - Dst: SetAcceptsSubscriptionlessNotifications
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aAcceptsSublessNotifies
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 379
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 379
    functionName: TestATraitDataSink::TestATraitDataSink
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 1
    functionsReached:
    - SetAcceptsSubscriptionlessNotifications
    - TestATraitDataSink::TestATraitDataSink
    linkageType: ''
    returnType: void
    signature: TestATraitDataSink::TestATraitDataSink(bool aAcceptsSublessNotifies)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<InEventParam *>
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:384,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:393,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:397,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:405,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:406,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:409,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:410,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:413,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:420,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:422,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:423,1
    - Dst: erase
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:424,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:426,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:427,1
    - Dst: erase
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:428,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:435,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:437,1
    - Dst: find
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:438,1
    - Dst: end
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:438,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:439,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:440,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:443,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:447,1
    - Dst: find
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:448,1
    - Dst: end
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:448,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:449,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:450,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:453,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:462,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:464,1
    - Dst: find
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:465,1
    - Dst: end
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:465,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:466,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:471,1
    - Dst: find
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:472,1
    - Dst: end
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:472,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:473,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 77
    argCount: 2
    argNames:
    - aType
    - aInParam
    argTypes:
    - uint16_t
    - void*
    constantsTouched: []
    func_position:
      end: 483
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 483
    functionName: TestATraitDataSink::OnEvent
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - end
    - GetPropertyDictionaryKey
    - clear
    - GetPropertySchemaHandle
    - memset
    - erase
    - WeaveLogDetail
    - find
    - static_cast<InEventParam *>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestATraitDataSink::OnEvent(uint16_t aType, void *aInParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - aHandle
    - isNull
    argTypes:
    - PropertyPathHandle
    - bool
    constantsTouched: []
    func_position:
      end: 494
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 494
    functionName: TestATraitDataSink::SetNullifiedPath
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestATraitDataSink::SetNullifiedPath(PropertyPathHandle aHandle, bool
      isNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsNullable
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:502,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:504,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:507,1
    - Dst: TestATraitDataSink::SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:511,1
    - Dst: IsLeaf
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:513,1
    - Dst: TestATraitDataSink::SetLeafData
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:515,1
    - Dst: TestATraitDataSink::SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:519,1
    - Dst: GetParent
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:520,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - aHandle
    - aReader
    - aIsNull
    argTypes:
    - PropertyPathHandle
    - TLVReader
    - bool
    constantsTouched: []
    func_position:
      end: 528
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 528
    functionName: TestATraitDataSink::SetData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - TestATraitDataSink::SetNullifiedPath
    - IsNullable
    - TestATraitDataSink::SetLeafData
    - ExitNow
    - IsLeaf
    - WeaveLogDetail
    - GetParent
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestATraitDataSink::SetData(PropertyPathHandle aHandle, TLVReader &aReader,
      bool aIsNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:535,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:537,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:538,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:540,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:544,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:545,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:547,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:552,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:553,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:556,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:560,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:565,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:566,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:569,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:573,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:578,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:579,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:582,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:586,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:594,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:595,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:597,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:599,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:600,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:603,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:607,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:611,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:617,1
    - Dst: TLVReader::GetString
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:619,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:620,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:624,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:628,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:629,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:633,1
    - Dst: TLVReader::GetBytes
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:639,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:640,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:642,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:646,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:647,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:649,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:653,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:654,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:656,1
    - Dst: TLVReader::GetBytes
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:660,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:661,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:663,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:664,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:668,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:669,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:671,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:676,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:677,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:681,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:684,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:688,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:689,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:691,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:695,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:696,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:698,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:702,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:703,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:705,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:709,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:710,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:712,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:716,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:717,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:719,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:723,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:724,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:726,1
    - Dst: TLVReader::GetString
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:730,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:731,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:733,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:737,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:738,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:740,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:744,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:745,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:747,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:747,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:751,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:752,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:754,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:754,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:758,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:759,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:761,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:761,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:765,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 165
    argCount: 2
    argNames:
    - aLeafHandle
    - aReader
    argTypes:
    - PropertyPathHandle
    - TLVReader
    constantsTouched: []
    func_position:
      end: 770
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 770
    functionName: TestATraitDataSink::SetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Next
    - TLVReader::GetType
    - GetPropertyDictionaryKey
    - GetPropertySchemaHandle
    - TLVReader::GetBytes
    - TLVReader::EnterContainer
    - TLVReader::GetString
    - TLVReader::ExitContainer
    - DumpMemory
    - WeaveLogDetail
    - SuccessOrExit
    - TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestATraitDataSink::SetLeafData(PropertyPathHandle aLeafHandle, TLVReader
      &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::map<uint16_t, T>*::begin
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:776,1
    - Dst: std::map<uint16_t, T>*::end
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:783,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - aMap
    - it
    - aContext
    - aKey
    argTypes:
    - std::map<uint16_t, T>*
    - typename std::map<uint16_t, T>::iterator
    - uintptr_t
    - PropertyDictionaryKey
    constantsTouched: []
    func_position:
      end: 791
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 791
    functionName: GetNextDictionaryItemKeyHelper
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 1
    functionsReached:
    - std::map<uint16_t, T>*::end
    - std::map<uint16_t, T>*::begin
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetNextDictionaryItemKeyHelper(std::map<uint16_t, T> *aMap, typename
      std::map<uint16_t, T>::iterator &it, uintptr_t &aContext, PropertyDictionaryKey
      &aKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetNextDictionaryItemKeyHelper
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:799,1
    - Dst: GetNextDictionaryItemKeyHelper
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - aDictionaryHandle
    - aContext
    - aKey
    argTypes:
    - PropertyPathHandle
    - uintptr_t
    - PropertyDictionaryKey
    constantsTouched: []
    func_position:
      end: 806
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 806
    functionName: TestATraitDataSink::GetNextDictionaryItemKey
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - GetNextDictionaryItemKeyHelper
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestATraitDataSink::GetNextDictionaryItemKey(PropertyPathHandle aDictionaryHandle,
      uintptr_t &aContext, PropertyDictionaryKey &aKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsNullable
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:816,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:818,1
    - Dst: IsLeaf
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:828,1
    - Dst: TestATraitDataSink::GetLeafData
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:830,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - aHandle
    - aTagToWrite
    - aWriter
    - aIsNull
    - aIsPresent
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 834
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 834
    functionName: TestATraitDataSink::GetData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - IsLeaf
    - IsNullable
    - TestATraitDataSink::GetLeafData
    - GetPropertySchemaHandle
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TestATraitDataSink::GetData(PropertyPathHandle aHandle,\n                                          uint64_t
      aTagToWrite,\n                                          TLVWriter &aWriter,\n
      \                                         bool &aIsNull,\n                                          bool
      &aIsPresent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:842,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:844,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:845,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:847,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:851,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:852,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:854,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:858,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:859,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:861,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:865,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:866,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:868,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:872,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:873,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:875,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:882,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:883,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:886,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:887,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:889,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:892,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:900,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:901,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:903,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:907,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:908,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:910,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:920,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:921,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:923,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:927,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:928,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:930,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:934,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:935,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:937,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:941,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:942,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:944,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:945,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:949,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:950,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:952,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:956,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:957,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:959,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:963,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:964,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:966,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:970,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:971,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:973,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:977,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:978,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:980,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:984,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:985,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:987,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:991,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:992,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:994,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:998,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:999,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1001,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1005,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1006,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1008,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1012,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1013,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1015,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1020,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1022,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1023,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1025,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1031,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1033,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1034,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1036,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1043,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1045,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1046,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1048,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1053,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1057,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 148
    argCount: 3
    argNames:
    - aLeafHandle
    - aTagToWrite
    - aWriter
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 1059
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 1059
    functionName: TestATraitDataSink::GetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 1
    functionsReached:
    - TLVWriter::PutBoolean
    - GetPropertyDictionaryKey
    - GetPropertySchemaHandle
    - TLVWriter::PutBytes
    - TLVWriter::EndContainer
    - TLVWriter::PutString
    - WeaveLogDetail
    - DumpMemory
    - SuccessOrExit
    - WeaveLogFunctError
    - TLVWriter::Put
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestATraitDataSink::GetLeafData(PropertyPathHandle aLeafHandle, uint64_t
      aTagToWrite, TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsNullable
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1069,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1071,1
    - Dst: IsLeaf
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1081,1
    - Dst: TestBTraitDataSink::GetLeafData
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1083,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - aHandle
    - aTagToWrite
    - aWriter
    - aIsNull
    - aIsPresent
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1087
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1087
    functionName: TestBTraitDataSink::GetData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - IsLeaf
    - IsNullable
    - GetPropertySchemaHandle
    - TestBTraitDataSink::GetLeafData
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TestBTraitDataSink::GetData(PropertyPathHandle aHandle,\n                                          uint64_t
      aTagToWrite,\n                                          TLVWriter &aWriter,\n
      \                                         bool &aIsNull,\n                                          bool
      &aIsPresent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1099,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1100,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1102,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1106,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1107,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1109,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1113,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1114,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1116,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1120,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1121,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1123,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1127,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1128,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1130,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1134,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1135,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1137,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1144,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1145,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1148,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1149,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1151,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1154,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1163,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1164,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1166,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1170,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1171,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1173,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1177,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1178,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1180,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1184,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1185,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1187,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1191,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1192,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1194,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1198,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1199,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1201,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1205,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1209,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 80
    argCount: 3
    argNames:
    - aLeafHandle
    - aTagToWrite
    - aWriter
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 1211
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1211
    functionName: TestBTraitDataSink::GetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 1
    functionsReached:
    - TLVWriter::PutBoolean
    - TLVWriter::EndContainer
    - TLVWriter::PutString
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveLogFunctError
    - TLVWriter::Put
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestBTraitDataSink::GetLeafData(PropertyPathHandle aLeafHandle, uint64_t
      aTagToWrite, TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aDictionaryHandle
    - aContext
    - aKey
    argTypes:
    - PropertyPathHandle
    - uintptr_t
    - PropertyDictionaryKey
    constantsTouched: []
    func_position:
      end: 1216
      start: 1213
    functionDepth: 0
    functionLinenumber: 1213
    functionLinenumberEnd: 1216
    functionName: TestBTraitDataSink::GetNextDictionaryItemKey
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestBTraitDataSink::GetNextDictionaryItemKey(PropertyPathHandle aDictionaryHandle,
      uintptr_t &aContext, PropertyDictionaryKey &aKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1231,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1234,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1218
    functionDepth: 0
    functionLinenumber: 1218
    functionLinenumberEnd: 1245
    functionName: TestBTraitDataSink::TestBTraitDataSink
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - strcpy
    linkageType: ''
    returnType: void
    signature: TestBTraitDataSink::TestBTraitDataSink()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - aHandle
    - isNull
    argTypes:
    - PropertyPathHandle
    - bool
    constantsTouched: []
    func_position:
      end: 1256
      start: 1247
    functionDepth: 0
    functionLinenumber: 1247
    functionLinenumberEnd: 1256
    functionName: TestBTraitDataSink::SetNullifiedPath
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestBTraitDataSink::SetNullifiedPath(PropertyPathHandle aHandle, bool
      isNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsNullable
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1264,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1266,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1269,1
    - Dst: TestBTraitDataSink::SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1273,1
    - Dst: IsLeaf
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1275,1
    - Dst: TestBTraitDataSink::SetLeafData
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1277,1
    - Dst: TestBTraitDataSink::SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1281,1
    - Dst: GetParent
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1282,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - aHandle
    - aReader
    - aIsNull
    argTypes:
    - PropertyPathHandle
    - TLVReader
    - bool
    constantsTouched: []
    func_position:
      end: 1287
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1287
    functionName: TestBTraitDataSink::SetData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - IsNullable
    - TestBTraitDataSink::SetNullifiedPath
    - ExitNow
    - TestBTraitDataSink::SetLeafData
    - IsLeaf
    - WeaveLogDetail
    - GetParent
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestBTraitDataSink::SetData(PropertyPathHandle aHandle, TLVReader &aReader,
      bool aIsNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1301,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1302,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1305,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1309,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1314,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1315,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1318,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1322,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1327,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1328,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1331,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1335,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1340,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1341,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1344,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1348,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1353,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1354,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1357,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1361,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1369,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1370,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1372,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1374,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1375,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1378,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1382,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1386,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1391,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1392,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1394,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1403,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1404,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1407,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1411,1
    - Dst: TLVReader::GetString
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1416,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1417,1
    - Dst: strncmp
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1418,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1420,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1421,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1424,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1429,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1430,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1433,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1437,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1442,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1443,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1446,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1450,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1455,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1456,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1459,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1463,1
    - Dst: TLVReader::GetString
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1468,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1469,1
    - Dst: strncmp
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1470,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1472,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1473,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1476,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1480,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 128
    argCount: 2
    argNames:
    - aLeafHandle
    - aReader
    argTypes:
    - PropertyPathHandle
    - TLVReader
    constantsTouched: []
    func_position:
      end: 1485
      start: 1289
    functionDepth: 0
    functionLinenumber: 1289
    functionLinenumberEnd: 1485
    functionName: TestBTraitDataSink::SetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 2
    functionsReached:
    - TLVReader::Next
    - strncmp
    - TLVReader::EnterContainer
    - TLVReader::GetString
    - TLVReader::ExitContainer
    - memcpy
    - WeaveLogDetail
    - SuccessOrExit
    - TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestBTraitDataSink::SetLeafData(PropertyPathHandle aLeafHandle, TLVReader
      &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1487
    functionDepth: 0
    functionLinenumber: 1487
    functionLinenumberEnd: 1489
    functionName: TestApplicationKeysTraitDataSink::TestApplicationKeysTraitDataSink
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestApplicationKeysTraitDataSink::TestApplicationKeysTraitDataSink(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1509,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1521,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1524,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1525,1
    - Dst: EnumerateGroupKeys
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1527,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1528,1
    - Dst: GetGroupKey
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1532,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1533,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1537,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1538,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1543,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1543,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1544,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1546,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1546,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1546,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1547,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1549,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1549,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1550,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1552,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1553,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1555,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1560,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1560,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1561,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1564,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1564,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1565,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1567,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1567,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1568,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1570,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1571,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1573,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1577,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1578,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1582,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 47
    argCount: 3
    argNames:
    - aLeafHandle
    - aTagToWrite
    - aWriter
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 1585
      start: 1500
    functionDepth: 0
    functionLinenumber: 1500
    functionLinenumberEnd: 1585
    functionName: TestApplicationKeysTraitDataSink::GetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - EnumerateGroupKeys
    - ContextTag
    - VerifyOrExit
    - ExitNow
    - TLVWriter::PutBytes
    - GetGroupKey
    - TLVWriter::EndContainer
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveLogFunctError
    - TLVWriter::Put
    - static_cast<int64_t>
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestApplicationKeysTraitDataSink::GetLeafData(PropertyPathHandle aLeafHandle,
      uint64_t aTagToWrite, TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aDictionaryHandle
    - aContext
    - aKey
    argTypes:
    - PropertyPathHandle
    - uintptr_t
    - PropertyDictionaryKey
    constantsTouched: []
    func_position:
      end: 1590
      start: 1587
    functionDepth: 0
    functionLinenumber: 1587
    functionLinenumberEnd: 1590
    functionName: TestApplicationKeysTraitDataSink::GetNextDictionaryItemKey
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestApplicationKeysTraitDataSink::GetNextDictionaryItemKey(PropertyPathHandle
      aDictionaryHandle, uintptr_t &aContext, PropertyDictionaryKey &aKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1593
    functionDepth: 0
    functionLinenumber: 1593
    functionLinenumberEnd: 1597
    functionName: LocaleSettingsTraitUpdatableDataSink::LocaleSettingsTraitUpdatableDataSink
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: LocaleSettingsTraitUpdatableDataSink::LocaleSettingsTraitUpdatableDataSink()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::GetString
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1607,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1608,1
    - Dst: strncmp
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1609,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1611,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1612,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1615,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1619,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - aLeafHandle
    - aReader
    argTypes:
    - PropertyPathHandle
    - TLVReader
    constantsTouched: []
    func_position:
      end: 1625
      start: 1599
    functionDepth: 0
    functionLinenumber: 1599
    functionLinenumberEnd: 1625
    functionName: LocaleSettingsTraitUpdatableDataSink::SetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - strncmp
    - TLVReader::GetString
    - memcpy
    - WeaveLogDetail
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LocaleSettingsTraitUpdatableDataSink::SetLeafData(PropertyPathHandle
      aLeafHandle, TLVReader &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1634,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1635,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1637,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1641,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1642,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - aLeafHandle
    - aTagToWrite
    - aWriter
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 1649
      start: 1627
    functionDepth: 0
    functionLinenumber: 1627
    functionLinenumberEnd: 1649
    functionName: LocaleSettingsTraitUpdatableDataSink::GetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - ExitNow
    - TLVWriter::PutString
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveLogFunctError
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LocaleSettingsTraitUpdatableDataSink::GetLeafData(PropertyPathHandle
      aLeafHandle, uint64_t aTagToWrite, TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1660,1
    - Dst: MOCK_strlcpy
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1662,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1680,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1682,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1683,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1686,1
    - Dst: MockWdmNodeOptions::GetMutationStrings
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1686,1
    - Dst: Unlock
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1688,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - apSubClient
    - aIsConditional
    - aMutation
    argTypes:
    - SubscriptionClient*
    - bool
    - MockWdmNodeOptions::WdmUpdateMutation
    constantsTouched: []
    func_position:
      end: 1691
      start: 1651
    functionDepth: 1
    functionLinenumber: 1651
    functionLinenumberEnd: 1691
    functionName: LocaleSettingsTraitUpdatableDataSink::Mutate
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 1
    functionsReached:
    - Unlock
    - SetUpdated
    - WeaveLogDetail
    - SuccessOrExit
    - MockWdmNodeOptions::GetMutationStrings
    - Lock
    - MOCK_strlcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "LocaleSettingsTraitUpdatableDataSink::Mutate(SubscriptionClient *
      apSubClient,\n                                                         bool
      aIsConditional,\n                                                         MockWdmNodeOptions::WdmUpdateMutation
      aMutation)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aDictionaryHandle
    - aContext
    - aKey
    argTypes:
    - PropertyPathHandle
    - uintptr_t
    - PropertyDictionaryKey
    constantsTouched: []
    func_position:
      end: 1696
      start: 1693
    functionDepth: 0
    functionLinenumber: 1693
    functionLinenumberEnd: 1696
    functionName: LocaleSettingsTraitUpdatableDataSink::GetNextDictionaryItemKey
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LocaleSettingsTraitUpdatableDataSink::GetNextDictionaryItemKey(PropertyPathHandle
      aDictionaryHandle, uintptr_t &aContext, PropertyDictionaryKey &aKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1704,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1706,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1713,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1714,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1721,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1722,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1724,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1725,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1727,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1728,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1737,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1738,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1740,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1741,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1758,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1759,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1767,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1783,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1784,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1788,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1789,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1797,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1806,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1806,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1807,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1809,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1809,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1810,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1812,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1812,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1813,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1815,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1815,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1816,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1828,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1828,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1829,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1831,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1837,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1838,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1840,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1841,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1843,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1845,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1854,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1855,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1864,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1865,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1867,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1868,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1883,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1884,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1886,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1887,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1889,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1890,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1892,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1893,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1895,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1896,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1898,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1899,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1901,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1908,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1934,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1935,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1937,1
    - Dst: WeaveDie
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1947,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1955,1
    - Dst: MockWdmNodeOptions::GetMutationStrings
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1955,1
    - Dst: Unlock
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1957,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 160
    argCount: 3
    argNames:
    - apSubClient
    - aIsConditional
    - aMutation
    argTypes:
    - SubscriptionClient*
    - bool
    - MockWdmNodeOptions::WdmUpdateMutation
    constantsTouched: []
    func_position:
      end: 1960
      start: 1698
    functionDepth: 1
    functionLinenumber: 1698
    functionLinenumberEnd: 1960
    functionName: TestATraitUpdatableDataSink::Mutate
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - Unlock
    - static_cast<uint32_t>
    - clear
    - SetUpdated
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveDie
    - MockWdmNodeOptions::GetMutationStrings
    - Lock
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TestATraitUpdatableDataSink::Mutate(SubscriptionClient * apSubClient,\n
      \                                               bool aIsConditional,\n                                                MockWdmNodeOptions::WdmUpdateMutation
      aMutation)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1962
    functionDepth: 0
    functionLinenumber: 1962
    functionLinenumberEnd: 1978
    functionName: TestATraitUpdatableDataSink::TestATraitUpdatableDataSink
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestATraitUpdatableDataSink::TestATraitUpdatableDataSink()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<InEventParam *>
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1983,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1992,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:1996,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2004,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2005,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2008,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2009,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2012,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2019,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2021,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2022,1
    - Dst: erase
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2023,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2025,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2026,1
    - Dst: erase
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2027,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2034,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2036,1
    - Dst: find
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2037,1
    - Dst: end
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2037,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2038,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2039,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2042,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2046,1
    - Dst: find
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2047,1
    - Dst: end
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2047,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2048,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2049,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2052,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2061,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2063,1
    - Dst: find
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2064,1
    - Dst: end
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2064,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2065,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2070,1
    - Dst: find
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2071,1
    - Dst: end
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2071,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2072,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 77
    argCount: 2
    argNames:
    - aType
    - aInParam
    argTypes:
    - uint16_t
    - void*
    constantsTouched: []
    func_position:
      end: 2082
      start: 1980
    functionDepth: 0
    functionLinenumber: 1980
    functionLinenumberEnd: 2082
    functionName: TestATraitUpdatableDataSink::OnEvent
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - end
    - GetPropertyDictionaryKey
    - clear
    - GetPropertySchemaHandle
    - memset
    - erase
    - WeaveLogDetail
    - find
    - static_cast<InEventParam *>
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestATraitUpdatableDataSink::OnEvent(uint16_t aType, void *aInParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - aHandle
    - isNull
    argTypes:
    - PropertyPathHandle
    - bool
    constantsTouched: []
    func_position:
      end: 2093
      start: 2084
    functionDepth: 0
    functionLinenumber: 2084
    functionLinenumberEnd: 2093
    functionName: TestATraitUpdatableDataSink::SetNullifiedPath
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestATraitUpdatableDataSink::SetNullifiedPath(PropertyPathHandle aHandle,
      bool isNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsNullable
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2101,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2103,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2106,1
    - Dst: TestATraitUpdatableDataSink::SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2110,1
    - Dst: IsLeaf
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2112,1
    - Dst: TestATraitUpdatableDataSink::SetLeafData
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2114,1
    - Dst: TestATraitUpdatableDataSink::SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2118,1
    - Dst: GetParent
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2119,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - aHandle
    - aReader
    - aIsNull
    argTypes:
    - PropertyPathHandle
    - TLVReader
    - bool
    constantsTouched: []
    func_position:
      end: 2127
      start: 2096
    functionDepth: 1
    functionLinenumber: 2096
    functionLinenumberEnd: 2127
    functionName: TestATraitUpdatableDataSink::SetData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - IsNullable
    - ExitNow
    - IsLeaf
    - TestATraitUpdatableDataSink::SetLeafData
    - WeaveLogDetail
    - GetParent
    - TestATraitUpdatableDataSink::SetNullifiedPath
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestATraitUpdatableDataSink::SetData(PropertyPathHandle aHandle, TLVReader
      &aReader, bool aIsNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2134,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2136,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2137,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2139,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2143,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2144,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2146,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2151,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2152,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2155,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2159,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2164,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2165,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2168,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2172,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2177,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2178,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2181,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2185,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2193,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2194,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2196,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2198,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2199,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2202,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2206,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2210,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2216,1
    - Dst: TLVReader::GetString
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2218,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2219,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2223,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2227,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2228,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2232,1
    - Dst: TLVReader::GetBytes
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2238,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2239,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2241,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2245,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2246,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2248,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2252,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2253,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2255,1
    - Dst: TLVReader::GetBytes
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2259,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2260,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2262,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2263,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2267,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2268,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2270,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2275,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2276,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2280,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2283,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2287,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2288,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2290,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2294,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2295,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2297,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2301,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2302,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2304,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2308,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2309,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2311,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2315,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2316,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2318,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2322,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2323,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2325,1
    - Dst: TLVReader::GetString
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2329,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2330,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2332,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2336,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2337,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2339,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2343,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2344,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2346,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2346,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2350,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2351,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2353,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2353,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2357,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2358,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2360,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2360,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2364,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 165
    argCount: 2
    argNames:
    - aLeafHandle
    - aReader
    argTypes:
    - PropertyPathHandle
    - TLVReader
    constantsTouched: []
    func_position:
      end: 2369
      start: 2129
    functionDepth: 1
    functionLinenumber: 2129
    functionLinenumberEnd: 2369
    functionName: TestATraitUpdatableDataSink::SetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Next
    - TLVReader::GetType
    - GetPropertyDictionaryKey
    - GetPropertySchemaHandle
    - TLVReader::GetBytes
    - TLVReader::EnterContainer
    - TLVReader::GetString
    - TLVReader::ExitContainer
    - DumpMemory
    - WeaveLogDetail
    - SuccessOrExit
    - TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestATraitUpdatableDataSink::SetLeafData(PropertyPathHandle aLeafHandle,
      TLVReader &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetNextDictionaryItemKeyHelper
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2377,1
    - Dst: GetNextDictionaryItemKeyHelper
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - aDictionaryHandle
    - aContext
    - aKey
    argTypes:
    - PropertyPathHandle
    - uintptr_t
    - PropertyDictionaryKey
    constantsTouched: []
    func_position:
      end: 2384
      start: 2371
    functionDepth: 0
    functionLinenumber: 2371
    functionLinenumberEnd: 2384
    functionName: TestATraitUpdatableDataSink::GetNextDictionaryItemKey
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - GetNextDictionaryItemKeyHelper
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestATraitUpdatableDataSink::GetNextDictionaryItemKey(PropertyPathHandle
      aDictionaryHandle, uintptr_t &aContext, PropertyDictionaryKey &aKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsNullable
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2394,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2396,1
    - Dst: IsLeaf
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2406,1
    - Dst: TestATraitUpdatableDataSink::GetLeafData
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2408,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - aHandle
    - aTagToWrite
    - aWriter
    - aIsNull
    - aIsPresent
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 2412
      start: 2386
    functionDepth: 1
    functionLinenumber: 2386
    functionLinenumberEnd: 2412
    functionName: TestATraitUpdatableDataSink::GetData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - IsLeaf
    - IsNullable
    - TestATraitUpdatableDataSink::GetLeafData
    - GetPropertySchemaHandle
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TestATraitUpdatableDataSink::GetData(PropertyPathHandle aHandle,\n
      \                                       uint64_t aTagToWrite,\n                                        TLVWriter
      &aWriter,\n                                        bool &aIsNull,\n                                        bool
      &aIsPresent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2420,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2422,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2423,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2425,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2429,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2430,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2432,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2436,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2437,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2439,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2443,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2444,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2446,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2450,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2451,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2453,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2460,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2461,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2464,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2465,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2467,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2470,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2478,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2479,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2481,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2485,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2486,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2488,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2498,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2499,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2501,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2505,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2506,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2508,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2512,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2513,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2515,1
    - Dst: TLVWriter::PutBytes
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2519,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2520,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2522,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2523,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2527,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2528,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2530,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2534,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2535,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2537,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2541,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2542,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2544,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2548,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2549,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2551,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2555,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2556,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2558,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2562,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2563,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2565,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2569,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2570,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2572,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2576,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2577,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2579,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2583,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2584,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2586,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2590,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2591,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2593,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2598,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2600,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2601,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2603,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2609,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2611,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2612,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2614,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2621,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2623,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2624,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2626,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2631,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2635,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 148
    argCount: 3
    argNames:
    - aLeafHandle
    - aTagToWrite
    - aWriter
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 2637
      start: 2416
    functionDepth: 1
    functionLinenumber: 2416
    functionLinenumberEnd: 2637
    functionName: TestATraitUpdatableDataSink::GetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 1
    functionsReached:
    - TLVWriter::PutBoolean
    - GetPropertyDictionaryKey
    - GetPropertySchemaHandle
    - TLVWriter::PutBytes
    - TLVWriter::EndContainer
    - TLVWriter::PutString
    - WeaveLogDetail
    - DumpMemory
    - SuccessOrExit
    - WeaveLogFunctError
    - TLVWriter::Put
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestATraitUpdatableDataSink::GetLeafData(PropertyPathHandle aLeafHandle,
      uint64_t aTagToWrite, TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2652,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2655,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2666
      start: 2639
    functionDepth: 0
    functionLinenumber: 2639
    functionLinenumberEnd: 2666
    functionName: TestBTraitUpdatableDataSink::TestBTraitUpdatableDataSink
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - strcpy
    linkageType: ''
    returnType: void
    signature: TestBTraitUpdatableDataSink::TestBTraitUpdatableDataSink()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lock
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2676,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2682,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2683,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2685,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2686,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2701,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2702,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2704,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2705,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2707,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2708,1
    - Dst: SetUpdated
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2720,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2721,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2730,1
    - Dst: MockWdmNodeOptions::GetMutationStrings
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2730,1
    - Dst: Unlock
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2732,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 3
    argNames:
    - apSubClient
    - aIsConditional
    - aMutation
    argTypes:
    - SubscriptionClient*
    - bool
    - MockWdmNodeOptions::WdmUpdateMutation
    constantsTouched: []
    func_position:
      end: 2735
      start: 2668
    functionDepth: 1
    functionLinenumber: 2668
    functionLinenumberEnd: 2735
    functionName: TestBTraitUpdatableDataSink::Mutate
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 1
    functionsReached:
    - Unlock
    - SetUpdated
    - WeaveLogDetail
    - SuccessOrExit
    - MockWdmNodeOptions::GetMutationStrings
    - Lock
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TestBTraitUpdatableDataSink::Mutate(SubscriptionClient * apSubClient,\n
      \                                               bool aIsConditional,\n                                                MockWdmNodeOptions::WdmUpdateMutation
      aMutation)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - aHandle
    - isNull
    argTypes:
    - PropertyPathHandle
    - bool
    constantsTouched: []
    func_position:
      end: 2746
      start: 2737
    functionDepth: 0
    functionLinenumber: 2737
    functionLinenumberEnd: 2746
    functionName: TestBTraitUpdatableDataSink::SetNullifiedPath
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestBTraitUpdatableDataSink::SetNullifiedPath(PropertyPathHandle aHandle,
      bool isNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsNullable
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2754,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2756,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2759,1
    - Dst: TestBTraitUpdatableDataSink::SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2763,1
    - Dst: IsLeaf
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2765,1
    - Dst: TestBTraitUpdatableDataSink::SetLeafData
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2767,1
    - Dst: TestBTraitUpdatableDataSink::SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2771,1
    - Dst: GetParent
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2772,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - aHandle
    - aReader
    - aIsNull
    argTypes:
    - PropertyPathHandle
    - TLVReader
    - bool
    constantsTouched: []
    func_position:
      end: 2777
      start: 2749
    functionDepth: 1
    functionLinenumber: 2749
    functionLinenumberEnd: 2777
    functionName: TestBTraitUpdatableDataSink::SetData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - IsNullable
    - TestBTraitUpdatableDataSink::SetLeafData
    - ExitNow
    - IsLeaf
    - WeaveLogDetail
    - TestBTraitUpdatableDataSink::SetNullifiedPath
    - GetParent
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestBTraitUpdatableDataSink::SetData(PropertyPathHandle aHandle, TLVReader
      &aReader, bool aIsNull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2791,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2792,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2795,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2799,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2804,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2805,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2808,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2812,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2817,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2818,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2821,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2825,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2830,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2831,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2834,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2838,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2843,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2844,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2847,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2851,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2859,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2860,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2862,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2864,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2865,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2868,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2872,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2876,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2881,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2882,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2884,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2893,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2894,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2897,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2901,1
    - Dst: TLVReader::GetString
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2906,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2907,1
    - Dst: strncmp
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2908,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2910,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2911,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2914,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2919,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2920,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2923,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2927,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2932,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2933,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2936,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2940,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2945,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2946,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2949,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2953,1
    - Dst: TLVReader::GetString
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2958,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2959,1
    - Dst: strncmp
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2960,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2962,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2963,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2966,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2970,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 128
    argCount: 2
    argNames:
    - aLeafHandle
    - aReader
    argTypes:
    - PropertyPathHandle
    - TLVReader
    constantsTouched: []
    func_position:
      end: 2975
      start: 2779
    functionDepth: 0
    functionLinenumber: 2779
    functionLinenumberEnd: 2975
    functionName: TestBTraitUpdatableDataSink::SetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Next
    - strncmp
    - TLVReader::EnterContainer
    - TLVReader::GetString
    - TLVReader::ExitContainer
    - memcpy
    - WeaveLogDetail
    - SuccessOrExit
    - TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestBTraitUpdatableDataSink::SetLeafData(PropertyPathHandle aLeafHandle,
      TLVReader &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsNullable
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2986,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2988,1
    - Dst: IsLeaf
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:2998,1
    - Dst: TestBTraitUpdatableDataSink::GetLeafData
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3000,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - aHandle
    - aTagToWrite
    - aWriter
    - aIsNull
    - aIsPresent
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 3004
      start: 2978
    functionDepth: 1
    functionLinenumber: 2978
    functionLinenumberEnd: 3004
    functionName: TestBTraitUpdatableDataSink::GetData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached:
    - IsLeaf
    - IsNullable
    - TestBTraitUpdatableDataSink::GetLeafData
    - GetPropertySchemaHandle
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TestBTraitUpdatableDataSink::GetData(PropertyPathHandle aHandle,\n
      \                                       uint64_t aTagToWrite,\n                                        TLVWriter
      &aWriter,\n                                        bool &aIsNull,\n                                        bool
      &aIsPresent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3016,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3017,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3019,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3023,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3024,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3026,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3030,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3031,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3033,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3037,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3038,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3040,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3044,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3045,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3047,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3051,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3052,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3054,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3061,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3062,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3065,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3066,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3068,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3071,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3080,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3081,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3083,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3087,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3088,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3090,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3094,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3095,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3097,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3101,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3102,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3104,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3108,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3109,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3111,1
    - Dst: TLVWriter::PutString
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3115,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3116,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3118,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3122,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockSinkTraits.cpp:3126,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 80
    argCount: 3
    argNames:
    - aLeafHandle
    - aTagToWrite
    - aWriter
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 3128
      start: 3006
    functionDepth: 0
    functionLinenumber: 3006
    functionLinenumberEnd: 3128
    functionName: TestBTraitUpdatableDataSink::GetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 1
    functionsReached:
    - TLVWriter::PutBoolean
    - TLVWriter::EndContainer
    - TLVWriter::PutString
    - WeaveLogDetail
    - SuccessOrExit
    - WeaveLogFunctError
    - TLVWriter::Put
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestBTraitUpdatableDataSink::GetLeafData(PropertyPathHandle aLeafHandle,
      uint64_t aTagToWrite, TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aDictionaryHandle
    - aContext
    - aKey
    argTypes:
    - PropertyPathHandle
    - uintptr_t
    - PropertyDictionaryKey
    constantsTouched: []
    func_position:
      end: 3133
      start: 3130
    functionDepth: 0
    functionLinenumber: 3130
    functionLinenumberEnd: 3133
    functionName: TestBTraitUpdatableDataSink::GetNextDictionaryItemKey
    functionSourceFile: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestBTraitUpdatableDataSink::GetNextDictionaryItemKey(PropertyPathHandle
      aDictionaryHandle, uintptr_t &aContext, PropertyDictionaryKey &aKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestCrypto.cpp:30,1
    - Dst: WeaveCryptoSHATests
      Src: /src/openweave-core/src/test-apps/TestCrypto.cpp:32,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestCrypto.cpp:34,1
    - Dst: WeaveCryptoHMACTests
      Src: /src/openweave-core/src/test-apps/TestCrypto.cpp:36,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestCrypto.cpp:38,1
    - Dst: WeaveCryptoHKDFTests
      Src: /src/openweave-core/src/test-apps/TestCrypto.cpp:40,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestCrypto.cpp:42,1
    - Dst: WeaveCryptoAESTests
      Src: /src/openweave-core/src/test-apps/TestCrypto.cpp:44,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestCrypto.cpp:48,1
    - Dst: WeaveCryptoSHATests
      Src: /src/openweave-core/src/test-apps/TestCrypto.cpp:55,1
    - Dst: WeaveCryptoHMACTests
      Src: /src/openweave-core/src/test-apps/TestCrypto.cpp:56,1
    - Dst: WeaveCryptoHKDFTests
      Src: /src/openweave-core/src/test-apps/TestCrypto.cpp:57,1
    - Dst: WeaveCryptoAESTests
      Src: /src/openweave-core/src/test-apps/TestCrypto.cpp:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 62
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 62
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestCrypto.cpp
    functionUses: 0
    functionsReached:
    - WeaveCryptoSHATests
    - strcmp
    - WeaveCryptoHKDFTests
    - printf
    - WeaveCryptoHMACTests
    - WeaveCryptoAESTests
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseHostAndPort
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:163,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:163,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:165,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:170,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:173,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:187,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 192
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 192
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - ParseHostAndPort
    - PrintArgError
    - free
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:200,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:204,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 212
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 212
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseNodeId
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecodedIPPacket::PacketHeaderDecode
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:223,1
    - Dst: PacketBuffer::Start
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:223,1
    - Dst: PacketBuffer::DataLength
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:223,1
    - Dst: strncpy
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:225,1
    - Dst: strncpy
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:226,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:228,1
    - Dst: LogPacket
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:232,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - pkt
    - pktDir
    - tunnelType
    - toDrop
    argTypes:
    - PacketBuffer
    - TunnelPktDirection
    - TunnelType
    - bool
    constantsTouched: []
    func_position:
      end: 238
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 238
    functionName: TunneledPacketTransitHandler
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer::DataLength
    - DecodedIPPacket::PacketHeaderDecode
    - PacketBuffer::Start
    - strncpy
    - LogPacket
    - WeaveLogDetail
    - WEAVE_FAULT_INJECT
    linkageType: ''
    returnType: void
    signature: TunneledPacketTransitHandler(const PacketBuffer &pkt, TunnelPktDirection
      pktDir, TunnelType tunnelType, bool &toDrop)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:245,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:253,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - reason
    - aErr
    - appCtxt
    argTypes:
    - WeaveTunnelConnectionMgr::TunnelConnNotifyReasons
    - WEAVE_ERROR
    - void*
    constantsTouched: []
    func_position:
      end: 266
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 266
    functionName: WeaveTunnelOnStatusNotifyHandlerCB
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp
    functionUses: 0
    functionsReached:
    - StopServiceTunnel
    - WeaveLogDetail
    - StartServiceTunnel
    linkageType: ''
    returnType: void
    signature: "WeaveTunnelOnStatusNotifyHandlerCB(WeaveTunnelConnectionMgr::TunnelConnNotifyReasons
      reason,\n                                   WEAVE_ERROR aErr, void *appCtxt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 271
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 271
    functionName: PersistedSessionKeyExists
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp
    functionUses: 3
    functionsReached:
    - access
    linkageType: ''
    returnType: bool
    signature: PersistedSessionKeyExists(const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:282,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:285,1
    - Dst: PersistedSessionKeyExists
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:285,1
    - Dst: FindSessionKey
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:291,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:293,1
    - Dst: nl::Weave::WeaveSessionKey*::SetResumptionMsgIdsValid
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:296,1
    - Dst: SuspendSession
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:299,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:304,1
    - Dst: std::ofstream::open
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:308,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:310,1
    - Dst: std::ofstream::is_open
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:310,1
    - Dst: std::ofstream::write
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:313,1
    - Dst: std::ofstream::close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:315,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:317,1
    - Dst: std::ofstream::good
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:317,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:320,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - con
    argTypes:
    - nl::Weave::WeaveConnection*
    constantsTouched: []
    func_position:
      end: 329
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 329
    functionName: SuspendAndPersistTunnelCASESession
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp
    functionUses: 1
    functionsReached:
    - SuspendSession
    - std::ofstream::open
    - FindSessionKey
    - VerifyOrExit
    - PersistedSessionKeyExists
    - std::ofstream::close
    - std::ofstream::good
    - std::ofstream::is_open
    - std::ofstream::write
    - printf
    - nl::Weave::WeaveSessionKey*::SetResumptionMsgIdsValid
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SuspendAndPersistTunnelCASESession(nl::Weave::WeaveConnection *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PersistedSessionKeyExists
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:340,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:342,1
    - Dst: std::ifstream::open
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:346,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:347,1
    - Dst: std::ifstream::is_open
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:347,1
    - Dst: std::ifstream::seekg
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:350,1
    - Dst: std::ifstream::seekg
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:352,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:354,1
    - Dst: std::ifstream::read
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:357,1
    - Dst: std::ifstream::close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:359,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:361,1
    - Dst: std::ifstream::fail
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:361,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:365,1
    - Dst: std::remove
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:365,1
    - Dst: RestoreSession
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:368,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:369,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:371,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:375,1
    - Dst: std::ifstream::is_open
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:378,1
    - Dst: std::ifstream::close
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:380,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - con
    argTypes:
    - nl::Weave::WeaveConnection*
    constantsTouched: []
    func_position:
      end: 389
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 389
    functionName: RestorePersistedTunnelCASESession
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp
    functionUses: 1
    functionsReached:
    - std::ifstream::seekg
    - std::remove
    - std::ifstream::is_open
    - std::ifstream::close
    - RestoreSession
    - VerifyOrExit
    - PersistedSessionKeyExists
    - std::ifstream::fail
    - std::ifstream::read
    - printf
    - SuccessOrExit
    - std::ifstream::open
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: RestorePersistedTunnelCASESession(nl::Weave::WeaveConnection *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RestorePersistedTunnelCASESession
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:395,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - con
    argTypes:
    - nl::Weave::WeaveConnection*
    constantsTouched: []
    func_position:
      end: 401
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 401
    functionName: HandleLoadPersistedTunnelCASESession
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp
    functionUses: 0
    functionsReached:
    - printf
    - RestorePersistedTunnelCASESession
    linkageType: ''
    returnType: void
    signature: HandleLoadPersistedTunnelCASESession(nl::Weave::WeaveConnection *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - peerNodeId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 408
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 408
    functionName: IsPersistentTunnelSessionPresent
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp
    functionUses: 1
    functionsReached:
    - access
    linkageType: ''
    returnType: bool
    signature: IsPersistentTunnelSessionPresent(uint64_t peerNodeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuspendAndPersistTunnelCASESession
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:415,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - con
    argTypes:
    - nl::Weave::WeaveConnection*
    constantsTouched: []
    func_position:
      end: 421
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 421
    functionName: HandleSessionPersistOnTunnelClosure
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp
    functionUses: 0
    functionsReached:
    - printf
    - SuspendAndPersistTunnelCASESession
    linkageType: ''
    returnType: void
    signature: HandleSessionPersistOnTunnelClosure(nl::Weave::WeaveConnection *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitToolCommon
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:435,1
    - Dst: SetupFaultInjectionContext
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:437,1
    - Dst: UseStdoutLineBuffering
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:438,1
    - Dst: SetSignalHandler
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:439,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:443,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:444,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:449,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:450,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:453,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:454,1
    - Dst: ResolveWeaveNetworkOptions
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:455,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:457,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:463,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:464,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:468,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:469,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:474,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:475,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:479,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:481,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:483,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:485,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:486,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:487,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:488,1
    - Dst: nl::Weave::Stats::UpdateSnapshot
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:490,1
    - Dst: init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:493,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:496,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:502,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:509,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:514,1
    - Dst: SetDestination
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:520,1
    - Dst: SetCallbacksForPersistedTunnelConnection
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:535,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:540,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:541,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:549,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:562,1
    - Dst: StopServiceTunnel
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:565,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:566,1
    - Dst: ProcessStats
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:568,1
    - Dst: PrintFaultInjectionCounters
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:569,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:571,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:572,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp:573,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 79
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 577
      start: 424
    functionDepth: 5
    functionLinenumber: 424
    functionLinenumberEnd: 577
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp
    functionUses: 0
    functionsReached:
    - InitToolCommon
    - ShutdownSystemLayer
    - InitWeaveStack
    - StopServiceTunnel
    - printf
    - nl::Weave::Stats::UpdateSnapshot
    - strcpy
    - exit
    - ServiceNetwork
    - ParseArgsFromEnvVar
    - ResolveWeaveNetworkOptions
    - StartServiceTunnel
    - ShutdownWeaveStack
    - ParseArgs
    - InitNetwork
    - SetupFaultInjectionContext
    - PrintBriefUsage
    - Shutdown
    - PrintFaultInjectionCounters
    - SetSignalHandler
    - InitSystemLayer
    - UseStdoutLineBuffering
    - ProcessStats
    - SetCallbacksForPersistedTunnelConnection
    - ShutdownNetwork
    - Init
    - init
    - SetDestination
    - FAIL_ERROR
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:80,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: nl::Weave::MockPlatform::MockPlatformClocks::SetRandomRealTimeOffset
    functionSourceFile: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - rand
    linkageType: ''
    returnType: void
    signature: MockPlatformClocks::SetRandomRealTimeOffset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:88,1
    - Dst: UINT64_C
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: nl::Weave::MockPlatform::GetClock_Monotonic
    functionSourceFile: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp
    functionUses: 0
    functionsReached:
    - UINT64_C
    - VerifyOrDie
    linkageType: ''
    returnType: uint64_t
    signature: GetClock_Monotonic(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::MockPlatform::GetClock_Monotonic
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: nl::Weave::MockPlatform::GetClock_MonotonicMS
    functionSourceFile: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::MockPlatform::GetClock_Monotonic
    linkageType: ''
    returnType: uint64_t
    signature: GetClock_MonotonicMS(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::MockPlatform::GetClock_Monotonic
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: nl::Weave::MockPlatform::GetClock_MonotonicHiRes
    functionSourceFile: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::MockPlatform::GetClock_Monotonic
    linkageType: ''
    returnType: uint64_t
    signature: GetClock_MonotonicHiRes(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::MockPlatform::GetClock_Monotonic
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:108,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:110,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' curTime'
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 113
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 113
    functionName: nl::Weave::MockPlatform::GetClock_RealTime
    functionSourceFile: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - nl::Weave::MockPlatform::GetClock_Monotonic
    linkageType: ''
    returnType: System::Error
    signature: GetClock_RealTime(uint64_t & curTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::MockPlatform::GetClock_RealTime
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' curTime'
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: nl::Weave::MockPlatform::GetClock_RealTimeMS
    functionSourceFile: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::MockPlatform::GetClock_RealTime
    linkageType: ''
    returnType: System::Error
    signature: GetClock_RealTimeMS(uint64_t & curTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::MockPlatform::GetClock_RealTime
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:133,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:134,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:136,1
    - Dst: static_cast<int64_t>
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:136,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:143,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:148,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:150,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - newCurTime
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 155
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 155
    functionName: nl::Weave::MockPlatform::SetClock_RealTime
    functionSourceFile: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - static_cast<int64_t>
    - nl::Weave::MockPlatform::GetClock_RealTime
    - SuccessOrExit
    linkageType: ''
    returnType: System::Error
    signature: SetClock_RealTime(uint64_t newCurTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Platform::Layer::GetClock_Monotonic
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: nl::Weave::System::Platform::Layer::GetClock_Monotonic
    functionSourceFile: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp
    functionUses: 5
    functionsReached:
    - nl::Weave::System::Platform::Layer::GetClock_Monotonic
    linkageType: ''
    returnType: uint64_t
    signature: GetClock_Monotonic(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Platform::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: nl::Weave::System::Platform::Layer::GetClock_MonotonicMS
    functionSourceFile: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp
    functionUses: 5
    functionsReached:
    - nl::Weave::System::Platform::Layer::GetClock_MonotonicMS
    linkageType: ''
    returnType: uint64_t
    signature: GetClock_MonotonicMS(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Platform::Layer::GetClock_MonotonicHiRes
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: nl::Weave::System::Platform::Layer::GetClock_MonotonicHiRes
    functionSourceFile: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::System::Platform::Layer::GetClock_MonotonicHiRes
    linkageType: ''
    returnType: uint64_t
    signature: GetClock_MonotonicHiRes(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Platform::Layer::GetClock_RealTime
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' curTime'
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: nl::Weave::System::Platform::Layer::GetClock_RealTime
    functionSourceFile: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::System::Platform::Layer::GetClock_RealTime
    linkageType: ''
    returnType: System::Error
    signature: GetClock_RealTime(uint64_t & curTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Platform::Layer::GetClock_RealTimeMS
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' curTime'
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: nl::Weave::System::Platform::Layer::GetClock_RealTimeMS
    functionSourceFile: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::System::Platform::Layer::GetClock_RealTimeMS
    linkageType: ''
    returnType: System::Error
    signature: GetClock_RealTimeMS(uint64_t & curTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Platform::Layer::SetClock_RealTime
      Src: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - newCurTime
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: nl::Weave::System::Platform::Layer::SetClock_RealTime
    functionSourceFile: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::System::Platform::Layer::SetClock_RealTime
    linkageType: ''
    returnType: System::Error
    signature: SetClock_RealTime(uint64_t newCurTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: MockSoftwareUpdateServer::MockSoftwareUpdateServer
    functionSourceFile: /src/openweave-core/src/test-apps/MockSWUServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MockSoftwareUpdateServer::MockSoftwareUpdateServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: MockSoftwareUpdateServer::Init
    functionSourceFile: /src/openweave-core/src/test-apps/MockSWUServer.cpp
    functionUses: 0
    functionsReached:
    - RegisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockSoftwareUpdateServer::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:71,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:75,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 90
    functionName: MockSoftwareUpdateServer::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/MockSWUServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - Close
    - UnregisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockSoftwareUpdateServer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockSoftwareUpdateServer*::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:101,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:102,1
    - Dst: MockSoftwareUpdateServer*::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:109,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:110,1
    - Dst: MockSoftwareUpdateServer::HandleImageQuery
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:121,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:122,1
    - Dst: MockSoftwareUpdateServer*::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:126,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:133,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 134
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 134
    functionName: MockSoftwareUpdateServer::HandleClientRequest
    functionSourceFile: /src/openweave-core/src/test-apps/MockSWUServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - ExchangeContext*::Close
    - MockSoftwareUpdateServer::HandleImageQuery
    - MockSoftwareUpdateServer*::SendStatusReport
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: "MockSoftwareUpdateServer::HandleClientRequest(ExchangeContext *ec,
      const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo,\n                                                    uint32_t
      profileId, uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::Security::SHA1::SHA1
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:143,1
    - Dst: nl::Weave::Platform::Security::SHA256::SHA256
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:144,1
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:146,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:149,1
    - Dst: strerror
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:149,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:150,1
    - Dst: nl::Weave::Platform::Security::SHA1::Begin
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:157,1
    - Dst: nl::Weave::Platform::Security::SHA256::Begin
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:160,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:163,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:164,1
    - Dst: fread
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:168,1
    - Dst: nl::Weave::Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:171,1
    - Dst: nl::Weave::Platform::Security::SHA256::AddData
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:173,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:178,1
    - Dst: strerror
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:178,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:179,1
    - Dst: nl::Weave::Platform::Security::SHA1::Finish
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:183,1
    - Dst: nl::Weave::Platform::Security::SHA256::Finish
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:185,1
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:189,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - imagePath
    - integrityType
    - digest
    argTypes:
    - char*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 192
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 192
    functionName: MockSoftwareUpdateServer::GenerateImageDigest
    functionSourceFile: /src/openweave-core/src/test-apps/MockSWUServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Platform::Security::SHA256::AddData
    - nl::Weave::Platform::Security::SHA256::Finish
    - fread
    - nl::Weave::Platform::Security::SHA1::Begin
    - ExitNow
    - fclose
    - nl::Weave::Platform::Security::SHA256::Begin
    - printf
    - nl::Weave::Platform::Security::SHA1::SHA1
    - nl::Weave::Platform::Security::SHA1::AddData
    - nl::Weave::Platform::Security::SHA256::SHA256
    - fopen
    - strerror
    - nl::Weave::Platform::Security::SHA1::Finish
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockSoftwareUpdateServer::GenerateImageDigest(const char *imagePath,
      uint8_t integrityType, uint8_t *digest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReferencedString::ReferencedString
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:199,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:205,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:228,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:229,1
    - Dst: MockSoftwareUpdateServer::GenerateImageDigest
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:232,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:233,1
    - Dst: IntegritySpec::init
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:235,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:236,1
    - Dst: ReferencedString::init
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:238,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:238,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:239,1
    - Dst: ImageQueryResponse::init
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:241,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:243,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:245,1
    - Dst: ImageQueryResponse::pack
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:246,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:247,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:252,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:253,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 257
    functionName: MockSoftwareUpdateServer::SendImageQueryResponse
    functionSourceFile: /src/openweave-core/src/test-apps/MockSWUServer.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - ReferencedString::init
    - ReferencedString::ReferencedString
    - ImageQueryResponse::init
    - VerifyOrExit
    - ExitNow
    - strlen
    - printf
    - IntegritySpec::init
    - ImageQueryResponse::pack
    - SuccessOrExit
    - MockSoftwareUpdateServer::GenerateImageDigest
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockSoftwareUpdateServer::SendImageQueryResponse()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:263,1
    - Dst: StatusReport::init
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:266,1
    - Dst: StatusReport::pack
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:268,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:269,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:271,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 277
    functionName: MockSoftwareUpdateServer::SendImageQueryStatus
    functionSourceFile: /src/openweave-core/src/test-apps/MockSWUServer.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - StatusReport::pack
    - StatusReport::init
    - SuccessOrExit
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockSoftwareUpdateServer::SendImageQueryStatus()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SoftwareUpdate::ImageQuery::parse
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:291,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:293,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:294,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:295,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:296,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:297,1
    - Dst: ImageQuery::version::printString
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:297,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:298,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:299,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:300,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:319,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:319,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:325,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:334,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:334,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:341,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:350,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:350,1
    - Dst: MockSoftwareUpdateServer*::SendImageQueryResponse
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:367,1
    - Dst: MockSoftwareUpdateServer*::SendImageQueryStatus
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:371,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 378
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 378
    functionName: MockSoftwareUpdateServer::HandleImageQuery
    functionSourceFile: /src/openweave-core/src/test-apps/MockSWUServer.cpp
    functionUses: 1
    functionsReached:
    - VerifyOrExit
    - MockSoftwareUpdateServer*::SendImageQueryResponse
    - ImageQuery::version::printString
    - printf
    - MockSoftwareUpdateServer*::SendImageQueryStatus
    - nl::Weave::Profiles::SoftwareUpdate::ImageQuery::parse
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "MockSoftwareUpdateServer::HandleImageQuery(ExchangeContext *ec, const
      IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo,\n                                                    uint32_t
      profileId, uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:384,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:386,1
    - Dst: nl::Weave::WeaveServerBase::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:387,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:393,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - statusProfileId
    - statusCode
    - sysError
    argTypes:
    - uint32_t
    - uint16_t
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 404
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 404
    functionName: MockSoftwareUpdateServer::SendStatusReport
    functionSourceFile: /src/openweave-core/src/test-apps/MockSWUServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - printf
    - Close
    - nl::Weave::WeaveServerBase::SendStatusReport
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockSoftwareUpdateServer::SendStatusReport(uint32_t statusProfileId,
      uint16_t statusCode, WEAVE_ERROR sysError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:411,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:412,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:413,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:414,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:415,1
    - Dst: version::printString
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:415,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:416,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:418,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:419,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:420,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:422,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - aRefImageQuery
    argTypes:
    - ImageQuery*
    constantsTouched: []
    func_position:
      end: 426
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 426
    functionName: MockSoftwareUpdateServer::SetReferenceImageQuery
    functionSourceFile: /src/openweave-core/src/test-apps/MockSWUServer.cpp
    functionUses: 0
    functionsReached:
    - version::printString
    - printf
    linkageType: ''
    returnType: void
    signature: MockSoftwareUpdateServer::SetReferenceImageQuery(ImageQuery *aRefImageQuery)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:434,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:435,1
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:439,1
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - aFileDesignator
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 449
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 449
    functionName: MockSoftwareUpdateServer::SetFileDesignator
    functionSourceFile: /src/openweave-core/src/test-apps/MockSWUServer.cpp
    functionUses: 0
    functionsReached:
    - fopen
    - printf
    - exit
    - fclose
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockSoftwareUpdateServer::SetFileDesignator(const char *aFileDesignator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:457,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:462,1
    - Dst: MockSoftwareUpdateServer::SendImageAnnounce
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - con
    argTypes:
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 467
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 467
    functionName: MockSoftwareUpdateServer::SendImageAnnounce
    functionSourceFile: /src/openweave-core/src/test-apps/MockSWUServer.cpp
    functionUses: 1
    functionsReached:
    - Close
    - MockSoftwareUpdateServer::SendImageAnnounce
    - NewContext
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockSoftwareUpdateServer::SendImageAnnounce(WeaveConnection *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockSoftwareUpdateServer::SendImageAnnounce
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nodeId
    - nodeAddr
    argTypes:
    - uint64_t
    - IPAddress
    constantsTouched: []
    func_position:
      end: 472
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 472
    functionName: MockSoftwareUpdateServer::SendImageAnnounce
    functionSourceFile: /src/openweave-core/src/test-apps/MockSWUServer.cpp
    functionUses: 2
    functionsReached:
    - MockSoftwareUpdateServer::SendImageAnnounce
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockSoftwareUpdateServer::SendImageAnnounce(uint64_t nodeId, IPAddress
      nodeAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:480,1
    - Dst: SelectNodeAddress
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:485,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:488,1
    - Dst: MockSoftwareUpdateServer::SendImageAnnounce
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:492,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - nodeId
    - nodeAddr
    - port
    argTypes:
    - uint64_t
    - IPAddress
    - uint16_t
    constantsTouched: []
    func_position:
      end: 493
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 493
    functionName: MockSoftwareUpdateServer::SendImageAnnounce
    functionSourceFile: /src/openweave-core/src/test-apps/MockSWUServer.cpp
    functionUses: 3
    functionsReached:
    - Close
    - NewContext
    - MockSoftwareUpdateServer::SendImageAnnounce
    - SelectNodeAddress
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockSoftwareUpdateServer::SendImageAnnounce(uint64_t nodeId, IPAddress
      nodeAddr, uint16_t port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:497,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:499,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:502,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:505,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:510,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:510,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockSWUServer.cpp:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 515
      start: 495
    functionDepth: 3
    functionLinenumber: 495
    functionLinenumberEnd: 515
    functionName: MockSoftwareUpdateServer::SendImageAnnounce
    functionSourceFile: /src/openweave-core/src/test-apps/MockSWUServer.cpp
    functionUses: 3
    functionsReached:
    - SendMessage
    - printf
    - Close
    - nl::ErrorStr
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockSoftwareUpdateServer::SendImageAnnounce()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TapAddrAutoconf.cpp:42,1
    - Dst: inet_ntop
      Src: /src/openweave-core/src/test-apps/TapAddrAutoconf.cpp:47,1
    - Dst: malloc
      Src: /src/openweave-core/src/test-apps/TapAddrAutoconf.cpp:54,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TapAddrAutoconf.cpp:54,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/TapAddrAutoconf.cpp:55,1
    - Dst: std::vector<char *>::push_back
      Src: /src/openweave-core/src/test-apps/TapAddrAutoconf.cpp:56,1
    - Dst: freeifaddrs
      Src: /src/openweave-core/src/test-apps/TapAddrAutoconf.cpp:61,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - addresses
    - ifName
    argTypes:
    - std::vector<char *>
    - char*
    constantsTouched: []
    func_position:
      end: 68
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 68
    functionName: CollectTapAddresses
    functionSourceFile: /src/openweave-core/src/test-apps/TapAddrAutoconf.cpp
    functionUses: 1
    functionsReached:
    - strcmp
    - std::vector<char *>::push_back
    - inet_ntop
    - strlen
    - freeifaddrs
    - strcpy
    - malloc
    linkageType: ''
    returnType: int
    signature: CollectTapAddresses(std::vector<char *>  &addresses, const char * ifName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - str
    - ' output'
    argTypes:
    - char*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 131
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 131
    functionName: ParseKeyExportConfig
    functionSourceFile: /src/openweave-core/src/test-apps/weave-key-export.cpp
    functionUses: 0
    functionsReached:
    - ParseInt
    linkageType: ''
    returnType: bool
    signature: ParseKeyExportConfig(const char *str, uint8_t& output)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 239
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 239
    functionName: ResetTestContext
    functionSourceFile: /src/openweave-core/src/test-apps/weave-key-export.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ResetTestContext(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:383,1
    - Dst: nl::Weave::WeaveKeyId::IsValidKeyId
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:383,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:385,1
    - Dst: ParseKeyExportConfig
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:390,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:392,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:400,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:402,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:407,1
    - Dst: KeyExportInterval < 0 || KeyExportInterval >
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:407,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:409,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:418,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 423
      start: 361
    functionDepth: 3
    functionLinenumber: 361
    functionLinenumberEnd: 423
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/weave-key-export.cpp
    functionUses: 0
    functionsReached:
    - KeyExportInterval < 0 || KeyExportInterval >
    - ParseInt
    - ParseKeyExportConfig
    - PrintArgError
    - nl::Weave::WeaveKeyId::IsValidKeyId
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:431,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:445,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:447,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 458
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 458
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/test-apps/weave-key-export.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseNodeId
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:464,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:469,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:476,1
    - Dst: RefreshEndpoints
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:477,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:479,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:479,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:487,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:488,1
    - Dst: StartClientConnection
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:502,1
    - Dst: VerifyOrDie
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:507,1
    - Dst: StartKeyExport
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:511,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:513,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:521,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:521,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 523
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 523
    functionName: DriveSending
    functionSourceFile: /src/openweave-core/src/test-apps/weave-key-export.cpp
    functionUses: 13
    functionsReached:
    - Now
    - StartKeyExport
    - RefreshEndpoints
    - printf
    - StartClientConnection
    - Close
    - ErrorStr
    - VerifyOrDie
    linkageType: ''
    returnType: void
    signature: DriveSending()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:528,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - msgLayer
    - con
    argTypes:
    - WeaveMessageLayer*
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 533
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 533
    functionName: HandleConnectionReceived
    functionSourceFile: /src/openweave-core/src/test-apps/weave-key-export.cpp
    functionUses: 3
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    linkageType: ''
    returnType: void
    signature: HandleConnectionReceived(WeaveMessageLayer *msgLayer, WeaveConnection
      *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:541,1
    - Dst: connect
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:554,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:561,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:561,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:562,1
    - Dst: NewConnection
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:569,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:572,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:572,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:573,1
    - Dst: Connect
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:580,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:583,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:583,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:584,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:586,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 593
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 593
    functionName: StartClientConnection
    functionSourceFile: /src/openweave-core/src/test-apps/weave-key-export.cpp
    functionUses: 4
    functionsReached:
    - Now
    - Connect
    - connect
    - printf
    - Close
    - ErrorStr
    - NewConnection
    linkageType: ''
    returnType: void
    signature: StartClientConnection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:598,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:602,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:602,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:603,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:605,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 620
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 620
    functionName: HandleConnectionComplete
    functionSourceFile: /src/openweave-core/src/test-apps/weave-key-export.cpp
    functionUses: 3
    functionsReached:
    - Now
    - WeaveConnection*::Close
    - WeaveConnection*::PeerAddr::ToString
    - printf
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:625,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:628,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:630,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:630,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 641
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 641
    functionName: HandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/test-apps/weave-key-export.cpp
    functionUses: 2
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    - WeaveConnection*::Close
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:650,1
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:656,1
    - Dst: ToString
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:661,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:664,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:665,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 6
    argNames:
    - sm
    - con
    - reqState
    - exportedKeyId
    - exportedKey
    - exportedKeyLen
    argTypes:
    - WeaveSecurityManager*
    - WeaveConnection*
    - void*
    - uint32_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 667
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 667
    functionName: HandleKeyExportComplete
    functionSourceFile: /src/openweave-core/src/test-apps/weave-key-export.cpp
    functionUses: 0
    functionsReached:
    - DumpMemoryCStyle
    - Now
    - WeaveConnection*::PeerAddr::ToString
    - ToString
    - printf
    linkageType: ''
    returnType: void
    signature: HandleKeyExportComplete(WeaveSecurityManager *sm, WeaveConnection *con,
      void *reqState, uint32_t exportedKeyId, const uint8_t *exportedKey, uint16_t
      exportedKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:680,1
    - Dst: ToString
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:685,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:689,1
    - Dst: StatusReportStr
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:689,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:691,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:691,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:701,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:709,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:710,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 5
    argNames:
    - sm
    - con
    - reqState
    - localErr
    - statusReport
    argTypes:
    - WeaveSecurityManager*
    - WeaveConnection*
    - void*
    - WEAVE_ERROR
    - StatusReport*
    constantsTouched: []
    func_position:
      end: 717
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 717
    functionName: HandleKeyExportError
    functionSourceFile: /src/openweave-core/src/test-apps/weave-key-export.cpp
    functionUses: 1
    functionsReached:
    - Now
    - WeaveConnection*::PeerAddr::ToString
    - ToString
    - printf
    - ErrorStr
    - Close
    - StatusReportStr
    linkageType: ''
    returnType: void
    signature: HandleKeyExportError(WeaveSecurityManager *sm, WeaveConnection *con,
      void *reqState, WEAVE_ERROR localErr, StatusReport *statusReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseHostPortAndInterface
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:730,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:730,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:733,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:734,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:737,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:739,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:740,1
    - Dst: InterfaceNameToId
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:745,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:748,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:749,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 752
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 752
    functionName: ParseDestAddress
    functionSourceFile: /src/openweave-core/src/test-apps/weave-key-export.cpp
    functionUses: 4
    functionsReached:
    - ParseHostPortAndInterface
    - exit
    - nl::Inet::IPAddress::FromString
    - InterfaceNameToId
    - strlen
    - printf
    linkageType: ''
    returnType: void
    signature: ParseDestAddress()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:758,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:761,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:761,1
    - Dst: Now
      Src: /src/openweave-core/src/test-apps/weave-key-export.cpp:763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - anAppState
    - anError
    - aReport
    argTypes:
    - void*
    - WEAVE_ERROR
    - StatusReport*
    constantsTouched: []
    func_position:
      end: 766
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 766
    functionName: HandleServiceMgrStatus
    functionSourceFile: /src/openweave-core/src/test-apps/weave-key-export.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Now
    - printf
    linkageType: ''
    returnType: void
    signature: HandleServiceMgrStatus(void* anAppState, WEAVE_ERROR anError, StatusReport
      *aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddress*::ToString
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:72,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:73,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - appState
    - err
    - addrCount
    - addrArray
    argTypes:
    - void*
    - INET_ERROR
    - uint8_t
    - IPAddress*
    constantsTouched: []
    func_position:
      end: 77
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 77
    functionName: HandleDNSResolveComplete
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp
    functionUses: 0
    functionsReached:
    - IPAddress*::ToString
    - printf
    linkageType: ''
    returnType: void
    signature: HandleDNSResolveComplete(void *appState, INET_ERROR err, uint8_t addrCount,
      IPAddress *addrArray)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aLayer
    - aAppState
    - aError
    argTypes:
    - Layer*
    - void*
    - Error
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: HandleTimer
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: HandleTimer(Layer* aLayer, void* aAppState, Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewRawEndPoint
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:104,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:105,1
    - Dst: NewUDPEndPoint
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:109,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:110,1
    - Dst: NewTunEndPoint
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:114,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:115,1
    - Dst: NewTCPEndPoint
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:119,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:120,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:123,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:124,1
    - Dst: ResolveHostAddress
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:127,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:128,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:132,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 134
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 134
    functionName: TestInetPre
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp
    functionUses: 0
    functionsReached:
    - NewRawEndPoint
    - InitSystemLayer
    - NewTunEndPoint
    - NL_TEST_ASSERT
    - InitNetwork
    - StartTimer
    - NewTCPEndPoint
    - NewUDPEndPoint
    - ResolveHostAddress
    linkageType: ''
    returnType: void
    signature: TestInetPre(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:151,1
    - Dst: ResolveHostAddress
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:155,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:156,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:162,1
    - Dst: ResolveHostAddress
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:167,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:168,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:174,1
    - Dst: ResolveHostAddress
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:179,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:180,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:186,1
    - Dst: ResolveHostAddress
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:190,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:191,1
    - Dst: ResolveHostAddress
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:193,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:194,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 196
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 196
    functionName: TestResolveHostAddress
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - ResolveHostAddress
    - memset
    - ServiceNetwork
    linkageType: ''
    returnType: void
    signature: TestResolveHostAddress(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseHostPortAndInterface
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:212,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:212,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:213,1
    - Dst: ParseHostPortAndInterface
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:217,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:217,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 220
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 220
    functionName: TestParseHost
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - NL_TEST_ASSERT
    - ParseHostPortAndInterface
    linkageType: ''
    returnType: void
    signature: TestParseHost(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MapErrorPOSIX
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:226,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:227,1
    - Dst: DescribeErrorPOSIX
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:227,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:228,1
    - Dst: IsErrorPOSIX
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 229
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 229
    functionName: TestInetError
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp
    functionUses: 0
    functionsReached:
    - MapErrorPOSIX
    - NL_TEST_ASSERT
    - IsErrorPOSIX
    - DescribeErrorPOSIX
    linkageType: ''
    returnType: void
    signature: TestInetError(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InterfaceNameToId
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:241,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:242,1
    - Dst: GetInterfaceName
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:244,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:245,1
    - Dst: GetInterfaceName
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:247,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:248,1
    - Dst: GetInterfaceFromAddr
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:250,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:251,1
    - Dst: GetLinkLocalAddr
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:253,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:254,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:256,1
    - Dst: InterfaceIterator::HasCurrent
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:257,1
    - Dst: InterfaceIterator::Next
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:257,1
    - Dst: InterfaceIterator::GetInterface
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:259,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:260,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:261,1
    - Dst: InterfaceIterator::GetInterfaceName
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:262,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:263,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:264,1
    - Dst: InterfaceIterator::IsUp
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:267,1
    - Dst: InterfaceIterator::SupportsMulticast
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:268,1
    - Dst: InterfaceIterator::HasBroadcastAddress
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:269,1
    - Dst: GetLinkLocalAddr
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:271,1
    - Dst: MatchLocalIPv6Subnet
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:272,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:274,1
    - Dst: InterfaceIterator::Next
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:274,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:275,1
    - Dst: InterfaceIterator::GetInterface
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:275,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:276,1
    - Dst: InterfaceIterator::GetInterfaceName
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:276,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:277,1
    - Dst: InterfaceIterator::SupportsMulticast
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:277,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:278,1
    - Dst: InterfaceIterator::HasBroadcastAddress
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:278,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:280,1
    - Dst: InterfaceAddressIterator::HasCurrent
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:281,1
    - Dst: InterfaceAddressIterator::Next
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:281,1
    - Dst: InterfaceAddressIterator::GetAddress
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:282,1
    - Dst: InterfaceAddressIterator::GetAddressWithPrefix
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:283,1
    - Dst: IPPrefix::IPAddr::ToString
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:285,1
    - Dst: InterfaceAddressIterator::GetInterfaceId
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:286,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:287,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:288,1
    - Dst: InterfaceAddressIterator::GetInterfaceName
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:289,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:290,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:291,1
    - Dst: memchr
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:291,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:292,1
    - Dst: InterfaceAddressIterator::IsUp
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:297,1
    - Dst: InterfaceAddressIterator::SupportsMulticast
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:298,1
    - Dst: InterfaceAddressIterator::HasBroadcastAddress
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:299,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:301,1
    - Dst: InterfaceAddressIterator::Next
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:301,1
    - Dst: InterfaceAddressIterator::GetAddressWithPrefix
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:302,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:303,1
    - Dst: IPPrefix::IsZero
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:303,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:304,1
    - Dst: InterfaceAddressIterator::GetInterface
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:304,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:305,1
    - Dst: InterfaceAddressIterator::GetInterfaceName
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:305,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:306,1
    - Dst: InterfaceAddressIterator::SupportsMulticast
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:306,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:307,1
    - Dst: InterfaceAddressIterator::HasBroadcastAddress
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:307,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 47
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 308
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 308
    functionName: TestInetInterface
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp
    functionUses: 0
    functionsReached:
    - InterfaceAddressIterator::HasBroadcastAddress
    - NL_TEST_ASSERT
    - InterfaceAddressIterator::GetAddressWithPrefix
    - InterfaceIterator::SupportsMulticast
    - MatchLocalIPv6Subnet
    - InterfaceAddressIterator::Next
    - InterfaceIterator::Next
    - printf
    - InterfaceIterator::HasBroadcastAddress
    - InterfaceAddressIterator::IsUp
    - InterfaceIterator::GetInterfaceName
    - InterfaceAddressIterator::GetInterfaceId
    - memchr
    - InterfaceAddressIterator::GetAddress
    - IPPrefix::IsZero
    - InterfaceAddressIterator::SupportsMulticast
    - GetInterfaceFromAddr
    - InterfaceAddressIterator::GetInterface
    - memset
    - GetInterfaceName
    - GetLinkLocalAddr
    - InterfaceIterator::GetInterface
    - InterfaceAddressIterator::GetInterfaceName
    - InterfaceAddressIterator::HasCurrent
    - InterfaceNameToId
    - IPPrefix::IPAddr::ToString
    - InterfaceIterator::HasCurrent
    - InterfaceIterator::IsUp
    linkageType: ''
    returnType: void
    signature: TestInetInterface(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:330,1
    - Dst: NewRawEndPoint
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:335,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:336,1
    - Dst: NewRawEndPoint
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:339,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:340,1
    - Dst: NewUDPEndPoint
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:343,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:344,1
    - Dst: NewTunEndPoint
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:347,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:348,1
    - Dst: NewTCPEndPoint
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:351,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:352,1
    - Dst: GetLinkLocalAddr
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:354,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:355,1
    - Dst: GetInterfaceFromAddr
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:356,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:357,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:363,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:363,1
    - Dst: RawEndPoint*::Bind
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:367,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:368,1
    - Dst: RawEndPoint*::Bind
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:370,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:371,1
    - Dst: RawEndPoint*::BindIPv6LinkLocal
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:372,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:373,1
    - Dst: RawEndPoint*::BindInterface
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:375,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:376,1
    - Dst: RawEndPoint*::BindIPv6LinkLocal
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:381,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:382,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:382,1
    - Dst: RawEndPoint*::Listen
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:388,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:389,1
    - Dst: RawEndPoint*::Listen
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:395,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:396,1
    - Dst: RawEndPoint*::Bind
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:403,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:404,1
    - Dst: nl::Weave::System::MapErrorPOSIX
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:404,1
    - Dst: RawEndPoint*::SetICMPFilter
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:407,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:408,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:418,1
    - Dst: IPAddress::Type
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:418,1
    - Dst: RawEndPoint*::SendTo
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:420,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:421,1
    - Dst: RawEndPoint*::Free
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:422,1
    - Dst: UDPEndPoint*::Listen
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:426,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:427,1
    - Dst: UDPEndPoint*::Bind
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:428,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:429,1
    - Dst: UDPEndPoint*::Bind
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:430,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:431,1
    - Dst: UDPEndPoint*::Bind
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:433,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:434,1
    - Dst: UDPEndPoint*::Bind
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:437,1
    - Dst: UDPEndPoint*::BindInterface
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:438,1
    - Dst: UDPEndPoint*::GetBoundInterface
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:439,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:440,1
    - Dst: UDPEndPoint*::Listen
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:442,1
    - Dst: UDPEndPoint*::Listen
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:443,1
    - Dst: UDPEndPoint*::Bind
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:444,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:445,1
    - Dst: UDPEndPoint*::BindInterface
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:446,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:447,1
    - Dst: UDPEndPoint*::Free
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:448,1
    - Dst: NewUDPEndPoint
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:450,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:451,1
    - Dst: UDPEndPoint*::Bind
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:453,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:454,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:455,1
    - Dst: UDPEndPoint*::SendTo
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:456,1
    - Dst: UDPEndPoint*::Free
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:457,1
    - Dst: TCPEndPoint*::GetPeerInfo
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:461,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:462,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:463,1
    - Dst: TCPEndPoint*::Send
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:464,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:465,1
    - Dst: TCPEndPoint*::EnableKeepAlive
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:466,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:467,1
    - Dst: TCPEndPoint*::DisableKeepAlive
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:468,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:469,1
    - Dst: TCPEndPoint*::AckReceive
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:470,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:471,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:472,1
    - Dst: TCPEndPoint*::PendingReceiveLength
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:472,1
    - Dst: TCPEndPoint*::Listen
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:473,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:474,1
    - Dst: TCPEndPoint*::GetLocalInfo
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:475,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:476,1
    - Dst: TCPEndPoint*::Bind
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:478,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:479,1
    - Dst: TCPEndPoint*::Bind
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:481,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:482,1
    - Dst: TCPEndPoint*::Bind
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:484,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:485,1
    - Dst: TCPEndPoint*::Bind
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:487,1
    - Dst: TCPEndPoint*::Bind
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:488,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:489,1
    - Dst: TCPEndPoint*::Listen
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:490,1
    - Dst: TCPEndPoint*::Connect
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:492,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:493,1
    - Dst: TunEndPoint*::Init
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:498,1
    - Dst: TunEndPoint*::GetTunnelInterfaceId
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:499,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:500,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:501,1
    - Dst: TunEndPoint*::IsInterfaceUp
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:501,1
    - Dst: TunEndPoint*::InterfaceUp
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:502,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:503,1
    - Dst: TunEndPoint*::InterfaceDown
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:504,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:505,1
    - Dst: TunEndPoint*::Send
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:506,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:507,1
    - Dst: TunEndPoint*::Free
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:508,1
    - Dst: TCPEndPoint*::Shutdown
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:511,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 105
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 512
      start: 310
    functionDepth: 3
    functionLinenumber: 310
    functionLinenumberEnd: 512
    functionName: TestInetEndPoint
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp
    functionUses: 0
    functionsReached:
    - RawEndPoint*::BindIPv6LinkLocal
    - RawEndPoint*::SetICMPFilter
    - NL_TEST_ASSERT
    - TunEndPoint*::InterfaceUp
    - TunEndPoint*::Send
    - UDPEndPoint*::SendTo
    - RawEndPoint*::Free
    - TunEndPoint*::Init
    - RawEndPoint*::BindInterface
    - TCPEndPoint*::GetLocalInfo
    - UDPEndPoint*::Listen
    - TCPEndPoint*::EnableKeepAlive
    - nl::Weave::System::PacketBuffer::New
    - NewRawEndPoint
    - TCPEndPoint*::AckReceive
    - TCPEndPoint*::PendingReceiveLength
    - TunEndPoint*::GetTunnelInterfaceId
    - TCPEndPoint*::GetPeerInfo
    - TunEndPoint*::IsInterfaceUp
    - NewTunEndPoint
    - RawEndPoint*::Bind
    - TCPEndPoint*::Listen
    - TCPEndPoint*::Shutdown
    - TCPEndPoint*::Send
    - UDPEndPoint*::Free
    - TunEndPoint*::InterfaceDown
    - TCPEndPoint*::Bind
    - UDPEndPoint*::GetBoundInterface
    - GetInterfaceFromAddr
    - RawEndPoint*::SendTo
    - GetLinkLocalAddr
    - NewTCPEndPoint
    - nl::Weave::System::MapErrorPOSIX
    - NewUDPEndPoint
    - RawEndPoint*::Listen
    - IPAddress::Type
    - TunEndPoint*::Free
    - TCPEndPoint*::Connect
    - nl::Inet::IPAddress::FromString
    - UDPEndPoint*::Bind
    - UDPEndPoint*::BindInterface
    - TCPEndPoint*::DisableKeepAlive
    linkageType: ''
    returnType: void
    signature: TestInetEndPoint(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewRawEndPoint
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:527,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:528,1
    - Dst: NewUDPEndPoint
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:531,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:532,1
    - Dst: NewTunEndPoint
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:536,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:537,1
    - Dst: NewTCPEndPoint
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:541,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:542,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:547,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:548,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:552,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:553,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:555,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:556,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 557
      start: 515
    functionDepth: 3
    functionLinenumber: 515
    functionLinenumberEnd: 557
    functionName: TestInetEndPointLimit
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp
    functionUses: 0
    functionsReached:
    - NewRawEndPoint
    - NewTunEndPoint
    - ShutdownSystemLayer
    - NL_TEST_ASSERT
    - ShutdownNetwork
    - StartTimer
    - NewTCPEndPoint
    - NewUDPEndPoint
    linkageType: ''
    returnType: void
    signature: TestInetEndPointLimit(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 587
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 587
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestSetup(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 596
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 596
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestTeardown(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetSIGUSR1Handler
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:601,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:603,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:605,1
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:617,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:620,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp:622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 626
      start: 599
    functionDepth: 2
    functionLinenumber: 599
    functionLinenumberEnd: 626
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp
    functionUses: 0
    functionsReached:
    - ParseArgs
    - exit
    - SetSIGUSR1Handler
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:56,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:59,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:59,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:60,1
    - Dst: nl::Weave::TLV::TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:62,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:63,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:65,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:65,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:66,1
    - Dst: LoadCerts
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:68,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - serviceConfig
    - serviceConfigLen
    - ' certSet'
    argTypes:
    - uint8_t*
    - uint16_t
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 73
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 73
    functionName: LoadCertsFromServiceConfig
    functionSourceFile: /src/openweave-core/src/test-apps/CASEOptions.cpp
    functionUses: 1
    functionsReached:
    - LoadCerts
    - nl::Weave::TLV::TLVReader::EnterContainer
    - ContextTag
    - ProfileTag
    - SuccessOrExit
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::TLVReader::Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LoadCertsFromServiceConfig(const uint8_t *serviceConfig, uint16_t serviceConfigLen,
      WeaveCertificateSet& certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - str
    - ' output'
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 93
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 93
    functionName: ParseCASEConfig
    functionSourceFile: /src/openweave-core/src/test-apps/CASEOptions.cpp
    functionUses: 0
    functionsReached:
    - ParseInt
    linkageType: ''
    returnType: bool
    signature: ParseCASEConfig(const char *str, uint32_t& output)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:110,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:115,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:134,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - strConst
    - ' output'
    argTypes:
    - char*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 137
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 137
    functionName: ParseAllowedCASEConfigs
    functionSourceFile: /src/openweave-core/src/test-apps/CASEOptions.cpp
    functionUses: 0
    functionsReached:
    - free
    - ParseInt
    - strchr
    linkageType: ''
    returnType: bool
    signature: ParseAllowedCASEConfigs(const char *strConst, uint8_t& output)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 216
    functionName: CASEOptions::CASEOptions
    functionSourceFile: /src/openweave-core/src/test-apps/CASEOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CASEOptions::CASEOptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CASEOptions::ReadCertFile
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:225,1
    - Dst: CASEOptions::ReadPrivateKeyFile
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:229,1
    - Dst: CASEOptions::ReadCertFile
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:233,1
    - Dst: ParseCASEConfig
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:241,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:243,1
    - Dst: ParseAllowedCASEConfigs
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:248,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:250,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:266,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 271
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 271
    functionName: CASEOptions::HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/CASEOptions.cpp
    functionUses: 0
    functionsReached:
    - ParseCASEConfig
    - CASEOptions::ReadPrivateKeyFile
    - CASEOptions::ReadCertFile
    - PrintArgError
    - ParseAllowedCASEConfigs
    linkageType: ''
    returnType: bool
    signature: CASEOptions::HandleOption(const char *progName, OptionSet *optSet,
      int id, const char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadFileArg
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:281,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:286,1
    - Dst: nl::Base64Decode
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:288,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:291,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - fileName
    - ' certBuf'
    - ' certLen'
    argTypes:
    - char*
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 301
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 301
    functionName: CASEOptions::ReadCertFile
    functionSourceFile: /src/openweave-core/src/test-apps/CASEOptions.cpp
    functionUses: 1
    functionsReached:
    - memcmp
    - nl::Base64Decode
    - free
    - printf
    - ReadFileArg
    linkageType: ''
    returnType: bool
    signature: CASEOptions::ReadCertFile(const char *fileName, uint8_t *& certBuf,
      uint16_t& certLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadFileArg
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:311,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:316,1
    - Dst: nl::Base64Decode
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:318,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:321,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:322,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - fileName
    - ' keyBuf'
    - ' keyLen'
    argTypes:
    - char*
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 331
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 331
    functionName: CASEOptions::ReadPrivateKeyFile
    functionSourceFile: /src/openweave-core/src/test-apps/CASEOptions.cpp
    functionUses: 1
    functionsReached:
    - memcmp
    - nl::Base64Decode
    - free
    - printf
    - ReadFileArg
    linkageType: ''
    returnType: bool
    signature: CASEOptions::ReadPrivateKeyFile(const char *fileName, uint8_t *& keyBuf,
      uint16_t& keyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetTestNodeCert
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:340,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' nodeCert'
    - ' nodeCertLen'
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: CASEOptions::GetNodeCert
    functionSourceFile: /src/openweave-core/src/test-apps/CASEOptions.cpp
    functionUses: 0
    functionsReached:
    - printf
    - GetTestNodeCert
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CASEOptions::GetNodeCert(const uint8_t *& nodeCert, uint16_t & nodeCertLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetTestNodePrivateKey
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:356,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:358,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' weavePrivKey'
    - ' weavePrivKeyLen'
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 363
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 363
    functionName: CASEOptions::GetNodePrivateKey
    functionSourceFile: /src/openweave-core/src/test-apps/CASEOptions.cpp
    functionUses: 0
    functionsReached:
    - GetTestNodePrivateKey
    - printf
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CASEOptions::GetNodePrivateKey(const uint8_t *& weavePrivKey, uint16_t&
      weavePrivKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CASEOptions::GetNodeCert
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:381,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:382,1
    - Dst: EncodeCASECertInfo
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:384,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ' msgCtx'
    - ' writer'
    argTypes:
    - BeginSessionContext
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 389
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 389
    functionName: CASEOptions::EncodeNodeCertInfo
    functionSourceFile: /src/openweave-core/src/test-apps/CASEOptions.cpp
    functionUses: 0
    functionsReached:
    - CASEOptions::GetNodeCert
    - EncodeCASECertInfo
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CASEOptions::EncodeNodeCertInfo(const BeginSessionContext & msgCtx,
      TLVWriter & writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CASEOptions::GetNodePrivateKey
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:398,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:399,1
    - Dst: GenerateAndEncodeWeaveECDSASignature
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:401,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - ' msgCtx'
    - msgHash
    - msgHashLen
    - ' writer'
    - tag
    argTypes:
    - BeginSessionContext
    - uint8_t*
    - uint8_t
    - TLVWriter
    - uint64_t
    constantsTouched: []
    func_position:
      end: 406
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 406
    functionName: CASEOptions::GenerateNodeSignature
    functionSourceFile: /src/openweave-core/src/test-apps/CASEOptions.cpp
    functionUses: 0
    functionsReached:
    - GenerateAndEncodeWeaveECDSASignature
    - CASEOptions::GetNodePrivateKey
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "CASEOptions::GenerateNodeSignature(const BeginSessionContext & msgCtx,\n
      \       const uint8_t * msgHash, uint8_t msgHashLen, TLVWriter & writer, uint64_t
      tag)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CASEOptions::GetNodePayload
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:411,1
    - Dst: IsInitiator
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' msgCtx'
    - payloadBuf
    - payloadBufSize
    - ' payloadLen'
    argTypes:
    - BeginSessionContext
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 412
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 412
    functionName: CASEOptions::EncodeNodePayload
    functionSourceFile: /src/openweave-core/src/test-apps/CASEOptions.cpp
    functionUses: 0
    functionsReached:
    - CASEOptions::GetNodePayload
    - IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "CASEOptions::EncodeNodePayload(const BeginSessionContext & msgCtx,\n
      \       uint8_t * payloadBuf, uint16_t payloadBufSize, uint16_t & payloadLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CASEOptions::BeginCertValidation
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:417,1
    - Dst: IsInitiator
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' msgCtx'
    - ' validCtx'
    - ' certSet'
    argTypes:
    - BeginSessionContext
    - ValidationContext
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 418
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 418
    functionName: CASEOptions::BeginValidation
    functionSourceFile: /src/openweave-core/src/test-apps/CASEOptions.cpp
    functionUses: 0
    functionsReached:
    - CASEOptions::BeginCertValidation
    - IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "CASEOptions::BeginValidation(const BeginSessionContext & msgCtx, ValidationContext
      & validCtx,\n        WeaveCertificateSet & certSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CASEOptions::HandleCertValidationResult
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:423,1
    - Dst: IsInitiator
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' msgCtx'
    - ' validCtx'
    - ' certSet'
    - ' validRes'
    argTypes:
    - BeginSessionContext
    - ValidationContext
    - WeaveCertificateSet
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 424
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 424
    functionName: CASEOptions::HandleValidationResult
    functionSourceFile: /src/openweave-core/src/test-apps/CASEOptions.cpp
    functionUses: 0
    functionsReached:
    - IsInitiator
    - CASEOptions::HandleCertValidationResult
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "CASEOptions::HandleValidationResult(const BeginSessionContext & msgCtx,
      ValidationContext & validCtx,\n        WeaveCertificateSet & certSet, WEAVE_ERROR
      & validRes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CASEOptions::EndCertValidation
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' msgCtx'
    - ' validCtx'
    - ' certSet'
    argTypes:
    - BeginSessionContext
    - ValidationContext
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 430
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 430
    functionName: CASEOptions::EndValidation
    functionSourceFile: /src/openweave-core/src/test-apps/CASEOptions.cpp
    functionUses: 0
    functionsReached:
    - CASEOptions::EndCertValidation
    linkageType: ''
    returnType: void
    signature: "CASEOptions::EndValidation(const BeginSessionContext & msgCtx, ValidationContext
      & validCtx,\n        WeaveCertificateSet & certSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CASEOptions::GetNodeCert
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:449,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:450,1
    - Dst: EncodeCASECertInfo
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:452,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:453,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - isInitiator
    - buf
    - bufSize
    - ' certInfoLen'
    argTypes:
    - bool
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 457
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 457
    functionName: CASEOptions::GetNodeCertInfo
    functionSourceFile: /src/openweave-core/src/test-apps/CASEOptions.cpp
    functionUses: 0
    functionsReached:
    - CASEOptions::GetNodeCert
    - EncodeCASECertInfo
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CASEOptions::GetNodeCertInfo(bool isInitiator, uint8_t *buf, uint16_t
      bufSize, uint16_t& certInfoLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CASEOptions::GetNodePrivateKey
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - isInitiator
    - ' weavePrivKey'
    - ' weavePrivKeyLen'
    argTypes:
    - bool
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 463
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 463
    functionName: CASEOptions::GetNodePrivateKey
    functionSourceFile: /src/openweave-core/src/test-apps/CASEOptions.cpp
    functionUses: 2
    functionsReached:
    - CASEOptions::GetNodePrivateKey
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CASEOptions::GetNodePrivateKey(bool isInitiator, const uint8_t *& weavePrivKey,
      uint16_t& weavePrivKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - weavePrivKey
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 470
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 470
    functionName: CASEOptions::ReleaseNodePrivateKey
    functionSourceFile: /src/openweave-core/src/test-apps/CASEOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CASEOptions::ReleaseNodePrivateKey(const uint8_t *weavePrivKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:480,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:482,1
    - Dst: GetDeviceDesc
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:491,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeTLV
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:493,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - isInitiator
    - buf
    - bufSize
    - ' payloadLen'
    argTypes:
    - bool
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 501
      start: 474
    functionDepth: 2
    functionLinenumber: 474
    functionLinenumberEnd: 501
    functionName: CASEOptions::GetNodePayload
    functionSourceFile: /src/openweave-core/src/test-apps/CASEOptions.cpp
    functionUses: 1
    functionsReached:
    - VerifyOrExit
    - GetDeviceDesc
    - memcpy
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeTLV
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CASEOptions::GetNodePayload(bool isInitiator, uint8_t *buf, uint16_t
      bufSize, uint16_t& payloadLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:510,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:511,1
    - Dst: LoadCertsFromServiceConfig
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:515,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:516,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:534,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:535,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:538,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:539,1
    - Dst: GetTestCACert
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:545,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:547,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:548,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:551,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:552,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:554,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:555,1
    - Dst: GetTestCACert
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:557,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:559,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:560,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:563,1
    - Dst: SecondsSinceEpochToPackedCertTime
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:564,1
    - Dst: time
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:564,1
    - Dst: malloc
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:570,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 3
    argNames:
    - isInitiator
    - ' certSet'
    - ' validContext'
    argTypes:
    - bool
    - WeaveCertificateSet
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 576
      start: 505
    functionDepth: 3
    functionLinenumber: 505
    functionLinenumberEnd: 576
    functionName: CASEOptions::BeginCertValidation
    functionSourceFile: /src/openweave-core/src/test-apps/CASEOptions.cpp
    functionUses: 1
    functionsReached:
    - LoadCert
    - LoadCertsFromServiceConfig
    - SecondsSinceEpochToPackedCertTime
    - memset
    - GetTestCACert
    - Init
    - SuccessOrExit
    - malloc
    - time
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CASEOptions::BeginCertValidation(bool isInitiator, WeaveCertificateSet&
      certSet, ValidationContext& validContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:638,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:640,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:640,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:643,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:645,1
    - Dst: PrintCertValidationResults
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:646,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 6
    argNames:
    - isInitiator
    - ' validRes'
    - peerCert
    - peerNodeId
    - ' certSet'
    - ' validContext'
    argTypes:
    - bool
    - WEAVE_ERROR
    - WeaveCertificateData*
    - uint64_t
    - WeaveCertificateSet
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 650
      start: 579
    functionDepth: 2
    functionLinenumber: 579
    functionLinenumberEnd: 650
    functionName: CASEOptions::HandleCertValidationResult
    functionSourceFile: /src/openweave-core/src/test-apps/CASEOptions.cpp
    functionUses: 1
    functionsReached:
    - printf
    - nl::ErrorStr
    - PrintCertValidationResults
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "CASEOptions::HandleCertValidationResult(bool isInitiator, WEAVE_ERROR&
      validRes, WeaveCertificateData *peerCert,\n        uint64_t peerNodeId, WeaveCertificateSet&
      certSet, ValidationContext& validContext)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openweave-core/src/test-apps/CASEOptions.cpp:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' certSet'
    - ' validContext'
    argTypes:
    - WeaveCertificateSet
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 658
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 658
    functionName: CASEOptions::EndCertValidation
    functionSourceFile: /src/openweave-core/src/test-apps/CASEOptions.cpp
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CASEOptions::EndCertValidation(WeaveCertificateSet& certSet, ValidationContext&
      validContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ENCODE_BOOLEAN
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:77,1
    - Dst: ASN1_ENCODE_BOOLEAN
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:78,1
    - Dst: ASN1_ENCODE_BIT_STRING
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:81,1
    - Dst: ASN1_ENCODE_BIT_STRING
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:82,1
    - Dst: ASN1_ENCODE_BIT_STRING
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:83,1
    - Dst: ASN1_ENCODE_BIT_STRING
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:87,1
    - Dst: ASN1_ENCODE_BIT_STRING
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:88,1
    - Dst: ASN1_ENCODE_BIT_STRING
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:90,1
    - Dst: ASN1_ENCODE_BIT_STRING
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ' writer'
    argTypes:
    - ASN1Writer
    constantsTouched: []
    func_position:
      end: 93
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 93
    functionName: DoEncode
    functionSourceFile: /src/openweave-core/src/test-apps/TestASN1.cpp
    functionUses: 0
    functionsReached:
    - ASN1_ENCODE_BOOLEAN
    - ASN1_ENCODE_BIT_STRING
    linkageType: ''
    returnType: ASN1_ERROR
    signature: DoEncode(ASN1Writer & writer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1Writer::Init
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:131,1
    - Dst: DoEncode
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:133,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:134,1
    - Dst: ASN1Writer::Finalize
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:136,1
    - Dst: ASN1Writer::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:138,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:145,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:146,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:148,1
    - Dst: fwrite
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:153,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:158,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:159,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:165,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:166,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:172,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:175,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:175,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:176,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 178
    functionName: EncodeTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestASN1.cpp
    functionUses: 0
    functionsReached:
    - DoEncode
    - ASN1Writer::GetLengthWritten
    - ASN1Writer::Init
    - exit
    - fwrite
    - ASN1Writer::Finalize
    - printf
    - SuccessOrExit
    - fprintf
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: EncodeTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1Reader::Init
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:189,1
    - Dst: ASN1_PARSE_BOOLEAN
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:192,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:192,1
    - Dst: ASN1_PARSE_BOOLEAN
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:193,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:193,1
    - Dst: ASN1_PARSE_BIT_STRING
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:196,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:196,1
    - Dst: ASN1_PARSE_BIT_STRING
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:197,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:197,1
    - Dst: ASN1_PARSE_BIT_STRING
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:198,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:198,1
    - Dst: ASN1_PARSE_BIT_STRING
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:202,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:202,1
    - Dst: ASN1_PARSE_BIT_STRING
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:203,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:203,1
    - Dst: ASN1_PARSE_BIT_STRING
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:207,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 208
    functionName: DecodeTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestASN1.cpp
    functionUses: 1
    functionsReached:
    - VerifyOrFail
    - ASN1_PARSE_BOOLEAN
    - ASN1_PARSE_BIT_STRING
    - ASN1Reader::Init
    linkageType: ''
    returnType: void
    signature: DecodeTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PARSE_OBJECT_ID
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:237,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:237,1
    - Dst: ASN1_PARSE_INTEGER
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:239,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 241
    functionName: ASN1_PARSE_ENTER_ENCAPSULATED
    functionSourceFile: /src/openweave-core/src/test-apps/TestASN1.cpp
    functionUses: 0
    functionsReached:
    - ASN1_PARSE_INTEGER
    - VerifyOrFail
    - ASN1_PARSE_OBJECT_ID
    linkageType: ''
    returnType: void
    signature: ASN1_PARSE_ENTER_ENCAPSULATED(kASN1TagClass_Universal, kASN1UniversalTag_OctetString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1Writer::InitNullWriter
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:261,1
    - Dst: DoEncode
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:263,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:264,1
    - Dst: ASN1Writer::Finalize
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:266,1
    - Dst: ASN1Writer::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:268,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:272,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:273,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:278,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:281,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:281,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 284
    functionName: NullWriterTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestASN1.cpp
    functionUses: 0
    functionsReached:
    - DoEncode
    - ASN1Writer::GetLengthWritten
    - exit
    - ASN1Writer::Finalize
    - ASN1Writer::InitNullWriter
    - SuccessOrExit
    - fprintf
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: NullWriterTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncodeTest
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:289,1
    - Dst: DecodeTest
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:290,1
    - Dst: NullWriterTest
      Src: /src/openweave-core/src/test-apps/TestASN1.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestASN1.cpp
    functionUses: 0
    functionsReached:
    - EncodeTest
    - NullWriterTest
    - DecodeTest
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: MockDeviceControlServer::MockDeviceControlServer
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MockDeviceControlServer::MockDeviceControlServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockDeviceControlServer::DeviceControlServer::Init
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:58,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:59,1
    - Dst: SetDelegate
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: MockDeviceControlServer::Init
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCServer.cpp
    functionUses: 0
    functionsReached:
    - SetDelegate
    - MockDeviceControlServer::DeviceControlServer::Init
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockDeviceControlServer::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockDeviceControlServer::DeviceControlServer::Shutdown
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: MockDeviceControlServer::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCServer.cpp
    functionUses: 0
    functionsReached:
    - MockDeviceControlServer::DeviceControlServer::Shutdown
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockDeviceControlServer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - resetFlags
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: MockDeviceControlServer::ShouldCloseConBeforeResetConfig
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: MockDeviceControlServer::ShouldCloseConBeforeResetConfig(uint16_t resetFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:80,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:84,1
    - Dst: Reset
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:85,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:90,1
    - Dst: ClearFabricState
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:91,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:96,1
    - Dst: Reset
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - resetFlags
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 101
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 101
    functionName: MockDeviceControlServer::OnResetConfig
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCServer.cpp
    functionUses: 0
    functionsReached:
    - Reset
    - printf
    - ClearFabricState
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockDeviceControlServer::OnResetConfig(uint16_t resetFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: MockDeviceControlServer::OnFailSafeArmed
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCServer.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockDeviceControlServer::OnFailSafeArmed()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: MockDeviceControlServer::OnFailSafeDisarmed
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCServer.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockDeviceControlServer::OnFailSafeDisarmed()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: MockDeviceControlServer::OnRemotePassiveRendezvousStarted
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCServer.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: MockDeviceControlServer::OnRemotePassiveRendezvousStarted()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: MockDeviceControlServer::OnRemotePassiveRendezvousDone
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCServer.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: MockDeviceControlServer::OnRemotePassiveRendezvousDone()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:128,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - peerNodeId
    - peerAddr
    argTypes:
    - uint64_t
    - IPAddress
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: MockDeviceControlServer::OnConnectionMonitorTimeout
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCServer.cpp
    functionUses: 0
    functionsReached:
    - printf
    - IPAddress::ToString
    linkageType: ''
    returnType: void
    signature: MockDeviceControlServer::OnConnectionMonitorTimeout(uint64_t peerNodeId,
      IPAddress peerAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: MockDeviceControlServer::WillStartRemotePassiveRendezvous
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCServer.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockDeviceControlServer::WillStartRemotePassiveRendezvous()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: MockDeviceControlServer::WillCloseRemotePassiveRendezvous
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCServer.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: MockDeviceControlServer::WillCloseRemotePassiveRendezvous()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - resetFlags
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: MockDeviceControlServer::IsResetAllowed
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: MockDeviceControlServer::IsResetAllowed(uint16_t resetFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:154,1
    - Dst: SendSuccessResponse
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:155,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:159,1
    - Dst: MockDeviceControlServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - profileId
    - testId
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 163
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 163
    functionName: MockDeviceControlServer::OnSystemTestStarted
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCServer.cpp
    functionUses: 0
    functionsReached:
    - printf
    - MockDeviceControlServer::SendStatusReport
    - SendSuccessResponse
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockDeviceControlServer::OnSystemTestStarted(uint32_t profileId, uint32_t
      testId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:167,1
    - Dst: SendSuccessResponse
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 172
    functionName: MockDeviceControlServer::OnSystemTestStopped
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCServer.cpp
    functionUses: 0
    functionsReached:
    - printf
    - SendSuccessResponse
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockDeviceControlServer::OnSystemTestStopped()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::DeviceControl::DeviceControlDelegate::EnforceAccessControl
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ec
    - msgProfileId
    - msgType
    - msgInfo
    - ' result'
    argTypes:
    - nl::Weave::ExchangeContext*
    - uint32_t
    - uint8_t
    - nl::Weave::WeaveMessageInfo*
    - AccessControlResult
    constantsTouched: []
    func_position:
      end: 183
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 183
    functionName: MockDeviceControlServer::EnforceAccessControl
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCServer.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::DeviceControl::DeviceControlDelegate::EnforceAccessControl
    linkageType: ''
    returnType: void
    signature: "MockDeviceControlServer::EnforceAccessControl(nl::Weave::ExchangeContext
      *ec, uint32_t msgProfileId, uint8_t msgType,\n            const nl::Weave::WeaveMessageInfo
      *msgInfo, AccessControlResult& result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: MockDeviceControlServer::IsPairedToAccount
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: MockDeviceControlServer::IsPairedToAccount() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:193,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:195,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:197,1
    - Dst: MockDeviceControlServer::DeviceControlServer::SendStatusReport
      Src: /src/openweave-core/src/test-apps/MockDCServer.cpp:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - statusProfileId
    - statusCode
    - sysError
    argTypes:
    - uint32_t
    - uint16_t
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 199
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 199
    functionName: MockDeviceControlServer::SendStatusReport
    functionSourceFile: /src/openweave-core/src/test-apps/MockDCServer.cpp
    functionUses: 1
    functionsReached:
    - MockDeviceControlServer::DeviceControlServer::SendStatusReport
    - printf
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockDeviceControlServer::SendStatusReport(uint32_t statusProfileId,
      uint16_t statusCode, WEAVE_ERROR sysError)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: TestWdmSubscriptionlessNotificationSender::GetInstance
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TestWdmSubscriptionlessNotificationSender
    signature: '* TestWdmSubscriptionlessNotificationSender::GetInstance ()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResourceIdentifier
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: TestWdmSubscriptionlessNotificationSender::TestWdmSubscriptionlessNotificationSender
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp
    functionUses: 0
    functionsReached:
    - ResourceIdentifier
    linkageType: ''
    returnType: void
    signature: TestWdmSubscriptionlessNotificationSender::TestWdmSubscriptionlessNotificationSender()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Binding::DefaultEventHandler
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - apAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - Binding::EventType
    - Binding::InEventParam
    - Binding::OutEventParam
    constantsTouched: []
    func_position:
      end: 80
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 80
    functionName: TestWdmSubscriptionlessNotificationSender::BindingEventCallback
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Binding::DefaultEventHandler
    linkageType: ''
    returnType: void
    signature: "TestWdmSubscriptionlessNotificationSender::BindingEventCallback (void
      * const apAppState,\n                                                       const
      Binding::EventType aEvent,\n                                                       const
      Binding::InEventParam & aInParam,\n                                                       Binding::OutEventParam
      & aOutParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp:88,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp:90,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp:92,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp:93,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp:94,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp:99,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp:100,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp:102,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp:103,1
    - Dst: NewBinding
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp:105,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp:106,1
    - Dst: BeginConfiguration
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp:108,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp:114,1
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - aExchangeMgr
    - destSubnetId
    - destNodeId
    argTypes:
    - nl::Weave::WeaveExchangeManager*
    - uint16_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 124
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 124
    functionName: TestWdmSubscriptionlessNotificationSender::Init
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp
    functionUses: 0
    functionsReached:
    - NewBinding
    - Add
    - VerifyOrExit
    - SubscriptionEngine::GetInstance
    - Release
    - WeaveLogDetail
    - SuccessOrExit
    - BeginConfiguration
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "TestWdmSubscriptionlessNotificationSender::Init (nl::Weave::WeaveExchangeManager
      *aExchangeMgr,\n                                                             const
      uint16_t destSubnetId,\n                                                             const
      uint64_t destNodeId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 137
    functionName: TestWdmSubscriptionlessNotificationSender::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestWdmSubscriptionlessNotificationSender::Shutdown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::DefaultEventHandler
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - aAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - SubscriptionEngine::EventID
    - SubscriptionEngine::InEventParam
    - SubscriptionEngine::OutEventParam
    constantsTouched: []
    func_position:
      end: 149
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 149
    functionName: TestWdmSubscriptionlessNotificationSender::EngineEventCallback
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionEngine::DefaultEventHandler
    linkageType: ''
    returnType: void
    signature: "TestWdmSubscriptionlessNotificationSender::EngineEventCallback (void
      * const aAppState,\n    SubscriptionEngine::EventID aEvent,\n    const SubscriptionEngine::InEventParam
      & aInParam, SubscriptionEngine::OutEventParam & aOutParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp:155,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp:157,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 164
    functionName: TestWdmSubscriptionlessNotificationSender::SendSubscriptionlessNotify
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp
    functionUses: 0
    functionsReached:
    - SubscriptionEngine::GetInstance
    - VerifyOrExit
    - WeaveLogDetail
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestWdmSubscriptionlessNotificationSender::SendSubscriptionlessNotify(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aDirectory
    - aDirectoryLen
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: getRootDirectory
    functionSourceFile: /src/openweave-core/src/test-apps/wdmtest.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: getRootDirectory(uint8_t *aDirectory, uint16_t aDirectoryLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 167
    functionName: StubSettingsDatabase::DeviceSettingsProfileData::DeviceSettingsProfileData
    functionSourceFile: /src/openweave-core/src/test-apps/wdmtest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DeviceSettingsProfileData()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 7
    argNames:
    - aSmokeStatus
    - aCoStatus
    - aHeatStatus
    - aHushed
    - aGestureHush
    - aHeadsUp
    - aNightLight
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    - bool
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 180
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 180
    functionName: StubSettingsDatabase::DeviceSettingsProfileData::init
    functionSourceFile: /src/openweave-core/src/test-apps/wdmtest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: init(uint8_t aSmokeStatus, uint8_t aCoStatus, uint8_t aHeatStatus,
      bool aHushed, bool aGestureHush, bool aHeadsUp, bool aNightLight)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:186,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:187,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:189,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:190,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:192,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:193,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:195,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:196,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:198,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:199,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:201,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:202,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:204,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:205,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - aTag
    - aDataRdr
    argTypes:
    - uint64_t
    - TLVReader
    constantsTouched: []
    func_position:
      end: 215
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 215
    functionName: StubSettingsDatabase::DeviceSettingsProfileData::StoreItem
    functionSourceFile: /src/openweave-core/src/test-apps/wdmtest.cpp
    functionUses: 0
    functionsReached:
    - ContextTag
    - TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: StoreItem(const uint64_t &aTag, TLVReader &aDataRdr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aPathRdr
    - aDataWrtr
    argTypes:
    - nl::Weave::TLV::TLVReader
    - nl::Weave::TLV::TLVWriter
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: StubSettingsDatabase::DeviceSettingsProfileData::Retrieve
    functionSourceFile: /src/openweave-core/src/test-apps/wdmtest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Retrieve(nl::Weave::TLV::TLVReader &aPathRdr, nl::Weave::TLV::TLVWriter
      &aDataWrtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - aProfileId
    - aInstanceIdRdr
    - aTarget
    argTypes:
    - uint32_t
    - TLVReader*
    - ProfileData**
    constantsTouched: []
    func_position:
      end: 262
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 262
    functionName: StubSettingsDatabase::LookupProfileData
    functionSourceFile: /src/openweave-core/src/test-apps/wdmtest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LookupProfileData(uint32_t aProfileId, TLVReader *aInstanceIdRdr, ProfileData
      **aTarget)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:294,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:301,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - aResponderId
    - aStatus
    - aTxnId
    argTypes:
    - uint64_t
    - StatusReport
    - uint16_t
    constantsTouched: []
    func_position:
      end: 315
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 315
    functionName: WDMTestClient::ViewConfirm
    functionSourceFile: /src/openweave-core/src/test-apps/wdmtest.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ViewConfirm(const uint64_t &aResponderId, StatusReport &aStatus, uint16_t
      aTxnId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Store
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:328,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:332,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:337,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:346,1
    - Dst: StartDataList
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:348,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:349,1
    - Dst: StartDataListElement
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:351,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:352,1
    - Dst: EncodePath
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:354,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:355,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:359,1
    - Dst: TLVWriter::PutBoolean
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:363,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:363,1
    - Dst: EndDataListElement
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:365,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:366,1
    - Dst: EndList
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:368,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:369,1
    - Dst: init
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:371,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:371,1
    - Dst: UpdateRequest
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:373,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:378,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:381,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:387,1
    - Dst: StartPathList
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:389,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:390,1
    - Dst: EncodePath
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:392,1
    - Dst: EndList
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:394,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:395,1
    - Dst: init
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:397,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:397,1
    - Dst: ViewRequest
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:400,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:405,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 3
    argNames:
    - aResponderId
    - aDataList
    - aTxnId
    argTypes:
    - uint64_t
    - ReferencedTLVData
    - uint16_t
    constantsTouched: []
    func_position:
      end: 413
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 413
    functionName: WDMTestClient::ViewConfirm
    functionSourceFile: /src/openweave-core/src/test-apps/wdmtest.cpp
    functionUses: 0
    functionsReached:
    - StartPathList
    - TLVWriter::PutBoolean
    - StartDataListElement
    - EndDataListElement
    - ContextTag
    - EncodePath
    - ViewRequest
    - printf
    - TLVWriter::GetLengthWritten
    - init
    - EndList
    - SuccessOrExit
    - TLVWriter::Init
    - UpdateRequest
    - StartDataList
    - Store
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ViewConfirm(const uint64_t &aResponderId, ReferencedTLVData &aDataList,
      uint16_t aTxnId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aResponderId
    - aStatus
    - aTxnId
    argTypes:
    - uint64_t
    - StatusReport
    - uint16_t
    constantsTouched: []
    func_position:
      end: 420
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 420
    functionName: WDMTestClient::SubscribeConfirm
    functionSourceFile: /src/openweave-core/src/test-apps/wdmtest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscribeConfirm(const uint64_t &aResponderId, StatusReport &aStatus,
      uint16_t aTxnId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aResponderId
    - aTopicId
    - aTxnId
    argTypes:
    - uint64_t
    - TopicIdentifier
    - uint16_t
    constantsTouched: []
    func_position:
      end: 427
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 427
    functionName: WDMTestClient::SubscribeConfirm
    functionSourceFile: /src/openweave-core/src/test-apps/wdmtest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscribeConfirm(const uint64_t &aResponderId, const TopicIdentifier
      &aTopicId, uint16_t aTxnId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - aResponderId
    - aTopicId
    - aDataList
    - aTxnId
    argTypes:
    - uint64_t
    - TopicIdentifier
    - ReferencedTLVData
    - uint16_t
    constantsTouched: []
    func_position:
      end: 434
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 434
    functionName: WDMTestClient::SubscribeConfirm
    functionSourceFile: /src/openweave-core/src/test-apps/wdmtest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscribeConfirm(const uint64_t &aResponderId, const TopicIdentifier
      &aTopicId, ReferencedTLVData &aDataList, uint16_t aTxnId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - aPublisherId
    - aTopicId
    - aReport
    argTypes:
    - uint64_t
    - TopicIdentifier
    - StatusReport
    constantsTouched: []
    func_position:
      end: 441
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 441
    functionName: WDMTestClient::UnsubscribeIndication
    functionSourceFile: /src/openweave-core/src/test-apps/wdmtest.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UnsubscribeIndication(const uint64_t &aPublisherId, const TopicIdentifier
      &aTopicId, StatusReport &aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:453,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:457,1
    - Dst: StartPathList
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:459,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:460,1
    - Dst: EncodePath
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:462,1
    - Dst: EndList
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:464,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:465,1
    - Dst: init
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:467,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:467,1
    - Dst: ViewRequest
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:470,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 3
    argNames:
    - aResponderId
    - aStatus
    - aTxnId
    argTypes:
    - uint64_t
    - StatusReport
    - uint16_t
    constantsTouched: []
    func_position:
      end: 483
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 483
    functionName: WDMTestClient::UpdateConfirm
    functionSourceFile: /src/openweave-core/src/test-apps/wdmtest.cpp
    functionUses: 0
    functionsReached:
    - StartPathList
    - EncodePath
    - ViewRequest
    - printf
    - TLVWriter::GetLengthWritten
    - init
    - EndList
    - SuccessOrExit
    - TLVWriter::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateConfirm(const uint64_t &aResponderId, StatusReport &aStatus,
      uint16_t aTxnId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aResponderId
    - aVersionList
    - aTxnId
    argTypes:
    - uint64_t
    - ReferencedTLVData
    - uint16_t
    constantsTouched: []
    func_position:
      end: 490
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 490
    functionName: WDMTestClient::UpdateConfirm
    functionSourceFile: /src/openweave-core/src/test-apps/wdmtest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateConfirm(const uint64_t &aResponderId, ReferencedTLVData &aVersionList,
      uint16_t aTxnId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aRequestorId
    - aTopicId
    argTypes:
    - uint64_t
    - TopicIdentifier
    constantsTouched: []
    func_position:
      end: 497
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 497
    functionName: WDMTestClient::CancelSubscriptionIndication
    functionSourceFile: /src/openweave-core/src/test-apps/wdmtest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CancelSubscriptionIndication(const uint64_t &aRequestorId, const TopicIdentifier
      &aTopicId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - aResponderId
    - aTopicId
    - aStatus
    - aTxnId
    argTypes:
    - uint64_t
    - TopicIdentifier
    - StatusReport
    - uint16_t
    constantsTouched: []
    func_position:
      end: 504
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 504
    functionName: WDMTestClient::CancelSubscriptionConfirm
    functionSourceFile: /src/openweave-core/src/test-apps/wdmtest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CancelSubscriptionConfirm(const uint64_t &aResponderId, const TopicIdentifier
      &aTopicId, StatusReport &aStatus, uint16_t aTxnId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aTopicId
    - aDataList
    argTypes:
    - TopicIdentifier
    - ReferencedTLVData
    constantsTouched: []
    func_position:
      end: 511
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 511
    functionName: WDMTestClient::NotifyIndication
    functionSourceFile: /src/openweave-core/src/test-apps/wdmtest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotifyIndication(const TopicIdentifier &aTopicId, ReferencedTLVData
      &aDataList)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - aPeerNodeId
    - aReport
    argTypes:
    - uint64_t
    - StatusReport
    constantsTouched: []
    func_position:
      end: 515
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 515
    functionName: WDMTestClient::IncompleteIndication
    functionSourceFile: /src/openweave-core/src/test-apps/wdmtest.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: IncompleteIndication(const uint64_t &aPeerNodeId, StatusReport &aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveServiceManager::WeaveServiceManager
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:525,1
    - Dst: InitToolCommon
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:529,1
    - Dst: SetSIGUSR1Handler
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:531,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:535,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:536,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:539,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:540,1
    - Dst: ResolveWeaveNetworkOptions
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:541,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:543,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:558,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:559,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:560,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:561,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:562,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeTLV
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:569,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:580,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:581,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:581,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:582,1
    - Dst: EncodePath
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:584,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:585,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:587,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:588,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:590,1
    - Dst: init
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:592,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:592,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:593,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:597,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:598,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:599,1
    - Dst: PrintNodeConfig
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:601,1
    - Dst: WeaveServiceManager::init
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:604,1
    - Dst: WDMTestClient::Init
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:608,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:609,1
    - Dst: WDMTestClient::BindRequest
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:611,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:612,1
    - Dst: WDMTestClient::ViewRequest
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:616,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:617,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:625,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/wdmtest.cpp:630,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 58
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 633
      start: 519
    functionDepth: 3
    functionLinenumber: 519
    functionLinenumberEnd: 633
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/wdmtest.cpp
    functionUses: 0
    functionsReached:
    - WeaveServiceManager::init
    - InitToolCommon
    - WDMTestClient::Init
    - InitWeaveStack
    - printf
    - strcpy
    - exit
    - ServiceNetwork
    - ParseArgsFromEnvVar
    - EncodePath
    - TLVWriter::GetLengthWritten
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeTLV
    - ResolveWeaveNetworkOptions
    - ParseArgs
    - InitNetwork
    - WeaveServiceManager::WeaveServiceManager
    - memset
    - ProfileTag
    - PrintBriefUsage
    - WDMTestClient::BindRequest
    - PrintNodeConfig
    - InitSystemLayer
    - SetSIGUSR1Handler
    - WDMTestClient::ViewRequest
    - TLVWriter::Finalize
    - init
    - SuccessOrExit
    - TLVWriter::Init
    - TLVWriter::EndContainer
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: MockWdmSubscriptionInitiator::Cleanup
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: Cleanup()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitToolCommon
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:98,1
    - Dst: UseStdoutLineBuffering
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:100,1
    - Dst: SetupFaultInjectionContext
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:101,1
    - Dst: SetSignalHandler
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:102,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:106,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:107,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:110,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:111,1
    - Dst: ResolveWeaveNetworkOptions
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:112,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:114,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:117,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:118,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:119,1
    - Dst: RefreshEndpoints
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:120,1
    - Dst: nl::Weave::Stats::UpdateSnapshot
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:126,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:134,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:137,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:137,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:138,1
    - Dst: PrintNodeConfig
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:141,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:149,1
    - Dst: fflush
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:150,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:155,1
    - Dst: fflush
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:156,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:159,1
    - Dst: ProcessStats
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:161,1
    - Dst: PrintFaultInjectionCounters
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:162,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:164,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 167
      start: 91
    functionDepth: 5
    functionLinenumber: 91
    functionLinenumberEnd: 167
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp
    functionUses: 0
    functionsReached:
    - InitToolCommon
    - InitWeaveStack
    - printf
    - nl::Weave::Stats::UpdateSnapshot
    - exit
    - ServiceNetwork
    - ParseArgsFromEnvVar
    - ResolveWeaveNetworkOptions
    - ShutdownWeaveStack
    - ParseArgs
    - InitNetwork
    - SetupFaultInjectionContext
    - PrintBriefUsage
    - Shutdown
    - fflush
    - ErrorStr
    - PrintNodeConfig
    - PrintFaultInjectionCounters
    - SetSignalHandler
    - InitSystemLayer
    - UseStdoutLineBuffering
    - ProcessStats
    - RefreshEndpoints
    - Init
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 185
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 185
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:190,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - msgLayer
    - con
    argTypes:
    - WeaveMessageLayer*
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: HandleConnectionReceived
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp
    functionUses: 3
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    linkageType: ''
    returnType: void
    signature: HandleConnectionReceived(WeaveMessageLayer *msgLayer, WeaveConnection
      *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: MockOpActions::MockOpActions
    functionSourceFile: /src/openweave-core/src/test-apps/MockOpActions.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: MockOpActions::MockOpActions()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: MockOpActions::~MockOpActions()
    functionSourceFile: /src/openweave-core/src/test-apps/MockOpActions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MockOpActions::~MockOpActions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockOpActions::FindOp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - opName
    - delay
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: MockOpActions::SetDelay
    functionSourceFile: /src/openweave-core/src/test-apps/MockOpActions.cpp
    functionUses: 0
    functionsReached:
    - MockOpActions::FindOp
    linkageType: ''
    returnType: bool
    signature: MockOpActions::SetDelay(const char* opName, uint32_t delay)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockOpActions::FindOp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - opName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: MockOpActions::GetDelay
    functionSourceFile: /src/openweave-core/src/test-apps/MockOpActions.cpp
    functionUses: 0
    functionsReached:
    - MockOpActions::FindOp
    linkageType: ''
    returnType: uint32_t
    signature: MockOpActions::GetDelay(const char* opName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockOpActions::FindOp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - opName
    - abort
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: MockOpActions::SetAbort
    functionSourceFile: /src/openweave-core/src/test-apps/MockOpActions.cpp
    functionUses: 0
    functionsReached:
    - MockOpActions::FindOp
    linkageType: ''
    returnType: bool
    signature: MockOpActions::SetAbort(const char* opName, bool abort)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockOpActions::FindOp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - opName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: MockOpActions::GetAbort
    functionSourceFile: /src/openweave-core/src/test-apps/MockOpActions.cpp
    functionUses: 0
    functionsReached:
    - MockOpActions::FindOp
    linkageType: ''
    returnType: bool
    signature: MockOpActions::GetAbort(const char* opName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockOpActions::NormalizeOpName
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:74,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:81,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - opName
    - add
    argTypes:
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 91
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 91
    functionName: MockOpActions::FindOp
    functionSourceFile: /src/openweave-core/src/test-apps/MockOpActions.cpp
    functionUses: 4
    functionsReached:
    - MockOpActions::NormalizeOpName
    - strcmp
    linkageType: ''
    returnType: MockOpActions::Op
    signature: '*MockOpActions::FindOp(const char *opName, bool add)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:95,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:95,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:97,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:97,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:99,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:99,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:101,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:101,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:103,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:103,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:105,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:105,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:107,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:107,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:107,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:109,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:109,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:111,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/test-apps/MockOpActions.cpp:111,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 20
    argCount: 1
    argNames:
    - opName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 114
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 114
    functionName: MockOpActions::NormalizeOpName
    functionSourceFile: /src/openweave-core/src/test-apps/MockOpActions.cpp
    functionUses: 1
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: char
    signature: '*MockOpActions::NormalizeOpName(const char *opName)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestPASE.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: PASEEngineTests_BasicTests
    functionSourceFile: /src/openweave-core/src/test-apps/TestPASE.cpp
    functionUses: 0
    functionsReached:
    - PASEEngineTest
    linkageType: ''
    returnType: void
    signature: PASEEngineTests_BasicTests()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestPASE.cpp:52,1
    - Dst: PASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestPASE.cpp:60,1
    - Dst: PASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestPASE.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 75
    functionName: PASEEngine_ConfigTest1
    functionSourceFile: /src/openweave-core/src/test-apps/TestPASE.cpp
    functionUses: 0
    functionsReached:
    - PASEEngineTest
    linkageType: ''
    returnType: void
    signature: PASEEngine_ConfigTest1()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestPASE.cpp:79,1
    - Dst: PASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestPASE.cpp:87,1
    - Dst: PASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestPASE.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 102
    functionName: PASEEngine_ConfigTest4
    functionSourceFile: /src/openweave-core/src/test-apps/TestPASE.cpp
    functionUses: 0
    functionsReached:
    - PASEEngineTest
    linkageType: ''
    returnType: void
    signature: PASEEngine_ConfigTest4()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestPASE.cpp:106,1
    - Dst: PASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestPASE.cpp:116,1
    - Dst: PASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestPASE.cpp:126,1
    - Dst: PASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestPASE.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 145
    functionName: PASEEngineTest_MixedConfigs
    functionSourceFile: /src/openweave-core/src/test-apps/TestPASE.cpp
    functionUses: 0
    functionsReached:
    - PASEEngineTest
    linkageType: ''
    returnType: void
    signature: PASEEngineTest_MixedConfigs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageExternalFuzzer
      Src: /src/openweave-core/src/test-apps/TestPASE.cpp:149,1
    - Dst: PASEEngineTest
      Src: /src/openweave-core/src/test-apps/TestPASE.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fuzzLocation
    - fuzzInput
    - fuzzInputSize
    argTypes:
    - char*
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 162
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 162
    functionName: PASEEngine_ExternalFuzzingEngine
    functionSourceFile: /src/openweave-core/src/test-apps/TestPASE.cpp
    functionUses: 0
    functionsReached:
    - MessageExternalFuzzer
    - PASEEngineTest
    linkageType: ''
    returnType: void
    signature: PASEEngine_ExternalFuzzingEngine(const char *fuzzLocation, const uint8_t
      *fuzzInput, size_t fuzzInputSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_init
      Src: /src/openweave-core/src/test-apps/TestPASE.cpp:168,1
    - Dst: nl::Weave::Platform::Security::InitSecureRandomDataSource
      Src: /src/openweave-core/src/test-apps/TestPASE.cpp:171,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestPASE.cpp:172,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestPASE.cpp:174,1
    - Dst: PASEEngine_ConfigTest1
      Src: /src/openweave-core/src/test-apps/TestPASE.cpp:175,1
    - Dst: PASEEngine_ConfigTest4
      Src: /src/openweave-core/src/test-apps/TestPASE.cpp:176,1
    - Dst: PASEEngineTest_MixedConfigs
      Src: /src/openweave-core/src/test-apps/TestPASE.cpp:177,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestPASE.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 179
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 179
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestPASE.cpp
    functionUses: 0
    functionsReached:
    - PASEEngine_ConfigTest1
    - nl::Weave::Platform::Security::InitSecureRandomDataSource
    - printf
    - PASEEngineTest_MixedConfigs
    - tcpip_init
    - PASEEngine_ConfigTest4
    - FAIL_ERROR
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockWdmSubscriptionInitiator::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:101,1
    - Dst: MockWdmSubscriptionInitiator*::GetNumFaultInjectionEventsAvailable
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 108
    functionName: GetNumFaultInjectionEventsAvailable
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmNext.cpp
    functionUses: 1
    functionsReached:
    - MockWdmSubscriptionInitiator::GetInstance
    - MockWdmSubscriptionInitiator*::GetNumFaultInjectionEventsAvailable
    linkageType: ''
    returnType: int32_t
    signature: GetNumFaultInjectionEventsAvailable(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExpireExchangeTimers
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - argument
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: ExpireTimer
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmNext.cpp
    functionUses: 0
    functionsReached:
    - ExpireExchangeTimers
    linkageType: ''
    returnType: void
    signature: ExpireTimer(int32_t argument)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WdmNextPerfUtility::Instance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:118,1
    - Dst: MockWdmSubscriptionInitiator::GetNumUpdatableTraits
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:128,1
    - Dst: InitToolCommon
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:130,1
    - Dst: SetupFaultInjectionContext
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:132,1
    - Dst: SetSignalHandler
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:135,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:139,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:140,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:143,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:144,1
    - Dst: ResolveWeaveNetworkOptions
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:145,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:147,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:154,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:156,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:158,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:160,1
    - Dst: MockWdmViewClient::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:172,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:173,1
    - Dst: MockWdmViewClient::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:174,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:179,1
    - Dst: MockWdmViewServer::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:184,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:185,1
    - Dst: TestWdmSubscriptionlessNotificationReceiver::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:192,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:193,1
    - Dst: TestWdmSubscriptionlessNotificationReceiver::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:195,1
    - Dst: TestWdmSubscriptionlessNotificationReceiver::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:197,1
    - Dst: time
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:200,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:204,1
    - Dst: time
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:205,1
    - Dst: difftime
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:206,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:208,1
    - Dst: TestWdmSubscriptionlessNotificationSender::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:213,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:216,1
    - Dst: MockWdmSubscriptionInitiator::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:225,1
    - Dst: GetEncKeyId
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:226,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:229,1
    - Dst: MockWdmSubscriptionInitiator::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:230,1
    - Dst: MockWdmSubscriptionInitiator::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:231,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:237,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:246,1
    - Dst: MockWdmSubscriptionResponder::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:249,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:251,1
    - Dst: MockWdmSubscriptionResponder::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:252,1
    - Dst: MockWdmSubscriptionResponder::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:253,1
    - Dst: MockWdmSubscriptionResponder::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:256,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:261,1
    - Dst: nl::Weave::Stats::UpdateSnapshot
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:264,1
    - Dst: TimeRef
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:272,1
    - Dst: MockWdmViewClient::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:286,1
    - Dst: MockWdmViewClient::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:289,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:290,1
    - Dst: TestWdmSubscriptionlessNotificationSender::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:301,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:303,1
    - Dst: MockWdmSubscriptionInitiator::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:311,1
    - Dst: MockWdmSubscriptionInitiator::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:313,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:316,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:316,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:322,1
    - Dst: PrintNodeConfig
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:325,1
    - Dst: GetTestDebugGenerator
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:333,1
    - Dst: GetTestLivenessGenerator
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:336,1
    - Dst: GetTestSecurityGenerator
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:339,1
    - Dst: GetTestTelemetryGenerator
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:342,1
    - Dst: GetTestTraitGenerator
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:345,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:355,1
    - Dst: MockEventGenerator::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:356,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:359,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:362,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:364,1
    - Dst: MockEventGenerator::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:366,1
    - Dst: MockEventGenerator::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:370,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:372,1
    - Dst: MockWdmSubscriptionInitiator::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:382,1
    - Dst: TimeRef
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:392,1
    - Dst: WdmNextPerfUtility::SetPerf
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:393,1
    - Dst: WdmNextPerfUtility::ReportPerf
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:394,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:400,1
    - Dst: time
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:404,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:409,1
    - Dst: time
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:410,1
    - Dst: difftime
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:411,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:413,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:418,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:421,1
    - Dst: MockWdmSubscriptionInitiator::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:424,1
    - Dst: MockWdmSubscriptionInitiator::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:425,1
    - Dst: MockWdmSubscriptionResponder::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:427,1
    - Dst: WdmNextPerfUtility::SaveToFile
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:432,1
    - Dst: WdmNextPerfUtility::Remove
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:435,1
    - Dst: ProcessStats
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:437,1
    - Dst: PrintFaultInjectionCounters
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:438,1
    - Dst: TestWdmSubscriptionlessNotificationSender::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:443,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:444,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:447,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:448,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:449,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 214
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 452
      start: 115
    functionDepth: 5
    functionLinenumber: 115
    functionLinenumberEnd: 452
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmNext.cpp
    functionUses: 0
    functionsReached:
    - MockWdmSubscriptionResponder::GetInstance
    - GetTestSecurityGenerator
    - InitToolCommon
    - InitializeEventLogging
    - ShutdownSystemLayer
    - MockEventGenerator::GetInstance
    - WdmNextPerfUtility::SaveToFile
    - InitWeaveStack
    - TimeRef
    - MockWdmSubscriptionInitiator::GetInstance
    - printf
    - difftime
    - nl::Weave::Stats::UpdateSnapshot
    - GetTestTelemetryGenerator
    - exit
    - ServiceNetwork
    - ParseArgsFromEnvVar
    - MockWdmViewClient::GetInstance
    - WdmNextPerfUtility::Instance
    - GetEncKeyId
    - WdmNextPerfUtility::SetPerf
    - ResolveWeaveNetworkOptions
    - time
    - MockWdmViewServer::GetInstance
    - GetTestLivenessGenerator
    - ShutdownWeaveStack
    - ParseArgs
    - GetTestDebugGenerator
    - InitNetwork
    - SetupFaultInjectionContext
    - PrintBriefUsage
    - MockWdmSubscriptionInitiator::GetNumUpdatableTraits
    - GetTestTraitGenerator
    - ErrorStr
    - PrintNodeConfig
    - PrintFaultInjectionCounters
    - SetSignalHandler
    - InitSystemLayer
    - WdmNextPerfUtility::ReportPerf
    - ProcessStats
    - TestWdmSubscriptionlessNotificationReceiver::GetInstance
    - ShutdownNetwork
    - WdmNextPerfUtility::Remove
    - TestWdmSubscriptionlessNotificationSender::GetInstance
    - FAIL_ERROR
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 461
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 461
    functionName: HandleWdmCompleteTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmNext.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: HandleWdmCompleteTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestWdmNext.cpp:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: HandleError
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmNext.cpp
    functionUses: 3
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: HandleError()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: MockSingleSourceTimeSyncClient::MockSingleSourceTimeSyncClient
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MockSingleSourceTimeSyncClient::MockSingleSourceTimeSyncClient(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:52,1
    - Dst: reinterpret_cast<MockSingleSourceTimeSyncClient *>
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:54,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:60,1
    - Dst: MockSingleSourceTimeSyncClient*::mExchangeMgr::MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:62,1
    - Dst: MockSingleSourceTimeSyncClient*::mClient::Sync
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:64,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:65,1
    - Dst: nl::Weave::Binding::DefaultEventHandler
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:69,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - apAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - Binding::EventType
    - Binding::InEventParam
    - Binding::OutEventParam
    constantsTouched: []
    func_position:
      end: 74
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 74
    functionName: MockSingleSourceTimeSyncClient::BindingEventCallback
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp
    functionUses: 0
    functionsReached:
    - MockSingleSourceTimeSyncClient*::mExchangeMgr::MessageLayer::SystemLayer::StartTimer
    - MockSingleSourceTimeSyncClient*::mClient::Sync
    - WeaveLogDetail
    - SuccessOrExit
    - nl::Weave::Binding::DefaultEventHandler
    - reinterpret_cast<MockSingleSourceTimeSyncClient *>
    - WeaveLogFunctError
    linkageType: ''
    returnType: void
    signature: "MockSingleSourceTimeSyncClient::BindingEventCallback (void * const
      apAppState, const Binding::EventType aEvent,\n        const Binding::InEventParam
      & aInParam, Binding::OutEventParam & aOutParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockSingleSourceTimeSyncClient::Init
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:82,1
    - Dst: NewBinding
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:85,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:86,1
    - Dst: BeginConfiguration
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:89,1
    - Dst: Binding::Configuration::TargetAddress_WeaveFabric
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:97,1
    - Dst: Binding::Configuration::PrepareBinding
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:99,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:100,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - aExchangeMgr
    - aPublisherNodeId
    - aSubnetId
    argTypes:
    - nl::Weave::WeaveExchangeManager*
    - uint64_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 107
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 107
    functionName: MockSingleSourceTimeSyncClient::Init
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp
    functionUses: 1
    functionsReached:
    - NewBinding
    - Binding::Configuration::TargetAddress_WeaveFabric
    - VerifyOrExit
    - SuccessOrExit
    - MockSingleSourceTimeSyncClient::Init
    - Binding::Configuration::PrepareBinding
    - WeaveLogFunctError
    - BeginConfiguration
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockSingleSourceTimeSyncClient::Init(nl::Weave::WeaveExchangeManager
      * const aExchangeMgr, const uint64_t aPublisherNodeId, const uint16_t aSubnetId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: MockSingleSourceTimeSyncClient::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockSingleSourceTimeSyncClient::Shutdown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<MockSingleSourceTimeSyncClient *>
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:121,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:123,1
    - Dst: MockSingleSourceTimeSyncClient*::mClient::Sync
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:125,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:126,1
    - Dst: MockSingleSourceTimeSyncClient*::mExchangeMgr::MessageLayer::SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:128,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - nl::Weave::System::Layer*
    - void*
    - nl::Weave::System::Error
    constantsTouched: []
    func_position:
      end: 130
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 130
    functionName: MockSingleSourceTimeSyncClient::HandleSyncTimer
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp
    functionUses: 0
    functionsReached:
    - MockSingleSourceTimeSyncClient*::mExchangeMgr::MessageLayer::SystemLayer::StartTimer
    - MockSingleSourceTimeSyncClient*::mClient::Sync
    - WeaveLogProgress
    - reinterpret_cast<MockSingleSourceTimeSyncClient *>
    - WeaveLogFunctError
    linkageType: ''
    returnType: void
    signature: MockSingleSourceTimeSyncClient::HandleSyncTimer(nl::Weave::System::Layer*
      aSystemLayer, void* aAppState, nl::Weave::System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<MockSingleSourceTimeSyncClient *>
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:134,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:136,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:137,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:138,1
    - Dst: MockSingleSourceTimeSyncClient*::mClient::Sync
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - aApp
    - aEC
    argTypes:
    - void*
    - nl::Weave::ExchangeContext*
    constantsTouched: []
    func_position:
      end: 141
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 141
    functionName: MockSingleSourceTimeSyncClient::HandleTimeChangeNotificationReceived
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - reinterpret_cast<MockSingleSourceTimeSyncClient *>
    - MockSingleSourceTimeSyncClient*::mClient::Sync
    linkageType: ''
    returnType: void
    signature: MockSingleSourceTimeSyncClient::HandleTimeChangeNotificationReceived(void
      * const aApp, nl::Weave::ExchangeContext * aEC)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:147,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:148,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:149,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:150,1
    - Dst: nl::Weave::System::Layer::SetClock_RealTime
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:152,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:156,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:157,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:158,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - aApp
    - aErrorCode
    - aCorrectedSystemTime
    argTypes:
    - void*
    - WEAVE_ERROR
    - nl::Weave::Profiles::Time::timesync_t
    constantsTouched: []
    func_position:
      end: 161
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 161
    functionName: MockSingleSourceTimeSyncClient::HandleSyncCompleted
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - nl::Weave::System::Layer::SetClock_RealTime
    linkageType: ''
    returnType: void
    signature: MockSingleSourceTimeSyncClient::HandleSyncCompleted(void * const aApp,
      const WEAVE_ERROR aErrorCode, const nl::Weave::Profiles::Time::timesync_t aCorrectedSystemTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: MockTimeSyncClient::MockTimeSyncClient
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: MockTimeSyncClient::MockTimeSyncClient()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:205,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 210
    functionName: MockTimeSyncClient::SetupContacts
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::FromString
    linkageType: ''
    returnType: void
    signature: MockTimeSyncClient::SetupContacts(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - serviceNodeId
    - serviceNodeAddr
    argTypes:
    - uint64_t
    - char*
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: MockTimeSyncClient::SetupServiceContact
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::FromString
    linkageType: ''
    returnType: void
    signature: MockTimeSyncClient::SetupServiceContact(uint64_t serviceNodeId, const
      char * serviceNodeAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:231,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:232,1
    - Dst: MockTimeSyncClient::SetupServiceContact
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:234,1
    - Dst: MockTimeSyncClient::SetupContacts
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:238,1
    - Dst: InitClient
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:240,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:241,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:249,1
    - Dst: EnableAutoSync
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:257,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:262,1
    - Dst: GetExchangeMgr
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:267,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:267,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:268,1
    - Dst: MockTimeSyncClient::SetupConnectionToService
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:269,1
    - Dst: GetExchangeMgr
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:273,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:273,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:274,1
    - Dst: SyncWithNodes
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:275,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:276,1
    - Dst: GetExchangeMgr
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:281,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:281,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:282,1
    - Dst: SyncWithNodes
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:283,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:284,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:287,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:292,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 6
    argNames:
    - exchangeMgr
    - mode
    - serviceNodeId
    - serviceNodeAddr
    - encryptionType
    - keyId
    argTypes:
    - nl::Weave::WeaveExchangeManager*
    - OperatingMode
    - uint64_t
    - char*
    - uint8_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 295
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 295
    functionName: MockTimeSyncClient::Init
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp
    functionUses: 0
    functionsReached:
    - SyncWithNodes
    - InitClient
    - WeaveLogProgress
    - MockTimeSyncClient::SetupServiceContact
    - ExitNow
    - printf
    - MockTimeSyncClient::SetupContacts
    - GetExchangeMgr
    - SystemLayer::StartTimer
    - SuccessOrExit
    - WeaveLogFunctError
    - EnableAutoSync
    - MockTimeSyncClient::SetupConnectionToService
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "MockTimeSyncClient::Init(\n    nl::Weave::WeaveExchangeManager *exchangeMgr,\n
      \   OperatingMode mode,\n    uint64_t serviceNodeId,\n    const char * serviceNodeAddr,\n
      \   const uint8_t encryptionType,\n    const uint16_t keyId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetExchangeMgr
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:300,1
    - Dst: SystemLayer::CancelTimer
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:300,1
    - Dst: MockTimeSyncClient::CloseConnectionToService
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:303,1
    - Dst: MockTimeSyncClient::Shutdown
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 307
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 307
    functionName: MockTimeSyncClient::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp
    functionUses: 1
    functionsReached:
    - SystemLayer::CancelTimer
    - MockTimeSyncClient::CloseConnectionToService
    - MockTimeSyncClient::Shutdown
    - GetExchangeMgr
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockTimeSyncClient::Shutdown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<MockTimeSyncClient *>
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:312,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:313,1
    - Dst: MockTimeSyncClient*::mClient::SyncWithService
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - nl::Weave::WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 315
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 315
    functionName: MockTimeSyncClient::HandleConnectionComplete
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - reinterpret_cast<MockTimeSyncClient *>
    - MockTimeSyncClient*::mClient::SyncWithService
    linkageType: ''
    returnType: void
    signature: MockTimeSyncClient::HandleConnectionComplete(nl::Weave::WeaveConnection
      *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<MockTimeSyncClient *>
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:319,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:320,1
    - Dst: MockTimeSyncClient*::mClient::Abort
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:321,1
    - Dst: MockTimeSyncClient*::mConnectionToService::Close
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - nl::Weave::WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 324
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 324
    functionName: MockTimeSyncClient::HandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - reinterpret_cast<MockTimeSyncClient *>
    - MockTimeSyncClient*::mClient::Abort
    - MockTimeSyncClient*::mConnectionToService::Close
    linkageType: ''
    returnType: void
    signature: MockTimeSyncClient::HandleConnectionClosed(nl::Weave::WeaveConnection
      *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:330,1
    - Dst: Abort
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 335
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 335
    functionName: MockTimeSyncClient::CloseConnectionToService
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogProgress
    - Abort
    linkageType: ''
    returnType: void
    signature: MockTimeSyncClient::CloseConnectionToService(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockTimeSyncClient::CloseConnectionToService
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:341,1
    - Dst: NewConnection
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:343,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:346,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:347,1
    - Dst: Connect
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:351,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:352,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:357,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 363
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 363
    functionName: MockTimeSyncClient::SetupConnectionToService
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogError
    - WeaveLogProgress
    - MockTimeSyncClient::CloseConnectionToService
    - Connect
    - ExitNow
    - WeaveLogFunctError
    - SuccessOrExit
    - NewConnection
    linkageType: ''
    returnType: void
    signature: MockTimeSyncClient::SetupConnectionToService(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<MockTimeSyncClient *>
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:370,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:372,1
    - Dst: MockTimeSyncClient*::mClient::Abort
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:374,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:375,1
    - Dst: MockTimeSyncClient*::CloseConnectionToService
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:378,1
    - Dst: MockTimeSyncClient*::mClient::GetExchangeMgr
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:386,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:386,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:388,1
    - Dst: MockTimeSyncClient*::SetupConnectionToService
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:389,1
    - Dst: MockTimeSyncClient*::mClient::GetExchangeMgr
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:392,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:392,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:394,1
    - Dst: MockTimeSyncClient*::mClient::SyncWithNodes
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:395,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:396,1
    - Dst: MockTimeSyncClient*::mClient::GetExchangeMgr
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:400,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:400,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:402,1
    - Dst: MockTimeSyncClient*::mClient::SyncWithNodes
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:403,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:404,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:407,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:412,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - nl::Weave::System::Layer*
    - void*
    - nl::Weave::System::Error
    constantsTouched: []
    func_position:
      end: 415
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 415
    functionName: MockTimeSyncClient::HandleSyncTimer
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp
    functionUses: 0
    functionsReached:
    - MockTimeSyncClient*::mClient::SyncWithNodes
    - MockTimeSyncClient*::mClient::GetExchangeMgr
    - WeaveLogProgress
    - MockTimeSyncClient*::mClient::Abort
    - ExitNow
    - reinterpret_cast<MockTimeSyncClient *>
    - SystemLayer::StartTimer
    - MockTimeSyncClient*::SetupConnectionToService
    - SuccessOrExit
    - MockTimeSyncClient*::CloseConnectionToService
    - WeaveLogFunctError
    linkageType: ''
    returnType: void
    signature: MockTimeSyncClient::HandleSyncTimer(nl::Weave::System::Layer* aSystemLayer,
      void* aAppState, nl::Weave::System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:420,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:421,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:422,1
    - Dst: reinterpret_cast<MockTimeSyncClient *>
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:427,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:430,1
    - Dst: MockTimeSyncClient*::mClient::Abort
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:432,1
    - Dst: MockTimeSyncClient*::mClient::GetExchangeMgr
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:435,1
    - Dst: SystemLayer::CancelTimer
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:435,1
    - Dst: MockTimeSyncClient*::mClient::GetExchangeMgr
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:439,1
    - Dst: SystemLayer::StartTimer
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:439,1
    - Dst: MockTimeSyncClient*::mClient::Sync
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - aApp
    - aNodeId
    - ' aNodeAddr'
    argTypes:
    - void*
    - uint64_t
    - IPAddress
    constantsTouched: []
    func_position:
      end: 446
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 446
    functionName: MockTimeSyncClient::OnTimeChangeNotificationReceived
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp
    functionUses: 0
    functionsReached:
    - MockTimeSyncClient*::mClient::GetExchangeMgr
    - WeaveLogProgress
    - MockTimeSyncClient*::mClient::Abort
    - reinterpret_cast<MockTimeSyncClient *>
    - SystemLayer::StartTimer
    - SystemLayer::CancelTimer
    - MockTimeSyncClient*::mClient::Sync
    linkageType: ''
    returnType: void
    signature: "MockTimeSyncClient::OnTimeChangeNotificationReceived(void * const
      aApp, const uint64_t aNodeId,\n    const IPAddress & aNodeAddr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<MockTimeSyncClient *>
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:452,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:457,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:458,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:460,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:464,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:465,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:466,1
    - Dst: MockTimeSyncClient*::CloseConnectionToService
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - aApp
    - aOffsetUsec
    - aIsReliable
    - aIsServer
    - aNumContributor
    argTypes:
    - void*
    - timesync_t
    - bool
    - bool
    - uint8_t
    constantsTouched: []
    func_position:
      end: 474
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 474
    functionName: MockTimeSyncClient::OnSyncSucceeded
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - reinterpret_cast<MockTimeSyncClient *>
    - MockTimeSyncClient*::CloseConnectionToService
    linkageType: ''
    returnType: bool
    signature: "MockTimeSyncClient::OnSyncSucceeded(void * const aApp, const timesync_t
      aOffsetUsec, const bool aIsReliable,\n    const bool aIsServer, const uint8_t
      aNumContributor)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<MockTimeSyncClient *>
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:479,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:482,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:483,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:484,1
    - Dst: MockTimeSyncClient*::CloseConnectionToService
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - aApp
    - aErrorCode
    argTypes:
    - void*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 489
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 489
    functionName: MockTimeSyncClient::OnSyncFailed
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - reinterpret_cast<MockTimeSyncClient *>
    - MockTimeSyncClient*::CloseConnectionToService
    linkageType: ''
    returnType: void
    signature: MockTimeSyncClient::OnSyncFailed(void * const aApp, const WEAVE_ERROR
      aErrorCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:496,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:497,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:498,1
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicHiRes
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:500,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:511,1
    - Dst: static_cast<unsigned long long>
      Src: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp:512,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - aApp
    - aContact
    - aSize
    argTypes:
    - void*
    - Contact[]
    - int
    constantsTouched: []
    func_position:
      end: 517
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 517
    functionName: MockTimeSyncClient::OnResponseReadyForCalculation
    functionSourceFile: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - static_cast<unsigned long long>
    - nl::Weave::System::Layer::GetClock_MonotonicHiRes
    - WeaveLogDetail
    linkageType: ''
    returnType: void
    signature: "MockTimeSyncClient::OnResponseReadyForCalculation(void * const aApp,\n
      \   Contact aContact[], const int aSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - nodeId
    - ' cert'
    - ' certLen'
    argTypes:
    - uint64_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1193
      start: 1183
    functionDepth: 0
    functionLinenumber: 1183
    functionLinenumberEnd: 1193
    functionName: GetTestNodeCert
    functionSourceFile: /src/openweave-core/src/test-apps/Certs.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: GetTestNodeCert(uint64_t nodeId, const uint8_t *& cert, uint16_t& certLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - nodeId
    - ' key'
    - ' keyLen'
    argTypes:
    - uint64_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1205
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1205
    functionName: GetTestNodePrivateKey
    functionSourceFile: /src/openweave-core/src/test-apps/Certs.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: GetTestNodePrivateKey(uint64_t nodeId, const uint8_t *& key, uint16_t&
      keyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - caId
    - ' cert'
    - ' certLen'
    argTypes:
    - uint64_t
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1217
      start: 1207
    functionDepth: 0
    functionLinenumber: 1207
    functionLinenumberEnd: 1217
    functionName: GetTestCACert
    functionSourceFile: /src/openweave-core/src/test-apps/Certs.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: GetTestCACert(uint64_t caId, const uint8_t *& cert, uint16_t& certLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: nl::Weave::Profiles::Platform::CriticalSectionEnter
    functionSourceFile: /src/openweave-core/src/test-apps/GenerateEventLog.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionEnter()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: nl::Weave::Profiles::Platform::CriticalSectionExit
    functionSourceFile: /src/openweave-core/src/test-apps/GenerateEventLog.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionExit()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: '* nl::Weave::Profiles::DataManagement::SubscriptionEngine::GetInstance()'
    functionSourceFile: /src/openweave-core/src/test-apps/GenerateEventLog.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: nl::Weave::Profiles::DataManagement::SubscriptionEngine
    signature: '* nl::Weave::Profiles::DataManagement::SubscriptionEngine::GetInstance()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: LogContext::LogContext
    functionSourceFile: /src/openweave-core/src/test-apps/GenerateEventLog.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: LogContext::LogContext()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<LogContext *>
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:133,1
    - Dst: WeaveFabricState::WeaveFabricState
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:134,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:139,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:140,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:141,1
    - Dst: WeaveFabricState::Init
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 164
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 164
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/GenerateEventLog.cpp
    functionUses: 0
    functionsReached:
    - InitSystemLayer
    - static_cast<LogContext *>
    - InitNetwork
    - InitWeaveStack
    - WeaveFabricState::WeaveFabricState
    - WeaveFabricState::Init
    linkageType: ''
    returnType: int
    signature: TestSetup(void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<LogContext *>
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:168,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:171,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:172,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 176
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 176
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/GenerateEventLog.cpp
    functionUses: 0
    functionsReached:
    - static_cast<LogContext *>
    - ShutdownWeaveStack
    - ShutdownNetwork
    - ShutdownSystemLayer
    linkageType: ''
    returnType: int
    signature: TestTeardown(void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:186,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:188,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:190,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:192,1
    - Dst: nl::Weave::Profiles::LoggingManagement::CreateLoggingManagement
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:195,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - LogContext*
    constantsTouched: []
    func_position:
      end: 198
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 198
    functionName: InitializeEventLogging
    functionSourceFile: /src/openweave-core/src/test-apps/GenerateEventLog.cpp
    functionUses: 1
    functionsReached:
    - static_cast<void *>
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - nl::Weave::Profiles::LoggingManagement::CreateLoggingManagement
    linkageType: ''
    returnType: void
    signature: InitializeEventLogging(LogContext * context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:204,1
    - Dst: vfprintf
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:206,1
    - Dst: vprintf
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:208,1
    - Dst: va_end
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - aFormat
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 211
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 211
    functionName: SimpleDumpWriter
    functionSourceFile: /src/openweave-core/src/test-apps/GenerateEventLog.cpp
    functionUses: 0
    functionsReached:
    - vprintf
    - vfprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: SimpleDumpWriter(const char * aFormat, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:227,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:234,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:238,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:239,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:241,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:241,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:242,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:244,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:244,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:245,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:248,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:254,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:256,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:262,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:264,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:270,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:272,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:273,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:277,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:278,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:280,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:281,1
    - Dst: fwrite
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:286,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:286,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:290,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:290,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:291,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:291,1
    - Dst: nl::Weave::TLV::Utilities::Count
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:292,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:293,1
    - Dst: nl::Weave::TLV::Debug::Dump
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:294,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:299,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 57
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - LogContext*
    constantsTouched: []
    func_position:
      end: 302
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 302
    functionName: DumpEventLog
    functionSourceFile: /src/openweave-core/src/test-apps/GenerateEventLog.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - nl::Weave::TLV::Utilities::Count
    - TLVWriter::Finalize
    - fwrite
    - ContextTag
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - TLVWriter::Init
    - TLVWriter::EndContainer
    - TLVWriter::GetLengthWritten
    - nl::Weave::TLV::Debug::Dump
    - SuccessOrExit
    - fprintf
    - fopen
    - TLVWriter::Put
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: void
    signature: DumpEventLog(LogContext * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DebugEventGenerator::DebugEventGenerator
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:306,1
    - Dst: DebugEventGenerator::GetNumStates
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:307,1
    - Dst: DebugEventGenerator::Generate
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:309,1
    - Dst: usleep
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 313
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 313
    functionName: SimpleDebugLog
    functionSourceFile: /src/openweave-core/src/test-apps/GenerateEventLog.cpp
    functionUses: 0
    functionsReached:
    - DebugEventGenerator::Generate
    - DebugEventGenerator::DebugEventGenerator
    - usleep
    - DebugEventGenerator::GetNumStates
    linkageType: ''
    returnType: void
    signature: SimpleDebugLog(void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LivenessEventGenerator::LivenessEventGenerator
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:317,1
    - Dst: LivenessEventGenerator::GetNumStates
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:318,1
    - Dst: LivenessEventGenerator::Generate
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:320,1
    - Dst: usleep
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 324
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 324
    functionName: SimpleHeartbeatLog
    functionSourceFile: /src/openweave-core/src/test-apps/GenerateEventLog.cpp
    functionUses: 0
    functionsReached:
    - LivenessEventGenerator::GetNumStates
    - usleep
    - LivenessEventGenerator::Generate
    - LivenessEventGenerator::LivenessEventGenerator
    linkageType: ''
    returnType: void
    signature: SimpleHeartbeatLog(void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SecurityEventGenerator::SecurityEventGenerator
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:332,1
    - Dst: SecurityEventGenerator::GetNumStates
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:334,1
    - Dst: SecurityEventGenerator::Generate
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:336,1
    - Dst: usleep
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 340
      start: 326
    functionDepth: 4
    functionLinenumber: 326
    functionLinenumberEnd: 340
    functionName: SimpleSecurityLog
    functionSourceFile: /src/openweave-core/src/test-apps/GenerateEventLog.cpp
    functionUses: 0
    functionsReached:
    - SecurityEventGenerator::Generate
    - SecurityEventGenerator::SecurityEventGenerator
    - SecurityEventGenerator::GetNumStates
    - usleep
    linkageType: ''
    returnType: void
    signature: SimpleSecurityLog(void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:382,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:384,1
    - Dst: static_cast<nl::Weave::Profiles::DataManagement::ImportanceType>
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:387,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:399,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:401,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:416,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 421
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 421
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/GenerateEventLog.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - static_cast<nl::Weave::Profiles::DataManagement::ImportanceType>
    - ParseInt
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char * progName, OptionSet * optSet, int id, const
      char * name, const char * arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asprintf
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:427,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:428,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:430,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:431,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:433,1
    - Dst: TestSetup
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:436,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:438,1
    - Dst: DumpEventLog
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:442,1
    - Dst: TestTeardown
      Src: /src/openweave-core/src/test-apps/GenerateEventLog.cpp:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 448
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 448
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/GenerateEventLog.cpp
    functionUses: 0
    functionsReached:
    - ParseArgs
    - exit
    - DumpEventLog
    - InitializeEventLogging
    - asprintf
    - ParseArgsFromEnvVar
    - VerifyOrExit
    - TestTeardown
    - TestSetup
    linkageType: ''
    returnType: int
    signature: main(int argc, char * argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncryptPasscode
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:94,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:97,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:98,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:99,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:99,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:102,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:103,1
    - Dst: DecryptPasscode
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:107,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:108,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:109,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:110,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:110,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put32
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:114,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put32
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:115,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:118,1
    - Dst: nl::Weave::Platform::Security::SHA1::SHA1
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:121,1
    - Dst: nl::Weave::Platform::Security::SHA1::Begin
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:123,1
    - Dst: nl::Weave::Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:124,1
    - Dst: nl::Weave::Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:125,1
    - Dst: nl::Weave::Platform::Security::SHA1::Finish
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:126,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:127,1
    - Dst: nl::Weave::Platform::Security::SHA1::Begin
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:130,1
    - Dst: nl::Weave::Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:131,1
    - Dst: nl::Weave::Platform::Security::SHA1::Finish
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:132,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:133,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:136,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:136,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:139,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 142
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 142
    functionName: PasscodeEncryptConfig1_Test1
    functionSourceFile: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp
    functionUses: 0
    functionsReached:
    - DumpMemoryCStyle
    - memcmp
    - NL_TEST_ASSERT
    - nl::Weave::Platform::Security::SHA1::Begin
    - nl::Weave::Encoding::LittleEndian::Put32
    - printf
    - EncryptPasscode
    - memcpy
    - DecryptPasscode
    - nl::Weave::Platform::Security::SHA1::SHA1
    - nl::Weave::Platform::Security::SHA1::AddData
    - nl::Weave::Platform::Security::SHA1::Finish
    linkageType: ''
    returnType: void
    signature: PasscodeEncryptConfig1_Test1(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestGroupKeyStore::TestGroupKeyStore
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:148,1
    - Dst: EncryptPasscode
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:156,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:159,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:160,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:161,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:161,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:164,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:165,1
    - Dst: DecryptPasscode
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:169,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:170,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:171,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:172,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:172,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put32
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:176,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put32
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:177,1
    - Dst: AES128BlockCipherEnc::SetKey
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:181,1
    - Dst: AES128BlockCipherEnc::EncryptBlock
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:182,1
    - Dst: HMACSHA1::Begin
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:187,1
    - Dst: HMACSHA1::AddData
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:188,1
    - Dst: HMACSHA1::AddData
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:189,1
    - Dst: HMACSHA1::Finish
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:190,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:191,1
    - Dst: HMACSHA1::Begin
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:194,1
    - Dst: HMACSHA1::AddData
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:195,1
    - Dst: HMACSHA1::Finish
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:196,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:197,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:200,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:200,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:203,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 206
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 206
    functionName: PasscodeEncryptConfig2_Test1
    functionSourceFile: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp
    functionUses: 0
    functionsReached:
    - DumpMemoryCStyle
    - memcmp
    - NL_TEST_ASSERT
    - HMACSHA1::AddData
    - AES128BlockCipherEnc::SetKey
    - TestGroupKeyStore::TestGroupKeyStore
    - nl::Weave::Encoding::LittleEndian::Put32
    - EncryptPasscode
    - printf
    - memcpy
    - DecryptPasscode
    - AES128BlockCipherEnc::EncryptBlock
    - HMACSHA1::Finish
    - HMACSHA1::Begin
    linkageType: ''
    returnType: void
    signature: PasscodeEncryptConfig2_Test1(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestGroupKeyStore::TestGroupKeyStore
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:212,1
    - Dst: EncryptPasscode
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:220,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:223,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:224,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:225,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:225,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:228,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:229,1
    - Dst: DecryptPasscode
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:233,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:234,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:235,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:236,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:236,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put32
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:240,1
    - Dst: nl::Weave::Encoding::LittleEndian::Put32
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:241,1
    - Dst: AES128BlockCipherEnc::SetKey
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:245,1
    - Dst: AES128BlockCipherEnc::EncryptBlock
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:246,1
    - Dst: HMACSHA1::Begin
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:251,1
    - Dst: HMACSHA1::AddData
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:252,1
    - Dst: HMACSHA1::AddData
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:253,1
    - Dst: HMACSHA1::Finish
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:254,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:255,1
    - Dst: HMACSHA1::Begin
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:258,1
    - Dst: HMACSHA1::AddData
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:259,1
    - Dst: HMACSHA1::Finish
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:260,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:261,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:264,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:264,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:267,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 270
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 270
    functionName: PasscodeEncryptConfig2_Test2
    functionSourceFile: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp
    functionUses: 0
    functionsReached:
    - DumpMemoryCStyle
    - memcmp
    - NL_TEST_ASSERT
    - HMACSHA1::AddData
    - AES128BlockCipherEnc::SetKey
    - TestGroupKeyStore::TestGroupKeyStore
    - nl::Weave::Encoding::LittleEndian::Put32
    - EncryptPasscode
    - printf
    - memcpy
    - DecryptPasscode
    - AES128BlockCipherEnc::EncryptBlock
    - HMACSHA1::Finish
    - HMACSHA1::Begin
    linkageType: ''
    returnType: void
    signature: PasscodeEncryptConfig2_Test2(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestGroupKeyStore::TestGroupKeyStore
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:276,1
    - Dst: EncryptPasscode
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:283,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:286,1
    - Dst: DecryptPasscode
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:289,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:290,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:291,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:292,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 293
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 293
    functionName: PasscodeEncryptConfig2_LongPasscodeTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - NL_TEST_ASSERT
    - TestGroupKeyStore::TestGroupKeyStore
    - EncryptPasscode
    - DecryptPasscode
    linkageType: ''
    returnType: void
    signature: PasscodeEncryptConfig2_LongPasscodeTest(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetEncryptedPasscodeConfig
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:303,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:304,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:305,1
    - Dst: GetEncryptedPasscodeConfig
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:307,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:308,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:309,1
    - Dst: GetEncryptedPasscodeKeyId
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:311,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:312,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:313,1
    - Dst: GetEncryptedPasscodeNonce
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:315,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:316,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:317,1
    - Dst: GetEncryptedPasscodeFingerprint
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:319,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:320,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:321,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:323,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:323,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:326,1
    - Dst: IsSupportedPasscodeEncryptionConfig
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:326,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:328,1
    - Dst: IsSupportedPasscodeEncryptionConfig
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:328,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:329,1
    - Dst: IsSupportedPasscodeEncryptionConfig
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 330
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 330
    functionName: EncryptedPasscodeUtils_Test1
    functionSourceFile: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - IsSupportedPasscodeEncryptionConfig
    - NL_TEST_ASSERT
    - GetEncryptedPasscodeKeyId
    - GetEncryptedPasscodeNonce
    - GetEncryptedPasscodeFingerprint
    - GetEncryptedPasscodeConfig
    linkageType: ''
    returnType: void
    signature: EncryptedPasscodeUtils_Test1(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_DEF
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:337,1
    - Dst: NL_TEST_DEF
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:340,1
    - Dst: NL_TEST_DEF
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:341,1
    - Dst: NL_TEST_DEF
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:342,1
    - Dst: NL_TEST_DEF
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:344,1
    - Dst: NL_TEST_SENTINEL
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:345,1
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:353,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:355,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 358
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 358
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp
    functionUses: 0
    functionsReached:
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    - NL_TEST_DEF
    - NL_TEST_SENTINEL
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - connObj
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: MockBleApplicationDelegate::NotifyWeaveConnectionClosed
    functionSourceFile: /src/openweave-core/src/test-apps/MockBleApplicationDelegate.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MockBleApplicationDelegate::NotifyWeaveConnectionClosed(BLE_CONNECTION_OBJECT
      connObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: MockImageAnnounceServer::MockImageAnnounceServer
    functionSourceFile: /src/openweave-core/src/test-apps/MockIAServer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MockImageAnnounceServer::MockImageAnnounceServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockImageAnnounceServer::WeaveImageAnnounceServer::Init
      Src: /src/openweave-core/src/test-apps/MockIAServer.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: MockImageAnnounceServer::Init
    functionSourceFile: /src/openweave-core/src/test-apps/MockIAServer.cpp
    functionUses: 0
    functionsReached:
    - MockImageAnnounceServer::WeaveImageAnnounceServer::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockImageAnnounceServer::Init(WeaveExchangeManager *exchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockImageAnnounceServer::CloseExistingExchangeCtx
      Src: /src/openweave-core/src/test-apps/MockIAServer.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: MockImageAnnounceServer::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/MockIAServer.cpp
    functionUses: 0
    functionsReached:
    - MockImageAnnounceServer::CloseExistingExchangeCtx
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockImageAnnounceServer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockImageAnnounceServer::CloseExistingExchangeCtx
      Src: /src/openweave-core/src/test-apps/MockIAServer.cpp:55,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/MockIAServer.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - peerNodeId
    - peerAddr
    argTypes:
    - uint64_t
    - IPAddress
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: MockImageAnnounceServer::CreateExchangeCtx
    functionSourceFile: /src/openweave-core/src/test-apps/MockIAServer.cpp
    functionUses: 0
    functionsReached:
    - MockImageAnnounceServer::CloseExistingExchangeCtx
    - NewContext
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockImageAnnounceServer::CreateExchangeCtx(const uint64_t &peerNodeId,
      const IPAddress &peerAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockImageAnnounceServer::CloseExistingExchangeCtx
      Src: /src/openweave-core/src/test-apps/MockIAServer.cpp:66,1
    - Dst: NewContext
      Src: /src/openweave-core/src/test-apps/MockIAServer.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - con
    argTypes:
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: MockImageAnnounceServer::CreateExchangeCtx
    functionSourceFile: /src/openweave-core/src/test-apps/MockIAServer.cpp
    functionUses: 0
    functionsReached:
    - MockImageAnnounceServer::CloseExistingExchangeCtx
    - NewContext
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockImageAnnounceServer::CreateExchangeCtx(WeaveConnection *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/MockIAServer.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: MockImageAnnounceServer::CloseExistingExchangeCtx
    functionSourceFile: /src/openweave-core/src/test-apps/MockIAServer.cpp
    functionUses: 3
    functionsReached:
    - Close
    linkageType: ''
    returnType: void
    signature: MockImageAnnounceServer::CloseExistingExchangeCtx()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockIAServer.cpp:86,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockIAServer.cpp:91,1
    - Dst: MockImageAnnounceServer*::OnImageAnnounceReceived
      Src: /src/openweave-core/src/test-apps/MockIAServer.cpp:94,1
    - Dst: MockImageAnnounceServer::CloseExistingExchangeCtx
      Src: /src/openweave-core/src/test-apps/MockIAServer.cpp:95,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/MockIAServer.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ec
    argTypes:
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 98
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 98
    functionName: MockImageAnnounceServer::OnImageAnnounce
    functionSourceFile: /src/openweave-core/src/test-apps/MockIAServer.cpp
    functionUses: 0
    functionsReached:
    - MockImageAnnounceServer*::OnImageAnnounceReceived
    - printf
    - MockImageAnnounceServer::CloseExistingExchangeCtx
    linkageType: ''
    returnType: void
    signature: MockImageAnnounceServer::OnImageAnnounce(ExchangeContext* ec)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - newCurTime
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: Private::SetClock_RealTime
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: System::Error
    signature: SetClock_RealTime(uint64_t newCurTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Platform::Layer::GetClock_Monotonic
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' curTime'
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 109
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 109
    functionName: Private::GetClock_RealTime
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Platform::Layer::GetClock_Monotonic
    linkageType: ''
    returnType: System::Error
    signature: GetClock_RealTime(uint64_t & curTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: nl::Weave::Profiles::Platform::CriticalSectionEnter
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionEnter()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: nl::Weave::Profiles::Platform::CriticalSectionExit
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionExit()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: nl::Weave::Profiles::TestSubscriptionHandler::SetActive
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetActive(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: nl::Weave::Profiles::TestSubscriptionHandler::SetTerminated
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetTerminated(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: nl::Weave::Profiles::TestSubscriptionHandler::SetEstablishedIdle
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetEstablishedIdle(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aEC
    argTypes:
    - nl::Weave::ExchangeContext*
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: nl::Weave::Profiles::TestSubscriptionHandler::SetExchangeContext
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetExchangeContext(nl::Weave::ExchangeContext * aEC)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitAsFree
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: nl::Weave::Profiles::TestSubscriptionHandler::TestSubscriptionHandler
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - InitAsFree
    linkageType: ''
    returnType: void
    signature: TestSubscriptionHandler::TestSubscriptionHandler(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindNextImportanceForTransfer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: nl::Weave::Profiles::TestSubscriptionHandler::VerifyTraversingImportance
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - FindNextImportanceForTransfer
    linkageType: ''
    returnType: bool
    signature: TestSubscriptionHandler::VerifyTraversingImportance(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inImportance
    argTypes:
    - nl::Weave::Profiles::DataManagement::ImportanceType
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: '&

      TestSubscriptionHandler::GetVendedEvent(nl::Weave::Profiles::DataManagement::ImportanceType
      inImportance)'
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: nl::Weave::Profiles::DataManagement::event_id_t
    signature: '&

      TestSubscriptionHandler::GetVendedEvent(nl::Weave::Profiles::DataManagement::ImportanceType
      inImportance)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: nl::Weave::Profiles::SubscriptionEngine::GetInstance
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: SubscriptionEngine
    signature: '* SubscriptionEngine::GetInstance()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 298
    functionName: TestLoggingContext::TestLoggingContext
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestLoggingContext::TestLoggingContext()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 336
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 336
    functionName: TestOpenCloseState::TestOpenCloseState
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestOpenCloseState::TestOpenCloseState()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 348
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 348
    functionName: TestOpenCloseState::EvolveState
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestOpenCloseState::EvolveState(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:356,1
    - Dst: static_cast<TestOpenCloseState *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:357,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:359,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:359,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:361,1
    - Dst: Put
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:363,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:363,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:364,1
    - Dst: Put
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:366,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:366,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:367,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:369,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:370,1
    - Dst: Finalize
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:372,1
    - Dst: TestOpenCloseState*::EvolveState
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - ' writer'
    - inDataTag
    - anAppState
    argTypes:
    - nl::Weave::TLV::TLVWriter
    - uint8_t
    - void*
    constantsTouched: []
    func_position:
      end: 378
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 378
    functionName: WriteOpenCloseState
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - TestOpenCloseState*::EvolveState
    - StartContainer
    - ContextTag
    - VerifyOrExit
    - static_cast<TestOpenCloseState *>
    - EndContainer
    - Put
    - SuccessOrExit
    - Finalize
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WriteOpenCloseState(nl::Weave::TLV::TLVWriter & writer, uint8_t inDataTag,
      void * anAppState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:384,1
    - Dst: vprintf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:386,1
    - Dst: va_end
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - aFormat
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 389
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 389
    functionName: SimpleDumpWriter
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - vprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: SimpleDumpWriter(const char * aFormat, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:393,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:399,1
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:401,1
    - Dst: PacketBuffer*::TotalLength
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:401,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:402,1
    - Dst: nl::Weave::TLV::Debug::Dump
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - inAppState
    - inBuffer
    argTypes:
    - void*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 405
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 405
    functionName: LogBufferConsole
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetStart
    - printf
    - nl::Weave::TLV::Debug::Dump
    - PacketBuffer*::TotalLength
    - nl::Weave::TLV::TLVReader::Init
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LogBufferConsole(void * inAppState, PacketBuffer * inBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:440,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:442,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:444,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:446,1
    - Dst: nl::Weave::Profiles::LoggingManagement::CreateLoggingManagement
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:449,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:452,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:453,1
    - Dst: nl::Weave::Profiles::DataManagement::LogBDXUpload::LogBDXUpload
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:455,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - TestLoggingContext*
    constantsTouched: []
    func_position:
      end: 457
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 457
    functionName: InitializeEventLogging
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - static_cast<void *>
    - Init
    - nl::Weave::Profiles::DataManagement::LogBDXUpload::LogBDXUpload
    - nl::Weave::Profiles::LoggingManagement::CreateLoggingManagement
    linkageType: ''
    returnType: void
    signature: InitializeEventLogging(TestLoggingContext * context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - TestLoggingContext*
    constantsTouched: []
    func_position:
      end: 462
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 462
    functionName: DestroyEventLogging
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    linkageType: ''
    returnType: void
    signature: DestroyEventLogging(TestLoggingContext * context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:468,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:470,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:472,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:474,1
    - Dst: nl::Weave::Platform::PersistedStorage::Write
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:478,1
    - Dst: nl::Weave::Platform::PersistedStorage::Write
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:479,1
    - Dst: nl::Weave::Platform::PersistedStorage::Write
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:480,1
    - Dst: nl::Weave::Platform::PersistedStorage::Write
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:481,1
    - Dst: nl::Weave::Profiles::LoggingManagement::CreateLoggingManagement
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:483,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - context
    - startingValue
    - globalImportance
    argTypes:
    - TestLoggingContext*
    - uint32_t
    - nl::Weave::Profiles::DataManagement::ImportanceType
    constantsTouched: []
    func_position:
      end: 487
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 487
    functionName: InitializeEventLoggingWithPersistedCounters
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - static_cast<void *>
    - nl::Weave::Platform::PersistedStorage::Write
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - nl::Weave::Profiles::LoggingManagement::CreateLoggingManagement
    linkageType: ''
    returnType: void
    signature: "InitializeEventLoggingWithPersistedCounters(TestLoggingContext * context,
      uint32_t startingValue,\n                                                 nl::Weave::Profiles::DataManagement::ImportanceType
      globalImportance)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:497,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:499,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:503,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:503,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:507,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:507,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:507,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:509,1
    - Dst: nl::Weave::TLV::Utilities::Count
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:510,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:511,1
    - Dst: nl::Weave::TLV::Debug::Dump
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 513
      start: 489
    functionDepth: 2
    functionLinenumber: 489
    functionLinenumberEnd: 513
    functionName: DumpEventLog
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 1
    functionsReached:
    - TLVReader::Init
    - nl::Weave::TLV::Utilities::Count
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - TLVWriter::GetLengthWritten
    - printf
    - nl::Weave::TLV::Debug::Dump
    - TLVWriter::Init
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: DumpEventLog(nlTestSuite * inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:524,1
    - Dst: PrepareBinding
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:528,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:537,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:546,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:551,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - context
    argTypes:
    - TestLoggingContext*
    constantsTouched: []
    func_position:
      end: 552
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 552
    functionName: DoBDXUpload
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - ServiceNetwork
    - Shutdown
    - StartTimer
    - PrepareBinding
    linkageType: ''
    returnType: void
    signature: DoBDXUpload(TestLoggingContext * context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:558,1
    - Dst: nl::Weave::TLV::Utilities::Count
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:561,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:562,1
    - Dst: nl::Weave::TLV::Debug::Dump
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 564
      start: 554
    functionDepth: 2
    functionLinenumber: 554
    functionLinenumberEnd: 564
    functionName: PrintEventLog
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - printf
    - nl::Weave::TLV::Debug::Dump
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - nl::Weave::TLV::Utilities::Count
    linkageType: ''
    returnType: void
    signature: PrintEventLog()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:568,1
    - Dst: WeaveFabricState::WeaveFabricState
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:569,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:572,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:576,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:577,1
    - Dst: tcpip_init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:590,1
    - Dst: WeaveFabricState::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:593,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 606
      start: 566
    functionDepth: 3
    functionLinenumber: 566
    functionLinenumberEnd: 606
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 1
    functionsReached:
    - InitSystemLayer
    - static_cast<TestLoggingContext *>
    - InitNetwork
    - InitWeaveStack
    - SubscriptionEngine::GetInstance
    - WeaveFabricState::WeaveFabricState
    - WeaveFabricState::Init
    - tcpip_init
    linkageType: ''
    returnType: int
    signature: TestSetup(void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:610,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:613,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:614,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 619
      start: 608
    functionDepth: 3
    functionLinenumber: 608
    functionLinenumberEnd: 619
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 1
    functionsReached:
    - static_cast<TestLoggingContext *>
    - ShutdownWeaveStack
    - ShutdownNetwork
    - ShutdownSystemLayer
    linkageType: ''
    returnType: int
    signature: TestTeardown(void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetEventReader
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:628,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:629,1
    - Dst: nl::Weave::TLV::Utilities::Count
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:631,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:632,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:634,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - inSuite
    - inContext
    - ' logMgmt'
    - expectedNumEvents
    argTypes:
    - nlTestSuite*
    - TestLoggingContext*
    - nl::Weave::Profiles::DataManagement::LoggingManagement
    - size_t
    constantsTouched: []
    func_position:
      end: 639
      start: 621
    functionDepth: 2
    functionLinenumber: 621
    functionLinenumberEnd: 639
    functionName: CheckLogState
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - GetEventReader
    - printf
    - nl::Weave::TLV::Utilities::Count
    linkageType: ''
    returnType: void
    signature: "CheckLogState(nlTestSuite * inSuite, TestLoggingContext * inContext,\n
      \                         nl::Weave::Profiles::DataManagement::LoggingManagement
      & logMgmt, size_t expectedNumEvents)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:651,1
    - Dst: FetchEventsSince
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:653,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:654,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:656,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:656,1
    - Dst: nl::Weave::TLV::Utilities::Count
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:658,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:659,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:660,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:664,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:664,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:665,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:666,1
    - Dst: nl::Weave::TLV::Debug::Dump
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - inSuite
    - inContext
    - ' logMgmt'
    - importance
    - startingEventId
    - expectedNumEvents
    argTypes:
    - nlTestSuite*
    - TestLoggingContext*
    - nl::Weave::Profiles::DataManagement::LoggingManagement
    - nl::Weave::Profiles::DataManagement::ImportanceType
    - event_id_t
    - size_t
    constantsTouched: []
    func_position:
      end: 669
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 669
    functionName: CheckLogReadOut
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - nl::Weave::TLV::Utilities::Count
    - NL_TEST_ASSERT
    - TLVWriter::GetLengthWritten
    - printf
    - nl::Weave::TLV::Debug::Dump
    - TLVWriter::Init
    - FetchEventsSince
    linkageType: ''
    returnType: void
    signature: "CheckLogReadOut(nlTestSuite * inSuite, TestLoggingContext * inContext,\n
      \                           nl::Weave::Profiles::DataManagement::LoggingManagement
      & logMgmt,\n                            nl::Weave::Profiles::DataManagement::ImportanceType
      importance, event_id_t startingEventId,\n                            size_t
      expectedNumEvents)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:673,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:679,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:682,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:685,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:685,1
    - Dst: CheckLogState
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:686,1
    - Dst: usleep
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:688,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:689,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:689,1
    - Dst: CheckLogState
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:690,1
    - Dst: usleep
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:692,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:693,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:693,1
    - Dst: CheckLogState
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:694,1
    - Dst: PrintEventLog
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:698,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:700,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:701,1
    - Dst: CheckLogReadOut
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:704,1
    - Dst: CheckLogReadOut
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:705,1
    - Dst: CheckLogReadOut
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:706,1
    - Dst: DoBDXUpload
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:709,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 711
      start: 671
    functionDepth: 3
    functionLinenumber: 671
    functionLinenumberEnd: 711
    functionName: CheckLogEventBasics
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - CheckLogState
    - CheckLogReadOut
    - InitializeEventLogging
    - PrintEventLog
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - static_cast<void *>
    - usleep
    - DoBDXUpload
    - WiFiTelemetry::GetTelemetryStatsAndLogEvent
    linkageType: ''
    returnType: void
    signature: CheckLogEventBasics(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:715,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:718,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:721,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:724,1
    - Dst: CheckLogState
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:727,1
    - Dst: usleep
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:729,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:731,1
    - Dst: CheckLogState
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:733,1
    - Dst: usleep
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:735,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:736,1
    - Dst: CheckLogState
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:738,1
    - Dst: PrintEventLog
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:742,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:744,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:745,1
    - Dst: CheckLogReadOut
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:748,1
    - Dst: CheckLogReadOut
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:749,1
    - Dst: CheckLogReadOut
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:750,1
    - Dst: DoBDXUpload
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 755
      start: 713
    functionDepth: 3
    functionLinenumber: 713
    functionLinenumberEnd: 755
    functionName: CheckLogFreeform
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - CheckLogState
    - CheckLogReadOut
    - nl::Weave::Profiles::LogFreeform
    - InitializeEventLogging
    - PrintEventLog
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - usleep
    - DoBDXUpload
    linkageType: ''
    returnType: void
    signature: CheckLogFreeform(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:759,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:771,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:774,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:776,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:777,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:778,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:780,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:780,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:781,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:783,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:783,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:784,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:786,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:787,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:789,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:790,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:792,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:792,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:795,1
    - Dst: CheckLogState
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:797,1
    - Dst: usleep
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:799,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:800,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:800,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:801,1
    - Dst: CheckLogState
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:802,1
    - Dst: usleep
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:804,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:805,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:805,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:806,1
    - Dst: CheckLogState
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:807,1
    - Dst: PrintEventLog
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:811,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:813,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:814,1
    - Dst: CheckLogReadOut
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:817,1
    - Dst: CheckLogReadOut
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:818,1
    - Dst: CheckLogReadOut
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:819,1
    - Dst: DoBDXUpload
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:822,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 824
      start: 757
    functionDepth: 3
    functionLinenumber: 757
    functionLinenumberEnd: 824
    functionName: CheckLogPreformed
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - CheckLogState
    - CheckLogReadOut
    - InitializeEventLogging
    - TLVWriter::Finalize
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - ContextTag
    - PrintEventLog
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - WiFiTelemetry::GetTelemetryStatsAndLogEvent
    - TLVWriter::EndContainer
    - TLVWriter::GetLengthWritten
    - usleep
    - TLVWriter::Init
    - TLVWriter::Put
    - DoBDXUpload
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: void
    signature: CheckLogPreformed(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:899,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:903,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:913,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:923,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:926,1
    - Dst: nl::Weave::TLV::TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:928,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:928,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:929,1
    - Dst: SerializedDataToTLVWriterHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:931,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:932,1
    - Dst: Finalize
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:934,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:935,1
    - Dst: nl::Weave::TLV::TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:937,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:938,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:940,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:941,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:944,1
    - Dst: nl::Weave::TLV::TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:944,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:945,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:945,1
    - Dst: LogSampleEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:947,1
    - Dst: CheckLogState
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:948,1
    - Dst: LogOpenCloseEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:951,1
    - Dst: CheckLogState
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:952,1
    - Dst: CheckLogReadOut
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:954,1
    - Dst: CheckLogReadOut
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:955,1
    - Dst: DoBDXUpload
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:959,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:962,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:963,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:964,1
    - Dst: Schema::Nest::Test::Trait::TestETrait::TestELargeArrayNullableEvent::SetTelaneANull
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:970,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:971,1
    - Dst: nl::Weave::TLV::TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:973,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:973,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:974,1
    - Dst: SerializedDataToTLVWriterHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:976,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:977,1
    - Dst: Finalize
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:979,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:980,1
    - Dst: nl::Weave::TLV::TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:982,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:983,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:985,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:986,1
    - Dst: nl::Weave::TLV::TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:987,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:989,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:990,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:991,1
    - Dst: nl::Weave::TLV::TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:993,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:993,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:994,1
    - Dst: SerializedDataToTLVWriterHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:996,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:997,1
    - Dst: Finalize
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:999,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1000,1
    - Dst: nl::Weave::TLV::TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1002,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1003,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1005,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1006,1
    - Dst: nl::Weave::TLV::TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1007,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1008,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 68
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1009
      start: 897
    functionDepth: 3
    functionLinenumber: 897
    functionLinenumberEnd: 1009
    functionName: CheckSchemaGeneratedLogging
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - InitializeEventLogging
    - NL_TEST_ASSERT
    - SerializedDataToTLVWriterHelper
    - Schema::Nest::Test::Trait::TestETrait::TestELargeArrayNullableEvent::SetTelaneANull
    - nl::Weave::TLV::TLVWriter::CloseContainer
    - nl::Weave::TLV::TLVWriter::OpenContainer
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - LogSampleEvent
    - nl::Weave::TLV::TLVWriter::GetLengthWritten
    - Finalize
    - CheckLogState
    - CheckLogReadOut
    - LogOpenCloseEvent
    - memset
    - ProfileTag
    - nl::Weave::TLV::TLVWriter::Init
    - memcmp
    - static_cast<TestLoggingContext *>
    - static_cast<void *>
    - nl::Weave::TLV::TLVWriter::Finalize
    - DoBDXUpload
    linkageType: ''
    returnType: void
    signature: CheckSchemaGeneratedLogging(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1013,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1025,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1027,1
    - Dst: LogByteStringTestEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1029,1
    - Dst: FetchEventsHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1031,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1032,1
    - Dst: DeserializeByteStringTestEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1034,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1035,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1037,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1038,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1038,1
    - Dst: DeallocateDeserializedStructure
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1041
      start: 1011
    functionDepth: 1
    functionLinenumber: 1011
    functionLinenumberEnd: 1041
    functionName: CheckByteStringFieldType
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - DeserializeByteStringTestEvent
    - memcmp
    - FetchEventsHelper
    - InitializeEventLogging
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - memset
    - DeallocateDeserializedStructure
    - LogByteStringTestEvent
    linkageType: ''
    returnType: void
    signature: CheckByteStringFieldType(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1045,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1061,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1068,1
    - Dst: LogByteStringArrayTestEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1070,1
    - Dst: FetchEventsHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1072,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1073,1
    - Dst: DeserializeByteStringArrayTestEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1075,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1076,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1078,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1081,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1082,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1083,1
    - Dst: DeallocateDeserializedStructure
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1086,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1087
      start: 1043
    functionDepth: 1
    functionLinenumber: 1043
    functionLinenumberEnd: 1087
    functionName: CheckByteStringArray
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - FetchEventsHelper
    - InitializeEventLogging
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - LogByteStringArrayTestEvent
    - DeserializeByteStringArrayTestEvent
    - memset
    - DeallocateDeserializedStructure
    linkageType: ''
    returnType: void
    signature: CheckByteStringArray(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1103,1
    - Dst: EventOptions
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1107,1
    - Dst: LogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1109,1
    - Dst: va_end
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - inImportance
    - inTimestamp
    - inFormat
    argTypes:
    - ImportanceType
    - timestamp_t
    - char*
    constantsTouched: []
    func_position:
      end: 1114
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1114
    functionName: FastLogFreeform
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - LogEvent
    - va_start
    - va_end
    - EventOptions
    linkageType: ''
    returnType: event_id_t
    signature: FastLogFreeform(ImportanceType inImportance, timestamp_t inTimestamp,
      const char * inFormat, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1118,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1122,1
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1124,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1125,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1130,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1133,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1134,1
    - Dst: DoBDXUpload
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1142
      start: 1116
    functionDepth: 1
    functionLinenumber: 1116
    functionLinenumberEnd: 1142
    functionName: CheckEvict
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - InitializeEventLogging
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - nl::Weave::System::Layer::GetClock_MonotonicMS
    - FastLogFreeform
    - DoBDXUpload
    linkageType: ''
    returnType: void
    signature: CheckEvict(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1151,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1152,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1154,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1155,1
    - Dst: GetTag
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1157,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1159,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1161,1
    - Dst: Get
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1163,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1164,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1167,1
    - Dst: Get
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1169,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1170,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1173,1
    - Dst: Get
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1175,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1176,1
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1179,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1180,1
    - Dst: GetTag
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1182,1
    - Dst: ExitContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1185,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - ' aReader'
    - ' aTimestamp'
    - ' aUtcTimestamp'
    - ' aEventId'
    argTypes:
    - TLVReader
    - timestamp_t
    - utc_timestamp_t
    - event_id_t
    constantsTouched: []
    func_position:
      end: 1189
      start: 1144
    functionDepth: 0
    functionLinenumber: 1144
    functionLinenumberEnd: 1189
    functionName: ReadFirstEventHeader
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - EnterContainer
    - ContextTag
    - ExitContainer
    - GetTag
    - Get
    - SuccessOrExit
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "ReadFirstEventHeader(TLVReader & aReader, timestamp_t & aTimestamp,
      utc_timestamp_t & aUtcTimestamp,\n                                        event_id_t
      & aEventId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1194,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1200,1
    - Dst: static_cast<utc_timestamp_t>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1202,1
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1202,1
    - Dst: static_cast<timestamp_t>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1203,1
    - Dst: nl::Weave::System::Layer::SetClock_RealTime
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1204,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1206,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1207,1
    - Dst: nl::Weave::System::Layer::SetClock_RealTime
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1214,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1217,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1218,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1219,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1221,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1222,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1228,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1239,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1240,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1242,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1243,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1248,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1248,1
    - Dst: nl::Weave::TLV::Debug::Dump
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1250,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1253,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1253,1
    - Dst: ReadFirstEventHeader
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1255,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1257,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1258,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1262,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1267,1
    - Dst: static_cast<timestamp_t>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1267,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1270
      start: 1191
    functionDepth: 2
    functionLinenumber: 1191
    functionLinenumberEnd: 1270
    functionName: CheckFetchTimestamps
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - static_cast<timestamp_t>
    - ReadFirstEventHeader
    - InitializeEventLogging
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - nl::Weave::System::Layer::GetClock_MonotonicMS
    - TLVWriter::GetLengthWritten
    - static_cast<utc_timestamp_t>
    - nl::Weave::TLV::Debug::Dump
    - FastLogFreeform
    - nl::Weave::System::Layer::SetClock_RealTime
    - TLVWriter::Init
    linkageType: ''
    returnType: void
    signature: CheckFetchTimestamps(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1279,1
    - Dst: static_cast<uint32_t *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1280,1
    - Dst: reinterpret_cast<uint8_t *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1282,1
    - Dst: malloc
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1282,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1283,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1285,1
    - Dst: StartContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1287,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1287,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1289,1
    - Dst: PutBytes
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1291,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1291,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1292,1
    - Dst: EndContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1294,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1295,1
    - Dst: Finalize
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1297,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 3
    argNames:
    - ' writer'
    - inDataTag
    - anAppState
    argTypes:
    - nl::Weave::TLV::TLVWriter
    - uint8_t
    - void*
    constantsTouched: []
    func_position:
      end: 1305
      start: 1272
    functionDepth: 1
    functionLinenumber: 1272
    functionLinenumberEnd: 1305
    functionName: WriteLargeEvent
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - StartContainer
    - reinterpret_cast<uint8_t *>
    - ContextTag
    - VerifyOrExit
    - memset
    - PutBytes
    - free
    - EndContainer
    - SuccessOrExit
    - Finalize
    - malloc
    - static_cast<uint32_t *>
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: WriteLargeEvent(nl::Weave::TLV::TLVWriter & writer, uint8_t inDataTag,
      void * anAppState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1309,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1316,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1319,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1323,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1323,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1324,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1326,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1326,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1327,1
    - Dst: CheckLogState
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1328,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1332,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1332,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1333,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1337,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1337,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1339
      start: 1307
    functionDepth: 3
    functionLinenumber: 1307
    functionLinenumberEnd: 1339
    functionName: CheckLargeEvents
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - CheckLogState
    - InitializeEventLogging
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - static_cast<void *>
    - WiFiTelemetry::GetTelemetryStatsAndLogEvent
    linkageType: ''
    returnType: void
    signature: CheckLargeEvents(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1346,1
    - Dst: reinterpret_cast<CircularEventBuffer *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1351,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1360,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1363,1
    - Dst: LogMockExternalEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1366,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1367,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1372,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1373,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1374,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1378,1
    - Dst: FetchEventsSince
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1379,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1380,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1381,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1393,1
    - Dst: FetchEventsSince
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1394,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1395,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1396,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1398,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1398,1
    - Dst: ReadFirstEventHeader
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1399,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1402
      start: 1342
    functionDepth: 1
    functionLinenumber: 1342
    functionLinenumberEnd: 1402
    functionName: CheckDropEvents
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - ReadFirstEventHeader
    - InitializeEventLogging
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - LogMockExternalEvents
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - static_cast<void *>
    - TLVWriter::GetLengthWritten
    - reinterpret_cast<CircularEventBuffer *>
    - TLVWriter::Init
    - FetchEventsSince
    - WiFiTelemetry::GetTelemetryStatsAndLogEvent
    linkageType: ''
    returnType: void
    signature: CheckDropEvents(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1408,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1414,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1418,1
    - Dst: static_cast<timestamp_t>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1419,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1421,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1433,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1436,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1437,1
    - Dst: PrintEventLog
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1444,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1450,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1451,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1453,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1461,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1462,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1464,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1468,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1468,1
    - Dst: nl::Weave::TLV::Utilities::Count
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1470,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1471,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1472,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1477,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1478,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1480,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1485,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1486,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1488,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1490,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1491,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1492,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1493,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1495,1
    - Dst: DoBDXUpload
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1499,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1501
      start: 1406
    functionDepth: 3
    functionLinenumber: 1406
    functionLinenumberEnd: 1501
    functionName: CheckFetchEvents
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - static_cast<timestamp_t>
    - nl::Weave::TLV::Utilities::Count
    - InitializeEventLogging
    - PrintEventLog
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - TLVWriter::GetLengthWritten
    - FastLogFreeform
    - TLVWriter::Init
    - DoBDXUpload
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: CheckFetchEvents(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1505,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1517,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1527,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1530,1
    - Dst: nl::Weave::TLV::TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1532,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1532,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1533,1
    - Dst: SerializedDataToTLVWriterHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1535,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1536,1
    - Dst: Finalize
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1538,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1539,1
    - Dst: nl::Weave::TLV::TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1541,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1542,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1544,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1545,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1549,1
    - Dst: nl::Weave::TLV::TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1549,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1550,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1550,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1554,1
    - Dst: nl::Weave::TLV::TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1554,1
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1555,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1556,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1558,1
    - Dst: OpenContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1561,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1562,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1564,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1565,1
    - Dst: nl::Weave::Profiles::DeserializeSampleEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1567,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1568,1
    - Dst: CloseContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1570,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1571,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1573,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1574,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1575,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1576,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1576,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1577,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1580,1
    - Dst: nl::DeallocateDeserializedStructure
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 46
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1584
      start: 1503
    functionDepth: 5
    functionLinenumber: 1503
    functionLinenumberEnd: 1584
    functionName: CheckBasicEventDeserialization
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - nl::DeallocateDeserializedStructure
    - InitializeEventLogging
    - NL_TEST_ASSERT
    - SerializedDataToTLVWriterHelper
    - nl::Weave::TLV::TLVWriter::CloseContainer
    - nl::Weave::TLV::TLVReader::Next
    - nl::Weave::TLV::TLVWriter::OpenContainer
    - nl::Weave::TLV::TLVWriter::GetLengthWritten
    - Finalize
    - OpenContainer
    - nl::Weave::Profiles::DeserializeSampleEvent
    - CloseContainer
    - ProfileTag
    - Next
    - nl::Weave::TLV::TLVWriter::Init
    - memcmp
    - strcmp
    - static_cast<TestLoggingContext *>
    - static_cast<void *>
    - Init
    - nl::Weave::TLV::TLVWriter::Finalize
    linkageType: ''
    returnType: void
    signature: CheckBasicEventDeserialization(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1588,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1601,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1603,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1634,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1637,1
    - Dst: nl::Weave::TLV::TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1639,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1639,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1640,1
    - Dst: SerializedDataToTLVWriterHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1642,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1643,1
    - Dst: Finalize
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1645,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1646,1
    - Dst: nl::Weave::TLV::TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1648,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1649,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1651,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1652,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1656,1
    - Dst: nl::Weave::TLV::TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1656,1
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1658,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1659,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1661,1
    - Dst: OpenContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1664,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1665,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1667,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1668,1
    - Dst: nl::DeserializeEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1670,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1671,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1672,1
    - Dst: CloseContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1674,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1675,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1677,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1678,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1679,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1680,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1681,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1682,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1683,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1684,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1685,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1686,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1689,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1693,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1694,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1696,1
    - Dst: Schema::Nest::Test::Trait::TestETrait::TestEEvent::IsTeJPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1696,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1697,1
    - Dst: nl::DeallocateEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 80
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1703
      start: 1586
    functionDepth: 5
    functionLinenumber: 1586
    functionLinenumberEnd: 1703
    functionName: CheckComplexEventDeserialization
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - InitializeEventLogging
    - nl::DeserializeEvent
    - NL_TEST_ASSERT
    - SerializedDataToTLVWriterHelper
    - nl::Weave::TLV::TLVWriter::CloseContainer
    - nl::Weave::TLV::TLVReader::Next
    - nl::Weave::TLV::TLVWriter::OpenContainer
    - nl::DeallocateEvent
    - nl::Weave::TLV::TLVWriter::GetLengthWritten
    - Finalize
    - OpenContainer
    - CloseContainer
    - memset
    - ProfileTag
    - Schema::Nest::Test::Trait::TestETrait::TestEEvent::IsTeJPresent
    - Next
    - nl::Weave::TLV::TLVWriter::Init
    - static_cast<TestLoggingContext *>
    - static_cast<void *>
    - Init
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::Finalize
    linkageType: ''
    returnType: void
    signature: CheckComplexEventDeserialization(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1707,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1719,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1728,1
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1731,1
    - Dst: nl::Weave::TLV::TLVWriter::OpenContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1733,1
    - Dst: ProfileTag
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1733,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1734,1
    - Dst: SerializedDataToTLVWriterHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1736,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1737,1
    - Dst: Finalize
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1739,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1740,1
    - Dst: nl::Weave::TLV::TLVWriter::CloseContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1742,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1743,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1745,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1746,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1750,1
    - Dst: nl::Weave::TLV::TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1750,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1751,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1751,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1755,1
    - Dst: nl::Weave::TLV::TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1755,1
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1757,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1758,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1760,1
    - Dst: OpenContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1763,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1764,1
    - Dst: nl::Weave::TLV::TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1766,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1767,1
    - Dst: nl::Weave::Profiles::DeserializeSampleEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1769,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1770,1
    - Dst: CloseContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1772,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1773,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1775,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1776,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1777,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1778,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1778,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1779,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1780,1
    - Dst: nl::MemoryManagement::mem_free
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1783
      start: 1705
    functionDepth: 5
    functionLinenumber: 1705
    functionLinenumberEnd: 1783
    functionName: CheckEmptyArrayEventDeserialization
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - InitializeEventLogging
    - NL_TEST_ASSERT
    - SerializedDataToTLVWriterHelper
    - nl::Weave::TLV::TLVWriter::CloseContainer
    - nl::Weave::TLV::TLVReader::Next
    - nl::Weave::TLV::TLVWriter::OpenContainer
    - nl::Weave::TLV::TLVWriter::GetLengthWritten
    - Finalize
    - OpenContainer
    - nl::Weave::Profiles::DeserializeSampleEvent
    - CloseContainer
    - ProfileTag
    - Next
    - nl::Weave::TLV::TLVWriter::Init
    - memcmp
    - strcmp
    - static_cast<TestLoggingContext *>
    - nl::MemoryManagement::mem_free
    - static_cast<void *>
    - Init
    - nl::Weave::TLV::TLVWriter::Finalize
    linkageType: ''
    returnType: void
    signature: CheckEmptyArrayEventDeserialization(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1792,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1793,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1794,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1796,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1796,1
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1798,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1799,1
    - Dst: EnterContainer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1801,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1802,1
    - Dst: GetTag
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1804,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1804,1
    - Dst: Next
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1806,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - ' aReader'
    - aEventId
    - aBackingStore
    - aLen
    - aImportance
    argTypes:
    - TLVReader
    - event_id_t
    - uint8_t*
    - size_t
    - ImportanceType
    constantsTouched: []
    func_position:
      end: 1811
      start: 1785
    functionDepth: 0
    functionLinenumber: 1785
    functionLinenumberEnd: 1811
    functionName: FetchEventsHelper
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 2
    functionsReached:
    - EnterContainer
    - ContextTag
    - VerifyOrExit
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - TLVWriter::GetLengthWritten
    - Init
    - GetTag
    - SuccessOrExit
    - TLVWriter::Init
    - Next
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "FetchEventsHelper(TLVReader & aReader, event_id_t aEventId, uint8_t
      * aBackingStore, size_t aLen,\n                                     ImportanceType
      aImportance)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1823
    functionDepth: 0
    functionLinenumber: 1823
    functionLinenumberEnd: 1823
    functionName: TestEventProcessor::TestEventProcessor
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestEventProcessor::TestEventProcessor()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - inReader
    - ' inClient'
    - ' inEventHeader'
    argTypes:
    - TLVReader
    - SubscriptionClient
    - EventHeader
    constantsTouched: []
    func_position:
      end: 1829
      start: 1825
    functionDepth: 0
    functionLinenumber: 1825
    functionLinenumberEnd: 1829
    functionName: TestEventProcessor::ProcessEvent
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestEventProcessor::ProcessEvent(TLVReader inReader, SubscriptionClient
      & inClient, const EventHeader & inEventHeader)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' inEventHeader'
    argTypes:
    - EventHeader
    constantsTouched: []
    func_position:
      end: 1834
      start: 1831
    functionDepth: 0
    functionLinenumber: 1831
    functionLinenumberEnd: 1834
    functionName: TestEventProcessor::GapDetected
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestEventProcessor::GapDetected(const EventHeader & inEventHeader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1840,1
    - Dst: InitializeEventLoggingWithPersistedCounters
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1842,1
    - Dst: TestEventProcessor::TestEventProcessor
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1849,1
    - Dst: PrepareBinding
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1856,1
    - Dst: InitSubscriptionClient
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1857,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1862,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1866,1
    - Dst: FetchEventsHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1868,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1869,1
    - Dst: TLVReader::GetRemainingLength
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1871,1
    - Dst: TLVReader::GetLengthRead
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1871,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1872,1
    - Dst: TestEventProcessor::ProcessEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1874,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1875,1
    - Dst: nl::Weave::TLV::Debug::Dump
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 3
    argNames:
    - inContext
    - ' encodedSchemaVersionRange'
    - ' decodedSchemaVersionRange'
    argTypes:
    - void*
    - SchemaVersionRange
    - SchemaVersionRange
    constantsTouched: []
    func_position:
      end: 1886
      start: 1836
    functionDepth: 2
    functionLinenumber: 1836
    functionLinenumberEnd: 1886
    functionName: VersionCompatibilityHelper
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - InitializeEventLoggingWithPersistedCounters
    - FetchEventsHelper
    - static_cast<TestLoggingContext *>
    - static_cast<void *>
    - WiFiTelemetry::GetTelemetryStatsAndLogEvent
    - TLVReader::GetLengthRead
    - TestEventProcessor::TestEventProcessor
    - PrepareBinding
    - nl::Weave::TLV::Debug::Dump
    - SuccessOrExit
    - TestEventProcessor::ProcessEvents
    - TLVReader::GetRemainingLength
    - InitSubscriptionClient
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "VersionCompatibilityHelper(void * inContext, SchemaVersionRange &
      encodedSchemaVersionRange,\n                                              SchemaVersionRange
      & decodedSchemaVersionRange)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VersionCompatibilityHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1896,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1897,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1899
      start: 1888
    functionDepth: 3
    functionLinenumber: 1888
    functionLinenumberEnd: 1899
    functionName: CheckVersion1DataCompatibility
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - VersionCompatibilityHelper
    - NL_TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: CheckVersion1DataCompatibility(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VersionCompatibilityHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1909,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1910,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1912
      start: 1901
    functionDepth: 3
    functionLinenumber: 1901
    functionLinenumberEnd: 1912
    functionName: CheckForwardDataCompatibility
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - VersionCompatibilityHelper
    - NL_TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: CheckForwardDataCompatibility(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VersionCompatibilityHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1922,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1923,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1925
      start: 1914
    functionDepth: 3
    functionLinenumber: 1914
    functionLinenumberEnd: 1925
    functionName: CheckDataIncompatibility
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - VersionCompatibilityHelper
    - NL_TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: CheckDataIncompatibility(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1945
      start: 1943
    functionDepth: 0
    functionLinenumber: 1943
    functionLinenumberEnd: 1945
    functionName: FakeEventProcessor::FakeEventProcessor
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: FakeEventProcessor::FakeEventProcessor()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EventHeader
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1949,1
    - Dst: EventHeader
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1947
    functionDepth: 0
    functionLinenumber: 1947
    functionLinenumberEnd: 1953
    functionName: FakeEventProcessor::ClearMock
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - EventHeader
    linkageType: ''
    returnType: void
    signature: FakeEventProcessor::ClearMock()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - inReader
    - ' inClient'
    - ' inEventHeader'
    argTypes:
    - TLVReader
    - SubscriptionClient
    - EventHeader
    constantsTouched: []
    func_position:
      end: 1960
      start: 1955
    functionDepth: 0
    functionLinenumber: 1955
    functionLinenumberEnd: 1960
    functionName: FakeEventProcessor::ProcessEvent
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: FakeEventProcessor::ProcessEvent(TLVReader inReader, SubscriptionClient
      & inClient, const EventHeader & inEventHeader)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' inEventHeader'
    argTypes:
    - EventHeader
    constantsTouched: []
    func_position:
      end: 1967
      start: 1962
    functionDepth: 0
    functionLinenumber: 1962
    functionLinenumberEnd: 1967
    functionName: FakeEventProcessor::GapDetected
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: FakeEventProcessor::GapDetected(const EventHeader & inEventHeader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1974,1
    - Dst: InitializeEventLoggingWithPersistedCounters
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1976,1
    - Dst: FakeEventProcessor::FakeEventProcessor
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1983,1
    - Dst: PrepareBinding
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1990,1
    - Dst: InitSubscriptionClient
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1991,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1993,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:1998,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2000,1
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2002,1
    - Dst: FetchEventsHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2005,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2006,1
    - Dst: TLVReader::GetRemainingLength
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2007,1
    - Dst: TLVReader::GetLengthRead
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2007,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2008,1
    - Dst: FakeEventProcessor::ProcessEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2009,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2010,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2012,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2013,1
    - Dst: FakeEventProcessor::ClearMock
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2015,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2019,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2021,1
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2023,1
    - Dst: FetchEventsHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2026,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2027,1
    - Dst: TLVReader::GetRemainingLength
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2028,1
    - Dst: TLVReader::GetLengthRead
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2028,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2029,1
    - Dst: FakeEventProcessor::ProcessEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2030,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2031,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2033,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2034,1
    - Dst: FakeEventProcessor::ClearMock
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2037
      start: 1971
    functionDepth: 2
    functionLinenumber: 1971
    functionLinenumberEnd: 2037
    functionName: CheckGapDetection
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - FakeEventProcessor::ProcessEvents
    - InitializeEventLoggingWithPersistedCounters
    - IgnoreUnusedVariable
    - FakeEventProcessor::FakeEventProcessor
    - FetchEventsHelper
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - static_cast<void *>
    - WiFiTelemetry::GetTelemetryStatsAndLogEvent
    - TLVReader::GetLengthRead
    - PrepareBinding
    - TLVReader::GetRemainingLength
    - FakeEventProcessor::ClearMock
    - InitSubscriptionClient
    linkageType: ''
    returnType: void
    signature: CheckGapDetection(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2042,1
    - Dst: InitializeEventLoggingWithPersistedCounters
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2044,1
    - Dst: FakeEventProcessor::FakeEventProcessor
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2051,1
    - Dst: PrepareBinding
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2058,1
    - Dst: InitSubscriptionClient
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2059,1
    - Dst: static_cast<void *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2061,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2066,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2068,1
    - Dst: FetchEventsHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2071,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2072,1
    - Dst: TLVReader::GetRemainingLength
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2073,1
    - Dst: TLVReader::GetLengthRead
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2073,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2074,1
    - Dst: FakeEventProcessor::ProcessEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2076,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2077,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2079,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2080,1
    - Dst: FakeEventProcessor::ClearMock
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2082,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2086,1
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2088,1
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2090,1
    - Dst: IgnoreUnusedVariable
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2091,1
    - Dst: FetchEventsHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2094,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2095,1
    - Dst: TLVReader::GetRemainingLength
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2096,1
    - Dst: TLVReader::GetLengthRead
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2096,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2097,1
    - Dst: FakeEventProcessor::ProcessEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2099,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2100,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2102,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2103,1
    - Dst: FakeEventProcessor::ClearMock
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2105,1
    - Dst: FetchEventsHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2108,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2109,1
    - Dst: TLVReader::GetRemainingLength
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2110,1
    - Dst: TLVReader::GetLengthRead
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2110,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2111,1
    - Dst: FakeEventProcessor::ProcessEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2113,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2114,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2116,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2117,1
    - Dst: FakeEventProcessor::ClearMock
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2120
      start: 2039
    functionDepth: 2
    functionLinenumber: 2039
    functionLinenumberEnd: 2120
    functionName: CheckDropOverlap
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - FakeEventProcessor::ProcessEvents
    - InitializeEventLoggingWithPersistedCounters
    - IgnoreUnusedVariable
    - FakeEventProcessor::FakeEventProcessor
    - FetchEventsHelper
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - static_cast<void *>
    - WiFiTelemetry::GetTelemetryStatsAndLogEvent
    - TLVReader::GetLengthRead
    - PrepareBinding
    - TLVReader::GetRemainingLength
    - FakeEventProcessor::ClearMock
    - InitSubscriptionClient
    linkageType: ''
    returnType: void
    signature: CheckDropOverlap(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2124,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2136,1
    - Dst: Schema::Nest::Test::Trait::TestETrait::TestEEvent::SetTeJNull
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2139,1
    - Dst: nl::LogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2141,1
    - Dst: FetchEventsHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2143,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2144,1
    - Dst: nl::Weave::TLV::Debug::Dump
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2148,1
    - Dst: nl::DeserializeEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2151,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2152,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2154,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2155,1
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2155,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2156,1
    - Dst: Schema::Nest::Test::Trait::TestETrait::TestEEvent::IsTeJPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2156,1
    - Dst: nl::DeallocateEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2159
      start: 2122
    functionDepth: 5
    functionLinenumber: 2122
    functionLinenumberEnd: 2159
    functionName: CheckNullableFieldsSimple
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - Schema::Nest::Test::Trait::TestETrait::TestEEvent::SetTeJNull
    - GET_FIELD_NULLIFIED_BIT
    - FetchEventsHelper
    - InitializeEventLogging
    - nl::DeserializeEvent
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - nl::DeallocateEvent
    - nl::Weave::TLV::Debug::Dump
    - Schema::Nest::Test::Trait::TestETrait::TestEEvent::IsTeJPresent
    - nl::LogEvent
    linkageType: ''
    returnType: void
    signature: CheckNullableFieldsSimple(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2165,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2187,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2196,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2197,1
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2198,1
    - Dst: nl::LogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2200,1
    - Dst: FetchEventsHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2202,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2203,1
    - Dst: nl::DeserializeEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2205,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2206,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2208,1
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2208,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2212,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2216,1
    - Dst: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeAPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2216,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2221,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2225,1
    - Dst: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeBPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2225,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2230,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2234,1
    - Dst: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeCPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2234,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2239,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2239,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2243,1
    - Dst: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeDPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2243,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2248,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2252,1
    - Dst: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeEPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2252,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2257,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2261,1
    - Dst: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeFPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2261,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2266,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2270,1
    - Dst: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeGPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2270,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2275,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2279,1
    - Dst: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeHPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2279,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2284,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2284,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2288,1
    - Dst: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeIPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2288,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2293,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2294,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2298,1
    - Dst: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeJPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2298,1
    - Dst: nl::DeallocateEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2301,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2302,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2311,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2312,1
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2313,1
    - Dst: nl::LogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2315,1
    - Dst: FetchEventsHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2317,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2318,1
    - Dst: nl::DeserializeEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2320,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2321,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2323,1
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2323,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2325,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2326,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2327,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2328,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2328,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2329,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2330,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2331,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2332,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2333,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2333,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2337,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2338,1
    - Dst: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::neJ::IsNeBPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2338,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2342,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2343,1
    - Dst: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::neJ::IsNeAPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2343,1
    - Dst: nl::DeallocateEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2346,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 106
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2348
      start: 2161
    functionDepth: 5
    functionLinenumber: 2161
    functionLinenumberEnd: 2348
    functionName: CheckNullableFieldsComplex
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeAPresent
    - InitializeEventLogging
    - nl::DeserializeEvent
    - NL_TEST_ASSERT
    - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeJPresent
    - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeEPresent
    - nl::DeallocateEvent
    - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::neJ::IsNeBPresent
    - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeDPresent
    - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeBPresent
    - GET_FIELD_NULLIFIED_BIT
    - FetchEventsHelper
    - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeIPresent
    - memset
    - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeCPresent
    - SET_FIELD_NULLIFIED_BIT
    - nl::LogEvent
    - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeGPresent
    - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeHPresent
    - strcmp
    - static_cast<TestLoggingContext *>
    - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::neJ::IsNeAPresent
    - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeFPresent
    linkageType: ''
    returnType: void
    signature: CheckNullableFieldsComplex(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2359,1
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2362,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2364,1
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2369,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2370,1
    - Dst: GetBytesWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2371,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2377,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2378,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2383,1
    - Dst: CheckShouldRunWDM
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2383,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2386,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2387,1
    - Dst: static_cast<::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler
        *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2388,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::TestSubscriptionHandler
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2389,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2391,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler*::IsFree
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2391,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2393,1
    - Dst: CheckShouldRunWDM
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2393,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler*::SetActive
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2395,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2396,1
    - Dst: CheckShouldRunWDM
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2396,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler*::SetEventLogEndpoint
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2398,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2399,1
    - Dst: CheckShouldRunWDM
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2399,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2402,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2403,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2404,1
    - Dst: CheckShouldRunWDM
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2405
      start: 2350
    functionDepth: 1
    functionLinenumber: 2350
    functionLinenumberEnd: 2405
    functionName: CheckWDMOffloadTrigger
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler*::SetEventLogEndpoint
    - InitializeEventLogging
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - static_cast<::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler *>
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler*::IsFree
    - CheckShouldRunWDM
    - nl::Weave::System::Layer::GetClock_MonotonicMS
    - GetBytesWritten
    - FastLogFreeform
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::TestSubscriptionHandler
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler*::SetActive
    linkageType: ''
    returnType: void
    signature: CheckWDMOffloadTrigger(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2469,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2475,1
    - Dst: nl::LogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2482,1
    - Dst: FetchEventsHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2485,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2487,1
    - Dst: nl::Weave::TLV::Debug::Dump
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2491,1
    - Dst: nl::TLVReaderToDeserializedDataHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2499,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2501,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2503,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2505
      start: 2467
    functionDepth: 4
    functionLinenumber: 2467
    functionLinenumberEnd: 2505
    functionName: CheckDeserializingNewerVersion
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - nl::TLVReaderToDeserializedDataHelper
    - FetchEventsHelper
    - InitializeEventLogging
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - nl::Weave::TLV::Debug::Dump
    - nl::LogEvent
    linkageType: ''
    returnType: void
    signature: CheckDeserializingNewerVersion(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2509,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2515,1
    - Dst: nl::LogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2521,1
    - Dst: FetchEventsHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2524,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2526,1
    - Dst: nl::Weave::TLV::Debug::Dump
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2530,1
    - Dst: nl::TLVReaderToDeserializedDataHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2538,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2540,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2542,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2543,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2545
      start: 2507
    functionDepth: 4
    functionLinenumber: 2507
    functionLinenumberEnd: 2545
    functionName: CheckDeserializingOlderVersion
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - nl::TLVReaderToDeserializedDataHelper
    - FetchEventsHelper
    - InitializeEventLogging
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - nl::Weave::TLV::Debug::Dump
    - nl::LogEvent
    linkageType: ''
    returnType: void
    signature: CheckDeserializingOlderVersion(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2591
      start: 2588
    functionDepth: 0
    functionLinenumber: 2588
    functionLinenumberEnd: 2591
    functionName: CurrentNullableEvent::SetBaseEnumNull
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: CurrentNullableEvent::SetBaseEnumNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2595
      start: 2592
    functionDepth: 0
    functionLinenumber: 2592
    functionLinenumberEnd: 2595
    functionName: CurrentNullableEvent::SetBaseEnumPresent
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: CurrentNullableEvent::SetBaseEnumPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2600
      start: 2597
    functionDepth: 0
    functionLinenumber: 2597
    functionLinenumberEnd: 2600
    functionName: CurrentNullableEvent::IsBaseEnumPresent
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: CurrentNullableEvent::IsBaseEnumPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2605
      start: 2602
    functionDepth: 0
    functionLinenumber: 2602
    functionLinenumberEnd: 2605
    functionName: CurrentNullableEvent::SetExtendedEnumNull
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: CurrentNullableEvent::SetExtendedEnumNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2609
      start: 2606
    functionDepth: 0
    functionLinenumber: 2606
    functionLinenumberEnd: 2609
    functionName: CurrentNullableEvent::SetExtendedEnumPresent
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: CurrentNullableEvent::SetExtendedEnumPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2614
      start: 2611
    functionDepth: 0
    functionLinenumber: 2611
    functionLinenumberEnd: 2614
    functionName: CurrentNullableEvent::IsExtendedEnumPresent
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: CurrentNullableEvent::IsExtendedEnumPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2677
      start: 2674
    functionDepth: 0
    functionLinenumber: 2674
    functionLinenumberEnd: 2677
    functionName: FutureNullableEvent::SetBaseEnumNull
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: FutureNullableEvent::SetBaseEnumNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2681
      start: 2678
    functionDepth: 0
    functionLinenumber: 2678
    functionLinenumberEnd: 2681
    functionName: FutureNullableEvent::SetBaseEnumPresent
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: FutureNullableEvent::SetBaseEnumPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2686
      start: 2683
    functionDepth: 0
    functionLinenumber: 2683
    functionLinenumberEnd: 2686
    functionName: FutureNullableEvent::IsBaseEnumPresent
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: FutureNullableEvent::IsBaseEnumPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2691
      start: 2688
    functionDepth: 0
    functionLinenumber: 2688
    functionLinenumberEnd: 2691
    functionName: FutureNullableEvent::SetFutureEnumNull
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: FutureNullableEvent::SetFutureEnumNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2695
      start: 2692
    functionDepth: 0
    functionLinenumber: 2692
    functionLinenumberEnd: 2695
    functionName: FutureNullableEvent::SetFutureEnumPresent
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: FutureNullableEvent::SetFutureEnumPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2700
      start: 2697
    functionDepth: 0
    functionLinenumber: 2697
    functionLinenumberEnd: 2700
    functionName: FutureNullableEvent::IsFutureEnumPresent
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: FutureNullableEvent::IsFutureEnumPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2705
      start: 2702
    functionDepth: 0
    functionLinenumber: 2702
    functionLinenumberEnd: 2705
    functionName: FutureNullableEvent::SetExtendedEnumNull
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: FutureNullableEvent::SetExtendedEnumNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2709
      start: 2706
    functionDepth: 0
    functionLinenumber: 2706
    functionLinenumberEnd: 2709
    functionName: FutureNullableEvent::SetExtendedEnumPresent
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: FutureNullableEvent::SetExtendedEnumPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2714
      start: 2711
    functionDepth: 0
    functionLinenumber: 2711
    functionLinenumberEnd: 2714
    functionName: FutureNullableEvent::IsExtendedEnumPresent
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: FutureNullableEvent::IsExtendedEnumPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2719
      start: 2716
    functionDepth: 0
    functionLinenumber: 2716
    functionLinenumberEnd: 2719
    functionName: FutureNullableEvent::SetFutureExtendedEnumNull
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: FutureNullableEvent::SetFutureExtendedEnumNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2723
      start: 2720
    functionDepth: 0
    functionLinenumber: 2720
    functionLinenumberEnd: 2723
    functionName: FutureNullableEvent::SetFutureExtendedEnumPresent
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: FutureNullableEvent::SetFutureExtendedEnumPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2728
      start: 2725
    functionDepth: 0
    functionLinenumber: 2725
    functionLinenumberEnd: 2728
    functionName: FutureNullableEvent::IsFutureExtendedEnumPresent
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: FutureNullableEvent::IsFutureExtendedEnumPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2733,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2739,1
    - Dst: FutureNullableEvent::SetBaseEnumPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2743,1
    - Dst: FutureNullableEvent::SetFutureEnumNull
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2744,1
    - Dst: FutureNullableEvent::SetExtendedEnumPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2746,1
    - Dst: FutureNullableEvent::SetFutureExtendedEnumNull
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2747,1
    - Dst: nl::LogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2749,1
    - Dst: FetchEventsHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2752,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2754,1
    - Dst: nl::Weave::TLV::Debug::Dump
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2758,1
    - Dst: nl::TLVReaderToDeserializedDataHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2766,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2768,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2770,1
    - Dst: CurrentNullableEvent::IsBaseEnumPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2770,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2771,1
    - Dst: CurrentNullableEvent::IsBaseEnumPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2771,1
    - Dst: FutureNullableEvent::IsBaseEnumPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2771,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2772,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2774,1
    - Dst: CurrentNullableEvent::IsExtendedEnumPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2774,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2775,1
    - Dst: CurrentNullableEvent::IsExtendedEnumPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2775,1
    - Dst: FutureNullableEvent::IsExtendedEnumPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2775,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2777
      start: 2731
    functionDepth: 4
    functionLinenumber: 2731
    functionLinenumberEnd: 2777
    functionName: CheckDeserializingNewerVersionNullable
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - nl::TLVReaderToDeserializedDataHelper
    - FutureNullableEvent::SetBaseEnumPresent
    - FutureNullableEvent::IsBaseEnumPresent
    - FetchEventsHelper
    - InitializeEventLogging
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - CurrentNullableEvent::IsBaseEnumPresent
    - CurrentNullableEvent::IsExtendedEnumPresent
    - FutureNullableEvent::SetExtendedEnumPresent
    - nl::Weave::TLV::Debug::Dump
    - FutureNullableEvent::IsExtendedEnumPresent
    - FutureNullableEvent::SetFutureExtendedEnumNull
    - nl::LogEvent
    - FutureNullableEvent::SetFutureEnumNull
    linkageType: ''
    returnType: void
    signature: CheckDeserializingNewerVersionNullable(nlTestSuite * inSuite, void
      * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2781,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2787,1
    - Dst: CurrentNullableEvent::SetBaseEnumPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2791,1
    - Dst: CurrentNullableEvent::SetExtendedEnumNull
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2792,1
    - Dst: nl::LogEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2794,1
    - Dst: FetchEventsHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2797,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2799,1
    - Dst: nl::Weave::TLV::Debug::Dump
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2803,1
    - Dst: nl::TLVReaderToDeserializedDataHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2811,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2813,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2815,1
    - Dst: FutureNullableEvent::IsBaseEnumPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2815,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2816,1
    - Dst: FutureNullableEvent::IsBaseEnumPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2816,1
    - Dst: CurrentNullableEvent::IsBaseEnumPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2816,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2817,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2819,1
    - Dst: FutureNullableEvent::IsFutureEnumPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2819,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2820,1
    - Dst: FutureNullableEvent::IsExtendedEnumPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2820,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2821,1
    - Dst: FutureNullableEvent::IsFutureExtendedEnumPresent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2822
      start: 2779
    functionDepth: 4
    functionLinenumber: 2779
    functionLinenumberEnd: 2822
    functionName: CheckDeserializingOlderVersionNullable
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - nl::TLVReaderToDeserializedDataHelper
    - FutureNullableEvent::IsBaseEnumPresent
    - FetchEventsHelper
    - InitializeEventLogging
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - CurrentNullableEvent::SetExtendedEnumNull
    - CurrentNullableEvent::SetBaseEnumPresent
    - CurrentNullableEvent::IsBaseEnumPresent
    - nl::Weave::TLV::Debug::Dump
    - FutureNullableEvent::IsFutureExtendedEnumPresent
    - FutureNullableEvent::IsExtendedEnumPresent
    - FutureNullableEvent::IsFutureEnumPresent
    - nl::LogEvent
    linkageType: ''
    returnType: void
    signature: CheckDeserializingOlderVersionNullable(nlTestSuite * inSuite, void
      * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2831,1
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2838,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2839,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2842,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2845,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2849,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2852,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2855,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2858,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2862,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2866,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::CheckEventUpToDate
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2866,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::SetEventLogEndpoint
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2867,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::FindNextImportanceForTransfer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2869,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2870,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2871,1
    - Dst: CheckLogReadOut
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2872,1
    - Dst: FetchEventsSince
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2874,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::GetVendedEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2874,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2875,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2879,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::FindNextImportanceForTransfer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2882,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2883,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2884,1
    - Dst: CheckLogReadOut
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2885,1
    - Dst: FetchEventsSince
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2886,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::GetVendedEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2886,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2887,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::FindNextImportanceForTransfer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2890,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2891,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::VerifyTraversingImportance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2891,1
    - Dst: FetchEventsSince
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2895,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::GetVendedEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2895,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2896,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::FindNextImportanceForTransfer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2897,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2901,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::VerifyTraversingImportance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2901,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2902,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::CheckEventUpToDate
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2902,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2906,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2908,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2909,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::CheckEventUpToDate
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2909,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::SetEventLogEndpoint
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2910,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::FindNextImportanceForTransfer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2912,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2913,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::GetVendedEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2916,1
    - Dst: CheckLogReadOut
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2917,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2919,1
    - Dst: FetchEventsSince
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2922,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::GetVendedEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2922,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2923,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::FindNextImportanceForTransfer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2924,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2928,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::VerifyTraversingImportance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2928,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2929,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::CheckEventUpToDate
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2929,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 59
    argCount: 3
    argNames:
    - inSuite
    - context
    - inLogInfoEvents
    argTypes:
    - nlTestSuite*
    - TestLoggingContext*
    - bool
    constantsTouched: []
    func_position:
      end: 2930
      start: 2824
    functionDepth: 3
    functionLinenumber: 2824
    functionLinenumberEnd: 2930
    functionName: CheckSubscriptionHandlerHelper
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - CheckLogReadOut
    - FetchEventsSince
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::FindNextImportanceForTransfer
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::VerifyTraversingImportance
    - nl::Weave::System::Layer::GetClock_MonotonicMS
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::CheckEventUpToDate
    - FastLogFreeform
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::GetVendedEvent
    - TLVWriter::Init
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::SetEventLogEndpoint
    linkageType: ''
    returnType: void
    signature: CheckSubscriptionHandlerHelper(nlTestSuite * inSuite, TestLoggingContext
      * context, bool inLogInfoEvents)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2934,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2937,1
    - Dst: CheckSubscriptionHandlerHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2940
      start: 2932
    functionDepth: 4
    functionLinenumber: 2932
    functionLinenumberEnd: 2940
    functionName: CheckSubscriptionHandler
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - CheckSubscriptionHandlerHelper
    - static_cast<TestLoggingContext *>
    - InitializeEventLogging
    linkageType: ''
    returnType: void
    signature: CheckSubscriptionHandler(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2944,1
    - Dst: InitializeEventLoggingWithPersistedCounters
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2947,1
    - Dst: CheckSubscriptionHandlerHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2950
      start: 2942
    functionDepth: 4
    functionLinenumber: 2942
    functionLinenumberEnd: 2950
    functionName: CheckSubscriptionHandlerCountersStartAtZeroProd
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - CheckSubscriptionHandlerHelper
    - static_cast<TestLoggingContext *>
    - InitializeEventLoggingWithPersistedCounters
    linkageType: ''
    returnType: void
    signature: CheckSubscriptionHandlerCountersStartAtZeroProd(nlTestSuite * inSuite,
      void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2954,1
    - Dst: InitializeEventLoggingWithPersistedCounters
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2957,1
    - Dst: CheckSubscriptionHandlerHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2960
      start: 2952
    functionDepth: 4
    functionLinenumber: 2952
    functionLinenumberEnd: 2960
    functionName: CheckSubscriptionHandlerCountersStartAtZeroTwoDifferentImportancesProd
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - CheckSubscriptionHandlerHelper
    - static_cast<TestLoggingContext *>
    - InitializeEventLoggingWithPersistedCounters
    linkageType: ''
    returnType: void
    signature: CheckSubscriptionHandlerCountersStartAtZeroTwoDifferentImportancesProd(nlTestSuite
      * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2964,1
    - Dst: InitializeEventLoggingWithPersistedCounters
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2967,1
    - Dst: CheckSubscriptionHandlerHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2970
      start: 2962
    functionDepth: 4
    functionLinenumber: 2962
    functionLinenumberEnd: 2970
    functionName: CheckSubscriptionHandlerCountersStartAtNonZeroProd
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - CheckSubscriptionHandlerHelper
    - static_cast<TestLoggingContext *>
    - InitializeEventLoggingWithPersistedCounters
    linkageType: ''
    returnType: void
    signature: CheckSubscriptionHandlerCountersStartAtNonZeroProd(nlTestSuite * inSuite,
      void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2974,1
    - Dst: InitializeEventLoggingWithPersistedCounters
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2977,1
    - Dst: CheckSubscriptionHandlerHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2980
      start: 2972
    functionDepth: 4
    functionLinenumber: 2972
    functionLinenumberEnd: 2980
    functionName: CheckSubscriptionHandlerCountersStartAtNonZeroTwoDifferentImportancesProd
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - CheckSubscriptionHandlerHelper
    - static_cast<TestLoggingContext *>
    - InitializeEventLoggingWithPersistedCounters
    linkageType: ''
    returnType: void
    signature: CheckSubscriptionHandlerCountersStartAtNonZeroTwoDifferentImportancesProd(nlTestSuite
      * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2984,1
    - Dst: InitializeEventLoggingWithPersistedCounters
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2987,1
    - Dst: CheckSubscriptionHandlerHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2990
      start: 2982
    functionDepth: 4
    functionLinenumber: 2982
    functionLinenumberEnd: 2990
    functionName: CheckSubscriptionHandlerCountersStartAtZeroInfo
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - CheckSubscriptionHandlerHelper
    - static_cast<TestLoggingContext *>
    - InitializeEventLoggingWithPersistedCounters
    linkageType: ''
    returnType: void
    signature: CheckSubscriptionHandlerCountersStartAtZeroInfo(nlTestSuite * inSuite,
      void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2994,1
    - Dst: InitializeEventLoggingWithPersistedCounters
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2997,1
    - Dst: CheckSubscriptionHandlerHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:2999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 3000
      start: 2992
    functionDepth: 4
    functionLinenumber: 2992
    functionLinenumberEnd: 3000
    functionName: CheckSubscriptionHandlerCountersStartAtZeroTwoDifferentImportancesInfo
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - CheckSubscriptionHandlerHelper
    - static_cast<TestLoggingContext *>
    - InitializeEventLoggingWithPersistedCounters
    linkageType: ''
    returnType: void
    signature: CheckSubscriptionHandlerCountersStartAtZeroTwoDifferentImportancesInfo(nlTestSuite
      * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3004,1
    - Dst: InitializeEventLoggingWithPersistedCounters
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3007,1
    - Dst: CheckSubscriptionHandlerHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 3010
      start: 3002
    functionDepth: 4
    functionLinenumber: 3002
    functionLinenumberEnd: 3010
    functionName: CheckSubscriptionHandlerCountersStartAtNonZeroInfo
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - CheckSubscriptionHandlerHelper
    - static_cast<TestLoggingContext *>
    - InitializeEventLoggingWithPersistedCounters
    linkageType: ''
    returnType: void
    signature: CheckSubscriptionHandlerCountersStartAtNonZeroInfo(nlTestSuite * inSuite,
      void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3014,1
    - Dst: InitializeEventLoggingWithPersistedCounters
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3017,1
    - Dst: CheckSubscriptionHandlerHelper
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 3020
      start: 3012
    functionDepth: 4
    functionLinenumber: 3012
    functionLinenumberEnd: 3020
    functionName: CheckSubscriptionHandlerCountersStartAtNonZeroTwoDifferentImportancesInfo
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - CheckSubscriptionHandlerHelper
    - static_cast<TestLoggingContext *>
    - InitializeEventLoggingWithPersistedCounters
    linkageType: ''
    returnType: void
    signature: CheckSubscriptionHandlerCountersStartAtNonZeroTwoDifferentImportancesInfo(nlTestSuite
      * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3030,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3032,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3036,1
    - Dst: LogMockExternalEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3041,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3042,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3046,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3060,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3061,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3063,1
    - Dst: static_cast<event_id_t>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3063,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3064,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3068,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3068,1
    - Dst: nl::Weave::TLV::Debug::Dump
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3069,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3077,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3078,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3080,1
    - Dst: static_cast<event_id_t>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3080,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3081,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3085,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3085,1
    - Dst: nl::Weave::TLV::Debug::Dump
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3086,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3093,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3103,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3104,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3106,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3107,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3109,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3109,1
    - Dst: ReadFirstEventHeader
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3110,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3111,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 3113
      start: 3023
    functionDepth: 3
    functionLinenumber: 3023
    functionLinenumberEnd: 3113
    functionName: CheckExternalEvents
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - nl::Weave::Profiles::LogFreeform
    - ReadFirstEventHeader
    - InitializeEventLogging
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - LogMockExternalEvents
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - static_cast<event_id_t>
    - TLVWriter::GetLengthWritten
    - nl::Weave::TLV::Debug::Dump
    - TLVWriter::Init
    linkageType: ''
    returnType: void
    signature: CheckExternalEvents(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3121,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3123,1
    - Dst: LogMockExternalEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3125,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3126,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3130,1
    - Dst: LogMockExternalEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3134,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3135,1
    - Dst: LogMockExternalEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3140,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3141,1
    - Dst: ClearMockExternalEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3143,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3148,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3149,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3151,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3152,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3156,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3156,1
    - Dst: nl::Weave::TLV::Debug::Dump
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 3160
      start: 3115
    functionDepth: 3
    functionLinenumber: 3115
    functionLinenumberEnd: 3160
    functionName: CheckExternalEventsMultipleCallbacks
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - nl::Weave::Profiles::LogFreeform
    - InitializeEventLogging
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - LogMockExternalEvents
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - ClearMockExternalEvents
    - TLVWriter::GetLengthWritten
    - nl::Weave::TLV::Debug::Dump
    - TLVWriter::Init
    linkageType: ''
    returnType: void
    signature: CheckExternalEventsMultipleCallbacks(nlTestSuite * inSuite, void *
      inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aEventId
    argTypes:
    - event_id_t
    constantsTouched: []
    func_position:
      end: 3165
      start: 3162
    functionDepth: 0
    functionLinenumber: 3162
    functionLinenumberEnd: 3165
    functionName: SkipEvenEvents
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: SkipEvenEvents(event_id_t aEventId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3174,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3176,1
    - Dst: SetShouldBlitCallback
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3177,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3181,1
    - Dst: LogMockExternalEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3186,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3187,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3191,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3205,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3206,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3208,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3209,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3211,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3211,1
    - Dst: ReadFirstEventHeader
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3215,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3218,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3222,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3223,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3225,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3226,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3228,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3228,1
    - Dst: ReadFirstEventHeader
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3233,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3236,1
    - Dst: SetShouldBlitCallback
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 3240
      start: 3167
    functionDepth: 3
    functionLinenumber: 3167
    functionLinenumberEnd: 3240
    functionName: CheckSkipExternalEvents
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - nl::Weave::Profiles::LogFreeform
    - ReadFirstEventHeader
    - SetShouldBlitCallback
    - InitializeEventLogging
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - LogMockExternalEvents
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - TLVWriter::GetLengthWritten
    - TLVWriter::Init
    linkageType: ''
    returnType: void
    signature: CheckSkipExternalEvents(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3249,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3251,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3254,1
    - Dst: LogMockExternalEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3256,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3257,1
    - Dst: LogMockExternalEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3259,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3260,1
    - Dst: ClearMockExternalEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3262,1
    - Dst: ClearMockExternalEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3263,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3264,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3266,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3268,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::SetEventLogEndpoint
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3270,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::FindNextImportanceForTransfer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3272,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3273,1
    - Dst: FetchEventsSince
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3276,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::GetVendedEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3276,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3277,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::FindNextImportanceForTransfer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3278,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3281,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::VerifyTraversingImportance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3281,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3282,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::CheckEventUpToDate
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 3283
      start: 3242
    functionDepth: 3
    functionLinenumber: 3242
    functionLinenumberEnd: 3283
    functionName: RegressionWatchdogBug
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::LogFreeform
    - FetchEventsSince
    - InitializeEventLogging
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - LogMockExternalEvents
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::FindNextImportanceForTransfer
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::VerifyTraversingImportance
    - ClearMockExternalEvents
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::GetVendedEvent
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::CheckEventUpToDate
    - TLVWriter::Init
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::SetEventLogEndpoint
    linkageType: ''
    returnType: void
    signature: RegressionWatchdogBug(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3293,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3295,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3298,1
    - Dst: LogMockDebugExternalEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3300,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3301,1
    - Dst: LogMockDebugExternalEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3303,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3304,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3306,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3307,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3309,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3310,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3312,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3313,1
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3315,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3318,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3319,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3324,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::SetEventLogEndpoint
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3326,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::FindNextImportanceForTransfer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3328,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3329,1
    - Dst: FetchEventsSince
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3332,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::GetVendedEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3332,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3333,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::FindNextImportanceForTransfer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3334,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3337,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::VerifyTraversingImportance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3337,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3338,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::CheckEventUpToDate
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 3339
      start: 3285
    functionDepth: 3
    functionLinenumber: 3285
    functionLinenumberEnd: 3339
    functionName: RegressionWatchdogBug_EventRemoval
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::LogFreeform
    - FetchEventsSince
    - InitializeEventLogging
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::FindNextImportanceForTransfer
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::VerifyTraversingImportance
    - nl::Weave::System::Layer::GetClock_MonotonicMS
    - TLVWriter::Init
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::GetVendedEvent
    - FastLogFreeform
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::CheckEventUpToDate
    - LogMockDebugExternalEvents
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::SetEventLogEndpoint
    linkageType: ''
    returnType: void
    signature: RegressionWatchdogBug_EventRemoval(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3349,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3351,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3354,1
    - Dst: LogMockExternalEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3356,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3357,1
    - Dst: LogMockExternalEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3359,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3360,1
    - Dst: nl::Weave::Profiles::LogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3362,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3364,1
    - Dst: ClearMockExternalEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3366,1
    - Dst: ClearMockExternalEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3368,1
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3370,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3373,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3374,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3378,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::SetEventLogEndpoint
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3380,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::FindNextImportanceForTransfer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3382,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3383,1
    - Dst: FetchEventsSince
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3386,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::GetVendedEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3386,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3387,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::FindNextImportanceForTransfer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3388,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3391,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::VerifyTraversingImportance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3391,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3392,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::CheckEventUpToDate
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 3393
      start: 3341
    functionDepth: 3
    functionLinenumber: 3341
    functionLinenumberEnd: 3393
    functionName: RegressionWatchdogBug_ExternalEventState
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::LogFreeform
    - FetchEventsSince
    - InitializeEventLogging
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - LogMockExternalEvents
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::FindNextImportanceForTransfer
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::VerifyTraversingImportance
    - ClearMockExternalEvents
    - nl::Weave::System::Layer::GetClock_MonotonicMS
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::GetVendedEvent
    - FastLogFreeform
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::CheckEventUpToDate
    - TLVWriter::Init
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::SetEventLogEndpoint
    linkageType: ''
    returnType: void
    signature: RegressionWatchdogBug_ExternalEventState(nlTestSuite * inSuite, void
      * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3402,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3404,1
    - Dst: LogMockExternalEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3406,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3407,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3415,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3416,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3419,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3423,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3431,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3431,1
    - Dst: ReadFirstEventHeader
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3432,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3434,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3435,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3438,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 3439
      start: 3395
    functionDepth: 1
    functionLinenumber: 3395
    functionLinenumberEnd: 3439
    functionName: CheckExternalEventsMultipleFetches
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - ReadFirstEventHeader
    - InitializeEventLogging
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - LogMockExternalEvents
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - TLVWriter::GetLengthWritten
    - TLVWriter::Init
    linkageType: ''
    returnType: void
    signature: CheckExternalEventsMultipleFetches(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3452
      start: 3446
    functionDepth: 0
    functionLinenumber: 3446
    functionLinenumberEnd: 3452
    functionName: ResetExternalEventDeliveryState
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ResetExternalEventDeliveryState(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - inEv
    - inLastDeliveredEventID
    - inRecipientNodeID
    argTypes:
    - ExternalEvents*
    - event_id_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 3458
      start: 3454
    functionDepth: 0
    functionLinenumber: 3454
    functionLinenumberEnd: 3458
    functionName: MockExternalEventsDelivered
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MockExternalEventsDelivered(ExternalEvents * inEv, event_id_t inLastDeliveredEventID,
      uint64_t inRecipientNodeID)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aContext
    argTypes:
    - EventLoadOutContext*
    constantsTouched: []
    func_position:
      end: 3463
      start: 3460
    functionDepth: 0
    functionLinenumber: 3460
    functionLinenumberEnd: 3463
    functionName: MockExternalEventsFetch
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: MockExternalEventsFetch(EventLoadOutContext * aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inEv
    argTypes:
    - ExternalEvents*
    constantsTouched: []
    func_position:
      end: 3468
      start: 3465
    functionDepth: 0
    functionLinenumber: 3465
    functionLinenumberEnd: 3468
    functionName: MockExternalEventsEvicted
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: MockExternalEventsEvicted(ExternalEvents * inEv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3478,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3480,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3482,1
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3485,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3486,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3487,1
    - Dst: RegisterEventCallbackForImportance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3490,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3492,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3493,1
    - Dst: RegisterEventCallbackForImportance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3495,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3497,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3498,1
    - Dst: ResetExternalEventDeliveryState
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3502,1
    - Dst: NotifyEventsDelivered
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3505,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3507,1
    - Dst: NotifyEventsDelivered
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3510,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3512,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3513,1
    - Dst: ResetExternalEventDeliveryState
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3515,1
    - Dst: NotifyEventsDelivered
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3518,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3520,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3521,1
    - Dst: ResetExternalEventDeliveryState
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3525,1
    - Dst: NotifyEventsDelivered
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3528,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3530,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3531,1
    - Dst: ResetExternalEventDeliveryState
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3534,1
    - Dst: UnregisterEventCallbackForImportance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3536,1
    - Dst: NotifyEventsDelivered
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3538,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 3541
      start: 3470
    functionDepth: 1
    functionLinenumber: 3470
    functionLinenumberEnd: 3541
    functionName: CheckExternalEventNotifyDelivered
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - RegisterEventCallbackForImportance
    - InitializeEventLogging
    - UnregisterEventCallbackForImportance
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - nl::Weave::System::Layer::GetClock_MonotonicMS
    - ResetExternalEventDeliveryState
    - FastLogFreeform
    - NotifyEventsDelivered
    linkageType: ''
    returnType: void
    signature: CheckExternalEventNotifyDelivered(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3551,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3553,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3555,1
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3558,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3559,1
    - Dst: RegisterEventCallbackForImportance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3564,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3567,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3568,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3571,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3576,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3579,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3580,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3585,1
    - Dst: UnregisterEventCallbackForImportance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 3589
      start: 3543
    functionDepth: 1
    functionLinenumber: 3543
    functionLinenumberEnd: 3589
    functionName: CheckExternalEventNotifyEvicted
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - RegisterEventCallbackForImportance
    - InitializeEventLogging
    - UnregisterEventCallbackForImportance
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - nl::Weave::System::Layer::GetClock_MonotonicMS
    - FastLogFreeform
    linkageType: ''
    returnType: void
    signature: CheckExternalEventNotifyEvicted(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3599,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3601,1
    - Dst: DestroyEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3602,1
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3604,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3606,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 3609
      start: 3593
    functionDepth: 1
    functionLinenumber: 3593
    functionLinenumberEnd: 3609
    functionName: CheckShutdownLogic
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - InitializeEventLogging
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - DestroyEventLogging
    - nl::Weave::System::Layer::GetClock_MonotonicMS
    - FastLogFreeform
    linkageType: ''
    returnType: void
    signature: CheckShutdownLogic(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscribeRequest::Builder::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3618,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3619,1
    - Dst: SubscribeRequest::Builder::CreatePathListBuilder
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3622,1
    - Dst: EndOfPathList
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3624,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3625,1
    - Dst: GetError
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3625,1
    - Dst: SubscribeRequest::Builder::CreateVersionListBuilder
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3629,1
    - Dst: EndOfVersionList
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3631,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3632,1
    - Dst: GetError
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3632,1
    - Dst: SubscribeRequest::Builder::SubscribeToAllEvents
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3637,1
    - Dst: SubscribeRequest::Builder::CreateLastObservedEventIdListBuilder
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3641,1
    - Dst: CreateEventBuilder
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3645,1
    - Dst: SourceId
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3646,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3650,1
    - Dst: GetError
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3650,1
    - Dst: EndOfEventList
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3653,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3654,1
    - Dst: GetError
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3654,1
    - Dst: SubscribeRequest::Builder::EndOfRequest
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3658,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3659,1
    - Dst: SubscribeRequest::Builder::GetError
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3659,1
    - Dst: Finalize
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3661,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3662,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - ' writer'
    - ' outSubscribeParam'
    argTypes:
    - nl::Weave::TLV::TLVWriter
    - nl::Weave::Profiles::DataManagement::SubscriptionClient::OutEventParam
    constantsTouched: []
    func_position:
      end: 3666
      start: 3611
    functionDepth: 0
    functionLinenumber: 3611
    functionLinenumberEnd: 3666
    functionName: BuildSubscribeRequest
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - SourceId
    - EndOfPathList
    - EndOfVersionList
    - GetError
    - SubscribeRequest::Builder::CreateLastObservedEventIdListBuilder
    - SubscribeRequest::Builder::GetError
    - SubscribeRequest::Builder::CreatePathListBuilder
    - EndOfEventList
    - CreateEventBuilder
    - SubscribeRequest::Builder::SubscribeToAllEvents
    - SubscribeRequest::Builder::Init
    - SuccessOrExit
    - Finalize
    - SubscribeRequest::Builder::CreateVersionListBuilder
    - SubscribeRequest::Builder::EndOfRequest
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "BuildSubscribeRequest(nl::Weave::TLV::TLVWriter & writer,\n                      const
      nl::Weave::Profiles::DataManagement::SubscriptionClient::OutEventParam & outSubscribeParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3680,1
    - Dst: BuildSubscribeRequest
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3682,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3683,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3685,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3685,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3687,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3688,1
    - Dst: SubscribeRequest::Parser::Init
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3690,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3691,1
    - Dst: ParsePathVersionEventLists
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3693,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - inSuite
    - ' aSubHandler'
    - ' outSubscribeParam'
    argTypes:
    - nlTestSuite*
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler
    - nl::Weave::Profiles::DataManagement::SubscriptionClient::OutEventParam
    constantsTouched: []
    func_position:
      end: 3695
      start: 3668
    functionDepth: 1
    functionLinenumber: 3668
    functionLinenumberEnd: 3695
    functionName: MockSubscribeRequest
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - BuildSubscribeRequest
    - TLVReader::Next
    - ParsePathVersionEventLists
    - NL_TEST_ASSERT
    - SubscribeRequest::Parser::Init
    - TLVWriter::GetLengthWritten
    - TLVWriter::Init
    linkageType: ''
    returnType: void
    signature: "MockSubscribeRequest(nlTestSuite * inSuite,\n                                 ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler
      & aSubHandler,\n                                 const nl::Weave::Profiles::DataManagement::SubscriptionClient::OutEventParam
      & outSubscribeParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3708,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3710,1
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3713,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3716,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3718,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3723,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::SetEventLogEndpoint
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3725,1
    - Dst: CheckLogReadOut
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3728,1
    - Dst: CheckLogReadOut
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3729,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3732,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::CheckEventUpToDate
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3732,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3736,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::FindNextImportanceForTransfer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3736,1
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3742,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::SetExchangeContext
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3743,1
    - Dst: ARRAY_SIZE
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3762,1
    - Dst: MockSubscribeRequest
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3764,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3768,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::CheckEventUpToDate
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3768,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3772,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::FindNextImportanceForTransfer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3772,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3775,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::GetVendedEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3775,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3776,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::GetVendedEvent
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3776,1
    - Dst: ARRAY_SIZE
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3795,1
    - Dst: MockSubscribeRequest
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3797,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3801,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::CheckEventUpToDate
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3801,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3802,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::FindNextImportanceForTransfer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3803,1
    - Dst: FastLogFreeform
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3806,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::SetEventLogEndpoint
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3808,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3810,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::CheckEventUpToDate
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3810,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3811,1
    - Dst: ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::FindNextImportanceForTransfer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3811,1
    - Dst: DestroyEventLogging
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3813,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 46
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 3814
      start: 3701
    functionDepth: 3
    functionLinenumber: 3701
    functionLinenumberEnd: 3814
    functionName: CheckLastObservedEventId
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - MockSubscribeRequest
    - CheckLogReadOut
    - ARRAY_SIZE
    - InitializeEventLogging
    - static_cast<TestLoggingContext *>
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::FindNextImportanceForTransfer
    - nl::Weave::System::Layer::GetClock_MonotonicMS
    - DestroyEventLogging
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::CheckEventUpToDate
    - FastLogFreeform
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::GetVendedEvent
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::SetExchangeContext
    - ::nl::Weave::Profiles::DataManagement::TestSubscriptionHandler::SetEventLogEndpoint
    linkageType: ''
    returnType: void
    signature: CheckLastObservedEventId(nlTestSuite * inSuite, void * inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3891,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3892,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3894,1
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3902,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3905,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3907,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 3908
      start: 3886
    functionDepth: 0
    functionLinenumber: 3886
    functionLinenumberEnd: 3908
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - ParseArgs
    - exit
    - nlTestRunnerStats
    - ParseArgsFromEnvVar
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(int argc, char * argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3925,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3927,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3936,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3938,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3943,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 3948
      start: 3910
    functionDepth: 0
    functionLinenumber: 3910
    functionLinenumberEnd: 3948
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseInt
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char * progName, OptionSet * optSet, int id, const
      char * name, const char * arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestLoggingContext*::mExchangeMgr::NewBinding
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3957,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3960,1
    - Dst: Binding*::BeginConfiguration
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3965,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3967,1
    - Dst: Binding::Configuration::TargetAddress_IP
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3969,1
    - Dst: Binding::Configuration::PrepareBinding
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3971,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3974,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - context
    argTypes:
    - TestLoggingContext*
    constantsTouched: []
    func_position:
      end: 3981
      start: 3950
    functionDepth: 2
    functionLinenumber: 3950
    functionLinenumberEnd: 3981
    functionName: PrepareBinding
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 15
    functionsReached:
    - TestLoggingContext*::mExchangeMgr::NewBinding
    - Binding::Configuration::TargetAddress_IP
    - Binding*::BeginConfiguration
    - nl::Inet::IPAddress::FromString
    - printf
    - Binding::Configuration::PrepareBinding
    linkageType: ''
    returnType: void
    signature: PrepareBinding(TestLoggingContext * context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3989,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - TestLoggingContext*
    constantsTouched: []
    func_position:
      end: 3993
      start: 3983
    functionDepth: 0
    functionLinenumber: 3983
    functionLinenumberEnd: 3993
    functionName: InitSubscriptionClient
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 3
    functionsReached:
    - SubscriptionEngine::GetInstance
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: InitSubscriptionClient(TestLoggingContext * context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestLoggingContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:3998,1
    - Dst: StartUpload
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4003,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4006,1
    - Dst: nl::Weave::Binding::DefaultEventHandler
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4009,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - appState
    - event
    - ' inParam'
    - ' outParam'
    argTypes:
    - void*
    - Binding::EventType
    - Binding::InEventParam
    - Binding::OutEventParam
    constantsTouched: []
    func_position:
      end: 4012
      start: 3995
    functionDepth: 1
    functionLinenumber: 3995
    functionLinenumberEnd: 4012
    functionName: HandleBindingEvent
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 0
    functionsReached:
    - printf
    - static_cast<TestLoggingContext *>
    - StartUpload
    - nl::Weave::Binding::DefaultEventHandler
    linkageType: ''
    returnType: void
    signature: "HandleBindingEvent(void * const appState, const Binding::EventType
      event, const Binding::InEventParam & inParam,\n                               Binding::OutEventParam
      & outParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BDXContext *>
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4016,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4018,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4022,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4023,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4030,1
    - Dst: NewConnection
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4035,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4038,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4041,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4045,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4050,1
    - Dst: Connect
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4051,1
    - Dst: Connect
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4055,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4060,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4060,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4061,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4067,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 3
    argNames:
    - systemLayer
    - appState
    - error
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 4068
      start: 4014
    functionDepth: 2
    functionLinenumber: 4014
    functionLinenumberEnd: 4068
    functionName: StartClientConnection
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 4
    functionsReached:
    - static_cast<BDXContext *>
    - Connect
    - nl::Inet::IPAddress::FromString
    - printf
    - Close
    - ErrorStr
    - NewConnection
    linkageType: ''
    returnType: void
    signature: StartClientConnection(System::Layer * systemLayer, void * appState,
      System::Error error)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4072,1
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4077,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4081,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4081,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4082,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4087,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4090,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4091,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4096,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4097,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4104,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4115,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4116,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 4125
      start: 4070
    functionDepth: 0
    functionLinenumber: 4070
    functionLinenumberEnd: 4125
    functionName: HandleConnectionComplete
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 3
    functionsReached:
    - exit
    - WeaveConnection*::Close
    - WeaveConnection*::PeerAddr::ToString
    - StartTimer
    - printf
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleConnectionComplete(WeaveConnection * con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4130,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4133,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4135,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4135,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4140,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/TestEventLogging.cpp:4143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 4146
      start: 4127
    functionDepth: 0
    functionLinenumber: 4127
    functionLinenumberEnd: 4146
    functionName: HandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/test-apps/TestEventLogging.cpp
    functionUses: 2
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    - WeaveConnection*::Close
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleConnectionClosed(WeaveConnection * con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::Security::SHA1::SHA1
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:117,1
    - Dst: nl::Weave::Platform::Security::SHA1::Begin
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:121,1
    - Dst: nl::Weave::Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:122,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:122,1
    - Dst: nl::Weave::Platform::Security::SHA1::Finish
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:123,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:125,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:127,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:128,1
    - Dst: GenerateECDSASignature
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:138,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:142,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:144,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:146,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:147,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:148,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:150,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:151,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 154
    functionName: ECDSATest_SignTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestECDSA.cpp
    functionUses: 0
    functionsReached:
    - GenerateECDSASignature
    - nl::Weave::Platform::Security::SHA1::Begin
    - strlen
    - VerifyOrFail
    - printf
    - nl::Weave::Platform::Security::SHA1::SHA1
    - nl::Weave::Platform::Security::SHA1::AddData
    - nl::Weave::Platform::Security::SHA1::Finish
    linkageType: ''
    returnType: void
    signature: ECDSATest_SignTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::Security::SHA1::SHA1
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:161,1
    - Dst: nl::Weave::Platform::Security::SHA1::Begin
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:177,1
    - Dst: nl::Weave::Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:178,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:178,1
    - Dst: nl::Weave::Platform::Security::SHA1::Finish
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:179,1
    - Dst: VerifyECDSASignature
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:189,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:190,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 193
    functionName: ECDSATest_VerifyTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestECDSA.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Platform::Security::SHA1::Begin
    - VerifyECDSASignature
    - strlen
    - VerifyOrFail
    - printf
    - nl::Weave::Platform::Security::SHA1::SHA1
    - nl::Weave::Platform::Security::SHA1::AddData
    - nl::Weave::Platform::Security::SHA1::Finish
    linkageType: ''
    returnType: void
    signature: ECDSATest_VerifyTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenerateECDSASignature
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:208,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:211,1
    - Dst: VerifyECDSASignature
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:213,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:216,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:218,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:220,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:221,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:222,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:224,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:225,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 228
    functionName: ECDSATest_FixedLenSignVerifyTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestECDSA.cpp
    functionUses: 0
    functionsReached:
    - VerifyOrFail
    - GenerateECDSASignature
    - printf
    - VerifyECDSASignature
    linkageType: ''
    returnType: void
    signature: ECDSATest_FixedLenSignVerifyTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:239,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:240,1
    - Dst: VerifyECDSASignature
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:242,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:245,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 248
    functionName: ECDSATest_FixedLenVerifyTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestECDSA.cpp
    functionUses: 0
    functionsReached:
    - printf
    - VerifyOrFail
    - memcpy
    - VerifyECDSASignature
    linkageType: ''
    returnType: void
    signature: ECDSATest_FixedLenVerifyTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::Security::InitSecureRandomDataSource
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:254,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:255,1
    - Dst: ECDSATest_SignTest
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:257,1
    - Dst: ECDSATest_VerifyTest
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:258,1
    - Dst: ECDSATest_FixedLenSignVerifyTest
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:259,1
    - Dst: ECDSATest_FixedLenVerifyTest
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:260,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDSA.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 262
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 262
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestECDSA.cpp
    functionUses: 0
    functionsReached:
    - ECDSATest_FixedLenVerifyTest
    - ECDSATest_VerifyTest
    - nl::Weave::Platform::Security::InitSecureRandomDataSource
    - printf
    - ECDSATest_SignTest
    - ECDSATest_FixedLenSignVerifyTest
    - FAIL_ERROR
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetTimer.cpp:69,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetTimer.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - inetLayer
    - appState
    - err
    argTypes:
    - InetLayer*
    - void*
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: HandleTimer0Failed
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetTimer.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - static_cast<TestContext *>
    linkageType: ''
    returnType: void
    signature: HandleTimer0Failed(InetLayer *inetLayer, void *appState, INET_ERROR
      err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetTimer.cpp:76,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetTimer.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - inetLayer
    - appState
    - err
    argTypes:
    - InetLayer*
    - void*
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: HandleTimer1Failed
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetTimer.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - static_cast<TestContext *>
    linkageType: ''
    returnType: void
    signature: HandleTimer1Failed(InetLayer *inetLayer, void *appState, INET_ERROR
      err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetTimer.cpp:83,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetTimer.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - inetLayer
    - appState
    - err
    argTypes:
    - InetLayer*
    - void*
    - INET_ERROR
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: HandleTimer10Success
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetTimer.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - static_cast<TestContext *>
    linkageType: ''
    returnType: void
    signature: HandleTimer10Success(InetLayer *inetLayer, void *appState, INET_ERROR
      err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetTimer.cpp:94,1
    - Dst: TestContext*::mInet::StartTimer
      Src: /src/openweave-core/src/test-apps/TestInetTimer.cpp:97,1
    - Dst: TestContext*::mInet::StartTimer
      Src: /src/openweave-core/src/test-apps/TestInetTimer.cpp:98,1
    - Dst: TestContext*::mInet::StartTimer
      Src: /src/openweave-core/src/test-apps/TestInetTimer.cpp:99,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestInetTimer.cpp:105,1
    - Dst: TestContext*::mInet::CancelTimer
      Src: /src/openweave-core/src/test-apps/TestInetTimer.cpp:107,1
    - Dst: TestContext*::mInet::CancelTimer
      Src: /src/openweave-core/src/test-apps/TestInetTimer.cpp:108,1
    - Dst: TestContext*::mInet::CancelTimer
      Src: /src/openweave-core/src/test-apps/TestInetTimer.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 110
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 110
    functionName: CheckOverflow
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetTimer.cpp
    functionUses: 0
    functionsReached:
    - ServiceNetwork
    - TestContext*::mInet::StartTimer
    - TestContext*::mInet::CancelTimer
    - static_cast<TestContext *>
    linkageType: ''
    returnType: void
    signature: CheckOverflow(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetTimer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestSetup(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetTimer.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestTeardown(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestInetTimer.cpp:154,1
    - Dst: SetSIGUSR1Handler
      Src: /src/openweave-core/src/test-apps/TestInetTimer.cpp:156,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/TestInetTimer.cpp:160,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/TestInetTimer.cpp:161,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestInetTimer.cpp:165,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestInetTimer.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 171
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 171
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetTimer.cpp
    functionUses: 0
    functionsReached:
    - InitSystemLayer
    - nlTestRunnerStats
    - SetSIGUSR1Handler
    - InitNetwork
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetTimer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Logging::SetLogFilter
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:191,1
    - Dst: InitToolCommon
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:193,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:197,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:198,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:201,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:208,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:210,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeTLV
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:214,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeText
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:216,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:217,1
    - Dst: write
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:219,1
    - Dst: write
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:220,1
    - Dst: perror
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:222,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:223,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:227,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:236,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:238,1
    - Dst: strncpy
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:243,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:244,1
    - Dst: read
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:249,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:253,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:254,1
    - Dst: perror
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:259,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:260,1
    - Dst: nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::Decode
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:266,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:267,1
    - Dst: PrintDeviceDescriptor
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:269,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:274,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:276,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 281
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 281
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp
    functionUses: 0
    functionsReached:
    - ParseArgs
    - exit
    - InitToolCommon
    - strcmp
    - write
    - PrintDeviceDescriptor
    - perror
    - strncpy
    - PrintBriefUsage
    - strlen
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeTLV
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeText
    - nl::Weave::Logging::SetLogFilter
    - fprintf
    - read
    - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::Decode
    - FAIL_ERROR
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:291,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:293,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:293,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:299,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:306,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:308,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:314,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:316,1
    - Dst: ParseDate
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:322,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:324,1
    - Dst: ParseHexString
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:329,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:329,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:331,1
    - Dst: ParseHexString
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:336,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:336,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:338,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:343,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:345,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:348,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:351,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:353,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:356,1
    - Dst: ParseHexString
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:366,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:366,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:368,1
    - Dst: nl::Weave::Encoding::BigEndian::HostSwap64
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:371,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:376,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:378,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:381,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:392,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:394,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:397,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:403,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 95
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 408
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 408
    functionName: HandleEncodeOption
    functionSourceFile: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp
    functionUses: 0
    functionsReached:
    - ParseHexString
    - ParseDate
    - strcpy
    - ParseInt
    - strlen
    - PrintArgError
    - strcasecmp
    - nl::Weave::Encoding::BigEndian::HostSwap64
    linkageType: ''
    returnType: bool
    signature: HandleEncodeOption(const char *progName, OptionSet *optSet, int id,
      const char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:416,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:420,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 427
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 427
    functionName: HandleDecodeArg
    functionSourceFile: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - strcmp
    linkageType: ''
    returnType: bool
    signature: HandleDecodeArg(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strptime
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:433,1
    - Dst: strptime
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:435,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - dateStr
    - ' year'
    - ' month'
    - ' day'
    argTypes:
    - char*
    - uint16_t
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 450
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 450
    functionName: ParseDate
    functionSourceFile: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp
    functionUses: 1
    functionsReached:
    - strptime
    linkageType: ''
    returnType: bool
    signature: ParseDate(const char *dateStr, uint16_t& year, uint8_t& month, uint8_t&
      day)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:455,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:457,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:459,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:461,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:463,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:465,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:467,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:470,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:471,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:472,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:474,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:476,1
    - Dst: IsZeroBytes
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:478,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:480,1
    - Dst: PrintMACAddress
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:481,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:482,1
    - Dst: IsZeroBytes
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:484,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:486,1
    - Dst: PrintMACAddress
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:487,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:488,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:491,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:495,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:497,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:499,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp:501,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 2
    argNames:
    - ' deviceDesc'
    - prefix
    argTypes:
    - WeaveDeviceDescriptor
    - char*
    constantsTouched: []
    func_position:
      end: 502
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 502
    functionName: PrintDeviceDescriptor
    functionSourceFile: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp
    functionUses: 1
    functionsReached:
    - PrintMACAddress
    - printf
    - IsZeroBytes
    linkageType: ''
    returnType: void
    signature: PrintDeviceDescriptor(const WeaveDeviceDescriptor& deviceDesc, const
      char *prefix)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - newCurTime
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: Private::SetClock_RealTime
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: System::Error
    signature: SetClock_RealTime(uint64_t newCurTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' curTime'
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: Private::GetClock_RealTime
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: System::Error
    signature: GetClock_RealTime(uint64_t & curTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: nl::Weave::Profiles::Platform::CriticalSectionEnter
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionEnter()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: nl::Weave::Profiles::Platform::CriticalSectionExit
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionExit()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: SubscriptionEngine::GetInstance
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 128
    functionsReached: []
    linkageType: ''
    returnType: SubscriptionEngine
    signature: '* SubscriptionEngine::GetInstance()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aSchema
    argTypes:
    - TraitSchemaEngine*
    constantsTouched: []
    func_position:
      end: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    functionName: TestEmptyDataSource::TestEmptyDataSource
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestEmptyDataSource(const TraitSchemaEngine *aSchema)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - aLeafHandle
    - aTagToWrite
    - aWriter
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 281
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 281
    functionName: TestEmptyDataSource::GetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetLeafData(PropertyPathHandle aLeafHandle, uint64_t aTagToWrite, TLVWriter
      &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aLeafHandle
    - aReader
    argTypes:
    - PropertyPathHandle
    - TLVReader
    constantsTouched: []
    func_position:
      end: 290
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 290
    functionName: TestEmptyDataSink::SetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SetLeafData(PropertyPathHandle aLeafHandle, TLVReader &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - aSchema
    argTypes:
    - TraitSchemaEngine*
    constantsTouched: []
    func_position:
      end: 304
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 304
    functionName: TestEmptyDataSink::TestEmptyDataSink
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestEmptyDataSink::TestEmptyDataSink(const TraitSchemaEngine *aSchema)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - aType
    - aInEventParam
    argTypes:
    - uint16_t
    - void*
    constantsTouched: []
    func_position:
      end: 316
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 316
    functionName: TestEmptyDataSink::OnEvent
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestEmptyDataSink::OnEvent(uint16_t aType, void *aInEventParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:336,1
    - Dst: TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:338,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:339,1
    - Dst: TestEmptyDataSource::ReadData
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:341,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:341,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:342,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:345,1
    - Dst: TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:347,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:348,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:350,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:351,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:351,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:353,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:353,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 358
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 358
    functionName: CheckDataSourceEmptySchema
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - memcmp
    - TLVWriter::Finalize
    - NL_TEST_ASSERT
    - ContextTag
    - TestEmptyDataSource::ReadData
    - TLVWriter::GetLengthWritten
    - SuccessOrExit
    - TLVWriter::Init
    - TLVWriter::EndContainer
    - TLVWriter::StartContainer
    linkageType: ''
    returnType: void
    signature: CheckDataSourceEmptySchema(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:375,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:377,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:378,1
    - Dst: TestEmptyDataSink::StoreDataElement
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:380,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:381,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:385,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:386,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:387,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 392
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 392
    functionName: CheckDataSinkEmptySchema
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Init
    - TLVReader::Next
    - NL_TEST_ASSERT
    - TestEmptyDataSink::StoreDataElement
    - SuccessOrExit
    linkageType: ''
    returnType: void
    signature: CheckDataSinkEmptySchema(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 435
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 435
    functionName: nl::Weave::Profiles::TestTdmSource::TestTdmSource
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestTdmSource::TestTdmSource()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aPropertyPathHandle
    - aValue
    argTypes:
    - PropertyPathHandle
    - uint32_t
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: nl::Weave::Profiles::TestTdmSource::SetValue
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - SetDirty
    linkageType: ''
    returnType: void
    signature: TestTdmSource::SetValue(PropertyPathHandle aPropertyPathHandle, uint32_t
      aValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:445,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:446,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 449
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 449
    functionName: nl::Weave::Profiles::TestTdmSource::Reset
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: TestTdmSource::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::map*::begin
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:457,1
    - Dst: std::map*::end
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - aDictionaryHandle
    - aContext
    - aKey
    argTypes:
    - PropertyPathHandle
    - uintptr_t
    - PropertyDictionaryKey
    constantsTouched: []
    func_position:
      end: 472
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 472
    functionName: nl::Weave::Profiles::TestTdmSource::GetNextDictionaryItemKey
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - std::map*::end
    - std::map*::begin
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestTdmSource::GetNextDictionaryItemKey(PropertyPathHandle aDictionaryHandle,
      uintptr_t &aContext, PropertyDictionaryKey &aKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSchemaEngine
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:479,1
    - Dst: GetSchemaEngine
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:480,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:481,1
    - Dst: find
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:484,1
    - Dst: end
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:484,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:488,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:490,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:495,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:500,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:505,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:510,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:511,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:514,1
    - Dst: find
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:520,1
    - Dst: end
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:520,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:524,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:526,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:531,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:536,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:541,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:546,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:547,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:550,1
    - Dst: find
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:556,1
    - Dst: end
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:556,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:557,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:558,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:559,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:562,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:563,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 69
    argCount: 3
    argNames:
    - aLeafHandle
    - aTagToWrite
    - aWriter
    argTypes:
    - PropertyPathHandle
    - uint64_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 569
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 569
    functionName: nl::Weave::Profiles::TestTdmSource::GetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - end
    - WeaveLogError
    - GetPropertyDictionaryKey
    - GetPropertySchemaHandle
    - GetSchemaEngine
    - WeaveLogDetail
    - SuccessOrExit
    - find
    - TLVWriter::Put
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestTdmSource::GetLeafData(PropertyPathHandle aLeafHandle, uint64_t
      aTagToWrite, TLVWriter &aWriter)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 597
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 597
    functionName: nl::Weave::Profiles::TestTdmSink::TestTdmSink
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestTdmSink::TestTdmSink()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:601,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:602,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:603,1
    - Dst: ClearVersion
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 605
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 605
    functionName: nl::Weave::Profiles::TestTdmSink::Reset
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - clear
    - ClearVersion
    linkageType: ''
    returnType: void
    signature: TestTdmSink::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:609,1
    - Dst: end
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:609,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:610,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:610,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:610,1
    - Dst: begin
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:613,1
    - Dst: end
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:613,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:614,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:614,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:614,1
    - Dst: begin
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:617,1
    - Dst: end
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:617,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:618,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:618,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:618,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 620
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 620
    functionName: nl::Weave::Profiles::TestTdmSink::DumpChangeSets
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - end
    - GetPropertyDictionaryKey
    - GetPropertySchemaHandle
    - WeaveLogDetail
    - begin
    linkageType: ''
    returnType: void
    signature: TestTdmSink::DumpChangeSets()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::set_symmetric_difference
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:629,1
    - Dst: begin
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:629,1
    - Dst: end
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:629,1
    - Dst: std::map <PropertyPathHandle, uint32_t>::begin
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:629,1
    - Dst: std::map <PropertyPathHandle, uint32_t>::end
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:629,1
    - Dst: inserter
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:629,1
    - Dst: std::map::begin
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:629,1
    - Dst: std::set_symmetric_difference
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:630,1
    - Dst: begin
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:630,1
    - Dst: end
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:630,1
    - Dst: std::set <PropertyPathHandle>::begin
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:630,1
    - Dst: std::set <PropertyPathHandle>::end
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:630,1
    - Dst: inserter
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:630,1
    - Dst: std::set::begin
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:630,1
    - Dst: std::set_symmetric_difference
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:631,1
    - Dst: begin
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:631,1
    - Dst: end
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:631,1
    - Dst: std::set <PropertyPathHandle>::begin
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:631,1
    - Dst: std::set <PropertyPathHandle>::end
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:631,1
    - Dst: inserter
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:631,1
    - Dst: std::set::begin
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:631,1
    - Dst: std::map::begin
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:633,1
    - Dst: std::map::end
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:633,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:634,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:634,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:634,1
    - Dst: std::set::begin
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:638,1
    - Dst: std::set::end
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:638,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:639,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:639,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:639,1
    - Dst: std::set::begin
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:643,1
    - Dst: std::set::end
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:643,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:644,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:644,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:644,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - aTargetModifiedSet
    - aTargetDeletedSet
    - aTargetReplacedSet
    argTypes:
    - std::map <PropertyPathHandle, uint32_t>
    - std::set <PropertyPathHandle>
    - std::set <PropertyPathHandle>
    constantsTouched: []
    func_position:
      end: 649
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 649
    functionName: nl::Weave::Profiles::TestTdmSink::ValidateChangeSets
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - std::set_symmetric_difference
    - end
    - std::set <PropertyPathHandle>::begin
    - std::set <PropertyPathHandle>::end
    - std::map::begin
    - GetPropertyDictionaryKey
    - std::set::end
    - std::set::begin
    - std::map::end
    - GetPropertySchemaHandle
    - WeaveLogDetail
    - std::map <PropertyPathHandle, uint32_t>::begin
    - begin
    - inserter
    - std::map <PropertyPathHandle, uint32_t>::end
    linkageType: ''
    returnType: bool
    signature: TestTdmSink::ValidateChangeSets(std::map <PropertyPathHandle, uint32_t>
      aTargetModifiedSet, std::set <PropertyPathHandle> aTargetDeletedSet, std::set
      <PropertyPathHandle> aTargetReplacedSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<InEventParam *>
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:653,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:657,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:657,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:657,1
    - Dst: insert
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:658,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:662,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:662,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:662,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:666,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:666,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:666,1
    - Dst: insert
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:667,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - aType
    - aInParam
    argTypes:
    - uint16_t
    - void*
    constantsTouched: []
    func_position:
      end: 672
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 672
    functionName: nl::Weave::Profiles::TestTdmSink::OnEvent
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - GetPropertyDictionaryKey
    - GetPropertySchemaHandle
    - WeaveLogDetail
    - static_cast<InEventParam *>
    - insert
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestTdmSink::OnEvent(uint16_t aType, void *aInParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:679,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:680,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:682,1
    - Dst: GetPropertyDictionaryKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:682,1
    - Dst: GetPropertySchemaHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - aHandle
    - aReader
    argTypes:
    - PropertyPathHandle
    - TLVReader
    constantsTouched: []
    func_position:
      end: 687
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 687
    functionName: nl::Weave::Profiles::TestTdmSink::SetLeafData
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - GetPropertyDictionaryKey
    - GetPropertySchemaHandle
    - WeaveLogDetail
    - SuccessOrExit
    - TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestTdmSink::SetLeafData(PropertyPathHandle aHandle, TLVReader &aReader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResourceIdentifier
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:778,1
    - Dst: ResourceIdentifier
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 783
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 783
    functionName: nl::Weave::Profiles::TestTdm::TestTdm
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - ResourceIdentifier
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdm()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:800,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:801,1
    - Dst: EnablePublisher
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:803,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:804,1
    - Dst: NewSubscriptionHandler
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:807,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:808,1
    - Dst: NewBinding
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:810,1
    - Dst: mBinding::BeginConfiguration
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:811,1
    - Dst: NewBinding
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:813,1
    - Dst: NewClient
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:815,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:816,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:820,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:821,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:823,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:825,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:827,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:828,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:830,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:832,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:837,1
    - Dst: SubscriptionHandler::TraitInstanceInfo*::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:839,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:845,1
    - Dst: SubscriptionHandler::TraitInstanceInfo*::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:847,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:853,1
    - Dst: SubscriptionHandler::TraitInstanceInfo*::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:855,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:861,1
    - Dst: SubscriptionHandler::TraitInstanceInfo*::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:863,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 873
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 873
    functionName: nl::Weave::Profiles::TestTdm::Setup
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - NewBinding
    - NewClient
    - Add
    - SubscriptionHandler::TraitInstanceInfo*::Init
    - NewSubscriptionHandler
    - mBinding::BeginConfiguration
    - SubscriptionEngine::GetInstance
    - Init
    - EnablePublisher
    - SuccessOrExit
    linkageType: ''
    returnType: int
    signature: TestTdm::Setup()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 886
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 886
    functionName: nl::Weave::Profiles::TestTdm::Teardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - Release
    linkageType: ''
    returnType: int
    signature: TestTdm::Teardown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MoveToState
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:892,1
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:893,1
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:894,1
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:896,1
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:897,1
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:899,1
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:900,1
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:902,1
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:903,1
    - Dst: mGraphSolver::ClearDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 908
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 908
    functionName: nl::Weave::Profiles::TestTdm::Reset
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - MoveToState
    - mGraphSolver::ClearDirty
    - nl::Weave::Profiles::TestTdm::Reset
    linkageType: ''
    returnType: int
    signature: TestTdm::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetMaxNotificationSize
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:924,1
    - Dst: mBinding::AllocateRightSizedBuffer
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:926,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:927,1
    - Dst: NotificationEngine::NotifyRequestBuilder::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:929,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:930,1
    - Dst: BuildSingleNotifyRequestDataList
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:932,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:933,1
    - Dst: NotificationEngine::NotifyRequestBuilder::MoveToState
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:937,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:938,1
    - Dst: TLVReader::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:940,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:942,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:943,1
    - Dst: NotificationRequest::Parser::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:945,1
    - Dst: NotificationRequest::Parser::CheckSchemaValidity
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:947,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:948,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:951,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:952,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:955,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:956,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:958,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:959,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:961,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:961,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:963,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:964,1
    - Dst: ProcessDataList
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:966,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:967,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:971,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:976,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 980
      start: 910
    functionDepth: 2
    functionLinenumber: 910
    functionLinenumberEnd: 980
    functionName: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - GetMaxNotificationSize
    - TLVReader::Init
    - ProcessDataList
    - nl::Weave::System::PacketBuffer::Free
    - TLVReader::Next
    - NotificationEngine::NotifyRequestBuilder::Init
    - TLVReader::GetType
    - NotificationEngine::NotifyRequestBuilder::MoveToState
    - VerifyOrExit
    - TLVReader::EnterContainer
    - NotificationRequest::Parser::Init
    - BuildSingleNotifyRequestDataList
    - NotificationRequest::Parser::CheckSchemaValidity
    - WeaveLogDetail
    - SuccessOrExit
    - mBinding::AllocateRightSizedBuffer
    linkageType: ''
    returnType: int
    signature: TestTdm::BuildAndProcessNotify()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:987,1
    - Dst: SetValue
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:989,1
    - Dst: SetValue
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:990,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:992,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:993,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:995,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:998,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1000,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1003,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1007
      start: 982
    functionDepth: 3
    functionLinenumber: 982
    functionLinenumberEnd: 1007
    functionName: nl::Weave::Profiles::TestTdm::TestTdmStatic_MultiInstance
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - VerifyOrExit
    - ValidateChangeSets
    - SuccessOrExit
    - SetValue
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmStatic_MultiInstance(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1014,1
    - Dst: SetValue
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1015,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1017,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1018,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1020,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1026
      start: 1009
    functionDepth: 3
    functionLinenumber: 1009
    functionLinenumberEnd: 1026
    functionName: nl::Weave::Profiles::TestTdm::TestTdmStatic_SingleLeafHandle
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - SuccessOrExit
    - SetValue
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmStatic_SingleLeafHandle(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1033,1
    - Dst: SetValue
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1034,1
    - Dst: SetValue
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1035,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1037,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1038,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1040,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1044,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1045
      start: 1028
    functionDepth: 3
    functionLinenumber: 1028
    functionLinenumberEnd: 1045
    functionName: nl::Weave::Profiles::TestTdm::TestTdmStatic_SingleLevelMerge
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - SuccessOrExit
    - SetValue
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmStatic_SingleLevelMerge(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1052,1
    - Dst: SetValue
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1054,1
    - Dst: SetValue
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1055,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1057,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1058,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1060,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1066
      start: 1047
    functionDepth: 3
    functionLinenumber: 1047
    functionLinenumberEnd: 1066
    functionName: nl::Weave::Profiles::TestTdm::TestTdmStatic_SingleLevelMergeDeep
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - SuccessOrExit
    - SetValue
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmStatic_SingleLevelMergeDeep(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1073,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1075,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1077,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1078,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1080,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1086
      start: 1068
    functionDepth: 3
    functionLinenumber: 1068
    functionLinenumberEnd: 1086
    functionName: nl::Weave::Profiles::TestTdm::TestTdmStatic_DirtyStruct
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - SuccessOrExit
    - SetDirty
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmStatic_DirtyStruct(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1093,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1095,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1096,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1098,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1099,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1101,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1108
      start: 1088
    functionDepth: 3
    functionLinenumber: 1088
    functionLinenumberEnd: 1108
    functionName: nl::Weave::Profiles::TestTdm::TestTdmStatic_DirtyLeafUnevenDepth
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - SuccessOrExit
    - SetDirty
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmStatic_DirtyLeafUnevenDepth(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1116,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1120,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1121,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1122,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1123,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1124,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1125,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1127,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1128,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1130,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1141
      start: 1111
    functionDepth: 3
    functionLinenumber: 1111
    functionLinenumberEnd: 1141
    functionName: nl::Weave::Profiles::TestTdm::TestTdmStatic_MergeHandleSetOverflow
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - SuccessOrExit
    - SetDirty
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmStatic_MergeHandleSetOverflow(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1148,1
    - Dst: SetValue
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1150,1
    - Dst: SetValue
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1151,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1153,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1154,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1156,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1162
      start: 1143
    functionDepth: 3
    functionLinenumber: 1143
    functionLinenumberEnd: 1162
    functionName: nl::Weave::Profiles::TestTdm::TestTdmStatic_MarkLeafHandleDirtyTwice
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - SuccessOrExit
    - SetValue
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmStatic_MarkLeafHandleDirtyTwice(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1167,1
    - Dst: SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1169,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1170,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1172,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1173,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1175,1
    - Dst: IsPathHandleNull
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1175,1
    - Dst: SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1178,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1179,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1181,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1182,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1184,1
    - Dst: IsPathHandleNull
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1184,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1185,1
    - Dst: IsPathHandleSet
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1186
      start: 1164
    functionDepth: 3
    functionLinenumber: 1164
    functionLinenumberEnd: 1186
    functionName: nl::Weave::Profiles::TestTdm::TestTdmStatic_TestNullableLeaf
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - SetNullifiedPath
    - NL_TEST_ASSERT
    - IsPathHandleSet
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - SetDirty
    - IsPathHandleNull
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmStatic_TestNullableLeaf(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1192,1
    - Dst: SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1194,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1195,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1197,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1198,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1200,1
    - Dst: IsPathHandleNull
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1200,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1201,1
    - Dst: IsPathHandleSet
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1201,1
    - Dst: IsPathHandleSet
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1205,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1208
      start: 1188
    functionDepth: 3
    functionLinenumber: 1188
    functionLinenumberEnd: 1208
    functionName: nl::Weave::Profiles::TestTdm::TestTdmStatic_TestNullableStruct
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - SetNullifiedPath
    - NL_TEST_ASSERT
    - IsPathHandleSet
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - SetDirty
    - IsPathHandleNull
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmStatic_TestNullableStruct(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1214,1
    - Dst: SetNullifiedPath
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1216,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1217,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1219,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1221
      start: 1210
    functionDepth: 3
    functionLinenumber: 1210
    functionLinenumberEnd: 1221
    functionName: nl::Weave::Profiles::TestTdm::TestTdmStatic_TestNonNullableLeaf
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - SetNullifiedPath
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - SetDirty
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmStatic_TestNonNullableLeaf(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1226,1
    - Dst: SetPresentPath
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1228,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1229,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1231,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1232,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1234,1
    - Dst: IsPathHandleSet
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1235
      start: 1223
    functionDepth: 3
    functionLinenumber: 1223
    functionLinenumberEnd: 1235
    functionName: nl::Weave::Profiles::TestTdm::TestTdmStatic_TestEphemeralLeaf
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - IsPathHandleSet
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - SetPresentPath
    - SetDirty
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmStatic_TestEphemeralLeaf(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1241,1
    - Dst: SetPresentPath
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1243,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1244,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1246,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1247,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1249,1
    - Dst: IsPathHandleSet
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1249,1
    - Dst: IsPathHandleSet
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1252,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1255
      start: 1237
    functionDepth: 3
    functionLinenumber: 1237
    functionLinenumberEnd: 1255
    functionName: nl::Weave::Profiles::TestTdm::TestTdmStatic_TestEphemeralStruct
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - IsPathHandleSet
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - SetPresentPath
    - SetDirty
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmStatic_TestEphemeralStruct(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSchemaEngine
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1259,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1260,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1275,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1275,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1275,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1276,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1278,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1278,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1278,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1279,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1281,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1281,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1284,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1284,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1284,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1285,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1287,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1287,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1287,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1288,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1290,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1290,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1291,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1293,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1293,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1293,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1296,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1296,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1296,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1297,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1299,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1299,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1299,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1300,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1302,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1302,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1302,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1303,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1305,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1305,1
    - Dst: TraitSchemaEngine*::GetDictionaryItemHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1305,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1306,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1308,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1308,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1308,1
    - Dst: TraitSchemaEngine*::GetDictionaryItemHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1309,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1311,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1311,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1311,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1312,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1315,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1315,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1315,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1316,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1319,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1319,1
    - Dst: TraitSchemaEngine*::GetDictionaryItemHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1319,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1323,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1323,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1323,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1324,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1326,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1326,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1326,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1327,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1329,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1329,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1329,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1332,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1332,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1332,1
    - Dst: TraitSchemaEngine*::GetDictionaryItemHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1333,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1335,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1335,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1335,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1336,1
    - Dst: TraitSchemaEngine*::GetParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1339,1
    - Dst: TraitSchemaEngine*::GetParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1339,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1341,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1341,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1342,1
    - Dst: TraitSchemaEngine*::IsParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1344
      start: 1257
    functionDepth: 0
    functionLinenumber: 1257
    functionLinenumberEnd: 1344
    functionName: nl::Weave::Profiles::TestTdm::TestTdmStatic_TestIsParent
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - TraitSchemaEngine*::GetParent
    - NL_TEST_ASSERT
    - GetSchemaEngine
    - TraitSchemaEngine*::IsParent
    - TraitSchemaEngine*::GetDictionaryItemHandle
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmStatic_TestIsParent(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1349,1
    - Dst: SetValue
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1352,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1354,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1355,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1358,1
    - Dst: WasAnyPathHandleSet
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1359
      start: 1346
    functionDepth: 3
    functionLinenumber: 1346
    functionLinenumberEnd: 1359
    functionName: nl::Weave::Profiles::TestTdm::TestTdmMismatched_PathInDataElement
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - WasAnyPathHandleSet
    - SetValue
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmMismatched_PathInDataElement(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1364,1
    - Dst: SetValue
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1367,1
    - Dst: SetValue
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1368,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1370,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1372,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1375,1
    - Dst: WasPathHandleSet
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1376
      start: 1361
    functionDepth: 3
    functionLinenumber: 1361
    functionLinenumberEnd: 1376
    functionName: nl::Weave::Profiles::TestTdm::TestTdmMismatched_TopLevelPOD
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - WasPathHandleSet
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - SetValue
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmMismatched_TopLevelPOD(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1381,1
    - Dst: SetValue
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1384,1
    - Dst: SetValue
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1385,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1387,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1389,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1392,1
    - Dst: WasPathHandleSet
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1393
      start: 1378
    functionDepth: 3
    functionLinenumber: 1378
    functionLinenumberEnd: 1393
    functionName: nl::Weave::Profiles::TestTdm::TestTdmMismatched_NestedStruct
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - WasPathHandleSet
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - SetValue
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmMismatched_NestedStruct(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1398,1
    - Dst: SetValue
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1400,1
    - Dst: SetValue
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1401,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1403,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1405,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1408,1
    - Dst: WasPathHandleSet
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1409
      start: 1395
    functionDepth: 3
    functionLinenumber: 1395
    functionLinenumberEnd: 1409
    functionName: nl::Weave::Profiles::TestTdm::TestTdmMismatched_TopLevelStruct
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - WasPathHandleSet
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - SetValue
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmMismatched_TopLevelStruct(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1415,1
    - Dst: Remove
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1418,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1419,1
    - Dst: SetValue
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1421,1
    - Dst: SetValue
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1422,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1424,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1426,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1428,1
    - Dst: WasPathHandleSet
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1429
      start: 1411
    functionDepth: 3
    functionLinenumber: 1411
    functionLinenumberEnd: 1429
    functionName: nl::Weave::Profiles::TestTdm::TestTdmMismatched_SetLeafDataMismatch
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - WasPathHandleSet
    - Add
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - Remove
    - SetValue
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmMismatched_SetLeafDataMismatch(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1436,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1439,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1439,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1441,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1442,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1444,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1444,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1445,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1446,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1452
      start: 1431
    functionDepth: 3
    functionLinenumber: 1431
    functionLinenumberEnd: 1452
    functionName: nl::Weave::Profiles::TestTdm::TestTdmDictionary_DictionaryEntryAddition
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - SuccessOrExit
    - SetDirty
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmDictionary_DictionaryEntryAddition(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1459,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1463,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1463,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1464,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1464,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1466,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1467,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1469,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1469,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1470,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1471,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1472,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1473,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1474,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1480
      start: 1454
    functionDepth: 3
    functionLinenumber: 1454
    functionLinenumberEnd: 1480
    functionName: nl::Weave::Profiles::TestTdm::TestTdmDictionary_DictionaryEntriesAddition
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - SuccessOrExit
    - SetDirty
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmDictionary_DictionaryEntriesAddition(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1487,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1493,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1495,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1496,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1498,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1498,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1499,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1500,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1501,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1502,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1503,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1504,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1505,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1506,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1512
      start: 1482
    functionDepth: 3
    functionLinenumber: 1482
    functionLinenumberEnd: 1512
    functionName: nl::Weave::Profiles::TestTdm::TestTdmDictionary_ReplaceDictionary
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - SuccessOrExit
    - SetDirty
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmDictionary_ReplaceDictionary(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1519,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1524,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1526,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1526,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1528,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1529,1
    - Dst: DumpChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1531,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1533,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1534,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1539
      start: 1514
    functionDepth: 3
    functionLinenumber: 1514
    functionLinenumberEnd: 1539
    functionName: nl::Weave::Profiles::TestTdm::TestTdmDictionary_DeleteSingle
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - DumpChangeSets
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - DeleteKey
    - SuccessOrExit
    - mDictlValues::erase
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmDictionary_DeleteSingle(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1546,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1551,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1552,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1554,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1554,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1555,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1555,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1557,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1558,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1560,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1561,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1561,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1566
      start: 1541
    functionDepth: 3
    functionLinenumber: 1541
    functionLinenumberEnd: 1566
    functionName: nl::Weave::Profiles::TestTdm::TestTdmDictionary_DeleteMultiple
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - DeleteKey
    - SuccessOrExit
    - mDictlValues::erase
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmDictionary_DeleteMultiple(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1573,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1582,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1583,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1584,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1585,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1586,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1588,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1588,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1589,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1589,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1590,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1590,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1591,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1591,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1592,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1592,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1594,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1595,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1597,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1603
      start: 1568
    functionDepth: 3
    functionLinenumber: 1568
    functionLinenumberEnd: 1603
    functionName: nl::Weave::Profiles::TestTdm::TestTdmDictionary_DeleteHandleSetOverflow
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - DeleteKey
    - SuccessOrExit
    - mDictlValues::erase
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmDictionary_DeleteHandleSetOverflow(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1611,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1615,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1617,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1617,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1618,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1618,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1620,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1621,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1624,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1624,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1625,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1626,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1627,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1632
      start: 1606
    functionDepth: 3
    functionLinenumber: 1606
    functionLinenumberEnd: 1632
    functionName: nl::Weave::Profiles::TestTdm::TestTdmDictionary_AddDeleteDifferent
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - SuccessOrExit
    - DeleteKey
    - SetDirty
    - mDictlValues::erase
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmDictionary_AddDeleteDifferent(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1639,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1643,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1645,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1645,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1646,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1648,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1649,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1651,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1651,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1652,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1653,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1659
      start: 1634
    functionDepth: 3
    functionLinenumber: 1634
    functionLinenumberEnd: 1659
    functionName: nl::Weave::Profiles::TestTdm::TestTdmDictionary_DeleteAndMarkDirty
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - SuccessOrExit
    - DeleteKey
    - SetDirty
    - mDictlValues::erase
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmDictionary_DeleteAndMarkDirty(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1666,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1671,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1673,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1674,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1674,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1676,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1677,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1679,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1679,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1680,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1681,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1687
      start: 1661
    functionDepth: 3
    functionLinenumber: 1661
    functionLinenumberEnd: 1687
    functionName: nl::Weave::Profiles::TestTdm::TestTdmDictionary_MarkDirtyAndDelete
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - SuccessOrExit
    - DeleteKey
    - SetDirty
    - mDictlValues::erase
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmDictionary_MarkDirtyAndDelete(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1694,1
    - Dst: mDictSaValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1699,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1700,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1700,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1701,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1703,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1704,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1706,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1707,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1708,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1709,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1715
      start: 1689
    functionDepth: 3
    functionLinenumber: 1689
    functionLinenumberEnd: 1715
    functionName: nl::Weave::Profiles::TestTdm::TestTdmDictionary_DeleteAndMarkFarDirty
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - mDictSaValues::erase
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - SuccessOrExit
    - DeleteKey
    - SetDirty
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmDictionary_DeleteAndMarkFarDirty(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1722,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1727,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1727,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1729,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1730,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1730,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1732,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1733,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1735,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1736,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1741
      start: 1717
    functionDepth: 3
    functionLinenumber: 1717
    functionLinenumberEnd: 1741
    functionName: nl::Weave::Profiles::TestTdm::TestTdmDictionary_AddAndDeleteSimilar
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - SuccessOrExit
    - DeleteKey
    - SetDirty
    - mDictlValues::erase
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmDictionary_AddAndDeleteSimilar(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1749,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1755,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1755,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1757,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1758,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1758,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1760,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1761,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1763,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1764,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1769
      start: 1744
    functionDepth: 3
    functionLinenumber: 1744
    functionLinenumberEnd: 1769
    functionName: nl::Weave::Profiles::TestTdm::TestTdmDictionary_ModifyAndDeleteSimilar
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - SuccessOrExit
    - DeleteKey
    - SetDirty
    - mDictlValues::erase
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmDictionary_ModifyAndDeleteSimilar(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1776,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1781,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1782,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1782,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1785,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1785,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1788,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1789,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1791,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1791,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1792,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1793,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1799
      start: 1771
    functionDepth: 3
    functionLinenumber: 1771
    functionLinenumberEnd: 1799
    functionName: nl::Weave::Profiles::TestTdm::TestTdmDictionary_DeleteAndModifySimilar
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - SuccessOrExit
    - DeleteKey
    - SetDirty
    - mDictlValues::erase
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmDictionary_DeleteAndModifySimilar(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1806,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1811,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1812,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1812,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1815,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1815,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1817,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1818,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1820,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1820,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1821,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1822,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1828
      start: 1801
    functionDepth: 3
    functionLinenumber: 1801
    functionLinenumberEnd: 1828
    functionName: nl::Weave::Profiles::TestTdm::TestTdmDictionary_DeleteAndModifyLeafSimilar
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - SuccessOrExit
    - DeleteKey
    - SetDirty
    - mDictlValues::erase
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmDictionary_DeleteAndModifyLeafSimilar(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1835,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1848,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1848,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1849,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1849,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1856,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1856,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1857,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1857,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1858,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1858,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1862,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1862,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1863,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1863,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1864,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1864,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1865,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1865,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1866,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1866,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1867,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1867,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1870,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1870,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1872,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1873,1
    - Dst: DumpChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1875,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1876,1
    - Dst: DumpChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1877,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1879,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1879,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1880,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1881,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1882,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1883,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1884,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1885,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1890
      start: 1830
    functionDepth: 3
    functionLinenumber: 1830
    functionLinenumberEnd: 1890
    functionName: nl::Weave::Profiles::TestTdm::TestTdmDictionary_DeleteStoreOverflowAndItemAddition
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - DumpChangeSets
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - SuccessOrExit
    - printf
    - DeleteKey
    - SetDirty
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmDictionary_DeleteStoreOverflowAndItemAddition(nlTestSuite
      *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1897,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1909,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1910,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1913,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1913,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1914,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1914,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1919,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1920,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1921,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1924,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1924,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1925,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1925,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1926,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1926,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1930,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1931,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1932,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1933,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1934,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1935,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1937,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1937,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1938,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1938,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1939,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1939,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1940,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1940,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1941,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1941,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1942,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1942,1
    - Dst: SetDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1946,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1946,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1948,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1949,1
    - Dst: DumpChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1951,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1952,1
    - Dst: DumpChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1953,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1955,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1955,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1956,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1957,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1958,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1958,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1963
      start: 1892
    functionDepth: 3
    functionLinenumber: 1892
    functionLinenumberEnd: 1963
    functionName: nl::Weave::Profiles::TestTdm::TestTdmDictionary_DirtyStoreOverflowAndItemDeletion
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - DumpChangeSets
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - SuccessOrExit
    - printf
    - DeleteKey
    - SetDirty
    - mDictlValues::erase
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmDictionary_DirtyStoreOverflowAndItemDeletion(nlTestSuite
      *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::Reset
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1970,1
    - Dst: mDictlValues::erase
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1975,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1977,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1977,1
    - Dst: DeleteKey
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1978,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1978,1
    - Dst: nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1980,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1981,1
    - Dst: DumpChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1983,1
    - Dst: ValidateChangeSets
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1985,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1986,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:1991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 1992
      start: 1965
    functionDepth: 3
    functionLinenumber: 1965
    functionLinenumberEnd: 1992
    functionName: nl::Weave::Profiles::TestTdm::TestTdmDictionary_DeleteEntryTwice
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - DumpChangeSets
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::Reset
    - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
    - ValidateChangeSets
    - DeleteKey
    - SuccessOrExit
    - mDictlValues::erase
    linkageType: ''
    returnType: void
    signature: TestTdm::TestTdmDictionary_DeleteEntryTwice(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestEmptyDataSource::GetVersion
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2002,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2003,1
    - Dst: TestEmptyDataSource::IncrementVersion
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2006,1
    - Dst: TestEmptyDataSource::GetVersion
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2007,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2008,1
    - Dst: TestEmptyDataSource::SetVersion
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2011,1
    - Dst: TestEmptyDataSource::GetVersion
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2012,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 2014
      start: 1994
    functionDepth: 0
    functionLinenumber: 1994
    functionLinenumberEnd: 2014
    functionName: nl::Weave::Profiles::TestTdm::TestRandomizedDataVersions
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - TestEmptyDataSource::GetVersion
    - NL_TEST_ASSERT
    - TestEmptyDataSource::IncrementVersion
    - TestEmptyDataSource::SetVersion
    linkageType: ''
    returnType: void
    signature: TestTdm::TestRandomizedDataVersions(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mBinding::AllocateRightSizedBuffer
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2023,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2024,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2030,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - desiredSize
    - minSize
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2034
      start: 2016
    functionDepth: 2
    functionLinenumber: 2016
    functionLinenumberEnd: 2034
    functionName: nl::Weave::Profiles::TestTdm::AllocateBuffer
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - mBinding::AllocateRightSizedBuffer
    - nl::Weave::System::PacketBuffer::Free
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestTdm::AllocateBuffer(uint32_t desiredSize, uint32_t minSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::TestTdm::AllocateBuffer
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2041,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2043,1
    - Dst: nl::Weave::Profiles::TestTdm::AllocateBuffer
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2045,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 2048
      start: 2036
    functionDepth: 3
    functionLinenumber: 2036
    functionLinenumberEnd: 2048
    functionName: nl::Weave::Profiles::TestTdm::CheckAllocateRightSizedBufferForNotifications
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - nl::Weave::Profiles::TestTdm::AllocateBuffer
    linkageType: ''
    returnType: void
    signature: TestTdm::CheckAllocateRightSizedBufferForNotifications(nlTestSuite
      *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CommandSender::SynchronizedTraitState::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2056,1
    - Dst: CommandSender::SynchronizedTraitState::HasDataCaughtUp
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2059,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2060,1
    - Dst: CommandSender::SynchronizedTraitState::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2063,1
    - Dst: CommandSender::SynchronizedTraitState::HasDataCaughtUp
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2065,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2066,1
    - Dst: CommandSender::SynchronizedTraitState::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2069,1
    - Dst: TestEmptyDataSink::SetVersion
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2071,1
    - Dst: CommandSender::SynchronizedTraitState::HasDataCaughtUp
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2072,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2073,1
    - Dst: CommandSender::SynchronizedTraitState::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2076,1
    - Dst: TestEmptyDataSink::ClearVersion
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2079,1
    - Dst: CommandSender::SynchronizedTraitState::HasDataCaughtUp
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2080,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2081,1
    - Dst: CommandSender::SynchronizedTraitState::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2089,1
    - Dst: TestEmptyDataSink::SetVersion
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2093,1
    - Dst: CommandSender::SynchronizedTraitState::HasDataCaughtUp
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2094,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2095,1
    - Dst: CommandSender::SynchronizedTraitState::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2098,1
    - Dst: TestEmptyDataSink::SetVersion
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2102,1
    - Dst: CommandSender::SynchronizedTraitState::HasDataCaughtUp
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2103,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2104,1
    - Dst: CommandSender::SynchronizedTraitState::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2107,1
    - Dst: TestEmptyDataSink::SetVersion
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2111,1
    - Dst: CommandSender::SynchronizedTraitState::HasDataCaughtUp
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2112,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2113,1
    - Dst: CommandSender::SynchronizedTraitState::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2121,1
    - Dst: TestEmptyDataSink::SetVersion
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2125,1
    - Dst: CommandSender::SynchronizedTraitState::HasDataCaughtUp
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2126,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2127,1
    - Dst: CommandSender::SynchronizedTraitState::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2129,1
    - Dst: TestEmptyDataSink::SetVersion
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2133,1
    - Dst: CommandSender::SynchronizedTraitState::HasDataCaughtUp
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2134,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2135,1
    - Dst: CommandSender::SynchronizedTraitState::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2139,1
    - Dst: TestEmptyDataSink::SetVersion
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2143,1
    - Dst: CommandSender::SynchronizedTraitState::HasDataCaughtUp
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2144,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2145,1
    - Dst: CommandSender::SynchronizedTraitState::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2147,1
    - Dst: TestEmptyDataSink::SetVersion
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2151,1
    - Dst: CommandSender::SynchronizedTraitState::HasDataCaughtUp
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2152,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2153,1
    - Dst: CommandSender::SynchronizedTraitState::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2158,1
    - Dst: TestEmptyDataSink::SetVersion
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2162,1
    - Dst: CommandSender::SynchronizedTraitState::HasDataCaughtUp
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2163,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2164,1
    - Dst: CommandSender::SynchronizedTraitState::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2166,1
    - Dst: TestEmptyDataSink::SetVersion
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2170,1
    - Dst: CommandSender::SynchronizedTraitState::HasDataCaughtUp
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2171,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2172,1
    - Dst: CommandSender::SynchronizedTraitState::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2175,1
    - Dst: TestEmptyDataSink::SetVersion
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2179,1
    - Dst: CommandSender::SynchronizedTraitState::HasDataCaughtUp
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2180,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2181,1
    - Dst: CommandSender::SynchronizedTraitState::Init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2184,1
    - Dst: TestEmptyDataSink::SetVersion
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2188,1
    - Dst: CommandSender::SynchronizedTraitState::HasDataCaughtUp
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2189,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 96
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 2191
      start: 2050
    functionDepth: 0
    functionLinenumber: 2050
    functionLinenumberEnd: 2191
    functionName: nl::Weave::Profiles::TestTdm::CheckSynchronizedTraitState
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - TestEmptyDataSink::ClearVersion
    - TestEmptyDataSink::SetVersion
    - CommandSender::SynchronizedTraitState::HasDataCaughtUp
    - CommandSender::SynchronizedTraitState::Init
    linkageType: ''
    returnType: void
    signature: TestTdm::CheckSynchronizedTraitState(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdm::Setup
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 2209
      start: 2203
    functionDepth: 0
    functionLinenumber: 2203
    functionLinenumberEnd: 2209
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdm::Setup
    linkageType: ''
    returnType: int
    signature: TestSetup(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Teardown
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 2217
      start: 2214
    functionDepth: 0
    functionLinenumber: 2214
    functionLinenumberEnd: 2217
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - Teardown
    linkageType: ''
    returnType: int
    signature: TestTeardown(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmStatic_SingleLeafHandle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2222
      start: 2219
    functionDepth: 1
    functionLinenumber: 2219
    functionLinenumberEnd: 2222
    functionName: TestTdmStatic_SingleLeafHandle
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmStatic_SingleLeafHandle
    linkageType: ''
    returnType: void
    signature: TestTdmStatic_SingleLeafHandle(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmStatic_SingleLevelMerge
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2227
      start: 2224
    functionDepth: 1
    functionLinenumber: 2224
    functionLinenumberEnd: 2227
    functionName: TestTdmStatic_SingleLevelMerge
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmStatic_SingleLevelMerge
    linkageType: ''
    returnType: void
    signature: TestTdmStatic_SingleLevelMerge(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmStatic_SingleLevelMergeDeep
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2232
      start: 2229
    functionDepth: 1
    functionLinenumber: 2229
    functionLinenumberEnd: 2232
    functionName: TestTdmStatic_SingleLevelMergeDeep
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmStatic_SingleLevelMergeDeep
    linkageType: ''
    returnType: void
    signature: TestTdmStatic_SingleLevelMergeDeep(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmStatic_DirtyStruct
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2237
      start: 2234
    functionDepth: 1
    functionLinenumber: 2234
    functionLinenumberEnd: 2237
    functionName: TestTdmStatic_DirtyStruct
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmStatic_DirtyStruct
    linkageType: ''
    returnType: void
    signature: TestTdmStatic_DirtyStruct(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmStatic_DirtyLeafUnevenDepth
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2242
      start: 2239
    functionDepth: 1
    functionLinenumber: 2239
    functionLinenumberEnd: 2242
    functionName: TestTdmStatic_DirtyLeafUnevenDepth
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmStatic_DirtyLeafUnevenDepth
    linkageType: ''
    returnType: void
    signature: TestTdmStatic_DirtyLeafUnevenDepth(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmStatic_MergeHandleSetOverflow
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2247
      start: 2244
    functionDepth: 1
    functionLinenumber: 2244
    functionLinenumberEnd: 2247
    functionName: TestTdmStatic_MergeHandleSetOverflow
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmStatic_MergeHandleSetOverflow
    linkageType: ''
    returnType: void
    signature: TestTdmStatic_MergeHandleSetOverflow(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmStatic_MarkLeafHandleDirtyTwice
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2252
      start: 2249
    functionDepth: 1
    functionLinenumber: 2249
    functionLinenumberEnd: 2252
    functionName: TestTdmStatic_MarkLeafHandleDirtyTwice
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmStatic_MarkLeafHandleDirtyTwice
    linkageType: ''
    returnType: void
    signature: TestTdmStatic_MarkLeafHandleDirtyTwice(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmStatic_TestNullableStruct
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2257
      start: 2254
    functionDepth: 1
    functionLinenumber: 2254
    functionLinenumberEnd: 2257
    functionName: TestTdmStatic_TestNullableStruct
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmStatic_TestNullableStruct
    linkageType: ''
    returnType: void
    signature: TestTdmStatic_TestNullableStruct(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmStatic_TestNullableLeaf
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2262
      start: 2259
    functionDepth: 1
    functionLinenumber: 2259
    functionLinenumberEnd: 2262
    functionName: TestTdmStatic_TestNullableLeaf
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmStatic_TestNullableLeaf
    linkageType: ''
    returnType: void
    signature: TestTdmStatic_TestNullableLeaf(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmStatic_TestNonNullableLeaf
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2267
      start: 2264
    functionDepth: 1
    functionLinenumber: 2264
    functionLinenumberEnd: 2267
    functionName: TestTdmStatic_TestNonNullableLeaf
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmStatic_TestNonNullableLeaf
    linkageType: ''
    returnType: void
    signature: TestTdmStatic_TestNonNullableLeaf(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmStatic_TestEphemeralStruct
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2272
      start: 2269
    functionDepth: 1
    functionLinenumber: 2269
    functionLinenumberEnd: 2272
    functionName: TestTdmStatic_TestEphemeralStruct
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmStatic_TestEphemeralStruct
    linkageType: ''
    returnType: void
    signature: TestTdmStatic_TestEphemeralStruct(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmStatic_TestIsParent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2277
      start: 2274
    functionDepth: 1
    functionLinenumber: 2274
    functionLinenumberEnd: 2277
    functionName: TestTdmStatic_TestIsParent
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmStatic_TestIsParent
    linkageType: ''
    returnType: void
    signature: TestTdmStatic_TestIsParent(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmStatic_TestEphemeralLeaf
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2282
      start: 2279
    functionDepth: 1
    functionLinenumber: 2279
    functionLinenumberEnd: 2282
    functionName: TestTdmStatic_TestEphemeralLeaf
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmStatic_TestEphemeralLeaf
    linkageType: ''
    returnType: void
    signature: TestTdmStatic_TestEphemeralLeaf(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmMismatched_PathInDataElement
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2287
      start: 2284
    functionDepth: 1
    functionLinenumber: 2284
    functionLinenumberEnd: 2287
    functionName: TestTdmMismatched_PathInDataElement
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmMismatched_PathInDataElement
    linkageType: ''
    returnType: void
    signature: TestTdmMismatched_PathInDataElement(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmMismatched_TopLevelPOD
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2292
      start: 2289
    functionDepth: 1
    functionLinenumber: 2289
    functionLinenumberEnd: 2292
    functionName: TestTdmMismatched_TopLevelPOD
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmMismatched_TopLevelPOD
    linkageType: ''
    returnType: void
    signature: TestTdmMismatched_TopLevelPOD(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmMismatched_NestedStruct
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2297
      start: 2294
    functionDepth: 1
    functionLinenumber: 2294
    functionLinenumberEnd: 2297
    functionName: TestTdmMismatched_NestedStruct
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmMismatched_NestedStruct
    linkageType: ''
    returnType: void
    signature: TestTdmMismatched_NestedStruct(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmMismatched_TopLevelStruct
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2302
      start: 2299
    functionDepth: 1
    functionLinenumber: 2299
    functionLinenumberEnd: 2302
    functionName: TestTdmMismatched_TopLevelStruct
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmMismatched_TopLevelStruct
    linkageType: ''
    returnType: void
    signature: TestTdmMismatched_TopLevelStruct(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmMismatched_SetLeafDataMismatch
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2307
      start: 2304
    functionDepth: 1
    functionLinenumber: 2304
    functionLinenumberEnd: 2307
    functionName: TestTdmMismatched_SetLeafDataMismatch
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmMismatched_SetLeafDataMismatch
    linkageType: ''
    returnType: void
    signature: TestTdmMismatched_SetLeafDataMismatch(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmDictionary_DictionaryEntryAddition
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2311
      start: 2308
    functionDepth: 1
    functionLinenumber: 2308
    functionLinenumberEnd: 2311
    functionName: TestTdmDictionary_DictionaryEntryAddition
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmDictionary_DictionaryEntryAddition
    linkageType: ''
    returnType: void
    signature: TestTdmDictionary_DictionaryEntryAddition(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmDictionary_DictionaryEntriesAddition
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2316
      start: 2313
    functionDepth: 1
    functionLinenumber: 2313
    functionLinenumberEnd: 2316
    functionName: TestTdmDictionary_DictionaryEntriesAddition
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmDictionary_DictionaryEntriesAddition
    linkageType: ''
    returnType: void
    signature: TestTdmDictionary_DictionaryEntriesAddition(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmDictionary_ReplaceDictionary
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2321
      start: 2318
    functionDepth: 1
    functionLinenumber: 2318
    functionLinenumberEnd: 2321
    functionName: TestTdmDictionary_ReplaceDictionary
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmDictionary_ReplaceDictionary
    linkageType: ''
    returnType: void
    signature: TestTdmDictionary_ReplaceDictionary(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmDictionary_DeleteSingle
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2326
      start: 2323
    functionDepth: 1
    functionLinenumber: 2323
    functionLinenumberEnd: 2326
    functionName: TestTdmDictionary_DeleteSingle
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmDictionary_DeleteSingle
    linkageType: ''
    returnType: void
    signature: TestTdmDictionary_DeleteSingle(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmDictionary_DeleteMultiple
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2331
      start: 2328
    functionDepth: 1
    functionLinenumber: 2328
    functionLinenumberEnd: 2331
    functionName: TestTdmDictionary_DeleteMultiple
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmDictionary_DeleteMultiple
    linkageType: ''
    returnType: void
    signature: TestTdmDictionary_DeleteMultiple(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmDictionary_DeleteHandleSetOverflow
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2336
      start: 2333
    functionDepth: 1
    functionLinenumber: 2333
    functionLinenumberEnd: 2336
    functionName: TestTdmDictionary_DeleteHandleSetOverflow
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmDictionary_DeleteHandleSetOverflow
    linkageType: ''
    returnType: void
    signature: TestTdmDictionary_DeleteHandleSetOverflow(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmDictionary_AddDeleteDifferent
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2341
      start: 2338
    functionDepth: 1
    functionLinenumber: 2338
    functionLinenumberEnd: 2341
    functionName: TestTdmDictionary_AddDeleteDifferent
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmDictionary_AddDeleteDifferent
    linkageType: ''
    returnType: void
    signature: TestTdmDictionary_AddDeleteDifferent(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmDictionary_DeleteAndMarkDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2346
      start: 2343
    functionDepth: 1
    functionLinenumber: 2343
    functionLinenumberEnd: 2346
    functionName: TestTdmDictionary_DeleteAndMarkDirty
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmDictionary_DeleteAndMarkDirty
    linkageType: ''
    returnType: void
    signature: TestTdmDictionary_DeleteAndMarkDirty(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmDictionary_MarkDirtyAndDelete
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2351
      start: 2348
    functionDepth: 1
    functionLinenumber: 2348
    functionLinenumberEnd: 2351
    functionName: TestTdmDictionary_MarkDirtyAndDelete
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmDictionary_MarkDirtyAndDelete
    linkageType: ''
    returnType: void
    signature: TestTdmDictionary_MarkDirtyAndDelete(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmDictionary_DeleteAndMarkFarDirty
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2356
      start: 2353
    functionDepth: 1
    functionLinenumber: 2353
    functionLinenumberEnd: 2356
    functionName: TestTdmDictionary_DeleteAndMarkFarDirty
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmDictionary_DeleteAndMarkFarDirty
    linkageType: ''
    returnType: void
    signature: TestTdmDictionary_DeleteAndMarkFarDirty(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmDictionary_AddAndDeleteSimilar
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2361
      start: 2358
    functionDepth: 1
    functionLinenumber: 2358
    functionLinenumberEnd: 2361
    functionName: TestTdmDictionary_AddAndDeleteSimilar
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmDictionary_AddAndDeleteSimilar
    linkageType: ''
    returnType: void
    signature: TestTdmDictionary_AddAndDeleteSimilar(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmDictionary_ModifyAndDeleteSimilar
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2366
      start: 2363
    functionDepth: 1
    functionLinenumber: 2363
    functionLinenumberEnd: 2366
    functionName: TestTdmDictionary_ModifyAndDeleteSimilar
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmDictionary_ModifyAndDeleteSimilar
    linkageType: ''
    returnType: void
    signature: TestTdmDictionary_ModifyAndDeleteSimilar(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmDictionary_DeleteAndModifySimilar
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2371
      start: 2368
    functionDepth: 1
    functionLinenumber: 2368
    functionLinenumberEnd: 2371
    functionName: TestTdmDictionary_DeleteAndModifySimilar
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmDictionary_DeleteAndModifySimilar
    linkageType: ''
    returnType: void
    signature: TestTdmDictionary_DeleteAndModifySimilar(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmDictionary_DeleteAndModifyLeafSimilar
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2376
      start: 2373
    functionDepth: 1
    functionLinenumber: 2373
    functionLinenumberEnd: 2376
    functionName: TestTdmDictionary_DeleteAndModifyLeafSimilar
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmDictionary_DeleteAndModifyLeafSimilar
    linkageType: ''
    returnType: void
    signature: TestTdmDictionary_DeleteAndModifyLeafSimilar(nlTestSuite *inSuite,
      void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmDictionary_DeleteStoreOverflowAndItemAddition
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2381
      start: 2378
    functionDepth: 1
    functionLinenumber: 2378
    functionLinenumberEnd: 2381
    functionName: TestTdmDictionary_DeleteStoreOverflowAndItemAddition
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmDictionary_DeleteStoreOverflowAndItemAddition
    linkageType: ''
    returnType: void
    signature: TestTdmDictionary_DeleteStoreOverflowAndItemAddition(nlTestSuite *inSuite,
      void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmDictionary_DirtyStoreOverflowAndItemDeletion
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2386
      start: 2383
    functionDepth: 1
    functionLinenumber: 2383
    functionLinenumberEnd: 2386
    functionName: TestTdmDictionary_DirtyStoreOverflowAndItemDeletion
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmDictionary_DirtyStoreOverflowAndItemDeletion
    linkageType: ''
    returnType: void
    signature: TestTdmDictionary_DirtyStoreOverflowAndItemDeletion(nlTestSuite *inSuite,
      void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmDictionary_DeleteEntryTwice
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2391
      start: 2388
    functionDepth: 1
    functionLinenumber: 2388
    functionLinenumberEnd: 2391
    functionName: TestTdmDictionary_DeleteEntryTwice
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmDictionary_DeleteEntryTwice
    linkageType: ''
    returnType: void
    signature: TestTdmDictionary_DeleteEntryTwice(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestRandomizedDataVersions
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2396
      start: 2393
    functionDepth: 1
    functionLinenumber: 2393
    functionLinenumberEnd: 2396
    functionName: TestRandomizedDataVersions
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestRandomizedDataVersions
    linkageType: ''
    returnType: void
    signature: TestRandomizedDataVersions(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestTdmStatic_MultiInstance
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2401
      start: 2398
    functionDepth: 1
    functionLinenumber: 2398
    functionLinenumberEnd: 2401
    functionName: TestTdmStatic_MultiInstance
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - TestTdmStatic_MultiInstance
    linkageType: ''
    returnType: void
    signature: TestTdmStatic_MultiInstance(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckAllocateRightSizedBufferForNotifications
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2406
      start: 2403
    functionDepth: 1
    functionLinenumber: 2403
    functionLinenumberEnd: 2406
    functionName: CheckAllocateRightSizedBufferForNotifications
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - CheckAllocateRightSizedBufferForNotifications
    linkageType: ''
    returnType: void
    signature: CheckAllocateRightSizedBufferForNotifications(nlTestSuite *inSuite,
      void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckSynchronizedTraitState
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 2411
      start: 2408
    functionDepth: 1
    functionLinenumber: 2408
    functionLinenumberEnd: 2411
    functionName: CheckSynchronizedTraitState
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 1
    functionsReached:
    - CheckSynchronizedTraitState
    linkageType: ''
    returnType: void
    signature: CheckSynchronizedTraitState(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_init
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2419,1
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2433,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2436,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestTDM.cpp:2438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 2439
      start: 2416
    functionDepth: 1
    functionLinenumber: 2416
    functionLinenumberEnd: 2439
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestTDM.cpp
    functionUses: 0
    functionsReached:
    - tcpip_init
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 58
    functionName: nl::Weave::Profiles::BulkDataTransferServer::BulkDataTransferServer
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: BulkDataTransferServer::BulkDataTransferServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: BulkDataTransferServer::~BulkDataTransferServer()
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp
    functionUses: 0
    functionsReached:
    - Shutdown
    linkageType: ''
    returnType: void
    signature: BulkDataTransferServer::~BulkDataTransferServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pDelegate
    argTypes:
    - BulkDataTransferServerDelegate*
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: nl::Weave::Profiles::BulkDataTransferServer::SetDelegate
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BulkDataTransferServer::SetDelegate(BulkDataTransferServerDelegate
      *pDelegate)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: nl::Weave::Profiles::BulkDataTransferServer::GetDelegate
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BulkDataTransferServerDelegate
    signature: '*

      BulkDataTransferServer::GetDelegate()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aEnable
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: nl::Weave::Profiles::BulkDataTransferServer::AllowBDXServerToRun
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BulkDataTransferServer::AllowBDXServerToRun(bool aEnable)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: nl::Weave::Profiles::BulkDataTransferServer::CanBDXServerRun
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: BulkDataTransferServer::CanBDXServerRun()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:92,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:99,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:107,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - exchangeMgr
    - appState
    argTypes:
    - WeaveExchangeManager*
    - void*
    constantsTouched: []
    func_position:
      end: 112
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 112
    functionName: nl::Weave::Profiles::BulkDataTransferServer::Init
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp
    functionUses: 0
    functionsReached:
    - RegisterUnsolicitedMessageHandler
    - VerifyOrExit
    - memset
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferServer::Init(WeaveExchangeManager *exchangeMgr, void
      *appState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:116,1
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:122,1
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:123,1
    - Dst: nl::Weave::Profiles::BulkDataTransferServer::ShutdownTransfer
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:129,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 146
    functionName: nl::Weave::Profiles::BulkDataTransferServer::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::BulkDataTransferServer::ShutdownTransfer
    - Log
    - UnregisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferServer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: nl::Weave::Profiles::BulkDataTransferServer::NewTransfer
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BulkDataTransferServer::BDXTransfer
    signature: '*BulkDataTransferServer::NewTransfer()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:166,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:168,1
    - Dst: OnBDXTransferFailed
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:184,1
    - Dst: OnBDXTransferSucceeded
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:191,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:198,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:202,1
    - Dst: BDXTransfer*::EC::Con::Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:203,1
    - Dst: BDXTransfer*::EC::Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:207,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:214,1
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:215,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:216,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:230,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:234,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 1
    argNames:
    - xfer
    argTypes:
    - BDXTransfer*
    constantsTouched: []
    func_position:
      end: 236
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 236
    functionName: nl::Weave::Profiles::BulkDataTransferServer::ShutdownTransfer
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp
    functionUses: 1
    functionsReached:
    - OnBDXTransferSucceeded
    - BDXTransfer*::EC::Close
    - OnBDXTransferFailed
    - VerifyOrExit
    - BDXTransfer*::EC::Con::Close
    - fclose
    - Log
    linkageType: ''
    returnType: void
    signature: BulkDataTransferServer::ShutdownTransfer(BDXTransfer *xfer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:243,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:257,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:258,1
    - Dst: static_cast<BulkDataTransferServer *>
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:259,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:261,1
    - Dst: BulkDataTransferServer*::CanBDXServerRun
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:261,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:262,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:265,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:266,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:267,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:268,1
    - Dst: BulkDataTransferServer*::NewTransfer
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:272,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:274,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:274,1
    - Dst: nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:277,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:287,1
    - Dst: ReceiveReject::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:290,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:291,1
    - Dst: ReceiveReject::pack
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:292,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:293,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:296,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:305,1
    - Dst: nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:306,1
    - Dst: malloc
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:312,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:313,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:329,1
    - Dst: DownloadFile
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:334,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:338,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:339,1
    - Dst: ReceiveReject::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:342,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:343,1
    - Dst: ReceiveReject::pack
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:344,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:345,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:348,1
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:357,1
    - Dst: nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:360,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:364,1
    - Dst: BulkDataTransferServer*::OnBDXReceiveInitRequestReceived
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:369,1
    - Dst: ReceiveAccept::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:382,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:383,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:383,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:385,1
    - Dst: ReceiveAccept::pack
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:386,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:387,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:388,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:390,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:394,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:398,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:401,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:405,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:409,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:415,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:420,1
    - Dst: BulkDataTransferServer*::ShutdownTransfer
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:425,1
    - Dst: ExchangeContext*::Con::Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:434,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:438,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 111
    argCount: 6
    argNames:
    - ec
    - packetInfo
    - msgInfo
    - profileId
    - msgType
    - payloadReceiveInit
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 442
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 442
    functionName: nl::Weave::Profiles::BulkDataTransferServer::HandleReceiveInitRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp
    functionUses: 0
    functionsReached:
    - ReceiveAccept::pack
    - BulkDataTransferServer*::OnBDXReceiveInitRequestReceived
    - fopen
    - nl::Weave::System::PacketBuffer::New
    - ExchangeContext*::Con::Close
    - static_cast<BulkDataTransferServer *>
    - nl::Weave::System::PacketBuffer::Free
    - ExchangeContext*::Close
    - ReceiveReject::init
    - ReceiveReject::pack
    - VerifyOrExit
    - BulkDataTransferServer*::CanBDXServerRun
    - Log
    - BulkDataTransferServer*::NewTransfer
    - DownloadFile
    - BulkDataTransferServer*::ShutdownTransfer
    - nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
    - ExchangeContext*::SendMessage
    - free
    - memcpy
    - nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
    - malloc
    - ReceiveAccept::init
    linkageType: ''
    returnType: void
    signature: "BulkDataTransferServer::HandleReceiveInitRequest(ExchangeContext *ec,
      const IPPacketInfo *packetInfo,\n                                                      const
      WeaveMessageInfo *msgInfo, uint32_t profileId,\n                                                      uint8_t
      msgType, PacketBuffer *payloadReceiveInit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:446,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:459,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:460,1
    - Dst: static_cast<BulkDataTransferServer *>
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:462,1
    - Dst: BulkDataTransferServer*::NewTransfer
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:464,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:472,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:473,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:474,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:475,1
    - Dst: nl::Weave::Profiles::SendInit::parse
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:486,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:488,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:489,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:490,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:496,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:497,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:498,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:503,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:504,1
    - Dst: malloc
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:507,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:507,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:508,1
    - Dst: strncat
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:509,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:510,1
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:512,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:516,1
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:517,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:518,1
    - Dst: SendReject::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:521,1
    - Dst: SendReject::pack
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:522,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:524,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:526,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:527,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:528,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:529,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:532,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:537,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:538,1
    - Dst: SendAccept::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:541,1
    - Dst: SendAccept::pack
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:542,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:546,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:549,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:550,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:556,1
    - Dst: BDXTransfer*::BdxApp::ShutdownTransfer
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:560,1
    - Dst: ExchangeContext*::Con::Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:569,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:573,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 61
    argCount: 6
    argNames:
    - ec
    - packetInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 577
      start: 444
    functionDepth: 3
    functionLinenumber: 444
    functionLinenumberEnd: 577
    functionName: nl::Weave::Profiles::BulkDataTransferServer::HandleSendInitRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp
    functionUses: 0
    functionsReached:
    - SendReject::pack
    - fclose
    - strncat
    - nl::Weave::Profiles::SendInit::parse
    - strcpy
    - fopen
    - nl::Weave::System::PacketBuffer::New
    - ExchangeContext*::Con::Close
    - static_cast<BulkDataTransferServer *>
    - nl::Weave::System::PacketBuffer::Free
    - SendAccept::init
    - ExchangeContext*::Close
    - VerifyOrExit
    - Log
    - BDXTransfer*::BdxApp::ShutdownTransfer
    - BulkDataTransferServer*::NewTransfer
    - strlen
    - SendAccept::pack
    - SendReject::init
    - ExchangeContext*::SendMessage
    - free
    - malloc
    linkageType: ''
    returnType: void
    signature: BulkDataTransferServer::HandleSendInitRequest(ExchangeContext *ec,
      const IPPacketInfo *packetInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId,
      uint8_t msgType, PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:582,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:592,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:597,1
    - Dst: nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:598,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:603,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:605,1
    - Dst: nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:606,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:610,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:612,1
    - Dst: read_data
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:613,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:614,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:621,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:627,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:631,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:638,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:644,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:648,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:655,1
    - Dst: nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:657,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:661,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:665,1
    - Dst: BulkDataTransferServer*::ShutdownTransfer
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:666,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:669,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 57
    argCount: 6
    argNames:
    - ec
    - packetInfo
    - msgInfo
    - profileId
    - msgType
    - payloadBlockQuery
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 672
      start: 579
    functionDepth: 3
    functionLinenumber: 579
    functionLinenumberEnd: 672
    functionName: nl::Weave::Profiles::BulkDataTransferServer::HandleBlockQueryRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::Free
    - read_data
    - ExchangeContext*::SendMessage
    - BulkDataTransferServer*::ShutdownTransfer
    - Log
    - PacketBuffer*::Start
    - nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: "BulkDataTransferServer::HandleBlockQueryRequest(ExchangeContext *ec,
      const IPPacketInfo *packetInfo,\n        const WeaveMessageInfo *msgInfo, uint32_t
      profileId, uint8_t msgType, PacketBuffer *payloadBlockQuery)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:676,1
    - Dst: static_cast<BDXTransfer *>
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:684,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:686,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:687,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:689,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:690,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:692,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:693,1
    - Dst: nl::Weave::Profiles::BlockSend::parse
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:698,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:699,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:700,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:704,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:705,1
    - Dst: write_data
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:707,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:709,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:710,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:712,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:718,1
    - Dst: BlockEOFAck::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:722,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:723,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:724,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:725,1
    - Dst: BlockEOFAck::pack
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:726,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:728,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:730,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:731,1
    - Dst: BDXTransfer*::BdxApp::ShutdownTransfer
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:733,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:738,1
    - Dst: BlockAck::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:741,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:742,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:743,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:744,1
    - Dst: BlockAck::pack
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:745,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:747,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:749,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:750,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:757,1
    - Dst: BDXTransfer*::BdxApp::ShutdownTransfer
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:758,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:761,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 6
    argNames:
    - ec
    - packetInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 763
      start: 674
    functionDepth: 3
    functionLinenumber: 674
    functionLinenumberEnd: 763
    functionName: nl::Weave::Profiles::BulkDataTransferServer::HandleBlockSend
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp
    functionUses: 0
    functionsReached:
    - BlockAck::pack
    - nl::Weave::System::PacketBuffer::Free
    - BlockEOFAck::init
    - static_cast<BDXTransfer *>
    - BlockAck::init
    - nl::Weave::Profiles::BlockSend::parse
    - VerifyOrExit
    - ExchangeContext*::SendMessage
    - write_data
    - Log
    - BDXTransfer*::BdxApp::ShutdownTransfer
    - BlockEOFAck::pack
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: BulkDataTransferServer::HandleBlockSend(ExchangeContext *ec, const
      IPPacketInfo *packetInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId,
      uint8_t msgType, PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:768,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:773,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:778,1
    - Dst: nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:779,1
    - Dst: BulkDataTransferServer*::OnBDXBlockEOFAckReceived
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:789,1
    - Dst: BulkDataTransferServer*::ShutdownTransfer
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:794,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:796,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 6
    argNames:
    - ec
    - packetInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 797
      start: 765
    functionDepth: 2
    functionLinenumber: 765
    functionLinenumberEnd: 797
    functionName: nl::Weave::Profiles::BulkDataTransferServer::HandleBlockEOFAck
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - BulkDataTransferServer*::ShutdownTransfer
    - Log
    - nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
    - BulkDataTransferServer*::OnBDXBlockEOFAckReceived
    linkageType: ''
    returnType: void
    signature: "BulkDataTransferServer::HandleBlockEOFAck(ExchangeContext *ec, const
      IPPacketInfo *packetInfo,\n        const WeaveMessageInfo *msgInfo, uint32_t
      profileId, uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:801,1
    - Dst: BulkDataTransferServer*::ShutdownTransfer
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:804,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 806
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 806
    functionName: nl::Weave::Profiles::BulkDataTransferServer::HandleBDXConnectionClosed
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp
    functionUses: 0
    functionsReached:
    - BulkDataTransferServer*::ShutdownTransfer
    - Log
    linkageType: ''
    returnType: void
    signature: BulkDataTransferServer::HandleBDXConnectionClosed(WeaveConnection *con,
      WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:810,1
    - Dst: BulkDataTransferServer*::ShutdownTransfer
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:813,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ec
    argTypes:
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 815
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 815
    functionName: nl::Weave::Profiles::BulkDataTransferServer::HandleResponseTimeout
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp
    functionUses: 0
    functionsReached:
    - BulkDataTransferServer*::ShutdownTransfer
    - Log
    linkageType: ''
    returnType: void
    signature: BulkDataTransferServer::HandleResponseTimeout(ExchangeContext *ec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TransferError::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:820,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:821,1
    - Dst: TransferError::pack
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:822,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ec
    - aProfileId
    - aStatusCode
    argTypes:
    - ExchangeContext*
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 825
      start: 817
    functionDepth: 3
    functionLinenumber: 817
    functionLinenumberEnd: 825
    functionName: nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp
    functionUses: 3
    functionsReached:
    - TransferError::init
    - ExchangeContext*::SendMessage
    - TransferError::pack
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: BulkDataTransferServer::SendTransferError(ExchangeContext *ec, uint32_t
      aProfileId, uint16_t aStatusCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - stream
    argTypes:
    - void*
    - size_t
    - size_t
    - FILE*
    constantsTouched: []
    func_position:
      end: 836
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 836
    functionName: write_data
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: write_data(void *ptr, size_t size, size_t nmemb, FILE *stream)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:844,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:848,1
    - Dst: fread
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:850,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:854,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:858,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:863,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - ptr
    - size
    - n
    - stream
    argTypes:
    - char*
    - size_t
    - size_t
    - FILE*
    constantsTouched: []
    func_position:
      end: 865
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 865
    functionName: read_data
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp
    functionUses: 1
    functionsReached:
    - fread
    - Log
    linkageType: ''
    returnType: size_t
    signature: read_data(char *ptr, size_t size, size_t n, FILE *stream)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:876,1
    - Dst: strtok
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:879,1
    - Dst: strtok
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:883,1
    - Dst: strcat
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:887,1
    - Dst: access
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:889,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:891,1
    - Dst: curl_easy_init
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:896,1
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:899,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:900,1
    - Dst: curl_easy_setopt
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:901,1
    - Dst: curl_easy_setopt
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:902,1
    - Dst: curl_easy_setopt
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:903,1
    - Dst: curl_easy_perform
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:904,1
    - Dst: curl_easy_cleanup
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:907,1
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:908,1
    - Dst: remove
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:912,1
    - Dst: strcpy
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:918,1
    - Dst: Log
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:923,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp:928,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 1
    argNames:
    - aFileDesignator
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 932
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 932
    functionName: DownloadFile
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp
    functionUses: 2
    functionsReached:
    - curl_easy_perform
    - strcat
    - curl_easy_setopt
    - remove
    - strtok
    - fclose
    - free
    - Log
    - curl_easy_cleanup
    - curl_easy_init
    - strcpy
    - fopen
    - access
    linkageType: ''
    returnType: int
    signature: DownloadFile(char *aFileDesignator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitToolCommon
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:512,1
    - Dst: SetupFaultInjectionContext
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:515,1
    - Dst: SetSignalHandler
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:518,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:520,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:521,1
    - Dst: ResolveWeaveNetworkOptions
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:522,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:524,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:527,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:529,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:531,1
    - Dst: SelectNodeAddress
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:536,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:539,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:540,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:541,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:542,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:546,1
    - Dst: init
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:550,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:553,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:564,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:571,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:575,1
    - Dst: StartServiceTunnel
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:576,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:577,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:590,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:591,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:597,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:598,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:604,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:605,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:608,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:609,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:612,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:613,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:622,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:623,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:626,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:627,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:630,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:631,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:634,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:635,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:638,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:639,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:642,1
    - Dst: MockWdmSubscriptionInitiator::GetInstance
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:654,1
    - Dst: GetEncKeyId
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:655,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:658,1
    - Dst: MockWdmSubscriptionInitiator::GetInstance
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:659,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:661,1
    - Dst: MockWdmSubscriptionInitiator::GetInstance
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:662,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:667,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:675,1
    - Dst: MockWdmSubscriptionResponder::GetInstance
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:678,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:680,1
    - Dst: MockWdmSubscriptionResponder::GetInstance
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:681,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:685,1
    - Dst: Preconfig
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:691,1
    - Dst: Preconfig
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:692,1
    - Dst: Preconfig
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:693,1
    - Dst: PrintNodeConfig
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:696,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:698,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:704,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:705,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:711,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:712,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:716,1
    - Dst: MockEventGenerator::GetInstance
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:717,1
    - Dst: nl::Weave::Stats::UpdateSnapshot
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:722,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:730,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:731,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:735,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:736,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:740,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:748,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:749,1
    - Dst: getBluezApplicationDelegate
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:752,1
    - Dst: getBluezPlatformDelegate
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:753,1
    - Dst: pthread_create
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:755,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:758,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:759,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:762,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:766,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:767,1
    - Dst: InitializeEventLogging
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:773,1
    - Dst: MockWdmSubscriptionInitiator::GetInstance
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:784,1
    - Dst: GetEncKeyId
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:785,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:788,1
    - Dst: MockWdmSubscriptionInitiator::GetInstance
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:789,1
    - Dst: MockWdmSubscriptionInitiator::GetInstance
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:790,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:796,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:805,1
    - Dst: MockWdmSubscriptionResponder::GetInstance
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:808,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:811,1
    - Dst: MockWdmSubscriptionResponder::GetInstance
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:812,1
    - Dst: MockWdmSubscriptionResponder::GetInstance
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:813,1
    - Dst: MockWdmSubscriptionResponder::GetInstance
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:816,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:821,1
    - Dst: MockWdmSubscriptionInitiator::GetInstance
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:832,1
    - Dst: MockWdmSubscriptionInitiator::GetInstance
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:834,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:837,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:837,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:843,1
    - Dst: GetTestDebugGenerator
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:851,1
    - Dst: GetTestLivenessGenerator
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:854,1
    - Dst: GetTestSecurityGenerator
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:857,1
    - Dst: GetTestTelemetryGenerator
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:860,1
    - Dst: GetTestTraitGenerator
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:863,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:872,1
    - Dst: MockEventGenerator::GetInstance
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:873,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:884,1
    - Dst: Republish
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:889,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:897,1
    - Dst: ProcessStats
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:901,1
    - Dst: PrintFaultInjectionCounters
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:902,1
    - Dst: CancelTimer
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:905,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:906,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:907,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:908,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:909,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:910,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:911,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:912,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:913,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:914,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:915,1
    - Dst: Finalize
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:917,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:923,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:927,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 251
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 930
      start: 497
    functionDepth: 5
    functionLinenumber: 497
    functionLinenumberEnd: 930
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/mock-device.cpp
    functionUses: 0
    functionsReached:
    - MockWdmSubscriptionResponder::GetInstance
    - GetTestSecurityGenerator
    - InitToolCommon
    - InitializeEventLogging
    - MockEventGenerator::GetInstance
    - InitWeaveStack
    - MockWdmSubscriptionInitiator::GetInstance
    - printf
    - StartTimer
    - SelectNodeAddress
    - nl::Weave::Stats::UpdateSnapshot
    - Preconfig
    - GetTestTelemetryGenerator
    - exit
    - ServiceNetwork
    - ParseArgsFromEnvVar
    - GetEncKeyId
    - CancelTimer
    - Finalize
    - ResolveWeaveNetworkOptions
    - StartServiceTunnel
    - GetTestLivenessGenerator
    - pthread_create
    - ShutdownWeaveStack
    - ParseArgs
    - GetTestDebugGenerator
    - getBluezPlatformDelegate
    - InitNetwork
    - SetupFaultInjectionContext
    - GetTestTraitGenerator
    - Shutdown
    - getBluezApplicationDelegate
    - ErrorStr
    - PrintNodeConfig
    - PrintFaultInjectionCounters
    - SetSignalHandler
    - InitSystemLayer
    - Republish
    - ProcessStats
    - nl::Inet::IPAddress::FromString
    - Init
    - init
    - FAIL_ERROR
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDelay
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:943,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:945,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:950,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:952,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:960,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:962,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:970,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:972,1
    - Dst: SetRole
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:978,1
    - Dst: SetRole
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:981,1
    - Dst: SetRole
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:984,1
    - Dst: SetMode
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:987,1
    - Dst: SetMode
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:990,1
    - Dst: SetMode
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:993,1
    - Dst: SetMode
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:996,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1002,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1004,1
    - Dst: ParseSubnetId
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1012,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1014,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1030,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1032,1
    - Dst: strdup
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1047,1
    - Dst: strdup
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1050,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1060,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 115
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1065
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 1065
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/mock-device.cpp
    functionUses: 0
    functionsReached:
    - ParseNodeId
    - strdup
    - ParseInt
    - SetRole
    - PrintArgError
    - ParseSubnetId
    - SetDelay
    - SetMode
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1070,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1072,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1073,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1076,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1076,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - nodeId
    - nodeAddr
    - payload
    argTypes:
    - uint64_t
    - IPAddress
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1077
      start: 1067
    functionDepth: 1
    functionLinenumber: 1067
    functionLinenumberEnd: 1077
    functionName: HandleEchoRequestReceived
    functionSourceFile: /src/openweave-core/src/test-apps/mock-device.cpp
    functionUses: 1
    functionsReached:
    - PacketBuffer*::DataLength
    - printf
    - DumpMemory
    - IPAddress::ToString
    - PacketBuffer*::Start
    linkageType: ''
    returnType: void
    signature: HandleEchoRequestReceived(uint64_t nodeId, IPAddress nodeAddr, PacketBuffer
      *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveMessageInfo*::InPacketInfo::SrcAddress::ToString
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1082,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1084,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - aMsgInfo
    - nodeState
    - err
    argTypes:
    - WeaveMessageInfo*
    - uint8_t
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1085
      start: 1079
    functionDepth: 0
    functionLinenumber: 1079
    functionLinenumberEnd: 1085
    functionName: HandleHeartbeatReceived
    functionSourceFile: /src/openweave-core/src/test-apps/mock-device.cpp
    functionUses: 0
    functionsReached:
    - printf
    - WeaveMessageInfo*::InPacketInfo::SrcAddress::ToString
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleHeartbeatReceived(const WeaveMessageInfo *aMsgInfo, uint8_t nodeState,
      WEAVE_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1090,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - msgLayer
    - con
    argTypes:
    - WeaveMessageLayer*
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 1095
      start: 1087
    functionDepth: 0
    functionLinenumber: 1087
    functionLinenumberEnd: 1095
    functionName: HandleConnectionReceived
    functionSourceFile: /src/openweave-core/src/test-apps/mock-device.cpp
    functionUses: 3
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    linkageType: ''
    returnType: void
    signature: HandleConnectionReceived(WeaveMessageLayer *msgLayer, WeaveConnection
      *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1102,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - sm
    - con
    - reqState
    - sessionKeyId
    - peerNodeId
    - encType
    argTypes:
    - WeaveSecurityManager*
    - WeaveConnection*
    - void*
    - uint16_t
    - uint64_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1105
      start: 1097
    functionDepth: 0
    functionLinenumber: 1097
    functionLinenumberEnd: 1105
    functionName: HandleSecureSessionEstablished
    functionSourceFile: /src/openweave-core/src/test-apps/mock-device.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    linkageType: ''
    returnType: void
    signature: HandleSecureSessionEstablished(WeaveSecurityManager *sm, WeaveConnection
      *con, void *reqState, uint16_t sessionKeyId, uint64_t peerNodeId, uint8_t encType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1113,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1114,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1118,1
    - Dst: nl::StatusReportStr
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1118,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1120,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - sm
    - con
    - reqState
    - localErr
    - peerNodeId
    - statusReport
    argTypes:
    - WeaveSecurityManager*
    - WeaveConnection*
    - void*
    - WEAVE_ERROR
    - uint64_t
    - StatusReport*
    constantsTouched: []
    func_position:
      end: 1121
      start: 1107
    functionDepth: 1
    functionLinenumber: 1107
    functionLinenumberEnd: 1121
    functionName: HandleSecureSessionError
    functionSourceFile: /src/openweave-core/src/test-apps/mock-device.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnection*::Close
    - nl::StatusReportStr
    - WeaveConnection*::PeerAddr::ToString
    - printf
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleSecureSessionError(WeaveSecurityManager *sm, WeaveConnection
      *con, void *reqState, WEAVE_ERROR localErr, uint64_t peerNodeId, StatusReport
      *statusReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1126,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1129,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1131,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1131,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1134
      start: 1123
    functionDepth: 0
    functionLinenumber: 1123
    functionLinenumberEnd: 1134
    functionName: HandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/test-apps/mock-device.cpp
    functionUses: 2
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    - WeaveConnection*::Close
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewConnection
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1141,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1143,1
    - Dst: WeaveConnection*::Connect
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1148,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1148,1
    - Dst: HandleConnectionComplete
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 1151
      start: 1136
    functionDepth: 0
    functionLinenumber: 1136
    functionLinenumberEnd: 1151
    functionName: InitiateConnection
    functionSourceFile: /src/openweave-core/src/test-apps/mock-device.cpp
    functionUses: 9
    functionsReached:
    - HandleConnectionComplete
    - strlen
    - WeaveConnection*::Connect
    - NewConnection
    - FAIL_ERROR
    linkageType: ''
    returnType: void
    signature: InitiateConnection(System::Layer* aSystemLayer, void* aAppState, System::Error
      aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1158,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1160,1
    - Dst: AllowUnsolicitedMessages
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1162,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1166,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1166,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1167,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1169,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/mock-device.cpp:1170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - con
    - err
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1172
      start: 1153
    functionDepth: 0
    functionLinenumber: 1153
    functionLinenumberEnd: 1172
    functionName: HandleConnectionComplete
    functionSourceFile: /src/openweave-core/src/test-apps/mock-device.cpp
    functionUses: 4
    functionsReached:
    - WeaveConnection*::Close
    - WeaveConnection*::PeerAddr::ToString
    - AllowUnsolicitedMessages
    - printf
    - StartTimer
    - ErrorStr
    - FAIL_ERROR
    linkageType: ''
    returnType: void
    signature: HandleConnectionComplete(WeaveConnection *con, WEAVE_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1174
    functionDepth: 0
    functionLinenumber: 1174
    functionLinenumberEnd: 1180
    functionName: HandleWdmCompleteTest
    functionSourceFile: /src/openweave-core/src/test-apps/mock-device.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: HandleWdmCompleteTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1185
    functionName: HandleError
    functionSourceFile: /src/openweave-core/src/test-apps/mock-device.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: HandleError()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/MockExternalEvents.cpp:61,1
    - Dst: nl::Weave::Profiles::DataManagement::LoggingManagement::RegisterEventCallbackForImportance
      Src: /src/openweave-core/src/test-apps/MockExternalEvents.cpp:65,1
    - Dst: nl::Weave::Profiles::DataManagement::LoggingManagement::RegisterEventCallbackForImportance
      Src: /src/openweave-core/src/test-apps/MockExternalEvents.cpp:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - aNumEvents
    - numCallback
    argTypes:
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 77
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 77
    functionName: LogMockExternalEvents
    functionSourceFile: /src/openweave-core/src/test-apps/MockExternalEvents.cpp
    functionUses: 7
    functionsReached:
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - nl::Weave::Profiles::DataManagement::LoggingManagement::RegisterEventCallbackForImportance
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LogMockExternalEvents(size_t aNumEvents, int numCallback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/MockExternalEvents.cpp:83,1
    - Dst: nl::Weave::Profiles::DataManagement::LoggingManagement::RegisterEventCallbackForImportance
      Src: /src/openweave-core/src/test-apps/MockExternalEvents.cpp:87,1
    - Dst: nl::Weave::Profiles::DataManagement::LoggingManagement::RegisterEventCallbackForImportance
      Src: /src/openweave-core/src/test-apps/MockExternalEvents.cpp:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - aNumEvents
    - numCallback
    argTypes:
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 99
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 99
    functionName: LogMockDebugExternalEvents
    functionSourceFile: /src/openweave-core/src/test-apps/MockExternalEvents.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - nl::Weave::Profiles::DataManagement::LoggingManagement::RegisterEventCallbackForImportance
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LogMockDebugExternalEvents(size_t aNumEvents, int numCallback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/MockExternalEvents.cpp:104,1
    - Dst: nl::Weave::Profiles::DataManagement::LoggingManagement::UnregisterEventCallbackForImportance
      Src: /src/openweave-core/src/test-apps/MockExternalEvents.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - numCallback
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: ClearMockExternalEvents
    functionSourceFile: /src/openweave-core/src/test-apps/MockExternalEvents.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::Profiles::DataManagement::LoggingManagement::UnregisterEventCallbackForImportance
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    linkageType: ''
    returnType: void
    signature: ClearMockExternalEvents(int numCallback)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aShouldBlit
    argTypes:
    - ShouldBlitFunct
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: SetShouldBlitCallback
    functionSourceFile: /src/openweave-core/src/test-apps/MockExternalEvents.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetShouldBlitCallback(ShouldBlitFunct aShouldBlit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EventLoadOutContext*::mExternalEvents::IsValid
      Src: /src/openweave-core/src/test-apps/MockExternalEvents.cpp:120,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - aContext
    argTypes:
    - EventLoadOutContext*
    constantsTouched: []
    func_position:
      end: 129
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 129
    functionName: FetchMockExternalEvents
    functionSourceFile: /src/openweave-core/src/test-apps/MockExternalEvents.cpp
    functionUses: 0
    functionsReached:
    - EventLoadOutContext*::mExternalEvents::IsValid
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: FetchMockExternalEvents(EventLoadOutContext *aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EventOptions
      Src: /src/openweave-core/src/test-apps/MockExternalEvents.cpp:147,1
    - Dst: static_cast<utc_timestamp_t>
      Src: /src/openweave-core/src/test-apps/MockExternalEvents.cpp:147,1
    - Dst: nl::Weave::System::Timer::GetCurrentEpoch
      Src: /src/openweave-core/src/test-apps/MockExternalEvents.cpp:147,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/MockExternalEvents.cpp:148,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/MockExternalEvents.cpp:151,1
    - Dst: ShouldBlit
      Src: /src/openweave-core/src/test-apps/MockExternalEvents.cpp:163,1
    - Dst: LoggingManagement::BlitEvent
      Src: /src/openweave-core/src/test-apps/MockExternalEvents.cpp:168,1
    - Dst: LoggingManagement::SkipEvent
      Src: /src/openweave-core/src/test-apps/MockExternalEvents.cpp:172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - aContext
    argTypes:
    - EventLoadOutContext*
    constantsTouched: []
    func_position:
      end: 176
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 176
    functionName: FetchWithBlitEvent
    functionSourceFile: /src/openweave-core/src/test-apps/MockExternalEvents.cpp
    functionUses: 0
    functionsReached:
    - LoggingManagement::SkipEvent
    - nl::Weave::Profiles::SubscriptionEngine::GetInstance
    - memset
    - nl::Weave::System::Timer::GetCurrentEpoch
    - static_cast<utc_timestamp_t>
    - LoggingManagement::BlitEvent
    - ShouldBlit
    - EventOptions
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: FetchWithBlitEvent(EventLoadOutContext *aContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:65,1
    - Dst: PackCertTime
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:73,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - ' validContext'
    argTypes:
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 78
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 78
    functionName: InitValidationContext
    functionSourceFile: /src/openweave-core/src/test-apps/TestKeyExport.cpp
    functionUses: 13
    functionsReached:
    - PackCertTime
    - memset
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: InitValidationContext(ValidationContext& validContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - isInitiator
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: TestKeyExportDelegate::TestKeyExportDelegate
    functionSourceFile: /src/openweave-core/src/test-apps/TestKeyExport.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TestKeyExportDelegate(bool isInitiator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestKeyExportDelegate::GetNodeCertSet
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:116,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keyExport
    - ' certSet'
    argTypes:
    - WeaveKeyExport*
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: TestKeyExportDelegate::GetNodeCertSet
    functionSourceFile: /src/openweave-core/src/test-apps/TestKeyExport.cpp
    functionUses: 1
    functionsReached:
    - TestKeyExportDelegate::GetNodeCertSet
    - WeaveKeyExport*::IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetNodeCertSet(WeaveKeyExport * keyExport, WeaveCertificateSet & certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestKeyExportDelegate::ReleaseNodeCertSet
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:121,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keyExport
    - ' certSet'
    argTypes:
    - WeaveKeyExport*
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: TestKeyExportDelegate::ReleaseNodeCertSet
    functionSourceFile: /src/openweave-core/src/test-apps/TestKeyExport.cpp
    functionUses: 1
    functionsReached:
    - WeaveKeyExport*::IsInitiator
    - TestKeyExportDelegate::ReleaseNodeCertSet
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReleaseNodeCertSet(WeaveKeyExport * keyExport, WeaveCertificateSet
      & certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestKeyExportDelegate::GetNodePrivateKey
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:131,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:131,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:132,1
    - Dst: GenerateAndEncodeWeaveECDSASignature
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:134,1
    - Dst: nl::Weave::TLV::ContextTag
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:134,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:135,1
    - Dst: TestKeyExportDelegate::ReleaseNodePrivateKey
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:140,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - keyExport
    - msgHash
    - msgHashLen
    - ' writer'
    argTypes:
    - WeaveKeyExport*
    - uint8_t*
    - uint8_t
    - TLVWriter
    constantsTouched: []
    func_position:
      end: 144
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 144
    functionName: TestKeyExportDelegate::GenerateNodeSignature
    functionSourceFile: /src/openweave-core/src/test-apps/TestKeyExport.cpp
    functionUses: 0
    functionsReached:
    - WeaveKeyExport*::IsInitiator
    - TestKeyExportDelegate::ReleaseNodePrivateKey
    - GenerateAndEncodeWeaveECDSASignature
    - TestKeyExportDelegate::GetNodePrivateKey
    - SuccessOrExit
    - nl::Weave::TLV::ContextTag
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "GenerateNodeSignature(WeaveKeyExport * keyExport, const uint8_t *
      msgHash, uint8_t msgHashLen,\n        TLVWriter & writer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestKeyExportDelegate::BeginCertValidation
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:149,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - keyExport
    - ' validCtx'
    - ' certSet'
    argTypes:
    - WeaveKeyExport*
    - ValidationContext
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: TestKeyExportDelegate::BeginCertValidation
    functionSourceFile: /src/openweave-core/src/test-apps/TestKeyExport.cpp
    functionUses: 1
    functionsReached:
    - TestKeyExportDelegate::BeginCertValidation
    - WeaveKeyExport*::IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "BeginCertValidation(WeaveKeyExport * keyExport, ValidationContext
      & validCtx,\n            WeaveCertificateSet & certSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestKeyExportDelegate::HandleCertValidationResult
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:155,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:155,1
    - Dst: WeaveKeyExport*::MessageInfo
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - keyExport
    - ' validCtx'
    - ' certSet'
    - requestedKeyId
    argTypes:
    - WeaveKeyExport*
    - ValidationContext
    - WeaveCertificateSet
    - uint32_t
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: TestKeyExportDelegate::HandleCertValidationResult
    functionSourceFile: /src/openweave-core/src/test-apps/TestKeyExport.cpp
    functionUses: 1
    functionsReached:
    - WeaveKeyExport*::MessageInfo
    - TestKeyExportDelegate::HandleCertValidationResult
    - WeaveKeyExport*::IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "HandleCertValidationResult(WeaveKeyExport * keyExport, ValidationContext
      & validCtx,\n            WeaveCertificateSet & certSet, uint32_t requestedKeyId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestKeyExportDelegate::EndCertValidation
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:161,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - keyExport
    - ' validCtx'
    - ' certSet'
    argTypes:
    - WeaveKeyExport*
    - ValidationContext
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: TestKeyExportDelegate::EndCertValidation
    functionSourceFile: /src/openweave-core/src/test-apps/TestKeyExport.cpp
    functionUses: 1
    functionsReached:
    - WeaveKeyExport*::IsInitiator
    - TestKeyExportDelegate::EndCertValidation
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "EndCertValidation(WeaveKeyExport * keyExport, ValidationContext &
      validCtx,\n            WeaveCertificateSet & certSet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestKeyExportDelegate::ValidateUnsignedKeyExportMessage
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:166,1
    - Dst: WeaveKeyExport*::IsInitiator
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:166,1
    - Dst: WeaveKeyExport*::MessageInfo
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keyExport
    - requestedKeyId
    argTypes:
    - WeaveKeyExport*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: TestKeyExportDelegate::ValidateUnsignedKeyExportMessage
    functionSourceFile: /src/openweave-core/src/test-apps/TestKeyExport.cpp
    functionUses: 1
    functionsReached:
    - TestKeyExportDelegate::ValidateUnsignedKeyExportMessage
    - WeaveKeyExport*::MessageInfo
    - WeaveKeyExport*::IsInitiator
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ValidateUnsignedKeyExportMessage(WeaveKeyExport * keyExport, uint32_t
      requestedKeyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:178,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:181,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:182,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:186,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:187,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:192,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:193,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:198,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:199,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:203,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:204,1
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - isInitiator
    - ' certSet'
    argTypes:
    - bool
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 212
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 212
    functionName: TestKeyExportDelegate::GetNodeCertSet
    functionSourceFile: /src/openweave-core/src/test-apps/TestKeyExport.cpp
    functionUses: 1
    functionsReached:
    - LoadCert
    - VerifyOrExit
    - Release
    - Init
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetNodeCertSet(bool isInitiator, WeaveCertificateSet& certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:219,1
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - isInitiator
    - ' certSet'
    argTypes:
    - bool
    - WeaveCertificateSet
    constantsTouched: []
    func_position:
      end: 225
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 225
    functionName: TestKeyExportDelegate::ReleaseNodeCertSet
    functionSourceFile: /src/openweave-core/src/test-apps/TestKeyExport.cpp
    functionUses: 1
    functionsReached:
    - Release
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReleaseNodeCertSet(bool isInitiator, WeaveCertificateSet& certSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:232,1
    - Dst: nl::Weave::Platform::Security::MemoryAlloc
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:234,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:235,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:239,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - isInitiator
    - ' weavePrivKey'
    - ' weavePrivKeyLen'
    argTypes:
    - bool
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 250
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 250
    functionName: TestKeyExportDelegate::GetNodePrivateKey
    functionSourceFile: /src/openweave-core/src/test-apps/TestKeyExport.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Platform::Security::MemoryAlloc
    - VerifyOrExit
    - memcpy
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetNodePrivateKey(bool isInitiator, const uint8_t *& weavePrivKey,
      uint16_t& weavePrivKeyLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:257,1
    - Dst: nl::Weave::Platform::Security::MemoryFree
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - isInitiator
    - ' weavePrivKey'
    argTypes:
    - bool
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 267
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 267
    functionName: TestKeyExportDelegate::ReleaseNodePrivateKey
    functionSourceFile: /src/openweave-core/src/test-apps/TestKeyExport.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Platform::Security::MemoryFree
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ReleaseNodePrivateKey(bool isInitiator, const uint8_t *& weavePrivKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:277,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:280,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:281,1
    - Dst: LoadCert
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:285,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:286,1
    - Dst: InitValidationContext
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:291,1
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - isInitiator
    - ' certSet'
    - ' validContext'
    argTypes:
    - bool
    - WeaveCertificateSet
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 298
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 298
    functionName: TestKeyExportDelegate::BeginCertValidation
    functionSourceFile: /src/openweave-core/src/test-apps/TestKeyExport.cpp
    functionUses: 1
    functionsReached:
    - LoadCert
    - VerifyOrExit
    - InitValidationContext
    - Init
    - Release
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BeginCertValidation(bool isInitiator, WeaveCertificateSet& certSet,
      ValidationContext& validContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:307,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 6
    argNames:
    - isInitiator
    - ' certSet'
    - ' validContext'
    - pktInfo
    - msgInfo
    - requestedKeyId
    argTypes:
    - bool
    - WeaveCertificateSet
    - ValidationContext
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 334
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 334
    functionName: TestKeyExportDelegate::HandleCertValidationResult
    functionSourceFile: /src/openweave-core/src/test-apps/TestKeyExport.cpp
    functionUses: 1
    functionsReached:
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "HandleCertValidationResult(bool isInitiator, WeaveCertificateSet&
      certSet, ValidationContext& validContext,\n                                                   const
      IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t requestedKeyId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:341,1
    - Dst: Release
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - isInitiator
    - ' certSet'
    - ' validContext'
    argTypes:
    - bool
    - WeaveCertificateSet
    - ValidationContext
    constantsTouched: []
    func_position:
      end: 347
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 347
    functionName: TestKeyExportDelegate::EndCertValidation
    functionSourceFile: /src/openweave-core/src/test-apps/TestKeyExport.cpp
    functionUses: 1
    functionsReached:
    - Release
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: EndCertValidation(bool isInitiator, WeaveCertificateSet& certSet, ValidationContext&
      validContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:354,1
    - Dst: nl::Weave::WeaveKeyId::IsSessionKey
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:365,1
    - Dst: nl::Weave::WeaveKeyId::GetType
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:368,1
    - Dst: nl::Weave::WeaveKeyId::IsSessionKey
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:369,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - isInitiator
    - pktInfo
    - msgInfo
    - requestedKeyId
    argTypes:
    - bool
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 377
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 377
    functionName: TestKeyExportDelegate::ValidateUnsignedKeyExportMessage
    functionSourceFile: /src/openweave-core/src/test-apps/TestKeyExport.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::WeaveKeyId::GetType
    - nl::Weave::WeaveKeyId::IsSessionKey
    - VerifyOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ValidateUnsignedKeyExportMessage(bool isInitiator, const IPPacketInfo
      *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t requestedKeyId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestGroupKeyStore::TestGroupKeyStore
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:474,1
    - Dst: WeaveMessageInfo::Clear
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:493,1
    - Dst: IPPacketInfo::Clear
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:494,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:502,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:505,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:508,1
    - Dst: WeaveKeyExport::Reset
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:512,1
    - Dst: WeaveKeyExport::Init
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:513,1
    - Dst: WeaveKeyExport::SetAllowedConfigs
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:516,1
    - Dst: WeaveKeyExport::SetAllowedConfigs
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:518,1
    - Dst: WeaveKeyExport::SetAllowedConfigs
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:520,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:522,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:523,1
    - Dst: WeaveKeyExport::GenerateKeyExportRequest
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:525,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:525,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:525,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:529,1
    - Dst: WeaveKeyExport::Reset
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:531,1
    - Dst: WeaveKeyExport::Init
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:532,1
    - Dst: WeaveKeyExport::SetAllowedConfigs
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:535,1
    - Dst: WeaveKeyExport::SetAllowedConfigs
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:537,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:539,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:540,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:541,1
    - Dst: WeaveKeyExport::GenerateKeyExportRequest
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:543,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:543,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:543,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:546,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:548,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:552,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:552,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:553,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:553,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:553,1
    - Dst: WeaveKeyExport::Reset
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:557,1
    - Dst: WeaveKeyExport::Init
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:558,1
    - Dst: WeaveKeyExport::SetAllowedConfigs
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:562,1
    - Dst: WeaveKeyExport::SetAllowedConfigs
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:564,1
    - Dst: WeaveKeyExport::ProcessKeyExportRequest
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:566,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:566,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:566,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:568,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:570,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:572,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:574,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:579,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:580,1
    - Dst: WeaveKeyExport::GenerateKeyExportReconfigure
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:582,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:582,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:582,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:583,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:585,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:588,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:588,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:589,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:589,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:589,1
    - Dst: WeaveKeyExport::ProcessKeyExportReconfigure
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:594,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:594,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:594,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:595,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:597,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:600,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:601,1
    - Dst: WeaveKeyExport::GenerateKeyExportRequest
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:603,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:603,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:603,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:604,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:606,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:609,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:609,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:610,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:610,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:610,1
    - Dst: WeaveKeyExport::Reset
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:614,1
    - Dst: WeaveKeyExport::Init
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:615,1
    - Dst: WeaveKeyExport::SetAllowedConfigs
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:617,1
    - Dst: WeaveKeyExport::ProcessKeyExportRequest
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:619,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:619,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:619,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:620,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:622,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:630,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:631,1
    - Dst: WeaveKeyExport::GenerateKeyExportResponse
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:633,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:633,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:633,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:634,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:636,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:640,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:640,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:641,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:641,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:641,1
    - Dst: WeaveKeyExport::ProcessKeyExportResponse
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:645,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:645,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:645,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:647,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:649,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:654,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:655,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:659,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:660,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:661,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:661,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 102
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 663
      start: 466
    functionDepth: 3
    functionLinenumber: 466
    functionLinenumberEnd: 663
    functionName: KeyExportProtocol_Test
    functionSourceFile: /src/openweave-core/src/test-apps/TestKeyExport.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - TestGroupKeyStore::TestGroupKeyStore
    - printf
    - WeaveMessageInfo::Clear
    - nl::Weave::System::PacketBuffer::New
    - DumpMemoryCStyle
    - WeaveKeyExport::ProcessKeyExportResponse
    - nl::Weave::System::PacketBuffer::Free
    - WeaveKeyExport::ProcessKeyExportRequest
    - WeaveKeyExport::GenerateKeyExportReconfigure
    - PacketBuffer*::AvailableDataLength
    - PacketBuffer*::SetDataLength
    - WeaveKeyExport::GenerateKeyExportResponse
    - WeaveKeyExport::Init
    - WeaveKeyExport::SetAllowedConfigs
    - WeaveKeyExport::ProcessKeyExportReconfigure
    - WeaveKeyExport::Reset
    - PacketBuffer*::DataLength
    - memcmp
    - WeaveKeyExport::GenerateKeyExportRequest
    - PacketBuffer*::Start
    - IPPacketInfo::Clear
    linkageType: ''
    returnType: void
    signature: KeyExportProtocol_Test(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_init
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:684,1
    - Dst: nl::Weave::Platform::Security::InitSecureRandomDataSource
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:687,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:688,1
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:690,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:692,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestKeyExport.cpp:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 695
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 695
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestKeyExport.cpp
    functionUses: 0
    functionsReached:
    - nlTestRunnerStats
    - nlTestRunner
    - nl_test_set_output_style
    - nl::Weave::Platform::Security::InitSecureRandomDataSource
    - tcpip_init
    - FAIL_ERROR
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::TunEndPoint::Free
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:104,1
    - Dst: PBUF_TO_INET
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - theContext
    argTypes:
    - struct TestContext*
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: BufferFree
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 11
    functionsReached:
    - PBUF_TO_INET
    - nl::Inet::TunEndPoint::Free
    linkageType: ''
    returnType: void
    signature: BufferFree(struct TestContext *theContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INET_TO_PBUF
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:115,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:115,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:120,1
    - Dst: strerror
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:121,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:122,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:125,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:127,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - theContext
    argTypes:
    - struct TestContext*
    constantsTouched: []
    func_position:
      end: 138
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 138
    functionName: BufferAlloc
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 12
    functionsReached:
    - reinterpret_cast<uint8_t*>
    - exit
    - memset
    - INET_TO_PBUF
    - fprintf
    - strerror
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: BufferAlloc(struct TestContext *theContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BufferAlloc
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:145,1
    - Dst: reinterpret_cast<InetBuffer*>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - theContext
    argTypes:
    - struct TestContext*
    constantsTouched: []
    func_position:
      end: 157
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 157
    functionName: PrepareTestBuffer
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 19
    functionsReached:
    - BufferAlloc
    - reinterpret_cast<InetBuffer*>
    linkageType: ''
    returnType: InetBuffer
    signature: '*PrepareTestBuffer(struct TestContext *theContext)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:172,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:174,1
    - Dst: InetBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 178
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 178
    functionName: CheckStart
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - InetBuffer*::Start
    linkageType: ''
    returnType: void
    signature: CheckStart(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:203,1
    - Dst: InetBuffer*::SetStart
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:205,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:219,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:224,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:230,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 236
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 236
    functionName: CheckSetStart
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - InetBuffer*::SetStart
    linkageType: ''
    returnType: void
    signature: CheckSetStart(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:247,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:249,1
    - Dst: InetBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 253
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 253
    functionName: CheckDataLength
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - InetBuffer*::DataLength
    linkageType: ''
    returnType: void
    signature: CheckDataLength(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:270,1
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:274,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:280,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:281,1
    - Dst: InetBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:286,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:290,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:292,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:294,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:298,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:299,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:300,1
    - Dst: InetBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:306,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:310,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:312,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:314,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:316,1
    - Dst: static_cast<int32_t>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:318,1
    - Dst: static_cast<int32_t>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:319,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:323,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:324,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:325,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:327,1
    - Dst: static_cast<int32_t>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:329,1
    - Dst: static_cast<int32_t>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:330,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 340
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 340
    functionName: CheckSetDataLength
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<struct TestContext *>
    - NL_TEST_ASSERT
    - InetBuffer*::SetDataLength
    - static_cast<int32_t>
    - PrepareTestBuffer
    linkageType: ''
    returnType: void
    signature: CheckSetDataLength(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:351,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:353,1
    - Dst: InetBuffer*::TotalLength
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 357
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 357
    functionName: CheckTotalLength
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - InetBuffer*::TotalLength
    linkageType: ''
    returnType: void
    signature: CheckTotalLength(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:368,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:370,1
    - Dst: InetBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 375
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 375
    functionName: CheckMaxDataLength
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - InetBuffer*::MaxDataLength
    linkageType: ''
    returnType: void
    signature: CheckMaxDataLength(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:386,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:388,1
    - Dst: InetBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 393
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 393
    functionName: CheckAvailableDataLength
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - InetBuffer*::AvailableDataLength
    linkageType: ''
    returnType: void
    signature: CheckAvailableDataLength(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:404,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:408,1
    - Dst: InetBuffer*::ReservedSize
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:408,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:413,1
    - Dst: InetBuffer*::ReservedSize
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 419
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 419
    functionName: CheckReservedSize
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - InetBuffer*::ReservedSize
    linkageType: ''
    returnType: void
    signature: CheckReservedSize(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:434,1
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:438,1
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:442,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:458,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:459,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:460,1
    - Dst: InetBuffer*::AddToEnd
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:462,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:464,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:466,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:467,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:469,1
    - Dst: InetBuffer*::AddToEnd
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:471,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:473,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:475,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:476,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:477,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 487
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 487
    functionName: CheckAddToEnd
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - InetBuffer*::AddToEnd
    - static_cast<struct TestContext *>
    linkageType: ''
    returnType: void
    signature: CheckAddToEnd(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:501,1
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:505,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:509,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:510,1
    - Dst: InetBuffer*::DetachTail
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:519,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:521,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:522,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:526,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 534
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 534
    functionName: CheckDetachTail
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - InetBuffer*::DetachTail
    - static_cast<struct TestContext *>
    linkageType: ''
    returnType: void
    signature: CheckDetachTail(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:549,1
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:553,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:563,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:564,1
    - Dst: InetBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:568,1
    - Dst: InetBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:569,1
    - Dst: InetBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:576,1
    - Dst: InetBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:577,1
    - Dst: InetBuffer*::CompactHead
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:580,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:582,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:587,1
    - Dst: InetBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:589,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:591,1
    - Dst: InetBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:591,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:592,1
    - Dst: InetBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:593,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:597,1
    - Dst: InetBuffer*::MaxDataLength
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:598,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:601,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:606,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 617
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 617
    functionName: CheckCompactHead
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 0
    functionsReached:
    - InetBuffer*::CompactHead
    - static_cast<struct TestContext *>
    - NL_TEST_ASSERT
    - InetBuffer*::SetDataLength
    - InetBuffer*::MaxDataLength
    - InetBuffer*::DataLength
    - PrepareTestBuffer
    linkageType: ''
    returnType: void
    signature: CheckCompactHead(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:637,1
    - Dst: InetBuffer*::ConsumeHead
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:639,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:643,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:645,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:646,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:650,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:652,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:654,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 665
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 665
    functionName: CheckConsumeHead
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - InetBuffer*::ConsumeHead
    linkageType: ''
    returnType: void
    signature: CheckConsumeHead(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:681,1
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:685,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:709,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:710,1
    - Dst: InetBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:715,1
    - Dst: InetBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:716,1
    - Dst: InetBuffer*::Consume
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:721,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:725,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:731,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:736,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:741,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 754
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 754
    functionName: CheckConsume
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<struct TestContext *>
    - NL_TEST_ASSERT
    - InetBuffer*::SetDataLength
    - PrepareTestBuffer
    - InetBuffer*::Consume
    linkageType: ''
    returnType: void
    signature: CheckConsume(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:773,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:783,1
    - Dst: InetBuffer*::EnsureReservedSize
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:783,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:789,1
    - Dst: InetBuffer*::EnsureReservedSize
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:789,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:793,1
    - Dst: InetBuffer*::EnsureReservedSize
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:793,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:794,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 800
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 800
    functionName: CheckEnsureReservedSize
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - InetBuffer*::EnsureReservedSize
    linkageType: ''
    returnType: void
    signature: CheckEnsureReservedSize(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:819,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:823,1
    - Dst: InetBuffer*::AlignPayload
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:823,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:840,1
    - Dst: InetBuffer*::AlignPayload
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:840,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:841,1
    - Dst: InetBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:841,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:845,1
    - Dst: InetBuffer*::AlignPayload
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:845,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 851
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 851
    functionName: CheckAlignPayload
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - InetBuffer*::AlignPayload
    - InetBuffer*::Start
    linkageType: ''
    returnType: void
    signature: CheckAlignPayload(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:858,1
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:862,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:866,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:867,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:873,1
    - Dst: InetBuffer*::Next
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:873,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:877,1
    - Dst: InetBuffer*::Next
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:877,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:880,1
    - Dst: InetBuffer*::Next
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:880,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 886
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 886
    functionName: CheckNext
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - InetBuffer*::Next
    - static_cast<struct TestContext *>
    linkageType: ''
    returnType: void
    signature: CheckNext(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:897,1
    - Dst: InetBuffer*::AddRef
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:898,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:900,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 904
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 904
    functionName: CheckAddRef
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 0
    functionsReached:
    - InetBuffer*::AddRef
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: CheckAddRef(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:925,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:929,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:934,1
    - Dst: INET_TO_PBUF
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:938,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:940,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:941,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:942,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:943,1
    - Dst: nl::Inet::TunEndPoint::Free
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:946,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:954,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 957
      start: 916
    functionDepth: 3
    functionLinenumber: 916
    functionLinenumberEnd: 957
    functionName: CheckNewAndFree
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - nl::Inet::TunEndPoint::Free
    - INET_TO_PBUF
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: CheckNewAndFree(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:972,1
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:976,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:993,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:994,1
    - Dst: nl::Inet::TunEndPoint::Free
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:1002,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:1004,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:1009,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:1014,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:1020,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1039
      start: 970
    functionDepth: 3
    functionLinenumber: 970
    functionLinenumberEnd: 1039
    functionName: CheckFree
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - nl::Inet::TunEndPoint::Free
    - NL_TEST_ASSERT
    - static_cast<struct TestContext *>
    linkageType: ''
    returnType: void
    signature: CheckFree(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:1052,1
    - Dst: static_cast<struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:1056,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:1069,1
    - Dst: PrepareTestBuffer
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:1070,1
    - Dst: nl::Weave::System::PacketBuffer::FreeHead
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:1074,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:1076,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1084
      start: 1050
    functionDepth: 3
    functionLinenumber: 1050
    functionLinenumberEnd: 1084
    functionName: CheckFreeHead
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 0
    functionsReached:
    - PrepareTestBuffer
    - NL_TEST_ASSERT
    - nl::Weave::System::PacketBuffer::FreeHead
    - static_cast<struct TestContext *>
    linkageType: ''
    returnType: void
    signature: CheckFreeHead(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1094
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1094
    functionName: CheckBuildFreeList
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CheckBuildFreeList(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BufferAlloc
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:1139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1145
      start: 1133
    functionDepth: 0
    functionLinenumber: 1133
    functionLinenumberEnd: 1145
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 1
    functionsReached:
    - BufferAlloc
    linkageType: ''
    returnType: int
    signature: TestSetup(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BufferFree
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:1157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1163
      start: 1151
    functionDepth: 0
    functionLinenumber: 1151
    functionLinenumberEnd: 1163
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 1
    functionsReached:
    - BufferFree
    linkageType: ''
    returnType: int
    signature: TestTeardown(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_init
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:1176,1
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:1180,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:1183,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestInetBuffer.cpp:1185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1165
    functionDepth: 1
    functionLinenumber: 1165
    functionLinenumberEnd: 1186
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 0
    functionsReached:
    - tcpip_init
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1190
    functionDepth: 0
    functionLinenumber: 1190
    functionLinenumberEnd: 1193
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: nl::Weave::Profiles::BulkDataTransferServer::BulkDataTransferServer
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BulkDataTransferServer::BulkDataTransferServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: BulkDataTransferServer::~BulkDataTransferServer()
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp
    functionUses: 0
    functionsReached:
    - Shutdown
    linkageType: ''
    returnType: void
    signature: BulkDataTransferServer::~BulkDataTransferServer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:57,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:64,1
    - Dst: RegisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - exchangeMgr
    - appState
    - hostedFileName
    - receivedFileLocation
    argTypes:
    - WeaveExchangeManager*
    - void*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 68
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 68
    functionName: nl::Weave::Profiles::BulkDataTransferServer::Init
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp
    functionUses: 0
    functionsReached:
    - RegisterUnsolicitedMessageHandler
    - memset
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "BulkDataTransferServer::Init(WeaveExchangeManager *exchangeMgr, void
      *appState,\n        const char *hostedFileName, const char *receivedFileLocation)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:72,1
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:78,1
    - Dst: UnregisterUnsolicitedMessageHandler
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:79,1
    - Dst: nl::Weave::Profiles::BulkDataTransferServer::ShutdownTransfer
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:85,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 100
    functionName: nl::Weave::Profiles::BulkDataTransferServer::Shutdown
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Profiles::BulkDataTransferServer::ShutdownTransfer
    - printf
    - UnregisterUnsolicitedMessageHandler
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: BulkDataTransferServer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 114
    functionName: nl::Weave::Profiles::BulkDataTransferServer::NewTransfer
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BulkDataTransferServer::BDXTransfer
    signature: '*BulkDataTransferServer::NewTransfer()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:124,1
    - Dst: OnBDXTransferFailed
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:140,1
    - Dst: OnBDXTransferSucceeded
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:147,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:163,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:167,1
    - Dst: BDXTransfer*::EC::Con::Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:168,1
    - Dst: BDXTransfer*::EC::Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:172,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:179,1
    - Dst: close
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:180,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:184,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - xfer
    - closeCon
    argTypes:
    - BDXTransfer*
    - bool
    constantsTouched: []
    func_position:
      end: 185
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 185
    functionName: nl::Weave::Profiles::BulkDataTransferServer::ShutdownTransfer
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp
    functionUses: 2
    functionsReached:
    - OnBDXTransferSucceeded
    - BDXTransfer*::EC::Close
    - OnBDXTransferFailed
    - BDXTransfer*::EC::Con::Close
    - printf
    - close
    linkageType: ''
    returnType: void
    signature: BulkDataTransferServer::ShutdownTransfer(BDXTransfer *xfer, bool closeCon)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:191,1
    - Dst: nlREQUIRE_ACTION
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:204,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:205,1
    - Dst: nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:209,1
    - Dst: nlREQUIRE
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:210,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:211,1
    - Dst: BulkDataTransferServer*::NewTransfer
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:215,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:219,1
    - Dst: nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:220,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:232,1
    - Dst: ReceiveReject::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:235,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:236,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:238,1
    - Dst: ReceiveReject::pack
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:242,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:243,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:247,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:255,1
    - Dst: nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:256,1
    - Dst: malloc
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:262,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:263,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:269,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:271,1
    - Dst: nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:272,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:273,1
    - Dst: open
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:279,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:280,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:285,1
    - Dst: nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:286,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:291,1
    - Dst: BulkDataTransferServer*::OnBDXReceiveInitRequestReceived
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:296,1
    - Dst: ReceiveAccept::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:308,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:309,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:311,1
    - Dst: ReceiveAccept::pack
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:316,1
    - Dst: nlREQUIRE
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:317,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:319,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:323,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:327,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:331,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:335,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:341,1
    - Dst: BulkDataTransferServer*::ShutdownTransfer
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:347,1
    - Dst: ExchangeContext*::Con::Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:356,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:360,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 112
    argCount: 6
    argNames:
    - ec
    - packetInfo
    - msgInfo
    - profileId
    - msgType
    - payloadReceiveInit
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 364
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 364
    functionName: nl::Weave::Profiles::BulkDataTransferServer::HandleReceiveInitRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp
    functionUses: 0
    functionsReached:
    - ReceiveAccept::pack
    - printf
    - BulkDataTransferServer*::OnBDXReceiveInitRequestReceived
    - nl::Weave::System::PacketBuffer::New
    - ExchangeContext*::Con::Close
    - nlREQUIRE_ACTION
    - nl::Weave::System::PacketBuffer::Free
    - ExchangeContext*::Close
    - ReceiveReject::init
    - ReceiveReject::pack
    - nlREQUIRE
    - BulkDataTransferServer*::NewTransfer
    - BulkDataTransferServer*::ShutdownTransfer
    - open
    - strcmp
    - nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
    - ExchangeContext*::SendMessage
    - free
    - memcpy
    - nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
    - malloc
    - ReceiveAccept::init
    linkageType: ''
    returnType: void
    signature: "BulkDataTransferServer::HandleReceiveInitRequest(ExchangeContext *ec,
      const IPPacketInfo *packetInfo,\n        const WeaveMessageInfo *msgInfo, uint32_t
      profileId, uint8_t msgType, PacketBuffer *payloadReceiveInit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:368,1
    - Dst: nlREQUIRE
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:386,1
    - Dst: static_cast<BulkDataTransferServer *>
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:387,1
    - Dst: BulkDataTransferServer*::NewTransfer
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:389,1
    - Dst: nlREQUIRE
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:390,1
    - Dst: nl::Weave::Profiles::SendInit::parse
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:397,1
    - Dst: nlREQUIRE
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:398,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:401,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:405,1
    - Dst: nlREQUIRE_ACTION
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:406,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:407,1
    - Dst: strndup
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:410,1
    - Dst: nlREQUIRE
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:411,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:413,1
    - Dst: strrchr
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:417,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:427,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:429,1
    - Dst: malloc
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:432,1
    - Dst: nlREQUIRE
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:433,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:435,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:442,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:445,1
    - Dst: open
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:446,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:447,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:449,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:454,1
    - Dst: SendReject::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:456,1
    - Dst: nlREQUIRE
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:457,1
    - Dst: SendReject::pack
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:459,1
    - Dst: nlREQUIRE
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:460,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:462,1
    - Dst: SendAccept::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:469,1
    - Dst: nlREQUIRE
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:470,1
    - Dst: SendAccept::pack
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:472,1
    - Dst: nlREQUIRE
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:473,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:477,1
    - Dst: nlREQUIRE_ACTION
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:480,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:481,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:489,1
    - Dst: free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:495,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:499,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:503,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:509,1
    - Dst: BulkDataTransferServer*::ShutdownTransfer
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:515,1
    - Dst: ExchangeContext*::Con::Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:524,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:528,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 95
    argCount: 6
    argNames:
    - ec
    - packetInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 532
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 532
    functionName: nl::Weave::Profiles::BulkDataTransferServer::HandleSendInitRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp
    functionUses: 0
    functionsReached:
    - SendReject::pack
    - strrchr
    - strndup
    - printf
    - nl::Weave::Profiles::SendInit::parse
    - nl::Weave::System::PacketBuffer::New
    - ExchangeContext*::Con::Close
    - static_cast<BulkDataTransferServer *>
    - nlREQUIRE_ACTION
    - nl::Weave::System::PacketBuffer::Free
    - SendAccept::init
    - ExchangeContext*::Close
    - nlREQUIRE
    - BulkDataTransferServer*::NewTransfer
    - BulkDataTransferServer*::ShutdownTransfer
    - strlen
    - SendAccept::pack
    - open
    - SendReject::init
    - ExchangeContext*::SendMessage
    - free
    - memcpy
    - malloc
    linkageType: ''
    returnType: void
    signature: BulkDataTransferServer::HandleSendInitRequest(ExchangeContext *ec,
      const IPPacketInfo *packetInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId,
      uint8_t msgType, PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:536,1
    - Dst: static_cast<BDXTransfer *>
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:543,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:545,1
    - Dst: nl::Weave::Profiles::BlockSend::parse
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:548,1
    - Dst: write
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:550,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:552,1
    - Dst: nlREQUIRE_ACTION
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:555,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:556,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:561,1
    - Dst: nlREQUIRE_ACTION
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:564,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:566,1
    - Dst: BlockEOFAck::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:568,1
    - Dst: nlREQUIRE
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:569,1
    - Dst: BlockEOFAck::pack
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:571,1
    - Dst: nlREQUIRE
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:572,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:574,1
    - Dst: nlREQUIRE
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:576,1
    - Dst: BulkDataTransferServer*::ShutdownTransfer
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:578,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:583,1
    - Dst: nlREQUIRE_ACTION
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:586,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:588,1
    - Dst: BlockAck::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:590,1
    - Dst: nlREQUIRE
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:591,1
    - Dst: BlockAck::pack
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:593,1
    - Dst: nlREQUIRE
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:594,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:596,1
    - Dst: nlREQUIRE
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:598,1
    - Dst: BulkDataTransferServer*::ShutdownTransfer
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:605,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:610,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 6
    argNames:
    - ec
    - packetInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 616
      start: 534
    functionDepth: 3
    functionLinenumber: 534
    functionLinenumberEnd: 616
    functionName: nl::Weave::Profiles::BulkDataTransferServer::HandleBlockSend
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp
    functionUses: 0
    functionsReached:
    - BlockAck::pack
    - nlREQUIRE_ACTION
    - write
    - nl::Weave::System::PacketBuffer::Free
    - BlockEOFAck::init
    - static_cast<BDXTransfer *>
    - BlockAck::init
    - nl::Weave::Profiles::BlockSend::parse
    - nlREQUIRE
    - ExchangeContext*::SendMessage
    - BulkDataTransferServer*::ShutdownTransfer
    - printf
    - BlockEOFAck::pack
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: BulkDataTransferServer::HandleBlockSend(ExchangeContext *ec, const
      IPPacketInfo *packetInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId,
      uint8_t msgType, PacketBuffer *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:622,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:626,1
    - Dst: read
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:628,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:632,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:636,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - fd
    - buf
    - n
    argTypes:
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 643
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 643
    functionName: nl::Weave::Profiles::read_n
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp
    functionUses: 0
    functionsReached:
    - read
    - printf
    linkageType: ''
    returnType: int
    signature: read_n(int fd, char *buf, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:648,1
    - Dst: nl::Weave::Profiles::BlockQuery::parse
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:659,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:661,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:666,1
    - Dst: nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:667,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:671,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:673,1
    - Dst: nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:674,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:678,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:680,1
    - Dst: read_n
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:682,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:686,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:687,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:693,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:697,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:703,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:706,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:712,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:716,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:722,1
    - Dst: nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:724,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:728,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:732,1
    - Dst: BulkDataTransferServer*::ShutdownTransfer
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:733,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:737,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 60
    argCount: 6
    argNames:
    - ec
    - packetInfo
    - msgInfo
    - profileId
    - msgType
    - payloadBlockQuery
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 740
      start: 645
    functionDepth: 3
    functionLinenumber: 645
    functionLinenumberEnd: 740
    functionName: nl::Weave::Profiles::BulkDataTransferServer::HandleBlockQueryRequest
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::System::PacketBuffer::Free
    - nl::Weave::Profiles::BlockQuery::parse
    - ExchangeContext*::SendMessage
    - BulkDataTransferServer*::ShutdownTransfer
    - printf
    - PacketBuffer*::Start
    - read_n
    - nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: "BulkDataTransferServer::HandleBlockQueryRequest(ExchangeContext *ec,
      const IPPacketInfo *packetInfo,\n        const WeaveMessageInfo *msgInfo, uint32_t
      profileId, uint8_t msgType, PacketBuffer *payloadBlockQuery)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:745,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:750,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:755,1
    - Dst: nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:756,1
    - Dst: BulkDataTransferServer*::OnBDXBlockEOFAckReceived
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:766,1
    - Dst: BulkDataTransferServer*::ShutdownTransfer
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:771,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:773,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 6
    argNames:
    - ec
    - packetInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 774
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 774
    functionName: nl::Weave::Profiles::BulkDataTransferServer::HandleBlockEOFAck
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - BulkDataTransferServer*::ShutdownTransfer
    - printf
    - nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
    - BulkDataTransferServer*::OnBDXBlockEOFAckReceived
    linkageType: ''
    returnType: void
    signature: "BulkDataTransferServer::HandleBlockEOFAck(ExchangeContext *ec, const
      IPPacketInfo *packetInfo,\n        const WeaveMessageInfo *msgInfo, uint32_t
      profileId, uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:778,1
    - Dst: BulkDataTransferServer*::ShutdownTransfer
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:781,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ec
    - con
    - conErr
    argTypes:
    - ExchangeContext*
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 783
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 783
    functionName: nl::Weave::Profiles::BulkDataTransferServer::HandleBDXConnectionClosed
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp
    functionUses: 0
    functionsReached:
    - BulkDataTransferServer*::ShutdownTransfer
    - printf
    linkageType: ''
    returnType: void
    signature: BulkDataTransferServer::HandleBDXConnectionClosed(ExchangeContext *ec,
      WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:787,1
    - Dst: BulkDataTransferServer*::ShutdownTransfer
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:790,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ec
    argTypes:
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 792
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 792
    functionName: nl::Weave::Profiles::BulkDataTransferServer::HandleResponseTimeout
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp
    functionUses: 0
    functionsReached:
    - BulkDataTransferServer*::ShutdownTransfer
    - printf
    linkageType: ''
    returnType: void
    signature: BulkDataTransferServer::HandleResponseTimeout(ExchangeContext *ec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TransferError::init
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:797,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:798,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:801,1
    - Dst: TransferError::pack
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:805,1
    - Dst: ExchangeContext*::SendMessage
      Src: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp:806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ec
    - aProfileId
    - aStatusCode
    argTypes:
    - ExchangeContext*
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 808
      start: 794
    functionDepth: 3
    functionLinenumber: 794
    functionLinenumberEnd: 808
    functionName: nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
    functionSourceFile: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp
    functionUses: 6
    functionsReached:
    - TransferError::init
    - ExchangeContext*::SendMessage
    - TransferError::pack
    - printf
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: BulkDataTransferServer::SendTransferError(ExchangeContext *ec, uint32_t
      aProfileId, uint16_t aStatusCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitToolCommon
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:106,1
    - Dst: SetupFaultInjectionContext
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:108,1
    - Dst: SetSIGUSR1Handler
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:109,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:113,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:114,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:117,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:118,1
    - Dst: ResolveWeaveNetworkOptions
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:119,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:121,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:124,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:126,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:128,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:136,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:139,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:139,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:140,1
    - Dst: PrintNodeConfig
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:143,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:146,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:148,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:150,1
    - Dst: StartClientConnection
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:153,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:161,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:164,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:165,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 168
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 168
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client.cpp
    functionUses: 0
    functionsReached:
    - InitToolCommon
    - InitWeaveStack
    - printf
    - exit
    - ServiceNetwork
    - ParseArgsFromEnvVar
    - ResolveWeaveNetworkOptions
    - ShutdownWeaveStack
    - ParseArgs
    - InitNetwork
    - SetupFaultInjectionContext
    - PrintBriefUsage
    - Shutdown
    - ErrorStr
    - StartClientConnection
    - PrintNodeConfig
    - InitSystemLayer
    - SetSIGUSR1Handler
    - Init
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:172,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:176,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:177,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:184,1
    - Dst: NewConnection
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:188,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:191,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:194,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:198,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:199,1
    - Dst: Connect
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:200,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:203,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:203,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:204,1
    - Dst: setCon
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:209,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:211,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 212
    functionName: StartClientConnection
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client.cpp
    functionUses: 5
    functionsReached:
    - Connect
    - nl::Inet::IPAddress::FromString
    - printf
    - setCon
    - Close
    - ErrorStr
    - NewConnection
    linkageType: ''
    returnType: void
    signature: StartClientConnection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:228,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 233
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 233
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:239,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:245,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:257,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 264
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 264
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseNodeId
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:269,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - msgLayer
    - con
    argTypes:
    - WeaveMessageLayer*
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 274
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 274
    functionName: HandleConnectionReceived
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client.cpp
    functionUses: 3
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    linkageType: ''
    returnType: void
    signature: HandleConnectionReceived(WeaveMessageLayer *msgLayer, WeaveConnection
      *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:278,1
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:282,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:286,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:286,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:287,1
    - Dst: setCon
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:289,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:294,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:298,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:301,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:308,1
    - Dst: SendReceiveInitRequest
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:309,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:314,1
    - Dst: ToString
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:314,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:314,1
    - Dst: SendReceiveInitRequest
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:315,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:323,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:324,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:328,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 329
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 329
    functionName: HandleConnectionComplete
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client.cpp
    functionUses: 4
    functionsReached:
    - WeaveConnection*::Close
    - WeaveConnection*::PeerAddr::ToString
    - ToString
    - SendReceiveInitRequest
    - strlen
    - printf
    - setCon
    - Close
    - ErrorStr
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: void
    signature: HandleConnectionComplete(WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:334,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:337,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:339,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:339,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/weave-bdx-client.cpp:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 348
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 348
    functionName: HandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/test-apps/weave-bdx-client.cpp
    functionUses: 2
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    - WeaveConnection*::Close
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: ~MessageMutator()
    functionSourceFile: /src/openweave-core/src/test-apps/PASEEngineTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~MessageMutator()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: TestWdmSubscriptionlessNotificationReceiver::GetInstance
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TestWdmSubscriptionlessNotificationReceiver
    signature: '* TestWdmSubscriptionlessNotificationReceiver::GetInstance ()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResourceIdentifier
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: TestWdmSubscriptionlessNotificationReceiver::TestWdmSubscriptionlessNotificationReceiver
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp
    functionUses: 0
    functionsReached:
    - ResourceIdentifier
    linkageType: ''
    returnType: void
    signature: TestWdmSubscriptionlessNotificationReceiver::TestWdmSubscriptionlessNotificationReceiver()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestATraitDataSink
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp:85,1
    - Dst: TestATraitDataSink
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp:86,1
    - Dst: TestATraitDataSink
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp:87,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp:91,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp:92,1
    - Dst: Add
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp:93,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp:97,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp:98,1
    - Dst: SubscriptionEngine::GetInstance
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - aExchangeMgr
    argTypes:
    - WeaveExchangeManager*
    constantsTouched: []
    func_position:
      end: 107
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 107
    functionName: TestWdmSubscriptionlessNotificationReceiver::Init
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp
    functionUses: 0
    functionsReached:
    - Add
    - SuccessOrExit
    - TestATraitDataSink
    - SubscriptionEngine::GetInstance
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: TestWdmSubscriptionlessNotificationReceiver::Init(WeaveExchangeManager
      *aExchangeMgr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestWdmSubscriptionlessNotificationReceiver*>
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp:114,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp:119,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp:128,1
    - Dst: TestWdmSubscriptionlessNotificationReceiver*::OnError
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp:132,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp:133,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp:137,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp:139,1
    - Dst: TestWdmSubscriptionlessNotificationReceiver*::OnTestComplete
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp:140,1
    - Dst: nl::Weave::Profiles::SubscriptionEngine::DefaultEventHandler
      Src: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp:144,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - aAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - SubscriptionEngine::EventID
    - SubscriptionEngine::InEventParam
    - SubscriptionEngine::OutEventParam
    constantsTouched: []
    func_position:
      end: 147
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 147
    functionName: TestWdmSubscriptionlessNotificationReceiver::EngineEventCallback
    functionSourceFile: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp
    functionUses: 0
    functionsReached:
    - TestWdmSubscriptionlessNotificationReceiver*::OnTestComplete
    - static_cast<TestWdmSubscriptionlessNotificationReceiver*>
    - nl::Weave::Profiles::SubscriptionEngine::DefaultEventHandler
    - WeaveLogDetail
    - TestWdmSubscriptionlessNotificationReceiver*::OnError
    linkageType: ''
    returnType: void
    signature: "TestWdmSubscriptionlessNotificationReceiver::EngineEventCallback (void
      * const aAppState,\n    SubscriptionEngine::EventID aEvent,\n    const SubscriptionEngine::InEventParam
      & aInParam, SubscriptionEngine::OutEventParam & aOutParam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:108,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:109,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:112,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:115,1
    - Dst: clear
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 120
    functionName: NetworkOptions::NetworkOptions
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: NetworkOptions::NetworkOptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseIPAddress
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:130,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:132,1
    - Dst: nl::Inet::IPAddress::IsIPv4
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:136,1
    - Dst: push_back
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:138,1
    - Dst: push_back
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:142,1
    - Dst: push_back
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:145,1
    - Dst: ParseIPAddress
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:151,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:153,1
    - Dst: push_back
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:158,1
    - Dst: ParseIPAddress
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:163,1
    - Dst: nl::Inet::IPAddress::IsIPv4
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:163,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:165,1
    - Dst: push_back
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:168,1
    - Dst: ParseIPAddress
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:174,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:176,1
    - Dst: push_back
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:179,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:189,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:191,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:202,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 207
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 207
    functionName: NetworkOptions::HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::IsIPv4
    - ParseIPAddress
    - ParseInt
    - push_back
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: NetworkOptions::HandleOption(const char *progName, OptionSet *optSet,
      int id, const char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 267
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 267
    functionName: WeaveNodeOptions::WeaveNodeOptions
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveNodeOptions::WeaveNodeOptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: WeaveNodeOptions::~WeaveNodeOptions()
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: WeaveNodeOptions::~WeaveNodeOptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseFabricId
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:280,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:282,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:288,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:290,1
    - Dst: ParseSubnetId
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:296,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:298,1
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:308,1
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:310,1
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:315,1
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:316,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:321,1
    - Dst: strerror
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:321,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:329,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 334
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 334
    functionName: WeaveNodeOptions::HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached:
    - ParseNodeId
    - fclose
    - PrintArgError
    - printf
    - ParseSubnetId
    - ParseFabricId
    - fopen
    - strerror
    linkageType: ''
    returnType: bool
    signature: WeaveNodeOptions::HandleOption(const char *progName, OptionSet *optSet,
      int id, const char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 389
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 389
    functionName: WeaveSecurityMode::WeaveSecurityMode
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WeaveSecurityMode::WeaveSecurityMode()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:414,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 419
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 419
    functionName: WeaveSecurityMode::HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: WeaveSecurityMode::HandleOption(const char *progName, OptionSet *optSet,
      int id, const char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 455
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 455
    functionName: WRMPOptions::WRMPOptions
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WRMPOptions::WRMPOptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 466
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 466
    functionName: WRMPOptions::GetWRMPConfig
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: nl::Weave::WRMPConfig
    signature: WRMPOptions::GetWRMPConfig() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:474,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:476,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:481,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:483,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:488,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:490,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:496,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 501
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 501
    functionName: WRMPOptions::HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseInt
    linkageType: ''
    returnType: bool
    signature: WRMPOptions::HandleOption(const char *progName, OptionSet *optSet,
      int id, const char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 556
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 556
    functionName: GroupKeyEncOptions::GroupKeyEncOptions
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: GroupKeyEncOptions::GroupKeyEncOptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::WeaveKeyId::MakeAppKeyId
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:566,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 570
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 570
    functionName: GroupKeyEncOptions::GetEncKeyId
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveKeyId::MakeAppKeyId
    linkageType: ''
    returnType: uint32_t
    signature: GroupKeyEncOptions::GetEncKeyId() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:578,1
    - Dst: nl::Weave::WeaveKeyId::IsValidKeyId
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:578,1
    - Dst: nl::Weave::WeaveKeyId::IsAppGroupKey
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:578,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:580,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:588,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:607,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:616,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:639,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:647,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:649,1
    - Dst: nl::Weave::WeaveKeyId::MakeEpochKeyId
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:652,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:658,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:660,1
    - Dst: nl::Weave::WeaveKeyId::MakeAppGroupMasterKeyId
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:663,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:668,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 673
      start: 572
    functionDepth: 3
    functionLinenumber: 572
    functionLinenumberEnd: 673
    functionName: GroupKeyEncOptions::HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::WeaveKeyId::MakeEpochKeyId
    - nl::Weave::WeaveKeyId::MakeAppGroupMasterKeyId
    - nl::Weave::WeaveKeyId::IsAppGroupKey
    - ParseInt
    - strlen
    - PrintArgError
    - nl::Weave::WeaveKeyId::IsValidKeyId
    linkageType: ''
    returnType: bool
    signature: GroupKeyEncOptions::HandleOption(const char *progName, OptionSet *optSet,
      int id, const char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 701
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 701
    functionName: GeneralSecurityOptions::GeneralSecurityOptions
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: GeneralSecurityOptions::GeneralSecurityOptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 706
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 706
    functionName: GeneralSecurityOptions::GetIdleSessionTimeout
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: GeneralSecurityOptions::GetIdleSessionTimeout() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 711
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 711
    functionName: GeneralSecurityOptions::GetSessionEstablishmentTimeout
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: GeneralSecurityOptions::GetSessionEstablishmentTimeout() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:718,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:720,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:725,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:727,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:732,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 737
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 737
    functionName: GeneralSecurityOptions::HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseInt
    linkageType: ''
    returnType: bool
    signature: GeneralSecurityOptions::HandleOption(const char *progName, OptionSet
      *optSet, int id, const char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 797
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 797
    functionName: ServiceDirClientOptions::ServiceDirClientOptions
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ServiceDirClientOptions::ServiceDirClientOptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseHostAndPort
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:809,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:809,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:812,1
    - Dst: strndup
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:815,1
    - Dst: ParseDNSOptions
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:821,1
    - Dst: ParseDNSOptions
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:827,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:835,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 840
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 840
    functionName: ServiceDirClientOptions::HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - strndup
    - PrintArgError
    - ParseHostAndPort
    - ParseDNSOptions
    linkageType: ''
    returnType: bool
    signature: ServiceDirClientOptions::HandleOption(const char *progName, OptionSet
      *optSet, int id, const char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:851,1
    - Dst: Write8
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:853,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:854,1
    - Dst: Write8
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:855,1
    - Dst: Write8
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:856,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:857,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 862
      start: 842
    functionDepth: 2
    functionLinenumber: 842
    functionLinenumberEnd: 862
    functionName: ServiceDirClientOptions::GetRootDirectoryEntry
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Write64
    - Write8
    - VerifyOrExit
    - memcpy
    - nl::Weave::Encoding::LittleEndian::Write16
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ServiceDirClientOptions::GetRootDirectoryEntry(uint8_t *buf, uint16_t
      bufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetRootDirectoryEntry
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - bufSize
    argTypes:
    - uint8_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 867
      start: 864
    functionDepth: 3
    functionLinenumber: 864
    functionLinenumberEnd: 867
    functionName: GetRootServiceDirectoryEntry
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached:
    - GetRootDirectoryEntry
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetRootServiceDirectoryEntry(uint8_t *buf, uint16_t bufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - ServiceConnectBeginArgs
    constantsTouched: []
    func_position:
      end: 894
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 894
    functionName: ServiceDirClientOptions::OverrideConnectArguments
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ServiceDirClientOptions::OverrideConnectArguments(ServiceConnectBeginArgs
      & args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OverrideConnectArguments
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - ::nl::Weave::Profiles::ServiceDirectory::ServiceConnectBeginArgs
    constantsTouched: []
    func_position:
      end: 899
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 899
    functionName: OverrideServiceConnectArguments
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached:
    - OverrideConnectArguments
    linkageType: ''
    returnType: void
    signature: OverrideServiceConnectArguments(::nl::Weave::Profiles::ServiceDirectory::ServiceConnectBeginArgs
      & args)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 947
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 947
    functionName: FaultInjectionOptions::FaultInjectionOptions
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: FaultInjectionOptions::FaultInjectionOptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:968,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:971,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:977,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:979,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:990,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:992,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:998,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1003
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 1003
    functionName: FaultInjectionOptions::HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached:
    - free
    - PrintArgError
    - ParseInt
    linkageType: ''
    returnType: bool
    signature: FaultInjectionOptions::HandleOption(const char *progName, OptionSet
      *optSet, int id, const char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:1013,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:1033,1
    - Dst: isspace
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:1038,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - ' inStr'
    - ' token'
    - ' tokenLen'
    - sepChars
    argTypes:
    - char*
    - char*
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 1044
      start: 1008
    functionDepth: 0
    functionLinenumber: 1008
    functionLinenumberEnd: 1044
    functionName: GetToken
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - isspace
    linkageType: ''
    returnType: bool
    signature: GetToken(const char * & inStr, const char * & token, size_t & tokenLen,
      const char * sepChars)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:1048,1
    - Dst: strncasecmp
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:1048,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - token
    - tokenLen
    - expectedStr
    argTypes:
    - char*
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 1049
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1049
    functionName: MatchToken
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - strncasecmp
    linkageType: ''
    returnType: bool
    signature: MatchToken(const char * token, size_t tokenLen, const char * expectedStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetToken
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:1061,1
    - Dst: MatchToken
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:1063,1
    - Dst: MatchToken
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:1067,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:1072,1
    - Dst: MatchToken
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:1076,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:1081,1
    - Dst: MatchToken
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:1085,1
    - Dst: MatchToken
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:1089,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:1095,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - progName
    - argName
    - arg
    - ' dnsOptions'
    argTypes:
    - char*
    - char*
    - char*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1101
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1101
    functionName: ParseDNSOptions
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 1
    functionsReached:
    - MatchToken
    - PrintArgError
    - GetToken
    linkageType: ''
    returnType: bool
    signature: ParseDNSOptions(const char * progName, const char *argName, const char
      * arg, uint8_t & dnsOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetworkOptions::LocalIPv6Addr::empty
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:1105,1
    - Dst: IsIPv6ULA
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:1107,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:1109,1
    - Dst: GlobalId
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:1114,1
    - Dst: IPv6InterfaceIdToWeaveNodeId
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:1116,1
    - Dst: InterfaceId
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:1116,1
    - Dst: Subnet
      Src: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp:1118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - progName
    - weaveOptions
    - networkOptions
    argTypes:
    - char*
    - WeaveNodeOptions
    - NetworkOptions
    constantsTouched: []
    func_position:
      end: 1121
      start: 1103
    functionDepth: 0
    functionLinenumber: 1103
    functionLinenumberEnd: 1121
    functionName: ResolveWeaveNetworkOptions
    functionSourceFile: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
    functionUses: 21
    functionsReached:
    - GlobalId
    - NetworkOptions::LocalIPv6Addr::empty
    - IPv6InterfaceIdToWeaveNodeId
    - Subnet
    - IsIPv6ULA
    - PrintArgError
    - InterfaceId
    linkageType: ''
    returnType: bool
    signature: ResolveWeaveNetworkOptions(const char *progName, WeaveNodeOptions &weaveOptions,
      NetworkOptions &networkOptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitToolCommon
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:102,1
    - Dst: SetSIGUSR1Handler
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:104,1
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:108,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:109,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:112,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:113,1
    - Dst: ResolveWeaveNetworkOptions
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:114,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:116,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:119,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:121,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:123,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:126,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:129,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:129,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:130,1
    - Dst: PrintNodeConfig
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:135,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:137,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:140,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:140,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:141,1
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:150,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:152,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:153,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:154,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:155,1
    - Dst: CancelExchange
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:157,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:158,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 160
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 160
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/weave-dd-client.cpp
    functionUses: 0
    functionsReached:
    - InitToolCommon
    - ShutdownSystemLayer
    - InitWeaveStack
    - printf
    - StartTimer
    - exit
    - ServiceNetwork
    - ParseArgsFromEnvVar
    - ResolveWeaveNetworkOptions
    - CancelExchange
    - ShutdownWeaveStack
    - ParseArgs
    - InitNetwork
    - PrintBriefUsage
    - Shutdown
    - ErrorStr
    - PrintNodeConfig
    - InitSystemLayer
    - SetSIGUSR1Handler
    - ShutdownNetwork
    - Init
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:164,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:173,1
    - Dst: SendIdentifyRequest
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:174,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - aSystemLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 184
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 184
    functionName: SendIdentifyRequest
    functionSourceFile: /src/openweave-core/src/test-apps/weave-dd-client.cpp
    functionUses: 2
    functionsReached:
    - printf
    - StartTimer
    - nl::Inet::IPAddress::FromString
    - SendIdentifyRequest
    linkageType: ''
    returnType: void
    signature: SendIdentifyRequest(System::Layer* aSystemLayer, void* aAppState, System::Error
      aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 199
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 199
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/weave-dd-client.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:205,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:211,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:223,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 230
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 230
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/test-apps/weave-dd-client.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseNodeId
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToString
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:236,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:237,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:238,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:239,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:240,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:241,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:242,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:243,1
    - Dst: CancelExchange
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:244,1
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/weave-dd-client.cpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - appState
    - nodeId
    - ' nodeAddr'
    - ' respMsg'
    argTypes:
    - void*
    - uint64_t
    - IPAddress
    - IdentifyResponseMessage
    constantsTouched: []
    func_position:
      end: 247
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 247
    functionName: HandleIdentifyResponse
    functionSourceFile: /src/openweave-core/src/test-apps/weave-dd-client.cpp
    functionUses: 0
    functionsReached:
    - Shutdown
    - printf
    - CancelExchange
    - ToString
    linkageType: ''
    returnType: void
    signature: HandleIdentifyResponse(void *appState, uint64_t nodeId, const IPAddress&
      nodeAddr, const IdentifyResponseMessage& respMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetVersion
      Src: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: TestMismatchedCTraitDataSource::Reset
    functionSourceFile: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.h
    functionUses: 0
    functionsReached:
    - SetVersion
    linkageType: ''
    returnType: void
    signature: Reset(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:173,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:175,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:175,1
    - Dst: ValidateWDMTag
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:177,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:178,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:180,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:181,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:188,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:189,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:191,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:191,1
    - Dst: ValidateWDMTag
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:193,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:194,1
    - Dst: TLVReader::EnterContainer
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:200,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:201,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:207,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:208,1
    - Dst: ValidateWDMTag
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:210,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:211,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:213,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:214,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:216,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:222,1
    - Dst: ValidateWDMTag
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:226,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:227,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:229,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:230,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:233,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:235,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:236,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:242,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:243,1
    - Dst: TLVReader::GetTag
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:247,1
    - Dst: va_arg
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:247,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:268,1
    - Dst: TLVReader::ExitContainer
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:271,1
    - Dst: va_end
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:274,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 51
    argCount: 5
    argNames:
    - aReader
    - aTag
    - aProfileId
    - aInstanceId
    - aPathLen
    argTypes:
    - TLVReader
    - uint64_t
    - uint32_t
    - uint64_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 277
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 277
    functionName: ValidatePath
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - va_end
    - TLVReader::Next
    - TLVReader::GetType
    - va_start
    - VerifyOrExit
    - va_arg
    - TLVReader::EnterContainer
    - TLVReader::ExitContainer
    - ValidateWDMTag
    - TLVReader::GetTag
    - SuccessOrExit
    - TLVReader::Get
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "ValidatePath(TLVReader &aReader,\n                                const
      uint64_t &aTag,\n                                uint32_t aProfileId,\n                                const
      uint64_t &aInstanceId,\n                                uint32_t aPathLen,\n
      \                               ...)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - aResponderId
    - aStatus
    - aTxnId
    argTypes:
    - uint64_t
    - StatusReport
    - uint16_t
    constantsTouched: []
    func_position:
      end: 297
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 297
    functionName: DMTestClient::ViewConfirm
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ViewConfirm(const uint64_t &aResponderId, StatusReport &aStatus, uint16_t
      aTxnId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:303,1
    - Dst: Store
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:305,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - aResponderId
    - aDataList
    - aTxnId
    argTypes:
    - uint64_t
    - ReferencedTLVData
    - uint16_t
    constantsTouched: []
    func_position:
      end: 313
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 313
    functionName: DMTestClient::ViewConfirm
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - printf
    - Store
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: ViewConfirm(const uint64_t &aResponderId, ReferencedTLVData &aDataList,
      uint16_t aTxnId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StatusReport::success
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:319,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:320,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - aResponderId
    - aStatus
    - aTxnId
    argTypes:
    - uint64_t
    - StatusReport
    - uint16_t
    constantsTouched: []
    func_position:
      end: 328
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 328
    functionName: DMTestClient::UpdateConfirm
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - printf
    - StatusReport::success
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UpdateConfirm(const uint64_t &aResponderId, StatusReport &aStatus,
      uint16_t aTxnId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aPeerNodeId
    - aReport
    argTypes:
    - uint64_t
    - StatusReport
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: DMTestClient::IncompleteIndication
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: IncompleteIndication(const uint64_t &aPeerNodeId, StatusReport &aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - aResponderId
    - aStatus
    - aTxnId
    argTypes:
    - uint64_t
    - StatusReport
    - uint16_t
    constantsTouched: []
    func_position:
      end: 349
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 349
    functionName: DMTestClient::SubscribeConfirm
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: SubscribeConfirm(const uint64_t &aResponderId, StatusReport &aStatus,
      uint16_t aTxnId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - aResponderId
    - aTopicId
    - aTxnId
    argTypes:
    - uint64_t
    - TopicIdentifier
    - uint16_t
    constantsTouched: []
    func_position:
      end: 362
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 362
    functionName: DMTestClient::SubscribeConfirm
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscribeConfirm(const uint64_t &aResponderId,\n                                 const
      TopicIdentifier &aTopicId,\n                                 uint16_t aTxnId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:371,1
    - Dst: Store
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:375,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:376,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:385,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - aResponderId
    - aTopicId
    - aDataList
    - aTxnId
    argTypes:
    - uint64_t
    - TopicIdentifier
    - ReferencedTLVData
    - uint16_t
    constantsTouched: []
    func_position:
      end: 388
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 388
    functionName: DMTestClient::SubscribeConfirm
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - SuccessOrExit
    - printf
    - ErrorStr
    - Store
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: "SubscribeConfirm(const uint64_t &aResponderId,\n                                 const
      TopicIdentifier &aTopicId,\n                                 ReferencedTLVData
      &aDataList,\n                                 uint16_t aTxnId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - aPublisherId
    - aTopicId
    - aReport
    argTypes:
    - uint64_t
    - TopicIdentifier
    - StatusReport
    constantsTouched: []
    func_position:
      end: 395
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 395
    functionName: DMTestClient::UnsubscribeIndication
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: UnsubscribeIndication(const uint64_t &aPublisherId, const TopicIdentifier
      &aTopicId, StatusReport &aReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:401,1
    - Dst: StatusReport::success
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:403,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:404,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - aResponderId
    - aTopicId
    - aStatus
    - aTxnId
    argTypes:
    - uint64_t
    - TopicIdentifier
    - StatusReport
    - uint16_t
    constantsTouched: []
    func_position:
      end: 415
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 415
    functionName: DMTestClient::CancelSubscriptionConfirm
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - printf
    - StatusReport::success
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: CancelSubscriptionConfirm(const uint64_t &aResponderId, const TopicIdentifier
      &aTopicId, StatusReport &aStatus, uint16_t aTxnId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:421,1
    - Dst: Store
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - aTopicId
    - aDataList
    argTypes:
    - TopicIdentifier
    - ReferencedTLVData
    constantsTouched: []
    func_position:
      end: 431
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 431
    functionName: DMTestClient::NotifyIndication
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - printf
    - Store
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: NotifyIndication(const TopicIdentifier &aTopicId, ReferencedTLVData
      &aDataList)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aTransport
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 453
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 453
    functionName: DMClientTester::DMClientTester
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DMClientTester(uint8_t aTransport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnterTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:463,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:465,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:466,1
    - Dst: ExitTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 469
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 469
    functionName: DMClientTester::Test_InitialState
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - EnterTest
    - ExitTest
    - assert
    linkageType: ''
    returnType: void
    signature: Test_InitialState()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnterTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:475,1
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:479,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:483,1
    - Dst: StartDataList
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:485,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:486,1
    - Dst: StartDataListElement
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:488,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:489,1
    - Dst: EncodePath
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:491,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:492,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:496,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:497,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:499,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:499,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:500,1
    - Dst: TLVWriter::Put
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:502,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:502,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:503,1
    - Dst: EndDataListElement
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:505,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:506,1
    - Dst: EndList
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:508,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:509,1
    - Dst: ReferencedTLVData::init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:513,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:513,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:514,1
    - Dst: DMTestClient::mDatabase::Store
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:516,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:517,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:519,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:520,1
    - Dst: ExitTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 524
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 524
    functionName: DMClientTester::Test_DBStore
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - ReferencedTLVData::ReferencedTLVData
    - assert
    - StartDataListElement
    - EndDataListElement
    - EnterTest
    - ContextTag
    - DMTestClient::mDatabase::Store
    - EncodePath
    - TLVWriter::GetLengthWritten
    - ReferencedTLVData::init
    - ExitTest
    - EndList
    - SuccessOrExit
    - TLVWriter::Init
    - TLVWriter::Put
    - StartDataList
    linkageType: ''
    returnType: void
    signature: Test_DBStore()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnterTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:530,1
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:534,1
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:537,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:547,1
    - Dst: StartPathList
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:549,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:550,1
    - Dst: EncodePath
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:552,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:552,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:553,1
    - Dst: EndList
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:555,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:556,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:558,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:559,1
    - Dst: ReferencedTLVData::init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:561,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:561,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:562,1
    - Dst: ReferencedTLVData::init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:566,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:567,1
    - Dst: DMTestClient::mDatabase::Retrieve
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:571,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:572,1
    - Dst: OpenDataList
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:576,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:577,1
    - Dst: TLVReader::Next
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:579,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:580,1
    - Dst: OpenDataListElement
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:582,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:583,1
    - Dst: ValidatePath
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:585,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:586,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:590,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:591,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:593,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:595,1
    - Dst: CheckWDMTag
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:595,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:597,1
    - Dst: TLVReader::GetType
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:597,1
    - Dst: TLVReader::Get
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:599,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:600,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:601,1
    - Dst: CloseDataListElement
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:603,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:604,1
    - Dst: CloseList
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:606,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:607,1
    - Dst: ExitTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 611
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 611
    functionName: DMClientTester::Test_DBRetrieve
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - TLVReader::Next
    - DMTestClient::mDatabase::Retrieve
    - EnterTest
    - ValidatePath
    - ReferencedTLVData::init
    - CloseDataListElement
    - TLVReader::Get
    - CloseList
    - OpenDataListElement
    - EncodePath
    - TLVWriter::GetLengthWritten
    - ExitTest
    - ReferencedTLVData::ReferencedTLVData
    - TLVReader::GetType
    - CheckWDMTag
    - EndList
    - assert
    - StartPathList
    - TLVWriter::Finalize
    - ContextTag
    - OpenDataList
    - SuccessOrExit
    - TLVWriter::Init
    linkageType: ''
    returnType: void
    signature: Test_DBRetrieve()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnterTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:617,1
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:621,1
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:624,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:628,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:629,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:633,1
    - Dst: StartPathList
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:635,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:636,1
    - Dst: EncodePath
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:638,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:639,1
    - Dst: EndList
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:641,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:642,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:644,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:645,1
    - Dst: ReferencedTLVData::init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:647,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:647,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:648,1
    - Dst: ReferencedTLVData::init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:652,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:653,1
    - Dst: DMTestClient::mDatabase::Retrieve
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:657,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:658,1
    - Dst: DMTestClient::mDatabase::Store
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:669,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:670,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:672,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:673,1
    - Dst: ExitTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 677
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 677
    functionName: DMClientTester::Test_DBRetrieveAndStore
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - ReferencedTLVData::ReferencedTLVData
    - StartPathList
    - TLVWriter::Finalize
    - DMTestClient::mDatabase::Retrieve
    - EnterTest
    - DMTestClient::mDatabase::Store
    - EncodePath
    - TLVWriter::GetLengthWritten
    - ReferencedTLVData::init
    - ExitTest
    - EndList
    - SuccessOrExit
    - TLVWriter::Init
    - assert
    linkageType: ''
    returnType: void
    signature: Test_DBRetrieveAndStore()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:686,1
    - Dst: EnterTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:688,1
    - Dst: DMTestClient::Init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:692,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:693,1
    - Dst: DMTestClient::BindRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:695,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:696,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:700,1
    - Dst: StartPathList
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:702,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:703,1
    - Dst: EncodePath
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:706,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:707,1
    - Dst: EncodePath
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:710,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:711,1
    - Dst: EndList
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:713,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:714,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:716,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:717,1
    - Dst: ReferencedTLVData::init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:719,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:719,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:720,1
    - Dst: DMTestClient::ViewRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:728,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:729,1
    - Dst: DriveTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:733,1
    - Dst: DMTestClient::ViewRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:736,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:737,1
    - Dst: DriveTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:741,1
    - Dst: ExitTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 745
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 745
    functionName: DMClientTester::Test_View
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - ReferencedTLVData::ReferencedTLVData
    - DMTestClient::Init
    - DriveTest
    - StartPathList
    - TLVWriter::Finalize
    - DMTestClient::ViewRequest
    - EnterTest
    - EncodePath
    - DMTestClient::BindRequest
    - TLVWriter::GetLengthWritten
    - ReferencedTLVData::init
    - ExitTest
    - EndList
    - SuccessOrExit
    - TLVWriter::Init
    linkageType: ''
    returnType: void
    signature: Test_View(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:753,1
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:756,1
    - Dst: EnterTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:758,1
    - Dst: DMTestClient::Init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:762,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:763,1
    - Dst: DMTestClient::BindRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:765,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:766,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:770,1
    - Dst: StartPathList
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:772,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:773,1
    - Dst: EncodePath
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:776,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:776,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:777,1
    - Dst: EncodePath
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:780,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:780,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:781,1
    - Dst: EndList
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:783,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:784,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:786,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:787,1
    - Dst: ReferencedTLVData::init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:789,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:789,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:790,1
    - Dst: ReferencedTLVData::init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:799,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:800,1
    - Dst: DMTestClient::mDatabase::Retrieve
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:802,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:803,1
    - Dst: DMTestClient::UpdateRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:813,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:814,1
    - Dst: DMTestClient::UpdateRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:818,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:819,1
    - Dst: DMTestClient::UpdateRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:823,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:824,1
    - Dst: DMTestClient::UpdateRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:829,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:830,1
    - Dst: DriveTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:837,1
    - Dst: DMTestClient::ViewRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:841,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:842,1
    - Dst: DriveTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:847,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:851,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:852,1
    - Dst: ExitTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:856,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 857
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 857
    functionName: DMClientTester::Test_Update
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - DMTestClient::mDatabase::Retrieve
    - EnterTest
    - ReferencedTLVData::init
    - DMTestClient::Init
    - DMTestClient::ViewRequest
    - EncodePath
    - TLVWriter::GetLengthWritten
    - ExitTest
    - ReferencedTLVData::ReferencedTLVData
    - DriveTest
    - EndList
    - assert
    - DMTestClient::UpdateRequest
    - StartPathList
    - TLVWriter::Finalize
    - ContextTag
    - DMTestClient::BindRequest
    - SuccessOrExit
    - TLVWriter::Init
    linkageType: ''
    returnType: void
    signature: Test_Update(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnterTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:867,1
    - Dst: DMTestClient::Init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:871,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:872,1
    - Dst: DMTestClient::BindRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:874,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:875,1
    - Dst: InstallSubscription
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:883,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:884,1
    - Dst: DMTestClient::CancelSubscriptionRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:888,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:889,1
    - Dst: DriveTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:895,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:897,1
    - Dst: DMTestClient::HasSubscription
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:897,1
    - Dst: ExitTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:901,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 902
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 902
    functionName: DMClientTester::Test_CancelNonSubscription
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - DMTestClient::Init
    - DriveTest
    - DMTestClient::HasSubscription
    - EnterTest
    - DMTestClient::BindRequest
    - InstallSubscription
    - ExitTest
    - SuccessOrExit
    - assert
    - DMTestClient::CancelSubscriptionRequest
    linkageType: ''
    returnType: void
    signature: Test_CancelNonSubscription(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:910,1
    - Dst: EnterTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:914,1
    - Dst: DMTestClient::Init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:918,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:919,1
    - Dst: DMTestClient::BindRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:921,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:922,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:924,1
    - Dst: StartPathList
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:926,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:927,1
    - Dst: EncodePath
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:930,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:930,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:931,1
    - Dst: EndList
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:933,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:934,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:936,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:937,1
    - Dst: ReferencedTLVData::init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:939,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:939,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:940,1
    - Dst: DMTestClient::SubscribeRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:942,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:943,1
    - Dst: DMTestClient::CancelSubscriptionRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:945,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:946,1
    - Dst: DriveTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:950,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:952,1
    - Dst: DMTestClient::HasSubscription
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:952,1
    - Dst: DMTestClient::SubscribeRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:954,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:955,1
    - Dst: DMTestClient::CancelSubscriptionRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:957,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:958,1
    - Dst: DriveTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:962,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:964,1
    - Dst: DMTestClient::HasSubscription
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:964,1
    - Dst: DMTestClient::SubscribeRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:966,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:967,1
    - Dst: DriveTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:971,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:973,1
    - Dst: DMTestClient::HasSubscription
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:973,1
    - Dst: DMTestClient::CancelSubscriptionRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:975,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:976,1
    - Dst: DriveTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:980,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:982,1
    - Dst: DMTestClient::HasSubscription
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:982,1
    - Dst: DMTestClient::CancelTransactionRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:984,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:985,1
    - Dst: DMTestClient::SubscribeRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:990,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:991,1
    - Dst: DriveTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:997,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:999,1
    - Dst: DMTestClient::HasSubscription
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:999,1
    - Dst: DriveTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1005,1
    - Dst: DMTestClient::CancelSubscriptionRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1009,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1010,1
    - Dst: DriveTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1016,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1018,1
    - Dst: DMTestClient::HasSubscription
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1018,1
    - Dst: ExitTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 1024
    functionName: DMClientTester::Test_SubscribeToTopic
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - EnterTest
    - ReferencedTLVData::init
    - DMTestClient::Init
    - DMTestClient::HasSubscription
    - EncodePath
    - TLVWriter::GetLengthWritten
    - DMTestClient::SubscribeRequest
    - ExitTest
    - ReferencedTLVData::ReferencedTLVData
    - DriveTest
    - EndList
    - assert
    - DMTestClient::CancelTransactionRequest
    - DMTestClient::CancelSubscriptionRequest
    - StartPathList
    - TLVWriter::Finalize
    - ContextTag
    - DMTestClient::BindRequest
    - SuccessOrExit
    - TLVWriter::Init
    linkageType: ''
    returnType: void
    signature: Test_SubscribeToTopic(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnterTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1033,1
    - Dst: DMTestClient::Init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1037,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1038,1
    - Dst: DMTestClient::Init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1040,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1041,1
    - Dst: DMTestClient::BindRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1043,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1044,1
    - Dst: DMTestClient::BindRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1045,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1046,1
    - Dst: DMTestClient::SubscribeRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1050,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1051,1
    - Dst: DriveTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1055,1
    - Dst: DMTestClient::SubscribeRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1057,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1058,1
    - Dst: DriveTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1064,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1066,1
    - Dst: DMTestClient::HasSubscription
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1066,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1067,1
    - Dst: DMTestClient::HasSubscription
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1067,1
    - Dst: DriveTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1073,1
    - Dst: DMTestClient::CancelSubscriptionRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1077,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1078,1
    - Dst: DMTestClient::CancelSubscriptionRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1080,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1081,1
    - Dst: DriveTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1087,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1089,1
    - Dst: DMTestClient::HasSubscription
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1089,1
    - Dst: assert
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1090,1
    - Dst: DMTestClient::HasSubscription
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1090,1
    - Dst: ExitTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1094,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1026
    functionDepth: 1
    functionLinenumber: 1026
    functionLinenumberEnd: 1095
    functionName: DMClientTester::Test_MultipleClients
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - DMTestClient::Init
    - DriveTest
    - DMTestClient::HasSubscription
    - EnterTest
    - DMTestClient::BindRequest
    - ExitTest
    - DMTestClient::SubscribeRequest
    - SuccessOrExit
    - assert
    - DMTestClient::CancelSubscriptionRequest
    linkageType: ''
    returnType: void
    signature: Test_MultipleClients(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1105,1
    - Dst: EnterTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1107,1
    - Dst: DMTestClient::Init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1111,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1112,1
    - Dst: DMTestClient::BindRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1114,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1115,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1119,1
    - Dst: StartPathList
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1121,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1122,1
    - Dst: EncodePath
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1124,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1125,1
    - Dst: EndList
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1127,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1128,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1130,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1131,1
    - Dst: ReferencedTLVData::init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1133,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1133,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1134,1
    - Dst: DMTestClient::ViewRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1142,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1143,1
    - Dst: DriveTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1147,1
    - Dst: ExitTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1152
    functionName: DMClientTester::Test_CloseConnection
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - ReferencedTLVData::ReferencedTLVData
    - DMTestClient::Init
    - DriveTest
    - StartPathList
    - TLVWriter::Finalize
    - DMTestClient::ViewRequest
    - EnterTest
    - EncodePath
    - DMTestClient::BindRequest
    - TLVWriter::GetLengthWritten
    - ReferencedTLVData::init
    - ExitTest
    - EndList
    - SuccessOrExit
    - TLVWriter::Init
    linkageType: ''
    returnType: void
    signature: Test_CloseConnection(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReferencedTLVData::ReferencedTLVData
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1160,1
    - Dst: EnterTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1162,1
    - Dst: DMTestClient::Init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1166,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1167,1
    - Dst: DMTestClient::BindRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1169,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1170,1
    - Dst: TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1174,1
    - Dst: StartPathList
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1176,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1177,1
    - Dst: EncodePath
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1179,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1180,1
    - Dst: EndList
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1182,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1183,1
    - Dst: TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1185,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1186,1
    - Dst: ReferencedTLVData::init
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1188,1
    - Dst: TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1188,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1189,1
    - Dst: DMTestClient::ViewRequest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1197,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1198,1
    - Dst: DriveTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1202,1
    - Dst: ExitTest
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1154
    functionDepth: 1
    functionLinenumber: 1154
    functionLinenumberEnd: 1207
    functionName: DMClientTester::Test_NoResponse
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - ReferencedTLVData::ReferencedTLVData
    - DMTestClient::Init
    - DriveTest
    - StartPathList
    - TLVWriter::Finalize
    - DMTestClient::ViewRequest
    - EnterTest
    - EncodePath
    - DMTestClient::BindRequest
    - TLVWriter::GetLengthWritten
    - ReferencedTLVData::init
    - ExitTest
    - EndList
    - SuccessOrExit
    - TLVWriter::Init
    linkageType: ''
    returnType: void
    signature: Test_NoResponse(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1211,1
    - Dst: DMClientTester::Test_InitialState
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1220,1
    - Dst: DMClientTester::Test_DBStore
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1226,1
    - Dst: DMClientTester::Test_DBRetrieve
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1232,1
    - Dst: DMClientTester::Test_DBRetrieveAndStore
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1238,1
    - Dst: DMClientTester::Test_View
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1258,1
    - Dst: DMClientTester::Test_View
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1264,1
    - Dst: DMClientTester::Test_View
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1272,1
    - Dst: DMClientTester::Test_Update
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1280,1
    - Dst: DMClientTester::Test_Update
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1286,1
    - Dst: DMClientTester::Test_Update
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1292,1
    - Dst: DMClientTester::Test_CancelNonSubscription
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1302,1
    - Dst: DMClientTester::Test_CancelNonSubscription
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1308,1
    - Dst: DMClientTester::Test_CancelNonSubscription
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1314,1
    - Dst: DMClientTester::Test_SubscribeToTopic
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1322,1
    - Dst: DMClientTester::Test_SubscribeToTopic
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1329,1
    - Dst: DMClientTester::Test_SubscribeToTopic
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1335,1
    - Dst: DMClientTester::Test_MultipleClients
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1343,1
    - Dst: DMClientTester::Test_MultipleClients
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1349,1
    - Dst: DMClientTester::Test_MultipleClients
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1355,1
    - Dst: DMClientTester::Test_CloseConnection
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1365,1
    - Dst: DMClientTester::Test_NoResponse
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1371,1
    - Dst: DMClientTester::Test_NoResponse
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1377,1
    - Dst: DMClientTester::Test_NoResponse
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1209
    functionDepth: 2
    functionLinenumber: 1209
    functionLinenumberEnd: 1386
    functionName: DMClientTester::Run
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - DMClientTester::Test_DBRetrieveAndStore
    - DMClientTester::Test_InitialState
    - DMClientTester::Test_NoResponse
    - printf
    - DMClientTester::Test_View
    - DMClientTester::Test_Update
    - DMClientTester::Test_CancelNonSubscription
    - DMClientTester::Test_MultipleClients
    - DMClientTester::Test_SubscribeToTopic
    - DMClientTester::Test_DBStore
    - DMClientTester::Test_DBRetrieve
    - DMClientTester::Test_CloseConnection
    linkageType: ''
    returnType: void
    signature: Run(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintBriefUsage
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1397,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1398,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1401,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1402,1
    - Dst: ResolveWeaveNetworkOptions
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1403,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1405,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1408,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1410,1
    - Dst: InitWeaveStack
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1412,1
    - Dst: SelectNodeAddress
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1423,1
    - Dst: PrintNodeConfig
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1425,1
    - Dst: DMClientTester::Run
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1427,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1429,1
    - Dst: ShutdownWeaveStack
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1431,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1432,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1433,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 1436
      start: 1393
    functionDepth: 3
    functionLinenumber: 1393
    functionLinenumberEnd: 1436
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - InitSystemLayer
    - ShutdownWeaveStack
    - ParseArgs
    - exit
    - ShutdownSystemLayer
    - DMClientTester::Run
    - InitNetwork
    - ParseArgsFromEnvVar
    - InitWeaveStack
    - PrintBriefUsage
    - ShutdownNetwork
    - printf
    - SelectNodeAddress
    - ResolveWeaveNetworkOptions
    - PrintNodeConfig
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseIPAddress
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1443,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1445,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1450,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1452,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1457,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1462
      start: 1438
    functionDepth: 0
    functionLinenumber: 1438
    functionLinenumberEnd: 1462
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseIPAddress
    - ParseInt
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1470,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1474,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 1482
      start: 1464
    functionDepth: 0
    functionLinenumber: 1464
    functionLinenumberEnd: 1482
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - PrintArgError
    - ParseNodeId
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1487,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - msgLayer
    - con
    argTypes:
    - WeaveMessageLayer*
    - WeaveConnection*
    constantsTouched: []
    func_position:
      end: 1492
      start: 1484
    functionDepth: 0
    functionLinenumber: 1484
    functionLinenumberEnd: 1492
    functionName: HandleConnectionReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 3
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    linkageType: ''
    returnType: void
    signature: HandleConnectionReceived(WeaveMessageLayer *msgLayer, WeaveConnection
      *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1499,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - sm
    - con
    - reqState
    - sessionKeyId
    - peerNodeId
    - encType
    argTypes:
    - WeaveSecurityManager*
    - WeaveConnection*
    - void*
    - uint16_t
    - uint64_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1502
      start: 1494
    functionDepth: 0
    functionLinenumber: 1494
    functionLinenumberEnd: 1502
    functionName: HandleSecureSessionEstablished
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    linkageType: ''
    returnType: void
    signature: HandleSecureSessionEstablished(WeaveSecurityManager *sm, WeaveConnection
      *con, void *reqState, uint16_t sessionKeyId, uint64_t peerNodeId, uint8_t encType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1510,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1511,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1515,1
    - Dst: nl::StatusReportStr
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1515,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1517,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1517,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - sm
    - con
    - reqState
    - localErr
    - peerNodeId
    - statusReport
    argTypes:
    - WeaveSecurityManager*
    - WeaveConnection*
    - void*
    - WEAVE_ERROR
    - uint64_t
    - StatusReport*
    constantsTouched: []
    func_position:
      end: 1518
      start: 1504
    functionDepth: 1
    functionLinenumber: 1504
    functionLinenumberEnd: 1518
    functionName: HandleSecureSessionError
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 0
    functionsReached:
    - WeaveConnection*::Close
    - nl::StatusReportStr
    - WeaveConnection*::PeerAddr::ToString
    - printf
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleSecureSessionError(WeaveSecurityManager *sm, WeaveConnection
      *con, void *reqState, WEAVE_ERROR localErr, uint64_t peerNodeId, StatusReport
      *statusReport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveConnection*::PeerAddr::ToString
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1524,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1527,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1529,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1529,1
    - Dst: WeaveConnection*::Close
      Src: /src/openweave-core/src/test-apps/TestDataManagement.cpp:1531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - con
    - conErr
    argTypes:
    - WeaveConnection*
    - WEAVE_ERROR
    constantsTouched: []
    func_position:
      end: 1532
      start: 1520
    functionDepth: 0
    functionLinenumber: 1520
    functionLinenumberEnd: 1532
    functionName: HandleConnectionClosed
    functionSourceFile: /src/openweave-core/src/test-apps/TestDataManagement.cpp
    functionUses: 2
    functionsReached:
    - WeaveConnection*::PeerAddr::ToString
    - printf
    - WeaveConnection*::Close
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleConnectionClosed(WeaveConnection *con, WEAVE_ERROR conErr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveMessageLayer*::DecodeMessage
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: nl::Weave::WeaveMessageLayerTestObject
    functionSourceFile: /src/openweave-core/src/test-apps/TestMsgEnc.cpp
    functionUses: 0
    functionsReached:
    - WeaveMessageLayer*::DecodeMessage
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: WeaveMessageLayerTestObject
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveFabricState::WeaveFabricState
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:134,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:150,1
    - Dst: ParseIPAddress
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:150,1
    - Dst: WeaveFabricState::Init
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:153,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:154,1
    - Dst: IPAddress::InterfaceId
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:156,1
    - Dst: IPAddress::GlobalId
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:158,1
    - Dst: IPAddress::Subnet
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:159,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:165,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:166,1
    - Dst: WeaveFabricState::AllocSessionKey
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:169,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:170,1
    - Dst: WeaveFabricState::SetSessionKey
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:172,1
    - Dst: WeaveFabricState::AllocSessionKey
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:175,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:176,1
    - Dst: WeaveFabricState::SetSessionKey
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:178,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:197,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:198,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:203,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:203,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:204,1
    - Dst: WeaveMessageInfo::Clear
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:207,1
    - Dst: WeaveMessageLayer::EncodeMessage
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:225,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:226,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:230,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:237,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:238,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:238,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:238,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:250,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:251,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:252,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:253,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:254,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:258,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:264,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write64
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:265,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:273,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write32
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:274,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:278,1
    - Dst: HMACSHA1::Begin
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:283,1
    - Dst: HMACSHA1::AddData
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:284,1
    - Dst: HMACSHA1::Finish
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:285,1
    - Dst: AES128CTRMode::SetKey
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:289,1
    - Dst: AES128CTRMode::SetWeaveMessageCounter
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:290,1
    - Dst: AES128CTRMode::EncryptData
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:291,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:294,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:295,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:299,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:299,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:299,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:302,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:302,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:303,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:303,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:303,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:317,1
    - Dst: WeaveMessageLayerTestObject::DecodeMessage
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:321,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:322,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:327,1
    - Dst: DumpMemoryCStyle
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:328,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:332,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:333,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:333,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:337,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 87
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 340
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 340
    functionName: WeaveMessageEncryption_Test1
    functionSourceFile: /src/openweave-core/src/test-apps/TestMsgEnc.cpp
    functionUses: 0
    functionsReached:
    - IPAddress::GlobalId
    - NL_TEST_ASSERT
    - WeaveMessageLayerTestObject::DecodeMessage
    - WeaveMessageInfo::Clear
    - printf
    - WeaveFabricState::AllocSessionKey
    - WeaveFabricState::Init
    - HMACSHA1::Finish
    - nl::Weave::System::PacketBuffer::New
    - DumpMemoryCStyle
    - AES128CTRMode::SetKey
    - IPAddress::InterfaceId
    - nl::Weave::System::PacketBuffer::Free
    - HMACSHA1::AddData
    - AES128CTRMode::SetWeaveMessageCounter
    - nl::Weave::Encoding::LittleEndian::Write32
    - AES128CTRMode::EncryptData
    - HMACSHA1::Begin
    - PacketBuffer*::SetDataLength
    - IPAddress::Subnet
    - WeaveFabricState::WeaveFabricState
    - nl::Weave::Encoding::LittleEndian::Write16
    - WeaveMessageLayer::EncodeMessage
    - PacketBuffer*::DataLength
    - memcmp
    - nl::Weave::Encoding::LittleEndian::Write64
    - ParseIPAddress
    - memcpy
    - WeaveFabricState::SetSessionKey
    - PacketBuffer*::Start
    linkageType: ''
    returnType: void
    signature: WeaveMessageEncryption_Test1(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_DEF
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:346,1
    - Dst: NL_TEST_SENTINEL
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:347,1
    - Dst: tcpip_init
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:356,1
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:359,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:361,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestMsgEnc.cpp:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 364
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 364
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestMsgEnc.cpp
    functionUses: 0
    functionsReached:
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    - NL_TEST_DEF
    - tcpip_init
    - NL_TEST_SENTINEL
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: BindingTestDriver::BindingTestDriver
    functionSourceFile: /src/openweave-core/src/test-apps/TestBinding.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BindingTestDriver()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:343,1
    - Dst: strcasecmp
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:347,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:353,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:358,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:360,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:365,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:367,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:372,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:374,1
    - Dst: ParseInt
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:382,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:384,1
    - Dst: ParseDestAddress
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:406,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:408,1
    - Dst: ParseDNSOptions
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:414,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:421,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 71
    argCount: 5
    argNames:
    - progName
    - optSet
    - id
    - name
    - arg
    argTypes:
    - char*
    - OptionSet*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 426
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 426
    functionName: HandleOption
    functionSourceFile: /src/openweave-core/src/test-apps/TestBinding.cpp
    functionUses: 0
    functionsReached:
    - ParseInt
    - ParseDestAddress
    - PrintArgError
    - strcasecmp
    - ParseDNSOptions
    linkageType: ''
    returnType: bool
    signature: HandleOption(const char *progName, OptionSet *optSet, int id, const
      char *name, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:432,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:438,1
    - Dst: ParseNodeId
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:450,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:452,1
    - Dst: ParseDestAddress
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:456,1
    - Dst: PrintArgError
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:458,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - progName
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 463
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 463
    functionName: HandleNonOptionArgs
    functionSourceFile: /src/openweave-core/src/test-apps/TestBinding.cpp
    functionUses: 0
    functionsReached:
    - ParseDestAddress
    - PrintArgError
    - ParseNodeId
    linkageType: ''
    returnType: bool
    signature: HandleNonOptionArgs(const char *progName, int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseHostAndPort
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:469,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:469,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:481,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - destAddr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 485
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 485
    functionName: ParseDestAddress
    functionSourceFile: /src/openweave-core/src/test-apps/TestBinding.cpp
    functionUses: 6
    functionsReached:
    - strlen
    - ParseHostAndPort
    - memcpy
    - memset
    linkageType: ''
    returnType: bool
    signature: ParseDestAddress(const char *destAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BindingTestDriver::BindingTestDriver
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:497,1
    - Dst: BindingTestDriver*::Start
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:498,1
    - Dst: BindingTestDriver::BindingTestDriver
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:503,1
    - Dst: BindingTestDriver*::Start
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 508
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 508
    functionName: StartTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestBinding.cpp
    functionUses: 2
    functionsReached:
    - BindingTestDriver::BindingTestDriver
    - BindingTestDriver*::Start
    linkageType: ''
    returnType: void
    signature: StartTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BindingTestDriver::DoStart
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:514,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - startDelay
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 520
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 520
    functionName: BindingTestDriver::Start
    functionSourceFile: /src/openweave-core/src/test-apps/TestBinding.cpp
    functionUses: 0
    functionsReached:
    - BindingTestDriver::DoStart
    - StartTimer
    linkageType: ''
    returnType: void
    signature: BindingTestDriver::Start(uint32_t startDelay)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BindingTestDriver*::DoStart
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 526
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 526
    functionName: BindingTestDriver::AsyncDoStart
    functionSourceFile: /src/openweave-core/src/test-apps/TestBinding.cpp
    functionUses: 0
    functionsReached:
    - BindingTestDriver*::DoStart
    linkageType: ''
    returnType: void
    signature: BindingTestDriver::AsyncDoStart(System::Layer* aLayer, void* aAppState,
      System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewBinding
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:534,1
    - Dst: BindingTestDriver::Failed
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:537,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:541,1
    - Dst: GetState
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:541,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:542,1
    - Dst: IsReady
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:542,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:543,1
    - Dst: IsPreparing
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:543,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:544,1
    - Dst: CanBePrepared
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:544,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:546,1
    - Dst: ScheduleWork
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:550,1
    - Dst: BindingTestDriver::PrepareBinding
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:554,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 556
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 556
    functionName: BindingTestDriver::DoStart
    functionSourceFile: /src/openweave-core/src/test-apps/TestBinding.cpp
    functionUses: 1
    functionsReached:
    - ScheduleWork
    - NewBinding
    - BindingTestDriver::Failed
    - VerifyOrQuit
    - IsReady
    - BindingTestDriver::PrepareBinding
    - GetState
    - CanBePrepared
    - IsPreparing
    linkageType: ''
    returnType: void
    signature: BindingTestDriver::DoStart()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:562,1
    - Dst: CanBePrepared
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:562,1
    - Dst: BeginConfiguration
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:565,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:567,1
    - Dst: GetState
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:567,1
    - Dst: Binding::Configuration::Target_NodeId
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:570,1
    - Dst: Binding::Configuration::TargetAddress_IP
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:575,1
    - Dst: Binding::Configuration::Transport_TCP
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:581,1
    - Dst: Binding::Configuration::Transport_UDP
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:585,1
    - Dst: Binding::Configuration::Transport_UDP_WRM
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:589,1
    - Dst: Binding::Configuration::Transport_DefaultWRMPConfig
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:590,1
    - Dst: GetWRMPConfig
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:590,1
    - Dst: Binding::Configuration::DNS_Options
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:594,1
    - Dst: Binding::Configuration::Security_None
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:602,1
    - Dst: Binding::Configuration::Security_CASESession
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:605,1
    - Dst: Binding::Configuration::Security_SharedCASESession
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:608,1
    - Dst: Binding::Configuration::Security_Key
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:611,1
    - Dst: GetEncKeyId
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:611,1
    - Dst: Binding::Configuration::Exchange_ResponseTimeoutMsec
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:615,1
    - Dst: Binding::Configuration::PrepareBinding
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:618,1
    - Dst: BindingTestDriver::Failed
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:621,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:625,1
    - Dst: GetState
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:625,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 626
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 626
    functionName: BindingTestDriver::PrepareBinding
    functionSourceFile: /src/openweave-core/src/test-apps/TestBinding.cpp
    functionUses: 1
    functionsReached:
    - Binding::Configuration::Transport_TCP
    - Binding::Configuration::Security_CASESession
    - BindingTestDriver::Failed
    - VerifyOrQuit
    - Binding::Configuration::Security_SharedCASESession
    - GetWRMPConfig
    - Binding::Configuration::Security_Key
    - GetEncKeyId
    - Binding::Configuration::DNS_Options
    - Binding::Configuration::Exchange_ResponseTimeoutMsec
    - Binding::Configuration::Target_NodeId
    - Binding::Configuration::TargetAddress_IP
    - Binding::Configuration::Security_None
    - Binding::Configuration::Transport_DefaultWRMPConfig
    - CanBePrepared
    - Binding::Configuration::PrepareBinding
    - Binding::Configuration::Transport_UDP_WRM
    - GetState
    - Binding::Configuration::Transport_UDP
    - BeginConfiguration
    linkageType: ''
    returnType: void
    signature: BindingTestDriver::PrepareBinding()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BindingTestDriver*::binding::RequestPrepare
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:633,1
    - Dst: BindingTestDriver*::Failed
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - aLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 638
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 638
    functionName: BindingTestDriver::DoOnDemandPrepare
    functionSourceFile: /src/openweave-core/src/test-apps/TestBinding.cpp
    functionUses: 0
    functionsReached:
    - BindingTestDriver*::Failed
    - BindingTestDriver*::binding::RequestPrepare
    linkageType: ''
    returnType: void
    signature: BindingTestDriver::DoOnDemandPrepare(System::Layer* aLayer, void* aAppState,
      System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:648,1
    - Dst: Binding*::GetState
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:648,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:649,1
    - Dst: Binding*::IsReady
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:649,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:650,1
    - Dst: Binding*::IsPreparing
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:650,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:651,1
    - Dst: Binding*::CanBePrepared
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:651,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:652,1
    - Dst: Binding*::GetConnection
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:652,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:655,1
    - Dst: Binding*::GetState
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:655,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:656,1
    - Dst: Binding*::IsReady
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:656,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:657,1
    - Dst: Binding*::IsPreparing
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:657,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:658,1
    - Dst: Binding*::CanBePrepared
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:658,1
    - Dst: BindingTestDriver*::SendEcho
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:659,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:662,1
    - Dst: Binding*::GetState
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:662,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:663,1
    - Dst: Binding*::IsReady
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:663,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:664,1
    - Dst: Binding*::IsPreparing
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:664,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:665,1
    - Dst: Binding*::CanBePrepared
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:665,1
    - Dst: BindingTestDriver*::Failed
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:666,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:669,1
    - Dst: Binding*::GetState
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:669,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:670,1
    - Dst: Binding*::IsReady
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:670,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:671,1
    - Dst: Binding*::IsPreparing
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:671,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:672,1
    - Dst: Binding*::CanBePrepared
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:672,1
    - Dst: BindingTestDriver*::Failed
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:673,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:676,1
    - Dst: Binding*::GetState
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:676,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:677,1
    - Dst: Binding*::IsReady
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:677,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:678,1
    - Dst: Binding*::IsPreparing
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:678,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:679,1
    - Dst: Binding*::CanBePrepared
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:679,1
    - Dst: BindingTestDriver*::PrepareBinding
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:680,1
    - Dst: Binding*::DefaultEventHandler
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:684,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:687,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:688,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 45
    argCount: 4
    argNames:
    - apAppState
    - aEvent
    - ' aInParam'
    - ' aOutParam'
    argTypes:
    - void*
    - Binding::EventType
    - Binding::InEventParam
    - Binding::OutEventParam
    constantsTouched: []
    func_position:
      end: 690
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 690
    functionName: BindingTestDriver::BindingEventCallback
    functionSourceFile: /src/openweave-core/src/test-apps/TestBinding.cpp
    functionUses: 0
    functionsReached:
    - Binding*::IsReady
    - Binding*::GetState
    - Binding*::DefaultEventHandler
    - Binding*::GetConnection
    - exit
    - VerifyOrQuit
    - Binding*::IsPreparing
    - Binding*::CanBePrepared
    - BindingTestDriver*::PrepareBinding
    - BindingTestDriver*::SendEcho
    - fprintf
    - BindingTestDriver*::Failed
    linkageType: ''
    returnType: void
    signature: BindingTestDriver::BindingEventCallback(void *apAppState, Binding::EventType
      aEvent, const Binding::InEventParam& aInParam, Binding::OutEventParam& aOutParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewExchangeContext
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:697,1
    - Dst: BindingTestDriver::Failed
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:700,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:711,1
    - Dst: BindingTestDriver::Failed
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:714,1
    - Dst: SendMessage
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:719,1
    - Dst: BindingTestDriver::Failed
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:725,1
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:731,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 734
      start: 692
    functionDepth: 2
    functionLinenumber: 692
    functionLinenumberEnd: 734
    functionName: BindingTestDriver::SendEcho
    functionSourceFile: /src/openweave-core/src/test-apps/TestBinding.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - BindingTestDriver::Failed
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - Close
    - NewExchangeContext
    linkageType: ''
    returnType: void
    signature: BindingTestDriver::SendEcho()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BindingTestDriver*::SendEcho
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aLayer
    - aAppState
    - aError
    argTypes:
    - System::Layer*
    - void*
    - System::Error
    constantsTouched: []
    func_position:
      end: 740
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 740
    functionName: BindingTestDriver::SendDelayComplete
    functionSourceFile: /src/openweave-core/src/test-apps/TestBinding.cpp
    functionUses: 0
    functionsReached:
    - BindingTestDriver*::SendEcho
    linkageType: ''
    returnType: void
    signature: BindingTestDriver::SendDelayComplete(System::Layer* aLayer, void* aAppState,
      System::Error aError)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:747,1
    - Dst: ExchangeContext*::Close
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:749,1
    - Dst: VerifyOrQuit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:756,1
    - Dst: BindingTestDriver*::binding::IsAuthenticMessageFromPeer
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:756,1
    - Dst: BindingTestDriver*::SendEcho
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:762,1
    - Dst: StartTimer
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:766,1
    - Dst: BindingTestDriver*::Complete
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:771,1
    - Dst: BindingTestDriver*::Complete
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:776,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 6
    argNames:
    - ec
    - pktInfo
    - msgInfo
    - profileId
    - msgType
    - payload
    argTypes:
    - ExchangeContext*
    - IPPacketInfo*
    - WeaveMessageInfo*
    - uint32_t
    - uint8_t
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 778
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 778
    functionName: BindingTestDriver::OnEchoResponseReceived
    functionSourceFile: /src/openweave-core/src/test-apps/TestBinding.cpp
    functionUses: 0
    functionsReached:
    - ExchangeContext*::Close
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrQuit
    - BindingTestDriver*::Complete
    - BindingTestDriver*::SendEcho
    - StartTimer
    - BindingTestDriver*::binding::IsAuthenticMessageFromPeer
    linkageType: ''
    returnType: void
    signature: "BindingTestDriver::OnEchoResponseReceived(ExchangeContext *ec, const
      IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId,\n
      \       uint8_t msgType, PacketBuffer *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:786,1
    - Dst: BindingTestDriver::BindingTestDriver
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:795,1
    - Dst: BindingTestDriver*::Start
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:796,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 812
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 812
    functionName: BindingTestDriver::Complete
    functionSourceFile: /src/openweave-core/src/test-apps/TestBinding.cpp
    functionUses: 0
    functionsReached:
    - BindingTestDriver::BindingTestDriver
    - Close
    - BindingTestDriver*::Start
    linkageType: ''
    returnType: void
    signature: BindingTestDriver::Complete()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Close
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:820,1
    - Dst: Abort
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:826,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:830,1
    - Dst: ErrorStr
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:830,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:831,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - err
    - reason
    argTypes:
    - WEAVE_ERROR
    - char*
    constantsTouched: []
    func_position:
      end: 832
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 832
    functionName: BindingTestDriver::Failed
    functionSourceFile: /src/openweave-core/src/test-apps/TestBinding.cpp
    functionUses: 3
    functionsReached:
    - exit
    - Abort
    - fprintf
    - Close
    - ErrorStr
    linkageType: ''
    returnType: void
    signature: BindingTestDriver::Failed(WEAVE_ERROR err, const char *reason)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BindingTestDriver*::Failed
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ec
    argTypes:
    - ExchangeContext*
    constantsTouched: []
    func_position:
      end: 838
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 838
    functionName: BindingTestDriver::OnResponseTimeout
    functionSourceFile: /src/openweave-core/src/test-apps/TestBinding.cpp
    functionUses: 0
    functionsReached:
    - BindingTestDriver*::Failed
    linkageType: ''
    returnType: void
    signature: BindingTestDriver::OnResponseTimeout(ExchangeContext *ec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BindingTestDriver*::Failed
      Src: /src/openweave-core/src/test-apps/TestBinding.cpp:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ec
    - err
    - msgCtxt
    argTypes:
    - ExchangeContext*
    - WEAVE_ERROR
    - void*
    constantsTouched: []
    func_position:
      end: 844
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 844
    functionName: BindingTestDriver::OnMessageSendError
    functionSourceFile: /src/openweave-core/src/test-apps/TestBinding.cpp
    functionUses: 0
    functionsReached:
    - BindingTestDriver*::Failed
    linkageType: ''
    returnType: void
    signature: BindingTestDriver::OnMessageSendError(ExchangeContext *ec, WEAVE_ERROR
      err, void *msgCtxt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RunTestCase
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:79,1
    - Dst: RunTestCase
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:92,1
    - Dst: RunTestCase
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - testSuite
    - testContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 116
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 116
    functionName: TestDNSResolution_Basic
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp
    functionUses: 0
    functionsReached:
    - RunTestCase
    linkageType: ''
    returnType: void
    signature: TestDNSResolution_Basic(nlTestSuite * testSuite, void * testContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RunTestCase
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:125,1
    - Dst: RunTestCase
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:139,1
    - Dst: RunTestCase
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:153,1
    - Dst: RunTestCase
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - testSuite
    - testContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 178
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 178
    functionName: TestDNSResolution_AddressTypeOption
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp
    functionUses: 0
    functionsReached:
    - RunTestCase
    linkageType: ''
    returnType: void
    signature: TestDNSResolution_AddressTypeOption(nlTestSuite * testSuite, void *
      testContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RunTestCase
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:187,1
    - Dst: RunTestCase
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:201,1
    - Dst: RunTestCase
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:216,1
    - Dst: RunTestCase
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - testSuite
    - testContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 242
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 242
    functionName: TestDNSResolution_RestrictedResults
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp
    functionUses: 0
    functionsReached:
    - RunTestCase
    linkageType: ''
    returnType: void
    signature: TestDNSResolution_RestrictedResults(nlTestSuite * testSuite, void *
      testContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RunTestCase
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - testSuite
    - testContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 260
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 260
    functionName: TestDNSResolution_NoRecord
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp
    functionUses: 0
    functionsReached:
    - RunTestCase
    linkageType: ''
    returnType: void
    signature: TestDNSResolution_NoRecord(nlTestSuite * testSuite, void * testContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RunTestCase
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:268,1
    - Dst: RunTestCase
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:282,1
    - Dst: RunTestCase
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - testSuite
    - testContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 307
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 307
    functionName: TestDNSResolution_NoHostRecord
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp
    functionUses: 0
    functionsReached:
    - RunTestCase
    linkageType: ''
    returnType: void
    signature: TestDNSResolution_NoHostRecord(nlTestSuite * testSuite, void * testContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RunTestCase
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:314,1
    - Dst: RunTestCase
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:326,1
    - Dst: RunTestCase
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:341,1
    - Dst: RunTestCase
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - testSuite
    - testContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 364
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 364
    functionName: TestDNSResolution_TextForm
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp
    functionUses: 0
    functionsReached:
    - RunTestCase
    linkageType: ''
    returnType: void
    signature: TestDNSResolution_TextForm(nlTestSuite * testSuite, void * testContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTestCase
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:383,1
    - Dst: CancelResolveHostAddress
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:391,1
    - Dst: ServiceNetworkUntilDone
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:394,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - testSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 402
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 402
    functionName: TestDNSResolution_Cancel
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - StartTestCase
    - ServiceNetworkUntilDone
    - CancelResolveHostAddress
    linkageType: ''
    returnType: void
    signature: TestDNSResolution_Cancel(nlTestSuite *testSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTestCase
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:461,1
    - Dst: ServiceNetworkUntilDone
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:465,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:468,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - testSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 472
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 472
    functionName: TestDNSResolution_Simultaneous
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - StartTestCase
    - ServiceNetworkUntilDone
    linkageType: ''
    returnType: void
    signature: TestDNSResolution_Simultaneous(nlTestSuite *testSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StartTestCase
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:482,1
    - Dst: ServiceNetworkUntilDone
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:485,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:488,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - testSuite
    - ' testCase'
    argTypes:
    - nlTestSuite*
    - DNSResolutionTestCase
    constantsTouched: []
    func_position:
      end: 492
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 492
    functionName: RunTestCase
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp
    functionUses: 6
    functionsReached:
    - NL_TEST_ASSERT
    - StartTestCase
    - ServiceNetworkUntilDone
    linkageType: ''
    returnType: void
    signature: RunTestCase(nlTestSuite * testSuite, const DNSResolutionTestCase &
      testCase)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:503,1
    - Dst: ResolveHostAddress
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:504,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:504,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:509,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:509,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:512,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:515,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ' testContext'
    argTypes:
    - DNSResolutionTestContext
    constantsTouched: []
    func_position:
      end: 523
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 523
    functionName: StartTestCase
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp
    functionUses: 3
    functionsReached:
    - NL_TEST_ASSERT
    - strlen
    - printf
    - ResolveHostAddress
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: StartTestCase(DNSResolutionTestContext & testContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DNSResolutionTestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:527,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:533,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:538,1
    - Dst: ToString
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:538,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:543,1
    - Dst: nl::ErrorStr
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:543,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:547,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:552,1
    - Dst: Type
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:559,1
    - Dst: Type
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:560,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:569,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:576,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:580,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:591,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:596,1
    - Dst: Type
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:596,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:600,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:605,1
    - Dst: Type
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:605,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:610,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 4
    argNames:
    - appState
    - err
    - addrCount
    - addrArray
    argTypes:
    - void*
    - INET_ERROR
    - uint8_t
    - IPAddress*
    constantsTouched: []
    func_position:
      end: 621
      start: 525
    functionDepth: 2
    functionLinenumber: 525
    functionLinenumberEnd: 621
    functionName: HandleResolutionComplete
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - ToString
    - Type
    - printf
    - static_cast<DNSResolutionTestContext *>
    - nl::ErrorStr
    linkageType: ''
    returnType: void
    signature: HandleResolutionComplete(void *appState, INET_ERROR err, uint8_t addrCount,
      IPAddress *addrArray)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ServiceNetwork
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:632,1
    - Dst: nl::Weave::System::Layer::GetClock_MonotonicMS
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:634,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - timeoutMS
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 639
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 639
    functionName: ServiceNetworkUntilDone
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp
    functionUses: 3
    functionsReached:
    - ServiceNetwork
    - nl::Weave::System::Layer::GetClock_MonotonicMS
    linkageType: ''
    returnType: void
    signature: ServiceNetworkUntilDone(uint32_t timeoutMS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Shutdown
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:643,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 645
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 645
    functionName: HandleSIGUSR1
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp
    functionUses: 0
    functionsReached:
    - Shutdown
    - exit
    linkageType: ''
    returnType: void
    signature: HandleSIGUSR1(int sig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_DEF
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:665,1
    - Dst: NL_TEST_DEF
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:666,1
    - Dst: NL_TEST_DEF
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:667,1
    - Dst: NL_TEST_DEF
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:668,1
    - Dst: NL_TEST_DEF
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:669,1
    - Dst: NL_TEST_DEF
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:670,1
    - Dst: NL_TEST_DEF
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:671,1
    - Dst: NL_TEST_DEF
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:672,1
    - Dst: NL_TEST_SENTINEL
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:673,1
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:681,1
    - Dst: InitToolCommon
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:683,1
    - Dst: SetupFaultInjectionContext
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:685,1
    - Dst: SetSignalHandler
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:687,1
    - Dst: ParseArgsFromEnvVar
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:689,1
    - Dst: ParseArgs
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:690,1
    - Dst: exit
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:692,1
    - Dst: InitSystemLayer
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:695,1
    - Dst: InitNetwork
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:697,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:701,1
    - Dst: ShutdownNetwork
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:703,1
    - Dst: ShutdownSystemLayer
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:704,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp:706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 707
      start: 662
    functionDepth: 3
    functionLinenumber: 662
    functionLinenumberEnd: 707
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp
    functionUses: 0
    functionsReached:
    - SetSignalHandler
    - InitSystemLayer
    - ParseArgs
    - exit
    - InitToolCommon
    - ShutdownSystemLayer
    - nlTestRunnerStats
    - InitNetwork
    - ParseArgsFromEnvVar
    - nl_test_set_output_style
    - SetupFaultInjectionContext
    - nlTestRunner
    - NL_TEST_DEF
    - ShutdownNetwork
    - NL_TEST_SENTINEL
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 714
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 714
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_new
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:105,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:106,1
    - Dst: EC_POINT_oct2point
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:108,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:109,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:111,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:112,1
    - Dst: EC_KEY_new
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:114,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:115,1
    - Dst: EC_KEY_set_group
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:117,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:118,1
    - Dst: EC_KEY_set_private_key
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:120,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:121,1
    - Dst: ECDH_compute_key
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:123,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 8
    argNames:
    - ecGroup
    - encodedPubKey
    - encodedPubKeyLen
    - encodedPrivKey
    - encodedPrivKeyLen
    - sharedSecretBuf
    - sharedSecretBufSize
    - ' sharedSecretLen'
    argTypes:
    - EC_GROUP*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 125
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 125
    functionName: ComputeSharedSecretUsingOpenSSL
    functionSourceFile: /src/openweave-core/src/test-apps/TestECDH.cpp
    functionUses: 0
    functionsReached:
    - ECDH_compute_key
    - EC_POINT_oct2point
    - BN_bin2bn
    - EC_KEY_set_private_key
    - VerifyOrFail
    - EC_POINT_new
    - EC_KEY_new
    - EC_KEY_set_group
    linkageType: ''
    returnType: void
    signature: "ComputeSharedSecretUsingOpenSSL(const EC_GROUP *ecGroup, const uint8_t
      *encodedPubKey, size_t encodedPubKeyLen, const uint8_t *encodedPrivKey, size_t
      encodedPrivKeyLen,\n        uint8_t *sharedSecretBuf, uint32_t sharedSecretBufSize,
      uint16_t& sharedSecretLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenerateECDHKey
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:154,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:155,1
    - Dst: GenerateECDHKey
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:157,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:158,1
    - Dst: ECDHComputeSharedSecret
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:161,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:162,1
    - Dst: GetECGroupForCurve
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:170,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:171,1
    - Dst: ComputeSharedSecretUsingOpenSSL
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:173,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:177,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:178,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:178,1
    - Dst: ECDHComputeSharedSecret
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:183,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:184,1
    - Dst: GetECGroupForCurve
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:192,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:193,1
    - Dst: ComputeSharedSecretUsingOpenSSL
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:195,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:199,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:200,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:200,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:204,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:205,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:205,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 208
    functionName: ECDHTest_TestEphemeralKeys
    functionSourceFile: /src/openweave-core/src/test-apps/TestECDH.cpp
    functionUses: 0
    functionsReached:
    - ECDHComputeSharedSecret
    - GetECGroupForCurve
    - memcmp
    - ComputeSharedSecretUsingOpenSSL
    - VerifyOrFail
    - printf
    - GenerateECDHKey
    linkageType: ''
    returnType: void
    signature: ECDHTest_TestEphemeralKeys()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECDHComputeSharedSecret
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:231,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:232,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:234,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:235,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:235,1
    - Dst: ECDHComputeSharedSecret
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:238,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:239,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:241,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:242,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:242,1
    - Dst: GetECGroupForCurve
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:248,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:249,1
    - Dst: ComputeSharedSecretUsingOpenSSL
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:251,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:255,1
    - Dst: VerifyOrFail
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:256,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:256,1
    - Dst: DumpMemory
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:259,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:260,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 266
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 266
    functionName: ECDHTest_TestFixedKeys
    functionSourceFile: /src/openweave-core/src/test-apps/TestECDH.cpp
    functionUses: 0
    functionsReached:
    - ECDHComputeSharedSecret
    - GetECGroupForCurve
    - memcmp
    - ComputeSharedSecretUsingOpenSSL
    - VerifyOrFail
    - printf
    - DumpMemory
    linkageType: ''
    returnType: void
    signature: ECDHTest_TestFixedKeys()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::Security::InitSecureRandomDataSource
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:273,1
    - Dst: FAIL_ERROR
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:274,1
    - Dst: ECDHTest_TestFixedKeys
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:276,1
    - Dst: ECDHTest_TestEphemeralKeys
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:277,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/TestECDH.cpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 279
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 279
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestECDH.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Platform::Security::InitSecureRandomDataSource
    - ECDHTest_TestEphemeralKeys
    - printf
    - ECDHTest_TestFixedKeys
    - FAIL_ERROR
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:629,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' addr'
    - inContext
    argTypes:
    - IPAddress
    - struct IPAddressExpandedContext*
    constantsTouched: []
    func_position:
      end: 631
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 631
    functionName: SetupIPAddress
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - htonl
    linkageType: ''
    returnType: void
    signature: SetupIPAddress(IPAddress& addr, const struct IPAddressExpandedContext
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' addr'
    argTypes:
    - IPAddress
    constantsTouched: []
    func_position:
      end: 639
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 639
    functionName: ClearIPAddress
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ClearIPAddress(IPAddress& addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:645,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - inSuite
    - inFirstAddressQuartet
    - inSecondAddressQuartet
    - inWhich
    argTypes:
    - nlTestSuite*
    - uint32_t
    - uint32_t
    - size_t
    constantsTouched: []
    func_position:
      end: 651
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 651
    functionName: CheckAddressQuartet
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - fprintf
    linkageType: ''
    returnType: void
    signature: CheckAddressQuartet(nlTestSuite *inSuite, const uint32_t &inFirstAddressQuartet,
      const uint32_t &inSecondAddressQuartet, const size_t &inWhich)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckAddressQuartet
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:655,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - inSuite
    - inContext
    - inAddress
    - inWhich
    argTypes:
    - nlTestSuite*
    - IPAddressContext
    - IPAddress
    - size_t
    constantsTouched: []
    func_position:
      end: 656
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 656
    functionName: CheckAddressQuartet
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 1
    functionsReached:
    - htonl
    - CheckAddressQuartet
    linkageType: ''
    returnType: void
    signature: CheckAddressQuartet(nlTestSuite *inSuite, const IPAddressContext &inContext,
      const IPAddress &inAddress, const size_t &inWhich)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckAddressQuartet
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - inSuite
    - inFirstAddress
    - inSecondAddress
    argTypes:
    - nlTestSuite*
    - IPAddress
    - IPAddress
    constantsTouched: []
    func_position:
      end: 664
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 664
    functionName: CheckAddressQuartets
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - CheckAddressQuartet
    linkageType: ''
    returnType: void
    signature: CheckAddressQuartets(nlTestSuite *inSuite, const IPAddress &inFirstAddress,
      const IPAddress &inSecondAddress)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckAddressQuartet
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - inSuite
    - inContext
    - inAddress
    argTypes:
    - nlTestSuite*
    - IPAddressContext
    - IPAddress
    constantsTouched: []
    func_position:
      end: 672
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 672
    functionName: CheckAddressQuartets
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - CheckAddressQuartet
    linkageType: ''
    returnType: void
    signature: CheckAddressQuartets(nlTestSuite *inSuite, const IPAddressContext &inContext,
      const IPAddress &inAddress)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:678,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - inSuite
    - inActual
    - inExpected
    argTypes:
    - nlTestSuite*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 685
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 685
    functionName: CheckAddressString
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - fprintf
    linkageType: ''
    returnType: void
    signature: CheckAddressString(nlTestSuite *inSuite, const char *inActual, const
      char *inExpected)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckAddressQuartets
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:695,1
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:699,1
    - Dst: CheckAddressString
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:701,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:705,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:706,1
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - inSuite
    - inContext
    - inAddress
    argTypes:
    - nlTestSuite*
    - IPAddressContext
    - IPAddress
    constantsTouched: []
    func_position:
      end: 715
      start: 687
    functionDepth: 2
    functionLinenumber: 687
    functionLinenumberEnd: 715
    functionName: CheckAddress
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - CheckAddressString
    - NL_TEST_ASSERT
    - nl::Inet::IPAddress::FromString
    - CheckAddressQuartets
    - IPAddress::ToString
    - fprintf
    linkageType: ''
    returnType: void
    signature: CheckAddress(nlTestSuite *inSuite, const IPAddressContext &inContext,
      const IPAddress &inAddress)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:725,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:733,1
    - Dst: CheckAddressQuartets
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:735,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:740,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:741,1
    - Dst: nl::Inet::IPAddress::FromString
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:743,1
    - Dst: CheckAddressQuartets
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 749
      start: 723
    functionDepth: 2
    functionLinenumber: 723
    functionLinenumberEnd: 749
    functionName: CheckFromString
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::FromString
    - memset
    - CheckAddressQuartets
    - memcpy
    - static_cast<const struct TestContext *>
    linkageType: ''
    returnType: void
    signature: CheckFromString(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:756,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:764,1
    - Dst: IPAddress::ToString
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:766,1
    - Dst: CheckAddressString
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 772
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 772
    functionName: CheckToString
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const struct TestContext *>
    - CheckAddressString
    - IPAddress::ToString
    - SetupIPAddress
    linkageType: ''
    returnType: void
    signature: CheckToString(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:779,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:787,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:789,1
    - Dst: IPAddress::IsIPv6ULA
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 793
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 793
    functionName: CheckIsIPv6ULA
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const struct TestContext *>
    - NL_TEST_ASSERT
    - IPAddress::IsIPv6ULA
    - SetupIPAddress
    linkageType: ''
    returnType: void
    signature: CheckIsIPv6ULA(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:800,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:808,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:810,1
    - Dst: IPAddress::IsIPv6LinkLocal
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 814
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 814
    functionName: CheckIsIPv6LLA
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const struct TestContext *>
    - NL_TEST_ASSERT
    - IPAddress::IsIPv6LinkLocal
    - SetupIPAddress
    linkageType: ''
    returnType: void
    signature: CheckIsIPv6LLA(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:821,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:829,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:831,1
    - Dst: IPAddress::IsIPv6Multicast
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:831,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 835
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 835
    functionName: CheckIsIPv6Multicast
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const struct TestContext *>
    - NL_TEST_ASSERT
    - IPAddress::IsIPv6Multicast
    - SetupIPAddress
    linkageType: ''
    returnType: void
    signature: CheckIsIPv6Multicast(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:842,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:850,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:852,1
    - Dst: IPAddress::IsMulticast
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 856
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 856
    functionName: CheckIsMulticast
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const struct TestContext *>
    - NL_TEST_ASSERT
    - IPAddress::IsMulticast
    - SetupIPAddress
    linkageType: ''
    returnType: void
    signature: CheckIsMulticast(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:863,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:873,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:879,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:883,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:887,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 895
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 895
    functionName: CheckOperatorEqual
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const struct TestContext *>
    - NL_TEST_ASSERT
    - SetupIPAddress
    linkageType: ''
    returnType: void
    signature: CheckOperatorEqual(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:902,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:912,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:918,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:922,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:926,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 934
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 934
    functionName: CheckOperatorNotEqual
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const struct TestContext *>
    - NL_TEST_ASSERT
    - SetupIPAddress
    linkageType: ''
    returnType: void
    signature: CheckOperatorNotEqual(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:941,1
    - Dst: ClearIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:954,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:955,1
    - Dst: CheckAddressQuartets
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:960,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 967
      start: 939
    functionDepth: 2
    functionLinenumber: 939
    functionLinenumberEnd: 967
    functionName: CheckOperatorAssign
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const struct TestContext *>
    - CheckAddressQuartets
    - ClearIPAddress
    - SetupIPAddress
    linkageType: ''
    returnType: void
    signature: CheckOperatorAssign(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:974,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:983,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:984,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:985,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:986,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:988,1
    - Dst: IPAddress::ToIPv6
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:997,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:999,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:999,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1003
      start: 972
    functionDepth: 1
    functionLinenumber: 972
    functionLinenumberEnd: 1003
    functionName: CheckToIPv6
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - NL_TEST_ASSERT
    - IPAddress::ToIPv6
    - htonl
    - SetupIPAddress
    - static_cast<const struct TestContext *>
    linkageType: ''
    returnType: void
    signature: CheckToIPv6(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1010,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1019,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1020,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1021,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1022,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1024,1
    - Dst: ClearIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1025,1
    - Dst: nl::Inet::IPAddress::FromIPv6
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1034,1
    - Dst: CheckAddressQuartets
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1040
      start: 1008
    functionDepth: 2
    functionLinenumber: 1008
    functionLinenumberEnd: 1040
    functionName: CheckFromIPv6
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - ClearIPAddress
    - nl::Inet::IPAddress::FromIPv6
    - htonl
    - CheckAddressQuartets
    - SetupIPAddress
    - static_cast<const struct TestContext *>
    linkageType: ''
    returnType: void
    signature: CheckFromIPv6(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1048,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1056,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1058,1
    - Dst: IPAddress::IsIPv4
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1062
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1062
    functionName: CheckIsIPv4
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const struct TestContext *>
    - NL_TEST_ASSERT
    - IPAddress::IsIPv4
    - SetupIPAddress
    linkageType: ''
    returnType: void
    signature: CheckIsIPv4(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1069,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1077,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1079,1
    - Dst: IPAddress::IsIPv4Multicast
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1079,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1083
      start: 1067
    functionDepth: 1
    functionLinenumber: 1067
    functionLinenumberEnd: 1083
    functionName: CheckIsIPv4Multicast
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const struct TestContext *>
    - NL_TEST_ASSERT
    - SetupIPAddress
    - IPAddress::IsIPv4Multicast
    linkageType: ''
    returnType: void
    signature: CheckIsIPv4Multicast(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1090,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1098,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1100,1
    - Dst: IPAddress::IsIPv4Broadcast
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1104
      start: 1088
    functionDepth: 1
    functionLinenumber: 1088
    functionLinenumberEnd: 1104
    functionName: CheckIsIPv4Broadcast
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const struct TestContext *>
    - NL_TEST_ASSERT
    - SetupIPAddress
    - IPAddress::IsIPv4Broadcast
    linkageType: ''
    returnType: void
    signature: CheckIsIPv4Broadcast(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1111,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1119,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1124,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1128,1
    - Dst: IPAddress::ToIPv4
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1130,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1132,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1136
      start: 1109
    functionDepth: 1
    functionLinenumber: 1109
    functionLinenumberEnd: 1136
    functionName: CheckToIPv4
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - NL_TEST_ASSERT
    - htonl
    - IPAddress::ToIPv4
    - SetupIPAddress
    - static_cast<const struct TestContext *>
    linkageType: ''
    returnType: void
    signature: CheckToIPv4(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1143,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1151,1
    - Dst: ClearIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1152,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1160,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1161,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1164,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1165,1
    - Dst: nl::Inet::IPAddress::FromIPv4
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1167,1
    - Dst: CheckAddressQuartets
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1173
      start: 1141
    functionDepth: 2
    functionLinenumber: 1141
    functionLinenumberEnd: 1173
    functionName: CheckFromIPv4
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - ClearIPAddress
    - htonl
    - CheckAddressQuartets
    - lwip_htonl
    - SetupIPAddress
    - static_cast<const struct TestContext *>
    - nl::Inet::IPAddress::FromIPv4
    linkageType: ''
    returnType: void
    signature: CheckFromIPv4(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1185,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1198,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1199,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1200,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1201,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1203,1
    - Dst: ClearIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1204,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1210,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1212,1
    - Dst: nl::Inet::IPAddress::FromSockAddr
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1213,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1218,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1220,1
    - Dst: nl::Inet::IPAddress::FromSockAddr
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1221,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1225,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1227,1
    - Dst: nl::Inet::IPAddress::FromSockAddr
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1228,1
    - Dst: CheckAddressQuartets
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1235,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1240
      start: 1179
    functionDepth: 2
    functionLinenumber: 1179
    functionLinenumberEnd: 1240
    functionName: CheckFromSocket
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - ClearIPAddress
    - memset
    - htonl
    - memcpy
    - CheckAddressQuartets
    - SetupIPAddress
    - static_cast<const struct TestContext *>
    - nl::Inet::IPAddress::FromSockAddr
    linkageType: ''
    returnType: void
    signature: CheckFromSocket(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1247,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1255,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1257,1
    - Dst: IPAddress::Type
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1261
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1261
    functionName: CheckType
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const struct TestContext *>
    - NL_TEST_ASSERT
    - SetupIPAddress
    - IPAddress::Type
    linkageType: ''
    returnType: void
    signature: CheckType(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddress::Type
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1269,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1272
      start: 1266
    functionDepth: 0
    functionLinenumber: 1266
    functionLinenumberEnd: 1272
    functionName: CheckAnyAddress
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - IPAddress::Type
    linkageType: ''
    returnType: void
    signature: CheckAnyAddress(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1279,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1287,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1289,1
    - Dst: IPAddress::InterfaceId
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1293
      start: 1277
    functionDepth: 1
    functionLinenumber: 1277
    functionLinenumberEnd: 1293
    functionName: CheckInterface
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const struct TestContext *>
    - NL_TEST_ASSERT
    - IPAddress::InterfaceId
    - SetupIPAddress
    linkageType: ''
    returnType: void
    signature: CheckInterface(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1300,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1308,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1310,1
    - Dst: IPAddress::Subnet
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1314
      start: 1298
    functionDepth: 1
    functionLinenumber: 1298
    functionLinenumberEnd: 1314
    functionName: CheckSubnet
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const struct TestContext *>
    - NL_TEST_ASSERT
    - SetupIPAddress
    - IPAddress::Subnet
    linkageType: ''
    returnType: void
    signature: CheckSubnet(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1321,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1329,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1331,1
    - Dst: IPAddress::GlobalId
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1335
      start: 1319
    functionDepth: 1
    functionLinenumber: 1319
    functionLinenumberEnd: 1335
    functionName: CheckGlobal
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const struct TestContext *>
    - NL_TEST_ASSERT
    - IPAddress::GlobalId
    - SetupIPAddress
    linkageType: ''
    returnType: void
    signature: CheckGlobal(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1342,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1352,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1353,1
    - Dst: IPAddress::WriteAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1357,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1360,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1361,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1362,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1363,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1365,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1366,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1367,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1368,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1370,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1371,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1372,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1373,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1375,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1376,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1377,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1382
      start: 1340
    functionDepth: 1
    functionLinenumber: 1340
    functionLinenumberEnd: 1382
    functionName: CheckEncoding
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 1
    functionsReached:
    - NL_TEST_ASSERT
    - memset
    - SetupIPAddress
    - static_cast<const struct TestContext *>
    - IPAddress::WriteAddress
    linkageType: ''
    returnType: void
    signature: CheckEncoding(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1389,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1400,1
    - Dst: ClearIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1401,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1402,1
    - Dst: nl::Inet::IPAddress::ReadAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1411,1
    - Dst: const_cast<const uint8_t *&>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1411,1
    - Dst: CheckAddressQuartets
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1417
      start: 1387
    functionDepth: 2
    functionLinenumber: 1387
    functionLinenumberEnd: 1417
    functionName: CheckDecoding
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 1
    functionsReached:
    - const_cast<const uint8_t *&>
    - nl::Inet::IPAddress::ReadAddress
    - ClearIPAddress
    - memset
    - CheckAddressQuartets
    - SetupIPAddress
    - static_cast<const struct TestContext *>
    linkageType: ''
    returnType: void
    signature: CheckDecoding(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1424,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1434,1
    - Dst: ClearIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1435,1
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1436,1
    - Dst: IPAddress::WriteAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1441,1
    - Dst: nl::Inet::IPAddress::ReadAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1447,1
    - Dst: const_cast<const uint8_t *&>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1447,1
    - Dst: CheckAddressQuartets
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1453
      start: 1422
    functionDepth: 2
    functionLinenumber: 1422
    functionLinenumberEnd: 1453
    functionName: CheckEcodeDecodeSymmetricity
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - const_cast<const uint8_t *&>
    - nl::Inet::IPAddress::ReadAddress
    - ClearIPAddress
    - memset
    - CheckAddressQuartets
    - SetupIPAddress
    - static_cast<const struct TestContext *>
    - IPAddress::WriteAddress
    linkageType: ''
    returnType: void
    signature: CheckEcodeDecodeSymmetricity(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1460,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1469,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1472,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1473,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1474,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1475,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1476,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1476,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1477,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1481
      start: 1458
    functionDepth: 1
    functionLinenumber: 1458
    functionLinenumberEnd: 1481
    functionName: CheckMakeULA
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const struct TestContext *>
    - NL_TEST_ASSERT
    - htonl
    - nl::Inet::IPAddress::MakeULA
    linkageType: ''
    returnType: void
    signature: CheckMakeULA(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1488,1
    - Dst: nl::Inet::IPAddress::MakeLLA
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1497,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1499,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1499,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1500,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1501,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1501,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1502,1
    - Dst: htonl
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1506
      start: 1486
    functionDepth: 1
    functionLinenumber: 1486
    functionLinenumberEnd: 1506
    functionName: CheckMakeLLA
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const struct TestContext *>
    - NL_TEST_ASSERT
    - htonl
    - nl::Inet::IPAddress::MakeLLA
    linkageType: ''
    returnType: void
    signature: CheckMakeLLA(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1510,1
    - Dst: nl::Inet::IPAddress::MakeIPv6WellKnownMulticast
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1527,1
    - Dst: CheckAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1529,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1535
      start: 1508
    functionDepth: 3
    functionLinenumber: 1508
    functionLinenumberEnd: 1535
    functionName: CheckMakeIPv6WellKnownMulticast
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const struct TestContext *>
    - nl::Inet::IPAddress::MakeIPv6WellKnownMulticast
    - CheckAddress
    linkageType: ''
    returnType: void
    signature: CheckMakeIPv6WellKnownMulticast(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1539,1
    - Dst: nl::Inet::IPAddress::MakeIPv6TransientMulticast
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1557,1
    - Dst: CheckAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1559,1
    - Dst: nl::Inet::IPAddress::MakeIPv6TransientMulticast
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1573,1
    - Dst: CheckAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1575,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1580
      start: 1537
    functionDepth: 3
    functionLinenumber: 1537
    functionLinenumberEnd: 1580
    functionName: CheckMakeIPv6TransientMulticast
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const struct TestContext *>
    - CheckAddress
    - nl::Inet::IPAddress::MakeIPv6TransientMulticast
    linkageType: ''
    returnType: void
    signature: CheckMakeIPv6TransientMulticast(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1584,1
    - Dst: nl::Inet::IPAddress::MakeIPv6PrefixMulticast
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1605,1
    - Dst: CheckAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1607,1
    - Dst: nl::Inet::IPAddress::MakeIPv6PrefixMulticast
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1622,1
    - Dst: CheckAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1624,1
    - Dst: nl::Inet::IPAddress::MakeIPv6PrefixMulticast
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1639,1
    - Dst: CheckAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1641,1
    - Dst: nl::Inet::IPAddress::MakeIPv6PrefixMulticast
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1656,1
    - Dst: CheckAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1658,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1663
      start: 1582
    functionDepth: 3
    functionLinenumber: 1582
    functionLinenumberEnd: 1663
    functionName: CheckMakeIPv6PrefixMulticast
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const struct TestContext *>
    - CheckAddress
    - nl::Inet::IPAddress::MakeIPv6PrefixMulticast
    linkageType: ''
    returnType: void
    signature: CheckMakeIPv6PrefixMulticast(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const struct TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1670,1
    - Dst: SetupIPAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1680,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1686,1
    - Dst: IPPrefix::IsZero
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1686,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1687,1
    - Dst: IsZero
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1687,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1688,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1689,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1691,1
    - Dst: IPPrefix::MatchAddress
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 1695
      start: 1668
    functionDepth: 1
    functionLinenumber: 1668
    functionLinenumberEnd: 1695
    functionName: CheckIPPrefix
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - IsZero
    - NL_TEST_ASSERT
    - IPPrefix::MatchAddress
    - SetupIPAddress
    - static_cast<const struct TestContext *>
    - IPPrefix::IsZero
    linkageType: ''
    returnType: void
    signature: CheckIPPrefix(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1743
      start: 1740
    functionDepth: 0
    functionLinenumber: 1740
    functionLinenumberEnd: 1743
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestSetup(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1751
      start: 1748
    functionDepth: 0
    functionLinenumber: 1748
    functionLinenumberEnd: 1751
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestTeardown(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1763,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1766,1
    - Dst: const_cast<TestContext *>
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1766,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestInetAddress.cpp:1768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1753
    functionDepth: 0
    functionLinenumber: 1753
    functionLinenumberEnd: 1769
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestInetAddress.cpp
    functionUses: 0
    functionsReached:
    - const_cast<TestContext *>
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inProfileId
    - inMsgType
    argTypes:
    - uint32_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: TestMessageStrFunct
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* TestMessageStrFunct(uint32_t inProfileId, uint8_t inMsgType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inProfileId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: TestProfileStrFunct
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* TestProfileStrFunct(uint32_t inProfileId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inProfileId
    - inStatusCode
    argTypes:
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: TestStatusReportStrFunct
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* TestStatusReportStrFunct(uint32_t inProfileId, uint16_t inStatusCode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:144,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:145,1
    - Dst: nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:147,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:148,1
    - Dst: nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:150,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:151,1
    - Dst: nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:155,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:156,1
    - Dst: nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:158,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:159,1
    - Dst: nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:161,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 163
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 163
    functionName: CheckUnregisterEmpty
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
    - NL_TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: CheckUnregisterEmpty(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Support::FindProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:175,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:176,1
    - Dst: Support::FindProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:178,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:179,1
    - Dst: Support::FindProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:181,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 183
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 183
    functionName: CheckFindEmpty
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - Support::FindProfileStringInfo
    linkageType: ''
    returnType: void
    signature: CheckFindEmpty(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Support::WEAVE_ERROR::RegisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:199,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:200,1
    - Dst: nl::Weave::Support::WEAVE_ERROR::RegisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:208,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:209,1
    - Dst: nl::Weave::Support::WEAVE_ERROR::RegisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:216,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:217,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:222,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:223,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - inSuite
    - inContext
    - inParams
    argTypes:
    - nlTestSuite*
    - void*
    - ProfileStringRegisterParams
    constantsTouched: []
    func_position:
      end: 225
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 225
    functionName: CheckRegisterEmpty
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - nl::Weave::Support::WEAVE_ERROR::RegisterProfileStringInfo
    linkageType: ''
    returnType: void
    signature: CheckRegisterEmpty(nlTestSuite *inSuite, void *inContext, ProfileStringRegisterParams
      &inParams)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckRegisterEmpty
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 250
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 250
    functionName: CheckRegisterEmpty_123
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp
    functionUses: 0
    functionsReached:
    - CheckRegisterEmpty
    linkageType: ''
    returnType: void
    signature: CheckRegisterEmpty_123(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckRegisterEmpty
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 275
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 275
    functionName: CheckRegisterEmpty_132
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp
    functionUses: 0
    functionsReached:
    - CheckRegisterEmpty
    linkageType: ''
    returnType: void
    signature: CheckRegisterEmpty_132(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckRegisterEmpty
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 300
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 300
    functionName: CheckRegisterEmpty_213
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp
    functionUses: 0
    functionsReached:
    - CheckRegisterEmpty
    linkageType: ''
    returnType: void
    signature: CheckRegisterEmpty_213(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckRegisterEmpty
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 325
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 325
    functionName: CheckRegisterEmpty_231
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp
    functionUses: 0
    functionsReached:
    - CheckRegisterEmpty
    linkageType: ''
    returnType: void
    signature: CheckRegisterEmpty_231(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckRegisterEmpty
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 350
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 350
    functionName: CheckRegisterEmpty_312
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp
    functionUses: 0
    functionsReached:
    - CheckRegisterEmpty
    linkageType: ''
    returnType: void
    signature: CheckRegisterEmpty_312(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckRegisterEmpty
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 375
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 375
    functionName: CheckRegisterEmpty_321
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp
    functionUses: 0
    functionsReached:
    - CheckRegisterEmpty
    linkageType: ''
    returnType: void
    signature: CheckRegisterEmpty_321(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Support::FindProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:389,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:390,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:391,1
    - Dst: Support::FindProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:393,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:394,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:395,1
    - Dst: Support::FindProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:397,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:398,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:399,1
    - Dst: nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:404,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:405,1
    - Dst: Support::FindProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:407,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:408,1
    - Dst: nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:412,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:413,1
    - Dst: nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:418,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:419,1
    - Dst: Support::FindProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:421,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:422,1
    - Dst: nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:426,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:427,1
    - Dst: nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:432,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:433,1
    - Dst: Support::FindProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:435,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:436,1
    - Dst: nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:440,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 442
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 442
    functionName: CheckFindAndUnregister
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
    - Support::FindProfileStringInfo
    linkageType: ''
    returnType: void
    signature: CheckFindAndUnregister(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Support::WEAVE_ERROR::RegisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:457,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:458,1
    - Dst: nl::Weave::Support::WEAVE_ERROR::RegisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:460,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:461,1
    - Dst: nl::Weave::Support::WEAVE_ERROR::RegisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:463,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:464,1
    - Dst: Support::FindProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:468,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:469,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:470,1
    - Dst: Support::FindProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:472,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:473,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:474,1
    - Dst: Support::FindProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:476,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:477,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:478,1
    - Dst: nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:483,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:484,1
    - Dst: Support::FindProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:486,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:487,1
    - Dst: nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:491,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:492,1
    - Dst: nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:497,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:498,1
    - Dst: Support::FindProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:500,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:501,1
    - Dst: nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:505,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:506,1
    - Dst: nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:511,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:512,1
    - Dst: Support::FindProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:514,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:515,1
    - Dst: nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:519,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 521
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 521
    functionName: CheckUnregisterWithAlias
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
    - nl::Weave::Support::WEAVE_ERROR::RegisterProfileStringInfo
    - Support::FindProfileStringInfo
    linkageType: ''
    returnType: void
    signature: CheckUnregisterWithAlias(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:549,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:551,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 554
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 554
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp
    functionUses: 0
    functionsReached:
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: nl::Weave::Profiles::Platform::CriticalSectionEnter
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionEnter()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: nl::Weave::Profiles::Platform::CriticalSectionExit
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CriticalSectionExit()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: ~TraitPathStoreTest()
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~TraitPathStoreTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:110,1
    - Dst: ArraySize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: nl::Weave::Profiles::TraitPathStoreTest::TraitPathStoreTest
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - ArraySize
    - Init
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest::TraitPathStoreTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:117,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:122,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:123,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:124,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:124,1
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:126,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:128,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 129
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 129
    functionName: nl::Weave::Profiles::TraitPathStoreTest::TestInitCleanup
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - GetNumItems
    - Clear
    - NL_TEST_ASSERT
    - AddItem
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest::TestInitCleanup(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:136,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:141,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:142,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:143,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:143,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:144,1
    - Dst: IsItemValid
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:144,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:145,1
    - Dst: IsPresent
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:145,1
    - Dst: GetItemAt
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:147,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:148,1
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 151
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 151
    functionName: nl::Weave::Profiles::TraitPathStoreTest::TestAddGet
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - GetItemAt
    - NL_TEST_ASSERT
    - IsPresent
    - IsItemValid
    - Clear
    - GetNumItems
    - AddItem
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest::TestAddGet(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:158,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:160,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:162,1
    - Dst: IsFull
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:162,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:167,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:168,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:169,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:169,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:170,1
    - Dst: IsPresent
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:170,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:173,1
    - Dst: IsFull
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:173,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:174,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:174,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:174,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:176,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:177,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:179,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:179,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:179,1
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:181,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:183,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 184
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 184
    functionName: nl::Weave::Profiles::TraitPathStoreTest::TestFull
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - IsPresent
    - IsFull
    - Clear
    - GetPathStoreSize
    - GetNumItems
    - AddItem
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest::TestFull(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:191,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:194,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:196,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:197,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:201,1
    - Dst: Includes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:201,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:203,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:204,1
    - Dst: Includes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:204,1
    - Dst: GetDictionaryItemHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:206,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:206,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:207,1
    - Dst: Includes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:207,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:209,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:210,1
    - Dst: Includes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:210,1
    - Dst: GetDictionaryItemHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:212,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:212,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:213,1
    - Dst: Includes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:213,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:218,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:219,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:222,1
    - Dst: Includes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:222,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:224,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:225,1
    - Dst: Includes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:225,1
    - Dst: GetDictionaryItemHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:227,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:227,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:228,1
    - Dst: Includes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:228,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:230,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:231,1
    - Dst: Includes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:231,1
    - Dst: GetDictionaryItemHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:233,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:233,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:234,1
    - Dst: Includes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:234,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:238,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:239,1
    - Dst: Includes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:239,1
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 242
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 242
    functionName: nl::Weave::Profiles::TraitPathStoreTest::TestIncludes
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - NL_TEST_ASSERT
    - Includes
    - GetDictionaryItemHandle
    - Clear
    - AddItem
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest::TestIncludes(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:249,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:254,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:255,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:259,1
    - Dst: Intersects
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:259,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:261,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:262,1
    - Dst: Intersects
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:262,1
    - Dst: GetDictionaryItemHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:264,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:264,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:265,1
    - Dst: Intersects
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:265,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:267,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:268,1
    - Dst: Intersects
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:268,1
    - Dst: GetDictionaryItemHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:270,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:270,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:271,1
    - Dst: Intersects
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:271,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:274,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:275,1
    - Dst: Intersects
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:275,1
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 278
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 278
    functionName: nl::Weave::Profiles::TraitPathStoreTest::TestIntersects
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - NL_TEST_ASSERT
    - GetDictionaryItemHandle
    - Intersects
    - Clear
    - AddItem
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest::TestIntersects(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:285,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:289,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:291,1
    - Dst: IsPresent
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:291,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:293,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:294,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:296,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:297,1
    - Dst: IsPresent
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:297,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:298,1
    - Dst: IsTraitPresent
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:298,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:299,1
    - Dst: IsTraitPresent
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:299,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:302,1
    - Dst: IsPresent
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:302,1
    - Dst: GetDictionaryItemHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:304,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:304,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:305,1
    - Dst: IsPresent
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:305,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:307,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:308,1
    - Dst: IsPresent
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:308,1
    - Dst: GetDictionaryItemHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:310,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:310,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:311,1
    - Dst: IsPresent
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:311,1
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:313,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:315,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:316,1
    - Dst: IsPresent
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 317
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 317
    functionName: nl::Weave::Profiles::TraitPathStoreTest::TestIsPresent
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - NL_TEST_ASSERT
    - IsPresent
    - GetDictionaryItemHandle
    - Clear
    - IsTraitPresent
    - AddItem
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest::TestIsPresent(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:325,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:327,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:332,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:333,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:338,1
    - Dst: IsPresent
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:338,1
    - Dst: RemoveItemAt
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:340,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:342,1
    - Dst: IsPresent
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:342,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:343,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:343,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:343,1
    - Dst: RemoveTrait
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:345,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:349,1
    - Dst: IsPresent
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:349,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:350,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:350,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:350,1
    - Dst: RemoveItemAt
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:352,1
    - Dst: RemoveItemAt
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:353,1
    - Dst: RemoveItemAt
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:354,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:356,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:356,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:356,1
    - Dst: Compact
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:358,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:360,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:360,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:360,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:362,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:364,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:366,1
    - Dst: IsItemValid
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:366,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:370,1
    - Dst: IsItemValid
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:370,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:376,1
    - Dst: IsPresent
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:376,1
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:378,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 379
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 379
    functionName: nl::Weave::Profiles::TraitPathStoreTest::TestRemoveAndCompact
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - Compact
    - RemoveTrait
    - NL_TEST_ASSERT
    - IsPresent
    - IsItemValid
    - Clear
    - GetPathStoreSize
    - GetNumItems
    - RemoveItemAt
    - AddItem
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest::TestRemoveAndCompact(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:387,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:390,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:392,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:393,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:395,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:399,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:400,1
    - Dst: Includes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:400,1
    - Dst: AddItemDedup
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:402,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:403,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:404,1
    - Dst: Includes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:404,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:405,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:405,1
    - Dst: GetDictionaryItemHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:407,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:407,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:408,1
    - Dst: Includes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:408,1
    - Dst: AddItemDedup
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:410,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:411,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:412,1
    - Dst: Includes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:412,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:413,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:413,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:415,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:416,1
    - Dst: Includes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:416,1
    - Dst: AddItemDedup
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:418,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:419,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:420,1
    - Dst: Includes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:420,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:421,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:421,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:423,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:428,1
    - Dst: Includes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:428,1
    - Dst: AddItemDedup
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:430,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:431,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:432,1
    - Dst: Includes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:432,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:433,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:433,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:435,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:436,1
    - Dst: Includes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:436,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:438,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:439,1
    - Dst: Includes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:439,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:441,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:445,1
    - Dst: Includes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:445,1
    - Dst: AddItemDedup
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:446,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:447,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:448,1
    - Dst: Includes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:448,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:449,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:449,1
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 452
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 452
    functionName: nl::Weave::Profiles::TraitPathStoreTest::TestAddItemDedup
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - NL_TEST_ASSERT
    - Includes
    - GetDictionaryItemHandle
    - Clear
    - AddItemDedup
    - GetNumItems
    - AddItem
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest::TestAddItemDedup(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:459,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:461,1
    - Dst: GetFirstValidItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:461,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:461,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:462,1
    - Dst: GetFirstValidItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:462,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:462,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:465,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:467,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:468,1
    - Dst: GetFirstValidItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:470,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:471,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:471,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:472,1
    - Dst: GetNextValidItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:472,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:472,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:474,1
    - Dst: GetFirstValidItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:474,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:474,1
    - Dst: GetFirstValidItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:476,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:477,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:477,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:478,1
    - Dst: GetNextValidItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:478,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:478,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:480,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:481,1
    - Dst: RemoveItemAt
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:483,1
    - Dst: GetFirstValidItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:485,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:486,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:486,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:487,1
    - Dst: GetNextValidItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:487,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:487,1
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 490
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 490
    functionName: nl::Weave::Profiles::TraitPathStoreTest::TestGetFirstGetNext
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - GetFirstValidItem
    - NL_TEST_ASSERT
    - GetNextValidItem
    - Clear
    - GetPathStoreSize
    - RemoveItemAt
    - AddItem
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest::TestGetFirstGetNext(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:497,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:500,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:502,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:503,1
    - Dst: GetFirstValidItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:505,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:506,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:506,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:508,1
    - Dst: AreFlagsSet
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:508,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:509,1
    - Dst: AreFlagsSet
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:509,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:510,1
    - Dst: AreFlagsSet
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:510,1
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:512,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:514,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:515,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:517,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:518,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:520,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:521,1
    - Dst: GetFirstValidItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:523,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:525,1
    - Dst: AreFlagsSet
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:525,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:526,1
    - Dst: AreFlagsSet
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:526,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:527,1
    - Dst: AreFlagsSet
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:527,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:528,1
    - Dst: AreFlagsSet
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:528,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:529,1
    - Dst: AreFlagsSet
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:529,1
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:531,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:533,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:534,1
    - Dst: GetFirstValidItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:536,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:538,1
    - Dst: AreFlagsSet
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:538,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:539,1
    - Dst: AreFlagsSet
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:539,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:540,1
    - Dst: AreFlagsSet
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:540,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:541,1
    - Dst: AreFlagsSet
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:541,1
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:543,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:545,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:546,1
    - Dst: GetFirstValidItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:548,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:550,1
    - Dst: IsItemValid
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:550,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:551,1
    - Dst: IsItemFailed
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:551,1
    - Dst: SetFailed
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:553,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:554,1
    - Dst: IsItemFailed
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:554,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:555,1
    - Dst: IsItemInUse
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:555,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:556,1
    - Dst: IsItemValid
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:556,1
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 559
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 559
    functionName: nl::Weave::Profiles::TraitPathStoreTest::TestFlags
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - IsItemFailed
    - SetFailed
    - IsItemInUse
    - GetFirstValidItem
    - NL_TEST_ASSERT
    - IsItemValid
    - Clear
    - AreFlagsSet
    - GetPathStoreSize
    - AddItem
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest::TestFlags(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:566,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:569,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:573,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:574,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:578,1
    - Dst: InsertItemAfter
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:580,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:581,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:583,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:583,1
    - Dst: InsertItemAt
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:585,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:585,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:586,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:590,1
    - Dst: GetItemAt
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:592,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:595,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:595,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:599,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:599,1
    - Dst: InsertItemAfter
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:603,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:604,1
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:606,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 607
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 607
    functionName: nl::Weave::Profiles::TraitPathStoreTest::TestInsertItem
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - GetItemAt
    - InsertItemAt
    - NL_TEST_ASSERT
    - Clear
    - InsertItemAfter
    - GetNumItems
    - AddItem
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest::TestInsertItem(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:614,1
    - Dst: CreatePropertyPathHandle
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:617,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:621,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:622,1
    - Dst: SetFailedTrait
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:626,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:628,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:628,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:629,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:629,1
    - Dst: GetFirstValidItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:629,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:630,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:630,1
    - Dst: GetFirstValidItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:630,1
    - Dst: AddItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:634,1
    - Dst: SetFailedTrait
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:637,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:639,1
    - Dst: GetNumItems
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:639,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:640,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:640,1
    - Dst: GetFirstValidItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:640,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:641,1
    - Dst: GetPathStoreSize
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:641,1
    - Dst: GetFirstValidItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:641,1
    - Dst: Clear
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 645
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 645
    functionName: nl::Weave::Profiles::TraitPathStoreTest::TestSetFailedTrait
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - CreatePropertyPathHandle
    - SetFailedTrait
    - GetFirstValidItem
    - NL_TEST_ASSERT
    - Clear
    - GetPathStoreSize
    - GetNumItems
    - AddItem
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest::TestSetFailedTrait(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 657
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 657
    functionName: SubscriptionEngine::GetInstance
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 134
    functionsReached: []
    linkageType: ''
    returnType: SubscriptionEngine
    signature: '* SubscriptionEngine::GetInstance()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestInitCleanup
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 666
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 666
    functionName: TraitPathStoreTest_InitCleanup
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - TestInitCleanup
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest_InitCleanup(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestAddGet
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 671
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 671
    functionName: TraitPathStoreTest_AddGet
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - TestAddGet
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest_AddGet(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestFull
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 676
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 676
    functionName: TraitPathStoreTest_Full
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - TestFull
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest_Full(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestIncludes
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 681
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 681
    functionName: TraitPathStoreTest_Includes
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - TestIncludes
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest_Includes(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestIntersects
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 686
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 686
    functionName: TraitPathStoreTest_Intersects
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - TestIntersects
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest_Intersects(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestIsPresent
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 691
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 691
    functionName: TraitPathStoreTest_IsPresent
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - TestIsPresent
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest_IsPresent(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestRemoveAndCompact
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 696
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 696
    functionName: TraitPathStoreTest_RemoveAndCompact
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - TestRemoveAndCompact
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest_RemoveAndCompact(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestAddItemDedup
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 701
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 701
    functionName: TraitPathStoreTest_AddItemDedup
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - TestAddItemDedup
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest_AddItemDedup(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestGetFirstGetNext
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 706
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 706
    functionName: TraitPathStoreTest_GetFirstGetNext
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - TestGetFirstGetNext
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest_GetFirstGetNext(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestFlags
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 711
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 711
    functionName: TraitPathStoreTest_Flags
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - TestFlags
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest_Flags(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestInsertItem
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 716
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 716
    functionName: TraitPathStoreTest_InsertItem
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - TestInsertItem
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest_InsertItem(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSetFailedTrait
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 721
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 721
    functionName: TraitPathStoreTest_SetFailedTrait
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - TestSetFailedTrait
    linkageType: ''
    returnType: void
    signature: TraitPathStoreTest_SetFailedTrait(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 766
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 766
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestSetup(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 774
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 774
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestTeardown(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:789,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:792,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestPathStore.cpp:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 795
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 795
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestPathStore.cpp
    functionUses: 0
    functionsReached:
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:45,1
    - Dst: vprintf
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:47,1
    - Dst: va_end
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - aFormat
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: SimpleDumpWriter
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp
    functionUses: 0
    functionsReached:
    - vprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: SimpleDumpWriter(const char *aFormat, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - startpos
    - checklen
    argTypes:
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 81
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 81
    functionName: CalculateChecksum
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: CalculateChecksum(uint8_t *startpos, uint8_t checklen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVReader::Init
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:88,1
    - Dst: nl::Weave::TLV::Debug::Dump
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:90,1
    - Dst: CalculateChecksum
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:92,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - inBuffer
    - inLen
    - inChecksumType
    argTypes:
    - uint8_t*
    - uint32_t
    - char*
    constantsTouched: []
    func_position:
      end: 97
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 97
    functionName: ChecksumTLV
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp
    functionUses: 0
    functionsReached:
    - CalculateChecksum
    - nl::Weave::TLV::TLVReader::Init
    - nl::Weave::TLV::Debug::Dump
    - WeaveLogDetail
    linkageType: ''
    returnType: uint16_t
    signature: ChecksumTLV(uint8_t *inBuffer, uint32_t inLen, const char *inChecksumType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:108,1
    - Dst: nl::Weave::TLV::TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:109,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:110,1
    - Dst: TraitDataSource*::ReadData
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:112,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:112,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:113,1
    - Dst: nl::Weave::TLV::TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:115,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:116,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:118,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:119,1
    - Dst: nl::Weave::TLV::TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:121,1
    - Dst: ChecksumTLV
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:122,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - inTraitDataSource
    argTypes:
    - TraitDataSource*
    constantsTouched: []
    func_position:
      end: 128
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 128
    functionName: DumpPublisherTraitChecksum
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::TLV::TLVWriter::Init
    - nl::Weave::TLV::TLVWriter::StartContainer
    - nl::Weave::TLV::TLVWriter::EndContainer
    - ContextTag
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::GetLengthWritten
    - TraitDataSource*::ReadData
    - nl::Weave::TLV::TLVWriter::Finalize
    - WeaveLogFunctError
    - ChecksumTLV
    linkageType: ''
    returnType: uint16_t
    signature: DumpPublisherTraitChecksum(TraitDataSource *inTraitDataSource)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::TLV::TLVWriter::Init
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:139,1
    - Dst: nl::Weave::TLV::TLVWriter::StartContainer
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:140,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:141,1
    - Dst: TraitSchemaEngine*::RetrieveData
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:143,1
    - Dst: ContextTag
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:143,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:144,1
    - Dst: nl::Weave::TLV::TLVWriter::EndContainer
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:146,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:147,1
    - Dst: nl::Weave::TLV::TLVWriter::Finalize
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:149,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:150,1
    - Dst: nl::Weave::TLV::TLVWriter::GetLengthWritten
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:152,1
    - Dst: ChecksumTLV
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:153,1
    - Dst: WeaveLogFunctError
      Src: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - inSchemaEngine
    - inTraitDataSource
    argTypes:
    - TraitSchemaEngine*
    - TraitSchemaEngine::IGetDataDelegate*
    constantsTouched: []
    func_position:
      end: 159
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 159
    functionName: DumpClientTraitChecksum
    functionSourceFile: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::TLV::TLVWriter::Init
    - nl::Weave::TLV::TLVWriter::StartContainer
    - nl::Weave::TLV::TLVWriter::EndContainer
    - TraitSchemaEngine*::RetrieveData
    - ContextTag
    - nl::Weave::TLV::TLVWriter::GetLengthWritten
    - SuccessOrExit
    - nl::Weave::TLV::TLVWriter::Finalize
    - WeaveLogFunctError
    - ChecksumTLV
    linkageType: ''
    returnType: uint16_t
    signature: DumpClientTraitChecksum(const TraitSchemaEngine *inSchemaEngine, TraitSchemaEngine::IGetDataDelegate
      *inTraitDataSource)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:51,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:53,1
    - Dst: LogState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:54,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:56,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:58,1
    - Dst: PacketBuffer*::AvailableDataLength
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:58,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:60,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:61,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:62,1
    - Dst: HandleCharacteristicReceived
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:70,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:72,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:74,1
    - Dst: RxState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:74,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:77,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:79,1
    - Dst: LogState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 81
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 81
    functionName: HandleCharacteristicReceivedOnePacket
    functionSourceFile: /src/openweave-core/src/test-apps/TestWoble.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - HandleCharacteristicReceived
    - NL_TEST_ASSERT
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - LogState
    - Init
    - WeaveLogDetail
    - RxState
    - PacketBuffer*::Start
    - PacketBuffer*::AvailableDataLength
    linkageType: ''
    returnType: void
    signature: HandleCharacteristicReceivedOnePacket(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:92,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:94,1
    - Dst: LogState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:95,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:97,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:98,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:100,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:101,1
    - Dst: HandleCharacteristicReceived
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:109,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:111,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:113,1
    - Dst: RxState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:113,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:115,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:116,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:117,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:118,1
    - Dst: HandleCharacteristicReceived
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:124,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:126,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:128,1
    - Dst: RxState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:128,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:131,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:133,1
    - Dst: LogState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 135
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 135
    functionName: HandleCharacteristicReceivedTwoPacket
    functionSourceFile: /src/openweave-core/src/test-apps/TestWoble.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - HandleCharacteristicReceived
    - NL_TEST_ASSERT
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - LogState
    - Init
    - WeaveLogDetail
    - RxState
    - PacketBuffer*::Start
    linkageType: ''
    returnType: void
    signature: HandleCharacteristicReceivedTwoPacket(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:147,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:149,1
    - Dst: LogState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:150,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:152,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:153,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:154,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:155,1
    - Dst: HandleCharacteristicReceived
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:163,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:165,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:167,1
    - Dst: RxState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:167,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:169,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:170,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:171,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:172,1
    - Dst: HandleCharacteristicReceived
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:178,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:180,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:182,1
    - Dst: RxState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:182,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:184,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:185,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:186,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:187,1
    - Dst: HandleCharacteristicReceived
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:193,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:195,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:197,1
    - Dst: RxState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:197,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:200,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:202,1
    - Dst: LogState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 204
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 204
    functionName: HandleCharacteristicReceivedThreePacket
    functionSourceFile: /src/openweave-core/src/test-apps/TestWoble.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - HandleCharacteristicReceived
    - NL_TEST_ASSERT
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - LogState
    - Init
    - WeaveLogDetail
    - RxState
    - PacketBuffer*::Start
    linkageType: ''
    returnType: void
    signature: HandleCharacteristicReceivedThreePacket(nlTestSuite *inSuite, void
      *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:212,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:214,1
    - Dst: LogState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:215,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:217,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:218,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:219,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:220,1
    - Dst: HandleCharacteristicSend
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:224,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:225,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:227,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:227,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:231,1
    - Dst: TxState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:231,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:233,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:236,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:238,1
    - Dst: LogState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 240
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 240
    functionName: HandleCharacteristicSendOnePacket
    functionSourceFile: /src/openweave-core/src/test-apps/TestWoble.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - PacketBuffer*::SetDataLength
    - TxState
    - NL_TEST_ASSERT
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - LogState
    - Init
    - WeaveLogDetail
    - PacketBuffer*::Start
    - HandleCharacteristicSend
    linkageType: ''
    returnType: void
    signature: HandleCharacteristicSendOnePacket(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:248,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:249,1
    - Dst: LogState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:250,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:251,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:252,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:253,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:254,1
    - Dst: HandleCharacteristicSend
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:261,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:262,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:264,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:264,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:266,1
    - Dst: TxState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:266,1
    - Dst: HandleCharacteristicSend
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:268,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:269,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:271,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:271,1
    - Dst: LogState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:273,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:276,1
    - Dst: TxState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:276,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:279,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:280,1
    - Dst: LogState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 282
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 282
    functionName: HandleCharacteristicSendTwoPacket
    functionSourceFile: /src/openweave-core/src/test-apps/TestWoble.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - PacketBuffer*::SetDataLength
    - TxState
    - NL_TEST_ASSERT
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - LogState
    - Init
    - WeaveLogDetail
    - PacketBuffer*::Start
    - HandleCharacteristicSend
    linkageType: ''
    returnType: void
    signature: HandleCharacteristicSendTwoPacket(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:294,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:295,1
    - Dst: LogState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:296,1
    - Dst: nl::Weave::System::PacketBuffer::NewWithAvailableSize
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:298,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:299,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:300,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:302,1
    - Dst: HandleCharacteristicSend
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:309,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:310,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:312,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:312,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:314,1
    - Dst: TxState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:314,1
    - Dst: HandleCharacteristicSend
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:316,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:317,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:319,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:319,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:321,1
    - Dst: TxState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:321,1
    - Dst: HandleCharacteristicSend
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:323,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:324,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:326,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:326,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:330,1
    - Dst: TxState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:330,1
    - Dst: Init
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:333,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:335,1
    - Dst: LogState
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 337
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 337
    functionName: HandleCharacteristicSendThreePacket
    functionSourceFile: /src/openweave-core/src/test-apps/TestWoble.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - PacketBuffer*::SetDataLength
    - TxState
    - NL_TEST_ASSERT
    - nl::Weave::System::PacketBuffer::NewWithAvailableSize
    - LogState
    - Init
    - WeaveLogDetail
    - PacketBuffer*::Start
    - HandleCharacteristicSend
    linkageType: ''
    returnType: void
    signature: HandleCharacteristicSendThreePacket(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: TestSetup
    functionSourceFile: /src/openweave-core/src/test-apps/TestWoble.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestSetup(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inContext
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 371
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 371
    functionName: TestTeardown
    functionSourceFile: /src/openweave-core/src/test-apps/TestWoble.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TestTeardown(void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:383,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:386,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestWoble.cpp:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 389
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 389
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestWoble.cpp
    functionUses: 0
    functionsReached:
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MakeWeaveProvisioningHash
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:46,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:47,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:48,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:49,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:53,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:56,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:56,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:59,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 60
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 60
    functionName: MakeWeaveProvisioningHash_Test1
    functionSourceFile: /src/openweave-core/src/test-apps/TestProvHash.cpp
    functionUses: 0
    functionsReached:
    - MakeWeaveProvisioningHash
    - NL_TEST_ASSERT
    - strlen
    - strcmp
    linkageType: ''
    returnType: void
    signature: MakeWeaveProvisioningHash_Test1(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MakeDeviceCredentialHash
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:73,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:73,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:74,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:75,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:79,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:82,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:82,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:85,1
    - Dst: strcmp
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 86
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 86
    functionName: MakeDeviceCredentialHash_Test1
    functionSourceFile: /src/openweave-core/src/test-apps/TestProvHash.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - NL_TEST_ASSERT
    - MakeDeviceCredentialHash
    - strcmp
    linkageType: ''
    returnType: void
    signature: MakeDeviceCredentialHash_Test1(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NL_TEST_DEF
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:91,1
    - Dst: NL_TEST_DEF
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:92,1
    - Dst: NL_TEST_SENTINEL
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:93,1
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:101,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:103,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/TestProvHash.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 106
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 106
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/TestProvHash.cpp
    functionUses: 0
    functionsReached:
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    - NL_TEST_DEF
    - NL_TEST_SENTINEL
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/test-apps/schema/CustomBuiltInTraitSchemaDirectory.cpp:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - aProfileId
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 59
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 59
    functionName: nl::Weave::DeviceManager::TraitSchemaDirectory::GetTraitSchemaEngine
    functionSourceFile: /src/openweave-core/src/test-apps/schema/CustomBuiltInTraitSchemaDirectory.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogError
    linkageType: ''
    returnType: TraitSchemaEngine
    signature: '* TraitSchemaDirectory::GetTraitSchemaEngine(uint32_t aProfileId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestBTrait.h:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: Schema::Nest::Test::Trait::TestBTrait::StructEA::SetSaANull
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestBTrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: StructEA::SetSaANull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestBTrait.h:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 298
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 298
    functionName: Schema::Nest::Test::Trait::TestBTrait::StructEA::SetSaAPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestBTrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: StructEA::SetSaAPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestBTrait.h:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: Schema::Nest::Test::Trait::TestBTrait::StructEA::IsSaAPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestBTrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: StructEA::IsSaAPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestATrait.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: Schema::Nest::Test::Trait::TestATrait::StructA::SetSaANull
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestATrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: StructA::SetSaANull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestATrait.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: Schema::Nest::Test::Trait::TestATrait::StructA::SetSaAPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestATrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: StructA::SetSaAPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestATrait.h:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: Schema::Nest::Test::Trait::TestATrait::StructA::IsSaAPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestATrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: StructA::IsSaAPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: Schema::Nest::Test::Trait::TestETrait::NullableE::SetNeANull
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: NullableE::SetNeANull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: Schema::Nest::Test::Trait::TestETrait::NullableE::SetNeAPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: NullableE::SetNeAPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: Schema::Nest::Test::Trait::TestETrait::NullableE::IsNeAPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: NullableE::IsNeAPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: Schema::Nest::Test::Trait::TestETrait::NullableE::SetNeBNull
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: NullableE::SetNeBNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: Schema::Nest::Test::Trait::TestETrait::NullableE::SetNeBPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: NullableE::SetNeBPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: Schema::Nest::Test::Trait::TestETrait::NullableE::IsNeBPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: NullableE::IsNeBPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: Schema::Nest::Test::Trait::TestETrait::TestEEvent::SetTeJNull
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 1
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestEEvent::SetTeJNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: Schema::Nest::Test::Trait::TestETrait::TestEEvent::SetTeJPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestEEvent::SetTeJPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: Schema::Nest::Test::Trait::TestETrait::TestEEvent::IsTeJPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 2
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: TestEEvent::IsTeJPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: Schema::Nest::Test::Trait::TestETrait::TestEEvent::SetTeMNull
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestEEvent::SetTeMNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: Schema::Nest::Test::Trait::TestETrait::TestEEvent::SetTeMPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestEEvent::SetTeMPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: Schema::Nest::Test::Trait::TestETrait::TestEEvent::IsTeMPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: TestEEvent::IsTeMPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: Schema::Nest::Test::Trait::TestETrait::TestEEvent::SetTeNNull
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestEEvent::SetTeNNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: Schema::Nest::Test::Trait::TestETrait::TestEEvent::SetTeNPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestEEvent::SetTeNPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: Schema::Nest::Test::Trait::TestETrait::TestEEvent::IsTeNPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: TestEEvent::IsTeNPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: Schema::Nest::Test::Trait::TestETrait::TestEEvent::SetTePNull
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestEEvent::SetTePNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: Schema::Nest::Test::Trait::TestETrait::TestEEvent::SetTePPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestEEvent::SetTePPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: Schema::Nest::Test::Trait::TestETrait::TestEEvent::IsTePPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: TestEEvent::IsTePPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: Schema::Nest::Test::Trait::TestETrait::TestEEvent::SetTeSNull
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestEEvent::SetTeSNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: Schema::Nest::Test::Trait::TestETrait::TestEEvent::SetTeSPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestEEvent::SetTeSPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: Schema::Nest::Test::Trait::TestETrait::TestEEvent::IsTeSPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: TestEEvent::IsTeSPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 374
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 374
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeANull
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestENullableEvent::SetNeANull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 379
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 379
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeAPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestENullableEvent::SetNeAPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 385
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 385
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeAPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 1
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: TestENullableEvent::IsNeAPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 390
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 390
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeBNull
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestENullableEvent::SetNeBNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 395
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 395
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeBPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestENullableEvent::SetNeBPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 401
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 401
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeBPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 1
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: TestENullableEvent::IsNeBPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 406
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 406
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeCNull
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestENullableEvent::SetNeCNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 411
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 411
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeCPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestENullableEvent::SetNeCPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 417
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 417
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeCPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 1
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: TestENullableEvent::IsNeCPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeDNull
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestENullableEvent::SetNeDNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 427
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 427
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeDPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestENullableEvent::SetNeDPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 433
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 433
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeDPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 1
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: TestENullableEvent::IsNeDPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 438
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 438
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeENull
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestENullableEvent::SetNeENull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 443
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 443
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeEPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestENullableEvent::SetNeEPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 449
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 449
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeEPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 1
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: TestENullableEvent::IsNeEPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 454
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 454
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeFNull
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestENullableEvent::SetNeFNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 459
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 459
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeFPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestENullableEvent::SetNeFPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 465
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 465
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeFPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 1
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: TestENullableEvent::IsNeFPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 470
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 470
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeGNull
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestENullableEvent::SetNeGNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 475
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 475
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeGPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestENullableEvent::SetNeGPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 481
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 481
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeGPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 1
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: TestENullableEvent::IsNeGPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 486
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 486
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeHNull
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestENullableEvent::SetNeHNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 491
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 491
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeHPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestENullableEvent::SetNeHPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 497
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 497
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeHPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 1
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: TestENullableEvent::IsNeHPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 502
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 502
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeINull
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestENullableEvent::SetNeINull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 507
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 507
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeIPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestENullableEvent::SetNeIPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 513
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 513
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeIPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 1
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: TestENullableEvent::IsNeIPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 518
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 518
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeJNull
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestENullableEvent::SetNeJNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 523
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 523
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeJPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestENullableEvent::SetNeJPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 529
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 529
    functionName: Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeJPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 1
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: TestENullableEvent::IsNeJPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 582
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 582
    functionName: Schema::Nest::Test::Trait::TestETrait::TestELargeArrayNullableEvent::SetTelaneANull
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 1
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestELargeArrayNullableEvent::SetTelaneANull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 587
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 587
    functionName: Schema::Nest::Test::Trait::TestETrait::TestELargeArrayNullableEvent::SetTelaneAPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestELargeArrayNullableEvent::SetTelaneAPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 593
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 593
    functionName: Schema::Nest::Test::Trait::TestETrait::TestELargeArrayNullableEvent::IsTelaneAPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: TestELargeArrayNullableEvent::IsTelaneAPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 626
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 626
    functionName: Schema::Nest::Test::Trait::TestETrait::TestESmallArrayNullableEvent::SetTesaneANull
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestESmallArrayNullableEvent::SetTesaneANull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 631
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 631
    functionName: Schema::Nest::Test::Trait::TestETrait::TestESmallArrayNullableEvent::SetTesaneAPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: TestESmallArrayNullableEvent::SetTesaneAPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 637
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 637
    functionName: Schema::Nest::Test::Trait::TestETrait::TestESmallArrayNullableEvent::IsTesaneAPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: TestESmallArrayNullableEvent::IsTesaneAPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/weave/common/EventIdStructSchema.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: Schema::Weave::Common::EventId::SetResourceIdNull
    functionSourceFile: /src/openweave-core/src/test-apps/schema/weave/common/EventIdStructSchema.h
    functionUses: 0
    functionsReached:
    - SET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: EventId::SetResourceIdNull(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/weave/common/EventIdStructSchema.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: Schema::Weave::Common::EventId::SetResourceIdPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/weave/common/EventIdStructSchema.h
    functionUses: 0
    functionsReached:
    - CLEAR_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: void
    signature: EventId::SetResourceIdPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD_NULLIFIED_BIT
      Src: /src/openweave-core/src/test-apps/schema/weave/common/EventIdStructSchema.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: Schema::Weave::Common::EventId::IsResourceIdPresent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/weave/common/EventIdStructSchema.h
    functionUses: 0
    functionsReached:
    - GET_FIELD_NULLIFIED_BIT
    linkageType: ''
    returnType: bool
    signature: EventId::IsResourceIdPresent(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/schema/weave/trait/telemetry/NetworkWiFiTelemetryTrait.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aEvent
    - aImportance
    argTypes:
    - NetworkWiFiStatsEvent*
    - nl::Weave::Profiles::DataManagement::ImportanceType
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: Schema::Maldives_prototype::Trait::Flintstone::NetworkWiFiTelemetryTrait::LogNetworkWiFiStatsEvent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/weave/trait/telemetry/NetworkWiFiTelemetryTrait.h
    functionUses: 0
    functionsReached:
    - WiFiTelemetry::GetTelemetryStatsAndLogEvent
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LogNetworkWiFiStatsEvent(NetworkWiFiStatsEvent *aEvent, nl::Weave::Profiles::DataManagement::ImportanceType
      aImportance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/schema/weave/trait/telemetry/NetworkWiFiTelemetryTrait.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aEvent
    - aImportance
    argTypes:
    - NetworkWiFiDeauthEvent*
    - nl::Weave::Profiles::DataManagement::ImportanceType
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: Schema::Maldives_prototype::Trait::Flintstone::NetworkWiFiTelemetryTrait::LogNetworkWiFiDeauthEvent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/weave/trait/telemetry/NetworkWiFiTelemetryTrait.h
    functionUses: 0
    functionsReached:
    - WiFiTelemetry::GetTelemetryStatsAndLogEvent
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LogNetworkWiFiDeauthEvent(NetworkWiFiDeauthEvent *aEvent, nl::Weave::Profiles::DataManagement::ImportanceType
      aImportance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/schema/weave/trait/telemetry/NetworkWiFiTelemetryTrait.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aEvent
    - aImportance
    argTypes:
    - NetworkWiFiInvalidKeyEvent*
    - nl::Weave::Profiles::DataManagement::ImportanceType
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: Schema::Maldives_prototype::Trait::Flintstone::NetworkWiFiTelemetryTrait::LogNetworkWiFiInvalidKeyEvent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/weave/trait/telemetry/NetworkWiFiTelemetryTrait.h
    functionUses: 0
    functionsReached:
    - WiFiTelemetry::GetTelemetryStatsAndLogEvent
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LogNetworkWiFiInvalidKeyEvent(NetworkWiFiInvalidKeyEvent *aEvent, nl::Weave::Profiles::DataManagement::ImportanceType
      aImportance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WiFiTelemetry::GetTelemetryStatsAndLogEvent
      Src: /src/openweave-core/src/test-apps/schema/weave/trait/telemetry/NetworkWiFiTelemetryTrait.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aEvent
    - aImportance
    argTypes:
    - NetworkWiFiDHCPFailureEvent*
    - nl::Weave::Profiles::DataManagement::ImportanceType
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: Schema::Maldives_prototype::Trait::Flintstone::NetworkWiFiTelemetryTrait::LogNetworkWiFiDHCPFailureEvent
    functionSourceFile: /src/openweave-core/src/test-apps/schema/weave/trait/telemetry/NetworkWiFiTelemetryTrait.h
    functionUses: 0
    functionsReached:
    - WiFiTelemetry::GetTelemetryStatsAndLogEvent
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: LogNetworkWiFiDHCPFailureEvent(NetworkWiFiDHCPFailureEvent *aEvent,
      nl::Weave::Profiles::DataManagement::ImportanceType aImportance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES128CTRMode::SetKey
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:49,1
    - Dst: AES128CTRMode::SetCounter
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:50,1
    - Dst: AES128CTRMode::EncryptData
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:57,1
    - Dst: AES128CTRMode::Reset
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:60,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:62,1
    - Dst: AES128CTRMode::SetKey
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:72,1
    - Dst: AES128CTRMode::SetCounter
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:73,1
    - Dst: AES128CTRMode::EncryptData
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:75,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:77,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 5
    argNames:
    - key
    - ctr
    - plainText
    - plainTextLen
    - expectedCipherText
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - size_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 82
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 82
    functionName: AES128CTRMode_DoTest
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - AES128CTRMode::SetCounter
    - AES128CTRMode::SetKey
    - AES128CTRMode::Reset
    - AES128CTRMode::EncryptData
    linkageType: ''
    returnType: bool
    signature: AES128CTRMode_DoTest(const uint8_t *key, const uint8_t *ctr, const
      uint8_t *plainText, size_t plainTextLen, const uint8_t *expectedCipherText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES128CTRMode_DoTest
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:94,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 98
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 98
    functionName: Check_AES128CTRMode_Test1
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - AES128CTRMode_DoTest
    linkageType: ''
    returnType: void
    signature: Check_AES128CTRMode_Test1(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES128CTRMode_DoTest
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:112,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 116
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 116
    functionName: Check_AES128CTRMode_Test2
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - AES128CTRMode_DoTest
    linkageType: ''
    returnType: void
    signature: Check_AES128CTRMode_Test2(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES128CTRMode_DoTest
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:132,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 136
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 136
    functionName: Check_AES128CTRMode_Test3
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - AES128CTRMode_DoTest
    linkageType: ''
    returnType: void
    signature: Check_AES128CTRMode_Test3(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES128CTRMode::SetKey
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:163,1
    - Dst: AES128CTRMode::SetWeaveMessageCounter
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:164,1
    - Dst: AES128CTRMode::EncryptData
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:166,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:168,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:171,1
    - Dst: AES128CTRMode::Reset
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:173,1
    - Dst: AES128CTRMode::SetKey
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:175,1
    - Dst: AES128CTRMode::SetWeaveMessageCounter
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:176,1
    - Dst: AES128CTRMode::EncryptData
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:178,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:180,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:183,1
    - Dst: AES128CTRMode::Reset
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 186
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 186
    functionName: Check_AES128CTRMode_Test4
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - NL_TEST_ASSERT
    - AES128CTRMode::SetWeaveMessageCounter
    - AES128CTRMode::SetKey
    - AES128CTRMode::Reset
    - AES128CTRMode::EncryptData
    linkageType: ''
    returnType: void
    signature: Check_AES128CTRMode_Test4(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES256CTRMode::SetKey
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:198,1
    - Dst: AES256CTRMode::SetCounter
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:199,1
    - Dst: AES256CTRMode::EncryptData
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:206,1
    - Dst: AES256CTRMode::Reset
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:209,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:211,1
    - Dst: AES256CTRMode::SetKey
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:221,1
    - Dst: AES256CTRMode::SetCounter
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:222,1
    - Dst: AES256CTRMode::EncryptData
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:224,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:226,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 5
    argNames:
    - key
    - ctr
    - plainText
    - plainTextLen
    - expectedCipherText
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - size_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 231
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 231
    functionName: AES256CTRMode_DoTest
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp
    functionUses: 0
    functionsReached:
    - AES256CTRMode::Reset
    - memcmp
    - AES256CTRMode::SetKey
    - AES256CTRMode::SetCounter
    - AES256CTRMode::EncryptData
    linkageType: ''
    returnType: bool
    signature: AES256CTRMode_DoTest(const uint8_t *key, const uint8_t *ctr, const
      uint8_t *plainText, size_t plainTextLen, const uint8_t *expectedCipherText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES256CTRMode_DoTest
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:244,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 248
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 248
    functionName: Check_AES256CTRMode_Test1
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp
    functionUses: 0
    functionsReached:
    - AES256CTRMode_DoTest
    - NL_TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: Check_AES256CTRMode_Test1(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES256CTRMode_DoTest
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:263,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 267
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 267
    functionName: Check_AES256CTRMode_Test2
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp
    functionUses: 0
    functionsReached:
    - AES256CTRMode_DoTest
    - NL_TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: Check_AES256CTRMode_Test2(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES256CTRMode_DoTest
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:284,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 288
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 288
    functionName: Check_AES256CTRMode_Test3
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp
    functionUses: 0
    functionsReached:
    - AES256CTRMode_DoTest
    - NL_TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: Check_AES256CTRMode_Test3(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES128BlockCipherEnc::SetKey
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:297,1
    - Dst: AES128BlockCipherEnc::EncryptBlock
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:298,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:299,1
    - Dst: AES128BlockCipherDec::SetKey
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:304,1
    - Dst: AES128BlockCipherDec::DecryptBlock
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:305,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - key
    - plainText
    - expectedCipherText
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 312
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 312
    functionName: AES128BlockCipher_DoTest
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - AES128BlockCipherDec::SetKey
    - AES128BlockCipherEnc::SetKey
    - AES128BlockCipherDec::DecryptBlock
    - AES128BlockCipherEnc::EncryptBlock
    linkageType: ''
    returnType: bool
    signature: AES128BlockCipher_DoTest(const uint8_t *key, const uint8_t *plainText,
      const uint8_t *expectedCipherText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES128BlockCipher_DoTest
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:329,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:332,1
    - Dst: AES128BlockCipher_DoTest
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:334,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:336,1
    - Dst: AES128BlockCipher_DoTest
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:338,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:341,1
    - Dst: AES128BlockCipher_DoTest
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:343,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 347
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 347
    functionName: Check_AES128BlockCipher_Test1
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp
    functionUses: 0
    functionsReached:
    - AES128BlockCipher_DoTest
    - NL_TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: Check_AES128BlockCipher_Test1(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES256BlockCipherEnc::SetKey
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:356,1
    - Dst: AES256BlockCipherEnc::EncryptBlock
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:357,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:358,1
    - Dst: AES256BlockCipherDec::SetKey
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:363,1
    - Dst: AES256BlockCipherDec::DecryptBlock
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:364,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - key
    - plainText
    - expectedCipherText
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 371
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 371
    functionName: AES256BlockCipher_DoTest
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - AES256BlockCipherEnc::EncryptBlock
    - AES256BlockCipherDec::DecryptBlock
    - AES256BlockCipherEnc::SetKey
    - AES256BlockCipherDec::SetKey
    linkageType: ''
    returnType: bool
    signature: AES256BlockCipher_DoTest(const uint8_t *key, const uint8_t *plainText,
      const uint8_t *expectedCipherText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES256BlockCipher_DoTest
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:388,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:390,1
    - Dst: AES256BlockCipher_DoTest
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:392,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:394,1
    - Dst: AES256BlockCipher_DoTest
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:396,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:398,1
    - Dst: AES256BlockCipher_DoTest
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:400,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 403
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 403
    functionName: Check_AES256BlockCipher_Test1
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - AES256BlockCipher_DoTest
    linkageType: ''
    returnType: void
    signature: Check_AES256BlockCipher_Test1(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:425,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:427,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 430
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 430
    functionName: WeaveCryptoAESTests
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp
    functionUses: 1
    functionsReached:
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: WeaveCryptoAESTests(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HMACSHA1::Begin
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHMACTests.cpp:45,1
    - Dst: HMACSHA1::AddData
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHMACTests.cpp:46,1
    - Dst: HMACSHA1::Finish
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHMACTests.cpp:47,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHMACTests.cpp:50,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHMACTests.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 51
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 51
    functionName: Check_HMACSHA1_Test1
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHMACTests.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - HMACSHA1::AddData
    - NL_TEST_ASSERT
    - HMACSHA1::Finish
    - HMACSHA1::Begin
    linkageType: ''
    returnType: void
    signature: Check_HMACSHA1_Test1(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HMACSHA1::Begin
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHMACTests.cpp:68,1
    - Dst: HMACSHA1::AddData
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHMACTests.cpp:69,1
    - Dst: HMACSHA1::Finish
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHMACTests.cpp:70,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHMACTests.cpp:73,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHMACTests.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 74
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 74
    functionName: Check_HMACSHA1_Test2
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHMACTests.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - HMACSHA1::AddData
    - NL_TEST_ASSERT
    - HMACSHA1::Finish
    - HMACSHA1::Begin
    linkageType: ''
    returnType: void
    signature: Check_HMACSHA1_Test2(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHMACTests.cpp:89,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHMACTests.cpp:91,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHMACTests.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 94
    functionName: WeaveCryptoHMACTests
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHMACTests.cpp
    functionUses: 1
    functionsReached:
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: WeaveCryptoHMACTests(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::Security::SHA1::SHA1
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:68,1
    - Dst: nl::Weave::Platform::Security::SHA1::Begin
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:73,1
    - Dst: nl::Weave::Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:75,1
    - Dst: strlen
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:75,1
    - Dst: nl::Weave::Platform::Security::SHA1::Finish
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:76,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:78,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 80
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 80
    functionName: Check_SHA1_Test1
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - NL_TEST_ASSERT
    - nl::Weave::Platform::Security::SHA1::Begin
    - strlen
    - nl::Weave::Platform::Security::SHA1::SHA1
    - nl::Weave::Platform::Security::SHA1::AddData
    - nl::Weave::Platform::Security::SHA1::Finish
    linkageType: ''
    returnType: void
    signature: Check_SHA1_Test1(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::Security::SHA1::SHA1
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:85,1
    - Dst: BN_new
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:90,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:91,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:93,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:95,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:98,1
    - Dst: nl::Weave::Platform::Security::SHA1::Begin
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:100,1
    - Dst: nl::Weave::Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:102,1
    - Dst: nl::Weave::Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:104,1
    - Dst: nl::Weave::Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:105,1
    - Dst: nl::Weave::Platform::Security::SHA1::Finish
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:106,1
    - Dst: nl::Weave::Platform::Security::SHA1::Begin
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:108,1
    - Dst: nl::Weave::Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:109,1
    - Dst: nl::Weave::Platform::Security::SHA1::Finish
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:110,1
    - Dst: BN_free
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 6
    argNames:
    - inSuite
    - numData
    - numDataLen
    - negative
    - expectedHashBuf
    - actualHashBuf
    argTypes:
    - nlTestSuite*
    - uint8_t*
    - size_t
    - bool
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 113
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 113
    functionName: GenBigNumHashes
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_set_negative
    - BN_free
    - BN_bin2bn
    - BN_is_zero
    - NL_TEST_ASSERT
    - nl::Weave::Platform::Security::SHA1::Begin
    - nl::Weave::Platform::Security::SHA1::SHA1
    - nl::Weave::Platform::Security::SHA1::AddData
    - nl::Weave::Platform::Security::SHA1::Finish
    linkageType: ''
    returnType: void
    signature: GenBigNumHashes(nlTestSuite *inSuite, const uint8_t *numData, size_t
      numDataLen, bool negative, uint8_t *expectedHashBuf, uint8_t *actualHashBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenBigNumHashes
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:126,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:128,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:128,1
    - Dst: GenBigNumHashes
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:130,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:132,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:132,1
    - Dst: GenBigNumHashes
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:134,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:136,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:136,1
    - Dst: GenBigNumHashes
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:138,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:140,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:140,1
    - Dst: GenBigNumHashes
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:142,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:144,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:144,1
    - Dst: GenBigNumHashes
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:146,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:148,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 149
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 149
    functionName: Check_SHA1_Test2
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - memcmp
    - GenBigNumHashes
    linkageType: ''
    returnType: void
    signature: Check_SHA1_Test2(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Platform::Security::SHA1::SHA1
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:266,1
    - Dst: nl::Weave::Platform::Security::SHA1::Begin
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:269,1
    - Dst: nl::Weave::Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:270,1
    - Dst: nl::Weave::Platform::Security::SHA1::Finish
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:271,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:273,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:273,1
    - Dst: nl::Weave::Platform::Security::SHA1::Begin
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:275,1
    - Dst: nl::Weave::Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:276,1
    - Dst: nl::Weave::Platform::Security::SHA1::Finish
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:277,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:279,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:279,1
    - Dst: nl::Weave::Platform::Security::SHA1::Begin
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:281,1
    - Dst: nl::Weave::Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:282,1
    - Dst: nl::Weave::Platform::Security::SHA1::Finish
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:283,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:285,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:285,1
    - Dst: nl::Weave::Platform::Security::SHA1::Begin
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:287,1
    - Dst: nl::Weave::Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:288,1
    - Dst: nl::Weave::Platform::Security::SHA1::Finish
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:289,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:291,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:291,1
    - Dst: nl::Weave::Platform::Security::SHA1::Begin
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:293,1
    - Dst: nl::Weave::Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:294,1
    - Dst: nl::Weave::Platform::Security::SHA1::Finish
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:295,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:297,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:297,1
    - Dst: nl::Weave::Platform::Security::SHA1::Begin
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:299,1
    - Dst: nl::Weave::Platform::Security::SHA1::AddData
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:300,1
    - Dst: nl::Weave::Platform::Security::SHA1::Finish
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:301,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:303,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 304
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 304
    functionName: Check_SHA1_Test3
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - NL_TEST_ASSERT
    - nl::Weave::Platform::Security::SHA1::Begin
    - nl::Weave::Platform::Security::SHA1::SHA1
    - nl::Weave::Platform::Security::SHA1::AddData
    - nl::Weave::Platform::Security::SHA1::Finish
    linkageType: ''
    returnType: void
    signature: Check_SHA1_Test3(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:322,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:324,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 327
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 327
    functionName: WeaveCryptoSHATests
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp
    functionUses: 1
    functionsReached:
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: WeaveCryptoSHATests(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HKDFSHA1::BeginExtractKey
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:51,1
    - Dst: HKDFSHA1::AddKeyMaterial
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:52,1
    - Dst: HKDFSHA1::FinishExtractKey
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:53,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:56,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:59,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:59,1
    - Dst: HKDFSHA1::ExpandKey
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:62,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:65,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:68,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 69
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 69
    functionName: Check_HKDF_Test1
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - NL_TEST_ASSERT
    - HKDFSHA1::AddKeyMaterial
    - HKDFSHA1::FinishExtractKey
    - HKDFSHA1::ExpandKey
    - HKDFSHA1::BeginExtractKey
    linkageType: ''
    returnType: void
    signature: Check_HKDF_Test1(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HKDFSHA1::BeginExtractKey
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:101,1
    - Dst: HKDFSHA1::AddKeyMaterial
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:102,1
    - Dst: HKDFSHA1::FinishExtractKey
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:103,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:106,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:109,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:109,1
    - Dst: HKDFSHA1::ExpandKey
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:112,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:115,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:118,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 119
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 119
    functionName: Check_HKDF_Test2
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - NL_TEST_ASSERT
    - HKDFSHA1::AddKeyMaterial
    - HKDFSHA1::FinishExtractKey
    - HKDFSHA1::ExpandKey
    - HKDFSHA1::BeginExtractKey
    linkageType: ''
    returnType: void
    signature: Check_HKDF_Test2(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HKDFSHA1::BeginExtractKey
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:136,1
    - Dst: HKDFSHA1::AddKeyMaterial
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:137,1
    - Dst: HKDFSHA1::FinishExtractKey
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:138,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:141,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:144,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:144,1
    - Dst: HKDFSHA1::ExpandKey
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:147,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:150,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:153,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 154
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 154
    functionName: Check_HKDF_Test3
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - NL_TEST_ASSERT
    - HKDFSHA1::AddKeyMaterial
    - HKDFSHA1::FinishExtractKey
    - HKDFSHA1::ExpandKey
    - HKDFSHA1::BeginExtractKey
    linkageType: ''
    returnType: void
    signature: Check_HKDF_Test3(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HKDFSHA1::BeginExtractKey
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:170,1
    - Dst: HKDFSHA1::AddKeyMaterial
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:171,1
    - Dst: HKDFSHA1::FinishExtractKey
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:172,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:175,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:178,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:178,1
    - Dst: HKDFSHA1::ExpandKey
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:181,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:184,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:187,1
    - Dst: memcmp
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 188
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 188
    functionName: Check_HKDF_Test4
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - NL_TEST_ASSERT
    - HKDFSHA1::AddKeyMaterial
    - HKDFSHA1::FinishExtractKey
    - HKDFSHA1::ExpandKey
    - HKDFSHA1::BeginExtractKey
    linkageType: ''
    returnType: void
    signature: Check_HKDF_Test4(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl_test_set_output_style
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:205,1
    - Dst: nlTestRunner
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:207,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 210
    functionName: WeaveCryptoHKDFTests
    functionSourceFile: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp
    functionUses: 1
    functionsReached:
    - nlTestRunnerStats
    - nl_test_set_output_style
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: WeaveCryptoHKDFTests(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzPASEResponderStep2.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: RAND_bytes
    functionSourceFile: /src/openweave-core/src/test-apps/fuzz/FuzzPASEResponderStep2.cpp
    functionUses: 4
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: RAND_bytes(unsigned char *buf, int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageExternalFuzzer
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzPASEResponderStep2.cpp:84,1
    - Dst: PASEEngineTest
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzPASEResponderStep2.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 103
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 103
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/openweave-core/src/test-apps/fuzz/FuzzPASEResponderStep2.cpp
    functionUses: 0
    functionsReached:
    - MessageExternalFuzzer
    - PASEEngineTest
    linkageType: ''
    returnType: int
    signature: LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/fuzz/FuzzPASEResponderStep2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzUtils.cpp:42,1
    - Dst: fwrite
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzUtils.cpp:43,1
    - Dst: fclose
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzUtils.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - inBuf
    - size
    - fileName
    argTypes:
    - uint8_t*
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: saveCorpus
    functionSourceFile: /src/openweave-core/src/test-apps/fuzz/FuzzUtils.cpp
    functionUses: 0
    functionsReached:
    - fopen
    - fwrite
    - fclose
    linkageType: ''
    returnType: void
    signature: saveCorpus(const uint8_t *inBuf, size_t size, char *fileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzUtils.cpp:51,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzUtils.cpp:52,1
    - Dst: printf
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzUtils.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - inBuf
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: printCorpus
    functionSourceFile: /src/openweave-core/src/test-apps/fuzz/FuzzUtils.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: printCorpus(const uint8_t *inBuf, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzCertificateConversion.cpp:62,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzCertificateConversion.cpp:63,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzCertificateConversion.cpp:65,1
    - Dst: InitOpenSSL
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzCertificateConversion.cpp:70,1
    - Dst: DetectCertFormat
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzCertificateConversion.cpp:74,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzCertificateConversion.cpp:80,1
    - Dst: X509PEMToDER
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzCertificateConversion.cpp:88,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzCertificateConversion.cpp:89,1
    - Dst: Base64Decode
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzCertificateConversion.cpp:94,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzCertificateConversion.cpp:95,1
    - Dst: ConvertX509CertToWeaveCert
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzCertificateConversion.cpp:101,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzCertificateConversion.cpp:105,1
    - Dst: ConvertWeaveCertToX509Cert
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzCertificateConversion.cpp:110,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzCertificateConversion.cpp:114,1
    - Dst: memcpy
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzCertificateConversion.cpp:119,1
    - Dst: X509DERToPEM
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzCertificateConversion.cpp:125,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzCertificateConversion.cpp:126,1
    - Dst: Base64Encode
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzCertificateConversion.cpp:130,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzCertificateConversion.cpp:131,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 138
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 138
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/openweave-core/src/test-apps/fuzz/FuzzCertificateConversion.cpp
    functionUses: 0
    functionsReached:
    - Base64Encode
    - ConvertWeaveCertToX509Cert
    - X509DERToPEM
    - ExitNow
    - X509PEMToDER
    - InitOpenSSL
    - Base64Decode
    - memcpy
    - DetectCertFormat
    - fprintf
    - ConvertX509CertToWeaveCert
    linkageType: ''
    returnType: int
    signature: LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/fuzz/FuzzCertificateConversion.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzPASEResponderStep1.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: RAND_bytes
    functionSourceFile: /src/openweave-core/src/test-apps/fuzz/FuzzPASEResponderStep1.cpp
    functionUses: 4
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: RAND_bytes(unsigned char *buf, int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageExternalFuzzer
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzPASEResponderStep1.cpp:84,1
    - Dst: PASEEngineTest
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzPASEResponderStep1.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 103
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 103
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/openweave-core/src/test-apps/fuzz/FuzzPASEResponderStep1.cpp
    functionUses: 0
    functionsReached:
    - MessageExternalFuzzer
    - PASEEngineTest
    linkageType: ''
    returnType: int
    signature: LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/fuzz/FuzzPASEResponderStep1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzPASEKeyConfirm.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: RAND_bytes
    functionSourceFile: /src/openweave-core/src/test-apps/fuzz/FuzzPASEKeyConfirm.cpp
    functionUses: 4
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: RAND_bytes(unsigned char *buf, int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageExternalFuzzer
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzPASEKeyConfirm.cpp:84,1
    - Dst: PASEEngineTest
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzPASEKeyConfirm.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 104
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 104
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/openweave-core/src/test-apps/fuzz/FuzzPASEKeyConfirm.cpp
    functionUses: 0
    functionsReached:
    - MessageExternalFuzzer
    - PASEEngineTest
    linkageType: ''
    returnType: int
    signature: LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/fuzz/FuzzPASEKeyConfirm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzPASEInitiatorStep2.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: RAND_bytes
    functionSourceFile: /src/openweave-core/src/test-apps/fuzz/FuzzPASEInitiatorStep2.cpp
    functionUses: 4
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: RAND_bytes(unsigned char *buf, int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageExternalFuzzer
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzPASEInitiatorStep2.cpp:84,1
    - Dst: PASEEngineTest
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzPASEInitiatorStep2.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 103
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 103
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/openweave-core/src/test-apps/fuzz/FuzzPASEInitiatorStep2.cpp
    functionUses: 0
    functionsReached:
    - MessageExternalFuzzer
    - PASEEngineTest
    linkageType: ''
    returnType: int
    signature: LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/fuzz/FuzzPASEInitiatorStep2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzPASEInitiatorStep1.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: RAND_bytes
    functionSourceFile: /src/openweave-core/src/test-apps/fuzz/FuzzPASEInitiatorStep1.cpp
    functionUses: 4
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: RAND_bytes(unsigned char *buf, int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MessageExternalFuzzer
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzPASEInitiatorStep1.cpp:84,1
    - Dst: PASEEngineTest
      Src: /src/openweave-core/src/test-apps/fuzz/FuzzPASEInitiatorStep1.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 106
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 106
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/openweave-core/src/test-apps/fuzz/FuzzPASEInitiatorStep1.cpp
    functionUses: 0
    functionsReached:
    - MessageExternalFuzzer
    - PASEEngineTest
    linkageType: ''
    returnType: int
    signature: LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: main
    functionSourceFile: /src/openweave-core/src/test-apps/fuzz/FuzzPASEInitiatorStep1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 95
    functionName: nl::Ble::BlePlatformDelegate
    functionSourceFile: /src/openweave-core/src/ble/BlePlatformDelegate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: BlePlatformDelegate
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a_seq_num'
    argTypes:
    - SequenceNumber_t
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: nl::Ble::IncSeqNum
    functionSourceFile: /src/openweave-core/src/ble/WoBle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: IncSeqNum(SequenceNumber_t & a_seq_num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/WoBle.cpp:74,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/WoBle.cpp:75,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/WoBle.cpp:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - rx_flags
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: nl::Ble::DidReceiveData
    functionSourceFile: /src/openweave-core/src/ble/WoBle.cpp
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: DidReceiveData(uint8_t rx_flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/ble/WoBle.cpp:84,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/WoBle.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 89
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 89
    functionName: nl::Ble::PrintBufDebug
    functionSourceFile: /src/openweave-core/src/ble/WoBle.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::DataLength
    - WeaveLogError
    linkageType: ''
    returnType: void
    signature: PrintBufDebug(PacketBuffer * buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 2
    argNames:
    - an_app_state
    - expect_first_ack
    argTypes:
    - void*
    - bool
    constantsTouched: []
    func_position:
      end: 130
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 130
    functionName: nl::Ble::WoBle::Init
    functionSourceFile: /src/openweave-core/src/ble/WoBle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BLE_ERROR
    signature: WoBle::Init(void * an_app_state, bool expect_first_ack)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IncSeqNum
      Src: /src/openweave-core/src/ble/WoBle.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 150
    functionName: nl::Ble::WoBle::GetAndIncrementNextTxSeqNum
    functionSourceFile: /src/openweave-core/src/ble/WoBle.cpp
    functionUses: 0
    functionsReached:
    - IncSeqNum
    linkageType: ''
    returnType: SequenceNumber_t
    signature: WoBle::GetAndIncrementNextTxSeqNum()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 160
    functionName: nl::Ble::WoBle::GetAndRecordRxAckSeqNum
    functionSourceFile: /src/openweave-core/src/ble/WoBle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SequenceNumber_t
    signature: WoBle::GetAndRecordRxAckSeqNum()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: nl::Ble::WoBle::HasUnackedData
    functionSourceFile: /src/openweave-core/src/ble/WoBle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WoBle::HasUnackedData() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDebugBtpEngine
      Src: /src/openweave-core/src/ble/WoBle.cpp:169,1
    - Dst: WeaveLogDebugBtpEngine
      Src: /src/openweave-core/src/ble/WoBle.cpp:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ack_num
    argTypes:
    - SequenceNumber_t
    constantsTouched: []
    func_position:
      end: 189
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 189
    functionName: nl::Ble::WoBle::IsValidAck
    functionSourceFile: /src/openweave-core/src/ble/WoBle.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogDebugBtpEngine
    linkageType: ''
    returnType: bool
    signature: WoBle::IsValidAck(SequenceNumber_t ack_num) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDebugBtpEngine
      Src: /src/openweave-core/src/ble/WoBle.cpp:195,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/WoBle.cpp:198,1
    - Dst: nl::Ble::WoBle::IsValidAck
      Src: /src/openweave-core/src/ble/WoBle.cpp:198,1
    - Dst: IncSeqNum
      Src: /src/openweave-core/src/ble/WoBle.cpp:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - ack_num
    argTypes:
    - SequenceNumber_t
    constantsTouched: []
    func_position:
      end: 216
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 216
    functionName: nl::Ble::WoBle::HandleAckReceived
    functionSourceFile: /src/openweave-core/src/ble/WoBle.cpp
    functionUses: 0
    functionsReached:
    - IncSeqNum
    - WeaveLogDebugBtpEngine
    - VerifyOrExit
    - nl::Ble::WoBle::IsValidAck
    linkageType: ''
    returnType: BLE_ERROR
    signature: WoBle::HandleAckReceived(SequenceNumber_t ack_num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/WoBle.cpp:226,1
    - Dst: PacketBuffer*::EnsureReservedSize
      Src: /src/openweave-core/src/ble/WoBle.cpp:226,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/WoBle.cpp:229,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/ble/WoBle.cpp:229,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/ble/WoBle.cpp:230,1
    - Dst: nl::Ble::WoBle::GetAndRecordRxAckSeqNum
      Src: /src/openweave-core/src/ble/WoBle.cpp:236,1
    - Dst: WeaveLogDebugBtpEngine
      Src: /src/openweave-core/src/ble/WoBle.cpp:237,1
    - Dst: nl::Ble::WoBle::GetAndIncrementNextTxSeqNum
      Src: /src/openweave-core/src/ble/WoBle.cpp:240,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/ble/WoBle.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - data
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 247
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 247
    functionName: nl::Ble::WoBle::EncodeStandAloneAck
    functionSourceFile: /src/openweave-core/src/ble/WoBle.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Ble::WoBle::GetAndRecordRxAckSeqNum
    - WeaveLogDebugBtpEngine
    - VerifyOrExit
    - PacketBuffer*::MaxDataLength
    - PacketBuffer*::Start
    - PacketBuffer*::EnsureReservedSize
    - nl::Ble::WoBle::GetAndIncrementNextTxSeqNum
    linkageType: ''
    returnType: BLE_ERROR
    signature: WoBle::EncodeStandAloneAck(PacketBuffer * data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/WoBle.cpp:269,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/WoBle.cpp:276,1
    - Dst: nl::Ble::WoBle::SetRxPacketType
      Src: /src/openweave-core/src/ble/WoBle.cpp:277,1
    - Dst: nl::Ble::WoBle::SetRxPacketType
      Src: /src/openweave-core/src/ble/WoBle.cpp:279,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/WoBle.cpp:282,1
    - Dst: nl::Ble::WoBle::HandleAckReceived
      Src: /src/openweave-core/src/ble/WoBle.cpp:289,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/WoBle.cpp:290,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/WoBle.cpp:297,1
    - Dst: IncSeqNum
      Src: /src/openweave-core/src/ble/WoBle.cpp:300,1
    - Dst: DidReceiveData
      Src: /src/openweave-core/src/ble/WoBle.cpp:303,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/ble/WoBle.cpp:306,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/ble/WoBle.cpp:309,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/ble/WoBle.cpp:314,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/ble/WoBle.cpp:314,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/ble/WoBle.cpp:314,1
    - Dst: WeaveLogDebugBtpEngine
      Src: /src/openweave-core/src/ble/WoBle.cpp:316,1
    - Dst: PrintBufDebug
      Src: /src/openweave-core/src/ble/WoBle.cpp:317,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/WoBle.cpp:322,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/ble/WoBle.cpp:329,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/ble/WoBle.cpp:332,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/WoBle.cpp:334,1
    - Dst: AddToEnd
      Src: /src/openweave-core/src/ble/WoBle.cpp:336,1
    - Dst: CompactHead
      Src: /src/openweave-core/src/ble/WoBle.cpp:337,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/WoBle.cpp:343,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/WoBle.cpp:346,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/ble/WoBle.cpp:350,1
    - Dst: AddToEnd
      Src: /src/openweave-core/src/ble/WoBle.cpp:351,1
    - Dst: CompactHead
      Src: /src/openweave-core/src/ble/WoBle.cpp:352,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/WoBle.cpp:357,1
    - Dst: Next
      Src: /src/openweave-core/src/ble/WoBle.cpp:357,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/ble/WoBle.cpp:362,1
    - Dst: SetDataLength
      Src: /src/openweave-core/src/ble/WoBle.cpp:372,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/WoBle.cpp:376,1
    - Dst: DataLength
      Src: /src/openweave-core/src/ble/WoBle.cpp:376,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/WoBle.cpp:389,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/WoBle.cpp:392,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/WoBle.cpp:396,1
    - Dst: DataLength
      Src: /src/openweave-core/src/ble/WoBle.cpp:396,1
    - Dst: nl::Ble::WoBle::LogState
      Src: /src/openweave-core/src/ble/WoBle.cpp:398,1
    - Dst: AddToEnd
      Src: /src/openweave-core/src/ble/WoBle.cpp:405,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 77
    argCount: 3
    argNames:
    - data
    - ' receivedAck'
    - ' didReceiveAck'
    argTypes:
    - PacketBuffer*
    - SequenceNumber_t
    - bool
    constantsTouched: []
    func_position:
      end: 415
      start: 262
    functionDepth: 3
    functionLinenumber: 262
    functionLinenumberEnd: 415
    functionName: nl::Ble::WoBle::HandleCharacteristicReceived
    functionSourceFile: /src/openweave-core/src/ble/WoBle.cpp
    functionUses: 0
    functionsReached:
    - AddToEnd
    - GetFlag
    - nl::Weave::System::PacketBuffer::New
    - SetDataLength
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    - VerifyOrExit
    - nl::Ble::WoBle::HandleAckReceived
    - PacketBuffer*::SetDataLength
    - PrintBufDebug
    - PacketBuffer*::SetStart
    - WeaveLogDebugBtpEngine
    - ExitNow
    - CompactHead
    - nl::Weave::min
    - nl::Ble::WoBle::SetRxPacketType
    - DidReceiveData
    - Next
    - PacketBuffer*::DataLength
    - DataLength
    - IncSeqNum
    - nl::Ble::WoBle::LogState
    - SuccessOrExit
    linkageType: ''
    returnType: BLE_ERROR
    signature: WoBle::HandleCharacteristicReceived(PacketBuffer * data, SequenceNumber_t
      & receivedAck, bool & didReceiveAck)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 420
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 420
    functionName: nl::Ble::WoBle::RxPacket
    functionSourceFile: /src/openweave-core/src/ble/WoBle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PacketBuffer
    signature: '* WoBle::RxPacket()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 433
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 433
    functionName: nl::Ble::WoBle::ClearRxPacket
    functionSourceFile: /src/openweave-core/src/ble/WoBle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WoBle::ClearRxPacket()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Ble::WoBle::HasUnackedData
      Src: /src/openweave-core/src/ble/WoBle.cpp:443,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/WoBle.cpp:445,1
    - Dst: DataLength
      Src: /src/openweave-core/src/ble/WoBle.cpp:458,1
    - Dst: WeaveLogDebugBtpEngine
      Src: /src/openweave-core/src/ble/WoBle.cpp:460,1
    - Dst: PrintBufDebug
      Src: /src/openweave-core/src/ble/WoBle.cpp:461,1
    - Dst: EnsureReservedSize
      Src: /src/openweave-core/src/ble/WoBle.cpp:468,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/WoBle.cpp:471,1
    - Dst: Start
      Src: /src/openweave-core/src/ble/WoBle.cpp:479,1
    - Dst: SetStart
      Src: /src/openweave-core/src/ble/WoBle.cpp:481,1
    - Dst: nl::Ble::WoBle::TxPacketType
      Src: /src/openweave-core/src/ble/WoBle.cpp:487,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/WoBle.cpp:488,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/WoBle.cpp:493,1
    - Dst: nl::Ble::WoBle::GetAndRecordRxAckSeqNum
      Src: /src/openweave-core/src/ble/WoBle.cpp:494,1
    - Dst: WeaveLogDebugBtpEngine
      Src: /src/openweave-core/src/ble/WoBle.cpp:495,1
    - Dst: nl::Ble::WoBle::GetAndIncrementNextTxSeqNum
      Src: /src/openweave-core/src/ble/WoBle.cpp:498,1
    - Dst: SetDataLength
      Src: /src/openweave-core/src/ble/WoBle.cpp:504,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/WoBle.cpp:506,1
    - Dst: SetDataLength
      Src: /src/openweave-core/src/ble/WoBle.cpp:512,1
    - Dst: WeaveLogDebugBtpEngine
      Src: /src/openweave-core/src/ble/WoBle.cpp:516,1
    - Dst: PrintBufDebug
      Src: /src/openweave-core/src/ble/WoBle.cpp:517,1
    - Dst: Start
      Src: /src/openweave-core/src/ble/WoBle.cpp:527,1
    - Dst: SetStart
      Src: /src/openweave-core/src/ble/WoBle.cpp:534,1
    - Dst: nl::Ble::WoBle::TxPacketType
      Src: /src/openweave-core/src/ble/WoBle.cpp:540,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/WoBle.cpp:541,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/WoBle.cpp:546,1
    - Dst: nl::Ble::WoBle::GetAndRecordRxAckSeqNum
      Src: /src/openweave-core/src/ble/WoBle.cpp:547,1
    - Dst: WeaveLogDebugBtpEngine
      Src: /src/openweave-core/src/ble/WoBle.cpp:548,1
    - Dst: nl::Ble::WoBle::GetAndIncrementNextTxSeqNum
      Src: /src/openweave-core/src/ble/WoBle.cpp:551,1
    - Dst: SetDataLength
      Src: /src/openweave-core/src/ble/WoBle.cpp:555,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/WoBle.cpp:557,1
    - Dst: SetDataLength
      Src: /src/openweave-core/src/ble/WoBle.cpp:563,1
    - Dst: WeaveLogDebugBtpEngine
      Src: /src/openweave-core/src/ble/WoBle.cpp:567,1
    - Dst: PrintBufDebug
      Src: /src/openweave-core/src/ble/WoBle.cpp:568,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 81
    argCount: 2
    argNames:
    - data
    - send_ack
    argTypes:
    - PacketBuffer*
    - bool
    constantsTouched: []
    func_position:
      end: 577
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 577
    functionName: nl::Ble::WoBle::HandleCharacteristicSend
    functionSourceFile: /src/openweave-core/src/ble/WoBle.cpp
    functionUses: 0
    functionsReached:
    - SetDataLength
    - WeaveLogError
    - PrintBufDebug
    - nl::Ble::WoBle::GetAndRecordRxAckSeqNum
    - DataLength
    - WeaveLogDebugBtpEngine
    - Start
    - nl::Ble::WoBle::HasUnackedData
    - EnsureReservedSize
    - SetStart
    - nl::Ble::WoBle::TxPacketType
    - SetFlag
    - nl::Ble::WoBle::GetAndIncrementNextTxSeqNum
    linkageType: ''
    returnType: bool
    signature: WoBle::HandleCharacteristicSend(PacketBuffer * data, bool send_ack)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 582
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 582
    functionName: nl::Ble::WoBle::TxPacket
    functionSourceFile: /src/openweave-core/src/ble/WoBle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PacketBuffer
    signature: '* WoBle::TxPacket()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 595
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 595
    functionName: nl::Ble::WoBle::ClearTxPacket
    functionSourceFile: /src/openweave-core/src/ble/WoBle.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: WoBle::ClearTxPacket()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/WoBle.cpp:599,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/WoBle.cpp:601,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/WoBle.cpp:602,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/WoBle.cpp:603,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/WoBle.cpp:604,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/WoBle.cpp:605,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/WoBle.cpp:606,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/WoBle.cpp:607,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/WoBle.cpp:608,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/WoBle.cpp:610,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/WoBle.cpp:611,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/WoBle.cpp:612,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/WoBle.cpp:613,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/WoBle.cpp:614,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/WoBle.cpp:615,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/WoBle.cpp:616,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/WoBle.cpp:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 618
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 618
    functionName: nl::Ble::WoBle::LogState
    functionSourceFile: /src/openweave-core/src/ble/WoBle.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogError
    linkageType: ''
    returnType: void
    signature: WoBle::LogState() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Ble::WoBle::LogState
      Src: /src/openweave-core/src/ble/WoBle.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 625
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 625
    functionName: nl::Ble::WoBle::LogStateDebug
    functionSourceFile: /src/openweave-core/src/ble/WoBle.cpp
    functionUses: 0
    functionsReached:
    - nl::Ble::WoBle::LogState
    linkageType: ''
    returnType: void
    signature: WoBle::LogStateDebug() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/src/ble/WeaveBleServiceData.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: nl::Ble::Init
    functionSourceFile: /src/openweave-core/src/ble/WeaveBleServiceData.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::LittleEndian::Get16
      Src: /src/openweave-core/src/ble/WeaveBleServiceData.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: nl::Ble::GetVendorId
    functionSourceFile: /src/openweave-core/src/ble/WeaveBleServiceData.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Get16
    linkageType: ''
    returnType: uint16_t
    signature: GetVendorId(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::LittleEndian::Put16
      Src: /src/openweave-core/src/ble/WeaveBleServiceData.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vendorId
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: nl::Ble::SetVendorId
    functionSourceFile: /src/openweave-core/src/ble/WeaveBleServiceData.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Put16
    linkageType: ''
    returnType: void
    signature: SetVendorId(uint16_t vendorId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::LittleEndian::Get16
      Src: /src/openweave-core/src/ble/WeaveBleServiceData.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: nl::Ble::GetProductId
    functionSourceFile: /src/openweave-core/src/ble/WeaveBleServiceData.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Get16
    linkageType: ''
    returnType: uint16_t
    signature: GetProductId(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::LittleEndian::Put16
      Src: /src/openweave-core/src/ble/WeaveBleServiceData.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - productId
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: nl::Ble::SetProductId
    functionSourceFile: /src/openweave-core/src/ble/WeaveBleServiceData.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Put16
    linkageType: ''
    returnType: void
    signature: SetProductId(uint16_t productId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::LittleEndian::Get64
      Src: /src/openweave-core/src/ble/WeaveBleServiceData.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: nl::Ble::GetDeviceId
    functionSourceFile: /src/openweave-core/src/ble/WeaveBleServiceData.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Get64
    linkageType: ''
    returnType: uint64_t
    signature: GetDeviceId(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Encoding::LittleEndian::Put64
      Src: /src/openweave-core/src/ble/WeaveBleServiceData.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - deviceId
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: nl::Ble::SetDeviceId
    functionSourceFile: /src/openweave-core/src/ble/WeaveBleServiceData.h
    functionUses: 0
    functionsReached:
    - nl::Weave::Encoding::LittleEndian::Put64
    linkageType: ''
    returnType: void
    signature: SetDeviceId(uint64_t deviceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: nl::Ble::BleEndPointPool::Size
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: Size() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 119
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 119
    functionName: nl::Ble::BleEndPointPool::Get
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BLEEndPoint
    signature: '* Get(int i) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Ble::BleEndPointPool::Get
      Src: /src/openweave-core/src/ble/BleLayer.cpp:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 138
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 138
    functionName: nl::Ble::BleEndPointPool::Find
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached:
    - nl::Ble::BleEndPointPool::Get
    linkageType: ''
    returnType: BLEEndPoint
    signature: '* Find(BLE_CONNECTION_OBJECT c)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Ble::BleEndPointPool::Get
      Src: /src/openweave-core/src/ble/BleLayer.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 151
    functionName: nl::Ble::BleEndPointPool::GetFree
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached:
    - nl::Ble::BleEndPointPool::Get
    linkageType: ''
    returnType: BLEEndPoint
    signature: '* GetFree() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 177
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 177
    functionName: nl::Ble::BleLayerObject::Release
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BleLayerObject::Release()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - index
    - version
    argTypes:
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 200
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 200
    functionName: nl::Ble::BleTransportCapabilitiesRequestMessage::SetSupportedProtocolVersion
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BleTransportCapabilitiesRequestMessage::SetSupportedProtocolVersion(uint8_t
      index, uint8_t version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BleLayer.cpp:208,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/ble/BleLayer.cpp:208,1
    - Dst: nl::Weave::Encoding::Write8
      Src: /src/openweave-core/src/ble/BleLayer.cpp:210,1
    - Dst: nl::Weave::Encoding::Write8
      Src: /src/openweave-core/src/ble/BleLayer.cpp:211,1
    - Dst: nl::Weave::Encoding::Write8
      Src: /src/openweave-core/src/ble/BleLayer.cpp:215,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/ble/BleLayer.cpp:218,1
    - Dst: nl::Weave::Encoding::Write8
      Src: /src/openweave-core/src/ble/BleLayer.cpp:219,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/ble/BleLayer.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 225
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 225
    functionName: nl::Ble::BleTransportCapabilitiesRequestMessage::Encode
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Encoding::Write8
    - VerifyOrExit
    - PacketBuffer*::MaxDataLength
    - nl::Weave::Encoding::LittleEndian::Write16
    linkageType: ''
    returnType: BLE_ERROR
    signature: BleTransportCapabilitiesRequestMessage::Encode(PacketBuffer * msgBuf)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BleLayer.cpp:233,1
    - Dst: DataLength
      Src: /src/openweave-core/src/ble/BleLayer.cpp:233,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BleLayer.cpp:235,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/ble/BleLayer.cpp:235,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BleLayer.cpp:236,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/ble/BleLayer.cpp:236,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/ble/BleLayer.cpp:240,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/ble/BleLayer.cpp:243,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/ble/BleLayer.cpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ' msgBuf'
    - ' msg'
    argTypes:
    - PacketBuffer
    - BleTransportCapabilitiesRequestMessage
    constantsTouched: []
    func_position:
      end: 248
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 248
    functionName: nl::Ble::BleTransportCapabilitiesRequestMessage::Decode
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached:
    - DataLength
    - nl::Weave::Encoding::Read8
    - VerifyOrExit
    - nl::Weave::Encoding::LittleEndian::Read16
    linkageType: ''
    returnType: BLE_ERROR
    signature: BleTransportCapabilitiesRequestMessage::Decode(const PacketBuffer &
      msgBuf, BleTransportCapabilitiesRequestMessage & msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BleLayer.cpp:258,1
    - Dst: PacketBuffer*::MaxDataLength
      Src: /src/openweave-core/src/ble/BleLayer.cpp:258,1
    - Dst: nl::Weave::Encoding::Write8
      Src: /src/openweave-core/src/ble/BleLayer.cpp:260,1
    - Dst: nl::Weave::Encoding::Write8
      Src: /src/openweave-core/src/ble/BleLayer.cpp:261,1
    - Dst: nl::Weave::Encoding::Write8
      Src: /src/openweave-core/src/ble/BleLayer.cpp:263,1
    - Dst: nl::Weave::Encoding::LittleEndian::Write16
      Src: /src/openweave-core/src/ble/BleLayer.cpp:264,1
    - Dst: nl::Weave::Encoding::Write8
      Src: /src/openweave-core/src/ble/BleLayer.cpp:265,1
    - Dst: PacketBuffer*::SetDataLength
      Src: /src/openweave-core/src/ble/BleLayer.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - msgBuf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 271
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 271
    functionName: nl::Ble::BleTransportCapabilitiesResponseMessage::Encode
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetDataLength
    - nl::Weave::Encoding::Write8
    - VerifyOrExit
    - PacketBuffer*::MaxDataLength
    - nl::Weave::Encoding::LittleEndian::Write16
    linkageType: ''
    returnType: BLE_ERROR
    signature: BleTransportCapabilitiesResponseMessage::Encode(PacketBuffer * msgBuf)
      const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BleLayer.cpp:280,1
    - Dst: DataLength
      Src: /src/openweave-core/src/ble/BleLayer.cpp:280,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BleLayer.cpp:282,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/ble/BleLayer.cpp:282,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BleLayer.cpp:283,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/ble/BleLayer.cpp:283,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/ble/BleLayer.cpp:285,1
    - Dst: nl::Weave::Encoding::LittleEndian::Read16
      Src: /src/openweave-core/src/ble/BleLayer.cpp:286,1
    - Dst: nl::Weave::Encoding::Read8
      Src: /src/openweave-core/src/ble/BleLayer.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - ' msgBuf'
    - ' msg'
    argTypes:
    - PacketBuffer
    - BleTransportCapabilitiesResponseMessage
    constantsTouched: []
    func_position:
      end: 291
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 291
    functionName: nl::Ble::BleTransportCapabilitiesResponseMessage::Decode
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached:
    - DataLength
    - nl::Weave::Encoding::Read8
    - VerifyOrExit
    - nl::Weave::Encoding::LittleEndian::Read16
    linkageType: ''
    returnType: BLE_ERROR
    signature: "BleTransportCapabilitiesResponseMessage::Decode(const PacketBuffer
      & msgBuf,\n                                                          BleTransportCapabilitiesResponseMessage
      & msg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 298
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 298
    functionName: nl::Ble::BleLayer::BleLayer
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BleLayer::BleLayer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterBleLayerErrorFormatter
      Src: /src/openweave-core/src/ble/BleLayer.cpp:305,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BleLayer.cpp:307,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BleLayer.cpp:308,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BleLayer.cpp:309,1
    - Dst: memset
      Src: /src/openweave-core/src/ble/BleLayer.cpp:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - platformDelegate
    - appDelegate
    - systemLayer
    argTypes:
    - BlePlatformDelegate*
    - BleApplicationDelegate*
    - Weave::System::Layer*
    constantsTouched: []
    func_position:
      end: 330
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 330
    functionName: nl::Ble::BleLayer::Init
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 3
    functionsReached:
    - RegisterBleLayerErrorFormatter
    - VerifyOrExit
    - memset
    linkageType: ''
    returnType: BLE_ERROR
    signature: "BleLayer::Init(BlePlatformDelegate * platformDelegate, BleApplicationDelegate
      * appDelegate,\n                         Weave::System::Layer * systemLayer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Get
      Src: /src/openweave-core/src/ble/BleLayer.cpp:339,1
    - Dst: BLEEndPoint*::Abort
      Src: /src/openweave-core/src/ble/BleLayer.cpp:348,1
    - Dst: BLEEndPoint*::IsUnsubscribePending
      Src: /src/openweave-core/src/ble/BleLayer.cpp:353,1
    - Dst: BLEEndPoint*::Free
      Src: /src/openweave-core/src/ble/BleLayer.cpp:355,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 361
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 361
    functionName: nl::Ble::BleLayer::Shutdown
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached:
    - BLEEndPoint*::Abort
    - BLEEndPoint*::IsUnsubscribePending
    - BLEEndPoint*::Free
    - Get
    linkageType: ''
    returnType: BLE_ERROR
    signature: BleLayer::Shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFree
      Src: /src/openweave-core/src/ble/BleLayer.cpp:377,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BleLayer.cpp:380,1
    - Dst: nl::Ble::BleLayer::Init
      Src: /src/openweave-core/src/ble/BleLayer.cpp:384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - retEndPoint
    - connObj
    - role
    - autoClose
    argTypes:
    - BLEEndPoint**
    - BLE_CONNECTION_OBJECT
    - BleRole
    - bool
    constantsTouched: []
    func_position:
      end: 391
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 391
    functionName: nl::Ble::BleLayer::NewBleEndPoint
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - GetFree
    - nl::Ble::BleLayer::Init
    linkageType: ''
    returnType: BLE_ERROR
    signature: BleLayer::NewBleEndPoint(BLEEndPoint ** retEndPoint, BLE_CONNECTION_OBJECT
      connObj, BleRole role, bool autoClose)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Ble::BleLayer::NewBleEndPoint
      Src: /src/openweave-core/src/ble/BleLayer.cpp:401,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BleLayer.cpp:402,1
    - Dst: BLEEndPoint*::Receive
      Src: /src/openweave-core/src/ble/BleLayer.cpp:406,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BleLayer.cpp:408,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/ble/BleLayer.cpp:413,1
    - Dst: NotifyWeaveConnectionClosed
      Src: /src/openweave-core/src/ble/BleLayer.cpp:420,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BleLayer.cpp:425,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - connObj
    - pBuf
    argTypes:
    - BLE_CONNECTION_OBJECT
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 429
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 429
    functionName: nl::Ble::BleLayer::HandleBleTransportConnectionInitiated
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    - NotifyWeaveConnectionClosed
    - nl::Ble::BleLayer::NewBleEndPoint
    - BLEEndPoint*::Receive
    - SuccessOrExit
    linkageType: ''
    returnType: BLE_ERROR
    signature: BleLayer::HandleBleTransportConnectionInitiated(BLE_CONNECTION_OBJECT
      connObj, PacketBuffer * pBuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UUIDsMatch
      Src: /src/openweave-core/src/ble/BleLayer.cpp:434,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BleLayer.cpp:436,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/ble/BleLayer.cpp:437,1
    - Dst: UUIDsMatch
      Src: /src/openweave-core/src/ble/BleLayer.cpp:440,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BleLayer.cpp:444,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/ble/BleLayer.cpp:445,1
    - Dst: Find
      Src: /src/openweave-core/src/ble/BleLayer.cpp:449,1
    - Dst: BLEEndPoint*::Receive
      Src: /src/openweave-core/src/ble/BleLayer.cpp:453,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BleLayer.cpp:457,1
    - Dst: nl::Ble::BleLayer::HandleBleTransportConnectionInitiated
      Src: /src/openweave-core/src/ble/BleLayer.cpp:462,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BleLayer.cpp:466,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BleLayer.cpp:472,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/ble/BleLayer.cpp:478,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - connObj
    - svcId
    - charId
    - pBuf
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveBleUUID*
    - WeaveBleUUID*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 482
      start: 431
    functionDepth: 3
    functionLinenumber: 431
    functionLinenumberEnd: 482
    functionName: nl::Ble::BleLayer::HandleWriteReceived
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    - BLEEndPoint*::Receive
    - UUIDsMatch
    - ExitNow
    - Find
    - nl::Ble::BleLayer::HandleBleTransportConnectionInitiated
    linkageType: ''
    returnType: bool
    signature: "BleLayer::HandleWriteReceived(BLE_CONNECTION_OBJECT connObj, const
      WeaveBleUUID * svcId, const WeaveBleUUID * charId,\n                                   PacketBuffer
      * pBuf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UUIDsMatch
      Src: /src/openweave-core/src/ble/BleLayer.cpp:487,1
    - Dst: UUIDsMatch
      Src: /src/openweave-core/src/ble/BleLayer.cpp:492,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BleLayer.cpp:496,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/ble/BleLayer.cpp:497,1
    - Dst: Find
      Src: /src/openweave-core/src/ble/BleLayer.cpp:501,1
    - Dst: BLEEndPoint*::Receive
      Src: /src/openweave-core/src/ble/BleLayer.cpp:505,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BleLayer.cpp:509,1
    - Dst: WeaveLogDetail
      Src: /src/openweave-core/src/ble/BleLayer.cpp:514,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BleLayer.cpp:519,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/ble/BleLayer.cpp:525,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - connObj
    - svcId
    - charId
    - pBuf
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveBleUUID*
    - WeaveBleUUID*
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 529
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 529
    functionName: nl::Ble::BleLayer::HandleIndicationReceived
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    - BLEEndPoint*::Receive
    - UUIDsMatch
    - ExitNow
    - Find
    - WeaveLogDetail
    linkageType: ''
    returnType: bool
    signature: "BleLayer::HandleIndicationReceived(BLE_CONNECTION_OBJECT connObj,
      const WeaveBleUUID * svcId, const WeaveBleUUID * charId,\n                                        PacketBuffer
      * pBuf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UUIDsMatch
      Src: /src/openweave-core/src/ble/BleLayer.cpp:533,1
    - Dst: UUIDsMatch
      Src: /src/openweave-core/src/ble/BleLayer.cpp:538,1
    - Dst: nl::Ble::BleLayer::HandleAckReceived
      Src: /src/openweave-core/src/ble/BleLayer.cpp:540,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BleLayer.cpp:544,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - connObj
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveBleUUID*
    - WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 548
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 548
    functionName: nl::Ble::BleLayer::HandleWriteConfirmation
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - UUIDsMatch
    - nl::Ble::BleLayer::HandleAckReceived
    linkageType: ''
    returnType: bool
    signature: BleLayer::HandleWriteConfirmation(BLE_CONNECTION_OBJECT connObj, const
      WeaveBleUUID * svcId, const WeaveBleUUID * charId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UUIDsMatch
      Src: /src/openweave-core/src/ble/BleLayer.cpp:552,1
    - Dst: UUIDsMatch
      Src: /src/openweave-core/src/ble/BleLayer.cpp:557,1
    - Dst: nl::Ble::BleLayer::HandleAckReceived
      Src: /src/openweave-core/src/ble/BleLayer.cpp:559,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BleLayer.cpp:563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - connObj
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveBleUUID*
    - WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 567
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 567
    functionName: nl::Ble::BleLayer::HandleIndicationConfirmation
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - UUIDsMatch
    - nl::Ble::BleLayer::HandleAckReceived
    linkageType: ''
    returnType: bool
    signature: BleLayer::HandleIndicationConfirmation(BLE_CONNECTION_OBJECT connObj,
      const WeaveBleUUID * svcId, const WeaveBleUUID * charId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Find
      Src: /src/openweave-core/src/ble/BleLayer.cpp:572,1
    - Dst: BLEEndPoint*::HandleGattSendConfirmationReceived
      Src: /src/openweave-core/src/ble/BleLayer.cpp:576,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BleLayer.cpp:580,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BleLayer.cpp:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - connObj
    argTypes:
    - BLE_CONNECTION_OBJECT
    constantsTouched: []
    func_position:
      end: 587
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 587
    functionName: nl::Ble::BleLayer::HandleAckReceived
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 2
    functionsReached:
    - WeaveLogError
    - BLEEndPoint*::HandleGattSendConfirmationReceived
    - Find
    linkageType: ''
    returnType: void
    signature: BleLayer::HandleAckReceived(BLE_CONNECTION_OBJECT connObj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UUIDsMatch
      Src: /src/openweave-core/src/ble/BleLayer.cpp:591,1
    - Dst: UUIDsMatch
      Src: /src/openweave-core/src/ble/BleLayer.cpp:596,1
    - Dst: Find
      Src: /src/openweave-core/src/ble/BleLayer.cpp:599,1
    - Dst: BLEEndPoint*::HandleSubscribeReceived
      Src: /src/openweave-core/src/ble/BleLayer.cpp:603,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BleLayer.cpp:607,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - connObj
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveBleUUID*
    - WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 612
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 612
    functionName: nl::Ble::BleLayer::HandleSubscribeReceived
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - UUIDsMatch
    - BLEEndPoint*::HandleSubscribeReceived
    - Find
    linkageType: ''
    returnType: bool
    signature: BleLayer::HandleSubscribeReceived(BLE_CONNECTION_OBJECT connObj, const
      WeaveBleUUID * svcId, const WeaveBleUUID * charId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UUIDsMatch
      Src: /src/openweave-core/src/ble/BleLayer.cpp:616,1
    - Dst: UUIDsMatch
      Src: /src/openweave-core/src/ble/BleLayer.cpp:621,1
    - Dst: Find
      Src: /src/openweave-core/src/ble/BleLayer.cpp:623,1
    - Dst: BLEEndPoint*::HandleSubscribeComplete
      Src: /src/openweave-core/src/ble/BleLayer.cpp:627,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BleLayer.cpp:631,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - connObj
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveBleUUID*
    - WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 636
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 636
    functionName: nl::Ble::BleLayer::HandleSubscribeComplete
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached:
    - BLEEndPoint*::HandleSubscribeComplete
    - WeaveLogError
    - UUIDsMatch
    - Find
    linkageType: ''
    returnType: bool
    signature: BleLayer::HandleSubscribeComplete(BLE_CONNECTION_OBJECT connObj, const
      WeaveBleUUID * svcId, const WeaveBleUUID * charId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UUIDsMatch
      Src: /src/openweave-core/src/ble/BleLayer.cpp:640,1
    - Dst: UUIDsMatch
      Src: /src/openweave-core/src/ble/BleLayer.cpp:645,1
    - Dst: Find
      Src: /src/openweave-core/src/ble/BleLayer.cpp:648,1
    - Dst: BLEEndPoint*::DoClose
      Src: /src/openweave-core/src/ble/BleLayer.cpp:652,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BleLayer.cpp:656,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - connObj
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveBleUUID*
    - WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 661
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 661
    functionName: nl::Ble::BleLayer::HandleUnsubscribeReceived
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached:
    - BLEEndPoint*::DoClose
    - WeaveLogError
    - UUIDsMatch
    - Find
    linkageType: ''
    returnType: bool
    signature: BleLayer::HandleUnsubscribeReceived(BLE_CONNECTION_OBJECT connObj,
      const WeaveBleUUID * svcId, const WeaveBleUUID * charId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UUIDsMatch
      Src: /src/openweave-core/src/ble/BleLayer.cpp:665,1
    - Dst: UUIDsMatch
      Src: /src/openweave-core/src/ble/BleLayer.cpp:670,1
    - Dst: Find
      Src: /src/openweave-core/src/ble/BleLayer.cpp:673,1
    - Dst: BLEEndPoint*::HandleUnsubscribeComplete
      Src: /src/openweave-core/src/ble/BleLayer.cpp:677,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BleLayer.cpp:681,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - connObj
    - svcId
    - charId
    argTypes:
    - BLE_CONNECTION_OBJECT
    - WeaveBleUUID*
    - WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 686
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 686
    functionName: nl::Ble::BleLayer::HandleUnsubscribeComplete
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - UUIDsMatch
    - BLEEndPoint*::HandleUnsubscribeComplete
    - Find
    linkageType: ''
    returnType: bool
    signature: BleLayer::HandleUnsubscribeComplete(BLE_CONNECTION_OBJECT connObj,
      const WeaveBleUUID * svcId, const WeaveBleUUID * charId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Find
      Src: /src/openweave-core/src/ble/BleLayer.cpp:691,1
    - Dst: BLEEndPoint*::IsUnsubscribePending
      Src: /src/openweave-core/src/ble/BleLayer.cpp:695,1
    - Dst: BLEEndPoint*::Free
      Src: /src/openweave-core/src/ble/BleLayer.cpp:699,1
    - Dst: BLEEndPoint*::DoClose
      Src: /src/openweave-core/src/ble/BleLayer.cpp:703,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - connObj
    - err
    argTypes:
    - BLE_CONNECTION_OBJECT
    - BLE_ERROR
    constantsTouched: []
    func_position:
      end: 706
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 706
    functionName: nl::Ble::BleLayer::HandleConnectionError
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached:
    - BLEEndPoint*::DoClose
    - BLEEndPoint*::IsUnsubscribePending
    - BLEEndPoint*::Free
    - Find
    linkageType: ''
    returnType: void
    signature: BleLayer::HandleConnectionError(BLE_CONNECTION_OBJECT connObj, BLE_ERROR
      err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BleTransportProtocolVersion>
      Src: /src/openweave-core/src/ble/BleLayer.cpp:724,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - ' reqMsg'
    argTypes:
    - BleTransportCapabilitiesRequestMessage
    constantsTouched: []
    func_position:
      end: 733
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 733
    functionName: nl::Ble::BleLayer::GetHighestSupportedProtocolVersion
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<BleTransportProtocolVersion>
    linkageType: ''
    returnType: BleTransportProtocolVersion
    signature: BleLayer::GetHighestSupportedProtocolVersion(const BleTransportCapabilitiesRequestMessage
      & reqMsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/src/ble/BleUUID.cpp:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - idOne
    - idTwo
    argTypes:
    - WeaveBleUUID*
    - WeaveBleUUID*
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: nl::Ble::UUIDsMatch
    functionSourceFile: /src/openweave-core/src/ble/BleUUID.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: UUIDsMatch(const WeaveBleUUID * idOne, const WeaveBleUUID * idTwo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:112,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:116,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:117,1
    - Dst: memset
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:120,1
    - Dst: mPlatformDelegate::GetMTU
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:122,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:128,1
    - Dst: BleTransportCapabilitiesRequestMessage::SetSupportedProtocolVersion
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:131,1
    - Dst: BleTransportCapabilitiesRequestMessage::Encode
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:134,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:135,1
    - Dst: nl::Ble::BLEEndPoint::StartConnectTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:138,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:139,1
    - Dst: nl::Ble::BLEEndPoint::SendWrite
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:142,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:145,1
    - Dst: nl::Ble::BLEEndPoint::QueueTx
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:150,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:156,1
    - Dst: nl::Ble::BLEEndPoint::StopConnectTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:162,1
    - Dst: nl::Ble::BLEEndPoint::DoClose
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 167
    functionName: nl::Ble::BLEEndPoint::StartConnect
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Ble::BLEEndPoint::SendWrite
    - nl::Ble::BLEEndPoint::StopConnectTimer
    - nl::Weave::System::PacketBuffer::Free
    - nl::Ble::BLEEndPoint::DoClose
    - nl::Ble::BLEEndPoint::QueueTx
    - VerifyOrExit
    - memset
    - ExitNow
    - BleTransportCapabilitiesRequestMessage::SetSupportedProtocolVersion
    - mPlatformDelegate::GetMTU
    - SuccessOrExit
    - BleTransportCapabilitiesRequestMessage::Encode
    - nl::Ble::BLEEndPoint::StartConnectTimer
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: BLE_ERROR
    signature: BLEEndPoint::StartConnect()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Ble::BLEEndPoint::StopConnectTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:176,1
    - Dst: OnConnectComplete
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 191
    functionName: nl::Ble::BLEEndPoint::HandleConnectComplete
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Ble::BLEEndPoint::StopConnectTimer
    - OnConnectComplete
    linkageType: ''
    returnType: BLE_ERROR
    signature: BLEEndPoint::HandleConnectComplete()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:197,1
    - Dst: nl::Ble::BLEEndPoint::StopReceiveConnectionTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:201,1
    - Dst: OnWeaveBleConnectReceived
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 215
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 215
    functionName: nl::Ble::BLEEndPoint::HandleReceiveConnectionComplete
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - OnWeaveBleConnectReceived
    - WeaveLogDebugBleEndPoint
    - nl::Ble::BLEEndPoint::StopReceiveConnectionTimer
    linkageType: ''
    returnType: BLE_ERROR
    signature: BLEEndPoint::HandleReceiveConnectionComplete()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:221,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:222,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:226,1
    - Dst: PopPacketTag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:226,1
    - Dst: nl::Ble::BLEEndPoint::SendIndication
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:228,1
    - Dst: QueueTxLock
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:231,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:232,1
    - Dst: QueueTxUnlock
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:234,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:236,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:238,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:243,1
    - Dst: nl::Ble::BLEEndPoint::StartAckReceivedTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:246,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:247,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:249,1
    - Dst: nl::Ble::BLEEndPoint::HandleReceiveConnectionComplete
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:262,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:263,1
    - Dst: nl::Ble::BLEEndPoint::DoClose
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 273
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 273
    functionName: nl::Ble::BLEEndPoint::HandleSubscribeReceived
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Ble::BLEEndPoint::SendIndication
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    - nl::Ble::BLEEndPoint::DoClose
    - QueueTxUnlock
    - nl::Ble::BLEEndPoint::HandleReceiveConnectionComplete
    - VerifyOrExit
    - ExitNow
    - PopPacketTag
    - nl::Ble::BLEEndPoint::StartAckReceivedTimer
    - SuccessOrExit
    - QueueTxLock
    - WeaveLogDebugBleEndPoint
    linkageType: ''
    returnType: void
    signature: BLEEndPoint::HandleSubscribeReceived()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:277,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:278,1
    - Dst: nl::Ble::BLEEndPoint::DriveSending
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:280,1
    - Dst: nl::Ble::BLEEndPoint::DoClose
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 286
    functionName: nl::Ble::BLEEndPoint::HandleSubscribeComplete
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - nl::Ble::BLEEndPoint::DriveSending
    - SetFlag
    - nl::Ble::BLEEndPoint::DoClose
    linkageType: ''
    returnType: void
    signature: BLEEndPoint::HandleSubscribeComplete()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Ble::BLEEndPoint::Free
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 292
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 292
    functionName: nl::Ble::BLEEndPoint::HandleUnsubscribeComplete
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Ble::BLEEndPoint::Free
    linkageType: ''
    returnType: void
    signature: BLEEndPoint::HandleUnsubscribeComplete()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: nl::Ble::BLEEndPoint::IsConnected
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: BLEEndPoint::IsConnected(uint8_t state) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: nl::Ble::BLEEndPoint::IsUnsubscribePending
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - GetFlag
    linkageType: ''
    returnType: bool
    signature: BLEEndPoint::IsUnsubscribePending() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Ble::BLEEndPoint::DoClose
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 315
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 315
    functionName: nl::Ble::BLEEndPoint::Abort
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Ble::BLEEndPoint::DoClose
    linkageType: ''
    returnType: void
    signature: BLEEndPoint::Abort()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Ble::BLEEndPoint::DoClose
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 328
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 328
    functionName: nl::Ble::BLEEndPoint::Close
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Ble::BLEEndPoint::DoClose
    linkageType: ''
    returnType: void
    signature: BLEEndPoint::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Ble::BLEEndPoint::StopConnectTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:342,1
    - Dst: nl::Ble::BLEEndPoint::StopReceiveConnectionTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:346,1
    - Dst: TxState
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:350,1
    - Dst: nl::Ble::BLEEndPoint::FinalizeClose
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:352,1
    - Dst: nl::Ble::BLEEndPoint::DoCloseCallback
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:369,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - flags
    - err
    argTypes:
    - uint8_t
    - BLE_ERROR
    constantsTouched: []
    func_position:
      end: 373
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 373
    functionName: nl::Ble::BLEEndPoint::DoClose
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 5
    functionsReached:
    - nl::Ble::BLEEndPoint::StopConnectTimer
    - TxState
    - nl::Ble::BLEEndPoint::DoCloseCallback
    - nl::Ble::BLEEndPoint::FinalizeClose
    - nl::Ble::BLEEndPoint::StopReceiveConnectionTimer
    linkageType: ''
    returnType: void
    signature: BLEEndPoint::DoClose(uint8_t flags, BLE_ERROR err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QueueTxLock
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:380,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:381,1
    - Dst: QueueTxUnlock
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:383,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:386,1
    - Dst: nl::Ble::BLEEndPoint::DoCloseCallback
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:393,1
    - Dst: nl::Ble::BLEEndPoint::Free
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:400,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:404,1
    - Dst: nl::Ble::BLEEndPoint::StopAckReceivedTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:407,1
    - Dst: nl::Ble::BLEEndPoint::StopSendAckTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:408,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:410,1
    - Dst: mPlatformDelegate::UnsubscribeCharacteristic
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:414,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:416,1
    - Dst: nl::Ble::BLEEndPoint::Free
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:419,1
    - Dst: nl::Ble::BLEEndPoint::Free
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:424,1
    - Dst: nl::Ble::BLEEndPoint::Free
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:429,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - oldState
    - flags
    - err
    argTypes:
    - uint8_t
    - uint8_t
    - BLE_ERROR
    constantsTouched: []
    func_position:
      end: 432
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 432
    functionName: nl::Ble::BLEEndPoint::FinalizeClose
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 1
    functionsReached:
    - nl::Ble::BLEEndPoint::Free
    - mPlatformDelegate::UnsubscribeCharacteristic
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    - nl::Ble::BLEEndPoint::DoCloseCallback
    - WeaveLogProgress
    - QueueTxUnlock
    - GetFlag
    - nl::Ble::BLEEndPoint::StopSendAckTimer
    - nl::Ble::BLEEndPoint::StopAckReceivedTimer
    - QueueTxLock
    linkageType: ''
    returnType: void
    signature: BLEEndPoint::FinalizeClose(uint8_t oldState, uint8_t flags, BLE_ERROR
      err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OnConnectComplete
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:440,1
    - Dst: OnConnectionClosed
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:447,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - state
    - flags
    - err
    argTypes:
    - uint8_t
    - uint8_t
    - BLE_ERROR
    constantsTouched: []
    func_position:
      end: 454
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 454
    functionName: nl::Ble::BLEEndPoint::DoCloseCallback
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 2
    functionsReached:
    - OnConnectionClosed
    - OnConnectComplete
    linkageType: ''
    returnType: void
    signature: BLEEndPoint::DoCloseCallback(uint8_t state, uint8_t flags, BLE_ERROR
      err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:460,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:462,1
    - Dst: mPlatformDelegate::CloseConnection
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:463,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:467,1
    - Dst: mApplicationDelegate::NotifyWeaveConnectionClosed
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 474
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 474
    functionName: nl::Ble::BLEEndPoint::ReleaseBleConnection
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogProgress
    - mApplicationDelegate::NotifyWeaveConnectionClosed
    - GetFlag
    - mPlatformDelegate::CloseConnection
    linkageType: ''
    returnType: void
    signature: BLEEndPoint::ReleaseBleConnection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Ble::BLEEndPoint::ReleaseBleConnection
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:481,1
    - Dst: nl::Ble::BLEEndPoint::FreeWoBle
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:484,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:487,1
    - Dst: nl::Ble::BLEEndPoint::StopConnectTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:490,1
    - Dst: nl::Ble::BLEEndPoint::StopReceiveConnectionTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:491,1
    - Dst: nl::Ble::BLEEndPoint::StopAckReceivedTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:492,1
    - Dst: nl::Ble::BLEEndPoint::StopSendAckTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:493,1
    - Dst: nl::Ble::BLEEndPoint::StopUnsubscribeTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:494,1
    - Dst: StopTestTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:496,1
    - Dst: Release
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 511
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 511
    functionName: nl::Ble::BLEEndPoint::Free
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 2
    functionsReached:
    - nl::Ble::BLEEndPoint::StopConnectTimer
    - StopTestTimer
    - nl::Weave::System::PacketBuffer::Free
    - nl::Ble::BLEEndPoint::StopUnsubscribeTimer
    - nl::Ble::BLEEndPoint::FreeWoBle
    - nl::Ble::BLEEndPoint::StopSendAckTimer
    - Release
    - nl::Ble::BLEEndPoint::StopAckReceivedTimer
    - nl::Ble::BLEEndPoint::ReleaseBleConnection
    - nl::Ble::BLEEndPoint::StopReceiveConnectionTimer
    linkageType: ''
    returnType: void
    signature: BLEEndPoint::Free()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TxPacket
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:518,1
    - Dst: ClearTxPacket
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:519,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:520,1
    - Dst: RxPacket
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:523,1
    - Dst: ClearRxPacket
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:524,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 526
      start: 513
    functionDepth: 2
    functionLinenumber: 513
    functionLinenumberEnd: 526
    functionName: nl::Ble::BLEEndPoint::FreeWoBle
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::System::PacketBuffer::Free
    - TxPacket
    - RxPacket
    - ClearTxPacket
    - ClearRxPacket
    linkageType: ''
    returnType: void
    signature: BLEEndPoint::FreeWoBle()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:534,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:537,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:538,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:539,1
    - Dst: memset
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:545,1
    - Dst: nl::Ble::BLEEndPoint::Init
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:551,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:554,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:555,1
    - Dst: nl::Ble::BLEEndPoint::Init
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:559,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:562,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:563,1
    - Dst: nl::Ble::BLEEndPoint::Init
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:565,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:568,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:569,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:582,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:589,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 4
    argNames:
    - bleLayer
    - connObj
    - role
    - autoClose
    argTypes:
    - BleLayer*
    - BLE_CONNECTION_OBJECT
    - BleRole
    - bool
    constantsTouched: []
    func_position:
      end: 596
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 596
    functionName: nl::Ble::BLEEndPoint::Init
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 1
    functionsReached:
    - WeaveLogError
    - nl::Ble::BLEEndPoint::Init
    - VerifyOrExit
    - ExitNow
    - memset
    - SetFlag
    - WeaveLogDebugBleEndPoint
    linkageType: ''
    returnType: BLE_ERROR
    signature: BLEEndPoint::Init(BleLayer * bleLayer, BLE_CONNECTION_OBJECT connObj,
      BleRole role, bool autoClose)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Ble::BLEEndPoint::SendWrite
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:604,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:612,1
    - Dst: nl::Ble::BLEEndPoint::SendIndication
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:617,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - buf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 630
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 630
    functionName: nl::Ble::BLEEndPoint::SendCharacteristic
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Ble::BLEEndPoint::SendIndication
    - WeaveLogDebugBleEndPoint
    - nl::Ble::BLEEndPoint::SendWrite
    linkageType: ''
    returnType: BLE_ERROR
    signature: BLEEndPoint::SendCharacteristic(PacketBuffer * buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:640,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:640,1
    - Dst: PushPacketTag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:641,1
    - Dst: QueueTxLock
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:644,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:649,1
    - Dst: AddToEnd
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:653,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:654,1
    - Dst: QueueTxUnlock
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - data
    - type
    argTypes:
    - PacketBuffer*
    - PacketType_t
    constantsTouched: []
    func_position:
      end: 658
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 658
    functionName: nl::Ble::BLEEndPoint::QueueTx
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 1
    functionsReached:
    - PacketBuffer*::DataLength
    - AddToEnd
    - QueueTxUnlock
    - PushPacketTag
    - QueueTxLock
    - WeaveLogDebugBleEndPoint
    linkageType: ''
    returnType: void
    signature: BLEEndPoint::QueueTx(PacketBuffer * data, PacketType_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:662,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:666,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:667,1
    - Dst: nl::Ble::BLEEndPoint::IsConnected
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:667,1
    - Dst: PacketBuffer*::Next
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:671,1
    - Dst: PacketBuffer*::CompactHead
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:673,1
    - Dst: PacketBuffer*::Next
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:675,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:678,1
    - Dst: nl::Ble::BLEEndPoint::QueueTx
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:683,1
    - Dst: nl::Ble::BLEEndPoint::DriveSending
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:687,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:688,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:691,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:695,1
    - Dst: nl::Ble::BLEEndPoint::DoClose
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:700,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - data
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 704
      start: 660
    functionDepth: 2
    functionLinenumber: 660
    functionLinenumberEnd: 704
    functionName: nl::Ble::BLEEndPoint::Send
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Ble::BLEEndPoint::IsConnected
    - PacketBuffer*::Next
    - nl::Weave::System::PacketBuffer::Free
    - nl::Ble::BLEEndPoint::DoClose
    - nl::Ble::BLEEndPoint::QueueTx
    - nl::Ble::BLEEndPoint::DriveSending
    - VerifyOrExit
    - ExitNow
    - SuccessOrExit
    - PacketBuffer*::CompactHead
    - WeaveLogDebugBleEndPoint
    linkageType: ''
    returnType: BLE_ERROR
    signature: BLEEndPoint::Send(PacketBuffer * data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:709,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:713,1
    - Dst: HandleCharacteristicSend
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - data
    - ' sentAck'
    argTypes:
    - PacketBuffer*
    - bool
    constantsTouched: []
    func_position:
      end: 725
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 725
    functionName: nl::Ble::BLEEndPoint::PrepareNextFragment
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - HandleCharacteristicSend
    - GetFlag
    - WeaveLogDebugBleEndPoint
    linkageType: ''
    returnType: bool
    signature: BLEEndPoint::PrepareNextFragment(PacketBuffer * data, bool & sentAck)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QueueTxLock
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:733,1
    - Dst: QueueTxUnlock
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:739,1
    - Dst: DetachTail
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:745,1
    - Dst: QueueTxUnlock
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:746,1
    - Dst: PopPacketTag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:750,1
    - Dst: SetTxPacketType
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:751,1
    - Dst: DoTxTiming
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:752,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:756,1
    - Dst: nl::Ble::BLEEndPoint::PrepareNextFragment
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:756,1
    - Dst: WEAVE_FAULT_INJECT
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:760,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:768,1
    - Dst: nl::Ble::BLEEndPoint::SendCharacteristic
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:771,1
    - Dst: TxPacket
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:771,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:772,1
    - Dst: nl::Ble::BLEEndPoint::StopSendAckTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:777,1
    - Dst: nl::Ble::BLEEndPoint::StartAckReceivedTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:781,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:782,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:787,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 791
      start: 727
    functionDepth: 2
    functionLinenumber: 727
    functionLinenumberEnd: 791
    functionName: nl::Ble::BLEEndPoint::SendNextMessage
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Ble::BLEEndPoint::SendCharacteristic
    - DetachTail
    - nl::Weave::System::PacketBuffer::Free
    - QueueTxUnlock
    - DoTxTiming
    - VerifyOrExit
    - ExitNow
    - TxPacket
    - PopPacketTag
    - nl::Ble::BLEEndPoint::StopSendAckTimer
    - nl::Ble::BLEEndPoint::StartAckReceivedTimer
    - nl::Ble::BLEEndPoint::PrepareNextFragment
    - SuccessOrExit
    - QueueTxLock
    - SetTxPacketType
    - WEAVE_FAULT_INJECT
    linkageType: ''
    returnType: BLE_ERROR
    signature: BLEEndPoint::SendNextMessage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Ble::BLEEndPoint::PrepareNextFragment
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:798,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:801,1
    - Dst: LogState
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:802,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:805,1
    - Dst: nl::Ble::BLEEndPoint::SendCharacteristic
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:808,1
    - Dst: TxPacket
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:808,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:809,1
    - Dst: nl::Ble::BLEEndPoint::StopSendAckTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:814,1
    - Dst: nl::Ble::BLEEndPoint::StartAckReceivedTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:818,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:819,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 823
      start: 793
    functionDepth: 2
    functionLinenumber: 793
    functionLinenumberEnd: 823
    functionName: nl::Ble::BLEEndPoint::ContinueMessageSend
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Ble::BLEEndPoint::SendCharacteristic
    - WeaveLogError
    - ExitNow
    - TxPacket
    - LogState
    - nl::Ble::BLEEndPoint::StopSendAckTimer
    - nl::Ble::BLEEndPoint::StartAckReceivedTimer
    - nl::Ble::BLEEndPoint::PrepareNextFragment
    - SuccessOrExit
    linkageType: ''
    returnType: BLE_ERROR
    signature: BLEEndPoint::ContinueMessageSend()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:827,1
    - Dst: QueueTxLock
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:833,1
    - Dst: nl::Weave::System::PacketBuffer::FreeHead
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:834,1
    - Dst: QueueTxUnlock
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:835,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:841,1
    - Dst: mPlatformDelegate::SubscribeCharacteristic
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:841,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:845,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:848,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:852,1
    - Dst: nl::Ble::BLEEndPoint::DriveStandAloneAck
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:860,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:861,1
    - Dst: nl::Ble::BLEEndPoint::DriveSending
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:867,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:868,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:875,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:880,1
    - Dst: nl::Ble::BLEEndPoint::DoClose
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:884,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 888
      start: 825
    functionDepth: 3
    functionLinenumber: 825
    functionLinenumberEnd: 888
    functionName: nl::Ble::BLEEndPoint::HandleHandshakeConfirmationReceived
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Ble::BLEEndPoint::DoClose
    - QueueTxUnlock
    - mPlatformDelegate::SubscribeCharacteristic
    - nl::Ble::BLEEndPoint::DriveSending
    - VerifyOrExit
    - ExitNow
    - nl::Weave::System::PacketBuffer::FreeHead
    - SetFlag
    - SuccessOrExit
    - QueueTxLock
    - nl::Ble::BLEEndPoint::DriveStandAloneAck
    - WeaveLogDebugBleEndPoint
    linkageType: ''
    returnType: BLE_ERROR
    signature: BLEEndPoint::HandleHandshakeConfirmationReceived()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:894,1
    - Dst: nl::Ble::BLEEndPoint::IsUnsubscribePending
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:897,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:899,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:900,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:904,1
    - Dst: nl::Ble::BLEEndPoint::IsConnected
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:904,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:909,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:912,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:915,1
    - Dst: TxState
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:925,1
    - Dst: nl::Ble::BLEEndPoint::DriveStandAloneAck
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:927,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:928,1
    - Dst: nl::Ble::BLEEndPoint::DriveSending
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:932,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:933,1
    - Dst: nl::Ble::BLEEndPoint::DoClose
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:939,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 943
      start: 890
    functionDepth: 2
    functionLinenumber: 890
    functionLinenumberEnd: 943
    functionName: nl::Ble::BLEEndPoint::HandleFragmentConfirmationReceived
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Ble::BLEEndPoint::IsConnected
    - TxState
    - nl::Weave::System::PacketBuffer::Free
    - nl::Ble::BLEEndPoint::DoClose
    - GetFlag
    - nl::Ble::BLEEndPoint::DriveSending
    - VerifyOrExit
    - ExitNow
    - nl::Ble::BLEEndPoint::IsUnsubscribePending
    - SetFlag
    - SuccessOrExit
    - nl::Ble::BLEEndPoint::DriveStandAloneAck
    - WeaveLogDebugBleEndPoint
    linkageType: ''
    returnType: BLE_ERROR
    signature: BLEEndPoint::HandleFragmentConfirmationReceived()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:947,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:950,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:953,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:955,1
    - Dst: nl::Ble::BLEEndPoint::HandleHandshakeConfirmationReceived
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:957,1
    - Dst: nl::Ble::BLEEndPoint::HandleFragmentConfirmationReceived
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 963
      start: 945
    functionDepth: 4
    functionLinenumber: 945
    functionLinenumberEnd: 963
    functionName: nl::Ble::BLEEndPoint::HandleGattSendConfirmationReceived
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Ble::BLEEndPoint::HandleFragmentConfirmationReceived
    - GetFlag
    - nl::Ble::BLEEndPoint::HandleHandshakeConfirmationReceived
    - SetFlag
    - WeaveLogDebugBleEndPoint
    linkageType: ''
    returnType: BLE_ERROR
    signature: BLEEndPoint::HandleGattSendConfirmationReceived()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Ble::BLEEndPoint::StopSendAckTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:970,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:975,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:976,1
    - Dst: nl::Ble::BLEEndPoint::DriveSending
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:980,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:981,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 985
      start: 965
    functionDepth: 3
    functionLinenumber: 965
    functionLinenumberEnd: 985
    functionName: nl::Ble::BLEEndPoint::DriveStandAloneAck
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 2
    functionsReached:
    - nl::Ble::BLEEndPoint::DriveSending
    - VerifyOrExit
    - nl::Ble::BLEEndPoint::StopSendAckTimer
    - SuccessOrExit
    - nl::Weave::System::PacketBuffer::New
    linkageType: ''
    returnType: BLE_ERROR
    signature: BLEEndPoint::DriveStandAloneAck()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:989,1
    - Dst: EncodeStandAloneAck
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:992,1
    - Dst: nl::Ble::BLEEndPoint::SendCharacteristic
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:993,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:994,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:998,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1000,1
    - Dst: nl::Ble::BLEEndPoint::StartAckReceivedTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1003,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 987
    functionDepth: 2
    functionLinenumber: 987
    functionLinenumberEnd: 1008
    functionName: nl::Ble::BLEEndPoint::DoSendStandAloneAck
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Ble::BLEEndPoint::SendCharacteristic
    - nl::Ble::BLEEndPoint::StartAckReceivedTimer
    - SetFlag
    - SuccessOrExit
    - EncodeStandAloneAck
    - WeaveLogDebugBleEndPoint
    linkageType: ''
    returnType: BLE_ERROR
    signature: BLEEndPoint::DoSendStandAloneAck()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1014,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1019,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1020,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1024,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1026,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1031,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1034,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1036,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1041,1
    - Dst: nl::Ble::BLEEndPoint::DoSendStandAloneAck
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1048,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1049,1
    - Dst: TxState
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1051,1
    - Dst: nl::Ble::BLEEndPoint::SendNextMessage
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1057,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1058,1
    - Dst: TxState
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1065,1
    - Dst: nl::Ble::BLEEndPoint::ContinueMessageSend
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1068,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1069,1
    - Dst: TxState
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1071,1
    - Dst: TxPacket
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1074,1
    - Dst: DoTxTiming
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1076,1
    - Dst: ClearTxPacket
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1078,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1081,1
    - Dst: nl::Ble::BLEEndPoint::SendNextMessage
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1087,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1088,1
    - Dst: ExpectingAck
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1090,1
    - Dst: nl::Ble::BLEEndPoint::FinalizeClose
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1093,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1010
    functionDepth: 3
    functionLinenumber: 1010
    functionLinenumberEnd: 1103
    functionName: nl::Ble::BLEEndPoint::DriveSending
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 5
    functionsReached:
    - ExpectingAck
    - TxState
    - nl::Weave::System::PacketBuffer::Free
    - DoTxTiming
    - GetFlag
    - nl::Ble::BLEEndPoint::ContinueMessageSend
    - ExitNow
    - TxPacket
    - nl::Ble::BLEEndPoint::SendNextMessage
    - ClearTxPacket
    - SuccessOrExit
    - nl::Ble::BLEEndPoint::FinalizeClose
    - nl::Ble::BLEEndPoint::DoSendStandAloneAck
    - WeaveLogDebugBleEndPoint
    linkageType: ''
    returnType: BLE_ERROR
    signature: BLEEndPoint::DriveSending()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1113,1
    - Dst: nl::Ble::BleTransportCapabilitiesRequestMessage::Decode
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1118,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1119,1
    - Dst: nl::Weave::System::PacketBuffer::New
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1121,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1122,1
    - Dst: mPlatformDelegate::GetMTU
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1131,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1138,1
    - Dst: static_cast<uint16_t>
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1138,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1142,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1149,1
    - Dst: static_cast<uint8_t>
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1149,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1152,1
    - Dst: nl::Ble::BleLayer::GetHighestSupportedProtocolVersion
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1155,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1156,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1162,1
    - Dst: SetRxFragmentSize
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1170,1
    - Dst: SetTxFragmentSize
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1171,1
    - Dst: SetRxFragmentSize
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1176,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1178,1
    - Dst: GetRxFragmentSize
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1178,1
    - Dst: GetTxFragmentSize
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1178,1
    - Dst: BleTransportCapabilitiesResponseMessage::Encode
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1180,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1181,1
    - Dst: nl::Ble::BLEEndPoint::QueueTx
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1184,1
    - Dst: nl::Ble::BLEEndPoint::StartReceiveConnectionTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1188,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1189,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1194,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1199,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 49
    argCount: 1
    argNames:
    - data
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1203
      start: 1105
    functionDepth: 3
    functionLinenumber: 1105
    functionLinenumberEnd: 1203
    functionName: nl::Ble::BLEEndPoint::HandleCapabilitiesRequestReceived
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - BleTransportCapabilitiesResponseMessage::Encode
    - nl::Ble::BleLayer::GetHighestSupportedProtocolVersion
    - GetRxFragmentSize
    - nl::Weave::System::PacketBuffer::New
    - WeaveLogError
    - nl::Weave::System::PacketBuffer::Free
    - nl::Ble::BLEEndPoint::QueueTx
    - VerifyOrExit
    - static_cast<uint8_t>
    - mPlatformDelegate::GetMTU
    - static_cast<uint16_t>
    - SetRxFragmentSize
    - WeaveLogProgress
    - GetTxFragmentSize
    - nl::Weave::min
    - SetTxFragmentSize
    - nl::Ble::BLEEndPoint::StartReceiveConnectionTimer
    - SuccessOrExit
    - nl::Ble::BleTransportCapabilitiesRequestMessage::Decode
    linkageType: ''
    returnType: BLE_ERROR
    signature: BLEEndPoint::HandleCapabilitiesRequestReceived(PacketBuffer * data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1210,1
    - Dst: nl::Ble::BleTransportCapabilitiesResponseMessage::Decode
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1213,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1214,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1216,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1218,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1225,1
    - Dst: nl::Weave::min
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1229,1
    - Dst: SetRxFragmentSize
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1234,1
    - Dst: SetTxFragmentSize
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1235,1
    - Dst: SetTxFragmentSize
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1240,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1242,1
    - Dst: GetRxFragmentSize
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1242,1
    - Dst: GetTxFragmentSize
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1242,1
    - Dst: WeaveLogProgress
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1248,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1252,1
    - Dst: nl::Ble::BLEEndPoint::StartSendAckTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1257,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1258,1
    - Dst: nl::Ble::BLEEndPoint::HandleConnectComplete
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1262,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1263,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - data
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1272
      start: 1205
    functionDepth: 3
    functionLinenumber: 1205
    functionLinenumberEnd: 1272
    functionName: nl::Ble::BLEEndPoint::HandleCapabilitiesResponseReceived
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - nl::Ble::BleTransportCapabilitiesResponseMessage::Decode
    - SetTxFragmentSize
    - SetRxFragmentSize
    - nl::Weave::System::PacketBuffer::Free
    - WeaveLogProgress
    - VerifyOrExit
    - ExitNow
    - GetTxFragmentSize
    - nl::Weave::min
    - GetRxFragmentSize
    - nl::Ble::BLEEndPoint::StartSendAckTimer
    - SuccessOrExit
    - nl::Ble::BLEEndPoint::HandleConnectComplete
    - WeaveLogDebugBleEndPoint
    linkageType: ''
    returnType: BLE_ERROR
    signature: BLEEndPoint::HandleCapabilitiesResponseReceived(PacketBuffer * data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - lastReceivedAck
    - maxRemoteWindowSize
    - newestUnackedSentSeqNum
    argTypes:
    - SequenceNumber_t
    - SequenceNumber_t
    - SequenceNumber_t
    constantsTouched: []
    func_position:
      end: 1299
      start: 1275
    functionDepth: 0
    functionLinenumber: 1275
    functionLinenumberEnd: 1299
    functionName: nl::Ble::BLEEndPoint::AdjustRemoteReceiveWindow
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SequenceNumber_t
    signature: "BLEEndPoint::AdjustRemoteReceiveWindow(SequenceNumber_t lastReceivedAck,
      SequenceNumber_t maxRemoteWindowSize,\n                                                        SequenceNumber_t
      newestUnackedSentSeqNum)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1303,1
    - Dst: IsCommandPacket
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1310,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1312,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1312,1
    - Dst: nl::Ble::BLEEndPoint::IsUnsubscribePending
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1318,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1320,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1321,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1325,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1330,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1331,1
    - Dst: nl::Ble::BLEEndPoint::HandleCapabilitiesResponseReceived
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1333,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1335,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1340,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1341,1
    - Dst: nl::Ble::BLEEndPoint::HandleCapabilitiesRequestReceived
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1343,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1352,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1357,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1361,1
    - Dst: nl::Ble::BLEEndPoint::IsConnected
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1365,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1367,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1370,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1373,1
    - Dst: LogStateDebug
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1374,1
    - Dst: HandleCharacteristicReceived
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1377,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1380,1
    - Dst: LogStateDebug
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1381,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1383,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1387,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1392,1
    - Dst: ExpectingAck
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1395,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1397,1
    - Dst: nl::Ble::BLEEndPoint::StopAckReceivedTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1398,1
    - Dst: TxState
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1400,1
    - Dst: nl::Ble::BLEEndPoint::FinalizeClose
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1403,1
    - Dst: ExitNow
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1404,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1409,1
    - Dst: nl::Ble::BLEEndPoint::RestartAckReceivedTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1410,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1411,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1414,1
    - Dst: GetNewestUnackedSentSequenceNumber
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1416,1
    - Dst: nl::Ble::BLEEndPoint::AdjustRemoteReceiveWindow
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1421,1
    - Dst: GetNewestUnackedSentSequenceNumber
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1421,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1423,1
    - Dst: nl::Ble::BLEEndPoint::DriveSending
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1426,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1427,1
    - Dst: HasUnackedData
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1443,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1446,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1448,1
    - Dst: nl::Ble::BLEEndPoint::DriveStandAloneAck
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1449,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1450,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1454,1
    - Dst: nl::Ble::BLEEndPoint::StartSendAckTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1457,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1458,1
    - Dst: RxState
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1463,1
    - Dst: RxPacket
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1466,1
    - Dst: ClearRxPacket
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1467,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1469,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1469,1
    - Dst: RxPacketType
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1473,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1475,1
    - Dst: PacketBuffer*::DataLength
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1476,1
    - Dst: RxPacketType
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1476,1
    - Dst: SetRxPacketSeq
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1478,1
    - Dst: OnCommandReceived
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1479,1
    - Dst: OnMessageReceived
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1487,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1492,1
    - Dst: nl::Weave::System::PacketBuffer::Free
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1499,1
    - Dst: nl::Ble::BLEEndPoint::DoClose
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1504,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 98
    argCount: 1
    argNames:
    - data
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1508
      start: 1301
    functionDepth: 4
    functionLinenumber: 1301
    functionLinenumberEnd: 1508
    functionName: nl::Ble::BLEEndPoint::Receive
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - HasUnackedData
    - OnCommandReceived
    - GetFlag
    - LogStateDebug
    - nl::Ble::BLEEndPoint::StartSendAckTimer
    - GetNewestUnackedSentSequenceNumber
    - nl::Ble::BLEEndPoint::AdjustRemoteReceiveWindow
    - OnMessageReceived
    - SetRxPacketSeq
    - RxPacketType
    - WeaveLogError
    - TxState
    - nl::Weave::System::PacketBuffer::Free
    - nl::Ble::BLEEndPoint::DriveSending
    - VerifyOrExit
    - nl::Ble::BLEEndPoint::IsUnsubscribePending
    - nl::Ble::BLEEndPoint::HandleCapabilitiesRequestReceived
    - SetFlag
    - ClearRxPacket
    - ExpectingAck
    - IsCommandPacket
    - nl::Ble::BLEEndPoint::DoClose
    - ExitNow
    - nl::Ble::BLEEndPoint::RestartAckReceivedTimer
    - PacketBuffer*::Start
    - RxState
    - nl::Ble::BLEEndPoint::DriveStandAloneAck
    - nl::Ble::BLEEndPoint::HandleCapabilitiesResponseReceived
    - WeaveLogDebugBleEndPoint
    - nl::Ble::BLEEndPoint::IsConnected
    - PacketBuffer*::DataLength
    - HandleCharacteristicReceived
    - RxPacket
    - nl::Ble::BLEEndPoint::StopAckReceivedTimer
    - SuccessOrExit
    - nl::Ble::BLEEndPoint::FinalizeClose
    linkageType: ''
    returnType: BLE_ERROR
    signature: BLEEndPoint::Receive(PacketBuffer * data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::AddRef
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1516,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1518,1
    - Dst: mPlatformDelegate::SendWriteRequest
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1521
      start: 1510
    functionDepth: 0
    functionLinenumber: 1510
    functionLinenumberEnd: 1521
    functionName: nl::Ble::BLEEndPoint::SendWrite
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 2
    functionsReached:
    - PacketBuffer*::AddRef
    - SetFlag
    - mPlatformDelegate::SendWriteRequest
    linkageType: ''
    returnType: bool
    signature: BLEEndPoint::SendWrite(PacketBuffer * buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::AddRef
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1529,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1531,1
    - Dst: mPlatformDelegate::SendIndication
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 1534
      start: 1523
    functionDepth: 0
    functionLinenumber: 1523
    functionLinenumberEnd: 1534
    functionName: nl::Ble::BLEEndPoint::SendIndication
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 2
    functionsReached:
    - mPlatformDelegate::SendIndication
    - PacketBuffer*::AddRef
    - SetFlag
    linkageType: ''
    returnType: bool
    signature: BLEEndPoint::SendIndication(PacketBuffer * buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mSystemLayer::StartTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1541,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1542,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1536
    functionDepth: 0
    functionLinenumber: 1536
    functionLinenumberEnd: 1547
    functionName: nl::Ble::BLEEndPoint::StartConnectTimer
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 1
    functionsReached:
    - mSystemLayer::StartTimer
    - VerifyOrExit
    - SetFlag
    linkageType: ''
    returnType: BLE_ERROR
    signature: BLEEndPoint::StartConnectTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mSystemLayer::StartTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1554,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1555,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1549
    functionDepth: 0
    functionLinenumber: 1549
    functionLinenumberEnd: 1560
    functionName: nl::Ble::BLEEndPoint::StartReceiveConnectionTimer
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 1
    functionsReached:
    - mSystemLayer::StartTimer
    - VerifyOrExit
    - SetFlag
    linkageType: ''
    returnType: BLE_ERROR
    signature: BLEEndPoint::StartReceiveConnectionTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1567,1
    - Dst: mSystemLayer::StartTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1569,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1570,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1562
    functionDepth: 0
    functionLinenumber: 1562
    functionLinenumberEnd: 1577
    functionName: nl::Ble::BLEEndPoint::StartAckReceivedTimer
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 4
    functionsReached:
    - mSystemLayer::StartTimer
    - GetFlag
    - VerifyOrExit
    - SetFlag
    linkageType: ''
    returnType: BLE_ERROR
    signature: BLEEndPoint::StartAckReceivedTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1583,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1583,1
    - Dst: nl::Ble::BLEEndPoint::StopAckReceivedTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1585,1
    - Dst: nl::Ble::BLEEndPoint::StartAckReceivedTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1587,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1579
    functionDepth: 1
    functionLinenumber: 1579
    functionLinenumberEnd: 1592
    functionName: nl::Ble::BLEEndPoint::RestartAckReceivedTimer
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 1
    functionsReached:
    - GetFlag
    - VerifyOrExit
    - nl::Ble::BLEEndPoint::StartAckReceivedTimer
    - nl::Ble::BLEEndPoint::StopAckReceivedTimer
    - SuccessOrExit
    linkageType: ''
    returnType: BLE_ERROR
    signature: BLEEndPoint::RestartAckReceivedTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1599,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1601,1
    - Dst: WeaveLogDebugBleEndPoint
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1603,1
    - Dst: mSystemLayer::StartTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1604,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1605,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1594
    functionDepth: 0
    functionLinenumber: 1594
    functionLinenumberEnd: 1612
    functionName: nl::Ble::BLEEndPoint::StartSendAckTimer
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 2
    functionsReached:
    - mSystemLayer::StartTimer
    - GetFlag
    - VerifyOrExit
    - SetFlag
    - WeaveLogDebugBleEndPoint
    linkageType: ''
    returnType: BLE_ERROR
    signature: BLEEndPoint::StartSendAckTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mSystemLayer::StartTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1619,1
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1620,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1614
    functionDepth: 0
    functionLinenumber: 1614
    functionLinenumberEnd: 1625
    functionName: nl::Ble::BLEEndPoint::StartUnsubscribeTimer
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - mSystemLayer::StartTimer
    - VerifyOrExit
    - SetFlag
    linkageType: ''
    returnType: BLE_ERROR
    signature: BLEEndPoint::StartUnsubscribeTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mSystemLayer::CancelTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1630,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1627
    functionDepth: 0
    functionLinenumber: 1627
    functionLinenumberEnd: 1632
    functionName: nl::Ble::BLEEndPoint::StopConnectTimer
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 4
    functionsReached:
    - SetFlag
    - mSystemLayer::CancelTimer
    linkageType: ''
    returnType: void
    signature: BLEEndPoint::StopConnectTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mSystemLayer::CancelTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1637,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1639
      start: 1634
    functionDepth: 0
    functionLinenumber: 1634
    functionLinenumberEnd: 1639
    functionName: nl::Ble::BLEEndPoint::StopReceiveConnectionTimer
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 3
    functionsReached:
    - SetFlag
    - mSystemLayer::CancelTimer
    linkageType: ''
    returnType: void
    signature: BLEEndPoint::StopReceiveConnectionTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mSystemLayer::CancelTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1644,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1641
    functionDepth: 0
    functionLinenumber: 1641
    functionLinenumberEnd: 1646
    functionName: nl::Ble::BLEEndPoint::StopAckReceivedTimer
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 4
    functionsReached:
    - SetFlag
    - mSystemLayer::CancelTimer
    linkageType: ''
    returnType: void
    signature: BLEEndPoint::StopAckReceivedTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mSystemLayer::CancelTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1651,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1648
    functionDepth: 0
    functionLinenumber: 1648
    functionLinenumberEnd: 1653
    functionName: nl::Ble::BLEEndPoint::StopSendAckTimer
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 5
    functionsReached:
    - SetFlag
    - mSystemLayer::CancelTimer
    linkageType: ''
    returnType: void
    signature: BLEEndPoint::StopSendAckTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mSystemLayer::CancelTimer
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1658,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1660
      start: 1655
    functionDepth: 0
    functionLinenumber: 1655
    functionLinenumberEnd: 1660
    functionName: nl::Ble::BLEEndPoint::StopUnsubscribeTimer
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 1
    functionsReached:
    - SetFlag
    - mSystemLayer::CancelTimer
    linkageType: ''
    returnType: void
    signature: BLEEndPoint::StopUnsubscribeTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BLEEndPoint *>
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1664,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1667,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1669,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1670,1
    - Dst: BLEEndPoint*::DoClose
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1671,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - systemLayer
    - appState
    - err
    argTypes:
    - Weave::System::Layer*
    - void*
    - Weave::System::Error
    constantsTouched: []
    func_position:
      end: 1673
      start: 1662
    functionDepth: 0
    functionLinenumber: 1662
    functionLinenumberEnd: 1673
    functionName: nl::Ble::BLEEndPoint::HandleConnectTimeout
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - GetFlag
    - static_cast<BLEEndPoint *>
    - BLEEndPoint*::DoClose
    - SetFlag
    linkageType: ''
    returnType: void
    signature: BLEEndPoint::HandleConnectTimeout(Weave::System::Layer * systemLayer,
      void * appState, Weave::System::Error err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BLEEndPoint *>
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1677,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1680,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1682,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1683,1
    - Dst: BLEEndPoint*::DoClose
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - systemLayer
    - appState
    - err
    argTypes:
    - Weave::System::Layer*
    - void*
    - Weave::System::Error
    constantsTouched: []
    func_position:
      end: 1686
      start: 1675
    functionDepth: 0
    functionLinenumber: 1675
    functionLinenumberEnd: 1686
    functionName: nl::Ble::BLEEndPoint::HandleReceiveConnectionTimeout
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - GetFlag
    - static_cast<BLEEndPoint *>
    - BLEEndPoint*::DoClose
    - SetFlag
    linkageType: ''
    returnType: void
    signature: BLEEndPoint::HandleReceiveConnectionTimeout(Weave::System::Layer *
      systemLayer, void * appState, Weave::System::Error err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BLEEndPoint *>
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1690,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1693,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1695,1
    - Dst: BLEEndPoint*::mWoBle::LogStateDebug
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1696,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1697,1
    - Dst: BLEEndPoint*::DoClose
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - systemLayer
    - appState
    - err
    argTypes:
    - Weave::System::Layer*
    - void*
    - Weave::System::Error
    constantsTouched: []
    func_position:
      end: 1700
      start: 1688
    functionDepth: 0
    functionLinenumber: 1688
    functionLinenumberEnd: 1700
    functionName: nl::Ble::BLEEndPoint::HandleAckReceivedTimeout
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - GetFlag
    - BLEEndPoint*::mWoBle::LogStateDebug
    - static_cast<BLEEndPoint *>
    - BLEEndPoint*::DoClose
    - SetFlag
    linkageType: ''
    returnType: void
    signature: BLEEndPoint::HandleAckReceivedTimeout(Weave::System::Layer * systemLayer,
      void * appState, Weave::System::Error err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BLEEndPoint *>
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1704,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1707,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1709,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1712,1
    - Dst: BLEEndPoint*::DriveStandAloneAck
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1714,1
    - Dst: BLEEndPoint*::DoClose
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1718,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - systemLayer
    - appState
    - err
    argTypes:
    - Weave::System::Layer*
    - void*
    - Weave::System::Error
    constantsTouched: []
    func_position:
      end: 1722
      start: 1702
    functionDepth: 0
    functionLinenumber: 1702
    functionLinenumberEnd: 1722
    functionName: nl::Ble::BLEEndPoint::HandleSendAckTimeout
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - GetFlag
    - static_cast<BLEEndPoint *>
    - BLEEndPoint*::DriveStandAloneAck
    - BLEEndPoint*::DoClose
    - SetFlag
    linkageType: ''
    returnType: void
    signature: BLEEndPoint::HandleSendAckTimeout(Weave::System::Layer * systemLayer,
      void * appState, Weave::System::Error err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<BLEEndPoint *>
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1726,1
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1729,1
    - Dst: WeaveLogError
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1731,1
    - Dst: SetFlag
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1732,1
    - Dst: BLEEndPoint*::HandleUnsubscribeComplete
      Src: /src/openweave-core/src/ble/BLEEndPoint.cpp:1733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - systemLayer
    - appState
    - err
    argTypes:
    - Weave::System::Layer*
    - void*
    - Weave::System::Error
    constantsTouched: []
    func_position:
      end: 1735
      start: 1724
    functionDepth: 0
    functionLinenumber: 1724
    functionLinenumberEnd: 1735
    functionName: nl::Ble::BLEEndPoint::HandleUnsubscribeTimeout
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.cpp
    functionUses: 0
    functionsReached:
    - WeaveLogError
    - GetFlag
    - static_cast<BLEEndPoint *>
    - SetFlag
    - BLEEndPoint*::HandleUnsubscribeComplete
    linkageType: ''
    returnType: void
    signature: BLEEndPoint::HandleUnsubscribeTimeout(Weave::System::Layer * systemLayer,
      void * appState, Weave::System::Error err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::System::Mutex::Mutex
      Src: /src/openweave-core/src/ble/BLEEndPoint.h:157,1
    - Dst: nl::Weave::System::Mutex::Lock
      Src: /src/openweave-core/src/ble/BLEEndPoint.h:223,1
    - Dst: nl::Weave::System::Mutex::Unlock
      Src: /src/openweave-core/src/ble/BLEEndPoint.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 230
    functionName: nl::Ble::BleLayerObject
    functionSourceFile: /src/openweave-core/src/ble/BLEEndPoint.h
    functionUses: 0
    functionsReached:
    - nl::Weave::System::Mutex::Unlock
    - nl::Weave::System::Mutex::Lock
    - nl::Weave::System::Mutex::Mutex
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: BleLayerObject
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 47
    functionName: nl::Ble::BleApplicationDelegate
    functionSourceFile: /src/openweave-core/src/ble/BleApplicationDelegate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: BleApplicationDelegate
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: nl::Ble::WoBle::WoBle
    functionSourceFile: /src/openweave-core/src/ble/WoBle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: WoBle(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: ~WoBle(void)
    functionSourceFile: /src/openweave-core/src/ble/WoBle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~WoBle(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: nl::Ble::WoBle::SetTxFragmentSize
    functionSourceFile: /src/openweave-core/src/ble/WoBle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetTxFragmentSize(uint8_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: nl::Ble::WoBle::SetRxFragmentSize
    functionSourceFile: /src/openweave-core/src/ble/WoBle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetRxFragmentSize(uint8_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: nl::Ble::WoBle::GetRxFragmentSize
    functionSourceFile: /src/openweave-core/src/ble/WoBle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: GetRxFragmentSize(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: nl::Ble::WoBle::GetTxFragmentSize
    functionSourceFile: /src/openweave-core/src/ble/WoBle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: GetTxFragmentSize(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: nl::Ble::WoBle::GetLastReceivedSequenceNumber
    functionSourceFile: /src/openweave-core/src/ble/WoBle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SequenceNumber_t
    signature: GetLastReceivedSequenceNumber(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: nl::Ble::WoBle::GetNewestUnackedSentSequenceNumber
    functionSourceFile: /src/openweave-core/src/ble/WoBle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SequenceNumber_t
    signature: GetNewestUnackedSentSequenceNumber(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: nl::Ble::WoBle::ExpectingAck
    functionSourceFile: /src/openweave-core/src/ble/WoBle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: ExpectingAck(void) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: nl::Ble::WoBle::RxState
    functionSourceFile: /src/openweave-core/src/ble/WoBle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: State_t
    signature: RxState(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: nl::Ble::WoBle::TxState
    functionSourceFile: /src/openweave-core/src/ble/WoBle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: State_t
    signature: TxState(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - PacketType_t
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: nl::Ble::WoBle::SetTxPacketType
    functionSourceFile: /src/openweave-core/src/ble/WoBle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PacketType_t
    signature: SetTxPacketType(PacketType_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - PacketType_t
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: nl::Ble::WoBle::SetRxPacketType
    functionSourceFile: /src/openweave-core/src/ble/WoBle.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PacketType_t
    signature: SetRxPacketType(PacketType_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: nl::Ble::WoBle::TxPacketType
    functionSourceFile: /src/openweave-core/src/ble/WoBle.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PacketType_t
    signature: TxPacketType()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: nl::Ble::WoBle::RxPacketType
    functionSourceFile: /src/openweave-core/src/ble/WoBle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PacketType_t
    signature: RxPacketType()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seq
    argTypes:
    - SequenceNumber_t
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: nl::Ble::WoBle::SetTxPacketSeq
    functionSourceFile: /src/openweave-core/src/ble/WoBle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SequenceNumber_t
    signature: SetTxPacketSeq(SequenceNumber_t seq)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seq
    argTypes:
    - SequenceNumber_t
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: nl::Ble::WoBle::SetRxPacketSeq
    functionSourceFile: /src/openweave-core/src/ble/WoBle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SequenceNumber_t
    signature: SetRxPacketSeq(SequenceNumber_t seq)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: nl::Ble::WoBle::TxPacketSeq
    functionSourceFile: /src/openweave-core/src/ble/WoBle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SequenceNumber_t
    signature: TxPacketSeq()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: nl::Ble::WoBle::RxPacketSeq
    functionSourceFile: /src/openweave-core/src/ble/WoBle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SequenceNumber_t
    signature: RxPacketSeq()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFlag
      Src: /src/openweave-core/src/ble/WoBle.h:124,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/ble/WoBle.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: nl::Ble::WoBle::IsCommandPacket
    functionSourceFile: /src/openweave-core/src/ble/WoBle.h
    functionUses: 0
    functionsReached:
    - GetFlag
    - PacketBuffer*::Start
    linkageType: ''
    returnType: bool
    signature: IsCommandPacket(PacketBuffer * p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/ble/WoBle.h:127,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/ble/WoBle.h:127,1
    - Dst: memcpy
      Src: /src/openweave-core/src/ble/WoBle.h:128,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/ble/WoBle.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - type
    argTypes:
    - PacketBuffer*
    - PacketType_t
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: nl::Ble::WoBle::PushPacketTag
    functionSourceFile: /src/openweave-core/src/ble/WoBle.h
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetStart
    - memcpy
    - PacketBuffer*::Start
    linkageType: ''
    returnType: void
    signature: PushPacketTag(PacketBuffer * p, PacketType_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/src/ble/WoBle.h:133,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/ble/WoBle.h:133,1
    - Dst: PacketBuffer*::SetStart
      Src: /src/openweave-core/src/ble/WoBle.h:134,1
    - Dst: PacketBuffer*::Start
      Src: /src/openweave-core/src/ble/WoBle.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - PacketBuffer*
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: nl::Ble::WoBle::PopPacketTag
    functionSourceFile: /src/openweave-core/src/ble/WoBle.h
    functionUses: 0
    functionsReached:
    - PacketBuffer*::SetStart
    - memcpy
    - PacketBuffer*::Start
    linkageType: ''
    returnType: PacketType_t
    signature: PopPacketTag(PacketBuffer * p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: nl::Ble::BleLayerObject::AddRef
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: AddRef(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScheduleWork
      Src: /src/openweave-core/src/ble/BleLayer.h:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 358
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 358
    functionName: nl::Ble::BleLayer
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.h
    functionUses: 0
    functionsReached:
    - ScheduleWork
    linkageType: ''
    returnType: class NL_DLL_EXPORT
    signature: BleLayer
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Ble::BleLayer::Init
      Src: /src/openweave-core/src/ble/BleLayer.h:364,1
    - Dst: Inet::InetLayer*::SystemLayer
      Src: /src/openweave-core/src/ble/BleLayer.h:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - aPlatformDelegate
    - aAppDelegate
    - aInetLayer
    argTypes:
    - BlePlatformDelegate*
    - BleApplicationDelegate*
    - Inet::InetLayer*
    constantsTouched: []
    func_position:
      end: 365
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 365
    functionName: nl::Ble::BleLayer::Init
    functionSourceFile: /src/openweave-core/src/ble/BleLayer.h
    functionUses: 5
    functionsReached:
    - Inet::InetLayer*::SystemLayer
    - nl::Ble::BleLayer::Init
    linkageType: ''
    returnType: BLE_ERROR
    signature: "BleLayer::Init(BlePlatformDelegate * aPlatformDelegate, BleApplicationDelegate
      * aAppDelegate,\n                                Inet::InetLayer * aInetLayer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterErrorFormatter
      Src: /src/openweave-core/src/ble/BleError.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: nl::Ble::RegisterBleLayerErrorFormatter
    functionSourceFile: /src/openweave-core/src/ble/BleError.cpp
    functionUses: 1
    functionsReached:
    - RegisterErrorFormatter
    linkageType: ''
    returnType: void
    signature: RegisterBleLayerErrorFormatter(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FormatError
      Src: /src/openweave-core/src/ble/BleError.cpp:99,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 104
    argCount: 3
    argNames:
    - buf
    - bufSize
    - err
    argTypes:
    - char*
    - uint16_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 102
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 102
    functionName: nl::Ble::FormatBleLayerError
    functionSourceFile: /src/openweave-core/src/ble/BleError.cpp
    functionUses: 0
    functionsReached:
    - FormatError
    linkageType: ''
    returnType: bool
    signature: FormatBleLayerError(char * buf, uint16_t bufSize, int32_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inAction
    argTypes:
    - ActionType
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: nl::Weave::Warm::GetCurrentActionState
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: GetCurrentActionState(ActionType inAction)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - inAction
    - inValue
    argTypes:
    - ActionType
    - bool
    constantsTouched: []
    func_position:
      end: 183
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 183
    functionName: nl::Weave::Warm::SetCurrentActionState
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SetCurrentActionState(ActionType inAction, bool inValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inSystemFeature
    argTypes:
    - SystemFeatureType
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: nl::Weave::Warm::GetSystemFeatureState
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: GetSystemFeatureState(SystemFeatureType inSystemFeature)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - inSystemFeature
    - inValue
    argTypes:
    - SystemFeatureType
    - bool
    constantsTouched: []
    func_position:
      end: 232
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 232
    functionName: nl::Weave::Warm::SetSystemFeatureState
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: SetSystemFeatureState(SystemFeatureType inSystemFeature, bool inValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::GetCurrentActionState
      Src: /src/openweave-core/src/warm/WarmCore.cpp:270,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - inAction
    - inNecessarySystemFeatureState
    - outActivate
    argTypes:
    - ActionType
    - FlagsType
    - bool
    constantsTouched: []
    func_position:
      end: 278
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 278
    functionName: nl::Weave::Warm::ShouldPerformAction
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::GetCurrentActionState
    linkageType: ''
    returnType: bool
    signature: ShouldPerformAction(ActionType inAction, FlagsType inNecessarySystemFeatureState,
      bool &outActivate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::SetCurrentActionState
      Src: /src/openweave-core/src/warm/WarmCore.cpp:303,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - inResult
    - inAction
    - inActionState
    argTypes:
    - PlatformResult
    - ActionType
    - bool
    constantsTouched: []
    func_position:
      end: 329
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 329
    functionName: nl::Weave::Warm::RecordPlatformResult
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::SetCurrentActionState
    linkageType: ''
    returnType: PlatformActionExecution
    signature: RecordPlatformResult(PlatformResult inResult, ActionType inAction,
      bool inActionState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::Platform::CriticalSectionEnter
      Src: /src/openweave-core/src/warm/WarmCore.cpp:347,1
    - Dst: nl::Weave::Warm::SetSystemFeatureState
      Src: /src/openweave-core/src/warm/WarmCore.cpp:358,1
    - Dst: nl::Weave::Warm::Platform::CriticalSectionExit
      Src: /src/openweave-core/src/warm/WarmCore.cpp:360,1
    - Dst: nl::Weave::Warm::Platform::RequestInvokeActions
      Src: /src/openweave-core/src/warm/WarmCore.cpp:366,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - inSystemFeatureType
    - inState
    argTypes:
    - SystemFeatureType
    - bool
    constantsTouched: []
    func_position:
      end: 368
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 368
    functionName: nl::Weave::Warm::SystemFeatureStateChangeHandler
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::SetSystemFeatureState
    - nl::Weave::Warm::Platform::CriticalSectionEnter
    - nl::Weave::Warm::Platform::CriticalSectionExit
    - nl::Weave::Warm::Platform::RequestInvokeActions
    linkageType: ''
    returnType: void
    signature: SystemFeatureStateChangeHandler(SystemFeatureType inSystemFeatureType,
      bool inState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::SystemFeatureStateChangeHandler
      Src: /src/openweave-core/src/warm/WarmCore.cpp:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inState
    argTypes:
    - InterfaceState
    constantsTouched: []
    func_position:
      end: 386
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 386
    functionName: nl::Weave::Warm::FabricStateChange
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::SystemFeatureStateChangeHandler
    linkageType: ''
    returnType: void
    signature: FabricStateChange(InterfaceState inState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FabricStateChange
      Src: /src/openweave-core/src/warm/WarmCore.cpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fabricState
    - newFabricId
    argTypes:
    - WeaveFabricState*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 398
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 398
    functionName: nl::Weave::Warm::WarmFabricStateDelegate::DidJoinFabric
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - FabricStateChange
    linkageType: ''
    returnType: void
    signature: WarmFabricStateDelegate::DidJoinFabric(WeaveFabricState *fabricState,
      uint64_t newFabricId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FabricStateChange
      Src: /src/openweave-core/src/warm/WarmCore.cpp:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fabricState
    - oldFabricId
    argTypes:
    - WeaveFabricState*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 410
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 410
    functionName: nl::Weave::Warm::WarmFabricStateDelegate::DidLeaveFabric
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - FabricStateChange
    linkageType: ''
    returnType: void
    signature: WarmFabricStateDelegate::DidLeaveFabric(WeaveFabricState *fabricState,
      uint64_t oldFabricId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::Platform::Init
      Src: /src/openweave-core/src/warm/WarmCore.cpp:437,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/warm/WarmCore.cpp:438,1
    - Dst: WeaveFabricState::SetDelegate
      Src: /src/openweave-core/src/warm/WarmCore.cpp:441,1
    - Dst: nl::Weave::Warm::Platform::CriticalSectionEnter
      Src: /src/openweave-core/src/warm/WarmCore.cpp:443,1
    - Dst: nl::Weave::Warm::FabricStateChange
      Src: /src/openweave-core/src/warm/WarmCore.cpp:448,1
    - Dst: nl::Weave::Warm::Platform::CriticalSectionExit
      Src: /src/openweave-core/src/warm/WarmCore.cpp:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - inFabricState
    argTypes:
    - WeaveFabricState
    constantsTouched: []
    func_position:
      end: 456
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 456
    functionName: nl::Weave::Warm::Init
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 4
    functionsReached:
    - WeaveFabricState::SetDelegate
    - nl::Weave::Warm::Platform::CriticalSectionEnter
    - nl::Weave::Warm::Platform::Init
    - nl::Weave::Warm::FabricStateChange
    - nl::Weave::Warm::Platform::CriticalSectionExit
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: Init(WeaveFabricState &inFabricState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::Platform::CriticalSectionEnter
      Src: /src/openweave-core/src/warm/WarmCore.cpp:500,1
    - Dst: nl::Weave::Warm::GetSystemFeatureState
      Src: /src/openweave-core/src/warm/WarmCore.cpp:502,1
    - Dst: nl::Weave::WeaveFabricIdToIPv6GlobalId
      Src: /src/openweave-core/src/warm/WarmCore.cpp:504,1
    - Dst: nl::Weave::WeaveNodeIdToIPv6InterfaceId
      Src: /src/openweave-core/src/warm/WarmCore.cpp:505,1
    - Dst: nl::Weave::Warm::Platform::CriticalSectionExit
      Src: /src/openweave-core/src/warm/WarmCore.cpp:510,1
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/warm/WarmCore.cpp:512,1
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/warm/WarmCore.cpp:514,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - inInterfaceType
    - outAddress
    argTypes:
    - InterfaceType
    - Inet::IPAddress
    constantsTouched: []
    func_position:
      end: 518
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 518
    functionName: nl::Weave::Warm::GetULA
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::WeaveNodeIdToIPv6InterfaceId
    - nl::Weave::Warm::Platform::CriticalSectionEnter
    - nl::Weave::Warm::Platform::CriticalSectionExit
    - SuccessOrExit
    - nl::Inet::IPAddress::MakeULA
    - nl::Weave::Warm::GetSystemFeatureState
    - nl::Weave::WeaveFabricIdToIPv6GlobalId
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetULA(InterfaceType inInterfaceType, Inet::IPAddress &outAddress)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SuccessOrExit
      Src: /src/openweave-core/src/warm/WarmCore.cpp:543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - outFabricState
    argTypes:
    - WeaveFabricState*
    constantsTouched: []
    func_position:
      end: 549
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 549
    functionName: nl::Weave::Warm::GetFabricState
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 1
    functionsReached:
    - SuccessOrExit
    linkageType: ''
    returnType: WEAVE_ERROR
    signature: GetFabricState(const WeaveFabricState *&outFabricState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::Platform::CriticalSectionEnter
      Src: /src/openweave-core/src/warm/WarmCore.cpp:570,1
    - Dst: TakeActions
      Src: /src/openweave-core/src/warm/WarmCore.cpp:575,1
    - Dst: nl::Weave::Warm::Platform::CriticalSectionExit
      Src: /src/openweave-core/src/warm/WarmCore.cpp:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 579
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 579
    functionName: nl::Weave::Warm::InvokeActions
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Warm::Platform::CriticalSectionEnter
    - nl::Weave::Warm::Platform::CriticalSectionExit
    - TakeActions
    linkageType: ''
    returnType: void
    signature: InvokeActions(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VerifyOrExit
      Src: /src/openweave-core/src/warm/WarmCore.cpp:595,1
    - Dst: nl::Weave::Warm::Platform::CriticalSectionEnter
      Src: /src/openweave-core/src/warm/WarmCore.cpp:597,1
    - Dst: nl::Weave::Warm::RecordPlatformResult
      Src: /src/openweave-core/src/warm/WarmCore.cpp:599,1
    - Dst: nl::Weave::Warm::Platform::CriticalSectionExit
      Src: /src/openweave-core/src/warm/WarmCore.cpp:602,1
    - Dst: nl::Weave::Warm::Platform::RequestInvokeActions
      Src: /src/openweave-core/src/warm/WarmCore.cpp:604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - inResult
    argTypes:
    - PlatformResult
    constantsTouched: []
    func_position:
      end: 608
      start: 593
    functionDepth: 2
    functionLinenumber: 593
    functionLinenumberEnd: 608
    functionName: nl::Weave::Warm::ReportActionComplete
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::Platform::CriticalSectionEnter
    - VerifyOrExit
    - nl::Weave::Warm::Platform::RequestInvokeActions
    - nl::Weave::Warm::RecordPlatformResult
    - nl::Weave::Warm::Platform::CriticalSectionExit
    linkageType: ''
    returnType: void
    signature: ReportActionComplete(PlatformResult inResult)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::SystemFeatureStateChangeHandler
      Src: /src/openweave-core/src/warm/WarmCore.cpp:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inState
    argTypes:
    - InterfaceState
    constantsTouched: []
    func_position:
      end: 625
      start: 622
    functionDepth: 2
    functionLinenumber: 622
    functionLinenumberEnd: 625
    functionName: nl::Weave::Warm::CellularInterfaceStateChange
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::SystemFeatureStateChangeHandler
    linkageType: ''
    returnType: void
    signature: CellularInterfaceStateChange(InterfaceState inState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/warm/WarmCore.cpp:644,1
    - Dst: nl::Weave::Warm::Platform::AddRemoveHostAddress
      Src: /src/openweave-core/src/warm/WarmCore.cpp:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - inAction
    - inActivate
    - inGlobalId
    - inInterfaceId
    argTypes:
    - ActionType
    - bool
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 647
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 647
    functionName: nl::Weave::Warm::WiFiHostAddressAction
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::Platform::AddRemoveHostAddress
    - nl::Inet::IPAddress::MakeULA
    linkageType: ''
    returnType: PlatformResult
    signature: WiFiHostAddressAction(ActionType inAction, bool inActivate, const uint64_t
      &inGlobalId, const uint64_t &inInterfaceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::SystemFeatureStateChangeHandler
      Src: /src/openweave-core/src/warm/WarmCore.cpp:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inState
    argTypes:
    - InterfaceState
    constantsTouched: []
    func_position:
      end: 662
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 662
    functionName: nl::Weave::Warm::WiFiInterfaceStateChange
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 5
    functionsReached:
    - nl::Weave::Warm::SystemFeatureStateChangeHandler
    linkageType: ''
    returnType: void
    signature: WiFiInterfaceStateChange(InterfaceState inState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/warm/WarmCore.cpp:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - inGlobalID
    - subnetId
    - inPrefixLen
    - outPrefix
    argTypes:
    - uint64_t
    - uint16_t
    - uint8_t
    - Inet::IPPrefix
    constantsTouched: []
    func_position:
      end: 685
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 685
    functionName: nl::Weave::Warm::MakePrefix
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - nl::Inet::IPAddress::MakeULA
    linkageType: ''
    returnType: void
    signature: "MakePrefix(const uint64_t &inGlobalID, const uint16_t subnetId, const
      uint8_t inPrefixLen,\n                       Inet::IPPrefix &outPrefix)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/warm/WarmCore.cpp:703,1
    - Dst: nl::Weave::Warm::Platform::AddRemoveHostAddress
      Src: /src/openweave-core/src/warm/WarmCore.cpp:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - inAction
    - inActivate
    - inGlobalId
    - inInterfaceId
    argTypes:
    - ActionType
    - bool
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 706
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 706
    functionName: nl::Weave::Warm::ThreadHostAddressAction
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::Platform::AddRemoveHostAddress
    - nl::Inet::IPAddress::MakeULA
    linkageType: ''
    returnType: PlatformResult
    signature: ThreadHostAddressAction(ActionType inAction, bool inActivate, const
      uint64_t &inGlobalId, const uint64_t &inInterfaceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/warm/WarmCore.cpp:721,1
    - Dst: nl::Weave::Warm::Platform::AddRemoveThreadAddress
      Src: /src/openweave-core/src/warm/WarmCore.cpp:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - inAction
    - inActivate
    - inGlobalId
    - inInterfaceId
    argTypes:
    - ActionType
    - bool
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 724
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 724
    functionName: nl::Weave::Warm::ThreadThreadAddressAction
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::Platform::AddRemoveThreadAddress
    - nl::Inet::IPAddress::MakeULA
    linkageType: ''
    returnType: PlatformResult
    signature: ThreadThreadAddressAction(ActionType inAction, bool inActivate, const
      uint64_t &inGlobalId, const uint64_t &inInterfaceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::MakePrefix
      Src: /src/openweave-core/src/warm/WarmCore.cpp:745,1
    - Dst: nl::Weave::Warm::MakePrefix
      Src: /src/openweave-core/src/warm/WarmCore.cpp:747,1
    - Dst: nl::Weave::Warm::Platform::AddRemoveHostRoute
      Src: /src/openweave-core/src/warm/WarmCore.cpp:751,1
    - Dst: nl::Weave::Warm::Platform::AddRemoveHostRoute
      Src: /src/openweave-core/src/warm/WarmCore.cpp:759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - inAction
    - inActivate
    - inGlobalId
    - inInterfaceId
    argTypes:
    - ActionType
    - bool
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 763
      start: 737
    functionDepth: 2
    functionLinenumber: 737
    functionLinenumberEnd: 763
    functionName: nl::Weave::Warm::ThreadHostRouteAction
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::MakePrefix
    - nl::Weave::Warm::Platform::AddRemoveHostRoute
    linkageType: ''
    returnType: PlatformResult
    signature: ThreadHostRouteAction(ActionType inAction, bool inActivate, const uint64_t
      &inGlobalId, const uint64_t &inInterfaceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::SystemFeatureStateChangeHandler
      Src: /src/openweave-core/src/warm/WarmCore.cpp:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inState
    argTypes:
    - InterfaceState
    constantsTouched: []
    func_position:
      end: 778
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 778
    functionName: nl::Weave::Warm::ThreadInterfaceStateChange
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 4
    functionsReached:
    - nl::Weave::Warm::SystemFeatureStateChangeHandler
    linkageType: ''
    returnType: void
    signature: ThreadInterfaceStateChange(InterfaceState inState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/warm/WarmCore.cpp:797,1
    - Dst: nl::Weave::Warm::Platform::AddRemoveHostAddress
      Src: /src/openweave-core/src/warm/WarmCore.cpp:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - inAction
    - inActivate
    - inGlobalId
    - inInterfaceId
    argTypes:
    - ActionType
    - bool
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 800
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 800
    functionName: nl::Weave::Warm::LegacyHostAddressAction
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::Platform::AddRemoveHostAddress
    - nl::Inet::IPAddress::MakeULA
    linkageType: ''
    returnType: PlatformResult
    signature: LegacyHostAddressAction(ActionType inAction, bool inActivate, const
      uint64_t &inGlobalId, const uint64_t &inInterfaceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/warm/WarmCore.cpp:815,1
    - Dst: nl::Weave::Warm::Platform::AddRemoveThreadAddress
      Src: /src/openweave-core/src/warm/WarmCore.cpp:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - inAction
    - inActivate
    - inGlobalId
    - inInterfaceId
    argTypes:
    - ActionType
    - bool
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 818
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 818
    functionName: nl::Weave::Warm::LegacyThreadAddressAction
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::Platform::AddRemoveThreadAddress
    - nl::Inet::IPAddress::MakeULA
    linkageType: ''
    returnType: PlatformResult
    signature: LegacyThreadAddressAction(ActionType inAction, bool inActivate, const
      uint64_t &inGlobalId, const uint64_t &inInterfaceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::MakePrefix
      Src: /src/openweave-core/src/warm/WarmCore.cpp:839,1
    - Dst: nl::Weave::Warm::Platform::StartStopThreadAdvertisement
      Src: /src/openweave-core/src/warm/WarmCore.cpp:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - inAction
    - inActivate
    - inGlobalId
    - inInterfaceId
    argTypes:
    - ActionType
    - bool
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 842
      start: 835
    functionDepth: 2
    functionLinenumber: 835
    functionLinenumberEnd: 842
    functionName: nl::Weave::Warm::ThreadAdvertisementAction
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::MakePrefix
    - nl::Weave::Warm::Platform::StartStopThreadAdvertisement
    linkageType: ''
    returnType: PlatformResult
    signature: ThreadAdvertisementAction(ActionType inAction, bool inActivate, const
      uint64_t &inGlobalId, const uint64_t &inInterfaceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::SystemFeatureStateChangeHandler
      Src: /src/openweave-core/src/warm/WarmCore.cpp:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inState
    argTypes:
    - InterfaceState
    constantsTouched: []
    func_position:
      end: 857
      start: 854
    functionDepth: 2
    functionLinenumber: 854
    functionLinenumberEnd: 857
    functionName: nl::Weave::Warm::ThreadRoutingStateChange
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Warm::SystemFeatureStateChangeHandler
    linkageType: ''
    returnType: void
    signature: ThreadRoutingStateChange(InterfaceState inState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Inet::IPAddress::MakeULA
      Src: /src/openweave-core/src/warm/WarmCore.cpp:885,1
    - Dst: nl::Weave::Warm::Platform::AddRemoveHostAddress
      Src: /src/openweave-core/src/warm/WarmCore.cpp:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - inAction
    - inActivate
    - inGlobalId
    - inInterfaceId
    argTypes:
    - ActionType
    - bool
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 888
      start: 874
    functionDepth: 1
    functionLinenumber: 874
    functionLinenumberEnd: 888
    functionName: nl::Weave::Warm::TunnelHostAddressAction
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::Platform::AddRemoveHostAddress
    - nl::Inet::IPAddress::MakeULA
    linkageType: ''
    returnType: PlatformResult
    signature: TunnelHostAddressAction(ActionType inAction, bool inActivate, const
      uint64_t &inGlobalId, const uint64_t &inInterfaceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::MakePrefix
      Src: /src/openweave-core/src/warm/WarmCore.cpp:906,1
    - Dst: nl::Weave::Warm::MakePrefix
      Src: /src/openweave-core/src/warm/WarmCore.cpp:908,1
    - Dst: nl::Weave::Warm::Platform::AddRemoveHostRoute
      Src: /src/openweave-core/src/warm/WarmCore.cpp:911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - inAction
    - inActivate
    - inGlobalId
    - inInterfaceId
    argTypes:
    - ActionType
    - bool
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 912
      start: 901
    functionDepth: 2
    functionLinenumber: 901
    functionLinenumberEnd: 912
    functionName: nl::Weave::Warm::TunnelHostRouteAction
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::MakePrefix
    - nl::Weave::Warm::Platform::AddRemoveHostRoute
    linkageType: ''
    returnType: PlatformResult
    signature: TunnelHostRouteAction(ActionType inAction, bool inActivate, const uint64_t
      &inGlobalId, const uint64_t &inInterfaceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::SystemFeatureStateChangeHandler
      Src: /src/openweave-core/src/warm/WarmCore.cpp:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inState
    argTypes:
    - InterfaceState
    constantsTouched: []
    func_position:
      end: 928
      start: 925
    functionDepth: 2
    functionLinenumber: 925
    functionLinenumberEnd: 928
    functionName: nl::Weave::Warm::TunnelInterfaceStateChange
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::SystemFeatureStateChangeHandler
    linkageType: ''
    returnType: void
    signature: TunnelInterfaceStateChange(InterfaceState inState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::Platform::CriticalSectionEnter
      Src: /src/openweave-core/src/warm/WarmCore.cpp:946,1
    - Dst: nl::Weave::Warm::Platform::CriticalSectionExit
      Src: /src/openweave-core/src/warm/WarmCore.cpp:950,1
    - Dst: nl::Weave::Warm::SystemFeatureStateChangeHandler
      Src: /src/openweave-core/src/warm/WarmCore.cpp:953,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - inState
    - inAvailability
    argTypes:
    - InterfaceState
    - nl::Weave::Profiles::WeaveTunnel::Platform::TunnelAvailabilityMode
    constantsTouched: []
    func_position:
      end: 954
      start: 942
    functionDepth: 2
    functionLinenumber: 942
    functionLinenumberEnd: 954
    functionName: nl::Weave::Warm::TunnelServiceStateChange
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::Platform::CriticalSectionEnter
    - nl::Weave::Warm::Platform::CriticalSectionExit
    - nl::Weave::Warm::SystemFeatureStateChangeHandler
    linkageType: ''
    returnType: void
    signature: TunnelServiceStateChange(InterfaceState inState, nl::Weave::Profiles::WeaveTunnel::Platform::TunnelAvailabilityMode
      inAvailability)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::Platform::CriticalSectionEnter
      Src: /src/openweave-core/src/warm/WarmCore.cpp:971,1
    - Dst: nl::Weave::Warm::GetSystemFeatureState
      Src: /src/openweave-core/src/warm/WarmCore.cpp:973,1
    - Dst: nl::Weave::Warm::Platform::CriticalSectionExit
      Src: /src/openweave-core/src/warm/WarmCore.cpp:980,1
    - Dst: nl::Weave::Warm::Platform::RequestInvokeActions
      Src: /src/openweave-core/src/warm/WarmCore.cpp:984,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - inAvailability
    argTypes:
    - nl::Weave::Profiles::WeaveTunnel::Platform::TunnelAvailabilityMode
    constantsTouched: []
    func_position:
      end: 986
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 986
    functionName: nl::Weave::Warm::TunnelPriorityStateChange
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::Platform::CriticalSectionExit
    - nl::Weave::Warm::Platform::CriticalSectionEnter
    - nl::Weave::Warm::GetSystemFeatureState
    - nl::Weave::Warm::Platform::RequestInvokeActions
    linkageType: ''
    returnType: void
    signature: TunnelPriorityStateChange(nl::Weave::Profiles::WeaveTunnel::Platform::TunnelAvailabilityMode
      inAvailability)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::TunnelInterfaceStateChange
      Src: /src/openweave-core/src/warm/WarmCore.cpp:1006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tunIf
    argTypes:
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 1007
      start: 1002
    functionDepth: 3
    functionLinenumber: 1002
    functionLinenumberEnd: 1007
    functionName: nl::Weave::Warm::Profiles::WeaveTunnel::Platform::TunnelInterfaceUp
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Warm::TunnelInterfaceStateChange
    linkageType: ''
    returnType: void
    signature: TunnelInterfaceUp(InterfaceId tunIf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::TunnelInterfaceStateChange
      Src: /src/openweave-core/src/warm/WarmCore.cpp:1019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tunIf
    argTypes:
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 1020
      start: 1015
    functionDepth: 3
    functionLinenumber: 1015
    functionLinenumberEnd: 1020
    functionName: nl::Weave::Warm::Profiles::WeaveTunnel::Platform::TunnelInterfaceDown
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Warm::TunnelInterfaceStateChange
    linkageType: ''
    returnType: void
    signature: TunnelInterfaceDown(InterfaceId tunIf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::TunnelServiceStateChange
      Src: /src/openweave-core/src/warm/WarmCore.cpp:1033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tunIf
    - tunMode
    argTypes:
    - InterfaceId
    - TunnelAvailabilityMode
    constantsTouched: []
    func_position:
      end: 1034
      start: 1029
    functionDepth: 3
    functionLinenumber: 1029
    functionLinenumberEnd: 1034
    functionName: nl::Weave::Warm::Profiles::WeaveTunnel::Platform::ServiceTunnelEstablished
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Warm::TunnelServiceStateChange
    linkageType: ''
    returnType: void
    signature: ServiceTunnelEstablished(InterfaceId tunIf, TunnelAvailabilityMode
      tunMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::TunnelServiceStateChange
      Src: /src/openweave-core/src/warm/WarmCore.cpp:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tunIf
    argTypes:
    - InterfaceId
    constantsTouched: []
    func_position:
      end: 1047
      start: 1042
    functionDepth: 3
    functionLinenumber: 1042
    functionLinenumberEnd: 1047
    functionName: nl::Weave::Warm::Profiles::WeaveTunnel::Platform::ServiceTunnelDisconnected
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Warm::TunnelServiceStateChange
    linkageType: ''
    returnType: void
    signature: ServiceTunnelDisconnected(InterfaceId tunIf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::TunnelPriorityStateChange
      Src: /src/openweave-core/src/warm/WarmCore.cpp:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tunIf
    - tunMode
    argTypes:
    - InterfaceId
    - TunnelAvailabilityMode
    constantsTouched: []
    func_position:
      end: 1061
      start: 1056
    functionDepth: 2
    functionLinenumber: 1056
    functionLinenumberEnd: 1061
    functionName: nl::Weave::Warm::Profiles::WeaveTunnel::Platform::ServiceTunnelModeChange
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 3
    functionsReached:
    - nl::Weave::Warm::TunnelPriorityStateChange
    linkageType: ''
    returnType: void
    signature: ServiceTunnelModeChange(InterfaceId tunIf, TunnelAvailabilityMode tunMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::Warm::BorderRouterStateChange
      Src: /src/openweave-core/src/warm/WarmCore.cpp:1071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1068
    functionDepth: 1
    functionLinenumber: 1068
    functionLinenumberEnd: 1073
    functionName: nl::Weave::Warm::Profiles::WeaveTunnel::Platform::EnableBorderRouting
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 1
    functionsReached:
    - nl::Weave::Warm::Warm::BorderRouterStateChange
    linkageType: ''
    returnType: void
    signature: EnableBorderRouting(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nl::Weave::Warm::Warm::BorderRouterStateChange
      Src: /src/openweave-core/src/warm/WarmCore.cpp:1083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1080
    functionDepth: 1
    functionLinenumber: 1080
    functionLinenumberEnd: 1085
    functionName: nl::Weave::Warm::Profiles::WeaveTunnel::Platform::DisableBorderRouting
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 2
    functionsReached:
    - nl::Weave::Warm::Warm::BorderRouterStateChange
    linkageType: ''
    returnType: void
    signature: DisableBorderRouting(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SystemFeatureStateChangeHandler
      Src: /src/openweave-core/src/warm/WarmCore.cpp:1111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inState
    argTypes:
    - InterfaceState
    constantsTouched: []
    func_position:
      end: 1112
      start: 1109
    functionDepth: 0
    functionLinenumber: 1109
    functionLinenumberEnd: 1112
    functionName: nl::Weave::Warm::Warm::BorderRouterStateChange
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 3
    functionsReached:
    - SystemFeatureStateChangeHandler
    linkageType: ''
    returnType: void
    signature: BorderRouterStateChange(InterfaceState inState)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - inAvailability
    argTypes:
    - Profiles::WeaveTunnel::Platform::TunnelAvailabilityMode
    constantsTouched: []
    func_position:
      end: 1139
      start: 1122
    functionDepth: 0
    functionLinenumber: 1122
    functionLinenumberEnd: 1139
    functionName: nl::Weave::Warm::Warm::MapAvailabilityToPriority
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RoutePriority
    signature: MapAvailabilityToPriority(Profiles::WeaveTunnel::Platform::TunnelAvailabilityMode
      inAvailability)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MakePrefix
      Src: /src/openweave-core/src/warm/WarmCore.cpp:1156,1
    - Dst: nl::Weave::Warm::Platform::AddRemoveThreadRoute
      Src: /src/openweave-core/src/warm/WarmCore.cpp:1158,1
    - Dst: nl::Weave::Warm::Warm::MapAvailabilityToPriority
      Src: /src/openweave-core/src/warm/WarmCore.cpp:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - inAction
    - inActivate
    - inGlobalId
    - inInterfaceId
    argTypes:
    - ActionType
    - bool
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1160
      start: 1152
    functionDepth: 1
    functionLinenumber: 1152
    functionLinenumberEnd: 1160
    functionName: nl::Weave::Warm::Warm::ThreadThreadRouteAction
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - nl::Weave::Warm::Platform::AddRemoveThreadRoute
    - MakePrefix
    - nl::Weave::Warm::Warm::MapAvailabilityToPriority
    linkageType: ''
    returnType: PlatformResult
    signature: ThreadThreadRouteAction(ActionType inAction, bool inActivate, const
      uint64_t &inGlobalId, const uint64_t &inInterfaceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MakePrefix
      Src: /src/openweave-core/src/warm/WarmCore.cpp:1177,1
    - Dst: nl::Weave::Warm::Platform::SetThreadRoutePriority
      Src: /src/openweave-core/src/warm/WarmCore.cpp:1179,1
    - Dst: nl::Weave::Warm::Warm::MapAvailabilityToPriority
      Src: /src/openweave-core/src/warm/WarmCore.cpp:1179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - inAction
    - inActivate
    - inGlobalId
    - inInterfaceId
    argTypes:
    - ActionType
    - bool
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1181
      start: 1173
    functionDepth: 1
    functionLinenumber: 1173
    functionLinenumberEnd: 1181
    functionName: nl::Weave::Warm::Warm::ThreadRoutePriorityAction
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - MakePrefix
    - nl::Weave::Warm::Platform::SetThreadRoutePriority
    - nl::Weave::Warm::Warm::MapAvailabilityToPriority
    linkageType: ''
    returnType: PlatformResult
    signature: ThreadRoutePriorityAction(ActionType inAction, bool inActivate, const
      uint64_t &inGlobalId, const uint64_t &inInterfaceId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ShouldPerformAction
      Src: /src/openweave-core/src/warm/WarmCore.cpp:1305,1
    - Dst: mAction
      Src: /src/openweave-core/src/warm/WarmCore.cpp:1307,1
    - Dst: RecordPlatformResult
      Src: /src/openweave-core/src/warm/WarmCore.cpp:1309,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1198
    functionDepth: 0
    functionLinenumber: 1198
    functionLinenumberEnd: 1315
    functionName: nl::Weave::Warm::Warm::TakeActions
    functionSourceFile: /src/openweave-core/src/warm/WarmCore.cpp
    functionUses: 0
    functionsReached:
    - mAction
    - ShouldPerformAction
    - RecordPlatformResult
    linkageType: ''
    returnType: void
    signature: TakeActions(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: emptyJniStaticMethod0
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/org_apache_harmony_dalvik_NativeTestTarget.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: emptyJniStaticMethod0(JNIEnv*, jclass)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: emptyJniStaticMethod6
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/org_apache_harmony_dalvik_NativeTestTarget.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "emptyJniStaticMethod6(JNIEnv*, jclass,\n    int, int, int, int, int,
      int)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: emptyJniStaticMethod6L
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/org_apache_harmony_dalvik_NativeTestTarget.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "emptyJniStaticMethod6L(JNIEnv*, jclass,\n    jobject, jarray, jarray,
      jobject, jarray, jarray)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOGW
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/org_apache_harmony_dalvik_NativeTestTarget.cpp:64,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/org_apache_harmony_dalvik_NativeTestTarget.cpp:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: register_org_apache_harmony_dalvik_NativeTestTarget
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/org_apache_harmony_dalvik_NativeTestTarget.cpp
    functionUses: 0
    functionsReached:
    - LOGW
    - JNIEnv*::ExceptionClear
    linkageType: ''
    returnType: int
    signature: register_org_apache_harmony_dalvik_NativeTestTarget(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: property_get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:82,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:83,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:85,1
    - Dst: property_get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:102,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:103,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:104,1
    - Dst: strcat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:105,1
    - Dst: LOGV
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:109,1
    - Dst: gettimeofday
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:110,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:117,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:118,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:120,1
    - Dst: abort
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:121,1
    - Dst: fork
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:124,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:126,1
    - Dst: strerror
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:126,1
    - Dst: LOGV
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:134,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:136,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:136,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:136,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:137,1
    - Dst: strcat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:138,1
    - Dst: execv
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:153,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:154,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:156,1
    - Dst: strerror
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:156,1
    - Dst: exit
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:157,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:191,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:192,1
    - Dst: LOGD
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:195,1
    - Dst: waitpid
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:199,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:201,1
    - Dst: strerror
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:201,1
    - Dst: usleep
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:204,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:213,1
    - Dst: kill
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:214,1
    - Dst: android::logProcStatus
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:215,1
    - Dst: LOGV
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:217,1
    - Dst: kill
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:218,1
    - Dst: gettimeofday
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:221,1
    - Dst: LOGI
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:225,1
    - Dst: WIFEXITED
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:228,1
    - Dst: WEXITSTATUS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:229,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 92
    argCount: 3
    argNames:
    - env
    - dexFilesStr
    - bcpStr
    argTypes:
    - JNIEnv*
    - jstring
    - jstring
    constantsTouched: []
    func_position:
      end: 233
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 233
    functionName: android::dalvik_system_TouchDex_trampoline
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp
    functionUses: 0
    functionsReached:
    - strcat
    - LOGV
    - LOGE
    - LOGI
    - strcpy
    - waitpid
    - LOGD
    - exit
    - android::logProcStatus
    - fork
    - JNIEnv*::GetStringUTFChars
    - property_get
    - WIFEXITED
    - gettimeofday
    - strlen
    - usleep
    - WEXITSTATUS
    - JNIEnv*::ReleaseStringUTFChars
    - strerror
    - kill
    - abort
    - strcmp
    - strncmp
    - free
    - execv
    - malloc
    linkageType: ''
    returnType: jint
    signature: "dalvik_system_TouchDex_trampoline(JNIEnv* env,\n    jclass, jstring
      dexFilesStr, jstring bcpStr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:243,1
    - Dst: fopen
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:244,1
    - Dst: LOGI
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:246,1
    - Dst: LOGI
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:250,1
    - Dst: fgets
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:252,1
    - Dst: ferror
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:253,1
    - Dst: feof
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:253,1
    - Dst: LOGI
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:255,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:258,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    constantsTouched: []
    func_position:
      end: 259
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 259
    functionName: android::logProcStatus
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp
    functionUses: 1
    functionsReached:
    - ferror
    - fgets
    - fclose
    - LOGI
    - feof
    - fopen
    - sprintf
    linkageType: ''
    returnType: void
    signature: logProcStatus(pid_t pid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:266,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: android::register_dalvik_system_TouchDex
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_dalvik_system_TouchDex(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedPthreadMutexLock.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - pthread_mutex_t*
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: ScopedPthreadMutexLock::ScopedPthreadMutexLock
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedPthreadMutexLock.h
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: ScopedPthreadMutexLock(pthread_mutex_t* mutex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedPthreadMutexLock.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: ~ScopedPthreadMutexLock()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedPthreadMutexLock.h
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: ~ScopedPthreadMutexLock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedUtfChars.h:39,1
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedUtfChars.h:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - env
    - s
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: ScopedUtfChars::ScopedUtfChars
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedUtfChars.h
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - jniThrowNullPointerException
    linkageType: ''
    returnType: void
    signature: ScopedUtfChars(JNIEnv* env, jstring s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReleaseStringUTFChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedUtfChars.h:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: ~ScopedUtfChars()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedUtfChars.h
    functionUses: 0
    functionsReached:
    - ReleaseStringUTFChars
    linkageType: ''
    returnType: void
    signature: ~ScopedUtfChars()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: ScopedUtfChars::c_str
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedUtfChars.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* c_str() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedUtfChars.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: ScopedUtfChars::size
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedUtfChars.h
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: '& operator[](size_t n) const'
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedUtfChars.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '& operator[](size_t n) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PushLocalFrame
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedLocalFrame.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: ScopedLocalFrame::ScopedLocalFrame
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedLocalFrame.h
    functionUses: 0
    functionsReached:
    - PushLocalFrame
    linkageType: ''
    returnType: void
    signature: ScopedLocalFrame(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PopLocalFrame
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedLocalFrame.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: ~ScopedLocalFrame()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedLocalFrame.h
    functionUses: 0
    functionsReached:
    - PopLocalFrame
    linkageType: ''
    returnType: void
    signature: ~ScopedLocalFrame()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: DefaultDelete
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DefaultDelete()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: operator()(T* p) const
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: operator()(T* p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - T*
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: operator()(T* p) const
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: operator()(T* p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: UniquePtr::UniquePtr
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: UniquePtr(T* ptr = NULL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: ~UniquePtr()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: ~UniquePtr()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: '& operator*() const'
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: '& operator*() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: '* operator->() const'
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: '* operator->() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: UniquePtr::get
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: '* get() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: UniquePtr::release
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: '* release()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: UniquePtr::reset
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h
    functionUses: 0
    functionsReached:
    - D
    linkageType: ''
    returnType: void
    signature: reset(T* ptr = NULL)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: UniquePtr<T[], D>::UniquePtr
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: UniquePtr(T* ptr = NULL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: ~UniquePtr()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: ~UniquePtr()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: '& operator[](size_t i) const'
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: '& operator[](size_t i) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: UniquePtr<T[], D>::get
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: '* get() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: UniquePtr<T[], D>::release
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: '* release()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: UniquePtr<T[], D>::reset
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h
    functionUses: 0
    functionsReached:
    - D
    linkageType: ''
    returnType: void
    signature: reset(T* ptr = NULL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:143,1
    - Dst: abort
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:144,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: assert
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h
    functionUses: 9
    functionsReached:
    - fprintf
    - abort
    linkageType: ''
    returnType: void
    signature: assert(bool b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: C
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: C()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: ~C()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~C()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:156,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: operator()(int* p)
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h
    functionUses: 0
    functionsReached:
    - free
    - assert
    linkageType: ''
    returnType: void
    signature: operator()(int* p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: C::C
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:169,1
    - Dst: assert
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:170,1
    - Dst: assert
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:172,1
    - Dst: C::C
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:176,1
    - Dst: assert
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:177,1
    - Dst: UniquePtr::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:178,1
    - Dst: assert
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:180,1
    - Dst: C::C
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:184,1
    - Dst: assert
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:185,1
    - Dst: UniquePtr::reset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:186,1
    - Dst: C::C
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:186,1
    - Dst: assert
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:187,1
    - Dst: assert
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:189,1
    - Dst: C::C
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:197,1
    - Dst: assert
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:198,1
    - Dst: assert
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:200,1
    - Dst: C::C
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:203,1
    - Dst: assert
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:204,1
    - Dst: UniquePtr::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:205,1
    - Dst: assert
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:207,1
    - Dst: C::C
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:211,1
    - Dst: assert
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:212,1
    - Dst: UniquePtr::reset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:213,1
    - Dst: C::C
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:213,1
    - Dst: assert
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:214,1
    - Dst: assert
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:216,1
    - Dst: assert
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:221,1
    - Dst: assert
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 228
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 228
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h
    functionUses: 0
    functionsReached:
    - UniquePtr::reset
    - assert
    - C::C
    - UniquePtr::release
    linkageType: ''
    returnType: int
    signature: main(int argc, char* argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: char::char
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/LocalArray.h:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - desiredByteCount
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: LocalArray::LocalArray
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/LocalArray.h
    functionUses: 0
    functionsReached:
    - char::char
    linkageType: ''
    returnType: void
    signature: LocalArray(size_t desiredByteCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: ~LocalArray()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/LocalArray.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~LocalArray()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: LocalArray::size
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/LocalArray.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: LocalArray::empty
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/LocalArray.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: '& operator[](size_t n)'
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/LocalArray.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '& operator[](size_t n)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: '& operator[](size_t n) const'
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/LocalArray.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '& operator[](size_t n) const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetStringChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedJavaUnicodeString.h:29,1
    - Dst: setTo
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedJavaUnicodeString.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - s
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: ScopedJavaUnicodeString::ScopedJavaUnicodeString
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedJavaUnicodeString.h
    functionUses: 0
    functionsReached:
    - setTo
    - JNIEnv*::GetStringChars
    linkageType: ''
    returnType: void
    signature: ScopedJavaUnicodeString(JNIEnv* env, jstring s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReleaseStringChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedJavaUnicodeString.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: ~ScopedJavaUnicodeString()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedJavaUnicodeString.h
    functionUses: 0
    functionsReached:
    - ReleaseStringChars
    linkageType: ''
    returnType: void
    signature: ~ScopedJavaUnicodeString()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: '& unicodeString() const'
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedJavaUnicodeString.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UnicodeString
    signature: '& unicodeString() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: '& unicodeString()'
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedJavaUnicodeString.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UnicodeString
    signature: '& unicodeString()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: ScopedFd::ScopedFd
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedFd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ScopedFd(int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedFd.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: ~ScopedFd()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedFd.h
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: ~ScopedFd()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: ScopedFd::get
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedFd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: get() const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - env
    - localRef
    argTypes:
    - JNIEnv*
    - T
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: ScopedLocalRef::ScopedLocalRef
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedLocalRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ScopedLocalRef(JNIEnv* env, T localRef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedLocalRef.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: ~ScopedLocalRef()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedLocalRef.h
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: ~ScopedLocalRef()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedLocalRef.h:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: ScopedLocalRef::reset
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedLocalRef.h
    functionUses: 0
    functionsReached:
    - DeleteLocalRef
    linkageType: ''
    returnType: void
    signature: reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: ScopedLocalRef::get
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedLocalRef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: get() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetIntField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - env
    - obj
    - err
    argTypes:
    - JNIEnv*
    - jobject
    - int
    constantsTouched: []
    func_position:
      end: 156
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 156
    functionName: seterr
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - SetIntField
    linkageType: ''
    returnType: void
    signature: seterr(JNIEnv *env, jobject obj, int err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetIntField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - env
    - obj
    - err
    argTypes:
    - JNIEnv*
    - jobject
    - int
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: setvmerr
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - SetIntField
    linkageType: ''
    returnType: void
    signature: setvmerr(JNIEnv *env, jobject obj, int err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetIntField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - env
    - obj
    - err
    argTypes:
    - JNIEnv*
    - jobject
    - int
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: setstmterr
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - SetIntField
    linkageType: ''
    returnType: void
    signature: setstmterr(JNIEnv *env, jobject obj, int err)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - jstr
    argTypes:
    - jchar*
    constantsTouched: []
    func_position:
      end: 191
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 191
    functionName: jstrlen
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: jstrlen(const jchar *jstr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLongField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 202
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 202
    functionName: gethandle
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - GetLongField
    linkageType: ''
    returnType: void
    signature: '*

      gethandle(JNIEnv *env, jobject obj)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLongField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: gethvm
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - GetLongField
    linkageType: ''
    returnType: void
    signature: '*

      gethvm(JNIEnv *env, jobject obj)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLongField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 222
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 222
    functionName: gethstmt
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - GetLongField
    linkageType: ''
    returnType: void
    signature: '*

      gethstmt(JNIEnv *env, jobject obj)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLongField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 234
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 234
    functionName: gethbl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - GetLongField
    linkageType: ''
    returnType: void
    signature: '*

      gethbl(JNIEnv *env, jobject obj)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeleteGlobalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject*
    constantsTouched: []
    func_position:
      end: 244
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 244
    functionName: delglobrefp
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - DeleteGlobalRef
    linkageType: ''
    returnType: void
    signature: delglobrefp(JNIEnv *env, jobject *obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject*
    constantsTouched: []
    func_position:
      end: 256
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 256
    functionName: globrefpop
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: jobject
    signature: globrefpop(JNIEnv *env, jobject *obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewGlobalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - env
    - obj
    - ref
    argTypes:
    - JNIEnv*
    - jobject
    - jobject*
    constantsTouched: []
    func_position:
      end: 268
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 268
    functionName: globrefset
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - NewGlobalRef
    linkageType: ''
    returnType: void
    signature: globrefset(JNIEnv *env, jobject obj, jobject *ref)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - strp
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 277
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 277
    functionName: freep
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: freep(char **strp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:282,1
    - Dst: ExceptionClear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:284,1
    - Dst: ThrowNew
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - env
    - msg
    argTypes:
    - JNIEnv*
    - char*
    constantsTouched: []
    func_position:
      end: 288
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 288
    functionName: throwex
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - ThrowNew
    - FindClass
    - ExceptionClear
    linkageType: ''
    returnType: void
    signature: throwex(JNIEnv *env, const char *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:293,1
    - Dst: ExceptionClear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:295,1
    - Dst: ThrowNew
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - env
    - msg
    argTypes:
    - JNIEnv*
    - char*
    constantsTouched: []
    func_position:
      end: 299
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 299
    functionName: throwoom
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - ThrowNew
    - FindClass
    - ExceptionClear
    linkageType: ''
    returnType: void
    signature: throwoom(JNIEnv *env, const char *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: throwclosed
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - throwex
    linkageType: ''
    returnType: void
    signature: throwclosed(JNIEnv *env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:311,1
    - Dst: ExceptionClear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:313,1
    - Dst: ThrowNew
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - env
    - msg
    argTypes:
    - JNIEnv*
    - char*
    constantsTouched: []
    func_position:
      end: 317
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 317
    functionName: throwioex
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - ThrowNew
    - FindClass
    - ExceptionClear
    linkageType: ''
    returnType: void
    signature: throwioex(JNIEnv *env, const char *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: freep
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dest
    argTypes:
    - transstr*
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: transfree
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - freep
    linkageType: ''
    returnType: void
    signature: transfree(transstr *dest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:340,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:340,1
    - Dst: GetStringUTFLength
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:342,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:344,1
    - Dst: throwoom
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:347,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:351,1
    - Dst: ReleaseStringUTFChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:352,1
    - Dst: GetStringUTFRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:354,1
    - Dst: CallObjectMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:359,1
    - Dst: CallObjectMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:362,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:365,1
    - Dst: GetArrayLength
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:367,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:368,1
    - Dst: throwoom
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:370,1
    - Dst: GetByteArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:374,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:377,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 5
    argNames:
    - env
    - haveutf
    - enc
    - src
    - dest
    argTypes:
    - JNIEnv*
    - int
    - jstring
    - jstring
    - transstr*
    constantsTouched: []
    func_position:
      end: 380
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 380
    functionName: trans2iso
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - DeleteLocalRef
    - GetArrayLength
    - GetByteArrayRegion
    - GetStringUTFLength
    - ExceptionOccurred
    - GetStringUTFRegion
    - throwoom
    - strlen
    - ReleaseStringUTFChars
    - strcpy
    - malloc
    - CallObjectMethod
    linkageType: ''
    returnType: char
    signature: "*\ntrans2iso(JNIEnv *env, int haveutf, jstring enc, jstring src,\n\t
      \ transstr *dest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:396,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:399,1
    - Dst: NewByteArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:400,1
    - Dst: SetByteArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:402,1
    - Dst: NewObject
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:405,1
    - Dst: NewObject
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:409,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:412,1
    - Dst: throwoom
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:415,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 5
    argNames:
    - env
    - haveutf
    - enc
    - src
    - dest
    argTypes:
    - JNIEnv*
    - int
    - jstring
    - char*
    - transstr*
    constantsTouched: []
    func_position:
      end: 417
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 417
    functionName: trans2utf
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - NewObject
    - DeleteLocalRef
    - NewStringUTF
    - throwoom
    - strlen
    - SetByteArrayRegion
    - NewByteArray
    linkageType: ''
    returnType: jstring
    signature: "trans2utf(JNIEnv *env, int haveutf, jstring enc, const char *src,\n\t
      \ transstr *dest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetObjectClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:429,1
    - Dst: GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:430,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:434,1
    - Dst: trans2utf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:437,1
    - Dst: CallBooleanMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:438,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:441,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:442,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - udata
    - table
    - count
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 445
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 445
    functionName: busyhandler
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - DeleteLocalRef
    - GetObjectClass
    - CallBooleanMethod
    - GetMethodID
    - trans2utf
    linkageType: ''
    returnType: int
    signature: busyhandler(void *udata, const char *table, int count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetObjectClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:457,1
    - Dst: GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:458,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:462,1
    - Dst: CallBooleanMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:465,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:467,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - udata
    - count
    argTypes:
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 470
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 470
    functionName: busyhandler3
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - GetMethodID
    - CallBooleanMethod
    - GetObjectClass
    - DeleteLocalRef
    linkageType: ''
    returnType: int
    signature: busyhandler3(void *udata, int count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetObjectClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:481,1
    - Dst: GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:482,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:485,1
    - Dst: CallBooleanMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:488,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - udata
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 492
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 492
    functionName: progresshandler
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - GetMethodID
    - CallBooleanMethod
    - GetObjectClass
    - DeleteLocalRef
    linkageType: ''
    returnType: int
    signature: progresshandler(void *udata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetObjectClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:502,1
    - Dst: GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:508,1
    - Dst: NewObjectArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:512,1
    - Dst: trans2utf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:517,1
    - Dst: SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:518,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:519,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:521,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:524,1
    - Dst: CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:528,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:529,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:531,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:534,1
    - Dst: GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:538,1
    - Dst: NewObjectArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:542,1
    - Dst: sqlite3_column_type
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:549,1
    - Dst: trans2utf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:568,1
    - Dst: SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:569,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:571,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:573,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:576,1
    - Dst: CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:579,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:580,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:582,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:585,1
    - Dst: GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:589,1
    - Dst: NewObjectArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:593,1
    - Dst: trans2utf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:599,1
    - Dst: SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:601,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:603,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:605,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:608,1
    - Dst: CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:611,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:612,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:614,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:617,1
    - Dst: GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:624,1
    - Dst: NewObjectArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:628,1
    - Dst: trans2utf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:634,1
    - Dst: SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:636,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:638,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:640,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:643,1
    - Dst: CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:646,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:647,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:649,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:652,1
    - Dst: GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:657,1
    - Dst: NewObjectArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:661,1
    - Dst: sqlite3_column_type
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:667,1
    - Dst: trans2utf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:686,1
    - Dst: SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:687,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:688,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:690,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:693,1
    - Dst: CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:696,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:697,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:699,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:702,1
    - Dst: GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:708,1
    - Dst: NewObjectArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:713,1
    - Dst: trans2utf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:718,1
    - Dst: SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:719,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:720,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:722,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:725,1
    - Dst: CallBooleanMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:728,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:729,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:731,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:735,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:737,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 200
    argCount: 4
    argNames:
    - udata
    - ncol
    - data
    - cols
    argTypes:
    - void*
    - int
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 743
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 743
    functionName: callback
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 2
    functionsReached:
    - DeleteLocalRef
    - GetObjectClass
    - ExceptionOccurred
    - CallBooleanMethod
    - NewObjectArray
    - SetObjectArrayElement
    - sqlite3_column_type
    - CallVoidMethod
    - GetMethodID
    - trans2utf
    linkageType: ''
    returnType: int
    signature: callback(void *udata, int ncol, char **data, char **cols)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:748,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:765,1
    - Dst: sqlite_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:767,1
    - Dst: sqlite_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:771,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:774,1
    - Dst: sqlite3_close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:784,1
    - Dst: sqlite_close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:786,1
    - Dst: sqlite_close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:790,1
    - Dst: sqlite3_close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:793,1
    - Dst: SetLongField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:804,1
    - Dst: delglobrefp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:807,1
    - Dst: delglobrefp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:808,1
    - Dst: delglobrefp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:809,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:810,1
    - Dst: sqlite3_blob_close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:818,1
    - Dst: delglobrefp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:823,1
    - Dst: delglobrefp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:824,1
    - Dst: delglobrefp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:825,1
    - Dst: delglobrefp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:826,1
    - Dst: delglobrefp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:827,1
    - Dst: delglobrefp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:828,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:829,1
    - Dst: SetLongField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:830,1
    - Dst: throwclosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:834,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 62
    argCount: 3
    argNames:
    - env
    - obj
    - final
    argTypes:
    - JNIEnv*
    - jobject
    - int
    constantsTouched: []
    func_position:
      end: 836
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 836
    functionName: doclose
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - SetLongField
    - sqlite_finalize
    - sqlite_close
    - gethandle
    - throwclosed
    - sqlite3_close
    - delglobrefp
    - sqlite3_finalize
    - free
    - sqlite3_blob_close
    linkageType: ''
    returnType: void
    signature: doclose(JNIEnv *env, jobject obj, int final)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doclose
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 842
      start: 838
    functionDepth: 3
    functionLinenumber: 838
    functionLinenumberEnd: 842
    functionName: Java_SQLite_Database__1close
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - doclose
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Database__1close(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doclose
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 848
      start: 844
    functionDepth: 3
    functionLinenumber: 844
    functionLinenumberEnd: 848
    functionName: Java_SQLite_Database__1finalize
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - doclose
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Database__1finalize(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:853,1
    - Dst: sqlite3_busy_timeout
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:858,1
    - Dst: sqlite_busy_timeout
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:860,1
    - Dst: sqlite_busy_timeout
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:864,1
    - Dst: sqlite3_busy_timeout
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:867,1
    - Dst: throwclosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:872,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - env
    - obj
    - ms
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 873
      start: 850
    functionDepth: 2
    functionLinenumber: 850
    functionLinenumberEnd: 873
    functionName: Java_SQLite_Database__1busy_1timeout
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite_busy_timeout
    - throwclosed
    - sqlite3_busy_timeout
    - gethandle
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Database__1busy_1timeout(JNIEnv *env, jobject obj, jint
      ms)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:880,1
    - Dst: sqlite_libversion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:880,1
    - Dst: NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:883,1
    - Dst: sqlite_libversion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:883,1
    - Dst: NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:885,1
    - Dst: sqlite3_libversion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - env
    - cls
    argTypes:
    - JNIEnv*
    - jclass
    constantsTouched: []
    func_position:
      end: 888
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 888
    functionName: Java_SQLite_Database_version
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite_libversion
    - sqlite3_libversion
    - NewStringUTF
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Database_version(JNIEnv *env, jclass cls)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:893,1
    - Dst: NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:898,1
    - Dst: sqlite3_libversion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:898,1
    - Dst: NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:900,1
    - Dst: sqlite_libversion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:900,1
    - Dst: NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:904,1
    - Dst: sqlite_libversion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:904,1
    - Dst: NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:906,1
    - Dst: sqlite3_libversion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:906,1
    - Dst: NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:910,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 911
      start: 890
    functionDepth: 1
    functionLinenumber: 890
    functionLinenumberEnd: 911
    functionName: Java_SQLite_Database_dbversion
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite_libversion
    - sqlite3_libversion
    - NewStringUTF
    - gethandle
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Database_dbversion(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:916,1
    - Dst: sqlite3_last_insert_rowid
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:921,1
    - Dst: sqlite_last_insert_rowid
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:923,1
    - Dst: sqlite_last_insert_rowid
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:927,1
    - Dst: sqlite3_last_insert_rowid
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:930,1
    - Dst: throwclosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:934,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 936
      start: 913
    functionDepth: 2
    functionLinenumber: 913
    functionLinenumberEnd: 936
    functionName: Java_SQLite_Database__1last_1insert_1rowid
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - throwclosed
    - sqlite3_last_insert_rowid
    - sqlite_last_insert_rowid
    - gethandle
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Database__1last_1insert_1rowid(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:941,1
    - Dst: sqlite3_changes
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:946,1
    - Dst: sqlite_changes
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:948,1
    - Dst: sqlite_changes
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:952,1
    - Dst: sqlite3_changes
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:955,1
    - Dst: throwclosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:959,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 961
      start: 938
    functionDepth: 2
    functionLinenumber: 938
    functionLinenumberEnd: 961
    functionName: Java_SQLite_Database__1changes
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite3_changes
    - throwclosed
    - sqlite_changes
    - gethandle
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Database__1changes(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trans2iso
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:974,1
    - Dst: sqlite3_complete
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:975,1
    - Dst: trans2iso
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:977,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:977,1
    - Dst: sqlite_libencoding
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:977,1
    - Dst: sqlite_complete
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:979,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:981,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - env
    - cls
    - sql
    argTypes:
    - JNIEnv*
    - jclass
    - jstring
    constantsTouched: []
    func_position:
      end: 983
      start: 963
    functionDepth: 2
    functionLinenumber: 963
    functionLinenumberEnd: 983
    functionName: Java_SQLite_Database__1complete
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite3_complete
    - strcmp
    - transfree
    - sqlite_complete
    - sqlite_libencoding
    - trans2iso
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Database__1complete(JNIEnv *env, jclass cls, jstring sql)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:988,1
    - Dst: sqlite3_interrupt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:993,1
    - Dst: sqlite_interrupt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:995,1
    - Dst: sqlite_interrupt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:999,1
    - Dst: sqlite3_interrupt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1002,1
    - Dst: throwclosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1007,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 1008
      start: 985
    functionDepth: 2
    functionLinenumber: 985
    functionLinenumberEnd: 1008
    functionName: Java_SQLite_Database__1interrupt
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite_interrupt
    - throwclosed
    - sqlite3_interrupt
    - gethandle
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Database__1interrupt(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Java_SQLite_Database__1open4
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - env
    - obj
    - file
    - mode
    argTypes:
    - JNIEnv*
    - jobject
    - jstring
    - jint
    constantsTouched: []
    func_position:
      end: 1225
      start: 1221
    functionDepth: 0
    functionLinenumber: 1221
    functionLinenumberEnd: 1225
    functionName: Java_SQLite_Database__1open
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 1
    functionsReached:
    - Java_SQLite_Database__1open4
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Database__1open(JNIEnv *env, jobject obj, jstring file,
      jint mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1230,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1242,1
    - Dst: trans2iso
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1245,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1246,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1248,1
    - Dst: sqlite_open_aux_file
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1251,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1253,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1254,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1256,1
    - Dst: sqlite_freemem
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1258,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1263,1
    - Dst: sqlite_error_string
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1263,1
    - Dst: sqlite_freemem
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1266,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1269,1
    - Dst: throwclosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1273,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - env
    - obj
    - file
    argTypes:
    - JNIEnv*
    - jobject
    - jstring
    constantsTouched: []
    func_position:
      end: 1274
      start: 1227
    functionDepth: 2
    functionLinenumber: 1227
    functionLinenumberEnd: 1274
    functionName: Java_SQLite_Database__1open_1aux_1file
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - DeleteLocalRef
    - sqlite_open_aux_file
    - throwex
    - gethandle
    - sqlite_freemem
    - ExceptionOccurred
    - throwclosed
    - transfree
    - sqlite_error_string
    - trans2iso
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Database__1open_1aux_1file(JNIEnv *env, jobject obj, jstring
      file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1279,1
    - Dst: delglobrefp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1282,1
    - Dst: globrefset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1283,1
    - Dst: sqlite3_busy_handler
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1286,1
    - Dst: sqlite_busy_handler
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1288,1
    - Dst: sqlite_busy_handler
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1292,1
    - Dst: sqlite3_busy_handler
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1295,1
    - Dst: throwclosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - env
    - obj
    - bh
    argTypes:
    - JNIEnv*
    - jobject
    - jobject
    constantsTouched: []
    func_position:
      end: 1301
      start: 1276
    functionDepth: 2
    functionLinenumber: 1276
    functionLinenumberEnd: 1301
    functionName: Java_SQLite_Database__1busy_1handler
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - gethandle
    - throwclosed
    - sqlite_busy_handler
    - globrefset
    - delglobrefp
    - sqlite3_busy_handler
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Database__1busy_1handler(JNIEnv *env, jobject obj, jobject
      bh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1307,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1311,1
    - Dst: globrefpop
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1320,1
    - Dst: globrefset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1322,1
    - Dst: trans2iso
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1325,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1326,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1328,1
    - Dst: sqlite3_exec
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1333,1
    - Dst: sqlite_exec
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1337,1
    - Dst: sqlite_exec
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1343,1
    - Dst: sqlite3_exec
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1348,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1353,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1354,1
    - Dst: delglobrefp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1355,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1358,1
    - Dst: freeproc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1360,1
    - Dst: seterr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1367,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1369,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1371,1
    - Dst: freeproc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1374,1
    - Dst: throwclosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1379,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 52
    argCount: 4
    argNames:
    - env
    - obj
    - sql
    - cb
    argTypes:
    - JNIEnv*
    - jobject
    - jstring
    - jobject
    constantsTouched: []
    func_position:
      end: 1380
      start: 1303
    functionDepth: 2
    functionLinenumber: 1303
    functionLinenumberEnd: 1380
    functionName: Java_SQLite_Database__1exec__Ljava_lang_String_2LSQLite_Callback_2
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - DeleteLocalRef
    - throwex
    - sqlite_exec
    - gethandle
    - throwclosed
    - ExceptionOccurred
    - globrefset
    - globrefpop
    - transfree
    - delglobrefp
    - seterr
    - freeproc
    - sqlite3_exec
    - sprintf
    - trans2iso
    linkageType: ''
    returnType: JNIEXPORT
    signature: "Java_SQLite_Database__1exec__Ljava_lang_String_2LSQLite_Callback_2\n
      \   (JNIEnv *env, jobject obj, jstring sql, jobject cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1386,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1390,1
    - Dst: globrefpop
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1406,1
    - Dst: globrefset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1408,1
    - Dst: ReleaseStringUTFChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1417,1
    - Dst: delglobrefp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1418,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1420,1
    - Dst: ReleaseStringUTFChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1426,1
    - Dst: delglobrefp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1427,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1429,1
    - Dst: ReleaseStringUTFChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1433,1
    - Dst: delglobrefp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1434,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1436,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1442,1
    - Dst: ReleaseStringUTFChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1445,1
    - Dst: delglobrefp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1446,1
    - Dst: throwoom
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1448,1
    - Dst: GetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1460,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1462,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1464,1
    - Dst: trans2iso
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1470,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1477,1
    - Dst: freep
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1480,1
    - Dst: ReleaseStringUTFChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1481,1
    - Dst: delglobrefp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1482,1
    - Dst: trans2iso
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1488,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1489,1
    - Dst: sqlite3_exec
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1516,1
    - Dst: sqlite3_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1518,1
    - Dst: sqlite_exec_vprintf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1525,1
    - Dst: sqlite_exec_printf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1529,1
    - Dst: sqlite_exec_vprintf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1554,1
    - Dst: sqlite_exec_printf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1557,1
    - Dst: sqlite3_exec
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1602,1
    - Dst: sqlite3_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1604,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1611,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1615,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1618,1
    - Dst: ReleaseStringUTFChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1619,1
    - Dst: freep
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1620,1
    - Dst: delglobrefp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1621,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1624,1
    - Dst: freeproc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1626,1
    - Dst: seterr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1633,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1635,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1637,1
    - Dst: freeproc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1640,1
    - Dst: throwclosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1645,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 143
    argCount: 5
    argNames:
    - env
    - obj
    - sql
    - cb
    - args
    argTypes:
    - JNIEnv*
    - jobject
    - jstring
    - jobject
    - jobjectArray
    constantsTouched: []
    func_position:
      end: 1646
      start: 1382
    functionDepth: 2
    functionLinenumber: 1382
    functionLinenumberEnd: 1646
    functionName: Java_SQLite_Database__1exec__Ljava_lang_String_2LSQLite_Callback_2_3Ljava_lang_String_2
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - DeleteLocalRef
    - freep
    - sqlite3_free
    - sqlite_exec_printf
    - throwclosed
    - globrefset
    - globrefpop
    - transfree
    - throwoom
    - delglobrefp
    - freeproc
    - trans2iso
    - gethandle
    - sqlite_exec_vprintf
    - ReleaseStringUTFChars
    - sprintf
    - throwex
    - GetObjectArrayElement
    - ExceptionOccurred
    - seterr
    - sqlite3_exec
    - malloc
    linkageType: ''
    returnType: JNIEXPORT
    signature: "Java_SQLite_Database__1exec__Ljava_lang_String_2LSQLite_Callback_2_3Ljava_lang_String_2\n
      \   (JNIEnv *env, jobject obj, jstring sql, jobject cb, jobjectArray args)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLongField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 1655
      start: 1648
    functionDepth: 0
    functionLinenumber: 1648
    functionLinenumberEnd: 1655
    functionName: getfunc
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - GetLongField
    linkageType: ''
    returnType: hfunc
    signature: '*

      getfunc(JNIEnv *env, jobject obj)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite_user_data
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1661,1
    - Dst: GetObjectClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1665,1
    - Dst: GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1667,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1674,1
    - Dst: NewObjectArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1677,1
    - Dst: trans2utf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1683,1
    - Dst: SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1684,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1685,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1687,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1690,1
    - Dst: CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1694,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1695,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1696,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - sf
    - isstep
    - nargs
    - args
    argTypes:
    - sqlite_func*
    - int
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 1698
      start: 1658
    functionDepth: 2
    functionLinenumber: 1658
    functionLinenumberEnd: 1698
    functionName: call_common
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - DeleteLocalRef
    - GetObjectClass
    - sqlite_user_data
    - ExceptionOccurred
    - NewObjectArray
    - SetObjectArrayElement
    - CallVoidMethod
    - GetMethodID
    - trans2utf
    linkageType: ''
    returnType: void
    signature: call_common(sqlite_func *sf, int isstep, int nargs, const char **args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: call_common
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sf
    - nargs
    - args
    argTypes:
    - sqlite_func*
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 1704
      start: 1700
    functionDepth: 3
    functionLinenumber: 1700
    functionLinenumberEnd: 1704
    functionName: call_func
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - call_common
    linkageType: ''
    returnType: void
    signature: call_func(sqlite_func *sf, int nargs, const char **args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: call_common
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sf
    - nargs
    - args
    argTypes:
    - sqlite_func*
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 1710
      start: 1706
    functionDepth: 3
    functionLinenumber: 1706
    functionLinenumberEnd: 1710
    functionName: call_step
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - call_common
    linkageType: ''
    returnType: void
    signature: call_step(sqlite_func *sf, int nargs, const char **args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite_user_data
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1715,1
    - Dst: GetObjectClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1719,1
    - Dst: GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1720,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1723,1
    - Dst: CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1727,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1728,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - sf
    argTypes:
    - sqlite_func*
    constantsTouched: []
    func_position:
      end: 1730
      start: 1712
    functionDepth: 0
    functionLinenumber: 1712
    functionLinenumberEnd: 1730
    functionName: call_final
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - DeleteLocalRef
    - GetObjectClass
    - sqlite_user_data
    - CallVoidMethod
    - GetMethodID
    linkageType: ''
    returnType: void
    signature: call_final(sqlite_func *sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_user_data
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1737,1
    - Dst: GetObjectClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1741,1
    - Dst: GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1743,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1750,1
    - Dst: NewObjectArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1753,1
    - Dst: trans2utf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1759,1
    - Dst: sqlite3_value_text
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1759,1
    - Dst: SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1761,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1762,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1764,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1767,1
    - Dst: CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1771,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1772,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1773,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - sf
    - isstep
    - nargs
    - args
    argTypes:
    - sqlite3_context*
    - int
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 1775
      start: 1734
    functionDepth: 2
    functionLinenumber: 1734
    functionLinenumberEnd: 1775
    functionName: call3_common
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - DeleteLocalRef
    - GetObjectClass
    - sqlite3_user_data
    - ExceptionOccurred
    - sqlite3_value_text
    - NewObjectArray
    - SetObjectArrayElement
    - CallVoidMethod
    - GetMethodID
    - trans2utf
    linkageType: ''
    returnType: void
    signature: call3_common(sqlite3_context *sf, int isstep, int nargs, sqlite3_value
      **args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: call3_common
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sf
    - nargs
    - args
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 1781
      start: 1777
    functionDepth: 3
    functionLinenumber: 1777
    functionLinenumberEnd: 1781
    functionName: call3_func
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - call3_common
    linkageType: ''
    returnType: void
    signature: call3_func(sqlite3_context *sf, int nargs, sqlite3_value **args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: call3_common
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sf
    - nargs
    - args
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    constantsTouched: []
    func_position:
      end: 1787
      start: 1783
    functionDepth: 3
    functionLinenumber: 1783
    functionLinenumberEnd: 1787
    functionName: call3_step
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - call3_common
    linkageType: ''
    returnType: void
    signature: call3_step(sqlite3_context *sf, int nargs, sqlite3_value **args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_user_data
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1792,1
    - Dst: GetObjectClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1796,1
    - Dst: GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1797,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1800,1
    - Dst: CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1804,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1805,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - sf
    argTypes:
    - sqlite3_context*
    constantsTouched: []
    func_position:
      end: 1807
      start: 1789
    functionDepth: 0
    functionLinenumber: 1789
    functionLinenumberEnd: 1807
    functionName: call3_final
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - DeleteLocalRef
    - GetObjectClass
    - sqlite3_user_data
    - CallVoidMethod
    - GetMethodID
    linkageType: ''
    returnType: void
    signature: call3_final(sqlite3_context *sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1814,1
    - Dst: FindClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1817,1
    - Dst: AllocObject
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1825,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1827,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1830,1
    - Dst: throwoom
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1832,1
    - Dst: globrefset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1835,1
    - Dst: globrefset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1836,1
    - Dst: globrefset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1837,1
    - Dst: SetLongField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1845,1
    - Dst: trans2iso
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1846,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1847,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1849,1
    - Dst: sqlite3_create_function
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1855,1
    - Dst: sqlite_create_aggregate
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1865,1
    - Dst: sqlite_create_function
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1870,1
    - Dst: sqlite_create_aggregate
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1879,1
    - Dst: sqlite_create_function
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1883,1
    - Dst: sqlite3_create_function
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1889,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1898,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1900,1
    - Dst: throwclosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1904,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 6
    argNames:
    - env
    - isagg
    - obj
    - name
    - nargs
    - fi
    argTypes:
    - JNIEnv*
    - int
    - jobject
    - jstring
    - jint
    - jobject
    constantsTouched: []
    func_position:
      end: 1905
      start: 1810
    functionDepth: 2
    functionLinenumber: 1810
    functionLinenumberEnd: 1905
    functionName: mkfunc_common
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - SetLongField
    - DeleteLocalRef
    - throwex
    - sqlite3_create_function
    - gethandle
    - sqlite_create_function
    - ExceptionOccurred
    - throwclosed
    - globrefset
    - transfree
    - FindClass
    - throwoom
    - AllocObject
    - sqlite_create_aggregate
    - malloc
    - trans2iso
    linkageType: ''
    returnType: void
    signature: "mkfunc_common(JNIEnv *env, int isagg, jobject obj, jstring name,\n\t
      \     jint nargs, jobject fi)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mkfunc_common
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - env
    - obj
    - name
    - nargs
    - fi
    argTypes:
    - JNIEnv*
    - jobject
    - jstring
    - jint
    - jobject
    constantsTouched: []
    func_position:
      end: 1912
      start: 1907
    functionDepth: 3
    functionLinenumber: 1907
    functionLinenumberEnd: 1912
    functionName: Java_SQLite_Database__1create_1aggregate
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - mkfunc_common
    linkageType: ''
    returnType: JNIEXPORT
    signature: "Java_SQLite_Database__1create_1aggregate(JNIEnv *env, jobject obj,\n\t\t\t\t\t
      jstring name, jint nargs, jobject fi)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mkfunc_common
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - env
    - obj
    - name
    - nargs
    - fi
    argTypes:
    - JNIEnv*
    - jobject
    - jstring
    - jint
    - jobject
    constantsTouched: []
    func_position:
      end: 1919
      start: 1914
    functionDepth: 3
    functionLinenumber: 1914
    functionLinenumberEnd: 1919
    functionName: Java_SQLite_Database__1create_1function
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - mkfunc_common
    linkageType: ''
    returnType: JNIEXPORT
    signature: "Java_SQLite_Database__1create_1function(JNIEnv *env, jobject obj,\n\t\t\t\t\tjstring
      name, jint nargs, jobject fi)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1925,1
    - Dst: trans2iso
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1940,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1941,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1943,1
    - Dst: sqlite_function_type
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1946,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1947,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1949,1
    - Dst: sqlite_error_string
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1949,1
    - Dst: throwclosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1956,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - env
    - obj
    - name
    - type
    argTypes:
    - JNIEnv*
    - jobject
    - jstring
    - jint
    constantsTouched: []
    func_position:
      end: 1957
      start: 1921
    functionDepth: 2
    functionLinenumber: 1921
    functionLinenumberEnd: 1957
    functionName: Java_SQLite_Database__1function_1type
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - DeleteLocalRef
    - sqlite_function_type
    - throwex
    - gethandle
    - throwclosed
    - ExceptionOccurred
    - transfree
    - sqlite_error_string
    - trans2iso
    linkageType: ''
    returnType: JNIEXPORT
    signature: "Java_SQLite_Database__1function_1type(JNIEnv *env, jobject obj,\n\t\t\t\t
      \     jstring name, jint type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getfunc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1962,1
    - Dst: sqlite3_aggregate_count
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1968,1
    - Dst: sqlite_aggregate_count
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1970,1
    - Dst: sqlite_aggregate_count
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1974,1
    - Dst: sqlite3_aggregate_count
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1977,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 1982
      start: 1959
    functionDepth: 1
    functionLinenumber: 1959
    functionLinenumberEnd: 1982
    functionName: Java_SQLite_FunctionContext_count
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - getfunc
    - sqlite3_aggregate_count
    - sqlite_aggregate_count
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_FunctionContext_count(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getfunc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1987,1
    - Dst: trans2iso
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1995,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1996,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:1998,1
    - Dst: sqlite_set_result_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2001,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2003,1
    - Dst: GetStringLength
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2005,1
    - Dst: GetStringChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2006,1
    - Dst: sqlite3_result_error16
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2008,1
    - Dst: ReleaseStringChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2009,1
    - Dst: sqlite3_result_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2011,1
    - Dst: trans2iso
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2019,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2020,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2022,1
    - Dst: sqlite_set_result_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2025,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2026,1
    - Dst: GetStringLength
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2030,1
    - Dst: GetStringChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2031,1
    - Dst: sqlite3_result_error16
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2033,1
    - Dst: ReleaseStringChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2034,1
    - Dst: sqlite3_result_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2036,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 3
    argNames:
    - env
    - obj
    - err
    argTypes:
    - JNIEnv*
    - jobject
    - jstring
    constantsTouched: []
    func_position:
      end: 2042
      start: 1984
    functionDepth: 2
    functionLinenumber: 1984
    functionLinenumberEnd: 2042
    functionName: Java_SQLite_FunctionContext_set_1error
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - DeleteLocalRef
    - sqlite3_result_error16
    - ExceptionOccurred
    - GetStringLength
    - transfree
    - GetStringChars
    - getfunc
    - ReleaseStringChars
    - sqlite3_result_error
    - sqlite_set_result_error
    - trans2iso
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_FunctionContext_set_1error(JNIEnv *env, jobject obj, jstring
      err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getfunc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2047,1
    - Dst: sqlite3_result_double
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2052,1
    - Dst: sqlite_set_result_double
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2054,1
    - Dst: sqlite_set_result_double
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2058,1
    - Dst: sqlite3_result_double
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2061,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - env
    - obj
    - d
    argTypes:
    - JNIEnv*
    - jobject
    - jdouble
    constantsTouched: []
    func_position:
      end: 2065
      start: 2044
    functionDepth: 1
    functionLinenumber: 2044
    functionLinenumberEnd: 2065
    functionName: Java_SQLite_FunctionContext_set_1result__D
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_double
    - getfunc
    - sqlite_set_result_double
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_FunctionContext_set_1result__D(JNIEnv *env, jobject obj,
      jdouble d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getfunc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2070,1
    - Dst: sqlite3_result_int
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2075,1
    - Dst: sqlite_set_result_int
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2077,1
    - Dst: sqlite_set_result_int
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2081,1
    - Dst: sqlite3_result_int
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2084,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - env
    - obj
    - i
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 2088
      start: 2067
    functionDepth: 1
    functionLinenumber: 2067
    functionLinenumberEnd: 2088
    functionName: Java_SQLite_FunctionContext_set_1result__I
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - getfunc
    - sqlite_set_result_int
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_FunctionContext_set_1result__I(JNIEnv *env, jobject obj,
      jint i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getfunc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2095,1
    - Dst: trans2iso
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2103,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2104,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2106,1
    - Dst: sqlite_set_result_string
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2109,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2111,1
    - Dst: GetStringLength
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2113,1
    - Dst: GetStringChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2114,1
    - Dst: sqlite3_result_text16
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2116,1
    - Dst: ReleaseStringChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2118,1
    - Dst: sqlite3_result_null
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2120,1
    - Dst: trans2iso
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2127,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2128,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2130,1
    - Dst: sqlite_set_result_string
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2133,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2134,1
    - Dst: GetStringLength
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2138,1
    - Dst: GetStringChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2139,1
    - Dst: sqlite3_result_text16
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2141,1
    - Dst: ReleaseStringChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2143,1
    - Dst: sqlite3_result_null
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2145,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 3
    argNames:
    - env
    - obj
    - ret
    argTypes:
    - JNIEnv*
    - jobject
    - jstring
    constantsTouched: []
    func_position:
      end: 2150
      start: 2090
    functionDepth: 2
    functionLinenumber: 2090
    functionLinenumberEnd: 2150
    functionName: Java_SQLite_FunctionContext_set_1result__Ljava_lang_String_2
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_null
    - DeleteLocalRef
    - sqlite_set_result_string
    - ExceptionOccurred
    - GetStringLength
    - transfree
    - GetStringChars
    - getfunc
    - ReleaseStringChars
    - sqlite3_result_text16
    - trans2iso
    linkageType: ''
    returnType: JNIEXPORT
    signature: "Java_SQLite_FunctionContext_set_1result__Ljava_lang_String_2(JNIEnv
      *env,\n\t\t\t\t\t\t\t     jobject obj,\n\t\t\t\t\t\t\t     jstring ret)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getfunc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2157,1
    - Dst: GetArrayLength
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2170,1
    - Dst: GetByteArrayElements
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2171,1
    - Dst: sqlite3_result_blob
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2172,1
    - Dst: ReleaseByteArrayElements
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2174,1
    - Dst: sqlite3_result_null
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - env
    - obj
    - b
    argTypes:
    - JNIEnv*
    - jobject
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 2180
      start: 2152
    functionDepth: 1
    functionLinenumber: 2152
    functionLinenumberEnd: 2180
    functionName: Java_SQLite_FunctionContext_set_1result___3B
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_null
    - GetArrayLength
    - ReleaseByteArrayElements
    - GetByteArrayElements
    - sqlite3_result_blob
    - getfunc
    linkageType: ''
    returnType: JNIEXPORT
    signature: "Java_SQLite_FunctionContext_set_1result___3B(JNIEnv *env, jobject
      obj,\n\t\t\t\t\t     jbyteArray b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getfunc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2187,1
    - Dst: sqlite3_result_zeroblob
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - env
    - obj
    - n
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 2199
      start: 2182
    functionDepth: 1
    functionLinenumber: 2182
    functionLinenumberEnd: 2199
    functionName: Java_SQLite_FunctionContext_set_1result_1zeroblob
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_zeroblob
    - getfunc
    linkageType: ''
    returnType: JNIEXPORT
    signature: "Java_SQLite_FunctionContext_set_1result_1zeroblob(JNIEnv *env, jobject
      obj,\n\t\t\t\t\t\t  jint n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2205,1
    - Dst: sqlite_error_string
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2205,1
    - Dst: NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - env
    - c
    - err
    argTypes:
    - JNIEnv*
    - jclass
    - jint
    constantsTouched: []
    func_position:
      end: 2209
      start: 2201
    functionDepth: 0
    functionLinenumber: 2201
    functionLinenumberEnd: 2209
    functionName: Java_SQLite_Database_error_1string
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite_error_string
    - NewStringUTF
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Database_error_1string(JNIEnv *env, jclass c, jint err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2215,1
    - Dst: NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2223,1
    - Dst: sqlite3_errmsg
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 2228
      start: 2211
    functionDepth: 1
    functionLinenumber: 2211
    functionLinenumberEnd: 2228
    functionName: Java_SQLite_Database__1errmsg
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite3_errmsg
    - NewStringUTF
    - gethandle
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Database__1errmsg(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2233,1
    - Dst: delglobrefp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2238,1
    - Dst: globrefset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2240,1
    - Dst: delglobrefp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2244,1
    - Dst: globrefset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - env
    - obj
    - enc
    argTypes:
    - JNIEnv*
    - jobject
    - jstring
    constantsTouched: []
    func_position:
      end: 2250
      start: 2230
    functionDepth: 1
    functionLinenumber: 2230
    functionLinenumberEnd: 2250
    functionName: Java_SQLite_Database__1set_1encoding
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - delglobrefp
    - globrefset
    - gethandle
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Database__1set_1encoding(JNIEnv *env, jobject obj, jstring
      enc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetObjectClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2262,1
    - Dst: GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2266,1
    - Dst: trans2utf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2273,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2276,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2278,1
    - Dst: trans2utf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2282,1
    - Dst: trans2utf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2286,1
    - Dst: trans2utf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2290,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2293,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2295,1
    - Dst: CallIntMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2298,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2299,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2301,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2304,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2305,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2306,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2307,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 6
    argNames:
    - arg
    - what
    - arg1
    - arg2
    - arg3
    - arg4
    argTypes:
    - void*
    - int
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2315
      start: 2253
    functionDepth: 2
    functionLinenumber: 2253
    functionLinenumberEnd: 2315
    functionName: doauth
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - DeleteLocalRef
    - GetObjectClass
    - ExceptionOccurred
    - CallIntMethod
    - GetMethodID
    - trans2utf
    linkageType: ''
    returnType: int
    signature: "doauth(void *arg, int what, const char *arg1, const char *arg2,\n
      \      const char *arg3, const char *arg4)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2321,1
    - Dst: delglobrefp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2324,1
    - Dst: globrefset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2325,1
    - Dst: sqlite3_set_authorizer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2330,1
    - Dst: sqlite_set_authorizer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2333,1
    - Dst: sqlite_set_authorizer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2338,1
    - Dst: sqlite3_set_authorizer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2341,1
    - Dst: throwclosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2347,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - env
    - obj
    - auth
    argTypes:
    - JNIEnv*
    - jobject
    - jobject
    constantsTouched: []
    func_position:
      end: 2348
      start: 2318
    functionDepth: 2
    functionLinenumber: 2318
    functionLinenumberEnd: 2348
    functionName: Java_SQLite_Database__1set_1authorizer
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite_set_authorizer
    - gethandle
    - throwclosed
    - globrefset
    - delglobrefp
    - sqlite3_set_authorizer
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Database__1set_1authorizer(JNIEnv *env, jobject obj, jobject
      auth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetObjectClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2359,1
    - Dst: GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2362,1
    - Dst: trans2utf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2366,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2367,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2369,1
    - Dst: ExceptionClear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2370,1
    - Dst: CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2373,1
    - Dst: ExceptionClear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2374,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2375,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - arg
    - msg
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 2380
      start: 2351
    functionDepth: 2
    functionLinenumber: 2351
    functionLinenumberEnd: 2380
    functionName: dotrace
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - DeleteLocalRef
    - GetObjectClass
    - ExceptionOccurred
    - CallVoidMethod
    - GetMethodID
    - trans2utf
    - ExceptionClear
    linkageType: ''
    returnType: void
    signature: dotrace(void *arg, const char *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2386,1
    - Dst: delglobrefp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2389,1
    - Dst: globrefset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2390,1
    - Dst: sqlite3_trace
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2393,1
    - Dst: sqlite_trace
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2396,1
    - Dst: sqlite_trace
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2402,1
    - Dst: sqlite3_trace
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2406,1
    - Dst: throwclosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - env
    - obj
    - tr
    argTypes:
    - JNIEnv*
    - jobject
    - jobject
    constantsTouched: []
    func_position:
      end: 2412
      start: 2383
    functionDepth: 2
    functionLinenumber: 2383
    functionLinenumberEnd: 2412
    functionName: Java_SQLite_Database__1trace
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite3_trace
    - gethandle
    - throwclosed
    - sqlite_trace
    - globrefset
    - delglobrefp
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Database__1trace(JNIEnv *env, jobject obj, jobject tr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethvm
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2418,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2439,1
    - Dst: sqlite_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2441,1
    - Dst: sqlite_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2445,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2448,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2453,1
    - Dst: SetLongField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2454,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2458,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - env
    - obj
    - final
    argTypes:
    - JNIEnv*
    - jobject
    - int
    constantsTouched: []
    func_position:
      end: 2460
      start: 2415
    functionDepth: 1
    functionLinenumber: 2415
    functionLinenumberEnd: 2460
    functionName: dovmfinal
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - SetLongField
    - sqlite_finalize
    - throwex
    - gethvm
    - sqlite3_finalize
    - free
    linkageType: ''
    returnType: void
    signature: dovmfinal(JNIEnv *env, jobject obj, int final)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2467,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2486,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2489,1
    - Dst: SetLongField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2490,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 2492
      start: 2464
    functionDepth: 1
    functionLinenumber: 2464
    functionLinenumberEnd: 2492
    functionName: dostmtfinal
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - SetLongField
    - sqlite3_finalize
    - gethstmt
    - free
    linkageType: ''
    returnType: void
    signature: dostmtfinal(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethbl
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2499,1
    - Dst: sqlite3_blob_close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2518,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2521,1
    - Dst: SetLongField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2522,1
    - Dst: SetIntField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2523,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 2525
      start: 2496
    functionDepth: 1
    functionLinenumber: 2496
    functionLinenumberEnd: 2525
    functionName: doblobfinal
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - SetLongField
    - gethbl
    - SetIntField
    - free
    - sqlite3_blob_close
    linkageType: ''
    returnType: void
    signature: doblobfinal(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dovmfinal
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2532,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 2536
      start: 2528
    functionDepth: 2
    functionLinenumber: 2528
    functionLinenumberEnd: 2536
    functionName: Java_SQLite_Vm_stop
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - dovmfinal
    - throwex
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Vm_stop(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dovmfinal
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 2544
      start: 2538
    functionDepth: 2
    functionLinenumber: 2538
    functionLinenumberEnd: 2544
    functionName: Java_SQLite_Vm_finalize
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - dovmfinal
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Vm_finalize(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2563,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2566,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - mem
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 2567
      start: 2548
    functionDepth: 0
    functionLinenumber: 2548
    functionLinenumberEnd: 2567
    functionName: free_tab
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: free_tab(void *mem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethvm
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2575,1
    - Dst: sqlite3_step
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2590,1
    - Dst: sqlite3_column_count
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2592,1
    - Dst: calloc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2594,1
    - Dst: sqlite3_column_name
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2610,1
    - Dst: sqlite3_data_count
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2614,1
    - Dst: calloc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2616,1
    - Dst: sqlite3_column_name
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2632,1
    - Dst: sqlite3_column_type
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2633,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2642,1
    - Dst: sqlite3_column_text
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2660,1
    - Dst: sqlite_step
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2667,1
    - Dst: sqlite_step
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2673,1
    - Dst: sqlite3_step
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2677,1
    - Dst: sqlite3_column_count
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2679,1
    - Dst: calloc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2681,1
    - Dst: sqlite3_column_name
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2697,1
    - Dst: sqlite3_data_count
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2701,1
    - Dst: calloc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2703,1
    - Dst: sqlite3_column_name
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2718,1
    - Dst: sqlite3_column_type
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2719,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2727,1
    - Dst: sqlite3_column_text
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2745,1
    - Dst: callback
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2764,1
    - Dst: freeproc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2767,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2770,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2772,1
    - Dst: callback
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2790,1
    - Dst: freeproc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2793,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2796,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2798,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2803,1
    - Dst: sqlite_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2805,1
    - Dst: sqlite_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2809,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2812,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2820,1
    - Dst: sqlite_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2822,1
    - Dst: sqlite_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2826,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2829,1
    - Dst: setvmerr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2832,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2834,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2837,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2839,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 193
    argCount: 3
    argNames:
    - env
    - obj
    - cb
    argTypes:
    - JNIEnv*
    - jobject
    - jobject
    constantsTouched: []
    func_position:
      end: 2842
      start: 2571
    functionDepth: 3
    functionLinenumber: 2571
    functionLinenumberEnd: 2842
    functionName: Java_SQLite_Vm_step
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - DeleteLocalRef
    - sqlite_finalize
    - sqlite3_column_text
    - throwex
    - setvmerr
    - ExceptionOccurred
    - sqlite3_column_name
    - sqlite3_data_count
    - sqlite_step
    - gethvm
    - sqlite3_finalize
    - sqlite3_column_count
    - sqlite3_column_type
    - callback
    - freeproc
    - sqlite3_step
    - malloc
    - calloc
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Vm_step(JNIEnv *env, jobject obj, jobject cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethvm
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2848,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2860,1
    - Dst: sqlite_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2862,1
    - Dst: sqlite_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2866,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2869,1
    - Dst: sqlite3_prepare_v2
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2882,1
    - Dst: sqlite3_prepare
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2885,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2890,1
    - Dst: sqlite3_errmsg
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2893,1
    - Dst: sqlite_compile
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2896,1
    - Dst: sqlite_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2901,1
    - Dst: sqlite_compile
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2908,1
    - Dst: sqlite_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2913,1
    - Dst: sqlite3_prepare_v2
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2920,1
    - Dst: sqlite3_prepare
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2923,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2928,1
    - Dst: sqlite3_errmsg
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2931,1
    - Dst: setvmerr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2936,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2938,1
    - Dst: sqlite_freemem
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2941,1
    - Dst: sqlite_freemem
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2948,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2960,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2962,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 77
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 2965
      start: 2844
    functionDepth: 1
    functionLinenumber: 2844
    functionLinenumberEnd: 2965
    functionName: Java_SQLite_Vm_compile
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite_finalize
    - throwex
    - setvmerr
    - sqlite3_prepare_v2
    - sqlite3_prepare
    - sqlite_freemem
    - gethvm
    - sqlite3_finalize
    - sqlite3_errmsg
    - sqlite_compile
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Vm_compile(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2972,1
    - Dst: throwclosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2986,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2990,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2994,1
    - Dst: trans2iso
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2997,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:2998,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3000,1
    - Dst: sqlite3_prepare_v2
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3007,1
    - Dst: sqlite3_prepare
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3010,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3015,1
    - Dst: sqlite3_errmsg
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3018,1
    - Dst: sqlite_compile
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3021,1
    - Dst: sqlite_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3026,1
    - Dst: sqlite_compile
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3032,1
    - Dst: sqlite_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3037,1
    - Dst: sqlite3_prepare_v2
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3044,1
    - Dst: sqlite3_prepare
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3047,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3052,1
    - Dst: sqlite3_errmsg
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3055,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3060,1
    - Dst: setvmerr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3061,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3062,1
    - Dst: sqlite_freemem
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3065,1
    - Dst: sqlite_freemem
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3072,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3076,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3079,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3079,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3081,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3084,1
    - Dst: sqlite_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3086,1
    - Dst: sqlite_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3090,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3093,1
    - Dst: throwoom
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3096,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3107,1
    - Dst: SetLongField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3119,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3121,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 105
    argCount: 4
    argNames:
    - env
    - obj
    - sql
    - vm
    argTypes:
    - JNIEnv*
    - jobject
    - jstring
    - jobject
    constantsTouched: []
    func_position:
      end: 3123
      start: 2967
    functionDepth: 2
    functionLinenumber: 2967
    functionLinenumberEnd: 3123
    functionName: Java_SQLite_Database_vm_1compile
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - DeleteLocalRef
    - sqlite3_prepare_v2
    - sqlite3_prepare
    - strcpy
    - SetLongField
    - throwclosed
    - transfree
    - throwoom
    - sqlite3_errmsg
    - setvmerr
    - trans2iso
    - sqlite_finalize
    - gethandle
    - strlen
    - sqlite_compile
    - throwex
    - sqlite_freemem
    - ExceptionOccurred
    - sqlite3_finalize
    - malloc
    linkageType: ''
    returnType: JNIEXPORT
    signature: "Java_SQLite_Database_vm_1compile(JNIEnv *env, jobject obj, jstring
      sql,\n\t\t\t\t jobject vm)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3132,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3137,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3142,1
    - Dst: throwclosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3147,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3151,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3155,1
    - Dst: ReleaseStringUTFChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3182,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3183,1
    - Dst: ReleaseStringUTFChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3187,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3188,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3194,1
    - Dst: ReleaseStringUTFChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3196,1
    - Dst: throwoom
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3197,1
    - Dst: GetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3209,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3211,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3213,1
    - Dst: trans2iso
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3219,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3225,1
    - Dst: freep
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3228,1
    - Dst: ReleaseStringUTFChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3229,1
    - Dst: trans2iso
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3233,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3234,1
    - Dst: sqlite3_prepare_v2
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3261,1
    - Dst: sqlite3_prepare
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3264,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3269,1
    - Dst: sqlite3_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3275,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3278,1
    - Dst: freep
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3281,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3282,1
    - Dst: ReleaseStringUTFChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3283,1
    - Dst: setvmerr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3284,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3285,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3288,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3288,1
    - Dst: sqlite3_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3290,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3293,1
    - Dst: freep
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3296,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3297,1
    - Dst: ReleaseStringUTFChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3298,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3299,1
    - Dst: setvmerr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3300,1
    - Dst: throwoom
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3301,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3312,1
    - Dst: sqlite3_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3313,1
    - Dst: SetLongField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3325,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3329,1
    - Dst: freep
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3332,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3333,1
    - Dst: ReleaseStringUTFChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3334,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3336,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3341,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 154
    argCount: 5
    argNames:
    - env
    - obj
    - sql
    - vm
    - args
    argTypes:
    - JNIEnv*
    - jobject
    - jstring
    - jobject
    - jobjectArray
    constantsTouched: []
    func_position:
      end: 3343
      start: 3125
    functionDepth: 2
    functionLinenumber: 3125
    functionLinenumberEnd: 3343
    functionName: Java_SQLite_Database_vm_1compile_1args
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - DeleteLocalRef
    - sqlite3_prepare_v2
    - sqlite3_prepare
    - freep
    - strcpy
    - sqlite3_free
    - SetLongField
    - throwclosed
    - transfree
    - throwoom
    - setvmerr
    - trans2iso
    - gethandle
    - strlen
    - ReleaseStringUTFChars
    - throwex
    - GetObjectArrayElement
    - ExceptionOccurred
    - sqlite3_finalize
    - malloc
    linkageType: ''
    returnType: JNIEXPORT
    signature: "Java_SQLite_Database_vm_1compile_1args(JNIEnv *env,\n\t\t\t\t       jobject
      obj, jstring sql,\n\t\t\t\t       jobject vm, jobjectArray args)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - cls
    argTypes:
    - JNIEnv*
    - jclass
    constantsTouched: []
    func_position:
      end: 3350
      start: 3345
    functionDepth: 0
    functionLinenumber: 3345
    functionLinenumberEnd: 3350
    functionName: Java_SQLite_FunctionContext_internal_1init
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - GetFieldID
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_FunctionContext_internal_1init(JNIEnv *env, jclass cls)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3356,1
    - Dst: delglobrefp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3361,1
    - Dst: globrefset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3365,1
    - Dst: sqlite3_progress_handler
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3366,1
    - Dst: sqlite3_progress_handler
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3369,1
    - Dst: globrefset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3374,1
    - Dst: sqlite_progress_handler
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3375,1
    - Dst: sqlite_progress_handler
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3378,1
    - Dst: globrefset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3385,1
    - Dst: sqlite_progress_handler
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3386,1
    - Dst: sqlite_progress_handler
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3389,1
    - Dst: globrefset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3395,1
    - Dst: sqlite3_progress_handler
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3396,1
    - Dst: sqlite3_progress_handler
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3399,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3406,1
    - Dst: throwclosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3410,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 4
    argNames:
    - env
    - obj
    - n
    - ph
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    - jobject
    constantsTouched: []
    func_position:
      end: 3411
      start: 3352
    functionDepth: 2
    functionLinenumber: 3352
    functionLinenumberEnd: 3411
    functionName: Java_SQLite_Database__1progress_1handler
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - throwex
    - sqlite_progress_handler
    - gethandle
    - sqlite3_progress_handler
    - throwclosed
    - globrefset
    - delglobrefp
    linkageType: ''
    returnType: JNIEXPORT
    signature: "Java_SQLite_Database__1progress_1handler(JNIEnv *env, jobject obj,
      jint n,\n\t\t\t\t\t jobject ph)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 3431
      start: 3413
    functionDepth: 1
    functionLinenumber: 3413
    functionLinenumberEnd: 3431
    functionName: Java_SQLite_Database_is3
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - gethandle
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Database_is3(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3437,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3443,1
    - Dst: sqlite3_prepare16_v2
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3452,1
    - Dst: sqlite3_prepare16
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3456,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3462,1
    - Dst: setstmterr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3469,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3471,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3483,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3485,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 3488
      start: 3433
    functionDepth: 1
    functionLinenumber: 3433
    functionLinenumberEnd: 3488
    functionName: Java_SQLite_Stmt_prepare
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - gethstmt
    - throwex
    - sqlite3_finalize
    - sqlite3_prepare16
    - sqlite3_prepare16_v2
    - setstmterr
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_prepare(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3495,1
    - Dst: throwclosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3504,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3508,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3512,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3517,1
    - Dst: GetStringLength
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3521,1
    - Dst: GetStringChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3526,1
    - Dst: sqlite3_prepare16_v2
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3528,1
    - Dst: sqlite3_prepare16
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3531,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3536,1
    - Dst: ReleaseStringChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3543,1
    - Dst: setstmterr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3544,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3545,1
    - Dst: ReleaseStringChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3549,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3556,1
    - Dst: ReleaseStringChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3558,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3559,1
    - Dst: throwoom
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3560,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3571,1
    - Dst: ReleaseStringChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3574,1
    - Dst: SetLongField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3586,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3588,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 75
    argCount: 4
    argNames:
    - env
    - obj
    - sql
    - stmt
    argTypes:
    - JNIEnv*
    - jobject
    - jstring
    - jobject
    constantsTouched: []
    func_position:
      end: 3590
      start: 3490
    functionDepth: 2
    functionLinenumber: 3490
    functionLinenumberEnd: 3590
    functionName: Java_SQLite_Database_stmt_1prepare
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - SetLongField
    - throwex
    - throwclosed
    - gethandle
    - GetStringLength
    - GetStringChars
    - throwoom
    - sqlite3_prepare16
    - sqlite3_finalize
    - memcpy
    - sqlite3_prepare16_v2
    - setstmterr
    - malloc
    - ReleaseStringChars
    linkageType: ''
    returnType: JNIEXPORT
    signature: "Java_SQLite_Database_stmt_1prepare(JNIEnv *env, jobject obj, jstring
      sql,\n\t\t\t\t   jobject stmt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3596,1
    - Dst: sqlite3_step
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3601,1
    - Dst: setstmterr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3608,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3609,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3613,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3615,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 3618
      start: 3592
    functionDepth: 1
    functionLinenumber: 3592
    functionLinenumberEnd: 3618
    functionName: Java_SQLite_Stmt_step
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - setstmterr
    - sqlite3_step
    - gethstmt
    - throwex
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_step(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3624,1
    - Dst: sqlite3_finalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3629,1
    - Dst: setstmterr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3634,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3635,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3639,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3641,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 3644
      start: 3620
    functionDepth: 1
    functionLinenumber: 3620
    functionLinenumberEnd: 3644
    functionName: Java_SQLite_Stmt_close
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - gethstmt
    - throwex
    - setstmterr
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_close(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3650,1
    - Dst: sqlite3_reset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3653,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3655,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3658,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 3660
      start: 3646
    functionDepth: 1
    functionLinenumber: 3646
    functionLinenumberEnd: 3660
    functionName: Java_SQLite_Stmt_reset
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite3_reset
    - gethstmt
    - throwex
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_reset(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3666,1
    - Dst: sqlite3_clear_bindings
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3669,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3671,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3674,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 3676
      start: 3662
    functionDepth: 1
    functionLinenumber: 3662
    functionLinenumberEnd: 3676
    functionName: Java_SQLite_Stmt_clear_1bindings
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite3_clear_bindings
    - gethstmt
    - throwex
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_clear_1bindings(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3682,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3689,1
    - Dst: sqlite3_bind_int
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3692,1
    - Dst: setstmterr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3694,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3695,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3698,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3701,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - env
    - obj
    - pos
    - val
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 3703
      start: 3678
    functionDepth: 1
    functionLinenumber: 3678
    functionLinenumberEnd: 3703
    functionName: Java_SQLite_Stmt_bind__II
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - setstmterr
    - gethstmt
    - throwex
    - sqlite3_bind_int
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_bind__II(JNIEnv *env, jobject obj, jint pos, jint
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3709,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3716,1
    - Dst: sqlite3_bind_int64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3719,1
    - Dst: setstmterr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3721,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3722,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3725,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3728,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - env
    - obj
    - pos
    - val
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    - jlong
    constantsTouched: []
    func_position:
      end: 3730
      start: 3705
    functionDepth: 1
    functionLinenumber: 3705
    functionLinenumberEnd: 3730
    functionName: Java_SQLite_Stmt_bind__IJ
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - setstmterr
    - gethstmt
    - throwex
    - sqlite3_bind_int64
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_bind__IJ(JNIEnv *env, jobject obj, jint pos, jlong
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3736,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3743,1
    - Dst: sqlite3_bind_double
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3746,1
    - Dst: setstmterr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3748,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3749,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3752,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3755,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - env
    - obj
    - pos
    - val
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    - jdouble
    constantsTouched: []
    func_position:
      end: 3757
      start: 3732
    functionDepth: 1
    functionLinenumber: 3732
    functionLinenumberEnd: 3757
    functionName: Java_SQLite_Stmt_bind__ID
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - setstmterr
    - gethstmt
    - throwex
    - sqlite3_bind_double
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_bind__ID(JNIEnv *env, jobject obj, jint pos, jdouble
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3763,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3772,1
    - Dst: GetArrayLength
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3776,1
    - Dst: sqlite3_malloc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3778,1
    - Dst: throwoom
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3780,1
    - Dst: GetByteArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3783,1
    - Dst: sqlite3_bind_blob
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3784,1
    - Dst: sqlite3_bind_blob
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3787,1
    - Dst: sqlite3_bind_null
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3791,1
    - Dst: sqlite3_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3795,1
    - Dst: setstmterr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3797,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3798,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3801,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3804,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 4
    argNames:
    - env
    - obj
    - pos
    - val
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 3806
      start: 3759
    functionDepth: 1
    functionLinenumber: 3759
    functionLinenumberEnd: 3806
    functionName: Java_SQLite_Stmt_bind__I_3B
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - GetArrayLength
    - gethstmt
    - throwex
    - GetByteArrayRegion
    - sqlite3_bind_null
    - sqlite3_bind_blob
    - throwoom
    - setstmterr
    - sqlite3_free
    - sqlite3_malloc
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_bind__I_3B(JNIEnv *env, jobject obj, jint pos, jbyteArray
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3813,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3822,1
    - Dst: GetStringLength
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3826,1
    - Dst: sqlite3_malloc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3832,1
    - Dst: throwoom
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3834,1
    - Dst: GetStringChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3838,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3839,1
    - Dst: ReleaseStringChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3840,1
    - Dst: GetStringRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3842,1
    - Dst: sqlite3_bind_text16
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3844,1
    - Dst: sqlite3_bind_text16
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3847,1
    - Dst: sqlite3_bind_null
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3851,1
    - Dst: sqlite3_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3855,1
    - Dst: setstmterr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3857,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3858,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3861,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3864,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - env
    - obj
    - pos
    - val
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    - jstring
    constantsTouched: []
    func_position:
      end: 3866
      start: 3808
    functionDepth: 1
    functionLinenumber: 3808
    functionLinenumberEnd: 3866
    functionName: Java_SQLite_Stmt_bind__ILjava_lang_String_2
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - gethstmt
    - throwex
    - GetStringRegion
    - sqlite3_bind_null
    - GetStringLength
    - GetStringChars
    - throwoom
    - sqlite3_bind_text16
    - memcpy
    - setstmterr
    - sqlite3_free
    - ReleaseStringChars
    - sqlite3_malloc
    linkageType: ''
    returnType: JNIEXPORT
    signature: "Java_SQLite_Stmt_bind__ILjava_lang_String_2(JNIEnv *env, jobject obj,\n\t\t\t\t\t
      \   jint pos, jstring val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3872,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3879,1
    - Dst: sqlite3_bind_null
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3882,1
    - Dst: setstmterr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3884,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3885,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3888,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3891,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - env
    - obj
    - pos
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 3893
      start: 3868
    functionDepth: 1
    functionLinenumber: 3868
    functionLinenumberEnd: 3893
    functionName: Java_SQLite_Stmt_bind__I
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - setstmterr
    - gethstmt
    - throwex
    - sqlite3_bind_null
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_bind__I(JNIEnv *env, jobject obj, jint pos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3899,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3906,1
    - Dst: sqlite3_bind_zeroblob
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3909,1
    - Dst: setstmterr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3911,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3912,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3915,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3918,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - env
    - obj
    - pos
    - len
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 3920
      start: 3895
    functionDepth: 1
    functionLinenumber: 3895
    functionLinenumberEnd: 3920
    functionName: Java_SQLite_Stmt_bind_1zeroblob
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - setstmterr
    - sqlite3_bind_zeroblob
    - gethstmt
    - throwex
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_bind_1zeroblob(JNIEnv *env, jobject obj, jint pos,
      jint len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3926,1
    - Dst: sqlite3_bind_parameter_count
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3929,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3931,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3933,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 3936
      start: 3922
    functionDepth: 1
    functionLinenumber: 3922
    functionLinenumberEnd: 3936
    functionName: Java_SQLite_Stmt_bind_1parameter_1count
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_parameter_count
    - gethstmt
    - throwex
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_bind_1parameter_1count(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3942,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3949,1
    - Dst: sqlite3_bind_parameter_name
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3952,1
    - Dst: NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3954,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3957,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3960,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - env
    - obj
    - pos
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 3963
      start: 3938
    functionDepth: 1
    functionLinenumber: 3938
    functionLinenumberEnd: 3963
    functionName: Java_SQLite_Stmt_bind_1parameter_1name
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - gethstmt
    - throwex
    - NewStringUTF
    - sqlite3_bind_parameter_name
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_bind_1parameter_1name(JNIEnv *env, jobject obj, jint
      pos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3970,1
    - Dst: trans2iso
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3978,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3979,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3981,1
    - Dst: sqlite3_bind_parameter_index
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3984,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3985,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3988,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:3991,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - env
    - obj
    - name
    argTypes:
    - JNIEnv*
    - jobject
    - jstring
    constantsTouched: []
    func_position:
      end: 3994
      start: 3965
    functionDepth: 2
    functionLinenumber: 3965
    functionLinenumberEnd: 3994
    functionName: Java_SQLite_Stmt_bind_1parameter_1index
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - DeleteLocalRef
    - gethstmt
    - throwex
    - ExceptionOccurred
    - sqlite3_bind_parameter_index
    - transfree
    - trans2iso
    linkageType: ''
    returnType: JNIEXPORT
    signature: "Java_SQLite_Stmt_bind_1parameter_1index(JNIEnv *env, jobject obj,\n\t\t\t\t\tjstring
      name)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4000,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4006,1
    - Dst: sqlite3_column_int
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4009,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4011,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4013,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - env
    - obj
    - col
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 4016
      start: 3996
    functionDepth: 1
    functionLinenumber: 3996
    functionLinenumberEnd: 4016
    functionName: Java_SQLite_Stmt_column_1int
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - gethstmt
    - throwex
    - sqlite3_column_int
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_column_1int(JNIEnv *env, jobject obj, jint col)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4022,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4028,1
    - Dst: sqlite3_column_int64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4031,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4033,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4035,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - env
    - obj
    - col
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 4038
      start: 4018
    functionDepth: 1
    functionLinenumber: 4018
    functionLinenumberEnd: 4038
    functionName: Java_SQLite_Stmt_column_1long
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - gethstmt
    - throwex
    - sqlite3_column_int64
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_column_1long(JNIEnv *env, jobject obj, jint col)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4044,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4050,1
    - Dst: sqlite3_column_double
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4053,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4055,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4057,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - env
    - obj
    - col
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 4060
      start: 4040
    functionDepth: 1
    functionLinenumber: 4040
    functionLinenumberEnd: 4060
    functionName: Java_SQLite_Stmt_column_1double
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_double
    - gethstmt
    - throwex
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_column_1double(JNIEnv *env, jobject obj, jint col)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4066,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4075,1
    - Dst: sqlite3_column_blob
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4078,1
    - Dst: sqlite3_column_bytes
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4080,1
    - Dst: NewByteArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4084,1
    - Dst: throwoom
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4086,1
    - Dst: SetByteArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4089,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4092,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4094,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - env
    - obj
    - col
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 4097
      start: 4062
    functionDepth: 1
    functionLinenumber: 4062
    functionLinenumberEnd: 4097
    functionName: Java_SQLite_Stmt_column_1bytes
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - gethstmt
    - throwex
    - throwoom
    - SetByteArrayRegion
    - sqlite3_column_blob
    - sqlite3_column_bytes
    - NewByteArray
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_column_1bytes(JNIEnv *env, jobject obj, jint col)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4103,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4112,1
    - Dst: sqlite3_column_text16
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4115,1
    - Dst: sqlite3_column_bytes16
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4117,1
    - Dst: NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4122,1
    - Dst: throwoom
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4124,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4129,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4131,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - env
    - obj
    - col
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 4134
      start: 4099
    functionDepth: 1
    functionLinenumber: 4099
    functionLinenumberEnd: 4134
    functionName: Java_SQLite_Stmt_column_1string
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - gethstmt
    - throwex
    - throwoom
    - sqlite3_column_text16
    - sqlite3_column_bytes16
    - NewString
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_column_1string(JNIEnv *env, jobject obj, jint col)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4140,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4146,1
    - Dst: sqlite3_column_type
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4149,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4151,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4153,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - env
    - obj
    - col
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 4156
      start: 4136
    functionDepth: 1
    functionLinenumber: 4136
    functionLinenumberEnd: 4156
    functionName: Java_SQLite_Stmt_column_1type
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_type
    - gethstmt
    - throwex
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_column_1type(JNIEnv *env, jobject obj, jint col)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4162,1
    - Dst: sqlite3_column_count
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4165,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4167,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4169,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 4172
      start: 4158
    functionDepth: 1
    functionLinenumber: 4158
    functionLinenumberEnd: 4172
    functionName: Java_SQLite_Stmt_column_1count
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_count
    - gethstmt
    - throwex
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_column_1count(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4178,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4185,1
    - Dst: sqlite3_column_table_name16
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4188,1
    - Dst: NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4190,1
    - Dst: jstrlen
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4190,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4194,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4196,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - env
    - obj
    - col
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 4199
      start: 4174
    functionDepth: 1
    functionLinenumber: 4174
    functionLinenumberEnd: 4199
    functionName: Java_SQLite_Stmt_column_1table_1name
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - jstrlen
    - gethstmt
    - throwex
    - sqlite3_column_table_name16
    - NewString
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_column_1table_1name(JNIEnv *env, jobject obj, jint
      col)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4205,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4212,1
    - Dst: sqlite3_column_database_name16
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4215,1
    - Dst: NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4217,1
    - Dst: jstrlen
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4217,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4221,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4223,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - env
    - obj
    - col
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 4226
      start: 4201
    functionDepth: 1
    functionLinenumber: 4201
    functionLinenumberEnd: 4226
    functionName: Java_SQLite_Stmt_column_1database_1name
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - jstrlen
    - gethstmt
    - throwex
    - sqlite3_column_database_name16
    - NewString
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_column_1database_1name(JNIEnv *env, jobject obj, jint
      col)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4232,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4239,1
    - Dst: sqlite3_column_decltype16
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4242,1
    - Dst: NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4244,1
    - Dst: jstrlen
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4244,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4248,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4250,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - env
    - obj
    - col
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 4253
      start: 4228
    functionDepth: 1
    functionLinenumber: 4228
    functionLinenumberEnd: 4253
    functionName: Java_SQLite_Stmt_column_1decltype
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - jstrlen
    - gethstmt
    - throwex
    - NewString
    - sqlite3_column_decltype16
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_column_1decltype(JNIEnv *env, jobject obj, jint col)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethstmt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4259,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4266,1
    - Dst: sqlite3_column_origin_name16
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4269,1
    - Dst: NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4271,1
    - Dst: jstrlen
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4271,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4275,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4277,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - env
    - obj
    - col
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 4280
      start: 4255
    functionDepth: 1
    functionLinenumber: 4255
    functionLinenumberEnd: 4280
    functionName: Java_SQLite_Stmt_column_1origin_1name
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - jstrlen
    - gethstmt
    - throwex
    - sqlite3_column_origin_name16
    - NewString
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_column_1origin_1name(JNIEnv *env, jobject obj, jint
      col)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dostmtfinal
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 4288
      start: 4282
    functionDepth: 2
    functionLinenumber: 4282
    functionLinenumberEnd: 4288
    functionName: Java_SQLite_Stmt_finalize
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - dostmtfinal
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_finalize(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4297,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4306,1
    - Dst: trans2iso
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4310,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4311,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4313,1
    - Dst: trans2iso
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4316,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4317,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4319,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4320,1
    - Dst: trans2iso
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4323,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4324,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4326,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4327,1
    - Dst: DeleteLocalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4328,1
    - Dst: sqlite3_blob_open
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4331,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4334,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4335,1
    - Dst: transfree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4336,1
    - Dst: seterr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4340,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4341,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4344,1
    - Dst: sqlite3_blob_close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4346,1
    - Dst: throwoom
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4347,1
    - Dst: SetLongField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4356,1
    - Dst: SetIntField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4357,1
    - Dst: sqlite3_blob_bytes
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4358,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4361,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4363,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 54
    argCount: 8
    argNames:
    - env
    - obj
    - dbname
    - table
    - column
    - row
    - rw
    - blobj
    argTypes:
    - JNIEnv*
    - jobject
    - jstring
    - jstring
    - jstring
    - jlong
    - jboolean
    - jobject
    constantsTouched: []
    func_position:
      end: 4365
      start: 4290
    functionDepth: 2
    functionLinenumber: 4290
    functionLinenumberEnd: 4365
    functionName: Java_SQLite_Database__1open_1blob
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - SetLongField
    - DeleteLocalRef
    - throwex
    - gethandle
    - sqlite3_blob_bytes
    - ExceptionOccurred
    - sqlite3_blob_close
    - transfree
    - SetIntField
    - throwoom
    - seterr
    - malloc
    - sqlite3_blob_open
    - trans2iso
    linkageType: ''
    returnType: JNIEXPORT
    signature: "Java_SQLite_Database__1open_1blob(JNIEnv *env, jobject obj,\n\t\t\t\t
      \ jstring dbname, jstring table,\n\t\t\t\t  jstring column, jlong row,\n\t\t\t\t
      \ jboolean rw, jobject blobj)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethbl
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4372,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4382,1
    - Dst: throwoom
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4384,1
    - Dst: GetByteArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4387,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4388,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4390,1
    - Dst: sqlite3_blob_write
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4393,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4394,1
    - Dst: throwioex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4396,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4401,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4403,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 6
    argNames:
    - env
    - obj
    - b
    - 'off'
    - pos
    - len
    argTypes:
    - JNIEnv*
    - jobject
    - jbyteArray
    - jint
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 4406
      start: 4367
    functionDepth: 1
    functionLinenumber: 4367
    functionLinenumberEnd: 4406
    functionName: Java_SQLite_Blob_write
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - gethbl
    - GetByteArrayRegion
    - throwex
    - ExceptionOccurred
    - throwoom
    - free
    - sqlite3_blob_write
    - throwioex
    - malloc
    linkageType: ''
    returnType: JNIEXPORT
    signature: "Java_SQLite_Blob_write(JNIEnv *env , jobject obj, jbyteArray b, jint
      off,\n\t\t       jint pos, jint len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethbl
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4413,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4423,1
    - Dst: throwoom
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4425,1
    - Dst: sqlite3_blob_read
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4428,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4430,1
    - Dst: throwioex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4431,1
    - Dst: SetByteArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4434,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4435,1
    - Dst: ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4436,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4442,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4444,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 6
    argNames:
    - env
    - obj
    - b
    - 'off'
    - pos
    - len
    argTypes:
    - JNIEnv*
    - jobject
    - jbyteArray
    - jint
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 4447
      start: 4408
    functionDepth: 1
    functionLinenumber: 4408
    functionLinenumberEnd: 4447
    functionName: Java_SQLite_Blob_read
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - gethbl
    - sqlite3_blob_read
    - throwex
    - ExceptionOccurred
    - throwoom
    - free
    - SetByteArrayRegion
    - throwioex
    - malloc
    linkageType: ''
    returnType: JNIEXPORT
    signature: "Java_SQLite_Blob_read(JNIEnv *env , jobject obj, jbyteArray b, jint
      off,\n\t\t      jint pos, jint len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doblobfinal
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 4455
      start: 4449
    functionDepth: 2
    functionLinenumber: 4449
    functionLinenumberEnd: 4455
    functionName: Java_SQLite_Blob_close
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - doblobfinal
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Blob_close(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doblobfinal
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 4463
      start: 4457
    functionDepth: 2
    functionLinenumber: 4457
    functionLinenumberEnd: 4463
    functionName: Java_SQLite_Blob_finalize
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - doblobfinal
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Blob_finalize(JNIEnv *env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4471,1
    - Dst: GetArrayLength
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4474,1
    - Dst: GetByteArrayElements
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4475,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4487,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4489,1
    - Dst: sqlite3_key
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4492,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4494,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4498,1
    - Dst: throwclosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4500,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4504,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - env
    - obj
    - key
    argTypes:
    - JNIEnv*
    - jobject
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 4508
      start: 4465
    functionDepth: 2
    functionLinenumber: 4465
    functionLinenumberEnd: 4508
    functionName: Java_SQLite_Database__1key
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - GetArrayLength
    - throwex
    - GetByteArrayElements
    - gethandle
    - throwclosed
    - memset
    - sqlite3_key
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Database__1key(JNIEnv *env, jobject obj, jbyteArray key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4516,1
    - Dst: GetArrayLength
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4519,1
    - Dst: GetByteArrayElements
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4520,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4532,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4534,1
    - Dst: sqlite3_rekey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4537,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4539,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4543,1
    - Dst: throwclosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4545,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4549,1
    - Dst: throwex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4551,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - env
    - obj
    - key
    argTypes:
    - JNIEnv*
    - jobject
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 4553
      start: 4510
    functionDepth: 2
    functionLinenumber: 4510
    functionLinenumberEnd: 4553
    functionName: Java_SQLite_Database__1rekey
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - GetArrayLength
    - throwex
    - GetByteArrayElements
    - gethandle
    - throwclosed
    - sqlite3_rekey
    - memset
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Database__1rekey(JNIEnv *env, jobject obj, jbyteArray key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_enable_shared_cache
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - env
    - cls
    - onoff
    argTypes:
    - JNIEnv*
    - jclass
    - jboolean
    constantsTouched: []
    func_position:
      end: 4565
      start: 4555
    functionDepth: 0
    functionLinenumber: 4555
    functionLinenumberEnd: 4565
    functionName: Java_SQLite_Database__1enable_1shared_1cache
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - sqlite3_enable_shared_cache
    linkageType: ''
    returnType: JNIEXPORT
    signature: "Java_SQLite_Database__1enable_1shared_1cache(JNIEnv *env, jclass cls,\n\t\t\t\t\t
      \    jboolean onoff)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4571,1
    - Dst: GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - cls
    argTypes:
    - JNIEnv*
    - jclass
    constantsTouched: []
    func_position:
      end: 4574
      start: 4567
    functionDepth: 0
    functionLinenumber: 4567
    functionLinenumberEnd: 4574
    functionName: Java_SQLite_Stmt_internal_1init
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - GetFieldID
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Stmt_internal_1init(JNIEnv *env, jclass cls)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4580,1
    - Dst: GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - cls
    argTypes:
    - JNIEnv*
    - jclass
    constantsTouched: []
    func_position:
      end: 4583
      start: 4576
    functionDepth: 0
    functionLinenumber: 4576
    functionLinenumberEnd: 4583
    functionName: Java_SQLite_Vm_internal_1init
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - GetFieldID
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Vm_internal_1init(JNIEnv *env, jclass cls)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4589,1
    - Dst: GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - cls
    argTypes:
    - JNIEnv*
    - jclass
    constantsTouched: []
    func_position:
      end: 4592
      start: 4585
    functionDepth: 0
    functionLinenumber: 4585
    functionLinenumberEnd: 4592
    functionName: Java_SQLite_Blob_internal_1init
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - GetFieldID
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Blob_internal_1init(JNIEnv *env, jclass cls)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4599,1
    - Dst: NewGlobalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4601,1
    - Dst: GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4605,1
    - Dst: GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4607,1
    - Dst: GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4609,1
    - Dst: GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4611,1
    - Dst: GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4614,1
    - Dst: GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - env
    - cls
    argTypes:
    - JNIEnv*
    - jclass
    constantsTouched: []
    func_position:
      end: 4618
      start: 4594
    functionDepth: 0
    functionLinenumber: 4594
    functionLinenumberEnd: 4618
    functionName: Java_SQLite_Database_internal_1init
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - NewGlobalRef
    - GetFieldID
    - GetMethodID
    - FindClass
    linkageType: ''
    returnType: JNIEXPORT
    signature: Java_SQLite_Database_internal_1init(JNIEnv *env, jclass cls)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4629,1
    - Dst: sqlite_libencoding
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4629,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4630,1
    - Dst: GetEnv
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4634,1
    - Dst: FindClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4637,1
    - Dst: NewGlobalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4641,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - vm
    - reserved
    argTypes:
    - JavaVM*
    - void*
    constantsTouched: []
    func_position:
      end: 4643
      start: 4621
    functionDepth: 0
    functionLinenumber: 4621
    functionLinenumberEnd: 4643
    functionName: JNI_OnLoad
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 0
    functionsReached:
    - strcmp
    - FindClass
    - NewGlobalRef
    - fprintf
    - sqlite_libencoding
    - GetEnv
    linkageType: ''
    returnType: JNIEXPORT
    signature: JNI_OnLoad(JavaVM *vm, void *reserved)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetEnv
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4650,1
    - Dst: DeleteGlobalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c:4654,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - vm
    - reserved
    argTypes:
    - JavaVM*
    - void*
    constantsTouched: []
    func_position:
      end: 4657
      start: 4645
    functionDepth: 0
    functionLinenumber: 4645
    functionLinenumberEnd: 4657
    functionName: JNI_OnUnload
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
    functionUses: 2
    functionsReached:
    - DeleteGlobalRef
    - GetEnv
    linkageType: ''
    returnType: JNIEXPORT
    signature: JNI_OnUnload(JavaVM *vm, void *reserved)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u_digit
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - codePoint
    - radix
    argTypes:
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: Character_digitImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
    functionUses: 0
    functionsReached:
    - u_digit
    linkageType: ''
    returnType: jint
    signature: Character_digitImpl(JNIEnv*, jclass, jint codePoint, jint radix)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u_charType
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - codePoint
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: Character_getTypeImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
    functionUses: 0
    functionsReached:
    - u_charType
    linkageType: ''
    returnType: jint
    signature: Character_getTypeImpl(JNIEnv*, jclass, jint codePoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u_charDirection
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - codePoint
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Character_getDirectionalityImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
    functionUses: 0
    functionsReached:
    - u_charDirection
    linkageType: ''
    returnType: jbyte
    signature: Character_getDirectionalityImpl(JNIEnv*, jclass, jint codePoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u_isMirrored
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - codePoint
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Character_isMirroredImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
    functionUses: 0
    functionsReached:
    - u_isMirrored
    linkageType: ''
    returnType: jboolean
    signature: Character_isMirroredImpl(JNIEnv*, jclass, jint codePoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: floor
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:67,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 1
    argNames:
    - codePoint
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 72
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 72
    functionName: Character_getNumericValueImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
    functionUses: 0
    functionsReached:
    - floor
    linkageType: ''
    returnType: jint
    signature: Character_getNumericValueImpl(JNIEnv*, jclass, jint codePoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u_isdefined
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - codePoint
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: Character_isDefinedImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
    functionUses: 0
    functionsReached:
    - u_isdefined
    linkageType: ''
    returnType: jboolean
    signature: Character_isDefinedImpl(JNIEnv*, jclass, jint codePoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u_isdigit
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - codePoint
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: Character_isDigitImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
    functionUses: 0
    functionsReached:
    - u_isdigit
    linkageType: ''
    returnType: jboolean
    signature: Character_isDigitImpl(JNIEnv*, jclass, jint codePoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u_isIDIgnorable
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - codePoint
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: Character_isIdentifierIgnorableImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
    functionUses: 0
    functionsReached:
    - u_isIDIgnorable
    linkageType: ''
    returnType: jboolean
    signature: Character_isIdentifierIgnorableImpl(JNIEnv*, jclass, jint codePoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u_isalpha
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - codePoint
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Character_isLetterImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
    functionUses: 0
    functionsReached:
    - u_isalpha
    linkageType: ''
    returnType: jboolean
    signature: Character_isLetterImpl(JNIEnv*, jclass, jint codePoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u_isalnum
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - codePoint
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Character_isLetterOrDigitImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
    functionUses: 0
    functionsReached:
    - u_isalnum
    linkageType: ''
    returnType: jboolean
    signature: Character_isLetterOrDigitImpl(JNIEnv*, jclass, jint codePoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u_isJavaSpaceChar
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - codePoint
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: Character_isSpaceCharImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
    functionUses: 0
    functionsReached:
    - u_isJavaSpaceChar
    linkageType: ''
    returnType: jboolean
    signature: Character_isSpaceCharImpl(JNIEnv*, jclass, jint codePoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u_istitle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - codePoint
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: Character_isTitleCaseImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
    functionUses: 0
    functionsReached:
    - u_istitle
    linkageType: ''
    returnType: jboolean
    signature: Character_isTitleCaseImpl(JNIEnv*, jclass, jint codePoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u_isIDPart
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - codePoint
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: Character_isUnicodeIdentifierPartImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
    functionUses: 0
    functionsReached:
    - u_isIDPart
    linkageType: ''
    returnType: jboolean
    signature: Character_isUnicodeIdentifierPartImpl(JNIEnv*, jclass, jint codePoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u_isIDStart
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - codePoint
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Character_isUnicodeIdentifierStartImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
    functionUses: 0
    functionsReached:
    - u_isIDStart
    linkageType: ''
    returnType: jboolean
    signature: Character_isUnicodeIdentifierStartImpl(JNIEnv*, jclass, jint codePoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u_isWhitespace
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - codePoint
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: Character_isWhitespaceImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
    functionUses: 0
    functionsReached:
    - u_isWhitespace
    linkageType: ''
    returnType: jboolean
    signature: Character_isWhitespaceImpl(JNIEnv*, jclass, jint codePoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u_tolower
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - codePoint
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: Character_toLowerCaseImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
    functionUses: 0
    functionsReached:
    - u_tolower
    linkageType: ''
    returnType: jint
    signature: Character_toLowerCaseImpl(JNIEnv*, jclass, jint codePoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u_totitle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - codePoint
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: Character_toTitleCaseImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
    functionUses: 0
    functionsReached:
    - u_totitle
    linkageType: ''
    returnType: jint
    signature: Character_toTitleCaseImpl(JNIEnv*, jclass, jint codePoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u_toupper
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - codePoint
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: Character_toUpperCaseImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
    functionUses: 0
    functionsReached:
    - u_toupper
    linkageType: ''
    returnType: jint
    signature: Character_toUpperCaseImpl(JNIEnv*, jclass, jint codePoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u_isupper
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - codePoint
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: Character_isUpperCaseImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
    functionUses: 0
    functionsReached:
    - u_isupper
    linkageType: ''
    returnType: jboolean
    signature: Character_isUpperCaseImpl(JNIEnv*, jclass, jint codePoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u_islower
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - codePoint
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: Character_isLowerCaseImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
    functionUses: 0
    functionsReached:
    - u_islower
    linkageType: ''
    returnType: jboolean
    signature: Character_isLowerCaseImpl(JNIEnv*, jclass, jint codePoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:144,1
    - Dst: u_getPropertyValueEnum
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:147,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - env
    - javaBlockName
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: Character_forNameImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
    functionUses: 0
    functionsReached:
    - u_getPropertyValueEnum
    - ScopedUtfChars::c_str
    linkageType: ''
    returnType: int
    signature: Character_forNameImpl(JNIEnv* env, jclass, jstring javaBlockName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ublock_getCode
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - codePoint
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: Character_ofImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
    functionUses: 0
    functionsReached:
    - ublock_getCode
    linkageType: ''
    returnType: int
    signature: Character_ofImpl(JNIEnv*, jclass, jint codePoint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:179,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: register_java_lang_Character
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_java_lang_Character(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectInputStream.cpp:55,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectInputStream.cpp:59,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectInputStream.cpp:62,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectInputStream.cpp:62,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectInputStream.cpp:62,1
    - Dst: JNIEnv*::SetObjectField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectInputStream.cpp:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 6
    argNames:
    - env
    - instance
    - declaringClass
    - javaFieldName
    - javaFieldTypeName
    - newValue
    argTypes:
    - JNIEnv*
    - jobject
    - jclass
    - jstring
    - jstring
    - jobject
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 66
    functionName: ObjectInputStream_setFieldObject
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectInputStream.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetFieldID
    - JNIEnv*::SetObjectField
    - ScopedUtfChars::c_str
    linkageType: ''
    returnType: void
    signature: "ObjectInputStream_setFieldObject(JNIEnv* env, jclass, jobject instance,\n
      \       jclass declaringClass, jstring javaFieldName, jstring javaFieldTypeName,
      jobject newValue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectInputStream.cpp:70,1
    - Dst: JNIEnv*::NewObject
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectInputStream.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - env
    - instantiationClass
    - constructorClass
    argTypes:
    - JNIEnv*
    - jclass
    - jclass
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: ObjectInputStream_newInstance
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectInputStream.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::NewObject
    - JNIEnv*::GetMethodID
    linkageType: ''
    returnType: jobject
    signature: "ObjectInputStream_newInstance(JNIEnv* env, jclass,\n        jclass
      instantiationClass, jclass constructorClass)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectInputStream.cpp:90,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectInputStream.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: register_java_io_ObjectInputStream
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectInputStream.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_java_io_ObjectInputStream(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: operator()(BIO* p) const
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - BIO_free
    linkageType: ''
    returnType: void
    signature: operator()(BIO* p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: operator()(BIGNUM* p) const
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: void
    signature: operator()(BIGNUM* p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - DH*
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: operator()(DH* p) const
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - DH_free
    linkageType: ''
    returnType: void
    signature: operator()(DH* p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - DSA*
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: operator()(DSA* p) const
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - DSA_free
    linkageType: ''
    returnType: void
    signature: operator()(DSA* p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: operator()(EVP_PKEY* p) const
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: operator()(EVP_PKEY* p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: operator()(PKCS8_PRIV_KEY_INFO* p) const
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - PKCS8_PRIV_KEY_INFO_free
    linkageType: ''
    returnType: void
    signature: operator()(PKCS8_PRIV_KEY_INFO* p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - RSA*
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: operator()(RSA* p) const
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - RSA_free
    linkageType: ''
    returnType: void
    signature: operator()(RSA* p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: operator()(SSL* p) const
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - SSL_free
    linkageType: ''
    returnType: void
    signature: operator()(SSL* p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: operator()(SSL_CTX* p) const
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - SSL_CTX_free
    linkageType: ''
    returnType: void
    signature: operator()(SSL_CTX* p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: operator()(X509* p) const
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - X509_free
    linkageType: ''
    returnType: void
    signature: operator()(X509* p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - X509_NAME*
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: operator()(X509_NAME* p) const
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - X509_NAME_free
    linkageType: ''
    returnType: void
    signature: operator()(X509_NAME* p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: operator()(STACK_OF(SSL_CIPHER)* p) const
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - sk_SSL_CIPHER_free
    linkageType: ''
    returnType: void
    signature: operator()(STACK_OF(SSL_CIPHER)* p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: operator()(STACK_OF(X509)* p) const
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - sk_X509_free
    linkageType: ''
    returnType: void
    signature: operator()(STACK_OF(X509)* p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_NAME_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: operator()(STACK_OF(X509_NAME)* p) const
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - sk_X509_NAME_free
    linkageType: ''
    returnType: void
    signature: operator()(STACK_OF(X509_NAME)* p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:168,1
    - Dst: ERR_remove_state
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: freeSslErrorState
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - ERR_remove_state
    - ERR_clear_error
    linkageType: ''
    returnType: void
    signature: freeSslErrorState(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_error_string_n
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:184,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:185,1
    - Dst: jniThrowRuntimeException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:186,1
    - Dst: freeSslErrorState
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - env
    - location
    argTypes:
    - JNIEnv*
    - char*
    constantsTouched: []
    func_position:
      end: 192
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 192
    functionName: throwExceptionIfNecessary
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNI_TRACE
    - jniThrowRuntimeException
    - ERR_error_string_n
    - freeSslErrorState
    linkageType: ''
    returnType: int
    signature: throwExceptionIfNecessary(JNIEnv* env, const char* location  __attribute__
      ((unused)))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:198,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - message
    argTypes:
    - JNIEnv*
    - char*
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: throwSocketTimeoutException
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNI_TRACE
    - jniThrowException
    linkageType: ''
    returnType: void
    signature: throwSocketTimeoutException(JNIEnv* env, const char* message)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:206,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - message
    argTypes:
    - JNIEnv*
    - char*
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: throwSSLExceptionStr
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNI_TRACE
    - jniThrowException
    linkageType: ''
    returnType: void
    signature: throwSSLExceptionStr(JNIEnv* env, const char* message)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:214,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - message
    argTypes:
    - JNIEnv*
    - char*
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: throwSSLProtocolExceptionStr
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNI_TRACE
    - jniThrowException
    linkageType: ''
    returnType: void
    signature: throwSSLProtocolExceptionStr(JNIEnv* env, const char* message)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_peek_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:239,1
    - Dst: asprintf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:275,1
    - Dst: throwSSLExceptionStr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:277,1
    - Dst: LOGV
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:278,1
    - Dst: freeSslErrorState
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:279,1
    - Dst: ERR_error_string_n
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:299,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:313,1
    - Dst: asprintf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:318,1
    - Dst: strerror
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:318,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:319,1
    - Dst: asprintf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:324,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:325,1
    - Dst: throwSSLProtocolExceptionStr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:331,1
    - Dst: throwSSLExceptionStr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:333,1
    - Dst: LOGV
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:336,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:337,1
    - Dst: freeSslErrorState
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:338,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 78
    argCount: 4
    argNames:
    - env
    - ssl
    - sslErrorCode
    - message
    argTypes:
    - JNIEnv*
    - SSL*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 339
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 339
    functionName: throwSSLExceptionWithSslErrors
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - LOGV
    - throwSSLExceptionStr
    - asprintf
    - throwSSLProtocolExceptionStr
    - free
    - ERR_peek_error
    - ERR_error_string_n
    - strerror
    - freeSslErrorState
    linkageType: ''
    returnType: void
    signature: "throwSSLExceptionWithSslErrors(\n        JNIEnv* env, SSL* ssl, int
      sslErrorCode, const char* message)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SSL_CTX*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:355,1
    - Dst: static_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:355,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:357,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - env
    - ssl_ctx_address
    - throwIfNull
    argTypes:
    - JNIEnv*
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 361
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 361
    functionName: to_SSL_CTX
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uintptr_t>
    - JNI_TRACE
    - jniThrowNullPointerException
    - reinterpret_cast<SSL_CTX*>
    linkageType: ''
    returnType: SSL_CTX
    signature: '* to_SSL_CTX(JNIEnv* env, int ssl_ctx_address, bool throwIfNull)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SSL*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:364,1
    - Dst: static_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:364,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:366,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - env
    - ssl_address
    - throwIfNull
    argTypes:
    - JNIEnv*
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 370
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 370
    functionName: to_SSL
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uintptr_t>
    - JNI_TRACE
    - jniThrowNullPointerException
    - reinterpret_cast<SSL*>
    linkageType: ''
    returnType: SSL
    signature: '* to_SSL(JNIEnv* env, int ssl_address, bool throwIfNull)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SSL_SESSION*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:374,1
    - Dst: static_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:374,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:376,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - env
    - ssl_session_address
    - throwIfNull
    argTypes:
    - JNIEnv*
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 380
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 380
    functionName: to_SSL_SESSION
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uintptr_t>
    - JNI_TRACE
    - jniThrowNullPointerException
    - reinterpret_cast<SSL_SESSION*>
    linkageType: ''
    returnType: SSL_SESSION
    signature: '* to_SSL_SESSION(JNIEnv* env, int ssl_session_address, bool throwIfNull)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:387,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:390,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:391,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:394,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:394,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:394,1
    - Dst: ScopedByteArrayRO::size
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:395,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - env
    - source
    argTypes:
    - JNIEnv*
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 399
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 399
    functionName: arrayToBignum
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - ScopedByteArrayRO::size
    - BN_bin2bn
    - ScopedByteArrayRO::get
    - JNI_TRACE
    - reinterpret_cast<const unsigned char*>
    linkageType: ''
    returnType: BIGNUM
    signature: '* arrayToBignum(JNIEnv* env, jbyteArray source)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MUTEX_LOCK
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:420,1
    - Dst: MUTEX_UNLOCK
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mode
    - n
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 424
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 424
    functionName: locking_function
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - MUTEX_UNLOCK
    - MUTEX_LOCK
    linkageType: ''
    returnType: void
    signature: locking_function(int mode, int n, const char*, int)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 428
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 428
    functionName: id_function
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: id_function(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_num_locks
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:431,1
    - Dst: MUTEX_TYPE::MUTEX_TYPE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:431,1
    - Dst: CRYPTO_num_locks
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:436,1
    - Dst: MUTEX_SETUP
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:437,1
    - Dst: CRYPTO_set_id_callback
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:440,1
    - Dst: CRYPTO_set_locking_callback
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 444
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 444
    functionName: THREAD_setup
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - MUTEX_SETUP
    - CRYPTO_num_locks
    - MUTEX_TYPE::MUTEX_TYPE
    - CRYPTO_set_locking_callback
    - CRYPTO_set_id_callback
    linkageType: ''
    returnType: int
    signature: THREAD_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_id_callback
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:451,1
    - Dst: CRYPTO_set_locking_callback
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:452,1
    - Dst: CRYPTO_num_locks
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:454,1
    - Dst: MUTEX_CLEANUP
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:455,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 462
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 462
    functionName: THREAD_cleanup
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - CRYPTO_num_locks
    - MUTEX_CLEANUP
    - free
    - CRYPTO_set_locking_callback
    - CRYPTO_set_id_callback
    linkageType: ''
    returnType: int
    signature: THREAD_cleanup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_load_error_strings
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:470,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:471,1
    - Dst: SSL_library_init
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:472,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:473,1
    - Dst: THREAD_setup
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 475
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 475
    functionName: NativeCrypto_clinit
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - THREAD_setup
    - OpenSSL_add_all_algorithms
    - SSL_library_init
    - SSL_load_error_strings
    - ERR_load_crypto_strings
    linkageType: ''
    returnType: void
    signature: NativeCrypto_clinit(JNIEnv*, jclass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:484,1
    - Dst: Unique_DSA::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:488,1
    - Dst: jniThrowRuntimeException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:489,1
    - Dst: arrayToBignum
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:493,1
    - Dst: arrayToBignum
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:494,1
    - Dst: arrayToBignum
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:495,1
    - Dst: arrayToBignum
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:496,1
    - Dst: arrayToBignum
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:499,1
    - Dst: jniThrowRuntimeException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:503,1
    - Dst: Unique_EVP_PKEY::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:508,1
    - Dst: jniThrowRuntimeException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:509,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:512,1
    - Dst: Unique_EVP_PKEY::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:512,1
    - Dst: Unique_DSA::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:512,1
    - Dst: jniThrowRuntimeException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:513,1
    - Dst: Unique_DSA::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:516,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:517,1
    - Dst: Unique_EVP_PKEY::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:518,1
    - Dst: Unique_EVP_PKEY::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:519,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 6
    argNames:
    - env
    - p
    - q
    - g
    - pub_key
    - priv_key
    argTypes:
    - JNIEnv*
    - jbyteArray
    - jbyteArray
    - jbyteArray
    - jbyteArray
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 520
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 520
    functionName: NativeCrypto_EVP_PKEY_new_DSA
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - Unique_DSA::get
    - jniThrowRuntimeException
    - Unique_EVP_PKEY::get
    - Unique_EVP_PKEY::release
    - arrayToBignum
    - EVP_PKEY_assign_DSA
    - Unique_DSA::release
    - JNI_TRACE
    linkageType: ''
    returnType: EVP_PKEY
    signature: "* NativeCrypto_EVP_PKEY_new_DSA(JNIEnv* env, jclass,\n                                               jbyteArray
      p, jbyteArray q, jbyteArray g,\n                                               jbyteArray
      pub_key, jbyteArray priv_key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:528,1
    - Dst: Unique_RSA::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:531,1
    - Dst: jniThrowRuntimeException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:532,1
    - Dst: arrayToBignum
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:536,1
    - Dst: arrayToBignum
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:537,1
    - Dst: arrayToBignum
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:540,1
    - Dst: arrayToBignum
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:544,1
    - Dst: arrayToBignum
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:548,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:554,1
    - Dst: jniThrowRuntimeException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:559,1
    - Dst: Unique_EVP_PKEY::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:564,1
    - Dst: jniThrowRuntimeException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:565,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:568,1
    - Dst: Unique_EVP_PKEY::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:568,1
    - Dst: Unique_RSA::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:568,1
    - Dst: jniThrowRuntimeException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:569,1
    - Dst: Unique_RSA::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:572,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:573,1
    - Dst: Unique_EVP_PKEY::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:573,1
    - Dst: Unique_EVP_PKEY::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:574,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 6
    argNames:
    - env
    - n
    - e
    - d
    - p
    - q
    argTypes:
    - JNIEnv*
    - jbyteArray
    - jbyteArray
    - jbyteArray
    - jbyteArray
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 575
      start: 525
    functionDepth: 2
    functionLinenumber: 525
    functionLinenumberEnd: 575
    functionName: NativeCrypto_EVP_PKEY_new_RSA
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - jniThrowRuntimeException
    - Unique_EVP_PKEY::get
    - Unique_EVP_PKEY::release
    - arrayToBignum
    - EVP_PKEY_assign_RSA
    - Unique_RSA::get
    - JNI_TRACE
    - Unique_RSA::release
    linkageType: ''
    returnType: EVP_PKEY
    signature: "* NativeCrypto_EVP_PKEY_new_RSA(JNIEnv* env, jclass,\n                                               jbyteArray
      n, jbyteArray e, jbyteArray d,\n                                               jbyteArray
      p, jbyteArray q)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:581,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 586
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 586
    functionName: NativeCrypto_EVP_PKEY_free
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNI_TRACE
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: NativeCrypto_EVP_PKEY_free(JNIEnv*, jclass, EVP_PKEY* pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:592,1
    - Dst: EVP_MD_CTX_create
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:594,1
    - Dst: jniThrowOutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:596,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 601
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 601
    functionName: NativeCrypto_EVP_MD_CTX_create
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_create
    - JNI_TRACE
    - jniThrowOutOfMemoryError
    linkageType: ''
    returnType: jint
    signature: NativeCrypto_EVP_MD_CTX_create(JNIEnv* env, jclass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:607,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 612
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 612
    functionName: NativeCrypto_EVP_MD_CTX_destroy
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_destroy
    - JNI_TRACE
    linkageType: ''
    returnType: void
    signature: NativeCrypto_EVP_MD_CTX_destroy(JNIEnv*, jclass, EVP_MD_CTX* ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:618,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:621,1
    - Dst: EVP_MD_CTX_create
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:624,1
    - Dst: jniThrowOutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:626,1
    - Dst: EVP_MD_CTX_init
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:629,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:632,1
    - Dst: jniThrowRuntimeException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:633,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:636,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - env
    - ctx
    argTypes:
    - JNIEnv*
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 638
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 638
    functionName: NativeCrypto_EVP_MD_CTX_copy
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - jniThrowNullPointerException
    - jniThrowRuntimeException
    - EVP_MD_CTX_create
    - jniThrowOutOfMemoryError
    - EVP_MD_CTX_destroy
    - EVP_MD_CTX_init
    - JNI_TRACE
    linkageType: ''
    returnType: jint
    signature: NativeCrypto_EVP_MD_CTX_copy(JNIEnv* env, jclass, EVP_MD_CTX* ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:645,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:648,1
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:655,1
    - Dst: EVP_DigestFinal
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:658,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:659,1
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:659,1
    - Dst: reinterpret_cast<unsigned int*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:660,1
    - Dst: throwExceptionIfNecessary
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:662,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:664,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - env
    - ctx
    - hash
    - offset
    argTypes:
    - JNIEnv*
    - EVP_MD_CTX*
    - jbyteArray
    - jint
    constantsTouched: []
    func_position:
      end: 666
      start: 643
    functionDepth: 3
    functionLinenumber: 643
    functionLinenumberEnd: 666
    functionName: NativeCrypto_EVP_DigestFinal
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - jniThrowNullPointerException
    - throwExceptionIfNecessary
    - ScopedByteArrayRW::get
    - EVP_DigestFinal
    - reinterpret_cast<unsigned char*>
    - JNI_TRACE
    - reinterpret_cast<unsigned int*>
    linkageType: ''
    returnType: jint
    signature: "NativeCrypto_EVP_DigestFinal(JNIEnv* env, jclass, EVP_MD_CTX* ctx,\n
      \                                        jbyteArray hash, jint offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:672,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:675,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:680,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:684,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:684,1
    - Dst: EVP_get_digestbynid
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:685,1
    - Dst: OBJ_txt2nid
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:685,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:685,1
    - Dst: jniThrowRuntimeException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:688,1
    - Dst: EVP_DigestInit
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:692,1
    - Dst: throwExceptionIfNecessary
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:694,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - env
    - ctx
    - algorithm
    argTypes:
    - JNIEnv*
    - EVP_MD_CTX*
    - jstring
    constantsTouched: []
    func_position:
      end: 695
      start: 671
    functionDepth: 3
    functionLinenumber: 671
    functionLinenumberEnd: 695
    functionName: NativeCrypto_EVP_DigestInit
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - EVP_DigestInit
    - jniThrowNullPointerException
    - jniThrowRuntimeException
    - throwExceptionIfNecessary
    - ScopedUtfChars::c_str
    - OBJ_txt2nid
    - EVP_get_digestbynid
    - JNI_TRACE
    linkageType: ''
    returnType: void
    signature: NativeCrypto_EVP_DigestInit(JNIEnv* env, jclass, EVP_MD_CTX* ctx, jstring
      algorithm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:701,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:704,1
    - Dst: throwExceptionIfNecessary
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:710,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - env
    - ctx
    argTypes:
    - JNIEnv*
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 714
      start: 700
    functionDepth: 3
    functionLinenumber: 700
    functionLinenumberEnd: 714
    functionName: NativeCrypto_EVP_MD_CTX_size
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNI_TRACE
    - jniThrowNullPointerException
    - throwExceptionIfNecessary
    linkageType: ''
    returnType: jint
    signature: NativeCrypto_EVP_MD_CTX_size(JNIEnv* env, jclass, EVP_MD_CTX* ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:720,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:723,1
    - Dst: throwExceptionIfNecessary
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:729,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - env
    - ctx
    argTypes:
    - JNIEnv*
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 733
      start: 719
    functionDepth: 3
    functionLinenumber: 719
    functionLinenumberEnd: 733
    functionName: NativeCrypto_EVP_MD_CTX_block_size
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNI_TRACE
    - jniThrowNullPointerException
    - throwExceptionIfNecessary
    linkageType: ''
    returnType: jint
    signature: NativeCrypto_EVP_MD_CTX_block_size(JNIEnv* env, jclass, EVP_MD_CTX*
      ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:740,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:743,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:748,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:753,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:756,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:757,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:757,1
    - Dst: throwExceptionIfNecessary
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:760,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - env
    - ctx
    - buffer
    - offset
    - length
    argTypes:
    - JNIEnv*
    - EVP_MD_CTX*
    - jbyteArray
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 761
      start: 738
    functionDepth: 3
    functionLinenumber: 738
    functionLinenumberEnd: 761
    functionName: NativeCrypto_EVP_DigestUpdate
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - jniThrowNullPointerException
    - throwExceptionIfNecessary
    - jniThrowException
    - EVP_DigestUpdate
    - ScopedByteArrayRO::get
    - JNI_TRACE
    - reinterpret_cast<const unsigned char*>
    linkageType: ''
    returnType: void
    signature: "NativeCrypto_EVP_DigestUpdate(JNIEnv* env, jclass, EVP_MD_CTX* ctx,\n
      \                                         jbyteArray buffer, jint offset, jint
      length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:767,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:770,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:775,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:779,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:779,1
    - Dst: EVP_get_digestbynid
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:780,1
    - Dst: OBJ_txt2nid
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:780,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:780,1
    - Dst: jniThrowRuntimeException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:783,1
    - Dst: EVP_VerifyInit
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:787,1
    - Dst: throwExceptionIfNecessary
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:789,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - env
    - ctx
    - algorithm
    argTypes:
    - JNIEnv*
    - EVP_MD_CTX*
    - jstring
    constantsTouched: []
    func_position:
      end: 790
      start: 766
    functionDepth: 3
    functionLinenumber: 766
    functionLinenumberEnd: 790
    functionName: NativeCrypto_EVP_VerifyInit
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - jniThrowNullPointerException
    - jniThrowRuntimeException
    - throwExceptionIfNecessary
    - ScopedUtfChars::c_str
    - OBJ_txt2nid
    - EVP_get_digestbynid
    - JNI_TRACE
    - EVP_VerifyInit
    linkageType: ''
    returnType: void
    signature: NativeCrypto_EVP_VerifyInit(JNIEnv* env, jclass, EVP_MD_CTX* ctx, jstring
      algorithm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:797,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:800,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:805,1
    - Dst: EVP_VerifyUpdate
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:808,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:809,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:809,1
    - Dst: throwExceptionIfNecessary
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:812,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - env
    - ctx
    - buffer
    - offset
    - length
    argTypes:
    - JNIEnv*
    - EVP_MD_CTX*
    - jbyteArray
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 813
      start: 795
    functionDepth: 3
    functionLinenumber: 795
    functionLinenumberEnd: 813
    functionName: NativeCrypto_EVP_VerifyUpdate
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - jniThrowNullPointerException
    - throwExceptionIfNecessary
    - EVP_VerifyUpdate
    - ScopedByteArrayRO::get
    - JNI_TRACE
    - reinterpret_cast<const unsigned char*>
    linkageType: ''
    returnType: void
    signature: "NativeCrypto_EVP_VerifyUpdate(JNIEnv* env, jclass, EVP_MD_CTX* ctx,\n
      \                                         jbyteArray buffer, jint offset, jint
      length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:820,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:824,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:829,1
    - Dst: throwExceptionIfNecessary
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:837,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:839,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 6
    argNames:
    - env
    - ctx
    - buffer
    - offset
    - length
    - pkey
    argTypes:
    - JNIEnv*
    - EVP_MD_CTX*
    - jbyteArray
    - jint
    - jint
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 843
      start: 818
    functionDepth: 3
    functionLinenumber: 818
    functionLinenumberEnd: 843
    functionName: NativeCrypto_EVP_VerifyFinal
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNI_TRACE
    - jniThrowNullPointerException
    - ScopedByteArrayRO::get
    - throwExceptionIfNecessary
    linkageType: ''
    returnType: int
    signature: "NativeCrypto_EVP_VerifyFinal(JNIEnv* env, jclass, EVP_MD_CTX* ctx,
      jbyteArray buffer,\n                                        jint offset, jint
      length, EVP_PKEY* pkey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:857,1
    - Dst: Unique_RSA::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:860,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:864,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:864,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:865,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:865,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:871,1
    - Dst: Unique_RSA::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:871,1
    - Dst: Unique_RSA::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:872,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - mod
    - modLen
    - exp
    - expLen
    argTypes:
    - jbyte*
    - int
    - jbyte*
    - int
    constantsTouched: []
    func_position:
      end: 873
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 873
    functionName: rsaCreateKey
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - Unique_RSA::get
    - JNI_TRACE
    - reinterpret_cast<const unsigned char*>
    - Unique_RSA::release
    linkageType: ''
    returnType: RSA
    signature: '* rsaCreateKey(const jbyte* mod, int modLen, const jbyte* exp, int
      expLen)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:891,1
    - Dst: Unique_EVP_PKEY::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:895,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:898,1
    - Dst: Unique_EVP_PKEY::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:898,1
    - Dst: EVP_get_digestbyname
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:900,1
    - Dst: EVP_MD_CTX_init
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:906,1
    - Dst: EVP_VerifyInit_ex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:907,1
    - Dst: EVP_VerifyUpdate
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:911,1
    - Dst: EVP_MD_CTX_cleanup
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:914,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:916,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 6
    argNames:
    - msg
    - msgLen
    - sig
    - sigLen
    - algorithm
    - rsa
    argTypes:
    - jbyte*
    - unsigned int
    - jbyte*
    - unsigned int
    - char*
    - RSA*
    constantsTouched: []
    func_position:
      end: 919
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 919
    functionName: rsaVerify
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - Unique_EVP_PKEY::get
    - EVP_VerifyInit_ex
    - EVP_VerifyUpdate
    - EVP_MD_CTX_cleanup
    - EVP_MD_CTX_init
    - EVP_PKEY_set1_RSA
    - EVP_get_digestbyname
    - JNI_TRACE
    linkageType: ''
    returnType: int
    signature: "rsaVerify(const jbyte* msg, unsigned int msgLen, const jbyte* sig,\n
      \                    unsigned int sigLen, const char* algorithm, RSA* rsa)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:927,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:931,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:935,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:939,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:943,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:948,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:951,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:951,1
    - Dst: rsaCreateKey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:953,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:953,1
    - Dst: ScopedByteArrayRO::size
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:953,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:953,1
    - Dst: ScopedByteArrayRO::size
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:953,1
    - Dst: Unique_RSA::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:955,1
    - Dst: rsaVerify
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:956,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:956,1
    - Dst: ScopedByteArrayRO::size
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:956,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:956,1
    - Dst: ScopedByteArrayRO::size
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:956,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:957,1
    - Dst: Unique_RSA::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:957,1
    - Dst: throwExceptionIfNecessary
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:961,1
    - Dst: jniThrowRuntimeException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:962,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:966,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 6
    argNames:
    - env
    - msg
    - sig
    - algorithm
    - mod
    - exp
    argTypes:
    - JNIEnv*
    - jbyteArray
    - jbyteArray
    - jstring
    - jbyteArray
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 968
      start: 924
    functionDepth: 3
    functionLinenumber: 924
    functionLinenumberEnd: 968
    functionName: NativeCrypto_verifySignature
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - ScopedByteArrayRO::size
    - throwExceptionIfNecessary
    - jniThrowRuntimeException
    - ScopedUtfChars::c_str
    - rsaVerify
    - ScopedByteArrayRO::get
    - Unique_RSA::get
    - JNI_TRACE
    - rsaCreateKey
    linkageType: ''
    returnType: int
    signature: "NativeCrypto_verifySignature(JNIEnv* env, jclass,\n        jbyteArray
      msg, jbyteArray sig, jstring algorithm, jbyteArray mod, jbyteArray exp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:971,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:973,1
    - Dst: RAND_seed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:976,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:976,1
    - Dst: ScopedByteArrayRO::size
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:976,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - env
    - seed
    argTypes:
    - JNIEnv*
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 977
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 977
    functionName: NativeCrypto_RAND_seed
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - ScopedByteArrayRO::size
    - JNI_TRACE
    - RAND_seed
    - ScopedByteArrayRO::get
    linkageType: ''
    returnType: void
    signature: NativeCrypto_RAND_seed(JNIEnv* env, jclass, jbyteArray seed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:980,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:982,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:986,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:986,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - env
    - filename
    - max_bytes
    argTypes:
    - JNIEnv*
    - jstring
    - jlong
    constantsTouched: []
    func_position:
      end: 988
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 988
    functionName: NativeCrypto_RAND_load_file
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNI_TRACE
    - ScopedUtfChars::c_str
    linkageType: ''
    returnType: int
    signature: NativeCrypto_RAND_load_file(JNIEnv* env, jclass, jstring filename,
      jlong max_bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ssl_version
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1010
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 1010
    functionName: get_ssl_version
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* get_ssl_version(int ssl_version)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOGD
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - content_type
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1036
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1036
    functionName: get_content_type
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - LOGD
    linkageType: ''
    returnType: char
    signature: '* get_content_type(int content_type)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1045,1
    - Dst: get_ssl_version
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1048,1
    - Dst: get_content_type
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - write_p
    - ssl_version
    - content_type
    - buf
    - len
    - ssl
    - arg
    argTypes:
    - int
    - int
    - int
    - void*
    - size_t
    - SSL*
    - void*
    constantsTouched: []
    func_position:
      end: 1053
      start: 1043
    functionDepth: 1
    functionLinenumber: 1043
    functionLinenumberEnd: 1053
    functionName: ssl_msg_callback_LOG
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNI_TRACE
    - get_ssl_version
    - get_content_type
    linkageType: ''
    returnType: void
    signature: "ssl_msg_callback_LOG(int write_p, int ssl_version, int content_type,\n
      \                                const void* buf, size_t len, SSL* ssl, void*
      arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1073,1
    - Dst: SSL_state_string
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1073,1
    - Dst: SSL_state_string_long
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1073,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1076,1
    - Dst: SSL_alert_type_string
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1079,1
    - Dst: SSL_alert_desc_string
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1080,1
    - Dst: SSL_alert_type_string_long
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1081,1
    - Dst: SSL_alert_desc_string_long
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1082,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1085,1
    - Dst: SSL_state_string
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1086,1
    - Dst: SSL_state_string_long
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1086,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1088,1
    - Dst: SSL_state_string
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1089,1
    - Dst: SSL_state_string_long
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1089,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1091,1
    - Dst: SSL_state_string
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1092,1
    - Dst: SSL_state_string_long
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1092,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1094,1
    - Dst: SSL_state_string
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1095,1
    - Dst: SSL_state_string_long
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1095,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1098,1
    - Dst: SSL_state_string
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1099,1
    - Dst: SSL_state_string_long
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1099,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1101,1
    - Dst: SSL_state_string
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1102,1
    - Dst: SSL_state_string_long
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1102,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1104,1
    - Dst: SSL_state_string
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1105,1
    - Dst: SSL_state_string_long
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1105,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - s
    - where
    - ret
    argTypes:
    - SSL*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1107
      start: 1060
    functionDepth: 1
    functionLinenumber: 1060
    functionLinenumberEnd: 1107
    functionName: info_callback_LOG
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - SSL_state_string_long
    - SSL_alert_desc_string
    - SSL_alert_desc_string_long
    - SSL_state_string
    - SSL_alert_type_string
    - SSL_alert_type_string_long
    - JNI_TRACE
    linkageType: ''
    returnType: void
    signature: info_callback_LOG(const SSL* s __attribute__ ((unused)), int where,
      int ret)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::NewObjectArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1125,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1131,1
    - Dst: JNIEnv*::NewByteArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1137,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1138,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1141,1
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1142,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1150,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1150,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - env
    - chain
    argTypes:
    - JNIEnv*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 1154
      start: 1113
    functionDepth: 1
    functionLinenumber: 1113
    functionLinenumberEnd: 1154
    functionName: getCertificateBytes
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - ScopedLocalRef::get
    - JNIEnv*::SetObjectArrayElement
    - ScopedByteArrayRW::get
    - JNIEnv*::NewByteArray
    - sk_X509_value
    - JNIEnv*::NewObjectArray
    linkageType: ''
    returnType: jobjectArray
    signature: getCertificateBytes(JNIEnv* env, const STACK_OF(X509)* chain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::NewObjectArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1170,1
    - Dst: sk_X509_NAME_value
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1176,1
    - Dst: JNIEnv*::NewByteArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1182,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1183,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1186,1
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1187,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1195,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1195,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - env
    - names
    argTypes:
    - JNIEnv*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 1199
      start: 1159
    functionDepth: 1
    functionLinenumber: 1159
    functionLinenumberEnd: 1199
    functionName: getPrincipalBytes
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - ScopedLocalRef::get
    - JNIEnv*::SetObjectArrayElement
    - ScopedByteArrayRW::get
    - JNIEnv*::NewByteArray
    - JNIEnv*::NewObjectArray
    - sk_X509_NAME_value
    linkageType: ''
    returnType: jobjectArray
    signature: getPrincipalBytes(JNIEnv* env, const STACK_OF(X509_NAME)* names)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AppData::AppData
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1284,1
    - Dst: pipe
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1285,1
    - Dst: UniquePtr::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1285,1
    - Dst: setBlocking
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1288,1
    - Dst: UniquePtr::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1288,1
    - Dst: MUTEX_SETUP
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1291,1
    - Dst: UniquePtr::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1291,1
    - Dst: UniquePtr::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1283
    functionDepth: 1
    functionLinenumber: 1283
    functionLinenumberEnd: 1295
    functionName: AppData::create
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - MUTEX_SETUP
    - AppData::AppData
    - UniquePtr::get
    - setBlocking
    - pipe
    - UniquePtr::release
    linkageType: ''
    returnType: AppData
    signature: '* create()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1300,1
    - Dst: close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1303,1
    - Dst: MUTEX_CLEANUP
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1297
    functionDepth: 0
    functionLinenumber: 1297
    functionLinenumberEnd: 1306
    functionName: ~AppData()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - close
    - MUTEX_CLEANUP
    linkageType: ''
    returnType: void
    signature: ~AppData()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1309
    functionDepth: 0
    functionLinenumber: 1309
    functionLinenumberEnd: 1317
    functionName: AppData::AppData
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: AppData()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetFd::isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - e
    - shc
    - fd
    argTypes:
    - JNIEnv*
    - jobject
    - jobject
    constantsTouched: []
    func_position:
      end: 1338
      start: 1329
    functionDepth: 1
    functionLinenumber: 1329
    functionLinenumberEnd: 1338
    functionName: AppData::setCallbackState
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - NetFd::isClosed
    linkageType: ''
    returnType: bool
    signature: setCallbackState(JNIEnv* e, jobject shc, jobject fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1340
    functionDepth: 0
    functionLinenumber: 1340
    functionLinenumberEnd: 1344
    functionName: AppData::clearCallbackState
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: clearCallbackState()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetFd::isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1380,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1385,1
    - Dst: FD_ZERO
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1388,1
    - Dst: FD_ZERO
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1389,1
    - Dst: FD_SET
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1392,1
    - Dst: FD_SET
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1394,1
    - Dst: FD_SET
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1397,1
    - Dst: select
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1413,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1414,1
    - Dst: NetFd::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1416,1
    - Dst: NetFd::isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1418,1
    - Dst: MUTEX_LOCK
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1428,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1439,1
    - Dst: read
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1442,1
    - Dst: MUTEX_UNLOCK
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1451,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 5
    argNames:
    - env
    - type
    - fdObject
    - appData
    - timeout
    argTypes:
    - JNIEnv*
    - int
    - jobject
    - AppData*
    - int
    constantsTouched: []
    func_position:
      end: 1454
      start: 1370
    functionDepth: 1
    functionLinenumber: 1370
    functionLinenumberEnd: 1454
    functionName: sslSelect
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - MUTEX_LOCK
    - NetFd::isClosed
    - FD_SET
    - MUTEX_UNLOCK
    - FD_ISSET
    - NetFd::get
    - FD_ZERO
    - read
    - JNI_TRACE
    - select
    linkageType: ''
    returnType: int
    signature: sslSelect(JNIEnv* env, int type, jobject fdObject, AppData* appData,
      int timeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - appData
    argTypes:
    - AppData*
    constantsTouched: []
    func_position:
      end: 1474
      start: 1463
    functionDepth: 0
    functionLinenumber: 1463
    functionLinenumberEnd: 1474
    functionName: sslNotify
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: void
    signature: sslNotify(AppData* appData)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - SSL_CIPHER*
    constantsTouched: []
    func_position:
      end: 1526
      start: 1491
    functionDepth: 0
    functionLinenumber: 1491
    functionLinenumberEnd: 1526
    functionName: SSL_CIPHER_authentication_method
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* SSL_CIPHER_authentication_method(const SSL_CIPHER* cipher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CIPHER_authentication_method
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1544
      start: 1532
    functionDepth: 1
    functionLinenumber: 1532
    functionLinenumberEnd: 1544
    functionName: SSL_authentication_method
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - SSL_CIPHER_authentication_method
    linkageType: ''
    returnType: char
    signature: '* SSL_authentication_method(SSL* ssl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<AppData*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1547,1
    - Dst: SSL_get_app_data
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1548
      start: 1546
    functionDepth: 0
    functionLinenumber: 1546
    functionLinenumberEnd: 1548
    functionName: toAppData
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - SSL_get_app_data
    - reinterpret_cast<AppData*>
    linkageType: ''
    returnType: AppData
    signature: '* toAppData(const SSL* ssl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<SSL*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1556,1
    - Dst: X509_STORE_CTX_get_ex_data
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1556,1
    - Dst: SSL_get_ex_data_X509_STORE_CTX_idx
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1557,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1558,1
    - Dst: toAppData
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1560,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1563,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1564,1
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1569,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1571,1
    - Dst: getCertificateBytes
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1573,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1576,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1578,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1579,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - x509_store_ctx
    - arg
    argTypes:
    - X509_STORE_CTX*
    - void*
    constantsTouched: []
    func_position:
      end: 1584
      start: 1553
    functionDepth: 2
    functionLinenumber: 1553
    functionLinenumberEnd: 1584
    functionName: cert_verify_callback
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetMethodID
    - JNI_TRACE
    - LOGE
    - getCertificateBytes
    - toAppData
    - JNIEnv*::GetObjectClass
    - JNIEnv*::CallVoidMethod
    - reinterpret_cast<SSL*>
    - X509_STORE_CTX_get_ex_data
    - SSL_get_ex_data_X509_STORE_CTX_idx
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: int
    signature: cert_verify_callback(X509_STORE_CTX* x509_store_ctx, void* arg __attribute__
      ((unused)))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1592,1
    - Dst: info_callback_LOG
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1594,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1597,1
    - Dst: toAppData
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1601,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1604,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1605,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1608,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1609,1
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1615,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1616,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1618,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1619,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1621,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1622,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1624,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - ssl
    - where
    - ret
    argTypes:
    - SSL*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1625
      start: 1591
    functionDepth: 2
    functionLinenumber: 1591
    functionLinenumberEnd: 1625
    functionName: info_callback
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetMethodID
    - LOGE
    - toAppData
    - JNIEnv*::CallVoidMethod
    - info_callback_LOG
    - JNIEnv*::GetObjectClass
    - JNI_TRACE
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: void
    signature: info_callback(const SSL* ssl, int where, int ret __attribute__ ((unused)))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1631,1
    - Dst: toAppData
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1633,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1636,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1637,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1640,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1641,1
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1646,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1648,1
    - Dst: getPrincipalBytes
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1665,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1670,1
    - Dst: JNIEnv*::NewByteArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1674,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1676,1
    - Dst: JNIEnv*::SetByteArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1679,1
    - Dst: reinterpret_cast<const jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1679,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1681,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1683,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1685,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1686,1
    - Dst: SSL_get_certificate
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1691,1
    - Dst: SSL_get_privatekey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1692,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1703,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 3
    argNames:
    - ssl
    - x509Out
    - pkeyOut
    argTypes:
    - SSL*
    - X509**
    - EVP_PKEY**
    constantsTouched: []
    func_position:
      end: 1705
      start: 1630
    functionDepth: 2
    functionLinenumber: 1630
    functionLinenumberEnd: 1705
    functionName: client_cert_cb
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetMethodID
    - reinterpret_cast<const jbyte*>
    - LOGE
    - SSL_get_privatekey
    - toAppData
    - JNIEnv*::NewByteArray
    - JNIEnv*::SetByteArrayRegion
    - JNIEnv*::CallVoidMethod
    - SSL_get_certificate
    - getPrincipalBytes
    - JNIEnv*::GetObjectClass
    - JNI_TRACE
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: int
    signature: client_cert_cb(SSL* ssl, X509** x509Out, EVP_PKEY** pkeyOut)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unique_BIGNUM::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1709,1
    - Dst: Unique_RSA::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1717,1
    - Dst: Unique_RSA::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1724,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - keylength
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1725
      start: 1707
    functionDepth: 1
    functionLinenumber: 1707
    functionLinenumberEnd: 1725
    functionName: rsaGenerateKey
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - Unique_BIGNUM::get
    - Unique_RSA::get
    - Unique_RSA::release
    linkageType: ''
    returnType: RSA
    signature: '* rsaGenerateKey(int keylength)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1733,1
    - Dst: toAppData
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1735,1
    - Dst: AppData*::ephemeralRsa::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1736,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1737,1
    - Dst: AppData*::ephemeralRsa::reset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1738,1
    - Dst: rsaGenerateKey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1738,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1740,1
    - Dst: AppData*::ephemeralRsa::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1740,1
    - Dst: AppData*::ephemeralRsa::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ssl
    - is_export
    - keylength
    argTypes:
    - SSL*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1742
      start: 1730
    functionDepth: 2
    functionLinenumber: 1730
    functionLinenumberEnd: 1742
    functionName: tmp_rsa_callback
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - rsaGenerateKey
    - toAppData
    - AppData*::ephemeralRsa::get
    - AppData*::ephemeralRsa::reset
    - JNI_TRACE
    linkageType: ''
    returnType: RSA
    signature: "* tmp_rsa_callback(SSL* ssl __attribute__ ((unused)),\n                             int
      is_export __attribute__ ((unused)),\n                             int keylength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH_generate_parameters_ex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1761,1
    - Dst: Unique_DH::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1761,1
    - Dst: Unique_DH::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1764,1
    - Dst: DSA_generate_parameters_ex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1768,1
    - Dst: Unique_DSA::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1768,1
    - Dst: DSA_dup_DH
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1771,1
    - Dst: Unique_DSA::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1771,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - keylength
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1774
      start: 1744
    functionDepth: 1
    functionLinenumber: 1744
    functionLinenumberEnd: 1774
    functionName: dhGenerateParameters
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - DSA_dup_DH
    - Unique_DSA::get
    - Unique_DH::release
    - Unique_DH::get
    - DSA_generate_parameters_ex
    - DH_generate_parameters_ex
    linkageType: ''
    returnType: DH
    signature: '* dhGenerateParameters(int keylength)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1782,1
    - Dst: dhGenerateParameters
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1783,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ssl
    - is_export
    - keylength
    argTypes:
    - SSL*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1786
      start: 1779
    functionDepth: 2
    functionLinenumber: 1779
    functionLinenumberEnd: 1786
    functionName: tmp_dh_callback
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - dhGenerateParameters
    - JNI_TRACE
    linkageType: ''
    returnType: DH
    signature: "* tmp_dh_callback(SSL* ssl __attribute__ ((unused)),\n                           int
      is_export __attribute__ ((unused)),\n                           int keylength)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unique_SSL_CTX::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1793,1
    - Dst: jniThrowRuntimeException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1794,1
    - Dst: SSL_CTX_set_options
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1797,1
    - Dst: Unique_SSL_CTX::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1797,1
    - Dst: SSL_CTX_set_mode
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1827,1
    - Dst: Unique_SSL_CTX::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1827,1
    - Dst: SSL_CTX_set_cert_verify_callback
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1829,1
    - Dst: Unique_SSL_CTX::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1829,1
    - Dst: SSL_CTX_set_info_callback
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1830,1
    - Dst: Unique_SSL_CTX::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1830,1
    - Dst: SSL_CTX_set_client_cert_cb
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1831,1
    - Dst: Unique_SSL_CTX::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1831,1
    - Dst: SSL_CTX_set_tmp_rsa_callback
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1832,1
    - Dst: Unique_SSL_CTX::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1832,1
    - Dst: SSL_CTX_set_tmp_dh_callback
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1833,1
    - Dst: Unique_SSL_CTX::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1833,1
    - Dst: SSL_CTX_set_msg_callback
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1836,1
    - Dst: Unique_SSL_CTX::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1836,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1838,1
    - Dst: Unique_SSL_CTX::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1838,1
    - Dst: Unique_SSL_CTX::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 1840
      start: 1791
    functionDepth: 1
    functionLinenumber: 1791
    functionLinenumberEnd: 1840
    functionName: NativeCrypto_SSL_CTX_new
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_msg_callback
    - Unique_SSL_CTX::release
    - jniThrowRuntimeException
    - SSL_CTX_set_mode
    - SSL_CTX_set_cert_verify_callback
    - Unique_SSL_CTX::get
    - SSL_CTX_set_options
    - SSL_CTX_set_tmp_rsa_callback
    - SSL_CTX_set_info_callback
    - SSL_CTX_set_tmp_dh_callback
    - JNI_TRACE
    - SSL_CTX_set_client_cert_cb
    linkageType: ''
    returnType: int
    signature: NativeCrypto_SSL_CTX_new(JNIEnv* env, jclass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL_CTX
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1848,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1849,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1853,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - env
    - ssl_ctx_address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 1854
      start: 1845
    functionDepth: 1
    functionLinenumber: 1845
    functionLinenumberEnd: 1854
    functionName: NativeCrypto_SSL_CTX_free
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - SSL_CTX_free
    - to_SSL_CTX
    - JNI_TRACE
    linkageType: ''
    returnType: void
    signature: "NativeCrypto_SSL_CTX_free(JNIEnv* env,\n        jclass, jint ssl_ctx_address)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL_CTX
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1861,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1862,1
    - Dst: Unique_SSL::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1867,1
    - Dst: throwSSLExceptionWithSslErrors
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1868,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1870,1
    - Dst: SSL_set_verify
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1882,1
    - Dst: Unique_SSL::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1882,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1884,1
    - Dst: Unique_SSL::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1884,1
    - Dst: Unique_SSL::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1885,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - env
    - ssl_ctx_address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 1886
      start: 1859
    functionDepth: 3
    functionLinenumber: 1859
    functionLinenumberEnd: 1886
    functionName: NativeCrypto_SSL_new
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - Unique_SSL::get
    - throwSSLExceptionWithSslErrors
    - SSL_set_verify
    - to_SSL_CTX
    - Unique_SSL::release
    - JNI_TRACE
    linkageType: ''
    returnType: jint
    signature: NativeCrypto_SSL_new(JNIEnv* env, jclass, jint ssl_ctx_address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1891,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1892,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1898,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1899,1
    - Dst: d2i_PKCS8_PRIV_KEY_INFO
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1903,1
    - Dst: ScopedByteArrayRO::size
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1903,1
    - Dst: Unique_PKCS8_PRIV_KEY_INFO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1904,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1905,1
    - Dst: ERR_error_string
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1905,1
    - Dst: ERR_peek_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1905,1
    - Dst: throwSSLExceptionWithSslErrors
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1906,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1908,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1909,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1913,1
    - Dst: Unique_PKCS8_PRIV_KEY_INFO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1913,1
    - Dst: Unique_EVP_PKEY::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1914,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1915,1
    - Dst: ERR_error_string
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1915,1
    - Dst: ERR_peek_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1915,1
    - Dst: throwSSLExceptionWithSslErrors
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1916,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1918,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1919,1
    - Dst: Unique_EVP_PKEY::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1925,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1927,1
    - Dst: ERR_error_string
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1927,1
    - Dst: ERR_peek_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1927,1
    - Dst: throwSSLExceptionWithSslErrors
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1928,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1929,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1930,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1934,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 3
    argNames:
    - env
    - ssl_address
    - privatekey
    argTypes:
    - JNIEnv*
    - jint
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 1935
      start: 1888
    functionDepth: 3
    functionLinenumber: 1888
    functionLinenumberEnd: 1935
    functionName: NativeCrypto_SSL_use_PrivateKey
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - ScopedByteArrayRO::size
    - ERR_error_string
    - Unique_PKCS8_PRIV_KEY_INFO::get
    - to_SSL
    - throwSSLExceptionWithSslErrors
    - LOGE
    - Unique_EVP_PKEY::get
    - Unique_EVP_PKEY::release
    - ScopedByteArrayRO::get
    - SSL_clear
    - ERR_peek_error
    - d2i_PKCS8_PRIV_KEY_INFO
    - JNI_TRACE
    - EVP_PKCS82PKEY
    linkageType: ''
    returnType: void
    signature: "NativeCrypto_SSL_use_PrivateKey(JNIEnv* env, jclass,\n                                            jint
      ssl_address, jbyteArray privatekey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1940,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1941,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1947,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1948,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1954,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1955,1
    - Dst: reinterpret_cast<jbyteArray>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1962,1
    - Dst: JNIEnv*::GetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1962,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1963,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1964,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1965,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1969,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1970,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1971,1
    - Dst: reset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1975,1
    - Dst: d2i_X509
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1975,1
    - Dst: ScopedByteArrayRO::size
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1975,1
    - Dst: get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1977,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1978,1
    - Dst: ERR_error_string
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1978,1
    - Dst: ERR_peek_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1978,1
    - Dst: throwSSLExceptionWithSslErrors
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1979,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1980,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1981,1
    - Dst: release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1988,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1990,1
    - Dst: ERR_error_string
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1990,1
    - Dst: ERR_peek_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1990,1
    - Dst: throwSSLExceptionWithSslErrors
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1991,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1992,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1993,1
    - Dst: Unique_sk_X509::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1998,1
    - Dst: jniThrowOutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:1999,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2000,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2004,1
    - Dst: Unique_sk_X509::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2004,1
    - Dst: release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2004,1
    - Dst: jniThrowOutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2005,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2006,1
    - Dst: throwSSLExceptionWithSslErrors
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2012,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2013,1
    - Dst: Unique_sk_X509::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2017,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2020,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 63
    argCount: 3
    argNames:
    - env
    - ssl_address
    - certificates
    argTypes:
    - JNIEnv*
    - jint
    - jobjectArray
    constantsTouched: []
    func_position:
      end: 2021
      start: 1937
    functionDepth: 3
    functionLinenumber: 1937
    functionLinenumberEnd: 2021
    functionName: NativeCrypto_SSL_use_certificate
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - d2i_X509
    - to_SSL
    - jniThrowException
    - LOGE
    - throwSSLExceptionWithSslErrors
    - release
    - ScopedByteArrayRO::size
    - ERR_error_string
    - get
    - reset
    - ERR_peek_error
    - sk_X509_push
    - JNI_TRACE
    - Unique_sk_X509::release
    - JNIEnv*::GetObjectArrayElement
    - Unique_sk_X509::get
    - reinterpret_cast<jbyteArray>
    - ScopedLocalRef::get
    - jniThrowNullPointerException
    - ScopedByteArrayRO::get
    - SSL_clear
    - jniThrowOutOfMemoryError
    linkageType: ''
    returnType: void
    signature: "NativeCrypto_SSL_use_certificate(JNIEnv* env, jclass,\n                                             jint
      ssl_address, jobjectArray certificates)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2025,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2026,1
    - Dst: throwSSLExceptionWithSslErrors
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2032,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2033,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2034,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2037,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - env
    - ssl_address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 2038
      start: 2023
    functionDepth: 3
    functionLinenumber: 2023
    functionLinenumberEnd: 2038
    functionName: NativeCrypto_SSL_check_private_key
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - throwSSLExceptionWithSslErrors
    - JNI_TRACE
    - to_SSL
    - SSL_clear
    linkageType: ''
    returnType: void
    signature: NativeCrypto_SSL_check_private_key(JNIEnv* env, jclass, jint ssl_address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2043,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2044,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2050,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2051,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2057,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2058,1
    - Dst: Unique_sk_X509_NAME::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2063,1
    - Dst: jniThrowOutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2064,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2065,1
    - Dst: reinterpret_cast<jbyteArray>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2070,1
    - Dst: JNIEnv*::GetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2070,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2071,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2072,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2073,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2077,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2078,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2079,1
    - Dst: d2i_X509_NAME
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2083,1
    - Dst: ScopedByteArrayRO::size
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2083,1
    - Dst: Unique_X509_NAME::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2085,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2086,1
    - Dst: ERR_error_string
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2086,1
    - Dst: ERR_peek_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2086,1
    - Dst: throwSSLExceptionWithSslErrors
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2087,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2088,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2089,1
    - Dst: sk_X509_NAME_push
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2094,1
    - Dst: Unique_sk_X509_NAME::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2094,1
    - Dst: Unique_X509_NAME::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2094,1
    - Dst: jniThrowOutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2095,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2096,1
    - Dst: SSL_set_client_CA_list
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2101,1
    - Dst: Unique_sk_X509_NAME::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2101,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2102,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 3
    argNames:
    - env
    - ssl_address
    - principals
    argTypes:
    - JNIEnv*
    - jint
    - jobjectArray
    constantsTouched: []
    func_position:
      end: 2103
      start: 2040
    functionDepth: 3
    functionLinenumber: 2040
    functionLinenumberEnd: 2103
    functionName: NativeCrypto_SSL_set_client_CA_list
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - sk_X509_NAME_push
    - to_SSL
    - jniThrowException
    - LOGE
    - throwSSLExceptionWithSslErrors
    - Unique_X509_NAME::release
    - Unique_sk_X509_NAME::get
    - SSL_set_client_CA_list
    - d2i_X509_NAME
    - Unique_sk_X509_NAME::release
    - ScopedByteArrayRO::size
    - Unique_X509_NAME::get
    - ERR_error_string
    - ERR_peek_error
    - JNI_TRACE
    - JNIEnv*::GetObjectArrayElement
    - reinterpret_cast<jbyteArray>
    - ScopedLocalRef::get
    - jniThrowNullPointerException
    - jniThrowOutOfMemoryError
    - ScopedByteArrayRO::get
    - SSL_clear
    linkageType: ''
    returnType: void
    signature: "NativeCrypto_SSL_set_client_CA_list(JNIEnv* env, jclass,\n                                                jint
      ssl_address, jobjectArray principals)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2109,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2110,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - env
    - ssl_address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 2117
      start: 2108
    functionDepth: 1
    functionLinenumber: 2108
    functionLinenumberEnd: 2117
    functionName: NativeCrypto_SSL_get_mode
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNI_TRACE
    - to_SSL
    linkageType: ''
    returnType: jlong
    signature: NativeCrypto_SSL_get_mode(JNIEnv* env, jclass, jint ssl_address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2124,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2125,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - env
    - ssl_address
    - mode
    argTypes:
    - JNIEnv*
    - jint
    - jlong
    constantsTouched: []
    func_position:
      end: 2132
      start: 2122
    functionDepth: 1
    functionLinenumber: 2122
    functionLinenumberEnd: 2132
    functionName: NativeCrypto_SSL_set_mode
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNI_TRACE
    - to_SSL
    linkageType: ''
    returnType: jlong
    signature: "NativeCrypto_SSL_set_mode(JNIEnv* env, jclass,\n        jint ssl_address,
      jlong mode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2139,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2140,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - env
    - ssl_address
    - mode
    argTypes:
    - JNIEnv*
    - jint
    - jlong
    constantsTouched: []
    func_position:
      end: 2147
      start: 2137
    functionDepth: 1
    functionLinenumber: 2137
    functionLinenumberEnd: 2147
    functionName: NativeCrypto_SSL_clear_mode
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNI_TRACE
    - to_SSL
    linkageType: ''
    returnType: jlong
    signature: "NativeCrypto_SSL_clear_mode(JNIEnv* env, jclass,\n        jint ssl_address,
      jlong mode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2154,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2155,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - env
    - ssl_address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 2162
      start: 2152
    functionDepth: 1
    functionLinenumber: 2152
    functionLinenumberEnd: 2162
    functionName: NativeCrypto_SSL_get_options
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNI_TRACE
    - to_SSL
    linkageType: ''
    returnType: jlong
    signature: "NativeCrypto_SSL_get_options(JNIEnv* env, jclass,\n        jint ssl_address)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2169,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2170,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - env
    - ssl_address
    - options
    argTypes:
    - JNIEnv*
    - jint
    - jlong
    constantsTouched: []
    func_position:
      end: 2177
      start: 2167
    functionDepth: 1
    functionLinenumber: 2167
    functionLinenumberEnd: 2177
    functionName: NativeCrypto_SSL_set_options
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNI_TRACE
    - to_SSL
    linkageType: ''
    returnType: jlong
    signature: "NativeCrypto_SSL_set_options(JNIEnv* env, jclass,\n        jint ssl_address,
      jlong options)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2184,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2185,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - env
    - ssl_address
    - options
    argTypes:
    - JNIEnv*
    - jint
    - jlong
    constantsTouched: []
    func_position:
      end: 2192
      start: 2182
    functionDepth: 1
    functionLinenumber: 2182
    functionLinenumberEnd: 2192
    functionName: NativeCrypto_SSL_clear_options
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNI_TRACE
    - to_SSL
    linkageType: ''
    returnType: jlong
    signature: "NativeCrypto_SSL_clear_options(JNIEnv* env, jclass,\n        jint
      ssl_address, jlong options)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2200,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2201,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2206,1
    - Dst: Unique_sk_SSL_CIPHER::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2211,1
    - Dst: jniThrowRuntimeException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2212,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2220,1
    - Dst: reinterpret_cast<jstring>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2223,1
    - Dst: JNIEnv*::GetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2223,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2224,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2225,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2228,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2228,1
    - Dst: SSL_METHOD*::get_cipher
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2231,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2232,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2232,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2233,1
    - Dst: SSL_CIPHER_get_version
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2233,1
    - Dst: sk_SSL_CIPHER_push
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2234,1
    - Dst: Unique_sk_SSL_CIPHER::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2234,1
    - Dst: jniThrowOutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2235,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2236,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2243,1
    - Dst: freeSslErrorState
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2251,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2252,1
    - Dst: Unique_sk_SSL_CIPHER::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2255,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - env
    - ssl_address
    - cipherSuites
    argTypes:
    - JNIEnv*
    - jint
    - jobjectArray
    constantsTouched: []
    func_position:
      end: 2257
      start: 2197
    functionDepth: 2
    functionLinenumber: 2197
    functionLinenumberEnd: 2257
    functionName: NativeCrypto_SSL_set_cipher_lists
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - ScopedLocalRef::get
    - JNIEnv*::GetObjectArrayElement
    - Unique_sk_SSL_CIPHER::get
    - jniThrowNullPointerException
    - to_SSL
    - jniThrowRuntimeException
    - ScopedUtfChars::c_str
    - SSL_METHOD*::get_cipher
    - strcmp
    - jniThrowException
    - sk_SSL_CIPHER_push
    - reinterpret_cast<jstring>
    - jniThrowOutOfMemoryError
    - Unique_sk_SSL_CIPHER::release
    - SSL_CIPHER_get_version
    - JNI_TRACE
    - freeSslErrorState
    linkageType: ''
    returnType: void
    signature: "NativeCrypto_SSL_set_cipher_lists(JNIEnv* env, jclass,\n        jint
      ssl_address, jobjectArray cipherSuites)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2265,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2266,1
    - Dst: SSL_set_verify
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - env
    - ssl_address
    - mode
    argTypes:
    - JNIEnv*
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 2271
      start: 2262
    functionDepth: 1
    functionLinenumber: 2262
    functionLinenumberEnd: 2271
    functionName: NativeCrypto_SSL_set_verify
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNI_TRACE
    - to_SSL
    - SSL_set_verify
    linkageType: ''
    returnType: void
    signature: "NativeCrypto_SSL_set_verify(JNIEnv* env,\n        jclass, jint ssl_address,
      jint mode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2279,1
    - Dst: to_SSL_SESSION
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2280,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2281,1
    - Dst: throwSSLExceptionWithSslErrors
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2294,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2295,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - env
    - ssl_address
    - ssl_session_address
    argTypes:
    - JNIEnv*
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 2298
      start: 2276
    functionDepth: 3
    functionLinenumber: 2276
    functionLinenumberEnd: 2298
    functionName: NativeCrypto_SSL_set_session
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - throwSSLExceptionWithSslErrors
    - to_SSL
    - SSL_clear
    - to_SSL_SESSION
    - JNI_TRACE
    linkageType: ''
    returnType: void
    signature: "NativeCrypto_SSL_set_session(JNIEnv* env, jclass,\n        jint ssl_address,
      jint ssl_session_address)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2306,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2307,1
    - Dst: SSL_set_session_creation_enabled
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - env
    - ssl_address
    - creation_enabled
    argTypes:
    - JNIEnv*
    - jint
    - jboolean
    constantsTouched: []
    func_position:
      end: 2313
      start: 2303
    functionDepth: 1
    functionLinenumber: 2303
    functionLinenumberEnd: 2313
    functionName: NativeCrypto_SSL_set_session_creation_enabled
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNI_TRACE
    - to_SSL
    - SSL_set_session_creation_enabled
    linkageType: ''
    returnType: void
    signature: "NativeCrypto_SSL_set_session_creation_enabled(JNIEnv* env, jclass,\n
      \       jint ssl_address, jboolean creation_enabled)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2318,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2319,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2326,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2329,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2329,1
    - Dst: throwSSLExceptionWithSslErrors
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2333,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2334,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2335,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - env
    - ssl_address
    - hostname
    argTypes:
    - JNIEnv*
    - jint
    - jstring
    constantsTouched: []
    func_position:
      end: 2339
      start: 2315
    functionDepth: 3
    functionLinenumber: 2315
    functionLinenumberEnd: 2339
    functionName: NativeCrypto_SSL_set_tlsext_host_name
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - throwSSLExceptionWithSslErrors
    - to_SSL
    - ScopedUtfChars::c_str
    - SSL_clear
    - JNI_TRACE
    linkageType: ''
    returnType: void
    signature: "NativeCrypto_SSL_set_tlsext_host_name(JNIEnv* env, jclass,\n        jint
      ssl_address, jstring hostname)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2342,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2343,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2348,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - env
    - ssl_address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 2350
      start: 2341
    functionDepth: 1
    functionLinenumber: 2341
    functionLinenumberEnd: 2350
    functionName: NativeCrypto_SSL_get_servername
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNI_TRACE
    - to_SSL
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: NativeCrypto_SSL_get_servername(JNIEnv* env, jclass, jint ssl_address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2358,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2359,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2365,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2366,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2370,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2371,1
    - Dst: NetFd::isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2376,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2378,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2379,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2384,1
    - Dst: NetFd::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2384,1
    - Dst: throwSSLExceptionWithSslErrors
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2387,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2389,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2390,1
    - Dst: setBlocking
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2398,1
    - Dst: NetFd::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2398,1
    - Dst: throwSSLExceptionStr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2399,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2400,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2401,1
    - Dst: AppData::create
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2408,1
    - Dst: throwSSLExceptionStr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2410,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2411,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2412,1
    - Dst: SSL_set_app_data
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2415,1
    - Dst: reinterpret_cast<char*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2415,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2416,1
    - Dst: SSL_set_connect_state
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2419,1
    - Dst: SSL_set_accept_state
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2421,1
    - Dst: AppData*::setCallbackState
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2428,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2430,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2431,1
    - Dst: SSL_do_handshake
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2434,1
    - Dst: AppData*::clearCallbackState
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2435,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2437,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2438,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2439,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2452,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2469,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2470,1
    - Dst: throwSSLExceptionWithSslErrors
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2474,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2475,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2476,1
    - Dst: throwSocketTimeoutException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2480,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2481,1
    - Dst: freeSslErrorState
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2482,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2483,1
    - Dst: throwSSLExceptionStr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2501,1
    - Dst: throwSSLExceptionWithSslErrors
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2503,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2505,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2506,1
    - Dst: throwSSLExceptionWithSslErrors
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2517,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2518,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2519,1
    - Dst: SSL_get1_session
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2522,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2523,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 110
    argCount: 6
    argNames:
    - env
    - ssl_address
    - fdObject
    - shc
    - timeout
    - client_mode
    argTypes:
    - JNIEnv*
    - jint
    - jobject
    - jobject
    - jint
    - jboolean
    constantsTouched: []
    func_position:
      end: 2525
      start: 2355
    functionDepth: 3
    functionLinenumber: 2355
    functionLinenumberEnd: 2525
    functionName: NativeCrypto_SSL_do_handshake
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - AppData*::setCallbackState
    - to_SSL
    - throwSSLExceptionWithSslErrors
    - AppData::create
    - NetFd::isClosed
    - SSL_do_handshake
    - JNI_TRACE
    - JNIEnv*::ExceptionCheck
    - freeSslErrorState
    - throwSocketTimeoutException
    - throwSSLExceptionStr
    - AppData*::clearCallbackState
    - SSL_set_connect_state
    - jniThrowNullPointerException
    - SSL_set_accept_state
    - SSL_clear
    - SSL_set_app_data
    - reinterpret_cast<char*>
    - setBlocking
    - NetFd::get
    - SSL_get1_session
    linkageType: ''
    returnType: jint
    signature: "NativeCrypto_SSL_do_handshake(JNIEnv* env, jclass,\n    jint ssl_address,
      jobject fdObject, jobject shc, jint timeout, jboolean client_mode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2532,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2533,1
    - Dst: throwSSLExceptionStr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2539,1
    - Dst: throwSSLExceptionWithSslErrors
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2545,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2550,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - env
    - ssl_address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 2551
      start: 2530
    functionDepth: 3
    functionLinenumber: 2530
    functionLinenumberEnd: 2551
    functionName: NativeCrypto_SSL_renegotiate
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - throwSSLExceptionStr
    - throwSSLExceptionWithSslErrors
    - JNI_TRACE
    - to_SSL
    linkageType: ''
    returnType: void
    signature: NativeCrypto_SSL_renegotiate(JNIEnv* env, jclass, jint ssl_address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2558,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2559,1
    - Dst: SSL_get_certificate
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2563,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2565,1
    - Dst: Unique_sk_X509::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2570,1
    - Dst: jniThrowOutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2571,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2572,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2575,1
    - Dst: Unique_sk_X509::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2575,1
    - Dst: jniThrowOutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2576,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2577,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2580,1
    - Dst: SSL_get_certificate_chain
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2580,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2581,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2582,1
    - Dst: Unique_sk_X509::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2582,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2582,1
    - Dst: jniThrowOutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2583,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2584,1
    - Dst: getCertificateBytes
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2589,1
    - Dst: Unique_sk_X509::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2589,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2590,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - env
    - ssl_address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 2592
      start: 2556
    functionDepth: 2
    functionLinenumber: 2556
    functionLinenumberEnd: 2592
    functionName: NativeCrypto_SSL_get_certificate
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - to_SSL
    - STACK_OF
    - getCertificateBytes
    - SSL_get_certificate_chain
    - jniThrowOutOfMemoryError
    - sk_X509_num
    - sk_X509_value
    - SSL_get_certificate
    - sk_X509_push
    - Unique_sk_X509::get
    - JNI_TRACE
    linkageType: ''
    returnType: jobjectArray
    signature: NativeCrypto_SSL_get_certificate(JNIEnv* env, jclass, jint ssl_address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2597,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2598,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2602,1
    - Dst: SSL_get_peer_cert_chain
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2602,1
    - Dst: SSL_get_peer_certificate
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2605,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2607,1
    - Dst: Unique_sk_X509::reset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2610,1
    - Dst: sk_X509_dup
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2610,1
    - Dst: Unique_sk_X509::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2611,1
    - Dst: jniThrowOutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2612,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2613,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2616,1
    - Dst: Unique_sk_X509::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2616,1
    - Dst: jniThrowOutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2617,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2618,1
    - Dst: Unique_sk_X509::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2621,1
    - Dst: getCertificateBytes
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2623,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2624,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - env
    - ssl_address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 2626
      start: 2595
    functionDepth: 2
    functionLinenumber: 2595
    functionLinenumberEnd: 2626
    functionName: NativeCrypto_SSL_get_peer_cert_chain
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - to_SSL
    - STACK_OF
    - getCertificateBytes
    - SSL_get_peer_certificate
    - sk_X509_dup
    - jniThrowOutOfMemoryError
    - sk_X509_push
    - SSL_get_peer_cert_chain
    - Unique_sk_X509::reset
    - Unique_sk_X509::get
    - JNI_TRACE
    linkageType: ''
    returnType: jobjectArray
    signature: NativeCrypto_SSL_get_peer_cert_chain(JNIEnv* env, jclass, jint ssl_address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2650,1
    - Dst: toAppData
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2652,1
    - Dst: MUTEX_LOCK
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2660,1
    - Dst: AppData*::setCallbackState
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2667,1
    - Dst: MUTEX_UNLOCK
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2668,1
    - Dst: AppData*::clearCallbackState
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2672,1
    - Dst: SSL_get_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2675,1
    - Dst: freeSslErrorState
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2676,1
    - Dst: BIO_number_read
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2683,1
    - Dst: BIO_number_written
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2683,1
    - Dst: sslNotify
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2685,1
    - Dst: MUTEX_UNLOCK
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2694,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 66
    argCount: 9
    argNames:
    - env
    - ssl
    - fdObject
    - shc
    - buf
    - len
    - sslReturnCode
    - sslErrorCode
    - timeout
    argTypes:
    - JNIEnv*
    - SSL*
    - jobject
    - jobject
    - char*
    - jint
    - int*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 2754
      start: 2640
    functionDepth: 2
    functionLinenumber: 2640
    functionLinenumberEnd: 2754
    functionName: sslRead
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - AppData*::setCallbackState
    - BIO_number_written
    - BIO_number_read
    - MUTEX_LOCK
    - toAppData
    - MUTEX_UNLOCK
    - SSL_get_rbio
    - sslNotify
    - AppData*::clearCallbackState
    - SSL_get_error
    - freeSslErrorState
    linkageType: ''
    returnType: int
    signature: "sslRead(JNIEnv* env, SSL* ssl, jobject fdObject, jobject shc, char*
      buf, jint len,\n                   int* sslReturnCode, int* sslErrorCode, int
      timeout)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2762,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2763,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2769,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2770,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2774,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2775,1
    - Dst: throwSSLExceptionWithSslErrors
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2790,1
    - Dst: throwSocketTimeoutException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2794,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2810,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 5
    argNames:
    - env
    - ssl_address
    - fdObject
    - shc
    - timeout
    argTypes:
    - JNIEnv*
    - jint
    - jobject
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 2812
      start: 2759
    functionDepth: 3
    functionLinenumber: 2759
    functionLinenumberEnd: 2812
    functionName: NativeCrypto_SSL_read_byte
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - jniThrowNullPointerException
    - throwSocketTimeoutException
    - throwSSLExceptionWithSslErrors
    - to_SSL
    - JNI_TRACE
    linkageType: ''
    returnType: jint
    signature: "NativeCrypto_SSL_read_byte(JNIEnv* env, jclass, jint ssl_address,\n
      \                                      jobject fdObject, jobject shc, jint timeout)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2821,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2822,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2828,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2829,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2833,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2834,1
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2839,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2840,1
    - Dst: throwSSLExceptionWithSslErrors
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2853,1
    - Dst: throwSocketTimeoutException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2857,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2869,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 8
    argNames:
    - env
    - ssl_address
    - fdObject
    - shc
    - b
    - offset
    - len
    - timeout
    argTypes:
    - JNIEnv*
    - jint
    - jobject
    - jobject
    - jbyteArray
    - jint
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 2871
      start: 2818
    functionDepth: 3
    functionLinenumber: 2818
    functionLinenumberEnd: 2871
    functionName: NativeCrypto_SSL_read
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - jniThrowNullPointerException
    - throwSSLExceptionWithSslErrors
    - to_SSL
    - ScopedByteArrayRW::get
    - throwSocketTimeoutException
    - JNI_TRACE
    linkageType: ''
    returnType: jint
    signature: "NativeCrypto_SSL_read(JNIEnv* env, jclass, jint ssl_address, jobject
      fdObject,\n                                  jobject shc, jbyteArray b, jint
      offset, jint len, jint timeout)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2895,1
    - Dst: toAppData
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2897,1
    - Dst: MUTEX_LOCK
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2907,1
    - Dst: AppData*::setCallbackState
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2914,1
    - Dst: MUTEX_UNLOCK
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2915,1
    - Dst: AppData*::clearCallbackState
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2919,1
    - Dst: SSL_get_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2922,1
    - Dst: freeSslErrorState
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2923,1
    - Dst: BIO_number_read
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2930,1
    - Dst: BIO_number_written
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2930,1
    - Dst: sslNotify
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2932,1
    - Dst: MUTEX_UNLOCK
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:2941,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 68
    argCount: 8
    argNames:
    - env
    - ssl
    - fdObject
    - shc
    - buf
    - len
    - sslReturnCode
    - sslErrorCode
    argTypes:
    - JNIEnv*
    - SSL*
    - jobject
    - jobject
    - char*
    - jint
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 3006
      start: 2885
    functionDepth: 2
    functionLinenumber: 2885
    functionLinenumberEnd: 3006
    functionName: sslWrite
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - AppData*::setCallbackState
    - BIO_number_written
    - SSL_get_error
    - BIO_number_read
    - MUTEX_LOCK
    - toAppData
    - MUTEX_UNLOCK
    - sslNotify
    - AppData*::clearCallbackState
    - SSL_get_wbio
    - freeSslErrorState
    linkageType: ''
    returnType: int
    signature: "sslWrite(JNIEnv* env, SSL* ssl, jobject fdObject, jobject shc, const
      char* buf, jint len,\n                    int* sslReturnCode, int* sslErrorCode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3014,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3015,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3020,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3021,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3025,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3026,1
    - Dst: throwSSLExceptionWithSslErrors
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3038,1
    - Dst: throwSocketTimeoutException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3041,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - env
    - ssl_address
    - fdObject
    - shc
    - b
    argTypes:
    - JNIEnv*
    - jint
    - jobject
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 3049
      start: 3011
    functionDepth: 3
    functionLinenumber: 3011
    functionLinenumberEnd: 3049
    functionName: NativeCrypto_SSL_write_byte
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - jniThrowNullPointerException
    - throwSocketTimeoutException
    - throwSSLExceptionWithSslErrors
    - to_SSL
    - JNI_TRACE
    linkageType: ''
    returnType: void
    signature: "NativeCrypto_SSL_write_byte(JNIEnv* env, jclass, jint ssl_address,\n
      \                                       jobject fdObject, jobject shc, jint
      b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3057,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3058,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3064,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3065,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3069,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3070,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3075,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3076,1
    - Dst: throwSSLExceptionWithSslErrors
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3087,1
    - Dst: throwSocketTimeoutException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3090,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 7
    argNames:
    - env
    - ssl_address
    - fdObject
    - shc
    - b
    - offset
    - len
    argTypes:
    - JNIEnv*
    - jint
    - jobject
    - jobject
    - jbyteArray
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 3098
      start: 3054
    functionDepth: 3
    functionLinenumber: 3054
    functionLinenumberEnd: 3098
    functionName: NativeCrypto_SSL_write
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - jniThrowNullPointerException
    - throwSSLExceptionWithSslErrors
    - to_SSL
    - throwSocketTimeoutException
    - ScopedByteArrayRO::get
    - JNI_TRACE
    linkageType: ''
    returnType: void
    signature: "NativeCrypto_SSL_write(JNIEnv* env, jclass, jint ssl_address, jobject
      fdObject,\n                                   jobject shc, jbyteArray b, jint
      offset, jint len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3105,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3106,1
    - Dst: toAppData
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3115,1
    - Dst: sslNotify
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3120,1
    - Dst: sslNotify
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - env
    - ssl_address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 3123
      start: 3103
    functionDepth: 1
    functionLinenumber: 3103
    functionLinenumberEnd: 3123
    functionName: NativeCrypto_SSL_interrupt
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - toAppData
    - JNI_TRACE
    - sslNotify
    - to_SSL
    linkageType: ''
    returnType: void
    signature: "NativeCrypto_SSL_interrupt(\n        JNIEnv* env, jclass, jint ssl_address)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3130,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3131,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3136,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3137,1
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3141,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3142,1
    - Dst: toAppData
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3146,1
    - Dst: AppData*::setCallbackState
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3148,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3150,1
    - Dst: freeSslErrorState
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3151,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3159,1
    - Dst: setBlocking
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3161,1
    - Dst: throwSSLExceptionWithSslErrors
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3189,1
    - Dst: AppData*::clearCallbackState
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3192,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3195,1
    - Dst: freeSslErrorState
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3196,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 4
    argNames:
    - env
    - ssl_address
    - fdObject
    - shc
    argTypes:
    - JNIEnv*
    - jint
    - jobject
    - jobject
    constantsTouched: []
    func_position:
      end: 3197
      start: 3128
    functionDepth: 3
    functionLinenumber: 3128
    functionLinenumberEnd: 3197
    functionName: NativeCrypto_SSL_shutdown
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - AppData*::setCallbackState
    - jniThrowNullPointerException
    - to_SSL
    - throwSSLExceptionWithSslErrors
    - toAppData
    - SSL_clear
    - setBlocking
    - AppData*::clearCallbackState
    - JNI_TRACE
    - freeSslErrorState
    linkageType: ''
    returnType: void
    signature: "NativeCrypto_SSL_shutdown(JNIEnv* env, jclass, jint ssl_address,\n
      \                                     jobject fdObject, jobject shc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3204,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3205,1
    - Dst: toAppData
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3210,1
    - Dst: SSL_set_app_data
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3211,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - env
    - ssl_address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 3214
      start: 3202
    functionDepth: 1
    functionLinenumber: 3202
    functionLinenumberEnd: 3214
    functionName: NativeCrypto_SSL_free
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - to_SSL
    - toAppData
    - SSL_set_app_data
    - SSL_free
    - JNI_TRACE
    linkageType: ''
    returnType: void
    signature: NativeCrypto_SSL_free(JNIEnv* env, jclass, jint ssl_address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL_SESSION
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3221,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3222,1
    - Dst: JNIEnv*::NewByteArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3226,1
    - Dst: reinterpret_cast<jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3228,1
    - Dst: JNIEnv*::SetByteArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3229,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - env
    - ssl_session_address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 3234
      start: 3219
    functionDepth: 1
    functionLinenumber: 3219
    functionLinenumberEnd: 3234
    functionName: NativeCrypto_SSL_SESSION_session_id
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<jbyte*>
    - JNIEnv*::SetByteArrayRegion
    - JNIEnv*::NewByteArray
    - to_SSL_SESSION
    - JNI_TRACE
    linkageType: ''
    returnType: jbyteArray
    signature: "NativeCrypto_SSL_SESSION_session_id(JNIEnv* env, jclass,\n                                                      jint
      ssl_session_address)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL_SESSION
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3241,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3242,1
    - Dst: SSL_SESSION_get_time
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3247,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - env
    - ssl_session_address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 3251
      start: 3240
    functionDepth: 1
    functionLinenumber: 3240
    functionLinenumberEnd: 3251
    functionName: NativeCrypto_SSL_SESSION_get_time
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNI_TRACE
    - SSL_SESSION_get_time
    - to_SSL_SESSION
    linkageType: ''
    returnType: jlong
    signature: NativeCrypto_SSL_SESSION_get_time(JNIEnv* env, jclass, jint ssl_session_address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_ssl_version
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl_session
    argTypes:
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 3261
      start: 3259
    functionDepth: 1
    functionLinenumber: 3259
    functionLinenumberEnd: 3261
    functionName: SSL_SESSION_get_version
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - get_ssl_version
    linkageType: ''
    returnType: char
    signature: '* SSL_SESSION_get_version(SSL_SESSION* ssl_session)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL_SESSION
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3268,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3269,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3274,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - env
    - ssl_session_address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 3276
      start: 3267
    functionDepth: 1
    functionLinenumber: 3267
    functionLinenumberEnd: 3276
    functionName: NativeCrypto_SSL_SESSION_get_version
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNI_TRACE
    - JNIEnv*::NewStringUTF
    - to_SSL_SESSION
    linkageType: ''
    returnType: jstring
    signature: NativeCrypto_SSL_SESSION_get_version(JNIEnv* env, jclass, jint ssl_session_address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL_SESSION
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3282,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3283,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3289,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - env
    - ssl_session_address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 3291
      start: 3281
    functionDepth: 1
    functionLinenumber: 3281
    functionLinenumberEnd: 3291
    functionName: NativeCrypto_SSL_SESSION_cipher
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNI_TRACE
    - JNIEnv*::NewStringUTF
    - to_SSL_SESSION
    linkageType: ''
    returnType: jstring
    signature: NativeCrypto_SSL_SESSION_cipher(JNIEnv* env, jclass, jint ssl_session_address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL_CTX
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3299,1
    - Dst: to_SSL_SESSION
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3300,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3301,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3310,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3311,1
    - Dst: sk_SSL_COMP_value
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3316,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3323,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3324,1
    - Dst: throwSSLExceptionStr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3326,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - env
    - ssl_ctx_address
    - ssl_session_address
    argTypes:
    - JNIEnv*
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 3328
      start: 3296
    functionDepth: 1
    functionLinenumber: 3296
    functionLinenumberEnd: 3328
    functionName: NativeCrypto_SSL_SESSION_compress_meth
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - throwSSLExceptionStr
    - sk_SSL_COMP_value
    - to_SSL_SESSION
    - to_SSL_CTX
    - JNI_TRACE
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: "NativeCrypto_SSL_SESSION_compress_meth(JNIEnv* env, jclass,\n                                                      jint
      ssl_ctx_address,\n                                                      jint
      ssl_session_address)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL_SESSION
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3334,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3335,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - env
    - ssl_session_address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 3340
      start: 3333
    functionDepth: 1
    functionLinenumber: 3333
    functionLinenumberEnd: 3340
    functionName: NativeCrypto_SSL_SESSION_free
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - JNI_TRACE
    - SSL_SESSION_free
    - to_SSL_SESSION
    linkageType: ''
    returnType: void
    signature: NativeCrypto_SSL_SESSION_free(JNIEnv* env, jclass, jint ssl_session_address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_SSL_SESSION
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3349,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3350,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3358,1
    - Dst: JNIEnv*::NewByteArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3362,1
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3365,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3366,1
    - Dst: i2d_SSL_SESSION
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3371,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3374,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - env
    - ssl_session_address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 3376
      start: 3348
    functionDepth: 1
    functionLinenumber: 3348
    functionLinenumberEnd: 3376
    functionName: NativeCrypto_i2d_SSL_SESSION
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - i2d_SSL_SESSION
    - ScopedByteArrayRW::get
    - JNIEnv*::NewByteArray
    - to_SSL_SESSION
    - JNI_TRACE
    linkageType: ''
    returnType: jbyteArray
    signature: NativeCrypto_i2d_SSL_SESSION(JNIEnv* env, jclass, jint ssl_session_address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3382,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3385,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3386,1
    - Dst: d2i_SSL_SESSION
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3390,1
    - Dst: ScopedByteArrayRO::size
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3390,1
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3392,1
    - Dst: static_cast<jint>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3393,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - env
    - javaBytes
    argTypes:
    - JNIEnv*
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 3394
      start: 3381
    functionDepth: 1
    functionLinenumber: 3381
    functionLinenumberEnd: 3394
    functionName: NativeCrypto_d2i_SSL_SESSION
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - ScopedByteArrayRO::size
    - reinterpret_cast<uintptr_t>
    - static_cast<jint>
    - ScopedByteArrayRO::get
    - d2i_SSL_SESSION
    - JNI_TRACE
    linkageType: ''
    returnType: jint
    signature: NativeCrypto_d2i_SSL_SESSION(JNIEnv* env, jclass, jbyteArray javaBytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNI_TRACE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3458,1
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3460,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp:3463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 3464
      start: 3457
    functionDepth: 0
    functionLinenumber: 3457
    functionLinenumberEnd: 3464
    functionName: register_org_apache_harmony_xnet_provider_jsse_NativeCrypto
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - JNI_TRACE
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_org_apache_harmony_xnet_provider_jsse_NativeCrypto(JNIEnv*
      env)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - out_fd
    - in_fd
    - offset
    - count
    argTypes:
    - int
    - int
    - off_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: sendfile
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: sendfile(int out_fd, int in_fd, off_t* offset, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 105
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 105
    functionName: EsTranslateOpenFlags
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EsTranslateOpenFlags(int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:119,1
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - env
    - longOffset
    argTypes:
    - JNIEnv*
    - jlong
    constantsTouched: []
    func_position:
      end: 129
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 129
    functionName: offsetTooLarge
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
    functionUses: 0
    functionsReached:
    - assert
    - jniThrowIOException
    linkageType: ''
    returnType: bool
    signature: offsetTooLarge(JNIEnv* env, jlong longOffset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - length
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: translateLockLength
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: jlong
    signature: translateLockLength(jlong length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - start
    - length
    argTypes:
    - jlong
    - jlong
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: flockFromStartAndLength
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: struct flock
    signature: flockFromStartAndLength(jlong start, jlong length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: translateLockLength
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:153,1
    - Dst: offsetTooLarge
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:154,1
    - Dst: offsetTooLarge
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:154,1
    - Dst: TEMP_FAILURE_RETRY
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:167,1
    - Dst: fcntl
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - env
    - fd
    - start
    - length
    - typeFlag
    - waitFlag
    argTypes:
    - JNIEnv*
    - jint
    - jlong
    - jlong
    - jint
    - jboolean
    constantsTouched: []
    func_position:
      end: 168
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 168
    functionName: OSFileSystem_lockImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
    functionUses: 0
    functionsReached:
    - translateLockLength
    - fcntl
    - TEMP_FAILURE_RETRY
    - offsetTooLarge
    linkageType: ''
    returnType: jint
    signature: "OSFileSystem_lockImpl(JNIEnv* env, jobject, jint fd,\n        jlong
      start, jlong length, jint typeFlag, jboolean waitFlag)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: translateLockLength
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:171,1
    - Dst: offsetTooLarge
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:172,1
    - Dst: offsetTooLarge
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:172,1
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - env
    - fd
    - start
    - length
    argTypes:
    - JNIEnv*
    - jint
    - jlong
    - jlong
    constantsTouched: []
    func_position:
      end: 183
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 183
    functionName: OSFileSystem_unlockImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
    functionUses: 0
    functionsReached:
    - translateLockLength
    - offsetTooLarge
    - jniThrowIOException
    linkageType: ''
    returnType: void
    signature: OSFileSystem_unlockImpl(JNIEnv* env, jobject, jint fd, jlong start,
      jlong length)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: OSFileSystem_getAllocGranularity
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: jint
    signature: OSFileSystem_getAllocGranularity(JNIEnv*, jobject)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iovec::iovec
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:197,1
    - Dst: UniquePtr::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:198,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:199,1
    - Dst: ScopedIntArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:203,1
    - Dst: ScopedIntArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:207,1
    - Dst: ScopedIntArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:211,1
    - Dst: reinterpret_cast<void*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:215,1
    - Dst: UniquePtr::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - env
    - jBuffers
    - jOffsets
    - jLengths
    - size
    argTypes:
    - JNIEnv*
    - jintArray
    - jintArray
    - jintArray
    - jint
    constantsTouched: []
    func_position:
      end: 219
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 219
    functionName: initIoVec
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
    functionUses: 0
    functionsReached:
    - jniThrowException
    - reinterpret_cast<void*>
    - ScopedIntArrayRO::get
    - UniquePtr::get
    - iovec::iovec
    - UniquePtr::release
    linkageType: ''
    returnType: iovec
    signature: "* initIoVec(JNIEnv* env,\n        jintArray jBuffers, jintArray jOffsets,
      jintArray jLengths, jint size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UniquePtr::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:224,1
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - env
    - fd
    - jBuffers
    - jOffsets
    - jLengths
    - size
    argTypes:
    - JNIEnv*
    - jint
    - jintArray
    - jintArray
    - jintArray
    - jint
    constantsTouched: []
    func_position:
      end: 235
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 235
    functionName: OSFileSystem_readv
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
    functionUses: 0
    functionsReached:
    - jniThrowIOException
    - UniquePtr::get
    linkageType: ''
    returnType: jlong
    signature: "OSFileSystem_readv(JNIEnv* env, jobject, jint fd,\n        jintArray
      jBuffers, jintArray jOffsets, jintArray jLengths, jint size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UniquePtr::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:240,1
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - env
    - fd
    - jBuffers
    - jOffsets
    - jLengths
    - size
    argTypes:
    - JNIEnv*
    - jint
    - jintArray
    - jintArray
    - jintArray
    - jint
    constantsTouched: []
    func_position:
      end: 248
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 248
    functionName: OSFileSystem_writev
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
    functionUses: 0
    functionsReached:
    - jniThrowIOException
    - UniquePtr::get
    linkageType: ''
    returnType: jlong
    signature: "OSFileSystem_writev(JNIEnv* env, jobject, jint fd,\n        jintArray
      jBuffers, jintArray jOffsets, jintArray jLengths, jint size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - env
    - fd
    - sd
    - offset
    - count
    argTypes:
    - JNIEnv*
    - jint
    - jobject
    - jlong
    - jlong
    constantsTouched: []
    func_position:
      end: 268
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 268
    functionName: OSFileSystem_transfer
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
    functionUses: 0
    functionsReached:
    - jniThrowIOException
    linkageType: ''
    returnType: jlong
    signature: "OSFileSystem_transfer(JNIEnv* env, jobject, jint fd, jobject sd,\n
      \       jlong offset, jlong count)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:275,1
    - Dst: TEMP_FAILURE_RETRY
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:276,1
    - Dst: read
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:276,1
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - env
    - fd
    - buf
    - offset
    - byteCount
    argTypes:
    - JNIEnv*
    - jint
    - jint
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 288
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 288
    functionName: OSFileSystem_readDirect
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
    functionUses: 0
    functionsReached:
    - read
    - TEMP_FAILURE_RETRY
    - reinterpret_cast<jbyte*>
    - jniThrowIOException
    linkageType: ''
    returnType: jlong
    signature: "OSFileSystem_readDirect(JNIEnv* env, jobject, jint fd,\n        jint
      buf, jint offset, jint byteCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:293,1
    - Dst: static_cast<jint>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:296,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:296,1
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:296,1
    - Dst: OSFileSystem_readDirect
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - env
    - fd
    - byteArray
    - offset
    - byteCount
    argTypes:
    - JNIEnv*
    - jint
    - jbyteArray
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 298
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 298
    functionName: OSFileSystem_read
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - static_cast<jint>
    - OSFileSystem_readDirect
    - ScopedByteArrayRW::get
    linkageType: ''
    returnType: jlong
    signature: "OSFileSystem_read(JNIEnv* env, jobject, jint fd,\n        jbyteArray
      byteArray, jint offset, jint byteCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:305,1
    - Dst: TEMP_FAILURE_RETRY
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:306,1
    - Dst: write
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:306,1
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - env
    - fd
    - buf
    - offset
    - byteCount
    argTypes:
    - JNIEnv*
    - jint
    - jint
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 311
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 311
    functionName: OSFileSystem_writeDirect
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
    functionUses: 0
    functionsReached:
    - jniThrowIOException
    - TEMP_FAILURE_RETRY
    - reinterpret_cast<jbyte*>
    - write
    linkageType: ''
    returnType: jlong
    signature: "OSFileSystem_writeDirect(JNIEnv* env, jobject, jint fd,\n        jint
      buf, jint offset, jint byteCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:316,1
    - Dst: static_cast<jint>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:319,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:319,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:319,1
    - Dst: OSFileSystem_writeDirect
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - env
    - fd
    - byteArray
    - offset
    - byteCount
    argTypes:
    - JNIEnv*
    - jint
    - jbyteArray
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 321
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 321
    functionName: OSFileSystem_write
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - static_cast<jint>
    - ScopedByteArrayRO::get
    - OSFileSystem_writeDirect
    linkageType: ''
    returnType: jlong
    signature: "OSFileSystem_write(JNIEnv* env, jobject, jint fd,\n        jbyteArray
      byteArray, jint offset, jint byteCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: offsetTooLarge
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:343,1
    - Dst: lseek
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:347,1
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:349,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - env
    - fd
    - offset
    - javaWhence
    argTypes:
    - JNIEnv*
    - jint
    - jlong
    - jint
    constantsTouched: []
    func_position:
      end: 352
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 352
    functionName: OSFileSystem_seek
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
    functionUses: 0
    functionsReached:
    - lseek
    - offsetTooLarge
    - jniThrowIOException
    linkageType: ''
    returnType: jlong
    signature: OSFileSystem_seek(JNIEnv* env, jobject, jint fd, jlong offset, jint
      javaWhence)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOGW
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:356,1
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - env
    - fd
    - metadataToo
    argTypes:
    - JNIEnv*
    - jint
    - jboolean
    constantsTouched: []
    func_position:
      end: 363
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 363
    functionName: OSFileSystem_fsync
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
    functionUses: 0
    functionsReached:
    - LOGW
    - jniThrowIOException
    linkageType: ''
    returnType: void
    signature: OSFileSystem_fsync(JNIEnv* env, jobject, jint fd, jboolean metadataToo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: offsetTooLarge
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:366,1
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - env
    - fd
    - length
    argTypes:
    - JNIEnv*
    - jint
    - jlong
    constantsTouched: []
    func_position:
      end: 375
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 375
    functionName: OSFileSystem_truncate
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
    functionUses: 0
    functionsReached:
    - offsetTooLarge
    - jniThrowIOException
    linkageType: ''
    returnType: jint
    signature: OSFileSystem_truncate(JNIEnv* env, jobject, jint fd, jlong length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EsTranslateOpenFlags
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:405,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:408,1
    - Dst: TEMP_FAILURE_RETRY
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:411,1
    - Dst: open
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:411,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:411,1
    - Dst: ScopedUtfChars::size
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:418,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:418,1
    - Dst: snprintf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:419,1
    - Dst: LocalArray::size
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:419,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:419,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:423,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - env
    - javaPath
    - jflags
    argTypes:
    - JNIEnv*
    - jstring
    - jint
    constantsTouched: []
    func_position:
      end: 426
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 426
    functionName: OSFileSystem_open
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
    functionUses: 0
    functionsReached:
    - open
    - ScopedUtfChars::c_str
    - jniThrowException
    - ScopedUtfChars::size
    - LocalArray::size
    - strlen
    - TEMP_FAILURE_RETRY
    - snprintf
    - EsTranslateOpenFlags
    linkageType: ''
    returnType: jint
    signature: OSFileSystem_open(JNIEnv* env, jobject, jstring javaPath, jint jflags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:473,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - env
    - fileDescriptor
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 477
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 477
    functionName: OSFileSystem_ioctlAvailable
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
    functionUses: 0
    functionsReached:
    - jniThrowIOException
    linkageType: ''
    returnType: jint
    signature: OSFileSystem_ioctlAvailable(JNIEnv*env, jobject, jobject fileDescriptor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEMP_FAILURE_RETRY
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:481,1
    - Dst: fstat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:481,1
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - env
    - fd
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 486
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 486
    functionName: OSFileSystem_length
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
    functionUses: 0
    functionsReached:
    - fstat
    - TEMP_FAILURE_RETRY
    - jniThrowIOException
    linkageType: ''
    returnType: jlong
    signature: OSFileSystem_length(JNIEnv* env, jobject, jint fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:507,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 509
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 509
    functionName: register_org_apache_harmony_luni_platform_OSFileSystem
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_org_apache_harmony_luni_platform_OSFileSystem(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<jclass>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:50,1
    - Dst: JNIEnv*::NewGlobalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:50,1
    - Dst: JNIEnv*::FindClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:50,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:52,1
    - Dst: abort
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - env
    - name
    argTypes:
    - JNIEnv*
    - char*
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: findClass
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp
    functionUses: 0
    functionsReached:
    - abort
    - LOGE
    - JNIEnv*::FindClass
    - reinterpret_cast<jclass>
    - JNIEnv*::NewGlobalRef
    linkageType: ''
    returnType: jclass
    signature: findClass(JNIEnv* env, const char* name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:59,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:60,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:61,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:62,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:63,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:64,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:65,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:66,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:67,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:68,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:69,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:70,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:71,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:72,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:73,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:74,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:75,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:76,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:77,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:78,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:79,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:80,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:81,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:82,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:83,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:84,1
    - Dst: findClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 86
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 86
    functionName: JniConstants::init
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp
    functionUses: 0
    functionsReached:
    - findClass
    linkageType: ''
    returnType: void
    signature: JniConstants::init(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - biDi
    argTypes:
    - UBiDi*
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: BiDiData
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BiDiData(UBiDi* biDi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: ~BiDiData()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp
    functionUses: 0
    functionsReached:
    - ubidi_close
    linkageType: ''
    returnType: void
    signature: ~BiDiData()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<UBiDiLevel*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: embeddingLevels
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<UBiDiLevel*>
    linkageType: ''
    returnType: UBiDiLevel
    signature: '* embeddingLevels()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - newEmbeddingLevels
    argTypes:
    - jbyte*
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: setEmbeddingLevels
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: setEmbeddingLevels(jbyte* newEmbeddingLevels)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: uBiDi
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UBiDi
    signature: '* uBiDi()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<BiDiData*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:60,1
    - Dst: static_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: biDiData
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uintptr_t>
    - reinterpret_cast<BiDiData*>
    linkageType: ''
    returnType: BiDiData
    signature: '* biDiData(jlong ptr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<BiDiData*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:64,1
    - Dst: static_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: uBiDi
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uintptr_t>
    - reinterpret_cast<BiDiData*>
    linkageType: ''
    returnType: UBiDi
    signature: '* uBiDi(jlong ptr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:68,1
    - Dst: ubidi_open
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:68,1
    - Dst: BiDiData::BiDiData
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: NativeBidi_ubidi_open
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp
    functionUses: 0
    functionsReached:
    - ubidi_open
    - BiDiData::BiDiData
    - reinterpret_cast<uintptr_t>
    linkageType: ''
    returnType: jlong
    signature: NativeBidi_ubidi_open(JNIEnv*, jclass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: biDiData
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: NativeBidi_ubidi_close
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp
    functionUses: 0
    functionsReached:
    - biDiData
    linkageType: ''
    returnType: void
    signature: NativeBidi_ubidi_close(JNIEnv*, jclass, jlong ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: biDiData
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:76,1
    - Dst: BiDiData*::setEmbeddingLevels
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:80,1
    - Dst: jbyte::jbyte
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:80,1
    - Dst: JNIEnv*::GetByteArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:81,1
    - Dst: BiDiData*::setEmbeddingLevels
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:83,1
    - Dst: ScopedCharArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:86,1
    - Dst: ubidi_setPara
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:90,1
    - Dst: BiDiData*::uBiDi
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:90,1
    - Dst: ScopedCharArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:90,1
    - Dst: BiDiData*::embeddingLevels
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:90,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - env
    - ptr
    - text
    - length
    - paraLevel
    - newEmbeddingLevels
    argTypes:
    - JNIEnv*
    - jlong
    - jcharArray
    - jint
    - jint
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 92
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 92
    functionName: NativeBidi_ubidi_setPara
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp
    functionUses: 0
    functionsReached:
    - biDiData
    - BiDiData*::setEmbeddingLevels
    - jbyte::jbyte
    - BiDiData*::uBiDi
    - BiDiData*::embeddingLevels
    - ubidi_setPara
    - icu4jni_error
    - JNIEnv*::GetByteArrayRegion
    - ScopedCharArrayRO::get
    linkageType: ''
    returnType: void
    signature: NativeBidi_ubidi_setPara(JNIEnv* env, jclass, jlong ptr, jcharArray
      text, jint length, jint paraLevel, jbyteArray newEmbeddingLevels)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_openSized
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:96,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:97,1
    - Dst: BiDiData::BiDiData
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:100,1
    - Dst: ubidi_setLine
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:101,1
    - Dst: uBiDi
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:101,1
    - Dst: UniquePtr::uBiDi
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:101,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:102,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:103,1
    - Dst: UniquePtr::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - env
    - ptr
    - start
    - limit
    argTypes:
    - JNIEnv*
    - jlong
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 104
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 104
    functionName: NativeBidi_ubidi_setLine
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - ubidi_setLine
    - uBiDi
    - ubidi_openSized
    - BiDiData::BiDiData
    - UniquePtr::uBiDi
    - icu4jni_error
    - UniquePtr::release
    linkageType: ''
    returnType: jlong
    signature: NativeBidi_ubidi_setLine(JNIEnv* env, jclass, jlong ptr, jint start,
      jint limit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_getDirection
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:107,1
    - Dst: uBiDi
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: NativeBidi_ubidi_getDirection
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp
    functionUses: 0
    functionsReached:
    - ubidi_getDirection
    - uBiDi
    linkageType: ''
    returnType: jint
    signature: NativeBidi_ubidi_getDirection(JNIEnv*, jclass, jlong ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_getLength
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:111,1
    - Dst: uBiDi
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: NativeBidi_ubidi_getLength
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp
    functionUses: 0
    functionsReached:
    - ubidi_getLength
    - uBiDi
    linkageType: ''
    returnType: jint
    signature: NativeBidi_ubidi_getLength(JNIEnv*, jclass, jlong ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_getParaLevel
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:115,1
    - Dst: uBiDi
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: NativeBidi_ubidi_getParaLevel
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp
    functionUses: 0
    functionsReached:
    - uBiDi
    - ubidi_getParaLevel
    linkageType: ''
    returnType: jbyte
    signature: NativeBidi_ubidi_getParaLevel(JNIEnv*, jclass, jlong ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ubidi_getLevels
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:120,1
    - Dst: uBiDi
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:120,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:121,1
    - Dst: JNIEnv*::NewByteArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:125,1
    - Dst: JNIEnv*::SetByteArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:126,1
    - Dst: reinterpret_cast<const jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - env
    - ptr
    argTypes:
    - JNIEnv*
    - jlong
    constantsTouched: []
    func_position:
      end: 128
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 128
    functionName: NativeBidi_ubidi_getLevels
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const jbyte*>
    - JNIEnv*::NewByteArray
    - uBiDi
    - JNIEnv*::SetByteArrayRegion
    - ubidi_getLevels
    - icu4jni_error
    linkageType: ''
    returnType: jbyteArray
    signature: NativeBidi_ubidi_getLevels(JNIEnv* env, jclass, jlong ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - ptr
    argTypes:
    - JNIEnv*
    - jlong
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: NativeBidi_ubidi_countRuns
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp
    functionUses: 0
    functionsReached:
    - icu4jni_error
    linkageType: ''
    returnType: jint
    signature: NativeBidi_ubidi_countRuns(JNIEnv* env, jclass, jlong ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uBiDi
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:138,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:141,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:144,1
    - Dst: JNIEnv*::NewObjectArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:145,1
    - Dst: ubidi_getLogicalRun
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:150,1
    - Dst: JNIEnv*::NewObject
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:151,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - env
    - ptr
    argTypes:
    - JNIEnv*
    - jlong
    constantsTouched: []
    func_position:
      end: 156
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 156
    functionName: NativeBidi_ubidi_getRuns
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp
    functionUses: 0
    functionsReached:
    - ubidi_getLogicalRun
    - JNIEnv*::GetMethodID
    - JNIEnv*::SetObjectArrayElement
    - JNIEnv*::NewObject
    - uBiDi
    - JNIEnv*::NewObjectArray
    - icu4jni_error
    linkageType: ''
    returnType: jobjectArray
    signature: NativeBidi_ubidi_getRuns(JNIEnv* env, jclass, jlong ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:160,1
    - Dst: reinterpret_cast<const UBiDiLevel*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:164,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:164,1
    - Dst: int::int
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:166,1
    - Dst: ubidi_reorderVisual
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:167,1
    - Dst: JNIEnv*::NewIntArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:169,1
    - Dst: JNIEnv*::SetIntArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - env
    - javaLevels
    - length
    argTypes:
    - JNIEnv*
    - jbyteArray
    - jint
    constantsTouched: []
    func_position:
      end: 172
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 172
    functionName: NativeBidi_ubidi_reorderVisual
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const UBiDiLevel*>
    - int::int
    - ubidi_reorderVisual
    - JNIEnv*::NewIntArray
    - ScopedByteArrayRO::get
    - JNIEnv*::SetIntArrayRegion
    linkageType: ''
    returnType: jintArray
    signature: NativeBidi_ubidi_reorderVisual(JNIEnv* env, jclass, jbyteArray javaLevels,
      jint length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:188,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: register_org_apache_harmony_text_NativeBidi
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_org_apache_harmony_text_NativeBidi(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:106,1
    - Dst: reinterpret_cast<sockaddr_in*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:106,1
    - Dst: ntohs
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:108,1
    - Dst: reinterpret_cast<sockaddr_in6*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sockaddr_storage*
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: getSocketAddressPort
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<sockaddr_in*>
    - reinterpret_cast<sockaddr_in6*>
    - ntohs
    linkageType: ''
    returnType: int
    signature: getSocketAddressPort(sockaddr_storage* ss)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - socket
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 129
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 129
    functionName: getSocketAddressFamily
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: getSocketAddressFamily(int socket)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const sockaddr*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:141,1
    - Dst: reinterpret_cast<sockaddr_in*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:143,1
    - Dst: reinterpret_cast<const sockaddr_in6*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:144,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:145,1
    - Dst: IN6_IS_ADDR_V4COMPAT
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:148,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:151,1
    - Dst: reinterpret_cast<const sockaddr*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:152,1
    - Dst: IN6_IS_ADDR_LOOPBACK
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:153,1
    - Dst: htonl
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:155,1
    - Dst: reinterpret_cast<const sockaddr*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:156,1
    - Dst: reinterpret_cast<const sockaddr*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:160,1
    - Dst: reinterpret_cast<const sockaddr*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:166,1
    - Dst: reinterpret_cast<const sockaddr_in*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:170,1
    - Dst: reinterpret_cast<sockaddr_in6*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:171,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:172,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:180,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:182,1
    - Dst: reinterpret_cast<const sockaddr*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:183,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 3
    argNames:
    - fd
    - ' ss'
    - mapUnspecified
    argTypes:
    - int
    - sockaddr_storage
    - bool
    constantsTouched: []
    func_position:
      end: 186
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 186
    functionName: CompatibleSocketAddress::CompatibleSocketAddress
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - IN6_IS_ADDR_V4COMPAT
    - reinterpret_cast<sockaddr_in*>
    - reinterpret_cast<const sockaddr_in*>
    - reinterpret_cast<const sockaddr*>
    - reinterpret_cast<const sockaddr_in6*>
    - memset
    - htonl
    - memcpy
    - reinterpret_cast<sockaddr_in6*>
    - IN6_IS_ADDR_LOOPBACK
    linkageType: ''
    returnType: void
    signature: CompatibleSocketAddress(int fd, const sockaddr_storage& ss, bool mapUnspecified)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: CompatibleSocketAddress::get
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sockaddr
    signature: '* get() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:203,1
    - Dst: reinterpret_cast<jbyteArray>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:207,1
    - Dst: JNIEnv*::GetObjectField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:207,1
    - Dst: byteArrayToSocketAddress
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - env
    - inetAddress
    - port
    - ss
    argTypes:
    - JNIEnv*
    - jobject
    - int
    - sockaddr_storage*
    constantsTouched: []
    func_position:
      end: 211
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 211
    functionName: inetAddressToSocketAddress
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - jniThrowNullPointerException
    - reinterpret_cast<jbyteArray>
    - byteArrayToSocketAddress
    - JNIEnv*::GetObjectField
    linkageType: ''
    returnType: bool
    signature: "inetAddressToSocketAddress(JNIEnv* env, jobject inetAddress,\n        int
      port, sockaddr_storage* ss)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ms
    argTypes:
    - long
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: toTimeval
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: timeval
    signature: toTimeval(long ms)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' tv'
    argTypes:
    - timeval
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: toMs
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: toMs(const timeval& tv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:241,1
    - Dst: toMs
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 243
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 243
    functionName: time_msec_clock
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - gettimeofday
    - toMs
    linkageType: ''
    returnType: int
    signature: time_msec_clock()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 260
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 260
    functionName: ConnectHelper::ConnectHelper
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ConnectHelper(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inetAddressToSocketAddress
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:264,1
    - Dst: get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:269,1
    - Dst: setBlocking
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:270,1
    - Dst: get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:270,1
    - Dst: connect
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:271,1
    - Dst: get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:271,1
    - Dst: CompatibleSocketAddress::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:271,1
    - Dst: isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:272,1
    - Dst: ConnectHelper::didFail
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:276,1
    - Dst: get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:276,1
    - Dst: ConnectHelper::didConnect
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:281,1
    - Dst: get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:281,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - ' fd'
    - inetAddr
    - port
    argTypes:
    - NetFd
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 283
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 283
    functionName: ConnectHelper::start
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - CompatibleSocketAddress::get
    - get
    - ConnectHelper::didFail
    - connect
    - inetAddressToSocketAddress
    - setBlocking
    - ConnectHelper::didConnect
    - isClosed
    linkageType: ''
    returnType: int
    signature: start(NetFd& fd, jobject inetAddr, jint port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FD_ZERO
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:293,1
    - Dst: FD_ZERO
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:294,1
    - Dst: FD_SET
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:295,1
    - Dst: FD_SET
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:296,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:311,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:311,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:316,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:316,1
    - Dst: getsockopt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:320,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - fd
    - timeout
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 328
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 328
    functionName: ConnectHelper::isConnected
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - FD_ZERO
    - getsockopt
    - FD_SET
    - FD_ISSET
    linkageType: ''
    returnType: int
    signature: isConnected(int fd, int timeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setBlocking
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 334
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 334
    functionName: ConnectHelper::didConnect
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 1
    functionsReached:
    - setBlocking
    linkageType: ''
    returnType: void
    signature: didConnect(int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setBlocking
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:338,1
    - Dst: jniThrowConnectException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:343,1
    - Dst: jniThrowSecurityException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:345,1
    - Dst: jniThrowSocketTimeoutException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:347,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:349,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - fd
    - result
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 351
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 351
    functionName: ConnectHelper::didFail
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 1
    functionsReached:
    - jniThrowSecurityException
    - setBlocking
    - jniThrowSocketException
    - jniThrowSocketTimeoutException
    - jniThrowConnectException
    linkageType: ''
    returnType: void
    signature: didFail(int fd, int result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:362,1
    - Dst: JNIEnv*::GetObjectField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:364,1
    - Dst: inetAddressToSocketAddress
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:365,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:370,1
    - Dst: JNIEnv*::GetIntField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:371,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - env
    - fd
    - javaGroupRequest
    - join
    argTypes:
    - JNIEnv*
    - int
    - jobject
    - bool
    constantsTouched: []
    func_position:
      end: 380
      start: 358
    functionDepth: 2
    functionLinenumber: 358
    functionLinenumberEnd: 380
    functionName: mcastJoinLeaveGroup
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetIntField
    - JNIEnv*::GetFieldID
    - inetAddressToSocketAddress
    - jniThrowSocketException
    - JNIEnv*::GetObjectField
    linkageType: ''
    returnType: void
    signature: mcastJoinLeaveGroup(JNIEnv* env, int fd, jobject javaGroupRequest,
      bool join)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:384,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 409
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 409
    functionName: initCachedFields
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetFieldID
    - memset
    linkageType: ''
    returnType: bool
    signature: initCachedFields(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:413,1
    - Dst: socket
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:422,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:425,1
    - Dst: jniSetFileDescriptorOfFD
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:428,1
    - Dst: getSocketAddressFamily
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:437,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:439,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - env
    - fileDescriptor
    - stream
    argTypes:
    - JNIEnv*
    - jobject
    - jboolean
    constantsTouched: []
    func_position:
      end: 442
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 442
    functionName: OSNetworkSystem_socket
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 2
    functionsReached:
    - jniThrowNullPointerException
    - jniSetFileDescriptorOfFD
    - jniThrowSocketException
    - socket
    - setsockopt
    - getSocketAddressFamily
    linkageType: ''
    returnType: void
    signature: OSNetworkSystem_socket(JNIEnv* env, jobject, jobject fileDescriptor,
      jboolean stream)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetFd::isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:451,1
    - Dst: reinterpret_cast<jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:455,1
    - Dst: static_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:455,1
    - Dst: NET_FAILURE_RETRY
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:461,1
    - Dst: write
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:461,1
    - Dst: JNIEnv*::ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:463,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:473,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - env
    - fileDescriptor
    - address
    - offset
    - count
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 478
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 478
    functionName: OSNetworkSystem_writeDirect
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uintptr_t>
    - write
    - reinterpret_cast<jbyte*>
    - NetFd::isClosed
    - JNIEnv*::ExceptionOccurred
    - NET_FAILURE_RETRY
    - jniThrowSocketException
    linkageType: ''
    returnType: jint
    signature: "OSNetworkSystem_writeDirect(JNIEnv* env, jobject,\n        jobject
      fileDescriptor, jint address, jint offset, jint count)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:483,1
    - Dst: static_cast<jint>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:486,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:486,1
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - env
    - fileDescriptor
    - byteArray
    - offset
    - count
    argTypes:
    - JNIEnv*
    - jobject
    - jbyteArray
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 489
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 489
    functionName: OSNetworkSystem_write
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - static_cast<jint>
    - ScopedByteArrayRW::get
    linkageType: ''
    returnType: jint
    signature: "OSNetworkSystem_write(JNIEnv* env, jobject,\n        jobject fileDescriptor,
      jbyteArray byteArray, jint offset, jint count)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetFd::isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:493,1
    - Dst: ConnectHelper::start
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - env
    - fileDescriptor
    - inetAddr
    - port
    argTypes:
    - JNIEnv*
    - jobject
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 499
      start: 491
    functionDepth: 3
    functionLinenumber: 491
    functionLinenumberEnd: 499
    functionName: OSNetworkSystem_connectNonBlocking
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - NetFd::isClosed
    - ConnectHelper::start
    linkageType: ''
    returnType: jboolean
    signature: OSNetworkSystem_connectNonBlocking(JNIEnv* env, jobject, jobject fileDescriptor,
      jobject inetAddr, jint port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetFd::isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:503,1
    - Dst: ConnectHelper::didConnect
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:510,1
    - Dst: NetFd::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:510,1
    - Dst: ConnectHelper::didFail
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:516,1
    - Dst: NetFd::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - env
    - fileDescriptor
    - timeout
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 519
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 519
    functionName: OSNetworkSystem_isConnected
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - NetFd::isClosed
    - ConnectHelper::didFail
    - ConnectHelper::didConnect
    - NetFd::get
    linkageType: ''
    returnType: jboolean
    signature: OSNetworkSystem_isConnected(JNIEnv* env, jobject, jobject fileDescriptor,
      jint timeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time_msec_clock
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:529,1
    - Dst: NetFd::isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:533,1
    - Dst: ConnectHelper::isConnected
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:545,1
    - Dst: NetFd::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:545,1
    - Dst: NetFd::isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:546,1
    - Dst: ConnectHelper::didConnect
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:550,1
    - Dst: NetFd::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:550,1
    - Dst: ConnectHelper::didFail
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:553,1
    - Dst: NetFd::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:553,1
    - Dst: time_msec_clock
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:559,1
    - Dst: ConnectHelper::didFail
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:561,1
    - Dst: NetFd::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:561,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - env
    - fileDescriptor
    - inetAddr
    - port
    - timeout
    argTypes:
    - JNIEnv*
    - jobject
    - jobject
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 568
      start: 522
    functionDepth: 2
    functionLinenumber: 522
    functionLinenumberEnd: 568
    functionName: OSNetworkSystem_connect
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - NetFd::isClosed
    - time_msec_clock
    - ConnectHelper::didFail
    - ConnectHelper::didConnect
    - NetFd::get
    - ConnectHelper::isConnected
    linkageType: ''
    returnType: void
    signature: "OSNetworkSystem_connect(JNIEnv* env, jobject, jobject fileDescriptor,\n
      \       jobject inetAddr, jint port, jint timeout)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inetAddressToSocketAddress
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:573,1
    - Dst: NetFd::isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:578,1
    - Dst: NetFd::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:582,1
    - Dst: jniThrowBindException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:585,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - env
    - fileDescriptor
    - inetAddress
    - port
    argTypes:
    - JNIEnv*
    - jobject
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 587
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 587
    functionName: OSNetworkSystem_bind
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - NetFd::isClosed
    - inetAddressToSocketAddress
    - jniThrowBindException
    - NetFd::get
    linkageType: ''
    returnType: void
    signature: "OSNetworkSystem_bind(JNIEnv* env, jobject, jobject fileDescriptor,\n
      \       jobject inetAddress, jint port)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetFd::isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:591,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - env
    - fileDescriptor
    - backlog
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 599
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 599
    functionName: OSNetworkSystem_listen
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - NetFd::isClosed
    - jniThrowSocketException
    linkageType: ''
    returnType: void
    signature: OSNetworkSystem_listen(JNIEnv* env, jobject, jobject fileDescriptor,
      jint backlog)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:605,1
    - Dst: NetFd::isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:610,1
    - Dst: reinterpret_cast<sockaddr*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:616,1
    - Dst: NET_FAILURE_RETRY
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:622,1
    - Dst: accept
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:622,1
    - Dst: JNIEnv*::ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:624,1
    - Dst: jniThrowSocketTimeoutException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:629,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:631,1
    - Dst: toTimeval
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:637,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:640,1
    - Dst: strerror
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:640,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:641,1
    - Dst: socketAddressToInetAddress
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:651,1
    - Dst: close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:653,1
    - Dst: JNIEnv*::SetObjectField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:657,1
    - Dst: JNIEnv*::SetIntField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:658,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:661,1
    - Dst: close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:664,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:665,1
    - Dst: JNIEnv*::SetIntField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:669,1
    - Dst: jniSetFileDescriptorOfFD
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:672,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 4
    argNames:
    - env
    - serverFileDescriptor
    - newSocket
    - clientFileDescriptor
    argTypes:
    - JNIEnv*
    - jobject
    - jobject
    - jobject
    constantsTouched: []
    func_position:
      end: 673
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 673
    functionName: OSNetworkSystem_accept
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - jniThrowNullPointerException
    - socketAddressToInetAddress
    - LOGE
    - reinterpret_cast<sockaddr*>
    - toTimeval
    - NetFd::isClosed
    - jniSetFileDescriptorOfFD
    - memset
    - JNIEnv*::ExceptionOccurred
    - NET_FAILURE_RETRY
    - JNIEnv*::SetObjectField
    - close
    - JNIEnv*::SetIntField
    - jniThrowSocketException
    - jniThrowSocketTimeoutException
    - strerror
    - accept
    linkageType: ''
    returnType: void
    signature: "OSNetworkSystem_accept(JNIEnv* env, jobject, jobject serverFileDescriptor,\n
      \       jobject newSocket, jobject clientFileDescriptor)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetFd::isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:678,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - env
    - fileDescriptor
    - value
    argTypes:
    - JNIEnv*
    - jobject
    - jbyte
    constantsTouched: []
    func_position:
      end: 686
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 686
    functionName: OSNetworkSystem_sendUrgentData
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - NetFd::isClosed
    - jniThrowSocketException
    linkageType: ''
    returnType: void
    signature: "OSNetworkSystem_sendUrgentData(JNIEnv* env, jobject,\n        jobject
      fileDescriptor, jbyte value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetFd::isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:690,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:697,1
    - Dst: reinterpret_cast<const sockaddr*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:699,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:702,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - env
    - fileDescriptor
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 704
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 704
    functionName: OSNetworkSystem_disconnectDatagram
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - NetFd::isClosed
    - reinterpret_cast<const sockaddr*>
    - jniThrowSocketException
    - memset
    linkageType: ''
    returnType: void
    signature: OSNetworkSystem_disconnectDatagram(JNIEnv* env, jobject, jobject fileDescriptor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::SetObjectField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - env
    - sender
    - address
    argTypes:
    - JNIEnv*
    - jobject
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 709
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 709
    functionName: OSNetworkSystem_setInetAddress
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::SetObjectField
    linkageType: ''
    returnType: void
    signature: "OSNetworkSystem_setInetAddress(JNIEnv* env, jobject,\n        jobject
      sender, jbyteArray address)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetFd::isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:715,1
    - Dst: reinterpret_cast<jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:719,1
    - Dst: static_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:719,1
    - Dst: NET_FAILURE_RETRY
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:724,1
    - Dst: read
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:724,1
    - Dst: JNIEnv*::ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:726,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:737,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - env
    - fileDescriptor
    - address
    - count
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 743
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 743
    functionName: OSNetworkSystem_readDirect
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uintptr_t>
    - reinterpret_cast<jbyte*>
    - NetFd::isClosed
    - JNIEnv*::ExceptionOccurred
    - NET_FAILURE_RETRY
    - jniThrowSocketException
    - read
    linkageType: ''
    returnType: jint
    signature: "OSNetworkSystem_readDirect(JNIEnv* env, jobject, jobject fileDescriptor,\n
      \       jint address, jint count)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:748,1
    - Dst: static_cast<jint>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:751,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:751,1
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:751,1
    - Dst: OSNetworkSystem_readDirect
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:752,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - env
    - fileDescriptor
    - byteArray
    - offset
    - count
    argTypes:
    - JNIEnv*
    - jobject
    - jbyteArray
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 753
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 753
    functionName: OSNetworkSystem_read
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - static_cast<jint>
    - OSNetworkSystem_readDirect
    - ScopedByteArrayRW::get
    linkageType: ''
    returnType: jint
    signature: "OSNetworkSystem_read(JNIEnv* env, jclass, jobject fileDescriptor,\n
      \       jbyteArray byteArray, jint offset, jint count)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetFd::isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:759,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:766,1
    - Dst: reinterpret_cast<sockaddr*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:768,1
    - Dst: NET_FAILURE_RETRY
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:775,1
    - Dst: recvfrom
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:775,1
    - Dst: JNIEnv*::ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:777,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:782,1
    - Dst: jniThrowSocketTimeoutException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:784,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:786,1
    - Dst: JNIEnv*::SetIntField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:792,1
    - Dst: socketAddressToByteArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:794,1
    - Dst: byteArrayToInetAddress
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:799,1
    - Dst: JNIEnv*::SetObjectField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:803,1
    - Dst: JNIEnv*::SetIntField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:804,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 8
    argNames:
    - env
    - fileDescriptor
    - packet
    - address
    - offset
    - length
    - peek
    - connected
    argTypes:
    - JNIEnv*
    - jobject
    - jobject
    - jint
    - jint
    - jint
    - jboolean
    - jboolean
    constantsTouched: []
    func_position:
      end: 808
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 808
    functionName: OSNetworkSystem_recvDirect
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - jniThrowException
    - reinterpret_cast<sockaddr*>
    - NetFd::isClosed
    - byteArrayToInetAddress
    - memset
    - JNIEnv*::ExceptionOccurred
    - NET_FAILURE_RETRY
    - socketAddressToByteArray
    - JNIEnv*::SetObjectField
    - recvfrom
    - jniThrowSocketException
    - jniThrowSocketTimeoutException
    - JNIEnv*::SetIntField
    linkageType: ''
    returnType: jint
    signature: "OSNetworkSystem_recvDirect(JNIEnv* env, jobject, jobject fileDescriptor,
      jobject packet,\n        jint address, jint offset, jint length, jboolean peek,
      jboolean connected)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:813,1
    - Dst: OSNetworkSystem_recvDirect
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 8
    argNames:
    - env
    - fd
    - packet
    - javaBytes
    - offset
    - length
    - peek
    - connected
    argTypes:
    - JNIEnv*
    - jobject
    - jobject
    - jbyteArray
    - jint
    - jint
    - jboolean
    - jboolean
    constantsTouched: []
    func_position:
      end: 819
      start: 810
    functionDepth: 2
    functionLinenumber: 810
    functionLinenumberEnd: 819
    functionName: OSNetworkSystem_recv
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - OSNetworkSystem_recvDirect
    - ScopedByteArrayRW::get
    linkageType: ''
    returnType: jint
    signature: "OSNetworkSystem_recv(JNIEnv* env, jobject, jobject fd, jobject packet,\n
      \       jbyteArray javaBytes, jint offset, jint length, jboolean peek, jboolean
      connected)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetFd::isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:830,1
    - Dst: inetAddressToSocketAddress
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:835,1
    - Dst: reinterpret_cast<sockaddr*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:841,1
    - Dst: NET_FAILURE_RETRY
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:848,1
    - Dst: sendto
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:848,1
    - Dst: JNIEnv*::ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:850,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:857,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 7
    argNames:
    - env
    - fileDescriptor
    - address
    - offset
    - length
    - port
    - inetAddress
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    - jint
    - jint
    - jint
    - jobject
    constantsTouched: []
    func_position:
      end: 861
      start: 828
    functionDepth: 2
    functionLinenumber: 828
    functionLinenumberEnd: 861
    functionName: OSNetworkSystem_sendDirect
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<sockaddr*>
    - NetFd::isClosed
    - JNIEnv*::ExceptionOccurred
    - NET_FAILURE_RETRY
    - sendto
    - inetAddressToSocketAddress
    - jniThrowSocketException
    linkageType: ''
    returnType: jint
    signature: OSNetworkSystem_sendDirect(JNIEnv* env, jobject, jobject fileDescriptor,
      jint address, jint offset, jint length, jint port, jobject inetAddress)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:867,1
    - Dst: OSNetworkSystem_sendDirect
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:870,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:871,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - env
    - fd
    - data
    - offset
    - length
    - port
    - inetAddress
    argTypes:
    - JNIEnv*
    - jobject
    - jbyteArray
    - jint
    - jint
    - jint
    - jobject
    constantsTouched: []
    func_position:
      end: 872
      start: 863
    functionDepth: 3
    functionLinenumber: 863
    functionLinenumberEnd: 872
    functionName: OSNetworkSystem_send
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - OSNetworkSystem_sendDirect
    - reinterpret_cast<uintptr_t>
    - ScopedByteArrayRO::get
    linkageType: ''
    returnType: jint
    signature: "OSNetworkSystem_send(JNIEnv* env, jobject, jobject fd,\n        jbyteArray
      data, jint offset, jint length,\n        jint port, jobject inetAddress)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 883
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 883
    functionName: isValidFd
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: isValidFd(int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:887,1
    - Dst: isValidFd
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:893,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:894,1
    - Dst: FD_SET
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:898,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - env
    - fdArray
    - count
    - fdSet
    - maxFd
    argTypes:
    - JNIEnv*
    - jobjectArray
    - jint
    - fd_set*
    - int*
    constantsTouched: []
    func_position:
      end: 905
      start: 885
    functionDepth: 1
    functionLinenumber: 885
    functionLinenumberEnd: 905
    functionName: initFdSet
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetObjectArrayElement
    - FD_SET
    - isValidFd
    - LOGE
    linkageType: ''
    returnType: bool
    signature: initFdSet(JNIEnv* env, jobjectArray fdArray, jint count, fd_set* fdSet,
      int* maxFd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:915,1
    - Dst: isValidFd
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:921,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:921,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 7
    argNames:
    - env
    - fdArray
    - count
    - ' fdSet'
    - flagArray
    - offset
    - op
    argTypes:
    - JNIEnv*
    - jobjectArray
    - jint
    - fd_set
    - jint*
    - size_t
    - jint
    constantsTouched: []
    func_position:
      end: 928
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 928
    functionName: translateFdSet
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetObjectArrayElement
    - isValidFd
    - FD_ISSET
    linkageType: ''
    returnType: bool
    signature: translateFdSet(JNIEnv* env, jobjectArray fdArray, jint count, fd_set&
      fdSet, jint* flagArray, size_t offset, jint op)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FD_ZERO
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:938,1
    - Dst: FD_ZERO
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:939,1
    - Dst: toTimeval
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:950,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:964,1
    - Dst: ScopedIntArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:971,1
    - Dst: translateFdSet
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:974,1
    - Dst: ScopedIntArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:974,1
    - Dst: translateFdSet
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:975,1
    - Dst: ScopedIntArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:975,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 7
    argNames:
    - env
    - readFDArray
    - writeFDArray
    - countReadC
    - countWriteC
    - outFlags
    - timeoutMs
    argTypes:
    - JNIEnv*
    - jobjectArray
    - jobjectArray
    - jint
    - jint
    - jintArray
    - jlong
    constantsTouched: []
    func_position:
      end: 976
      start: 930
    functionDepth: 2
    functionLinenumber: 930
    functionLinenumberEnd: 976
    functionName: OSNetworkSystem_selectImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - ScopedIntArrayRW::get
    - toTimeval
    - translateFdSet
    - jniThrowSocketException
    - FD_ZERO
    linkageType: ''
    returnType: jboolean
    signature: "OSNetworkSystem_selectImpl(JNIEnv* env, jclass,\n        jobjectArray
      readFDArray, jobjectArray writeFDArray, jint countReadC,\n        jint countWriteC,
      jintArray outFlags, jlong timeoutMs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetFd::isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:981,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:987,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:993,1
    - Dst: strerror
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:993,1
    - Dst: socketAddressToInetAddress
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:996,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - env
    - fileDescriptor
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 997
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 997
    functionName: OSNetworkSystem_getSocketLocalAddress
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - LOGE
    - NetFd::isClosed
    - memset
    - strerror
    - socketAddressToInetAddress
    linkageType: ''
    returnType: jobject
    signature: "OSNetworkSystem_getSocketLocalAddress(JNIEnv* env,\n        jobject,
      jobject fileDescriptor)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetFd::isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1002,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1008,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1014,1
    - Dst: strerror
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1014,1
    - Dst: getSocketAddressPort
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1017,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - env
    - fileDescriptor
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 1018
      start: 999
    functionDepth: 1
    functionLinenumber: 999
    functionLinenumberEnd: 1018
    functionName: OSNetworkSystem_getSocketLocalPort
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - getSocketAddressPort
    - LOGE
    - NetFd::isClosed
    - memset
    - strerror
    linkageType: ''
    returnType: jint
    signature: "OSNetworkSystem_getSocketLocalPort(JNIEnv* env, jobject,\n        jobject
      fileDescriptor)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1025,1
    - Dst: get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1026,1
    - Dst: strerror
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1026,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1027,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - env
    - ' fd'
    - level
    - option
    - value
    argTypes:
    - JNIEnv*
    - NetFd
    - int
    - int
    - T*
    constantsTouched: []
    func_position:
      end: 1031
      start: 1021
    functionDepth: 1
    functionLinenumber: 1021
    functionLinenumberEnd: 1031
    functionName: getSocketOption
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - strerror
    - get
    - jniThrowSocketException
    - LOGE
    linkageType: ''
    returnType: bool
    signature: getSocketOption(JNIEnv* env, const NetFd& fd, int level, int option,
      T* value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getSocketOption
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1035,1
    - Dst: booleanValueOf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - env
    - ' fd'
    - level
    - option
    argTypes:
    - JNIEnv*
    - NetFd
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1036
      start: 1033
    functionDepth: 2
    functionLinenumber: 1033
    functionLinenumberEnd: 1036
    functionName: getSocketOption_Boolean
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - getSocketOption
    - booleanValueOf
    linkageType: ''
    returnType: jobject
    signature: getSocketOption_Boolean(JNIEnv* env, const NetFd& fd, int level, int
      option)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getSocketOption
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1040,1
    - Dst: integerValueOf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - env
    - ' fd'
    - level
    - option
    argTypes:
    - JNIEnv*
    - NetFd
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1041
      start: 1038
    functionDepth: 2
    functionLinenumber: 1038
    functionLinenumberEnd: 1041
    functionName: getSocketOption_Integer
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - getSocketOption
    - integerValueOf
    linkageType: ''
    returnType: jobject
    signature: getSocketOption_Integer(JNIEnv* env, const NetFd& fd, int level, int
      option)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetFd::isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1045,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1051,1
    - Dst: getSocketOption_Boolean
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1057,1
    - Dst: getSocketOption_Integer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1059,1
    - Dst: getSocketOption_Integer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1061,1
    - Dst: getSocketOption_Boolean
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1063,1
    - Dst: getSocketOption_Boolean
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1065,1
    - Dst: getSocketOption_Boolean
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1067,1
    - Dst: getSocketOption_Boolean
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1069,1
    - Dst: getSocketOption_Integer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1072,1
    - Dst: getSocketOption_Integer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1074,1
    - Dst: booleanValueOf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1083,1
    - Dst: integerValueOf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1085,1
    - Dst: integerValueOf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1092,1
    - Dst: toMs
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1092,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1100,1
    - Dst: reinterpret_cast<sockaddr_in*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1102,1
    - Dst: getSocketOption
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1103,1
    - Dst: socketAddressToInetAddress
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1106,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1113,1
    - Dst: getSocketOption_Integer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1115,1
    - Dst: booleanValueOf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1122,1
    - Dst: getSocketOption_Boolean
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1124,1
    - Dst: integerValueOf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1132,1
    - Dst: getSocketOption_Integer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1134,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1141,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1145,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 78
    argCount: 3
    argNames:
    - env
    - fileDescriptor
    - option
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 1148
      start: 1043
    functionDepth: 3
    functionLinenumber: 1043
    functionLinenumberEnd: 1148
    functionName: OSNetworkSystem_getSocketOption
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<sockaddr_in*>
    - jniThrowException
    - getSocketOption
    - NetFd::isClosed
    - memset
    - getSocketOption_Integer
    - booleanValueOf
    - jniThrowSocketException
    - integerValueOf
    - getSocketOption_Boolean
    - toMs
    - socketAddressToInetAddress
    linkageType: ''
    returnType: jobject
    signature: OSNetworkSystem_getSocketOption(JNIEnv* env, jobject, jobject fileDescriptor,
      jint option)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1154,1
    - Dst: get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1155,1
    - Dst: strerror
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1155,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - env
    - ' fd'
    - level
    - option
    - value
    argTypes:
    - JNIEnv*
    - NetFd
    - int
    - int
    - T*
    constantsTouched: []
    func_position:
      end: 1158
      start: 1151
    functionDepth: 1
    functionLinenumber: 1151
    functionLinenumberEnd: 1158
    functionName: setSocketOption
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - strerror
    - get
    - jniThrowSocketException
    - LOGE
    linkageType: ''
    returnType: void
    signature: setSocketOption(JNIEnv* env, const NetFd& fd, int level, int option,
      T* value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetFd::isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1162,1
    - Dst: JNIEnv*::IsInstanceOf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1168,1
    - Dst: JNIEnv*::GetIntField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1169,1
    - Dst: JNIEnv*::IsInstanceOf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1170,1
    - Dst: JNIEnv*::GetBooleanField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1171,1
    - Dst: JNIEnv*::IsInstanceOf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1173,1
    - Dst: JNIEnv*::IsInstanceOf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1175,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1178,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1184,1
    - Dst: setSocketOption
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1193,1
    - Dst: setSocketOption
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1195,1
    - Dst: setSocketOption
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1199,1
    - Dst: setSocketOption
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1202,1
    - Dst: setSocketOption
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1209,1
    - Dst: setSocketOption
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1213,1
    - Dst: setSocketOption
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1216,1
    - Dst: setSocketOption
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1219,1
    - Dst: setSocketOption
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1222,1
    - Dst: setSocketOption
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1227,1
    - Dst: setSocketOption
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1231,1
    - Dst: mcastJoinLeaveGroup
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1235,1
    - Dst: NetFd::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1235,1
    - Dst: mcastJoinLeaveGroup
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1238,1
    - Dst: NetFd::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1238,1
    - Dst: JNIEnv*::IsInstanceOf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1243,1
    - Dst: inetAddressToSocketAddress
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1244,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1250,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1254,1
    - Dst: reinterpret_cast<sockaddr_in*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1255,1
    - Dst: setSocketOption
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1256,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1265,1
    - Dst: setSocketOption
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1267,1
    - Dst: setSocketOption
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1270,1
    - Dst: setSocketOption
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1278,1
    - Dst: setSocketOption
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1280,1
    - Dst: setSocketOption
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1288,1
    - Dst: setSocketOption
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1290,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1301,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1305,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 113
    argCount: 4
    argNames:
    - env
    - fileDescriptor
    - option
    - optVal
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    - jobject
    constantsTouched: []
    func_position:
      end: 1307
      start: 1160
    functionDepth: 3
    functionLinenumber: 1160
    functionLinenumberEnd: 1307
    functionName: OSNetworkSystem_setSocketOption
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetIntField
    - reinterpret_cast<sockaddr_in*>
    - NetFd::get
    - jniThrowException
    - NetFd::isClosed
    - JNIEnv*::IsInstanceOf
    - mcastJoinLeaveGroup
    - memset
    - inetAddressToSocketAddress
    - jniThrowSocketException
    - JNIEnv*::GetBooleanField
    - setSocketOption
    linkageType: ''
    returnType: void
    signature: OSNetworkSystem_setSocketOption(JNIEnv* env, jobject, jobject fileDescriptor,
      jint option, jobject optVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetFd::isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1311,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - env
    - fileDescriptor
    - how
    argTypes:
    - JNIEnv*
    - jobject
    - int
    constantsTouched: []
    func_position:
      end: 1318
      start: 1309
    functionDepth: 1
    functionLinenumber: 1309
    functionLinenumberEnd: 1318
    functionName: doShutdown
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - NetFd::isClosed
    - jniThrowSocketException
    linkageType: ''
    returnType: void
    signature: doShutdown(JNIEnv* env, jobject fileDescriptor, int how)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doShutdown
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - fd
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 1322
      start: 1320
    functionDepth: 2
    functionLinenumber: 1320
    functionLinenumberEnd: 1322
    functionName: OSNetworkSystem_shutdownInput
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - doShutdown
    linkageType: ''
    returnType: void
    signature: OSNetworkSystem_shutdownInput(JNIEnv* env, jobject, jobject fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doShutdown
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - fd
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 1326
      start: 1324
    functionDepth: 2
    functionLinenumber: 1324
    functionLinenumberEnd: 1326
    functionName: OSNetworkSystem_shutdownOutput
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - doShutdown
    linkageType: ''
    returnType: void
    signature: OSNetworkSystem_shutdownOutput(JNIEnv* env, jobject, jobject fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NetFd::isClosed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1330,1
    - Dst: jniSetFileDescriptorOfFD
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1335,1
    - Dst: AsynchronousSocketCloseMonitor::signalBlockedThreads
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1336,1
    - Dst: close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - env
    - fileDescriptor
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 1338
      start: 1328
    functionDepth: 1
    functionLinenumber: 1328
    functionLinenumberEnd: 1338
    functionName: OSNetworkSystem_close
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - AsynchronousSocketCloseMonitor::signalBlockedThreads
    - NetFd::isClosed
    - close
    - jniSetFileDescriptorOfFD
    linkageType: ''
    returnType: void
    signature: OSNetworkSystem_close(JNIEnv* env, jobject, jobject fileDescriptor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsynchronousSocketCloseMonitor::init
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1370,1
    - Dst: initCachedFields
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1371,1
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1371,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp:1372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 1373
      start: 1369
    functionDepth: 1
    functionLinenumber: 1369
    functionLinenumberEnd: 1373
    functionName: register_org_apache_harmony_luni_platform_OSNetworkSystem
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - initCachedFields
    - NELEM
    - AsynchronousSocketCloseMonitor::init
    linkageType: ''
    returnType: int
    signature: register_org_apache_harmony_luni_platform_OSNetworkSystem(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectStreamClass.cpp:24,1
    - Dst: JNIEnv*::GetObjectClass
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectStreamClass.cpp:28,1
    - Dst: JNIEnv*::CallNonvirtualObjectMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectStreamClass.cpp:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - env
    - c
    - object
    argTypes:
    - JNIEnv*
    - jclass
    - jobject
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: getSignature
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectStreamClass.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetObjectClass
    - JNIEnv*::GetMethodID
    - JNIEnv*::CallNonvirtualObjectMethod
    linkageType: ''
    returnType: jobject
    signature: getSignature(JNIEnv* env, jclass c, jobject object)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getSignature
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectStreamClass.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - field
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: ObjectStreamClass_getFieldSignature
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectStreamClass.cpp
    functionUses: 0
    functionsReached:
    - getSignature
    linkageType: ''
    returnType: jobject
    signature: ObjectStreamClass_getFieldSignature(JNIEnv* env, jclass, jobject field)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getSignature
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectStreamClass.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - method
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: ObjectStreamClass_getMethodSignature
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectStreamClass.cpp
    functionUses: 0
    functionsReached:
    - getSignature
    linkageType: ''
    returnType: jobject
    signature: ObjectStreamClass_getMethodSignature(JNIEnv* env, jclass, jobject method)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getSignature
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectStreamClass.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - constructor
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: ObjectStreamClass_getConstructorSignature
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectStreamClass.cpp
    functionUses: 0
    functionsReached:
    - getSignature
    linkageType: ''
    returnType: jobject
    signature: ObjectStreamClass_getConstructorSignature(JNIEnv* env, jclass, jobject
      constructor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetStaticMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectStreamClass.cpp:45,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectStreamClass.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - targetClass
    argTypes:
    - JNIEnv*
    - jclass
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: ObjectStreamClass_hasClinit
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectStreamClass.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::ExceptionClear
    - JNIEnv*::GetStaticMethodID
    linkageType: ''
    returnType: jboolean
    signature: ObjectStreamClass_hasClinit(JNIEnv * env, jclass, jclass targetClass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectStreamClass.cpp:57,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectStreamClass.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: register_java_io_ObjectStreamClass
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectStreamClass.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_java_io_ObjectStreamClass(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ErrorCode.cpp:30,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ErrorCode.cpp:33,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ErrorCode.cpp:35,1
    - Dst: jniThrowRuntimeException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ErrorCode.cpp:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - env
    - errorCode
    argTypes:
    - JNIEnv*
    - UErrorCode
    constantsTouched: []
    func_position:
      end: 39
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 39
    functionName: icu4jni_error
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ErrorCode.cpp
    functionUses: 5
    functionsReached:
    - jniThrowRuntimeException
    - jniThrowException
    linkageType: ''
    returnType: UBool
    signature: icu4jni_error(JNIEnv* env, UErrorCode errorCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NativeZipStream::NativeZipStream
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:33,1
    - Dst: UniquePtr::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:34,1
    - Dst: jniThrowOutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:35,1
    - Dst: throwExceptionForZlibError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:51,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:54,1
    - Dst: UniquePtr::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - env
    - noHeader
    argTypes:
    - JNIEnv*
    - jboolean
    constantsTouched: []
    func_position:
      end: 55
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 55
    functionName: Inflater_createStream
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - jniThrowOutOfMemoryError
    - UniquePtr::get
    - throwExceptionForZlibError
    - NativeZipStream::NativeZipStream
    - UniquePtr::release
    linkageType: ''
    returnType: jlong
    signature: Inflater_createStream(JNIEnv* env, jobject, jboolean noHeader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toNativeZipStream
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - env
    - buf
    - 'off'
    - len
    - handle
    argTypes:
    - JNIEnv*
    - jbyteArray
    - jint
    - jint
    - jlong
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Inflater_setInputImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp
    functionUses: 0
    functionsReached:
    - toNativeZipStream
    linkageType: ''
    returnType: void
    signature: Inflater_setInputImpl(JNIEnv* env, jobject, jbyteArray buf, jint off,
      jint len, jlong handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toNativeZipStream
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:62,1
    - Dst: NativeZipStream*::setInput
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:67,1
    - Dst: reinterpret_cast<Bytef*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:69,1
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:79,1
    - Dst: reinterpret_cast<Bytef*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:83,1
    - Dst: TEMP_FAILURE_RETRY
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:85,1
    - Dst: read
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:85,1
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - env
    - javaFileDescriptor
    - 'off'
    - len
    - handle
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jint
    - jlong
    constantsTouched: []
    func_position:
      end: 95
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 95
    functionName: Inflater_setFileInputImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp
    functionUses: 0
    functionsReached:
    - read
    - NativeZipStream*::setInput
    - toNativeZipStream
    - TEMP_FAILURE_RETRY
    - reinterpret_cast<Bytef*>
    - jniThrowIOException
    linkageType: ''
    returnType: jint
    signature: Inflater_setFileInputImpl(JNIEnv* env, jobject, jobject javaFileDescriptor,
      jlong off, jint len, jlong handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toNativeZipStream
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:98,1
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:100,1
    - Dst: reinterpret_cast<Bytef*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:103,1
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:103,1
    - Dst: JNIEnv*::SetBooleanField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:115,1
    - Dst: JNIEnv*::SetBooleanField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:117,1
    - Dst: throwExceptionForZlibError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:119,1
    - Dst: JNIEnv*::GetIntField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:127,1
    - Dst: JNIEnv*::SetIntField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 6
    argNames:
    - env
    - recv
    - buf
    - 'off'
    - len
    - handle
    argTypes:
    - JNIEnv*
    - jobject
    - jbyteArray
    - int
    - int
    - jlong
    constantsTouched: []
    func_position:
      end: 131
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 131
    functionName: Inflater_inflateImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetIntField
    - ScopedByteArrayRW::get
    - toNativeZipStream
    - JNIEnv*::SetBooleanField
    - throwExceptionForZlibError
    - reinterpret_cast<Bytef*>
    - JNIEnv*::SetIntField
    linkageType: ''
    returnType: jint
    signature: Inflater_inflateImpl(JNIEnv* env, jobject recv, jbyteArray buf, int
      off, int len, jlong handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toNativeZipStream
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: Inflater_getAdlerImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp
    functionUses: 0
    functionsReached:
    - toNativeZipStream
    linkageType: ''
    returnType: jint
    signature: Inflater_getAdlerImpl(JNIEnv*, jobject, jlong handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toNativeZipStream
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:138,1
    - Dst: inflateEnd
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: Inflater_endImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp
    functionUses: 0
    functionsReached:
    - inflateEnd
    - toNativeZipStream
    linkageType: ''
    returnType: void
    signature: Inflater_endImpl(JNIEnv*, jobject, jlong handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toNativeZipStream
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - env
    - dict
    - 'off'
    - len
    - handle
    argTypes:
    - JNIEnv*
    - jbyteArray
    - int
    - int
    - jlong
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: Inflater_setDictionaryImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp
    functionUses: 0
    functionsReached:
    - toNativeZipStream
    linkageType: ''
    returnType: void
    signature: Inflater_setDictionaryImpl(JNIEnv* env, jobject, jbyteArray dict, int
      off, int len, jlong handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: throwExceptionForZlibError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - env
    - handle
    argTypes:
    - JNIEnv*
    - jlong
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: Inflater_resetImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp
    functionUses: 0
    functionsReached:
    - throwExceptionForZlibError
    linkageType: ''
    returnType: void
    signature: Inflater_resetImpl(JNIEnv* env, jobject, jlong handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toNativeZipStream
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: Inflater_getTotalOutImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp
    functionUses: 0
    functionsReached:
    - toNativeZipStream
    linkageType: ''
    returnType: jlong
    signature: Inflater_getTotalOutImpl(JNIEnv*, jobject, jlong handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toNativeZipStream
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: Inflater_getTotalInImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp
    functionUses: 0
    functionsReached:
    - toNativeZipStream
    linkageType: ''
    returnType: jlong
    signature: Inflater_getTotalInImpl(JNIEnv*, jobject, jlong handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:175,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:176,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:177,1
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:178,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: register_java_util_zip_Inflater
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    - JNIEnv*::GetFieldID
    linkageType: ''
    returnType: int
    signature: register_java_util_zip_Inflater(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - env
    - fileDescriptor
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: NetFd::NetFd
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetFd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: NetFd(JNIEnv* env, jobject fileDescriptor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniGetFDFromFileDescriptor
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetFd.h:31,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetFd.h:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: NetFd::isClosed
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetFd.h
    functionUses: 21
    functionsReached:
    - jniGetFDFromFileDescriptor
    - jniThrowException
    linkageType: ''
    returnType: bool
    signature: isClosed()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: NetFd::get
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetFd.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: get() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - env
    - pid
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: ProcessManager_kill
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp
    functionUses: 0
    functionsReached:
    - jniThrowIOException
    linkageType: ''
    returnType: void
    signature: ProcessManager_kill(JNIEnv* env, jclass, jint pid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:67,1
    - Dst: waitpid
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:75,1
    - Dst: WIFEXITED
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:79,1
    - Dst: WEXITSTATUS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:80,1
    - Dst: WIFSIGNALED
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:81,1
    - Dst: WTERMSIG
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:82,1
    - Dst: WIFSTOPPED
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:83,1
    - Dst: WSTOPSIG
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:84,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:119,1
    - Dst: strerror
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:120,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:127,1
    - Dst: JNIEnv*::ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:128,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - env
    - o
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 136
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 136
    functionName: ProcessManager_watchChildren
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp
    functionUses: 0
    functionsReached:
    - WIFSTOPPED
    - jniThrowException
    - LOGE
    - WIFEXITED
    - WTERMSIG
    - JNIEnv*::ExceptionOccurred
    - WIFSIGNALED
    - WEXITSTATUS
    - WSTOPSIG
    - JNIEnv*::CallVoidMethod
    - waitpid
    - strerror
    linkageType: ''
    returnType: void
    signature: ProcessManager_watchChildren(JNIEnv* env, jobject o)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getrlimit
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:142,1
    - Dst: close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - skipFd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 153
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 153
    functionName: closeNonStandardFds
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp
    functionUses: 0
    functionsReached:
    - getrlimit
    - close
    linkageType: ''
    returnType: void
    signature: closeNonStandardFds(int skipFd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - pipes
    - skipFd
    argTypes:
    - int[]
    - int
    constantsTouched: []
    func_position:
      end: 169
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 169
    functionName: closePipes
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: closePipes(int pipes[], int skipFd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:181,1
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:182,1
    - Dst: closePipes
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:183,1
    - Dst: fork
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:196,1
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:200,1
    - Dst: closePipes
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:201,1
    - Dst: dup2
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:214,1
    - Dst: dup2
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:215,1
    - Dst: dup2
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:217,1
    - Dst: dup2
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:219,1
    - Dst: closePipes
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:223,1
    - Dst: fcntl
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:226,1
    - Dst: closeNonStandardFds
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:229,1
    - Dst: chdir
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:233,1
    - Dst: execvp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:246,1
    - Dst: write
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:251,1
    - Dst: close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:252,1
    - Dst: exit
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:253,1
    - Dst: close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:259,1
    - Dst: close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:260,1
    - Dst: close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:261,1
    - Dst: close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:262,1
    - Dst: close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:268,1
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:270,1
    - Dst: close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:272,1
    - Dst: close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:273,1
    - Dst: close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:274,1
    - Dst: jniSetFileDescriptorOfFD
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:280,1
    - Dst: jniSetFileDescriptorOfFD
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:281,1
    - Dst: jniSetFileDescriptorOfFD
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:282,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 8
    argNames:
    - env
    - commands
    - environment
    - workingDirectory
    - inDescriptor
    - outDescriptor
    - errDescriptor
    - redirectErrorStream
    argTypes:
    - JNIEnv*
    - char**
    - char**
    - char*
    - jobject
    - jobject
    - jobject
    - jboolean
    constantsTouched: []
    func_position:
      end: 285
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 285
    functionName: executeProcess
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp
    functionUses: 0
    functionsReached:
    - fcntl
    - write
    - exit
    - dup2
    - closePipes
    - jniSetFileDescriptorOfFD
    - closeNonStandardFds
    - fork
    - close
    - chdir
    - execvp
    - pipe
    - jniThrowIOException
    linkageType: ''
    returnType: pid_t
    signature: "executeProcess(JNIEnv* env, char** commands, char** environment,\n
      \       const char* workingDirectory, jobject inDescriptor,\n        jobject
      outDescriptor, jobject errDescriptor,\n        jboolean redirectErrorStream)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetArrayLength
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:293,1
    - Dst: GetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 304
    functionName: convertStrings
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp
    functionUses: 0
    functionsReached:
    - GetArrayLength
    - GetObjectArrayElement
    linkageType: ''
    returnType: char
    signature: '** convertStrings(JNIEnv* env, jobjectArray javaArray)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetArrayLength
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:312,1
    - Dst: reinterpret_cast<jstring>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:314,1
    - Dst: JNIEnv*::GetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:314,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - env
    - javaArray
    - array
    argTypes:
    - JNIEnv*
    - jobjectArray
    - char**
    constantsTouched: []
    func_position:
      end: 319
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 319
    functionName: freeStrings
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::ReleaseStringUTFChars
    - JNIEnv*::GetObjectArrayElement
    - reinterpret_cast<jstring>
    - JNIEnv*::GetArrayLength
    linkageType: ''
    returnType: void
    signature: freeStrings(JNIEnv* env, jobjectArray javaArray, char** array)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetStringUTFChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:336,1
    - Dst: executeProcess
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:342,1
    - Dst: JNIEnv*::ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:347,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:348,1
    - Dst: freeStrings
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:350,1
    - Dst: JNIEnv*::ReleaseStringUTFChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:354,1
    - Dst: freeStrings
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:357,1
    - Dst: JNIEnv*::Throw
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:361,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:362,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 8
    argNames:
    - env
    - javaCommands
    - javaEnvironment
    - javaWorkingDirectory
    - inDescriptor
    - outDescriptor
    - errDescriptor
    - redirectErrorStream
    argTypes:
    - JNIEnv*
    - jobjectArray
    - jobjectArray
    - jstring
    - jobject
    - jobject
    - jobject
    - jboolean
    constantsTouched: []
    func_position:
      end: 367
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 367
    functionName: ProcessManager_exec
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStringUTFChars
    - JNIEnv*::Throw
    - LOGE
    - JNIEnv*::ExceptionClear
    - executeProcess
    - JNIEnv*::ExceptionOccurred
    - JNIEnv*::ReleaseStringUTFChars
    - freeStrings
    linkageType: ''
    returnType: pid_t
    signature: "ProcessManager_exec(\n        JNIEnv* env, jclass, jobjectArray javaCommands,\n
      \       jobjectArray javaEnvironment, jstring javaWorkingDirectory,\n        jobject
      inDescriptor, jobject outDescriptor, jobject errDescriptor,\n        jboolean
      redirectErrorStream)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:377,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - env
    - clazz
    argTypes:
    - JNIEnv*
    - jclass
    constantsTouched: []
    func_position:
      end: 385
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 385
    functionName: ProcessManager_staticInitialize
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - JNIEnv*::GetMethodID
    linkageType: ''
    returnType: void
    signature: "ProcessManager_staticInitialize(JNIEnv* env,\n        jclass clazz)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:394,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 395
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 395
    functionName: register_java_lang_ProcessManager
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_java_lang_ProcessManager(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: operator()(BN_CTX* p) const
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    linkageType: ''
    returnType: void
    signature: operator()(BN_CTX* p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - env
    - handle
    - message
    argTypes:
    - JNIEnv*
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: isValidHandle
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - jniThrowNullPointerException
    linkageType: ''
    returnType: int
    signature: isValidHandle (JNIEnv* env, void* handle, const char* message)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - a
    argTypes:
    - JNIEnv*
    - void*
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: oneValidHandle
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - isValidHandle
    linkageType: ''
    returnType: int
    signature: oneValidHandle (JNIEnv* env, void* a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:57,1
    - Dst: isValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - env
    - a
    - b
    argTypes:
    - JNIEnv*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: twoValidHandles
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - oneValidHandle
    - isValidHandle
    linkageType: ''
    returnType: int
    signature: twoValidHandles (JNIEnv* env, void* a, void* b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: twoValidHandles
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:63,1
    - Dst: isValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - env
    - a
    - b
    - c
    argTypes:
    - JNIEnv*
    - void*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: threeValidHandles
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - isValidHandle
    - twoValidHandles
    linkageType: ''
    returnType: int
    signature: threeValidHandles (JNIEnv* env, void* a, void* b, void* c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: threeValidHandles
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:69,1
    - Dst: isValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - env
    - a
    - b
    - c
    - d
    argTypes:
    - JNIEnv*
    - void*
    - void*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 4
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: fourValidHandles
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - threeValidHandles
    - isValidHandle
    linkageType: ''
    returnType: int
    signature: fourValidHandles (JNIEnv* env, void* a, void* b, void* c, void* d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: NativeBN_ERR_get_error
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - ERR_get_error
    linkageType: ''
    returnType: unsigned long
    signature: NativeBN_ERR_get_error(JNIEnv*, jclass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - e
    argTypes:
    - JNIEnv*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: NativeBN_ERR_error_string
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: NativeBN_ERR_error_string(JNIEnv* env, jclass, unsigned long e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: NativeBN_BN_new
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - BN_new
    linkageType: ''
    returnType: BIGNUM
    signature: '* NativeBN_BN_new(JNIEnv*, jclass)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:87,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - env
    - a
    argTypes:
    - JNIEnv*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: NativeBN_BN_free
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - oneValidHandle
    - BN_free
    linkageType: ''
    returnType: void
    signature: NativeBN_BN_free(JNIEnv* env, jclass, BIGNUM* a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: twoValidHandles
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:92,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - env
    - a
    - b
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: NativeBN_BN_cmp
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - BN_cmp
    - twoValidHandles
    linkageType: ''
    returnType: int
    signature: NativeBN_BN_cmp(JNIEnv* env, jclass, BIGNUM* a, BIGNUM* b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: twoValidHandles
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:97,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - env
    - to
    - from
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: NativeBN_BN_copy
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - BN_copy
    - twoValidHandles
    linkageType: ''
    returnType: jboolean
    signature: NativeBN_BN_copy(JNIEnv* env, jclass, BIGNUM* to, BIGNUM* from)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:102,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:107,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:108,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - env
    - a
    - dw
    - neg
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - unsigned long long
    - jboolean
    constantsTouched: []
    func_position:
      end: 117
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 117
    functionName: NativeBN_putULongInt
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - oneValidHandle
    - bn_correct_top
    - bn_wexpand
    - bn_check_top
    linkageType: ''
    returnType: jboolean
    signature: NativeBN_putULongInt(JNIEnv* env, jclass, BIGNUM* a, unsigned long
      long dw, jboolean neg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NativeBN_putULongInt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:120,1
    - Dst: NativeBN_putULongInt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - env
    - cls
    - a
    - dw
    argTypes:
    - JNIEnv*
    - jclass
    - BIGNUM*
    - long long
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: NativeBN_putLongInt
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - NativeBN_putULongInt
    linkageType: ''
    returnType: jboolean
    signature: NativeBN_putLongInt(JNIEnv* env, jclass cls, BIGNUM* a, long long dw)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:125,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:127,1
    - Dst: BN_dec2bn
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:130,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - env
    - a
    - str
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - jstring
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: NativeBN_BN_dec2bn
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - oneValidHandle
    - BN_dec2bn
    - ScopedUtfChars::c_str
    linkageType: ''
    returnType: int
    signature: NativeBN_BN_dec2bn(JNIEnv* env, jclass, BIGNUM* a, jstring str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:134,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:136,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:139,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - env
    - a
    - str
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - jstring
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: NativeBN_BN_hex2bn
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - oneValidHandle
    - BN_hex2bn
    - ScopedUtfChars::c_str
    linkageType: ''
    returnType: int
    signature: NativeBN_BN_hex2bn(JNIEnv* env, jclass, BIGNUM* a, jstring str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:143,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:145,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:148,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:148,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:148,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - env
    - arr
    - len
    - neg
    - ret
    argTypes:
    - JNIEnv*
    - jbyteArray
    - int
    - jboolean
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 153
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 153
    functionName: NativeBN_BN_bin2bn
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - BN_set_negative
    - BN_bin2bn
    - ScopedByteArrayRO::get
    - oneValidHandle
    - reinterpret_cast<const unsigned char*>
    linkageType: ''
    returnType: jboolean
    signature: NativeBN_BN_bin2bn(JNIEnv* env, jclass, jbyteArray arr, int len, jboolean
      neg, BIGNUM* ret)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:164,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:165,1
    - Dst: ScopedIntArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:168,1
    - Dst: assert
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:172,1
    - Dst: reinterpret_cast<const BN_ULONG*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:173,1
    - Dst: ScopedIntArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:173,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:174,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:181,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - env
    - arr
    - len
    - neg
    - ret
    argTypes:
    - JNIEnv*
    - jintArray
    - int
    - jboolean
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 190
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 190
    functionName: NativeBN_litEndInts2bn
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - bn_check_top
    - ScopedIntArrayRO::get
    - reinterpret_cast<const BN_ULONG*>
    - oneValidHandle
    - bn_correct_top
    - bn_wexpand
    - assert
    linkageType: ''
    returnType: jboolean
    signature: NativeBN_litEndInts2bn(JNIEnv* env, jclass, jintArray arr, int len,
      jboolean neg, BIGNUM* ret)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:202,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:206,1
    - Dst: BYTES2INT
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:216,1
    - Dst: BYTES2INT
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:223,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 3
    argNames:
    - bytes
    - bytesLen
    - ret
    argTypes:
    - unsigned char*
    - int
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 250
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 250
    functionName: negBigEndianBytes2bn
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - bn_wexpand
    - bn_check_top
    - BYTES2INT
    linkageType: ''
    returnType: jboolean
    signature: negBigEndianBytes2bn(JNIEnv*, jclass, const unsigned char* bytes, int
      bytesLen, BIGNUM* ret)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:253,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:255,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:264,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:265,1
    - Dst: negBigEndianBytes2bn
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:270,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - env
    - cls
    - arr
    - bytesLen
    - ret
    argTypes:
    - JNIEnv*
    - jclass
    - jbyteArray
    - int
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 274
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 274
    functionName: NativeBN_twosComp2bn
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - BN_set_negative
    - BN_bin2bn
    - ScopedByteArrayRO::get
    - oneValidHandle
    - negBigEndianBytes2bn
    linkageType: ''
    returnType: jboolean
    signature: NativeBN_twosComp2bn(JNIEnv* env, jclass cls, jbyteArray arr, int bytesLen,
      BIGNUM* ret)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:277,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - env
    - a
    argTypes:
    - JNIEnv*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 291
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 291
    functionName: NativeBN_longInt
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - oneValidHandle
    - bn_check_top
    linkageType: ''
    returnType: long long
    signature: NativeBN_longInt(JNIEnv* env, jclass, BIGNUM* a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 304
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 304
    functionName: leadingZerosTrimmed
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* leadingZerosTrimmed(char* s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:307,1
    - Dst: BN_bn2dec
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:310,1
    - Dst: leadingZerosTrimmed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:312,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:313,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - env
    - a
    argTypes:
    - JNIEnv*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 318
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 318
    functionName: NativeBN_BN_bn2dec
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - BN_bn2dec
    - oneValidHandle
    - leadingZerosTrimmed
    - OPENSSL_free
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: NativeBN_BN_bn2dec(JNIEnv* env, jclass, BIGNUM* a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:321,1
    - Dst: BN_bn2hex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:324,1
    - Dst: leadingZerosTrimmed
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:326,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:327,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - env
    - a
    argTypes:
    - JNIEnv*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 332
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 332
    functionName: NativeBN_BN_bn2hex
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - oneValidHandle
    - leadingZerosTrimmed
    - BN_bn2hex
    - OPENSSL_free
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: NativeBN_BN_bn2hex(JNIEnv* env, jclass, BIGNUM* a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:335,1
    - Dst: JNIEnv*::NewByteArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:336,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:336,1
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:341,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:344,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:344,1
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:344,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - env
    - a
    argTypes:
    - JNIEnv*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 346
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 346
    functionName: NativeBN_BN_bn2bin
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - ScopedByteArrayRW::get
    - JNIEnv*::NewByteArray
    - oneValidHandle
    - reinterpret_cast<unsigned char*>
    - BN_bn2bin
    - BN_num_bytes
    linkageType: ''
    returnType: jbyteArray
    signature: NativeBN_BN_bn2bin(JNIEnv* env, jclass, BIGNUM* a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:349,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:350,1
    - Dst: JNIEnv*::NewIntArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:355,1
    - Dst: ScopedIntArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:360,1
    - Dst: reinterpret_cast<BN_ULONG*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:363,1
    - Dst: ScopedIntArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:363,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - env
    - a
    argTypes:
    - JNIEnv*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 369
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 369
    functionName: NativeBN_bn2litEndInts
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - ScopedIntArrayRW::get
    - reinterpret_cast<BN_ULONG*>
    - bn_check_top
    - JNIEnv*::NewIntArray
    - oneValidHandle
    linkageType: ''
    returnType: jintArray
    signature: NativeBN_bn2litEndInts(JNIEnv* env, jclass, BIGNUM* a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:372,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:373,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:374,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - env
    - a
    argTypes:
    - JNIEnv*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 376
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 376
    functionName: NativeBN_sign
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - oneValidHandle
    - BN_is_zero
    - BN_is_negative
    linkageType: ''
    returnType: int
    signature: NativeBN_sign(JNIEnv* env, jclass, BIGNUM* a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:379,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - env
    - b
    - n
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 381
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 381
    functionName: NativeBN_BN_set_negative
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - oneValidHandle
    - BN_set_negative
    linkageType: ''
    returnType: void
    signature: NativeBN_BN_set_negative(JNIEnv* env, jclass, BIGNUM* b, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:386,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:387,1
    - Dst: BN_num_bits_word
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:400,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - env
    - a
    argTypes:
    - JNIEnv*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 401
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 401
    functionName: NativeBN_bitLength
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - oneValidHandle
    - BN_num_bits_word
    - bn_check_top
    linkageType: ''
    returnType: int
    signature: NativeBN_bitLength(JNIEnv* env, jclass, BIGNUM* a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:404,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - env
    - a
    - n
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 406
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 406
    functionName: NativeBN_BN_is_bit_set
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - oneValidHandle
    - BN_is_bit_set
    linkageType: ''
    returnType: jboolean
    signature: NativeBN_BN_is_bit_set(JNIEnv* env, jclass, BIGNUM* a, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:410,1
    - Dst: BN_set_bit
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:412,1
    - Dst: BN_clear_bit
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:413,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:415,1
    - Dst: BN_clear_bit
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:415,1
    - Dst: BN_set_bit
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:416,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - env
    - a
    - n
    - op
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 419
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 419
    functionName: NativeBN_modifyBit
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - oneValidHandle
    - BN_set_bit
    - BN_is_bit_set
    - BN_clear_bit
    linkageType: ''
    returnType: jboolean
    signature: NativeBN_modifyBit(JNIEnv* env, jclass, BIGNUM* a, int n, int op)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: twoValidHandles
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:422,1
    - Dst: BN_lshift
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:423,1
    - Dst: BN_rshift
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - env
    - r
    - a
    - n
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 424
      start: 421
    functionDepth: 3
    functionLinenumber: 421
    functionLinenumberEnd: 424
    functionName: NativeBN_BN_shift
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - BN_rshift
    - BN_lshift
    - twoValidHandles
    linkageType: ''
    returnType: jboolean
    signature: NativeBN_BN_shift(JNIEnv* env, jclass, BIGNUM* r, BIGNUM* a, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:427,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - env
    - a
    - w
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: NativeBN_BN_add_word
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - oneValidHandle
    - BN_add_word
    linkageType: ''
    returnType: jboolean
    signature: NativeBN_BN_add_word(JNIEnv* env, jclass, BIGNUM* a, BN_ULONG w)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:432,1
    - Dst: BN_sub_word
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - env
    - a
    - w
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 434
    functionName: NativeBN_BN_sub_word
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - oneValidHandle
    - BN_sub_word
    linkageType: ''
    returnType: jboolean
    signature: NativeBN_BN_sub_word(JNIEnv* env, jclass, BIGNUM* a, BN_ULONG w)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:437,1
    - Dst: BN_mul_word
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - env
    - a
    - w
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 439
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 439
    functionName: NativeBN_BN_mul_word
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - oneValidHandle
    - BN_mul_word
    linkageType: ''
    returnType: jboolean
    signature: NativeBN_BN_mul_word(JNIEnv* env, jclass, BIGNUM* a, BN_ULONG w)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:442,1
    - Dst: BN_div_word
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - env
    - a
    - w
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 444
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 444
    functionName: NativeBN_BN_div_word
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - oneValidHandle
    - BN_div_word
    linkageType: ''
    returnType: BN_ULONG
    signature: NativeBN_BN_div_word(JNIEnv* env, jclass, BIGNUM* a, BN_ULONG w)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:447,1
    - Dst: BN_mod_word
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - env
    - a
    - w
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 449
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 449
    functionName: NativeBN_BN_mod_word
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - oneValidHandle
    - BN_mod_word
    linkageType: ''
    returnType: BN_ULONG
    signature: NativeBN_BN_mod_word(JNIEnv* env, jclass, BIGNUM* a, BN_ULONG w)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: threeValidHandles
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:452,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - env
    - r
    - a
    - b
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 454
      start: 451
    functionDepth: 4
    functionLinenumber: 451
    functionLinenumberEnd: 454
    functionName: NativeBN_BN_add
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - threeValidHandles
    - BN_add
    linkageType: ''
    returnType: jboolean
    signature: NativeBN_BN_add(JNIEnv* env, jclass, BIGNUM* r, BIGNUM* a, BIGNUM*
      b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: threeValidHandles
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:457,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - env
    - r
    - a
    - b
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 459
      start: 456
    functionDepth: 4
    functionLinenumber: 456
    functionLinenumberEnd: 459
    functionName: NativeBN_BN_sub
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - threeValidHandles
    - BN_sub
    linkageType: ''
    returnType: jboolean
    signature: NativeBN_BN_sub(JNIEnv* env, jclass, BIGNUM* r, BIGNUM* a, BIGNUM*
      b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: threeValidHandles
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:462,1
    - Dst: BN_gcd
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:464,1
    - Dst: Unique_BN_CTX::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - env
    - r
    - a
    - b
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 465
      start: 461
    functionDepth: 4
    functionLinenumber: 461
    functionLinenumberEnd: 465
    functionName: NativeBN_BN_gcd
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - threeValidHandles
    - BN_gcd
    - Unique_BN_CTX::get
    linkageType: ''
    returnType: jboolean
    signature: NativeBN_BN_gcd(JNIEnv* env, jclass, BIGNUM* r, BIGNUM* a, BIGNUM*
      b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: threeValidHandles
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:468,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:470,1
    - Dst: Unique_BN_CTX::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - env
    - r
    - a
    - b
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 471
      start: 467
    functionDepth: 4
    functionLinenumber: 467
    functionLinenumberEnd: 471
    functionName: NativeBN_BN_mul
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - threeValidHandles
    - BN_mul
    - Unique_BN_CTX::get
    linkageType: ''
    returnType: jboolean
    signature: NativeBN_BN_mul(JNIEnv* env, jclass, BIGNUM* r, BIGNUM* a, BIGNUM*
      b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: threeValidHandles
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:474,1
    - Dst: BN_exp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:476,1
    - Dst: Unique_BN_CTX::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - env
    - r
    - a
    - p
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 477
      start: 473
    functionDepth: 4
    functionLinenumber: 473
    functionLinenumberEnd: 477
    functionName: NativeBN_BN_exp
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - threeValidHandles
    - Unique_BN_CTX::get
    - BN_exp
    linkageType: ''
    returnType: jboolean
    signature: NativeBN_BN_exp(JNIEnv* env, jclass, BIGNUM* r, BIGNUM* a, BIGNUM*
      p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fourValidHandles
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:480,1
    - Dst: BN_div
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:482,1
    - Dst: Unique_BN_CTX::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - env
    - dv
    - rem
    - m
    - d
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 483
      start: 479
    functionDepth: 5
    functionLinenumber: 479
    functionLinenumberEnd: 483
    functionName: NativeBN_BN_div
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - Unique_BN_CTX::get
    - BN_div
    - fourValidHandles
    linkageType: ''
    returnType: jboolean
    signature: NativeBN_BN_div(JNIEnv* env, jclass, BIGNUM* dv, BIGNUM* rem, BIGNUM*
      m, BIGNUM* d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: threeValidHandles
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:486,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:488,1
    - Dst: Unique_BN_CTX::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - env
    - r
    - a
    - m
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 489
      start: 485
    functionDepth: 4
    functionLinenumber: 485
    functionLinenumberEnd: 489
    functionName: NativeBN_BN_nnmod
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - threeValidHandles
    - Unique_BN_CTX::get
    - BN_nnmod
    linkageType: ''
    returnType: jboolean
    signature: NativeBN_BN_nnmod(JNIEnv* env, jclass, BIGNUM* r, BIGNUM* a, BIGNUM*
      m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fourValidHandles
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:492,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:494,1
    - Dst: Unique_BN_CTX::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - env
    - r
    - a
    - p
    - m
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 5
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: NativeBN_BN_mod_exp
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - BN_mod_exp
    - Unique_BN_CTX::get
    - fourValidHandles
    linkageType: ''
    returnType: jboolean
    signature: NativeBN_BN_mod_exp(JNIEnv* env, jclass, BIGNUM* r, BIGNUM* a, BIGNUM*
      p, BIGNUM* m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: threeValidHandles
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:498,1
    - Dst: BN_mod_inverse
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:500,1
    - Dst: Unique_BN_CTX::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - env
    - ret
    - a
    - n
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 501
      start: 497
    functionDepth: 4
    functionLinenumber: 497
    functionLinenumberEnd: 501
    functionName: NativeBN_BN_mod_inverse
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - threeValidHandles
    - BN_mod_inverse
    - Unique_BN_CTX::get
    linkageType: ''
    returnType: jboolean
    signature: NativeBN_BN_mod_inverse(JNIEnv* env, jclass, BIGNUM* ret, BIGNUM* a,
      BIGNUM* n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:505,1
    - Dst: BN_generate_prime_ex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:506,1
    - Dst: reinterpret_cast<BN_GENCB*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 7
    argNames:
    - env
    - ret
    - bits
    - safe
    - add
    - rem
    - cb
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - int
    - jboolean
    - BIGNUM*
    - BIGNUM*
    - jint
    constantsTouched: []
    func_position:
      end: 507
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 507
    functionName: NativeBN_BN_generate_prime_ex
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - oneValidHandle
    - reinterpret_cast<BN_GENCB*>
    - BN_generate_prime_ex
    linkageType: ''
    returnType: jboolean
    signature: "NativeBN_BN_generate_prime_ex(JNIEnv* env, jclass, BIGNUM* ret, int
      bits, jboolean safe,\n        BIGNUM* add, BIGNUM* rem, jint cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneValidHandle
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:510,1
    - Dst: BN_is_prime_ex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:512,1
    - Dst: Unique_BN_CTX::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:512,1
    - Dst: reinterpret_cast<BN_GENCB*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - env
    - p
    - nchecks
    - cb
    argTypes:
    - JNIEnv*
    - BIGNUM*
    - int
    - jint
    constantsTouched: []
    func_position:
      end: 513
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 513
    functionName: NativeBN_BN_is_prime_ex
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - oneValidHandle
    - BN_is_prime_ex
    - Unique_BN_CTX::get
    - reinterpret_cast<BN_GENCB*>
    linkageType: ''
    returnType: jboolean
    signature: NativeBN_BN_is_prime_ex(JNIEnv* env, jclass, BIGNUM* p, int nchecks,
      jint cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:558,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 559
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 559
    functionName: register_java_math_NativeBN
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_java_math_NativeBN(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isnan
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Double.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: Double_doubleToLongBits
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Double.cpp
    functionUses: 0
    functionsReached:
    - isnan
    linkageType: ''
    returnType: jlong
    signature: Double_doubleToLongBits(JNIEnv*, jclass, jdouble val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: Double_doubleToRawLongBits
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Double.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: jlong
    signature: Double_doubleToRawLongBits(JNIEnv*, jclass, jdouble val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: Double_longBitsToDouble
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Double.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: jdouble
    signature: Double_longBitsToDouble(JNIEnv*, jclass, jlong val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Double.cpp:59,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Double.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: register_java_lang_Double
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Double.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_java_lang_Double(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<UCollator*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:23,1
    - Dst: static_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: toCollator
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uintptr_t>
    - reinterpret_cast<UCollator*>
    linkageType: ''
    returnType: UCollator
    signature: '* toCollator(jint address)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<UCollationElements*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:27,1
    - Dst: static_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: toCollationElements
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<UCollationElements*>
    - static_cast<uintptr_t>
    linkageType: ''
    returnType: UCollationElements
    signature: '* toCollationElements(jint address)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ucol_close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:31,1
    - Dst: toCollator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: NativeCollation_closeCollator
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
    functionUses: 0
    functionsReached:
    - toCollator
    - ucol_close
    linkageType: ''
    returnType: void
    signature: NativeCollation_closeCollator(JNIEnv*, jclass, jint address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ucol_closeElements
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:35,1
    - Dst: toCollationElements
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: NativeCollation_closeElements
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
    functionUses: 0
    functionsReached:
    - toCollationElements
    - ucol_closeElements
    linkageType: ''
    returnType: void
    signature: NativeCollation_closeElements(JNIEnv*, jclass, jint address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ucol_strcoll
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:41,1
    - Dst: toCollator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:41,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:42,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:42,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:43,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - env
    - address
    - lhs0
    - rhs0
    argTypes:
    - JNIEnv*
    - jint
    - jstring
    - jstring
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: NativeCollation_compare
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
    functionUses: 0
    functionsReached:
    - ScopedJavaUnicodeString::unicodeString
    - toCollator
    - ucol_strcoll
    linkageType: ''
    returnType: jint
    signature: NativeCollation_compare(JNIEnv* env, jclass, jint address, jstring
      lhs0, jstring rhs0)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ucol_getAttribute
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:48,1
    - Dst: toCollator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:48,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - env
    - address
    - type
    argTypes:
    - JNIEnv*
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: NativeCollation_getAttribute
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
    functionUses: 0
    functionsReached:
    - ucol_getAttribute
    - icu4jni_error
    - toCollator
    linkageType: ''
    returnType: jint
    signature: NativeCollation_getAttribute(JNIEnv* env, jclass, jint address, jint
      type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ucol_openElements
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:56,1
    - Dst: toCollator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:56,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:57,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:57,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:58,1
    - Dst: static_cast<jint>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:59,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - env
    - address
    - source0
    argTypes:
    - JNIEnv*
    - jint
    - jstring
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: NativeCollation_getCollationElementIterator
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - ScopedJavaUnicodeString::unicodeString
    - static_cast<jint>
    - toCollator
    - ucol_openElements
    - icu4jni_error
    linkageType: ''
    returnType: jint
    signature: NativeCollation_getCollationElementIterator(JNIEnv* env, jclass, jint
      address, jstring source0)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ucol_getMaxExpansion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:63,1
    - Dst: toCollationElements
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - address
    - order
    argTypes:
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: NativeCollation_getMaxExpansion
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
    functionUses: 0
    functionsReached:
    - ucol_getMaxExpansion
    - toCollationElements
    linkageType: ''
    returnType: jint
    signature: NativeCollation_getMaxExpansion(JNIEnv*, jclass, jint address, jint
      order)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ucol_getAttribute
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:68,1
    - Dst: toCollator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:68,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: NativeCollation_getNormalization
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
    functionUses: 0
    functionsReached:
    - ucol_getAttribute
    - icu4jni_error
    - toCollator
    linkageType: ''
    returnType: jint
    signature: NativeCollation_getNormalization(JNIEnv* env, jclass, jint address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ucol_setAttribute
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:75,1
    - Dst: toCollator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:75,1
    - Dst: UColAttributeValue
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:75,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - env
    - address
    - mode
    argTypes:
    - JNIEnv*
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: NativeCollation_setNormalization
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
    functionUses: 0
    functionsReached:
    - ucol_setAttribute
    - icu4jni_error
    - UColAttributeValue
    - toCollator
    linkageType: ''
    returnType: void
    signature: NativeCollation_setNormalization(JNIEnv* env, jclass, jint address,
      jint mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ucol_getOffset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:80,1
    - Dst: toCollationElements
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: NativeCollation_getOffset
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
    functionUses: 0
    functionsReached:
    - toCollationElements
    - ucol_getOffset
    linkageType: ''
    returnType: jint
    signature: NativeCollation_getOffset(JNIEnv*, jclass, jint address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ucol_getRules
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:85,1
    - Dst: toCollator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:85,1
    - Dst: JNIEnv*::NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: NativeCollation_getRules
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::NewString
    - ucol_getRules
    - toCollator
    linkageType: ''
    returnType: jstring
    signature: NativeCollation_getRules(JNIEnv* env, jclass, jint address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toCollator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:91,1
    - Dst: UniquePtr::UniquePtr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:93,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:95,1
    - Dst: UniquePtr::reset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:100,1
    - Dst: uint8_t::uint8_t
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:100,1
    - Dst: UniquePtr::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:101,1
    - Dst: ucol_getSortKey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:102,1
    - Dst: JNIEnv*::NewByteArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:107,1
    - Dst: JNIEnv*::SetByteArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:108,1
    - Dst: reinterpret_cast<jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - env
    - address
    - source0
    argTypes:
    - JNIEnv*
    - jint
    - jstring
    constantsTouched: []
    func_position:
      end: 110
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 110
    functionName: NativeCollation_getSortKey
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
    functionUses: 0
    functionsReached:
    - UniquePtr::UniquePtr
    - reinterpret_cast<jbyte*>
    - ScopedJavaUnicodeString::unicodeString
    - JNIEnv*::NewByteArray
    - JNIEnv*::SetByteArrayRegion
    - toCollator
    - uint8_t::uint8_t
    - UniquePtr::get
    - ucol_getSortKey
    - UniquePtr::reset
    linkageType: ''
    returnType: jbyteArray
    signature: NativeCollation_getSortKey(JNIEnv* env, jclass, jint address, jstring
      source0)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ucol_next
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:114,1
    - Dst: toCollationElements
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:114,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: NativeCollation_next
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
    functionUses: 0
    functionsReached:
    - toCollationElements
    - ucol_next
    - icu4jni_error
    linkageType: ''
    returnType: jint
    signature: NativeCollation_next(JNIEnv* env, jclass, jint address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:121,1
    - Dst: ucol_open
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:125,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:125,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:126,1
    - Dst: static_cast<jint>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:127,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - env
    - localeName
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: NativeCollation_openCollator
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - ScopedUtfChars::c_str
    - static_cast<jint>
    - ucol_open
    - icu4jni_error
    linkageType: ''
    returnType: jint
    signature: NativeCollation_openCollator(JNIEnv* env, jclass, jstring localeName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ucol_openRules
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:133,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:133,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:133,1
    - Dst: UColAttributeValue
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:134,1
    - Dst: UCollationStrength
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:134,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:135,1
    - Dst: static_cast<jint>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:136,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - env
    - rules0
    - mode
    - strength
    argTypes:
    - JNIEnv*
    - jstring
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 137
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 137
    functionName: NativeCollation_openCollatorFromRules
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
    functionUses: 0
    functionsReached:
    - ucol_openRules
    - reinterpret_cast<uintptr_t>
    - ScopedJavaUnicodeString::unicodeString
    - UColAttributeValue
    - static_cast<jint>
    - UCollationStrength
    - icu4jni_error
    linkageType: ''
    returnType: jint
    signature: NativeCollation_openCollatorFromRules(JNIEnv* env, jclass, jstring
      rules0, jint mode, jint strength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ucol_previous
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:141,1
    - Dst: toCollationElements
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:141,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: NativeCollation_previous
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
    functionUses: 0
    functionsReached:
    - toCollationElements
    - icu4jni_error
    - ucol_previous
    linkageType: ''
    returnType: jint
    signature: NativeCollation_previous(JNIEnv* env, jclass, jint address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ucol_reset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:147,1
    - Dst: toCollationElements
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: NativeCollation_reset
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
    functionUses: 0
    functionsReached:
    - ucol_reset
    - toCollationElements
    linkageType: ''
    returnType: void
    signature: NativeCollation_reset(JNIEnv*, jclass, jint address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ucol_safeClone
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:153,1
    - Dst: toCollator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:153,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:154,1
    - Dst: static_cast<jint>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:155,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: NativeCollation_safeClone
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - static_cast<jint>
    - toCollator
    - ucol_safeClone
    - icu4jni_error
    linkageType: ''
    returnType: jint
    signature: NativeCollation_safeClone(JNIEnv* env, jclass, jint address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ucol_setAttribute
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:160,1
    - Dst: toCollator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:160,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - env
    - address
    - type
    - value
    argTypes:
    - JNIEnv*
    - jint
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: NativeCollation_setAttribute
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
    functionUses: 0
    functionsReached:
    - ucol_setAttribute
    - icu4jni_error
    - toCollator
    linkageType: ''
    returnType: void
    signature: NativeCollation_setAttribute(JNIEnv* env, jclass, jint address, jint
      type, jint value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ucol_setOffset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:166,1
    - Dst: toCollationElements
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:166,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - env
    - address
    - offset
    argTypes:
    - JNIEnv*
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: NativeCollation_setOffset
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
    functionUses: 0
    functionsReached:
    - toCollationElements
    - ucol_setOffset
    - icu4jni_error
    linkageType: ''
    returnType: void
    signature: NativeCollation_setOffset(JNIEnv* env, jclass, jint address, jint offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ucol_setText
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:173,1
    - Dst: toCollationElements
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:173,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:174,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:174,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - env
    - address
    - source0
    argTypes:
    - JNIEnv*
    - jint
    - jstring
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: NativeCollation_setText
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
    functionUses: 0
    functionsReached:
    - ScopedJavaUnicodeString::unicodeString
    - toCollationElements
    - icu4jni_error
    - ucol_setText
    linkageType: ''
    returnType: void
    signature: NativeCollation_setText(JNIEnv* env, jclass, jint address, jstring
      source0)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:201,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: register_com_ibm_icu4jni_text_NativeCollator
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_com_ibm_icu4jni_text_NativeCollator(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - UConverter*
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: operator()(UConverter* p) const
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - ucnv_close
    linkageType: ''
    returnType: void
    signature: operator()(UConverter* p) const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<UConverter*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:62,1
    - Dst: static_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: toUConverter
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uintptr_t>
    - reinterpret_cast<UConverter*>
    linkageType: ''
    returnType: UConverter
    signature: '* toUConverter(jlong address)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:67,1
    - Dst: ucnv_open
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:71,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:71,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:72,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - env
    - converterName
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: NativeConverter_openConverter
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - icu4jni_error
    - ScopedUtfChars::c_str
    - ucnv_open
    linkageType: ''
    returnType: jlong
    signature: NativeConverter_openConverter(JNIEnv* env, jclass, jstring converterName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:77,1
    - Dst: toUConverter
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: NativeConverter_closeConverter
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - ucnv_close
    - toUConverter
    linkageType: ''
    returnType: void
    signature: NativeConverter_closeConverter(JNIEnv*, jclass, jlong address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toUConverter
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:84,1
    - Dst: ScopedCharArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:89,1
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:93,1
    - Dst: ScopedIntArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:97,1
    - Dst: ScopedCharArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:104,1
    - Dst: ScopedCharArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:105,1
    - Dst: ucnv_fromUnicode
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:109,1
    - Dst: ScopedCharArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:110,1
    - Dst: reinterpret_cast<jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:111,1
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:111,1
    - Dst: U_SUCCESS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:116,1
    - Dst: ucnv_getInvalidUChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:124,1
    - Dst: U_SUCCESS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:125,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 8
    argNames:
    - env
    - address
    - source
    - sourceEnd
    - target
    - targetEnd
    - data
    - flush
    argTypes:
    - JNIEnv*
    - jlong
    - jcharArray
    - jint
    - jbyteArray
    - jint
    - jintArray
    - jboolean
    constantsTouched: []
    func_position:
      end: 130
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 130
    functionName: NativeConverter_encode
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - ucnv_getInvalidUChars
    - ScopedIntArrayRW::get
    - toUConverter
    - reinterpret_cast<jbyte*>
    - ScopedByteArrayRW::get
    - U_SUCCESS
    - ucnv_fromUnicode
    - ScopedCharArrayRO::get
    linkageType: ''
    returnType: jint
    signature: "NativeConverter_encode(JNIEnv* env, jclass, jlong address,\n        jcharArray
      source, jint sourceEnd, jbyteArray target, jint targetEnd,\n        jintArray
      data, jboolean flush)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toUConverter
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:136,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:141,1
    - Dst: ScopedCharArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:145,1
    - Dst: ScopedIntArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:149,1
    - Dst: ScopedCharArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:158,1
    - Dst: ScopedCharArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:159,1
    - Dst: ucnv_toUnicode
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:161,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:162,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:162,1
    - Dst: ScopedCharArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:163,1
    - Dst: ucnv_toUCountPending
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:167,1
    - Dst: ucnv_getInvalidChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:174,1
    - Dst: U_SUCCESS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:175,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 8
    argNames:
    - env
    - address
    - source
    - sourceEnd
    - target
    - targetEnd
    - data
    - flush
    argTypes:
    - JNIEnv*
    - jlong
    - jbyteArray
    - jint
    - jcharArray
    - jint
    - jintArray
    - jboolean
    constantsTouched: []
    func_position:
      end: 181
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 181
    functionName: NativeConverter_decode
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    - ScopedIntArrayRW::get
    - ucnv_toUnicode
    - U_SUCCESS
    - ScopedByteArrayRO::get
    - ucnv_toUCountPending
    - ScopedCharArrayRW::get
    - ucnv_getInvalidChars
    - toUConverter
    linkageType: ''
    returnType: jint
    signature: "NativeConverter_decode(JNIEnv* env, jclass, jlong address,\n        jbyteArray
      source, jint sourceEnd, jcharArray target, jint targetEnd,\n        jintArray
      data, jboolean flush)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toUConverter
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:184,1
    - Dst: ucnv_resetToUnicode
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - address
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 188
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 188
    functionName: NativeConverter_resetByteToChar
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - ucnv_resetToUnicode
    - toUConverter
    linkageType: ''
    returnType: void
    signature: NativeConverter_resetByteToChar(JNIEnv*, jclass, jlong address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toUConverter
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:191,1
    - Dst: ucnv_resetFromUnicode
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - address
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: NativeConverter_resetCharToByte
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - ucnv_resetFromUnicode
    - toUConverter
    linkageType: ''
    returnType: void
    signature: NativeConverter_resetCharToByte(JNIEnv*, jclass, jlong address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toUConverter
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:198,1
    - Dst: ucnv_getMaxCharSize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: NativeConverter_getMaxBytesPerChar
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - ucnv_getMaxCharSize
    - toUConverter
    linkageType: ''
    returnType: jint
    signature: NativeConverter_getMaxBytesPerChar(JNIEnv*, jclass, jlong address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toUConverter
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:203,1
    - Dst: ucnv_getMinCharSize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: NativeConverter_getMinBytesPerChar
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - ucnv_getMinCharSize
    - toUConverter
    linkageType: ''
    returnType: jint
    signature: NativeConverter_getMinBytesPerChar(JNIEnv*, jclass, jlong address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toUConverter
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:208,1
    - Dst: ucnv_getMaxCharSize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:209,1
    - Dst: ucnv_getMinCharSize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: NativeConverter_getAveBytesPerChar
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - ucnv_getMaxCharSize
    - ucnv_getMinCharSize
    - toUConverter
    linkageType: ''
    returnType: jfloat
    signature: NativeConverter_getAveBytesPerChar(JNIEnv*, jclass, jlong address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toUConverter
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:214,1
    - Dst: ScopedCharArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:219,1
    - Dst: ScopedIntArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:223,1
    - Dst: ScopedCharArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:230,1
    - Dst: ScopedCharArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:231,1
    - Dst: ucnv_toUnicode
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:233,1
    - Dst: ScopedCharArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - env
    - address
    - target
    - targetEnd
    - data
    argTypes:
    - JNIEnv*
    - jlong
    - jcharArray
    - jint
    - jintArray
    constantsTouched: []
    func_position:
      end: 236
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 236
    functionName: NativeConverter_flushByteToChar
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - ScopedCharArrayRW::get
    - ucnv_toUnicode
    - ScopedIntArrayRW::get
    - toUConverter
    linkageType: ''
    returnType: jint
    signature: "NativeConverter_flushByteToChar(JNIEnv* env, jclass, jlong address,\n
      \       jcharArray target, jint targetEnd, jintArray data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toUConverter
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:240,1
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:245,1
    - Dst: ScopedIntArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:249,1
    - Dst: ucnv_fromUnicode
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:259,1
    - Dst: reinterpret_cast<jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:260,1
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - env
    - address
    - target
    - targetEnd
    - data
    argTypes:
    - JNIEnv*
    - jlong
    - jbyteArray
    - jint
    - jintArray
    constantsTouched: []
    func_position:
      end: 262
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 262
    functionName: NativeConverter_flushCharToByte
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - ScopedIntArrayRW::get
    - reinterpret_cast<jbyte*>
    - ScopedByteArrayRW::get
    - ucnv_fromUnicode
    - toUConverter
    linkageType: ''
    returnType: jint
    signature: "NativeConverter_flushCharToByte(JNIEnv* env, jclass, jlong address,\n
      \       jbyteArray target, jint targetEnd, jintArray data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toUConverter
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:266,1
    - Dst: UTF_APPEND_CHAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:280,1
    - Dst: ucnv_fromUnicode
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:282,1
    - Dst: U_SUCCESS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - address
    - codeUnit
    argTypes:
    - jlong
    - jint
    constantsTouched: []
    func_position:
      end: 284
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 284
    functionName: NativeConverter_canEncode
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - UTF_APPEND_CHAR
    - ucnv_fromUnicode
    - U_SUCCESS
    - toUConverter
    linkageType: ''
    returnType: jboolean
    signature: NativeConverter_canEncode(JNIEnv*, jclass, jlong address, jint codeUnit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_getStandardName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:300,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:301,1
    - Dst: ucnv_getStandardName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:302,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:303,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:312,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:319,1
    - Dst: ucnv_getAlias
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:320,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:326,1
    - Dst: char::char
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:326,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:327,1
    - Dst: strcat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:328,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:329,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - env
    - icuCanonicalName
    argTypes:
    - JNIEnv*
    - char*
    constantsTouched: []
    func_position:
      end: 330
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 330
    functionName: getJavaCanonicalName
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - ucnv_getStandardName
    - char::char
    - strcat
    - strchr
    - ucnv_getAlias
    - strlen
    - strcpy
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: getJavaCanonicalName(JNIEnv* env, const char* icuCanonicalName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::NewObjectArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:334,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:338,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 341
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 341
    functionName: NativeConverter_getAvailableCharsetNames
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - ScopedLocalRef::get
    - JNIEnv*::SetObjectArrayElement
    - JNIEnv*::NewObjectArray
    linkageType: ''
    returnType: jobjectArray
    signature: NativeConverter_getAvailableCharsetNames(JNIEnv* env, jclass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_countAliases
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:350,1
    - Dst: U_SUCCESS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:352,1
    - Dst: U_SUCCESS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:361,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:365,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:365,1
    - Dst: JNIEnv*::NewObjectArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:371,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:373,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:374,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:374,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - env
    - icuCanonicalName
    argTypes:
    - JNIEnv*
    - char*
    constantsTouched: []
    func_position:
      end: 377
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 377
    functionName: getAliases
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - ScopedLocalRef::get
    - JNIEnv*::SetObjectArrayElement
    - U_SUCCESS
    - strchr
    - ucnv_countAliases
    - JNIEnv*::NewObjectArray
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jobjectArray
    signature: getAliases(JNIEnv* env, const char* icuCanonicalName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ucnv_getCanonicalName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:382,1
    - Dst: ucnv_getCanonicalName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:384,1
    - Dst: ucnv_getCanonicalName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:386,1
    - Dst: ucnv_getAlias
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:388,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:391,1
    - Dst: ucnv_open
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:394,1
    - Dst: UniqueUConverter::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:395,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 400
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 400
    functionName: getICUCanonicalName
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - strstr
    - UniqueUConverter::get
    - ucnv_getAlias
    - ucnv_getCanonicalName
    - ucnv_open
    linkageType: ''
    returnType: char
    signature: '* getICUCanonicalName(const char* name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const EncoderCallbackContext*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:408,1
    - Dst: EncoderCallbackContext*::onUnmappableInput
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:411,1
    - Dst: EncoderCallbackContext*::onMalformedInput
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 7
    argNames:
    - rawContext
    - args
    - codeUnits
    - length
    - codePoint
    - reason
    - status
    argTypes:
    - void*
    - UConverterFromUnicodeArgs*
    - UChar*
    - int32_t
    - UChar32
    - UConverterCallbackReason
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 424
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 424
    functionName: CHARSET_ENCODER_CALLBACK
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - EncoderCallbackContext*::onUnmappableInput
    - reinterpret_cast<const EncoderCallbackContext*>
    - EncoderCallbackContext*::onMalformedInput
    linkageType: ''
    returnType: void
    signature: "CHARSET_ENCODER_CALLBACK(const void* rawContext, UConverterFromUnicodeArgs*
      args,\n        const UChar* codeUnits, int32_t length, UChar32 codePoint, UConverterCallbackReason
      reason,\n        UErrorCode* status)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const EncoderCallbackContext*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:432,1
    - Dst: ucnv_cbFromUWriteBytes
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - rawContext
    - fromArgs
    - err
    argTypes:
    - void*
    - UConverterFromUnicodeArgs*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 435
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 435
    functionName: encoderReplaceCallback
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const EncoderCallbackContext*>
    - ucnv_cbFromUWriteBytes
    linkageType: ''
    returnType: void
    signature: "encoderReplaceCallback(const void* rawContext,\n        UConverterFromUnicodeArgs*
      fromArgs, const UChar*, int32_t, UChar32,\n        UConverterCallbackReason,
      UErrorCode * err)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - mode
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 447
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 447
    functionName: getFromUCallback
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: UConverterFromUCallback
    signature: getFromUCallback(int32_t mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toUConverter
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:451,1
    - Dst: ucnv_getFromUCallBack
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:457,1
    - Dst: const_cast<const void**>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:457,1
    - Dst: EncoderCallbackContext::EncoderCallbackContext
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:466,1
    - Dst: const_cast<EncoderCallbackContext*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:469,1
    - Dst: reinterpret_cast<const EncoderCallbackContext*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:470,1
    - Dst: getFromUCallback
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:475,1
    - Dst: getFromUCallback
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:476,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:478,1
    - Dst: ScopedByteArrayRO::size
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:481,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:482,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:482,1
    - Dst: ScopedByteArrayRO::size
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:482,1
    - Dst: ucnv_setFromUCallBack
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:484,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 5
    argNames:
    - env
    - address
    - onMalformedInput
    - onUnmappableInput
    - subBytes
    argTypes:
    - JNIEnv*
    - jlong
    - jint
    - jint
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 487
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 487
    functionName: NativeConverter_setCallbackEncode
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - ScopedByteArrayRO::size
    - ucnv_setFromUCallBack
    - reinterpret_cast<const EncoderCallbackContext*>
    - ScopedByteArrayRO::get
    - const_cast<EncoderCallbackContext*>
    - const_cast<const void**>
    - ucnv_getFromUCallBack
    - EncoderCallbackContext::EncoderCallbackContext
    - getFromUCallback
    - memcpy
    - toUConverter
    linkageType: ''
    returnType: jint
    signature: "NativeConverter_setCallbackEncode(JNIEnv* env, jclass, jlong address,\n
      \       jint onMalformedInput, jint onUnmappableInput, jbyteArray subBytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 493
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 493
    functionName: decoderIgnoreCallback
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: decoderIgnoreCallback(const void*, UConverterToUnicodeArgs*, const
      char*, int32_t, UConverterCallbackReason, UErrorCode* err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const DecoderCallbackContext*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:501,1
    - Dst: ucnv_cbToUWriteUChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - rawContext
    - toArgs
    - err
    argTypes:
    - void*
    - UConverterToUnicodeArgs*
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 504
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 504
    functionName: decoderReplaceCallback
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - ucnv_cbToUWriteUChars
    - reinterpret_cast<const DecoderCallbackContext*>
    linkageType: ''
    returnType: void
    signature: "decoderReplaceCallback(const void* rawContext,\n        UConverterToUnicodeArgs*
      toArgs, const char*, int32_t, UConverterCallbackReason,\n        UErrorCode*
      err)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - mode
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 513
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 513
    functionName: getToUCallback
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: UConverterToUCallback
    signature: getToUCallback(int32_t mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const DecoderCallbackContext*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:521,1
    - Dst: DecoderCallbackContext*::onUnmappableInput
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:524,1
    - Dst: DecoderCallbackContext*::onMalformedInput
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 6
    argNames:
    - rawContext
    - args
    - codeUnits
    - length
    - reason
    - status
    argTypes:
    - void*
    - UConverterToUnicodeArgs*
    - char*
    - int32_t
    - UConverterCallbackReason
    - UErrorCode*
    constantsTouched: []
    func_position:
      end: 537
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 537
    functionName: CHARSET_DECODER_CALLBACK
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - DecoderCallbackContext*::onUnmappableInput
    - DecoderCallbackContext*::onMalformedInput
    - reinterpret_cast<const DecoderCallbackContext*>
    linkageType: ''
    returnType: void
    signature: "CHARSET_DECODER_CALLBACK(const void* rawContext, UConverterToUnicodeArgs*
      args,\n        const char* codeUnits, int32_t length,\n        UConverterCallbackReason
      reason, UErrorCode* status)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toUConverter
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:541,1
    - Dst: ucnv_getToUCallBack
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:548,1
    - Dst: DecoderCallbackContext::DecoderCallbackContext
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:557,1
    - Dst: const_cast<DecoderCallbackContext*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:560,1
    - Dst: reinterpret_cast<const DecoderCallbackContext*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:561,1
    - Dst: getToUCallback
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:566,1
    - Dst: getToUCallback
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:567,1
    - Dst: ScopedCharArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:569,1
    - Dst: ScopedCharArrayRO::size
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:572,1
    - Dst: u_strncpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:573,1
    - Dst: ScopedCharArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:573,1
    - Dst: ScopedCharArrayRO::size
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:573,1
    - Dst: ucnv_setToUCallBack
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:575,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 5
    argNames:
    - env
    - address
    - onMalformedInput
    - onUnmappableInput
    - subChars
    argTypes:
    - JNIEnv*
    - jlong
    - jint
    - jint
    - jcharArray
    constantsTouched: []
    func_position:
      end: 578
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 578
    functionName: NativeConverter_setCallbackDecode
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - ucnv_setToUCallBack
    - const_cast<DecoderCallbackContext*>
    - u_strncpy
    - reinterpret_cast<const DecoderCallbackContext*>
    - DecoderCallbackContext::DecoderCallbackContext
    - ucnv_getToUCallBack
    - ScopedCharArrayRO::size
    - getToUCallback
    - ScopedCharArrayRO::get
    - toUConverter
    linkageType: ''
    returnType: jint
    signature: "NativeConverter_setCallbackDecode(JNIEnv* env, jclass, jlong address,\n
      \       jint onMalformedInput, jint onUnmappableInput, jcharArray subChars)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NativeConverter_getMaxBytesPerChar
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - handle
    argTypes:
    - JNIEnv*
    - jlong
    constantsTouched: []
    func_position:
      end: 582
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 582
    functionName: NativeConverter_getAveCharsPerByte
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - NativeConverter_getMaxBytesPerChar
    linkageType: ''
    returnType: jfloat
    signature: NativeConverter_getAveCharsPerByte(JNIEnv* env, jclass, jlong handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toUConverter
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:585,1
    - Dst: ucnv_getSubstChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:592,1
    - Dst: U_SUCCESS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:593,1
    - Dst: JNIEnv*::NewByteArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:594,1
    - Dst: JNIEnv*::NewByteArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:596,1
    - Dst: JNIEnv*::SetByteArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:600,1
    - Dst: reinterpret_cast<jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - env
    - address
    argTypes:
    - JNIEnv*
    - jlong
    constantsTouched: []
    func_position:
      end: 602
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 602
    functionName: NativeConverter_getSubstitutionBytes
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - toUConverter
    - reinterpret_cast<jbyte*>
    - U_SUCCESS
    - JNIEnv*::SetByteArrayRegion
    - JNIEnv*::NewByteArray
    - ucnv_getSubstChars
    linkageType: ''
    returnType: jbyteArray
    signature: NativeConverter_getSubstitutionBytes(JNIEnv* env, jclass, jlong address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:606,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:610,1
    - Dst: ucnv_open
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:615,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:615,1
    - Dst: ucnv_getUnicodeSet
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:617,1
    - Dst: UniqueUConverter::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:617,1
    - Dst: UnicodeSet::toUSet
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:617,1
    - Dst: ucnv_open
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:619,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:619,1
    - Dst: ucnv_getUnicodeSet
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:621,1
    - Dst: UniqueUConverter::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:621,1
    - Dst: UnicodeSet::toUSet
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:621,1
    - Dst: U_SUCCESS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:623,1
    - Dst: UnicodeSet::containsAll
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:623,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - env
    - name1
    - name2
    argTypes:
    - JNIEnv*
    - jstring
    - jstring
    constantsTouched: []
    func_position:
      end: 624
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 624
    functionName: NativeConverter_contains
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - UniqueUConverter::get
    - ScopedUtfChars::c_str
    - UnicodeSet::containsAll
    - U_SUCCESS
    - UnicodeSet::toUSet
    - ucnv_getUnicodeSet
    - ucnv_open
    linkageType: ''
    returnType: jboolean
    signature: NativeConverter_contains(JNIEnv* env, jclass, jstring name1, jstring
      name2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:628,1
    - Dst: getJavaCanonicalName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:637,1
    - Dst: JNIEnv*::ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:638,1
    - Dst: ucnv_open
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:646,1
    - Dst: UniqueUConverter::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:647,1
    - Dst: UniqueUConverter::reset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:650,1
    - Dst: getAliases
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:653,1
    - Dst: JNIEnv*::ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:654,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:659,1
    - Dst: JNIEnv*::ExceptionOccurred
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:661,1
    - Dst: JNIEnv*::NewObject
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:664,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:665,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - env
    - charsetName
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 666
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 666
    functionName: NativeConverter_charsetForName
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetMethodID
    - UniqueUConverter::get
    - ScopedUtfChars::c_str
    - JNIEnv*::NewObject
    - getJavaCanonicalName
    - JNIEnv*::ExceptionOccurred
    - getAliases
    - UniqueUConverter::reset
    - ucnv_open
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jobject
    signature: NativeConverter_charsetForName(JNIEnv* env, jclass, jstring charsetName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:690,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 692
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 692
    functionName: register_com_ibm_icu4jni_converters_NativeConverter
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_com_ibm_icu4jni_converters_NativeConverter(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sin
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: Math_sin
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - sin
    linkageType: ''
    returnType: jdouble
    signature: Math_sin(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cos
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: Math_cos
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - cos
    linkageType: ''
    returnType: jdouble
    signature: Math_cos(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tan
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Math_tan
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - tan
    linkageType: ''
    returnType: jdouble
    signature: Math_tan(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asin
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Math_asin
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - asin
    linkageType: ''
    returnType: jdouble
    signature: Math_asin(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: acos
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Math_acos
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - acos
    linkageType: ''
    returnType: jdouble
    signature: Math_acos(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atan
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Math_atan
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - atan
    linkageType: ''
    returnType: jdouble
    signature: Math_atan(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: Math_exp
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - exp
    linkageType: ''
    returnType: jdouble
    signature: Math_exp(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Math_log
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - log
    linkageType: ''
    returnType: jdouble
    signature: Math_log(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: Math_sqrt
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - sqrt
    linkageType: ''
    returnType: jdouble
    signature: Math_sqrt(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: remainder
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - jdouble
    - jdouble
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Math_IEEEremainder
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - remainder
    linkageType: ''
    returnType: jdouble
    signature: Math_IEEEremainder(JNIEnv*, jclass, jdouble a, jdouble b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: floor
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Math_floor
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - floor
    linkageType: ''
    returnType: jdouble
    signature: Math_floor(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ceil
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Math_ceil
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - ceil
    linkageType: ''
    returnType: jdouble
    signature: Math_ceil(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rint
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: Math_rint
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - rint
    linkageType: ''
    returnType: jdouble
    signature: Math_rint(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atan2
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - jdouble
    - jdouble
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: Math_atan2
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - atan2
    linkageType: ''
    returnType: jdouble
    signature: Math_atan2(JNIEnv*, jclass, jdouble a, jdouble b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pow
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - jdouble
    - jdouble
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Math_pow
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - pow
    linkageType: ''
    returnType: jdouble
    signature: Math_pow(JNIEnv*, jclass, jdouble a, jdouble b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sinh
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: Math_sinh
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - sinh
    linkageType: ''
    returnType: jdouble
    signature: Math_sinh(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tanh
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Math_tanh
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - tanh
    linkageType: ''
    returnType: jdouble
    signature: Math_tanh(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cosh
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Math_cosh
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - cosh
    linkageType: ''
    returnType: jdouble
    signature: Math_cosh(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: log10
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: Math_log10
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - log10
    linkageType: ''
    returnType: jdouble
    signature: Math_log10(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cbrt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: Math_cbrt
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - cbrt
    linkageType: ''
    returnType: jdouble
    signature: Math_cbrt(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: expm1
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: Math_expm1
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - expm1
    linkageType: ''
    returnType: jdouble
    signature: Math_expm1(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hypot
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - jdouble
    - jdouble
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Math_hypot
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - hypot
    linkageType: ''
    returnType: jdouble
    signature: Math_hypot(JNIEnv*, jclass, jdouble a, jdouble b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: log1p
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: Math_log1p
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - log1p
    linkageType: ''
    returnType: jdouble
    signature: Math_log1p(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nextafter
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - jdouble
    - jdouble
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: Math_nextafter
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - nextafter
    linkageType: ''
    returnType: jdouble
    signature: Math_nextafter(JNIEnv*, jclass, jdouble a, jdouble b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nextafterf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - jfloat
    - jfloat
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: Math_nextafterf
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - nextafterf
    linkageType: ''
    returnType: jfloat
    signature: Math_nextafterf(JNIEnv*, jclass, jfloat a, jfloat b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:155,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: register_java_lang_Math
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_java_lang_Math(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetStaticMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/valueOf.cpp:25,1
    - Dst: JNIEnv*::CallStaticObjectMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/valueOf.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - env
    - c
    - signature
    - ' value'
    argTypes:
    - JNIEnv*
    - jclass
    - char*
    - T
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: valueOf
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/valueOf.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStaticMethodID
    - JNIEnv*::CallStaticObjectMethod
    linkageType: ''
    returnType: jobject
    signature: valueOf(JNIEnv* env, jclass c, const char* signature, const T& value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: valueOf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/valueOf.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - value
    argTypes:
    - JNIEnv*
    - jboolean
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: booleanValueOf
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/valueOf.cpp
    functionUses: 2
    functionsReached:
    - valueOf
    linkageType: ''
    returnType: jobject
    signature: booleanValueOf(JNIEnv* env, jboolean value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: valueOf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/valueOf.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - value
    argTypes:
    - JNIEnv*
    - jdouble
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: doubleValueOf
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/valueOf.cpp
    functionUses: 0
    functionsReached:
    - valueOf
    linkageType: ''
    returnType: jobject
    signature: doubleValueOf(JNIEnv* env, jdouble value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: valueOf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/valueOf.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - value
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: integerValueOf
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/valueOf.cpp
    functionUses: 2
    functionsReached:
    - valueOf
    linkageType: ''
    returnType: jobject
    signature: integerValueOf(JNIEnv* env, jint value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: valueOf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/valueOf.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - value
    argTypes:
    - JNIEnv*
    - jlong
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: longValueOf
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/valueOf.cpp
    functionUses: 0
    functionsReached:
    - valueOf
    linkageType: ''
    returnType: jobject
    signature: longValueOf(JNIEnv* env, jlong value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectOutputStream.cpp:53,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectOutputStream.cpp:57,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectOutputStream.cpp:60,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectOutputStream.cpp:60,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectOutputStream.cpp:60,1
    - Dst: JNIEnv*::GetObjectField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectOutputStream.cpp:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - env
    - instance
    - declaringClass
    - javaFieldName
    - javaFieldTypeName
    argTypes:
    - JNIEnv*
    - jobject
    - jclass
    - jstring
    - jstring
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: ObjectOutputStream_getFieldObj
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectOutputStream.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetFieldID
    - ScopedUtfChars::c_str
    - JNIEnv*::GetObjectField
    linkageType: ''
    returnType: jobject
    signature: "ObjectOutputStream_getFieldObj(JNIEnv* env, jclass, jobject instance,\n
      \       jclass declaringClass, jstring javaFieldName, jstring javaFieldTypeName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectOutputStream.cpp:79,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectOutputStream.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: register_java_io_ObjectOutputStream
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectOutputStream.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_java_io_ObjectOutputStream(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: blockedThreadSignalHandler
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/AsynchronousSocketCloseMonitor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: blockedThreadSignalHandler(int /*signal*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/AsynchronousSocketCloseMonitor.cpp:51,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/AsynchronousSocketCloseMonitor.cpp:56,1
    - Dst: strerror
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/AsynchronousSocketCloseMonitor.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: AsynchronousSocketCloseMonitor::init
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/AsynchronousSocketCloseMonitor.cpp
    functionUses: 1
    functionsReached:
    - strerror
    - memset
    - LOGE
    linkageType: ''
    returnType: void
    signature: AsynchronousSocketCloseMonitor::init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_kill
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/AsynchronousSocketCloseMonitor.cpp:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: AsynchronousSocketCloseMonitor::signalBlockedThreads
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/AsynchronousSocketCloseMonitor.cpp
    functionUses: 1
    functionsReached:
    - pthread_kill
    linkageType: ''
    returnType: void
    signature: AsynchronousSocketCloseMonitor::signalBlockedThreads(int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_self
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/AsynchronousSocketCloseMonitor.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 82
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 82
    functionName: AsynchronousSocketCloseMonitor::AsynchronousSocketCloseMonitor
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/AsynchronousSocketCloseMonitor.cpp
    functionUses: 0
    functionsReached:
    - pthread_self
    linkageType: ''
    returnType: void
    signature: AsynchronousSocketCloseMonitor::AsynchronousSocketCloseMonitor(int
      fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 95
    functionName: AsynchronousSocketCloseMonitor::~AsynchronousSocketCloseMonitor()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/AsynchronousSocketCloseMonitor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: AsynchronousSocketCloseMonitor::~AsynchronousSocketCloseMonitor()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:71,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:72,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:73,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:74,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:75,1
    - Dst: simpleShiftLeftHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:81,1
    - Dst: simpleShiftLeftHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:84,1
    - Dst: simpleShiftLeftHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:94,1
    - Dst: simpleShiftLeftHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:98,1
    - Dst: simpleShiftLeftHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:100,1
    - Dst: simpleShiftLeftHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:109,1
    - Dst: simpleShiftLeftHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:116,1
    - Dst: static_cast<int>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:122,1
    - Dst: ceil
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:122,1
    - Dst: timesTenToTheEHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:126,1
    - Dst: timesTenToTheEHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:130,1
    - Dst: timesTenToTheEHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:131,1
    - Dst: timesTenToTheEHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:132,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:138,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:139,1
    - Dst: addHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:150,1
    - Dst: compareHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:152,1
    - Dst: simpleAppendDecimalDigitHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:159,1
    - Dst: simpleAppendDecimalDigitHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:160,1
    - Dst: simpleAppendDecimalDigitHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:161,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:170,1
    - Dst: reinterpret_cast<jintArray>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:171,1
    - Dst: JNIEnv*::GetObjectField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:171,1
    - Dst: ScopedIntArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:173,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:185,1
    - Dst: simpleShiftLeftHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:186,1
    - Dst: compareHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:187,1
    - Dst: subtractHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:189,1
    - Dst: compareHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:194,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:196,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:197,1
    - Dst: addHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:199,1
    - Dst: compareHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:201,1
    - Dst: simpleAppendDecimalDigitHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:206,1
    - Dst: simpleAppendDecimalDigitHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:207,1
    - Dst: simpleAppendDecimalDigitHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:208,1
    - Dst: simpleShiftLeftHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:219,1
    - Dst: compareHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:224,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:229,1
    - Dst: JNIEnv*::SetIntField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:230,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:232,1
    - Dst: JNIEnv*::SetIntField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:233,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 113
    argCount: 6
    argNames:
    - env
    - obj
    - f
    - e
    - isDenormalized
    - p
    argTypes:
    - JNIEnv*
    - jobject
    - jlong
    - jint
    - jboolean
    - jint
    constantsTouched: []
    func_position:
      end: 234
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 234
    functionName: RealToString_bigIntDigitGenerator
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<jintArray>
    - ScopedIntArrayRW::get
    - subtractHighPrecision
    - JNIEnv*::GetFieldID
    - ceil
    - timesTenToTheEHighPrecision
    - memset
    - static_cast<int>
    - compareHighPrecision
    - simpleAppendDecimalDigitHighPrecision
    - memcpy
    - simpleShiftLeftHighPrecision
    - addHighPrecision
    - JNIEnv*::SetIntField
    - JNIEnv*::GetObjectField
    linkageType: ''
    returnType: void
    signature: "RealToString_bigIntDigitGenerator(JNIEnv* env, jobject obj, jlong
      f, jint e,\n        jboolean isDenormalized, jint p)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:240,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: register_java_lang_RealToString
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_java_lang_RealToString(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:33,1
    - Dst: JNIEnv*::NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:34,1
    - Dst: UnicodeString::getBuffer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:34,1
    - Dst: UnicodeString::length
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - env
    - ' fmt'
    - ' when'
    argTypes:
    - JNIEnv*
    - SimpleDateFormat
    - UDate
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: formatDate
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::NewString
    - UnicodeString::length
    - UnicodeString::getBuffer
    - format
    linkageType: ''
    returnType: jstring
    signature: formatDate(JNIEnv* env, const SimpleDateFormat& fmt, const UDate& when)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimeZone::createTimeZone
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:39,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - javaZoneId
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: timeZoneFromId
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp
    functionUses: 0
    functionsReached:
    - ScopedJavaUnicodeString::unicodeString
    - TimeZone::createTimeZone
    linkageType: ''
    returnType: TimeZone
    signature: '* timeZoneFromId(JNIEnv* env, jstring javaZoneId)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:44,1
    - Dst: TimeZone::createEnumeration
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:48,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:48,1
    - Dst: UniquePtr::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:49,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:54,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:55,1
    - Dst: JNIEnv*::NewObjectArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:59,1
    - Dst: UniquePtr::snext
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:61,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:62,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:63,1
    - Dst: JNIEnv*::NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:66,1
    - Dst: UnicodeString*::getBuffer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:66,1
    - Dst: UnicodeString*::length
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:66,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:67,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - env
    - countryCode
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 70
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 70
    functionName: TimeZones_forCountryCode
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp
    functionUses: 0
    functionsReached:
    - UniquePtr::snext
    - ScopedLocalRef::get
    - UnicodeString*::length
    - JNIEnv*::SetObjectArrayElement
    - ScopedUtfChars::c_str
    - UniquePtr::get
    - JNIEnv*::NewObjectArray
    - TimeZone::createEnumeration
    - JNIEnv*::NewString
    - icu4jni_error
    - UnicodeString*::getBuffer
    - U_FAILURE
    linkageType: ''
    returnType: jobjectArray
    signature: TimeZones_forCountryCode(JNIEnv* env, jclass, jstring countryCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getLocale
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:74,1
    - Dst: UniquePtr::getDisplayName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:77,1
    - Dst: JNIEnv*::NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:78,1
    - Dst: UnicodeString::getBuffer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:78,1
    - Dst: UnicodeString::length
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - env
    - zoneId
    - isDST
    - style
    - localeId
    argTypes:
    - JNIEnv*
    - jstring
    - jboolean
    - jint
    - jstring
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: TimeZones_getDisplayNameImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp
    functionUses: 0
    functionsReached:
    - getLocale
    - UniquePtr::getDisplayName
    - UnicodeString::getBuffer
    - UnicodeString::length
    - JNIEnv*::NewString
    linkageType: ''
    returnType: jstring
    signature: TimeZones_getDisplayNameImpl(JNIEnv* env, jclass, jstring zoneId, jboolean
      isDST, jint style, jstring localeId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getLocale
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:82,1
    - Dst: JNIEnv*::GetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:93,1
    - Dst: JNIEnv*::GetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:94,1
    - Dst: JNIEnv*::GetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:95,1
    - Dst: JNIEnv*::GetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:96,1
    - Dst: JNIEnv*::GetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:103,1
    - Dst: reinterpret_cast<jstring>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:106,1
    - Dst: JNIEnv*::GetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:106,1
    - Dst: timeZoneFromId
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:107,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:107,1
    - Dst: SimpleDateFormat::setTimeZone
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:109,1
    - Dst: SimpleDateFormat::setTimeZone
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:110,1
    - Dst: UniquePtr::getOffset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:114,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:129,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:129,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:132,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:132,1
    - Dst: UniquePtr::useDaylightTime
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:134,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:136,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:136,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:139,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:139,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:141,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:141,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:142,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - env
    - outerArray
    - localeName
    argTypes:
    - JNIEnv*
    - jobjectArray
    - jstring
    constantsTouched: []
    func_position:
      end: 145
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 145
    functionName: TimeZones_getZoneStringsImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp
    functionUses: 0
    functionsReached:
    - ScopedLocalRef::get
    - JNIEnv*::GetObjectArrayElement
    - UniquePtr::useDaylightTime
    - JNIEnv*::SetObjectArrayElement
    - getLocale
    - UniquePtr::getOffset
    - timeZoneFromId
    - reinterpret_cast<jstring>
    - SimpleDateFormat::setTimeZone
    linkageType: ''
    returnType: void
    signature: TimeZones_getZoneStringsImpl(JNIEnv* env, jclass, jobjectArray outerArray,
      jstring localeName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:153,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: register_libcore_icu_TimeZones
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_libcore_icu_TimeZones(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowOutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h:29,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h:31,1
    - Dst: zError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - env
    - exceptionClassName
    - error
    argTypes:
    - JNIEnv*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: throwExceptionForZlibError
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h
    functionUses: 3
    functionsReached:
    - zError
    - jniThrowException
    - jniThrowOutOfMemoryError
    linkageType: ''
    returnType: void
    signature: throwExceptionForZlibError(JNIEnv* env, const char* exceptionClassName,
      int error)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: NativeZipStream::NativeZipStream
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: NativeZipStream()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: ~NativeZipStream()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~NativeZipStream()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jbyte::jbyte
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h:52,1
    - Dst: UniquePtr::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h:53,1
    - Dst: jniThrowOutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h:54,1
    - Dst: JNIEnv*::GetByteArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h:57,1
    - Dst: reinterpret_cast<const Bytef*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h:58,1
    - Dst: inflateSetDictionary
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h:61,1
    - Dst: deflateSetDictionary
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h:63,1
    - Dst: throwExceptionForZlibError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h:66,1
    - Dst: reset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h:69,1
    - Dst: UniquePtr::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - env
    - javaDictionary
    - 'off'
    - len
    - inflate
    argTypes:
    - JNIEnv*
    - jbyteArray
    - int
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 70
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 70
    functionName: NativeZipStream::setDictionary
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const Bytef*>
    - jbyte::jbyte
    - jniThrowOutOfMemoryError
    - UniquePtr::get
    - inflateSetDictionary
    - reset
    - deflateSetDictionary
    - throwExceptionForZlibError
    - JNIEnv*::GetByteArrayRegion
    - UniquePtr::release
    linkageType: ''
    returnType: void
    signature: setDictionary(JNIEnv* env, jbyteArray javaDictionary, int off, int
      len, bool inflate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h:73,1
    - Dst: jbyte::jbyte
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h:73,1
    - Dst: get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h:74,1
    - Dst: jniThrowOutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h:76,1
    - Dst: JNIEnv*::GetByteArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h:81,1
    - Dst: reinterpret_cast<Bytef*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - env
    - buf
    - 'off'
    - len
    argTypes:
    - JNIEnv*
    - jbyteArray
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 85
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 85
    functionName: NativeZipStream::setInput
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h
    functionUses: 0
    functionsReached:
    - get
    - jbyte::jbyte
    - jniThrowOutOfMemoryError
    - reset
    - reinterpret_cast<Bytef*>
    - JNIEnv*::GetByteArrayRegion
    linkageType: ''
    returnType: void
    signature: setInput(JNIEnv* env, jbyteArray buf, jint off, jint len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<NativeZipStream*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h:96,1
    - Dst: static_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: toNativeZipStream
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h
    functionUses: 8
    functionsReached:
    - static_cast<uintptr_t>
    - reinterpret_cast<NativeZipStream*>
    linkageType: ''
    returnType: NativeZipStream
    signature: '* toNativeZipStream(jlong address)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<RegexMatcher*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:34,1
    - Dst: static_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: toRegexMatcher
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uintptr_t>
    - reinterpret_cast<RegexMatcher*>
    linkageType: ''
    returnType: RegexMatcher
    signature: '* toRegexMatcher(jint addr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MatcherAccessor::init
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:46,1
    - Dst: JNIEnv*::GetStringChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:49,1
    - Dst: utext_openUChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:54,1
    - Dst: JNIEnv*::GetStringLength
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:54,1
    - Dst: reset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:60,1
    - Dst: refreshInputText
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - env
    - addr
    - javaInput
    - reset
    argTypes:
    - JNIEnv*
    - jint
    - jstring
    - bool
    constantsTouched: []
    func_position:
      end: 64
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 64
    functionName: MatcherAccessor::MatcherAccessor
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp
    functionUses: 0
    functionsReached:
    - utext_openUChars
    - JNIEnv*::GetStringChars
    - reset
    - MatcherAccessor::init
    - refreshInputText
    - JNIEnv*::GetStringLength
    linkageType: ''
    returnType: void
    signature: MatcherAccessor(JNIEnv* env, jint addr, jstring javaInput, bool reset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MatcherAccessor::init
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - addr
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: MatcherAccessor::MatcherAccessor
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp
    functionUses: 0
    functionsReached:
    - MatcherAccessor::init
    linkageType: ''
    returnType: void
    signature: MatcherAccessor(JNIEnv* env, jint addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: utext_close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:71,1
    - Dst: ReleaseStringChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:73,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: ~MatcherAccessor()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp
    functionUses: 0
    functionsReached:
    - icu4jni_error
    - ReleaseStringChars
    - utext_close
    linkageType: ''
    returnType: void
    signature: ~MatcherAccessor()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: '* operator->()'
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RegexMatcher
    signature: '* operator->()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: '& status()'
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UErrorCode
    signature: '& status()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedIntArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:88,1
    - Dst: start
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:93,1
    - Dst: end
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - javaOffsets
    argTypes:
    - jintArray
    constantsTouched: []
    func_position:
      end: 96
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 96
    functionName: MatcherAccessor::updateOffsets
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp
    functionUses: 0
    functionsReached:
    - end
    - ScopedIntArrayRW::get
    - start
    linkageType: ''
    returnType: void
    signature: updateOffsets(jintArray javaOffsets)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toRegexMatcher
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - env
    - addr
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 106
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 106
    functionName: MatcherAccessor::init
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp
    functionUses: 2
    functionsReached:
    - toRegexMatcher
    linkageType: ''
    returnType: void
    signature: init(JNIEnv* env, jint addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toRegexMatcher
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: Matcher_closeImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp
    functionUses: 0
    functionsReached:
    - toRegexMatcher
    linkageType: ''
    returnType: void
    signature: Matcher_closeImpl(JNIEnv*, jclass, jint addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MatcherAccessor::find
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:126,1
    - Dst: MatcherAccessor::status
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:126,1
    - Dst: MatcherAccessor::updateOffsets
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - env
    - addr
    - javaText
    - startIndex
    - offsets
    argTypes:
    - JNIEnv*
    - jint
    - jstring
    - jint
    - jintArray
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: Matcher_findImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp
    functionUses: 0
    functionsReached:
    - MatcherAccessor::find
    - MatcherAccessor::updateOffsets
    - MatcherAccessor::status
    linkageType: ''
    returnType: jint
    signature: Matcher_findImpl(JNIEnv* env, jclass, jint addr, jstring javaText,
      jint startIndex, jintArray offsets)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MatcherAccessor::status
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:135,1
    - Dst: MatcherAccessor::find
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:138,1
    - Dst: MatcherAccessor::updateOffsets
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - env
    - addr
    - javaText
    - offsets
    argTypes:
    - JNIEnv*
    - jint
    - jstring
    - jintArray
    constantsTouched: []
    func_position:
      end: 143
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 143
    functionName: Matcher_findNextImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp
    functionUses: 0
    functionsReached:
    - MatcherAccessor::find
    - MatcherAccessor::updateOffsets
    - MatcherAccessor::status
    linkageType: ''
    returnType: jint
    signature: Matcher_findNextImpl(JNIEnv* env, jclass, jint addr, jstring javaText,
      jintArray offsets)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MatcherAccessor::groupCount
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - addr
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: Matcher_groupCountImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp
    functionUses: 0
    functionsReached:
    - MatcherAccessor::groupCount
    linkageType: ''
    returnType: jint
    signature: Matcher_groupCountImpl(JNIEnv* env, jclass, jint addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MatcherAccessor::hitEnd
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - addr
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: Matcher_hitEndImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp
    functionUses: 0
    functionsReached:
    - MatcherAccessor::hitEnd
    linkageType: ''
    returnType: jint
    signature: Matcher_hitEndImpl(JNIEnv* env, jclass, jint addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MatcherAccessor::lookingAt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:157,1
    - Dst: MatcherAccessor::status
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:157,1
    - Dst: MatcherAccessor::updateOffsets
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - env
    - addr
    - javaText
    - offsets
    argTypes:
    - JNIEnv*
    - jint
    - jstring
    - jintArray
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 162
    functionName: Matcher_lookingAtImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp
    functionUses: 0
    functionsReached:
    - MatcherAccessor::updateOffsets
    - MatcherAccessor::lookingAt
    - MatcherAccessor::status
    linkageType: ''
    returnType: jint
    signature: Matcher_lookingAtImpl(JNIEnv* env, jclass, jint addr, jstring javaText,
      jintArray offsets)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MatcherAccessor::matches
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:166,1
    - Dst: MatcherAccessor::status
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:166,1
    - Dst: MatcherAccessor::updateOffsets
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - env
    - addr
    - javaText
    - offsets
    argTypes:
    - JNIEnv*
    - jint
    - jstring
    - jintArray
    constantsTouched: []
    func_position:
      end: 171
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 171
    functionName: Matcher_matchesImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp
    functionUses: 0
    functionsReached:
    - MatcherAccessor::status
    - MatcherAccessor::updateOffsets
    - MatcherAccessor::matches
    linkageType: ''
    returnType: jint
    signature: Matcher_matchesImpl(JNIEnv* env, jclass, jint addr, jstring javaText,
      jintArray offsets)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<RegexPattern*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:174,1
    - Dst: static_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:174,1
    - Dst: RegexPattern*::matcher
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:176,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:177,1
    - Dst: static_cast<jint>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:178,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - patternAddr
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: Matcher_openImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uintptr_t>
    - reinterpret_cast<uintptr_t>
    - reinterpret_cast<RegexPattern*>
    - static_cast<jint>
    - RegexPattern*::matcher
    - icu4jni_error
    linkageType: ''
    returnType: jint
    signature: Matcher_openImpl(JNIEnv* env, jclass, jint patternAddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MatcherAccessor::requireEnd
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - addr
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: Matcher_requireEndImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp
    functionUses: 0
    functionsReached:
    - MatcherAccessor::requireEnd
    linkageType: ''
    returnType: jint
    signature: Matcher_requireEndImpl(JNIEnv* env, jclass, jint addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MatcherAccessor::region
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:188,1
    - Dst: MatcherAccessor::status
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - env
    - addr
    - javaText
    - start
    - end
    argTypes:
    - JNIEnv*
    - jint
    - jstring
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: Matcher_setInputImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp
    functionUses: 0
    functionsReached:
    - MatcherAccessor::region
    - MatcherAccessor::status
    linkageType: ''
    returnType: void
    signature: Matcher_setInputImpl(JNIEnv* env, jclass, jint addr, jstring javaText,
      jint start, jint end)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MatcherAccessor::useAnchoringBounds
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - env
    - addr
    - value
    argTypes:
    - JNIEnv*
    - jint
    - jboolean
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: Matcher_useAnchoringBoundsImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp
    functionUses: 0
    functionsReached:
    - MatcherAccessor::useAnchoringBounds
    linkageType: ''
    returnType: void
    signature: Matcher_useAnchoringBoundsImpl(JNIEnv* env, jclass, jint addr, jboolean
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MatcherAccessor::useTransparentBounds
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - env
    - addr
    - value
    argTypes:
    - JNIEnv*
    - jint
    - jboolean
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: Matcher_useTransparentBoundsImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp
    functionUses: 0
    functionsReached:
    - MatcherAccessor::useTransparentBounds
    linkageType: ''
    returnType: void
    signature: Matcher_useTransparentBoundsImpl(JNIEnv* env, jclass, jint addr, jboolean
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:216,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: register_java_util_regex_Matcher
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_java_util_regex_Matcher(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:31,1
    - Dst: ubrk_open
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:34,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:34,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:35,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - env
    - locale
    - type
    argTypes:
    - JNIEnv*
    - jstring
    - UBreakIteratorType
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: getIterator
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - ubrk_open
    - icu4jni_error
    - ScopedUtfChars::c_str
    linkageType: ''
    returnType: jint
    signature: getIterator(JNIEnv* env, jstring locale, UBreakIteratorType type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getIterator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - locale
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: NativeBreakIterator_getCharacterInstanceImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp
    functionUses: 0
    functionsReached:
    - getIterator
    linkageType: ''
    returnType: jint
    signature: NativeBreakIterator_getCharacterInstanceImpl(JNIEnv* env, jclass, jstring
      locale)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getIterator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - locale
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: NativeBreakIterator_getLineInstanceImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp
    functionUses: 0
    functionsReached:
    - getIterator
    linkageType: ''
    returnType: jint
    signature: NativeBreakIterator_getLineInstanceImpl(JNIEnv* env, jclass, jstring
      locale)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getIterator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - locale
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: NativeBreakIterator_getSentenceInstanceImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp
    functionUses: 0
    functionsReached:
    - getIterator
    linkageType: ''
    returnType: jint
    signature: NativeBreakIterator_getSentenceInstanceImpl(JNIEnv* env, jclass, jstring
      locale)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getIterator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - locale
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: NativeBreakIterator_getWordInstanceImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp
    functionUses: 0
    functionsReached:
    - getIterator
    linkageType: ''
    returnType: jint
    signature: NativeBreakIterator_getWordInstanceImpl(JNIEnv* env, jclass, jstring
      locale)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<UBreakIterator*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:56,1
    - Dst: static_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: breakIterator
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uintptr_t>
    - reinterpret_cast<UBreakIterator*>
    linkageType: ''
    returnType: UBreakIterator
    signature: '* breakIterator(jint address)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ubrk_close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:60,1
    - Dst: breakIterator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: NativeBreakIterator_closeBreakIteratorImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp
    functionUses: 0
    functionsReached:
    - breakIterator
    - ubrk_close
    linkageType: ''
    returnType: void
    signature: NativeBreakIterator_closeBreakIteratorImpl(JNIEnv*, jclass, jint address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ubrk_safeClone
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:66,1
    - Dst: breakIterator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:66,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:67,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: NativeBreakIterator_cloneImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp
    functionUses: 0
    functionsReached:
    - ubrk_safeClone
    - reinterpret_cast<uintptr_t>
    - icu4jni_error
    - breakIterator
    linkageType: ''
    returnType: jint
    signature: NativeBreakIterator_cloneImpl(JNIEnv* env, jclass, jint address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: s
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:73,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:73,1
    - Dst: ubrk_setText
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:75,1
    - Dst: breakIterator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:75,1
    - Dst: getBuffer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:75,1
    - Dst: length
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:75,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - env
    - address
    - javaText
    argTypes:
    - JNIEnv*
    - jint
    - jstring
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: NativeBreakIterator_setTextImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp
    functionUses: 0
    functionsReached:
    - ScopedJavaUnicodeString::unicodeString
    - ubrk_setText
    - s
    - breakIterator
    - getBuffer
    - icu4jni_error
    - length
    linkageType: ''
    returnType: void
    signature: NativeBreakIterator_setTextImpl(JNIEnv* env, jclass, jint address,
      jstring javaText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ubrk_isBoundary
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:80,1
    - Dst: breakIterator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - address
    - offset
    argTypes:
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: NativeBreakIterator_isBoundaryImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp
    functionUses: 0
    functionsReached:
    - ubrk_isBoundary
    - breakIterator
    linkageType: ''
    returnType: jboolean
    signature: NativeBreakIterator_isBoundaryImpl(JNIEnv*, jclass, jint address, jint
      offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: breakIterator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:84,1
    - Dst: ubrk_previous
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:87,1
    - Dst: ubrk_previous
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:89,1
    - Dst: ubrk_current
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:91,1
    - Dst: ubrk_next
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:94,1
    - Dst: ubrk_next
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - address
    - n
    argTypes:
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 99
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 99
    functionName: NativeBreakIterator_nextImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp
    functionUses: 0
    functionsReached:
    - ubrk_previous
    - ubrk_current
    - ubrk_next
    - breakIterator
    linkageType: ''
    returnType: jint
    signature: NativeBreakIterator_nextImpl(JNIEnv*, jclass, jint address, jint n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ubrk_preceding
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:102,1
    - Dst: breakIterator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - address
    - offset
    argTypes:
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: NativeBreakIterator_precedingImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp
    functionUses: 0
    functionsReached:
    - ubrk_preceding
    - breakIterator
    linkageType: ''
    returnType: jint
    signature: NativeBreakIterator_precedingImpl(JNIEnv*, jclass, jint address, jint
      offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ubrk_first
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:106,1
    - Dst: breakIterator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: NativeBreakIterator_firstImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp
    functionUses: 0
    functionsReached:
    - breakIterator
    - ubrk_first
    linkageType: ''
    returnType: jint
    signature: NativeBreakIterator_firstImpl(JNIEnv*, jclass, jint address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ubrk_following
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:110,1
    - Dst: breakIterator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - address
    - offset
    argTypes:
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: NativeBreakIterator_followingImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp
    functionUses: 0
    functionsReached:
    - ubrk_following
    - breakIterator
    linkageType: ''
    returnType: jint
    signature: NativeBreakIterator_followingImpl(JNIEnv*, jclass, jint address, jint
      offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ubrk_current
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:114,1
    - Dst: breakIterator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: NativeBreakIterator_currentImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp
    functionUses: 0
    functionsReached:
    - ubrk_current
    - breakIterator
    linkageType: ''
    returnType: jint
    signature: NativeBreakIterator_currentImpl(JNIEnv*, jclass, jint address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ubrk_previous
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:118,1
    - Dst: breakIterator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: NativeBreakIterator_previousImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp
    functionUses: 0
    functionsReached:
    - ubrk_previous
    - breakIterator
    linkageType: ''
    returnType: jint
    signature: NativeBreakIterator_previousImpl(JNIEnv*, jclass, jint address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ubrk_last
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:122,1
    - Dst: breakIterator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: NativeBreakIterator_lastImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp
    functionUses: 0
    functionsReached:
    - ubrk_last
    - breakIterator
    linkageType: ''
    returnType: jint
    signature: NativeBreakIterator_lastImpl(JNIEnv*, jclass, jint address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:143,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: register_com_ibm_icu4jni_text_NativeBreakIterator
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_com_ibm_icu4jni_text_NativeBreakIterator(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isnanf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Float.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - jfloat
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: Float_floatToIntBits
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Float.cpp
    functionUses: 0
    functionsReached:
    - isnanf
    linkageType: ''
    returnType: jint
    signature: Float_floatToIntBits(JNIEnv*, jclass, jfloat val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - jfloat
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: Float_floatToRawIntBits
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Float.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: jint
    signature: Float_floatToRawIntBits(JNIEnv*, jclass, jfloat val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: Float_intBitsToFloat
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Float.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: jfloat
    signature: Float_intBitsToFloat(JNIEnv*, jclass, jint val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Float.cpp:58,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Float.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: register_java_lang_Float
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Float.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_java_lang_Float(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_CRC32.cpp:28,1
    - Dst: crc32
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_CRC32.cpp:31,1
    - Dst: reinterpret_cast<const Bytef*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_CRC32.cpp:31,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_CRC32.cpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - env
    - byteArray
    - 'off'
    - len
    - crc
    argTypes:
    - JNIEnv*
    - jbyteArray
    - int
    - int
    - jlong
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: CRC32_updateImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_CRC32.cpp
    functionUses: 0
    functionsReached:
    - crc32
    - reinterpret_cast<const Bytef*>
    - ScopedByteArrayRO::get
    linkageType: ''
    returnType: jlong
    signature: CRC32_updateImpl(JNIEnv* env, jobject, jbyteArray byteArray, int off,
      int len, jlong crc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crc32
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_CRC32.cpp:36,1
    - Dst: reinterpret_cast<const Bytef*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_CRC32.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - crc
    argTypes:
    - jbyte
    - jlong
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: CRC32_updateByteImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_CRC32.cpp
    functionUses: 0
    functionsReached:
    - crc32
    - reinterpret_cast<const Bytef*>
    linkageType: ''
    returnType: jlong
    signature: CRC32_updateByteImpl(JNIEnv*, jobject, jbyte val, jlong crc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_CRC32.cpp:44,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_CRC32.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: register_java_util_zip_CRC32
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_CRC32.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_java_util_zip_CRC32(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:42,1
    - Dst: remove
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:45,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - env
    - javaPath
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: File_deleteImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - ScopedUtfChars::c_str
    - remove
    linkageType: ''
    returnType: jboolean
    signature: File_deleteImpl(JNIEnv* env, jclass, jstring javaPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:50,1
    - Dst: stat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:53,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - env
    - javaPath
    - ' sb'
    argTypes:
    - JNIEnv*
    - jstring
    - struct stat
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: doStat
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - stat
    - ScopedUtfChars::c_str
    linkageType: ''
    returnType: bool
    signature: doStat(JNIEnv* env, jstring javaPath, struct stat& sb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doStat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:58,1
    - Dst: S_ISREG
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - env
    - javaPath
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 78
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 78
    functionName: File_lengthImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - S_ISREG
    - doStat
    linkageType: ''
    returnType: jlong
    signature: File_lengthImpl(JNIEnv* env, jclass, jstring javaPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doStat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:82,1
    - Dst: static_cast<jlong>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - env
    - javaPath
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: File_lastModifiedImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - static_cast<jlong>
    - doStat
    linkageType: ''
    returnType: jlong
    signature: File_lastModifiedImpl(JNIEnv* env, jclass, jstring javaPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doStat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:90,1
    - Dst: S_ISDIR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - env
    - javaPath
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: File_isDirectoryImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - doStat
    - S_ISDIR
    linkageType: ''
    returnType: jboolean
    signature: File_isDirectoryImpl(JNIEnv* env, jclass, jstring javaPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doStat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:95,1
    - Dst: S_ISREG
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - env
    - javaPath
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: File_isFileImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - S_ISREG
    - doStat
    linkageType: ''
    returnType: jboolean
    signature: File_isFileImpl(JNIEnv* env, jclass, jstring javaPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:100,1
    - Dst: access
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:103,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - env
    - javaPath
    - mode
    argTypes:
    - JNIEnv*
    - jstring
    - int
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: doAccess
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - ScopedUtfChars::c_str
    - access
    linkageType: ''
    returnType: jboolean
    signature: doAccess(JNIEnv* env, jstring javaPath, int mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doAccess
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - javaPath
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: File_existsImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - doAccess
    linkageType: ''
    returnType: jboolean
    signature: File_existsImpl(JNIEnv* env, jclass, jstring javaPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doAccess
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - javaPath
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: File_canExecuteImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - doAccess
    linkageType: ''
    returnType: jboolean
    signature: File_canExecuteImpl(JNIEnv* env, jclass, jstring javaPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doAccess
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - javaPath
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: File_canReadImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - doAccess
    linkageType: ''
    returnType: jboolean
    signature: File_canReadImpl(JNIEnv* env, jclass, jstring javaPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doAccess
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - javaPath
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: File_canWriteImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - doAccess
    linkageType: ''
    returnType: jboolean
    signature: File_canWriteImpl(JNIEnv* env, jclass, jstring javaPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:124,1
    - Dst: static_cast<size_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:138,1
    - Dst: LocalArray::size
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:138,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - env
    - javaPath
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 146
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 146
    functionName: File_readlink
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - LocalArray::size
    - static_cast<size_t>
    - ScopedUtfChars::c_str
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: File_readlink(JNIEnv* env, jclass, jstring javaPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:150,1
    - Dst: stat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:156,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:156,1
    - Dst: static_cast<time_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:163,1
    - Dst: utime
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:164,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - env
    - javaPath
    - ms
    argTypes:
    - JNIEnv*
    - jstring
    - jlong
    constantsTouched: []
    func_position:
      end: 165
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 165
    functionName: File_setLastModifiedImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - static_cast<time_t>
    - utime
    - stat
    - ScopedUtfChars::c_str
    linkageType: ''
    returnType: jboolean
    signature: File_setLastModifiedImpl(JNIEnv* env, jclass, jstring javaPath, jlong
      ms)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:169,1
    - Dst: stat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:174,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:174,1
    - Dst: chmod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:178,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - env
    - javaPath
    - mask
    - set
    argTypes:
    - JNIEnv*
    - jstring
    - mode_t
    - bool
    constantsTouched: []
    func_position:
      end: 179
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 179
    functionName: doChmod
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - chmod
    - stat
    - ScopedUtfChars::c_str
    linkageType: ''
    returnType: jboolean
    signature: doChmod(JNIEnv* env, jstring javaPath, mode_t mask, bool set)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doChmod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - env
    - javaPath
    - set
    - ownerOnly
    argTypes:
    - JNIEnv*
    - jstring
    - jboolean
    - jboolean
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: File_setExecutableImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - doChmod
    linkageType: ''
    returnType: jboolean
    signature: "File_setExecutableImpl(JNIEnv* env, jclass, jstring javaPath,\n        jboolean
      set, jboolean ownerOnly)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doChmod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - env
    - javaPath
    - set
    - ownerOnly
    argTypes:
    - JNIEnv*
    - jstring
    - jboolean
    - jboolean
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: File_setReadableImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - doChmod
    linkageType: ''
    returnType: jboolean
    signature: "File_setReadableImpl(JNIEnv* env, jclass, jstring javaPath,\n        jboolean
      set, jboolean ownerOnly)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doChmod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - env
    - javaPath
    - set
    - ownerOnly
    argTypes:
    - JNIEnv*
    - jstring
    - jboolean
    - jboolean
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: File_setWritableImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - doChmod
    linkageType: ''
    returnType: jboolean
    signature: "File_setWritableImpl(JNIEnv* env, jclass, jstring javaPath,\n        jboolean
      set, jboolean ownerOnly)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - env
    - javaPath
    - ' sb'
    argTypes:
    - JNIEnv*
    - jstring
    - struct statfs
    constantsTouched: []
    func_position:
      end: 204
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 204
    functionName: doStatFs
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - ScopedUtfChars::c_str
    linkageType: ''
    returnType: bool
    signature: doStatFs(JNIEnv* env, jstring javaPath, struct statfs& sb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doStatFs
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - env
    - javaPath
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: File_getFreeSpaceImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - doStatFs
    linkageType: ''
    returnType: jlong
    signature: File_getFreeSpaceImpl(JNIEnv* env, jclass, jstring javaPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doStatFs
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - env
    - javaPath
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: File_getTotalSpaceImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - doStatFs
    linkageType: ''
    returnType: jlong
    signature: File_getTotalSpaceImpl(JNIEnv* env, jclass, jstring javaPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doStatFs
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - env
    - javaPath
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 228
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 228
    functionName: File_getUsableSpaceImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - doStatFs
    linkageType: ''
    returnType: jlong
    signature: File_getUsableSpaceImpl(JNIEnv* env, jclass, jstring javaPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: ScopedReaddir::ScopedReaddir
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - opendir
    linkageType: ''
    returnType: void
    signature: ScopedReaddir(const char* path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: closedir
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: ~ScopedReaddir()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - closedir
    linkageType: ''
    returnType: void
    signature: ~ScopedReaddir()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 253
    functionName: ScopedReaddir::next
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* next()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: ScopedReaddir::isBad
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: isBad() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:273,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 276
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 276
    functionName: DirEntry
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - strcpy
    linkageType: ''
    returnType: void
    signature: DirEntry(const char* filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 286
    functionName: DirEntries::DirEntries
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DirEntries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pop_front
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 292
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 292
    functionName: ~DirEntries()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - pop_front
    linkageType: ''
    returnType: void
    signature: ~DirEntries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DirEntry::DirEntry
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 303
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 303
    functionName: DirEntries::push_front
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - DirEntry::DirEntry
    linkageType: ''
    returnType: bool
    signature: push_front(const char* name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 307
    functionName: DirEntries::front
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* front() const'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 316
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 316
    functionName: DirEntries::pop_front
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pop_front()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 320
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 320
    functionName: DirEntries::size
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size() const
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:335,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:339,1
    - Dst: ScopedReaddir::isBad
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:340,1
    - Dst: ScopedReaddir::next
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:344,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:345,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:345,1
    - Dst: push_front
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:346,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:347,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - env
    - javaPath
    - ' entries'
    argTypes:
    - JNIEnv*
    - jstring
    - DirEntries
    constantsTouched: []
    func_position:
      end: 353
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 353
    functionName: readDirectory
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - ScopedUtfChars::c_str
    - strcmp
    - ScopedReaddir::isBad
    - jniThrowException
    - ScopedReaddir::next
    - push_front
    linkageType: ''
    returnType: bool
    signature: readDirectory(JNIEnv* env, jstring javaPath, DirEntries& entries)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DirEntries::DirEntries
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:357,1
    - Dst: readDirectory
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:358,1
    - Dst: JNIEnv*::NewObjectArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:362,1
    - Dst: DirEntries::size
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:362,1
    - Dst: DirEntries::size
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:363,1
    - Dst: DirEntries::pop_front
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:363,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:364,1
    - Dst: DirEntries::front
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:364,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:365,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:368,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:368,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:369,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - env
    - javaPath
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 374
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 374
    functionName: File_listImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - readDirectory
    - ScopedLocalRef::get
    - DirEntries::front
    - JNIEnv*::SetObjectArrayElement
    - DirEntries::size
    - DirEntries::pop_front
    - JNIEnv*::NewObjectArray
    - DirEntries::DirEntries
    - JNIEnv*::ExceptionCheck
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jobjectArray
    signature: File_listImpl(JNIEnv* env, jclass, jstring javaPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:378,1
    - Dst: mkdir
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:383,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - env
    - javaPath
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 384
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 384
    functionName: File_mkdirImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - mkdir
    - ScopedUtfChars::c_str
    linkageType: ''
    returnType: jboolean
    signature: File_mkdirImpl(JNIEnv* env, jclass, jstring javaPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:388,1
    - Dst: open
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:393,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:393,1
    - Dst: ScopedFd::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:394,1
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - env
    - javaPath
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 404
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 404
    functionName: File_createNewFileImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - ScopedFd::get
    - open
    - ScopedUtfChars::c_str
    - jniThrowIOException
    linkageType: ''
    returnType: jboolean
    signature: File_createNewFileImpl(JNIEnv* env, jclass, jstring javaPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:408,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:413,1
    - Dst: rename
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:417,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:417,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - env
    - javaOldPath
    - javaNewPath
    argTypes:
    - JNIEnv*
    - jstring
    - jstring
    constantsTouched: []
    func_position:
      end: 418
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 418
    functionName: File_renameToImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - rename
    - ScopedUtfChars::c_str
    linkageType: ''
    returnType: jboolean
    signature: File_renameToImpl(JNIEnv* env, jclass, jstring javaOldPath, jstring
      javaNewPath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:444,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 445
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 445
    functionName: register_java_io_File
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_java_io_File(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Adler32.cpp:28,1
    - Dst: adler32
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Adler32.cpp:31,1
    - Dst: reinterpret_cast<const Bytef*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Adler32.cpp:31,1
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Adler32.cpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - env
    - byteArray
    - 'off'
    - len
    - crc
    argTypes:
    - JNIEnv*
    - jbyteArray
    - int
    - int
    - jlong
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: Adler32_updateImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Adler32.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const Bytef*>
    - adler32
    - ScopedByteArrayRO::get
    linkageType: ''
    returnType: jlong
    signature: Adler32_updateImpl(JNIEnv* env, jobject, jbyteArray byteArray, int
      off, int len, jlong crc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: adler32
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Adler32.cpp:36,1
    - Dst: reinterpret_cast<const Bytef*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Adler32.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - crc
    argTypes:
    - jint
    - jlong
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: Adler32_updateByteImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Adler32.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const Bytef*>
    - adler32
    linkageType: ''
    returnType: jlong
    signature: Adler32_updateByteImpl(JNIEnv*, jobject, jint val, jlong crc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Adler32.cpp:44,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Adler32.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: register_java_util_zip_Adler32
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Adler32.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_java_util_zip_Adler32(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JniConstants::init
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/Register.cpp:72,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 3
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 122
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 122
    functionName: registerCoreLibrariesJni
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/Register.cpp
    functionUses: 0
    functionsReached:
    - JniConstants::init
    linkageType: ''
    returnType: int
    signature: registerCoreLibrariesJni(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ch
    argTypes:
    - UChar
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: isLabelSeparator
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeIDN.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: isLabelSeparator(const UChar ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeIDN.cpp:38,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeIDN.cpp:45,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeIDN.cpp:46,1
    - Dst: u_errorName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeIDN.cpp:46,1
    - Dst: isLabelSeparator
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeIDN.cpp:54,1
    - Dst: JNIEnv*::NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeIDN.cpp:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - env
    - s
    - flags
    - toAscii
    argTypes:
    - JNIEnv*
    - jstring
    - jint
    - jboolean
    constantsTouched: []
    func_position:
      end: 60
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 60
    functionName: NativeIDN_convertImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeIDN.cpp
    functionUses: 0
    functionsReached:
    - u_errorName
    - jniThrowException
    - ScopedJavaUnicodeString::unicodeString
    - isLabelSeparator
    - JNIEnv*::NewString
    - U_FAILURE
    linkageType: ''
    returnType: jstring
    signature: NativeIDN_convertImpl(JNIEnv* env, jclass, jstring s, jint flags, jboolean
      toAscii)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeIDN.cpp:66,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeIDN.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: register_libcore_icu_NativeIDN
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeIDN.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_libcore_icu_NativeIDN(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UNormalizationMode>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeNormalizer.cpp:27,1
    - Dst: Normalizer::normalize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeNormalizer.cpp:30,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeNormalizer.cpp:30,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeNormalizer.cpp:31,1
    - Dst: UnicodeString::isBogus
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeNormalizer.cpp:32,1
    - Dst: JNIEnv*::NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeNormalizer.cpp:32,1
    - Dst: UnicodeString::getBuffer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeNormalizer.cpp:32,1
    - Dst: UnicodeString::length
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeNormalizer.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - env
    - s
    - intMode
    argTypes:
    - JNIEnv*
    - jstring
    - jint
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: NativeNormalizer_normalizeImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeNormalizer.cpp
    functionUses: 0
    functionsReached:
    - UnicodeString::isBogus
    - Normalizer::normalize
    - ScopedJavaUnicodeString::unicodeString
    - UnicodeString::getBuffer
    - UnicodeString::length
    - static_cast<UNormalizationMode>
    - JNIEnv*::NewString
    - icu4jni_error
    linkageType: ''
    returnType: jstring
    signature: NativeNormalizer_normalizeImpl(JNIEnv* env, jclass, jstring s, jint
      intMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UNormalizationMode>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeNormalizer.cpp:37,1
    - Dst: Normalizer::isNormalized
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeNormalizer.cpp:39,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeNormalizer.cpp:39,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeNormalizer.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - env
    - s
    - intMode
    argTypes:
    - JNIEnv*
    - jstring
    - jint
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: NativeNormalizer_isNormalizedImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeNormalizer.cpp
    functionUses: 0
    functionsReached:
    - static_cast<UNormalizationMode>
    - Normalizer::isNormalized
    - icu4jni_error
    - ScopedJavaUnicodeString::unicodeString
    linkageType: ''
    returnType: jboolean
    signature: NativeNormalizer_isNormalizedImpl(JNIEnv* env, jclass, jstring s, jint
      intMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeNormalizer.cpp:49,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeNormalizer.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: register_libcore_icu_NativeNormalizer
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeNormalizer.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_libcore_icu_NativeNormalizer(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp:30,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp:36,1
    - Dst: reinterpret_cast<sockaddr_in*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp:39,1
    - Dst: htons
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp:41,1
    - Dst: reinterpret_cast<jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp:42,1
    - Dst: JNIEnv*::GetByteArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp:43,1
    - Dst: reinterpret_cast<sockaddr_in6*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp:46,1
    - Dst: htons
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp:48,1
    - Dst: reinterpret_cast<jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp:49,1
    - Dst: JNIEnv*::GetByteArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp:50,1
    - Dst: snprintf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp:56,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - env
    - byteArray
    - port
    - ss
    argTypes:
    - JNIEnv*
    - jbyteArray
    - int
    - sockaddr_storage*
    constantsTouched: []
    func_position:
      end: 61
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 61
    functionName: byteArrayToSocketAddress
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<sockaddr_in*>
    - jniThrowNullPointerException
    - reinterpret_cast<jbyte*>
    - jniThrowException
    - memset
    - htons
    - snprintf
    - reinterpret_cast<sockaddr_in6*>
    - JNIEnv*::GetByteArrayRegion
    linkageType: ''
    returnType: bool
    signature: byteArrayToSocketAddress(JNIEnv* env, jclass, jbyteArray byteArray,
      int port, sockaddr_storage* ss)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<sockaddr_in*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp:67,1
    - Dst: reinterpret_cast<sockaddr_in6*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp:71,1
    - Dst: snprintf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp:79,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp:80,1
    - Dst: JNIEnv*::NewByteArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp:84,1
    - Dst: JNIEnv*::SetByteArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp:88,1
    - Dst: reinterpret_cast<jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - env
    - ss
    argTypes:
    - JNIEnv*
    - sockaddr_storage*
    constantsTouched: []
    func_position:
      end: 90
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 90
    functionName: socketAddressToByteArray
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<sockaddr_in*>
    - jniThrowException
    - reinterpret_cast<jbyte*>
    - JNIEnv*::NewByteArray
    - JNIEnv*::SetByteArrayRegion
    - snprintf
    - reinterpret_cast<sockaddr_in6*>
    linkageType: ''
    returnType: jbyteArray
    signature: socketAddressToByteArray(JNIEnv* env, sockaddr_storage* ss)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetStaticMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp:96,1
    - Dst: JNIEnv*::CallStaticObjectMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - env
    - byteArray
    argTypes:
    - JNIEnv*
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 102
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 102
    functionName: byteArrayToInetAddress
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp
    functionUses: 1
    functionsReached:
    - JNIEnv*::GetStaticMethodID
    - JNIEnv*::CallStaticObjectMethod
    linkageType: ''
    returnType: jobject
    signature: byteArrayToInetAddress(JNIEnv* env, jbyteArray byteArray)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: socketAddressToByteArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp:105,1
    - Dst: byteArrayToInetAddress
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - ss
    argTypes:
    - JNIEnv*
    - sockaddr_storage*
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: socketAddressToInetAddress
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp
    functionUses: 3
    functionsReached:
    - byteArrayToInetAddress
    - socketAddressToByteArray
    linkageType: ''
    returnType: jobject
    signature: socketAddressToInetAddress(JNIEnv* env, sockaddr_storage* ss)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - fd
    - blocking
    argTypes:
    - int
    - bool
    constantsTouched: []
    func_position:
      end: 123
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 123
    functionName: setBlocking
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: setBlocking(int fd, bool blocking)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<DecimalFormat*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:38,1
    - Dst: static_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: toDecimalFormat
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<DecimalFormat*>
    - static_cast<uintptr_t>
    linkageType: ''
    returnType: DecimalFormat
    signature: '* toDecimalFormat(jint addr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<UNumberFormat*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:42,1
    - Dst: static_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: toUNumberFormat
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<UNumberFormat*>
    - static_cast<uintptr_t>
    linkageType: ''
    returnType: UNumberFormat
    signature: '* toUNumberFormat(jint addr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecimalFormatSymbols::DecimalFormatSymbols
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:58,1
    - Dst: DecimalFormatSymbols*::setSymbol
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:59,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:59,1
    - Dst: DecimalFormatSymbols*::setSymbol
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:60,1
    - Dst: UnicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:60,1
    - Dst: DecimalFormatSymbols*::setSymbol
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:61,1
    - Dst: UnicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:61,1
    - Dst: DecimalFormatSymbols*::setSymbol
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:62,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:62,1
    - Dst: DecimalFormatSymbols*::setSymbol
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:63,1
    - Dst: DecimalFormatSymbols*::setSymbol
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:64,1
    - Dst: DecimalFormatSymbols*::setSymbol
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:65,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:65,1
    - Dst: DecimalFormatSymbols*::setSymbol
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:66,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:66,1
    - Dst: DecimalFormatSymbols*::setSymbol
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:67,1
    - Dst: UnicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:67,1
    - Dst: DecimalFormatSymbols*::setSymbol
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:68,1
    - Dst: UnicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:68,1
    - Dst: DecimalFormatSymbols*::setSymbol
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:69,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:69,1
    - Dst: DecimalFormatSymbols*::setSymbol
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:70,1
    - Dst: UnicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:70,1
    - Dst: DecimalFormatSymbols*::setSymbol
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:71,1
    - Dst: UnicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:71,1
    - Dst: DecimalFormatSymbols*::setSymbol
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:72,1
    - Dst: UnicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:72,1
    - Dst: DecimalFormatSymbols*::setSymbol
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:73,1
    - Dst: UnicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 15
    argNames:
    - env
    - currencySymbol0
    - decimalSeparator
    - digit
    - exponentSeparator0
    - groupingSeparator0
    - infinity0
    - internationalCurrencySymbol0
    - minusSign
    - monetaryDecimalSeparator
    - nan0
    - patternSeparator
    - percent
    - perMill
    - zeroDigit
    argTypes:
    - JNIEnv*
    - jstring
    - jchar
    - jchar
    - jstring
    - jchar
    - jstring
    - jstring
    - jchar
    - jchar
    - jstring
    - jchar
    - jchar
    - jchar
    - jchar
    constantsTouched: []
    func_position:
      end: 75
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 75
    functionName: makeDecimalFormatSymbols
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
    functionUses: 0
    functionsReached:
    - ScopedJavaUnicodeString::unicodeString
    - DecimalFormatSymbols::DecimalFormatSymbols
    - DecimalFormatSymbols*::setSymbol
    - UnicodeString
    linkageType: ''
    returnType: DecimalFormatSymbols
    signature: "* makeDecimalFormatSymbols(JNIEnv* env,\n        jstring currencySymbol0,
      jchar decimalSeparator, jchar digit, jstring exponentSeparator0,\n        jchar
      groupingSeparator0, jstring infinity0,\n        jstring internationalCurrencySymbol0,
      jchar minusSign,\n        jchar monetaryDecimalSeparator, jstring nan0, jchar
      patternSeparator,\n        jchar percent, jchar perMill, jchar zeroDigit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: makeDecimalFormatSymbols
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:83,1
    - Dst: toDecimalFormat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 16
    argNames:
    - env
    - addr
    - currencySymbol
    - decimalSeparator
    - digit
    - exponentSeparator
    - groupingSeparator
    - infinity
    - internationalCurrencySymbol
    - minusSign
    - monetaryDecimalSeparator
    - nan
    - patternSeparator
    - percent
    - perMill
    - zeroDigit
    argTypes:
    - JNIEnv*
    - jint
    - jstring
    - jchar
    - jchar
    - jstring
    - jchar
    - jstring
    - jstring
    - jchar
    - jchar
    - jstring
    - jchar
    - jchar
    - jchar
    - jchar
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: NativeDecimalFormat_setDecimalFormatSymbols
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
    functionUses: 0
    functionsReached:
    - toDecimalFormat
    - makeDecimalFormatSymbols
    linkageType: ''
    returnType: void
    signature: "NativeDecimalFormat_setDecimalFormatSymbols(JNIEnv* env, jclass, jint
      addr,\n        jstring currencySymbol, jchar decimalSeparator, jchar digit,
      jstring exponentSeparator,\n        jchar groupingSeparator, jstring infinity,\n
      \       jstring internationalCurrencySymbol, jchar minusSign,\n        jchar
      monetaryDecimalSeparator, jstring nan, jchar patternSeparator,\n        jchar
      percent, jchar perMill, jchar zeroDigit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:98,1
    - Dst: makeDecimalFormatSymbols
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:104,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:109,1
    - Dst: DecimalFormat::DecimalFormat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:109,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:113,1
    - Dst: static_cast<jint>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:114,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 16
    argNames:
    - env
    - pattern0
    - currencySymbol
    - decimalSeparator
    - digit
    - exponentSeparator
    - groupingSeparator
    - infinity
    - internationalCurrencySymbol
    - minusSign
    - monetaryDecimalSeparator
    - nan
    - patternSeparator
    - percent
    - perMill
    - zeroDigit
    argTypes:
    - JNIEnv*
    - jstring
    - jstring
    - jchar
    - jchar
    - jstring
    - jchar
    - jstring
    - jstring
    - jchar
    - jchar
    - jstring
    - jchar
    - jchar
    - jchar
    - jchar
    constantsTouched: []
    func_position:
      end: 115
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 115
    functionName: NativeDecimalFormat_open
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
    functionUses: 0
    functionsReached:
    - DecimalFormat::DecimalFormat
    - jniThrowNullPointerException
    - reinterpret_cast<uintptr_t>
    - ScopedJavaUnicodeString::unicodeString
    - static_cast<jint>
    - icu4jni_error
    - makeDecimalFormatSymbols
    linkageType: ''
    returnType: jint
    signature: "NativeDecimalFormat_open(JNIEnv* env, jclass, jstring pattern0,\n
      \       jstring currencySymbol, jchar decimalSeparator, jchar digit, jstring
      exponentSeparator,\n        jchar groupingSeparator, jstring infinity,\n        jstring
      internationalCurrencySymbol, jchar minusSign,\n        jchar monetaryDecimalSeparator,
      jstring nan, jchar patternSeparator,\n        jchar percent, jchar perMill,
      jchar zeroDigit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toDecimalFormat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: NativeDecimalFormat_close
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
    functionUses: 0
    functionsReached:
    - toDecimalFormat
    linkageType: ''
    returnType: void
    signature: NativeDecimalFormat_close(JNIEnv*, jclass, jint addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toDecimalFormat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:122,1
    - Dst: DecimalFormat*::setRoundingMode
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:123,1
    - Dst: static_cast<DecimalFormat::ERoundingMode>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:123,1
    - Dst: DecimalFormat*::setRoundingIncrement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - addr
    - mode
    - increment
    argTypes:
    - jint
    - jint
    - jdouble
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: NativeDecimalFormat_setRoundingMode
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
    functionUses: 0
    functionsReached:
    - DecimalFormat*::setRoundingIncrement
    - DecimalFormat*::setRoundingMode
    - toDecimalFormat
    - static_cast<DecimalFormat::ERoundingMode>
    linkageType: ''
    returnType: void
    signature: NativeDecimalFormat_setRoundingMode(JNIEnv*, jclass, jint addr, jint
      mode, jdouble increment)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: s
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:129,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:129,1
    - Dst: static_cast<UNumberFormatSymbol>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:131,1
    - Dst: unum_setSymbol
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:132,1
    - Dst: toUNumberFormat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:132,1
    - Dst: getBuffer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:132,1
    - Dst: length
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:132,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - env
    - addr
    - javaSymbol
    - javaValue
    argTypes:
    - JNIEnv*
    - jint
    - jint
    - jstring
    constantsTouched: []
    func_position:
      end: 134
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 134
    functionName: NativeDecimalFormat_setSymbol
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
    functionUses: 0
    functionsReached:
    - static_cast<UNumberFormatSymbol>
    - unum_setSymbol
    - ScopedJavaUnicodeString::unicodeString
    - s
    - toUNumberFormat
    - getBuffer
    - icu4jni_error
    - length
    linkageType: ''
    returnType: void
    signature: NativeDecimalFormat_setSymbol(JNIEnv* env, jclass, jint addr, jint
      javaSymbol, jstring javaValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UNumberFormatAttribute>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:137,1
    - Dst: unum_setAttribute
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:138,1
    - Dst: toUNumberFormat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - addr
    - javaAttr
    - value
    argTypes:
    - jint
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: NativeDecimalFormat_setAttribute
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
    functionUses: 0
    functionsReached:
    - static_cast<UNumberFormatAttribute>
    - unum_setAttribute
    - toUNumberFormat
    linkageType: ''
    returnType: void
    signature: NativeDecimalFormat_setAttribute(JNIEnv*, jclass, jint addr, jint javaAttr,
      jint value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<UNumberFormatAttribute>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:142,1
    - Dst: unum_getAttribute
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:143,1
    - Dst: toUNumberFormat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - javaAttr
    argTypes:
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: NativeDecimalFormat_getAttribute
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
    functionUses: 0
    functionsReached:
    - static_cast<UNumberFormatAttribute>
    - unum_getAttribute
    - toUNumberFormat
    linkageType: ''
    returnType: jint
    signature: NativeDecimalFormat_getAttribute(JNIEnv*, jclass, jint addr, jint javaAttr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: s
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:148,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:148,1
    - Dst: static_cast<UNumberFormatTextAttribute>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:150,1
    - Dst: unum_setTextAttribute
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:151,1
    - Dst: toUNumberFormat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:151,1
    - Dst: getBuffer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:151,1
    - Dst: length
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:151,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - env
    - addr
    - javaAttr
    - javaValue
    argTypes:
    - JNIEnv*
    - jint
    - jint
    - jstring
    constantsTouched: []
    func_position:
      end: 153
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 153
    functionName: NativeDecimalFormat_setTextAttribute
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
    functionUses: 0
    functionsReached:
    - ScopedJavaUnicodeString::unicodeString
    - static_cast<UNumberFormatTextAttribute>
    - s
    - toUNumberFormat
    - getBuffer
    - unum_setTextAttribute
    - icu4jni_error
    - length
    linkageType: ''
    returnType: void
    signature: NativeDecimalFormat_setTextAttribute(JNIEnv* env, jclass, jint addr,
      jint javaAttr, jstring javaValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toUNumberFormat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:157,1
    - Dst: static_cast<UNumberFormatTextAttribute>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:158,1
    - Dst: UniquePtr::UniquePtr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:161,1
    - Dst: UniquePtr::reset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:168,1
    - Dst: UChar::UChar
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:168,1
    - Dst: unum_getTextAttribute
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:169,1
    - Dst: UniquePtr::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:169,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:171,1
    - Dst: JNIEnv*::NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:171,1
    - Dst: UniquePtr::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - env
    - addr
    - javaAttr
    argTypes:
    - JNIEnv*
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 172
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 172
    functionName: NativeDecimalFormat_getTextAttribute
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
    functionUses: 0
    functionsReached:
    - UniquePtr::UniquePtr
    - unum_getTextAttribute
    - static_cast<UNumberFormatTextAttribute>
    - UniquePtr::get
    - UChar::UChar
    - toUNumberFormat
    - JNIEnv*::NewString
    - icu4jni_error
    - UniquePtr::reset
    linkageType: ''
    returnType: jstring
    signature: NativeDecimalFormat_getTextAttribute(JNIEnv* env, jclass, jint addr,
      jint javaAttr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:176,1
    - Dst: toDecimalFormat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:180,1
    - Dst: DecimalFormat*::applyLocalizedPattern
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:183,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:183,1
    - Dst: DecimalFormat*::applyPattern
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:185,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:185,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - env
    - addr
    - localized
    - pattern0
    argTypes:
    - JNIEnv*
    - jint
    - jboolean
    - jstring
    constantsTouched: []
    func_position:
      end: 188
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 188
    functionName: NativeDecimalFormat_applyPatternImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
    functionUses: 0
    functionsReached:
    - jniThrowNullPointerException
    - DecimalFormat*::applyLocalizedPattern
    - ScopedJavaUnicodeString::unicodeString
    - DecimalFormat*::applyPattern
    - icu4jni_error
    - toDecimalFormat
    linkageType: ''
    returnType: void
    signature: NativeDecimalFormat_applyPatternImpl(JNIEnv* env, jclass, jint addr,
      jboolean localized, jstring pattern0)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toDecimalFormat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:191,1
    - Dst: DecimalFormat*::toLocalizedPattern
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:194,1
    - Dst: DecimalFormat*::toPattern
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:196,1
    - Dst: JNIEnv*::NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:198,1
    - Dst: UnicodeString::getBuffer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:198,1
    - Dst: UnicodeString::length
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - env
    - addr
    - localized
    argTypes:
    - JNIEnv*
    - jint
    - jboolean
    constantsTouched: []
    func_position:
      end: 199
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 199
    functionName: NativeDecimalFormat_toPatternImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
    functionUses: 0
    functionsReached:
    - toDecimalFormat
    - UnicodeString::getBuffer
    - DecimalFormat*::toLocalizedPattern
    - UnicodeString::length
    - JNIEnv*::NewString
    - DecimalFormat*::toPattern
    linkageType: ''
    returnType: jstring
    signature: NativeDecimalFormat_toPatternImpl(JNIEnv* env, jclass, jint addr, jboolean
      localized)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:202,1
    - Dst: JNIEnv*::NewIntArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:208,1
    - Dst: ScopedIntArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:210,1
    - Dst: FieldPositionIterator*::getData
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:213,1
    - Dst: ScopedIntArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:213,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:215,1
    - Dst: JNIEnv*::NewCharArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:218,1
    - Dst: UnicodeString::length
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:218,1
    - Dst: JNIEnv*::SetCharArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:220,1
    - Dst: UnicodeString::length
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:220,1
    - Dst: UnicodeString::getBuffer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - env
    - str
    - fpi
    - fpIter
    argTypes:
    - JNIEnv*
    - UnicodeString
    - FieldPositionIterator*
    - jobject
    constantsTouched: []
    func_position:
      end: 223
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 223
    functionName: formatResult
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::NewCharArray
    - JNIEnv*::GetMethodID
    - ScopedIntArrayRW::get
    - FieldPositionIterator*::getData
    - JNIEnv*::NewIntArray
    - JNIEnv*::SetCharArrayRegion
    - JNIEnv*::CallVoidMethod
    - UnicodeString::getBuffer
    - UnicodeString::length
    linkageType: ''
    returnType: jcharArray
    signature: formatResult(JNIEnv* env, const UnicodeString &str, FieldPositionIterator*
      fpi, jobject fpIter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toDecimalFormat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:229,1
    - Dst: DecimalFormat*::format
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:232,1
    - Dst: formatResult
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - env
    - addr
    - fpIter
    - val
    argTypes:
    - JNIEnv*
    - jint
    - jobject
    - T
    constantsTouched: []
    func_position:
      end: 234
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 234
    functionName: format
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
    functionUses: 2
    functionsReached:
    - DecimalFormat*::format
    - toDecimalFormat
    - formatResult
    linkageType: ''
    returnType: jcharArray
    signature: format(JNIEnv* env, jint addr, jobject fpIter, T val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - env
    - addr
    - value
    - fpIter
    argTypes:
    - JNIEnv*
    - jint
    - jlong
    - jobject
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 3
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: NativeDecimalFormat_formatLong
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
    functionUses: 0
    functionsReached:
    - format
    linkageType: ''
    returnType: jcharArray
    signature: NativeDecimalFormat_formatLong(JNIEnv* env, jclass, jint addr, jlong
      value, jobject fpIter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - env
    - addr
    - value
    - fpIter
    argTypes:
    - JNIEnv*
    - jint
    - jdouble
    - jobject
    constantsTouched: []
    func_position:
      end: 242
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 242
    functionName: NativeDecimalFormat_formatDouble
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
    functionUses: 0
    functionsReached:
    - format
    linkageType: ''
    returnType: jcharArray
    signature: NativeDecimalFormat_formatDouble(JNIEnv* env, jclass, jint addr, jdouble
      value, jobject fpIter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:246,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:249,1
    - Dst: format
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - env
    - addr
    - value
    - fpIter
    argTypes:
    - JNIEnv*
    - jint
    - jstring
    - jobject
    constantsTouched: []
    func_position:
      end: 251
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 251
    functionName: NativeDecimalFormat_formatDigitList
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
    functionUses: 0
    functionsReached:
    - ScopedUtfChars::c_str
    - format
    linkageType: ''
    returnType: jcharArray
    signature: NativeDecimalFormat_formatDigitList(JNIEnv* env, jclass, jint addr,
      jstring value, jobject fpIter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:254,1
    - Dst: JNIEnv*::NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:261,1
    - Dst: UnicodeString::getBuffer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:261,1
    - Dst: UnicodeString::length
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:261,1
    - Dst: JNIEnv*::NewObject
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - env
    - value
    - len
    argTypes:
    - JNIEnv*
    - char*
    - jsize
    constantsTouched: []
    func_position:
      end: 263
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 263
    functionName: newBigDecimal
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetMethodID
    - JNIEnv*::NewObject
    - UnicodeString::getBuffer
    - UnicodeString::length
    - JNIEnv*::NewString
    linkageType: ''
    returnType: jobject
    signature: newBigDecimal(JNIEnv* env, const char* value, jsize len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:268,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:269,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:270,1
    - Dst: JNIEnv*::GetStringLength
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:276,1
    - Dst: toDecimalFormat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:283,1
    - Dst: DecimalFormat*::parse
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:284,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:284,1
    - Dst: ParsePosition::getErrorIndex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:286,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:287,1
    - Dst: ParsePosition::getIndex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:287,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:289,1
    - Dst: ParsePosition::getErrorIndex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:289,1
    - Dst: Formattable::getDecimalNumber
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:295,1
    - Dst: U_SUCCESS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:296,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:299,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:300,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:301,1
    - Dst: doubleValueOf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:303,1
    - Dst: newBigDecimal
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:305,1
    - Dst: Formattable::getType
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:310,1
    - Dst: doubleValueOf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:314,1
    - Dst: longValueOf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:318,1
    - Dst: longValueOf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:322,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 5
    argNames:
    - env
    - addr
    - text
    - position
    - parseBigDecimal
    argTypes:
    - JNIEnv*
    - jint
    - jstring
    - jobject
    - jboolean
    constantsTouched: []
    func_position:
      end: 328
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 328
    functionName: NativeDecimalFormat_parse
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
    functionUses: 0
    functionsReached:
    - newBigDecimal
    - Formattable::getType
    - JNIEnv*::GetMethodID
    - ScopedJavaUnicodeString::unicodeString
    - U_SUCCESS
    - strncmp
    - ParsePosition::getIndex
    - DecimalFormat*::parse
    - Formattable::getDecimalNumber
    - ParsePosition::getErrorIndex
    - doubleValueOf
    - JNIEnv*::CallVoidMethod
    - longValueOf
    - toDecimalFormat
    - JNIEnv*::GetStringLength
    linkageType: ''
    returnType: jobject
    signature: "NativeDecimalFormat_parse(JNIEnv* env, jclass, jint addr, jstring
      text,\n        jobject position, jboolean parseBigDecimal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toDecimalFormat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:331,1
    - Dst: static_cast<jint>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:332,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:332,1
    - Dst: DecimalFormat*::clone
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: NativeDecimalFormat_cloneImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - static_cast<jint>
    - toDecimalFormat
    - DecimalFormat*::clone
    linkageType: ''
    returnType: jint
    signature: NativeDecimalFormat_cloneImpl(JNIEnv*, jclass, jint addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:354,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 356
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 356
    functionName: register_com_ibm_icu4jni_text_NativeDecimalFormat
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_com_ibm_icu4jni_text_NativeDecimalFormat(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<PluralRules*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativePluralRules.cpp:26,1
    - Dst: static_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativePluralRules.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: toPluralRules
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativePluralRules.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uintptr_t>
    - reinterpret_cast<PluralRules*>
    linkageType: ''
    returnType: PluralRules
    signature: '* toPluralRules(jint address)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toPluralRules
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativePluralRules.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: NativePluralRules_finalizeImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativePluralRules.cpp
    functionUses: 0
    functionsReached:
    - toPluralRules
    linkageType: ''
    returnType: void
    signature: NativePluralRules_finalizeImpl(JNIEnv*, jclass, jint address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Locale::createFromName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativePluralRules.cpp:34,1
    - Dst: ScopedUtfChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativePluralRules.cpp:34,1
    - Dst: PluralRules::forLocale
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativePluralRules.cpp:36,1
    - Dst: icu4jni_error
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativePluralRules.cpp:37,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativePluralRules.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - localeName
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: NativePluralRules_forLocaleImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativePluralRules.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - ScopedUtfChars
    - PluralRules::forLocale
    - icu4jni_error
    - Locale::createFromName
    linkageType: ''
    returnType: jint
    signature: NativePluralRules_forLocaleImpl(JNIEnv* env, jclass, jstring localeName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toPluralRules
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativePluralRules.cpp:42,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - address
    - value
    argTypes:
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 56
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 56
    functionName: NativePluralRules_quantityForIntImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativePluralRules.cpp
    functionUses: 0
    functionsReached:
    - toPluralRules
    linkageType: ''
    returnType: jint
    signature: NativePluralRules_quantityForIntImpl(JNIEnv*, jclass, jint address,
      jint value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativePluralRules.cpp:64,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativePluralRules.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: register_libcore_icu_NativePluralRules
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativePluralRules.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_libcore_icu_NativePluralRules(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_ByteOrder.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: ByteOrder_isLittleEndian
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_ByteOrder.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<jbyte*>
    linkageType: ''
    returnType: jboolean
    signature: ByteOrder_isLittleEndian(JNIEnv*, jclass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_ByteOrder.cpp:31,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_ByteOrder.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: register_java_nio_ByteOrder
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_ByteOrder.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_java_nio_ByteOrder(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bundle
    argTypes:
    - UResourceBundle*
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: ScopedResourceBundle::ScopedResourceBundle
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ScopedResourceBundle(UResourceBundle* bundle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ures_close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: ~ScopedResourceBundle()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - ures_close
    linkageType: ''
    returnType: void
    signature: ~ScopedResourceBundle()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: ScopedResourceBundle::get
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UResourceBundle
    signature: '* get()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Locale::createFromName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:74,1
    - Dst: ScopedUtfChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - localeName
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: getLocale
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 2
    functionsReached:
    - ScopedUtfChars
    - Locale::createFromName
    linkageType: ''
    returnType: Locale
    signature: getLocale(JNIEnv* env, jstring localeName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:80,1
    - Dst: UniquePtr::setCurrency
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:84,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:84,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:85,1
    - Dst: UniquePtr::getMinimumFractionDigits
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - env
    - javaCurrencyCode
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 90
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 90
    functionName: ICU_getCurrencyFractionDigitsNative
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - ScopedJavaUnicodeString::unicodeString
    - UniquePtr::getMinimumFractionDigits
    - U_FAILURE
    - UniquePtr::setCurrency
    linkageType: ''
    returnType: jint
    signature: ICU_getCurrencyFractionDigitsNative(JNIEnv* env, jclass, jstring javaCurrencyCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ures_openDirect
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:94,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:95,1
    - Dst: ures_getByKey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:99,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:99,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:100,1
    - Dst: ures_getByKey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:105,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:105,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:105,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:106,1
    - Dst: ures_getByIndex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:110,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:110,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:111,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:112,1
    - Dst: ures_getByKey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:116,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:116,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:117,1
    - Dst: ures_getByKey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:126,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:126,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:127,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:129,1
    - Dst: ures_getString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:133,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:133,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:134,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:135,1
    - Dst: JNIEnv*::NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:137,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - env
    - javaKey
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 138
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 138
    functionName: ICU_getCurrencyCodeNative
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - ScopedUtfChars::c_str
    - ures_getByIndex
    - ures_getByKey
    - ures_openDirect
    - JNIEnv*::NewString
    - ures_getString
    - ScopedResourceBundle::get
    - U_FAILURE
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: ICU_getCurrencyCodeNative(JNIEnv* env, jclass, jstring javaKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ures_open
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:143,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:143,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:144,1
    - Dst: ures_getByKey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:148,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:148,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:149,1
    - Dst: ures_getByKey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:154,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:154,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:154,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:155,1
    - Dst: ures_getStringByIndex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:160,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:160,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:161,1
    - Dst: JNIEnv*::NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:165,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - env
    - locale
    - currencyCode
    argTypes:
    - JNIEnv*
    - jstring
    - jstring
    constantsTouched: []
    func_position:
      end: 166
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 166
    functionName: ICU_getCurrencySymbolNative
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - ScopedUtfChars::c_str
    - ures_getByKey
    - ures_getStringByIndex
    - JNIEnv*::NewString
    - ures_open
    - ScopedResourceBundle::get
    - U_FAILURE
    linkageType: ''
    returnType: jstring
    signature: ICU_getCurrencySymbolNative(JNIEnv* env, jclass, jstring locale, jstring
      currencyCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getLocale
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:169,1
    - Dst: getLocale
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:170,1
    - Dst: Locale::getDisplayCountry
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:172,1
    - Dst: JNIEnv*::NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:173,1
    - Dst: UnicodeString::getBuffer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:173,1
    - Dst: UnicodeString::length
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - env
    - targetLocale
    - locale
    argTypes:
    - JNIEnv*
    - jstring
    - jstring
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: ICU_getDisplayCountryNative
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - getLocale
    - UnicodeString::getBuffer
    - UnicodeString::length
    - JNIEnv*::NewString
    - Locale::getDisplayCountry
    linkageType: ''
    returnType: jstring
    signature: ICU_getDisplayCountryNative(JNIEnv* env, jclass, jstring targetLocale,
      jstring locale)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getLocale
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:177,1
    - Dst: getLocale
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:178,1
    - Dst: Locale::getDisplayLanguage
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:180,1
    - Dst: JNIEnv*::NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:181,1
    - Dst: UnicodeString::getBuffer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:181,1
    - Dst: UnicodeString::length
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - env
    - targetLocale
    - locale
    argTypes:
    - JNIEnv*
    - jstring
    - jstring
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: ICU_getDisplayLanguageNative
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - Locale::getDisplayLanguage
    - getLocale
    - UnicodeString::getBuffer
    - UnicodeString::length
    - JNIEnv*::NewString
    linkageType: ''
    returnType: jstring
    signature: ICU_getDisplayLanguageNative(JNIEnv* env, jclass, jstring targetLocale,
      jstring locale)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getLocale
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:185,1
    - Dst: getLocale
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:186,1
    - Dst: Locale::getDisplayVariant
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:188,1
    - Dst: JNIEnv*::NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:189,1
    - Dst: UnicodeString::getBuffer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:189,1
    - Dst: UnicodeString::length
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - env
    - targetLocale
    - locale
    argTypes:
    - JNIEnv*
    - jstring
    - jstring
    constantsTouched: []
    func_position:
      end: 190
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 190
    functionName: ICU_getDisplayVariantNative
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - getLocale
    - Locale::getDisplayVariant
    - UnicodeString::getBuffer
    - UnicodeString::length
    - JNIEnv*::NewString
    linkageType: ''
    returnType: jstring
    signature: ICU_getDisplayVariantNative(JNIEnv* env, jclass, jstring targetLocale,
      jstring locale)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getLocale
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:193,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:194,1
    - Dst: Locale::getISO3Country
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - locale
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: ICU_getISO3CountryNative
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - getLocale
    - Locale::getISO3Country
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: ICU_getISO3CountryNative(JNIEnv* env, jclass, jstring locale)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getLocale
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:198,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:199,1
    - Dst: Locale::getISO3Language
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - locale
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: ICU_getISO3LanguageNative
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - getLocale
    - Locale::getISO3Language
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: ICU_getISO3LanguageNative(JNIEnv* env, jclass, jstring locale)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::NewObjectArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:207,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:209,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:210,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - env
    - strings
    argTypes:
    - JNIEnv*
    - char**
    constantsTouched: []
    func_position:
      end: 213
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 213
    functionName: toStringArray
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - ScopedLocalRef::get
    - JNIEnv*::NewStringUTF
    - JNIEnv*::SetObjectArrayElement
    - JNIEnv*::NewObjectArray
    linkageType: ''
    returnType: jobjectArray
    signature: toStringArray(JNIEnv* env, const char* const* strings)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toStringArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:216,1
    - Dst: Locale::getISOCountries
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: ICU_getISOCountriesNative
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - Locale::getISOCountries
    - toStringArray
    linkageType: ''
    returnType: jobjectArray
    signature: ICU_getISOCountriesNative(JNIEnv* env, jclass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toStringArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:220,1
    - Dst: Locale::getISOLanguages
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 221
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 221
    functionName: ICU_getISOLanguagesNative
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - toStringArray
    - Locale::getISOLanguages
    linkageType: ''
    returnType: jobjectArray
    signature: ICU_getISOLanguagesNative(JNIEnv* env, jclass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::NewObjectArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:226,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:228,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:229,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - env
    - counter
    - getter
    argTypes:
    - JNIEnv*
    - Counter*
    - Getter*
    constantsTouched: []
    func_position:
      end: 232
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 232
    functionName: getAvailableLocales
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - ScopedLocalRef::get
    - JNIEnv*::NewStringUTF
    - JNIEnv*::SetObjectArrayElement
    - JNIEnv*::NewObjectArray
    linkageType: ''
    returnType: jobjectArray
    signature: getAvailableLocales(JNIEnv* env, Counter* counter, Getter* getter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getAvailableLocales
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: ICU_getAvailableLocalesNative
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - getAvailableLocales
    linkageType: ''
    returnType: jobjectArray
    signature: ICU_getAvailableLocalesNative(JNIEnv* env, jclass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getAvailableLocales
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 240
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 240
    functionName: ICU_getAvailableBreakIteratorLocalesNative
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - getAvailableLocales
    linkageType: ''
    returnType: jobjectArray
    signature: ICU_getAvailableBreakIteratorLocalesNative(JNIEnv* env, jclass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getAvailableLocales
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: ICU_getAvailableCalendarLocalesNative
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - getAvailableLocales
    linkageType: ''
    returnType: jobjectArray
    signature: ICU_getAvailableCalendarLocalesNative(JNIEnv* env, jclass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getAvailableLocales
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: ICU_getAvailableCollatorLocalesNative
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - getAvailableLocales
    linkageType: ''
    returnType: jobjectArray
    signature: ICU_getAvailableCollatorLocalesNative(JNIEnv* env, jclass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getAvailableLocales
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: ICU_getAvailableDateFormatLocalesNative
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - getAvailableLocales
    linkageType: ''
    returnType: jobjectArray
    signature: ICU_getAvailableDateFormatLocalesNative(JNIEnv* env, jclass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getAvailableLocales
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: ICU_getAvailableNumberFormatLocalesNative
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - getAvailableLocales
    linkageType: ''
    returnType: jobjectArray
    signature: ICU_getAvailableNumberFormatLocalesNative(JNIEnv* env, jclass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ures_getByKey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:261,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:262,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - gregorian
    - values
    argTypes:
    - UResourceBundle*
    - int*
    constantsTouched: []
    func_position:
      end: 275
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 275
    functionName: getDayIntVector
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - ures_getByKey
    - U_FAILURE
    linkageType: ''
    returnType: bool
    signature: getDayIntVector(JNIEnv*, UResourceBundle* gregorian, int* values)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ures_getByKey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:279,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:280,1
    - Dst: ures_getStringByIndex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:285,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:285,1
    - Dst: ures_getStringByIndex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:286,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:286,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:288,1
    - Dst: JNIEnv*::NewObjectArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:292,1
    - Dst: JNIEnv*::NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:293,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:294,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:294,1
    - Dst: JNIEnv*::NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:295,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:296,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - env
    - gregorian
    argTypes:
    - JNIEnv*
    - UResourceBundle*
    constantsTouched: []
    func_position:
      end: 299
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 299
    functionName: getAmPmMarkers
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - ScopedLocalRef::get
    - JNIEnv*::SetObjectArrayElement
    - ures_getByKey
    - ures_getStringByIndex
    - JNIEnv*::NewObjectArray
    - JNIEnv*::NewString
    - ScopedResourceBundle::get
    - U_FAILURE
    linkageType: ''
    returnType: jobjectArray
    signature: getAmPmMarkers(JNIEnv* env, UResourceBundle* gregorian)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ures_getByKey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:303,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:304,1
    - Dst: ures_getByKey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:308,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:308,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:309,1
    - Dst: JNIEnv*::NewObjectArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:314,1
    - Dst: ures_getStringByIndex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:317,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:317,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:318,1
    - Dst: JNIEnv*::NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:321,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:322,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:322,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - env
    - gregorian
    argTypes:
    - JNIEnv*
    - UResourceBundle*
    constantsTouched: []
    func_position:
      end: 325
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 325
    functionName: getEras
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - ScopedLocalRef::get
    - JNIEnv*::SetObjectArrayElement
    - ures_getByKey
    - ures_getStringByIndex
    - JNIEnv*::NewObjectArray
    - JNIEnv*::NewString
    - ScopedResourceBundle::get
    - U_FAILURE
    linkageType: ''
    returnType: jobjectArray
    signature: getEras(JNIEnv* env, UResourceBundle* gregorian)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ures_getByKey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:333,1
    - Dst: ures_getByKey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:334,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:334,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:335,1
    - Dst: JNIEnv*::NewObjectArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:341,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:342,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:342,1
    - Dst: ures_getStringByIndex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:346,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:346,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:347,1
    - Dst: JNIEnv*::NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:350,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:351,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - env
    - namesBundle
    - months
    - type
    - width
    argTypes:
    - JNIEnv*
    - UResourceBundle*
    - bool
    - NameType
    - NameWidth
    constantsTouched: []
    func_position:
      end: 354
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 354
    functionName: getNames
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - ScopedLocalRef::get
    - JNIEnv*::SetObjectArrayElement
    - ures_getByKey
    - ures_getStringByIndex
    - JNIEnv*::NewObjectArray
    - JNIEnv*::NewString
    - ScopedResourceBundle::get
    - U_FAILURE
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jobjectArray
    signature: getNames(JNIEnv* env, UResourceBundle* namesBundle, bool months, NameType
      type, NameWidth width)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:360,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:360,1
    - Dst: ICU_getCurrencyCodeNative
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:368,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:368,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - env
    - locale
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 369
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 369
    functionName: getIntCurrencyCode
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - ICU_getCurrencyCodeNative
    - ScopedUtfChars::c_str
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: getIntCurrencyCode(JNIEnv* env, jstring locale)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:373,1
    - Dst: JNIEnv*::SetObjectField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:374,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - env
    - obj
    - fieldName
    - value
    argTypes:
    - JNIEnv*
    - jobject
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 375
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 375
    functionName: setIntegerField
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - ScopedLocalRef::get
    - JNIEnv*::SetObjectField
    - JNIEnv*::GetFieldID
    linkageType: ''
    returnType: void
    signature: setIntegerField(JNIEnv* env, jobject obj, const char* fieldName, int
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:378,1
    - Dst: JNIEnv*::SetObjectField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - env
    - obj
    - fieldName
    - value
    argTypes:
    - JNIEnv*
    - jobject
    - char*
    - jstring
    constantsTouched: []
    func_position:
      end: 380
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 380
    functionName: setStringField
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::SetObjectField
    - JNIEnv*::GetFieldID
    linkageType: ''
    returnType: void
    signature: setStringField(JNIEnv* env, jobject obj, const char* fieldName, jstring
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:383,1
    - Dst: JNIEnv*::SetObjectField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - env
    - obj
    - fieldName
    - value
    argTypes:
    - JNIEnv*
    - jobject
    - char*
    - jobjectArray
    constantsTouched: []
    func_position:
      end: 385
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 385
    functionName: setStringArrayField
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::SetObjectField
    - JNIEnv*::GetFieldID
    linkageType: ''
    returnType: void
    signature: setStringArrayField(JNIEnv* env, jobject obj, const char* fieldName,
      jobjectArray value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ures_getStringByIndex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:390,1
    - Dst: U_SUCCESS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:391,1
    - Dst: setStringField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:392,1
    - Dst: JNIEnv*::NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:392,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:394,1
    - Dst: u_errorName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - env
    - obj
    - fieldName
    - bundle
    - index
    argTypes:
    - JNIEnv*
    - jobject
    - char*
    - UResourceBundle*
    - int
    constantsTouched: []
    func_position:
      end: 396
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 396
    functionName: setStringField
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 1
    functionsReached:
    - u_errorName
    - LOGE
    - U_SUCCESS
    - ures_getStringByIndex
    - JNIEnv*::NewString
    - setStringField
    linkageType: ''
    returnType: void
    signature: setStringField(JNIEnv* env, jobject obj, const char* fieldName, UResourceBundle*
      bundle, int index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ures_getStringByIndex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:401,1
    - Dst: U_SUCCESS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:402,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:403,1
    - Dst: JNIEnv*::SetCharField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:404,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:406,1
    - Dst: u_errorName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - env
    - obj
    - fieldName
    - bundle
    - index
    argTypes:
    - JNIEnv*
    - jobject
    - char*
    - UResourceBundle*
    - int
    constantsTouched: []
    func_position:
      end: 408
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 408
    functionName: setCharField
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - u_errorName
    - JNIEnv*::SetCharField
    - JNIEnv*::GetFieldID
    - LOGE
    - U_SUCCESS
    - ures_getStringByIndex
    linkageType: ''
    returnType: void
    signature: setCharField(JNIEnv* env, jobject obj, const char* fieldName, UResourceBundle*
      bundle, int index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ures_open
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:413,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:413,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:414,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:415,1
    - Dst: u_errorName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:415,1
    - Dst: ures_getByKey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:420,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:420,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:421,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:422,1
    - Dst: u_errorName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:422,1
    - Dst: ures_getByKey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:426,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:426,1
    - Dst: U_FAILURE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:427,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:428,1
    - Dst: u_errorName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:428,1
    - Dst: getDayIntVector
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:433,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:433,1
    - Dst: setIntegerField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:434,1
    - Dst: setIntegerField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:435,1
    - Dst: setStringArrayField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:438,1
    - Dst: getAmPmMarkers
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:438,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:438,1
    - Dst: setStringArrayField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:439,1
    - Dst: getEras
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:439,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:439,1
    - Dst: ures_getByKey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:441,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:441,1
    - Dst: ures_getByKey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:442,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:442,1
    - Dst: getNames
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:445,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:445,1
    - Dst: getNames
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:446,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:446,1
    - Dst: getNames
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:447,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:447,1
    - Dst: getNames
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:448,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:448,1
    - Dst: setStringArrayField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:449,1
    - Dst: setStringArrayField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:450,1
    - Dst: setStringArrayField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:451,1
    - Dst: setStringArrayField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:452,1
    - Dst: getNames
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:458,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:458,1
    - Dst: getNames
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:462,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:462,1
    - Dst: getNames
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:466,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:466,1
    - Dst: getNames
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:470,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:470,1
    - Dst: setStringArrayField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:474,1
    - Dst: setStringArrayField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:475,1
    - Dst: setStringArrayField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:476,1
    - Dst: setStringArrayField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:477,1
    - Dst: ures_getByKey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:479,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:479,1
    - Dst: U_SUCCESS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:480,1
    - Dst: setStringField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:481,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:481,1
    - Dst: setStringField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:482,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:482,1
    - Dst: setStringField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:483,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:483,1
    - Dst: setStringField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:484,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:484,1
    - Dst: setStringField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:485,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:485,1
    - Dst: setStringField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:486,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:486,1
    - Dst: setStringField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:487,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:487,1
    - Dst: setStringField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:488,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:488,1
    - Dst: ures_getByKey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:492,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:492,1
    - Dst: U_SUCCESS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:493,1
    - Dst: ures_getSize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:493,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:493,1
    - Dst: setCharField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:494,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:494,1
    - Dst: setCharField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:495,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:495,1
    - Dst: setCharField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:496,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:496,1
    - Dst: setCharField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:497,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:497,1
    - Dst: setCharField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:498,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:498,1
    - Dst: setCharField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:499,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:499,1
    - Dst: setCharField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:500,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:500,1
    - Dst: setCharField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:501,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:501,1
    - Dst: setCharField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:502,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:502,1
    - Dst: setStringField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:503,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:503,1
    - Dst: setStringField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:504,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:504,1
    - Dst: setStringField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:505,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:505,1
    - Dst: getIntCurrencyCode
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:509,1
    - Dst: ICU_getCurrencySymbolNative
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:512,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:514,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:518,1
    - Dst: setStringField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:520,1
    - Dst: setStringField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:521,1
    - Dst: ures_getByKey
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:523,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:523,1
    - Dst: U_SUCCESS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:524,1
    - Dst: ures_getSize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:524,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:524,1
    - Dst: setStringField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:525,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:525,1
    - Dst: setStringField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:526,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:526,1
    - Dst: setStringField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:527,1
    - Dst: ScopedResourceBundle::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:527,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 82
    argCount: 3
    argNames:
    - env
    - locale
    - localeData
    argTypes:
    - JNIEnv*
    - jstring
    - jobject
    constantsTouched: []
    func_position:
      end: 531
      start: 410
    functionDepth: 3
    functionLinenumber: 410
    functionLinenumberEnd: 531
    functionName: ICU_initLocaleDataImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - u_errorName
    - ScopedUtfChars::c_str
    - LOGE
    - setIntegerField
    - getAmPmMarkers
    - getEras
    - setStringField
    - ScopedResourceBundle::get
    - U_FAILURE
    - getIntCurrencyCode
    - JNIEnv*::NewStringUTF
    - setStringArrayField
    - ICU_getCurrencySymbolNative
    - ures_getSize
    - getNames
    - U_SUCCESS
    - ures_getByKey
    - ures_open
    - getDayIntVector
    - setCharField
    linkageType: ''
    returnType: jboolean
    signature: ICU_initLocaleDataImpl(JNIEnv* env, jclass, jstring locale, jobject
      localeData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: s
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:535,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:535,1
    - Dst: toLower
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:537,1
    - Dst: Locale::createFromName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:537,1
    - Dst: ScopedUtfChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:537,1
    - Dst: JNIEnv*::NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:538,1
    - Dst: getBuffer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:538,1
    - Dst: length
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - env
    - javaString
    - localeName
    argTypes:
    - JNIEnv*
    - jstring
    - jstring
    constantsTouched: []
    func_position:
      end: 539
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 539
    functionName: ICU_toLowerCase
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - ScopedUtfChars
    - ScopedJavaUnicodeString::unicodeString
    - toLower
    - s
    - getBuffer
    - JNIEnv*::NewString
    - length
    - Locale::createFromName
    linkageType: ''
    returnType: jstring
    signature: ICU_toLowerCase(JNIEnv* env, jclass, jstring javaString, jstring localeName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: s
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:543,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:543,1
    - Dst: toUpper
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:545,1
    - Dst: Locale::createFromName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:545,1
    - Dst: ScopedUtfChars
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:545,1
    - Dst: JNIEnv*::NewString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:546,1
    - Dst: getBuffer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:546,1
    - Dst: length
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - env
    - javaString
    - localeName
    argTypes:
    - JNIEnv*
    - jstring
    - jstring
    constantsTouched: []
    func_position:
      end: 547
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 547
    functionName: ICU_toUpperCase
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - ScopedUtfChars
    - ScopedJavaUnicodeString::unicodeString
    - s
    - getBuffer
    - toUpper
    - JNIEnv*::NewString
    - length
    - Locale::createFromName
    linkageType: ''
    returnType: jstring
    signature: ICU_toUpperCase(JNIEnv* env, jclass, jstring javaString, jstring localeName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:571,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 572
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 572
    functionName: register_com_ibm_icu4jni_util_ICU
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_com_ibm_icu4jni_util_ICU(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_FileDescriptor.cpp:38,1
    - Dst: jniStrError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_FileDescriptor.cpp:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - env
    - obj
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 42
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 42
    functionName: FileDescriptor_syncImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_FileDescriptor.cpp
    functionUses: 0
    functionsReached:
    - jniThrowException
    - jniStrError
    linkageType: ''
    returnType: void
    signature: FileDescriptor_syncImpl(JNIEnv* env, jobject obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_FileDescriptor.cpp:48,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_FileDescriptor.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: register_java_io_FileDescriptor
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_FileDescriptor.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_java_io_FileDescriptor(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniException.cpp:22,1
    - Dst: jniStrError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniException.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - env
    - exceptionClassName
    - error
    argTypes:
    - JNIEnv*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: jniThrowExceptionWithErrno
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniException.cpp
    functionUses: 0
    functionsReached:
    - jniThrowException
    - jniStrError
    linkageType: ''
    returnType: void
    signature: jniThrowExceptionWithErrno(JNIEnv* env, const char* exceptionClassName,
      int error)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowExceptionWithErrno
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniException.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - error
    argTypes:
    - JNIEnv*
    - int
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: jniThrowBindException
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniException.cpp
    functionUses: 1
    functionsReached:
    - jniThrowExceptionWithErrno
    linkageType: ''
    returnType: void
    signature: jniThrowBindException(JNIEnv* env, int error)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowExceptionWithErrno
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniException.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - error
    argTypes:
    - JNIEnv*
    - int
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: jniThrowConnectException
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniException.cpp
    functionUses: 1
    functionsReached:
    - jniThrowExceptionWithErrno
    linkageType: ''
    returnType: void
    signature: jniThrowConnectException(JNIEnv* env, int error)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniException.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - message
    argTypes:
    - JNIEnv*
    - char*
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: jniThrowOutOfMemoryError
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniException.cpp
    functionUses: 11
    functionsReached:
    - jniThrowException
    linkageType: ''
    returnType: void
    signature: jniThrowOutOfMemoryError(JNIEnv* env, const char* message)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowExceptionWithErrno
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniException.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - error
    argTypes:
    - JNIEnv*
    - int
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: jniThrowSecurityException
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniException.cpp
    functionUses: 1
    functionsReached:
    - jniThrowExceptionWithErrno
    linkageType: ''
    returnType: void
    signature: jniThrowSecurityException(JNIEnv* env, int error)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowExceptionWithErrno
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniException.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - error
    argTypes:
    - JNIEnv*
    - int
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: jniThrowSocketException
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniException.cpp
    functionUses: 17
    functionsReached:
    - jniThrowExceptionWithErrno
    linkageType: ''
    returnType: void
    signature: jniThrowSocketException(JNIEnv* env, int error)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowExceptionWithErrno
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniException.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - error
    argTypes:
    - JNIEnv*
    - int
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: jniThrowSocketTimeoutException
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniException.cpp
    functionUses: 3
    functionsReached:
    - jniThrowExceptionWithErrno
    linkageType: ''
    returnType: void
    signature: jniThrowSocketTimeoutException(JNIEnv* env, int error)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toNativeZipStream
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - env
    - dict
    - 'off'
    - len
    - handle
    argTypes:
    - JNIEnv*
    - jbyteArray
    - int
    - int
    - jlong
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Deflater_setDictionaryImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp
    functionUses: 0
    functionsReached:
    - toNativeZipStream
    linkageType: ''
    returnType: void
    signature: Deflater_setDictionaryImpl(JNIEnv* env, jobject, jbyteArray dict, int
      off, int len, jlong handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toNativeZipStream
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Deflater_getTotalInImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp
    functionUses: 0
    functionsReached:
    - toNativeZipStream
    linkageType: ''
    returnType: jlong
    signature: Deflater_getTotalInImpl(JNIEnv*, jobject, jlong handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toNativeZipStream
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: Deflater_getTotalOutImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp
    functionUses: 0
    functionsReached:
    - toNativeZipStream
    linkageType: ''
    returnType: jlong
    signature: Deflater_getTotalOutImpl(JNIEnv*, jobject, jlong handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toNativeZipStream
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: Deflater_getAdlerImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp
    functionUses: 0
    functionsReached:
    - toNativeZipStream
    linkageType: ''
    returnType: jint
    signature: Deflater_getAdlerImpl(JNIEnv*, jobject, jlong handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NativeZipStream::NativeZipStream
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:47,1
    - Dst: UniquePtr::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:48,1
    - Dst: jniThrowOutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:49,1
    - Dst: throwExceptionForZlibError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:65,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:68,1
    - Dst: UniquePtr::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - env
    - level
    - strategy
    - noHeader
    argTypes:
    - JNIEnv*
    - jint
    - jint
    - jboolean
    constantsTouched: []
    func_position:
      end: 69
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 69
    functionName: Deflater_createStream
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - jniThrowOutOfMemoryError
    - UniquePtr::get
    - throwExceptionForZlibError
    - NativeZipStream::NativeZipStream
    - UniquePtr::release
    linkageType: ''
    returnType: jlong
    signature: Deflater_createStream(JNIEnv * env, jobject, jint level, jint strategy,
      jboolean noHeader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toNativeZipStream
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - env
    - buf
    - 'off'
    - len
    - handle
    argTypes:
    - JNIEnv*
    - jbyteArray
    - jint
    - jint
    - jlong
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: Deflater_setInputImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp
    functionUses: 0
    functionsReached:
    - toNativeZipStream
    linkageType: ''
    returnType: void
    signature: Deflater_setInputImpl(JNIEnv* env, jobject, jbyteArray buf, jint off,
      jint len, jlong handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetIntField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:77,1
    - Dst: toNativeZipStream
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:79,1
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:84,1
    - Dst: reinterpret_cast<Bytef*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:87,1
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:87,1
    - Dst: jniThrowOutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:91,1
    - Dst: JNIEnv*::SetBooleanField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:95,1
    - Dst: JNIEnv*::SetIntField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 7
    argNames:
    - env
    - recv
    - buf
    - 'off'
    - len
    - handle
    - flushParm
    argTypes:
    - JNIEnv*
    - jobject
    - jbyteArray
    - int
    - int
    - jlong
    - int
    constantsTouched: []
    func_position:
      end: 104
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 104
    functionName: Deflater_deflateImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetIntField
    - ScopedByteArrayRW::get
    - toNativeZipStream
    - jniThrowOutOfMemoryError
    - JNIEnv*::SetBooleanField
    - reinterpret_cast<Bytef*>
    - JNIEnv*::SetIntField
    linkageType: ''
    returnType: jint
    signature: Deflater_deflateImpl(JNIEnv* env, jobject recv, jbyteArray buf, int
      off, int len, jlong handle, int flushParm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toNativeZipStream
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:107,1
    - Dst: deflateEnd
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - jlong
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: Deflater_endImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp
    functionUses: 0
    functionsReached:
    - deflateEnd
    - toNativeZipStream
    linkageType: ''
    returnType: void
    signature: Deflater_endImpl(JNIEnv*, jobject, jlong handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toNativeZipStream
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:113,1
    - Dst: throwExceptionForZlibError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - env
    - handle
    argTypes:
    - JNIEnv*
    - jlong
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: Deflater_resetImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp
    functionUses: 0
    functionsReached:
    - throwExceptionForZlibError
    - toNativeZipStream
    linkageType: ''
    returnType: void
    signature: Deflater_resetImpl(JNIEnv* env, jobject, jlong handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:122,1
    - Dst: toNativeZipStream
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:125,1
    - Dst: reinterpret_cast<Bytef*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:127,1
    - Dst: throwExceptionForZlibError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - env
    - level
    - strategy
    - handle
    argTypes:
    - JNIEnv*
    - int
    - int
    - jlong
    constantsTouched: []
    func_position:
      end: 132
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 132
    functionName: Deflater_setLevelsImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp
    functionUses: 0
    functionsReached:
    - throwExceptionForZlibError
    - reinterpret_cast<Bytef*>
    - jniThrowException
    - toNativeZipStream
    linkageType: ''
    returnType: void
    signature: Deflater_setLevelsImpl(JNIEnv* env, jobject, int level, int strategy,
      jlong handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:147,1
    - Dst: JNIEnv*::GetFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:148,1
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:149,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: register_java_util_zip_Deflater
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    - JNIEnv*::GetFieldID
    linkageType: ''
    returnType: int
    signature: register_java_util_zip_Deflater(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:39,1
    - Dst: static_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: cast
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 33
    functionsReached:
    - static_cast<uintptr_t>
    - reinterpret_cast<T>
    linkageType: ''
    returnType: T
    signature: cast(jint address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::CallBooleanMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:43,1
    - Dst: static_cast<jlong>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:44,1
    - Dst: LOGW
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:46,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:47,1
    - Dst: LOGV
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:51,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:54,1
    - Dst: reinterpret_cast<jlong*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:62,1
    - Dst: static_cast<jint>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:64,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - env
    - size
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 65
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 65
    functionName: OSMemory_malloc
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - LOGW
    - reinterpret_cast<uintptr_t>
    - LOGV
    - jniThrowException
    - static_cast<jlong>
    - static_cast<jint>
    - reinterpret_cast<jlong*>
    - JNIEnv*::CallBooleanMethod
    linkageType: ''
    returnType: jint
    signature: OSMemory_malloc(JNIEnv* env, jclass, jint size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<jlong*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:68,1
    - Dst: static_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:68,1
    - Dst: LOGV
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:70,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:71,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:72,1
    - Dst: reinterpret_cast<void*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - env
    - address
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: OSMemory_free
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uintptr_t>
    - LOGV
    - reinterpret_cast<void*>
    - free
    - reinterpret_cast<jlong*>
    - JNIEnv*::CallVoidMethod
    linkageType: ''
    returnType: void
    signature: OSMemory_free(JNIEnv* env, jclass, jint address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:76,1
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dstAddress
    - value
    - length
    argTypes:
    - jint
    - jbyte
    - jlong
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: OSMemory_memset
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - cast
    - memset
    linkageType: ''
    returnType: void
    signature: OSMemory_memset(JNIEnv*, jclass, jint dstAddress, jbyte value, jlong
      length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:80,1
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:80,1
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dstAddress
    - srcAddress
    - length
    argTypes:
    - jint
    - jint
    - jlong
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: OSMemory_memmove
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - cast
    - memmove
    linkageType: ''
    returnType: void
    signature: OSMemory_memmove(JNIEnv*, jclass, jint dstAddress, jint srcAddress,
      jlong length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - srcAddress
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: OSMemory_getByte
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - cast
    linkageType: ''
    returnType: jbyte
    signature: OSMemory_getByte(JNIEnv*, jclass, jint srcAddress)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::SetByteArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:89,1
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - env
    - srcAddress
    - dst
    - offset
    - length
    argTypes:
    - JNIEnv*
    - jint
    - jbyteArray
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: OSMemory_getByteArray
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - cast
    - JNIEnv*::SetByteArrayRegion
    linkageType: ''
    returnType: void
    signature: "OSMemory_getByteArray(JNIEnv* env, jclass, jint srcAddress,\n        jbyteArray
      dst, jint offset, jint length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dstAddress
    - value
    argTypes:
    - jint
    - jbyte
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: OSMemory_setByte
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - cast
    linkageType: ''
    returnType: void
    signature: OSMemory_setByte(JNIEnv*, jclass, jint dstAddress, jbyte value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetByteArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:98,1
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - env
    - dstAddress
    - src
    - offset
    - length
    argTypes:
    - JNIEnv*
    - jint
    - jbyteArray
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: OSMemory_setByteArray
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - cast
    - JNIEnv*::GetByteArrayRegion
    linkageType: ''
    returnType: void
    signature: "OSMemory_setByteArray(JNIEnv* env, jclass,\n        jint dstAddress,
      jbyteArray src, jint offset, jint length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - shorts
    - count
    argTypes:
    - jshort*
    - int
    constantsTouched: []
    func_position:
      end: 110
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 110
    functionName: swapShorts
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<jbyte*>
    linkageType: ''
    returnType: void
    signature: swapShorts(jshort* shorts, int count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ints
    - count
    argTypes:
    - jint*
    - int
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: swapInts
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<jbyte*>
    linkageType: ''
    returnType: void
    signature: swapInts(jint* ints, int count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:129,1
    - Dst: JNIEnv*::GetFloatArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:130,1
    - Dst: swapInts
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:132,1
    - Dst: reinterpret_cast<jint*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - env
    - dstAddress
    - src
    - offset
    - length
    - swap
    argTypes:
    - JNIEnv*
    - jint
    - jfloatArray
    - jint
    - jint
    - jboolean
    constantsTouched: []
    func_position:
      end: 134
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 134
    functionName: OSMemory_setFloatArray
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - cast
    - JNIEnv*::GetFloatArrayRegion
    - reinterpret_cast<jint*>
    - swapInts
    linkageType: ''
    returnType: void
    signature: "OSMemory_setFloatArray(JNIEnv* env, jclass, jint dstAddress,\n        jfloatArray
      src, jint offset, jint length, jboolean swap)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:138,1
    - Dst: JNIEnv*::GetIntArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:139,1
    - Dst: swapInts
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - env
    - dstAddress
    - src
    - offset
    - length
    - swap
    argTypes:
    - JNIEnv*
    - jint
    - jintArray
    - jint
    - jint
    - jboolean
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: OSMemory_setIntArray
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - cast
    - JNIEnv*::GetIntArrayRegion
    - swapInts
    linkageType: ''
    returnType: void
    signature: "OSMemory_setIntArray(JNIEnv* env, jclass,\n       jint dstAddress,
      jintArray src, jint offset, jint length, jboolean swap)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:147,1
    - Dst: JNIEnv*::GetShortArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:148,1
    - Dst: swapShorts
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - env
    - dstAddress
    - src
    - offset
    - length
    - swap
    argTypes:
    - JNIEnv*
    - jint
    - jshortArray
    - jint
    - jint
    - jboolean
    constantsTouched: []
    func_position:
      end: 152
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 152
    functionName: OSMemory_setShortArray
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - cast
    - JNIEnv*::GetShortArrayRegion
    - swapShorts
    linkageType: ''
    returnType: void
    signature: "OSMemory_setShortArray(JNIEnv* env, jclass,\n       jint dstAddress,
      jshortArray src, jint offset, jint length, jboolean swap)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:156,1
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:160,1
    - Dst: reinterpret_cast<jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - srcAddress
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 166
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 166
    functionName: OSMemory_getShort
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - cast
    - reinterpret_cast<jbyte*>
    linkageType: ''
    returnType: jshort
    signature: OSMemory_getShort(JNIEnv*, jclass, jint srcAddress)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:170,1
    - Dst: reinterpret_cast<const jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:173,1
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - dstAddress
    - value
    argTypes:
    - jint
    - jshort
    constantsTouched: []
    func_position:
      end: 178
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 178
    functionName: OSMemory_setShort
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - cast
    - reinterpret_cast<const jbyte*>
    linkageType: ''
    returnType: void
    signature: OSMemory_setShort(JNIEnv*, jclass, jint dstAddress, jshort value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:182,1
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:186,1
    - Dst: reinterpret_cast<jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - srcAddress
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 194
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 194
    functionName: OSMemory_getInt
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - cast
    - reinterpret_cast<jbyte*>
    linkageType: ''
    returnType: jint
    signature: OSMemory_getInt(JNIEnv*, jclass, jint srcAddress)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:198,1
    - Dst: reinterpret_cast<const jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:201,1
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - dstAddress
    - value
    argTypes:
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 208
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 208
    functionName: OSMemory_setInt
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - cast
    - reinterpret_cast<const jbyte*>
    linkageType: ''
    returnType: void
    signature: OSMemory_setInt(JNIEnv*, jclass, jint dstAddress, jint value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:212,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - srcAddress
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 220
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 220
    functionName: get
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 106
    functionsReached:
    - cast
    - memcpy
    linkageType: ''
    returnType: T
    signature: get(jint srcAddress)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:224,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dstAddress
    - value
    argTypes:
    - jint
    - T
    constantsTouched: []
    func_position:
      end: 230
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 230
    functionName: set
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 434
    functionsReached:
    - cast
    - memcpy
    linkageType: ''
    returnType: void
    signature: set(jint dstAddress, T value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - srcAddress
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: OSMemory_getLong
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: jlong
    signature: OSMemory_getLong(JNIEnv*, jclass, jint srcAddress)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dstAddress
    - value
    argTypes:
    - jint
    - jlong
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: OSMemory_setLong
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - set
    linkageType: ''
    returnType: void
    signature: OSMemory_setLong(JNIEnv*, jclass, jint dstAddress, jlong value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - srcAddress
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 242
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 242
    functionName: OSMemory_getFloat
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: jfloat
    signature: OSMemory_getFloat(JNIEnv*, jclass, jint srcAddress)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dstAddress
    - value
    argTypes:
    - jint
    - jfloat
    constantsTouched: []
    func_position:
      end: 246
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 246
    functionName: OSMemory_setFloat
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - set
    linkageType: ''
    returnType: void
    signature: OSMemory_setFloat(JNIEnv*, jclass, jint dstAddress, jfloat value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - srcAddress
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: OSMemory_getDouble
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: jdouble
    signature: OSMemory_getDouble(JNIEnv*, jclass, jint srcAddress)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dstAddress
    - value
    argTypes:
    - jint
    - jdouble
    constantsTouched: []
    func_position:
      end: 254
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 254
    functionName: OSMemory_setDouble
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - set
    linkageType: ''
    returnType: void
    signature: OSMemory_setDouble(JNIEnv*, jclass, jint dstAddress, jdouble value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - srcAddress
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: OSMemory_getAddress
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - cast
    linkageType: ''
    returnType: jint
    signature: OSMemory_getAddress(JNIEnv*, jclass, jint srcAddress)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dstAddress
    - value
    argTypes:
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 262
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 262
    functionName: OSMemory_setAddress
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - cast
    linkageType: ''
    returnType: void
    signature: OSMemory_setAddress(JNIEnv*, jclass, jint dstAddress, jint value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:280,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:281,1
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:287,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:289,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - env
    - fd
    - offset
    - size
    - mapMode
    argTypes:
    - JNIEnv*
    - jint
    - jlong
    - jlong
    - jint
    constantsTouched: []
    func_position:
      end: 290
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 290
    functionName: OSMemory_mmapImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - LOGE
    - reinterpret_cast<uintptr_t>
    - jniThrowIOException
    linkageType: ''
    returnType: jint
    signature: OSMemory_mmapImpl(JNIEnv* env, jclass, jint fd, jlong offset, jlong
      size, jint mapMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:293,1
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - address
    - size
    argTypes:
    - jint
    - jlong
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: OSMemory_unmap
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - munmap
    - cast
    linkageType: ''
    returnType: void
    signature: OSMemory_unmap(JNIEnv*, jclass, jint address, jlong size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mlock
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:297,1
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:297,1
    - Dst: munlock
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:298,1
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - address
    - size
    argTypes:
    - jint
    - jlong
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: OSMemory_load
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - cast
    - mlock
    - munlock
    linkageType: ''
    returnType: void
    signature: OSMemory_load(JNIEnv*, jclass, jint address, jlong size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unsigned char::unsigned char
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - address
    - size
    argTypes:
    - jint
    - jlong
    constantsTouched: []
    func_position:
      end: 326
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 326
    functionName: OSMemory_isLoaded
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - unsigned char::unsigned char
    linkageType: ''
    returnType: jboolean
    signature: OSMemory_isLoaded(JNIEnv*, jclass, jint address, jlong size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: msync
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:329,1
    - Dst: cast
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - address
    - size
    argTypes:
    - jint
    - jlong
    constantsTouched: []
    func_position:
      end: 330
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 330
    functionName: OSMemory_flush
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - cast
    - msync
    linkageType: ''
    returnType: void
    signature: OSMemory_flush(JNIEnv*, jclass, jint address, jlong size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:367,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:369,1
    - Dst: JNIEnv*::GetStaticMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:372,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:379,1
    - Dst: JNIEnv*::CallStaticObjectMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:383,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:385,1
    - Dst: JNIEnv*::NewGlobalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:388,1
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:390,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp:391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 392
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 392
    functionName: register_org_apache_harmony_luni_platform_OSMemory
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - JNIEnv*::GetMethodID
    - LOGE
    - JNIEnv*::GetStaticMethodID
    - JNIEnv*::NewGlobalRef
    - NELEM
    - JNIEnv*::CallStaticObjectMethod
    linkageType: ''
    returnType: int
    signature: register_org_apache_harmony_luni_platform_OSMemory(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - arg1
    - length
    - arg2
    argTypes:
    - uint64_t*
    - int32_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 127
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 127
    functionName: simpleAddHighPrecision
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: simpleAddHighPrecision (uint64_t * arg1, int32_t length, uint64_t arg2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - arg1
    - length1
    - arg2
    - length2
    argTypes:
    - uint64_t*
    - int32_t
    - uint64_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 172
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 172
    functionName: addHighPrecision
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: addHighPrecision (uint64_t * arg1, int32_t length1, uint64_t * arg2,
      int32_t length2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simpleAddHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:181,1
    - Dst: addHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:186,1
    - Dst: simpleAddHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - arg1
    - length1
    - arg2
    - length2
    argTypes:
    - uint64_t*
    - int32_t
    - uint64_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 191
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 191
    functionName: subtractHighPrecision
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp
    functionUses: 1
    functionsReached:
    - addHighPrecision
    - simpleAddHighPrecision
    linkageType: ''
    returnType: void
    signature: subtractHighPrecision (uint64_t * arg1, int32_t length1, uint64_t *
      arg2, int32_t length2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HIGH_IN_U64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:204,1
    - Dst: LOW_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:204,1
    - Dst: LOW_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:205,1
    - Dst: LOW_U32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:205,1
    - Dst: HIGH_IN_U64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:207,1
    - Dst: HIGH_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:207,1
    - Dst: HIGH_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:208,1
    - Dst: LOW_U32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:208,1
    - Dst: HIGH_U32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - arg1
    - length
    - arg2
    argTypes:
    - uint64_t*
    - int32_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 213
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 213
    functionName: simpleMultiplyHighPrecision
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp
    functionUses: 0
    functionsReached:
    - HIGH_U32_FROM_VAR
    - LOW_U32_FROM_VAR
    - HIGH_IN_U64
    - LOW_U32_FROM_PTR
    - HIGH_U32_FROM_PTR
    linkageType: ''
    returnType: uint32_t
    signature: simpleMultiplyHighPrecision(uint64_t* arg1, int32_t length, uint64_t
      arg2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HIGH_IN_U64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:230,1
    - Dst: at
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:230,1
    - Dst: LOW_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:231,1
    - Dst: at
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:232,1
    - Dst: LOW_U32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:232,1
    - Dst: HIGH_IN_U64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:235,1
    - Dst: at
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:235,1
    - Dst: HIGH_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:236,1
    - Dst: at
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:237,1
    - Dst: LOW_U32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:237,1
    - Dst: at
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:242,1
    - Dst: HIGH_U32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:242,1
    - Dst: at
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:243,1
    - Dst: HIGH_U32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:243,1
    - Dst: at
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - arg1
    - length
    - arg2
    - result
    argTypes:
    - uint64_t*
    - int32_t
    - uint64_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 250
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 250
    functionName: simpleMultiplyAddHighPrecision
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp
    functionUses: 0
    functionsReached:
    - HIGH_U32_FROM_VAR
    - at
    - LOW_U32_FROM_VAR
    - HIGH_IN_U64
    - LOW_U32_FROM_PTR
    - HIGH_U32_FROM_PTR
    linkageType: ''
    returnType: void
    signature: "simpleMultiplyAddHighPrecision (uint64_t * arg1, int32_t length, uint64_t
      arg2,\n                                uint32_t * result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HIGH_IN_U64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:263,1
    - Dst: halfAt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:263,1
    - Dst: LOW_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:263,1
    - Dst: halfAt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:264,1
    - Dst: LOW_U32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:264,1
    - Dst: HIGH_IN_U64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:266,1
    - Dst: halfAt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:266,1
    - Dst: HIGH_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:266,1
    - Dst: halfAt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:267,1
    - Dst: LOW_U32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:267,1
    - Dst: halfAt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:271,1
    - Dst: HIGH_U32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:271,1
    - Dst: halfAt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:272,1
    - Dst: HIGH_U32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:272,1
    - Dst: halfAt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - arg1
    - length
    - arg2
    - result
    argTypes:
    - uint64_t*
    - int32_t
    - uint64_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 277
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 277
    functionName: simpleMultiplyAddHighPrecisionBigEndianFix
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp
    functionUses: 0
    functionsReached:
    - HIGH_U32_FROM_VAR
    - LOW_U32_FROM_VAR
    - HIGH_IN_U64
    - LOW_U32_FROM_PTR
    - HIGH_U32_FROM_PTR
    - halfAt
    linkageType: ''
    returnType: void
    signature: simpleMultiplyAddHighPrecisionBigEndianFix(uint64_t* arg1, int32_t
      length, uint64_t arg2, uint32_t* result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:299,1
    - Dst: reinterpret_cast<uint32_t*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:302,1
    - Dst: simpleMultiplyAddHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:306,1
    - Dst: LOW_IN_U64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:306,1
    - Dst: simpleMultiplyAddHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:309,1
    - Dst: HIGH_IN_U64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:309,1
    - Dst: simpleMultiplyAddHighPrecisionBigEndianFix
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:311,1
    - Dst: HIGH_IN_U64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 6
    argNames:
    - arg1
    - length1
    - arg2
    - length2
    - result
    - length
    argTypes:
    - uint64_t*
    - int32_t
    - uint64_t*
    - int32_t
    - uint64_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 314
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 314
    functionName: multiplyHighPrecision
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp
    functionUses: 0
    functionsReached:
    - simpleMultiplyAddHighPrecisionBigEndianFix
    - HIGH_IN_U64
    - simpleMultiplyAddHighPrecision
    - memset
    - reinterpret_cast<uint32_t*>
    - LOW_IN_U64
    linkageType: ''
    returnType: void
    signature: "multiplyHighPrecision (uint64_t * arg1, int32_t length1, uint64_t
      * arg2, int32_t length2,\n                       uint64_t * result, int32_t
      length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOW_IN_U64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:326,1
    - Dst: HIGH_IN_U64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:327,1
    - Dst: TIMES_TEN
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:327,1
    - Dst: LOW_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:328,1
    - Dst: LOW_U32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:328,1
    - Dst: HIGH_IN_U64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:330,1
    - Dst: HIGH_IN_U64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:331,1
    - Dst: TIMES_TEN
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:331,1
    - Dst: HIGH_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:332,1
    - Dst: LOW_U32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:332,1
    - Dst: HIGH_U32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - arg1
    - length
    - digit
    argTypes:
    - uint64_t*
    - int32_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 337
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 337
    functionName: simpleAppendDecimalDigitHighPrecision
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp
    functionUses: 1
    functionsReached:
    - HIGH_U32_FROM_VAR
    - TIMES_TEN
    - HIGH_IN_U64
    - HIGH_U32_FROM_PTR
    - LOW_U32_FROM_PTR
    - LOW_U32_FROM_VAR
    - LOW_IN_U64
    linkageType: ''
    returnType: uint32_t
    signature: simpleAppendDecimalDigitHighPrecision (uint64_t * arg1, int32_t length,
      uint64_t digit)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - arg1
    - length
    - arg2
    argTypes:
    - uint64_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 367
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 367
    functionName: simpleShiftLeftHighPrecision
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: simpleShiftLeftHighPrecision (uint64_t * arg1, int32_t length, int32_t
      arg2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HIGH_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:381,1
    - Dst: LOW_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:386,1
    - Dst: HIGH_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:393,1
    - Dst: LOW_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:398,1
    - Dst: HIGH_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:404,1
    - Dst: LOW_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:409,1
    - Dst: bitSection
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:417,1
    - Dst: bitSection
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:422,1
    - Dst: bitSection
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:427,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 1
    argNames:
    - y
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 438
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 438
    functionName: highestSetBit
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp
    functionUses: 0
    functionsReached:
    - bitSection
    - HIGH_U32_FROM_PTR
    - LOW_U32_FROM_PTR
    linkageType: ''
    returnType: int32_t
    signature: highestSetBit (uint64_t * y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOW_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:452,1
    - Dst: HIGH_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:457,1
    - Dst: LOW_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:464,1
    - Dst: HIGH_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:469,1
    - Dst: LOW_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:475,1
    - Dst: HIGH_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:480,1
    - Dst: bitSection
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:488,1
    - Dst: bitSection
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:493,1
    - Dst: bitSection
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:498,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 1
    argNames:
    - y
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 510
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 510
    functionName: lowestSetBit
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp
    functionUses: 0
    functionsReached:
    - bitSection
    - HIGH_U32_FROM_PTR
    - LOW_U32_FROM_PTR
    linkageType: ''
    returnType: int32_t
    signature: lowestSetBit (uint64_t * y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: highestSetBit
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - arg
    - length
    argTypes:
    - uint64_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 525
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 525
    functionName: highestSetBitHighPrecision
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp
    functionUses: 0
    functionsReached:
    - highestSetBit
    linkageType: ''
    returnType: int32_t
    signature: highestSetBitHighPrecision (uint64_t * arg, int32_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lowestSetBit
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:534,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - arg
    - length
    argTypes:
    - uint64_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 540
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 540
    functionName: lowestSetBitHighPrecision
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp
    functionUses: 0
    functionsReached:
    - lowestSetBit
    linkageType: ''
    returnType: int32_t
    signature: lowestSetBitHighPrecision (uint64_t * arg, int32_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 4
    argNames:
    - arg1
    - length1
    - arg2
    - length2
    argTypes:
    - uint64_t*
    - int32_t
    - uint64_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 565
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 565
    functionName: compareHighPrecision
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: compareHighPrecision (uint64_t * arg1, int32_t length1, uint64_t *
      arg2, int32_t length2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DOUBLE_TO_LONGBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:582,1
    - Dst: highestSetBit
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:586,1
    - Dst: DOUBLE_TO_LONGBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:591,1
    - Dst: CREATE_DOUBLE_BITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:592,1
    - Dst: DOUBLE_TO_LONGBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:598,1
    - Dst: CREATE_DOUBLE_BITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:599,1
    - Dst: LOW_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:602,1
    - Dst: DOUBLE_TO_LONGBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:604,1
    - Dst: DOUBLE_TO_LONGBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:604,1
    - Dst: highestSetBit
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:609,1
    - Dst: DOUBLE_TO_LONGBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:623,1
    - Dst: CREATE_DOUBLE_BITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:624,1
    - Dst: DOUBLE_TO_LONGBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:629,1
    - Dst: DOUBLE_TO_LONGBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:629,1
    - Dst: DOUBLE_TO_LONGBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:636,1
    - Dst: DOUBLE_TO_LONGBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:637,1
    - Dst: DOUBLE_TO_LONGBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:647,1
    - Dst: CREATE_DOUBLE_BITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:648,1
    - Dst: LOW_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:651,1
    - Dst: DOUBLE_TO_LONGBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:653,1
    - Dst: DOUBLE_TO_LONGBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:653,1
    - Dst: DOUBLE_TO_LONGBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:660,1
    - Dst: DOUBLE_TO_LONGBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:661,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 61
    argCount: 2
    argNames:
    - arg
    - length
    argTypes:
    - uint64_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 671
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 671
    functionName: toDoubleHighPrecision
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp
    functionUses: 0
    functionsReached:
    - highestSetBit
    - CREATE_DOUBLE_BITS
    - LOW_U32_FROM_PTR
    - DOUBLE_TO_LONGBITS
    linkageType: ''
    returnType: jdouble
    signature: toDoubleHighPrecision (uint64_t * arg, int32_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simpleMultiplyHighPrecision64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:704,1
    - Dst: simpleMultiplyHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:711,1
    - Dst: simpleAppendDecimalDigitHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:720,1
    - Dst: simpleAppendDecimalDigitHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:726,1
    - Dst: simpleAppendDecimalDigitHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:729,1
    - Dst: simpleMultiplyHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:735,1
    - Dst: simpleMultiplyHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:741,1
    - Dst: simpleMultiplyHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:747,1
    - Dst: simpleMultiplyHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:753,1
    - Dst: simpleMultiplyHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:759,1
    - Dst: simpleMultiplyHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:765,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 61
    argCount: 3
    argNames:
    - result
    - length
    - e
    argTypes:
    - uint64_t*
    - int32_t
    - jint
    constantsTouched: []
    func_position:
      end: 770
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 770
    functionName: timesTenToTheEHighPrecision
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp
    functionUses: 1
    functionsReached:
    - simpleMultiplyHighPrecision
    - simpleAppendDecimalDigitHighPrecision
    - simpleMultiplyHighPrecision64
    linkageType: ''
    returnType: int32_t
    signature: timesTenToTheEHighPrecision (uint64_t * result, int32_t length, jint
      e)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - z
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 783
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 783
    functionName: doubleMantissa
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: doubleMantissa (jdouble z)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - z
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 797
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 797
    functionName: doubleExponent
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: doubleExponent (jdouble z)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - z
    argTypes:
    - jfloat
    constantsTouched: []
    func_position:
      end: 808
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 808
    functionName: floatMantissa
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: floatMantissa(jfloat z)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - z
    argTypes:
    - jfloat
    constantsTouched: []
    func_position:
      end: 821
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 821
    functionName: floatExponent
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: floatExponent (jfloat z)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:842,1
    - Dst: LOW_U32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:842,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:842,1
    - Dst: LOW_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:842,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:853,1
    - Dst: LOW_U32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:853,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:853,1
    - Dst: HIGH_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:853,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:855,1
    - Dst: HIGH_U32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:855,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:855,1
    - Dst: LOW_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:855,1
    - Dst: HIGH_IN_U64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:856,1
    - Dst: LOW_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:865,1
    - Dst: LOW_U32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:865,1
    - Dst: HIGH_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:866,1
    - Dst: HIGH_U32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:867,1
    - Dst: LOW_U32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:867,1
    - Dst: HIGH_IN_U64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:868,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:869,1
    - Dst: HIGH_U32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:869,1
    - Dst: static_cast<uint64_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp:869,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - arg1
    - length
    - arg2
    argTypes:
    - uint64_t*
    - int32_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 875
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 875
    functionName: simpleMultiplyHighPrecision64
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp
    functionUses: 1
    functionsReached:
    - HIGH_U32_FROM_VAR
    - LOW_U32_FROM_VAR
    - HIGH_IN_U64
    - LOW_U32_FROM_PTR
    - HIGH_U32_FROM_PTR
    - static_cast<uint64_t>
    linkageType: ''
    returnType: uint64_t
    signature: simpleMultiplyHighPrecision64 (uint64_t * arg1, int32_t length, uint64_t
      arg2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<RegexPattern*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp:32,1
    - Dst: static_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: toRegexPattern
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uintptr_t>
    - reinterpret_cast<RegexPattern*>
    linkageType: ''
    returnType: RegexPattern
    signature: '* toRegexPattern(jint addr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp:36,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp:38,1
    - Dst: u_errorName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp:38,1
    - Dst: JNIEnv*::NewObject
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp:40,1
    - Dst: JNIEnv*::Throw
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp:41,1
    - Dst: reinterpret_cast<jthrowable>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - env
    - status
    - pattern
    - error
    argTypes:
    - JNIEnv*
    - UErrorCode
    - jstring
    - UParseError
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: throwPatternSyntaxException
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp
    functionUses: 0
    functionsReached:
    - u_errorName
    - JNIEnv*::GetMethodID
    - JNIEnv*::Throw
    - JNIEnv*::NewObject
    - reinterpret_cast<jthrowable>
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: void
    signature: throwPatternSyntaxException(JNIEnv* env, UErrorCode status, jstring
      pattern, UParseError error)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toRegexPattern
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: Pattern_closeImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp
    functionUses: 0
    functionsReached:
    - toRegexPattern
    linkageType: ''
    returnType: void
    signature: Pattern_closeImpl(JNIEnv*, jclass, jint addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: regexString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp:56,1
    - Dst: ScopedJavaUnicodeString::unicodeString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp:56,1
    - Dst: Java_SQLite_Vm_compile
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp:57,1
    - Dst: U_SUCCESS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp:58,1
    - Dst: throwPatternSyntaxException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp:59,1
    - Dst: static_cast<jint>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp:61,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - env
    - javaRegex
    - flags
    argTypes:
    - JNIEnv*
    - jstring
    - jint
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: Pattern_compileImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uintptr_t>
    - throwPatternSyntaxException
    - ScopedJavaUnicodeString::unicodeString
    - U_SUCCESS
    - static_cast<jint>
    - regexString
    - Java_SQLite_Vm_compile
    linkageType: ''
    returnType: jint
    signature: Pattern_compileImpl(JNIEnv* env, jclass, jstring javaRegex, jint flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp:69,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: register_java_util_regex_Pattern
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_java_util_regex_Pattern(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEMP_FAILURE_RETRY
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/libcore_io_IoUtils.cpp:29,1
    - Dst: close
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/libcore_io_IoUtils.cpp:29,1
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/libcore_io_IoUtils.cpp:31,1
    - Dst: jniSetFileDescriptorOfFD
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/libcore_io_IoUtils.cpp:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - env
    - fileDescriptor
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: IoUtils_close
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/libcore_io_IoUtils.cpp
    functionUses: 0
    functionsReached:
    - jniSetFileDescriptorOfFD
    - close
    - TEMP_FAILURE_RETRY
    - jniThrowIOException
    linkageType: ''
    returnType: void
    signature: IoUtils_close(JNIEnv* env, jclass, jobject fileDescriptor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniGetFDFromFileDescriptor
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/libcore_io_IoUtils.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - fileDescriptor
    argTypes:
    - JNIEnv*
    - jobject
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: IoUtils_getFd
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/libcore_io_IoUtils.cpp
    functionUses: 0
    functionsReached:
    - jniGetFDFromFileDescriptor
    linkageType: ''
    returnType: jint
    signature: IoUtils_getFd(JNIEnv* env, jclass, jobject fileDescriptor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedIntArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/libcore_io_IoUtils.cpp:42,1
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/libcore_io_IoUtils.cpp:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - env
    - javaFds
    argTypes:
    - JNIEnv*
    - jintArray
    constantsTouched: []
    func_position:
      end: 50
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 50
    functionName: IoUtils_pipe
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/libcore_io_IoUtils.cpp
    functionUses: 1
    functionsReached:
    - ScopedIntArrayRW::get
    - jniThrowIOException
    linkageType: ''
    returnType: void
    signature: IoUtils_pipe(JNIEnv* env, jclass, jintArray javaFds)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniSetFileDescriptorOfFD
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/libcore_io_IoUtils.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - env
    - fileDescriptor
    - newValue
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: IoUtils_setFd
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/libcore_io_IoUtils.cpp
    functionUses: 0
    functionsReached:
    - jniSetFileDescriptorOfFD
    linkageType: ''
    returnType: void
    signature: IoUtils_setFd(JNIEnv* env, jclass, jobject fileDescriptor, jint newValue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setBlocking
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/libcore_io_IoUtils.cpp:61,1
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/libcore_io_IoUtils.cpp:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - env
    - fileDescriptor
    - blocking
    argTypes:
    - JNIEnv*
    - jobject
    - jboolean
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: IoUtils_setBlocking
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/libcore_io_IoUtils.cpp
    functionUses: 0
    functionsReached:
    - setBlocking
    - jniThrowIOException
    linkageType: ''
    returnType: void
    signature: IoUtils_setBlocking(JNIEnv* env, jclass, jobject fileDescriptor, jboolean
      blocking)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/libcore_io_IoUtils.cpp:74,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/libcore_io_IoUtils.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: register_libcore_io_IoUtils
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/libcore_io_IoUtils.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_libcore_io_IoUtils(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEMP_FAILURE_RETRY
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_Console.cpp:28,1
    - Dst: isatty
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_Console.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Console_isatty
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_Console.cpp
    functionUses: 0
    functionsReached:
    - TEMP_FAILURE_RETRY
    - isatty
    linkageType: ''
    returnType: jboolean
    signature: Console_isatty(JNIEnv*, jclass, jint fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEMP_FAILURE_RETRY
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_Console.cpp:33,1
    - Dst: tcgetattr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_Console.cpp:33,1
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_Console.cpp:34,1
    - Dst: TEMP_FAILURE_RETRY
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_Console.cpp:43,1
    - Dst: tcsetattr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_Console.cpp:43,1
    - Dst: jniThrowIOException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_Console.cpp:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - env
    - 'on'
    - previousState
    argTypes:
    - JNIEnv*
    - jboolean
    - jint
    constantsTouched: []
    func_position:
      end: 48
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 48
    functionName: Console_setEchoImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_Console.cpp
    functionUses: 0
    functionsReached:
    - tcsetattr
    - tcgetattr
    - TEMP_FAILURE_RETRY
    - jniThrowIOException
    linkageType: ''
    returnType: jint
    signature: Console_setEchoImpl(JNIEnv* env, jclass, jboolean on, jint previousState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_Console.cpp:55,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_Console.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: register_java_io_Console
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_Console.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_java_io_Console(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_sin
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: StrictMath_sin
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_sin
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_sin(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_cos
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: StrictMath_cos
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_cos
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_cos(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_tan
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: StrictMath_tan
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_tan
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_tan(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_asin
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: StrictMath_asin
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_asin
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_asin(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_acos
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: StrictMath_acos
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_acos
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_acos(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_atan
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: StrictMath_atan
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_atan
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_atan(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_exp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: StrictMath_exp
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_exp
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_exp(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_log
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: StrictMath_log
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_log
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_log(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_sqrt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: StrictMath_sqrt
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_sqrt
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_sqrt(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_remainder
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - jdouble
    - jdouble
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: StrictMath_IEEEremainder
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_remainder
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_IEEEremainder(JNIEnv*, jclass, jdouble a, jdouble b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_floor
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: StrictMath_floor
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_floor
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_floor(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_ceil
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: StrictMath_ceil
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_ceil
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_ceil(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_rint
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: StrictMath_rint
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_rint
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_rint(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_atan2
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - jdouble
    - jdouble
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: StrictMath_atan2
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_atan2
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_atan2(JNIEnv*, jclass, jdouble a, jdouble b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_pow
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - jdouble
    - jdouble
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: StrictMath_pow
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_pow
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_pow(JNIEnv*, jclass, jdouble a, jdouble b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_sinh
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: StrictMath_sinh
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_sinh
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_sinh(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_tanh
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: StrictMath_tanh
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_tanh
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_tanh(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_cosh
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: StrictMath_cosh
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_cosh
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_cosh(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_log10
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: StrictMath_log10
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_log10
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_log10(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_cbrt
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: StrictMath_cbrt
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_cbrt
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_cbrt(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_expm1
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: StrictMath_expm1
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_expm1
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_expm1(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_hypot
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - jdouble
    - jdouble
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: StrictMath_hypot
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_hypot
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_hypot(JNIEnv*, jclass, jdouble a, jdouble b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_log1p
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - jdouble
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: StrictMath_log1p
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_log1p
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_log1p(JNIEnv*, jclass, jdouble a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ieee_nextafter
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - jdouble
    - jdouble
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: StrictMath_nextafter
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - ieee_nextafter
    linkageType: ''
    returnType: jdouble
    signature: StrictMath_nextafter(JNIEnv*, jclass, jdouble a, jdouble b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Float_floatToRawIntBits
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:127,1
    - Dst: Float_floatToRawIntBits
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:128,1
    - Dst: Float_intBitsToFloat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:131,1
    - Dst: Float_intBitsToFloat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - arg1
    - arg2
    argTypes:
    - jfloat
    - jfloat
    constantsTouched: []
    func_position:
      end: 140
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 140
    functionName: StrictMath_nextafterf
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - Float_intBitsToFloat
    - Float_floatToRawIntBits
    linkageType: ''
    returnType: jfloat
    signature: StrictMath_nextafterf(JNIEnv*, jclass, jfloat arg1, jfloat arg2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:171,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: register_java_lang_StrictMath
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_java_lang_StrictMath(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:173,1
    - Dst: simpleAppendDecimalDigitHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:175,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:187,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:213,1
    - Dst: toDoubleHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:219,1
    - Dst: createDouble1
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:221,1
    - Dst: DOUBLE_TO_LONGBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:224,1
    - Dst: LOW_I32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:229,1
    - Dst: HIGH_I32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:230,1
    - Dst: toDoubleHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:238,1
    - Dst: createDouble1
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:240,1
    - Dst: LOW_I32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:244,1
    - Dst: HIGH_I32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:245,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 3
    argNames:
    - env
    - s
    - e
    argTypes:
    - JNIEnv*
    - char*
    - jint
    constantsTouched: []
    func_position:
      end: 251
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 251
    functionName: createDouble
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp
    functionUses: 0
    functionsReached:
    - LOW_I32_FROM_VAR
    - toDoubleHighPrecision
    - HIGH_I32_FROM_VAR
    - strlen
    - simpleAppendDecimalDigitHighPrecision
    - memcpy
    - createDouble1
    - DOUBLE_TO_LONGBITS
    linkageType: ''
    returnType: jdouble
    signature: createDouble(JNIEnv* env, const char* s, jint e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: highestSetBitHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:260,1
    - Dst: lowestSetBitHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:261,1
    - Dst: toDoubleHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:264,1
    - Dst: doubleTenToTheE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:264,1
    - Dst: toDoubleHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:268,1
    - Dst: doubleTenToTheE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:268,1
    - Dst: toDoubleHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:272,1
    - Dst: pow
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:272,1
    - Dst: toDoubleHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:279,1
    - Dst: DOUBLE_TO_LONGBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:286,1
    - Dst: DOUBLE_TO_LONGBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:290,1
    - Dst: toDoubleHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:296,1
    - Dst: pow
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:296,1
    - Dst: toDoubleHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:302,1
    - Dst: pow
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:302,1
    - Dst: pow
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:303,1
    - Dst: DOUBLE_TO_LONGBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:313,1
    - Dst: doubleAlgorithm
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:315,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 4
    argNames:
    - env
    - f
    - length
    - e
    argTypes:
    - JNIEnv*
    - uint64_t*
    - int32_t
    - jint
    constantsTouched: []
    func_position:
      end: 316
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 316
    functionName: createDouble1
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp
    functionUses: 1
    functionsReached:
    - doubleAlgorithm
    - toDoubleHighPrecision
    - doubleTenToTheE
    - pow
    - lowestSetBitHighPrecision
    - DOUBLE_TO_LONGBITS
    - highestSetBitHighPrecision
    linkageType: ''
    returnType: jdouble
    signature: createDouble1(JNIEnv* env, uint64_t* f, int32_t length, jint e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doubleMantissa
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:350,1
    - Dst: doubleExponent
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:351,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:354,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:356,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:357,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:358,1
    - Dst: sizeOfTenToTheE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:362,1
    - Dst: allocateU64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:363,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:364,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:365,1
    - Dst: timesTenToTheEHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:366,1
    - Dst: allocateU64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:369,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:370,1
    - Dst: simpleShiftLeftHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:372,1
    - Dst: sizeOfTenToTheE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:376,1
    - Dst: allocateU64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:377,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:378,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:379,1
    - Dst: timesTenToTheEHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:380,1
    - Dst: simpleShiftLeftHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:381,1
    - Dst: allocateU64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:384,1
    - Dst: sizeOfTenToTheE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:392,1
    - Dst: allocateU64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:393,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:394,1
    - Dst: timesTenToTheEHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:396,1
    - Dst: simpleShiftLeftHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:397,1
    - Dst: allocateU64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:402,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:403,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:404,1
    - Dst: simpleShiftLeftHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:405,1
    - Dst: sizeOfTenToTheE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:407,1
    - Dst: allocateU64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:408,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:409,1
    - Dst: timesTenToTheEHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:411,1
    - Dst: compareHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:414,1
    - Dst: allocateU64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:418,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:419,1
    - Dst: subtractHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:420,1
    - Dst: allocateU64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:425,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:426,1
    - Dst: subtractHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:427,1
    - Dst: allocateU64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:432,1
    - Dst: allocateU64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:437,1
    - Dst: multiplyHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:439,1
    - Dst: compareHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:442,1
    - Dst: simpleShiftLeftHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:447,1
    - Dst: compareHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:448,1
    - Dst: DECREMENT_DOUBLE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:450,1
    - Dst: LOW_U32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:464,1
    - Dst: DECREMENT_DOUBLE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:468,1
    - Dst: DECREMENT_DOUBLE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:477,1
    - Dst: INCREMENT_DOUBLE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:482,1
    - Dst: DECREMENT_DOUBLE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:488,1
    - Dst: DOUBLE_TO_LONGBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:492,1
    - Dst: INCREMENT_DOUBLE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:494,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:500,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:501,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:502,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:503,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:508,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:509,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:510,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:511,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:512,1
    - Dst: DOUBLE_TO_LONGBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:514,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 131
    argCount: 4
    argNames:
    - f
    - length
    - e
    - z
    argTypes:
    - uint64_t*
    - int32_t
    - jint
    - jdouble
    constantsTouched: []
    func_position:
      end: 517
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 517
    functionName: doubleAlgorithm
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp
    functionUses: 1
    functionsReached:
    - doubleExponent
    - subtractHighPrecision
    - timesTenToTheEHighPrecision
    - INCREMENT_DOUBLE
    - doubleMantissa
    - memset
    - compareHighPrecision
    - free
    - multiplyHighPrecision
    - memcpy
    - sizeOfTenToTheE
    - simpleShiftLeftHighPrecision
    - allocateU64
    - DOUBLE_TO_LONGBITS
    - LOW_U32_FROM_VAR
    - DECREMENT_DOUBLE
    linkageType: ''
    returnType: jdouble
    signature: doubleAlgorithm(JNIEnv*, uint64_t* f, int32_t length, jint e, jdouble
      z)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:615,1
    - Dst: simpleAppendDecimalDigitHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:617,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:630,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:656,1
    - Dst: createFloat1
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:663,1
    - Dst: FLOAT_TO_INTBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:667,1
    - Dst: INTBITS_TO_FLOAT
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:672,1
    - Dst: createFloat1
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:679,1
    - Dst: INTBITS_TO_FLOAT
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:683,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - env
    - s
    - e
    argTypes:
    - JNIEnv*
    - char*
    - jint
    constantsTouched: []
    func_position:
      end: 689
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 689
    functionName: createFloat
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp
    functionUses: 0
    functionsReached:
    - FLOAT_TO_INTBITS
    - INTBITS_TO_FLOAT
    - strlen
    - simpleAppendDecimalDigitHighPrecision
    - memcpy
    - createFloat1
    linkageType: ''
    returnType: jfloat
    signature: createFloat(JNIEnv* env, const char* s, jint e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: highestSetBitHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:696,1
    - Dst: LOW_I32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:699,1
    - Dst: floatTenToTheE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:699,1
    - Dst: LOW_I32_FROM_PTR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:703,1
    - Dst: floatTenToTheE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:703,1
    - Dst: toDoubleHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:707,1
    - Dst: pow
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:707,1
    - Dst: toDoubleHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:714,1
    - Dst: FLOAT_TO_INTBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:718,1
    - Dst: FLOAT_TO_INTBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:720,1
    - Dst: toDoubleHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:727,1
    - Dst: pow
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:727,1
    - Dst: IS_DENORMAL_DBL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:728,1
    - Dst: doubleExponent
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:733,1
    - Dst: doubleMantissa
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:734,1
    - Dst: FLOAT_TO_INTBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:776,1
    - Dst: FLOAT_TO_INTBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:789,1
    - Dst: FLOAT_TO_INTBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:790,1
    - Dst: floatAlgorithm
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:792,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 59
    argCount: 4
    argNames:
    - env
    - f
    - length
    - e
    argTypes:
    - JNIEnv*
    - uint64_t*
    - int32_t
    - jint
    constantsTouched: []
    func_position:
      end: 793
      start: 691
    functionDepth: 2
    functionLinenumber: 691
    functionLinenumberEnd: 793
    functionName: createFloat1
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp
    functionUses: 1
    functionsReached:
    - FLOAT_TO_INTBITS
    - toDoubleHighPrecision
    - doubleExponent
    - LOW_I32_FROM_PTR
    - doubleMantissa
    - pow
    - IS_DENORMAL_DBL
    - floatAlgorithm
    - floatTenToTheE
    - highestSetBitHighPrecision
    linkageType: ''
    returnType: jfloat
    signature: createFloat1 (JNIEnv* env, uint64_t* f, int32_t length, jint e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: floatMantissa
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:828,1
    - Dst: floatExponent
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:829,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:832,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:834,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:835,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:836,1
    - Dst: sizeOfTenToTheE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:840,1
    - Dst: allocateU64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:841,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:842,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:843,1
    - Dst: timesTenToTheEHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:844,1
    - Dst: allocateU64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:847,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:848,1
    - Dst: simpleShiftLeftHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:850,1
    - Dst: sizeOfTenToTheE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:854,1
    - Dst: allocateU64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:855,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:856,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:857,1
    - Dst: timesTenToTheEHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:858,1
    - Dst: simpleShiftLeftHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:859,1
    - Dst: allocateU64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:862,1
    - Dst: sizeOfTenToTheE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:870,1
    - Dst: allocateU64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:871,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:872,1
    - Dst: timesTenToTheEHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:874,1
    - Dst: simpleShiftLeftHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:875,1
    - Dst: allocateU64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:880,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:881,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:882,1
    - Dst: simpleShiftLeftHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:883,1
    - Dst: sizeOfTenToTheE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:885,1
    - Dst: allocateU64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:886,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:887,1
    - Dst: timesTenToTheEHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:889,1
    - Dst: compareHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:892,1
    - Dst: allocateU64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:896,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:897,1
    - Dst: subtractHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:898,1
    - Dst: allocateU64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:903,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:904,1
    - Dst: subtractHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:905,1
    - Dst: allocateU64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:910,1
    - Dst: allocateU64
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:915,1
    - Dst: multiplyHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:917,1
    - Dst: compareHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:920,1
    - Dst: simpleShiftLeftHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:925,1
    - Dst: compareHighPrecision
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:926,1
    - Dst: DECREMENT_FLOAT
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:928,1
    - Dst: DECREMENT_FLOAT
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:946,1
    - Dst: DECREMENT_FLOAT
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:955,1
    - Dst: INCREMENT_FLOAT
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:960,1
    - Dst: DECREMENT_FLOAT
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:966,1
    - Dst: FLOAT_TO_INTBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:970,1
    - Dst: INCREMENT_FLOAT
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:972,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:978,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:979,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:980,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:981,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:986,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:987,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:988,1
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:989,1
    - Dst: FLOAT_TO_INTBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:991,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 130
    argCount: 4
    argNames:
    - f
    - length
    - e
    - z
    argTypes:
    - uint64_t*
    - int32_t
    - jint
    - jfloat
    constantsTouched: []
    func_position:
      end: 994
      start: 812
    functionDepth: 2
    functionLinenumber: 812
    functionLinenumberEnd: 994
    functionName: floatAlgorithm
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp
    functionUses: 1
    functionsReached:
    - floatMantissa
    - FLOAT_TO_INTBITS
    - floatExponent
    - subtractHighPrecision
    - timesTenToTheEHighPrecision
    - memset
    - compareHighPrecision
    - DECREMENT_FLOAT
    - free
    - multiplyHighPrecision
    - memcpy
    - INCREMENT_FLOAT
    - sizeOfTenToTheE
    - simpleShiftLeftHighPrecision
    - allocateU64
    linkageType: ''
    returnType: jfloat
    signature: floatAlgorithm(JNIEnv*, uint64_t* f, int32_t length, jint e, jfloat
      z)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:998,1
    - Dst: createFloat
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:1001,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:1001,1
    - Dst: FLOAT_TO_INTBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:1003,1
    - Dst: FLOAT_TO_INTBITS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:1005,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:1006,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:1008,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - env
    - s
    - e
    argTypes:
    - JNIEnv*
    - jstring
    - jint
    constantsTouched: []
    func_position:
      end: 1011
      start: 996
    functionDepth: 2
    functionLinenumber: 996
    functionLinenumberEnd: 1011
    functionName: FloatingPointParser_parseFltImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp
    functionUses: 0
    functionsReached:
    - FLOAT_TO_INTBITS
    - createFloat
    - jniThrowException
    - ScopedUtfChars::c_str
    linkageType: ''
    returnType: jfloat
    signature: FloatingPointParser_parseFltImpl(JNIEnv* env, jclass, jstring s, jint
      e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:1015,1
    - Dst: createDouble
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:1018,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:1018,1
    - Dst: ERROR_OCCURRED
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:1020,1
    - Dst: LOW_I32_FROM_VAR
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:1022,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:1023,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:1025,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - env
    - s
    - e
    argTypes:
    - JNIEnv*
    - jstring
    - jint
    constantsTouched: []
    func_position:
      end: 1028
      start: 1013
    functionDepth: 3
    functionLinenumber: 1013
    functionLinenumberEnd: 1028
    functionName: FloatingPointParser_parseDblImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp
    functionUses: 0
    functionsReached:
    - LOW_I32_FROM_VAR
    - createDouble
    - jniThrowException
    - ScopedUtfChars::c_str
    - ERROR_OCCURRED
    linkageType: ''
    returnType: jdouble
    signature: FloatingPointParser_parseDblImpl(JNIEnv* env, jclass, jstring s, jint
      e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:1035,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp:1036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 1037
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1037
    functionName: register_org_apache_harmony_luni_util_fltparse
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_org_apache_harmony_luni_util_fltparse(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: NativeUnsafeByteSequence::NativeUnsafeByteSequence
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: NativeUnsafeByteSequence(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReleaseByteArrayElements
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: ~NativeUnsafeByteSequence()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp
    functionUses: 0
    functionsReached:
    - ReleaseByteArrayElements
    linkageType: ''
    returnType: void
    signature: ~NativeUnsafeByteSequence()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NativeUnsafeByteSequence::resize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - jbyte
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: NativeUnsafeByteSequence::append
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp
    functionUses: 0
    functionsReached:
    - NativeUnsafeByteSequence::resize
    linkageType: ''
    returnType: bool
    signature: append(jbyte b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NewByteArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:67,1
    - Dst: GetByteArrayElements
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:71,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:79,1
    - Dst: ReleaseByteArrayElements
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - newSize
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 88
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 88
    functionName: NativeUnsafeByteSequence::resize
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp
    functionUses: 1
    functionsReached:
    - ReleaseByteArrayElements
    - memcpy
    - GetByteArrayElements
    - NewByteArray
    linkageType: ''
    returnType: bool
    signature: resize(int newSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: NativeUnsafeByteSequence::toByteArray
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: jbyteArray
    signature: toByteArray()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:110,1
    - Dst: ScopedCharArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:114,1
    - Dst: static_cast<jchar>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - env
    - javaBytes
    - offset
    - length
    - javaChars
    argTypes:
    - JNIEnv*
    - jbyteArray
    - jint
    - jint
    - jcharArray
    constantsTouched: []
    func_position:
      end: 125
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 125
    functionName: Charsets_asciiBytesToChars
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp
    functionUses: 0
    functionsReached:
    - ScopedCharArrayRW::get
    - static_cast<jchar>
    - ScopedByteArrayRO::get
    linkageType: ''
    returnType: void
    signature: Charsets_asciiBytesToChars(JNIEnv* env, jclass, jbyteArray javaBytes,
      jint offset, jint length, jcharArray javaChars)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:129,1
    - Dst: ScopedCharArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:133,1
    - Dst: static_cast<jchar>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - env
    - javaBytes
    - offset
    - length
    - javaChars
    argTypes:
    - JNIEnv*
    - jbyteArray
    - jint
    - jint
    - jcharArray
    constantsTouched: []
    func_position:
      end: 142
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 142
    functionName: Charsets_isoLatin1BytesToChars
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp
    functionUses: 0
    functionsReached:
    - ScopedCharArrayRW::get
    - static_cast<jchar>
    - ScopedByteArrayRO::get
    linkageType: ''
    returnType: void
    signature: Charsets_isoLatin1BytesToChars(JNIEnv* env, jclass, jbyteArray javaBytes,
      jint offset, jint length, jcharArray javaChars)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedCharArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:151,1
    - Dst: JNIEnv*::NewByteArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:155,1
    - Dst: ScopedByteArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:157,1
    - Dst: static_cast<jbyte>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - env
    - javaChars
    - offset
    - length
    - maxValidChar
    argTypes:
    - JNIEnv*
    - jcharArray
    - jint
    - jint
    - jchar
    constantsTouched: []
    func_position:
      end: 172
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 172
    functionName: charsToBytes
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp
    functionUses: 0
    functionsReached:
    - static_cast<jbyte>
    - ScopedByteArrayRW::get
    - JNIEnv*::NewByteArray
    - ScopedCharArrayRO::get
    linkageType: ''
    returnType: jbyteArray
    signature: charsToBytes(JNIEnv* env, jcharArray javaChars, jint offset, jint length,
      jchar maxValidChar)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: charsToBytes
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - env
    - javaChars
    - offset
    - length
    argTypes:
    - JNIEnv*
    - jcharArray
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: Charsets_toAsciiBytes
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp
    functionUses: 0
    functionsReached:
    - charsToBytes
    linkageType: ''
    returnType: jbyteArray
    signature: Charsets_toAsciiBytes(JNIEnv* env, jclass, jcharArray javaChars, jint
      offset, jint length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: charsToBytes
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - env
    - javaChars
    - offset
    - length
    argTypes:
    - JNIEnv*
    - jcharArray
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: Charsets_toIsoLatin1Bytes
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp
    functionUses: 0
    functionsReached:
    - charsToBytes
    linkageType: ''
    returnType: jbyteArray
    signature: Charsets_toIsoLatin1Bytes(JNIEnv* env, jclass, jcharArray javaChars,
      jint offset, jint length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedCharArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:184,1
    - Dst: NativeUnsafeByteSequence::resize
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:189,1
    - Dst: NativeUnsafeByteSequence::append
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:198,1
    - Dst: NativeUnsafeByteSequence::append
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:203,1
    - Dst: NativeUnsafeByteSequence::append
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:203,1
    - Dst: U16_IS_SURROGATE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:206,1
    - Dst: U16_IS_SURROGATE_LEAD
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:210,1
    - Dst: U16_IS_SURROGATE_TRAIL
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:210,1
    - Dst: NativeUnsafeByteSequence::append
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:211,1
    - Dst: U16_GET_SUPPLEMENTARY
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:218,1
    - Dst: NativeUnsafeByteSequence::append
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:224,1
    - Dst: NativeUnsafeByteSequence::append
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:224,1
    - Dst: NativeUnsafeByteSequence::append
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:224,1
    - Dst: NativeUnsafeByteSequence::append
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:224,1
    - Dst: NativeUnsafeByteSequence::append
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:232,1
    - Dst: NativeUnsafeByteSequence::append
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:232,1
    - Dst: NativeUnsafeByteSequence::append
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:232,1
    - Dst: NativeUnsafeByteSequence::toByteArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:237,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 37
    argCount: 4
    argNames:
    - env
    - javaChars
    - offset
    - length
    argTypes:
    - JNIEnv*
    - jcharArray
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 238
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 238
    functionName: Charsets_toUtf8Bytes
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp
    functionUses: 0
    functionsReached:
    - NativeUnsafeByteSequence::append
    - NativeUnsafeByteSequence::resize
    - U16_GET_SUPPLEMENTARY
    - U16_IS_SURROGATE_LEAD
    - U16_IS_SURROGATE_TRAIL
    - U16_IS_SURROGATE
    - NativeUnsafeByteSequence::toByteArray
    - ScopedCharArrayRO::get
    linkageType: ''
    returnType: jbyteArray
    signature: Charsets_toUtf8Bytes(JNIEnv* env, jclass, jcharArray javaChars, jint
      offset, jint length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:248,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 249
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 249
    functionName: register_java_nio_charset_Charsets
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_java_nio_charset_Charsets(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: ScopedInterfaceAddresses::ScopedInterfaceAddresses
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ScopedInterfaceAddresses()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: ScopedInterfaceAddresses::init
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: freeifaddrs
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: ~ScopedInterfaceAddresses()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp
    functionUses: 0
    functionsReached:
    - freeifaddrs
    linkageType: ''
    returnType: void
    signature: ~ScopedInterfaceAddresses()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:68,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:73,1
    - Dst: reinterpret_cast<sockaddr_storage*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:77,1
    - Dst: socketAddressToInetAddress
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:78,1
    - Dst: reinterpret_cast<sockaddr_storage*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:82,1
    - Dst: socketAddressToInetAddress
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:83,1
    - Dst: JNIEnv*::NewObject
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - env
    - interfaceIndex
    - ifa
    argTypes:
    - JNIEnv*
    - jint
    - ifaddrs*
    constantsTouched: []
    func_position:
      end: 89
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 89
    functionName: makeInterfaceAddress
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetMethodID
    - JNIEnv*::NewObject
    - socketAddressToInetAddress
    - reinterpret_cast<sockaddr_storage*>
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jobject
    signature: makeInterfaceAddress(JNIEnv* env, jint interfaceIndex, ifaddrs* ifa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedInterfaceAddresses::ScopedInterfaceAddresses
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:93,1
    - Dst: ScopedInterfaceAddresses::init
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:94,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:95,1
    - Dst: JNIEnv*::NewObjectArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:107,1
    - Dst: makeInterfaceAddress
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:132,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:136,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:137,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 143
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 143
    functionName: NetworkInterface_getAllInterfaceAddressesImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::SetObjectArrayElement
    - ScopedInterfaceAddresses::init
    - jniThrowSocketException
    - JNIEnv*::NewObjectArray
    - ScopedInterfaceAddresses::ScopedInterfaceAddresses
    - JNIEnv*::ExceptionCheck
    - makeInterfaceAddress
    linkageType: ''
    returnType: jobjectArray
    signature: NetworkInterface_getAllInterfaceAddressesImpl(JNIEnv* env, jclass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::GetStringLength
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:147,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:150,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:153,1
    - Dst: JNIEnv*::GetStringUTFRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:154,1
    - Dst: socket
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:157,1
    - Dst: ScopedFd::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:158,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:159,1
    - Dst: jniThrowSocketException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - env
    - name
    - request
    - ' ifr'
    argTypes:
    - JNIEnv*
    - jstring
    - int
    - ifreq
    constantsTouched: []
    func_position:
      end: 168
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 168
    functionName: doIoctl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp
    functionUses: 0
    functionsReached:
    - ScopedFd::get
    - JNIEnv*::GetStringUTFRegion
    - memset
    - jniThrowSocketException
    - socket
    - JNIEnv*::GetStringLength
    linkageType: ''
    returnType: bool
    signature: doIoctl(JNIEnv* env, jstring name, int request, ifreq& ifr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doIoctl
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - env
    - name
    - flag
    argTypes:
    - JNIEnv*
    - jstring
    - int
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 3
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: hasFlag
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp
    functionUses: 0
    functionsReached:
    - doIoctl
    linkageType: ''
    returnType: jboolean
    signature: hasFlag(JNIEnv* env, jstring name, int flag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doIoctl
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:178,1
    - Dst: JNIEnv*::NewByteArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:192,1
    - Dst: JNIEnv*::SetByteArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - env
    - name
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 195
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 195
    functionName: NetworkInterface_getHardwareAddressImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp
    functionUses: 0
    functionsReached:
    - doIoctl
    - JNIEnv*::NewByteArray
    - JNIEnv*::SetByteArrayRegion
    linkageType: ''
    returnType: jbyteArray
    signature: NetworkInterface_getHardwareAddressImpl(JNIEnv* env, jclass, jstring
      name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doIoctl
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - name
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: NetworkInterface_getMTUImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp
    functionUses: 0
    functionsReached:
    - doIoctl
    linkageType: ''
    returnType: jint
    signature: NetworkInterface_getMTUImpl(JNIEnv* env, jclass, jstring name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hasFlag
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - name
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 4
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: NetworkInterface_isLoopbackImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp
    functionUses: 0
    functionsReached:
    - hasFlag
    linkageType: ''
    returnType: jboolean
    signature: NetworkInterface_isLoopbackImpl(JNIEnv* env, jclass, jstring name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hasFlag
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - name
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 4
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: NetworkInterface_isPointToPointImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp
    functionUses: 0
    functionsReached:
    - hasFlag
    linkageType: ''
    returnType: jboolean
    signature: NetworkInterface_isPointToPointImpl(JNIEnv* env, jclass, jstring name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hasFlag
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - name
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 4
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: NetworkInterface_isUpImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp
    functionUses: 0
    functionsReached:
    - hasFlag
    linkageType: ''
    returnType: jboolean
    signature: NetworkInterface_isUpImpl(JNIEnv* env, jclass, jstring name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hasFlag
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - name
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 4
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: NetworkInterface_supportsMulticastImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp
    functionUses: 0
    functionsReached:
    - hasFlag
    linkageType: ''
    returnType: jboolean
    signature: NetworkInterface_supportsMulticastImpl(JNIEnv* env, jclass, jstring
      name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:229,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: register_java_net_NetworkInterface
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_java_net_NetworkInterface(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: throw_OutOfMemoryError
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - jniThrowException
    linkageType: ''
    returnType: void
    signature: throw_OutOfMemoryError(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: InternedString
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: InternedString()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: ~InternedString()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~InternedString()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jstring::jstring
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: StringStack::StringStack
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - jstring::jstring
    linkageType: ''
    returnType: void
    signature: StringStack()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: ~StringStack()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~StringStack()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jstring::jstring
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:77,1
    - Dst: throw_OutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:79,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - env
    - s
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 89
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 89
    functionName: StringStack::push
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - throw_OutOfMemoryError
    - memcpy
    - jstring::jstring
    linkageType: ''
    returnType: void
    signature: push(JNIEnv* env, jstring s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: StringStack::pop
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: jstring
    signature: pop()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - jobject
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: ParsingContext
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ParsingContext(jobject object)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: freeBuffer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:115,1
    - Dst: DeleteGlobalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 134
    functionName: ~ParsingContext()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - DeleteGlobalRef
    - freeBuffer
    linkageType: ''
    returnType: void
    signature: ~ParsingContext()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: freeBuffer
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:139,1
    - Dst: NewCharArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:142,1
    - Dst: NewGlobalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - length
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 153
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 153
    functionName: ensureCapacity
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - NewGlobalRef
    - freeBuffer
    - NewCharArray
    linkageType: ''
    returnType: jcharArray
    signature: ensureCapacity(int length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeleteGlobalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 162
    functionName: freeBuffer
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 2
    functionsReached:
    - DeleteGlobalRef
    linkageType: ''
    returnType: void
    signature: freeBuffer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ParsingContext*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: toParsingContext
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<ParsingContext*>
    linkageType: ''
    returnType: ParsingContext
    signature: '* toParsingContext(void* data)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<ParsingContext*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:203,1
    - Dst: XML_GetUserData
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    constantsTouched: []
    func_position:
      end: 204
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 204
    functionName: toParsingContext
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - XML_GetUserData
    - reinterpret_cast<ParsingContext*>
    linkageType: ''
    returnType: ParsingContext
    signature: '* toParsingContext(XML_Parser parser)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 239
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 239
    functionName: hashString
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: hashString(const char* s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InternedString::InternedString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:251,1
    - Dst: UniquePtr::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:252,1
    - Dst: throw_OutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:253,1
    - Dst: throw_OutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:261,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:264,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:272,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:273,1
    - Dst: reinterpret_cast<jstring>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:279,1
    - Dst: JNIEnv*::CallObjectMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:279,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:279,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:280,1
    - Dst: JNIEnv*::NewGlobalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:285,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:285,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:286,1
    - Dst: UniquePtr::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - env
    - bytes
    - hash
    argTypes:
    - JNIEnv*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 291
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 291
    functionName: newInternedString
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - ScopedLocalRef::get
    - InternedString::InternedString
    - throw_OutOfMemoryError
    - UniquePtr::release
    - reinterpret_cast<jstring>
    - UniquePtr::get
    - strcpy
    - JNIEnv*::NewGlobalRef
    - JNIEnv*::CallObjectMethod
    - JNIEnv*::ExceptionCheck
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: InternedString
    signature: '* newInternedString(JNIEnv* env, const char* bytes, int hash)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InternedString::InternedString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 306
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 306
    functionName: newInternedStringBucket
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - InternedString::InternedString
    linkageType: ''
    returnType: InternedString
    signature: '** newInternedStringBucket(InternedString* entry)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InternedString::InternedString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:324,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 332
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 332
    functionName: expandInternedStringBucket
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - InternedString::InternedString
    - memcpy
    linkageType: ''
    returnType: InternedString
    signature: "** expandInternedStringBucket(\n        InternedString** existingBucket,
      InternedString* entry)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - bucket
    - s
    - hash
    argTypes:
    - InternedString**
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 349
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 349
    functionName: findInternedString
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: jstring
    signature: findInternedString(InternedString** bucket, const char* s, int hash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: findInternedString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:369,1
    - Dst: newInternedString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:377,1
    - Dst: expandInternedStringBucket
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:381,1
    - Dst: throw_OutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:383,1
    - Dst: newInternedString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:392,1
    - Dst: newInternedStringBucket
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:396,1
    - Dst: throw_OutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:398,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - env
    - parsingContext
    - s
    argTypes:
    - JNIEnv*
    - ParsingContext*
    - char*
    constantsTouched: []
    func_position:
      end: 406
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 406
    functionName: internString
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - newInternedStringBucket
    - throw_OutOfMemoryError
    - newInternedString
    - findInternedString
    - expandInternedStringBucket
    linkageType: ''
    returnType: jstring
    signature: internString(JNIEnv* env, ParsingContext* parsingContext, const char*
      s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - error
    argTypes:
    - JNIEnv*
    - XML_Error
    constantsTouched: []
    func_position:
      end: 411
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 411
    functionName: jniThrowExpatException
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - jniThrowException
    linkageType: ''
    returnType: void
    signature: jniThrowExpatException(JNIEnv* env, XML_Error error)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParsingContext*::ensureCapacity
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:425,1
    - Dst: ScopedCharArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:430,1
    - Dst: strcpylen8to16
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:435,1
    - Dst: ScopedCharArrayRW::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:435,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - parsingContext
    - characters
    - length
    argTypes:
    - ParsingContext*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 437
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 437
    functionName: fillBuffer
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - strcpylen8to16
    - ParsingContext*::ensureCapacity
    - ScopedCharArrayRW::get
    linkageType: ''
    returnType: size_t
    signature: fillBuffer(ParsingContext* parsingContext, const char* characters,
      int length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toParsingContext
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:449,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:453,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - method
    - data
    - text
    - length
    argTypes:
    - jmethodID
    - void*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 462
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 462
    functionName: bufferAndInvoke
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::CallVoidMethod
    - toParsingContext
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: void
    signature: bufferAndInvoke(jmethodID method, void* data, const char* text, size_t
      length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char**>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:465,1
    - Dst: static_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 466
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 466
    functionName: toAttributes
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uintptr_t>
    - reinterpret_cast<const char**>
    linkageType: ''
    returnType: char
    signature: '** toAttributes(jint attributePointer)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExpatElementName::init
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - env
    - parsingContext
    - attributePointer
    - index
    argTypes:
    - JNIEnv*
    - ParsingContext*
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 477
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 477
    functionName: ExpatElementName::ExpatElementName
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - ExpatElementName::init
    linkageType: ''
    returnType: void
    signature: ExpatElementName(JNIEnv* env, ParsingContext* parsingContext, jint
      attributePointer, jint index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExpatElementName::init
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - env
    - parsingContext
    - s
    argTypes:
    - JNIEnv*
    - ParsingContext*
    - char*
    constantsTouched: []
    func_position:
      end: 481
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 481
    functionName: ExpatElementName::ExpatElementName
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - ExpatElementName::init
    linkageType: ''
    returnType: void
    signature: ExpatElementName(JNIEnv* env, ParsingContext* parsingContext, const
      char* s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 485
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 485
    functionName: ~ExpatElementName()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: ~ExpatElementName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: internString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 3
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: ExpatElementName::uri
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - internString
    linkageType: ''
    returnType: jstring
    signature: uri()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: internString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 502
      start: 500
    functionDepth: 3
    functionLinenumber: 500
    functionLinenumberEnd: 502
    functionName: ExpatElementName::localName
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - internString
    linkageType: ''
    returnType: jstring
    signature: localName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExpatElementName::localName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:509,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:513,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:513,1
    - Dst: snprintf
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:514,1
    - Dst: LocalArray::size
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:514,1
    - Dst: internString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 516
      start: 507
    functionDepth: 4
    functionLinenumber: 507
    functionLinenumberEnd: 516
    functionName: ExpatElementName::qName
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - LocalArray::size
    - internString
    - strlen
    - ExpatElementName::localName
    - snprintf
    linkageType: ''
    returnType: jstring
    signature: qName()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:522,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - uri
    - localName
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 523
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 523
    functionName: ExpatElementName::matches
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: matches(const char* uri, const char* localName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:538,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:543,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:544,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:545,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - qName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 546
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 546
    functionName: ExpatElementName::matchesQName
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - strncmp
    - strcmp
    linkageType: ''
    returnType: bool
    signature: matchesQName(const char* qName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - env
    - parsingContext
    - s
    argTypes:
    - JNIEnv*
    - ParsingContext*
    - char*
    constantsTouched: []
    func_position:
      end: 586
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 586
    functionName: ExpatElementName::init
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 2
    functionsReached:
    - strdup
    linkageType: ''
    returnType: void
    signature: init(JNIEnv* env, ParsingContext* parsingContext, const char* s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toParsingContext
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:603,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:607,1
    - Dst: ExpatElementName::uri
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:620,1
    - Dst: ExpatElementName::localName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:621,1
    - Dst: ExpatElementName::qName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:622,1
    - Dst: ParsingContext*::stringStack::push
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:624,1
    - Dst: ParsingContext*::stringStack::push
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:625,1
    - Dst: ParsingContext*::stringStack::push
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:626,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - data
    - elementName
    - attributes
    argTypes:
    - void*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 632
      start: 602
    functionDepth: 5
    functionLinenumber: 602
    functionLinenumberEnd: 632
    functionName: startElement
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - ParsingContext*::stringStack::push
    - ExpatElementName::uri
    - ExpatElementName::qName
    - toParsingContext
    - JNIEnv*::CallVoidMethod
    - ExpatElementName::localName
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: void
    signature: startElement(void* data, const char* elementName, const char** attributes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toParsingContext
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:643,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:647,1
    - Dst: ParsingContext*::stringStack::pop
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:651,1
    - Dst: ParsingContext*::stringStack::pop
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:652,1
    - Dst: ParsingContext*::stringStack::pop
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:653,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 656
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 656
    functionName: endElement
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - ParsingContext*::stringStack::pop
    - JNIEnv*::CallVoidMethod
    - toParsingContext
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: void
    signature: endElement(void* data, const char* /*elementName*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bufferAndInvoke
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - characters
    - length
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 669
      start: 667
    functionDepth: 2
    functionLinenumber: 667
    functionLinenumberEnd: 669
    functionName: text
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 160
    functionsReached:
    - bufferAndInvoke
    linkageType: ''
    returnType: void
    signature: text(void* data, const char* characters, int length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bufferAndInvoke
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:679,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - comment
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 680
      start: 678
    functionDepth: 2
    functionLinenumber: 678
    functionLinenumberEnd: 680
    functionName: comment
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - bufferAndInvoke
    - strlen
    linkageType: ''
    returnType: void
    signature: comment(void* data, const char* comment)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toParsingContext
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:690,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:694,1
    - Dst: internString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:698,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:699,1
    - Dst: internString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:704,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:705,1
    - Dst: ParsingContext*::stringStack::push
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:708,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:711,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - data
    - prefix
    - uri
    argTypes:
    - void*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 712
      start: 689
    functionDepth: 3
    functionLinenumber: 689
    functionLinenumberEnd: 712
    functionName: startNamespace
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - ParsingContext*::stringStack::push
    - toParsingContext
    - internString
    - JNIEnv*::CallVoidMethod
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: void
    signature: startNamespace(void* data, const char* prefix, const char* uri)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toParsingContext
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:722,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:726,1
    - Dst: ParsingContext*::stringStack::pop
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:728,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 732
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 732
    functionName: endNamespace
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - ParsingContext*::stringStack::pop
    - JNIEnv*::CallVoidMethod
    - toParsingContext
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: void
    signature: endNamespace(void* data, const char* /*prefix*/)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toParsingContext
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:740,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:744,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 748
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 748
    functionName: startCdata
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::CallVoidMethod
    - toParsingContext
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: void
    signature: startCdata(void* data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toParsingContext
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:756,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:760,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 764
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 764
    functionName: endCdata
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::CallVoidMethod
    - toParsingContext
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: void
    signature: endCdata(void* data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toParsingContext
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:772,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:776,1
    - Dst: internString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:778,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:779,1
    - Dst: internString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:781,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:782,1
    - Dst: internString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:784,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:785,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:788,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - data
    - name
    - systemId
    - publicId
    argTypes:
    - void*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 790
      start: 770
    functionDepth: 3
    functionLinenumber: 770
    functionLinenumberEnd: 790
    functionName: startDtd
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - internString
    - JNIEnv*::CallVoidMethod
    - toParsingContext
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: void
    signature: "startDtd(void* data, const char* name,\n        const char* systemId,
      const char* publicId, int /*hasInternalSubset*/)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toParsingContext
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:798,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:802,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 806
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 806
    functionName: endDtd
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::CallVoidMethod
    - toParsingContext
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: void
    signature: endDtd(void* data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toParsingContext
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:816,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:820,1
    - Dst: internString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:822,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:823,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:825,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:826,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:829,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:829,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - data
    - target
    - instructionData
    argTypes:
    - void*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 830
      start: 815
    functionDepth: 3
    functionLinenumber: 815
    functionLinenumberEnd: 830
    functionName: processingInstruction
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - ScopedLocalRef::get
    - toParsingContext
    - internString
    - JNIEnv*::CallVoidMethod
    - JNIEnv*::ExceptionCheck
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: void
    signature: processingInstruction(void* data, const char* target, const char* instructionData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:843,1
    - Dst: XML_ExternalEntityParserCreate
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:848,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:848,1
    - Dst: throw_OutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - env
    - parentParser
    - javaContext
    argTypes:
    - JNIEnv*
    - jint
    - jstring
    constantsTouched: []
    func_position:
      end: 854
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 854
    functionName: ExpatParser_createEntityParser
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - throw_OutOfMemoryError
    - XML_ExternalEntityParserCreate
    - ScopedUtfChars::c_str
    linkageType: ''
    returnType: jint
    signature: ExpatParser_createEntityParser(JNIEnv* env, jobject, jint parentParser,
      jstring javaContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toParsingContext
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:862,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:868,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:872,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:873,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:876,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:877,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:880,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:881,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:886,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:886,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:887,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:887,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:899,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - parser
    - context
    - systemId
    - publicId
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 900
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 900
    functionName: handleExternalEntity
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - ScopedLocalRef::get
    - toParsingContext
    - JNIEnv*::CallVoidMethod
    - JNIEnv*::ExceptionCheck
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: int
    signature: "handleExternalEntity(XML_Parser parser, const char* context,\n        const
      char*, const char* systemId, const char* publicId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toParsingContext
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:906,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:911,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:913,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:914,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:915,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:916,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:917,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:918,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:919,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:920,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:922,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:922,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:922,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:922,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:922,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 5
    argNames:
    - data
    - name
    - systemId
    - publicId
    - notationName
    argTypes:
    - void*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 923
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 923
    functionName: unparsedEntityDecl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - ScopedLocalRef::get
    - toParsingContext
    - JNIEnv*::CallVoidMethod
    - JNIEnv*::ExceptionCheck
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: void
    signature: unparsedEntityDecl(void* data, const char* name, const char* /*base*/,
      const char* systemId, const char* publicId, const char* notationName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toParsingContext
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:929,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:934,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:936,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:937,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:938,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:939,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:940,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:941,1
    - Dst: JNIEnv*::CallVoidMethod
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:943,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:943,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:943,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:943,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - data
    - name
    - systemId
    - publicId
    argTypes:
    - void*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 944
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 944
    functionName: notationDecl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - ScopedLocalRef::get
    - toParsingContext
    - JNIEnv*::CallVoidMethod
    - JNIEnv*::ExceptionCheck
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: void
    signature: notationDecl(void* data, const char* name, const char* /*base*/, const
      char* systemId, const char* publicId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParsingContext::ParsingContext
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:957,1
    - Dst: UniquePtr::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:958,1
    - Dst: throw_OutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:959,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:968,1
    - Dst: XML_ParserCreateNS
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:973,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:973,1
    - Dst: XML_ParserCreate
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:975,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:975,1
    - Dst: XML_SetNamespaceDeclHandler
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:980,1
    - Dst: XML_SetReturnNSTriplet
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:981,1
    - Dst: XML_SetCdataSectionHandler
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:984,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:985,1
    - Dst: XML_SetCommentHandler
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:986,1
    - Dst: XML_SetDoctypeDeclHandler
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:987,1
    - Dst: XML_SetElementHandler
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:988,1
    - Dst: XML_SetExternalEntityRefHandler
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:989,1
    - Dst: XML_SetNotationDeclHandler
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:990,1
    - Dst: XML_SetProcessingInstructionHandler
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:991,1
    - Dst: XML_SetUnparsedEntityDeclHandler
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:992,1
    - Dst: XML_SetUserData
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:993,1
    - Dst: UniquePtr::release
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:993,1
    - Dst: throw_OutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:995,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 4
    argNames:
    - env
    - object
    - javaEncoding
    - processNamespaces
    argTypes:
    - JNIEnv*
    - jobject
    - jstring
    - jboolean
    constantsTouched: []
    func_position:
      end: 1000
      start: 954
    functionDepth: 1
    functionLinenumber: 954
    functionLinenumberEnd: 1000
    functionName: ExpatParser_initialize
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - ScopedUtfChars::c_str
    - XML_SetNamespaceDeclHandler
    - XML_SetReturnNSTriplet
    - XML_ParserCreateNS
    - XML_SetCdataSectionHandler
    - XML_ParserCreate
    - XML_SetDoctypeDeclHandler
    - UniquePtr::release
    - ParsingContext::ParsingContext
    - XML_SetElementHandler
    - throw_OutOfMemoryError
    - UniquePtr::get
    - XML_SetCommentHandler
    - XML_SetProcessingInstructionHandler
    - XML_SetUnparsedEntityDeclHandler
    - XML_SetUserData
    - XML_SetNotationDeclHandler
    - XML_SetCharacterDataHandler
    - XML_SetExternalEntityRefHandler
    linkageType: ''
    returnType: jint
    signature: "ExpatParser_initialize(JNIEnv* env, jobject object, jstring javaEncoding,\n
      \       jboolean processNamespaces)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toParsingContext
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1010,1
    - Dst: XML_Parse
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1013,1
    - Dst: JNIEnv*::ExceptionCheck
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1013,1
    - Dst: jniThrowExpatException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1014,1
    - Dst: XML_GetErrorCode
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1014,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - env
    - object
    - pointer
    - bytes
    - byteOffset
    - byteCount
    - isFinal
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    - char*
    - size_t
    - size_t
    - jboolean
    constantsTouched: []
    func_position:
      end: 1018
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1018
    functionName: append
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 21
    functionsReached:
    - XML_Parse
    - toParsingContext
    - XML_GetErrorCode
    - jniThrowExpatException
    - JNIEnv*::ExceptionCheck
    linkageType: ''
    returnType: void
    signature: "append(JNIEnv* env, jobject object, jint pointer,\n        const char*
      bytes, size_t byteOffset, size_t byteCount, jboolean isFinal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedByteArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1023,1
    - Dst: append
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1028,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - env
    - object
    - pointer
    - xml
    - byteOffset
    - byteCount
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    - jbyteArray
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 1029
      start: 1020
    functionDepth: 2
    functionLinenumber: 1020
    functionLinenumberEnd: 1029
    functionName: ExpatParser_appendBytes
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - append
    - ScopedByteArrayRO::get
    linkageType: ''
    returnType: void
    signature: "ExpatParser_appendBytes(JNIEnv* env, jobject object, jint pointer,\n
      \       jbyteArray xml, jint byteOffset, jint byteCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedCharArrayRO::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1034,1
    - Dst: append
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1041,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - env
    - object
    - pointer
    - xml
    - charOffset
    - charCount
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    - jcharArray
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 1042
      start: 1031
    functionDepth: 2
    functionLinenumber: 1031
    functionLinenumberEnd: 1042
    functionName: ExpatParser_appendChars
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - append
    - ScopedCharArrayRO::get
    linkageType: ''
    returnType: void
    signature: "ExpatParser_appendChars(JNIEnv* env, jobject object, jint pointer,\n
      \       jcharArray xml, jint charOffset, jint charCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - env
    - object
    - pointer
    - javaXml
    - isFinal
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    - jstring
    - jboolean
    constantsTouched: []
    func_position:
      end: 1050
      start: 1044
    functionDepth: 2
    functionLinenumber: 1044
    functionLinenumberEnd: 1050
    functionName: ExpatParser_appendString
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - append
    linkageType: ''
    returnType: void
    signature: "ExpatParser_appendString(JNIEnv* env, jobject object, jint pointer,\n
      \       jstring javaXml, jboolean isFinal)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XML_ParserFree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 1061
      start: 1058
    functionDepth: 0
    functionLinenumber: 1058
    functionLinenumberEnd: 1061
    functionName: ExpatParser_releaseParser
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - XML_ParserFree
    linkageType: ''
    returnType: void
    signature: ExpatParser_releaseParser(JNIEnv*, jobject, jint i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toParsingContext
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1072,1
    - Dst: XML_ParserFree
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - env
    - i
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 1077
      start: 1069
    functionDepth: 1
    functionLinenumber: 1069
    functionLinenumberEnd: 1077
    functionName: ExpatParser_release
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - toParsingContext
    - XML_ParserFree
    linkageType: ''
    returnType: void
    signature: ExpatParser_release(JNIEnv* env, jobject, jint i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XML_GetCurrentLineNumber
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pointer
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 1089
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1089
    functionName: ExpatParser_line
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - XML_GetCurrentLineNumber
    linkageType: ''
    returnType: int
    signature: ExpatParser_line(JNIEnv*, jobject, jint pointer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XML_GetCurrentColumnNumber
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pointer
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 1101
      start: 1098
    functionDepth: 0
    functionLinenumber: 1098
    functionLinenumberEnd: 1101
    functionName: ExpatParser_column
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - XML_GetCurrentColumnNumber
    linkageType: ''
    returnType: int
    signature: ExpatParser_column(JNIEnv*, jobject, jint pointer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toParsingContext
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1115,1
    - Dst: ExpatElementName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - env
    - pointer
    - attributePointer
    - index
    argTypes:
    - JNIEnv*
    - jint
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 1117
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1117
    functionName: ExpatAttributes_getURI
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - toParsingContext
    - ExpatElementName
    linkageType: ''
    returnType: jstring
    signature: "ExpatAttributes_getURI(JNIEnv* env, jobject, jint pointer,\n        jint
      attributePointer, jint index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toParsingContext
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1131,1
    - Dst: ExpatElementName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - env
    - pointer
    - attributePointer
    - index
    argTypes:
    - JNIEnv*
    - jint
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 1133
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1133
    functionName: ExpatAttributes_getLocalName
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - toParsingContext
    - ExpatElementName
    linkageType: ''
    returnType: jstring
    signature: "ExpatAttributes_getLocalName(JNIEnv* env, jobject, jint pointer,\n
      \       jint attributePointer, jint index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toParsingContext
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1147,1
    - Dst: ExpatElementName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - env
    - pointer
    - attributePointer
    - index
    argTypes:
    - JNIEnv*
    - jint
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 1149
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1149
    functionName: ExpatAttributes_getQName
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - toParsingContext
    - ExpatElementName
    linkageType: ''
    returnType: jstring
    signature: "ExpatAttributes_getQName(JNIEnv* env, jobject, jint pointer,\n        jint
      attributePointer, jint index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - env
    - attributePointer
    - index
    argTypes:
    - JNIEnv*
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 1164
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1164
    functionName: ExpatAttributes_getValueByIndex
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: "ExpatAttributes_getValueByIndex(JNIEnv* env, jobject,\n        jint
      attributePointer, jint index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1177,1
    - Dst: ExpatElementName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1184,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - env
    - attributePointer
    - qName
    argTypes:
    - JNIEnv*
    - jint
    - jstring
    constantsTouched: []
    func_position:
      end: 1191
      start: 1174
    functionDepth: 1
    functionLinenumber: 1174
    functionLinenumberEnd: 1191
    functionName: ExpatAttributes_getIndexForQName
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - ScopedUtfChars::c_str
    - ExpatElementName
    linkageType: ''
    returnType: jint
    signature: "ExpatAttributes_getIndexForQName(JNIEnv* env, jobject,\n        jint
      attributePointer, jstring qName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1205,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1210,1
    - Dst: ExpatElementName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1216,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1216,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - env
    - attributePointer
    - uri
    - localName
    argTypes:
    - JNIEnv*
    - jint
    - jstring
    - jstring
    constantsTouched: []
    func_position:
      end: 1222
      start: 1202
    functionDepth: 1
    functionLinenumber: 1202
    functionLinenumberEnd: 1222
    functionName: ExpatAttributes_getIndex
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - ScopedUtfChars::c_str
    - ExpatElementName
    linkageType: ''
    returnType: jint
    signature: "ExpatAttributes_getIndex(JNIEnv* env, jobject, jint attributePointer,\n
      \       jstring uri, jstring localName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExpatAttributes_getIndexForQName
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1235,1
    - Dst: ExpatAttributes_getValueByIndex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - env
    - clazz
    - attributePointer
    - qName
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    - jstring
    constantsTouched: []
    func_position:
      end: 1238
      start: 1233
    functionDepth: 2
    functionLinenumber: 1233
    functionLinenumberEnd: 1238
    functionName: ExpatAttributes_getValueForQName
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - ExpatAttributes_getValueByIndex
    - ExpatAttributes_getIndexForQName
    linkageType: ''
    returnType: jstring
    signature: "ExpatAttributes_getValueForQName(JNIEnv* env, jobject clazz,\n        jint
      attributePointer, jstring qName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExpatAttributes_getIndex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1251,1
    - Dst: ExpatAttributes_getValueByIndex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - env
    - clazz
    - attributePointer
    - uri
    - localName
    argTypes:
    - JNIEnv*
    - jobject
    - jint
    - jstring
    - jstring
    constantsTouched: []
    func_position:
      end: 1254
      start: 1249
    functionDepth: 2
    functionLinenumber: 1249
    functionLinenumberEnd: 1254
    functionName: ExpatAttributes_getValue
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - ExpatAttributes_getValueByIndex
    - ExpatAttributes_getIndex
    linkageType: ''
    returnType: jstring
    signature: "ExpatAttributes_getValue(JNIEnv* env, jobject clazz,\n        jint
      attributePointer, jstring uri, jstring localName)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: throw_OutOfMemoryError
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1279,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1292,1
    - Dst: static_cast<jint>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1297,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - env
    - address
    - count
    argTypes:
    - JNIEnv*
    - jint
    - jint
    constantsTouched: []
    func_position:
      end: 1298
      start: 1263
    functionDepth: 1
    functionLinenumber: 1263
    functionLinenumberEnd: 1298
    functionName: ExpatParser_cloneAttributes
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - throw_OutOfMemoryError
    - memcpy
    - static_cast<jint>
    - reinterpret_cast<uintptr_t>
    linkageType: ''
    returnType: jint
    signature: ExpatParser_cloneAttributes(JNIEnv* env, jobject, jint address, jint
      count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1304,1
    - Dst: static_cast<uintptr_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pointer
    argTypes:
    - jint
    constantsTouched: []
    func_position:
      end: 1305
      start: 1303
    functionDepth: 0
    functionLinenumber: 1303
    functionLinenumberEnd: 1305
    functionName: ExpatAttributes_freeAttributes
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uintptr_t>
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: void
    signature: ExpatAttributes_freeAttributes(JNIEnv*, jobject, jint pointer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<jclass>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1313,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1314,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1318,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1322,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1325,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1328,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1331,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1334,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1338,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1341,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1345,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1349,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1353,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1358,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1362,1
    - Dst: JNIEnv*::GetMethodID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1366,1
    - Dst: JNIEnv*::NewGlobalRef
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1370,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 3
    argNames:
    - env
    - classObject
    - empty
    argTypes:
    - JNIEnv*
    - jobject
    - jstring
    constantsTouched: []
    func_position:
      end: 1371
      start: 1312
    functionDepth: 0
    functionLinenumber: 1312
    functionLinenumberEnd: 1371
    functionName: ExpatParser_staticInitialize
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetMethodID
    - JNIEnv*::NewGlobalRef
    - reinterpret_cast<jclass>
    linkageType: ''
    returnType: void
    signature: ExpatParser_staticInitialize(JNIEnv* env, jobject classObject, jstring
      empty)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1405,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp:1406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 1407
      start: 1398
    functionDepth: 0
    functionLinenumber: 1398
    functionLinenumberEnd: 1407
    functionName: register_org_apache_harmony_xml_ExpatParser
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_org_apache_harmony_xml_ExpatParser(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: InetAddress_gethostname
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: InetAddress_gethostname(JNIEnv* env, jclass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOGD
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:57,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:60,1
    - Dst: gai_strerror
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ai
    - name
    argTypes:
    - addrinfo*
    - char*
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: logIpString
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp
    functionUses: 0
    functionsReached:
    - LOGE
    - gai_strerror
    - LOGD
    linkageType: ''
    returnType: void
    signature: logIpString(addrinfo* ai, const char* name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: logIpString
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: logIpString(addrinfo*, const char*)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:71,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:76,1
    - Dst: JNIEnv*::NewObjectArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:99,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:102,1
    - Dst: freeaddrinfo
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:103,1
    - Dst: reinterpret_cast<sockaddr_in6*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:118,1
    - Dst: logIpString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:119,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:119,1
    - Dst: reinterpret_cast<sockaddr_in*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:123,1
    - Dst: logIpString
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:124,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:124,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:128,1
    - Dst: JNIEnv*::NewByteArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:133,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:134,1
    - Dst: LOGE
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:136,1
    - Dst: JNIEnv*::SetByteArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:140,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:140,1
    - Dst: reinterpret_cast<jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:141,1
    - Dst: JNIEnv*::SetObjectArrayElement
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:142,1
    - Dst: ScopedLocalRef::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:142,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:147,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:150,1
    - Dst: gai_strerror
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:150,1
    - Dst: freeaddrinfo
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:154,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 2
    argNames:
    - env
    - javaName
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 158
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 158
    functionName: InetAddress_getaddrinfo
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp
    functionUses: 0
    functionsReached:
    - ScopedLocalRef::get
    - logIpString
    - reinterpret_cast<sockaddr_in*>
    - gai_strerror
    - JNIEnv*::SetObjectArrayElement
    - ScopedUtfChars::c_str
    - LOGE
    - reinterpret_cast<jbyte*>
    - jniThrowException
    - JNIEnv*::NewByteArray
    - JNIEnv*::SetByteArrayRegion
    - memset
    - freeaddrinfo
    - JNIEnv*::NewObjectArray
    - reinterpret_cast<sockaddr_in6*>
    linkageType: ''
    returnType: jobjectArray
    signature: InetAddress_getaddrinfo(JNIEnv* env, jclass, jstring javaName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:172,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:178,1
    - Dst: reinterpret_cast<sockaddr_in*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:183,1
    - Dst: reinterpret_cast<jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:186,1
    - Dst: JNIEnv*::GetByteArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:187,1
    - Dst: reinterpret_cast<sockaddr_in6*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:189,1
    - Dst: reinterpret_cast<jbyte*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:192,1
    - Dst: JNIEnv*::GetByteArrayRegion
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:193,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:205,1
    - Dst: gai_strerror
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:205,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - env
    - javaAddress
    argTypes:
    - JNIEnv*
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 210
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 210
    functionName: InetAddress_getnameinfo
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<sockaddr_in*>
    - jniThrowNullPointerException
    - reinterpret_cast<jbyte*>
    - jniThrowException
    - memset
    - reinterpret_cast<sockaddr_in6*>
    - gai_strerror
    - JNIEnv*::GetByteArrayRegion
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: "InetAddress_getnameinfo(JNIEnv* env, jclass,\n                                         jbyteArray
      javaAddress)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:234,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:240,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:240,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:243,1
    - Dst: memmove
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:244,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:250,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:254,1
    - Dst: reinterpret_cast<sockaddr_in6*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:261,1
    - Dst: IN6_IS_ADDR_V4MAPPED
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:262,1
    - Dst: reinterpret_cast<sockaddr_in*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:263,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:266,1
    - Dst: socketAddressToByteArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:267,1
    - Dst: socketAddressToByteArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:269,1
    - Dst: reinterpret_cast<sockaddr_storage*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:269,1
    - Dst: reinterpret_cast<sockaddr_in*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:276,1
    - Dst: inet_aton
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:277,1
    - Dst: socketAddressToByteArray
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:280,1
    - Dst: freeaddrinfo
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:285,1
    - Dst: JNIEnv*::ExceptionClear
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:289,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:290,1
    - Dst: gai_strerror
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:290,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - env
    - javaString
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 294
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 294
    functionName: InetAddress_ipStringToByteArray
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<sockaddr_in*>
    - gai_strerror
    - memmove
    - ScopedUtfChars::c_str
    - jniThrowException
    - JNIEnv*::ExceptionClear
    - strchr
    - memset
    - socketAddressToByteArray
    - memcpy
    - inet_aton
    - reinterpret_cast<sockaddr_in6*>
    - freeaddrinfo
    - strcpy
    - IN6_IS_ADDR_V4MAPPED
    - reinterpret_cast<sockaddr_storage*>
    linkageType: ''
    returnType: jbyteArray
    signature: InetAddress_ipStringToByteArray(JNIEnv* env, jobject, jstring javaString)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniThrowNullPointerException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:298,1
    - Dst: byteArrayToSocketAddress
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:302,1
    - Dst: jniThrowException
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:322,1
    - Dst: gai_strerror
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:322,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:325,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - env
    - byteArray
    argTypes:
    - JNIEnv*
    - jbyteArray
    constantsTouched: []
    func_position:
      end: 326
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 326
    functionName: InetAddress_byteArrayToIpString
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp
    functionUses: 0
    functionsReached:
    - jniThrowNullPointerException
    - jniThrowException
    - byteArrayToSocketAddress
    - gai_strerror
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: InetAddress_byteArrayToIpString(JNIEnv* env, jobject, jbyteArray byteArray)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:336,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 337
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 337
    functionName: register_java_net_InetAddress
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_java_net_InetAddress(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_System.cpp:28,1
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_System.cpp:31,1
    - Dst: getenv
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_System.cpp:31,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_System.cpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - env
    - javaName
    argTypes:
    - JNIEnv*
    - jstring
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: System_getEnvByName
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_System.cpp
    functionUses: 0
    functionsReached:
    - getenv
    - ScopedUtfChars::c_str
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: System_getEnvByName(JNIEnv* env, jclass, jstring javaName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JNIEnv*::NewStringUTF
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_System.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - env
    - index
    argTypes:
    - JNIEnv*
    - jint
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: System_getEnvByIndex
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_System.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::NewStringUTF
    linkageType: ''
    returnType: jstring
    signature: System_getEnvByIndex(JNIEnv* env, jclass, jint index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_System.cpp:45,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_System.cpp:49,1
    - Dst: JNIEnv*::GetStaticFieldID
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_System.cpp:52,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_System.cpp:52,1
    - Dst: ScopedUtfChars::c_str
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_System.cpp:52,1
    - Dst: JNIEnv*::SetStaticObjectField
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_System.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - env
    - clazz
    - javaName
    - javaSignature
    - object
    argTypes:
    - JNIEnv*
    - jclass
    - jstring
    - jstring
    - jobject
    constantsTouched: []
    func_position:
      end: 54
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 54
    functionName: System_setFieldImpl
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_System.cpp
    functionUses: 0
    functionsReached:
    - JNIEnv*::GetStaticFieldID
    - JNIEnv*::SetStaticObjectField
    - ScopedUtfChars::c_str
    linkageType: ''
    returnType: void
    signature: "System_setFieldImpl(JNIEnv* env, jclass clazz,\n        jstring javaName,
      jstring javaSignature, jobject object)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jniRegisterNativeMethods
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_System.cpp:62,1
    - Dst: NELEM
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_System.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - JNIEnv*
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: register_java_lang_System
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_System.cpp
    functionUses: 0
    functionsReached:
    - jniRegisterNativeMethods
    - NELEM
    linkageType: ''
    returnType: int
    signature: register_java_lang_System(JNIEnv* env)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - next
    argTypes:
    - ifaddrs*
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: ifaddrs
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ifaddrs(ifaddrs* next)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: ~ifaddrs()
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~ifaddrs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:79,1
    - Dst: char::char
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:79,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:80,1
    - Dst: socket
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:83,1
    - Dst: ScopedFd::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:84,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:88,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - interfaceIndex
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 96
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 96
    functionName: setNameAndFlagsByIndex
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h
    functionUses: 0
    functionsReached:
    - char::char
    - ScopedFd::get
    - memset
    - strlen
    - socket
    - strcpy
    linkageType: ''
    returnType: bool
    signature: setNameAndFlagsByIndex(int interfaceIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sockaddr_storage::sockaddr_storage
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:104,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:105,1
    - Dst: reinterpret_cast<sockaddr*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:106,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - family
    - data
    - byteCount
    argTypes:
    - int
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: setAddress
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<sockaddr*>
    - sockaddr_storage::sockaddr_storage
    - memcpy
    - memset
    linkageType: ''
    returnType: void
    signature: setAddress(int family, void* data, size_t byteCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sockaddr_storage::sockaddr_storage
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:116,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:117,1
    - Dst: reinterpret_cast<sockaddr*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:118,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - family
    - prefixLength
    argTypes:
    - int
    - size_t
    constantsTouched: []
    func_position:
      end: 125
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 125
    functionName: setNetmask
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<sockaddr*>
    - sockaddr_storage::sockaddr_storage
    - memset
    linkageType: ''
    returnType: void
    signature: setNetmask(int family, size_t prefixLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<sockaddr_in*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:131,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:132,1
    - Dst: reinterpret_cast<sockaddr_in6*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:134,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - family
    - ss
    argTypes:
    - int
    - sockaddr_storage*
    constantsTouched: []
    func_position:
      end: 138
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 138
    functionName: sockaddrBytes
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<sockaddr_in*>
    - reinterpret_cast<uint8_t*>
    - reinterpret_cast<sockaddr_in6*>
    linkageType: ''
    returnType: uint8_t
    signature: '* sockaddrBytes(int family, sockaddr_storage* ss)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ssize_t>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - data
    - byteCount
    argTypes:
    - int
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: sendNetlinkMessage
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h
    functionUses: 0
    functionsReached:
    - static_cast<ssize_t>
    linkageType: ''
    returnType: bool
    signature: sendNetlinkMessage(int fd, const void* data, size_t byteCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEMP_FAILURE_RETRY
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:158,1
    - Dst: recv
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - buf
    - byteCount
    argTypes:
    - int
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: recvNetlinkMessage
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h
    functionUses: 0
    functionsReached:
    - recv
    - TEMP_FAILURE_RETRY
    linkageType: ''
    returnType: ssize_t
    signature: recvNetlinkMessage(int fd, char* buf, size_t byteCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScopedFd::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:168,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:174,1
    - Dst: NLMSG_ALIGN
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:177,1
    - Dst: NLMSG_LENGTH
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:177,1
    - Dst: sendNetlinkMessage
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:180,1
    - Dst: ScopedFd::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:180,1
    - Dst: recvNetlinkMessage
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:187,1
    - Dst: ScopedFd::get
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:187,1
    - Dst: LocalArray::size
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:187,1
    - Dst: reinterpret_cast<nlmsghdr*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:188,1
    - Dst: NLMSG_OK
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:189,1
    - Dst: NLMSG_NEXT
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:189,1
    - Dst: reinterpret_cast<ifaddrmsg*>
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:197,1
    - Dst: NLMSG_DATA
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:197,1
    - Dst: IFA_RTA
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:198,1
    - Dst: RTA_OK
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:200,1
    - Dst: ifaddrs::ifaddrs
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:204,1
    - Dst: setNameAndFlagsByIndex
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:205,1
    - Dst: setAddress
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:208,1
    - Dst: RTA_DATA
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:208,1
    - Dst: RTA_PAYLOAD
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:208,1
    - Dst: setNetmask
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:209,1
    - Dst: RTA_NEXT
      Src: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h:212,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - result
    argTypes:
    - ifaddrs**
    constantsTouched: []
    func_position:
      end: 221
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 221
    functionName: getifaddrs
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h
    functionUses: 2
    functionsReached:
    - setNetmask
    - setAddress
    - NLMSG_LENGTH
    - ScopedFd::get
    - setNameAndFlagsByIndex
    - RTA_DATA
    - RTA_NEXT
    - reinterpret_cast<nlmsghdr*>
    - RTA_PAYLOAD
    - sendNetlinkMessage
    - IFA_RTA
    - memset
    - ifaddrs::ifaddrs
    - reinterpret_cast<ifaddrmsg*>
    - NLMSG_NEXT
    - RTA_OK
    - NLMSG_DATA
    - LocalArray::size
    - NLMSG_OK
    - NLMSG_ALIGN
    - recvNetlinkMessage
    linkageType: ''
    returnType: int
    signature: getifaddrs(ifaddrs** result)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addresses
    argTypes:
    - ifaddrs*
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: freeifaddrs
    functionSourceFile: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: freeifaddrs(ifaddrs* addresses)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rol
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha.c:53,1
    - Dst: rol
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha.c:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA_CTX*
    constantsTouched: []
    func_position:
      end: 86
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 86
    functionName: SHA1_Transform
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha.c
    functionUses: 0
    functionsReached:
    - rol
    linkageType: ''
    returnType: void
    signature: SHA1_Transform(SHA_CTX* ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA_CTX*
    constantsTouched: []
    func_position:
      end: 104
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 104
    functionName: SHA_init
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SHA_init(SHA_CTX* ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Transform
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - data
    - len
    argTypes:
    - SHA_CTX*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 120
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 120
    functionName: SHA_update
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha.c
    functionUses: 1
    functionsReached:
    - SHA1_Transform
    linkageType: ''
    returnType: void
    signature: SHA_update(SHA_CTX* ctx, const void* data, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA_update
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha.c:128,1
    - Dst: SHA_update
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha.c:130,1
    - Dst: SHA_update
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha.c:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA_CTX*
    constantsTouched: []
    func_position:
      end: 146
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 146
    functionName: SHA_final
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha.c
    functionUses: 0
    functionsReached:
    - SHA_update
    linkageType: ''
    returnType: uint8_t
    signature: '* SHA_final(SHA_CTX* ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA_init
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha.c:151,1
    - Dst: SHA_update
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha.c:152,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha.c:153,1
    - Dst: SHA_final
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - data
    - len
    - digest
    argTypes:
    - void*
    - int
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: SHA_hash
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha.c
    functionUses: 0
    functionsReached:
    - SHA_init
    - SHA_final
    - memcpy
    - SHA_update
    linkageType: ''
    returnType: uint8_t
    signature: '* SHA_hash(const void* data, int len, uint8_t* digest)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NON_ZERO_TO_ALL_ONES
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - inout
    - carry
    argTypes:
    - felem
    - limb
    constantsTouched: []
    func_position:
      end: 212
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 212
    functionName: felem_reduce_carry
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - NON_ZERO_TO_ALL_ONES
    linkageType: ''
    returnType: void
    signature: felem_reduce_carry(felem inout, limb carry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_reduce_carry
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - out
    - in
    - in2
    argTypes:
    - felem
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 239
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 239
    functionName: felem_sum
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - felem_reduce_carry
    linkageType: ''
    returnType: void
    signature: felem_sum(felem out, const felem in, const felem in2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_reduce_carry
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - out
    - in
    - in2
    argTypes:
    - felem
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 279
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 279
    functionName: felem_diff
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - felem_reduce_carry
    linkageType: ''
    returnType: void
    signature: felem_diff(felem out, const felem in, const felem in2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NON_ZERO_TO_ALL_ONES
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:356,1
    - Dst: NON_ZERO_TO_ALL_ONES
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:425,1
    - Dst: felem_reduce_carry
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:473,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 83
    argCount: 2
    argNames:
    - out
    - tmp
    argTypes:
    - felem
    - u64[]
    constantsTouched: []
    func_position:
      end: 474
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 474
    functionName: felem_reduce_degree
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - NON_ZERO_TO_ALL_ONES
    - felem_reduce_carry
    linkageType: ''
    returnType: void
    signature: felem_reduce_degree(felem out, u64 tmp[17])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_reduce_degree
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 522
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 522
    functionName: felem_square
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - felem_reduce_degree
    linkageType: ''
    returnType: void
    signature: felem_square(felem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_reduce_degree
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 3
    argNames:
    - out
    - in
    - in2
    argTypes:
    - felem
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 596
      start: 529
    functionDepth: 2
    functionLinenumber: 529
    functionLinenumberEnd: 596
    functionName: felem_mul
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - felem_reduce_degree
    linkageType: ''
    returnType: void
    signature: felem_mul(felem out, const felem in, const felem in2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 600
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 600
    functionName: felem_assign
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: felem_assign(felem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:615,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:616,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:617,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:618,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:619,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:620,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:621,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:622,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:623,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:624,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:625,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:626,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:627,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:629,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:631,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:632,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:634,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:636,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:637,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:639,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:641,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:642,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:644,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:647,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:649,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:651,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:653,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:655,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:657,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:659,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:660,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:661,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:662,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:663,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:664,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:665,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:667,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 52
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 668
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 668
    functionName: felem_inv
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - felem_assign
    - felem_mul
    - felem_square
    linkageType: ''
    returnType: void
    signature: felem_inv(felem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_reduce_carry
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:694,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - out
    argTypes:
    - felem
    constantsTouched: []
    func_position:
      end: 695
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 695
    functionName: felem_scalar_3
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - felem_reduce_carry
    linkageType: ''
    returnType: void
    signature: felem_scalar_3(felem out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_reduce_carry
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:725,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - out
    argTypes:
    - felem
    constantsTouched: []
    func_position:
      end: 726
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 726
    functionName: felem_scalar_4
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - felem_reduce_carry
    linkageType: ''
    returnType: void
    signature: felem_scalar_4(felem out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_reduce_carry
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:756,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - out
    argTypes:
    - felem
    constantsTouched: []
    func_position:
      end: 757
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 757
    functionName: felem_scalar_8
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - felem_reduce_carry
    linkageType: ''
    returnType: void
    signature: felem_scalar_8(felem out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:766,1
    - Dst: felem_reduce_carry
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:785,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:789,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:790,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:791,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - in
    argTypes:
    - felem
    constantsTouched: []
    func_position:
      end: 792
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 792
    functionName: felem_is_zero_vartime
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - memcmp
    - felem_reduce_carry
    - felem_assign
    linkageType: ''
    returnType: char
    signature: felem_is_zero_vartime(const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:808,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:809,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:810,1
    - Dst: felem_sum
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:812,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:813,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:814,1
    - Dst: felem_scalar_3
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:815,1
    - Dst: felem_sum
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:817,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:818,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:819,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:820,1
    - Dst: felem_scalar_4
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:822,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:823,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:824,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:825,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:827,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:828,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:829,1
    - Dst: felem_scalar_8
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:830,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 6
    argNames:
    - x_out
    - y_out
    - z_out
    - x
    - y
    - z
    argTypes:
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 832
      start: 804
    functionDepth: 2
    functionLinenumber: 804
    functionLinenumberEnd: 832
    functionName: point_double
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - felem_diff
    - felem_scalar_3
    - felem_scalar_4
    - felem_mul
    - felem_sum
    - felem_scalar_8
    - felem_square
    linkageType: ''
    returnType: void
    signature: "point_double(felem x_out, felem y_out, felem z_out, const felem x,\n
      \                        const felem y, const felem z)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:846,1
    - Dst: felem_sum
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:847,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:849,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:850,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:851,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:852,1
    - Dst: felem_sum
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:853,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:854,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:855,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:856,1
    - Dst: felem_sum
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:857,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:858,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:860,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:861,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:862,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:863,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:864,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:866,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:867,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:868,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:869,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 8
    argNames:
    - x_out
    - y_out
    - z_out
    - x1
    - y1
    - z1
    - x2
    - y2
    argTypes:
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 871
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 871
    functionName: point_add_mixed
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - felem_diff
    - felem_sum
    - felem_mul
    - felem_square
    linkageType: ''
    returnType: void
    signature: "point_add_mixed(felem x_out, felem y_out, felem z_out,\n                            const
      felem x1, const felem y1, const felem z1,\n                            const
      felem x2, const felem y2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:884,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:885,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:886,1
    - Dst: felem_sum
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:888,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:889,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:890,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:891,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:893,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:894,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:896,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:897,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:898,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:899,1
    - Dst: felem_sum
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:900,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:901,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:902,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:903,1
    - Dst: felem_sum
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:904,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:905,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:907,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:908,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:909,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:910,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:911,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:913,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:914,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:915,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:916,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 9
    argNames:
    - x_out
    - y_out
    - z_out
    - x1
    - y1
    - z1
    - x2
    - y2
    - z2
    argTypes:
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 918
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 918
    functionName: point_add
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 7
    functionsReached:
    - felem_diff
    - felem_sum
    - felem_mul
    - felem_square
    linkageType: ''
    returnType: void
    signature: "point_add(felem x_out, felem y_out, felem z_out, const felem x1,\n
      \                     const felem y1, const felem z1, const felem x2,\n                      const
      felem y2, const felem z2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:932,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:933,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:934,1
    - Dst: felem_sum
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:936,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:937,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:938,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:939,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:941,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:942,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:944,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:945,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:946,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:947,1
    - Dst: felem_is_zero_vartime
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:948,1
    - Dst: felem_sum
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:949,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:950,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:951,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:952,1
    - Dst: felem_is_zero_vartime
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:953,1
    - Dst: point_double
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:955,1
    - Dst: felem_sum
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:958,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:959,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:961,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:962,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:963,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:964,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:965,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:967,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:968,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:969,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:970,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:971,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 9
    argNames:
    - x_out
    - y_out
    - z_out
    - x1
    - y1
    - z1
    - x2
    - y2
    - z2
    argTypes:
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 972
      start: 926
    functionDepth: 2
    functionLinenumber: 926
    functionLinenumberEnd: 972
    functionName: point_add_or_double_vartime
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - felem_diff
    - felem_mul
    - felem_sum
    - felem_is_zero_vartime
    - felem_square
    - point_double
    linkageType: ''
    returnType: void
    signature: "point_add_or_double_vartime(\n    felem x_out, felem y_out, felem
      z_out, const felem x1, const felem y1,\n    const felem z1, const felem x2,
      const felem y2, const felem z2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in
    - mask
    argTypes:
    - felem
    - felem
    - limb
    constantsTouched: []
    func_position:
      end: 984
      start: 977
    functionDepth: 0
    functionLinenumber: 977
    functionLinenumberEnd: 984
    functionName: copy_conditional
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: copy_conditional(felem out, const felem in, limb mask)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:992,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:993,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - out_x
    - out_y
    - table
    - index
    argTypes:
    - felem
    - felem
    - limb*
    - limb
    constantsTouched: []
    func_position:
      end: 1008
      start: 988
    functionDepth: 0
    functionLinenumber: 988
    functionLinenumberEnd: 1008
    functionName: select_affine_point
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "select_affine_point(felem out_x, felem out_y, const limb* table,\n
      \                               limb index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1016,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1017,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1018,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - out_x
    - out_y
    - out_z
    - table
    - index
    argTypes:
    - felem
    - felem
    - felem
    - limb*
    - limb
    constantsTouched: []
    func_position:
      end: 1041
      start: 1012
    functionDepth: 0
    functionLinenumber: 1012
    functionLinenumberEnd: 1041
    functionName: select_jacobian_point
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "select_jacobian_point(felem out_x, felem out_y, felem out_z,\n                                  const
      limb* table, limb index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1055,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1056,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1057,1
    - Dst: point_double
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1063,1
    - Dst: select_affine_point
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1073,1
    - Dst: point_add_mixed
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1079,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1083,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1084,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1085,1
    - Dst: NON_ZERO_TO_ALL_ONES
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1090,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1092,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1093,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1094,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 4
    argNames:
    - nx
    - ny
    - nz
    - scalar
    argTypes:
    - felem
    - felem
    - felem
    - p256_int*
    constantsTouched: []
    func_position:
      end: 1099
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1099
    functionName: scalar_base_mult
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - select_affine_point
    - point_add_mixed
    - memset
    - copy_conditional
    - NON_ZERO_TO_ALL_ONES
    - point_double
    linkageType: ''
    returnType: void
    signature: "scalar_base_mult(felem nx, felem ny, felem nz,\n                             const
      p256_int* scalar)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_inv
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1106,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1107,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1108,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1109,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - x_out
    - y_out
    - nx
    - ny
    - nz
    argTypes:
    - felem
    - felem
    - felem
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 1111
      start: 1103
    functionDepth: 0
    functionLinenumber: 1103
    functionLinenumberEnd: 1111
    functionName: point_to_affine
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - felem_square
    - felem_mul
    - felem_inv
    linkageType: ''
    returnType: void
    signature: "point_to_affine(felem x_out, felem y_out, const felem nx,\n                            const
      felem ny, const felem nz)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1122,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1123,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1124,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1125,1
    - Dst: point_double
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1128,1
    - Dst: point_add_mixed
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1131,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1135,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1136,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1137,1
    - Dst: point_double
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1143,1
    - Dst: point_double
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1144,1
    - Dst: point_double
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1145,1
    - Dst: point_double
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1146,1
    - Dst: p256_get_bit
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1149,1
    - Dst: p256_get_bit
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1150,1
    - Dst: p256_get_bit
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1151,1
    - Dst: p256_get_bit
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1152,1
    - Dst: select_jacobian_point
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1155,1
    - Dst: point_add
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1156,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1157,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1158,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1159,1
    - Dst: NON_ZERO_TO_ALL_ONES
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1161,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1164,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1165,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 6
    argNames:
    - nx
    - ny
    - nz
    - x
    - y
    - scalar
    argTypes:
    - felem
    - felem
    - felem
    - felem
    - felem
    - p256_int*
    constantsTouched: []
    func_position:
      end: 1169
      start: 1114
    functionDepth: 1
    functionLinenumber: 1114
    functionLinenumberEnd: 1169
    functionName: scalar_mult
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - select_jacobian_point
    - point_add_mixed
    - memset
    - copy_conditional
    - NON_ZERO_TO_ALL_ONES
    - memcpy
    - point_double
    - point_add
    - p256_get_bit
    linkageType: ''
    returnType: void
    signature: "scalar_mult(felem nx, felem ny, felem nz, const felem x,\n                        const
      felem y, const p256_int* scalar)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: p256_init
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1183,1
    - Dst: p256_modmul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1184,1
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1188,1
    - Dst: p256_shr
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1189,1
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1191,1
    - Dst: p256_shr
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1192,1
    - Dst: p256_clear
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - p256_int*
    constantsTouched: []
    func_position:
      end: 1197
      start: 1179
    functionDepth: 1
    functionLinenumber: 1179
    functionLinenumberEnd: 1197
    functionName: to_montgomery
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - p256_modmul
    - P256_DIGIT
    - p256_init
    - p256_shr
    - p256_clear
    linkageType: ''
    returnType: void
    signature: to_montgomery(felem out, const p256_int* in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: p256_init
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1204,1
    - Dst: p256_init
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1205,1
    - Dst: p256_add_d
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1207,1
    - Dst: p256_shl
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1210,1
    - Dst: p256_shl
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1212,1
    - Dst: p256_add_d
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1214,1
    - Dst: p256_modmul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1217,1
    - Dst: p256_clear
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1219,1
    - Dst: p256_clear
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - p256_int*
    - felem
    constantsTouched: []
    func_position:
      end: 1221
      start: 1200
    functionDepth: 1
    functionLinenumber: 1200
    functionLinenumberEnd: 1221
    functionName: from_montgomery
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - p256_modmul
    - p256_init
    - p256_shl
    - p256_add_d
    - p256_clear
    linkageType: ''
    returnType: void
    signature: from_montgomery(p256_int* out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scalar_base_mult
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1228,1
    - Dst: point_to_affine
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1233,1
    - Dst: from_montgomery
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1234,1
    - Dst: from_montgomery
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - n
    - out_x
    - out_y
    argTypes:
    - p256_int*
    - p256_int*
    - p256_int*
    constantsTouched: []
    func_position:
      end: 1237
      start: 1225
    functionDepth: 2
    functionLinenumber: 1225
    functionLinenumberEnd: 1237
    functionName: p256_base_point_mul
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - point_to_affine
    - from_montgomery
    - scalar_base_mult
    linkageType: ''
    returnType: void
    signature: p256_base_point_mul(const p256_int* n, p256_int* out_x, p256_int* out_y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: p256_is_zero
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1251,1
    - Dst: p256_is_zero
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1251,1
    - Dst: p256_clear
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1252,1
    - Dst: p256_clear
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1253,1
    - Dst: to_montgomery
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1257,1
    - Dst: to_montgomery
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1258,1
    - Dst: scalar_base_mult
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1259,1
    - Dst: scalar_mult
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1260,1
    - Dst: p256_is_zero
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1262,1
    - Dst: p256_is_zero
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1265,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1268,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1269,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1270,1
    - Dst: point_add_or_double_vartime
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1273,1
    - Dst: point_to_affine
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1276,1
    - Dst: from_montgomery
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1277,1
    - Dst: from_montgomery
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c:1278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 6
    argNames:
    - n1
    - n2
    - in_x
    - in_y
    - out_x
    - out_y
    argTypes:
    - p256_int*
    - p256_int*
    - p256_int*
    - p256_int*
    - p256_int*
    - p256_int*
    constantsTouched: []
    func_position:
      end: 1279
      start: 1245
    functionDepth: 3
    functionLinenumber: 1245
    functionLinenumberEnd: 1279
    functionName: p256_points_mul_vartime
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
    functionUses: 0
    functionsReached:
    - p256_is_zero
    - scalar_mult
    - p256_clear
    - to_montgomery
    - from_montgomery
    - memcpy
    - point_to_affine
    - point_add_or_double_vartime
    - scalar_base_mult
    linkageType: ''
    returnType: void
    signature: "p256_points_mul_vartime(\n    const p256_int* n1, const p256_int*
      n2, const p256_int* in_x,\n    const p256_int* in_y, p256_int* out_x, p256_int*
      out_y)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key
    - a
    argTypes:
    - RSAPublicKey*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: subM
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/rsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "subM(const RSAPublicKey* key,\n                 uint32_t* a)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - key
    - a
    argTypes:
    - RSAPublicKey*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: geM
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/rsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "geM(const RSAPublicKey* key,\n               const uint32_t* a)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: subM
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/rsa.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - key
    - c
    - a
    - b
    argTypes:
    - RSAPublicKey*
    - uint32_t*
    - uint32_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 79
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 79
    functionName: montMulAdd
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/rsa.c
    functionUses: 0
    functionsReached:
    - subM
    linkageType: ''
    returnType: void
    signature: "montMulAdd(const RSAPublicKey* key,\n                       uint32_t*
      c,\n                       const uint32_t a,\n                       const uint32_t*
      b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: montMulAdd
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/rsa.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - key
    - c
    - a
    - b
    argTypes:
    - RSAPublicKey*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 93
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 93
    functionName: montMul
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/rsa.c
    functionUses: 0
    functionsReached:
    - montMulAdd
    linkageType: ''
    returnType: void
    signature: "montMul(const RSAPublicKey* key,\n                    uint32_t* c,\n
      \                   const uint32_t* a,\n                    const uint32_t*
      b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: montMul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/rsa.c:117,1
    - Dst: montMul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/rsa.c:119,1
    - Dst: montMul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/rsa.c:120,1
    - Dst: montMul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/rsa.c:122,1
    - Dst: montMul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/rsa.c:125,1
    - Dst: montMul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/rsa.c:126,1
    - Dst: montMul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/rsa.c:127,1
    - Dst: geM
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/rsa.c:131,1
    - Dst: subM
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/rsa.c:132,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - key
    - inout
    argTypes:
    - RSAPublicKey*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 143
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 143
    functionName: modpow
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/rsa.c
    functionUses: 0
    functionsReached:
    - geM
    - subM
    - montMul
    linkageType: ''
    returnType: void
    signature: "modpow(const RSAPublicKey* key,\n                   uint8_t* inout)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: modpow
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/rsa.c:279,1
    - Dst: SHA_hash
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/rsa.c:290,1
    - Dst: SHA256_hash
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/rsa.c:294,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 5
    argNames:
    - key
    - signature
    - len
    - hash
    - hash_len
    argTypes:
    - RSAPublicKey*
    - uint8_t*
    - int
    - uint8_t*
    - int
    constantsTouched: []
    func_position:
      end: 308
      start: 249
    functionDepth: 4
    functionLinenumber: 249
    functionLinenumberEnd: 308
    functionName: RSA_verify
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/rsa.c
    functionUses: 1
    functionsReached:
    - modpow
    - SHA256_hash
    - SHA_hash
    linkageType: ''
    returnType: int
    signature: "RSA_verify(const RSAPublicKey *key,\n               const uint8_t
      *signature,\n               const int len,\n               const uint8_t *hash,\n
      \              const int hash_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/dsa_sig.c:46,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/dsa_sig.c:47,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - dst
    - src
    - src_len
    argTypes:
    - unsigned char[]
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 49
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 49
    functionName: trim_to_p256_bytes
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/dsa_sig.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: int
    signature: "trim_to_p256_bytes(unsigned char dst[P256_NBYTES], unsigned char *src,\n
      \       int src_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/dsa_sig.c:69,1
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/dsa_sig.c:70,1
    - Dst: trim_to_p256_bytes
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/dsa_sig.c:117,1
    - Dst: trim_to_p256_bytes
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/dsa_sig.c:118,1
    - Dst: p256_from_bin
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/dsa_sig.c:122,1
    - Dst: p256_from_bin
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/dsa_sig.c:123,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 4
    argNames:
    - sig
    - sig_len
    - r_int
    - s_int
    argTypes:
    - unsigned char*
    - int
    - p256_int*
    - p256_int*
    constantsTouched: []
    func_position:
      end: 126
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 126
    functionName: dsa_sig_unpack
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/dsa_sig.c
    functionUses: 0
    functionsReached:
    - trim_to_p256_bytes
    - memset
    - p256_from_bin
    linkageType: ''
    returnType: int
    signature: dsa_sig_unpack(unsigned char* sig, int sig_len, p256_int* r_int, p256_int*
      s_int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - p256_int*
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: p256_init
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: p256_init(p256_int* a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: p256_init
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - p256_int*
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: p256_clear
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c
    functionUses: 3
    functionsReached:
    - p256_init
    linkageType: ''
    returnType: void
    signature: p256_clear(p256_int* a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - scalar
    - bit
    argTypes:
    - p256_int*
    - int
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: p256_get_bit
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c
    functionUses: 1
    functionsReached:
    - P256_DIGIT
    linkageType: ''
    returnType: int
    signature: p256_get_bit(const p256_int* scalar, int bit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - p256_int*
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: p256_is_zero
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c
    functionUses: 1
    functionsReached:
    - P256_DIGIT
    linkageType: ''
    returnType: int
    signature: p256_is_zero(const p256_int* a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - a
    - b
    - top
    - c
    argTypes:
    - p256_int*
    - p256_digit
    - p256_digit
    - p256_digit*
    constantsTouched: []
    func_position:
      end: 85
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 85
    functionName: mulAdd
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c
    functionUses: 0
    functionsReached:
    - P256_DIGIT
    linkageType: ''
    returnType: p256_digit
    signature: "mulAdd(const p256_int* a,\n                         p256_digit b,\n
      \                        p256_digit top,\n                         p256_digit*
      c)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - top_a
    - a
    - top_c
    - c
    argTypes:
    - p256_digit
    - p256_digit*
    - p256_digit
    - p256_digit*
    constantsTouched: []
    func_position:
      end: 106
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 106
    functionName: subTop
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: p256_digit
    signature: "subTop(p256_digit top_a,\n                         const p256_digit*
      a,\n                         p256_digit top_c,\n                         p256_digit*
      c)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - MOD
    - top
    - c
    - mask
    argTypes:
    - p256_int*
    - p256_digit
    - p256_digit*
    - p256_digit
    constantsTouched: []
    func_position:
      end: 123
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 123
    functionName: subM
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c
    functionUses: 2
    functionsReached:
    - P256_DIGIT
    linkageType: ''
    returnType: p256_digit
    signature: "subM(const p256_int* MOD,\n                       p256_digit top,\n
      \                      p256_digit* c,\n                       p256_digit mask)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - MOD
    - top
    - c
    - mask
    argTypes:
    - p256_int*
    - p256_digit
    - p256_digit*
    - p256_digit
    constantsTouched: []
    func_position:
      end: 140
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 140
    functionName: addM
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c
    functionUses: 0
    functionsReached:
    - P256_DIGIT
    linkageType: ''
    returnType: p256_digit
    signature: "addM(const p256_int* MOD,\n                       p256_digit top,\n
      \                      p256_digit* c,\n                       p256_digit mask)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mulAdd
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:155,1
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:155,1
    - Dst: mulAdd
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:160,1
    - Dst: mulAdd
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:169,1
    - Dst: subTop
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:172,1
    - Dst: assert
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:175,1
    - Dst: subM
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:177,1
    - Dst: assert
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:179,1
    - Dst: addM
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:187,1
    - Dst: subM
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:187,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - MOD
    - a
    - top_b
    - b
    - c
    argTypes:
    - p256_int*
    - p256_int*
    - p256_digit
    - p256_int*
    - p256_int*
    constantsTouched: []
    func_position:
      end: 190
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 190
    functionName: p256_modmul
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c
    functionUses: 2
    functionsReached:
    - P256_DIGIT
    - mulAdd
    - subTop
    - subM
    - memcpy
    - addM
    - assert
    linkageType: ''
    returnType: void
    signature: "p256_modmul(const p256_int* MOD,\n                 const p256_int*
      a,\n                 const p256_digit top_b,\n                 const p256_int*
      b,\n                 p256_int* c)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - p256_int*
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: p256_is_odd
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c
    functionUses: 0
    functionsReached:
    - P256_DIGIT
    linkageType: ''
    returnType: int
    signature: p256_is_odd(const p256_int* a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - p256_int*
    constantsTouched: []
    func_position:
      end: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    functionName: p256_is_even
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c
    functionUses: 0
    functionsReached:
    - P256_DIGIT
    linkageType: ''
    returnType: int
    signature: p256_is_even(const p256_int* a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:196,1
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:200,1
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:201,1
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:202,1
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:204,1
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - a
    - n
    - b
    argTypes:
    - p256_int*
    - int
    - p256_int*
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: p256_shl
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c
    functionUses: 1
    functionsReached:
    - P256_DIGIT
    linkageType: ''
    returnType: p256_digit
    signature: p256_shl(const p256_int* a, int n, p256_int* b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:216,1
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:217,1
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:218,1
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:220,1
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - a
    - n
    - b
    argTypes:
    - p256_int*
    - int
    - p256_int*
    constantsTouched: []
    func_position:
      end: 221
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 221
    functionName: p256_shr
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c
    functionUses: 1
    functionsReached:
    - P256_DIGIT
    linkageType: ''
    returnType: void
    signature: p256_shr(const p256_int* a, int n, p256_int* b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:227,1
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:228,1
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:229,1
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:231,1
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - a
    - highbit
    - b
    argTypes:
    - p256_int*
    - int
    - p256_int*
    constantsTouched: []
    func_position:
      end: 233
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 233
    functionName: p256_shr1
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c
    functionUses: 0
    functionsReached:
    - P256_DIGIT
    linkageType: ''
    returnType: void
    signature: p256_shr1(const p256_int* a, int highbit, p256_int* b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:242,1
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - p256_int*
    - p256_int*
    constantsTouched: []
    func_position:
      end: 249
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 249
    functionName: p256_cmp
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c
    functionUses: 0
    functionsReached:
    - P256_DIGIT
    linkageType: ''
    returnType: int
    signature: p256_cmp(const p256_int* a, const p256_int* b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:257,1
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:257,1
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - p256_int*
    - p256_int*
    - p256_int*
    constantsTouched: []
    func_position:
      end: 262
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 262
    functionName: p256_sub
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c
    functionUses: 0
    functionsReached:
    - P256_DIGIT
    linkageType: ''
    returnType: int
    signature: p256_sub(const p256_int* a, const p256_int* b, p256_int* c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:270,1
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:270,1
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - p256_int*
    - p256_int*
    - p256_int*
    constantsTouched: []
    func_position:
      end: 275
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 275
    functionName: p256_add
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c
    functionUses: 0
    functionsReached:
    - P256_DIGIT
    linkageType: ''
    returnType: int
    signature: p256_add(const p256_int* a, const p256_int* b, p256_int* c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:283,1
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - a
    - d
    - b
    argTypes:
    - p256_int*
    - p256_digit
    - p256_int*
    constantsTouched: []
    func_position:
      end: 288
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 288
    functionName: p256_add_d
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c
    functionUses: 1
    functionsReached:
    - P256_DIGIT
    linkageType: ''
    returnType: int
    signature: p256_add_d(const p256_int* a, p256_digit d, p256_int* b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: p256_is_even
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:300,1
    - Dst: p256_shr1
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:301,1
    - Dst: p256_is_even
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:302,1
    - Dst: p256_shr1
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:303,1
    - Dst: p256_shr1
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:306,1
    - Dst: p256_add
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:306,1
    - Dst: p256_is_even
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:308,1
    - Dst: p256_shr1
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:309,1
    - Dst: p256_is_even
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:310,1
    - Dst: p256_shr1
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:311,1
    - Dst: p256_shr1
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:314,1
    - Dst: p256_add
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:314,1
    - Dst: p256_sub
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:317,1
    - Dst: p256_sub
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:318,1
    - Dst: p256_sub
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:319,1
    - Dst: p256_add
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:319,1
    - Dst: p256_is_zero
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:320,1
    - Dst: p256_sub
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:322,1
    - Dst: p256_sub
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:323,1
    - Dst: p256_add
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:323,1
    - Dst: p256_mod
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:328,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - MOD
    - a
    - b
    argTypes:
    - p256_int*
    - p256_int*
    - p256_int*
    constantsTouched: []
    func_position:
      end: 329
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 329
    functionName: p256_modinv_vartime
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c
    functionUses: 0
    functionsReached:
    - p256_is_zero
    - p256_shr1
    - p256_mod
    - p256_is_even
    - p256_sub
    - p256_add
    linkageType: ''
    returnType: void
    signature: "p256_modinv_vartime(const p256_int* MOD,\n                         const
      p256_int* a,\n                         p256_int* b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: addM
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:335,1
    - Dst: P256_DIGITS
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:335,1
    - Dst: subM
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:335,1
    - Dst: P256_DIGITS
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - MOD
    - in
    - out
    argTypes:
    - p256_int*
    - p256_int*
    - p256_int*
    constantsTouched: []
    func_position:
      end: 336
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 336
    functionName: p256_mod
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c
    functionUses: 1
    functionsReached:
    - addM
    - subM
    - P256_DIGITS
    linkageType: ''
    returnType: void
    signature: "p256_mod(const p256_int* MOD,\n              const p256_int* in,\n
      \             p256_int* out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: p256_cmp
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:343,1
    - Dst: p256_cmp
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:344,1
    - Dst: p256_is_zero
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:345,1
    - Dst: p256_is_zero
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:346,1
    - Dst: p256_modmul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:348,1
    - Dst: p256_modmul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:350,1
    - Dst: p256_modmul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:351,1
    - Dst: p256_sub
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:352,1
    - Dst: p256_add
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:352,1
    - Dst: p256_sub
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:353,1
    - Dst: p256_add
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:353,1
    - Dst: p256_sub
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:354,1
    - Dst: p256_add
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:354,1
    - Dst: p256_add
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:355,1
    - Dst: p256_sub
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:356,1
    - Dst: p256_cmp
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:358,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - p256_int*
    - p256_int*
    constantsTouched: []
    func_position:
      end: 359
      start: 340
    functionDepth: 3
    functionLinenumber: 340
    functionLinenumberEnd: 359
    functionName: p256_is_valid_point
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c
    functionUses: 0
    functionsReached:
    - p256_modmul
    - p256_is_zero
    - p256_sub
    - p256_add
    - p256_cmp
    linkageType: ''
    returnType: int
    signature: p256_is_valid_point(const p256_int* x, const p256_int* y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: P256_DIGIT
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - uint8_t[]
    - p256_int*
    constantsTouched: []
    func_position:
      end: 373
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 373
    functionName: p256_from_bin
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c
    functionUses: 1
    functionsReached:
    - P256_DIGIT
    linkageType: ''
    returnType: void
    signature: p256_from_bin(const uint8_t src[P256_NBYTES], p256_int* dst)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA256_CTX*
    constantsTouched: []
    func_position:
      end: 112
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 112
    functionName: SHA256_Transform
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SHA256_Transform(SHA256_CTX* ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA256_CTX*
    constantsTouched: []
    func_position:
      end: 133
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 133
    functionName: SHA256_init
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SHA256_init(SHA256_CTX* ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Transform
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha256.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - data
    - len
    argTypes:
    - SHA256_CTX*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 149
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 149
    functionName: SHA256_update
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha256.c
    functionUses: 1
    functionsReached:
    - SHA256_Transform
    linkageType: ''
    returnType: void
    signature: SHA256_update(SHA256_CTX* ctx, const void* data, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_update
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha256.c:157,1
    - Dst: SHA256_update
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha256.c:159,1
    - Dst: SHA256_update
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha256.c:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA256_CTX*
    constantsTouched: []
    func_position:
      end: 175
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 175
    functionName: SHA256_final
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha256.c
    functionUses: 0
    functionsReached:
    - SHA256_update
    linkageType: ''
    returnType: uint8_t
    signature: '* SHA256_final(SHA256_CTX* ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_init
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha256.c:180,1
    - Dst: SHA256_update
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha256.c:181,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha256.c:182,1
    - Dst: SHA256_final
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha256.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - data
    - len
    - digest
    argTypes:
    - void*
    - int
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: SHA256_hash
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha256.c
    functionUses: 1
    functionsReached:
    - SHA256_update
    - SHA256_init
    - SHA256_final
    - memcpy
    linkageType: ''
    returnType: uint8_t
    signature: '* SHA256_hash(const void* data, int len, uint8_t* digest)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: p256_is_valid_point
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ecdsa.c:38,1
    - Dst: p256_mod
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ecdsa.c:41,1
    - Dst: p256_mod
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ecdsa.c:42,1
    - Dst: p256_is_zero
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ecdsa.c:43,1
    - Dst: p256_is_zero
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ecdsa.c:43,1
    - Dst: p256_modinv_vartime
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ecdsa.c:45,1
    - Dst: p256_modmul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ecdsa.c:46,1
    - Dst: p256_modmul
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ecdsa.c:47,1
    - Dst: p256_points_mul_vartime
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ecdsa.c:49,1
    - Dst: p256_mod
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ecdsa.c:53,1
    - Dst: p256_cmp
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ecdsa.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - key_x
    - key_y
    - message
    - r
    - s
    argTypes:
    - p256_int*
    - p256_int*
    - p256_int*
    - p256_int*
    - p256_int*
    constantsTouched: []
    func_position:
      end: 55
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 55
    functionName: p256_ecdsa_verify
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ecdsa.c
    functionUses: 0
    functionsReached:
    - p256_modmul
    - p256_is_zero
    - p256_is_valid_point
    - p256_mod
    - p256_cmp
    - p256_modinv_vartime
    - p256_points_mul_vartime
    linkageType: ''
    returnType: int
    signature: "p256_ecdsa_verify(const p256_int* key_x, const p256_int* key_y,\n
      \                     const p256_int* message,\n                      const
      p256_int* r, const p256_int* s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/ecdsa_test.c:179,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/ecdsa_test.c:196,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 79
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 216
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 216
    functionName: parsehex
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/ecdsa_test.c
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: unsigned char
    signature: '* parsehex(char* str, int* len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_GOOD_DSA_SIG
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/ecdsa_test.c:254,1
    - Dst: CHECK_BAD_DSA_SIG
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/ecdsa_test.c:256,1
    - Dst: CHECK_BAD_DSA_SIG
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/ecdsa_test.c:257,1
    - Dst: CHECK_BAD_DSA_SIG
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/ecdsa_test.c:258,1
    - Dst: CHECK_BAD_DSA_SIG
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/ecdsa_test.c:259,1
    - Dst: CHECK_BAD_DSA_SIG
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/ecdsa_test.c:260,1
    - Dst: CHECK_BAD_DSA_SIG
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/ecdsa_test.c:261,1
    - Dst: CHECK_BAD_DSA_SIG
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/ecdsa_test.c:262,1
    - Dst: TEST_MESSAGE
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/ecdsa_test.c:277,1
    - Dst: TEST_MESSAGE
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/ecdsa_test.c:278,1
    - Dst: TEST_MESSAGE
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/ecdsa_test.c:279,1
    - Dst: printf
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/ecdsa_test.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - __unused
    - __unused
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 284
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 284
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/ecdsa_test.c
    functionUses: 0
    functionsReached:
    - printf
    - CHECK_BAD_DSA_SIG
    - TEST_MESSAGE
    - CHECK_GOOD_DSA_SIG
    linkageType: ''
    returnType: int
    signature: main(int arg __unused, char** argv __unused)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c:758,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c:775,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 79
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 795
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 795
    functionName: parsehex
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: unsigned char
    signature: '* parsehex(char* str, int* len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST_MESSAGE
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c:818,1
    - Dst: TEST_MESSAGE
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c:819,1
    - Dst: TEST_MESSAGE
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c:820,1
    - Dst: TEST_MESSAGE
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c:821,1
    - Dst: TEST_MESSAGE
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c:822,1
    - Dst: TEST_MESSAGE
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c:823,1
    - Dst: TEST_MESSAGE
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c:824,1
    - Dst: TEST_MESSAGE
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c:825,1
    - Dst: TEST_MESSAGE
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c:826,1
    - Dst: TEST_MESSAGE
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c:827,1
    - Dst: TEST_MESSAGE
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c:828,1
    - Dst: TEST_MESSAGE
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c:829,1
    - Dst: TEST_MESSAGE
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c:830,1
    - Dst: TEST_MESSAGE
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c:831,1
    - Dst: TEST_MESSAGE
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c:832,1
    - Dst: TEST_MESSAGE
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c:833,1
    - Dst: TEST_MESSAGE
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c:834,1
    - Dst: TEST_MESSAGE
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c:835,1
    - Dst: TEST_MESSAGE
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c:836,1
    - Dst: TEST_MESSAGE
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c:837,1
    - Dst: printf
      Src: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - __unused
    - __unused
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 842
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 842
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c
    functionUses: 0
    functionsReached:
    - printf
    - TEST_MESSAGE
    linkageType: ''
    returnType: int
    signature: main(int arg __unused, char** argv __unused)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 11
    functionName: TrailingSpace
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/trailing-space.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TrailingSpace(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bar
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 12
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 12
    functionName: _mul
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/multiple-returns.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: _mul(int bar)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mul
      Src: /src/openweave-core/third_party/cstyle/repo/tests/multiple-returns.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bar
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 14
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 14
    functionName: mul
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/multiple-returns.c
    functionUses: 15
    functionsReached:
    - _mul
    linkageType: ''
    returnType: int
    signature: mul(int bar)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mul
      Src: /src/openweave-core/third_party/cstyle/repo/tests/multiple-returns.c:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bar
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 24
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 24
    functionName: baz
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/multiple-returns.c
    functionUses: 0
    functionsReached:
    - mul
    linkageType: ''
    returnType: void
    signature: baz(int bar)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bar
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: foo
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/multiple-returns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: foo(int bar)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: negative_test_2::void_method
      Src: /src/openweave-core/third_party/cstyle/repo/tests/implicit-void-declaration.cpp:433,1
    - Dst: negative_test_2::void_method
      Src: /src/openweave-core/third_party/cstyle/repo/tests/implicit-void-declaration.cpp:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 435
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 435
    functionName: negative_test_2::void_method
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/implicit-void-declaration.cpp
    functionUses: 1
    functionsReached:
    - negative_test_2::void_method
    linkageType: ''
    returnType: void
    signature: void_method(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: negative_test_2::int_method_1
      Src: /src/openweave-core/third_party/cstyle/repo/tests/implicit-void-declaration.cpp:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 440
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 440
    functionName: negative_test_2::int_method_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/implicit-void-declaration.cpp
    functionUses: 1
    functionsReached:
    - negative_test_2::int_method_1
    linkageType: ''
    returnType: int
    signature: int_method_1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: negative_test_2::int_method_2
      Src: /src/openweave-core/third_party/cstyle/repo/tests/implicit-void-declaration.cpp:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 449
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 449
    functionName: negative_test_2::int_method_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/implicit-void-declaration.cpp
    functionUses: 1
    functionsReached:
    - negative_test_2::int_method_2
    linkageType: ''
    returnType: int
    signature: int_method_2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 11
    functionName: TrailingSpace
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/blank-trailing-space.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TrailingSpace(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 11
    functionName: _TestNS::_Test1::_Test1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/multiple-returns.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: _Test1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 12
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 12
    functionName: ~Test1(void)
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/multiple-returns.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ~Test1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bar
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 14
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 14
    functionName: _TestNS::_Test1::Mul
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/multiple-returns.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: Mul(int bar)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mul
      Src: /src/openweave-core/third_party/cstyle/repo/tests/multiple-returns.cpp:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bar
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 24
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 24
    functionName: _TestNS::_Test1::Baz
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/multiple-returns.cpp
    functionUses: 0
    functionsReached:
    - mul
    linkageType: ''
    returnType: void
    signature: Baz(int bar)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bar
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: _TestNS::_Test1::Foo
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/multiple-returns.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: Foo(int bar)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bar
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: _TestNS::_Test1::Bar
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/multiple-returns.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: Bar(int bar) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4
      start: 1
    functionDepth: 0
    functionLinenumber: 1
    functionLinenumberEnd: 4
    functionName: TrailingLine
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/trailing-line.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TrailingLine(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-while.cpp:5,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 6
    functionName: test_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-while.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-while.cpp:11,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 13
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 13
    functionName: test_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-while.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-while.cpp:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 22
    functionName: test_3
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-while.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_3(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-while.cpp:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: test_4
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-while.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_4(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-while.cpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: test_5
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-while.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_5(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-while.cpp:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: test_6
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-while.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_6(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-while.cpp:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: test_7
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-while.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_7(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-while.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: test_8
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-while.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_8(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 10
      start: 1
    functionDepth: 0
    functionLinenumber: 1
    functionLinenumberEnd: 10
    functionName: InterpolatedSpaces
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/interpolated-space.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: InterpolatedSpaces(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-for.cpp:8,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aArgument
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 10
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 10
    functionName: test_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-for.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_1(size_t aArgument)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-for.cpp:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aArgument
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 18
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 18
    functionName: test_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-for.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_2(size_t aArgument)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-for.cpp:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aArgument
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: test_3
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-for.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_3(size_t aArgument)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-for.cpp:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - aArgument
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: test_4
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-for.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_4(size_t aArgument)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 66
    functionName: test_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 129
    functionName: test_2_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_2_1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 192
    functionName: test_2_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_2_2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 255
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 255
    functionName: test_3_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_3_1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 318
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 318
    functionName: test_3_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_3_2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 381
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 381
    functionName: test_4_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_4_1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 444
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 444
    functionName: test_4_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_4_2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 507
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 507
    functionName: test_5_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_5_1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 570
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 570
    functionName: test_5_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_5_2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 633
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 633
    functionName: test_6
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_6(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 703
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 703
    functionName: test_8
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: test_8(int a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 708
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 708
    functionName: test_8_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: test_8_1(int a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 713
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 713
    functionName: test_8_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: test_8_2(int a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 718
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 718
    functionName: test_8_3
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: test_8_3(int a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 723
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 723
    functionName: test_8_4
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: test_8_4(int a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 732
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 732
    functionName: test_9
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '* test_9(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 737
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 737
    functionName: test_9_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '* test_9_1(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 742
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 742
    functionName: test_9_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '* test_9_2(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 747
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 747
    functionName: test_9_3
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '* test_9_3(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 752
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 752
    functionName: test_9_4
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '* test_9_4(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 759
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 759
    functionName: test_10
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: test_10(int *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 764
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 764
    functionName: test_10_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: test_10_1(int *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 769
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 769
    functionName: test_10_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: test_10_2(int *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 774
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 774
    functionName: test_10_3
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: test_10_3(int *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 779
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 779
    functionName: test_10_4
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: test_10_4(int *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_7_1
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp:908,1
    - Dst: const_cast<const int32_t*>
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp:910,1
    - Dst: const_cast<const int32_t*>
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp:910,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp:912,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp:912,1
    - Dst: reinterpret_cast<uint32_t*>
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp:914,1
    - Dst: static_cast<uint32_t>
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp:914,1
    - Dst: bar
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp:921,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 959
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 959
    functionName: test_11
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
    functionUses: 0
    functionsReached:
    - test_7_1
    - static_cast<uint32_t>
    - bar
    - reinterpret_cast<uint32_t*>
    - const_cast<const int32_t*>
    linkageType: ''
    returnType: void
    signature: test_11(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-comma.cpp:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - m
    - n
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: test_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-comma.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_1(int m, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: test_2::test_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-comma.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: test_2::test_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-comma.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_2(int a, int b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6
      start: 1
    functionDepth: 0
    functionLinenumber: 1
    functionLinenumberEnd: 6
    functionName: ThreeLineFunction
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/file-length.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ThreeLineFunction(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-semicolon.cpp:13,1
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-semicolon.cpp:16,1
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-semicolon.cpp:16,1
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-semicolon.cpp:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 17
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 17
    functionName: test_1_p
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-semicolon.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_1_p(int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-semicolon.cpp:31,1
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-semicolon.cpp:34,1
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-semicolon.cpp:34,1
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-semicolon.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: test_1_n
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-semicolon.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_1_n(int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5
      start: 2
    functionDepth: 0
    functionLinenumber: 2
    functionLinenumberEnd: 5
    functionName: FunctionToInclude_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/cpp-constant-conditionals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FunctionToInclude_1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 12
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 12
    functionName: FunctionToInclude_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/cpp-constant-conditionals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FunctionToInclude_2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: FunctionToInclude_3
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/cpp-constant-conditionals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FunctionToInclude_3(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: FunctionToInclude_4
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/cpp-constant-conditionals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FunctionToInclude_4(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: FunctionToInclude_5
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/cpp-constant-conditionals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FunctionToInclude_5(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: FunctionToInclude_6
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/cpp-constant-conditionals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FunctionToInclude_6(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: FunctionToInclude_7
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/cpp-constant-conditionals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FunctionToInclude_7(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: FunctionToInclude_8
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/cpp-constant-conditionals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FunctionToInclude_8(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: FunctionToInclude_9
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/cpp-constant-conditionals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FunctionToInclude_9(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: FunctionToInclude_10
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/cpp-constant-conditionals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FunctionToInclude_10(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: FunctionToExclude_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/cpp-constant-conditionals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FunctionToExclude_1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: FunctionToExclude_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/cpp-constant-conditionals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FunctionToExclude_2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: FunctionToExclude_3
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/cpp-constant-conditionals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FunctionToExclude_3(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: FunctionToExclude_4
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/cpp-constant-conditionals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FunctionToExclude_4(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: FunctionToExclude_5
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/cpp-constant-conditionals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FunctionToExclude_5(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: FunctionToExclude_6
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/cpp-constant-conditionals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FunctionToExclude_6(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: FunctionToExclude_7
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/cpp-constant-conditionals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FunctionToExclude_7(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: FunctionToExclude_8
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/cpp-constant-conditionals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FunctionToExclude_8(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: FunctionToExclude_9
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/cpp-constant-conditionals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FunctionToExclude_9(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: FunctionToExclude_10
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/cpp-constant-conditionals.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FunctionToExclude_10(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-else-if.cpp:6,1
    - Dst: bar
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-else-if.cpp:6,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - aArgument
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 7
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 7
    functionName: test_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-else-if.cpp
    functionUses: 0
    functionsReached:
    - bar
    - foo
    linkageType: ''
    returnType: void
    signature: test_1(int aArgument)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-else-if.cpp:11,1
    - Dst: bar
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-else-if.cpp:11,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - aArgument
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 12
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 12
    functionName: test_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-else-if.cpp
    functionUses: 0
    functionsReached:
    - bar
    - foo
    linkageType: ''
    returnType: void
    signature: test_2(int aArgument)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-else-if.cpp:17,1
    - Dst: bar
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-else-if.cpp:19,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - aArgument
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 21
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 21
    functionName: test_3
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-else-if.cpp
    functionUses: 0
    functionsReached:
    - bar
    - foo
    linkageType: ''
    returnType: void
    signature: test_3(int aArgument)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-else-if.cpp:27,1
    - Dst: bar
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-else-if.cpp:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - aArgument
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 33
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 33
    functionName: test_4
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-else-if.cpp
    functionUses: 0
    functionsReached:
    - bar
    - foo
    linkageType: ''
    returnType: void
    signature: test_4(int aArgument)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 11
    functionName: test_1_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_1_1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: test_1_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_1_2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp:25,1
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: test_2_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_2_1(int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp:38,1
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: test_2_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_2_2(int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: test_3_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_3_1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: test_3_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_3_2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp:69,1
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: test_4_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_4_1(int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp:82,1
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 89
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 89
    functionName: test_4_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_4_2(int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 99
    functionName: test_5_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: test_5_1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 109
    functionName: test_5_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: test_5_2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: test_6_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: test_6_1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: test_6_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: test_6_2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: test_1_1n
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_1_1n(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: test_1_2n
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_1_2n(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp:156,1
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp:161,1
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 168
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 168
    functionName: test_2_1n
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_2_1n(int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp:174,1
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp:179,1
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 186
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 186
    functionName: test_2_2n
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_2_2n(int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 195
    functionName: test_3_1n
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_3_1n(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 204
    functionName: test_3_2n
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_3_2n(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp:210,1
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp:215,1
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp:220,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 222
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 222
    functionName: test_4_1n
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_4_1n(int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp:228,1
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp:233,1
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 240
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 240
    functionName: test_4_2n
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_4_2n(int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 250
    functionName: test_5_1n
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: test_5_1n(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 260
    functionName: test_5_2n
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: test_5_2n(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 271
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 271
    functionName: test_6_1n
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: test_6_1n(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 281
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 281
    functionName: test_6_2n
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: test_6_2n(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: describe
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-switch.cpp:8,1
    - Dst: describe
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-switch.cpp:12,1
    - Dst: describe
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-switch.cpp:16,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - aArgument
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 20
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 20
    functionName: test_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-switch.cpp
    functionUses: 0
    functionsReached:
    - describe
    linkageType: ''
    returnType: void
    signature: test_1(int aArgument)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: describe
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-switch.cpp:28,1
    - Dst: describe
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-switch.cpp:32,1
    - Dst: describe
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-switch.cpp:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - aArgument
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 40
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 40
    functionName: test_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-switch.cpp
    functionUses: 0
    functionsReached:
    - describe
    linkageType: ''
    returnType: void
    signature: test_2(int aArgument)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: describe
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-switch.cpp:44,1
    - Dst: describe
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-switch.cpp:45,1
    - Dst: describe
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-switch.cpp:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - aArgument
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: test_3
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-switch.cpp
    functionUses: 0
    functionsReached:
    - describe
    linkageType: ''
    returnType: void
    signature: test_3(int aArgument)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-if.cpp:5,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - aArgument
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 6
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 6
    functionName: test_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-if.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_1(int aArgument)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-if.cpp:10,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aArgument
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 11
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 11
    functionName: test_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-if.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_2(int aArgument)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-if.cpp:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aArgument
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: test_3
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-if.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_3(int aArgument)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foo
      Src: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-if.cpp:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aArgument
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: test_4
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-if.cpp
    functionUses: 0
    functionsReached:
    - foo
    linkageType: ''
    returnType: void
    signature: test_4(int aArgument)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 12
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 12
    functionName: test_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: test_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: test_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: test_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: test_3
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_3(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: test_4
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_4(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: test_5
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_5(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: test_6
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_6(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: test_7
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_7(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: test_7
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_7(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: test_7
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_7(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: test_8
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_8(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: test_8
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_8(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: test_8
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_8(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: test_9_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_9_1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: test_9_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_9_1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: test_9_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_9_2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: test_9_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_9_2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: test_9_3
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_9_3(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: test_9_3
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_9_3(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: test_9_4
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_9_4(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: test_9_4
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_9_4(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: test_9_5
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_9_5(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: test_9_5
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_9_5(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: test_9_6
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_9_6(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: test_9_6
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_9_6(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: test_9_7
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_9_7(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: test_9_7
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_9_7(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: test_9_8
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_9_8(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: test_9_8
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_9_8(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: test_9_9
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_9_9(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: test_9_9
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_9_9(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: test_9_10
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_9_10(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: test_9_10
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_9_10(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: test_10_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: test_10_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: test_10_1
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: test_10_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: test_10_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: test_10_2
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: test_10_3
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_3(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: test_10_3
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_3(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: test_10_3
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_3(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: test_10_5
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_5(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: test_10_5
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_5(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 287
    functionName: test_10_5
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_5(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: test_10_6
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_6(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: test_10_6
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_6(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: test_10_6
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_6(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: test_10_7
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_7(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: test_10_7
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_7(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 321
    functionName: test_10_7
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_7(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: test_10_8
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_8(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: test_10_8
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_8(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 338
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 338
    functionName: test_10_8
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_8(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 345
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 345
    functionName: test_10_9
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_9(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 350
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 350
    functionName: test_10_9
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_9(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 355
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 355
    functionName: test_10_9
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_9(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: test_10_10
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_10(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 367
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 367
    functionName: test_10_10
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_10(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 372
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 372
    functionName: test_10_10
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_10(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 379
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 379
    functionName: test_10_11
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_11(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 384
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 384
    functionName: test_10_11
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_11(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 389
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 389
    functionName: test_10_11
    functionSourceFile: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: test_10_11(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 11
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 11
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:20,1
    - Dst: fputs
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:21,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:22,1
    - Dst: putc
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - name
    - bn
    argTypes:
    - char*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: showbn
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c
    functionUses: 0
    functionsReached:
    - fputs
    - BN_print_fp
    - putc
    linkageType: ''
    returnType: void
    signature: showbn(const char *name, const BIGNUM *bn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:36,1
    - Dst: JPAKE_STEP1_init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:37,1
    - Dst: JPAKE_STEP1_generate
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:38,1
    - Dst: JPAKE_STEP1_process
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:39,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:40,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:41,1
    - Dst: JPAKE_STEP1_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:44,1
    - Dst: puts
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:47,1
    - Dst: JPAKE_STEP1_init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:48,1
    - Dst: JPAKE_STEP1_generate
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:49,1
    - Dst: JPAKE_STEP1_process
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:50,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:51,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:52,1
    - Dst: JPAKE_STEP1_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:55,1
    - Dst: puts
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:58,1
    - Dst: JPAKE_STEP2_init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:59,1
    - Dst: JPAKE_STEP2_generate
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:60,1
    - Dst: JPAKE_STEP2_process
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:61,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:62,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:63,1
    - Dst: JPAKE_STEP2_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:66,1
    - Dst: puts
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:69,1
    - Dst: JPAKE_STEP2_init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:70,1
    - Dst: JPAKE_STEP2_generate
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:71,1
    - Dst: JPAKE_STEP2_process
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:72,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:73,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:74,1
    - Dst: JPAKE_STEP2_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:77,1
    - Dst: showbn
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:79,1
    - Dst: JPAKE_get_shared_key
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:79,1
    - Dst: showbn
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:80,1
    - Dst: JPAKE_get_shared_key
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:80,1
    - Dst: puts
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:83,1
    - Dst: JPAKE_STEP3A_init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:84,1
    - Dst: JPAKE_STEP3A_generate
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:85,1
    - Dst: JPAKE_STEP3A_process
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:86,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:87,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:88,1
    - Dst: JPAKE_STEP3A_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:91,1
    - Dst: puts
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:94,1
    - Dst: JPAKE_STEP3B_init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:95,1
    - Dst: JPAKE_STEP3B_generate
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:96,1
    - Dst: JPAKE_STEP3B_process
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:97,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:98,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:99,1
    - Dst: JPAKE_STEP3B_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 58
    argCount: 2
    argNames:
    - alice
    - bob
    argTypes:
    - JPAKE_CTX*
    - JPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 105
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 105
    functionName: run_jpake
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c
    functionUses: 0
    functionsReached:
    - JPAKE_STEP1_init
    - ERR_print_errors_fp
    - showbn
    - printf
    - JPAKE_STEP2_init
    - JPAKE_STEP3B_generate
    - JPAKE_get_shared_key
    - JPAKE_STEP3A_release
    - JPAKE_STEP3A_process
    - JPAKE_STEP3B_init
    - puts
    - JPAKE_STEP1_generate
    - JPAKE_STEP1_release
    - JPAKE_STEP2_process
    - JPAKE_STEP3A_generate
    - JPAKE_STEP3A_init
    - JPAKE_STEP1_process
    - JPAKE_STEP2_generate
    - JPAKE_STEP3B_release
    - JPAKE_STEP2_release
    - JPAKE_STEP3B_process
    linkageType: ''
    returnType: int
    signature: run_jpake(JPAKE_CTX *alice, JPAKE_CTX *bob)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:114,1
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:117,1
    - Dst: CRYPTO_malloc_debug_init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:119,1
    - Dst: CRYPTO_dbg_set_options
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:120,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:121,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:123,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:135,1
    - Dst: showbn
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:137,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:138,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:139,1
    - Dst: showbn
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:140,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:141,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:142,1
    - Dst: showbn
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:143,1
    - Dst: BN_rand
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:145,1
    - Dst: JPAKE_CTX_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:148,1
    - Dst: JPAKE_CTX_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:149,1
    - Dst: run_jpake
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:151,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:152,1
    - Dst: JPAKE_CTX_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:156,1
    - Dst: JPAKE_CTX_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:157,1
    - Dst: JPAKE_CTX_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:160,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:161,1
    - Dst: JPAKE_CTX_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:162,1
    - Dst: run_jpake
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:164,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:165,1
    - Dst: JPAKE_CTX_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:169,1
    - Dst: JPAKE_CTX_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:170,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:172,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:173,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:174,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:175,1
    - Dst: CRYPTO_cleanup_all_ex_data
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:177,1
    - Dst: ERR_remove_thread_state
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:178,1
    - Dst: ERR_free_strings
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:179,1
    - Dst: CRYPTO_mem_leaks
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 183
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 183
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_dbg_set_options
    - showbn
    - ERR_free_strings
    - BN_rand
    - run_jpake
    - CRYPTO_malloc_debug_init
    - fprintf
    - BN_free
    - BN_rshift1
    - BN_new
    - CRYPTO_mem_leaks
    - BN_hex2bn
    - BIO_new_fp
    - ERR_remove_thread_state
    - CRYPTO_cleanup_all_ex_data
    - JPAKE_CTX_free
    - BN_add_word
    - JPAKE_CTX_new
    - CRYPTO_mem_ctrl
    - BN_set_word
    - ERR_load_crypto_strings
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake_err.c:103,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake_err.c:104,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake_err.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 108
    functionName: ERR_load_JPAKE_strings
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: void
    signature: ERR_load_JPAKE_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:39,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - zkp
    argTypes:
    - JPAKE_ZKP*
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: JPAKE_ZKP_init
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 0
    functionsReached:
    - BN_new
    linkageType: ''
    returnType: void
    signature: JPAKE_ZKP_init(JPAKE_ZKP *zkp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:45,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - zkp
    argTypes:
    - JPAKE_ZKP*
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: JPAKE_ZKP_release
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: void
    signature: JPAKE_ZKP_release(JPAKE_ZKP *zkp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:55,1
    - Dst: JPAKE_ZKP_init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - JPAKE_STEP_PART*
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: JPAKE_STEP_PART_init
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 0
    functionsReached:
    - BN_new
    - JPAKE_ZKP_init
    linkageType: ''
    returnType: void
    signature: JPAKE_STEP_PART_init(JPAKE_STEP_PART *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JPAKE_ZKP_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:61,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - JPAKE_STEP_PART*
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: JPAKE_STEP_PART_release
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 0
    functionsReached:
    - JPAKE_ZKP_release
    - BN_free
    linkageType: ''
    returnType: void
    signature: JPAKE_STEP_PART_release(JPAKE_STEP_PART *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JPAKE_STEP_PART_init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:67,1
    - Dst: JPAKE_STEP_PART_init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s1
    argTypes:
    - JPAKE_STEP1*
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: JPAKE_STEP1_init
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 5
    functionsReached:
    - JPAKE_STEP_PART_init
    linkageType: ''
    returnType: void
    signature: JPAKE_STEP1_init(JPAKE_STEP1 *s1)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JPAKE_STEP_PART_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:73,1
    - Dst: JPAKE_STEP_PART_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s1
    argTypes:
    - JPAKE_STEP1*
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: JPAKE_STEP1_release
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 5
    functionsReached:
    - JPAKE_STEP_PART_release
    linkageType: ''
    returnType: void
    signature: JPAKE_STEP1_release(JPAKE_STEP1 *s1)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:82,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:83,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:84,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:85,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:86,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:87,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:89,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:90,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:92,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:93,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:94,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 7
    argNames:
    - ctx
    - name
    - peer_name
    - p
    - g
    - q
    - secret
    argTypes:
    - JPAKE_CTX*
    - char*
    - char*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 96
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 96
    functionName: JPAKE_CTX_init
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_CTX_new
    - BN_dup
    - OPENSSL_strdup
    linkageType: ''
    returnType: void
    signature: "JPAKE_CTX_init(JPAKE_CTX *ctx, const char *name,\n                           const
      char *peer_name, const BIGNUM *p,\n                           const BIGNUM *g,
      const BIGNUM *q,\n                           const BIGNUM *secret)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:100,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:101,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:102,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:103,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:105,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:106,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:108,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:109,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:110,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:111,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:112,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:113,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 116
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 116
    functionName: JPAKE_CTX_release
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 0
    functionsReached:
    - BN_free
    - BN_clear_free
    - memset
    - BN_CTX_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: JPAKE_CTX_release(JPAKE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:122,1
    - Dst: JPAKE_CTX_init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - name
    - peer_name
    - p
    - g
    - q
    - secret
    argTypes:
    - char*
    - char*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: JPAKE_CTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 3
    functionsReached:
    - JPAKE_CTX_init
    - OPENSSL_malloc
    linkageType: ''
    returnType: JPAKE_CTX
    signature: "*JPAKE_CTX_new(const char *name, const char *peer_name,\n                         const
      BIGNUM *p, const BIGNUM *g, const BIGNUM *q,\n                         const
      BIGNUM *secret)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JPAKE_CTX_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:131,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: JPAKE_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 4
    functionsReached:
    - OPENSSL_free
    - JPAKE_CTX_release
    linkageType: ''
    returnType: void
    signature: JPAKE_CTX_free(JPAKE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:139,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - sha
    - l
    argTypes:
    - SHA_CTX*
    - size_t
    constantsTouched: []
    func_position:
      end: 143
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 143
    functionName: hashlength
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 0
    functionsReached:
    - SHA1_Update
    - OPENSSL_assert
    linkageType: ''
    returnType: void
    signature: hashlength(SHA_CTX *sha, size_t l)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hashlength
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:149,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sha
    - string
    argTypes:
    - SHA_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: hashstring
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 0
    functionsReached:
    - SHA1_Update
    - hashlength
    linkageType: ''
    returnType: void
    signature: hashstring(SHA_CTX *sha, const char *string)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hashlength
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:158,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:159,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:160,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - sha
    - bn
    argTypes:
    - SHA_CTX*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 162
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 162
    functionName: hashbn
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BN_bn2bin
    - SHA1_Update
    - hashlength
    linkageType: ''
    returnType: void
    signature: hashbn(SHA_CTX *sha, const BIGNUM *bn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:175,1
    - Dst: hashbn
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:176,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:177,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:177,1
    - Dst: hashbn
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:178,1
    - Dst: hashbn
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:179,1
    - Dst: hashstring
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:180,1
    - Dst: SHA1_Final
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:181,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - h
    - zkpg
    - p
    - proof_name
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - JPAKE_STEP_PART*
    - char*
    constantsTouched: []
    func_position:
      end: 183
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 183
    functionName: zkp_hash
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - BN_is_zero
    - hashbn
    - SHA1_Init
    - BN_bin2bn
    - hashstring
    - SHA1_Final
    linkageType: ''
    returnType: void
    signature: "zkp_hash(BIGNUM *h, const BIGNUM *zkpg, const JPAKE_STEP_PART *p,\n
      \                    const char *proof_name)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:192,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:193,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:194,1
    - Dst: BN_rand_range
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:200,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:202,1
    - Dst: zkp_hash
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:205,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:208,1
    - Dst: BN_mod_sub
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:209,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:212,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:213,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - p
    - x
    - zkpg
    - ctx
    argTypes:
    - JPAKE_STEP_PART*
    - BIGNUM*
    - BIGNUM*
    - JPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 215
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 215
    functionName: generate_zkp
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_mod_sub
    - BN_free
    - BN_mod_exp
    - BN_rand_range
    - zkp_hash
    - BN_mod_mul
    linkageType: ''
    returnType: void
    signature: "generate_zkp(JPAKE_STEP_PART *p, const BIGNUM *x,\n                         const
      BIGNUM *zkpg, JPAKE_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:220,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:221,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:222,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:223,1
    - Dst: zkp_hash
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:226,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:229,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:231,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:233,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:236,1
    - Dst: JPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:239,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:242,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:243,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:244,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - p
    - zkpg
    - ctx
    argTypes:
    - JPAKE_STEP_PART*
    - BIGNUM*
    - JPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 248
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 248
    functionName: verify_zkp
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_free
    - BN_mod_exp
    - BN_cmp
    - zkp_hash
    - BN_mod_mul
    - JPAKEerr
    linkageType: ''
    returnType: int
    signature: "verify_zkp(const JPAKE_STEP_PART *p, const BIGNUM *zkpg,\n                      JPAKE_CTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:253,1
    - Dst: generate_zkp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - p
    - x
    - g
    - ctx
    argTypes:
    - JPAKE_STEP_PART*
    - BIGNUM*
    - BIGNUM*
    - JPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 255
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 255
    functionName: generate_step_part
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 0
    functionsReached:
    - generate_zkp
    - BN_mod_exp
    linkageType: ''
    returnType: void
    signature: "generate_step_part(JPAKE_STEP_PART *p, const BIGNUM *x,\n                               const
      BIGNUM *g, JPAKE_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_rand_range
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:263,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:266,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:267,1
    - Dst: BN_sub_word
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:268,1
    - Dst: BN_rand_range
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:271,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:273,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 277
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 277
    functionName: genrand
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_sub_word
    - BN_add_word
    - BN_free
    - BN_rand_range
    - BN_copy
    linkageType: ''
    returnType: void
    signature: genrand(JPAKE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: genrand
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:281,1
    - Dst: generate_step_part
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:282,1
    - Dst: generate_step_part
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - send
    - ctx
    argTypes:
    - JPAKE_STEP1*
    - JPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 286
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 286
    functionName: JPAKE_STEP1_generate
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 3
    functionsReached:
    - genrand
    - generate_step_part
    linkageType: ''
    returnType: int
    signature: JPAKE_STEP1_generate(JPAKE_STEP1 *send, JPAKE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:294,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:294,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:294,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:297,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:298,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:299,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - gx
    - ctx
    argTypes:
    - BIGNUM*
    - JPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 303
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 303
    functionName: is_legal
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_free
    - BN_is_zero
    - BN_mod_exp
    - BN_cmp
    - BN_is_negative
    - BN_is_one
    linkageType: ''
    returnType: int
    signature: is_legal(const BIGNUM *gx, const JPAKE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_legal
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:307,1
    - Dst: JPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:308,1
    - Dst: is_legal
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:313,1
    - Dst: JPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:314,1
    - Dst: verify_zkp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:320,1
    - Dst: JPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:321,1
    - Dst: verify_zkp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:326,1
    - Dst: JPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:327,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:332,1
    - Dst: JPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:333,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:338,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:339,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - ctx
    - received
    argTypes:
    - JPAKE_CTX*
    - JPAKE_STEP1*
    constantsTouched: []
    func_position:
      end: 342
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 342
    functionName: JPAKE_STEP1_process
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 3
    functionsReached:
    - verify_zkp
    - BN_copy
    - BN_is_one
    - is_legal
    - JPAKEerr
    linkageType: ''
    returnType: int
    signature: JPAKE_STEP1_process(JPAKE_CTX *ctx, const JPAKE_STEP1 *received)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:346,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:347,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:353,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:355,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:357,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:359,1
    - Dst: generate_step_part
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:370,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:373,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - send
    - ctx
    argTypes:
    - JPAKE_STEP2*
    - JPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 377
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 377
    functionName: JPAKE_STEP2_generate
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 3
    functionsReached:
    - BN_new
    - BN_free
    - BN_mod_exp
    - generate_step_part
    - BN_mod_mul
    linkageType: ''
    returnType: int
    signature: JPAKE_STEP2_generate(JPAKE_STEP2 *send, JPAKE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:382,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:383,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:384,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:395,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:397,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:399,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:401,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:403,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:406,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:407,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - gx
    argTypes:
    - JPAKE_CTX*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 411
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 411
    functionName: compute_key
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_free
    - BN_sub
    - BN_mod_exp
    - BN_mod_mul
    linkageType: ''
    returnType: int
    signature: compute_key(JPAKE_CTX *ctx, const BIGNUM *gx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:415,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:416,1
    - Dst: BN_mod_add
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:423,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:425,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:427,1
    - Dst: verify_zkp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:429,1
    - Dst: JPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:432,1
    - Dst: compute_key
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:434,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:437,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - received
    argTypes:
    - JPAKE_CTX*
    - JPAKE_STEP2*
    constantsTouched: []
    func_position:
      end: 441
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 441
    functionName: JPAKE_STEP2_process
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 3
    functionsReached:
    - BN_new
    - BN_free
    - BN_mod_exp
    - verify_zkp
    - compute_key
    - BN_mod_mul
    - BN_mod_add
    - JPAKEerr
    linkageType: ''
    returnType: int
    signature: JPAKE_STEP2_process(JPAKE_CTX *ctx, const JPAKE_STEP2 *received)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:447,1
    - Dst: hashbn
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:448,1
    - Dst: SHA1_Final
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - md
    - bn
    argTypes:
    - unsigned char*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 450
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 450
    functionName: quickhashbn
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 0
    functionsReached:
    - hashbn
    - SHA1_Final
    - SHA1_Init
    linkageType: ''
    returnType: void
    signature: quickhashbn(unsigned char *md, const BIGNUM *bn)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s3a
    argTypes:
    - JPAKE_STEP3A*
    constantsTouched: []
    func_position:
      end: 454
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 454
    functionName: JPAKE_STEP3A_init
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: JPAKE_STEP3A_init(JPAKE_STEP3A *s3a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: quickhashbn
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:458,1
    - Dst: SHA1
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - send
    - ctx
    argTypes:
    - JPAKE_STEP3A*
    - JPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 462
      start: 456
    functionDepth: 3
    functionLinenumber: 456
    functionLinenumberEnd: 462
    functionName: JPAKE_STEP3A_generate
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 1
    functionsReached:
    - SHA1
    - quickhashbn
    linkageType: ''
    returnType: int
    signature: JPAKE_STEP3A_generate(JPAKE_STEP3A *send, JPAKE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: quickhashbn
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:468,1
    - Dst: SHA1
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:469,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:470,1
    - Dst: JPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - received
    argTypes:
    - JPAKE_CTX*
    - JPAKE_STEP3A*
    constantsTouched: []
    func_position:
      end: 476
      start: 464
    functionDepth: 3
    functionLinenumber: 464
    functionLinenumberEnd: 476
    functionName: JPAKE_STEP3A_process
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 1
    functionsReached:
    - SHA1
    - JPAKEerr
    - quickhashbn
    - memcmp
    linkageType: ''
    returnType: int
    signature: JPAKE_STEP3A_process(JPAKE_CTX *ctx, const JPAKE_STEP3A *received)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s3a
    argTypes:
    - JPAKE_STEP3A*
    constantsTouched: []
    func_position:
      end: 480
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 480
    functionName: JPAKE_STEP3A_release
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: JPAKE_STEP3A_release(JPAKE_STEP3A *s3a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s3b
    argTypes:
    - JPAKE_STEP3B*
    constantsTouched: []
    func_position:
      end: 484
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 484
    functionName: JPAKE_STEP3B_init
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: JPAKE_STEP3B_init(JPAKE_STEP3B *s3b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: quickhashbn
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - send
    - ctx
    argTypes:
    - JPAKE_STEP3B*
    - JPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 491
      start: 486
    functionDepth: 3
    functionLinenumber: 486
    functionLinenumberEnd: 491
    functionName: JPAKE_STEP3B_generate
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 1
    functionsReached:
    - quickhashbn
    linkageType: ''
    returnType: int
    signature: JPAKE_STEP3B_generate(JPAKE_STEP3B *send, JPAKE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: quickhashbn
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:497,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:498,1
    - Dst: JPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - received
    argTypes:
    - JPAKE_CTX*
    - JPAKE_STEP3B*
    constantsTouched: []
    func_position:
      end: 503
      start: 493
    functionDepth: 3
    functionLinenumber: 493
    functionLinenumberEnd: 503
    functionName: JPAKE_STEP3B_process
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 1
    functionsReached:
    - memcmp
    - JPAKEerr
    - quickhashbn
    linkageType: ''
    returnType: int
    signature: JPAKE_STEP3B_process(JPAKE_CTX *ctx, const JPAKE_STEP3B *received)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s3b
    argTypes:
    - JPAKE_STEP3B*
    constantsTouched: []
    func_position:
      end: 507
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 507
    functionName: JPAKE_STEP3B_release
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: JPAKE_STEP3B_release(JPAKE_STEP3B *s3b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 512
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 512
    functionName: JPAKE_get_shared_key
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: '*JPAKE_get_shared_key(JPAKE_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:46,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - zkp
    - group
    argTypes:
    - ECJPAKE_ZKP*
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 53
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 53
    functionName: zkp_init
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 0
    functionsReached:
    - BN_new
    - EC_POINT_new
    linkageType: ''
    returnType: int
    signature: zkp_init(ECJPAKE_ZKP *zkp, const EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:58,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - zkp
    argTypes:
    - ECJPAKE_ZKP*
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: zkp_release
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 0
    functionsReached:
    - EC_POINT_free
    - BN_free
    linkageType: ''
    returnType: void
    signature: zkp_release(ECJPAKE_ZKP *zkp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:68,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:69,1
    - Dst: zkp_init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:72,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:77,1
    - Dst: step_part_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - p
    - ctx
    argTypes:
    - ECJPAKE_STEP_PART*
    - ECJPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 80
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 80
    functionName: step_part_init
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 0
    functionsReached:
    - step_part_release
    - memset
    - EC_POINT_new
    - zkp_init
    - ECJPAKEerr
    linkageType: ''
    returnType: int
    signature: step_part_init(ECJPAKE_STEP_PART *p, const ECJPAKE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: zkp_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:84,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - ECJPAKE_STEP_PART*
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: step_part_release
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 1
    functionsReached:
    - EC_POINT_free
    - zkp_release
    linkageType: ''
    returnType: void
    signature: step_part_release(ECJPAKE_STEP_PART *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: step_part_init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:91,1
    - Dst: step_part_init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - s1
    - ctx
    argTypes:
    - ECJPAKE_STEP1*
    - ECJPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: ECJPAKE_STEP1_init
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 2
    functionsReached:
    - step_part_init
    linkageType: ''
    returnType: int
    signature: ECJPAKE_STEP1_init(ECJPAKE_STEP1 *s1, const ECJPAKE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: step_part_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:100,1
    - Dst: step_part_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s1
    argTypes:
    - ECJPAKE_STEP1*
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: ECJPAKE_STEP1_release
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 2
    functionsReached:
    - step_part_release
    linkageType: ''
    returnType: void
    signature: ECJPAKE_STEP1_release(ECJPAKE_STEP1 *s1)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:113,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:116,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:124,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:127,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:131,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:134,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:138,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:143,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:146,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:149,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:152,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:155,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:162,1
    - Dst: ECJPAKE_CTX_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:163,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 6
    argNames:
    - group
    - secret
    - local_id_num
    - local_id_len
    - peer_id_num
    - peer_id_len
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 165
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 165
    functionName: ECJPAKE_CTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_dup
    - memset
    - EC_POINT_new
    - memcpy
    - BN_CTX_new
    - ECJPAKEerr
    - ECJPAKE_CTX_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: ECJPAKE_CTX
    signature: "*ECJPAKE_CTX_new(const EC_GROUP *group, const BIGNUM *secret,\n                             const
      unsigned char *local_id_num,\n                             const size_t local_id_len,\n
      \                            const unsigned char *peer_id_num,\n                             const
      size_t peer_id_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:171,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:173,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:175,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:177,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:179,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:181,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:183,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:185,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:186,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ECJPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 188
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 188
    functionName: ECJPAKE_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - BN_CTX_free
    - EC_POINT_free
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: ECJPAKE_CTX_free(ECJPAKE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:194,1
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - sha
    - l
    argTypes:
    - SHA256_CTX*
    - size_t
    constantsTouched: []
    func_position:
      end: 198
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 198
    functionName: hashlength
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 2
    functionsReached:
    - SHA256_Update
    - OPENSSL_assert
    linkageType: ''
    returnType: void
    signature: hashlength(SHA256_CTX *sha, size_t l)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_point2oct
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:207,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:212,1
    - Dst: EC_POINT_point2oct
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:216,1
    - Dst: hashlength
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:222,1
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:223,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:228,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - sha
    - point
    argTypes:
    - ECJPAKE_CTX*
    - SHA256_CTX*
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 230
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 230
    functionName: hashpoint_default
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 0
    functionsReached:
    - SHA256_Update
    - hashlength
    - EC_POINT_point2oct
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "hashpoint_default(ECJPAKE_CTX *ctx, SHA256_CTX *sha,\n                             const
      EC_POINT *point)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hashpoint_custom
    argTypes:
    - ECJPAKE_HASHPOINT_FUNC_PTR
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: ECJPAKE_Set_HashECPoint
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ECJPAKE_Set_HashECPoint(ECJPAKE_HASHPOINT_FUNC_PTR hashpoint_custom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:246,1
    - Dst: hashpoint
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:247,1
    - Dst: hashpoint
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:249,1
    - Dst: hashpoint
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:251,1
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:254,1
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:256,1
    - Dst: SHA256_Final
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:257,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:258,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:263,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 5
    argNames:
    - ctx
    - h
    - zkpG
    - p
    - use_local_id
    argTypes:
    - ECJPAKE_CTX*
    - BIGNUM*
    - EC_POINT*
    - ECJPAKE_STEP_PART*
    - int
    constantsTouched: []
    func_position:
      end: 265
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 265
    functionName: zkp_hash
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 2
    functionsReached:
    - BN_bin2bn
    - SHA256_Update
    - SHA256_Final
    - hashpoint
    - ECJPAKEerr
    - SHA256_Init
    linkageType: ''
    returnType: int
    signature: "zkp_hash(ECJPAKE_CTX *ctx, BIGNUM *h, const EC_POINT *zkpG,\n                    const
      ECJPAKE_STEP_PART *p, const int use_local_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:273,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:277,1
    - Dst: BN_sub_word
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:279,1
    - Dst: BN_rand_range
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:282,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:285,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:291,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:293,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 2
    argNames:
    - rnd
    - n
    argTypes:
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 295
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 295
    functionName: genrand
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_sub_word
    - BN_add_word
    - BN_free
    - BN_rand_range
    - BN_copy
    - ECJPAKEerr
    linkageType: ''
    returnType: int
    signature: genrand(BIGNUM *rnd, const BIGNUM *n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:307,1
    - Dst: EC_GROUP_get_order
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:310,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:313,1
    - Dst: genrand
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:316,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:319,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:322,1
    - Dst: zkp_hash
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:325,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:328,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:331,1
    - Dst: BN_mod_sub
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:333,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:339,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:341,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:343,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:345,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:347,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 49
    argCount: 4
    argNames:
    - p
    - x
    - zkpG
    - ctx
    argTypes:
    - ECJPAKE_STEP_PART*
    - BIGNUM*
    - EC_POINT*
    - ECJPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 349
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 349
    functionName: generate_zkp
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 1
    functionsReached:
    - BN_new
    - EC_GROUP_get_order
    - BN_mod_sub
    - BN_free
    - genrand
    - zkp_hash
    - ECJPAKEerr
    - BN_mod_mul
    - EC_POINT_mul
    linkageType: ''
    returnType: int
    signature: "generate_zkp(ECJPAKE_STEP_PART *p, const BIGNUM *x,\n                        const
      EC_POINT *zkpG, ECJPAKE_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:360,1
    - Dst: zkp_hash
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:363,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:366,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:369,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:372,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:375,1
    - Dst: EC_POINT_add
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:378,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:381,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:383,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:391,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:394,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:396,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:398,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 45
    argCount: 3
    argNames:
    - p
    - zkpG
    - ctx
    argTypes:
    - ECJPAKE_STEP_PART*
    - EC_POINT*
    - ECJPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 400
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 400
    functionName: verify_zkp
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 2
    functionsReached:
    - BN_new
    - EC_POINT_free
    - BN_free
    - EC_POINT_new
    - zkp_hash
    - EC_POINT_cmp
    - ECJPAKEerr
    - EC_POINT_mul
    - EC_POINT_add
    linkageType: ''
    returnType: int
    signature: "verify_zkp(const ECJPAKE_STEP_PART *p, const EC_POINT *zkpG,\n                      ECJPAKE_CTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:405,1
    - Dst: generate_zkp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:407,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - p
    - x
    - G
    - ctx
    argTypes:
    - ECJPAKE_STEP_PART*
    - BIGNUM*
    - EC_POINT*
    - ECJPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 414
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 414
    functionName: step_part_generate
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 0
    functionsReached:
    - generate_zkp
    - ECJPAKEerr
    - EC_POINT_mul
    linkageType: ''
    returnType: int
    signature: "step_part_generate(ECJPAKE_STEP_PART *p, const BIGNUM *x,\n                              const
      EC_POINT *G, ECJPAKE_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:422,1
    - Dst: EC_GROUP_get_order
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:425,1
    - Dst: genrand
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:428,1
    - Dst: genrand
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:430,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:433,1
    - Dst: step_part_generate
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:434,1
    - Dst: step_part_generate
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:436,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:443,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:445,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 2
    argNames:
    - send
    - ctx
    argTypes:
    - ECJPAKE_STEP1*
    - ECJPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 447
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 447
    functionName: ECJPAKE_STEP1_generate
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 1
    functionsReached:
    - BN_new
    - EC_GROUP_get_order
    - step_part_generate
    - BN_free
    - genrand
    - EC_GROUP_get0_generator
    - ECJPAKEerr
    linkageType: ''
    returnType: int
    signature: ECJPAKE_STEP1_generate(ECJPAKE_STEP1 *send, ECJPAKE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:459,1
    - Dst: EC_KEY_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:462,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:464,1
    - Dst: EC_KEY_set_group
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:467,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:469,1
    - Dst: EC_KEY_set_public_key
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:472,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:474,1
    - Dst: EC_KEY_check_key
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:477,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:479,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:486,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - point
    - group
    argTypes:
    - EC_POINT*
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 489
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 489
    functionName: EC_POINT_is_legal
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 0
    functionsReached:
    - EC_KEY_free
    - EC_KEY_check_key
    - EC_KEY_new
    - ECJPAKEerr
    - EC_KEY_set_public_key
    - EC_KEY_set_group
    linkageType: ''
    returnType: int
    signature: EC_POINT_is_legal(const EC_POINT *point, const EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_legal
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:495,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:497,1
    - Dst: EC_POINT_is_legal
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:503,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:505,1
    - Dst: verify_zkp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:511,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:511,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:513,1
    - Dst: verify_zkp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:519,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:519,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:521,1
    - Dst: EC_POINT_copy
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:527,1
    - Dst: EC_POINT_copy
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:528,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:530,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - ctx
    - received
    argTypes:
    - ECJPAKE_CTX*
    - ECJPAKE_STEP1*
    constantsTouched: []
    func_position:
      end: 535
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 535
    functionName: ECJPAKE_STEP1_process
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 1
    functionsReached:
    - EC_POINT_is_legal
    - EC_GROUP_get0_generator
    - verify_zkp
    - ECJPAKEerr
    - EC_POINT_copy
    linkageType: ''
    returnType: int
    signature: ECJPAKE_STEP1_process(ECJPAKE_CTX *ctx, const ECJPAKE_STEP1 *received)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:547,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:551,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:552,1
    - Dst: EC_POINT_add
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:555,1
    - Dst: EC_POINT_add
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:558,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:561,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:564,1
    - Dst: EC_GROUP_get_order
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:567,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:569,1
    - Dst: step_part_generate
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:579,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:585,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:587,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:589,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:591,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 43
    argCount: 2
    argNames:
    - send
    - ctx
    argTypes:
    - ECJPAKE_STEP2*
    - ECJPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 593
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 593
    functionName: ECJPAKE_STEP2_generate
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 1
    functionsReached:
    - BN_new
    - EC_GROUP_get_order
    - step_part_generate
    - EC_POINT_free
    - BN_free
    - BN_clear_free
    - EC_GROUP_get0_generator
    - EC_POINT_new
    - ECJPAKEerr
    - BN_mod_mul
    - EC_POINT_mul
    - EC_POINT_add
    linkageType: ''
    returnType: int
    signature: ECJPAKE_STEP2_generate(ECJPAKE_STEP2 *send, ECJPAKE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:611,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:614,1
    - Dst: EC_POINT_invert
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:617,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:620,1
    - Dst: EC_POINT_add
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:623,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:626,1
    - Dst: SHA256_Init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:629,1
    - Dst: hashpoint
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:630,1
    - Dst: SHA256_Final
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:632,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:637,1
    - Dst: EC_POINT_clear_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:639,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 2
    argNames:
    - ctx
    - Gx
    argTypes:
    - ECJPAKE_CTX*
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 641
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 641
    functionName: compute_key
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 2
    functionsReached:
    - SHA256_Final
    - EC_POINT_new
    - EC_POINT_invert
    - hashpoint
    - EC_POINT_clear_free
    - ECJPAKEerr
    - EC_POINT_mul
    - SHA256_Init
    - EC_POINT_add
    linkageType: ''
    returnType: int
    signature: compute_key(ECJPAKE_CTX *ctx, const EC_POINT *Gx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:651,1
    - Dst: EC_GROUP_get_order
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:654,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:658,1
    - Dst: BN_mod_add
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:661,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:664,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:667,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:668,1
    - Dst: EC_POINT_add
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:671,1
    - Dst: verify_zkp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:674,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:676,1
    - Dst: compute_key
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:680,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:687,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:690,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:692,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:694,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 48
    argCount: 2
    argNames:
    - ctx
    - received
    argTypes:
    - ECJPAKE_CTX*
    - ECJPAKE_STEP2*
    constantsTouched: []
    func_position:
      end: 696
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 696
    functionName: ECJPAKE_STEP2_process
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 1
    functionsReached:
    - BN_new
    - EC_GROUP_get_order
    - EC_POINT_free
    - BN_free
    - EC_GROUP_get0_generator
    - verify_zkp
    - EC_POINT_new
    - compute_key
    - ECJPAKEerr
    - BN_mod_add
    - EC_POINT_mul
    - EC_POINT_add
    linkageType: ''
    returnType: int
    signature: ECJPAKE_STEP2_process(ECJPAKE_CTX *ctx, const ECJPAKE_STEP2 *received)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s3a
    argTypes:
    - ECJPAKE_STEP3A*
    constantsTouched: []
    func_position:
      end: 700
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 700
    functionName: ECJPAKE_STEP3A_init
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ECJPAKE_STEP3A_init(ECJPAKE_STEP3A *s3a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:704,1
    - Dst: SHA256
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - send
    - ctx
    argTypes:
    - ECJPAKE_STEP3A*
    - ECJPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 708
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 708
    functionName: ECJPAKE_STEP3A_generate
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 0
    functionsReached:
    - SHA256
    linkageType: ''
    returnType: int
    signature: ECJPAKE_STEP3A_generate(ECJPAKE_STEP3A *send, ECJPAKE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:714,1
    - Dst: SHA256
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:715,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:716,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - received
    argTypes:
    - ECJPAKE_CTX*
    - ECJPAKE_STEP3A*
    constantsTouched: []
    func_position:
      end: 722
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 722
    functionName: ECJPAKE_STEP3A_process
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 0
    functionsReached:
    - SHA256
    - memcmp
    - ECJPAKEerr
    linkageType: ''
    returnType: int
    signature: ECJPAKE_STEP3A_process(ECJPAKE_CTX *ctx, const ECJPAKE_STEP3A *received)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s3a
    argTypes:
    - ECJPAKE_STEP3A*
    constantsTouched: []
    func_position:
      end: 726
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 726
    functionName: ECJPAKE_STEP3A_release
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ECJPAKE_STEP3A_release(ECJPAKE_STEP3A *s3a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s3b
    argTypes:
    - ECJPAKE_STEP3B*
    constantsTouched: []
    func_position:
      end: 730
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 730
    functionName: ECJPAKE_STEP3B_init
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ECJPAKE_STEP3B_init(ECJPAKE_STEP3B *s3b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - send
    - ctx
    argTypes:
    - ECJPAKE_STEP3B*
    - ECJPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 736
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 736
    functionName: ECJPAKE_STEP3B_generate
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 0
    functionsReached:
    - SHA256
    linkageType: ''
    returnType: int
    signature: ECJPAKE_STEP3B_generate(ECJPAKE_STEP3B *send, ECJPAKE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:742,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:743,1
    - Dst: ECJPAKEerr
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - received
    argTypes:
    - ECJPAKE_CTX*
    - ECJPAKE_STEP3B*
    constantsTouched: []
    func_position:
      end: 749
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 749
    functionName: ECJPAKE_STEP3B_process
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 0
    functionsReached:
    - SHA256
    - memcmp
    - ECJPAKEerr
    linkageType: ''
    returnType: int
    signature: ECJPAKE_STEP3B_process(ECJPAKE_CTX *ctx, const ECJPAKE_STEP3B *received)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s3b
    argTypes:
    - ECJPAKE_STEP3B*
    constantsTouched: []
    func_position:
      end: 753
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 753
    functionName: ECJPAKE_STEP3B_release
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ECJPAKE_STEP3B_release(ECJPAKE_STEP3B *s3b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ECJPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 758
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 758
    functionName: ECJPAKE_get_ecGroup
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: EC_GROUP
    signature: '*ECJPAKE_get_ecGroup(const ECJPAKE_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ECJPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 763
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 763
    functionName: ECJPAKE_get_shared_key
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: '*ECJPAKE_get_shared_key(const ECJPAKE_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 11
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 11
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:28,1
    - Dst: fputs
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:29,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:31,1
    - Dst: putc
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - name
    - key
    argTypes:
    - char*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: showkey
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c
    functionUses: 0
    functionsReached:
    - fprintf
    - fputs
    - putc
    linkageType: ''
    returnType: void
    signature: showkey(const char *name, const unsigned char *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:38,1
    - Dst: fputs
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:39,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:40,1
    - Dst: putc
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - name
    - bn
    argTypes:
    - char*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: showbn
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c
    functionUses: 2
    functionsReached:
    - fputs
    - BN_print_fp
    - putc
    linkageType: ''
    returnType: void
    signature: showbn(const char *name, const BIGNUM *bn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:46,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:47,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:48,1
    - Dst: ECJPAKE_get_ecGroup
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:49,1
    - Dst: EC_POINT_get_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:54,1
    - Dst: fputs
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:56,1
    - Dst: showbn
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:57,1
    - Dst: fputs
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:58,1
    - Dst: showbn
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:59,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:63,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:65,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:67,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - name
    - point
    - ctx
    argTypes:
    - char*
    - EC_POINT*
    - ECJPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 68
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 68
    functionName: showpoint
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - ECJPAKE_get_ecGroup
    - BN_free
    - EC_POINT_get_affine_coordinates_GFp
    - showbn
    - BN_CTX_free
    - fputs
    - BN_CTX_new
    linkageType: ''
    returnType: void
    signature: showpoint(const char *name, const EC_POINT *point, ECJPAKE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - rand_len
    - len_bottom
    - len_top
    argTypes:
    - size_t*
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 88
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 88
    functionName: generate_rand_len
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    linkageType: ''
    returnType: int
    signature: "generate_rand_len(size_t *rand_len,\n                             unsigned
      int len_bottom,\n                             unsigned int len_top)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:100,1
    - Dst: ECJPAKE_STEP1_init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:101,1
    - Dst: ECJPAKE_STEP1_generate
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:102,1
    - Dst: ECJPAKE_STEP1_process
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:104,1
    - Dst: ECJPAKE_STEP1_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:105,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:106,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:107,1
    - Dst: ECJPAKE_STEP1_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:110,1
    - Dst: fputs
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:113,1
    - Dst: ECJPAKE_STEP1_init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:114,1
    - Dst: ECJPAKE_STEP1_generate
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:115,1
    - Dst: ECJPAKE_STEP1_process
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:116,1
    - Dst: ECJPAKE_STEP1_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:117,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:118,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:119,1
    - Dst: ECJPAKE_STEP1_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:122,1
    - Dst: fputs
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:125,1
    - Dst: ECJPAKE_STEP2_init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:126,1
    - Dst: ECJPAKE_STEP2_generate
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:127,1
    - Dst: ECJPAKE_STEP2_process
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:128,1
    - Dst: ECJPAKE_STEP2_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:129,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:130,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:131,1
    - Dst: ECJPAKE_STEP2_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:134,1
    - Dst: fputs
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:137,1
    - Dst: ECJPAKE_STEP2_init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:138,1
    - Dst: ECJPAKE_STEP2_generate
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:139,1
    - Dst: ECJPAKE_STEP2_process
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:140,1
    - Dst: ECJPAKE_STEP2_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:141,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:142,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:143,1
    - Dst: ECJPAKE_STEP2_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:146,1
    - Dst: showkey
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:148,1
    - Dst: ECJPAKE_get_shared_key
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:148,1
    - Dst: showkey
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:149,1
    - Dst: ECJPAKE_get_shared_key
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:149,1
    - Dst: fputs
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:152,1
    - Dst: ECJPAKE_STEP3A_init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:153,1
    - Dst: ECJPAKE_STEP3A_generate
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:154,1
    - Dst: ECJPAKE_STEP3A_process
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:155,1
    - Dst: ECJPAKE_STEP3A_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:156,1
    - Dst: ECJPAKE_STEP3A_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:159,1
    - Dst: fputs
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:162,1
    - Dst: ECJPAKE_STEP3B_init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:163,1
    - Dst: ECJPAKE_STEP3B_generate
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:164,1
    - Dst: ECJPAKE_STEP3B_process
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:165,1
    - Dst: ECJPAKE_STEP3B_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:166,1
    - Dst: ECJPAKE_STEP3B_release
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:169,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 60
    argCount: 2
    argNames:
    - alice
    - bob
    argTypes:
    - ECJPAKE_CTX*
    - ECJPAKE_CTX*
    constantsTouched: []
    func_position:
      end: 172
      start: 90
    functionDepth: 4
    functionLinenumber: 90
    functionLinenumberEnd: 172
    functionName: run_ecjpake
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c
    functionUses: 0
    functionsReached:
    - ERR_print_errors_fp
    - fputs
    - ECJPAKE_STEP2_generate
    - fprintf
    - ECJPAKE_STEP1_process
    - ECJPAKE_STEP3B_release
    - showkey
    - ECJPAKE_STEP1_init
    - ECJPAKE_STEP3B_generate
    - ECJPAKE_STEP2_release
    - ECJPAKE_STEP3A_process
    - ECJPAKE_STEP1_release
    - ECJPAKE_STEP1_generate
    - ECJPAKE_STEP3A_init
    - ECJPAKE_STEP3B_process
    - ECJPAKE_STEP2_process
    - ECJPAKE_STEP3A_release
    - ECJPAKE_get_shared_key
    - ECJPAKE_STEP2_init
    - ECJPAKE_STEP3B_init
    - ECJPAKE_STEP3A_generate
    linkageType: ''
    returnType: int
    signature: run_ecjpake(ECJPAKE_CTX *alice, ECJPAKE_CTX *bob)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_malloc_debug_init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:219,1
    - Dst: CRYPTO_dbg_set_options
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:220,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:221,1
    - Dst: CRYPTO_malloc_init
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:224,1
    - Dst: RAND_seed
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:227,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:229,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:229,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:231,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:232,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:236,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:239,1
    - Dst: generate_rand_len
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:244,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:247,1
    - Dst: BN_rand
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:250,1
    - Dst: generate_rand_len
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:253,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:256,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:259,1
    - Dst: generate_rand_len
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:262,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:265,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:268,1
    - Dst: ECJPAKE_CTX_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:272,1
    - Dst: ECJPAKE_CTX_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:276,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:281,1
    - Dst: run_ecjpake
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:282,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:283,1
    - Dst: ECJPAKE_CTX_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:287,1
    - Dst: ECJPAKE_CTX_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:289,1
    - Dst: ECJPAKE_CTX_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:293,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:298,1
    - Dst: BN_rand
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:301,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:303,1
    - Dst: ECJPAKE_CTX_new
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:305,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:310,1
    - Dst: run_ecjpake
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:311,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:312,1
    - Dst: ECJPAKE_CTX_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:316,1
    - Dst: ECJPAKE_CTX_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:318,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:320,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:322,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:324,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:326,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:328,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:336,1
    - Dst: ECJPAKE_CTX_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:338,1
    - Dst: ECJPAKE_CTX_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:340,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:342,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:344,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:346,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:348,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:350,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:351,1
    - Dst: CRYPTO_cleanup_all_ex_data
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:352,1
    - Dst: ERR_remove_thread_state
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:353,1
    - Dst: CRYPTO_mem_leaks_fp
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c:354,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 128
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 356
      start: 174
    functionDepth: 5
    functionLinenumber: 174
    functionLinenumberEnd: 356
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - CRYPTO_dbg_set_options
    - RAND_seed
    - BN_rand
    - CRYPTO_malloc_debug_init
    - fprintf
    - BN_free
    - EC_GROUP_new_by_curve_name
    - BIO_free
    - ECJPAKE_CTX_free
    - BIO_set_fp
    - run_ecjpake
    - BIO_new
    - generate_rand_len
    - BN_new
    - EC_GROUP_free
    - CRYPTO_malloc_init
    - BIO_s_file
    - ECJPAKE_CTX_new
    - ERR_remove_thread_state
    - CRYPTO_mem_leaks_fp
    - EXIT
    - OPENSSL_free
    - CRYPTO_cleanup_all_ex_data
    - CRYPTO_mem_ctrl
    - BN_add
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake_err.c:113,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake_err.c:114,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake_err.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 118
    functionName: ERR_load_ECJPAKE_strings
    functionSourceFile: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: void
    signature: ERR_load_ECJPAKE_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rng_function
    argTypes:
    - uECC_RNG_Function
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: uECC_set_rng
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: uECC_set_rng(uECC_RNG_Function rng_function)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - vli
    - num_words
    argTypes:
    - uECC_word_t*
    - wordcount_t
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: uECC_vli_clear
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uECC_VLI_API
    signature: uECC_vli_clear(uECC_word_t *vli, wordcount_t num_words)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - vli
    - num_words
    argTypes:
    - uECC_word_t*
    - wordcount_t
    constantsTouched: []
    func_position:
      end: 201
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 201
    functionName: uECC_word_t::uECC_vli_isZero
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uECC_VLI_API
    signature: uECC_word_t uECC_vli_isZero(const uECC_word_t *vli, wordcount_t num_words)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vli
    - bit
    argTypes:
    - uECC_word_t*
    - bitcount_t
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 206
    functionName: uECC_word_t::uECC_vli_testBit
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uECC_VLI_API
    signature: uECC_word_t uECC_vli_testBit(const uECC_word_t *vli, bitcount_t bit)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - vli
    - max_words
    argTypes:
    - uECC_word_t*
    - wordcount_t
    constantsTouched: []
    func_position:
      end: 217
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 217
    functionName: vli_numDigits
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: wordcount_t
    signature: vli_numDigits(const uECC_word_t *vli, const wordcount_t max_words)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vli_numDigits
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - vli
    - max_words
    argTypes:
    - uECC_word_t*
    - wordcount_t
    constantsTouched: []
    func_position:
      end: 235
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 235
    functionName: uECC_vli_numBits
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - vli_numDigits
    linkageType: ''
    returnType: uECC_VLI_API
    signature: uECC_vli_numBits(const uECC_word_t *vli, const wordcount_t max_words)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - dest
    - src
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    constantsTouched: []
    func_position:
      end: 244
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 244
    functionName: uECC_vli_set
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uECC_VLI_API
    signature: uECC_vli_set(uECC_word_t *dest, const uECC_word_t *src, wordcount_t
      num_words)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - left
    - right
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    constantsTouched: []
    func_position:
      end: 260
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 260
    functionName: uECC_vli_cmp_unsafe
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: cmpresult_t
    signature: "uECC_vli_cmp_unsafe(const uECC_word_t *left,\n                                       const
      uECC_word_t *right,\n                                       wordcount_t num_words)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - left
    - right
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    constantsTouched: []
    func_position:
      end: 273
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 273
    functionName: uECC_word_t::uECC_vli_equal
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_word_t uECC_vli_equal(const uECC_word_t *left,\n                                        const
      uECC_word_t *right,\n                                        wordcount_t num_words)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_sub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:285,1
    - Dst: uECC_vli_isZero
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - left
    - right
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    constantsTouched: []
    func_position:
      end: 288
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 288
    functionName: cmpresult_t::uECC_vli_cmp
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_sub
    - uECC_vli_isZero
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "cmpresult_t uECC_vli_cmp(const uECC_word_t *left,\n                                      const
      uECC_word_t *right,\n                                      wordcount_t num_words)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - vli
    - num_words
    argTypes:
    - uECC_word_t*
    - wordcount_t
    constantsTouched: []
    func_position:
      end: 302
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 302
    functionName: uECC_vli_rshift1
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uECC_VLI_API
    signature: uECC_vli_rshift1(uECC_word_t *vli, wordcount_t num_words)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - result
    - left
    - right
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    constantsTouched: []
    func_position:
      end: 321
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 321
    functionName: uECC_word_t::uECC_vli_add
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_word_t uECC_vli_add(uECC_word_t *result,\n                                      const
      uECC_word_t *left,\n                                      const uECC_word_t
      *right,\n                                      wordcount_t num_words)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - result
    - left
    - right
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    constantsTouched: []
    func_position:
      end: 340
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 340
    functionName: uECC_word_t::uECC_vli_sub
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_word_t uECC_vli_sub(uECC_word_t *result,\n                                      const
      uECC_word_t *left,\n                                      const uECC_word_t
      *right,\n                                      wordcount_t num_words)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - a
    - b
    - r0
    - r1
    - r2
    argTypes:
    - uECC_word_t
    - uECC_word_t
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    constantsTouched: []
    func_position:
      end: 384
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 384
    functionName: muladd
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "muladd(uECC_word_t a,\n                   uECC_word_t b,\n                   uECC_word_t
      *r0,\n                   uECC_word_t *r1,\n                   uECC_word_t *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: muladd
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:400,1
    - Dst: muladd
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:409,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - result
    - left
    - right
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    constantsTouched: []
    func_position:
      end: 417
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 417
    functionName: uECC_vli_mult
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - muladd
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_vli_mult(uECC_word_t *result,\n                                const
      uECC_word_t *left,\n                                const uECC_word_t *right,\n
      \                               wordcount_t num_words)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - a
    - b
    - r0
    - r1
    - r2
    argTypes:
    - uECC_word_t
    - uECC_word_t
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    constantsTouched: []
    func_position:
      end: 468
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 468
    functionName: mul2add
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "mul2add(uECC_word_t a,\n                    uECC_word_t b,\n                    uECC_word_t
      *r0,\n                    uECC_word_t *r1,\n                    uECC_word_t
      *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mul2add
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:483,1
    - Dst: muladd
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:485,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - result
    - left
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    constantsTouched: []
    func_position:
      end: 495
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 495
    functionName: uECC_vli_square
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - mul2add
    - muladd
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_vli_square(uECC_word_t *result,\n                                  const
      uECC_word_t *left,\n                                  wordcount_t num_words)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_mult
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - result
    - left
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    constantsTouched: []
    func_position:
      end: 505
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 505
    functionName: uECC_vli_square
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_mult
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_vli_square(uECC_word_t *result,\n                                  const
      uECC_word_t *left,\n                                  wordcount_t num_words)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_add
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:517,1
    - Dst: uECC_vli_cmp_unsafe
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:518,1
    - Dst: uECC_vli_sub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - result
    - left
    - right
    - mod
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    constantsTouched: []
    func_position:
      end: 522
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 522
    functionName: uECC_vli_modAdd
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_sub
    - uECC_vli_add
    - uECC_vli_cmp_unsafe
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_vli_modAdd(uECC_word_t *result,\n                                  const
      uECC_word_t *left,\n                                  const uECC_word_t *right,\n
      \                                 const uECC_word_t *mod,\n                                  wordcount_t
      num_words)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_sub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:531,1
    - Dst: uECC_vli_add
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - result
    - left
    - right
    - mod
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    constantsTouched: []
    func_position:
      end: 537
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 537
    functionName: uECC_vli_modSub
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 2
    functionsReached:
    - uECC_vli_sub
    - uECC_vli_add
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_vli_modSub(uECC_word_t *result,\n                                  const
      uECC_word_t *left,\n                                  const uECC_word_t *right,\n
      \                                 const uECC_word_t *mod,\n                                  wordcount_t
      num_words)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_numBits
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:551,1
    - Dst: uECC_vli_clear
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:555,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:562,1
    - Dst: uECC_vli_rshift1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:576,1
    - Dst: uECC_vli_rshift1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:578,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:580,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - result
    - product
    - mod
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    constantsTouched: []
    func_position:
      end: 581
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 581
    functionName: uECC_vli_mmod
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 1
    functionsReached:
    - uECC_vli_rshift1
    - uECC_vli_numBits
    - uECC_vli_clear
    - uECC_vli_set
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_vli_mmod(uECC_word_t *result,\n                                uECC_word_t
      *product,\n                                const uECC_word_t *mod,\n                                wordcount_t
      num_words)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_mult
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:590,1
    - Dst: uECC_vli_mmod
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - result
    - left
    - right
    - mod
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    constantsTouched: []
    func_position:
      end: 592
      start: 584
    functionDepth: 3
    functionLinenumber: 584
    functionLinenumberEnd: 592
    functionName: uECC_vli_modMult
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 2
    functionsReached:
    - uECC_vli_mmod
    - uECC_vli_mult
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_vli_modMult(uECC_word_t *result,\n                                   const
      uECC_word_t *left,\n                                   const uECC_word_t *right,\n
      \                                  const uECC_word_t *mod,\n                                   wordcount_t
      num_words)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_mult
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:599,1
    - Dst: uECC_Curve::mmod_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:601,1
    - Dst: uECC_vli_mmod
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - result
    - left
    - right
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 605
      start: 594
    functionDepth: 3
    functionLinenumber: 594
    functionLinenumberEnd: 605
    functionName: uECC_vli_modMult_fast
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 1
    functionsReached:
    - uECC_vli_mmod
    - uECC_Curve::mmod_fast
    - uECC_vli_mult
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_vli_modMult_fast(uECC_word_t *result,\n                                        const
      uECC_word_t *left,\n                                        const uECC_word_t
      *right,\n                                        uECC_Curve curve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_square
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:616,1
    - Dst: uECC_vli_mmod
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - left
    - mod
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    constantsTouched: []
    func_position:
      end: 618
      start: 611
    functionDepth: 3
    functionLinenumber: 611
    functionLinenumberEnd: 618
    functionName: uECC_vli_modSquare
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_mmod
    - uECC_vli_square
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_vli_modSquare(uECC_word_t *result,\n                                     const
      uECC_word_t *left,\n                                     const uECC_word_t *mod,\n
      \                                    wordcount_t num_words)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_square
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:625,1
    - Dst: uECC_Curve::mmod_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:627,1
    - Dst: uECC_vli_mmod
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - result
    - left
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 631
      start: 621
    functionDepth: 3
    functionLinenumber: 621
    functionLinenumberEnd: 631
    functionName: uECC_vli_modSquare_fast
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_mmod
    - uECC_vli_square
    - uECC_Curve::mmod_fast
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_vli_modSquare_fast(uECC_word_t *result,\n                                          const
      uECC_word_t *left,\n                                          uECC_Curve curve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_modMult
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - result
    - left
    - mod
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    constantsTouched: []
    func_position:
      end: 641
      start: 636
    functionDepth: 4
    functionLinenumber: 636
    functionLinenumberEnd: 641
    functionName: uECC_vli_modSquare
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_modMult
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_vli_modSquare(uECC_word_t *result,\n                                     const
      uECC_word_t *left,\n                                     const uECC_word_t *mod,\n
      \                                    wordcount_t num_words)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_modMult_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - result
    - left
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 648
      start: 644
    functionDepth: 4
    functionLinenumber: 644
    functionLinenumberEnd: 648
    functionName: uECC_vli_modSquare_fast
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_modMult_fast
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_vli_modSquare_fast(uECC_word_t *result,\n                                          const
      uECC_word_t *left,\n                                          uECC_Curve curve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVEN
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:657,1
    - Dst: uECC_vli_add
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:658,1
    - Dst: uECC_vli_rshift1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - uv
    - mod
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    constantsTouched: []
    func_position:
      end: 664
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 664
    functionName: vli_modInv_update
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - EVEN
    - uECC_vli_rshift1
    - uECC_vli_add
    linkageType: ''
    returnType: void
    signature: "vli_modInv_update(uECC_word_t *uv,\n                              const
      uECC_word_t *mod,\n                              wordcount_t num_words)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_isZero
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:675,1
    - Dst: uECC_vli_clear
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:676,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:680,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:681,1
    - Dst: uECC_vli_clear
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:682,1
    - Dst: uECC_vli_clear
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:684,1
    - Dst: uECC_vli_cmp_unsafe
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:685,1
    - Dst: EVEN
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:686,1
    - Dst: uECC_vli_rshift1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:687,1
    - Dst: vli_modInv_update
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:688,1
    - Dst: EVEN
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:689,1
    - Dst: uECC_vli_rshift1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:690,1
    - Dst: vli_modInv_update
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:691,1
    - Dst: uECC_vli_sub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:693,1
    - Dst: uECC_vli_rshift1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:694,1
    - Dst: uECC_vli_cmp_unsafe
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:695,1
    - Dst: uECC_vli_add
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:696,1
    - Dst: uECC_vli_sub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:698,1
    - Dst: vli_modInv_update
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:699,1
    - Dst: uECC_vli_sub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:701,1
    - Dst: uECC_vli_rshift1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:702,1
    - Dst: uECC_vli_cmp_unsafe
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:703,1
    - Dst: uECC_vli_add
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:704,1
    - Dst: uECC_vli_sub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:706,1
    - Dst: vli_modInv_update
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:707,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:710,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 4
    argNames:
    - result
    - input
    - mod
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    constantsTouched: []
    func_position:
      end: 711
      start: 668
    functionDepth: 2
    functionLinenumber: 668
    functionLinenumberEnd: 711
    functionName: uECC_vli_modInv
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 1
    functionsReached:
    - uECC_vli_sub
    - uECC_vli_rshift1
    - uECC_vli_add
    - uECC_vli_cmp_unsafe
    - EVEN
    - uECC_vli_set
    - uECC_vli_isZero
    - uECC_vli_clear
    - vli_modInv_update
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_vli_modInv(uECC_word_t *result,\n                                  const
      uECC_word_t *input,\n                                  const uECC_word_t *mod,\n
      \                                 wordcount_t num_words)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_modSquare_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:731,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:732,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:733,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - X1
    - Y1
    - Z
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 735
      start: 725
    functionDepth: 4
    functionLinenumber: 725
    functionLinenumberEnd: 735
    functionName: apply_z
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_modSquare_fast
    - uECC_vli_modMult_fast
    linkageType: ''
    returnType: void
    signature: "apply_z(uECC_word_t * X1,\n                    uECC_word_t * Y1,\n
      \                   const uECC_word_t * const Z,\n                    uECC_Curve
      curve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_set
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:747,1
    - Dst: uECC_vli_clear
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:749,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:753,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:754,1
    - Dst: apply_z
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:756,1
    - Dst: uECC_Curve::double_jacobian
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:757,1
    - Dst: apply_z
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - X1
    - Y1
    - X2
    - Y2
    - initial_Z
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 759
      start: 738
    functionDepth: 5
    functionLinenumber: 738
    functionLinenumberEnd: 759
    functionName: XYcZ_initial_double
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_clear
    - uECC_Curve::double_jacobian
    - apply_z
    - uECC_vli_set
    linkageType: ''
    returnType: void
    signature: "XYcZ_initial_double(uECC_word_t * X1,\n                                uECC_word_t
      * Y1,\n                                uECC_word_t * X2,\n                                uECC_word_t
      * Y2,\n                                const uECC_word_t * const initial_Z,\n
      \                               uECC_Curve curve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:774,1
    - Dst: uECC_vli_modSquare_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:775,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:776,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:777,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:778,1
    - Dst: uECC_vli_modSquare_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:779,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:781,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:782,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:783,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:784,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:785,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:786,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:787,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 5
    argNames:
    - X1
    - Y1
    - X2
    - Y2
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 790
      start: 765
    functionDepth: 4
    functionLinenumber: 765
    functionLinenumberEnd: 790
    functionName: XYcZ_add
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_modSquare_fast
    - uECC_vli_modSub
    - uECC_vli_modMult_fast
    - uECC_vli_set
    linkageType: ''
    returnType: void
    signature: "XYcZ_add(uECC_word_t * X1,\n                     uECC_word_t * Y1,\n
      \                    uECC_word_t * X2,\n                     uECC_word_t * Y2,\n
      \                    uECC_Curve curve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:807,1
    - Dst: uECC_vli_modSquare_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:808,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:809,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:810,1
    - Dst: uECC_vli_modAdd
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:811,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:812,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:814,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:815,1
    - Dst: uECC_vli_modAdd
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:816,1
    - Dst: uECC_vli_modSquare_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:817,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:818,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:820,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:821,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:822,1
    - Dst: uECC_vli_modSquare_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:824,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:825,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:826,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:827,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:828,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 5
    argNames:
    - X1
    - Y1
    - X2
    - Y2
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 831
      start: 796
    functionDepth: 4
    functionLinenumber: 796
    functionLinenumberEnd: 831
    functionName: XYcZ_addC
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_set
    - uECC_vli_modAdd
    - uECC_vli_modSquare_fast
    - uECC_vli_modSub
    - uECC_vli_modMult_fast
    linkageType: ''
    returnType: void
    signature: "XYcZ_addC(uECC_word_t * X1,\n                      uECC_word_t * Y1,\n
      \                     uECC_word_t * X2,\n                      uECC_word_t *
      Y2,\n                      uECC_Curve curve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_set
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:848,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:849,1
    - Dst: XYcZ_initial_double
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:851,1
    - Dst: uECC_vli_testBit
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:854,1
    - Dst: XYcZ_addC
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:855,1
    - Dst: XYcZ_add
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:856,1
    - Dst: uECC_vli_testBit
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:859,1
    - Dst: XYcZ_addC
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:860,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:863,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:864,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:865,1
    - Dst: uECC_vli_modInv
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:866,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:868,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:869,1
    - Dst: XYcZ_add
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:872,1
    - Dst: apply_z
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:873,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:875,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:876,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 6
    argNames:
    - result
    - point
    - scalar
    - initial_Z
    - num_bits
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - bitcount_t
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 877
      start: 834
    functionDepth: 6
    functionLinenumber: 834
    functionLinenumberEnd: 877
    functionName: EccPoint_mult
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - XYcZ_add
    - uECC_vli_testBit
    - uECC_vli_set
    - uECC_vli_modInv
    - XYcZ_addC
    - uECC_vli_modSub
    - apply_z
    - uECC_vli_modMult_fast
    - XYcZ_initial_double
    linkageType: ''
    returnType: void
    signature: "EccPoint_mult(uECC_word_t * result,\n                          const
      uECC_word_t * point,\n                          const uECC_word_t * scalar,\n
      \                         const uECC_word_t * initial_Z,\n                          bitcount_t
      num_bits,\n                          uECC_Curve curve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_WORDS
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:883,1
    - Dst: uECC_vli_add
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:885,1
    - Dst: uECC_vli_testBit
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:887,1
    - Dst: uECC_vli_add
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:888,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 4
    argNames:
    - k
    - k0
    - k1
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 890
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 890
    functionName: regularize_k
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - BITS_TO_WORDS
    - uECC_vli_add
    - uECC_vli_testBit
    linkageType: ''
    returnType: uECC_word_t
    signature: "regularize_k(const uECC_word_t * const k,\n                                uECC_word_t
      *k0,\n                                uECC_word_t *k1,\n                                uECC_Curve
      curve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: regularize_k
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:902,1
    - Dst: EccPoint_mult
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:904,1
    - Dst: EccPoint_isZero
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:906,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - result
    - private
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 910
      start: 892
    functionDepth: 7
    functionLinenumber: 892
    functionLinenumberEnd: 910
    functionName: EccPoint_compute_public_key
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - EccPoint_mult
    - regularize_k
    - EccPoint_isZero
    linkageType: ''
    returnType: uECC_word_t
    signature: "EccPoint_compute_public_key(uECC_word_t *result,\n                                               uECC_word_t
      *private,\n                                               uECC_Curve curve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bytes
    - num_bytes
    - native
    argTypes:
    - uint8_t*
    - int
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 921
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 921
    functionName: uECC_vli_nativeToBytes
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_vli_nativeToBytes(uint8_t *bytes,\n                                         int
      num_bytes,\n                                         const uint8_t *native)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_nativeToBytes
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - native
    - bytes
    - num_bytes
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    constantsTouched: []
    func_position:
      end: 927
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 927
    functionName: uECC_vli_bytesToNative
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 1
    functionsReached:
    - uECC_vli_nativeToBytes
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_vli_bytesToNative(uint8_t *native,\n                                         const
      uint8_t *bytes,\n                                         int num_bytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bytes
    - num_bytes
    - native
    argTypes:
    - uint8_t*
    - int
    - uECC_word_t*
    constantsTouched: []
    func_position:
      end: 939
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 939
    functionName: uECC_vli_nativeToBytes
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_vli_nativeToBytes(uint8_t *bytes,\n                                         int
      num_bytes,\n                                         const uECC_word_t *native)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_clear
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - native
    - bytes
    - num_bytes
    argTypes:
    - uECC_word_t*
    - uint8_t*
    - int
    constantsTouched: []
    func_position:
      end: 951
      start: 941
    functionDepth: 1
    functionLinenumber: 941
    functionLinenumberEnd: 951
    functionName: uECC_vli_bytesToNative
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 1
    functionsReached:
    - uECC_vli_clear
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_vli_bytesToNative(uECC_word_t *native,\n                                         const
      uint8_t *bytes,\n                                         int num_bytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_numBits
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:962,1
    - Dst: g_rng_function
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:969,1
    - Dst: uECC_vli_isZero
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:973,1
    - Dst: uECC_vli_cmp
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:974,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - random
    - top
    - num_words
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - wordcount_t
    constantsTouched: []
    func_position:
      end: 979
      start: 957
    functionDepth: 2
    functionLinenumber: 957
    functionLinenumberEnd: 979
    functionName: uECC_generate_random_int
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 2
    functionsReached:
    - uECC_vli_numBits
    - uECC_vli_cmp
    - uECC_vli_isZero
    - g_rng_function
    linkageType: ''
    returnType: uECC_VLI_API
    signature: "uECC_generate_random_int(uECC_word_t *random,\n                                          const
      uECC_word_t *top,\n                                          wordcount_t num_words)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_generate_random_int
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:989,1
    - Dst: BITS_TO_WORDS
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:989,1
    - Dst: EccPoint_compute_public_key
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:993,1
    - Dst: uECC_vli_nativeToBytes
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:994,1
    - Dst: BITS_TO_BYTES
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:994,1
    - Dst: uECC_vli_nativeToBytes
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:995,1
    - Dst: uECC_vli_nativeToBytes
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:996,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - public_key
    - private_key
    - curve
    argTypes:
    - uint8_t*
    - uint8_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1002
      start: 981
    functionDepth: 8
    functionLinenumber: 981
    functionLinenumberEnd: 1002
    functionName: uECC_make_key
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 1
    functionsReached:
    - uECC_generate_random_int
    - uECC_vli_nativeToBytes
    - BITS_TO_WORDS
    - BITS_TO_BYTES
    - EccPoint_compute_public_key
    linkageType: ''
    returnType: int
    signature: "uECC_make_key(uint8_t *public_key,\n                  uint8_t *private_key,\n
      \                 uECC_Curve curve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_bytesToNative
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1017,1
    - Dst: BITS_TO_BYTES
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1017,1
    - Dst: uECC_vli_bytesToNative
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1018,1
    - Dst: uECC_vli_bytesToNative
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1019,1
    - Dst: regularize_k
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1023,1
    - Dst: uECC_generate_random_int
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1028,1
    - Dst: EccPoint_mult
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1034,1
    - Dst: uECC_vli_nativeToBytes
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1035,1
    - Dst: EccPoint_isZero
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1036,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - public_key
    - private_key
    - secret
    - curve
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1037
      start: 1004
    functionDepth: 7
    functionLinenumber: 1004
    functionLinenumberEnd: 1037
    functionName: uECC_shared_secret
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 1
    functionsReached:
    - uECC_generate_random_int
    - EccPoint_mult
    - uECC_vli_nativeToBytes
    - regularize_k
    - uECC_vli_bytesToNative
    - BITS_TO_BYTES
    - EccPoint_isZero
    linkageType: ''
    returnType: int
    signature: "uECC_shared_secret(const uint8_t *public_key,\n                       const
      uint8_t *private_key,\n                       uint8_t *secret,\n                       uECC_Curve
      curve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - public_key
    - compressed
    - curve
    argTypes:
    - uint8_t*
    - uint8_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1046
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1046
    functionName: uECC_compress
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: uECC_compress(const uint8_t *public_key, uint8_t *compressed, uECC_Curve
      curve)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_bytesToNative
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1051,1
    - Dst: uECC_Curve::x_side
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1052,1
    - Dst: uECC_Curve::mod_sqrt
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1053,1
    - Dst: uECC_vli_sub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1056,1
    - Dst: uECC_vli_nativeToBytes
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1059,1
    - Dst: uECC_vli_nativeToBytes
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1060,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - compressed
    - public_key
    - curve
    argTypes:
    - uint8_t*
    - uint8_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1061
      start: 1048
    functionDepth: 2
    functionLinenumber: 1048
    functionLinenumberEnd: 1061
    functionName: uECC_decompress
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_sub
    - uECC_Curve::mod_sqrt
    - uECC_vli_nativeToBytes
    - uECC_vli_bytesToNative
    - uECC_Curve::x_side
    linkageType: ''
    returnType: void
    signature: uECC_decompress(const uint8_t *compressed, uint8_t *public_key, uECC_Curve
      curve)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EccPoint_isZero
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1070,1
    - Dst: uECC_vli_cmp_unsafe
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1075,1
    - Dst: uECC_vli_cmp_unsafe
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1076,1
    - Dst: uECC_vli_modSquare_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1080,1
    - Dst: uECC_Curve::x_side
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1081,1
    - Dst: uECC_vli_equal
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1084,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - point
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1085
      start: 1064
    functionDepth: 4
    functionLinenumber: 1064
    functionLinenumberEnd: 1085
    functionName: uECC_valid_point
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 1
    functionsReached:
    - uECC_vli_cmp_unsafe
    - uECC_vli_modSquare_fast
    - uECC_vli_equal
    - uECC_Curve::x_side
    - EccPoint_isZero
    linkageType: ''
    returnType: int
    signature: uECC_valid_point(const uECC_word_t *point, uECC_Curve curve)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_bytesToNative
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1090,1
    - Dst: uECC_vli_bytesToNative
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1091,1
    - Dst: uECC_valid_point
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - public_key
    - curve
    argTypes:
    - uint8_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1094
      start: 1087
    functionDepth: 5
    functionLinenumber: 1087
    functionLinenumberEnd: 1094
    functionName: uECC_valid_public_key
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 1
    functionsReached:
    - uECC_vli_bytesToNative
    - uECC_valid_point
    linkageType: ''
    returnType: int
    signature: uECC_valid_public_key(const uint8_t *public_key, uECC_Curve curve)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_bytesToNative
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1100,1
    - Dst: BITS_TO_BYTES
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1100,1
    - Dst: uECC_vli_isZero
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1103,1
    - Dst: BITS_TO_WORDS
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1103,1
    - Dst: uECC_vli_cmp
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1107,1
    - Dst: BITS_TO_WORDS
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1107,1
    - Dst: EccPoint_compute_public_key
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1112,1
    - Dst: uECC_vli_nativeToBytes
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1116,1
    - Dst: uECC_vli_nativeToBytes
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - private_key
    - public_key
    - curve
    argTypes:
    - uint8_t*
    - uint8_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1120
      start: 1096
    functionDepth: 8
    functionLinenumber: 1096
    functionLinenumberEnd: 1120
    functionName: uECC_compute_public_key
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_isZero
    - uECC_vli_nativeToBytes
    - uECC_vli_bytesToNative
    - BITS_TO_WORDS
    - BITS_TO_BYTES
    - uECC_vli_cmp
    - EccPoint_compute_public_key
    linkageType: ''
    returnType: int
    signature: uECC_compute_public_key(const uint8_t *private_key, uint8_t *public_key,
      uECC_Curve curve)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_vli_clear
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1134,1
    - Dst: uECC_vli_bytesToNative
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1135,1
    - Dst: uECC_vli_cmp_unsafe
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1149,1
    - Dst: uECC_vli_sub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - native
    - bits
    - bits_size
    - curve
    argTypes:
    - uECC_word_t*
    - uint8_t*
    - unsigned
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1152
      start: 1125
    functionDepth: 2
    functionLinenumber: 1125
    functionLinenumberEnd: 1152
    functionName: bits2int
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_sub
    - uECC_vli_clear
    - uECC_vli_bytesToNative
    - uECC_vli_cmp_unsafe
    linkageType: ''
    returnType: void
    signature: "bits2int(uECC_word_t *native,\n                     const uint8_t
      *bits,\n                     unsigned bits_size,\n                     uECC_Curve
      curve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_WORDS
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1166,1
    - Dst: uECC_vli_isZero
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1170,1
    - Dst: uECC_vli_cmp
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1170,1
    - Dst: regularize_k
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1174,1
    - Dst: EccPoint_mult
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1175,1
    - Dst: uECC_vli_isZero
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1176,1
    - Dst: uECC_vli_clear
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1183,1
    - Dst: uECC_generate_random_int
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1185,1
    - Dst: uECC_vli_modMult
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1191,1
    - Dst: uECC_vli_modInv
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1192,1
    - Dst: uECC_vli_modMult
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1193,1
    - Dst: uECC_vli_nativeToBytes
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1195,1
    - Dst: uECC_vli_bytesToNative
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1197,1
    - Dst: BITS_TO_BYTES
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1197,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1199,1
    - Dst: uECC_vli_modMult
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1200,1
    - Dst: bits2int
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1202,1
    - Dst: uECC_vli_modAdd
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1203,1
    - Dst: uECC_vli_modMult
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1204,1
    - Dst: uECC_vli_numBits
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1205,1
    - Dst: uECC_vli_nativeToBytes
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1208,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 6
    argNames:
    - private_key
    - message_hash
    - hash_size
    - k
    - signature
    - curve
    argTypes:
    - uint8_t*
    - uint8_t*
    - unsigned
    - uECC_word_t*
    - uint8_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1210
      start: 1154
    functionDepth: 7
    functionLinenumber: 1154
    functionLinenumberEnd: 1210
    functionName: uECC_sign_with_k
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_generate_random_int
    - uECC_vli_set
    - bits2int
    - uECC_vli_isZero
    - uECC_vli_modInv
    - EccPoint_mult
    - uECC_vli_clear
    - regularize_k
    - uECC_vli_nativeToBytes
    - BITS_TO_WORDS
    - uECC_vli_bytesToNative
    - BITS_TO_BYTES
    - uECC_vli_modAdd
    - uECC_vli_numBits
    - uECC_vli_cmp
    - uECC_vli_modMult
    linkageType: ''
    returnType: int
    signature: "uECC_sign_with_k(const uint8_t *private_key,\n                            const
      uint8_t *message_hash,\n                            unsigned hash_size,\n                            uECC_word_t
      *k,\n                            uint8_t *signature,\n                            uECC_Curve
      curve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_generate_random_int
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1221,1
    - Dst: BITS_TO_WORDS
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1221,1
    - Dst: uECC_sign_with_k
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - private_key
    - message_hash
    - hash_size
    - signature
    - curve
    argTypes:
    - uint8_t*
    - uint8_t*
    - unsigned
    - uint8_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1230
      start: 1212
    functionDepth: 8
    functionLinenumber: 1212
    functionLinenumberEnd: 1230
    functionName: uECC_sign
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 1
    functionsReached:
    - uECC_generate_random_int
    - uECC_sign_with_k
    - BITS_TO_WORDS
    linkageType: ''
    returnType: int
    signature: "uECC_sign(const uint8_t *private_key,\n              const uint8_t
      *message_hash,\n              unsigned hash_size,\n              uint8_t *signature,\n
      \             uECC_Curve curve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_HashContext*::init_hash
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1242,1
    - Dst: uECC_HashContext*::update_hash
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - hash_context
    - K
    argTypes:
    - uECC_HashContext*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1244
      start: 1234
    functionDepth: 0
    functionLinenumber: 1234
    functionLinenumberEnd: 1244
    functionName: HMAC_init
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_HashContext*::update_hash
    - uECC_HashContext*::init_hash
    linkageType: ''
    returnType: void
    signature: HMAC_init(uECC_HashContext *hash_context, const uint8_t *K)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_HashContext*::update_hash
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hash_context
    - message
    - message_size
    argTypes:
    - uECC_HashContext*
    - uint8_t*
    - unsigned
    constantsTouched: []
    func_position:
      end: 1250
      start: 1246
    functionDepth: 0
    functionLinenumber: 1246
    functionLinenumberEnd: 1250
    functionName: HMAC_update
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_HashContext*::update_hash
    linkageType: ''
    returnType: void
    signature: "HMAC_update(uECC_HashContext *hash_context,\n                        const
      uint8_t *message,\n                        unsigned message_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_HashContext*::finish_hash
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1260,1
    - Dst: uECC_HashContext*::init_hash
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1262,1
    - Dst: uECC_HashContext*::update_hash
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1263,1
    - Dst: uECC_HashContext*::update_hash
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1264,1
    - Dst: uECC_HashContext*::finish_hash
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - hash_context
    - K
    - result
    argTypes:
    - uECC_HashContext*
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1266
      start: 1252
    functionDepth: 0
    functionLinenumber: 1252
    functionLinenumberEnd: 1266
    functionName: HMAC_finish
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_HashContext*::finish_hash
    - uECC_HashContext*::update_hash
    - uECC_HashContext*::init_hash
    linkageType: ''
    returnType: void
    signature: HMAC_finish(uECC_HashContext *hash_context, const uint8_t *K, uint8_t
      *result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_init
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1270,1
    - Dst: HMAC_update
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1271,1
    - Dst: HMAC_finish
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hash_context
    - K
    - V
    argTypes:
    - uECC_HashContext*
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 1273
      start: 1269
    functionDepth: 1
    functionLinenumber: 1269
    functionLinenumberEnd: 1273
    functionName: update_V
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - HMAC_finish
    - HMAC_init
    - HMAC_update
    linkageType: ''
    returnType: void
    signature: update_V(uECC_HashContext *hash_context, uint8_t *K, uint8_t *V)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_WORDS
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1290,1
    - Dst: HMAC_init
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1300,1
    - Dst: HMAC_update
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1302,1
    - Dst: HMAC_update
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1303,1
    - Dst: HMAC_update
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1304,1
    - Dst: HMAC_finish
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1305,1
    - Dst: update_V
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1307,1
    - Dst: HMAC_init
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1310,1
    - Dst: HMAC_update
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1312,1
    - Dst: HMAC_update
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1313,1
    - Dst: HMAC_update
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1314,1
    - Dst: HMAC_finish
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1315,1
    - Dst: update_V
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1317,1
    - Dst: update_V
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1324,1
    - Dst: uECC_sign_with_k
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1339,1
    - Dst: HMAC_init
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1344,1
    - Dst: HMAC_update
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1346,1
    - Dst: HMAC_finish
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1347,1
    - Dst: update_V
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1349,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 6
    argNames:
    - private_key
    - message_hash
    - hash_size
    - hash_context
    - signature
    - curve
    argTypes:
    - uint8_t*
    - uint8_t*
    - unsigned
    - uECC_HashContext*
    - uint8_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1352
      start: 1281
    functionDepth: 8
    functionLinenumber: 1281
    functionLinenumberEnd: 1352
    functionName: uECC_sign_deterministic
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - update_V
    - uECC_sign_with_k
    - HMAC_update
    - BITS_TO_WORDS
    - HMAC_finish
    - HMAC_init
    linkageType: ''
    returnType: int
    signature: "uECC_sign_deterministic(const uint8_t *private_key,\n                            const
      uint8_t *message_hash,\n                            unsigned hash_size,\n                            uECC_HashContext
      *hash_context,\n                            uint8_t *signature,\n                            uECC_Curve
      curve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - bitcount_t
    - bitcount_t
    constantsTouched: []
    func_position:
      end: 1356
      start: 1354
    functionDepth: 0
    functionLinenumber: 1354
    functionLinenumberEnd: 1356
    functionName: smax
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bitcount_t
    signature: smax(bitcount_t a, bitcount_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_WORDS
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1378,1
    - Dst: uECC_vli_bytesToNative
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1384,1
    - Dst: uECC_vli_bytesToNative
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1385,1
    - Dst: uECC_vli_bytesToNative
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1387,1
    - Dst: uECC_vli_bytesToNative
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1388,1
    - Dst: uECC_vli_isZero
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1391,1
    - Dst: uECC_vli_isZero
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1391,1
    - Dst: uECC_vli_cmp_unsafe
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1396,1
    - Dst: uECC_vli_cmp_unsafe
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1397,1
    - Dst: uECC_vli_modInv
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1402,1
    - Dst: bits2int
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1404,1
    - Dst: uECC_vli_modMult
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1405,1
    - Dst: uECC_vli_modMult
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1406,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1409,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1410,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1411,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1412,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1413,1
    - Dst: XYcZ_add
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1414,1
    - Dst: uECC_vli_modInv
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1415,1
    - Dst: apply_z
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1416,1
    - Dst: smax
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1423,1
    - Dst: uECC_vli_numBits
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1423,1
    - Dst: uECC_vli_numBits
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1424,1
    - Dst: uECC_vli_testBit
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1426,1
    - Dst: uECC_vli_testBit
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1427,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1428,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1429,1
    - Dst: uECC_vli_clear
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1430,1
    - Dst: uECC_Curve::double_jacobian
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1435,1
    - Dst: uECC_vli_testBit
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1437,1
    - Dst: uECC_vli_testBit
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1437,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1440,1
    - Dst: uECC_vli_set
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1441,1
    - Dst: apply_z
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1442,1
    - Dst: uECC_vli_modSub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1443,1
    - Dst: XYcZ_add
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1444,1
    - Dst: uECC_vli_modMult_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1445,1
    - Dst: uECC_vli_modInv
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1449,1
    - Dst: apply_z
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1450,1
    - Dst: uECC_vli_cmp_unsafe
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1453,1
    - Dst: uECC_vli_sub
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1454,1
    - Dst: uECC_vli_equal
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1458,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 56
    argCount: 5
    argNames:
    - public_key
    - message_hash
    - hash_size
    - signature
    - curve
    argTypes:
    - uint8_t*
    - uint8_t*
    - unsigned
    - uint8_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1459
      start: 1358
    functionDepth: 5
    functionLinenumber: 1358
    functionLinenumberEnd: 1459
    functionName: uECC_verify
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 2
    functionsReached:
    - uECC_vli_sub
    - XYcZ_add
    - uECC_vli_testBit
    - uECC_vli_cmp_unsafe
    - uECC_vli_equal
    - smax
    - uECC_vli_set
    - uECC_vli_isZero
    - uECC_vli_numBits
    - apply_z
    - uECC_vli_modMult
    - uECC_vli_modInv
    - uECC_Curve::double_jacobian
    - uECC_vli_modSub
    - bits2int
    - uECC_vli_clear
    - uECC_vli_bytesToNative
    - BITS_TO_WORDS
    - uECC_vli_modMult_fast
    linkageType: ''
    returnType: int
    signature: "uECC_verify(const uint8_t *public_key,\n                const uint8_t
      *message_hash,\n                unsigned hash_size,\n                const uint8_t
      *signature,\n                uECC_Curve curve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1465
      start: 1463
    functionDepth: 0
    functionLinenumber: 1463
    functionLinenumberEnd: 1465
    functionName: uECC_curve_num_words
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: uECC_curve_num_words(uECC_Curve curve)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1469
      start: 1467
    functionDepth: 0
    functionLinenumber: 1467
    functionLinenumberEnd: 1469
    functionName: uECC_curve_num_bytes
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: uECC_curve_num_bytes(uECC_Curve curve)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1473
      start: 1471
    functionDepth: 0
    functionLinenumber: 1471
    functionLinenumberEnd: 1473
    functionName: uECC_curve_num_bits
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: uECC_curve_num_bits(uECC_Curve curve)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_WORDS
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1477
      start: 1475
    functionDepth: 0
    functionLinenumber: 1475
    functionLinenumberEnd: 1477
    functionName: uECC_curve_num_n_words
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - BITS_TO_WORDS
    linkageType: ''
    returnType: unsigned
    signature: uECC_curve_num_n_words(uECC_Curve curve)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_BYTES
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1481
      start: 1479
    functionDepth: 0
    functionLinenumber: 1479
    functionLinenumberEnd: 1481
    functionName: uECC_curve_num_n_bytes
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 1
    functionsReached:
    - BITS_TO_BYTES
    linkageType: ''
    returnType: unsigned
    signature: uECC_curve_num_n_bytes(uECC_Curve curve)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1485
      start: 1483
    functionDepth: 0
    functionLinenumber: 1483
    functionLinenumberEnd: 1485
    functionName: uECC_curve_num_n_bits
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: uECC_curve_num_n_bits(uECC_Curve curve)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1489
      start: 1487
    functionDepth: 0
    functionLinenumber: 1487
    functionLinenumberEnd: 1489
    functionName: uECC_curve_p
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uECC_word_t
    signature: '*uECC_curve_p(uECC_Curve curve)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1493
      start: 1491
    functionDepth: 0
    functionLinenumber: 1491
    functionLinenumberEnd: 1493
    functionName: uECC_curve_n
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uECC_word_t
    signature: '*uECC_curve_n(uECC_Curve curve)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1497
      start: 1495
    functionDepth: 0
    functionLinenumber: 1495
    functionLinenumberEnd: 1497
    functionName: uECC_curve_G
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uECC_word_t
    signature: '*uECC_curve_G(uECC_Curve curve)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1501
      start: 1499
    functionDepth: 0
    functionLinenumber: 1499
    functionLinenumberEnd: 1501
    functionName: uECC_curve_b
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uECC_word_t
    signature: '*uECC_curve_b(uECC_Curve curve)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_Curve::mod_sqrt
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1506
      start: 1504
    functionDepth: 0
    functionLinenumber: 1504
    functionLinenumberEnd: 1506
    functionName: uECC_vli_mod_sqrt
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_Curve::mod_sqrt
    linkageType: ''
    returnType: void
    signature: uECC_vli_mod_sqrt(uECC_word_t *a, uECC_Curve curve)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_Curve::mmod_fast
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1511,1
    - Dst: uECC_vli_mmod
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - product
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1515
      start: 1509
    functionDepth: 3
    functionLinenumber: 1509
    functionLinenumberEnd: 1515
    functionName: uECC_vli_mmod_fast
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 0
    functionsReached:
    - uECC_vli_mmod
    - uECC_Curve::mmod_fast
    linkageType: ''
    returnType: void
    signature: uECC_vli_mmod_fast(uECC_word_t *result, uECC_word_t *product, uECC_Curve
      curve)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: regularize_k
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1524,1
    - Dst: EccPoint_mult
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - result
    - point
    - scalar
    - curve
    argTypes:
    - uECC_word_t*
    - uECC_word_t*
    - uECC_word_t*
    - uECC_Curve
    constantsTouched: []
    func_position:
      end: 1527
      start: 1517
    functionDepth: 7
    functionLinenumber: 1517
    functionLinenumberEnd: 1527
    functionName: uECC_point_mult
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
    functionUses: 8
    functionsReached:
    - EccPoint_mult
    - regularize_k
    linkageType: ''
    returnType: void
    signature: "uECC_point_mult(uECC_word_t *result,\n                     const uECC_word_t
      *point,\n                     const uECC_word_t *scalar,\n                     uECC_Curve
      curve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:9,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:11,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:13,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - str
    - vli
    - size
    argTypes:
    - char*
    - uint8_t*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 14
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 14
    functionName: vli_print
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: vli_print(char *str, uint8_t *vli, unsigned int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_secp160r1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:28,1
    - Dst: uECC_secp192r1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:31,1
    - Dst: uECC_secp224r1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:34,1
    - Dst: uECC_secp256r1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:37,1
    - Dst: uECC_secp256k1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:40,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:43,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:46,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:47,1
    - Dst: memset
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:49,1
    - Dst: memset
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:50,1
    - Dst: uECC_make_key
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:52,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:53,1
    - Dst: uECC_compute_public_key
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:57,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:58,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:61,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:62,1
    - Dst: vli_print
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:63,1
    - Dst: vli_print
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:64,1
    - Dst: vli_print
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:65,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:69,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:70,1
    - Dst: memset
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:72,1
    - Dst: uECC_compute_public_key
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:73,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:75,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c:77,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 16
    functionDepth: 9
    functionLinenumber: 16
    functionLinenumberEnd: 81
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c
    functionUses: 0
    functionsReached:
    - uECC_secp192r1
    - uECC_secp256k1
    - memcmp
    - vli_print
    - uECC_secp224r1
    - memset
    - uECC_compute_public_key
    - printf
    - fflush
    - uECC_secp256r1
    - uECC_secp160r1
    - uECC_make_key
    linkageType: ''
    returnType: int
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:10,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - vli
    - size
    argTypes:
    - uint8_t*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 12
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 12
    functionName: vli_print
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: vli_print(uint8_t *vli, unsigned int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_secp160r1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:26,1
    - Dst: uECC_secp192r1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:29,1
    - Dst: uECC_secp224r1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:32,1
    - Dst: uECC_secp256r1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:35,1
    - Dst: uECC_secp256k1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:38,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:41,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:45,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:46,1
    - Dst: uECC_make_key
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:48,1
    - Dst: uECC_make_key
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:49,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:50,1
    - Dst: uECC_shared_secret
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:54,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:55,1
    - Dst: uECC_shared_secret
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:59,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:60,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:64,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:65,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:66,1
    - Dst: vli_print
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:67,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:68,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:69,1
    - Dst: vli_print
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:70,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:71,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:72,1
    - Dst: vli_print
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:73,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:74,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:75,1
    - Dst: vli_print
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:76,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:77,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:78,1
    - Dst: vli_print
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:79,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:80,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:81,1
    - Dst: vli_print
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:82,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:83,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c:86,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 14
    functionDepth: 9
    functionLinenumber: 14
    functionLinenumberEnd: 90
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c
    functionUses: 0
    functionsReached:
    - uECC_secp192r1
    - uECC_secp256k1
    - memcmp
    - vli_print
    - uECC_secp224r1
    - printf
    - fflush
    - uECC_shared_secret
    - uECC_secp256r1
    - uECC_secp160r1
    - uECC_make_key
    linkageType: ''
    returnType: int
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_secp160r1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdsa.c:18,1
    - Dst: uECC_secp192r1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdsa.c:21,1
    - Dst: uECC_secp224r1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdsa.c:24,1
    - Dst: uECC_secp256r1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdsa.c:27,1
    - Dst: uECC_secp256k1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdsa.c:30,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdsa.c:33,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdsa.c:36,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdsa.c:37,1
    - Dst: uECC_make_key
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdsa.c:39,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdsa.c:40,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdsa.c:43,1
    - Dst: uECC_sign
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdsa.c:45,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdsa.c:46,1
    - Dst: uECC_verify
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdsa.c:50,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdsa.c:51,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdsa.c:55,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 8
    functionDepth: 9
    functionLinenumber: 8
    functionLinenumberEnd: 59
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdsa.c
    functionUses: 0
    functionsReached:
    - uECC_secp192r1
    - uECC_sign
    - uECC_secp256k1
    - uECC_secp224r1
    - uECC_verify
    - printf
    - memcpy
    - fflush
    - uECC_secp256r1
    - uECC_secp160r1
    - uECC_make_key
    linkageType: ''
    returnType: int
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c:13,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c:15,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - str
    - vli
    - size
    argTypes:
    - char*
    - uint8_t*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 18
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 18
    functionName: vli_print
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: vli_print(char *str, uint8_t *vli, unsigned int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uECC_secp160r1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c:32,1
    - Dst: uECC_secp192r1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c:35,1
    - Dst: uECC_secp224r1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c:38,1
    - Dst: uECC_secp256r1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c:41,1
    - Dst: uECC_secp256k1
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c:44,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c:47,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c:52,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c:53,1
    - Dst: memset
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c:55,1
    - Dst: memset
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c:56,1
    - Dst: uECC_make_key
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c:59,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c:60,1
    - Dst: uECC_compress
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c:65,1
    - Dst: uECC_decompress
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c:66,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c:68,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c:69,1
    - Dst: vli_print
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c:70,1
    - Dst: vli_print
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c:71,1
    - Dst: vli_print
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c:72,1
    - Dst: printf
      Src: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c:75,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 20
    functionDepth: 9
    functionLinenumber: 20
    functionLinenumberEnd: 79
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c
    functionUses: 0
    functionsReached:
    - uECC_secp192r1
    - uECC_secp256k1
    - memcmp
    - vli_print
    - uECC_secp224r1
    - memset
    - uECC_compress
    - printf
    - fflush
    - uECC_secp256r1
    - uECC_secp160r1
    - uECC_decompress
    - uECC_make_key
    linkageType: ''
    returnType: int
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:46,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - netif
    - p
    argTypes:
    - struct netif*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: lwip_tx_func
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: err_t
    signature: lwip_tx_func(struct netif *netif, struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_create_ip6_linklocal_address
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 76
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 76
    functionName: testif_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c
    functionUses: 0
    functionsReached:
    - netif_create_ip6_linklocal_address
    linkageType: ''
    returnType: err_t
    signature: testif_init(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:83,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:84,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:85,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:87,1
    - Dst: struct netif*::input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:90,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - netif
    - data
    - len
    argTypes:
    - struct netif*
    - u8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 94
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 94
    functionName: input_pkt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c
    functionUses: 0
    functionsReached:
    - struct netif*::input
    - pbuf_alloc
    - MEMCPY
    - pbuf_free
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: input_pkt(struct netif *netif, const u8_t *data, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:105,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:107,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:108,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:109,1
    - Dst: netif_add
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:111,1
    - Dst: netif_set_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:112,1
    - Dst: nd6_tmr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:115,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:121,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:122,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:124,1
    - Dst: fopen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:125,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:126,1
    - Dst: fread
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:127,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:128,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:129,1
    - Dst: fread
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:131,1
    - Dst: input_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 136
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 136
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c
    functionUses: 0
    functionsReached:
    - IP4_ADDR
    - netif_add
    - LWIP_ASSERT
    - fread
    - fclose
    - printf
    - input_pkt
    - nd6_tmr
    - fflush
    - fopen
    - lwip_init
    - netif_set_up
    linkageType: ''
    returnType: int
    signature: main(int argc, char** argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/lwip_unittests.c:18,1
    - Dst: tcase_create
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/lwip_unittests.c:21,1
    - Dst: tcase_add_checked_fixture
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/lwip_unittests.c:23,1
    - Dst: tcase_add_named_test
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/lwip_unittests.c:25,1
    - Dst: suite_add_tcase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/lwip_unittests.c:26,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - name
    - tests
    - num_tests
    - setup
    - teardown
    argTypes:
    - char*
    - testfunc*
    - size_t
    - SFun
    - SFun
    constantsTouched: []
    func_position:
      end: 29
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 29
    functionName: create_suite
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/lwip_unittests.c
    functionUses: 0
    functionsReached:
    - tcase_add_checked_fixture
    - tcase_add_named_test
    - tcase_create
    - suite_create
    - suite_add_tcase
    linkageType: ''
    returnType: Suite
    signature: '* create_suite(const char* name, testfunc *tests, size_t num_tests,
      SFun setup, SFun teardown)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: setdebug
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: setdebug(int a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dhcp_fine_tmr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:135,1
    - Dst: dhcp_coarse_tmr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 140
    functionName: tick_lwip
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c
    functionUses: 0
    functionsReached:
    - dhcp_fine_tmr
    - dhcp_coarse_tmr
    linkageType: ''
    returnType: void
    signature: tick_lwip(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:145,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:146,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:151,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:153,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:155,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:158,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:160,1
    - Dst: struct netif*::input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - netif
    - data
    - len
    argTypes:
    - struct netif*
    - u8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 164
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 164
    functionName: send_pkt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c
    functionUses: 0
    functionsReached:
    - struct netif*::input
    - pbuf_alloc
    - printf
    - memcpy
    - fail_unless
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: send_pkt(struct netif *netif, const u8_t *data, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 186
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 186
    functionName: testif_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: err_t
    signature: testif_init(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: dhcp_setup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: dhcp_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: dhcp_teardown
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: dhcp_teardown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:201,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:206,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:207,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:210,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - p
    - pos
    - mem
    - len
    argTypes:
    - struct pbuf*
    - u32_t
    - u8_t*
    - u32_t
    constantsTouched: []
    func_position:
      end: 211
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 211
    functionName: check_pkt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c
    functionUses: 0
    functionsReached:
    - fail_unless
    - memcmp
    - fail_if
    linkageType: ''
    returnType: void
    signature: check_pkt(struct pbuf *p, u32_t pos, const u8_t *mem, u32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:219,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:224,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:225,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:230,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - p
    - startpos
    - mem
    - len
    argTypes:
    - struct pbuf*
    - u32_t
    - u8_t*
    - u32_t
    constantsTouched: []
    func_position:
      end: 236
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 236
    functionName: check_pkt_fuzzy
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c
    functionUses: 0
    functionsReached:
    - fail_unless
    - memcmp
    - fail_if
    linkageType: ''
    returnType: void
    signature: check_pkt_fuzzy(struct pbuf *p, u32_t startpos, const u8_t *mem, u32_t
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:240,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:246,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:250,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:256,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:269,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:270,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:272,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:274,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:276,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:278,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:280,1
    - Dst: check_pkt_fuzzy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:285,1
    - Dst: check_pkt_fuzzy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:290,1
    - Dst: check_pkt_fuzzy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:291,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:301,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:302,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:304,1
    - Dst: fail
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:308,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:321,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:322,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:323,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:325,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:327,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:329,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:331,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:333,1
    - Dst: check_pkt_fuzzy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:335,1
    - Dst: check_pkt_fuzzy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:337,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:350,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:351,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:353,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:355,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:357,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:359,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:361,1
    - Dst: check_pkt_fuzzy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:366,1
    - Dst: check_pkt_fuzzy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:371,1
    - Dst: check_pkt_fuzzy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:372,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:382,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:383,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:385,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:397,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:398,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:400,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:402,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:404,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:406,1
    - Dst: check_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:408,1
    - Dst: check_pkt_fuzzy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:411,1
    - Dst: fail
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:415,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 111
    argCount: 2
    argNames:
    - netif
    - p
    argTypes:
    - struct netif*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 425
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 425
    functionName: lwip_tx_func
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c
    functionUses: 0
    functionsReached:
    - fail
    - check_pkt_fuzzy
    - printf
    - fail_unless
    - check_pkt
    linkageType: ''
    returnType: err_t
    signature: lwip_tx_func(struct netif *netif, struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:438,1
    - Dst: setdebug
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:441,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:443,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:444,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:445,1
    - Dst: netif_add
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:447,1
    - Dst: netif_set_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:448,1
    - Dst: dhcp_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:450,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:452,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:453,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:454,1
    - Dst: send_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:455,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:458,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:458,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:459,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:459,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:460,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:460,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:462,1
    - Dst: htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:463,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:463,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:464,1
    - Dst: send_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:465,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:467,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:468,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:469,1
    - Dst: send_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:470,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:472,1
    - Dst: htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:473,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:473,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:474,1
    - Dst: send_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:475,1
    - Dst: tick_lwip
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:478,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:480,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:483,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:483,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:486,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:487,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:488,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:489,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:489,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:490,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:490,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:491,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:491,1
    - Dst: netif_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 494
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 494
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c
    functionUses: 0
    functionsReached:
    - IP4_ADDR
    - memcmp
    - netif_dhcp_data
    - netif_add
    - fail_if
    - netif_is_up
    - setdebug
    - send_pkt
    - tick_lwip
    - netif_remove
    - htonl
    - memcpy
    - dhcp_start
    - LWIP_UNUSED_ARG
    - fail_unless
    - netif_set_up
    linkageType: ''
    returnType: void
    signature: START_TEST(test_dhcp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:507,1
    - Dst: setdebug
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:510,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:512,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:513,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:514,1
    - Dst: netif_add
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:516,1
    - Dst: netif_set_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:517,1
    - Dst: dhcp_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:519,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:521,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:522,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:523,1
    - Dst: send_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:524,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:527,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:527,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:528,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:528,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:529,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:529,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:531,1
    - Dst: htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:532,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:532,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:533,1
    - Dst: send_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:534,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:536,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:537,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:538,1
    - Dst: send_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:539,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:541,1
    - Dst: htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:542,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:542,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:543,1
    - Dst: send_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:544,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:546,1
    - Dst: send_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:551,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:553,1
    - Dst: netif_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 556
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 556
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c
    functionUses: 0
    functionsReached:
    - IP4_ADDR
    - memcmp
    - netif_dhcp_data
    - netif_add
    - fail_if
    - setdebug
    - send_pkt
    - netif_remove
    - htonl
    - memcpy
    - dhcp_start
    - LWIP_UNUSED_ARG
    - fail_unless
    - netif_set_up
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(test_dhcp_nak)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:725,1
    - Dst: setdebug
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:728,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:730,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:731,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:732,1
    - Dst: netif_add
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:734,1
    - Dst: netif_set_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:735,1
    - Dst: dhcp_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:737,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:739,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:742,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:742,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:743,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:743,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:744,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:744,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:746,1
    - Dst: htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:747,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:747,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:748,1
    - Dst: send_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:749,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:752,1
    - Dst: htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:753,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:753,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:754,1
    - Dst: send_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:755,1
    - Dst: tick_lwip
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:758,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:760,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:763,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:763,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:766,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:767,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:768,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:769,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:769,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:770,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:770,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:771,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:771,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:773,1
    - Dst: tick_lwip
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:776,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:779,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:779,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:780,1
    - Dst: send_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:784,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:786,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:787,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:787,1
    - Dst: htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:789,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:789,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:790,1
    - Dst: send_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:791,1
    - Dst: tick_lwip
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:794,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:797,1
    - Dst: netif_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:799,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 801
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 801
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c
    functionUses: 0
    functionsReached:
    - IP4_ADDR
    - memcmp
    - netif_dhcp_data
    - netif_add
    - fail_if
    - netif_is_up
    - setdebug
    - send_pkt
    - tick_lwip
    - netif_remove
    - htonl
    - memcpy
    - dhcp_start
    - LWIP_UNUSED_ARG
    - fail_unless
    - netif_set_up
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(test_dhcp_relayed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:863,1
    - Dst: setdebug
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:866,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:868,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:869,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:870,1
    - Dst: netif_add
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:872,1
    - Dst: netif_set_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:873,1
    - Dst: dhcp_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:875,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:877,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:878,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:879,1
    - Dst: send_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:880,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:883,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:883,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:884,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:884,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:885,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:885,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:887,1
    - Dst: htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:888,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:888,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:889,1
    - Dst: send_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:890,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:892,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:892,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:894,1
    - Dst: htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:895,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:895,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:896,1
    - Dst: send_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:897,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:900,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:900,1
    - Dst: netif_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 903
      start: 802
    functionDepth: 2
    functionLinenumber: 802
    functionLinenumberEnd: 903
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c
    functionUses: 0
    functionsReached:
    - IP4_ADDR
    - memcmp
    - netif_dhcp_data
    - netif_add
    - fail_if
    - setdebug
    - send_pkt
    - netif_remove
    - htonl
    - memcpy
    - dhcp_start
    - LWIP_UNUSED_ARG
    - fail_unless
    - netif_set_up
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(test_dhcp_nak_no_endmarker)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:959,1
    - Dst: setdebug
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:962,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:964,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:965,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:966,1
    - Dst: netif_add
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:968,1
    - Dst: netif_set_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:969,1
    - Dst: dhcp_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:971,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:973,1
    - Dst: htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:974,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:974,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:975,1
    - Dst: send_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:977,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:979,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:979,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:980,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:980,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:981,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:981,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:982,1
    - Dst: send_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:985,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:987,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:987,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:988,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:988,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:989,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:989,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:990,1
    - Dst: send_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:993,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:995,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:995,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:996,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:996,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:997,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:997,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:998,1
    - Dst: send_pkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:1001,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:1003,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:1003,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:1005,1
    - Dst: htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:1006,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:1006,1
    - Dst: netif_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:1008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 904
    functionDepth: 2
    functionLinenumber: 904
    functionLinenumberEnd: 1009
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c
    functionUses: 0
    functionsReached:
    - IP4_ADDR
    - memcmp
    - netif_dhcp_data
    - netif_add
    - fail_if
    - setdebug
    - send_pkt
    - netif_remove
    - htonl
    - memcpy
    - dhcp_start
    - LWIP_UNUSED_ARG
    - fail_unless
    - netif_set_up
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(test_dhcp_invalid_overload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:1017,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:1018,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:1019,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:1020,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:1021,1
    - Dst: create_suite
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1010
    functionDepth: 1
    functionLinenumber: 1010
    functionLinenumberEnd: 1024
    functionName: dhcp_suite
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c
    functionUses: 0
    functionsReached:
    - create_suite
    - TESTFUNC
    linkageType: ''
    returnType: END_TEST
    signature: '*

      dhcp_suite(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 15
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 15
    functionName: mem_setup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: mem_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: mem_teardown
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: mem_teardown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:34,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:37,1
    - Dst: mem_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:39,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:40,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:41,1
    - Dst: mem_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:44,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:45,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:46,1
    - Dst: mem_trim
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:49,1
    - Dst: mem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:51,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:52,1
    - Dst: mem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:54,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 56
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c
    functionUses: 0
    functionsReached:
    - mem_malloc
    - mem_free
    - mem_trim
    - LWIP_UNUSED_ARG
    - fail_unless
    linkageType: ''
    returnType: void
    signature: START_TEST(test_mem_one)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:70,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:71,1
    - Dst: mem_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:73,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:74,1
    - Dst: mem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:80,1
    - Dst: mem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:88,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:92,1
    - Dst: mem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:93,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 4
    argNames:
    - x
    - num
    - size
    - freestep
    argTypes:
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 94
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 94
    functionName: malloc_keep_x
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c
    functionUses: 0
    functionsReached:
    - mem_malloc
    - mem_free
    - memset
    - fail_unless
    - LWIP_ASSERT
    linkageType: ''
    returnType: END_TEST
    signature: malloc_keep_x(int x, int num, int size, int freestep)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:103,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:110,1
    - Dst: malloc_keep_x
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:111,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 116
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - fail_unless
    - malloc_keep_x
    linkageType: ''
    returnType: void
    signature: START_TEST(test_mem_random)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:124,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:125,1
    - Dst: create_suite
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: mem_suite
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c
    functionUses: 0
    functionsReached:
    - create_suite
    - TESTFUNC
    linkageType: ''
    returnType: END_TEST
    signature: '*

      mem_suite(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: pbuf_setup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pbuf_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: pbuf_teardown
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pbuf_teardown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:47,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:50,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:53,1
    - Dst: LWIP_MEM_ALIGN_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:53,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:54,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:55,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:57,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:58,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:59,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:62,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:63,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:64,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:66,1
    - Dst: pbuf_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:67,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:68,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:70,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:71,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:73,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 75
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c
    functionUses: 0
    functionsReached:
    - pbuf_cat
    - LWIP_MEM_ALIGN_SIZE
    - pbuf_copy
    - pbuf_alloc
    - pbuf_free
    - LWIP_UNUSED_ARG
    - fail_unless
    linkageType: ''
    returnType: void
    signature: START_TEST(test_pbuf_copy_zero_pbuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:81,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:83,1
    - Dst: pbuf_split_64k
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:84,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:85,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - pbuf_split_64k
    - pbuf_free
    - LWIP_UNUSED_ARG
    - fail_unless
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(test_pbuf_split_64k_on_small_pbufs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:95,1
    - Dst: rand
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:98,1
    - Dst: rand
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:101,1
    - Dst: rand
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:104,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:107,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:108,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:109,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:110,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:111,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:112,1
    - Dst: pbuf_take
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:113,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:114,1
    - Dst: pbuf_take
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:115,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:116,1
    - Dst: pbuf_take
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:117,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:118,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:120,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:121,1
    - Dst: pbuf_split_64k
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:123,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:124,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:125,1
    - Dst: pbuf_split_64k
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:126,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:127,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:128,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:130,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:131,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:132,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:134,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:136,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:138,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:140,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:141,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 143
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c
    functionUses: 0
    functionsReached:
    - pbuf_copy_partial
    - pbuf_take
    - pbuf_cat
    - pbuf_alloc
    - pbuf_split_64k
    - pbuf_free
    - LWIP_UNUSED_ARG
    - fail_unless
    - rand
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(test_pbuf_queueing_bigger_than_64k)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:156,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:158,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:160,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:161,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:162,1
    - Dst: pbuf_take_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:165,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:166,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:170,1
    - Dst: pbuf_take_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:175,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:176,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:179,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:183,1
    - Dst: pbuf_take_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:188,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:189,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 196
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 196
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - fail_if
    - memset
    - pbuf_take_at
    - LWIP_UNUSED_ARG
    - fail_unless
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(test_pbuf_take_at_edge)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:207,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:209,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:211,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:212,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:213,1
    - Dst: pbuf_put_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:216,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:219,1
    - Dst: pbuf_get_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:222,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 225
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 225
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - fail_if
    - pbuf_get_at
    - memset
    - pbuf_put_at
    - LWIP_UNUSED_ARG
    - fail_unless
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(test_pbuf_get_put_at_edge)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:236,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:239,1
    - Dst: pbuf_alloced_custom
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:240,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:241,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:242,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:243,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:243,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:244,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:244,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:245,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:245,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:247,1
    - Dst: pbuf_alloced_custom
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:248,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:249,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:250,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:251,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:251,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:252,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:252,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:254,1
    - Dst: pbuf_alloced_custom
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:255,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:256,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:257,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:258,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:258,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:261,1
    - Dst: pbuf_alloced_custom
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:262,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:263,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:266,1
    - Dst: pbuf_alloced_custom
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:267,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 269
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 269
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c
    functionUses: 0
    functionsReached:
    - memset
    - pbuf_header
    - LWIP_UNUSED_ARG
    - fail_unless
    - pbuf_alloced_custom
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(test_pbuf_alloced_custom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:277,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:280,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:281,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:283,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:284,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:286,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:287,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:298,1
    - Dst: pbuf_memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:298,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:299,1
    - Dst: pbuf_memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:299,1
    - Dst: pbuf_chain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:301,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:302,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:303,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:304,1
    - Dst: pbuf_memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:304,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:306,1
    - Dst: pbuf_dechain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:306,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:307,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:308,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:310,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:311,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:312,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:313,1
    - Dst: pbuf_get_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:313,1
    - Dst: pbuf_coalesce
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:315,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:316,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:317,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:318,1
    - Dst: pbuf_get_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:318,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:321,1
    - Dst: pbuf_strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:321,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:322,1
    - Dst: pbuf_strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:322,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:323,1
    - Dst: pbuf_strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:323,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 326
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 326
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c
    functionUses: 0
    functionsReached:
    - pbuf_cat
    - pbuf_alloc
    - pbuf_strstr
    - pbuf_get_at
    - memset
    - pbuf_coalesce
    - pbuf_dechain
    - pbuf_free
    - LWIP_UNUSED_ARG
    - fail_unless
    - pbuf_chain
    - pbuf_memcmp
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(test_pbuf_chain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:332,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:335,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:336,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 338
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 338
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - fail_unless
    - pbuf_free
    - pbuf_alloc
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(test_pbuf_alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:346,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:347,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:348,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:349,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:350,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:351,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:352,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:353,1
    - Dst: create_suite
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 356
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 356
    functionName: pbuf_suite
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c
    functionUses: 0
    functionsReached:
    - create_suite
    - TESTFUNC
    linkageType: ''
    returnType: END_TEST
    signature: '*

      pbuf_suite(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:19,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:20,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:21,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:23,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:24,1
    - Dst: IPH_VHL_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:28,1
    - Dst: IPH_TOS_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:29,1
    - Dst: IPH_LEN_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:30,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:30,1
    - Dst: IPH_ID_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:31,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:31,1
    - Dst: IPH_OFFSET_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:33,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:33,1
    - Dst: IPH_OFFSET_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:35,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:35,1
    - Dst: IPH_TTL_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:37,1
    - Dst: IPH_PROTO_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:38,1
    - Dst: IPH_CHKSUM_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:39,1
    - Dst: ip4_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:40,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:40,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:41,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:41,1
    - Dst: ip4_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:42,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:42,1
    - Dst: IPH_CHKSUM_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:43,1
    - Dst: inet_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:43,1
    - Dst: ip4_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:45,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:47,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 4
    argNames:
    - ip_id
    - start
    - len
    - last
    argTypes:
    - u16_t
    - u16_t
    - u16_t
    - int
    constantsTouched: []
    func_position:
      end: 51
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 51
    functionName: create_ip4_input_fragment
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c
    functionUses: 0
    functionsReached:
    - IPH_ID_SET
    - netif_ip4_addr
    - IPH_CHKSUM_SET
    - ip4_input
    - pbuf_alloc
    - IPH_TOS_SET
    - IPH_VHL_SET
    - ip4_addr_copy
    - lwip_htons
    - IPH_TTL_SET
    - IPH_OFFSET_SET
    - inet_chksum
    - IPH_LEN_SET
    - lwip_htonl
    - IPH_PROTO_SET
    - pbuf_free
    - fail_unless
    linkageType: ''
    returnType: void
    signature: create_ip4_input_fragment(u16_t ip_id, u16_t start, u16_t len, int
      last)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: ip4_setup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ip4_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: ip4_teardown
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c
    functionUses: 0
    functionsReached:
    - pbuf_free
    linkageType: ''
    returnType: void
    signature: ip4_teardown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:76,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:78,1
    - Dst: create_ip4_input_fragment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:80,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:81,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:82,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:83,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:84,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:85,1
    - Dst: create_ip4_input_fragment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:87,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:88,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:89,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:90,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:91,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:92,1
    - Dst: create_ip4_input_fragment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:94,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:95,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:96,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:97,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:98,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:99,1
    - Dst: create_ip4_input_fragment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:101,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:102,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:103,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:104,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:105,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:106,1
    - Dst: create_ip4_input_fragment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:108,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:109,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:110,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:111,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:112,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:113,1
    - Dst: create_ip4_input_fragment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:115,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:116,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:117,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:118,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:119,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:120,1
    - Dst: create_ip4_input_fragment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:122,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:123,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:124,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:125,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:126,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:127,1
    - Dst: create_ip4_input_fragment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:129,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:130,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:131,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:132,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:133,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:134,1
    - Dst: create_ip4_input_fragment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:136,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:137,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:138,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:139,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:140,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 142
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - fail_unless
    - create_ip4_input_fragment
    - memset
    linkageType: ''
    returnType: void
    signature: START_TEST(test_ip4_reass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:151,1
    - Dst: create_suite
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 154
    functionName: ip4_suite
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c
    functionUses: 0
    functionsReached:
    - create_suite
    - TESTFUNC
    linkageType: ''
    returnType: END_TEST
    signature: '*

      ip4_suite(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: udp_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.c:20,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.c:22,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 23
    functionName: udp_remove_all
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.c
    functionUses: 0
    functionsReached:
    - MEMP_STATS_GET
    - fail_unless
    - udp_remove
    linkageType: ''
    returnType: void
    signature: udp_remove_all(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: udp_remove_all
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: udp_setup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.c
    functionUses: 0
    functionsReached:
    - udp_remove_all
    linkageType: ''
    returnType: void
    signature: udp_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: udp_remove_all
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: udp_teardown
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.c
    functionUses: 0
    functionsReached:
    - udp_remove_all
    linkageType: ''
    returnType: void
    signature: udp_teardown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.c:45,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.c:47,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.c:47,1
    - Dst: udp_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.c:49,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.c:50,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.c:52,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.c:52,1
    - Dst: udp_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.c:53,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.c:54,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 56
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.c
    functionUses: 0
    functionsReached:
    - udp_new
    - udp_remove
    - MEMP_STATS_GET
    - LWIP_UNUSED_ARG
    - fail_unless
    linkageType: ''
    returnType: void
    signature: START_TEST(test_udp_new_remove)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.c:65,1
    - Dst: create_suite
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 68
    functionName: udp_suite
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.c
    functionUses: 0
    functionsReached:
    - create_suite
    - TESTFUNC
    linkageType: ''
    returnType: END_TEST
    signature: '*

      udp_suite(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:45,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:47,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:49,1
    - Dst: mdns_readname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:50,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:51,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:52,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:53,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:54,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 55
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - memcmp
    - pbuf_alloc
    - fail_if
    - pbuf_free
    - mdns_readname
    - LWIP_UNUSED_ARG
    - fail_unless
    linkageType: ''
    returnType: void
    signature: START_TEST(readname_basic)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:64,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:66,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:68,1
    - Dst: mdns_readname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:69,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:70,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:71,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:72,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:73,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 74
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - memcmp
    - pbuf_alloc
    - fail_if
    - pbuf_free
    - mdns_readname
    - LWIP_UNUSED_ARG
    - fail_unless
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(readname_anydata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:83,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:85,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:87,1
    - Dst: mdns_readname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:88,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:89,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 91
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - fail_if
    - pbuf_free
    - mdns_readname
    - LWIP_UNUSED_ARG
    - fail_unless
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(readname_short_buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:108,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:110,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:112,1
    - Dst: mdns_readname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:113,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:114,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 116
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - fail_if
    - pbuf_free
    - mdns_readname
    - LWIP_UNUSED_ARG
    - fail_unless
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(readname_long_label)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:164,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:166,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:168,1
    - Dst: mdns_readname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:169,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:170,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 172
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - fail_if
    - pbuf_free
    - mdns_readname
    - LWIP_UNUSED_ARG
    - fail_unless
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(readname_overflow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:189,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:191,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:193,1
    - Dst: mdns_readname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:194,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:195,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:196,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:197,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:199,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 200
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - memcmp
    - pbuf_alloc
    - fail_if
    - pbuf_free
    - mdns_readname
    - LWIP_UNUSED_ARG
    - fail_unless
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(readname_jump_earlier)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:218,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:220,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:222,1
    - Dst: mdns_readname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:223,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:224,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:225,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:226,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:228,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 229
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - memcmp
    - pbuf_alloc
    - fail_if
    - pbuf_free
    - mdns_readname
    - LWIP_UNUSED_ARG
    - fail_unless
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(readname_jump_earlier_jump)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:252,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:254,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:256,1
    - Dst: mdns_readname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:257,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:258,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:259,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:260,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:262,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 263
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 263
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - memcmp
    - pbuf_alloc
    - fail_if
    - pbuf_free
    - mdns_readname
    - LWIP_UNUSED_ARG
    - fail_unless
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(readname_jump_maxdepth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:278,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:280,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:282,1
    - Dst: mdns_readname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:283,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:284,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:285,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:286,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:288,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 289
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 289
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - memcmp
    - pbuf_alloc
    - fail_if
    - pbuf_free
    - mdns_readname
    - LWIP_UNUSED_ARG
    - fail_unless
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(readname_jump_later)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:300,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:302,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:304,1
    - Dst: mdns_readname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:305,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:306,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 308
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 308
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - fail_if
    - pbuf_free
    - mdns_readname
    - LWIP_UNUSED_ARG
    - fail_unless
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(readname_half_jump)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:319,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:321,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:323,1
    - Dst: mdns_readname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:324,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:325,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 327
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 327
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - fail_if
    - pbuf_free
    - mdns_readname
    - LWIP_UNUSED_ARG
    - fail_unless
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(readname_jump_toolong)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:339,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:341,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:343,1
    - Dst: mdns_readname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:344,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:345,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 347
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 347
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - fail_if
    - pbuf_free
    - mdns_readname
    - LWIP_UNUSED_ARG
    - fail_unless
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(readname_jump_loop_label)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:359,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:361,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:363,1
    - Dst: mdns_readname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:364,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:365,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 367
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 367
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - fail_if
    - pbuf_free
    - mdns_readname
    - LWIP_UNUSED_ARG
    - fail_unless
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(readname_jump_loop_jump)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:375,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:377,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:378,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:379,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:380,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:381,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:382,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:383,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:384,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:385,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 386
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 386
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - memcmp
    - fail_if
    - memset
    - LWIP_UNUSED_ARG
    - fail_unless
    - mdns_domain_add_label
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(add_label_basic)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:394,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:396,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:397,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:398,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:399,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:399,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 401
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 401
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - memset
    - strlen
    - LWIP_UNUSED_ARG
    - fail_unless
    - mdns_domain_add_label
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(add_label_long_label)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:409,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:411,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:412,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:412,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:413,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:414,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:415,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:415,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:416,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:417,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:418,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:418,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:419,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:420,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:421,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:421,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:422,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:423,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:424,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:424,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:425,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:426,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:427,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:427,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:428,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:429,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:430,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:430,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:431,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:432,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:433,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:433,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:434,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:435,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:436,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:437,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:438,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:439,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:440,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:441,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:442,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:443,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:444,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:445,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:446,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:447,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:448,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:449,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 451
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 451
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - memset
    - strlen
    - LWIP_UNUSED_ARG
    - fail_unless
    - mdns_domain_add_label
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(add_label_full)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:461,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:463,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:464,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:465,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:466,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:467,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:468,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:469,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:470,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:472,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:473,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:474,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:475,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:476,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:477,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:478,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:480,1
    - Dst: mdns_domain_eq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 481
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 481
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - memset
    - LWIP_UNUSED_ARG
    - fail_unless
    - mdns_domain_add_label
    - mdns_domain_eq
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(domain_eq_basic)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:488,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:490,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:491,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:492,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:493,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:494,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:495,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:496,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:498,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:499,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:500,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:501,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:502,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:503,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:504,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:506,1
    - Dst: mdns_domain_eq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 507
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 507
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - fail_if
    - memset
    - LWIP_UNUSED_ARG
    - fail_unless
    - mdns_domain_add_label
    - mdns_domain_eq
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(domain_eq_diff)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:514,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:516,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:517,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:518,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:519,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:520,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:521,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:522,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:524,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:525,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:526,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:527,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:528,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:529,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:530,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:532,1
    - Dst: mdns_domain_eq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 533
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 533
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - memset
    - LWIP_UNUSED_ARG
    - fail_unless
    - mdns_domain_add_label
    - mdns_domain_eq
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(domain_eq_case)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:542,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:544,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:545,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:546,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:547,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:548,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:549,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:550,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:551,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:552,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:554,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:555,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:556,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:557,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:558,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:559,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:560,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:561,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:562,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:564,1
    - Dst: mdns_domain_eq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 565
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 565
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - memset
    - LWIP_UNUSED_ARG
    - fail_unless
    - mdns_domain_add_label
    - mdns_domain_eq
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(domain_eq_anydata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:572,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:574,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:575,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:576,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:577,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:578,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:579,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:581,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:582,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:583,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:584,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:585,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:586,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:588,1
    - Dst: mdns_domain_eq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 589
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 589
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - memset
    - LWIP_UNUSED_ARG
    - fail_unless
    - mdns_domain_add_label
    - mdns_domain_eq
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(domain_eq_length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:603,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:605,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:607,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:609,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:610,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:611,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:612,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:613,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:614,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:615,1
    - Dst: mdns_compress_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:618,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:620,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:621,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 624
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 624
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - fail_if
    - mdns_compress_domain
    - memset
    - pbuf_free
    - LWIP_UNUSED_ARG
    - fail_unless
    - mdns_domain_add_label
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(compress_full_match)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:638,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:640,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:642,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:644,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:645,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:646,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:647,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:648,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:649,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:650,1
    - Dst: mdns_compress_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:653,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:655,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:656,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 659
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 659
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - fail_if
    - mdns_compress_domain
    - memset
    - pbuf_free
    - LWIP_UNUSED_ARG
    - fail_unless
    - mdns_domain_add_label
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(compress_full_match_subset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:675,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:677,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:679,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:681,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:682,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:683,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:684,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:685,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:686,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:687,1
    - Dst: mdns_compress_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:690,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:692,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:693,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 696
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 696
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - fail_if
    - mdns_compress_domain
    - memset
    - pbuf_free
    - LWIP_UNUSED_ARG
    - fail_unless
    - mdns_domain_add_label
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(compress_full_match_jump)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:710,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:712,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:714,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:716,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:717,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:718,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:719,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:720,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:721,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:722,1
    - Dst: mdns_compress_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:725,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:727,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 730
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 730
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - fail_if
    - mdns_compress_domain
    - memset
    - pbuf_free
    - LWIP_UNUSED_ARG
    - fail_unless
    - mdns_domain_add_label
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(compress_no_match)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:744,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:746,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:748,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:750,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:751,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:752,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:753,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:754,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:755,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:756,1
    - Dst: mdns_compress_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:759,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:761,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:762,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 765
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 765
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - fail_if
    - mdns_compress_domain
    - memset
    - pbuf_free
    - LWIP_UNUSED_ARG
    - fail_unless
    - mdns_domain_add_label
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(compress_2nd_label)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:779,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:781,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:783,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:785,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:786,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:787,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:788,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:789,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:790,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:791,1
    - Dst: mdns_compress_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:794,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:796,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:797,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 800
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 800
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - fail_if
    - mdns_compress_domain
    - memset
    - pbuf_free
    - LWIP_UNUSED_ARG
    - fail_unless
    - mdns_domain_add_label
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(compress_2nd_label_short)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:816,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:818,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:820,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:822,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:823,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:824,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:825,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:826,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:827,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:828,1
    - Dst: mdns_compress_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:831,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:833,1
    - Dst: mdns_compress_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:836,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:838,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:839,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 842
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 842
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - fail_if
    - mdns_compress_domain
    - memset
    - pbuf_free
    - LWIP_UNUSED_ARG
    - fail_unless
    - mdns_domain_add_label
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(compress_jump_to_jump)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:856,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:858,1
    - Dst: fail_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:860,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:862,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:863,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:864,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:865,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:866,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:867,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:868,1
    - Dst: mdns_compress_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:871,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:872,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 875
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 875
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - fail_if
    - mdns_compress_domain
    - memset
    - pbuf_free
    - LWIP_UNUSED_ARG
    - fail_unless
    - mdns_domain_add_label
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(compress_long_match)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:881,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:882,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:883,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:884,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:885,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:886,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:887,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:888,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:889,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:890,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:891,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:892,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:893,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:895,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:896,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:897,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:899,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:900,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:901,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:902,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:903,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:905,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:906,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:907,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:908,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:909,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:910,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:911,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:912,1
    - Dst: create_suite
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c:914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 915
      start: 876
    functionDepth: 1
    functionLinenumber: 876
    functionLinenumberEnd: 915
    functionName: mdns_suite
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
    functionUses: 0
    functionsReached:
    - create_suite
    - TESTFUNC
    linkageType: ''
    returnType: END_TEST
    signature: '* mdns_suite(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: tcp_oos_count
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: tcp_oos_count(struct tcp_pcb* pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_clen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: tcp_oos_pbuf_count
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c
    functionUses: 0
    functionsReached:
    - pbuf_clen
    linkageType: ''
    returnType: int
    signature: tcp_oos_pbuf_count(struct tcp_pcb* pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - pcb
    - seg_index
    argTypes:
    - struct tcp_pcb*
    - int
    constantsTouched: []
    func_position:
      end: 75
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 75
    functionName: tcp_oos_seg_seqno
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: u32_t
    signature: tcp_oos_seg_seqno(struct tcp_pcb* pcb, int seg_index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TCP_TCPLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:92,1
    - Dst: fail
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - pcb
    - seg_index
    argTypes:
    - struct tcp_pcb*
    - int
    constantsTouched: []
    func_position:
      end: 99
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 99
    functionName: tcp_oos_seg_tcplen
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c
    functionUses: 0
    functionsReached:
    - TCP_TCPLEN
    - fail
    linkageType: ''
    returnType: int
    signature: tcp_oos_seg_tcplen(struct tcp_pcb* pcb, int seg_index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TCP_TCPLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 118
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 118
    functionName: tcp_oos_tcplen
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c
    functionUses: 0
    functionsReached:
    - TCP_TCPLEN
    linkageType: ''
    returnType: int
    signature: tcp_oos_tcplen(struct tcp_pcb* pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcp_remove_all
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: tcp_oos_setup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c
    functionUses: 0
    functionsReached:
    - tcp_remove_all
    linkageType: ''
    returnType: void
    signature: tcp_oos_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcp_remove_all
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: tcp_oos_teardown
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c
    functionUses: 0
    functionsReached:
    - tcp_remove_all
    linkageType: ''
    returnType: void
    signature: tcp_oos_teardown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:157,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:160,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:161,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:162,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:163,1
    - Dst: test_tcp_init_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:164,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:167,1
    - Dst: test_tcp_new_counters_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:172,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:173,1
    - Dst: tcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:174,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:178,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:181,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:184,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:187,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:190,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:192,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:193,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:194,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:195,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:196,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:197,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:198,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:201,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:203,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:204,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:205,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:206,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:208,1
    - Dst: tcp_oos_count
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:208,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:209,1
    - Dst: tcp_oos_seg_seqno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:209,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:210,1
    - Dst: tcp_oos_seg_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:210,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:213,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:215,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:216,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:217,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:218,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:220,1
    - Dst: tcp_oos_count
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:220,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:221,1
    - Dst: tcp_oos_seg_seqno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:221,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:222,1
    - Dst: tcp_oos_seg_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:222,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:223,1
    - Dst: tcp_oos_seg_seqno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:223,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:224,1
    - Dst: tcp_oos_seg_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:224,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:227,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:229,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:230,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:231,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:232,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:234,1
    - Dst: tcp_oos_count
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:234,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:235,1
    - Dst: tcp_oos_seg_seqno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:235,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:236,1
    - Dst: tcp_oos_seg_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:236,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:237,1
    - Dst: tcp_oos_seg_seqno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:237,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:238,1
    - Dst: tcp_oos_seg_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:238,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:241,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:243,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:244,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:245,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:246,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:248,1
    - Dst: tcp_oos_count
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:248,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:249,1
    - Dst: tcp_oos_seg_seqno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:249,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:250,1
    - Dst: tcp_oos_seg_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:250,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:253,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:255,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:256,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:257,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:258,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:260,1
    - Dst: tcp_oos_count
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:260,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:261,1
    - Dst: tcp_oos_seg_seqno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:261,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:262,1
    - Dst: tcp_oos_seg_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:262,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:265,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:267,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:268,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:269,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:270,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:271,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:275,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:275,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:278,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:278,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:279,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:280,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:280,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 281
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 281
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c
    functionUses: 0
    functionsReached:
    - EXPECT
    - test_tcp_new_counters_pcb
    - tcp_set_state
    - tcp_oos_seg_seqno
    - test_tcp_init_netif
    - IP_ADDR4
    - test_tcp_input
    - EXPECT_OOSEQ
    - memset
    - EXPECT_RET
    - MEMP_STATS_GET
    - tcp_oos_seg_tcplen
    - tcp_create_rx_segment
    - LWIP_UNUSED_ARG
    - tcp_abort
    - tcp_oos_count
    linkageType: ''
    returnType: void
    signature: START_TEST(test_tcp_recv_ooseq_FIN_OOSEQ)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:302,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:305,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:306,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:307,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:308,1
    - Dst: test_tcp_init_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:309,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:312,1
    - Dst: test_tcp_new_counters_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:317,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:318,1
    - Dst: tcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:319,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:324,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:327,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:330,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:333,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:336,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:339,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:341,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:344,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:345,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:346,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:347,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:348,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:349,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:350,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:351,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:352,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:356,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:358,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:359,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:360,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:361,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:363,1
    - Dst: tcp_oos_count
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:363,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:364,1
    - Dst: tcp_oos_seg_seqno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:364,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:365,1
    - Dst: tcp_oos_seg_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:365,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:368,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:370,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:371,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:372,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:373,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:375,1
    - Dst: tcp_oos_count
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:375,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:376,1
    - Dst: tcp_oos_seg_seqno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:376,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:377,1
    - Dst: tcp_oos_seg_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:377,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:378,1
    - Dst: tcp_oos_seg_seqno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:378,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:379,1
    - Dst: tcp_oos_seg_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:379,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:382,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:384,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:385,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:386,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:387,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:389,1
    - Dst: tcp_oos_count
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:389,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:390,1
    - Dst: tcp_oos_seg_seqno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:390,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:391,1
    - Dst: tcp_oos_seg_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:391,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:393,1
    - Dst: tcp_oos_seg_seqno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:393,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:394,1
    - Dst: tcp_oos_seg_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:394,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:397,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:399,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:400,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:401,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:402,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:404,1
    - Dst: tcp_oos_count
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:404,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:405,1
    - Dst: tcp_oos_seg_seqno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:405,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:406,1
    - Dst: tcp_oos_seg_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:406,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:407,1
    - Dst: tcp_oos_seg_seqno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:407,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:408,1
    - Dst: tcp_oos_seg_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:408,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:411,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:413,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:414,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:415,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:416,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:417,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:420,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:422,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:423,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:424,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:425,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:427,1
    - Dst: tcp_oos_count
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:427,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:428,1
    - Dst: tcp_oos_seg_seqno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:428,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:429,1
    - Dst: tcp_oos_seg_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:429,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:432,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:434,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:435,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:436,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:437,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:439,1
    - Dst: tcp_oos_count
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:439,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:440,1
    - Dst: tcp_oos_seg_seqno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:440,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:441,1
    - Dst: tcp_oos_seg_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:441,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:444,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:446,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:447,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:448,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:449,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:450,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:454,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:454,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:457,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:457,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:458,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:459,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:459,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 102
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 460
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 460
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c
    functionUses: 0
    functionsReached:
    - EXPECT
    - test_tcp_new_counters_pcb
    - tcp_set_state
    - tcp_oos_seg_seqno
    - test_tcp_init_netif
    - IP_ADDR4
    - test_tcp_input
    - EXPECT_OOSEQ
    - memset
    - EXPECT_RET
    - MEMP_STATS_GET
    - tcp_oos_seg_tcplen
    - tcp_create_rx_segment
    - LWIP_UNUSED_ARG
    - tcp_abort
    - tcp_oos_count
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(test_tcp_recv_ooseq_FIN_INSEQ)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:485,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:486,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:487,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:488,1
    - Dst: test_tcp_init_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:489,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:491,1
    - Dst: test_tcp_new_counters_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:496,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:497,1
    - Dst: tcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:498,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:503,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:507,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:509,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:511,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:513,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:514,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:515,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:516,1
    - Dst: tcp_oos_count
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:518,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:519,1
    - Dst: tcp_oos_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:520,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:527,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:532,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:533,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:535,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:537,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:538,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:539,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:540,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:542,1
    - Dst: tcp_oos_count
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:542,1
    - Dst: tcp_oos_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:543,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:544,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:547,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:548,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:551,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:551,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:554,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:554,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:555,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:556,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:556,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:558,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 559
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 559
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c
    functionUses: 0
    functionsReached:
    - EXPECT
    - test_tcp_new_counters_pcb
    - tcp_oos_tcplen
    - tcp_set_state
    - IP_ADDR4
    - test_tcp_init_netif
    - test_tcp_input
    - EXPECT_OOSEQ
    - memset
    - EXPECT_RET
    - MEMP_STATS_GET
    - tcp_create_rx_segment
    - LWIP_UNUSED_ARG
    - tcp_abort
    - tcp_oos_count
    linkageType: ''
    returnType: void
    signature: START_TEST(test_tcp_recv_ooseq_overrun_rxwin)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:581,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:582,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:583,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:584,1
    - Dst: test_tcp_init_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:585,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:587,1
    - Dst: test_tcp_new_counters_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:592,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:593,1
    - Dst: tcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:594,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:599,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:603,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:605,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:607,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:609,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:610,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:611,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:612,1
    - Dst: tcp_oos_count
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:614,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:615,1
    - Dst: tcp_oos_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:616,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:623,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:628,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:629,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:631,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:633,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:634,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:635,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:636,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:638,1
    - Dst: tcp_oos_count
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:638,1
    - Dst: tcp_oos_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:639,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:640,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:643,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:644,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:647,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:647,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:650,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:650,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:651,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:652,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:652,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:655,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 656
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 656
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c
    functionUses: 0
    functionsReached:
    - EXPECT
    - test_tcp_new_counters_pcb
    - tcp_oos_tcplen
    - tcp_set_state
    - IP_ADDR4
    - test_tcp_init_netif
    - test_tcp_input
    - EXPECT_OOSEQ
    - memset
    - EXPECT_RET
    - MEMP_STATS_GET
    - tcp_create_rx_segment
    - LWIP_UNUSED_ARG
    - tcp_abort
    - tcp_oos_count
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(test_tcp_recv_ooseq_overrun_rxwin_edge)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:677,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:678,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:679,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:680,1
    - Dst: test_tcp_init_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:681,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:683,1
    - Dst: test_tcp_new_counters_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:688,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:689,1
    - Dst: tcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:690,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:698,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:700,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:701,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:703,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:705,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:706,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:707,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:708,1
    - Dst: tcp_oos_pbuf_count
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:710,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:711,1
    - Dst: tcp_oos_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:712,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:713,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:717,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:718,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:720,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:722,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:723,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:724,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:725,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:727,1
    - Dst: tcp_oos_count
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:727,1
    - Dst: tcp_oos_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:728,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:729,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:732,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:732,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:735,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:735,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:736,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:737,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:737,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:739,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 740
      start: 657
    functionDepth: 2
    functionLinenumber: 657
    functionLinenumberEnd: 740
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c
    functionUses: 0
    functionsReached:
    - EXPECT
    - test_tcp_new_counters_pcb
    - tcp_oos_tcplen
    - tcp_set_state
    - IP_ADDR4
    - test_tcp_init_netif
    - test_tcp_input
    - EXPECT_OOSEQ
    - tcp_oos_pbuf_count
    - memset
    - EXPECT_RET
    - MEMP_STATS_GET
    - tcp_create_rx_segment
    - LWIP_UNUSED_ARG
    - tcp_abort
    - tcp_oos_count
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(test_tcp_recv_ooseq_max_bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:761,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:762,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:763,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:764,1
    - Dst: test_tcp_init_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:765,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:767,1
    - Dst: test_tcp_new_counters_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:772,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:773,1
    - Dst: tcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:774,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:782,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:784,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:785,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:787,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:789,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:790,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:791,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:792,1
    - Dst: tcp_oos_pbuf_count
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:794,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:795,1
    - Dst: tcp_oos_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:796,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:797,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:801,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:802,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:804,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:806,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:807,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:808,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:809,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:811,1
    - Dst: tcp_oos_count
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:811,1
    - Dst: tcp_oos_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:812,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:813,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:816,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:816,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:819,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:819,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:820,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:821,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:821,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:823,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 824
      start: 741
    functionDepth: 2
    functionLinenumber: 741
    functionLinenumberEnd: 824
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c
    functionUses: 0
    functionsReached:
    - EXPECT
    - test_tcp_new_counters_pcb
    - tcp_oos_tcplen
    - tcp_set_state
    - IP_ADDR4
    - test_tcp_init_netif
    - test_tcp_input
    - EXPECT_OOSEQ
    - tcp_oos_pbuf_count
    - memset
    - EXPECT_RET
    - MEMP_STATS_GET
    - tcp_create_rx_segment
    - LWIP_UNUSED_ARG
    - tcp_abort
    - tcp_oos_count
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(test_tcp_recv_ooseq_max_pbufs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:832,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:833,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:834,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:835,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:837,1
    - Dst: tcp_oos_count
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:837,1
    - Dst: tcp_oos_tcplen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:838,1
    - Dst: EXPECT_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 8
    argNames:
    - pcb
    - counters
    - exp_close_calls
    - exp_rx_calls
    - exp_rx_bytes
    - exp_err_calls
    - exp_oos_count
    - exp_oos_len
    argTypes:
    - struct tcp_pcb*
    - struct test_tcp_counters*
    - u32_t
    - u32_t
    - u32_t
    - u32_t
    - int
    - int
    constantsTouched: []
    func_position:
      end: 840
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 840
    functionName: check_rx_counters
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c
    functionUses: 0
    functionsReached:
    - EXPECT
    - tcp_oos_tcplen
    - tcp_oos_count
    - EXPECT_OOSEQ
    linkageType: ''
    returnType: END_TEST
    signature: "check_rx_counters(struct tcp_pcb *pcb, struct test_tcp_counters *counters,
      u32_t exp_close_calls, u32_t exp_rx_calls,\n                  u32_t exp_rx_bytes,
      u32_t exp_err_calls, int exp_oos_count, int exp_oos_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:867,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:868,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:869,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:870,1
    - Dst: test_tcp_init_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:871,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:873,1
    - Dst: test_tcp_new_counters_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:878,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:879,1
    - Dst: tcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:880,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:884,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:885,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:887,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:888,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:895,1
    - Dst: check_rx_counters
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:900,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:909,1
    - Dst: check_rx_counters
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:920,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:929,1
    - Dst: check_rx_counters
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:942,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:951,1
    - Dst: check_rx_counters
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:964,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:968,1
    - Dst: check_rx_counters
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:978,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:982,1
    - Dst: check_rx_counters
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:987,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:991,1
    - Dst: check_rx_counters
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:994,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:998,1
    - Dst: check_rx_counters
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1001,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1004,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1007,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1007,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1010,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1010,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1011,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1012,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1012,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 102
    argCount: 1
    argNames:
    - delay_packet
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1013
      start: 850
    functionDepth: 2
    functionLinenumber: 850
    functionLinenumberEnd: 1013
    functionName: test_tcp_recv_ooseq_double_FINs
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c
    functionUses: 0
    functionsReached:
    - EXPECT
    - test_tcp_new_counters_pcb
    - tcp_set_state
    - IP_ADDR4
    - test_tcp_init_netif
    - test_tcp_input
    - tcp_abort
    - memset
    - EXPECT_RET
    - MEMP_STATS_GET
    - tcp_create_rx_segment
    - check_rx_counters
    linkageType: ''
    returnType: void
    signature: test_tcp_recv_ooseq_double_FINs(int delay_packet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1047,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1048,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1049,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1050,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1051,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1052,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1053,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1054,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1055,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1056,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1057,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1058,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1059,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1060,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1061,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1062,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1063,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1064,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1065,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1066,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1067,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1068,1
    - Dst: create_suite
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1043
    functionDepth: 1
    functionLinenumber: 1043
    functionLinenumberEnd: 1071
    functionName: tcp_oos_suite
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c
    functionUses: 0
    functionsReached:
    - create_suite
    - TESTFUNC
    linkageType: ''
    returnType: Suite
    signature: '*

      tcp_oos_suite(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pcb_list
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 25
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 25
    functionName: tcp_remove
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c
    functionUses: 0
    functionsReached:
    - tcp_abort
    linkageType: ''
    returnType: void
    signature: tcp_remove(struct tcp_pcb* pcb_list)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcp_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:31,1
    - Dst: tcp_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:32,1
    - Dst: tcp_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:33,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:34,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:34,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:35,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:35,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:36,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:36,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:37,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: tcp_remove_all
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c
    functionUses: 2
    functionsReached:
    - MEMP_STATS_GET
    - fail_unless
    - tcp_remove
    linkageType: ''
    returnType: void
    signature: tcp_remove_all(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:50,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:52,1
    - Dst: EXPECT_RETNULL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:53,1
    - Dst: EXPECT_RETNULL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:55,1
    - Dst: EXPECT_RETNULL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:58,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:62,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:67,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:68,1
    - Dst: IPH_VHL_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:69,1
    - Dst: IPH_TOS_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:70,1
    - Dst: IPH_LEN_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:71,1
    - Dst: htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:71,1
    - Dst: IPH_CHKSUM_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:72,1
    - Dst: inet_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:72,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:75,1
    - Dst: htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:78,1
    - Dst: htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:79,1
    - Dst: htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:80,1
    - Dst: htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:81,1
    - Dst: TCPH_HDRLEN_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:82,1
    - Dst: TCPH_FLAGS_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:83,1
    - Dst: htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:84,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:88,1
    - Dst: pbuf_take
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:90,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:92,1
    - Dst: ip_chksum_pseudo
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:97,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 10
    argNames:
    - src_ip
    - dst_ip
    - src_port
    - dst_port
    - data
    - data_len
    - seqno
    - ackno
    - headerflags
    - wnd
    argTypes:
    - ip_addr_t*
    - ip_addr_t*
    - u16_t
    - u16_t
    - void*
    - size_t
    - u32_t
    - u32_t
    - u8_t
    - u16_t
    constantsTouched: []
    func_position:
      end: 103
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 103
    functionName: tcp_create_segment_wnd
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c
    functionUses: 0
    functionsReached:
    - IPH_CHKSUM_SET
    - pbuf_take
    - TCPH_FLAGS_SET
    - pbuf_alloc
    - IPH_TOS_SET
    - TCPH_HDRLEN_SET
    - IPH_VHL_SET
    - memset
    - htonl
    - htons
    - inet_chksum
    - pbuf_header
    - IPH_LEN_SET
    - ip_chksum_pseudo
    - EXPECT_RETNULL
    - ip_2_ip4
    - LWIP_ASSERT
    linkageType: ''
    returnType: struct pbuf
    signature: "*\ntcp_create_segment_wnd(ip_addr_t* src_ip, ip_addr_t* dst_ip,\n
      \                  u16_t src_port, u16_t dst_port, void* data, size_t data_len,\n
      \                  u32_t seqno, u32_t ackno, u8_t headerflags, u16_t wnd)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcp_create_segment_wnd
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - src_ip
    - dst_ip
    - src_port
    - dst_port
    - data
    - data_len
    - seqno
    - ackno
    - headerflags
    argTypes:
    - ip_addr_t*
    - ip_addr_t*
    - u16_t
    - u16_t
    - void*
    - size_t
    - u32_t
    - u32_t
    - u8_t
    constantsTouched: []
    func_position:
      end: 113
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 113
    functionName: tcp_create_segment
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c
    functionUses: 0
    functionsReached:
    - tcp_create_segment_wnd
    linkageType: ''
    returnType: struct pbuf
    signature: "*\ntcp_create_segment(ip_addr_t* src_ip, ip_addr_t* dst_ip,\n                   u16_t
      src_port, u16_t dst_port, void* data, size_t data_len,\n                   u32_t
      seqno, u32_t ackno, u8_t headerflags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcp_create_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - pcb
    - data
    - data_len
    - seqno_offset
    - ackno_offset
    - headerflags
    argTypes:
    - struct tcp_pcb*
    - void*
    - size_t
    - u32_t
    - u32_t
    - u8_t
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: tcp_create_rx_segment
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c
    functionUses: 7
    functionsReached:
    - tcp_create_segment
    linkageType: ''
    returnType: struct pbuf
    signature: "*\ntcp_create_rx_segment(struct tcp_pcb* pcb, void* data, size_t data_len,
      u32_t seqno_offset,\n                      u32_t ackno_offset, u8_t headerflags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcp_create_segment_wnd
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - pcb
    - data
    - data_len
    - seqno_offset
    - ackno_offset
    - headerflags
    - wnd
    argTypes:
    - struct tcp_pcb*
    - void*
    - size_t
    - u32_t
    - u32_t
    - u8_t
    - u16_t
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: tcp_create_rx_segment_wnd
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c
    functionUses: 0
    functionsReached:
    - tcp_create_segment_wnd
    linkageType: ''
    returnType: struct pbuf
    signature: "* tcp_create_rx_segment_wnd(struct tcp_pcb* pcb, void* data, size_t
      data_len,\n                   u32_t seqno_offset, u32_t ackno_offset, u8_t headerflags,
      u16_t wnd)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcp_next_iss
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:150,1
    - Dst: TCP_REG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:157,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:158,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:160,1
    - Dst: TCP_REG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:163,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:164,1
    - Dst: TCP_REG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:167,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:168,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:170,1
    - Dst: fail
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:173,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 6
    argNames:
    - pcb
    - state
    - local_ip
    - remote_ip
    - local_port
    - remote_port
    argTypes:
    - struct tcp_pcb*
    - enum tcp_state
    - ip_addr_t*
    - ip_addr_t*
    - u16_t
    - u16_t
    constantsTouched: []
    func_position:
      end: 175
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 175
    functionName: tcp_set_state
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c
    functionUses: 7
    functionsReached:
    - ip_addr_copy
    - fail
    - TCP_REG
    - tcp_next_iss
    linkageType: ''
    returnType: void
    signature: "tcp_set_state(struct tcp_pcb* pcb, enum tcp_state state, ip_addr_t*
      local_ip,\n                   ip_addr_t* remote_ip, u16_t local_port, u16_t
      remote_port)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - arg
    - err
    argTypes:
    - void*
    - err_t
    constantsTouched: []
    func_position:
      end: 184
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 184
    functionName: test_tcp_counters_err
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c
    functionUses: 0
    functionsReached:
    - EXPECT_RET
    linkageType: ''
    returnType: void
    signature: test_tcp_counters_err(void* arg, err_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:195,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:200,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - counters
    - p
    argTypes:
    - struct test_tcp_counters*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 205
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 205
    functionName: test_tcp_counters_check_rxdata
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c
    functionUses: 0
    functionsReached:
    - EXPECT_RET
    - EXPECT
    linkageType: ''
    returnType: void
    signature: test_tcp_counters_check_rxdata(struct test_tcp_counters* counters,
      struct pbuf* p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_RETX
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:211,1
    - Dst: EXPECT_RETX
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:212,1
    - Dst: EXPECT_RETX
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:213,1
    - Dst: test_tcp_counters_check_rxdata
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:218,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:224,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - arg
    - pcb
    - p
    - err
    argTypes:
    - void*
    - struct tcp_pcb*
    - struct pbuf*
    - err_t
    constantsTouched: []
    func_position:
      end: 230
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 230
    functionName: test_tcp_counters_recv
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c
    functionUses: 0
    functionsReached:
    - EXPECT
    - EXPECT_RETX
    - test_tcp_counters_check_rxdata
    - pbuf_free
    linkageType: ''
    returnType: err_t
    signature: test_tcp_counters_recv(void* arg, struct tcp_pcb* pcb, struct pbuf*
      p, err_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcp_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:236,1
    - Dst: tcp_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:239,1
    - Dst: tcp_recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:240,1
    - Dst: tcp_err
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - counters
    argTypes:
    - struct test_tcp_counters*
    constantsTouched: []
    func_position:
      end: 246
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 246
    functionName: test_tcp_new_counters_pcb
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c
    functionUses: 7
    functionsReached:
    - tcp_new
    - tcp_recv
    - tcp_arg
    - tcp_err
    linkageType: ''
    returnType: struct tcp_pcb
    signature: '*

      test_tcp_new_counters_pcb(struct test_tcp_counters* counters)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip_addr_copy_from_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:253,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:253,1
    - Dst: ip_addr_copy_from_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:254,1
    - Dst: ip_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:254,1
    - Dst: ip_current_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:255,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:259,1
    - Dst: tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:261,1
    - Dst: ip_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:263,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:263,1
    - Dst: ip_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:264,1
    - Dst: ip_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:264,1
    - Dst: ip_current_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - p
    - inp
    argTypes:
    - struct pbuf*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 267
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 267
    functionName: test_tcp_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c
    functionUses: 7
    functionsReached:
    - ip_addr_copy_from_ip4
    - ip_addr_set_zero
    - ip_current_src_addr
    - ip_current_netif
    - tcp_input
    - pbuf_header
    - ip_current_dest_addr
    linkageType: ''
    returnType: void
    signature: test_tcp_input(struct pbuf *p, struct netif *inp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:273,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:279,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:281,1
    - Dst: pbuf_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:282,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:283,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - netif
    - p
    - ipaddr
    argTypes:
    - struct netif*
    - struct pbuf*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 292
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 292
    functionName: test_tcp_netif_output
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c
    functionUses: 0
    functionsReached:
    - EXPECT
    - pbuf_cat
    - pbuf_copy
    - pbuf_alloc
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: err_t
    signature: "test_tcp_netif_output(struct netif *netif, struct pbuf *p,\n       const
      ip4_addr_t *ipaddr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:298,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:300,1
    - Dst: ip_addr_copy_from_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:305,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:305,1
    - Dst: ip_addr_copy_from_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:306,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c:306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - netif
    - txcounters
    - ip_addr
    - netmask
    argTypes:
    - struct netif*
    - struct test_tcp_txcounters*
    - ip_addr_t*
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 314
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 314
    functionName: test_tcp_init_netif
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c
    functionUses: 7
    functionsReached:
    - ip_2_ip4
    - ip_addr_copy_from_ip4
    - memset
    linkageType: ''
    returnType: void
    signature: "test_tcp_init_netif(struct netif *netif, struct test_tcp_txcounters
      *txcounters,\n                         ip_addr_t *ip_addr, ip_addr_t *netmask)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcp_fasttmr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:25,1
    - Dst: tcp_slowtmr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: test_tcp_tmr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c
    functionUses: 0
    functionsReached:
    - tcp_slowtmr
    - tcp_fasttmr
    linkageType: ''
    returnType: void
    signature: test_tcp_tmr(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcp_next_iss
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:38,1
    - Dst: tcp_next_iss
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:39,1
    - Dst: tcp_remove_all
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: tcp_setup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c
    functionUses: 0
    functionsReached:
    - tcp_remove_all
    - tcp_next_iss
    linkageType: ''
    returnType: void
    signature: tcp_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcp_remove_all
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: tcp_teardown
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c
    functionUses: 0
    functionsReached:
    - tcp_remove_all
    linkageType: ''
    returnType: void
    signature: tcp_teardown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:61,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:63,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:63,1
    - Dst: tcp_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:65,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:66,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:68,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:68,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:69,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:70,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 72
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c
    functionUses: 0
    functionsReached:
    - MEMP_STATS_GET
    - tcp_new
    - LWIP_UNUSED_ARG
    - fail_unless
    - tcp_abort
    linkageType: ''
    returnType: void
    signature: START_TEST(test_tcp_new_abort)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:87,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:90,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:91,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:92,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:93,1
    - Dst: test_tcp_init_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:94,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:97,1
    - Dst: test_tcp_new_counters_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:102,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:103,1
    - Dst: tcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:104,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:107,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:108,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:111,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:113,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:114,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:115,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:116,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:120,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:120,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:121,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:122,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 123
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c
    functionUses: 0
    functionsReached:
    - EXPECT
    - test_tcp_new_counters_pcb
    - tcp_set_state
    - test_tcp_init_netif
    - IP_ADDR4
    - test_tcp_input
    - memset
    - EXPECT_RET
    - MEMP_STATS_GET
    - tcp_create_rx_segment
    - LWIP_UNUSED_ARG
    - tcp_abort
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(test_tcp_recv_inseq)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:139,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:142,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:143,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:144,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:145,1
    - Dst: test_tcp_init_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:146,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:149,1
    - Dst: test_tcp_new_counters_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:154,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:155,1
    - Dst: tcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:156,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:159,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:161,1
    - Dst: TCPH_HDRLEN_FLAGS_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:164,1
    - Dst: ip_chksum_pseudo
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:168,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:173,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:175,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:176,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:179,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:181,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:182,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:183,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:184,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:188,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:188,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:189,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:190,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 191
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c
    functionUses: 0
    functionsReached:
    - EXPECT
    - test_tcp_new_counters_pcb
    - tcp_set_state
    - test_tcp_init_netif
    - IP_ADDR4
    - test_tcp_input
    - memset
    - TCPH_HDRLEN_FLAGS_SET
    - EXPECT_RET
    - MEMP_STATS_GET
    - pbuf_header
    - tcp_create_rx_segment
    - LWIP_UNUSED_ARG
    - ip_chksum_pseudo
    - tcp_abort
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(test_tcp_malformed_header)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:213,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:216,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:217,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:218,1
    - Dst: test_tcp_init_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:219,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:220,1
    - Dst: test_tcp_new_counters_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:223,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:224,1
    - Dst: tcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:225,1
    - Dst: tcp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:231,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:232,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:233,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:234,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:235,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:236,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:237,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:239,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:240,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:241,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:242,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:243,1
    - Dst: tcp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:245,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:246,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:247,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:248,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:249,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:250,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:251,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:253,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:254,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:255,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:256,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:257,1
    - Dst: tcp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:259,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:260,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:261,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:262,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:264,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:265,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:266,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:268,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:269,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:270,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:271,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:272,1
    - Dst: tcp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:274,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:275,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:277,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:278,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:279,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:281,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:282,1
    - Dst: tcp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:286,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:287,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:290,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:291,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:292,1
    - Dst: tcp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:297,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:300,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:302,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:303,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:306,1
    - Dst: tcp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:309,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:310,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:311,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:312,1
    - Dst: tcp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:314,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:315,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:316,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:317,1
    - Dst: tcp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:319,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:320,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:321,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:322,1
    - Dst: tcp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:324,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:325,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:326,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:327,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:330,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:331,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:332,1
    - Dst: tcp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:336,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:337,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:338,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:339,1
    - Dst: tcp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:341,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:342,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:343,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:344,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:348,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:349,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:352,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:354,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:355,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:356,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:357,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:361,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:361,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:362,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:363,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 108
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 364
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 364
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c
    functionUses: 0
    functionsReached:
    - test_tcp_new_counters_pcb
    - tcp_set_state
    - test_tcp_init_netif
    - IP_ADDR4
    - test_tcp_input
    - tcp_output
    - memset
    - EXPECT_RET
    - MEMP_STATS_GET
    - tcp_write
    - tcp_create_rx_segment
    - LWIP_UNUSED_ARG
    - tcp_abort
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(test_tcp_fast_retx_recover)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:375,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:376,1
    - Dst: htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:376,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - segs
    - num_expected
    - seqnos_expected
    argTypes:
    - struct tcp_seg*
    - int
    - u32_t*
    constantsTouched: []
    func_position:
      end: 379
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 379
    functionName: check_seqnos
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c
    functionUses: 0
    functionsReached:
    - EXPECT_RET
    - EXPECT
    - htonl
    linkageType: ''
    returnType: void
    signature: check_seqnos(struct tcp_seg *segs, int num_expected, u32_t *seqnos_expected)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:404,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:411,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:412,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:413,1
    - Dst: test_tcp_init_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:414,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:415,1
    - Dst: test_tcp_new_counters_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:419,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:420,1
    - Dst: tcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:421,1
    - Dst: tcp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:430,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:431,1
    - Dst: check_seqnos
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:434,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:435,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:436,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:437,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:438,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:439,1
    - Dst: check_seqnos
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:441,1
    - Dst: check_seqnos
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:442,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:445,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:446,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:450,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:451,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:452,1
    - Dst: check_seqnos
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:453,1
    - Dst: check_seqnos
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:454,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:457,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:458,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:459,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:460,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:461,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:462,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:463,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:464,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:465,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:467,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:468,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:469,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:470,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:471,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:472,1
    - Dst: check_seqnos
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:473,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:476,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:476,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:477,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:478,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:478,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 479
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 479
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c
    functionUses: 0
    functionsReached:
    - EXPECT
    - test_tcp_new_counters_pcb
    - tcp_set_state
    - test_tcp_init_netif
    - IP_ADDR4
    - test_tcp_input
    - check_seqnos
    - tcp_output
    - memset
    - EXPECT_RET
    - MEMP_STATS_GET
    - tcp_write
    - tcp_create_rx_segment
    - LWIP_UNUSED_ARG
    - tcp_abort
    linkageType: ''
    returnType: void
    signature: START_TEST(test_tcp_fast_rexmit_wraparound)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:504,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:511,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:512,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:513,1
    - Dst: test_tcp_init_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:514,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:515,1
    - Dst: tcp_next_iss
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:519,1
    - Dst: tcp_next_iss
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:520,1
    - Dst: test_tcp_new_counters_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:521,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:522,1
    - Dst: tcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:523,1
    - Dst: tcp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:530,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:531,1
    - Dst: check_seqnos
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:534,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:535,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:536,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:537,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:538,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:539,1
    - Dst: check_seqnos
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:541,1
    - Dst: check_seqnos
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:542,1
    - Dst: test_tcp_tmr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:546,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:547,1
    - Dst: test_tcp_tmr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:550,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:551,1
    - Dst: check_seqnos
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:552,1
    - Dst: check_seqnos
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:553,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:558,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:559,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:561,1
    - Dst: check_seqnos
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:562,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:565,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:565,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:566,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:567,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 568
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 568
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c
    functionUses: 0
    functionsReached:
    - EXPECT
    - test_tcp_new_counters_pcb
    - tcp_set_state
    - test_tcp_tmr
    - test_tcp_init_netif
    - IP_ADDR4
    - check_seqnos
    - tcp_output
    - memset
    - EXPECT_RET
    - MEMP_STATS_GET
    - tcp_next_iss
    - tcp_write
    - LWIP_UNUSED_ARG
    - tcp_abort
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(test_tcp_rto_rexmit_wraparound)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:600,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:601,1
    - Dst: IP_ADDR4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:602,1
    - Dst: test_tcp_init_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:603,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:604,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:605,1
    - Dst: test_tcp_new_counters_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:608,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:609,1
    - Dst: tcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:610,1
    - Dst: tcp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:619,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:620,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:621,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:622,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:623,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:624,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:625,1
    - Dst: tcp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:629,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:630,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:631,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:632,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:633,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:634,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:635,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:637,1
    - Dst: tcp_create_rx_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:640,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:641,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:643,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:644,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:646,1
    - Dst: tcp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:648,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:650,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:651,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:652,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:653,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:654,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:655,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:656,1
    - Dst: tcp_create_rx_segment_wnd
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:660,1
    - Dst: test_tcp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:661,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:663,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:664,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:665,1
    - Dst: tcp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:669,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:670,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:671,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:672,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:673,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:674,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:675,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:678,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:680,1
    - Dst: test_tcp_tmr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:684,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:685,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:686,1
    - Dst: test_tcp_tmr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:691,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:693,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:694,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:695,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:699,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:700,1
    - Dst: EXPECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:701,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:704,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:710,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:710,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:711,1
    - Dst: EXPECT_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:712,1
    - Dst: MEMP_STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:712,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 100
    argCount: 1
    argNames:
    - zero_window_probe_from_unsent
    argTypes:
    - u8_t
    constantsTouched: []
    func_position:
      end: 713
      start: 569
    functionDepth: 3
    functionLinenumber: 569
    functionLinenumberEnd: 713
    functionName: test_tcp_tx_full_window_lost
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c
    functionUses: 0
    functionsReached:
    - EXPECT
    - test_tcp_new_counters_pcb
    - pbuf_copy_partial
    - tcp_set_state
    - test_tcp_tmr
    - IP_ADDR4
    - test_tcp_init_netif
    - test_tcp_input
    - tcp_output
    - memset
    - EXPECT_RET
    - MEMP_STATS_GET
    - tcp_write
    - tcp_create_rx_segment
    - pbuf_free
    - tcp_create_rx_segment_wnd
    - tcp_abort
    linkageType: ''
    returnType: END_TEST
    signature: test_tcp_tx_full_window_lost(u8_t zero_window_probe_from_unsent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:717,1
    - Dst: test_tcp_tx_full_window_lost
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 719
      start: 715
    functionDepth: 4
    functionLinenumber: 715
    functionLinenumberEnd: 719
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - test_tcp_tx_full_window_lost
    linkageType: ''
    returnType: void
    signature: START_TEST(test_tcp_tx_full_window_lost_from_unsent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:724,1
    - Dst: test_tcp_tx_full_window_lost
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 726
      start: 720
    functionDepth: 4
    functionLinenumber: 720
    functionLinenumberEnd: 726
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - test_tcp_tx_full_window_lost
    linkageType: ''
    returnType: END_TEST
    signature: START_TEST(test_tcp_tx_full_window_lost_from_unacked)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:734,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:735,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:736,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:737,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:738,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:739,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:740,1
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:741,1
    - Dst: create_suite
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 744
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 744
    functionName: tcp_suite
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c
    functionUses: 0
    functionsReached:
    - create_suite
    - TESTFUNC
    linkageType: ''
    returnType: END_TEST
    signature: '*

      tcp_suite(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: etharp_tmr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: etharp_remove_all
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c
    functionUses: 0
    functionsReached:
    - etharp_tmr
    linkageType: ''
    returnType: void
    signature: etharp_remove_all(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:37,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - netif
    - p
    argTypes:
    - struct netif*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: default_netif_linkoutput
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c
    functionUses: 0
    functionsReached:
    - fail_unless
    linkageType: ''
    returnType: err_t
    signature: default_netif_linkoutput(struct netif *netif, struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: default_netif_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c
    functionUses: 0
    functionsReached:
    - fail_unless
    linkageType: ''
    returnType: err_t
    signature: default_netif_init(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:58,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:59,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:60,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:62,1
    - Dst: netif_set_default
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:63,1
    - Dst: netif_add
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:63,1
    - Dst: netif_set_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 66
    functionName: default_netif_add
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c
    functionUses: 0
    functionsReached:
    - IP4_ADDR
    - netif_add
    - fail_unless
    - netif_set_default
    - netif_set_up
    linkageType: ''
    returnType: void
    signature: default_netif_add(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:71,1
    - Dst: netif_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: default_netif_remove
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c
    functionUses: 0
    functionsReached:
    - fail_unless
    - netif_remove
    linkageType: ''
    returnType: void
    signature: default_netif_remove(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:81,1
    - Dst: FAIL_RET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:83,1
    - Dst: htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:90,1
    - Dst: htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:92,1
    - Dst: htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:93,1
    - Dst: htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:96,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:98,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:99,1
    - Dst: ethernet_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - adr
    argTypes:
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 113
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 113
    functionName: create_arp_response
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - ethernet_input
    - SMEMCPY
    - htons
    - FAIL_RET
    linkageType: ''
    returnType: void
    signature: create_arp_response(ip4_addr_t *adr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: etharp_remove_all
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:120,1
    - Dst: default_netif_add
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: etharp_setup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c
    functionUses: 0
    functionsReached:
    - default_netif_add
    - etharp_remove_all
    linkageType: ''
    returnType: void
    signature: etharp_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: etharp_remove_all
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:127,1
    - Dst: default_netif_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: etharp_teardown
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c
    functionUses: 0
    functionsReached:
    - default_netif_remove
    - etharp_remove_all
    linkageType: ''
    returnType: void
    signature: etharp_teardown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:143,1
    - Dst: fail
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:146,1
    - Dst: udp_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:151,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:152,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:157,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:161,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:162,1
    - Dst: ip_addr_copy_from_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:166,1
    - Dst: udp_sendto
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:167,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:168,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:170,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:171,1
    - Dst: create_arp_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:174,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:176,1
    - Dst: etharp_find_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:178,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:179,1
    - Dst: etharp_tmr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:180,1
    - Dst: etharp_add_static_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:186,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:187,1
    - Dst: etharp_find_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:188,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:189,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:190,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:196,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:197,1
    - Dst: ip_addr_copy_from_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:201,1
    - Dst: udp_sendto
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:202,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:203,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:205,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:206,1
    - Dst: create_arp_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:209,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:211,1
    - Dst: etharp_find_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:213,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:215,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:218,1
    - Dst: etharp_tmr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:220,1
    - Dst: etharp_add_static_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:225,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:226,1
    - Dst: etharp_find_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:227,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:228,1
    - Dst: etharp_find_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:229,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:230,1
    - Dst: etharp_remove_static_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:232,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:233,1
    - Dst: etharp_find_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:234,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:235,1
    - Dst: etharp_find_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:236,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:237,1
    - Dst: etharp_remove_all
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:241,1
    - Dst: etharp_find_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:242,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:243,1
    - Dst: etharp_remove_static_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:247,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:248,1
    - Dst: etharp_find_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:249,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:250,1
    - Dst: etharp_find_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:251,1
    - Dst: fail_unless
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:252,1
    - Dst: udp_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:255,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 257
    functionName: START_TEST
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c
    functionUses: 0
    functionsReached:
    - udp_new
    - IP4_ADDR
    - etharp_add_static_entry
    - pbuf_alloc
    - ip_addr_copy_from_ip4
    - etharp_tmr
    - etharp_remove_static_entry
    - fail
    - etharp_find_addr
    - etharp_remove_all
    - udp_remove
    - udp_sendto
    - pbuf_free
    - create_arp_response
    - LWIP_UNUSED_ARG
    - fail_unless
    linkageType: ''
    returnType: void
    signature: START_TEST(test_etharp_table)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TESTFUNC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:266,1
    - Dst: create_suite
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 269
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 269
    functionName: etharp_suite
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c
    functionUses: 0
    functionsReached:
    - create_suite
    - TESTFUNC
    linkageType: ''
    returnType: END_TEST
    signature: '*

      etharp_suite(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - memp_t
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: get_num_used_pool_ptr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: '*get_num_used_pool_ptr(memp_t type)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_get_target_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:39,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:40,1
    - Dst: get_num_used_pool_ptr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:40,1
    - Dst: pbuf_get_target_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:42,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:43,1
    - Dst: get_num_used_pool_ptr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:43,1
    - Dst: pbuf_get_target_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:45,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:46,1
    - Dst: get_num_used_pool_ptr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:46,1
    - Dst: pbuf_get_target_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:48,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:49,1
    - Dst: get_num_used_pool_ptr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - inSuite
    argTypes:
    - nlTestSuite*
    constantsTouched: []
    func_position:
      end: 51
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 51
    functionName: assert_pbuf_pools_empty
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp
    functionUses: 0
    functionsReached:
    - NL_TEST_ASSERT
    - get_num_used_pool_ptr
    - pbuf_get_target_pool
    linkageType: ''
    returnType: void
    signature: assert_pbuf_pools_empty(nlTestSuite *inSuite)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nlwatchdog_refresh
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:58,1
    - Dst: pbuf_get_target_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:61,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:67,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:68,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:74,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:78,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:79,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:80,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:82,1
    - Dst: get_num_used_pool_ptr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:82,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:87,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:88,1
    - Dst: assert_pbuf_pools_empty
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - inSuite
    - pbuf
    - pool_size
    - pbuf_size
    argTypes:
    - nlTestSuite*
    - struct pbuf**
    - unsigned
    - int
    constantsTouched: []
    func_position:
      end: 94
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 94
    functionName: exhaust_pbuf_pool
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp
    functionUses: 0
    functionsReached:
    - get_num_used_pool_ptr
    - assert_pbuf_pools_empty
    - pbuf_alloc
    - pbuf_get_target_pool
    - NL_TEST_ASSERT
    - nlwatchdog_refresh
    - pbuf_free
    linkageType: ''
    returnType: void
    signature: exhaust_pbuf_pool(nlTestSuite *inSuite, struct pbuf **pbuf, unsigned
      pool_size, int pbuf_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exhaust_pbuf_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:102,1
    - Dst: ARRAY_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: TestPbufAllocLarge
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - exhaust_pbuf_pool
    linkageType: ''
    returnType: void
    signature: TestPbufAllocLarge(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exhaust_pbuf_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:110,1
    - Dst: ARRAY_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: TestPbufAllocMedium
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - exhaust_pbuf_pool
    linkageType: ''
    returnType: void
    signature: TestPbufAllocMedium(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exhaust_pbuf_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:118,1
    - Dst: ARRAY_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: TestPbufAllocSmall
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - exhaust_pbuf_pool
    linkageType: ''
    returnType: void
    signature: TestPbufAllocSmall(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nlwatchdog_refresh
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:132,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:135,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:136,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:141,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:142,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:143,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:146,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:149,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:150,1
    - Dst: pbuf_get_target_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:153,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:154,1
    - Dst: get_num_used_pool_ptr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:154,1
    - Dst: pbuf_get_target_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:155,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:156,1
    - Dst: get_num_used_pool_ptr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:156,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:159,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:160,1
    - Dst: assert_pbuf_pools_empty
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 165
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 165
    functionName: TestPbufAllocChain
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp
    functionUses: 0
    functionsReached:
    - get_num_used_pool_ptr
    - assert_pbuf_pools_empty
    - pbuf_get_target_pool
    - pbuf_alloc
    - NL_TEST_ASSERT
    - nlwatchdog_refresh
    - pbuf_free
    linkageType: ''
    returnType: void
    signature: TestPbufAllocChain(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nlwatchdog_refresh
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:177,1
    - Dst: pbuf_get_target_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:178,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:181,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:182,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:184,1
    - Dst: get_num_used_pool_ptr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:184,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:189,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:190,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:195,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:196,1
    - Dst: assert_pbuf_pools_empty
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 201
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 201
    functionName: TestPbufAllocChainFull
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp
    functionUses: 0
    functionsReached:
    - get_num_used_pool_ptr
    - assert_pbuf_pools_empty
    - pbuf_alloc
    - pbuf_get_target_pool
    - NL_TEST_ASSERT
    - nlwatchdog_refresh
    - pbuf_free
    linkageType: ''
    returnType: void
    signature: TestPbufAllocChainFull(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nlwatchdog_refresh
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:215,1
    - Dst: pbuf_get_target_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:217,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:220,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:221,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:227,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:231,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:232,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:233,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:235,1
    - Dst: get_num_used_pool_ptr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:235,1
    - Dst: pbuf_get_target_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:239,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:242,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:243,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:249,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:253,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:254,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:255,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:256,1
    - Dst: get_num_used_pool_ptr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:256,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:260,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:261,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:266,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:267,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:272,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:273,1
    - Dst: assert_pbuf_pools_empty
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:278,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 279
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 279
    functionName: TestPbufAllocOverflow
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp
    functionUses: 0
    functionsReached:
    - get_num_used_pool_ptr
    - assert_pbuf_pools_empty
    - pbuf_alloc
    - pbuf_get_target_pool
    - NL_TEST_ASSERT
    - nlwatchdog_refresh
    - pbuf_free
    linkageType: ''
    returnType: void
    signature: TestPbufAllocOverflow(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nlwatchdog_refresh
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:298,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:302,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:303,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:309,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:313,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:314,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:315,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:318,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:319,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:323,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:324,1
    - Dst: assert_pbuf_pools_empty
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:329,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 330
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 330
    functionName: TestPbufExhaust
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp
    functionUses: 0
    functionsReached:
    - assert_pbuf_pools_empty
    - pbuf_alloc
    - NL_TEST_ASSERT
    - nlwatchdog_refresh
    - pbuf_free
    linkageType: ''
    returnType: void
    signature: TestPbufExhaust(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nlwatchdog_refresh
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:337,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:340,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:341,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:346,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:349,1
    - Dst: NL_TEST_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:350,1
    - Dst: assert_pbuf_pools_empty
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - inSuite
    - inContext
    argTypes:
    - nlTestSuite*
    - void*
    constantsTouched: []
    func_position:
      end: 355
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 355
    functionName: TestPbufAllocChain
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp
    functionUses: 0
    functionsReached:
    - assert_pbuf_pools_empty
    - pbuf_alloc
    - NL_TEST_ASSERT
    - nlwatchdog_refresh
    - pbuf_free
    linkageType: ''
    returnType: void
    signature: TestPbufAllocChain(nlTestSuite *inSuite, void *inContext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nlTestRunner
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:373,1
    - Dst: nlTestRunnerStats
      Src: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 375
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 375
    functionName: pbuftestsuite
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp
    functionUses: 0
    functionsReached:
    - nlTestRunnerStats
    - nlTestRunner
    linkageType: ''
    returnType: int
    signature: pbuftestsuite(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:7,1
    - Dst: pbuf_take
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:11,1
    - Dst: queue_try_put
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:14,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:16,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19
      start: 1
    functionDepth: 1
    functionLinenumber: 1
    functionLinenumberEnd: 19
    functionName: eth_mac_irq
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c
    functionUses: 0
    functionsReached:
    - pbuf_free
    - pbuf_take
    - queue_try_put
    - pbuf_alloc
    linkageType: ''
    returnType: void
    signature: eth_mac_irq()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:24,1
    - Dst: MIB2_STATS_NETIF_ADD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:27,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:30,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:32,1
    - Dst: lock_interrupts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:35,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:36,1
    - Dst: unlock_interrupts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - netif
    - p
    argTypes:
    - struct netif*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 41
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 41
    functionName: netif_output
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c
    functionUses: 0
    functionsReached:
    - pbuf_copy_partial
    - MIB2_STATS_NETIF_ADD
    - LINK_STATS_INC
    - lock_interrupts
    - MIB2_STATS_NETIF_INC
    - unlock_interrupts
    linkageType: ''
    returnType: err_t
    signature: netif_output(struct netif *netif, struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:46,1
    - Dst: ip4addr_ntoa
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:46,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: netif_status_callback
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c
    functionUses: 0
    functionsReached:
    - netif_ip4_addr
    - printf
    - ip4addr_ntoa
    linkageType: ''
    returnType: void
    signature: netif_status_callback(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIB2_INIT_NETIF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:57,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: netif_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c
    functionUses: 0
    functionsReached:
    - MIB2_INIT_NETIF
    - SMEMCPY
    linkageType: ''
    returnType: err_t
    signature: netif_init(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:70,1
    - Dst: netif_add
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:72,1
    - Dst: netif_create_ip6_linklocal_address
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:75,1
    - Dst: netif_set_status_callback
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:77,1
    - Dst: netif_set_default
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:78,1
    - Dst: netif_set_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:79,1
    - Dst: dhcp_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:82,1
    - Dst: httpd_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:83,1
    - Dst: link_state_changed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:87,1
    - Dst: link_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:88,1
    - Dst: netif_set_link_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:89,1
    - Dst: netif_set_link_down
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:91,1
    - Dst: lock_interrupts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:96,1
    - Dst: queue_try_get
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:97,1
    - Dst: unlock_interrupts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:98,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:101,1
    - Dst: MIB2_STATS_NETIF_ADD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:104,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:107,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:109,1
    - Dst: struct netif::input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:112,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:113,1
    - Dst: sys_check_timeouts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c:118,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 122
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c
    functionUses: 8
    functionsReached:
    - netif_create_ip6_linklocal_address
    - httpd_init
    - queue_try_get
    - netif_set_link_down
    - link_is_up
    - lock_interrupts
    - netif_set_status_callback
    - link_state_changed
    - netif_add
    - netif_set_link_up
    - LINK_STATS_INC
    - pbuf_free
    - MIB2_STATS_NETIF_INC
    - lwip_init
    - unlock_interrupts
    - netif_set_up
    - struct netif::input
    - netif_set_default
    - sys_check_timeouts
    - dhcp_start
    - MIB2_STATS_NETIF_ADD
    linkageType: ''
    returnType: void
    signature: main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: stats_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: stats_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:66,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:67,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:68,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:69,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:70,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:71,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:72,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:73,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:74,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:75,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:76,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:77,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - proto
    - name
    argTypes:
    - struct stats_proto*
    - char*
    constantsTouched: []
    func_position:
      end: 79
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 79
    functionName: stats_display_proto
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c
    functionUses: 0
    functionsReached:
    - LWIP_PLATFORM_DIAG
    linkageType: ''
    returnType: void
    signature: stats_display_proto(struct stats_proto *proto, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:85,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:86,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:87,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:88,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:89,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:90,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:91,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:92,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:93,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:94,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:95,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:96,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:97,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:98,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - igmp
    - name
    argTypes:
    - struct stats_igmp*
    - char*
    constantsTouched: []
    func_position:
      end: 100
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 100
    functionName: stats_display_igmp
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c
    functionUses: 0
    functionsReached:
    - LWIP_PLATFORM_DIAG
    linkageType: ''
    returnType: void
    signature: stats_display_igmp(struct stats_igmp *igmp, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:107,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:108,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:109,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:110,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - mem
    - name
    argTypes:
    - struct stats_mem*
    - char*
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: stats_display_mem
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c
    functionUses: 0
    functionsReached:
    - LWIP_PLATFORM_DIAG
    linkageType: ''
    returnType: void
    signature: stats_display_mem(struct stats_mem *mem, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stats_display_mem
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mem
    - index
    argTypes:
    - struct stats_mem*
    - int
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: stats_display_memp
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c
    functionUses: 0
    functionsReached:
    - stats_display_mem
    linkageType: ''
    returnType: void
    signature: stats_display_memp(struct stats_mem *mem, int index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:129,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:130,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:131,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:132,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:133,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:134,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:135,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:136,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:137,1
    - Dst: LWIP_PLATFORM_DIAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - sys
    argTypes:
    - struct stats_sys*
    constantsTouched: []
    func_position:
      end: 139
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 139
    functionName: stats_display_sys
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c
    functionUses: 0
    functionsReached:
    - LWIP_PLATFORM_DIAG
    linkageType: ''
    returnType: void
    signature: stats_display_sys(struct stats_sys *sys)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LINK_STATS_DISPLAY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:147,1
    - Dst: ETHARP_STATS_DISPLAY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:148,1
    - Dst: IPFRAG_STATS_DISPLAY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:149,1
    - Dst: IP6_FRAG_STATS_DISPLAY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:150,1
    - Dst: IP_STATS_DISPLAY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:151,1
    - Dst: ND6_STATS_DISPLAY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:152,1
    - Dst: IP6_STATS_DISPLAY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:153,1
    - Dst: IGMP_STATS_DISPLAY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:154,1
    - Dst: MLD6_STATS_DISPLAY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:155,1
    - Dst: ICMP_STATS_DISPLAY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:156,1
    - Dst: ICMP6_STATS_DISPLAY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:157,1
    - Dst: UDP_STATS_DISPLAY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:158,1
    - Dst: TCP_STATS_DISPLAY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:159,1
    - Dst: MEM_STATS_DISPLAY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:160,1
    - Dst: MEMP_STATS_DISPLAY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:162,1
    - Dst: SYS_STATS_DISPLAY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 165
    functionName: stats_display
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c
    functionUses: 0
    functionsReached:
    - MLD6_STATS_DISPLAY
    - MEM_STATS_DISPLAY
    - IP6_STATS_DISPLAY
    - ICMP6_STATS_DISPLAY
    - MEMP_STATS_DISPLAY
    - ETHARP_STATS_DISPLAY
    - ICMP_STATS_DISPLAY
    - IP6_FRAG_STATS_DISPLAY
    - IPFRAG_STATS_DISPLAY
    - UDP_STATS_DISPLAY
    - SYS_STATS_DISPLAY
    - IP_STATS_DISPLAY
    - IGMP_STATS_DISPLAY
    - ND6_STATS_DISPLAY
    - LINK_STATS_DISPLAY
    - TCP_STATS_DISPLAY
    linkageType: ''
    returnType: void
    signature: stats_display(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ipaddr_aton
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ip.c:85,1
    - Dst: ipX_2_ip
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ip.c:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - addr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 100
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 100
    functionName: lwip_set_debug_target
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ip.c
    functionUses: 0
    functionsReached:
    - ipaddr_aton
    - ipX_2_ip
    linkageType: ''
    returnType: int
    signature: lwip_set_debug_target(const char *addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ipX_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ip.c:113,1
    - Dst: ipX_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ip.c:116,1
    - Dst: ipX_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ip.c:119,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - is_ipv6
    - src
    - dest
    argTypes:
    - int
    - ipX_addr_t*
    - ipX_addr_t*
    constantsTouched: []
    func_position:
      end: 123
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 123
    functionName: debug_target_match
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ip.c
    functionUses: 0
    functionsReached:
    - ipX_addr_isany
    - ipX_addr_cmp
    linkageType: ''
    returnType: int
    signature: debug_target_match(int is_ipv6, ipX_addr_t *src, ipX_addr_t *dest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ip.c:149,1
    - Dst: ip6addr_aton
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ip.c:151,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ip.c:151,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ip.c:159,1
    - Dst: ip4addr_aton
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ip.c:161,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ip.c:161,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - cp
    - addr
    argTypes:
    - char*
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 164
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 164
    functionName: ipaddr_aton
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ip.c
    functionUses: 2
    functionsReached:
    - ip_2_ip6
    - IP_SET_TYPE_VAL
    - ip6addr_aton
    - ip4addr_aton
    - ip_2_ip4
    linkageType: ''
    returnType: int
    signature: ipaddr_aton(const char *cp, ip_addr_t *addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IP_HDR_GET_VERSION
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ip.c:175,1
    - Dst: ip6_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ip.c:176,1
    - Dst: ip4_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ip.c:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - inp
    argTypes:
    - struct pbuf*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 181
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 181
    functionName: ip_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ip.c
    functionUses: 1
    functionsReached:
    - IP_HDR_GET_VERSION
    - ip4_input
    - ip6_input
    linkageType: ''
    returnType: err_t
    signature: ip_input(struct pbuf *p, struct netif *inp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sys_sem_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/sys.c:97,1
    - Dst: sys_arch_sem_wait
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/sys.c:99,1
    - Dst: sys_sem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/sys.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ms
    argTypes:
    - u32_t
    constantsTouched: []
    func_position:
      end: 103
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 103
    functionName: sys_msleep
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/sys.c
    functionUses: 0
    functionsReached:
    - sys_arch_sem_wait
    - sys_sem_free
    - sys_sem_new
    linkageType: ''
    returnType: void
    signature: sys_msleep(u32_t ms)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UDP_ENSURE_LOCAL_PORT_RANGE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:90,1
    - Dst: LWIP_RAND
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: udp_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c
    functionUses: 0
    functionsReached:
    - LWIP_RAND
    - UDP_ENSURE_LOCAL_PORT_RANGE
    linkageType: ''
    returnType: void
    signature: udp_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 119
    functionName: udp_new_port
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16_t
    signature: udp_new_port(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:132,1
    - Dst: netif_get_index
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:136,1
    - Dst: IP_IS_ANY_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:141,1
    - Dst: ip_get_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:143,1
    - Dst: IP_ADDR_PCB_VERSION_MATCH_EXACT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:151,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:151,1
    - Dst: ip_get_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:157,1
    - Dst: ip4_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:160,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:160,1
    - Dst: ip4_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:161,1
    - Dst: ip4_addr_netcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:162,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:162,1
    - Dst: ip4_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:162,1
    - Dst: netif_ip4_netmask
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:162,1
    - Dst: ip_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:169,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:169,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:169,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 3
    argNames:
    - pcb
    - inp
    - broadcast
    argTypes:
    - struct udp_pcb*
    - struct netif*
    - u8_t
    constantsTouched: []
    func_position:
      end: 175
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 175
    functionName: udp_input_local_match
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c
    functionUses: 0
    functionsReached:
    - ip4_addr_isany
    - ip_addr_cmp
    - ip4_current_dest_addr
    - netif_get_index
    - IP_ADDR_PCB_VERSION_MATCH_EXACT
    - IP_IS_ANY_TYPE_VAL
    - ip_current_dest_addr
    - ip4_addr_netcmp
    - netif_ip4_netmask
    - LWIP_UNUSED_ARG
    - ip_2_ip4
    - ip_get_option
    - ip_addr_isany
    linkageType: ''
    returnType: u8_t
    signature: udp_input_local_match(struct udp_pcb *pcb, struct netif *inp, u8_t
      broadcast)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:199,1
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:200,1
    - Dst: UDP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:204,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:209,1
    - Dst: UDP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:211,1
    - Dst: UDP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:212,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:213,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:214,1
    - Dst: ip_addr_isbroadcast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:221,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:221,1
    - Dst: ip_current_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:221,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:223,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:226,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:227,1
    - Dst: udp_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:229,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:232,1
    - Dst: ip_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:233,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:233,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:234,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:234,1
    - Dst: ip_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:235,1
    - Dst: ip_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:235,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:236,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:236,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:247,1
    - Dst: ip_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:248,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:249,1
    - Dst: ip_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:250,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:251,1
    - Dst: ip_get_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:257,1
    - Dst: udp_input_local_match
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:263,1
    - Dst: ip_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:268,1
    - Dst: ip_addr_isany_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:277,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:278,1
    - Dst: ip_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:278,1
    - Dst: UDP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:287,1
    - Dst: ip_current_is_v6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:305,1
    - Dst: netif_get_ip6_addr_match
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:306,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:306,1
    - Dst: ip_current_is_v6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:310,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:311,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:311,1
    - Dst: ip4_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:311,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:317,1
    - Dst: ip_current_header_proto
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:321,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:323,1
    - Dst: ip_chksum_pseudo_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:335,1
    - Dst: ip_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:337,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:337,1
    - Dst: ip_chksum_pseudo
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:344,1
    - Dst: ip_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:345,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:346,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:353,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:355,1
    - Dst: UDP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:356,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:357,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:358,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:363,1
    - Dst: ip_get_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:365,1
    - Dst: ip_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:366,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:366,1
    - Dst: ip_current_header_tot_len
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:371,1
    - Dst: udp_input_local_match
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:376,1
    - Dst: pbuf_header_force
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:382,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:385,1
    - Dst: pbuf_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:387,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:390,1
    - Dst: struct udp_pcb*::recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:391,1
    - Dst: ip_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:391,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:400,1
    - Dst: struct udp_pcb*::recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:407,1
    - Dst: ip_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:407,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:410,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:414,1
    - Dst: ip_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:419,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:419,1
    - Dst: pbuf_header_force
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:421,1
    - Dst: ip_current_header_tot_len
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:421,1
    - Dst: icmp_port_unreach
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:422,1
    - Dst: ip_current_is_v6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:422,1
    - Dst: UDP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:425,1
    - Dst: UDP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:426,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:427,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:428,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:431,1
    - Dst: PERF_STOP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:434,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:438,1
    - Dst: UDP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:440,1
    - Dst: UDP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:441,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:442,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:443,1
    - Dst: PERF_STOP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:444,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 159
    argCount: 2
    argNames:
    - p
    - inp
    argTypes:
    - struct pbuf*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 446
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 446
    functionName: udp_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c
    functionUses: 0
    functionsReached:
    - netif_ip4_addr
    - udp_debug_print
    - ip_current_netif
    - UDP_STATS_INC
    - ip_addr_debug_print
    - LWIP_ASSERT
    - LWIP_DEBUGF
    - ip_addr_ismulticast
    - ip4_addr_cmp
    - struct udp_pcb*::recv
    - lwip_ntohs
    - ip_addr_isbroadcast
    - netif_get_ip6_addr_match
    - ip6_current_dest_addr
    - ip_current_header_proto
    - MIB2_STATS_INC
    - LWIP_ASSERT_CORE_LOCKED
    - udp_input_local_match
    - pbuf_free
    - ip_current_header_tot_len
    - icmp_port_unreach
    - pbuf_header_force
    - ip_addr_isany_val
    - pbuf_header
    - ip_current_dest_addr
    - ip_current_is_v6
    - ip_addr_isany
    - PERF_STOP
    - ip4_current_dest_addr
    - pbuf_alloc
    - pbuf_copy
    - ip_current_src_addr
    - ip_get_option
    - LWIP_UNUSED_ARG
    - ip_chksum_pseudo
    - ip_addr_cmp
    - ip_chksum_pseudo_partial
    linkageType: ''
    returnType: void
    signature: udp_input(struct pbuf *p, struct netif *inp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IP_IS_ANY_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:471,1
    - Dst: udp_sendto
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:476,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - pcb
    - p
    argTypes:
    - struct udp_pcb*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 477
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 477
    functionName: udp_send
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c
    functionUses: 0
    functionsReached:
    - IP_IS_ANY_TYPE_VAL
    - udp_sendto
    linkageType: ''
    returnType: err_t
    signature: udp_send(struct udp_pcb *pcb, struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IP_IS_ANY_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:487,1
    - Dst: udp_sendto_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - pcb
    - p
    - have_chksum
    - chksum
    argTypes:
    - struct udp_pcb*
    - struct pbuf*
    - u8_t
    - u16_t
    constantsTouched: []
    func_position:
      end: 494
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 494
    functionName: udp_send_chksum
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c
    functionUses: 0
    functionsReached:
    - IP_IS_ANY_TYPE_VAL
    - udp_sendto_chksum
    linkageType: ''
    returnType: err_t
    signature: "udp_send_chksum(struct udp_pcb *pcb, struct pbuf *p,\n                u8_t
      have_chksum, u16_t chksum)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: udp_sendto_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - pcb
    - p
    - dst_ip
    - dst_port
    argTypes:
    - struct udp_pcb*
    - struct pbuf*
    - ip_addr_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 521
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 521
    functionName: udp_sendto
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c
    functionUses: 3
    functionsReached:
    - udp_sendto_chksum
    linkageType: ''
    returnType: err_t
    signature: "udp_sendto(struct udp_pcb *pcb, struct pbuf *p,\n  const ip_addr_t
      *dst_ip, u16_t dst_port)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IP_ADDR_PCB_VERSION_MATCH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:532,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:536,1
    - Dst: netif_get_by_index
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:539,1
    - Dst: ip_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:543,1
    - Dst: netif_get_by_index
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:551,1
    - Dst: IP_IS_V4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:556,1
    - Dst: ip4_addr_isany_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:564,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:565,1
    - Dst: ip4_route_src
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:566,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:566,1
    - Dst: ip_route
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:576,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:582,1
    - Dst: ip_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:583,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:584,1
    - Dst: UDP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:585,1
    - Dst: udp_sendto_if_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:589,1
    - Dst: udp_sendto_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:591,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 6
    argNames:
    - pcb
    - p
    - dst_ip
    - dst_port
    - have_chksum
    - chksum
    argTypes:
    - struct udp_pcb*
    - struct pbuf*
    - ip_addr_t*
    - u16_t
    - u8_t
    - u16_t
    constantsTouched: []
    func_position:
      end: 593
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 593
    functionName: udp_sendto_chksum
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c
    functionUses: 2
    functionsReached:
    - LWIP_DEBUGF
    - ip_addr_ismulticast
    - ip4_addr_cmp
    - ip4_addr_isany_val
    - udp_sendto_if_chksum
    - IP_IS_V4
    - udp_sendto_if
    - IP_ADDR_PCB_VERSION_MATCH
    - ip_route
    - UDP_STATS_INC
    - ip_2_ip4
    - ip_addr_debug_print
    - netif_get_by_index
    - ip4_route_src
    linkageType: ''
    returnType: err_t
    signature: "udp_sendto_chksum(struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t
      *dst_ip,\n                  u16_t dst_port, u8_t have_chksum, u16_t chksum)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: udp_sendto_if_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - pcb
    - p
    - dst_ip
    - dst_port
    - netif
    argTypes:
    - struct udp_pcb*
    - struct pbuf*
    - ip_addr_t*
    - u16_t
    - struct netif*
    constantsTouched: []
    func_position:
      end: 621
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 621
    functionName: udp_sendto_if
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c
    functionUses: 2
    functionsReached:
    - udp_sendto_if_chksum
    linkageType: ''
    returnType: err_t
    signature: "udp_sendto_if(struct udp_pcb *pcb, struct pbuf *p,\n  const ip_addr_t
      *dst_ip, u16_t dst_port, struct netif *netif)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IP_ADDR_PCB_VERSION_MATCH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:632,1
    - Dst: IP_IS_V6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:638,1
    - Dst: ip6_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:639,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:639,1
    - Dst: ip6_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:640,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:640,1
    - Dst: ip6_select_source_address
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:641,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:641,1
    - Dst: netif_get_ip6_addr_match
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:648,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:648,1
    - Dst: ip4_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:660,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:660,1
    - Dst: ip4_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:661,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:661,1
    - Dst: netif_ip_addr4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:664,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:668,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:668,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:668,1
    - Dst: udp_sendto_if_src_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:677,1
    - Dst: udp_sendto_if_src
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:679,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 7
    argNames:
    - pcb
    - p
    - dst_ip
    - dst_port
    - netif
    - have_chksum
    - chksum
    argTypes:
    - struct udp_pcb*
    - struct pbuf*
    - ip_addr_t*
    - u16_t
    - struct netif*
    - u8_t
    - u16_t
    constantsTouched: []
    func_position:
      end: 681
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 681
    functionName: udp_sendto_if_chksum
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c
    functionUses: 2
    functionsReached:
    - ip4_addr_isany
    - netif_ip4_addr
    - ip_2_ip6
    - netif_ip_addr4
    - ip4_addr_cmp
    - ip4_addr_ismulticast
    - netif_get_ip6_addr_match
    - ip6_select_source_address
    - ip6_addr_isany
    - ip6_addr_ismulticast
    - udp_sendto_if_src
    - udp_sendto_if_src_chksum
    - IP_ADDR_PCB_VERSION_MATCH
    - ip_2_ip4
    - IP_IS_V6
    linkageType: ''
    returnType: err_t
    signature: "udp_sendto_if_chksum(struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t
      *dst_ip,\n                     u16_t dst_port, struct netif *netif, u8_t have_chksum,\n
      \                    u16_t chksum)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: udp_sendto_if_src_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 6
    argNames:
    - pcb
    - p
    - dst_ip
    - dst_port
    - netif
    - src_ip
    argTypes:
    - struct udp_pcb*
    - struct pbuf*
    - ip_addr_t*
    - u16_t
    - struct netif*
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 691
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 691
    functionName: udp_sendto_if_src
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c
    functionUses: 1
    functionsReached:
    - udp_sendto_if_src_chksum
    linkageType: ''
    returnType: err_t
    signature: "udp_sendto_if_src(struct udp_pcb *pcb, struct pbuf *p,\n  const ip_addr_t
      *dst_ip, u16_t dst_port, struct netif *netif, const ip_addr_t *src_ip)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:706,1
    - Dst: IP_ADDR_PCB_VERSION_MATCH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:708,1
    - Dst: IP_ADDR_PCB_VERSION_MATCH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:709,1
    - Dst: ip_get_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:715,1
    - Dst: IP_IS_V4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:717,1
    - Dst: ip_addr_isbroadcast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:719,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:720,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:728,1
    - Dst: udp_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:729,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:731,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:737,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:739,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:742,1
    - Dst: pbuf_chain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:747,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:750,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:756,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:758,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:762,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:763,1
    - Dst: ip_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:769,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:774,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:780,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:785,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:796,1
    - Dst: ip_chksum_pseudo_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:805,1
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:811,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:826,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:827,1
    - Dst: IP_IS_V6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:832,1
    - Dst: ip_chksum_pseudo_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:837,1
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:840,1
    - Dst: ip_chksum_pseudo
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:844,1
    - Dst: ip_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:861,1
    - Dst: udp_get_multicast_ttl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:861,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:866,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:866,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:867,1
    - Dst: netif_apply_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:869,1
    - Dst: ip_output_if_src
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:870,1
    - Dst: netif_apply_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:871,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:877,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:882,1
    - Dst: UDP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:887,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 97
    argCount: 8
    argNames:
    - pcb
    - p
    - dst_ip
    - dst_port
    - netif
    - have_chksum
    - chksum
    - src_ip
    argTypes:
    - struct udp_pcb*
    - struct pbuf*
    - ip_addr_t*
    - u16_t
    - struct netif*
    - u8_t
    - u16_t
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 889
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 889
    functionName: udp_sendto_if_src_chksum
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c
    functionUses: 2
    functionsReached:
    - FOLD_U32T
    - lwip_htons
    - IP_IS_V4
    - ip_output_if_src
    - UDP_STATS_INC
    - LWIP_ASSERT
    - LWIP_DEBUGF
    - ip_addr_ismulticast
    - netif_apply_pcb
    - lwip_ntohs
    - ip_addr_isbroadcast
    - MIB2_STATS_INC
    - LWIP_ASSERT_CORE_LOCKED
    - pbuf_free
    - IP_ADDR_PCB_VERSION_MATCH
    - pbuf_chain
    - udp_bind
    - pbuf_header
    - pbuf_alloc
    - udp_get_multicast_ttl
    - ip_get_option
    - ip_chksum_pseudo
    - IP_IS_V6
    - ip_chksum_pseudo_partial
    linkageType: ''
    returnType: err_t
    signature: "udp_sendto_if_src_chksum(struct udp_pcb *pcb, struct pbuf *p, const
      ip_addr_t *dst_ip,\n                     u16_t dst_port, struct netif *netif,
      u8_t have_chksum,\n                     u16_t chksum, const ip_addr_t *src_ip)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:917,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:931,1
    - Dst: ip_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:932,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:933,1
    - Dst: udp_new_port
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:947,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:950,1
    - Dst: ip_get_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:960,1
    - Dst: ip_get_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:961,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:967,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:969,1
    - Dst: ip_addr_set_ipaddr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:978,1
    - Dst: mib2_udp_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:981,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:988,1
    - Dst: ip_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:989,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:990,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 3
    argNames:
    - pcb
    - ipaddr
    - port
    argTypes:
    - struct udp_pcb*
    - ip_addr_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 992
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 992
    functionName: udp_bind
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c
    functionUses: 3
    functionsReached:
    - ip_addr_cmp
    - LWIP_DEBUGF
    - udp_new_port
    - mib2_udp_bind
    - LWIP_ASSERT_CORE_LOCKED
    - ip_addr_set_ipaddr
    - ip_addr_debug_print
    - ip_get_option
    linkageType: ''
    returnType: err_t
    signature: udp_bind(struct udp_pcb *pcb, const ip_addr_t *ipaddr, u16_t port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_get_index
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pcb
    - netif
    argTypes:
    - struct udp_pcb*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1011
      start: 1003
    functionDepth: 0
    functionLinenumber: 1003
    functionLinenumberEnd: 1011
    functionName: udp_bind_netif
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c
    functionUses: 1
    functionsReached:
    - netif_get_index
    linkageType: ''
    returnType: void
    signature: udp_bind_netif(struct udp_pcb *pcb, const struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1036,1
    - Dst: udp_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1043,1
    - Dst: ip_addr_set_ipaddr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1049,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1053,1
    - Dst: ip_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1054,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1056,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - pcb
    - ipaddr
    - port
    argTypes:
    - struct udp_pcb*
    - ip_addr_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 1069
      start: 1031
    functionDepth: 2
    functionLinenumber: 1031
    functionLinenumberEnd: 1069
    functionName: udp_connect
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - udp_bind
    - LWIP_ASSERT_CORE_LOCKED
    - ip_addr_set_ipaddr
    - ip_addr_debug_print
    linkageType: ''
    returnType: err_t
    signature: udp_connect(struct udp_pcb *pcb, const ip_addr_t *ipaddr, u16_t port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pcb
    - recv
    - recv_arg
    argTypes:
    - struct udp_pcb*
    - udp_recv_fn
    - void*
    constantsTouched: []
    func_position:
      end: 1116
      start: 1108
    functionDepth: 0
    functionLinenumber: 1108
    functionLinenumberEnd: 1116
    functionName: udp_recv
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c
    functionUses: 1
    functionsReached:
    - LWIP_ASSERT_CORE_LOCKED
    linkageType: ''
    returnType: void
    signature: udp_recv(struct udp_pcb *pcb, udp_recv_fn recv, void *recv_arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1132,1
    - Dst: mib2_udp_unbind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1134,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct udp_pcb*
    constantsTouched: []
    func_position:
      end: 1151
      start: 1127
    functionDepth: 1
    functionLinenumber: 1127
    functionLinenumberEnd: 1151
    functionName: udp_remove
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c
    functionUses: 4
    functionsReached:
    - LWIP_ASSERT_CORE_LOCKED
    - mib2_udp_unbind
    - memp_free
    linkageType: ''
    returnType: void
    signature: udp_remove(struct udp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1167,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1169,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1176,1
    - Dst: udp_set_multicast_ttl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1162
    functionDepth: 0
    functionLinenumber: 1162
    functionLinenumberEnd: 1183
    functionName: udp_new
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c
    functionUses: 3
    functionsReached:
    - memset
    - LWIP_ASSERT_CORE_LOCKED
    - memp_malloc
    - udp_set_multicast_ttl
    linkageType: ''
    returnType: struct udp_pcb
    signature: '*

      udp_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1202,1
    - Dst: udp_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1204,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1207,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1208,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - type
    argTypes:
    - u8_t
    constantsTouched: []
    func_position:
      end: 1214
      start: 1197
    functionDepth: 1
    functionLinenumber: 1197
    functionLinenumberEnd: 1214
    functionName: udp_new_ip_type
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c
    functionUses: 1
    functionsReached:
    - udp_new
    - LWIP_UNUSED_ARG
    - LWIP_ASSERT_CORE_LOCKED
    - IP_SET_TYPE_VAL
    linkageType: ''
    returnType: struct udp_pcb
    signature: '*

      udp_new_ip_type(u8_t type)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1225,1
    - Dst: ip_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1225,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1228,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - old_addr
    - new_addr
    argTypes:
    - ip_addr_t*
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 1235
      start: 1221
    functionDepth: 0
    functionLinenumber: 1221
    functionLinenumberEnd: 1235
    functionName: udp_netif_ip_addr_changed
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c
    functionUses: 0
    functionsReached:
    - ip_addr_copy
    - ip_addr_cmp
    - ip_addr_isany
    linkageType: ''
    returnType: void
    signature: udp_netif_ip_addr_changed(const ip_addr_t* old_addr, const ip_addr_t*
      new_addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1246,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1247,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1248,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1249,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1249,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1250,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1251,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1252,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1252,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c:1253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - udphdr
    argTypes:
    - struct udp_hdr*
    constantsTouched: []
    func_position:
      end: 1254
      start: 1243
    functionDepth: 0
    functionLinenumber: 1243
    functionLinenumberEnd: 1254
    functionName: udp_debug_print
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c
    functionUses: 1
    functionsReached:
    - lwip_ntohs
    - LWIP_DEBUGF
    linkageType: ''
    returnType: void
    signature: udp_debug_print(struct udp_hdr *udphdr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct memp_desc*
    constantsTouched: []
    func_position:
      end: 141
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 141
    functionName: memp_sanity
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: memp_sanity(const struct memp_desc *desc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:162,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:163,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:167,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - p
    - desc
    argTypes:
    - struct memp*
    - struct memp_desc*
    constantsTouched: []
    func_position:
      end: 170
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 170
    functionName: memp_overflow_check_element_overflow
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - strcat
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: memp_overflow_check_element_overflow(struct memp *p, const struct memp_desc
      *desc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:189,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:190,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:194,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - p
    - desc
    argTypes:
    - struct memp*
    - struct memp_desc*
    constantsTouched: []
    func_position:
      end: 197
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 197
    functionName: memp_overflow_check_element_underflow
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - strcat
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: memp_overflow_check_element_underflow(struct memp *p, const struct
      memp_desc *desc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:209,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:213,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:216,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - p
    - desc
    argTypes:
    - struct memp*
    - struct memp_desc*
    constantsTouched: []
    func_position:
      end: 219
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 219
    functionName: memp_overflow_init_element
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - memset
    linkageType: ''
    returnType: void
    signature: memp_overflow_init_element(struct memp *p, const struct memp_desc *desc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYS_ARCH_DECL_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:232,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:233,1
    - Dst: LWIP_MEM_ALIGN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:236,1
    - Dst: memp_overflow_check_element_overflow
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:238,1
    - Dst: memp_overflow_check_element_underflow
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:239,1
    - Dst: LWIP_ALIGNMENT_CAST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:240,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 244
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 244
    functionName: memp_overflow_check_all
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c
    functionUses: 0
    functionsReached:
    - memp_overflow_check_element_underflow
    - SYS_ARCH_UNPROTECT
    - SYS_ARCH_PROTECT
    - LWIP_MEM_ALIGN
    - LWIP_ALIGNMENT_CAST
    - SYS_ARCH_DECL_PROTECT
    - memp_overflow_check_element_overflow
    linkageType: ''
    returnType: void
    signature: memp_overflow_check_all(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:258,1
    - Dst: LWIP_MEM_ALIGN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:264,1
    - Dst: memp_overflow_init_element
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct memp_desc*
    constantsTouched: []
    func_position:
      end: 287
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 287
    functionName: memp_init_pool
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - memp_overflow_init_element
    - LWIP_MEM_ALIGN
    linkageType: ''
    returnType: void
    signature: memp_init_pool(const struct memp_desc *desc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - memp_t
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: memp_is_not_empty
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8_t
    signature: memp_is_not_empty (memp_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:312,1
    - Dst: memp_init_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:313,1
    - Dst: memp_overflow_check_all
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:322,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:331,1
    - Dst: memp_overflow_check_all
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:343,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 345
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 345
    functionName: memp_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT
    - memp_overflow_check_all
    - LWIP_ARRAYSIZE
    - memp_init_pool
    linkageType: ''
    returnType: void
    signature: memp_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYS_ARCH_DECL_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:355,1
    - Dst: mem_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:358,1
    - Dst: MEMP_ALIGN_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:358,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:359,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:361,1
    - Dst: memp_overflow_check_element_overflow
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:369,1
    - Dst: memp_overflow_check_element_underflow
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:370,1
    - Dst: memp_overflow_init_element
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:382,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:385,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:394,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:398,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 3
    argNames:
    - desc
    - file
    - line
    argTypes:
    - struct memp_desc*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 406
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 406
    functionName: do_memp_malloc_pool_fn
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c
    functionUses: 0
    functionsReached:
    - memp_overflow_check_element_underflow
    - SYS_ARCH_UNPROTECT
    - LWIP_DEBUGF
    - mem_malloc
    - SYS_ARCH_PROTECT
    - MEMP_ALIGN_SIZE
    - memp_overflow_init_element
    - SYS_ARCH_DECL_PROTECT
    - memp_overflow_check_element_overflow
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: do_memp_malloc_pool_fn(const struct memp_desc *desc, const char* file,
      const int line)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:422,1
    - Dst: do_memp_malloc_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:428,1
    - Dst: do_memp_malloc_pool_fn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - desc
    - file
    - line
    argTypes:
    - struct memp_desc*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 432
      start: 419
    functionDepth: 2
    functionLinenumber: 419
    functionLinenumberEnd: 432
    functionName: memp_malloc_pool_fn
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c
    functionUses: 1
    functionsReached:
    - do_memp_malloc_pool_fn
    - do_memp_malloc_pool
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: memp_malloc_pool_fn(const struct memp_desc *desc, const char* file,
      const int line)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MEMP_IS_PBUF_POOL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - memp_t
    constantsTouched: []
    func_position:
      end: 451
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 451
    functionName: get_num_used_pool_ptr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c
    functionUses: 5
    functionsReached:
    - MEMP_IS_PBUF_POOL
    linkageType: ''
    returnType: int
    signature: '*get_num_used_pool_ptr(memp_t type)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:473,1
    - Dst: memp_overflow_check_all
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:476,1
    - Dst: do_memp_malloc_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:480,1
    - Dst: do_memp_malloc_pool_fn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:482,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:487,1
    - Dst: MEMP_IS_PBUF_POOL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:488,1
    - Dst: sys_profile_interval_set_pbuf_highwatermark
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:489,1
    - Dst: MEMP_PBUF_POOL_HIGHWATERMARK
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:489,1
    - Dst: MEMP_IS_PBUF_POOL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:493,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:497,1
    - Dst: sys_profile_interval_set_pbuf_highwatermark
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:498,1
    - Dst: MEMP_PBUF_POOL_HIGHWATERMARK
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:498,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - type
    - file
    - line
    argTypes:
    - memp_t
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 505
      start: 465
    functionDepth: 2
    functionLinenumber: 465
    functionLinenumberEnd: 505
    functionName: memp_malloc_fn
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - MEMP_IS_PBUF_POOL
    - do_memp_malloc_pool_fn
    - sys_profile_interval_set_pbuf_highwatermark
    - MEMP_PBUF_POOL_HIGHWATERMARK
    - LWIP_ERROR
    - memp_overflow_check_all
    - do_memp_malloc_pool
    linkageType: ''
    returnType: void
    signature: memp_malloc_fn(memp_t type, const char* file, const int line)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYS_ARCH_DECL_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:511,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:513,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:519,1
    - Dst: memp_overflow_check_element_overflow
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:522,1
    - Dst: memp_overflow_check_element_underflow
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:523,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:531,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:532,1
    - Dst: mem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:533,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:539,1
    - Dst: memp_sanity
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:539,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - desc
    - mem
    argTypes:
    - struct memp_desc*
    - void*
    constantsTouched: []
    func_position:
      end: 544
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 544
    functionName: do_memp_free_pool
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c
    functionUses: 0
    functionsReached:
    - memp_overflow_check_element_underflow
    - SYS_ARCH_UNPROTECT
    - SYS_ARCH_PROTECT
    - mem_free
    - memp_sanity
    - LWIP_UNUSED_ARG
    - SYS_ARCH_DECL_PROTECT
    - memp_overflow_check_element_overflow
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: do_memp_free_pool(const struct memp_desc* desc, void *mem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:555,1
    - Dst: do_memp_free_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:560,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - desc
    - mem
    argTypes:
    - struct memp_desc*
    - void*
    constantsTouched: []
    func_position:
      end: 561
      start: 552
    functionDepth: 2
    functionLinenumber: 552
    functionLinenumberEnd: 561
    functionName: memp_free_pool
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c
    functionUses: 1
    functionsReached:
    - do_memp_free_pool
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: memp_free_pool(const struct memp_desc* desc, void *mem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:580,1
    - Dst: memp_overflow_check_all
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:587,1
    - Dst: MEMP_IS_PBUF_POOL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:595,1
    - Dst: do_memp_free_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:600,1
    - Dst: LWIP_HOOK_MEMP_AVAILABLE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:604,1
    - Dst: MEMP_IS_PBUF_POOL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:609,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:610,1
    - Dst: sys_profile_interval_set_pbuf_highwatermark
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:611,1
    - Dst: MEMP_PBUF_POOL_HIGHWATERMARK
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:611,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - type
    - mem
    argTypes:
    - memp_t
    - void*
    constantsTouched: []
    func_position:
      end: 614
      start: 569
    functionDepth: 2
    functionLinenumber: 569
    functionLinenumberEnd: 614
    functionName: memp_free
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - LWIP_HOOK_MEMP_AVAILABLE
    - MEMP_IS_PBUF_POOL
    - MEMP_PBUF_POOL_HIGHWATERMARK
    - sys_profile_interval_set_pbuf_highwatermark
    - LWIP_ERROR
    - do_memp_free_pool
    - memp_overflow_check_all
    linkageType: ''
    returnType: void
    signature: memp_free(memp_t type, void *mem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MEMP_IS_PBUF_POOL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:620,1
    - Dst: LWIP_MEM_ALIGN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c:622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type
    - mem
    argTypes:
    - memp_t
    - void*
    constantsTouched: []
    func_position:
      end: 625
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 625
    functionName: memp_pbuf_index
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c
    functionUses: 0
    functionsReached:
    - MEMP_IS_PBUF_POOL
    - LWIP_MEM_ALIGN
    linkageType: ''
    returnType: u16_t
    signature: memp_pbuf_index(memp_t type, const void *mem)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - memp_t
    constantsTouched: []
    func_position:
      end: 631
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 631
    functionName: memp_num_pbufs
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16_t
    signature: memp_num_pbufs(memp_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/def.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - u16_t
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: lwip_htons
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/def.c
    functionUses: 2
    functionsReached:
    - PP_HTONS
    linkageType: ''
    returnType: u16_t
    signature: lwip_htons(u16_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/def.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - u32_t
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: lwip_htonl
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/def.c
    functionUses: 2
    functionsReached:
    - PP_HTONL
    linkageType: ''
    returnType: u32_t
    signature: lwip_htonl(u32_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_CONST_CAST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/def.c:110,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/def.c:113,1
    - Dst: LWIP_CONST_CAST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/def.c:114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - buffer
    - token
    - n
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 118
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 118
    functionName: lwip_strnstr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/def.c
    functionUses: 0
    functionsReached:
    - strncmp
    - LWIP_CONST_CAST
    linkageType: ''
    returnType: char
    signature: '*

      lwip_strnstr(const char* buffer, const char* token, size_t n)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 153
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 153
    functionName: lwip_stricmp
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: lwip_stricmp(const char* str1, const char* str2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - str1
    - str2
    - len
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 188
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 188
    functionName: lwip_strnicmp
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: lwip_strnicmp(const char* str1, const char* str2, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/def.c:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - result
    - bufsize
    - number
    argTypes:
    - char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 221
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 221
    functionName: lwip_itoa
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/def.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: void
    signature: lwip_itoa(char* result, size_t bufsize, int number)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip_chksum_pseudo
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:154,1
    - Dst: ip_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:155,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:155,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:157,1
    - Dst: tcp_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:159,1
    - Dst: TCP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 163
    functionName: IF__NETIF_CHECKSUM_ENABLED
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - tcp_debug_print
    - ip_current_src_addr
    - TCP_STATS_INC
    - ip_current_dest_addr
    - ip_chksum_pseudo
    linkageType: ''
    returnType: void
    signature: IF__NETIF_CHECKSUM_ENABLED(inp, NETIF_CHECKSUM_CHECK_TCP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TCP_EVENT_ERR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:562,1
    - Dst: tcp_pcb_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:564,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 569
      start: 552
    functionDepth: 3
    functionLinenumber: 552
    functionLinenumberEnd: 569
    functionName: tcp_input_delayed_close
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c
    functionUses: 0
    functionsReached:
    - TCP_EVENT_ERR
    - tcp_pcb_remove
    - memp_free
    linkageType: ''
    returnType: int
    signature: tcp_input_delayed_close(struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:597,1
    - Dst: tcp_rst
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:598,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:598,1
    - Dst: ip_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:599,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:601,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:604,1
    - Dst: tcp_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:608,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:614,1
    - Dst: TCP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:615,1
    - Dst: TCP_EVENT_ACCEPT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:616,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:617,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:625,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:625,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:626,1
    - Dst: ip_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:626,1
    - Dst: tcp_next_iss
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:632,1
    - Dst: ip_set_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:646,1
    - Dst: TCP_REG_ACTIVE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:651,1
    - Dst: tcp_parseopt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:654,1
    - Dst: tcp_eff_send_mss
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:659,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:662,1
    - Dst: tcp_enqueue_flags
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:665,1
    - Dst: tcp_abandon
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:667,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:670,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 56
    argCount: 2
    argNames:
    - pcb
    - inp
    argTypes:
    - struct tcp_pcb_listen*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 673
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 673
    functionName: tcp_listen_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c
    functionUses: 0
    functionsReached:
    - TCP_EVENT_ACCEPT
    - LWIP_UNUSED_ARG
    - tcp_rst
    - LWIP_DEBUGF
    - ip_addr_copy
    - ip_current_src_addr
    - tcp_output
    - ip_set_option
    - TCP_STATS_INC
    - tcp_abandon
    - MIB2_STATS_INC
    - tcp_alloc
    - tcp_enqueue_flags
    - tcp_next_iss
    - ip_current_dest_addr
    - tcp_eff_send_mss
    - TCP_REG_ACTIVE
    - tcp_parseopt
    linkageType: ''
    returnType: void
    signature: tcp_listen_input(struct tcp_pcb_listen *pcb, struct netif *inp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TCP_SEQ_BETWEEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:699,1
    - Dst: tcp_rst
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:701,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:701,1
    - Dst: ip_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:702,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:714,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 717
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 717
    functionName: tcp_timewait_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c
    functionUses: 0
    functionsReached:
    - tcp_rst
    - ip_current_src_addr
    - tcp_output
    - ip_current_dest_addr
    - TCP_SEQ_BETWEEN
    linkageType: ''
    returnType: void
    signature: tcp_timewait_input(struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TCP_SEQ_BETWEEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:753,1
    - Dst: tcp_ack_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:759,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:764,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:765,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:770,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:772,1
    - Dst: tcp_ack_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:780,1
    - Dst: tcp_parseopt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:790,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:795,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:796,1
    - Dst: tcp_eff_send_mss
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:809,1
    - Dst: LWIP_TCP_CALC_INITIAL_CWND
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:812,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:813,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:816,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:818,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:824,1
    - Dst: tcp_seg_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:829,1
    - Dst: TCP_EVENT_CONNECTED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:842,1
    - Dst: tcp_ack_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:846,1
    - Dst: tcp_rst
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:851,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:851,1
    - Dst: ip_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:852,1
    - Dst: tcp_rexmit_rto
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:858,1
    - Dst: TCP_SEQ_BETWEEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:865,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:867,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:870,1
    - Dst: tcp_backlog_accepted
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:879,1
    - Dst: TCP_EVENT_ACCEPT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:881,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:888,1
    - Dst: tcp_receive
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:894,1
    - Dst: LWIP_TCP_CALC_INITIAL_CWND
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:901,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:902,1
    - Dst: tcp_ack_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:907,1
    - Dst: tcp_rst
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:912,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:912,1
    - Dst: ip_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:913,1
    - Dst: tcp_rexmit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:917,1
    - Dst: tcp_receive
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:923,1
    - Dst: tcp_ack_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:925,1
    - Dst: tcp_receive
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:930,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:934,1
    - Dst: tcp_ack_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:936,1
    - Dst: tcp_pcb_purge
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:937,1
    - Dst: TCP_RMV_ACTIVE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:938,1
    - Dst: TCP_REG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:940,1
    - Dst: tcp_ack_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:942,1
    - Dst: tcp_receive
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:951,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:953,1
    - Dst: tcp_ack_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:954,1
    - Dst: tcp_pcb_purge
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:955,1
    - Dst: TCP_RMV_ACTIVE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:956,1
    - Dst: TCP_REG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:958,1
    - Dst: tcp_receive
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:962,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:964,1
    - Dst: tcp_pcb_purge
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:965,1
    - Dst: TCP_RMV_ACTIVE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:966,1
    - Dst: TCP_REG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:968,1
    - Dst: tcp_receive
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:972,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:974,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 177
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 983
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 983
    functionName: tcp_process
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c
    functionUses: 0
    functionsReached:
    - LWIP_TCP_CALC_INITIAL_CWND
    - tcp_receive
    - TCP_REG
    - tcp_rexmit_rto
    - TCP_SEQ_BETWEEN
    - LWIP_ASSERT
    - tcp_seg_free
    - LWIP_DEBUGF
    - tcp_pcb_purge
    - tcp_ack_now
    - tcp_abort
    - tcp_parseopt
    - TCP_EVENT_ACCEPT
    - tcp_backlog_accepted
    - lwip_ntohl
    - ip_current_dest_addr
    - TCP_RMV_ACTIVE
    - tcp_eff_send_mss
    - tcp_rst
    - tcp_rexmit
    - ip_current_src_addr
    - TCP_EVENT_CONNECTED
    linkageType: ''
    returnType: err_t
    signature: tcp_process(struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:996,1
    - Dst: tcp_segs_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:998,1
    - Dst: TCP_SEQ_GEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1004,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1007,1
    - Dst: TCPH_SET_FLAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1008,1
    - Dst: tcp_seg_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1012,1
    - Dst: TCP_SEQ_GT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1015,1
    - Dst: pbuf_realloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1018,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - cseg
    - next
    argTypes:
    - struct tcp_seg*
    - struct tcp_seg*
    constantsTouched: []
    func_position:
      end: 1022
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 1022
    functionName: tcp_oos_insert_segment
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c
    functionUses: 0
    functionsReached:
    - tcp_seg_free
    - TCP_SEQ_GEQ
    - TCP_SEQ_GT
    - tcp_segs_free
    - pbuf_realloc
    - TCPH_SET_FLAG
    - TCPH_FLAGS
    linkageType: ''
    returnType: void
    signature: tcp_oos_insert_segment(struct tcp_seg *cseg, struct tcp_seg *next)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1054,1
    - Dst: TCP_SEQ_LT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1060,1
    - Dst: TCP_SEQ_LT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1061,1
    - Dst: SND_WND_SCALE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1062,1
    - Dst: SND_WND_SCALE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1063,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1081,1
    - Dst: SND_WND_SCALE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1084,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1085,1
    - Dst: TCP_SEQ_LEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1114,1
    - Dst: tcp_rexmit_fast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1135,1
    - Dst: TCP_SEQ_BETWEEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1146,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1174,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1180,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1183,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1186,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1188,1
    - Dst: TCP_TCPLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1188,1
    - Dst: TCP_SEQ_LEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1193,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1193,1
    - Dst: TCP_TCPLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1194,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1195,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1196,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1197,1
    - Dst: TCP_TCPLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1198,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1203,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1204,1
    - Dst: pbuf_clen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1204,1
    - Dst: pbuf_clen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1206,1
    - Dst: tcp_seg_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1208,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1210,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1212,1
    - Dst: ip_current_is_v6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1228,1
    - Dst: nd6_reachability_hint
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1230,1
    - Dst: ip6_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1230,1
    - Dst: tcp_send_empty_ack
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1235,1
    - Dst: TCP_SEQ_BETWEEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1245,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1245,1
    - Dst: TCP_TCPLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1246,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1247,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1248,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1248,1
    - Dst: TCP_TCPLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1249,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1258,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1259,1
    - Dst: pbuf_clen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1259,1
    - Dst: pbuf_clen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1261,1
    - Dst: tcp_seg_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1263,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1264,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1266,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1273,1
    - Dst: TCP_SEQ_LT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1279,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1284,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1297,1
    - Dst: TCP_SEQ_BETWEEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1339,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1362,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1363,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1365,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1376,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1378,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1381,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1383,1
    - Dst: TCP_SEQ_LT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1390,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1394,1
    - Dst: tcp_ack_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1395,1
    - Dst: TCP_SEQ_BETWEEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1402,1
    - Dst: TCP_TCPLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1408,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1411,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1415,1
    - Dst: TCPH_FLAGS_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1418,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1418,1
    - Dst: TCPWND_CHECK16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1421,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1423,1
    - Dst: pbuf_realloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1426,1
    - Dst: TCP_TCPLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1427,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1428,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1436,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1437,1
    - Dst: tcp_seg_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1445,1
    - Dst: TCP_SEQ_GEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1452,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1455,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1456,1
    - Dst: TCPH_SET_FLAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1457,1
    - Dst: TCP_TCPLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1458,1
    - Dst: tcp_seg_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1462,1
    - Dst: TCP_SEQ_GT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1467,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1471,1
    - Dst: pbuf_realloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1474,1
    - Dst: TCP_TCPLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1475,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1476,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1487,1
    - Dst: tcp_update_rcv_ann_wnd
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1490,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1508,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1509,1
    - Dst: TCP_TCPLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1522,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1523,1
    - Dst: TCP_TCPLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1524,1
    - Dst: TCP_TCPLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1525,1
    - Dst: tcp_update_rcv_ann_wnd
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1527,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1536,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1542,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1543,1
    - Dst: tcp_seg_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1551,1
    - Dst: tcp_ack
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1557,1
    - Dst: ip_current_is_v6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1560,1
    - Dst: nd6_reachability_hint
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1562,1
    - Dst: ip6_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1562,1
    - Dst: tcp_send_empty_ack
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1568,1
    - Dst: tcp_seg_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1572,1
    - Dst: tcp_seg_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1597,1
    - Dst: tcp_oos_insert_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1604,1
    - Dst: TCP_SEQ_LT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1615,1
    - Dst: tcp_seg_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1620,1
    - Dst: tcp_oos_insert_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1623,1
    - Dst: TCP_SEQ_BETWEEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1630,1
    - Dst: tcp_seg_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1636,1
    - Dst: TCP_SEQ_GT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1638,1
    - Dst: pbuf_realloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1641,1
    - Dst: tcp_oos_insert_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1644,1
    - Dst: TCP_SEQ_GT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1653,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1654,1
    - Dst: tcp_seg_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1658,1
    - Dst: TCP_SEQ_GT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1660,1
    - Dst: pbuf_realloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1663,1
    - Dst: TCP_SEQ_GT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1666,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1667,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1671,1
    - Dst: TCPH_FLAGS_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1674,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1674,1
    - Dst: pbuf_realloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1678,1
    - Dst: TCP_TCPLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1679,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1680,1
    - Dst: pbuf_clen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1699,1
    - Dst: tcp_segs_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1703,1
    - Dst: tcp_send_empty_ack
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1719,1
    - Dst: TCP_SEQ_BETWEEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1724,1
    - Dst: tcp_ack_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1725,1
    CyclomaticComplexity: 108
    EdgeCount: 108
    ICount: 350
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 1728
      start: 1037
    functionDepth: 2
    functionLinenumber: 1037
    functionLinenumberEnd: 1728
    functionName: tcp_receive
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c
    functionUses: 1
    functionsReached:
    - tcp_rexmit_fast
    - TCP_SEQ_GT
    - TCP_SEQ_LEQ
    - TCP_SEQ_BETWEEN
    - LWIP_ASSERT
    - tcp_seg_free
    - LWIP_DEBUGF
    - TCPH_FLAGS_SET
    - TCP_SEQ_GEQ
    - tcp_ack_now
    - pbuf_clen
    - tcp_update_rcv_ann_wnd
    - TCPWND_CHECK16
    - ip6_current_src_addr
    - tcp_ack
    - SND_WND_SCALE
    - TCP_TCPLEN
    - lwip_ntohl
    - pbuf_header
    - tcp_segs_free
    - pbuf_realloc
    - tcp_send_empty_ack
    - ip_current_is_v6
    - nd6_reachability_hint
    - pbuf_cat
    - TCP_SEQ_LT
    - tcp_seg_copy
    - tcp_oos_insert_segment
    - TCPH_SET_FLAG
    - TCPH_FLAGS
    linkageType: ''
    returnType: void
    signature: tcp_receive(struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1730
    functionDepth: 0
    functionLinenumber: 1730
    functionLinenumberEnd: 1740
    functionName: tcp_getoptbyte
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8_t
    signature: tcp_getoptbyte(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcp_getoptbyte
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1762,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1766,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1770,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1773,1
    - Dst: tcp_getoptbyte
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1774,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1776,1
    - Dst: tcp_getoptbyte
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1780,1
    - Dst: tcp_getoptbyte
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1781,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1787,1
    - Dst: tcp_getoptbyte
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1788,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1790,1
    - Dst: tcp_getoptbyte
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1794,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1805,1
    - Dst: TCPWND_MIN16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1805,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1806,1
    - Dst: TCPWND_MIN16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1806,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1813,1
    - Dst: tcp_getoptbyte
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1814,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1816,1
    - Dst: tcp_getoptbyte
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1820,1
    - Dst: tcp_getoptbyte
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1821,1
    - Dst: tcp_getoptbyte
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1822,1
    - Dst: tcp_getoptbyte
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1823,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1825,1
    - Dst: TCP_SEQ_BETWEEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1829,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1830,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1837,1
    - Dst: tcp_getoptbyte
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1838,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c:1840,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 1851
      start: 1750
    functionDepth: 1
    functionLinenumber: 1750
    functionLinenumberEnd: 1851
    functionName: tcp_parseopt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c
    functionUses: 2
    functionsReached:
    - LWIP_DEBUGF
    - TCPWND_MIN16
    - lwip_ntohl
    - tcp_getoptbyte
    - TCP_SEQ_BETWEEN
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: tcp_parseopt(struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1853
    functionDepth: 0
    functionLinenumber: 1853
    functionLinenumberEnd: 1857
    functionName: tcp_trigger_input_pcb_close
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: tcp_trigger_input_pcb_close(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TCP_ENSURE_LOCAL_PORT_RANGE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:148,1
    - Dst: LWIP_RAND
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: tcp_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 0
    functionsReached:
    - LWIP_RAND
    - TCP_ENSURE_LOCAL_PORT_RANGE
    linkageType: ''
    returnType: void
    signature: tcp_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcp_fasttmr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:159,1
    - Dst: tcp_slowtmr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 166
    functionName: tcp_tmr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 2
    functionsReached:
    - tcp_slowtmr
    - tcp_fasttmr
    linkageType: ''
    returnType: void
    signature: tcp_tmr(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - list
    - lpcb
    argTypes:
    - struct tcp_pcb*
    - struct tcp_pcb_listen*
    constantsTouched: []
    func_position:
      end: 181
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 181
    functionName: tcp_remove_listener
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: tcp_remove_listener(struct tcp_pcb *list, struct tcp_pcb_listen *lpcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:192,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:193,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:194,1
    - Dst: tcp_remove_listener
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:195,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 199
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 199
    functionName: tcp_listen_closed
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - LWIP_ARRAYSIZE
    - tcp_remove_listener
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: tcp_listen_closed(struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:215,1
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:216,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 224
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 224
    functionName: tcp_backlog_delayed
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT_CORE_LOCKED
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: tcp_backlog_delayed(struct tcp_pcb* pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:238,1
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:239,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:242,1
    - Dst: tcp_clear_flags
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 247
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 247
    functionName: tcp_backlog_accepted
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 1
    functionsReached:
    - tcp_clear_flags
    - LWIP_ASSERT_CORE_LOCKED
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: tcp_backlog_accepted(struct tcp_pcb* pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TCP_WND_MAX
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:270,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:273,1
    - Dst: tcp_rst
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:277,1
    - Dst: tcp_pcb_purge
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:280,1
    - Dst: TCP_RMV_ACTIVE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:281,1
    - Dst: TCP_REG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:285,1
    - Dst: tcp_trigger_input_pcb_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:290,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:292,1
    - Dst: TCP_RMV
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:311,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:313,1
    - Dst: tcp_listen_closed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:316,1
    - Dst: tcp_pcb_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:317,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:318,1
    - Dst: TCP_PCB_REMOVE_ACTIVE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:321,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:322,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:323,1
    - Dst: tcp_close_shutdown_fin
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:326,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 2
    argNames:
    - pcb
    - rst_on_unacked_data
    argTypes:
    - struct tcp_pcb*
    - u8_t
    constantsTouched: []
    func_position:
      end: 329
      start: 266
    functionDepth: 3
    functionLinenumber: 266
    functionLinenumberEnd: 329
    functionName: tcp_close_shutdown
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 0
    functionsReached:
    - tcp_rst
    - TCP_RMV
    - tcp_listen_closed
    - memp_free
    - tcp_pcb_purge
    - TCP_REG
    - MIB2_STATS_INC
    - TCP_PCB_REMOVE_ACTIVE
    - tcp_pcb_remove
    - TCP_WND_MAX
    - tcp_trigger_input_pcb_close
    - TCP_RMV_ACTIVE
    - tcp_close_shutdown_fin
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: tcp_close_shutdown(struct tcp_pcb *pcb, u8_t rst_on_unacked_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:335,1
    - Dst: tcp_send_fin
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:339,1
    - Dst: tcp_backlog_accepted
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:341,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:342,1
    - Dst: tcp_send_fin
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:347,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:349,1
    - Dst: tcp_send_fin
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:354,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:356,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:371,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 383
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 383
    functionName: tcp_close_shutdown_fin
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 1
    functionsReached:
    - tcp_backlog_accepted
    - tcp_output
    - tcp_send_fin
    - MIB2_STATS_INC
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: tcp_close_shutdown_fin(struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:403,1
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:404,1
    - Dst: tcp_debug_print_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:405,1
    - Dst: tcp_close_shutdown
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 413
      start: 400
    functionDepth: 4
    functionLinenumber: 400
    functionLinenumberEnd: 413
    functionName: tcp_close
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 1
    functionsReached:
    - LWIP_ASSERT_CORE_LOCKED
    - LWIP_DEBUGF
    - tcp_close_shutdown
    - tcp_debug_print_state
    linkageType: ''
    returnType: err_t
    signature: tcp_close(struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:431,1
    - Dst: tcp_close_shutdown
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:440,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:444,1
    - Dst: tcp_close_shutdown
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:455,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - pcb
    - shut_rx
    - shut_tx
    argTypes:
    - struct tcp_pcb*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 463
      start: 428
    functionDepth: 4
    functionLinenumber: 428
    functionLinenumberEnd: 463
    functionName: tcp_shutdown
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 1
    functionsReached:
    - tcp_close_shutdown
    - LWIP_ASSERT_CORE_LOCKED
    - pbuf_free
    linkageType: ''
    returnType: err_t
    signature: tcp_shutdown(struct tcp_pcb *pcb, int shut_rx, int shut_tx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:482,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:484,1
    - Dst: tcp_pcb_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:490,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:491,1
    - Dst: TCP_RMV
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:505,1
    - Dst: TCP_PCB_REMOVE_ACTIVE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:510,1
    - Dst: tcp_segs_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:513,1
    - Dst: tcp_segs_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:516,1
    - Dst: tcp_segs_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:520,1
    - Dst: tcp_backlog_accepted
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:523,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:525,1
    - Dst: tcp_rst
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:526,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:529,1
    - Dst: TCP_EVENT_ERR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:530,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 2
    argNames:
    - pcb
    - reset
    argTypes:
    - struct tcp_pcb*
    - int
    constantsTouched: []
    func_position:
      end: 532
      start: 473
    functionDepth: 3
    functionLinenumber: 473
    functionLinenumberEnd: 532
    functionName: tcp_abandon
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 1
    functionsReached:
    - tcp_rst
    - LWIP_DEBUGF
    - memp_free
    - tcp_backlog_accepted
    - LWIP_ASSERT
    - TCP_EVENT_ERR
    - LWIP_ASSERT_CORE_LOCKED
    - tcp_pcb_remove
    - TCP_PCB_REMOVE_ACTIVE
    - tcp_segs_free
    - TCP_RMV
    linkageType: ''
    returnType: void
    signature: tcp_abandon(struct tcp_pcb *pcb, int reset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcp_abandon
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 549
      start: 545
    functionDepth: 4
    functionLinenumber: 545
    functionLinenumberEnd: 549
    functionName: tcp_abort
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 21
    functionsReached:
    - tcp_abandon
    linkageType: ''
    returnType: void
    signature: tcp_abort(struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:573,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:587,1
    - Dst: ip_get_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:595,1
    - Dst: tcp_new_port
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:601,1
    - Dst: ip_get_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:614,1
    - Dst: ip_get_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:615,1
    - Dst: IP_IS_V6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:619,1
    - Dst: IP_IS_V6_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:619,1
    - Dst: ip_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:620,1
    - Dst: ip_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:621,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:622,1
    - Dst: ip_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:631,1
    - Dst: ip_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:632,1
    - Dst: TCP_REG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:635,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:636,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 3
    argNames:
    - pcb
    - ipaddr
    - port
    argTypes:
    - struct tcp_pcb*
    - ip_addr_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 638
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 638
    functionName: tcp_bind
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 1
    functionsReached:
    - ip_addr_cmp
    - LWIP_DEBUGF
    - TCP_REG
    - LWIP_ERROR
    - ip_addr_set
    - tcp_new_port
    - LWIP_ASSERT_CORE_LOCKED
    - ip_get_option
    - IP_IS_V6_VAL
    - IP_IS_V6
    - ip_addr_isany
    linkageType: ''
    returnType: err_t
    signature: tcp_bind(struct tcp_pcb *pcb, const ip_addr_t *ipaddr, u16_t port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_get_index
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pcb
    - netif
    argTypes:
    - struct tcp_pcb*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 655
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 655
    functionName: tcp_bind_netif
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 0
    functionsReached:
    - netif_get_index
    linkageType: ''
    returnType: void
    signature: tcp_bind_netif(struct tcp_pcb *pcb, const struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:664,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:665,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - arg
    - pcb
    - err
    argTypes:
    - void*
    - struct tcp_pcb*
    - err_t
    constantsTouched: []
    func_position:
      end: 670
      start: 661
    functionDepth: 5
    functionLinenumber: 661
    functionLinenumberEnd: 670
    functionName: tcp_accept_null
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - tcp_abort
    linkageType: ''
    returnType: err_t
    signature: tcp_accept_null(void *arg, struct tcp_pcb *pcb, err_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:691,1
    - Dst: tcp_listen_with_backlog_and_err
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pcb
    - backlog
    argTypes:
    - struct tcp_pcb*
    - u8_t
    constantsTouched: []
    func_position:
      end: 693
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 693
    functionName: tcp_listen_with_backlog
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT_CORE_LOCKED
    - tcp_listen_with_backlog_and_err
    linkageType: ''
    returnType: struct tcp_pcb
    signature: '*

      tcp_listen_with_backlog(struct tcp_pcb *pcb, u8_t backlog)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:717,1
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:718,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:719,1
    - Dst: ip_get_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:728,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:734,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:743,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:756,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:758,1
    - Dst: TCP_RMV
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:760,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:762,1
    - Dst: tcp_backlog_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:768,1
    - Dst: TCP_REG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:770,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 3
    argNames:
    - pcb
    - backlog
    - err
    argTypes:
    - struct tcp_pcb*
    - u8_t
    - err_t*
    constantsTouched: []
    func_position:
      end: 777
      start: 711
    functionDepth: 3
    functionLinenumber: 711
    functionLinenumberEnd: 777
    functionName: tcp_listen_with_backlog_and_err
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 1
    functionsReached:
    - IP_SET_TYPE_VAL
    - memp_free
    - ip_addr_copy
    - TCP_REG
    - LWIP_ERROR
    - ip_get_option
    - LWIP_ASSERT_CORE_LOCKED
    - memp_malloc
    - LWIP_UNUSED_ARG
    - tcp_backlog_set
    - ip_addr_cmp
    - TCP_RMV
    linkageType: ''
    returnType: struct tcp_pcb
    signature: '*

      tcp_listen_with_backlog_and_err(struct tcp_pcb *pcb, u8_t backlog, err_t *err)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TCP_SEQ_GEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:790,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:790,1
    - Dst: TCP_SEQ_GT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:795,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:803,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 809
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 809
    functionName: tcp_update_rcv_ann_wnd
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 1
    functionsReached:
    - LWIP_ASSERT
    - TCP_SEQ_GEQ
    - LWIP_MIN
    - TCP_SEQ_GT
    linkageType: ''
    returnType: u32_t
    signature: tcp_update_rcv_ann_wnd(struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:825,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:827,1
    - Dst: TCP_WND_MAX
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:831,1
    - Dst: TCP_WND_MAX
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:832,1
    - Dst: TCP_WND_MAX
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:839,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:841,1
    - Dst: tcp_update_rcv_ann_wnd
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:845,1
    - Dst: tcp_ack_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:852,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:853,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:856,1
    - Dst: TCP_WND_MAX
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:857,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - pcb
    - len
    argTypes:
    - struct tcp_pcb*
    - u16_t
    constantsTouched: []
    func_position:
      end: 858
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 858
    functionName: tcp_recved
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 1
    functionsReached:
    - tcp_update_rcv_ann_wnd
    - LWIP_DEBUGF
    - tcp_ack_now
    - tcp_output
    - LWIP_ASSERT_CORE_LOCKED
    - TCP_WND_MAX
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: tcp_recved(struct tcp_pcb *pcb, u16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 888
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 888
    functionName: tcp_new_port
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u16_t
    signature: tcp_new_port(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:912,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:918,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:920,1
    - Dst: ip_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:921,1
    - Dst: ip_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:925,1
    - Dst: ip_route_get_local_ip
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:929,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:936,1
    - Dst: tcp_new_port
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:941,1
    - Dst: ip_get_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:947,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:957,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:958,1
    - Dst: tcp_next_iss
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:968,1
    - Dst: TCPWND_MIN16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:976,1
    - Dst: tcp_eff_send_mss
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:983,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:989,1
    - Dst: tcp_enqueue_flags
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:993,1
    - Dst: TCP_RMV
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:998,1
    - Dst: TCP_REG_ACTIVE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1000,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1001,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1003,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 4
    argNames:
    - pcb
    - ipaddr
    - port
    - connected
    argTypes:
    - struct tcp_pcb*
    - ip_addr_t*
    - u16_t
    - tcp_connected_fn
    constantsTouched: []
    func_position:
      end: 1006
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 1006
    functionName: tcp_connect
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 1
    functionsReached:
    - tcp_new_port
    - tcp_enqueue_flags
    - tcp_next_iss
    - LWIP_DEBUGF
    - LWIP_ERROR
    - ip_addr_set
    - MIB2_STATS_INC
    - LWIP_ASSERT_CORE_LOCKED
    - ip_route_get_local_ip
    - TCPWND_MIN16
    - ip_addr_copy
    - TCP_REG_ACTIVE
    - tcp_eff_send_mss
    - TCP_RMV
    - ip_addr_isany
    - tcp_output
    - ip_get_option
    - LWIP_UNUSED_ARG
    - ip_addr_cmp
    linkageType: ''
    returnType: err_t
    signature: "tcp_connect(struct tcp_pcb *pcb, const ip_addr_t *ipaddr, u16_t port,\n
      \     tcp_connected_fn connected)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1034,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1037,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1038,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1039,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1040,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1053,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1057,1
    - Dst: tcp_zero_window_probe
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1067,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1082,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1089,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1091,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1098,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1104,1
    - Dst: tcp_rexmit_rto
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1110,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1123,1
    - Dst: ip_get_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1129,1
    - Dst: TCP_KEEP_DUR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1133,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1135,1
    - Dst: ip_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1136,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1137,1
    - Dst: TCP_KEEP_INTVL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1142,1
    - Dst: tcp_keepalive
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1145,1
    - Dst: tcp_segs_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1158,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1160,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1169,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1177,1
    - Dst: tcp_pcb_purge
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1189,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1192,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1196,1
    - Dst: tcp_rst
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1201,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1209,1
    - Dst: TCP_EVENT_ERR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1212,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1225,1
    - Dst: TCP_EVENT_POLL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1227,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1233,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1244,1
    - Dst: tcp_pcb_purge
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1255,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1258,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1262,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1267,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 171
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1015
    functionDepth: 3
    functionLinenumber: 1015
    functionLinenumberEnd: 1273
    functionName: tcp_slowtmr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 2
    functionsReached:
    - tcp_rst
    - LWIP_DEBUGF
    - tcp_zero_window_probe
    - TCP_EVENT_POLL
    - memp_free
    - tcp_pcb_purge
    - TCP_EVENT_ERR
    - tcp_keepalive
    - tcp_output
    - TCP_KEEP_DUR
    - TCP_KEEP_INTVL
    - LWIP_MIN
    - tcp_segs_free
    - tcp_rexmit_rto
    - ip_addr_debug_print
    - ip_get_option
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: tcp_slowtmr(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1297,1
    - Dst: tcp_ack_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1298,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1299,1
    - Dst: tcp_clear_flags
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1300,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1304,1
    - Dst: tcp_clear_flags
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1305,1
    - Dst: tcp_close_shutdown_fin
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1306,1
    - Dst: tcp_process_refused_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1314,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1281
    functionDepth: 2
    functionLinenumber: 1281
    functionLinenumberEnd: 1325
    functionName: tcp_fasttmr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 2
    functionsReached:
    - LWIP_DEBUGF
    - tcp_output
    - tcp_ack_now
    - tcp_clear_flags
    - tcp_close_shutdown_fin
    - tcp_process_refused_data
    linkageType: ''
    returnType: void
    signature: tcp_fasttmr(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1328
    functionDepth: 1
    functionLinenumber: 1328
    functionLinenumberEnd: 1338
    functionName: tcp_txnow
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 0
    functionsReached:
    - tcp_output
    linkageType: ''
    returnType: void
    signature: tcp_txnow(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_split_64k
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1355,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1361,1
    - Dst: TCP_EVENT_RECV
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1362,1
    - Dst: TCP_WND_MAX
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1372,1
    - Dst: TCP_EVENT_CLOSED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1375,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1384,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1390,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 1398
      start: 1341
    functionDepth: 1
    functionLinenumber: 1341
    functionLinenumberEnd: 1398
    functionName: tcp_process_refused_data
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - pbuf_cat
    - TCP_EVENT_CLOSED
    - pbuf_split_64k
    - TCP_EVENT_RECV
    - TCP_WND_MAX
    linkageType: ''
    returnType: err_t
    signature: tcp_process_refused_data(struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcp_seg_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - seg
    argTypes:
    - struct tcp_seg*
    constantsTouched: []
    func_position:
      end: 1413
      start: 1405
    functionDepth: 1
    functionLinenumber: 1405
    functionLinenumberEnd: 1413
    functionName: tcp_segs_free
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 4
    functionsReached:
    - tcp_seg_free
    linkageType: ''
    returnType: void
    signature: tcp_segs_free(struct tcp_seg *seg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1425,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - seg
    argTypes:
    - struct tcp_seg*
    constantsTouched: []
    func_position:
      end: 1432
      start: 1420
    functionDepth: 3
    functionLinenumber: 1420
    functionLinenumberEnd: 1432
    functionName: tcp_seg_free
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 4
    functionsReached:
    - memp_free
    - pbuf_free
    linkageType: ''
    returnType: void
    signature: tcp_seg_free(struct tcp_seg *seg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pcb
    - prio
    argTypes:
    - struct tcp_pcb*
    - u8_t
    constantsTouched: []
    func_position:
      end: 1445
      start: 1440
    functionDepth: 0
    functionLinenumber: 1440
    functionLinenumberEnd: 1445
    functionName: tcp_setprio
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT_CORE_LOCKED
    linkageType: ''
    returnType: void
    signature: tcp_setprio(struct tcp_pcb *pcb, u8_t prio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1460,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1464,1
    - Dst: pbuf_ref
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - seg
    argTypes:
    - struct tcp_seg*
    constantsTouched: []
    func_position:
      end: 1467
      start: 1455
    functionDepth: 1
    functionLinenumber: 1455
    functionLinenumberEnd: 1467
    functionName: tcp_seg_copy
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 1
    functionsReached:
    - pbuf_ref
    - memp_malloc
    - SMEMCPY
    linkageType: ''
    returnType: struct tcp_seg
    signature: '*

      tcp_seg_copy(struct tcp_seg *seg)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1478,1
    - Dst: tcp_recved
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1480,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1481,1
    - Dst: tcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - arg
    - pcb
    - p
    - err
    argTypes:
    - void*
    - struct tcp_pcb*
    - struct pbuf*
    - err_t
    constantsTouched: []
    func_position:
      end: 1486
      start: 1475
    functionDepth: 5
    functionLinenumber: 1475
    functionLinenumberEnd: 1486
    functionName: tcp_recv_null
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - pbuf_free
    - tcp_close
    - tcp_recved
    linkageType: ''
    returnType: err_t
    signature: tcp_recv_null(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t
      err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1502,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1516,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1518,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - prio
    argTypes:
    - u8_t
    constantsTouched: []
    func_position:
      end: 1520
      start: 1495
    functionDepth: 5
    functionLinenumber: 1495
    functionLinenumberEnd: 1520
    functionName: tcp_kill_prio
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - LWIP_MIN
    - tcp_abort
    linkageType: ''
    returnType: void
    signature: tcp_kill_prio(u8_t prio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1532,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1547,1
    - Dst: tcp_abandon
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1550,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - state
    argTypes:
    - enum tcp_state
    constantsTouched: []
    func_position:
      end: 1552
      start: 1526
    functionDepth: 4
    functionLinenumber: 1526
    functionLinenumberEnd: 1552
    functionName: tcp_kill_state
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 0
    functionsReached:
    - tcp_abandon
    - LWIP_DEBUGF
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: tcp_kill_state(enum tcp_state state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1574,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1576,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1558
    functionDepth: 5
    functionLinenumber: 1558
    functionLinenumberEnd: 1578
    functionName: tcp_kill_timewait
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - tcp_abort
    linkageType: ''
    returnType: void
    signature: tcp_kill_timewait(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1591,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1593,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1596,1
    - Dst: tcp_kill_timewait
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1597,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1599,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1602,1
    - Dst: tcp_kill_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1603,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1605,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1608,1
    - Dst: tcp_kill_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1609,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1611,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1614,1
    - Dst: tcp_kill_prio
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1615,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1617,1
    - Dst: MEMP_STATS_DEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1620,1
    - Dst: MEMP_STATS_DEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1625,1
    - Dst: MEMP_STATS_DEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1630,1
    - Dst: MEMP_STATS_DEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1635,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1640,1
    - Dst: TCPWND_MIN16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1645,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 55
    argCount: 1
    argNames:
    - prio
    argTypes:
    - u8_t
    constantsTouched: []
    func_position:
      end: 1678
      start: 1586
    functionDepth: 6
    functionLinenumber: 1586
    functionLinenumberEnd: 1678
    functionName: tcp_alloc
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - tcp_kill_prio
    - TCPWND_MIN16
    - tcp_kill_state
    - memset
    - MEMP_STATS_DEC
    - tcp_kill_timewait
    - LWIP_ASSERT_CORE_LOCKED
    - memp_malloc
    linkageType: ''
    returnType: struct tcp_pcb
    signature: '*

      tcp_alloc(u8_t prio)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcp_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1693
    functionDepth: 7
    functionLinenumber: 1693
    functionLinenumberEnd: 1697
    functionName: tcp_new
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 3
    functionsReached:
    - tcp_alloc
    linkageType: ''
    returnType: struct tcp_pcb
    signature: '*

      tcp_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcp_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1714,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1717,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1718,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1721,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - u8_t
    constantsTouched: []
    func_position:
      end: 1724
      start: 1710
    functionDepth: 7
    functionLinenumber: 1710
    functionLinenumberEnd: 1724
    functionName: tcp_new_ip_type
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 1
    functionsReached:
    - LWIP_UNUSED_ARG
    - tcp_alloc
    - IP_SET_TYPE_VAL
    linkageType: ''
    returnType: struct tcp_pcb
    signature: '*

      tcp_new_ip_type(u8_t type)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pcb
    - arg
    argTypes:
    - struct tcp_pcb*
    - void*
    constantsTouched: []
    func_position:
      end: 1743
      start: 1734
    functionDepth: 0
    functionLinenumber: 1734
    functionLinenumberEnd: 1743
    functionName: tcp_arg
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 4
    functionsReached:
    - LWIP_ASSERT_CORE_LOCKED
    linkageType: ''
    returnType: void
    signature: tcp_arg(struct tcp_pcb *pcb, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1757,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pcb
    - recv
    argTypes:
    - struct tcp_pcb*
    - tcp_recv_fn
    constantsTouched: []
    func_position:
      end: 1762
      start: 1754
    functionDepth: 0
    functionLinenumber: 1754
    functionLinenumberEnd: 1762
    functionName: tcp_recv
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 4
    functionsReached:
    - LWIP_ASSERT_CORE_LOCKED
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: tcp_recv(struct tcp_pcb *pcb, tcp_recv_fn recv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1775,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pcb
    - sent
    argTypes:
    - struct tcp_pcb*
    - tcp_sent_fn
    constantsTouched: []
    func_position:
      end: 1780
      start: 1772
    functionDepth: 0
    functionLinenumber: 1772
    functionLinenumberEnd: 1780
    functionName: tcp_sent
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 2
    functionsReached:
    - LWIP_ASSERT_CORE_LOCKED
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: tcp_sent(struct tcp_pcb *pcb, tcp_sent_fn sent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1796,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pcb
    - err
    argTypes:
    - struct tcp_pcb*
    - tcp_err_fn
    constantsTouched: []
    func_position:
      end: 1801
      start: 1793
    functionDepth: 0
    functionLinenumber: 1793
    functionLinenumberEnd: 1801
    functionName: tcp_err
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 4
    functionsReached:
    - LWIP_ASSERT_CORE_LOCKED
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: tcp_err(struct tcp_pcb *pcb, tcp_err_fn err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1815,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - pcb
    - accept
    argTypes:
    - struct tcp_pcb*
    - tcp_accept_fn
    constantsTouched: []
    func_position:
      end: 1820
      start: 1812
    functionDepth: 0
    functionLinenumber: 1812
    functionLinenumberEnd: 1820
    functionName: tcp_accept
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 1
    functionsReached:
    - LWIP_ASSERT_CORE_LOCKED
    linkageType: ''
    returnType: void
    signature: tcp_accept(struct tcp_pcb *pcb, tcp_accept_fn accept)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1834,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1835,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - pcb
    - poll
    - interval
    argTypes:
    - struct tcp_pcb*
    - tcp_poll_fn
    - u8_t
    constantsTouched: []
    func_position:
      end: 1842
      start: 1831
    functionDepth: 0
    functionLinenumber: 1831
    functionLinenumberEnd: 1842
    functionName: tcp_poll
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - LWIP_ASSERT_CORE_LOCKED
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: tcp_poll(struct tcp_pcb *pcb, tcp_poll_fn poll, u8_t interval)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1857,1
    - Dst: tcp_backlog_accepted
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1859,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1862,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1863,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1867,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1870,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1874,1
    - Dst: tcp_segs_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1876,1
    - Dst: tcp_segs_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1884,1
    - Dst: tcp_segs_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1885,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 1891
      start: 1850
    functionDepth: 2
    functionLinenumber: 1850
    functionLinenumberEnd: 1891
    functionName: tcp_pcb_purge
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 3
    functionsReached:
    - tcp_segs_free
    - LWIP_DEBUGF
    - pbuf_free
    - tcp_backlog_accepted
    linkageType: ''
    returnType: void
    signature: tcp_pcb_purge(struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TCP_RMV
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1902,1
    - Dst: tcp_pcb_purge
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1904,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1911,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1915,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1916,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1918,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1926,1
    - Dst: tcp_pcbs_sane
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1926,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - pcblist
    - pcb
    argTypes:
    - struct tcp_pcb**
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 1927
      start: 1899
    functionDepth: 3
    functionLinenumber: 1899
    functionLinenumberEnd: 1927
    functionName: tcp_pcb_remove
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 3
    functionsReached:
    - TCP_RMV
    - tcp_pcb_purge
    - tcp_pcbs_sane
    - tcp_output
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: tcp_pcb_remove(struct tcp_pcb **pcblist, struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_HOOK_TCP_ISN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1938,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:1942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 1947
      start: 1934
    functionDepth: 0
    functionLinenumber: 1934
    functionLinenumberEnd: 1947
    functionName: tcp_next_iss
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 5
    functionsReached:
    - LWIP_UNUSED_ARG
    - LWIP_HOOK_TCP_ISN
    linkageType: ''
    returnType: u32_t
    signature: tcp_next_iss(struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2029,1
    - Dst: IP_IS_V4_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2032,1
    - Dst: ip4_addr_islinklocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2032,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2032,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2037,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2038,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - old_addr
    - pcb_list
    argTypes:
    - ip_addr_t*
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 2044
      start: 2022
    functionDepth: 5
    functionLinenumber: 2022
    functionLinenumberEnd: 2044
    functionName: tcp_netif_ip_addr_changed_pcblist
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - tcp_abort
    - IP_IS_V4_VAL
    - ip4_addr_islinklocal
    - ip_2_ip4
    - ip_addr_cmp
    linkageType: ''
    returnType: void
    signature: tcp_netif_ip_addr_changed_pcblist(const ip_addr_t* old_addr, struct
      tcp_pcb* pcb_list)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2056,1
    - Dst: tcp_netif_ip_addr_changed_pcblist
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2057,1
    - Dst: tcp_netif_ip_addr_changed_pcblist
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2058,1
    - Dst: ip_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2060,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2065,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2068,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - old_addr
    - new_addr
    argTypes:
    - ip_addr_t*
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 2073
      start: 2051
    functionDepth: 6
    functionLinenumber: 2051
    functionLinenumberEnd: 2073
    functionName: tcp_netif_ip_addr_changed
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 0
    functionsReached:
    - ip_addr_copy
    - tcp_netif_ip_addr_changed_pcblist
    - ip_addr_cmp
    - ip_addr_isany
    linkageType: ''
    returnType: void
    signature: tcp_netif_ip_addr_changed(const ip_addr_t* old_addr, const ip_addr_t*
      new_addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - enum tcp_state
    constantsTouched: []
    func_position:
      end: 2079
      start: 2075
    functionDepth: 0
    functionLinenumber: 2075
    functionLinenumberEnd: 2079
    functionName: tcp_debug_state_str
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*

      tcp_debug_state_str(enum tcp_state s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2090,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2091,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2092,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2093,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2093,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2094,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2095,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2096,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2097,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2098,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2099,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2100,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2101,1
    - Dst: TCPH_HDRLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2102,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2103,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2104,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2105,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2106,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2107,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2108,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2109,1
    - Dst: tcp_debug_print_flags
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2110,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2110,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2111,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2112,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2113,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2114,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2114,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - tcphdr
    argTypes:
    - struct tcp_hdr*
    constantsTouched: []
    func_position:
      end: 2116
      start: 2087
    functionDepth: 1
    functionLinenumber: 2087
    functionLinenumberEnd: 2116
    functionName: tcp_debug_print
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - lwip_ntohs
    - lwip_ntohl
    - tcp_debug_print_flags
    - TCPH_HDRLEN
    - TCPH_FLAGS
    linkageType: ''
    returnType: void
    signature: tcp_debug_print(struct tcp_hdr *tcphdr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - enum tcp_state
    constantsTouched: []
    func_position:
      end: 2127
      start: 2123
    functionDepth: 0
    functionLinenumber: 2123
    functionLinenumberEnd: 2127
    functionName: tcp_debug_print_state
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    linkageType: ''
    returnType: void
    signature: tcp_debug_print_state(enum tcp_state s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2138,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2141,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2144,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2147,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2150,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2153,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2156,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2159,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - flags
    argTypes:
    - u8_t
    constantsTouched: []
    func_position:
      end: 2161
      start: 2134
    functionDepth: 0
    functionLinenumber: 2134
    functionLinenumberEnd: 2161
    functionName: tcp_debug_print_flags
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    linkageType: ''
    returnType: void
    signature: tcp_debug_print_flags(u8_t flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2172,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2174,1
    - Dst: tcp_debug_print_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2177,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2180,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2182,1
    - Dst: tcp_debug_print_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2183,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2186,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2188,1
    - Dst: tcp_debug_print_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2193
      start: 2166
    functionDepth: 1
    functionLinenumber: 2166
    functionLinenumberEnd: 2193
    functionName: tcp_debug_print_pcbs
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - tcp_debug_print_state
    linkageType: ''
    returnType: void
    signature: tcp_debug_print_pcbs(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2203,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2204,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2205,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c:2208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2211
      start: 2198
    functionDepth: 0
    functionLinenumber: 2198
    functionLinenumberEnd: 2211
    functionName: tcp_pcbs_sane
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
    functionUses: 1
    functionsReached:
    - LWIP_ASSERT
    linkageType: ''
    returnType: s16_t
    signature: tcp_pcbs_sane(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYS_ARCH_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:174,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:179,1
    - Dst: tcp_segs_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 185
    functionName: pbuf_free_ooseq
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 0
    functionsReached:
    - tcp_segs_free
    - LWIP_DEBUGF
    - SYS_ARCH_SET
    linkageType: ''
    returnType: void
    signature: pbuf_free_ooseq(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:194,1
    - Dst: pbuf_free_ooseq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: pbuf_free_ooseq_callback
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - pbuf_free_ooseq
    linkageType: ''
    returnType: void
    signature: pbuf_free_ooseq_callback(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYS_ARCH_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:204,1
    - Dst: SYS_ARCH_DECL_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:207,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:208,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:211,1
    - Dst: PBUF_POOL_FREE_OOSEQ_QUEUE_CALL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 218
    functionName: pbuf_pool_is_empty
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 0
    functionsReached:
    - PBUF_POOL_FREE_OOSEQ_QUEUE_CALL
    - SYS_ARCH_UNPROTECT
    - SYS_ARCH_PROTECT
    - SYS_ARCH_SET
    - SYS_ARCH_DECL_PROTECT
    linkageType: ''
    returnType: void
    signature: pbuf_pool_is_empty(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_MEM_ALIGN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:231,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - length
    - offset
    argTypes:
    - u16_t
    - u16_t
    constantsTouched: []
    func_position:
      end: 247
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 247
    functionName: pbuf_get_target_pool
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 5
    functionsReached:
    - LWIP_DEBUGF
    - LWIP_MEM_ALIGN
    linkageType: ''
    returnType: memp_t
    signature: pbuf_get_target_pool(u16_t length, u16_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:258,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:259,1
    - Dst: sys_profile_pbuf_allocate
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:266,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:278,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - target_pool
    argTypes:
    - memp_t*
    constantsTouched: []
    func_position:
      end: 281
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 281
    functionName: pbuf_allocate_from_target_pool
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 0
    functionsReached:
    - sys_profile_pbuf_allocate
    - LWIP_DEBUGF
    - memp_malloc
    linkageType: ''
    returnType: struct pbuf
    signature: '*

      pbuf_allocate_from_target_pool(memp_t *target_pool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:321,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:348,1
    - Dst: pbuf_get_target_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:354,1
    - Dst: pbuf_allocate_from_target_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:355,1
    - Dst: PBUF_POOL_IS_EMPTY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:358,1
    - Dst: GET_ALIGNED_PBUF_POOL_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:362,1
    - Dst: LWIP_MEM_ALIGN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:367,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:368,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:373,1
    - Dst: LWIP_MEM_ALIGN_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:373,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:374,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:377,1
    - Dst: LWIP_MEM_ALIGN_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:378,1
    - Dst: pbuf_get_target_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:392,1
    - Dst: pbuf_allocate_from_target_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:393,1
    - Dst: PBUF_POOL_IS_EMPTY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:395,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:397,1
    - Dst: GET_ALIGNED_PBUF_POOL_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:401,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:408,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:411,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:413,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:415,1
    - Dst: LWIP_MEM_ALIGN_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:430,1
    - Dst: LWIP_MEM_ALIGN_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:430,1
    - Dst: LWIP_MEM_ALIGN_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:431,1
    - Dst: LWIP_MEM_ALIGN_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:434,1
    - Dst: LWIP_MEM_ALIGN_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:435,1
    - Dst: mem_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:440,1
    - Dst: LWIP_MEM_ALIGN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:447,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:452,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:460,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:462,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:474,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:481,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 102
    argCount: 3
    argNames:
    - layer
    - length
    - type
    argTypes:
    - pbuf_layer
    - u16_t
    - pbuf_type
    constantsTouched: []
    func_position:
      end: 483
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 483
    functionName: pbuf_alloc
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 50
    functionsReached:
    - LWIP_DEBUGF
    - LWIP_MEM_ALIGN_SIZE
    - pbuf_allocate_from_target_pool
    - pbuf_get_target_pool
    - LWIP_MEM_ALIGN
    - PBUF_POOL_IS_EMPTY
    - mem_malloc
    - LWIP_MIN
    - pbuf_free
    - memp_malloc
    - GET_ALIGNED_PBUF_POOL_SIZE
    - LWIP_ASSERT
    linkageType: ''
    returnType: struct pbuf
    signature: '*

      pbuf_alloc(pbuf_layer layer, u16_t length, pbuf_type type)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:507,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:531,1
    - Dst: LWIP_MEM_ALIGN_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:535,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:536,1
    - Dst: LWIP_MEM_ALIGN_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:542,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 6
    argNames:
    - l
    - length
    - type
    - p
    - payload_mem
    - payload_mem_len
    argTypes:
    - pbuf_layer
    - u16_t
    - pbuf_type
    - struct pbuf_custom*
    - void*
    - u16_t
    constantsTouched: []
    func_position:
      end: 551
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 551
    functionName: pbuf_alloced_custom
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - LWIP_MEM_ALIGN_SIZE
    - LWIP_ASSERT
    linkageType: ''
    returnType: struct pbuf
    signature: "*\npbuf_alloced_custom(pbuf_layer l, u16_t length, pbuf_type type,
      struct pbuf_custom *p,\n                    void *payload_mem, u16_t payload_mem_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:577,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:578,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:601,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:605,1
    - Dst: mem_trim
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:618,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:619,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:628,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - p
    - new_len
    argTypes:
    - struct pbuf*
    - u16_t
    constantsTouched: []
    func_position:
      end: 633
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 633
    functionName: pbuf_realloc
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 2
    functionsReached:
    - mem_trim
    - pbuf_free
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: pbuf_realloc(struct pbuf *p, u16_t new_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:653,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:661,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:668,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:671,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:686,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:709,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:716,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - p
    - header_size_increment
    - force
    argTypes:
    - struct pbuf*
    - s16_t
    - u8_t
    constantsTouched: []
    func_position:
      end: 720
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 720
    functionName: pbuf_header_impl
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - LWIP_ERROR
    - LWIP_ASSERT
    linkageType: ''
    returnType: u8_t
    signature: pbuf_header_impl(struct pbuf *p, s16_t header_size_increment, u8_t
      force)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_header_impl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - header_size_increment
    argTypes:
    - struct pbuf*
    - s16_t
    constantsTouched: []
    func_position:
      end: 746
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 746
    functionName: pbuf_header
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 7
    functionsReached:
    - pbuf_header_impl
    linkageType: ''
    returnType: u8_t
    signature: pbuf_header(struct pbuf *p, s16_t header_size_increment)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_header_impl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - header_size_increment
    argTypes:
    - struct pbuf*
    - s16_t
    constantsTouched: []
    func_position:
      end: 756
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 756
    functionName: pbuf_header_force
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 1
    functionsReached:
    - pbuf_header_impl
    linkageType: ''
    returnType: u8_t
    signature: pbuf_header_force(struct pbuf *p, s16_t header_size_increment)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:801,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:803,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:807,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:811,1
    - Dst: SYS_ARCH_DECL_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:820,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:824,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:826,1
    - Dst: sys_pbuf_free_callout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:828,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:832,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:837,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:843,1
    - Dst: struct pbuf_custom*::custom_free_function
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:844,1
    - Dst: sys_profile_pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:856,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:862,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:865,1
    - Dst: mem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:868,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:877,1
    - Dst: PERF_STOP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:882,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 885
      start: 792
    functionDepth: 3
    functionLinenumber: 792
    functionLinenumberEnd: 885
    functionName: pbuf_free
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 51
    functionsReached:
    - sys_pbuf_free_callout
    - sys_profile_pbuf_free
    - LWIP_DEBUGF
    - SYS_ARCH_UNPROTECT
    - SYS_ARCH_PROTECT
    - memp_free
    - mem_free
    - PERF_STOP
    - struct pbuf_custom*::custom_free_function
    - SYS_ARCH_DECL_PROTECT
    - LWIP_ASSERT
    linkageType: ''
    returnType: u8_t
    signature: pbuf_free(struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 904
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 904
    functionName: pbuf_clen
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: u16_t
    signature: pbuf_clen(const struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYS_ARCH_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:918,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:919,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 921
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 921
    functionName: pbuf_ref
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 2
    functionsReached:
    - LWIP_ASSERT
    - SYS_ARCH_INC
    linkageType: ''
    returnType: void
    signature: pbuf_ref(struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:938,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:947,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:948,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - h
    - t
    argTypes:
    - struct pbuf*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 956
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 956
    functionName: pbuf_cat
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 7
    functionsReached:
    - LWIP_ERROR
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: pbuf_cat(struct pbuf *h, struct pbuf *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:978,1
    - Dst: pbuf_ref
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:980,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - h
    - t
    argTypes:
    - struct pbuf*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 982
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 982
    functionName: pbuf_chain
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 4
    functionsReached:
    - LWIP_DEBUGF
    - pbuf_ref
    - pbuf_cat
    linkageType: ''
    returnType: void
    signature: pbuf_chain(struct pbuf *h, struct pbuf *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1002,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1010,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1011,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1013,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1019,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 1021
      start: 992
    functionDepth: 4
    functionLinenumber: 992
    functionLinenumberEnd: 1021
    functionName: pbuf_dechain
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - pbuf_free
    - LWIP_ASSERT
    linkageType: ''
    returnType: struct pbuf
    signature: '*

      pbuf_dechain(struct pbuf *p)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1046,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1050,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1064,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1067,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1068,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1078,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1083,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1088,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1092,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - p_to
    - p_from
    argTypes:
    - struct pbuf*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 1094
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1094
    functionName: pbuf_copy
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 5
    functionsReached:
    - MEMCPY
    - LWIP_DEBUGF
    - LWIP_ERROR
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: pbuf_copy(struct pbuf *p_to, const struct pbuf *p_from)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1116,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1117,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1137,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - buf
    - dataptr
    - len
    - offset
    argTypes:
    - struct pbuf*
    - void*
    - u16_t
    - u16_t
    constantsTouched: []
    func_position:
      end: 1145
      start: 1108
    functionDepth: 0
    functionLinenumber: 1108
    functionLinenumberEnd: 1145
    functionName: pbuf_copy_partial
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 3
    functionsReached:
    - MEMCPY
    - LWIP_ERROR
    linkageType: ''
    returnType: u16_t
    signature: pbuf_copy_partial(const struct pbuf *buf, void *dataptr, u16_t len,
      u16_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1182,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - p
    - rest
    argTypes:
    - struct pbuf*
    - struct pbuf**
    constantsTouched: []
    func_position:
      end: 1194
      start: 1160
    functionDepth: 0
    functionLinenumber: 1160
    functionLinenumberEnd: 1194
    functionName: pbuf_split_64k
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 3
    functionsReached:
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: pbuf_split_64k(struct pbuf *p, struct pbuf **rest)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - in
    - in_offset
    - out_offset
    argTypes:
    - struct pbuf*
    - u16_t
    - u16_t*
    constantsTouched: []
    func_position:
      end: 1213
      start: 1198
    functionDepth: 0
    functionLinenumber: 1198
    functionLinenumberEnd: 1213
    functionName: pbuf_skip_const
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct pbuf
    signature: '*

      pbuf_skip_const(const struct pbuf* in, u16_t in_offset, u16_t* out_offset)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_skip_const
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1227,1
    - Dst: LWIP_CONST_CAST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - in_offset
    - out_offset
    argTypes:
    - struct pbuf*
    - u16_t
    - u16_t*
    constantsTouched: []
    func_position:
      end: 1229
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1229
    functionName: pbuf_skip
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 0
    functionsReached:
    - LWIP_CONST_CAST
    - pbuf_skip_const
    linkageType: ''
    returnType: struct pbuf
    signature: '*

      pbuf_skip(struct pbuf* in, u16_t in_offset, u16_t* out_offset)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1250,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1251,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1252,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1260,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1267,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1271,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - buf
    - dataptr
    - len
    argTypes:
    - struct pbuf*
    - void*
    - u16_t
    constantsTouched: []
    func_position:
      end: 1273
      start: 1242
    functionDepth: 0
    functionLinenumber: 1242
    functionLinenumberEnd: 1273
    functionName: pbuf_take
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 3
    functionsReached:
    - MEMCPY
    - LWIP_ERROR
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: pbuf_take(struct pbuf *buf, const void *dataptr, u16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_skip
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1290,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1297,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1298,1
    - Dst: pbuf_take
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - buf
    - dataptr
    - len
    - offset
    argTypes:
    - struct pbuf*
    - void*
    - u16_t
    - u16_t
    constantsTouched: []
    func_position:
      end: 1307
      start: 1286
    functionDepth: 2
    functionLinenumber: 1286
    functionLinenumberEnd: 1307
    functionName: pbuf_take_at
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 1
    functionsReached:
    - MEMCPY
    - pbuf_skip
    - pbuf_take
    - LWIP_MIN
    linkageType: ''
    returnType: err_t
    signature: pbuf_take_at(struct pbuf *buf, const void *dataptr, u16_t len, u16_t
      offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1330,1
    - Dst: pbuf_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1335,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1336,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1337,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - p
    - layer
    argTypes:
    - struct pbuf*
    - pbuf_layer
    constantsTouched: []
    func_position:
      end: 1340
      start: 1322
    functionDepth: 4
    functionLinenumber: 1322
    functionLinenumberEnd: 1340
    functionName: pbuf_coalesce
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 1
    functionsReached:
    - pbuf_copy
    - pbuf_alloc
    - pbuf_free
    - LWIP_UNUSED_ARG
    - LWIP_ASSERT
    linkageType: ''
    returnType: struct pbuf
    signature: '*

      pbuf_coalesce(struct pbuf *p, pbuf_layer layer)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1362,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1363,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1364,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1365,1
    - Dst: LWIP_CHKSUM_COPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1372,1
    - Dst: SWAP_BYTES_IN_WORD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1374,1
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1378,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - p
    - start_offset
    - dataptr
    - len
    - chksum
    argTypes:
    - struct pbuf*
    - u16_t
    - void*
    - u16_t
    - u16_t*
    constantsTouched: []
    func_position:
      end: 1380
      start: 1355
    functionDepth: 0
    functionLinenumber: 1355
    functionLinenumberEnd: 1380
    functionName: pbuf_fill_chksum
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 0
    functionsReached:
    - FOLD_U32T
    - SWAP_BYTES_IN_WORD
    - LWIP_CHKSUM_COPY
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: "pbuf_fill_chksum(struct pbuf *p, u16_t start_offset, const void *dataptr,\n
      \                u16_t len, u16_t *chksum)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p
    - offset
    argTypes:
    - struct pbuf*
    - u16_t
    constantsTouched: []
    func_position:
      end: 1400
      start: 1392
    functionDepth: 0
    functionLinenumber: 1392
    functionLinenumberEnd: 1400
    functionName: pbuf_get_at
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: u8_t
    signature: pbuf_get_at(const struct pbuf* p, u16_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_skip_const
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - offset
    argTypes:
    - struct pbuf*
    - u16_t
    constantsTouched: []
    func_position:
      end: 1421
      start: 1410
    functionDepth: 1
    functionLinenumber: 1410
    functionLinenumberEnd: 1421
    functionName: pbuf_try_get_at
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 0
    functionsReached:
    - pbuf_skip_const
    linkageType: ''
    returnType: int
    signature: pbuf_try_get_at(const struct pbuf* p, u16_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_skip
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - p
    - offset
    - data
    argTypes:
    - struct pbuf*
    - u16_t
    - u8_t
    constantsTouched: []
    func_position:
      end: 1442
      start: 1432
    functionDepth: 2
    functionLinenumber: 1432
    functionLinenumberEnd: 1442
    functionName: pbuf_put_at
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 1
    functionsReached:
    - pbuf_skip
    linkageType: ''
    returnType: void
    signature: pbuf_put_at(struct pbuf* p, u16_t offset, u8_t data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_get_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1476,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - p
    - offset
    - s2
    - n
    argTypes:
    - struct pbuf*
    - u16_t
    - void*
    - u16_t
    constantsTouched: []
    func_position:
      end: 1483
      start: 1455
    functionDepth: 1
    functionLinenumber: 1455
    functionLinenumberEnd: 1483
    functionName: pbuf_memcmp
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 1
    functionsReached:
    - pbuf_get_at
    linkageType: ''
    returnType: u16_t
    signature: pbuf_memcmp(const struct pbuf* p, u16_t offset, const void* s2, u16_t
      n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1504,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - p
    - mem
    - mem_len
    - start_offset
    argTypes:
    - struct pbuf*
    - void*
    - u16_t
    - u16_t
    constantsTouched: []
    func_position:
      end: 1511
      start: 1497
    functionDepth: 2
    functionLinenumber: 1497
    functionLinenumberEnd: 1511
    functionName: pbuf_memfind
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 0
    functionsReached:
    - pbuf_memcmp
    linkageType: ''
    returnType: u16_t
    signature: pbuf_memfind(const struct pbuf* p, const void* mem, u16_t mem_len,
      u16_t start_offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1531,1
    - Dst: pbuf_memfind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1535,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - p
    - substr
    argTypes:
    - struct pbuf*
    - char*
    constantsTouched: []
    func_position:
      end: 1536
      start: 1524
    functionDepth: 3
    functionLinenumber: 1524
    functionLinenumberEnd: 1536
    functionName: pbuf_strstr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 1
    functionsReached:
    - strlen
    - pbuf_memfind
    linkageType: ''
    returnType: u16_t
    signature: pbuf_strstr(const struct pbuf* p, const char* substr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_get_target_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1565,1
    - Dst: memp_is_not_empty
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1569,1
    - Dst: pbuf_allocate_from_target_pool
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1570,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1579,1
    - Dst: sys_profile_pbuf_transfer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1584,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c:1587,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - p
    - offset
    argTypes:
    - struct pbuf*
    - s16_t
    constantsTouched: []
    func_position:
      end: 1599
      start: 1550
    functionDepth: 4
    functionLinenumber: 1550
    functionLinenumberEnd: 1599
    functionName: pbuf_rightsize
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
    functionUses: 1
    functionsReached:
    - sys_profile_pbuf_transfer
    - pbuf_allocate_from_target_pool
    - pbuf_get_target_pool
    - MEMCPY
    - pbuf_free
    - memp_is_not_empty
    linkageType: ''
    returnType: struct pbuf
    signature: '*

      pbuf_rightsize(struct pbuf *p, s16_t offset)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: mem_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: mem_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mem
    - size
    argTypes:
    - void*
    - mem_size_t
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: mem_trim
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c
    functionUses: 2
    functionsReached:
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: void
    signature: '*

      mem_trim(void *mem, mem_size_t size)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MEM_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:126,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:128,1
    - Dst: LWIP_MEM_ALIGN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:128,1
    - Dst: MEM_STATS_INC_USED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - size
    argTypes:
    - mem_size_t
    constantsTouched: []
    func_position:
      end: 136
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 136
    functionName: mem_malloc
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c
    functionUses: 4
    functionsReached:
    - MEM_STATS_INC
    - LWIP_MEM_ALIGN
    - MEM_STATS_INC_USED
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: '*

      mem_malloc(mem_size_t size)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:145,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:146,1
    - Dst: LWIP_MEM_ALIGN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:146,1
    - Dst: MEM_STATS_DEC_USED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:149,1
    - Dst: mem_clib_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - rmem
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 152
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 152
    functionName: mem_free
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c
    functionUses: 8
    functionsReached:
    - mem_clib_free
    - LWIP_MEM_ALIGN
    - MEM_STATS_DEC_USED
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: mem_free(void *rmem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_MEM_ALIGN_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:171,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:177,1
    - Dst: MEM_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:186,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:193,1
    - Dst: MEM_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:194,1
    - Dst: LWIP_MEM_ALIGN_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:201,1
    - Dst: MEM_STATS_INC_USED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:206,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:210,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - size
    argTypes:
    - mem_size_t
    constantsTouched: []
    func_position:
      end: 213
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 213
    functionName: mem_malloc
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c
    functionUses: 4
    functionsReached:
    - LWIP_MEM_ALIGN_SIZE
    - memset
    - MEM_STATS_INC_USED
    - memp_malloc
    - MEM_STATS_INC
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: '*

      mem_malloc(mem_size_t size)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:227,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:228,1
    - Dst: LWIP_MEM_ALIGN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:228,1
    - Dst: LWIP_MEM_ALIGN_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:232,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:234,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:235,1
    - Dst: LWIP_MEM_ALIGN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:235,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:236,1
    - Dst: MEM_STATS_DEC_USED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:238,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:242,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:247,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - rmem
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 254
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 254
    functionName: mem_free
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c
    functionUses: 8
    functionsReached:
    - LWIP_MEM_ALIGN_SIZE
    - memp_free
    - MEM_STATS_DEC_USED
    - LWIP_MEM_ALIGN
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: mem_free(void *rmem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:349,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:350,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:351,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:354,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - mem
    argTypes:
    - struct mem*
    constantsTouched: []
    func_position:
      end: 376
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 376
    functionName: plug_holes
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: plug_holes(struct mem *mem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:386,1
    - Dst: LWIP_MEM_ALIGN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:390,1
    - Dst: MEM_STATS_AVAIL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:405,1
    - Dst: sys_mutex_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:407,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 410
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 410
    functionName: mem_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c
    functionUses: 0
    functionsReached:
    - MEM_STATS_AVAIL
    - LWIP_MEM_ALIGN
    - sys_mutex_new
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: mem_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_MEM_FREE_DECL_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:422,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:425,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:428,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:430,1
    - Dst: SYS_ARCH_DECL_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:434,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:435,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:437,1
    - Dst: MEM_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:438,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:439,1
    - Dst: LWIP_MEM_FREE_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:443,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:448,1
    - Dst: MEM_STATS_DEC_USED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:457,1
    - Dst: plug_holes
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:460,1
    - Dst: LWIP_MEM_FREE_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:464,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - rmem
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 465
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 465
    functionName: mem_free
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c
    functionUses: 8
    functionsReached:
    - plug_holes
    - LWIP_DEBUGF
    - SYS_ARCH_UNPROTECT
    - SYS_ARCH_PROTECT
    - MEM_STATS_DEC_USED
    - LWIP_MEM_FREE_PROTECT
    - MEM_STATS_INC
    - LWIP_MEM_FREE_UNPROTECT
    - LWIP_MEM_FREE_DECL_PROTECT
    - SYS_ARCH_DECL_PROTECT
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: mem_free(void *rmem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_MEM_FREE_DECL_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:484,1
    - Dst: LWIP_MEM_ALIGN_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:488,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:498,1
    - Dst: SYS_ARCH_DECL_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:502,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:503,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:505,1
    - Dst: MEM_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:506,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:507,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:517,1
    - Dst: LWIP_MEM_FREE_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:528,1
    - Dst: MEM_STATS_DEC_USED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:555,1
    - Dst: MEM_STATS_DEC_USED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:577,1
    - Dst: LWIP_MEM_FREE_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:589,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 64
    argCount: 2
    argNames:
    - rmem
    - new_size
    argTypes:
    - void*
    - mem_size_t
    constantsTouched: []
    func_position:
      end: 591
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 591
    functionName: mem_trim
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c
    functionUses: 2
    functionsReached:
    - LWIP_DEBUGF
    - LWIP_MEM_ALIGN_SIZE
    - SYS_ARCH_PROTECT
    - SYS_ARCH_UNPROTECT
    - MEM_STATS_DEC_USED
    - LWIP_MEM_FREE_PROTECT
    - MEM_STATS_INC
    - LWIP_MEM_FREE_UNPROTECT
    - LWIP_MEM_FREE_DECL_PROTECT
    - SYS_ARCH_DECL_PROTECT
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: '*

      mem_trim(void *rmem, mem_size_t new_size)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem_clib_calloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - count
    - size
    argTypes:
    - mem_size_t
    - mem_size_t
    constantsTouched: []
    func_position:
      end: 750
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 750
    functionName: mem_calloc
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c
    functionUses: 0
    functionsReached:
    - mem_clib_calloc
    linkageType: ''
    returnType: void
    signature: '*

      mem_calloc(mem_size_t count, mem_size_t size)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:769,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c:772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - count
    - size
    argTypes:
    - mem_size_t
    - mem_size_t
    constantsTouched: []
    func_position:
      end: 775
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 775
    functionName: mem_calloc
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c
    functionUses: 0
    functionsReached:
    - mem_malloc
    - memset
    linkageType: ''
    returnType: void
    signature: '*

      mem_calloc(mem_size_t count, mem_size_t size)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:70,1
    - Dst: netif_get_index
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:74,1
    - Dst: IP_IS_ANY_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:80,1
    - Dst: ip_get_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:82,1
    - Dst: IP_ADDR_PCB_VERSION_MATCH_EXACT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:91,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:91,1
    - Dst: ip_get_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:97,1
    - Dst: ip4_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:100,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:100,1
    - Dst: ip_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:107,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:108,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:108,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 2
    argNames:
    - pcb
    - broadcast
    argTypes:
    - struct raw_pcb*
    - u8_t
    constantsTouched: []
    func_position:
      end: 114
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 114
    functionName: raw_input_local_match
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c
    functionUses: 0
    functionsReached:
    - ip4_addr_isany
    - ip_addr_cmp
    - netif_get_index
    - IP_ADDR_PCB_VERSION_MATCH_EXACT
    - IP_IS_ANY_TYPE_VAL
    - ip_current_dest_addr
    - LWIP_UNUSED_ARG
    - ip_2_ip4
    - ip_get_option
    - ip_addr_isany
    linkageType: ''
    returnType: u8_t
    signature: raw_input_local_match(struct raw_pcb *pcb, u8_t broadcast)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip_addr_isbroadcast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:139,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:139,1
    - Dst: ip_current_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:139,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:141,1
    - Dst: IP_HDR_GET_VERSION
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:145,1
    - Dst: IP6H_NEXTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:149,1
    - Dst: IPH_PROTO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:157,1
    - Dst: raw_input_local_match
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:167,1
    - Dst: ip_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:169,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:170,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:170,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:172,1
    - Dst: ip_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:172,1
    - Dst: ip_get_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:177,1
    - Dst: ip_addr_isbroadcast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:177,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:177,1
    - Dst: PCB_ISIPV6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:179,1
    - Dst: struct raw_pcb*::recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:190,1
    - Dst: ip_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:190,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:205,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 2
    argNames:
    - p
    - inp
    argTypes:
    - struct pbuf*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 216
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 216
    functionName: raw_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - raw_input_local_match
    - IP6H_NEXTH
    - LWIP_ASSERT
    - ip_addr_isbroadcast
    - ip_current_src_addr
    - ip_current_netif
    - IPH_PROTO
    - ip_get_option
    - IP_HDR_GET_VERSION
    - PCB_ISIPV6
    - struct raw_pcb*::recv
    - ip_current_dest_addr
    - ip_addr_cmp
    - ip_addr_isany
    linkageType: ''
    returnType: u8_t
    signature: raw_input(struct pbuf *p, struct netif *inp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:236,1
    - Dst: ip_addr_set_ipaddr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pcb
    - ipaddr
    argTypes:
    - struct raw_pcb*
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 242
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: raw_bind
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c
    functionUses: 2
    functionsReached:
    - LWIP_ASSERT_CORE_LOCKED
    - ip_addr_set_ipaddr
    linkageType: ''
    returnType: err_t
    signature: raw_bind(struct raw_pcb *pcb, const ip_addr_t *ipaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_get_index
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pcb
    - netif
    argTypes:
    - struct raw_pcb*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 261
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 261
    functionName: raw_bind_netif
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c
    functionUses: 1
    functionsReached:
    - netif_get_index
    linkageType: ''
    returnType: void
    signature: raw_bind_netif(struct raw_pcb *pcb, const struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:280,1
    - Dst: ip_addr_set_ipaddr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:284,1
    - Dst: raw_set_flags
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pcb
    - ipaddr
    argTypes:
    - struct raw_pcb*
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 287
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 287
    functionName: raw_connect
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c
    functionUses: 0
    functionsReached:
    - raw_set_flags
    - LWIP_ASSERT_CORE_LOCKED
    - ip_addr_set_ipaddr
    linkageType: ''
    returnType: err_t
    signature: raw_connect(struct raw_pcb *pcb, const ip_addr_t *ipaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pcb
    - recv
    - recv_arg
    argTypes:
    - struct raw_pcb*
    - raw_recv_fn
    - void*
    constantsTouched: []
    func_position:
      end: 332
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 332
    functionName: raw_recv
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c
    functionUses: 1
    functionsReached:
    - LWIP_ASSERT_CORE_LOCKED
    linkageType: ''
    returnType: void
    signature: raw_recv(struct raw_pcb *pcb, raw_recv_fn recv, void *recv_arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IP_ADDR_PCB_VERSION_MATCH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:353,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:357,1
    - Dst: netif_get_by_index
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:362,1
    - Dst: ip_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:366,1
    - Dst: netif_get_by_index
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:370,1
    - Dst: ip_route
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:376,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:381,1
    - Dst: ip_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:382,1
    - Dst: ip_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:386,1
    - Dst: ip_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:386,1
    - Dst: ip_netif_get_local_ip
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:388,1
    - Dst: raw_sendto_if_src
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:399,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - pcb
    - p
    - ipaddr
    argTypes:
    - struct raw_pcb*
    - struct pbuf*
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 400
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 400
    functionName: raw_sendto
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - ip_addr_ismulticast
    - raw_sendto_if_src
    - ip_netif_get_local_ip
    - IP_ADDR_PCB_VERSION_MATCH
    - ip_route
    - ip_addr_debug_print
    - netif_get_by_index
    - ip_addr_isany
    linkageType: ''
    returnType: err_t
    signature: raw_sendto(struct raw_pcb *pcb, struct pbuf *p, const ip_addr_t *ipaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IP_ADDR_PCB_VERSION_MATCH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:423,1
    - Dst: IP_ADDR_PCB_VERSION_MATCH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:423,1
    - Dst: IP_IS_V6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:429,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:437,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:439,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:442,1
    - Dst: pbuf_chain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:447,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:450,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:454,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:455,1
    - Dst: IP_IS_V4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:461,1
    - Dst: ip_get_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:464,1
    - Dst: ip_addr_isbroadcast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:464,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:465,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:468,1
    - Dst: ip_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:477,1
    - Dst: IP_IS_V6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:485,1
    - Dst: ip6_chksum_pseudo
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:486,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:486,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:486,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:487,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:488,1
    - Dst: ip_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:494,1
    - Dst: raw_get_multicast_ttl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:494,1
    - Dst: netif_apply_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:499,1
    - Dst: ip_output_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:500,1
    - Dst: netif_apply_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:501,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:506,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 5
    argNames:
    - pcb
    - p
    - dst_ip
    - netif
    - src_ip
    argTypes:
    - struct raw_pcb*
    - struct pbuf*
    - ip_addr_t*
    - struct netif*
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 509
      start: 413
    functionDepth: 4
    functionLinenumber: 413
    functionLinenumberEnd: 509
    functionName: raw_sendto_if_src
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c
    functionUses: 1
    functionsReached:
    - ip_2_ip6
    - LWIP_DEBUGF
    - ip_addr_ismulticast
    - netif_apply_pcb
    - pbuf_alloc
    - SMEMCPY
    - ip_addr_isbroadcast
    - raw_get_multicast_ttl
    - IP_IS_V4
    - ip_get_option
    - pbuf_header
    - pbuf_free
    - ip6_chksum_pseudo
    - IP_ADDR_PCB_VERSION_MATCH
    - ip_output_if
    - pbuf_chain
    - IP_IS_V6
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: "raw_sendto_if_src(struct raw_pcb *pcb, struct pbuf *p, const ip_addr_t
      *dst_ip,\n    struct netif *netif, const ip_addr_t *src_ip)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: raw_sendto
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pcb
    - p
    argTypes:
    - struct raw_pcb*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 523
      start: 519
    functionDepth: 2
    functionLinenumber: 519
    functionLinenumberEnd: 523
    functionName: raw_send
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c
    functionUses: 0
    functionsReached:
    - raw_sendto
    linkageType: ''
    returnType: err_t
    signature: raw_send(struct raw_pcb *pcb, struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:538,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:554,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct raw_pcb*
    constantsTouched: []
    func_position:
      end: 555
      start: 534
    functionDepth: 3
    functionLinenumber: 534
    functionLinenumberEnd: 555
    functionName: raw_remove
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c
    functionUses: 2
    functionsReached:
    - LWIP_ASSERT_CORE_LOCKED
    - memp_free
    linkageType: ''
    returnType: void
    signature: raw_remove(struct raw_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:573,1
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:574,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:576,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:580,1
    - Dst: raw_set_multicast_ttl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - proto
    argTypes:
    - u8_t
    constantsTouched: []
    func_position:
      end: 590
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 590
    functionName: raw_new
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - raw_set_multicast_ttl
    - memset
    - LWIP_ASSERT_CORE_LOCKED
    - memp_malloc
    linkageType: ''
    returnType: struct raw_pcb
    signature: '*

      raw_new(u8_t proto)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:611,1
    - Dst: raw_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:612,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:615,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:616,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:619,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - type
    - proto
    argTypes:
    - u8_t
    - u8_t
    constantsTouched: []
    func_position:
      end: 622
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 622
    functionName: raw_new_ip_type
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c
    functionUses: 1
    functionsReached:
    - LWIP_UNUSED_ARG
    - LWIP_ASSERT_CORE_LOCKED
    - IP_SET_TYPE_VAL
    - raw_new
    linkageType: ''
    returnType: struct raw_pcb
    signature: '*

      raw_new_ip_type(u8_t type, u8_t proto)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:633,1
    - Dst: ip_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:633,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:636,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c:639,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - old_addr
    - new_addr
    argTypes:
    - ip_addr_t*
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 643
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 643
    functionName: raw_netif_ip_addr_changed
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c
    functionUses: 0
    functionsReached:
    - ip_addr_copy
    - ip_addr_cmp
    - ip_addr_isany
    linkageType: ''
    returnType: void
    signature: raw_netif_ip_addr_changed(const ip_addr_t* old_addr, const ip_addr_t*
      new_addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:112,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:114,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:117,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:118,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:120,1
    - Dst: TCPH_HDRLEN_FLAGS_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:121,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:122,1
    - Dst: TCPWND_MIN16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:122,1
    - Dst: RCV_WND_SCALE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - pcb
    - optlen
    - datalen
    - seqno_be
    argTypes:
    - struct tcp_pcb*
    - u16_t
    - u16_t
    - u32_t
    constantsTouched: []
    func_position:
      end: 130
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 130
    functionName: tcp_output_alloc_header
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - TCPWND_MIN16
    - RCV_WND_SCALE
    - TCPH_HDRLEN_FLAGS_SET
    - lwip_htons
    - lwip_htonl
    - LWIP_ASSERT
    linkageType: ''
    returnType: struct pbuf
    signature: "*\ntcp_output_alloc_header(struct tcp_pcb *pcb, u16_t optlen, u16_t
      datalen,\n                      u32_t seqno_be /* already in network byte order
      */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:147,1
    - Dst: TCPH_SET_FLAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:149,1
    - Dst: tcp_enqueue_flags
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 156
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 156
    functionName: tcp_send_fin
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c
    functionUses: 1
    functionsReached:
    - tcp_enqueue_flags
    - TCPH_FLAGS
    - TCPH_SET_FLAG
    linkageType: ''
    returnType: err_t
    signature: tcp_send_fin(struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_TCP_OPT_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:176,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:178,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:179,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:180,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:186,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:195,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:200,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:201,1
    - Dst: TCP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:202,1
    - Dst: tcp_seg_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:203,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:207,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:208,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:209,1
    - Dst: TCPH_HDRLEN_FLAGS_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 5
    argNames:
    - pcb
    - p
    - flags
    - seqno
    - optflags
    argTypes:
    - struct tcp_pcb*
    - struct pbuf*
    - u8_t
    - u32_t
    - u8_t
    constantsTouched: []
    func_position:
      end: 215
      start: 172
    functionDepth: 4
    functionLinenumber: 172
    functionLinenumberEnd: 215
    functionName: tcp_create_segment
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c
    functionUses: 1
    functionsReached:
    - tcp_seg_free
    - LWIP_DEBUGF
    - LWIP_TCP_OPT_LENGTH
    - TCPH_HDRLEN_FLAGS_SET
    - TCP_STATS_INC
    - lwip_htons
    - pbuf_header
    - pbuf_free
    - memp_malloc
    - lwip_htonl
    - LWIP_ASSERT
    linkageType: ''
    returnType: struct tcp_seg
    signature: '*

      tcp_create_segment(struct tcp_pcb *pcb, struct pbuf *p, u8_t flags, u32_t seqno,
      u8_t optflags)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:241,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:242,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:243,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:244,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:264,1
    - Dst: LWIP_MEM_ALIGN_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:264,1
    - Dst: TCP_OVERSIZE_CALC_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:264,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:268,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 7
    argNames:
    - layer
    - length
    - max_length
    - oversize
    - pcb
    - apiflags
    - first_seg
    argTypes:
    - pbuf_layer
    - u16_t
    - u16_t
    - u16_t*
    - struct tcp_pcb*
    - u8_t
    - u8_t
    constantsTouched: []
    func_position:
      end: 277
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 277
    functionName: tcp_pbuf_prealloc
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c
    functionUses: 0
    functionsReached:
    - LWIP_MEM_ALIGN_SIZE
    - TCP_OVERSIZE_CALC_LENGTH
    - pbuf_alloc
    - LWIP_MIN
    - LWIP_UNUSED_ARG
    - LWIP_ASSERT
    linkageType: ''
    returnType: struct pbuf
    signature: "*\ntcp_pbuf_prealloc(pbuf_layer layer, u16_t length, u16_t max_length,\n
      \                 u16_t *oversize, struct tcp_pcb *pcb, u8_t apiflags,\n                  u8_t
      first_seg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:291,1
    - Dst: SWAP_BYTES_IN_WORD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - chksum
    - len
    - seg_chksum
    - seg_chksum_swapped
    argTypes:
    - u16_t
    - u16_t
    - u16_t*
    - u8_t*
    constantsTouched: []
    func_position:
      end: 297
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 297
    functionName: tcp_seg_add_chksum
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c
    functionUses: 0
    functionsReached:
    - FOLD_U32T
    - SWAP_BYTES_IN_WORD
    linkageType: ''
    returnType: void
    signature: "tcp_seg_add_chksum(u16_t chksum, u16_t len, u16_t *seg_chksum,\n                   u8_t
      *seg_chksum_swapped)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:314,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:322,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:328,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:334,1
    - Dst: TCP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:336,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:341,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:344,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - pcb
    - len
    argTypes:
    - struct tcp_pcb*
    - u16_t
    constantsTouched: []
    func_position:
      end: 348
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 348
    functionName: tcp_write_checks
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT
    - LWIP_DEBUGF
    - TCP_STATS_INC
    linkageType: ''
    returnType: err_t
    signature: tcp_write_checks(struct tcp_pcb *pcb, u16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:391,1
    - Dst: TCPWND_MIN16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:391,1
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:394,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:401,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:403,1
    - Dst: tcp_write_checks
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:406,1
    - Dst: LWIP_TCP_OPT_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:417,1
    - Dst: LWIP_MAX
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:419,1
    - Dst: LWIP_TCP_OPT_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:456,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:457,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:470,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:475,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:477,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:477,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:483,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:498,1
    - Dst: tcp_pbuf_prealloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:506,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:507,1
    - Dst: TCP_DATA_COPY2
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:515,1
    - Dst: pbuf_clen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:519,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:526,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:529,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:530,1
    - Dst: pbuf_clen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:536,1
    - Dst: tcp_seg_add_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:540,1
    - Dst: inet_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:540,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:550,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:565,1
    - Dst: tcp_pbuf_prealloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:574,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:575,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:578,1
    - Dst: TCP_DATA_COPY2
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:580,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:589,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:591,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:592,1
    - Dst: inet_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:597,1
    - Dst: SWAP_BYTES_IN_WORD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:600,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:607,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:610,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:611,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:615,1
    - Dst: pbuf_clen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:618,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:624,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:626,1
    - Dst: tcp_create_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:630,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:647,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:653,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:654,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:655,1
    - Dst: TCP_TCPLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:655,1
    - Dst: TCP_DATA_COPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:681,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:687,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:700,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:702,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:706,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:718,1
    - Dst: SWAP_BYTES_IN_WORD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:722,1
    - Dst: tcp_seg_add_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:724,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:747,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:750,1
    - Dst: TCPH_SET_FLAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:756,1
    - Dst: TCP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:762,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:765,1
    - Dst: tcp_segs_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:768,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:771,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:774,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 192
    argCount: 4
    argNames:
    - pcb
    - arg
    - len
    - apiflags
    argTypes:
    - struct tcp_pcb*
    - void*
    - u16_t
    - u8_t
    constantsTouched: []
    func_position:
      end: 776
      start: 367
    functionDepth: 4
    functionLinenumber: 367
    functionLinenumberEnd: 776
    functionName: tcp_write
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c
    functionUses: 5
    functionsReached:
    - SWAP_BYTES_IN_WORD
    - TCP_STATS_INC
    - tcp_write_checks
    - LWIP_MIN
    - TCP_DATA_COPY
    - LWIP_ASSERT
    - LWIP_DEBUGF
    - LWIP_ERROR
    - pbuf_clen
    - LWIP_ASSERT_CORE_LOCKED
    - inet_chksum
    - pbuf_free
    - tcp_pbuf_prealloc
    - LWIP_TCP_OPT_LENGTH
    - TCPWND_MIN16
    - tcp_create_segment
    - TCP_TCPLEN
    - tcp_seg_add_chksum
    - lwip_ntohl
    - tcp_segs_free
    - LWIP_MAX
    - pbuf_cat
    - pbuf_alloc
    - TCPH_SET_FLAG
    - TCP_DATA_COPY2
    linkageType: ''
    returnType: err_t
    signature: tcp_write(struct tcp_pcb *pcb, const void *arg, u16_t len, u8_t apiflags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:794,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:796,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:802,1
    - Dst: TCP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:804,1
    - Dst: LWIP_TCP_OPT_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:826,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:829,1
    - Dst: TCP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:831,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:834,1
    - Dst: tcp_create_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:838,1
    - Dst: TCP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:840,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:843,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:843,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:844,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:846,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:848,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:849,1
    - Dst: TCP_TCPLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:849,1
    - Dst: pbuf_clen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:875,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:876,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:878,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 2
    argNames:
    - pcb
    - flags
    argTypes:
    - struct tcp_pcb*
    - u8_t
    constantsTouched: []
    func_position:
      end: 883
      start: 786
    functionDepth: 2
    functionLinenumber: 786
    functionLinenumberEnd: 883
    functionName: tcp_enqueue_flags
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c
    functionUses: 3
    functionsReached:
    - LWIP_DEBUGF
    - LWIP_TCP_OPT_LENGTH
    - pbuf_alloc
    - tcp_create_segment
    - TCP_TCPLEN
    - TCP_STATS_INC
    - pbuf_clen
    - lwip_ntohl
    - LWIP_MIN
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: tcp_enqueue_flags(struct tcp_pcb *pcb, u8_t flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:895,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:896,1
    - Dst: sys_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:896,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pcb
    - opts
    argTypes:
    - struct tcp_pcb*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 898
      start: 891
    functionDepth: 1
    functionLinenumber: 891
    functionLinenumberEnd: 898
    functionName: tcp_build_timestamp_option
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c
    functionUses: 0
    functionsReached:
    - PP_HTONL
    - sys_now
    - lwip_htonl
    linkageType: ''
    returnType: void
    signature: tcp_build_timestamp_option(struct tcp_pcb *pcb, u32_t *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - opts
    argTypes:
    - u32_t*
    constantsTouched: []
    func_position:
      end: 911
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 911
    functionName: tcp_build_wnd_scale_option
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c
    functionUses: 0
    functionsReached:
    - PP_HTONL
    linkageType: ''
    returnType: void
    signature: tcp_build_wnd_scale_option(u32_t *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_TCP_OPT_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:932,1
    - Dst: tcp_output_alloc_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:936,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:936,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:940,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:946,1
    - Dst: tcp_build_timestamp_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:954,1
    - Dst: ip_route
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:958,1
    - Dst: ip_chksum_pseudo
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:964,1
    - Dst: netif_apply_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:968,1
    - Dst: ip_output_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:969,1
    - Dst: netif_apply_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:971,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:973,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 984
      start: 919
    functionDepth: 4
    functionLinenumber: 919
    functionLinenumberEnd: 984
    functionName: tcp_send_empty_ack
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - netif_apply_pcb
    - LWIP_TCP_OPT_LENGTH
    - ip_output_if
    - tcp_build_timestamp_option
    - tcp_output_alloc_header
    - ip_chksum_pseudo
    - lwip_htonl
    - pbuf_free
    - ip_route
    linkageType: ''
    returnType: err_t
    signature: tcp_send_empty_ack(struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1005,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1007,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1018,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1030,1
    - Dst: tcp_send_empty_ack
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1031,1
    - Dst: ip_route
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1040,1
    - Dst: ip_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1046,1
    - Dst: ip_netif_get_local_ip
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1047,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1051,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1056,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1062,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1067,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1071,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1072,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1084,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1095,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1096,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1097,1
    - Dst: tcp_do_output_nagle
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1105,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1110,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1112,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1114,1
    - Dst: TCPH_SET_FLAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1119,1
    - Dst: tcp_output_segment
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1125,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1135,1
    - Dst: TCP_TCPLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1135,1
    - Dst: TCP_SEQ_LT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1136,1
    - Dst: TCP_TCPLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1140,1
    - Dst: TCP_SEQ_LT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1151,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1151,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1151,1
    - Dst: TCP_SEQ_LT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1155,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1155,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1155,1
    - Dst: tcp_seg_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1168,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 96
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 1182
      start: 994
    functionDepth: 5
    functionLinenumber: 994
    functionLinenumberEnd: 1182
    functionName: tcp_output
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c
    functionUses: 14
    functionsReached:
    - tcp_seg_free
    - LWIP_DEBUGF
    - TCP_SEQ_LT
    - TCP_TCPLEN
    - ip_netif_get_local_ip
    - ip_addr_isany
    - lwip_ntohl
    - LWIP_ASSERT_CORE_LOCKED
    - LWIP_MIN
    - tcp_do_output_nagle
    - TCPH_SET_FLAG
    - ip_addr_copy
    - ip_route
    - tcp_send_empty_ack
    - tcp_output_segment
    - TCPH_FLAGS
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: tcp_output(struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip_chksum_pseudo
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1285,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1289,1
    - Dst: TCPH_HDRLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1290,1
    - Dst: ip_chksum_pseudo_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1294,1
    - Dst: TCPH_HDRLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1295,1
    - Dst: SWAP_BYTES_IN_WORD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1298,1
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1302,1
    - Dst: TCP_CHECKSUM_ON_COPY_SANITY_CHECK_FAIL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1305,1
    - Dst: ip_chksum_pseudo
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1281
    functionDepth: 1
    functionLinenumber: 1281
    functionLinenumberEnd: 1315
    functionName: IF__NETIF_CHECKSUM_ENABLED
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c
    functionUses: 0
    functionsReached:
    - FOLD_U32T
    - LWIP_ASSERT
    - SWAP_BYTES_IN_WORD
    - TCP_CHECKSUM_ON_COPY_SANITY_CHECK_FAIL
    - TCPH_HDRLEN
    - ip_chksum_pseudo
    - ip_chksum_pseudo_partial
    linkageType: ''
    returnType: void
    signature: IF__NETIF_CHECKSUM_ENABLED(netif, NETIF_CHECKSUM_GEN_TCP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1365,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1367,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1370,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1374,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1375,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1376,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1377,1
    - Dst: TCPH_HDRLEN_FLAGS_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1378,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1380,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1382,1
    - Dst: TCP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1387,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1388,1
    - Dst: ip_route
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1390,1
    - Dst: ip_chksum_pseudo
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1394,1
    - Dst: ip_output_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1399,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1401,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 6
    argNames:
    - seqno
    - ackno
    - local_ip
    - remote_ip
    - local_port
    - remote_port
    argTypes:
    - u32_t
    - u32_t
    - ip_addr_t*
    - ip_addr_t*
    - u16_t
    - u16_t
    constantsTouched: []
    func_position:
      end: 1403
      start: 1357
    functionDepth: 4
    functionLinenumber: 1357
    functionLinenumberEnd: 1403
    functionName: tcp_rst
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c
    functionUses: 6
    functionsReached:
    - LWIP_DEBUGF
    - pbuf_alloc
    - TCPH_HDRLEN_FLAGS_SET
    - TCP_STATS_INC
    - lwip_htons
    - ip_output_if
    - MIB2_STATS_INC
    - ip_chksum_pseudo
    - lwip_htonl
    - pbuf_free
    - PP_HTONS
    - ip_route
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: "tcp_rst(u32_t seqno, u32_t ackno,\n  const ip_addr_t *local_ip, const
      ip_addr_t *remote_ip,\n  u16_t local_port, u16_t remote_port)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1445,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 1446
      start: 1412
    functionDepth: 6
    functionLinenumber: 1412
    functionLinenumberEnd: 1446
    functionName: tcp_rexmit_rto
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c
    functionUses: 2
    functionsReached:
    - tcp_output
    linkageType: ''
    returnType: void
    signature: tcp_rexmit_rto(struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TCP_SEQ_LT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1472,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1472,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1472,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1492,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 1495
      start: 1455
    functionDepth: 0
    functionLinenumber: 1455
    functionLinenumberEnd: 1495
    functionName: tcp_rexmit
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c
    functionUses: 1
    functionsReached:
    - MIB2_STATS_INC
    - lwip_ntohl
    - TCP_SEQ_LT
    linkageType: ''
    returnType: void
    signature: tcp_rexmit(struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1508,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1512,1
    - Dst: tcp_rexmit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1513,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1517,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 1534
      start: 1503
    functionDepth: 1
    functionLinenumber: 1503
    functionLinenumberEnd: 1534
    functionName: tcp_rexmit_fast
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c
    functionUses: 1
    functionsReached:
    - lwip_ntohl
    - LWIP_DEBUGF
    - tcp_rexmit
    - LWIP_MIN
    linkageType: ''
    returnType: void
    signature: tcp_rexmit_fast(struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1552,1
    - Dst: ip_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1553,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1554,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1556,1
    - Dst: tcp_output_alloc_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1559,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1559,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1561,1
    - Dst: ip_route
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1565,1
    - Dst: ip_chksum_pseudo
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1572,1
    - Dst: TCP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1576,1
    - Dst: netif_apply_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1579,1
    - Dst: ip_output_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1580,1
    - Dst: netif_apply_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1581,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1583,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 1588
      start: 1545
    functionDepth: 4
    functionLinenumber: 1545
    functionLinenumberEnd: 1588
    functionName: tcp_keepalive
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - netif_apply_pcb
    - TCP_STATS_INC
    - ip_output_if
    - tcp_output_alloc_header
    - ip_chksum_pseudo
    - lwip_htonl
    - pbuf_free
    - ip_route
    - ip_addr_debug_print
    linkageType: ''
    returnType: err_t
    signature: tcp_keepalive(struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1611,1
    - Dst: ip_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1612,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1613,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1615,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1630,1
    - Dst: tcp_output_alloc_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1634,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1636,1
    - Dst: TCPH_FLAGS_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1643,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1650,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1654,1
    - Dst: TCP_SEQ_LT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1655,1
    - Dst: ip_route
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1659,1
    - Dst: ip_chksum_pseudo
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1665,1
    - Dst: TCP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1669,1
    - Dst: netif_apply_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1672,1
    - Dst: ip_output_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1673,1
    - Dst: netif_apply_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1675,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1678,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c:1680,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 1684
      start: 1599
    functionDepth: 4
    functionLinenumber: 1599
    functionLinenumberEnd: 1684
    functionName: tcp_zero_window_probe
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c
    functionUses: 1
    functionsReached:
    - pbuf_copy_partial
    - LWIP_DEBUGF
    - TCP_SEQ_LT
    - TCPH_FLAGS_SET
    - netif_apply_pcb
    - TCP_STATS_INC
    - ip_output_if
    - lwip_ntohl
    - tcp_output_alloc_header
    - ip_chksum_pseudo
    - pbuf_free
    - ip_route
    - ip_addr_debug_print
    - TCPH_FLAGS
    linkageType: ''
    returnType: err_t
    signature: tcp_zero_window_probe(struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DNS_SERVER_ADDRESS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:346,1
    - Dst: dns_setserver
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:347,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:350,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:352,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:355,1
    - Dst: udp_new_ip_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:360,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:361,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:365,1
    - Dst: udp_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:369,1
    - Dst: udp_recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:370,1
    - Dst: dns_init_local
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 377
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 377
    functionName: dns_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - udp_bind
    - dns_init_local
    - udp_new_ip_type
    - udp_recv
    - DNS_SERVER_ADDRESS
    - dns_setserver
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: dns_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - numdns
    - dnsserver
    argTypes:
    - u8_t
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 396
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 396
    functionName: dns_setserver
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: dns_setserver(u8_t numdns, const ip_addr_t *dnsserver)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - numdns
    argTypes:
    - u8_t
    constantsTouched: []
    func_position:
      end: 414
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 414
    functionName: dns_getserver
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ip_addr_t
    signature: '*

      dns_getserver(u8_t numdns)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:423,1
    - Dst: dns_check_entries
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 425
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 425
    functionName: dns_tmr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - dns_check_entries
    linkageType: ''
    returnType: void
    signature: dns_tmr(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:437,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:439,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:440,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:441,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:442,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:443,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:446,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 455
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 455
    functionName: dns_init_local
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 1
    functionsReached:
    - LWIP_ARRAYSIZE
    - MEMCPY
    - strlen
    - memp_malloc
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: dns_init_local(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iterator_fn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:474,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:480,1
    - Dst: iterator_fn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:482,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - iterator_fn
    - iterator_arg
    argTypes:
    - dns_found_callback
    - void*
    constantsTouched: []
    func_position:
      end: 487
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 487
    functionName: dns_local_iterate
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached:
    - iterator_fn
    - LWIP_ARRAYSIZE
    linkageType: ''
    returnType: size_t
    signature: dns_local_iterate(dns_found_callback iterator_fn, void *iterator_arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:505,1
    - Dst: dns_lookup_local
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:506,1
    - Dst: LWIP_DNS_ADDRTYPE_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hostname
    - addr
    - dns_addrtype
    argTypes:
    - char*
    - ip_addr_t*
    - u8_t
    constantsTouched: []
    func_position:
      end: 507
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 507
    functionName: dns_local_lookup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - dns_lookup_local
    - LWIP_DNS_ADDRTYPE_ARG
    linkageType: ''
    returnType: err_t
    signature: dns_local_lookup(const char *hostname, ip_addr_t *addr, u8_t dns_addrtype)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_stricmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:516,1
    - Dst: LWIP_DNS_ADDRTYPE_MATCH_IP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:517,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:519,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:527,1
    - Dst: lwip_stricmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:528,1
    - Dst: LWIP_DNS_ADDRTYPE_MATCH_IP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:529,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:531,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - hostname
    - LWIP_DNS_ADDRTYPE_ARG(u8_t dns_addrtype)
    argTypes:
    - char*
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 538
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 538
    functionName: dns_lookup_local
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 1
    functionsReached:
    - ip_addr_copy
    - LWIP_ARRAYSIZE
    - LWIP_DNS_ADDRTYPE_MATCH_IP
    - lwip_stricmp
    linkageType: ''
    returnType: err_t
    signature: dns_lookup_local(const char *hostname, ip_addr_t *addr LWIP_DNS_ADDRTYPE_ARG(u8_t
      dns_addrtype))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_stricmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:558,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:559,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:568,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - hostname
    - addr
    argTypes:
    - char*
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 576
      start: 551
    functionDepth: 3
    functionLinenumber: 551
    functionLinenumberEnd: 576
    functionName: dns_local_removehost
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached:
    - memp_free
    - ip_addr_cmp
    - lwip_stricmp
    linkageType: ''
    returnType: int
    signature: dns_local_removehost(const char *hostname, const ip_addr_t *addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:593,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:594,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:595,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:596,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:601,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - hostname
    - addr
    argTypes:
    - char*
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 608
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 608
    functionName: dns_local_addhost
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached:
    - MEMCPY
    - strlen
    - memp_malloc
    - ip_addr_copy
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: dns_local_addhost(const char *hostname, const ip_addr_t *addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dns_lookup_local
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:637,1
    - Dst: LWIP_DNS_ADDRTYPE_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:637,1
    - Dst: DNS_LOOKUP_LOCAL_EXTERN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:645,1
    - Dst: LWIP_DNS_ADDRTYPE_ARG_OR_ZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:645,1
    - Dst: lwip_strnicmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:656,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:666,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:668,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:670,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:671,1
    - Dst: ip_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:672,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:674,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:677,1
    - Dst: ip_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:678,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:679,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:681,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - name
    - LWIP_DNS_ADDRTYPE_ARG(u8_t dns_addrtype)
    argTypes:
    - char*
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 689
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 689
    functionName: dns_lookup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached:
    - LWIP_DNS_ADDRTYPE_ARG
    - LWIP_DNS_ADDRTYPE_ARG_OR_ZERO
    - LWIP_DEBUGF
    - dns_lookup_local
    - memcpy
    - LWIP_MIN
    - lwip_strnicmp
    - DNS_LOOKUP_LOCAL_EXTERN
    - ip_addr_copy
    - ip_addr_debug_print
    linkageType: ''
    returnType: err_t
    signature: dns_lookup(const char *name, ip_addr_t *ipaddr LWIP_DNS_NUMIPADDRS_ARG(u8_t
      *numipaddrs) LWIP_DNS_ADDRTYPE_ARG(u8_t dns_addrtype))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_try_get_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:709,1
    - Dst: pbuf_try_get_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:733,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - query
    - p
    - start_offset
    argTypes:
    - char*
    - struct pbuf*
    - u16_t
    constantsTouched: []
    func_position:
      end: 740
      start: 702
    functionDepth: 2
    functionLinenumber: 702
    functionLinenumberEnd: 740
    functionName: dns_compare_name
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached:
    - pbuf_try_get_at
    linkageType: ''
    returnType: u16_t
    signature: dns_compare_name(const char *query, struct pbuf* p, u16_t start_offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_try_get_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:756,1
    - Dst: pbuf_try_get_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:771,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - p
    - query_idx
    argTypes:
    - struct pbuf*
    - u16_t
    constantsTouched: []
    func_position:
      end: 778
      start: 749
    functionDepth: 2
    functionLinenumber: 749
    functionLinenumberEnd: 778
    functionName: dns_skip_name
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached:
    - pbuf_try_get_at
    linkageType: ''
    returnType: u16_t
    signature: dns_skip_name(struct pbuf* p, u16_t query_idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:799,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:801,1
    - Dst: ip_addr_isany_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:802,1
    - Dst: dns_call_found
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:809,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:816,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:816,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:822,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:823,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:825,1
    - Dst: pbuf_take
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:826,1
    - Dst: pbuf_put_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:839,1
    - Dst: pbuf_take_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:840,1
    - Dst: pbuf_put_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:843,1
    - Dst: LWIP_DNS_ADDRTYPE_IS_IPV6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:847,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:848,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:850,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:852,1
    - Dst: pbuf_take_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:853,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:861,1
    - Dst: LWIP_DNS_ADDRTYPE_IS_IPV6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:867,1
    - Dst: udp_sendto
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:886,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:889,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 58
    argCount: 1
    argNames:
    - idx
    argTypes:
    - u8_t
    constantsTouched: []
    func_position:
      end: 895
      start: 786
    functionDepth: 4
    functionLinenumber: 786
    functionLinenumberEnd: 895
    functionName: dns_send
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - pbuf_take
    - pbuf_alloc
    - ip_addr_isany_val
    - memset
    - pbuf_take_at
    - lwip_htons
    - strlen
    - udp_sendto
    - dns_call_found
    - pbuf_put_at
    - pbuf_free
    - PP_HTONS
    - LWIP_DNS_ADDRTYPE_IS_IPV6
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: dns_send(u8_t idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: udp_new_ip_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:904,1
    - Dst: DNS_RAND_TXID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:910,1
    - Dst: DNS_PORT_ALLOWED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:911,1
    - Dst: udp_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:916,1
    - Dst: udp_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:919,1
    - Dst: udp_recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:922,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 924
      start: 898
    functionDepth: 2
    functionLinenumber: 898
    functionLinenumberEnd: 924
    functionName: dns_alloc_random_port
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached:
    - udp_bind
    - udp_remove
    - DNS_RAND_TXID
    - DNS_PORT_ALLOWED
    - udp_new_ip_type
    - udp_recv
    linkageType: ''
    returnType: struct udp_pcb
    signature: '*

      dns_alloc_random_port(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dns_alloc_random_port
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:944,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 963
      start: 932
    functionDepth: 3
    functionLinenumber: 932
    functionLinenumberEnd: 963
    functionName: dns_alloc_pcb
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached:
    - dns_alloc_random_port
    linkageType: ''
    returnType: u8_t
    signature: dns_alloc_pcb(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:976,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - req
    - err
    argTypes:
    - struct dns_req_entry*
    - err_t
    constantsTouched: []
    func_position:
      end: 995
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 995
    functionName: dns_exec_found_callback
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: dns_exec_found_callback(const struct dns_req_entry *req, err_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IP_IS_V6_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1015,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1016,1
    - Dst: LWIP_DNS_ADDRTYPE_IS_IPV6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1016,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1019,1
    - Dst: LWIP_DNS_ADDRTYPE_IS_IPV6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1019,1
    - Dst: dns_exec_found_callback
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1028,1
    - Dst: dns_exec_found_callback
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1035,1
    - Dst: udp_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1055,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 2
    argNames:
    - idx
    - addr
    argTypes:
    - u8_t
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 1060
      start: 1005
    functionDepth: 2
    functionLinenumber: 1005
    functionLinenumberEnd: 1060
    functionName: dns_call_found
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 1
    functionsReached:
    - udp_remove
    - dns_exec_found_callback
    - IP_IS_V6_VAL
    - LWIP_DNS_ADDRTYPE_IS_IPV6
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: dns_call_found(u8_t idx, ip_addr_t* addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DNS_RAND_TXID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1070,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1063
    functionDepth: 0
    functionLinenumber: 1063
    functionLinenumberEnd: 1082
    functionName: dns_create_txid
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached:
    - DNS_RAND_TXID
    linkageType: ''
    returnType: u16_t
    signature: dns_create_txid(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1099,1
    - Dst: dns_create_txid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1104,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1114,1
    - Dst: dns_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1117,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1119,1
    - Dst: lwip_strerr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1120,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1124,1
    - Dst: ip_addr_isany_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1127,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1137,1
    - Dst: dns_call_found
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1139,1
    - Dst: dns_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1150,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1152,1
    - Dst: lwip_strerr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1153,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1160,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1170,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 1
    argNames:
    - i
    argTypes:
    - u8_t
    constantsTouched: []
    func_position:
      end: 1173
      start: 1093
    functionDepth: 5
    functionLinenumber: 1093
    functionLinenumberEnd: 1173
    functionName: dns_check_entry
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - ip_addr_isany_val
    - dns_create_txid
    - dns_send
    - dns_call_found
    - lwip_strerr
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: dns_check_entry(u8_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dns_check_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1178
    functionDepth: 6
    functionLinenumber: 1178
    functionLinenumberEnd: 1186
    functionName: dns_check_entries
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 1
    functionsReached:
    - dns_check_entry
    linkageType: ''
    returnType: void
    signature: dns_check_entries(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pEntry
    argTypes:
    - struct dns_table_entry*
    constantsTouched: []
    func_position:
      end: 1212
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1212
    functionName: dns_can_recycle_entry
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8_t
    signature: dns_can_recycle_entry(const struct dns_table_entry *pEntry)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1215
    functionDepth: 0
    functionLinenumber: 1215
    functionLinenumberEnd: 1231
    functionName: dns_expire_asking_entries
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8_t
    signature: dns_expire_asking_entries(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dns_can_recycle_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1241,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1233
    functionDepth: 1
    functionLinenumber: 1233
    functionLinenumberEnd: 1247
    functionName: dns_flush_cache
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached:
    - memset
    - dns_can_recycle_entry
    linkageType: ''
    returnType: u8_t
    signature: dns_flush_cache(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct dns_table_entry*
    constantsTouched: []
    func_position:
      end: 1261
      start: 1250
    functionDepth: 0
    functionLinenumber: 1250
    functionLinenumberEnd: 1261
    functionName: dns_retry_pending
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached:
    - ip_addr_isany
    linkageType: ''
    returnType: u8_t
    signature: dns_retry_pending(const struct dns_table_entry *entry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1277,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1280,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1282,1
    - Dst: ip_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1283,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1285,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1287,1
    - Dst: ip_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1288,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1289,1
    - Dst: dns_call_found
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1298,1
    - Dst: dns_call_found
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1300,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - idx
    - ttl
    argTypes:
    - u8_t
    - u32_t
    constantsTouched: []
    func_position:
      end: 1313
      start: 1266
    functionDepth: 3
    functionLinenumber: 1266
    functionLinenumberEnd: 1313
    functionName: dns_correct_response
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - dns_call_found
    - ip_addr_debug_print
    linkageType: ''
    returnType: void
    signature: dns_correct_response(u8_t idx, u32_t ttl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1328,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1329,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1330,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1334,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1341,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1347,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1352,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1358,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1369,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1370,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1374,1
    - Dst: dns_retry_pending
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1377,1
    - Dst: dns_call_found
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1380,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1394,1
    - Dst: dns_retry_pending
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1396,1
    - Dst: dns_call_found
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1399,1
    - Dst: dns_compare_name
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1409,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1411,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1416,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1419,1
    - Dst: LWIP_DNS_ADDRTYPE_IS_IPV6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1420,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1420,1
    - Dst: LWIP_DNS_ADDRTYPE_IS_IPV6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1421,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1421,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1422,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1430,1
    - Dst: dns_skip_name
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1434,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1440,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1445,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1447,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1447,1
    - Dst: LWIP_DNS_ADDRTYPE_IS_IPV6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1449,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1454,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1457,1
    - Dst: ip4_addr_debug_print_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1458,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1459,1
    - Dst: ip_addr_copy_from_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1460,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1466,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1466,1
    - Dst: LWIP_DNS_ADDRTYPE_IS_IPV6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1468,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1473,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1476,1
    - Dst: ip6_addr_debug_print_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1477,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1478,1
    - Dst: ip_addr_copy_from_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1479,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1486,1
    - Dst: dns_correct_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1488,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1488,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1492,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1495,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1508,1
    - Dst: dns_check_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1510,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1514,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1517,1
    - Dst: dns_retry_pending
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1519,1
    - Dst: dns_call_found
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1522,1
    - Dst: dns_call_found
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1528,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1535,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1541,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 165
    argCount: 5
    argNames:
    - arg
    - pcb
    - p
    - addr
    - port
    argTypes:
    - void*
    - struct udp_pcb*
    - struct pbuf*
    - ip_addr_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 1543
      start: 1317
    functionDepth: 6
    functionLinenumber: 1317
    functionLinenumberEnd: 1543
    functionName: dns_recv
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached:
    - dns_correct_response
    - dns_skip_name
    - lwip_htons
    - dns_call_found
    - PP_HTONS
    - LWIP_DNS_ADDRTYPE_IS_IPV6
    - LWIP_DEBUGF
    - ip_addr_copy_from_ip4
    - dns_retry_pending
    - dns_check_entry
    - pbuf_free
    - pbuf_copy_partial
    - ip4_addr_debug_print_val
    - ip6_addr_debug_print_val
    - ip_addr_copy_from_ip6
    - lwip_ntohl
    - dns_compare_name
    - LWIP_UNUSED_ARG
    - ip_addr_cmp
    linkageType: ''
    returnType: void
    signature: dns_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t
      *addr, u16_t port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_strnicmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1574,1
    - Dst: LWIP_DNS_SET_ADDRTYPE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1589,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1590,1
    - Dst: dns_can_recycle_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1609,1
    - Dst: dns_can_recycle_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1622,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1624,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1644,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1654,1
    - Dst: LWIP_DNS_SET_ADDRTYPE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1662,1
    - Dst: LWIP_DNS_SET_ADDRTYPE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1663,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1666,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1667,1
    - Dst: dns_alloc_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1671,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1674,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1679,1
    - Dst: dns_check_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1689,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 77
    argCount: 4
    argNames:
    - name
    - hostnamelen
    - found
    - LWIP_DNS_ISMULTI_ARG(u8_t is_multi)
    argTypes:
    - char*
    - size_t
    - LWIP_DNS_FOUND_CALLBACK_TYPE
    - void*
    constantsTouched: []
    func_position:
      end: 1693
      start: 1558
    functionDepth: 6
    functionLinenumber: 1558
    functionLinenumberEnd: 1693
    functionName: dns_enqueue
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - LWIP_DNS_SET_ADDRTYPE
    - dns_alloc_pcb
    - MEMCPY
    - LWIP_MIN
    - dns_check_entry
    - lwip_strnicmp
    - dns_can_recycle_entry
    linkageType: ''
    returnType: err_t
    signature: "dns_enqueue(const char *name, size_t hostnamelen, LWIP_DNS_FOUND_CALLBACK_TYPE
      found,\n            void *callback_arg LWIP_DNS_ADDRTYPE_ARG(u8_t dns_addrtype)
      LWIP_DNS_ISMDNS_ARG(u8_t is_mdns)\n            LWIP_DNS_ISMULTI_ARG(u8_t is_multi))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dns_gethostbyname_addrtype
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1723,1
    - Dst: callback_arg LWIP_DNS_ADDRTYPE_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - hostname
    - ipaddrs
    - found
    - LWIP_DNS_ISMULTI_ARG(u8_t is_multi)
    argTypes:
    - char*
    - ip_addr_t*
    - LWIP_DNS_FOUND_CALLBACK_TYPE
    - void*
    constantsTouched: []
    func_position:
      end: 1725
      start: 1717
    functionDepth: 1
    functionLinenumber: 1717
    functionLinenumberEnd: 1725
    functionName: dns_gethostbyname_internal
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached:
    - dns_gethostbyname_addrtype
    - callback_arg LWIP_DNS_ADDRTYPE_ARG
    linkageType: ''
    returnType: err_t
    signature: "dns_gethostbyname_internal(const char *hostname, ip_addr_t *ipaddrs,\n
      \                    LWIP_DNS_FOUND_CALLBACK_TYPE found, void *callback_arg\n
      \                    LWIP_DNS_NUMIPADDRS_ARG(u8_t *numipaddrs)\n                     LWIP_DNS_ISMULTI_ARG(u8_t
      is_multi))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1764,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1766,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1772,1
    - Dst: ip_addr_set_loopback
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1773,1
    - Dst: LWIP_DNS_ADDRTYPE_IS_IPV6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1773,1
    - Dst: ipaddr_aton
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1779,1
    - Dst: IP_IS_V6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1781,1
    - Dst: IP_IS_V4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1782,1
    - Dst: dns_lookup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1789,1
    - Dst: LWIP_DNS_NUMIPADDRS_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1789,1
    - Dst: LWIP_DNS_ADDRTYPE_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1789,1
    - Dst: dns_lookup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1801,1
    - Dst: LWIP_DNS_NUMIPADDRS_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1801,1
    - Dst: LWIP_DNS_ADDRTYPE_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1801,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1806,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1810,1
    - Dst: ip_addr_isany_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1820,1
    - Dst: dns_enqueue
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1826,1
    - Dst: callback_arg LWIP_DNS_ADDRTYPE_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1826,1
    - Dst: LWIP_DNS_ISMDNS_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1827,1
    - Dst: LWIP_DNS_ISMULTI_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1827,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 47
    argCount: 4
    argNames:
    - hostname
    - addr
    - found
    - callback_arg LWIP_DNS_ADDRTYPE_ARG(u8_t dns_addrtype)
    argTypes:
    - char*
    - ip_addr_t*
    - LWIP_DNS_FOUND_CALLBACK_TYPE
    - void*
    constantsTouched: []
    func_position:
      end: 1828
      start: 1741
    functionDepth: 7
    functionLinenumber: 1741
    functionLinenumberEnd: 1828
    functionName: dns_gethostbyname_addrtype
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 2
    functionsReached:
    - LWIP_DNS_ADDRTYPE_ARG
    - LWIP_DEBUGF
    - strstr
    - strcmp
    - ipaddr_aton
    - LWIP_DNS_ISMDNS_ARG
    - ip_addr_isany_val
    - LWIP_DNS_NUMIPADDRS_ARG
    - strlen
    - IP_IS_V4
    - dns_lookup
    - dns_enqueue
    - ip_addr_set_loopback
    - callback_arg LWIP_DNS_ADDRTYPE_ARG
    - LWIP_DNS_ISMULTI_ARG
    - LWIP_UNUSED_ARG
    - LWIP_DNS_ADDRTYPE_IS_IPV6
    - IP_IS_V6
    linkageType: ''
    returnType: err_t
    signature: "dns_gethostbyname_addrtype(const char *hostname, ip_addr_t *addr,
      LWIP_DNS_FOUND_CALLBACK_TYPE found,\n                           void *callback_arg
      LWIP_DNS_ADDRTYPE_ARG(u8_t dns_addrtype))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dns_gethostbyname_internal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1856,1
    - Dst: "callback_arg\n                LWIP_DNS_NUMIPADDRS_ARG"
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1857,1
    - Dst: LWIP_DNS_ISMULTI_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - hostname
    - ipaddr
    - found
    - callback_arg
    argTypes:
    - char*
    - ip_addr_t*
    - LWIP_DNS_FOUND_CALLBACK_TYPE
    - void*
    constantsTouched: []
    func_position:
      end: 1860
      start: 1849
    functionDepth: 2
    functionLinenumber: 1849
    functionLinenumberEnd: 1860
    functionName: dns_gethostbyname
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 1
    functionsReached:
    - "callback_arg\n                LWIP_DNS_NUMIPADDRS_ARG"
    - dns_gethostbyname_internal
    - LWIP_DNS_ISMULTI_ARG
    linkageType: ''
    returnType: err_t
    signature: "dns_gethostbyname(const char *hostname, ip_addr_t *ipaddr,\n                  LWIP_DNS_FOUND_CALLBACK_TYPE
      found, void *callback_arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dns_gethostbyname_internal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1886,1
    - Dst: "callback_arg\n                LWIP_DNS_NUMIPADDRS_ARG"
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1887,1
    - Dst: LWIP_DNS_ISMULTI_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - hostname
    - ipaddrs
    - numipaddrs
    - found
    - callback_arg
    argTypes:
    - char*
    - ip_addr_t*
    - u8_t*
    - dns_found_callback_multi
    - void*
    constantsTouched: []
    func_position:
      end: 1890
      start: 1882
    functionDepth: 2
    functionLinenumber: 1882
    functionLinenumberEnd: 1890
    functionName: dns_gethostbyname_multi
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 1
    functionsReached:
    - "callback_arg\n                LWIP_DNS_NUMIPADDRS_ARG"
    - dns_gethostbyname_internal
    - LWIP_DNS_ISMULTI_ARG
    linkageType: ''
    returnType: err_t
    signature: "dns_gethostbyname_multi(const char *hostname, ip_addr_t *ipaddrs,
      u8_t *numipaddrs,\n                  dns_found_callback_multi found, void *callback_arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c:1914,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - found
    - arg
    argTypes:
    - LWIP_DNS_FOUND_CALLBACK_TYPE
    - void*
    constantsTouched: []
    func_position:
      end: 1918
      start: 1905
    functionDepth: 0
    functionLinenumber: 1905
    functionLinenumberEnd: 1918
    functionName: dns_cancel
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: u8_t
    signature: dns_cancel(LWIP_DNS_FOUND_CALLBACK_TYPE found, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: packed_struct_test
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: packed_struct_test
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/init.c:340,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/init.c:341,1
    - Dst: LWIP_CONST_CAST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/init.c:341,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/init.c:344,1
    - Dst: stats_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/init.c:348,1
    - Dst: sys_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/init.c:350,1
    - Dst: mem_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/init.c:352,1
    - Dst: memp_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/init.c:353,1
    - Dst: pbuf_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/init.c:354,1
    - Dst: netif_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/init.c:355,1
    - Dst: ip_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/init.c:357,1
    - Dst: etharp_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/init.c:359,1
    - Dst: raw_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/init.c:363,1
    - Dst: udp_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/init.c:366,1
    - Dst: tcp_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/init.c:369,1
    - Dst: igmp_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/init.c:372,1
    - Dst: dns_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/init.c:375,1
    - Dst: ppp_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/init.c:378,1
    - Dst: sys_timeouts_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/init.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 384
      start: 335
    functionDepth: 3
    functionLinenumber: 335
    functionLinenumberEnd: 384
    functionName: lwip_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/init.c
    functionUses: 2
    functionsReached:
    - dns_init
    - ip_init
    - netif_init
    - raw_init
    - mem_init
    - memp_init
    - udp_init
    - LWIP_CONST_CAST
    - stats_init
    - sys_init
    - tcp_init
    - sys_timeouts_init
    - igmp_init
    - ppp_init
    - LWIP_UNUSED_ARG
    - pbuf_init
    - etharp_init
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: lwip_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:121,1
    - Dst: tcp_tmr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:124,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 133
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 133
    functionName: tcpip_tcp_timer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - tcp_tmr
    - sys_timeout
    linkageType: ''
    returnType: void
    signature: tcpip_tcp_timer(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:157,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 162
    functionName: tcp_timer_needed
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c
    functionUses: 0
    functionsReached:
    - sys_timeout
    - tcpip_timeout
    linkageType: ''
    returnType: void
    signature: tcp_timer_needed(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:175,1
    - Dst: struct lwip_cyclic_timer*::handler
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:177,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 179
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 179
    functionName: cyclic_timer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - struct lwip_cyclic_timer*::handler
    - sys_timeout
    linkageType: ''
    returnType: void
    signature: cyclic_timer(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:186,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:189,1
    - Dst: LWIP_CONST_CAST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:189,1
    - Dst: sys_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 194
    functionName: sys_timeouts_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c
    functionUses: 1
    functionsReached:
    - sys_now
    - LWIP_ARRAYSIZE
    - LWIP_CONST_CAST
    - sys_timeout
    linkageType: ''
    returnType: void
    signature: sys_timeouts_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:286,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:305,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - handler
    - arg
    argTypes:
    - sys_timeout_handler
    - void*
    constantsTouched: []
    func_position:
      end: 310
      start: 281
    functionDepth: 3
    functionLinenumber: 281
    functionLinenumberEnd: 310
    functionName: sys_untimeout
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT_CORE_LOCKED
    - memp_free
    linkageType: ''
    returnType: void
    signature: sys_untimeout(sys_timeout_handler handler, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:326,1
    - Dst: sys_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:336,1
    - Dst: PBUF_CHECK_FREE_OOSEQ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:340,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:353,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:357,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:362,1
    - Dst: handler
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:364,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:366,1
    - Dst: LWIP_TCPIP_THREAD_ALIVE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:369,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 374
      start: 323
    functionDepth: 3
    functionLinenumber: 323
    functionLinenumberEnd: 374
    functionName: sys_check_timeouts
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c
    functionUses: 1
    functionsReached:
    - LOCK_TCPIP_CORE
    - LWIP_DEBUGF
    - handler
    - memp_free
    - PBUF_CHECK_FREE_OOSEQ
    - sys_now
    - LWIP_ASSERT_CORE_LOCKED
    - UNLOCK_TCPIP_CORE
    - LWIP_TCPIP_THREAD_ALIVE
    linkageType: ''
    returnType: void
    signature: sys_check_timeouts(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:384,1
    - Dst: sys_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 387
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 387
    functionName: sys_restart_timeouts
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT_CORE_LOCKED
    - sys_now
    linkageType: ''
    returnType: void
    signature: sys_restart_timeouts(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:400,1
    - Dst: sys_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 411
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 411
    functionName: sys_timeouts_sleeptime
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT_CORE_LOCKED
    - sys_now
    linkageType: ''
    returnType: u32_t
    signature: sys_timeouts_sleeptime(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sys_arch_mbox_fetch
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:429,1
    - Dst: sys_timeouts_sleeptime
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:433,1
    - Dst: sys_arch_mbox_fetch
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:434,1
    - Dst: sys_check_timeouts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c:437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - mbox
    - msg
    argTypes:
    - sys_mbox_t*
    - void**
    constantsTouched: []
    func_position:
      end: 441
      start: 422
    functionDepth: 4
    functionLinenumber: 422
    functionLinenumberEnd: 441
    functionName: sys_timeouts_mbox_fetch
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c
    functionUses: 0
    functionsReached:
    - sys_check_timeouts
    - sys_arch_mbox_fetch
    - sys_timeouts_sleeptime
    linkageType: ''
    returnType: void
    signature: sys_timeouts_mbox_fetch(sys_mbox_t *mbox, void **msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 450
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 450
    functionName: tcp_timer_needed
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: tcp_timer_needed(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - dataptr
    - len
    argTypes:
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 114
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 114
    functionName: lwip_standard_chksum
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c
    functionUses: 0
    functionsReached:
    - lwip_htons
    linkageType: ''
    returnType: u16_t
    signature: lwip_standard_chksum(const void *dataptr, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:164,1
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:165,1
    - Dst: SWAP_BYTES_IN_WORD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:169,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - dataptr
    - len
    argTypes:
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 173
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 173
    functionName: lwip_standard_chksum
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c
    functionUses: 0
    functionsReached:
    - FOLD_U32T
    - SWAP_BYTES_IN_WORD
    linkageType: ''
    returnType: u16_t
    signature: lwip_standard_chksum(const void *dataptr, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:228,1
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:247,1
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:248,1
    - Dst: SWAP_BYTES_IN_WORD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:251,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 2
    argNames:
    - dataptr
    - len
    argTypes:
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 255
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 255
    functionName: lwip_standard_chksum
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c
    functionUses: 0
    functionsReached:
    - FOLD_U32T
    - SWAP_BYTES_IN_WORD
    linkageType: ''
    returnType: u16_t
    signature: lwip_standard_chksum(const void *dataptr, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:267,1
    - Dst: LWIP_CHKSUM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:269,1
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:273,1
    - Dst: SWAP_BYTES_IN_WORD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:276,1
    - Dst: SWAP_BYTES_IN_WORD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:282,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:285,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:286,1
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:290,1
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:291,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - p
    - proto
    - proto_len
    - acc
    argTypes:
    - struct pbuf*
    - u8_t
    - u16_t
    - u32_t
    constantsTouched: []
    func_position:
      end: 294
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 294
    functionName: inet_cksum_pseudo_base
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c
    functionUses: 0
    functionsReached:
    - FOLD_U32T
    - LWIP_DEBUGF
    - SWAP_BYTES_IN_WORD
    - lwip_htons
    - LWIP_CHKSUM
    linkageType: ''
    returnType: u16_t
    signature: inet_cksum_pseudo_base(struct pbuf *p, u8_t proto, u16_t proto_len,
      u32_t acc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip4_addr_get_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:316,1
    - Dst: ip4_addr_get_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:319,1
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:323,1
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:324,1
    - Dst: inet_cksum_pseudo_base
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 5
    argNames:
    - p
    - proto
    - proto_len
    - src
    - dest
    argTypes:
    - struct pbuf*
    - u8_t
    - u16_t
    - ip4_addr_t*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 327
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 327
    functionName: inet_chksum_pseudo
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c
    functionUses: 0
    functionsReached:
    - ip4_addr_get_u32
    - FOLD_U32T
    - inet_cksum_pseudo_base
    linkageType: ''
    returnType: u16_t
    signature: "inet_chksum_pseudo(struct pbuf *p, u8_t proto, u16_t proto_len,\n
      \      const ip4_addr_t *src, const ip4_addr_t *dest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:359,1
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:360,1
    - Dst: inet_cksum_pseudo_base
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - p
    - proto
    - proto_len
    - src
    - dest
    argTypes:
    - struct pbuf*
    - u8_t
    - u16_t
    - ip6_addr_t*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 363
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 363
    functionName: ip6_chksum_pseudo
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c
    functionUses: 1
    functionsReached:
    - FOLD_U32T
    - inet_cksum_pseudo_base
    linkageType: ''
    returnType: u16_t
    signature: "ip6_chksum_pseudo(struct pbuf *p, u8_t proto, u16_t proto_len,\n       const
      ip6_addr_t *src, const ip6_addr_t *dest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IP_IS_V6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:383,1
    - Dst: ip6_chksum_pseudo
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:384,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:384,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:384,1
    - Dst: inet_chksum_pseudo
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:392,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:392,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - p
    - proto
    - proto_len
    - src
    - dest
    argTypes:
    - struct pbuf*
    - u8_t
    - u16_t
    - ip_addr_t*
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 395
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 395
    functionName: ip_chksum_pseudo
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c
    functionUses: 10
    functionsReached:
    - inet_chksum_pseudo
    - ip_2_ip6
    - ip6_chksum_pseudo
    - ip_2_ip4
    - IP_IS_V6
    linkageType: ''
    returnType: u16_t
    signature: "ip_chksum_pseudo(struct pbuf *p, u8_t proto, u16_t proto_len,\n       const
      ip_addr_t *src, const ip_addr_t *dest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:408,1
    - Dst: LWIP_CHKSUM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:414,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:416,1
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:419,1
    - Dst: SWAP_BYTES_IN_WORD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:422,1
    - Dst: SWAP_BYTES_IN_WORD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:428,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:431,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:432,1
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:436,1
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:437,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:438,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - p
    - proto
    - proto_len
    - chksum_len
    - acc
    argTypes:
    - struct pbuf*
    - u8_t
    - u16_t
    - u16_t
    - u32_t
    constantsTouched: []
    func_position:
      end: 440
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 440
    functionName: inet_cksum_pseudo_partial_base
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c
    functionUses: 0
    functionsReached:
    - FOLD_U32T
    - LWIP_DEBUGF
    - LWIP_CHKSUM
    - SWAP_BYTES_IN_WORD
    - lwip_htons
    - LWIP_ASSERT
    linkageType: ''
    returnType: u16_t
    signature: "inet_cksum_pseudo_partial_base(struct pbuf *p, u8_t proto, u16_t proto_len,\n
      \      u16_t chksum_len, u32_t acc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip4_addr_get_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:462,1
    - Dst: ip4_addr_get_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:465,1
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:469,1
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:470,1
    - Dst: inet_cksum_pseudo_partial_base
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 6
    argNames:
    - p
    - proto
    - proto_len
    - chksum_len
    - src
    - dest
    argTypes:
    - struct pbuf*
    - u8_t
    - u16_t
    - u16_t
    - ip4_addr_t*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 473
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 473
    functionName: inet_chksum_pseudo_partial
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c
    functionUses: 0
    functionsReached:
    - ip4_addr_get_u32
    - FOLD_U32T
    - inet_cksum_pseudo_partial_base
    linkageType: ''
    returnType: u16_t
    signature: "inet_chksum_pseudo_partial(struct pbuf *p, u8_t proto, u16_t proto_len,\n
      \      u16_t chksum_len, const ip4_addr_t *src, const ip4_addr_t *dest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:507,1
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:508,1
    - Dst: inet_cksum_pseudo_partial_base
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - p
    - proto
    - proto_len
    - chksum_len
    - src
    - dest
    argTypes:
    - struct pbuf*
    - u8_t
    - u16_t
    - u16_t
    - ip6_addr_t*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 511
      start: 490
    functionDepth: 2
    functionLinenumber: 490
    functionLinenumberEnd: 511
    functionName: ip6_chksum_pseudo_partial
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c
    functionUses: 0
    functionsReached:
    - FOLD_U32T
    - inet_cksum_pseudo_partial_base
    linkageType: ''
    returnType: u16_t
    signature: "ip6_chksum_pseudo_partial(struct pbuf *p, u8_t proto, u16_t proto_len,\n
      \      u16_t chksum_len, const ip6_addr_t *src, const ip6_addr_t *dest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IP_IS_V6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:530,1
    - Dst: ip6_chksum_pseudo_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:531,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:531,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:531,1
    - Dst: inet_chksum_pseudo_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:539,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:539,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - p
    - proto
    - proto_len
    - chksum_len
    - src
    - dest
    argTypes:
    - struct pbuf*
    - u8_t
    - u16_t
    - u16_t
    - ip_addr_t*
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 542
      start: 525
    functionDepth: 3
    functionLinenumber: 525
    functionLinenumberEnd: 542
    functionName: ip_chksum_pseudo_partial
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c
    functionUses: 3
    functionsReached:
    - ip_2_ip6
    - ip6_chksum_pseudo_partial
    - inet_chksum_pseudo_partial
    - ip_2_ip4
    - IP_IS_V6
    linkageType: ''
    returnType: u16_t
    signature: "ip_chksum_pseudo_partial(struct pbuf *p, u8_t proto, u16_t proto_len,\n
      \      u16_t chksum_len, const ip_addr_t *src, const ip_addr_t *dest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_CHKSUM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dataptr
    - len
    argTypes:
    - void*
    - u16_t
    constantsTouched: []
    func_position:
      end: 558
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 558
    functionName: inet_chksum
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c
    functionUses: 3
    functionsReached:
    - LWIP_CHKSUM
    linkageType: ''
    returnType: u16_t
    signature: inet_chksum(const void *dataptr, u16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_CHKSUM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:577,1
    - Dst: FOLD_U32T
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:578,1
    - Dst: SWAP_BYTES_IN_WORD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:581,1
    - Dst: SWAP_BYTES_IN_WORD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:586,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 589
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 589
    functionName: inet_chksum_pbuf
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c
    functionUses: 0
    functionsReached:
    - FOLD_U32T
    - SWAP_BYTES_IN_WORD
    - LWIP_CHKSUM
    linkageType: ''
    returnType: u16_t
    signature: inet_chksum_pbuf(struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:606,1
    - Dst: LWIP_CHKSUM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dst
    - src
    - len
    argTypes:
    - void*
    - void*
    - u16_t
    constantsTouched: []
    func_position:
      end: 608
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 608
    functionName: lwip_chksum_copy
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c
    functionUses: 0
    functionsReached:
    - MEMCPY
    - LWIP_CHKSUM
    linkageType: ''
    returnType: u16_t
    signature: lwip_chksum_copy(void *dst, const void *src, u16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIB2_INIT_NETIF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 165
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 165
    functionName: netif_loopif_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 0
    functionsReached:
    - MIB2_INIT_NETIF
    linkageType: ''
    returnType: err_t
    signature: netif_loopif_init(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:175,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:176,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:177,1
    - Dst: netif_add
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:183,1
    - Dst: netif_add
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:185,1
    - Dst: IP_ADDR6_HOST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:189,1
    - Dst: netif_set_link_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:193,1
    - Dst: netif_set_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 197
    functionName: netif_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 1
    functionsReached:
    - IP4_ADDR
    - netif_add
    - IP_ADDR6_HOST
    - netif_set_link_up
    - netif_set_up
    linkageType: ''
    returnType: void
    signature: netif_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NETIF_SET_HWADDRHINT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:202,1
    - Dst: ip_get_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - netif
    - pcb
    argTypes:
    - struct netif*
    - struct ip_pcb*
    constantsTouched: []
    func_position:
      end: 206
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 206
    functionName: netif_apply_pcb
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 5
    functionsReached:
    - NETIF_SET_HWADDRHINT
    - ip_get_option
    linkageType: ''
    returnType: void
    signature: netif_apply_pcb(struct netif *netif, struct ip_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:220,1
    - Dst: ethernet_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:224,1
    - Dst: ip_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - inp
    argTypes:
    - struct pbuf*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 228
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 228
    functionName: netif_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 0
    functionsReached:
    - ip_input
    - LWIP_ASSERT_CORE_LOCKED
    - ethernet_input
    linkageType: ''
    returnType: err_t
    signature: netif_input(struct pbuf *p, struct netif *inp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:268,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:270,1
    - Dst: ip_addr_set_zero_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:274,1
    - Dst: ip_addr_set_zero_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:275,1
    - Dst: ip_addr_set_zero_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:276,1
    - Dst: ip_addr_set_zero_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:280,1
    - Dst: NETIF_SET_CHECKSUM_CTRL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:289,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:292,1
    - Dst: NETIF_SET_HWADDRHINT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:323,1
    - Dst: netif_set_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:329,1
    - Dst: init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:333,1
    - Dst: mib2_netif_added
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:340,1
    - Dst: igmp_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:345,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:349,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:352,1
    - Dst: ip4_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:353,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:354,1
    - Dst: ip4_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:355,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:356,1
    - Dst: ip4_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:357,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:359,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 48
    argCount: 7
    argNames:
    - netif
    - ip4_addr_t *ipaddr
    - netmask
    - gw
    - state
    - init
    - input
    argTypes:
    - struct netif*
    - LWIP_IPV4
    - ip4_addr_t*
    - ip4_addr_t*
    - void*
    - netif_init_fn
    - netif_input_fn
    constantsTouched: []
    func_position:
      end: 361
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 361
    functionName: netif_add
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 12
    functionsReached:
    - mib2_netif_added
    - LWIP_DEBUGF
    - ip_addr_set_zero_ip6
    - netif_set_addr
    - ip_addr_set_zero_ip4
    - ip4_addr_debug_print
    - memset
    - igmp_start
    - LWIP_ASSERT_CORE_LOCKED
    - init
    - NETIF_SET_CHECKSUM_CTRL
    - NETIF_SET_HWADDRHINT
    - LWIP_ASSERT
    linkageType: ''
    returnType: struct netif
    signature: "*\nnetif_add(struct netif *netif,\n#if LWIP_IPV4\n          const
      ip4_addr_t *ipaddr, const ip4_addr_t *netmask, const ip4_addr_t *gw,\n#endif
      /* LWIP_IPV4 */\n          void *state, netif_init_fn init, netif_input_fn input)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:378,1
    - Dst: ip4_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:380,1
    - Dst: netif_set_ipaddr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:383,1
    - Dst: netif_set_netmask
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:384,1
    - Dst: netif_set_gw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:385,1
    - Dst: netif_set_netmask
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:387,1
    - Dst: netif_set_gw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:388,1
    - Dst: netif_set_ipaddr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - netif
    - ipaddr
    - netmask
    - gw
    argTypes:
    - struct netif*
    - ip4_addr_t*
    - ip4_addr_t*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 392
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 392
    functionName: netif_set_addr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 1
    functionsReached:
    - ip4_addr_isany
    - netif_set_gw
    - netif_set_netmask
    - LWIP_ASSERT_CORE_LOCKED
    - netif_set_ipaddr
    linkageType: ''
    returnType: void
    signature: "netif_set_addr(struct netif *netif, const ip4_addr_t *ipaddr, const
      ip4_addr_t *netmask,\n    const ip4_addr_t *gw)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:408,1
    - Dst: ip4_addr_isany_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:415,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:415,1
    - Dst: tcp_netif_ip_addr_changed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:417,1
    - Dst: netif_ip_addr4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:417,1
    - Dst: udp_netif_ip_addr_changed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:420,1
    - Dst: netif_ip_addr4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:420,1
    - Dst: raw_netif_ip_addr_changed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:423,1
    - Dst: netif_ip_addr4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:423,1
    - Dst: igmp_stop
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:430,1
    - Dst: ip6_addr_isvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:437,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:437,1
    - Dst: tcp_netif_ip_addr_changed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:439,1
    - Dst: netif_ip_addr6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:439,1
    - Dst: udp_netif_ip_addr_changed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:442,1
    - Dst: netif_ip_addr6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:442,1
    - Dst: raw_netif_ip_addr_changed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:445,1
    - Dst: netif_ip_addr6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:445,1
    - Dst: mld6_stop
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:451,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:454,1
    - Dst: netif_set_down
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:456,1
    - Dst: mib2_remove_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:459,1
    - Dst: netif_set_default
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:464,1
    - Dst: mib2_netif_removed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:482,1
    - Dst: struct netif*::remove_callback
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:485,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:488,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 489
      start: 401
    functionDepth: 7
    functionLinenumber: 401
    functionLinenumberEnd: 489
    functionName: netif_remove
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 7
    functionsReached:
    - netif_ip4_addr
    - mib2_remove_ip4
    - ip6_addr_isvalid
    - netif_ip6_addr_state
    - LWIP_DEBUGF
    - mld6_stop
    - netif_ip_addr4
    - raw_netif_ip_addr_changed
    - ip4_addr_isany_val
    - netif_set_down
    - LWIP_ASSERT_CORE_LOCKED
    - mib2_netif_removed
    - igmp_stop
    - netif_is_up
    - netif_ip_addr6
    - tcp_netif_ip_addr_changed
    - netif_set_default
    - struct netif*::remove_callback
    - udp_netif_ip_addr_changed
    linkageType: ''
    returnType: void
    signature: netif_remove(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:514,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:518,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 520
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 520
    functionName: netif_find
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    linkageType: ''
    returnType: struct netif
    signature: '*

      netif_find(const char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:538,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:540,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:541,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:544,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:544,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:544,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:545,1
    - Dst: tcp_netif_ip_addr_changed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:547,1
    - Dst: netif_ip_addr4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:547,1
    - Dst: udp_netif_ip_addr_changed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:550,1
    - Dst: netif_ip_addr4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:550,1
    - Dst: raw_netif_ip_addr_changed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:553,1
    - Dst: netif_ip_addr4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:553,1
    - Dst: mib2_remove_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:556,1
    - Dst: mib2_remove_route_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:557,1
    - Dst: ip4_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:559,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:559,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:560,1
    - Dst: mib2_add_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:561,1
    - Dst: mib2_add_route_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:562,1
    - Dst: netif_issue_reports
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:564,1
    - Dst: NETIF_STATUS_CALLBACK
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:566,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:569,1
    - Dst: ip4_addr1_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:571,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:571,1
    - Dst: ip4_addr2_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:572,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:572,1
    - Dst: ip4_addr3_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:573,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:573,1
    - Dst: ip4_addr4_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:574,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - netif
    - ipaddr
    argTypes:
    - struct netif*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 575
      start: 533
    functionDepth: 7
    functionLinenumber: 533
    functionLinenumberEnd: 575
    functionName: netif_set_ipaddr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 1
    functionsReached:
    - netif_ip4_addr
    - ip4_addr1_16
    - mib2_remove_ip4
    - ip4_addr4_16
    - IP_SET_TYPE_VAL
    - LWIP_DEBUGF
    - netif_ip_addr4
    - ip4_addr_cmp
    - raw_netif_ip_addr_changed
    - ip4_addr2_16
    - LWIP_ASSERT_CORE_LOCKED
    - mib2_add_ip4
    - NETIF_STATUS_CALLBACK
    - ip4_addr_set
    - ip4_addr3_16
    - mib2_add_route_ip4
    - tcp_netif_ip_addr_changed
    - ip_2_ip4
    - mib2_remove_route_ip4
    - udp_netif_ip_addr_changed
    - netif_issue_reports
    linkageType: ''
    returnType: void
    signature: netif_set_ipaddr(struct netif *netif, const ip4_addr_t *ipaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:589,1
    - Dst: ip4_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:591,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:591,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:592,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:593,1
    - Dst: ip4_addr1_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:595,1
    - Dst: netif_ip4_gw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:595,1
    - Dst: ip4_addr2_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:596,1
    - Dst: netif_ip4_gw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:596,1
    - Dst: ip4_addr3_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:597,1
    - Dst: netif_ip4_gw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:597,1
    - Dst: ip4_addr4_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:598,1
    - Dst: netif_ip4_gw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - netif
    - gw
    argTypes:
    - struct netif*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 599
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 599
    functionName: netif_set_gw
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - IP_SET_TYPE_VAL
    - ip4_addr1_16
    - ip4_addr2_16
    - LWIP_ASSERT_CORE_LOCKED
    - ip4_addr4_16
    - ip4_addr_set
    - ip_2_ip4
    - netif_ip4_gw
    - ip4_addr3_16
    linkageType: ''
    returnType: void
    signature: netif_set_gw(struct netif *netif, const ip4_addr_t *gw)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:614,1
    - Dst: mib2_remove_route_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:616,1
    - Dst: ip4_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:618,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:618,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:619,1
    - Dst: mib2_add_route_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:620,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:621,1
    - Dst: ip4_addr1_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:623,1
    - Dst: netif_ip4_netmask
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:623,1
    - Dst: ip4_addr2_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:624,1
    - Dst: netif_ip4_netmask
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:624,1
    - Dst: ip4_addr3_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:625,1
    - Dst: netif_ip4_netmask
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:625,1
    - Dst: ip4_addr4_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:626,1
    - Dst: netif_ip4_netmask
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - netif
    - netmask
    argTypes:
    - struct netif*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 627
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 627
    functionName: netif_set_netmask
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 1
    functionsReached:
    - IP_SET_TYPE_VAL
    - LWIP_DEBUGF
    - ip4_addr1_16
    - mib2_add_route_ip4
    - mib2_remove_route_ip4
    - ip4_addr2_16
    - LWIP_ASSERT_CORE_LOCKED
    - ip4_addr4_16
    - netif_ip4_netmask
    - ip4_addr_set
    - ip_2_ip4
    - ip4_addr3_16
    linkageType: ''
    returnType: void
    signature: netif_set_netmask(struct netif *netif, const ip4_addr_t *netmask)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:640,1
    - Dst: mib2_remove_route_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:644,1
    - Dst: mib2_add_route_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:647,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 652
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 652
    functionName: netif_set_default
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 5
    functionsReached:
    - LWIP_DEBUGF
    - LWIP_ASSERT_CORE_LOCKED
    - mib2_add_route_ip4
    - mib2_remove_route_ip4
    linkageType: ''
    returnType: void
    signature: netif_set_default(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:662,1
    - Dst: MIB2_COPY_SYSUPTIME_TO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:667,1
    - Dst: NETIF_STATUS_CALLBACK
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:669,1
    - Dst: netif_issue_reports
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:672,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 675
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 675
    functionName: netif_set_up
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 11
    functionsReached:
    - NETIF_STATUS_CALLBACK
    - LWIP_ASSERT_CORE_LOCKED
    - MIB2_COPY_SYSUPTIME_TO
    - netif_issue_reports
    linkageType: ''
    returnType: void
    signature: netif_set_up(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip4_addr_isany_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:684,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:684,1
    - Dst: etharp_gratuitous
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:688,1
    - Dst: igmp_report_groups
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:695,1
    - Dst: mld6_report_groups
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:705,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - netif
    - report_type
    argTypes:
    - struct netif*
    - u8_t
    constantsTouched: []
    func_position:
      end: 713
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 713
    functionName: netif_issue_reports
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 2
    functionsReached:
    - netif_ip4_addr
    - igmp_report_groups
    - ip4_addr_isany_val
    - mld6_report_groups
    - etharp_gratuitous
    linkageType: ''
    returnType: void
    signature: netif_issue_reports(struct netif* netif, u8_t report_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:722,1
    - Dst: MIB2_COPY_SYSUPTIME_TO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:726,1
    - Dst: etharp_cleanup_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:730,1
    - Dst: nd6_cleanup_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:735,1
    - Dst: NETIF_STATUS_CALLBACK
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:738,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 740
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 740
    functionName: netif_set_down
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 2
    functionsReached:
    - etharp_cleanup_netif
    - MIB2_COPY_SYSUPTIME_TO
    - nd6_cleanup_netif
    - NETIF_STATUS_CALLBACK
    - LWIP_ASSERT_CORE_LOCKED
    linkageType: ''
    returnType: void
    signature: netif_set_down(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - netif
    - status_callback
    argTypes:
    - struct netif*
    - netif_status_callback_fn
    constantsTouched: []
    func_position:
      end: 755
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 755
    functionName: netif_set_status_callback
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 1
    functionsReached:
    - LWIP_ASSERT_CORE_LOCKED
    linkageType: ''
    returnType: void
    signature: netif_set_status_callback(struct netif *netif, netif_status_callback_fn
      status_callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - netif
    - remove_callback
    argTypes:
    - struct netif*
    - netif_status_callback_fn
    constantsTouched: []
    func_position:
      end: 769
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 769
    functionName: netif_set_remove_callback
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: netif_set_remove_callback(struct netif *netif, netif_status_callback_fn
      remove_callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:779,1
    - Dst: dhcp_network_changed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:785,1
    - Dst: autoip_network_changed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:789,1
    - Dst: netif_issue_reports
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:793,1
    - Dst: NETIF_LINK_CALLBACK
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 797
      start: 776
    functionDepth: 2
    functionLinenumber: 776
    functionLinenumberEnd: 797
    functionName: netif_set_link_up
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 3
    functionsReached:
    - dhcp_network_changed
    - autoip_network_changed
    - LWIP_ASSERT_CORE_LOCKED
    - NETIF_LINK_CALLBACK
    - netif_issue_reports
    linkageType: ''
    returnType: void
    signature: netif_set_link_up(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:806,1
    - Dst: NETIF_LINK_CALLBACK
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 812
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 812
    functionName: netif_set_link_down
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 1
    functionsReached:
    - LWIP_ASSERT_CORE_LOCKED
    - NETIF_LINK_CALLBACK
    linkageType: ''
    returnType: void
    signature: netif_set_link_down(struct netif *netif )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - netif
    - link_callback
    argTypes:
    - struct netif*
    - netif_status_callback_fn
    constantsTouched: []
    func_position:
      end: 827
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 827
    functionName: netif_set_link_callback
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT_CORE_LOCKED
    linkageType: ''
    returnType: void
    signature: netif_set_link_callback(struct netif *netif, netif_status_callback_fn
      link_callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYS_ARCH_DECL_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:863,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:866,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:868,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:869,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:870,1
    - Dst: pbuf_clen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:874,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:878,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:879,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:880,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:881,1
    - Dst: pbuf_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:888,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:889,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:890,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:891,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:892,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:904,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:906,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:913,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:915,1
    - Dst: MIB2_STATS_NETIF_ADD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:916,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:917,1
    - Dst: tcpip_callback_with_block
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:921,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 2
    argNames:
    - netif
    - p
    argTypes:
    - struct netif*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 925
      start: 845
    functionDepth: 4
    functionLinenumber: 845
    functionLinenumberEnd: 925
    functionName: netif_loop_output
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 0
    functionsReached:
    - SYS_ARCH_UNPROTECT
    - pbuf_copy
    - pbuf_alloc
    - SYS_ARCH_PROTECT
    - MIB2_STATS_NETIF_INC
    - pbuf_clen
    - tcpip_callback_with_block
    - LINK_STATS_INC
    - pbuf_free
    - MIB2_STATS_NETIF_ADD
    - SYS_ARCH_DECL_PROTECT
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: netif_loop_output(struct netif *netif, struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:932,1
    - Dst: netif_loop_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - netif
    - p
    - addr
    argTypes:
    - struct netif*
    - struct pbuf*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 934
      start: 929
    functionDepth: 5
    functionLinenumber: 929
    functionLinenumberEnd: 934
    functionName: netif_loop_output_ipv4
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - netif_loop_output
    linkageType: ''
    returnType: err_t
    signature: netif_loop_output_ipv4(struct netif *netif, struct pbuf *p, const ip4_addr_t*
      addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:941,1
    - Dst: netif_loop_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - netif
    - p
    - addr
    argTypes:
    - struct netif*
    - struct pbuf*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 943
      start: 938
    functionDepth: 5
    functionLinenumber: 938
    functionLinenumberEnd: 943
    functionName: netif_loop_output_ipv6
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - netif_loop_output
    linkageType: ''
    returnType: err_t
    signature: netif_loop_output_ipv6(struct netif *netif, struct pbuf *p, const ip6_addr_t*
      addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYS_ARCH_DECL_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:966,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:969,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:978,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:986,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:998,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1002,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1004,1
    - Dst: MIB2_STATS_NETIF_ADD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1005,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1006,1
    - Dst: ip_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1008,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1009,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1011,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1013,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1014
      start: 954
    functionDepth: 4
    functionLinenumber: 954
    functionLinenumberEnd: 1014
    functionName: netif_poll
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 0
    functionsReached:
    - SYS_ARCH_UNPROTECT
    - SYS_ARCH_PROTECT
    - MIB2_STATS_NETIF_INC
    - LINK_STATS_INC
    - MIB2_STATS_NETIF_ADD
    - pbuf_free
    - ip_input
    - SYS_ARCH_DECL_PROTECT
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: netif_poll(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_poll
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1026,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1020
    functionDepth: 5
    functionLinenumber: 1020
    functionLinenumberEnd: 1030
    functionName: netif_poll_all
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 0
    functionsReached:
    - netif_poll
    linkageType: ''
    returnType: void
    signature: netif_poll_all(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1047,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1051
    functionName: netif_alloc_client_data_id
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT_CORE_LOCKED
    - LWIP_ASSERT
    linkageType: ''
    returnType: u8_t
    signature: netif_alloc_client_data_id(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1068,1
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1070,1
    - Dst: netif_ip6_addr_set_parts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - netif
    - addr_idx
    - addr6
    argTypes:
    - struct netif*
    - s8_t
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 1074
      start: 1065
    functionDepth: 1
    functionLinenumber: 1065
    functionLinenumberEnd: 1074
    functionName: netif_ip6_addr_set
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 0
    functionsReached:
    - netif_ip6_addr_set_parts
    - LWIP_ASSERT_CORE_LOCKED
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: netif_ip6_addr_set(struct netif *netif, s8_t addr_idx, const ip6_addr_t
      *addr6)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1090,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1091,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1092,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1094,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1098,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1100,1
    - Dst: IP_ADDR6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1103,1
    - Dst: tcp_netif_ip_addr_changed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1106,1
    - Dst: netif_ip_addr6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1106,1
    - Dst: udp_netif_ip_addr_changed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1109,1
    - Dst: netif_ip_addr6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1109,1
    - Dst: raw_netif_ip_addr_changed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1112,1
    - Dst: netif_ip_addr6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1112,1
    - Dst: IP6_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1117,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1117,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1118,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1120,1
    - Dst: netif_issue_reports
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1121,1
    - Dst: NETIF_STATUS_CALLBACK
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1122,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1126,1
    - Dst: ip6addr_ntoa
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1127,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1127,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1128,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 6
    argNames:
    - netif
    - addr_idx
    - i0
    - i1
    - i2
    - i3
    argTypes:
    - struct netif*
    - s8_t
    - u32_t
    - u32_t
    - u32_t
    - u32_t
    constantsTouched: []
    func_position:
      end: 1129
      start: 1086
    functionDepth: 7
    functionLinenumber: 1086
    functionLinenumberEnd: 1129
    functionName: netif_ip6_addr_set_parts
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 1
    functionsReached:
    - netif_ip6_addr
    - LWIP_DEBUGF
    - ip_2_ip6
    - IP_SET_TYPE_VAL
    - raw_netif_ip_addr_changed
    - ip6addr_ntoa
    - netif_ip_addr6
    - netif_issue_reports
    - IP_ADDR6
    - IP6_ADDR
    - tcp_netif_ip_addr_changed
    - LWIP_ASSERT_CORE_LOCKED
    - udp_netif_ip_addr_changed
    - NETIF_STATUS_CALLBACK
    - netif_ip6_addr_state
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: netif_ip6_addr_set_parts(struct netif *netif, s8_t addr_idx, u32_t
      i0, u32_t i1, u32_t i2, u32_t i3)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1145,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1146,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1147,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1149,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1154,1
    - Dst: nd6_adjust_mld_membership
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1159,1
    - Dst: tcp_netif_ip_addr_changed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1166,1
    - Dst: netif_ip_addr6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1166,1
    - Dst: udp_netif_ip_addr_changed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1169,1
    - Dst: netif_ip_addr6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1169,1
    - Dst: raw_netif_ip_addr_changed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1172,1
    - Dst: netif_ip_addr6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1172,1
    - Dst: netif_issue_reports
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1181,1
    - Dst: NETIF_STATUS_CALLBACK
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1186,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1190,1
    - Dst: ip6addr_ntoa
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1191,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1191,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1192,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - netif
    - addr_idx
    - state
    argTypes:
    - struct netif*
    - s8_t
    - u8_t
    constantsTouched: []
    func_position:
      end: 1193
      start: 1141
    functionDepth: 7
    functionLinenumber: 1141
    functionLinenumberEnd: 1193
    functionName: netif_ip6_addr_set_state
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 3
    functionsReached:
    - netif_ip6_addr
    - LWIP_DEBUGF
    - raw_netif_ip_addr_changed
    - ip6addr_ntoa
    - netif_ip_addr6
    - nd6_adjust_mld_membership
    - netif_issue_reports
    - tcp_netif_ip_addr_changed
    - LWIP_ASSERT_CORE_LOCKED
    - udp_netif_ip_addr_changed
    - NETIF_STATUS_CALLBACK
    - netif_ip6_addr_state
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: netif_ip6_addr_set_state(struct netif* netif, s8_t addr_idx, u8_t state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1210,1
    - Dst: ip6_addr_isinvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1213,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1213,1
    - Dst: ip6_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1214,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - netif
    - ip6addr
    argTypes:
    - struct netif*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 1219
      start: 1205
    functionDepth: 0
    functionLinenumber: 1205
    functionLinenumberEnd: 1219
    functionName: netif_get_ip6_addr_match
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 2
    functionsReached:
    - ip6_addr_cmp
    - netif_ip6_addr
    - ip6_addr_isinvalid
    - LWIP_ASSERT_CORE_LOCKED
    - netif_ip6_addr_state
    linkageType: ''
    returnType: s8_t
    signature: netif_get_ip6_addr_match(struct netif *netif, const ip6_addr_t *ip6addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1238,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1241,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1241,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1242,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1247,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1247,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1251,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1251,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1257,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1258,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1260,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1260,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1261,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1261,1
    - Dst: netif_ip6_addr_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1267,1
    - Dst: netif_ip6_addr_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - netif
    - from_mac_48bit
    argTypes:
    - struct netif*
    - u8_t
    constantsTouched: []
    func_position:
      end: 1272
      start: 1233
    functionDepth: 8
    functionLinenumber: 1233
    functionLinenumberEnd: 1272
    functionName: netif_create_ip6_linklocal_address
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 3
    functionsReached:
    - ip_2_ip6
    - memcpy
    - LWIP_ASSERT_CORE_LOCKED
    - PP_HTONL
    - lwip_htonl
    - netif_ip6_addr_set_state
    linkageType: ''
    returnType: void
    signature: netif_create_ip6_linklocal_address(struct netif *netif, u8_t from_mac_48bit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_prefix_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1291,1
    - Dst: netif_add_ip6_address
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1302,1
    - Dst: ip6_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1312,1
    - Dst: ip6_add_route_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1314,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 4
    argNames:
    - netif
    - ip6addr
    - prefix_len
    - chosen_idx
    argTypes:
    - struct netif*
    - ip6_addr_t*
    - u8_t
    - s8_t*
    constantsTouched: []
    func_position:
      end: 1323
      start: 1283
    functionDepth: 1
    functionLinenumber: 1283
    functionLinenumberEnd: 1323
    functionName: netif_add_ip6_address_with_route
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 3
    functionsReached:
    - netif_add_ip6_address
    - ip6_prefix_valid
    - ip6_add_route_entry
    - ip6_addr_copy
    linkageType: ''
    returnType: err_t
    signature: "netif_add_ip6_address_with_route(struct netif *netif, ip6_addr_t *ip6addr,
      \n                                 u8_t prefix_len, s8_t *chosen_idx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_prefix_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1341,1
    - Dst: netif_remove_ip6_address
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1352,1
    - Dst: ip6_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1358,1
    - Dst: ip6_remove_route_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1360,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - netif
    - ip6addr
    - prefix_len
    argTypes:
    - struct netif*
    - ip6_addr_t*
    - u8_t
    constantsTouched: []
    func_position:
      end: 1365
      start: 1333
    functionDepth: 1
    functionLinenumber: 1333
    functionLinenumberEnd: 1365
    functionName: netif_remove_ip6_address_with_route
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 2
    functionsReached:
    - netif_remove_ip6_address
    - ip6_prefix_valid
    - ip6_addr_copy
    - ip6_remove_route_entry
    linkageType: ''
    returnType: err_t
    signature: "netif_remove_ip6_address_with_route(struct netif *netif, ip6_addr_t
      *ip6addr, \n                                    u8_t prefix_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1382,1
    - Dst: netif_get_ip6_addr_match
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1384,1
    - Dst: ip6_addr_isinvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1395,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1395,1
    - Dst: ip_addr_copy_from_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1396,1
    - Dst: netif_ip6_addr_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1397,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - netif
    - ip6addr
    - chosen_idx
    argTypes:
    - struct netif*
    - ip6_addr_t*
    - s8_t*
    constantsTouched: []
    func_position:
      end: 1409
      start: 1377
    functionDepth: 8
    functionLinenumber: 1377
    functionLinenumberEnd: 1409
    functionName: netif_add_ip6_address
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 1
    functionsReached:
    - ip6_addr_isinvalid
    - netif_get_ip6_addr_match
    - ip_addr_copy_from_ip6
    - LWIP_ASSERT_CORE_LOCKED
    - netif_ip6_addr_set_state
    - netif_ip6_addr_state
    linkageType: ''
    returnType: err_t
    signature: netif_add_ip6_address(struct netif *netif, const ip6_addr_t *ip6addr,
      s8_t *chosen_idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_get_ip6_addr_match
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1421,1
    - Dst: ip6_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1423,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1423,1
    - Dst: netif_ip6_addr_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - netif
    - ip6addr
    argTypes:
    - struct netif*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 1429
      start: 1416
    functionDepth: 8
    functionLinenumber: 1416
    functionLinenumberEnd: 1429
    functionName: netif_remove_ip6_address
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 1
    functionsReached:
    - netif_ip6_addr_set_state
    - netif_get_ip6_addr_match
    - ip_2_ip6
    - ip6_addr_set_zero
    linkageType: ''
    returnType: err_t
    signature: netif_remove_ip6_address(struct netif *netif, ip6_addr_t *ip6addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1434,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1435,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - netif
    - p
    - ipaddr
    argTypes:
    - struct netif*
    - struct pbuf*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 1439
      start: 1431
    functionDepth: 0
    functionLinenumber: 1431
    functionLinenumberEnd: 1439
    functionName: netif_null_output_ip6
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: err_t
    signature: netif_null_output_ip6(struct netif *netif, struct pbuf *p, const ip6_addr_t
      *ipaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_find
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1452,1
    - Dst: netif_get_index
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1458
      start: 1449
    functionDepth: 1
    functionLinenumber: 1449
    functionLinenumberEnd: 1458
    functionName: netif_name_to_index
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 0
    functionsReached:
    - netif_find
    - netif_get_index
    linkageType: ''
    returnType: u8_t
    signature: netif_name_to_index(const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1473,1
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1477,1
    - Dst: netif_index_to_num
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1482,1
    - Dst: lwip_itoa
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - index
    - name
    argTypes:
    - u8_t
    - char*
    constantsTouched: []
    func_position:
      end: 1495
      start: 1468
    functionDepth: 1
    functionLinenumber: 1468
    functionLinenumberEnd: 1495
    functionName: netif_index_to_name
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 0
    functionsReached:
    - lwip_itoa
    - LWIP_ASSERT_CORE_LOCKED
    - netif_index_to_num
    linkageType: ''
    returnType: char
    signature: '*

      netif_index_to_name(u8_t index, char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_get_index
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c:1510,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - index
    argTypes:
    - u8_t
    constantsTouched: []
    func_position:
      end: 1517
      start: 1503
    functionDepth: 0
    functionLinenumber: 1503
    functionLinenumberEnd: 1517
    functionName: netif_get_by_index
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
    functionUses: 4
    functionsReached:
    - netif_get_index
    linkageType: ''
    returnType: struct netif
    signature: '*

      netif_get_by_index(u8_t index)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip4_addr_set_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c:61,1
    - Dst: ip4_addr_get_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c:73,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c:73,1
    - Dst: ip4_addr_netcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c:76,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c:76,1
    - Dst: netif_ip4_netmask
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c:76,1
    - Dst: ip4_addr_get_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c:78,1
    - Dst: netif_ip4_netmask
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c:78,1
    - Dst: ip4_addr_get_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c:79,1
    - Dst: netif_ip4_netmask
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c:79,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - addr
    - netif
    argTypes:
    - u32_t
    - struct netif*
    constantsTouched: []
    func_position:
      end: 85
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 85
    functionName: ip4_addr_isbroadcast_u32
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c
    functionUses: 0
    functionsReached:
    - netif_ip4_addr
    - ip4_addr_netcmp
    - ip4_addr_set_u32
    - netif_ip4_netmask
    - ip4_addr_get_u32
    linkageType: ''
    returnType: u8_t
    signature: ip4_addr_isbroadcast_u32(u32_t addr, const struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - netmask
    argTypes:
    - u32_t
    constantsTouched: []
    func_position:
      end: 113
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 113
    functionName: ip4_addr_netmask_valid
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c
    functionUses: 0
    functionsReached:
    - lwip_htonl
    linkageType: ''
    returnType: u8_t
    signature: ip4_addr_netmask_valid(u32_t netmask)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip4addr_aton
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c:137,1
    - Dst: ip4_addr_get_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cp
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 141
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 141
    functionName: ipaddr_addr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c
    functionUses: 0
    functionsReached:
    - ip4_addr_get_u32
    - ip4addr_aton
    linkageType: ''
    returnType: u32_t
    signature: ipaddr_addr(const char *cp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c:170,1
    - Dst: isdigit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c:185,1
    - Dst: isxdigit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c:188,1
    - Dst: islower
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c:189,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c:214,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c:259,1
    - Dst: ip4_addr_set_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c:263,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c:263,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 82
    argCount: 2
    argNames:
    - cp
    - addr
    argTypes:
    - char*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 266
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 266
    functionName: ip4addr_aton
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c
    functionUses: 3
    functionsReached:
    - isspace
    - isdigit
    - isxdigit
    - ip4_addr_set_u32
    - lwip_htonl
    - islower
    - LWIP_ASSERT
    linkageType: ''
    returnType: int
    signature: ip4addr_aton(const char *cp, ip4_addr_t *addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip4addr_ntoa_r
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 281
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 281
    functionName: ip4addr_ntoa
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c
    functionUses: 1
    functionsReached:
    - ip4addr_ntoa_r
    linkageType: ''
    returnType: char
    signature: '*

      ip4addr_ntoa(const ip4_addr_t *addr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip4_addr_get_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c:304,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - addr
    - buf
    - buflen
    argTypes:
    - ip4_addr_t*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 329
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 329
    functionName: ip4addr_ntoa_r
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c
    functionUses: 2
    functionsReached:
    - ip4_addr_get_u32
    linkageType: ''
    returnType: char
    signature: '*

      ip4addr_ntoa_r(const ip4_addr_t *addr, char *buf, int buflen)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:151,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:152,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:156,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:157,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct etharp_q_entry*
    constantsTouched: []
    func_position:
      end: 160
      start: 147
    functionDepth: 4
    functionLinenumber: 147
    functionLinenumberEnd: 160
    functionName: free_etharp_q
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c
    functionUses: 0
    functionsReached:
    - memp_free
    - pbuf_free
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: free_etharp_q(struct etharp_q_entry *q)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mib2_remove_arp_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:173,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:177,1
    - Dst: free_etharp_q
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:178,1
    - Dst: ip4_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 190
      start: 169
    functionDepth: 5
    functionLinenumber: 169
    functionLinenumberEnd: 190
    functionName: etharp_free_entry
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - free_etharp_q
    - mib2_remove_arp_entry
    - ip4_addr_set_zero
    linkageType: ''
    returnType: void
    signature: etharp_free_entry(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:203,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:217,1
    - Dst: etharp_free_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:220,1
    - Dst: etharp_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:230,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 198
    functionDepth: 6
    functionLinenumber: 198
    functionLinenumberEnd: 234
    functionName: etharp_tmr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c
    functionUses: 2
    functionsReached:
    - etharp_request
    - LWIP_DEBUGF
    - etharp_free_entry
    linkageType: ''
    returnType: void
    signature: etharp_tmr(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:268,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:289,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:293,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:296,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:301,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:343,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:359,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:365,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:367,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:372,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:377,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:380,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:385,1
    - Dst: etharp_free_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:386,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:389,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:390,1
    - Dst: ip4_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:396,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 3
    argNames:
    - ipaddr
    - flags
    - netif
    argTypes:
    - ip4_addr_t*
    - u8_t
    - struct netif*
    constantsTouched: []
    func_position:
      end: 403
      start: 257
    functionDepth: 6
    functionLinenumber: 257
    functionLinenumberEnd: 403
    functionName: etharp_find_entry
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - etharp_free_entry
    - ip4_addr_cmp
    - ip4_addr_copy
    - LWIP_UNUSED_ARG
    - LWIP_ASSERT
    linkageType: ''
    returnType: s8_t
    signature: etharp_find_entry(const ip4_addr_t *ipaddr, u8_t flags, struct netif*
      netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:508,1
    - Dst: ip4_addr1_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:509,1
    - Dst: ip4_addr2_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:509,1
    - Dst: ip4_addr3_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:509,1
    - Dst: ip4_addr4_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:509,1
    - Dst: ip4_route
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:513,1
    - Dst: etharp_update_arp_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ipaddr
    - ethaddr
    argTypes:
    - ip4_addr_t*
    - struct eth_addr*
    constantsTouched: []
    func_position:
      end: 519
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 519
    functionName: etharp_add_static_entry
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - ip4_addr1_16
    - etharp_update_arp_entry
    - ip4_addr2_16
    - ip4_addr4_16
    - ip4_route
    - ip4_addr3_16
    linkageType: ''
    returnType: err_t
    signature: etharp_add_static_entry(const ip4_addr_t *ipaddr, struct eth_addr *ethaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:533,1
    - Dst: ip4_addr1_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:534,1
    - Dst: ip4_addr2_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:534,1
    - Dst: ip4_addr3_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:534,1
    - Dst: ip4_addr4_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:534,1
    - Dst: etharp_find_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:537,1
    - Dst: etharp_free_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ipaddr
    argTypes:
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 550
      start: 529
    functionDepth: 7
    functionLinenumber: 529
    functionLinenumberEnd: 550
    functionName: etharp_remove_static_entry
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - ip4_addr1_16
    - etharp_free_entry
    - etharp_find_entry
    - ip4_addr2_16
    - ip4_addr4_16
    - ip4_addr3_16
    linkageType: ''
    returnType: err_t
    signature: etharp_remove_static_entry(const ip4_addr_t *ipaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: etharp_free_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:566,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 569
      start: 558
    functionDepth: 6
    functionLinenumber: 558
    functionLinenumberEnd: 569
    functionName: etharp_cleanup_netif
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c
    functionUses: 1
    functionsReached:
    - etharp_free_entry
    linkageType: ''
    returnType: void
    signature: etharp_cleanup_netif(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:588,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:591,1
    - Dst: etharp_find_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - netif
    - ipaddr
    - eth_ret
    - ip_ret
    argTypes:
    - struct netif*
    - ip4_addr_t*
    - struct eth_addr**
    - ip4_addr_t**
    constantsTouched: []
    func_position:
      end: 600
      start: 582
    functionDepth: 7
    functionLinenumber: 582
    functionLinenumberEnd: 600
    functionName: etharp_find_addr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c
    functionUses: 1
    functionsReached:
    - LWIP_UNUSED_ARG
    - etharp_find_entry
    - LWIP_ASSERT
    linkageType: ''
    returnType: s8_t
    signature: "etharp_find_addr(struct netif *netif, const ip4_addr_t *ipaddr,\n
      \        struct eth_addr **eth_ret, const ip4_addr_t **ip_ret)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:614,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:615,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - i
    - ipaddr
    - netif
    - eth_ret
    argTypes:
    - u8_t
    - ip4_addr_t**
    - struct netif**
    - struct eth_addr**
    constantsTouched: []
    func_position:
      end: 626
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 626
    functionName: etharp_get_entry
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT
    linkageType: ''
    returnType: u8_t
    signature: etharp_get_entry(u8_t i, ip4_addr_t **ipaddr, struct netif **netif,
      struct eth_addr **eth_ret)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:648,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:653,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:656,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:657,1
    - Dst: ETHARP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:660,1
    - Dst: ETHARP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:661,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:662,1
    - Dst: ETHARP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:665,1
    - Dst: autoip_arp_reply
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:671,1
    - Dst: IPADDR2_COPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:676,1
    - Dst: IPADDR2_COPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:677,1
    - Dst: ip4_addr_isany_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:680,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:680,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:684,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:684,1
    - Dst: etharp_update_arp_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:692,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:698,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:703,1
    - Dst: etharp_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:707,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:709,1
    - Dst: ip4_addr_isany_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:713,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:713,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:715,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:719,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:722,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:724,1
    - Dst: dhcp_arp_reply
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:730,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:734,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:734,1
    - Dst: ETHARP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:735,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:739,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 2
    argNames:
    - p
    - netif
    argTypes:
    - struct pbuf*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 740
      start: 640
    functionDepth: 4
    functionLinenumber: 640
    functionLinenumberEnd: 740
    functionName: etharp_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c
    functionUses: 0
    functionsReached:
    - ETHARP_STATS_INC
    - netif_ip4_addr
    - LWIP_DEBUGF
    - etharp_update_arp_entry
    - ip4_addr_cmp
    - ip4_addr_isany_val
    - LWIP_ERROR
    - autoip_arp_reply
    - lwip_htons
    - pbuf_free
    - IPADDR2_COPY
    - PP_HTONS
    - etharp_raw
    - dhcp_arp_reply
    linkageType: ''
    returnType: void
    signature: etharp_input(struct pbuf *p, struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:748,1
    - Dst: etharp_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:756,1
    - Dst: etharp_request_dst
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:761,1
    - Dst: ethernet_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:767,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - netif
    - q
    - arp_idx
    argTypes:
    - struct netif*
    - struct pbuf*
    - u8_t
    constantsTouched: []
    func_position:
      end: 768
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 768
    functionName: etharp_output_to_arp_index
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c
    functionUses: 0
    functionsReached:
    - etharp_request
    - ethernet_output
    - etharp_request_dst
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: etharp_output_to_arp_index(struct netif *netif, struct pbuf *q, u8_t
      arp_idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip4_addr_isbroadcast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:938,1
    - Dst: ip4_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:939,1
    - Dst: ip4_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:940,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:941,1
    - Dst: etharp_find_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:946,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:950,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:952,1
    - Dst: ETHARP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:953,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:967,1
    - Dst: etharp_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:974,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:987,1
    - Dst: ETHARP_SET_HINT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:991,1
    - Dst: ethernet_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:993,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1004,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1013,1
    - Dst: pbuf_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1015,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1016,1
    - Dst: pbuf_ref
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1023,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1031,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1055,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1056,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1059,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1063,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1064,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1070,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1071,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1075,1
    - Dst: ETHARP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1078,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1079,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 98
    argCount: 3
    argNames:
    - netif
    - ipaddr
    - q
    argTypes:
    - struct netif*
    - ip4_addr_t*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 1084
      start: 929
    functionDepth: 7
    functionLinenumber: 929
    functionLinenumberEnd: 1084
    functionName: etharp_query
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c
    functionUses: 0
    functionsReached:
    - ip4_addr_isany
    - ETHARP_STATS_INC
    - LWIP_DEBUGF
    - ip4_addr_isbroadcast
    - pbuf_copy
    - pbuf_alloc
    - ip4_addr_ismulticast
    - etharp_find_entry
    - memp_free
    - pbuf_ref
    - ETHARP_SET_HINT
    - ethernet_output
    - etharp_request
    - pbuf_free
    - memp_malloc
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: etharp_query(struct netif *netif, const ip4_addr_t *ipaddr, struct
      pbuf *q)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1112,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1115,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1118,1
    - Dst: ETHARP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1120,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1123,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1127,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1128,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1130,1
    - Dst: ETHADDR16_COPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1134,1
    - Dst: ETHADDR16_COPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1135,1
    - Dst: IPADDR2_COPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1138,1
    - Dst: IPADDR2_COPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1139,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1141,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1142,1
    - Dst: ip4_addr_islinklocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1152,1
    - Dst: ethernet_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1153,1
    - Dst: ethernet_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1157,1
    - Dst: ETHARP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1160,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 8
    argNames:
    - netif
    - ethsrc_addr
    - ethdst_addr
    - hwsrc_addr
    - ipsrc_addr
    - hwdst_addr
    - ipdst_addr
    - opcode
    argTypes:
    - struct netif*
    - struct eth_addr*
    - struct eth_addr*
    - struct eth_addr*
    - ip4_addr_t*
    - struct eth_addr*
    - ip4_addr_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 1167
      start: 1101
    functionDepth: 4
    functionLinenumber: 1101
    functionLinenumberEnd: 1167
    functionName: etharp_raw
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c
    functionUses: 1
    functionsReached:
    - ETHARP_STATS_INC
    - ETHADDR16_COPY
    - LWIP_DEBUGF
    - pbuf_alloc
    - ethernet_output
    - lwip_htons
    - ip4_addr_islinklocal
    - IPADDR2_COPY
    - pbuf_free
    - PP_HTONS
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: "etharp_raw(struct netif *netif, const struct eth_addr *ethsrc_addr,\n
      \          const struct eth_addr *ethdst_addr,\n           const struct eth_addr
      *hwsrc_addr, const ip4_addr_t *ipsrc_addr,\n           const struct eth_addr
      *hwdst_addr, const ip4_addr_t *ipdst_addr,\n           const u16_t opcode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: etharp_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1184,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - netif
    - ipaddr
    - hw_dst_addr
    argTypes:
    - struct netif*
    - ip4_addr_t*
    - struct eth_addr*
    constantsTouched: []
    func_position:
      end: 1187
      start: 1181
    functionDepth: 5
    functionLinenumber: 1181
    functionLinenumberEnd: 1187
    functionName: etharp_request_dst
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c
    functionUses: 1
    functionsReached:
    - netif_ip4_addr
    - etharp_raw
    linkageType: ''
    returnType: err_t
    signature: etharp_request_dst(struct netif *netif, const ip4_addr_t *ipaddr, const
      struct eth_addr* hw_dst_addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1201,1
    - Dst: etharp_request_dst
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c:1202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - netif
    - ipaddr
    argTypes:
    - struct netif*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 1203
      start: 1198
    functionDepth: 6
    functionLinenumber: 1198
    functionLinenumberEnd: 1203
    functionName: etharp_request
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c
    functionUses: 3
    functionsReached:
    - LWIP_DEBUGF
    - etharp_request_dst
    linkageType: ''
    returnType: err_t
    signature: etharp_request(struct netif *netif, const ip4_addr_t *ipaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ICMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:91,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:92,1
    - Dst: ip4_current_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:94,1
    - Dst: IPH_HL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:95,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:97,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:101,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:113,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:116,1
    - Dst: ip4_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:117,1
    - Dst: ip4_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:119,1
    - Dst: ip4_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:119,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:122,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:124,1
    - Dst: ip4_addr_isbroadcast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:129,1
    - Dst: ip4_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:129,1
    - Dst: ip_current_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:129,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:132,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:134,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:138,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:140,1
    - Dst: inet_chksum_pbuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:145,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:146,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:147,1
    - Dst: ICMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:148,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:149,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:155,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:161,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:163,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:167,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:168,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:172,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:174,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:175,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:176,1
    - Dst: pbuf_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:180,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:181,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:182,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:186,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:191,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:192,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:201,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:202,1
    - Dst: ip4_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:206,1
    - Dst: ip4_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:207,1
    - Dst: ip4_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:207,1
    - Dst: ICMPH_TYPE_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:208,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:212,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:213,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:215,1
    - Dst: IPH_TTL_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:228,1
    - Dst: IPH_CHKSUM_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:229,1
    - Dst: IPH_CHKSUM_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:232,1
    - Dst: inet_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:232,1
    - Dst: ICMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:236,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:238,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:240,1
    - Dst: ip4_output_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:243,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:246,1
    - Dst: lwip_strerr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:246,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:252,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:254,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:256,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:258,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:260,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:262,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:264,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:266,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:268,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:270,1
    - Dst: ICMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:272,1
    - Dst: ICMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:273,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:275,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:278,1
    - Dst: ICMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:279,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:280,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:284,1
    - Dst: ICMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:285,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:286,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 159
    argCount: 2
    argNames:
    - p
    - inp
    argTypes:
    - struct pbuf*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 289
      start: 79
    functionDepth: 4
    functionLinenumber: 79
    functionLinenumberEnd: 289
    functionName: icmp_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c
    functionUses: 0
    functionsReached:
    - netif_ip4_addr
    - ip4_addr_ismulticast
    - ICMP_STATS_INC
    - ip_current_netif
    - PP_HTONS
    - LWIP_ASSERT
    - LWIP_DEBUGF
    - ICMPH_TYPE_SET
    - ip4_output_if
    - MIB2_STATS_INC
    - inet_chksum
    - pbuf_free
    - lwip_strerr
    - ip4_current_src_addr
    - ip4_addr_isbroadcast
    - inet_chksum_pbuf
    - MEMCPY
    - ip4_current_header
    - pbuf_header
    - IPH_CHKSUM_SET
    - ip4_current_dest_addr
    - pbuf_alloc
    - pbuf_copy
    - ip4_addr_copy
    - IPH_TTL_SET
    - IPH_HL
    linkageType: ''
    returnType: void
    signature: icmp_input(struct pbuf *p, struct netif *inp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:303,1
    - Dst: icmp_send_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - t
    argTypes:
    - struct pbuf*
    - enum icmp_dur_type
    constantsTouched: []
    func_position:
      end: 305
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 305
    functionName: icmp_dest_unreach
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c
    functionUses: 0
    functionsReached:
    - MIB2_STATS_INC
    - icmp_send_response
    linkageType: ''
    returnType: void
    signature: icmp_dest_unreach(struct pbuf *p, enum icmp_dur_type t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:318,1
    - Dst: icmp_send_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - t
    argTypes:
    - struct pbuf*
    - enum icmp_te_type
    constantsTouched: []
    func_position:
      end: 320
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 320
    functionName: icmp_time_exceeded
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c
    functionUses: 0
    functionsReached:
    - MIB2_STATS_INC
    - icmp_send_response
    linkageType: ''
    returnType: void
    signature: icmp_time_exceeded(struct pbuf *p, enum icmp_te_type t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:343,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:346,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:349,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:350,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:353,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:357,1
    - Dst: ip4_addr_debug_print_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:358,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:359,1
    - Dst: ip4_addr_debug_print_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:360,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:361,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:370,1
    - Dst: ip4_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:373,1
    - Dst: ip4_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:377,1
    - Dst: ip4_route_src
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:378,1
    - Dst: ip4_route
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:381,1
    - Dst: inet_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:388,1
    - Dst: ICMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:391,1
    - Dst: ip4_output_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:392,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c:394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 3
    argNames:
    - p
    - type
    - code
    argTypes:
    - struct pbuf*
    - u8_t
    - u8_t
    constantsTouched: []
    func_position:
      end: 395
      start: 332
    functionDepth: 4
    functionLinenumber: 332
    functionLinenumberEnd: 395
    functionName: icmp_send_response
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c
    functionUses: 2
    functionsReached:
    - ip4_addr_debug_print_val
    - LWIP_DEBUGF
    - pbuf_alloc
    - SMEMCPY
    - ICMP_STATS_INC
    - ip4_output_if
    - ip4_addr_copy
    - MIB2_STATS_INC
    - inet_chksum
    - pbuf_free
    - ip4_route
    - ip4_route_src
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: icmp_send_response(struct pbuf *p, u8_t type, u8_t code)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - default_multicast_netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: ip4_set_default_multicast_netif
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ip4_set_default_multicast_netif(struct netif* default_multicast_netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_HOOK_IP4_ROUTE_SRC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:133,1
    - Dst: ip4_route
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - ip4_addr_t*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 139
    functionName: ip4_route_src
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c
    functionUses: 2
    functionsReached:
    - ip4_route
    - LWIP_HOOK_IP4_ROUTE_SRC
    linkageType: ''
    returnType: struct netif
    signature: '*

      ip4_route_src(const ip4_addr_t *dest, const ip4_addr_t *src)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip4_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:158,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:166,1
    - Dst: netif_is_link_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:166,1
    - Dst: ip4_addr_isany_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:166,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:166,1
    - Dst: ip4_addr_netcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:168,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:168,1
    - Dst: netif_ip4_netmask
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:168,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:173,1
    - Dst: netif_ip4_gw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:173,1
    - Dst: ip4_addr_isloopback
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:182,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:184,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:189,1
    - Dst: LWIP_HOOK_IP4_ROUTE_SRC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:198,1
    - Dst: LWIP_HOOK_IP4_ROUTE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:203,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:209,1
    - Dst: netif_is_link_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:209,1
    - Dst: ip4_addr_isany_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:210,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:210,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:213,1
    - Dst: ip4_addr1_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:214,1
    - Dst: ip4_addr2_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:214,1
    - Dst: ip4_addr3_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:214,1
    - Dst: ip4_addr4_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:214,1
    - Dst: IP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:215,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:216,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 40
    argCount: 1
    argNames:
    - dest
    argTypes:
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 221
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 221
    functionName: ip4_route
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c
    functionUses: 3
    functionsReached:
    - netif_ip4_addr
    - ip4_addr1_16
    - ip4_addr_ismulticast
    - ip4_addr4_16
    - netif_ip4_netmask
    - LWIP_DEBUGF
    - IP_STATS_INC
    - ip4_addr_cmp
    - ip4_addr_isloopback
    - ip4_addr_isany_val
    - ip4_addr2_16
    - MIB2_STATS_INC
    - LWIP_HOOK_IP4_ROUTE
    - netif_ip4_gw
    - ip4_addr3_16
    - netif_is_up
    - ip4_addr_netcmp
    - netif_is_link_up
    - LWIP_HOOK_IP4_ROUTE_SRC
    linkageType: ''
    returnType: struct netif
    signature: '*

      ip4_route(const ip4_addr_t *dest)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:234,1
    - Dst: ip4_addr_get_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:234,1
    - Dst: ip4_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:234,1
    - Dst: IP_MULTICAST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:240,1
    - Dst: IP_EXPERIMENTAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:245,1
    - Dst: IP_CLASSA
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:248,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 256
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 256
    functionName: ip4_canforward
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c
    functionUses: 0
    functionsReached:
    - IP_EXPERIMENTAL
    - ip4_current_dest_addr
    - IP_MULTICAST
    - IP_CLASSA
    - lwip_htonl
    - ip4_addr_get_u32
    linkageType: ''
    returnType: int
    signature: ip4_canforward(struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:273,1
    - Dst: ip4_canforward
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:275,1
    - Dst: ip4_addr_islinklocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:280,1
    - Dst: ip4_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:280,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:281,1
    - Dst: ip4_addr1_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:282,1
    - Dst: ip4_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:282,1
    - Dst: ip4_addr2_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:282,1
    - Dst: ip4_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:282,1
    - Dst: ip4_addr3_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:283,1
    - Dst: ip4_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:283,1
    - Dst: ip4_addr4_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:283,1
    - Dst: ip4_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:283,1
    - Dst: ip4_route_src
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:288,1
    - Dst: ip4_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:288,1
    - Dst: ip4_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:288,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:290,1
    - Dst: ip4_addr1_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:291,1
    - Dst: ip4_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:291,1
    - Dst: ip4_addr2_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:291,1
    - Dst: ip4_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:291,1
    - Dst: ip4_addr3_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:292,1
    - Dst: ip4_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:292,1
    - Dst: ip4_addr4_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:292,1
    - Dst: ip4_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:292,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:300,1
    - Dst: IPH_TTL_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:306,1
    - Dst: IPH_TTL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:306,1
    - Dst: IPH_TTL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:308,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:309,1
    - Dst: IPH_PROTO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:312,1
    - Dst: icmp_time_exceeded
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:313,1
    - Dst: IPH_CHKSUM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:320,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:320,1
    - Dst: IPH_CHKSUM_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:321,1
    - Dst: IPH_CHKSUM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:321,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:321,1
    - Dst: IPH_CHKSUM_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:323,1
    - Dst: IPH_CHKSUM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:323,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:323,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:326,1
    - Dst: ip4_addr1_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:327,1
    - Dst: ip4_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:327,1
    - Dst: ip4_addr2_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:327,1
    - Dst: ip4_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:327,1
    - Dst: ip4_addr3_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:328,1
    - Dst: ip4_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:328,1
    - Dst: ip4_addr4_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:328,1
    - Dst: ip4_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:328,1
    - Dst: IP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:330,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:331,1
    - Dst: IP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:332,1
    - Dst: PERF_STOP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:334,1
    - Dst: IPH_OFFSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:337,1
    - Dst: PP_NTOHS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:337,1
    - Dst: ip4_frag
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:339,1
    - Dst: ip4_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:339,1
    - Dst: icmp_dest_unreach
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:346,1
    - Dst: struct netif*::output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:352,1
    - Dst: ip4_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:352,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:355,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 3
    argNames:
    - p
    - iphdr
    - inp
    argTypes:
    - struct pbuf*
    - struct ip_hdr*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 356
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 356
    functionName: ip4_forward
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c
    functionUses: 0
    functionsReached:
    - ip4_addr1_16
    - struct netif*::output
    - ip4_addr_islinklocal
    - ip4_addr4_16
    - PP_HTONS
    - icmp_dest_unreach
    - PP_NTOHS
    - IPH_CHKSUM
    - LWIP_DEBUGF
    - IP_STATS_INC
    - ip4_canforward
    - ip4_addr2_16
    - IPH_TTL
    - MIB2_STATS_INC
    - ip4_current_src_addr
    - ip4_addr3_16
    - IPH_PROTO
    - ip4_route_src
    - icmp_time_exceeded
    - IPH_OFFSET
    - IPH_CHKSUM_SET
    - PERF_STOP
    - ip4_current_dest_addr
    - IPH_TTL_SET
    - ip4_frag
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: void
    signature: ip4_forward(struct pbuf *p, struct ip_hdr *iphdr, struct netif *inp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inet_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:447,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:449,1
    - Dst: inet_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:450,1
    - Dst: ip4_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:451,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:452,1
    - Dst: IP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:453,1
    - Dst: IP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:454,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 458
      start: 446
    functionDepth: 4
    functionLinenumber: 446
    functionLinenumberEnd: 458
    functionName: IF__NETIF_CHECKSUM_ENABLED
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - IP_STATS_INC
    - MIB2_STATS_INC
    - inet_chksum
    - pbuf_free
    - ip4_debug_print
    linkageType: ''
    returnType: void
    signature: IF__NETIF_CHECKSUM_ENABLED(inp, NETIF_CHECKSUM_CHECK_IP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip4_output_if_opt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - p
    - src
    - dest
    - ttl
    - tos
    - proto
    - netif
    argTypes:
    - struct pbuf*
    - ip4_addr_t*
    - ip4_addr_t*
    - u8_t
    - u8_t
    - u8_t
    - struct netif*
    constantsTouched: []
    func_position:
      end: 770
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 770
    functionName: ip4_output_if
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c
    functionUses: 2
    functionsReached:
    - ip4_output_if_opt
    linkageType: ''
    returnType: err_t
    signature: "ip4_output_if(struct pbuf *p, const ip4_addr_t *src, const ip4_addr_t
      *dest,\n             u8_t ttl, u8_t tos,\n             u8_t proto, struct netif
      *netif)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip4_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:786,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:787,1
    - Dst: ip4_output_if_opt_src
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:792,1
    - Dst: ip4_output_if_src
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 9
    argNames:
    - p
    - src
    - dest
    - ttl
    - tos
    - proto
    - netif
    - ip_options
    - optlen
    argTypes:
    - struct pbuf*
    - ip4_addr_t*
    - ip4_addr_t*
    - u8_t
    - u8_t
    - u8_t
    - struct netif*
    - void*
    - u16_t
    constantsTouched: []
    func_position:
      end: 797
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 797
    functionName: ip4_output_if_opt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c
    functionUses: 1
    functionsReached:
    - ip4_addr_isany
    - netif_ip4_addr
    - ip4_output_if_src
    - ip4_output_if_opt_src
    linkageType: ''
    returnType: err_t
    signature: "ip4_output_if_opt(struct pbuf *p, const ip4_addr_t *src, const ip4_addr_t
      *dest,\n       u8_t ttl, u8_t tos, u8_t proto, struct netif *netif, void *ip_options,\n
      \      u16_t optlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip4_output_if_opt_src
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - p
    - src
    - dest
    - ttl
    - tos
    - proto
    - netif
    argTypes:
    - struct pbuf*
    - ip4_addr_t*
    - ip4_addr_t*
    - u8_t
    - u8_t
    - u8_t
    - struct netif*
    constantsTouched: []
    func_position:
      end: 810
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 810
    functionName: ip4_output_if_src
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c
    functionUses: 1
    functionsReached:
    - ip4_output_if_opt_src
    linkageType: ''
    returnType: err_t
    signature: "ip4_output_if_src(struct pbuf *p, const ip4_addr_t *src, const ip4_addr_t
      *dest,\n             u8_t ttl, u8_t tos,\n             u8_t proto, struct netif
      *netif)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 920
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 920
    functionName: IF__NETIF_CHECKSUM_ENABLED
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: IF__NETIF_CHECKSUM_ENABLED(netif, NETIF_CHECKSUM_GEN_IP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPH_CHKSUM_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:930,1
    - Dst: inet_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 931
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 931
    functionName: IF__NETIF_CHECKSUM_ENABLED
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c
    functionUses: 0
    functionsReached:
    - IPH_CHKSUM_SET
    - inet_chksum
    linkageType: ''
    returnType: void
    signature: IF__NETIF_CHECKSUM_ENABLED(netif, NETIF_CHECKSUM_GEN_IP)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_IP_CHECK_PBUF_REF_COUNT_FOR_TX
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1008,1
    - Dst: ip4_route_src
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1010,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1011,1
    - Dst: ip4_addr1_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1012,1
    - Dst: ip4_addr2_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1012,1
    - Dst: ip4_addr3_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1012,1
    - Dst: ip4_addr4_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1012,1
    - Dst: IP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1013,1
    - Dst: netif_apply_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1017,1
    - Dst: ip4_output_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1018,1
    - Dst: netif_apply_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 7
    argNames:
    - p
    - src
    - dest
    - ttl
    - tos
    - proto
    - pcb
    argTypes:
    - struct pbuf*
    - ip4_addr_t*
    - ip4_addr_t*
    - u8_t
    - u8_t
    - u8_t
    - struct ip_pcb*
    constantsTouched: []
    func_position:
      end: 1022
      start: 1001
    functionDepth: 2
    functionLinenumber: 1001
    functionLinenumberEnd: 1022
    functionName: ip4_output
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - ip4_addr1_16
    - IP_STATS_INC
    - netif_apply_pcb
    - ip4_output_if
    - ip4_addr2_16
    - ip4_addr4_16
    - ip4_addr3_16
    - LWIP_IP_CHECK_PBUF_REF_COUNT_FOR_TX
    - ip4_route_src
    linkageType: ''
    returnType: err_t
    signature: "ip4_output(struct pbuf *p, const ip4_addr_t *src, const ip4_addr_t
      *dest,\n          u8_t ttl, u8_t tos, u8_t proto, struct ip_pcb *pcb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_IP_CHECK_PBUF_REF_COUNT_FOR_TX
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1050,1
    - Dst: ip4_route_src
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1052,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1053,1
    - Dst: ip4_addr1_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1054,1
    - Dst: ip4_addr2_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1054,1
    - Dst: ip4_addr3_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1054,1
    - Dst: ip4_addr4_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1054,1
    - Dst: IP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1055,1
    - Dst: NETIF_SET_HWADDRHINT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1059,1
    - Dst: ip4_output_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1060,1
    - Dst: NETIF_SET_HWADDRHINT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1061,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 7
    argNames:
    - p
    - src
    - dest
    - ttl
    - tos
    - proto
    - addr_hint
    argTypes:
    - struct pbuf*
    - ip4_addr_t*
    - ip4_addr_t*
    - u8_t
    - u8_t
    - u8_t
    - u8_t*
    constantsTouched: []
    func_position:
      end: 1064
      start: 1043
    functionDepth: 2
    functionLinenumber: 1043
    functionLinenumberEnd: 1064
    functionName: ip4_output_hinted
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - ip4_addr1_16
    - IP_STATS_INC
    - ip4_output_if
    - ip4_addr2_16
    - ip4_addr4_16
    - NETIF_SET_HWADDRHINT
    - ip4_addr3_16
    - LWIP_IP_CHECK_PBUF_REF_COUNT_FOR_TX
    - ip4_route_src
    linkageType: ''
    returnType: err_t
    signature: "ip4_output_hinted(struct pbuf *p, const ip4_addr_t *src, const ip4_addr_t
      *dest,\n          u8_t ttl, u8_t tos, u8_t proto, u8_t *addr_hint)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1076,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1077,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1078,1
    - Dst: IPH_V
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1079,1
    - Dst: IPH_HL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1080,1
    - Dst: IPH_TOS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1081,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1082,1
    - Dst: IPH_LEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1082,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1083,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1084,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1085,1
    - Dst: IPH_ID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1085,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1086,1
    - Dst: IPH_OFFSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1086,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1087,1
    - Dst: IPH_OFFSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1087,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1088,1
    - Dst: IPH_OFFSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1088,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1089,1
    - Dst: IPH_OFFSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1089,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1090,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1091,1
    - Dst: IPH_TTL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1092,1
    - Dst: IPH_PROTO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1093,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1094,1
    - Dst: IPH_CHKSUM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1094,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1095,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1096,1
    - Dst: ip4_addr1_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1097,1
    - Dst: ip4_addr2_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1098,1
    - Dst: ip4_addr3_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1099,1
    - Dst: ip4_addr4_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1100,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1101,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1102,1
    - Dst: ip4_addr1_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1103,1
    - Dst: ip4_addr2_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1104,1
    - Dst: ip4_addr3_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1105,1
    - Dst: ip4_addr4_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1106,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c:1107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 1108
      start: 1071
    functionDepth: 0
    functionLinenumber: 1071
    functionLinenumberEnd: 1108
    functionName: ip4_debug_print
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - ip4_addr1_16
    - IPH_V
    - IPH_ID
    - lwip_ntohs
    - ip4_addr2_16
    - IPH_PROTO
    - IPH_LEN
    - IPH_TTL
    - ip4_addr3_16
    - ip4_addr4_16
    - IPH_TOS
    - IPH_HL
    - IPH_CHKSUM
    - IPH_OFFSET
    linkageType: ''
    returnType: void
    signature: ip4_debug_print(struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:217,1
    - Dst: udp_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:220,1
    - Dst: ip_set_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:226,1
    - Dst: udp_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:229,1
    - Dst: udp_connect
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:230,1
    - Dst: udp_recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 237
    functionName: dhcp_inc_pcb_refcount
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 0
    functionsReached:
    - udp_new
    - udp_bind
    - ip_set_option
    - udp_recv
    - udp_connect
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: dhcp_inc_pcb_refcount(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:243,1
    - Dst: udp_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 250
    functionName: dhcp_dec_pcb_refcount
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 0
    functionsReached:
    - udp_remove
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: dhcp_dec_pcb_refcount(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:267,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:269,1
    - Dst: dhcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:273,1
    - Dst: netif_set_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:275,1
    - Dst: dhcp_discover
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 278
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 278
    functionName: dhcp_handle_nak
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 0
    functionsReached:
    - dhcp_set_state
    - LWIP_DEBUGF
    - netif_dhcp_data
    - netif_set_addr
    - dhcp_discover
    linkageType: ''
    returnType: void
    signature: dhcp_handle_nak(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:293,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:296,1
    - Dst: dhcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:298,1
    - Dst: etharp_query
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:301,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:303,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 311
      start: 290
    functionDepth: 8
    functionLinenumber: 290
    functionLinenumberEnd: 311
    functionName: dhcp_check
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 0
    functionsReached:
    - dhcp_set_state
    - LWIP_DEBUGF
    - netif_dhcp_data
    - etharp_query
    linkageType: ''
    returnType: void
    signature: dhcp_check(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:322,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:324,1
    - Dst: dhcp_option_given
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:327,1
    - Dst: ip_addr_set_ip4_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:328,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:328,1
    - Dst: dhcp_get_option_value
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:328,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:329,1
    - Dst: ip4_addr_get_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:330,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:330,1
    - Dst: ip4_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:332,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:333,1
    - Dst: ip4_addr_get_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:334,1
    - Dst: dhcp_select
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:336,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 341
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 341
    functionName: dhcp_handle_offer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 0
    functionsReached:
    - dhcp_select
    - LWIP_DEBUGF
    - netif_dhcp_data
    - ip4_addr_copy
    - ip_addr_set_ip4_u32
    - dhcp_option_given
    - dhcp_get_option_value
    - lwip_htonl
    - ip4_addr_get_u32
    - ip_2_ip4
    linkageType: ''
    returnType: void
    signature: dhcp_handle_offer(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:354,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:359,1
    - Dst: dhcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:360,1
    - Dst: dhcp_create_msg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:363,1
    - Dst: dhcp_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:365,1
    - Dst: dhcp_option_short
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:366,1
    - Dst: DHCP_MAX_MSG_LEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:366,1
    - Dst: dhcp_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:369,1
    - Dst: dhcp_option_long
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:370,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:370,1
    - Dst: ip4_addr_get_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:370,1
    - Dst: dhcp_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:372,1
    - Dst: dhcp_option_long
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:373,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:373,1
    - Dst: ip4_addr_get_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:373,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:373,1
    - Dst: dhcp_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:375,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:375,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:376,1
    - Dst: dhcp_option_byte
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:377,1
    - Dst: dhcp_option_hostname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:381,1
    - Dst: dhcp_option_trailer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:384,1
    - Dst: udp_sendto_if_src
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:387,1
    - Dst: dhcp_delete_msg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:388,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:389,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:391,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 400
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 400
    functionName: dhcp_select
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 1
    functionsReached:
    - dhcp_set_state
    - LWIP_DEBUGF
    - LWIP_ARRAYSIZE
    - netif_dhcp_data
    - ip4_addr_get_u32
    - dhcp_option_byte
    - DHCP_MAX_MSG_LEN
    - dhcp_option_hostname
    - dhcp_option
    - lwip_ntohl
    - dhcp_option_trailer
    - udp_sendto_if_src
    - dhcp_option_short
    - dhcp_create_msg
    - dhcp_option_long
    - dhcp_delete_msg
    - ip_2_ip4
    linkageType: ''
    returnType: err_t
    signature: dhcp_select(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:410,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:414,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:418,1
    - Dst: dhcp_release
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:420,1
    - Dst: dhcp_discover
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:421,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:424,1
    - Dst: dhcp_t2_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:426,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:429,1
    - Dst: dhcp_t1_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:431,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 437
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 437
    functionName: dhcp_coarse_tmr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - netif_dhcp_data
    - dhcp_t2_timeout
    - dhcp_discover
    - dhcp_release
    - dhcp_t1_timeout
    linkageType: ''
    returnType: void
    signature: dhcp_coarse_tmr(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:452,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:462,1
    - Dst: dhcp_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:464,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 470
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 470
    functionName: dhcp_fine_tmr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 1
    functionsReached:
    - dhcp_timeout
    - LWIP_DEBUGF
    - netif_dhcp_data
    linkageType: ''
    returnType: void
    signature: dhcp_fine_tmr(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:483,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:485,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:488,1
    - Dst: dhcp_discover
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:489,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:492,1
    - Dst: dhcp_select
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:494,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:496,1
    - Dst: dhcp_release
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:497,1
    - Dst: dhcp_discover
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:498,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:503,1
    - Dst: dhcp_check
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:505,1
    - Dst: dhcp_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:510,1
    - Dst: dhcp_reboot
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:515,1
    - Dst: dhcp_discover
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:517,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 520
      start: 480
    functionDepth: 9
    functionLinenumber: 480
    functionLinenumberEnd: 520
    functionName: dhcp_timeout
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 1
    functionsReached:
    - dhcp_select
    - LWIP_DEBUGF
    - dhcp_bind
    - netif_dhcp_data
    - dhcp_check
    - dhcp_discover
    - dhcp_release
    - dhcp_reboot
    linkageType: ''
    returnType: void
    signature: dhcp_timeout(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:530,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:532,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:537,1
    - Dst: dhcp_renew
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:541,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 548
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 548
    functionName: dhcp_t1_timeout
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 1
    functionsReached:
    - dhcp_renew
    - LWIP_DEBUGF
    - netif_dhcp_data
    linkageType: ''
    returnType: void
    signature: dhcp_t1_timeout(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:558,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:560,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:564,1
    - Dst: dhcp_rebind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:568,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 575
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 575
    functionName: dhcp_t2_timeout
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - netif_dhcp_data
    - dhcp_rebind
    linkageType: ''
    returnType: void
    signature: dhcp_t2_timeout(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:585,1
    - Dst: ip4_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:595,1
    - Dst: ip4_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:596,1
    - Dst: ip4_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:598,1
    - Dst: dhcp_option_given
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:602,1
    - Dst: dhcp_get_option_value
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:604,1
    - Dst: dhcp_option_given
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:607,1
    - Dst: dhcp_get_option_value
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:609,1
    - Dst: dhcp_option_given
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:616,1
    - Dst: dhcp_get_option_value
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:618,1
    - Dst: ip4_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:625,1
    - Dst: ip4_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:630,1
    - Dst: dhcp_option_given
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:634,1
    - Dst: ip4_addr_set_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:636,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:636,1
    - Dst: dhcp_get_option_value
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:636,1
    - Dst: dhcp_option_given
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:643,1
    - Dst: ip4_addr_set_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:644,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:644,1
    - Dst: dhcp_get_option_value
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:644,1
    - Dst: dhcp_option_given
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:649,1
    - Dst: ip4_addr_set_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:650,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:650,1
    - Dst: dhcp_get_option_value
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:650,1
    - Dst: dhcp_set_ntp_servers
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:652,1
    - Dst: dhcp_option_given
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:657,1
    - Dst: ip_addr_set_ip4_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:659,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:659,1
    - Dst: dhcp_get_option_value
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:659,1
    - Dst: dns_setserver
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:660,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 663
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 663
    functionName: dhcp_handle_ack
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 0
    functionsReached:
    - netif_dhcp_data
    - dhcp_set_ntp_servers
    - ip4_addr_copy
    - ip_addr_set_ip4_u32
    - dhcp_option_given
    - dhcp_get_option_value
    - ip4_addr_set_u32
    - ip4_addr_set_zero
    - lwip_htonl
    - dns_setserver
    linkageType: ''
    returnType: void
    signature: dhcp_handle_ack(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:676,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:677,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:678,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:679,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:679,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:682,1
    - Dst: netif_set_client_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - netif
    - dhcp
    argTypes:
    - struct netif*
    - struct dhcp*
    constantsTouched: []
    func_position:
      end: 685
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 685
    functionName: dhcp_set_struct
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 0
    functionsReached:
    - netif_dhcp_data
    - memset
    - LWIP_ASSERT_CORE_LOCKED
    - netif_set_client_data
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: dhcp_set_struct(struct netif *netif, struct dhcp *dhcp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:698,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:699,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:701,1
    - Dst: mem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:702,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:702,1
    - Dst: netif_set_client_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 705
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 705
    functionName: dhcp_cleanup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 0
    functionsReached:
    - netif_dhcp_data
    - mem_free
    - LWIP_ASSERT_CORE_LOCKED
    - netif_set_client_data
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: dhcp_cleanup(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:726,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:727,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:728,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:728,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:729,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:730,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:734,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:740,1
    - Dst: mem_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:741,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:743,1
    - Dst: netif_set_client_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:748,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:749,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:752,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:753,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:754,1
    - Dst: dhcp_dec_pcb_refcount
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:757,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:763,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:766,1
    - Dst: dhcp_inc_pcb_refcount
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:768,1
    - Dst: netif_is_link_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:774,1
    - Dst: dhcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:776,1
    - Dst: dhcp_discover
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:783,1
    - Dst: dhcp_stop
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:786,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 790
      start: 720
    functionDepth: 4
    functionLinenumber: 720
    functionLinenumberEnd: 790
    functionName: dhcp_start
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 6
    functionsReached:
    - dhcp_dec_pcb_refcount
    - dhcp_set_state
    - LWIP_DEBUGF
    - netif_dhcp_data
    - mem_malloc
    - netif_is_up
    - LWIP_ERROR
    - memset
    - dhcp_discover
    - LWIP_ASSERT_CORE_LOCKED
    - dhcp_inc_pcb_refcount
    - dhcp_stop
    - netif_set_client_data
    - netif_is_link_up
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: dhcp_start(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:808,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:809,1
    - Dst: dhcp_inc_pcb_refcount
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:811,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:815,1
    - Dst: dhcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:816,1
    - Dst: dhcp_create_msg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:819,1
    - Dst: dhcp_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:821,1
    - Dst: dhcp_option_short
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:822,1
    - Dst: DHCP_MAX_MSG_LEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:822,1
    - Dst: dhcp_option_trailer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:824,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:826,1
    - Dst: udp_sendto_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:828,1
    - Dst: dhcp_delete_msg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:830,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:832,1
    - Dst: dhcp_dec_pcb_refcount
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 836
      start: 802
    functionDepth: 4
    functionLinenumber: 802
    functionLinenumberEnd: 836
    functionName: dhcp_inform
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 0
    functionsReached:
    - dhcp_dec_pcb_refcount
    - dhcp_set_state
    - LWIP_DEBUGF
    - LWIP_ERROR
    - DHCP_MAX_MSG_LEN
    - memset
    - dhcp_option
    - udp_sendto_if
    - LWIP_ASSERT_CORE_LOCKED
    - dhcp_inc_pcb_refcount
    - dhcp_option_trailer
    - dhcp_option_short
    - dhcp_create_msg
    - dhcp_delete_msg
    linkageType: ''
    returnType: void
    signature: dhcp_inform(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:846,1
    - Dst: dhcp_reboot
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:856,1
    - Dst: autoip_stop
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:867,1
    - Dst: dhcp_discover
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:873,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 876
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 876
    functionName: dhcp_network_changed
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 1
    functionsReached:
    - dhcp_reboot
    - dhcp_discover
    - netif_dhcp_data
    - autoip_stop
    linkageType: ''
    returnType: void
    signature: dhcp_network_changed(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:891,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:892,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:893,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:896,1
    - Dst: ip4_addr_get_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:897,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:900,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:902,1
    - Dst: dhcp_decline
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:904,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - netif
    - addr
    argTypes:
    - struct netif*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 907
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 907
    functionName: dhcp_arp_reply
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - netif_dhcp_data
    - ip4_addr_cmp
    - LWIP_ERROR
    - ip4_addr_get_u32
    - dhcp_decline
    linkageType: ''
    returnType: void
    signature: dhcp_arp_reply(struct netif *netif, const ip4_addr_t *addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:921,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:924,1
    - Dst: dhcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:925,1
    - Dst: dhcp_create_msg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:927,1
    - Dst: dhcp_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:929,1
    - Dst: dhcp_option_long
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:930,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:930,1
    - Dst: ip4_addr_get_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:930,1
    - Dst: dhcp_option_trailer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:932,1
    - Dst: udp_sendto_if_src
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:935,1
    - Dst: dhcp_delete_msg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:936,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:937,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:939,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:947,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 949
      start: 918
    functionDepth: 2
    functionLinenumber: 918
    functionLinenumberEnd: 949
    functionName: dhcp_decline
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 1
    functionsReached:
    - dhcp_set_state
    - LWIP_DEBUGF
    - netif_dhcp_data
    - dhcp_option
    - lwip_ntohl
    - dhcp_option_trailer
    - udp_sendto_if_src
    - dhcp_option_long
    - dhcp_create_msg
    - ip4_addr_get_u32
    - dhcp_delete_msg
    linkageType: ''
    returnType: err_t
    signature: dhcp_decline(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:961,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:965,1
    - Dst: ip4_addr_set_any
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:966,1
    - Dst: dhcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:967,1
    - Dst: dhcp_create_msg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:969,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:971,1
    - Dst: dhcp_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:973,1
    - Dst: dhcp_option_short
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:974,1
    - Dst: DHCP_MAX_MSG_LEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:974,1
    - Dst: dhcp_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:976,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:976,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:977,1
    - Dst: dhcp_option_byte
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:978,1
    - Dst: dhcp_option_trailer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:980,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:982,1
    - Dst: udp_sendto_if_src
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:983,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:984,1
    - Dst: dhcp_delete_msg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:985,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:986,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:988,1
    - Dst: autoip_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:996,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1001,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1003
      start: 958
    functionDepth: 2
    functionLinenumber: 958
    functionLinenumberEnd: 1003
    functionName: dhcp_discover
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 5
    functionsReached:
    - dhcp_set_state
    - LWIP_DEBUGF
    - LWIP_ARRAYSIZE
    - ip4_addr_set_any
    - netif_dhcp_data
    - dhcp_option_byte
    - DHCP_MAX_MSG_LEN
    - autoip_start
    - dhcp_option
    - dhcp_option_trailer
    - udp_sendto_if_src
    - dhcp_option_short
    - dhcp_create_msg
    - dhcp_delete_msg
    linkageType: ''
    returnType: err_t
    signature: dhcp_discover(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1017,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1018,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1019,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1020,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1027,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1036,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1042,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1051,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1056,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1065,1
    - Dst: ip4_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1076,1
    - Dst: ip4_addr1
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1079,1
    - Dst: ip4_addr_set_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1081,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1081,1
    - Dst: ip4_addr_set_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1083,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1083,1
    - Dst: ip4_addr_set_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1085,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1085,1
    - Dst: ip4_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1089,1
    - Dst: ip4_addr_isany_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1091,1
    - Dst: ip4_addr_get_network
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1093,1
    - Dst: ip4_addr_set_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1095,1
    - Dst: ip4_addr_get_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1095,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1095,1
    - Dst: autoip_stop
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1100,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1105,1
    - Dst: ip4_addr_get_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1106,1
    - Dst: ip4_addr_get_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1106,1
    - Dst: ip4_addr_get_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1106,1
    - Dst: dhcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1109,1
    - Dst: netif_set_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1111,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 71
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1113
      start: 1011
    functionDepth: 2
    functionLinenumber: 1011
    functionLinenumberEnd: 1113
    functionName: dhcp_bind
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 1
    functionsReached:
    - dhcp_set_state
    - LWIP_DEBUGF
    - netif_dhcp_data
    - ip4_addr1
    - netif_set_addr
    - ip4_addr_isany_val
    - LWIP_ERROR
    - ip4_addr_copy
    - ip4_addr_get_network
    - PP_HTONL
    - ip4_addr_set_u32
    - autoip_stop
    - ip4_addr_get_u32
    linkageType: ''
    returnType: void
    signature: dhcp_bind(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1124,1
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1129,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1130,1
    - Dst: dhcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1131,1
    - Dst: dhcp_create_msg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1134,1
    - Dst: dhcp_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1136,1
    - Dst: dhcp_option_short
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1137,1
    - Dst: DHCP_MAX_MSG_LEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1137,1
    - Dst: dhcp_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1139,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1139,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1140,1
    - Dst: dhcp_option_byte
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1141,1
    - Dst: dhcp_option_hostname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1145,1
    - Dst: dhcp_option_trailer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1149,1
    - Dst: udp_sendto_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1151,1
    - Dst: dhcp_delete_msg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1152,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1154,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1156,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1166
      start: 1121
    functionDepth: 2
    functionLinenumber: 1121
    functionLinenumberEnd: 1166
    functionName: dhcp_renew
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 1
    functionsReached:
    - dhcp_set_state
    - LWIP_DEBUGF
    - LWIP_ARRAYSIZE
    - netif_dhcp_data
    - dhcp_option_byte
    - DHCP_MAX_MSG_LEN
    - dhcp_option_hostname
    - dhcp_option
    - udp_sendto_if
    - LWIP_ASSERT_CORE_LOCKED
    - dhcp_option_trailer
    - dhcp_option_short
    - dhcp_create_msg
    - dhcp_delete_msg
    linkageType: ''
    returnType: err_t
    signature: dhcp_renew(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1176,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1180,1
    - Dst: dhcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1181,1
    - Dst: dhcp_create_msg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1184,1
    - Dst: dhcp_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1186,1
    - Dst: dhcp_option_short
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1187,1
    - Dst: DHCP_MAX_MSG_LEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1187,1
    - Dst: dhcp_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1189,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1189,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1190,1
    - Dst: dhcp_option_byte
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1191,1
    - Dst: dhcp_option_hostname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1195,1
    - Dst: dhcp_option_trailer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1198,1
    - Dst: udp_sendto_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1201,1
    - Dst: dhcp_delete_msg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1202,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1203,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1205,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1214
      start: 1173
    functionDepth: 2
    functionLinenumber: 1173
    functionLinenumberEnd: 1214
    functionName: dhcp_rebind
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 1
    functionsReached:
    - dhcp_set_state
    - LWIP_DEBUGF
    - LWIP_ARRAYSIZE
    - netif_dhcp_data
    - dhcp_option_byte
    - DHCP_MAX_MSG_LEN
    - dhcp_option_hostname
    - dhcp_option
    - udp_sendto_if
    - dhcp_option_trailer
    - dhcp_option_short
    - dhcp_create_msg
    - dhcp_delete_msg
    linkageType: ''
    returnType: err_t
    signature: dhcp_rebind(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1224,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1228,1
    - Dst: dhcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1229,1
    - Dst: dhcp_create_msg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1232,1
    - Dst: dhcp_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1234,1
    - Dst: dhcp_option_short
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1235,1
    - Dst: dhcp_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1237,1
    - Dst: dhcp_option_long
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1238,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1238,1
    - Dst: ip4_addr_get_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1238,1
    - Dst: dhcp_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1240,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1240,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1241,1
    - Dst: dhcp_option_byte
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1242,1
    - Dst: dhcp_option_trailer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1245,1
    - Dst: udp_sendto_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1248,1
    - Dst: dhcp_delete_msg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1249,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1250,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1252,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1261
      start: 1221
    functionDepth: 2
    functionLinenumber: 1221
    functionLinenumberEnd: 1261
    functionName: dhcp_reboot
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 2
    functionsReached:
    - dhcp_set_state
    - LWIP_DEBUGF
    - LWIP_ARRAYSIZE
    - netif_dhcp_data
    - ip4_addr_get_u32
    - dhcp_option_byte
    - dhcp_option
    - udp_sendto_if
    - lwip_ntohl
    - dhcp_option_trailer
    - dhcp_option_short
    - dhcp_create_msg
    - dhcp_option_long
    - dhcp_delete_msg
    linkageType: ''
    returnType: err_t
    signature: dhcp_reboot(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1273,1
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1278,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1279,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1283,1
    - Dst: dhcp_supplied_address
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1285,1
    - Dst: dhcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1288,1
    - Dst: ip_addr_set_zero_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1290,1
    - Dst: ip4_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1291,1
    - Dst: ip4_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1292,1
    - Dst: ip4_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1293,1
    - Dst: ip4_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1295,1
    - Dst: dhcp_create_msg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1306,1
    - Dst: dhcp_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1308,1
    - Dst: dhcp_option_long
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1309,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1309,1
    - Dst: ip4_addr_get_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1309,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1309,1
    - Dst: dhcp_option_trailer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1311,1
    - Dst: udp_sendto_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1313,1
    - Dst: dhcp_delete_msg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1314,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1315,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1318,1
    - Dst: netif_set_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1324
      start: 1270
    functionDepth: 2
    functionLinenumber: 1270
    functionLinenumberEnd: 1324
    functionName: dhcp_release
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 2
    functionsReached:
    - dhcp_set_state
    - dhcp_create_msg
    - LWIP_DEBUGF
    - netif_dhcp_data
    - ip_2_ip4
    - netif_set_addr
    - ip_addr_set_zero_ip4
    - ip4_addr_get_u32
    - dhcp_option
    - udp_sendto_if
    - LWIP_ASSERT_CORE_LOCKED
    - lwip_ntohl
    - dhcp_option_trailer
    - dhcp_option_long
    - ip4_addr_set_zero
    - ip_addr_copy
    - dhcp_delete_msg
    - dhcp_supplied_address
    linkageType: ''
    returnType: err_t
    signature: dhcp_release(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1336,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1337,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1339,1
    - Dst: autoip_stop
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1344,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1349,1
    - Dst: dhcp_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1350,1
    - Dst: dhcp_dec_pcb_refcount
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1357
      start: 1332
    functionDepth: 3
    functionLinenumber: 1332
    functionLinenumberEnd: 1357
    functionName: dhcp_stop
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 1
    functionsReached:
    - dhcp_dec_pcb_refcount
    - dhcp_set_state
    - LWIP_DEBUGF
    - netif_dhcp_data
    - LWIP_ERROR
    - autoip_stop
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: dhcp_stop(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dhcp
    - new_state
    argTypes:
    - struct dhcp*
    - u8_t
    constantsTouched: []
    func_position:
      end: 1372
      start: 1364
    functionDepth: 0
    functionLinenumber: 1364
    functionLinenumberEnd: 1372
    functionName: dhcp_set_state
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: dhcp_set_state(struct dhcp *dhcp, u8_t new_state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - dhcp
    - option_type
    - option_len
    argTypes:
    - struct dhcp*
    - u8_t
    - u8_t
    constantsTouched: []
    func_position:
      end: 1385
      start: 1379
    functionDepth: 0
    functionLinenumber: 1379
    functionLinenumberEnd: 1385
    functionName: dhcp_option
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 8
    functionsReached:
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: dhcp_option(struct dhcp *dhcp, u8_t option_type, u8_t option_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dhcp
    - value
    argTypes:
    - struct dhcp*
    - u8_t
    constantsTouched: []
    func_position:
      end: 1395
      start: 1390
    functionDepth: 0
    functionLinenumber: 1390
    functionLinenumberEnd: 1395
    functionName: dhcp_option_byte
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 5
    functionsReached:
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: dhcp_option_byte(struct dhcp *dhcp, u8_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dhcp
    - value
    argTypes:
    - struct dhcp*
    - u16_t
    constantsTouched: []
    func_position:
      end: 1403
      start: 1397
    functionDepth: 0
    functionLinenumber: 1397
    functionLinenumberEnd: 1403
    functionName: dhcp_option_short
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 6
    functionsReached:
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: dhcp_option_short(struct dhcp *dhcp, u16_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - dhcp
    - value
    argTypes:
    - struct dhcp*
    - u32_t
    constantsTouched: []
    func_position:
      end: 1413
      start: 1405
    functionDepth: 0
    functionLinenumber: 1405
    functionLinenumberEnd: 1413
    functionName: dhcp_option_long
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 4
    functionsReached:
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: dhcp_option_long(struct dhcp *dhcp, u32_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1427,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1428,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1429,1
    - Dst: dhcp_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1430,1
    - Dst: dhcp_option_byte
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - dhcp
    - netif
    argTypes:
    - struct dhcp*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1436
      start: 1416
    functionDepth: 1
    functionLinenumber: 1416
    functionLinenumberEnd: 1436
    functionName: dhcp_option_hostname
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 3
    functionsReached:
    - dhcp_option
    - dhcp_option_byte
    - LWIP_MIN
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: dhcp_option_hostname(struct dhcp *dhcp, struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dhcp_clear_all_options
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1462,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1520,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1525,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1531,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1533,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1534,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1539,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1545,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1547,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1548,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1553,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1555,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1559,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1563,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1567,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1571,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1576,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1588,1
    - Dst: dhcp_option_given
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1589,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1590,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1591,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1597,1
    - Dst: dhcp_got_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1598,1
    - Dst: dhcp_set_option_value
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1599,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1599,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1610,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1612,1
    - Dst: dhcp_got_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1615,1
    - Dst: dhcp_set_option_value
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1616,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1624,1
    - Dst: dhcp_option_given
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1633,1
    - Dst: dhcp_get_option_value
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1634,1
    - Dst: dhcp_clear_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1635,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1638,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1641,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1645,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1647,1
    - Dst: dhcp_option_given
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1652,1
    - Dst: dhcp_get_option_value
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1653,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1655,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 178
    argCount: 2
    argNames:
    - dhcp
    - p
    argTypes:
    - struct dhcp*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 1676
      start: 1449
    functionDepth: 1
    functionLinenumber: 1449
    functionLinenumberEnd: 1676
    functionName: dhcp_parse_reply
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 0
    functionsReached:
    - pbuf_copy_partial
    - LWIP_DEBUGF
    - dhcp_got_option
    - LWIP_ERROR
    - dhcp_clear_option
    - dhcp_clear_all_options
    - dhcp_set_option_value
    - dhcp_option_given
    - lwip_ntohl
    - LWIP_MIN
    - dhcp_get_option_value
    - lwip_htonl
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: dhcp_parse_reply(struct dhcp *dhcp, struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip_current_input_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1684,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1685,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1690,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1697,1
    - Dst: IP_IS_V4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1697,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1699,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1700,1
    - Dst: ip4_addr2_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1700,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1700,1
    - Dst: ip4_addr3_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1700,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1700,1
    - Dst: ip4_addr4_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1700,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1700,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1701,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1702,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1704,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1705,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1706,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1708,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1711,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1716,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1722,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1729,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1730,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1731,1
    - Dst: dhcp_parse_reply
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1735,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1736,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1741,1
    - Dst: dhcp_option_given
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1743,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1744,1
    - Dst: dhcp_get_option_value
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1749,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1752,1
    - Dst: dhcp_handle_ack
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1755,1
    - Dst: dhcp_check
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1759,1
    - Dst: dhcp_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1762,1
    - Dst: dhcp_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1766,1
    - Dst: dhcp_handle_ack
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1772,1
    - Dst: dhcp_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1773,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1780,1
    - Dst: dhcp_handle_nak
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1781,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1785,1
    - Dst: dhcp_handle_offer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1788,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1795,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 79
    argCount: 5
    argNames:
    - arg
    - pcb
    - p
    - addr
    - port
    argTypes:
    - void*
    - struct udp_pcb*
    - struct pbuf*
    - ip_addr_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 1796
      start: 1681
    functionDepth: 9
    functionLinenumber: 1681
    functionLinenumberEnd: 1796
    functionName: dhcp_recv
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 0
    functionsReached:
    - dhcp_bind
    - IP_IS_V4
    - ip4_addr4_16
    - dhcp_parse_reply
    - LWIP_ASSERT
    - LWIP_DEBUGF
    - ip_current_input_netif
    - ip4_addr2_16
    - pbuf_free
    - ip4_addr3_16
    - netif_dhcp_data
    - dhcp_handle_ack
    - dhcp_check
    - dhcp_handle_nak
    - dhcp_option_given
    - lwip_ntohl
    - dhcp_get_option_value
    - dhcp_handle_offer
    - ip_2_ip4
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: void
    signature: dhcp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t
      *addr, u16_t port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1825,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1826,1
    - Dst: dhcp_delete_msg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1831,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1833,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1835,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1839,1
    - Dst: LWIP_RAND
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1847,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1854,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1864,1
    - Dst: ip4_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1869,1
    - Dst: ip4_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1874,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1874,1
    - Dst: ip4_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1876,1
    - Dst: ip4_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1877,1
    - Dst: ip4_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1878,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1889,1
    - Dst: dhcp_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1896,1
    - Dst: dhcp_option_byte
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1897,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 3
    argNames:
    - netif
    - dhcp
    - message_type
    argTypes:
    - struct netif*
    - struct dhcp*
    - u8_t
    constantsTouched: []
    func_position:
      end: 1899
      start: 1805
    functionDepth: 2
    functionLinenumber: 1805
    functionLinenumberEnd: 1899
    functionName: dhcp_create_msg
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 8
    functionsReached:
    - netif_ip4_addr
    - LWIP_DEBUGF
    - LWIP_RAND
    - pbuf_alloc
    - dhcp_option_byte
    - LWIP_ERROR
    - ip4_addr_copy
    - dhcp_option
    - PP_HTONL
    - lwip_htonl
    - ip4_addr_set_zero
    - dhcp_delete_msg
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: dhcp_create_msg(struct netif *netif, struct dhcp *dhcp, u8_t message_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1909,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1910,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1911,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - dhcp
    argTypes:
    - struct dhcp*
    constantsTouched: []
    func_position:
      end: 1917
      start: 1906
    functionDepth: 4
    functionLinenumber: 1906
    functionLinenumberEnd: 1917
    functionName: dhcp_delete_msg
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 9
    functionsReached:
    - LWIP_ERROR
    - pbuf_free
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: dhcp_delete_msg(struct dhcp *dhcp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1930,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1931,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1932,1
    - Dst: pbuf_realloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1941,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - dhcp
    argTypes:
    - struct dhcp*
    constantsTouched: []
    func_position:
      end: 1942
      start: 1927
    functionDepth: 2
    functionLinenumber: 1927
    functionLinenumberEnd: 1942
    functionName: dhcp_option_trailer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 8
    functionsReached:
    - LWIP_ERROR
    - pbuf_realloc
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: dhcp_option_trailer(struct dhcp *dhcp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1953,1
    - Dst: netif_dhcp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c:1954,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1959
      start: 1950
    functionDepth: 0
    functionLinenumber: 1950
    functionLinenumberEnd: 1959
    functionName: dhcp_supplied_address
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
    functionUses: 1
    functionsReached:
    - netif_dhcp_data
    linkageType: ''
    returnType: u8_t
    signature: dhcp_supplied_address(const struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:108,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:109,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:110,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:111,1
    - Dst: netif_autoip_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:112,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:115,1
    - Dst: netif_set_client_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - netif
    - autoip
    argTypes:
    - struct netif*
    - struct autoip*
    constantsTouched: []
    func_position:
      end: 118
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 118
    functionName: autoip_set_struct
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c
    functionUses: 0
    functionsReached:
    - memset
    - LWIP_ASSERT_CORE_LOCKED
    - netif_set_client_data
    - netif_autoip_data
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: autoip_set_struct(struct netif *netif, struct autoip *autoip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_autoip_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:127,1
    - Dst: autoip_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: autoip_restart
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c
    functionUses: 0
    functionsReached:
    - netif_autoip_data
    - autoip_start
    linkageType: ''
    returnType: void
    signature: autoip_restart(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_autoip_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:138,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:149,1
    - Dst: autoip_restart
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:153,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:155,1
    - Dst: autoip_arp_announce
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 160
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 160
    functionName: autoip_handle_arp_conflict
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - netif_autoip_data
    - autoip_restart
    - autoip_arp_announce
    linkageType: ''
    returnType: void
    signature: autoip_handle_arp_conflict(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_autoip_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:171,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:177,1
    - Dst: LWIP_AUTOIP_CREATE_SEED_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:177,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:188,1
    - Dst: ip4_addr_set_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:190,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:190,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:192,1
    - Dst: ip4_addr1_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:194,1
    - Dst: ip4_addr2_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:194,1
    - Dst: ip4_addr3_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:195,1
    - Dst: ip4_addr4_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - netif
    - ipaddr
    argTypes:
    - struct netif*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 196
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 196
    functionName: autoip_create_addr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c
    functionUses: 0
    functionsReached:
    - LWIP_AUTOIP_CREATE_SEED_ADDR
    - LWIP_DEBUGF
    - ip4_addr1_16
    - ip4_addr2_16
    - lwip_ntohl
    - ip4_addr4_16
    - ip4_addr_set_u32
    - lwip_htonl
    - netif_autoip_data
    - ip4_addr3_16
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: autoip_create_addr(struct netif *netif, ip4_addr_t *ipaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_autoip_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:206,1
    - Dst: etharp_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 7
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: autoip_arp_probe
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c
    functionUses: 0
    functionsReached:
    - etharp_request
    - netif_autoip_data
    linkageType: ''
    returnType: err_t
    signature: autoip_arp_probe(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: etharp_gratuitous
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 220
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 220
    functionName: autoip_arp_announce
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c
    functionUses: 1
    functionsReached:
    - etharp_gratuitous
    linkageType: ''
    returnType: err_t
    signature: autoip_arp_announce(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_autoip_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:230,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:233,1
    - Dst: ip4_addr1_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:236,1
    - Dst: ip4_addr2_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:236,1
    - Dst: ip4_addr3_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:237,1
    - Dst: ip4_addr4_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:237,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:239,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:240,1
    - Dst: netif_set_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 246
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 246
    functionName: autoip_bind
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c
    functionUses: 0
    functionsReached:
    - IP4_ADDR
    - LWIP_DEBUGF
    - ip4_addr1_16
    - netif_set_addr
    - ip4_addr2_16
    - ip4_addr4_16
    - netif_autoip_data
    - ip4_addr3_16
    linkageType: ''
    returnType: err_t
    signature: autoip_bind(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_autoip_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:257,1
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:260,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:261,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:261,1
    - Dst: netif_set_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:266,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:268,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:273,1
    - Dst: mem_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:275,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:277,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:281,1
    - Dst: netif_set_client_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:283,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:284,1
    - Dst: ip4_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:289,1
    - Dst: autoip_create_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:293,1
    - Dst: autoip_start_probing
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 297
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 297
    functionName: autoip_start
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c
    functionUses: 2
    functionsReached:
    - autoip_start_probing
    - LWIP_DEBUGF
    - mem_malloc
    - netif_set_addr
    - autoip_create_addr
    - netif_is_up
    - LWIP_ERROR
    - memset
    - LWIP_ASSERT_CORE_LOCKED
    - ip4_addr_set_zero
    - netif_set_client_data
    - netif_autoip_data
    linkageType: ''
    returnType: err_t
    signature: autoip_start(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_autoip_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:302,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:306,1
    - Dst: ip4_addr1_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:308,1
    - Dst: ip4_addr2_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:308,1
    - Dst: ip4_addr3_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:309,1
    - Dst: ip4_addr4_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:309,1
    - Dst: LWIP_AUTOIP_RAND
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 325
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 325
    functionName: autoip_start_probing
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - ip4_addr1_16
    - LWIP_AUTOIP_RAND
    - ip4_addr2_16
    - ip4_addr4_16
    - netif_autoip_data
    - ip4_addr3_16
    linkageType: ''
    returnType: void
    signature: autoip_start_probing(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_autoip_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:336,1
    - Dst: autoip_start_probing
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 341
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 341
    functionName: autoip_network_changed
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c
    functionUses: 1
    functionsReached:
    - autoip_start_probing
    - netif_autoip_data
    linkageType: ''
    returnType: void
    signature: autoip_network_changed(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_autoip_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:352,1
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:354,1
    - Dst: ip4_addr_islinklocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:357,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:357,1
    - Dst: netif_set_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 362
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 362
    functionName: autoip_stop
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c
    functionUses: 3
    functionsReached:
    - netif_ip4_addr
    - netif_set_addr
    - ip4_addr_islinklocal
    - LWIP_ASSERT_CORE_LOCKED
    - netif_autoip_data
    linkageType: ''
    returnType: err_t
    signature: autoip_stop(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_autoip_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:373,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:380,1
    - Dst: autoip_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:394,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:399,1
    - Dst: ip4_addr1_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:401,1
    - Dst: ip4_addr2_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:401,1
    - Dst: ip4_addr3_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:402,1
    - Dst: ip4_addr4_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:402,1
    - Dst: autoip_arp_probe
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:404,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:405,1
    - Dst: LWIP_AUTOIP_RAND
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:412,1
    - Dst: autoip_arp_announce
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:422,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:423,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:431,1
    - Dst: ip4_addr1_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:433,1
    - Dst: ip4_addr2_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:433,1
    - Dst: ip4_addr3_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:434,1
    - Dst: ip4_addr4_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:434,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 447
      start: 367
    functionDepth: 8
    functionLinenumber: 367
    functionLinenumberEnd: 447
    functionName: autoip_tmr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c
    functionUses: 0
    functionsReached:
    - autoip_arp_probe
    - LWIP_DEBUGF
    - ip4_addr1_16
    - LWIP_AUTOIP_RAND
    - autoip_arp_announce
    - ip4_addr2_16
    - ip4_addr4_16
    - ip4_addr3_16
    - netif_autoip_data
    - autoip_bind
    linkageType: ''
    returnType: void
    signature: autoip_tmr(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_autoip_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:458,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:460,1
    - Dst: ETHADDR16_COPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:469,1
    - Dst: IPADDR2_COPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:474,1
    - Dst: IPADDR2_COPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:475,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:484,1
    - Dst: ip4_addr_isany_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:485,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:486,1
    - Dst: eth_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:487,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:488,1
    - Dst: autoip_restart
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:490,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:497,1
    - Dst: eth_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:498,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:499,1
    - Dst: autoip_handle_arp_conflict
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:501,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - netif
    - hdr
    argTypes:
    - struct netif*
    - struct etharp_hdr*
    constantsTouched: []
    func_position:
      end: 505
      start: 455
    functionDepth: 3
    functionLinenumber: 455
    functionLinenumberEnd: 505
    functionName: autoip_arp_reply
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c
    functionUses: 1
    functionsReached:
    - ETHADDR16_COPY
    - LWIP_DEBUGF
    - eth_addr_cmp
    - autoip_restart
    - ip4_addr_cmp
    - autoip_handle_arp_conflict
    - ip4_addr_isany_val
    - IPADDR2_COPY
    - netif_autoip_data
    linkageType: ''
    returnType: void
    signature: autoip_arp_reply(struct netif *netif, struct etharp_hdr *hdr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_autoip_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:516,1
    - Dst: netif_autoip_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:517,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 521
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 521
    functionName: autoip_supplied_address
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c
    functionUses: 0
    functionsReached:
    - netif_autoip_data
    linkageType: ''
    returnType: u8_t
    signature: autoip_supplied_address(const struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_autoip_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:526,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c:527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - netif
    - addr
    argTypes:
    - struct netif*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 528
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 528
    functionName: autoip_accept_packet
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c
    functionUses: 0
    functionsReached:
    - netif_autoip_data
    - ip4_addr_cmp
    linkageType: ''
    returnType: u8_t
    signature: autoip_accept_packet(struct netif *netif, const ip4_addr_t *addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:116,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:118,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: igmp_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c
    functionUses: 1
    functionsReached:
    - IP4_ADDR
    - LWIP_DEBUGF
    linkageType: ''
    returnType: void
    signature: igmp_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:132,1
    - Dst: igmp_lookup_group
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:134,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:142,1
    - Dst: ip4_addr_debug_print_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:143,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:144,1
    - Dst: struct netif*::igmp_mac_filter
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 152
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 152
    functionName: igmp_start
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c
    functionUses: 1
    functionsReached:
    - ip4_addr_debug_print_val
    - LWIP_DEBUGF
    - struct netif*::igmp_mac_filter
    - igmp_lookup_group
    linkageType: ''
    returnType: err_t
    signature: igmp_start(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_igmp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:162,1
    - Dst: netif_set_client_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:164,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:171,1
    - Dst: ip4_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:172,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:173,1
    - Dst: struct netif*::igmp_mac_filter
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:174,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 184
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 184
    functionName: igmp_stop
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - memp_free
    - netif_igmp_data
    - ip4_addr_debug_print
    - struct netif*::igmp_mac_filter
    - netif_set_client_data
    linkageType: ''
    returnType: err_t
    signature: igmp_stop(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_igmp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:194,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:196,1
    - Dst: igmp_delaying_member
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 207
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 207
    functionName: igmp_report_groups
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - netif_igmp_data
    - igmp_delaying_member
    linkageType: ''
    returnType: void
    signature: igmp_report_groups(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_igmp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:220,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ifp
    - addr
    argTypes:
    - struct netif*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 233
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 233
    functionName: igmp_lookfor_group
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c
    functionUses: 0
    functionsReached:
    - netif_igmp_data
    - ip4_addr_cmp
    linkageType: ''
    returnType: struct igmp_group
    signature: '*

      igmp_lookfor_group(struct netif *ifp, const ip4_addr_t *addr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_igmp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:247,1
    - Dst: igmp_lookfor_group
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:250,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:257,1
    - Dst: ip4_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:259,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:268,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:269,1
    - Dst: netif_set_client_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:271,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:274,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:275,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:281,1
    - Dst: ip4_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:282,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 2
    argNames:
    - ifp
    - addr
    argTypes:
    - struct netif*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 286
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 286
    functionName: igmp_lookup_group
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - ip4_addr_cmp
    - netif_igmp_data
    - ip4_addr_debug_print
    - igmp_lookfor_group
    - memp_malloc
    - netif_set_client_data
    - ip4_addr_set
    - LWIP_ASSERT
    linkageType: ''
    returnType: struct igmp_group
    signature: '*

      igmp_lookup_group(struct netif *ifp, const ip4_addr_t *addr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_igmp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:301,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - netif
    - group
    argTypes:
    - struct netif*
    - struct igmp_group*
    constantsTouched: []
    func_position:
      end: 313
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 313
    functionName: igmp_remove_group
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c
    functionUses: 0
    functionsReached:
    - netif_igmp_data
    linkageType: ''
    returnType: err_t
    signature: igmp_remove_group(struct netif* netif, struct igmp_group *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IGMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:329,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:333,1
    - Dst: IGMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:334,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:335,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:339,1
    - Dst: ip4_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:340,1
    - Dst: ip4_current_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:340,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:341,1
    - Dst: ip4_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:342,1
    - Dst: ip4_current_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:342,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:343,1
    - Dst: inet_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:347,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:348,1
    - Dst: IGMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:349,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:350,1
    - Dst: igmp_lookfor_group
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:355,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:359,1
    - Dst: IGMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:360,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:361,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:369,1
    - Dst: ip4_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:369,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:371,1
    - Dst: IGMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:374,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:375,1
    - Dst: IGMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:378,1
    - Dst: netif_igmp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:381,1
    - Dst: igmp_delaying_member
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:390,1
    - Dst: ip4_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:395,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:396,1
    - Dst: ip4_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:397,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:398,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:400,1
    - Dst: ip4_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:402,1
    - Dst: igmp_lookfor_group
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:403,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:405,1
    - Dst: IGMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:409,1
    - Dst: igmp_delaying_member
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:410,1
    - Dst: IGMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:412,1
    - Dst: IGMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:415,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:420,1
    - Dst: IGMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:421,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:430,1
    - Dst: IGMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:432,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:436,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 84
    argCount: 3
    argNames:
    - p
    - inp
    - dest
    argTypes:
    - struct pbuf*
    - struct netif*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 438
      start: 322
    functionDepth: 4
    functionLinenumber: 322
    functionLinenumberEnd: 438
    functionName: igmp_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c
    functionUses: 0
    functionsReached:
    - ip4_addr_isany
    - LWIP_DEBUGF
    - ip4_addr_cmp
    - netif_igmp_data
    - ip4_addr_debug_print
    - ip4_addr_copy
    - igmp_lookfor_group
    - igmp_delaying_member
    - ip4_current_header
    - IGMP_STATS_INC
    - inet_chksum
    - pbuf_free
    linkageType: ''
    returnType: void
    signature: igmp_input(struct pbuf *p, struct netif *inp, const ip4_addr_t *dest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:455,1
    - Dst: ip4_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:455,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:456,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:456,1
    - Dst: ip4_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:462,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:462,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:462,1
    - Dst: igmp_joingroup_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:463,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ifaddr
    - groupaddr
    argTypes:
    - ip4_addr_t*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 475
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 475
    functionName: igmp_joingroup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c
    functionUses: 0
    functionsReached:
    - ip4_addr_isany
    - netif_ip4_addr
    - ip4_addr_cmp
    - ip4_addr_ismulticast
    - LWIP_ERROR
    - igmp_joingroup_netif
    linkageType: ''
    returnType: err_t
    signature: igmp_joingroup(const ip4_addr_t *ifaddr, const ip4_addr_t *groupaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:491,1
    - Dst: ip4_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:491,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:492,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:492,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:495,1
    - Dst: igmp_lookup_group
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:498,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:503,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:506,1
    - Dst: ip4_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:507,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:508,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:512,1
    - Dst: ip4_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:513,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:514,1
    - Dst: struct netif*::igmp_mac_filter
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:515,1
    - Dst: IGMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:518,1
    - Dst: igmp_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:519,1
    - Dst: igmp_start_timer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:521,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:531,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - netif
    - groupaddr
    argTypes:
    - struct netif*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 534
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 534
    functionName: igmp_joingroup_netif
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - igmp_start_timer
    - ip4_addr_cmp
    - igmp_lookup_group
    - ip4_addr_ismulticast
    - LWIP_ERROR
    - ip4_addr_debug_print
    - IGMP_STATS_INC
    - struct netif*::igmp_mac_filter
    - igmp_send
    linkageType: ''
    returnType: err_t
    signature: igmp_joingroup_netif(struct netif *netif, const ip4_addr_t *groupaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:551,1
    - Dst: ip4_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:551,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:552,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:552,1
    - Dst: ip4_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:558,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:558,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:558,1
    - Dst: igmp_leavegroup_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:559,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ifaddr
    - groupaddr
    argTypes:
    - ip4_addr_t*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 570
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 570
    functionName: igmp_leavegroup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c
    functionUses: 0
    functionsReached:
    - ip4_addr_isany
    - netif_ip4_addr
    - ip4_addr_cmp
    - ip4_addr_ismulticast
    - LWIP_ERROR
    - igmp_leavegroup_netif
    linkageType: ''
    returnType: err_t
    signature: igmp_leavegroup(const ip4_addr_t *ifaddr, const ip4_addr_t *groupaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:586,1
    - Dst: ip4_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:586,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:587,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:587,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:590,1
    - Dst: igmp_lookfor_group
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:593,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:597,1
    - Dst: ip4_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:598,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:599,1
    - Dst: igmp_remove_group
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:604,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:608,1
    - Dst: IGMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:609,1
    - Dst: igmp_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:610,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:615,1
    - Dst: ip4_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:616,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:617,1
    - Dst: struct netif*::igmp_mac_filter
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:618,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:622,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:629,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 2
    argNames:
    - netif
    - groupaddr
    argTypes:
    - struct netif*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 632
      start: 580
    functionDepth: 3
    functionLinenumber: 580
    functionLinenumberEnd: 632
    functionName: igmp_leavegroup_netif
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - ip4_addr_cmp
    - ip4_addr_ismulticast
    - memp_free
    - LWIP_ERROR
    - ip4_addr_debug_print
    - igmp_lookfor_group
    - igmp_remove_group
    - IGMP_STATS_INC
    - struct netif*::igmp_mac_filter
    - igmp_send
    linkageType: ''
    returnType: err_t
    signature: igmp_leavegroup_netif(struct netif *netif, const ip4_addr_t *groupaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_igmp_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:644,1
    - Dst: igmp_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:650,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 657
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 657
    functionName: igmp_tmr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c
    functionUses: 0
    functionsReached:
    - netif_igmp_data
    - igmp_timeout
    linkageType: ''
    returnType: void
    signature: igmp_tmr(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:671,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:672,1
    - Dst: ip4_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:673,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:674,1
    - Dst: IGMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:678,1
    - Dst: igmp_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:679,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - netif
    - group
    argTypes:
    - struct netif*
    - struct igmp_group*
    constantsTouched: []
    func_position:
      end: 681
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 681
    functionName: igmp_timeout
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - ip4_addr_cmp
    - ip4_addr_debug_print
    - IGMP_STATS_INC
    - igmp_send
    linkageType: ''
    returnType: void
    signature: igmp_timeout(struct netif *netif, struct igmp_group *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_RAND
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - group
    - max_time
    argTypes:
    - struct igmp_group*
    - u8_t
    constantsTouched: []
    func_position:
      end: 703
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 703
    functionName: igmp_start_timer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c
    functionUses: 1
    functionsReached:
    - LWIP_RAND
    linkageType: ''
    returnType: void
    signature: igmp_start_timer(struct igmp_group *group, u8_t max_time)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: igmp_start_timer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:717,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - group
    - maxresp
    argTypes:
    - struct igmp_group*
    - u8_t
    constantsTouched: []
    func_position:
      end: 720
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 720
    functionName: igmp_delaying_member
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c
    functionUses: 2
    functionsReached:
    - igmp_start_timer
    linkageType: ''
    returnType: void
    signature: igmp_delaying_member(struct igmp_group *group, u8_t maxresp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:744,1
    - Dst: IGMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:746,1
    - Dst: ip4_output_if_opt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - p
    - src
    - dest
    - netif
    argTypes:
    - struct pbuf*
    - ip4_addr_t*
    - ip4_addr_t*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 748
      start: 739
    functionDepth: 2
    functionLinenumber: 739
    functionLinenumberEnd: 748
    functionName: igmp_ip_output_if
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c
    functionUses: 0
    functionsReached:
    - PP_HTONS
    - IGMP_STATS_INC
    - ip4_output_if_opt
    linkageType: ''
    returnType: err_t
    signature: igmp_ip_output_if(struct pbuf *p, const ip4_addr_t *src, const ip4_addr_t
      *dest, struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:765,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:769,1
    - Dst: ip4_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:771,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:771,1
    - Dst: ip4_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:775,1
    - Dst: ip4_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:780,1
    - Dst: inet_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:788,1
    - Dst: igmp_ip_output_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:790,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:793,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:795,1
    - Dst: IGMP_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c:796,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - netif
    - group
    - type
    argTypes:
    - struct netif*
    - struct igmp_group*
    - u8_t
    constantsTouched: []
    func_position:
      end: 798
      start: 756
    functionDepth: 4
    functionLinenumber: 756
    functionLinenumberEnd: 798
    functionName: igmp_send
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c
    functionUses: 3
    functionsReached:
    - netif_ip4_addr
    - LWIP_DEBUGF
    - pbuf_alloc
    - ip4_addr_copy
    - igmp_ip_output_if
    - inet_chksum
    - IGMP_STATS_INC
    - pbuf_free
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: igmp_send(struct netif *netif, struct igmp_group *group, u8_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: ip_reass_helper
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: ip_reass_helper
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:138,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:144,1
    - Dst: ip_reass_free_complete_datagram
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 152
    functionName: ip_reass_tmr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c
    functionUses: 0
    functionsReached:
    - ip_reass_free_complete_datagram
    - LWIP_DEBUGF
    linkageType: ''
    returnType: void
    signature: ip_reass_tmr(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:171,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:173,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:176,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:185,1
    - Dst: icmp_time_exceeded
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:186,1
    - Dst: pbuf_clen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:187,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:188,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:190,1
    - Dst: pbuf_clen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:203,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:204,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:206,1
    - Dst: ip_reass_dequeue_datagram
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:209,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 2
    argNames:
    - ipr
    - prev
    argTypes:
    - struct ip_reassdata*
    - struct ip_reassdata*
    constantsTouched: []
    func_position:
      end: 214
      start: 163
    functionDepth: 4
    functionLinenumber: 163
    functionLinenumberEnd: 214
    functionName: ip_reass_free_complete_datagram
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c
    functionUses: 1
    functionsReached:
    - icmp_time_exceeded
    - SMEMCPY
    - pbuf_clen
    - MIB2_STATS_INC
    - pbuf_free
    - ip_reass_dequeue_datagram
    - LWIP_ASSERT
    linkageType: ''
    returnType: int
    signature: ip_reass_free_complete_datagram(struct ip_reassdata *ipr, struct ip_reassdata
      *prev)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IP_ADDRESSES_AND_ID_MATCH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:245,1
    - Dst: ip_reass_free_complete_datagram
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:263,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - fraghdr
    - pbufs_needed
    argTypes:
    - struct ip_hdr*
    - int
    constantsTouched: []
    func_position:
      end: 268
      start: 226
    functionDepth: 5
    functionLinenumber: 226
    functionLinenumberEnd: 268
    functionName: ip_reass_remove_oldest_datagram
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c
    functionUses: 0
    functionsReached:
    - ip_reass_free_complete_datagram
    - IP_ADDRESSES_AND_ID_MATCH
    linkageType: ''
    returnType: int
    signature: ip_reass_remove_oldest_datagram(struct ip_hdr *fraghdr, int pbufs_needed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:282,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:286,1
    - Dst: ip_reass_remove_oldest_datagram
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:289,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:290,1
    - Dst: IPFRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:295,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:296,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:300,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - fraghdr
    - clen
    argTypes:
    - struct ip_hdr*
    - int
    constantsTouched: []
    func_position:
      end: 310
      start: 277
    functionDepth: 6
    functionLinenumber: 277
    functionLinenumberEnd: 310
    functionName: ip_reass_enqueue_new_datagram
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - ip_reass_remove_oldest_datagram
    - SMEMCPY
    - memset
    - IPFRAG_STATS_INC
    - memp_malloc
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: struct ip_reassdata
    signature: '*

      ip_reass_enqueue_new_datagram(struct ip_hdr *fraghdr, int clen)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:325,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ipr
    - prev
    argTypes:
    - struct ip_reassdata*
    - struct ip_reassdata*
    constantsTouched: []
    func_position:
      end: 331
      start: 316
    functionDepth: 3
    functionLinenumber: 316
    functionLinenumberEnd: 331
    functionName: ip_reass_dequeue_datagram
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c
    functionUses: 1
    functionsReached:
    - memp_free
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: ip_reass_dequeue_datagram(struct ip_reassdata *ipr, struct ip_reassdata
      *prev)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:354,1
    - Dst: IPH_LEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:354,1
    - Dst: IPH_HL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:354,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:355,1
    - Dst: IPH_OFFSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:355,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:360,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:427,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:435,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:468,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:469,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:471,1
    - Dst: pbuf_clen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:485,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:486,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 91
    argCount: 3
    argNames:
    - ipr
    - new_p
    - is_last
    argTypes:
    - struct ip_reassdata*
    - struct pbuf*
    - int
    constantsTouched: []
    func_position:
      end: 489
      start: 343
    functionDepth: 4
    functionLinenumber: 343
    functionLinenumberEnd: 489
    functionName: ip_reass_chain_frag_into_datagram_and_validate
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c
    functionUses: 0
    functionsReached:
    - IPH_OFFSET
    - lwip_ntohs
    - IPH_LEN
    - pbuf_clen
    - pbuf_free
    - IPH_HL
    - LWIP_ASSERT
    linkageType: ''
    returnType: int
    signature: ip_reass_chain_frag_into_datagram_and_validate(struct ip_reassdata
      *ipr, struct pbuf *new_p, int is_last)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPFRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:508,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:509,1
    - Dst: IPH_HL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:513,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:514,1
    - Dst: IPFRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:515,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:519,1
    - Dst: IPH_OFFSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:519,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:520,1
    - Dst: IPH_LEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:520,1
    - Dst: IPH_HL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:520,1
    - Dst: pbuf_clen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:523,1
    - Dst: ip_reass_remove_oldest_datagram
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:526,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:531,1
    - Dst: IPFRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:533,1
    - Dst: IP_ADDRESSES_AND_ID_MATCH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:546,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:547,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:548,1
    - Dst: IPH_ID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:548,1
    - Dst: IPFRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:549,1
    - Dst: ip_reass_enqueue_new_datagram
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:556,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:562,1
    - Dst: IPH_OFFSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:562,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:563,1
    - Dst: IPH_OFFSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:563,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:568,1
    - Dst: IPH_OFFSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:576,1
    - Dst: PP_NTOHS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:576,1
    - Dst: ip_reass_chain_frag_into_datagram_and_validate
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:586,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:600,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:616,1
    - Dst: IPH_LEN_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:617,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:617,1
    - Dst: IPH_OFFSET_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:618,1
    - Dst: IPH_CHKSUM_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:619,1
    - Dst: IPH_CHKSUM_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:623,1
    - Dst: inet_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:623,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:634,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:635,1
    - Dst: ip_reass_dequeue_datagram
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:651,1
    - Dst: pbuf_clen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:654,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:656,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:662,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:666,1
    - Dst: IPFRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:667,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:668,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 97
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 670
      start: 497
    functionDepth: 7
    functionLinenumber: 497
    functionLinenumberEnd: 670
    functionName: ip4_reass
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c
    functionUses: 0
    functionsReached:
    - lwip_htons
    - IPH_LEN_SET
    - PP_NTOHS
    - LWIP_DEBUGF
    - ip_reass_remove_oldest_datagram
    - IPH_ID
    - lwip_ntohs
    - IPFRAG_STATS_INC
    - pbuf_clen
    - MIB2_STATS_INC
    - inet_chksum
    - pbuf_free
    - ip_reass_dequeue_datagram
    - IPH_LEN
    - pbuf_header
    - ip_reass_chain_frag_into_datagram_and_validate
    - IPH_OFFSET
    - IP_ADDRESSES_AND_ID_MATCH
    - IPH_CHKSUM_SET
    - pbuf_cat
    - ip_reass_enqueue_new_datagram
    - SMEMCPY
    - IPH_OFFSET_SET
    - IPH_HL
    linkageType: ''
    returnType: struct pbuf
    signature: '*

      ip4_reass(struct pbuf *p)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 680
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 680
    functionName: ip_frag_alloc_pbuf_custom_ref
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c
    functionUses: 0
    functionsReached:
    - memp_malloc
    linkageType: ''
    returnType: struct pbuf_custom_ref
    signature: '*

      ip_frag_alloc_pbuf_custom_ref(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:686,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pbuf_custom_ref*
    constantsTouched: []
    func_position:
      end: 688
      start: 683
    functionDepth: 3
    functionLinenumber: 683
    functionLinenumberEnd: 688
    functionName: ip_frag_free_pbuf_custom_ref
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c
    functionUses: 0
    functionsReached:
    - memp_free
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: ip_frag_free_pbuf_custom_ref(struct pbuf_custom_ref* p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:696,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:697,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:699,1
    - Dst: ip_frag_free_pbuf_custom_ref
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 702
      start: 692
    functionDepth: 4
    functionLinenumber: 692
    functionLinenumberEnd: 702
    functionName: ipfrag_free_pbuf_custom
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c
    functionUses: 0
    functionsReached:
    - ip_frag_free_pbuf_custom_ref
    - pbuf_free
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: ipfrag_free_pbuf_custom(struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:737,1
    - Dst: IPH_HL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:737,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:740,1
    - Dst: IPH_OFFSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:740,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:742,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:748,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:751,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:755,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:757,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:759,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:760,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:764,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:772,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:776,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:778,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:785,1
    - Dst: ip_frag_alloc_pbuf_custom_ref
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:792,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:794,1
    - Dst: pbuf_alloced_custom
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:798,1
    - Dst: ip_frag_free_pbuf_custom_ref
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:801,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:802,1
    - Dst: pbuf_ref
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:805,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:812,1
    - Dst: IPH_OFFSET_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:830,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:830,1
    - Dst: IPH_LEN_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:831,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:831,1
    - Dst: IPH_CHKSUM_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:832,1
    - Dst: IPH_CHKSUM_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:835,1
    - Dst: inet_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:835,1
    - Dst: struct netif*::output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:842,1
    - Dst: IPFRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:843,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:852,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:856,1
    - Dst: MIB2_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c:859,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 86
    argCount: 3
    argNames:
    - p
    - netif
    - dest
    argTypes:
    - struct pbuf*
    - struct netif*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 861
      start: 717
    functionDepth: 4
    functionLinenumber: 717
    functionLinenumberEnd: 861
    functionName: ip4_frag
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c
    functionUses: 1
    functionsReached:
    - struct netif*::output
    - lwip_htons
    - LWIP_MIN
    - IPH_LEN_SET
    - pbuf_alloced_custom
    - LWIP_ASSERT
    - ip_frag_alloc_pbuf_custom_ref
    - lwip_ntohs
    - LWIP_ERROR
    - IPFRAG_STATS_INC
    - MIB2_STATS_INC
    - inet_chksum
    - pbuf_free
    - pbuf_copy_partial
    - ip_frag_free_pbuf_custom_ref
    - pbuf_header
    - IPH_OFFSET
    - pbuf_cat
    - IPH_CHKSUM_SET
    - pbuf_alloc
    - SMEMCPY
    - pbuf_ref
    - IPH_OFFSET_SET
    - IPH_HL
    linkageType: ''
    returnType: err_t
    signature: ip4_frag(struct pbuf *p, struct netif *netif, const ip4_addr_t *dest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ICMP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:87,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:92,1
    - Dst: ICMP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:93,1
    - Dst: ICMP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:94,1
    - Dst: ip6_chksum_pseudo
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:102,1
    - Dst: ip6_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:102,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:103,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:105,1
    - Dst: ICMP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:106,1
    - Dst: ICMP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:107,1
    - Dst: nd6_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:120,1
    - Dst: mld6_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:132,1
    - Dst: ip6_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:140,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:140,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:142,1
    - Dst: ICMP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:143,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:149,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:152,1
    - Dst: ICMP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:153,1
    - Dst: pbuf_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:158,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:160,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:161,1
    - Dst: ICMP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:162,1
    - Dst: ip6_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:168,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:168,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:169,1
    - Dst: ip6_select_source_address
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:169,1
    - Dst: ip6_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:169,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:172,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:173,1
    - Dst: ICMP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:174,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:181,1
    - Dst: ip6_chksum_pseudo
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:189,1
    - Dst: ip6_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:190,1
    - Dst: ICMP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:195,1
    - Dst: ip6_output_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:196,1
    - Dst: ip6_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:196,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:198,1
    - Dst: ICMP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:202,1
    - Dst: ICMP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:203,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:207,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 76
    argCount: 2
    argNames:
    - p
    - inp
    argTypes:
    - struct pbuf*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 208
      start: 80
    functionDepth: 4
    functionLinenumber: 80
    functionLinenumberEnd: 208
    functionName: icmp6_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c
    functionUses: 0
    functionsReached:
    - ip_2_ip6
    - ip6_current_src_addr
    - pbuf_alloc
    - ICMP6_STATS_INC
    - mld6_input
    - pbuf_copy
    - ip6_select_source_address
    - ip6_output_if
    - ip6_current_dest_addr
    - ip6_addr_ismulticast
    - ip6_chksum_pseudo
    - pbuf_free
    - nd6_input
    linkageType: ''
    returnType: void
    signature: icmp6_input(struct pbuf *p, struct netif *inp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: icmp6_send_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - c
    argTypes:
    - struct pbuf*
    - enum icmp6_dur_code
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: icmp6_dest_unreach
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c
    functionUses: 0
    functionsReached:
    - icmp6_send_response
    linkageType: ''
    returnType: void
    signature: icmp6_dest_unreach(struct pbuf *p, enum icmp6_dur_code c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: icmp6_send_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - mtu
    argTypes:
    - struct pbuf*
    - u32_t
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: icmp6_packet_too_big
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c
    functionUses: 0
    functionsReached:
    - icmp6_send_response
    linkageType: ''
    returnType: void
    signature: icmp6_packet_too_big(struct pbuf *p, u32_t mtu)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: icmp6_send_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - c
    argTypes:
    - struct pbuf*
    - enum icmp6_te_code
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: icmp6_time_exceeded
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c
    functionUses: 0
    functionsReached:
    - icmp6_send_response
    linkageType: ''
    returnType: void
    signature: icmp6_time_exceeded(struct pbuf *p, enum icmp6_te_code c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: icmp6_send_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - c
    - pointer
    argTypes:
    - struct pbuf*
    - enum icmp6_pp_code
    - u32_t
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: icmp6_param_problem
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c
    functionUses: 0
    functionsReached:
    - icmp6_send_response
    linkageType: ''
    returnType: void
    signature: icmp6_param_problem(struct pbuf *p, enum icmp6_pp_code c, u32_t pointer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:285,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:288,1
    - Dst: ICMP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:289,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:292,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:301,1
    - Dst: ip_current_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:305,1
    - Dst: ip6_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:312,1
    - Dst: ip6_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:313,1
    - Dst: ip6_route
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:316,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:319,1
    - Dst: ICMP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:320,1
    - Dst: ip_current_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:325,1
    - Dst: ip6_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:326,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:329,1
    - Dst: ip6_select_source_address
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:329,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:332,1
    - Dst: ICMP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:333,1
    - Dst: ip6_chksum_pseudo
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:342,1
    - Dst: ICMP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:347,1
    - Dst: ip6_output_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:348,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c:349,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 4
    argNames:
    - p
    - code
    - data
    - type
    argTypes:
    - struct pbuf*
    - u8_t
    - u32_t
    - u8_t
    constantsTouched: []
    func_position:
      end: 350
      start: 273
    functionDepth: 4
    functionLinenumber: 273
    functionLinenumberEnd: 350
    functionName: icmp6_send_response
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c
    functionUses: 4
    functionsReached:
    - ip_2_ip6
    - LWIP_DEBUGF
    - ip6_current_src_addr
    - pbuf_alloc
    - SMEMCPY
    - ICMP6_STATS_INC
    - ip6_addr_copy
    - ip6_route
    - ip6_select_source_address
    - ip6_output_if
    - ip_current_netif
    - pbuf_free
    - ip6_chksum_pseudo
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: icmp6_send_response(struct pbuf *p, u8_t code, u32_t data, u8_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isxdigit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_addr.c:84,1
    - Dst: isxdigit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_addr.c:132,1
    - Dst: isdigit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_addr.c:135,1
    - Dst: islower
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_addr.c:136,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_addr.c:155,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 2
    argNames:
    - cp
    - addr
    argTypes:
    - char*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 164
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 164
    functionName: ip6addr_aton
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_addr.c
    functionUses: 2
    functionsReached:
    - isdigit
    - isxdigit
    - lwip_htonl
    - islower
    linkageType: ''
    returnType: int
    signature: ip6addr_aton(const char *cp, ip6_addr_t *addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6addr_ntoa_r
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_addr.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: ip6addr_ntoa
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_addr.c
    functionUses: 3
    functionsReached:
    - ip6addr_ntoa_r
    linkageType: ''
    returnType: char
    signature: '*

      ip6addr_ntoa(const ip6_addr_t *addr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_addr.c:202,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_addr.c:221,1
    - Dst: xchar
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_addr.c:253,1
    - Dst: xchar
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_addr.c:263,1
    - Dst: xchar
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_addr.c:274,1
    - Dst: xchar
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_addr.c:281,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 77
    argCount: 3
    argNames:
    - addr
    - buf
    - buflen
    argTypes:
    - ip6_addr_t*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 290
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 290
    functionName: ip6addr_ntoa_r
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_addr.c
    functionUses: 3
    functionsReached:
    - xchar
    - lwip_htonl
    linkageType: ''
    returnType: char
    signature: '*

      ip6addr_ntoa_r(const ip6_addr_t *addr, char *buf, int buflen)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_ip6_addr_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:155,1
    - Dst: ip6_addr_isinvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:166,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:166,1
    - Dst: netif_ip6_addr_isstatic
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:167,1
    - Dst: netif_ip6_addr_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - netif
    - addr_idx
    argTypes:
    - struct netif*
    - s8_t
    constantsTouched: []
    func_position:
      end: 173
      start: 146
    functionDepth: 8
    functionLinenumber: 146
    functionLinenumberEnd: 173
    functionName: nd6_duplicate_addr_detected
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 0
    functionsReached:
    - netif_ip6_addr_set_state
    - netif_ip6_addr_isstatic
    - netif_ip6_addr_state
    - ip6_addr_isinvalid
    linkageType: ''
    returnType: void
    signature: nd6_duplicate_addr_detected(struct netif *netif, s8_t addr_idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:196,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:197,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:211,1
    - Dst: ip6_addr_isinvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:212,1
    - Dst: netif_ip6_addr_isstatic
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:212,1
    - Dst: ip6_addr_netcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:213,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:213,1
    - Dst: netif_ip6_addr_valid_life
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:216,1
    - Dst: netif_ip6_addr_set_valid_life
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:218,1
    - Dst: netif_ip6_addr_set_valid_life
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:220,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:222,1
    - Dst: netif_ip6_addr_isstatic
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:222,1
    - Dst: netif_ip6_addr_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:227,1
    - Dst: netif_ip6_addr_set_pref_life
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:229,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:243,1
    - Dst: ip6_addr_isinvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:245,1
    - Dst: ip6_addr_isduplicated
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:245,1
    - Dst: IP6_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:254,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:255,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:255,1
    - Dst: ip6_addr_isinvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:259,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:259,1
    - Dst: ip6_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:260,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:260,1
    - Dst: ip_addr_copy_from_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:272,1
    - Dst: netif_ip6_addr_set_valid_life
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:273,1
    - Dst: netif_ip6_addr_set_pref_life
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:274,1
    - Dst: netif_ip6_addr_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:275,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 3
    argNames:
    - netif
    - prefix_opt
    - prefix_addr
    argTypes:
    - struct netif*
    - struct prefix_option*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 276
      start: 185
    functionDepth: 8
    functionLinenumber: 185
    functionLinenumberEnd: 276
    functionName: nd6_process_autoconfig_prefix
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 0
    functionsReached:
    - ip6_addr_cmp
    - netif_ip6_addr
    - netif_ip6_addr_isstatic
    - ip6_addr_isinvalid
    - netif_ip6_addr_set_pref_life
    - netif_ip6_addr_valid_life
    - netif_ip6_addr_set_valid_life
    - netif_ip6_addr_state
    - IP6_ADDR
    - ip_addr_copy_from_ip6
    - lwip_htonl
    - netif_ip6_addr_set_state
    - ip6_addr_isduplicated
    - ip6_addr_netcmp
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: "nd6_process_autoconfig_prefix(struct netif *netif,\n  struct prefix_option
      *prefix_opt, const ip6_addr_t *prefix_addr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:291,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:303,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:304,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:305,1
    - Dst: ip6_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:312,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:312,1
    - Dst: ND6_LLADDR_OPTION_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:320,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:322,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:323,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:324,1
    - Dst: ip6_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:331,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:331,1
    - Dst: ip6_addr_isinvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:336,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:336,1
    - Dst: ip6_addr_isduplicated
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:337,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:337,1
    - Dst: ip6_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:338,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:338,1
    - Dst: nd6_duplicate_addr_detected
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:340,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:342,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:351,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:352,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:353,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:361,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:362,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:363,1
    - Dst: nd6_find_neighbor_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:368,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:371,1
    - Dst: ip6_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:382,1
    - Dst: nd6_find_neighbor_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:385,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:388,1
    - Dst: ND6_LLADDR_OPTION_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:396,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:398,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:399,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:400,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:408,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:409,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:410,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:414,1
    - Dst: nd6_send_q
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:423,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:438,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:439,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:440,1
    - Dst: ND6_LLADDR_OPTION_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:448,1
    - Dst: ip6_addr_isvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:460,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:460,1
    - Dst: ip6_addr_istentative
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:461,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:461,1
    - Dst: ip6_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:462,1
    - Dst: ip6_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:462,1
    - Dst: ip6_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:463,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:463,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:471,1
    - Dst: ip6_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:476,1
    - Dst: ip6_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:476,1
    - Dst: ip6_addr_isinvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:479,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:479,1
    - Dst: ip6_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:480,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:480,1
    - Dst: nd6_send_na
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:482,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:482,1
    - Dst: ip6_addr_istentative
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:483,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:483,1
    - Dst: nd6_duplicate_addr_detected
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:485,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:496,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:497,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:498,1
    - Dst: nd6_find_neighbor_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:502,1
    - Dst: ip6_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:502,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:507,1
    - Dst: nd6_new_neighbor_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:517,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:521,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:522,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:526,1
    - Dst: ip6_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:527,1
    - Dst: ip6_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:527,1
    - Dst: ip6_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:536,1
    - Dst: nd6_send_na
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:539,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:558,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:559,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:560,1
    - Dst: nd6_send_rs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:570,1
    - Dst: nd6_get_router
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:576,1
    - Dst: ip6_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:576,1
    - Dst: nd6_new_router
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:579,1
    - Dst: ip6_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:579,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:584,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:585,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:590,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:595,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:598,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:618,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:619,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:620,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:621,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:627,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:628,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:629,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:639,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:649,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:651,1
    - Dst: ip6_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:664,1
    - Dst: ip6_addr_islinklocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:666,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:673,1
    - Dst: nd6_get_onlink_prefix
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:676,1
    - Dst: nd6_new_onlink_prefix
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:679,1
    - Dst: nd6_process_autoconfig_prefix
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:688,1
    - Dst: ip_addr_copy_from_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:713,1
    - Dst: htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:715,1
    - Dst: dns_setserver
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:717,1
    - Dst: dns_getserver
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:722,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:723,1
    - Dst: dns_setserver
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:724,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:734,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:753,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:754,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:755,1
    - Dst: ND6_LLADDR_OPTION_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:762,1
    - Dst: ip6_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:772,1
    - Dst: nd6_find_destination_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:775,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:778,1
    - Dst: ip6_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:783,1
    - Dst: ip6_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:789,1
    - Dst: nd6_find_neighbor_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:791,1
    - Dst: nd6_new_neighbor_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:793,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:796,1
    - Dst: ip6_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:797,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:807,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:828,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:829,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:830,1
    - Dst: ip6_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:838,1
    - Dst: nd6_find_destination_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:841,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:844,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:849,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:850,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:856,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:857,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:861,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 334
    argCount: 2
    argNames:
    - p
    - inp
    argTypes:
    - struct pbuf*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 862
      start: 285
    functionDepth: 9
    functionLinenumber: 285
    functionLinenumberEnd: 862
    functionName: nd6_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 1
    functionsReached:
    - ip6_addr_cmp
    - ip6_addr_set
    - lwip_htons
    - LWIP_MIN
    - ip6_addr_isvalid
    - lwip_htonl
    - dns_setserver
    - netif_ip6_addr_state
    - nd6_new_neighbor_cache_entry
    - dns_getserver
    - nd6_duplicate_addr_detected
    - nd6_get_router
    - nd6_new_onlink_prefix
    - ND6_STATS_INC
    - ip6_current_dest_addr
    - htonl
    - pbuf_free
    - ip6_addr_istentative
    - ip6_addr_isduplicated
    - pbuf_copy_partial
    - netif_ip6_addr
    - ip6_current_src_addr
    - ip6_addr_isinvalid
    - ip6_addr_isany
    - nd6_process_autoconfig_prefix
    - nd6_new_router
    - MEMCPY
    - ND6_LLADDR_OPTION_SIZE
    - nd6_send_rs
    - ip_addr_copy_from_ip6
    - nd6_find_destination_cache_entry
    - nd6_send_na
    - ip6_addr_islinklocal
    - SMEMCPY
    - nd6_find_neighbor_cache_entry
    - nd6_get_onlink_prefix
    - ip6_addr_ismulticast
    - nd6_send_q
    - ip_addr_cmp
    linkageType: ''
    returnType: void
    signature: nd6_input(struct pbuf *p, struct netif *inp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nd6_free_neighbor_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:888,1
    - Dst: nd6_send_neighbor_cache_probe
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:892,1
    - Dst: nd6_send_q
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:898,1
    - Dst: nd6_free_neighbor_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:924,1
    - Dst: nd6_send_neighbor_cache_probe
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:928,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:987,1
    - Dst: ip6_addr_isinvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1001,1
    - Dst: netif_ip6_addr_isstatic
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1002,1
    - Dst: netif_ip6_addr_valid_life
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1003,1
    - Dst: netif_ip6_addr_set_valid_life
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1006,1
    - Dst: netif_ip6_addr_set_pref_life
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1007,1
    - Dst: netif_ip6_addr_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1008,1
    - Dst: ip6_addr_life_isinfinite
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1010,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1012,1
    - Dst: netif_ip6_addr_set_valid_life
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1013,1
    - Dst: netif_ip6_addr_pref_life
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1016,1
    - Dst: netif_ip6_addr_set_pref_life
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1020,1
    - Dst: netif_ip6_addr_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1022,1
    - Dst: ip6_addr_life_isinfinite
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1023,1
    - Dst: netif_ip6_addr_set_pref_life
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1025,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1032,1
    - Dst: ip6_addr_istentative
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1033,1
    - Dst: netif_ip6_addr_isstatic
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1040,1
    - Dst: netif_ip6_addr_pref_life
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1041,1
    - Dst: netif_ip6_addr_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1045,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1046,1
    - Dst: netif_is_link_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1046,1
    - Dst: netif_ip6_addr_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1048,1
    - Dst: nd6_send_ns
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1052,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1052,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1062,1
    - Dst: netif_is_link_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1063,1
    - Dst: ip6_addr_isinvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1064,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1064,1
    - Dst: ip6_addr_isduplicated
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1065,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1065,1
    - Dst: nd6_send_rs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1066,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 121
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 875
    functionDepth: 8
    functionLinenumber: 875
    functionLinenumberEnd: 1073
    functionName: nd6_tmr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 1
    functionsReached:
    - netif_ip6_addr_valid_life
    - nd6_send_ns
    - netif_ip6_addr_state
    - LWIP_ASSERT
    - netif_ip6_addr_set_valid_life
    - nd6_free_neighbor_cache_entry
    - netif_ip6_addr_set_state
    - ip6_addr_istentative
    - ip6_addr_isduplicated
    - netif_ip6_addr
    - ip6_addr_isinvalid
    - netif_ip6_addr_set_pref_life
    - netif_is_up
    - nd6_send_rs
    - netif_is_link_up
    - netif_ip6_addr_isstatic
    - ip6_addr_life_isinfinite
    - netif_ip6_addr_pref_life
    - nd6_send_neighbor_cache_probe
    - nd6_send_q
    linkageType: ''
    returnType: void
    signature: nd6_tmr(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nd6_send_ns
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - entry
    - flags
    argTypes:
    - struct nd6_neighbor_cache_entry*
    - u8_t
    constantsTouched: []
    func_position:
      end: 1084
      start: 1080
    functionDepth: 1
    functionLinenumber: 1080
    functionLinenumberEnd: 1084
    functionName: nd6_send_neighbor_cache_probe
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 1
    functionsReached:
    - nd6_send_ns
    linkageType: ''
    returnType: void
    signature: nd6_send_neighbor_cache_probe(struct nd6_neighbor_cache_entry *entry,
      u8_t flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_isvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1102,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1102,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1104,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1114,1
    - Dst: ND6_LLADDR_OPTION_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1114,1
    - Dst: ND6_LLADDR_OPTION_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1115,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1118,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1120,1
    - Dst: ip6_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1131,1
    - Dst: ND6_LLADDR_OPTION_LENGTH_ENCODE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1136,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1137,1
    - Dst: ip6_addr_set_solicitednode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1142,1
    - Dst: ip6_chksum_pseudo
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1148,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1154,1
    - Dst: ip6_output_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1155,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1157,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 3
    argNames:
    - netif
    - target_addr
    - flags
    argTypes:
    - struct netif*
    - ip6_addr_t*
    - u8_t
    constantsTouched: []
    func_position:
      end: 1158
      start: 1093
    functionDepth: 4
    functionLinenumber: 1093
    functionLinenumberEnd: 1158
    functionName: nd6_send_ns
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 2
    functionsReached:
    - netif_ip6_addr
    - pbuf_alloc
    - ND6_STATS_INC
    - ip6_addr_set
    - SMEMCPY
    - ip6_output_if
    - ND6_LLADDR_OPTION_SIZE
    - ip6_addr_set_solicitednode
    - ND6_LLADDR_OPTION_LENGTH_ENCODE
    - ip6_addr_isvalid
    - pbuf_free
    - ip6_chksum_pseudo
    - netif_ip6_addr_state
    linkageType: ''
    returnType: void
    signature: nd6_send_ns(struct netif *netif, const ip6_addr_t *target_addr, u8_t
      flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1182,1
    - Dst: ND6_LLADDR_OPTION_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1182,1
    - Dst: ND6_LLADDR_OPTION_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1183,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1186,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1188,1
    - Dst: ip6_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1203,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1207,1
    - Dst: ip6_addr_set_solicitednode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1211,1
    - Dst: ip6_addr_set_allnodes_linklocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1214,1
    - Dst: ip6_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1217,1
    - Dst: ip6_chksum_pseudo
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1222,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1228,1
    - Dst: ip6_output_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1229,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1231,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 3
    argNames:
    - netif
    - target_addr
    - flags
    argTypes:
    - struct netif*
    - ip6_addr_t*
    - u8_t
    constantsTouched: []
    func_position:
      end: 1232
      start: 1167
    functionDepth: 4
    functionLinenumber: 1167
    functionLinenumberEnd: 1232
    functionName: nd6_send_na
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 1
    functionsReached:
    - ip6_current_src_addr
    - pbuf_alloc
    - ND6_STATS_INC
    - ip6_addr_set
    - SMEMCPY
    - ip6_output_if
    - ND6_LLADDR_OPTION_SIZE
    - ip6_addr_set_solicitednode
    - pbuf_free
    - ip6_chksum_pseudo
    - ip6_addr_set_allnodes_linklocal
    linkageType: ''
    returnType: void
    signature: nd6_send_na(struct netif *netif, const ip6_addr_t *target_addr, u8_t
      flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_isvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1251,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1251,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1252,1
    - Dst: ip6_addr_set_allrouters_linklocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1258,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1264,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1266,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1283,1
    - Dst: ip6_chksum_pseudo
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1288,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1294,1
    - Dst: ip6_output_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1296,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1301
      start: 1240
    functionDepth: 4
    functionLinenumber: 1240
    functionLinenumberEnd: 1301
    functionName: nd6_send_rs
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 2
    functionsReached:
    - netif_ip6_addr
    - pbuf_alloc
    - ND6_STATS_INC
    - SMEMCPY
    - ip6_addr_set_allrouters_linklocal
    - ip6_output_if
    - ip6_addr_isvalid
    - ip6_chksum_pseudo
    - pbuf_free
    - netif_ip6_addr_state
    linkageType: ''
    returnType: err_t
    signature: nd6_send_rs(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ip6addr
    argTypes:
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 1321
      start: 1311
    functionDepth: 0
    functionLinenumber: 1311
    functionLinenumberEnd: 1321
    functionName: nd6_find_neighbor_cache_entry
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 1
    functionsReached:
    - ip6_addr_cmp
    linkageType: ''
    returnType: s8_t
    signature: nd6_find_neighbor_cache_entry(const ip6_addr_t *ip6addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nd6_free_neighbor_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1353,1
    - Dst: nd6_free_neighbor_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1362,1
    - Dst: nd6_free_neighbor_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1371,1
    - Dst: nd6_free_neighbor_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1389,1
    - Dst: nd6_free_neighbor_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1408,1
    - Dst: nd6_free_neighbor_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1425,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1332
    functionDepth: 1
    functionLinenumber: 1332
    functionLinenumberEnd: 1431
    functionName: nd6_new_neighbor_cache_entry
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 1
    functionsReached:
    - nd6_free_neighbor_cache_entry
    linkageType: ''
    returnType: s8_t
    signature: nd6_new_neighbor_cache_entry(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nd6_free_q
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1452,1
    - Dst: ip6_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1460,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - i
    argTypes:
    - s8_t
    constantsTouched: []
    func_position:
      end: 1461
      start: 1439
    functionDepth: 1
    functionLinenumber: 1439
    functionLinenumberEnd: 1461
    functionName: nd6_free_neighbor_cache_entry
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 2
    functionsReached:
    - ip6_addr_set_zero
    - nd6_free_q
    linkageType: ''
    returnType: void
    signature: nd6_free_neighbor_cache_entry(s8_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1475,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ip6addr
    argTypes:
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 1480
      start: 1470
    functionDepth: 0
    functionLinenumber: 1470
    functionLinenumberEnd: 1480
    functionName: nd6_find_destination_cache_entry
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 1
    functionsReached:
    - ip6_addr_cmp
    linkageType: ''
    returnType: s8_t
    signature: nd6_find_destination_cache_entry(const ip6_addr_t *ip6addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1497,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1489
    functionDepth: 0
    functionLinenumber: 1489
    functionLinenumberEnd: 1512
    functionName: nd6_new_destination_cache_entry
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 0
    functionsReached:
    - ip6_addr_isany
    linkageType: ''
    returnType: s8_t
    signature: nd6_new_destination_cache_entry(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_set_any
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1520
    functionDepth: 0
    functionLinenumber: 1520
    functionLinenumberEnd: 1528
    functionName: nd6_clear_destination_cache
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 0
    functionsReached:
    - ip6_addr_set_any
    linkageType: ''
    returnType: void
    signature: nd6_clear_destination_cache(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_netcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1547,1
    - Dst: ip6_addr_isvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1558,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1558,1
    - Dst: netif_ip6_addr_isstatic
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1559,1
    - Dst: ip6_addr_netcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1560,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1560,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - ip6addr
    - netif
    argTypes:
    - ip6_addr_t*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1565
      start: 1537
    functionDepth: 0
    functionLinenumber: 1537
    functionLinenumberEnd: 1565
    functionName: nd6_is_prefix_in_netif
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 0
    functionsReached:
    - netif_ip6_addr
    - netif_ip6_addr_isstatic
    - netif_ip6_addr_state
    - ip6_addr_isvalid
    - ip6_addr_netcmp
    linkageType: ''
    returnType: s8_t
    signature: nd6_is_prefix_in_netif(const ip6_addr_t *ip6addr, struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1588,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1599,1
    - Dst: netif_is_link_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1599,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1630,1
    - Dst: netif_is_link_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1630,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 2
    argNames:
    - ip6addr
    - netif
    argTypes:
    - ip6_addr_t*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1641
      start: 1581
    functionDepth: 0
    functionLinenumber: 1581
    functionLinenumberEnd: 1641
    functionName: nd6_select_router
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 1
    functionsReached:
    - LWIP_UNUSED_ARG
    - netif_is_up
    - netif_is_link_up
    linkageType: ''
    returnType: s8_t
    signature: nd6_select_router(const ip6_addr_t *ip6addr, struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_netcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1670,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1671,1
    - Dst: netif_is_link_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1671,1
    - Dst: nd6_select_router
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1677,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1679,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - ip6addr
    argTypes:
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 1685
      start: 1658
    functionDepth: 1
    functionLinenumber: 1658
    functionLinenumberEnd: 1685
    functionName: nd6_find_route
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 0
    functionsReached:
    - nd6_select_router
    - netif_is_up
    - netif_is_link_up
    - ip6_addr_netcmp
    - LWIP_ASSERT
    linkageType: ''
    returnType: struct netif
    signature: '*

      nd6_find_route(const ip6_addr_t *ip6addr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1703,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - router_addr
    - netif
    argTypes:
    - ip6_addr_t*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1710
      start: 1694
    functionDepth: 0
    functionLinenumber: 1694
    functionLinenumberEnd: 1710
    functionName: nd6_get_router
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 1
    functionsReached:
    - ip6_addr_cmp
    linkageType: ''
    returnType: s8_t
    signature: nd6_get_router(const ip6_addr_t *router_addr, struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nd6_find_neighbor_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1727,1
    - Dst: nd6_new_neighbor_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1730,1
    - Dst: ip6_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1735,1
    - Dst: nd6_send_neighbor_cache_probe
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1740,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - router_addr
    - netif
    argTypes:
    - ip6_addr_t*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1771
      start: 1719
    functionDepth: 2
    functionLinenumber: 1719
    functionLinenumberEnd: 1771
    functionName: nd6_new_router
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 1
    functionsReached:
    - ip6_addr_set
    - nd6_find_neighbor_cache_entry
    - nd6_send_neighbor_cache_probe
    - nd6_new_neighbor_cache_entry
    linkageType: ''
    returnType: s8_t
    signature: nd6_new_router(const ip6_addr_t *router_addr, struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_netcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1791,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - prefix
    - netif
    argTypes:
    - ip6_addr_t*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1799
      start: 1784
    functionDepth: 0
    functionLinenumber: 1784
    functionLinenumberEnd: 1799
    functionName: nd6_get_onlink_prefix
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 1
    functionsReached:
    - ip6_addr_netcmp
    linkageType: ''
    returnType: s8_t
    signature: nd6_get_onlink_prefix(const ip6_addr_t *prefix, struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1819,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - prefix
    - netif
    argTypes:
    - ip6_addr_t*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1826
      start: 1808
    functionDepth: 0
    functionLinenumber: 1808
    functionLinenumberEnd: 1826
    functionName: nd6_new_onlink_prefix
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 1
    functionsReached:
    - ip6_addr_set
    linkageType: ''
    returnType: s8_t
    signature: nd6_new_onlink_prefix(const ip6_addr_t *prefix, struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1861,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1864,1
    - Dst: nd6_find_destination_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1867,1
    - Dst: nd6_new_destination_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1873,1
    - Dst: ip6_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1883,1
    - Dst: ip6_addr_islinklocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1886,1
    - Dst: nd6_is_prefix_in_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1887,1
    - Dst: ip6_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1890,1
    - Dst: nd6_select_router
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1895,1
    - Dst: ip6_addr_set_any
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1898,1
    - Dst: ip6_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1902,1
    - Dst: ip6_addr_set_any
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1904,1
    - Dst: ip6_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1919,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1923,1
    - Dst: nd6_find_neighbor_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1925,1
    - Dst: nd6_new_neighbor_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1931,1
    - Dst: ip6_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1941,1
    - Dst: nd6_send_neighbor_cache_probe
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1947,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 62
    argCount: 2
    argNames:
    - ip6addr
    - netif
    argTypes:
    - ip6_addr_t*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1955
      start: 1842
    functionDepth: 2
    functionLinenumber: 1842
    functionLinenumberEnd: 1955
    functionName: nd6_get_next_hop_entry
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 0
    functionsReached:
    - ip6_addr_cmp
    - nd6_select_router
    - ip6_addr_islinklocal
    - ND6_STATS_INC
    - ip6_addr_set
    - ip6_addr_copy
    - nd6_find_neighbor_cache_entry
    - ip6_addr_set_any
    - nd6_send_neighbor_cache_probe
    - nd6_is_prefix_in_netif
    - nd6_new_destination_cache_entry
    - nd6_find_destination_cache_entry
    - nd6_new_neighbor_cache_entry
    linkageType: ''
    returnType: s8_t
    signature: nd6_get_next_hop_entry(const ip6_addr_t *ip6addr, struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1991,1
    - Dst: nd6_free_q
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:1998,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2000,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2003,1
    - Dst: pbuf_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2006,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2007,1
    - Dst: pbuf_ref
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2014,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2021,1
    - Dst: nd6_free_q
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2027,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2028,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2044,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2048,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2049,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2055,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2058,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2062,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 70
    argCount: 2
    argNames:
    - neighbor_index
    - q
    argTypes:
    - s8_t
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 2067
      start: 1964
    functionDepth: 4
    functionLinenumber: 1964
    functionLinenumberEnd: 2067
    functionName: nd6_queue_packet
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - pbuf_copy
    - pbuf_alloc
    - pbuf_ref
    - nd6_free_q
    - pbuf_free
    - memp_malloc
    linkageType: ''
    returnType: err_t
    signature: nd6_queue_packet(s8_t neighbor_index, struct pbuf *q)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2079,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2080,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2084,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2085,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2086,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct nd6_q_entry*
    constantsTouched: []
    func_position:
      end: 2088
      start: 2075
    functionDepth: 4
    functionLinenumber: 2075
    functionLinenumberEnd: 2088
    functionName: nd6_free_q
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 2
    functionsReached:
    - memp_free
    - pbuf_free
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: nd6_free_q(struct nd6_q_entry *q)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2118,1
    - Dst: output_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2120,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2122,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2124,1
    - Dst: ip6_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2131,1
    - Dst: output_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2133,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - i
    argTypes:
    - s8_t
    constantsTouched: []
    func_position:
      end: 2139
      start: 2096
    functionDepth: 4
    functionLinenumber: 2096
    functionLinenumberEnd: 2139
    functionName: nd6_send_q
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 2
    functionsReached:
    - ip6_addr_set
    - memp_free
    - output_ip6
    - pbuf_free
    linkageType: ''
    returnType: void
    signature: nd6_send_q(s8_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nd6_get_next_hop_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2169,1
    - Dst: nd6_queue_packet
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2193,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - netif
    - q
    - ip6addr
    - hwaddrp
    argTypes:
    - struct netif*
    - struct pbuf*
    - ip6_addr_t*
    - u8_t**
    constantsTouched: []
    func_position:
      end: 2194
      start: 2163
    functionDepth: 5
    functionLinenumber: 2163
    functionLinenumberEnd: 2194
    functionName: nd6_get_next_hop_addr_or_queue
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 0
    functionsReached:
    - nd6_get_next_hop_entry
    - nd6_queue_packet
    linkageType: ''
    returnType: err_t
    signature: nd6_get_next_hop_addr_or_queue(struct netif *netif, struct pbuf *q,
      const ip6_addr_t *ip6addr, const u8_t **hwaddrp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nd6_find_destination_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ip6addr
    - netif
    argTypes:
    - ip6_addr_t*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 2221
      start: 2204
    functionDepth: 1
    functionLinenumber: 2204
    functionLinenumberEnd: 2221
    functionName: nd6_get_destination_mtu
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 0
    functionsReached:
    - nd6_find_destination_cache_entry
    linkageType: ''
    returnType: u16_t
    signature: nd6_get_destination_mtu(const ip6_addr_t *ip6addr, struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2240,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2242,1
    - Dst: nd6_find_destination_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2244,1
    - Dst: ip6_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2251,1
    - Dst: ND6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2253,1
    - Dst: nd6_find_neighbor_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2255,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - ip6addr
    argTypes:
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 2269
      start: 2234
    functionDepth: 1
    functionLinenumber: 2234
    functionLinenumberEnd: 2269
    functionName: nd6_reachability_hint
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 1
    functionsReached:
    - ip6_addr_cmp
    - nd6_find_neighbor_cache_entry
    - nd6_find_destination_cache_entry
    - ND6_STATS_INC
    linkageType: ''
    returnType: void
    signature: nd6_reachability_hint(const ip6_addr_t *ip6addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nd6_free_neighbor_cache_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2302,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 2305
      start: 2277
    functionDepth: 2
    functionLinenumber: 2277
    functionLinenumberEnd: 2305
    functionName: nd6_cleanup_netif
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 1
    functionsReached:
    - nd6_free_neighbor_cache_entry
    linkageType: ''
    returnType: void
    signature: nd6_cleanup_netif(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2321,1
    - Dst: ip6_addr_set_solicitednode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2330,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2330,1
    - Dst: mld6_joingroup_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2333,1
    - Dst: mld6_leavegroup_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c:2335,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - netif
    - addr_idx
    - new_state
    argTypes:
    - struct netif*
    - s8_t
    - u8_t
    constantsTouched: []
    func_position:
      end: 2338
      start: 2316
    functionDepth: 1
    functionLinenumber: 2316
    functionLinenumberEnd: 2338
    functionName: nd6_adjust_mld_membership
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
    functionUses: 1
    functionsReached:
    - netif_ip6_addr
    - mld6_leavegroup_netif
    - ip6_addr_set_solicitednode
    - mld6_joingroup_netif
    - netif_ip6_addr_state
    linkageType: ''
    returnType: void
    signature: nd6_adjust_mld_membership(struct netif *netif, s8_t addr_idx, u8_t
      new_state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_mld6_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:99,1
    - Dst: netif_set_client_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:101,1
    - Dst: struct netif*::mld_mac_filter
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:108,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 122
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 122
    functionName: mld6_stop
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c
    functionUses: 1
    functionsReached:
    - netif_mld6_data
    - netif_set_client_data
    - memp_free
    - struct netif*::mld_mac_filter
    linkageType: ''
    returnType: err_t
    signature: mld6_stop(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_mld6_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:132,1
    - Dst: mld6_delayed_report
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 138
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 138
    functionName: mld6_report_groups
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c
    functionUses: 1
    functionsReached:
    - netif_mld6_data
    - mld6_delayed_report
    linkageType: ''
    returnType: void
    signature: mld6_report_groups(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_mld6_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:151,1
    - Dst: ip6_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ifp
    - addr
    argTypes:
    - struct netif*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: mld6_lookfor_group
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c
    functionUses: 0
    functionsReached:
    - netif_mld6_data
    - ip6_addr_cmp
    linkageType: ''
    returnType: struct mld_group
    signature: '*

      mld6_lookfor_group(struct netif *ifp, const ip6_addr_t *addr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:176,1
    - Dst: ip6_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:178,1
    - Dst: netif_mld6_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:183,1
    - Dst: netif_set_client_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ifp
    - addr
    argTypes:
    - struct netif*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 189
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 189
    functionName: mld6_new_group
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c
    functionUses: 0
    functionsReached:
    - ip6_addr_set
    - netif_set_client_data
    - netif_mld6_data
    - memp_malloc
    linkageType: ''
    returnType: struct mld_group
    signature: '*

      mld6_new_group(struct netif *ifp, const ip6_addr_t *addr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_mld6_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:203,1
    - Dst: netif_set_client_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:204,1
    - Dst: netif_mld6_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - netif
    - group
    argTypes:
    - struct netif*
    - struct mld_group*
    constantsTouched: []
    func_position:
      end: 221
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 221
    functionName: mld6_remove_group
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c
    functionUses: 0
    functionsReached:
    - netif_mld6_data
    - netif_set_client_data
    linkageType: ''
    returnType: err_t
    signature: mld6_remove_group(struct netif *netif, struct mld_group *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MLD6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:236,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:241,1
    - Dst: MLD6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:242,1
    - Dst: MLD6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:243,1
    - Dst: ip6_addr_isallnodes_linklocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:252,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:252,1
    - Dst: ip6_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:253,1
    - Dst: MLD6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:254,1
    - Dst: netif_mld6_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:256,1
    - Dst: ip6_addr_ismulticast_iflocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:258,1
    - Dst: ip6_addr_isallnodes_linklocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:259,1
    - Dst: mld6_delayed_report
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:260,1
    - Dst: MLD6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:268,1
    - Dst: mld6_lookfor_group
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:269,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:269,1
    - Dst: mld6_delayed_report
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:272,1
    - Dst: MLD6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:280,1
    - Dst: mld6_lookfor_group
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:281,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:281,1
    - Dst: MLD6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:295,1
    - Dst: MLD6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:296,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:300,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 2
    argNames:
    - p
    - inp
    argTypes:
    - struct pbuf*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 301
      start: 230
    functionDepth: 4
    functionLinenumber: 230
    functionLinenumberEnd: 301
    functionName: mld6_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c
    functionUses: 1
    functionsReached:
    - mld6_lookfor_group
    - MLD6_STATS_INC
    - netif_mld6_data
    - ip6_addr_isany
    - ip6_current_dest_addr
    - ip6_addr_ismulticast_iflocal
    - pbuf_free
    - ip6_addr_isallnodes_linklocal
    - mld6_delayed_report
    linkageType: ''
    returnType: void
    signature: mld6_input(struct pbuf *p, struct netif *inp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:322,1
    - Dst: netif_get_ip6_addr_match
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:323,1
    - Dst: mld6_joingroup_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:324,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - srcaddr
    - groupaddr
    argTypes:
    - ip6_addr_t*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 335
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 335
    functionName: mld6_joingroup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c
    functionUses: 0
    functionsReached:
    - netif_get_ip6_addr_match
    - ip6_addr_isany
    - mld6_joingroup_netif
    linkageType: ''
    returnType: err_t
    signature: mld6_joingroup(const ip6_addr_t *srcaddr, const ip6_addr_t *groupaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mld6_lookfor_group
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:352,1
    - Dst: mld6_new_group
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:356,1
    - Dst: struct netif*::mld_mac_filter
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:363,1
    - Dst: MLD6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:371,1
    - Dst: mld6_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:372,1
    - Dst: mld6_delayed_report
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - netif
    - groupaddr
    argTypes:
    - struct netif*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 379
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 379
    functionName: mld6_joingroup_netif
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c
    functionUses: 3
    functionsReached:
    - mld6_lookfor_group
    - MLD6_STATS_INC
    - mld6_new_group
    - mld6_send
    - struct netif*::mld_mac_filter
    - mld6_delayed_report
    linkageType: ''
    returnType: err_t
    signature: mld6_joingroup_netif(struct netif *netif, const ip6_addr_t *groupaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:400,1
    - Dst: netif_get_ip6_addr_match
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:401,1
    - Dst: mld6_leavegroup_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:402,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - srcaddr
    - groupaddr
    argTypes:
    - ip6_addr_t*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 413
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 413
    functionName: mld6_leavegroup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c
    functionUses: 0
    functionsReached:
    - netif_get_ip6_addr_match
    - ip6_addr_isany
    - mld6_leavegroup_netif
    linkageType: ''
    returnType: err_t
    signature: mld6_leavegroup(const ip6_addr_t *srcaddr, const ip6_addr_t *groupaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mld6_lookfor_group
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:429,1
    - Dst: mld6_remove_group
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:437,1
    - Dst: MLD6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:441,1
    - Dst: mld6_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:442,1
    - Dst: struct netif*::mld_mac_filter
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:447,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:455,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - netif
    - groupaddr
    argTypes:
    - struct netif*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 467
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 467
    functionName: mld6_leavegroup_netif
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c
    functionUses: 3
    functionsReached:
    - mld6_lookfor_group
    - MLD6_STATS_INC
    - memp_free
    - mld6_send
    - struct netif*::mld_mac_filter
    - mld6_remove_group
    linkageType: ''
    returnType: err_t
    signature: mld6_leavegroup_netif(struct netif *netif, const ip6_addr_t *groupaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:483,1
    - Dst: netif_mld6_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:487,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:491,1
    - Dst: MLD6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:495,1
    - Dst: mld6_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:496,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:506,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - none
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 510
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 510
    functionName: mld6_tmr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - MLD6_STATS_INC
    - sys_timeout
    - netif_mld6_data
    - mld6_send
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: mld6_tmr(void *none)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_RAND
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:530,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:545,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - group
    - maxresp
    argTypes:
    - struct mld_group*
    - u16_t
    constantsTouched: []
    func_position:
      end: 548
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 548
    functionName: mld6_delayed_report
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c
    functionUses: 3
    functionsReached:
    - LWIP_RAND
    - sys_timeout
    linkageType: ''
    returnType: void
    signature: mld6_delayed_report(struct mld_group *group, u16_t maxresp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:567,1
    - Dst: MLD6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:569,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:574,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:575,1
    - Dst: MLD6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:576,1
    - Dst: ip6_addr_isvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:581,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:581,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:587,1
    - Dst: ip6_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:599,1
    - Dst: ip6_chksum_pseudo
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:603,1
    - Dst: ip6_options_add_hbh_ra
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:609,1
    - Dst: MLD6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:617,1
    - Dst: ip6_output_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:618,1
    - Dst: ip6_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:618,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c:620,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 3
    argNames:
    - netif
    - group
    - type
    argTypes:
    - struct netif*
    - struct mld_group*
    - u8_t
    constantsTouched: []
    func_position:
      end: 621
      start: 559
    functionDepth: 4
    functionLinenumber: 559
    functionLinenumberEnd: 621
    functionName: mld6_send
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c
    functionUses: 3
    functionsReached:
    - ip6_options_add_hbh_ra
    - netif_ip6_addr
    - MLD6_STATS_INC
    - pbuf_alloc
    - ip6_addr_set
    - ip6_output_if
    - ip6_addr_isany
    - pbuf_header
    - ip6_addr_isvalid
    - pbuf_free
    - ip6_chksum_pseudo
    - netif_ip6_addr_state
    linkageType: ''
    returnType: void
    signature: mld6_send(struct netif *netif, struct mld_group *group, u8_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:106,1
    - Dst: netif_is_link_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:106,1
    - Dst: ip6_addr_islinklocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:113,1
    - Dst: ip6_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:114,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:116,1
    - Dst: netif_is_link_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:117,1
    - Dst: ip6_addr_isvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:126,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:126,1
    - Dst: ip6_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:127,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:127,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:134,1
    - Dst: netif_is_link_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:135,1
    - Dst: LWIP_HOOK_IP6_ROUTE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:143,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:157,1
    - Dst: netif_is_link_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:157,1
    - Dst: ip6_addr_isvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:161,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:161,1
    - Dst: ip6_addr_netcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:162,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:162,1
    - Dst: netif_ip6_addr_isstatic
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:163,1
    - Dst: ip6_addr_nethostcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:164,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:164,1
    - Dst: ip6_static_route
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:171,1
    - Dst: nd6_find_route
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:179,1
    - Dst: ip6_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:187,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:189,1
    - Dst: netif_is_link_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:189,1
    - Dst: ip6_addr_isvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:193,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:193,1
    - Dst: ip6_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:194,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:194,1
    - Dst: ip6_addr_isloopback
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:204,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:206,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:211,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:220,1
    - Dst: netif_is_link_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:220,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 74
    argCount: 2
    argNames:
    - src
    - dest
    argTypes:
    - ip6_addr_t*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 224
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 224
    functionName: ip6_route
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c
    functionUses: 1
    functionsReached:
    - ip6_addr_cmp
    - netif_ip6_addr
    - netif_ip6_addr_isstatic
    - ip6_addr_netcmp
    - ip6_static_route
    - ip6_addr_islinklocal
    - ip6_addr_isloopback
    - netif_is_up
    - ip6_addr_isany
    - ip6_addr_isvalid
    - ip6_addr_nethostcmp
    - LWIP_HOOK_IP6_ROUTE
    - nd6_find_route
    - netif_ip6_addr_state
    - netif_is_link_up
    linkageType: ''
    returnType: struct netif
    signature: '*

      ip6_route(const ip6_addr_t *src, const ip6_addr_t *dest)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_isglobal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:260,1
    - Dst: ip6_addr_islinklocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:262,1
    - Dst: ip6_addr_isloopback
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:262,1
    - Dst: ip6_addr_isuniquelocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:264,1
    - Dst: ip6_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:266,1
    - Dst: ip6_addr_multicast_scope
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:267,1
    - Dst: ip6_addr_issitelocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:268,1
    - Dst: ip6_addr_isvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:279,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:279,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:283,1
    - Dst: ip6_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:285,1
    - Dst: ip6_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:285,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:286,1
    - Dst: ip6_addr_isglobal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:290,1
    - Dst: ip6_addr_islinklocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:292,1
    - Dst: ip6_addr_isuniquelocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:294,1
    - Dst: ip6_addr_issitelocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:296,1
    - Dst: ip6_addr_ispreferred
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:302,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:302,1
    - Dst: ip6_addr_netcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:304,1
    - Dst: ip6_addr_net48cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:307,1
    - Dst: ip6_addr_nethostcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:313,1
    - Dst: netif_ip_addr6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:314,1
    - Dst: netif_ip_addr6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:322,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 62
    argCount: 2
    argNames:
    - netif
    - dest
    argTypes:
    - struct netif*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 330
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 330
    functionName: ip6_select_source_address
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c
    functionUses: 3
    functionsReached:
    - netif_ip6_addr
    - LWIP_DEBUGF
    - ip6_addr_isloopback
    - ip6_addr_netcmp
    - ip6_addr_islinklocal
    - ip6_addr_net48cmp
    - ip6_addr_isany
    - netif_ip_addr6
    - ip6_addr_issitelocal
    - ip6_addr_ismulticast
    - ip6_addr_isvalid
    - ip6_addr_isuniquelocal
    - ip6_addr_ispreferred
    - ip6_addr_isglobal
    - ip6_addr_multicast_scope
    - ip6_addr_nethostcmp
    - netif_ip6_addr_state
    linkageType: ''
    returnType: ip_addr_t
    signature: '*

      ip6_select_source_address(struct netif *netif, const ip6_addr_t *dest)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_islinklocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:348,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:348,1
    - Dst: ip6_addr_isloopback
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:349,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:349,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:350,1
    - Dst: IP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:351,1
    - Dst: IP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:352,1
    - Dst: ip6_route
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:357,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:357,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:359,1
    - Dst: IP6_ADDR_BLOCK1
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:360,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:360,1
    - Dst: IP6_ADDR_BLOCK2
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:361,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:361,1
    - Dst: IP6_ADDR_BLOCK3
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:362,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:362,1
    - Dst: IP6_ADDR_BLOCK4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:363,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:363,1
    - Dst: IP6_ADDR_BLOCK5
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:364,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:364,1
    - Dst: IP6_ADDR_BLOCK6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:365,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:365,1
    - Dst: IP6_ADDR_BLOCK7
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:366,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:366,1
    - Dst: IP6_ADDR_BLOCK8
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:367,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:367,1
    - Dst: IP6H_NEXTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:370,1
    - Dst: icmp6_dest_unreach
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:371,1
    - Dst: IP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:374,1
    - Dst: IP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:375,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:381,1
    - Dst: IP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:382,1
    - Dst: IP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:383,1
    - Dst: IP6H_HOPLIM_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:388,1
    - Dst: IP6H_HOPLIM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:388,1
    - Dst: IP6H_HOPLIM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:390,1
    - Dst: IP6H_NEXTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:393,1
    - Dst: icmp6_time_exceeded
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:394,1
    - Dst: IP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:397,1
    - Dst: IP6H_NEXTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:404,1
    - Dst: icmp6_packet_too_big
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:405,1
    - Dst: IP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:408,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:412,1
    - Dst: IP6_ADDR_BLOCK1
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:413,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:413,1
    - Dst: IP6_ADDR_BLOCK2
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:414,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:414,1
    - Dst: IP6_ADDR_BLOCK3
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:415,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:415,1
    - Dst: IP6_ADDR_BLOCK4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:416,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:416,1
    - Dst: IP6_ADDR_BLOCK5
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:417,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:417,1
    - Dst: IP6_ADDR_BLOCK6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:418,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:418,1
    - Dst: IP6_ADDR_BLOCK7
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:419,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:419,1
    - Dst: IP6_ADDR_BLOCK8
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:420,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:420,1
    - Dst: struct netif*::output_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:423,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:423,1
    - Dst: IP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:424,1
    - Dst: IP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:425,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 3
    argNames:
    - p
    - iphdr
    - inp
    argTypes:
    - struct pbuf*
    - struct ip6_hdr*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 427
      start: 342
    functionDepth: 3
    functionLinenumber: 342
    functionLinenumberEnd: 427
    functionName: ip6_forward
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c
    functionUses: 0
    functionsReached:
    - IP6H_NEXTH
    - icmp6_dest_unreach
    - IP6H_HOPLIM_SET
    - IP6_ADDR_BLOCK1
    - LWIP_DEBUGF
    - ip6_addr_isloopback
    - IP6_ADDR_BLOCK8
    - ip6_route
    - icmp6_packet_too_big
    - ip6_current_dest_addr
    - IP6_ADDR_BLOCK3
    - IP6_ADDR_BLOCK5
    - IP6_ADDR_BLOCK7
    - icmp6_time_exceeded
    - IP6H_HOPLIM
    - IP6_ADDR_BLOCK6
    - IP6_ADDR_BLOCK2
    - struct netif*::output_ip6
    - IP6_STATS_INC
    - ip6_addr_islinklocal
    - IP6_ADDR_BLOCK4
    linkageType: ''
    returnType: void
    signature: ip6_forward(struct pbuf *p, struct ip6_hdr *iphdr, struct netif *inp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT_CORE_LOCKED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:457,1
    - Dst: IP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:459,1
    - Dst: IP6H_V
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:463,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:464,1
    - Dst: IP6H_V
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:465,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:466,1
    - Dst: IP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:467,1
    - Dst: IP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:468,1
    - Dst: LWIP_HOOK_IP6_INPUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:473,1
    - Dst: IP6H_PLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:480,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:482,1
    - Dst: IP6H_PLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:486,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:487,1
    - Dst: IP6H_PLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:489,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:492,1
    - Dst: IP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:493,1
    - Dst: IP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:494,1
    - Dst: pbuf_realloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:500,1
    - Dst: IP6H_PLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:500,1
    - Dst: ip_addr_copy_from_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:503,1
    - Dst: ip_addr_copy_from_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:504,1
    - Dst: ip6_addr_isipv4mappedipv6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:508,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:508,1
    - Dst: ip6_addr_isipv4mappedipv6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:509,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:509,1
    - Dst: ip6_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:510,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:510,1
    - Dst: IP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:511,1
    - Dst: IP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:512,1
    - Dst: ip6_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:524,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:524,1
    - Dst: ip6_addr_isallnodes_iflocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:526,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:526,1
    - Dst: ip6_addr_isallnodes_linklocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:527,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:527,1
    - Dst: ip6_addr_isallnodes_networklocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:528,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:528,1
    - Dst: ip6_addr_isallrouters_linklocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:529,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:529,1
    - Dst: ip6_addr_isvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:542,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:542,1
    - Dst: ip6_addr_cmp_solicitednode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:543,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:543,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:543,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:545,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 2
    argNames:
    - p
    - inp
    argTypes:
    - struct pbuf*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 555
      start: 444
    functionDepth: 4
    functionLinenumber: 444
    functionLinenumberEnd: 555
    functionName: ip6_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c
    functionUses: 1
    functionsReached:
    - ip6_addr_isvalid
    - ip6_addr_cmp_solicitednode
    - ip6_addr_isallrouters_linklocal
    - netif_ip6_addr_state
    - ip6_addr_isallnodes_iflocal
    - LWIP_DEBUGF
    - IP6H_PLEN
    - LWIP_HOOK_IP6_INPUT
    - IP6H_V
    - ip6_current_dest_addr
    - LWIP_ASSERT_CORE_LOCKED
    - pbuf_free
    - ip6_addr_isipv4mappedipv6
    - ip6_addr_isallnodes_linklocal
    - netif_ip6_addr
    - ip6_addr_isallnodes_networklocal
    - ip_addr_copy_from_ip6
    - pbuf_realloc
    - IP6_STATS_INC
    - ip_2_ip6
    - ip6_addr_ismulticast
    linkageType: ''
    returnType: err_t
    signature: ip6_input(struct pbuf *p, struct netif *inp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:888,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:889,1
    - Dst: ip6_select_source_address
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:889,1
    - Dst: ip6_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:890,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:892,1
    - Dst: IP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:893,1
    - Dst: ip6_output_if_src
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:898,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 7
    argNames:
    - p
    - src
    - dest
    - hl
    - tc
    - nexth
    - netif
    argTypes:
    - struct pbuf*
    - ip6_addr_t*
    - ip6_addr_t*
    - u8_t
    - u8_t
    - u8_t
    - struct netif*
    constantsTouched: []
    func_position:
      end: 899
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 899
    functionName: ip6_output_if
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c
    functionUses: 6
    functionsReached:
    - ip_2_ip6
    - LWIP_DEBUGF
    - ip6_select_source_address
    - ip6_addr_isany
    - IP6_STATS_INC
    - ip6_output_if_src
    linkageType: ''
    returnType: err_t
    signature: "ip6_output_if(struct pbuf *p, const ip6_addr_t *src, const ip6_addr_t
      *dest,\n             u8_t hl, u8_t tc,\n             u8_t nexth, struct netif
      *netif)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_IP_CHECK_PBUF_REF_COUNT_FOR_TX
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1020,1
    - Dst: ip6_route
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1023,1
    - Dst: ip6_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1027,1
    - Dst: ip6_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1028,1
    - Dst: ip6_route
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1029,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1033,1
    - Dst: IP6_ADDR_BLOCK1
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1034,1
    - Dst: IP6_ADDR_BLOCK2
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1035,1
    - Dst: IP6_ADDR_BLOCK3
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1036,1
    - Dst: IP6_ADDR_BLOCK4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1037,1
    - Dst: IP6_ADDR_BLOCK5
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1038,1
    - Dst: IP6_ADDR_BLOCK6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1039,1
    - Dst: IP6_ADDR_BLOCK7
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1040,1
    - Dst: IP6_ADDR_BLOCK8
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1041,1
    - Dst: IP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1042,1
    - Dst: netif_apply_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1046,1
    - Dst: ip6_output_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1047,1
    - Dst: netif_apply_pcb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1048,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 7
    argNames:
    - p
    - src
    - dest
    - hl
    - tc
    - nexth
    - pcb
    argTypes:
    - struct pbuf*
    - ip6_addr_t*
    - ip6_addr_t*
    - u8_t
    - u8_t
    - u8_t
    - struct ip_pcb*
    constantsTouched: []
    func_position:
      end: 1051
      start: 1010
    functionDepth: 3
    functionLinenumber: 1010
    functionLinenumberEnd: 1051
    functionName: ip6_output
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - netif_apply_pcb
    - IP6_ADDR_BLOCK8
    - IP6_ADDR_BLOCK6
    - ip6_addr_copy
    - ip6_route
    - IP6_ADDR_BLOCK2
    - IP6_ADDR_BLOCK3
    - IP6_ADDR_BLOCK4
    - IP6_ADDR_BLOCK5
    - ip6_output_if
    - IP6_ADDR_BLOCK7
    - IP6_STATS_INC
    - IP6_ADDR_BLOCK1
    - LWIP_IP_CHECK_PBUF_REF_COUNT_FOR_TX
    linkageType: ''
    returnType: err_t
    signature: "ip6_output(struct pbuf *p, const ip6_addr_t *src, const ip6_addr_t
      *dest,\n          u8_t hl, u8_t tc, u8_t nexth, struct ip_pcb *pcb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_IP_CHECK_PBUF_REF_COUNT_FOR_TX
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1083,1
    - Dst: ip6_route
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1086,1
    - Dst: ip6_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1090,1
    - Dst: ip6_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1091,1
    - Dst: ip6_route
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1092,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1096,1
    - Dst: IP6_ADDR_BLOCK1
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1097,1
    - Dst: IP6_ADDR_BLOCK2
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1098,1
    - Dst: IP6_ADDR_BLOCK3
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1099,1
    - Dst: IP6_ADDR_BLOCK4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1100,1
    - Dst: IP6_ADDR_BLOCK5
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1101,1
    - Dst: IP6_ADDR_BLOCK6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1102,1
    - Dst: IP6_ADDR_BLOCK7
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1103,1
    - Dst: IP6_ADDR_BLOCK8
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1104,1
    - Dst: IP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1105,1
    - Dst: NETIF_SET_HWADDRHINT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1109,1
    - Dst: ip6_output_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1110,1
    - Dst: NETIF_SET_HWADDRHINT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 7
    argNames:
    - p
    - src
    - dest
    - hl
    - tc
    - nexth
    - addr_hint
    argTypes:
    - struct pbuf*
    - ip6_addr_t*
    - ip6_addr_t*
    - u8_t
    - u8_t
    - u8_t
    - u8_t*
    constantsTouched: []
    func_position:
      end: 1114
      start: 1074
    functionDepth: 3
    functionLinenumber: 1074
    functionLinenumberEnd: 1114
    functionName: ip6_output_hinted
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - IP6_ADDR_BLOCK8
    - IP6_ADDR_BLOCK6
    - ip6_addr_copy
    - ip6_route
    - IP6_ADDR_BLOCK2
    - IP6_ADDR_BLOCK3
    - IP6_ADDR_BLOCK4
    - IP6_ADDR_BLOCK5
    - ip6_output_if
    - IP6_ADDR_BLOCK7
    - IP6_STATS_INC
    - IP6_ADDR_BLOCK1
    - NETIF_SET_HWADDRHINT
    - LWIP_IP_CHECK_PBUF_REF_COUNT_FOR_TX
    linkageType: ''
    returnType: err_t
    signature: "ip6_output_hinted(struct pbuf *p, const ip6_addr_t *src, const ip6_addr_t
      *dest,\n          u8_t hl, u8_t tc, u8_t nexth, u8_t *addr_hint)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1134,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1135,1
    - Dst: IP6_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - p
    - nexth
    - value
    argTypes:
    - struct pbuf*
    - u8_t
    - u8_t
    constantsTouched: []
    func_position:
      end: 1152
      start: 1128
    functionDepth: 2
    functionLinenumber: 1128
    functionLinenumberEnd: 1152
    functionName: ip6_options_add_hbh_ra
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - pbuf_header
    - IP6_STATS_INC
    linkageType: ''
    returnType: err_t
    signature: ip6_options_add_hbh_ra(struct pbuf *p, u8_t nexth, u8_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1164,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1165,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1166,1
    - Dst: IP6H_V
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1167,1
    - Dst: IP6H_TC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1168,1
    - Dst: IP6H_FL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1169,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1170,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1171,1
    - Dst: IP6H_PLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1172,1
    - Dst: IP6H_NEXTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1173,1
    - Dst: IP6H_HOPLIM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1174,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1175,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1176,1
    - Dst: IP6_ADDR_BLOCK1
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1177,1
    - Dst: IP6_ADDR_BLOCK2
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1178,1
    - Dst: IP6_ADDR_BLOCK3
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1179,1
    - Dst: IP6_ADDR_BLOCK4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1180,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1181,1
    - Dst: IP6_ADDR_BLOCK5
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1182,1
    - Dst: IP6_ADDR_BLOCK6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1183,1
    - Dst: IP6_ADDR_BLOCK7
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1184,1
    - Dst: IP6_ADDR_BLOCK8
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1185,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1186,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1187,1
    - Dst: IP6_ADDR_BLOCK1
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1188,1
    - Dst: IP6_ADDR_BLOCK2
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1189,1
    - Dst: IP6_ADDR_BLOCK3
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1190,1
    - Dst: IP6_ADDR_BLOCK4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1191,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1192,1
    - Dst: IP6_ADDR_BLOCK5
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1193,1
    - Dst: IP6_ADDR_BLOCK6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1194,1
    - Dst: IP6_ADDR_BLOCK7
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1195,1
    - Dst: IP6_ADDR_BLOCK8
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1196,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c:1197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 1198
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1198
    functionName: ip6_debug_print
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - IP6H_FL
    - IP6H_TC
    - IP6H_PLEN
    - IP6H_NEXTH
    - IP6H_HOPLIM
    - IP6H_V
    - IP6_ADDR_BLOCK6
    - IP6_ADDR_BLOCK2
    - IP6_ADDR_BLOCK3
    - IP6_ADDR_BLOCK4
    - IP6_ADDR_BLOCK5
    - IP6_ADDR_BLOCK8
    - IP6_ADDR_BLOCK7
    - IP6_ADDR_BLOCK1
    linkageType: ''
    returnType: void
    signature: ip6_debug_print(struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ethip6.c:92,1
    - Dst: ethernet_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ethip6.c:102,1
    - Dst: LWIP_HOOK_ETHIP6_GET_GW
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ethip6.c:111,1
    - Dst: nd6_get_next_hop_addr_or_queue
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ethip6.c:122,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ethip6.c:133,1
    - Dst: ethernet_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ethip6.c:134,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - netif
    - q
    - ip6addr
    argTypes:
    - struct netif*
    - struct pbuf*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 135
      start: 81
    functionDepth: 6
    functionLinenumber: 81
    functionLinenumberEnd: 135
    functionName: ethip6_output
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ethip6.c
    functionUses: 0
    functionsReached:
    - LWIP_HOOK_ETHIP6_GET_GW
    - SMEMCPY
    - ethernet_output
    - nd6_get_next_hop_addr_or_queue
    - ip6_addr_ismulticast
    linkageType: ''
    returnType: err_t
    signature: ethip6_output(struct netif *netif, struct pbuf *q, const ip6_addr_t
      *ip6addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: ip6_reass_helper
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: ip6_reass_helper
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:116,1
    - Dst: ip6_reass_free_complete_datagram
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 136
    functionName: ip6_reass_tmr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c
    functionUses: 0
    functionsReached:
    - ip6_reass_free_complete_datagram
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: ip6_reass_tmr(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_header_force
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:163,1
    - Dst: IPV6_FRAG_HDRREF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:163,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:164,1
    - Dst: icmp6_time_exceeded
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:167,1
    - Dst: pbuf_clen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:169,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:170,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:172,1
    - Dst: pbuf_clen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:185,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:186,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:188,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:206,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:209,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 1
    argNames:
    - ipr
    argTypes:
    - struct ip6_reassdata*
    constantsTouched: []
    func_position:
      end: 211
      start: 145
    functionDepth: 4
    functionLinenumber: 145
    functionLinenumberEnd: 211
    functionName: ip6_reass_free_complete_datagram
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c
    functionUses: 1
    functionsReached:
    - icmp6_time_exceeded
    - memp_free
    - pbuf_header_force
    - pbuf_clen
    - IPV6_FRAG_HDRREF
    - pbuf_free
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: ip6_reass_free_complete_datagram(struct ip6_reassdata *ipr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_reass_free_complete_datagram
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:245,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - ipr
    - pbufs_needed
    argTypes:
    - struct ip6_reassdata*
    - int
    constantsTouched: []
    func_position:
      end: 248
      start: 222
    functionDepth: 5
    functionLinenumber: 222
    functionLinenumberEnd: 248
    functionName: ip6_reass_remove_oldest_datagram
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c
    functionUses: 0
    functionsReached:
    - ip6_reass_free_complete_datagram
    linkageType: ''
    returnType: void
    signature: ip6_reass_remove_oldest_datagram(struct ip6_reassdata *ipr, int pbufs_needed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IP6_FRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:269,1
    - Dst: ip6_current_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:271,1
    - Dst: IP6_FRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:273,1
    - Dst: IP6_FRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:274,1
    - Dst: pbuf_clen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:280,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:282,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:287,1
    - Dst: ip6_current_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:287,1
    - Dst: ip6_current_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:288,1
    - Dst: ip6_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:298,1
    - Dst: ip6_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:298,1
    - Dst: IPV6_FRAG_HDRREF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:298,1
    - Dst: ip6_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:299,1
    - Dst: ip6_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:299,1
    - Dst: IPV6_FRAG_HDRREF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:299,1
    - Dst: IP6_FRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:300,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:308,1
    - Dst: ip6_reass_remove_oldest_datagram
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:312,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:313,1
    - Dst: IP6_FRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:324,1
    - Dst: IP6_FRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:325,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:330,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:341,1
    - Dst: ip6_current_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:341,1
    - Dst: ip6_reass_remove_oldest_datagram
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:357,1
    - Dst: IP6_FRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:370,1
    - Dst: IP6_FRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:371,1
    - Dst: pbuf_header_force
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:381,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:382,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:383,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:386,1
    - Dst: IP6_FRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:403,1
    - Dst: IP6_FRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:404,1
    - Dst: IP6_FRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:410,1
    - Dst: IP6_FRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:411,1
    - Dst: IP6_FRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:428,1
    - Dst: IP6_FRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:433,1
    - Dst: IP6_FRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:434,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:457,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:465,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:481,1
    - Dst: ip6_current_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:481,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:529,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:533,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:534,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:535,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:538,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:550,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:551,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:552,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:555,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:566,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:585,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:588,1
    - Dst: pbuf_clen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:591,1
    - Dst: pbuf_header_force
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:595,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:596,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:597,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:608,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 208
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 610
      start: 258
    functionDepth: 6
    functionLinenumber: 258
    functionLinenumberEnd: 610
    functionName: ip6_reass
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c
    functionUses: 0
    functionsReached:
    - ip6_addr_cmp
    - lwip_htons
    - memp_malloc
    - LWIP_ASSERT
    - lwip_ntohs
    - ip6_current_dest_addr
    - pbuf_clen
    - pbuf_free
    - IP6_FRAG_STATS_INC
    - ip6_current_src_addr
    - memp_free
    - pbuf_header_force
    - memset
    - MEMCPY
    - pbuf_header
    - ip6_reass_remove_oldest_datagram
    - ip6_current_header
    - pbuf_cat
    - IPV6_FRAG_HDRREF
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: struct pbuf
    signature: '*

      ip6_reass(struct pbuf *p)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 622
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 622
    functionName: ip6_frag_alloc_pbuf_custom_ref
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c
    functionUses: 0
    functionsReached:
    - memp_malloc
    linkageType: ''
    returnType: struct pbuf_custom_ref
    signature: '*

      ip6_frag_alloc_pbuf_custom_ref(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:628,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pbuf_custom_ref*
    constantsTouched: []
    func_position:
      end: 630
      start: 625
    functionDepth: 3
    functionLinenumber: 625
    functionLinenumberEnd: 630
    functionName: ip6_frag_free_pbuf_custom_ref
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c
    functionUses: 0
    functionsReached:
    - memp_free
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: ip6_frag_free_pbuf_custom_ref(struct pbuf_custom_ref* p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:638,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:639,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:641,1
    - Dst: ip6_frag_free_pbuf_custom_ref
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 644
      start: 634
    functionDepth: 4
    functionLinenumber: 634
    functionLinenumberEnd: 644
    functionName: ip6_frag_free_pbuf_custom
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c
    functionUses: 0
    functionsReached:
    - ip6_frag_free_pbuf_custom_ref
    - pbuf_free
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: ip6_frag_free_pbuf_custom(struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nd6_get_destination_mtu
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:683,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:697,1
    - Dst: IP6_FRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:699,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:702,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:704,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:706,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:707,1
    - Dst: IP6_FRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:708,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:712,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:721,1
    - Dst: IP6_FRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:723,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:726,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:728,1
    - Dst: ip6_frag_alloc_pbuf_custom_ref
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:746,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:748,1
    - Dst: IP6_FRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:749,1
    - Dst: pbuf_alloced_custom
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:753,1
    - Dst: ip6_frag_free_pbuf_custom_ref
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:755,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:756,1
    - Dst: IP6_FRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:757,1
    - Dst: pbuf_ref
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:760,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:767,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:779,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:780,1
    - Dst: IP6H_NEXTH_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:782,1
    - Dst: IP6H_PLEN_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:783,1
    - Dst: IP6_FRAG_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:788,1
    - Dst: struct netif*::output_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:789,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c:798,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 79
    argCount: 3
    argNames:
    - p
    - netif
    - dest
    argTypes:
    - struct pbuf*
    - struct netif*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 803
      start: 659
    functionDepth: 4
    functionLinenumber: 659
    functionLinenumberEnd: 803
    functionName: ip6_frag
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c
    functionUses: 0
    functionsReached:
    - nd6_get_destination_mtu
    - pbuf_copy_partial
    - IP6_FRAG_STATS_INC
    - pbuf_cat
    - IP6H_PLEN_SET
    - pbuf_alloc
    - SMEMCPY
    - ip6_frag_free_pbuf_custom_ref
    - pbuf_ref
    - struct netif*::output_ip6
    - ip6_frag_alloc_pbuf_custom_ref
    - lwip_htons
    - IP6H_NEXTH_SET
    - pbuf_header
    - pbuf_free
    - lwip_htonl
    - pbuf_alloced_custom
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: ip6_frag(struct pbuf *p, struct netif *netif, const ip6_addr_t *dest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_prefix_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_route_table.c:84,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_route_table.c:92,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_route_table.c:108,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_route_table.c:113,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 4
    argNames:
    - ip6_prefix
    - netif
    - gateway
    - index
    argTypes:
    - struct ip6_prefix*
    - struct netif*
    - ip6_addr_t*
    - s8_t*
    constantsTouched: []
    func_position:
      end: 125
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 125
    functionName: ip6_add_route_entry
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_route_table.c
    functionUses: 4
    functionsReached:
    - ip6_prefix_valid
    - memcmp
    - SMEMCPY
    linkageType: ''
    returnType: err_t
    signature: ip6_add_route_entry(struct ip6_prefix *ip6_prefix, struct netif *netif,
      ip6_addr_t *gateway, s8_t *index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_route_table.c:140,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_route_table.c:150,1
    - Dst: ip6_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_route_table.c:157,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - ip6_prefix
    argTypes:
    - struct ip6_prefix*
    constantsTouched: []
    func_position:
      end: 163
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 163
    functionName: ip6_remove_route_entry
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_route_table.c
    functionUses: 3
    functionsReached:
    - ip6_addr_set_zero
    - memcmp
    - SMEMCPY
    linkageType: ''
    returnType: void
    signature: ip6_remove_route_entry(struct ip6_prefix *ip6_prefix)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_route_table.c:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ip6_dest_addr
    argTypes:
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 189
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 189
    functionName: ip6_find_route_entry
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_route_table.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: s8_t
    signature: ip6_find_route_entry(const ip6_addr_t *ip6_dest_addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_find_route_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_route_table.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - src
    - dest
    argTypes:
    - ip6_addr_t*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 213
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 213
    functionName: ip6_static_route
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_route_table.c
    functionUses: 1
    functionsReached:
    - ip6_find_route_entry
    linkageType: ''
    returnType: struct netif
    signature: '*

      ip6_static_route(const ip6_addr_t *src, const ip6_addr_t *dest)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - netif
    - dest
    argTypes:
    - struct netif*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 236
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 236
    functionName: ip6_get_gateway
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_route_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip6_addr_t
    signature: '*

      ip6_get_gateway(struct netif *netif, const ip6_addr_t *dest)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: ip6_get_route_table
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_route_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct ip6_route_entry
    signature: '*

      ip6_get_route_table(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - msg_type
    argTypes:
    - u8_t
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: mqtt_msg_type_to_str
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - LWIP_ARRAYSIZE
    linkageType: ''
    returnType: char
    signature: '*

      mqtt_msg_type_to_str(u8_t msg_type)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - client
    argTypes:
    - mqtt_client_t*
    constantsTouched: []
    func_position:
      end: 173
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 173
    functionName: msg_generate_packet_id
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16_t
    signature: msg_generate_packet_id(mqtt_client_t *client)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mqtt_ringbuf_linear_read_length
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:209,1
    - Dst: tcp_sndbuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:210,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:211,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:217,1
    - Dst: mqtt_ringbuf_len
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:224,1
    - Dst: tcp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:226,1
    - Dst: mqtt_ringbuf_get_ptr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:226,1
    - Dst: mqtt_ringbuf_advance_get_idx
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:228,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:230,1
    - Dst: tcp_sndbuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:230,1
    - Dst: mqtt_ringbuf_linear_read_length
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:230,1
    - Dst: tcp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:231,1
    - Dst: mqtt_ringbuf_get_ptr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:231,1
    - Dst: mqtt_ringbuf_advance_get_idx
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:235,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:237,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:239,1
    - Dst: lwip_strerr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:239,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - rb
    - tpcb
    argTypes:
    - struct mqtt_ringbuf_t*
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 241
      start: 204
    functionDepth: 6
    functionLinenumber: 204
    functionLinenumberEnd: 241
    functionName: mqtt_output_send
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - mqtt_ringbuf_linear_read_length
    - mqtt_ringbuf_advance_get_idx
    - mqtt_ringbuf_get_ptr
    - mqtt_ringbuf_len
    - tcp_output
    - LWIP_MIN
    - tcp_write
    - lwip_strerr
    - tcp_sndbuf
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: mqtt_output_send(struct mqtt_ringbuf_t *rb, struct tcp_pcb *tpcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - r_objs
    - pkt_id
    - cb
    - arg
    argTypes:
    - struct mqtt_request_t*
    - u16_t
    - mqtt_request_cb_t
    - void*
    constantsTouched: []
    func_position:
      end: 274
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 274
    functionName: mqtt_create_request
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT
    linkageType: ''
    returnType: struct mqtt_request_t
    signature: '*

      mqtt_create_request(struct mqtt_request_t *r_objs, u16_t pkt_id, mqtt_request_cb_t
      cb, void *arg)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:289,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - tail
    - r
    argTypes:
    - struct mqtt_request_t**
    - struct mqtt_request_t*
    constantsTouched: []
    func_position:
      end: 304
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 304
    functionName: mqtt_append_request
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: mqtt_append_request(struct mqtt_request_t **tail, struct mqtt_request_t
      *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct mqtt_request_t*
    constantsTouched: []
    func_position:
      end: 317
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 317
    functionName: mqtt_delete_request
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: mqtt_delete_request(struct mqtt_request_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:329,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - tail
    - pkt_id
    argTypes:
    - struct mqtt_request_t**
    - u16_t
    constantsTouched: []
    func_position:
      end: 353
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 353
    functionName: mqtt_take_request
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT
    linkageType: ''
    returnType: struct mqtt_request_t
    signature: '*

      mqtt_take_request(struct mqtt_request_t **tail, u16_t pkt_id)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:364,1
    - Dst: struct mqtt_request_t*::cb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:373,1
    - Dst: mqtt_delete_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:375,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - tail
    - t
    argTypes:
    - struct mqtt_request_t**
    - u8_t
    constantsTouched: []
    func_position:
      end: 383
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 383
    functionName: mqtt_request_time_elapsed
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - struct mqtt_request_t*::cb
    - mqtt_delete_request
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: mqtt_request_time_elapsed(struct mqtt_request_t **tail, u8_t t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:393,1
    - Dst: mqtt_delete_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tail
    argTypes:
    - struct mqtt_request_t**
    constantsTouched: []
    func_position:
      end: 399
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 399
    functionName: mqtt_clear_requests
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - mqtt_delete_request
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: mqtt_clear_requests(struct mqtt_request_t **tail)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r_objs
    argTypes:
    - struct mqtt_request_t*
    constantsTouched: []
    func_position:
      end: 413
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 413
    functionName: mqtt_init_requests
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: mqtt_init_requests(struct mqtt_request_t *r_objs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mqtt_ringbuf_put
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rb
    - value
    argTypes:
    - struct mqtt_ringbuf_t*
    - u8_t
    constantsTouched: []
    func_position:
      end: 423
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 423
    functionName: mqtt_output_append_u8
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - mqtt_ringbuf_put
    linkageType: ''
    returnType: void
    signature: mqtt_output_append_u8(struct mqtt_ringbuf_t *rb, u8_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mqtt_ringbuf_put
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:428,1
    - Dst: mqtt_ringbuf_put
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - rb
    - value
    argTypes:
    - struct mqtt_ringbuf_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 430
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 430
    functionName: mqtt_output_append_u16
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - mqtt_ringbuf_put
    linkageType: ''
    returnType: void
    signature: mqtt_output_append_u16(struct mqtt_ringbuf_t *rb, u16_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mqtt_ringbuf_put
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - rb
    - data
    - length
    argTypes:
    - struct mqtt_ringbuf_t*
    - void*
    - u16_t
    constantsTouched: []
    func_position:
      end: 439
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 439
    functionName: mqtt_output_append_buf
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - mqtt_ringbuf_put
    linkageType: ''
    returnType: void
    signature: mqtt_output_append_buf(struct mqtt_ringbuf_t *rb, const void *data,
      u16_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mqtt_ringbuf_put
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:445,1
    - Dst: mqtt_ringbuf_put
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:446,1
    - Dst: mqtt_ringbuf_put
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - rb
    - str
    - length
    argTypes:
    - struct mqtt_ringbuf_t*
    - char*
    - u16_t
    constantsTouched: []
    func_position:
      end: 450
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 450
    functionName: mqtt_output_append_string
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - mqtt_ringbuf_put
    linkageType: ''
    returnType: void
    signature: mqtt_output_append_string(struct mqtt_ringbuf_t *rb, const char *str,
      u16_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mqtt_output_append_u8
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:467,1
    - Dst: mqtt_output_append_u8
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - rb
    - msg_type
    - dup
    - qos
    - retain
    - r_length
    argTypes:
    - struct mqtt_ringbuf_t*
    - u8_t
    - u8_t
    - u8_t
    - u8_t
    - u16_t
    constantsTouched: []
    func_position:
      end: 473
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 473
    functionName: mqtt_output_append_fixed_header
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - mqtt_output_append_u8
    linkageType: ''
    returnType: void
    signature: "mqtt_output_append_fixed_header(struct mqtt_ringbuf_t *rb, u8_t msg_type,
      u8_t dup,\n                 u8_t qos, u8_t retain, u16_t r_length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:488,1
    - Dst: mqtt_ringbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - rb
    - r_length
    argTypes:
    - struct mqtt_ringbuf_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 497
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 497
    functionName: mqtt_output_check_space
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - mqtt_ringbuf_free
    - LWIP_ASSERT
    linkageType: ''
    returnType: u8_t
    signature: mqtt_output_check_space(struct mqtt_ringbuf_t *rb, u16_t r_length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:508,1
    - Dst: tcp_recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:513,1
    - Dst: tcp_err
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:514,1
    - Dst: tcp_sent
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:515,1
    - Dst: tcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:516,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:518,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:519,1
    - Dst: lwip_strerr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:519,1
    - Dst: mqtt_clear_requests
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:525,1
    - Dst: sys_untimeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:527,1
    - Dst: mqtt_client_t*::connect_cb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:534,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - client
    - reason
    argTypes:
    - mqtt_client_t*
    - mqtt_connection_status_t
    constantsTouched: []
    func_position:
      end: 537
      start: 505
    functionDepth: 5
    functionLinenumber: 505
    functionLinenumberEnd: 537
    functionName: mqtt_close
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - sys_untimeout
    - tcp_sent
    - mqtt_clear_requests
    - tcp_recv
    - tcp_err
    - lwip_strerr
    - mqtt_client_t*::connect_cb
    - tcp_abort
    - tcp_close
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: mqtt_close(mqtt_client_t *client, mqtt_connection_status_t reason)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:549,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:554,1
    - Dst: mqtt_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:556,1
    - Dst: mqtt_request_time_elapsed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:561,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:569,1
    - Dst: mqtt_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:570,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:576,1
    - Dst: mqtt_output_check_space
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:577,1
    - Dst: mqtt_output_append_fixed_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:578,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:586,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:590,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 592
      start: 544
    functionDepth: 6
    functionLinenumber: 544
    functionLinenumberEnd: 592
    functionName: mqtt_cyclic_timer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - sys_timeout
    - mqtt_output_check_space
    - mqtt_close
    - mqtt_output_append_fixed_header
    - mqtt_request_time_elapsed
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: mqtt_cyclic_timer(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mqtt_output_check_space
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:607,1
    - Dst: mqtt_output_append_fixed_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:608,1
    - Dst: mqtt_output_append_u16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:609,1
    - Dst: mqtt_output_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:610,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:612,1
    - Dst: mqtt_msg_type_to_str
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - client
    - msg
    - pkt_id
    - qos
    argTypes:
    - mqtt_client_t*
    - u8_t
    - u16_t
    - u8_t
    constantsTouched: []
    func_position:
      end: 617
      start: 603
    functionDepth: 7
    functionLinenumber: 603
    functionLinenumberEnd: 617
    functionName: pub_ack_rec_rel_response
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - mqtt_output_send
    - LWIP_DEBUGF
    - mqtt_msg_type_to_str
    - mqtt_output_check_space
    - mqtt_output_append_fixed_header
    - mqtt_output_append_u16
    linkageType: ''
    returnType: err_t
    signature: pub_ack_rec_rel_response(mqtt_client_t *client, u8_t msg, u16_t pkt_id,
      u8_t qos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mqtt_request_t*::cb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - r
    - result
    argTypes:
    - struct mqtt_request_t*
    - u8_t
    constantsTouched: []
    func_position:
      end: 630
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 630
    functionName: mqtt_incomming_suback
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - struct mqtt_request_t*::cb
    linkageType: ''
    returnType: void
    signature: mqtt_incomming_suback(struct mqtt_request_t *r, u8_t result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MQTT_CTL_PACKET_TYPE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:648,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:655,1
    - Dst: mqtt_client_t*::connect_cb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:662,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:666,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:669,1
    - Dst: MQTT_CTL_PACKET_QOS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:674,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:688,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:707,1
    - Dst: mqtt_client_t*::pub_cb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:710,1
    - Dst: mqtt_client_t*::data_cb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:716,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:721,1
    - Dst: mqtt_msg_type_to_str
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:722,1
    - Dst: pub_ack_rec_rel_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:723,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:731,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:735,1
    - Dst: pub_ack_rec_rel_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:736,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:739,1
    - Dst: pub_ack_rec_rel_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:740,1
    - Dst: mqtt_take_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:744,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:746,1
    - Dst: mqtt_msg_type_to_str
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:746,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:749,1
    - Dst: mqtt_incomming_suback
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:752,1
    - Dst: struct mqtt_request_t*::cb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:755,1
    - Dst: mqtt_delete_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:757,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:759,1
    - Dst: mqtt_msg_type_to_str
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:759,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:762,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 97
    argCount: 4
    argNames:
    - client
    - fixed_hdr_idx
    - length
    - remaining_length
    argTypes:
    - mqtt_client_t*
    - u8_t
    - u16_t
    - u32_t
    constantsTouched: []
    func_position:
      end: 769
      start: 640
    functionDepth: 8
    functionLinenumber: 640
    functionLinenumberEnd: 769
    functionName: mqtt_message_received
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - struct mqtt_request_t*::cb
    - LWIP_DEBUGF
    - mqtt_msg_type_to_str
    - mqtt_delete_request
    - mqtt_take_request
    - MQTT_CTL_PACKET_QOS
    - mqtt_client_t*::data_cb
    - MQTT_CTL_PACKET_TYPE
    - mqtt_client_t*::pub_cb
    - mqtt_incomming_suback
    - mqtt_client_t*::connect_cb
    - pub_ack_rec_rel_response
    linkageType: ''
    returnType: mqtt_connection_status_t
    signature: mqtt_message_received(mqtt_client_t *client, u8_t fixed_hdr_idx, u16_t
      length, u32_t remaining_length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_get_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:792,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:800,1
    - Dst: mqtt_message_received
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:803,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:818,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:825,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:832,1
    - Dst: mqtt_message_received
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:835,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 2
    argNames:
    - client
    - p
    argTypes:
    - mqtt_client_t*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 849
      start: 778
    functionDepth: 9
    functionLinenumber: 778
    functionLinenumberEnd: 849
    functionName: mqtt_parse_incoming
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - pbuf_copy_partial
    - LWIP_DEBUGF
    - pbuf_get_at
    - LWIP_MIN
    - mqtt_message_received
    linkageType: ''
    returnType: mqtt_connection_status_t
    signature: mqtt_parse_incoming(mqtt_client_t *client, struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:863,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:864,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:867,1
    - Dst: mqtt_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:868,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:872,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:873,1
    - Dst: tcp_recved
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:878,1
    - Dst: mqtt_parse_incoming
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:879,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:880,1
    - Dst: mqtt_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:883,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - arg
    - pcb
    - p
    - err
    argTypes:
    - void*
    - struct tcp_pcb*
    - struct pbuf*
    - err_t
    constantsTouched: []
    func_position:
      end: 893
      start: 859
    functionDepth: 10
    functionLinenumber: 859
    functionLinenumberEnd: 893
    functionName: mqtt_tcp_recv_cb
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - tcp_recved
    - mqtt_parse_incoming
    - mqtt_close
    - pbuf_free
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: mqtt_tcp_recv_cb(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t
      err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:908,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:909,1
    - Dst: mqtt_take_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:918,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:919,1
    - Dst: struct mqtt_request_t*::cb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:921,1
    - Dst: mqtt_delete_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:923,1
    - Dst: mqtt_output_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:926,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - arg
    - tpcb
    - len
    argTypes:
    - void*
    - struct tcp_pcb*
    - u16_t
    constantsTouched: []
    func_position:
      end: 929
      start: 903
    functionDepth: 7
    functionLinenumber: 903
    functionLinenumberEnd: 929
    functionName: mqtt_tcp_sent_cb
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - mqtt_output_send
    - struct mqtt_request_t*::cb
    - LWIP_DEBUGF
    - mqtt_delete_request
    - mqtt_take_request
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: err_t
    signature: mqtt_tcp_sent_cb(void *arg, struct tcp_pcb *tpcb, u16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:940,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:941,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:942,1
    - Dst: mqtt_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - arg
    - err
    argTypes:
    - void*
    - err_t
    constantsTouched: []
    func_position:
      end: 946
      start: 936
    functionDepth: 6
    functionLinenumber: 936
    functionLinenumberEnd: 946
    functionName: mqtt_tcp_err_cb
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - mqtt_close
    - LWIP_DEBUGF
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: mqtt_tcp_err_cb(void *arg, err_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mqtt_output_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:960,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - arg
    - tpcb
    argTypes:
    - void*
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 963
      start: 954
    functionDepth: 7
    functionLinenumber: 954
    functionLinenumberEnd: 963
    functionName: mqtt_tcp_poll_cb
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - mqtt_output_send
    linkageType: ''
    returnType: err_t
    signature: mqtt_tcp_poll_cb(void *arg, struct tcp_pcb *tpcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:977,1
    - Dst: tcp_recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:985,1
    - Dst: tcp_sent
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:986,1
    - Dst: tcp_poll
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:987,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:989,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:994,1
    - Dst: mqtt_output_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:998,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - arg
    - tpcb
    - err
    argTypes:
    - void*
    - struct tcp_pcb*
    - err_t
    constantsTouched: []
    func_position:
      end: 1001
      start: 971
    functionDepth: 7
    functionLinenumber: 971
    functionLinenumberEnd: 1001
    functionName: mqtt_tcp_connect_cb
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - mqtt_output_send
    - LWIP_DEBUGF
    - sys_timeout
    - tcp_poll
    - tcp_sent
    - tcp_recv
    linkageType: ''
    returnType: err_t
    signature: mqtt_tcp_connect_cb(void *arg, struct tcp_pcb *tpcb, err_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1035,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1036,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1037,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1039,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1040,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1043,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1046,1
    - Dst: msg_generate_packet_id
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1051,1
    - Dst: mqtt_create_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1057,1
    - Dst: mqtt_output_check_space
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1062,1
    - Dst: mqtt_delete_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1063,1
    - Dst: mqtt_output_append_fixed_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1067,1
    - Dst: mqtt_output_append_string
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1070,1
    - Dst: mqtt_output_append_u16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1074,1
    - Dst: mqtt_output_append_buf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1079,1
    - Dst: mqtt_append_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1082,1
    - Dst: mqtt_output_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1083,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 8
    argNames:
    - client
    - topic
    - payload
    - payload_length
    - qos
    - retain
    - cb
    - arg
    argTypes:
    - mqtt_client_t*
    - char*
    - void*
    - u16_t
    - u8_t
    - u8_t
    - mqtt_request_cb_t
    - void*
    constantsTouched: []
    func_position:
      end: 1085
      start: 1024
    functionDepth: 7
    functionLinenumber: 1024
    functionLinenumberEnd: 1085
    functionName: mqtt_publish
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - msg_generate_packet_id
    - mqtt_output_append_string
    - mqtt_append_request
    - LWIP_DEBUGF
    - mqtt_delete_request
    - mqtt_output_send
    - mqtt_output_append_buf
    - mqtt_create_request
    - mqtt_output_check_space
    - LWIP_ERROR
    - strlen
    - mqtt_output_append_fixed_header
    - mqtt_output_append_u16
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: "mqtt_publish(mqtt_client_t *client, const char *topic, const void
      *payload, u16_t payload_length, u8_t qos, u8_t retain,\n             mqtt_request_cb_t
      cb, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1109,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1110,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1112,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1113,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1117,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1120,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1122,1
    - Dst: msg_generate_packet_id
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1126,1
    - Dst: mqtt_create_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1127,1
    - Dst: mqtt_output_check_space
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1132,1
    - Dst: mqtt_delete_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1133,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1137,1
    - Dst: mqtt_output_append_fixed_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1139,1
    - Dst: mqtt_output_append_u16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1141,1
    - Dst: mqtt_output_append_string
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1143,1
    - Dst: mqtt_output_append_u8
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1146,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1146,1
    - Dst: mqtt_append_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1149,1
    - Dst: mqtt_output_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 6
    argNames:
    - client
    - topic
    - qos
    - cb
    - arg
    - sub
    argTypes:
    - mqtt_client_t*
    - char*
    - u8_t
    - mqtt_request_cb_t
    - void*
    - u8_t
    constantsTouched: []
    func_position:
      end: 1152
      start: 1099
    functionDepth: 7
    functionLinenumber: 1099
    functionLinenumberEnd: 1152
    functionName: mqtt_sub_unsub
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - msg_generate_packet_id
    - mqtt_output_append_string
    - mqtt_append_request
    - LWIP_DEBUGF
    - mqtt_delete_request
    - mqtt_output_send
    - mqtt_create_request
    - mqtt_output_check_space
    - mqtt_output_append_u8
    - LWIP_ERROR
    - strlen
    - mqtt_output_append_fixed_header
    - LWIP_MIN
    - mqtt_output_append_u16
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: mqtt_sub_unsub(mqtt_client_t *client, const char *topic, u8_t qos,
      mqtt_request_cb_t cb, void *arg, u8_t sub)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - client
    - pub_cb
    - data_cb
    - arg
    argTypes:
    - mqtt_client_t*
    - mqtt_incoming_publish_cb_t
    - mqtt_incoming_data_cb_t
    - void*
    constantsTouched: []
    func_position:
      end: 1171
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1171
    functionName: mqtt_set_inpub_callback
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: "mqtt_set_inpub_callback(mqtt_client_t *client, mqtt_incoming_publish_cb_t
      pub_cb,\n                             mqtt_incoming_data_cb_t data_cb, void
      *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1181,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1178
    functionDepth: 1
    functionLinenumber: 1178
    functionLinenumberEnd: 1186
    functionName: mqtt_client_new
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - mem_malloc
    - memset
    linkageType: ''
    returnType: mqtt_client_t
    signature: '*

      mqtt_client_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1211,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1212,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1213,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1214,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1217,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1222,1
    - Dst: mqtt_init_requests
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1226,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1235,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1236,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1237,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1239,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1240,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1243,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1250,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1251,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1254,1
    - Dst: mqtt_output_check_space
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1257,1
    - Dst: tcp_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1261,1
    - Dst: tcp_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1267,1
    - Dst: tcp_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1269,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1271,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1274,1
    - Dst: ipaddr_ntoa
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1274,1
    - Dst: tcp_connect
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1277,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1279,1
    - Dst: tcp_err
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1283,1
    - Dst: mqtt_output_append_fixed_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1287,1
    - Dst: mqtt_output_append_string
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1289,1
    - Dst: mqtt_output_append_u8
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1291,1
    - Dst: mqtt_output_append_u8
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1293,1
    - Dst: mqtt_output_append_u16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1295,1
    - Dst: mqtt_output_append_string
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1297,1
    - Dst: mqtt_output_append_string
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1300,1
    - Dst: mqtt_output_append_string
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1301,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1306,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 77
    argCount: 6
    argNames:
    - client
    - ip_addr
    - port
    - cb
    - arg
    - client_info
    argTypes:
    - mqtt_client_t*
    - ip_addr_t*
    - u16_t
    - mqtt_connection_cb_t
    - void*
    - struct mqtt_connect_client_info_t*
    constantsTouched: []
    func_position:
      end: 1309
      start: 1200
    functionDepth: 8
    functionLinenumber: 1200
    functionLinenumberEnd: 1309
    functionName: mqtt_client_connect
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - mqtt_output_append_string
    - mqtt_init_requests
    - LWIP_DEBUGF
    - mqtt_output_check_space
    - mqtt_output_append_u8
    - LWIP_ERROR
    - mqtt_output_append_u16
    - memset
    - ipaddr_ntoa
    - strlen
    - tcp_new
    - tcp_bind
    - tcp_connect
    - mqtt_output_append_fixed_header
    - tcp_err
    - tcp_abort
    - tcp_arg
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: "mqtt_client_connect(mqtt_client_t *client, const ip_addr_t *ip_addr,
      u16_t port, mqtt_connection_cb_t cb, void *arg,\n                    const struct
      mqtt_connect_client_info_t *client_info)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1320,1
    - Dst: mqtt_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - client
    argTypes:
    - mqtt_client_t*
    constantsTouched: []
    func_position:
      end: 1327
      start: 1317
    functionDepth: 6
    functionLinenumber: 1317
    functionLinenumberEnd: 1327
    functionName: mqtt_disconnect
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - mqtt_close
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: mqtt_disconnect(mqtt_client_t *client)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c:1338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - client
    argTypes:
    - mqtt_client_t*
    constantsTouched: []
    func_position:
      end: 1340
      start: 1335
    functionDepth: 0
    functionLinenumber: 1335
    functionLinenumberEnd: 1340
    functionName: mqtt_client_is_connected
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT
    linkageType: ''
    returnType: u8_t
    signature: mqtt_client_is_connected(mqtt_client_t *client)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - instance
    - value
    argTypes:
    - struct snmp_node_instance*
    - void*
    constantsTouched: []
    func_position:
      end: 79
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 79
    functionName: interfaces_get_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: s16_t
    signature: interfaces_get_value(struct snmp_node_instance* instance, void* value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:101,1
    - Dst: snmp_oid_in_range
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:104,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:104,1
    - Dst: netif_to_num
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - column
    - row_oid
    - row_oid_len
    - cell_instance
    argTypes:
    - u32_t*
    - u32_t*
    - u8_t
    - struct snmp_node_instance*
    constantsTouched: []
    func_position:
      end: 124
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 124
    functionName: interfaces_Table_get_cell_instance
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - snmp_oid_in_range
    - netif_to_num
    - LWIP_ARRAYSIZE
    linkageType: ''
    returnType: snmp_err_t
    signature: interfaces_Table_get_cell_instance(const u32_t* column, const u32_t*
      row_oid, u8_t row_oid_len, struct snmp_node_instance* cell_instance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:131,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:133,1
    - Dst: snmp_next_oid_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:136,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:136,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:141,1
    - Dst: netif_to_num
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:142,1
    - Dst: snmp_next_oid_check
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:145,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:145,1
    - Dst: snmp_oid_assign
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - column
    - row_oid
    - cell_instance
    argTypes:
    - u32_t*
    - struct snmp_obj_id*
    - struct snmp_node_instance*
    constantsTouched: []
    func_position:
      end: 160
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 160
    functionName: interfaces_Table_get_next_cell_instance
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c
    functionUses: 0
    functionsReached:
    - snmp_oid_assign
    - LWIP_ARRAYSIZE
    - snmp_next_oid_init
    - netif_to_num
    - snmp_next_oid_check
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: snmp_err_t
    signature: interfaces_Table_get_next_cell_instance(const u32_t* column, struct
      snmp_obj_id* row_oid, struct snmp_node_instance* cell_instance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SNMP_TABLE_GET_COLUMN_FROM_OID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:170,1
    - Dst: netif_to_num
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:173,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:178,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:194,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:197,1
    - Dst: netif_is_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:205,1
    - Dst: netif_is_link_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:206,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:271,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 106
    argCount: 2
    argNames:
    - instance
    - value
    argTypes:
    - struct snmp_node_instance*
    - void*
    constantsTouched: []
    func_position:
      end: 278
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 278
    functionName: interfaces_Table_get_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c
    functionUses: 0
    functionsReached:
    - SNMP_TABLE_GET_COLUMN_FROM_OID
    - netif_is_up
    - netif_to_num
    - MEMCPY
    - netif_is_link_up
    linkageType: ''
    returnType: s16_t
    signature: interfaces_Table_get_value(struct snmp_node_instance* instance, void*
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:289,1
    - Dst: SNMP_TABLE_GET_COLUMN_FROM_OID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:289,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - instance
    - len
    - value
    argTypes:
    - struct snmp_node_instance*
    - u16_t
    - void*
    constantsTouched: []
    func_position:
      end: 297
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 297
    functionName: interfaces_Table_set_test
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - SNMP_TABLE_GET_COLUMN_FROM_OID
    - LWIP_ASSERT
    linkageType: ''
    returnType: snmp_err_t
    signature: interfaces_Table_set_test(struct snmp_node_instance* instance, u16_t
      len, void *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:307,1
    - Dst: SNMP_TABLE_GET_COLUMN_FROM_OID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:307,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:308,1
    - Dst: netif_set_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:311,1
    - Dst: netif_set_down
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c:313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - instance
    - len
    - value
    argTypes:
    - struct snmp_node_instance*
    - u16_t
    - void*
    constantsTouched: []
    func_position:
      end: 317
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 317
    functionName: interfaces_Table_set_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT
    - SNMP_TABLE_GET_COLUMN_FROM_OID
    - netif_set_down
    - LWIP_UNUSED_ARG
    - netif_set_up
    linkageType: ''
    returnType: snmp_err_t
    signature: interfaces_Table_set_value(struct snmp_node_instance* instance, u16_t
      len, void *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:81,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:84,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:87,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:90,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:93,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:96,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:99,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:102,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:105,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:108,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:118,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:121,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:124,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:127,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:130,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:133,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 69
    argCount: 2
    argNames:
    - instance
    - value
    argTypes:
    - struct snmp_node_instance*
    - void*
    constantsTouched: []
    func_position:
      end: 144
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 144
    functionName: ip_get_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c
    functionUses: 0
    functionsReached:
    - STATS_GET
    - LWIP_DEBUGF
    linkageType: ''
    returnType: s16_t
    signature: ip_get_value(struct snmp_node_instance* instance, void* value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:162,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:182,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - instance
    - len
    - value
    argTypes:
    - struct snmp_node_instance*
    - u16_t
    - void*
    constantsTouched: []
    func_position:
      end: 187
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 187
    functionName: ip_set_test
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - LWIP_DEBUGF
    linkageType: ''
    returnType: snmp_err_t
    signature: ip_set_test(struct snmp_node_instance* instance, u16_t len, void *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:192,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:193,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - instance
    - len
    - value
    argTypes:
    - struct snmp_node_instance*
    - u16_t
    - void*
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: ip_set_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: snmp_err_t
    signature: ip_set_value(struct snmp_node_instance* instance, u16_t len, void *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:212,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:216,1
    - Dst: netif_to_num
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:219,1
    - Dst: netif_ip4_netmask
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:222,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - netif
    - column
    - value
    - value_len
    argTypes:
    - struct netif*
    - u32_t*
    - union snmp_variant_value*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 248
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 248
    functionName: ip_AddrTable_get_cell_value_core
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - netif_ip4_addr
    - netif_to_num
    - netif_ip4_netmask
    linkageType: ''
    returnType: snmp_err_t
    signature: ip_AddrTable_get_cell_value_core(struct netif *netif, const u32_t*
      column, union snmp_variant_value* value, u32_t* value_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_oid_in_range
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:257,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:257,1
    - Dst: snmp_oid_to_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:262,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:267,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:267,1
    - Dst: ip_AddrTable_get_cell_value_core
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - column
    - row_oid
    - row_oid_len
    - value
    - value_len
    argTypes:
    - u32_t*
    - u32_t*
    - u8_t
    - union snmp_variant_value*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 277
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 277
    functionName: ip_AddrTable_get_cell_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c
    functionUses: 0
    functionsReached:
    - snmp_oid_in_range
    - netif_ip4_addr
    - LWIP_ARRAYSIZE
    - ip4_addr_cmp
    - ip_AddrTable_get_cell_value_core
    - snmp_oid_to_ip4
    linkageType: ''
    returnType: snmp_err_t
    signature: ip_AddrTable_get_cell_value(const u32_t* column, const u32_t* row_oid,
      u8_t row_oid_len, union snmp_variant_value* value, u32_t* value_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:284,1
    - Dst: snmp_next_oid_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:287,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:287,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:292,1
    - Dst: snmp_ip4_to_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:293,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:293,1
    - Dst: snmp_next_oid_check
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:296,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:296,1
    - Dst: snmp_oid_assign
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:303,1
    - Dst: ip_AddrTable_get_cell_value_core
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - column
    - row_oid
    - value
    - value_len
    argTypes:
    - u32_t*
    - struct snmp_obj_id*
    - union snmp_variant_value*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 310
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 310
    functionName: ip_AddrTable_get_next_cell_instance_and_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c
    functionUses: 0
    functionsReached:
    - netif_ip4_addr
    - snmp_oid_assign
    - LWIP_ARRAYSIZE
    - snmp_next_oid_init
    - snmp_ip4_to_oid
    - snmp_next_oid_check
    - ip_AddrTable_get_cell_value_core
    linkageType: ''
    returnType: snmp_err_t
    signature: ip_AddrTable_get_next_cell_instance_and_value(const u32_t* column,
      struct snmp_obj_id* row_oid, union snmp_variant_value* value, u32_t* value_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip4_addr_get_network
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:333,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:333,1
    - Dst: netif_ip4_netmask
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:333,1
    - Dst: netif_to_num
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:338,1
    - Dst: netif_ip4_gw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:355,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:358,1
    - Dst: netif_ip4_netmask
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:384,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 63
    argCount: 5
    argNames:
    - netif
    - default_route
    - column
    - value
    - value_len
    argTypes:
    - struct netif*
    - u8_t
    - u32_t*
    - union snmp_variant_value*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 399
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 399
    functionName: ip_RouteTable_get_cell_value_core
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c
    functionUses: 0
    functionsReached:
    - netif_ip4_addr
    - netif_to_num
    - ip4_addr_get_network
    - netif_ip4_netmask
    - netif_ip4_gw
    linkageType: ''
    returnType: snmp_err_t
    signature: ip_RouteTable_get_cell_value_core(struct netif *netif, u8_t default_route,
      const u32_t* column, union snmp_variant_value* value, u32_t* value_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_oid_in_range
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:408,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:408,1
    - Dst: snmp_oid_to_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:413,1
    - Dst: ip4_addr_isany_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:416,1
    - Dst: ip_RouteTable_get_cell_value_core
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:418,1
    - Dst: ip4_addr_get_network
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:425,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:425,1
    - Dst: netif_ip4_netmask
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:425,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:427,1
    - Dst: ip_RouteTable_get_cell_value_core
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:429,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - column
    - row_oid
    - row_oid_len
    - value
    - value_len
    argTypes:
    - u32_t*
    - u32_t*
    - u8_t
    - union snmp_variant_value*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 437
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 437
    functionName: ip_RouteTable_get_cell_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c
    functionUses: 0
    functionsReached:
    - snmp_oid_in_range
    - ip_RouteTable_get_cell_value_core
    - netif_ip4_addr
    - LWIP_ARRAYSIZE
    - ip4_addr_cmp
    - ip4_addr_isany_val
    - ip4_addr_get_network
    - netif_ip4_netmask
    - snmp_oid_to_ip4
    linkageType: ''
    returnType: snmp_err_t
    signature: ip_RouteTable_get_cell_value(const u32_t* column, const u32_t* row_oid,
      u8_t row_oid_len, union snmp_variant_value* value, u32_t* value_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:444,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:445,1
    - Dst: snmp_next_oid_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:448,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:448,1
    - Dst: snmp_ip4_to_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:452,1
    - Dst: snmp_next_oid_check
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:453,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:453,1
    - Dst: ip4_addr_get_network
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:460,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:460,1
    - Dst: netif_ip4_netmask
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:460,1
    - Dst: ip4_addr_isany_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:463,1
    - Dst: snmp_ip4_to_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:464,1
    - Dst: snmp_next_oid_check
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:465,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:465,1
    - Dst: snmp_oid_to_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:474,1
    - Dst: snmp_oid_assign
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:475,1
    - Dst: ip_RouteTable_get_cell_value_core
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:477,1
    - Dst: ip4_addr_isany_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - column
    - row_oid
    - value
    - value_len
    argTypes:
    - u32_t*
    - struct snmp_obj_id*
    - union snmp_variant_value*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 482
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 482
    functionName: ip_RouteTable_get_next_cell_instance_and_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c
    functionUses: 0
    functionsReached:
    - ip_RouteTable_get_cell_value_core
    - netif_ip4_addr
    - snmp_oid_assign
    - LWIP_ARRAYSIZE
    - snmp_next_oid_init
    - snmp_ip4_to_oid
    - ip4_addr_isany_val
    - ip4_addr_get_network
    - snmp_next_oid_check
    - netif_ip4_netmask
    - snmp_oid_to_ip4
    linkageType: ''
    returnType: snmp_err_t
    signature: ip_RouteTable_get_next_cell_instance_and_value(const u32_t* column,
      struct snmp_obj_id* row_oid, union snmp_variant_value* value, u32_t* value_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: etharp_get_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:503,1
    - Dst: netif_to_num
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:508,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - arp_table_index
    - column
    - value
    - value_len
    argTypes:
    - u8_t
    - u32_t*
    - union snmp_variant_value*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 525
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 525
    functionName: ip_NetToMediaTable_get_cell_value_core
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c
    functionUses: 0
    functionsReached:
    - netif_to_num
    - etharp_get_entry
    linkageType: ''
    returnType: snmp_err_t
    signature: ip_NetToMediaTable_get_cell_value_core(u8_t arp_table_index, const
      u32_t* column, union snmp_variant_value* value, u32_t* value_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_oid_in_range
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:535,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:535,1
    - Dst: snmp_oid_to_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:541,1
    - Dst: etharp_get_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:549,1
    - Dst: netif_to_num
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:550,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:550,1
    - Dst: ip_NetToMediaTable_get_cell_value_core
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:552,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 5
    argNames:
    - column
    - row_oid
    - row_oid_len
    - value
    - value_len
    argTypes:
    - u32_t*
    - u32_t*
    - u8_t
    - union snmp_variant_value*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 559
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 559
    functionName: ip_NetToMediaTable_get_cell_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c
    functionUses: 0
    functionsReached:
    - snmp_oid_in_range
    - LWIP_ARRAYSIZE
    - ip4_addr_cmp
    - etharp_get_entry
    - netif_to_num
    - ip_NetToMediaTable_get_cell_value_core
    - snmp_oid_to_ip4
    linkageType: ''
    returnType: snmp_err_t
    signature: ip_NetToMediaTable_get_cell_value(const u32_t* column, const u32_t*
      row_oid, u8_t row_oid_len, union snmp_variant_value* value, u32_t* value_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:566,1
    - Dst: snmp_next_oid_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:569,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:569,1
    - Dst: etharp_get_entry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:577,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:578,1
    - Dst: netif_to_num
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:580,1
    - Dst: snmp_ip4_to_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:581,1
    - Dst: snmp_next_oid_check
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:584,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:584,1
    - Dst: LWIP_PTR_NUMERIC_CAST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:584,1
    - Dst: snmp_oid_assign
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:590,1
    - Dst: ip_NetToMediaTable_get_cell_value_core
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:592,1
    - Dst: LWIP_PTR_NUMERIC_CAST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c:592,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - column
    - row_oid
    - value
    - value_len
    argTypes:
    - u32_t*
    - struct snmp_obj_id*
    - union snmp_variant_value*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 597
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 597
    functionName: ip_NetToMediaTable_get_next_cell_instance_and_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c
    functionUses: 0
    functionsReached:
    - snmp_oid_assign
    - LWIP_ARRAYSIZE
    - snmp_next_oid_init
    - etharp_get_entry
    - snmp_ip4_to_oid
    - netif_to_num
    - ip_NetToMediaTable_get_cell_value_core
    - snmp_next_oid_check
    - LWIP_PTR_NUMERIC_CAST
    linkageType: ''
    returnType: snmp_err_t
    signature: ip_NetToMediaTable_get_next_cell_instance_and_value(const u32_t* column,
      struct snmp_obj_id* row_oid, union snmp_variant_value* value, u32_t* value_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - pbuf_stream
    - p
    - offset
    - length
    argTypes:
    - struct snmp_pbuf_stream*
    - struct pbuf*
    - u16_t
    - u16_t
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: snmp_pbuf_stream_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_pbuf_stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: err_t
    signature: snmp_pbuf_stream_init(struct snmp_pbuf_stream* pbuf_stream, struct
      pbuf* p, u16_t offset, u16_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_pbuf_stream.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - pbuf_stream
    - data
    argTypes:
    - struct snmp_pbuf_stream*
    - u8_t*
    constantsTouched: []
    func_position:
      end: 71
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 71
    functionName: snmp_pbuf_stream_read
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_pbuf_stream.c
    functionUses: 0
    functionsReached:
    - pbuf_copy_partial
    linkageType: ''
    returnType: err_t
    signature: snmp_pbuf_stream_read(struct snmp_pbuf_stream* pbuf_stream, u8_t* data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_pbuf_stream_writebuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_pbuf_stream.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pbuf_stream
    - data
    argTypes:
    - struct snmp_pbuf_stream*
    - u8_t
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: snmp_pbuf_stream_write
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_pbuf_stream.c
    functionUses: 0
    functionsReached:
    - snmp_pbuf_stream_writebuf
    linkageType: ''
    returnType: err_t
    signature: snmp_pbuf_stream_write(struct snmp_pbuf_stream* pbuf_stream, u8_t data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_take_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_pbuf_stream.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - pbuf_stream
    - buf
    - buf_len
    argTypes:
    - struct snmp_pbuf_stream*
    - void*
    - u16_t
    constantsTouched: []
    func_position:
      end: 94
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 94
    functionName: snmp_pbuf_stream_writebuf
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_pbuf_stream.c
    functionUses: 1
    functionsReached:
    - pbuf_take_at
    linkageType: ''
    returnType: err_t
    signature: snmp_pbuf_stream_writebuf(struct snmp_pbuf_stream* pbuf_stream, const
      void* buf, u16_t buf_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_pbuf_stream.c:108,1
    - Dst: pbuf_skip
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_pbuf_stream.c:115,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_pbuf_stream.c:121,1
    - Dst: snmp_pbuf_stream_writebuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_pbuf_stream.c:122,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - pbuf_stream
    - target_pbuf_stream
    - len
    argTypes:
    - struct snmp_pbuf_stream*
    - struct snmp_pbuf_stream*
    - u16_t
    constantsTouched: []
    func_position:
      end: 133
      start: 96
    functionDepth: 4
    functionLinenumber: 96
    functionLinenumberEnd: 133
    functionName: snmp_pbuf_stream_writeto
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_pbuf_stream.c
    functionUses: 0
    functionsReached:
    - pbuf_skip
    - snmp_pbuf_stream_writebuf
    - LWIP_MIN
    linkageType: ''
    returnType: err_t
    signature: snmp_pbuf_stream_writeto(struct snmp_pbuf_stream* pbuf_stream, struct
      snmp_pbuf_stream* target_pbuf_stream, u16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pbuf_stream
    - offset
    argTypes:
    - struct snmp_pbuf_stream*
    - s32_t
    constantsTouched: []
    func_position:
      end: 147
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 147
    functionName: snmp_pbuf_stream_seek
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_pbuf_stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: err_t
    signature: snmp_pbuf_stream_seek(struct snmp_pbuf_stream* pbuf_stream, s32_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_pbuf_stream_seek
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_pbuf_stream.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pbuf_stream
    - offset
    argTypes:
    - struct snmp_pbuf_stream*
    - u32_t
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: snmp_pbuf_stream_seek_abs
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_pbuf_stream.c
    functionUses: 0
    functionsReached:
    - snmp_pbuf_stream_seek
    linkageType: ''
    returnType: err_t
    signature: snmp_pbuf_stream_seek_abs(struct snmp_pbuf_stream* pbuf_stream, u32_t
      offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_raw.c:48,1
    - Dst: snmp_receive
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_raw.c:50,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_raw.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - arg
    - pcb
    - p
    - addr
    - port
    argTypes:
    - void*
    - struct udp_pcb*
    - struct pbuf*
    - ip_addr_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: snmp_recv
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_raw.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - snmp_receive
    - pbuf_free
    linkageType: ''
    returnType: void
    signature: snmp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t
      *addr, u16_t port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: udp_sendto
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_raw.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - p
    - dst
    - port
    argTypes:
    - void*
    - struct pbuf*
    - ip_addr_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: snmp_sendto
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_raw.c
    functionUses: 0
    functionsReached:
    - udp_sendto
    linkageType: ''
    returnType: err_t
    signature: snmp_sendto(void *handle, struct pbuf *p, const ip_addr_t *dst, u16_t
      port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_raw.c:68,1
    - Dst: ip_route_get_local_ip
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_raw.c:70,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_raw.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - handle
    - dst
    - result
    argTypes:
    - void*
    - ip_addr_t*
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 78
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 78
    functionName: snmp_get_local_ip_for_dst
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_raw.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - ip_route_get_local_ip
    - ip_addr_copy
    linkageType: ''
    returnType: u8_t
    signature: snmp_get_local_ip_for_dst(void* handle, const ip_addr_t *dst, ip_addr_t
      *result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: udp_new_ip_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_raw.c:90,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_raw.c:91,1
    - Dst: udp_recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_raw.c:95,1
    - Dst: udp_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_raw.c:96,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_raw.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 98
    functionName: snmp_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_raw.c
    functionUses: 0
    functionsReached:
    - udp_new_ip_type
    - udp_recv
    - udp_bind
    - LWIP_ERROR
    linkageType: ''
    returnType: void
    signature: snmp_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - u8_t*
    - u16_t*
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: snmp_mib2_set_sysdescr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_system.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: snmp_mib2_set_sysdescr(const u8_t *str, const u16_t *len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ocstr
    - ocstrlen
    - bufsize
    argTypes:
    - u8_t*
    - u16_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: snmp_mib2_set_syscontact
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_system.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: snmp_mib2_set_syscontact(u8_t *ocstr, u16_t *ocstrlen, u16_t bufsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ocstr
    - ocstrlen
    argTypes:
    - u8_t*
    - u16_t*
    constantsTouched: []
    func_position:
      end: 143
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 143
    functionName: snmp_mib2_set_syscontact_readonly
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_system.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: snmp_mib2_set_syscontact_readonly(const u8_t *ocstr, const u16_t *ocstrlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ocstr
    - ocstrlen
    - bufsize
    argTypes:
    - u8_t*
    - u16_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 169
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 169
    functionName: snmp_mib2_set_sysname
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_system.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: snmp_mib2_set_sysname(u8_t *ocstr, u16_t *ocstrlen, u16_t bufsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ocstr
    - ocstrlen
    argTypes:
    - u8_t*
    - u16_t*
    constantsTouched: []
    func_position:
      end: 185
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 185
    functionName: snmp_mib2_set_sysname_readonly
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_system.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: snmp_mib2_set_sysname_readonly(const u8_t *ocstr, const u16_t *ocstrlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ocstr
    - ocstrlen
    - bufsize
    argTypes:
    - u8_t*
    - u16_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 210
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 210
    functionName: snmp_mib2_set_syslocation
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_system.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: snmp_mib2_set_syslocation(u8_t *ocstr, u16_t *ocstrlen, u16_t bufsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ocstr
    - ocstrlen
    argTypes:
    - u8_t*
    - u16_t*
    constantsTouched: []
    func_position:
      end: 226
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 226
    functionName: snmp_mib2_set_syslocation_readonly
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_system.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: snmp_mib2_set_syslocation_readonly(const u8_t *ocstr, const u16_t *ocstrlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_get_device_enterprise_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_system.c:243,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_system.c:244,1
    - Dst: MIB2_COPY_SYSUPTIME_TO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_system.c:248,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_system.c:266,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_system.c:271,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_system.c:273,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_system.c:277,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 2
    argNames:
    - node
    - value
    argTypes:
    - struct snmp_scalar_array_node_def*
    - void*
    constantsTouched: []
    func_position:
      end: 279
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 279
    functionName: system_get_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_system.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - MIB2_COPY_SYSUPTIME_TO
    - MEMCPY
    - strlen
    - snmp_get_device_enterprise_oid
    - LWIP_ASSERT
    linkageType: ''
    returnType: s16_t
    signature: system_get_value(const struct snmp_scalar_array_node_def *node, void
      *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_system.c:288,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_system.c:304,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - node
    - len
    - value
    argTypes:
    - struct snmp_scalar_array_node_def*
    - u16_t
    - void*
    constantsTouched: []
    func_position:
      end: 325
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 325
    functionName: system_set_test
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_system.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - LWIP_DEBUGF
    linkageType: ''
    returnType: snmp_err_t
    signature: system_set_test(const struct snmp_scalar_array_node_def *node, u16_t
      len, void *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_system.c:347,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_system.c:352,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_system.c:353,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - node
    - len
    - value
    argTypes:
    - struct snmp_scalar_array_node_def*
    - u16_t
    - void*
    constantsTouched: []
    func_position:
      end: 363
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 363
    functionName: system_set_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_system.c
    functionUses: 0
    functionsReached:
    - MEMCPY
    - LWIP_DEBUGF
    - LWIP_ASSERT
    linkageType: ''
    returnType: snmp_err_t
    signature: system_set_value(const struct snmp_scalar_array_node_def *node, u16_t
      len, void *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sys_mutex_lock
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:47,1
    - Dst: struct threadsync_data*::threadsync_node::instance::sync_fn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:48,1
    - Dst: sys_sem_wait
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:49,1
    - Dst: sys_mutex_unlock
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - call_data
    - fn
    argTypes:
    - struct threadsync_data*
    - snmp_threadsync_called_fn
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: call_synced_function
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c
    functionUses: 0
    functionsReached:
    - struct threadsync_data*::threadsync_node::instance::sync_fn
    - sys_mutex_lock
    - sys_sem_wait
    - sys_mutex_unlock
    linkageType: ''
    returnType: void
    signature: call_synced_function(struct threadsync_data *call_data, snmp_threadsync_called_fn
      fn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct threadsync_data*::proxy_instance::get_value
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:58,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: threadsync_get_value_synced
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c
    functionUses: 0
    functionsReached:
    - struct threadsync_data*::proxy_instance::get_value
    - sys_sem_signal
    linkageType: ''
    returnType: void
    signature: threadsync_get_value_synced(void *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: call_synced_function
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - instance
    - value
    argTypes:
    - struct snmp_node_instance*
    - void*
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: threadsync_get_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c
    functionUses: 0
    functionsReached:
    - call_synced_function
    linkageType: ''
    returnType: s16_t
    signature: threadsync_get_value(struct snmp_node_instance* instance, void* value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct threadsync_data*::proxy_instance::set_test
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:79,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: threadsync_set_test_synced
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c
    functionUses: 0
    functionsReached:
    - struct threadsync_data*::proxy_instance::set_test
    - sys_sem_signal
    linkageType: ''
    returnType: void
    signature: threadsync_set_test_synced(void *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: call_synced_function
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - instance
    - len
    - value
    argTypes:
    - struct snmp_node_instance*
    - u16_t
    - void*
    constantsTouched: []
    func_position:
      end: 94
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 94
    functionName: threadsync_set_test
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c
    functionUses: 0
    functionsReached:
    - call_synced_function
    linkageType: ''
    returnType: snmp_err_t
    signature: threadsync_set_test(struct snmp_node_instance* instance, u16_t len,
      void *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct threadsync_data*::proxy_instance::set_value
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:101,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 104
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 104
    functionName: threadsync_set_value_synced
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c
    functionUses: 0
    functionsReached:
    - sys_sem_signal
    - struct threadsync_data*::proxy_instance::set_value
    linkageType: ''
    returnType: void
    signature: threadsync_set_value_synced(void *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: call_synced_function
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - instance
    - len
    - value
    argTypes:
    - struct snmp_node_instance*
    - u16_t
    - void*
    constantsTouched: []
    func_position:
      end: 116
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 116
    functionName: threadsync_set_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c
    functionUses: 0
    functionsReached:
    - call_synced_function
    linkageType: ''
    returnType: snmp_err_t
    signature: threadsync_set_value(struct snmp_node_instance* instance, u16_t len,
      void *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct threadsync_data*::proxy_instance::release_instance
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:123,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 126
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 126
    functionName: threadsync_release_instance_synced
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c
    functionUses: 0
    functionsReached:
    - struct threadsync_data*::proxy_instance::release_instance
    - sys_sem_signal
    linkageType: ''
    returnType: void
    signature: threadsync_release_instance_synced(void* ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: call_synced_function
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - instance
    argTypes:
    - struct snmp_node_instance*
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: threadsync_release_instance
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c
    functionUses: 0
    functionsReached:
    - call_synced_function
    linkageType: ''
    returnType: void
    signature: threadsync_release_instance(struct snmp_node_instance *instance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct snmp_leaf_node*::get_instance
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:144,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 147
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 147
    functionName: get_instance_synced
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c
    functionUses: 0
    functionsReached:
    - sys_sem_signal
    - struct snmp_leaf_node*::get_instance
    linkageType: ''
    returnType: void
    signature: get_instance_synced(void* ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct snmp_leaf_node*::get_next_instance
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:155,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 158
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 158
    functionName: get_next_instance_synced
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c
    functionUses: 0
    functionsReached:
    - struct snmp_leaf_node*::get_next_instance
    - sys_sem_signal
    linkageType: ''
    returnType: void
    signature: get_next_instance_synced(void* ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:167,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:171,1
    - Dst: snmp_oid_assign
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:174,1
    - Dst: call_synced_function
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:181,1
    - Dst: snmp_oid_assign
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 4
    argNames:
    - root_oid
    - root_oid_len
    - instance
    - fn
    argTypes:
    - u32_t*
    - u8_t
    - struct snmp_node_instance*
    - snmp_threadsync_called_fn
    constantsTouched: []
    func_position:
      end: 194
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 194
    functionName: do_sync
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c
    functionUses: 0
    functionsReached:
    - snmp_oid_assign
    - LWIP_DEBUGF
    - memset
    - call_synced_function
    linkageType: ''
    returnType: snmp_err_t
    signature: do_sync(const u32_t *root_oid, u8_t root_oid_len, struct snmp_node_instance*
      instance, snmp_threadsync_called_fn fn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_sync
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - root_oid
    - root_oid_len
    - instance
    argTypes:
    - u32_t*
    - u8_t
    - struct snmp_node_instance*
    constantsTouched: []
    func_position:
      end: 200
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 200
    functionName: snmp_threadsync_get_instance
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c
    functionUses: 0
    functionsReached:
    - do_sync
    linkageType: ''
    returnType: snmp_err_t
    signature: snmp_threadsync_get_instance(const u32_t *root_oid, u8_t root_oid_len,
      struct snmp_node_instance* instance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_sync
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - root_oid
    - root_oid_len
    - instance
    argTypes:
    - u32_t*
    - u8_t
    - struct snmp_node_instance*
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: snmp_threadsync_get_next_instance
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c
    functionUses: 0
    functionsReached:
    - do_sync
    linkageType: ''
    returnType: snmp_err_t
    signature: snmp_threadsync_get_next_instance(const u32_t *root_oid, u8_t root_oid_len,
      struct snmp_node_instance* instance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sys_mutex_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:211,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:212,1
    - Dst: sys_sem_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:213,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:214,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - instance
    - sync_fn
    argTypes:
    - struct snmp_threadsync_instance*
    - snmp_threadsync_synchronizer_fn
    constantsTouched: []
    func_position:
      end: 217
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 217
    functionName: snmp_threadsync_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - sys_sem_new
    - sys_mutex_new
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: snmp_threadsync_init(struct snmp_threadsync_instance *instance, snmp_threadsync_synchronizer_fn
      sync_fn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_icmp.c:65,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_icmp.c:68,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_icmp.c:71,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_icmp.c:74,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_icmp.c:77,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_icmp.c:80,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_icmp.c:83,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_icmp.c:86,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_icmp.c:89,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_icmp.c:92,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_icmp.c:95,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_icmp.c:98,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_icmp.c:101,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_icmp.c:104,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_icmp.c:107,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_icmp.c:110,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_icmp.c:113,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_icmp.c:125,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_icmp.c:128,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_icmp.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 85
    argCount: 2
    argNames:
    - node
    - value
    argTypes:
    - struct snmp_scalar_array_node_def*
    - void*
    constantsTouched: []
    func_position:
      end: 148
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 148
    functionName: icmp_get_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_icmp.c
    functionUses: 0
    functionsReached:
    - STATS_GET
    - LWIP_DEBUGF
    linkageType: ''
    returnType: s16_t
    signature: icmp_get_value(const struct snmp_scalar_array_node_def *node, void
      *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_dummy.c:56,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_dummy.c:60,1
    - Dst: snmpv3_get_engine_id
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_dummy.c:64,1
    - Dst: snmpv3_password_to_key_sha
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_dummy.c:67,1
    - Dst: snmpv3_password_to_key_sha
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_dummy.c:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - username
    - auth_algo
    - auth_key
    - priv_algo
    - priv_key
    argTypes:
    - char*
    - u8_t*
    - u8_t*
    - u8_t*
    - u8_t*
    constantsTouched: []
    func_position:
      end: 79
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 79
    functionName: snmpv3_get_user
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_dummy.c
    functionUses: 0
    functionsReached:
    - strlen
    - snmpv3_get_engine_id
    - memcmp
    - snmpv3_password_to_key_sha
    linkageType: ''
    returnType: err_t
    signature: snmpv3_get_user(const char* username, u8_t *auth_algo, u8_t *auth_key,
      u8_t *priv_algo, u8_t *priv_key)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - id
    - len
    argTypes:
    - char**
    - u8_t*
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: snmpv3_get_engine_id
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_dummy.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: snmpv3_get_engine_id(const char **id, u8_t *len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_dummy.c:101,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_dummy.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - id
    - len
    argTypes:
    - char*
    - u8_t
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: snmpv3_set_engine_id
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_dummy.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: err_t
    signature: snmpv3_set_engine_id(const char *id, u8_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: snmpv3_get_engine_boots
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_dummy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32_t
    signature: snmpv3_get_engine_boots(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_dummy.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - boots
    argTypes:
    - u32_t
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: snmpv3_set_engine_boots
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_dummy.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: void
    signature: snmpv3_set_engine_boots(u32_t boots)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: snmpv3_get_engine_time
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_dummy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32_t
    signature: snmpv3_get_engine_time(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: snmpv3_reset_engine_time
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_dummy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: snmpv3_reset_engine_time(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:85,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:88,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:91,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:94,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:111,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:114,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:117,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:120,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:123,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:126,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:129,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:132,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 62
    argCount: 2
    argNames:
    - instance
    - value
    argTypes:
    - struct snmp_node_instance*
    - void*
    constantsTouched: []
    func_position:
      end: 137
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 137
    functionName: tcp_get_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c
    functionUses: 0
    functionsReached:
    - STATS_GET
    - LWIP_DEBUGF
    - memset
    linkageType: ''
    returnType: s16_t
    signature: tcp_get_value(struct snmp_node_instance* instance, void* value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:160,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:168,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:177,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:188,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - pcb
    - column
    - value
    - value_len
    argTypes:
    - struct tcp_pcb*
    - u32_t*
    - union snmp_variant_value*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 193
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 193
    functionName: tcp_ConnTable_get_cell_value_core
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - ip_2_ip4
    - LWIP_ASSERT
    linkageType: ''
    returnType: snmp_err_t
    signature: tcp_ConnTable_get_cell_value_core(struct tcp_pcb *pcb, const u32_t*
      column, union snmp_variant_value* value, u32_t* value_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_oid_in_range
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:206,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:206,1
    - Dst: snmp_oid_to_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:211,1
    - Dst: snmp_oid_to_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:213,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:217,1
    - Dst: IP_IS_V4_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:222,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:223,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:223,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:227,1
    - Dst: tcp_ConnTable_get_cell_value_core
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:229,1
    - Dst: IP_IS_V4_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:232,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:233,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:233,1
    - Dst: tcp_ConnTable_get_cell_value_core
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:235,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 5
    argNames:
    - column
    - row_oid
    - row_oid_len
    - value
    - value_len
    argTypes:
    - u32_t*
    - u32_t*
    - u8_t
    - union snmp_variant_value*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 246
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 246
    functionName: tcp_ConnTable_get_cell_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c
    functionUses: 0
    functionsReached:
    - snmp_oid_in_range
    - LWIP_ARRAYSIZE
    - ip4_addr_cmp
    - tcp_ConnTable_get_cell_value_core
    - IP_IS_V4_VAL
    - ip_2_ip4
    - snmp_oid_to_ip4
    linkageType: ''
    returnType: snmp_err_t
    signature: tcp_ConnTable_get_cell_value(const u32_t* column, const u32_t* row_oid,
      u8_t row_oid_len, union snmp_variant_value* value, u32_t* value_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:254,1
    - Dst: snmp_next_oid_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:257,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:257,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:260,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:263,1
    - Dst: IP_IS_V4_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:265,1
    - Dst: snmp_ip4_to_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:266,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:266,1
    - Dst: snmp_ip4_to_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:271,1
    - Dst: IP_IS_V6_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:274,1
    - Dst: snmp_ip4_to_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:277,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:277,1
    - Dst: snmp_next_oid_check
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:282,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:282,1
    - Dst: snmp_oid_assign
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:291,1
    - Dst: tcp_ConnTable_get_cell_value_core
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:293,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - column
    - row_oid
    - value
    - value_len
    argTypes:
    - u32_t*
    - struct snmp_obj_id*
    - union snmp_variant_value*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 298
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 298
    functionName: tcp_ConnTable_get_next_cell_instance_and_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c
    functionUses: 0
    functionsReached:
    - snmp_oid_assign
    - LWIP_ARRAYSIZE
    - snmp_next_oid_init
    - snmp_ip4_to_oid
    - IP_IS_V4_VAL
    - IP_IS_V6_VAL
    - snmp_next_oid_check
    - ip_2_ip4
    - tcp_ConnTable_get_cell_value_core
    linkageType: ''
    returnType: snmp_err_t
    signature: tcp_ConnTable_get_next_cell_instance_and_value(const u32_t* column,
      struct snmp_obj_id* row_oid, union snmp_variant_value* value, u32_t* value_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - column
    - pcb
    - value
    argTypes:
    - u32_t*
    - struct tcp_pcb*
    - union snmp_variant_value*
    constantsTouched: []
    func_position:
      end: 320
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 320
    functionName: tcp_ConnectionTable_get_cell_value_core
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: snmp_err_t
    signature: tcp_ConnectionTable_get_cell_value_core(const u32_t* column, struct
      tcp_pcb *pcb, union snmp_variant_value* value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:332,1
    - Dst: snmp_oid_to_ip_port
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:335,1
    - Dst: snmp_oid_to_ip_port
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:341,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:347,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:351,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:353,1
    - Dst: tcp_ConnectionTable_get_cell_value_core
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:356,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 5
    argNames:
    - column
    - row_oid
    - row_oid_len
    - value
    - value_len
    argTypes:
    - u32_t*
    - u32_t*
    - u8_t
    - union snmp_variant_value*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 364
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 364
    functionName: tcp_ConnectionTable_get_cell_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c
    functionUses: 0
    functionsReached:
    - snmp_oid_to_ip_port
    - LWIP_ARRAYSIZE
    - tcp_ConnectionTable_get_cell_value_core
    - LWIP_UNUSED_ARG
    - ip_addr_cmp
    linkageType: ''
    returnType: snmp_err_t
    signature: tcp_ConnectionTable_get_cell_value(const u32_t* column, const u32_t*
      row_oid, u8_t row_oid_len, union snmp_variant_value* value, u32_t* value_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:377,1
    - Dst: snmp_next_oid_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:380,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:380,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:383,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:388,1
    - Dst: snmp_ip_port_to_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:391,1
    - Dst: snmp_ip_port_to_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:394,1
    - Dst: snmp_next_oid_check
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:397,1
    - Dst: snmp_oid_assign
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:405,1
    - Dst: tcp_ConnectionTable_get_cell_value_core
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:407,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - column
    - row_oid
    - value
    - value_len
    argTypes:
    - u32_t*
    - struct snmp_obj_id*
    - union snmp_variant_value*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 412
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 412
    functionName: tcp_ConnectionTable_get_next_cell_instance_and_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c
    functionUses: 0
    functionsReached:
    - snmp_oid_assign
    - snmp_next_oid_init
    - LWIP_ARRAYSIZE
    - snmp_ip_port_to_oid
    - snmp_next_oid_check
    - tcp_ConnectionTable_get_cell_value_core
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: snmp_err_t
    signature: tcp_ConnectionTable_get_next_cell_instance_and_value(const u32_t* column,
      struct snmp_obj_id* row_oid, union snmp_variant_value* value, u32_t* value_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - column
    - value
    argTypes:
    - u32_t*
    - union snmp_variant_value*
    constantsTouched: []
    func_position:
      end: 429
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 429
    functionName: tcp_ListenerTable_get_cell_value_core
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: snmp_err_t
    signature: tcp_ListenerTable_get_cell_value_core(const u32_t* column, union snmp_variant_value*
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:439,1
    - Dst: snmp_oid_to_ip_port
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:442,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:450,1
    - Dst: tcp_ListenerTable_get_cell_value_core
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - column
    - row_oid
    - row_oid_len
    - value
    - value_len
    argTypes:
    - u32_t*
    - u32_t*
    - u8_t
    - union snmp_variant_value*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 460
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 460
    functionName: tcp_ListenerTable_get_cell_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - snmp_oid_to_ip_port
    - ip_addr_cmp
    - tcp_ListenerTable_get_cell_value_core
    linkageType: ''
    returnType: snmp_err_t
    signature: tcp_ListenerTable_get_cell_value(const u32_t* column, const u32_t*
      row_oid, u8_t row_oid_len, union snmp_variant_value* value, u32_t* value_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:470,1
    - Dst: snmp_next_oid_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:473,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:473,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:479,1
    - Dst: snmp_ip_port_to_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:482,1
    - Dst: snmp_next_oid_check
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:485,1
    - Dst: snmp_oid_assign
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:492,1
    - Dst: tcp_ListenerTable_get_cell_value_core
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c:494,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - column
    - row_oid
    - value
    - value_len
    argTypes:
    - u32_t*
    - struct snmp_obj_id*
    - union snmp_variant_value*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 499
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 499
    functionName: tcp_ListenerTable_get_next_cell_instance_and_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c
    functionUses: 0
    functionsReached:
    - snmp_oid_assign
    - snmp_next_oid_init
    - LWIP_ARRAYSIZE
    - snmp_ip_port_to_oid
    - tcp_ListenerTable_get_cell_value_core
    - snmp_next_oid_check
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: snmp_err_t
    signature: tcp_ListenerTable_get_next_cell_instance_and_value(const u32_t* column,
      struct snmp_obj_id* row_oid, union snmp_variant_value* value, u32_t* value_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dst_idx
    - enable
    argTypes:
    - u8_t
    - u8_t
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 112
    functionName: snmp_trap_dst_enable
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: snmp_trap_dst_enable(u8_t dst_idx, u8_t enable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dst_idx
    - dst
    argTypes:
    - u8_t
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: snmp_trap_dst_ip_set
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c
    functionUses: 0
    functionsReached:
    - ip_addr_set
    linkageType: ''
    returnType: void
    signature: snmp_trap_dst_ip_set(u8_t dst_idx, const ip_addr_t *dst)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enable
    argTypes:
    - u8_t
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: snmp_set_auth_traps_enabled
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: snmp_set_auth_traps_enabled(u8_t enable)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: snmp_get_auth_traps_enabled
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8_t
    signature: snmp_get_auth_traps_enabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:177,1
    - Dst: snmp_get_local_ip_for_dst
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:179,1
    - Dst: snmp_get_device_enterprise_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:181,1
    - Dst: MIB2_COPY_SYSUPTIME_TO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:193,1
    - Dst: snmp_trap_varbind_sum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:196,1
    - Dst: snmp_trap_header_sum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:197,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:200,1
    - Dst: snmp_pbuf_stream_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:203,1
    - Dst: snmp_trap_header_enc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:206,1
    - Dst: snmp_trap_varbind_enc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:207,1
    - Dst: snmp_sendto
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:213,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:214,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 4
    argNames:
    - eoid
    - generic_trap
    - specific_trap
    - varbinds
    argTypes:
    - struct snmp_obj_id*
    - s32_t
    - s32_t
    - struct snmp_varbind*
    constantsTouched: []
    func_position:
      end: 225
      start: 165
    functionDepth: 4
    functionLinenumber: 165
    functionLinenumberEnd: 225
    functionName: snmp_send_trap
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c
    functionUses: 0
    functionsReached:
    - snmp_get_local_ip_for_dst
    - MIB2_COPY_SYSUPTIME_TO
    - snmp_trap_varbind_sum
    - pbuf_alloc
    - snmp_trap_header_sum
    - snmp_trap_varbind_enc
    - snmp_trap_header_enc
    - pbuf_free
    - snmp_get_device_enterprise_oid
    - snmp_sendto
    - snmp_pbuf_stream_init
    - ip_addr_isany
    linkageType: ''
    returnType: err_t
    signature: snmp_send_trap(const struct snmp_obj_id* eoid, s32_t generic_trap,
      s32_t specific_trap, struct snmp_varbind *varbinds)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_send_trap
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - generic_trap
    argTypes:
    - s32_t
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 5
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: snmp_send_trap_generic
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c
    functionUses: 0
    functionsReached:
    - snmp_send_trap
    linkageType: ''
    returnType: err_t
    signature: snmp_send_trap_generic(s32_t generic_trap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_send_trap
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - specific_trap
    - varbinds
    argTypes:
    - s32_t
    - struct snmp_varbind*
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 5
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: snmp_send_trap_specific
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c
    functionUses: 0
    functionsReached:
    - snmp_send_trap
    linkageType: ''
    returnType: err_t
    signature: snmp_send_trap_specific(s32_t specific_trap, struct snmp_varbind *varbinds)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_send_trap_generic
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 6
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: snmp_coldstart_trap
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c
    functionUses: 0
    functionsReached:
    - snmp_send_trap_generic
    linkageType: ''
    returnType: void
    signature: snmp_coldstart_trap(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_send_trap_generic
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 268
      start: 262
    functionDepth: 6
    functionLinenumber: 262
    functionLinenumberEnd: 268
    functionName: snmp_authfail_trap
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c
    functionUses: 0
    functionsReached:
    - snmp_send_trap_generic
    linkageType: ''
    returnType: void
    signature: snmp_authfail_trap(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_varbind_length
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:282,1
    - Dst: snmp_asn1_enc_length_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - trap
    - varbinds
    argTypes:
    - struct snmp_msg_trap*
    - struct snmp_varbind*
    constantsTouched: []
    func_position:
      end: 294
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 294
    functionName: snmp_trap_varbind_sum
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c
    functionUses: 1
    functionsReached:
    - snmp_varbind_length
    - snmp_asn1_enc_length_cnt
    linkageType: ''
    returnType: u16_t
    signature: snmp_trap_varbind_sum(struct snmp_msg_trap *trap, struct snmp_varbind
      *varbinds)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_asn1_enc_u32t_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:313,1
    - Dst: snmp_asn1_enc_length_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:314,1
    - Dst: snmp_asn1_enc_s32t_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:317,1
    - Dst: snmp_asn1_enc_length_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:318,1
    - Dst: snmp_asn1_enc_s32t_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:321,1
    - Dst: snmp_asn1_enc_length_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:322,1
    - Dst: IP_IS_V6_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:325,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:327,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:331,1
    - Dst: snmp_asn1_enc_length_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:334,1
    - Dst: snmp_asn1_enc_oid_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:337,1
    - Dst: snmp_asn1_enc_length_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:338,1
    - Dst: snmp_asn1_enc_length_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:342,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:345,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:345,1
    - Dst: snmp_asn1_enc_length_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:346,1
    - Dst: snmp_asn1_enc_s32t_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:349,1
    - Dst: snmp_asn1_enc_length_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:350,1
    - Dst: snmp_asn1_enc_length_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 2
    argNames:
    - trap
    - vb_len
    argTypes:
    - struct snmp_msg_trap*
    - u16_t
    constantsTouched: []
    func_position:
      end: 358
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 358
    functionName: snmp_trap_header_sum
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c
    functionUses: 1
    functionsReached:
    - ip_2_ip6
    - snmp_asn1_enc_u32t_cnt
    - strlen
    - IP_IS_V6_VAL
    - snmp_asn1_enc_oid_cnt
    - LWIP_MIN
    - snmp_asn1_enc_s32t_cnt
    - ip_2_ip4
    - snmp_asn1_enc_length_cnt
    linkageType: ''
    returnType: u16_t
    signature: snmp_trap_header_sum(struct snmp_msg_trap *trap, u16_t vb_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:368,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:369,1
    - Dst: snmp_append_outbound_varbind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - trap
    - pbuf_stream
    - varbinds
    argTypes:
    - struct snmp_msg_trap*
    - struct snmp_pbuf_stream*
    - struct snmp_varbind*
    constantsTouched: []
    func_position:
      end: 376
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 376
    functionName: snmp_trap_varbind_enc
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c
    functionUses: 1
    functionsReached:
    - snmp_append_outbound_varbind
    - snmp_ans1_enc_tlv
    - SNMP_ASN1_SET_TLV_PARAMS
    linkageType: ''
    returnType: void
    signature: snmp_trap_varbind_enc(struct snmp_msg_trap *trap, struct snmp_pbuf_stream
      *pbuf_stream, struct snmp_varbind *varbinds)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:387,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:388,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:391,1
    - Dst: snmp_asn1_enc_s32t_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:392,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:393,1
    - Dst: snmp_asn1_enc_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:394,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:397,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:398,1
    - Dst: snmp_asn1_enc_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:399,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:402,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:403,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:406,1
    - Dst: snmp_asn1_enc_oid_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:407,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:408,1
    - Dst: snmp_asn1_enc_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:409,1
    - Dst: IP_IS_V6_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:412,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:414,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:414,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:415,1
    - Dst: snmp_asn1_enc_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:416,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:416,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:416,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:420,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:420,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:421,1
    - Dst: snmp_asn1_enc_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:422,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:422,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:422,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:427,1
    - Dst: snmp_asn1_enc_s32t_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:428,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:429,1
    - Dst: snmp_asn1_enc_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:430,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:433,1
    - Dst: snmp_asn1_enc_s32t_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:434,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:435,1
    - Dst: snmp_asn1_enc_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:436,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:439,1
    - Dst: snmp_asn1_enc_s32t_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:440,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:441,1
    - Dst: snmp_asn1_enc_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 2
    argNames:
    - trap
    - pbuf_stream
    argTypes:
    - struct snmp_msg_trap*
    - struct snmp_pbuf_stream*
    constantsTouched: []
    func_position:
      end: 443
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 443
    functionName: snmp_trap_header_enc
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c
    functionUses: 1
    functionsReached:
    - ip_2_ip6
    - snmp_asn1_enc_raw
    - snmp_asn1_enc_oid
    - IP_IS_V6_VAL
    - snmp_asn1_enc_s32t
    - snmp_asn1_enc_oid_cnt
    - snmp_asn1_enc_s32t_cnt
    - snmp_ans1_enc_tlv
    - ip_2_ip4
    - SNMP_ASN1_SET_TLV_PARAMS
    linkageType: ''
    returnType: void
    signature: snmp_trap_header_enc(struct snmp_msg_trap *trap, struct snmp_pbuf_stream
      *pbuf_stream)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_netconn.c:53,1
    - Dst: netconn_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_netconn.c:57,1
    - Dst: netconn_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_netconn.c:58,1
    - Dst: netconn_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_netconn.c:60,1
    - Dst: netconn_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_netconn.c:61,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_netconn.c:63,1
    - Dst: netconn_recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_netconn.c:68,1
    - Dst: snmp_receive
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_netconn.c:71,1
    - Dst: netbuf_delete
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_netconn.c:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 78
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 78
    functionName: snmp_netconn_thread
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_netconn.c
    functionUses: 0
    functionsReached:
    - netconn_bind
    - netbuf_delete
    - LWIP_ERROR
    - snmp_receive
    - netconn_recv
    - LWIP_UNUSED_ARG
    - netconn_new
    linkageType: ''
    returnType: void
    signature: snmp_netconn_thread(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_netconn.c:86,1
    - Dst: netconn_sendto
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_netconn.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - handle
    - p
    - dst
    - port
    argTypes:
    - void*
    - struct pbuf*
    - ip_addr_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: snmp_sendto
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_netconn.c
    functionUses: 1
    functionsReached:
    - memset
    - netconn_sendto
    linkageType: ''
    returnType: err_t
    signature: snmp_sendto(void *handle, struct pbuf *p, const ip_addr_t *dst, u16_t
      port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_netconn.c:100,1
    - Dst: ip_route_get_local_ip
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_netconn.c:102,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_netconn.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - handle
    - dst
    - result
    argTypes:
    - void*
    - ip_addr_t*
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 110
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 110
    functionName: snmp_get_local_ip_for_dst
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_netconn.c
    functionUses: 1
    functionsReached:
    - LWIP_UNUSED_ARG
    - ip_route_get_local_ip
    - ip_addr_copy
    linkageType: ''
    returnType: u8_t
    signature: snmp_get_local_ip_for_dst(void* handle, const ip_addr_t *dst, ip_addr_t
      *result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sys_thread_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_netconn.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: snmp_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_netconn.c
    functionUses: 0
    functionsReached:
    - sys_thread_new
    linkageType: ''
    returnType: void
    signature: snmp_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmpv3_set_engine_boots
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: snmpv3_engine_id_changed
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c
    functionUses: 0
    functionsReached:
    - snmpv3_set_engine_boots
    linkageType: ''
    returnType: void
    signature: snmpv3_engine_id_changed(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmpv3_get_engine_boots
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c:64,1
    - Dst: snmpv3_get_engine_boots
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c:65,1
    - Dst: snmpv3_get_engine_boots
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c:66,1
    - Dst: snmpv3_set_engine_boots
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c:69,1
    - Dst: snmpv3_get_engine_boots
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: snmpv3_get_engine_boots_internal
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c
    functionUses: 0
    functionsReached:
    - snmpv3_set_engine_boots
    - snmpv3_get_engine_boots
    linkageType: ''
    returnType: u32_t
    signature: snmpv3_get_engine_boots_internal(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmpv3_get_engine_time
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c:81,1
    - Dst: snmpv3_reset_engine_time
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c:82,1
    - Dst: snmpv3_get_engine_boots
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c:84,1
    - Dst: snmpv3_set_engine_boots
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c:85,1
    - Dst: snmpv3_get_engine_boots
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c:85,1
    - Dst: snmpv3_set_engine_boots
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c:87,1
    - Dst: snmpv3_get_engine_time
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 92
    functionName: snmpv3_get_engine_time_internal
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c
    functionUses: 0
    functionsReached:
    - snmpv3_get_engine_time
    - snmpv3_set_engine_boots
    - snmpv3_get_engine_boots
    - snmpv3_reset_engine_time
    linkageType: ''
    returnType: u32_t
    signature: snmpv3_get_engine_time_internal(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_RAND
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c:113,1
    - Dst: LWIP_RAND
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c:114,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c:117,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c:118,1
    - Dst: LWIP_SNMPV3_GET_ENGINE_BOOTS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c:127,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c:128,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - priv_param
    argTypes:
    - u8_t*
    constantsTouched: []
    func_position:
      end: 133
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 133
    functionName: snmpv3_build_priv_param
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c
    functionUses: 0
    functionsReached:
    - LWIP_RAND
    - LWIP_SNMPV3_GET_ENGINE_BOOTS
    - SMEMCPY
    linkageType: ''
    returnType: err_t
    signature: snmpv3_build_priv_param(u8_t* priv_param)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:67,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:70,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:73,1
    - Dst: STATS_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:76,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:79,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:82,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 2
    argNames:
    - instance
    - value
    argTypes:
    - struct snmp_node_instance*
    - void*
    constantsTouched: []
    func_position:
      end: 90
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 90
    functionName: udp_get_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c
    functionUses: 0
    functionsReached:
    - STATS_GET
    - LWIP_DEBUGF
    - memset
    linkageType: ''
    returnType: s16_t
    signature: udp_get_value(struct snmp_node_instance* instance, void* value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - column
    - value
    argTypes:
    - u32_t*
    - union snmp_variant_value*
    constantsTouched: []
    func_position:
      end: 107
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 107
    functionName: udp_endpointTable_get_cell_value_core
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: snmp_err_t
    signature: udp_endpointTable_get_cell_value_core(const u32_t* column, union snmp_variant_value*
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:117,1
    - Dst: snmp_oid_to_ip_port
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:120,1
    - Dst: snmp_oid_to_ip_port
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:126,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:142,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:144,1
    - Dst: udp_endpointTable_get_cell_value_core
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:147,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 5
    argNames:
    - column
    - row_oid
    - row_oid_len
    - value
    - value_len
    argTypes:
    - u32_t*
    - u32_t*
    - u8_t
    - union snmp_variant_value*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 154
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 154
    functionName: udp_endpointTable_get_cell_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - udp_endpointTable_get_cell_value_core
    - snmp_oid_to_ip_port
    - ip_addr_cmp
    linkageType: ''
    returnType: snmp_err_t
    signature: udp_endpointTable_get_cell_value(const u32_t* column, const u32_t*
      row_oid, u8_t row_oid_len, union snmp_variant_value* value, u32_t* value_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:167,1
    - Dst: snmp_next_oid_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:170,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:170,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:175,1
    - Dst: snmp_ip_port_to_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:179,1
    - Dst: snmp_ip_port_to_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:182,1
    - Dst: snmp_next_oid_check
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:188,1
    - Dst: snmp_oid_assign
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:195,1
    - Dst: udp_endpointTable_get_cell_value_core
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - column
    - row_oid
    - value
    - value_len
    argTypes:
    - u32_t*
    - struct snmp_obj_id*
    - union snmp_variant_value*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 202
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 202
    functionName: udp_endpointTable_get_next_cell_instance_and_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c
    functionUses: 0
    functionsReached:
    - snmp_oid_assign
    - snmp_next_oid_init
    - LWIP_ARRAYSIZE
    - snmp_ip_port_to_oid
    - snmp_next_oid_check
    - udp_endpointTable_get_cell_value_core
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: snmp_err_t
    signature: udp_endpointTable_get_next_cell_instance_and_value(const u32_t* column,
      struct snmp_obj_id* row_oid, union snmp_variant_value* value, u32_t* value_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:220,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - pcb
    - column
    - value
    - value_len
    argTypes:
    - struct udp_pcb*
    - u32_t*
    - union snmp_variant_value*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 236
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 236
    functionName: udp_Table_get_cell_value_core
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - ip_2_ip4
    linkageType: ''
    returnType: snmp_err_t
    signature: udp_Table_get_cell_value_core(struct udp_pcb *pcb, const u32_t* column,
      union snmp_variant_value* value, u32_t* value_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_oid_in_range
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:246,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:246,1
    - Dst: snmp_oid_to_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:251,1
    - Dst: IP_IS_V4_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:257,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:258,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:258,1
    - Dst: udp_Table_get_cell_value_core
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - column
    - row_oid
    - row_oid_len
    - value
    - value_len
    argTypes:
    - u32_t*
    - u32_t*
    - u8_t
    - union snmp_variant_value*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 268
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 268
    functionName: udp_Table_get_cell_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c
    functionUses: 0
    functionsReached:
    - snmp_oid_in_range
    - LWIP_ARRAYSIZE
    - ip4_addr_cmp
    - IP_IS_V4_VAL
    - udp_Table_get_cell_value_core
    - ip_2_ip4
    - snmp_oid_to_ip4
    linkageType: ''
    returnType: snmp_err_t
    signature: udp_Table_get_cell_value(const u32_t* column, const u32_t* row_oid,
      u8_t row_oid_len, union snmp_variant_value* value, u32_t* value_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:275,1
    - Dst: snmp_next_oid_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:278,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:278,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:283,1
    - Dst: IP_IS_V4_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:285,1
    - Dst: snmp_ip4_to_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:286,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:286,1
    - Dst: snmp_next_oid_check
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:290,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:290,1
    - Dst: snmp_oid_assign
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:298,1
    - Dst: udp_Table_get_cell_value_core
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - column
    - row_oid
    - value
    - value_len
    argTypes:
    - u32_t*
    - struct snmp_obj_id*
    - union snmp_variant_value*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 305
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 305
    functionName: udp_Table_get_next_cell_instance_and_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c
    functionUses: 0
    functionsReached:
    - snmp_oid_assign
    - LWIP_ARRAYSIZE
    - snmp_next_oid_init
    - snmp_ip4_to_oid
    - IP_IS_V4_VAL
    - snmp_next_oid_check
    - udp_Table_get_cell_value_core
    - ip_2_ip4
    linkageType: ''
    returnType: snmp_err_t
    signature: udp_Table_get_next_cell_instance_and_value(const u32_t* column, struct
      snmp_obj_id* row_oid, union snmp_variant_value* value, u32_t* value_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2.c:65,1
    - Dst: fn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2.c:66,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2.c:67,1
    - Dst: tcpip_callback
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - fn
    - arg
    argTypes:
    - snmp_threadsync_called_fn
    - void*
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: snmp_mib2_lwip_synchronizer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2.c
    functionUses: 0
    functionsReached:
    - UNLOCK_TCPIP_CORE
    - LOCK_TCPIP_CORE
    - tcpip_callback
    - fn
    linkageType: ''
    returnType: void
    signature: snmp_mib2_lwip_synchronizer(snmp_threadsync_called_fn fn, void* arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: snmp_get_community
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*

      snmp_get_community(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:91,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - community
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: snmp_set_community
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c
    functionUses: 0
    functionsReached:
    - strlen
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: snmp_set_community(const char * const community)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: snmp_get_community_write
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*

      snmp_get_community_write(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: snmp_get_community_trap
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*

      snmp_get_community_trap(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:128,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:129,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - community
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: snmp_set_community_write
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c
    functionUses: 0
    functionsReached:
    - strlen
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: snmp_set_community_write(const char * const community)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:144,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - community
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: snmp_set_community_trap
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c
    functionUses: 0
    functionsReached:
    - strlen
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: snmp_set_community_trap(const char * const community)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - write_callback
    - callback_arg
    argTypes:
    - snmp_write_callback_fct
    - void*
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: snmp_set_write_callback
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: snmp_set_write_callback(snmp_write_callback_fct write_callback, void*
      callback_arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:184,1
    - Dst: snmp_parse_inbound_frame
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:192,1
    - Dst: snmp_prepare_outbound_frame
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:194,1
    - Dst: snmp_process_get_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:200,1
    - Dst: snmp_process_getnext_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:202,1
    - Dst: snmp_process_getbulk_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:204,1
    - Dst: snmp_process_set_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:206,1
    - Dst: snmp_complete_outbound_frame
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:211,1
    - Dst: snmp_sendto
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:214,1
    - Dst: snmp_execute_write_callbacks
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:220,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:227,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 4
    argNames:
    - handle
    - p
    - source_ip
    - port
    argTypes:
    - void*
    - struct pbuf*
    - ip_addr_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 230
      start: 178
    functionDepth: 4
    functionLinenumber: 178
    functionLinenumberEnd: 230
    functionName: snmp_receive
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c
    functionUses: 2
    functionsReached:
    - snmp_complete_outbound_frame
    - snmp_process_getnext_request
    - snmp_process_get_request
    - memset
    - snmp_execute_write_callbacks
    - snmp_process_set_request
    - pbuf_free
    - snmp_prepare_outbound_frame
    - snmp_sendto
    - snmp_process_getbulk_request
    - snmp_parse_inbound_frame
    linkageType: ''
    returnType: void
    signature: snmp_receive(void *handle, struct pbuf *p, const ip_addr_t *source_ip,
      u16_t port)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - node_instance
    - validate_arg
    argTypes:
    - struct snmp_node_instance*
    - void*
    constantsTouched: []
    func_position:
      end: 245
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 245
    functionName: snmp_msg_getnext_validate_node_inst
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8_t
    signature: snmp_msg_getnext_validate_node_inst(struct snmp_node_instance* node_instance,
      void* validate_arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:252,1
    - Dst: snmp_get_next_node_instance_from_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:256,1
    - Dst: snmp_oid_assign
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:259,1
    - Dst: snmp_get_node_instance_from_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:262,1
    - Dst: snmp_msg_getnext_validate_node_inst
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:266,1
    - Dst: struct snmp_node_instance::release_instance
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:270,1
    - Dst: snmp_append_outbound_varbind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:283,1
    - Dst: struct snmp_node_instance::get_value
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:298,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:304,1
    - Dst: snmp_append_outbound_varbind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:305,1
    - Dst: struct snmp_node_instance::release_instance
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:317,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 3
    argNames:
    - request
    - vb
    - get_next
    argTypes:
    - struct snmp_request*
    - struct snmp_varbind*
    - u8_t
    constantsTouched: []
    func_position:
      end: 320
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 320
    functionName: snmp_process_varbind
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c
    functionUses: 0
    functionsReached:
    - snmp_append_outbound_varbind
    - snmp_oid_assign
    - struct snmp_node_instance::release_instance
    - snmp_get_node_instance_from_oid
    - memset
    - snmp_msg_getnext_validate_node_inst
    - snmp_get_next_node_instance_from_oid
    - struct snmp_node_instance::get_value
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: snmp_process_varbind(struct snmp_request *request, struct snmp_varbind
      *vb, u8_t get_next)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:335,1
    - Dst: snmp_vb_enumerator_get_next
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:338,1
    - Dst: snmp_process_varbind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:341,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - request
    argTypes:
    - struct snmp_request*
    constantsTouched: []
    func_position:
      end: 357
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 357
    functionName: snmp_process_get_request
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c
    functionUses: 1
    functionsReached:
    - snmp_vb_enumerator_get_next
    - LWIP_DEBUGF
    - snmp_process_varbind
    linkageType: ''
    returnType: err_t
    signature: snmp_process_get_request(struct snmp_request *request)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:371,1
    - Dst: snmp_vb_enumerator_get_next
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:374,1
    - Dst: snmp_process_varbind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:377,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - request
    argTypes:
    - struct snmp_request*
    constantsTouched: []
    func_position:
      end: 393
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 393
    functionName: snmp_process_getnext_request
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c
    functionUses: 1
    functionsReached:
    - snmp_vb_enumerator_get_next
    - LWIP_DEBUGF
    - snmp_process_varbind
    linkageType: ''
    returnType: err_t
    signature: snmp_process_getnext_request(struct snmp_request *request)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:412,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:417,1
    - Dst: snmp_vb_enumerator_get_next
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:431,1
    - Dst: snmp_process_varbind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:441,1
    - Dst: snmp_vb_enumerator_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:451,1
    - Dst: snmp_vb_enumerator_get_next
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:456,1
    - Dst: snmp_process_varbind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:459,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:471,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 63
    argCount: 1
    argNames:
    - request
    argTypes:
    - struct snmp_request*
    constantsTouched: []
    func_position:
      end: 491
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 491
    functionName: snmp_process_getbulk_request
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - snmp_process_varbind
    - LWIP_MIN
    - snmp_vb_enumerator_get_next
    - snmp_vb_enumerator_init
    linkageType: ''
    returnType: err_t
    signature: snmp_process_getbulk_request(struct snmp_request *request)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:505,1
    - Dst: snmp_vb_enumerator_get_next
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:509,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:512,1
    - Dst: snmp_get_node_instance_from_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:514,1
    - Dst: struct snmp_node_instance::set_test
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:522,1
    - Dst: struct snmp_node_instance::release_instance
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:527,1
    - Dst: snmp_vb_enumerator_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:545,1
    - Dst: snmp_vb_enumerator_get_next
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:547,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:550,1
    - Dst: snmp_get_node_instance_from_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:551,1
    - Dst: struct snmp_node_instance::set_value
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:553,1
    - Dst: struct snmp_node_instance::release_instance
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:563,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 1
    argNames:
    - request
    argTypes:
    - struct snmp_request*
    constantsTouched: []
    func_position:
      end: 577
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 577
    functionName: snmp_process_set_request
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - struct snmp_node_instance::set_test
    - struct snmp_node_instance::release_instance
    - snmp_get_node_instance_from_oid
    - memset
    - struct snmp_node_instance::set_value
    - snmp_vb_enumerator_get_next
    - snmp_vb_enumerator_init
    linkageType: ''
    returnType: err_t
    signature: snmp_process_set_request(struct snmp_request *request)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:619,1
    - Dst: snmp_pbuf_stream_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:619,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:622,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:622,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:623,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:627,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:627,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:628,1
    - Dst: SNMP_ASN1_TLV_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:629,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:630,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:632,1
    - Dst: snmp_asn1_dec_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:632,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:653,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:654,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:657,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:657,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:658,1
    - Dst: SNMP_ASN1_TLV_HDR_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:659,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:660,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:663,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:663,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:664,1
    - Dst: SNMP_ASN1_TLV_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:665,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:666,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:668,1
    - Dst: snmp_asn1_dec_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:668,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:672,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:672,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:673,1
    - Dst: SNMP_ASN1_TLV_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:674,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:675,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:677,1
    - Dst: snmp_asn1_dec_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:677,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:681,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:681,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:682,1
    - Dst: SNMP_ASN1_TLV_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:683,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:684,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:686,1
    - Dst: snmp_asn1_dec_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:686,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:690,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:690,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:691,1
    - Dst: SNMP_ASN1_TLV_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:692,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:693,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:695,1
    - Dst: snmp_asn1_dec_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:695,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:705,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:705,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:706,1
    - Dst: SNMP_ASN1_TLV_HDR_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:707,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:708,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:711,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:711,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:712,1
    - Dst: SNMP_ASN1_TLV_HDR_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:713,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:714,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:717,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:717,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:718,1
    - Dst: SNMP_ASN1_TLV_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:719,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:720,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:722,1
    - Dst: snmp_asn1_dec_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:722,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:727,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:727,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:728,1
    - Dst: SNMP_ASN1_TLV_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:729,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:730,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:731,1
    - Dst: snmp_asn1_dec_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:731,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:734,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:734,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:735,1
    - Dst: SNMP_ASN1_TLV_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:736,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:737,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:738,1
    - Dst: snmp_asn1_dec_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:738,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:742,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:742,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:743,1
    - Dst: SNMP_ASN1_TLV_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:744,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:745,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:747,1
    - Dst: snmp_asn1_dec_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:747,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:751,1
    - Dst: snmpv3_get_user
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:751,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:754,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:755,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:755,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:756,1
    - Dst: SNMP_ASN1_TLV_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:757,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:758,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:761,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:763,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:764,1
    - Dst: snmp_asn1_dec_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:764,1
    - Dst: LWIP_MAX
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:772,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:776,1
    - Dst: snmp_pbuf_stream_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:776,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:777,1
    - Dst: snmp_pbuf_stream_seek_abs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:777,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:779,1
    - Dst: snmp_asn1_enc_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:779,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:782,1
    - Dst: snmp_pbuf_stream_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:782,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:784,1
    - Dst: snmpv3_get_user
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:784,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:785,1
    - Dst: snmpv3_auth
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:785,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:787,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:787,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:793,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:797,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:798,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:798,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:799,1
    - Dst: SNMP_ASN1_TLV_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:800,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:801,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:803,1
    - Dst: snmp_asn1_dec_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:803,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:812,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:812,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:813,1
    - Dst: SNMP_ASN1_TLV_HDR_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:814,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:815,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:817,1
    - Dst: snmpv3_get_user
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:817,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:818,1
    - Dst: snmpv3_crypt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:818,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:827,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:827,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:828,1
    - Dst: SNMP_ASN1_TLV_HDR_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:829,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:830,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:833,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:833,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:834,1
    - Dst: SNMP_ASN1_TLV_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:835,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:836,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:838,1
    - Dst: snmp_asn1_dec_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:838,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:843,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:843,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:844,1
    - Dst: SNMP_ASN1_TLV_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:845,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:846,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:848,1
    - Dst: snmp_asn1_dec_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:848,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:855,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:855,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:856,1
    - Dst: SNMP_ASN1_TLV_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:857,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:858,1
    - Dst: snmp_asn1_dec_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:860,1
    - Dst: snmp_pbuf_stream_seek
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:864,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:866,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:873,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:873,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:874,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:901,1
    - Dst: snmp_authfail_trap
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:911,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:918,1
    - Dst: snmp_authfail_trap
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:921,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:925,1
    - Dst: snmp_authfail_trap
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:928,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:934,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:934,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:935,1
    - Dst: SNMP_ASN1_TLV_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:936,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:937,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:939,1
    - Dst: snmp_asn1_dec_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:939,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:942,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:942,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:943,1
    - Dst: SNMP_ASN1_TLV_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:944,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:945,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:948,1
    - Dst: snmp_asn1_dec_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:948,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:955,1
    - Dst: snmp_asn1_dec_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:955,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:956,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:960,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:960,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:961,1
    - Dst: SNMP_ASN1_TLV_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:962,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:963,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:966,1
    - Dst: snmp_asn1_dec_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:966,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:972,1
    - Dst: snmp_asn1_dec_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:972,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:973,1
    - Dst: IF_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:977,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:977,1
    - Dst: IF_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:978,1
    - Dst: snmp_vb_enumerator_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:982,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 224
    argCount: 1
    argNames:
    - request
    argTypes:
    - struct snmp_request*
    constantsTouched: []
    func_position:
      end: 985
      start: 610
    functionDepth: 7
    functionLinenumber: 610
    functionLinenumberEnd: 985
    functionName: snmp_parse_inbound_frame
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c
    functionUses: 1
    functionsReached:
    - snmp_pbuf_stream_seek
    - SNMP_ASN1_TLV_LENGTH
    - strcpy
    - snmp_vb_enumerator_init
    - LWIP_DEBUGF
    - snmp_asn1_dec_s32t
    - snmp_asn1_dec_tlv
    - snmpv3_get_user
    - snmpv3_crypt
    - snmp_authfail_trap
    - memset
    - snmpv3_auth
    - strlen
    - LWIP_MAX
    - snmp_asn1_dec_raw
    - IF_PARSE_EXEC
    - memcmp
    - snmp_asn1_enc_raw
    - strncmp
    - SNMP_ASN1_TLV_HDR_LENGTH
    - LWIP_UNUSED_ARG
    - IF_PARSE_ASSERT
    - snmp_pbuf_stream_seek_abs
    - snmp_pbuf_stream_init
    linkageType: ''
    returnType: err_t
    signature: snmp_parse_inbound_frame(struct snmp_request *request)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:996,1
    - Dst: snmp_pbuf_stream_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1001,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1004,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1005,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1005,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1008,1
    - Dst: snmp_asn1_enc_s32t_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1009,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1010,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1010,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1011,1
    - Dst: snmp_asn1_enc_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1011,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1017,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1018,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1018,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1019,1
    - Dst: snmp_asn1_enc_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1019,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1026,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1027,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1027,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1030,1
    - Dst: snmp_asn1_enc_s32t_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1031,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1032,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1032,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1033,1
    - Dst: snmp_asn1_enc_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1033,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1036,1
    - Dst: snmp_asn1_enc_s32t_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1037,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1038,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1038,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1039,1
    - Dst: snmp_asn1_enc_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1039,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1042,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1043,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1043,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1044,1
    - Dst: snmp_asn1_enc_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1044,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1047,1
    - Dst: snmp_asn1_enc_s32t_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1048,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1049,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1049,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1050,1
    - Dst: snmp_asn1_enc_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1050,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1057,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1058,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1058,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1061,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1062,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1062,1
    - Dst: snmpv3_get_engine_id
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1065,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1066,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1067,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1068,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1068,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1069,1
    - Dst: snmp_asn1_enc_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1069,1
    - Dst: snmpv3_get_engine_time
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1071,1
    - Dst: snmpv3_get_engine_boots
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1072,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1075,1
    - Dst: snmp_asn1_enc_s32t_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1076,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1077,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1077,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1078,1
    - Dst: snmp_asn1_enc_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1078,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1081,1
    - Dst: snmp_asn1_enc_s32t_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1082,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1083,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1083,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1084,1
    - Dst: snmp_asn1_enc_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1084,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1087,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1088,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1088,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1089,1
    - Dst: snmp_asn1_enc_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1089,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1094,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1096,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1097,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1097,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1098,1
    - Dst: snmp_asn1_enc_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1098,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1102,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1103,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1103,1
    - Dst: snmpv3_build_priv_param
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1109,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1111,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1112,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1112,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1113,1
    - Dst: snmp_asn1_enc_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1113,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1117,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1118,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1118,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1128,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1129,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1129,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1136,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1137,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1137,1
    - Dst: snmpv3_get_engine_id
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1140,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1141,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1142,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1143,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1143,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1144,1
    - Dst: snmp_asn1_enc_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1144,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1147,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1148,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1148,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1149,1
    - Dst: snmp_asn1_enc_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1149,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1155,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1156,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1156,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1159,1
    - Dst: snmp_asn1_enc_s32t_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1160,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1161,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1161,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1162,1
    - Dst: snmp_asn1_enc_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1162,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1165,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1166,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1166,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1168,1
    - Dst: snmp_pbuf_stream_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1168,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1171,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1172,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1172,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1174,1
    - Dst: snmp_pbuf_stream_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1174,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1177,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1178,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 116
    argCount: 1
    argNames:
    - request
    argTypes:
    - struct snmp_request*
    constantsTouched: []
    func_position:
      end: 1183
      start: 989
    functionDepth: 2
    functionLinenumber: 989
    functionLinenumberEnd: 1183
    functionName: snmp_prepare_outbound_frame
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c
    functionUses: 1
    functionsReached:
    - snmpv3_get_engine_boots
    - pbuf_alloc
    - snmp_asn1_enc_raw
    - snmp_pbuf_stream_init
    - memset
    - MEMCPY
    - snmpv3_get_engine_id
    - snmp_asn1_enc_s32t
    - snmpv3_build_priv_param
    - snmp_asn1_enc_s32t_cnt
    - snmp_ans1_enc_tlv
    - snmpv3_get_engine_time
    - snmp_pbuf_stream_write
    - SNMP_ASN1_SET_TLV_PARAMS
    - OF_BUILD_EXEC
    linkageType: ''
    returnType: err_t
    signature: snmp_prepare_outbound_frame(struct snmp_request *request)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_asn1_enc_oid_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1190,1
    - Dst: snmp_asn1_enc_length_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1191,1
    - Dst: snmp_asn1_enc_s32t_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1203,1
    - Dst: snmp_asn1_enc_u32t_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1211,1
    - Dst: snmp_asn1_enc_oid_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1228,1
    - Dst: snmp_asn1_enc_u64t_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1234,1
    - Dst: snmp_asn1_enc_length_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1241,1
    - Dst: snmp_asn1_enc_length_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1244,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 2
    argNames:
    - varbind
    - len
    argTypes:
    - struct snmp_varbind*
    - struct snmp_varbind_len*
    constantsTouched: []
    func_position:
      end: 1247
      start: 1186
    functionDepth: 1
    functionLinenumber: 1186
    functionLinenumberEnd: 1247
    functionName: snmp_varbind_length
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c
    functionUses: 1
    functionsReached:
    - snmp_asn1_enc_u64t_cnt
    - snmp_asn1_enc_u32t_cnt
    - snmp_asn1_enc_oid_cnt
    - snmp_asn1_enc_s32t_cnt
    - snmp_asn1_enc_length_cnt
    linkageType: ''
    returnType: err_t
    signature: snmp_varbind_length(struct snmp_varbind *varbind, struct snmp_varbind_len
      *len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_varbind_length
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1258,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1272,1
    - Dst: OVB_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1273,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1273,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1276,1
    - Dst: OVB_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1277,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1277,1
    - Dst: OVB_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1278,1
    - Dst: snmp_asn1_enc_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1278,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1281,1
    - Dst: OVB_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1282,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1282,1
    - Dst: OVB_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1286,1
    - Dst: snmp_asn1_enc_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1286,1
    - Dst: OVB_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1290,1
    - Dst: snmp_asn1_enc_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1290,1
    - Dst: OVB_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1295,1
    - Dst: snmp_asn1_enc_u32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1295,1
    - Dst: OVB_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1300,1
    - Dst: snmp_asn1_enc_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1300,1
    - Dst: OVB_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1304,1
    - Dst: snmp_asn1_enc_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1304,1
    - Dst: OVB_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1307,1
    - Dst: snmp_asn1_enc_u64t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1307,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1310,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 2
    argNames:
    - pbuf_stream
    - varbind
    argTypes:
    - struct snmp_pbuf_stream*
    - struct snmp_varbind*
    constantsTouched: []
    func_position:
      end: 1317
      start: 1251
    functionDepth: 2
    functionLinenumber: 1251
    functionLinenumberEnd: 1317
    functionName: snmp_append_outbound_varbind
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c
    functionUses: 2
    functionsReached:
    - snmp_asn1_enc_u32t
    - snmp_asn1_enc_u64t
    - snmp_asn1_enc_raw
    - snmp_asn1_enc_oid
    - snmp_asn1_enc_s32t
    - OVB_BUILD_EXEC
    - snmp_ans1_enc_tlv
    - SNMP_ASN1_SET_TLV_PARAMS
    - snmp_varbind_length
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: snmp_append_outbound_varbind(struct snmp_pbuf_stream *pbuf_stream,
      struct snmp_varbind* varbind)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1377,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1385,1
    - Dst: snmp_pbuf_stream_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1385,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1386,1
    - Dst: snmp_pbuf_stream_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1386,1
    - Dst: snmp_pbuf_stream_writeto
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1387,1
    - Dst: snmp_pbuf_stream_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1398,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1404,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1405,1
    - Dst: snmp_pbuf_stream_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1405,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1406,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1406,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1412,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1414,1
    - Dst: snmp_pbuf_stream_seek_abs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1414,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1415,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1415,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1418,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1420,1
    - Dst: snmp_pbuf_stream_seek_abs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1420,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1421,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1421,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1423,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1425,1
    - Dst: snmp_pbuf_stream_seek_abs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1425,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1426,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1426,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1429,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1430,1
    - Dst: snmp_pbuf_stream_seek_abs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1430,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1431,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1431,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1436,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1438,1
    - Dst: snmp_pbuf_stream_seek_abs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1438,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1439,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1439,1
    - Dst: snmp_asn1_enc_s32t_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1444,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1449,1
    - Dst: snmp_pbuf_stream_seek_abs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1449,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1450,1
    - Dst: snmp_asn1_enc_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1450,1
    - Dst: snmp_asn1_enc_s32t_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1486,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1491,1
    - Dst: snmp_pbuf_stream_seek_abs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1491,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1492,1
    - Dst: snmp_asn1_enc_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1492,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1496,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1497,1
    - Dst: snmp_pbuf_stream_seek_abs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1497,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1498,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1498,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1508,1
    - Dst: snmp_pbuf_stream_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1508,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1509,1
    - Dst: snmp_pbuf_stream_seek_abs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1509,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1510,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1512,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1512,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1514,1
    - Dst: snmpv3_get_user
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1514,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1516,1
    - Dst: snmpv3_crypt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1516,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1526,1
    - Dst: snmpv3_get_user
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1526,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1527,1
    - Dst: snmp_pbuf_stream_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1527,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1529,1
    - Dst: snmpv3_auth
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1529,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1531,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1532,1
    - Dst: snmp_pbuf_stream_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1532,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1534,1
    - Dst: snmp_pbuf_stream_seek_abs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1534,1
    - Dst: SNMP_ASN1_SET_TLV_PARAMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1537,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1538,1
    - Dst: snmp_ans1_enc_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1538,1
    - Dst: OF_BUILD_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1539,1
    - Dst: snmp_asn1_enc_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1539,1
    - Dst: pbuf_realloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1544,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 149
    argCount: 1
    argNames:
    - request
    argTypes:
    - struct snmp_request*
    constantsTouched: []
    func_position:
      end: 1550
      start: 1319
    functionDepth: 5
    functionLinenumber: 1319
    functionLinenumberEnd: 1550
    functionName: snmp_complete_outbound_frame
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c
    functionUses: 1
    functionsReached:
    - SNMP_ASN1_SET_TLV_PARAMS
    - snmpv3_crypt
    - LWIP_DEBUGF
    - snmpv3_get_user
    - snmp_asn1_enc_raw
    - snmp_pbuf_stream_writeto
    - snmpv3_auth
    - MEMCPY
    - snmp_pbuf_stream_seek_abs
    - snmp_asn1_enc_s32t
    - pbuf_realloc
    - snmp_asn1_enc_s32t_cnt
    - snmp_ans1_enc_tlv
    - snmp_pbuf_stream_write
    - snmp_pbuf_stream_init
    - OF_BUILD_EXEC
    linkageType: ''
    returnType: err_t
    signature: snmp_complete_outbound_frame(struct snmp_request *request)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_vb_enumerator_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1558,1
    - Dst: snmp_vb_enumerator_get_next
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1561,1
    - Dst: snmp_write_callback
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1562,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - request
    argTypes:
    - struct snmp_request*
    constantsTouched: []
    func_position:
      end: 1564
      start: 1552
    functionDepth: 1
    functionLinenumber: 1552
    functionLinenumberEnd: 1564
    functionName: snmp_execute_write_callbacks
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c
    functionUses: 1
    functionsReached:
    - snmp_write_callback
    - snmp_vb_enumerator_get_next
    - snmp_vb_enumerator_init
    linkageType: ''
    returnType: void
    signature: snmp_execute_write_callbacks(struct snmp_request *request)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_pbuf_stream_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - enumerator
    - p
    - offset
    - length
    argTypes:
    - struct snmp_varbind_enumerator*
    - struct pbuf*
    - u16_t
    - u16_t
    constantsTouched: []
    func_position:
      end: 1576
      start: 1571
    functionDepth: 1
    functionLinenumber: 1571
    functionLinenumberEnd: 1576
    functionName: snmp_vb_enumerator_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c
    functionUses: 4
    functionsReached:
    - snmp_pbuf_stream_init
    linkageType: ''
    returnType: void
    signature: snmp_vb_enumerator_init(struct snmp_varbind_enumerator* enumerator,
      struct pbuf* p, u16_t offset, u16_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VB_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1595,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1595,1
    - Dst: VB_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1596,1
    - Dst: VB_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1600,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1600,1
    - Dst: VB_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1601,1
    - Dst: SNMP_ASN1_TLV_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1601,1
    - Dst: VB_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1603,1
    - Dst: snmp_asn1_dec_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1603,1
    - Dst: SNMP_ASN1_TLV_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1604,1
    - Dst: VB_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1607,1
    - Dst: snmp_asn1_dec_tlv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1607,1
    - Dst: VB_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1608,1
    - Dst: SNMP_ASN1_TLV_LENGTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1608,1
    - Dst: VB_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1615,1
    - Dst: snmp_asn1_dec_s32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1615,1
    - Dst: VB_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1621,1
    - Dst: snmp_asn1_dec_u32t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1621,1
    - Dst: snmp_asn1_dec_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1626,1
    - Dst: VB_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1630,1
    - Dst: snmp_asn1_dec_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1637,1
    - Dst: VB_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1641,1
    - Dst: VB_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1647,1
    - Dst: snmp_asn1_dec_raw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1647,1
    - Dst: VB_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1649,1
    - Dst: VB_PARSE_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1653,1
    - Dst: snmp_asn1_dec_u64t
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1653,1
    - Dst: VB_PARSE_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1657,1
    - Dst: snmp_pbuf_stream_seek
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c:1661,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 66
    argCount: 2
    argNames:
    - enumerator
    - varbind
    argTypes:
    - struct snmp_varbind_enumerator*
    - struct snmp_varbind*
    constantsTouched: []
    func_position:
      end: 1666
      start: 1581
    functionDepth: 1
    functionLinenumber: 1581
    functionLinenumberEnd: 1666
    functionName: snmp_vb_enumerator_get_next
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c
    functionUses: 5
    functionsReached:
    - snmp_pbuf_stream_seek
    - snmp_asn1_dec_oid
    - snmp_asn1_dec_s32t
    - VB_PARSE_ASSERT
    - snmp_asn1_dec_u32t
    - SNMP_ASN1_TLV_LENGTH
    - snmp_asn1_dec_u64t
    - VB_PARSE_EXEC
    - snmp_asn1_dec_raw
    - snmp_asn1_dec_tlv
    linkageType: ''
    returnType: snmp_vb_enumerator_err_t
    signature: snmp_vb_enumerator_get_next(struct snmp_varbind_enumerator* enumerator,
      struct snmp_varbind* varbind)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_pbuf_stream_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:60,1
    - Dst: mbedtls_md_info_from_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:63,1
    - Dst: mbedtls_md_info_from_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:66,1
    - Dst: mbedtls_md_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:72,1
    - Dst: mbedtls_md_setup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:73,1
    - Dst: mbedtls_md_hmac_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:77,1
    - Dst: snmp_pbuf_stream_read
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:84,1
    - Dst: mbedtls_md_hmac_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:88,1
    - Dst: mbedtls_md_hmac_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:93,1
    - Dst: mbedtls_md_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:97,1
    - Dst: mbedtls_md_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:101,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 5
    argNames:
    - stream
    - length
    - key
    - algo
    - hmac_out
    argTypes:
    - struct snmp_pbuf_stream*
    - u16_t
    - u8_t*
    - u8_t
    - u8_t*
    constantsTouched: []
    func_position:
      end: 103
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 103
    functionName: snmpv3_auth
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c
    functionUses: 2
    functionsReached:
    - mbedtls_md_hmac_starts
    - mbedtls_md_hmac_finish
    - mbedtls_md_hmac_update
    - mbedtls_md_info_from_type
    - mbedtls_md_free
    - snmp_pbuf_stream_read
    - mbedtls_md_setup
    - mbedtls_md_init
    - snmp_pbuf_stream_init
    linkageType: ''
    returnType: err_t
    signature: "snmpv3_auth(struct snmp_pbuf_stream* stream, u16_t length,\n    const
      u8_t* key, u8_t algo, u8_t* hmac_out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_pbuf_stream_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:118,1
    - Dst: snmp_pbuf_stream_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:119,1
    - Dst: mbedtls_cipher_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:120,1
    - Dst: mbedtls_cipher_info_from_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:132,1
    - Dst: mbedtls_cipher_setup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:133,1
    - Dst: mbedtls_cipher_set_padding_mode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:136,1
    - Dst: mbedtls_cipher_setkey
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:139,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:144,1
    - Dst: mbedtls_cipher_set_iv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:147,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:147,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:154,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:156,1
    - Dst: snmp_pbuf_stream_read
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:157,1
    - Dst: mbedtls_cipher_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:160,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:160,1
    - Dst: snmp_pbuf_stream_writebuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:164,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:167,1
    - Dst: mbedtls_cipher_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:168,1
    - Dst: snmp_pbuf_stream_writebuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:171,1
    - Dst: mbedtls_cipher_info_from_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:175,1
    - Dst: mbedtls_cipher_setup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:176,1
    - Dst: mbedtls_cipher_setkey
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:179,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:195,1
    - Dst: mbedtls_cipher_set_iv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:196,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:196,1
    - Dst: snmp_pbuf_stream_read
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:205,1
    - Dst: mbedtls_cipher_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:206,1
    - Dst: snmp_pbuf_stream_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:209,1
    - Dst: mbedtls_cipher_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:215,1
    - Dst: mbedtls_cipher_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:219,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 83
    argCount: 8
    argNames:
    - stream
    - length
    - key
    - priv_param
    - engine_boots
    - engine_time
    - algo
    - mode
    argTypes:
    - struct snmp_pbuf_stream*
    - u16_t
    - u8_t*
    - u8_t*
    - u32_t
    - u32_t
    - u8_t
    - u8_t
    constantsTouched: []
    func_position:
      end: 221
      start: 107
    functionDepth: 4
    functionLinenumber: 107
    functionLinenumberEnd: 221
    functionName: snmpv3_crypt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c
    functionUses: 2
    functionsReached:
    - LWIP_ARRAYSIZE
    - mbedtls_cipher_finish
    - mbedtls_cipher_update
    - mbedtls_cipher_setup
    - SMEMCPY
    - mbedtls_cipher_free
    - snmp_pbuf_stream_read
    - mbedtls_cipher_init
    - mbedtls_cipher_info_from_type
    - mbedtls_cipher_set_padding_mode
    - snmp_pbuf_stream_writebuf
    - snmp_pbuf_stream_write
    - snmp_pbuf_stream_init
    - mbedtls_cipher_setkey
    - mbedtls_cipher_set_iv
    linkageType: ''
    returnType: err_t
    signature: "snmpv3_crypt(struct snmp_pbuf_stream* stream, u16_t length,\n    const
      u8_t* key, const u8_t* priv_param, const u32_t engine_boots,\n    const u32_t
      engine_time, u8_t algo, u8_t mode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_md5_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:240,1
    - Dst: mbedtls_md5_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:241,1
    - Dst: mbedtls_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:255,1
    - Dst: mbedtls_md5_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:258,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:266,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:267,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:268,1
    - Dst: mbedtls_md5_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:270,1
    - Dst: mbedtls_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:271,1
    - Dst: mbedtls_md5_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:272,1
    - Dst: mbedtls_md5_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 5
    argNames:
    - password
    - passwordlen
    - engineID
    - engineLength
    - key
    argTypes:
    - u8_t*
    - u8_t
    - u8_t*
    - u8_t
    - u8_t*
    constantsTouched: []
    func_position:
      end: 276
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 276
    functionName: snmpv3_password_to_key_md5
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_md5_init
    - mbedtls_md5_finish
    - SMEMCPY
    - mbedtls_md5_starts
    - MEMCPY
    - mbedtls_md5_update
    - mbedtls_md5_free
    linkageType: ''
    returnType: void
    signature: "snmpv3_password_to_key_md5(\n    const u8_t *password,    /* IN */\n
      \   u8_t        passwordlen, /* IN */\n    const u8_t *engineID,    /* IN  -
      pointer to snmpEngineID  */\n    u8_t        engineLength,/* IN  - length of
      snmpEngineID */\n    u8_t       *key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_sha1_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:293,1
    - Dst: mbedtls_sha1_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:294,1
    - Dst: mbedtls_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:308,1
    - Dst: mbedtls_sha1_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:311,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:319,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:320,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:321,1
    - Dst: mbedtls_sha1_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:323,1
    - Dst: mbedtls_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:324,1
    - Dst: mbedtls_sha1_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:325,1
    - Dst: mbedtls_sha1_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 5
    argNames:
    - password
    - passwordlen
    - engineID
    - engineLength
    - key
    argTypes:
    - u8_t*
    - u8_t
    - u8_t*
    - u8_t
    - u8_t*
    constantsTouched: []
    func_position:
      end: 329
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 329
    functionName: snmpv3_password_to_key_sha
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c
    functionUses: 1
    functionsReached:
    - mbedtls_sha1_free
    - SMEMCPY
    - mbedtls_sha1_init
    - MEMCPY
    - mbedtls_sha1_finish
    - mbedtls_sha1_update
    - mbedtls_sha1_starts
    linkageType: ''
    returnType: void
    signature: "snmpv3_password_to_key_sha(\n    const u8_t *password,    /* IN */\n
      \   u8_t        passwordlen, /* IN */\n    const u8_t *engineID,    /* IN  -
      pointer to snmpEngineID  */\n    u8_t        engineLength,/* IN  - length of
      snmpEngineID */\n    u8_t       *key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:72,1
    - Dst: snmp_pbuf_stream_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:72,1
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:101,1
    - Dst: snmp_pbuf_stream_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:101,1
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:112,1
    - Dst: snmp_pbuf_stream_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:112,1
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:119,1
    - Dst: snmp_pbuf_stream_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:119,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 2
    argNames:
    - pbuf_stream
    - tlv
    argTypes:
    - struct snmp_pbuf_stream*
    - struct snmp_asn1_tlv*
    constantsTouched: []
    func_position:
      end: 122
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 122
    functionName: snmp_ans1_enc_tlv
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c
    functionUses: 5
    functionsReached:
    - snmp_pbuf_stream_write
    - PBUF_OP_EXEC
    linkageType: ''
    returnType: err_t
    signature: snmp_ans1_enc_tlv(struct snmp_pbuf_stream* pbuf_stream, struct snmp_asn1_tlv*
      tlv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:135,1
    - Dst: snmp_pbuf_stream_writebuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pbuf_stream
    - raw
    - raw_len
    argTypes:
    - struct snmp_pbuf_stream*
    - u8_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: snmp_asn1_enc_raw
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c
    functionUses: 5
    functionsReached:
    - snmp_pbuf_stream_writebuf
    - PBUF_OP_EXEC
    linkageType: ''
    returnType: err_t
    signature: snmp_asn1_enc_raw(struct snmp_pbuf_stream* pbuf_stream, const u8_t
      *raw, u16_t raw_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:158,1
    - Dst: snmp_pbuf_stream_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:158,1
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:164,1
    - Dst: snmp_pbuf_stream_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:164,1
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:168,1
    - Dst: snmp_pbuf_stream_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - pbuf_stream
    - octets_needed
    - value
    argTypes:
    - struct snmp_pbuf_stream*
    - u16_t
    - u32_t
    constantsTouched: []
    func_position:
      end: 171
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 171
    functionName: snmp_asn1_enc_u32t
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c
    functionUses: 1
    functionsReached:
    - snmp_pbuf_stream_write
    - PBUF_OP_EXEC
    linkageType: ''
    returnType: err_t
    signature: snmp_asn1_enc_u32t(struct snmp_pbuf_stream* pbuf_stream, u16_t octets_needed,
      u32_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:191,1
    - Dst: snmp_pbuf_stream_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:191,1
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:197,1
    - Dst: snmp_pbuf_stream_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:197,1
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:205,1
    - Dst: snmp_pbuf_stream_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:205,1
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:209,1
    - Dst: snmp_pbuf_stream_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - pbuf_stream
    - octets_needed
    - value
    argTypes:
    - struct snmp_pbuf_stream*
    - u16_t
    - u32_t*
    constantsTouched: []
    func_position:
      end: 212
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 212
    functionName: snmp_asn1_enc_u64t
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c
    functionUses: 1
    functionsReached:
    - snmp_pbuf_stream_write
    - PBUF_OP_EXEC
    linkageType: ''
    returnType: err_t
    signature: snmp_asn1_enc_u64t(struct snmp_pbuf_stream* pbuf_stream, u16_t octets_needed,
      const u32_t* value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:230,1
    - Dst: snmp_pbuf_stream_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:230,1
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:234,1
    - Dst: snmp_pbuf_stream_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pbuf_stream
    - octets_needed
    - value
    argTypes:
    - struct snmp_pbuf_stream*
    - u16_t
    - s32_t
    constantsTouched: []
    func_position:
      end: 237
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 237
    functionName: snmp_asn1_enc_s32t
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c
    functionUses: 4
    functionsReached:
    - snmp_pbuf_stream_write
    - PBUF_OP_EXEC
    linkageType: ''
    returnType: err_t
    signature: snmp_asn1_enc_s32t(struct snmp_pbuf_stream* pbuf_stream, u16_t octets_needed,
      s32_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:253,1
    - Dst: snmp_pbuf_stream_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:253,1
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:276,1
    - Dst: snmp_pbuf_stream_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:276,1
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:280,1
    - Dst: snmp_pbuf_stream_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:280,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - pbuf_stream
    - oid
    - oid_len
    argTypes:
    - struct snmp_pbuf_stream*
    - u32_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 286
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 286
    functionName: snmp_asn1_enc_oid
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c
    functionUses: 2
    functionsReached:
    - snmp_pbuf_stream_write
    - PBUF_OP_EXEC
    linkageType: ''
    returnType: err_t
    signature: snmp_asn1_enc_oid(struct snmp_pbuf_stream* pbuf_stream, const u32_t
      *oid, u16_t oid_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - length
    - octets_needed
    argTypes:
    - u16_t
    - u8_t*
    constantsTouched: []
    func_position:
      end: 304
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 304
    functionName: snmp_asn1_enc_length_cnt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: snmp_asn1_enc_length_cnt(u16_t length, u8_t *octets_needed)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - value
    - octets_needed
    argTypes:
    - u32_t
    - u16_t*
    constantsTouched: []
    func_position:
      end: 330
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 330
    functionName: snmp_asn1_enc_u32t_cnt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: snmp_asn1_enc_u32t_cnt(u32_t value, u16_t *octets_needed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_asn1_enc_u32t_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:349,1
    - Dst: snmp_asn1_enc_u32t_cnt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - value
    - octets_needed
    argTypes:
    - u32_t*
    - u16_t*
    constantsTouched: []
    func_position:
      end: 355
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 355
    functionName: snmp_asn1_enc_u64t_cnt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c
    functionUses: 1
    functionsReached:
    - snmp_asn1_enc_u32t_cnt
    linkageType: ''
    returnType: void
    signature: snmp_asn1_enc_u64t_cnt(const u32_t *value, u16_t *octets_needed)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - value
    - octets_needed
    argTypes:
    - s32_t
    - u16_t*
    constantsTouched: []
    func_position:
      end: 380
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 380
    functionName: snmp_asn1_enc_s32t_cnt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: snmp_asn1_enc_s32t_cnt(s32_t value, u16_t *octets_needed)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - oid
    - oid_len
    - octets_needed
    argTypes:
    - u32_t*
    - u16_t
    - u16_t*
    constantsTouched: []
    func_position:
      end: 413
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 413
    functionName: snmp_asn1_enc_oid_cnt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: snmp_asn1_enc_oid_cnt(const u32_t *oid, u16_t oid_len, u16_t *octets_needed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:428,1
    - Dst: snmp_pbuf_stream_read
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:428,1
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:438,1
    - Dst: snmp_pbuf_stream_read
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:438,1
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:453,1
    - Dst: snmp_pbuf_stream_read
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:453,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - pbuf_stream
    - tlv
    argTypes:
    - struct snmp_pbuf_stream*
    - struct snmp_asn1_tlv*
    constantsTouched: []
    func_position:
      end: 470
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 470
    functionName: snmp_asn1_dec_tlv
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c
    functionUses: 2
    functionsReached:
    - snmp_pbuf_stream_read
    - PBUF_OP_EXEC
    linkageType: ''
    returnType: err_t
    signature: snmp_asn1_dec_tlv(struct snmp_pbuf_stream* pbuf_stream, struct snmp_asn1_tlv*
      tlv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:490,1
    - Dst: snmp_pbuf_stream_read
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:490,1
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:498,1
    - Dst: snmp_pbuf_stream_read
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:498,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - pbuf_stream
    - len
    - value
    argTypes:
    - struct snmp_pbuf_stream*
    - u16_t
    - u32_t*
    constantsTouched: []
    func_position:
      end: 510
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 510
    functionName: snmp_asn1_dec_u32t
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c
    functionUses: 1
    functionsReached:
    - snmp_pbuf_stream_read
    - PBUF_OP_EXEC
    linkageType: ''
    returnType: err_t
    signature: snmp_asn1_dec_u32t(struct snmp_pbuf_stream *pbuf_stream, u16_t len,
      u32_t *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:537,1
    - Dst: snmp_pbuf_stream_read
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:537,1
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:545,1
    - Dst: snmp_pbuf_stream_read
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:545,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - pbuf_stream
    - len
    - value
    argTypes:
    - struct snmp_pbuf_stream*
    - u16_t
    - u32_t*
    constantsTouched: []
    func_position:
      end: 564
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 564
    functionName: snmp_asn1_dec_u64t
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c
    functionUses: 1
    functionsReached:
    - snmp_pbuf_stream_read
    - PBUF_OP_EXEC
    linkageType: ''
    returnType: err_t
    signature: snmp_asn1_dec_u64t(struct snmp_pbuf_stream *pbuf_stream, u16_t len,
      u32_t *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:589,1
    - Dst: snmp_pbuf_stream_read
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:589,1
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:606,1
    - Dst: snmp_pbuf_stream_read
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:606,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - pbuf_stream
    - len
    - value
    argTypes:
    - struct snmp_pbuf_stream*
    - u16_t
    - s32_t*
    constantsTouched: []
    func_position:
      end: 628
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 628
    functionName: snmp_asn1_dec_s32t
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c
    functionUses: 2
    functionsReached:
    - snmp_pbuf_stream_read
    - PBUF_OP_EXEC
    linkageType: ''
    returnType: err_t
    signature: snmp_asn1_dec_s32t(struct snmp_pbuf_stream *pbuf_stream, u16_t len,
      s32_t *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:653,1
    - Dst: snmp_pbuf_stream_read
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:653,1
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:686,1
    - Dst: snmp_pbuf_stream_read
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:686,1
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:696,1
    - Dst: snmp_pbuf_stream_read
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:696,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 59
    argCount: 5
    argNames:
    - pbuf_stream
    - len
    - oid
    - oid_len
    - oid_max_len
    argTypes:
    - struct snmp_pbuf_stream*
    - u16_t
    - u32_t*
    - u8_t*
    - u8_t
    constantsTouched: []
    func_position:
      end: 718
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 718
    functionName: snmp_asn1_dec_oid
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c
    functionUses: 1
    functionsReached:
    - snmp_pbuf_stream_read
    - PBUF_OP_EXEC
    linkageType: ''
    returnType: err_t
    signature: snmp_asn1_dec_oid(struct snmp_pbuf_stream *pbuf_stream, u16_t len,
      u32_t* oid, u8_t* oid_len, u8_t oid_max_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PBUF_OP_EXEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:741,1
    - Dst: snmp_pbuf_stream_read
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c:741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - pbuf_stream
    - len
    - buf
    - buf_len
    - buf_max_len
    argTypes:
    - struct snmp_pbuf_stream*
    - u16_t
    - u8_t*
    - u16_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 747
      start: 731
    functionDepth: 2
    functionLinenumber: 731
    functionLinenumberEnd: 747
    functionName: snmp_asn1_dec_raw
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c
    functionUses: 2
    functionsReached:
    - snmp_pbuf_stream_read
    - PBUF_OP_EXEC
    linkageType: ''
    returnType: err_t
    signature: snmp_asn1_dec_raw(struct snmp_pbuf_stream *pbuf_stream, u16_t len,
      u8_t *buf, u16_t* buf_len, u16_t buf_max_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_scalar.c:54,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_scalar.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - root_oid
    - root_oid_len
    - instance
    argTypes:
    - u32_t*
    - u8_t
    - struct snmp_node_instance*
    constantsTouched: []
    func_position:
      end: 68
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 68
    functionName: snmp_scalar_get_instance
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_scalar.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: snmp_err_t
    signature: snmp_scalar_get_instance(const u32_t *root_oid, u8_t root_oid_len,
      struct snmp_node_instance* instance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_scalar_get_instance
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_scalar.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - root_oid
    - root_oid_len
    - instance
    argTypes:
    - u32_t*
    - u8_t
    - struct snmp_node_instance*
    constantsTouched: []
    func_position:
      end: 82
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 82
    functionName: snmp_scalar_get_next_instance
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_scalar.c
    functionUses: 0
    functionsReached:
    - snmp_scalar_get_instance
    linkageType: ''
    returnType: snmp_err_t
    signature: snmp_scalar_get_next_instance(const u32_t *root_oid, u8_t root_oid_len,
      struct snmp_node_instance* instance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_scalar.c:88,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_scalar.c:89,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - root_oid
    - root_oid_len
    - instance
    argTypes:
    - u32_t*
    - u8_t
    - struct snmp_node_instance*
    constantsTouched: []
    func_position:
      end: 118
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 118
    functionName: snmp_scalar_array_get_instance
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_scalar.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: snmp_err_t
    signature: snmp_scalar_array_get_instance(const u32_t *root_oid, u8_t root_oid_len,
      struct snmp_node_instance* instance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_scalar.c:127,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_scalar.c:128,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 3
    argNames:
    - root_oid
    - root_oid_len
    - instance
    argTypes:
    - u32_t*
    - u8_t
    - struct snmp_node_instance*
    constantsTouched: []
    func_position:
      end: 191
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 191
    functionName: snmp_scalar_array_get_next_instance
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_scalar.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: snmp_err_t
    signature: snmp_scalar_array_get_next_instance(const u32_t *root_oid, u8_t root_oid_len,
      struct snmp_node_instance* instance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct snmp_scalar_array_node*::get_value
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_scalar.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - instance
    - value
    argTypes:
    - struct snmp_node_instance*
    - void*
    constantsTouched: []
    func_position:
      end: 200
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 200
    functionName: snmp_scalar_array_get_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_scalar.c
    functionUses: 0
    functionsReached:
    - struct snmp_scalar_array_node*::get_value
    linkageType: ''
    returnType: s16_t
    signature: snmp_scalar_array_get_value(struct snmp_node_instance* instance, void*
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct snmp_scalar_array_node*::set_test
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_scalar.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - instance
    - value_len
    - value
    argTypes:
    - struct snmp_node_instance*
    - u16_t
    - void*
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 209
    functionName: snmp_scalar_array_set_test
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_scalar.c
    functionUses: 0
    functionsReached:
    - struct snmp_scalar_array_node*::set_test
    linkageType: ''
    returnType: snmp_err_t
    signature: snmp_scalar_array_set_test(struct snmp_node_instance* instance, u16_t
      value_len, void* value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct snmp_scalar_array_node*::set_value
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_scalar.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - instance
    - value_len
    - value
    argTypes:
    - struct snmp_node_instance*
    - u16_t
    - void*
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: snmp_scalar_array_set_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_scalar.c
    functionUses: 0
    functionsReached:
    - struct snmp_scalar_array_node*::set_value
    linkageType: ''
    returnType: snmp_err_t
    signature: snmp_scalar_array_set_value(struct snmp_node_instance* instance, u16_t
      value_len, void* value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c:51,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c:52,1
    - Dst: struct snmp_table_node*::get_cell_instance
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c:77,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - root_oid
    - root_oid_len
    - instance
    argTypes:
    - u32_t*
    - u8_t
    - struct snmp_node_instance*
    constantsTouched: []
    func_position:
      end: 86
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 86
    functionName: snmp_table_get_instance
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - struct snmp_table_node*::get_cell_instance
    linkageType: ''
    returnType: snmp_err_t
    signature: snmp_table_get_instance(const u32_t *root_oid, u8_t root_oid_len, struct
      snmp_node_instance* instance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c:96,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c:97,1
    - Dst: snmp_oid_assign
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c:107,1
    - Dst: struct snmp_table_node*::get_next_cell_instance
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c:140,1
    - Dst: snmp_oid_append
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c:158,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 3
    argNames:
    - root_oid
    - root_oid_len
    - instance
    argTypes:
    - u32_t*
    - u8_t
    - struct snmp_node_instance*
    constantsTouched: []
    func_position:
      end: 161
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 161
    functionName: snmp_table_get_next_instance
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - snmp_oid_assign
    - snmp_oid_append
    - struct snmp_table_node*::get_next_cell_instance
    linkageType: ''
    returnType: snmp_err_t
    signature: snmp_table_get_next_instance(const u32_t *root_oid, u8_t root_oid_len,
      struct snmp_node_instance* instance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c:169,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c:170,1
    - Dst: struct snmp_table_simple_node*::get_cell_value
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c:175,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c:213,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - root_oid
    - root_oid_len
    - instance
    argTypes:
    - u32_t*
    - u8_t
    - struct snmp_node_instance*
    constantsTouched: []
    func_position:
      end: 225
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 225
    functionName: snmp_table_simple_get_instance
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - struct snmp_table_simple_node*::get_cell_value
    - LWIP_DEBUGF
    linkageType: ''
    returnType: snmp_err_t
    signature: snmp_table_simple_get_instance(const u32_t *root_oid, u8_t root_oid_len,
      struct snmp_node_instance* instance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c:235,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c:236,1
    - Dst: snmp_oid_assign
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c:246,1
    - Dst: struct snmp_table_simple_node*::get_next_cell_instance_and_value
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c:273,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c:306,1
    - Dst: snmp_oid_append
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c:314,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 3
    argNames:
    - root_oid
    - root_oid_len
    - instance
    argTypes:
    - u32_t*
    - u8_t
    - struct snmp_node_instance*
    constantsTouched: []
    func_position:
      end: 317
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 317
    functionName: snmp_table_simple_get_next_instance
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c
    functionUses: 0
    functionsReached:
    - snmp_oid_assign
    - LWIP_DEBUGF
    - snmp_oid_append
    - struct snmp_table_simple_node*::get_next_cell_instance_and_value
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: snmp_err_t
    signature: snmp_table_simple_get_next_instance(const u32_t *root_oid, u8_t root_oid_len,
      struct snmp_node_instance* instance)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - instance
    - value
    argTypes:
    - struct snmp_node_instance*
    - void*
    constantsTouched: []
    func_position:
      end: 326
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 326
    functionName: snmp_table_extract_value_from_s32ref
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: s16_t
    signature: snmp_table_extract_value_from_s32ref(struct snmp_node_instance* instance,
      void* value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - instance
    - value
    argTypes:
    - struct snmp_node_instance*
    - void*
    constantsTouched: []
    func_position:
      end: 334
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 334
    functionName: snmp_table_extract_value_from_u32ref
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: s16_t
    signature: snmp_table_extract_value_from_u32ref(struct snmp_node_instance* instance,
      void* value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - instance
    - value
    argTypes:
    - struct snmp_node_instance*
    - void*
    constantsTouched: []
    func_position:
      end: 341
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 341
    functionName: snmp_table_extract_value_from_refconstptr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c
    functionUses: 0
    functionsReached:
    - MEMCPY
    linkageType: ''
    returnType: s16_t
    signature: snmp_table_extract_value_from_refconstptr(struct snmp_node_instance*
      instance, void* value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:222,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mibs
    - num_mibs
    argTypes:
    - struct snmp_mib**
    - u8_t
    constantsTouched: []
    func_position:
      end: 226
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 226
    functionName: snmp_set_mibs
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: snmp_set_mibs(const struct snmp_mib **mibs, u8_t num_mibs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - device_enterprise_oid
    argTypes:
    - struct snmp_obj_id*
    constantsTouched: []
    func_position:
      end: 249
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 249
    functionName: snmp_set_device_enterprise_oid
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: snmp_set_device_enterprise_oid(const struct snmp_obj_id* device_enterprise_oid)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: snmp_get_device_enterprise_oid
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct snmp_obj_id
    signature: '* snmp_get_device_enterprise_oid(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip4_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:273,1
    - Dst: IP4_ADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - oid
    - ip
    argTypes:
    - u32_t*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 279
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 279
    functionName: snmp_oid_to_ip4
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 6
    functionsReached:
    - IP4_ADDR
    - ip4_addr_copy
    linkageType: ''
    returnType: u8_t
    signature: snmp_oid_to_ip4(const u32_t *oid, ip4_addr_t *ip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip4_addr1
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:289,1
    - Dst: ip4_addr2
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:290,1
    - Dst: ip4_addr3
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:291,1
    - Dst: ip4_addr4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ip
    - oid
    argTypes:
    - ip4_addr_t*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 293
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 293
    functionName: snmp_ip4_to_oid
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 5
    functionsReached:
    - ip4_addr3
    - ip4_addr4
    - ip4_addr1
    - ip4_addr2
    linkageType: ''
    returnType: void
    signature: snmp_ip4_to_oid(const ip4_addr_t *ip, u32_t *oid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_set_any
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:321,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 10
    argCount: 2
    argNames:
    - oid
    - ip
    argTypes:
    - u32_t*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 330
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 330
    functionName: snmp_oid_to_ip6
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 0
    functionsReached:
    - ip6_addr_set_any
    linkageType: ''
    returnType: u8_t
    signature: snmp_oid_to_ip6(const u32_t *oid, ip6_addr_t *ip)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - ip
    - oid
    argTypes:
    - ip6_addr_t*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 356
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 356
    functionName: snmp_ip6_to_oid
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: snmp_ip6_to_oid(const ip6_addr_t *ip, u32_t *oid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_ip_to_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ip
    - port
    - oid
    argTypes:
    - ip_addr_t*
    - u16_t
    - u32_t*
    constantsTouched: []
    func_position:
      end: 377
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 377
    functionName: snmp_ip_port_to_oid
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 3
    functionsReached:
    - snmp_ip_to_oid
    linkageType: ''
    returnType: u8_t
    signature: snmp_ip_port_to_oid(const ip_addr_t *ip, u16_t port, u32_t *oid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IP_IS_ANY_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:388,1
    - Dst: IP_IS_V6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:392,1
    - Dst: snmp_ip6_to_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:396,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:396,1
    - Dst: snmp_ip4_to_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:405,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - ip
    - oid
    argTypes:
    - ip_addr_t*
    - u32_t*
    constantsTouched: []
    func_position:
      end: 411
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 411
    functionName: snmp_ip_to_oid
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 1
    functionsReached:
    - ip_2_ip6
    - snmp_ip4_to_oid
    - IP_IS_ANY_TYPE_VAL
    - snmp_ip6_to_oid
    - ip_2_ip4
    - IP_IS_V6
    linkageType: ''
    returnType: u8_t
    signature: snmp_ip_to_oid(const ip_addr_t *ip, u32_t *oid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:437,1
    - Dst: IP_SET_TYPE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:438,1
    - Dst: IP_SET_TYPE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:453,1
    - Dst: snmp_oid_to_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:454,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:454,1
    - Dst: IP_SET_TYPE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:474,1
    - Dst: snmp_oid_to_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:475,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:475,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 3
    argNames:
    - oid
    - oid_len
    - ip
    argTypes:
    - u32_t*
    - u8_t
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 486
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 486
    functionName: snmp_oid_to_ip
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 0
    functionsReached:
    - ip_2_ip6
    - IP_SET_TYPE
    - snmp_oid_to_ip6
    - memset
    - ip_2_ip4
    - snmp_oid_to_ip4
    linkageType: ''
    returnType: u8_t
    signature: snmp_oid_to_ip(const u32_t *oid, u8_t oid_len, ip_addr_t *ip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_oid_to_ip
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:502,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - oid
    - oid_len
    - ip
    - port
    argTypes:
    - u32_t*
    - u8_t
    - ip_addr_t*
    - u16_t*
    constantsTouched: []
    func_position:
      end: 518
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 518
    functionName: snmp_oid_to_ip_port
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 3
    functionsReached:
    - snmp_oid_to_ip
    linkageType: ''
    returnType: u8_t
    signature: snmp_oid_to_ip_port(const u32_t *oid, u8_t oid_len, ip_addr_t *ip,
      u16_t *port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:531,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - target
    - oid
    - oid_len
    argTypes:
    - struct snmp_obj_id*
    - u32_t*
    - u8_t
    constantsTouched: []
    func_position:
      end: 538
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 538
    functionName: snmp_oid_assign
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 13
    functionsReached:
    - MEMCPY
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: snmp_oid_assign(struct snmp_obj_id* target, const u32_t *oid, u8_t
      oid_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:549,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - target
    - oid
    - oid_len
    argTypes:
    - struct snmp_obj_id*
    - u32_t*
    - u8_t
    constantsTouched: []
    func_position:
      end: 561
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 561
    functionName: snmp_oid_prefix
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 0
    functionsReached:
    - MEMCPY
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: snmp_oid_prefix(struct snmp_obj_id* target, const u32_t *oid, u8_t
      oid_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_oid_assign
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:574,1
    - Dst: snmp_oid_append
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - target
    - oid1
    - oid1_len
    - oid2
    - oid2_len
    argTypes:
    - struct snmp_obj_id*
    - u32_t*
    - u8_t
    - u32_t*
    - u8_t
    constantsTouched: []
    func_position:
      end: 576
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 576
    functionName: snmp_oid_combine
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 0
    functionsReached:
    - snmp_oid_append
    - snmp_oid_assign
    linkageType: ''
    returnType: void
    signature: snmp_oid_combine(struct snmp_obj_id* target, const u32_t *oid1, u8_t
      oid1_len, const u32_t *oid2, u8_t oid2_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:587,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - target
    - oid
    - oid_len
    argTypes:
    - struct snmp_obj_id*
    - u32_t*
    - u8_t
    constantsTouched: []
    func_position:
      end: 593
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 593
    functionName: snmp_oid_append
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 3
    functionsReached:
    - MEMCPY
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: snmp_oid_append(struct snmp_obj_id* target, const u32_t *oid, u8_t
      oid_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:607,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:608,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - oid1
    - oid1_len
    - oid2
    - oid2_len
    argTypes:
    - u32_t*
    - u8_t
    - u32_t*
    - u8_t
    constantsTouched: []
    func_position:
      end: 633
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 633
    functionName: snmp_oid_compare
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT
    linkageType: ''
    returnType: s8_t
    signature: snmp_oid_compare(const u32_t *oid1, u8_t oid1_len, const u32_t *oid2,
      u8_t oid2_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_oid_compare
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - oid1
    - oid1_len
    - oid2
    - oid2_len
    argTypes:
    - u32_t*
    - u8_t
    - u32_t*
    - u8_t
    constantsTouched: []
    func_position:
      end: 648
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 648
    functionName: snmp_oid_equal
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 0
    functionsReached:
    - snmp_oid_compare
    linkageType: ''
    returnType: u8_t
    signature: snmp_oid_equal(const u32_t *oid1, u8_t oid1_len, const u32_t *oid2,
      u8_t oid2_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:671,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 673
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 673
    functionName: netif_to_num
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 8
    functionsReached:
    - LWIP_ASSERT
    linkageType: ''
    returnType: u8_t
    signature: netif_to_num(const struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:685,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:692,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:693,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - oid
    - oid_len
    argTypes:
    - u32_t*
    - u8_t
    constantsTouched: []
    func_position:
      end: 718
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 718
    functionName: snmp_get_mib_from_oid
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT
    linkageType: ''
    returnType: struct snmp_mib
    signature: '*

      snmp_get_mib_from_oid(const u32_t *oid, u8_t oid_len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:726,1
    - Dst: snmp_oid_compare
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:735,1
    - Dst: snmp_oid_compare
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:737,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - oid
    - oid_len
    argTypes:
    - u32_t*
    - u8_t
    constantsTouched: []
    func_position:
      end: 746
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 746
    functionName: snmp_get_next_mib
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 0
    functionsReached:
    - snmp_oid_compare
    - LWIP_ASSERT
    linkageType: ''
    returnType: struct snmp_mib
    signature: '*

      snmp_get_next_mib(const u32_t *oid, u8_t oid_len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_get_next_mib
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:751,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:753,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:754,1
    - Dst: snmp_oid_compare
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:757,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - oid1
    - oid1_len
    - oid2
    - oid2_len
    argTypes:
    - u32_t*
    - u8_t
    - u32_t*
    - u8_t
    constantsTouched: []
    func_position:
      end: 763
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 763
    functionName: snmp_get_mib_between
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 0
    functionsReached:
    - snmp_oid_compare
    - snmp_get_next_mib
    - LWIP_ASSERT
    linkageType: ''
    returnType: struct snmp_mib
    signature: '*

      snmp_get_mib_between(const u32_t *oid1, u8_t oid1_len, const u32_t *oid2, u8_t
      oid2_len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_get_mib_from_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:772,1
    - Dst: snmp_mib_tree_resolve_exact
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:776,1
    - Dst: snmp_oid_assign
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:782,1
    - Dst: struct snmp_leaf_node*::get_instance
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:784,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:792,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:795,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - oid
    - oid_len
    - node_instance
    argTypes:
    - u32_t*
    - u8_t
    - struct snmp_node_instance*
    constantsTouched: []
    func_position:
      end: 803
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 803
    functionName: snmp_get_node_instance_from_oid
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 2
    functionsReached:
    - snmp_oid_assign
    - LWIP_DEBUGF
    - struct snmp_leaf_node*::get_instance
    - snmp_mib_tree_resolve_exact
    - snmp_get_mib_from_oid
    linkageType: ''
    returnType: u8_t
    signature: snmp_get_node_instance_from_oid(const u32_t *oid, u8_t oid_len, struct
      snmp_node_instance* node_instance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_get_mib_from_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:814,1
    - Dst: snmp_get_next_mib
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:817,1
    - Dst: snmp_mib_tree_resolve_exact
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:833,1
    - Dst: snmp_oid_assign
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:835,1
    - Dst: snmp_oid_assign
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:836,1
    - Dst: snmp_mib_tree_resolve_next
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:839,1
    - Dst: get_next_instance
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:858,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:866,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:869,1
    - Dst: validate_node_instance_method
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:875,1
    - Dst: snmp_oid_append
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:877,1
    - Dst: struct snmp_node_instance*::release_instance
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:882,1
    - Dst: struct snmp_node_instance*::release_instance
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:891,1
    - Dst: snmp_mib_tree_resolve_next
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:895,1
    - Dst: snmp_oid_assign
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:898,1
    - Dst: snmp_get_mib_between
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:914,1
    - Dst: struct snmp_node_instance*::release_instance
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:919,1
    - Dst: snmp_get_next_mib
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:936,1
    - Dst: snmp_oid_compare
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:940,1
    - Dst: snmp_get_mib_from_oid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:948,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 93
    argCount: 6
    argNames:
    - oid
    - oid_len
    - validate_node_instance_method
    - validate_node_instance_arg
    - node_oid
    - node_instance
    argTypes:
    - u32_t*
    - u8_t
    - snmp_validate_node_instance_method
    - void*
    - struct snmp_obj_id*
    - struct snmp_node_instance*
    constantsTouched: []
    func_position:
      end: 971
      start: 805
    functionDepth: 3
    functionLinenumber: 805
    functionLinenumberEnd: 971
    functionName: snmp_get_next_node_instance_from_oid
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 1
    functionsReached:
    - snmp_oid_assign
    - LWIP_DEBUGF
    - struct snmp_node_instance*::release_instance
    - snmp_oid_append
    - snmp_get_mib_between
    - snmp_mib_tree_resolve_next
    - validate_node_instance_method
    - snmp_oid_compare
    - snmp_get_next_mib
    - snmp_mib_tree_resolve_exact
    - snmp_get_mib_from_oid
    - get_next_instance
    linkageType: ''
    returnType: u8_t
    signature: snmp_get_next_node_instance_from_oid(const u32_t *oid, u8_t oid_len,
      snmp_validate_node_instance_method validate_node_instance_method, void* validate_node_instance_arg,
      struct snmp_obj_id* node_oid, struct snmp_node_instance* node_instance)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - mib
    - oid
    - oid_len
    - oid_instance_len
    argTypes:
    - struct snmp_mib*
    - u32_t*
    - u8_t
    - u8_t*
    constantsTouched: []
    func_position:
      end: 1009
      start: 977
    functionDepth: 0
    functionLinenumber: 977
    functionLinenumberEnd: 1009
    functionName: snmp_mib_tree_resolve_exact
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct snmp_node
    signature: '*

      snmp_mib_tree_resolve_exact(const struct snmp_mib *mib, const u32_t *oid, u8_t
      oid_len, u8_t* oid_instance_len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_oid_assign
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:1087,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 4
    argNames:
    - mib
    - oid
    - oid_len
    - oidret
    argTypes:
    - struct snmp_mib*
    - u32_t*
    - u8_t
    - struct snmp_obj_id*
    constantsTouched: []
    func_position:
      end: 1104
      start: 1011
    functionDepth: 1
    functionLinenumber: 1011
    functionLinenumberEnd: 1104
    functionName: snmp_mib_tree_resolve_next
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 1
    functionsReached:
    - snmp_oid_assign
    linkageType: ''
    returnType: struct snmp_node
    signature: '*

      snmp_mib_tree_resolve_next(const struct snmp_mib *mib, const u32_t *oid, u8_t
      oid_len, struct snmp_obj_id* oidret)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - state
    - start_oid
    - start_oid_len
    - next_oid_buf
    - next_oid_max_len
    argTypes:
    - struct snmp_next_oid_state*
    - u32_t*
    - u8_t
    - u32_t*
    - u8_t
    constantsTouched: []
    func_position:
      end: 1118
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1118
    functionName: snmp_next_oid_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "snmp_next_oid_init(struct snmp_next_oid_state *state,\n  const u32_t
      *start_oid, u8_t start_oid_len,\n  u32_t *next_oid_buf, u8_t next_oid_max_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_oid_compare
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:1130,1
    - Dst: snmp_oid_compare
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:1133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - state
    - oid
    - oid_len
    argTypes:
    - struct snmp_next_oid_state*
    - u32_t*
    - u8_t
    constantsTouched: []
    func_position:
      end: 1140
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1140
    functionName: snmp_next_oid_precheck
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 0
    functionsReached:
    - snmp_oid_compare
    linkageType: ''
    returnType: u8_t
    signature: snmp_next_oid_precheck(struct snmp_next_oid_state *state, const u32_t
      *oid, const u8_t oid_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_oid_compare
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:1149,1
    - Dst: snmp_oid_compare
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:1152,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:1154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - state
    - oid
    - oid_len
    - reference
    argTypes:
    - struct snmp_next_oid_state*
    - u32_t*
    - u8_t
    - void*
    constantsTouched: []
    func_position:
      end: 1167
      start: 1143
    functionDepth: 1
    functionLinenumber: 1143
    functionLinenumberEnd: 1167
    functionName: snmp_next_oid_check
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 9
    functionsReached:
    - snmp_oid_compare
    - MEMCPY
    linkageType: ''
    returnType: u8_t
    signature: snmp_next_oid_check(struct snmp_next_oid_state *state, const u32_t
      *oid, const u8_t oid_len, void* reference)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - oid_in
    - oid_len
    - oid_ranges
    - oid_ranges_len
    argTypes:
    - u32_t*
    - u8_t
    - struct snmp_oid_range*
    - u8_t
    constantsTouched: []
    func_position:
      end: 1185
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1185
    functionName: snmp_oid_in_range
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: u8_t
    signature: snmp_oid_in_range(const u32_t *oid_in, u8_t oid_len, const struct snmp_oid_range
      *oid_ranges, u8_t oid_ranges_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:1190,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:1191,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c:1192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - instance
    - value_len
    - value
    argTypes:
    - struct snmp_node_instance*
    - u16_t
    - void*
    constantsTouched: []
    func_position:
      end: 1195
      start: 1187
    functionDepth: 0
    functionLinenumber: 1187
    functionLinenumberEnd: 1195
    functionName: snmp_set_test_ok
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: snmp_err_t
    signature: snmp_set_test_ok(struct snmp_node_instance* instance, u16_t value_len,
      void* value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - buf
    - buf_len
    - bit_value
    argTypes:
    - u8_t*
    - u32_t
    - u32_t*
    constantsTouched: []
    func_position:
      end: 1242
      start: 1209
    functionDepth: 0
    functionLinenumber: 1209
    functionLinenumberEnd: 1242
    functionName: snmp_decode_bits
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: err_t
    signature: snmp_decode_bits(const u8_t *buf, u32_t buf_len, u32_t *bit_value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - asn1_value
    - bool_value
    argTypes:
    - s32_t*
    - u8_t*
    constantsTouched: []
    func_position:
      end: 1268
      start: 1244
    functionDepth: 0
    functionLinenumber: 1244
    functionLinenumberEnd: 1268
    functionName: snmp_decode_truthvalue
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: err_t
    signature: snmp_decode_truthvalue(const s32_t *asn1_value, u8_t *bool_value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - buf
    - buf_len
    - bit_value
    - bit_count
    argTypes:
    - u8_t*
    - u32_t
    - u32_t
    - u8_t
    constantsTouched: []
    func_position:
      end: 1323
      start: 1283
    functionDepth: 0
    functionLinenumber: 1283
    functionLinenumberEnd: 1323
    functionName: snmp_encode_bits
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8_t
    signature: snmp_encode_bits(u8_t *buf, u32_t buf_len, u32_t bit_value, u8_t bit_count)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - asn1_value
    - bool_value
    argTypes:
    - s32_t*
    - u32_t
    constantsTouched: []
    func_position:
      end: 1347
      start: 1325
    functionDepth: 0
    functionLinenumber: 1325
    functionLinenumberEnd: 1347
    functionName: snmp_encode_truthvalue
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8_t
    signature: snmp_encode_truthvalue(s32_t *asn1_value, u32_t bool_value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snmp_get_auth_traps_enabled
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_snmp.c:135,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_snmp.c:148,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 101
    argCount: 2
    argNames:
    - node
    - value
    argTypes:
    - struct snmp_scalar_array_node_def*
    - void*
    constantsTouched: []
    func_position:
      end: 153
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 153
    functionName: snmp_get_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_snmp.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - snmp_get_auth_traps_enabled
    linkageType: ''
    returnType: s16_t
    signature: snmp_get_value(const struct snmp_scalar_array_node_def *node, void
      *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_snmp.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - node
    - len
    - value
    argTypes:
    - struct snmp_scalar_array_node_def*
    - u16_t
    - void*
    constantsTouched: []
    func_position:
      end: 171
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 171
    functionName: snmp_set_test
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_snmp.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: snmp_err_t
    signature: snmp_set_test(const struct snmp_scalar_array_node_def *node, u16_t
      len, void *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_snmp.c:176,1
    - Dst: snmp_set_auth_traps_enabled
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_snmp.c:182,1
    - Dst: snmp_set_auth_traps_enabled
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_snmp.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - node
    - len
    - value
    argTypes:
    - struct snmp_scalar_array_node_def*
    - u16_t
    - void*
    constantsTouched: []
    func_position:
      end: 189
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 189
    functionName: snmp_set_value
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_snmp.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - snmp_set_auth_traps_enabled
    linkageType: ''
    returnType: snmp_err_t
    signature: snmp_set_value(const struct snmp_scalar_array_node_def *node, u16_t
      len, void *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip_addr_set_any
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:101,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:104,1
    - Dst: sys_untimeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:108,1
    - Dst: ctx::close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:111,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 97
    functionDepth: 4
    functionLinenumber: 97
    functionLinenumberEnd: 115
    functionName: close_handle
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c
    functionUses: 0
    functionsReached:
    - ip_addr_set_any
    - LWIP_DEBUGF
    - sys_untimeout
    - pbuf_free
    - ctx::close
    linkageType: ''
    returnType: void
    signature: close_handle(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:124,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:130,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:131,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:132,1
    - Dst: udp_sendto
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:134,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - addr
    - port
    - code
    - str
    argTypes:
    - ip_addr_t*
    - u16_t
    - enum tftp_error
    - char*
    constantsTouched: []
    func_position:
      end: 136
      start: 117
    functionDepth: 4
    functionLinenumber: 117
    functionLinenumberEnd: 136
    functionName: send_error
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - lwip_htons
    - udp_sendto
    - MEMCPY
    - pbuf_free
    - PP_HTONS
    linkageType: ''
    returnType: void
    signature: send_error(const ip_addr_t *addr, u16_t port, enum tftp_error code,
      const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:144,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:150,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:151,1
    - Dst: udp_sendto
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:152,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - blknum
    argTypes:
    - u16_t
    constantsTouched: []
    func_position:
      end: 154
      start: 138
    functionDepth: 4
    functionLinenumber: 138
    functionLinenumberEnd: 154
    functionName: send_ack
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - lwip_htons
    - udp_sendto
    - pbuf_free
    - PP_HTONS
    linkageType: ''
    returnType: void
    signature: send_ack(u16_t blknum)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:159,1
    - Dst: pbuf_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:164,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:165,1
    - Dst: udp_sendto
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:169,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 156
    functionDepth: 4
    functionLinenumber: 156
    functionLinenumberEnd: 171
    functionName: resend_data
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c
    functionUses: 0
    functionsReached:
    - udp_sendto
    - pbuf_free
    - pbuf_copy
    - pbuf_alloc
    linkageType: ''
    returnType: void
    signature: resend_data(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:180,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:183,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:189,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:190,1
    - Dst: ctx::read
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:192,1
    - Dst: send_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:194,1
    - Dst: close_handle
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:195,1
    - Dst: pbuf_realloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:199,1
    - Dst: resend_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 201
      start: 173
    functionDepth: 5
    functionLinenumber: 173
    functionLinenumberEnd: 201
    functionName: send_data
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c
    functionUses: 1
    functionsReached:
    - close_handle
    - resend_data
    - pbuf_alloc
    - send_error
    - lwip_htons
    - pbuf_free
    - pbuf_realloc
    - PP_HTONS
    - ctx::read
    linkageType: ''
    returnType: void
    signature: send_data(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:209,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:210,1
    - Dst: ip_addr_isany_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:213,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:213,1
    - Dst: send_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:214,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:215,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:225,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:226,1
    - Dst: send_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:235,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:239,1
    - Dst: pbuf_memfind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:242,1
    - Dst: send_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:244,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:247,1
    - Dst: pbuf_memfind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:250,1
    - Dst: send_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:252,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:255,1
    - Dst: ctx::open
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:257,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:257,1
    - Dst: send_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:261,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:265,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:265,1
    - Dst: ip_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:266,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:267,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:269,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:272,1
    - Dst: send_ack
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:274,1
    - Dst: send_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:277,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:283,1
    - Dst: send_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:289,1
    - Dst: send_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:294,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:298,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:299,1
    - Dst: ctx::write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:301,1
    - Dst: send_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:303,1
    - Dst: close_handle
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:304,1
    - Dst: send_ack
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:306,1
    - Dst: close_handle
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:310,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:315,1
    - Dst: send_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:321,1
    - Dst: send_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:326,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:330,1
    - Dst: send_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:332,1
    - Dst: send_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:344,1
    - Dst: close_handle
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:346,1
    - Dst: send_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:353,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:357,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 105
    argCount: 5
    argNames:
    - arg
    - upcb
    - p
    - addr
    - port
    argTypes:
    - void*
    - struct udp_pcb*
    - struct pbuf*
    - ip_addr_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 358
      start: 203
    functionDepth: 6
    functionLinenumber: 203
    functionLinenumberEnd: 358
    functionName: recv
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c
    functionUses: 16
    functionsReached:
    - PP_HTONS
    - ip_addr_debug_print
    - LWIP_DEBUGF
    - sys_timeout
    - lwip_ntohs
    - pbuf_free
    - close_handle
    - pbuf_copy_partial
    - ctx::open
    - pbuf_memfind
    - ip_addr_isany_val
    - send_error
    - pbuf_header
    - ip_addr_copy
    - ctx::write
    - send_data
    - send_ack
    - LWIP_UNUSED_ARG
    - ip_addr_cmp
    linkageType: ''
    returnType: void
    signature: recv(void *arg, struct udp_pcb *upcb, struct pbuf *p, const ip_addr_t
      *addr, u16_t port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:363,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:371,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:375,1
    - Dst: resend_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:376,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:379,1
    - Dst: close_handle
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:380,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 383
      start: 360
    functionDepth: 5
    functionLinenumber: 360
    functionLinenumberEnd: 383
    functionName: tftp_tmr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c
    functionUses: 0
    functionsReached:
    - close_handle
    - resend_data
    - LWIP_DEBUGF
    - sys_timeout
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: void
    signature: tftp_tmr(void* arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: udp_new_ip_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:394,1
    - Dst: udp_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:399,1
    - Dst: udp_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:401,1
    - Dst: udp_recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct tftp_context*
    constantsTouched: []
    func_position:
      end: 415
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 415
    functionName: tftp_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c
    functionUses: 0
    functionsReached:
    - udp_new_ip_type
    - udp_recv
    - udp_bind
    - udp_remove
    linkageType: ''
    returnType: err_t
    signature: tftp_init(const struct tftp_context *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 153
    functionName: sntp_msg
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: sntp_msg
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:215,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:221,1
    - Dst: SNTP_SET_SYSTEM_TIME_US
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:222,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:224,1
    - Dst: ctime
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:224,1
    - Dst: SNTP_SET_SYSTEM_TIME
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:229,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:231,1
    - Dst: ctime
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:231,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - receive_timestamp
    argTypes:
    - u32_t*
    constantsTouched: []
    func_position:
      end: 234
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 234
    functionName: sntp_process
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - SNTP_SET_SYSTEM_TIME
    - SNTP_SET_SYSTEM_TIME_US
    - lwip_ntohl
    - LWIP_UNUSED_ARG
    - ctime
    linkageType: ''
    returnType: void
    signature: sntp_process(u32_t *receive_timestamp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:242,1
    - Dst: SNTP_GET_SYSTEM_TIME
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:249,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:250,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct sntp_msg*
    constantsTouched: []
    func_position:
      end: 257
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 257
    functionName: sntp_initialize_request
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c
    functionUses: 0
    functionsReached:
    - lwip_htonl
    - memset
    - SNTP_GET_SYSTEM_TIME
    linkageType: ''
    returnType: void
    signature: sntp_initialize_request(struct sntp_msg *req)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:267,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:269,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 287
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 287
    functionName: sntp_retry
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - LWIP_DEBUGF
    - sys_timeout
    linkageType: ''
    returnType: void
    signature: sntp_retry(void* arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:302,1
    - Dst: ip_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:310,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:315,1
    - Dst: SNTP_RESET_RETRY_TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:318,1
    - Dst: sntp_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:320,1
    - Dst: sntp_retry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:326,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 327
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 327
    functionName: sntp_try_next_server
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - sntp_request
    - sntp_retry
    - LWIP_UNUSED_ARG
    - SNTP_RESET_RETRY_TIMEOUT
    - ip_addr_isany
    linkageType: ''
    returnType: void
    signature: sntp_try_next_server(void* arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:342,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:343,1
    - Dst: sys_untimeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:346,1
    - Dst: sys_untimeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:347,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:352,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:355,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:356,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:361,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:366,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:370,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:375,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:379,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:386,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:390,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:395,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:404,1
    - Dst: sntp_process
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:406,1
    - Dst: SNTP_RESET_RETRY_TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:411,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:413,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:414,1
    - Dst: sntp_try_next_server
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:422,1
    - Dst: sntp_retry
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:425,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 5
    argNames:
    - arg
    - pcb
    - p
    - addr
    - port
    argTypes:
    - void*
    - struct udp_pcb*
    - struct pbuf*
    - ip_addr_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 429
      start: 334
    functionDepth: 4
    functionLinenumber: 334
    functionLinenumberEnd: 429
    functionName: sntp_recv
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c
    functionUses: 0
    functionsReached:
    - pbuf_copy_partial
    - LWIP_DEBUGF
    - sys_timeout
    - sys_untimeout
    - sntp_process
    - pbuf_free
    - sntp_retry
    - LWIP_UNUSED_ARG
    - sntp_try_next_server
    - SNTP_RESET_RETRY_TIMEOUT
    - ip_addr_cmp
    linkageType: ''
    returnType: void
    signature: sntp_recv(void *arg, struct udp_pcb* pcb, struct pbuf *p, const ip_addr_t
      *addr, u16_t port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:439,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:442,1
    - Dst: sntp_initialize_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:444,1
    - Dst: udp_sendto
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:446,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:448,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:450,1
    - Dst: ip_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:453,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:456,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - server_addr
    argTypes:
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 461
      start: 435
    functionDepth: 4
    functionLinenumber: 435
    functionLinenumberEnd: 461
    functionName: sntp_send_request
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - pbuf_alloc
    - sys_timeout
    - ip_addr_set
    - udp_sendto
    - pbuf_free
    - sntp_initialize_request
    linkageType: ''
    returnType: void
    signature: sntp_send_request(const ip_addr_t *server_addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:470,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:471,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:475,1
    - Dst: sntp_send_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:476,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:479,1
    - Dst: sntp_try_next_server
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - hostname
    - ipaddr
    - arg
    argTypes:
    - char*
    - ip_addr_t*
    - void*
    constantsTouched: []
    func_position:
      end: 482
      start: 467
    functionDepth: 5
    functionLinenumber: 467
    functionLinenumberEnd: 482
    functionName: sntp_dns_found
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - sntp_try_next_server
    - sntp_send_request
    - LWIP_DEBUGF
    linkageType: ''
    returnType: void
    signature: sntp_dns_found(const char* hostname, const ip_addr_t *ipaddr, void
      *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:496,1
    - Dst: ip_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:502,1
    - Dst: dns_gethostbyname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:503,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:507,1
    - Dst: ip_addr_isany_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:516,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:520,1
    - Dst: ipaddr_ntoa
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:521,1
    - Dst: sntp_send_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:522,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:525,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:526,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 528
      start: 490
    functionDepth: 5
    functionLinenumber: 490
    functionLinenumberEnd: 528
    functionName: sntp_request
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - sys_timeout
    - dns_gethostbyname
    - ip_addr_set_zero
    - ip_addr_isany_val
    - ipaddr_ntoa
    - sntp_send_request
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: void
    signature: sntp_request(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sntp_setservername
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:540,1
    - Dst: udp_new_ip_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:547,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:548,1
    - Dst: udp_recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:550,1
    - Dst: SNTP_RESET_RETRY_TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:553,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:555,1
    - Dst: sntp_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:557,1
    - Dst: ip_set_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:560,1
    - Dst: udp_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:561,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 565
      start: 535
    functionDepth: 6
    functionLinenumber: 535
    functionLinenumberEnd: 565
    functionName: sntp_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c
    functionUses: 0
    functionsReached:
    - udp_bind
    - sys_timeout
    - sntp_request
    - ip_set_option
    - udp_new_ip_type
    - udp_recv
    - sntp_setservername
    - SNTP_RESET_RETRY_TIMEOUT
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: sntp_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sys_untimeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:575,1
    - Dst: sys_untimeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:576,1
    - Dst: udp_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 580
      start: 571
    functionDepth: 4
    functionLinenumber: 571
    functionLinenumberEnd: 580
    functionName: sntp_stop
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c
    functionUses: 0
    functionsReached:
    - sys_untimeout
    - udp_remove
    linkageType: ''
    returnType: void
    signature: sntp_stop(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 589
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 589
    functionName: sntp_enabled
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8_t
    signature: sntp_enabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:599,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - operating_mode
    argTypes:
    - u8_t
    constantsTouched: []
    func_position:
      end: 602
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 602
    functionName: sntp_setoperatingmode
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: sntp_setoperatingmode(u8_t operating_mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 612
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 612
    functionName: sntp_getoperatingmode
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8_t
    signature: sntp_getoperatingmode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - set_servers_from_dhcp
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 626
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 626
    functionName: sntp_servermode_dhcp
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: sntp_servermode_dhcp(int set_servers_from_dhcp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - idx
    - server
    argTypes:
    - u8_t
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 649
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 649
    functionName: sntp_setserver
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c
    functionUses: 0
    functionsReached:
    - ip_addr_set_zero
    linkageType: ''
    returnType: void
    signature: sntp_setserver(u8_t idx, const ip_addr_t *server)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:661,1
    - Dst: ip4_addr1
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:663,1
    - Dst: ip4_addr2
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:663,1
    - Dst: ip4_addr3
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:663,1
    - Dst: ip4_addr4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:663,1
    - Dst: ip_addr_copy_from_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:668,1
    - Dst: sntp_setserver
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:669,1
    - Dst: sntp_setserver
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c:672,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - num
    - server
    argTypes:
    - u8_t
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 675
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 675
    functionName: dhcp_set_ntp_servers
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - ip4_addr1
    - ip_addr_copy_from_ip4
    - sntp_setserver
    - ip4_addr3
    - ip4_addr4
    - ip4_addr2
    linkageType: ''
    returnType: void
    signature: dhcp_set_ntp_servers(u8_t num, const ip4_addr_t *server)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - idx
    argTypes:
    - u8_t
    constantsTouched: []
    func_position:
      end: 693
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 693
    functionName: sntp_getserver
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ip_addr_t
    signature: '*

      sntp_getserver(u8_t idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - idx
    - server
    argTypes:
    - u8_t
    - char*
    constantsTouched: []
    func_position:
      end: 708
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 708
    functionName: sntp_setservername
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: sntp_setservername(u8_t idx, char *server)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - idx
    argTypes:
    - u8_t
    constantsTouched: []
    func_position:
      end: 724
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 724
    functionName: sntp_getservername
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*

      sntp_getservername(u8_t idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - item
    argTypes:
    - lwiperf_state_base_t*
    constantsTouched: []
    func_position:
      end: 175
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 175
    functionName: lwiperf_list_add
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: lwiperf_list_add(lwiperf_state_base_t* item)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:192,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - item
    argTypes:
    - lwiperf_state_base_t*
    constantsTouched: []
    func_position:
      end: 197
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 197
    functionName: lwiperf_list_remove
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: lwiperf_list_remove(lwiperf_state_base_t* item)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sys_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:205,1
    - Dst: lwiperf_state_tcp_t*::report_fn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - conn
    - report_type
    argTypes:
    - lwiperf_state_tcp_t*
    - enum lwiperf_report_type
    constantsTouched: []
    func_position:
      end: 217
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 217
    functionName: lwip_tcp_conn_report
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c
    functionUses: 0
    functionsReached:
    - sys_now
    - lwiperf_state_tcp_t*::report_fn
    linkageType: ''
    returnType: void
    signature: lwip_tcp_conn_report(lwiperf_state_tcp_t* conn, enum lwiperf_report_type
      report_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_tcp_conn_report
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:225,1
    - Dst: lwiperf_list_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:226,1
    - Dst: tcp_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:228,1
    - Dst: tcp_poll
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:229,1
    - Dst: tcp_sent
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:230,1
    - Dst: tcp_recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:231,1
    - Dst: tcp_err
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:232,1
    - Dst: tcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:233,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:236,1
    - Dst: tcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:240,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:241,1
    - Dst: LWIPERF_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - conn
    - report_type
    argTypes:
    - lwiperf_state_tcp_t*
    - enum lwiperf_report_type
    constantsTouched: []
    func_position:
      end: 244
      start: 220
    functionDepth: 5
    functionLinenumber: 220
    functionLinenumberEnd: 244
    functionName: lwiperf_tcp_close
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c
    functionUses: 0
    functionsReached:
    - tcp_close
    - lwiperf_list_remove
    - tcp_poll
    - tcp_sent
    - LWIPERF_FREE
    - tcp_recv
    - lwip_tcp_conn_report
    - tcp_err
    - tcp_abort
    - tcp_arg
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: lwiperf_tcp_close(lwiperf_state_tcp_t* conn, enum lwiperf_report_type
      report_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:257,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:261,1
    - Dst: sys_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:263,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:265,1
    - Dst: lwiperf_tcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:269,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:274,1
    - Dst: lwiperf_tcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:278,1
    - Dst: LWIP_CONST_CAST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:297,1
    - Dst: tcp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:307,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:320,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 1
    argNames:
    - conn
    argTypes:
    - lwiperf_state_tcp_t*
    constantsTouched: []
    func_position:
      end: 322
      start: 247
    functionDepth: 6
    functionLinenumber: 247
    functionLinenumberEnd: 322
    functionName: lwiperf_tcp_client_send_more
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c
    functionUses: 0
    functionsReached:
    - sys_now
    - tcp_output
    - LWIP_CONST_CAST
    - lwiperf_tcp_close
    - PP_HTONL
    - lwip_htonl
    - tcp_write
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: lwiperf_tcp_client_send_more(lwiperf_state_tcp_t* conn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:330,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:331,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:332,1
    - Dst: lwiperf_tcp_client_send_more
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - arg
    - tpcb
    - len
    argTypes:
    - void*
    - struct tcp_pcb*
    - u16_t
    constantsTouched: []
    func_position:
      end: 337
      start: 325
    functionDepth: 7
    functionLinenumber: 325
    functionLinenumberEnd: 337
    functionName: lwiperf_tcp_client_sent
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - lwiperf_tcp_client_send_more
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: lwiperf_tcp_client_sent(void *arg, struct tcp_pcb *tpcb, u16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:344,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:345,1
    - Dst: lwiperf_tcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:347,1
    - Dst: sys_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:351,1
    - Dst: lwiperf_tcp_client_send_more
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - arg
    - tpcb
    - err
    argTypes:
    - void*
    - struct tcp_pcb*
    - err_t
    constantsTouched: []
    func_position:
      end: 353
      start: 340
    functionDepth: 7
    functionLinenumber: 340
    functionLinenumberEnd: 353
    functionName: lwiperf_tcp_client_connected
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c
    functionUses: 0
    functionsReached:
    - lwiperf_tcp_client_send_more
    - sys_now
    - lwiperf_tcp_close
    - LWIP_UNUSED_ARG
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: lwiperf_tcp_client_connected(void *arg, struct tcp_pcb *tpcb, err_t
      err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIPERF_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:367,1
    - Dst: tcp_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:371,1
    - Dst: LWIPERF_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:373,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:377,1
    - Dst: sys_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:381,1
    - Dst: tcp_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:387,1
    - Dst: tcp_sent
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:388,1
    - Dst: tcp_poll
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:389,1
    - Dst: tcp_err
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:390,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:392,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:393,1
    - Dst: tcp_connect
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:395,1
    - Dst: lwiperf_tcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:397,1
    - Dst: lwiperf_list_add
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:400,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 1
    argNames:
    - conn
    argTypes:
    - lwiperf_state_tcp_t*
    constantsTouched: []
    func_position:
      end: 402
      start: 358
    functionDepth: 8
    functionLinenumber: 358
    functionLinenumberEnd: 402
    functionName: lwiperf_tx_start
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c
    functionUses: 0
    functionsReached:
    - LWIPERF_ALLOC
    - lwiperf_list_add
    - tcp_poll
    - sys_now
    - tcp_sent
    - MEMCPY
    - tcp_new
    - LWIPERF_FREE
    - tcp_connect
    - lwiperf_tcp_close
    - tcp_err
    - lwip_htonl
    - ip_addr_copy
    - tcp_arg
    linkageType: ''
    returnType: err_t
    signature: lwiperf_tx_start(lwiperf_state_tcp_t* conn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:414,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:415,1
    - Dst: lwiperf_tcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:418,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:423,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:424,1
    - Dst: lwiperf_tx_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:426,1
    - Dst: lwiperf_tcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:428,1
    - Dst: lwiperf_tcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:438,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:439,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:443,1
    - Dst: lwiperf_tcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:444,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:445,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:449,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:450,1
    - Dst: lwiperf_tx_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:452,1
    - Dst: lwiperf_tcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:454,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:455,1
    - Dst: pbuf_memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:460,1
    - Dst: lwiperf_tcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:461,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:462,1
    - Dst: sys_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:468,1
    - Dst: tcp_recved
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:469,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:470,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:474,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:475,1
    - Dst: lwiperf_tcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:492,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:493,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:500,1
    - Dst: tcp_recved
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:502,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:503,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 75
    argCount: 4
    argNames:
    - arg
    - tpcb
    - p
    - err
    argTypes:
    - void*
    - struct tcp_pcb*
    - struct pbuf*
    - err_t
    constantsTouched: []
    func_position:
      end: 505
      start: 405
    functionDepth: 9
    functionLinenumber: 405
    functionLinenumberEnd: 505
    functionName: lwiperf_tcp_recv
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c
    functionUses: 0
    functionsReached:
    - pbuf_copy_partial
    - tcp_recved
    - sys_now
    - lwiperf_tcp_close
    - lwiperf_tx_start
    - PP_HTONL
    - pbuf_header
    - pbuf_free
    - LWIP_UNUSED_ARG
    - pbuf_memcmp
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: lwiperf_tcp_recv(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t
      err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:512,1
    - Dst: lwiperf_tcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - arg
    - err
    argTypes:
    - void*
    - err_t
    constantsTouched: []
    func_position:
      end: 514
      start: 508
    functionDepth: 6
    functionLinenumber: 508
    functionLinenumberEnd: 514
    functionName: lwiperf_tcp_err
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - lwiperf_tcp_close
    linkageType: ''
    returnType: void
    signature: lwiperf_tcp_err(void *arg, err_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:521,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:522,1
    - Dst: lwiperf_tcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:524,1
    - Dst: lwiperf_tcp_client_send_more
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - arg
    - tpcb
    argTypes:
    - void*
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 533
      start: 517
    functionDepth: 7
    functionLinenumber: 517
    functionLinenumberEnd: 533
    functionName: lwiperf_tcp_poll
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - lwiperf_tcp_close
    - lwiperf_tcp_client_send_more
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: lwiperf_tcp_poll(void *arg, struct tcp_pcb *tpcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIPERF_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:545,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:549,1
    - Dst: sys_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:555,1
    - Dst: tcp_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:560,1
    - Dst: tcp_recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:561,1
    - Dst: tcp_poll
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:562,1
    - Dst: tcp_err
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:563,1
    - Dst: lwiperf_list_add
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:565,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - arg
    - newpcb
    - err
    argTypes:
    - void*
    - struct tcp_pcb*
    - err_t
    constantsTouched: []
    func_position:
      end: 567
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 567
    functionName: lwiperf_tcp_accept
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c
    functionUses: 0
    functionsReached:
    - LWIPERF_ALLOC
    - lwiperf_list_add
    - tcp_poll
    - sys_now
    - memset
    - tcp_recv
    - tcp_err
    - tcp_arg
    linkageType: ''
    returnType: err_t
    signature: lwiperf_tcp_accept(void *arg, struct tcp_pcb *newpcb, err_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwiperf_start_tcp_server
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - report_fn
    - report_arg
    argTypes:
    - lwiperf_report_fn
    - void*
    constantsTouched: []
    func_position:
      end: 582
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 582
    functionName: lwiperf_start_tcp_server_default
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c
    functionUses: 0
    functionsReached:
    - lwiperf_start_tcp_server
    linkageType: ''
    returnType: void
    signature: '*

      lwiperf_start_tcp_server_default(lwiperf_report_fn report_fn, void* report_arg)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIPERF_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:604,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:608,1
    - Dst: tcp_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:614,1
    - Dst: tcp_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:616,1
    - Dst: tcp_listen_with_backlog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:618,1
    - Dst: tcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:623,1
    - Dst: LWIPERF_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:625,1
    - Dst: tcp_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:630,1
    - Dst: tcp_accept
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:631,1
    - Dst: lwiperf_list_add
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:633,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - local_addr
    - local_port
    - report_fn
    - report_arg
    argTypes:
    - ip_addr_t*
    - u16_t
    - lwiperf_report_fn
    - void*
    constantsTouched: []
    func_position:
      end: 635
      start: 592
    functionDepth: 8
    functionLinenumber: 592
    functionLinenumberEnd: 635
    functionName: lwiperf_start_tcp_server
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c
    functionUses: 1
    functionsReached:
    - tcp_listen_with_backlog
    - LWIPERF_ALLOC
    - lwiperf_list_add
    - tcp_accept
    - memset
    - tcp_new
    - tcp_bind
    - LWIPERF_FREE
    - tcp_arg
    - tcp_close
    linkageType: ''
    returnType: void
    signature: "*\nlwiperf_start_tcp_server(const ip_addr_t* local_addr, u16_t local_port,\n
      \ lwiperf_report_fn report_fn, void* report_arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIPERF_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c:653,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - lwiperf_session
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 659
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 659
    functionName: lwiperf_abort
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c
    functionUses: 0
    functionsReached:
    - LWIPERF_FREE
    linkageType: ''
    returnType: void
    signature: lwiperf_abort(void* lwiperf_session)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: netbios_hdr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: netbios_hdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 117
    functionName: netbios_name_hdr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: netbios_name_hdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: netbios_resp
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: netbios_resp
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:156,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - name_enc
    - name_dec
    - name_dec_len
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 198
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 198
    functionName: netbiosns_name_decode
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: int
    signature: netbiosns_name_decode(char *name_enc, char *name_dec, int name_dec_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 3
    argNames:
    - name_enc
    - name_dec
    - name_dec_len
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 249
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 249
    functionName: netbiosns_name_encode
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: netbiosns_name_encode(char *name_enc, char *name_dec, int name_dec_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:256,1
    - Dst: PP_NTOHS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:268,1
    - Dst: PP_NTOHS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:268,1
    - Dst: PP_NTOHS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:269,1
    - Dst: PP_NTOHS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:270,1
    - Dst: netbiosns_name_decode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:272,1
    - Dst: lwip_strnicmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:274,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:278,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:284,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:289,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:294,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:298,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:299,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:300,1
    - Dst: ip4_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:301,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:301,1
    - Dst: udp_sendto
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:304,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:307,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:313,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 5
    argNames:
    - arg
    - upcb
    - p
    - addr
    - port
    argTypes:
    - void*
    - struct udp_pcb*
    - struct pbuf*
    - ip_addr_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 315
      start: 253
    functionDepth: 4
    functionLinenumber: 253
    functionLinenumberEnd: 315
    functionName: netbiosns_recv
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c
    functionUses: 0
    functionsReached:
    - netif_ip4_addr
    - pbuf_alloc
    - PP_HTONS
    - ip4_addr_copy
    - netbiosns_name_decode
    - MEMCPY
    - udp_sendto
    - PP_HTONL
    - lwip_strnicmp
    - pbuf_free
    - LWIP_UNUSED_ARG
    - PP_NTOHS
    linkageType: ''
    returnType: void
    signature: netbiosns_recv(void *arg, struct udp_pcb *upcb, struct pbuf *p, const
      ip_addr_t *addr, u16_t port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:325,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:325,1
    - Dst: udp_new_ip_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:328,1
    - Dst: ip_set_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:331,1
    - Dst: udp_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:332,1
    - Dst: udp_recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 335
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 335
    functionName: netbiosns_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c
    functionUses: 0
    functionsReached:
    - udp_bind
    - ip_set_option
    - udp_new_ip_type
    - strlen
    - udp_recv
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: netbiosns_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:346,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hostname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 351
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 351
    functionName: netbiosns_set_name
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c
    functionUses: 0
    functionsReached:
    - MEMCPY
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: netbiosns_set_name(const char* hostname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: udp_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 365
      start: 358
    functionDepth: 2
    functionLinenumber: 358
    functionLinenumberEnd: 365
    functionName: netbiosns_stop
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c
    functionUses: 0
    functionsReached:
    - udp_remove
    linkageType: ''
    returnType: void
    signature: netbiosns_stop(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hs
    argTypes:
    - struct http_state*
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: http_add_connection
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: http_add_connection(struct http_state *hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - hs
    argTypes:
    - struct http_state*
    constantsTouched: []
    func_position:
      end: 364
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 364
    functionName: http_remove_connection
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: http_remove_connection(struct http_state *hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:379,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:384,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:388,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:389,1
    - Dst: http_close_or_abort_conn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:391,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ssi_required
    argTypes:
    - u8_t
    constantsTouched: []
    func_position:
      end: 393
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 393
    functionName: http_kill_oldest_connection
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - http_close_or_abort_conn
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: http_kill_oldest_connection(u8_t ssi_required)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HTTP_ALLOC_SSI_STATE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:406,1
    - Dst: http_kill_oldest_connection
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:409,1
    - Dst: HTTP_ALLOC_SSI_STATE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:410,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 417
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 417
    functionName: http_ssi_state_alloc
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - HTTP_ALLOC_SSI_STATE
    - memset
    - http_kill_oldest_connection
    linkageType: ''
    returnType: struct http_ssi_state
    signature: '*

      http_ssi_state_alloc(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HTTP_FREE_SSI_STATE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ssi
    argTypes:
    - struct http_ssi_state*
    constantsTouched: []
    func_position:
      end: 426
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 426
    functionName: http_ssi_state_free
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - HTTP_FREE_SSI_STATE
    linkageType: ''
    returnType: void
    signature: http_ssi_state_free(struct http_ssi_state *ssi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hs
    argTypes:
    - struct http_state*
    constantsTouched: []
    func_position:
      end: 440
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 440
    functionName: http_state_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: http_state_init(struct http_state* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HTTP_ALLOC_HTTP_STATE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:446,1
    - Dst: http_kill_oldest_connection
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:449,1
    - Dst: HTTP_ALLOC_HTTP_STATE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:450,1
    - Dst: http_state_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:454,1
    - Dst: http_add_connection
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 458
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 458
    functionName: http_state_alloc
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - HTTP_ALLOC_HTTP_STATE
    - http_add_connection
    - http_state_init
    - http_kill_oldest_connection
    linkageType: ''
    returnType: struct http_state
    signature: '*

      http_state_alloc(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sys_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:468,1
    - Dst: LWIP_MAX
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:469,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:470,1
    - Dst: fs_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:473,1
    - Dst: mem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:478,1
    - Dst: http_ssi_state_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:484,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:490,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - hs
    argTypes:
    - struct http_state*
    constantsTouched: []
    func_position:
      end: 494
      start: 463
    functionDepth: 4
    functionLinenumber: 463
    functionLinenumberEnd: 494
    functionName: http_state_eof
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - mem_free
    - fs_close
    - http_ssi_state_free
    - sys_now
    - pbuf_free
    - LWIP_MAX
    linkageType: ''
    returnType: void
    signature: http_state_eof(struct http_state *hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: http_state_eof
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:503,1
    - Dst: http_remove_connection
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:504,1
    - Dst: HTTP_FREE_HTTP_STATE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hs
    argTypes:
    - struct http_state*
    constantsTouched: []
    func_position:
      end: 507
      start: 499
    functionDepth: 5
    functionLinenumber: 499
    functionLinenumberEnd: 507
    functionName: http_state_free
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - http_state_eof
    - http_remove_connection
    - HTTP_FREE_HTTP_STATE
    linkageType: ''
    returnType: void
    signature: http_state_free(struct http_state *hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:523,1
    - Dst: tcp_sndbuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:529,1
    - Dst: HTTPD_MAX_WRITE_LEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:535,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:541,1
    - Dst: tcp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:542,1
    - Dst: tcp_sndbuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:544,1
    - Dst: tcp_sndqueuelen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:545,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:551,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:557,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:560,1
    - Dst: lwip_strerr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:560,1
    - Dst: tcp_nagle_enable
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:568,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 4
    argNames:
    - pcb
    - ptr
    - length
    - apiflags
    argTypes:
    - struct tcp_pcb*
    - void*
    - u16_t*
    - u8_t
    constantsTouched: []
    func_position:
      end: 572
      start: 518
    functionDepth: 5
    functionLinenumber: 518
    functionLinenumberEnd: 572
    functionName: http_write
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - tcp_sndqueuelen
    - tcp_nagle_enable
    - HTTPD_MAX_WRITE_LEN
    - tcp_write
    - lwip_strerr
    - tcp_sndbuf
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: http_write(struct tcp_pcb *pcb, const void* ptr, u16_t *length, u8_t
      apiflags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:585,1
    - Dst: httpd_post_finished
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:596,1
    - Dst: tcp_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:602,1
    - Dst: tcp_recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:603,1
    - Dst: tcp_err
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:604,1
    - Dst: tcp_poll
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:605,1
    - Dst: tcp_sent
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:606,1
    - Dst: http_state_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:608,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:612,1
    - Dst: tcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:615,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:617,1
    - Dst: tcp_poll
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:619,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - pcb
    - hs
    - abort_conn
    argTypes:
    - struct tcp_pcb*
    - struct http_state*
    - u8_t
    constantsTouched: []
    func_position:
      end: 622
      start: 581
    functionDepth: 6
    functionLinenumber: 581
    functionLinenumberEnd: 622
    functionName: http_close_or_abort_conn
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 1
    functionsReached:
    - tcp_close
    - LWIP_DEBUGF
    - tcp_poll
    - http_state_free
    - tcp_sent
    - tcp_recv
    - tcp_err
    - httpd_post_finished
    - tcp_abort
    - tcp_arg
    linkageType: ''
    returnType: err_t
    signature: http_close_or_abort_conn(struct tcp_pcb *pcb, struct http_state *hs,
      u8_t abort_conn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: http_close_or_abort_conn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pcb
    - hs
    argTypes:
    - struct tcp_pcb*
    - struct http_state*
    constantsTouched: []
    func_position:
      end: 635
      start: 631
    functionDepth: 7
    functionLinenumber: 631
    functionLinenumberEnd: 635
    functionName: http_close_conn
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - http_close_or_abort_conn
    linkageType: ''
    returnType: err_t
    signature: http_close_conn(struct tcp_pcb *pcb, struct http_state *hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: http_remove_connection
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:646,1
    - Dst: http_state_eof
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:648,1
    - Dst: http_state_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:649,1
    - Dst: http_add_connection
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:653,1
    - Dst: tcp_nagle_disable
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:655,1
    - Dst: http_close_conn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - pcb
    - hs
    argTypes:
    - struct tcp_pcb*
    - struct http_state*
    constantsTouched: []
    func_position:
      end: 661
      start: 640
    functionDepth: 8
    functionLinenumber: 640
    functionLinenumberEnd: 661
    functionName: http_eof
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - tcp_nagle_disable
    - http_state_init
    - http_state_eof
    - http_remove_connection
    - http_close_conn
    - http_add_connection
    linkageType: ''
    returnType: void
    signature: http_eof(struct tcp_pcb *pcb, struct http_state *hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:680,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:702,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:709,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:720,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - hs
    - params
    argTypes:
    - struct http_state*
    - char*
    constantsTouched: []
    func_position:
      end: 730
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 730
    functionName: extract_uri_parameters
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - strchr
    linkageType: ''
    returnType: int
    signature: extract_uri_parameters(struct http_state *hs, char *params)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:864,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:866,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:868,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:876,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:884,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:887,1
    - Dst: lwip_stricmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:893,1
    - Dst: lwip_itoa
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:941,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:943,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:945,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 87
    argCount: 2
    argNames:
    - hs
    - uri
    argTypes:
    - struct http_state*
    - char*
    constantsTouched: []
    func_position:
      end: 966
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 966
    functionName: get_http_headers
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - strstr
    - SMEMCPY
    - strchr
    - lwip_stricmp
    - strlen
    - lwip_itoa
    linkageType: ''
    returnType: void
    signature: get_http_headers(struct http_state *hs, const char *uri)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcp_sndbuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:984,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:992,1
    - Dst: HTTP_IS_HDR_VOLATILE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1001,1
    - Dst: http_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1009,1
    - Dst: http_check_eof
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1039,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1048,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 2
    argNames:
    - pcb
    - hs
    argTypes:
    - struct tcp_pcb*
    - struct http_state*
    constantsTouched: []
    func_position:
      end: 1052
      start: 975
    functionDepth: 6
    functionLinenumber: 975
    functionLinenumberEnd: 1052
    functionName: http_send_headers
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - http_write
    - LWIP_DEBUGF
    - http_check_eof
    - strlen
    - HTTP_IS_HDR_VOLATILE
    - tcp_sndbuf
    linkageType: ''
    returnType: u8_t
    signature: http_send_headers(struct tcp_pcb *pcb, struct http_state *hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: http_eof
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1075,1
    - Dst: fs_bytes_left
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1078,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1081,1
    - Dst: http_eof
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1082,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1089,1
    - Dst: tcp_sndbuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1092,1
    - Dst: HTTPD_MAX_WRITE_LEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1098,1
    - Dst: mem_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1104,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1114,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1120,1
    - Dst: fs_read_async
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1123,1
    - Dst: fs_read
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1125,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1134,1
    - Dst: http_eof
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1135,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1140,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1150,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 2
    argNames:
    - pcb
    - hs
    argTypes:
    - struct tcp_pcb*
    - struct http_state*
    constantsTouched: []
    func_position:
      end: 1153
      start: 1061
    functionDepth: 9
    functionLinenumber: 1061
    functionLinenumberEnd: 1153
    functionName: http_check_eof
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - mem_malloc
    - fs_read
    - fs_bytes_left
    - LWIP_MIN
    - HTTPD_MAX_WRITE_LEN
    - http_eof
    - fs_read_async
    - tcp_sndbuf
    - LWIP_ASSERT
    linkageType: ''
    returnType: u8_t
    signature: http_check_eof(struct tcp_pcb *pcb, struct http_state *hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1169,1
    - Dst: http_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1171,1
    - Dst: HTTP_IS_DATA_VOLATILE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pcb
    - hs
    argTypes:
    - struct tcp_pcb*
    - struct http_state*
    constantsTouched: []
    func_position:
      end: 1179
      start: 1160
    functionDepth: 6
    functionLinenumber: 1160
    functionLinenumberEnd: 1179
    functionName: http_send_data_nonssi
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - http_write
    - HTTP_IS_DATA_VOLATILE
    - LWIP_MIN
    linkageType: ''
    returnType: u8_t
    signature: http_send_data_nonssi(struct tcp_pcb *pcb, struct http_state *hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1195,1
    - Dst: tcp_sndbuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1202,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1206,1
    - Dst: http_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1208,1
    - Dst: HTTP_IS_DATA_VOLATILE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1208,1
    - Dst: tcp_sndbuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1216,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1221,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1302,1
    - Dst: get_tag_insert
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1356,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1373,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1376,1
    - Dst: http_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1379,1
    - Dst: HTTP_IS_DATA_VOLATILE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1379,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1415,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1417,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1419,1
    - Dst: http_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1422,1
    - Dst: HTTP_IS_DATA_VOLATILE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1422,1
    - Dst: get_tag_insert
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1444,1
    - Dst: http_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1459,1
    - Dst: HTTP_IS_TAG_VOLATILE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1460,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1473,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1492,1
    - Dst: http_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1494,1
    - Dst: HTTP_IS_DATA_VOLATILE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1494,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 169
    argCount: 2
    argNames:
    - pcb
    - hs
    argTypes:
    - struct tcp_pcb*
    - struct http_state*
    constantsTouched: []
    func_position:
      end: 1502
      start: 1187
    functionDepth: 6
    functionLinenumber: 1187
    functionLinenumberEnd: 1502
    functionName: http_send_data_ssi
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - http_write
    - LWIP_DEBUGF
    - HTTP_IS_TAG_VOLATILE
    - HTTP_IS_DATA_VOLATILE
    - LWIP_MIN
    - tcp_sndbuf
    - get_tag_insert
    - LWIP_ASSERT
    linkageType: ''
    returnType: u8_t
    signature: http_send_data_ssi(struct tcp_pcb *pcb, struct http_state *hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1516,1
    - Dst: fs_is_file_ready
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1533,1
    - Dst: http_send_headers
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1541,1
    - Dst: http_check_eof
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1552,1
    - Dst: http_send_data_ssi
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1559,1
    - Dst: http_send_data_nonssi
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1563,1
    - Dst: fs_bytes_left
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1566,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1569,1
    - Dst: http_eof
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1570,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1573,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - pcb
    - hs
    argTypes:
    - struct tcp_pcb*
    - struct http_state*
    constantsTouched: []
    func_position:
      end: 1575
      start: 1511
    functionDepth: 10
    functionLinenumber: 1511
    functionLinenumberEnd: 1575
    functionName: http_send
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - http_send_data_ssi
    - fs_is_file_ready
    - http_send_data_nonssi
    - http_check_eof
    - fs_bytes_left
    - http_eof
    - http_send_headers
    linkageType: ''
    returnType: u8_t
    signature: http_send(struct tcp_pcb *pcb, struct http_state *hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fs_open
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1601,1
    - Dst: fs_open
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1603,1
    - Dst: fs_open
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1605,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1607,1
    - Dst: http_init_file
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1613,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - hs
    - error_nr
    argTypes:
    - struct http_state*
    - u16_t
    constantsTouched: []
    func_position:
      end: 1614
      start: 1585
    functionDepth: 1
    functionLinenumber: 1585
    functionLinenumberEnd: 1614
    functionName: http_find_error_file
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - fs_open
    - http_init_file
    linkageType: ''
    returnType: err_t
    signature: http_find_error_file(struct http_state *hs, u16_t error_nr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fs_open
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1632,1
    - Dst: fs_open
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1636,1
    - Dst: fs_open
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1640,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - hs
    - uri
    argTypes:
    - struct http_state*
    - char**
    constantsTouched: []
    func_position:
      end: 1652
      start: 1626
    functionDepth: 1
    functionLinenumber: 1626
    functionLinenumberEnd: 1652
    functionName: http_get_404_file
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - fs_open
    linkageType: ''
    returnType: struct fs_file
    signature: '*

      http_get_404_file(struct http_state *hs, const char **uri)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: httpd_post_finished
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1669,1
    - Dst: http_find_file
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - hs
    argTypes:
    - struct http_state*
    constantsTouched: []
    func_position:
      end: 1671
      start: 1655
    functionDepth: 0
    functionLinenumber: 1655
    functionLinenumberEnd: 1671
    functionName: http_handle_post_finished
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - httpd_post_finished
    - http_find_file
    linkageType: ''
    returnType: err_t
    signature: http_handle_post_finished(struct http_state *hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: httpd_post_receive_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1699,1
    - Dst: http_handle_post_finished
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1714,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - hs
    - p
    argTypes:
    - struct http_state*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 1718
      start: 1682
    functionDepth: 1
    functionLinenumber: 1682
    functionLinenumberEnd: 1718
    functionName: http_post_rxpbuf
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - http_handle_post_finished
    - httpd_post_receive_data
    linkageType: ''
    returnType: err_t
    signature: http_post_rxpbuf(struct http_state *hs, struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1753,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1763,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1764,1
    - Dst: httpd_post_begin
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1769,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1788,1
    - Dst: pbuf_ref
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1795,1
    - Dst: http_post_rxpbuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1796,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1798,1
    - Dst: http_post_rxpbuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1799,1
    - Dst: http_find_file
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1805,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1808,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1817,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 6
    argNames:
    - inp
    - hs
    - data
    - data_len
    - uri
    - uri_end
    argTypes:
    - struct pbuf*
    - struct http_state*
    - char*
    - u16_t
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1826
      start: 1734
    functionDepth: 2
    functionLinenumber: 1734
    functionLinenumberEnd: 1826
    functionName: http_post_request
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - pbuf_alloc
    - atoi
    - pbuf_ref
    - pbuf_header
    - LWIP_MIN
    - httpd_post_begin
    - http_post_rxpbuf
    - http_find_file
    linkageType: ''
    returnType: err_t
    signature: "http_post_request(struct pbuf *inp, struct http_state *hs,\n                  char
      *data, u16_t data_len, char *uri, char *uri_end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1846,1
    - Dst: tcp_recved
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1852,1
    - Dst: http_handle_post_finished
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1856,1
    - Dst: http_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1857,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - connection
    - recved_len
    argTypes:
    - void*
    - u16_t
    constantsTouched: []
    func_position:
      end: 1862
      start: 1837
    functionDepth: 11
    functionLinenumber: 1837
    functionLinenumberEnd: 1862
    functionName: httpd_post_data_recved
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - tcp_recved
    - LWIP_DEBUGF
    - http_send
    - http_handle_post_finished
    linkageType: ''
    returnType: void
    signature: httpd_post_data_recved(void *connection, u16_t recved_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1876,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1877,1
    - Dst: http_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1878,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1880,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1881,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - connection
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1884
      start: 1871
    functionDepth: 11
    functionLinenumber: 1871
    functionLinenumberEnd: 1884
    functionName: http_continue
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - tcp_output
    - LWIP_DEBUGF
    - http_send
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: http_continue(void *connection)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1912,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1913,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1914,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1917,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1925,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1931,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1934,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1935,1
    - Dst: pbuf_ref
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1939,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1942,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1943,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1951,1
    - Dst: lwip_strnstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1958,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1966,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1968,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1971,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1973,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1978,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1984,1
    - Dst: http_find_error_file
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1986,1
    - Dst: lwip_strnstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1990,1
    - Dst: lwip_strnstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:1994,1
    - Dst: lwip_strnstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2007,1
    - Dst: lwip_strnstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2012,1
    - Dst: lwip_strnstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2013,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2022,1
    - Dst: http_post_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2031,1
    - Dst: http_find_file
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2045,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2049,1
    - Dst: pbuf_clen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2055,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2066,1
    - Dst: http_find_error_file
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2068,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 97
    argCount: 3
    argNames:
    - inp
    - hs
    - pcb
    argTypes:
    - struct pbuf*
    - struct http_state*
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 2070
      start: 1898
    functionDepth: 3
    functionLinenumber: 1898
    functionLinenumberEnd: 2070
    functionName: http_parse_request
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - pbuf_copy_partial
    - http_post_request
    - LWIP_DEBUGF
    - pbuf_cat
    - pbuf_ref
    - strncmp
    - http_find_error_file
    - pbuf_clen
    - lwip_strnstr
    - LWIP_MIN
    - LWIP_UNUSED_ARG
    - http_find_file
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: http_parse_request(struct pbuf *inp, struct http_state *hs, struct
      tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: http_ssi_state_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2235,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2246,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2250,1
    - Dst: sys_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2262,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2265,1
    - Dst: extract_uri_parameters
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2290,1
    - Dst: httpd_cgi_handler
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2292,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2299,1
    - Dst: get_http_headers
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2311,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2314,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 6
    argNames:
    - hs
    - file
    - is_09
    - uri
    - tag_check
    - params
    argTypes:
    - struct http_state*
    - struct fs_file*
    - int
    - char*
    - u8_t
    - char*
    constantsTouched: []
    func_position:
      end: 2332
      start: 2227
    functionDepth: 3
    functionLinenumber: 2227
    functionLinenumberEnd: 2332
    functionName: http_init_file
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 1
    functionsReached:
    - http_ssi_state_alloc
    - get_http_headers
    - sys_now
    - extract_uri_parameters
    - httpd_cgi_handler
    - LWIP_UNUSED_ARG
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: "http_init_file(struct http_state *hs, struct fs_file *file, int is_09,
      const char *uri,\n               u8_t tag_check, char* params)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2342,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2344,1
    - Dst: lwip_strerr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2344,1
    - Dst: http_state_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - arg
    - err
    argTypes:
    - void*
    - err_t
    constantsTouched: []
    func_position:
      end: 2349
      start: 2338
    functionDepth: 6
    functionLinenumber: 2338
    functionLinenumberEnd: 2349
    functionName: http_err
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - LWIP_DEBUGF
    - http_state_free
    - lwip_strerr
    linkageType: ''
    returnType: void
    signature: http_err(void *arg, err_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2360,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2362,1
    - Dst: http_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - arg
    - pcb
    - len
    argTypes:
    - void*
    - struct tcp_pcb*
    - u16_t
    constantsTouched: []
    func_position:
      end: 2373
      start: 2355
    functionDepth: 11
    functionLinenumber: 2355
    functionLinenumberEnd: 2373
    functionName: http_sent
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - LWIP_DEBUGF
    - http_send
    linkageType: ''
    returnType: err_t
    signature: http_sent(void *arg, struct tcp_pcb *pcb, u16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2386,1
    - Dst: tcp_debug_state_str
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2387,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2392,1
    - Dst: http_close_conn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2393,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2394,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2397,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2405,1
    - Dst: http_close_conn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2406,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2414,1
    - Dst: http_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2415,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2417,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2418,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - arg
    - pcb
    argTypes:
    - void*
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 2424
      start: 2382
    functionDepth: 11
    functionLinenumber: 2382
    functionLinenumberEnd: 2424
    functionName: http_poll
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - http_send
    - http_close_conn
    - tcp_output
    - tcp_debug_state_str
    - LWIP_UNUSED_ARG
    - tcp_abort
    linkageType: ''
    returnType: err_t
    signature: http_poll(void *arg, struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2434,1
    - Dst: lwip_strerr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2435,1
    - Dst: tcp_recved
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2441,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2442,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2446,1
    - Dst: http_close_conn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2448,1
    - Dst: tcp_recved
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2459,1
    - Dst: http_post_rxpbuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2467,1
    - Dst: http_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2471,1
    - Dst: http_parse_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2478,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2479,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2485,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2490,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2496,1
    - Dst: http_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2497,1
    - Dst: http_close_conn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2501,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2504,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2506,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 4
    argNames:
    - arg
    - pcb
    - p
    - err
    argTypes:
    - void*
    - struct tcp_pcb*
    - struct pbuf*
    - err_t
    constantsTouched: []
    func_position:
      end: 2510
      start: 2430
    functionDepth: 11
    functionLinenumber: 2430
    functionLinenumberEnd: 2510
    functionName: http_recv
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - http_send
    - http_parse_request
    - tcp_recved
    - http_close_conn
    - pbuf_free
    - lwip_strerr
    - http_post_rxpbuf
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: http_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2519,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2520,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2521,1
    - Dst: tcp_setprio
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2528,1
    - Dst: http_state_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2532,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2534,1
    - Dst: tcp_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2541,1
    - Dst: tcp_recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2544,1
    - Dst: tcp_err
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2545,1
    - Dst: tcp_poll
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2546,1
    - Dst: tcp_sent
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2547,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - arg
    - pcb
    - err
    argTypes:
    - void*
    - struct tcp_pcb*
    - err_t
    constantsTouched: []
    func_position:
      end: 2550
      start: 2515
    functionDepth: 3
    functionLinenumber: 2515
    functionLinenumberEnd: 2550
    functionName: http_accept
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - tcp_poll
    - tcp_sent
    - tcp_setprio
    - tcp_recv
    - tcp_err
    - LWIP_UNUSED_ARG
    - http_state_alloc
    - tcp_arg
    linkageType: ''
    returnType: err_t
    signature: http_accept(void *arg, struct tcp_pcb *pcb, err_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_MEMPOOL_INIT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2563,1
    - Dst: LWIP_MEMPOOL_INIT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2565,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2568,1
    - Dst: tcp_new_ip_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2570,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2571,1
    - Dst: tcp_setprio
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2572,1
    - Dst: tcp_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2574,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2575,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2576,1
    - Dst: tcp_listen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2577,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2578,1
    - Dst: tcp_accept
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2580
      start: 2556
    functionDepth: 8
    functionLinenumber: 2556
    functionLinenumberEnd: 2580
    functionName: httpd_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - tcp_accept
    - LWIP_MEMPOOL_INIT
    - tcp_bind
    - tcp_setprio
    - LWIP_UNUSED_ARG
    - tcp_listen
    - tcp_new_ip_type
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: httpd_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2593,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2595,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2599,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2600,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2602,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - ssi_handler
    - tags
    - num_tags
    argTypes:
    - tSSIHandler
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 2608
      start: 2590
    functionDepth: 0
    functionLinenumber: 2590
    functionLinenumberEnd: 2608
    functionName: http_set_ssi_handler
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - LWIP_DEBUGF
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: http_set_ssi_handler(tSSIHandler ssi_handler, const char **tags, int
      num_tags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2621,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c:2622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cgis
    - num_handlers
    argTypes:
    - tCGI*
    - int
    constantsTouched: []
    func_position:
      end: 2626
      start: 2618
    functionDepth: 0
    functionLinenumber: 2618
    functionLinenumberEnd: 2626
    functionName: http_set_cgi_handlers
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
    functionUses: 0
    functionsReached:
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: http_set_cgi_handlers(const tCGI *cgis, int num_handlers)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fs_open_custom
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/fs.c:71,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/fs.c:79,1
    - Dst: fs_state_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/fs.c:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - file
    - name
    argTypes:
    - struct fs_file*
    - char*
    constantsTouched: []
    func_position:
      end: 97
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 97
    functionName: fs_open
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/fs.c
    functionUses: 2
    functionsReached:
    - fs_state_init
    - fs_open_custom
    - strcmp
    linkageType: ''
    returnType: err_t
    signature: fs_open(struct fs_file *file, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fs_close_custom
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/fs.c:105,1
    - Dst: fs_state_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/fs.c:109,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/fs.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - file
    argTypes:
    - struct fs_file*
    constantsTouched: []
    func_position:
      end: 112
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 112
    functionName: fs_close
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/fs.c
    functionUses: 1
    functionsReached:
    - LWIP_UNUSED_ARG
    - fs_close_custom
    - fs_state_free
    linkageType: ''
    returnType: void
    signature: fs_close(struct fs_file *file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fs_canread_custom
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/fs.c:160,1
    - Dst: fs_wait_read_custom
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/fs.c:161,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/fs.c:166,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/fs.c:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - file
    - callback_fn
    - callback_arg
    argTypes:
    - struct fs_file*
    - fs_wait_cb
    - void*
    constantsTouched: []
    func_position:
      end: 172
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 172
    functionName: fs_is_file_ready
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/fs.c
    functionUses: 1
    functionsReached:
    - fs_canread_custom
    - LWIP_UNUSED_ARG
    - fs_wait_read_custom
    linkageType: ''
    returnType: int
    signature: fs_is_file_ready(struct fs_file *file, fs_wait_cb callback_fn, void
      *callback_arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - struct fs_file*
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: fs_bytes_left
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/fs.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: fs_bytes_left(struct fs_file *file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:173,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:174,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:175,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:176,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:177,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:178,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:179,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:180,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:181,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:182,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:184,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:185,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:187,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 189
    functionName: print_usage
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: print_usage(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:200,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:202,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:203,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:205,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:206,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:207,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:209,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:215,1
    - Dst: snprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:216,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:218,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:219,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:221,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:223,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:225,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:227,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:229,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:230,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:232,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:233,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:235,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:244,1
    - Dst: exit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:245,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:250,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:252,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:254,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:254,1
    - Dst: print_usage
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:255,1
    - Dst: exit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:256,1
    - Dst: print_usage
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:259,1
    - Dst: exit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:260,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:262,1
    - Dst: check_path
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:267,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:268,1
    - Dst: exit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:269,1
    - Dst: GETCWD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:272,1
    - Dst: CHDIR_SUCCEEDED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:274,1
    - Dst: CHDIR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:274,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:276,1
    - Dst: print_usage
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:277,1
    - Dst: exit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:278,1
    - Dst: CHDIR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:280,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:282,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:286,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:287,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:289,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:291,1
    - Dst: fopen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:294,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:296,1
    - Dst: exit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:297,1
    - Dst: fopen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:299,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:301,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:302,1
    - Dst: exit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:303,1
    - Dst: CHDIR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:306,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:308,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:309,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:310,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:312,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:314,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:316,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:320,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:322,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:323,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:325,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:328,1
    - Dst: process_sub
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:330,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:335,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:336,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:338,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:339,1
    - Dst: CHDIR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:341,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:343,1
    - Dst: concat_files
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:344,1
    - Dst: remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:347,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:348,1
    - Dst: remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:350,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:351,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:354,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:357,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:361,1
    - Dst: free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:366,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 136
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 370
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 370
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c
    functionUses: 8
    functionsReached:
    - fclose
    - printf
    - snprintf
    - fprintf
    - strcpy
    - fopen
    - remove
    - GETCWD
    - exit
    - print_usage
    - CHDIR
    - strstr
    - concat_files
    - strncpy
    - memset
    - sprintf
    - process_sub
    - free
    - CHDIR_SUCCEEDED
    - check_path
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:379,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - path
    - size
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 393
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 393
    functionName: check_path
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c
    functionUses: 1
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: check_path(char* path, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:400,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:402,1
    - Dst: exit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:403,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:405,1
    - Dst: fread
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:406,1
    - Dst: fwrite
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:407,1
    - Dst: free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:409,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - filename_in
    - fout
    argTypes:
    - char*
    - FILE*
    constantsTouched: []
    func_position:
      end: 411
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 411
    functionName: copy_file
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c
    functionUses: 0
    functionsReached:
    - exit
    - fwrite
    - fread
    - fclose
    - free
    - printf
    - fopen
    - malloc
    linkageType: ''
    returnType: void
    signature: copy_file(const char *filename_in, FILE *fout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:416,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:418,1
    - Dst: exit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:419,1
    - Dst: copy_file
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:421,1
    - Dst: copy_file
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:422,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - file1
    - file2
    - targetfile
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 424
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 424
    functionName: concat_files
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c
    functionUses: 1
    functionsReached:
    - copy_file
    - exit
    - fclose
    - printf
    - fopen
    linkageType: ''
    returnType: void
    signature: concat_files(const char *file1, const char *file2, const char *targetfile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:436,1
    - Dst: FINDFIRST_DIR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:437,1
    - Dst: FINDFIRST_SUCCEEDED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:438,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:441,1
    - Dst: FIND_T_IS_DIR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:444,1
    - Dst: CHDIR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:448,1
    - Dst: strncat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:449,1
    - Dst: strncat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:450,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:452,1
    - Dst: process_sub
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:453,1
    - Dst: CHDIR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:454,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:457,1
    - Dst: FINDNEXT_SUCCEEDED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:459,1
    - Dst: FINDNEXT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:459,1
    - Dst: FINDFIRST_FILE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:463,1
    - Dst: FINDFIRST_SUCCEEDED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:464,1
    - Dst: FIND_T_IS_FILE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:467,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:469,1
    - Dst: process_file
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:470,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:471,1
    - Dst: FINDNEXT_SUCCEEDED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:476,1
    - Dst: FINDNEXT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:476,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - data_file
    - struct_file
    argTypes:
    - FILE*
    - FILE*
    constantsTouched: []
    func_position:
      end: 479
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 479
    functionName: process_sub
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c
    functionUses: 2
    functionsReached:
    - FINDFIRST_SUCCEEDED
    - strcmp
    - CHDIR
    - process_file
    - FINDNEXT_SUCCEEDED
    - process_sub
    - printf
    - FIND_T_IS_DIR
    - strncat
    - FINDNEXT
    - FINDFIRST_FILE
    - FINDFIRST_DIR
    - FIND_T_IS_FILE
    - LWIP_ASSERT
    linkageType: ''
    returnType: int
    signature: process_sub(FILE *data_file, FILE *struct_file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:488,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:490,1
    - Dst: exit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:491,1
    - Dst: fseek
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:493,1
    - Dst: ftell
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:494,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:496,1
    - Dst: exit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:497,1
    - Dst: fseek
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:500,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:501,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:502,1
    - Dst: fread
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:503,1
    - Dst: MZ_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:518,1
    - Dst: tdefl_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:522,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:524,1
    - Dst: exit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:525,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:527,1
    - Dst: tdefl_compress
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:528,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:530,1
    - Dst: exit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:531,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:533,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:535,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:536,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:537,1
    - Dst: tinfl_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:546,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:547,1
    - Dst: tinfl_decompress
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:548,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:549,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:550,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:551,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:551,1
    - Dst: free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:554,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:557,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:561,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:564,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:567,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:571,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:573,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 69
    argCount: 4
    argNames:
    - filename
    - file_size
    - can_be_compressed
    - is_compressed
    argTypes:
    - char*
    - int*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 575
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 575
    functionName: get_file_data
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c
    functionUses: 0
    functionsReached:
    - tinfl_decompress
    - fseek
    - fread
    - fclose
    - printf
    - MZ_MIN
    - fopen
    - LWIP_ASSERT
    - tinfl_init
    - exit
    - ftell
    - tdefl_init
    - tdefl_compress
    - memset
    - memcmp
    - free
    - memcpy
    - LWIP_UNUSED_ARG
    - malloc
    linkageType: ''
    returnType: u8_t
    signature: '* get_file_data(const char* filename, int* file_size, int can_be_compressed,
      int* is_compressed)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:583,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:584,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:587,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:588,1
    - Dst: fwrite
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:592,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:593,1
    - Dst: fwrite
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:597,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:598,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - data_file
    - file_data
    - file_size
    argTypes:
    - FILE*
    - u8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 599
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 599
    functionName: process_file_data
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c
    functionUses: 0
    functionsReached:
    - fwrite
    - memcpy
    - sprintf
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: process_file_data(FILE* data_file, u8_t* file_data, size_t file_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:613,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:614,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:618,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:625,1
    - Dst: inet_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:629,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:631,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:634,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:635,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 6
    argNames:
    - struct_file
    - varname
    - hdr_len
    - hdr_chksum
    - file_data
    - file_size
    argTypes:
    - FILE*
    - char*
    - u16_t
    - u16_t
    - u8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 637
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 637
    functionName: write_checksums
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c
    functionUses: 0
    functionsReached:
    - fprintf
    - LWIP_MIN
    - inet_chksum
    linkageType: ''
    returnType: int
    signature: "write_checksums(FILE *struct_file, const char *varname,\n                    u16_t
      hdr_len, u16_t hdr_chksum, const u8_t* file_data, size_t file_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 648
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 648
    functionName: is_valid_char_for_c_var
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: is_valid_char_for_c_var(char x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:659,1
    - Dst: exit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:660,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:662,1
    - Dst: is_valid_char_for_c_var
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:664,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:671,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:675,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:681,1
    - Dst: exit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:682,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:684,1
    - Dst: free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:685,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - qualifiedName
    - max_len
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 686
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 686
    functionName: fix_filename_for_c
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c
    functionUses: 0
    functionsReached:
    - exit
    - strcmp
    - is_valid_char_for_c_var
    - free
    - printf
    - strcpy
    - sprintf
    linkageType: ''
    returnType: void
    signature: fix_filename_for_c(char* qualifiedName, size_t max_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:690,1
    - Dst: strdup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - qualifiedName
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 699
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 699
    functionName: register_filename
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c
    functionUses: 0
    functionsReached:
    - strdup
    - malloc
    linkageType: ''
    returnType: void
    signature: register_filename(const char* qualifiedName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:705,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 710
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 710
    functionName: is_ssi_file
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c
    functionUses: 0
    functionsReached:
    - strstr
    linkageType: ''
    returnType: int
    signature: is_ssi_file(const char* filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:728,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:730,1
    - Dst: fix_filename_for_c
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:732,1
    - Dst: register_filename
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:733,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:736,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:737,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:738,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:740,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:742,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:742,1
    - Dst: file_put_ascii
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:743,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:743,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:747,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:751,1
    - Dst: is_ssi_file
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:753,1
    - Dst: get_file_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:754,1
    - Dst: file_write_http_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:756,1
    - Dst: write_checksums
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:763,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:767,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:768,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:769,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:770,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:771,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:787,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:789,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:790,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:791,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:793,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:794,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:798,1
    - Dst: process_file_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:799,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:800,1
    - Dst: free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:801,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 61
    argCount: 3
    argNames:
    - data_file
    - struct_file
    - filename
    argTypes:
    - FILE*
    - FILE*
    - char*
    constantsTouched: []
    func_position:
      end: 803
      start: 712
    functionDepth: 2
    functionLinenumber: 712
    functionLinenumberEnd: 803
    functionName: process_file
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c
    functionUses: 1
    functionsReached:
    - is_ssi_file
    - strcpy
    - process_file_data
    - fix_filename_for_c
    - file_put_ascii
    - get_file_data
    - strlen
    - write_checksums
    - file_write_http_header
    - free
    - fprintf
    - register_filename
    - sprintf
    linkageType: ''
    returnType: int
    signature: process_file(FILE *data_file, FILE *struct_file, const char *filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:820,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:826,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:827,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:832,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:837,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:844,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:845,1
    - Dst: file_put_ascii
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:846,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:849,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:854,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:855,1
    - Dst: file_put_ascii
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:856,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:859,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:865,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:866,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:871,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:876,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:882,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:893,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:895,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:896,1
    - Dst: file_put_ascii
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:897,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:899,1
    - Dst: _itoa
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:903,1
    - Dst: strcat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:904,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:905,1
    - Dst: file_put_ascii
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:906,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:909,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:917,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:918,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:920,1
    - Dst: stat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:921,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:922,1
    - Dst: exit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:923,1
    - Dst: gmtime
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:925,1
    - Dst: printf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:927,1
    - Dst: exit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:928,1
    - Dst: strftime
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:930,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:931,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:932,1
    - Dst: file_put_ascii
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:933,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:935,1
    - Dst: strcat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:940,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:941,1
    - Dst: file_put_ascii
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:942,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:945,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:959,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:960,1
    - Dst: file_put_ascii
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:961,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:964,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:972,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:974,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:975,1
    - Dst: file_put_ascii
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:976,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:980,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:985,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:986,1
    - Dst: file_put_ascii
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:987,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:993,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:996,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:997,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:997,1
    - Dst: inet_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:998,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 156
    argCount: 7
    argNames:
    - data_file
    - filename
    - file_size
    - http_hdr_len
    - http_hdr_chksum
    - provide_content_len
    - is_compressed
    argTypes:
    - FILE*
    - char*
    - int
    - u16_t*
    - u16_t*
    - u8_t
    - int
    constantsTouched: []
    func_position:
      end: 1004
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 1004
    functionName: file_write_http_header
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c
    functionUses: 1
    functionsReached:
    - gmtime
    - strstr
    - strcat
    - strcpy
    - strcmp
    - _itoa
    - stat
    - exit
    - memset
    - file_put_ascii
    - strlen
    - memcpy
    - printf
    - inet_chksum
    - LWIP_UNUSED_ARG
    - fprintf
    - strftime
    - LWIP_ASSERT
    linkageType: ''
    returnType: int
    signature: "file_write_http_header(FILE *data_file, const char *filename, int
      file_size, u16_t *http_hdr_len,\n                           u16_t *http_hdr_chksum,
      u8_t provide_content_len, int is_compressed)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:1011,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:1013,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - file
    - ascii_string
    - len
    - i
    argTypes:
    - FILE*
    - char*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 1017
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1017
    functionName: file_put_ascii
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c
    functionUses: 2
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: file_put_ascii(FILE *file, const char* ascii_string, int len, int *i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:1025,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c:1028,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - buf
    - ascii_string
    - len
    - i
    argTypes:
    - char*
    - char*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 1033
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1033
    functionName: s_put_ascii
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c
    functionUses: 0
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: int
    signature: s_put_ascii(char *buf, const char *ascii_string, int len, int *i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:287,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - domain
    - label
    - len
    argTypes:
    - struct mdns_domain*
    - char*
    - u8_t
    constantsTouched: []
    func_position:
      end: 291
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 291
    functionName: mdns_domain_add_label
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 16
    functionsReached:
    - MEMCPY
    linkageType: ''
    returnType: err_t
    signature: mdns_domain_add_label(struct mdns_domain *domain, const char *label,
      u8_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_get_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:308,1
    - Dst: pbuf_get_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:318,1
    - Dst: mdns_readname_loop
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:323,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:343,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:348,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 4
    argNames:
    - p
    - offset
    - domain
    - depth
    argTypes:
    - struct pbuf*
    - u16_t
    - struct mdns_domain*
    - unsigned
    constantsTouched: []
    func_position:
      end: 359
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 359
    functionName: mdns_readname_loop
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 1
    functionsReached:
    - pbuf_copy_partial
    - mdns_domain_add_label
    - pbuf_get_at
    - mdns_readname_loop
    linkageType: ''
    returnType: u16_t
    signature: mdns_readname_loop(struct pbuf *p, u16_t offset, struct mdns_domain
      *domain, unsigned depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:372,1
    - Dst: mdns_readname_loop
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - offset
    - domain
    argTypes:
    - struct pbuf*
    - u16_t
    - struct mdns_domain*
    constantsTouched: []
    func_position:
      end: 374
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 374
    functionName: mdns_readname
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 13
    functionsReached:
    - mdns_readname_loop
    - memset
    linkageType: ''
    returnType: u16_t
    signature: mdns_readname(struct pbuf *p, u16_t offset, struct mdns_domain *domain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:390,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - domain
    argTypes:
    - struct mdns_domain*
    constantsTouched: []
    func_position:
      end: 395
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 395
    functionName: mdns_domain_debug_print
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    linkageType: ''
    returnType: void
    signature: mdns_domain_debug_print(struct mdns_domain *domain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_strnicmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:423,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct mdns_domain*
    - struct mdns_domain*
    constantsTouched: []
    func_position:
      end: 434
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 434
    functionName: mdns_domain_eq
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 5
    functionsReached:
    - lwip_strnicmp
    linkageType: ''
    returnType: int
    signature: mdns_domain_eq(struct mdns_domain *a, struct mdns_domain *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:443,1
    - Dst: struct mdns_service*::txt_fn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - service
    argTypes:
    - struct mdns_service*
    constantsTouched: []
    func_position:
      end: 447
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 447
    functionName: mdns_prepare_txtdata
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - struct mdns_service*::txt_fn
    - memset
    linkageType: ''
    returnType: void
    signature: mdns_prepare_txtdata(struct mdns_service *service)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:466,1
    - Dst: lwip_itoa
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:472,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:473,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:473,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:474,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:476,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:477,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:478,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:479,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:480,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:481,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - domain
    - addr
    argTypes:
    - struct mdns_domain*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 484
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 484
    functionName: mdns_build_reverse_v4_domain
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - LWIP_ERROR
    - memset
    - strlen
    - lwip_itoa
    - mdns_domain_add_label
    linkageType: ''
    returnType: err_t
    signature: mdns_build_reverse_v4_domain(struct mdns_domain *domain, const ip4_addr_t
      *addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:504,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:516,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:517,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:521,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:522,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:523,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:524,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:525,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:526,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - domain
    - addr
    argTypes:
    - struct mdns_domain*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 529
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 529
    functionName: mdns_build_reverse_v6_domain
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - mdns_domain_add_label
    - LWIP_ERROR
    - memset
    linkageType: ''
    returnType: err_t
    signature: mdns_build_reverse_v6_domain(struct mdns_domain *domain, const ip6_addr_t
      *addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:536,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:537,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - domain
    argTypes:
    - struct mdns_domain*
    constantsTouched: []
    func_position:
      end: 539
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 539
    functionName: mdns_add_dotlocal
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - LWIP_ERROR
    - mdns_domain_add_label
    linkageType: ''
    returnType: err_t
    signature: mdns_add_dotlocal(struct mdns_domain *domain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:551,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:552,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:553,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:553,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:554,1
    - Dst: mdns_add_dotlocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - domain
    - mdns
    argTypes:
    - struct mdns_domain*
    - struct mdns_host*
    constantsTouched: []
    func_position:
      end: 556
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 556
    functionName: mdns_build_host_domain
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - LWIP_ERROR
    - memset
    - strlen
    - mdns_add_dotlocal
    - mdns_domain_add_label
    linkageType: ''
    returnType: err_t
    signature: mdns_build_host_domain(struct mdns_domain *domain, struct mdns_host
      *mdns)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:567,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:568,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:569,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:570,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:571,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:572,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:572,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:573,1
    - Dst: mdns_add_dotlocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - domain
    argTypes:
    - struct mdns_domain*
    constantsTouched: []
    func_position:
      end: 575
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 575
    functionName: mdns_build_dnssd_domain
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - LWIP_ERROR
    - memset
    - strlen
    - mdns_add_dotlocal
    - mdns_domain_add_label
    linkageType: ''
    returnType: err_t
    signature: mdns_build_dnssd_domain(struct mdns_domain *domain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:590,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:592,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:592,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:593,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:595,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:595,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:596,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:597,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:597,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:598,1
    - Dst: mdns_add_dotlocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - domain
    - service
    - include_name
    argTypes:
    - struct mdns_domain*
    - struct mdns_service*
    - int
    constantsTouched: []
    func_position:
      end: 600
      start: 586
    functionDepth: 2
    functionLinenumber: 586
    functionLinenumberEnd: 600
    functionName: mdns_build_service_domain
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - LWIP_ERROR
    - memset
    - strlen
    - mdns_add_dotlocal
    - mdns_domain_add_label
    linkageType: ''
    returnType: err_t
    signature: mdns_build_service_domain(struct mdns_domain *domain, struct mdns_service
      *service, int include_name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:617,1
    - Dst: ip6_addr_isvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:629,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:629,1
    - Dst: mdns_build_reverse_v6_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:630,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:630,1
    - Dst: mdns_domain_eq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:631,1
    - Dst: ip4_addr_isany_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:642,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:642,1
    - Dst: mdns_build_reverse_v4_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:643,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:643,1
    - Dst: mdns_domain_eq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:644,1
    - Dst: mdns_build_host_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:651,1
    - Dst: NETIF_TO_HOST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:651,1
    - Dst: mdns_domain_eq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:653,1
    - Dst: ip4_addr_isany_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:656,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:656,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 34
    argCount: 3
    argNames:
    - netif
    - rr
    - reverse_v6_reply
    argTypes:
    - struct netif*
    - struct mdns_rr_info*
    - u8_t*
    constantsTouched: []
    func_position:
      end: 669
      start: 610
    functionDepth: 3
    functionLinenumber: 610
    functionLinenumberEnd: 669
    functionName: check_host
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - netif_ip4_addr
    - netif_ip6_addr
    - NETIF_TO_HOST
    - ip4_addr_isany_val
    - mdns_build_reverse_v4_domain
    - mdns_build_reverse_v6_domain
    - mdns_build_host_domain
    - ip6_addr_isvalid
    - LWIP_UNUSED_ARG
    - netif_ip6_addr_state
    - mdns_domain_eq
    linkageType: ''
    returnType: int
    signature: check_host(struct netif *netif, struct mdns_rr_info *rr, u8_t *reverse_v6_reply)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mdns_build_dnssd_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:689,1
    - Dst: mdns_domain_eq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:690,1
    - Dst: mdns_build_service_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:696,1
    - Dst: mdns_domain_eq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:697,1
    - Dst: mdns_build_service_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:703,1
    - Dst: mdns_domain_eq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:704,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 22
    argCount: 2
    argNames:
    - service
    - rr
    argTypes:
    - struct mdns_service*
    - struct mdns_rr_info*
    constantsTouched: []
    func_position:
      end: 715
      start: 677
    functionDepth: 3
    functionLinenumber: 677
    functionLinenumberEnd: 715
    functionName: check_service
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - mdns_build_dnssd_domain
    - mdns_build_service_domain
    - mdns_domain_eq
    linkageType: ''
    returnType: int
    signature: check_service(struct mdns_service *service, struct mdns_rr_info *rr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mdns_readname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:740,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:757,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - pbuf
    - offset
    - domain
    argTypes:
    - struct pbuf*
    - u16_t*
    - struct mdns_domain*
    constantsTouched: []
    func_position:
      end: 769
      start: 729
    functionDepth: 3
    functionLinenumber: 729
    functionLinenumberEnd: 769
    functionName: mdns_compress_domain
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 8
    functionsReached:
    - memcmp
    - mdns_readname
    linkageType: ''
    returnType: u16_t
    signature: mdns_compress_domain(struct pbuf *pbuf, u16_t *offset, struct mdns_domain
      *domain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mdns_compress_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:791,1
    - Dst: pbuf_take_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:802,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:819,1
    - Dst: pbuf_take_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:820,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - outpkt
    - domain
    argTypes:
    - struct mdns_outpacket*
    - struct mdns_domain*
    constantsTouched: []
    func_position:
      end: 827
      start: 778
    functionDepth: 4
    functionLinenumber: 778
    functionLinenumberEnd: 827
    functionName: mdns_write_domain
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - lwip_htons
    - pbuf_take_at
    - mdns_compress_domain
    linkageType: ''
    returnType: err_t
    signature: mdns_write_domain(struct mdns_outpacket *outpkt, struct mdns_domain
      *domain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:850,1
    - Dst: mdns_write_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:865,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:871,1
    - Dst: pbuf_take_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:872,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:882,1
    - Dst: pbuf_take_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:883,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 5
    argNames:
    - outpkt
    - domain
    - type
    - klass
    - unicast
    argTypes:
    - struct mdns_outpacket*
    - struct mdns_domain*
    - u16_t
    - u16_t
    - u16_t
    constantsTouched: []
    func_position:
      end: 890
      start: 841
    functionDepth: 5
    functionLinenumber: 841
    functionLinenumberEnd: 890
    functionName: mdns_add_question
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - lwip_htons
    - pbuf_take_at
    - mdns_write_domain
    - pbuf_alloc
    linkageType: ''
    returnType: err_t
    signature: mdns_add_question(struct mdns_outpacket *outpkt, struct mdns_domain
      *domain, u16_t type, u16_t klass, u16_t unicast)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:922,1
    - Dst: mdns_add_question
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:943,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:946,1
    - Dst: pbuf_take_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:947,1
    - Dst: pbuf_take_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:960,1
    - Dst: mdns_write_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:969,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:976,1
    - Dst: pbuf_take_at
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:977,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 9
    argNames:
    - reply
    - domain
    - type
    - klass
    - cache_flush
    - ttl
    - buf
    - buf_length
    - answer_domain
    argTypes:
    - struct mdns_outpacket*
    - struct mdns_domain*
    - u16_t
    - u16_t
    - u16_t
    - u32_t
    - u8_t*
    - size_t
    - struct mdns_domain*
    constantsTouched: []
    func_position:
      end: 980
      start: 909
    functionDepth: 6
    functionLinenumber: 909
    functionLinenumberEnd: 980
    functionName: mdns_add_answer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - pbuf_take_at
    - lwip_htons
    - mdns_write_domain
    - lwip_htonl
    - mdns_add_question
    linkageType: ''
    returnType: err_t
    signature: "mdns_add_answer(struct mdns_outpacket *reply, struct mdns_domain *domain,
      u16_t type, u16_t klass, u16_t cache_flush,\n                u32_t ttl, const
      u8_t *buf, size_t buf_length, struct mdns_domain *answer_domain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mdns_readname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:994,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:999,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1004,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1006,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1011,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - pkt
    - info
    argTypes:
    - struct mdns_packet*
    - struct mdns_rr_info*
    constantsTouched: []
    func_position:
      end: 1014
      start: 990
    functionDepth: 3
    functionLinenumber: 990
    functionLinenumberEnd: 1014
    functionName: mdns_read_rr_info
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - pbuf_copy_partial
    - lwip_ntohs
    - mdns_readname
    linkageType: ''
    returnType: err_t
    signature: mdns_read_rr_info(struct mdns_packet *pkt, struct mdns_rr_info *info)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1036,1
    - Dst: mdns_read_rr_info
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1037,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - pkt
    - question
    argTypes:
    - struct mdns_packet*
    - struct mdns_question*
    constantsTouched: []
    func_position:
      end: 1049
      start: 1024
    functionDepth: 4
    functionLinenumber: 1024
    functionLinenumberEnd: 1049
    functionName: mdns_read_question
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - mdns_read_rr_info
    - memset
    linkageType: ''
    returnType: err_t
    signature: mdns_read_question(struct mdns_packet *pkt, struct mdns_question *question)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1078,1
    - Dst: mdns_read_rr_info
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1079,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1088,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1093,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1095,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - pkt
    - answer
    argTypes:
    - struct mdns_packet*
    - struct mdns_answer*
    constantsTouched: []
    func_position:
      end: 1108
      start: 1059
    functionDepth: 4
    functionLinenumber: 1059
    functionLinenumberEnd: 1108
    functionName: mdns_read_answer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - pbuf_copy_partial
    - lwip_ntohs
    - memset
    - lwip_ntohl
    - mdns_read_rr_info
    linkageType: ''
    returnType: err_t
    signature: mdns_read_answer(struct mdns_packet *pkt, struct mdns_answer *answer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mdns_build_host_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1116,1
    - Dst: NETIF_TO_HOST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1116,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1117,1
    - Dst: mdns_add_answer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1118,1
    - Dst: NETIF_TO_HOST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1118,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - reply
    - cache_flush
    - netif
    argTypes:
    - struct mdns_outpacket*
    - u16_t
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1119
      start: 1112
    functionDepth: 7
    functionLinenumber: 1112
    functionLinenumberEnd: 1119
    functionName: mdns_add_a_answer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - netif_ip4_addr
    - LWIP_DEBUGF
    - NETIF_TO_HOST
    - mdns_add_answer
    - mdns_build_host_domain
    linkageType: ''
    returnType: err_t
    signature: mdns_add_a_answer(struct mdns_outpacket *reply, u16_t cache_flush,
      struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mdns_build_host_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1126,1
    - Dst: NETIF_TO_HOST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1126,1
    - Dst: mdns_build_reverse_v4_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1127,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1127,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1128,1
    - Dst: mdns_add_answer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1129,1
    - Dst: NETIF_TO_HOST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - reply
    - cache_flush
    - netif
    argTypes:
    - struct mdns_outpacket*
    - u16_t
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1130
      start: 1122
    functionDepth: 7
    functionLinenumber: 1122
    functionLinenumberEnd: 1130
    functionName: mdns_add_hostv4_ptr_answer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - netif_ip4_addr
    - LWIP_DEBUGF
    - NETIF_TO_HOST
    - mdns_add_answer
    - mdns_build_host_domain
    - mdns_build_reverse_v4_domain
    linkageType: ''
    returnType: err_t
    signature: mdns_add_hostv4_ptr_answer(struct mdns_outpacket *reply, u16_t cache_flush,
      struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mdns_build_host_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1139,1
    - Dst: NETIF_TO_HOST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1139,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1140,1
    - Dst: mdns_add_answer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1141,1
    - Dst: NETIF_TO_HOST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1141,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - reply
    - cache_flush
    - netif
    - addrindex
    argTypes:
    - struct mdns_outpacket*
    - u16_t
    - struct netif*
    - int
    constantsTouched: []
    func_position:
      end: 1142
      start: 1135
    functionDepth: 7
    functionLinenumber: 1135
    functionLinenumberEnd: 1142
    functionName: mdns_add_aaaa_answer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - netif_ip6_addr
    - LWIP_DEBUGF
    - NETIF_TO_HOST
    - mdns_add_answer
    - mdns_build_host_domain
    linkageType: ''
    returnType: err_t
    signature: mdns_add_aaaa_answer(struct mdns_outpacket *reply, u16_t cache_flush,
      struct netif *netif, int addrindex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mdns_build_host_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1149,1
    - Dst: NETIF_TO_HOST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1149,1
    - Dst: mdns_build_reverse_v6_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1150,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1150,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1151,1
    - Dst: mdns_add_answer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1152,1
    - Dst: NETIF_TO_HOST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - reply
    - cache_flush
    - netif
    - addrindex
    argTypes:
    - struct mdns_outpacket*
    - u16_t
    - struct netif*
    - int
    constantsTouched: []
    func_position:
      end: 1153
      start: 1145
    functionDepth: 7
    functionLinenumber: 1145
    functionLinenumberEnd: 1153
    functionName: mdns_add_hostv6_ptr_answer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - netif_ip6_addr
    - LWIP_DEBUGF
    - NETIF_TO_HOST
    - mdns_add_answer
    - mdns_build_reverse_v6_domain
    - mdns_build_host_domain
    linkageType: ''
    returnType: err_t
    signature: mdns_add_hostv6_ptr_answer(struct mdns_outpacket *reply, u16_t cache_flush,
      struct netif *netif, int addrindex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mdns_build_service_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1161,1
    - Dst: mdns_build_dnssd_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1162,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1163,1
    - Dst: mdns_add_answer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - reply
    - service
    argTypes:
    - struct mdns_outpacket*
    - struct mdns_service*
    constantsTouched: []
    func_position:
      end: 1165
      start: 1157
    functionDepth: 7
    functionLinenumber: 1157
    functionLinenumberEnd: 1165
    functionName: mdns_add_servicetype_ptr_answer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - mdns_build_dnssd_domain
    - LWIP_DEBUGF
    - mdns_add_answer
    - mdns_build_service_domain
    linkageType: ''
    returnType: err_t
    signature: mdns_add_servicetype_ptr_answer(struct mdns_outpacket *reply, struct
      mdns_service *service)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mdns_build_service_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1172,1
    - Dst: mdns_build_service_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1173,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1174,1
    - Dst: mdns_add_answer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - reply
    - service
    argTypes:
    - struct mdns_outpacket*
    - struct mdns_service*
    constantsTouched: []
    func_position:
      end: 1176
      start: 1168
    functionDepth: 7
    functionLinenumber: 1168
    functionLinenumberEnd: 1176
    functionName: mdns_add_servicename_ptr_answer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - mdns_add_answer
    - LWIP_DEBUGF
    - mdns_build_service_domain
    linkageType: ''
    returnType: err_t
    signature: mdns_add_servicename_ptr_answer(struct mdns_outpacket *reply, struct
      mdns_service *service)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mdns_build_service_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1184,1
    - Dst: mdns_build_host_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1185,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1193,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1194,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1195,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1196,1
    - Dst: mdns_add_answer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - reply
    - cache_flush
    - mdns
    - service
    argTypes:
    - struct mdns_outpacket*
    - u16_t
    - struct mdns_host*
    - struct mdns_service*
    constantsTouched: []
    func_position:
      end: 1199
      start: 1179
    functionDepth: 7
    functionLinenumber: 1179
    functionLinenumberEnd: 1199
    functionName: mdns_add_srv_answer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - mdns_add_answer
    - lwip_htons
    - mdns_build_host_domain
    - mdns_build_service_domain
    linkageType: ''
    returnType: err_t
    signature: mdns_add_srv_answer(struct mdns_outpacket *reply, u16_t cache_flush,
      struct mdns_host *mdns, struct mdns_service *service)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mdns_build_service_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1206,1
    - Dst: mdns_prepare_txtdata
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1207,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1208,1
    - Dst: mdns_add_answer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - reply
    - cache_flush
    - service
    argTypes:
    - struct mdns_outpacket*
    - u16_t
    - struct mdns_service*
    constantsTouched: []
    func_position:
      end: 1211
      start: 1202
    functionDepth: 7
    functionLinenumber: 1202
    functionLinenumberEnd: 1211
    functionName: mdns_add_txt_answer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - mdns_prepare_txtdata
    - LWIP_DEBUGF
    - mdns_add_answer
    - mdns_build_service_domain
    linkageType: ''
    returnType: err_t
    signature: mdns_add_txt_answer(struct mdns_outpacket *reply, u16_t cache_flush,
      struct mdns_service *service)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1219,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - struct mdns_outpacket*
    - struct mdns_packet*
    constantsTouched: []
    func_position:
      end: 1241
      start: 1216
    functionDepth: 0
    functionLinenumber: 1216
    functionLinenumberEnd: 1241
    functionName: mdns_init_outpacket
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - memset
    - SMEMCPY
    linkageType: ''
    returnType: void
    signature: mdns_init_outpacket(struct mdns_outpacket *out, struct mdns_packet
      *in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NETIF_TO_HOST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1256,1
    - Dst: mdns_add_a_answer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1261,1
    - Dst: mdns_add_hostv4_ptr_answer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1268,1
    - Dst: ip6_addr_isvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1279,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1279,1
    - Dst: mdns_add_aaaa_answer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1280,1
    - Dst: mdns_add_hostv6_ptr_answer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1293,1
    - Dst: mdns_add_servicetype_ptr_answer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1313,1
    - Dst: mdns_add_servicename_ptr_answer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1321,1
    - Dst: mdns_add_srv_answer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1329,1
    - Dst: mdns_add_txt_answer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1337,1
    - Dst: mdns_add_srv_answer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1356,1
    - Dst: mdns_add_txt_answer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1364,1
    - Dst: ip6_addr_isvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1381,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1381,1
    - Dst: mdns_add_aaaa_answer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1382,1
    - Dst: mdns_add_a_answer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1393,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1408,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1410,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1411,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1413,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1414,1
    - Dst: pbuf_take
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1416,1
    - Dst: pbuf_realloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1419,1
    - Dst: IP_IS_V6_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1421,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1431,1
    - Dst: udp_sendto_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1433,1
    - Dst: udp_sendto_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1435,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1441,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 156
    argCount: 1
    argNames:
    - outpkt
    argTypes:
    - struct mdns_outpacket*
    constantsTouched: []
    func_position:
      end: 1444
      start: 1250
    functionDepth: 8
    functionLinenumber: 1250
    functionLinenumberEnd: 1444
    functionName: mdns_send_outpacket
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - lwip_htons
    - IP_IS_V6_VAL
    - ip6_addr_isvalid
    - netif_ip6_addr_state
    - mdns_add_srv_answer
    - LWIP_DEBUGF
    - pbuf_free
    - mdns_add_hostv4_ptr_answer
    - mdns_add_a_answer
    - mdns_add_hostv6_ptr_answer
    - pbuf_take
    - NETIF_TO_HOST
    - mdns_add_txt_answer
    - memset
    - mdns_add_servicename_ptr_answer
    - udp_sendto_if
    - pbuf_realloc
    - mdns_add_servicetype_ptr_answer
    - mdns_add_aaaa_answer
    linkageType: ''
    returnType: void
    signature: mdns_send_outpacket(struct mdns_outpacket *outpkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NETIF_TO_HOST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1456,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1458,1
    - Dst: ip4_addr_isany_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1462,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1462,1
    - Dst: ip6_addr_isvalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1467,1
    - Dst: netif_ip6_addr_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1467,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1483,1
    - Dst: mdns_send_outpacket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1484,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - netif
    - destination
    argTypes:
    - struct netif*
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 1485
      start: 1451
    functionDepth: 9
    functionLinenumber: 1451
    functionLinenumberEnd: 1485
    functionName: mdns_announce
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - netif_ip4_addr
    - NETIF_TO_HOST
    - SMEMCPY
    - mdns_send_outpacket
    - ip4_addr_isany_val
    - memset
    - ip6_addr_isvalid
    - netif_ip6_addr_state
    linkageType: ''
    returnType: void
    signature: mdns_announce(struct netif *netif, const ip_addr_t *destination)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NETIF_TO_HOST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1501,1
    - Dst: mdns_init_outpacket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1503,1
    - Dst: mdns_read_question
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1508,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1510,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1514,1
    - Dst: mdns_domain_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1515,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1516,1
    - Dst: check_host
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1523,1
    - Dst: check_service
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1531,1
    - Dst: mdns_add_question
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1537,1
    - Dst: mdns_read_answer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1550,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1552,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1556,1
    - Dst: mdns_domain_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1557,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1558,1
    - Dst: check_host
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1567,1
    - Dst: mdns_readname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1577,1
    - Dst: mdns_build_host_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1578,1
    - Dst: mdns_domain_eq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1579,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1582,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1588,1
    - Dst: pbuf_memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1599,1
    - Dst: netif_ip4_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1599,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1600,1
    - Dst: pbuf_memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1608,1
    - Dst: netif_ip6_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1608,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1609,1
    - Dst: check_service
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1621,1
    - Dst: mdns_readname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1631,1
    - Dst: mdns_build_service_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1634,1
    - Dst: mdns_domain_eq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1635,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1636,1
    - Dst: mdns_build_service_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1641,1
    - Dst: mdns_domain_eq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1642,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1643,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1655,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1656,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1661,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1662,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1667,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1668,1
    - Dst: mdns_readname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1673,1
    - Dst: mdns_build_host_domain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1674,1
    - Dst: mdns_domain_eq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1675,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1678,1
    - Dst: mdns_prepare_txtdata
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1682,1
    - Dst: pbuf_memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1684,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1685,1
    - Dst: mdns_send_outpacket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1693,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1698,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 148
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - struct mdns_packet*
    constantsTouched: []
    func_position:
      end: 1701
      start: 1493
    functionDepth: 9
    functionLinenumber: 1493
    functionLinenumberEnd: 1701
    functionName: mdns_handle_question
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - netif_ip4_addr
    - mdns_add_question
    - check_host
    - LWIP_DEBUGF
    - lwip_ntohs
    - mdns_build_host_domain
    - mdns_read_question
    - mdns_readname
    - pbuf_free
    - check_service
    - pbuf_copy_partial
    - netif_ip6_addr
    - NETIF_TO_HOST
    - mdns_send_outpacket
    - mdns_build_service_domain
    - mdns_read_answer
    - mdns_init_outpacket
    - mdns_domain_debug_print
    - mdns_prepare_txtdata
    - pbuf_memcmp
    - mdns_domain_eq
    linkageType: ''
    returnType: void
    signature: mdns_handle_question(struct mdns_packet *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mdns_read_question
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1715,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1717,1
    - Dst: mdns_read_answer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1726,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1728,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1732,1
    - Dst: mdns_domain_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1733,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1734,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - struct mdns_packet*
    constantsTouched: []
    func_position:
      end: 1736
      start: 1707
    functionDepth: 5
    functionLinenumber: 1707
    functionLinenumberEnd: 1736
    functionName: mdns_handle_response
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - mdns_domain_debug_print
    - LWIP_DEBUGF
    - mdns_read_answer
    - mdns_read_question
    linkageType: ''
    returnType: void
    signature: mdns_handle_response(struct mdns_packet *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip_current_input_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1747,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1750,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1751,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1753,1
    - Dst: IP_IS_V6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1753,1
    - Dst: NETIF_TO_HOST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1755,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1760,1
    - Dst: DNS_HDR_GET_OPCODE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1766,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1771,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1772,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1777,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1778,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1779,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1779,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1779,1
    - Dst: IP_IS_V6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1782,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1782,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1783,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1783,1
    - Dst: IP_IS_V6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1789,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1789,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1790,1
    - Dst: ip_current_dest_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1790,1
    - Dst: mdns_handle_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1797,1
    - Dst: mdns_handle_question
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1799,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1803,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 5
    argNames:
    - arg
    - pcb
    - p
    - addr
    - port
    argTypes:
    - void*
    - struct udp_pcb*
    - struct pbuf*
    - ip_addr_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 1804
      start: 1742
    functionDepth: 10
    functionLinenumber: 1742
    functionLinenumberEnd: 1804
    functionName: mdns_recv
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - pbuf_copy_partial
    - mdns_handle_question
    - ip_addr_cmp
    - LWIP_DEBUGF
    - mdns_handle_response
    - NETIF_TO_HOST
    - ip_current_input_netif
    - SMEMCPY
    - lwip_ntohs
    - memset
    - ip_current_dest_addr
    - pbuf_free
    - LWIP_UNUSED_ARG
    - IP_IS_V6
    - DNS_HDR_GET_OPCODE
    linkageType: ''
    returnType: void
    signature: mdns_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t
      *addr, u16_t port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: udp_new_ip_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1815,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1816,1
    - Dst: udp_set_multicast_ttl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1818,1
    - Dst: udp_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1822,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1823,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1824,1
    - Dst: udp_recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1825,1
    - Dst: netif_alloc_client_data_id
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1810
    functionDepth: 2
    functionLinenumber: 1810
    functionLinenumberEnd: 1828
    functionName: mdns_resp_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - udp_bind
    - udp_new_ip_type
    - udp_set_multicast_ttl
    - udp_recv
    - netif_alloc_client_data_id
    - LWIP_UNUSED_ARG
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: mdns_resp_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1841,1
    - Dst: NETIF_TO_HOST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1843,1
    - Dst: mdns_announce
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1849,1
    - Dst: mdns_announce
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1854
      start: 1838
    functionDepth: 10
    functionLinenumber: 1838
    functionLinenumberEnd: 1854
    functionName: mdns_resp_netif_settings_changed
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - mdns_announce
    - LWIP_ERROR
    - NETIF_TO_HOST
    linkageType: ''
    returnType: void
    signature: mdns_resp_netif_settings_changed(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1872,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1873,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1873,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1875,1
    - Dst: NETIF_TO_HOST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1875,1
    - Dst: mem_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1876,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1877,1
    - Dst: netif_set_client_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1879,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1881,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1882,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1882,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1882,1
    - Dst: igmp_joingroup_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1887,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1887,1
    - Dst: mld6_joingroup_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1893,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1893,1
    - Dst: mdns_resp_netif_settings_changed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1899,1
    - Dst: mem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1903,1
    - Dst: netif_set_client_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1904,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 3
    argNames:
    - netif
    - hostname
    - dns_ttl
    argTypes:
    - struct netif*
    - char*
    - u32_t
    constantsTouched: []
    func_position:
      end: 1906
      start: 1866
    functionDepth: 11
    functionLinenumber: 1866
    functionLinenumberEnd: 1906
    functionName: mdns_resp_add_netif
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - ip_2_ip6
    - mem_malloc
    - NETIF_TO_HOST
    - mdns_resp_netif_settings_changed
    - mem_free
    - LWIP_ERROR
    - memset
    - igmp_joingroup_netif
    - MEMCPY
    - strlen
    - LWIP_MIN
    - mld6_joingroup_netif
    - netif_set_client_data
    - ip_2_ip4
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: mdns_resp_add_netif(struct netif *netif, const char *hostname, u32_t
      dns_ttl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1921,1
    - Dst: NETIF_TO_HOST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1922,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1923,1
    - Dst: mem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1928,1
    - Dst: igmp_leavegroup_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1934,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1934,1
    - Dst: mld6_leavegroup_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1937,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1937,1
    - Dst: mem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1940,1
    - Dst: netif_set_client_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1941,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1943
      start: 1915
    functionDepth: 4
    functionLinenumber: 1915
    functionLinenumberEnd: 1943
    functionName: mdns_resp_remove_netif
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - ip_2_ip6
    - mem_free
    - NETIF_TO_HOST
    - LWIP_ERROR
    - igmp_leavegroup_netif
    - netif_set_client_data
    - ip_2_ip4
    - mld6_leavegroup_netif
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: mdns_resp_remove_netif(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1968,1
    - Dst: NETIF_TO_HOST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1969,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1970,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1972,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1972,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1973,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1973,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1974,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1982,1
    - Dst: mem_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1984,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1985,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1987,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1989,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1989,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1989,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1990,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1990,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:1990,1
    - Dst: mdns_announce
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:2001,1
    - Dst: mdns_announce
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:2004,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 8
    argNames:
    - netif
    - name
    - service
    - proto
    - port
    - dns_ttl
    - txt_fn
    - txt_data
    argTypes:
    - struct netif*
    - char*
    - char*
    - enum mdns_sd_proto
    - u16_t
    - u32_t
    - service_get_txt_fn_t
    - void*
    constantsTouched: []
    func_position:
      end: 2008
      start: 1960
    functionDepth: 10
    functionLinenumber: 1960
    functionLinenumberEnd: 2008
    functionName: mdns_resp_add_service
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - mem_malloc
    - NETIF_TO_HOST
    - LWIP_ERROR
    - memset
    - MEMCPY
    - strlen
    - mdns_announce
    - LWIP_MIN
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: mdns_resp_add_service(struct netif *netif, const char *name, const
      char *service, enum mdns_sd_proto proto, u16_t port, u32_t dns_ttl, service_get_txt_fn_t
      txt_fn, void *txt_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:2022,1
    - Dst: mdns_domain_add_label
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c:2025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - service
    - txt
    - txt_len
    argTypes:
    - struct mdns_service*
    - char*
    - u8_t
    constantsTouched: []
    func_position:
      end: 2026
      start: 2019
    functionDepth: 1
    functionLinenumber: 2019
    functionLinenumberEnd: 2026
    functionName: mdns_resp_add_service_txtitem
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
    functionUses: 0
    functionsReached:
    - mdns_domain_add_label
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: mdns_resp_add_service_txtitem(struct mdns_service *service, const char
      *txt, u8_t txt_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 196
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 196
    functionName: local_port
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/tcp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16_t
    signature: local_port
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: ip4_addr2
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/ip4_addr.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: ip4_addr2
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: ttl
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/ip.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: u8_t
    signature: ttl
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: mld_header
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/mld6.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: mld_header
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 65
    functionName: tcp_hdr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/tcp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: tcp_hdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 93
    functionName: dhcp_msg
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/dhcp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: dhcp_msg
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: ip6_addr_packed
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/ip6.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: ip6_addr_packed
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: ip6_hdr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/ip6.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: ip6_hdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 125
    functionName: ip6_hbh_hdr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/ip6.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: ip6_hbh_hdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 148
    functionName: ip6_frag_hdr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/ip6.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: ip6_frag_hdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: udp_hdr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/udp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: udp_hdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: ns_header
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/nd6.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: ns_header
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: na_header
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/nd6.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: na_header
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: rs_header
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/nd6.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: rs_header
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: ra_header
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/nd6.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: ra_header
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 147
    functionName: redirect_header
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/nd6.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: redirect_header
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: lladdr_option
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/nd6.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: lladdr_option
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 203
    functionName: prefix_option
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/nd6.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: prefix_option
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 221
    functionName: redirected_header_option
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/nd6.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: redirected_header_option
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: mtu_option
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/nd6.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: mtu_option
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 257
    functionName: route_option
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/nd6.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: route_option
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 280
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 280
    functionName: rdnss_option
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/nd6.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: rdnss_option
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 111
    functionName: dns_hdr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/dns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: dns_hdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: ip4_addr_packed
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/ip4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: ip4_addr_packed
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 95
    functionName: struct
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/ip4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: struct
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: eth_addr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/ethernet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: eth_addr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: eth_hdr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/ethernet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: eth_hdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: eth_vlan_hdr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/ethernet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: eth_vlan_hdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: igmp_msg
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/igmp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: igmp_msg
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: icmp6_hdr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/icmp6.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: icmp6_hdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: icmp6_echo_hdr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/icmp6.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: icmp6_echo_hdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: icmp_echo_hdr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/icmp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: icmp_echo_hdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 67
    functionName: etharp_hdr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/etharp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: etharp_hdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: pppoehdr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/pppoe.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: pppoehdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: pppoetag
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/pppoe.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: pppoetag
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:94,1
    - Dst: LWIP_MARK_TCPIP_THREAD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:96,1
    - Dst: tcpip_init_done
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:99,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:102,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:104,1
    - Dst: LWIP_TCPIP_THREAD_ALIVE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:105,1
    - Dst: TCPIP_MBOX_FETCH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:107,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:108,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:110,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:111,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:117,1
    - Dst: struct tcpip_msg*::msg::api_msg::function
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:118,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:121,1
    - Dst: struct tcpip_msg*::msg::api_call::function
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:122,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:123,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:129,1
    - Dst: struct tcpip_msg*::msg::inp::input_fn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:130,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:131,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:137,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:138,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:139,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:142,1
    - Dst: sys_untimeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:143,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:144,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:149,1
    - Dst: struct tcpip_msg*::msg::cb::function
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:150,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:151,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:155,1
    - Dst: struct tcpip_msg*::msg::cb::function
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:156,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:160,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:161,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:166,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:167,1
    - Dst: tcpip_will_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:173,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 65
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 175
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 175
    functionName: tcpip_thread
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c
    functionUses: 0
    functionsReached:
    - LOCK_TCPIP_CORE
    - TCPIP_MBOX_FETCH
    - tcpip_init_done
    - LWIP_DEBUGF
    - struct tcpip_msg*::msg::api_call::function
    - LWIP_MARK_TCPIP_THREAD
    - LWIP_ASSERT
    - sys_sem_signal
    - struct tcpip_msg*::msg::inp::input_fn
    - memp_free
    - sys_timeout
    - sys_untimeout
    - tcpip_will_finish
    - UNLOCK_TCPIP_CORE
    - struct tcpip_msg*::msg::api_msg::function
    - LWIP_UNUSED_ARG
    - struct tcpip_msg*::msg::cb::function
    - LWIP_TCPIP_THREAD_ALIVE
    linkageType: ''
    returnType: void
    signature: tcpip_thread(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:189,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:190,1
    - Dst: input_fn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:191,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:192,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:197,1
    - Dst: sys_mbox_valid_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:197,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:199,1
    - Dst: sys_mbox_trypost
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:208,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - p
    - inp
    - input_fn
    argTypes:
    - struct pbuf*
    - struct netif*
    - netif_input_fn
    constantsTouched: []
    func_position:
      end: 214
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 214
    functionName: tcpip_inpkt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c
    functionUses: 0
    functionsReached:
    - LOCK_TCPIP_CORE
    - LWIP_DEBUGF
    - memp_free
    - input_fn
    - sys_mbox_valid_val
    - sys_mbox_trypost
    - memp_malloc
    - UNLOCK_TCPIP_CORE
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: tcpip_inpkt(struct pbuf *p, struct netif *inp, netif_input_fn input_fn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_inpkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:232,1
    - Dst: tcpip_inpkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p
    - inp
    argTypes:
    - struct pbuf*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 236
      start: 227
    functionDepth: 4
    functionLinenumber: 227
    functionLinenumberEnd: 236
    functionName: tcpip_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c
    functionUses: 1
    functionsReached:
    - tcpip_inpkt
    linkageType: ''
    returnType: err_t
    signature: tcpip_input(struct pbuf *p, struct netif *inp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:254,1
    - Dst: sys_mbox_valid_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:254,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:256,1
    - Dst: sys_mbox_post
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:265,1
    - Dst: sys_mbox_trypost
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:267,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - function
    - ctx
    - block
    argTypes:
    - tcpip_callback_fn
    - void*
    - u8_t
    constantsTouched: []
    func_position:
      end: 273
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 273
    functionName: tcpip_callback_with_block
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c
    functionUses: 1
    functionsReached:
    - sys_mbox_post
    - memp_free
    - sys_mbox_valid_val
    - sys_mbox_trypost
    - memp_malloc
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: tcpip_callback_with_block(tcpip_callback_fn function, void *ctx, u8_t
      block)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:289,1
    - Dst: sys_mbox_valid_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:289,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:291,1
    - Dst: sys_mbox_post
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - msecs
    - h
    - arg
    argTypes:
    - u32_t
    - sys_timeout_handler
    - void*
    constantsTouched: []
    func_position:
      end: 302
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 302
    functionName: tcpip_timeout
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c
    functionUses: 1
    functionsReached:
    - sys_mbox_post
    - memp_malloc
    - sys_mbox_valid_val
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: tcpip_timeout(u32_t msecs, sys_timeout_handler h, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:316,1
    - Dst: sys_mbox_valid_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:316,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:318,1
    - Dst: sys_mbox_post
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - h
    - arg
    argTypes:
    - sys_timeout_handler
    - void*
    constantsTouched: []
    func_position:
      end: 328
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 328
    functionName: tcpip_untimeout
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c
    functionUses: 0
    functionsReached:
    - sys_mbox_post
    - memp_malloc
    - sys_mbox_valid_val
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: tcpip_untimeout(sys_timeout_handler h, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:348,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:349,1
    - Dst: fn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:350,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:351,1
    - Dst: TCPIP_MSG_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:354,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:356,1
    - Dst: sys_sem_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:356,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:357,1
    - Dst: sys_mbox_valid_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:357,1
    - Dst: TCPIP_MSG_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:359,1
    - Dst: TCPIP_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:360,1
    - Dst: TCPIP_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:361,1
    - Dst: TCPIP_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:362,1
    - Dst: sys_mbox_post
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:363,1
    - Dst: TCPIP_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:363,1
    - Dst: sys_arch_sem_wait
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:364,1
    - Dst: TCPIP_MSG_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - fn
    - apimsg
    - sem
    argTypes:
    - tcpip_callback_fn
    - void*
    - sys_sem_t*
    constantsTouched: []
    func_position:
      end: 368
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 368
    functionName: tcpip_send_msg_wait_sem
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c
    functionUses: 0
    functionsReached:
    - LOCK_TCPIP_CORE
    - sys_mbox_post
    - TCPIP_MSG_VAR_DECLARE
    - sys_sem_valid
    - TCPIP_MSG_VAR_ALLOC
    - TCPIP_MSG_VAR_REF
    - sys_mbox_valid_val
    - sys_arch_sem_wait
    - TCPIP_MSG_VAR_FREE
    - UNLOCK_TCPIP_CORE
    - fn
    - LWIP_UNUSED_ARG
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: tcpip_send_msg_wait_sem(tcpip_callback_fn fn, void *apimsg, sys_sem_t*
      sem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:385,1
    - Dst: fn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:386,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:387,1
    - Dst: TCPIP_MSG_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:390,1
    - Dst: sys_sem_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:393,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:399,1
    - Dst: sys_mbox_valid_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:399,1
    - Dst: TCPIP_MSG_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:401,1
    - Dst: TCPIP_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:402,1
    - Dst: TCPIP_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:403,1
    - Dst: TCPIP_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:404,1
    - Dst: TCPIP_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:406,1
    - Dst: LWIP_NETCONN_THREAD_SEM_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:406,1
    - Dst: TCPIP_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:408,1
    - Dst: sys_mbox_post
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:410,1
    - Dst: TCPIP_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:410,1
    - Dst: sys_arch_sem_wait
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:411,1
    - Dst: TCPIP_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:411,1
    - Dst: TCPIP_MSG_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:412,1
    - Dst: sys_sem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - fn
    - call
    argTypes:
    - tcpip_api_call_fn
    - struct tcpip_api_call_data*
    constantsTouched: []
    func_position:
      end: 420
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 420
    functionName: tcpip_api_call
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c
    functionUses: 0
    functionsReached:
    - LOCK_TCPIP_CORE
    - sys_mbox_post
    - sys_sem_free
    - TCPIP_MSG_VAR_DECLARE
    - TCPIP_MSG_VAR_REF
    - TCPIP_MSG_VAR_ALLOC
    - sys_sem_new
    - sys_mbox_valid_val
    - LWIP_NETCONN_THREAD_SEM_GET
    - sys_arch_sem_wait
    - TCPIP_MSG_VAR_FREE
    - fn
    - UNLOCK_TCPIP_CORE
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: tcpip_api_call(tcpip_api_call_fn fn, struct tcpip_api_call_data *call)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - function
    - ctx
    argTypes:
    - tcpip_callback_fn
    - void*
    constantsTouched: []
    func_position:
      end: 441
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 441
    functionName: tcpip_callbackmsg_new
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c
    functionUses: 0
    functionsReached:
    - memp_malloc
    linkageType: ''
    returnType: struct tcpip_callback_msg
    signature: '*

      tcpip_callbackmsg_new(tcpip_callback_fn function, void *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - struct tcpip_callback_msg*
    constantsTouched: []
    func_position:
      end: 452
      start: 448
    functionDepth: 3
    functionLinenumber: 448
    functionLinenumberEnd: 452
    functionName: tcpip_callbackmsg_delete
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c
    functionUses: 0
    functionsReached:
    - memp_free
    linkageType: ''
    returnType: void
    signature: tcpip_callbackmsg_delete(struct tcpip_callback_msg* msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:464,1
    - Dst: sys_mbox_valid_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:464,1
    - Dst: sys_mbox_trypost
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - struct tcpip_callback_msg*
    constantsTouched: []
    func_position:
      end: 466
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 466
    functionName: tcpip_trycallback
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c
    functionUses: 0
    functionsReached:
    - sys_mbox_trypost
    - sys_mbox_valid_val
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: tcpip_trycallback(struct tcpip_callback_msg* msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:480,1
    - Dst: sys_mbox_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:484,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:485,1
    - Dst: sys_mutex_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:488,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:489,1
    - Dst: sys_thread_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - initfunc
    - arg
    argTypes:
    - tcpip_init_done_fn
    - void*
    constantsTouched: []
    func_position:
      end: 494
      start: 477
    functionDepth: 4
    functionLinenumber: 477
    functionLinenumberEnd: 494
    functionName: tcpip_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c
    functionUses: 21
    functionsReached:
    - sys_thread_new
    - sys_mutex_new
    - sys_mbox_new
    - lwip_init
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: tcpip_init(tcpip_init_done_fn initfunc, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sys_mbox_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:510,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:513,1
    - Dst: sys_mbox_post
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:519,1
    - Dst: sys_thread_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:521,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - finish
    - arg
    argTypes:
    - tcpip_will_finish_fn
    - void*
    constantsTouched: []
    func_position:
      end: 525
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 525
    functionName: tcpip_finish
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c
    functionUses: 3
    functionsReached:
    - sys_thread_finish
    - sys_mbox_post
    - sys_mbox_valid
    - memp_malloc
    linkageType: ''
    returnType: err_t
    signature: tcpip_finish(tcpip_will_finish_fn finish, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 538
      start: 533
    functionDepth: 4
    functionLinenumber: 533
    functionLinenumberEnd: 538
    functionName: pbuf_free_int
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c
    functionUses: 0
    functionsReached:
    - pbuf_free
    linkageType: ''
    returnType: void
    signature: pbuf_free_int(void *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_callback_with_block
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 550
      start: 546
    functionDepth: 4
    functionLinenumber: 546
    functionLinenumberEnd: 550
    functionName: pbuf_free_callback
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c
    functionUses: 0
    functionsReached:
    - tcpip_callback_with_block
    linkageType: ''
    returnType: err_t
    signature: pbuf_free_callback(struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_callback_with_block
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 563
      start: 559
    functionDepth: 4
    functionLinenumber: 559
    functionLinenumberEnd: 563
    functionName: mem_free_callback
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c
    functionUses: 0
    functionsReached:
    - tcpip_callback_with_block
    linkageType: ''
    returnType: err_t
    signature: mem_free_callback(void *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_NETCONN_THREAD_SEM_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:102,1
    - Dst: tcpip_send_msg_wait_sem
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:105,1
    - Dst: LWIP_API_MSG_SEM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - fn
    - apimsg
    argTypes:
    - tcpip_callback_fn
    - struct api_msg*
    constantsTouched: []
    func_position:
      end: 110
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 110
    functionName: netconn_apimsg
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c
    functionUses: 0
    functionsReached:
    - LWIP_NETCONN_THREAD_SEM_GET
    - LWIP_API_MSG_SEM
    - tcpip_send_msg_wait_sem
    linkageType: ''
    returnType: err_t
    signature: netconn_apimsg(tcpip_callback_fn fn, struct api_msg *apimsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: API_MSG_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:126,1
    - Dst: API_MSG_VAR_ALLOC_RETURN_NULL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:127,1
    - Dst: netconn_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:129,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:133,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:134,1
    - Dst: netconn_apimsg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:135,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:135,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:137,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:138,1
    - Dst: sys_mbox_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:138,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:140,1
    - Dst: sys_mbox_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:140,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:143,1
    - Dst: sys_sem_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:143,1
    - Dst: sys_sem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:144,1
    - Dst: sys_mbox_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:146,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:147,1
    - Dst: API_MSG_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:148,1
    - Dst: API_MSG_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - t
    - proto
    - callback
    argTypes:
    - enum netconn_type
    - u8_t
    - netconn_callback
    constantsTouched: []
    func_position:
      end: 154
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 154
    functionName: netconn_new_with_proto_and_callback
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c
    functionUses: 0
    functionsReached:
    - sys_mbox_valid
    - sys_sem_free
    - netconn_alloc
    - sys_sem_valid
    - memp_free
    - API_MSG_VAR_REF
    - sys_mbox_free
    - netconn_apimsg
    - API_MSG_VAR_DECLARE
    - API_MSG_VAR_ALLOC_RETURN_NULL
    - API_MSG_VAR_FREE
    - LWIP_ASSERT
    linkageType: ''
    returnType: struct netconn
    signature: '*

      netconn_new_with_proto_and_callback(enum netconn_type t, u8_t proto, netconn_callback
      callback)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: API_MSG_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:169,1
    - Dst: API_MSG_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:176,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:177,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:181,1
    - Dst: sys_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:181,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:184,1
    - Dst: netconn_apimsg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:188,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:188,1
    - Dst: API_MSG_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:189,1
    - Dst: netconn_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct netconn*
    constantsTouched: []
    func_position:
      end: 198
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 198
    functionName: netconn_delete
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c
    functionUses: 0
    functionsReached:
    - API_MSG_VAR_REF
    - sys_now
    - netconn_apimsg
    - API_MSG_VAR_DECLARE
    - netconn_free
    - API_MSG_VAR_ALLOC
    - API_MSG_VAR_FREE
    linkageType: ''
    returnType: err_t
    signature: netconn_delete(struct netconn *conn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: API_MSG_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:214,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:217,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:218,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:219,1
    - Dst: API_MSG_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:221,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:222,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:223,1
    - Dst: netconn_apimsg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:225,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:225,1
    - Dst: netconn_apimsg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:231,1
    - Dst: API_MSG_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 4
    argNames:
    - conn
    - addr
    - port
    - local
    argTypes:
    - struct netconn*
    - ip_addr_t*
    - u16_t*
    - u8_t
    constantsTouched: []
    func_position:
      end: 236
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 236
    functionName: netconn_getaddr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c
    functionUses: 0
    functionsReached:
    - API_MSG_VAR_REF
    - LWIP_ERROR
    - netconn_apimsg
    - API_MSG_VAR_DECLARE
    - API_MSG_VAR_ALLOC
    - API_MSG_VAR_FREE
    linkageType: ''
    returnType: err_t
    signature: netconn_getaddr(struct netconn *conn, ip_addr_t *addr, u16_t *port,
      u8_t local)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: API_MSG_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:252,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:255,1
    - Dst: netconn_get_ipv6only
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:268,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:269,1
    - Dst: API_MSG_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:274,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:275,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:276,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:276,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:277,1
    - Dst: netconn_apimsg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:278,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:278,1
    - Dst: API_MSG_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - conn
    - addr
    - port
    argTypes:
    - struct netconn*
    - ip_addr_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 282
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 282
    functionName: netconn_bind
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c
    functionUses: 1
    functionsReached:
    - API_MSG_VAR_FREE
    - API_MSG_VAR_REF
    - LWIP_ERROR
    - API_MSG_VAR_DECLARE
    - netconn_apimsg
    - netconn_get_ipv6only
    - API_MSG_VAR_ALLOC
    - ip_addr_cmp
    linkageType: ''
    returnType: err_t
    signature: netconn_bind(struct netconn *conn, const ip_addr_t *addr, u16_t port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: API_MSG_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:296,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:299,1
    - Dst: API_MSG_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:308,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:309,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:310,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:310,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:311,1
    - Dst: netconn_apimsg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:312,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:312,1
    - Dst: API_MSG_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - conn
    - addr
    - port
    argTypes:
    - struct netconn*
    - ip_addr_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 316
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 316
    functionName: netconn_connect
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c
    functionUses: 0
    functionsReached:
    - API_MSG_VAR_REF
    - LWIP_ERROR
    - netconn_apimsg
    - API_MSG_VAR_DECLARE
    - API_MSG_VAR_ALLOC
    - API_MSG_VAR_FREE
    linkageType: ''
    returnType: err_t
    signature: netconn_connect(struct netconn *conn, const ip_addr_t *addr, u16_t
      port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: API_MSG_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:328,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:331,1
    - Dst: API_MSG_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:333,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:334,1
    - Dst: netconn_apimsg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:335,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:335,1
    - Dst: API_MSG_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct netconn*
    constantsTouched: []
    func_position:
      end: 339
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 339
    functionName: netconn_disconnect
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c
    functionUses: 0
    functionsReached:
    - API_MSG_VAR_REF
    - LWIP_ERROR
    - netconn_apimsg
    - API_MSG_VAR_DECLARE
    - API_MSG_VAR_ALLOC
    - API_MSG_VAR_FREE
    linkageType: ''
    returnType: err_t
    signature: netconn_disconnect(struct netconn *conn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: API_MSG_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:354,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:358,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:360,1
    - Dst: API_MSG_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:362,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:363,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:365,1
    - Dst: netconn_apimsg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:367,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:367,1
    - Dst: API_MSG_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:368,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:372,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - conn
    - backlog
    argTypes:
    - struct netconn*
    - u8_t
    constantsTouched: []
    func_position:
      end: 376
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 376
    functionName: netconn_listen_with_backlog
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c
    functionUses: 0
    functionsReached:
    - API_MSG_VAR_REF
    - LWIP_ERROR
    - API_MSG_VAR_DECLARE
    - netconn_apimsg
    - LWIP_UNUSED_ARG
    - API_MSG_VAR_ALLOC
    - API_MSG_VAR_FREE
    linkageType: ''
    returnType: err_t
    signature: netconn_listen_with_backlog(struct netconn *conn, u8_t backlog)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: API_MSG_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:394,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:397,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:399,1
    - Dst: ERR_IS_FATAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:401,1
    - Dst: sys_mbox_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:406,1
    - Dst: API_MSG_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:411,1
    - Dst: sys_arch_mbox_fetch
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:415,1
    - Dst: API_MSG_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:417,1
    - Dst: sys_arch_mbox_fetch
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:422,1
    - Dst: API_EVENT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:426,1
    - Dst: API_MSG_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:432,1
    - Dst: NETCONN_SET_SAFE_ERR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:441,1
    - Dst: API_MSG_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:443,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:449,1
    - Dst: netconn_apimsg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:451,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:451,1
    - Dst: API_MSG_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:452,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:459,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:460,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 2
    argNames:
    - conn
    - new_conn
    argTypes:
    - struct netconn*
    - struct netconn**
    constantsTouched: []
    func_position:
      end: 463
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 463
    functionName: netconn_accept
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c
    functionUses: 0
    functionsReached:
    - sys_arch_mbox_fetch
    - sys_mbox_valid
    - NETCONN_SET_SAFE_ERR
    - API_MSG_VAR_REF
    - LWIP_ERROR
    - API_MSG_VAR_DECLARE
    - netconn_apimsg
    - API_EVENT
    - LWIP_UNUSED_ARG
    - ERR_IS_FATAL
    - API_MSG_VAR_ALLOC
    - API_MSG_VAR_FREE
    linkageType: ''
    returnType: err_t
    signature: netconn_accept(struct netconn *conn, struct netconn **new_conn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:605,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:606,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:606,1
    - Dst: netconn_recv_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - conn
    - new_buf
    argTypes:
    - struct netconn*
    - struct pbuf**
    constantsTouched: []
    func_position:
      end: 609
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 609
    functionName: netconn_recv_tcp_pbuf
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c
    functionUses: 0
    functionsReached:
    - NETCONNTYPE_GROUP
    - netconn_type
    - netconn_recv_data
    - LWIP_ERROR
    linkageType: ''
    returnType: err_t
    signature: netconn_recv_tcp_pbuf(struct netconn *conn, struct pbuf **new_buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:628,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:630,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:634,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:640,1
    - Dst: netconn_recv_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:645,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:647,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:650,1
    - Dst: ip_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:655,1
    - Dst: netconn_recv_data
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:666,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - conn
    - new_buf
    argTypes:
    - struct netconn*
    - struct netbuf**
    constantsTouched: []
    func_position:
      end: 669
      start: 620
    functionDepth: 3
    functionLinenumber: 620
    functionLinenumberEnd: 669
    functionName: netconn_recv
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c
    functionUses: 1
    functionsReached:
    - NETCONNTYPE_GROUP
    - memp_free
    - ip_addr_set_zero
    - netconn_recv_data
    - LWIP_ERROR
    - memp_malloc
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: netconn_recv(struct netconn *conn, struct netbuf **new_buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:686,1
    - Dst: netconn_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - conn
    - buf
    - addr
    - port
    argTypes:
    - struct netconn*
    - struct netbuf*
    - ip_addr_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 691
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 691
    functionName: netconn_sendto
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c
    functionUses: 1
    functionsReached:
    - ip_addr_set
    - netconn_send
    linkageType: ''
    returnType: err_t
    signature: netconn_sendto(struct netconn *conn, struct netbuf *buf, const ip_addr_t
      *addr, u16_t port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: API_MSG_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:704,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:707,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:709,1
    - Dst: API_MSG_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:711,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:712,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:713,1
    - Dst: netconn_apimsg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:714,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:714,1
    - Dst: API_MSG_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - conn
    - buf
    argTypes:
    - struct netconn*
    - struct netbuf*
    constantsTouched: []
    func_position:
      end: 718
      start: 701
    functionDepth: 2
    functionLinenumber: 701
    functionLinenumberEnd: 718
    functionName: netconn_send
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - API_MSG_VAR_REF
    - LWIP_ERROR
    - API_MSG_VAR_DECLARE
    - netconn_apimsg
    - API_MSG_VAR_ALLOC
    - API_MSG_VAR_FREE
    linkageType: ''
    returnType: err_t
    signature: netconn_send(struct netconn *conn, struct netbuf *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: API_MSG_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:738,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:742,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:743,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:743,1
    - Dst: netconn_is_nonblocking
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:747,1
    - Dst: API_MSG_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:759,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:761,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:762,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:763,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:764,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:769,1
    - Dst: sys_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:769,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:771,1
    - Dst: netconn_apimsg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:778,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:778,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:782,1
    - Dst: API_MSG_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:788,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 5
    argNames:
    - conn
    - dataptr
    - size
    - apiflags
    - bytes_written
    argTypes:
    - struct netconn*
    - void*
    - size_t
    - u8_t
    - size_t*
    constantsTouched: []
    func_position:
      end: 791
      start: 734
    functionDepth: 2
    functionLinenumber: 734
    functionLinenumberEnd: 791
    functionName: netconn_write_partly
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c
    functionUses: 0
    functionsReached:
    - NETCONNTYPE_GROUP
    - netconn_is_nonblocking
    - API_MSG_VAR_REF
    - LWIP_ERROR
    - sys_now
    - API_MSG_VAR_DECLARE
    - netconn_apimsg
    - API_MSG_VAR_ALLOC
    - API_MSG_VAR_FREE
    linkageType: ''
    returnType: err_t
    signature: "netconn_write_partly(struct netconn *conn, const void *dataptr, size_t
      size,\n                     u8_t apiflags, size_t *bytes_written)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: API_MSG_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:804,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:806,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:808,1
    - Dst: API_MSG_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:810,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:811,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:814,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:818,1
    - Dst: sys_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:818,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:820,1
    - Dst: netconn_apimsg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:824,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:824,1
    - Dst: API_MSG_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - conn
    - how
    argTypes:
    - struct netconn*
    - u8_t
    constantsTouched: []
    func_position:
      end: 828
      start: 801
    functionDepth: 2
    functionLinenumber: 801
    functionLinenumberEnd: 828
    functionName: netconn_close_shutdown
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c
    functionUses: 0
    functionsReached:
    - API_MSG_VAR_REF
    - LWIP_ERROR
    - sys_now
    - API_MSG_VAR_DECLARE
    - netconn_apimsg
    - LWIP_UNUSED_ARG
    - API_MSG_VAR_ALLOC
    - API_MSG_VAR_FREE
    linkageType: ''
    returnType: err_t
    signature: netconn_close_shutdown(struct netconn *conn, u8_t how)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netconn_close_shutdown
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct netconn*
    constantsTouched: []
    func_position:
      end: 842
      start: 837
    functionDepth: 3
    functionLinenumber: 837
    functionLinenumberEnd: 842
    functionName: netconn_close
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c
    functionUses: 0
    functionsReached:
    - netconn_close_shutdown
    linkageType: ''
    returnType: err_t
    signature: netconn_close(struct netconn *conn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netconn_close_shutdown
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - conn
    - shut_rx
    - shut_tx
    argTypes:
    - struct netconn*
    - u8_t
    - u8_t
    constantsTouched: []
    func_position:
      end: 857
      start: 853
    functionDepth: 3
    functionLinenumber: 853
    functionLinenumberEnd: 857
    functionName: netconn_shutdown
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c
    functionUses: 0
    functionsReached:
    - netconn_close_shutdown
    linkageType: ''
    returnType: err_t
    signature: netconn_shutdown(struct netconn *conn, u8_t shut_rx, u8_t shut_tx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: API_MSG_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:877,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:880,1
    - Dst: API_MSG_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:882,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:894,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:895,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:895,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:896,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:896,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:897,1
    - Dst: netconn_apimsg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:898,1
    - Dst: API_MSG_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:898,1
    - Dst: API_MSG_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:899,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - conn
    - multiaddr
    - netif_addr
    - join_or_leave
    argTypes:
    - struct netconn*
    - ip_addr_t*
    - ip_addr_t*
    - enum netconn_igmp
    constantsTouched: []
    func_position:
      end: 902
      start: 871
    functionDepth: 2
    functionLinenumber: 871
    functionLinenumberEnd: 902
    functionName: netconn_join_leave_group
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c
    functionUses: 0
    functionsReached:
    - API_MSG_VAR_REF
    - LWIP_ERROR
    - netconn_apimsg
    - API_MSG_VAR_DECLARE
    - API_MSG_VAR_ALLOC
    - API_MSG_VAR_FREE
    linkageType: ''
    returnType: err_t
    signature: "netconn_join_leave_group(struct netconn *conn,\n                         const
      ip_addr_t *multiaddr,\n                         const ip_addr_t *netif_addr,\n
      \                        enum netconn_igmp join_or_leave)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:933,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:934,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:936,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:943,1
    - Dst: API_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:943,1
    - Dst: API_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:944,1
    - Dst: API_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:948,1
    - Dst: API_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:948,1
    - Dst: API_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:949,1
    - Dst: API_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:952,1
    - Dst: API_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:955,1
    - Dst: LWIP_NETCONN_THREAD_SEM_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:955,1
    - Dst: sys_sem_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:957,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:957,1
    - Dst: API_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:957,1
    - Dst: API_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:959,1
    - Dst: tcpip_callback
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:964,1
    - Dst: API_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:964,1
    - Dst: sys_sem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:967,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:967,1
    - Dst: API_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:967,1
    - Dst: API_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:969,1
    - Dst: sys_sem_wait
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:972,1
    - Dst: API_EXPR_REF_SEM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:972,1
    - Dst: API_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:972,1
    - Dst: sys_sem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:974,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:974,1
    - Dst: API_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:974,1
    - Dst: API_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:982,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - name
    - addr
    argTypes:
    - char*
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 984
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 984
    functionName: netconn_gethostbyname
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c
    functionUses: 0
    functionsReached:
    - sys_sem_free
    - tcpip_callback
    - API_EXPR_REF_SEM
    - API_VAR_REF
    - LWIP_ERROR
    - strncpy
    - sys_sem_new
    - LWIP_NETCONN_THREAD_SEM_GET
    - strlen
    - API_EXPR_REF
    - sys_sem_wait
    - API_VAR_FREE
    linkageType: ''
    returnType: err_t
    signature: netconn_gethostbyname(const char *name, ip_addr_t *addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_NETCONN_THREAD_SEM_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:991,1
    - Dst: sys_sem_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:992,1
    - Dst: LWIP_NETCONN_THREAD_SEM_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:994,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:995,1
    - Dst: sys_sem_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:995,1
    - Dst: LWIP_NETCONN_THREAD_SEM_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:995,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 997
      start: 988
    functionDepth: 0
    functionLinenumber: 988
    functionLinenumberEnd: 997
    functionName: netconn_thread_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c
    functionUses: 0
    functionsReached:
    - LWIP_NETCONN_THREAD_SEM_GET
    - sys_sem_valid
    - LWIP_NETCONN_THREAD_SEM_ALLOC
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: netconn_thread_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_NETCONN_THREAD_SEM_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:1002,1
    - Dst: sys_sem_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:1003,1
    - Dst: LWIP_NETCONN_THREAD_SEM_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c:1005,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 999
    functionDepth: 0
    functionLinenumber: 999
    functionLinenumberEnd: 1007
    functionName: netconn_thread_cleanup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c
    functionUses: 0
    functionsReached:
    - LWIP_NETCONN_THREAD_SEM_GET
    - sys_sem_valid
    - LWIP_NETCONN_THREAD_SEM_FREE
    linkageType: ''
    returnType: void
    signature: netconn_thread_cleanup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/err.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - err
    argTypes:
    - err_t
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: err_to_errno
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/err.c
    functionUses: 0
    functionsReached:
    - LWIP_ARRAYSIZE
    linkageType: ''
    returnType: int
    signature: err_to_errno(err_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/err.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - err
    argTypes:
    - err_t
    constantsTouched: []
    func_position:
      end: 113
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 113
    functionName: lwip_strerr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/err.c
    functionUses: 8
    functionsReached:
    - LWIP_ARRAYSIZE
    linkageType: ''
    returnType: char
    signature: '*

      lwip_strerr(err_t err)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:107,1
    - Dst: sys_mbox_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:110,1
    - Dst: SYS_ARCH_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:113,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:119,1
    - Dst: pbuf_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:121,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:122,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:129,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:131,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:137,1
    - Dst: ip_current_src_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:137,1
    - Dst: sys_mbox_trypost
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:141,1
    - Dst: netbuf_delete
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:142,1
    - Dst: SYS_ARCH_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:146,1
    - Dst: API_EVENT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:149,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 4
    argNames:
    - arg
    - pcb
    - p
    - addr
    argTypes:
    - void*
    - struct raw_pcb*
    - struct pbuf*
    - ip_addr_t*
    constantsTouched: []
    func_position:
      end: 155
      start: 99
    functionDepth: 4
    functionLinenumber: 99
    functionLinenumberEnd: 155
    functionName: recv_raw
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - pbuf_copy
    - sys_mbox_valid
    - pbuf_alloc
    - ip_addr_copy
    - netbuf_delete
    - SYS_ARCH_GET
    - ip_current_src_addr
    - SYS_ARCH_INC
    - sys_mbox_trypost
    - pbuf_free
    - memp_malloc
    - LWIP_UNUSED_ARG
    - API_EVENT
    linkageType: ''
    returnType: u8_t
    signature: "recv_raw(void *arg, struct raw_pcb *pcb, struct pbuf *p,\n    const
      ip_addr_t *addr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:248,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:249,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:250,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:256,1
    - Dst: sys_mbox_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:258,1
    - Dst: tcp_recved
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:261,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:262,1
    - Dst: NETCONN_SET_SAFE_ERR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:272,1
    - Dst: sys_mbox_trypost
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:281,1
    - Dst: SYS_ARCH_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:286,1
    - Dst: API_EVENT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:289,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - arg
    - pcb
    - p
    - err
    argTypes:
    - void*
    - struct tcp_pcb*
    - struct pbuf*
    - err_t
    constantsTouched: []
    func_position:
      end: 293
      start: 242
    functionDepth: 4
    functionLinenumber: 242
    functionLinenumberEnd: 293
    functionName: recv_tcp
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - sys_mbox_valid
    - SYS_ARCH_INC
    - tcp_recved
    - NETCONN_SET_SAFE_ERR
    - sys_mbox_trypost
    - pbuf_free
    - API_EVENT
    - LWIP_UNUSED_ARG
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: recv_tcp(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:311,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:312,1
    - Dst: tcp_sndbuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:330,1
    - Dst: tcp_sndqueuelen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:331,1
    - Dst: API_EVENT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:333,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - arg
    - pcb
    argTypes:
    - void*
    - struct tcp_pcb*
    constantsTouched: []
    func_position:
      end: 338
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 338
    functionName: poll_tcp
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - tcp_sndqueuelen
    - API_EVENT
    - LWIP_UNUSED_ARG
    - tcp_sndbuf
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: poll_tcp(void *arg, struct tcp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:352,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:353,1
    - Dst: tcp_sndbuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:364,1
    - Dst: tcp_sndqueuelen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:365,1
    - Dst: API_EVENT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:367,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - arg
    - pcb
    - len
    argTypes:
    - void*
    - struct tcp_pcb*
    - u16_t
    constantsTouched: []
    func_position:
      end: 372
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 372
    functionName: sent_tcp
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - tcp_sndqueuelen
    - API_EVENT
    - LWIP_UNUSED_ARG
    - tcp_sndbuf
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: sent_tcp(void *arg, struct tcp_pcb *pcb, u16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:388,1
    - Dst: NETCONN_SET_SAFE_ERR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:399,1
    - Dst: SYS_ARCH_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:402,1
    - Dst: API_EVENT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:408,1
    - Dst: API_EVENT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:411,1
    - Dst: API_EVENT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:412,1
    - Dst: sys_mbox_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:415,1
    - Dst: sys_mbox_trypost
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:417,1
    - Dst: sys_mbox_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:420,1
    - Dst: sys_mbox_trypost
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:422,1
    - Dst: SET_NONBLOCKING_CONNECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:430,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:435,1
    - Dst: LWIP_API_MSG_SEM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:437,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:438,1
    - Dst: sys_sem_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:438,1
    - Dst: NETCONN_SET_SAFE_ERR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:441,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:442,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:445,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 2
    argNames:
    - arg
    - err
    argTypes:
    - void*
    - err_t
    constantsTouched: []
    func_position:
      end: 447
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 447
    functionName: err_tcp
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - sys_mbox_valid
    - SYS_ARCH_SET
    - SET_NONBLOCKING_CONNECT
    - sys_sem_valid
    - NETCONN_SET_SAFE_ERR
    - sys_sem_signal
    - LWIP_API_MSG_SEM
    - sys_mbox_trypost
    - API_EVENT
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: err_tcp(void *arg, err_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcp_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:461,1
    - Dst: tcp_recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:462,1
    - Dst: tcp_sent
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:463,1
    - Dst: tcp_poll
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:464,1
    - Dst: tcp_err
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct netconn*
    constantsTouched: []
    func_position:
      end: 466
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 466
    functionName: setup_tcp
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - tcp_poll
    - tcp_sent
    - tcp_recv
    - tcp_err
    - tcp_arg
    linkageType: ''
    returnType: void
    signature: setup_tcp(struct netconn *conn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sys_mbox_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:483,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:484,1
    - Dst: sys_mbox_trypost
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:490,1
    - Dst: API_EVENT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:492,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:497,1
    - Dst: tcp_debug_state_str
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:497,1
    - Dst: netconn_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:501,1
    - Dst: sys_mbox_trypost
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:504,1
    - Dst: API_EVENT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:506,1
    - Dst: setup_tcp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:511,1
    - Dst: tcp_backlog_delayed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:517,1
    - Dst: sys_mbox_trypost
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:519,1
    - Dst: tcp_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:524,1
    - Dst: tcp_recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:525,1
    - Dst: tcp_sent
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:526,1
    - Dst: tcp_poll
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:527,1
    - Dst: tcp_err
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:528,1
    - Dst: sys_mbox_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:532,1
    - Dst: sys_mbox_set_invalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:533,1
    - Dst: netconn_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:534,1
    - Dst: API_EVENT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:538,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 3
    argNames:
    - arg
    - newpcb
    - err
    argTypes:
    - void*
    - struct tcp_pcb*
    - err_t
    constantsTouched: []
    func_position:
      end: 542
      start: 474
    functionDepth: 2
    functionLinenumber: 474
    functionLinenumberEnd: 542
    functionName: accept_function
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - tcp_backlog_delayed
    - LWIP_DEBUGF
    - sys_mbox_valid
    - netconn_alloc
    - tcp_poll
    - sys_mbox_set_invalid
    - tcp_debug_state_str
    - tcp_sent
    - sys_mbox_trypost
    - tcp_recv
    - netconn_free
    - tcp_err
    - API_EVENT
    - setup_tcp
    - tcp_arg
    - sys_mbox_free
    linkageType: ''
    returnType: err_t
    signature: accept_function(void *arg, struct tcp_pcb *newpcb, err_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:556,1
    - Dst: NETCONNTYPE_ISIPV6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:560,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:560,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:566,1
    - Dst: raw_new_ip_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:569,1
    - Dst: NETCONNTYPE_ISIPV6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:573,1
    - Dst: raw_recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:578,1
    - Dst: udp_new_ip_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:584,1
    - Dst: NETCONNTYPE_ISUDPLITE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:587,1
    - Dst: udp_setflags
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:588,1
    - Dst: NETCONNTYPE_ISUDPNOCHKSUM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:591,1
    - Dst: udp_setflags
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:592,1
    - Dst: udp_recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:594,1
    - Dst: tcp_new_ip_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:600,1
    - Dst: setup_tcp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:602,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 1
    argNames:
    - msg
    argTypes:
    - struct api_msg*
    constantsTouched: []
    func_position:
      end: 614
      start: 551
    functionDepth: 8
    functionLinenumber: 551
    functionLinenumberEnd: 614
    functionName: pcb_new
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - raw_new_ip_type
    - NETCONNTYPE_GROUP
    - NETCONNTYPE_ISIPV6
    - netconn_type
    - udp_setflags
    - udp_new_ip_type
    - udp_recv
    - NETCONNTYPE_ISUDPLITE
    - setup_tcp
    - raw_recv
    - NETCONNTYPE_ISUDPNOCHKSUM
    - tcp_new_ip_type
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: pcb_new(struct api_msg *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcb_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:629,1
    - Dst: TCPIP_APIMSG_ACK
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 636
      start: 622
    functionDepth: 9
    functionLinenumber: 622
    functionLinenumberEnd: 636
    functionName: lwip_netconn_do_newconn
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - pcb_new
    - TCPIP_APIMSG_ACK
    linkageType: ''
    returnType: void
    signature: lwip_netconn_do_newconn(void *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:653,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:663,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:680,1
    - Dst: sys_mbox_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:684,1
    - Dst: sys_sem_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:688,1
    - Dst: sys_mbox_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:689,1
    - Dst: sys_mbox_set_invalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:695,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:723,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 2
    argNames:
    - t
    - callback
    argTypes:
    - enum netconn_type
    - netconn_callback
    constantsTouched: []
    func_position:
      end: 725
      start: 647
    functionDepth: 3
    functionLinenumber: 647
    functionLinenumberEnd: 725
    functionName: netconn_alloc
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 2
    functionsReached:
    - NETCONNTYPE_GROUP
    - memp_free
    - sys_mbox_free
    - sys_mbox_set_invalid
    - sys_sem_new
    - sys_mbox_new
    - memp_malloc
    - LWIP_ASSERT
    linkageType: ''
    returnType: struct netconn
    signature: '*

      netconn_alloc(enum netconn_type t, netconn_callback callback)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:736,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:737,1
    - Dst: sys_mbox_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:738,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:740,1
    - Dst: sys_mbox_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:741,1
    - Dst: sys_sem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:745,1
    - Dst: sys_sem_set_invalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:746,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct netconn*
    constantsTouched: []
    func_position:
      end: 750
      start: 733
    functionDepth: 3
    functionLinenumber: 733
    functionLinenumberEnd: 750
    functionName: netconn_free
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 2
    functionsReached:
    - sys_mbox_valid
    - memp_free
    - sys_sem_free
    - sys_sem_set_invalid
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: netconn_free(struct netconn *conn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sys_mbox_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:771,1
    - Dst: sys_mbox_tryfetch
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:772,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:774,1
    - Dst: tcp_recved
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:779,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:781,1
    - Dst: netbuf_delete
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:786,1
    - Dst: sys_mbox_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:789,1
    - Dst: sys_mbox_set_invalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:790,1
    - Dst: sys_mbox_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:795,1
    - Dst: sys_mbox_tryfetch
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:796,1
    - Dst: netconn_drain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:802,1
    - Dst: tcp_abort
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:804,1
    - Dst: netconn_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:807,1
    - Dst: sys_mbox_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:810,1
    - Dst: sys_mbox_set_invalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:811,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct netconn*
    constantsTouched: []
    func_position:
      end: 814
      start: 760
    functionDepth: 5
    functionLinenumber: 760
    functionLinenumberEnd: 814
    functionName: netconn_drain
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 1
    functionsReached:
    - NETCONNTYPE_GROUP
    - sys_mbox_valid
    - netbuf_delete
    - netconn_drain
    - tcp_recved
    - sys_mbox_set_invalid
    - sys_mbox_tryfetch
    - pbuf_free
    - netconn_free
    - tcp_abort
    - sys_mbox_free
    linkageType: ''
    returnType: void
    signature: netconn_drain(struct netconn *conn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1024,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1025,1
    - Dst: IN_NONBLOCKING_CONNECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1030,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1033,1
    - Dst: LWIP_API_MSG_SEM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1034,1
    - Dst: NETCONN_SET_SAFE_ERR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1039,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1040,1
    - Dst: IN_NONBLOCKING_CONNECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1047,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1054,1
    - Dst: IN_NONBLOCKING_CONNECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1055,1
    - Dst: netconn_drain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1058,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1062,1
    - Dst: raw_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1065,1
    - Dst: udp_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1071,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1076,1
    - Dst: lwip_netconn_do_close_internal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1082,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1083,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1084,1
    - Dst: sys_arch_sem_wait
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1085,1
    - Dst: LWIP_API_MSG_SEM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1085,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1086,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1087,1
    - Dst: lwip_netconn_do_close_internal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1090,1
    - Dst: API_EVENT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1105,1
    - Dst: API_EVENT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1106,1
    - Dst: sys_sem_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1108,1
    - Dst: LWIP_API_MSG_SEM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1108,1
    - Dst: TCPIP_APIMSG_ACK
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1109,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1111
      start: 1018
    functionDepth: 6
    functionLinenumber: 1018
    functionLinenumberEnd: 1111
    functionName: lwip_netconn_do_delconn
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - LOCK_TCPIP_CORE
    - TCPIP_APIMSG_ACK
    - NETCONNTYPE_GROUP
    - lwip_netconn_do_close_internal
    - sys_sem_signal
    - IN_NONBLOCKING_CONNECT
    - netconn_drain
    - NETCONN_SET_SAFE_ERR
    - udp_remove
    - sys_sem_valid
    - LWIP_API_MSG_SEM
    - sys_arch_sem_wait
    - raw_remove
    - API_EVENT
    - UNLOCK_TCPIP_CORE
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: lwip_netconn_do_delconn(void *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_IS_FATAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1125,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1130,1
    - Dst: raw_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1133,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1133,1
    - Dst: udp_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1138,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1138,1
    - Dst: tcp_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1143,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1143,1
    - Dst: TCPIP_APIMSG_ACK
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1151,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1152
      start: 1120
    functionDepth: 2
    functionLinenumber: 1120
    functionLinenumberEnd: 1152
    functionName: lwip_netconn_do_bind
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - TCPIP_APIMSG_ACK
    - udp_bind
    - NETCONNTYPE_GROUP
    - API_EXPR_REF
    - tcp_bind
    - raw_bind
    - ERR_IS_FATAL
    linkageType: ''
    returnType: void
    signature: lwip_netconn_do_bind(void *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1168,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1176,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1177,1
    - Dst: IN_NONBLOCKING_CONNECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1178,1
    - Dst: LWIP_API_MSG_SEM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1182,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1184,1
    - Dst: setup_tcp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1185,1
    - Dst: IN_NONBLOCKING_CONNECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1187,1
    - Dst: SET_NONBLOCKING_CONNECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1188,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1189,1
    - Dst: NETCONN_SET_SAFE_ERR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1194,1
    - Dst: API_EVENT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1195,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1198,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - arg
    - pcb
    - err
    argTypes:
    - void*
    - struct tcp_pcb*
    - err_t
    constantsTouched: []
    func_position:
      end: 1201
      start: 1161
    functionDepth: 2
    functionLinenumber: 1161
    functionLinenumberEnd: 1201
    functionName: lwip_netconn_do_connected
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - NETCONNTYPE_GROUP
    - sys_sem_signal
    - IN_NONBLOCKING_CONNECT
    - SET_NONBLOCKING_CONNECT
    - NETCONN_SET_SAFE_ERR
    - LWIP_API_MSG_SEM
    - API_EVENT
    - LWIP_UNUSED_ARG
    - setup_tcp
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: lwip_netconn_do_connected(void *arg, struct tcp_pcb *pcb, err_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1220,1
    - Dst: raw_connect
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1223,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1223,1
    - Dst: udp_connect
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1228,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1228,1
    - Dst: setup_tcp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1239,1
    - Dst: tcp_connect
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1240,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1240,1
    - Dst: netconn_is_nonblocking
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1243,1
    - Dst: SET_NONBLOCKING_CONNECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1245,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1253,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1254,1
    - Dst: sys_arch_sem_wait
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1255,1
    - Dst: LWIP_API_MSG_SEM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1255,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1256,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1257,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1266,1
    - Dst: while
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1266,1
    - Dst: TCPIP_APIMSG_ACK
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1272,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1273
      start: 1211
    functionDepth: 3
    functionLinenumber: 1211
    functionLinenumberEnd: 1273
    functionName: lwip_netconn_do_connect
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - LOCK_TCPIP_CORE
    - TCPIP_APIMSG_ACK
    - NETCONNTYPE_GROUP
    - netconn_is_nonblocking
    - SET_NONBLOCKING_CONNECT
    - while
    - API_EXPR_REF
    - raw_connect
    - LWIP_API_MSG_SEM
    - sys_arch_sem_wait
    - tcp_connect
    - LWIP_ERROR
    - UNLOCK_TCPIP_CORE
    - setup_tcp
    - udp_connect
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: lwip_netconn_do_connect(void *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1288,1
    - Dst: udp_disconnect
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1289,1
    - Dst: TCPIP_APIMSG_ACK
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1297
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1297
    functionName: lwip_netconn_do_disconnect
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - udp_disconnect
    - TCPIP_APIMSG_ACK
    - NETCONNTYPE_GROUP
    linkageType: ''
    returnType: void
    signature: lwip_netconn_do_disconnect(void *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_IS_FATAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1311,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1316,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1334,1
    - Dst: netconn_get_ipv6only
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1335,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1337,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1338,1
    - Dst: tcp_listen_with_backlog_and_err
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1342,1
    - Dst: sys_mbox_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1349,1
    - Dst: sys_mbox_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1351,1
    - Dst: sys_mbox_set_invalid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1352,1
    - Dst: sys_mbox_valid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1355,1
    - Dst: sys_mbox_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1356,1
    - Dst: tcp_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1361,1
    - Dst: tcp_accept
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1362,1
    - Dst: tcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1365,1
    - Dst: tcp_backlog_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1373,1
    - Dst: TCPIP_APIMSG_ACK
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1380,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1381
      start: 1306
    functionDepth: 5
    functionLinenumber: 1306
    functionLinenumberEnd: 1381
    functionName: lwip_netconn_do_listen
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - tcp_close
    - IP_SET_TYPE_VAL
    - NETCONNTYPE_GROUP
    - sys_mbox_valid
    - TCPIP_APIMSG_ACK
    - tcp_backlog_set
    - tcp_accept
    - tcp_listen_with_backlog_and_err
    - sys_mbox_set_invalid
    - sys_mbox_new
    - netconn_get_ipv6only
    - ERR_IS_FATAL
    - tcp_arg
    - ip_addr_cmp
    - sys_mbox_free
    linkageType: ''
    returnType: void
    signature: lwip_netconn_do_listen(void *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_IS_FATAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1395,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1400,1
    - Dst: ip_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1403,1
    - Dst: IP_IS_ANY_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1403,1
    - Dst: raw_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1404,1
    - Dst: raw_sendto
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1406,1
    - Dst: ip_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1413,1
    - Dst: IP_IS_ANY_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1413,1
    - Dst: udp_send_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1414,1
    - Dst: udp_sendto_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1417,1
    - Dst: ip_addr_isany_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1422,1
    - Dst: IP_IS_ANY_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1422,1
    - Dst: udp_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1423,1
    - Dst: udp_sendto
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1425,1
    - Dst: TCPIP_APIMSG_ACK
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1435,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1436
      start: 1390
    functionDepth: 3
    functionLinenumber: 1390
    functionLinenumberEnd: 1436
    functionName: lwip_netconn_do_send
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - raw_send
    - TCPIP_APIMSG_ACK
    - NETCONNTYPE_GROUP
    - udp_send
    - ip_addr_isany_val
    - raw_sendto
    - udp_sendto
    - udp_sendto_chksum
    - IP_IS_ANY_TYPE_VAL
    - ERR_IS_FATAL
    - udp_send_chksum
    - ip_addr_isany
    linkageType: ''
    returnType: void
    signature: lwip_netconn_do_send(void *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1452,1
    - Dst: tcp_recved
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1456,1
    - Dst: TCPIP_APIMSG_ACK
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1462
      start: 1445
    functionDepth: 2
    functionLinenumber: 1445
    functionLinenumberEnd: 1462
    functionName: lwip_netconn_do_recv
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - tcp_recved
    - TCPIP_APIMSG_ACK
    - NETCONNTYPE_GROUP
    linkageType: ''
    returnType: void
    signature: lwip_netconn_do_recv(void *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1477,1
    - Dst: tcp_backlog_accepted
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1478,1
    - Dst: TCPIP_APIMSG_ACK
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1482
      start: 1470
    functionDepth: 1
    functionLinenumber: 1470
    functionLinenumberEnd: 1482
    functionName: lwip_netconn_do_accepted
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - TCPIP_APIMSG_ACK
    - NETCONNTYPE_GROUP
    - tcp_backlog_accepted
    linkageType: ''
    returnType: void
    signature: lwip_netconn_do_accepted(void *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1507,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1508,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1509,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1510,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1511,1
    - Dst: netconn_is_nonblocking
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1515,1
    - Dst: sys_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1519,1
    - Dst: tcp_sndbuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1542,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1555,1
    - Dst: tcp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1556,1
    - Dst: API_EVENT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1563,1
    - Dst: tcp_sndbuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1565,1
    - Dst: tcp_sndqueuelen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1566,1
    - Dst: API_EVENT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1569,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1582,1
    - Dst: ERR_IS_FATAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1583,1
    - Dst: tcp_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1598,1
    - Dst: ERR_IS_FATAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1599,1
    - Dst: LWIP_API_MSG_SEM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1622,1
    - Dst: NETCONN_SET_SAFE_ERR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1627,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1632,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 95
    argCount: 1
    argNames:
    - WRITE_DELAYED_PARAM
    argTypes:
    - struct netconn*
    constantsTouched: []
    func_position:
      end: 1641
      start: 1496
    functionDepth: 6
    functionLinenumber: 1496
    functionLinenumberEnd: 1641
    functionName: lwip_netconn_do_writemore
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - ERR_IS_FATAL
    - netconn_is_nonblocking
    - sys_sem_signal
    - tcp_sndqueuelen
    - NETCONN_SET_SAFE_ERR
    - sys_now
    - tcp_output
    - LWIP_API_MSG_SEM
    - tcp_write
    - API_EVENT
    - tcp_sndbuf
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: lwip_netconn_do_writemore(struct netconn *conn  WRITE_DELAYED_PARAM)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_IS_FATAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1655,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1658,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1666,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1668,1
    - Dst: lwip_netconn_do_writemore
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1672,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1673,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1674,1
    - Dst: sys_arch_sem_wait
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1675,1
    - Dst: LWIP_API_MSG_SEM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1675,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1676,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1677,1
    - Dst: lwip_netconn_do_writemore
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1680,1
    - Dst: TCPIP_APIMSG_ACK
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1697,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1698
      start: 1650
    functionDepth: 7
    functionLinenumber: 1650
    functionLinenumberEnd: 1698
    functionName: lwip_netconn_do_write
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - LOCK_TCPIP_CORE
    - TCPIP_APIMSG_ACK
    - NETCONNTYPE_GROUP
    - lwip_netconn_do_writemore
    - LWIP_API_MSG_SEM
    - sys_arch_sem_wait
    - UNLOCK_TCPIP_CORE
    - ERR_IS_FATAL
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: lwip_netconn_do_write(void *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1713,1
    - Dst: API_EXPR_DEREF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1713,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1716,1
    - Dst: API_EXPR_DEREF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1716,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1721,1
    - Dst: API_EXPR_DEREF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1725,1
    - Dst: API_EXPR_DEREF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1735,1
    - Dst: API_EXPR_DEREF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1740,1
    - Dst: API_EXPR_DEREF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1752,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1757,1
    - Dst: TCPIP_APIMSG_ACK
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1763,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1764
      start: 1706
    functionDepth: 0
    functionLinenumber: 1706
    functionLinenumberEnd: 1764
    functionName: lwip_netconn_do_getaddr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - TCPIP_APIMSG_ACK
    - NETCONNTYPE_GROUP
    - ip_addr_copy
    - API_EXPR_DEREF
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: lwip_netconn_do_getaddr(void *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_IS_FATAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1857,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1861,1
    - Dst: NETCONNTYPE_ISIPV6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1864,1
    - Dst: mld6_joingroup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1866,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1866,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1866,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1867,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1867,1
    - Dst: mld6_leavegroup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1869,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1869,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1869,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1870,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1870,1
    - Dst: igmp_joingroup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1878,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1878,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1878,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1879,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1879,1
    - Dst: igmp_leavegroup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1881,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1881,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1881,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1882,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1882,1
    - Dst: TCPIP_APIMSG_ACK
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1896,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1897
      start: 1852
    functionDepth: 2
    functionLinenumber: 1852
    functionLinenumberEnd: 1897
    functionName: lwip_netconn_do_join_leave_group
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - ip_2_ip6
    - TCPIP_APIMSG_ACK
    - NETCONNTYPE_GROUP
    - mld6_leavegroup
    - NETCONNTYPE_ISIPV6
    - API_EXPR_REF
    - igmp_joingroup
    - igmp_leavegroup
    - mld6_joingroup
    - ERR_IS_FATAL
    - ip_2_ip4
    linkageType: ''
    returnType: void
    signature: lwip_netconn_do_join_leave_group(void *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1912,1
    - Dst: API_EXPR_DEREF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1916,1
    - Dst: API_EXPR_DEREF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1919,1
    - Dst: API_EXPR_DEREF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1920,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1923,1
    - Dst: API_EXPR_REF_SEM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - name
    - ipaddr
    - arg
    argTypes:
    - char*
    - ip_addr_t*
    - void*
    constantsTouched: []
    func_position:
      end: 1924
      start: 1906
    functionDepth: 0
    functionLinenumber: 1906
    functionLinenumberEnd: 1924
    functionName: lwip_netconn_do_dns_found
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - API_EXPR_DEREF
    - sys_sem_signal
    - API_EXPR_REF_SEM
    linkageType: ''
    returnType: void
    signature: lwip_netconn_do_dns_found(const char *name, const ip_addr_t *ipaddr,
      void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: API_EXPR_DEREF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1943,1
    - Dst: dns_gethostbyname_addrtype
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1943,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1944,1
    - Dst: API_EXPR_DEREF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1945,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1948,1
    - Dst: API_EXPR_REF_SEM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c:1948,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1950
      start: 1932
    functionDepth: 8
    functionLinenumber: 1932
    functionLinenumberEnd: 1950
    functionName: lwip_netconn_do_gethostbyname
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
    functionUses: 0
    functionsReached:
    - sys_sem_signal
    - API_EXPR_REF_SEM
    - API_EXPR_REF
    - dns_gethostbyname_addrtype
    - API_EXPR_DEREF
    linkageType: ''
    returnType: void
    signature: lwip_netconn_do_gethostbyname(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_add
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:66,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:68,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:69,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct tcpip_api_call_data*
    constantsTouched: []
    func_position:
      end: 79
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 79
    functionName: netifapi_do_netif_add
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c
    functionUses: 0
    functionsReached:
    - API_EXPR_REF
    - netif_add
    linkageType: ''
    returnType: err_t
    signature: netifapi_do_netif_add(struct tcpip_api_call_data *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_set_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:92,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:93,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:94,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct tcpip_api_call_data*
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: netifapi_do_netif_set_addr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c
    functionUses: 0
    functionsReached:
    - API_EXPR_REF
    - netif_set_addr
    linkageType: ''
    returnType: err_t
    signature: netifapi_do_netif_set_addr(struct tcpip_api_call_data *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_name_to_index
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct tcpip_api_call_data*
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: netifapi_do_name_to_index
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c
    functionUses: 0
    functionsReached:
    - netif_name_to_index
    linkageType: ''
    returnType: err_t
    signature: netifapi_do_name_to_index(struct tcpip_api_call_data *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_index_to_name
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct tcpip_api_call_data*
    constantsTouched: []
    func_position:
      end: 129
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 129
    functionName: netifapi_do_index_to_name
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c
    functionUses: 0
    functionsReached:
    - netif_index_to_name
    linkageType: ''
    returnType: err_t
    signature: netifapi_do_index_to_name(struct tcpip_api_call_data *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct netifapi_msg*::msg::common::errtfunc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:143,1
    - Dst: struct netifapi_msg*::msg::common::voidfunc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct tcpip_api_call_data*
    constantsTouched: []
    func_position:
      end: 148
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 148
    functionName: netifapi_do_netif_common
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c
    functionUses: 0
    functionsReached:
    - struct netifapi_msg*::msg::common::voidfunc
    - struct netifapi_msg*::msg::common::errtfunc
    linkageType: ''
    returnType: err_t
    signature: netifapi_do_netif_common(struct tcpip_api_call_data *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NETIFAPI_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:165,1
    - Dst: NETIFAPI_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:166,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:180,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:182,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:182,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:183,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:183,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:184,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:184,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:186,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:187,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:188,1
    - Dst: tcpip_api_call
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:189,1
    - Dst: API_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:189,1
    - Dst: NETIFAPI_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 7
    argNames:
    - netif
    - ip4_addr_t *ipaddr
    - netmask
    - gw
    - state
    - init
    - input
    argTypes:
    - struct netif*
    - LWIP_IPV4
    - ip4_addr_t*
    - ip4_addr_t*
    - void*
    - netif_init_fn
    - netif_input_fn
    constantsTouched: []
    func_position:
      end: 192
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 192
    functionName: netifapi_netif_add
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c
    functionUses: 0
    functionsReached:
    - NETIFAPI_VAR_ALLOC
    - tcpip_api_call
    - NETIFAPI_VAR_FREE
    - API_VAR_REF
    - NETIFAPI_VAR_DECLARE
    - NETIFAPI_VAR_REF
    linkageType: ''
    returnType: err_t
    signature: "netifapi_netif_add(struct netif *netif,\n#if LWIP_IPV4\n                   const
      ip4_addr_t *ipaddr, const ip4_addr_t *netmask, const ip4_addr_t *gw,\n#endif
      /* LWIP_IPV4 */\n                   void *state, netif_init_fn init, netif_input_fn
      input)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NETIFAPI_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:209,1
    - Dst: NETIFAPI_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:210,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:222,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:223,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:223,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:224,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:224,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:225,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:225,1
    - Dst: tcpip_api_call
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:226,1
    - Dst: API_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:226,1
    - Dst: NETIFAPI_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - netif
    - ipaddr
    - netmask
    - gw
    argTypes:
    - struct netif*
    - ip4_addr_t*
    - ip4_addr_t*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 229
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 229
    functionName: netifapi_netif_set_addr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c
    functionUses: 0
    functionsReached:
    - NETIFAPI_VAR_ALLOC
    - tcpip_api_call
    - NETIFAPI_VAR_FREE
    - API_VAR_REF
    - NETIFAPI_VAR_DECLARE
    - NETIFAPI_VAR_REF
    linkageType: ''
    returnType: err_t
    signature: "netifapi_netif_set_addr(struct netif *netif,\n                        const
      ip4_addr_t *ipaddr,\n                        const ip4_addr_t *netmask,\n                        const
      ip4_addr_t *gw)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NETIFAPI_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:243,1
    - Dst: NETIFAPI_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:244,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:246,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:247,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:248,1
    - Dst: tcpip_api_call
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:249,1
    - Dst: API_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:249,1
    - Dst: NETIFAPI_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - netif
    - voidfunc
    - errtfunc
    argTypes:
    - struct netif*
    - netifapi_void_fn
    - netifapi_errt_fn
    constantsTouched: []
    func_position:
      end: 252
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 252
    functionName: netifapi_netif_common
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c
    functionUses: 0
    functionsReached:
    - NETIFAPI_VAR_ALLOC
    - tcpip_api_call
    - NETIFAPI_VAR_FREE
    - API_VAR_REF
    - NETIFAPI_VAR_DECLARE
    - NETIFAPI_VAR_REF
    linkageType: ''
    returnType: err_t
    signature: "netifapi_netif_common(struct netif *netif, netifapi_void_fn voidfunc,\n
      \                      netifapi_errt_fn errtfunc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NETIFAPI_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:266,1
    - Dst: NETIFAPI_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:267,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:272,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:272,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:273,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:275,1
    - Dst: tcpip_api_call
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:277,1
    - Dst: API_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:277,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:279,1
    - Dst: NETIFAPI_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - name
    - index
    argTypes:
    - char*
    - u8_t*
    constantsTouched: []
    func_position:
      end: 283
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 283
    functionName: netifapi_netif_name_to_index
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c
    functionUses: 0
    functionsReached:
    - NETIFAPI_VAR_ALLOC
    - tcpip_api_call
    - NETIFAPI_VAR_FREE
    - API_VAR_REF
    - strncpy
    - NETIFAPI_VAR_DECLARE
    - NETIFAPI_VAR_REF
    linkageType: ''
    returnType: err_t
    signature: netifapi_netif_name_to_index(const char *name, u8_t *index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NETIFAPI_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:298,1
    - Dst: NETIFAPI_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:299,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:301,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:303,1
    - Dst: tcpip_api_call
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:305,1
    - Dst: API_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:305,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:308,1
    - Dst: NETIFAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:308,1
    - Dst: NETIFAPI_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - index
    - name
    argTypes:
    - u8_t
    - char*
    constantsTouched: []
    func_position:
      end: 314
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 314
    functionName: netifapi_netif_index_to_name
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c
    functionUses: 0
    functionsReached:
    - NETIFAPI_VAR_ALLOC
    - tcpip_api_call
    - NETIFAPI_VAR_FREE
    - API_VAR_REF
    - strncpy
    - NETIFAPI_VAR_DECLARE
    - NETIFAPI_VAR_REF
    linkageType: ''
    returnType: err_t
    signature: netifapi_netif_index_to_name(u8_t index, char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netifapi_netif_index_to_name
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/if.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ifindex
    - ifname
    argTypes:
    - unsigned
    - char*
    constantsTouched: []
    func_position:
      end: 62
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 62
    functionName: lwip_if_indextoname
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/if.c
    functionUses: 0
    functionsReached:
    - netifapi_netif_index_to_name
    linkageType: ''
    returnType: char
    signature: '*

      lwip_if_indextoname(unsigned ifindex, char *ifname)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netifapi_netif_name_to_index
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/if.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ifname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 75
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 75
    functionName: lwip_if_nametoindex
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/if.c
    functionUses: 0
    functionsReached:
    - netifapi_netif_name_to_index
    linkageType: ''
    returnType: unsigned int
    signature: lwip_if_nametoindex(const char *ifname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c:67,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: netbuf_new
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c
    functionUses: 0
    functionsReached:
    - memset
    - memp_malloc
    linkageType: ''
    returnType: 'struct

      netbuf'
    signature: '*netbuf_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c:85,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct netbuf*
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 4
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: netbuf_delete
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c
    functionUses: 3
    functionsReached:
    - memp_free
    - pbuf_free
    linkageType: ''
    returnType: void
    signature: netbuf_delete(struct netbuf *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c:104,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c:108,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c:110,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - struct netbuf*
    - u16_t
    constantsTouched: []
    func_position:
      end: 118
      start: 101
    functionDepth: 4
    functionLinenumber: 101
    functionLinenumberEnd: 118
    functionName: netbuf_alloc
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - LWIP_ERROR
    - pbuf_free
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: '*

      netbuf_alloc(struct netbuf *buf, u16_t size)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c:129,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct netbuf*
    constantsTouched: []
    func_position:
      end: 134
      start: 126
    functionDepth: 4
    functionLinenumber: 126
    functionLinenumberEnd: 134
    functionName: netbuf_free
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c
    functionUses: 0
    functionsReached:
    - LWIP_ERROR
    - pbuf_free
    linkageType: ''
    returnType: void
    signature: netbuf_free(struct netbuf *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c:149,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c:151,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - buf
    - dataptr
    - size
    argTypes:
    - struct netbuf*
    - void*
    - u16_t
    constantsTouched: []
    func_position:
      end: 162
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 162
    functionName: netbuf_ref
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - LWIP_ERROR
    - pbuf_free
    linkageType: ''
    returnType: err_t
    signature: netbuf_ref(struct netbuf *buf, const void *dataptr, u16_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c:174,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c:175,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c:176,1
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - head
    - tail
    argTypes:
    - struct netbuf*
    - struct netbuf*
    constantsTouched: []
    func_position:
      end: 179
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 179
    functionName: netbuf_chain
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c
    functionUses: 0
    functionsReached:
    - pbuf_cat
    - LWIP_ERROR
    - memp_free
    linkageType: ''
    returnType: void
    signature: netbuf_chain(struct netbuf *head, struct netbuf *tail)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c:194,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c:195,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - buf
    - dataptr
    - len
    argTypes:
    - struct netbuf*
    - void**
    - u16_t*
    constantsTouched: []
    func_position:
      end: 204
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 204
    functionName: netbuf_data
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c
    functionUses: 0
    functionsReached:
    - LWIP_ERROR
    linkageType: ''
    returnType: err_t
    signature: netbuf_data(struct netbuf *buf, void **dataptr, u16_t *len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct netbuf*
    constantsTouched: []
    func_position:
      end: 229
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 229
    functionName: netbuf_next
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c
    functionUses: 0
    functionsReached:
    - LWIP_ERROR
    linkageType: ''
    returnType: s8_t
    signature: netbuf_next(struct netbuf *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct netbuf*
    constantsTouched: []
    func_position:
      end: 244
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 244
    functionName: netbuf_first
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c
    functionUses: 0
    functionsReached:
    - LWIP_ERROR
    linkageType: ''
    returnType: void
    signature: netbuf_first(struct netbuf *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netconn_gethostbyname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:100,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:102,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:111,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:122,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:123,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:125,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:126,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:127,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:131,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:132,1
    - Dst: ipaddr_ntoa
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:132,1
    - Dst: sys_thread_hostent
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 143
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 143
    functionName: lwip_gethostbyname
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - sys_thread_hostent
    - strncpy
    - ipaddr_ntoa
    - netconn_gethostbyname
    linkageType: ''
    returnType: struct hostent
    signature: '*

      lwip_gethostbyname(const char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:189,1
    - Dst: LWIP_MEM_ALIGN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:196,1
    - Dst: netconn_gethostbyname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:200,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:202,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:208,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 6
    argNames:
    - name
    - ret
    - buf
    - buflen
    - result
    - h_errnop
    argTypes:
    - char*
    - struct hostent*
    - char*
    - size_t
    - struct hostent**
    - int*
    constantsTouched: []
    func_position:
      end: 226
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 226
    functionName: lwip_gethostbyname_r
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - LWIP_MEM_ALIGN
    - MEMCPY
    - strlen
    - netconn_gethostbyname
    linkageType: ''
    returnType: int
    signature: "lwip_gethostbyname_r(const char *name, struct hostent *ret, char *buf,\n
      \               size_t buflen, struct hostent **result, int *h_errnop)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ai
    argTypes:
    - struct addrinfo*
    constantsTouched: []
    func_position:
      end: 245
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 245
    functionName: lwip_freeaddrinfo
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c
    functionUses: 0
    functionsReached:
    - memp_free
    linkageType: ''
    returnType: void
    signature: lwip_freeaddrinfo(struct addrinfo *ai)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:308,1
    - Dst: ipaddr_aton
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:318,1
    - Dst: IP_IS_V6_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:322,1
    - Dst: IP_IS_V4_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:323,1
    - Dst: netconn_gethostbyname_addrtype
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:337,1
    - Dst: ip_addr_set_any
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:345,1
    - Dst: ip_addr_set_loopback
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:347,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:353,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:358,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:362,1
    - Dst: memp_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:364,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:368,1
    - Dst: IP_IS_V6_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:371,1
    - Dst: inet6_addr_from_ip6addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:375,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:375,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:378,1
    - Dst: inet_addr_from_ip4addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:385,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:385,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:388,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c:402,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 91
    argCount: 4
    argNames:
    - nodename
    - servname
    - hints
    - res
    argTypes:
    - char*
    - char*
    - struct addrinfo*
    - struct addrinfo**
    constantsTouched: []
    func_position:
      end: 411
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 411
    functionName: lwip_getaddrinfo
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c
    functionUses: 0
    functionsReached:
    - ip_addr_set_any
    - ip_2_ip6
    - ipaddr_aton
    - atoi
    - IP_IS_V4_VAL
    - memset
    - netconn_gethostbyname_addrtype
    - strlen
    - IP_IS_V6_VAL
    - lwip_htons
    - MEMCPY
    - ip_addr_set_loopback
    - memp_malloc
    - inet6_addr_from_ip6addr
    - inet_addr_from_ip4addr
    - ip_2_ip4
    - LWIP_ASSERT
    linkageType: ''
    returnType: int
    signature: "lwip_getaddrinfo(const char *nodename, const char *servname,\n       const
      struct addrinfo *hints, struct addrinfo **res)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SOCKADDR6_TO_IP6ADDR_PORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:320,1
    - Dst: SOCKADDR4_TO_IP4ADDR_PORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - sockaddr
    - ipaddr
    - port
    argTypes:
    - struct sockaddr*
    - ip_addr_t*
    - u16_t*
    constantsTouched: []
    func_position:
      end: 326
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 326
    functionName: sockaddr_to_ipaddr_port
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - SOCKADDR6_TO_IP6ADDR_PORT
    - SOCKADDR4_TO_IP4ADDR_PORT
    linkageType: ''
    returnType: void
    signature: sockaddr_to_ipaddr_port(const struct sockaddr* sockaddr, ip_addr_t*
      ipaddr, u16_t* port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netconn_thread_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 334
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 334
    functionName: lwip_socket_thread_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - netconn_thread_init
    linkageType: ''
    returnType: void
    signature: lwip_socket_thread_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netconn_thread_cleanup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 341
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 341
    functionName: lwip_socket_thread_cleanup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - netconn_thread_cleanup
    linkageType: ''
    returnType: void
    signature: lwip_socket_thread_cleanup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:357,1
    - Dst: set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:358,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:365,1
    - Dst: set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:366,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 371
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 371
    functionName: get_socket
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - set_errno
    - LWIP_DEBUGF
    linkageType: ''
    returnType: struct lwip_sock
    signature: '*

      get_socket(int s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 390
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 390
    functionName: tryget_socket
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct lwip_sock
    signature: '*

      tryget_socket(int s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYS_ARCH_DECL_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:404,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:409,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:414,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:420,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:425,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - newconn
    - accepted
    argTypes:
    - struct netconn*
    - int
    constantsTouched: []
    func_position:
      end: 428
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 428
    functionName: alloc_socket
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - SYS_ARCH_DECL_PROTECT
    - SYS_ARCH_UNPROTECT
    - NETCONNTYPE_GROUP
    - SYS_ARCH_PROTECT
    linkageType: ''
    returnType: int
    signature: alloc_socket(struct netconn *newconn, int accepted)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYS_ARCH_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:447,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:452,1
    - Dst: netbuf_delete
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - sock
    - is_tcp
    argTypes:
    - struct lwip_sock*
    - int
    constantsTouched: []
    func_position:
      end: 457
      start: 436
    functionDepth: 5
    functionLinenumber: 436
    functionLinenumberEnd: 457
    functionName: free_socket
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - pbuf_free
    - netbuf_delete
    - SYS_ARCH_SET
    linkageType: ''
    returnType: void
    signature: free_socket(struct lwip_sock *sock, int is_tcp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYS_ARCH_DECL_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:474,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:476,1
    - Dst: get_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:477,1
    - Dst: netconn_is_nonblocking
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:482,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:483,1
    - Dst: set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:484,1
    - Dst: netconn_accept
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:489,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:491,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:492,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:492,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:493,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:495,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:497,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:497,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:501,1
    - Dst: alloc_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:503,1
    - Dst: netconn_delete
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:505,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:506,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:509,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:510,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:518,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:521,1
    - Dst: netconn_peer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:529,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:531,1
    - Dst: netconn_delete
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:532,1
    - Dst: free_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:533,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:534,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:534,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:537,1
    - Dst: IPADDR_PORT_TO_SOCKADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:539,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:543,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:545,1
    - Dst: ip_addr_debug_print_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:546,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:547,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:549,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:552,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 62
    argCount: 3
    argNames:
    - s
    - addr
    - addrlen
    argTypes:
    - int
    - struct sockaddr*
    - socklen_t*
    constantsTouched: []
    func_position:
      end: 554
      start: 465
    functionDepth: 6
    functionLinenumber: 465
    functionLinenumberEnd: 554
    functionName: lwip_accept
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - SYS_ARCH_UNPROTECT
    - free_socket
    - get_socket
    - netconn_delete
    - err_to_errno
    - netconn_peer
    - SYS_ARCH_DECL_PROTECT
    - set_errno
    - netconn_accept
    - LWIP_ASSERT
    - LWIP_DEBUGF
    - netconn_is_nonblocking
    - netconn_type
    - sock_set_errno
    - IPADDR_PORT_TO_SOCKADDR
    - ip_addr_debug_print_val
    - MEMCPY
    - NETCONNTYPE_GROUP
    - SYS_ARCH_PROTECT
    - alloc_socket
    linkageType: ''
    returnType: int
    signature: lwip_accept(int s, struct sockaddr *addr, socklen_t *addrlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:564,1
    - Dst: SOCK_ADDR_TYPE_MATCH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:569,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:571,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:571,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:576,1
    - Dst: IS_SOCK_ADDR_LEN_VALID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:576,1
    - Dst: IS_SOCK_ADDR_TYPE_VALID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:577,1
    - Dst: IS_SOCK_ADDR_ALIGNED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:577,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:578,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:578,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:579,1
    - Dst: SOCKADDR_TO_IPADDR_PORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:581,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:582,1
    - Dst: ip_addr_debug_print_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:583,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:584,1
    - Dst: IP_IS_V6_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:588,1
    - Dst: ip6_addr_isipv4mappedipv6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:588,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:588,1
    - Dst: unmap_ipv4_mapped_ipv6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:589,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:589,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:589,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:590,1
    - Dst: netconn_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:594,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:597,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:598,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:598,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:602,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:603,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - s
    - name
    - namelen
    argTypes:
    - int
    - struct sockaddr*
    - socklen_t
    constantsTouched: []
    func_position:
      end: 605
      start: 556
    functionDepth: 3
    functionLinenumber: 556
    functionLinenumberEnd: 605
    functionName: lwip_bind
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - netconn_bind
    - get_socket
    - IP_IS_V6_VAL
    - err_to_errno
    - IS_SOCK_ADDR_ALIGNED
    - LWIP_DEBUGF
    - IP_SET_TYPE_VAL
    - SOCK_ADDR_TYPE_MATCH
    - LWIP_ERROR
    - sock_set_errno
    - IS_SOCK_ADDR_LEN_VALID
    - SOCKADDR_TO_IPADDR_PORT
    - ip6_addr_isipv4mappedipv6
    - unmap_ipv4_mapped_ipv6
    - ip_addr_debug_print_val
    - ip_2_ip4
    - ip_2_ip6
    - IS_SOCK_ADDR_TYPE_VALID
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: int
    signature: lwip_bind(int s, const struct sockaddr *name, socklen_t namelen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:614,1
    - Dst: get_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:616,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:622,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:622,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:624,1
    - Dst: lwip_socket_drop_registered_memberships
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:629,1
    - Dst: netconn_delete
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:632,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:634,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:634,1
    - Dst: free_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:638,1
    - Dst: set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:639,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 641
      start: 607
    functionDepth: 6
    functionLinenumber: 607
    functionLinenumberEnd: 641
    functionName: lwip_close
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - NETCONNTYPE_GROUP
    - lwip_socket_drop_registered_memberships
    - netconn_type
    - free_socket
    - sock_set_errno
    - get_socket
    - netconn_delete
    - err_to_errno
    - set_errno
    - LWIP_ASSERT
    linkageType: ''
    returnType: int
    signature: lwip_close(int s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:649,1
    - Dst: SOCK_ADDR_TYPE_MATCH_OR_UNSPEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:654,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:656,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:656,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:660,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:662,1
    - Dst: netconn_disconnect
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:663,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:669,1
    - Dst: IS_SOCK_ADDR_LEN_VALID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:669,1
    - Dst: IS_SOCK_ADDR_TYPE_VALID_OR_UNSPEC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:670,1
    - Dst: IS_SOCK_ADDR_ALIGNED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:670,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:671,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:671,1
    - Dst: SOCKADDR_TO_IPADDR_PORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:673,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:674,1
    - Dst: ip_addr_debug_print_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:675,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:676,1
    - Dst: IP_IS_V6_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:680,1
    - Dst: ip6_addr_isipv4mappedipv6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:680,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:680,1
    - Dst: unmap_ipv4_mapped_ipv6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:681,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:681,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:681,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:682,1
    - Dst: netconn_connect
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:686,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:690,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:691,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:691,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:695,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:696,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - s
    - name
    - namelen
    argTypes:
    - int
    - struct sockaddr*
    - socklen_t
    constantsTouched: []
    func_position:
      end: 698
      start: 643
    functionDepth: 3
    functionLinenumber: 643
    functionLinenumberEnd: 698
    functionName: lwip_connect
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - get_socket
    - IP_IS_V6_VAL
    - err_to_errno
    - IS_SOCK_ADDR_ALIGNED
    - LWIP_DEBUGF
    - IP_SET_TYPE_VAL
    - netconn_disconnect
    - sock_set_errno
    - LWIP_ERROR
    - IS_SOCK_ADDR_LEN_VALID
    - IS_SOCK_ADDR_TYPE_VALID_OR_UNSPEC
    - SOCKADDR_TO_IPADDR_PORT
    - ip6_addr_isipv4mappedipv6
    - SOCK_ADDR_TYPE_MATCH_OR_UNSPEC
    - unmap_ipv4_mapped_ipv6
    - ip_addr_debug_print_val
    - ip_2_ip4
    - ip_2_ip6
    - netconn_connect
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: int
    signature: lwip_connect(int s, const struct sockaddr *name, socklen_t namelen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:714,1
    - Dst: get_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:716,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:722,1
    - Dst: LWIP_MAX
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:722,1
    - Dst: netconn_listen_with_backlog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:724,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:727,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:728,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:728,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:729,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:732,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:732,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:736,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - s
    - backlog
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 738
      start: 708
    functionDepth: 3
    functionLinenumber: 708
    functionLinenumberEnd: 738
    functionName: lwip_listen
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - NETCONNTYPE_GROUP
    - netconn_type
    - sock_set_errno
    - get_socket
    - netconn_listen_with_backlog
    - LWIP_MIN
    - err_to_errno
    - LWIP_MAX
    linkageType: ''
    returnType: int
    signature: lwip_listen(int s, int backlog)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:752,1
    - Dst: get_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:753,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:759,1
    - Dst: netconn_is_nonblocking
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:765,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:769,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:772,1
    - Dst: set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:773,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:779,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:779,1
    - Dst: netconn_recv_tcp_pbuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:780,1
    - Dst: netconn_recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:782,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:784,1
    - Dst: event_callback
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:791,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:794,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:798,1
    - Dst: lwip_strerr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:799,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:800,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:800,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:807,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:811,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:811,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:817,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:830,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:834,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:834,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:835,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:857,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:858,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:858,1
    - Dst: netconn_getaddr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:860,1
    - Dst: netbuf_fromport
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:862,1
    - Dst: netbuf_fromaddr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:863,1
    - Dst: NETCONNTYPE_ISIPV6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:868,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:868,1
    - Dst: IP_IS_V4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:868,1
    - Dst: ip4_2_ipv4_mapped_ipv6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:869,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:869,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:869,1
    - Dst: IP_SET_TYPE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:870,1
    - Dst: IPADDR_PORT_TO_SOCKADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:874,1
    - Dst: ip_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:875,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:876,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:884,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:894,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:894,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:897,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:901,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:902,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:902,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:903,1
    - Dst: netbuf_delete
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:905,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:912,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 115
    argCount: 6
    argNames:
    - s
    - mem
    - len
    - flags
    - from
    - fromlen
    argTypes:
    - int
    - void*
    - size_t
    - int
    - struct sockaddr*
    - socklen_t*
    constantsTouched: []
    func_position:
      end: 914
      start: 740
    functionDepth: 5
    functionLinenumber: 740
    functionLinenumberEnd: 914
    functionName: lwip_recvfrom
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - netbuf_fromport
    - get_socket
    - event_callback
    - IP_IS_V4
    - err_to_errno
    - set_errno
    - netconn_recv
    - ip_addr_debug_print
    - LWIP_ASSERT
    - LWIP_DEBUGF
    - netconn_is_nonblocking
    - netconn_type
    - sock_set_errno
    - lwip_strerr
    - pbuf_free
    - netconn_getaddr
    - IPADDR_PORT_TO_SOCKADDR
    - pbuf_copy_partial
    - IP_SET_TYPE
    - NETCONNTYPE_ISIPV6
    - MEMCPY
    - ip_2_ip4
    - netbuf_fromaddr
    - ip_2_ip6
    - NETCONNTYPE_GROUP
    - netbuf_delete
    - netconn_recv_tcp_pbuf
    - ip4_2_ipv4_mapped_ipv6
    linkageType: ''
    returnType: int
    signature: "lwip_recvfrom(int s, void *mem, size_t len, int flags,\n              struct
      sockaddr *from, socklen_t *fromlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_recvfrom
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - mem
    - len
    argTypes:
    - int
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 920
      start: 916
    functionDepth: 6
    functionLinenumber: 916
    functionLinenumberEnd: 920
    functionName: lwip_read
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - lwip_recvfrom
    linkageType: ''
    returnType: int
    signature: lwip_read(int s, void *mem, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_recvfrom
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - mem
    - len
    - flags
    argTypes:
    - int
    - void*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 926
      start: 922
    functionDepth: 6
    functionLinenumber: 922
    functionLinenumberEnd: 926
    functionName: lwip_recv
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - lwip_recvfrom
    linkageType: ''
    returnType: int
    signature: lwip_recv(int s, void *mem, size_t len, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:936,1
    - Dst: get_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:939,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:944,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:944,1
    - Dst: lwip_sendto
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:946,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:948,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:948,1
    - Dst: netconn_write_partly
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:957,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:959,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:960,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:960,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - s
    - data
    - size
    - flags
    argTypes:
    - int
    - void*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 962
      start: 928
    functionDepth: 3
    functionLinenumber: 928
    functionLinenumberEnd: 962
    functionName: lwip_send
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - lwip_sendto
    - LWIP_DEBUGF
    - NETCONNTYPE_GROUP
    - netconn_write_partly
    - netconn_type
    - sock_set_errno
    - get_socket
    - err_to_errno
    linkageType: ''
    returnType: int
    signature: lwip_send(int s, const void *data, size_t size, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:976,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:981,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:982,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:982,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:984,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:985,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:986,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:987,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:988,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:988,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:990,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:990,1
    - Dst: netconn_write_partly
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1002,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1019,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1019,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1022,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1022,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1031,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1032,1
    - Dst: IS_SOCK_ADDR_LEN_VALID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1033,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1034,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1034,1
    - Dst: netbuf_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1037,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1039,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1039,1
    - Dst: SOCKADDR_TO_IPADDR_PORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1044,1
    - Dst: netbuf_fromport
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1045,1
    - Dst: netbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1052,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1058,1
    - Dst: inet_chksum_pbuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1064,1
    - Dst: netbuf_set_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1065,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1074,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1080,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1087,1
    - Dst: netbuf_len
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1092,1
    - Dst: IP_IS_V6_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1099,1
    - Dst: ip6_addr_isipv4mappedipv6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1099,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1099,1
    - Dst: unmap_ipv4_mapped_ipv6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1100,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1100,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1100,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1101,1
    - Dst: netconn_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1106,1
    - Dst: netbuf_delete
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1110,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1112,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1112,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1116,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1116,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 97
    argCount: 3
    argNames:
    - s
    - msg
    - flags
    argTypes:
    - int
    - struct msghdr*
    - int
    constantsTouched: []
    func_position:
      end: 1119
      start: 964
    functionDepth: 5
    functionLinenumber: 964
    functionLinenumberEnd: 1119
    functionName: lwip_sendmsg
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - netbuf_fromport
    - netbuf_set_chksum
    - get_socket
    - IP_IS_V6_VAL
    - err_to_errno
    - LWIP_ASSERT
    - netbuf_len
    - IP_SET_TYPE_VAL
    - netconn_type
    - sock_set_errno
    - LWIP_ERROR
    - IS_SOCK_ADDR_LEN_VALID
    - SOCKADDR_TO_IPADDR_PORT
    - netconn_send
    - ip6_addr_isipv4mappedipv6
    - inet_chksum_pbuf
    - netbuf_alloc
    - unmap_ipv4_mapped_ipv6
    - MEMCPY
    - ip_2_ip4
    - ip_2_ip6
    - netconn_write_partly
    - NETCONNTYPE_GROUP
    - pbuf_cat
    - pbuf_alloc
    - netbuf_delete
    - netbuf_new
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: int
    signature: lwip_sendmsg(int s, const struct msghdr *msg, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1131,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1136,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1136,1
    - Dst: lwip_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1138,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1140,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1141,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1141,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1147,1
    - Dst: LWIP_ERROR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1149,1
    - Dst: IS_SOCK_ADDR_LEN_VALID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1150,1
    - Dst: IS_SOCK_ADDR_TYPE_VALID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1151,1
    - Dst: IS_SOCK_ADDR_ALIGNED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1151,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1152,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1152,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1153,1
    - Dst: SOCKADDR_TO_IPADDR_PORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1161,1
    - Dst: ip_addr_set_any
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1164,1
    - Dst: NETCONNTYPE_ISIPV6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1164,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1164,1
    - Dst: netbuf_fromport
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1166,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1169,1
    - Dst: ip_addr_debug_print
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1171,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1172,1
    - Dst: netbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1177,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1181,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1181,1
    - Dst: LWIP_CHKSUM_COPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1182,1
    - Dst: netbuf_set_chksum
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1183,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1187,1
    - Dst: netbuf_ref
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1192,1
    - Dst: IP_IS_V6_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1197,1
    - Dst: ip6_addr_isipv4mappedipv6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1197,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1197,1
    - Dst: unmap_ipv4_mapped_ipv6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1198,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1198,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1198,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1199,1
    - Dst: netconn_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1204,1
    - Dst: netbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1208,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1210,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1210,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 6
    argNames:
    - s
    - data
    - size
    - flags
    - to
    - tolen
    argTypes:
    - int
    - void*
    - size_t
    - int
    - struct sockaddr*
    - socklen_t
    constantsTouched: []
    func_position:
      end: 1212
      start: 1121
    functionDepth: 5
    functionLinenumber: 1121
    functionLinenumberEnd: 1212
    functionName: lwip_sendto
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 1
    functionsReached:
    - netbuf_fromport
    - netbuf_set_chksum
    - get_socket
    - IP_IS_V6_VAL
    - err_to_errno
    - IS_SOCK_ADDR_ALIGNED
    - ip_addr_debug_print
    - LWIP_ASSERT
    - LWIP_DEBUGF
    - LWIP_CHKSUM_COPY
    - IP_SET_TYPE_VAL
    - netconn_type
    - sock_set_errno
    - LWIP_ERROR
    - IS_SOCK_ADDR_LEN_VALID
    - SOCKADDR_TO_IPADDR_PORT
    - netconn_send
    - ip6_addr_isipv4mappedipv6
    - ip_addr_set_any
    - unmap_ipv4_mapped_ipv6
    - netbuf_alloc
    - NETCONNTYPE_ISIPV6
    - MEMCPY
    - ip_2_ip4
    - lwip_send
    - ip_2_ip6
    - NETCONNTYPE_GROUP
    - IS_SOCK_ADDR_TYPE_VALID
    - netbuf_ref
    - LWIP_UNUSED_ARG
    - netbuf_free
    linkageType: ''
    returnType: int
    signature: "lwip_sendto(int s, const void *data, size_t size, int flags,\n       const
      struct sockaddr *to, socklen_t tolen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1220,1
    - Dst: netconn_new_with_proto_and_callback
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1225,1
    - Dst: DOMAIN_TO_NETCONN_TYPE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1225,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1227,1
    - Dst: netconn_new_with_callback
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1231,1
    - Dst: DOMAIN_TO_NETCONN_TYPE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1231,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1234,1
    - Dst: netconn_new_with_callback
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1238,1
    - Dst: DOMAIN_TO_NETCONN_TYPE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1238,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1239,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1243,1
    - Dst: set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1245,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1250,1
    - Dst: set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1251,1
    - Dst: alloc_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1255,1
    - Dst: netconn_delete
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1258,1
    - Dst: set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1259,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1263,1
    - Dst: set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1264,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 3
    argNames:
    - domain
    - type
    - protocol
    argTypes:
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1266
      start: 1214
    functionDepth: 4
    functionLinenumber: 1214
    functionLinenumberEnd: 1266
    functionName: lwip_socket
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - DOMAIN_TO_NETCONN_TYPE
    - netconn_delete
    - alloc_socket
    - LWIP_UNUSED_ARG
    - set_errno
    - netconn_new_with_callback
    - netconn_new_with_proto_and_callback
    linkageType: ''
    returnType: int
    signature: lwip_socket(int domain, int type, int protocol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - data
    - size
    argTypes:
    - int
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 1272
      start: 1268
    functionDepth: 4
    functionLinenumber: 1268
    functionLinenumberEnd: 1272
    functionName: lwip_write
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - lwip_send
    linkageType: ''
    returnType: int
    signature: lwip_write(int s, const void *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_CONST_CAST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1283,1
    - Dst: lwip_sendmsg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - s
    - iov
    - iovcnt
    argTypes:
    - int
    - struct iovec*
    - int
    constantsTouched: []
    func_position:
      end: 1289
      start: 1274
    functionDepth: 6
    functionLinenumber: 1274
    functionLinenumberEnd: 1289
    functionName: lwip_writev
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - lwip_sendmsg
    - LWIP_CONST_CAST
    linkageType: ''
    returnType: int
    signature: lwip_writev(int s, const struct iovec *iov, int iovcnt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYS_ARCH_DECL_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1312,1
    - Dst: FD_ZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1314,1
    - Dst: FD_ZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1315,1
    - Dst: FD_ZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1316,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1322,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1323,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1324,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1328,1
    - Dst: tryget_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1329,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1335,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1339,1
    - Dst: FD_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1340,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1341,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1345,1
    - Dst: FD_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1346,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1347,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1351,1
    - Dst: FD_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1352,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1353,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1357,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1366,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 37
    argCount: 7
    argNames:
    - maxfdp1
    - readset_in
    - writeset_in
    - exceptset_in
    - readset_out
    - writeset_out
    - exceptset_out
    argTypes:
    - int
    - fd_set*
    - fd_set*
    - fd_set*
    - fd_set*
    - fd_set*
    - fd_set*
    constantsTouched: []
    func_position:
      end: 1368
      start: 1305
    functionDepth: 1
    functionLinenumber: 1305
    functionLinenumberEnd: 1368
    functionName: lwip_selscan
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - SYS_ARCH_UNPROTECT
    - LWIP_DEBUGF
    - SYS_ARCH_PROTECT
    - FD_SET
    - tryget_socket
    - FD_ISSET
    - FD_ZERO
    - SYS_ARCH_DECL_PROTECT
    - LWIP_ASSERT
    linkageType: ''
    returnType: int
    signature: "lwip_selscan(int maxfdp1, fd_set *readset_in, fd_set *writeset_in,
      fd_set *exceptset_in,\n             fd_set *readset_out, fd_set *writeset_out,
      fd_set *exceptset_out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYS_ARCH_DECL_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1384,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1386,1
    - Dst: lwip_selscan
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1393,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1398,1
    - Dst: LWIP_NETCONN_THREAD_SEM_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1416,1
    - Dst: sys_sem_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1418,1
    - Dst: set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1420,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1426,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1438,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1443,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1444,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1445,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1447,1
    - Dst: tryget_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1448,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1451,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1456,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1459,1
    - Dst: lwip_selscan
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1466,1
    - Dst: sys_arch_sem_wait
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1480,1
    - Dst: SELECT_SEM_PTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1480,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1489,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1490,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1491,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1493,1
    - Dst: tryget_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1494,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1497,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1505,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1509,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1514,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1517,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1522,1
    - Dst: sys_arch_sem_wait
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1527,1
    - Dst: sys_sem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1530,1
    - Dst: set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1535,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1541,1
    - Dst: lwip_selscan
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1548,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1551,1
    - Dst: set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1553,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 118
    argCount: 5
    argNames:
    - maxfdp1
    - readset
    - writeset
    - exceptset
    - timeout
    argTypes:
    - int
    - fd_set*
    - fd_set*
    - fd_set*
    - struct timeval*
    constantsTouched: []
    func_position:
      end: 1564
      start: 1370
    functionDepth: 2
    functionLinenumber: 1370
    functionLinenumberEnd: 1564
    functionName: lwip_select
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - SYS_ARCH_UNPROTECT
    - SYS_ARCH_PROTECT
    - sys_sem_free
    - tryget_socket
    - FD_ISSET
    - SYS_ARCH_DECL_PROTECT
    - LWIP_NETCONN_THREAD_SEM_GET
    - sys_sem_new
    - sys_arch_sem_wait
    - lwip_selscan
    - set_errno
    - SELECT_SEM_PTR
    - LWIP_ASSERT
    linkageType: ''
    returnType: int
    signature: "lwip_select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set
      *exceptset,\n            struct timeval *timeout)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYS_ARCH_DECL_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1577,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1579,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1590,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1595,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1599,1
    - Dst: get_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1602,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1610,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1629,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1635,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1654,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1659,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1664,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1672,1
    - Dst: SELECT_SEM_PTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1672,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1676,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1678,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1684,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 82
    argCount: 3
    argNames:
    - conn
    - evt
    - len
    argTypes:
    - struct netconn*
    - enum netconn_evt
    - u16_t
    constantsTouched: []
    func_position:
      end: 1685
      start: 1570
    functionDepth: 1
    functionLinenumber: 1570
    functionLinenumberEnd: 1685
    functionName: event_callback
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 1
    functionsReached:
    - SYS_ARCH_UNPROTECT
    - SYS_ARCH_PROTECT
    - sys_sem_signal
    - FD_ISSET
    - get_socket
    - LWIP_UNUSED_ARG
    - SYS_ARCH_DECL_PROTECT
    - SELECT_SEM_PTR
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: event_callback(struct netconn *conn, enum netconn_evt evt, u16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1697,1
    - Dst: get_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1699,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1705,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1705,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1706,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1710,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1722,1
    - Dst: netconn_shutdown
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1725,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1727,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1727,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - s
    - how
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1729
      start: 1690
    functionDepth: 4
    functionLinenumber: 1690
    functionLinenumberEnd: 1729
    functionName: lwip_shutdown
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - NETCONNTYPE_GROUP
    - netconn_type
    - sock_set_errno
    - get_socket
    - err_to_errno
    - netconn_shutdown
    linkageType: ''
    returnType: int
    signature: lwip_shutdown(int s, int how)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1740,1
    - Dst: netconn_getaddr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1746,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1748,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1748,1
    - Dst: NETCONNTYPE_ISIPV6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1754,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1754,1
    - Dst: IP_IS_V4_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1755,1
    - Dst: ip4_2_ipv4_mapped_ipv6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1756,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1756,1
    - Dst: ip_2_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1756,1
    - Dst: IP_SET_TYPE_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1757,1
    - Dst: IPADDR_PORT_TO_SOCKADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1761,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1763,1
    - Dst: ip_addr_debug_print_val
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1764,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1765,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1770,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1772,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - s
    - name
    - namelen
    - local
    argTypes:
    - int
    - struct sockaddr*
    - socklen_t*
    - u8_t
    constantsTouched: []
    func_position:
      end: 1774
      start: 1731
    functionDepth: 3
    functionLinenumber: 1731
    functionLinenumberEnd: 1774
    functionName: lwip_getaddrname
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - ip_2_ip6
    - IP_SET_TYPE_VAL
    - LWIP_DEBUGF
    - NETCONNTYPE_ISIPV6
    - netconn_type
    - sock_set_errno
    - ip_addr_debug_print_val
    - get_socket
    - IP_IS_V4_VAL
    - MEMCPY
    - err_to_errno
    - IPADDR_PORT_TO_SOCKADDR
    - ip4_2_ipv4_mapped_ipv6
    - netconn_getaddr
    - ip_2_ip4
    linkageType: ''
    returnType: int
    signature: lwip_getaddrname(int s, struct sockaddr *name, socklen_t *namelen,
      u8_t local)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_getaddrname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - name
    - namelen
    argTypes:
    - int
    - struct sockaddr*
    - socklen_t*
    constantsTouched: []
    func_position:
      end: 1780
      start: 1776
    functionDepth: 4
    functionLinenumber: 1776
    functionLinenumberEnd: 1780
    functionName: lwip_getpeername
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - lwip_getaddrname
    linkageType: ''
    returnType: int
    signature: lwip_getpeername(int s, struct sockaddr *name, socklen_t *namelen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_getaddrname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - name
    - namelen
    argTypes:
    - int
    - struct sockaddr*
    - socklen_t*
    constantsTouched: []
    func_position:
      end: 1786
      start: 1782
    functionDepth: 4
    functionLinenumber: 1782
    functionLinenumberEnd: 1786
    functionName: lwip_getsockname
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - lwip_getaddrname
    linkageType: ''
    returnType: int
    signature: lwip_getsockname(int s, struct sockaddr *name, socklen_t *namelen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1792,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1794,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1802,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1808,1
    - Dst: lwip_getsockopt_impl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1809,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1810,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1817,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1822,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1823,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1824,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1825,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1826,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1828,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1830,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1832,1
    - Dst: LWIP_NETCONN_THREAD_SEM_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1832,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1834,1
    - Dst: tcpip_callback
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1836,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1836,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1838,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1839,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1839,1
    - Dst: sys_arch_sem_wait
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1842,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1842,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1845,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1847,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1847,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1848,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1852,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1853,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1856,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 5
    argNames:
    - s
    - level
    - optname
    - optval
    - optlen
    argTypes:
    - int
    - int
    - int
    - void*
    - socklen_t*
    constantsTouched: []
    func_position:
      end: 1858
      start: 1788
    functionDepth: 1
    functionLinenumber: 1788
    functionLinenumberEnd: 1858
    functionName: lwip_getsockopt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - LWIP_SETGETSOCKOPT_DATA_VAR_ALLOC
    - LOCK_TCPIP_CORE
    - LWIP_SETGETSOCKOPT_DATA_VAR_FREE
    - tcpip_callback
    - lwip_getsockopt_impl
    - LWIP_SETGETSOCKOPT_DATA_VAR_REF
    - sock_set_errno
    - LWIP_SETGETSOCKOPT_DATA_VAR_DECLARE
    - get_socket
    - LWIP_NETCONN_THREAD_SEM_GET
    - sys_arch_sem_wait
    - MEMCPY
    - err_to_errno
    - UNLOCK_TCPIP_CORE
    linkageType: ''
    returnType: int
    signature: lwip_getsockopt(int s, int level, int optname, void *optval, socklen_t
      *optlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1868,1
    - Dst: lwip_getsockopt_impl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1871,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1880
      start: 1864
    functionDepth: 1
    functionLinenumber: 1864
    functionLinenumberEnd: 1880
    functionName: lwip_getsockopt_callback
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - lwip_getsockopt_impl
    - sys_sem_signal
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: lwip_getsockopt_callback(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tryget_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1890,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1903,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1904,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1921,1
    - Dst: ip_get_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1922,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1923,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1928,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1929,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1929,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1940,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1941,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1945,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1950,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1953,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1953,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1957,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1963,1
    - Dst: LWIP_SO_SNDRCVTIMEO_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1964,1
    - Dst: netconn_get_sendtimeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1964,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1969,1
    - Dst: LWIP_SO_SNDRCVTIMEO_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1970,1
    - Dst: netconn_get_recvtimeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1970,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1975,1
    - Dst: netconn_get_recvbufsize
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1976,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1984,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:1998,1
    - Dst: udp_flags
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2000,1
    - Dst: udp_flags
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2005,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2009,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2020,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2022,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2026,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2028,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2033,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2034,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2034,1
    - Dst: udp_get_multicast_ttl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2037,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2038,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2042,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2043,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2043,1
    - Dst: inet_addr_from_ip4addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2046,1
    - Dst: udp_get_multicast_netif_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2046,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2047,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2051,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2057,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2062,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2073,1
    - Dst: tcp_nagle_disabled
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2079,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2080,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2085,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2092,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2097,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2102,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2107,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2120,1
    - Dst: netconn_get_ipv6only
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2121,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2122,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2126,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2138,1
    - Dst: NETCONNTYPE_ISUDPLITE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2140,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2140,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2146,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2151,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2155,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2167,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2173,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2178,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2185,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 220
    argCount: 5
    argNames:
    - s
    - level
    - optname
    - optval
    - optlen
    argTypes:
    - int
    - int
    - int
    - void*
    - socklen_t*
    constantsTouched: []
    func_position:
      end: 2192
      start: 1886
    functionDepth: 1
    functionLinenumber: 1886
    functionLinenumberEnd: 2192
    functionName: lwip_getsockopt_impl
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 2
    functionsReached:
    - netconn_get_sendtimeout
    - netconn_get_recvbufsize
    - err_to_errno
    - inet_addr_from_ip4addr
    - udp_get_multicast_netif_addr
    - LWIP_DEBUGF
    - udp_flags
    - LWIP_SO_SNDRCVTIMEO_SET
    - netconn_type
    - sock_set_errno
    - tcp_nagle_disabled
    - tryget_socket
    - LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE
    - netconn_get_recvtimeout
    - LWIP_SOCKOPT_CHECK_OPTLEN
    - netconn_get_ipv6only
    - LWIP_SOCKOPT_CHECK_OPTLEN_CONN
    - NETCONNTYPE_GROUP
    - udp_get_multicast_ttl
    - LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB
    - NETCONNTYPE_ISUDPLITE
    - ip_get_option
    linkageType: ''
    returnType: u8_t
    signature: lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t
      *optlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2198,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2200,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2208,1
    - Dst: LOCK_TCPIP_CORE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2214,1
    - Dst: lwip_setsockopt_impl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2215,1
    - Dst: UNLOCK_TCPIP_CORE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2216,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2223,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2228,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2229,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2230,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2231,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2232,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2234,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2234,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2236,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2238,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2240,1
    - Dst: LWIP_NETCONN_THREAD_SEM_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2240,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2242,1
    - Dst: tcpip_callback
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2244,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2244,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2246,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2247,1
    - Dst: err_to_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2247,1
    - Dst: sys_arch_sem_wait
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2250,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2250,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2253,1
    - Dst: LWIP_SETGETSOCKOPT_DATA_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2254,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 5
    argNames:
    - s
    - level
    - optname
    - optval
    - optlen
    argTypes:
    - int
    - int
    - int
    - void*
    - socklen_t
    constantsTouched: []
    func_position:
      end: 2259
      start: 2194
    functionDepth: 1
    functionLinenumber: 2194
    functionLinenumberEnd: 2259
    functionName: lwip_setsockopt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 1
    functionsReached:
    - LWIP_SETGETSOCKOPT_DATA_VAR_ALLOC
    - LOCK_TCPIP_CORE
    - LWIP_SETGETSOCKOPT_DATA_VAR_FREE
    - tcpip_callback
    - LWIP_SETGETSOCKOPT_DATA_VAR_REF
    - sock_set_errno
    - lwip_setsockopt_impl
    - LWIP_SETGETSOCKOPT_DATA_VAR_DECLARE
    - get_socket
    - MEMCPY
    - LWIP_NETCONN_THREAD_SEM_GET
    - sys_arch_sem_wait
    - err_to_errno
    - UNLOCK_TCPIP_CORE
    linkageType: ''
    returnType: int
    signature: lwip_setsockopt(int s, int level, int optname, const void *optval,
      socklen_t optlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2269,1
    - Dst: lwip_setsockopt_impl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2272,1
    - Dst: sys_sem_signal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 2281
      start: 2265
    functionDepth: 1
    functionLinenumber: 2265
    functionLinenumberEnd: 2281
    functionName: lwip_setsockopt_callback
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - sys_sem_signal
    - lwip_setsockopt_impl
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: lwip_setsockopt_callback(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tryget_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2291,1
    - Dst: ip_set_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2312,1
    - Dst: ip_reset_option
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2314,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2316,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2325,1
    - Dst: netconn_set_sendtimeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2326,1
    - Dst: LWIP_SO_SNDRCVTIMEO_GET_MS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2326,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2331,1
    - Dst: netconn_set_recvtimeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2332,1
    - Dst: LWIP_SO_SNDRCVTIMEO_GET_MS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2332,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2337,1
    - Dst: netconn_set_recvbufsize
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2338,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2363,1
    - Dst: udp_flags
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2365,1
    - Dst: udp_setflags
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2371,1
    - Dst: udp_flags
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2371,1
    - Dst: udp_setflags
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2373,1
    - Dst: udp_flags
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2373,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2378,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2389,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2391,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2395,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2397,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2402,1
    - Dst: udp_set_multicast_ttl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2403,1
    - Dst: inet_addr_to_ip4addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2409,1
    - Dst: udp_set_multicast_netif_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2410,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2414,1
    - Dst: udp_setflags
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2416,1
    - Dst: udp_flags
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2416,1
    - Dst: udp_setflags
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2418,1
    - Dst: udp_flags
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2418,1
    - Dst: inet_addr_to_ip4addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2433,1
    - Dst: inet_addr_to_ip4addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2434,1
    - Dst: lwip_socket_register_membership
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2436,1
    - Dst: igmp_joingroup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2441,1
    - Dst: igmp_leavegroup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2444,1
    - Dst: lwip_socket_unregister_membership
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2445,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2454,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2465,1
    - Dst: tcp_nagle_disable
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2472,1
    - Dst: tcp_nagle_enable
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2474,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2476,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2481,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2488,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2493,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2498,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2503,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2516,1
    - Dst: netconn_set_ipv6only
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2518,1
    - Dst: netconn_set_ipv6only
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2520,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2522,1
    - Dst: netconn_get_ipv6only
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2523,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2526,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2538,1
    - Dst: NETCONNTYPE_ISUDPLITE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2540,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2540,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2551,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2561,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2565,1
    - Dst: LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2583,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2593,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2598,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2605,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 230
    argCount: 5
    argNames:
    - s
    - level
    - optname
    - optval
    - optlen
    argTypes:
    - int
    - int
    - int
    - void*
    - socklen_t
    constantsTouched: []
    func_position:
      end: 2612
      start: 2287
    functionDepth: 2
    functionLinenumber: 2287
    functionLinenumberEnd: 2612
    functionName: lwip_setsockopt_impl
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 2
    functionsReached:
    - LWIP_SO_SNDRCVTIMEO_GET_MS
    - ip_set_option
    - igmp_joingroup
    - igmp_leavegroup
    - tcp_nagle_disable
    - LWIP_DEBUGF
    - udp_flags
    - netconn_type
    - inet_addr_to_ip4addr
    - netconn_set_recvtimeout
    - netconn_set_sendtimeout
    - netconn_set_recvbufsize
    - udp_setflags
    - udp_set_multicast_ttl
    - tryget_socket
    - LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE
    - udp_set_multicast_netif_addr
    - netconn_set_ipv6only
    - lwip_socket_register_membership
    - netconn_get_ipv6only
    - LWIP_SOCKOPT_CHECK_OPTLEN_CONN
    - ip_reset_option
    - tcp_nagle_enable
    - LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB
    - NETCONNTYPE_ISUDPLITE
    - lwip_socket_unregister_membership
    linkageType: ''
    returnType: u8_t
    signature: lwip_setsockopt_impl(int s, int level, int optname, const void *optval,
      socklen_t optlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2617,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2632,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2636,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2636,1
    - Dst: netconn_recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2647,1
    - Dst: SYS_ARCH_GET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2663,1
    - Dst: NETCONNTYPE_GROUP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2672,1
    - Dst: netconn_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2672,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2681,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2682,1
    - Dst: netconn_set_nonblocking
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2694,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2695,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2696,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2702,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2703,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 3
    argNames:
    - s
    - cmd
    - argp
    argTypes:
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 2705
      start: 2614
    functionDepth: 4
    functionLinenumber: 2614
    functionLinenumberEnd: 2705
    functionName: lwip_ioctl
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - NETCONNTYPE_GROUP
    - netconn_type
    - SYS_ARCH_GET
    - sock_set_errno
    - get_socket
    - netconn_recv
    - netconn_set_nonblocking
    linkageType: ''
    returnType: int
    signature: lwip_ioctl(int s, long cmd, void *argp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2714,1
    - Dst: netconn_is_nonblocking
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2723,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2724,1
    - Dst: netconn_set_nonblocking
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2729,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2731,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2733,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2737,1
    - Dst: sock_set_errno
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2738,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - s
    - cmd
    - val
    argTypes:
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2742
      start: 2711
    functionDepth: 1
    functionLinenumber: 2711
    functionLinenumberEnd: 2742
    functionName: lwip_fcntl
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 1
    functionsReached:
    - LWIP_DEBUGF
    - netconn_is_nonblocking
    - sock_set_errno
    - get_socket
    - netconn_set_nonblocking
    linkageType: ''
    returnType: int
    signature: lwip_fcntl(int s, int cmd, int val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2754,1
    - Dst: ip4_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2764,1
    - Dst: ip4_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2765,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - s
    - if_addr
    - multi_addr
    argTypes:
    - int
    - ip4_addr_t*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 2770
      start: 2751
    functionDepth: 1
    functionLinenumber: 2751
    functionLinenumberEnd: 2770
    functionName: lwip_socket_register_membership
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 1
    functionsReached:
    - ip4_addr_copy
    - get_socket
    linkageType: ''
    returnType: int
    signature: lwip_socket_register_membership(int s, const ip4_addr_t *if_addr, const
      ip4_addr_t *multi_addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2780,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2789,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2790,1
    - Dst: ip4_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2792,1
    - Dst: ip4_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2793,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - s
    - if_addr
    - multi_addr
    argTypes:
    - int
    - ip4_addr_t*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 2797
      start: 2777
    functionDepth: 1
    functionLinenumber: 2777
    functionLinenumberEnd: 2797
    functionName: lwip_socket_unregister_membership
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 1
    functionsReached:
    - ip4_addr_cmp
    - get_socket
    - ip4_addr_set_zero
    linkageType: ''
    returnType: void
    signature: lwip_socket_unregister_membership(int s, const ip4_addr_t *if_addr,
      const ip4_addr_t *multi_addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_socket
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2806,1
    - Dst: ip_addr_copy_from_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2816,1
    - Dst: ip_addr_copy_from_ip4
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2817,1
    - Dst: ip4_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2819,1
    - Dst: ip4_addr_set_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2820,1
    - Dst: netconn_join_leave_group
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c:2822,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2825
      start: 2803
    functionDepth: 3
    functionLinenumber: 2803
    functionLinenumberEnd: 2825
    functionName: lwip_socket_drop_registered_memberships
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
    functionUses: 1
    functionsReached:
    - netconn_join_leave_group
    - ip_addr_copy_from_ip4
    - get_socket
    - ip4_addr_set_zero
    linkageType: ''
    returnType: void
    signature: lwip_socket_drop_registered_memberships(int s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_set_allnodes_linklocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:112,1
    - Dst: struct netif*::mld_mac_filter
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 118
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 118
    functionName: low_level_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c
    functionUses: 0
    functionsReached:
    - ip6_addr_set_allnodes_linklocal
    - struct netif*::mld_mac_filter
    linkageType: ''
    returnType: void
    signature: low_level_init(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:145,1
    - Dst: MIB2_STATS_NETIF_ADD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:157,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:160,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:163,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:168,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - netif
    - p
    argTypes:
    - struct netif*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 174
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 174
    functionName: low_level_output
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c
    functionUses: 0
    functionsReached:
    - MIB2_STATS_NETIF_INC
    - LINK_STATS_INC
    - pbuf_header
    - MIB2_STATS_NETIF_ADD
    linkageType: ''
    returnType: err_t
    signature: low_level_output(struct netif *netif, struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:200,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:205,1
    - Dst: MIB2_STATS_NETIF_ADD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:223,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:226,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:229,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:232,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:235,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:238,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:239,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 244
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 244
    functionName: low_level_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c
    functionUses: 1
    functionsReached:
    - pbuf_alloc
    - pbuf_header
    - LINK_STATS_INC
    - MIB2_STATS_NETIF_ADD
    - MIB2_STATS_NETIF_INC
    linkageType: ''
    returnType: struct pbuf
    signature: '*

      low_level_input(struct netif *netif)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: low_level_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:265,1
    - Dst: struct netif*::input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:269,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:270,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 275
      start: 255
    functionDepth: 4
    functionLinenumber: 255
    functionLinenumberEnd: 275
    functionName: ethernetif_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c
    functionUses: 0
    functionsReached:
    - struct netif*::input
    - LWIP_DEBUGF
    - pbuf_free
    - low_level_input
    linkageType: ''
    returnType: void
    signature: ethernetif_input(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:294,1
    - Dst: mem_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:296,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:298,1
    - Dst: MIB2_INIT_NETIF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:312,1
    - Dst: low_level_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 333
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 333
    functionName: ethernetif_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - low_level_init
    - mem_malloc
    - MIB2_INIT_NETIF
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: ethernetif_init(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dequeue_datagram
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:110,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:111,1
    - Dst: mem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 101
    functionDepth: 4
    functionLinenumber: 101
    functionLinenumberEnd: 116
    functionName: lowpan6_tmr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c
    functionUses: 0
    functionsReached:
    - dequeue_datagram
    - pbuf_free
    - mem_free
    linkageType: ''
    returnType: void
    signature: lowpan6_tmr(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - lrh
    argTypes:
    - struct lowpan6_reass_helper*
    constantsTouched: []
    func_position:
      end: 140
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 140
    functionName: dequeue_datagram
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: err_t
    signature: dequeue_datagram(struct lowpan6_reass_helper *lrh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_netcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ip6addr
    argTypes:
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 154
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 154
    functionName: lowpan6_context_lookup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c
    functionUses: 0
    functionsReached:
    - ip6_addr_netcmp
    linkageType: ''
    returnType: s8_t
    signature: lowpan6_context_lookup(const ip6_addr_t *ip6addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:161,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:162,1
    - Dst: PP_NTOHL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:162,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:163,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:163,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:168,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:169,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:174,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:175,1
    - Dst: PP_NTOHL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:175,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - ip6addr
    - mac_addr
    argTypes:
    - ip6_addr_t*
    - struct ieee_802154_addr*
    constantsTouched: []
    func_position:
      end: 180
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 180
    functionName: lowpan6_get_address_mode
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c
    functionUses: 0
    functionsReached:
    - PP_NTOHL
    - PP_HTONL
    - lwip_ntohl
    linkageType: ''
    returnType: s8_t
    signature: lowpan6_get_address_mode(const ip6_addr_t *ip6addr, const struct ieee_802154_addr
      *mac_addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:186,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:189,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:191,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:191,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:194,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:196,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 1
    argNames:
    - ip6addr
    argTypes:
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 202
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 202
    functionName: lowpan6_get_address_mode_mc
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c
    functionUses: 0
    functionsReached:
    - PP_HTONL
    linkageType: ''
    returnType: s8_t
    signature: lowpan6_get_address_mode_mc(const ip6_addr_t *ip6addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:224,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:226,1
    - Dst: ip_addr_copy_from_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:265,1
    - Dst: ip_addr_copy_from_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:266,1
    - Dst: lowpan6_context_lookup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:278,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:278,1
    - Dst: lowpan6_context_lookup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:285,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:285,1
    - Dst: IP6H_FL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:300,1
    - Dst: IP6H_TC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:303,1
    - Dst: IP6H_TC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:308,1
    - Dst: IP6H_TC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:311,1
    - Dst: IP6H_TC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:315,1
    - Dst: IP6H_FL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:316,1
    - Dst: IP6H_FL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:317,1
    - Dst: IP6H_FL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:318,1
    - Dst: IP6H_TC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:321,1
    - Dst: IP6H_FL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:322,1
    - Dst: IP6H_FL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:323,1
    - Dst: IP6H_FL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:324,1
    - Dst: IP6H_NEXTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:330,1
    - Dst: IP6H_NEXTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:334,1
    - Dst: IP6H_HOPLIM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:338,1
    - Dst: IP6H_HOPLIM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:340,1
    - Dst: IP6H_HOPLIM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:342,1
    - Dst: IP6H_HOPLIM
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:346,1
    - Dst: ip6_addr_islinklocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:351,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:351,1
    - Dst: lowpan6_get_address_mode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:353,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:353,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:356,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:359,1
    - Dst: ip6_addr_isany
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:362,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:362,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:367,1
    - Dst: ip6_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:372,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:372,1
    - Dst: lowpan6_get_address_mode_mc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:377,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:377,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:380,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:384,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:388,1
    - Dst: ip6_addr_islinklocal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:394,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:394,1
    - Dst: lowpan6_get_address_mode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:396,1
    - Dst: ip_2_ip6
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:396,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:399,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:402,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:407,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:412,1
    - Dst: IP6H_NEXTH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:415,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:451,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:465,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:467,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:490,1
    - Dst: MIB2_STATS_NETIF_ADD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:505,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:506,1
    - Dst: struct netif*::linkoutput
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:507,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:522,1
    - Dst: MIB2_STATS_NETIF_ADD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:537,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:538,1
    - Dst: struct netif*::linkoutput
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:539,1
    - Dst: pbuf_copy_partial
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:546,1
    - Dst: MIB2_STATS_NETIF_ADD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:560,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:561,1
    - Dst: struct netif*::linkoutput
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:562,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:565,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 226
    argCount: 4
    argNames:
    - netif
    - p
    - src
    - dst
    argTypes:
    - struct netif*
    - struct pbuf*
    - struct ieee_802154_addr*
    - struct ieee_802154_addr*
    constantsTouched: []
    func_position:
      end: 568
      start: 209
    functionDepth: 4
    functionLinenumber: 209
    functionLinenumberEnd: 568
    functionName: lowpan6_frag
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c
    functionUses: 0
    functionsReached:
    - IP6H_NEXTH
    - lowpan6_get_address_mode_mc
    - LWIP_DEBUGF
    - IP6H_FL
    - IP6H_TC
    - struct netif*::linkoutput
    - pbuf_free
    - MIB2_STATS_NETIF_INC
    - pbuf_copy_partial
    - IP6H_HOPLIM
    - ip6_addr_isany
    - MEMCPY
    - ip_addr_copy_from_ip6
    - pbuf_header
    - ip_2_ip6
    - pbuf_alloc
    - ip6_addr_islinklocal
    - ip6_addr_ismulticast
    - lowpan6_get_address_mode
    - MIB2_STATS_NETIF_ADD
    - lowpan6_context_lookup
    linkageType: ''
    returnType: err_t
    signature: lowpan6_frag(struct netif *netif, struct pbuf *p, const struct ieee_802154_addr
      *src, const struct ieee_802154_addr *dst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - idx
    - context
    argTypes:
    - u8_t
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 580
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 580
    functionName: lowpan6_set_context
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c
    functionUses: 0
    functionsReached:
    - ip6_addr_set
    linkageType: ''
    returnType: err_t
    signature: lowpan6_set_context(u8_t idx, const ip6_addr_t * context)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - addr_high
    - addr_low
    argTypes:
    - u8_t
    - u8_t
    constantsTouched: []
    func_position:
      end: 590
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 590
    functionName: lowpan6_set_short_addr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: err_t
    signature: lowpan6_set_short_addr(u8_t addr_high, u8_t addr_low)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - netif
    - q
    - ipaddr
    argTypes:
    - struct netif*
    - struct pbuf*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 602
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 602
    functionName: lowpan4_output
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: err_t
    signature: lowpan4_output(struct netif *netif, struct pbuf *q, const ip4_addr_t
      *ipaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip6_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:630,1
    - Dst: lowpan6_get_address_mode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:631,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:639,1
    - Dst: ip6_addr_ismulticast
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:643,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:644,1
    - Dst: lowpan6_frag
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:646,1
    - Dst: ip6_addr_netcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:659,1
    - Dst: lowpan6_get_address_mode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:660,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:661,1
    - Dst: lowpan6_frag
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:662,1
    - Dst: nd6_get_next_hop_addr_or_queue
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:668,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:670,1
    - Dst: SMEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:681,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:682,1
    - Dst: lowpan6_frag
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:683,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - netif
    - q
    - ip6addr
    argTypes:
    - struct netif*
    - struct pbuf*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 684
      start: 616
    functionDepth: 6
    functionLinenumber: 616
    functionLinenumberEnd: 684
    functionName: lowpan6_output
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c
    functionUses: 0
    functionsReached:
    - SMEMCPY
    - ip6_addr_set
    - lowpan6_frag
    - nd6_get_next_hop_addr_or_queue
    - ip6_addr_ismulticast
    - lowpan6_get_address_mode
    - MIB2_STATS_NETIF_INC
    - ip6_addr_netcmp
    linkageType: ''
    returnType: err_t
    signature: lowpan6_output(struct netif *netif, struct pbuf *q, const ip6_addr_t
      *ip6addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:697,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:699,1
    - Dst: IP6H_VTCFL_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:713,1
    - Dst: IP6H_VTCFL_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:716,1
    - Dst: IP6H_VTCFL_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:719,1
    - Dst: IP6H_VTCFL_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:722,1
    - Dst: IP6H_NEXTH_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:727,1
    - Dst: IP6H_NEXTH_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:730,1
    - Dst: IP6H_HOPLIM_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:735,1
    - Dst: IP6H_HOPLIM_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:737,1
    - Dst: IP6H_HOPLIM_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:739,1
    - Dst: IP6H_HOPLIM_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:741,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:749,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:752,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:754,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:757,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:759,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:760,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:764,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:767,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:768,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:770,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:772,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:793,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:794,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:803,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:806,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:807,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:811,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:812,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:814,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:815,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:825,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:826,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:832,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:835,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:837,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:838,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:841,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:844,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:847,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:850,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:864,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:865,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:873,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:879,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:882,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:885,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:886,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:890,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:891,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:893,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:894,1
    - Dst: IP6H_NEXTH_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:906,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:911,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:912,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:919,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:920,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:923,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:924,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:927,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:928,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:931,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:932,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:936,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:938,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:943,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:944,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:951,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:952,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:955,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:958,1
    - Dst: IP6H_PLEN_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:961,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 233
    argCount: 3
    argNames:
    - p
    - src
    - dest
    argTypes:
    - struct pbuf*
    - struct ieee_802154_addr*
    - struct ieee_802154_addr*
    constantsTouched: []
    func_position:
      end: 965
      start: 686
    functionDepth: 4
    functionLinenumber: 686
    functionLinenumberEnd: 965
    functionName: lowpan6_decompress
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c
    functionUses: 0
    functionsReached:
    - IP6H_VTCFL_SET
    - pbuf_cat
    - IP6H_PLEN_SET
    - pbuf_alloc
    - IP6H_NEXTH_SET
    - IP6H_HOPLIM_SET
    - MEMCPY
    - PP_HTONL
    - lwip_htons
    - pbuf_header
    - pbuf_free
    - lwip_htonl
    linkageType: ''
    returnType: struct pbuf
    signature: '*

      lowpan6_decompress(struct pbuf * p, struct ieee_802154_addr * src, struct ieee_802154_addr
      * dest)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIB2_STATS_NETIF_ADD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:976,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1009,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1023,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1026,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1028,1
    - Dst: dequeue_datagram
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1033,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1034,1
    - Dst: mem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1035,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1046,1
    - Dst: mem_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1048,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1050,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1051,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1072,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1076,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1084,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1085,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1091,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1094,1
    - Dst: dequeue_datagram
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1096,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1097,1
    - Dst: mem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1098,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1099,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1102,1
    - Dst: dequeue_datagram
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1108,1
    - Dst: mem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1114,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1129,1
    - Dst: lowpan6_decompress
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1132,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1134,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1138,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1139,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1144,1
    - Dst: ip6_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1146,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 128
    argCount: 2
    argNames:
    - p
    - netif
    argTypes:
    - struct pbuf*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1147
      start: 967
    functionDepth: 5
    functionLinenumber: 967
    functionLinenumberEnd: 1147
    functionName: lowpan6_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c
    functionUses: 0
    functionsReached:
    - pbuf_cat
    - memcmp
    - mem_malloc
    - ip6_input
    - mem_free
    - dequeue_datagram
    - lowpan6_decompress
    - pbuf_header
    - MIB2_STATS_NETIF_ADD
    - pbuf_free
    - MIB2_STATS_NETIF_INC
    linkageType: ''
    returnType: err_t
    signature: lowpan6_input(struct pbuf * p, struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIB2_INIT_NETIF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1168
      start: 1149
    functionDepth: 0
    functionLinenumber: 1149
    functionLinenumberEnd: 1168
    functionName: lowpan6_if_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c
    functionUses: 0
    functionsReached:
    - MIB2_INIT_NETIF
    linkageType: ''
    returnType: err_t
    signature: lowpan6_if_init(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pan_id
    argTypes:
    - u16_t
    constantsTouched: []
    func_position:
      end: 1176
      start: 1170
    functionDepth: 0
    functionLinenumber: 1170
    functionLinenumberEnd: 1176
    functionName: lowpan6_set_pan_id
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: err_t
    signature: lowpan6_set_pan_id(u16_t pan_id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tcpip_inpkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - inp
    argTypes:
    - struct pbuf*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 1190
      start: 1186
    functionDepth: 4
    functionLinenumber: 1186
    functionLinenumberEnd: 1190
    functionName: tcpip_6lowpan_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c
    functionUses: 0
    functionsReached:
    - tcpip_inpkt
    linkageType: ''
    returnType: err_t
    signature: tcpip_6lowpan_input(struct pbuf *p, struct netif *inp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:123,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:124,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:125,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:127,1
    - Dst: sio_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:132,1
    - Dst: sio_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:140,1
    - Dst: sio_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:141,1
    - Dst: sio_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:145,1
    - Dst: sio_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:146,1
    - Dst: sio_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:150,1
    - Dst: sio_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:156,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - netif
    - p
    argTypes:
    - struct netif*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 158
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 158
    functionName: slipif_output
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c
    functionUses: 0
    functionsReached:
    - sio_send
    - LWIP_DEBUGF
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: slipif_output(struct netif *netif, struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:174,1
    - Dst: slipif_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - netif
    - p
    - ipaddr
    argTypes:
    - struct netif*
    - struct pbuf*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 176
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 176
    functionName: slipif_output_v4
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - slipif_output
    linkageType: ''
    returnType: err_t
    signature: slipif_output_v4(struct netif *netif, struct pbuf *p, const ip4_addr_t
      *ipaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:193,1
    - Dst: slipif_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - netif
    - p
    - ipaddr
    argTypes:
    - struct netif*
    - struct pbuf*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: slipif_output_v6
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - slipif_output
    linkageType: ''
    returnType: err_t
    signature: slipif_output_v6(struct netif *netif, struct pbuf *p, const ip6_addr_t
      *ipaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:212,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:213,1
    - Dst: pbuf_realloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:224,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:226,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:228,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:264,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:265,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:268,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:269,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:276,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 69
    argCount: 2
    argNames:
    - netif
    - c
    argTypes:
    - struct netif*
    - u8_t
    constantsTouched: []
    func_position:
      end: 302
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 302
    functionName: slipif_rxbyte
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - pbuf_cat
    - pbuf_alloc
    - LINK_STATS_INC
    - pbuf_realloc
    - LWIP_ASSERT
    linkageType: ''
    returnType: struct pbuf
    signature: '*

      slipif_rxbyte(struct netif *netif, u8_t c)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: slipif_rxbyte
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:313,1
    - Dst: struct netif*::input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:315,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - netif
    - c
    argTypes:
    - struct netif*
    - u8_t
    constantsTouched: []
    func_position:
      end: 319
      start: 309
    functionDepth: 4
    functionLinenumber: 309
    functionLinenumberEnd: 319
    functionName: slipif_rxbyte_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c
    functionUses: 0
    functionsReached:
    - struct netif*::input
    - pbuf_free
    - slipif_rxbyte
    linkageType: ''
    returnType: void
    signature: slipif_rxbyte_input(struct netif *netif, u8_t c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sio_read
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:337,1
    - Dst: slipif_rxbyte_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - nf
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 341
      start: 329
    functionDepth: 5
    functionLinenumber: 329
    functionLinenumberEnd: 341
    functionName: slipif_loop_thread
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c
    functionUses: 0
    functionsReached:
    - slipif_rxbyte_input
    - sio_read
    linkageType: ''
    returnType: void
    signature: slipif_loop_thread(void *nf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:366,1
    - Dst: mem_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:369,1
    - Dst: sio_open
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:391,1
    - Dst: mem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:394,1
    - Dst: MIB2_INIT_NETIF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:411,1
    - Dst: SLIP_SIO_SPEED
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:411,1
    - Dst: sys_thread_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:415,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 419
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 419
    functionName: slipif_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c
    functionUses: 0
    functionsReached:
    - LWIP_DEBUGF
    - mem_malloc
    - mem_free
    - sio_open
    - sys_thread_new
    - MIB2_INIT_NETIF
    - SLIP_SIO_SPEED
    linkageType: ''
    returnType: err_t
    signature: slipif_init(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:432,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:433,1
    - Dst: sio_tryread
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:437,1
    - Dst: slipif_rxbyte_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 440
      start: 426
    functionDepth: 5
    functionLinenumber: 426
    functionLinenumberEnd: 440
    functionName: slipif_poll
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c
    functionUses: 0
    functionsReached:
    - slipif_rxbyte_input
    - sio_tryread
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: slipif_poll(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYS_ARCH_DECL_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:452,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:454,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:455,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:459,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:473,1
    - Dst: struct netif*::input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:474,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:475,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 479
      start: 448
    functionDepth: 4
    functionLinenumber: 448
    functionLinenumberEnd: 479
    functionName: slipif_process_rxqueue
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c
    functionUses: 0
    functionsReached:
    - struct netif*::input
    - SYS_ARCH_UNPROTECT
    - SYS_ARCH_PROTECT
    - pbuf_free
    - SYS_ARCH_DECL_PROTECT
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: slipif_process_rxqueue(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SYS_ARCH_DECL_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:491,1
    - Dst: slipif_rxbyte
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:493,1
    - Dst: SYS_ARCH_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:495,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:506,1
    - Dst: SYS_ARCH_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:512,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - netif
    - data
    argTypes:
    - struct netif*
    - u8_t
    constantsTouched: []
    func_position:
      end: 514
      start: 486
    functionDepth: 4
    functionLinenumber: 486
    functionLinenumberEnd: 514
    functionName: slipif_rxbyte_enqueue
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c
    functionUses: 0
    functionsReached:
    - SYS_ARCH_UNPROTECT
    - SYS_ARCH_PROTECT
    - pbuf_free
    - SYS_ARCH_DECL_PROTECT
    - slipif_rxbyte
    linkageType: ''
    returnType: void
    signature: slipif_rxbyte_enqueue(struct netif *netif, u8_t data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:528,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:529,1
    - Dst: slipif_rxbyte_enqueue
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - netif
    - data
    argTypes:
    - struct netif*
    - u8_t
    constantsTouched: []
    func_position:
      end: 531
      start: 525
    functionDepth: 5
    functionLinenumber: 525
    functionLinenumberEnd: 531
    functionName: slipif_received_byte
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c
    functionUses: 0
    functionsReached:
    - slipif_rxbyte_enqueue
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: slipif_received_byte(struct netif *netif, u8_t data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:548,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:549,1
    - Dst: slipif_rxbyte_enqueue
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c:552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - netif
    - data
    - len
    argTypes:
    - struct netif*
    - u8_t*
    - u8_t
    constantsTouched: []
    func_position:
      end: 554
      start: 543
    functionDepth: 5
    functionLinenumber: 543
    functionLinenumberEnd: 554
    functionName: slipif_received_bytes
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c
    functionUses: 0
    functionsReached:
    - slipif_rxbyte_enqueue
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: slipif_received_bytes(struct netif *netif, u8_t *data, u8_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernet.c:269,1
    - Dst: LWIP_HOOK_VLAN_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernet.c:272,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernet.c:276,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernet.c:278,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernet.c:283,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernet.c:285,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernet.c:289,1
    - Dst: ETHADDR32_COPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernet.c:296,1
    - Dst: ETHADDR16_COPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernet.c:297,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernet.c:299,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernet.c:301,1
    - Dst: struct netif*::linkoutput
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernet.c:305,1
    - Dst: LWIP_DEBUGF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernet.c:308,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernet.c:310,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 5
    argNames:
    - netif
    - p
    - src
    - dst
    - eth_type
    argTypes:
    - struct netif*
    - struct pbuf*
    - struct eth_addr*
    - struct eth_addr*
    - u16_t
    constantsTouched: []
    func_position:
      end: 312
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 312
    functionName: ethernet_output
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernet.c
    functionUses: 4
    functionsReached:
    - ETHADDR16_COPY
    - LWIP_DEBUGF
    - struct netif*::linkoutput
    - lwip_htons
    - ETHADDR32_COPY
    - pbuf_header
    - LINK_STATS_INC
    - LWIP_HOOK_VLAN_SET
    - PP_HTONS
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: "ethernet_output(struct netif* netif, struct pbuf* p,\n                const
      struct eth_addr* src, const struct eth_addr* dst,\n                u16_t eth_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_md5_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:104,1
    - Dst: lwip_md5_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:105,1
    - Dst: lwip_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:106,1
    - Dst: lwip_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:108,1
    - Dst: sys_jiffies
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:117,1
    - Dst: LWIP_RAND
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:120,1
    - Dst: lwip_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:123,1
    - Dst: lwip_md5_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:125,1
    - Dst: lwip_md5_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - rand_data
    - rand_len
    argTypes:
    - char*
    - u32_t
    constantsTouched: []
    func_position:
      end: 128
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 128
    functionName: magic_churnrand
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c
    functionUses: 0
    functionsReached:
    - lwip_md5_init
    - LWIP_RAND
    - lwip_md5_finish
    - sys_jiffies
    - lwip_md5_free
    - lwip_md5_update
    - lwip_md5_starts
    linkageType: ''
    returnType: void
    signature: magic_churnrand(char *rand_data, u32_t rand_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: magic_churnrand
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: magic_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c
    functionUses: 0
    functionsReached:
    - magic_churnrand
    linkageType: ''
    returnType: void
    signature: magic_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: magic_churnrand
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: magic_randomize
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c
    functionUses: 0
    functionsReached:
    - magic_churnrand
    linkageType: ''
    returnType: void
    signature: magic_randomize(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_md5_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:168,1
    - Dst: lwip_md5_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:169,1
    - Dst: lwip_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:170,1
    - Dst: lwip_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:171,1
    - Dst: lwip_md5_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:172,1
    - Dst: lwip_md5_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:173,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:175,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - buf_len
    argTypes:
    - unsigned char*
    - u32_t
    constantsTouched: []
    func_position:
      end: 180
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 180
    functionName: magic_random_bytes
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c
    functionUses: 0
    functionsReached:
    - lwip_md5_init
    - lwip_md5_finish
    - lwip_md5_free
    - lwip_md5_update
    - MEMCPY
    - lwip_md5_starts
    - LWIP_MIN
    linkageType: ''
    returnType: void
    signature: magic_random_bytes(unsigned char *buf, u32_t buf_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: magic_random_bytes
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: magic
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c
    functionUses: 0
    functionsReached:
    - magic_random_bytes
    linkageType: ''
    returnType: u32_t
    signature: magic(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sys_jiffies
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:223,1
    - Dst: srand
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 228
    functionName: magic_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c
    functionUses: 0
    functionsReached:
    - sys_jiffies
    - srand
    linkageType: ''
    returnType: void
    signature: magic_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_RAND
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:265,1
    - Dst: rand
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:267,1
    - Dst: rand
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 269
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 269
    functionName: magic
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c
    functionUses: 0
    functionsReached:
    - rand
    - LWIP_RAND
    linkageType: ''
    returnType: u32_t
    signature: magic(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: magic
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:278,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:279,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - buf_len
    argTypes:
    - unsigned char*
    - u32_t
    constantsTouched: []
    func_position:
      end: 284
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 284
    functionName: magic_random_bytes
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c
    functionUses: 1
    functionsReached:
    - MEMCPY
    - LWIP_MIN
    - magic
    linkageType: ''
    returnType: void
    signature: magic_random_bytes(unsigned char *buf, u32_t buf_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: magic
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pow
    argTypes:
    - u8_t
    constantsTouched: []
    func_position:
      end: 292
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 292
    functionName: magic_pow
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c
    functionUses: 0
    functionsReached:
    - magic
    linkageType: ''
    returnType: u32_t
    signature: magic_pow(u8_t pow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eui64.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - e
    argTypes:
    - eui64_t
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: eui64_ntoa
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eui64.c
    functionUses: 0
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: char
    signature: '*eui64_ntoa(eui64_t e)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - opt
    argTypes:
    - ccp_options*
    constantsTouched: []
    func_position:
      end: 263
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 263
    functionName: ccp_anycompress
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ccp_anycompress(ccp_options *opt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:374,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:377,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:378,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:379,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 404
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 404
    functionName: ccp_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
    functionUses: 0
    functionsReached:
    - fsm_init
    - memset
    linkageType: ''
    returnType: void
    signature: ccp_init(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ccp_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:414,1
    - Dst: ccp_resetci
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:420,1
    - Dst: ccp_anycompress
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:421,1
    - Dst: fsm_open
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 425
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 425
    functionName: ccp_open
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
    functionUses: 0
    functionsReached:
    - fsm_open
    - ccp_set
    - ccp_resetci
    - ccp_anycompress
    linkageType: ''
    returnType: void
    signature: ccp_open(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ccp_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:432,1
    - Dst: fsm_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pcb
    - reason
    argTypes:
    - ppp_pcb*
    - char*
    constantsTouched: []
    func_position:
      end: 434
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 434
    functionName: ccp_close
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
    functionUses: 0
    functionsReached:
    - ccp_set
    - fsm_close
    linkageType: ''
    returnType: void
    signature: ccp_close(ppp_pcb *pcb, const char *reason)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_lowerup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 442
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 442
    functionName: ccp_lowerup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
    functionUses: 0
    functionsReached:
    - fsm_lowerup
    linkageType: ''
    returnType: void
    signature: ccp_lowerup(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_lowerdown
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 450
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 450
    functionName: ccp_lowerdown
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
    functionUses: 0
    functionsReached:
    - fsm_lowerdown
    linkageType: ''
    returnType: void
    signature: ccp_lowerdown(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:464,1
    - Dst: ppp_notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:466,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:469,1
    - Dst: lcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:470,1
    - Dst: ccp_anycompress
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:480,1
    - Dst: ccp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:481,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - pcb
    - p
    - len
    argTypes:
    - ppp_pcb*
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 482
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 482
    functionName: ccp_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
    functionUses: 0
    functionsReached:
    - lcp_close
    - ppp_error
    - ccp_anycompress
    - fsm_input
    - ppp_notice
    - ccp_close
    linkageType: ''
    returnType: void
    signature: ccp_input(ppp_pcb *pcb, u_char *p, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:489,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:490,1
    - Dst: ccp_reset_comp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:496,1
    - Dst: fsm_sdata
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:499,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:505,1
    - Dst: ccp_reset_decomp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:506,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - f
    - code
    - id
    - p
    - len
    argTypes:
    - fsm*
    - int
    - int
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 515
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 515
    functionName: ccp_extcode
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
    functionUses: 0
    functionsReached:
    - UNTIMEOUT
    - fsm_sdata
    - ccp_reset_decomp
    - LWIP_UNUSED_ARG
    - ccp_reset_comp
    linkageType: ''
    returnType: int
    signature: ccp_extcode(fsm *f, int code, int id, u_char *p, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ccp_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:526,1
    - Dst: fsm_lowerdown
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:527,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:531,1
    - Dst: lcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 536
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 536
    functionName: ccp_protrej
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
    functionUses: 0
    functionsReached:
    - fsm_lowerdown
    - ccp_set
    - lcp_close
    - ppp_error
    linkageType: ''
    returnType: void
    signature: ccp_protrej(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:592,1
    - Dst: lcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:593,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:597,1
    - Dst: lcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:598,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:604,1
    - Dst: lcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:606,1
    - Dst: ppp_notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:614,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:623,1
    - Dst: lcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:624,1
    - Dst: BSD_MAKE_OPT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:660,1
    - Dst: ccp_test
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:661,1
    - Dst: DEFLATE_MAKE_OPT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:686,1
    - Dst: ccp_test
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:687,1
    - Dst: DEFLATE_MAKE_OPT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:706,1
    - Dst: ccp_test
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:707,1
    - Dst: ccp_test
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:728,1
    - Dst: ccp_test
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:734,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 125
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 738
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 738
    functionName: ccp_resetci
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
    functionUses: 1
    functionsReached:
    - lcp_close
    - ppp_error
    - DEFLATE_MAKE_OPT
    - BSD_MAKE_OPT
    - ccp_test
    - ppp_notice
    linkageType: ''
    returnType: void
    signature: ccp_resetci(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 763
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 763
    functionName: ccp_cilen
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ccp_cilen(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MPPE_OPTS_TO_CI
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:781,1
    - Dst: mppe_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:782,1
    - Dst: DEFLATE_MAKE_OPT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:791,1
    - Dst: BSD_MAKE_OPT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:808,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 3
    argNames:
    - f
    - p
    - lenp
    argTypes:
    - fsm*
    - u_char*
    - int*
    constantsTouched: []
    func_position:
      end: 829
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 829
    functionName: ccp_addci
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
    functionUses: 0
    functionsReached:
    - BSD_MAKE_OPT
    - MPPE_OPTS_TO_CI
    - mppe_init
    - DEFLATE_MAKE_OPT
    linkageType: ''
    returnType: void
    signature: ccp_addci(fsm *f, u_char *p, int *lenp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MPPE_OPTS_TO_CI
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:848,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:849,1
    - Dst: DEFLATE_MAKE_OPT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:863,1
    - Dst: DEFLATE_MAKE_OPT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:875,1
    - Dst: BSD_MAKE_OPT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:887,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 53
    argCount: 3
    argNames:
    - f
    - p
    - len
    argTypes:
    - fsm*
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 922
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 922
    functionName: ccp_ackci
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
    functionUses: 0
    functionsReached:
    - BSD_MAKE_OPT
    - MPPE_OPTS_TO_CI
    - memcmp
    - DEFLATE_MAKE_OPT
    linkageType: ''
    returnType: int
    signature: ccp_ackci(fsm *f, u_char *p, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:933,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:935,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:936,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:939,1
    - Dst: MPPE_CI_TO_OPTS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:950,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:952,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:960,1
    - Dst: lcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:961,1
    - Dst: DEFLATE_METHOD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:974,1
    - Dst: DEFLATE_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:975,1
    - Dst: DEFLATE_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:978,1
    - Dst: DEFLATE_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:979,1
    - Dst: BSD_VERSION
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:998,1
    - Dst: BSD_NBITS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1000,1
    - Dst: BSD_NBITS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1001,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 46
    argCount: 4
    argNames:
    - f
    - p
    - len
    - treat_as_reject
    argTypes:
    - fsm*
    - u_char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1016
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 1016
    functionName: ccp_nakci
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
    functionUses: 0
    functionsReached:
    - lcp_close
    - ppp_error
    - MPPE_CI_TO_OPTS
    - BSD_NBITS
    - memset
    - DEFLATE_METHOD
    - BSD_VERSION
    - LWIP_UNUSED_ARG
    - DEFLATE_SIZE
    linkageType: ''
    returnType: int
    signature: ccp_nakci(fsm *f, u_char *p, int len, int treat_as_reject)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1038,1
    - Dst: lcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1039,1
    - Dst: DEFLATE_MAKE_OPT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1047,1
    - Dst: DEFLATE_MAKE_OPT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1056,1
    - Dst: BSD_MAKE_OPT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1069,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 48
    argCount: 3
    argNames:
    - f
    - p
    - len
    argTypes:
    - fsm*
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 1098
      start: 1021
    functionDepth: 1
    functionLinenumber: 1021
    functionLinenumberEnd: 1098
    functionName: ccp_rejci
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
    functionUses: 0
    functionsReached:
    - BSD_MAKE_OPT
    - DEFLATE_MAKE_OPT
    - lcp_close
    - ppp_error
    linkageType: ''
    returnType: int
    signature: ccp_rejci(fsm *f, u_char *p, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1125,1
    - Dst: MPPE_CI_TO_OPTS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1146,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1167,1
    - Dst: MPPE_OPTS_TO_CI
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1206,1
    - Dst: mppe_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1210,1
    - Dst: netif_get_mtu
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1216,1
    - Dst: netif_set_mtu
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1218,1
    - Dst: DEFLATE_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1242,1
    - Dst: DEFLATE_METHOD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1243,1
    - Dst: DEFLATE_MAKE_OPT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1248,1
    - Dst: ccp_test
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1263,1
    - Dst: DEFLATE_MAKE_OPT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1268,1
    - Dst: DEFLATE_MAKE_OPT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1273,1
    - Dst: BSD_NBITS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1286,1
    - Dst: BSD_VERSION
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1287,1
    - Dst: BSD_MAKE_OPT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1291,1
    - Dst: ccp_test
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1305,1
    - Dst: BSD_MAKE_OPT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1310,1
    - Dst: BSD_MAKE_OPT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1316,1
    - Dst: ccp_test
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1330,1
    - Dst: ccp_test
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1343,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1362,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1378,1
    - Dst: lcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1379,1
    CyclomaticComplexity: 93
    EdgeCount: 93
    ICount: 180
    argCount: 4
    argNames:
    - f
    - p
    - lenp
    - dont_nak
    argTypes:
    - fsm*
    - u_char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 1383
      start: 1105
    functionDepth: 1
    functionLinenumber: 1105
    functionLinenumberEnd: 1383
    functionName: ccp_reqci
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
    functionUses: 0
    functionsReached:
    - mppe_init
    - lcp_close
    - ppp_error
    - MPPE_CI_TO_OPTS
    - DEFLATE_MAKE_OPT
    - memset
    - BSD_NBITS
    - MEMCPY
    - MPPE_OPTS_TO_CI
    - BSD_MAKE_OPT
    - ccp_test
    - BSD_VERSION
    - netif_set_mtu
    - netif_get_mtu
    - DEFLATE_METHOD
    - DEFLATE_SIZE
    linkageType: ''
    returnType: int
    signature: ccp_reqci(fsm *f, u_char *p, int *lenp, int dont_nak)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1391,1
    - Dst: ccp_anycompress
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1394,1
    - Dst: ppp_slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1403,1
    - Dst: ppp_slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1406,1
    - Dst: ppp_slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1410,1
    - Dst: ppp_slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1414,1
    - Dst: ppp_slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1416,1
    - Dst: ppp_slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1425,1
    - Dst: ppp_slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1429,1
    - Dst: ppp_slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1437,1
    - Dst: ppp_slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1440,1
    - Dst: ppp_slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1451,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - opt
    - opt2
    argTypes:
    - ccp_options*
    - ccp_options*
    constantsTouched: []
    func_position:
      end: 1454
      start: 1388
    functionDepth: 1
    functionLinenumber: 1388
    functionLinenumberEnd: 1454
    functionName: method_name
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - ppp_slprintf
    - ccp_anycompress
    linkageType: ''
    returnType: char
    signature: '*method_name(ccp_options *opt, ccp_options *opt2)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ccp_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1465,1
    - Dst: ccp_anycompress
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1466,1
    - Dst: ccp_anycompress
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1467,1
    - Dst: ppp_notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1469,1
    - Dst: method_name
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1469,1
    - Dst: ppp_strlcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1471,1
    - Dst: method_name
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1471,1
    - Dst: ppp_notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1472,1
    - Dst: method_name
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1473,1
    - Dst: ppp_notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1476,1
    - Dst: method_name
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1476,1
    - Dst: ccp_anycompress
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1477,1
    - Dst: ppp_notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1478,1
    - Dst: method_name
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1478,1
    - Dst: continue_networks
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1481,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 1484
      start: 1459
    functionDepth: 2
    functionLinenumber: 1459
    functionLinenumberEnd: 1484
    functionName: ccp_up
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
    functionUses: 0
    functionsReached:
    - method_name
    - ccp_anycompress
    - ppp_strlcpy
    - ppp_notice
    - ccp_set
    - continue_networks
    linkageType: ''
    returnType: void
    signature: ccp_up(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1496,1
    - Dst: ccp_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1498,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1504,1
    - Dst: lcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1505,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 1509
      start: 1489
    functionDepth: 1
    functionLinenumber: 1489
    functionLinenumberEnd: 1509
    functionName: ccp_down
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
    functionUses: 0
    functionsReached:
    - UNTIMEOUT
    - ccp_set
    - lcp_close
    - ppp_error
    linkageType: ''
    returnType: void
    signature: ccp_down(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1536,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1537,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1539,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1540,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1555,1
    - Dst: MPPE_CI_TO_OPTS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1564,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1565,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1574,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1584,1
    - Dst: DEFLATE_SIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1586,1
    - Dst: DEFLATE_METHOD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1587,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1588,1
    - Dst: DEFLATE_METHOD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1588,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1590,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1598,1
    - Dst: BSD_VERSION
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1598,1
    - Dst: BSD_NBITS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1599,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1607,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1613,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1622,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1623,1
    - Dst: ppp_print_string
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1630,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1641,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 89
    argCount: 3
    argNames:
    - p
    - plen
    - arg
    argTypes:
    - u_char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1644
      start: 1522
    functionDepth: 1
    functionLinenumber: 1522
    functionLinenumberEnd: 1644
    functionName: ccp_printpkt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
    functionUses: 0
    functionsReached:
    - LWIP_ARRAYSIZE
    - MPPE_CI_TO_OPTS
    - printer
    - BSD_NBITS
    - ppp_print_string
    - BSD_VERSION
    - DEFLATE_METHOD
    - DEFLATE_SIZE
    linkageType: ''
    returnType: int
    signature: ccp_printpkt(const u_char *p, int plen, void (*printer) (void *, const
      char *, ...), void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1665,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1666,1
    - Dst: ccp_fatal_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1670,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1674,1
    - Dst: ccp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1675,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1681,1
    - Dst: lcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1682,1
    - Dst: fsm_sdata
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1692,1
    - Dst: TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1693,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - pcb
    - pkt
    - len
    argTypes:
    - ppp_pcb*
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 1699
      start: 1660
    functionDepth: 2
    functionLinenumber: 1660
    functionLinenumberEnd: 1699
    functionName: ccp_datainput
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
    functionUses: 0
    functionsReached:
    - lcp_close
    - ppp_error
    - ccp_fatal_error
    - fsm_sdata
    - TIMEOUT
    - LWIP_UNUSED_ARG
    - ccp_close
    linkageType: ''
    returnType: void
    signature: ccp_datainput(ppp_pcb *pcb, u_char *pkt, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_sdata
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1718,1
    - Dst: TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 1723
      start: 1706
    functionDepth: 1
    functionLinenumber: 1706
    functionLinenumberEnd: 1723
    functionName: ccp_resetrequest
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
    functionUses: 0
    functionsReached:
    - TIMEOUT
    - fsm_sdata
    linkageType: ''
    returnType: void
    signature: ccp_resetrequest(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_sdata
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1733,1
    - Dst: TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c:1734,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1738
      start: 1728
    functionDepth: 1
    functionLinenumber: 1728
    functionLinenumberEnd: 1738
    functionName: ccp_rack_timeout
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
    functionUses: 0
    functionsReached:
    - TIMEOUT
    - fsm_sdata
    linkageType: ''
    returnType: void
    signature: ccp_rack_timeout(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_set_default
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct tcpip_api_call_data*
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: pppapi_do_ppp_set_default
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c
    functionUses: 0
    functionsReached:
    - ppp_set_default
    linkageType: ''
    returnType: err_t
    signature: pppapi_do_ppp_set_default(struct tcpip_api_call_data *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPAPI_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:76,1
    - Dst: PPPAPI_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:77,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:79,1
    - Dst: tcpip_api_call
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:80,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:80,1
    - Dst: PPPAPI_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: pppapi_set_default
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c
    functionUses: 0
    functionsReached:
    - PPPAPI_VAR_DECLARE
    - tcpip_api_call
    - PPPAPI_VAR_REF
    - PPPAPI_VAR_ALLOC
    - PPPAPI_VAR_FREE
    linkageType: ''
    returnType: err_t
    signature: pppapi_set_default(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_set_notify_phase_callback
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct tcpip_api_call_data*
    constantsTouched: []
    func_position:
      end: 99
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 99
    functionName: pppapi_do_ppp_set_notify_phase_callback
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c
    functionUses: 0
    functionsReached:
    - ppp_set_notify_phase_callback
    linkageType: ''
    returnType: err_t
    signature: pppapi_do_ppp_set_notify_phase_callback(struct tcpip_api_call_data
      *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPAPI_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:109,1
    - Dst: PPPAPI_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:110,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:112,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:113,1
    - Dst: tcpip_api_call
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:114,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:114,1
    - Dst: PPPAPI_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - pcb
    - notify_phase_cb
    argTypes:
    - ppp_pcb*
    - ppp_notify_phase_cb_fn
    constantsTouched: []
    func_position:
      end: 117
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 117
    functionName: pppapi_set_notify_phase_callback
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c
    functionUses: 0
    functionsReached:
    - PPPAPI_VAR_DECLARE
    - tcpip_api_call
    - PPPAPI_VAR_REF
    - PPPAPI_VAR_ALLOC
    - PPPAPI_VAR_FREE
    linkageType: ''
    returnType: err_t
    signature: pppapi_set_notify_phase_callback(ppp_pcb *pcb, ppp_notify_phase_cb_fn
      notify_phase_cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pppos_create
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct tcpip_api_call_data*
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: pppapi_do_pppos_create
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c
    functionUses: 0
    functionsReached:
    - pppos_create
    linkageType: ''
    returnType: err_t
    signature: pppapi_do_pppos_create(struct tcpip_api_call_data *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPAPI_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:146,1
    - Dst: PPPAPI_VAR_ALLOC_RETURN_NULL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:147,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:149,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:150,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:151,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:152,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:153,1
    - Dst: tcpip_api_call
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:154,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:154,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:155,1
    - Dst: PPPAPI_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - pppif
    - output_cb
    - link_status_cb
    - ctx_cb
    argTypes:
    - struct netif*
    - pppos_output_cb_fn
    - ppp_link_status_cb_fn
    - void*
    constantsTouched: []
    func_position:
      end: 158
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 158
    functionName: pppapi_pppos_create
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c
    functionUses: 0
    functionsReached:
    - PPPAPI_VAR_DECLARE
    - tcpip_api_call
    - PPPAPI_VAR_REF
    - PPPAPI_VAR_ALLOC_RETURN_NULL
    - PPPAPI_VAR_FREE
    linkageType: ''
    returnType: ppp_pcb
    signature: "*\npppapi_pppos_create(struct netif *pppif, pppos_output_cb_fn output_cb,\n
      \              ppp_link_status_cb_fn link_status_cb, void *ctx_cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pppoe_create
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct tcpip_api_call_data*
    constantsTouched: []
    func_position:
      end: 177
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 177
    functionName: pppapi_do_pppoe_create
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c
    functionUses: 0
    functionsReached:
    - pppoe_create
    linkageType: ''
    returnType: err_t
    signature: pppapi_do_pppoe_create(struct tcpip_api_call_data *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPAPI_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:189,1
    - Dst: PPPAPI_VAR_ALLOC_RETURN_NULL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:190,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:192,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:193,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:194,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:195,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:196,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:197,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:198,1
    - Dst: tcpip_api_call
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:199,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:199,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:200,1
    - Dst: PPPAPI_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 6
    argNames:
    - pppif
    - ethif
    - service_name
    - concentrator_name
    - link_status_cb
    - ctx_cb
    argTypes:
    - struct netif*
    - struct netif*
    - char*
    - char*
    - ppp_link_status_cb_fn
    - void*
    constantsTouched: []
    func_position:
      end: 203
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 203
    functionName: pppapi_pppoe_create
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c
    functionUses: 0
    functionsReached:
    - PPPAPI_VAR_DECLARE
    - tcpip_api_call
    - PPPAPI_VAR_REF
    - PPPAPI_VAR_ALLOC_RETURN_NULL
    - PPPAPI_VAR_FREE
    linkageType: ''
    returnType: ppp_pcb
    signature: "*\npppapi_pppoe_create(struct netif *pppif, struct netif *ethif, const
      char *service_name,\n                            const char *concentrator_name,
      ppp_link_status_cb_fn link_status_cb,\n                            void *ctx_cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pppol2tp_create
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:218,1
    - Dst: API_EXPR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct tcpip_api_call_data*
    constantsTouched: []
    func_position:
      end: 229
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 229
    functionName: pppapi_do_pppol2tp_create
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c
    functionUses: 0
    functionsReached:
    - pppol2tp_create
    - API_EXPR_REF
    linkageType: ''
    returnType: err_t
    signature: pppapi_do_pppol2tp_create(struct tcpip_api_call_data *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPAPI_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:241,1
    - Dst: PPPAPI_VAR_ALLOC_RETURN_NULL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:242,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:244,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:245,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:248,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:249,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:250,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:251,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:251,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:252,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:254,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:255,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:257,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:258,1
    - Dst: tcpip_api_call
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:259,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:259,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:260,1
    - Dst: PPPAPI_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 8
    argNames:
    - pppif
    - netif
    - ipaddr
    - port
    - secret
    - secret_len
    - link_status_cb
    - ctx_cb
    argTypes:
    - struct netif*
    - struct netif*
    - ip_addr_t*
    - u16_t
    - u8_t*
    - u8_t
    - ppp_link_status_cb_fn
    - void*
    constantsTouched: []
    func_position:
      end: 263
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 263
    functionName: pppapi_pppol2tp_create
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c
    functionUses: 0
    functionsReached:
    - PPPAPI_VAR_DECLARE
    - tcpip_api_call
    - PPPAPI_VAR_REF
    - PPPAPI_VAR_ALLOC_RETURN_NULL
    - LWIP_UNUSED_ARG
    - PPPAPI_VAR_FREE
    linkageType: ''
    returnType: ppp_pcb
    signature: "*\npppapi_pppol2tp_create(struct netif *pppif, struct netif *netif,
      ip_addr_t *ipaddr, u16_t port,\n                        const u8_t *secret,
      u8_t secret_len,\n                        ppp_link_status_cb_fn link_status_cb,
      void *ctx_cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_connect
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct tcpip_api_call_data*
    constantsTouched: []
    func_position:
      end: 278
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 278
    functionName: pppapi_do_ppp_connect
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c
    functionUses: 0
    functionsReached:
    - ppp_connect
    linkageType: ''
    returnType: err_t
    signature: pppapi_do_ppp_connect(struct tcpip_api_call_data *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPAPI_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:288,1
    - Dst: PPPAPI_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:289,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:291,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:292,1
    - Dst: tcpip_api_call
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:293,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:293,1
    - Dst: PPPAPI_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - pcb
    - holdoff
    argTypes:
    - ppp_pcb*
    - u16_t
    constantsTouched: []
    func_position:
      end: 296
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 296
    functionName: pppapi_connect
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c
    functionUses: 0
    functionsReached:
    - PPPAPI_VAR_DECLARE
    - tcpip_api_call
    - PPPAPI_VAR_REF
    - PPPAPI_VAR_ALLOC
    - PPPAPI_VAR_FREE
    linkageType: ''
    returnType: err_t
    signature: pppapi_connect(ppp_pcb *pcb, u16_t holdoff)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_listen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct tcpip_api_call_data*
    constantsTouched: []
    func_position:
      end: 311
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 311
    functionName: pppapi_do_ppp_listen
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c
    functionUses: 0
    functionsReached:
    - ppp_listen
    linkageType: ''
    returnType: err_t
    signature: pppapi_do_ppp_listen(struct tcpip_api_call_data *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPAPI_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:321,1
    - Dst: PPPAPI_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:322,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:324,1
    - Dst: tcpip_api_call
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:325,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:325,1
    - Dst: PPPAPI_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 328
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 328
    functionName: pppapi_listen
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c
    functionUses: 0
    functionsReached:
    - PPPAPI_VAR_DECLARE
    - tcpip_api_call
    - PPPAPI_VAR_REF
    - PPPAPI_VAR_ALLOC
    - PPPAPI_VAR_FREE
    linkageType: ''
    returnType: err_t
    signature: pppapi_listen(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct tcpip_api_call_data*
    constantsTouched: []
    func_position:
      end: 343
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 343
    functionName: pppapi_do_ppp_close
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c
    functionUses: 0
    functionsReached:
    - ppp_close
    linkageType: ''
    returnType: err_t
    signature: pppapi_do_ppp_close(struct tcpip_api_call_data *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPAPI_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:353,1
    - Dst: PPPAPI_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:354,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:356,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:357,1
    - Dst: tcpip_api_call
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:358,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:358,1
    - Dst: PPPAPI_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - pcb
    - nocarrier
    argTypes:
    - ppp_pcb*
    - u8_t
    constantsTouched: []
    func_position:
      end: 361
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 361
    functionName: pppapi_close
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c
    functionUses: 0
    functionsReached:
    - PPPAPI_VAR_DECLARE
    - tcpip_api_call
    - PPPAPI_VAR_REF
    - PPPAPI_VAR_ALLOC
    - PPPAPI_VAR_FREE
    linkageType: ''
    returnType: err_t
    signature: pppapi_close(ppp_pcb *pcb, u8_t nocarrier)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct tcpip_api_call_data*
    constantsTouched: []
    func_position:
      end: 375
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 375
    functionName: pppapi_do_ppp_free
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c
    functionUses: 0
    functionsReached:
    - ppp_free
    linkageType: ''
    returnType: err_t
    signature: pppapi_do_ppp_free(struct tcpip_api_call_data *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPAPI_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:385,1
    - Dst: PPPAPI_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:386,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:388,1
    - Dst: tcpip_api_call
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:389,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:389,1
    - Dst: PPPAPI_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 392
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 392
    functionName: pppapi_free
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c
    functionUses: 0
    functionsReached:
    - PPPAPI_VAR_DECLARE
    - tcpip_api_call
    - PPPAPI_VAR_REF
    - PPPAPI_VAR_ALLOC
    - PPPAPI_VAR_FREE
    linkageType: ''
    returnType: err_t
    signature: pppapi_free(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_ioctl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct tcpip_api_call_data*
    constantsTouched: []
    func_position:
      end: 406
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 406
    functionName: pppapi_do_ppp_ioctl
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c
    functionUses: 0
    functionsReached:
    - ppp_ioctl
    linkageType: ''
    returnType: err_t
    signature: pppapi_do_ppp_ioctl(struct tcpip_api_call_data *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPAPI_VAR_DECLARE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:416,1
    - Dst: PPPAPI_VAR_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:417,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:419,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:420,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:421,1
    - Dst: tcpip_api_call
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:422,1
    - Dst: PPPAPI_VAR_REF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:422,1
    - Dst: PPPAPI_VAR_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - pcb
    - cmd
    - arg
    argTypes:
    - ppp_pcb*
    - u8_t
    - void*
    constantsTouched: []
    func_position:
      end: 425
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 425
    functionName: pppapi_ioctl
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c
    functionUses: 0
    functionsReached:
    - PPPAPI_VAR_DECLARE
    - tcpip_api_call
    - PPPAPI_VAR_REF
    - PPPAPI_VAR_ALLOC
    - PPPAPI_VAR_FREE
    linkageType: ''
    returnType: err_t
    signature: pppapi_ioctl(ppp_pcb *pcb, u8_t cmd, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_default_epdisc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 112
    functionName: mp_check_options
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c
    functionUses: 0
    functionsReached:
    - get_default_epdisc
    linkageType: ''
    returnType: void
    signature: mp_check_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:132,1
    - Dst: lcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:133,1
    - Dst: notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:144,1
    - Dst: cfg_bundle
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:150,1
    - Dst: netif_set_mtu
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:151,1
    - Dst: make_new_bundle
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:154,1
    - Dst: set_ifunit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:155,1
    - Dst: netif_set_mtu
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:156,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:168,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:172,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:173,1
    - Dst: novm
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:175,1
    - Dst: slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:178,1
    - Dst: slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:182,1
    - Dst: epdisc_to_str
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:183,1
    - Dst: slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:185,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:189,1
    - Dst: novm
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:191,1
    - Dst: slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:192,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:198,1
    - Dst: cfg_bundle
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:200,1
    - Dst: netif_set_mtu
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:201,1
    - Dst: script_setenv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:202,1
    - Dst: lock_db
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:210,1
    - Dst: tdb_fetch
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:213,1
    - Dst: tdb_fetch
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:216,1
    - Dst: parse_num
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:221,1
    - Dst: parse_num
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:223,1
    - Dst: process_exists
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:224,1
    - Dst: owns_unit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:225,1
    - Dst: free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:227,1
    - Dst: free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:229,1
    - Dst: bundle_attach
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:234,1
    - Dst: set_ifunit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:235,1
    - Dst: script_setenv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:236,1
    - Dst: make_bundle_links
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:237,1
    - Dst: unlock_db
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:238,1
    - Dst: info
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:239,1
    - Dst: make_new_bundle
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:246,1
    - Dst: set_ifunit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:247,1
    - Dst: netif_set_mtu
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:248,1
    - Dst: script_setenv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:249,1
    - Dst: make_bundle_links
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:250,1
    - Dst: unlock_db
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:251,1
    - Dst: info
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:252,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 255
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 255
    functionName: mp_join_bundle
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c
    functionUses: 0
    functionsReached:
    - cfg_bundle
    - lock_db
    - notice
    - LWIP_MIN
    - make_new_bundle
    - lcp_close
    - make_bundle_links
    - parse_num
    - bundle_attach
    - unlock_db
    - strlen
    - novm
    - netif_set_mtu
    - slprintf
    - owns_unit
    - set_ifunit
    - process_exists
    - script_setenv
    - tdb_fetch
    - free
    - epdisc_to_str
    - malloc
    - info
    linkageType: ''
    returnType: int
    signature: mp_join_bundle()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock_db
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:259,1
    - Dst: remove_bundle_link
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:260,1
    - Dst: unlock_db
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 262
    functionName: mp_exit_bundle
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c
    functionUses: 0
    functionsReached:
    - lock_db
    - remove_bundle_link
    - unlock_db
    linkageType: ''
    returnType: void
    signature: mp_exit_bundle()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_num
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:268,1
    - Dst: getpid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:268,1
    - Dst: dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:270,1
    - Dst: kill
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 273
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 273
    functionName: sendhup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c
    functionUses: 0
    functionsReached:
    - getpid
    - parse_num
    - dbglog
    - kill
    linkageType: ''
    returnType: void
    signature: sendhup(char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: upper_layers_down
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:280,1
    - Dst: notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:281,1
    - Dst: print_link_stats
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:283,1
    - Dst: remove_pidfiles
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:286,1
    - Dst: script_unsetenv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:287,1
    - Dst: lock_db
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:290,1
    - Dst: destroy_bundle
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:291,1
    - Dst: iterate_bundle_links
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:292,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:294,1
    - Dst: tdb_delete
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:295,1
    - Dst: unlock_db
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:296,1
    - Dst: new_phase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 302
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 302
    functionName: mp_bundle_terminated
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c
    functionUses: 0
    functionsReached:
    - iterate_bundle_links
    - unlock_db
    - lock_db
    - tdb_delete
    - destroy_bundle
    - remove_pidfiles
    - strlen
    - notice
    - script_unsetenv
    - upper_layers_down
    - new_phase
    - print_link_stats
    linkageType: ''
    returnType: void
    signature: mp_bundle_terminated()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:312,1
    - Dst: slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:313,1
    - Dst: tdb_fetch
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:316,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:319,1
    - Dst: warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:321,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:324,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:325,1
    - Dst: novm
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:327,1
    - Dst: slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:328,1
    - Dst: warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:330,1
    - Dst: free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:333,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:336,1
    - Dst: tdb_store
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:337,1
    - Dst: error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:338,1
    - Dst: free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:341,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - append
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 342
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 342
    functionName: make_bundle_links
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c
    functionUses: 1
    functionsReached:
    - strstr
    - strlen
    - tdb_fetch
    - novm
    - warn
    - free
    - slprintf
    - error
    - malloc
    - tdb_store
    linkageType: ''
    returnType: void
    signature: make_bundle_links(int append)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:352,1
    - Dst: slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:353,1
    - Dst: tdb_fetch
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:355,1
    - Dst: free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:358,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:362,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:364,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:365,1
    - Dst: memmove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:366,1
    - Dst: tdb_store
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:368,1
    - Dst: error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:369,1
    - Dst: free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:371,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 372
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 372
    functionName: remove_bundle_link
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c
    functionUses: 1
    functionsReached:
    - strstr
    - memmove
    - strlen
    - tdb_fetch
    - free
    - slprintf
    - error
    - tdb_store
    linkageType: ''
    returnType: void
    signature: remove_bundle_link()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:380,1
    - Dst: tdb_fetch
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:381,1
    - Dst: error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:383,1
    - Dst: free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:385,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:390,1
    - Dst: tdb_fetch
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:394,1
    - Dst: func
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:397,1
    - Dst: free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:400,1
    - Dst: free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c:403,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 404
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 404
    functionName: iterate_bundle_links
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c
    functionUses: 1
    functionsReached:
    - strchr
    - strlen
    - tdb_fetch
    - free
    - error
    - func
    linkageType: ''
    returnType: void
    signature: iterate_bundle_links(void (*func)(char *))
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 541
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 541
    functionName: hexc_val
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: hexc_val(int c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:125,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:128,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 133
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 133
    functionName: chap_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - memset
    linkageType: ''
    returnType: void
    signature: chap_init(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chap_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: chap_lowerup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c
    functionUses: 0
    functionsReached:
    - chap_timeout
    linkageType: ''
    returnType: void
    signature: chap_lowerup(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 156
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 156
    functionName: chap_lowerdown
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c
    functionUses: 0
    functionsReached:
    - UNTIMEOUT
    linkageType: ''
    returnType: void
    signature: chap_lowerdown(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:169,1
    - Dst: ppp_fatal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:176,1
    - Dst: magic
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:182,1
    - Dst: chap_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:185,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - pcb
    - our_name
    - digest_code
    argTypes:
    - ppp_pcb*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 186
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 186
    functionName: chap_auth_peer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c
    functionUses: 0
    functionsReached:
    - ppp_fatal
    - magic
    - ppp_error
    - chap_timeout
    linkageType: ''
    returnType: void
    signature: chap_auth_peer(ppp_pcb *pcb, const char *our_name, int digest_code)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:201,1
    - Dst: ppp_fatal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:209,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - pcb
    - our_name
    - digest_code
    argTypes:
    - ppp_pcb*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 215
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 215
    functionName: chap_auth_with_peer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c
    functionUses: 0
    functionsReached:
    - ppp_fatal
    - ppp_error
    linkageType: ''
    returnType: void
    signature: chap_auth_with_peer(ppp_pcb *pcb, const char *our_name, int digest_code)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chap_generate_challenge
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:230,1
    - Dst: auth_peer_fail
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:235,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:239,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:243,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:246,1
    - Dst: ppp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:247,1
    - Dst: TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 251
      start: 223
    functionDepth: 4
    functionLinenumber: 223
    functionLinenumberEnd: 251
    functionName: chap_timeout
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c
    functionUses: 2
    functionsReached:
    - pbuf_alloc
    - auth_peer_fail
    - ppp_write
    - chap_generate_challenge
    - MEMCPY
    - pbuf_free
    - TIMEOUT
    linkageType: ''
    returnType: void
    signature: chap_timeout(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MAKEHEADER
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:262,1
    - Dst: ppp_pcb*::chap_server::digest::generate_challenge
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:264,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:266,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 277
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 277
    functionName: chap_generate_challenge
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c
    functionUses: 1
    functionsReached:
    - ppp_pcb*::chap_server::digest::generate_challenge
    - strlen
    - memcpy
    - MAKEHEADER
    linkageType: ''
    returnType: void
    signature: chap_generate_challenge(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_secret
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:420,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:421,1
    - Dst: struct chap_digest_type*::verify_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:424,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 9
    argNames:
    - pcb
    - name
    - ourname
    - id
    - digest
    - challenge
    - response
    - message
    - message_space
    argTypes:
    - ppp_pcb*
    - char*
    - char*
    - int
    - struct chap_digest_type*
    - unsigned char*
    - unsigned char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 429
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 429
    functionName: chap_verify_response
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c
    functionUses: 0
    functionsReached:
    - memset
    - get_secret
    - ppp_error
    - struct chap_digest_type*::verify_response
    linkageType: ''
    returnType: int
    signature: "chap_verify_response(ppp_pcb *pcb, const char *name, const char *ourname,
      int id,\n\t\t     const struct chap_digest_type *digest,\n\t\t     const unsigned
      char *challenge, const unsigned char *response,\n\t\t     char *message, int
      message_space)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:444,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:448,1
    - Dst: ppp_slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:460,1
    - Dst: strlcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:465,1
    - Dst: get_secret
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:469,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:471,1
    - Dst: MAKEHEADER
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:475,1
    - Dst: ppp_pcb*::chap_client::digest::make_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:478,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:480,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:483,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:484,1
    - Dst: pbuf_realloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:493,1
    - Dst: ppp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:494,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 4
    argNames:
    - pcb
    - id
    - pkt
    - len
    argTypes:
    - ppp_pcb*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 495
      start: 435
    functionDepth: 4
    functionLinenumber: 435
    functionLinenumberEnd: 495
    functionName: chap_respond
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c
    functionUses: 0
    functionsReached:
    - get_secret
    - ppp_slprintf
    - pbuf_alloc
    - ppp_write
    - memset
    - ppp_pcb*::chap_client::digest::make_response
    - strlen
    - memcpy
    - MAKEHEADER
    - pbuf_free
    - pbuf_realloc
    - strlcpy
    - ppp_warn
    linkageType: ''
    returnType: void
    signature: "chap_respond(ppp_pcb *pcb, int id,\n\t     unsigned char *pkt, int
      len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:500,1
    - Dst: ppp_info
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:522,1
    - Dst: ppp_info
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:524,1
    - Dst: auth_withpeer_success
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:527,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:530,1
    - Dst: auth_withpeer_fail
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:531,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - pcb
    - code
    - id
    - pkt
    - len
    argTypes:
    - ppp_pcb*
    - int
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 533
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 533
    functionName: chap_handle_status
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c
    functionUses: 0
    functionsReached:
    - auth_withpeer_fail
    - ppp_error
    - auth_withpeer_success
    - ppp_info
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: void
    signature: "chap_handle_status(ppp_pcb *pcb, int code, int id,\n\t\t   unsigned
      char *pkt, int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:541,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:542,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:543,1
    - Dst: chap_respond
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:550,1
    - Dst: chap_handle_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:554,1
    - Dst: chap_handle_status
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:559,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - pcb
    - pkt
    - pktlen
    argTypes:
    - ppp_pcb*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 564
      start: 535
    functionDepth: 5
    functionLinenumber: 535
    functionLinenumberEnd: 564
    functionName: chap_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c
    functionUses: 0
    functionsReached:
    - GETCHAR
    - chap_handle_status
    - GETSHORT
    - chap_handle_response
    - chap_respond
    linkageType: ''
    returnType: void
    signature: chap_input(ppp_pcb *pcb, unsigned char *pkt, int pktlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:571,1
    - Dst: auth_peer_fail
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:575,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:580,1
    - Dst: auth_withpeer_fail
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 583
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 583
    functionName: chap_protrej
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c
    functionUses: 0
    functionsReached:
    - UNTIMEOUT
    - auth_withpeer_fail
    - auth_peer_fail
    - ppp_error
    linkageType: ''
    returnType: void
    signature: chap_protrej(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:601,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:602,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:603,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:607,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:608,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:610,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:611,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:623,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:625,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:626,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:628,1
    - Dst: ppp_print_string
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:629,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:633,1
    - Dst: ppp_print_string
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:634,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:638,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c:639,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 3
    argNames:
    - p
    - plen
    - arg
    argTypes:
    - unsigned char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 645
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 645
    functionName: chap_print_pkt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c
    functionUses: 0
    functionsReached:
    - LWIP_ARRAYSIZE
    - printer
    - GETCHAR
    - ppp_print_string
    - GETSHORT
    linkageType: ''
    returnType: int
    signature: "chap_print_pkt(const unsigned char *p, int plen,\n\t       void (*printer)
      (void *, const char *, ...), void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:226,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:230,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:231,1
    - Dst: magic_random_bytes
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pcb
    - challenge
    argTypes:
    - ppp_pcb*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 235
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 235
    functionName: chapms_generate_challenge
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - strlen
    - memcpy
    - magic_random_bytes
    linkageType: ''
    returnType: void
    signature: chapms_generate_challenge(ppp_pcb *pcb, unsigned char *challenge)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:238,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:242,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:243,1
    - Dst: magic_random_bytes
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pcb
    - challenge
    argTypes:
    - ppp_pcb*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 247
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 247
    functionName: chapms2_generate_challenge
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - strlen
    - memcpy
    - magic_random_bytes
    linkageType: ''
    returnType: void
    signature: chapms2_generate_challenge(ppp_pcb *pcb, unsigned char *challenge)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:256,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:257,1
    - Dst: ppp_notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:267,1
    - Dst: ChapMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:273,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:278,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:282,1
    - Dst: ppp_slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:286,1
    - Dst: ppp_slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:292,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 9
    argNames:
    - pcb
    - id
    - name
    - secret
    - secret_len
    - challenge
    - response
    - message
    - message_space
    argTypes:
    - ppp_pcb*
    - int
    - char*
    - unsigned char*
    - int
    - unsigned char*
    - unsigned char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 295
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 295
    functionName: chapms_verify_response
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c
    functionUses: 0
    functionsReached:
    - memcmp
    - ppp_slprintf
    - ChapMS
    - LWIP_UNUSED_ARG
    - ppp_notice
    linkageType: ''
    returnType: int
    signature: "chapms_verify_response(ppp_pcb *pcb, int id, const char *name,\n\t\t
      \      const unsigned char *secret, int secret_len,\n\t\t       const unsigned
      char *challenge, const unsigned char *response,\n\t\t       char *message, int
      message_space)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:304,1
    - Dst: ChapMS2
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:312,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:336,1
    - Dst: ppp_slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:339,1
    - Dst: ppp_slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:341,1
    - Dst: ppp_slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:368,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 9
    argNames:
    - pcb
    - id
    - name
    - secret
    - secret_len
    - challenge
    - response
    - message
    - message_space
    argTypes:
    - ppp_pcb*
    - int
    - char*
    - unsigned char*
    - int
    - unsigned char*
    - unsigned char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 371
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 371
    functionName: chapms2_verify_response
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - ChapMS2
    - memcmp
    - ppp_slprintf
    linkageType: ''
    returnType: int
    signature: "chapms2_verify_response(ppp_pcb *pcb, int id, const char *name,\n\t\t\tconst
      unsigned char *secret, int secret_len,\n\t\t\tconst unsigned char *challenge,
      const unsigned char *response,\n\t\t\tchar *message, int message_space)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:377,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:378,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:379,1
    - Dst: ChapMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 8
    argNames:
    - pcb
    - response
    - id
    - our_name
    - challenge
    - secret
    - secret_len
    - private_
    argTypes:
    - ppp_pcb*
    - unsigned char*
    - int
    - char*
    - unsigned char*
    - char*
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 383
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 383
    functionName: chapms_make_response
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - ChapMS
    linkageType: ''
    returnType: void
    signature: "chapms_make_response(ppp_pcb *pcb, unsigned char *response, int id,
      const char *our_name,\n\t\t     const unsigned char *challenge, const char *secret,
      int secret_len,\n\t\t     unsigned char *private_)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:388,1
    - Dst: ChapMS2
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 8
    argNames:
    - pcb
    - response
    - id
    - our_name
    - challenge
    - secret
    - secret_len
    - private_
    argTypes:
    - ppp_pcb*
    - unsigned char*
    - int
    - char*
    - unsigned char*
    - char*
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 399
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 399
    functionName: chapms2_make_response
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - ChapMS2
    linkageType: ''
    returnType: void
    signature: "chapms2_make_response(ppp_pcb *pcb, unsigned char *response, int id,
      const char *our_name,\n\t\t      const unsigned char *challenge, const char
      *secret, int secret_len,\n\t\t      unsigned char *private_)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:402,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:405,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:407,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:413,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:415,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:421,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:425,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - pcb
    - msg
    - len
    - private_
    argTypes:
    - ppp_pcb*
    - unsigned char*
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 429
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 429
    functionName: chapms2_check_success
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - strncmp
    - memcmp
    - ppp_error
    linkageType: ''
    returnType: int
    signature: chapms2_check_success(ppp_pcb *pcb, unsigned char *msg, int len, unsigned
      char *private_)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:435,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:438,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:439,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:449,1
    - Dst: strtol
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:450,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:454,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:486,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:493,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - pcb
    - inp
    - len
    argTypes:
    - ppp_pcb*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 494
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 494
    functionName: chapms_handle_failure
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c
    functionUses: 0
    functionsReached:
    - strtol
    - strstr
    - ppp_error
    - strncmp
    - MEMCPY
    - LWIP_MIN
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: void
    signature: chapms_handle_failure(ppp_pcb *pcb, unsigned char *inp, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:503,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:504,1
    - Dst: dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:507,1
    - Dst: pppcrypt_56_to_64_bit_key
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:511,1
    - Dst: lwip_des_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:512,1
    - Dst: lwip_des_setkey_enc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:513,1
    - Dst: lwip_des_crypt_ecb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:514,1
    - Dst: lwip_des_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:515,1
    - Dst: pppcrypt_56_to_64_bit_key
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:517,1
    - Dst: lwip_des_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:518,1
    - Dst: lwip_des_setkey_enc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:519,1
    - Dst: lwip_des_crypt_ecb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:520,1
    - Dst: lwip_des_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:521,1
    - Dst: pppcrypt_56_to_64_bit_key
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:523,1
    - Dst: lwip_des_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:524,1
    - Dst: lwip_des_setkey_enc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:525,1
    - Dst: lwip_des_crypt_ecb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:526,1
    - Dst: lwip_des_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:527,1
    - Dst: dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 3
    argNames:
    - challenge
    - PasswordHash
    - response
    argTypes:
    - u_char*
    - u_char[]
    - u_char[]
    constantsTouched: []
    func_position:
      end: 532
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 532
    functionName: ChallengeResponse
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c
    functionUses: 0
    functionsReached:
    - lwip_des_crypt_ecb
    - pppcrypt_56_to_64_bit_key
    - lwip_des_free
    - MEMCPY
    - dbglog
    - BZERO
    - lwip_des_setkey_enc
    - lwip_des_init
    linkageType: ''
    returnType: void
    signature: "ChallengeResponse(const u_char *challenge,\n\t\t  const u_char PasswordHash[MD4_SIGNATURE_SIZE],\n\t\t
      \ u_char response[24])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:541,1
    - Dst: lwip_sha1_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:546,1
    - Dst: lwip_sha1_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:547,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:548,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:549,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:550,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:550,1
    - Dst: lwip_sha1_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:551,1
    - Dst: lwip_sha1_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:552,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - PeerChallenge
    - rchallenge
    - username
    - Challenge
    argTypes:
    - u_char[]
    - u_char*
    - char*
    - u_char[]
    constantsTouched: []
    func_position:
      end: 555
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 555
    functionName: ChallengeHash
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c
    functionUses: 0
    functionsReached:
    - lwip_sha1_init
    - strrchr
    - MEMCPY
    - lwip_sha1_starts
    - strlen
    - lwip_sha1_update
    - lwip_sha1_finish
    - lwip_sha1_free
    linkageType: ''
    returnType: void
    signature: "ChallengeHash(const u_char PeerChallenge[16], const u_char *rchallenge,\n\t
      \     const char *username, u_char Challenge[8])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ascii
    - ascii_len
    - unicode
    argTypes:
    - char[]
    - int
    - u_char[]
    constantsTouched: []
    func_position:
      end: 570
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 570
    functionName: ascii2unicode
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c
    functionUses: 0
    functionsReached:
    - BZERO
    linkageType: ''
    returnType: void
    signature: ascii2unicode(const char ascii[], int ascii_len, u_char unicode[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_md4_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:575,1
    - Dst: lwip_md4_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:576,1
    - Dst: lwip_md4_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:577,1
    - Dst: lwip_md4_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:578,1
    - Dst: lwip_md4_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - secret
    - secret_len
    - hash
    argTypes:
    - u_char*
    - int
    - u_char[]
    constantsTouched: []
    func_position:
      end: 580
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 580
    functionName: NTPasswordHash
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c
    functionUses: 0
    functionsReached:
    - lwip_md4_finish
    - lwip_md4_starts
    - lwip_md4_update
    - lwip_md4_free
    - lwip_md4_init
    linkageType: ''
    returnType: void
    signature: NTPasswordHash(u_char *secret, int secret_len, u_char hash[MD4_SIGNATURE_SIZE])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ascii2unicode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:588,1
    - Dst: NTPasswordHash
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:589,1
    - Dst: ChallengeResponse
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - rchallenge
    - secret
    - secret_len
    - NTResponse
    argTypes:
    - u_char*
    - char*
    - int
    - u_char[]
    constantsTouched: []
    func_position:
      end: 592
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 592
    functionName: ChapMS_NT
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c
    functionUses: 0
    functionsReached:
    - ChallengeResponse
    - ascii2unicode
    - NTPasswordHash
    linkageType: ''
    returnType: void
    signature: "ChapMS_NT(const u_char *rchallenge, const char *secret, int secret_len,\n\t
      \ u_char NTResponse[24])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ChallengeHash
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:600,1
    - Dst: ascii2unicode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:603,1
    - Dst: NTPasswordHash
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:604,1
    - Dst: ChallengeResponse
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - rchallenge
    - PeerChallenge
    - username
    - secret
    - secret_len
    - NTResponse
    argTypes:
    - u_char*
    - u_char[]
    - char*
    - char*
    - int
    - u_char[]
    constantsTouched: []
    func_position:
      end: 607
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 607
    functionName: ChapMS2_NT
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c
    functionUses: 0
    functionsReached:
    - ChallengeResponse
    - ChallengeHash
    - ascii2unicode
    - NTPasswordHash
    linkageType: ''
    returnType: void
    signature: "ChapMS2_NT(const u_char *rchallenge, const u_char PeerChallenge[16],
      const char *username,\n\t   const char *secret, int secret_len, u_char NTResponse[24])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:621,1
    - Dst: toupper
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:623,1
    - Dst: pppcrypt_56_to_64_bit_key
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:625,1
    - Dst: lwip_des_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:626,1
    - Dst: lwip_des_setkey_enc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:627,1
    - Dst: lwip_des_crypt_ecb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:628,1
    - Dst: lwip_des_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:629,1
    - Dst: pppcrypt_56_to_64_bit_key
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:631,1
    - Dst: lwip_des_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:632,1
    - Dst: lwip_des_setkey_enc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:633,1
    - Dst: lwip_des_crypt_ecb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:634,1
    - Dst: lwip_des_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:635,1
    - Dst: ChallengeResponse
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - rchallenge
    - secret
    - secret_len
    - response
    argTypes:
    - u_char*
    - char*
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 638
      start: 612
    functionDepth: 2
    functionLinenumber: 612
    functionLinenumberEnd: 638
    functionName: ChapMS_LANMan
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c
    functionUses: 0
    functionsReached:
    - lwip_des_crypt_ecb
    - toupper
    - pppcrypt_56_to_64_bit_key
    - lwip_des_free
    - ChallengeResponse
    - BZERO
    - lwip_des_setkey_enc
    - lwip_des_init
    linkageType: ''
    returnType: void
    signature: "ChapMS_LANMan(u_char *rchallenge, char *secret, int secret_len,\n\t
      \     unsigned char *response)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_sha1_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:666,1
    - Dst: lwip_sha1_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:667,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:668,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:669,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:670,1
    - Dst: lwip_sha1_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:671,1
    - Dst: lwip_sha1_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:672,1
    - Dst: ChallengeHash
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:674,1
    - Dst: lwip_sha1_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:676,1
    - Dst: lwip_sha1_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:677,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:678,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:679,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:680,1
    - Dst: lwip_sha1_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:681,1
    - Dst: lwip_sha1_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:682,1
    - Dst: LWIP_MAX
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:685,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 6
    argNames:
    - PasswordHashHash
    - NTResponse
    - PeerChallenge
    - rchallenge
    - username
    - authResponse
    argTypes:
    - u_char[]
    - u_char[]
    - u_char[]
    - u_char*
    - char*
    - u_char[]
    constantsTouched: []
    func_position:
      end: 687
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 687
    functionName: GenerateAuthenticatorResponse
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c
    functionUses: 0
    functionsReached:
    - lwip_sha1_init
    - lwip_sha1_starts
    - ChallengeHash
    - lwip_sha1_update
    - lwip_sha1_finish
    - LWIP_MAX
    - sprintf
    - lwip_sha1_free
    linkageType: ''
    returnType: void
    signature: "GenerateAuthenticatorResponse(const u_char PasswordHashHash[MD4_SIGNATURE_SIZE],\n\t\t\t
      \     u_char NTResponse[24], const u_char PeerChallenge[16],\n\t\t\t      const
      u_char *rchallenge, const char *username,\n\t\t\t      u_char authResponse[MS_AUTH_RESPONSE_LENGTH+1])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ascii2unicode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:700,1
    - Dst: NTPasswordHash
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:701,1
    - Dst: NTPasswordHash
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:702,1
    - Dst: GenerateAuthenticatorResponse
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 7
    argNames:
    - secret
    - secret_len
    - NTResponse
    - PeerChallenge
    - rchallenge
    - username
    - authResponse
    argTypes:
    - char*
    - int
    - u_char[]
    - u_char[]
    - u_char*
    - char*
    - u_char[]
    constantsTouched: []
    func_position:
      end: 707
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 707
    functionName: GenerateAuthenticatorResponsePlain
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c
    functionUses: 0
    functionsReached:
    - GenerateAuthenticatorResponse
    - ascii2unicode
    - NTPasswordHash
    linkageType: ''
    returnType: void
    signature: "GenerateAuthenticatorResponsePlain(\n\t\t const char *secret, int
      secret_len,\n\t\t u_char NTResponse[24], const u_char PeerChallenge[16],\n\t\t
      const u_char *rchallenge, const char *username,\n\t\t u_char authResponse[MS_AUTH_RESPONSE_LENGTH+1])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ascii2unicode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:722,1
    - Dst: NTPasswordHash
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:723,1
    - Dst: NTPasswordHash
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:724,1
    - Dst: lwip_sha1_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:726,1
    - Dst: lwip_sha1_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:727,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:728,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:729,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:730,1
    - Dst: lwip_sha1_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:731,1
    - Dst: lwip_sha1_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:732,1
    - Dst: mppe_set_key
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:735,1
    - Dst: mppe_set_key
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - pcb
    - rchallenge
    - secret
    - secret_len
    argTypes:
    - ppp_pcb*
    - u_char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 739
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 739
    functionName: Set_Start_Key
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c
    functionUses: 0
    functionsReached:
    - mppe_set_key
    - lwip_sha1_init
    - ascii2unicode
    - lwip_sha1_starts
    - lwip_sha1_update
    - lwip_sha1_finish
    - NTPasswordHash
    - lwip_sha1_free
    linkageType: ''
    returnType: void
    signature: Set_Start_Key(ppp_pcb *pcb, const u_char *rchallenge, const char *secret,
      int secret_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ascii2unicode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:784,1
    - Dst: NTPasswordHash
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:785,1
    - Dst: NTPasswordHash
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:786,1
    - Dst: lwip_sha1_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:788,1
    - Dst: lwip_sha1_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:789,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:790,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:791,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:792,1
    - Dst: lwip_sha1_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:793,1
    - Dst: lwip_sha1_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:794,1
    - Dst: lwip_sha1_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:803,1
    - Dst: lwip_sha1_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:804,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:805,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:806,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:807,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:808,1
    - Dst: lwip_sha1_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:809,1
    - Dst: lwip_sha1_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:810,1
    - Dst: mppe_set_key
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:812,1
    - Dst: lwip_sha1_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:821,1
    - Dst: lwip_sha1_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:822,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:823,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:824,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:825,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:826,1
    - Dst: lwip_sha1_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:827,1
    - Dst: lwip_sha1_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:828,1
    - Dst: mppe_set_key
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:830,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 5
    argNames:
    - pcb
    - secret
    - secret_len
    - NTResponse
    - IsServer
    argTypes:
    - ppp_pcb*
    - char*
    - int
    - u_char[]
    - int
    constantsTouched: []
    func_position:
      end: 833
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 833
    functionName: SetMasterKeys
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c
    functionUses: 0
    functionsReached:
    - mppe_set_key
    - lwip_sha1_init
    - ascii2unicode
    - lwip_sha1_starts
    - lwip_sha1_update
    - lwip_sha1_finish
    - NTPasswordHash
    - lwip_sha1_free
    linkageType: ''
    returnType: void
    signature: SetMasterKeys(ppp_pcb *pcb, const char *secret, int secret_len, u_char
      NTResponse[24], int IsServer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:841,1
    - Dst: BZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:843,1
    - Dst: ChapMS_NT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:845,1
    - Dst: ChapMS_LANMan
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:848,1
    - Dst: Set_Start_Key
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - pcb
    - rchallenge
    - secret
    - secret_len
    - response
    argTypes:
    - ppp_pcb*
    - u_char*
    - char*
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 860
      start: 838
    functionDepth: 3
    functionLinenumber: 838
    functionLinenumberEnd: 860
    functionName: ChapMS
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c
    functionUses: 2
    functionsReached:
    - Set_Start_Key
    - ChapMS_NT
    - BZERO
    - LWIP_UNUSED_ARG
    - ChapMS_LANMan
    linkageType: ''
    returnType: void
    signature: "ChapMS(ppp_pcb *pcb, const u_char *rchallenge, const char *secret,
      int secret_len,\n       unsigned char *response)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:877,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:879,1
    - Dst: BZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:882,1
    - Dst: magic_random_bytes
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:886,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:888,1
    - Dst: ChapMS2_NT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:892,1
    - Dst: GenerateAuthenticatorResponsePlain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:896,1
    - Dst: SetMasterKeys
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c:902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 9
    argNames:
    - pcb
    - rchallenge
    - PeerChallenge
    - user
    - secret
    - secret_len
    - response
    - authResponse
    - authenticator
    argTypes:
    - ppp_pcb*
    - u_char*
    - u_char*
    - char*
    - char*
    - int
    - unsigned char*
    - u_char[]
    - int
    constantsTouched: []
    func_position:
      end: 905
      start: 873
    functionDepth: 3
    functionLinenumber: 873
    functionLinenumberEnd: 905
    functionName: ChapMS2
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c
    functionUses: 2
    functionsReached:
    - GenerateAuthenticatorResponsePlain
    - magic_random_bytes
    - ChapMS2_NT
    - BZERO
    - MEMCPY
    - SetMasterKeys
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: void
    signature: "ChapMS2(ppp_pcb *pcb, const u_char *rchallenge, const u_char *PeerChallenge,\n\tconst
      char *user, const char *secret, int secret_len, unsigned char *response,\n\tu_char
      authResponse[], int authenticator)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - policy
    - types
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 936
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 936
    functionName: set_mppe_enc_types
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: set_mppe_enc_types(int policy, int types)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/demand.c:92,1
    - Dst: novm
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/demand.c:94,1
    - Dst: netif_set_mtu
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/demand.c:101,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/demand.c:101,1
    - Dst: ppp_send_config
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/demand.c:102,1
    - Dst: ppp_recv_config
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/demand.c:103,1
    - Dst: fatal
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/demand.c:104,1
    - Dst: set_filters
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/demand.c:107,1
    - Dst: die
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/demand.c:119,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 121
    functionName: demand_conf
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/demand.c
    functionUses: 0
    functionsReached:
    - set_filters
    - fatal
    - novm
    - die
    - LWIP_MIN
    - netif_set_mtu
    - ppp_send_config
    - malloc
    - ppp_recv_config
    linkageType: ''
    returnType: void
    signature: demand_conf()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sifnpmode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/demand.c:135,1
    - Dst: get_loop_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/demand.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 137
    functionName: demand_block
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/demand.c
    functionUses: 0
    functionsReached:
    - sifnpmode
    - get_loop_output
    linkageType: ''
    returnType: void
    signature: demand_block()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sifnpmode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/demand.c:152,1
    - Dst: get_loop_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/demand.c:153,1
    - Dst: free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/demand.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 165
    functionName: demand_discard
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/demand.c
    functionUses: 0
    functionsReached:
    - free
    - sifnpmode
    - get_loop_output
    linkageType: ''
    returnType: void
    signature: demand_discard()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sifnpmode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/demand.c:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 179
    functionName: demand_unblock
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/demand.c
    functionUses: 0
    functionsReached:
    - sifnpmode
    linkageType: ''
    returnType: void
    signature: demand_unblock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ifaceid
    argTypes:
    - eui64_t
    constantsTouched: []
    func_position:
      end: 422
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 422
    functionName: llv6_ntoa
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c
    functionUses: 0
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: char
    signature: '*

      llv6_ntoa(eui64_t ifaceid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:436,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:439,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 453
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 453
    functionName: ipv6cp_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c
    functionUses: 0
    functionsReached:
    - fsm_init
    - memset
    linkageType: ''
    returnType: void
    signature: ipv6cp_init(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_open
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 461
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 461
    functionName: ipv6cp_open
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c
    functionUses: 0
    functionsReached:
    - fsm_open
    linkageType: ''
    returnType: void
    signature: ipv6cp_open(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pcb
    - reason
    argTypes:
    - ppp_pcb*
    - char*
    constantsTouched: []
    func_position:
      end: 469
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 469
    functionName: ipv6cp_close
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c
    functionUses: 0
    functionsReached:
    - fsm_close
    linkageType: ''
    returnType: void
    signature: ipv6cp_close(ppp_pcb *pcb, const char *reason)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_lowerup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 477
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 477
    functionName: ipv6cp_lowerup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c
    functionUses: 0
    functionsReached:
    - fsm_lowerup
    linkageType: ''
    returnType: void
    signature: ipv6cp_lowerup(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_lowerdown
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 485
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 485
    functionName: ipv6cp_lowerdown
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c
    functionUses: 0
    functionsReached:
    - fsm_lowerdown
    linkageType: ''
    returnType: void
    signature: ipv6cp_lowerdown(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pcb
    - p
    - len
    argTypes:
    - ppp_pcb*
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: ipv6cp_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c
    functionUses: 0
    functionsReached:
    - fsm_input
    linkageType: ''
    returnType: void
    signature: ipv6cp_input(ppp_pcb *pcb, u_char *p, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_lowerdown
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 503
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 503
    functionName: ipv6cp_protrej
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c
    functionUses: 0
    functionsReached:
    - fsm_lowerdown
    linkageType: ''
    returnType: void
    signature: ipv6cp_protrej(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: eui64_magic_nz
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:518,1
    - Dst: eui64_zero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 523
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 523
    functionName: ipv6cp_resetci
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c
    functionUses: 0
    functionsReached:
    - eui64_magic_nz
    - eui64_zero
    linkageType: ''
    returnType: void
    signature: ipv6cp_resetci(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LENCIIFACEID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:538,1
    - Dst: LENCIVJ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 543
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 543
    functionName: ipv6cp_cilen
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c
    functionUses: 0
    functionsReached:
    - LENCIVJ
    - LENCIIFACEID
    linkageType: ''
    returnType: int
    signature: ipv6cp_cilen(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ADDCIIFACEID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:580,1
    - Dst: ADDCIVJ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - f
    - ucp
    - lenp
    argTypes:
    - fsm*
    - u_char*
    - int*
    constantsTouched: []
    func_position:
      end: 587
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 587
    functionName: ipv6cp_addci
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c
    functionUses: 0
    functionsReached:
    - ADDCIIFACEID
    - ADDCIVJ
    linkageType: ''
    returnType: void
    signature: ipv6cp_addci(fsm *f, u_char *ucp, int *lenp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ACKCIIFACEID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:644,1
    - Dst: ACKCIVJ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:647,1
    - Dst: IPV6CPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - f
    - p
    - len
    argTypes:
    - fsm*
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 660
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 660
    functionName: ipv6cp_ackci
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c
    functionUses: 0
    functionsReached:
    - ACKCIIFACEID
    - ACKCIVJ
    - IPV6CPDEBUG
    linkageType: ''
    returnType: int
    signature: ipv6cp_ackci(fsm *f, u_char *p, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:682,1
    - Dst: NAKCIIFACEID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:720,1
    - Dst: if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:721,1
    - Dst: eui64_iszero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:724,1
    - Dst: eui64_equals
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:725,1
    - Dst: eui64_magic
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:726,1
    - Dst: IPV6CPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:728,1
    - Dst: llv6_ntoa
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:728,1
    - Dst: NAKCIVJ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:733,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:751,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:752,1
    - Dst: eui64_get
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:770,1
    - Dst: eui64_iszero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:772,1
    - Dst: eui64_equals
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:773,1
    - Dst: eui64_magic
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:774,1
    - Dst: IPV6CPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:798,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 61
    argCount: 4
    argNames:
    - f
    - p
    - len
    - treat_as_reject
    argTypes:
    - fsm*
    - u_char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 800
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 800
    functionName: ipv6cp_nakci
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c
    functionUses: 0
    functionsReached:
    - eui64_get
    - eui64_magic
    - llv6_ntoa
    - NAKCIVJ
    - IPV6CPDEBUG
    - GETCHAR
    - eui64_iszero
    - eui64_equals
    - BZERO
    - if
    - NAKCIIFACEID
    linkageType: ''
    returnType: int
    signature: ipv6cp_nakci(fsm *f, u_char *p, int len, int treat_as_reject)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: eui64_equals
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:831,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - f
    - p
    - len
    argTypes:
    - fsm*
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 834
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 834
    functionName: ipv6cp_rejci
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c
    functionUses: 0
    functionsReached:
    - eui64_equals
    linkageType: ''
    returnType: int
    signature: ipv6cp_rejci(fsm *f, u_char *p, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:908,1
    - Dst: IPV6CPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:920,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:926,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:927,1
    - Dst: IPV6CPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:933,1
    - Dst: eui64_get
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:947,1
    - Dst: IPV6CPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:948,1
    - Dst: llv6_ntoa
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:948,1
    - Dst: eui64_iszero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:949,1
    - Dst: eui64_iszero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:949,1
    - Dst: eui64_iszero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:953,1
    - Dst: eui64_equals
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:954,1
    - Dst: eui64_iszero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:955,1
    - Dst: DECPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:960,1
    - Dst: eui64_put
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:961,1
    - Dst: eui64_iszero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:963,1
    - Dst: eui64_equals
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:963,1
    - Dst: eui64_iszero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:965,1
    - Dst: eui64_iszero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:967,1
    - Dst: eui64_equals
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:968,1
    - Dst: eui64_magic
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:969,1
    - Dst: DECPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:971,1
    - Dst: eui64_put
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:972,1
    - Dst: IPV6CPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:981,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:987,1
    - Dst: IPV6CPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:988,1
    - Dst: IPV6CPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1006,1
    - Dst: CODENAME
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1006,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1033,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1036,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1053,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1054,1
    - Dst: eui64_put
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1055,1
    - Dst: IPV6CPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1059,1
    - Dst: CODENAME
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1059,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 107
    argCount: 4
    argNames:
    - f
    - inp
    - len
    - reject_if_disagree
    argTypes:
    - fsm*
    - u_char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 1061
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 1061
    functionName: ipv6cp_reqci
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c
    functionUses: 0
    functionsReached:
    - eui64_get
    - eui64_put
    - DECPTR
    - llv6_ntoa
    - eui64_magic
    - CODENAME
    - IPV6CPDEBUG
    - GETCHAR
    - MEMCPY
    - INCPTR
    - PUTCHAR
    - eui64_iszero
    - eui64_equals
    - BZERO
    - GETSHORT
    linkageType: ''
    returnType: int
    signature: ipv6cp_reqci(fsm *f, u_char *inp, int *len, int reject_if_disagree)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ether_to_eui64
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1089,1
    - Dst: eui64_iszero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1095,1
    - Dst: eui64_setlo32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1096,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1096,1
    - Dst: eui64_iszero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1097,1
    - Dst: eui64_iszero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1101,1
    - Dst: eui64_magic
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1102,1
    - Dst: eui64_iszero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1106,1
    - Dst: eui64_setlo32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1107,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1107,1
    - Dst: eui64_iszero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1108,1
    - Dst: eui64_iszero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1113,1
    - Dst: eui64_iszero
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1113,1
    - Dst: option_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1114,1
    - Dst: exit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1115,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1068
    functionDepth: 0
    functionLinenumber: 1068
    functionLinenumberEnd: 1117
    functionName: ipv6_check_options
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c
    functionUses: 0
    functionsReached:
    - exit
    - eui64_magic
    - option_error
    - ether_to_eui64
    - lwip_ntohl
    - eui64_iszero
    - eui64_setlo32
    linkageType: ''
    returnType: void
    signature: ipv6_check_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sif6up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1128,1
    - Dst: sif6addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1131,1
    - Dst: sifnpmode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1134,1
    - Dst: ppp_notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1137,1
    - Dst: ppp_notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1138,1
    - Dst: llv6_ntoa
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1138,1
    - Dst: ppp_notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1139,1
    - Dst: llv6_ntoa
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - u
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1142
      start: 1125
    functionDepth: 1
    functionLinenumber: 1125
    functionLinenumberEnd: 1142
    functionName: ipv6_demand_conf
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c
    functionUses: 0
    functionsReached:
    - sif6up
    - llv6_ntoa
    - sif6addr
    - sifnpmode
    - ppp_notice
    linkageType: ''
    returnType: int
    signature: ipv6_demand_conf(int u)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPV6CPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1278,1
    - Dst: update_link_stats
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1280,1
    - Dst: np_down
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1284,1
    - Dst: sif6comp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1287,1
    - Dst: sifnpmode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1296,1
    - Dst: sifnpmode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1301,1
    - Dst: ipv6cp_clear_addrs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1303,1
    - Dst: sif6down
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1306,1
    - Dst: ipv6cp_script
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1313,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 1316
      start: 1273
    functionDepth: 1
    functionLinenumber: 1273
    functionLinenumberEnd: 1316
    functionName: ipv6cp_down
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c
    functionUses: 0
    functionsReached:
    - ipv6cp_clear_addrs
    - sif6comp
    - ipv6cp_script
    - IPV6CPDEBUG
    - sifnpmode
    - update_link_stats
    - np_down
    - sif6down
    linkageType: ''
    returnType: void
    signature: ipv6cp_down(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cif6addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pcb
    - ourid
    - hisid
    argTypes:
    - ppp_pcb*
    - eui64_t
    - eui64_t
    constantsTouched: []
    func_position:
      end: 1325
      start: 1323
    functionDepth: 1
    functionLinenumber: 1323
    functionLinenumberEnd: 1325
    functionName: ipv6cp_clear_addrs
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c
    functionUses: 1
    functionsReached:
    - cif6addr
    linkageType: ''
    returnType: void
    signature: ipv6cp_clear_addrs(ppp_pcb *pcb, eui64_t ourid, eui64_t hisid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: np_finished
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 1333
      start: 1331
    functionDepth: 1
    functionLinenumber: 1331
    functionLinenumberEnd: 1333
    functionName: ipv6cp_finished
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c
    functionUses: 0
    functionsReached:
    - np_finished
    linkageType: ''
    returnType: void
    signature: ipv6cp_finished(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1413,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1414,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1415,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1419,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1420,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1422,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1423,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1432,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1433,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1438,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1446,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1447,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1448,1
    - Dst: eui64_get
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1455,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1456,1
    - Dst: llv6_ntoa
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1456,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1463,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1464,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1466,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1473,1
    - Dst: ppp_print_string
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1474,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1485,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1486,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 3
    argNames:
    - p
    - plen
    - arg
    argTypes:
    - u_char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1490
      start: 1401
    functionDepth: 1
    functionLinenumber: 1401
    functionLinenumberEnd: 1490
    functionName: ipv6cp_printpkt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c
    functionUses: 0
    functionsReached:
    - eui64_get
    - LWIP_ARRAYSIZE
    - printer
    - llv6_ntoa
    - GETCHAR
    - ppp_print_string
    - GETSHORT
    linkageType: ''
    returnType: int
    signature: "ipv6cp_printpkt(const u_char *p, int plen,\n\t\tvoid (*printer)(void
      *, const char *, ...), void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_ip6nh
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1520,1
    - Dst: get_ip6nh
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1522,1
    - Dst: get_tcpflags
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1527,1
    - Dst: get_tcpoff
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c:1527,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - pkt
    - len
    argTypes:
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 1530
      start: 1513
    functionDepth: 0
    functionLinenumber: 1513
    functionLinenumberEnd: 1530
    functionName: ipv6_active_pkt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c
    functionUses: 0
    functionsReached:
    - get_tcpflags
    - get_ip6nh
    - get_tcpoff
    linkageType: ''
    returnType: int
    signature: ipv6_active_pkt(u_char *pkt, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:601,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:612,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 648
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 648
    functionName: ipcp_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c
    functionUses: 0
    functionsReached:
    - fsm_init
    - memset
    linkageType: ''
    returnType: void
    signature: ipcp_init(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_open
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 658
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 658
    functionName: ipcp_open
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c
    functionUses: 0
    functionsReached:
    - fsm_open
    linkageType: ''
    returnType: void
    signature: ipcp_open(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pcb
    - reason
    argTypes:
    - ppp_pcb*
    - char*
    constantsTouched: []
    func_position:
      end: 667
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 667
    functionName: ipcp_close
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c
    functionUses: 0
    functionsReached:
    - fsm_close
    linkageType: ''
    returnType: void
    signature: ipcp_close(ppp_pcb *pcb, const char *reason)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_lowerup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 676
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 676
    functionName: ipcp_lowerup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c
    functionUses: 0
    functionsReached:
    - fsm_lowerup
    linkageType: ''
    returnType: void
    signature: ipcp_lowerup(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_lowerdown
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 685
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 685
    functionName: ipcp_lowerdown
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c
    functionUses: 0
    functionsReached:
    - fsm_lowerdown
    linkageType: ''
    returnType: void
    signature: ipcp_lowerdown(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pcb
    - p
    - len
    argTypes:
    - ppp_pcb*
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 694
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 694
    functionName: ipcp_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c
    functionUses: 0
    functionsReached:
    - fsm_input
    linkageType: ''
    returnType: void
    signature: ipcp_input(ppp_pcb *pcb, u_char *p, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_lowerdown
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 705
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 705
    functionName: ipcp_protrej
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c
    functionUses: 0
    functionsReached:
    - fsm_lowerdown
    linkageType: ''
    returnType: void
    signature: ipcp_protrej(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip_choose_hook
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:732,1
    - Dst: BZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:738,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 739
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 739
    functionName: ipcp_resetci
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c
    functionUses: 0
    functionsReached:
    - BZERO
    - ip_choose_hook
    linkageType: ''
    returnType: void
    signature: ipcp_resetci(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ADDCIADDRS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:887,1
    - Dst: ADDCIVJ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:891,1
    - Dst: ADDCIADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:895,1
    - Dst: ADDCIDNS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:898,1
    - Dst: ADDCIDNS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:900,1
    - Dst: ADDCIWINS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:904,1
    - Dst: ADDCIWINS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:906,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - f
    - ucp
    - lenp
    argTypes:
    - fsm*
    - u_char*
    - int*
    constantsTouched: []
    func_position:
      end: 910
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 910
    functionName: ipcp_addci
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c
    functionUses: 0
    functionsReached:
    - ADDCIADDRS
    - ADDCIWINS
    - ADDCIDNS
    - ADDCIADDR
    - ADDCIVJ
    linkageType: ''
    returnType: void
    signature: ipcp_addci(fsm *f, u_char *ucp, int *lenp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ACKCIADDRS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1032,1
    - Dst: ACKCIVJ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1036,1
    - Dst: ACKCIADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1040,1
    - Dst: ACKCIDNS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1043,1
    - Dst: ACKCIDNS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1045,1
    - Dst: ACKCIWINS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1049,1
    - Dst: ACKCIWINS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1051,1
    - Dst: IPCPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1062,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - f
    - p
    - len
    argTypes:
    - fsm*
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 1064
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 1064
    functionName: ipcp_ackci
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c
    functionUses: 0
    functionsReached:
    - IPCPDEBUG
    - ACKCIADDR
    - ACKCIADDRS
    - ACKCIDNS
    - ACKCIWINS
    - ACKCIVJ
    linkageType: ''
    returnType: int
    signature: ipcp_ackci(fsm *f, u_char *p, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1091,1
    - Dst: NAKCIADDRS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1160,1
    - Dst: if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1161,1
    - Dst: NAKCIVJ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1182,1
    - Dst: if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1183,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1186,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1187,1
    - Dst: if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1198,1
    - Dst: NAKCIADDR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1208,1
    - Dst: if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1209,1
    - Dst: NAKCIDNS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1219,1
    - Dst: if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1220,1
    - Dst: NAKCIDNS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1227,1
    - Dst: if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1228,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1245,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1246,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1265,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1266,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1269,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1270,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1279,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1280,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1291,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1292,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1299,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1300,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1310,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1311,1
    - Dst: IPCPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1332,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 128
    argCount: 4
    argNames:
    - f
    - p
    - len
    - treat_as_reject
    argTypes:
    - fsm*
    - u_char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1334
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1334
    functionName: ipcp_nakci
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c
    functionUses: 0
    functionsReached:
    - IPCPDEBUG
    - NAKCIDNS
    - NAKCIADDR
    - NAKCIVJ
    - GETCHAR
    - GETLONG
    - lwip_htonl
    - BZERO
    - if
    - NAKCIADDRS
    linkageType: ''
    returnType: int
    signature: ipcp_nakci(fsm *f, u_char *p, int len, int treat_as_reject)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1371,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1372,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - f
    - p
    - len
    argTypes:
    - fsm*
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 1377
      start: 1341
    functionDepth: 1
    functionLinenumber: 1341
    functionLinenumberEnd: 1377
    functionName: ipcp_rejci
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c
    functionUses: 0
    functionsReached:
    - GETLONG
    - lwip_htonl
    linkageType: ''
    returnType: int
    signature: ipcp_rejci(fsm *f, u_char *p, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1532,1
    - Dst: IPCPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1544,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1550,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1551,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1569,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1570,1
    - Dst: DECPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1575,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1576,1
    - Dst: PUTLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1577,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1592,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1593,1
    - Dst: DECPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1598,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1599,1
    - Dst: PUTLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1600,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1625,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1626,1
    - Dst: DECPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1631,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1632,1
    - Dst: PUTLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1633,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1660,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1661,1
    - Dst: DECPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1662,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1663,1
    - Dst: PUTLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1664,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1682,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1683,1
    - Dst: DECPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1684,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1685,1
    - Dst: PUTLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1686,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1699,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1710,1
    - Dst: DECPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1714,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1715,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1718,1
    - Dst: DECPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1722,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1723,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1766,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1769,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1786,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1787,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1788,1
    - Dst: PUTLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1789,1
    - Dst: IPCPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1793,1
    - Dst: CODENAME
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1793,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 188
    argCount: 4
    argNames:
    - f
    - inp
    - len
    - reject_if_disagree
    argTypes:
    - fsm*
    - u_char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 1795
      start: 1506
    functionDepth: 1
    functionLinenumber: 1506
    functionLinenumberEnd: 1795
    functionName: ipcp_reqci
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c
    functionUses: 0
    functionsReached:
    - PUTLONG
    - IPCPDEBUG
    - DECPTR
    - PUTCHAR
    - CODENAME
    - GETCHAR
    - MEMCPY
    - INCPTR
    - lwip_ntohl
    - GETLONG
    - lwip_htonl
    - BZERO
    - GETSHORT
    linkageType: ''
    returnType: int
    signature: ipcp_reqci(fsm *f, u_char *inp, int *len, int reject_if_disagree)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethostbyname
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1821,1
    - Dst: bad_ip_adrs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1823,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1803
    functionDepth: 0
    functionLinenumber: 1803
    functionLinenumberEnd: 1828
    functionName: ip_check_options
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c
    functionUses: 0
    functionsReached:
    - gethostbyname
    - bad_ip_adrs
    linkageType: ''
    returnType: void
    signature: ip_check_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPCPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1892,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1902,1
    - Dst: ipcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1903,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1907,1
    - Dst: ipcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1908,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1912,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1913,1
    - Dst: script_setenv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1917,1
    - Dst: ip_ntoa
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1917,1
    - Dst: script_setenv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1919,1
    - Dst: ip_ntoa
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1919,1
    - Dst: script_setenv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1929,1
    - Dst: ip_ntoa
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1929,1
    - Dst: script_setenv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1931,1
    - Dst: ip_ntoa
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1931,1
    - Dst: sdns
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1934,1
    - Dst: script_setenv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1936,1
    - Dst: create_resolv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1937,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1946,1
    - Dst: IP_MULTICAST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1948,1
    - Dst: IP_BADCLASS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1948,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1958,1
    - Dst: ipcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1959,1
    - Dst: auth_ip_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1965,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1966,1
    - Dst: ipcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1967,1
    - Dst: sifvjcomp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1974,1
    - Dst: ipcp_clear_addrs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1985,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1988,1
    - Dst: script_setenv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1989,1
    - Dst: ip_ntoa
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1989,1
    - Dst: script_unsetenv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1992,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1994,1
    - Dst: script_setenv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1995,1
    - Dst: ip_ntoa
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1995,1
    - Dst: script_unsetenv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:1998,1
    - Dst: get_mask
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2001,1
    - Dst: sifaddr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2002,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2004,1
    - Dst: ipcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2006,1
    - Dst: sifdefaultroute
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2012,1
    - Dst: sifproxyarp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2019,1
    - Dst: demand_rexmit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2024,1
    - Dst: sifnpmode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2025,1
    - Dst: get_mask
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2033,1
    - Dst: sifaddr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2036,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2038,1
    - Dst: ipcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2040,1
    - Dst: sifup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2046,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2048,1
    - Dst: ipcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2050,1
    - Dst: sifaddr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2055,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2057,1
    - Dst: ipcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2059,1
    - Dst: sifnpmode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2064,1
    - Dst: sifdefaultroute
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2070,1
    - Dst: sifproxyarp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2078,1
    - Dst: ppp_notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2084,1
    - Dst: ppp_notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2086,1
    - Dst: ppp_notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2089,1
    - Dst: ppp_notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2091,1
    - Dst: reset_link_stats
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2096,1
    - Dst: np_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2099,1
    - Dst: notify
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2103,1
    - Dst: ip_up_hook
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2107,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 116
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 2109
      start: 1885
    functionDepth: 2
    functionLinenumber: 1885
    functionLinenumberEnd: 2109
    functionName: ipcp_up
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c
    functionUses: 0
    functionsReached:
    - ip_up_hook
    - IP_BADCLASS
    - ip_ntoa
    - np_up
    - script_unsetenv
    - lwip_htonl
    - sdns
    - ppp_notice
    - ppp_warn
    - IPCPDEBUG
    - sifvjcomp
    - sifdefaultroute
    - sifaddr
    - get_mask
    - sifnpmode
    - lwip_ntohl
    - reset_link_stats
    - create_resolv
    - sifproxyarp
    - sifup
    - ipcp_clear_addrs
    - ppp_error
    - notify
    - ipcp_close
    - script_setenv
    - IP_MULTICAST
    - demand_rexmit
    - auth_ip_addr
    linkageType: ''
    returnType: void
    signature: ipcp_up(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPCPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2123,1
    - Dst: update_link_stats
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2129,1
    - Dst: notify
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2132,1
    - Dst: ip_down_hook
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2136,1
    - Dst: np_down
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2140,1
    - Dst: sifvjcomp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2143,1
    - Dst: print_link_stats
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2147,1
    - Dst: sifnpmode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2158,1
    - Dst: sifnpmode
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2163,1
    - Dst: sifdown
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2165,1
    - Dst: ipcp_clear_addrs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2166,1
    - Dst: cdns
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 2172
      start: 2118
    functionDepth: 1
    functionLinenumber: 2118
    functionLinenumberEnd: 2172
    functionName: ipcp_down
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c
    functionUses: 0
    functionsReached:
    - ip_down_hook
    - ipcp_clear_addrs
    - IPCPDEBUG
    - notify
    - sifdown
    - sifvjcomp
    - update_link_stats
    - np_down
    - sifnpmode
    - cdns
    - print_link_stats
    linkageType: ''
    returnType: void
    signature: ipcp_down(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2180,1
    - Dst: cifproxyarp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2184,1
    - Dst: cifdefaultroute
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2198,1
    - Dst: cifaddr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - pcb
    - ouraddr
    - hisaddr
    - replacedefaultroute
    argTypes:
    - ppp_pcb*
    - u32_t
    - u32_t
    - u8_t
    constantsTouched: []
    func_position:
      end: 2203
      start: 2179
    functionDepth: 1
    functionLinenumber: 2179
    functionLinenumberEnd: 2203
    functionName: ipcp_clear_addrs
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c
    functionUses: 2
    functionsReached:
    - LWIP_UNUSED_ARG
    - cifaddr
    - cifproxyarp
    - cifdefaultroute
    linkageType: ''
    returnType: void
    signature: ipcp_clear_addrs(ppp_pcb *pcb, u32_t ouraddr, u32_t hisaddr, u8_t replacedefaultroute)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: np_finished
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 2215
      start: 2209
    functionDepth: 1
    functionLinenumber: 2209
    functionLinenumberEnd: 2215
    functionName: ipcp_finished
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c
    functionUses: 0
    functionsReached:
    - np_finished
    linkageType: ''
    returnType: void
    signature: ipcp_finished(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2251,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2252,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2253,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2257,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2258,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2260,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2261,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2270,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2271,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2276,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2283,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2284,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2284,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2285,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2286,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2286,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2293,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2294,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2297,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2300,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2303,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2311,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2312,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2312,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2319,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2320,1
    - Dst: htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2321,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2328,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2329,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2329,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2336,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2337,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2339,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2346,1
    - Dst: ppp_print_string
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2347,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2358,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c:2359,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 102
    argCount: 3
    argNames:
    - p
    - plen
    - arg
    argTypes:
    - u_char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 2363
      start: 2239
    functionDepth: 1
    functionLinenumber: 2239
    functionLinenumberEnd: 2363
    functionName: ipcp_printpkt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c
    functionUses: 0
    functionsReached:
    - LWIP_ARRAYSIZE
    - printer
    - GETCHAR
    - htonl
    - ppp_print_string
    - GETLONG
    - lwip_htonl
    - GETSHORT
    linkageType: ''
    returnType: int
    signature: "ipcp_printpkt(const u_char *p, int plen,\n\t\tvoid (*printer) (void
      *, const char *, ...), void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: fsm_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fsm_init(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_sconfreq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:102,1
    - Dst: FSMDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:108,1
    - Dst: PROTO_NAME
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 111
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 111
    functionName: fsm_lowerup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c
    functionUses: 3
    functionsReached:
    - FSMDEBUG
    - fsm_sconfreq
    - PROTO_NAME
    linkageType: ''
    returnType: void
    signature: fsm_lowerup(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:133,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:141,1
    - Dst: FSMDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:151,1
    - Dst: PROTO_NAME
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 154
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 154
    functionName: fsm_lowerdown
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c
    functionUses: 6
    functionsReached:
    - UNTIMEOUT
    - FSMDEBUG
    - PROTO_NAME
    linkageType: ''
    returnType: void
    signature: fsm_lowerdown(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_sconfreq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:173,1
    - Dst: fsm_lowerdown
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:185,1
    - Dst: fsm_lowerup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:186,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 192
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 192
    functionName: fsm_open
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c
    functionUses: 3
    functionsReached:
    - fsm_lowerdown
    - fsm_sconfreq
    - fsm_lowerup
    linkageType: ''
    returnType: void
    signature: fsm_open(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:204,1
    - Dst: fsm_sdata
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:210,1
    - Dst: TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - f
    - nextstate
    argTypes:
    - fsm*
    - int
    constantsTouched: []
    func_position:
      end: 229
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 229
    functionName: terminate_layer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c
    functionUses: 0
    functionsReached:
    - TIMEOUT
    - fsm_sdata
    - UNTIMEOUT
    linkageType: ''
    returnType: void
    signature: terminate_layer(fsm *f, int nextstate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:239,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:239,1
    - Dst: terminate_layer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:255,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - f
    - reason
    argTypes:
    - fsm*
    - char*
    constantsTouched: []
    func_position:
      end: 260
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 260
    functionName: fsm_close
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c
    functionUses: 3
    functionsReached:
    - strlen
    - terminate_layer
    - LWIP_MIN
    linkageType: ''
    returnType: void
    signature: fsm_close(fsm *f, const char *reason)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_sdata
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:282,1
    - Dst: TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:284,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:293,1
    - Dst: PROTO_NAME
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:293,1
    - Dst: fsm_sconfreq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:302,1
    - Dst: FSMDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:309,1
    - Dst: PROTO_NAME
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:309,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 312
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 312
    functionName: fsm_timeout
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c
    functionUses: 0
    functionsReached:
    - FSMDEBUG
    - fsm_sdata
    - PROTO_NAME
    - fsm_sconfreq
    - TIMEOUT
    - ppp_warn
    linkageType: ''
    returnType: void
    signature: fsm_timeout(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FSMDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:329,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:332,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:333,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:334,1
    - Dst: FSMDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:336,1
    - Dst: FSMDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:340,1
    - Dst: FSMDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:346,1
    - Dst: fsm_rconfreq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:356,1
    - Dst: fsm_rconfack
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:360,1
    - Dst: fsm_rconfnakrej
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:365,1
    - Dst: fsm_rtermreq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:369,1
    - Dst: fsm_rtermack
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:373,1
    - Dst: fsm_rcoderej
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:377,1
    - Dst: fsm_sdata
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:383,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 3
    argNames:
    - f
    - inpacket
    - l
    argTypes:
    - fsm*
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 386
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 386
    functionName: fsm_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c
    functionUses: 3
    functionsReached:
    - fsm_rtermreq
    - fsm_rtermack
    - fsm_rcoderej
    - FSMDEBUG
    - fsm_sdata
    - GETCHAR
    - fsm_rconfack
    - fsm_rconfnakrej
    - fsm_rconfreq
    - GETSHORT
    linkageType: ''
    returnType: void
    signature: fsm_input(fsm *f, u_char *inpacket, int l)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_sdata
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:398,1
    - Dst: fsm_sconfreq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:408,1
    - Dst: fsm_sconfreq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:414,1
    - Dst: fsm_sdata
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:434,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:438,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 4
    argNames:
    - f
    - id
    - inp
    - len
    argTypes:
    - fsm*
    - u_char
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 453
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 453
    functionName: fsm_rconfreq
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c
    functionUses: 1
    functionsReached:
    - fsm_sdata
    - UNTIMEOUT
    - fsm_sconfreq
    linkageType: ''
    returnType: void
    signature: fsm_rconfreq(fsm *f, u_char id, u_char *inp, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:467,1
    - Dst: fsm_sdata
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:476,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:486,1
    - Dst: fsm_sconfreq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:487,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:492,1
    - Dst: fsm_sconfreq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:503,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 4
    argNames:
    - f
    - id
    - inp
    - len
    argTypes:
    - fsm*
    - int
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 509
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 509
    functionName: fsm_rconfack
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c
    functionUses: 1
    functionsReached:
    - fsm_sdata
    - UNTIMEOUT
    - fsm_sconfreq
    - ppp_error
    linkageType: ''
    returnType: void
    signature: fsm_rconfack(fsm *f, int id, u_char *inp, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm*::callbacks::nakci
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:526,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:527,1
    - Dst: fsm*::callbacks::rejci
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:533,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:534,1
    - Dst: fsm_sdata
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:544,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:550,1
    - Dst: fsm_sconfreq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:554,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:559,1
    - Dst: fsm_sconfreq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:560,1
    - Dst: fsm_sconfreq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:568,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 5
    argNames:
    - f
    - code
    - id
    - inp
    - len
    argTypes:
    - fsm*
    - int
    - int
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 574
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 574
    functionName: fsm_rconfnakrej
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c
    functionUses: 1
    functionsReached:
    - UNTIMEOUT
    - ppp_error
    - fsm_sdata
    - fsm*::callbacks::rejci
    - fsm*::callbacks::nakci
    - fsm_sconfreq
    linkageType: ''
    returnType: void
    signature: fsm_rconfnakrej(fsm *f, int code, int id, u_char *inp, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_info
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:591,1
    - Dst: PROTO_NAME
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:591,1
    - Dst: ppp_info
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:593,1
    - Dst: PROTO_NAME
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:593,1
    - Dst: TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:598,1
    - Dst: fsm_sdata
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:604,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - f
    - id
    - p
    - len
    argTypes:
    - fsm*
    - int
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 605
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 605
    functionName: fsm_rtermreq
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c
    functionUses: 1
    functionsReached:
    - TIMEOUT
    - ppp_info
    - PROTO_NAME
    - fsm_sdata
    linkageType: ''
    returnType: void
    signature: fsm_rtermreq(fsm *f, int id, u_char *p, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:614,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:620,1
    - Dst: fsm_sconfreq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:633,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 639
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 639
    functionName: fsm_rtermack
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c
    functionUses: 1
    functionsReached:
    - UNTIMEOUT
    - fsm_sconfreq
    linkageType: ''
    returnType: void
    signature: fsm_rtermack(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FSMDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:649,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:652,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:653,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:654,1
    - Dst: PROTO_NAME
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:654,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - f
    - inp
    - len
    argTypes:
    - fsm*
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 658
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 658
    functionName: fsm_rcoderej
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c
    functionUses: 1
    functionsReached:
    - GETCHAR
    - FSMDEBUG
    - PROTO_NAME
    - ppp_warn
    linkageType: ''
    returnType: void
    signature: fsm_rcoderej(fsm *f, u_char *inp, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:669,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:682,1
    - Dst: terminate_layer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:692,1
    - Dst: FSMDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:696,1
    - Dst: PROTO_NAME
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:697,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 700
      start: 666
    functionDepth: 2
    functionLinenumber: 666
    functionLinenumberEnd: 700
    functionName: fsm_protreject
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c
    functionUses: 0
    functionsReached:
    - UNTIMEOUT
    - FSMDEBUG
    - terminate_layer
    - PROTO_NAME
    linkageType: ''
    returnType: void
    signature: fsm_protreject(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:738,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:742,1
    - Dst: MAKEHEADER
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:748,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:749,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:750,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:751,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:754,1
    - Dst: ppp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:757,1
    - Dst: TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:761,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - f
    - retransmit
    argTypes:
    - fsm*
    - int
    constantsTouched: []
    func_position:
      end: 762
      start: 706
    functionDepth: 4
    functionLinenumber: 706
    functionLinenumberEnd: 762
    functionName: fsm_sconfreq
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c
    functionUses: 7
    functionsReached:
    - pbuf_alloc
    - ppp_write
    - PUTCHAR
    - MAKEHEADER
    - pbuf_free
    - TIMEOUT
    - PUTSHORT
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: fsm_sconfreq(fsm *f, int retransmit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:781,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:785,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:791,1
    - Dst: MAKEHEADER
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:792,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:793,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:794,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:795,1
    - Dst: ppp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c:796,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - f
    - code
    - id
    - data
    - datalen
    argTypes:
    - fsm*
    - u_char
    - u_char
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 797
      start: 770
    functionDepth: 4
    functionLinenumber: 770
    functionLinenumberEnd: 797
    functionName: fsm_sdata
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c
    functionUses: 11
    functionsReached:
    - pbuf_alloc
    - ppp_write
    - PUTCHAR
    - MEMCPY
    - MAKEHEADER
    - pbuf_free
    - PUTSHORT
    linkageType: ''
    returnType: void
    signature: fsm_sdata(fsm *f, u_char code, u_char id, const u_char *data, int datalen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - byte
    argTypes:
    - u8_t
    constantsTouched: []
    func_position:
      end: 148
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 148
    functionName: ppp_get_fcs
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16_t
    signature: ppp_get_fcs(u8_t byte)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_MEMPOOL_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:180,1
    - Dst: ppp_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:185,1
    - Dst: LWIP_MEMPOOL_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:187,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - pppif
    - output_cb
    - link_status_cb
    - ctx_cb
    argTypes:
    - struct netif*
    - pppos_output_cb_fn
    - ppp_link_status_cb_fn
    - void*
    constantsTouched: []
    func_position:
      end: 195
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 195
    functionName: pppos_create
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c
    functionUses: 1
    functionsReached:
    - memset
    - LWIP_MEMPOOL_ALLOC
    - ppp_new
    - LWIP_MEMPOOL_FREE
    linkageType: ''
    returnType: ppp_pcb
    signature: "*pppos_create(struct netif *pppif, pppos_output_cb_fn output_cb,\n
      \      ppp_link_status_cb_fn link_status_cb, void *ctx_cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:207,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:210,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:212,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:213,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:214,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:215,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:216,1
    - Dst: sys_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:223,1
    - Dst: pppos_output_append
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:224,1
    - Dst: pppos_output_append
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:232,1
    - Dst: pppos_output_last
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:235,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:237,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:239,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 3
    argNames:
    - ppp
    - ctx
    - p
    argTypes:
    - ppp_pcb*
    - void*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 243
      start: 198
    functionDepth: 4
    functionLinenumber: 198
    functionLinenumberEnd: 243
    functionName: pppos_write
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - pppos_output_last
    - sys_now
    - pppos_output_append
    - LINK_STATS_INC
    - PPPDEBUG
    - pbuf_free
    - LWIP_UNUSED_ARG
    - MIB2_STATS_NETIF_INC
    linkageType: ''
    returnType: err_t
    signature: pppos_write(ppp_pcb *ppp, void *ctx, struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:253,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:256,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:258,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:259,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:260,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:261,1
    - Dst: sys_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:268,1
    - Dst: pppos_output_append
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:269,1
    - Dst: pppos_output_append
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:274,1
    - Dst: pppos_output_append
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:275,1
    - Dst: pppos_output_append
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:278,1
    - Dst: pppos_output_append
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:280,1
    - Dst: pppos_output_append
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:288,1
    - Dst: pppos_output_last
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:292,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:294,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:296,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - ppp
    - ctx
    - pb
    - protocol
    argTypes:
    - ppp_pcb*
    - void*
    - struct pbuf*
    - u16_t
    constantsTouched: []
    func_position:
      end: 299
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 299
    functionName: pppos_netif_output
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - sys_now
    - pppos_output_append
    - LINK_STATS_INC
    - PPPDEBUG
    - pppos_output_last
    - LWIP_UNUSED_ARG
    - MIB2_STATS_NETIF_INC
    linkageType: ''
    returnType: err_t
    signature: pppos_netif_output(ppp_pcb *ppp, void *ctx, struct pbuf *pb, u16_t
      protocol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPOS_DECL_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:305,1
    - Dst: pppos_input_free_current_packet
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:309,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:313,1
    - Dst: PPPOS_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:321,1
    - Dst: PPPOS_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:323,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:328,1
    - Dst: ppp_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ppp
    - ctx
    argTypes:
    - ppp_pcb*
    - void*
    constantsTouched: []
    func_position:
      end: 330
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 330
    functionName: pppos_connect
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c
    functionUses: 0
    functionsReached:
    - PPPOS_PROTECT
    - PPPOS_UNPROTECT
    - pppos_input_free_current_packet
    - memset
    - ppp_start
    - PPPDEBUG
    - PPPOS_DECL_PROTECT
    linkageType: ''
    returnType: void
    signature: pppos_connect(ppp_pcb *ppp, void *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPOS_DECL_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:337,1
    - Dst: pppos_input_free_current_packet
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:341,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:345,1
    - Dst: PPPOS_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:353,1
    - Dst: PPPOS_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:355,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:360,1
    - Dst: ppp_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ppp
    - ctx
    argTypes:
    - ppp_pcb*
    - void*
    constantsTouched: []
    func_position:
      end: 362
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 362
    functionName: pppos_listen
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c
    functionUses: 0
    functionsReached:
    - PPPOS_PROTECT
    - PPPOS_UNPROTECT
    - pppos_input_free_current_packet
    - memset
    - ppp_start
    - PPPDEBUG
    - PPPOS_DECL_PROTECT
    linkageType: ''
    returnType: void
    signature: pppos_listen(ppp_pcb *ppp, void *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPOS_DECL_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:369,1
    - Dst: PPPOS_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:371,1
    - Dst: PPPOS_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:373,1
    - Dst: pppos_input_free_current_packet
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:381,1
    - Dst: ppp_link_end
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ppp
    - ctx
    argTypes:
    - ppp_pcb*
    - void*
    constantsTouched: []
    func_position:
      end: 385
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 385
    functionName: pppos_disconnect
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c
    functionUses: 0
    functionsReached:
    - PPPOS_PROTECT
    - PPPOS_UNPROTECT
    - pppos_input_free_current_packet
    - ppp_link_end
    - PPPOS_DECL_PROTECT
    linkageType: ''
    returnType: void
    signature: pppos_disconnect(ppp_pcb *ppp, void *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:391,1
    - Dst: pppos_input_free_current_packet
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:395,1
    - Dst: LWIP_MEMPOOL_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ppp
    - ctx
    argTypes:
    - ppp_pcb*
    - void*
    constantsTouched: []
    func_position:
      end: 400
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 400
    functionName: pppos_destroy
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - pppos_input_free_current_packet
    - LWIP_MEMPOOL_FREE
    linkageType: ''
    returnType: err_t
    signature: pppos_destroy(ppp_pcb *ppp, void *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:415,1
    - Dst: pbuf_take
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:419,1
    - Dst: tcpip_inpkt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:421,1
    - Dst: ppp_netif
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:421,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ppp
    - s
    - l
    argTypes:
    - ppp_pcb*
    - u8_t*
    - int
    constantsTouched: []
    func_position:
      end: 426
      start: 409
    functionDepth: 4
    functionLinenumber: 409
    functionLinenumberEnd: 426
    functionName: pppos_input_tcpip
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c
    functionUses: 0
    functionsReached:
    - pbuf_take
    - pbuf_alloc
    - ppp_netif
    - tcpip_inpkt
    - pbuf_free
    linkageType: ''
    returnType: err_t
    signature: pppos_input_tcpip(ppp_pcb *ppp, u8_t *s, int l)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pppos_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:434,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - inp
    argTypes:
    - struct pbuf*
    - struct netif*
    constantsTouched: []
    func_position:
      end: 438
      start: 429
    functionDepth: 4
    functionLinenumber: 429
    functionLinenumberEnd: 438
    functionName: pppos_input_sys
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c
    functionUses: 0
    functionsReached:
    - pppos_input
    - pbuf_free
    linkageType: ''
    returnType: err_t
    signature: pppos_input_sys(struct pbuf *p, struct netif *inp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACK_STRUCT_FIELD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 450
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 450
    functionName: pppos_input_header
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c
    functionUses: 0
    functionsReached:
    - PACK_STRUCT_FIELD
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: pppos_input_header
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPOS_DECL_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:470,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:472,1
    - Dst: PPPOS_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:476,1
    - Dst: PPPOS_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:483,1
    - Dst: ESCAPE_P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:486,1
    - Dst: PPPOS_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:487,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:504,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:507,1
    - Dst: pppos_input_drop
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:508,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:511,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:515,1
    - Dst: pppos_input_drop
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:516,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:526,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:531,1
    - Dst: pbuf_realloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:534,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:544,1
    - Dst: tcpip_callback_with_block
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:547,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:548,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:549,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:550,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:551,1
    - Dst: ppp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:554,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:565,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:612,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:639,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:655,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:660,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:661,1
    - Dst: pppos_input_drop
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:662,1
    - Dst: PPP_FCS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:688,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 138
    argCount: 3
    argNames:
    - ppp
    - s
    - l
    argTypes:
    - ppp_pcb*
    - u8_t*
    - int
    constantsTouched: []
    func_position:
      end: 691
      start: 463
    functionDepth: 4
    functionLinenumber: 463
    functionLinenumberEnd: 691
    functionName: pppos_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c
    functionUses: 1
    functionsReached:
    - PPPOS_PROTECT
    - pbuf_cat
    - pbuf_alloc
    - PPPOS_UNPROTECT
    - ESCAPE_P
    - MIB2_STATS_NETIF_INC
    - PPP_FCS
    - pbuf_header
    - LINK_STATS_INC
    - PPPDEBUG
    - pppos_input_drop
    - pbuf_realloc
    - tcpip_callback_with_block
    - pbuf_free
    - PPPOS_DECL_PROTECT
    - ppp_input
    linkageType: ''
    returnType: void
    signature: pppos_input(ppp_pcb *ppp, u8_t *s, int l)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:701,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:702,1
    - Dst: ppp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:707,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:711,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:712,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:713,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 714
      start: 696
    functionDepth: 4
    functionLinenumber: 696
    functionLinenumberEnd: 714
    functionName: pppos_input_callback
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c
    functionUses: 0
    functionsReached:
    - pbuf_header
    - LINK_STATS_INC
    - pbuf_free
    - MIB2_STATS_NETIF_INC
    - ppp_input
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: pppos_input_callback(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:722,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - ppp
    - ctx
    - accm
    - pcomp
    - accomp
    argTypes:
    - ppp_pcb*
    - void*
    - u32_t
    - int
    - int
    constantsTouched: []
    func_position:
      end: 735
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 735
    functionName: pppos_send_config
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - PPPDEBUG
    linkageType: ''
    returnType: void
    signature: pppos_send_config(ppp_pcb *ppp, void *ctx, u32_t accm, int pcomp, int
      accomp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPOS_DECL_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:742,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:743,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:744,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:745,1
    - Dst: PPPOS_PROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:748,1
    - Dst: PPPOS_UNPROTECT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:752,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - ppp
    - ctx
    - accm
    - pcomp
    - accomp
    argTypes:
    - ppp_pcb*
    - void*
    - u32_t
    - int
    - int
    constantsTouched: []
    func_position:
      end: 757
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 757
    functionName: pppos_recv_config
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c
    functionUses: 0
    functionsReached:
    - PPPOS_PROTECT
    - PPPOS_UNPROTECT
    - PPPDEBUG
    - LWIP_UNUSED_ARG
    - PPPOS_DECL_PROTECT
    linkageType: ''
    returnType: void
    signature: pppos_recv_config(ppp_pcb *ppp, void *ctx, u32_t accm, int pcomp, int
      accomp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:767,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pppos
    argTypes:
    - pppos_pcb*
    constantsTouched: []
    func_position:
      end: 773
      start: 762
    functionDepth: 4
    functionLinenumber: 762
    functionLinenumberEnd: 773
    functionName: pppos_input_free_current_packet
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c
    functionUses: 4
    functionsReached:
    - pbuf_free
    linkageType: ''
    returnType: void
    signature: pppos_input_free_current_packet(pppos_pcb *pppos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:783,1
    - Dst: min
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:783,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:785,1
    - Dst: pppos_input_free_current_packet
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:787,1
    - Dst: vj_uncompress_err
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:789,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:792,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pppos
    argTypes:
    - pppos_pcb*
    constantsTouched: []
    func_position:
      end: 794
      start: 778
    functionDepth: 5
    functionLinenumber: 778
    functionLinenumberEnd: 794
    functionName: pppos_input_drop
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c
    functionUses: 1
    functionsReached:
    - min
    - vj_uncompress_err
    - pppos_input_free_current_packet
    - LINK_STATS_INC
    - PPPDEBUG
    - MIB2_STATS_NETIF_INC
    linkageType: ''
    returnType: void
    signature: pppos_input_drop(pppos_pcb *pppos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pppos_pcb*::output_cb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:813,1
    - Dst: PPP_FCS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:822,1
    - Dst: ESCAPE_P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:826,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - pppos
    - err
    - nb
    - c
    - accm
    - fcs
    argTypes:
    - pppos_pcb*
    - err_t
    - struct pbuf*
    - u8_t
    - u8_t
    - u16_t*
    constantsTouched: []
    func_position:
      end: 834
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 834
    functionName: pppos_output_append
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c
    functionUses: 2
    functionsReached:
    - ESCAPE_P
    - PPP_FCS
    - pppos_pcb*::output_cb
    linkageType: ''
    returnType: err_t
    signature: pppos_output_append(pppos_pcb *pppos, err_t err, struct pbuf *nb, u8_t
      c, u8_t accm, u16_t *fcs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pppos_output_append
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:842,1
    - Dst: pppos_output_append
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:843,1
    - Dst: pppos_output_append
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:844,1
    - Dst: pppos_pcb*::output_cb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:852,1
    - Dst: sys_now
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:859,1
    - Dst: MIB2_STATS_NETIF_ADD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:860,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:861,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:862,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:863,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:868,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:869,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:870,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c:871,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 4
    argNames:
    - pppos
    - err
    - nb
    - fcs
    argTypes:
    - pppos_pcb*
    - err_t
    - struct pbuf*
    - u16_t*
    constantsTouched: []
    func_position:
      end: 873
      start: 836
    functionDepth: 4
    functionLinenumber: 836
    functionLinenumberEnd: 873
    functionName: pppos_output_last
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c
    functionUses: 2
    functionsReached:
    - sys_now
    - pppos_output_append
    - pppos_pcb*::output_cb
    - MIB2_STATS_NETIF_ADD
    - LINK_STATS_INC
    - pbuf_free
    - MIB2_STATS_NETIF_INC
    linkageType: ''
    returnType: err_t
    signature: pppos_output_last(pppos_pcb *pppos, err_t err, struct pbuf *nb, u16_t
      *fcs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - esc
    argTypes:
    - enum eap_state_code
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: eap_state_name
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* eap_state_name(enum eap_state_code esc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:198,1
    - Dst: magic
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: eap_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - BZERO
    - magic
    linkageType: ''
    returnType: void
    signature: eap_init(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: eap_client_active
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:211,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:214,1
    - Dst: auth_withpeer_fail
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 217
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 217
    functionName: eap_client_timeout
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - eap_client_active
    - auth_withpeer_fail
    - ppp_error
    linkageType: ''
    returnType: void
    signature: eap_client_timeout(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:232,1
    - Dst: TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pcb
    - localname
    argTypes:
    - ppp_pcb*
    - char*
    constantsTouched: []
    func_position:
      end: 243
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 243
    functionName: eap_authwithpeer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - TIMEOUT
    - strlen
    linkageType: ''
    returnType: void
    signature: eap_authwithpeer(ppp_pcb *pcb, const char *localname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:254,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:258,1
    - Dst: MAKEHEADER
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:264,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:266,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:268,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:269,1
    - Dst: ppp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:271,1
    - Dst: auth_peer_fail
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 275
      start: 250
    functionDepth: 4
    functionLinenumber: 250
    functionLinenumberEnd: 275
    functionName: eap_send_failure
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - ppp_write
    - auth_peer_fail
    - PUTCHAR
    - MAKEHEADER
    - pbuf_free
    - PUTSHORT
    linkageType: ''
    returnType: void
    signature: eap_send_failure(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:285,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:289,1
    - Dst: MAKEHEADER
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:295,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:297,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:299,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:300,1
    - Dst: ppp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:302,1
    - Dst: auth_peer_success
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 306
      start: 281
    functionDepth: 4
    functionLinenumber: 281
    functionLinenumberEnd: 306
    functionName: eap_send_success
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - ppp_write
    - PUTCHAR
    - MAKEHEADER
    - pbuf_free
    - PUTSHORT
    - auth_peer_success
    linkageType: ''
    returnType: void
    signature: eap_send_success(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:325,1
    - Dst: localtime
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:326,1
    - Dst: SHA1Init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:327,1
    - Dst: SHA1Update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:328,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:328,1
    - Dst: strftime
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:329,1
    - Dst: SHA1Update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:330,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:330,1
    - Dst: SHA1Final
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:331,1
    - Dst: DesSetkey
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - timeoffs
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 334
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 334
    functionName: pncrypt_setkey
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - SHA1Final
    - SHA1Update
    - localtime
    - strlen
    - DesSetkey
    - SHA1Init
    - time
    - strftime
    linkageType: ''
    returnType: bool
    signature: pncrypt_setkey(int timeoffs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: t_serverclose
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:447,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:459,1
    - Dst: BZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:463,1
    - Dst: b64dec
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:464,1
    - Dst: pncrypt_setkey
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:470,1
    - Dst: DesDecrypt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:473,1
    - Dst: ppp_dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:474,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:492,1
    - Dst: DesDecrypt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:498,1
    - Dst: ppp_dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:505,1
    - Dst: ppp_dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:509,1
    - Dst: get_srp_secret
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:515,1
    - Dst: strtol
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:520,1
    - Dst: gettcid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:530,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:542,1
    - Dst: t_fromb64
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:546,1
    - Dst: t_fromb64
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:549,1
    - Dst: t_serveropenraw
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:552,1
    - Dst: t_serveraddexdata
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:558,1
    - Dst: t_servergenexp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:560,1
    - Dst: t_serverclose
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:571,1
    - Dst: t_serverclose
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:589,1
    - Dst: t_serverclose
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:606,1
    - Dst: eap_send_failure
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:631,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 148
    argCount: 2
    argNames:
    - pcb
    - status
    argTypes:
    - ppp_pcb*
    - int
    constantsTouched: []
    func_position:
      end: 632
      start: 425
    functionDepth: 5
    functionLinenumber: 425
    functionLinenumberEnd: 632
    functionName: eap_figure_next_state
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - strtol
    - pncrypt_setkey
    - t_servergenexp
    - eap_send_failure
    - gettcid
    - t_serveraddexdata
    - strncmp
    - t_serveropenraw
    - strchr
    - get_srp_secret
    - t_serverclose
    - b64dec
    - MEMCPY
    - t_fromb64
    - BZERO
    - DesDecrypt
    - ppp_dbglog
    linkageType: ''
    returnType: void
    signature: eap_figure_next_state(ppp_pcb *pcb, int status)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:668,1
    - Dst: eap_figure_next_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:671,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:679,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:681,1
    - Dst: eap_send_failure
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:682,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:686,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:690,1
    - Dst: MAKEHEADER
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:696,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:698,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:699,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:701,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:705,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:707,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:708,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:709,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:713,1
    - Dst: magic_pow
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:719,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:720,1
    - Dst: magic_random_bytes
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:721,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:722,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:723,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:724,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:725,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:730,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:731,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:733,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:734,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:735,1
    - Dst: assert
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:738,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:739,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:740,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:741,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:744,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:746,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:747,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:748,1
    - Dst: BCMP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:752,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:753,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:754,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:759,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:760,1
    - Dst: assert
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:763,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:764,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:765,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:769,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:770,1
    - Dst: PUTLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:771,1
    - Dst: assert
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:773,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:774,1
    - Dst: t_serverresponse
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:774,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:775,1
    - Dst: pncrypt_setkey
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:777,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:784,1
    - Dst: DesEncrypt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:788,1
    - Dst: ppp_dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:789,1
    - Dst: BZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:792,1
    - Dst: b64enc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:794,1
    - Dst: DesEncrypt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:797,1
    - Dst: b64enc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:798,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:803,1
    - Dst: magic_random_bytes
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:805,1
    - Dst: DesEncrypt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:807,1
    - Dst: b64enc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:808,1
    - Dst: b64flush
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:810,1
    - Dst: magic_random_bytes
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:817,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:818,1
    - Dst: SHA1Init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:822,1
    - Dst: SHA1Update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:823,1
    - Dst: SHA1Update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:824,1
    - Dst: SHA1Update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:826,1
    - Dst: SHA1Final
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:829,1
    - Dst: SHA1Init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:833,1
    - Dst: SHA1Update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:834,1
    - Dst: SHA1Update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:835,1
    - Dst: SHA1Update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:837,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:844,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:845,1
    - Dst: magic_pow
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:847,1
    - Dst: magic_random_bytes
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:848,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:849,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:850,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:859,1
    - Dst: pbuf_realloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:861,1
    - Dst: ppp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:862,1
    - Dst: TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:867,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 161
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 868
      start: 638
    functionDepth: 6
    functionLinenumber: 638
    functionLinenumberEnd: 868
    functionName: eap_send_request
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - pncrypt_setkey
    - SHA1Update
    - b64flush
    - BCMP
    - BZERO
    - SHA1Final
    - PUTLONG
    - ppp_write
    - b64enc
    - pbuf_free
    - PUTSHORT
    - SHA1Init
    - eap_send_failure
    - PUTCHAR
    - MEMCPY
    - strlen
    - t_serverresponse
    - pbuf_realloc
    - DesEncrypt
    - assert
    - ppp_dbglog
    - pbuf_alloc
    - ppp_error
    - magic_random_bytes
    - INCPTR
    - MAKEHEADER
    - TIMEOUT
    - eap_figure_next_state
    - magic_pow
    linkageType: ''
    returnType: void
    signature: eap_send_request(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:880,1
    - Dst: eap_send_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:894,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - pcb
    - localname
    argTypes:
    - ppp_pcb*
    - char*
    constantsTouched: []
    func_position:
      end: 895
      start: 876
    functionDepth: 7
    functionLinenumber: 876
    functionLinenumberEnd: 895
    functionName: eap_authpeer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - strlen
    - eap_send_request
    linkageType: ''
    returnType: void
    signature: eap_authpeer(ppp_pcb *pcb, const char *localname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: eap_server_active
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:904,1
    - Dst: eap_send_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 909
      start: 901
    functionDepth: 7
    functionLinenumber: 901
    functionLinenumberEnd: 909
    functionName: eap_server_timeout
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - eap_server_active
    - eap_send_request
    linkageType: ''
    returnType: void
    signature: eap_server_timeout(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: eap_figure_next_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:925,1
    - Dst: eap_send_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 928
      start: 916
    functionDepth: 7
    functionLinenumber: 916
    functionLinenumberEnd: 928
    functionName: eap_rechallenge
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - eap_figure_next_state
    - eap_send_request
    linkageType: ''
    returnType: void
    signature: eap_rechallenge(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: eap_send_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:940,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 941
      start: 930
    functionDepth: 7
    functionLinenumber: 930
    functionLinenumberEnd: 941
    functionName: srp_lwrechallenge
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - eap_send_request
    linkageType: ''
    returnType: void
    signature: srp_lwrechallenge(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 957
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 957
    functionName: eap_lowerup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: eap_lowerup(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: eap_client_active
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:966,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:967,1
    - Dst: eap_server_active
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:970,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:972,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:978,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:982,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 989
      start: 964
    functionDepth: 0
    functionLinenumber: 964
    functionLinenumberEnd: 989
    functionName: eap_lowerdown
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - eap_client_active
    - UNTIMEOUT
    - eap_server_active
    linkageType: ''
    returnType: void
    signature: eap_lowerdown(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: eap_client_active
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:999,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1000,1
    - Dst: auth_withpeer_fail
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1001,1
    - Dst: eap_server_active
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1004,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1005,1
    - Dst: auth_peer_fail
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1006,1
    - Dst: eap_lowerdown
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1009,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 1010
      start: 997
    functionDepth: 1
    functionLinenumber: 997
    functionLinenumberEnd: 1010
    functionName: eap_protrej
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - auth_withpeer_fail
    - ppp_error
    - auth_peer_fail
    - eap_client_active
    - eap_lowerdown
    - eap_server_active
    linkageType: ''
    returnType: void
    signature: eap_protrej(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1021,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1025,1
    - Dst: MAKEHEADER
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1031,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1033,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1034,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1036,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1037,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1039,1
    - Dst: ppp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1042,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 5
    argNames:
    - pcb
    - id
    - typenum
    - str
    - lenstr
    argTypes:
    - ppp_pcb*
    - u_char
    - u_char
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 1043
      start: 1015
    functionDepth: 4
    functionLinenumber: 1015
    functionLinenumberEnd: 1043
    functionName: eap_send_response
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - ppp_write
    - PUTCHAR
    - MEMCPY
    - MAKEHEADER
    - pbuf_free
    - PUTSHORT
    linkageType: ''
    returnType: void
    signature: eap_send_response(ppp_pcb *pcb, u_char id, u_char typenum, const u_char
      *str, int lenstr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1055,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1059,1
    - Dst: MAKEHEADER
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1065,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1067,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1068,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1070,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1071,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1072,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1073,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1074,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1076,1
    - Dst: ppp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1079,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 5
    argNames:
    - pcb
    - id
    - hash
    - name
    - namelen
    argTypes:
    - ppp_pcb*
    - u_char
    - u_char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1080
      start: 1048
    functionDepth: 4
    functionLinenumber: 1048
    functionLinenumberEnd: 1080
    functionName: eap_chap_response
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - ppp_write
    - PUTCHAR
    - MEMCPY
    - INCPTR
    - MAKEHEADER
    - pbuf_free
    - PUTSHORT
    linkageType: ''
    returnType: void
    signature: eap_chap_response(ppp_pcb *pcb, u_char id, u_char *hash, const char
      *name, int namelen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1173,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1177,1
    - Dst: MAKEHEADER
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1183,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1185,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1186,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1188,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1189,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1190,1
    - Dst: ppp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - pcb
    - id
    - type
    argTypes:
    - ppp_pcb*
    - u_char
    - u_char
    constantsTouched: []
    func_position:
      end: 1193
      start: 1167
    functionDepth: 4
    functionLinenumber: 1167
    functionLinenumberEnd: 1193
    functionName: eap_send_nak
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - ppp_write
    - PUTCHAR
    - MAKEHEADER
    - pbuf_free
    - PUTSHORT
    linkageType: ''
    returnType: void
    signature: eap_send_nak(ppp_pcb *pcb, u_char id, u_char type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getpwuid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1204,1
    - Dst: getuid
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1204,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1210,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1210,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1211,1
    - Dst: slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1214,1
    - Dst: ppp_dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1216,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1196
    functionDepth: 1
    functionLinenumber: 1196
    functionLinenumberEnd: 1220
    functionName: name_of_pn_file
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - getuid
    - getpwuid
    - strlen
    - slprintf
    - malloc
    - ppp_dbglog
    linkageType: ''
    returnType: char
    signature: '*

      name_of_pn_file()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: name_of_pn_file
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1243,1
    - Dst: unlink
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1244,1
    - Dst: free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1238
    functionDepth: 2
    functionLinenumber: 1238
    functionLinenumberEnd: 1247
    functionName: remove_pn_file
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - unlink
    - free
    - name_of_pn_file
    linkageType: ''
    returnType: void
    signature: remove_pn_file()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_info
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1337,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1339,1
    - Dst: auth_withpeer_fail
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1341,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1346,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1350,1
    - Dst: ppp_info
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1356,1
    - Dst: open_pn_file
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1364,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1365,1
    - Dst: read
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1366,1
    - Dst: eap_send_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1370,1
    - Dst: close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1373,1
    - Dst: remove_pn_file
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1380,1
    - Dst: eap_send_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1384,1
    - Dst: ppp_info
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1390,1
    - Dst: eap_send_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1391,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1399,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1405,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1409,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1412,1
    - Dst: eap_send_nak
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1415,1
    - Dst: ppp_dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1421,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1422,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1425,1
    - Dst: strlcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1433,1
    - Dst: get_secret
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1440,1
    - Dst: ppp_dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1442,1
    - Dst: eap_send_nak
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1443,1
    - Dst: lwip_md5_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1446,1
    - Dst: lwip_md5_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1447,1
    - Dst: lwip_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1449,1
    - Dst: lwip_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1450,1
    - Dst: BZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1451,1
    - Dst: lwip_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1452,1
    - Dst: lwip_md5_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1453,1
    - Dst: lwip_md5_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1454,1
    - Dst: eap_chap_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1455,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1462,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1468,1
    - Dst: t_clientclose
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1482,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1492,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1495,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1500,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1502,1
    - Dst: strlcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1511,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1515,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1519,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1523,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1526,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1533,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1536,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1539,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1552,1
    - Dst: t_clientopen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1566,1
    - Dst: eap_send_nak
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1569,1
    - Dst: t_clientaddexdata
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1577,1
    - Dst: t_clientgenexp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1579,1
    - Dst: eap_srp_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1580,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1587,1
    - Dst: eap_send_nak
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1588,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1597,1
    - Dst: get_srp_secret
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1602,1
    - Dst: eap_send_nak
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1610,1
    - Dst: t_clientpasswd
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1615,1
    - Dst: BZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1616,1
    - Dst: t_clientgetkey
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1618,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1621,1
    - Dst: eap_srpval_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1625,1
    - Dst: t_clientresponse
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1626,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1632,1
    - Dst: eap_send_nak
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1633,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1643,1
    - Dst: t_clientverify
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1649,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1651,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1655,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1658,1
    - Dst: write_pseudonym
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1659,1
    - Dst: eap_srp_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1667,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1672,1
    - Dst: SHA1Init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1675,1
    - Dst: SHA1Update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1677,1
    - Dst: SHA1Update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1678,1
    - Dst: SHA1Update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1680,1
    - Dst: SHA1Update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1681,1
    - Dst: SHA1Final
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1683,1
    - Dst: eap_srp_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1684,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1689,1
    - Dst: eap_send_nak
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1690,1
    - Dst: ppp_info
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1697,1
    - Dst: eap_send_nak
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1698,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1703,1
    - Dst: TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1704,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1713,1
    - Dst: t_clientclose
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1716,1
    - Dst: auth_withpeer_fail
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1717,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 264
    argCount: 4
    argNames:
    - pcb
    - inp
    - id
    - len
    argTypes:
    - ppp_pcb*
    - u_char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1719
      start: 1311
    functionDepth: 5
    functionLinenumber: 1311
    functionLinenumberEnd: 1719
    functionName: eap_request
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - lwip_md5_init
    - auth_withpeer_fail
    - eap_srpval_response
    - SHA1Update
    - lwip_md5_free
    - eap_chap_response
    - get_srp_secret
    - GETCHAR
    - t_clientaddexdata
    - close
    - BZERO
    - strcpy
    - t_clientgenexp
    - ppp_warn
    - SHA1Final
    - open_pn_file
    - t_clientgetkey
    - t_clientopen
    - lwip_md5_finish
    - lwip_md5_starts
    - t_clientclose
    - eap_srp_response
    - SHA1Init
    - UNTIMEOUT
    - lwip_md5_update
    - MEMCPY
    - ppp_info
    - strlen
    - GETLONG
    - ppp_dbglog
    - get_secret
    - ppp_error
    - remove_pn_file
    - eap_send_nak
    - t_clientpasswd
    - INCPTR
    - t_clientresponse
    - eap_send_response
    - TIMEOUT
    - write_pseudonym
    - read
    - t_clientverify
    - strlcpy
    linkageType: ''
    returnType: void
    signature: eap_request(ppp_pcb *pcb, u_char *inp, int id, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1741,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1749,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1753,1
    - Dst: ppp_dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1759,1
    - Dst: ppp_info
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1763,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1767,1
    - Dst: eap_figure_next_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1770,1
    - Dst: ppp_dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1774,1
    - Dst: ppp_info
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1779,1
    - Dst: eap_figure_next_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1780,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1784,1
    - Dst: eap_figure_next_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1793,1
    - Dst: eap_figure_next_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1801,1
    - Dst: ppp_dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1809,1
    - Dst: eap_figure_next_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1819,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1830,1
    - Dst: eap_figure_next_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1831,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1835,1
    - Dst: eap_figure_next_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1836,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1839,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1842,1
    - Dst: eap_figure_next_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1843,1
    - Dst: ppp_dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1849,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1850,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1853,1
    - Dst: strlcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1861,1
    - Dst: get_secret
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1868,1
    - Dst: ppp_dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1870,1
    - Dst: eap_send_failure
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1871,1
    - Dst: lwip_md5_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1874,1
    - Dst: lwip_md5_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1875,1
    - Dst: lwip_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1876,1
    - Dst: lwip_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1877,1
    - Dst: BZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1878,1
    - Dst: lwip_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1879,1
    - Dst: lwip_md5_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1880,1
    - Dst: lwip_md5_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1881,1
    - Dst: BCMP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1882,1
    - Dst: eap_send_failure
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1883,1
    - Dst: eap_send_success
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1887,1
    - Dst: eap_figure_next_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1888,1
    - Dst: TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1890,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1896,1
    - Dst: eap_figure_next_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1897,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1900,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1905,1
    - Dst: eap_figure_next_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1906,1
    - Dst: assert
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1912,1
    - Dst: t_servergetkey
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1913,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1916,1
    - Dst: eap_send_failure
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1917,1
    - Dst: eap_figure_next_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1919,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1925,1
    - Dst: eap_figure_next_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1926,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1930,1
    - Dst: eap_figure_next_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1932,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1935,1
    - Dst: assert
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1937,1
    - Dst: t_serververify
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1938,1
    - Dst: ppp_info
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1939,1
    - Dst: eap_send_failure
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1940,1
    - Dst: eap_figure_next_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1943,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1948,1
    - Dst: eap_send_failure
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1949,1
    - Dst: eap_send_success
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1953,1
    - Dst: eap_figure_next_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1954,1
    - Dst: TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1956,1
    - Dst: TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1959,1
    - Dst: ppp_info
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1965,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1969,1
    - Dst: SHA1Init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1973,1
    - Dst: SHA1Update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1975,1
    - Dst: SHA1Update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1976,1
    - Dst: SHA1Update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1978,1
    - Dst: SHA1Update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1979,1
    - Dst: SHA1Final
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1981,1
    - Dst: BCMP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1982,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1983,1
    - Dst: eap_send_failure
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1984,1
    - Dst: TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1989,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:1998,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2003,1
    - Dst: eap_send_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2009,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 219
    argCount: 4
    argNames:
    - pcb
    - inp
    - id
    - len
    argTypes:
    - ppp_pcb*
    - u_char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2011
      start: 1725
    functionDepth: 7
    functionLinenumber: 1725
    functionLinenumberEnd: 2011
    functionName: eap_response
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - lwip_md5_init
    - eap_send_request
    - t_serververify
    - SHA1Update
    - lwip_md5_free
    - GETCHAR
    - BCMP
    - BZERO
    - SHA1Final
    - lwip_md5_finish
    - eap_figure_next_state
    - lwip_md5_starts
    - t_servergetkey
    - SHA1Init
    - UNTIMEOUT
    - eap_send_failure
    - lwip_md5_update
    - MEMCPY
    - ppp_info
    - GETLONG
    - assert
    - ppp_dbglog
    - get_secret
    - eap_send_success
    - ppp_error
    - TIMEOUT
    - strlcpy
    linkageType: ''
    returnType: void
    signature: eap_response(ppp_pcb *pcb, u_char *inp, int id, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2018,1
    - Dst: eap_client_active
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2020,1
    - Dst: ppp_dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2021,1
    - Dst: eap_state_name
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2022,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2028,1
    - Dst: PRINTMSG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2033,1
    - Dst: auth_withpeer_success
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2037,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - pcb
    - inp
    - id
    - len
    argTypes:
    - ppp_pcb*
    - u_char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2038
      start: 2017
    functionDepth: 1
    functionLinenumber: 2017
    functionLinenumberEnd: 2038
    functionName: eap_success
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - PRINTMSG
    - UNTIMEOUT
    - eap_state_name
    - eap_client_active
    - auth_withpeer_success
    - LWIP_UNUSED_ARG
    - ppp_dbglog
    linkageType: ''
    returnType: void
    signature: eap_success(ppp_pcb *pcb, u_char *inp, int id, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2044,1
    - Dst: eap_client_active
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2046,1
    - Dst: ppp_dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2047,1
    - Dst: eap_state_name
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2048,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2053,1
    - Dst: PRINTMSG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2058,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2063,1
    - Dst: auth_withpeer_fail
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2064,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - pcb
    - inp
    - id
    - len
    argTypes:
    - ppp_pcb*
    - u_char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2065
      start: 2043
    functionDepth: 1
    functionLinenumber: 2043
    functionLinenumberEnd: 2065
    functionName: eap_failure
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - PRINTMSG
    - UNTIMEOUT
    - auth_withpeer_fail
    - ppp_error
    - eap_state_name
    - eap_client_active
    - LWIP_UNUSED_ARG
    - ppp_dbglog
    linkageType: ''
    returnType: void
    signature: eap_failure(ppp_pcb *pcb, u_char *inp, int id, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2079,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2082,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2083,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2084,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2086,1
    - Dst: eap_request
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2095,1
    - Dst: eap_response
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2100,1
    - Dst: eap_success
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2105,1
    - Dst: eap_failure
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2109,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2114,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - pcb
    - inp
    - inlen
    argTypes:
    - ppp_pcb*
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 2117
      start: 2070
    functionDepth: 8
    functionLinenumber: 2070
    functionLinenumberEnd: 2117
    functionName: eap_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - ppp_error
    - eap_success
    - GETCHAR
    - eap_response
    - GETSHORT
    - eap_failure
    - eap_request
    - ppp_warn
    linkageType: ''
    returnType: void
    signature: eap_input(ppp_pcb *pcb, u_char *inp, int inlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2143,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2144,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2145,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2149,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2150,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2152,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2153,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2158,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2161,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2163,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2164,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2166,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2171,1
    - Dst: ppp_print_string
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2172,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2173,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2174,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2177,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2184,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2188,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2189,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2192,1
    - Dst: ppp_print_string
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2193,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2194,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2195,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2198,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2205,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2207,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2210,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2215,1
    - Dst: ppp_print_string
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2216,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2218,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2220,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2222,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2224,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2228,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2229,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2231,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2236,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2238,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2240,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2243,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2245,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2246,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2252,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2253,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2260,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2263,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2267,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2271,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2273,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2276,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2277,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2283,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2284,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2299,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2301,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2302,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2304,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2308,1
    - Dst: ppp_print_string
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2309,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2310,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2311,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2318,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2321,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2323,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2324,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2325,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2326,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2331,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2334,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2338,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2339,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2342,1
    - Dst: ppp_print_string
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2343,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2344,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2345,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2348,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2355,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2357,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2360,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2361,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2368,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2371,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2375,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2377,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2379,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2387,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2391,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2409,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2414,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2416,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c:2417,1
    CyclomaticComplexity: 83
    EdgeCount: 83
    ICount: 265
    argCount: 3
    argNames:
    - inp
    - inlen
    - arg
    argTypes:
    - u_char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 2420
      start: 2135
    functionDepth: 1
    functionLinenumber: 2135
    functionLinenumberEnd: 2420
    functionName: eap_printpkt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
    functionUses: 0
    functionsReached:
    - LWIP_ARRAYSIZE
    - printer
    - GETCHAR
    - INCPTR
    - ppp_print_string
    - GETLONG
    - GETSHORT
    linkageType: ''
    returnType: int
    signature: eap_printpkt(const u_char *inp, int inlen, void (*printer) (void *,
      const char *, ...), void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:94,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - dest
    - src
    - len
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: ppp_strlcpy
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c
    functionUses: 1
    functionsReached:
    - strcpy
    - strncpy
    linkageType: ''
    returnType: size_t
    signature: ppp_strlcpy(char *dest, const char *src, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_strlcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dest
    - src
    - len
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: ppp_strlcat
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c
    functionUses: 0
    functionsReached:
    - ppp_strlcpy
    linkageType: ''
    returnType: size_t
    signature: ppp_strlcat(char *dest, const char *src, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:126,1
    - Dst: ppp_vslprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:127,1
    - Dst: va_end
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - buflen
    - fmt
    argTypes:
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: ppp_slprintf
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c
    functionUses: 4
    functionsReached:
    - va_start
    - ppp_vslprintf
    - va_end
    linkageType: ''
    returnType: int
    signature: ppp_slprintf(char *buf, int buflen, const char *fmt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:164,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:180,1
    - Dst: isdigit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:183,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:191,1
    - Dst: isdigit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:195,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:210,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:218,1
    - Dst: OUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:222,1
    - Dst: OUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:223,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:229,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:238,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:242,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:247,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:252,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:258,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:261,1
    - Dst: strerror
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:267,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:271,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:272,1
    - Dst: ppp_slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:273,1
    - Dst: time
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:279,1
    - Dst: ctime
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:280,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:288,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:294,1
    - Dst: OUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:302,1
    - Dst: OUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:303,1
    - Dst: OUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:307,1
    - Dst: OUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:310,1
    - Dst: OUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:312,1
    - Dst: OUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:313,1
    - Dst: OUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:314,1
    - Dst: OUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:315,1
    - Dst: OUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:317,1
    - Dst: OUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:318,1
    - Dst: OUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:319,1
    - Dst: OUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:323,1
    - Dst: OUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:325,1
    - Dst: OUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:326,1
    - Dst: OUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:330,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:337,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:338,1
    - Dst: ppp_format_packet
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:339,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:345,1
    - Dst: OUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:349,1
    - Dst: OUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:350,1
    - Dst: OUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:351,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:383,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:398,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 248
    argCount: 4
    argNames:
    - buf
    - buflen
    - fmt
    - args
    argTypes:
    - char*
    - int
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 404
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 404
    functionName: ppp_vslprintf
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c
    functionUses: 1
    functionsReached:
    - ppp_slprintf
    - strerror
    - isdigit
    - va_arg
    - ppp_format_packet
    - strlen
    - memcpy
    - lwip_ntohl
    - ctime
    - OUTCHAR
    - time
    linkageType: ''
    returnType: int
    signature: ppp_vslprintf(char *buf, int buflen, const char *fmt, va_list args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:415,1
    - Dst: ppp_vslprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:417,1
    - Dst: va_end
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - arg
    - fmt
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 422
      start: 410
    functionDepth: 3
    functionLinenumber: 410
    functionLinenumberEnd: 422
    functionName: ppp_vslp_printer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c
    functionUses: 0
    functionsReached:
    - va_start
    - ppp_vslprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: ppp_vslp_printer(void *arg, const char *fmt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:455,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:461,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:463,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:471,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:473,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:475,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:478,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:483,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:485,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - p
    - len
    - arg
    argTypes:
    - u_char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 486
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 486
    functionName: ppp_format_packet
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c
    functionUses: 1
    functionsReached:
    - printer
    - GETSHORT
    linkageType: ''
    returnType: void
    signature: "ppp_format_packet(const u_char *p, int len,\n\t\tvoid (*printer) (void
      *, const char *, ...), void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_log_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 518
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 518
    functionName: end_pr_log
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c
    functionUses: 0
    functionsReached:
    - ppp_log_write
    linkageType: ''
    returnType: void
    signature: end_pr_log()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:531,1
    - Dst: ppp_vslprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:532,1
    - Dst: va_end
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:533,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:536,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:541,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:547,1
    - Dst: ppp_log_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:550,1
    - Dst: ppp_log_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:556,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:558,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:564,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - arg
    - fmt
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 567
      start: 523
    functionDepth: 3
    functionLinenumber: 523
    functionLinenumberEnd: 567
    functionName: pr_log
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - ppp_log_write
    - strchr
    - memcpy
    - ppp_vslprintf
    linkageType: ''
    returnType: void
    signature: pr_log (void *arg, const char *fmt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:577,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:582,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:583,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:587,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:590,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:593,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:596,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:601,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - p
    - len
    - arg
    argTypes:
    - u_char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 602
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 602
    functionName: ppp_print_string
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c
    functionUses: 5
    functionsReached:
    - printer
    linkageType: ''
    returnType: void
    signature: ppp_print_string(const u_char *p, int len, void (*printer) (void *,
      const char *, ...), void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_vslprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:610,1
    - Dst: ppp_log_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - level
    - fmt
    - args
    argTypes:
    - int
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 612
      start: 607
    functionDepth: 3
    functionLinenumber: 607
    functionLinenumberEnd: 612
    functionName: ppp_logit
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c
    functionUses: 0
    functionsReached:
    - ppp_log_write
    - ppp_vslprintf
    linkageType: ''
    returnType: void
    signature: ppp_logit(int level, const char *fmt, va_list args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:615,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:616,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:617,1
    - Dst: write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:624,1
    - Dst: write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:625,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - level
    - buf
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 629
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 629
    functionName: ppp_log_write
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c
    functionUses: 3
    functionsReached:
    - LWIP_UNUSED_ARG
    - write
    - PPPDEBUG
    linkageType: ''
    returnType: void
    signature: ppp_log_write(int level, char *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:637,1
    - Dst: ppp_logit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:638,1
    - Dst: va_end
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:639,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 642
      start: 634
    functionDepth: 4
    functionLinenumber: 634
    functionLinenumberEnd: 642
    functionName: ppp_fatal
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c
    functionUses: 2
    functionsReached:
    - va_start
    - ppp_logit
    - va_end
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: ppp_fatal(const char *fmt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:650,1
    - Dst: ppp_logit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:651,1
    - Dst: va_end
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 656
      start: 647
    functionDepth: 4
    functionLinenumber: 647
    functionLinenumberEnd: 656
    functionName: ppp_error
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c
    functionUses: 25
    functionsReached:
    - va_start
    - ppp_logit
    - va_end
    linkageType: ''
    returnType: void
    signature: ppp_error(const char *fmt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:664,1
    - Dst: ppp_logit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:665,1
    - Dst: va_end
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 667
      start: 661
    functionDepth: 4
    functionLinenumber: 661
    functionLinenumberEnd: 667
    functionName: ppp_warn
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c
    functionUses: 6
    functionsReached:
    - va_start
    - ppp_logit
    - va_end
    linkageType: ''
    returnType: void
    signature: ppp_warn(const char *fmt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:675,1
    - Dst: ppp_logit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:676,1
    - Dst: va_end
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 678
      start: 672
    functionDepth: 4
    functionLinenumber: 672
    functionLinenumberEnd: 678
    functionName: ppp_notice
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c
    functionUses: 6
    functionsReached:
    - va_start
    - ppp_logit
    - va_end
    linkageType: ''
    returnType: void
    signature: ppp_notice(const char *fmt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:686,1
    - Dst: ppp_logit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:687,1
    - Dst: va_end
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 689
      start: 683
    functionDepth: 4
    functionLinenumber: 683
    functionLinenumberEnd: 689
    functionName: ppp_info
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c
    functionUses: 4
    functionsReached:
    - va_start
    - ppp_logit
    - va_end
    linkageType: ''
    returnType: void
    signature: ppp_info(const char *fmt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:697,1
    - Dst: ppp_logit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:698,1
    - Dst: va_end
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 700
      start: 694
    functionDepth: 4
    functionLinenumber: 694
    functionLinenumberEnd: 700
    functionName: ppp_dbglog
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c
    functionUses: 7
    functionsReached:
    - va_start
    - ppp_logit
    - va_end
    linkageType: ''
    returnType: void
    signature: ppp_dbglog(const char *fmt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:729,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 4
    argNames:
    - pcb
    - tag
    - p
    - len
    argTypes:
    - ppp_pcb*
    - char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 730
      start: 707
    functionDepth: 5
    functionLinenumber: 707
    functionLinenumberEnd: 730
    functionName: ppp_dump_packet
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c
    functionUses: 0
    functionsReached:
    - ppp_dbglog
    linkageType: ''
    returnType: void
    signature: ppp_dump_packet(ppp_pcb *pcb, const char *tag, unsigned char *p, int
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:747,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 759
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 759
    functionName: complete_read
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: ssize_t
    signature: complete_read(int fd, void *buf, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rmlock
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:949,1
    - Dst: unlink
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c:951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 955
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 955
    functionName: unlock
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c
    functionUses: 71
    functionsReached:
    - unlink
    - rmlock
    linkageType: ''
    returnType: void
    signature: unlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 147
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 147
    functionName: upap_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: upap_init(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:162,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:162,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:164,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:164,1
    - Dst: upap_sauthreq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - pcb
    - user
    - password
    argTypes:
    - ppp_pcb*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 175
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 175
    functionName: upap_authwithpeer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c
    functionUses: 0
    functionsReached:
    - strlen
    - upap_sauthreq
    - LWIP_MIN
    linkageType: ''
    returnType: void
    signature: upap_authwithpeer(ppp_pcb *pcb, const char *user, const char *password)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 195
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 195
    functionName: upap_authpeer
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c
    functionUses: 0
    functionsReached:
    - TIMEOUT
    linkageType: ''
    returnType: void
    signature: upap_authpeer(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:209,1
    - Dst: auth_withpeer_fail
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:211,1
    - Dst: upap_sauthreq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 216
      start: 201
    functionDepth: 5
    functionLinenumber: 201
    functionLinenumberEnd: 216
    functionName: upap_timeout
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c
    functionUses: 0
    functionsReached:
    - auth_withpeer_fail
    - upap_sauthreq
    - ppp_error
    linkageType: ''
    returnType: void
    signature: upap_timeout(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: auth_peer_fail
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 231
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 231
    functionName: upap_reqtimeout
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c
    functionUses: 0
    functionsReached:
    - auth_peer_fail
    linkageType: ''
    returnType: void
    signature: upap_reqtimeout(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: upap_sauthreq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:245,1
    - Dst: TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:254,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 257
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 257
    functionName: upap_lowerup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c
    functionUses: 0
    functionsReached:
    - TIMEOUT
    - upap_sauthreq
    linkageType: ''
    returnType: void
    signature: upap_lowerup(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:268,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 278
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 278
    functionName: upap_lowerdown
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c
    functionUses: 0
    functionsReached:
    - UNTIMEOUT
    linkageType: ''
    returnType: void
    signature: upap_lowerdown(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:289,1
    - Dst: auth_withpeer_fail
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:290,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:294,1
    - Dst: auth_peer_fail
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:295,1
    - Dst: upap_lowerdown
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 299
      start: 286
    functionDepth: 5
    functionLinenumber: 286
    functionLinenumberEnd: 299
    functionName: upap_protrej
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c
    functionUses: 0
    functionsReached:
    - auth_withpeer_fail
    - upap_lowerdown
    - ppp_error
    - auth_peer_fail
    linkageType: ''
    returnType: void
    signature: upap_protrej(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UPAPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:316,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:319,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:320,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:321,1
    - Dst: UPAPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:323,1
    - Dst: UPAPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:327,1
    - Dst: upap_rauthreq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:338,1
    - Dst: upap_rauthack
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:343,1
    - Dst: upap_rauthnak
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:347,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - pcb
    - inpacket
    - l
    argTypes:
    - ppp_pcb*
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 353
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 353
    functionName: upap_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c
    functionUses: 0
    functionsReached:
    - UPAPDEBUG
    - upap_rauthreq
    - GETCHAR
    - upap_rauthnak
    - GETSHORT
    - upap_rauthack
    linkageType: ''
    returnType: void
    signature: upap_input(ppp_pcb *pcb, u_char *inpacket, int l)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: upap_sresp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:376,1
    - Dst: upap_sresp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:380,1
    - Dst: UPAPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:388,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:391,1
    - Dst: UPAPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:394,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:398,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:399,1
    - Dst: UPAPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:401,1
    - Dst: auth_check_passwd
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:411,1
    - Dst: BZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:414,1
    - Dst: auth_number
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:423,1
    - Dst: warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:426,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:430,1
    - Dst: upap_sresp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:435,1
    - Dst: ppp_slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:438,1
    - Dst: ppp_notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:442,1
    - Dst: auth_peer_success
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:443,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:446,1
    - Dst: auth_peer_fail
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:447,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:451,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 4
    argNames:
    - pcb
    - inp
    - id
    - len
    argTypes:
    - ppp_pcb*
    - u_char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 452
      start: 359
    functionDepth: 5
    functionLinenumber: 359
    functionLinenumberEnd: 452
    functionName: upap_rauthreq
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c
    functionUses: 1
    functionsReached:
    - UNTIMEOUT
    - ppp_slprintf
    - auth_peer_fail
    - auth_check_passwd
    - UPAPDEBUG
    - upap_sresp
    - GETCHAR
    - INCPTR
    - auth_number
    - strlen
    - warn
    - BZERO
    - ppp_notice
    - auth_peer_success
    - ppp_warn
    linkageType: ''
    returnType: void
    signature: upap_rauthreq(ppp_pcb *pcb, u_char *inp, int id, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:461,1
    - Dst: UPAPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:470,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:472,1
    - Dst: UPAPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:476,1
    - Dst: PRINTMSG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:480,1
    - Dst: auth_withpeer_success
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:486,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - pcb
    - inp
    - id
    - len
    argTypes:
    - ppp_pcb*
    - u_char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 487
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 487
    functionName: upap_rauthack
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c
    functionUses: 1
    functionsReached:
    - PRINTMSG
    - auth_withpeer_success
    - UPAPDEBUG
    - GETCHAR
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: void
    signature: upap_rauthack(ppp_pcb *pcb, u_char *inp, int id, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:496,1
    - Dst: UPAPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:505,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:507,1
    - Dst: UPAPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:511,1
    - Dst: PRINTMSG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:515,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:521,1
    - Dst: auth_withpeer_fail
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:522,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - pcb
    - inp
    - id
    - len
    argTypes:
    - ppp_pcb*
    - u_char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 523
      start: 493
    functionDepth: 5
    functionLinenumber: 493
    functionLinenumberEnd: 523
    functionName: upap_rauthnak
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c
    functionUses: 1
    functionsReached:
    - PRINTMSG
    - auth_withpeer_fail
    - ppp_error
    - UPAPDEBUG
    - GETCHAR
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: void
    signature: upap_rauthnak(ppp_pcb *pcb, u_char *inp, int id, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:536,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:540,1
    - Dst: MAKEHEADER
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:545,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:547,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:548,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:549,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:550,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:551,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:552,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:553,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:554,1
    - Dst: ppp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:556,1
    - Dst: TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 561
      start: 529
    functionDepth: 4
    functionLinenumber: 529
    functionLinenumberEnd: 561
    functionName: upap_sauthreq
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c
    functionUses: 3
    functionsReached:
    - pbuf_alloc
    - ppp_write
    - PUTCHAR
    - MEMCPY
    - INCPTR
    - MAKEHEADER
    - pbuf_free
    - TIMEOUT
    - PUTSHORT
    linkageType: ''
    returnType: void
    signature: upap_sauthreq(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:573,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:577,1
    - Dst: MAKEHEADER
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:582,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:584,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:585,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:586,1
    - Dst: PUTCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:587,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:588,1
    - Dst: ppp_write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 5
    argNames:
    - pcb
    - code
    - id
    - msg
    - msglen
    argTypes:
    - ppp_pcb*
    - u_char
    - u_char
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 591
      start: 567
    functionDepth: 4
    functionLinenumber: 567
    functionLinenumberEnd: 591
    functionName: upap_sresp
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c
    functionUses: 1
    functionsReached:
    - pbuf_alloc
    - ppp_write
    - PUTCHAR
    - MEMCPY
    - MAKEHEADER
    - pbuf_free
    - PUTSHORT
    linkageType: ''
    returnType: void
    signature: upap_sresp(ppp_pcb *pcb, u_char code, u_char id, const char *msg, int
      msglen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:611,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:612,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:613,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:617,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:618,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:620,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:621,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:637,1
    - Dst: ppp_print_string
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:638,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:639,1
    - Dst: ppp_print_string
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:644,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:660,1
    - Dst: ppp_print_string
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:661,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:669,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c:670,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 3
    argNames:
    - p
    - plen
    - arg
    argTypes:
    - u_char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 674
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 674
    functionName: upap_printpkt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c
    functionUses: 0
    functionsReached:
    - LWIP_ARRAYSIZE
    - printer
    - GETCHAR
    - ppp_print_string
    - GETSHORT
    linkageType: ''
    returnType: int
    signature: upap_printpkt(const u_char *p, int plen, void (*printer) (void *, const
      char *, ...), void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:117,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:118,1
    - Dst: LWIP_MEMPOOL_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:125,1
    - Dst: udp_new_ip_type
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:130,1
    - Dst: IP_GET_TYPE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:130,1
    - Dst: udp_recv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:134,1
    - Dst: ppp_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:136,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:141,1
    - Dst: ip_addr_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:146,1
    - Dst: udp_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:156,1
    - Dst: LWIP_MEMPOOL_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:158,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 8
    argNames:
    - pppif
    - netif
    - ipaddr
    - port
    - secret
    - secret_len
    - link_status_cb
    - ctx_cb
    argTypes:
    - struct netif*
    - struct netif*
    - ip_addr_t*
    - u16_t
    - u8_t*
    - u8_t
    - ppp_link_status_cb_fn
    - void*
    constantsTouched: []
    func_position:
      end: 162
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 162
    functionName: pppol2tp_create
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c
    functionUses: 1
    functionsReached:
    - ip_addr_copy
    - udp_remove
    - memset
    - LWIP_MEMPOOL_FREE
    - udp_new_ip_type
    - udp_recv
    - IP_GET_TYPE
    - LWIP_UNUSED_ARG
    - LWIP_MEMPOOL_ALLOC
    - ppp_new
    linkageType: ''
    returnType: ppp_pcb
    signature: "*pppol2tp_create(struct netif *pppif,\n       struct netif *netif,
      const ip_addr_t *ipaddr, u16_t port,\n       const u8_t *secret, u8_t secret_len,\n
      \      ppp_link_status_cb_fn link_status_cb, void *ctx_cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:172,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:175,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:177,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:178,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:179,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:180,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:184,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:185,1
    - Dst: pppol2tp_xmit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:190,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:192,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:193,1
    - Dst: MIB2_STATS_NETIF_ADD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:197,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:198,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - ppp
    - ctx
    - p
    argTypes:
    - ppp_pcb*
    - void*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 201
      start: 165
    functionDepth: 4
    functionLinenumber: 165
    functionLinenumberEnd: 201
    functionName: pppol2tp_write
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c
    functionUses: 0
    functionsReached:
    - pbuf_cat
    - pppol2tp_xmit
    - pbuf_alloc
    - pbuf_header
    - LINK_STATS_INC
    - pbuf_free
    - MIB2_STATS_NETIF_ADD
    - LWIP_UNUSED_ARG
    - MIB2_STATS_NETIF_INC
    linkageType: ''
    returnType: err_t
    signature: pppol2tp_write(ppp_pcb *ppp, void *ctx, struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:212,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:216,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:218,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:219,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:220,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:224,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:227,1
    - Dst: pbuf_chain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:229,1
    - Dst: pppol2tp_xmit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:234,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:235,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:236,1
    - Dst: MIB2_STATS_NETIF_ADD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:240,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:241,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 4
    argNames:
    - ppp
    - ctx
    - p
    - protocol
    argTypes:
    - ppp_pcb*
    - void*
    - struct pbuf*
    - u_short
    constantsTouched: []
    func_position:
      end: 244
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 244
    functionName: pppol2tp_netif_output
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c
    functionUses: 0
    functionsReached:
    - pppol2tp_xmit
    - pbuf_alloc
    - pbuf_header
    - LINK_STATS_INC
    - MIB2_STATS_NETIF_ADD
    - LWIP_UNUSED_ARG
    - MIB2_STATS_NETIF_INC
    - PUTSHORT
    - pbuf_chain
    linkageType: ''
    returnType: err_t
    signature: pppol2tp_netif_output(ppp_pcb *ppp, void *ctx, struct pbuf *p, u_short
      protocol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:249,1
    - Dst: sys_untimeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:251,1
    - Dst: udp_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:252,1
    - Dst: LWIP_MEMPOOL_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ppp
    - ctx
    argTypes:
    - ppp_pcb*
    - void*
    constantsTouched: []
    func_position:
      end: 255
      start: 247
    functionDepth: 4
    functionLinenumber: 247
    functionLinenumberEnd: 255
    functionName: pppol2tp_destroy
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - sys_untimeout
    - LWIP_MEMPOOL_FREE
    - udp_remove
    linkageType: ''
    returnType: err_t
    signature: pppol2tp_destroy(ppp_pcb *ppp, void *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IP_IS_V6_VAL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:306,1
    - Dst: udp_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:307,1
    - Dst: udp_bind
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:310,1
    - Dst: magic_random_bytes
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:315,1
    - Dst: magic
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:320,1
    - Dst: pppol2tp_send_sccrq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:325,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:326,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:328,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 2
    argNames:
    - ppp
    - ctx
    argTypes:
    - ppp_pcb*
    - void*
    constantsTouched: []
    func_position:
      end: 329
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 329
    functionName: pppol2tp_connect
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c
    functionUses: 0
    functionsReached:
    - udp_bind
    - magic
    - pppol2tp_send_sccrq
    - sys_timeout
    - magic_random_bytes
    - IP_IS_V6_VAL
    - PPPDEBUG
    linkageType: ''
    returnType: void
    signature: pppol2tp_connect(ppp_pcb *ppp, void *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pppol2tp_send_stopccn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:336,1
    - Dst: sys_untimeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:339,1
    - Dst: ppp_link_end
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ppp
    - ctx
    argTypes:
    - ppp_pcb*
    - void*
    constantsTouched: []
    func_position:
      end: 342
      start: 332
    functionDepth: 4
    functionLinenumber: 332
    functionLinenumberEnd: 342
    functionName: pppol2tp_disconnect
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c
    functionUses: 0
    functionsReached:
    - sys_untimeout
    - pppol2tp_send_stopccn
    - ppp_link_end
    linkageType: ''
    returnType: void
    signature: pppol2tp_disconnect(ppp_pcb *ppp, void *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:349,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:356,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:373,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:378,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:383,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:389,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:410,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:415,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:416,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:418,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:419,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:422,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:424,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:431,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:437,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:442,1
    - Dst: pppol2tp_dispatch_control_packet
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:447,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:456,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:460,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:470,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:472,1
    - Dst: ppp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:476,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:480,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:482,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 117
    argCount: 5
    argNames:
    - arg
    - pcb
    - p
    - addr
    - port
    argTypes:
    - void*
    - struct udp_pcb*
    - struct pbuf*
    - ip_addr_t*
    - u16_t
    constantsTouched: []
    func_position:
      end: 483
      start: 345
    functionDepth: 4
    functionLinenumber: 345
    functionLinenumberEnd: 483
    functionName: pppol2tp_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c
    functionUses: 0
    functionsReached:
    - pppol2tp_dispatch_control_packet
    - INCPTR
    - pbuf_header
    - PPPDEBUG
    - pbuf_free
    - LWIP_UNUSED_ARG
    - ppp_input
    - GETSHORT
    - ip_addr_cmp
    linkageType: ''
    returnType: void
    signature: pppol2tp_input(void *arg, struct udp_pcb *pcb, struct pbuf *p, const
      ip_addr_t *addr, u16_t port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_singlebuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:510,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:517,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:523,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:524,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:530,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:533,1
    - Dst: pppol2tp_send_zlb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:552,1
    - Dst: pppol2tp_abort_connect
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:554,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:580,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:583,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:584,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:589,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:593,1
    - Dst: pppol2tp_abort_connect
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:594,1
    - Dst: lwip_md5_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:598,1
    - Dst: lwip_md5_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:599,1
    - Dst: lwip_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:601,1
    - Dst: lwip_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:602,1
    - Dst: lwip_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:603,1
    - Dst: lwip_md5_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:604,1
    - Dst: lwip_md5_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:605,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:610,1
    - Dst: lwip_md5_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:614,1
    - Dst: lwip_md5_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:615,1
    - Dst: lwip_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:617,1
    - Dst: lwip_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:618,1
    - Dst: lwip_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:619,1
    - Dst: lwip_md5_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:620,1
    - Dst: lwip_md5_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:621,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:622,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:623,1
    - Dst: pppol2tp_abort_connect
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:624,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:638,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:641,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:642,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:653,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:657,1
    - Dst: magic
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:666,1
    - Dst: pppol2tp_send_scccn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:672,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:673,1
    - Dst: pppol2tp_send_icrq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:676,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:677,1
    - Dst: sys_untimeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:679,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:680,1
    - Dst: ppp_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:687,1
    - Dst: pppol2tp_send_iccn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:688,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:689,1
    - Dst: sys_untimeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:691,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:692,1
    - Dst: pppol2tp_send_zlb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:701,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:704,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 188
    argCount: 5
    argNames:
    - l2tp
    - port
    - p
    - ns
    - nr
    argTypes:
    - pppol2tp_pcb*
    - u16_t
    - struct pbuf*
    - u16_t
    - u16_t
    constantsTouched: []
    func_position:
      end: 705
      start: 486
    functionDepth: 4
    functionLinenumber: 486
    functionLinenumberEnd: 705
    functionName: pppol2tp_dispatch_control_packet
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c
    functionUses: 1
    functionsReached:
    - lwip_md5_init
    - sys_untimeout
    - lwip_md5_free
    - ppp_start
    - pppol2tp_send_scccn
    - sys_timeout
    - lwip_md5_finish
    - lwip_md5_starts
    - pppol2tp_send_iccn
    - pppol2tp_abort_connect
    - magic
    - pppol2tp_send_icrq
    - lwip_md5_update
    - pbuf_header
    - PPPDEBUG
    - GETSHORT
    - memcmp
    - INCPTR
    - pppol2tp_send_zlb
    - ppp_singlebuf
    linkageType: ''
    returnType: void
    signature: pppol2tp_dispatch_control_packet(pppol2tp_pcb *l2tp, u16_t port, struct
      pbuf *p, u16_t ns, u16_t nr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:713,1
    - Dst: pppol2tp_abort_connect
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:722,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:725,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:726,1
    - Dst: pppol2tp_send_sccrq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:727,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:729,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:731,1
    - Dst: pppol2tp_abort_connect
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:737,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:740,1
    - Dst: pppol2tp_send_scccn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:742,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:744,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:745,1
    - Dst: pppol2tp_send_icrq
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:749,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:751,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:753,1
    - Dst: pppol2tp_abort_connect
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:759,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:762,1
    - Dst: pppol2tp_send_iccn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:763,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:765,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:767,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 56
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 773
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 773
    functionName: pppol2tp_timeout
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c
    functionUses: 0
    functionsReached:
    - pppol2tp_send_scccn
    - sys_timeout
    - pppol2tp_send_sccrq
    - pppol2tp_send_icrq
    - pppol2tp_send_iccn
    - LWIP_MIN
    - PPPDEBUG
    - pppol2tp_abort_connect
    linkageType: ''
    returnType: void
    signature: pppol2tp_timeout(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:777,1
    - Dst: ppp_link_failed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - l2tp
    argTypes:
    - pppol2tp_pcb*
    constantsTouched: []
    func_position:
      end: 780
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 780
    functionName: pppol2tp_abort_connect
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c
    functionUses: 2
    functionsReached:
    - ppp_link_failed
    - PPPDEBUG
    linkageType: ''
    returnType: void
    signature: pppol2tp_abort_connect(pppol2tp_pcb *l2tp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:797,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:801,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:806,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:807,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:808,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:809,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:810,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:811,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:814,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:815,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:816,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:817,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:820,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:821,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:822,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:823,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:826,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:827,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:828,1
    - Dst: PUTLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:829,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:832,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:833,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:834,1
    - Dst: PUTLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:835,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:838,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:839,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:840,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:841,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:842,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:845,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:846,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:847,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:848,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:849,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:852,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:853,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:854,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:855,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:858,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:859,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:860,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:861,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:866,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:867,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:868,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:869,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:870,1
    - Dst: pppol2tp_udp_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:874,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 59
    argCount: 1
    argNames:
    - l2tp
    argTypes:
    - pppol2tp_pcb*
    constantsTouched: []
    func_position:
      end: 875
      start: 783
    functionDepth: 2
    functionLinenumber: 783
    functionLinenumberEnd: 875
    functionName: pppol2tp_send_sccrq
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c
    functionUses: 2
    functionsReached:
    - PUTLONG
    - pbuf_alloc
    - MEMCPY
    - INCPTR
    - pppol2tp_udp_send
    - PUTSHORT
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: pppol2tp_send_sccrq(pppol2tp_pcb *l2tp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:892,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:896,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:901,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:902,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:903,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:904,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:905,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:906,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:909,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:910,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:911,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:912,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:917,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:918,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:919,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:920,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:921,1
    - Dst: pppol2tp_udp_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:925,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 2
    argNames:
    - l2tp
    - ns
    argTypes:
    - pppol2tp_pcb*
    - u16_t
    constantsTouched: []
    func_position:
      end: 926
      start: 878
    functionDepth: 2
    functionLinenumber: 878
    functionLinenumberEnd: 926
    functionName: pppol2tp_send_scccn
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c
    functionUses: 2
    functionsReached:
    - pbuf_alloc
    - MEMCPY
    - INCPTR
    - pppol2tp_udp_send
    - PUTSHORT
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: pppol2tp_send_scccn(pppol2tp_pcb *l2tp, u16_t ns)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:939,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:943,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:948,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:949,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:950,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:951,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:952,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:953,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:956,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:957,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:958,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:959,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:962,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:963,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:964,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:965,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:968,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:969,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:970,1
    - Dst: magic
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:971,1
    - Dst: PUTLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:972,1
    - Dst: pppol2tp_udp_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:974,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 2
    argNames:
    - l2tp
    - ns
    argTypes:
    - pppol2tp_pcb*
    - u16_t
    constantsTouched: []
    func_position:
      end: 975
      start: 929
    functionDepth: 2
    functionLinenumber: 929
    functionLinenumberEnd: 975
    functionName: pppol2tp_send_icrq
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c
    functionUses: 2
    functionsReached:
    - PUTLONG
    - magic
    - pbuf_alloc
    - pppol2tp_udp_send
    - PUTSHORT
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: pppol2tp_send_icrq(pppol2tp_pcb *l2tp, u16_t ns)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:987,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:991,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:996,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:997,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:998,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:999,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1000,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1001,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1004,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1005,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1006,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1007,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1010,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1011,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1012,1
    - Dst: PUTLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1013,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1016,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1017,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1018,1
    - Dst: PUTLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1019,1
    - Dst: pppol2tp_udp_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1021,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 2
    argNames:
    - l2tp
    - ns
    argTypes:
    - pppol2tp_pcb*
    - u16_t
    constantsTouched: []
    func_position:
      end: 1022
      start: 978
    functionDepth: 2
    functionLinenumber: 978
    functionLinenumberEnd: 1022
    functionName: pppol2tp_send_iccn
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c
    functionUses: 2
    functionsReached:
    - PUTLONG
    - pbuf_alloc
    - pppol2tp_udp_send
    - PUTSHORT
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: pppol2tp_send_iccn(pppol2tp_pcb *l2tp, u16_t ns)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1034,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1038,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1043,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1044,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1045,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1046,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1047,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1048,1
    - Dst: pppol2tp_udp_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1050,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - l2tp
    - ns
    argTypes:
    - pppol2tp_pcb*
    - u16_t
    constantsTouched: []
    func_position:
      end: 1051
      start: 1025
    functionDepth: 2
    functionLinenumber: 1025
    functionLinenumberEnd: 1051
    functionName: pppol2tp_send_zlb
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c
    functionUses: 1
    functionsReached:
    - pppol2tp_udp_send
    - PUTSHORT
    - pbuf_alloc
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: pppol2tp_send_zlb(pppol2tp_pcb *l2tp, u16_t ns)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1063,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1067,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1072,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1073,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1074,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1075,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1076,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1077,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1080,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1081,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1082,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1083,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1086,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1087,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1088,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1089,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1092,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1093,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1094,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1095,1
    - Dst: pppol2tp_udp_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1097,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 2
    argNames:
    - l2tp
    - ns
    argTypes:
    - pppol2tp_pcb*
    - u16_t
    constantsTouched: []
    func_position:
      end: 1098
      start: 1054
    functionDepth: 2
    functionLinenumber: 1054
    functionLinenumberEnd: 1098
    functionName: pppol2tp_send_stopccn
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c
    functionUses: 1
    functionsReached:
    - pppol2tp_udp_send
    - PUTSHORT
    - pbuf_alloc
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: pppol2tp_send_stopccn(pppol2tp_pcb *l2tp, u16_t ns)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1104,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1106,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1107,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1108,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1113,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1114,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1115,1
    - Dst: pppol2tp_udp_send
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - l2tp
    - pb
    argTypes:
    - pppol2tp_pcb*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 1118
      start: 1100
    functionDepth: 4
    functionLinenumber: 1100
    functionLinenumberEnd: 1118
    functionName: pppol2tp_xmit
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c
    functionUses: 2
    functionsReached:
    - pbuf_header
    - LINK_STATS_INC
    - pbuf_free
    - PPPDEBUG
    - pppol2tp_udp_send
    - PUTSHORT
    linkageType: ''
    returnType: err_t
    signature: pppol2tp_xmit(pppol2tp_pcb *l2tp, struct pbuf *pb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: udp_sendto_if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1123,1
    - Dst: udp_sendto
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1125,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c:1127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - l2tp
    - pb
    argTypes:
    - pppol2tp_pcb*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 1129
      start: 1120
    functionDepth: 4
    functionLinenumber: 1120
    functionLinenumberEnd: 1129
    functionName: pppol2tp_udp_send
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c
    functionUses: 7
    functionsReached:
    - udp_sendto_if
    - pbuf_free
    - udp_sendto
    linkageType: ''
    returnType: err_t
    signature: pppol2tp_udp_send(pppol2tp_pcb *l2tp, struct pbuf *pb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_sha1_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:70,1
    - Dst: lwip_sha1_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:71,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:72,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:73,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:74,1
    - Dst: lwip_sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:75,1
    - Dst: lwip_sha1_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:76,1
    - Dst: lwip_sha1_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:77,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:78,1
    - Dst: lwip_arc4_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:81,1
    - Dst: lwip_arc4_setup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:82,1
    - Dst: lwip_arc4_crypt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:83,1
    - Dst: lwip_arc4_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:84,1
    - Dst: lwip_arc4_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:92,1
    - Dst: lwip_arc4_setup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - state
    - initial_key
    argTypes:
    - ppp_mppe_state*
    - int
    constantsTouched: []
    func_position:
      end: 94
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 94
    functionName: mppe_rekey
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c
    functionUses: 0
    functionsReached:
    - lwip_arc4_setup
    - lwip_sha1_init
    - MEMCPY
    - lwip_sha1_starts
    - lwip_sha1_update
    - lwip_sha1_finish
    - lwip_arc4_free
    - lwip_arc4_init
    - lwip_arc4_crypt
    - lwip_sha1_free
    linkageType: ''
    returnType: void
    signature: mppe_rekey(ppp_mppe_state * state, int initial_key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:101,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pcb
    - state
    - key
    argTypes:
    - ppp_pcb*
    - ppp_mppe_state*
    - u8_t*
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: mppe_set_key
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c
    functionUses: 2
    functionsReached:
    - LWIP_UNUSED_ARG
    - MEMCPY
    linkageType: ''
    returnType: void
    signature: mppe_set_key(ppp_pcb *pcb, ppp_mppe_state *state, u8_t *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:119,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:126,1
    - Dst: lcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:128,1
    - Dst: mppe_rekey
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:135,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:143,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:148,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:150,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:151,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - pcb
    - state
    - options
    argTypes:
    - ppp_pcb*
    - ppp_mppe_state*
    - u8_t
    constantsTouched: []
    func_position:
      end: 170
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 170
    functionName: mppe_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c
    functionUses: 2
    functionsReached:
    - lcp_close
    - mppe_rekey
    - MEMCPY
    - PPPDEBUG
    - sprintf
    linkageType: ''
    returnType: void
    signature: mppe_init(ppp_pcb *pcb, ppp_mppe_state *state, u8_t options)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pcb
    - state
    argTypes:
    - ppp_pcb*
    - ppp_mppe_state*
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: mppe_comp_reset
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: void
    signature: mppe_comp_reset(ppp_pcb *pcb, ppp_mppe_state *state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:199,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:204,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:210,1
    - Dst: pbuf_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:212,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:213,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:218,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:224,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:234,1
    - Dst: mppe_rekey
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:236,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:249,1
    - Dst: lwip_arc4_crypt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:253,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:260,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 4
    argNames:
    - pcb
    - state
    - pb
    - protocol
    argTypes:
    - ppp_pcb*
    - ppp_mppe_state*
    - struct pbuf**
    - u16_t
    constantsTouched: []
    func_position:
      end: 263
      start: 192
    functionDepth: 4
    functionLinenumber: 192
    functionLinenumberEnd: 263
    functionName: mppe_compress
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c
    functionUses: 0
    functionsReached:
    - pbuf_copy
    - pbuf_alloc
    - mppe_rekey
    - pbuf_header
    - pbuf_free
    - PPPDEBUG
    - LWIP_UNUSED_ARG
    - lwip_arc4_crypt
    linkageType: ''
    returnType: err_t
    signature: mppe_compress(ppp_pcb *pcb, ppp_mppe_state *state, struct pbuf **pb,
      u16_t protocol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:270,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pcb
    - state
    argTypes:
    - ppp_pcb*
    - ppp_mppe_state*
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: mppe_decomp_reset
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: void
    signature: mppe_decomp_reset(ppp_pcb *pcb, ppp_mppe_state *state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:288,1
    - Dst: MPPE_BITS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:296,1
    - Dst: MPPE_CCOUNT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:297,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:298,1
    - Dst: MPPE_BITS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:302,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:303,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:310,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:316,1
    - Dst: mppe_rekey
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:335,1
    - Dst: ccp_resetrequest
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:350,1
    - Dst: mppe_rekey
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:362,1
    - Dst: mppe_rekey
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:381,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:385,1
    - Dst: lwip_arc4_crypt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:389,1
    - Dst: lcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c:407,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 77
    argCount: 3
    argNames:
    - pcb
    - state
    - pb
    argTypes:
    - ppp_pcb*
    - ppp_mppe_state*
    - struct pbuf**
    constantsTouched: []
    func_position:
      end: 410
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 410
    functionName: mppe_decompress
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c
    functionUses: 0
    functionsReached:
    - MPPE_BITS
    - lcp_close
    - mppe_rekey
    - ccp_resetrequest
    - pbuf_header
    - PPPDEBUG
    - MPPE_CCOUNT
    - lwip_arc4_crypt
    linkageType: ''
    returnType: err_t
    signature: mppe_decompress(ppp_pcb *pcb, ppp_mppe_state *state, struct pbuf **pb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:54,1
    - Dst: magic_pow
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:56,1
    - Dst: magic_random_bytes
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pcb
    - cp
    argTypes:
    - ppp_pcb*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: chap_md5_generate_challenge
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - magic_random_bytes
    - magic_pow
    linkageType: ''
    returnType: void
    signature: chap_md5_generate_challenge(ppp_pcb *pcb, unsigned char *cp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:69,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:70,1
    - Dst: lwip_md5_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:76,1
    - Dst: lwip_md5_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:77,1
    - Dst: lwip_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:78,1
    - Dst: lwip_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:79,1
    - Dst: lwip_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:80,1
    - Dst: lwip_md5_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:81,1
    - Dst: lwip_md5_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:82,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:85,1
    - Dst: ppp_slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:86,1
    - Dst: ppp_slprintf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 9
    argNames:
    - pcb
    - id
    - name
    - secret
    - secret_len
    - challenge
    - response
    - message
    - message_space
    argTypes:
    - ppp_pcb*
    - int
    - char*
    - unsigned char*
    - int
    - unsigned char*
    - unsigned char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 92
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 92
    functionName: chap_md5_verify_response
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c
    functionUses: 0
    functionsReached:
    - lwip_md5_init
    - memcmp
    - ppp_slprintf
    - lwip_md5_finish
    - lwip_md5_free
    - lwip_md5_update
    - lwip_md5_starts
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: int
    signature: "chap_md5_verify_response(ppp_pcb *pcb, int id, const char *name,\n\t\t\t
      const unsigned char *secret, int secret_len,\n\t\t\t const unsigned char *challenge,
      const unsigned char *response,\n\t\t\t char *message, int message_space)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:101,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:102,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:103,1
    - Dst: lwip_md5_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:105,1
    - Dst: lwip_md5_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:106,1
    - Dst: lwip_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:107,1
    - Dst: lwip_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:108,1
    - Dst: lwip_md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:109,1
    - Dst: lwip_md5_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:110,1
    - Dst: lwip_md5_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 8
    argNames:
    - pcb
    - response
    - id
    - our_name
    - challenge
    - secret
    - secret_len
    - private_
    argTypes:
    - ppp_pcb*
    - unsigned char*
    - int
    - char*
    - unsigned char*
    - char*
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 113
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 113
    functionName: chap_md5_make_response
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c
    functionUses: 0
    functionsReached:
    - lwip_md5_init
    - lwip_md5_finish
    - lwip_md5_free
    - lwip_md5_update
    - lwip_md5_starts
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: void
    signature: "chap_md5_make_response(ppp_pcb *pcb, unsigned char *response, int
      id, const char *our_name,\n\t\t       const unsigned char *challenge, const
      char *secret, int secret_len,\n\t\t       unsigned char *private_)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - comp
    argTypes:
    - struct vjcompress*
    constantsTouched: []
    func_position:
      end: 68
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 68
    functionName: vj_compress_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: vj_compress_init(struct vjcompress *comp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: vj_u32_t
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: vj_u32_t
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: vj_u16_t
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_STRUCT_BEGIN
    signature: vj_u16_t
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPH_HL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:165,1
    - Dst: IPH_PROTO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:178,1
    - Dst: IPH_OFFSET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:187,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:187,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:191,1
    - Dst: TCPH_HDRLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:196,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:199,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:205,1
    - Dst: pbuf_copy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:210,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:211,1
    - Dst: INCR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:225,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:226,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:227,1
    - Dst: IPH_HL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:228,1
    - Dst: INCR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:246,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:247,1
    - Dst: ip4_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:248,1
    - Dst: IPH_HL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:249,1
    - Dst: INCR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:262,1
    - Dst: TCPH_HDRLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:296,1
    - Dst: TCPH_HDRLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:296,1
    - Dst: BCMP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:297,1
    - Dst: TCPH_HDRLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:298,1
    - Dst: BCMP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:298,1
    - Dst: TCPH_HDRLEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:298,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:308,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:309,1
    - Dst: ENCODEZ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:310,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:320,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:320,1
    - Dst: ENCODE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:321,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:325,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:325,1
    - Dst: ENCODE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:330,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:334,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:334,1
    - Dst: ENCODE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:339,1
    - Dst: IPH_LEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:353,1
    - Dst: IPH_LEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:353,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:354,1
    - Dst: IPH_LEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:354,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:369,1
    - Dst: IPH_LEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:369,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:377,1
    - Dst: IPH_LEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:377,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:387,1
    - Dst: IPH_ID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:387,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:387,1
    - Dst: IPH_ID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:387,1
    - Dst: ENCODEZ
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:389,1
    - Dst: TCPH_FLAGS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:392,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:399,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:400,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:415,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:417,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:424,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:426,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:433,1
    - Dst: INCR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:434,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:443,1
    - Dst: IPH_PROTO_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:444,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 152
    argCount: 2
    argNames:
    - comp
    - pb
    argTypes:
    - struct vjcompress*
    - struct pbuf**
    constantsTouched: []
    func_position:
      end: 447
      start: 159
    functionDepth: 4
    functionLinenumber: 159
    functionLinenumberEnd: 447
    functionName: vj_compress_tcp
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c
    functionUses: 0
    functionsReached:
    - ENCODE
    - BCMP
    - TCPH_HDRLEN
    - PP_HTONS
    - LWIP_ASSERT
    - INCR
    - ip4_addr_cmp
    - IPH_ID
    - lwip_ntohs
    - pbuf_free
    - IPH_PROTO
    - MEMCPY
    - IPH_LEN
    - lwip_ntohl
    - pbuf_header
    - PPPDEBUG
    - IPH_PROTO_SET
    - IPH_OFFSET
    - ENCODEZ
    - pbuf_copy
    - pbuf_alloc
    - IPH_HL
    - TCPH_FLAGS
    linkageType: ''
    returnType: u8_t
    signature: vj_compress_tcp(struct vjcompress *comp, struct pbuf **pb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INCR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - comp
    argTypes:
    - struct vjcompress*
    constantsTouched: []
    func_position:
      end: 457
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 457
    functionName: vj_uncompress_err
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c
    functionUses: 1
    functionsReached:
    - INCR
    linkageType: ''
    returnType: void
    signature: vj_uncompress_err(struct vjcompress *comp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPH_HL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:471,1
    - Dst: IPH_PROTO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:472,1
    - Dst: TCPH_HDRLEN_BYTES
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:474,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:477,1
    - Dst: IPH_PROTO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:478,1
    - Dst: INCR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:480,1
    - Dst: IPH_PROTO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:483,1
    - Dst: IPH_PROTO_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:485,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:486,1
    - Dst: INCR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:488,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - nb
    - comp
    argTypes:
    - struct pbuf*
    - struct vjcompress*
    constantsTouched: []
    func_position:
      end: 490
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 490
    functionName: vj_uncompress_uncomp
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c
    functionUses: 0
    functionsReached:
    - INCR
    - IPH_PROTO
    - MEMCPY
    - PPPDEBUG
    - IPH_PROTO_SET
    - TCPH_HDRLEN_BYTES
    - IPH_HL
    linkageType: ''
    returnType: int
    signature: vj_uncompress_uncomp(struct pbuf *nb, struct vjcompress *comp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INCR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:511,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:520,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:533,1
    - Dst: INCR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:534,1
    - Dst: IPH_HL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:539,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:541,1
    - Dst: TCPH_SET_FLAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:544,1
    - Dst: TCPH_UNSET_FLAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:546,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:552,1
    - Dst: IPH_LEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:552,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:554,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:555,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:556,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:557,1
    - Dst: lwip_ntohl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:563,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:563,1
    - Dst: IPH_LEN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:563,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:564,1
    - Dst: TCPH_SET_FLAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:569,1
    - Dst: DECODEU
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:570,1
    - Dst: TCPH_UNSET_FLAG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:572,1
    - Dst: DECODES
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:575,1
    - Dst: DECODEL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:578,1
    - Dst: DECODEL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:581,1
    - Dst: DECODES
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:586,1
    - Dst: IPH_ID_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:588,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:588,1
    - Dst: IPH_ID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:588,1
    - Dst: IPH_ID_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:589,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:589,1
    - Dst: IPH_ID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:589,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:603,1
    - Dst: IPH_LEN_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:610,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:610,1
    - Dst: IPH_LEN_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:612,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:612,1
    - Dst: IPH_CHKSUM_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:617,1
    - Dst: IPH_CHKSUM_SET
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:623,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:626,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:628,1
    - Dst: LWIP_MEM_ALIGN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:632,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:641,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:643,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:646,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:650,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:652,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:658,1
    - Dst: pbuf_chain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:663,1
    - Dst: pbuf_dechain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:664,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:666,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:670,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:673,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:674,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:676,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:679,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:682,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:683,1
    - Dst: INCR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c:691,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 132
    argCount: 2
    argNames:
    - nb
    - comp
    argTypes:
    - struct pbuf**
    - struct vjcompress*
    constantsTouched: []
    func_position:
      end: 693
      start: 500
    functionDepth: 5
    functionLinenumber: 500
    functionLinenumberEnd: 693
    functionName: vj_uncompress_tcp
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c
    functionUses: 0
    functionsReached:
    - IPH_ID_SET
    - lwip_htons
    - lwip_htonl
    - IPH_LEN_SET
    - LWIP_ASSERT
    - INCR
    - IPH_ID
    - lwip_ntohs
    - pbuf_free
    - DECODEL
    - pbuf_dechain
    - pbuf_chain
    - TCPH_UNSET_FLAG
    - LWIP_MEM_ALIGN
    - MEMCPY
    - IPH_LEN
    - lwip_ntohl
    - pbuf_header
    - PPPDEBUG
    - IPH_CHKSUM_SET
    - pbuf_cat
    - pbuf_alloc
    - DECODES
    - DECODEU
    - TCPH_SET_FLAG
    - IPH_HL
    linkageType: ''
    returnType: int
    signature: vj_uncompress_tcp(struct pbuf **nb, struct vjcompress *comp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - pcb
    - authtype
    - user
    - passwd
    argTypes:
    - ppp_pcb*
    - u8_t
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 234
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 234
    functionName: ppp_set_auth
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ppp_set_auth(ppp_pcb *pcb, u8_t authtype, const char *user, const char
      *passwd)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pcb
    - flags
    argTypes:
    - ppp_pcb*
    - u8_t
    constantsTouched: []
    func_position:
      end: 249
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 249
    functionName: ppp_set_mppe
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ppp_set_mppe(ppp_pcb *pcb, u8_t flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: notify_phase_cb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pcb
    - notify_phase_cb
    argTypes:
    - ppp_pcb*
    - ppp_notify_phase_cb_fn
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: ppp_set_notify_phase_callback
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - notify_phase_cb
    linkageType: ''
    returnType: void
    signature: ppp_set_notify_phase_callback(ppp_pcb *pcb, ppp_notify_phase_cb_fn
      notify_phase_cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:275,1
    - Dst: ppp_do_connect
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:278,1
    - Dst: new_phase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:282,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - pcb
    - holdoff
    argTypes:
    - ppp_pcb*
    - u16_t
    constantsTouched: []
    func_position:
      end: 285
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 285
    functionName: ppp_connect
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - sys_timeout
    - ppp_do_connect
    - new_phase
    - PPPDEBUG
    linkageType: ''
    returnType: err_t
    signature: ppp_connect(ppp_pcb *pcb, u16_t holdoff)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:301,1
    - Dst: new_phase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:304,1
    - Dst: ppp_pcb*::link_cb::listen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 309
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 309
    functionName: ppp_listen
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - ppp_pcb*::link_cb::listen
    - new_phase
    - PPPDEBUG
    linkageType: ''
    returnType: err_t
    signature: ppp_listen(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sys_untimeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:330,1
    - Dst: new_phase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:331,1
    - Dst: ppp_pcb*::link_status_cb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:336,1
    - Dst: new_phase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:347,1
    - Dst: ppp_link_terminated
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:348,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:360,1
    - Dst: lcp_lowerdown
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:361,1
    - Dst: link_terminated
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:363,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:368,1
    - Dst: lcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:370,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - pcb
    - nocarrier
    argTypes:
    - ppp_pcb*
    - u8_t
    constantsTouched: []
    func_position:
      end: 372
      start: 323
    functionDepth: 4
    functionLinenumber: 323
    functionLinenumberEnd: 372
    functionName: ppp_close
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - lcp_close
    - ppp_link_terminated
    - sys_untimeout
    - lcp_lowerdown
    - new_phase
    - link_terminated
    - PPPDEBUG
    - ppp_pcb*::link_status_cb
    linkageType: ''
    returnType: err_t
    signature: ppp_close(ppp_pcb *pcb, u8_t nocarrier)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:390,1
    - Dst: netif_remove
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:392,1
    - Dst: ppp_pcb*::link_cb::free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:394,1
    - Dst: LWIP_MEMPOOL_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 398
      start: 384
    functionDepth: 8
    functionLinenumber: 384
    functionLinenumberEnd: 398
    functionName: ppp_free
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - netif_remove
    - ppp_pcb*::link_cb::free
    - PPPDEBUG
    - LWIP_MEMPOOL_FREE
    linkageType: ''
    returnType: err_t
    signature: ppp_free(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - pcb
    - cmd
    - arg
    argTypes:
    - ppp_pcb*
    - u8_t
    - void*
    constantsTouched: []
    func_position:
      end: 437
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 437
    functionName: ppp_ioctl
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: err_t
    signature: ppp_ioctl(ppp_pcb *pcb, u8_t cmd, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:447,1
    - Dst: new_phase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:449,1
    - Dst: ppp_pcb*::link_cb::connect
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 451
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 451
    functionName: ppp_do_connect
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - new_phase
    - ppp_pcb*::link_cb::connect
    - LWIP_ASSERT
    linkageType: ''
    returnType: void
    signature: ppp_do_connect(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - netif
    argTypes:
    - struct netif*
    constantsTouched: []
    func_position:
      end: 472
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 472
    functionName: ppp_netif_init_cb
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: err_t
    signature: ppp_netif_init_cb(struct netif *netif)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:479,1
    - Dst: ppp_netif_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:481,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:483,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - netif
    - pb
    - ipaddr
    argTypes:
    - struct netif*
    - struct pbuf*
    - ip4_addr_t*
    constantsTouched: []
    func_position:
      end: 487
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 487
    functionName: ppp_netif_output_ip4
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - ppp_netif_output
    linkageType: ''
    returnType: err_t
    signature: ppp_netif_output_ip4(struct netif *netif, struct pbuf *pb, const ip4_addr_t
      *ipaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:495,1
    - Dst: ppp_netif_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - netif
    - pb
    - ipaddr
    argTypes:
    - struct netif*
    - struct pbuf*
    - ip6_addr_t*
    constantsTouched: []
    func_position:
      end: 497
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 497
    functionName: ppp_netif_output_ip6
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - ppp_netif_output
    linkageType: ''
    returnType: err_t
    signature: ppp_netif_output_ip6(struct netif *netif, struct pbuf *pb, const ip6_addr_t
      *ipaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:514,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:521,1
    - Dst: vj_compress_tcp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:532,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:550,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:551,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:552,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:553,1
    - Dst: mppe_compress
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:565,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:566,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:567,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:568,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:573,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:582,1
    - Dst: ppp_pcb*::link_cb::netif_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:587,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:592,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:593,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:594,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:597,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 68
    argCount: 3
    argNames:
    - netif
    - pb
    - protocol
    argTypes:
    - struct netif*
    - struct pbuf*
    - u16_t
    constantsTouched: []
    func_position:
      end: 600
      start: 500
    functionDepth: 5
    functionLinenumber: 500
    functionLinenumberEnd: 600
    functionName: ppp_netif_output
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 2
    functionsReached:
    - ppp_pcb*::link_cb::netif_output
    - LINK_STATS_INC
    - PPPDEBUG
    - pbuf_free
    - vj_compress_tcp
    - MIB2_STATS_NETIF_INC
    - mppe_compress
    linkageType: ''
    returnType: err_t
    signature: ppp_netif_output(struct netif *netif, struct pbuf *pb, u16_t protocol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_MEMPOOL_INIT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:610,1
    - Dst: LWIP_MEMPOOL_INIT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:613,1
    - Dst: LWIP_MEMPOOL_INIT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:616,1
    - Dst: LWIP_MEMPOOL_INIT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:619,1
    - Dst: LWIP_MEMPOOL_INIT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:622,1
    - Dst: magic_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 631
      start: 607
    functionDepth: 3
    functionLinenumber: 607
    functionLinenumberEnd: 631
    functionName: ppp_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - magic_init
    - LWIP_MEMPOOL_INIT
    linkageType: ''
    returnType: int
    signature: ppp_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_MEMPOOL_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:653,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:658,1
    - Dst: MIB2_INIT_NETIF
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:696,1
    - Dst: netif_add
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:697,1
    - Dst: LWIP_MEMPOOL_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:702,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:703,1
    - Dst: new_phase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:719,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 5
    argNames:
    - pppif
    - callbacks
    - link_ctx_cb
    - link_status_cb
    - ctx_cb
    argTypes:
    - struct netif*
    - struct link_callbacks*
    - void*
    - ppp_link_status_cb_fn
    - void*
    constantsTouched: []
    func_position:
      end: 721
      start: 642
    functionDepth: 2
    functionLinenumber: 642
    functionLinenumberEnd: 721
    functionName: ppp_new
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 2
    functionsReached:
    - netif_add
    - memset
    - LWIP_MEMPOOL_FREE
    - MIB2_INIT_NETIF
    - new_phase
    - PPPDEBUG
    - LWIP_MEMPOOL_ALLOC
    linkageType: ''
    returnType: ppp_pcb
    signature: '*ppp_new(struct netif *pppif, const struct link_callbacks *callbacks,
      void *link_ctx_cb, ppp_link_status_cb_fn link_status_cb, void *ctx_cb)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:725,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:733,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:734,1
    - Dst: vj_compress_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:737,1
    - Dst: new_phase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:741,1
    - Dst: lcp_open
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:742,1
    - Dst: lcp_lowerup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:743,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 745
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 745
    functionName: ppp_start
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 3
    functionsReached:
    - lcp_lowerup
    - vj_compress_init
    - memset
    - new_phase
    - PPPDEBUG
    - lcp_open
    linkageType: ''
    returnType: void
    signature: ppp_start(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:749,1
    - Dst: new_phase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:750,1
    - Dst: ppp_pcb*::link_status_cb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 753
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 753
    functionName: ppp_link_failed
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - ppp_pcb*::link_status_cb
    - new_phase
    - PPPDEBUG
    linkageType: ''
    returnType: void
    signature: ppp_link_failed(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:757,1
    - Dst: new_phase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:758,1
    - Dst: ppp_pcb*::link_status_cb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 763
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 763
    functionName: ppp_link_end
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 2
    functionsReached:
    - ppp_pcb*::link_status_cb
    - new_phase
    - PPPDEBUG
    linkageType: ''
    returnType: void
    signature: ppp_link_end(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: magic_randomize
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:775,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:778,1
    - Dst: ppp_dump_packet
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:784,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:787,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:789,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:790,1
    - Dst: MIB2_STATS_NETIF_ADD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:791,1
    - Dst: ppp_dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:797,1
    - Dst: ppp_dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:820,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:833,1
    - Dst: mppe_decompress
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:844,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:850,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:863,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:866,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:875,1
    - Dst: ip4_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:876,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:882,1
    - Dst: ip6_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:883,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:893,1
    - Dst: vj_uncompress_tcp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:894,1
    - Dst: ip4_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:895,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:899,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:907,1
    - Dst: vj_uncompress_uncomp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:908,1
    - Dst: ip4_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:909,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:913,1
    - Dst: ppp_singlebuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:926,1
    - Dst: protocol_name
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:953,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:955,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:958,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:960,1
    - Dst: lcp_sprotrej
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:961,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:967,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:968,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:971,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 110
    argCount: 2
    argNames:
    - pcb
    - pb
    argTypes:
    - ppp_pcb*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 972
      start: 769
    functionDepth: 6
    functionLinenumber: 769
    functionLinenumberEnd: 972
    functionName: ppp_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 3
    functionsReached:
    - ip6_input
    - magic_randomize
    - ip4_input
    - protocol_name
    - ppp_dump_packet
    - vj_uncompress_tcp
    - pbuf_header
    - LINK_STATS_INC
    - PPPDEBUG
    - MIB2_STATS_NETIF_ADD
    - vj_uncompress_uncomp
    - mppe_decompress
    - MIB2_STATS_NETIF_INC
    - lcp_sprotrej
    - ppp_singlebuf
    - pbuf_free
    - ppp_dbglog
    - ppp_warn
    linkageType: ''
    returnType: void
    signature: ppp_input(ppp_pcb *pcb, struct pbuf *pb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:983,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:985,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:991,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:995,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 998
      start: 975
    functionDepth: 4
    functionLinenumber: 975
    functionLinenumberEnd: 998
    functionName: ppp_singlebuf
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 2
    functionsReached:
    - MEMCPY
    - pbuf_free
    - PPPDEBUG
    - pbuf_alloc
    linkageType: ''
    returnType: struct pbuf
    signature: '*ppp_singlebuf(struct pbuf *p)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_dump_packet
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1010,1
    - Dst: ppp_pcb*::link_cb::write
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pcb
    - p
    argTypes:
    - ppp_pcb*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 1013
      start: 1008
    functionDepth: 6
    functionLinenumber: 1008
    functionLinenumberEnd: 1013
    functionName: ppp_write
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 12
    functionsReached:
    - ppp_pcb*::link_cb::write
    - ppp_dump_packet
    linkageType: ''
    returnType: err_t
    signature: ppp_write(ppp_pcb *pcb, struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1016,1
    - Dst: ppp_pcb*::link_cb::disconnect
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1017,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 1019
      start: 1015
    functionDepth: 0
    functionLinenumber: 1015
    functionLinenumberEnd: 1019
    functionName: ppp_link_terminated
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - ppp_pcb*::link_cb::disconnect
    - PPPDEBUG
    linkageType: ''
    returnType: void
    signature: ppp_link_terminated(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1032,1
    - Dst: ppp_pcb*::notify_phase_cb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1035,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pcb
    - p
    argTypes:
    - ppp_pcb*
    - int
    constantsTouched: []
    func_position:
      end: 1038
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1038
    functionName: new_phase
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 9
    functionsReached:
    - ppp_pcb*::notify_phase_cb
    - PPPDEBUG
    linkageType: ''
    returnType: void
    signature: new_phase(ppp_pcb *pcb, int p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1045,1
    - Dst: ppp_pcb*::link_cb::send_config
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1049,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1052,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - pcb
    - mtu
    - accm
    - pcomp
    - accomp
    argTypes:
    - ppp_pcb*
    - int
    - u32_t
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1054
      start: 1044
    functionDepth: 0
    functionLinenumber: 1044
    functionLinenumberEnd: 1054
    functionName: ppp_send_config
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - LWIP_UNUSED_ARG
    - ppp_pcb*::link_cb::send_config
    - PPPDEBUG
    linkageType: ''
    returnType: int
    signature: ppp_send_config(ppp_pcb *pcb, int mtu, u32_t accm, int pcomp, int accomp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1061,1
    - Dst: ppp_pcb*::link_cb::recv_config
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1064,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1067,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - pcb
    - mru
    - accm
    - pcomp
    - accomp
    argTypes:
    - ppp_pcb*
    - int
    - u32_t
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1069
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1069
    functionName: ppp_recv_config
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - LWIP_UNUSED_ARG
    - ppp_pcb*::link_cb::recv_config
    - PPPDEBUG
    linkageType: ''
    returnType: int
    signature: ppp_recv_config(ppp_pcb *pcb, int mru, u32_t accm, int pcomp, int accomp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip4_addr_set_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1078,1
    - Dst: ip4_addr_set_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1079,1
    - Dst: ip4_addr_set_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1080,1
    - Dst: netif_set_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - pcb
    - our_adr
    - his_adr
    - netmask
    argTypes:
    - ppp_pcb*
    - u32_t
    - u32_t
    - u32_t
    constantsTouched: []
    func_position:
      end: 1083
      start: 1075
    functionDepth: 2
    functionLinenumber: 1075
    functionLinenumberEnd: 1083
    functionName: sifaddr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - ip4_addr_set_u32
    - netif_set_addr
    linkageType: ''
    returnType: int
    signature: sifaddr(ppp_pcb *pcb, u32_t our_adr, u32_t his_adr, u32_t netmask)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1091,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1092,1
    - Dst: netif_set_addr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pcb
    - our_adr
    - his_adr
    argTypes:
    - ppp_pcb*
    - u32_t
    - u32_t
    constantsTouched: []
    func_position:
      end: 1096
      start: 1090
    functionDepth: 2
    functionLinenumber: 1090
    functionLinenumberEnd: 1096
    functionName: cifaddr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - LWIP_UNUSED_ARG
    - netif_set_addr
    linkageType: ''
    returnType: int
    signature: cifaddr(ppp_pcb *pcb, u32_t our_adr, u32_t his_adr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1105,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pcb
    - his_adr
    argTypes:
    - ppp_pcb*
    - u32_t
    constantsTouched: []
    func_position:
      end: 1108
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1108
    functionName: sifproxyarp
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: int
    signature: sifproxyarp(ppp_pcb *pcb, u32_t his_adr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1116,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pcb
    - his_adr
    argTypes:
    - ppp_pcb*
    - u32_t
    constantsTouched: []
    func_position:
      end: 1119
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1119
    functionName: cifproxyarp
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: int
    signature: cifproxyarp(ppp_pcb *pcb, u32_t his_adr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1128,1
    - Dst: ip_addr_set_ip4_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1130,1
    - Dst: dns_setserver
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1131,1
    - Dst: ip_addr_set_ip4_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1132,1
    - Dst: dns_setserver
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - pcb
    - ns1
    - ns2
    argTypes:
    - ppp_pcb*
    - u32_t
    - u32_t
    constantsTouched: []
    func_position:
      end: 1135
      start: 1126
    functionDepth: 1
    functionLinenumber: 1126
    functionLinenumberEnd: 1135
    functionName: sdns
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - LWIP_UNUSED_ARG
    - dns_setserver
    - ip_addr_set_ip4_u32
    linkageType: ''
    returnType: int
    signature: sdns(ppp_pcb *pcb, u32_t ns1, u32_t ns2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1144,1
    - Dst: dns_getserver
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1146,1
    - Dst: ip_addr_set_ip4_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1147,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1148,1
    - Dst: dns_setserver
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1149,1
    - Dst: dns_getserver
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1151,1
    - Dst: ip_addr_set_ip4_u32
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1152,1
    - Dst: ip_addr_cmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1153,1
    - Dst: dns_setserver
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - pcb
    - ns1
    - ns2
    argTypes:
    - ppp_pcb*
    - u32_t
    - u32_t
    constantsTouched: []
    func_position:
      end: 1157
      start: 1141
    functionDepth: 1
    functionLinenumber: 1141
    functionLinenumberEnd: 1157
    functionName: cdns
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - ip_addr_set_ip4_u32
    - LWIP_UNUSED_ARG
    - dns_setserver
    - ip_addr_cmp
    - dns_getserver
    linkageType: ''
    returnType: int
    signature: cdns(ppp_pcb *pcb, u32_t ns1, u32_t ns2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - pcb
    - vjcomp
    - cidcomp
    - maxcid
    argTypes:
    - ppp_pcb*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1172
      start: 1165
    functionDepth: 0
    functionLinenumber: 1165
    functionLinenumberEnd: 1172
    functionName: sifvjcomp
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 2
    functionsReached:
    - PPPDEBUG
    linkageType: ''
    returnType: int
    signature: sifvjcomp(ppp_pcb *pcb, int vjcomp, int cidcomp, int maxcid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_set_link_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1181,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1183,1
    - Dst: ppp_pcb*::link_status_cb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 1186
      start: 1178
    functionDepth: 3
    functionLinenumber: 1178
    functionLinenumberEnd: 1186
    functionName: sifup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - netif_set_link_up
    - PPPDEBUG
    - ppp_pcb*::link_status_cb
    linkageType: ''
    returnType: int
    signature: sifup(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_set_link_down
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1204,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 1208
      start: 1193
    functionDepth: 1
    functionLinenumber: 1193
    functionLinenumberEnd: 1208
    functionName: sifdown
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - netif_set_link_down
    - PPPDEBUG
    linkageType: ''
    returnType: int
    signature: sifdown(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1223,1
    - Dst: IP_CLASSA
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1224,1
    - Dst: IP_CLASSB
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1226,1
    - Dst: PP_HTONL
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1233,1
    - Dst: lwip_htonl
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1233,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - addr
    argTypes:
    - u32_t
    constantsTouched: []
    func_position:
      end: 1244
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1244
    functionName: get_mask
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - IP_CLASSB
    - IP_CLASSA
    - PP_HTONL
    - lwip_htonl
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: u32_t
    signature: get_mask(u32_t addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1260,1
    - Dst: IN6_LLADDR_FROM_EUI64
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1262,1
    - Dst: netif_ip6_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1263,1
    - Dst: netif_ip6_addr_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - pcb
    - our_eui64
    - his_eui64
    argTypes:
    - ppp_pcb*
    - eui64_t
    - eui64_t
    constantsTouched: []
    func_position:
      end: 1267
      start: 1258
    functionDepth: 8
    functionLinenumber: 1258
    functionLinenumberEnd: 1267
    functionName: sif6addr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - LWIP_UNUSED_ARG
    - netif_ip6_addr_set
    - netif_ip6_addr_set_state
    - IN6_LLADDR_FROM_EUI64
    linkageType: ''
    returnType: int
    signature: sif6addr(ppp_pcb *pcb, eui64_t our_eui64, eui64_t his_eui64)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1274,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1275,1
    - Dst: netif_ip6_addr_set
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1277,1
    - Dst: netif_ip6_addr_set_state
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - pcb
    - our_eui64
    - his_eui64
    argTypes:
    - ppp_pcb*
    - eui64_t
    - eui64_t
    constantsTouched: []
    func_position:
      end: 1280
      start: 1273
    functionDepth: 8
    functionLinenumber: 1273
    functionLinenumberEnd: 1280
    functionName: cif6addr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - LWIP_UNUSED_ARG
    - netif_ip6_addr_set
    - netif_ip6_addr_set_state
    linkageType: ''
    returnType: int
    signature: cif6addr(ppp_pcb *pcb, eui64_t our_eui64, eui64_t his_eui64)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_set_link_up
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1289,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1291,1
    - Dst: ppp_pcb*::link_status_cb
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 1294
      start: 1285
    functionDepth: 3
    functionLinenumber: 1285
    functionLinenumberEnd: 1294
    functionName: sif6up
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - netif_set_link_up
    - PPPDEBUG
    - ppp_pcb*::link_status_cb
    linkageType: ''
    returnType: int
    signature: sif6up(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: netif_set_link_down
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1312,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 1316
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1316
    functionName: sif6down
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - netif_set_link_down
    - PPPDEBUG
    linkageType: ''
    returnType: int
    signature: sif6down(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1324,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1325,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pcb
    - proto
    - mode
    argTypes:
    - ppp_pcb*
    - int
    - enum NPmode
    constantsTouched: []
    func_position:
      end: 1328
      start: 1323
    functionDepth: 0
    functionLinenumber: 1323
    functionLinenumberEnd: 1328
    functionName: sifnpmode
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 7
    functionsReached:
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: int
    signature: sifnpmode(ppp_pcb *pcb, int proto, enum NPmode mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pcb
    - mtu
    argTypes:
    - ppp_pcb*
    - int
    constantsTouched: []
    func_position:
      end: 1338
      start: 1334
    functionDepth: 0
    functionLinenumber: 1334
    functionLinenumberEnd: 1338
    functionName: netif_set_mtu
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 3
    functionsReached:
    - PPPDEBUG
    linkageType: ''
    returnType: void
    signature: netif_set_mtu(ppp_pcb *pcb, int mtu)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 1346
      start: 1343
    functionDepth: 0
    functionLinenumber: 1343
    functionLinenumberEnd: 1346
    functionName: netif_get_mtu
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: netif_get_mtu(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1356,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1357,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1358,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - pcb
    - opt_ptr
    - opt_len
    - for_transmit
    argTypes:
    - ppp_pcb*
    - u_char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1361
      start: 1353
    functionDepth: 0
    functionLinenumber: 1353
    functionLinenumberEnd: 1361
    functionName: ccp_test
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 2
    functionsReached:
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: int
    signature: ccp_test(ppp_pcb *pcb, u_char *opt_ptr, int opt_len, int for_transmit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1370,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1371,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - pcb
    - isopen
    - isup
    - receive_method
    - transmit_method
    argTypes:
    - ppp_pcb*
    - u8_t
    - u8_t
    - u8_t
    - u8_t
    constantsTouched: []
    func_position:
      end: 1376
      start: 1367
    functionDepth: 0
    functionLinenumber: 1367
    functionLinenumberEnd: 1376
    functionName: ccp_set
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 5
    functionsReached:
    - LWIP_UNUSED_ARG
    - PPPDEBUG
    linkageType: ''
    returnType: void
    signature: ccp_set(ppp_pcb *pcb, u8_t isopen, u8_t isup, u8_t receive_method,
      u8_t transmit_method)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mppe_comp_reset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 1390
      start: 1378
    functionDepth: 1
    functionLinenumber: 1378
    functionLinenumberEnd: 1390
    functionName: ccp_reset_comp
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - mppe_comp_reset
    linkageType: ''
    returnType: void
    signature: ccp_reset_comp(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mppe_decomp_reset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 1404
      start: 1392
    functionDepth: 1
    functionLinenumber: 1392
    functionLinenumberEnd: 1404
    functionName: ccp_reset_decomp
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - mppe_decomp_reset
    linkageType: ''
    returnType: void
    signature: ccp_reset_decomp(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 1417
      start: 1412
    functionDepth: 0
    functionLinenumber: 1412
    functionLinenumberEnd: 1417
    functionName: ccp_fatal_error
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: int
    signature: ccp_fatal_error(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1428,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pcb
    - ip
    argTypes:
    - ppp_pcb*
    - struct ppp_idle*
    constantsTouched: []
    func_position:
      end: 1431
      start: 1426
    functionDepth: 0
    functionLinenumber: 1426
    functionLinenumberEnd: 1431
    functionName: get_idle_time
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: int
    signature: get_idle_time(ppp_pcb *pcb, struct ppp_idle *ip)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1441
    functionDepth: 0
    functionLinenumber: 1441
    functionLinenumberEnd: 1443
    functionName: get_loop_output
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: get_loop_output(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - proto
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1594
      start: 1585
    functionDepth: 0
    functionLinenumber: 1585
    functionLinenumberEnd: 1594
    functionName: protocol_name
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '* protocol_name(int proto)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_ppp_stats
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1609,1
    - Dst: gettimeofday
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - u
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1613
      start: 1608
    functionDepth: 0
    functionLinenumber: 1608
    functionLinenumberEnd: 1613
    functionName: reset_link_stats
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 1
    functionsReached:
    - gettimeofday
    - get_ppp_stats
    linkageType: ''
    returnType: void
    signature: reset_link_stats(int u)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_ppp_stats
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1622,1
    - Dst: gettimeofday
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1622,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - u
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1632
      start: 1618
    functionDepth: 0
    functionLinenumber: 1618
    functionLinenumberEnd: 1632
    functionName: update_link_stats
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 2
    functionsReached:
    - gettimeofday
    - get_ppp_stats
    linkageType: ''
    returnType: void
    signature: update_link_stats(int u)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: info
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1640,1
    - Dst: info
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c:1641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1634
    functionDepth: 0
    functionLinenumber: 1634
    functionLinenumberEnd: 1644
    functionName: print_link_stats
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
    functionUses: 2
    functionsReached:
    - info
    linkageType: ''
    returnType: void
    signature: print_link_stats()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - input
    - startBit
    argTypes:
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: pppcrypt_get_7bits
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppcrypt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_char
    signature: pppcrypt_get_7bits(u_char *input, int startBit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pppcrypt_get_7bits
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppcrypt.c:56,1
    - Dst: pppcrypt_get_7bits
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppcrypt.c:57,1
    - Dst: pppcrypt_get_7bits
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppcrypt.c:58,1
    - Dst: pppcrypt_get_7bits
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppcrypt.c:59,1
    - Dst: pppcrypt_get_7bits
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppcrypt.c:60,1
    - Dst: pppcrypt_get_7bits
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppcrypt.c:61,1
    - Dst: pppcrypt_get_7bits
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppcrypt.c:62,1
    - Dst: pppcrypt_get_7bits
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppcrypt.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - key
    - des_key
    argTypes:
    - u_char*
    - u_char*
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: pppcrypt_56_to_64_bit_key
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppcrypt.c
    functionUses: 2
    functionsReached:
    - pppcrypt_get_7bits
    linkageType: ''
    returnType: void
    signature: pppcrypt_56_to_64_bit_key(u_char *key, u_char * des_key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 550
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 550
    functionName: link_required
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    linkageType: ''
    returnType: void
    signature: link_required(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: new_phase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:627,1
    - Dst: pap_logout_hook
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:631,1
    - Dst: session_end
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:633,1
    - Dst: ppp_notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:637,1
    - Dst: print_link_stats
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:639,1
    - Dst: ppp_notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:642,1
    - Dst: lcp_lowerdown
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:644,1
    - Dst: ppp_link_terminated
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:646,1
    - Dst: remove_pidfiles
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:654,1
    - Dst: remove_fd
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:662,1
    - Dst: clean_check
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:663,1
    - Dst: disestablish_ppp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:664,1
    - Dst: mp_exit_bundle
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:666,1
    - Dst: lcp_lowerdown
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:670,1
    - Dst: script_unsetenv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:672,1
    - Dst: disconnect
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:679,1
    - Dst: new_phase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:687,1
    - Dst: mp_bundle_terminated
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:689,1
    - Dst: new_phase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:691,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 693
      start: 620
    functionDepth: 5
    functionLinenumber: 620
    functionLinenumberEnd: 693
    functionName: link_terminated
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c
    functionUses: 2
    functionsReached:
    - ppp_link_terminated
    - clean_check
    - mp_bundle_terminated
    - disconnect
    - lcp_lowerdown
    - remove_pidfiles
    - new_phase
    - script_unsetenv
    - session_end
    - remove_fd
    - ppp_notice
    - pap_logout_hook
    - print_link_stats
    - disestablish_ppp
    - mp_exit_bundle
    linkageType: ''
    returnType: void
    signature: link_terminated(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: notify
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:700,1
    - Dst: upper_layers_down
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:704,1
    - Dst: new_phase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:710,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 714
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 714
    functionName: link_down
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c
    functionUses: 3
    functionsReached:
    - notify
    - new_phase
    - upper_layers_down
    linkageType: ''
    returnType: void
    signature: link_down(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 728
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 728
    functionName: upper_layers_down
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: upper_layers_down(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_allowed_addrs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:762,1
    - Dst: set_allowed_addrs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:786,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:794,1
    - Dst: lcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:799,1
    - Dst: new_phase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:805,1
    - Dst: eap_authpeer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:810,1
    - Dst: chap_auth_peer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:816,1
    - Dst: CHAP_DIGEST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:816,1
    - Dst: upap_authpeer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:822,1
    - Dst: eap_authwithpeer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:831,1
    - Dst: chap_auth_with_peer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:837,1
    - Dst: CHAP_DIGEST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:837,1
    - Dst: upap_authwithpeer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:843,1
    - Dst: network_phase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:854,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 53
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 855
      start: 734
    functionDepth: 8
    functionLinenumber: 734
    functionLinenumberEnd: 855
    functionName: link_established
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c
    functionUses: 0
    functionsReached:
    - eap_authwithpeer
    - eap_authpeer
    - lcp_close
    - set_allowed_addrs
    - upap_authpeer
    - CHAP_DIGEST
    - chap_auth_peer
    - chap_auth_with_peer
    - new_phase
    - network_phase
    - upap_authwithpeer
    - ppp_warn
    linkageType: ''
    returnType: void
    signature: link_established(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:871,1
    - Dst: notify
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:889,1
    - Dst: new_phase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:898,1
    - Dst: options_from_list
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:909,1
    - Dst: free_wordlist
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:910,1
    - Dst: start_networks
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:914,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 915
      start: 860
    functionDepth: 5
    functionLinenumber: 860
    functionLinenumberEnd: 915
    functionName: network_phase
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c
    functionUses: 1
    functionsReached:
    - options_from_list
    - notify
    - start_networks
    - free_wordlist
    - new_phase
    - ppp_notice
    linkageType: ''
    returnType: void
    signature: network_phase(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: new_phase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:923,1
    - Dst: mp_join_bundle
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:927,1
    - Dst: detach
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:931,1
    - Dst: set_filters
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:939,1
    - Dst: continue_networks
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:968,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 18
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 969
      start: 917
    functionDepth: 2
    functionLinenumber: 917
    functionLinenumberEnd: 969
    functionName: start_networks
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c
    functionUses: 1
    functionsReached:
    - set_filters
    - detach
    - new_phase
    - mp_join_bundle
    - continue_networks
    linkageType: ''
    returnType: void
    signature: start_networks(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:993,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 994
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 994
    functionName: continue_networks
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c
    functionUses: 2
    functionsReached:
    - lcp_close
    linkageType: ''
    returnType: void
    signature: continue_networks(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1011,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1012,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1015,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1016,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 7
    argNames:
    - pcb
    - auser
    - userlen
    - apasswd
    - passwdlen
    - msg
    - msglen
    argTypes:
    - ppp_pcb*
    - char*
    - int
    - char*
    - int
    - char**
    - int*
    constantsTouched: []
    func_position:
      end: 1026
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1026
    functionName: auth_check_passwd
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c
    functionUses: 1
    functionsReached:
    - strlen
    - memcmp
    linkageType: ''
    returnType: int
    signature: auth_check_passwd(ppp_pcb *pcb, char *auser, int userlen, char *apasswd,
      int passwdlen, const char **msg, int *msglen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1032,1
    - Dst: lcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pcb
    - protocol
    argTypes:
    - ppp_pcb*
    - int
    constantsTouched: []
    func_position:
      end: 1041
      start: 1031
    functionDepth: 1
    functionLinenumber: 1031
    functionLinenumberEnd: 1041
    functionName: auth_peer_fail
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c
    functionUses: 7
    functionsReached:
    - LWIP_UNUSED_ARG
    - lcp_close
    linkageType: ''
    returnType: void
    signature: auth_peer_fail(ppp_pcb *pcb, int protocol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1049,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1050,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1085,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1095,1
    - Dst: script_setenv
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1099,1
    - Dst: network_phase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1110,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 5
    argNames:
    - pcb
    - protocol
    - prot_flavor
    - name
    - namelen
    argTypes:
    - ppp_pcb*
    - int
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1111
      start: 1046
    functionDepth: 6
    functionLinenumber: 1046
    functionLinenumberEnd: 1111
    functionName: auth_peer_success
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c
    functionUses: 2
    functionsReached:
    - script_setenv
    - MEMCPY
    - LWIP_UNUSED_ARG
    - network_phase
    - ppp_warn
    linkageType: ''
    returnType: void
    signature: auth_peer_success(ppp_pcb *pcb, int protocol, int prot_flavor, const
      char *name, int namelen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1118,1
    - Dst: lcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pcb
    - protocol
    argTypes:
    - ppp_pcb*
    - int
    constantsTouched: []
    func_position:
      end: 1131
      start: 1117
    functionDepth: 1
    functionLinenumber: 1117
    functionLinenumberEnd: 1131
    functionName: auth_withpeer_fail
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c
    functionUses: 9
    functionsReached:
    - LWIP_UNUSED_ARG
    - lcp_close
    linkageType: ''
    returnType: void
    signature: auth_withpeer_fail(ppp_pcb *pcb, int protocol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1175,1
    - Dst: ppp_notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1180,1
    - Dst: network_phase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1190,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - pcb
    - protocol
    - prot_flavor
    argTypes:
    - ppp_pcb*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1191
      start: 1136
    functionDepth: 6
    functionLinenumber: 1136
    functionLinenumberEnd: 1191
    functionName: auth_withpeer_success
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c
    functionUses: 3
    functionsReached:
    - ppp_notice
    - network_phase
    - ppp_warn
    linkageType: ''
    returnType: void
    signature: auth_withpeer_success(ppp_pcb *pcb, int protocol, int prot_flavor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1202,1
    - Dst: new_phase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1208,1
    - Dst: TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1218,1
    - Dst: TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1227,1
    - Dst: TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1232,1
    - Dst: detach
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1240,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - pcb
    - proto
    argTypes:
    - ppp_pcb*
    - int
    constantsTouched: []
    func_position:
      end: 1244
      start: 1198
    functionDepth: 1
    functionLinenumber: 1198
    functionLinenumberEnd: 1244
    functionName: np_up
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c
    functionUses: 1
    functionsReached:
    - LWIP_UNUSED_ARG
    - detach
    - TIMEOUT
    - new_phase
    linkageType: ''
    returnType: void
    signature: np_up(ppp_pcb *pcb, int proto)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1250,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1253,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1256,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1259,1
    - Dst: new_phase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pcb
    - proto
    argTypes:
    - ppp_pcb*
    - int
    constantsTouched: []
    func_position:
      end: 1263
      start: 1249
    functionDepth: 1
    functionLinenumber: 1249
    functionLinenumberEnd: 1263
    functionName: np_down
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c
    functionUses: 2
    functionsReached:
    - LWIP_UNUSED_ARG
    - UNTIMEOUT
    - new_phase
    linkageType: ''
    returnType: void
    signature: np_down(ppp_pcb *pcb, int proto)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1269,1
    - Dst: lcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pcb
    - proto
    argTypes:
    - ppp_pcb*
    - int
    constantsTouched: []
    func_position:
      end: 1274
      start: 1268
    functionDepth: 1
    functionLinenumber: 1268
    functionLinenumberEnd: 1274
    functionName: np_finished
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c
    functionUses: 2
    functionsReached:
    - LWIP_UNUSED_ARG
    - lcp_close
    linkageType: ''
    returnType: void
    signature: np_finished(ppp_pcb *pcb, int proto)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_info
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1359,1
    - Dst: lcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1362
      start: 1357
    functionDepth: 5
    functionLinenumber: 1357
    functionLinenumberEnd: 1362
    functionName: connect_time_expired
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c
    functionUses: 0
    functionsReached:
    - ppp_info
    - lcp_close
    linkageType: ''
    returnType: void
    signature: connect_time_expired(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1378,1
    - Dst: strlcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1382,1
    - Dst: have_route_to
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1388,1
    - Dst: have_pap_secret
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1444,1
    - Dst: have_chap_secret
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1457,1
    - Dst: have_srp_secret
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1468,1
    - Dst: option_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1474,1
    - Dst: option_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1476,1
    - Dst: option_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1479,1
    - Dst: option_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1483,1
    - Dst: option_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1485,1
    - Dst: option_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1488,1
    - Dst: exit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1491,1
    - Dst: auth_number
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1497,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1498,1
    - Dst: exit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1499,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1369
    functionDepth: 5
    functionLinenumber: 1369
    functionLinenumberEnd: 1501
    functionName: auth_check_options
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c
    functionUses: 0
    functionsReached:
    - have_pap_secret
    - exit
    - have_chap_secret
    - option_error
    - auth_number
    - have_route_to
    - have_srp_secret
    - strlcpy
    - ppp_warn
    linkageType: ''
    returnType: void
    signature: auth_check_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1906,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1907,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1909,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1913,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1915,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1919,1
    - Dst: strlcpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1933,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1936,1
    - Dst: fopen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1945,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1947,1
    - Dst: check_access
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1950,1
    - Dst: scan_authfile
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1952,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1953,1
    - Dst: set_allowed_addrs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1958,1
    - Dst: free_wordlist
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1960,1
    - Dst: free_wordlist
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1962,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1965,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1967,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1970,1
    - Dst: BZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:1971,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 6
    argNames:
    - pcb
    - client
    - server
    - secret
    - secret_len
    - am_server
    argTypes:
    - ppp_pcb*
    - char*
    - char*
    - char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 1976
      start: 1904
    functionDepth: 5
    functionLinenumber: 1904
    functionLinenumberEnd: 1976
    functionName: get_secret
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c
    functionUses: 4
    functionsReached:
    - ppp_error
    - strcmp
    - set_allowed_addrs
    - BZERO
    - fclose
    - MEMCPY
    - strlen
    - free_wordlist
    - LWIP_UNUSED_ARG
    - fopen
    - check_access
    - strlcpy
    - scan_authfile
    linkageType: ''
    returnType: int
    signature: get_secret(ppp_pcb *pcb, const char *client, const char *server, char
      *secret, int *secret_len, int am_server)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:2276,1
    - Dst: strncasecmp
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c:2279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2285
      start: 2263
    functionDepth: 0
    functionLinenumber: 2263
    functionLinenumberEnd: 2285
    functionName: auth_number
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c
    functionUses: 2
    functionsReached:
    - strlen
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: auth_number()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:178,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:179,1
    - Dst: LWIP_MEMPOOL_ALLOC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:181,1
    - Dst: ppp_new
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:186,1
    - Dst: LWIP_MEMPOOL_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:188,1
    - Dst: memset
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 6
    argNames:
    - pppif
    - ethif
    - service_name
    - concentrator_name
    - link_status_cb
    - ctx_cb
    argTypes:
    - struct netif*
    - struct netif*
    - char*
    - char*
    - ppp_link_status_cb_fn
    - void*
    constantsTouched: []
    func_position:
      end: 199
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 199
    functionName: pppoe_create
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c
    functionUses: 1
    functionsReached:
    - memset
    - LWIP_MEMPOOL_FREE
    - LWIP_UNUSED_ARG
    - LWIP_MEMPOOL_ALLOC
    - ppp_new
    linkageType: ''
    returnType: ppp_pcb
    signature: "*pppoe_create(struct netif *pppif,\n       struct netif *ethif,\n
      \      const char *service_name, const char *concentrator_name,\n       ppp_link_status_cb_fn
      link_status_cb, void *ctx_cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:209,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:213,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:215,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:217,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:218,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:219,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:220,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:224,1
    - Dst: pbuf_cat
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:225,1
    - Dst: pppoe_xmit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:230,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:232,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:233,1
    - Dst: MIB2_STATS_NETIF_ADD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:237,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:238,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 3
    argNames:
    - ppp
    - ctx
    - p
    argTypes:
    - ppp_pcb*
    - void*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 241
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 241
    functionName: pppoe_write
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c
    functionUses: 0
    functionsReached:
    - pbuf_cat
    - pbuf_alloc
    - pbuf_header
    - LINK_STATS_INC
    - pbuf_free
    - pppoe_xmit
    - LWIP_UNUSED_ARG
    - MIB2_STATS_NETIF_ADD
    - MIB2_STATS_NETIF_INC
    linkageType: ''
    returnType: err_t
    signature: pppoe_write(ppp_pcb *ppp, void *ctx, struct pbuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:252,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:256,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:258,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:259,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:260,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:264,1
    - Dst: PUTSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:267,1
    - Dst: pbuf_chain
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:269,1
    - Dst: pppoe_xmit
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:274,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:275,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:276,1
    - Dst: MIB2_STATS_NETIF_ADD
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:280,1
    - Dst: MIB2_STATS_NETIF_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:281,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 4
    argNames:
    - ppp
    - ctx
    - p
    - protocol
    argTypes:
    - ppp_pcb*
    - void*
    - struct pbuf*
    - u_short
    constantsTouched: []
    func_position:
      end: 284
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 284
    functionName: pppoe_netif_output
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c
    functionUses: 0
    functionsReached:
    - pbuf_alloc
    - pbuf_header
    - LINK_STATS_INC
    - pppoe_xmit
    - MIB2_STATS_NETIF_ADD
    - LWIP_UNUSED_ARG
    - MIB2_STATS_NETIF_INC
    - PUTSHORT
    - pbuf_chain
    linkageType: ''
    returnType: err_t
    signature: pppoe_netif_output(ppp_pcb *ppp, void *ctx, struct pbuf *p, u_short
      protocol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:291,1
    - Dst: sys_untimeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:293,1
    - Dst: mem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:305,1
    - Dst: mem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:308,1
    - Dst: LWIP_MEMPOOL_FREE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:311,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ppp
    - ctx
    argTypes:
    - ppp_pcb*
    - void*
    constantsTouched: []
    func_position:
      end: 314
      start: 286
    functionDepth: 4
    functionLinenumber: 286
    functionLinenumberEnd: 314
    functionName: pppoe_destroy
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c
    functionUses: 0
    functionsReached:
    - LWIP_UNUSED_ARG
    - sys_untimeout
    - LWIP_MEMPOOL_FREE
    - mem_free
    linkageType: ''
    returnType: err_t
    signature: pppoe_destroy(ppp_pcb *ppp, void *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - session
    - rcvif
    argTypes:
    - u_int
    - struct netif*
    constantsTouched: []
    func_position:
      end: 333
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 333
    functionName: pppoe_find_softc_by_session
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct pppoe_softc
    signature: '* pppoe_find_softc_by_session(u_int session, struct netif *rcvif)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:343,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:352,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:358,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:363,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - token
    - len
    - rcvif
    argTypes:
    - u8_t*
    - size_t
    - struct netif*
    constantsTouched: []
    func_position:
      end: 368
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 368
    functionName: pppoe_find_softc_by_hunique
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c
    functionUses: 0
    functionsReached:
    - MEMCPY
    - PPPDEBUG
    linkageType: ''
    returnType: struct pppoe_softc
    signature: '* pppoe_find_softc_by_hunique(u8_t *token, size_t len, struct netif
      *rcvif)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:393,1
    - Dst: ppp_singlebuf
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:397,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:413,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:419,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:422,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:423,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:427,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:438,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:439,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:440,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:442,1
    - Dst: pppoe_find_softc_by_hunique
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:460,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:465,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:489,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:490,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:493,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:495,1
    - Dst: LIST_EMPTY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:510,1
    - Dst: LIST_FOREACH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:513,1
    - Dst: mem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:530,1
    - Dst: mem_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:532,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:537,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:539,1
    - Dst: pppoe_send_pado
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:541,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:551,1
    - Dst: pppoe_find_softc_by_hunique
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:554,1
    - Dst: LIST_EMPTY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:557,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:558,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:563,1
    - Dst: mem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:568,1
    - Dst: mem_malloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:570,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:575,1
    - Dst: pppoe_send_pads
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:577,1
    - Dst: ppp_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:579,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:589,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:594,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:599,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:601,1
    - Dst: sys_untimeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:602,1
    - Dst: pppoe_send_padr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:605,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:606,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:608,1
    - Dst: sys_untimeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:615,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:616,1
    - Dst: ppp_start
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:618,1
    - Dst: pppoe_clear_softc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:630,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:635,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:639,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:645,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 234
    argCount: 2
    argNames:
    - netif
    - pb
    argTypes:
    - struct netif*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 647
      start: 371
    functionDepth: 5
    functionLinenumber: 371
    functionLinenumberEnd: 647
    functionName: pppoe_disc_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c
    functionUses: 0
    functionsReached:
    - sys_untimeout
    - pppoe_send_pado
    - LWIP_MIN
    - ppp_start
    - pppoe_send_pads
    - mem_malloc
    - sys_timeout
    - lwip_ntohs
    - pppoe_clear_softc
    - pbuf_free
    - pppoe_send_padr
    - LIST_EMPTY
    - strncpy
    - MEMCPY
    - PPPDEBUG
    - LIST_FOREACH
    - mem_free
    - pppoe_find_softc_by_hunique
    - ppp_singlebuf
    linkageType: ''
    returnType: void
    signature: pppoe_disc_input(struct netif *netif, struct pbuf *pb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:660,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:662,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:664,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:665,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:670,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:676,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:683,1
    - Dst: pppoe_find_softc_by_session
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:684,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:687,1
    - Dst: pppoe_send_padt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:688,1
    - Dst: lwip_ntohs
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:693,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:695,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:697,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:698,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:702,1
    - Dst: ppp_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:711,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:715,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 2
    argNames:
    - netif
    - pb
    argTypes:
    - struct netif*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 716
      start: 649
    functionDepth: 7
    functionLinenumber: 649
    functionLinenumberEnd: 716
    functionName: pppoe_data_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c
    functionUses: 0
    functionsReached:
    - pppoe_send_padt
    - lwip_ntohs
    - MEMCPY
    - pbuf_header
    - LINK_STATS_INC
    - PPPDEBUG
    - pbuf_free
    - ppp_input
    - pppoe_find_softc_by_session
    linkageType: ''
    returnType: void
    signature: pppoe_data_input(struct netif *netif, struct pbuf *pb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:726,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:728,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:729,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:730,1
    - Dst: lwip_htons
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:735,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:736,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:737,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:739,1
    - Dst: struct pppoe_softc*::sc_ethif::linkoutput
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:745,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - sc
    - pb
    argTypes:
    - struct pppoe_softc*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 750
      start: 718
    functionDepth: 4
    functionLinenumber: 718
    functionLinenumberEnd: 750
    functionName: pppoe_output
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c
    functionUses: 0
    functionsReached:
    - struct pppoe_softc*::sc_ethif::linkoutput
    - lwip_htons
    - MEMCPY
    - pbuf_header
    - LINK_STATS_INC
    - pbuf_free
    - PPPDEBUG
    linkageType: ''
    returnType: err_t
    signature: pppoe_output(struct pppoe_softc *sc, struct pbuf *pb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:766,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:770,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:774,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:778,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:782,1
    - Dst: PPPOE_ADD_HEADER
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:786,1
    - Dst: PPPOE_ADD_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:787,1
    - Dst: PPPOE_ADD_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:790,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:791,1
    - Dst: PPPOE_ADD_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:796,1
    - Dst: PPPOE_ADD_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:800,1
    - Dst: PPPOE_ADD_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:801,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:802,1
    - Dst: PPPOE_ADD_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:806,1
    - Dst: PPPOE_ADD_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:807,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:808,1
    - Dst: pppoe_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:811,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct pppoe_softc*
    constantsTouched: []
    func_position:
      end: 812
      start: 752
    functionDepth: 5
    functionLinenumber: 752
    functionLinenumberEnd: 812
    functionName: pppoe_send_padi
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c
    functionUses: 0
    functionsReached:
    - pppoe_output
    - PPPOE_ADD_HEADER
    - pbuf_alloc
    - MEMCPY
    - strlen
    - PPPOE_ADD_16
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: pppoe_send_padi(struct pppoe_softc *sc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:821,1
    - Dst: pppoe_abort_connect
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:845,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:850,1
    - Dst: pppoe_send_padi
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:851,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:853,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:855,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:861,1
    - Dst: pppoe_send_padi
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:864,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:865,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:867,1
    - Dst: pppoe_send_padr
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:870,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:872,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:874,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 879
      start: 814
    functionDepth: 6
    functionLinenumber: 814
    functionLinenumberEnd: 879
    functionName: pppoe_timeout
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c
    functionUses: 0
    functionsReached:
    - sys_timeout
    - MEMCPY
    - pppoe_send_padi
    - LWIP_MIN
    - PPPDEBUG
    - pppoe_send_padr
    - pppoe_abort_connect
    linkageType: ''
    returnType: void
    signature: pppoe_timeout(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:899,1
    - Dst: pppoe_send_padi
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:933,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:934,1
    - Dst: sys_timeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:936,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 2
    argNames:
    - ppp
    - ctx
    argTypes:
    - ppp_pcb*
    - void*
    constantsTouched: []
    func_position:
      end: 937
      start: 882
    functionDepth: 6
    functionLinenumber: 882
    functionLinenumberEnd: 937
    functionName: pppoe_connect
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c
    functionUses: 0
    functionsReached:
    - MEMCPY
    - pppoe_send_padi
    - sys_timeout
    - PPPDEBUG
    linkageType: ''
    returnType: void
    signature: pppoe_connect(ppp_pcb *ppp, void *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:945,1
    - Dst: pppoe_send_padt
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:947,1
    - Dst: sys_untimeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:951,1
    - Dst: mem_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:955,1
    - Dst: ppp_link_end
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:960,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - ppp
    - ctx
    argTypes:
    - ppp_pcb*
    - void*
    constantsTouched: []
    func_position:
      end: 962
      start: 940
    functionDepth: 4
    functionLinenumber: 940
    functionLinenumberEnd: 962
    functionName: pppoe_disconnect
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c
    functionUses: 0
    functionsReached:
    - pppoe_send_padt
    - mem_free
    - sys_untimeout
    - ppp_link_end
    - PPPDEBUG
    linkageType: ''
    returnType: void
    signature: pppoe_disconnect(ppp_pcb *ppp, void *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:968,1
    - Dst: ppp_link_failed
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct pppoe_softc*
    constantsTouched: []
    func_position:
      end: 971
      start: 965
    functionDepth: 2
    functionLinenumber: 965
    functionLinenumberEnd: 971
    functionName: pppoe_abort_connect
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c
    functionUses: 1
    functionsReached:
    - ppp_link_failed
    - PPPDEBUG
    linkageType: ''
    returnType: void
    signature: pppoe_abort_connect(struct pppoe_softc *sc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:987,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:994,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:996,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1000,1
    - Dst: PPPOE_ADD_HEADER
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1002,1
    - Dst: PPPOE_ADD_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1003,1
    - Dst: PPPOE_ADD_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1006,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1007,1
    - Dst: PPPOE_ADD_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1012,1
    - Dst: PPPOE_ADD_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1015,1
    - Dst: PPPOE_ADD_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1016,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1017,1
    - Dst: PPPOE_ADD_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1020,1
    - Dst: PPPOE_ADD_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1021,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1022,1
    - Dst: pppoe_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1024,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct pppoe_softc*
    constantsTouched: []
    func_position:
      end: 1025
      start: 974
    functionDepth: 5
    functionLinenumber: 974
    functionLinenumberEnd: 1025
    functionName: pppoe_send_padr
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c
    functionUses: 2
    functionsReached:
    - pppoe_output
    - PPPOE_ADD_HEADER
    - pbuf_alloc
    - MEMCPY
    - strlen
    - PPPOE_ADD_16
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: pppoe_send_padr(struct pppoe_softc *sc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1036,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1040,1
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1042,1
    - Dst: PP_HTONS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1044,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1045,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1046,1
    - Dst: PPPOE_ADD_HEADER
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1049,1
    - Dst: struct netif*::linkoutput
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1051,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - outgoing_if
    - session
    - dest
    argTypes:
    - struct netif*
    - u_int
    - u8_t*
    constantsTouched: []
    func_position:
      end: 1056
      start: 1028
    functionDepth: 4
    functionLinenumber: 1028
    functionLinenumberEnd: 1056
    functionName: pppoe_send_padt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c
    functionUses: 2
    functionsReached:
    - PPPOE_ADD_HEADER
    - struct netif*::linkoutput
    - pbuf_alloc
    - MEMCPY
    - pbuf_header
    - pbuf_free
    - PP_HTONS
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: pppoe_send_padt(struct netif *outgoing_if, u_int session, const u8_t
      *dest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1072,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1076,1
    - Dst: PPPOE_ADD_HEADER
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1078,1
    - Dst: PPPOE_ADD_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1079,1
    - Dst: PPPOE_ADD_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1080,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1081,1
    - Dst: PPPOE_ADD_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1083,1
    - Dst: PPPOE_ADD_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1084,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1085,1
    - Dst: pppoe_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1086,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct pppoe_softc*
    constantsTouched: []
    func_position:
      end: 1087
      start: 1059
    functionDepth: 5
    functionLinenumber: 1059
    functionLinenumberEnd: 1087
    functionName: pppoe_send_pado
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c
    functionUses: 1
    functionsReached:
    - pppoe_output
    - PPPOE_ADD_HEADER
    - pbuf_alloc
    - MEMCPY
    - PPPOE_ADD_16
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: pppoe_send_pado(struct pppoe_softc *sc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1102,1
    - Dst: pbuf_alloc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1105,1
    - Dst: LWIP_ASSERT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1109,1
    - Dst: PPPOE_ADD_HEADER
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1111,1
    - Dst: PPPOE_ADD_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1112,1
    - Dst: PPPOE_ADD_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1114,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1115,1
    - Dst: PPPOE_ADD_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1118,1
    - Dst: PPPOE_ADD_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1120,1
    - Dst: PPPOE_ADD_16
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1121,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1122,1
    - Dst: pppoe_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct pppoe_softc*
    constantsTouched: []
    func_position:
      end: 1124
      start: 1089
    functionDepth: 5
    functionLinenumber: 1089
    functionLinenumberEnd: 1124
    functionName: pppoe_send_pads
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c
    functionUses: 1
    functionsReached:
    - pppoe_output
    - PPPOE_ADD_HEADER
    - pbuf_alloc
    - MEMCPY
    - strlen
    - PPPOE_ADD_16
    - LWIP_ASSERT
    linkageType: ''
    returnType: err_t
    signature: pppoe_send_pads(struct pppoe_softc *sc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbuf_header
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1136,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1138,1
    - Dst: LINK_STATS_INC
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1139,1
    - Dst: pbuf_free
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1140,1
    - Dst: PPPOE_ADD_HEADER
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1145,1
    - Dst: pppoe_output
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - sc
    - pb
    argTypes:
    - struct pppoe_softc*
    - struct pbuf*
    constantsTouched: []
    func_position:
      end: 1148
      start: 1127
    functionDepth: 5
    functionLinenumber: 1127
    functionLinenumberEnd: 1148
    functionName: pppoe_xmit
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c
    functionUses: 2
    functionsReached:
    - pppoe_output
    - PPPOE_ADD_HEADER
    - pbuf_header
    - LINK_STATS_INC
    - pbuf_free
    - PPPDEBUG
    linkageType: ''
    returnType: err_t
    signature: pppoe_xmit(struct pppoe_softc *sc, struct pbuf *pb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LIST_FOREACH
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1161,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1167,1
    - Dst: pppoe_clear_softc
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - arg
    - mp
    - ifp
    - dir
    argTypes:
    - void*
    - struct pbuf**
    - struct netif*
    - int
    constantsTouched: []
    func_position:
      end: 1175
      start: 1151
    functionDepth: 1
    functionLinenumber: 1151
    functionLinenumberEnd: 1175
    functionName: pppoe_ifattach_hook
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c
    functionUses: 0
    functionsReached:
    - LIST_FOREACH
    - pppoe_clear_softc
    - PPPDEBUG
    linkageType: ''
    returnType: int
    signature: pppoe_ifattach_hook(void *arg, struct pbuf **mp, struct netif *ifp,
      int dir)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1182,1
    - Dst: sys_untimeout
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1185,1
    - Dst: PPPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1186,1
    - Dst: ppp_link_end
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c:1188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - sc
    - message
    argTypes:
    - struct pppoe_softc*
    - char*
    constantsTouched: []
    func_position:
      end: 1189
      start: 1179
    functionDepth: 4
    functionLinenumber: 1179
    functionLinenumberEnd: 1189
    functionName: pppoe_clear_softc
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c
    functionUses: 2
    functionsReached:
    - LWIP_UNUSED_ARG
    - sys_untimeout
    - ppp_link_end
    - PPPDEBUG
    linkageType: ''
    returnType: void
    signature: pppoe_clear_softc(struct pppoe_softc *sc, const char *message)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_init
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:372,1
    - Dst: BZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:374,1
    - Dst: BZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 400
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 400
    functionName: lcp_init
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 0
    functionsReached:
    - BZERO
    - fsm_init
    linkageType: ''
    returnType: void
    signature: lcp_init(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_open
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 416
      start: 406
    functionDepth: 3
    functionLinenumber: 406
    functionLinenumberEnd: 416
    functionName: lcp_open
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 1
    functionsReached:
    - fsm_open
    linkageType: ''
    returnType: void
    signature: lcp_open(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: new_phase
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:431,1
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:434,1
    - Dst: fsm_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:439,1
    - Dst: lcp_finished
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:449,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - pcb
    - reason
    argTypes:
    - ppp_pcb*
    - char*
    constantsTouched: []
    func_position:
      end: 451
      start: 422
    functionDepth: 3
    functionLinenumber: 422
    functionLinenumberEnd: 451
    functionName: lcp_close
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 18
    functionsReached:
    - lcp_finished
    - UNTIMEOUT
    - new_phase
    - fsm_close
    linkageType: ''
    returnType: void
    signature: lcp_close(ppp_pcb *pcb, const char *reason)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_send_config
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:465,1
    - Dst: ppp_recv_config
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:466,1
    - Dst: TIMEOUTMS
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:473,1
    - Dst: fsm_lowerup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 476
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 476
    functionName: lcp_lowerup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 1
    functionsReached:
    - ppp_send_config
    - TIMEOUTMS
    - fsm_lowerup
    - ppp_recv_config
    linkageType: ''
    returnType: void
    signature: lcp_lowerup(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:487,1
    - Dst: fsm_lowerdown
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 490
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 490
    functionName: lcp_lowerdown
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 2
    functionsReached:
    - fsm_lowerdown
    - UNTIMEOUT
    linkageType: ''
    returnType: void
    signature: lcp_lowerdown(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_lowerup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 503
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 503
    functionName: lcp_delayed_up
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 0
    functionsReached:
    - fsm_lowerup
    linkageType: ''
    returnType: void
    signature: lcp_delayed_up(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:514,1
    - Dst: fsm_lowerup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:515,1
    - Dst: fsm_input
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pcb
    - p
    - len
    argTypes:
    - ppp_pcb*
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 518
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 518
    functionName: lcp_input
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 0
    functionsReached:
    - UNTIMEOUT
    - fsm_lowerup
    - fsm_input
    linkageType: ''
    returnType: void
    signature: lcp_input(ppp_pcb *pcb, u_char *p, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lcp_rprotrej
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:530,1
    - Dst: PUTLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:537,1
    - Dst: fsm_sdata
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:538,1
    - Dst: lcp_received_echo_reply
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:542,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 5
    argNames:
    - f
    - code
    - id
    - inp
    - len
    argTypes:
    - fsm*
    - int
    - int
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 554
      start: 523
    functionDepth: 5
    functionLinenumber: 523
    functionLinenumberEnd: 554
    functionName: lcp_extcode
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 0
    functionsReached:
    - fsm_sdata
    - PUTLONG
    - lcp_received_echo_reply
    - lcp_rprotrej
    linkageType: ''
    returnType: int
    signature: lcp_extcode(fsm *f, int code, int id, u_char *inp, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LCPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:571,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:575,1
    - Dst: LCPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:582,1
    - Dst: protocol_name
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:587,1
    - Dst: ppp_dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:597,1
    - Dst: ppp_dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:601,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:608,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:612,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - f
    - inp
    - len
    argTypes:
    - fsm*
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 613
      start: 562
    functionDepth: 5
    functionLinenumber: 562
    functionLinenumberEnd: 613
    functionName: lcp_rprotrej
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 1
    functionsReached:
    - LCPDEBUG
    - protocol_name
    - GETSHORT
    - ppp_dbglog
    - ppp_warn
    linkageType: ''
    returnType: void
    signature: lcp_rprotrej(fsm *f, u_char *inp, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:624,1
    - Dst: fsm_protreject
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 626
      start: 620
    functionDepth: 5
    functionLinenumber: 620
    functionLinenumberEnd: 626
    functionName: lcp_protrej
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 0
    functionsReached:
    - ppp_error
    - fsm_protreject
    linkageType: ''
    returnType: void
    signature: lcp_protrej(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fsm_sdata
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pcb
    - p
    - len
    argTypes:
    - ppp_pcb*
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 645
      start: 632
    functionDepth: 5
    functionLinenumber: 632
    functionLinenumberEnd: 645
    functionName: lcp_sprotrej
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 1
    functionsReached:
    - fsm_sdata
    linkageType: ''
    returnType: void
    signature: lcp_sprotrej(ppp_pcb *pcb, u_char *p, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LENCISHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:789,1
    - Dst: LENCILONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:790,1
    - Dst: LENCISHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:792,1
    - Dst: LENCICHAP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:796,1
    - Dst: "EAP_SUPPORT\n\t    LENCICHAP"
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:798,1
    - Dst: "CHAP_SUPPORT\n\t    LENCISHORT"
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:803,1
    - Dst: "CHAP_SUPPORT\n\t    LENCISHORT"
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:806,1
    - Dst: "CHAP_SUPPORT\n\t    LENCISHORT"
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:809,1
    - Dst: "CHAP_SUPPORT\n\t    LENCISHORT"
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:812,1
    - Dst: LENCILQR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:817,1
    - Dst: LENCICBCP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:819,1
    - Dst: LENCILONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:820,1
    - Dst: LENCIVOID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:821,1
    - Dst: LENCIVOID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:822,1
    - Dst: LENCISHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:824,1
    - Dst: LENCIVOID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:826,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 828
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 828
    functionName: lcp_cilen
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 0
    functionsReached:
    - LENCISHORT
    - "EAP_SUPPORT\n\t    LENCICHAP"
    - LENCICBCP
    - LENCIVOID
    - LENCICHAP
    - LENCILONG
    - LENCILQR
    - "CHAP_SUPPORT\n\t    LENCISHORT"
    linkageType: ''
    returnType: int
    signature: lcp_cilen(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ADDCISHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:890,1
    - Dst: ADDCILONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:891,1
    - Dst: ADDCISHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:894,1
    - Dst: ADDCICHAP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:898,1
    - Dst: ADDCICHAP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:901,1
    - Dst: ADDCISHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:906,1
    - Dst: ADDCISHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:909,1
    - Dst: ADDCISHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:912,1
    - Dst: ADDCISHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:915,1
    - Dst: ADDCILQR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:919,1
    - Dst: ADDCICHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:921,1
    - Dst: ADDCILONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:922,1
    - Dst: ADDCIVOID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:923,1
    - Dst: ADDCIVOID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:924,1
    - Dst: ADDCISHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:926,1
    - Dst: ADDCIVOID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:928,1
    - Dst: ADDCIENDP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:929,1
    - Dst: ppp_error
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:934,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 3
    argNames:
    - f
    - ucp
    - lenp
    argTypes:
    - fsm*
    - u_char*
    - int*
    constantsTouched: []
    func_position:
      end: 936
      start: 834
    functionDepth: 5
    functionLinenumber: 834
    functionLinenumberEnd: 936
    functionName: lcp_addci
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 0
    functionsReached:
    - ADDCILONG
    - ppp_error
    - ADDCICHAR
    - ADDCILQR
    - ADDCICHAP
    - ADDCIVOID
    - ADDCISHORT
    - ADDCIENDP
    linkageType: ''
    returnType: void
    signature: lcp_addci(fsm *f, u_char *ucp, int *lenp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ACKCISHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1064,1
    - Dst: ACKCILONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1065,1
    - Dst: ACKCISHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1068,1
    - Dst: ACKCICHAP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1072,1
    - Dst: ACKCICHAP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1075,1
    - Dst: ACKCISHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1080,1
    - Dst: ACKCISHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1083,1
    - Dst: ACKCISHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1086,1
    - Dst: ACKCISHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1089,1
    - Dst: ACKCILQR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1093,1
    - Dst: ACKCICHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1095,1
    - Dst: ACKCILONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1096,1
    - Dst: ACKCIVOID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1097,1
    - Dst: ACKCIVOID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1098,1
    - Dst: ACKCISHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1100,1
    - Dst: ACKCIVOID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1102,1
    - Dst: ACKCIENDP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1103,1
    - Dst: LCPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1113,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 3
    argNames:
    - f
    - p
    - len
    argTypes:
    - fsm*
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 1115
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 1115
    functionName: lcp_ackci
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 0
    functionsReached:
    - ACKCICHAR
    - ACKCISHORT
    - ACKCILQR
    - ACKCIVOID
    - LCPDEBUG
    - ACKCICHAP
    - ACKCILONG
    - ACKCIENDP
    linkageType: ''
    returnType: int
    signature: lcp_ackci(fsm *f, u_char *p, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BZERO
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1139,1
    - Dst: NAKCISHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1242,1
    - Dst: if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1243,1
    - Dst: NAKCILONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1252,1
    - Dst: INCPTR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1286,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1287,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1315,1
    - Dst: CHAP_CANDIGEST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1321,1
    - Dst: CHAP_MDTYPE_D
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1322,1
    - Dst: CHAP_DIGEST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1330,1
    - Dst: CHAP_CANDIGEST
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1331,1
    - Dst: CHAP_MDTYPE_D
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1333,1
    - Dst: CHAP_MDTYPE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1336,1
    - Dst: ppp_dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1366,1
    - Dst: NAKCILQR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1400,1
    - Dst: if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1401,1
    - Dst: NAKCICHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1411,1
    - Dst: NAKCILONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1419,1
    - Dst: magic
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1420,1
    - Dst: NAKCIVOID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1429,1
    - Dst: NAKCIVOID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1430,1
    - Dst: NAKCISHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1438,1
    - Dst: if
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1439,1
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1446,1
    - Dst: NAKCIVOID
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1453,1
    - Dst: NAKCIENDP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1459,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1478,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1479,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1489,1
    - Dst: ppp_notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1563,1
    - Dst: lcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1565,1
    - Dst: LCPDEBUG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:1575,1
    CyclomaticComplexity: 100
    EdgeCount: 100
    ICount: 164
    argCount: 4
    argNames:
    - f
    - p
    - len
    - treat_as_reject
    argTypes:
    - fsm*
    - u_char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1577
      start: 1127
    functionDepth: 5
    functionLinenumber: 1127
    functionLinenumberEnd: 1577
    functionName: lcp_nakci
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 0
    functionsReached:
    - CHAP_CANDIGEST
    - GETCHAR
    - BZERO
    - ppp_notice
    - if
    - lcp_close
    - CHAP_MDTYPE
    - NAKCIENDP
    - magic
    - CHAP_DIGEST
    - LCPDEBUG
    - NAKCISHORT
    - NAKCICHAR
    - GETSHORT
    - ppp_dbglog
    - CHAP_MDTYPE_D
    - NAKCILONG
    - INCPTR
    - LWIP_UNUSED_ARG
    - NAKCILQR
    - NAKCIVOID
    linkageType: ''
    returnType: int
    signature: lcp_nakci(fsm *f, u_char *p, int len, int treat_as_reject)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - f
    - p
    - len
    argTypes:
    - fsm*
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 1625
      start: 1589
    functionDepth: 0
    functionLinenumber: 1589
    functionLinenumberEnd: 1625
    functionName: lcp_rejci
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: lcp_rejci(fsm *f, u_char *p, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_MAX
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2313,1
    - Dst: netif_set_mtu
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2317,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2317,1
    - Dst: LWIP_MIN
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2317,1
    - Dst: ppp_send_config
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2318,1
    - Dst: ppp_recv_config
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2321,1
    - Dst: lcp_echo_lowerup
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2328,1
    - Dst: link_established
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2330,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 2331
      start: 2290
    functionDepth: 9
    functionLinenumber: 2290
    functionLinenumberEnd: 2331
    functionName: lcp_up
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 0
    functionsReached:
    - link_established
    - LWIP_MIN
    - netif_set_mtu
    - ppp_send_config
    - LWIP_MAX
    - lcp_echo_lowerup
    - ppp_recv_config
    linkageType: ''
    returnType: void
    signature: lcp_up(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lcp_echo_lowerdown
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2343,1
    - Dst: link_down
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2345,1
    - Dst: ppp_send_config
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2347,1
    - Dst: ppp_recv_config
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 2352
      start: 2339
    functionDepth: 2
    functionLinenumber: 2339
    functionLinenumberEnd: 2352
    functionName: lcp_down
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 0
    functionsReached:
    - ppp_send_config
    - link_down
    - lcp_echo_lowerdown
    - ppp_recv_config
    linkageType: ''
    returnType: void
    signature: lcp_down(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: link_required
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 2361
      start: 2358
    functionDepth: 1
    functionLinenumber: 2358
    functionLinenumberEnd: 2361
    functionName: lcp_starting
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 0
    functionsReached:
    - link_required
    linkageType: ''
    returnType: void
    signature: lcp_starting(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: link_terminated
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 2370
      start: 2367
    functionDepth: 6
    functionLinenumber: 2367
    functionLinenumberEnd: 2370
    functionName: lcp_finished
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 1
    functionsReached:
    - link_terminated
    linkageType: ''
    returnType: void
    signature: lcp_finished(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2394,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2395,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2396,1
    - Dst: LWIP_ARRAYSIZE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2400,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2401,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2403,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2404,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2413,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2414,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2419,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2426,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2427,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2433,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2434,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2440,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2441,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2445,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2450,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2454,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2459,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2464,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2476,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2480,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2488,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2489,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2492,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2495,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2503,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2504,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2507,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2510,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2517,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2518,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2524,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2530,1
    - Dst: GETSHORT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2536,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2537,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2543,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2551,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2556,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2559,1
    - Dst: epdisc_to_str
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2559,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2562,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2569,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2570,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2572,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2579,1
    - Dst: ppp_print_string
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2580,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2590,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2591,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2599,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2600,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2606,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2607,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2611,1
    - Dst: ppp_print_string
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2612,1
    - Dst: GETCHAR
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2623,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2624,1
    - Dst: printer
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2627,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 218
    argCount: 3
    argNames:
    - p
    - plen
    - arg
    argTypes:
    - u_char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 2632
      start: 2384
    functionDepth: 1
    functionLinenumber: 2384
    functionLinenumberEnd: 2632
    functionName: lcp_printpkt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 0
    functionsReached:
    - LWIP_ARRAYSIZE
    - printer
    - GETCHAR
    - MEMCPY
    - ppp_print_string
    - GETLONG
    - epdisc_to_str
    - GETSHORT
    linkageType: ''
    returnType: int
    signature: "lcp_printpkt(const u_char *p, int plen,\n\t\tvoid (*printer) (void
      *, const char *, ...), void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppp_info
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2642,1
    - Dst: ppp_notice
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2643,1
    - Dst: lcp_close
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 2647
      start: 2639
    functionDepth: 5
    functionLinenumber: 2639
    functionLinenumberEnd: 2647
    functionName: LcpLinkFailure
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 0
    functionsReached:
    - ppp_info
    - ppp_notice
    - lcp_close
    linkageType: ''
    returnType: void
    signature: LcpLinkFailure(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LcpSendEchoRequest
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2656,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2664,1
    - Dst: TIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2665,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 2667
      start: 2653
    functionDepth: 5
    functionLinenumber: 2653
    functionLinenumberEnd: 2667
    functionName: LcpEchoCheck
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 0
    functionsReached:
    - TIMEOUT
    - LcpSendEchoRequest
    - ppp_warn
    linkageType: ''
    returnType: void
    signature: LcpEchoCheck(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LcpEchoCheck
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 2680
      start: 2673
    functionDepth: 6
    functionLinenumber: 2673
    functionLinenumberEnd: 2680
    functionName: LcpEchoTimeout
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 0
    functionsReached:
    - LcpEchoCheck
    linkageType: ''
    returnType: void
    signature: LcpEchoTimeout(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LWIP_UNUSED_ARG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2690,1
    - Dst: ppp_dbglog
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2694,1
    - Dst: GETLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2697,1
    - Dst: ppp_warn
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2700,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - f
    - id
    - inp
    - len
    argTypes:
    - fsm*
    - int
    - u_char*
    - int
    constantsTouched: []
    func_position:
      end: 2706
      start: 2686
    functionDepth: 5
    functionLinenumber: 2686
    functionLinenumberEnd: 2706
    functionName: lcp_received_echo_reply
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 1
    functionsReached:
    - LWIP_UNUSED_ARG
    - GETLONG
    - ppp_dbglog
    - ppp_warn
    linkageType: ''
    returnType: void
    signature: lcp_received_echo_reply(fsm *f, int id, u_char *inp, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LcpLinkFailure
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2723,1
    - Dst: update_link_stats
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2737,1
    - Dst: PUTLONG
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2754,1
    - Dst: fsm_sdata
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2755,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - f
    argTypes:
    - fsm*
    constantsTouched: []
    func_position:
      end: 2758
      start: 2712
    functionDepth: 6
    functionLinenumber: 2712
    functionLinenumberEnd: 2758
    functionName: LcpSendEchoRequest
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 1
    functionsReached:
    - fsm_sdata
    - update_link_stats
    - PUTLONG
    - LcpLinkFailure
    linkageType: ''
    returnType: void
    signature: LcpSendEchoRequest(fsm *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LcpEchoCheck
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 2775
      start: 2764
    functionDepth: 6
    functionLinenumber: 2764
    functionLinenumberEnd: 2775
    functionName: lcp_echo_lowerup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 1
    functionsReached:
    - LcpEchoCheck
    linkageType: ''
    returnType: void
    signature: lcp_echo_lowerup(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNTIMEOUT
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c:2785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pcb
    argTypes:
    - ppp_pcb*
    constantsTouched: []
    func_position:
      end: 2788
      start: 2781
    functionDepth: 0
    functionLinenumber: 2781
    functionLinenumberEnd: 2788
    functionName: lcp_echo_lowerdown
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
    functionUses: 1
    functionsReached:
    - UNTIMEOUT
    linkageType: ''
    returnType: void
    signature: lcp_echo_lowerdown(ppp_pcb *pcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - md4_context*
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: md4_starts
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: md4_starts( md4_context *ctx )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:90,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:91,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:92,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:93,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:94,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:95,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:96,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:97,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:98,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:99,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:100,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:101,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:102,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:103,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:104,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:105,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:117,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:118,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:119,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:120,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:121,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:122,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:123,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:124,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:125,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:126,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:127,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:128,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:129,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:130,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:131,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:132,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:140,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:141,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:142,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:143,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:144,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:145,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:146,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:147,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:148,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:149,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:150,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:151,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:152,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:153,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:154,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:155,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:163,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:164,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:165,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:166,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:167,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:168,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:169,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:170,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:171,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:172,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:173,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:174,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:175,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:176,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:177,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 73
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - md4_context*
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 187
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 187
    functionName: md4_process
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c
    functionUses: 0
    functionsReached:
    - GET_ULONG_LE
    - P
    linkageType: ''
    returnType: void
    signature: md4_process( md4_context *ctx, const unsigned char data[64] )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:211,1
    - Dst: md4_process
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:213,1
    - Dst: md4_process
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:221,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:228,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - input
    - ilen
    argTypes:
    - md4_context*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 231
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 231
    functionName: md4_update
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c
    functionUses: 1
    functionsReached:
    - MEMCPY
    - md4_process
    linkageType: ''
    returnType: void
    signature: md4_update( md4_context *ctx, const unsigned char *input, int ilen
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PUT_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:254,1
    - Dst: PUT_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:255,1
    - Dst: md4_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:260,1
    - Dst: md4_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:261,1
    - Dst: PUT_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:263,1
    - Dst: PUT_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:264,1
    - Dst: PUT_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:265,1
    - Dst: PUT_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - output
    argTypes:
    - md4_context*
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 267
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 267
    functionName: md4_finish
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c
    functionUses: 1
    functionsReached:
    - md4_update
    - PUT_ULONG_LE
    linkageType: ''
    returnType: void
    signature: md4_finish( md4_context *ctx, unsigned char output[16] )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: md4_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:276,1
    - Dst: md4_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:277,1
    - Dst: md4_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - input
    - ilen
    - output
    argTypes:
    - unsigned char*
    - int
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 279
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 279
    functionName: md4
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c
    functionUses: 0
    functionsReached:
    - md4_update
    - md4_starts
    - md4_finish
    linkageType: ''
    returnType: void
    signature: md4( unsigned char *input, int ilen, unsigned char output[16] )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - arc4_context*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 71
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 71
    functionName: arc4_setup
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/arc4.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: arc4_setup( arc4_context *ctx, unsigned char *key, int keylen )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - buf
    - buflen
    argTypes:
    - arc4_context*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 99
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 99
    functionName: arc4_crypt
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/arc4.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: arc4_crypt( arc4_context *ctx, unsigned char *buf, int buflen )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/des.c:305,1
    - Dst: GET_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/des.c:306,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - SK
    - key
    argTypes:
    - unsigned long[]
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 367
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 367
    functionName: des_setkey
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/des.c
    functionUses: 0
    functionsReached:
    - GET_ULONG_BE
    linkageType: ''
    returnType: void
    signature: des_setkey( unsigned long SK[32], unsigned char key[8] )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: des_setkey
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/des.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - des_context*
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 375
    functionName: des_setkey_enc
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/des.c
    functionUses: 2
    functionsReached:
    - des_setkey
    linkageType: ''
    returnType: void
    signature: des_setkey_enc( des_context *ctx, unsigned char key[8] )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: des_setkey
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/des.c:384,1
    - Dst: SWAP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/des.c:388,1
    - Dst: SWAP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/des.c:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - des_context*
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 391
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 391
    functionName: des_setkey_dec
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/des.c
    functionUses: 0
    functionsReached:
    - SWAP
    - des_setkey
    linkageType: ''
    returnType: void
    signature: des_setkey_dec( des_context *ctx, unsigned char key[8] )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/des.c:405,1
    - Dst: GET_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/des.c:406,1
    - Dst: DES_IP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/des.c:408,1
    - Dst: DES_ROUND
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/des.c:412,1
    - Dst: DES_ROUND
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/des.c:413,1
    - Dst: DES_FP
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/des.c:416,1
    - Dst: PUT_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/des.c:418,1
    - Dst: PUT_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/des.c:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - input
    - output
    argTypes:
    - des_context*
    - unsigned char[]
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 420
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 420
    functionName: des_crypt_ecb
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/des.c
    functionUses: 2
    functionsReached:
    - DES_IP
    - DES_FP
    - PUT_ULONG_BE
    - DES_ROUND
    - GET_ULONG_BE
    linkageType: ''
    returnType: void
    signature: "des_crypt_ecb( des_context *ctx,\n                    const unsigned
      char input[8],\n                    unsigned char output[8] )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - sha1_context*
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: sha1_starts
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: sha1_starts( sha1_context *ctx )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:90,1
    - Dst: GET_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:91,1
    - Dst: GET_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:92,1
    - Dst: GET_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:93,1
    - Dst: GET_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:94,1
    - Dst: GET_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:95,1
    - Dst: GET_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:96,1
    - Dst: GET_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:97,1
    - Dst: GET_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:98,1
    - Dst: GET_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:99,1
    - Dst: GET_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:100,1
    - Dst: GET_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:101,1
    - Dst: GET_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:102,1
    - Dst: GET_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:103,1
    - Dst: GET_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:104,1
    - Dst: GET_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:105,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:130,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:131,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:132,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:133,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:134,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:135,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:136,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:137,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:138,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:139,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:140,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:141,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:142,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:143,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:144,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:145,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:146,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:146,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:147,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:147,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:148,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:148,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:149,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:149,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:157,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:157,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:158,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:158,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:159,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:159,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:160,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:160,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:161,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:161,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:162,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:162,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:163,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:163,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:164,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:164,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:165,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:165,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:166,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:166,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:167,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:167,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:168,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:168,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:169,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:169,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:170,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:170,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:171,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:171,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:172,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:172,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:173,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:173,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:174,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:174,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:175,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:175,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:176,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:176,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:184,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:184,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:185,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:185,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:186,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:186,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:187,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:187,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:188,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:188,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:189,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:189,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:190,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:190,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:191,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:191,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:192,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:192,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:193,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:193,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:194,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:194,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:195,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:195,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:196,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:196,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:197,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:197,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:198,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:198,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:199,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:199,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:200,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:200,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:201,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:201,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:202,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:202,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:203,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:203,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:211,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:211,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:212,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:212,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:213,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:213,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:214,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:214,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:215,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:215,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:216,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:216,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:217,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:217,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:218,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:218,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:219,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:219,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:220,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:220,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:221,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:221,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:222,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:222,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:223,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:223,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:224,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:224,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:225,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:225,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:226,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:226,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:227,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:227,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:228,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:228,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:229,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:229,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:230,1
    - Dst: R
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 107
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - sha1_context*
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 240
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 240
    functionName: sha1_process
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c
    functionUses: 0
    functionsReached:
    - GET_ULONG_BE
    - R
    - P
    linkageType: ''
    returnType: void
    signature: sha1_process( sha1_context *ctx, const unsigned char data[64] )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:264,1
    - Dst: sha1_process
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:266,1
    - Dst: sha1_process
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:274,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:281,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - input
    - ilen
    argTypes:
    - sha1_context*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 284
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 284
    functionName: sha1_update
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c
    functionUses: 6
    functionsReached:
    - MEMCPY
    - sha1_process
    linkageType: ''
    returnType: void
    signature: sha1_update( sha1_context *ctx, const unsigned char *input, int ilen
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PUT_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:307,1
    - Dst: PUT_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:308,1
    - Dst: sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:313,1
    - Dst: sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:314,1
    - Dst: PUT_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:316,1
    - Dst: PUT_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:317,1
    - Dst: PUT_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:318,1
    - Dst: PUT_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:319,1
    - Dst: PUT_ULONG_BE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - output
    argTypes:
    - sha1_context*
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 321
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 321
    functionName: sha1_finish
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c
    functionUses: 6
    functionsReached:
    - sha1_update
    - PUT_ULONG_BE
    linkageType: ''
    returnType: void
    signature: sha1_finish( sha1_context *ctx, unsigned char output[20] )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sha1_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:330,1
    - Dst: sha1_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:331,1
    - Dst: sha1_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - input
    - ilen
    - output
    argTypes:
    - unsigned char*
    - int
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 333
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 333
    functionName: sha1
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c
    functionUses: 9
    functionsReached:
    - sha1_update
    - sha1_finish
    - sha1_starts
    linkageType: ''
    returnType: void
    signature: sha1( unsigned char *input, int ilen, unsigned char output[20] )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - md5_context*
    constantsTouched: []
    func_position:
      end: 83
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 83
    functionName: md5_starts
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: md5_starts( md5_context *ctx )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:89,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:90,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:91,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:92,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:93,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:94,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:95,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:96,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:97,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:98,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:99,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:100,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:101,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:102,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:103,1
    - Dst: GET_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:104,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:120,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:121,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:122,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:123,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:124,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:125,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:126,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:127,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:128,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:129,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:130,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:131,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:132,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:133,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:134,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:135,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:141,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:142,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:143,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:144,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:145,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:146,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:147,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:148,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:149,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:150,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:151,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:152,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:153,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:154,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:155,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:156,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:162,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:163,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:164,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:165,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:166,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:167,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:168,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:169,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:170,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:171,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:172,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:173,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:174,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:175,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:176,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:177,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:183,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:184,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:185,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:186,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:187,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:188,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:189,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:190,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:191,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:192,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:193,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:194,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:195,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:196,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:197,1
    - Dst: P
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 89
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - md5_context*
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 206
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 206
    functionName: md5_process
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c
    functionUses: 0
    functionsReached:
    - GET_ULONG_LE
    - P
    linkageType: ''
    returnType: void
    signature: md5_process( md5_context *ctx, const unsigned char data[64] )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:230,1
    - Dst: md5_process
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:232,1
    - Dst: md5_process
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:240,1
    - Dst: MEMCPY
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:247,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - input
    - ilen
    argTypes:
    - md5_context*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 250
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 250
    functionName: md5_update
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c
    functionUses: 8
    functionsReached:
    - MEMCPY
    - md5_process
    linkageType: ''
    returnType: void
    signature: md5_update( md5_context *ctx, const unsigned char *input, int ilen
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PUT_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:273,1
    - Dst: PUT_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:274,1
    - Dst: md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:279,1
    - Dst: md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:280,1
    - Dst: PUT_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:282,1
    - Dst: PUT_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:283,1
    - Dst: PUT_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:284,1
    - Dst: PUT_ULONG_LE
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - output
    argTypes:
    - md5_context*
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 286
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 286
    functionName: md5_finish
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c
    functionUses: 8
    functionsReached:
    - md5_update
    - PUT_ULONG_LE
    linkageType: ''
    returnType: void
    signature: md5_finish( md5_context *ctx, unsigned char output[16] )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: md5_starts
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:295,1
    - Dst: md5_update
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:296,1
    - Dst: md5_finish
      Src: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - input
    - ilen
    - output
    argTypes:
    - unsigned char*
    - int
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 298
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 298
    functionName: md5
    functionSourceFile: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c
    functionUses: 0
    functionsReached:
    - md5_finish
    - md5_update
    - md5_starts
    linkageType: ''
    returnType: void
    signature: md5( unsigned char *input, int ilen, unsigned char output[16] )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 211
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 211
    functionName: _strlen31
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: _strlen31(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:59,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:60,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:61,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:62,1
    - Dst: EVP_MD_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:64,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:65,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:66,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:67,1
    - Dst: EVP_MD_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:68,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 74
    functionName: digest_md5
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_set_final
    - EVP_MD_meth_set_flags
    - EVP_MD_meth_set_update
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_free
    - EVP_MD_meth_set_result_size
    - EVP_MD_meth_set_init
    - EVP_MD_meth_new
    - EVP_MD_meth_set_input_blocksize
    linkageType: ''
    returnType: EVP_MD
    signature: '*digest_md5(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:88,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:89,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:90,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:91,1
    - Dst: EVP_MD_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:93,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:94,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:95,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:96,1
    - Dst: EVP_MD_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:97,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 103
    functionName: digest_sha1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_set_final
    - EVP_MD_meth_set_flags
    - EVP_MD_meth_set_update
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_free
    - EVP_MD_meth_set_result_size
    - EVP_MD_meth_set_init
    - EVP_MD_meth_new
    - EVP_MD_meth_set_input_blocksize
    linkageType: ''
    returnType: EVP_MD
    signature: '*digest_sha1(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:117,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:118,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:119,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:120,1
    - Dst: EVP_MD_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:122,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:123,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:124,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:125,1
    - Dst: EVP_MD_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:126,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 132
    functionName: digest_sha256
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_set_final
    - EVP_MD_meth_set_flags
    - EVP_MD_meth_set_update
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_free
    - EVP_MD_meth_set_result_size
    - EVP_MD_meth_set_init
    - EVP_MD_meth_new
    - EVP_MD_meth_set_input_blocksize
    linkageType: ''
    returnType: EVP_MD
    signature: '*digest_sha256(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:148,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:149,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:150,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:151,1
    - Dst: EVP_MD_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:153,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:154,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:155,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:156,1
    - Dst: EVP_MD_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:157,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 163
    functionName: digest_sha384
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_set_final
    - EVP_MD_meth_set_flags
    - EVP_MD_meth_set_update
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_free
    - EVP_MD_meth_set_result_size
    - EVP_MD_meth_set_init
    - EVP_MD_meth_new
    - EVP_MD_meth_set_input_blocksize
    linkageType: ''
    returnType: EVP_MD
    signature: '*digest_sha384(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:170,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:171,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:172,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:173,1
    - Dst: EVP_MD_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:175,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:176,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:177,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:178,1
    - Dst: EVP_MD_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:179,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 185
    functionName: digest_sha512
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_set_final
    - EVP_MD_meth_set_flags
    - EVP_MD_meth_set_update
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_free
    - EVP_MD_meth_set_result_size
    - EVP_MD_meth_set_init
    - EVP_MD_meth_new
    - EVP_MD_meth_set_input_blocksize
    linkageType: ''
    returnType: EVP_MD
    signature: '*digest_sha512(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:188,1
    - Dst: EVP_MD_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:190,1
    - Dst: EVP_MD_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:192,1
    - Dst: EVP_MD_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:194,1
    - Dst: EVP_MD_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 198
    functionName: destroy_digests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_free
    linkageType: ''
    returnType: void
    signature: destroy_digests(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: digest_md5
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:207,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:208,1
    - Dst: digest_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:209,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:210,1
    - Dst: digest_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:211,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:212,1
    - Dst: digest_sha384
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:213,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:214,1
    - Dst: digest_sha512
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:215,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:216,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - nids
    argTypes:
    - int**
    constantsTouched: []
    func_position:
      end: 222
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 222
    functionName: ossltest_digest_nids
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - digest_md5
    - digest_sha384
    - EVP_MD_type
    - digest_sha256
    - digest_sha1
    - digest_sha512
    linkageType: ''
    returnType: int
    signature: ossltest_digest_nids(const int **nids)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:243,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:246,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:247,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:250,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:252,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:254,1
    - Dst: EVP_CIPHER_impl_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:255,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:255,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:256,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 260
    functionName: ossltest_aes_128_cbc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_free
    - EVP_aes_128_cbc
    - EVP_CIPHER_impl_ctx_size
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_iv_length
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_init
    - EVP_CIPHER_meth_new
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*ossltest_aes_128_cbc(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: destroy_ciphers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_free
    linkageType: ''
    returnType: void
    signature: destroy_ciphers(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_load_OSSLTEST_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:270,1
    - Dst: ENGINE_set_id
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:272,1
    - Dst: ENGINE_set_name
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:273,1
    - Dst: ENGINE_set_digests
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:274,1
    - Dst: ENGINE_set_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:275,1
    - Dst: ENGINE_set_destroy_function
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:276,1
    - Dst: ENGINE_set_init_function
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:277,1
    - Dst: ENGINE_set_finish_function
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:278,1
    - Dst: OSSLTESTerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:279,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 284
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 284
    functionName: bind_ossltest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - ENGINE_set_digests
    - ENGINE_set_name
    - ERR_load_OSSLTEST_strings
    - ENGINE_set_destroy_function
    - ENGINE_set_id
    - ENGINE_set_init_function
    - OSSLTESTerr
    - ENGINE_set_ciphers
    - ENGINE_set_finish_function
    linkageType: ''
    returnType: int
    signature: bind_ossltest(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:289,1
    - Dst: bind_ossltest
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    constantsTouched: []
    func_position:
      end: 294
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 294
    functionName: bind_helper
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - bind_ossltest
    - strcmp
    linkageType: ''
    returnType: int
    signature: bind_helper(ENGINE *e, const char *id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:302,1
    - Dst: bind_ossltest
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:305,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 310
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 310
    functionName: engine_ossltest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - bind_ossltest
    - ENGINE_free
    - ENGINE_new
    linkageType: ''
    returnType: ENGINE
    signature: '*engine_ossltest(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_ossltest
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:315,1
    - Dst: ENGINE_add
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:318,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:319,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 321
    functionName: ENGINE_load_ossltest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - ENGINE_add
    - ERR_clear_error
    - engine_ossltest
    - ENGINE_free
    linkageType: ''
    returnType: void
    signature: ENGINE_load_ossltest(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: ossltest_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ossltest_init(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: ossltest_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ossltest_finish(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: destroy_digests
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:338,1
    - Dst: destroy_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:339,1
    - Dst: ERR_unload_OSSLTEST_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 342
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 342
    functionName: ossltest_destroy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - destroy_digests
    - ERR_unload_OSSLTEST_strings
    - destroy_ciphers
    linkageType: ''
    returnType: int
    signature: ossltest_destroy(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ossltest_digest_nids
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:350,1
    - Dst: digest_md5
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:355,1
    - Dst: digest_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:358,1
    - Dst: digest_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:361,1
    - Dst: digest_sha384
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:364,1
    - Dst: digest_sha512
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:367,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - e
    - digest
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_MD**
    - int**
    - int
    constantsTouched: []
    func_position:
      end: 375
      start: 344
    functionDepth: 3
    functionLinenumber: 344
    functionLinenumberEnd: 375
    functionName: ossltest_digests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - ossltest_digest_nids
    - digest_md5
    - digest_sha384
    - digest_sha256
    - digest_sha512
    - digest_sha1
    linkageType: ''
    returnType: int
    signature: "ossltest_digests(ENGINE *e, const EVP_MD **digest,\n                          const
      int **nids, int nid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ossltest_aes_128_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:390,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - e
    - cipher
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_CIPHER**
    - int**
    - int
    constantsTouched: []
    func_position:
      end: 398
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 398
    functionName: ossltest_ciphers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - ossltest_aes_128_cbc
    linkageType: ''
    returnType: int
    signature: "ossltest_ciphers(ENGINE *e, const EVP_CIPHER **cipher,\n                          const
      int **nids, int nid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - md
    - len
    argTypes:
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 407
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 407
    functionName: fill_known_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fill_known_data(unsigned char *md, unsigned int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Init
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:419,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 420
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 420
    functionName: digest_md5_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - MD5_Init
    - data
    linkageType: ''
    returnType: int
    signature: digest_md5_init(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Update
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:425,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: digest_md5_update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - MD5_Update
    - data
    linkageType: ''
    returnType: int
    signature: "digest_md5_update(EVP_MD_CTX *ctx, const void *data,\n                             size_t
      count)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Final
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:431,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:431,1
    - Dst: fill_known_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 437
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 437
    functionName: digest_md5_final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - fill_known_data
    - data
    - MD5_Final
    linkageType: ''
    returnType: int
    signature: digest_md5_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Init
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:446,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 447
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 447
    functionName: digest_sha1_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - data
    - SHA1_Init
    linkageType: ''
    returnType: int
    signature: digest_sha1_init(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:452,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 453
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 453
    functionName: digest_sha1_update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - SHA1_Update
    - data
    linkageType: ''
    returnType: int
    signature: "digest_sha1_update(EVP_MD_CTX *ctx, const void *data,\n                              size_t
      count)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Final
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:458,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:458,1
    - Dst: fill_known_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 464
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 464
    functionName: digest_sha1_final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - fill_known_data
    - SHA1_Final
    - data
    linkageType: ''
    returnType: int
    signature: digest_sha1_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Init
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:473,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: digest_sha256_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - data
    - SHA256_Init
    linkageType: ''
    returnType: int
    signature: digest_sha256_init(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:479,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 480
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 480
    functionName: digest_sha256_update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - SHA256_Update
    - data
    linkageType: ''
    returnType: int
    signature: "digest_sha256_update(EVP_MD_CTX *ctx, const void *data,\n                                size_t
      count)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Final
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:485,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:485,1
    - Dst: fill_known_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 491
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 491
    functionName: digest_sha256_final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - fill_known_data
    - data
    - SHA256_Final
    linkageType: ''
    returnType: int
    signature: digest_sha256_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA384_Init
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:500,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 501
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 501
    functionName: digest_sha384_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - SHA384_Init
    - data
    linkageType: ''
    returnType: int
    signature: digest_sha384_init(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Init
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:505,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 506
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 506
    functionName: digest_sha512_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - SHA512_Init
    - data
    linkageType: ''
    returnType: int
    signature: digest_sha512_init(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Update
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:511,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: digest_sha512_update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - data
    - SHA512_Update
    linkageType: ''
    returnType: int
    signature: "digest_sha512_update(EVP_MD_CTX *ctx, const void *data,\n                                size_t
      count)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Final
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:518,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:518,1
    - Dst: fill_known_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 524
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 524
    functionName: digest_sha384_final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - SHA512_Final
    - fill_known_data
    - data
    linkageType: ''
    returnType: int
    signature: digest_sha384_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Final
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:529,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:529,1
    - Dst: fill_known_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 535
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 535
    functionName: digest_sha512_final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - SHA512_Final
    - fill_known_data
    - data
    linkageType: ''
    returnType: int
    signature: digest_sha512_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_get_init
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:544,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 545
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 545
    functionName: ossltest_aes128_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_get_init
    - EVP_aes_128_cbc
    linkageType: ''
    returnType: int
    signature: "ossltest_aes128_init_key(EVP_CIPHER_CTX *ctx, const unsigned char
      *key,\n                             const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:553,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:558,1
    - Dst: EVP_CIPHER_meth_get_do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:561,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:561,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:564,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c:565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 568
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 568
    functionName: ossltest_aes128_cbc_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cbc
    - memcpy
    - OPENSSL_free
    - OPENSSL_malloc
    - EVP_CIPHER_meth_get_do_cipher
    linkageType: ''
    returnType: int
    signature: "ossltest_aes128_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                              const unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync_err.c:66,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync_err.c:71,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync_err.c:72,1
    - Dst: ERR_PACK
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync_err.c:76,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync_err.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 80
    functionName: ERR_load_DASYNC_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync_err.c
    functionUses: 0
    functionsReached:
    - ERR_get_next_error_library
    - ERR_load_strings
    - ERR_PACK
    linkageType: ''
    returnType: void
    signature: ERR_load_DASYNC_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_unload_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync_err.c:86,1
    - Dst: ERR_unload_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync_err.c:87,1
    - Dst: ERR_unload_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync_err.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 95
    functionName: ERR_unload_DASYNC_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync_err.c
    functionUses: 0
    functionsReached:
    - ERR_unload_strings
    linkageType: ''
    returnType: void
    signature: ERR_unload_DASYNC_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync_err.c:100,1
    - Dst: ERR_PUT_error
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync_err.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - function
    - reason
    - file
    - line
    argTypes:
    - int
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: ERR_DASYNC_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync_err.c
    functionUses: 0
    functionsReached:
    - ERR_get_next_error_library
    - ERR_PUT_error
    linkageType: ''
    returnType: void
    signature: ERR_DASYNC_error(int function, int reason, char *file, int line)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: dasync_sha1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: '*dasync_sha1(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: destroy_digests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 1
    functionsReached:
    - EVP_MD_meth_free
    linkageType: ''
    returnType: void
    signature: destroy_digests(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dasync_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:87,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - nids
    argTypes:
    - int**
    constantsTouched: []
    func_position:
      end: 94
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 94
    functionName: dasync_digest_nids
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dasync_sha1
    - EVP_MD_type
    linkageType: ''
    returnType: int
    signature: dasync_digest_nids(const int **nids)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: dasync_aes_128_cbc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*dasync_aes_128_cbc(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: dasync_aes_128_cbc_hmac_sha1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*dasync_aes_128_cbc_hmac_sha1(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:169,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: destroy_ciphers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_meth_free
    linkageType: ''
    returnType: void
    signature: destroy_ciphers(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:187,1
    - Dst: RSA_meth_set_pub_enc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:188,1
    - Dst: RSA_meth_set_pub_dec
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:189,1
    - Dst: RSA_meth_set_priv_enc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:190,1
    - Dst: RSA_meth_set_priv_dec
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:191,1
    - Dst: RSA_meth_set_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:192,1
    - Dst: RSA_meth_set_bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:193,1
    - Dst: RSA_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:194,1
    - Dst: RSA_meth_set_finish
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:195,1
    - Dst: DASYNCerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:196,1
    - Dst: ERR_load_DASYNC_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:201,1
    - Dst: ENGINE_set_id
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:203,1
    - Dst: ENGINE_set_name
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:204,1
    - Dst: ENGINE_set_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:205,1
    - Dst: ENGINE_set_digests
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:206,1
    - Dst: ENGINE_set_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:207,1
    - Dst: ENGINE_set_destroy_function
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:208,1
    - Dst: ENGINE_set_init_function
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:209,1
    - Dst: ENGINE_set_finish_function
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:210,1
    - Dst: DASYNCerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:211,1
    - Dst: EVP_MD_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:219,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:221,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:222,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:223,1
    - Dst: EVP_MD_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:225,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:226,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:227,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:228,1
    - Dst: EVP_MD_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:229,1
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:233,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:237,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:238,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:242,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:244,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:246,1
    - Dst: EVP_CIPHER_meth_set_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:248,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:250,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:252,1
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:256,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:261,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:262,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:267,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:269,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:271,1
    - Dst: EVP_CIPHER_meth_set_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:273,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:275,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:277,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 26
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 282
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 282
    functionName: bind_dasync
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_set_cleanup
    - ENGINE_set_name
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_free
    - RSA_meth_set_pub_dec
    - ERR_load_DASYNC_strings
    - ENGINE_set_ciphers
    - EVP_CIPHER_meth_set_flags
    - ENGINE_set_RSA
    - ENGINE_set_digests
    - EVP_MD_meth_set_update
    - RSA_meth_new
    - EVP_CIPHER_meth_set_impl_ctx_size
    - ENGINE_set_destroy_function
    - EVP_MD_meth_set_result_size
    - EVP_CIPHER_meth_set_init
    - EVP_MD_meth_set_final
    - RSA_meth_set_init
    - EVP_MD_meth_set_flags
    - DASYNCerr
    - EVP_MD_meth_set_input_blocksize
    - RSA_meth_set_finish
    - RSA_meth_set_pub_enc
    - EVP_CIPHER_meth_set_iv_length
    - RSA_meth_set_bn_mod_exp
    - RSA_meth_set_priv_dec
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_free
    - RSA_meth_set_mod_exp
    - RSA_meth_set_priv_enc
    - EVP_MD_meth_set_init
    - ENGINE_set_id
    - ENGINE_set_init_function
    - EVP_MD_meth_new
    - EVP_CIPHER_meth_set_ctrl
    - ENGINE_set_finish_function
    - EVP_CIPHER_meth_new
    linkageType: ''
    returnType: int
    signature: bind_dasync(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:287,1
    - Dst: bind_dasync
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    constantsTouched: []
    func_position:
      end: 292
      start: 285
    functionDepth: 3
    functionLinenumber: 285
    functionLinenumberEnd: 292
    functionName: bind_helper
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - bind_dasync
    - strcmp
    linkageType: ''
    returnType: int
    signature: bind_helper(ENGINE *e, const char *id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:300,1
    - Dst: bind_dasync
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:303,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 308
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 308
    functionName: engine_dasync
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - bind_dasync
    - ENGINE_free
    - ENGINE_new
    linkageType: ''
    returnType: ENGINE
    signature: '*engine_dasync(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_dasync
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:312,1
    - Dst: ENGINE_add
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:315,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:316,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 318
      start: 310
    functionDepth: 4
    functionLinenumber: 310
    functionLinenumberEnd: 318
    functionName: engine_load_dasync_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - ENGINE_add
    - ERR_clear_error
    - engine_dasync
    - ENGINE_free
    linkageType: ''
    returnType: void
    signature: engine_load_dasync_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: dasync_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: dasync_init(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 329
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 329
    functionName: dasync_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: dasync_finish(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: destroy_digests
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:334,1
    - Dst: destroy_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:335,1
    - Dst: RSA_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:336,1
    - Dst: ERR_unload_DASYNC_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 339
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 339
    functionName: dasync_destroy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - RSA_meth_free
    - destroy_digests
    - ERR_unload_DASYNC_strings
    - destroy_ciphers
    linkageType: ''
    returnType: int
    signature: dasync_destroy(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dasync_digest_nids
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:347,1
    - Dst: dasync_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - e
    - digest
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_MD**
    - int**
    - int
    constantsTouched: []
    func_position:
      end: 360
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 360
    functionName: dasync_digests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dasync_digest_nids
    - dasync_sha1
    linkageType: ''
    returnType: int
    signature: "dasync_digests(ENGINE *e, const EVP_MD **digest,\n                          const
      int **nids, int nid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dasync_aes_128_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:375,1
    - Dst: dasync_aes_128_cbc_hmac_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:378,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - e
    - cipher
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_CIPHER**
    - int**
    - int
    constantsTouched: []
    func_position:
      end: 386
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 386
    functionName: dasync_ciphers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dasync_aes_128_cbc_hmac_sha1
    - dasync_aes_128_cbc
    linkageType: ''
    returnType: int
    signature: "dasync_ciphers(ENGINE *e, const EVP_CIPHER **cipher,\n                                   const
      int **nids, int nid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:393,1
    - Dst: CloseHandle
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:394,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:396,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:397,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - key
    - readfd
    - pvwritefd
    argTypes:
    - ASYNC_WAIT_CTX*
    - void*
    - OSSL_ASYNC_FD
    - void*
    constantsTouched: []
    func_position:
      end: 400
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 400
    functionName: wait_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - CloseHandle
    - OPENSSL_free
    - close
    linkageType: ''
    returnType: void
    signature: "wait_cleanup(ASYNC_WAIT_CTX *ctx, const void *key,\n                         OSSL_ASYNC_FD
      readfd, void *pvwritefd)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_get_current_job
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:416,1
    - Dst: ASYNC_get_wait_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:419,1
    - Dst: ASYNC_WAIT_CTX_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:421,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:425,1
    - Dst: CreatePipe
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:429,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:430,1
    - Dst: pipe
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:434,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:435,1
    - Dst: ASYNC_WAIT_CTX_set_wait_fd
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:441,1
    - Dst: wait_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:443,1
    - Dst: WriteFile
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:453,1
    - Dst: write
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:455,1
    - Dst: ASYNC_pause_job
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:460,1
    - Dst: ReadFile
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:464,1
    - Dst: read
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:466,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 469
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 469
    functionName: dummy_pause_job
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - read
    - ASYNC_pause_job
    - ASYNC_WAIT_CTX_get_fd
    - WriteFile
    - write
    - ReadFile
    - ASYNC_get_current_job
    - ASYNC_WAIT_CTX_set_wait_fd
    - wait_cleanup
    - ASYNC_get_wait_ctx
    - OPENSSL_free
    - OPENSSL_malloc
    - CreatePipe
    - pipe
    linkageType: ''
    returnType: void
    signature: dummy_pause_job(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dummy_pause_job
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:479,1
    - Dst: SHA1_Init
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:481,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 482
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 482
    functionName: dasync_sha1_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dummy_pause_job
    - data
    - SHA1_Init
    linkageType: ''
    returnType: int
    signature: dasync_sha1_init(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dummy_pause_job
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:487,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:489,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 490
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 490
    functionName: dasync_sha1_update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dummy_pause_job
    - SHA1_Update
    - data
    linkageType: ''
    returnType: int
    signature: "dasync_sha1_update(EVP_MD_CTX *ctx, const void *data,\n                             size_t
      count)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dummy_pause_job
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:494,1
    - Dst: SHA1_Final
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:496,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 497
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 497
    functionName: dasync_sha1_final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dummy_pause_job
    - SHA1_Final
    - data
    linkageType: ''
    returnType: int
    signature: dasync_sha1_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dummy_pause_job
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:506,1
    - Dst: RSA_meth_get_pub_enc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:507,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 509
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 509
    functionName: dasync_pub_enc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - RSA_meth_get_pub_enc
    - dummy_pause_job
    - RSA_PKCS1_OpenSSL
    linkageType: ''
    returnType: int
    signature: "dasync_pub_enc(int flen, const unsigned char *from,\n                    unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dummy_pause_job
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:514,1
    - Dst: RSA_meth_get_pub_dec
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:515,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 517
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 517
    functionName: dasync_pub_dec
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dummy_pause_job
    - RSA_PKCS1_OpenSSL
    - RSA_meth_get_pub_dec
    linkageType: ''
    returnType: int
    signature: "dasync_pub_dec(int flen, const unsigned char *from,\n                    unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dummy_pause_job
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:523,1
    - Dst: RSA_meth_get_priv_enc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:524,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 526
      start: 519
    functionDepth: 2
    functionLinenumber: 519
    functionLinenumberEnd: 526
    functionName: dasync_rsa_priv_enc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dummy_pause_job
    - RSA_meth_get_priv_enc
    - RSA_PKCS1_OpenSSL
    linkageType: ''
    returnType: int
    signature: "dasync_rsa_priv_enc(int flen, const unsigned char *from,\n                      unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dummy_pause_job
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:532,1
    - Dst: RSA_meth_get_priv_dec
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:533,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 535
      start: 528
    functionDepth: 2
    functionLinenumber: 528
    functionLinenumberEnd: 535
    functionName: dasync_rsa_priv_dec
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - RSA_meth_get_priv_dec
    - dummy_pause_job
    - RSA_PKCS1_OpenSSL
    linkageType: ''
    returnType: int
    signature: "dasync_rsa_priv_dec(int flen, const unsigned char *from,\n                      unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dummy_pause_job
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:540,1
    - Dst: RSA_meth_get_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:541,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - r0
    - I
    - rsa
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - RSA*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 542
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 542
    functionName: dasync_rsa_mod_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dummy_pause_job
    - RSA_meth_get_mod_exp
    - RSA_PKCS1_OpenSSL
    linkageType: ''
    returnType: int
    signature: dasync_rsa_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_meth_get_init
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:546,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    constantsTouched: []
    func_position:
      end: 547
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 547
    functionName: dasync_rsa_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - RSA_meth_get_init
    - RSA_PKCS1_OpenSSL
    linkageType: ''
    returnType: int
    signature: dasync_rsa_init(RSA *rsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_meth_get_finish
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:550,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    constantsTouched: []
    func_position:
      end: 551
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 551
    functionName: dasync_rsa_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - RSA_meth_get_finish
    - RSA_PKCS1_OpenSSL
    linkageType: ''
    returnType: int
    signature: dasync_rsa_finish(RSA *rsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:560,1
    - Dst: EVP_CIPHER_CTX_set_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:584,1
    - Dst: EVP_CIPHER_meth_get_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:585,1
    - Dst: EVP_aes_128_cbc_hmac_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:585,1
    - Dst: EVP_CIPHER_CTX_set_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:587,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:601,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 5
    argNames:
    - ctx
    - type
    - arg
    - ptr
    - aeadcapable
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 624
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 624
    functionName: dasync_cipher_ctrl_helper
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cbc_hmac_sha1
    - EVP_CIPHER_CTX_set_cipher_data
    - memcpy
    - EVP_CIPHER_meth_get_ctrl
    - EVP_CIPHER_CTX_get_cipher_data
    linkageType: ''
    returnType: int
    signature: "dasync_cipher_ctrl_helper(EVP_CIPHER_CTX *ctx, int type, int arg,\n
      \                                    void *ptr, int aeadcapable)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:633,1
    - Dst: EVP_CIPHER_impl_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:636,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:637,1
    - Dst: EVP_CIPHER_impl_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:638,1
    - Dst: DASYNCerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:640,1
    - Dst: EVP_CIPHER_CTX_set_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:649,1
    - Dst: EVP_CIPHER_meth_get_init
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:650,1
    - Dst: EVP_CIPHER_CTX_set_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:651,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - ctx
    - key
    - iv
    - enc
    - cipher
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 654
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 654
    functionName: dasync_cipher_init_key_helper
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - DASYNCerr
    - EVP_CIPHER_impl_ctx_size
    - EVP_CIPHER_CTX_set_cipher_data
    - OPENSSL_zalloc
    - EVP_CIPHER_meth_get_init
    - EVP_CIPHER_CTX_get_cipher_data
    linkageType: ''
    returnType: int
    signature: "dasync_cipher_init_key_helper(EVP_CIPHER_CTX *ctx,\n                                         const
      unsigned char *key,\n                                         const unsigned
      char *iv, int enc,\n                                         const EVP_CIPHER
      *cipher)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:663,1
    - Dst: EVP_CIPHER_CTX_set_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:666,1
    - Dst: EVP_CIPHER_meth_get_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:671,1
    - Dst: EVP_CIPHER_meth_get_do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:676,1
    - Dst: EVP_CIPHER_meth_get_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:683,1
    - Dst: EVP_CIPHER_meth_get_do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:688,1
    - Dst: EVP_CIPHER_CTX_set_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:695,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - ctx
    - out
    - in
    - inl
    - cipher
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 697
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 697
    functionName: dasync_cipher_helper
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_get_do_cipher
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_CTX_set_cipher_data
    - EVP_CIPHER_meth_get_ctrl
    linkageType: ''
    returnType: int
    signature: "dasync_cipher_helper(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                                const
      unsigned char *in, size_t inl,\n                                const EVP_CIPHER
      *cipher)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:703,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:705,1
    - Dst: EVP_CIPHER_impl_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - cipher
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 709
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 709
    functionName: dasync_cipher_cleanup_helper
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_impl_ctx_size
    linkageType: ''
    returnType: int
    signature: "dasync_cipher_cleanup_helper(EVP_CIPHER_CTX *ctx,\n                                        const
      EVP_CIPHER *cipher)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_ctrl_helper
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 719
      start: 715
    functionDepth: 2
    functionLinenumber: 715
    functionLinenumberEnd: 719
    functionName: dasync_aes128_cbc_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dasync_cipher_ctrl_helper
    linkageType: ''
    returnType: int
    signature: "dasync_aes128_cbc_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,\n                                  void
      *ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_init_key_helper
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:724,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 725
      start: 721
    functionDepth: 2
    functionLinenumber: 721
    functionLinenumberEnd: 725
    functionName: dasync_aes128_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cbc
    - dasync_cipher_init_key_helper
    linkageType: ''
    returnType: int
    signature: "dasync_aes128_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                            const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_helper
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:730,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 731
      start: 727
    functionDepth: 2
    functionLinenumber: 727
    functionLinenumberEnd: 731
    functionName: dasync_aes128_cbc_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cbc
    - dasync_cipher_helper
    linkageType: ''
    returnType: int
    signature: "dasync_aes128_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                              const unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_cleanup_helper
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:735,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 736
      start: 733
    functionDepth: 2
    functionLinenumber: 733
    functionLinenumberEnd: 736
    functionName: dasync_aes128_cbc_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cbc
    - dasync_cipher_cleanup_helper
    linkageType: ''
    returnType: int
    signature: dasync_aes128_cbc_cleanup(EVP_CIPHER_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_ctrl_helper
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 747
      start: 743
    functionDepth: 2
    functionLinenumber: 743
    functionLinenumberEnd: 747
    functionName: dasync_aes128_cbc_hmac_sha1_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dasync_cipher_ctrl_helper
    linkageType: ''
    returnType: int
    signature: "dasync_aes128_cbc_hmac_sha1_ctrl(EVP_CIPHER_CTX *ctx, int type,\n
      \                                            int arg, void *ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_init_key_helper
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:754,1
    - Dst: EVP_aes_128_cbc_hmac_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 756
      start: 749
    functionDepth: 2
    functionLinenumber: 749
    functionLinenumberEnd: 756
    functionName: dasync_aes128_cbc_hmac_sha1_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dasync_cipher_init_key_helper
    - EVP_aes_128_cbc_hmac_sha1
    linkageType: ''
    returnType: int
    signature: "dasync_aes128_cbc_hmac_sha1_init_key(EVP_CIPHER_CTX *ctx,\n                                                const
      unsigned char *key,\n                                                const unsigned
      char *iv,\n                                                int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_helper
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:763,1
    - Dst: EVP_aes_128_cbc_hmac_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 764
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 764
    functionName: dasync_aes128_cbc_hmac_sha1_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dasync_cipher_helper
    - EVP_aes_128_cbc_hmac_sha1
    linkageType: ''
    returnType: int
    signature: "dasync_aes128_cbc_hmac_sha1_cipher(EVP_CIPHER_CTX *ctx,\n                                               unsigned
      char *out,\n                                               const unsigned char
      *in,\n                                               size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_cleanup_helper
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:768,1
    - Dst: EVP_aes_128_cbc_hmac_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 769
      start: 766
    functionDepth: 2
    functionLinenumber: 766
    functionLinenumberEnd: 769
    functionName: dasync_aes128_cbc_hmac_sha1_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dasync_cipher_cleanup_helper
    - EVP_aes_128_cbc_hmac_sha1
    linkageType: ''
    returnType: int
    signature: dasync_aes128_cbc_hmac_sha1_cleanup(EVP_CIPHER_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:299,1
    - Dst: ENGINE_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:302,1
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:303,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:305,1
    - Dst: capi_list_providers
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:310,1
    - Dst: capi_list_certs
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:314,1
    - Dst: capi_list_certs
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:318,1
    - Dst: capi_list_containers
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:322,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:326,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:328,1
    - Dst: CAPI_trace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:330,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:332,1
    - Dst: CAPI_trace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:345,1
    - Dst: CAPI_trace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:350,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:354,1
    - Dst: CAPI_trace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:357,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:359,1
    - Dst: CAPI_trace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:366,1
    - Dst: capi_ctx_set_provname_idx
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:370,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:379,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:380,1
    - Dst: capi_ctx_set_provname
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:387,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:395,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:399,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 89
    argCount: 4
    argNames:
    - e
    - cmd
    - i
    - p
    argTypes:
    - ENGINE*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 402
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 402
    functionName: capi_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - capi_ctx_set_provname
    - capi_ctx_set_provname_idx
    - capi_list_providers
    - CAPI_trace
    - BIO_new_fp
    - CAPIerr
    - BIO_free
    - capi_list_certs
    - ENGINE_get_ex_data
    - capi_list_containers
    - OPENSSL_strdup
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: capi_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_ex_new_index
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:421,1
    - Dst: X509_get_ex_new_index
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:425,1
    - Dst: RSA_get_ex_new_index
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:428,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:429,1
    - Dst: RSA_meth_set_pub_enc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:430,1
    - Dst: RSA_meth_get_pub_enc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:431,1
    - Dst: RSA_meth_set_pub_dec
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:432,1
    - Dst: RSA_meth_get_pub_dec
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:433,1
    - Dst: RSA_meth_set_priv_enc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:434,1
    - Dst: RSA_meth_set_priv_dec
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:435,1
    - Dst: RSA_meth_set_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:436,1
    - Dst: RSA_meth_get_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:437,1
    - Dst: RSA_meth_set_bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:438,1
    - Dst: RSA_meth_get_bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:439,1
    - Dst: RSA_meth_set_finish
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:440,1
    - Dst: RSA_meth_set_sign
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:441,1
    - Dst: DSA_get_ex_new_index
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:447,1
    - Dst: DSA_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:448,1
    - Dst: DSA_meth_set_sign
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:449,1
    - Dst: DSA_meth_set_verify
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:450,1
    - Dst: DSA_meth_get_verify
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:451,1
    - Dst: DSA_meth_set_finish
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:452,1
    - Dst: DSA_meth_set_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:453,1
    - Dst: DSA_meth_get_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:454,1
    - Dst: DSA_meth_set_bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:455,1
    - Dst: DSA_meth_get_bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:456,1
    - Dst: capi_ctx_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:462,1
    - Dst: ENGINE_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:466,1
    - Dst: LoadLibrary
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:470,1
    - Dst: TEXT
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:470,1
    - Dst: GetModuleHandle
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:471,1
    - Dst: TEXT
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:471,1
    - Dst: GetProcAddress
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:474,1
    - Dst: GetProcAddress
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:478,1
    - Dst: OPENSSL_isservice
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:479,1
    - Dst: CryptAcquireContext
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:486,1
    - Dst: CryptReleaseContext
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:489,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:495,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 42
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 499
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 499
    functionName: capi_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_ex_new_index
    - X509_get_ex_new_index
    - RSA_meth_get_pub_enc
    - DSA_meth_get_bn_mod_exp
    - RSA_meth_set_pub_dec
    - RSA_PKCS1_OpenSSL
    - DSA_meth_set_mod_exp
    - DSA_meth_set_finish
    - GetModuleHandle
    - RSA_meth_get_bn_mod_exp
    - RSA_get_ex_new_index
    - capi_ctx_new
    - RSA_meth_get_pub_dec
    - OPENSSL_isservice
    - GetProcAddress
    - CryptAcquireContext
    - DSA_OpenSSL
    - RSA_meth_set_sign
    - CryptReleaseContext
    - DSA_meth_set_verify
    - CAPIerr
    - RSA_meth_set_finish
    - ENGINE_set_ex_data
    - RSA_meth_set_pub_enc
    - DSA_meth_get_mod_exp
    - DSA_get_ex_new_index
    - RSA_meth_set_bn_mod_exp
    - RSA_meth_set_priv_dec
    - LoadLibrary
    - DSA_meth_set_bn_mod_exp
    - DSA_meth_get_verify
    - RSA_meth_set_mod_exp
    - RSA_meth_set_priv_enc
    - RSA_meth_get_mod_exp
    - DSA_meth_set_sign
    - TEXT
    linkageType: ''
    returnType: int
    signature: capi_init(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:503,1
    - Dst: DSA_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:506,1
    - Dst: ERR_unload_CAPI_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 511
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 511
    functionName: capi_destroy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - RSA_meth_free
    - DSA_meth_free
    - ERR_unload_CAPI_strings
    linkageType: ''
    returnType: int
    signature: capi_destroy(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:516,1
    - Dst: capi_ctx_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:517,1
    - Dst: ENGINE_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 520
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 520
    functionName: capi_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - capi_ctx_free
    - ENGINE_set_ex_data
    - ENGINE_get_ex_data
    linkageType: ''
    returnType: int
    signature: capi_finish(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:538,1
    - Dst: DSA_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:542,1
    - Dst: ENGINE_set_id
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:546,1
    - Dst: ENGINE_set_name
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:547,1
    - Dst: ENGINE_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:548,1
    - Dst: ENGINE_set_init_function
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:549,1
    - Dst: ENGINE_set_finish_function
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:550,1
    - Dst: ENGINE_set_destroy_function
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:551,1
    - Dst: ENGINE_set_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:552,1
    - Dst: ENGINE_set_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:554,1
    - Dst: ENGINE_set_load_privkey_function
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:556,1
    - Dst: ENGINE_set_load_ssl_client_cert_function
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:557,1
    - Dst: ENGINE_set_cmd_defns
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:559,1
    - Dst: ENGINE_set_ctrl_function
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:560,1
    - Dst: ERR_load_CAPI_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:562,1
    - Dst: RSA_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:566,1
    - Dst: DSA_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:569,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 20
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 573
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 573
    functionName: bind_capi
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - RSA_meth_free
    - ERR_load_CAPI_strings
    - ENGINE_set_name
    - ENGINE_set_load_privkey_function
    - ENGINE_set_load_ssl_client_cert_function
    - ENGINE_set_DSA
    - RSA_meth_new
    - ENGINE_set_flags
    - ENGINE_set_destroy_function
    - ENGINE_set_id
    - ENGINE_set_init_function
    - ENGINE_set_cmd_defns
    - ENGINE_set_ctrl_function
    - DSA_meth_new
    - ENGINE_set_finish_function
    - DSA_meth_free
    - ENGINE_set_RSA
    linkageType: ''
    returnType: int
    signature: bind_capi(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:578,1
    - Dst: bind_capi
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    constantsTouched: []
    func_position:
      end: 583
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 583
    functionName: bind_helper
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - bind_capi
    - strcmp
    linkageType: ''
    returnType: int
    signature: bind_helper(ENGINE *e, const char *id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:590,1
    - Dst: bind_capi
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:593,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:594,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 598
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 598
    functionName: engine_capi
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - bind_capi
    - ENGINE_free
    - ENGINE_new
    linkageType: ''
    returnType: ENGINE
    signature: '*engine_capi(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_capi
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:603,1
    - Dst: ENGINE_add
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:606,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:607,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 609
      start: 600
    functionDepth: 3
    functionLinenumber: 600
    functionLinenumberEnd: 609
    functionName: engine_load_capi_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - ENGINE_add
    - ERR_clear_error
    - engine_capi
    - ENGINE_free
    linkageType: ''
    returnType: void
    signature: engine_load_capi_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:627,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - bn
    - bin
    - binlen
    argTypes:
    - BIGNUM*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 630
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 630
    functionName: lend_tobn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: int
    signature: lend_tobn(BIGNUM *bn, unsigned char *bin, int binlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CryptExportKey
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:642,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:643,1
    - Dst: capi_addlasterror
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:644,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:648,1
    - Dst: CryptExportKey
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:653,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:654,1
    - Dst: capi_addlasterror
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:655,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:661,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:672,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:673,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:675,1
    - Dst: RSA_new_method
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:679,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:683,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:684,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:687,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:688,1
    - Dst: RSA_set0_key
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:692,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:694,1
    - Dst: lend_tobn
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:698,1
    - Dst: RSA_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:701,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:703,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:706,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:718,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:719,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:721,1
    - Dst: DSA_new_method
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:726,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:729,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:730,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:731,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:732,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:734,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:735,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:736,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:737,1
    - Dst: DSA_set0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:740,1
    - Dst: DSA_set0_key
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:741,1
    - Dst: lend_tobn
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:742,1
    - Dst: lend_tobn
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:745,1
    - Dst: lend_tobn
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:748,1
    - Dst: lend_tobn
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:751,1
    - Dst: DSA_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:755,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:757,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:760,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:765,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:766,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:768,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:773,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:775,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:777,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:784,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 130
    argCount: 2
    argNames:
    - eng
    - key
    argTypes:
    - ENGINE*
    - CAPI_KEY*
    constantsTouched: []
    func_position:
      end: 787
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 787
    functionName: capi_get_pkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - capi_addlasterror
    - RSA_free
    - DSA_set0_key
    - BN_free
    - DSA_free
    - CryptExportKey
    - RSA_new_method
    - RSA_set_ex_data
    - DSA_set_ex_data
    - EVP_PKEY_new
    - BN_new
    - BIO_snprintf
    - DSA_new_method
    - CAPIerr
    - ERR_add_error_data
    - DSA_set0_pqg
    - OPENSSL_free
    - RSA_set0_key
    - EVP_PKEY_assign_RSA
    - EVP_PKEY_assign_DSA
    - BN_set_word
    - lend_tobn
    - OPENSSL_malloc
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*capi_get_pkey(ENGINE *eng, CAPI_KEY * key)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:795,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:798,1
    - Dst: capi_find_key
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:802,1
    - Dst: capi_get_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:807,1
    - Dst: capi_free_key
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:810,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - eng
    - key_id
    - ui_method
    - callback_data
    argTypes:
    - ENGINE*
    - char*
    - UI_METHOD*
    - void*
    constantsTouched: []
    func_position:
      end: 813
      start: 789
    functionDepth: 3
    functionLinenumber: 789
    functionLinenumberEnd: 813
    functionName: capi_load_privkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - capi_free_key
    - capi_find_key
    - CAPIerr
    - ENGINE_get_ex_data
    - capi_get_pkey
    linkageType: ''
    returnType: EVP_PKEY
    signature: "*capi_load_privkey(ENGINE *eng, const char *key_id,\n                                   UI_METHOD
      *ui_method, void *callback_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 822
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 822
    functionName: capi_rsa_priv_enc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - CAPIerr
    linkageType: ''
    returnType: int
    signature: "capi_rsa_priv_enc(int flen, const unsigned char *from,\n                      unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:835,1
    - Dst: RSA_get0_engine
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:835,1
    - Dst: CAPI_trace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:837,1
    - Dst: RSA_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:839,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:841,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:872,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:873,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:874,1
    - Dst: CryptCreateHash
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:880,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:881,1
    - Dst: capi_addlasterror
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:882,1
    - Dst: CryptSetHashParam
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:887,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:888,1
    - Dst: capi_addlasterror
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:889,1
    - Dst: RSA_size
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:894,1
    - Dst: CryptSignHash
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:895,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:896,1
    - Dst: capi_addlasterror
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:897,1
    - Dst: CryptDestroyHash
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:914,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 64
    argCount: 6
    argNames:
    - dtype
    - m
    - m_len
    - sigret
    - siglen
    - rsa
    argTypes:
    - int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    - RSA*
    constantsTouched: []
    func_position:
      end: 917
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 917
    functionName: capi_rsa_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - CryptCreateHash
    - BIO_snprintf
    - RSA_size
    - CAPI_trace
    - CryptSignHash
    - CAPIerr
    - ERR_add_error_data
    - capi_addlasterror
    - CryptSetHashParam
    - ENGINE_get_ex_data
    - RSA_get_ex_data
    - CryptDestroyHash
    - RSA_get0_engine
    linkageType: ''
    returnType: int
    signature: "capi_rsa_sign(int dtype, const unsigned char *m, unsigned int m_len,\n
      \                 unsigned char *sigret, unsigned int *siglen, const RSA *rsa)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:931,1
    - Dst: RSA_get0_engine
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:931,1
    - Dst: CAPI_trace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:933,1
    - Dst: RSA_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:935,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:937,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:943,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:944,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:945,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:950,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:951,1
    - Dst: CryptDecrypt
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:959,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:960,1
    - Dst: capi_addlasterror
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:961,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:962,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:965,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:967,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 970
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 970
    functionName: capi_rsa_priv_dec
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - CAPI_trace
    - CryptDecrypt
    - CAPIerr
    - ERR_add_error_data
    - capi_addlasterror
    - memcpy
    - ENGINE_get_ex_data
    - RSA_get_ex_data
    - OPENSSL_free
    - OPENSSL_malloc
    - RSA_get0_engine
    linkageType: ''
    returnType: int
    signature: "capi_rsa_priv_dec(int flen, const unsigned char *from,\n                      unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:975,1
    - Dst: capi_free_key
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:976,1
    - Dst: RSA_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    constantsTouched: []
    func_position:
      end: 979
      start: 972
    functionDepth: 1
    functionLinenumber: 972
    functionLinenumberEnd: 979
    functionName: capi_rsa_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - RSA_get_ex_data
    - RSA_set_ex_data
    - capi_free_key
    linkageType: ''
    returnType: int
    signature: capi_rsa_free(RSA *rsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:994,1
    - Dst: DSA_get0_engine
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:994,1
    - Dst: CAPI_trace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:996,1
    - Dst: DSA_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:998,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1001,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1006,1
    - Dst: CryptCreateHash
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1011,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1012,1
    - Dst: capi_addlasterror
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1013,1
    - Dst: CryptSetHashParam
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1018,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1019,1
    - Dst: capi_addlasterror
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1020,1
    - Dst: CryptSignHash
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1026,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1027,1
    - Dst: capi_addlasterror
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1028,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1031,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1031,1
    - Dst: lend_tobn
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1034,1
    - Dst: lend_tobn
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1035,1
    - Dst: DSA_SIG_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1036,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1037,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1038,1
    - Dst: DSA_SIG_set0
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1041,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1047,1
    - Dst: CryptDestroyHash
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1048,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 3
    argNames:
    - digest
    - dlen
    - dsa
    argTypes:
    - unsigned char*
    - int
    - DSA*
    constantsTouched: []
    func_position:
      end: 1050
      start: 984
    functionDepth: 2
    functionLinenumber: 984
    functionLinenumberEnd: 1050
    functionName: capi_dsa_do_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - CryptCreateHash
    - BN_new
    - BN_free
    - CAPI_trace
    - DSA_get_ex_data
    - DSA_SIG_set0
    - CryptSignHash
    - CAPIerr
    - capi_addlasterror
    - CryptSetHashParam
    - ENGINE_get_ex_data
    - DSA_SIG_new
    - lend_tobn
    - OPENSSL_cleanse
    - CryptDestroyHash
    - DSA_get0_engine
    linkageType: ''
    returnType: DSA_SIG
    signature: "*capi_dsa_do_sign(const unsigned char *digest, int dlen,\n                                 DSA
      *dsa)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1055,1
    - Dst: capi_free_key
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1056,1
    - Dst: DSA_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    constantsTouched: []
    func_position:
      end: 1059
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1059
    functionName: capi_dsa_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - DSA_set_ex_data
    - capi_free_key
    - DSA_get_ex_data
    linkageType: ''
    returnType: int
    signature: capi_dsa_free(DSA *dsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1069,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1071,1
    - Dst: BIO_vprintf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1074,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1075,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - level
    - format
    - argptr
    argTypes:
    - CAPI_CTX*
    - int
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 1076
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1076
    functionName: capi_vtrace
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - CAPIerr
    - BIO_vprintf
    - BIO_new_file
    linkageType: ''
    returnType: void
    signature: "capi_vtrace(CAPI_CTX * ctx, int level, char *format,\n                        va_list
      argptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1081,1
    - Dst: capi_vtrace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1082,1
    - Dst: va_end
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - format
    argTypes:
    - CAPI_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 1084
      start: 1078
    functionDepth: 2
    functionLinenumber: 1078
    functionLinenumberEnd: 1084
    functionName: CAPI_trace
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 4
    functionsReached:
    - capi_vtrace
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: CAPI_trace(CAPI_CTX * ctx, char *format, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: capi_adderror
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1088,1
    - Dst: GetLastError
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1086
    functionDepth: 1
    functionLinenumber: 1086
    functionLinenumberEnd: 1089
    functionName: capi_addlasterror
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 4
    functionsReached:
    - GetLastError
    - capi_adderror
    linkageType: ''
    returnType: void
    signature: capi_addlasterror(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1094,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - err
    argTypes:
    - DWORD
    constantsTouched: []
    func_position:
      end: 1096
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1096
    functionName: capi_adderror
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - ERR_add_error_data
    - BIO_snprintf
    linkageType: ''
    returnType: void
    signature: capi_adderror(DWORD err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1105,1
    - Dst: WideCharToMultiByte
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1106,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1108,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1111,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1113,1
    - Dst: WideCharToMultiByte
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1116,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1117,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - wstr
    argTypes:
    - LPCWSTR
    constantsTouched: []
    func_position:
      end: 1122
      start: 1098
    functionDepth: 0
    functionLinenumber: 1098
    functionLinenumberEnd: 1122
    functionName: wide_to_asc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - WideCharToMultiByte
    - CAPIerr
    - wcslen
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: char
    signature: '*wide_to_asc(LPCWSTR wstr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1129,1
    - Dst: CryptEnumProviders
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1130,1
    - Dst: GetLastError
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1131,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1134,1
    - Dst: capi_adderror
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1135,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1138,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1140,1
    - Dst: CryptEnumProviders
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1143,1
    - Dst: GetLastError
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1144,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1145,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1148,1
    - Dst: capi_adderror
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1149,1
    - Dst: wide_to_asc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1153,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1154,1
    - Dst: CAPI_trace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1159,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 4
    argNames:
    - ctx
    - pname
    - ptype
    - idx
    argTypes:
    - CAPI_CTX*
    - LPSTR*
    - DWORD*
    - DWORD
    constantsTouched: []
    func_position:
      end: 1163
      start: 1124
    functionDepth: 3
    functionLinenumber: 1124
    functionLinenumberEnd: 1163
    functionName: capi_get_provname
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - CAPI_trace
    - capi_adderror
    - CryptEnumProviders
    - CAPIerr
    - GetLastError
    - wide_to_asc
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "capi_get_provname(CAPI_CTX * ctx, LPSTR * pname, DWORD * ptype,\n
      \                            DWORD idx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1170,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1171,1
    - Dst: capi_get_provname
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1173,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1178,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - out
    argTypes:
    - CAPI_CTX*
    - BIO*
    constantsTouched: []
    func_position:
      end: 1182
      start: 1165
    functionDepth: 4
    functionLinenumber: 1165
    functionLinenumberEnd: 1182
    functionName: capi_list_providers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - CAPI_trace
    - capi_get_provname
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: capi_list_providers(CAPI_CTX * ctx, BIO *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1192,1
    - Dst: MultiByteToWideChar
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1196,1
    - Dst: alloca
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1197,1
    - Dst: MultiByteToWideChar
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1198,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1202,1
    - Dst: capi_addlasterror
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1203,1
    - Dst: CryptAcquireContext
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1208,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1210,1
    - Dst: capi_addlasterror
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1212,1
    - Dst: CryptGetProvParam
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1215,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1217,1
    - Dst: capi_addlasterror
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1218,1
    - Dst: CryptReleaseContext
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1219,1
    - Dst: CAPI_trace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1222,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1225,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1227,1
    - Dst: CryptGetProvParam
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1239,1
    - Dst: GetLastError
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1241,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1244,1
    - Dst: capi_adderror
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1245,1
    - Dst: CAPI_trace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1248,1
    - Dst: CAPI_trace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1251,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1254,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1261,1
    - Dst: CryptReleaseContext
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1262,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 66
    argCount: 2
    argNames:
    - ctx
    - out
    argTypes:
    - CAPI_CTX*
    - BIO*
    constantsTouched: []
    func_position:
      end: 1265
      start: 1184
    functionDepth: 3
    functionLinenumber: 1184
    functionLinenumberEnd: 1265
    functionName: capi_list_containers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - MultiByteToWideChar
    - CAPI_trace
    - CryptReleaseContext
    - capi_adderror
    - OPENSSL_free
    - CAPIerr
    - capi_addlasterror
    - alloca
    - GetLastError
    - CryptAcquireContext
    - BIO_printf
    - CryptGetProvParam
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: capi_list_containers(CAPI_CTX * ctx, BIO *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CertGetCertificateContextProperty
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1272,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1275,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1277,1
    - Dst: CertGetCertificateContextProperty
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1280,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1282,1
    - Dst: capi_addlasterror
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1284,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - CAPI_CTX*
    - PCCERT_CONTEXT
    constantsTouched: []
    func_position:
      end: 1289
      start: 1267
    functionDepth: 2
    functionLinenumber: 1267
    functionLinenumberEnd: 1289
    functionName: capi_get_prov_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - CAPIerr
    - capi_addlasterror
    - CertGetCertificateContextProperty
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: CRYPT_KEY_PROV_INFO
    signature: '*capi_get_prov_info(CAPI_CTX * ctx, PCCERT_CONTEXT cert)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1296,1
    - Dst: wide_to_asc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1299,1
    - Dst: wide_to_asc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1300,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1304,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1305,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1307,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1310,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1311,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - out
    - pinfo
    argTypes:
    - CAPI_CTX*
    - BIO*
    - CRYPT_KEY_PROV_INFO*
    constantsTouched: []
    func_position:
      end: 1312
      start: 1291
    functionDepth: 1
    functionLinenumber: 1291
    functionLinenumberEnd: 1312
    functionName: capi_dump_prov_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - wide_to_asc
    - OPENSSL_free
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: "capi_dump_prov_info(CAPI_CTX * ctx, BIO *out,\n                                CRYPT_KEY_PROV_INFO
      * pinfo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1319,1
    - Dst: CertGetCertificateContextProperty
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1320,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1323,1
    - Dst: CertGetCertificateContextProperty
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1326,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1329,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1332,1
    - Dst: capi_addlasterror
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1333,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - CAPI_CTX*
    - PCCERT_CONTEXT
    constantsTouched: []
    func_position:
      end: 1337
      start: 1314
    functionDepth: 3
    functionLinenumber: 1314
    functionLinenumberEnd: 1337
    functionName: capi_cert_get_fname
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - CAPI_trace
    - CAPIerr
    - capi_addlasterror
    - CertGetCertificateContextProperty
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: char
    signature: '*capi_cert_get_fname(CAPI_CTX * ctx, PCCERT_CONTEXT cert)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: capi_cert_get_fname
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1346,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1348,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1349,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1351,1
    - Dst: d2i_X509
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1355,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1357,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1359,1
    - Dst: X509_NAME_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1360,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1360,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1361,1
    - Dst: X509_NAME_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1362,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1362,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1363,1
    - Dst: X509_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1366,1
    - Dst: capi_get_prov_info
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1370,1
    - Dst: capi_dump_prov_info
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1371,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1372,1
    - Dst: PEM_write_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1376,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1377,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - ctx
    - out
    - cert
    argTypes:
    - CAPI_CTX*
    - BIO*
    - PCCERT_CONTEXT
    constantsTouched: []
    func_position:
      end: 1378
      start: 1339
    functionDepth: 4
    functionLinenumber: 1339
    functionLinenumberEnd: 1378
    functionName: capi_dump_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - d2i_X509
    - X509_print_ex
    - PEM_write_bio_X509
    - X509_get_subject_name
    - X509_NAME_print_ex
    - capi_dump_prov_info
    - X509_get_issuer_name
    - capi_get_prov_info
    - X509_free
    - BIO_printf
    - OPENSSL_free
    - capi_cert_get_fname
    linkageType: ''
    returnType: void
    signature: capi_dump_cert(CAPI_CTX * ctx, BIO *out, PCCERT_CONTEXT cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1388,1
    - Dst: CertOpenStore
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1390,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1393,1
    - Dst: capi_addlasterror
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1394,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - storename
    argTypes:
    - CAPI_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 1397
      start: 1380
    functionDepth: 3
    functionLinenumber: 1380
    functionLinenumberEnd: 1397
    functionName: capi_open_store
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - CAPIerr
    - CAPI_trace
    - capi_addlasterror
    - CertOpenStore
    linkageType: ''
    returnType: HCERTSTORE
    signature: capi_open_store(CAPI_CTX * ctx, char *storename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1410,1
    - Dst: capi_open_store
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1412,1
    - Dst: capi_find_cert
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1416,1
    - Dst: capi_dump_cert
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1421,1
    - Dst: CertFreeCertificateContext
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1422,1
    - Dst: CertEnumCertificatesInStore
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1425,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1428,1
    - Dst: capi_dump_cert
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1429,1
    - Dst: CertCloseStore
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1433,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - ctx
    - out
    - id
    argTypes:
    - CAPI_CTX*
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 1435
      start: 1399
    functionDepth: 5
    functionLinenumber: 1399
    functionLinenumberEnd: 1435
    functionName: capi_list_certs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - capi_open_store
    - BIO_printf
    - CertCloseStore
    - CAPI_trace
    - capi_dump_cert
    - capi_find_cert
    - CertFreeCertificateContext
    - CertEnumCertificatesInStore
    linkageType: ''
    returnType: int
    signature: capi_list_certs(CAPI_CTX * ctx, BIO *out, char *id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CertFindCertificateInStore
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1445,1
    - Dst: CertEnumCertificatesInStore
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1450,1
    - Dst: capi_cert_get_fname
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1453,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1455,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1459,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - id
    - hstore
    argTypes:
    - CAPI_CTX*
    - char*
    - HCERTSTORE
    constantsTouched: []
    func_position:
      end: 1467
      start: 1437
    functionDepth: 4
    functionLinenumber: 1437
    functionLinenumberEnd: 1467
    functionName: capi_find_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - CertFindCertificateInStore
    - strcmp
    - OPENSSL_free
    - capi_cert_get_fname
    - CertEnumCertificatesInStore
    linkageType: ''
    returnType: PCCERT_CONTEXT
    signature: "capi_find_cert(CAPI_CTX * ctx, const char *id,\n                                     HCERTSTORE
      hstore)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1473,1
    - Dst: CAPI_trace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1481,1
    - Dst: CAPI_trace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1483,1
    - Dst: CAPI_trace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1490,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1492,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1493,1
    - Dst: CryptAcquireContext
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1497,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1498,1
    - Dst: capi_addlasterror
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1499,1
    - Dst: CryptGetUserKey
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1502,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1503,1
    - Dst: capi_addlasterror
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1504,1
    - Dst: CryptReleaseContext
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1505,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1513,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 5
    argNames:
    - ctx
    - contname
    - provname
    - ptype
    - keyspec
    argTypes:
    - CAPI_CTX*
    - TCHAR*
    - TCHAR*
    - DWORD
    - DWORD
    constantsTouched: []
    func_position:
      end: 1515
      start: 1469
    functionDepth: 3
    functionLinenumber: 1469
    functionLinenumberEnd: 1515
    functionName: capi_get_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - CAPI_trace
    - CryptReleaseContext
    - CAPIerr
    - capi_addlasterror
    - CryptAcquireContext
    - OPENSSL_free
    - OPENSSL_malloc
    - CryptGetUserKey
    linkageType: ''
    returnType: CAPI_KEY
    signature: "*capi_get_key(CAPI_CTX * ctx, const TCHAR *contname,\n                              TCHAR
      *provname, DWORD ptype, DWORD keyspec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: capi_get_prov_info
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1522,1
    - Dst: capi_get_key
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1526,1
    - Dst: wide_to_asc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1530,1
    - Dst: wide_to_asc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1531,1
    - Dst: capi_get_key
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1534,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1539,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1540,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1541,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - CAPI_CTX*
    - PCCERT_CONTEXT
    constantsTouched: []
    func_position:
      end: 1543
      start: 1517
    functionDepth: 4
    functionLinenumber: 1517
    functionLinenumberEnd: 1543
    functionName: capi_get_cert_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - capi_get_prov_info
    - OPENSSL_free
    - wide_to_asc
    - capi_get_key
    linkageType: ''
    returnType: CAPI_KEY
    signature: '*capi_get_cert_key(CAPI_CTX * ctx, PCCERT_CONTEXT cert)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: capi_open_store
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1553,1
    - Dst: capi_find_cert
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1556,1
    - Dst: capi_get_cert_key
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1558,1
    - Dst: CertFreeCertificateContext
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1559,1
    - Dst: CertCloseStore
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1561,1
    - Dst: MultiByteToWideChar
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1569,1
    - Dst: alloca
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1570,1
    - Dst: MultiByteToWideChar
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1571,1
    - Dst: MultiByteToWideChar
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1573,1
    - Dst: alloca
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1575,1
    - Dst: MultiByteToWideChar
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1575,1
    - Dst: capi_get_key
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1582,1
    - Dst: capi_get_key
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1585,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - CAPI_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 1592
      start: 1545
    functionDepth: 5
    functionLinenumber: 1545
    functionLinenumberEnd: 1592
    functionName: capi_find_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - capi_open_store
    - capi_get_cert_key
    - CertCloseStore
    - MultiByteToWideChar
    - capi_find_cert
    - alloca
    - CertFreeCertificateContext
    - capi_get_key
    linkageType: ''
    returnType: CAPI_KEY
    signature: '*capi_find_key(CAPI_CTX * ctx, const char *id)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CryptDestroyKey
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1598,1
    - Dst: CryptReleaseContext
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1599,1
    - Dst: CertFreeCertificateContext
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1601,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - CAPI_KEY*
    constantsTouched: []
    func_position:
      end: 1603
      start: 1594
    functionDepth: 0
    functionLinenumber: 1594
    functionLinenumberEnd: 1603
    functionName: capi_free_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 3
    functionsReached:
    - CryptDestroyKey
    - OPENSSL_free
    - CryptReleaseContext
    - CertFreeCertificateContext
    linkageType: ''
    returnType: void
    signature: capi_free_key(CAPI_KEY * key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1609,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1607
    functionDepth: 0
    functionLinenumber: 1607
    functionLinenumberEnd: 1623
    functionName: capi_ctx_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - CAPIerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: CAPI_CTX
    signature: '*capi_ctx_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1627,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1630,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1631,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1632,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1633,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CAPI_CTX*
    constantsTouched: []
    func_position:
      end: 1635
      start: 1625
    functionDepth: 3
    functionLinenumber: 1625
    functionLinenumberEnd: 1635
    functionName: capi_ctx_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - CAPI_trace
    linkageType: ''
    returnType: void
    signature: capi_ctx_free(CAPI_CTX * ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1642,1
    - Dst: MultiByteToWideChar
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1649,1
    - Dst: alloca
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1650,1
    - Dst: MultiByteToWideChar
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1651,1
    - Dst: CryptAcquireContext
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1656,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1658,1
    - Dst: capi_addlasterror
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1660,1
    - Dst: CryptReleaseContext
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1663,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1665,1
    - Dst: CAPIerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1667,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1670,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - ctx
    - pname
    - type
    - check
    argTypes:
    - CAPI_CTX*
    - LPSTR
    - DWORD
    - int
    constantsTouched: []
    func_position:
      end: 1674
      start: 1637
    functionDepth: 3
    functionLinenumber: 1637
    functionLinenumberEnd: 1674
    functionName: capi_ctx_set_provname
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - MultiByteToWideChar
    - CAPI_trace
    - CryptReleaseContext
    - CAPIerr
    - capi_addlasterror
    - alloca
    - OPENSSL_strdup
    - CryptAcquireContext
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: "capi_ctx_set_provname(CAPI_CTX * ctx, LPSTR pname, DWORD type,\n                                 int
      check)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: capi_get_provname
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1681,1
    - Dst: capi_ctx_set_provname
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1683,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c:1684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - idx
    argTypes:
    - CAPI_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 1686
      start: 1676
    functionDepth: 4
    functionLinenumber: 1676
    functionLinenumberEnd: 1686
    functionName: capi_ctx_set_provname_idx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - capi_ctx_set_provname
    - OPENSSL_free
    - capi_get_provname
    linkageType: ''
    returnType: int
    signature: capi_ctx_set_provname_idx(CAPI_CTX * ctx, int idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - e
    - id
    - fns
    argTypes:
    - ENGINE*
    - char*
    - dynamic_fns*
    constantsTouched: []
    func_position:
      end: 1907
      start: 1903
    functionDepth: 0
    functionLinenumber: 1903
    functionLinenumberEnd: 1907
    functionName: bind_engine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OPENSSL_EXPORT
    signature: bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1912
    functionDepth: 0
    functionLinenumber: 1912
    functionLinenumberEnd: 1914
    functionName: engine_load_capi_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: engine_load_capi_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil_err.c:75,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil_err.c:80,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil_err.c:81,1
    - Dst: ERR_PACK
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil_err.c:85,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil_err.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 89
    functionName: ERR_load_HWCRHK_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil_err.c
    functionUses: 0
    functionsReached:
    - ERR_get_next_error_library
    - ERR_load_strings
    - ERR_PACK
    linkageType: ''
    returnType: void
    signature: ERR_load_HWCRHK_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_unload_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil_err.c:95,1
    - Dst: ERR_unload_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil_err.c:96,1
    - Dst: ERR_unload_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil_err.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 104
    functionName: ERR_unload_HWCRHK_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil_err.c
    functionUses: 0
    functionsReached:
    - ERR_unload_strings
    linkageType: ''
    returnType: void
    signature: ERR_unload_HWCRHK_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil_err.c:109,1
    - Dst: ERR_PUT_error
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil_err.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - function
    - reason
    - file
    - line
    argTypes:
    - int
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: ERR_HWCRHK_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil_err.c
    functionUses: 0
    functionsReached:
    - ERR_get_next_error_library
    - ERR_PUT_error
    linkageType: ''
    returnType: void
    signature: ERR_HWCRHK_error(int function, int reason, char *file, int line)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:311,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:313,1
    - Dst: ENGINE_set_id
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:317,1
    - Dst: ENGINE_set_name
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:318,1
    - Dst: ENGINE_set_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:320,1
    - Dst: ENGINE_set_DH
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:323,1
    - Dst: ENGINE_set_RAND
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:325,1
    - Dst: ENGINE_set_destroy_function
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:326,1
    - Dst: ENGINE_set_init_function
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:327,1
    - Dst: ENGINE_set_finish_function
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:328,1
    - Dst: ENGINE_set_ctrl_function
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:329,1
    - Dst: ENGINE_set_load_privkey_function
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:330,1
    - Dst: ENGINE_set_load_pubkey_function
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:331,1
    - Dst: ENGINE_set_cmd_defns
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:332,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:344,1
    - Dst: DH_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:353,1
    - Dst: ERR_load_HWCRHK_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:359,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 18
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 362
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 362
    functionName: bind_helper
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - ENGINE_set_RAND
    - DH_OpenSSL
    - ENGINE_set_name
    - ENGINE_set_load_privkey_function
    - ENGINE_set_destroy_function
    - CRYPTO_THREAD_lock_new
    - ENGINE_set_id
    - ENGINE_set_init_function
    - ENGINE_set_ctrl_function
    - ENGINE_set_cmd_defns
    - RSA_PKCS1_OpenSSL
    - ENGINE_set_DH
    - ENGINE_set_finish_function
    - HWCRHKerr
    - ERR_load_HWCRHK_strings
    - ENGINE_set_RSA
    - ENGINE_set_load_pubkey_function
    linkageType: ''
    returnType: int
    signature: bind_helper(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:367,1
    - Dst: bind_helper
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:370,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 375
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 375
    functionName: engine_chil
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - bind_helper
    - ENGINE_free
    - ENGINE_new
    linkageType: ''
    returnType: ENGINE
    signature: '*engine_chil(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_chil
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:380,1
    - Dst: ENGINE_add
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:383,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:384,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 386
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 386
    functionName: ENGINE_load_chil
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - ENGINE_add
    - ERR_clear_error
    - engine_chil
    - ENGINE_free
    linkageType: ''
    returnType: void
    signature: ENGINE_load_chil(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: free_HWCRHK_LIBNAME
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: free_HWCRHK_LIBNAME(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 433
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 433
    functionName: get_HWCRHK_LIBNAME
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*get_HWCRHK_LIBNAME(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free_HWCRHK_LIBNAME
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:437,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 439
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 439
    functionName: set_HWCRHK_LIBNAME
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - free_HWCRHK_LIBNAME
    - OPENSSL_strdup
    linkageType: ''
    returnType: long
    signature: set_HWCRHK_LIBNAME(const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: p_hwcrhk_Init
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - hac
    - cac
    argTypes:
    - HWCryptoHook_ContextHandle*
    - HWCryptoHook_CallerContext*
    constantsTouched: []
    func_position:
      end: 476
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 476
    functionName: get_context
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 1
    functionsReached:
    - p_hwcrhk_Init
    linkageType: ''
    returnType: int
    signature: "get_context(HWCryptoHook_ContextHandle * hac,\n                       HWCryptoHook_CallerContext
      * cac)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: p_hwcrhk_Finish
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hac
    argTypes:
    - HWCryptoHook_ContextHandle
    constantsTouched: []
    func_position:
      end: 482
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 482
    functionName: release_context
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - p_hwcrhk_Finish
    linkageType: ''
    returnType: void
    signature: release_context(HWCryptoHook_ContextHandle hac)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free_HWCRHK_LIBNAME
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:487,1
    - Dst: ERR_unload_HWCRHK_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:488,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 491
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 491
    functionName: hwcrhk_destroy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - ERR_unload_HWCRHK_strings
    - CRYPTO_THREAD_lock_free
    - free_HWCRHK_LIBNAME
    linkageType: ''
    returnType: int
    signature: hwcrhk_destroy(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:509,1
    - Dst: DSO_load
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:513,1
    - Dst: get_HWCRHK_LIBNAME
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:513,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:515,1
    - Dst: BINDIT
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:520,1
    - Dst: BINDIT
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:521,1
    - Dst: BINDIT
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:522,1
    - Dst: BINDIT
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:524,1
    - Dst: BINDIT
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:525,1
    - Dst: BINDIT
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:526,1
    - Dst: BINDIT
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:527,1
    - Dst: BINDIT
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:529,1
    - Dst: BINDIT
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:530,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:531,1
    - Dst: get_context
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:561,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:562,1
    - Dst: RSA_get_ex_new_index
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:568,1
    - Dst: DSO_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:574,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 588
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 588
    functionName: hwcrhk_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - DSO_free
    - get_context
    - RSA_get_ex_new_index
    - BINDIT
    - DSO_load
    - get_HWCRHK_LIBNAME
    - HWCRHKerr
    linkageType: ''
    returnType: int
    signature: hwcrhk_init(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free_HWCRHK_LIBNAME
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:593,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:595,1
    - Dst: release_context
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:599,1
    - Dst: DSO_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:600,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:601,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:606,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 620
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 620
    functionName: hwcrhk_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - DSO_free
    - free_HWCRHK_LIBNAME
    - release_context
    - BIO_free
    - HWCRHKerr
    linkageType: ''
    returnType: int
    signature: hwcrhk_finish(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:629,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:633,1
    - Dst: set_HWCRHK_LIBNAME
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:636,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:641,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:642,1
    - Dst: BIO_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:644,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:647,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:649,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:652,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:654,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:658,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:660,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:664,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:666,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:674,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:679,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:689,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:691,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:694,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:696,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:701,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 63
    argCount: 4
    argNames:
    - e
    - cmd
    - i
    - p
    argTypes:
    - ENGINE*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 708
      start: 622
    functionDepth: 2
    functionLinenumber: 622
    functionLinenumberEnd: 708
    functionName: hwcrhk_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - BIO_up_ref
    - CRYPTO_THREAD_write_lock
    - BIO_free
    - CRYPTO_THREAD_unlock
    - set_HWCRHK_LIBNAME
    - HWCRHKerr
    linkageType: ''
    returnType: int
    signature: hwcrhk_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:734,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:738,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:740,1
    - Dst: p_hwcrhk_RSALoadKey
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:745,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:746,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:747,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:751,1
    - Dst: RSA_new_method
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:756,1
    - Dst: RSA_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:757,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:758,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:759,1
    - Dst: MPI2BN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:761,1
    - Dst: MPI2BN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:762,1
    - Dst: p_hwcrhk_RSAGetPublicKey
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:763,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:765,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:766,1
    - Dst: bn_expand2
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:770,1
    - Dst: bn_expand2
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:771,1
    - Dst: MPI2BN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:772,1
    - Dst: MPI2BN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:773,1
    - Dst: p_hwcrhk_RSAGetPublicKey
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:775,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:776,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:777,1
    - Dst: bn_fix_top
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:781,1
    - Dst: bn_fix_top
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:783,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:785,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:787,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:790,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:794,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 67
    argCount: 4
    argNames:
    - eng
    - key_id
    - ui_method
    - callback_data
    argTypes:
    - ENGINE*
    - char*
    - UI_METHOD*
    - void*
    constantsTouched: []
    func_position:
      end: 803
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 803
    functionName: hwcrhk_load_privkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - BN_new
    - bn_expand2
    - MPI2BN
    - p_hwcrhk_RSALoadKey
    - EVP_PKEY_assign_RSA
    - RSA_new_method
    - ERR_add_error_data
    - RSA_set_ex_data
    - p_hwcrhk_RSAGetPublicKey
    - EVP_PKEY_new
    - HWCRHKerr
    - OPENSSL_malloc
    - bn_fix_top
    linkageType: ''
    returnType: EVP_PKEY
    signature: "*hwcrhk_load_privkey(ENGINE *eng, const char *key_id,\n                                     UI_METHOD
      *ui_method,\n                                     void *callback_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hwcrhk_load_privkey
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:811,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:821,1
    - Dst: RSA_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:823,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:828,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:829,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:834,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:841,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - eng
    - key_id
    - ui_method
    - callback_data
    argTypes:
    - ENGINE*
    - char*
    - UI_METHOD*
    - void*
    constantsTouched: []
    func_position:
      end: 843
      start: 805
    functionDepth: 2
    functionLinenumber: 805
    functionLinenumberEnd: 843
    functionName: hwcrhk_load_pubkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - RSA_new
    - CRYPTO_THREAD_unlock
    - hwcrhk_load_privkey
    - RSA_free
    - HWCRHKerr
    - EVP_PKEY_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: "*hwcrhk_load_pubkey(ENGINE *eng, const char *key_id,\n                                    UI_METHOD
      *ui_method, void *callback_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:864,1
    - Dst: bn_expand2
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:868,1
    - Dst: BN2MPI
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:869,1
    - Dst: BN2MPI
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:870,1
    - Dst: BN2MPI
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:871,1
    - Dst: MPI2BN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:872,1
    - Dst: p_hwcrhk_ModExp
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:875,1
    - Dst: bn_fix_top
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:879,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:887,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:889,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:891,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 5
    argNames:
    - r
    - a
    - p
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 898
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 898
    functionName: hwcrhk_mod_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - bn_expand2
    - p_hwcrhk_ModExp
    - BN2MPI
    - MPI2BN
    - ERR_add_error_data
    - HWCRHKerr
    - bn_fix_top
    linkageType: ''
    returnType: int
    signature: "hwcrhk_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,\n                          const
      BIGNUM *m, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:913,1
    - Dst: RSA_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:923,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:928,1
    - Dst: bn_expand2
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:934,1
    - Dst: BN2MPI
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:935,1
    - Dst: MPI2BN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:936,1
    - Dst: p_hwcrhk_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:939,1
    - Dst: bn_fix_top
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:943,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:952,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:955,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:958,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:965,1
    - Dst: bn_expand2
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:971,1
    - Dst: BN2MPI
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:972,1
    - Dst: BN2MPI
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:973,1
    - Dst: BN2MPI
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:974,1
    - Dst: BN2MPI
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:975,1
    - Dst: BN2MPI
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:976,1
    - Dst: BN2MPI
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:977,1
    - Dst: MPI2BN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:978,1
    - Dst: p_hwcrhk_ModExpCRT
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:981,1
    - Dst: bn_fix_top
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:986,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:995,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:998,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1001,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 4
    argNames:
    - r
    - I
    - rsa
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - RSA*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1011
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 1011
    functionName: hwcrhk_rsa_mod_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - bn_expand2
    - BN2MPI
    - MPI2BN
    - p_hwcrhk_ModExpCRT
    - p_hwcrhk_RSA
    - ERR_add_error_data
    - RSA_get_ex_data
    - HWCRHKerr
    - bn_fix_top
    linkageType: ''
    returnType: int
    signature: "hwcrhk_rsa_mod_exp(BIGNUM *r, const BIGNUM *I, RSA *rsa,\n                              BN_CTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hwcrhk_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - r
    - a
    - p
    - m
    - ctx
    - m_ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    constantsTouched: []
    func_position:
      end: 1021
      start: 1016
    functionDepth: 2
    functionLinenumber: 1016
    functionLinenumberEnd: 1021
    functionName: hwcrhk_mod_exp_mont
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - hwcrhk_mod_exp
    linkageType: ''
    returnType: int
    signature: "hwcrhk_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,\n
      \                              const BIGNUM *m, BN_CTX *ctx,\n                               BN_MONT_CTX
      *m_ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1027,1
    - Dst: p_hwcrhk_RSAUnloadKey
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1029,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1030,1
    - Dst: RSA_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1031,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    constantsTouched: []
    func_position:
      end: 1034
      start: 1023
    functionDepth: 1
    functionLinenumber: 1023
    functionLinenumberEnd: 1034
    functionName: hwcrhk_rsa_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - RSA_get_ex_data
    - OPENSSL_free
    - p_hwcrhk_RSAUnloadKey
    - RSA_set_ex_data
    linkageType: ''
    returnType: int
    signature: hwcrhk_rsa_finish(RSA *rsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hwcrhk_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1044,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - dh
    - r
    - a
    - p
    - m
    - ctx
    - m_ctx
    argTypes:
    - DH*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    constantsTouched: []
    func_position:
      end: 1045
      start: 1040
    functionDepth: 2
    functionLinenumber: 1040
    functionLinenumberEnd: 1045
    functionName: hwcrhk_mod_exp_dh
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - hwcrhk_mod_exp
    linkageType: ''
    returnType: int
    signature: "hwcrhk_mod_exp_dh(const DH *dh, BIGNUM *r,\n                             const
      BIGNUM *a, const BIGNUM *p,\n                             const BIGNUM *m, BN_CTX
      *ctx, BN_MONT_CTX *m_ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1060,1
    - Dst: p_hwcrhk_RandomBytes
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1064,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1071,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1073,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1075,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 1081
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1081
    functionName: hwcrhk_rand_bytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - ERR_add_error_data
    - HWCRHKerr
    - p_hwcrhk_RandomBytes
    linkageType: ''
    returnType: int
    signature: hwcrhk_rand_bytes(unsigned char *buf, int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1083
    functionDepth: 0
    functionLinenumber: 1083
    functionLinenumberEnd: 1086
    functionName: hwcrhk_rand_status
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: hwcrhk_rand_status(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1096,1
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1098,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mt
    - cactx
    argTypes:
    - HWCryptoHook_Mutex*
    - HWCryptoHook_CallerContext*
    constantsTouched: []
    func_position:
      end: 1102
      start: 1093
    functionDepth: 0
    functionLinenumber: 1093
    functionLinenumberEnd: 1102
    functionName: hwcrhk_mutex_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - HWCRHKerr
    linkageType: ''
    returnType: int
    signature: "hwcrhk_mutex_init(HWCryptoHook_Mutex * mt,\n                             HWCryptoHook_CallerContext
      * cactx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mt
    argTypes:
    - HWCryptoHook_Mutex*
    constantsTouched: []
    func_position:
      end: 1108
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1108
    functionName: hwcrhk_mutex_lock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    linkageType: ''
    returnType: int
    signature: hwcrhk_mutex_lock(HWCryptoHook_Mutex * mt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mt
    argTypes:
    - HWCryptoHook_Mutex*
    constantsTouched: []
    func_position:
      end: 1113
      start: 1110
    functionDepth: 0
    functionLinenumber: 1110
    functionLinenumberEnd: 1113
    functionName: hwcrhk_mutex_unlock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: hwcrhk_mutex_unlock(HWCryptoHook_Mutex * mt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mt
    argTypes:
    - HWCryptoHook_Mutex*
    constantsTouched: []
    func_position:
      end: 1118
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1118
    functionName: hwcrhk_mutex_destroy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: hwcrhk_mutex_destroy(HWCryptoHook_Mutex * mt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1152,1
    - Dst: UI_new_method
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1157,1
    - Dst: UI_add_input_string
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1163,1
    - Dst: UI_add_user_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1166,1
    - Dst: UI_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1167,1
    - Dst: UI_process
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1171,1
    - Dst: UI_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1173,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1176,1
    - Dst: UI_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1178,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1179,1
    - Dst: callback
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1182,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 5
    argNames:
    - prompt_info
    - len_io
    - buf
    - ppctx
    - cactx
    argTypes:
    - char*
    - int*
    - char*
    - HWCryptoHook_PassphraseContext*
    - HWCryptoHook_CallerContext*
    constantsTouched: []
    func_position:
      end: 1187
      start: 1120
    functionDepth: 3
    functionLinenumber: 1120
    functionLinenumberEnd: 1187
    functionName: hwcrhk_get_pass
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - UI_add_input_string
    - UI_free
    - strlen
    - OPENSSL_free
    - UI_ctrl
    - UI_add_user_data
    - UI_process
    - callback
    - HWCRHKerr
    - UI_new_method
    linkageType: ''
    returnType: int
    signature: "hwcrhk_get_pass(const char *prompt_info,\n                           int
      *len_io, char *buf,\n                           HWCryptoHook_PassphraseContext
      * ppctx,\n                           HWCryptoHook_CallerContext * cactx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HWCRHKerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1212,1
    - Dst: UI_new_method
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1216,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1226,1
    - Dst: UI_dup_info_string
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1230,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1232,1
    - Dst: UI_dup_input_boolean
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1234,1
    - Dst: UI_add_user_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1239,1
    - Dst: UI_process
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1242,1
    - Dst: UI_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1243,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 4
    argNames:
    - prompt_info
    - wrong_info
    - ppctx
    - cactx
    argTypes:
    - char*
    - char*
    - HWCryptoHook_PassphraseContext*
    - HWCryptoHook_CallerContext*
    constantsTouched: []
    func_position:
      end: 1253
      start: 1189
    functionDepth: 1
    functionLinenumber: 1189
    functionLinenumberEnd: 1253
    functionName: hwcrhk_insert_card
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - UI_free
    - UI_dup_info_string
    - UI_process
    - UI_add_user_data
    - HWCRHKerr
    - UI_new_method
    - UI_dup_input_boolean
    linkageType: ''
    returnType: int
    signature: "hwcrhk_insert_card(const char *prompt_info,\n                              const
      char *wrong_info,\n                              HWCryptoHook_PassphraseContext
      * ppctx,\n                              HWCryptoHook_CallerContext * cactx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - logstr
    - message
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 1264
      start: 1255
    functionDepth: 1
    functionLinenumber: 1255
    functionLinenumberEnd: 1264
    functionName: hwcrhk_log_message
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: hwcrhk_log_message(void *logstr, const char *message)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1273,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1274,1
    - Dst: bind_helper
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c:1276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    constantsTouched: []
    func_position:
      end: 1279
      start: 1271
    functionDepth: 0
    functionLinenumber: 1271
    functionLinenumberEnd: 1279
    functionName: bind_fn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
    functionUses: 0
    functionsReached:
    - bind_helper
    - strcmp
    linkageType: ''
    returnType: int
    signature: bind_fn(ENGINE *e, const char *id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi_err.c:107,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi_err.c:112,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi_err.c:113,1
    - Dst: ERR_PACK
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi_err.c:117,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi_err.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 121
    functionName: ERR_load_CAPI_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi_err.c
    functionUses: 1
    functionsReached:
    - ERR_get_next_error_library
    - ERR_load_strings
    - ERR_PACK
    linkageType: ''
    returnType: void
    signature: ERR_load_CAPI_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_unload_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi_err.c:127,1
    - Dst: ERR_unload_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi_err.c:128,1
    - Dst: ERR_unload_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi_err.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 136
    functionName: ERR_unload_CAPI_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi_err.c
    functionUses: 1
    functionsReached:
    - ERR_unload_strings
    linkageType: ''
    returnType: void
    signature: ERR_unload_CAPI_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi_err.c:141,1
    - Dst: ERR_PUT_error
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_capi_err.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - function
    - reason
    - file
    - line
    argTypes:
    - int
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: ERR_CAPI_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_capi_err.c
    functionUses: 0
    functionsReached:
    - ERR_get_next_error_library
    - ERR_PUT_error
    linkageType: ''
    returnType: void
    signature: ERR_CAPI_error(int function, int reason, char *file, int line)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_padlock
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:57,1
    - Dst: ENGINE_add
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:60,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:61,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: engine_load_padlock_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - ENGINE_padlock
    - ERR_clear_error
    - ENGINE_free
    - ENGINE_add
    linkageType: ''
    returnType: void
    signature: engine_load_padlock_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: padlock_available
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:95,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:104,1
    - Dst: ENGINE_set_id
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:110,1
    - Dst: ENGINE_set_name
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:111,1
    - Dst: ENGINE_set_init_function
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:112,1
    - Dst: ENGINE_set_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:113,1
    - Dst: ENGINE_set_RAND
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:114,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 120
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 120
    functionName: padlock_bind_helper
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - ENGINE_set_RAND
    - ENGINE_set_name
    - BIO_snprintf
    - ENGINE_set_id
    - ENGINE_set_init_function
    - padlock_available
    - ENGINE_set_ciphers
    linkageType: ''
    returnType: int
    signature: padlock_bind_helper(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:126,1
    - Dst: padlock_bind_helper
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:132,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 138
    functionName: ENGINE_padlock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c
    functionUses: 1
    functionsReached:
    - ENGINE_free
    - padlock_bind_helper
    - ENGINE_new
    linkageType: ''
    returnType: ENGINE
    signature: '*ENGINE_padlock(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: padlock_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: padlock_init(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:154,1
    - Dst: padlock_bind_helper
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    constantsTouched: []
    func_position:
      end: 163
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 163
    functionName: padlock_bind_fn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - padlock_bind_helper
    - strcmp
    linkageType: ''
    returnType: int
    signature: padlock_bind_fn(ENGINE *e, const char *id)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 236
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 236
    functionName: padlock_available
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: padlock_available(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: padlock_ecb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:301,1
    - Dst: ALIGNED_CIPHER_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - out_arg
    - in_arg
    - nbytes
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 303
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 303
    functionName: padlock_ecb_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - padlock_ecb_encrypt
    - ALIGNED_CIPHER_DATA
    linkageType: ''
    returnType: int
    signature: "padlock_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out_arg,\n
      \                  const unsigned char *in_arg, size_t nbytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ALIGNED_CIPHER_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:309,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:312,1
    - Dst: EVP_CIPHER_CTX_iv
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:312,1
    - Dst: padlock_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:313,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:314,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - out_arg
    - in_arg
    - nbytes
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 316
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 316
    functionName: padlock_cbc_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_iv
    - memcpy
    - ALIGNED_CIPHER_DATA
    - padlock_cbc_encrypt
    linkageType: ''
    returnType: int
    signature: "padlock_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out_arg,\n
      \                  const unsigned char *in_arg, size_t nbytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ALIGNED_CIPHER_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:322,1
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:325,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:331,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:342,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:348,1
    - Dst: EVP_CIPHER_CTX_iv
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:348,1
    - Dst: padlock_cfb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:351,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:361,1
    - Dst: padlock_reload_key
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:364,1
    - Dst: padlock_aes_block
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:365,1
    - Dst: padlock_reload_key
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:367,1
    - Dst: padlock_reload_key
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:374,1
    - Dst: padlock_aes_block
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:375,1
    - Dst: padlock_reload_key
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:376,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:384,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:384,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 4
    argNames:
    - ctx
    - out_arg
    - in_arg
    - nbytes
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 387
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 387
    functionName: padlock_cfb_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_num
    - padlock_aes_block
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_iv
    - memcpy
    - ALIGNED_CIPHER_DATA
    - EVP_CIPHER_CTX_encrypting
    - padlock_reload_key
    - EVP_CIPHER_CTX_set_num
    - padlock_cfb_encrypt
    linkageType: ''
    returnType: int
    signature: "padlock_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out_arg,\n
      \                  const unsigned char *in_arg, size_t nbytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ALIGNED_CIPHER_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:393,1
    - Dst: EVP_CIPHER_CTX_num
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:399,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:410,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:416,1
    - Dst: EVP_CIPHER_CTX_iv
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:416,1
    - Dst: padlock_ofb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:419,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:429,1
    - Dst: padlock_reload_key
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:430,1
    - Dst: padlock_aes_block
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:431,1
    - Dst: padlock_reload_key
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:432,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:439,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:439,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - ctx
    - out_arg
    - in_arg
    - nbytes
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 442
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 442
    functionName: padlock_ofb_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_num
    - padlock_aes_block
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_iv
    - memcpy
    - ALIGNED_CIPHER_DATA
    - padlock_reload_key
    - EVP_CIPHER_CTX_set_num
    - padlock_ofb_encrypt
    linkageType: ''
    returnType: int
    signature: "padlock_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out_arg,\n
      \                  const unsigned char *in_arg, size_t nbytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:449,1
    - Dst: padlock_ctr32_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - in
    - out
    - blocks
    - ctx
    - ivec
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - struct padlock_cipher_data*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 451
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 451
    functionName: padlock_ctr32_encrypt_glue
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - padlock_ctr32_encrypt
    - memcpy
    linkageType: ''
    returnType: void
    signature: "padlock_ctr32_encrypt_glue(const unsigned char *in,\n                                       unsigned
      char *out, size_t blocks,\n                                       struct padlock_cipher_data
      *ctx,\n                                       const unsigned char *ivec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ALIGNED_CIPHER_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:457,1
    - Dst: CRYPTO_ctr128_encrypt_ctr32
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:460,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:461,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:462,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out_arg
    - in_arg
    - nbytes
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 467
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 467
    functionName: padlock_ctr_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_CIPHER_CTX_iv_noconst
    - CRYPTO_ctr128_encrypt_ctr32
    - ALIGNED_CIPHER_DATA
    - EVP_CIPHER_CTX_set_num
    linkageType: ''
    returnType: int
    signature: "padlock_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out_arg,\n
      \                  const unsigned char *in_arg, size_t nbytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: padlock_aes_128_ecb
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:539,1
    - Dst: padlock_aes_128_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:542,1
    - Dst: padlock_aes_128_cfb
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:545,1
    - Dst: padlock_aes_128_ofb
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:548,1
    - Dst: padlock_aes_128_ctr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:551,1
    - Dst: padlock_aes_192_ecb
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:555,1
    - Dst: padlock_aes_192_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:558,1
    - Dst: padlock_aes_192_cfb
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:561,1
    - Dst: padlock_aes_192_ofb
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:564,1
    - Dst: padlock_aes_192_ctr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:567,1
    - Dst: padlock_aes_256_ecb
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:571,1
    - Dst: padlock_aes_256_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:574,1
    - Dst: padlock_aes_256_cfb
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:577,1
    - Dst: padlock_aes_256_ofb
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:580,1
    - Dst: padlock_aes_256_ctr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:583,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 4
    argNames:
    - e
    - cipher
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_CIPHER**
    - int**
    - int
    constantsTouched: []
    func_position:
      end: 593
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 593
    functionName: padlock_ciphers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - padlock_aes_256_ecb
    - padlock_aes_192_cbc
    - padlock_aes_128_cfb
    - padlock_aes_256_ctr
    - padlock_aes_128_ctr
    - padlock_aes_128_ecb
    - padlock_aes_256_cbc
    - padlock_aes_128_ofb
    - padlock_aes_192_ctr
    - padlock_aes_192_cfb
    - padlock_aes_192_ecb
    - padlock_aes_192_ofb
    - padlock_aes_256_ofb
    - padlock_aes_256_cfb
    - padlock_aes_128_cbc
    linkageType: ''
    returnType: int
    signature: "padlock_ciphers(ENGINE *e, const EVP_CIPHER **cipher, const int **nids,\n
      \               int nid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ALIGNED_CIPHER_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:607,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:608,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:614,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:623,1
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:639,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:641,1
    - Dst: padlock_key_bswap
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:646,1
    - Dst: padlock_reload_key
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:661,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 664
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 664
    functionName: padlock_aes_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - padlock_key_bswap
    - memset
    - memcpy
    - ALIGNED_CIPHER_DATA
    - EVP_CIPHER_CTX_encrypting
    - padlock_reload_key
    - AES_set_decrypt_key
    - AES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "padlock_aes_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                    const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: padlock_xstore
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:682,1
    - Dst: padlock_xstore
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:696,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c:709,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 2
    argNames:
    - output
    - count
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 712
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 712
    functionName: padlock_rand_bytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    - padlock_xstore
    linkageType: ''
    returnType: int
    signature: padlock_rand_bytes(unsigned char *output, int count)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 718
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 718
    functionName: padlock_rand_status
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: padlock_rand_status(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - e
    - id
    - fns
    argTypes:
    - ENGINE*
    - char*
    - dynamic_fns*
    constantsTouched: []
    func_position:
      end: 743
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 743
    functionName: bind_engine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OPENSSL_EXPORT
    signature: bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest_err.c:53,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest_err.c:58,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest_err.c:59,1
    - Dst: ERR_PACK
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest_err.c:63,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest_err.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 67
    functionName: ERR_load_OSSLTEST_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest_err.c
    functionUses: 1
    functionsReached:
    - ERR_get_next_error_library
    - ERR_load_strings
    - ERR_PACK
    linkageType: ''
    returnType: void
    signature: ERR_load_OSSLTEST_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_unload_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest_err.c:73,1
    - Dst: ERR_unload_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest_err.c:74,1
    - Dst: ERR_unload_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest_err.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 82
    functionName: ERR_unload_OSSLTEST_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest_err.c
    functionUses: 1
    functionsReached:
    - ERR_unload_strings
    linkageType: ''
    returnType: void
    signature: ERR_unload_OSSLTEST_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest_err.c:87,1
    - Dst: ERR_PUT_error
      Src: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest_err.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - function
    - reason
    - file
    - line
    argTypes:
    - int
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: ERR_OSSLTEST_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest_err.c
    functionUses: 0
    functionsReached:
    - ERR_get_next_error_library
    - ERR_PUT_error
    linkageType: ''
    returnType: void
    signature: ERR_OSSLTEST_error(int function, int reason, char *file, int line)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: engine_load_afalg_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: engine_load_afalg_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - n
    - ctx
    argTypes:
    - unsigned
    - aio_context_t*
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: io_setup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: ossl_inline
    signature: io_setup(unsigned n, aio_context_t *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: eventfd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: ossl_inline
    signature: eventfd(int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - aio_context_t
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: io_destroy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 1
    functionsReached:
    - syscall
    linkageType: ''
    returnType: ossl_inline
    signature: io_destroy(aio_context_t ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - n
    - iocb
    argTypes:
    - aio_context_t
    - long
    - struct iocb**
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: io_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 1
    functionsReached:
    - syscall
    linkageType: ''
    returnType: ossl_inline
    signature: io_read(aio_context_t ctx, long n, struct iocb **iocb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - min
    - max
    - events
    - timeout
    argTypes:
    - aio_context_t
    - long
    - long
    - struct io_event*
    - struct timespec*
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: io_getevents
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: ossl_inline
    signature: "io_getevents(aio_context_t ctx, long min, long max,\n                               struct
      io_event *events,\n                               struct timespec *timeout)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - key
    - waitfd
    - custom
    argTypes:
    - ASYNC_WAIT_CTX*
    - void*
    - OSSL_ASYNC_FD
    - void*
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: afalg_waitfd_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: "afalg_waitfd_cleanup(ASYNC_WAIT_CTX *ctx, const void *key,\n                                 OSSL_ASYNC_FD
      waitfd, void *custom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_get_current_job
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:143,1
    - Dst: ASYNC_get_wait_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:145,1
    - Dst: ALG_WARN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:147,1
    - Dst: ASYNC_WAIT_CTX_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:151,1
    - Dst: eventfd
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:158,1
    - Dst: ALG_PERR
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:160,1
    - Dst: AFALGerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:161,1
    - Dst: ASYNC_WAIT_CTX_set_wait_fd
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:165,1
    - Dst: ALG_WARN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:169,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:170,1
    - Dst: fcntl
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:174,1
    - Dst: ALG_WARN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:175,1
    - Dst: eventfd
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:182,1
    - Dst: ALG_PERR
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:184,1
    - Dst: AFALGerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:185,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 1
    argNames:
    - aio
    argTypes:
    - afalg_aio*
    constantsTouched: []
    func_position:
      end: 192
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 192
    functionName: afalg_setup_async_event_notification
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached:
    - ASYNC_WAIT_CTX_get_fd
    - fcntl
    - AFALGerr
    - ASYNC_get_current_job
    - ASYNC_WAIT_CTX_set_wait_fd
    - ALG_PERR
    - close
    - eventfd
    - ALG_WARN
    - ASYNC_get_wait_ctx
    linkageType: ''
    returnType: int
    signature: afalg_setup_async_event_notification(afalg_aio *aio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io_setup
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:200,1
    - Dst: ALG_PERR
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:202,1
    - Dst: AFALGerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:203,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - aio
    argTypes:
    - afalg_aio*
    constantsTouched: []
    func_position:
      end: 212
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 212
    functionName: afalg_init_aio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached:
    - ALG_PERR
    - io_setup
    - AFALGerr
    - memset
    linkageType: ''
    returnType: int
    signature: afalg_init_aio(afalg_aio *aio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: afalg_setup_async_event_notification
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:230,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:236,1
    - Dst: io_read
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:258,1
    - Dst: ALG_PWARN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:260,1
    - Dst: ASYNC_pause_job
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:266,1
    - Dst: read
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:269,1
    - Dst: ALG_PERR
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:273,1
    - Dst: ALG_WARN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:276,1
    - Dst: io_getevents
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:282,1
    - Dst: io_read
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:295,1
    - Dst: ALG_PERR
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:297,1
    - Dst: ALG_WARN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:307,1
    - Dst: ALG_PERR
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:316,1
    - Dst: ALG_WARN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:319,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 66
    argCount: 4
    argNames:
    - aio
    - sfd
    - buf
    - len
    argTypes:
    - afalg_aio*
    - int
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 325
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 325
    functionName: afalg_fin_cipher_aio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached:
    - ASYNC_pause_job
    - ALG_PWARN
    - io_getevents
    - io_read
    - afalg_setup_async_event_notification
    - memset
    - ALG_PERR
    - ALG_WARN
    - read
    linkageType: ''
    returnType: int
    signature: "afalg_fin_cipher_aio(afalg_aio *aio, int sfd, unsigned char *buf,\n
      \                        size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_LEN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:332,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:333,1
    - Dst: CMSG_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cmsg
    - op
    argTypes:
    - struct cmsghdr*
    - ALG_OP_TYPE
    constantsTouched: []
    func_position:
      end: 334
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 334
    functionName: afalg_set_op_sk
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached:
    - CMSG_LEN
    - CMSG_DATA
    - memcpy
    linkageType: ''
    returnType: ossl_inline
    signature: "afalg_set_op_sk(struct cmsghdr *cmsg,\n                                   const
      ALG_OP_TYPE op)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_LEN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:343,1
    - Dst: ALG_IV_LEN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:343,1
    - Dst: CMSG_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:344,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - cmsg
    - iv
    - len
    argTypes:
    - struct cmsghdr*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 347
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 347
    functionName: afalg_set_iv_sk
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached:
    - CMSG_LEN
    - CMSG_DATA
    - ALG_IV_LEN
    - memcpy
    linkageType: ''
    returnType: void
    signature: "afalg_set_iv_sk(struct cmsghdr *cmsg, const unsigned char *iv,\n                            const
      unsigned int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:353,1
    - Dst: ALG_PERR
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:355,1
    - Dst: AFALGerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - actx
    - key
    - klen
    argTypes:
    - afalg_ctx*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 361
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 361
    functionName: afalg_set_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached:
    - ALG_PERR
    - AFALGerr
    - setsockopt
    linkageType: ''
    returnType: ossl_inline
    signature: "afalg_set_key(afalg_ctx *actx, const unsigned char *key,\n                                const
      int klen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:371,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:373,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:375,1
    - Dst: socket
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:378,1
    - Dst: ALG_PERR
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:380,1
    - Dst: AFALGerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:381,1
    - Dst: bind
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:385,1
    - Dst: ALG_PERR
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:387,1
    - Dst: AFALGerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:388,1
    - Dst: accept
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:392,1
    - Dst: ALG_PERR
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:394,1
    - Dst: AFALGerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:395,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:403,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:405,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - actx
    - ciphertype
    - ciphername
    argTypes:
    - afalg_ctx*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 408
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 408
    functionName: afalg_create_sk
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached:
    - AFALGerr
    - strncpy
    - memset
    - bind
    - ALG_PERR
    - close
    - socket
    - accept
    linkageType: ''
    returnType: int
    signature: "afalg_create_sk(afalg_ctx *actx, const char *ciphertype,\n                                const
      char *ciphername)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:423,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:431,1
    - Dst: afalg_set_op_sk
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:432,1
    - Dst: CMSG_NXTHDR
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:433,1
    - Dst: afalg_set_iv_sk
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:434,1
    - Dst: sendmsg
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:454,1
    - Dst: ALG_PERR
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:456,1
    - Dst: vmsplice
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:465,1
    - Dst: ALG_PERR
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:467,1
    - Dst: splice
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:471,1
    - Dst: ALG_PERR
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:473,1
    - Dst: sendmsg
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:481,1
    - Dst: ALG_PERR
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:483,1
    - Dst: ALG_WARN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:488,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 5
    argNames:
    - actx
    - in
    - inl
    - iv
    - enc
    argTypes:
    - afalg_ctx*
    - unsigned char*
    - size_t
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 495
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 495
    functionName: afalg_start_cipher_sk
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached:
    - vmsplice
    - memset
    - sendmsg
    - CMSG_FIRSTHDR
    - ALG_PERR
    - CMSG_NXTHDR
    - splice
    - ALG_WARN
    - afalg_set_op_sk
    - afalg_set_iv_sk
    linkageType: ''
    returnType: int
    signature: "afalg_start_cipher_sk(afalg_ctx *actx, const unsigned char *in,\n
      \                                size_t inl, const unsigned char *iv,\n                                 unsigned
      int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ALG_WARN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:506,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:510,1
    - Dst: ALG_WARN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:511,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:515,1
    - Dst: ALG_WARN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:517,1
    - Dst: EVP_CIPHER_CTX_nid
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:521,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:524,1
    - Dst: ALG_WARN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:527,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:532,1
    - Dst: ALG_WARN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:533,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:534,1
    - Dst: afalg_create_sk
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:539,1
    - Dst: afalg_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:544,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:544,1
    - Dst: afalg_init_aio
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:549,1
    - Dst: pipe
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:553,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:561,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:562,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 564
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 564
    functionName: afalg_cipher_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_cipher
    - afalg_init_aio
    - strncpy
    - EVP_CIPHER_CTX_key_length
    - close
    - afalg_set_key
    - ALG_WARN
    - EVP_CIPHER_CTX_iv_length
    - afalg_create_sk
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_CTX_nid
    - pipe
    linkageType: ''
    returnType: int
    signature: "afalg_cipher_init(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                            const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ALG_WARN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:574,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:578,1
    - Dst: ALG_WARN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:580,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:589,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:590,1
    - Dst: afalg_start_cipher_sk
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:594,1
    - Dst: EVP_CIPHER_CTX_iv
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:595,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:596,1
    - Dst: afalg_fin_cipher_aio
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:602,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:606,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:607,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:607,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:610,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:610,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 614
      start: 566
    functionDepth: 3
    functionLinenumber: 566
    functionLinenumberEnd: 614
    functionName: afalg_do_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached:
    - afalg_fin_cipher_aio
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_iv
    - memcpy
    - afalg_start_cipher_sk
    - EVP_CIPHER_CTX_encrypting
    - ALG_WARN
    - EVP_CIPHER_CTX_get_cipher_data
    linkageType: ''
    returnType: int
    signature: "afalg_do_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ALG_WARN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:621,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:625,1
    - Dst: ALG_WARN
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:627,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:632,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:633,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:635,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:636,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:640,1
    - Dst: io_destroy
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:641,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 644
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 644
    functionName: afalg_cipher_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached:
    - close
    - EVP_CIPHER_CTX_get_cipher_data
    - io_destroy
    - ALG_WARN
    linkageType: ''
    returnType: int
    signature: afalg_cipher_cleanup(EVP_CIPHER_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:650,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:653,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:654,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:657,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:659,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:661,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:663,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:665,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 669
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 669
    functionName: afalg_aes_128_cbc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_set_cleanup
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_iv_length
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_init
    - EVP_CIPHER_meth_new
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*afalg_aes_128_cbc(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: afalg_aes_128_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:683,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - e
    - cipher
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_CIPHER**
    - int**
    - int
    constantsTouched: []
    func_position:
      end: 691
      start: 671
    functionDepth: 2
    functionLinenumber: 671
    functionLinenumberEnd: 691
    functionName: afalg_ciphers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached:
    - afalg_aes_128_cbc
    linkageType: ''
    returnType: int
    signature: "afalg_ciphers(ENGINE *e, const EVP_CIPHER **cipher,\n                         const
      int **nids, int nid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_load_AFALG_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:696,1
    - Dst: ENGINE_set_id
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:698,1
    - Dst: ENGINE_set_name
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:699,1
    - Dst: ENGINE_set_destroy_function
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:700,1
    - Dst: ENGINE_set_init_function
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:701,1
    - Dst: ENGINE_set_finish_function
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:702,1
    - Dst: AFALGerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:703,1
    - Dst: afalg_aes_128_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:712,1
    - Dst: AFALGerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:713,1
    - Dst: ENGINE_set_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:717,1
    - Dst: AFALGerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:718,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 723
      start: 693
    functionDepth: 2
    functionLinenumber: 693
    functionLinenumberEnd: 723
    functionName: bind_afalg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached:
    - ENGINE_set_name
    - afalg_aes_128_cbc
    - AFALGerr
    - ERR_load_AFALG_strings
    - ENGINE_set_id
    - ENGINE_set_destroy_function
    - ENGINE_set_init_function
    - ENGINE_set_ciphers
    - ENGINE_set_finish_function
    linkageType: ''
    returnType: int
    signature: bind_afalg(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:728,1
    - Dst: afalg_chk_platform
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:731,1
    - Dst: bind_afalg
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:734,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    constantsTouched: []
    func_position:
      end: 737
      start: 726
    functionDepth: 3
    functionLinenumber: 726
    functionLinenumberEnd: 737
    functionName: bind_helper
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 4
    functionsReached:
    - bind_afalg
    - afalg_chk_platform
    - strcmp
    linkageType: ''
    returnType: int
    signature: bind_helper(ENGINE *e, const char *id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uname
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:752,1
    - Dst: AFALGerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:754,1
    - Dst: strtok
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:759,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:761,1
    - Dst: strtok
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:762,1
    - Dst: KERNEL_VERSION
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:765,1
    - Dst: KERNEL_VERSION
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:766,1
    - Dst: ALG_ERR
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:767,1
    - Dst: ALG_ERR
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:769,1
    - Dst: AFALGerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:771,1
    - Dst: socket
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:777,1
    - Dst: AFALGerr
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:779,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:782,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 785
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 785
    functionName: afalg_chk_platform
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 1
    functionsReached:
    - atoi
    - AFALGerr
    - KERNEL_VERSION
    - strtok
    - uname
    - close
    - socket
    - ALG_ERR
    linkageType: ''
    returnType: int
    signature: afalg_chk_platform(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:790,1
    - Dst: bind_afalg
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:793,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 798
      start: 788
    functionDepth: 3
    functionLinenumber: 788
    functionLinenumberEnd: 798
    functionName: engine_afalg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached:
    - bind_afalg
    - ENGINE_free
    - ENGINE_new
    linkageType: ''
    returnType: ENGINE
    signature: '*engine_afalg(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: afalg_chk_platform
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:804,1
    - Dst: engine_afalg
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:807,1
    - Dst: ENGINE_add
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:810,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:811,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:812,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 813
      start: 800
    functionDepth: 4
    functionLinenumber: 800
    functionLinenumberEnd: 813
    functionName: engine_load_afalg_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached:
    - engine_afalg
    - ENGINE_add
    - ENGINE_free
    - afalg_chk_platform
    - ERR_clear_error
    linkageType: ''
    returnType: void
    signature: engine_load_afalg_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 819
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 819
    functionName: afalg_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: afalg_init(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 824
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 824
    functionName: afalg_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: afalg_finish(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_unload_AFALG_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:828,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 832
      start: 826
    functionDepth: 1
    functionLinenumber: 826
    functionLinenumberEnd: 832
    functionName: afalg_destroy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
    functionUses: 0
    functionsReached:
    - ERR_unload_AFALG_strings
    - EVP_CIPHER_meth_free
    linkageType: ''
    returnType: int
    signature: afalg_destroy(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg_err.c:75,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg_err.c:80,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg_err.c:81,1
    - Dst: ERR_PACK
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg_err.c:85,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg_err.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 89
    functionName: ERR_load_AFALG_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg_err.c
    functionUses: 1
    functionsReached:
    - ERR_get_next_error_library
    - ERR_load_strings
    - ERR_PACK
    linkageType: ''
    returnType: void
    signature: ERR_load_AFALG_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_unload_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg_err.c:95,1
    - Dst: ERR_unload_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg_err.c:96,1
    - Dst: ERR_unload_strings
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg_err.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 104
    functionName: ERR_unload_AFALG_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg_err.c
    functionUses: 1
    functionsReached:
    - ERR_unload_strings
    linkageType: ''
    returnType: void
    signature: ERR_unload_AFALG_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg_err.c:109,1
    - Dst: ERR_PUT_error
      Src: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg_err.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - function
    - reason
    - file
    - line
    argTypes:
    - int
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: ERR_AFALG_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg_err.c
    functionUses: 0
    functionsReached:
    - ERR_get_next_error_library
    - ERR_PUT_error
    linkageType: ''
    returnType: void
    signature: ERR_AFALG_error(int function, int reason, char *file, int line)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:21,1
    - Dst: pthread_rwlock_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:25,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:26,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:31,1
    - Dst: pthread_mutexattr_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:35,1
    - Dst: pthread_mutexattr_settype
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:36,1
    - Dst: pthread_mutex_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:38,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:39,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:40,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 48
    functionName: CRYPTO_THREAD_lock_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c
    functionUses: 2
    functionsReached:
    - pthread_mutexattr_settype
    - pthread_mutex_init
    - pthread_mutexattr_destroy
    - pthread_rwlock_init
    - pthread_mutexattr_init
    - OPENSSL_zalloc
    - OPENSSL_free
    linkageType: ''
    returnType: CRYPTO_RWLOCK
    signature: '*CRYPTO_THREAD_lock_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_rdlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:53,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: CRYPTO_THREAD_read_lock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_rwlock_rdlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_wrlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:66,1
    - Dst: pthread_mutex_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    constantsTouched: []
    func_position:
      end: 74
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 74
    functionName: CRYPTO_THREAD_write_lock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c
    functionUses: 3
    functionsReached:
    - pthread_mutex_lock
    - pthread_rwlock_wrlock
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:79,1
    - Dst: pthread_mutex_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: CRYPTO_THREAD_unlock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c
    functionUses: 3
    functionsReached:
    - pthread_rwlock_unlock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_destroy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:95,1
    - Dst: pthread_mutex_destroy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:97,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    constantsTouched: []
    func_position:
      end: 102
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 102
    functionName: CRYPTO_THREAD_lock_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - pthread_mutex_destroy
    - pthread_rwlock_destroy
    linkageType: ''
    returnType: void
    signature: CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - once
    argTypes:
    - CRYPTO_ONCE*
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: CRYPTO_THREAD_run_once
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_once
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_key_create
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: CRYPTO_THREAD_init_local
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_key_create
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void (*cleanup)(void
      *))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_getspecific
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: CRYPTO_THREAD_get_local
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_getspecific
    linkageType: ''
    returnType: void
    signature: '*CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_setspecific
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    - void*
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: CRYPTO_THREAD_set_local
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_setspecific
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_key_delete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: CRYPTO_THREAD_cleanup_local
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_key_delete
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_cleanup_local(CRYPTO_THREAD_LOCAL *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_self
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: CRYPTO_THREAD_get_current_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_self
    linkageType: ''
    returnType: CRYPTO_THREAD_ID
    signature: CRYPTO_THREAD_get_current_id(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_equal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - CRYPTO_THREAD_ID
    - CRYPTO_THREAD_ID
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: CRYPTO_THREAD_compare_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_equal
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_is_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:154,1
    - Dst: __atomic_add_fetch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:155,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:159,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c:165,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - val
    - amount
    - ret
    - lock
    argTypes:
    - int*
    - int
    - int*
    - CRYPTO_RWLOCK*
    constantsTouched: []
    func_position:
      end: 169
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 169
    functionName: CRYPTO_atomic_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_unlock
    - __atomic_is_lock_free
    - __atomic_add_fetch
    - CRYPTO_THREAD_write_lock
    linkageType: ''
    returnType: int
    signature: CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MultiByteToWideChar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_fopen.c:35,1
    - Dst: GetLastError
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_fopen.c:37,1
    - Dst: MultiByteToWideChar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_fopen.c:38,1
    - Dst: _alloca
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_fopen.c:42,1
    - Dst: MultiByteToWideChar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_fopen.c:44,1
    - Dst: MultiByteToWideChar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_fopen.c:46,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_fopen.c:46,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_fopen.c:47,1
    - Dst: _wfopen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_fopen.c:48,1
    - Dst: fopen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_fopen.c:55,1
    - Dst: GetLastError
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_fopen.c:57,1
    - Dst: fopen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_fopen.c:58,1
    - Dst: HAS_LFN_SUPPORT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_fopen.c:64,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_fopen.c:68,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_fopen.c:68,1
    - Dst: fopen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_fopen.c:86,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_fopen.c:88,1
    - Dst: fopen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_fopen.c:91,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 29
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 94
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 94
    functionName: openssl_fopen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/o_fopen.c
    functionUses: 0
    functionsReached:
    - HAS_LFN_SUPPORT
    - _wfopen
    - _alloca
    - MultiByteToWideChar
    - strlen
    - OPENSSL_free
    - GetLastError
    - OSSL_NELEM
    - fopen
    - OPENSSL_malloc
    linkageType: ''
    returnType: FILE
    signature: '*openssl_fopen(const char *filename, const char *mode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: openssl_fopen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/o_fopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*openssl_fopen(const char *filename, const char *mode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_mont_vis3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:67,1
    - Dst: bn_mul_mont_vis3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:70,1
    - Dst: bn_mul_mont_fpu
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:84,1
    - Dst: bn_mul_mont_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:86,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 6
    argNames:
    - rp
    - ap
    - bp
    - np
    - n0
    - num
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    constantsTouched: []
    func_position:
      end: 87
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 87
    functionName: bn_mul_mont
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c
    functionUses: 0
    functionsReached:
    - bn_mul_mont_vis3
    - bn_mul_mont_int
    - bn_mul_mont_fpu
    linkageType: ''
    returnType: int
    signature: "bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp,\n
      \               const BN_ULONG *np, const BN_ULONG *n0, int num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethrtime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 111
    functionName: OPENSSL_rdtsc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c
    functionUses: 0
    functionsReached:
    - gethrtime
    linkageType: ''
    returnType: unsigned long
    signature: OPENSSL_rdtsc(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _sparcv9_vis1_instrument_bus
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - out
    - cnt
    argTypes:
    - unsigned int*
    - size_t
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: OPENSSL_instrument_bus
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c
    functionUses: 0
    functionsReached:
    - _sparcv9_vis1_instrument_bus
    linkageType: ''
    returnType: size_t
    signature: OPENSSL_instrument_bus(unsigned int *out, size_t cnt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _sparcv9_vis1_instrument_bus2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - cnt
    - max
    argTypes:
    - unsigned int*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: OPENSSL_instrument_bus2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c
    functionUses: 0
    functionsReached:
    - _sparcv9_vis1_instrument_bus2
    linkageType: ''
    returnType: size_t
    signature: OPENSSL_instrument_bus2(unsigned int *out, size_t cnt, size_t max)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: siglongjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: common_handler
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c
    functionUses: 0
    functionsReached:
    - siglongjmp
    linkageType: ''
    returnType: void
    signature: common_handler(int sig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:159,1
    - Dst: strtoul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:160,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:161,1
    - Dst: strtoul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:162,1
    - Dst: getisax
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:170,1
    - Dst: _sparcv9_vis1_instrument
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:199,1
    - Dst: sigfillset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:213,1
    - Dst: sigdelset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:214,1
    - Dst: sigdelset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:215,1
    - Dst: sigdelset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:217,1
    - Dst: sigdelset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:219,1
    - Dst: sigdelset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:220,1
    - Dst: sigdelset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:221,1
    - Dst: sigprocmask
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:222,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:224,1
    - Dst: sigaction
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:228,1
    - Dst: sigaction
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:229,1
    - Dst: sigsetjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:232,1
    - Dst: _sparcv9_rdtick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:233,1
    - Dst: sigsetjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:237,1
    - Dst: _sparcv9_vis1_probe
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:238,1
    - Dst: _sparcv9_vis1_instrument
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:241,1
    - Dst: _sparcv9_vis2_probe
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:244,1
    - Dst: sigsetjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:249,1
    - Dst: _sparcv9_fmadd_probe
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:250,1
    - Dst: sigsetjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:258,1
    - Dst: _sparcv9_vis3_probe
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:259,1
    - Dst: sigsetjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:263,1
    - Dst: _sparcv9_fjaesx_probe
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:264,1
    - Dst: sigsetjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:275,1
    - Dst: _sparcv9_rdcfr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:276,1
    - Dst: sigaction
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:279,1
    - Dst: sigaction
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:280,1
    - Dst: sigprocmask
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:282,1
    - Dst: syscall
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c:288,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 100
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 294
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 294
    functionName: OPENSSL_cpuid_setup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c
    functionUses: 0
    functionsReached:
    - sigsetjmp
    - _sparcv9_vis3_probe
    - sigaction
    - strtoul
    - _sparcv9_rdcfr
    - _sparcv9_fmadd_probe
    - syscall
    - sigprocmask
    - sigfillset
    - _sparcv9_rdtick
    - _sparcv9_fjaesx_probe
    - _sparcv9_vis1_instrument
    - getisax
    - getenv
    - memset
    - _sparcv9_vis1_probe
    - sigdelset
    - strchr
    - _sparcv9_vis2_probe
    linkageType: ''
    returnType: void
    signature: OPENSSL_cpuid_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_clr.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: OPENSSL_cleanse
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_clr.c
    functionUses: 2
    functionsReached:
    - memset_func
    linkageType: ''
    returnType: void
    signature: OPENSSL_cleanse(void *ptr, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FIPS_module_mode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_fips.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 22
    functionName: FIPS_mode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/o_fips.c
    functionUses: 0
    functionsReached:
    - FIPS_module_mode
    linkageType: ''
    returnType: int
    signature: FIPS_mode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FIPS_module_mode_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_fips.c:27,1
    - Dst: CRYPTOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_fips.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: FIPS_mode_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/o_fips.c
    functionUses: 0
    functionsReached:
    - CRYPTOerr
    - FIPS_module_mode_set
    linkageType: ''
    returnType: int
    signature: FIPS_mode_set(int r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:41,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_init_crypto
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(do_ex_data_init)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:55,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:59,1
    - Dst: CRYPTOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:60,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - class_index
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 80
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 80
    functionName: get_and_lock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - CRYPTOerr
    - CRYPTO_THREAD_write_lock
    - RUN_ONCE
    linkageType: ''
    returnType: EX_CALLBACKS
    signature: '*get_and_lock(int class_index)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - funcs
    argTypes:
    - EX_CALLBACK*
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: cleanup_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: cleanup_cb(EX_CALLBACK *funcs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_EX_CALLBACK_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:100,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 106
    functionName: crypto_cleanup_all_ex_data_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - sk_EX_CALLBACK_pop_free
    linkageType: ''
    returnType: void
    signature: crypto_cleanup_all_ex_data_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: dummy_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "dummy_new(void *parent, void *ptr, CRYPTO_EX_DATA *ad, int idx,\n
      \                    long argl, void *argp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: dummy_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "dummy_free(void *parent, void *ptr, CRYPTO_EX_DATA *ad, int idx,\n
      \                      long argl, void *argp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - to
    - from
    - from_d
    - idx
    - argl
    - argp
    argTypes:
    - CRYPTO_EX_DATA*
    - CRYPTO_EX_DATA*
    - void*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: dummy_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "dummy_dup(CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from,\n                     void
      *from_d, int idx,\n                     long argl, void *argp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_and_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:132,1
    - Dst: sk_EX_CALLBACK_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:138,1
    - Dst: sk_EX_CALLBACK_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:140,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:148,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - class_index
    - idx
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 150
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 150
    functionName: CRYPTO_free_ex_index
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - sk_EX_CALLBACK_value
    - sk_EX_CALLBACK_num
    - CRYPTO_THREAD_unlock
    - get_and_lock
    linkageType: ''
    returnType: int
    signature: CRYPTO_free_ex_index(int class_index, int idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_and_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:161,1
    - Dst: sk_EX_CALLBACK_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:167,1
    - Dst: sk_EX_CALLBACK_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:171,1
    - Dst: CRYPTOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:172,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:177,1
    - Dst: CRYPTOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:179,1
    - Dst: sk_EX_CALLBACK_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:188,1
    - Dst: CRYPTOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:189,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:190,1
    - Dst: sk_EX_CALLBACK_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:193,1
    - Dst: sk_EX_CALLBACK_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:194,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:197,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 6
    argNames:
    - class_index
    - argl
    - argp
    - new_func
    - dup_func
    - free_func
    argTypes:
    - int
    - long
    - void*
    - CRYPTO_EX_new*
    - CRYPTO_EX_dup*
    - CRYPTO_EX_free*
    constantsTouched: []
    func_position:
      end: 199
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 199
    functionName: CRYPTO_get_ex_new_index
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - sk_EX_CALLBACK_new_null
    - CRYPTOerr
    - sk_EX_CALLBACK_push
    - sk_EX_CALLBACK_num
    - CRYPTO_THREAD_unlock
    - sk_EX_CALLBACK_set
    - OPENSSL_free
    - OPENSSL_malloc
    - get_and_lock
    linkageType: ''
    returnType: int
    signature: "CRYPTO_get_ex_new_index(int class_index, long argl, void *argp,\n
      \                           CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func,\n
      \                           CRYPTO_EX_free *free_func)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_and_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:214,1
    - Dst: sk_EX_CALLBACK_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:221,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:223,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:226,1
    - Dst: sk_EX_CALLBACK_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:229,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:231,1
    - Dst: CRYPTOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:234,1
    - Dst: CRYPTO_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:239,1
    - Dst: new_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:240,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:245,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - class_index
    - obj
    - ad
    argTypes:
    - int
    - void*
    - CRYPTO_EX_DATA*
    constantsTouched: []
    func_position:
      end: 247
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 247
    functionName: CRYPTO_new_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    - new_func
    - sk_EX_CALLBACK_value
    - CRYPTOerr
    - sk_EX_CALLBACK_num
    - CRYPTO_THREAD_unlock
    - OSSL_NELEM
    - OPENSSL_free
    - OPENSSL_malloc
    - get_and_lock
    linkageType: ''
    returnType: int
    signature: CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_and_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:265,1
    - Dst: sk_EX_CALLBACK_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:268,1
    - Dst: sk_void_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:269,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:273,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:276,1
    - Dst: sk_EX_CALLBACK_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:279,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:281,1
    - Dst: CRYPTOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:284,1
    - Dst: CRYPTO_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:289,1
    - Dst: dup_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:291,1
    - Dst: CRYPTO_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:293,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:296,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 3
    argNames:
    - class_index
    - to
    - from
    argTypes:
    - int
    - CRYPTO_EX_DATA*
    - CRYPTO_EX_DATA*
    constantsTouched: []
    func_position:
      end: 298
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 298
    functionName: CRYPTO_dup_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    - sk_EX_CALLBACK_value
    - CRYPTOerr
    - OPENSSL_free
    - sk_EX_CALLBACK_num
    - CRYPTO_THREAD_unlock
    - dup_func
    - CRYPTO_set_ex_data
    - OSSL_NELEM
    - sk_void_num
    - OPENSSL_malloc
    - get_and_lock
    linkageType: ''
    returnType: int
    signature: "CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to,\n                       const
      CRYPTO_EX_DATA *from)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_and_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:314,1
    - Dst: sk_EX_CALLBACK_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:317,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:319,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:322,1
    - Dst: sk_EX_CALLBACK_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:325,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:327,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:333,1
    - Dst: sk_EX_CALLBACK_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:334,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:335,1
    - Dst: CRYPTO_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:338,1
    - Dst: EX_CALLBACK*::free_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:339,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:344,1
    - Dst: sk_void_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:346,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - class_index
    - obj
    - ad
    argTypes:
    - int
    - void*
    - CRYPTO_EX_DATA*
    constantsTouched: []
    func_position:
      end: 348
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 348
    functionName: CRYPTO_free_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    - EX_CALLBACK*::free_func
    - sk_EX_CALLBACK_value
    - CRYPTO_THREAD_write_lock
    - sk_EX_CALLBACK_num
    - CRYPTO_THREAD_unlock
    - OSSL_NELEM
    - sk_void_free
    - OPENSSL_free
    - OPENSSL_malloc
    - get_and_lock
    linkageType: ''
    returnType: void
    signature: CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_void_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:359,1
    - Dst: CRYPTOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:360,1
    - Dst: sk_void_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:365,1
    - Dst: sk_void_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:366,1
    - Dst: CRYPTOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:367,1
    - Dst: sk_void_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:371,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ad
    - idx
    - val
    argTypes:
    - CRYPTO_EX_DATA*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 373
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 373
    functionName: CRYPTO_set_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c
    functionUses: 1
    functionsReached:
    - sk_void_push
    - CRYPTOerr
    - sk_void_new_null
    - sk_void_num
    - sk_void_set
    linkageType: ''
    returnType: int
    signature: CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_void_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:381,1
    - Dst: sk_void_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ad
    - idx
    argTypes:
    - CRYPTO_EX_DATA*
    - int
    constantsTouched: []
    func_position:
      end: 384
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 384
    functionName: CRYPTO_get_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c
    functionUses: 3
    functionsReached:
    - sk_void_num
    - sk_void_value
    linkageType: ''
    returnType: void
    signature: '*CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:68,1
    - Dst: sh_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - size
    - minsize
    argTypes:
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 79
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 79
    functionName: CRYPTO_secure_malloc_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - sh_init
    linkageType: ''
    returnType: int
    signature: CRYPTO_secure_malloc_init(size_t size, int minsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sh_done
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:85,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 92
    functionName: CRYPTO_secure_malloc_done
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - sh_done
    linkageType: ''
    returnType: int
    signature: CRYPTO_secure_malloc_done()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: CRYPTO_secure_malloc_initialized
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: CRYPTO_secure_malloc_initialized()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:110,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:112,1
    - Dst: sh_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:113,1
    - Dst: sh_actual_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:114,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:116,1
    - Dst: CRYPTO_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - num
    - file
    - line
    argTypes:
    - size_t
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 121
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 121
    functionName: CRYPTO_secure_malloc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - sh_malloc
    - sh_actual_size
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    - CRYPTO_malloc
    linkageType: ''
    returnType: void
    signature: '*CRYPTO_secure_malloc(size_t num, const char *file, int line)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - num
    - file
    - line
    argTypes:
    - size_t
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: CRYPTO_secure_zalloc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: '*CRYPTO_secure_zalloc(size_t num, const char *file, int line)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_secure_allocated
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:139,1
    - Dst: CRYPTO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:140,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:143,1
    - Dst: sh_actual_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:144,1
    - Dst: CLEAR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:145,1
    - Dst: sh_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:147,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:148,1
    - Dst: CRYPTO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - ptr
    - file
    - line
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 152
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 152
    functionName: CRYPTO_secure_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - CRYPTO_free
    - CRYPTO_secure_allocated
    - sh_actual_size
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    - CLEAR
    - sh_free
    linkageType: ''
    returnType: void
    signature: CRYPTO_secure_free(void *ptr, const char *file, int line)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:161,1
    - Dst: sh_allocated
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:162,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 168
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 168
    functionName: CRYPTO_secure_allocated
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - sh_allocated
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: CRYPTO_secure_allocated(const void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: CRYPTO_secure_used
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: CRYPTO_secure_used()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:184,1
    - Dst: sh_actual_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:185,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 191
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 191
    functionName: CRYPTO_secure_actual_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - sh_actual_size
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: size_t
    signature: CRYPTO_secure_actual_size(void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TESTBIT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:257,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 263
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 263
    functionName: sh_getlist
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - TESTBIT
    - OPENSSL_assert
    linkageType: ''
    returnType: size_t
    signature: sh_getlist(char *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:270,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:271,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:273,1
    - Dst: TESTBIT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ptr
    - list
    - table
    argTypes:
    - char*
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 275
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 275
    functionName: sh_testbit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - TESTBIT
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: sh_testbit(char *ptr, int list, unsigned char *table)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:281,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:282,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:284,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:285,1
    - Dst: TESTBIT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:285,1
    - Dst: CLEARBIT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - list
    - table
    argTypes:
    - char*
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 287
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 287
    functionName: sh_clearbit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - CLEARBIT
    - TESTBIT
    - OPENSSL_assert
    linkageType: ''
    returnType: void
    signature: sh_clearbit(char *ptr, int list, unsigned char *table)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:293,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:294,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:296,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:297,1
    - Dst: TESTBIT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:297,1
    - Dst: SETBIT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - list
    - table
    argTypes:
    - char*
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 299
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 299
    functionName: sh_setbit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - TESTBIT
    - SETBIT
    - OPENSSL_assert
    linkageType: ''
    returnType: void
    signature: sh_setbit(char *ptr, int list, unsigned char *table)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:305,1
    - Dst: WITHIN_FREELIST
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:305,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:306,1
    - Dst: WITHIN_ARENA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:306,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:310,1
    - Dst: WITHIN_ARENA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:310,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - list
    - ptr
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 319
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 319
    functionName: sh_add_to_list
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - WITHIN_ARENA
    - WITHIN_FREELIST
    - OPENSSL_assert
    linkageType: ''
    returnType: void
    signature: sh_add_to_list(char **list, char *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:333,1
    - Dst: WITHIN_FREELIST
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:333,1
    - Dst: WITHIN_ARENA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 334
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 334
    functionName: sh_remove_from_list
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - WITHIN_ARENA
    - WITHIN_FREELIST
    - OPENSSL_assert
    linkageType: ''
    returnType: void
    signature: sh_remove_from_list(char *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:343,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:346,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:347,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:348,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:349,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:367,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:368,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:372,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:373,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:377,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:378,1
    - Dst: mmap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:401,1
    - Dst: open
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:408,1
    - Dst: mmap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:409,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:411,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:414,1
    - Dst: sh_setbit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:418,1
    - Dst: sh_add_to_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:419,1
    - Dst: mprotect
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:425,1
    - Dst: mprotect
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:430,1
    - Dst: mlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:433,1
    - Dst: madvise
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:436,1
    - Dst: sh_done
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:443,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 73
    argCount: 2
    argNames:
    - size
    - minsize
    argTypes:
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 445
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 445
    functionName: sh_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c
    functionUses: 1
    functionsReached:
    - mprotect
    - mmap
    - open
    - sh_setbit
    - OPENSSL_assert
    - sh_add_to_list
    - mlock
    - memset
    - close
    - madvise
    - sh_done
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: sh_init(size_t size, int minsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:449,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:450,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:451,1
    - Dst: munmap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:453,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 455
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 455
    functionName: sh_done
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c
    functionUses: 2
    functionsReached:
    - munmap
    - OPENSSL_free
    - memset
    linkageType: ''
    returnType: void
    signature: sh_done()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WITHIN_ARENA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 460
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 460
    functionName: sh_allocated
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c
    functionUses: 1
    functionsReached:
    - WITHIN_ARENA
    linkageType: ''
    returnType: int
    signature: sh_allocated(const char *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TESTBIT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:470,1
    - Dst: TESTBIT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - list
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 474
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 474
    functionName: sh_find_my_buddy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - TESTBIT
    linkageType: ''
    returnType: char
    signature: '*sh_find_my_buddy(char *ptr, int list)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:500,1
    - Dst: sh_testbit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:500,1
    - Dst: sh_clearbit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:501,1
    - Dst: sh_remove_from_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:502,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:503,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:509,1
    - Dst: sh_testbit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:509,1
    - Dst: sh_setbit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:510,1
    - Dst: sh_add_to_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:511,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:512,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:516,1
    - Dst: sh_testbit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:516,1
    - Dst: sh_setbit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:517,1
    - Dst: sh_add_to_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:518,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:519,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:521,1
    - Dst: sh_find_my_buddy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:521,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:526,1
    - Dst: sh_testbit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:526,1
    - Dst: sh_setbit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:527,1
    - Dst: sh_remove_from_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:528,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:530,1
    - Dst: WITHIN_ARENA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:530,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 533
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 533
    functionName: sh_malloc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c
    functionUses: 1
    functionsReached:
    - sh_setbit
    - sh_clearbit
    - sh_remove_from_list
    - OPENSSL_assert
    - sh_testbit
    - sh_add_to_list
    - WITHIN_ARENA
    - sh_find_my_buddy
    linkageType: ''
    returnType: char
    signature: '*sh_malloc(size_t size)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:542,1
    - Dst: WITHIN_ARENA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:542,1
    - Dst: WITHIN_ARENA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:543,1
    - Dst: sh_getlist
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:546,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:547,1
    - Dst: sh_testbit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:547,1
    - Dst: sh_clearbit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:548,1
    - Dst: sh_add_to_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:549,1
    - Dst: sh_find_my_buddy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:552,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:553,1
    - Dst: sh_find_my_buddy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:553,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:554,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:555,1
    - Dst: sh_testbit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:555,1
    - Dst: sh_clearbit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:556,1
    - Dst: sh_remove_from_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:557,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:558,1
    - Dst: sh_testbit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:558,1
    - Dst: sh_clearbit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:559,1
    - Dst: sh_remove_from_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:560,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:567,1
    - Dst: sh_testbit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:567,1
    - Dst: sh_setbit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:568,1
    - Dst: sh_add_to_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:569,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:570,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 572
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 572
    functionName: sh_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c
    functionUses: 1
    functionsReached:
    - sh_setbit
    - sh_clearbit
    - sh_getlist
    - OPENSSL_assert
    - sh_remove_from_list
    - sh_testbit
    - sh_add_to_list
    - WITHIN_ARENA
    - sh_find_my_buddy
    linkageType: ''
    returnType: void
    signature: sh_free(char *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:578,1
    - Dst: WITHIN_ARENA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:578,1
    - Dst: WITHIN_ARENA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:579,1
    - Dst: sh_getlist
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:581,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:582,1
    - Dst: sh_testbit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c:582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 584
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 584
    functionName: sh_actual_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c
    functionUses: 3
    functionsReached:
    - WITHIN_ARENA
    - sh_testbit
    - sh_getlist
    - OPENSSL_assert
    linkageType: ''
    returnType: size_t
    signature: sh_actual_size(char *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: OPENSSL_cpuid_setup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: OPENSSL_cpuid_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: OPENSSL_rdtsc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: OPENSSL_rdtsc(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: siglongjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: ill_handler
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c
    functionUses: 0
    functionsReached:
    - siglongjmp
    linkageType: ''
    returnType: void
    signature: ill_handler(int sig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _armv7_tick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: OPENSSL_rdtsc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c
    functionUses: 0
    functionsReached:
    - _armv7_tick
    linkageType: ''
    returnType: unsigned long
    signature: OPENSSL_rdtsc(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:109,1
    - Dst: strtoul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:110,1
    - Dst: sigfillset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:132,1
    - Dst: sigdelset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:133,1
    - Dst: sigdelset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:134,1
    - Dst: sigdelset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:135,1
    - Dst: sigdelset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:136,1
    - Dst: sigdelset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:137,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:141,1
    - Dst: sigprocmask
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:145,1
    - Dst: sigaction
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:146,1
    - Dst: getauxval
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:149,1
    - Dst: sigsetjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:166,1
    - Dst: _armv7_neon_probe
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:167,1
    - Dst: sigsetjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:169,1
    - Dst: _armv8_pmull_probe
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:170,1
    - Dst: sigsetjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:172,1
    - Dst: _armv8_aes_probe
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:173,1
    - Dst: sigsetjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:176,1
    - Dst: _armv8_sha1_probe
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:177,1
    - Dst: sigsetjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:180,1
    - Dst: _armv8_sha256_probe
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:181,1
    - Dst: sigsetjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:185,1
    - Dst: _armv7_tick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:186,1
    - Dst: sigaction
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:190,1
    - Dst: sigprocmask
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c:191,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 192
    functionName: OPENSSL_cpuid_setup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c
    functionUses: 0
    functionsReached:
    - sigsetjmp
    - _armv7_tick
    - sigprocmask
    - sigdelset
    - sigfillset
    - _armv8_pmull_probe
    - _armv8_sha1_probe
    - _armv8_aes_probe
    - memset
    - getenv
    - sigaction
    - _armv8_sha256_probe
    - strtoul
    - getauxval
    - _armv7_neon_probe
    linkageType: ''
    returnType: void
    signature: OPENSSL_cpuid_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_unix.c:86,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_unix.c:91,1
    - Dst: opendir
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_unix.c:93,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_unix.c:96,1
    - Dst: readdir
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_unix.c:103,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_unix.c:108,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - ctx
    - directory
    argTypes:
    - LP_DIR_CTX**
    - char*
    constantsTouched: []
    func_position:
      end: 112
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 112
    functionName: LP_find_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_unix.c
    functionUses: 0
    functionsReached:
    - strncpy
    - memset
    - free
    - opendir
    - malloc
    - readdir
    linkageType: ''
    returnType: char
    signature: '*LP_find_file(LP_DIR_CTX **ctx, const char *directory)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_unix.c:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - LP_DIR_CTX**
    constantsTouched: []
    func_position:
      end: 131
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 131
    functionName: LP_find_file_end
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_unix.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: LP_find_file_end(LP_DIR_CTX **ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FIPS_set_locking_callbacks
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_init.c:29,1
    - Dst: FIPS_set_error_callbacks
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_init.c:30,1
    - Dst: FIPS_set_malloc_callbacks
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_init.c:31,1
    - Dst: RAND_init_fips
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_init.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 34
    functionName: OPENSSL_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/o_init.c
    functionUses: 0
    functionsReached:
    - FIPS_set_locking_callbacks
    - FIPS_set_error_callbacks
    - FIPS_set_malloc_callbacks
    - RAND_init_fips
    linkageType: ''
    returnType: void
    signature: OPENSSL_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cpt_err.c:49,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cpt_err.c:50,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cpt_err.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: ERR_load_CRYPTO_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cpt_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_CRYPTO_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:87,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:92,1
    - Dst: MultiByteToWideChar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:104,1
    - Dst: GetLastError
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:107,1
    - Dst: MultiByteToWideChar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:110,1
    - Dst: _alloca
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:120,1
    - Dst: MultiByteToWideChar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:121,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:123,1
    - Dst: _alloca
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:136,1
    - Dst: TEXT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:142,1
    - Dst: TEXT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:143,1
    - Dst: TEXT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:143,1
    - Dst: _tcscpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:144,1
    - Dst: TEXT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:144,1
    - Dst: _tcscpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:146,1
    - Dst: TEXT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:146,1
    - Dst: FindFirstFile
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:149,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:154,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:156,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:158,1
    - Dst: FindFirstFile
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:163,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:167,1
    - Dst: FindNextFile
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:173,1
    - Dst: WideCharToMultiByte
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:186,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:193,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 77
    argCount: 2
    argNames:
    - ctx
    - directory
    argTypes:
    - LP_DIR_CTX**
    - char*
    constantsTouched: []
    func_position:
      end: 199
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 199
    functionName: LP_find_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c
    functionUses: 0
    functionsReached:
    - _tcscpy
    - TEXT
    - WideCharToMultiByte
    - strcpy
    - _alloca
    - MultiByteToWideChar
    - strncpy
    - memset
    - free
    - GetLastError
    - FindFirstFile
    - malloc
    - FindNextFile
    linkageType: ''
    returnType: char
    signature: '*LP_find_file(LP_DIR_CTX **ctx, const char *directory)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindClose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:204,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - LP_DIR_CTX**
    constantsTouched: []
    func_position:
      end: 211
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 211
    functionName: LP_find_file_end
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c
    functionUses: 0
    functionsReached:
    - free
    - FindClose
    linkageType: ''
    returnType: int
    signature: LP_find_file_end(LP_DIR_CTX **ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_none.c:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 23
    functionName: CRYPTO_THREAD_lock_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_none.c
    functionUses: 4
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: CRYPTO_RWLOCK
    signature: '*CRYPTO_THREAD_lock_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_none.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: CRYPTO_THREAD_read_lock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_none.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_none.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: CRYPTO_THREAD_write_lock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_none.c
    functionUses: 10
    functionsReached:
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_none.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: CRYPTO_THREAD_unlock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_none.c
    functionUses: 13
    functionsReached:
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_none.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: CRYPTO_THREAD_lock_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_none.c
    functionUses: 4
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_none.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - once
    argTypes:
    - CRYPTO_ONCE*
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: CRYPTO_THREAD_run_once
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_none.c
    functionUses: 0
    functionsReached:
    - init
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void))
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    constantsTouched: []
    func_position:
      end: 80
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 80
    functionName: CRYPTO_THREAD_init_local
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_none.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void (*cleanup)(void
      *))
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: CRYPTO_THREAD_get_local
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_none.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    - void*
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: CRYPTO_THREAD_set_local
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_none.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: CRYPTO_THREAD_cleanup_local
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_none.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_cleanup_local(CRYPTO_THREAD_LOCAL *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: CRYPTO_THREAD_get_current_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_none.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CRYPTO_THREAD_ID
    signature: CRYPTO_THREAD_get_current_id(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - CRYPTO_THREAD_ID
    - CRYPTO_THREAD_ID
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: CRYPTO_THREAD_compare_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_none.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - val
    - amount
    - ret
    - lock
    argTypes:
    - int*
    - int
    - int*
    - CRYPTO_RWLOCK*
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: CRYPTO_atomic_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_none.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_mont_fpu64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:47,1
    - Dst: sigprocmask
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:57,1
    - Dst: bn_mul_mont_fpu64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:58,1
    - Dst: sigprocmask
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:59,1
    - Dst: bn_mul_mont_fpu64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:69,1
    - Dst: bn_mul_mont_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:71,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 6
    argNames:
    - rp
    - ap
    - bp
    - np
    - n0
    - num
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    constantsTouched: []
    func_position:
      end: 72
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 72
    functionName: bn_mul_mont
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - bn_mul_mont_int
    - bn_mul_mont_fpu64
    - sigprocmask
    linkageType: ''
    returnType: int
    signature: "bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp,\n
      \               const BN_ULONG *np, const BN_ULONG *n0, int num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sha256_block_p8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:79,1
    - Dst: sha256_block_ppc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - inp
    - len
    argTypes:
    - void*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: sha256_block_data_order
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - sha256_block_ppc
    - sha256_block_p8
    linkageType: ''
    returnType: void
    signature: sha256_block_data_order(void *ctx, const void *inp, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sha512_block_p8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:87,1
    - Dst: sha512_block_ppc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - inp
    - len
    argTypes:
    - void*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: sha512_block_data_order
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - sha512_block_p8
    - sha512_block_ppc
    linkageType: ''
    returnType: void
    signature: sha512_block_data_order(void *ctx, const void *inp, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ChaCha20_ctr32_vmx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:103,1
    - Dst: ChaCha20_ctr32_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - inp
    - len
    - key
    - counter
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - unsigned int[]
    - unsigned int[]
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 105
    functionName: ChaCha20_ctr32
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - ChaCha20_ctr32_int
    - ChaCha20_ctr32_vmx
    linkageType: ''
    returnType: void
    signature: "ChaCha20_ctr32(unsigned char *out, const unsigned char *inp,\n                    size_t
      len, const unsigned int key[8],\n                    const unsigned int counter[4])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: poly1305_init_fpu
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:122,1
    - Dst: poly1305_init_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - key
    - func
    argTypes:
    - void*
    - unsigned char[]
    - void*[]
    constantsTouched: []
    func_position:
      end: 131
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 131
    functionName: poly1305_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - poly1305_init_fpu
    - poly1305_init_int
    linkageType: ''
    returnType: int
    signature: poly1305_init(void *ctx, const unsigned char key[16], void *func[2])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: siglongjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: ill_handler
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - siglongjmp
    linkageType: ''
    returnType: void
    signature: ill_handler(int sig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:184,1
    - Dst: strtoul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:185,1
    - Dst: sysconf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:197,1
    - Dst: uname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:200,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:200,1
    - Dst: __power_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:212,1
    - Dst: __power_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:216,1
    - Dst: __power_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:220,1
    - Dst: __power_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:223,1
    - Dst: __power_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:226,1
    - Dst: getauxval
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:253,1
    - Dst: sigfillset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:264,1
    - Dst: sigdelset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:265,1
    - Dst: sigdelset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:266,1
    - Dst: sigdelset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:268,1
    - Dst: sigdelset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:270,1
    - Dst: sigdelset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:271,1
    - Dst: sigdelset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:272,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:274,1
    - Dst: sigprocmask
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:278,1
    - Dst: sigaction
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:279,1
    - Dst: sigsetjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:281,1
    - Dst: OPENSSL_fpu_probe
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:282,1
    - Dst: uname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:288,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:288,1
    - Dst: sigsetjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:290,1
    - Dst: OPENSSL_ppc64_probe
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:291,1
    - Dst: sigsetjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:301,1
    - Dst: OPENSSL_altivec_probe
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:302,1
    - Dst: sigsetjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:304,1
    - Dst: OPENSSL_crypto207_probe
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:305,1
    - Dst: sigsetjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:310,1
    - Dst: OPENSSL_madd300_probe
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:311,1
    - Dst: sigaction
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:315,1
    - Dst: sigprocmask
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c:316,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 317
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 317
    functionName: OPENSSL_cpuid_setup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - sigsetjmp
    - sysconf
    - __power_set
    - atoi
    - sigaction
    - strtoul
    - sigprocmask
    - sigfillset
    - uname
    - OPENSSL_fpu_probe
    - OPENSSL_altivec_probe
    - getauxval
    - OPENSSL_crypto207_probe
    - memset
    - getenv
    - OPENSSL_madd300_probe
    - sigdelset
    - strcmp
    - OPENSSL_ppc64_probe
    linkageType: ''
    returnType: void
    signature: OPENSSL_cpuid_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_vms.c:116,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_vms.c:121,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_vms.c:123,1
    - Dst: strcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_vms.c:124,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_vms.c:131,1
    - Dst: lib$find_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_vms.c:147,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_vms.c:156,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_vms.c:181,1
    - Dst: str$free1_dx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_vms.c:183,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 71
    argCount: 2
    argNames:
    - ctx
    - directory
    argTypes:
    - LP_DIR_CTX**
    - char*
    constantsTouched: []
    func_position:
      end: 186
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 186
    functionName: LP_find_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_vms.c
    functionUses: 0
    functionsReached:
    - lib$find_file
    - strcat
    - strncpy
    - memset
    - $VMS_STATUS_SUCCESS
    - str$free1_dx
    - strcpy
    - malloc
    linkageType: ''
    returnType: char
    signature: '*LP_find_file(LP_DIR_CTX **ctx, const char *directory)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_vms.c:193,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_vms.c:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - LP_DIR_CTX**
    constantsTouched: []
    func_position:
      end: 204
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 204
    functionName: LP_find_file_end
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_vms.c
    functionUses: 0
    functionsReached:
    - free
    - $VMS_STATUS_SUCCESS
    linkageType: ''
    returnType: int
    signature: LP_find_file_end(LP_DIR_CTX **ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - (*m)(size_t, const char *, int)
    - (*r)(void *, size_t, const char *, int)
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 48
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 48
    functionName: CRYPTO_set_mem_functions
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "CRYPTO_set_mem_functions(\n        void *(*m)(size_t, const char *,
      int),\n        void *(*r)(void *, size_t, const char *, int),\n        void
      (*f)(void *, const char *, int))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - flag
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: CRYPTO_set_mem_debug
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: CRYPTO_set_mem_debug(int flag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - (**m)(size_t, const char *, int)
    - (**r)(void *, size_t, const char *, int)
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 69
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 69
    functionName: CRYPTO_get_mem_functions
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "CRYPTO_get_mem_functions(\n        void *(**m)(size_t, const char
      *, int),\n        void *(**r)(void *, size_t, const char *, int),\n        void
      (**f)(void *, const char *, int))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc_impl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:76,1
    - Dst: CRYPTO_mem_debug_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:84,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:85,1
    - Dst: CRYPTO_mem_debug_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:86,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:88,1
    - Dst: osslargused
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:91,1
    - Dst: osslargused
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:91,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - num
    - file
    - line
    argTypes:
    - size_t
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 96
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 96
    functionName: CRYPTO_malloc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c
    functionUses: 1
    functionsReached:
    - malloc
    - malloc_impl
    - osslargused
    - CRYPTO_mem_debug_malloc
    linkageType: ''
    returnType: void
    signature: '*CRYPTO_malloc(size_t num, const char *file, int line)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - num
    - file
    - line
    argTypes:
    - size_t
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 105
    functionName: CRYPTO_zalloc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: '*CRYPTO_zalloc(size_t num, const char *file, int line)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: realloc_impl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:110,1
    - Dst: CRYPTO_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:113,1
    - Dst: CRYPTO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:116,1
    - Dst: CRYPTO_mem_debug_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:124,1
    - Dst: realloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:125,1
    - Dst: CRYPTO_mem_debug_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:126,1
    - Dst: osslargused
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:130,1
    - Dst: osslargused
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:130,1
    - Dst: realloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:132,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - str
    - num
    - file
    - line
    argTypes:
    - void*
    - size_t
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 134
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 134
    functionName: CRYPTO_realloc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c
    functionUses: 0
    functionsReached:
    - CRYPTO_free
    - realloc
    - realloc_impl
    - CRYPTO_mem_debug_realloc
    - osslargused
    - CRYPTO_malloc
    linkageType: ''
    returnType: void
    signature: '*CRYPTO_realloc(void *str, size_t num, const char *file, int line)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:142,1
    - Dst: CRYPTO_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:145,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:151,1
    - Dst: CRYPTO_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:155,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:157,1
    - Dst: CRYPTO_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - str
    - old_len
    - num
    - file
    - line
    argTypes:
    - void*
    - size_t
    - size_t
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 161
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 161
    functionName: CRYPTO_clear_realloc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    - memcpy
    - CRYPTO_clear_free
    - CRYPTO_malloc
    linkageType: ''
    returnType: void
    signature: "*CRYPTO_clear_realloc(void *str, size_t old_len, size_t num,\n                           const
      char *file, int line)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free_impl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:166,1
    - Dst: CRYPTO_mem_debug_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:172,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:173,1
    - Dst: CRYPTO_mem_debug_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:174,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:176,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - str
    - file
    - line
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 181
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 181
    functionName: CRYPTO_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c
    functionUses: 2
    functionsReached:
    - CRYPTO_mem_debug_free
    - free_impl
    - free
    linkageType: ''
    returnType: void
    signature: CRYPTO_free(void *str, const char *file, int line)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:188,1
    - Dst: CRYPTO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - str
    - num
    - file
    - line
    argTypes:
    - void*
    - size_t
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: CRYPTO_clear_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c
    functionUses: 1
    functionsReached:
    - OPENSSL_cleanse
    - CRYPTO_free
    linkageType: ''
    returnType: void
    signature: CRYPTO_clear_free(void *str, size_t num, const char *file, int line)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dest
    - srce
    - count
    argTypes:
    - void*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 352
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 352
    functionName: ebcdic2ascii
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ebcdic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*ebcdic2ascii(void *dest, const void *srce, size_t count)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dest
    - srce
    - count
    argTypes:
    - void*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 364
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 364
    functionName: ascii2ebcdic
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ebcdic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*ascii2ebcdic(void *dest, const void *srce, size_t count)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - directory
    argTypes:
    - LP_DIR_CTX**
    - char*
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: LP_find_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_nyi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*LP_find_file(LP_DIR_CTX **ctx, const char *directory)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - LP_DIR_CTX**
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: LP_find_file_end
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_nyi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: LP_find_file_end(LP_DIR_CTX **ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cpuid_setup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dllmain.c:32,1
    - Dst: OPENSSL_thread_stop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dllmain.c:52,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - hinstDLL
    - fdwReason
    - lpvReserved
    argTypes:
    - HINSTANCE
    - DWORD
    - LPVOID
    constantsTouched: []
    func_position:
      end: 58
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 58
    functionName: DllMain
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dllmain.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cpuid_setup
    - OPENSSL_thread_stop
    linkageType: ''
    returnType: BOOL
    signature: DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ossl_init_thread_stop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - local
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: ossl_init_thread_stop_wrap
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 0
    functionsReached:
    - ossl_init_thread_stop
    linkageType: ''
    returnType: void
    signature: ossl_init_thread_stop_wrap(void *local)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:42,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:45,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:46,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - alloc
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 53
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 53
    functionName: ossl_init_get_thread_local
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_set_local
    - CRYPTO_THREAD_get_local
    - OPENSSL_zalloc
    linkageType: ''
    returnType: struct thread_local_inits_st
    signature: '*ossl_init_get_thread_local(int alloc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:69,1
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:75,1
    - Dst: atexit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:77,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:79,1
    - Dst: OPENSSL_cpuid_setup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:81,1
    - Dst: GetModuleHandleEx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:98,1
    - Dst: DSO_dsobyaddr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:112,1
    - Dst: DSO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 119
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 0
    functionsReached:
    - DSO_free
    - GetModuleHandleEx
    - OPENSSL_cpuid_setup
    - atexit
    - CRYPTO_THREAD_lock_new
    - DSO_dsobyaddr
    - CRYPTO_THREAD_init_local
    - fprintf
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(ossl_init_base)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(ossl_init_no_load_crypto_strings)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:138,1
    - Dst: err_load_crypto_strings_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 145
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - err_load_crypto_strings_int
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(ossl_init_load_crypto_strings)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:156,1
    - Dst: openssl_add_all_ciphers_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 162
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - openssl_add_all_ciphers_int
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(ossl_init_add_all_ciphers)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:173,1
    - Dst: openssl_add_all_digests_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 179
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - openssl_add_all_digests_int
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(ossl_init_add_all_digests)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(ossl_init_no_add_algs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:193,1
    - Dst: openssl_config_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 200
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - openssl_config_int
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(ossl_init_config)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:204,1
    - Dst: openssl_no_config_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 210
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - openssl_no_config_int
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(ossl_init_no_config)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:217,1
    - Dst: async_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 223
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 223
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - async_init
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(ossl_init_async)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:230,1
    - Dst: engine_load_openssl_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 235
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 235
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - engine_load_openssl_int
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(ossl_init_engine_openssl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:242,1
    - Dst: engine_load_cryptodev_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 247
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 247
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - engine_load_cryptodev_int
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(ossl_init_engine_cryptodev)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:255,1
    - Dst: engine_load_rdrand_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 260
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - engine_load_rdrand_int
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(ossl_init_engine_rdrand)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:266,1
    - Dst: engine_load_dynamic_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 271
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 271
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - engine_load_dynamic_int
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(ossl_init_engine_dynamic)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:278,1
    - Dst: engine_load_padlock_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 283
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 283
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - engine_load_padlock_int
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(ossl_init_engine_padlock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:290,1
    - Dst: engine_load_capi_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 287
    functionDepth: 4
    functionLinenumber: 287
    functionLinenumberEnd: 295
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - engine_load_capi_int
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(ossl_init_engine_capi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:302,1
    - Dst: engine_load_afalg_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 307
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 307
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    - engine_load_afalg_int
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(ossl_init_engine_afalg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 321
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(ossl_init_zlib)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:332,1
    - Dst: ASYNC_cleanup_thread
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:335,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:340,1
    - Dst: err_delete_thread_state
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:343,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:346,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - locals
    argTypes:
    - struct thread_local_inits_st*
    constantsTouched: []
    func_position:
      end: 347
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 347
    functionName: ossl_init_thread_stop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 1
    functionsReached:
    - fprintf
    - OPENSSL_free
    - err_delete_thread_state
    - ASYNC_cleanup_thread
    linkageType: ''
    returnType: void
    signature: ossl_init_thread_stop(struct thread_local_inits_st *locals)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ossl_init_thread_stop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:351,1
    - Dst: ossl_init_get_thread_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 353
    functionName: OPENSSL_thread_stop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 1
    functionsReached:
    - ossl_init_get_thread_local
    - ossl_init_thread_stop
    linkageType: ''
    returnType: void
    signature: OPENSSL_thread_stop(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ossl_init_get_thread_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:357,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:364,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:372,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - opts
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 379
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 379
    functionName: ossl_init_thread_start
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 0
    functionsReached:
    - ossl_init_get_thread_local
    - fprintf
    linkageType: ''
    returnType: int
    signature: ossl_init_thread_start(uint64_t opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ossl_init_thread_stop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:398,1
    - Dst: ossl_init_get_thread_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:398,1
    - Dst: OPENSSL_INIT_STOP*::handler
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:402,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:405,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:409,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:419,1
    - Dst: comp_zlib_cleanup_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:422,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:428,1
    - Dst: async_deinit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:431,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:436,1
    - Dst: err_free_strings_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:439,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:442,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:445,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:447,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:450,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:453,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:455,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:457,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:459,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:461,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:463,1
    - Dst: rand_cleanup_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:477,1
    - Dst: conf_modules_free_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:478,1
    - Dst: engine_cleanup_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:480,1
    - Dst: crypto_cleanup_all_ex_data_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:482,1
    - Dst: bio_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:483,1
    - Dst: evp_cleanup_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:484,1
    - Dst: obj_cleanup_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:485,1
    - Dst: err_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:486,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 489
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 489
    functionName: OPENSSL_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 0
    functionsReached:
    - err_free_strings_int
    - ossl_init_get_thread_local
    - obj_cleanup_int
    - engine_cleanup_int
    - evp_cleanup_int
    - ossl_init_thread_stop
    - async_deinit
    - comp_zlib_cleanup_int
    - CRYPTO_THREAD_cleanup_local
    - rand_cleanup_int
    - conf_modules_free_int
    - err_cleanup
    - OPENSSL_INIT_STOP*::handler
    - crypto_cleanup_all_ex_data_int
    - fprintf
    - OPENSSL_free
    - CRYPTO_THREAD_lock_free
    - bio_cleanup
    linkageType: ''
    returnType: void
    signature: OPENSSL_cleanup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:508,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:513,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:517,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:522,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:526,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:530,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:534,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:538,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:542,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:547,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:549,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:550,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:556,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:561,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:566,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:571,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:575,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:580,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:585,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:590,1
    - Dst: ENGINE_register_all_complete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:597,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:603,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 54
    argCount: 2
    argNames:
    - opts
    - settings
    argTypes:
    - uint64_t
    - OPENSSL_INIT_SETTINGS*
    constantsTouched: []
    func_position:
      end: 608
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 608
    functionName: OPENSSL_init_crypto
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 1
    functionsReached:
    - RUN_ONCE
    - CRYPTOerr
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    - ENGINE_register_all_complete
    linkageType: ''
    returnType: int
    signature: OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleHandleEx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:631,1
    - Dst: DSO_dsobyaddr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:648,1
    - Dst: DSO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:649,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/init.c:655,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 664
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 664
    functionName: OPENSSL_atexit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - DSO_dsobyaddr
    - DSO_free
    - GetModuleHandleEx
    linkageType: ''
    returnType: int
    signature: OPENSSL_atexit(void (*handler)(void))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:93,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:94,1
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:96,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:97,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 104
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - CRYPTO_THREAD_lock_new
    - CRYPTO_THREAD_init_local
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(do_memdbg_init)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: app_info_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:111,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - inf
    argTypes:
    - APP_INFO*
    constantsTouched: []
    func_position:
      end: 114
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 114
    functionName: app_info_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - app_info_free
    linkageType: ''
    returnType: void
    signature: app_info_free(APP_INFO *inf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:124,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:127,1
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:145,1
    - Dst: CRYPTO_THREAD_compare_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:148,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:157,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:164,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:165,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:179,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:185,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 1
    argNames:
    - mode
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 188
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 188
    functionName: CRYPTO_mem_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c
    functionUses: 2
    functionsReached:
    - CRYPTO_THREAD_get_current_id
    - CRYPTO_THREAD_compare_id
    - RUN_ONCE
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: CRYPTO_mem_ctrl(int mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:198,1
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:201,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:202,1
    - Dst: CRYPTO_THREAD_compare_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:205,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 210
    functionName: mem_check_on
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_get_current_id
    - CRYPTO_THREAD_compare_id
    - RUN_ONCE
    - CRYPTO_THREAD_unlock
    - CRYPTO_THREAD_read_lock
    linkageType: ''
    returnType: int
    signature: mem_check_on(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - MEM*
    - MEM*
    constantsTouched: []
    func_position:
      end: 225
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 225
    functionName: mem_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: mem_cmp(const MEM *a, const MEM *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - MEM*
    constantsTouched: []
    func_position:
      end: 235
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 235
    functionName: mem_hash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: mem_hash(const MEM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:242,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:245,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:251,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:253,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:259,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 264
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 264
    functionName: pop_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_set_local
    - OPENSSL_free
    - CRYPTO_THREAD_get_local
    - RUN_ONCE
    linkageType: ''
    returnType: int
    signature: pop_info(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem_check_on
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:271,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:272,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:274,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:275,1
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:278,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:285,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:286,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:292,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - info
    - file
    - line
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 296
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 296
    functionName: CRYPTO_mem_debug_push
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_set_local
    - mem_check_on
    - CRYPTO_THREAD_get_current_id
    - CRYPTO_THREAD_get_local
    - RUN_ONCE
    - CRYPTO_mem_ctrl
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: CRYPTO_mem_debug_push(const char *info, const char *file, int line)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem_check_on
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:302,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:303,1
    - Dst: pop_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:304,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 308
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 308
    functionName: CRYPTO_mem_debug_pop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c
    functionUses: 0
    functionsReached:
    - mem_check_on
    - CRYPTO_mem_ctrl
    - pop_info
    linkageType: ''
    returnType: int
    signature: CRYPTO_mem_debug_pop(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem_check_on
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:325,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:326,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:328,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:329,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:330,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:331,1
    - Dst: lh_MEM_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:335,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:336,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:337,1
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:347,1
    - Dst: backtrace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:355,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:355,1
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:357,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:359,1
    - Dst: lh_MEM_insert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:364,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:369,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:372,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 5
    argNames:
    - addr
    - num
    - before_p
    - file
    - line
    argTypes:
    - void*
    - size_t
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 377
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 377
    functionName: CRYPTO_mem_debug_malloc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c
    functionUses: 1
    functionsReached:
    - mem_check_on
    - CRYPTO_THREAD_get_current_id
    - CRYPTO_THREAD_get_local
    - RUN_ONCE
    - backtrace
    - CRYPTO_mem_ctrl
    - lh_MEM_insert
    - lh_MEM_new
    - OSSL_NELEM
    - OPENSSL_free
    - OPENSSL_malloc
    - time
    linkageType: ''
    returnType: void
    signature: "CRYPTO_mem_debug_malloc(void *addr, size_t num, int before_p,\n                             const
      char *file, int line)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem_check_on
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:389,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:390,1
    - Dst: lh_MEM_delete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:393,1
    - Dst: app_info_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:395,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:396,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:399,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 4
    argNames:
    - addr
    - before_p
    - file
    - line
    argTypes:
    - void*
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 405
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 405
    functionName: CRYPTO_mem_debug_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c
    functionUses: 1
    functionsReached:
    - mem_check_on
    - lh_MEM_delete
    - CRYPTO_mem_ctrl
    - app_info_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: "CRYPTO_mem_debug_free(void *addr, int before_p,\n        const char
      *file, int line)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_mem_debug_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:420,1
    - Dst: mem_check_on
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:424,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:425,1
    - Dst: lh_MEM_delete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:428,1
    - Dst: backtrace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:433,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:433,1
    - Dst: lh_MEM_insert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:435,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:438,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 6
    argNames:
    - addr1
    - addr2
    - num
    - before_p
    - file
    - line
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 443
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 443
    functionName: CRYPTO_mem_debug_realloc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c
    functionUses: 1
    functionsReached:
    - mem_check_on
    - backtrace
    - lh_MEM_delete
    - CRYPTO_mem_ctrl
    - lh_MEM_insert
    - CRYPTO_mem_debug_malloc
    - OSSL_NELEM
    linkageType: ''
    returnType: void
    signature: "CRYPTO_mem_debug_realloc(void *addr1, void *addr2, size_t num,\n                              int
      before_p, const char *file, int line)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: localtime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:471,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:472,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:474,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:476,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:478,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:482,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:483,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:485,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:487,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:489,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:505,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:508,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:512,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:513,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:515,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:518,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:519,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:521,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:523,1
    - Dst: CRYPTO_THREAD_compare_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:527,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:536,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:537,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 2
    argNames:
    - m
    - l
    argTypes:
    - MEM*
    - MEM_LEAK*
    constantsTouched: []
    func_position:
      end: 540
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 540
    functionName: print_leak
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - CRYPTO_THREAD_compare_id
    - BIO_puts
    - OPENSSL_strlcpy
    - memset
    - localtime
    - strlen
    - free
    - memcpy
    - fprintf
    linkageType: ''
    returnType: void
    signature: print_leak(const MEM *m, MEM_LEAK *l)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bio_free_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:552,1
    - Dst: OPENSSL_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:555,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:557,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:560,1
    - Dst: lh_MEM_doall_MEM_LEAK
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:566,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:569,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:579,1
    - Dst: lh_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:588,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:592,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:594,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:597,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:598,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:599,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 604
      start: 544
    functionDepth: 3
    functionLinenumber: 544
    functionLinenumberEnd: 604
    functionName: CRYPTO_mem_leaks
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c
    functionUses: 1
    functionsReached:
    - OPENSSL_cleanup
    - RUN_ONCE
    - bio_free_ex_data
    - lh_MEM_free
    - CRYPTO_THREAD_write_lock
    - CRYPTO_mem_ctrl
    - CRYPTO_THREAD_cleanup_local
    - CRYPTO_THREAD_unlock
    - lh_MEM_doall_MEM_LEAK
    - BIO_printf
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: int
    signature: CRYPTO_mem_leaks(BIO *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:617,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:618,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:618,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:619,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:622,1
    - Dst: CRYPTO_mem_leaks
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:623,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c:624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 626
      start: 607
    functionDepth: 4
    functionLinenumber: 607
    functionLinenumberEnd: 626
    functionName: CRYPTO_mem_leaks_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c
    functionUses: 1
    functionsReached:
    - CRYPTO_mem_leaks
    - CRYPTO_mem_ctrl
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: CRYPTO_mem_leaks_fp(FILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - v1
    - v2
    - n
    argTypes:
    - void*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: OPENSSL_memcmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: OPENSSL_memcmp(const void *v1, const void *v2, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:35,1
    - Dst: CRYPTO_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:36,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - str
    - file
    - line
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 40
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 40
    functionName: CRYPTO_strdup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    - CRYPTO_malloc
    linkageType: ''
    returnType: char
    signature: '*CRYPTO_strdup(const char *str, const char* file, int line)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strnlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:50,1
    - Dst: CRYPTO_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:52,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - str
    - s
    - file
    - line
    argTypes:
    - char*
    - size_t
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 58
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 58
    functionName: CRYPTO_strndup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strnlen
    - memcpy
    - CRYPTO_malloc
    linkageType: ''
    returnType: char
    signature: '*CRYPTO_strndup(const char *str, size_t s, const char* file, int line)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:67,1
    - Dst: CRYPTOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:69,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - data
    - siz
    - file
    - line
    argTypes:
    - void*
    - size_t
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: CRYPTO_memdup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - CRYPTOerr
    - memcpy
    - CRYPTO_malloc
    linkageType: ''
    returnType: void
    signature: '*CRYPTO_memdup(const void *data, size_t siz, const char* file, int
      line)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - str
    - maxlen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: OPENSSL_strnlen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: OPENSSL_strnlen(const char *str, size_t maxlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - dst
    - src
    - size
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 94
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 94
    functionName: OPENSSL_strlcpy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c
    functionUses: 1
    functionsReached:
    - strlen
    linkageType: ''
    returnType: size_t
    signature: OPENSSL_strlcpy(char *dst, const char *src, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - dst
    - src
    - size
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: OPENSSL_strlcat
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strlcpy
    linkageType: ''
    returnType: size_t
    signature: OPENSSL_strlcat(char *dst, const char *src, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    constantsTouched: []
    func_position:
      end: 145
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 145
    functionName: OPENSSL_hexchar2int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: OPENSSL_hexchar2int(unsigned char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:158,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:159,1
    - Dst: CRYPTOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:160,1
    - Dst: CRYPTOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:169,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:171,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:174,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:175,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:177,1
    - Dst: CRYPTOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:178,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - long*
    constantsTouched: []
    func_position:
      end: 187
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 187
    functionName: OPENSSL_hexstr2buf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - OPENSSL_hexchar2int
    - CRYPTOerr
    - strlen
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: unsigned char
    signature: '*OPENSSL_hexstr2buf(const char *str, long *len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:203,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:206,1
    - Dst: CRYPTOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:207,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - buffer
    - len
    argTypes:
    - unsigned char*
    - long
    constantsTouched: []
    func_position:
      end: 222
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 222
    functionName: OPENSSL_buf2hexstr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - CRYPTOerr
    - OPENSSL_malloc
    - ebcdic2ascii
    - OPENSSL_zalloc
    linkageType: ''
    returnType: char
    signature: '*OPENSSL_buf2hexstr(const unsigned char *buffer, long len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strerror_s
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:227,1
    - Dst: strerror_r
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:229,1
    - Dst: strerror_r
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:236,1
    - Dst: strerror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:242,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c:246,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - errnum
    - buf
    - buflen
    argTypes:
    - int
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 250
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 250
    functionName: openssl_strerror_r
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - strerror_r
    - strerror
    - strncpy
    - strerror_s
    linkageType: ''
    returnType: int
    signature: openssl_strerror_r(int errnum, char *buf, size_t buflen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c:20,1
    - Dst: InitializeCriticalSectionAndSpinCount
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c:25,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 31
    functionName: CRYPTO_THREAD_lock_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c
    functionUses: 6
    functionsReached:
    - OPENSSL_free
    - InitializeCriticalSectionAndSpinCount
    - OPENSSL_zalloc
    linkageType: ''
    returnType: CRYPTO_RWLOCK
    signature: '*CRYPTO_THREAD_lock_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnterCriticalSection
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: CRYPTO_THREAD_read_lock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c
    functionUses: 1
    functionsReached:
    - EnterCriticalSection
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnterCriticalSection
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: CRYPTO_THREAD_write_lock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c
    functionUses: 13
    functionsReached:
    - EnterCriticalSection
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LeaveCriticalSection
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: CRYPTO_THREAD_unlock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c
    functionUses: 17
    functionsReached:
    - LeaveCriticalSection
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeleteCriticalSection
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c:56,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: CRYPTO_THREAD_lock_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c
    functionUses: 7
    functionsReached:
    - OPENSSL_free
    - DeleteCriticalSection
    linkageType: ''
    returnType: void
    signature: CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InterlockedCompareExchange
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c:79,1
    - Dst: init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - once
    argTypes:
    - CRYPTO_ONCE*
    constantsTouched: []
    func_position:
      end: 88
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 88
    functionName: CRYPTO_THREAD_run_once
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c
    functionUses: 0
    functionsReached:
    - InterlockedCompareExchange
    - init
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TlsAlloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: CRYPTO_THREAD_init_local
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c
    functionUses: 2
    functionsReached:
    - TlsAlloc
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void (*cleanup)(void
      *))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TlsGetValue
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: CRYPTO_THREAD_get_local
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c
    functionUses: 4
    functionsReached:
    - TlsGetValue
    linkageType: ''
    returnType: void
    signature: '*CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TlsSetValue
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    - void*
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: CRYPTO_THREAD_set_local
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c
    functionUses: 3
    functionsReached:
    - TlsSetValue
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TlsFree
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: CRYPTO_THREAD_cleanup_local
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c
    functionUses: 2
    functionsReached:
    - TlsFree
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_cleanup_local(CRYPTO_THREAD_LOCAL *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadId
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: CRYPTO_THREAD_get_current_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c
    functionUses: 4
    functionsReached:
    - GetCurrentThreadId
    linkageType: ''
    returnType: CRYPTO_THREAD_ID
    signature: CRYPTO_THREAD_get_current_id(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - CRYPTO_THREAD_ID
    - CRYPTO_THREAD_ID
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: CRYPTO_THREAD_compare_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InterlockedExchangeAdd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - val
    - amount
    - ret
    - lock
    argTypes:
    - int*
    - int
    - int*
    - CRYPTO_RWLOCK*
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: CRYPTO_atomic_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c
    functionUses: 0
    functionsReached:
    - InterlockedExchangeAdd
    linkageType: ''
    returnType: int
    signature: CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: siglongjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/s390xcap.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: ill_handler
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/s390xcap.c
    functionUses: 0
    functionsReached:
    - siglongjmp
    linkageType: ''
    returnType: void
    signature: ill_handler(int sig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/s390xcap.c:36,1
    - Dst: sigfillset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/s390xcap.c:38,1
    - Dst: sigdelset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/s390xcap.c:39,1
    - Dst: sigdelset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/s390xcap.c:40,1
    - Dst: sigprocmask
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/s390xcap.c:41,1
    - Dst: sigaction
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/s390xcap.c:42,1
    - Dst: sigsetjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/s390xcap.c:45,1
    - Dst: OPENSSL_s390x_facilities
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/s390xcap.c:46,1
    - Dst: sigaction
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/s390xcap.c:48,1
    - Dst: sigprocmask
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/s390xcap.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 50
    functionName: OPENSSL_cpuid_setup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/s390xcap.c
    functionUses: 2
    functionsReached:
    - sigsetjmp
    - sigprocmask
    - sigdelset
    - sigfillset
    - OPENSSL_s390x_facilities
    - memset
    - sigaction
    linkageType: ''
    returnType: void
    signature: OPENSSL_cpuid_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: issetugid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/uid.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: OPENSSL_issetugid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/uid.c
    functionUses: 0
    functionsReached:
    - issetugid
    linkageType: ''
    returnType: int
    signature: OPENSSL_issetugid(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: OPENSSL_issetugid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/uid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: OPENSSL_issetugid(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/uid.c:36,1
    - Dst: geteuid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/uid.c:36,1
    - Dst: getgid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/uid.c:38,1
    - Dst: getegid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/uid.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: OPENSSL_issetugid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/uid.c
    functionUses: 0
    functionsReached:
    - geteuid
    - getegid
    - getuid
    - getgid
    linkageType: ''
    returnType: int
    signature: OPENSSL_issetugid(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: OpenSSL_version_num
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cversion.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: OpenSSL_version_num(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - t
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 65
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 65
    functionName: OpenSSL_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cversion.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*OpenSSL_version(int t)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:40,1
    - Dst: sscanf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:43,1
    - Dst: strtoul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:44,1
    - Dst: sscanf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:46,1
    - Dst: strtoul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:47,1
    - Dst: OPENSSL_ia32_cpuid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:50,1
    - Dst: OPENSSL_ia32_cpuid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:52,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:55,1
    - Dst: strtoul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:59,1
    - Dst: OPENSSL_ia32_cpuid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:66,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 75
    functionName: OPENSSL_cpuid_setup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c
    functionUses: 2
    functionsReached:
    - sscanf
    - strchr
    - getenv
    - OPENSSL_ia32_cpuid
    - strtoul
    linkageType: ''
    returnType: void
    signature: OPENSSL_cpuid_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: OPENSSL_cpuid_setup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: OPENSSL_cpuid_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleHandle
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:115,1
    - Dst: GetProcAddress
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:117,1
    - Dst: GetProcessWindowStation
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:125,1
    - Dst: GetUserObjectInformationW
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:129,1
    - Dst: GetLastError
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:130,1
    - Dst: alloca
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:136,1
    - Dst: GetUserObjectInformationW
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:137,1
    - Dst: wcsstr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:148,1
    - Dst: wcsstr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:152,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 157
    functionName: OPENSSL_isservice
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c
    functionUses: 1
    functionsReached:
    - GetModuleHandle
    - GetProcessWindowStation
    - GetUserObjectInformationW
    - wcsstr
    - alloca
    - GetLastError
    - GetProcAddress
    linkageType: ''
    returnType: int
    signature: OPENSSL_isservice(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: OPENSSL_isservice
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: OPENSSL_isservice(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetStdHandle
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:173,1
    - Dst: GetFileType
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:174,1
    - Dst: va_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:179,1
    - Dst: _vsnprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:180,1
    - Dst: WriteFile
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:181,1
    - Dst: va_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:182,1
    - Dst: alloca
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:195,1
    - Dst: MultiByteToWideChar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:200,1
    - Dst: va_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:242,1
    - Dst: _vsntprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:243,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:243,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:244,1
    - Dst: _T
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:244,1
    - Dst: va_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:245,1
    - Dst: check_winnt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:249,1
    - Dst: OPENSSL_isservice
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:249,1
    - Dst: RegisterEventSource
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:250,1
    - Dst: _T
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:250,1
    - Dst: ReportEvent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:255,1
    - Dst: OutputDebugString
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:264,1
    - Dst: DeregisterEventSource
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:268,1
    - Dst: MessageBox
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:272,1
    - Dst: _T
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:272,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 1
    argNames:
    - fmta
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 273
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 273
    functionName: OPENSSL_showfatal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c
    functionUses: 0
    functionsReached:
    - GetStdHandle
    - WriteFile
    - va_end
    - GetFileType
    - _vsntprintf
    - MultiByteToWideChar
    - _T
    - va_start
    - RegisterEventSource
    - OPENSSL_isservice
    - OutputDebugString
    - alloca
    - ReportEvent
    - MessageBox
    - OSSL_NELEM
    - _vsnprintf
    - DeregisterEventSource
    - check_winnt
    linkageType: ''
    returnType: void
    signature: OPENSSL_showfatal(const char *fmta, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:280,1
    - Dst: vfprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:281,1
    - Dst: va_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmta
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 284
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 284
    functionName: OPENSSL_showfatal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c
    functionUses: 0
    functionsReached:
    - vfprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: OPENSSL_showfatal(const char *fmta, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: OPENSSL_isservice
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: OPENSSL_isservice(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_showfatal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:294,1
    - Dst: abort
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:297,1
    - Dst: raise
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:303,1
    - Dst: _exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - message
    - file
    - line
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 307
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 307
    functionName: OPENSSL_die
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c
    functionUses: 0
    functionsReached:
    - _exit
    - abort
    - raise
    - OPENSSL_showfatal
    linkageType: ''
    returnType: void
    signature: OPENSSL_die(const char *message, const char *file, int line)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - in_a
    - in_b
    - len
    argTypes:
    - void*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 340
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 340
    functionName: CRYPTO_memcmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "CRYPTO_memcmp(const volatile void * volatile in_a,\n                  const
      volatile void * volatile in_b,\n                  size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 20
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 20
    functionName: RC4_options
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_skey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*RC4_options(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SK_LOOP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_skey.c:53,1
    - Dst: SK_LOOP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_skey.c:54,1
    - Dst: SK_LOOP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_skey.c:55,1
    - Dst: SK_LOOP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_skey.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - key
    - len
    - data
    argTypes:
    - RC4_KEY*
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 58
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 58
    functionName: RC4_set_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_skey.c
    functionUses: 0
    functionsReached:
    - SK_LOOP
    linkageType: ''
    returnType: void
    signature: RC4_set_key(RC4_KEY *key, int len, const unsigned char *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOOP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_enc.c:44,1
    - Dst: LOOP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_enc.c:45,1
    - Dst: LOOP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_enc.c:46,1
    - Dst: LOOP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_enc.c:47,1
    - Dst: LOOP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_enc.c:48,1
    - Dst: LOOP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_enc.c:49,1
    - Dst: LOOP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_enc.c:50,1
    - Dst: LOOP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_enc.c:51,1
    - Dst: LOOP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_enc.c:61,1
    - Dst: LOOP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_enc.c:64,1
    - Dst: LOOP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_enc.c:67,1
    - Dst: LOOP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_enc.c:70,1
    - Dst: LOOP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_enc.c:73,1
    - Dst: LOOP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_enc.c:76,1
    - Dst: LOOP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_enc.c:79,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 4
    argNames:
    - key
    - len
    - indata
    - outdata
    argTypes:
    - RC4_KEY*
    - size_t
    - unsigned char*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 86
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 86
    functionName: RC4
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_enc.c
    functionUses: 0
    functionsReached:
    - LOOP
    linkageType: ''
    returnType: void
    signature: "RC4(RC4_KEY *key, size_t len, const unsigned char *indata,\n         unsigned
      char *outdata)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - counter
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 30
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 30
    functionName: ctr128_inc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ctr128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ctr128_inc(unsigned char *counter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ctr128_inc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ctr128.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - counter
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 57
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 57
    functionName: ctr128_inc_aligned
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ctr128.c
    functionUses: 0
    functionsReached:
    - ctr128_inc
    linkageType: ''
    returnType: void
    signature: ctr128_inc_aligned(unsigned char *counter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ctr128_inc_aligned
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ctr128.c:98,1
    - Dst: ctr128_inc_aligned
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ctr128.c:109,1
    - Dst: ctr128_inc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ctr128.c:124,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 8
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - ecount_buf
    - num
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - unsigned char[]
    - unsigned int*
    - block128_f
    constantsTouched: []
    func_position:
      end: 132
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 132
    functionName: CRYPTO_ctr128_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ctr128.c
    functionUses: 0
    functionsReached:
    - ctr128_inc
    - ctr128_inc_aligned
    linkageType: ''
    returnType: void
    signature: "CRYPTO_ctr128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                          size_t len, const void *key,\n                           unsigned
      char ivec[16],\n                           unsigned char ecount_buf[16], unsigned
      int *num,\n                           block128_f block)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - counter
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 145
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 145
    functionName: ctr96_inc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ctr128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ctr96_inc(unsigned char *counter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ctr128.c:163,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ctr128.c:186,1
    - Dst: ctr96_inc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ctr128.c:189,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ctr128.c:196,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ctr128.c:199,1
    - Dst: ctr96_inc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ctr128.c:201,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 8
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - ecount_buf
    - num
    - func
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - unsigned char[]
    - unsigned int*
    - ctr128_f
    constantsTouched: []
    func_position:
      end: 209
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 209
    functionName: CRYPTO_ctr128_encrypt_ctr32
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ctr128.c
    functionUses: 1
    functionsReached:
    - GETU32
    - ctr96_inc
    - memset
    - PUTU32
    linkageType: ''
    returnType: void
    signature: "CRYPTO_ctr128_encrypt_ctr32(const unsigned char *in, unsigned char
      *out,\n                                 size_t len, const void *key,\n                                 unsigned
      char ivec[16],\n                                 unsigned char ecount_buf[16],\n
      \                                unsigned int *num, ctr128_f func)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:59,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:63,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:68,1
    - Dst: block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:69,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:76,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:79,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 6
    argNames:
    - key
    - iv
    - out
    - in
    - inlen
    - block
    argTypes:
    - void*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - size_t
    - block128_f
    constantsTouched: []
    func_position:
      end: 81
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 81
    functionName: CRYPTO_128_wrap
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memmove
    - block
    linkageType: ''
    returnType: size_t
    signature: "CRYPTO_128_wrap(void *key, const unsigned char *iv,\n                       unsigned
      char *out,\n                       const unsigned char *in, size_t inlen,\n
      \                      block128_f block)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:111,1
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:112,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:122,1
    - Dst: block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:123,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:124,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:127,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 6
    argNames:
    - key
    - iv
    - out
    - in
    - inlen
    - block
    argTypes:
    - void*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - size_t
    - block128_f
    constantsTouched: []
    func_position:
      end: 129
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 129
    functionName: crypto_128_unwrap_raw
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memmove
    - block
    linkageType: ''
    returnType: size_t
    signature: "crypto_128_unwrap_raw(void *key, unsigned char *iv,\n                                    unsigned
      char *out,\n                                    const unsigned char *in, size_t
      inlen,\n                                    block128_f block)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crypto_128_unwrap_raw
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:157,1
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:163,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - key
    - iv
    - out
    - in
    - inlen
    - block
    argTypes:
    - void*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - size_t
    - block128_f
    constantsTouched: []
    func_position:
      end: 168
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 168
    functionName: CRYPTO_128_unwrap
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c
    functionUses: 0
    functionsReached:
    - crypto_128_unwrap_raw
    - CRYPTO_memcmp
    - OPENSSL_cleanse
    linkageType: ''
    returnType: size_t
    signature: "CRYPTO_128_unwrap(void *key, const unsigned char *iv,\n                         unsigned
      char *out, const unsigned char *in,\n                         size_t inlen,
      block128_f block)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:207,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:209,1
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:222,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:223,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:224,1
    - Dst: block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:225,1
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:228,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:229,1
    - Dst: CRYPTO_128_wrap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 6
    argNames:
    - key
    - icv
    - out
    - in
    - inlen
    - block
    argTypes:
    - void*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - size_t
    - block128_f
    constantsTouched: []
    func_position:
      end: 234
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 234
    functionName: CRYPTO_128_wrap_pad
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c
    functionUses: 0
    functionsReached:
    - memmove
    - CRYPTO_128_wrap
    - memset
    - memcpy
    - block
    linkageType: ''
    returnType: size_t
    signature: "CRYPTO_128_wrap_pad(void *key, const unsigned char *icv,\n                           unsigned
      char *out,\n                           const unsigned char *in, size_t inlen,\n
      \                          block128_f block)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:270,1
    - Dst: block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:278,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:279,1
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:281,1
    - Dst: crypto_128_unwrap_raw
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:285,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:287,1
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:297,1
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:298,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:299,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:313,1
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:322,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c:323,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 6
    argNames:
    - key
    - icv
    - out
    - in
    - inlen
    - block
    argTypes:
    - void*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - size_t
    - block128_f
    constantsTouched: []
    func_position:
      end: 329
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 329
    functionName: CRYPTO_128_unwrap_pad
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c
    functionUses: 0
    functionsReached:
    - memmove
    - CRYPTO_memcmp
    - memcpy
    - OPENSSL_cleanse
    - crypto_128_unwrap_raw
    - block
    linkageType: ''
    returnType: size_t
    signature: "CRYPTO_128_unwrap_pad(void *key, const unsigned char *icv,\n                             unsigned
      char *out,\n                             const unsigned char *in, size_t inlen,\n
      \                            block128_f block)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - M
    - L
    - key
    - block
    argTypes:
    - CCM128_CONTEXT*
    - unsigned int
    - unsigned int
    - void*
    - block128_f
    constantsTouched: []
    func_position:
      end: 27
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 27
    functionName: CRYPTO_ccm128_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "CRYPTO_ccm128_init(CCM128_CONTEXT *ctx,\n                        unsigned
      int M, unsigned int L, void *key,\n                        block128_f block)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - nonce
    - nlen
    - mlen
    argTypes:
    - CCM128_CONTEXT*
    - unsigned char*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 57
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 57
    functionName: CRYPTO_ccm128_setiv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "CRYPTO_ccm128_setiv(CCM128_CONTEXT *ctx,\n                        const
      unsigned char *nonce, size_t nlen, size_t mlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 3
    argNames:
    - ctx
    - aad
    - alen
    argTypes:
    - CCM128_CONTEXT*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 105
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 105
    functionName: CRYPTO_ccm128_aad
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "CRYPTO_ccm128_aad(CCM128_CONTEXT *ctx,\n                       const
      unsigned char *aad, size_t alen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - counter
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 127
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 127
    functionName: ctr64_inc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ctr64_inc(unsigned char *counter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c:159,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c:169,1
    - Dst: ctr64_inc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c:178,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c:182,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 4
    argNames:
    - ctx
    - inp
    - out
    - len
    argTypes:
    - CCM128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 211
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 211
    functionName: CRYPTO_ccm128_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ctr64_inc
    - U64
    linkageType: ''
    returnType: int
    signature: "CRYPTO_ccm128_encrypt(CCM128_CONTEXT *ctx,\n                          const
      unsigned char *inp, unsigned char *out,\n                          size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ctr64_inc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c:250,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c:252,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c:255,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 4
    argNames:
    - ctx
    - inp
    - out
    - len
    argTypes:
    - CCM128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 284
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 284
    functionName: CRYPTO_ccm128_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ctr64_inc
    linkageType: ''
    returnType: int
    signature: "CRYPTO_ccm128_decrypt(CCM128_CONTEXT *ctx,\n                          const
      unsigned char *inp, unsigned char *out,\n                          size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - counter
    - inc
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 298
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 298
    functionName: ctr64_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ctr64_add(unsigned char *counter, size_t inc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c:330,1
    - Dst: ctr64_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c:340,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 5
    argNames:
    - ctx
    - inp
    - out
    - len
    - stream
    argTypes:
    - CCM128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    - ccm128_f
    constantsTouched: []
    func_position:
      end: 362
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 362
    functionName: CRYPTO_ccm128_encrypt_ccm64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached:
    - ctr64_add
    - U64
    linkageType: ''
    returnType: int
    signature: "CRYPTO_ccm128_encrypt_ccm64(CCM128_CONTEXT *ctx,\n                                const
      unsigned char *inp, unsigned char *out,\n                                size_t
      len, ccm128_f stream)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ctr64_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c:400,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 5
    argNames:
    - ctx
    - inp
    - out
    - len
    - stream
    argTypes:
    - CCM128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    - ccm128_f
    constantsTouched: []
    func_position:
      end: 420
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 420
    functionName: CRYPTO_ccm128_decrypt_ccm64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached:
    - ctr64_add
    linkageType: ''
    returnType: int
    signature: "CRYPTO_ccm128_decrypt_ccm64(CCM128_CONTEXT *ctx,\n                                const
      unsigned char *inp, unsigned char *out,\n                                size_t
      len, ccm128_f stream)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - tag
    - len
    argTypes:
    - CCM128_CONTEXT*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 432
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 432
    functionName: CRYPTO_ccm128_tag
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: CRYPTO_ccm128_tag(CCM128_CONTEXT *ctx, unsigned char *tag, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cbc128.c:63,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - block128_f
    constantsTouched: []
    func_position:
      end: 64
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 64
    functionName: CRYPTO_cbc128_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cbc128.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "CRYPTO_cbc128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                          size_t len, const void *key,\n                           unsigned
      char ivec[16], block128_f block)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cbc128.c:104,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 69
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - block128_f
    constantsTouched: []
    func_position:
      end: 155
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 155
    functionName: CRYPTO_cbc128_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cbc128.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "CRYPTO_cbc128_decrypt(const unsigned char *in, unsigned char *out,\n
      \                          size_t len, const void *key,\n                           unsigned
      char ivec[16], block128_f block)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:42,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:50,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - block128_f
    constantsTouched: []
    func_position:
      end: 54
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 54
    functionName: CRYPTO_cts128_encrypt_block
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - memcpy
    - CRYPTO_cbc128_encrypt
    linkageType: ''
    returnType: size_t
    signature: "CRYPTO_cts128_encrypt_block(const unsigned char *in,\n                                   unsigned
      char *out, size_t len,\n                                   const void *key,
      unsigned char ivec[16],\n                                   block128_f block)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:71,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - block128_f
    constantsTouched: []
    func_position:
      end: 85
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 85
    functionName: CRYPTO_nistcts128_encrypt_block
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - memcpy
    - CRYPTO_cbc128_encrypt
    linkageType: ''
    returnType: size_t
    signature: "CRYPTO_nistcts128_encrypt_block(const unsigned char *in,\n                                       unsigned
      char *out, size_t len,\n                                       const void *key,\n
      \                                      unsigned char ivec[16],\n                                       block128_f
      block)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:111,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:113,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:115,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:116,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - cbc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - cbc128_f
    constantsTouched: []
    func_position:
      end: 121
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 121
    functionName: CRYPTO_cts128_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: size_t
    signature: "CRYPTO_cts128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                            size_t len, const void *key,\n                             unsigned
      char ivec[16], cbc128_f cbc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:151,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - cbc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - cbc128_f
    constantsTouched: []
    func_position:
      end: 156
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 156
    functionName: CRYPTO_nistcts128_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: size_t
    signature: "CRYPTO_nistcts128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                                size_t len, const void *key,\n                                 unsigned
      char ivec[16], cbc128_f cbc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:178,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:185,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:186,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - block128_f
    constantsTouched: []
    func_position:
      end: 198
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 198
    functionName: CRYPTO_cts128_decrypt_block
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cbc128_decrypt
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "CRYPTO_cts128_decrypt_block(const unsigned char *in,\n                                   unsigned
      char *out, size_t len,\n                                   const void *key,
      unsigned char ivec[16],\n                                   block128_f block)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:218,1
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:225,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:232,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:233,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - block128_f
    constantsTouched: []
    func_position:
      end: 246
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 246
    functionName: CRYPTO_nistcts128_decrypt_block
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cbc128_decrypt
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "CRYPTO_nistcts128_decrypt_block(const unsigned char *in,\n                                       unsigned
      char *out, size_t len,\n                                       const void *key,\n
      \                                      unsigned char ivec[16],\n                                       block128_f
      block)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:272,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:278,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - cbc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - cbc128_f
    constantsTouched: []
    func_position:
      end: 286
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 286
    functionName: CRYPTO_cts128_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: size_t
    signature: "CRYPTO_cts128_decrypt(const unsigned char *in, unsigned char *out,\n
      \                            size_t len, const void *key,\n                             unsigned
      char ivec[16], cbc128_f cbc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:316,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:322,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - cbc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - cbc128_f
    constantsTouched: []
    func_position:
      end: 330
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 330
    functionName: CRYPTO_nistcts128_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: size_t
    signature: "CRYPTO_nistcts128_decrypt(const unsigned char *in, unsigned char *out,\n
      \                                size_t len, const void *key,\n                                 unsigned
      char ivec[16], cbc128_f cbc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:401,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:402,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:409,1
    - Dst: CRYPTO_cts128_encrypt_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:410,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:412,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:413,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:413,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:414,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:415,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:415,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:418,1
    - Dst: CRYPTO_cts128_decrypt_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:419,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:421,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:422,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:422,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:423,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:424,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:424,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:427,1
    - Dst: CRYPTO_cts128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:428,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:430,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:431,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:431,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:432,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:433,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:433,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:436,1
    - Dst: CRYPTO_cts128_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:437,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:439,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:440,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:440,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:441,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:442,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:442,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - vector
    - len
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 443
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 443
    functionName: test_vector
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cts128_decrypt_block
    - fprintf
    - memcmp
    - CRYPTO_cts128_encrypt_block
    - exit
    - printf
    - memcpy
    - CRYPTO_cts128_encrypt
    - CRYPTO_cts128_decrypt
    - fflush
    linkageType: ''
    returnType: void
    signature: test_vector(const unsigned char *vector, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:451,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:452,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:458,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:460,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:461,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:466,1
    - Dst: CRYPTO_nistcts128_encrypt_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:467,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:469,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:470,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:470,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:471,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:472,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:472,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:475,1
    - Dst: CRYPTO_nistcts128_decrypt_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:476,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:478,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:479,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:479,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:480,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:481,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:481,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:484,1
    - Dst: CRYPTO_nistcts128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:485,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:487,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:488,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:488,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:489,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:490,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:490,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:493,1
    - Dst: CRYPTO_nistcts128_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:494,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:496,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:497,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:497,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:498,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:499,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:499,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - vector
    - len
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 500
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 500
    functionName: test_nistvector
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - fprintf
    - memcmp
    - exit
    - CRYPTO_nistcts128_encrypt
    - CRYPTO_nistcts128_decrypt
    - CRYPTO_nistcts128_encrypt_block
    - printf
    - memcpy
    - CRYPTO_nistcts128_decrypt_block
    - fflush
    linkageType: ''
    returnType: void
    signature: test_nistvector(const unsigned char *vector, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:504,1
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:505,1
    - Dst: test_vector
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:507,1
    - Dst: test_vector
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:508,1
    - Dst: test_vector
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:509,1
    - Dst: test_vector
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:510,1
    - Dst: test_vector
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:511,1
    - Dst: test_vector
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:512,1
    - Dst: test_nistvector
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:514,1
    - Dst: test_nistvector
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:515,1
    - Dst: test_nistvector
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:516,1
    - Dst: test_nistvector
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:517,1
    - Dst: test_nistvector
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:518,1
    - Dst: test_nistvector
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 522
      start: 502
    functionDepth: 3
    functionLinenumber: 502
    functionLinenumberEnd: 522
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c
    functionUses: 22
    functionsReached:
    - test_vector
    - AES_set_decrypt_key
    - test_nistvector
    - AES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: REDUCE1BIT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - Htable
    - H
    argTypes:
    - u128[]
    - u64[]
    constantsTouched: []
    func_position:
      end: 94
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 94
    functionName: gcm_init_8bit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - REDUCE1BIT
    linkageType: ''
    returnType: void
    signature: gcm_init_8bit(u128 Htable[256], u64 H[2])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BSWAP8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:192,1
    - Dst: BSWAP8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:193,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:198,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:200,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:202,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:204,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - Xi
    - Htable
    argTypes:
    - u64[]
    - u128[]
    constantsTouched: []
    func_position:
      end: 210
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 210
    functionName: gcm_gmult_8bit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - BSWAP8
    - PUTU32
    linkageType: ''
    returnType: void
    signature: gcm_gmult_8bit(u64 Xi[2], const u128 Htable[256])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: REDUCE1BIT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:230,1
    - Dst: REDUCE1BIT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:244,1
    - Dst: REDUCE1BIT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:246,1
    - Dst: REDUCE1BIT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:248,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 2
    argNames:
    - Htable
    - H
    argTypes:
    - u128[]
    - u64[]
    constantsTouched: []
    func_position:
      end: 288
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 288
    functionName: gcm_init_4bit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - REDUCE1BIT
    linkageType: ''
    returnType: void
    signature: gcm_init_4bit(u128 Htable[16], u64 H[2])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BSWAP8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:348,1
    - Dst: BSWAP8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:349,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:354,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:356,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:358,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:360,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 44
    argCount: 2
    argNames:
    - Xi
    - Htable
    argTypes:
    - u64[]
    - u128[]
    constantsTouched: []
    func_position:
      end: 366
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 366
    functionName: gcm_gmult_4bit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - BSWAP8
    - PUTU32
    linkageType: ''
    returnType: void
    signature: gcm_gmult_4bit(u64 Xi[2], const u128 Htable[16])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BSWAP8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:584,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:587,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:587,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:591,1
    - Dst: REDUCE1BIT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:601,1
    - Dst: BSWAP8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:607,1
    - Dst: BSWAP8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:608,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:613,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:615,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:617,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:619,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 2
    argNames:
    - Xi
    - H
    argTypes:
    - u64[]
    - u64[]
    constantsTouched: []
    func_position:
      end: 625
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 625
    functionName: gcm_gmult_1bit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - BSWAP8
    - GETU32
    - REDUCE1BIT
    - PUTU32
    linkageType: ''
    returnType: void
    signature: gcm_gmult_1bit(u64 Xi[2], const u64 H[2])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:850,1
    - Dst: GCM_MUL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:860,1
    - Dst: GCM_MUL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:867,1
    - Dst: BSWAP8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:872,1
    - Dst: GCM_MUL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:886,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:890,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:892,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:902,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:904,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 51
    argCount: 3
    argNames:
    - ctx
    - iv
    - len
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 908
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 908
    functionName: CRYPTO_gcm128_setiv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - BSWAP4
    - PUTU32
    - memcpy
    - GCM_MUL
    - BSWAP8
    - GETU32
    linkageType: ''
    returnType: void
    signature: "CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const unsigned char *iv,\n
      \                        size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:928,1
    - Dst: GCM_MUL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:940,1
    - Dst: GHASH
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:948,1
    - Dst: GCM_MUL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:956,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 3
    argNames:
    - ctx
    - aad
    - len
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 969
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 969
    functionName: CRYPTO_gcm128_aad
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - GCM_MUL
    - U64
    - GHASH
    linkageType: ''
    returnType: int
    signature: "CRYPTO_gcm128_aad(GCM128_CONTEXT *ctx, const unsigned char *aad,\n
      \                     size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:993,1
    - Dst: GCM_MUL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:999,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1005,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1007,1
    - Dst: GCM_MUL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1023,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1046,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1048,1
    - Dst: GHASH
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1058,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1073,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1075,1
    - Dst: GHASH
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1085,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1096,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1098,1
    - Dst: GCM_MUL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1104,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1115,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1117,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1138,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1140,1
    - Dst: GCM_MUL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1148,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 109
    argCount: 4
    argNames:
    - ctx
    - in
    - out
    - len
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1153
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 1153
    functionName: CRYPTO_gcm128_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - PUTU32
    - BSWAP4
    - U64
    - GHASH
    - GCM_MUL
    - GETU32
    linkageType: ''
    returnType: int
    signature: "CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx,\n                          const
      unsigned char *in, unsigned char *out,\n                          size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1177,1
    - Dst: GCM_MUL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1183,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1189,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1191,1
    - Dst: GCM_MUL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1209,1
    - Dst: GHASH
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1224,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1233,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1235,1
    - Dst: GHASH
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1249,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1258,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1260,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1280,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1282,1
    - Dst: GCM_MUL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1291,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1302,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1304,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1328,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1330,1
    - Dst: GCM_MUL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1340,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 115
    argCount: 4
    argNames:
    - ctx
    - in
    - out
    - len
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1345
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1345
    functionName: CRYPTO_gcm128_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - BSWAP4
    - U64
    - GHASH
    - PUTU32
    - GCM_MUL
    - GETU32
    linkageType: ''
    returnType: int
    signature: "CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx,\n                          const
      unsigned char *in, unsigned char *out,\n                          size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1352,1
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1371,1
    - Dst: GCM_MUL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1377,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1383,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1385,1
    - Dst: GCM_MUL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1398,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1410,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1412,1
    - Dst: GHASH
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1416,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1429,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1431,1
    - Dst: GHASH
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1438,1
    - Dst: GCM_MUL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1444,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1454,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1456,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 71
    argCount: 5
    argNames:
    - ctx
    - in
    - out
    - len
    - stream
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    - ctr128_f
    constantsTouched: []
    func_position:
      end: 1469
      start: 1347
    functionDepth: 1
    functionLinenumber: 1347
    functionLinenumberEnd: 1469
    functionName: CRYPTO_gcm128_encrypt_ctr32
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - BSWAP4
    - U64
    - PUTU32
    - GHASH
    - GCM_MUL
    - CRYPTO_gcm128_encrypt
    - GETU32
    linkageType: ''
    returnType: int
    signature: "CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx,\n                                const
      unsigned char *in, unsigned char *out,\n                                size_t
      len, ctr128_f stream)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1476,1
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1495,1
    - Dst: GCM_MUL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1501,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1507,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1509,1
    - Dst: GCM_MUL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1524,1
    - Dst: GHASH
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1532,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1537,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1539,1
    - Dst: GHASH
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1552,1
    - Dst: GCM_MUL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1558,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1568,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1570,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1583,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1585,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 75
    argCount: 5
    argNames:
    - ctx
    - in
    - out
    - len
    - stream
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    - ctr128_f
    constantsTouched: []
    func_position:
      end: 1600
      start: 1471
    functionDepth: 1
    functionLinenumber: 1471
    functionLinenumberEnd: 1600
    functionName: CRYPTO_gcm128_decrypt_ctr32
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - BSWAP4
    - U64
    - GHASH
    - PUTU32
    - GCM_MUL
    - GETU32
    - CRYPTO_gcm128_decrypt
    linkageType: ''
    returnType: int
    signature: "CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx,\n                                const
      unsigned char *in, unsigned char *out,\n                                size_t
      len, ctr128_f stream)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GCM_MUL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1616,1
    - Dst: BSWAP8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1620,1
    - Dst: BSWAP8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1621,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1628,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1628,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1629,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1629,1
    - Dst: GCM_MUL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1635,1
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1641,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - ctx
    - tag
    - len
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1644
      start: 1602
    functionDepth: 1
    functionLinenumber: 1602
    functionLinenumberEnd: 1644
    functionName: CRYPTO_gcm128_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - BSWAP8
    - GETU32
    - CRYPTO_memcmp
    - GCM_MUL
    linkageType: ''
    returnType: int
    signature: "CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx, const unsigned char *tag,\n
      \                        size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_gcm128_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1648,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - tag
    - len
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1651
      start: 1646
    functionDepth: 2
    functionLinenumber: 1646
    functionLinenumberEnd: 1651
    functionName: CRYPTO_gcm128_tag
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - memcpy
    - CRYPTO_gcm128_finish
    linkageType: ''
    returnType: void
    signature: CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1657,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - block
    argTypes:
    - void*
    - block128_f
    constantsTouched: []
    func_position:
      end: 1661
      start: 1653
    functionDepth: 0
    functionLinenumber: 1653
    functionLinenumberEnd: 1661
    functionName: CRYPTO_gcm128_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - CRYPTO_gcm128_init
    linkageType: ''
    returnType: GCM128_CONTEXT
    signature: '*CRYPTO_gcm128_new(void *key, block128_f block)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:1665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - GCM128_CONTEXT*
    constantsTouched: []
    func_position:
      end: 1666
      start: 1663
    functionDepth: 0
    functionLinenumber: 1663
    functionLinenumberEnd: 1666
    functionName: CRYPTO_gcm128_release
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    linkageType: ''
    returnType: void
    signature: CRYPTO_gcm128_release(GCM128_CONTEXT *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2232,1
    - Dst: TEST_CASE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2233,1
    - Dst: TEST_CASE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2234,1
    - Dst: TEST_CASE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2235,1
    - Dst: TEST_CASE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2236,1
    - Dst: TEST_CASE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2237,1
    - Dst: TEST_CASE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2238,1
    - Dst: TEST_CASE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2239,1
    - Dst: TEST_CASE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2240,1
    - Dst: TEST_CASE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2241,1
    - Dst: TEST_CASE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2242,1
    - Dst: TEST_CASE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2243,1
    - Dst: TEST_CASE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2244,1
    - Dst: TEST_CASE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2245,1
    - Dst: TEST_CASE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2246,1
    - Dst: TEST_CASE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2247,1
    - Dst: TEST_CASE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2248,1
    - Dst: TEST_CASE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2249,1
    - Dst: TEST_CASE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2250,1
    - Dst: TEST_CASE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2251,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2262,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2263,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2264,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2266,1
    - Dst: OPENSSL_rdtsc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2267,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2268,1
    - Dst: OPENSSL_rdtsc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2269,1
    - Dst: CRYPTO_ctr128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2271,1
    - Dst: OPENSSL_rdtsc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2274,1
    - Dst: CRYPTO_ctr128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2275,1
    - Dst: OPENSSL_rdtsc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2278,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2280,1
    - Dst: GHASH
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2289,1
    - Dst: OPENSSL_rdtsc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2290,1
    - Dst: GHASH
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2292,1
    - Dst: OPENSSL_rdtsc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2293,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c:2294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2301
      start: 2226
    functionDepth: 3
    functionLinenumber: 2226
    functionLinenumberEnd: 2301
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c
    functionUses: 22
    functionsReached:
    - CRYPTO_gcm128_init
    - CRYPTO_ctr128_encrypt
    - TEST_CASE
    - GHASH
    - OPENSSL_rdtsc
    - CRYPTO_gcm128_setiv
    - printf
    - CRYPTO_gcm128_encrypt
    - AES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 36
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 36
    functionName: ocb_ntz
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: ocb_ntz(u64 n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - in
    - shift
    - out
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 61
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 61
    functionName: ocb_block_lshift
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "ocb_block_lshift(const unsigned char *in, size_t shift,\n                             unsigned
      char *out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ocb_block_lshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - OCB_BLOCK*
    - OCB_BLOCK*
    constantsTouched: []
    func_position:
      end: 81
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 81
    functionName: ocb_double
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - ocb_block_lshift
    linkageType: ''
    returnType: void
    signature: ocb_double(OCB_BLOCK *in, OCB_BLOCK *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - in1
    - in2
    - len
    - out
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: ocb_block_xor
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "ocb_block_xor(const unsigned char *in1,\n                          const
      unsigned char *in2, size_t len,\n                          unsigned char *out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:122,1
    - Dst: ocb_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - idx
    argTypes:
    - OCB128_CONTEXT*
    - size_t
    constantsTouched: []
    func_position:
      end: 134
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 134
    functionName: ocb_lookup_l
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - ocb_double
    - OPENSSL_realloc
    linkageType: ''
    returnType: OCB_BLOCK
    signature: '*ocb_lookup_l(OCB128_CONTEXT *ctx, size_t idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:146,1
    - Dst: CRYPTO_ocb128_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:147,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - keyenc
    - keydec
    - encrypt
    - decrypt
    - stream
    argTypes:
    - void*
    - void*
    - block128_f
    - block128_f
    - ocb128_f
    constantsTouched: []
    func_position:
      end: 155
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 155
    functionName: CRYPTO_ocb128_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_malloc
    - CRYPTO_ocb128_init
    linkageType: ''
    returnType: OCB128_CONTEXT
    signature: "*CRYPTO_ocb128_new(void *keyenc, void *keydec,\n                                  block128_f
      encrypt, block128_f decrypt,\n                                  ocb128_f stream)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:164,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:167,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:183,1
    - Dst: ocb_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:186,1
    - Dst: ocb_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:189,1
    - Dst: ocb_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:192,1
    - Dst: ocb_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:193,1
    - Dst: ocb_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:194,1
    - Dst: ocb_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 6
    argNames:
    - ctx
    - keyenc
    - keydec
    - encrypt
    - decrypt
    - stream
    argTypes:
    - OCB128_CONTEXT*
    - void*
    - void*
    - block128_f
    - block128_f
    - ocb128_f
    constantsTouched: []
    func_position:
      end: 199
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 199
    functionName: CRYPTO_ocb128_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c
    functionUses: 1
    functionsReached:
    - ocb_double
    - OPENSSL_malloc
    - OCB128_CONTEXT*::encrypt
    - memset
    linkageType: ''
    returnType: int
    signature: "CRYPTO_ocb128_init(OCB128_CONTEXT *ctx, void *keyenc, void *keydec,\n
      \                      block128_f encrypt, block128_f decrypt,\n                       ocb128_f
      stream)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:207,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:213,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - dest
    - src
    - keyenc
    - keydec
    argTypes:
    - OCB128_CONTEXT*
    - OCB128_CONTEXT*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 219
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 219
    functionName: CRYPTO_ocb128_copy_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "CRYPTO_ocb128_copy_ctx(OCB128_CONTEXT *dest, OCB128_CONTEXT *src,\n
      \                          void *keyenc, void *keydec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:241,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:242,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:246,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:248,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:251,1
    - Dst: ocb_block_xor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:252,1
    - Dst: ocb_block_lshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - ctx
    - iv
    - len
    - taglen
    argTypes:
    - OCB128_CONTEXT*
    - unsigned char*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 266
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 266
    functionName: CRYPTO_ocb128_setiv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - ocb_block_lshift
    - OCB128_CONTEXT*::encrypt
    - memset
    - memcpy
    - ocb_block_xor
    linkageType: ''
    returnType: int
    signature: "CRYPTO_ocb128_setiv(OCB128_CONTEXT *ctx, const unsigned char *iv,\n
      \                       size_t len, size_t taglen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ocb_lookup_l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:290,1
    - Dst: ocb_ntz
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:290,1
    - Dst: ocb_block16_xor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:293,1
    - Dst: ocb_block16_xor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:297,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:298,1
    - Dst: ocb_block16_xor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:299,1
    - Dst: ocb_block16_xor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:310,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:313,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:314,1
    - Dst: ocb_block16_xor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:316,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:319,1
    - Dst: ocb_block16_xor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - ctx
    - aad
    - len
    argTypes:
    - OCB128_CONTEXT*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 326
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 326
    functionName: CRYPTO_ocb128_aad
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - ocb_ntz
    - ocb_block16_xor
    - ocb_lookup_l
    - OCB128_CONTEXT*::encrypt
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: "CRYPTO_ocb128_aad(OCB128_CONTEXT *ctx, const unsigned char *aad,\n
      \                     size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ocb_lookup_l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:359,1
    - Dst: OCB128_CONTEXT*::stream
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:362,1
    - Dst: ocb_lookup_l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:373,1
    - Dst: ocb_ntz
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:373,1
    - Dst: ocb_block16_xor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:376,1
    - Dst: ocb_block16_xor_misaligned
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:381,1
    - Dst: ocb_block16_xor_misaligned
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:383,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:384,1
    - Dst: ocb_block16_xor_misaligned
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:387,1
    - Dst: ocb_block16_xor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:399,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:402,1
    - Dst: ocb_block_xor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:405,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:409,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:410,1
    - Dst: ocb_block16_xor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:412,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - ctx
    - in
    - out
    - len
    argTypes:
    - OCB128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 418
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 418
    functionName: CRYPTO_ocb128_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - OCB128_CONTEXT*::stream
    - ocb_ntz
    - ocb_block16_xor
    - ocb_block16_xor_misaligned
    - ocb_lookup_l
    - OCB128_CONTEXT*::encrypt
    - memset
    - memcpy
    - ocb_block_xor
    linkageType: ''
    returnType: int
    signature: "CRYPTO_ocb128_encrypt(OCB128_CONTEXT *ctx,\n                          const
      unsigned char *in, unsigned char *out,\n                          size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ocb_lookup_l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:451,1
    - Dst: OCB128_CONTEXT*::stream
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:454,1
    - Dst: ocb_lookup_l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:464,1
    - Dst: ocb_ntz
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:464,1
    - Dst: ocb_block16_xor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:467,1
    - Dst: ocb_block16_xor_misaligned
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:472,1
    - Dst: OCB128_CONTEXT*::decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:473,1
    - Dst: ocb_block16_xor_misaligned
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:476,1
    - Dst: ocb_block16_xor_misaligned
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:479,1
    - Dst: ocb_block16_xor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:491,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:494,1
    - Dst: ocb_block_xor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:497,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:501,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:502,1
    - Dst: ocb_block16_xor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:504,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 4
    argNames:
    - ctx
    - in
    - out
    - len
    argTypes:
    - OCB128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 510
      start: 424
    functionDepth: 3
    functionLinenumber: 424
    functionLinenumberEnd: 510
    functionName: CRYPTO_ocb128_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - OCB128_CONTEXT*::decrypt
    - OCB128_CONTEXT*::stream
    - ocb_ntz
    - ocb_block16_xor
    - ocb_block16_xor_misaligned
    - ocb_lookup_l
    - OCB128_CONTEXT*::encrypt
    - memset
    - memcpy
    - ocb_block_xor
    linkageType: ''
    returnType: int
    signature: "CRYPTO_ocb128_decrypt(OCB128_CONTEXT *ctx,\n                          const
      unsigned char *in, unsigned char *out,\n                          size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ocb_block16_xor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:523,1
    - Dst: ocb_block16_xor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:524,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:525,1
    - Dst: ocb_block16_xor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:526,1
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:534,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - tag
    - len
    argTypes:
    - OCB128_CONTEXT*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 537
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 537
    functionName: CRYPTO_ocb128_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - CRYPTO_memcmp
    - OCB128_CONTEXT*::encrypt
    - ocb_block16_xor
    linkageType: ''
    returnType: int
    signature: "CRYPTO_ocb128_finish(OCB128_CONTEXT *ctx, const unsigned char *tag,\n
      \                        size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_ocb128_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:549,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:552,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - tag
    - len
    argTypes:
    - OCB128_CONTEXT*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 555
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 555
    functionName: CRYPTO_ocb128_tag
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ocb128_finish
    - memcpy
    linkageType: ''
    returnType: int
    signature: CRYPTO_ocb128_tag(OCB128_CONTEXT *ctx, unsigned char *tag, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:563,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c:564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OCB128_CONTEXT*
    constantsTouched: []
    func_position:
      end: 566
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 566
    functionName: CRYPTO_ocb128_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: CRYPTO_ocb128_cleanup(OCB128_CONTEXT *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 87
    argCount: 8
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - num
    - enc
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - int*
    - int
    - block128_f
    constantsTouched: []
    func_position:
      end: 131
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 131
    functionName: CRYPTO_cfb128_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cfb128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                          size_t len, const void *key,\n                           unsigned
      char ivec[16], int *num,\n                           int enc, block128_f block)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cfb128.c:150,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cfb128.c:164,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 7
    argNames:
    - in
    - out
    - nbits
    - key
    - ivec
    - enc
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    - void*
    - unsigned char[]
    - int
    - block128_f
    constantsTouched: []
    func_position:
      end: 170
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 170
    functionName: cfbr_encrypt_block
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cfb128.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "cfbr_encrypt_block(const unsigned char *in, unsigned char *out,\n
      \                              int nbits, const void *key,\n                               unsigned
      char ivec[16], int enc,\n                               block128_f block)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cfbr_encrypt_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cfb128.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 8
    argNames:
    - in
    - out
    - bits
    - key
    - ivec
    - num
    - enc
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - int*
    - int
    - block128_f
    constantsTouched: []
    func_position:
      end: 187
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 187
    functionName: CRYPTO_cfb128_1_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cfb128.c
    functionUses: 0
    functionsReached:
    - cfbr_encrypt_block
    linkageType: ''
    returnType: void
    signature: "CRYPTO_cfb128_1_encrypt(const unsigned char *in, unsigned char *out,\n
      \                            size_t bits, const void *key,\n                             unsigned
      char ivec[16], int *num,\n                             int enc, block128_f block)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cfbr_encrypt_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cfb128.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 8
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    - enc
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - int*
    - int
    - block128_f
    constantsTouched: []
    func_position:
      end: 198
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 198
    functionName: CRYPTO_cfb128_8_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cfb128.c
    functionUses: 0
    functionsReached:
    - cfbr_encrypt_block
    linkageType: ''
    returnType: void
    signature: "CRYPTO_cfb128_8_encrypt(const unsigned char *in, unsigned char *out,\n
      \                            size_t length, const void *key,\n                             unsigned
      char ivec[16], int *num,\n                             int enc, block128_f block)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/xts128.c:35,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/xts128.c:44,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/xts128.c:55,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/xts128.c:99,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/xts128.c:127,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/modes/xts128.c:149,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 85
    argCount: 6
    argNames:
    - ctx
    - iv
    - inp
    - out
    - len
    - enc
    argTypes:
    - XTS128_CONTEXT*
    - unsigned char[]
    - unsigned char*
    - unsigned char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 157
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 157
    functionName: CRYPTO_xts128_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/xts128.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx,\n                          const
      unsigned char iv[16],\n                          const unsigned char *inp, unsigned
      char *out,\n                          size_t len, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 7
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - num
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - int*
    - block128_f
    constantsTouched: []
    func_position:
      end: 74
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 74
    functionName: CRYPTO_ofb128_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ofb128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "CRYPTO_ofb128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                          size_t len, const void *key,\n                           unsigned
      char ivec[16], int *num, block128_f block)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: Poly1305_ctx_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: Poly1305_ctx_size ()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: U8TOU32
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: U8TOU32(const unsigned char *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 139
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 139
    functionName: U8TOU64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: U8TOU64(const unsigned char *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - unsigned char*
    - u64
    constantsTouched: []
    func_position:
      end: 152
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 152
    functionName: U64TO8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: U64TO8(unsigned char *p, u64 v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: U8TOU64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:164,1
    - Dst: U8TOU64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - void*
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 166
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 166
    functionName: poly1305_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - U8TOU64
    linkageType: ''
    returnType: void
    signature: poly1305_init(void *ctx, const unsigned char key[16])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: U8TOU64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:188,1
    - Dst: U8TOU64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:189,1
    - Dst: CONSTANT_TIME_CARRY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:213,1
    - Dst: CONSTANT_TIME_CARRY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - inp
    - len
    - padbit
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - u32
    constantsTouched: []
    func_position:
      end: 232
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 232
    functionName: poly1305_blocks
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - U8TOU64
    - CONSTANT_TIME_CARRY
    linkageType: ''
    returnType: void
    signature: poly1305_blocks(void *ctx, const unsigned char *inp, size_t len, u32
      padbit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: U64TO8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:264,1
    - Dst: U64TO8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - mac
    - nonce
    argTypes:
    - void*
    - unsigned char[]
    - u32[]
    constantsTouched: []
    func_position:
      end: 266
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 266
    functionName: poly1305_emit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - U64TO8
    linkageType: ''
    returnType: void
    signature: "poly1305_emit(void *ctx, unsigned char mac[16],\n                          const
      u32 nonce[4])"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 290
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 290
    functionName: U32TO8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: U32TO8(unsigned char *p, unsigned int v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:304,1
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:305,1
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:306,1
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - void*
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 308
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 308
    functionName: poly1305_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - U8TOU32
    linkageType: ''
    returnType: void
    signature: poly1305_init(void *ctx, const unsigned char key[16])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:336,1
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:337,1
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:338,1
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:339,1
    - Dst: CONSTANT_TIME_CARRY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:375,1
    - Dst: CONSTANT_TIME_CARRY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:376,1
    - Dst: CONSTANT_TIME_CARRY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:377,1
    - Dst: CONSTANT_TIME_CARRY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 4
    argNames:
    - ctx
    - inp
    - len
    - padbit
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - u32
    constantsTouched: []
    func_position:
      end: 398
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 398
    functionName: poly1305_blocks
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - U8TOU32
    - CONSTANT_TIME_CARRY
    linkageType: ''
    returnType: void
    signature: poly1305_blocks(void *ctx, const unsigned char *inp, size_t len, u32
      padbit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: U32TO8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:440,1
    - Dst: U32TO8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:441,1
    - Dst: U32TO8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:442,1
    - Dst: U32TO8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 3
    argNames:
    - ctx
    - mac
    - nonce
    argTypes:
    - void*
    - unsigned char[]
    - u32[]
    constantsTouched: []
    func_position:
      end: 444
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 444
    functionName: poly1305_emit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - U32TO8
    linkageType: ''
    returnType: void
    signature: "poly1305_emit(void *ctx, unsigned char mac[16],\n                          const
      u32 nonce[4])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:456,1
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:457,1
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:458,1
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:459,1
    - Dst: poly1305_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:462,1
    - Dst: poly1305_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - POLY1305*
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 478
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 478
    functionName: Poly1305_Init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - poly1305_init
    - U8TOU32
    linkageType: ''
    returnType: void
    signature: Poly1305_Init(POLY1305 *ctx, const unsigned char key[32])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:505,1
    - Dst: poly1305_blocks
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:506,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:511,1
    - Dst: poly1305_blocks
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:521,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:526,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - ctx
    - inp
    - len
    argTypes:
    - POLY1305*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 529
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 529
    functionName: Poly1305_Update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - memcpy
    - poly1305_blocks
    linkageType: ''
    returnType: void
    signature: Poly1305_Update(POLY1305 *ctx, const unsigned char *inp, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: poly1305_blocks
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:543,1
    - Dst: poly1305_emit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:546,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - mac
    argTypes:
    - POLY1305*
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 550
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 550
    functionName: Poly1305_Final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    - poly1305_blocks
    - poly1305_emit
    linkageType: ''
    returnType: void
    signature: Poly1305_Final(POLY1305 *ctx, unsigned char mac[16])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 882
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 882
    functionName: hex_digit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: unsigned char
    signature: hex_digit(char h)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hex_digit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - out
    - hex
    argTypes:
    - unsigned char*
    - char*
    constantsTouched: []
    func_position:
      end: 894
      start: 884
    functionDepth: 1
    functionLinenumber: 884
    functionLinenumberEnd: 894
    functionName: hex_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - hex_digit
    linkageType: ''
    returnType: void
    signature: hex_decode(unsigned char *out, const char *hex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:901,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - a
    - len
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 902
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 902
    functionName: hexdump
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: hexdump(unsigned char *a, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:917,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:918,1
    - Dst: hex_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:923,1
    - Dst: hex_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:924,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:926,1
    - Dst: hex_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:928,1
    - Dst: Poly1305_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:930,1
    - Dst: Poly1305_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:931,1
    - Dst: Poly1305_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:932,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:934,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:935,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:936,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:937,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:938,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:939,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:940,1
    - Dst: Poly1305_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:945,1
    - Dst: Poly1305_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:946,1
    - Dst: Poly1305_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:947,1
    - Dst: Poly1305_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:948,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:950,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:951,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:952,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:953,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:954,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:955,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:956,1
    - Dst: Poly1305_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:964,1
    - Dst: Poly1305_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:965,1
    - Dst: Poly1305_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:966,1
    - Dst: Poly1305_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:967,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:969,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:970,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:971,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:972,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:973,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:974,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:975,1
    - Dst: Poly1305_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:980,1
    - Dst: Poly1305_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:981,1
    - Dst: Poly1305_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:982,1
    - Dst: Poly1305_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:983,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:985,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:986,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:988,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:989,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:990,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:991,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:992,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:998,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:1001,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:1009,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:1010,1
    - Dst: Poly1305_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:1012,1
    - Dst: Poly1305_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:1015,1
    - Dst: OPENSSL_rdtsc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:1017,1
    - Dst: Poly1305_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:1019,1
    - Dst: OPENSSL_rdtsc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:1020,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:1022,1
    - Dst: OPENSSL_rdtsc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:1024,1
    - Dst: Poly1305_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:1026,1
    - Dst: Poly1305_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:1027,1
    - Dst: Poly1305_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:1028,1
    - Dst: OPENSSL_rdtsc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:1030,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c:1032,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 904
    functionDepth: 2
    functionLinenumber: 904
    functionLinenumberEnd: 1036
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c
    functionUses: 22
    functionsReached:
    - memcmp
    - Poly1305_Update
    - Poly1305_Final
    - hexdump
    - memset
    - strlen
    - free
    - printf
    - OPENSSL_rdtsc
    - hex_decode
    - Poly1305_Init
    - malloc
    linkageType: ''
    returnType: int
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:115,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:116,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:117,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:118,1
    - Dst: EXP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:120,1
    - Dst: EXP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:121,1
    - Dst: EXP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:122,1
    - Dst: EXP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:123,1
    - Dst: EXP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:153,1
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:153,1
    - Dst: EXP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:154,1
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:154,1
    - Dst: EXP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:155,1
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:155,1
    - Dst: EXP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:156,1
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:156,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:158,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:159,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:160,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:161,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:170,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:170,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:171,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:171,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:174,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:174,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:175,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:175,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:178,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:178,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:179,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:179,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:182,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:182,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:183,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:183,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:186,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:186,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:187,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:187,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:190,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:190,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:191,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:191,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:194,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:194,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:195,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 49
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - void*
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 213
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 213
    functionName: poly1305_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c
    functionUses: 1
    functionsReached:
    - EXP
    - U8TOU32
    - TWO
    linkageType: ''
    returnType: int
    signature: poly1305_init(void *ctx, const unsigned char key[16])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:270,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:271,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:272,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:273,1
    - Dst: EXP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:281,1
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:281,1
    - Dst: EXP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:282,1
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:282,1
    - Dst: EXP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:283,1
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:283,1
    - Dst: EXP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:284,1
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:284,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:286,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:287,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:288,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:289,1
    - Dst: EXP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:300,1
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:300,1
    - Dst: EXP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:301,1
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:301,1
    - Dst: EXP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:302,1
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:302,1
    - Dst: EXP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:303,1
    - Dst: U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:303,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:305,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:306,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:307,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:308,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:322,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:322,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:323,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:323,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:324,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:324,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:325,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:325,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:327,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:327,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:328,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:328,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:329,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:329,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:330,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:330,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:369,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:369,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:370,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:370,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:371,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:371,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:372,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:372,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:374,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:374,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:375,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:375,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:376,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:376,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:377,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:377,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:395,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:396,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:397,1
    - Dst: TWO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 98
    argCount: 4
    argNames:
    - ctx
    - inp
    - len
    - padbit
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 412
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 412
    functionName: poly1305_blocks
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c
    functionUses: 2
    functionsReached:
    - EXP
    - U8TOU32
    - TWO
    linkageType: ''
    returnType: void
    signature: "poly1305_blocks(void *ctx, const unsigned char *inp, size_t len,\n
      \                    int padbit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: U32TO8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:468,1
    - Dst: U32TO8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:469,1
    - Dst: U32TO8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:470,1
    - Dst: U32TO8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 3
    argNames:
    - ctx
    - mac
    - nonce
    argTypes:
    - void*
    - unsigned char[]
    - u32[]
    constantsTouched: []
    func_position:
      end: 472
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 472
    functionName: poly1305_emit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c
    functionUses: 1
    functionsReached:
    - U32TO8
    linkageType: ''
    returnType: void
    signature: poly1305_emit(void *ctx, unsigned char mac[16], const u32 nonce[4])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: DSO_METHOD_openssl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DSO_METHOD
    signature: '*DSO_METHOD_openssl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:109,1
    - Dst: strrchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:134,1
    - Dst: strrchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:135,1
    - Dst: strrchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:141,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:147,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:159,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:167,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:171,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:172,1
    - Dst: DSO_MALLOC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:176,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:178,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:182,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:185,1
    - Dst: strcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:188,1
    - Dst: strcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:192,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:194,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:198,1
    - Dst: sk_void_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:203,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:204,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:213,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:214,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 67
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    constantsTouched: []
    func_position:
      end: 216
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 216
    functionName: vms_load
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached:
    - sk_void_push
    - strcat
    - strncpy
    - strchr
    - strrchr
    - strlen
    - DSO_MALLOC
    - OPENSSL_free
    - DSOerr
    linkageType: ''
    returnType: int
    signature: vms_load(DSO *dso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:227,1
    - Dst: sk_void_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:230,1
    - Dst: sk_void_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:232,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:234,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    constantsTouched: []
    func_position:
      end: 240
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 240
    functionName: vms_unload
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - sk_void_num
    - sk_void_pop
    - DSOerr
    linkageType: ''
    returnType: int
    signature: vms_unload(DSO *dso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lib$establish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:255,1
    - Dst: lib$find_image_symbol
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:258,1
    - Dst: lib$find_image_symbol
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ptr
    - symname_dsc
    - sym
    - flags
    argTypes:
    - DSO_VMS_INTERNAL*
    - struct dsc$descriptor_s*
    - void**
    - unsigned long
    constantsTouched: []
    func_position:
      end: 264
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 264
    functionName: do_find_symbol
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached:
    - lib$establish
    - lib$find_image_symbol
    linkageType: ''
    returnType: int
    signature: "do_find_symbol(DSO_VMS_INTERNAL *ptr,\n                          struct
      dsc$descriptor_s *symname_dsc, void **sym,\n                          unsigned
      long flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:292,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:298,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:301,1
    - Dst: sk_void_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:306,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:307,1
    - Dst: sk_void_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:310,1
    - Dst: sk_void_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:311,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:313,1
    - Dst: do_find_symbol
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:320,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:322,1
    - Dst: sys$getmsg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:334,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:336,1
    - Dst: lib$signal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:337,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:341,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:343,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:349,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 3
    argNames:
    - dso
    - symname
    - sym
    argTypes:
    - DSO*
    - char*
    - void**
    constantsTouched: []
    func_position:
      end: 356
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 356
    functionName: vms_bind_sym
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached:
    - lib$signal
    - strlen
    - $VMS_STATUS_SUCCESS
    - ERR_add_error_data
    - sys$getmsg
    - do_find_symbol
    - strcpy
    - sk_void_num
    - DSOerr
    - sk_void_value
    linkageType: ''
    returnType: void
    signature: vms_bind_sym(DSO *dso, const char *symname, void **sym)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vms_bind_sym
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dso
    - symname
    argTypes:
    - DSO*
    - char*
    constantsTouched: []
    func_position:
      end: 363
      start: 358
    functionDepth: 2
    functionLinenumber: 358
    functionLinenumberEnd: 363
    functionName: vms_bind_func
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached:
    - vms_bind_sym
    linkageType: ''
    returnType: DSO_FUNC_TYPE
    signature: vms_bind_func(DSO *dso, const char *symname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:395,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:396,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:402,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:403,1
    - Dst: FAB_OR_NAML
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:409,1
    - Dst: FAB_OR_NAML
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:410,1
    - Dst: FAB_OR_NAML
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:411,1
    - Dst: FAB_OR_NAML
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:412,1
    - Dst: NAMX_DNA_FNA_SET
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:413,1
    - Dst: SET_NAMX_NO_SHORT_UPCASE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:418,1
    - Dst: sys$parse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:422,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:424,1
    - Dst: sys$getmsg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:434,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:436,1
    - Dst: lib$signal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:437,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:441,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:442,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:449,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:452,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:456,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 3
    argNames:
    - dso
    - filespec1
    - filespec2
    argTypes:
    - DSO*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 457
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 457
    functionName: vms_merger
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached:
    - lib$signal
    - SET_NAMX_NO_SHORT_UPCASE
    - sys$parse
    - NAMX_DNA_FNA_SET
    - FAB_OR_NAML
    - strncpy
    - strlen
    - $VMS_STATUS_SUCCESS
    - ERR_add_error_data
    - sys$getmsg
    - strcpy
    - OPENSSL_malloc
    - DSOerr
    linkageType: ''
    returnType: char
    signature: "*vms_merger(DSO *dso, const char *filespec1,\n                        const
      char *filespec2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dso
    - filename
    argTypes:
    - DSO*
    - char*
    constantsTouched: []
    func_position:
      end: 466
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 466
    functionName: vms_name_converter
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached:
    - strcpy
    linkageType: ''
    returnType: char
    signature: '*vms_name_converter(DSO *dso, const char *filename)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetProcAddressW
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - hModule
    - lpProcName
    argTypes:
    - HMODULE
    - LPCSTR
    constantsTouched: []
    func_position:
      end: 28
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 28
    functionName: GetProcAddressA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - GetProcAddressW
    linkageType: ''
    returnType: FARPROC
    signature: GetProcAddressA(HMODULE hModule, LPCSTR lpProcName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _alloca
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:39,1
    - Dst: alloca
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:41,1
    - Dst: SetLastError
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:44,1
    - Dst: MultiByteToWideChar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:48,1
    - Dst: LoadLibraryW
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - lpLibFileName
    argTypes:
    - LPCSTR
    constantsTouched: []
    func_position:
      end: 54
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 54
    functionName: LoadLibraryA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - _alloca
    - MultiByteToWideChar
    - alloca
    - LoadLibraryW
    - SetLastError
    linkageType: ''
    returnType: HINSTANCE
    signature: LoadLibraryA(LPCSTR lpLibFileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: DSO_METHOD_openssl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DSO_METHOD
    signature: '*DSO_METHOD_openssl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:101,1
    - Dst: LoadLibraryA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:104,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:106,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:107,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:110,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:112,1
    - Dst: sk_void_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:116,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:117,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:125,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:126,1
    - Dst: FreeLibrary
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:128,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    constantsTouched: []
    func_position:
      end: 130
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 130
    functionName: win32_load
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - sk_void_push
    - LoadLibraryA
    - ERR_add_error_data
    - FreeLibrary
    - OPENSSL_free
    - OPENSSL_malloc
    - DSOerr
    linkageType: ''
    returnType: int
    signature: win32_load(DSO *dso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:136,1
    - Dst: sk_void_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:139,1
    - Dst: sk_void_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:141,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:143,1
    - Dst: FreeLibrary
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:146,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:147,1
    - Dst: sk_void_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:151,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    constantsTouched: []
    func_position:
      end: 157
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 157
    functionName: win32_unload
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - sk_void_push
    - sk_void_pop
    - OPENSSL_free
    - FreeLibrary
    - sk_void_num
    - DSOerr
    linkageType: ''
    returnType: int
    signature: win32_unload(DSO *dso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:168,1
    - Dst: sk_void_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:171,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:172,1
    - Dst: sk_void_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:175,1
    - Dst: sk_void_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:175,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:177,1
    - Dst: GetProcAddress
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:180,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:182,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:183,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - dso
    - symname
    argTypes:
    - DSO*
    - char*
    constantsTouched: []
    func_position:
      end: 187
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 187
    functionName: win32_bind_func
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - ERR_add_error_data
    - GetProcAddress
    - sk_void_num
    - DSOerr
    - sk_void_value
    linkageType: ''
    returnType: DSO_FUNC_TYPE
    signature: win32_bind_func(DSO *dso, const char *symname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:211,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:218,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:220,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:239,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:243,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 84
    argCount: 3
    argNames:
    - dso
    - filename
    - assume_last_is_dir
    argTypes:
    - DSO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 306
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 306
    functionName: win32_splitter
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - DSOerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: struct file_st
    signature: "*win32_splitter(DSO *dso, const char *filename,\n                                      int
      assume_last_is_dir)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:315,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:336,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:340,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:342,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:347,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:349,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:356,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:369,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:382,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:388,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 71
    argCount: 2
    argNames:
    - dso
    - file_split
    argTypes:
    - DSO*
    - struct file_st*
    constantsTouched: []
    func_position:
      end: 392
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 392
    functionName: win32_joiner
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - strcpy
    - OPENSSL_malloc
    - DSOerr
    - strncpy
    linkageType: ''
    returnType: char
    signature: '*win32_joiner(DSO *dso, const struct file_st *file_split)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:402,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:406,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:406,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:408,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:411,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:413,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:413,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:415,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:418,1
    - Dst: win32_splitter
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:420,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:422,1
    - Dst: win32_splitter
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:425,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:427,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:428,1
    - Dst: win32_joiner
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:452,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:454,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:455,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 3
    argNames:
    - dso
    - filespec1
    - filespec2
    argTypes:
    - DSO*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 457
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 457
    functionName: win32_merger
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - win32_joiner
    - win32_splitter
    - strlen
    - strcpy
    - OPENSSL_free
    - OPENSSL_malloc
    - DSOerr
    linkageType: ''
    returnType: char
    signature: "*win32_merger(DSO *dso, const char *filespec1,\n                          const
      char *filespec2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:464,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:465,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:466,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:467,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:470,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:473,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:475,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:479,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:481,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - dso
    - filename
    argTypes:
    - DSO*
    - char*
    constantsTouched: []
    func_position:
      end: 483
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 483
    functionName: win32_name_converter
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - strstr
    - strlen
    - OPENSSL_malloc
    - DSOerr
    - sprintf
    linkageType: ''
    returnType: char
    signature: '*win32_name_converter(DSO *dso, const char *filename)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - string
    - c
    - len
    argTypes:
    - char*
    - int
    - size_t
    constantsTouched: []
    func_position:
      end: 494
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 494
    functionName: openssl_strnchr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*openssl_strnchr(const char *string, int c, size_t len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibrary
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:523,1
    - Dst: TEXT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:523,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:525,1
    - Dst: GetProcAddress
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:530,1
    - Dst: FreeLibrary
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:532,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:533,1
    - Dst: GetProcAddress
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:539,1
    - Dst: GetProcAddress
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:543,1
    - Dst: GetProcAddress
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:544,1
    - Dst: FreeLibrary
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:548,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:549,1
    - Dst: FreeLibrary
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:557,1
    - Dst: GetProcAddress
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:562,1
    - Dst: FreeLibrary
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:564,1
    - Dst: FreeLibrary
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c:570,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 572
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 572
    functionName: win32_globallookup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - FreeLibrary
    - DSOerr
    - GetProcAddress
    - TEXT
    - LoadLibrary
    linkageType: ''
    returnType: void
    signature: '*win32_globallookup(const char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: DSO_METHOD_openssl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DSO_METHOD
    signature: '*DSO_METHOD_openssl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSO_METHOD_openssl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:24,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:26,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:28,1
    - Dst: sk_void_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:31,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:34,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:35,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:40,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:42,1
    - Dst: sk_void_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:43,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:44,1
    - Dst: DSO*::meth::init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:48,1
    - Dst: DSO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:49,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - meth
    argTypes:
    - DSO_METHOD*
    constantsTouched: []
    func_position:
      end: 54
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 54
    functionName: DSO_new_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached:
    - DSO_METHOD_openssl
    - DSO_free
    - DSO*::meth::init
    - CRYPTO_THREAD_lock_new
    - sk_void_new_null
    - OPENSSL_zalloc
    - sk_void_free
    - OPENSSL_free
    - DSOerr
    linkageType: ''
    returnType: DSO
    signature: '*DSO_new_method(DSO_METHOD *meth)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSO_new_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: DSO_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached:
    - DSO_new_method
    linkageType: ''
    returnType: DSO
    signature: '*DSO_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:68,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:71,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:74,1
    - Dst: DSO*::meth::dso_unload
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:77,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:78,1
    - Dst: DSO*::meth::finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:83,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:84,1
    - Dst: sk_void_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:88,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:89,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:90,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:91,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:92,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    constantsTouched: []
    func_position:
      end: 94
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 94
    functionName: DSO_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c
    functionUses: 5
    functionsReached:
    - DSO*::meth::finish
    - CRYPTO_THREAD_lock_free
    - DSO*::meth::dso_unload
    - CRYPTO_atomic_add
    - sk_void_free
    - OPENSSL_free
    - REF_ASSERT_ISNT
    - DSOerr
    - REF_PRINT_COUNT
    linkageType: ''
    returnType: int
    signature: DSO_free(DSO *dso)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: DSO_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: DSO_flags(DSO *dso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:106,1
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:110,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:113,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    constantsTouched: []
    func_position:
      end: 116
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 116
    functionName: DSO_up_ref
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - DSOerr
    - CRYPTO_atomic_add
    linkageType: ''
    returnType: int
    signature: DSO_up_ref(DSO *dso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSO_new_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:124,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:126,1
    - Dst: DSO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:131,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:132,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:139,1
    - Dst: DSO_set_filename
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:147,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:148,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:153,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:157,1
    - Dst: DSO*::meth::dso_load
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:160,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:161,1
    - Dst: DSO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:168,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 4
    argNames:
    - dso
    - filename
    - meth
    - flags
    argTypes:
    - DSO*
    - char*
    - DSO_METHOD*
    - int
    constantsTouched: []
    func_position:
      end: 170
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 170
    functionName: DSO_load
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c
    functionUses: 1
    functionsReached:
    - DSO_ctrl
    - DSO_free
    - DSO*::meth::dso_load
    - DSO_new_method
    - DSOerr
    - DSO_set_filename
    linkageType: ''
    returnType: DSO
    signature: '*DSO_load(DSO *dso, const char *filename, DSO_METHOD *meth, int flags)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:177,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:181,1
    - Dst: DSO*::meth::dso_bind_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:184,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - dso
    - symname
    argTypes:
    - DSO*
    - char*
    constantsTouched: []
    func_position:
      end: 190
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 190
    functionName: DSO_bind_func
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached:
    - DSO*::meth::dso_bind_func
    - DSOerr
    linkageType: ''
    returnType: DSO_FUNC_TYPE
    signature: DSO_bind_func(DSO *dso, const char *symname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:204,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:224,1
    - Dst: DSO*::meth::dso_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:227,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - dso
    - cmd
    - larg
    - parg
    argTypes:
    - DSO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 228
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 228
    functionName: DSO_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c
    functionUses: 1
    functionsReached:
    - DSO*::meth::dso_ctrl
    - DSOerr
    linkageType: ''
    returnType: long
    signature: DSO_ctrl(DSO *dso, int cmd, long larg, void *parg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    constantsTouched: []
    func_position:
      end: 237
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 237
    functionName: DSO_get_filename
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached:
    - DSOerr
    linkageType: ''
    returnType: char
    signature: '*DSO_get_filename(DSO *dso)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:244,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:248,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:252,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:254,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - dso
    - filename
    argTypes:
    - DSO*
    - char*
    constantsTouched: []
    func_position:
      end: 260
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 260
    functionName: DSO_set_filename
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - DSOerr
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: DSO_set_filename(DSO *dso, const char *filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:267,1
    - Dst: DSO*::merger
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:272,1
    - Dst: DSO*::meth::dso_merger
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:274,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - dso
    - filespec1
    - filespec2
    argTypes:
    - DSO*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 277
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 277
    functionName: DSO_merge
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached:
    - DSO*::merger
    - DSO*::meth::dso_merger
    - DSOerr
    linkageType: ''
    returnType: char
    signature: '*DSO_merge(DSO *dso, const char *filespec1, const char *filespec2)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:284,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:290,1
    - Dst: DSO*::name_converter
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:295,1
    - Dst: DSO*::meth::dso_name_converter
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:297,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:300,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:302,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - dso
    - filename
    argTypes:
    - DSO*
    - char*
    constantsTouched: []
    func_position:
      end: 307
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 307
    functionName: DSO_convert_filename
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached:
    - DSO*::name_converter
    - DSO*::meth::dso_name_converter
    - DSOerr
    - OPENSSL_strdup
    linkageType: ''
    returnType: char
    signature: '*DSO_convert_filename(DSO *dso, const char *filename)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSO_METHOD_openssl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:313,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - addr
    - path
    - sz
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 319
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 319
    functionName: DSO_pathbyaddr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached:
    - DSO_METHOD_openssl
    - DSOerr
    linkageType: ''
    returnType: int
    signature: DSO_pathbyaddr(void *addr, char *path, int sz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:330,1
    - Dst: DSO_pathbyaddr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:332,1
    - Dst: DSO_load
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:333,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - addr
    - flags
    argTypes:
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 337
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 337
    functionName: DSO_dsobyaddr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - DSO_load
    - OPENSSL_malloc
    - DSO_pathbyaddr
    linkageType: ''
    returnType: DSO
    signature: '*DSO_dsobyaddr(void *addr, int flags)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSO_METHOD_openssl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:343,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 349
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 349
    functionName: DSO_global_lookup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached:
    - DSO_METHOD_openssl
    - DSOerr
    linkageType: ''
    returnType: void
    signature: '*DSO_global_lookup(const char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: DSO_METHOD_openssl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: DSO_METHOD
    signature: '*DSO_METHOD_openssl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:104,1
    - Dst: dlopen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:111,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:113,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:114,1
    - Dst: dlerror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:114,1
    - Dst: sk_void_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:117,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:118,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:126,1
    - Dst: dlclose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:128,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    constantsTouched: []
    func_position:
      end: 130
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 130
    functionName: dlfcn_load
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - sk_void_push
    - dlerror
    - ERR_add_error_data
    - dlopen
    - OPENSSL_free
    - DSOerr
    - dlclose
    linkageType: ''
    returnType: int
    signature: dlfcn_load(DSO *dso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:136,1
    - Dst: sk_void_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:139,1
    - Dst: sk_void_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:141,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:143,1
    - Dst: sk_void_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:147,1
    - Dst: dlclose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    constantsTouched: []
    func_position:
      end: 153
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 153
    functionName: dlfcn_unload
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - sk_void_push
    - sk_void_pop
    - sk_void_num
    - DSOerr
    - dlclose
    linkageType: ''
    returnType: int
    signature: dlfcn_unload(DSO *dso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:164,1
    - Dst: sk_void_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:167,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:168,1
    - Dst: sk_void_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:171,1
    - Dst: sk_void_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:171,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:173,1
    - Dst: dlsym
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:176,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:178,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:179,1
    - Dst: dlerror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - dso
    - symname
    argTypes:
    - DSO*
    - char*
    constantsTouched: []
    func_position:
      end: 183
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 183
    functionName: dlfcn_bind_func
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - dlsym
    - dlerror
    - ERR_add_error_data
    - sk_void_num
    - DSOerr
    - sk_void_value
    linkageType: ''
    returnType: DSO_FUNC_TYPE
    signature: dlfcn_bind_func(DSO *dso, const char *symname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:191,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:199,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:201,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:209,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:211,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:224,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:225,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:231,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:233,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:236,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:238,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - dso
    - filespec1
    - filespec2
    argTypes:
    - DSO*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 241
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 241
    functionName: dlfcn_merger
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - strlen
    - OPENSSL_strdup
    - strcpy
    - OPENSSL_malloc
    - DSOerr
    linkageType: ''
    returnType: char
    signature: "*dlfcn_merger(DSO *dso, const char *filespec1,\n                          const
      char *filespec2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:248,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:250,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:253,1
    - Dst: DSO_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:254,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:257,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:259,1
    - Dst: DSO_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:263,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:264,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:266,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - dso
    - filename
    argTypes:
    - DSO*
    - char*
    constantsTouched: []
    func_position:
      end: 270
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 270
    functionName: dlfcn_name_converter
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - strstr
    - DSO_flags
    - strlen
    - OPENSSL_malloc
    - DSOerr
    - sprintf
    linkageType: ''
    returnType: char
    signature: '*dlfcn_name_converter(DSO *dso, const char *filename)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _rld_new_interface
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - address
    - dl
    argTypes:
    - void*
    - Dl_info*
    constantsTouched: []
    func_position:
      end: 308
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 308
    functionName: dladdr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - _rld_new_interface
    linkageType: ''
    returnType: int
    signature: dladdr(void *address, Dl_info *dl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dladdr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:327,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:328,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:333,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:338,1
    - Dst: dlerror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - addr
    - path
    - sz
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 341
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 341
    functionName: dlfcn_pathbyaddr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - dladdr
    - dlerror
    - strlen
    - ERR_add_error_data
    - memcpy
    linkageType: ''
    returnType: int
    signature: dlfcn_pathbyaddr(void *addr, char *path, int sz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:348,1
    - Dst: dlclose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 353
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 353
    functionName: dlfcn_globallookup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - dlsym
    - dlclose
    linkageType: ''
    returnType: void
    signature: '*dlfcn_globallookup(const char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_err.c:87,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_err.c:88,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_err.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 93
    functionName: ERR_load_DSO_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_DSO_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: DSO_METHOD_openssl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: DSO_METHOD
    signature: '*DSO_METHOD_openssl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:64,1
    - Dst: shl_load
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:67,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:72,1
    - Dst: openssl_strerror_r
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:73,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:74,1
    - Dst: sk_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:77,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:78,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:89,1
    - Dst: shl_unload
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:91,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    constantsTouched: []
    func_position:
      end: 93
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 93
    functionName: dl_load
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c
    functionUses: 0
    functionsReached:
    - sk_push
    - shl_load
    - openssl_strerror_r
    - shl_unload
    - ERR_add_error_data
    - OPENSSL_free
    - DSOerr
    linkageType: ''
    returnType: int
    signature: dl_load(DSO *dso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:99,1
    - Dst: sk_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:102,1
    - Dst: sk_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:105,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:107,1
    - Dst: sk_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:111,1
    - Dst: shl_unload
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    constantsTouched: []
    func_position:
      end: 116
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 116
    functionName: dl_unload
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c
    functionUses: 0
    functionsReached:
    - sk_push
    - sk_num
    - shl_unload
    - sk_pop
    - DSOerr
    linkageType: ''
    returnType: int
    signature: dl_unload(DSO *dso)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:124,1
    - Dst: sk_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:127,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:128,1
    - Dst: sk_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:131,1
    - Dst: sk_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:131,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:133,1
    - Dst: shl_findsym
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:136,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:138,1
    - Dst: openssl_strerror_r
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:139,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:140,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - dso
    - symname
    argTypes:
    - DSO*
    - char*
    constantsTouched: []
    func_position:
      end: 144
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 144
    functionName: dl_bind_func
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c
    functionUses: 0
    functionsReached:
    - shl_findsym
    - sk_num
    - openssl_strerror_r
    - sk_value
    - ERR_add_error_data
    - DSOerr
    linkageType: ''
    returnType: DSO_FUNC_TYPE
    signature: dl_bind_func(DSO *dso, const char *symname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:151,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:159,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:161,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:169,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:171,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:185,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:186,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:192,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:194,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:197,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:199,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - dso
    - filespec1
    - filespec2
    argTypes:
    - DSO*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 202
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 202
    functionName: dl_merger
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c
    functionUses: 0
    functionsReached:
    - strlen
    - OPENSSL_strdup
    - strcpy
    - OPENSSL_malloc
    - DSOerr
    linkageType: ''
    returnType: char
    signature: '*dl_merger(DSO *dso, const char *filespec1, const char *filespec2)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:216,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:218,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:221,1
    - Dst: DSO_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:222,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:225,1
    - Dst: DSOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:227,1
    - Dst: DSO_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:231,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:232,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:234,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:236,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - dso
    - filename
    argTypes:
    - DSO*
    - char*
    constantsTouched: []
    func_position:
      end: 238
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 238
    functionName: dl_name_converter
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c
    functionUses: 0
    functionsReached:
    - strstr
    - DSO_flags
    - strlen
    - OPENSSL_malloc
    - DSOerr
    - sprintf
    linkageType: ''
    returnType: char
    signature: '*dl_name_converter(DSO *dso, const char *filename)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: shl_get_r
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:255,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:258,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:263,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - addr
    - path
    - sz
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 270
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 270
    functionName: dl_pathbyaddr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    - shl_get_r
    linkageType: ''
    returnType: int
    signature: dl_pathbyaddr(void *addr, char *path, int sz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: shl_findsym
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: dl_globallookup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c
    functionUses: 0
    functionsReached:
    - shl_findsym
    linkageType: ''
    returnType: void
    signature: '*dl_globallookup(const char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UI_new_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: UI_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - UI_new_method
    linkageType: ''
    returnType: UI
    signature: '*UI_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:27,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:30,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:34,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:36,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:37,1
    - Dst: UI_get_default_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:42,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:46,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:47,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - method
    argTypes:
    - UI_METHOD*
    constantsTouched: []
    func_position:
      end: 51
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 51
    functionName: UI_new_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 3
    functionsReached:
    - CRYPTO_new_ex_data
    - CRYPTO_THREAD_lock_new
    - UI_get_default_method
    - OPENSSL_zalloc
    - OPENSSL_free
    - UIerr
    linkageType: ''
    returnType: UI
    signature: '*UI_new_method(const UI_METHOD *method)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:56,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:59,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:60,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:61,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    constantsTouched: []
    func_position:
      end: 68
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 68
    functionName: free_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: free_string(UI_STRING *uis)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_UI_STRING_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:74,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:75,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:76,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: UI_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 2
    functionsReached:
    - sk_UI_STRING_pop_free
    - CRYPTO_free_ex_data
    - OPENSSL_free
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: UI_free(UI *ui)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_UI_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    constantsTouched: []
    func_position:
      end: 89
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 89
    functionName: allocate_string_stack
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - sk_UI_STRING_new_null
    linkageType: ''
    returnType: int
    signature: allocate_string_stack(UI *ui)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:99,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:102,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:103,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 6
    argNames:
    - ui
    - prompt
    - prompt_freeable
    - type
    - input_flags
    - result_buf
    argTypes:
    - UI*
    - char*
    - int
    - enum UI_string_types
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 111
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 111
    functionName: general_allocate_prompt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - UIerr
    linkageType: ''
    returnType: UI_STRING
    signature: "*general_allocate_prompt(UI *ui, const char *prompt,\n                                          int
      prompt_freeable,\n                                          enum UI_string_types
      type,\n                                          int input_flags, char *result_buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: general_allocate_prompt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:120,1
    - Dst: allocate_string_stack
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:124,1
    - Dst: sk_UI_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:128,1
    - Dst: free_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:132,1
    - Dst: free_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 9
    argNames:
    - ui
    - prompt
    - prompt_freeable
    - type
    - input_flags
    - result_buf
    - minsize
    - maxsize
    - test_buf
    argTypes:
    - UI*
    - char*
    - int
    - enum UI_string_types
    - int
    - char*
    - int
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 138
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 138
    functionName: general_allocate_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - sk_UI_STRING_push
    - general_allocate_prompt
    - allocate_string_stack
    - free_string
    linkageType: ''
    returnType: int
    signature: "general_allocate_string(UI *ui, const char *prompt,\n                                   int
      prompt_freeable,\n                                   enum UI_string_types type,
      int input_flags,\n                                   char *result_buf, int minsize,
      int maxsize,\n                                   const char *test_buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:154,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:156,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:159,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:160,1
    - Dst: general_allocate_prompt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:165,1
    - Dst: allocate_string_stack
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:169,1
    - Dst: sk_UI_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:173,1
    - Dst: free_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:179,1
    - Dst: free_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:182,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 9
    argNames:
    - ui
    - prompt
    - action_desc
    - ok_chars
    - cancel_chars
    - prompt_freeable
    - type
    - input_flags
    - result_buf
    argTypes:
    - UI*
    - char*
    - char*
    - char*
    - char*
    - int
    - enum UI_string_types
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 186
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 186
    functionName: general_allocate_boolean
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - sk_UI_STRING_push
    - strchr
    - free_string
    - general_allocate_prompt
    - allocate_string_stack
    - UIerr
    linkageType: ''
    returnType: int
    signature: "general_allocate_boolean(UI *ui,\n                                    const
      char *prompt,\n                                    const char *action_desc,\n
      \                                   const char *ok_chars,\n                                    const
      char *cancel_chars,\n                                    int prompt_freeable,\n
      \                                   enum UI_string_types type,\n                                    int
      input_flags, char *result_buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: general_allocate_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ui
    - prompt
    - flags
    - result_buf
    - minsize
    - maxsize
    argTypes:
    - UI*
    - char*
    - int
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: UI_add_input_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 1
    functionsReached:
    - general_allocate_string
    linkageType: ''
    returnType: int
    signature: "UI_add_input_string(UI *ui, const char *prompt, int flags,\n                        char
      *result_buf, int minsize, int maxsize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:207,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:209,1
    - Dst: general_allocate_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - ui
    - prompt
    - flags
    - result_buf
    - minsize
    - maxsize
    argTypes:
    - UI*
    - char*
    - int
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 217
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 217
    functionName: UI_dup_input_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - general_allocate_string
    - UIerr
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: "UI_dup_input_string(UI *ui, const char *prompt, int flags,\n                        char
      *result_buf, int minsize, int maxsize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: general_allocate_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ui
    - prompt
    - flags
    - result_buf
    - minsize
    - maxsize
    - test_buf
    argTypes:
    - UI*
    - char*
    - int
    - char*
    - int
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 226
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 226
    functionName: UI_add_verify_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - general_allocate_string
    linkageType: ''
    returnType: int
    signature: "UI_add_verify_string(UI *ui, const char *prompt, int flags,\n                         char
      *result_buf, int minsize, int maxsize,\n                         const char
      *test_buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:235,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:237,1
    - Dst: general_allocate_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 7
    argNames:
    - ui
    - prompt
    - flags
    - result_buf
    - minsize
    - maxsize
    - test_buf
    argTypes:
    - UI*
    - char*
    - int
    - char*
    - int
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 245
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 245
    functionName: UI_dup_verify_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - general_allocate_string
    - UIerr
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: "UI_dup_verify_string(UI *ui, const char *prompt, int flags,\n                         char
      *result_buf, int minsize, int maxsize,\n                         const char
      *test_buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: general_allocate_boolean
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ui
    - prompt
    - action_desc
    - ok_chars
    - cancel_chars
    - flags
    - result_buf
    argTypes:
    - UI*
    - char*
    - char*
    - char*
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 254
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 254
    functionName: UI_add_input_boolean
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - general_allocate_boolean
    linkageType: ''
    returnType: int
    signature: "UI_add_input_boolean(UI *ui, const char *prompt, const char *action_desc,\n
      \                        const char *ok_chars, const char *cancel_chars,\n                         int
      flags, char *result_buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:266,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:268,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:274,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:276,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:282,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:284,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:290,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:292,1
    - Dst: general_allocate_boolean
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:297,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:301,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:302,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:303,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:304,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 7
    argNames:
    - ui
    - prompt
    - action_desc
    - ok_chars
    - cancel_chars
    - flags
    - result_buf
    argTypes:
    - UI*
    - char*
    - char*
    - char*
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 306
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 306
    functionName: UI_dup_input_boolean
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - general_allocate_boolean
    - UIerr
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: "UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc,\n
      \                        const char *ok_chars, const char *cancel_chars,\n                         int
      flags, char *result_buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: general_allocate_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ui
    - text
    argTypes:
    - UI*
    - char*
    constantsTouched: []
    func_position:
      end: 312
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 312
    functionName: UI_add_info_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - general_allocate_string
    linkageType: ''
    returnType: int
    signature: UI_add_info_string(UI *ui, const char *text)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:319,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:321,1
    - Dst: general_allocate_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ui
    - text
    argTypes:
    - UI*
    - char*
    constantsTouched: []
    func_position:
      end: 328
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 328
    functionName: UI_dup_info_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 1
    functionsReached:
    - general_allocate_string
    - UIerr
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: UI_dup_info_string(UI *ui, const char *text)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: general_allocate_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ui
    - text
    argTypes:
    - UI*
    - char*
    constantsTouched: []
    func_position:
      end: 334
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 334
    functionName: UI_add_error_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - general_allocate_string
    linkageType: ''
    returnType: int
    signature: UI_add_error_string(UI *ui, const char *text)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:341,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:343,1
    - Dst: general_allocate_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ui
    - text
    argTypes:
    - UI*
    - char*
    constantsTouched: []
    func_position:
      end: 349
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 349
    functionName: UI_dup_error_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - general_allocate_string
    - UIerr
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: UI_dup_error_string(UI *ui, const char *text)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UI*::meth::ui_construct_prompt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:357,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:366,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:368,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:371,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:374,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:375,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:377,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:378,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:380,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - ui
    - object_desc
    - object_name
    argTypes:
    - UI*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 383
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 383
    functionName: UI_construct_prompt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - UI*::meth::ui_construct_prompt
    - OPENSSL_strlcpy
    - strlen
    - OPENSSL_strlcat
    - OPENSSL_malloc
    linkageType: ''
    returnType: char
    signature: "*UI_construct_prompt(UI *ui, const char *object_desc,\n                          const
      char *object_name)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ui
    - user_data
    argTypes:
    - UI*
    - void*
    constantsTouched: []
    func_position:
      end: 390
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 390
    functionName: UI_add_user_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*UI_add_user_data(UI *ui, void *user_data)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    constantsTouched: []
    func_position:
      end: 395
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 395
    functionName: UI_get0_user_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*UI_get0_user_data(UI *ui)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:400,1
    - Dst: sk_UI_STRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:403,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:404,1
    - Dst: UI_get0_result_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:407,1
    - Dst: sk_UI_STRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ui
    - i
    argTypes:
    - UI*
    - int
    constantsTouched: []
    func_position:
      end: 408
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 408
    functionName: UI_get0_result
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - sk_UI_STRING_num
    - UI_get0_result_string
    - UIerr
    - sk_UI_STRING_value
    linkageType: ''
    returnType: char
    signature: '*UI_get0_result(UI *ui, int i)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:414,1
    - Dst: UI*::meth::ui_write_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:419,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - str
    - len
    - ui
    argTypes:
    - char*
    - size_t
    - UI*
    constantsTouched: []
    func_position:
      end: 422
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 422
    functionName: print_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - memset
    - UI*::meth::ui_write_string
    linkageType: ''
    returnType: int
    signature: print_error(const char *str, size_t len, UI *ui)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UI*::meth::ui_open_session
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:430,1
    - Dst: ERR_print_errors_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:437,1
    - Dst: sk_UI_STRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:440,1
    - Dst: UI*::meth::ui_write_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:442,1
    - Dst: sk_UI_STRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:443,1
    - Dst: UI*::meth::ui_flush
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:453,1
    - Dst: sk_UI_STRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:466,1
    - Dst: UI*::meth::ui_read_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:468,1
    - Dst: sk_UI_STRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:469,1
    - Dst: UI*::meth::ui_close_session
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:486,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:493,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:494,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 62
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    constantsTouched: []
    func_position:
      end: 497
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 497
    functionName: UI_process
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 2
    functionsReached:
    - UI*::meth::ui_close_session
    - sk_UI_STRING_num
    - ERR_print_errors_cb
    - sk_UI_STRING_value
    - UI*::meth::ui_write_string
    - UI*::meth::ui_open_session
    - ERR_add_error_data
    - UI*::meth::ui_flush
    - UI*::meth::ui_read_string
    - UIerr
    linkageType: ''
    returnType: int
    signature: UI_process(UI *ui)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:502,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:520,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - ui
    - cmd
    - i
    - p
    argTypes:
    - UI*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 522
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 522
    functionName: UI_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 1
    functionsReached:
    - UIerr
    linkageType: ''
    returnType: int
    signature: UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f) (void))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - idx
    - arg
    argTypes:
    - UI*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 527
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 527
    functionName: UI_set_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: UI_set_ex_data(UI *r, int idx, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - idx
    argTypes:
    - UI*
    - int
    constantsTouched: []
    func_position:
      end: 532
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 532
    functionName: UI_get_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: '*UI_get_ex_data(UI *r, int idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - UI_METHOD*
    constantsTouched: []
    func_position:
      end: 537
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 537
    functionName: UI_set_default_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: UI_set_default_method(const UI_METHOD *meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UI_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 545
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 545
    functionName: UI_get_default_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 1
    functionsReached:
    - UI_OpenSSL
    linkageType: ''
    returnType: UI_METHOD
    signature: '*UI_get_default_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    constantsTouched: []
    func_position:
      end: 550
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 550
    functionName: UI_get_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UI_METHOD
    signature: '*UI_get_method(UI *ui)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ui
    - meth
    argTypes:
    - UI*
    - UI_METHOD*
    constantsTouched: []
    func_position:
      end: 556
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 556
    functionName: UI_set_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UI_METHOD
    signature: '*UI_set_method(UI *ui, const UI_METHOD *meth)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:560,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:563,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:565,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 571
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 571
    functionName: UI_create_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - UIerr
    - OPENSSL_strdup
    - OPENSSL_zalloc
    linkageType: ''
    returnType: UI_METHOD
    signature: '*UI_create_method(const char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:580,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ui_method
    argTypes:
    - UI_METHOD*
    constantsTouched: []
    func_position:
      end: 583
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 583
    functionName: UI_destroy_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: UI_destroy_method(UI_METHOD *ui_method)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - method
    argTypes:
    - UI_METHOD*
    constantsTouched: []
    func_position:
      end: 592
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 592
    functionName: UI_method_set_opener
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: UI_method_set_opener(UI_METHOD *method, int (*opener) (UI *ui))
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - method
    argTypes:
    - UI_METHOD*
    constantsTouched: []
    func_position:
      end: 602
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 602
    functionName: UI_method_set_writer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "UI_method_set_writer(UI_METHOD *method,\n                         int
      (*writer) (UI *ui, UI_STRING *uis))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - method
    argTypes:
    - UI_METHOD*
    constantsTouched: []
    func_position:
      end: 611
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 611
    functionName: UI_method_set_flusher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: UI_method_set_flusher(UI_METHOD *method, int (*flusher) (UI *ui))
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - method
    argTypes:
    - UI_METHOD*
    constantsTouched: []
    func_position:
      end: 621
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 621
    functionName: UI_method_set_reader
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "UI_method_set_reader(UI_METHOD *method,\n                         int
      (*reader) (UI *ui, UI_STRING *uis))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - method
    argTypes:
    - UI_METHOD*
    constantsTouched: []
    func_position:
      end: 630
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 630
    functionName: UI_method_set_closer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: UI_method_set_closer(UI_METHOD *method, int (*closer) (UI *ui))
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - method
    - "(*prompt_constructor) (UI *ui,\n                                                                  const
      char\n                                                                  *object_desc,\n
      \                                                                 const char\n
      \                                                                 *object_name)"
    argTypes:
    - UI_METHOD*
    - char*
    constantsTouched: []
    func_position:
      end: 644
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 644
    functionName: UI_method_set_prompt_constructor
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "UI_method_set_prompt_constructor(UI_METHOD *method,\n                                     char
      *(*prompt_constructor) (UI *ui,\n                                                                  const
      char\n                                                                  *object_desc,\n
      \                                                                 const char\n
      \                                                                 *object_name))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 651
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 651
    functionName: (*UI_method_get_opener(UI_METHOD *method)) (UI *)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*UI_method_get_opener(UI_METHOD *method)) (UI *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 658
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 658
    functionName: (*UI_method_get_writer(UI_METHOD *method)) (UI *, UI_STRING *)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*UI_method_get_writer(UI_METHOD *method)) (UI *, UI_STRING *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 665
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 665
    functionName: (*UI_method_get_flusher(UI_METHOD *method)) (UI *)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*UI_method_get_flusher(UI_METHOD *method)) (UI *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 672
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 672
    functionName: (*UI_method_get_reader(UI_METHOD *method)) (UI *, UI_STRING *)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*UI_method_get_reader(UI_METHOD *method)) (UI *, UI_STRING *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 679
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 679
    functionName: (*UI_method_get_closer(UI_METHOD *method)) (UI *)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*UI_method_get_closer(UI_METHOD *method)) (UI *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 688
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 688
    functionName: "*(*UI_method_get_prompt_constructor(UI_METHOD *method)) (UI *,\n
      \                                                             const char *,\n
      \                                                             const char *)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "*(*UI_method_get_prompt_constructor(UI_METHOD *method)) (UI *,\n                                                              const
      char *,\n                                                              const
      char *)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    constantsTouched: []
    func_position:
      end: 693
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 693
    functionName: UI_get_string_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum UI_string_types
    signature: UI_get_string_type(UI_STRING *uis)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    constantsTouched: []
    func_position:
      end: 698
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 698
    functionName: UI_get_input_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: UI_get_input_flags(UI_STRING *uis)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    constantsTouched: []
    func_position:
      end: 703
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 703
    functionName: UI_get0_output_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*UI_get0_output_string(UI_STRING *uis)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    constantsTouched: []
    func_position:
      end: 714
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 714
    functionName: UI_get0_action_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*UI_get0_action_string(UI_STRING *uis)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    constantsTouched: []
    func_position:
      end: 725
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 725
    functionName: UI_get0_result_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*UI_get0_result_string(UI_STRING *uis)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    constantsTouched: []
    func_position:
      end: 735
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 735
    functionName: UI_get0_test_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*UI_get0_test_string(UI_STRING *uis)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    constantsTouched: []
    func_position:
      end: 746
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 746
    functionName: UI_get_result_minsize
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: UI_get_result_minsize(UI_STRING *uis)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    constantsTouched: []
    func_position:
      end: 757
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 757
    functionName: UI_get_result_maxsize
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: UI_get_result_maxsize(UI_STRING *uis)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:772,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:774,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:779,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:780,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:786,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:787,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:794,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:798,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:806,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:812,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c:816,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 3
    argNames:
    - ui
    - uis
    - result
    argTypes:
    - UI*
    - UI_STRING*
    - char*
    constantsTouched: []
    func_position:
      end: 826
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 826
    functionName: UI_set_result
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - OPENSSL_strlcpy
    - strchr
    - ERR_add_error_data
    - UIerr
    linkageType: ''
    returnType: int
    signature: UI_set_result(UI *ui, UI_STRING *uis, const char *result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UI_UTIL_read_pw
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_util.c:24,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_util.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - buf
    - length
    - prompt
    - verify
    argTypes:
    - char*
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 28
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 28
    functionName: UI_UTIL_read_pw_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_util.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    - UI_UTIL_read_pw
    linkageType: ''
    returnType: int
    signature: "UI_UTIL_read_pw_string(char *buf, int length, const char *prompt,\n
      \                          int verify)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UI_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_util.c:39,1
    - Dst: UI_add_input_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_util.c:41,1
    - Dst: UI_add_verify_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_util.c:43,1
    - Dst: UI_process
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_util.c:45,1
    - Dst: UI_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_util.c:46,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 5
    argNames:
    - buf
    - buff
    - size
    - prompt
    - verify
    argTypes:
    - char*
    - char*
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 51
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 51
    functionName: UI_UTIL_read_pw
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_util.c
    functionUses: 1
    functionsReached:
    - UI_add_input_string
    - UI_free
    - UI_add_verify_string
    - UI_process
    - UI_new
    linkageType: ''
    returnType: int
    signature: "UI_UTIL_read_pw(char *buf, char *buff, int size, const char *prompt,\n
      \                   int verify)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_err.c:66,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_err.c:67,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_err.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: ERR_load_UI_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_UI_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: UI_OpenSSL
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: UI_METHOD
    signature: '*UI_OpenSSL(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UI_get_string_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:217,1
    - Dst: fputs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:220,1
    - Dst: UI_get0_output_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:220,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ui
    - uis
    argTypes:
    - UI*
    - UI_STRING*
    constantsTouched: []
    func_position:
      end: 227
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 227
    functionName: write_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c
    functionUses: 2
    functionsReached:
    - UI_get_string_type
    - fflush
    - fputs
    - UI_get0_output_string
    linkageType: ''
    returnType: int
    signature: write_string(UI *ui, UI_STRING *uis)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UI_get_string_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:233,1
    - Dst: fputs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:235,1
    - Dst: UI_get0_output_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:235,1
    - Dst: fputs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:236,1
    - Dst: UI_get0_action_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:236,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:237,1
    - Dst: read_string_inner
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:238,1
    - Dst: UI_get_input_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:239,1
    - Dst: fputs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:242,1
    - Dst: UI_get0_output_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:242,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:243,1
    - Dst: read_string_inner
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:244,1
    - Dst: UI_get_input_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:245,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:248,1
    - Dst: UI_get0_output_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:248,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:249,1
    - Dst: read_string_inner
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:250,1
    - Dst: UI_get_input_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:251,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:254,1
    - Dst: UI_get0_result_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:254,1
    - Dst: UI_get0_test_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:254,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:255,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:256,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - ui
    - uis
    argTypes:
    - UI*
    - UI_STRING*
    constantsTouched: []
    func_position:
      end: 264
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 264
    functionName: read_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c
    functionUses: 1
    functionsReached:
    - UI_get0_action_string
    - fprintf
    - UI_get_input_flags
    - UI_get0_output_string
    - strcmp
    - UI_get0_test_string
    - UI_get_string_type
    - UI_get0_result_string
    - fputs
    - fflush
    - read_string_inner
    linkageType: ''
    returnType: int
    signature: read_string(UI *ui, UI_STRING *uis)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:274,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 278
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 278
    functionName: read_till_nl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached:
    - fgets
    - strchr
    linkageType: ''
    returnType: int
    signature: read_till_nl(FILE *in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pushsig
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:297,1
    - Dst: noecho_console
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:300,1
    - Dst: GetEnvironmentVariableW
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:309,1
    - Dst: ReadConsoleW
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:312,1
    - Dst: GetStdHandle
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:312,1
    - Dst: WideCharToMultiByte
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:321,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:325,1
    - Dst: ReadConsoleA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:329,1
    - Dst: GetStdHandle
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:329,1
    - Dst: noecho_fgets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:342,1
    - Dst: fgets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:346,1
    - Dst: feof
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:349,1
    - Dst: ferror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:351,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:353,1
    - Dst: read_till_nl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:356,1
    - Dst: UI_set_result
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:358,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:365,1
    - Dst: echo_console
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:366,1
    - Dst: popsig
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:370,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:375,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 69
    argCount: 4
    argNames:
    - ui
    - uis
    - echo
    - strip_nl
    argTypes:
    - UI*
    - UI_STRING*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 377
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 377
    functionName: read_string_inner
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c
    functionUses: 1
    functionsReached:
    - popsig
    - noecho_fgets
    - fprintf
    - GetStdHandle
    - WideCharToMultiByte
    - ReadConsoleA
    - pushsig
    - ReadConsoleW
    - ferror
    - noecho_console
    - fgets
    - strchr
    - read_till_nl
    - feof
    - OPENSSL_cleanse
    - echo_console
    - GetEnvironmentVariableW
    - UI_set_result
    linkageType: ''
    returnType: int
    signature: read_string_inner(UI *ui, UI_STRING *uis, int echo, int strip_nl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:382,1
    - Dst: fopen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:389,1
    - Dst: GetConsoleMode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:392,1
    - Dst: GetStdHandle
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:392,1
    - Dst: fopen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:396,1
    - Dst: fopen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:405,1
    - Dst: fopen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:407,1
    - Dst: TTY_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:412,1
    - Dst: fileno
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:412,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:438,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:439,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:440,1
    - Dst: sys$assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:447,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:453,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:454,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:455,1
    - Dst: sys$qiow
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:459,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    constantsTouched: []
    func_position:
      end: 467
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 467
    functionName: open_console
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached:
    - GetStdHandle
    - BIO_snprintf
    - sys$qiow
    - GetConsoleMode
    - CRYPTO_THREAD_write_lock
    - fileno
    - ERR_add_error_data
    - TTY_get
    - sys$assign
    - fopen
    - UIerr
    linkageType: ''
    returnType: int
    signature: open_console(UI *ui)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:472,1
    - Dst: TTY_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:477,1
    - Dst: fileno
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:477,1
    - Dst: sys$qiow
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:485,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:490,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:492,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:494,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:495,1
    - Dst: SetConsoleMode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:505,1
    - Dst: GetStdHandle
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:505,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    constantsTouched: []
    func_position:
      end: 509
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 509
    functionName: noecho_console
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c
    functionUses: 1
    functionsReached:
    - GetStdHandle
    - SetConsoleMode
    - sys$qiow
    - BIO_snprintf
    - fileno
    - memcpy
    - ERR_add_error_data
    - TTY_set
    - UIerr
    linkageType: ''
    returnType: int
    signature: noecho_console(UI *ui)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:514,1
    - Dst: TTY_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:519,1
    - Dst: fileno
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:519,1
    - Dst: sys$qiow
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:527,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:532,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:534,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:536,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:537,1
    - Dst: SetConsoleMode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:547,1
    - Dst: GetStdHandle
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:547,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    constantsTouched: []
    func_position:
      end: 551
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 551
    functionName: echo_console
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c
    functionUses: 1
    functionsReached:
    - GetStdHandle
    - SetConsoleMode
    - sys$qiow
    - BIO_snprintf
    - fileno
    - memcpy
    - ERR_add_error_data
    - TTY_set
    - UIerr
    linkageType: ''
    returnType: int
    signature: echo_console(UI *ui)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:556,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:558,1
    - Dst: sys$dassgn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:560,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:564,1
    - Dst: UIerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:565,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:566,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:570,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    constantsTouched: []
    func_position:
      end: 573
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 573
    functionName: close_console
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - fclose
    - ERR_add_error_data
    - CRYPTO_THREAD_unlock
    - sys$dassgn
    - UIerr
    linkageType: ''
    returnType: int
    signature: close_console(UI *ui)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:585,1
    - Dst: signal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:590,1
    - Dst: signal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:591,1
    - Dst: signal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:592,1
    - Dst: signal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:593,1
    - Dst: signal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:594,1
    - Dst: signal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:595,1
    - Dst: sigaction
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:611,1
    - Dst: signal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:613,1
    - Dst: signal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:619,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 621
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 621
    functionName: pushsig
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c
    functionUses: 1
    functionsReached:
    - signal
    - memset
    - sigaction
    linkageType: ''
    returnType: void
    signature: pushsig(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:626,1
    - Dst: signal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:627,1
    - Dst: signal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:628,1
    - Dst: signal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:629,1
    - Dst: signal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:630,1
    - Dst: signal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:631,1
    - Dst: sigaction
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:644,1
    - Dst: signal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:646,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 650
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 650
    functionName: popsig
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c
    functionUses: 1
    functionsReached:
    - signal
    - sigaction
    linkageType: ''
    returnType: void
    signature: popsig(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 655
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 655
    functionName: recsig
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: recsig(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:673,1
    - Dst: getch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:675,1
    - Dst: GetStdHandle
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:694,1
    - Dst: FlushConsoleInputBuffer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:695,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c:698,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - buf
    - size
    - tty
    argTypes:
    - char*
    - int
    - FILE*
    constantsTouched: []
    func_position:
      end: 699
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 699
    functionName: noecho_fgets
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c
    functionUses: 1
    functionsReached:
    - GetStdHandle
    - strlen
    - _getch
    - getch
    - FlushConsoleInputBuffer
    linkageType: ''
    returnType: int
    signature: noecho_fgets(char *buf, int size, FILE *tty)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_sign.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - type
    argTypes:
    - EVP_MD_CTX*
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: PEM_SignInit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_sign.c
    functionUses: 0
    functionsReached:
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_sign.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: PEM_SignUpdate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_sign.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    linkageType: ''
    returnType: int
    signature: PEM_SignUpdate(EVP_MD_CTX *ctx, unsigned char *data, unsigned int count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_sign.c:34,1
    - Dst: EVP_PKEY_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_sign.c:34,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_sign.c:36,1
    - Dst: EVP_SignFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_sign.c:40,1
    - Dst: EVP_EncodeBlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_sign.c:43,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_sign.c:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - sigret
    - siglen
    - pkey
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - unsigned int*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 50
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 50
    functionName: PEM_SignFinal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_sign.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - EVP_EncodeBlock
    - EVP_SignFinal
    - OPENSSL_free
    - OPENSSL_malloc
    - EVP_PKEY_size
    linkageType: ''
    returnType: int
    signature: "PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret,\n                  unsigned
      int *siglen, EVP_PKEY *pkey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PEM_bytes_read_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:35,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:39,1
    - Dst: d2i_PKCS8_PRIV_KEY_INFO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:41,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:44,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:46,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:49,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:50,1
    - Dst: d2i_X509_SIG
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:55,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:59,1
    - Dst: PEM_def_callback
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:61,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:63,1
    - Dst: X509_SIG_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:64,1
    - Dst: PKCS8_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:67,1
    - Dst: X509_SIG_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:68,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:71,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:73,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:76,1
    - Dst: pem_check_suffix
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:77,1
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:79,1
    - Dst: d2i_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:82,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:86,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:88,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:89,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 4
    argNames:
    - bp
    - x
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY**
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 91
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 91
    functionName: PEM_read_bio_PrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c
    functionUses: 1
    functionsReached:
    - EVP_PKCS82PKEY
    - strcmp
    - PEMerr
    - PKCS8_decrypt
    - pem_check_suffix
    - X509_SIG_free
    - cb
    - PEM_def_callback
    - d2i_PrivateKey
    - PEM_bytes_read_bio
    - PKCS8_PRIV_KEY_INFO_free
    - d2i_PKCS8_PRIV_KEY_INFO
    - EVP_PKEY_asn1_find_str
    - OPENSSL_clear_free
    - OPENSSL_free
    - d2i_X509_SIG
    - EVP_PKEY_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: "*PEM_read_bio_PrivateKey(BIO *bp, EVP_PKEY **x, pem_password_cb *cb,\n
      \                                 void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PEM_write_bio_PKCS8PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:98,1
    - Dst: PEM_write_bio_PrivateKey_traditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 7
    argNames:
    - bp
    - x
    - enc
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY*
    - EVP_CIPHER*
    - unsigned char*
    - int
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: PEM_write_bio_PrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - PEM_write_bio_PrivateKey_traditional
    - PEM_write_bio_PKCS8PrivateKey
    linkageType: ''
    returnType: int
    signature: "PEM_write_bio_PrivateKey(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc,\n
      \                            unsigned char *kstr, int klen,\n                             pem_password_cb
      *cb, void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:109,1
    - Dst: PEM_ASN1_write_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - bp
    - x
    - enc
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY*
    - EVP_CIPHER*
    - unsigned char*
    - int
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: PEM_write_bio_PrivateKey_traditional
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c
    functionUses: 1
    functionsReached:
    - BIO_snprintf
    - PEM_ASN1_write_bio
    linkageType: ''
    returnType: int
    signature: "PEM_write_bio_PrivateKey_traditional(BIO *bp, EVP_PKEY *x,\n                                         const
      EVP_CIPHER *enc,\n                                         unsigned char *kstr,
      int klen,\n                                         pem_password_cb *cb, void
      *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PEM_bytes_read_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:123,1
    - Dst: pem_check_suffix
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:128,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:129,1
    - Dst: EVP_PKEY_set_type_str
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:132,1
    - Dst: EVP_PKEY*::ameth::param_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:134,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:135,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:140,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:146,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:147,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:148,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - EVP_PKEY**
    constantsTouched: []
    func_position:
      end: 150
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 150
    functionName: PEM_read_bio_Parameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - EVP_PKEY_set_type_str
    - PEM_bytes_read_bio
    - EVP_PKEY*::ameth::param_decode
    - EVP_PKEY_new
    - OPENSSL_free
    - pem_check_suffix
    - EVP_PKEY_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:158,1
    - Dst: PEM_ASN1_write_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 161
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 161
    functionName: PEM_write_bio_Parameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - PEM_ASN1_write_bio
    linkageType: ''
    returnType: int
    signature: PEM_write_bio_Parameters(BIO *bp, EVP_PKEY *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:170,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:170,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:171,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:174,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:175,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - fp
    - x
    - cb
    - u
    argTypes:
    - FILE*
    - EVP_PKEY**
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 178
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 178
    functionName: PEM_read_PrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - BIO_s_file
    - PEM_read_bio_PrivateKey
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: EVP_PKEY
    signature: "*PEM_read_PrivateKey(FILE *fp, EVP_PKEY **x, pem_password_cb *cb,\n
      \                             void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:187,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:188,1
    - Dst: PEM_write_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:191,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 7
    argNames:
    - fp
    - x
    - enc
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - FILE*
    - EVP_PKEY*
    - EVP_CIPHER*
    - unsigned char*
    - int
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 194
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 194
    functionName: PEM_write_PrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - BIO_new_fp
    - BIO_free
    - PEM_write_bio_PrivateKey
    linkageType: ''
    returnType: int
    signature: "PEM_write_PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc,\n
      \                        unsigned char *kstr, int klen,\n                         pem_password_cb
      *cb, void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PEM_bytes_read_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:210,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:214,1
    - Dst: d2i_DHxparams
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:215,1
    - Dst: d2i_DHparams
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:217,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:220,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:221,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - bp
    - x
    - cb
    - u
    argTypes:
    - BIO*
    - DH**
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 224
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 224
    functionName: PEM_read_bio_DHparams
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PEMerr
    - PEM_bytes_read_bio
    - d2i_DHxparams
    - d2i_DHparams
    - OPENSSL_free
    linkageType: ''
    returnType: DH
    signature: '*PEM_read_bio_DHparams(BIO *bp, DH **x, pem_password_cb *cb, void
      *u)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:232,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:232,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:233,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:236,1
    - Dst: PEM_read_bio_DHparams
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:237,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - fp
    - x
    - cb
    - u
    argTypes:
    - FILE*
    - DH**
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 240
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 240
    functionName: PEM_read_DHparams
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - BIO_s_file
    - BIO_free
    - PEM_read_bio_DHparams
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: DH
    signature: '*PEM_read_DHparams(FILE *fp, DH **x, pem_password_cb *cb, void *u)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get1_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c:52,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c:53,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - key
    - rsa
    argTypes:
    - EVP_PKEY*
    - RSA**
    constantsTouched: []
    func_position:
      end: 61
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 61
    functionName: pkey_get_rsa
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - RSA_free
    - EVP_PKEY_get1_RSA
    - EVP_PKEY_free
    linkageType: ''
    returnType: RSA
    signature: '*pkey_get_rsa(EVP_PKEY *key, RSA **rsa)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c:67,1
    - Dst: pkey_get_rsa
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - bp
    - rsa
    - cb
    - u
    argTypes:
    - BIO*
    - RSA**
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: PEM_read_bio_RSAPrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_PrivateKey
    - pkey_get_rsa
    linkageType: ''
    returnType: RSA
    signature: "*PEM_read_bio_RSAPrivateKey(BIO *bp, RSA **rsa, pem_password_cb *cb,\n
      \                               void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c:76,1
    - Dst: pkey_get_rsa
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - fp
    - rsa
    - cb
    - u
    argTypes:
    - FILE*
    - RSA**
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: PEM_read_RSAPrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - pkey_get_rsa
    - PEM_read_PrivateKey
    linkageType: ''
    returnType: RSA
    signature: '*PEM_read_RSAPrivateKey(FILE *fp, RSA **rsa, pem_password_cb *cb,
      void *u)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get1_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c:97,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c:98,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - key
    - dsa
    argTypes:
    - EVP_PKEY*
    - DSA**
    constantsTouched: []
    func_position:
      end: 106
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 106
    functionName: pkey_get_dsa
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - DSA_free
    - EVP_PKEY_free
    - EVP_PKEY_get1_DSA
    linkageType: ''
    returnType: DSA
    signature: '*pkey_get_dsa(EVP_PKEY *key, DSA **dsa)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c:112,1
    - Dst: pkey_get_dsa
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - bp
    - dsa
    - cb
    - u
    argTypes:
    - BIO*
    - DSA**
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: PEM_read_bio_DSAPrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_PrivateKey
    - pkey_get_dsa
    linkageType: ''
    returnType: DSA
    signature: "*PEM_read_bio_DSAPrivateKey(BIO *bp, DSA **dsa, pem_password_cb *cb,\n
      \                               void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c:123,1
    - Dst: pkey_get_dsa
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - fp
    - dsa
    - cb
    - u
    argTypes:
    - FILE*
    - DSA**
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: PEM_read_DSAPrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - pkey_get_dsa
    - PEM_read_PrivateKey
    linkageType: ''
    returnType: DSA
    signature: '*PEM_read_DSAPrivateKey(FILE *fp, DSA **dsa, pem_password_cb *cb,
      void *u)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get1_EC_KEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c:137,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c:138,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - key
    - eckey
    argTypes:
    - EVP_PKEY*
    - EC_KEY**
    constantsTouched: []
    func_position:
      end: 146
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 146
    functionName: pkey_get_eckey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get1_EC_KEY
    - EC_KEY_free
    - EVP_PKEY_free
    linkageType: ''
    returnType: EC_KEY
    signature: '*pkey_get_eckey(EVP_PKEY *key, EC_KEY **eckey)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c:152,1
    - Dst: pkey_get_eckey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - bp
    - key
    - cb
    - u
    argTypes:
    - BIO*
    - EC_KEY**
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: PEM_read_bio_ECPrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_PrivateKey
    - pkey_get_eckey
    linkageType: ''
    returnType: EC_KEY
    signature: "*PEM_read_bio_ECPrivateKey(BIO *bp, EC_KEY **key, pem_password_cb
      *cb,\n                                  void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c:168,1
    - Dst: pkey_get_eckey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - fp
    - eckey
    - cb
    - u
    argTypes:
    - FILE*
    - EC_KEY**
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 170
    functionName: PEM_read_ECPrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - pkey_get_eckey
    - PEM_read_PrivateKey
    linkageType: ''
    returnType: EC_KEY
    signature: "*PEM_read_ECPrivateKey(FILE *fp, EC_KEY **eckey, pem_password_cb *cb,\n
      \                             void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PEM_bytes_read_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_oth.c:28,1
    - Dst: d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_oth.c:31,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_oth.c:33,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_oth.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - d2i
    - name
    - bp
    - x
    - cb
    - u
    argTypes:
    - d2i_of_void*
    - char*
    - BIO*
    - void**
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 36
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 36
    functionName: PEM_ASN1_read_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_oth.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - d2i
    - OPENSSL_free
    - PEM_bytes_read_bio
    linkageType: ''
    returnType: void
    signature: "*PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp, void
      **x,\n                        pem_password_cb *cb, void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - bp
    - x
    - nid
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - char*
    - int
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: PEM_write_bio_PKCS8PrivateKey_nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - do_pk8pkey
    linkageType: ''
    returnType: int
    signature: "PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, EVP_PKEY *x, int nid,\n
      \                                     char *kstr, int klen,\n                                      pem_password_cb
      *cb, void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - bp
    - x
    - enc
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY*
    - EVP_CIPHER*
    - char*
    - int
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: PEM_write_bio_PKCS8PrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c
    functionUses: 1
    functionsReached:
    - do_pk8pkey
    linkageType: ''
    returnType: int
    signature: "PEM_write_bio_PKCS8PrivateKey(BIO *bp, EVP_PKEY *x, const EVP_CIPHER
      *enc,\n                                  char *kstr, int klen,\n                                  pem_password_cb
      *cb, void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - bp
    - x
    - enc
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY*
    - EVP_CIPHER*
    - char*
    - int
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: i2d_PKCS8PrivateKey_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - do_pk8pkey
    linkageType: ''
    returnType: int
    signature: "i2d_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc,\n
      \                           char *kstr, int klen,\n                            pem_password_cb
      *cb, void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - bp
    - x
    - nid
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - char*
    - int
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: i2d_PKCS8PrivateKey_nid_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - do_pk8pkey
    linkageType: ''
    returnType: int
    signature: "i2d_PKCS8PrivateKey_nid_bio(BIO *bp, EVP_PKEY *x, int nid,\n                                char
      *kstr, int klen,\n                                pem_password_cb *cb, void
      *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY2PKCS8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:72,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:73,1
    - Dst: PEM_def_callback
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:79,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:81,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:83,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:84,1
    - Dst: PKCS8_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:90,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:92,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:93,1
    - Dst: i2d_PKCS8_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:97,1
    - Dst: PEM_write_bio_PKCS8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:99,1
    - Dst: X509_SIG_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:100,1
    - Dst: i2d_PKCS8_PRIV_KEY_INFO_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:104,1
    - Dst: PEM_write_bio_PKCS8_PRIV_KEY_INFO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:106,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:107,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 9
    argNames:
    - bp
    - x
    - isder
    - nid
    - enc
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - int
    - EVP_CIPHER*
    - char*
    - int
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 110
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 110
    functionName: do_pk8pkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c
    functionUses: 4
    functionsReached:
    - PKCS8_encrypt
    - PEM_write_bio_PKCS8_PRIV_KEY_INFO
    - PEMerr
    - EVP_PKEY2PKCS8
    - i2d_PKCS8_PRIV_KEY_INFO_bio
    - cb
    - PEM_def_callback
    - PEM_write_bio_PKCS8
    - PKCS8_PRIV_KEY_INFO_free
    - i2d_PKCS8_bio
    - OPENSSL_cleanse
    - X509_SIG_free
    linkageType: ''
    returnType: int
    signature: "do_pk8pkey(BIO *bp, EVP_PKEY *x, int isder, int nid,\n                      const
      EVP_CIPHER *enc, char *kstr, int klen,\n                      pem_password_cb
      *cb, void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PKCS8_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:120,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:124,1
    - Dst: PEM_def_callback
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:126,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:128,1
    - Dst: X509_SIG_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:129,1
    - Dst: PKCS8_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:132,1
    - Dst: X509_SIG_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:133,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:136,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:137,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - bp
    - x
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY**
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 145
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 145
    functionName: d2i_PKCS8PrivateKey_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKCS82PKEY
    - PEMerr
    - PKCS8_decrypt
    - cb
    - PEM_def_callback
    - d2i_PKCS8_bio
    - PKCS8_PRIV_KEY_INFO_free
    - X509_SIG_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: "*d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb,\n
      \                                 void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - fp
    - x
    - enc
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - FILE*
    - EVP_PKEY*
    - EVP_CIPHER*
    - char*
    - int
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: i2d_PKCS8PrivateKey_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - do_pk8pkey_fp
    linkageType: ''
    returnType: int
    signature: "i2d_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc,\n
      \                          char *kstr, int klen, pem_password_cb *cb, void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - fp
    - x
    - nid
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - FILE*
    - EVP_PKEY*
    - int
    - char*
    - int
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: i2d_PKCS8PrivateKey_nid_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - do_pk8pkey_fp
    linkageType: ''
    returnType: int
    signature: "i2d_PKCS8PrivateKey_nid_fp(FILE *fp, EVP_PKEY *x, int nid,\n                               char
      *kstr, int klen,\n                               pem_password_cb *cb, void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - fp
    - x
    - nid
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - FILE*
    - EVP_PKEY*
    - int
    - char*
    - int
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: PEM_write_PKCS8PrivateKey_nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - do_pk8pkey_fp
    linkageType: ''
    returnType: int
    signature: "PEM_write_PKCS8PrivateKey_nid(FILE *fp, EVP_PKEY *x, int nid,\n                                  char
      *kstr, int klen,\n                                  pem_password_cb *cb, void
      *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - fp
    - x
    - enc
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - FILE*
    - EVP_PKEY*
    - EVP_CIPHER*
    - char*
    - int
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: PEM_write_PKCS8PrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - do_pk8pkey_fp
    linkageType: ''
    returnType: int
    signature: "PEM_write_PKCS8PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER
      *enc,\n                              char *kstr, int klen, pem_password_cb *cb,\n
      \                             void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:183,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:184,1
    - Dst: do_pk8pkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:187,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 9
    argNames:
    - fp
    - x
    - isder
    - nid
    - enc
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - FILE*
    - EVP_PKEY*
    - int
    - int
    - EVP_CIPHER*
    - char*
    - int
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 190
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 190
    functionName: do_pk8pkey_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c
    functionUses: 4
    functionsReached:
    - PEMerr
    - BIO_new_fp
    - BIO_free
    - do_pk8pkey
    linkageType: ''
    returnType: int
    signature: "do_pk8pkey_fp(FILE *fp, EVP_PKEY *x, int isder, int nid,\n                         const
      EVP_CIPHER *enc, char *kstr, int klen,\n                         pem_password_cb
      *cb, void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:198,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:199,1
    - Dst: d2i_PKCS8PrivateKey_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:202,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - fp
    - x
    - cb
    - u
    argTypes:
    - FILE*
    - EVP_PKEY**
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 205
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 205
    functionName: d2i_PKCS8PrivateKey_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - BIO_new_fp
    - BIO_free
    - d2i_PKCS8PrivateKey_bio
    linkageType: ''
    returnType: EVP_PKEY
    signature: "*d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb,\n
      \                                void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_info.c:258,1
    - Dst: EVP_CIPHER_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_info.c:258,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_info.c:260,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_info.c:273,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_info.c:287,1
    - Dst: EVP_CIPHER_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_info.c:287,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_info.c:289,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_info.c:295,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_info.c:295,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_info.c:296,1
    - Dst: PEM_proc_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_info.c:299,1
    - Dst: PEM_dek_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_info.c:300,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_info.c:300,1
    - Dst: PEM_write_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_info.c:304,1
    - Dst: PEM_write_bio_RSAPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_info.c:311,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_info.c:312,1
    - Dst: PEM_write_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_info.c:320,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_info.c:332,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 7
    argNames:
    - bp
    - xi
    - enc
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - BIO*
    - X509_INFO*
    - EVP_CIPHER*
    - unsigned char*
    - int
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 334
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 334
    functionName: PEM_X509_INFO_write_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_info.c
    functionUses: 0
    functionsReached:
    - PEM_write_bio_X509
    - EVP_PKEY_get0_RSA
    - OPENSSL_assert
    - PEMerr
    - PEM_proc_type
    - PEM_write_bio
    - OBJ_nid2sn
    - strlen
    - PEM_dek_info
    - PEM_write_bio_RSAPrivateKey
    - OPENSSL_cleanse
    - EVP_CIPHER_iv_length
    - EVP_CIPHER_nid
    linkageType: ''
    returnType: int
    signature: "PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc,\n
      \                           unsigned char *kstr, int klen,\n                            pem_password_cb
      *cb, void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_err.c:109,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_err.c:110,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_err.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 115
    functionName: ERR_load_PEM_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_PEM_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - in
    argTypes:
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: read_ledword
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: read_ledword(const unsigned char **in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_lebin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - in
    - nbyte
    - r
    argTypes:
    - unsigned char**
    - unsigned int
    - BIGNUM**
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: read_lebn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - BN_lebin2bn
    linkageType: ''
    returnType: int
    signature: read_lebn(const unsigned char **in, unsigned int nbyte, BIGNUM **r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:96,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:102,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:111,1
    - Dst: read_ledword
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:116,1
    - Dst: read_ledword
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:117,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:125,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:134,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:140,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 6
    argNames:
    - in
    - length
    - pmagic
    - pbitlen
    - pisdss
    - pispub
    argTypes:
    - unsigned char**
    - unsigned int
    - unsigned int*
    - unsigned int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 145
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 145
    functionName: do_blob_header
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - read_ledword
    linkageType: ''
    returnType: int
    signature: "do_blob_header(const unsigned char **in, unsigned int length,\n                          unsigned
      int *pmagic, unsigned int *pbitlen,\n                          int *pisdss,
      int *pispub)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - bitlen
    - isdss
    - ispub
    argTypes:
    - unsigned
    - int
    - int
    constantsTouched: []
    func_position:
      end: 178
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 178
    functionName: blob_length
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: blob_length(unsigned bitlen, int isdss, int ispub)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_blob_header
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:186,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:187,1
    - Dst: blob_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:191,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:192,1
    - Dst: b2i_dss
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:196,1
    - Dst: b2i_rsa
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - in
    - length
    - ispub
    argTypes:
    - unsigned char**
    - unsigned int
    - int
    constantsTouched: []
    func_position:
      end: 199
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 199
    functionName: do_b2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - blob_length
    - b2i_dss
    - b2i_rsa
    - PEMerr
    - do_blob_header
    linkageType: ''
    returnType: EVP_PKEY
    signature: "*do_b2i(const unsigned char **in, unsigned int length,\n                        int
      ispub)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:208,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:209,1
    - Dst: do_blob_header
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:213,1
    - Dst: blob_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:216,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:218,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:221,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:223,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:227,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:228,1
    - Dst: b2i_dss
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:233,1
    - Dst: b2i_rsa
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:235,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:238,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - in
    - ispub
    argTypes:
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 240
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 240
    functionName: do_b2i_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - blob_length
    - b2i_dss
    - b2i_rsa
    - PEMerr
    - OPENSSL_free
    - do_blob_header
    - BIO_read
    - OPENSSL_malloc
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*do_b2i_bio(BIO *in, int ispub)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:255,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:256,1
    - Dst: read_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:259,1
    - Dst: read_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:262,1
    - Dst: read_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:265,1
    - Dst: read_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:269,1
    - Dst: read_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:272,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:276,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:279,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:282,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:285,1
    - Dst: DSA_set0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:287,1
    - Dst: DSA_set0_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:290,1
    - Dst: EVP_PKEY_set1_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:293,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:294,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:299,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:300,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:301,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:302,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:303,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:304,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:305,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:306,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:307,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 59
    argCount: 3
    argNames:
    - in
    - bitlen
    - ispub
    argTypes:
    - unsigned char**
    - unsigned int
    - int
    constantsTouched: []
    func_position:
      end: 309
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 309
    functionName: b2i_dss
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 2
    functionsReached:
    - DSA_new
    - BN_new
    - EVP_PKEY_free
    - DSA_set0_key
    - BN_free
    - PEMerr
    - BN_mod_exp
    - DSA_free
    - EVP_PKEY_set1_DSA
    - BN_CTX_free
    - BN_CTX_new
    - DSA_set0_pqg
    - EVP_PKEY_new
    - read_lebn
    linkageType: ''
    returnType: EVP_PKEY
    signature: "*b2i_dss(const unsigned char **in,\n                         unsigned
      int bitlen, int ispub)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:322,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:323,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:326,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:329,1
    - Dst: read_ledword
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:329,1
    - Dst: read_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:331,1
    - Dst: read_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:334,1
    - Dst: read_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:336,1
    - Dst: read_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:338,1
    - Dst: read_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:340,1
    - Dst: read_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:342,1
    - Dst: read_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:344,1
    - Dst: RSA_set0_factors
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:346,1
    - Dst: RSA_set0_crt_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:347,1
    - Dst: RSA_set0_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:349,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:351,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:352,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:356,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:357,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:358,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:359,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:360,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:361,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:362,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:363,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:364,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:365,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:366,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 3
    argNames:
    - in
    - bitlen
    - ispub
    argTypes:
    - unsigned char**
    - unsigned int
    - int
    constantsTouched: []
    func_position:
      end: 368
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 368
    functionName: b2i_rsa
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 2
    functionsReached:
    - BN_new
    - EVP_PKEY_free
    - RSA_set0_factors
    - BN_free
    - PEMerr
    - read_ledword
    - RSA_set0_crt_params
    - RSA_new
    - BN_set_word
    - EVP_PKEY_set1_RSA
    - RSA_free
    - EVP_PKEY_new
    - RSA_set0_key
    - read_lebn
    linkageType: ''
    returnType: EVP_PKEY
    signature: "*b2i_rsa(const unsigned char **in,\n                         unsigned
      int bitlen, int ispub)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_b2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - length
    argTypes:
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: b2i_PrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - do_b2i
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*b2i_PrivateKey(const unsigned char **in, long length)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_b2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - length
    argTypes:
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 378
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 378
    functionName: b2i_PublicKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - do_b2i
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*b2i_PublicKey(const unsigned char **in, long length)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_b2i_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: b2i_PrivateKey_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - do_b2i_bio
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*b2i_PrivateKey_bio(BIO *in)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_b2i_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 388
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 388
    functionName: b2i_PublicKey_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - do_b2i_bio
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*b2i_PublicKey_bio(BIO *in)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - dw
    argTypes:
    - unsigned char**
    - unsigned int
    constantsTouched: []
    func_position:
      end: 398
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 398
    functionName: write_ledword
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: write_ledword(unsigned char **out, unsigned int dw)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_bn2lebinpad
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - bn
    - len
    argTypes:
    - unsigned char**
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 404
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 404
    functionName: write_lebn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - BN_bn2lebinpad
    linkageType: ''
    returnType: void
    signature: write_lebn(unsigned char **out, const BIGNUM *bn, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_bitlen_dsa
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:419,1
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:419,1
    - Dst: check_bitlen_rsa
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:422,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:422,1
    - Dst: blob_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:428,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:435,1
    - Dst: write_ledword
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:448,1
    - Dst: write_ledword
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:449,1
    - Dst: write_ledword
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:450,1
    - Dst: write_dsa
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:452,1
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:452,1
    - Dst: write_rsa
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:454,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:454,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 3
    argNames:
    - out
    - pk
    - ispub
    argTypes:
    - unsigned char**
    - EVP_PKEY*
    - int
    constantsTouched: []
    func_position:
      end: 458
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 458
    functionName: do_i2b
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - blob_length
    - check_bitlen_rsa
    - EVP_PKEY_get0_DSA
    - EVP_PKEY_get0_RSA
    - write_rsa
    - write_dsa
    - write_ledword
    - check_bitlen_dsa
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: do_i2b(unsigned char **out, EVP_PKEY *pk, int ispub)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_i2b
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:464,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:467,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - out
    - pk
    - ispub
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    constantsTouched: []
    func_position:
      end: 472
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 472
    functionName: do_i2b_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BIO_write
    - do_i2b
    linkageType: ''
    returnType: int
    signature: do_i2b_bio(BIO *out, EVP_PKEY *pk, int ispub)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA_get0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:480,1
    - Dst: DSA_get0_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:481,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:482,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:483,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:484,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:487,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:491,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:498,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - dsa
    - ispub
    - pmagic
    argTypes:
    - DSA*
    - int
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 500
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 500
    functionName: check_bitlen_dsa
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 1
    functionsReached:
    - PEMerr
    - BN_num_bits
    - DSA_get0_pqg
    - DSA_get0_key
    linkageType: ''
    returnType: int
    signature: check_bitlen_dsa(DSA *dsa, int ispub, unsigned int *pmagic)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_get0_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:507,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:508,1
    - Dst: RSA_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:510,1
    - Dst: RSA_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:511,1
    - Dst: RSA_get0_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:524,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:525,1
    - Dst: RSA_get0_factors
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:527,1
    - Dst: RSA_get0_crt_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:528,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:529,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:530,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:531,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:532,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:533,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:538,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - rsa
    - ispub
    - pmagic
    argTypes:
    - RSA*
    - int
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 540
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 540
    functionName: check_bitlen_rsa
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 1
    functionsReached:
    - RSA_get0_key
    - RSA_size
    - PEMerr
    - RSA_get0_factors
    - RSA_bits
    - RSA_get0_crt_params
    - BN_num_bits
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: check_bitlen_rsa(RSA *rsa, int ispub, unsigned int *pmagic)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:547,1
    - Dst: RSA_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:548,1
    - Dst: RSA_get0_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:549,1
    - Dst: write_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:550,1
    - Dst: write_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:551,1
    - Dst: RSA_get0_factors
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:554,1
    - Dst: RSA_get0_crt_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:555,1
    - Dst: write_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:556,1
    - Dst: write_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:557,1
    - Dst: write_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:558,1
    - Dst: write_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:559,1
    - Dst: write_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:560,1
    - Dst: write_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - out
    - rsa
    - ispub
    argTypes:
    - unsigned char**
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 562
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 562
    functionName: write_rsa
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 1
    functionsReached:
    - RSA_get0_key
    - RSA_size
    - RSA_get0_factors
    - RSA_bits
    - RSA_get0_crt_params
    - write_lebn
    linkageType: ''
    returnType: void
    signature: write_rsa(unsigned char **out, RSA *rsa, int ispub)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA_get0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:570,1
    - Dst: DSA_get0_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:571,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:572,1
    - Dst: write_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:573,1
    - Dst: write_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:574,1
    - Dst: write_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:575,1
    - Dst: write_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:577,1
    - Dst: write_lebn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:579,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - out
    - dsa
    - ispub
    argTypes:
    - unsigned char**
    - DSA*
    - int
    constantsTouched: []
    func_position:
      end: 584
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 584
    functionName: write_dsa
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 1
    functionsReached:
    - DSA_get0_key
    - memset
    - write_lebn
    - DSA_get0_pqg
    - BN_num_bytes
    linkageType: ''
    returnType: void
    signature: write_dsa(unsigned char **out, DSA *dsa, int ispub)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_i2b_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - pk
    argTypes:
    - BIO*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 589
      start: 586
    functionDepth: 3
    functionLinenumber: 586
    functionLinenumberEnd: 589
    functionName: i2b_PrivateKey_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - do_i2b_bio
    linkageType: ''
    returnType: int
    signature: i2b_PrivateKey_bio(BIO *out, EVP_PKEY *pk)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_i2b_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - pk
    argTypes:
    - BIO*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 594
      start: 591
    functionDepth: 3
    functionLinenumber: 591
    functionLinenumberEnd: 594
    functionName: i2b_PublicKey_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - do_i2b_bio
    linkageType: ''
    returnType: int
    signature: i2b_PublicKey_bio(BIO *out, EVP_PKEY *pk)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:606,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:611,1
    - Dst: read_ledword
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:614,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:616,1
    - Dst: read_ledword
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:624,1
    - Dst: read_ledword
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:625,1
    - Dst: read_ledword
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:626,1
    - Dst: read_ledword
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:627,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:633,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - in
    - length
    - skip_magic
    - psaltlen
    - pkeylen
    argTypes:
    - unsigned char**
    - unsigned int
    - int
    - unsigned int*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 639
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 639
    functionName: do_PVK_header
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - read_ledword
    linkageType: ''
    returnType: int
    signature: "do_PVK_header(const unsigned char **in, unsigned int length,\n                         int
      skip_magic,\n                         unsigned int *psaltlen, unsigned int *pkeylen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:645,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:648,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:648,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:649,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:650,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:651,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:654,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 5
    argNames:
    - key
    - salt
    - saltlen
    - pass
    - passlen
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 656
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 656
    functionName: derive_pvk_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_sha1
    - EVP_DigestUpdate
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: "derive_pvk_key(unsigned char *key,\n                          const
      unsigned char *salt, unsigned int saltlen,\n                          const
      unsigned char *pass, int passlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:667,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:673,1
    - Dst: PEM_def_callback
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:675,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:677,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:680,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:682,1
    - Dst: derive_pvk_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:685,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:690,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:693,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:698,1
    - Dst: EVP_rc4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:698,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:700,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:702,1
    - Dst: read_ledword
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:704,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:707,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:708,1
    - Dst: EVP_rc4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:708,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:710,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:711,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:713,1
    - Dst: read_ledword
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:715,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:717,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:721,1
    - Dst: b2i_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:725,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:727,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:728,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 68
    argCount: 5
    argNames:
    - in
    - saltlen
    - keylen
    - cb
    - u
    argTypes:
    - unsigned char**
    - unsigned int
    - unsigned int
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 730
      start: 658
    functionDepth: 4
    functionLinenumber: 658
    functionLinenumberEnd: 730
    functionName: do_PVK_body
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_free
    - EVP_rc4
    - PEMerr
    - EVP_DecryptFinal_ex
    - read_ledword
    - memset
    - cb
    - PEM_def_callback
    - memcpy
    - EVP_DecryptUpdate
    - b2i_PrivateKey
    - EVP_DecryptInit_ex
    - derive_pvk_key
    - OPENSSL_cleanse
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: EVP_PKEY
    signature: "*do_PVK_body(const unsigned char **in,\n                             unsigned
      int saltlen, unsigned int keylen,\n                             pem_password_cb
      *cb, void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:739,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:740,1
    - Dst: do_PVK_header
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:745,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:748,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:750,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:754,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:755,1
    - Dst: do_PVK_body
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:758,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:761,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - in
    - cb
    - u
    argTypes:
    - BIO*
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 763
      start: 732
    functionDepth: 5
    functionLinenumber: 732
    functionLinenumberEnd: 763
    functionName: b2i_PVK_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - do_PVK_header
    - PEMerr
    - OPENSSL_clear_free
    - do_PVK_body
    - BIO_read
    - OPENSSL_malloc
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_i2b
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:773,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:782,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:784,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:789,1
    - Dst: write_ledword
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:793,1
    - Dst: write_ledword
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:794,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:795,1
    - Dst: write_ledword
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:796,1
    - Dst: write_ledword
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:798,1
    - Dst: write_ledword
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:799,1
    - Dst: write_ledword
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:800,1
    - Dst: write_ledword
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:801,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:803,1
    - Dst: do_i2b
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:808,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:814,1
    - Dst: PEM_def_callback
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:816,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:818,1
    - Dst: derive_pvk_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:821,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:825,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:827,1
    - Dst: EVP_rc4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:827,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:829,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:830,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:832,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:836,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:844,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:846,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 74
    argCount: 5
    argNames:
    - out
    - pk
    - enclevel
    - cb
    - u
    argTypes:
    - unsigned char**
    - EVP_PKEY*
    - int
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 848
      start: 765
    functionDepth: 2
    functionLinenumber: 765
    functionLinenumberEnd: 848
    functionName: i2b_PVK
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - EVP_EncryptInit_ex
    - RAND_bytes
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_free
    - EVP_rc4
    - PEMerr
    - EVP_DecryptFinal_ex
    - EVP_PKEY_id
    - do_i2b
    - write_ledword
    - memset
    - cb
    - PEM_def_callback
    - EVP_DecryptUpdate
    - derive_pvk_key
    - OPENSSL_cleanse
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "i2b_PVK(unsigned char **out, EVP_PKEY *pk, int enclevel,\n                   pem_password_cb
      *cb, void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2b_PVK
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:855,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:858,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:859,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c:861,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - out
    - pk
    - enclevel
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 865
      start: 850
    functionDepth: 3
    functionLinenumber: 850
    functionLinenumberEnd: 865
    functionName: i2b_PVK_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - OPENSSL_free
    - BIO_write
    - i2b_PVK
    linkageType: ''
    returnType: int
    signature: "i2b_PVK_bio(BIO *out, EVP_PKEY *pk, int enclevel,\n                pem_password_cb
      *cb, void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:41,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:43,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:48,1
    - Dst: EVP_get_pw_prompt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:51,1
    - Dst: EVP_read_pw_string_min
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:62,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:64,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:65,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:68,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:70,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - buf
    - num
    - w
    - key
    argTypes:
    - char*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 78
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 78
    functionName: PEM_def_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c
    functionUses: 5
    functionsReached:
    - PEMerr
    - EVP_read_pw_string_min
    - memset
    - strlen
    - memcpy
    - EVP_get_pw_prompt
    - fprintf
    linkageType: ''
    returnType: int
    signature: PEM_def_callback(char *buf, int num, int w, void *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:93,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:94,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - type
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 96
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 96
    functionName: PEM_proc_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_strlcat
    linkageType: ''
    returnType: void
    signature: PEM_proc_type(char *buf, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:104,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:105,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:106,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - buf
    - type
    - len
    - str
    argTypes:
    - char*
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 116
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 116
    functionName: PEM_dek_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c
    functionUses: 1
    functionsReached:
    - strlen
    - OPENSSL_strlcat
    linkageType: ''
    returnType: void
    signature: PEM_dek_info(char *buf, const char *type, int len, char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:125,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:125,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:126,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:129,1
    - Dst: PEM_ASN1_read_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:130,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - d2i
    - name
    - fp
    - x
    - cb
    - u
    argTypes:
    - d2i_of_void*
    - char*
    - FILE*
    - void**
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 133
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 133
    functionName: PEM_ASN1_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - PEM_ASN1_read_bio
    - BIO_new
    linkageType: ''
    returnType: void
    signature: "*PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void
      **x,\n                    pem_password_cb *cb, void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:139,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:144,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:147,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:149,1
    - Dst: pem_check_suffix
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:151,1
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:157,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:164,1
    - Dst: pem_check_suffix
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:167,1
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:170,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:178,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:186,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:187,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:192,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:193,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:196,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:197,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:201,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:202,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:205,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:206,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:210,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:211,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:214,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:215,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:219,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:220,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:223,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:224,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 49
    argCount: 2
    argNames:
    - nm
    - name
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 229
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 229
    functionName: check_pem
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - pem_check_suffix
    - ENGINE_finish
    - EVP_PKEY_asn1_find_str
    - strcmp
    linkageType: ''
    returnType: int
    signature: check_pem(const char *nm, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:242,1
    - Dst: ERR_GET_REASON
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:243,1
    - Dst: ERR_peek_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:243,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:244,1
    - Dst: check_pem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:247,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:249,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:250,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:251,1
    - Dst: PEM_get_EVP_CIPHER_INFO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:253,1
    - Dst: PEM_do_header
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:255,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:268,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:269,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:271,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 7
    argNames:
    - pdata
    - plen
    - pnm
    - name
    - bp
    - cb
    - u
    argTypes:
    - unsigned char**
    - long*
    - char**
    - char*
    - BIO*
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 273
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 273
    functionName: PEM_bytes_read_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c
    functionUses: 4
    functionsReached:
    - check_pem
    - PEM_get_EVP_CIPHER_INFO
    - ERR_add_error_data
    - PEM_read_bio
    - ERR_peek_error
    - PEM_do_header
    - OPENSSL_free
    - ERR_GET_REASON
    linkageType: ''
    returnType: int
    signature: "PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm,\n
      \                      const char *name, BIO *bp, pem_password_cb *cb,\n                       void
      *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:283,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:283,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:284,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:287,1
    - Dst: PEM_ASN1_write_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:288,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 9
    argNames:
    - i2d
    - name
    - fp
    - x
    - enc
    - kstr
    - klen
    - callback
    - u
    argTypes:
    - i2d_of_void*
    - char*
    - FILE*
    - void*
    - EVP_CIPHER*
    - unsigned char*
    - int
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 291
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 291
    functionName: PEM_ASN1_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - BIO_set_fp
    - BIO_s_file
    - BIO_free
    - PEM_ASN1_write_bio
    - BIO_new
    linkageType: ''
    returnType: int
    signature: "PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp,\n                   void
      *x, const EVP_CIPHER *enc, unsigned char *kstr,\n                   int klen,
      pem_password_cb *callback, void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:307,1
    - Dst: EVP_CIPHER_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:307,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:308,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:309,1
    - Dst: i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:314,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:315,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:321,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:323,1
    - Dst: i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:327,1
    - Dst: PEM_def_callback
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:332,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:336,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:341,1
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:345,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:346,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:346,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:347,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:347,1
    - Dst: EVP_BytesToKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:353,1
    - Dst: EVP_md5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:353,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:357,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:359,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:359,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:359,1
    - Dst: PEM_proc_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:363,1
    - Dst: PEM_dek_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:364,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:364,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:368,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:369,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:370,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:371,1
    - Dst: PEM_write_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:380,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:384,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:385,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:386,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:387,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:388,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 72
    argCount: 9
    argNames:
    - i2d
    - name
    - bp
    - x
    - enc
    - kstr
    - klen
    - callback
    - u
    argTypes:
    - i2d_of_void*
    - char*
    - BIO*
    - void*
    - EVP_CIPHER*
    - unsigned char*
    - int
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 390
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 390
    functionName: PEM_ASN1_write_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c
    functionUses: 3
    functionsReached:
    - RAND_bytes
    - PEM_write_bio
    - PEMerr
    - RAND_add
    - OBJ_nid2sn
    - EVP_md5
    - EVP_CIPHER_nid
    - EVP_EncryptInit_ex
    - EVP_CIPHER_iv_length
    - EVP_EncryptFinal_ex
    - EVP_CIPHER_CTX_new
    - PEM_proc_type
    - PEM_def_callback
    - strlen
    - i2d
    - PEM_dek_info
    - EVP_EncryptUpdate
    - OPENSSL_clear_free
    - ebcdic2ascii
    - EVP_CIPHER_CTX_free
    - OPENSSL_assert
    - EVP_BytesToKey
    - OPENSSL_cleanse
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp,\n
      \                      void *x, const EVP_CIPHER *enc, unsigned char *kstr,\n
      \                      int klen, pem_password_cb *callback, void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:406,1
    - Dst: PEM_def_callback
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:414,1
    - Dst: callback
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:416,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:418,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:423,1
    - Dst: EVP_BytesToKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:426,1
    - Dst: EVP_md5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:426,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:430,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:434,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:436,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:440,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:445,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:447,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:448,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:449,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 5
    argNames:
    - cipher
    - data
    - plen
    - callback
    - u
    argTypes:
    - EVP_CIPHER_INFO*
    - unsigned char*
    - long*
    - pem_password_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 451
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 451
    functionName: PEM_do_header
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_CTX_new
    - EVP_DecryptInit_ex
    - EVP_CIPHER_CTX_free
    - PEMerr
    - EVP_DecryptFinal_ex
    - PEM_def_callback
    - EVP_BytesToKey
    - callback
    - EVP_md5
    - OPENSSL_cleanse
    - EVP_DecryptUpdate
    - ebcdic2ascii
    linkageType: ''
    returnType: int
    signature: "PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *plen,\n
      \                 pem_password_cb *callback, void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:478,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:479,1
    - Dst: strspn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:483,1
    - Dst: strspn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:487,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:490,1
    - Dst: strspn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:491,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:492,1
    - Dst: strspn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:496,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:498,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:506,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:507,1
    - Dst: strspn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:511,1
    - Dst: strcspn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:518,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:521,1
    - Dst: strspn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:523,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:526,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:529,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:531,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:534,1
    - Dst: load_iv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:538,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:538,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 2
    argNames:
    - header
    - cipher
    argTypes:
    - char*
    - EVP_CIPHER_INFO*
    constantsTouched: []
    func_position:
      end: 542
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 542
    functionName: PEM_get_EVP_CIPHER_INFO
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c
    functionUses: 1
    functionsReached:
    - EVP_get_cipherbyname
    - load_iv
    - PEMerr
    - strncmp
    - strcspn
    - EVP_CIPHER_iv_length
    - strspn
    linkageType: ''
    returnType: int
    signature: PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_hexchar2int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:554,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:556,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - fromp
    - to
    - num
    argTypes:
    - char**
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 565
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 565
    functionName: load_iv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c
    functionUses: 1
    functionsReached:
    - PEMerr
    - OPENSSL_hexchar2int
    linkageType: ''
    returnType: int
    signature: load_iv(char **fromp, unsigned char *to, int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:574,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:574,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:575,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:578,1
    - Dst: PEM_write_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:579,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - fp
    - name
    - header
    - data
    - len
    argTypes:
    - FILE*
    - char*
    - char*
    - unsigned char*
    - long
    constantsTouched: []
    func_position:
      end: 582
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 582
    functionName: PEM_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - PEM_write_bio
    - PEMerr
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: "PEM_write(FILE *fp, const char *name, const char *header,\n              const
      unsigned char *data, long len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_ENCODE_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:590,1
    - Dst: EVP_EncodeInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:598,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:599,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:601,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:602,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:603,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:606,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:608,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:608,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:612,1
    - Dst: EVP_EncodeUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:621,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:623,1
    - Dst: EVP_EncodeFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:629,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:630,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:632,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:633,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:634,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:636,1
    - Dst: EVP_ENCODE_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:637,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:640,1
    - Dst: EVP_ENCODE_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:641,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:642,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 52
    argCount: 5
    argNames:
    - bp
    - name
    - header
    - data
    - len
    argTypes:
    - BIO*
    - char*
    - char*
    - unsigned char*
    - long
    constantsTouched: []
    func_position:
      end: 644
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 644
    functionName: PEM_write_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c
    functionUses: 4
    functionsReached:
    - PEMerr
    - EVP_EncodeInit
    - EVP_EncodeFinal
    - EVP_EncodeUpdate
    - strlen
    - EVP_ENCODE_CTX_new
    - EVP_ENCODE_CTX_free
    - OPENSSL_clear_free
    - BIO_write
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "PEM_write_bio(BIO *bp, const char *name, const char *header,\n                  const
      unsigned char *data, long len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:653,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:653,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:654,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:657,1
    - Dst: PEM_read_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:658,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - fp
    - name
    - header
    - data
    - len
    argTypes:
    - FILE*
    - char**
    - char**
    - unsigned char**
    - long*
    constantsTouched: []
    func_position:
      end: 661
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 661
    functionName: PEM_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - PEMerr
    - BIO_s_file
    - BIO_free
    - PEM_read_bio
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: "PEM_read(FILE *fp, char **name, char **header, unsigned char **data,\n
      \            long *len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_ENCODE_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:667,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:675,1
    - Dst: BUF_MEM_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:679,1
    - Dst: BUF_MEM_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:680,1
    - Dst: BUF_MEM_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:681,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:688,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:691,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:700,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:701,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:703,1
    - Dst: BUF_MEM_grow
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:705,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:706,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:709,1
    - Dst: BUF_MEM_grow
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:715,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:716,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:721,1
    - Dst: BUF_MEM_grow
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:732,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:733,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:736,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:740,1
    - Dst: BUF_MEM_grow
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:746,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:747,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:753,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:764,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:768,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:769,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:772,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:777,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:795,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:796,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:797,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:798,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:799,1
    - Dst: EVP_DecodeInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:803,1
    - Dst: EVP_DecodeUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:804,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:808,1
    - Dst: EVP_DecodeFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:811,1
    - Dst: PEMerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:813,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:824,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:825,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:826,1
    - Dst: EVP_ENCODE_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:827,1
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:830,1
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:831,1
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:832,1
    - Dst: EVP_ENCODE_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:833,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 155
    argCount: 5
    argNames:
    - bp
    - name
    - header
    - data
    - len
    argTypes:
    - BIO*
    - char**
    - char**
    - unsigned char**
    - long*
    constantsTouched: []
    func_position:
      end: 835
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 835
    functionName: PEM_read_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c
    functionUses: 3
    functionsReached:
    - EVP_DecodeUpdate
    - PEMerr
    - BUF_MEM_grow
    - strncmp
    - EVP_DecodeFinal
    - BIO_gets
    - EVP_DecodeInit
    - strlen
    - memcpy
    - EVP_ENCODE_CTX_new
    - BUF_MEM_grow_clean
    - EVP_ENCODE_CTX_free
    - OPENSSL_free
    - BUF_MEM_new
    - BUF_MEM_free
    linkageType: ''
    returnType: int
    signature: "PEM_read_bio(BIO *bp, char **name, char **header, unsigned char **data,\n
      \                long *len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c:851,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pem_str
    - suffix
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 857
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 857
    functionName: pem_check_suffix
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c
    functionUses: 3
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: pem_check_suffix(const char *pem_str, const char *suffix)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - table
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 75
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 75
    functionName: prefetch256
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: prefetch256(const void *table)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:497,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:498,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:499,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:500,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:519,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:520,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:541,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:542,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 66
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - AES_KEY*
    constantsTouched: []
    func_position:
      end: 572
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 572
    functionName: AES_set_encrypt_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c
    functionUses: 5
    functionsReached:
    - GETU32
    linkageType: ''
    returnType: int
    signature: "AES_set_encrypt_key(const unsigned char *userKey, const int bits,\n
      \                       AES_KEY *key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:586,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:621,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:622,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:622,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - AES_KEY*
    constantsTouched: []
    func_position:
      end: 653
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 653
    functionName: AES_set_decrypt_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c
    functionUses: 4
    functionsReached:
    - ROTATE
    - AES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "AES_set_decrypt_key(const unsigned char *userKey, const int bits,\n
      \                       AES_KEY *key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:667,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:674,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:675,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:676,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:677,1
    - Dst: prefetch256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:680,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:709,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:709,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:710,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:710,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:776,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:776,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:777,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:777,1
    - Dst: prefetch256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:815,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 61
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - AES_KEY*
    constantsTouched: []
    func_position:
      end: 867
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 867
    functionName: AES_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c
    functionUses: 2
    functionsReached:
    - GETU32
    - assert
    - prefetch256
    - ROTATE
    linkageType: ''
    returnType: void
    signature: "AES_encrypt(const unsigned char *in, unsigned char *out,\n                 const
      AES_KEY *key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:881,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:888,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:889,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:890,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:891,1
    - Dst: prefetch256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:894,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:934,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:935,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:935,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:1011,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:1012,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:1012,1
    - Dst: prefetch256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c:1049,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 73
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - AES_KEY*
    constantsTouched: []
    func_position:
      end: 1075
      start: 873
    functionDepth: 1
    functionLinenumber: 873
    functionLinenumberEnd: 1075
    functionName: AES_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c
    functionUses: 2
    functionsReached:
    - GETU32
    - assert
    - prefetch256
    - ROTATE
    linkageType: ''
    returnType: void
    signature: "AES_decrypt(const unsigned char *in, unsigned char *out,\n                 const
      AES_KEY *key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ecb.c:19,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ecb.c:20,1
    - Dst: AES_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ecb.c:23,1
    - Dst: AES_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ecb.c:25,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - in
    - out
    - key
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - AES_KEY*
    - int
    constantsTouched: []
    func_position:
      end: 26
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 26
    functionName: AES_ecb_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ecb.c
    functionUses: 0
    functionsReached:
    - AES_decrypt
    - assert
    - AES_encrypt
    linkageType: ''
    returnType: void
    signature: "AES_ecb_encrypt(const unsigned char *in, unsigned char *out,\n                     const
      AES_KEY *key, const int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_128_wrap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_wrap.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - iv
    - out
    - in
    - inlen
    argTypes:
    - AES_KEY*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 19
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 19
    functionName: AES_wrap_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_wrap.c
    functionUses: 0
    functionsReached:
    - CRYPTO_128_wrap
    linkageType: ''
    returnType: int
    signature: "AES_wrap_key(AES_KEY *key, const unsigned char *iv,\n                 unsigned
      char *out,\n                 const unsigned char *in, unsigned int inlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_128_unwrap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_wrap.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - iv
    - out
    - in
    - inlen
    argTypes:
    - AES_KEY*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: AES_unwrap_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_wrap.c
    functionUses: 0
    functionsReached:
    - CRYPTO_128_unwrap
    linkageType: ''
    returnType: int
    signature: "AES_unwrap_key(AES_KEY *key, const unsigned char *iv,\n                   unsigned
      char *out,\n                   const unsigned char *in, unsigned int inlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 21
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 21
    functionName: AES_options
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_misc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*AES_options(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:44,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:45,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:46,1
    - Dst: AES_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:64,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:74,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:75,1
    - Dst: load_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:81,1
    - Dst: load_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:82,1
    - Dst: load_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:85,1
    - Dst: AES_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:88,1
    - Dst: store_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:92,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:99,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:100,1
    - Dst: AES_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:117,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:127,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:128,1
    - Dst: load_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:134,1
    - Dst: load_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:135,1
    - Dst: load_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:138,1
    - Dst: AES_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:142,1
    - Dst: store_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:146,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:153,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:154,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 79
    argCount: 6
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - AES_KEY*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 157
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 157
    functionName: AES_ige_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c
    functionUses: 0
    functionsReached:
    - load_block
    - store_block
    - OPENSSL_assert
    - memcpy
    - AES_decrypt
    - AES_encrypt
    linkageType: ''
    returnType: void
    signature: "AES_ige_encrypt(const unsigned char *in, unsigned char *out,\n                     size_t
      length, const AES_KEY *key,\n                     unsigned char *ivec, const
      int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:180,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:181,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:182,1
    - Dst: AES_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:196,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:200,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:216,1
    - Dst: AES_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:222,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:235,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:248,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:249,1
    - Dst: AES_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:252,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:255,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:266,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:267,1
    - Dst: AES_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:270,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c:273,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 75
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - key2
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - AES_KEY*
    - AES_KEY*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 281
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 281
    functionName: AES_bi_ige_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c
    functionUses: 0
    functionsReached:
    - AES_decrypt
    - memcpy
    - AES_encrypt
    - OPENSSL_assert
    linkageType: ''
    returnType: void
    signature: "AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out,\n
      \                       size_t length, const AES_KEY *key,\n                        const
      AES_KEY *key2, const unsigned char *ivec,\n                        const int
      enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_ofb128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ofb.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - AES_KEY*
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: AES_ofb128_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ofb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ofb128_encrypt
    linkageType: ''
    returnType: void
    signature: "AES_ofb128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                       size_t length, const AES_KEY *key,\n                        unsigned
      char *ivec, int *num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_cfb.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - AES_KEY*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: AES_cfb128_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_cfb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_encrypt
    linkageType: ''
    returnType: void
    signature: "AES_cfb128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                       size_t length, const AES_KEY *key,\n                        unsigned
      char *ivec, int *num, const int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_cfb.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - AES_KEY*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: AES_cfb1_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_cfb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_1_encrypt
    linkageType: ''
    returnType: void
    signature: "AES_cfb1_encrypt(const unsigned char *in, unsigned char *out,\n                      size_t
      length, const AES_KEY *key,\n                      unsigned char *ivec, int
      *num, const int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_8_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_cfb.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - AES_KEY*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: AES_cfb8_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_cfb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_8_encrypt
    linkageType: ''
    returnType: void
    signature: "AES_cfb8_encrypt(const unsigned char *in, unsigned char *out,\n                      size_t
      length, const AES_KEY *key,\n                      unsigned char *ivec, int
      *num, const int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:654,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:655,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:656,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:657,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:676,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:677,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:698,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:699,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 66
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - AES_KEY*
    constantsTouched: []
    func_position:
      end: 729
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 729
    functionName: AES_set_encrypt_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c
    functionUses: 6
    functionsReached:
    - GETU32
    linkageType: ''
    returnType: int
    signature: "AES_set_encrypt_key(const unsigned char *userKey, const int bits,\n
      \                       AES_KEY *key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:743,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - AES_KEY*
    constantsTouched: []
    func_position:
      end: 781
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 781
    functionName: AES_set_decrypt_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c
    functionUses: 4
    functionsReached:
    - AES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "AES_set_decrypt_key(const unsigned char *userKey, const int bits,\n
      \                       AES_KEY *key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:796,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:803,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:804,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:805,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:806,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:950,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:957,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:964,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:971,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 87
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - AES_KEY*
    constantsTouched: []
    func_position:
      end: 972
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 972
    functionName: AES_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c
    functionUses: 5
    functionsReached:
    - GETU32
    - assert
    - PUTU32
    linkageType: ''
    returnType: void
    signature: "AES_encrypt(const unsigned char *in, unsigned char *out,\n                 const
      AES_KEY *key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:988,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:995,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:996,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:997,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:998,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:1142,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:1149,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:1156,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:1163,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 87
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - AES_KEY*
    constantsTouched: []
    func_position:
      end: 1164
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 1164
    functionName: AES_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c
    functionUses: 5
    functionsReached:
    - GETU32
    - assert
    - PUTU32
    linkageType: ''
    returnType: void
    signature: "AES_decrypt(const unsigned char *in, unsigned char *out,\n                 const
      AES_KEY *key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:1232,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:1233,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:1234,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:1235,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:1254,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:1255,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:1276,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:1277,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 66
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - AES_KEY*
    constantsTouched: []
    func_position:
      end: 1307
      start: 1211
    functionDepth: 0
    functionLinenumber: 1211
    functionLinenumberEnd: 1307
    functionName: AES_set_encrypt_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c
    functionUses: 7
    functionsReached:
    - GETU32
    linkageType: ''
    returnType: int
    signature: "AES_set_encrypt_key(const unsigned char *userKey, const int bits,\n
      \                       AES_KEY *key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:1321,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:1355,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:1356,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c:1356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - AES_KEY*
    constantsTouched: []
    func_position:
      end: 1365
      start: 1312
    functionDepth: 0
    functionLinenumber: 1312
    functionLinenumberEnd: 1365
    functionName: AES_set_decrypt_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c
    functionUses: 4
    functionsReached:
    - ROTATE
    - AES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "AES_set_decrypt_key(const unsigned char *userKey, const int bits,\n
      \                       AES_KEY *key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_cbc.c:19,1
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_cbc.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - AES_KEY*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 24
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 24
    functionName: AES_cbc_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_cbc.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cbc128_decrypt
    - CRYPTO_cbc128_encrypt
    linkageType: ''
    returnType: void
    signature: "AES_cbc_encrypt(const unsigned char *in, unsigned char *out,\n                     size_t
      len, const AES_KEY *key,\n                     unsigned char *ivec, const int
      enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:32,1
    - Dst: BUF_MEM_grow
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:34,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:37,1
    - Dst: sk_OPENSSL_PSTRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:42,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:44,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:46,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:59,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:63,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:69,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:75,1
    - Dst: sk_OPENSSL_PSTRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:111,1
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:114,1
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:117,1
    - Dst: sk_OPENSSL_PSTRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:119,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:120,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:121,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:122,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 100
    argCount: 2
    argNames:
    - in
    - num
    argTypes:
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 125
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 125
    functionName: TXT_DB_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_PSTRING_push
    - BUF_MEM_grow
    - BIO_gets
    - strlen
    - BUF_MEM_grow_clean
    - sk_OPENSSL_PSTRING_new_null
    - sk_OPENSSL_PSTRING_free
    - OPENSSL_free
    - BUF_MEM_new
    - OPENSSL_malloc
    - BUF_MEM_free
    linkageType: ''
    returnType: TXT_DB
    signature: '*TXT_DB_read(BIO *in, int num)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LHASH_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:131,1
    - Dst: lh_OPENSSL_STRING_retrieve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - db
    - idx
    - value
    argTypes:
    - TXT_DB*
    - int
    - OPENSSL_STRING*
    constantsTouched: []
    func_position:
      end: 145
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 145
    functionName: TXT_DB_get_by_index
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c
    functionUses: 0
    functionsReached:
    - LHASH_OF
    - lh_OPENSSL_STRING_retrieve
    linkageType: ''
    returnType: OPENSSL_STRING
    signature: "*TXT_DB_get_by_index(TXT_DB *db, int idx,\n                                    OPENSSL_STRING
      *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LHASH_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:150,1
    - Dst: LHASH_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:159,1
    - Dst: OPENSSL_LH_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:159,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:163,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:165,1
    - Dst: qual
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:166,1
    - Dst: lh_OPENSSL_STRING_insert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:168,1
    - Dst: sk_OPENSSL_PSTRING_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:170,1
    - Dst: lh_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:172,1
    - Dst: lh_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:176,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - db
    - field
    - hash
    - cmp
    argTypes:
    - TXT_DB*
    - int
    - OPENSSL_LH_HASHFUNC
    - OPENSSL_LH_COMPFUNC
    constantsTouched: []
    func_position:
      end: 180
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 180
    functionName: TXT_DB_create_index
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_PSTRING_find
    - lh_OPENSSL_STRING_free
    - sk_OPENSSL_PSTRING_value
    - qual
    - sk_OPENSSL_PSTRING_num
    - lh_OPENSSL_STRING_insert
    - OPENSSL_LH_new
    - LHASH_OF
    linkageType: ''
    returnType: int
    signature: "TXT_DB_create_index(TXT_DB *db, int field, int (*qual) (OPENSSL_STRING
      *),\n                        OPENSSL_LH_HASHFUNC hash, OPENSSL_LH_COMPFUNC cmp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:189,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:191,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:194,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:199,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:201,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:219,1
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:225,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 2
    argNames:
    - out
    - db
    argTypes:
    - BIO*
    - TXT_DB*
    constantsTouched: []
    func_position:
      end: 227
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 227
    functionName: TXT_DB_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_PSTRING_value
    - sk_OPENSSL_PSTRING_num
    - strlen
    - BUF_MEM_grow_clean
    - BUF_MEM_free
    - BUF_MEM_new
    - BIO_write
    linkageType: ''
    returnType: long
    signature: TXT_DB_write(BIO *out, TXT_DB *db)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_OPENSSL_STRING_retrieve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:238,1
    - Dst: sk_OPENSSL_PSTRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:248,1
    - Dst: lh_OPENSSL_STRING_insert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:257,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 2
    argNames:
    - db
    - row
    argTypes:
    - TXT_DB*
    - OPENSSL_STRING*
    constantsTouched: []
    func_position:
      end: 263
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 263
    functionName: TXT_DB_insert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_PSTRING_push
    - lh_OPENSSL_STRING_insert
    - lh_OPENSSL_STRING_retrieve
    linkageType: ''
    returnType: int
    signature: TXT_DB_insert(TXT_DB *db, OPENSSL_STRING *row)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:275,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:276,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:278,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:280,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:285,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:289,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:293,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:296,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:296,1
    - Dst: sk_OPENSSL_PSTRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:298,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c:300,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - db
    argTypes:
    - TXT_DB*
    constantsTouched: []
    func_position:
      end: 301
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 301
    functionName: TXT_DB_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c
    functionUses: 0
    functionsReached:
    - lh_OPENSSL_STRING_free
    - sk_OPENSSL_PSTRING_value
    - sk_OPENSSL_PSTRING_num
    - OPENSSL_free
    - sk_OPENSSL_PSTRING_free
    linkageType: ''
    returnType: void
    signature: TXT_DB_free(TXT_DB *db)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned long
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: BUF_MEM_new_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c
    functionUses: 0
    functionsReached:
    - BUF_MEM_new
    linkageType: ''
    returnType: BUF_MEM
    signature: '*BUF_MEM_new_ex(unsigned long flags)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c:35,1
    - Dst: BUFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 41
    functionName: BUF_MEM_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c
    functionUses: 4
    functionsReached:
    - BUFerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: BUF_MEM
    signature: '*BUF_MEM_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_secure_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c:50,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c:52,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - BUF_MEM*
    constantsTouched: []
    func_position:
      end: 55
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 55
    functionName: BUF_MEM_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c
    functionUses: 3
    functionsReached:
    - OPENSSL_free
    - OPENSSL_clear_free
    - OPENSSL_secure_free
    linkageType: ''
    returnType: void
    signature: BUF_MEM_free(BUF_MEM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_secure_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c:63,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c:66,1
    - Dst: OPENSSL_secure_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - BUF_MEM*
    - size_t
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: sec_alloc_realloc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c
    functionUses: 0
    functionsReached:
    - OPENSSL_secure_malloc
    - OPENSSL_secure_free
    - memcpy
    linkageType: ''
    returnType: char
    signature: '*sec_alloc_realloc(BUF_MEM *str, size_t len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c:83,1
    - Dst: BUFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c:89,1
    - Dst: sec_alloc_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c:94,1
    - Dst: OPENSSL_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c:96,1
    - Dst: BUFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c:98,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c:103,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - BUF_MEM*
    - size_t
    constantsTouched: []
    func_position:
      end: 107
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 107
    functionName: BUF_MEM_grow
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c
    functionUses: 2
    functionsReached:
    - BUFerr
    - OPENSSL_realloc
    - memset
    - sec_alloc_realloc
    linkageType: ''
    returnType: size_t
    signature: BUF_MEM_grow(BUF_MEM *str, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c:116,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c:121,1
    - Dst: BUFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c:127,1
    - Dst: sec_alloc_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c:132,1
    - Dst: OPENSSL_clear_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c:134,1
    - Dst: BUFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c:136,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - BUF_MEM*
    - size_t
    constantsTouched: []
    func_position:
      end: 145
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 145
    functionName: BUF_MEM_grow_clean
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c
    functionUses: 3
    functionsReached:
    - BUFerr
    - OPENSSL_clear_realloc
    - memset
    - sec_alloc_realloc
    linkageType: ''
    returnType: size_t
    signature: BUF_MEM_grow_clean(BUF_MEM *str, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - out
    - in
    - size
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 164
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 164
    functionName: BUF_reverse
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BUF_reverse(unsigned char *out, const unsigned char *in, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buf_err.c:38,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buf_err.c:39,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buf_err.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: ERR_load_BUF_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buf_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_BUF_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - RIPEMD160_CTX*
    constantsTouched: []
    func_position:
      end: 30
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: RIPEMD160_Init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: RIPEMD160_Init(RIPEMD160_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:59,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:60,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:61,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:62,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:63,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:64,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:65,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:66,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:67,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:68,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:69,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:70,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:71,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:72,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:73,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:74,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:75,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:76,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:77,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:78,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:79,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:80,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:81,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:82,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:83,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:84,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:85,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:86,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:87,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:88,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:89,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:90,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:91,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:92,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:93,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:94,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:95,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:96,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:97,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:98,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:99,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:100,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:101,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:102,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:103,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:104,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:105,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:106,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:108,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:109,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:110,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:111,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:112,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:113,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:114,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:115,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:116,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:117,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:118,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:119,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:120,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:121,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:122,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:123,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:125,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:126,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:127,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:128,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:129,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:130,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:131,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:132,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:133,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:134,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:135,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:136,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:137,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:138,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:139,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:140,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:142,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:143,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:144,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:145,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:146,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:147,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:148,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:149,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:150,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:151,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:152,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:153,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:154,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:155,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:156,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:157,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:159,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:160,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:161,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:162,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:163,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:164,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:165,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:166,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:167,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:168,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:169,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:170,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:171,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:172,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:173,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:174,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:188,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:189,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:190,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:191,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:192,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:193,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:194,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:195,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:196,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:197,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:198,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:199,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:200,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:201,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:202,1
    - Dst: RIP5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:203,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:205,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:206,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:207,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:208,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:209,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:210,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:211,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:212,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:213,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:214,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:215,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:216,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:217,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:218,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:219,1
    - Dst: RIP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:220,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:222,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:223,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:224,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:225,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:226,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:227,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:228,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:229,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:230,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:231,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:232,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:233,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:234,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:235,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:236,1
    - Dst: RIP3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:237,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:239,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:240,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:241,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:242,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:243,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:244,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:245,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:246,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:247,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:248,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:249,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:250,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:251,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:252,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:253,1
    - Dst: RIP2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:254,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:256,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:257,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:258,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:259,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:260,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:261,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:262,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:263,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:264,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:265,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:266,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:267,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:268,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:269,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:270,1
    - Dst: RIP1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 216
    argCount: 3
    argNames:
    - ctx
    - p
    - num
    argTypes:
    - RIPEMD160_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 281
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 281
    functionName: ripemd160_block_data_order
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c
    functionUses: 0
    functionsReached:
    - RIP2
    - RIP3
    - HOST_c2l
    - X
    - RIP1
    - RIP4
    - RIP5
    linkageType: ''
    returnType: void
    signature: ripemd160_block_data_order(RIPEMD160_CTX *ctx, const void *p, size_t
      num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RIPEMD160_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_one.c:22,1
    - Dst: RIPEMD160_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_one.c:24,1
    - Dst: RIPEMD160_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_one.c:25,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_one.c:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 28
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 28
    functionName: RIPEMD160
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_one.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    - RIPEMD160_Update
    - RIPEMD160_Final
    - RIPEMD160_Init
    linkageType: ''
    returnType: unsigned char
    signature: '*RIPEMD160(const unsigned char *d, size_t n, unsigned char *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - k1
    - l
    - bl
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 43
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 43
    functionName: make_kn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: make_kn(unsigned char *k1, const unsigned char *l, int bl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:49,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:52,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: CMAC_CTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - EVP_CIPHER_CTX_new
    - OPENSSL_malloc
    linkageType: ''
    returnType: CMAC_CTX
    signature: '*CMAC_CTX_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:63,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:64,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:65,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:66,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CMAC_CTX*
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: CMAC_CTX_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: void
    signature: CMAC_CTX_cleanup(CMAC_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CMAC_CTX*
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: CMAC_CTX_get0_cipher_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER_CTX
    signature: '*CMAC_CTX_get0_cipher_ctx(CMAC_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMAC_CTX_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:80,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CMAC_CTX*
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: CMAC_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - CMAC_CTX_cleanup
    linkageType: ''
    returnType: void
    signature: CMAC_CTX_free(CMAC_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:89,1
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:91,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:92,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:93,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:94,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - CMAC_CTX*
    - CMAC_CTX*
    constantsTouched: []
    func_position:
      end: 98
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 98
    functionName: CMAC_CTX_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_block_size
    - memcpy
    - EVP_CIPHER_CTX_copy
    linkageType: ''
    returnType: int
    signature: CMAC_CTX_copy(CMAC_CTX *out, const CMAC_CTX *in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:109,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:111,1
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:111,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:116,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:121,1
    - Dst: EVP_CIPHER_CTX_set_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:123,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:125,1
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:127,1
    - Dst: EVP_Cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:128,1
    - Dst: make_kn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:130,1
    - Dst: make_kn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:131,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:132,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:134,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:137,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 5
    argNames:
    - ctx
    - key
    - keylen
    - cipher
    - impl
    argTypes:
    - CMAC_CTX*
    - void*
    - size_t
    - EVP_CIPHER*
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 141
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 141
    functionName: CMAC_Init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - EVP_EncryptInit_ex
    - EVP_CIPHER_CTX_cipher
    - EVP_CIPHER_CTX_block_size
    - memset
    - make_kn
    - OPENSSL_cleanse
    - EVP_Cipher
    - EVP_CIPHER_CTX_set_key_length
    linkageType: ''
    returnType: int
    signature: "CMAC_Init(CMAC_CTX *ctx, const void *key, size_t keylen,\n              const
      EVP_CIPHER *cipher, ENGINE *impl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:151,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:158,1
    - Dst: EVP_Cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:166,1
    - Dst: EVP_Cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:171,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:177,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - ctx
    - in
    - dlen
    argTypes:
    - CMAC_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 181
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 181
    functionName: CMAC_Update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - EVP_Cipher
    - EVP_CIPHER_CTX_block_size
    - memcpy
    linkageType: ''
    returnType: int
    signature: CMAC_Update(CMAC_CTX *ctx, const void *in, size_t dlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:188,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:200,1
    - Dst: EVP_Cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:204,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:205,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - ctx
    - out
    - poutlen
    argTypes:
    - CMAC_CTX*
    - unsigned char*
    - size_t*
    constantsTouched: []
    func_position:
      end: 209
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 209
    functionName: CMAC_Final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - EVP_Cipher
    - EVP_CIPHER_CTX_block_size
    - OPENSSL_cleanse
    - memset
    linkageType: ''
    returnType: int
    signature: CMAC_Final(CMAC_CTX *ctx, unsigned char *out, size_t *poutlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CMAC_CTX*
    constantsTouched: []
    func_position:
      end: 223
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 223
    functionName: CMAC_resume
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - EVP_EncryptInit_ex
    linkageType: ''
    returnType: int
    signature: CMAC_resume(CMAC_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMAC_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 27
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 27
    functionName: pkey_cmac_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c
    functionUses: 0
    functionsReached:
    - CMAC_CTX_new
    linkageType: ''
    returnType: int
    signature: pkey_cmac_init(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pkey_cmac_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:31,1
    - Dst: CMAC_CTX_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: pkey_cmac_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c
    functionUses: 0
    functionsReached:
    - pkey_cmac_init
    - CMAC_CTX_copy
    linkageType: ''
    returnType: int
    signature: pkey_cmac_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: pkey_cmac_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c
    functionUses: 0
    functionsReached:
    - CMAC_CTX_free
    linkageType: ''
    returnType: void
    signature: pkey_cmac_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMAC_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:45,1
    - Dst: CMAC_CTX_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:49,1
    - Dst: CMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:50,1
    - Dst: EVP_PKEY_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: pkey_cmac_keygen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c
    functionUses: 0
    functionsReached:
    - CMAC_CTX_new
    - CMAC_CTX_copy
    - EVP_PKEY_assign
    - CMAC_CTX_free
    linkageType: ''
    returnType: int
    signature: pkey_cmac_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:60,1
    - Dst: EVP_MD_CTX_pkey_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: int_update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c
    functionUses: 0
    functionsReached:
    - CMAC_Update
    - EVP_MD_CTX_pkey_ctx
    linkageType: ''
    returnType: int
    signature: int_update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:67,1
    - Dst: EVP_MD_CTX_set_update_fn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - mctx
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: cmac_signctx_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_set_flags
    - EVP_MD_CTX_set_update_fn
    linkageType: ''
    returnType: int
    signature: cmac_signctx_init(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMAC_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - sig
    - siglen
    - mctx
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: cmac_signctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c
    functionUses: 0
    functionsReached:
    - CMAC_Final
    linkageType: ''
    returnType: int
    signature: "cmac_signctx(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,\n
      \                       EVP_MD_CTX *mctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMAC_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:86,1
    - Dst: CMAC_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:91,1
    - Dst: CMAC_CTX_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:96,1
    - Dst: CMAC_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:99,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 108
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 108
    functionName: pkey_cmac_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c
    functionUses: 0
    functionsReached:
    - CMAC_CTX_copy
    - CMAC_Init
    linkageType: ''
    returnType: int
    signature: pkey_cmac_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:116,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:118,1
    - Dst: pkey_cmac_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:121,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:123,1
    - Dst: EVP_PKEY_CTX_str2ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:124,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:125,1
    - Dst: EVP_PKEY_CTX_hex2ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c:126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 128
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 128
    functionName: pkey_cmac_ctrl_str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_hex2ctrl
    - EVP_get_cipherbyname
    - strcmp
    - pkey_cmac_ctrl
    - EVP_PKEY_CTX_str2ctrl
    linkageType: ''
    returnType: int
    signature: "pkey_cmac_ctrl_str(EVP_PKEY_CTX *ctx,\n                              const
      char *type, const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: cmac_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_ameth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: cmac_size(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_ameth.c:28,1
    - Dst: CMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_ameth.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: cmac_key_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get0
    - CMAC_CTX_free
    linkageType: ''
    returnType: void
    signature: cmac_key_free(EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS5_pbe2_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_p8e.c:24,1
    - Dst: EVP_PBE_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_p8e.c:25,1
    - Dst: PKCS5_pbe2_set_iv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_p8e.c:26,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_p8e.c:28,1
    - Dst: PKCS5_pbe_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_p8e.c:29,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_p8e.c:32,1
    - Dst: PKCS8_set0_pbe
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_p8e.c:35,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_p8e.c:37,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 8
    argNames:
    - pbe_nid
    - cipher
    - pass
    - passlen
    - salt
    - saltlen
    - iter
    - p8inf
    argTypes:
    - int
    - EVP_CIPHER*
    - char*
    - int
    - unsigned char*
    - int
    - int
    - PKCS8_PRIV_KEY_INFO*
    constantsTouched: []
    func_position:
      end: 42
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 42
    functionName: PKCS8_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_p8e.c
    functionUses: 1
    functionsReached:
    - EVP_PBE_find
    - PKCS12err
    - PKCS5_pbe2_set
    - PKCS5_pbe2_set_iv
    - PKCS8_set0_pbe
    - PKCS5_pbe_set
    - X509_ALGOR_free
    - ERR_clear_error
    linkageType: ''
    returnType: X509_SIG
    signature: "*PKCS8_encrypt(int pbe_nid, const EVP_CIPHER *cipher,\n                        const
      char *pass, int passlen,\n                        unsigned char *salt, int saltlen,
      int iter,\n                        PKCS8_PRIV_KEY_INFO *p8inf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_item_i2d_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_p8e.c:51,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_p8e.c:51,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_p8e.c:54,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_p8e.c:58,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_p8e.c:61,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_p8e.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - pass
    - passlen
    - p8inf
    - pbe
    argTypes:
    - char*
    - int
    - PKCS8_PRIV_KEY_INFO*
    - X509_ALGOR*
    constantsTouched: []
    func_position:
      end: 69
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 69
    functionName: PKCS8_set0_pbe
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_p8e.c
    functionUses: 1
    functionsReached:
    - PKCS12err
    - ASN1_OCTET_STRING_free
    - ASN1_ITEM_rptr
    - PKCS12_item_i2d_encrypt
    - OPENSSL_zalloc
    linkageType: ''
    returnType: X509_SIG
    signature: "*PKCS8_set0_pbe(const char *pass, int passlen,\n                         PKCS8_PRIV_KEY_INFO
      *p8inf, X509_ALGOR *pbe)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:22,1
    - Dst: EVP_PKEY_get_attr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:25,1
    - Dst: X509at_add1_attr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - bag
    - pkey
    - nid
    argTypes:
    - PKCS12_SAFEBAG*
    - EVP_PKEY*
    - int
    constantsTouched: []
    func_position:
      end: 29
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 29
    functionName: copy_bag_attr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr
    - EVP_PKEY_get_attr_by_NID
    - EVP_PKEY_get_attr
    linkageType: ''
    returnType: int
    signature: copy_bag_attr(PKCS12_SAFEBAG *bag, EVP_PKEY *pkey, int nid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:36,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:37,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:58,1
    - Dst: X509_check_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:63,1
    - Dst: X509_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:65,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:65,1
    - Dst: PKCS12_add_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:69,1
    - Dst: PKCS12_add_friendlyname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:70,1
    - Dst: PKCS12_add_localkeyid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:72,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:77,1
    - Dst: PKCS12_add_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:78,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:78,1
    - Dst: PKCS12_add_safe
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:82,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:85,1
    - Dst: PKCS12_add_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:89,1
    - Dst: copy_bag_attr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:94,1
    - Dst: copy_bag_attr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:96,1
    - Dst: PKCS12_add_friendlyname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:99,1
    - Dst: PKCS12_add_localkeyid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:101,1
    - Dst: PKCS12_add_safe
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:105,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:108,1
    - Dst: PKCS12_add_safes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:111,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:116,1
    - Dst: PKCS12_set_mac
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:121,1
    - Dst: PKCS12_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:127,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:128,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c:129,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 80
    argCount: 10
    argNames:
    - pass
    - name
    - pkey
    - cert
    - ca
    - nid_key
    - nid_cert
    - iter
    - mac_iter
    - keytype
    argTypes:
    - char*
    - char*
    - EVP_PKEY*
    - X509*
    - STACK_OF*
    - int
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 132
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 132
    functionName: PKCS12_create
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c
    functionUses: 0
    functionsReached:
    - PKCS12_add_safe
    - PKCS12_free
    - PKCS12_add_friendlyname
    - EVP_sha1
    - X509_digest
    - PKCS12_add_key
    - STACK_OF
    - PKCS12err
    - PKCS12_add_cert
    - PKCS12_add_localkeyid
    - copy_bag_attr
    - sk_PKCS12_SAFEBAG_pop_free
    - sk_X509_num
    - PKCS12_set_mac
    - X509_check_private_key
    - sk_X509_value
    - PKCS12_add_safes
    - sk_PKCS7_pop_free
    linkageType: ''
    returnType: PKCS12
    signature: "*PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey,
      X509 *cert,\n                      STACK_OF(X509) *ca, int nid_key, int nid_cert,
      int iter,\n                      int mac_iter, int keytype)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/pk12err.c:89,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/pk12err.c:90,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/pk12err.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: ERR_load_PKCS12_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/pk12err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_PKCS12_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:37,1
    - Dst: PKCS12_verify_mac
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:44,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:45,1
    - Dst: newpass_p12
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:49,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - p12
    - oldpass
    - newpass
    argTypes:
    - PKCS12*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 55
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 55
    functionName: PKCS12_newpass
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c
    functionUses: 0
    functionsReached:
    - PKCS12err
    - newpass_p12
    - PKCS12_verify_mac
    linkageType: ''
    returnType: int
    signature: PKCS12_newpass(PKCS12 *p12, const char *oldpass, const char *newpass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:61,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:62,1
    - Dst: PKCS12_unpack_authsafes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:70,1
    - Dst: sk_PKCS7_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:72,1
    - Dst: sk_PKCS7_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:74,1
    - Dst: sk_PKCS7_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:75,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:76,1
    - Dst: PKCS12_unpack_p7data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:78,1
    - Dst: PKCS12_unpack_p7encdata
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:80,1
    - Dst: alg_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:81,1
    - Dst: newpass_bags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:89,1
    - Dst: PKCS12_pack_p7data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:93,1
    - Dst: PKCS12_pack_p7encdata
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:95,1
    - Dst: sk_PKCS7_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:97,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:99,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:106,1
    - Dst: PKCS12_pack_authsafes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:108,1
    - Dst: PKCS12_gen_mac
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:111,1
    - Dst: X509_SIG_getm
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:113,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:114,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:122,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:124,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:127,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:128,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:129,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 66
    argCount: 3
    argNames:
    - p12
    - oldpass
    - newpass
    argTypes:
    - PKCS12*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 131
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 131
    functionName: newpass_p12
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c
    functionUses: 1
    functionsReached:
    - sk_PKCS7_value
    - sk_PKCS12_SAFEBAG_pop_free
    - ASN1_OCTET_STRING_free
    - PKCS12_pack_authsafes
    - alg_get
    - sk_PKCS7_push
    - PKCS12_unpack_authsafes
    - PKCS12_pack_p7data
    - PKCS12_unpack_p7data
    - ASN1_OCTET_STRING_new
    - sk_PKCS7_num
    - PKCS12_gen_mac
    - PKCS12_pack_p7encdata
    - PKCS12_unpack_p7encdata
    - STACK_OF
    - OBJ_obj2nid
    - X509_SIG_getm
    - ASN1_OCTET_STRING_set
    - sk_PKCS7_new_null
    - sk_PKCS7_pop_free
    - newpass_bags
    linkageType: ''
    returnType: int
    signature: newpass_p12(PKCS12 *p12, const char *oldpass, const char *newpass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_get_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:154,1
    - Dst: PKCS8_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:157,1
    - Dst: X509_SIG_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:159,1
    - Dst: alg_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:160,1
    - Dst: PKCS8_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:162,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:164,1
    - Dst: X509_SIG_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - bag
    - oldpass
    - newpass
    argTypes:
    - PKCS12_SAFEBAG*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 170
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 170
    functionName: newpass_bag
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c
    functionUses: 0
    functionsReached:
    - PKCS8_encrypt
    - PKCS8_decrypt
    - X509_SIG_free
    - X509_SIG_get0
    - PKCS8_PRIV_KEY_INFO_free
    - PKCS12_SAFEBAG_get_nid
    - alg_get
    linkageType: ''
    returnType: int
    signature: "newpass_bag(PKCS12_SAFEBAG *bag, const char *oldpass,\n                       const
      char *newpass)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:176,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:176,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:179,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:180,1
    - Dst: PBEPARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - alg
    - pnid
    - piter
    - psaltlen
    argTypes:
    - X509_ALGOR*
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 184
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 184
    functionName: alg_get
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c
    functionUses: 2
    functionsReached:
    - OBJ_obj2nid
    - ASN1_ITEM_rptr
    - ASN1_TYPE_unpack_sequence
    - PBEPARAM_free
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: int
    signature: "alg_get(const X509_ALGOR *alg, int *pnid, int *piter,\n                   int
      *psaltlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:30,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:33,1
    - Dst: EVP_PBE_CipherInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:38,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:40,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:45,1
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:45,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:47,1
    - Dst: EVP_CipherUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:51,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:52,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:54,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:59,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:60,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:62,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:72,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 8
    argNames:
    - algor
    - pass
    - passlen
    - in
    - inlen
    - data
    - datalen
    - en_de
    argTypes:
    - X509_ALGOR*
    - char*
    - int
    - unsigned char*
    - int
    - unsigned char**
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 75
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 75
    functionName: PKCS12_pbe_crypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_block_size
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_free
    - PKCS12err
    - EVP_CipherFinal_ex
    - EVP_CipherUpdate
    - OPENSSL_free
    - OPENSSL_malloc
    - EVP_PBE_CipherInit
    linkageType: ''
    returnType: unsigned char
    signature: "*PKCS12_pbe_crypt(const X509_ALGOR *algor,\n                                const
      char *pass, int passlen,\n                                const unsigned char
      *in, int inlen,\n                                unsigned char **data, int *datalen,
      int en_de)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_pbe_crypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:91,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:93,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:104,1
    - Dst: fopen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:105,1
    - Dst: fwrite
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:106,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:107,1
    - Dst: ASN1_item_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:110,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:112,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:114,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 6
    argNames:
    - algor
    - it
    - pass
    - passlen
    - oct
    - zbuf
    argTypes:
    - X509_ALGOR*
    - ASN1_ITEM*
    - char*
    - int
    - ASN1_OCTET_STRING*
    - int
    constantsTouched: []
    func_position:
      end: 117
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 117
    functionName: PKCS12_item_decrypt_d2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c
    functionUses: 0
    functionsReached:
    - PKCS12err
    - fwrite
    - ASN1_item_d2i
    - PKCS12_pbe_crypt
    - fclose
    - OPENSSL_free
    - OPENSSL_cleanse
    - fopen
    - sprintf
    linkageType: ''
    returnType: void
    signature: "*PKCS12_item_decrypt_d2i(const X509_ALGOR *algor, const ASN1_ITEM
      *it,\n                              const char *pass, int passlen,\n                              const
      ASN1_OCTET_STRING *oct, int zbuf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:133,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:134,1
    - Dst: ASN1_item_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:137,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:139,1
    - Dst: PKCS12_pbe_crypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:142,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:144,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:145,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:149,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:150,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c:153,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 6
    argNames:
    - algor
    - it
    - pass
    - passlen
    - obj
    - zbuf
    argTypes:
    - X509_ALGOR*
    - ASN1_ITEM*
    - char*
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 155
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 155
    functionName: PKCS12_item_i2d_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c
    functionUses: 1
    functionsReached:
    - ASN1_item_i2d
    - ASN1_OCTET_STRING_new
    - PKCS12err
    - PKCS12_pbe_crypt
    - ASN1_OCTET_STRING_free
    - OPENSSL_cleanse
    - OPENSSL_free
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: "*PKCS12_item_i2d_encrypt(X509_ALGOR *algor,\n                                           const
      ASN1_ITEM *it,\n                                           const char *pass,
      int passlen,\n                                           void *obj, int zbuf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_init.c:21,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_init.c:22,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_init.c:25,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_init.c:26,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_init.c:29,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_init.c:30,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_init.c:35,1
    - Dst: PKCS12_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_init.c:41,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - mode
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 43
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 43
    functionName: PKCS12_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_init.c
    functionUses: 0
    functionsReached:
    - PKCS12_free
    - ASN1_OCTET_STRING_new
    - PKCS12err
    - ASN1_INTEGER_set
    - OBJ_nid2obj
    - PKCS12_new
    linkageType: ''
    returnType: PKCS12
    signature: '*PKCS12_init(int mode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_BAGS_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:23,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:24,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:27,1
    - Dst: ASN1_item_pack
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:28,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:29,1
    - Dst: PKCS12_SAFEBAG_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:32,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:33,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:37,1
    - Dst: PKCS12_BAGS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:41,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - obj
    - it
    - nid1
    - nid2
    argTypes:
    - void*
    - ASN1_ITEM*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 43
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 43
    functionName: PKCS12_item_pack_safebag
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c
    functionUses: 0
    functionsReached:
    - PKCS12_BAGS_new
    - ASN1_item_pack
    - PKCS12err
    - OBJ_nid2obj
    - PKCS12_BAGS_free
    - PKCS12_SAFEBAG_new
    linkageType: ''
    returnType: PKCS12_SAFEBAG
    signature: "*PKCS12_item_pack_safebag(void *obj, const ASN1_ITEM *it,\n                                         int
      nid1, int nid2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:92,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:93,1
    - Dst: PKCS7_set_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:96,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:97,1
    - Dst: EVP_get_cipherbynid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:102,1
    - Dst: PKCS5_pbe2_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:105,1
    - Dst: PKCS5_pbe_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:107,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:110,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:113,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:115,1
    - Dst: PKCS12_item_i2d_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:117,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:117,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:119,1
    - Dst: PKCS7_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:126,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 7
    argNames:
    - pbe_nid
    - pass
    - passlen
    - salt
    - saltlen
    - iter
    - bags
    argTypes:
    - int
    - char*
    - int
    - unsigned char*
    - int
    - int
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 128
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 128
    functionName: PKCS12_pack_p7encdata
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c
    functionUses: 1
    functionsReached:
    - EVP_get_cipherbynid
    - PKCS12err
    - PKCS5_pbe2_set
    - ASN1_OCTET_STRING_free
    - ASN1_ITEM_rptr
    - PKCS12_item_i2d_encrypt
    - PKCS7_set_type
    - PKCS5_pbe_set
    - X509_ALGOR_free
    - PKCS7_new
    - PKCS7_free
    linkageType: ''
    returnType: PKCS7
    signature: "*PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen,\n
      \                            unsigned char *salt, int saltlen, int iter,\n                             STACK_OF(PKCS12_SAFEBAG)
      *bags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bag
    - pass
    - passlen
    argTypes:
    - PKCS12_SAFEBAG*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: PKCS12_decrypt_skey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c
    functionUses: 0
    functionsReached:
    - PKCS8_decrypt
    linkageType: ''
    returnType: PKCS8_PRIV_KEY_INFO
    signature: "*PKCS12_decrypt_skey(const PKCS12_SAFEBAG *bag,\n                                         const
      char *pass, int passlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: PKCS12_PBE_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crpt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: PKCS12_PBE_add(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crpt.c:41,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crpt.c:41,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crpt.c:43,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crpt.c:50,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crpt.c:54,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crpt.c:55,1
    - Dst: PBEPARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crpt.c:56,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crpt.c:60,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crpt.c:61,1
    - Dst: PBEPARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crpt.c:62,1
    - Dst: PBEPARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crpt.c:65,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crpt.c:66,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crpt.c:67,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crpt.c:68,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 7
    argNames:
    - ctx
    - pass
    - passlen
    - param
    - cipher
    - md
    - en_de
    argTypes:
    - EVP_CIPHER_CTX*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER*
    - EVP_MD*
    - int
    constantsTouched: []
    func_position:
      end: 70
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 70
    functionName: PKCS12_PBE_keyivgen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crpt.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_key_length
    - PKCS12err
    - ASN1_ITEM_rptr
    - ASN1_TYPE_unpack_sequence
    - PBEPARAM_free
    - ASN1_INTEGER_get
    - EVP_CipherInit_ex
    - OPENSSL_cleanse
    - EVP_CIPHER_iv_length
    linkageType: ''
    returnType: int
    signature: "PKCS12_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,\n
      \                       ASN1_TYPE *param, const EVP_CIPHER *cipher,\n                        const
      EVP_MD *md, int en_de)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:35,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:40,1
    - Dst: PKCS12_verify_mac
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:60,1
    - Dst: PKCS12_verify_mac
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:62,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:65,1
    - Dst: PKCS12_verify_mac
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:68,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:69,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:74,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:77,1
    - Dst: parse_pk12
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:81,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:82,1
    - Dst: sk_X509_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:86,1
    - Dst: ERR_set_mark
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:88,1
    - Dst: X509_check_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:89,1
    - Dst: ERR_pop_to_mark
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:93,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:98,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:101,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:105,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:108,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:115,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:117,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:118,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:119,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 68
    argCount: 5
    argNames:
    - p12
    - pass
    - pkey
    - cert
    - ca
    argTypes:
    - PKCS12*
    - char*
    - EVP_PKEY**
    - X509**
    - STACK_OF**
    constantsTouched: []
    func_position:
      end: 122
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 122
    functionName: PKCS12_parse
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c
    functionUses: 0
    functionsReached:
    - parse_pk12
    - STACK_OF
    - PKCS12err
    - sk_X509_pop_free
    - ERR_pop_to_mark
    - X509_check_private_key
    - PKCS12_verify_mac
    - sk_X509_push
    - ERR_set_mark
    - sk_X509_pop
    - X509_free
    - sk_X509_new_null
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: "PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509
      **cert,\n                 STACK_OF(X509) **ca)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:129,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:130,1
    - Dst: PKCS12_unpack_authsafes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:134,1
    - Dst: sk_PKCS7_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:136,1
    - Dst: sk_PKCS7_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:137,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:138,1
    - Dst: PKCS12_unpack_p7data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:140,1
    - Dst: PKCS12_unpack_p7encdata
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:142,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:146,1
    - Dst: parse_bags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:149,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:150,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:151,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:154,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:156,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 5
    argNames:
    - p12
    - pass
    - passlen
    - pkey
    - ocerts
    argTypes:
    - PKCS12*
    - char*
    - int
    - EVP_PKEY**
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 158
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 158
    functionName: parse_pk12
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c
    functionUses: 1
    functionsReached:
    - PKCS12_unpack_p7encdata
    - STACK_OF
    - OBJ_obj2nid
    - sk_PKCS7_value
    - sk_PKCS12_SAFEBAG_pop_free
    - PKCS12_unpack_authsafes
    - sk_PKCS7_num
    - PKCS12_unpack_p7data
    - parse_bags
    - sk_PKCS7_pop_free
    linkageType: ''
    returnType: int
    signature: "parse_pk12(PKCS12 *p12, const char *pass, int passlen,\n                      EVP_PKEY
      **pkey, STACK_OF(X509) *ocerts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_PKCS12_SAFEBAG_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:164,1
    - Dst: parse_bag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:165,1
    - Dst: sk_PKCS12_SAFEBAG_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - bags
    - pass
    - passlen
    - pkey
    - ocerts
    argTypes:
    - STACK_OF*
    - char*
    - int
    - EVP_PKEY**
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 170
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 170
    functionName: parse_bags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c
    functionUses: 1
    functionsReached:
    - sk_PKCS12_SAFEBAG_num
    - sk_PKCS12_SAFEBAG_value
    - parse_bag
    linkageType: ''
    returnType: int
    signature: "parse_bags(const STACK_OF(PKCS12_SAFEBAG) *bags, const char *pass,\n
      \                     int passlen, EVP_PKEY **pkey, STACK_OF(X509) *ocerts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_get0_attr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:181,1
    - Dst: PKCS12_SAFEBAG_get0_attr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:184,1
    - Dst: PKCS12_SAFEBAG_get_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:187,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:191,1
    - Dst: PKCS12_SAFEBAG_get0_p8inf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:191,1
    - Dst: PKCS12_decrypt_skey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:199,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:201,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:202,1
    - Dst: PKCS12_SAFEBAG_get_bag_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:208,1
    - Dst: PKCS12_SAFEBAG_get1_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:210,1
    - Dst: X509_keyid_set1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:212,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:213,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:219,1
    - Dst: X509_alias_set1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:221,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:222,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:224,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:230,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:231,1
    - Dst: parse_bags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:238,1
    - Dst: PKCS12_SAFEBAG_get0_safes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c:238,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 54
    argCount: 5
    argNames:
    - bag
    - pass
    - passlen
    - pkey
    - ocerts
    argTypes:
    - PKCS12_SAFEBAG*
    - char*
    - int
    - EVP_PKEY**
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 245
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 245
    functionName: parse_bag
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c
    functionUses: 1
    functionsReached:
    - X509_alias_set1
    - PKCS12_SAFEBAG_get_bag_nid
    - X509_keyid_set1
    - PKCS12_SAFEBAG_get0_safes
    - PKCS12_decrypt_skey
    - OPENSSL_free
    - PKCS12_SAFEBAG_get1_cert
    - ASN1_STRING_to_UTF8
    - sk_X509_push
    - PKCS8_PRIV_KEY_INFO_free
    - PKCS12_SAFEBAG_get0_p8inf
    - PKCS12_SAFEBAG_get0_attr
    - X509_free
    - PKCS12_SAFEBAG_get_nid
    - parse_bags
    - EVP_PKCS82PKEY
    linkageType: ''
    returnType: int
    signature: "parse_bag(PKCS12_SAFEBAG *bag, const char *pass, int passlen,\n                     EVP_PKEY
      **pkey, STACK_OF(X509) *ocerts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p12
    argTypes:
    - PKCS12*
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: PKCS12_mac_present
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: PKCS12_mac_present(const PKCS12 *p12)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_SIG_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:30,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 5
    argNames:
    - pmac
    - pmacalg
    - psalt
    - piter
    - p12
    argTypes:
    - ASN1_OCTET_STRING**
    - X509_ALGOR**
    - ASN1_OCTET_STRING**
    - ASN1_INTEGER**
    - PKCS12*
    constantsTouched: []
    func_position:
      end: 45
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 45
    functionName: PKCS12_get0_mac
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c
    functionUses: 0
    functionsReached:
    - X509_SIG_get0
    linkageType: ''
    returnType: void
    signature: "PKCS12_get0_mac(const ASN1_OCTET_STRING **pmac,\n                     const
      X509_ALGOR **pmacalg,\n                     const ASN1_OCTET_STRING **psalt,\n
      \                    const ASN1_INTEGER **piter,\n                     const
      PKCS12 *p12)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS5_PBKDF2_HMAC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:60,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:64,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - pass
    - passlen
    - salt
    - saltlen
    - iter
    - keylen
    - key
    - digest
    argTypes:
    - char*
    - int
    - unsigned char*
    - int
    - int
    - int
    - unsigned char*
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 67
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 67
    functionName: pkcs12_gen_gost_mac_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    - memcpy
    - PKCS5_PBKDF2_HMAC
    linkageType: ''
    returnType: int
    signature: "pkcs12_gen_gost_mac_key(const char *pass, int passlen,\n                                   const
      unsigned char *salt, int saltlen,\n                                   int iter,
      int keylen, unsigned char *key,\n                                   const EVP_MD
      *digest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_type_is_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:90,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:91,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:100,1
    - Dst: X509_SIG_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:101,1
    - Dst: X509_ALGOR_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:102,1
    - Dst: EVP_get_digestbyobj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:103,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:104,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:107,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:108,1
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:114,1
    - Dst: pkcs12_gen_gost_mac_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:116,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:118,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:124,1
    - Dst: HMAC_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:127,1
    - Dst: HMAC_Init_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:128,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:129,1
    - Dst: HMAC_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:131,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:132,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:135,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 5
    argNames:
    - p12
    - pass
    - passlen
    - mac
    - maclen
    argTypes:
    - PKCS12*
    - char*
    - int
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 137
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 137
    functionName: pkcs12_gen_mac
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c
    functionUses: 0
    functionsReached:
    - pkcs12_gen_gost_mac_key
    - PKCS7_type_is_data
    - PKCS12err
    - EVP_MD_size
    - HMAC_Update
    - getenv
    - X509_SIG_get0
    - EVP_MD_type
    - HMAC_CTX_new
    - HMAC_Init_ex
    - ASN1_INTEGER_get
    - HMAC_Final
    - HMAC_CTX_free
    - EVP_get_digestbyobj
    - X509_ALGOR_get0
    linkageType: ''
    returnType: int
    signature: "pkcs12_gen_mac(PKCS12 *p12, const char *pass, int passlen,\n                          unsigned
      char *mac, unsigned int *maclen,\n                          int (*pkcs12_key_gen)(const
      char *pass, int passlen,\n                                                unsigned
      char *salt, int slen,\n                                                int id,
      int iter, int n,\n                                                unsigned char
      *out,\n                                                const EVP_MD *md_type))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pkcs12_gen_mac
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - p12
    - pass
    - passlen
    - mac
    - maclen
    argTypes:
    - PKCS12*
    - char*
    - int
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: PKCS12_gen_mac
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c
    functionUses: 1
    functionsReached:
    - pkcs12_gen_mac
    linkageType: ''
    returnType: int
    signature: "PKCS12_gen_mac(PKCS12 *p12, const char *pass, int passlen,\n                   unsigned
      char *mac, unsigned int *maclen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:153,1
    - Dst: pkcs12_gen_mac
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:156,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:158,1
    - Dst: X509_SIG_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:161,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:162,1
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:163,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - p12
    - pass
    - passlen
    argTypes:
    - PKCS12*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 167
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 167
    functionName: PKCS12_verify_mac
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c
    functionUses: 2
    functionsReached:
    - PKCS12err
    - CRYPTO_memcmp
    - X509_SIG_get0
    - pkcs12_gen_mac
    - ASN1_STRING_length
    - ASN1_STRING_get0_data
    linkageType: ''
    returnType: int
    signature: PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:180,1
    - Dst: PKCS12_setup_mac
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:181,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:182,1
    - Dst: pkcs12_gen_mac
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:188,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:190,1
    - Dst: X509_SIG_getm
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:193,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:194,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:195,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 7
    argNames:
    - p12
    - pass
    - passlen
    - salt
    - saltlen
    - iter
    - md_type
    argTypes:
    - PKCS12*
    - char*
    - int
    - unsigned char*
    - int
    - int
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 199
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 199
    functionName: PKCS12_set_mac
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c
    functionUses: 1
    functionsReached:
    - EVP_sha1
    - PKCS12_setup_mac
    - PKCS12err
    - X509_SIG_getm
    - ASN1_OCTET_STRING_set
    - pkcs12_gen_mac
    linkageType: ''
    returnType: int
    signature: "PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen,\n                   unsigned
      char *salt, int saltlen, int iter,\n                   const EVP_MD *md_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_MAC_DATA_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:207,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:210,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:211,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:214,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:215,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:221,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:222,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:227,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:230,1
    - Dst: X509_SIG_getm
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:231,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:232,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:232,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:232,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c:234,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 5
    argNames:
    - p12
    - iter
    - salt
    - saltlen
    - md_type
    argTypes:
    - PKCS12*
    - int
    - unsigned char*
    - int
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 239
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 239
    functionName: PKCS12_setup_mac
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c
    functionUses: 1
    functionsReached:
    - RAND_bytes
    - PKCS12_MAC_DATA_new
    - ASN1_INTEGER_new
    - PKCS12err
    - X509_ALGOR_set0
    - ASN1_INTEGER_set
    - OBJ_nid2obj
    - X509_SIG_getm
    - EVP_MD_type
    - memcpy
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen,\n
      \                    const EVP_MD *md_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_SIG_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_p8d.c:19,1
    - Dst: PKCS12_item_decrypt_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_p8d.c:20,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_p8d.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p8
    - pass
    - passlen
    argTypes:
    - X509_SIG*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 23
      start: 14
    functionDepth: 3
    functionLinenumber: 14
    functionLinenumberEnd: 23
    functionName: PKCS8_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_p8d.c
    functionUses: 4
    functionsReached:
    - ASN1_ITEM_rptr
    - X509_SIG_get0
    - PKCS12_item_decrypt_d2i
    linkageType: ''
    returnType: PKCS8_PRIV_KEY_INFO
    signature: "*PKCS8_decrypt(const X509_SIG *p8, const char *pass,\n                                   int
      passlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c:23,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c:25,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - asc
    - asclen
    - uni
    - unilen
    argTypes:
    - char*
    - int
    - unsigned char**
    - int*
    constantsTouched: []
    func_position:
      end: 39
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 39
    functionName: OPENSSL_asc2uni
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - strlen
    - OPENSSL_malloc
    linkageType: ''
    returnType: unsigned char
    signature: "*OPENSSL_asc2uni(const char *asc, int asclen,\n                               unsigned
      char **uni, int *unilen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c:53,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - uni
    - unilen
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 59
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 59
    functionName: OPENSSL_uni2asc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    linkageType: ''
    returnType: char
    signature: '*OPENSSL_uni2asc(const unsigned char *uni, int unilen)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c:78,1
    - Dst: UTF8_getc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c:81,1
    - Dst: OPENSSL_asc2uni
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c:100,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c:113,1
    - Dst: UTF8_getc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c:118,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 4
    argNames:
    - asc
    - asclen
    - uni
    - unilen
    argTypes:
    - char*
    - int
    - unsigned char**
    - int*
    constantsTouched: []
    func_position:
      end: 142
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 142
    functionName: OPENSSL_utf82uni
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - strlen
    - OPENSSL_asc2uni
    - OPENSSL_malloc
    - UTF8_getc
    linkageType: ''
    returnType: unsigned char
    signature: "*OPENSSL_utf82uni(const char *asc, int asclen,\n                                unsigned
      char **uni, int *unilen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UTF8_putc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c:168,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - str
    - utf16
    - len
    argTypes:
    - char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 169
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 169
    functionName: bmp_to_utf8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - UTF8_putc
    linkageType: ''
    returnType: int
    signature: bmp_to_utf8(char *str, const unsigned char *utf16, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bmp_to_utf8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c:181,1
    - Dst: OPENSSL_uni2asc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c:187,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c:197,1
    - Dst: bmp_to_utf8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c:202,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 2
    argNames:
    - uni
    - unilen
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 213
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 213
    functionName: OPENSSL_uni2utf8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - bmp_to_utf8
    - OPENSSL_uni2asc
    - OPENSSL_malloc
    linkageType: ''
    returnType: char
    signature: '*OPENSSL_uni2utf8(const unsigned char *uni, int unilen)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c:217,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - p12
    argTypes:
    - BIO*
    - PKCS12*
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: i2d_PKCS12_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: i2d_PKCS12_bio(BIO *bp, PKCS12 *p12)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c:223,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - p12
    argTypes:
    - FILE*
    - PKCS12*
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: i2d_PKCS12_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - ASN1_item_i2d_fp
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: i2d_PKCS12_fp(FILE *fp, PKCS12 *p12)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c:229,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - p12
    argTypes:
    - BIO*
    - PKCS12**
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: d2i_PKCS12_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio
    linkageType: ''
    returnType: PKCS12
    signature: '*d2i_PKCS12_bio(BIO *bp, PKCS12 **p12)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c:235,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - p12
    argTypes:
    - FILE*
    - PKCS12**
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: d2i_PKCS12_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_fp
    linkageType: ''
    returnType: PKCS12
    signature: '*d2i_PKCS12_fp(FILE *fp, PKCS12 **p12)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_asc2uni
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:41,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:42,1
    - Dst: PKCS12_key_gen_uni
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:45,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 9
    argNames:
    - pass
    - passlen
    - salt
    - saltlen
    - id
    - iter
    - n
    - out
    - md_type
    argTypes:
    - char*
    - int
    - unsigned char*
    - int
    - int
    - int
    - int
    - unsigned char*
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 51
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 51
    functionName: PKCS12_key_gen_asc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c
    functionUses: 0
    functionsReached:
    - PKCS12err
    - PKCS12_key_gen_uni
    - OPENSSL_clear_free
    - OPENSSL_asc2uni
    linkageType: ''
    returnType: int
    signature: "PKCS12_key_gen_asc(const char *pass, int passlen, unsigned char *salt,\n
      \                      int saltlen, int id, int iter, int n,\n                       unsigned
      char *out, const EVP_MD *md_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_utf82uni
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:64,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:65,1
    - Dst: PKCS12_key_gen_uni
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:68,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 9
    argNames:
    - pass
    - passlen
    - salt
    - saltlen
    - id
    - iter
    - n
    - out
    - md_type
    argTypes:
    - char*
    - int
    - unsigned char*
    - int
    - int
    - int
    - int
    - unsigned char*
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 74
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 74
    functionName: PKCS12_key_gen_utf8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c
    functionUses: 0
    functionsReached:
    - PKCS12err
    - PKCS12_key_gen_uni
    - OPENSSL_clear_free
    - OPENSSL_utf82uni
    linkageType: ''
    returnType: int
    signature: "PKCS12_key_gen_utf8(const char *pass, int passlen, unsigned char *salt,\n
      \                       int saltlen, int id, int iter, int n,\n                        unsigned
      char *out, const EVP_MD *md_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:91,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:96,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:97,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:98,1
    - Dst: h__dump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:99,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:100,1
    - Dst: h__dump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:101,1
    - Dst: EVP_MD_block_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:103,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:104,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:107,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:108,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:109,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:116,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:117,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:118,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:130,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:131,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:132,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:133,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:136,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:137,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:138,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:141,1
    - Dst: min
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:141,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:144,1
    - Dst: h__dump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:145,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:155,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:157,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:160,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:162,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:164,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:166,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:169,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:171,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:175,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:176,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:179,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:185,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:188,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:189,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:190,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:191,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:192,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:193,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:194,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 105
    argCount: 9
    argNames:
    - pass
    - passlen
    - salt
    - saltlen
    - id
    - iter
    - n
    - out
    - md_type
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - int
    - int
    - int
    - unsigned char*
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 196
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 196
    functionName: PKCS12_key_gen_uni
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c
    functionUses: 2
    functionsReached:
    - BN_bin2bn
    - EVP_DigestUpdate
    - EVP_MD_CTX_free
    - fprintf
    - EVP_DigestInit_ex
    - EVP_DigestFinal_ex
    - EVP_MD_block_size
    - BN_free
    - EVP_MD_size
    - h__dump
    - BN_new
    - memset
    - OPENSSL_free
    - min
    - BN_add_word
    - PKCS12err
    - BN_add
    - EVP_MD_CTX_new
    - memcpy
    - BN_bn2bin
    - OPENSSL_malloc
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: "PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char
      *salt,\n                       int saltlen, int id, int iter, int n,\n                       unsigned
      char *out, const EVP_MD *md_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:202,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 204
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 204
    functionName: h__dump
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: h__dump(unsigned char *p, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_get_attr_gen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bag
    - attr_nid
    argTypes:
    - PKCS12_SAFEBAG*
    - int
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: PKCS12_get_attr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - PKCS12_get_attr_gen
    linkageType: ''
    returnType: ASN1_TYPE
    signature: '*PKCS12_get_attr(const PKCS12_SAFEBAG *bag, int attr_nid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_get_attr_gen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bag
    - attr_nid
    argTypes:
    - PKCS12_SAFEBAG*
    - int
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: PKCS12_SAFEBAG_get0_attr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c
    functionUses: 1
    functionsReached:
    - PKCS12_get_attr_gen
    linkageType: ''
    returnType: ASN1_TYPE
    signature: "*PKCS12_SAFEBAG_get0_attr(const PKCS12_SAFEBAG *bag,\n                                          int
      attr_nid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_get_attr_gen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:30,1
    - Dst: PKCS8_pkey_get0_attrs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p8
    - attr_nid
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - int
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: PKCS8_get_attr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - PKCS8_pkey_get0_attrs
    - PKCS12_get_attr_gen
    linkageType: ''
    returnType: ASN1_TYPE
    signature: '*PKCS8_get_attr(PKCS8_PRIV_KEY_INFO *p8, int attr_nid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_get_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: PKCS12_SAFEBAG_get0_p8inf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c
    functionUses: 1
    functionsReached:
    - PKCS12_SAFEBAG_get_nid
    linkageType: ''
    returnType: PKCS8_PRIV_KEY_INFO
    signature: '*PKCS12_SAFEBAG_get0_p8inf(const PKCS12_SAFEBAG *bag)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: PKCS12_SAFEBAG_get0_pkcs8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    linkageType: ''
    returnType: X509_SIG
    signature: '*PKCS12_SAFEBAG_get0_pkcs8(const PKCS12_SAFEBAG *bag)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: PKCS12_SAFEBAG_get0_safes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    linkageType: ''
    returnType: STACK_OF
    signature: '*

      PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: PKCS12_SAFEBAG_get0_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: '*PKCS12_SAFEBAG_get0_type(const PKCS12_SAFEBAG *bag)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: PKCS12_SAFEBAG_get_nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c
    functionUses: 3
    functionsReached:
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: PKCS12_SAFEBAG_get_nid(const PKCS12_SAFEBAG *bag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: PKCS12_SAFEBAG_get_bag_nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_get_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:76,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:78,1
    - Dst: ASN1_item_unpack
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:80,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: PKCS12_SAFEBAG_get1_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c
    functionUses: 1
    functionsReached:
    - ASN1_ITEM_rptr
    - OBJ_obj2nid
    - PKCS12_SAFEBAG_get_nid
    - ASN1_item_unpack
    linkageType: ''
    returnType: X509
    signature: '*PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_get_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:86,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:88,1
    - Dst: ASN1_item_unpack
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:90,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: PKCS12_SAFEBAG_get1_crl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - OBJ_obj2nid
    - PKCS12_SAFEBAG_get_nid
    - ASN1_item_unpack
    linkageType: ''
    returnType: X509_CRL
    signature: '*PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_item_pack_safebag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:96,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x509
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: PKCS12_SAFEBAG_create_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - PKCS12_item_pack_safebag
    linkageType: ''
    returnType: PKCS12_SAFEBAG
    signature: '*PKCS12_SAFEBAG_create_cert(X509 *x509)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_item_pack_safebag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:102,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: PKCS12_SAFEBAG_create_crl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - PKCS12_item_pack_safebag
    linkageType: ''
    returnType: PKCS12_SAFEBAG
    signature: '*PKCS12_SAFEBAG_create_crl(X509_CRL *crl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:110,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:113,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p8
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    constantsTouched: []
    func_position:
      end: 119
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 119
    functionName: PKCS12_SAFEBAG_create0_p8inf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - PKCS12_SAFEBAG_new
    - PKCS12err
    - OBJ_nid2obj
    linkageType: ''
    returnType: PKCS12_SAFEBAG
    signature: '*PKCS12_SAFEBAG_create0_p8inf(PKCS8_PRIV_KEY_INFO *p8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:125,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:129,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p8
    argTypes:
    - X509_SIG*
    constantsTouched: []
    func_position:
      end: 135
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 135
    functionName: PKCS12_SAFEBAG_create0_pkcs8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - PKCS12_SAFEBAG_new
    - PKCS12err
    - OBJ_nid2obj
    linkageType: ''
    returnType: PKCS12_SAFEBAG
    signature: '*PKCS12_SAFEBAG_create0_pkcs8(X509_SIG *p8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_cipherbynid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:148,1
    - Dst: PKCS8_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:153,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:157,1
    - Dst: PKCS12_SAFEBAG_create0_pkcs8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:161,1
    - Dst: PKCS12err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:164,1
    - Dst: X509_SIG_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 7
    argNames:
    - pbe_nid
    - pass
    - passlen
    - salt
    - saltlen
    - iter
    - p8inf
    argTypes:
    - int
    - char*
    - int
    - unsigned char*
    - int
    - int
    - PKCS8_PRIV_KEY_INFO*
    constantsTouched: []
    func_position:
      end: 170
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 170
    functionName: PKCS12_SAFEBAG_create_pkcs8_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - PKCS8_encrypt
    - EVP_get_cipherbynid
    - PKCS12err
    - PKCS12_SAFEBAG_create0_pkcs8
    - X509_SIG_free
    linkageType: ''
    returnType: PKCS12_SAFEBAG
    signature: "*PKCS12_SAFEBAG_create_pkcs8_encrypt(int pbe_nid,\n                                                    const
      char *pass,\n                                                    int passlen,\n
      \                                                   unsigned char *salt,\n                                                    int
      saltlen, int iter,\n                                                    PKCS8_PRIV_KEY_INFO
      *p8inf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_attr.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bag
    - name
    - namelen
    argTypes:
    - PKCS12_SAFEBAG*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 25
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 25
    functionName: PKCS12_add_localkeyid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_attr.c
    functionUses: 1
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "PKCS12_add_localkeyid(PKCS12_SAFEBAG *bag, unsigned char *name,\n
      \                         int namelen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_pkey_add1_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_attr.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p8
    - usage
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - int
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: PKCS8_add_keyusage
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_attr.c
    functionUses: 0
    functionsReached:
    - PKCS8_pkey_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: PKCS8_add_keyusage(PKCS8_PRIV_KEY_INFO *p8, int usage)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_attr.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bag
    - name
    - namelen
    argTypes:
    - PKCS12_SAFEBAG*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: PKCS12_add_friendlyname_asc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_attr.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "PKCS12_add_friendlyname_asc(PKCS12_SAFEBAG *bag, const char *name,\n
      \                               int namelen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_attr.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bag
    - name
    - namelen
    argTypes:
    - PKCS12_SAFEBAG*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: PKCS12_add_friendlyname_utf8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_attr.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "PKCS12_add_friendlyname_utf8(PKCS12_SAFEBAG *bag, const char *name,\n
      \                               int namelen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_attr.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bag
    - name
    - namelen
    argTypes:
    - PKCS12_SAFEBAG*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: PKCS12_add_friendlyname_uni
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_attr.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "PKCS12_add_friendlyname_uni(PKCS12_SAFEBAG *bag,\n                                const
      unsigned char *name, int namelen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_attr.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bag
    - name
    - namelen
    argTypes:
    - PKCS12_SAFEBAG*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: PKCS12_add_CSPName_asc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_attr.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: PKCS12_add_CSPName_asc(PKCS12_SAFEBAG *bag, const char *name, int namelen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_attr.c:82,1
    - Dst: X509at_get_attr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_attr.c:83,1
    - Dst: X509_ATTRIBUTE_get0_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_attr.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - attrs
    - attr_nid
    argTypes:
    - STACK_OF*
    - int
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: PKCS12_get_attr_gen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_attr.c
    functionUses: 3
    functionsReached:
    - X509at_get_attr_by_NID
    - X509_ATTRIBUTE_get0_type
    - X509at_get_attr
    linkageType: ''
    returnType: ASN1_TYPE
    signature: "*PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs,\n                               int
      attr_nid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_get0_attr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_attr.c:91,1
    - Dst: OPENSSL_uni2utf8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_attr.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: PKCS12_get_friendlyname
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_attr.c
    functionUses: 0
    functionsReached:
    - OPENSSL_uni2utf8
    - PKCS12_SAFEBAG_get0_attr
    linkageType: ''
    returnType: char
    signature: '*PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: PKCS12_SAFEBAG_get0_attrs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_attr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: '*

      PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:39,1
    - Dst: ASYNCerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:41,1
    - Dst: async_fibre_init_dispatcher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:45,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:48,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 56
    functionName: async_ctx_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_set_local
    - async_fibre_init_dispatcher
    - ASYNCerr
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: async_ctx
    signature: '*async_ctx_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:60,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: async_get_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - CRYPTO_THREAD_get_local
    linkageType: ''
    returnType: async_ctx
    signature: '*async_get_ctx(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: async_get_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:70,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:72,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: async_ctx_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - async_get_ctx
    - OPENSSL_free
    - CRYPTO_THREAD_set_local
    linkageType: ''
    returnType: int
    signature: async_ctx_free(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:84,1
    - Dst: ASYNCerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 93
    functionName: async_job_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - ASYNCerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: ASYNC_JOB
    signature: '*async_job_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:98,1
    - Dst: async_fibre_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:99,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - job
    argTypes:
    - ASYNC_JOB*
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: async_job_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - async_fibre_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: async_job_free(ASYNC_JOB *job)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:108,1
    - Dst: ASYNC_init_thread
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:114,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:116,1
    - Dst: sk_ASYNC_JOB_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:119,1
    - Dst: async_job_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:125,1
    - Dst: async_fibre_makecontext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:127,1
    - Dst: async_job_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:128,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 135
    functionName: async_get_pool_job
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - ASYNC_init_thread
    - CRYPTO_THREAD_get_local
    - async_fibre_makecontext
    - async_job_free
    - async_job_new
    - sk_ASYNC_JOB_pop
    linkageType: ''
    returnType: ASYNC_JOB
    signature: '*async_get_pool_job(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:140,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:141,1
    - Dst: sk_ASYNC_JOB_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - job
    argTypes:
    - ASYNC_JOB*
    constantsTouched: []
    func_position:
      end: 144
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 144
    functionName: async_release_job
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - CRYPTO_THREAD_get_local
    - sk_ASYNC_JOB_push
    linkageType: ''
    returnType: void
    signature: async_release_job(ASYNC_JOB *job)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: async_get_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:149,1
    - Dst: ASYNC_JOB*::func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:154,1
    - Dst: async_fibre_swapcontext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:158,1
    - Dst: ASYNCerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 167
    functionName: async_start_func
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - async_get_ctx
    - async_fibre_swapcontext
    - ASYNC_JOB*::func
    - ASYNCerr
    linkageType: ''
    returnType: void
    signature: async_start_func(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: async_get_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:172,1
    - Dst: async_ctx_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:174,1
    - Dst: async_release_job
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:188,1
    - Dst: async_fibre_swapcontext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:204,1
    - Dst: ASYNCerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:206,1
    - Dst: ASYNCerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:214,1
    - Dst: async_release_job
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:215,1
    - Dst: async_get_pool_job
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:222,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:227,1
    - Dst: ASYNCerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:229,1
    - Dst: async_release_job
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:230,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:234,1
    - Dst: async_fibre_swapcontext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:241,1
    - Dst: ASYNCerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:243,1
    - Dst: async_release_job
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:249,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 69
    argCount: 5
    argNames:
    - job
    - wctx
    - ret
    - args
    - size
    argTypes:
    - ASYNC_JOB**
    - ASYNC_WAIT_CTX*
    - int*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 253
      start: 169
    functionDepth: 3
    functionLinenumber: 169
    functionLinenumberEnd: 253
    functionName: ASYNC_start_job
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - async_get_pool_job
    - async_release_job
    - async_fibre_swapcontext
    - async_get_ctx
    - memcpy
    - ASYNCerr
    - async_ctx_new
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "ASYNC_start_job(ASYNC_JOB **job, ASYNC_WAIT_CTX *wctx, int *ret,\n
      \                   int (*func)(void *), void *args, size_t size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: async_get_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:258,1
    - Dst: async_fibre_swapcontext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:273,1
    - Dst: ASYNCerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:275,1
    - Dst: async_wait_ctx_reset_counts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 282
    functionName: ASYNC_pause_job
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c
    functionUses: 2
    functionsReached:
    - async_get_ctx
    - async_wait_ctx_reset_counts
    - async_fibre_swapcontext
    - ASYNCerr
    linkageType: ''
    returnType: int
    signature: ASYNC_pause_job(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASYNC_JOB_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:292,1
    - Dst: async_job_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pool
    argTypes:
    - async_pool*
    constantsTouched: []
    func_position:
      end: 295
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 295
    functionName: async_empty_pool
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - sk_ASYNC_JOB_pop
    - async_job_free
    linkageType: ''
    returnType: void
    signature: async_empty_pool(async_pool *pool)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:299,1
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:302,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 308
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 308
    functionName: async_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_cleanup_local
    - CRYPTO_THREAD_init_local
    linkageType: ''
    returnType: int
    signature: async_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:312,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: async_deinit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_cleanup_local
    linkageType: ''
    returnType: void
    signature: async_deinit(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASYNCerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:322,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:326,1
    - Dst: ossl_init_thread_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:329,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:333,1
    - Dst: ASYNCerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:335,1
    - Dst: sk_ASYNC_JOB_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:339,1
    - Dst: ASYNCerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:341,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:342,1
    - Dst: async_job_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:351,1
    - Dst: async_fibre_makecontext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:352,1
    - Dst: async_job_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:357,1
    - Dst: sk_ASYNC_JOB_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:361,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:365,1
    - Dst: ASYNCerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:366,1
    - Dst: async_free_pool_internal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:372,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 2
    argNames:
    - max_size
    - init_size
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 374
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 374
    functionName: ASYNC_init_thread
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_set_local
    - async_fibre_makecontext
    - async_job_free
    - sk_ASYNC_JOB_new_null
    - async_job_new
    - async_free_pool_internal
    - OPENSSL_zalloc
    - ASYNCerr
    - OPENSSL_free
    - ossl_init_thread_start
    - OPENSSL_init_crypto
    - sk_ASYNC_JOB_push
    linkageType: ''
    returnType: int
    signature: ASYNC_init_thread(size_t max_size, size_t init_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: async_empty_pool
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:381,1
    - Dst: sk_ASYNC_JOB_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:382,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:383,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:384,1
    - Dst: async_local_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:385,1
    - Dst: async_ctx_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pool
    argTypes:
    - async_pool*
    constantsTouched: []
    func_position:
      end: 387
      start: 376
    functionDepth: 4
    functionLinenumber: 376
    functionLinenumberEnd: 387
    functionName: async_free_pool_internal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_set_local
    - sk_ASYNC_JOB_free
    - async_ctx_free
    - async_empty_pool
    - OPENSSL_free
    - async_local_cleanup
    linkageType: ''
    returnType: void
    signature: async_free_pool_internal(async_pool *pool)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: async_free_pool_internal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:391,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 392
      start: 389
    functionDepth: 5
    functionLinenumber: 389
    functionLinenumberEnd: 392
    functionName: ASYNC_cleanup_thread
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_get_local
    - async_free_pool_internal
    linkageType: ''
    returnType: void
    signature: ASYNC_cleanup_thread(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: async_get_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 403
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 403
    functionName: ASYNC_get_current_job
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c
    functionUses: 2
    functionsReached:
    - async_get_ctx
    linkageType: ''
    returnType: ASYNC_JOB
    signature: '*ASYNC_get_current_job(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - job
    argTypes:
    - ASYNC_JOB*
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: ASYNC_get_wait_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ASYNC_WAIT_CTX
    signature: '*ASYNC_get_wait_ctx(ASYNC_JOB *job)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: async_get_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 420
      start: 410
    functionDepth: 3
    functionLinenumber: 410
    functionLinenumberEnd: 420
    functionName: ASYNC_block_pause
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - async_get_ctx
    linkageType: ''
    returnType: void
    signature: ASYNC_block_pause(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: async_get_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c:424,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 433
      start: 422
    functionDepth: 3
    functionLinenumber: 422
    functionLinenumberEnd: 433
    functionName: ASYNC_unblock_pause
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - async_get_ctx
    linkageType: ''
    returnType: void
    signature: ASYNC_unblock_pause(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async_wait.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: ASYNC_WAIT_CTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async_wait.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: ASYNC_WAIT_CTX
    signature: '*ASYNC_WAIT_CTX_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct fd_lookup_st*::cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async_wait.c:33,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async_wait.c:37,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async_wait.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ASYNC_WAIT_CTX*
    constantsTouched: []
    func_position:
      end: 42
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 42
    functionName: ASYNC_WAIT_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async_wait.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - struct fd_lookup_st*::cleanup
    linkageType: ''
    returnType: void
    signature: ASYNC_WAIT_CTX_free(ASYNC_WAIT_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async_wait.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - key
    - fd
    - custom_data
    argTypes:
    - ASYNC_WAIT_CTX*
    - void*
    - OSSL_ASYNC_FD
    - void*
    constantsTouched: []
    func_position:
      end: 63
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 63
    functionName: ASYNC_WAIT_CTX_set_wait_fd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async_wait.c
    functionUses: 2
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: "ASYNC_WAIT_CTX_set_wait_fd(ASYNC_WAIT_CTX *ctx, const void *key,\n
      \                              OSSL_ASYNC_FD fd, void *custom_data,\n                               void
      (*cleanup)(ASYNC_WAIT_CTX *, const void *,\n                                               OSSL_ASYNC_FD,
      void *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - key
    - fd
    - custom_data
    argTypes:
    - ASYNC_WAIT_CTX*
    - void*
    - OSSL_ASYNC_FD*
    - void**
    constantsTouched: []
    func_position:
      end: 85
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 85
    functionName: ASYNC_WAIT_CTX_get_fd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async_wait.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "ASYNC_WAIT_CTX_get_fd(ASYNC_WAIT_CTX *ctx, const void *key,\n                          OSSL_ASYNC_FD
      *fd, void **custom_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - fd
    - numfds
    argTypes:
    - ASYNC_WAIT_CTX*
    - OSSL_ASYNC_FD*
    - size_t*
    constantsTouched: []
    func_position:
      end: 108
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 108
    functionName: ASYNC_WAIT_CTX_get_all_fds
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async_wait.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "ASYNC_WAIT_CTX_get_all_fds(ASYNC_WAIT_CTX *ctx, OSSL_ASYNC_FD *fd,\n
      \                              size_t *numfds)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 5
    argNames:
    - ctx
    - addfd
    - numaddfds
    - delfd
    - numdelfds
    argTypes:
    - ASYNC_WAIT_CTX*
    - OSSL_ASYNC_FD*
    - size_t*
    - OSSL_ASYNC_FD*
    - size_t*
    constantsTouched: []
    func_position:
      end: 137
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 137
    functionName: ASYNC_WAIT_CTX_get_changed_fds
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async_wait.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "ASYNC_WAIT_CTX_get_changed_fds(ASYNC_WAIT_CTX *ctx, OSSL_ASYNC_FD
      *addfd,\n                                   size_t *numaddfds, OSSL_ASYNC_FD
      *delfd,\n                                   size_t *numdelfds)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async_wait.c:163,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - ASYNC_WAIT_CTX*
    - void*
    constantsTouched: []
    func_position:
      end: 181
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 181
    functionName: ASYNC_WAIT_CTX_clear_fd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async_wait.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: ASYNC_WAIT_CTX_clear_fd(ASYNC_WAIT_CTX *ctx, const void *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async_wait.c:198,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ASYNC_WAIT_CTX*
    constantsTouched: []
    func_position:
      end: 211
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 211
    functionName: async_wait_ctx_reset_counts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async_wait.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: async_wait_ctx_reset_counts(ASYNC_WAIT_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async_err.c:45,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async_err.c:46,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/async_err.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 51
    functionName: ERR_load_ASYNC_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/async_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_ASYNC_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: ASYNC_is_capable
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ASYNC_is_capable(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: async_local_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_null.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: async_local_cleanup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: ASYNC_is_capable
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_win.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ASYNC_is_capable(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: async_get_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_win.c:25,1
    - Dst: ConvertFiberToThread
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_win.c:29,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 33
    functionName: async_local_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_win.c
    functionUses: 1
    functionsReached:
    - async_get_ctx
    - ConvertFiberToThread
    linkageType: ''
    returnType: void
    signature: async_local_cleanup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConvertThreadToFiber
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_win.c:37,1
    - Dst: GetCurrentFiber
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_win.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - fibre
    argTypes:
    - async_fibre*
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: async_fibre_init_dispatcher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_win.c
    functionUses: 1
    functionsReached:
    - ConvertThreadToFiber
    - GetCurrentFiber
    linkageType: ''
    returnType: int
    signature: async_fibre_init_dispatcher(async_fibre *fibre)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: async_start_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_win.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unused
    argTypes:
    - PVOID
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 4
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: async_start_func_win
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_win.c
    functionUses: 0
    functionsReached:
    - async_start_func
    linkageType: ''
    returnType: VOID
    signature: async_start_func_win(PVOID unused)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getcontext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_posix.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 29
    functionName: ASYNC_is_capable
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_posix.c
    functionUses: 0
    functionsReached:
    - getcontext
    linkageType: ''
    returnType: int
    signature: ASYNC_is_capable(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: async_local_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_posix.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: async_local_cleanup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getcontext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_posix.c:38,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_posix.c:39,1
    - Dst: makecontext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_posix.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - fibre
    argTypes:
    - async_fibre*
    constantsTouched: []
    func_position:
      end: 50
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 50
    functionName: async_fibre_makecontext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_posix.c
    functionUses: 2
    functionsReached:
    - makecontext
    - OPENSSL_malloc
    - getcontext
    linkageType: ''
    returnType: int
    signature: async_fibre_makecontext(async_fibre *fibre)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_posix.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fibre
    argTypes:
    - async_fibre*
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: async_fibre_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_posix.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: async_fibre_free(async_fibre *fibre)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _setjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_posix.h:41,1
    - Dst: _longjmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_posix.h:43,1
    - Dst: setcontext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_posix.h:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - o
    - n
    - r
    argTypes:
    - async_fibre*
    - async_fibre*
    - int
    constantsTouched: []
    func_position:
      end: 49
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 49
    functionName: async_fibre_swapcontext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_posix.h
    functionUses: 3
    functionsReached:
    - _setjmp
    - setcontext
    - _longjmp
    linkageType: ''
    returnType: ossl_inline
    signature: async_fibre_swapcontext(async_fibre *o, async_fibre *n, int r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - WHIRLPOOL_CTX*
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: WHIRLPOOL_Init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: WHIRLPOOL_Init(WHIRLPOOL_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WHIRLPOOL_BitUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c:84,1
    - Dst: WHIRLPOOL_BitUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - c
    - _inp
    - bytes
    argTypes:
    - WHIRLPOOL_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 92
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 92
    functionName: WHIRLPOOL_Update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c
    functionUses: 0
    functionsReached:
    - WHIRLPOOL_BitUpdate
    linkageType: ''
    returnType: int
    signature: WHIRLPOOL_Update(WHIRLPOOL_CTX *c, const void *_inp, size_t bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: whirlpool_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c:119,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c:129,1
    - Dst: whirlpool_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c:131,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c:134,1
    - Dst: whirlpool_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c:170,1
    - Dst: whirlpool_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c:188,1
    - Dst: whirlpool_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c:203,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 85
    argCount: 3
    argNames:
    - c
    - _inp
    - bits
    argTypes:
    - WHIRLPOOL_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 214
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 214
    functionName: WHIRLPOOL_BitUpdate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c
    functionUses: 1
    functionsReached:
    - whirlpool_block
    - memcpy
    linkageType: ''
    returnType: void
    signature: WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c, const void *_inp, size_t bits)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c:232,1
    - Dst: whirlpool_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c:233,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c:237,1
    - Dst: whirlpool_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c:245,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c:248,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c:249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - WHIRLPOOL_CTX*
    constantsTouched: []
    func_position:
      end: 253
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 253
    functionName: WHIRLPOOL_Final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c
    functionUses: 0
    functionsReached:
    - whirlpool_block
    - memcpy
    - OPENSSL_cleanse
    - memset
    linkageType: ''
    returnType: int
    signature: WHIRLPOOL_Final(unsigned char *md, WHIRLPOOL_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WHIRLPOOL_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c:262,1
    - Dst: WHIRLPOOL_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c:263,1
    - Dst: WHIRLPOOL_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - inp
    - bytes
    - md
    argTypes:
    - void*
    - size_t
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 266
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 266
    functionName: WHIRLPOOL
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c
    functionUses: 0
    functionsReached:
    - WHIRLPOOL_Update
    - WHIRLPOOL_Final
    - WHIRLPOOL_Init
    linkageType: ''
    returnType: unsigned char
    signature: '*WHIRLPOOL(const void *inp, size_t bytes, unsigned char *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GO_FOR_MMX
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:496,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:508,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:508,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:509,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:509,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:510,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:510,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:511,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:511,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:513,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:515,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:515,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:516,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:516,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:517,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:517,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:518,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:518,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:520,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:529,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:554,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:554,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:554,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:554,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:555,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:555,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:555,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:555,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:556,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:556,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:556,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:556,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:557,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:557,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:557,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:557,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:558,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:558,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:558,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:558,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:559,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:559,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:559,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:559,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:560,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:560,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:560,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:560,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:561,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:561,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:561,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:561,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:562,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:562,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:562,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:562,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:563,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:563,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:563,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:563,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:564,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:564,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:564,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:564,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:565,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:565,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:565,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:565,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:566,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:566,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:566,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:566,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:567,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:567,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:567,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:567,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:568,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:568,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:568,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:568,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:569,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:569,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:569,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:569,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:580,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:580,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:580,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:580,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:581,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:581,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:581,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:581,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:582,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:582,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:582,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:582,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:583,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:583,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:583,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:583,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:584,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:584,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:584,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:584,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:585,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:585,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:585,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:585,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:586,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:586,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:586,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:586,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:587,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:587,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:587,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:587,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:588,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:588,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:588,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:588,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:589,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:589,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:589,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:589,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:590,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:590,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:590,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:590,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:591,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:591,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:591,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:591,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:592,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:592,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:592,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:592,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:593,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:593,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:593,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:593,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:594,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:594,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:594,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:594,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:595,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:595,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:595,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:595,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:606,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:607,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:608,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:609,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:610,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:611,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:612,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:613,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:616,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:617,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:618,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:619,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:620,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:621,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:622,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:623,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:625,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:626,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:627,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:628,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:629,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:630,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:631,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:632,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:634,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:635,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:636,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:637,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:638,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:639,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:640,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:641,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:643,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:644,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:645,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:646,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:647,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:648,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:649,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:650,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:652,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:653,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:654,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:655,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:656,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:657,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:658,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:659,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:661,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:662,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:663,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:664,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:665,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:666,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:667,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:668,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:670,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:671,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:672,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:673,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:674,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:675,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:676,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:677,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:688,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:689,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:690,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:691,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:692,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:693,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:694,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:695,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:697,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:698,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:699,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:700,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:701,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:702,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:703,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:704,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:706,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:707,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:708,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:709,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:710,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:711,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:712,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:713,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:715,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:716,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:717,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:718,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:719,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:720,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:721,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:722,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:724,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:725,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:726,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:727,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:728,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:729,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:730,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:731,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:733,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:734,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:735,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:736,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:737,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:738,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:739,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:740,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:742,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:743,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:744,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:745,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:746,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:747,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:748,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:749,1
    - Dst: C0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:751,1
    - Dst: C1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:752,1
    - Dst: C2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:753,1
    - Dst: C3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:754,1
    - Dst: C4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:755,1
    - Dst: C5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:756,1
    - Dst: C6
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:757,1
    - Dst: C7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c:758,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 232
    argCount: 3
    argNames:
    - ctx
    - inp
    - n
    argTypes:
    - WHIRLPOOL_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 792
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 792
    functionName: whirlpool_block
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c
    functionUses: 2
    functionsReached:
    - C1
    - C7
    - C0
    - C3
    - GO_FOR_MMX
    - C2
    - memcpy
    - C6
    - C5
    - C4
    linkageType: ''
    returnType: void
    signature: whirlpool_block(WHIRLPOOL_CTX *ctx, const void *inp, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:23,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:24,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:27,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:28,1
    - Dst: IDEA_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:33,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:35,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:37,1
    - Dst: n2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:40,1
    - Dst: IDEA_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:45,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:47,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:49,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:51,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:52,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:54,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:55,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:58,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:60,1
    - Dst: IDEA_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:62,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:65,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:66,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:71,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:73,1
    - Dst: IDEA_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:75,1
    - Dst: l2nn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:78,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:82,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 66
    argCount: 6
    argNames:
    - in
    - out
    - length
    - ks
    - iv
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - IDEA_KEY_SCHEDULE*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 87
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 87
    functionName: IDEA_cbc_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c
    functionUses: 0
    functionsReached:
    - IDEA_encrypt
    - l2nn
    - l2n
    - n2l
    - n2ln
    linkageType: ''
    returnType: void
    signature: "IDEA_cbc_encrypt(const unsigned char *in, unsigned char *out,\n                      long
      length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv,\n                      int
      encrypt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: E_IDEA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:101,1
    - Dst: E_IDEA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:102,1
    - Dst: E_IDEA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:103,1
    - Dst: E_IDEA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:104,1
    - Dst: E_IDEA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:105,1
    - Dst: E_IDEA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:106,1
    - Dst: E_IDEA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:107,1
    - Dst: E_IDEA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:108,1
    - Dst: idea_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:111,1
    - Dst: idea_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - d
    - key
    argTypes:
    - unsigned long*
    - IDEA_KEY_SCHEDULE*
    constantsTouched: []
    func_position:
      end: 122
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 122
    functionName: IDEA_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c
    functionUses: 1
    functionsReached:
    - E_IDEA
    - idea_mul
    linkageType: ''
    returnType: void
    signature: IDEA_encrypt(unsigned long *d, IDEA_KEY_SCHEDULE *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_ofb64.c:32,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_ofb64.c:33,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_ofb64.c:37,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_ofb64.c:38,1
    - Dst: IDEA_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_ofb64.c:41,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_ofb64.c:44,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_ofb64.c:46,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_ofb64.c:56,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_ofb64.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 6
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - IDEA_KEY_SCHEDULE*
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 61
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 61
    functionName: IDEA_ofb64_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_ofb64.c
    functionUses: 0
    functionsReached:
    - IDEA_encrypt
    - l2n
    - n2l
    linkageType: ''
    returnType: void
    signature: "IDEA_ofb64_encrypt(const unsigned char *in, unsigned char *out,\n
      \                       long length, IDEA_KEY_SCHEDULE *schedule,\n                        unsigned
      char *ivec, int *num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: n2s
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_skey.c:20,1
    - Dst: n2s
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_skey.c:21,1
    - Dst: n2s
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_skey.c:22,1
    - Dst: n2s
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_skey.c:23,1
    - Dst: n2s
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_skey.c:24,1
    - Dst: n2s
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_skey.c:25,1
    - Dst: n2s
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_skey.c:26,1
    - Dst: n2s
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_skey.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 2
    argNames:
    - key
    - ks
    argTypes:
    - unsigned char*
    - IDEA_KEY_SCHEDULE*
    constantsTouched: []
    func_position:
      end: 52
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 52
    functionName: IDEA_set_encrypt_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_skey.c
    functionUses: 0
    functionsReached:
    - n2s
    linkageType: ''
    returnType: void
    signature: IDEA_set_encrypt_key(const unsigned char *key, IDEA_KEY_SCHEDULE *ks)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_skey.c:62,1
    - Dst: inverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_skey.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - ek
    - dk
    argTypes:
    - IDEA_KEY_SCHEDULE*
    - IDEA_KEY_SCHEDULE*
    constantsTouched: []
    func_position:
      end: 81
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 81
    functionName: IDEA_set_decrypt_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_skey.c
    functionUses: 0
    functionsReached:
    - inverse
    linkageType: ''
    returnType: void
    signature: IDEA_set_decrypt_key(IDEA_KEY_SCHEDULE *ek, IDEA_KEY_SCHEDULE *dk)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - xin
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 112
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 112
    functionName: inverse
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_skey.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: IDEA_INT
    signature: inverse(unsigned int xin)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: IDEA_options
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_ecb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*IDEA_options(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_ecb.c:24,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_ecb.c:26,1
    - Dst: IDEA_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_ecb.c:28,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_ecb.c:30,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_ecb.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - in
    - out
    - ks
    argTypes:
    - unsigned char*
    - unsigned char*
    - IDEA_KEY_SCHEDULE*
    constantsTouched: []
    func_position:
      end: 34
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 34
    functionName: IDEA_ecb_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_ecb.c
    functionUses: 0
    functionsReached:
    - IDEA_encrypt
    - l2n
    - n2l
    linkageType: ''
    returnType: void
    signature: "IDEA_ecb_encrypt(const unsigned char *in, unsigned char *out,\n                      IDEA_KEY_SCHEDULE
      *ks)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cfb64.c:33,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cfb64.c:35,1
    - Dst: IDEA_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cfb64.c:37,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cfb64.c:40,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cfb64.c:42,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cfb64.c:53,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cfb64.c:55,1
    - Dst: IDEA_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cfb64.c:57,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cfb64.c:60,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cfb64.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 7
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - IDEA_KEY_SCHEDULE*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 74
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 74
    functionName: IDEA_cfb64_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cfb64.c
    functionUses: 0
    functionsReached:
    - IDEA_encrypt
    - l2n
    - n2l
    linkageType: ''
    returnType: void
    signature: "IDEA_cfb64_encrypt(const unsigned char *in, unsigned char *out,\n
      \                       long length, IDEA_KEY_SCHEDULE *schedule,\n                        unsigned
      char *ivec, int *num, int encrypt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BLAKE2s_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/m_blake2s.c:28,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/m_blake2s.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/m_blake2s.c
    functionUses: 254
    functionsReached:
    - EVP_MD_CTX_md_data
    - BLAKE2s_Init
    linkageType: ''
    returnType: int
    signature: init(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BLAKE2s_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/m_blake2s.c:33,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/m_blake2s.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/m_blake2s.c
    functionUses: 40
    functionsReached:
    - BLAKE2s_Update
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BLAKE2s_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/m_blake2s.c:38,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/m_blake2s.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/m_blake2s.c
    functionUses: 13
    functionsReached:
    - EVP_MD_CTX_md_data
    - BLAKE2s_Final
    linkageType: ''
    returnType: int
    signature: final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: EVP_blake2s256
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/m_blake2s.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: '*EVP_blake2s256(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - S
    argTypes:
    - BLAKE2B_CTX*
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: blake2b_set_lastblock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: blake2b_set_lastblock(BLAKE2B_CTX *S)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - S
    argTypes:
    - BLAKE2B_CTX*
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: blake2b_init0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: ossl_inline
    signature: blake2b_init0(BLAKE2B_CTX *S)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_init0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:71,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:75,1
    - Dst: load64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - S
    - P
    argTypes:
    - BLAKE2B_CTX*
    - BLAKE2B_PARAM*
    constantsTouched: []
    func_position:
      end: 80
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 80
    functionName: blake2b_init_param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c
    functionUses: 0
    functionsReached:
    - assert
    - blake2b_init0
    - load64
    linkageType: ''
    returnType: void
    signature: blake2b_init_param(BLAKE2B_CTX *S, const BLAKE2B_PARAM *P)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: store32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:90,1
    - Dst: store64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:91,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:94,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:95,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:96,1
    - Dst: blake2b_init_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - BLAKE2B_CTX*
    constantsTouched: []
    func_position:
      end: 99
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 99
    functionName: BLAKE2b_Init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c
    functionUses: 0
    functionsReached:
    - store64
    - store32
    - blake2b_init_param
    - memset
    linkageType: ''
    returnType: int
    signature: BLAKE2b_Init(BLAKE2B_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:121,1
    - Dst: load64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:138,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:178,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:181,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:182,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:183,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:184,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:185,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:186,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:187,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:188,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:189,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:190,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:191,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:192,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 3
    argNames:
    - S
    - blocks
    - len
    argTypes:
    - BLAKE2B_CTX*
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 203
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 203
    functionName: blake2b_compress
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c
    functionUses: 0
    functionsReached:
    - assert
    - load64
    - ROUND
    linkageType: ''
    returnType: void
    signature: "blake2b_compress(BLAKE2B_CTX *S,\n                            const
      uint8_t *blocks,\n                            size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:222,1
    - Dst: blake2b_compress
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:223,1
    - Dst: blake2b_compress
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:236,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:242,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - c
    - data
    - datalen
    argTypes:
    - BLAKE2B_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 248
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 248
    functionName: BLAKE2b_Update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c
    functionUses: 0
    functionsReached:
    - blake2b_compress
    - memcpy
    - assert
    linkageType: ''
    returnType: int
    signature: BLAKE2b_Update(BLAKE2B_CTX *c, const void *data, size_t datalen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_set_lastblock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:258,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:260,1
    - Dst: blake2b_compress
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:261,1
    - Dst: store64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:265,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - BLAKE2B_CTX*
    constantsTouched: []
    func_position:
      end: 270
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 270
    functionName: BLAKE2b_Final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c
    functionUses: 0
    functionsReached:
    - blake2b_set_lastblock
    - store64
    - memset
    - blake2b_compress
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: BLAKE2b_Final(unsigned char *md, BLAKE2B_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - S
    argTypes:
    - BLAKE2S_CTX*
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: blake2s_set_lastblock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: blake2s_set_lastblock(BLAKE2S_CTX *S)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - S
    argTypes:
    - BLAKE2S_CTX*
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: blake2s_init0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: ossl_inline
    signature: blake2s_init0(BLAKE2S_CTX *S)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:70,1
    - Dst: blake2s_init0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:71,1
    - Dst: load32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - S
    - P
    argTypes:
    - BLAKE2S_CTX*
    - BLAKE2S_PARAM*
    constantsTouched: []
    func_position:
      end: 76
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 76
    functionName: blake2s_init_param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c
    functionUses: 0
    functionsReached:
    - assert
    - load32
    - blake2s_init0
    linkageType: ''
    returnType: void
    signature: blake2s_init_param(BLAKE2S_CTX *S, const BLAKE2S_PARAM *P)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: store32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:87,1
    - Dst: store48
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:88,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:91,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:92,1
    - Dst: blake2s_init_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - BLAKE2S_CTX*
    constantsTouched: []
    func_position:
      end: 95
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 95
    functionName: BLAKE2s_Init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c
    functionUses: 1
    functionsReached:
    - blake2s_init_param
    - store32
    - memset
    - store48
    linkageType: ''
    returnType: int
    signature: BLAKE2s_Init(BLAKE2S_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:117,1
    - Dst: load32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:134,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:174,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:177,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:178,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:179,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:180,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:181,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:182,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:183,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:184,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:185,1
    - Dst: ROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 3
    argNames:
    - S
    - blocks
    - len
    argTypes:
    - BLAKE2S_CTX*
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 197
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 197
    functionName: blake2s_compress
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c
    functionUses: 0
    functionsReached:
    - assert
    - load32
    - ROUND
    linkageType: ''
    returnType: void
    signature: "blake2s_compress(BLAKE2S_CTX *S,\n                            const
      uint8_t *blocks,\n                            size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:216,1
    - Dst: blake2s_compress
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:217,1
    - Dst: blake2s_compress
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:230,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:236,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - c
    - data
    - datalen
    argTypes:
    - BLAKE2S_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 242
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 242
    functionName: BLAKE2s_Update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c
    functionUses: 1
    functionsReached:
    - memcpy
    - assert
    - blake2s_compress
    linkageType: ''
    returnType: int
    signature: BLAKE2s_Update(BLAKE2S_CTX *c, const void *data, size_t datalen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_set_lastblock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:252,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:254,1
    - Dst: blake2s_compress
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:255,1
    - Dst: store32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:259,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - BLAKE2S_CTX*
    constantsTouched: []
    func_position:
      end: 264
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 264
    functionName: BLAKE2s_Final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c
    functionUses: 1
    functionsReached:
    - blake2s_compress
    - blake2s_set_lastblock
    - memset
    - store32
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: BLAKE2s_Final(unsigned char *md, BLAKE2S_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BLAKE2b_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/m_blake2b.c:28,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/m_blake2b.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/m_blake2b.c
    functionUses: 254
    functionsReached:
    - BLAKE2b_Init
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: init(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BLAKE2b_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/m_blake2b.c:33,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/m_blake2b.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/m_blake2b.c
    functionUses: 40
    functionsReached:
    - EVP_MD_CTX_md_data
    - BLAKE2b_Update
    linkageType: ''
    returnType: int
    signature: update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BLAKE2b_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/m_blake2b.c:38,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/m_blake2b.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/m_blake2b.c
    functionUses: 13
    functionsReached:
    - EVP_MD_CTX_md_data
    - BLAKE2b_Final
    linkageType: ''
    returnType: int
    signature: final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: EVP_blake2b512
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/m_blake2b.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: '*EVP_blake2b512(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2_impl.h:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 38
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 38
    functionName: load32
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2_impl.h
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: ossl_inline
    signature: load32(const uint8_t *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2_impl.h:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 62
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 62
    functionName: load64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2_impl.h
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: ossl_inline
    signature: load64(const uint8_t *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2_impl.h:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - w
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 80
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 80
    functionName: store32
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2_impl.h
    functionUses: 3
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: ossl_inline
    signature: store32(uint8_t *dst, uint32_t w)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2_impl.h:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - w
    argTypes:
    - uint8_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 98
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 98
    functionName: store64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2_impl.h
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: ossl_inline
    signature: store64(uint8_t *dst, uint64_t w)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: load48
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: load48(const uint8_t *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - w
    argTypes:
    - uint8_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: store48
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2_impl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: store48(uint8_t *dst, uint64_t w)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - c
    argTypes:
    - uint32_t
    - unsigned int
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: rotr32
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: rotr32(const uint32_t w, const unsigned int c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - c
    argTypes:
    - uint64_t
    - unsigned int
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: rotr64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: rotr64(const uint64_t w, const unsigned int c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:34,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - MDC2_CTX*
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: MDC2_Init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: MDC2_Init(MDC2_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:47,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:53,1
    - Dst: mdc2_body
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:57,1
    - Dst: mdc2_body
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:62,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - c
    - in
    - len
    argTypes:
    - MDC2_CTX*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 69
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 69
    functionName: MDC2_Update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c
    functionUses: 0
    functionsReached:
    - mdc2_body
    - memcpy
    linkageType: ''
    returnType: int
    signature: MDC2_Update(MDC2_CTX *c, const unsigned char *in, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:81,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:83,1
    - Dst: DES_set_odd_parity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:88,1
    - Dst: DES_set_key_unchecked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:89,1
    - Dst: DES_encrypt1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:90,1
    - Dst: DES_set_odd_parity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:92,1
    - Dst: DES_set_key_unchecked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:93,1
    - Dst: DES_encrypt1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:94,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:102,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:103,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:105,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 3
    argNames:
    - c
    - in
    - len
    argTypes:
    - MDC2_CTX*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 108
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 108
    functionName: mdc2_body
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c
    functionUses: 1
    functionsReached:
    - DES_set_odd_parity
    - DES_set_key_unchecked
    - c2l
    - DES_encrypt1
    - l2c
    linkageType: ''
    returnType: void
    signature: mdc2_body(MDC2_CTX *c, const unsigned char *in, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:120,1
    - Dst: mdc2_body
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:121,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:123,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - MDC2_CTX*
    constantsTouched: []
    func_position:
      end: 126
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 126
    functionName: MDC2_Final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c
    functionUses: 0
    functionsReached:
    - mdc2_body
    - memcpy
    - memset
    linkageType: ''
    returnType: int
    signature: MDC2_Final(unsigned char *md, MDC2_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MDC2_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:138,1
    - Dst: MDC2_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:139,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:139,1
    - Dst: MDC2_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:140,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:143,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 145
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c
    functionUses: 22
    functionsReached:
    - MDC2_Init
    - strlen
    - printf
    - MDC2_Final
    - MDC2_Update
    linkageType: ''
    returnType: void
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MDC2_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2_one.c:21,1
    - Dst: MDC2_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2_one.c:23,1
    - Dst: MDC2_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2_one.c:24,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2_one.c:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 27
      start: 14
    functionDepth: 3
    functionLinenumber: 14
    functionLinenumberEnd: 27
    functionName: MDC2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2_one.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    - MDC2_Init
    - MDC2_Final
    - MDC2_Update
    linkageType: ''
    returnType: unsigned char
    signature: '*MDC2(const unsigned char *d, size_t n, unsigned char *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:22,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:23,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:26,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:27,1
    - Dst: RC2_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:32,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:34,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:36,1
    - Dst: c2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:39,1
    - Dst: RC2_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:44,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:46,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:48,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:50,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:51,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:53,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:54,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:57,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:59,1
    - Dst: RC2_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:61,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:64,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:65,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:70,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:72,1
    - Dst: RC2_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:74,1
    - Dst: l2cn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:77,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:81,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c:82,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 66
    argCount: 6
    argNames:
    - in
    - out
    - length
    - ks
    - iv
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - RC2_KEY*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 86
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 86
    functionName: RC2_cbc_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c
    functionUses: 0
    functionsReached:
    - l2cn
    - c2l
    - RC2_decrypt
    - c2ln
    - RC2_encrypt
    - l2c
    linkageType: ''
    returnType: void
    signature: "RC2_cbc_encrypt(const unsigned char *in, unsigned char *out, long
      length,\n                     RC2_KEY *ks, unsigned char *iv, int encrypt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 2
    argNames:
    - d
    - key
    argTypes:
    - unsigned long*
    - RC2_KEY*
    constantsTouched: []
    func_position:
      end: 132
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 132
    functionName: RC2_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: RC2_encrypt(unsigned long *d, RC2_KEY *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 2
    argNames:
    - d
    - key
    argTypes:
    - unsigned long*
    - RC2_KEY*
    constantsTouched: []
    func_position:
      end: 179
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 179
    functionName: RC2_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: RC2_decrypt(unsigned long *d, RC2_KEY *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_ecb.c:28,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_ecb.c:30,1
    - Dst: RC2_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_ecb.c:33,1
    - Dst: RC2_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_ecb.c:35,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_ecb.c:37,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_ecb.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - in
    - out
    - ks
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - RC2_KEY*
    - int
    constantsTouched: []
    func_position:
      end: 41
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 41
    functionName: RC2_ecb_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_ecb.c
    functionUses: 0
    functionsReached:
    - l2c
    - RC2_encrypt
    - c2l
    - RC2_decrypt
    linkageType: ''
    returnType: void
    signature: "RC2_ecb_encrypt(const unsigned char *in, unsigned char *out, RC2_KEY
      *ks,\n                     int encrypt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/tab.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 93
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/tab.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2ofb64.c:32,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2ofb64.c:33,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2ofb64.c:37,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2ofb64.c:38,1
    - Dst: RC2_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2ofb64.c:41,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2ofb64.c:44,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2ofb64.c:46,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2ofb64.c:56,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2ofb64.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 6
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - RC2_KEY*
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 61
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 61
    functionName: RC2_ofb64_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2ofb64.c
    functionUses: 0
    functionsReached:
    - RC2_encrypt
    - c2l
    - l2c
    linkageType: ''
    returnType: void
    signature: "RC2_ofb64_encrypt(const unsigned char *in, unsigned char *out,\n                       long
      length, RC2_KEY *schedule, unsigned char *ivec,\n                       int
      *num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - key
    - len
    - data
    - bits
    argTypes:
    - RC2_KEY*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 94
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 94
    functionName: RC2_set_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_skey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: RC2_set_key(RC2_KEY *key, int len, const unsigned char *data, int bits)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2cfb64.c:33,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2cfb64.c:35,1
    - Dst: RC2_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2cfb64.c:37,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2cfb64.c:40,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2cfb64.c:42,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2cfb64.c:53,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2cfb64.c:55,1
    - Dst: RC2_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2cfb64.c:57,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2cfb64.c:60,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2cfb64.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 7
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - RC2_KEY*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 74
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 74
    functionName: RC2_cfb64_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2cfb64.c
    functionUses: 0
    functionsReached:
    - RC2_encrypt
    - c2l
    - l2c
    linkageType: ''
    returnType: void
    signature: "RC2_cfb64_encrypt(const unsigned char *in, unsigned char *out,\n                       long
      length, RC2_KEY *schedule, unsigned char *ivec,\n                       int
      *num, int encrypt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BLOCK_CIPHER_ecb_loop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:68,1
    - Dst: DES_ecb3_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:69,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:71,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:71,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:72,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: des_ede_ecb_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - BLOCK_CIPHER_ecb_loop
    - data
    - DES_ecb3_encrypt
    - EVP_CIPHER_CTX_encrypting
    linkageType: ''
    returnType: int
    signature: "des_ede_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                              const
      unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DES_ede3_ofb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:81,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:82,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:82,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:83,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:84,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:86,1
    - Dst: DES_ede3_ofb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:93,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:94,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:94,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:95,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:96,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 101
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 101
    functionName: des_ede_ofb_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - DES_ede3_ofb64_encrypt
    - data
    - EVP_CIPHER_CTX_set_num
    linkageType: ''
    returnType: int
    signature: "des_ede_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                              const
      unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:106,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:110,1
    - Dst: DES_ede3_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:115,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:117,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:118,1
    - Dst: DES_ede3_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:124,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:126,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 129
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 129
    functionName: des_ede_cbc_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - DES_ede3_cbc_encrypt
    - data
    - EVP_CIPHER_CTX_encrypting
    linkageType: ''
    returnType: int
    signature: "des_ede_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                              const
      unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DES_ede3_cfb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:136,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:137,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:137,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:138,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:139,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:140,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:141,1
    - Dst: DES_ede3_cfb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:148,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:149,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:149,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:150,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:151,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:152,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 156
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 156
    functionName: des_ede_cfb64_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - data
    - DES_ede3_cfb64_encrypt
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_set_num
    linkageType: ''
    returnType: int
    signature: "des_ede_cfb64_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                                const
      unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_test_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:168,1
    - Dst: DES_ede3_cfb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:172,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:173,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:173,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:174,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:175,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 182
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 182
    functionName: des_ede3_cfb1_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_test_flags
    - data
    - EVP_CIPHER_CTX_encrypting
    - DES_ede3_cfb_encrypt
    linkageType: ''
    returnType: int
    signature: "des_ede3_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                                const
      unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DES_ede3_cfb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:188,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:189,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:189,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:190,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:191,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:192,1
    - Dst: DES_ede3_cfb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:198,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:199,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:199,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:200,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:201,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 204
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 204
    functionName: des_ede3_cfb8_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - DES_ede3_cfb_encrypt
    - data
    - EVP_CIPHER_CTX_encrypting
    linkageType: ''
    returnType: int
    signature: "des_ede3_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                                const
      unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:229,1
    - Dst: des_t4_key_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:237,1
    - Dst: des_t4_key_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:238,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:239,1
    - Dst: DES_set_key_unchecked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:246,1
    - Dst: DES_set_key_unchecked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:247,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 250
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 250
    functionName: des_ede_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - des_t4_key_expand
    - memcpy
    - data
    - DES_set_key_unchecked
    linkageType: ''
    returnType: int
    signature: "des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                           const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:256,1
    - Dst: des_t4_key_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:264,1
    - Dst: des_t4_key_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:265,1
    - Dst: des_t4_key_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:266,1
    - Dst: DES_set_key_unchecked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:273,1
    - Dst: DES_set_key_unchecked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:274,1
    - Dst: DES_set_key_unchecked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 277
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 277
    functionName: des_ede3_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - des_t4_key_expand
    - data
    - DES_set_key_unchecked
    linkageType: ''
    returnType: int
    signature: "des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                            const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:286,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:286,1
    - Dst: DES_set_odd_parity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:288,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:289,1
    - Dst: DES_set_odd_parity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:290,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:291,1
    - Dst: DES_set_odd_parity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 298
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 298
    functionName: des3_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - EVP_CIPHER_CTX_key_length
    - DES_set_odd_parity
    linkageType: ''
    returnType: int
    signature: des3_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: EVP_des_ede
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_des_ede(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 308
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 308
    functionName: EVP_des_ede3
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_des_ede3(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:325,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:325,1
    - Dst: des_ede_cbc_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:327,1
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:334,1
    - Dst: des_ede_cbc_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:337,1
    - Dst: des_ede_cbc_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:339,1
    - Dst: BUF_reverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:341,1
    - Dst: BUF_reverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:342,1
    - Dst: BUF_reverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:343,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:343,1
    - Dst: des_ede_cbc_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:345,1
    - Dst: des_ede_cbc_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:346,1
    - Dst: SHA1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:348,1
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:350,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:352,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:353,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:354,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:355,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:355,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:357,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 360
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 360
    functionName: des_ede3_unwrap
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - memmove
    - EVP_CIPHER_CTX_iv_noconst
    - CRYPTO_memcmp
    - des_ede_cbc_cipher
    - memcpy
    - BUF_reverse
    - SHA1
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "des_ede3_unwrap(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:369,1
    - Dst: SHA1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:371,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:372,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:373,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:375,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:375,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:377,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:377,1
    - Dst: des_ede_cbc_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:379,1
    - Dst: BUF_reverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:380,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:381,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:381,1
    - Dst: des_ede_cbc_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 384
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 384
    functionName: des_ede3_wrap
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - memmove
    - EVP_CIPHER_CTX_iv_noconst
    - des_ede_cbc_cipher
    - memcpy
    - BUF_reverse
    - SHA1
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "des_ede3_wrap(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                         const
      unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_partially_overlapping
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:397,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:398,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:402,1
    - Dst: des_ede3_wrap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:403,1
    - Dst: des_ede3_unwrap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c:405,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 406
      start: 386
    functionDepth: 3
    functionLinenumber: 386
    functionLinenumberEnd: 406
    functionName: des_ede3_wrap_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - des_ede3_unwrap
    - des_ede3_wrap
    - is_partially_overlapping
    - EVPerr
    - EVP_CIPHER_CTX_encrypting
    linkageType: ''
    returnType: int
    signature: "des_ede3_wrap_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                                const
      unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: EVP_des_ede3_wrap
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_des_ede3_wrap(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:23,1
    - Dst: EVP_PKEY_get_default_digest_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:31,1
    - Dst: EVP_get_digestbynid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:32,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:36,1
    - Dst: EVP_MD_CTX*::pctx::pmeth::verifyctx_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:43,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:46,1
    - Dst: EVP_MD_CTX*::pctx::pmeth::signctx_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:50,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:53,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:56,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:62,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 6
    argNames:
    - ctx
    - pctx
    - type
    - e
    - pkey
    - ver
    argTypes:
    - EVP_MD_CTX*
    - EVP_PKEY_CTX**
    - EVP_MD*
    - ENGINE*
    - EVP_PKEY*
    - int
    constantsTouched: []
    func_position:
      end: 65
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 65
    functionName: do_sigver_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX*::pctx::pmeth::signctx_init
    - EVP_PKEY_CTX_new
    - EVP_PKEY_CTX_set_signature_md
    - EVPerr
    - EVP_MD_CTX*::pctx::pmeth::verifyctx_init
    - EVP_PKEY_get_default_digest_nid
    - EVP_get_digestbynid
    - EVP_PKEY_verify_init
    - EVP_PKEY_sign_init
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: "do_sigver_init(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,\n                          const
      EVP_MD *type, ENGINE *e, EVP_PKEY *pkey,\n                          int ver)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_sigver_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - pctx
    - type
    - e
    - pkey
    argTypes:
    - EVP_MD_CTX*
    - EVP_PKEY_CTX**
    - EVP_MD*
    - ENGINE*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: EVP_DigestSignInit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c
    functionUses: 0
    functionsReached:
    - do_sigver_init
    linkageType: ''
    returnType: int
    signature: "EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,\n                       const
      EVP_MD *type, ENGINE *e, EVP_PKEY *pkey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_sigver_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - pctx
    - type
    - e
    - pkey
    argTypes:
    - EVP_MD_CTX*
    - EVP_PKEY_CTX**
    - EVP_MD*
    - ENGINE*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: EVP_DigestVerifyInit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c
    functionUses: 0
    functionsReached:
    - do_sigver_init
    linkageType: ''
    returnType: int
    signature: "EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,\n                         const
      EVP_MD *type, ENGINE *e, EVP_PKEY *pkey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX*::pmeth::signctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:86,1
    - Dst: EVP_PKEY_CTX*::pmeth::signctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:88,1
    - Dst: EVP_PKEY_CTX_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:90,1
    - Dst: EVP_PKEY_CTX*::pmeth::signctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:93,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:94,1
    - Dst: EVP_MD_CTX*::pctx::pmeth::signctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:107,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:109,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:111,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:112,1
    - Dst: EVP_MD_CTX*::pctx::pmeth::signctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:115,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:118,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:119,1
    - Dst: EVP_PKEY_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:123,1
    - Dst: EVP_PKEY_CTX*::pmeth::signctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:127,1
    - Dst: EVP_PKEY_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:131,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 3
    argNames:
    - ctx
    - sigret
    - siglen
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t*
    constantsTouched: []
    func_position:
      end: 136
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 136
    functionName: EVP_DigestSignFinal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::signctx
    - EVP_MD_CTX_copy_ex
    - EVP_DigestFinal_ex
    - EVP_MD_CTX*::pctx::pmeth::signctx
    - EVP_MD_CTX_new
    - EVP_PKEY_CTX_dup
    - EVP_MD_CTX_free
    - EVP_PKEY_sign
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: "EVP_DigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sigret,\n                        size_t
      *siglen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX*::pctx::pmeth::verifyctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:152,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:154,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:156,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:157,1
    - Dst: EVP_MD_CTX*::pctx::pmeth::verifyctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:160,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:163,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:164,1
    - Dst: EVP_PKEY_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c:168,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - sig
    - siglen
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 169
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 169
    functionName: EVP_DigestVerifyFinal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_copy_ex
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - EVP_MD_CTX*::pctx::pmeth::verifyctx
    - EVP_PKEY_verify
    linkageType: ''
    returnType: int
    signature: "EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig,\n
      \                         size_t siglen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: PKCS5_PBE_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: PKCS5_PBE_add(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:41,1
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:45,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:45,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:47,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:54,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:61,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:63,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:65,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:69,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:71,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:73,1
    - Dst: PBEPARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:75,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:76,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:78,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:82,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:84,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:86,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:89,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:89,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:90,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:90,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:91,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:91,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:92,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:92,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:93,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:94,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:96,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:97,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:98,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c:101,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 67
    argCount: 7
    argNames:
    - cctx
    - pass
    - passlen
    - param
    - cipher
    - md
    - en_de
    argTypes:
    - EVP_CIPHER_CTX*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER*
    - EVP_MD*
    - int
    constantsTouched: []
    func_position:
      end: 103
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 103
    functionName: PKCS5_PBE_keyivgen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_key_length
    - EVP_DigestFinal_ex
    - OPENSSL_assert
    - EVP_MD_size
    - EVP_DigestUpdate
    - EVPerr
    - ASN1_ITEM_rptr
    - strlen
    - ASN1_TYPE_unpack_sequence
    - EVP_MD_CTX_new
    - PBEPARAM_free
    - ASN1_INTEGER_get
    - memcpy
    - EVP_CipherInit_ex
    - EVP_MD_CTX_free
    - OPENSSL_cleanse
    - EVP_CIPHER_iv_length
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: "PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *cctx, const char *pass, int passlen,\n
      \                      ASN1_TYPE *param, const EVP_CIPHER *cipher,\n                       const
      EVP_MD *md, int en_de)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_open.c:29,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_open.c:30,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_open.c:37,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_open.c:38,1
    - Dst: EVP_PKEY_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_open.c:42,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_open.c:43,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_open.c:46,1
    - Dst: EVP_PKEY_decrypt_old
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_open.c:50,1
    - Dst: EVP_CIPHER_CTX_set_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_open.c:51,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_open.c:55,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_open.c:60,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 6
    argNames:
    - ctx
    - type
    - ek
    - ekl
    - iv
    - priv
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - unsigned char*
    - int
    - unsigned char*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 62
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 62
    functionName: EVP_OpenInit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_open.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_reset
    - EVP_PKEY_id
    - EVPerr
    - EVP_DecryptInit_ex
    - EVP_PKEY_decrypt_old
    - OPENSSL_clear_free
    - OPENSSL_malloc
    - EVP_PKEY_size
    - EVP_CIPHER_CTX_set_key_length
    linkageType: ''
    returnType: int
    signature: "EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type,\n                 const
      unsigned char *ek, int ekl, const unsigned char *iv,\n                 EVP_PKEY
      *priv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_open.c:68,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_open.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: EVP_OpenFinal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_open.c
    functionUses: 0
    functionsReached:
    - EVP_DecryptFinal_ex
    - EVP_DecryptInit_ex
    linkageType: ''
    returnType: int
    signature: EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_test_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_sign.c:27,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_sign.c:28,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_sign.c:32,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_sign.c:34,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_sign.c:37,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_sign.c:39,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_sign.c:40,1
    - Dst: EVP_PKEY_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_sign.c:45,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_sign.c:47,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_sign.c:50,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_sign.c:52,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_sign.c:52,1
    - Dst: EVP_PKEY_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_sign.c:54,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_sign.c:59,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 4
    argNames:
    - ctx
    - sigret
    - siglen
    - pkey
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - unsigned int*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 61
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 61
    functionName: EVP_SignFinal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_sign.c
    functionUses: 1
    functionsReached:
    - EVP_MD_CTX_copy_ex
    - EVP_DigestFinal_ex
    - EVP_PKEY_CTX_new
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_set_signature_md
    - EVPerr
    - EVP_MD_CTX_md
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - EVP_PKEY_sign
    - EVP_MD_CTX_test_flags
    - EVP_PKEY_sign_init
    - EVP_PKEY_size
    linkageType: ''
    returnType: int
    signature: "EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret,\n                  unsigned
      int *siglen, EVP_PKEY *pkey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:37,1
    - Dst: CHACHA_U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:42,1
    - Dst: CHACHA_U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:47,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - user_key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char[]
    - unsigned char[]
    - int
    constantsTouched: []
    func_position:
      end: 53
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 53
    functionName: chacha_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached:
    - CHACHA_U8TOU32
    - data
    linkageType: ''
    returnType: int
    signature: "chacha_init_key(EVP_CIPHER_CTX *ctx,\n                           const
      unsigned char user_key[CHACHA_KEY_SIZE],\n                           const unsigned
      char iv[CHACHA_CTR_SIZE], int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:58,1
    - Dst: ChaCha20_ctr32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:104,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:114,1
    - Dst: ChaCha20_ctr32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:115,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 4
    argNames:
    - ctx
    - out
    - inp
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 123
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 123
    functionName: chacha_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached:
    - memset
    - data
    - ChaCha20_ctr32
    linkageType: ''
    returnType: int
    signature: "chacha_cipher(EVP_CIPHER_CTX * ctx, unsigned char *out,\n                         const
      unsigned char *inp, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: EVP_chacha20
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_chacha20(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aead_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:166,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:182,1
    - Dst: chacha_init_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:184,1
    - Dst: chacha_init_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - ctx
    - inkey
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 194
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 194
    functionName: chacha20_poly1305_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached:
    - memcpy
    - chacha_init_key
    - aead_data
    linkageType: ''
    returnType: int
    signature: "chacha20_poly1305_init_key(EVP_CIPHER_CTX *ctx,\n                                      const
      unsigned char *inkey,\n                                      const unsigned
      char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aead_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:199,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:205,1
    - Dst: ChaCha20_ctr32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:206,1
    - Dst: Poly1305_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:208,1
    - Dst: POLY1305_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:208,1
    - Dst: Poly1305_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:217,1
    - Dst: POLY1305_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:217,1
    - Dst: Poly1305_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:224,1
    - Dst: POLY1305_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:224,1
    - Dst: chacha_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:236,1
    - Dst: Poly1305_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:237,1
    - Dst: POLY1305_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:237,1
    - Dst: Poly1305_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:242,1
    - Dst: POLY1305_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:242,1
    - Dst: chacha_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:243,1
    - Dst: Poly1305_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:260,1
    - Dst: POLY1305_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:260,1
    - Dst: Poly1305_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:266,1
    - Dst: POLY1305_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:266,1
    - Dst: Poly1305_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:270,1
    - Dst: POLY1305_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:270,1
    - Dst: Poly1305_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:291,1
    - Dst: POLY1305_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:291,1
    - Dst: Poly1305_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:293,1
    - Dst: POLY1305_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:293,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:299,1
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:301,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:302,1
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:308,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 90
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 313
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 313
    functionName: chacha20_poly1305_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached:
    - chacha_cipher
    - Poly1305_Update
    - aead_data
    - CRYPTO_memcmp
    - POLY1305_ctx
    - memset
    - Poly1305_Final
    - memcpy
    - ChaCha20_ctr32
    - Poly1305_Init
    linkageType: ''
    returnType: int
    signature: "chacha20_poly1305_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                                   const unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aead_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:317,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:319,1
    - Dst: Poly1305_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 321
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 321
    functionName: chacha20_poly1305_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    - Poly1305_ctx_size
    - aead_data
    linkageType: ''
    returnType: int
    signature: chacha20_poly1305_cleanup(EVP_CIPHER_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aead_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:326,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:332,1
    - Dst: Poly1305_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:332,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:334,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:351,1
    - Dst: Poly1305_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:351,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:353,1
    - Dst: CHACHA_U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:369,1
    - Dst: CHACHA_U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:371,1
    - Dst: CHACHA_U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:373,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:380,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:388,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:404,1
    - Dst: CHACHA_U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:415,1
    - Dst: CHACHA_U8TOU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:416,1
    - Dst: chacha20_poly1305_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c:418,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 77
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 429
      start: 323
    functionDepth: 3
    functionLinenumber: 323
    functionLinenumberEnd: 429
    functionName: chacha20_poly1305_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached:
    - OPENSSL_memdup
    - aead_data
    - CHACHA_U8TOU32
    - Poly1305_ctx_size
    - EVPerr
    - memcpy
    - OPENSSL_zalloc
    - chacha20_poly1305_cipher
    linkageType: ''
    returnType: int
    signature: "chacha20_poly1305_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,\n                                  void
      *ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 452
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 452
    functionName: EVP_chacha20_poly1305
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_chacha20_poly1305(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_bf_cfb64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_old.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: EVP_bf_cfb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_bf_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_bf_cfb(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_des_cfb64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_old.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: EVP_des_cfb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_des_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_des_cfb(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_des_ede3_cfb64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_old.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: EVP_des_ede3_cfb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_des_ede3_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_des_ede3_cfb(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_des_ede_cfb64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_old.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: EVP_des_ede_cfb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_des_ede_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_des_ede_cfb(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_idea_cfb64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_old.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: EVP_idea_cfb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_idea_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_idea_cfb(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_rc2_cfb64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_old.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: EVP_rc2_cfb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_rc2_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_rc2_cfb(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_cast5_cfb64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_old.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: EVP_cast5_cfb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_cast5_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_cast5_cfb(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_rc5_32_12_16_cfb64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_old.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: EVP_rc5_32_12_16_cfb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_rc5_32_12_16_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_rc5_32_12_16_cfb(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aes_128_cfb128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_old.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: EVP_aes_128_cfb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cfb128
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_aes_128_cfb(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aes_192_cfb128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_old.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: EVP_aes_192_cfb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_aes_192_cfb128
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_aes_192_cfb(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aes_256_cfb128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_old.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: EVP_aes_256_cfb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_aes_256_cfb128
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_aes_256_cfb(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX*::cipher::cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:25,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:29,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:31,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:33,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:35,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 37
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 37
    functionName: EVP_CIPHER_CTX_reset
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 1
    functionsReached:
    - memset
    - ENGINE_finish
    - OPENSSL_cleanse
    - OPENSSL_free
    - EVP_CIPHER_CTX*::cipher::cleanup
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: EVP_CIPHER_CTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 7
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EVP_CIPHER_CTX
    signature: '*EVP_CIPHER_CTX_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:46,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: EVP_CIPHER_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 7
    functionsReached:
    - OPENSSL_free
    - EVP_CIPHER_CTX_reset
    linkageType: ''
    returnType: void
    signature: EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:53,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ctx
    - cipher
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: EVP_CipherInit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_reset
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: int
    signature: "EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,\n                   const
      unsigned char *key, const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:87,1
    - Dst: ENGINE_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:94,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:95,1
    - Dst: ENGINE_get_cipher_engine
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:100,1
    - Dst: ENGINE_get_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:103,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:110,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:126,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:129,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:139,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:141,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:146,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:153,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:158,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:159,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:163,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:163,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:164,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:178,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:178,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:181,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:181,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:182,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:182,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:189,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:189,1
    - Dst: EVP_CIPHER_CTX*::cipher::init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:198,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 96
    argCount: 6
    argNames:
    - ctx
    - cipher
    - impl
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - ENGINE*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 205
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 205
    functionName: EVP_CipherInit_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 4
    functionsReached:
    - EVP_CIPHER_CTX_cipher
    - EVP_CIPHER_CTX_mode
    - EVP_CIPHER_CTX_reset
    - EVP_CIPHER_CTX*::cipher::init
    - ENGINE_get_cipher_engine
    - OPENSSL_assert
    - EVP_CIPHER_flags
    - ENGINE_init
    - EVPerr
    - memcpy
    - ENGINE_get_cipher
    - OPENSSL_zalloc
    - EVP_CIPHER_CTX_iv_length
    - EVP_CIPHER_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: "EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,\n
      \                     ENGINE *impl, const unsigned char *key,\n                      const
      unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:211,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - out
    - outl
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 214
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 214
    functionName: EVP_CipherUpdate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 2
    functionsReached:
    - EVP_EncryptUpdate
    - EVP_DecryptUpdate
    linkageType: ''
    returnType: int
    signature: "EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl,\n
      \                    const unsigned char *in, int inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:219,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: EVP_CipherFinal_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 2
    functionsReached:
    - EVP_EncryptFinal_ex
    - EVP_DecryptFinal_ex
    linkageType: ''
    returnType: int
    signature: EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:227,1
    - Dst: EVP_DecryptFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 230
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 230
    functionName: EVP_CipherFinal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_DecryptFinal
    - EVP_EncryptFinal
    linkageType: ''
    returnType: int
    signature: EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CipherInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - cipher
    - key
    - iv
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - unsigned char*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: EVP_EncryptInit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CipherInit
    linkageType: ''
    returnType: int
    signature: "EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,\n                    const
      unsigned char *key, const unsigned char *iv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - cipher
    - impl
    - key
    - iv
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - ENGINE*
    - unsigned char*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 243
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 243
    functionName: EVP_EncryptInit_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 4
    functionsReached:
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: int
    signature: "EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,\n
      \                      ENGINE *impl, const unsigned char *key,\n                       const
      unsigned char *iv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CipherInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - cipher
    - key
    - iv
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - unsigned char*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: EVP_DecryptInit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CipherInit
    linkageType: ''
    returnType: int
    signature: "EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,\n                    const
      unsigned char *key, const unsigned char *iv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - cipher
    - impl
    - key
    - iv
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - ENGINE*
    - unsigned char*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: EVP_DecryptInit_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 4
    functionsReached:
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: int
    signature: "EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,\n
      \                      ENGINE *impl, const unsigned char *key,\n                       const
      unsigned char *iv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr1
    - ptr2
    - len
    argTypes:
    - void*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 293
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 293
    functionName: is_partially_overlapping
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: is_partially_overlapping(const void *ptr1, const void *ptr2, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_test_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:300,1
    - Dst: is_partially_overlapping
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:307,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:308,1
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:312,1
    - Dst: is_partially_overlapping
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:324,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:325,1
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:330,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:339,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:342,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:348,1
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:351,1
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:361,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:367,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 63
    argCount: 5
    argNames:
    - ctx
    - out
    - outl
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 370
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 370
    functionName: EVP_EncryptUpdate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 2
    functionsReached:
    - OPENSSL_assert
    - EVP_CIPHER_CTX_test_flags
    - is_partially_overlapping
    - EVPerr
    - memcpy
    - EVP_CIPHER_CTX*::cipher::do_cipher
    linkageType: ''
    returnType: int
    signature: "EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl,\n
      \                     const unsigned char *in, int inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 377
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 377
    functionName: EVP_EncryptFinal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 1
    functionsReached:
    - EVP_EncryptFinal_ex
    linkageType: ''
    returnType: int
    signature: EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:385,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:394,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:402,1
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:413,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 419
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 419
    functionName: EVP_EncryptFinal_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 3
    functionsReached:
    - EVPerr
    - EVP_CIPHER_CTX*::cipher::do_cipher
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_test_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:429,1
    - Dst: is_partially_overlapping
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:433,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:434,1
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:438,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:453,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:455,1
    - Dst: is_partially_overlapping
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:460,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:461,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:464,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:470,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:480,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 5
    argNames:
    - ctx
    - out
    - outl
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 488
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 488
    functionName: EVP_DecryptUpdate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 4
    functionsReached:
    - OPENSSL_assert
    - EVP_CIPHER_CTX_test_flags
    - is_partially_overlapping
    - EVPerr
    - EVP_EncryptUpdate
    - memcpy
    - EVP_CIPHER_CTX*::cipher::do_cipher
    linkageType: ''
    returnType: int
    signature: "EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl,\n
      \                     const unsigned char *in, int inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 495
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 495
    functionName: EVP_DecryptFinal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 1
    functionsReached:
    - EVP_DecryptFinal_ex
    linkageType: ''
    returnType: int
    signature: EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:504,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:515,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:524,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:527,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:535,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:540,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 551
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 551
    functionName: EVP_DecryptFinal_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 6
    functionsReached:
    - OPENSSL_assert
    - EVP_CIPHER_CTX*::cipher::do_cipher
    - EVPerr
    linkageType: ''
    returnType: int
    signature: EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:556,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:563,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - c
    - keylen
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 565
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 565
    functionName: EVP_CIPHER_CTX_set_key_length
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 2
    functionsReached:
    - EVP_CIPHER_CTX_ctrl
    - EVPerr
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *c, int keylen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - pad
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 574
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 574
    functionName: EVP_CIPHER_CTX_set_padding
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *ctx, int pad)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:580,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:585,1
    - Dst: EVP_CIPHER_CTX*::cipher::ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:589,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:591,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 596
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 596
    functionName: EVP_CIPHER_CTX_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 2
    functionsReached:
    - EVP_CIPHER_CTX*::cipher::ctrl
    - EVPerr
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:601,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 605
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 605
    functionName: EVP_CIPHER_CTX_rand_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - EVP_CIPHER_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:610,1
    - Dst: ENGINE_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:615,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:616,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:621,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:622,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:625,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:628,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:631,1
    - Dst: EVP_CIPHER_CTX*::cipher::ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:635,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c:637,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 641
      start: 607
    functionDepth: 2
    functionLinenumber: 607
    functionLinenumberEnd: 641
    functionName: EVP_CIPHER_CTX_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_CTX_reset
    - ENGINE_init
    - EVPerr
    - memcpy
    - OPENSSL_malloc
    - EVP_CIPHER_CTX*::cipher::ctrl
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: BIO_f_md
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_f_md(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:55,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:59,1
    - Dst: BIO_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 63
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 63
    functionName: md_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_new
    - BIO_set_data
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: md_new(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:69,1
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:69,1
    - Dst: BIO_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:70,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: md_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c
    functionUses: 1
    functionsReached:
    - BIO_get_data
    - EVP_MD_CTX_free
    - BIO_set_data
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: md_free(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:85,1
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:86,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:91,1
    - Dst: BIO_get_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:92,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:94,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:99,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 102
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 102
    functionName: md_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - EVP_DigestUpdate
    - BIO_get_data
    - BIO_get_init
    - BIO_next
    - BIO_copy_next_retry
    - BIO_read
    linkageType: ''
    returnType: int
    signature: md_read(BIO *b, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:113,1
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:114,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:116,1
    - Dst: BIO_get_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:118,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:120,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:122,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:128,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:129,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 132
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 132
    functionName: md_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - EVP_DigestUpdate
    - BIO_get_data
    - BIO_get_init
    - BIO_next
    - BIO_copy_next_retry
    - BIO_write
    linkageType: ''
    returnType: int
    signature: md_write(BIO *b, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:143,1
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:144,1
    - Dst: BIO_get_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:148,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:149,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:153,1
    - Dst: BIO_get_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:156,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:165,1
    - Dst: BIO_get_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:168,1
    - Dst: BIO_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:169,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:174,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:175,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:176,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:181,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:183,1
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:187,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:188,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:190,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:193,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 197
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 197
    functionName: md_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - EVP_MD_CTX_copy_ex
    - BIO_clear_retry_flags
    - BIO_set_data
    - BIO_get_data
    - BIO_get_init
    - BIO_next
    - BIO_copy_next_retry
    - BIO_ctrl
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: long
    signature: md_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:204,1
    - Dst: BIO_callback_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - bio_info_cb*
    constantsTouched: []
    func_position:
      end: 215
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 215
    functionName: md_callback_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    - BIO_next
    linkageType: ''
    returnType: long
    signature: md_callback_ctrl(BIO *b, int cmd, bio_info_cb *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:222,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 231
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 231
    functionName: md_gets
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - EVP_DigestFinal_ex
    linkageType: ''
    returnType: int
    signature: md_gets(BIO *bp, char *buf, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY_METHOD**
    - EVP_PKEY_METHOD**
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: pmeth_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "pmeth_cmp(const EVP_PKEY_METHOD *const *a,\n                     const
      EVP_PKEY_METHOD *const *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PKEY_METHOD_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:70,1
    - Dst: sk_EVP_PKEY_METHOD_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:72,1
    - Dst: OBJ_bsearch_pmeth
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 80
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 80
    functionName: EVP_PKEY_meth_find
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - sk_EVP_PKEY_METHOD_value
    - sk_EVP_PKEY_METHOD_find
    - OBJ_bsearch_pmeth
    linkageType: ''
    returnType: EVP_PKEY_METHOD
    signature: '*EVP_PKEY_meth_find(int type)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:96,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:97,1
    - Dst: ENGINE_get_pkey_meth_engine
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:101,1
    - Dst: ENGINE_get_pkey_meth
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:109,1
    - Dst: EVP_PKEY_meth_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:112,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:115,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:119,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:122,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:124,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:132,1
    - Dst: EVP_PKEY_METHOD*::init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:135,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:137,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 3
    argNames:
    - pkey
    - e
    - id
    argTypes:
    - EVP_PKEY*
    - ENGINE*
    - int
    constantsTouched: []
    func_position:
      end: 143
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 143
    functionName: int_ctx_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_pkey_meth_engine
    - ENGINE_init
    - ENGINE_get_pkey_meth
    - EVPerr
    - EVP_PKEY_up_ref
    - ENGINE_finish
    - EVP_PKEY_meth_find
    - OPENSSL_zalloc
    - EVP_PKEY_METHOD*::init
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: '*int_ctx_new(EVP_PKEY *pkey, ENGINE *e, int id)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - id
    - flags
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 156
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 156
    functionName: EVP_PKEY_meth_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EVP_PKEY_METHOD
    signature: '*EVP_PKEY_meth_new(int id, int flags)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ppkey_id
    - pflags
    - meth
    argTypes:
    - int*
    - int*
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: EVP_PKEY_meth_get0_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags,\n                             const
      EVP_PKEY_METHOD *meth)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_METHOD*
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 206
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 206
    functionName: EVP_PKEY_meth_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst, const EVP_PKEY_METHOD *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: EVP_PKEY_meth_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: EVP_PKEY_meth_free(EVP_PKEY_METHOD *pmeth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: int_ctx_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - e
    argTypes:
    - EVP_PKEY*
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: EVP_PKEY_CTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 2
    functionsReached:
    - int_ctx_new
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: '*EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: int_ctx_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id
    - e
    argTypes:
    - int
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: EVP_PKEY_CTX_new_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - int_ctx_new
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: '*EVP_PKEY_CTX_new_id(int id, ENGINE *e)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:231,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:232,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:236,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:246,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:251,1
    - Dst: EVP_PKEY_CTX*::pmeth::copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:259,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:263,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - pctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 266
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 266
    functionName: EVP_PKEY_CTX_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 1
    functionsReached:
    - ENGINE_init
    - EVPerr
    - EVP_PKEY_up_ref
    - EVP_PKEY_CTX*::pmeth::copy
    - EVP_PKEY_CTX_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: '*EVP_PKEY_CTX_dup(EVP_PKEY_CTX *pctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PKEY_METHOD_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:271,1
    - Dst: sk_EVP_PKEY_METHOD_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:275,1
    - Dst: sk_EVP_PKEY_METHOD_sort
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 279
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 279
    functionName: EVP_PKEY_meth_add0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - sk_EVP_PKEY_METHOD_new
    - sk_EVP_PKEY_METHOD_sort
    - sk_EVP_PKEY_METHOD_push
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_meth_add0(const EVP_PKEY_METHOD *pmeth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX*::pmeth::cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:286,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:287,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:288,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:290,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 293
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 293
    functionName: EVP_PKEY_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 4
    functionsReached:
    - OPENSSL_free
    - ENGINE_finish
    - EVP_PKEY_CTX*::pmeth::cleanup
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:300,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:307,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:312,1
    - Dst: EVP_PKEY_CTX*::pmeth::ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:316,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:319,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 6
    argNames:
    - ctx
    - keytype
    - optype
    - cmd
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 323
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 323
    functionName: EVP_PKEY_CTX_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::ctrl
    - EVPerr
    linkageType: ''
    returnType: int
    signature: "EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype,\n                      int
      cmd, int p1, void *p2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:329,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:332,1
    - Dst: EVP_get_digestbyname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:334,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:335,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:338,1
    - Dst: EVP_PKEY_CTX*::pmeth::ctrl_str
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:340,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - name
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 341
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 341
    functionName: EVP_PKEY_CTX_ctrl_str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - strcmp
    - EVP_PKEY_CTX_set_signature_md
    - EVPerr
    - EVP_get_digestbyname
    - EVP_PKEY_CTX*::pmeth::ctrl_str
    linkageType: ''
    returnType: int
    signature: "EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx,\n                          const
      char *name, const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:349,1
    - Dst: EVP_PKEY_CTX*::pmeth::ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - cmd
    - str
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 353
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 353
    functionName: EVP_PKEY_CTX_str2ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 1
    functionsReached:
    - strlen
    - EVP_PKEY_CTX*::pmeth::ctrl
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_CTX_str2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:361,1
    - Dst: EVP_PKEY_CTX*::pmeth::ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:365,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - cmd
    - hex
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 368
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 368
    functionName: EVP_PKEY_CTX_hex2ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - EVP_PKEY_CTX*::pmeth::ctrl
    - OPENSSL_hexstr2buf
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_CTX_hex2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *hex)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: EVP_PKEY_CTX_get_operation
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_CTX_get_operation(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - dat
    - datlen
    argTypes:
    - EVP_PKEY_CTX*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 379
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 379
    functionName: EVP_PKEY_CTX_set0_keygen_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int datlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - EVP_PKEY_CTX*
    - void*
    constantsTouched: []
    func_position:
      end: 384
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 384
    functionName: EVP_PKEY_CTX_set_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 389
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 389
    functionName: EVP_PKEY_CTX_get_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*EVP_PKEY_CTX_get_data(EVP_PKEY_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 394
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 394
    functionName: EVP_PKEY_CTX_get0_pkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 399
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 399
    functionName: EVP_PKEY_CTX_get0_peerkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*EVP_PKEY_CTX_get0_peerkey(EVP_PKEY_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - EVP_PKEY_CTX*
    - void*
    constantsTouched: []
    func_position:
      end: 404
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 404
    functionName: EVP_PKEY_CTX_set_app_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 409
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 409
    functionName: EVP_PKEY_CTX_get_app_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 415
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 415
    functionName: EVP_PKEY_meth_set_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_set_init(EVP_PKEY_METHOD *pmeth,\n                            int
      (*init) (EVP_PKEY_CTX *ctx))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 422
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 422
    functionName: EVP_PKEY_meth_set_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_set_copy(EVP_PKEY_METHOD *pmeth,\n                            int
      (*copy) (EVP_PKEY_CTX *dst,\n                                         EVP_PKEY_CTX
      *src))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 428
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 428
    functionName: EVP_PKEY_meth_set_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_set_cleanup(EVP_PKEY_METHOD *pmeth,\n                               void
      (*cleanup) (EVP_PKEY_CTX *ctx))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 437
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 437
    functionName: EVP_PKEY_meth_set_paramgen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_set_paramgen(EVP_PKEY_METHOD *pmeth,\n                                int
      (*paramgen_init) (EVP_PKEY_CTX *ctx),\n                                int (*paramgen)
      (EVP_PKEY_CTX *ctx,\n                                                 EVP_PKEY
      *pkey))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 446
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 446
    functionName: EVP_PKEY_meth_set_keygen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_set_keygen(EVP_PKEY_METHOD *pmeth,\n                              int
      (*keygen_init) (EVP_PKEY_CTX *ctx),\n                              int (*keygen)
      (EVP_PKEY_CTX *ctx,\n                                             EVP_PKEY *pkey))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 457
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 457
    functionName: EVP_PKEY_meth_set_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_set_sign(EVP_PKEY_METHOD *pmeth,\n                            int
      (*sign_init) (EVP_PKEY_CTX *ctx),\n                            int (*sign) (EVP_PKEY_CTX
      *ctx,\n                                         unsigned char *sig, size_t *siglen,\n
      \                                        const unsigned char *tbs,\n                                         size_t
      tbslen))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 469
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 469
    functionName: EVP_PKEY_meth_set_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_set_verify(EVP_PKEY_METHOD *pmeth,\n                              int
      (*verify_init) (EVP_PKEY_CTX *ctx),\n                              int (*verify)
      (EVP_PKEY_CTX *ctx,\n                                             const unsigned
      char *sig,\n                                             size_t siglen,\n                                             const
      unsigned char *tbs,\n                                             size_t tbslen))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 485
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 485
    functionName: EVP_PKEY_meth_set_verify_recover
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_set_verify_recover(EVP_PKEY_METHOD *pmeth,\n                                      int
      (*verify_recover_init) (EVP_PKEY_CTX\n                                                                  *ctx),\n
      \                                     int (*verify_recover) (EVP_PKEY_CTX\n
      \                                                            *ctx,\n                                                             unsigned
      char\n                                                             *sig,\n                                                             size_t
      *siglen,\n                                                             const
      unsigned\n                                                             char
      *tbs,\n                                                             size_t tbslen))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 497
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 497
    functionName: EVP_PKEY_meth_set_signctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_set_signctx(EVP_PKEY_METHOD *pmeth,\n                               int
      (*signctx_init) (EVP_PKEY_CTX *ctx,\n                                                    EVP_MD_CTX
      *mctx),\n                               int (*signctx) (EVP_PKEY_CTX *ctx,\n
      \                                              unsigned char *sig,\n                                               size_t
      *siglen,\n                                               EVP_MD_CTX *mctx))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 509
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 509
    functionName: EVP_PKEY_meth_set_verifyctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_set_verifyctx(EVP_PKEY_METHOD *pmeth,\n                                 int
      (*verifyctx_init) (EVP_PKEY_CTX *ctx,\n                                                        EVP_MD_CTX
      *mctx),\n                                 int (*verifyctx) (EVP_PKEY_CTX *ctx,\n
      \                                                  const unsigned char *sig,\n
      \                                                  int siglen,\n                                                   EVP_MD_CTX
      *mctx))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 521
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 521
    functionName: EVP_PKEY_meth_set_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_set_encrypt(EVP_PKEY_METHOD *pmeth,\n                               int
      (*encrypt_init) (EVP_PKEY_CTX *ctx),\n                               int (*encryptfn)
      (EVP_PKEY_CTX *ctx,\n                                                 unsigned
      char *out,\n                                                 size_t *outlen,\n
      \                                                const unsigned char *in,\n
      \                                                size_t inlen))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 533
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 533
    functionName: EVP_PKEY_meth_set_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_set_decrypt(EVP_PKEY_METHOD *pmeth,\n                               int
      (*decrypt_init) (EVP_PKEY_CTX *ctx),\n                               int (*decrypt)
      (EVP_PKEY_CTX *ctx,\n                                               unsigned
      char *out,\n                                               size_t *outlen,\n
      \                                              const unsigned char *in,\n                                               size_t
      inlen))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 543
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 543
    functionName: EVP_PKEY_meth_set_derive
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_set_derive(EVP_PKEY_METHOD *pmeth,\n                              int
      (*derive_init) (EVP_PKEY_CTX *ctx),\n                              int (*derive)
      (EVP_PKEY_CTX *ctx,\n                                             unsigned char
      *key,\n                                             size_t *keylen))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 554
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 554
    functionName: EVP_PKEY_meth_set_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_set_ctrl(EVP_PKEY_METHOD *pmeth,\n                            int
      (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1,\n                                         void
      *p2),\n                            int (*ctrl_str) (EVP_PKEY_CTX *ctx,\n                                             const
      char *type,\n                                             const char *value))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 560
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 560
    functionName: EVP_PKEY_meth_get_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_get_init(EVP_PKEY_METHOD *pmeth,\n                            int
      (**pinit) (EVP_PKEY_CTX *ctx))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 567
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 567
    functionName: EVP_PKEY_meth_get_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_get_copy(EVP_PKEY_METHOD *pmeth,\n                            int
      (**pcopy) (EVP_PKEY_CTX *dst,\n                                           EVP_PKEY_CTX
      *src))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 573
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 573
    functionName: EVP_PKEY_meth_get_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_get_cleanup(EVP_PKEY_METHOD *pmeth,\n                               void
      (**pcleanup) (EVP_PKEY_CTX *ctx))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 584
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 584
    functionName: EVP_PKEY_meth_get_paramgen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_get_paramgen(EVP_PKEY_METHOD *pmeth,\n                                int
      (**pparamgen_init) (EVP_PKEY_CTX *ctx),\n                                int
      (**pparamgen) (EVP_PKEY_CTX *ctx,\n                                                   EVP_PKEY
      *pkey))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 595
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 595
    functionName: EVP_PKEY_meth_get_keygen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_get_keygen(EVP_PKEY_METHOD *pmeth,\n                              int
      (**pkeygen_init) (EVP_PKEY_CTX *ctx),\n                              int (**pkeygen)
      (EVP_PKEY_CTX *ctx,\n                                               EVP_PKEY
      *pkey))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 608
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 608
    functionName: EVP_PKEY_meth_get_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_get_sign(EVP_PKEY_METHOD *pmeth,\n                            int
      (**psign_init) (EVP_PKEY_CTX *ctx),\n                            int (**psign)
      (EVP_PKEY_CTX *ctx,\n                                           unsigned char
      *sig, size_t *siglen,\n                                           const unsigned
      char *tbs,\n                                           size_t tbslen))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 622
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 622
    functionName: EVP_PKEY_meth_get_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_get_verify(EVP_PKEY_METHOD *pmeth,\n                              int
      (**pverify_init) (EVP_PKEY_CTX *ctx),\n                              int (**pverify)
      (EVP_PKEY_CTX *ctx,\n                                               const unsigned
      char *sig,\n                                               size_t siglen,\n
      \                                              const unsigned char *tbs,\n                                               size_t
      tbslen))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 640
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 640
    functionName: EVP_PKEY_meth_get_verify_recover
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_get_verify_recover(EVP_PKEY_METHOD *pmeth,\n                                      int
      (**pverify_recover_init) (EVP_PKEY_CTX\n                                                                    *ctx),\n
      \                                     int (**pverify_recover) (EVP_PKEY_CTX\n
      \                                                              *ctx,\n                                                               unsigned
      char\n                                                               *sig,\n
      \                                                              size_t *siglen,\n
      \                                                              const unsigned\n
      \                                                              char *tbs,\n
      \                                                              size_t tbslen))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 654
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 654
    functionName: EVP_PKEY_meth_get_signctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_get_signctx(EVP_PKEY_METHOD *pmeth,\n                               int
      (**psignctx_init) (EVP_PKEY_CTX *ctx,\n                                                      EVP_MD_CTX
      *mctx),\n                               int (**psignctx) (EVP_PKEY_CTX *ctx,\n
      \                                                unsigned char *sig,\n                                                 size_t
      *siglen,\n                                                 EVP_MD_CTX *mctx))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 668
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 668
    functionName: EVP_PKEY_meth_get_verifyctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_get_verifyctx(EVP_PKEY_METHOD *pmeth,\n                                 int
      (**pverifyctx_init) (EVP_PKEY_CTX *ctx,\n                                                          EVP_MD_CTX
      *mctx),\n                                 int (**pverifyctx) (EVP_PKEY_CTX *ctx,\n
      \                                                    const unsigned char *sig,\n
      \                                                    int siglen,\n                                                     EVP_MD_CTX
      *mctx))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 682
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 682
    functionName: EVP_PKEY_meth_get_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_get_encrypt(EVP_PKEY_METHOD *pmeth,\n                               int
      (**pencrypt_init) (EVP_PKEY_CTX *ctx),\n                               int (**pencryptfn)
      (EVP_PKEY_CTX *ctx,\n                                                   unsigned
      char *out,\n                                                   size_t *outlen,\n
      \                                                  const unsigned char *in,\n
      \                                                  size_t inlen))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 696
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 696
    functionName: EVP_PKEY_meth_get_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_get_decrypt(EVP_PKEY_METHOD *pmeth,\n                               int
      (**pdecrypt_init) (EVP_PKEY_CTX *ctx),\n                               int (**pdecrypt)
      (EVP_PKEY_CTX *ctx,\n                                                 unsigned
      char *out,\n                                                 size_t *outlen,\n
      \                                                const unsigned char *in,\n
      \                                                size_t inlen))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 708
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 708
    functionName: EVP_PKEY_meth_get_derive
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_get_derive(EVP_PKEY_METHOD *pmeth,\n                              int
      (**pderive_init) (EVP_PKEY_CTX *ctx),\n                              int (**pderive)
      (EVP_PKEY_CTX *ctx,\n                                               unsigned
      char *key,\n                                               size_t *keylen))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    constantsTouched: []
    func_position:
      end: 721
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 721
    functionName: EVP_PKEY_meth_get_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_meth_get_ctrl(EVP_PKEY_METHOD *pmeth,\n                            int
      (**pctrl) (EVP_PKEY_CTX *ctx, int type, int p1,\n                                           void
      *p2),\n                            int (**pctrl_str) (EVP_PKEY_CTX *ctx,\n                                               const
      char *type,\n                                               const char *value))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:41,1
    - Dst: HMAC_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:45,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:53,1
    - Dst: HMAC_Init_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:54,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:55,1
    - Dst: HMAC_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:58,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:60,1
    - Dst: HMAC_CTX_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:76,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:77,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:78,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:81,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:82,1
    - Dst: HMAC_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:83,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:84,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:85,1
    - Dst: HMAC_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:88,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:89,1
    - Dst: HMAC_CTX_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:91,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:92,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:93,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:96,1
    - Dst: HMAC_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:97,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:98,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:99,1
    - Dst: HMAC_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:102,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:110,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:111,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:113,1
    - Dst: h__dump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:114,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:115,1
    - Dst: h__dump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:116,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:117,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:118,1
    - Dst: h__dump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:119,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 71
    argCount: 8
    argNames:
    - pass
    - passlen
    - salt
    - saltlen
    - iter
    - digest
    - keylen
    - out
    argTypes:
    - char*
    - int
    - unsigned char*
    - int
    - int
    - EVP_MD*
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 122
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 122
    functionName: PKCS5_PBKDF2_HMAC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c
    functionUses: 2
    functionsReached:
    - fprintf
    - EVP_MD_size
    - HMAC_Update
    - HMAC_CTX_new
    - strlen
    - HMAC_CTX_copy
    - HMAC_Init_ex
    - HMAC_Final
    - HMAC_CTX_reset
    - memcpy
    - h__dump
    - HMAC_CTX_free
    linkageType: ''
    returnType: int
    signature: "PKCS5_PBKDF2_HMAC(const char *pass, int passlen,\n                      const
      unsigned char *salt, int saltlen, int iter,\n                      const EVP_MD
      *digest, int keylen, unsigned char *out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS5_PBKDF2_HMAC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:128,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - pass
    - passlen
    - salt
    - saltlen
    - iter
    - keylen
    - out
    argTypes:
    - char*
    - int
    - unsigned char*
    - int
    - int
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: PKCS5_PBKDF2_HMAC_SHA1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c
    functionUses: 0
    functionsReached:
    - PKCS5_PBKDF2_HMAC
    - EVP_sha1
    linkageType: ''
    returnType: int
    signature: "PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen,\n                           const
      unsigned char *salt, int saltlen, int iter,\n                           int
      keylen, unsigned char *out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS5_PBKDF2_HMAC_SHA1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:137,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c
    functionUses: 22
    functionsReached:
    - PKCS5_PBKDF2_HMAC_SHA1
    - fprintf
    linkageType: ''
    returnType: void
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:160,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:160,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:162,1
    - Dst: EVP_PBE_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:167,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:167,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:169,1
    - Dst: EVP_get_cipherbyobj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:178,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:181,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:186,1
    - Dst: EVP_CIPHER_asn1_to_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:188,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:189,1
    - Dst: kdf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:192,1
    - Dst: PBE2PARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:194,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 7
    argNames:
    - ctx
    - pass
    - passlen
    - param
    - c
    - md
    - en_de
    argTypes:
    - EVP_CIPHER_CTX*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER*
    - EVP_MD*
    - int
    constantsTouched: []
    func_position:
      end: 196
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 196
    functionName: PKCS5_v2_PBE_keyivgen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c
    functionUses: 0
    functionsReached:
    - EVP_PBE_find
    - OBJ_obj2nid
    - EVP_get_cipherbyobj
    - EVPerr
    - ASN1_ITEM_rptr
    - EVP_CIPHER_asn1_to_param
    - ASN1_TYPE_unpack_sequence
    - EVP_CipherInit_ex
    - PBE2PARAM_free
    - kdf
    linkageType: ''
    returnType: int
    signature: "PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,\n
      \                         ASN1_TYPE *param, const EVP_CIPHER *c,\n                          const
      EVP_MD *md, int en_de)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:210,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:211,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:214,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:215,1
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:219,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:219,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:222,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:226,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:230,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:231,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:236,1
    - Dst: EVP_PBE_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:240,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:241,1
    - Dst: EVP_get_digestbynid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:245,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:247,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:252,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:259,1
    - Dst: PKCS5_PBKDF2_HMAC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:260,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:263,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:265,1
    - Dst: PBKDF2PARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:266,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 7
    argNames:
    - ctx
    - pass
    - passlen
    - param
    - c
    - md
    - en_de
    argTypes:
    - EVP_CIPHER_CTX*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER*
    - EVP_MD*
    - int
    constantsTouched: []
    func_position:
      end: 268
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 268
    functionName: PKCS5_v2_PBKDF2_keyivgen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_cipher
    - EVP_PBE_find
    - OPENSSL_assert
    - OBJ_obj2nid
    - PKCS5_PBKDF2_HMAC
    - EVPerr
    - ASN1_ITEM_rptr
    - EVP_get_digestbynid
    - ASN1_TYPE_unpack_sequence
    - EVP_CIPHER_CTX_key_length
    - ASN1_INTEGER_get
    - EVP_CipherInit_ex
    - OPENSSL_cleanse
    - PBKDF2PARAM_free
    linkageType: ''
    returnType: int
    signature: "PKCS5_v2_PBKDF2_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass,\n
      \                            int passlen, ASN1_TYPE *param,\n                             const
      EVP_CIPHER *c, const EVP_MD *md, int en_de)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:274,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 276
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 276
    functionName: h__dump
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c
    functionUses: 2
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: h__dump(const unsigned char *p, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PBE_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:88,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:88,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:91,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:93,1
    - Dst: i2t_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:95,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:96,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:103,1
    - Dst: EVP_get_cipherbynid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:108,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:110,1
    - Dst: EVP_get_digestbynid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:118,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:120,1
    - Dst: keygen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:125,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:126,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 6
    argNames:
    - pbe_obj
    - pass
    - passlen
    - param
    - ctx
    - en_de
    argTypes:
    - ASN1_OBJECT*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 130
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 130
    functionName: EVP_PBE_CipherInit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c
    functionUses: 1
    functionsReached:
    - EVP_PBE_find
    - EVP_get_cipherbynid
    - OBJ_obj2nid
    - OPENSSL_strlcpy
    - i2t_ASN1_OBJECT
    - EVPerr
    - EVP_get_digestbynid
    - strlen
    - ERR_add_error_data
    - keygen
    linkageType: ''
    returnType: int
    signature: "EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int passlen,\n
      \                      ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pbe1
    - pbe2
    argTypes:
    - EVP_PBE_CTL*
    - EVP_PBE_CTL*
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: pbe2_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: pbe2_cmp(const EVP_PBE_CTL *pbe1, const EVP_PBE_CTL *pbe2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PBE_CTL**
    - EVP_PBE_CTL**
    constantsTouched: []
    func_position:
      end: 152
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 152
    functionName: pbe_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: pbe_cmp(const EVP_PBE_CTL *const *a, const EVP_PBE_CTL *const *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PBE_CTL_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:162,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:167,1
    - Dst: sk_EVP_PBE_CTL_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:176,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:177,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:183,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - pbe_type
    - pbe_nid
    - cipher_nid
    - md_nid
    - keygen
    argTypes:
    - int
    - int
    - int
    - int
    - EVP_PBE_KEYGEN*
    constantsTouched: []
    func_position:
      end: 185
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 185
    functionName: EVP_PBE_alg_add_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c
    functionUses: 0
    functionsReached:
    - sk_EVP_PBE_CTL_new
    - EVPerr
    - sk_EVP_PBE_CTL_push
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid,\n
      \                        int md_nid, EVP_PBE_KEYGEN *keygen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:193,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:197,1
    - Dst: EVP_PBE_alg_add_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - nid
    - cipher
    - md
    - keygen
    argTypes:
    - int
    - EVP_CIPHER*
    - EVP_MD*
    - EVP_PBE_KEYGEN*
    constantsTouched: []
    func_position:
      end: 203
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 203
    functionName: EVP_PBE_alg_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c
    functionUses: 0
    functionsReached:
    - EVP_PBE_alg_add_type
    - EVP_MD_type
    - EVP_CIPHER_nid
    linkageType: ''
    returnType: int
    signature: "EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md,\n
      \                   EVP_PBE_KEYGEN *keygen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PBE_CTL_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:217,1
    - Dst: sk_EVP_PBE_CTL_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:219,1
    - Dst: OBJ_bsearch_pbe2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:222,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:222,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 5
    argNames:
    - type
    - pbe_nid
    - pcnid
    - pmnid
    - pkeygen
    argTypes:
    - int
    - int
    - int*
    - int*
    - EVP_PBE_KEYGEN**
    constantsTouched: []
    func_position:
      end: 233
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 233
    functionName: EVP_PBE_find
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c
    functionUses: 4
    functionsReached:
    - sk_EVP_PBE_CTL_value
    - OSSL_NELEM
    - sk_EVP_PBE_CTL_find
    - OBJ_bsearch_pbe2
    linkageType: ''
    returnType: int
    signature: "EVP_PBE_find(int type, int pbe_nid,\n                 int *pcnid,
      int *pmnid, EVP_PBE_KEYGEN **pkeygen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pbe
    argTypes:
    - EVP_PBE_CTL*
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: free_evp_pbe_ctl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: free_evp_pbe_ctl(EVP_PBE_CTL *pbe)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PBE_CTL_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: EVP_PBE_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c
    functionUses: 0
    functionsReached:
    - sk_EVP_PBE_CTL_pop_free
    linkageType: ''
    returnType: void
    signature: EVP_PBE_cleanup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c:250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ptype
    - ppbe_nid
    - num
    argTypes:
    - int*
    - int*
    - size_t
    constantsTouched: []
    func_position:
      end: 259
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 259
    functionName: EVP_PBE_get
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: EVP_PBE_get(int *ptype, int *ppbe_nid, size_t num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RIPEMD160_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_ripemd.c:24,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_ripemd.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_ripemd.c
    functionUses: 267
    functionsReached:
    - EVP_MD_CTX_md_data
    - RIPEMD160_Init
    linkageType: ''
    returnType: int
    signature: init(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RIPEMD160_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_ripemd.c:29,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_ripemd.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_ripemd.c
    functionUses: 40
    functionsReached:
    - RIPEMD160_Update
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RIPEMD160_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_ripemd.c:34,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_ripemd.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_ripemd.c
    functionUses: 13
    functionsReached:
    - RIPEMD160_Final
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: EVP_ripemd160
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_ripemd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: '*EVP_ripemd160(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: BIO_f_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_f_cipher(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:69,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:73,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:75,1
    - Dst: BIO_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:81,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 85
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 85
    functionName: enc_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - EVP_CIPHER_CTX_new
    - BIO_set_data
    - OPENSSL_zalloc
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: enc_new(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:94,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:98,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:99,1
    - Dst: BIO_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:100,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: enc_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - EVP_CIPHER_CTX_free
    - BIO_set_data
    - BIO_get_data
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: enc_free(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:114,1
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:116,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:125,1
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:136,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:151,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:160,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:162,1
    - Dst: EVP_CipherUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:179,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:182,1
    - Dst: EVP_CipherUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:197,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:200,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:222,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:229,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:230,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 86
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 232
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 232
    functionName: enc_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_block_size
    - BIO_clear_retry_flags
    - BIO_should_retry
    - BIO_get_data
    - EVP_CipherFinal_ex
    - memcpy
    - EVP_CipherUpdate
    - BIO_next
    - BIO_copy_next_retry
    - BIO_read
    linkageType: ''
    returnType: int
    signature: enc_read(BIO *b, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:240,1
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:241,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:247,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:250,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:252,1
    - Dst: EVP_CipherUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:266,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:269,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:279,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:281,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:290,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 292
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 292
    functionName: enc_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - BIO_get_data
    - EVP_CipherUpdate
    - BIO_next
    - BIO_copy_next_retry
    - BIO_write
    linkageType: ''
    returnType: int
    signature: enc_write(BIO *b, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:303,1
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:304,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:312,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:313,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:315,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:321,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:326,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:331,1
    - Dst: enc_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:337,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:345,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:357,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:363,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:364,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:365,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:370,1
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:374,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:375,1
    - Dst: EVP_CIPHER_CTX_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:378,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:380,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:383,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 76
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 387
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 387
    functionName: enc_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - EVP_CIPHER_CTX_new
    - BIO_clear_retry_flags
    - EVP_CIPHER_CTX_copy
    - BIO_get_data
    - BIO_next
    - enc_write
    - EVP_CipherFinal_ex
    - EVP_CIPHER_CTX_encrypting
    - EVP_CipherInit_ex
    - BIO_copy_next_retry
    - BIO_ctrl
    linkageType: ''
    returnType: long
    signature: enc_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:392,1
    - Dst: BIO_callback_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - bio_info_cb*
    constantsTouched: []
    func_position:
      end: 402
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 402
    functionName: enc_callback_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    - BIO_next
    linkageType: ''
    returnType: long
    signature: enc_callback_ctrl(BIO *b, int cmd, bio_info_cb *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:430,1
    - Dst: BIO_get_callback
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:434,1
    - Dst: callback
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:437,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:441,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:443,1
    - Dst: callback
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c:447,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - b
    - c
    - k
    - i
    - e
    argTypes:
    - BIO*
    - EVP_CIPHER*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 449
      start: 424
    functionDepth: 3
    functionLinenumber: 424
    functionLinenumberEnd: 449
    functionName: BIO_set_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - BIO_get_data
    - callback
    - EVP_CipherInit_ex
    - BIO_get_callback
    linkageType: ''
    returnType: int
    signature: "BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char *k,\n
      \                  const unsigned char *i, int e)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_err.c:174,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_err.c:175,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_err.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 180
    functionName: ERR_load_EVP_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_EVP_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/cmeth_lib.c:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - cipher_type
    - block_size
    - key_len
    argTypes:
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 26
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 26
    functionName: EVP_CIPHER_meth_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/cmeth_lib.c
    functionUses: 3
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_CIPHER_meth_new(int cipher_type, int block_size, int key_len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/cmeth_lib.c:30,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/cmeth_lib.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: EVP_CIPHER_meth_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached:
    - memcpy
    - EVP_CIPHER_meth_new
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_CIPHER_meth_dup(const EVP_CIPHER *cipher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/cmeth_lib.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: EVP_CIPHER_meth_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/cmeth_lib.c
    functionUses: 6
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: EVP_CIPHER_meth_free(EVP_CIPHER *cipher)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cipher
    - iv_len
    argTypes:
    - EVP_CIPHER*
    - int
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: EVP_CIPHER_meth_set_iv_length
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/cmeth_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_meth_set_iv_length(EVP_CIPHER *cipher, int iv_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cipher
    - flags
    argTypes:
    - EVP_CIPHER*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: EVP_CIPHER_meth_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/cmeth_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_meth_set_flags(EVP_CIPHER *cipher, unsigned long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cipher
    - ctx_size
    argTypes:
    - EVP_CIPHER*
    - int
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: EVP_CIPHER_meth_set_impl_ctx_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/cmeth_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_meth_set_impl_ctx_size(EVP_CIPHER *cipher, int ctx_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: EVP_CIPHER_meth_set_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/cmeth_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "EVP_CIPHER_meth_set_init(EVP_CIPHER *cipher,\n                             int
      (*init) (EVP_CIPHER_CTX *ctx,\n                                          const
      unsigned char *key,\n                                          const unsigned
      char *iv,\n                                          int enc))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: EVP_CIPHER_meth_set_do_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/cmeth_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "EVP_CIPHER_meth_set_do_cipher(EVP_CIPHER *cipher,\n                                  int
      (*do_cipher) (EVP_CIPHER_CTX *ctx,\n                                                    unsigned
      char *out,\n                                                    const unsigned
      char *in,\n                                                    size_t inl))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: EVP_CIPHER_meth_set_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/cmeth_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "EVP_CIPHER_meth_set_cleanup(EVP_CIPHER *cipher,\n                                int
      (*cleanup) (EVP_CIPHER_CTX *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: EVP_CIPHER_meth_set_set_asn1_params
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "EVP_CIPHER_meth_set_set_asn1_params(EVP_CIPHER *cipher,\n                                        int
      (*set_asn1_parameters) (EVP_CIPHER_CTX *,\n                                                                    ASN1_TYPE
      *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: EVP_CIPHER_meth_set_get_asn1_params
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "EVP_CIPHER_meth_set_get_asn1_params(EVP_CIPHER *cipher,\n                                        int
      (*get_asn1_parameters) (EVP_CIPHER_CTX *,\n                                                                    ASN1_TYPE
      *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: EVP_CIPHER_meth_set_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/cmeth_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "EVP_CIPHER_meth_set_ctrl(EVP_CIPHER *cipher,\n                             int
      (*ctrl) (EVP_CIPHER_CTX *, int type,\n                                          int
      arg, void *ptr))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: "(*EVP_CIPHER_meth_get_init(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *ctx,\n                                                          const unsigned
      char *key,\n                                                          const
      unsigned char *iv,\n                                                          int
      enc)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*EVP_CIPHER_meth_get_init(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *ctx,\n                                                          const unsigned
      char *key,\n                                                          const
      unsigned char *iv,\n                                                          int
      enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: "(*EVP_CIPHER_meth_get_do_cipher(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *ctx,\n                                                               unsigned
      char *out,\n                                                               const
      unsigned char *in,\n                                                               size_t
      inl)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*EVP_CIPHER_meth_get_do_cipher(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *ctx,\n                                                               unsigned
      char *out,\n                                                               const
      unsigned char *in,\n                                                               size_t
      inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: (*EVP_CIPHER_meth_get_cleanup(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*EVP_CIPHER_meth_get_cleanup(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: "(*EVP_CIPHER_meth_get_set_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *,\n                                                                     ASN1_TYPE
      *)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*EVP_CIPHER_meth_get_set_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *,\n                                                                     ASN1_TYPE
      *)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: "(*EVP_CIPHER_meth_get_get_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *,\n                                                               ASN1_TYPE
      *)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*EVP_CIPHER_meth_get_get_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *,\n                                                               ASN1_TYPE
      *)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - arg
    - ptr
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: "(*EVP_CIPHER_meth_get_ctrl(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *,\n                                                          int type, int
      arg,\n                                                          void *ptr)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*EVP_CIPHER_meth_get_ctrl(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *,\n                                                          int type, int
      arg,\n                                                          void *ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::pkey_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:30,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: EVP_PKEY_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY*::ameth::pkey_bits
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_bits(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::pkey_security_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: EVP_PKEY_security_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY*::ameth::pkey_security_bits
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_security_bits(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::pkey_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: EVP_PKEY_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 3
    functionsReached:
    - EVP_PKEY*::ameth::pkey_size
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_size(EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - pkey
    - mode
    argTypes:
    - EVP_PKEY*
    - int
    constantsTouched: []
    func_position:
      end: 71
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 71
    functionName: EVP_PKEY_save_parameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_set_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:76,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:79,1
    - Dst: EVP_PKEY_missing_parameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:83,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:84,1
    - Dst: EVP_PKEY_missing_parameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:88,1
    - Dst: EVP_PKEY_cmp_parameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:89,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:91,1
    - Dst: EVP_PKEY*::ameth::param_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:96,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 99
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 99
    functionName: EVP_PKEY_copy_parameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY*::ameth::param_copy
    - EVPerr
    - EVP_PKEY_set_type
    - EVP_PKEY_missing_parameters
    - EVP_PKEY_cmp_parameters
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::param_missing
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: EVP_PKEY_missing_parameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY*::ameth::param_missing
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_missing_parameters(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::param_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: EVP_PKEY_cmp_parameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY*::ameth::param_cmp
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::param_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:126,1
    - Dst: EVP_PKEY*::ameth::pub_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:132,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 136
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 136
    functionName: EVP_PKEY_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY*::ameth::param_cmp
    - EVP_PKEY*::ameth::pub_cmp
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:140,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:143,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:150,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:152,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 157
    functionName: EVP_PKEY_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 7
    functionsReached:
    - EVPerr
    - CRYPTO_THREAD_lock_new
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*EVP_PKEY_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:163,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:166,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 169
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 169
    functionName: EVP_PKEY_up_ref
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 2
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_atomic_add
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_up_ref(EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free_it
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:182,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:191,1
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:196,1
    - Dst: EVP_PKEY_asn1_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:198,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:201,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:204,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - pkey
    - type
    - str
    - len
    argTypes:
    - EVP_PKEY*
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 215
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 215
    functionName: pkey_set_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_asn1_find
    - EVP_PKEY_free_it
    - EVPerr
    - ENGINE_finish
    - EVP_PKEY_asn1_find_str
    linkageType: ''
    returnType: int
    signature: pkey_set_type(EVP_PKEY *pkey, int type, const char *str, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pkey_set_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - type
    argTypes:
    - EVP_PKEY*
    - int
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: EVP_PKEY_set_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - pkey_set_type
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_set_type(EVP_PKEY *pkey, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pkey_set_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pkey
    - str
    - len
    argTypes:
    - EVP_PKEY*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: EVP_PKEY_set_type_str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - pkey_set_type
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_set_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - pkey
    - type
    - key
    argTypes:
    - EVP_PKEY*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 233
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 233
    functionName: EVP_PKEY_assign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_set_type
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: EVP_PKEY_get0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*EVP_PKEY_get0(const EVP_PKEY *pkey)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:244,1
    - Dst: EVP_PKEY_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pkey
    - len
    argTypes:
    - EVP_PKEY*
    - size_t*
    constantsTouched: []
    func_position:
      end: 250
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 250
    functionName: EVP_PKEY_get0_hmac
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get0
    - EVPerr
    linkageType: ''
    returnType: unsigned char
    signature: '*EVP_PKEY_get0_hmac(const EVP_PKEY *pkey, size_t *len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - EVP_PKEY*
    - RSA*
    constantsTouched: []
    func_position:
      end: 259
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 259
    functionName: EVP_PKEY_set1_RSA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 2
    functionsReached:
    - RSA_up_ref
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_set1_RSA(EVP_PKEY *pkey, RSA *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 268
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 268
    functionName: EVP_PKEY_get0_RSA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 2
    functionsReached:
    - EVPerr
    linkageType: ''
    returnType: RSA
    signature: '*EVP_PKEY_get0_RSA(EVP_PKEY *pkey)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:272,1
    - Dst: RSA_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 276
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 276
    functionName: EVP_PKEY_get1_RSA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY_get0_RSA
    - RSA_up_ref
    linkageType: ''
    returnType: RSA
    signature: '*EVP_PKEY_get1_RSA(EVP_PKEY *pkey)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - EVP_PKEY*
    - DSA*
    constantsTouched: []
    func_position:
      end: 286
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 286
    functionName: EVP_PKEY_set1_DSA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - DSA_up_ref
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_set1_DSA(EVP_PKEY *pkey, DSA *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 295
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 295
    functionName: EVP_PKEY_get0_DSA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - EVPerr
    linkageType: ''
    returnType: DSA
    signature: '*EVP_PKEY_get0_DSA(EVP_PKEY *pkey)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:299,1
    - Dst: DSA_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 303
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 303
    functionName: EVP_PKEY_get1_DSA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_get0_DSA
    - DSA_up_ref
    linkageType: ''
    returnType: DSA
    signature: '*EVP_PKEY_get1_DSA(EVP_PKEY *pkey)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - EVP_PKEY*
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 314
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 314
    functionName: EVP_PKEY_set1_EC_KEY
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EC_KEY_up_ref
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, EC_KEY *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 323
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 323
    functionName: EVP_PKEY_get0_EC_KEY
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVPerr
    linkageType: ''
    returnType: EC_KEY
    signature: '*EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:327,1
    - Dst: EC_KEY_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 331
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 331
    functionName: EVP_PKEY_get1_EC_KEY
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 4
    functionsReached:
    - EVP_PKEY_get0_EC_KEY
    - EC_KEY_up_ref
    linkageType: ''
    returnType: EC_KEY
    signature: '*EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - EVP_PKEY*
    - DH*
    constantsTouched: []
    func_position:
      end: 342
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 342
    functionName: EVP_PKEY_set1_DH
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - DH_up_ref
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_set1_DH(EVP_PKEY *pkey, DH *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 351
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 351
    functionName: EVP_PKEY_get0_DH
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVPerr
    linkageType: ''
    returnType: DH
    signature: '*EVP_PKEY_get0_DH(EVP_PKEY *pkey)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_DH
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:355,1
    - Dst: DH_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 359
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 359
    functionName: EVP_PKEY_get1_DH
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - DH_up_ref
    - EVP_PKEY_get0_DH
    linkageType: ''
    returnType: DH
    signature: '*EVP_PKEY_get1_DH(EVP_PKEY *pkey)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_asn1_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:367,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 376
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 376
    functionName: EVP_PKEY_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY_asn1_find
    - ENGINE_finish
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_type(int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 381
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 381
    functionName: EVP_PKEY_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_id(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 386
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 386
    functionName: EVP_PKEY_base_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_type
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_base_id(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:395,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:396,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:399,1
    - Dst: EVP_PKEY_free_it
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:400,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:401,1
    - Dst: sk_X509_ATTRIBUTE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:402,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - x
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 404
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 404
    functionName: EVP_PKEY_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 25
    functionsReached:
    - EVP_PKEY_free_it
    - sk_X509_ATTRIBUTE_pop_free
    - CRYPTO_atomic_add
    - OPENSSL_free
    - CRYPTO_THREAD_lock_free
    - REF_ASSERT_ISNT
    - REF_PRINT_COUNT
    linkageType: ''
    returnType: void
    signature: EVP_PKEY_free(EVP_PKEY *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::pkey_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:410,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 417
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 417
    functionName: EVP_PKEY_free_it
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY*::ameth::pkey_free
    - ENGINE_finish
    linkageType: ''
    returnType: void
    signature: EVP_PKEY_free_it(EVP_PKEY *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:422,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:423,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - out
    - pkey
    - indent
    - kstr
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 426
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 426
    functionName: unsup_alg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - OBJ_nid2ln
    - BIO_indent
    linkageType: ''
    returnType: int
    signature: "unsup_alg(BIO *out, const EVP_PKEY *pkey, int indent,\n                     const
      char *kstr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::pub_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:432,1
    - Dst: unsup_alg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:434,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - out
    - pkey
    - indent
    - pctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 435
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 435
    functionName: EVP_PKEY_print_public
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - unsup_alg
    - EVP_PKEY*::ameth::pub_print
    linkageType: ''
    returnType: int
    signature: "EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey,\n                          int
      indent, ASN1_PCTX *pctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::priv_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:441,1
    - Dst: unsup_alg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - out
    - pkey
    - indent
    - pctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 444
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 444
    functionName: EVP_PKEY_print_private
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - unsup_alg
    - EVP_PKEY*::ameth::priv_print
    linkageType: ''
    returnType: int
    signature: "EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey,\n                           int
      indent, ASN1_PCTX *pctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::param_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:450,1
    - Dst: unsup_alg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - out
    - pkey
    - indent
    - pctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 452
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 452
    functionName: EVP_PKEY_print_params
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - unsup_alg
    - EVP_PKEY*::ameth::param_print
    linkageType: ''
    returnType: int
    signature: "EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey,\n                          int
      indent, ASN1_PCTX *pctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::pkey_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 459
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 459
    functionName: evp_pkey_asn1_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY*::ameth::pkey_ctrl
    linkageType: ''
    returnType: int
    signature: evp_pkey_asn1_ctrl(EVP_PKEY *pkey, int op, int arg1, void *arg2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_asn1_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - pnid
    argTypes:
    - EVP_PKEY*
    - int*
    constantsTouched: []
    func_position:
      end: 464
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 464
    functionName: EVP_PKEY_get_default_digest_nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - evp_pkey_asn1_ctrl
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_asn1_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:471,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - pkey
    - pt
    - ptlen
    argTypes:
    - EVP_PKEY*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 475
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 475
    functionName: EVP_PKEY_set1_tls_encodedpoint
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_asn1_ctrl
    linkageType: ''
    returnType: int
    signature: "EVP_PKEY_set1_tls_encodedpoint(EVP_PKEY *pkey,\n                               const
      unsigned char *pt, size_t ptlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_asn1_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c:480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pkey
    - ppt
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 484
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 484
    functionName: EVP_PKEY_get1_tls_encodedpoint
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_asn1_ctrl
    linkageType: ''
    returnType: size_t
    signature: EVP_PKEY_get1_tls_encodedpoint(EVP_PKEY *pkey, unsigned char **ppt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_seal.c:26,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_seal.c:27,1
    - Dst: EVP_CIPHER_CTX_rand_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_seal.c:32,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_seal.c:34,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_seal.c:35,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_seal.c:35,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_seal.c:38,1
    - Dst: EVP_PKEY_encrypt_old
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_seal.c:43,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_seal.c:43,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 7
    argNames:
    - ctx
    - type
    - ek
    - ekl
    - iv
    - pubk
    - npubk
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - unsigned char**
    - int*
    - unsigned char*
    - EVP_PKEY**
    - int
    constantsTouched: []
    func_position:
      end: 49
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 49
    functionName: EVP_SealInit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_seal.c
    functionUses: 0
    functionsReached:
    - EVP_EncryptInit_ex
    - RAND_bytes
    - EVP_CIPHER_CTX_reset
    - EVP_PKEY_encrypt_old
    - EVP_CIPHER_CTX_rand_key
    - EVP_CIPHER_CTX_key_length
    - EVP_CIPHER_CTX_iv_length
    linkageType: ''
    returnType: int
    signature: "EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type,\n                 unsigned
      char **ek, int *ekl, unsigned char *iv,\n                 EVP_PKEY **pubk, int
      npubk)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_seal.c:66,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_seal.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 4
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: EVP_SealFinal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_seal.c
    functionUses: 0
    functionsReached:
    - EVP_EncryptFinal_ex
    - EVP_EncryptInit_ex
    linkageType: ''
    returnType: int
    signature: EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:67,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:71,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:72,1
    - Dst: aesni_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:75,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:76,1
    - Dst: SHA1_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - inkey
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 86
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 86
    functionName: aesni_cbc_hmac_sha1_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 0
    functionsReached:
    - aesni_set_decrypt_key
    - SHA1_Init
    - data
    - EVP_CIPHER_CTX_key_length
    - aesni_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "aesni_cbc_hmac_sha1_init_key(EVP_CIPHER_CTX *ctx,\n                                        const
      unsigned char *inkey,\n                                        const unsigned
      char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:106,1
    - Dst: sha1_block_data_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:115,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - c
    - data
    - len
    argTypes:
    - SHA_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 126
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 126
    functionName: sha1_update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 8
    functionsReached:
    - SHA1_Update
    - sha1_block_data_order
    linkageType: ''
    returnType: void
    signature: sha1_update(SHA_CTX *c, const void *data, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:177,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:196,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:197,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:203,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:204,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:209,1
    - Dst: BSWAP8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:210,1
    - Dst: BSWAP8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:226,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:240,1
    - Dst: sha1_multi_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:249,1
    - Dst: sha1_multi_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:267,1
    - Dst: aesni_multi_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:268,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:277,1
    - Dst: sha1_multi_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:285,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:287,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:294,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:300,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:302,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:307,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:309,1
    - Dst: sha1_multi_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:317,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:319,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:322,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:324,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:326,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:328,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:330,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:333,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:335,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:337,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:339,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:341,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:343,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:346,1
    - Dst: sha1_multi_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:353,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:359,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:365,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:366,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:367,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:368,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:369,1
    - Dst: aesni_multi_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:393,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:395,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:396,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 151
    argCount: 5
    argNames:
    - key
    - out
    - inp
    - inp_len
    - n4x
    argTypes:
    - EVP_AES_HMAC_SHA1*
    - unsigned char*
    - unsigned char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 399
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 399
    functionName: tls1_1_multi_block_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - memset
    - BSWAP4
    - PUTU32
    - memcpy
    - aesni_multi_cbc_encrypt
    - sha1_multi_block
    - BSWAP8
    - OPENSSL_cleanse
    linkageType: ''
    returnType: size_t
    signature: "tls1_1_multi_block_encrypt(EVP_AES_HMAC_SHA1 *key,\n                                         unsigned
      char *out,\n                                         const unsigned char *inp,\n
      \                                        size_t inp_len, int n4x)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:405,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:421,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:434,1
    - Dst: aesni_cbc_sha1_enc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:436,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:437,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:451,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:455,1
    - Dst: SHA1_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:458,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:460,1
    - Dst: SHA1_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:461,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:468,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:469,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:471,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:472,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:502,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:502,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:513,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:515,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:522,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:523,1
    - Dst: constant_time_ge
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:531,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:543,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:551,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:553,1
    - Dst: aesni256_cbc_sha1_dec
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:554,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:564,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:573,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:582,1
    - Dst: sha1_block_data_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:610,1
    - Dst: sha1_block_data_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:626,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:634,1
    - Dst: sha1_block_data_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:638,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:647,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:648,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:649,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:650,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:651,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:663,1
    - Dst: SHA1_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:665,1
    - Dst: sha1_block_data_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:679,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:683,1
    - Dst: SHA1_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:684,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:736,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:737,1
    - Dst: aesni256_cbc_sha1_dec
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:738,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:753,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:754,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:756,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 224
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 761
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 761
    functionName: aesni_cbc_hmac_sha1_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 0
    functionsReached:
    - constant_time_ge
    - EVP_CIPHER_CTX_iv_noconst
    - aesni_cbc_encrypt
    - data
    - aesni256_cbc_sha1_dec
    - BSWAP4
    - sha1_block_data_order
    - memset
    - memcpy
    - SHA1_Update
    - EVP_CIPHER_CTX_encrypting
    - aesni_cbc_sha1_enc
    - SHA1_Final
    linkageType: ''
    returnType: int
    signature: "aesni_cbc_hmac_sha1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                                     const unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:766,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:774,1
    - Dst: SHA1_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:777,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:778,1
    - Dst: SHA1_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:779,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:781,1
    - Dst: SHA1_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:786,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:787,1
    - Dst: SHA1_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:791,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:792,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:794,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:808,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:817,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:823,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:844,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:860,1
    - Dst: tls1_1_multi_block_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c:887,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 85
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 896
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 896
    functionName: aesni_cbc_hmac_sha1_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 0
    functionsReached:
    - SHA1_Init
    - data
    - memset
    - tls1_1_multi_block_encrypt
    - memcpy
    - SHA1_Update
    - EVP_CIPHER_CTX_encrypting
    - OPENSSL_cleanse
    - SHA1_Final
    linkageType: ''
    returnType: int
    signature: "aesni_cbc_hmac_sha1_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,\n
      \                                   void *ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 940
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 940
    functionName: EVP_aes_128_cbc_hmac_sha1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_aes_128_cbc_hmac_sha1(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 946
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 946
    functionName: EVP_aes_256_cbc_hmac_sha1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_aes_256_cbc_hmac_sha1(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 951
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 951
    functionName: EVP_aes_128_cbc_hmac_sha1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_aes_128_cbc_hmac_sha1(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 956
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 956
    functionName: EVP_aes_256_cbc_hmac_sha1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_aes_256_cbc_hmac_sha1(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc5.c:41,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc5.c:45,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc5.c:53,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc5.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 64
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 64
    functionName: rc5_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc5.c
    functionUses: 0
    functionsReached:
    - data
    - EVPerr
    linkageType: ''
    returnType: int
    signature: rc5_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RC5_32_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc5.c:69,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc5.c:69,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc5.c:69,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc5.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: r_32_12_16_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc5.c
    functionUses: 0
    functionsReached:
    - RC5_32_set_key
    - EVP_CIPHER_CTX_key_length
    - data
    linkageType: ''
    returnType: int
    signature: "r_32_12_16_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                              const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:255,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:257,1
    - Dst: aesni_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:260,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:260,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:266,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:266,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:278,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 283
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 283
    functionName: aesni_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_mode
    - aesni_set_decrypt_key
    - EVP_C_DATA
    - EVPerr
    - EVP_CIPHER_CTX_key_length
    - aesni_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "aesni_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n                          const
      unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aesni_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:288,1
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:288,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:289,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 293
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 293
    functionName: aesni_cbc_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - aesni_cbc_encrypt
    - EVP_C_DATA
    - EVP_CIPHER_CTX_encrypting
    linkageType: ''
    returnType: int
    signature: "aesni_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                            const
      unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aesni_ecb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:303,1
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:303,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 307
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 307
    functionName: aesni_ecb_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    - aesni_ecb_encrypt
    - EVP_CIPHER_CTX_encrypting
    linkageType: ''
    returnType: int
    signature: "aesni_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                            const
      unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:332,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:336,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:336,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:338,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:346,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:353,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:355,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 360
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 360
    functionName: aesni_gcm_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - CRYPTO_gcm128_init
    - EVP_C_DATA
    - EVP_CIPHER_CTX_key_length
    - CRYPTO_gcm128_setiv
    - memcpy
    - aesni_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "aesni_gcm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                             const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:369,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:376,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:376,1
    - Dst: aesni_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:381,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:381,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:387,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:387,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:388,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:397,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:397,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 401
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 401
    functionName: aesni_xts_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - aesni_set_decrypt_key
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_C_DATA
    - EVP_CIPHER_CTX_key_length
    - memcpy
    - aesni_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "aesni_xts_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                             const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:410,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:414,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:414,1
    - Dst: CRYPTO_ccm128_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:416,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:423,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:423,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 427
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 427
    functionName: aesni_ccm_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_C_DATA
    - EVP_CIPHER_CTX_key_length
    - memcpy
    - CRYPTO_ccm128_init
    - aesni_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "aesni_ccm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                             const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:450,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:460,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:460,1
    - Dst: aesni_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:462,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:462,1
    - Dst: CRYPTO_ocb128_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:464,1
    - Dst: CRYPTO_ocb128_setiv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:480,1
    - Dst: CRYPTO_ocb128_setiv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:489,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:491,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 495
      start: 447
    functionDepth: 3
    functionLinenumber: 447
    functionLinenumberEnd: 495
    functionName: aesni_ocb_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - aesni_set_decrypt_key
    - CRYPTO_ocb128_init
    - EVP_C_DATA
    - CRYPTO_ocb128_setiv
    - EVP_CIPHER_CTX_key_length
    - memcpy
    - aesni_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "aesni_ocb_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                             const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:625,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:627,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:628,1
    - Dst: aes_t4_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:632,1
    - Dst: aes_t4_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:652,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:685,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 690
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 690
    functionName: aes_t4_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - aes_t4_set_decrypt_key
    - EVP_CIPHER_CTX_mode
    - EVP_C_DATA
    - EVPerr
    - EVP_CIPHER_CTX_key_length
    - aes_t4_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "aes_t4_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n                           const
      unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:723,1
    - Dst: aes_t4_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:728,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:729,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:750,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:757,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:759,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 764
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 764
    functionName: aes_t4_gcm_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - CRYPTO_gcm128_init
    - EVP_C_DATA
    - CRYPTO_gcm128_setiv
    - aes_t4_set_encrypt_key
    - memcpy
    linkageType: ''
    returnType: int
    signature: "aes_t4_gcm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                              const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:773,1
    - Dst: aes_t4_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:782,1
    - Dst: aes_t4_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:795,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:795,1
    - Dst: aes_t4_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:810,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:810,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:811,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:820,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:820,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 824
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 824
    functionName: aes_t4_xts_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - aes_t4_set_decrypt_key
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_C_DATA
    - memcpy
    - aes_t4_set_encrypt_key
    - EVP_CIPHER_CTX_key_length
    linkageType: ''
    returnType: int
    signature: "aes_t4_xts_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                              const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:833,1
    - Dst: aes_t4_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:838,1
    - Dst: CRYPTO_ccm128_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:839,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:845,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:845,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 849
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 849
    functionName: aes_t4_ccm_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_C_DATA
    - memcpy
    - aes_t4_set_encrypt_key
    - CRYPTO_ccm128_init
    linkageType: ''
    returnType: int
    signature: "aes_t4_ccm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                              const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:859,1
    - Dst: aes_t4_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:869,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:869,1
    - Dst: aes_t4_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:871,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:871,1
    - Dst: CRYPTO_ocb128_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:873,1
    - Dst: CRYPTO_ocb128_setiv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:888,1
    - Dst: CRYPTO_ocb128_setiv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:897,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:899,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 903
      start: 856
    functionDepth: 3
    functionLinenumber: 856
    functionLinenumberEnd: 903
    functionName: aes_t4_ocb_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - aes_t4_set_decrypt_key
    - CRYPTO_ocb128_init
    - EVP_C_DATA
    - CRYPTO_ocb128_setiv
    - EVP_CIPHER_CTX_key_length
    - aes_t4_set_encrypt_key
    - memcpy
    linkageType: ''
    returnType: int
    signature: "aes_t4_ocb_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                              const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1037,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1039,1
    - Dst: HWAES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1044,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1045,1
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1057,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1057,1
    - Dst: vpaes_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1065,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1066,1
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1074,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1075,1
    - Dst: HWAES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1084,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1084,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1103,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1103,1
    - Dst: vpaes_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1111,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1111,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1119,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1119,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1131,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 1136
      start: 1033
    functionDepth: 1
    functionLinenumber: 1033
    functionLinenumberEnd: 1136
    functionName: aes_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_mode
    - HWAES_set_encrypt_key
    - vpaes_set_encrypt_key
    - EVP_C_DATA
    - EVPerr
    - HWAES_set_decrypt_key
    - vpaes_set_decrypt_key
    - EVP_CIPHER_CTX_key_length
    - AES_set_decrypt_key
    - AES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "aes_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n                        const
      unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1141,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1145,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1146,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1147,1
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1148,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1149,1
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1151,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1155
      start: 1138
    functionDepth: 1
    functionLinenumber: 1138
    functionLinenumberEnd: 1155
    functionName: aes_cbc_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_C_DATA
    - CRYPTO_cbc128_encrypt
    - EVP_CIPHER_CTX_encrypting
    - CRYPTO_cbc128_decrypt
    linkageType: ''
    returnType: int
    signature: "aes_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1171
      start: 1157
    functionDepth: 0
    functionLinenumber: 1157
    functionLinenumberEnd: 1171
    functionName: aes_ecb_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    linkageType: ''
    returnType: int
    signature: "aes_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1176,1
    - Dst: CRYPTO_ofb128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1179,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1180,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1183
      start: 1173
    functionDepth: 1
    functionLinenumber: 1173
    functionLinenumberEnd: 1183
    functionName: aes_ofb_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_C_DATA
    - EVP_CIPHER_CTX_set_num
    - CRYPTO_ofb128_encrypt
    linkageType: ''
    returnType: int
    signature: "aes_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1188,1
    - Dst: CRYPTO_cfb128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1191,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1192,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1193,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1196
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1196
    functionName: aes_cfb_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_encrypt
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_C_DATA
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_set_num
    linkageType: ''
    returnType: int
    signature: "aes_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1201,1
    - Dst: CRYPTO_cfb128_8_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1204,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1205,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1206,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1209
      start: 1198
    functionDepth: 2
    functionLinenumber: 1198
    functionLinenumberEnd: 1209
    functionName: aes_cfb8_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - CRYPTO_cfb128_8_encrypt
    - EVP_C_DATA
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_set_num
    linkageType: ''
    returnType: int
    signature: "aes_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1214,1
    - Dst: EVP_CIPHER_CTX_test_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1216,1
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1218,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1219,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1220,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1221,1
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1227,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1228,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1229,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1230,1
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1235,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1236,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1237,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1242
      start: 1211
    functionDepth: 2
    functionLinenumber: 1211
    functionLinenumberEnd: 1242
    functionName: aes_cfb1_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_1_encrypt
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_test_flags
    - EVP_C_DATA
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_set_num
    linkageType: ''
    returnType: int
    signature: "aes_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1248,1
    - Dst: CRYPTO_ctr128_encrypt_ctr32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1251,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1252,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1253,1
    - Dst: CRYPTO_ctr128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1256,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1257,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1258,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1262
      start: 1244
    functionDepth: 3
    functionLinenumber: 1244
    functionLinenumberEnd: 1262
    functionName: aes_ctr_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_C_DATA
    - CRYPTO_ctr128_encrypt_ctr32
    - EVP_CIPHER_CTX_set_num
    - CRYPTO_ctr128_encrypt
    linkageType: ''
    returnType: int
    signature: "aes_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1270,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1273,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1274,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 1277
      start: 1268
    functionDepth: 1
    functionLinenumber: 1268
    functionLinenumberEnd: 1277
    functionName: aes_gcm_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - OPENSSL_cleanse
    - OPENSSL_free
    - EVP_C_DATA
    linkageType: ''
    returnType: int
    signature: aes_gcm_cleanup(EVP_CIPHER_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - counter
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 1293
      start: 1280
    functionDepth: 0
    functionLinenumber: 1280
    functionLinenumberEnd: 1293
    functionName: ctr64_inc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ctr64_inc(unsigned char *counter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1297,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1302,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1303,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1314,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1315,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1316,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1324,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1326,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1326,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1331,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1334,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1334,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1340,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1351,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1352,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1353,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1361,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1364,1
    - Dst: ctr64_inc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1369,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1375,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1377,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1378,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1386,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1386,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1397,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1402,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1403,1
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1411,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1417,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1418,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1420,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1423,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 100
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1432
      start: 1295
    functionDepth: 1
    functionLinenumber: 1295
    functionLinenumberEnd: 1432
    functionName: aes_gcm_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_buf_noconst
    - RAND_bytes
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_C_DATA
    - ctr64_inc
    - EVP_CIPHER_CTX_iv_length
    - memcpy
    - CRYPTO_gcm128_setiv
    - EVP_CIPHER_CTX_encrypting
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: aes_gcm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1437,1
    - Dst: HWAES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1444,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1444,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1446,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1458,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1458,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1460,1
    - Dst: vpaes_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1468,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1468,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1470,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1478,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1478,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1480,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1495,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1502,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1504,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 1509
      start: 1434
    functionDepth: 1
    functionLinenumber: 1434
    functionLinenumberEnd: 1509
    functionName: aes_gcm_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - HWAES_set_encrypt_key
    - CRYPTO_gcm128_init
    - vpaes_set_encrypt_key
    - EVP_C_DATA
    - EVP_CIPHER_CTX_key_length
    - CRYPTO_gcm128_setiv
    - memcpy
    - AES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "aes_gcm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                           const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1521,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1531,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1531,1
    - Dst: CRYPTO_gcm128_aad
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1536,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1536,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1543,1
    - Dst: AES_GCM_ASM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1548,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1549,1
    - Dst: AES_gcm_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1552,1
    - Dst: CRYPTO_gcm128_encrypt_ctr32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1558,1
    - Dst: AES_GCM_ASM2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1566,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1567,1
    - Dst: AES_gcm_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1570,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1576,1
    - Dst: CRYPTO_gcm128_tag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1582,1
    - Dst: AES_GCM_ASM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1589,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1590,1
    - Dst: AES_gcm_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1593,1
    - Dst: CRYPTO_gcm128_decrypt_ctr32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1599,1
    - Dst: AES_GCM_ASM2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1607,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1608,1
    - Dst: AES_gcm_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1611,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1617,1
    - Dst: CRYPTO_gcm128_tag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1622,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1622,1
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1625,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1625,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1627,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 72
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1637
      start: 1518
    functionDepth: 3
    functionLinenumber: 1518
    functionLinenumberEnd: 1637
    functionName: aes_gcm_tls_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - AES_gcm_decrypt
    - EVP_CIPHER_CTX_buf_noconst
    - AES_GCM_ASM2
    - CRYPTO_gcm128_encrypt
    - CRYPTO_memcmp
    - EVP_C_DATA
    - CRYPTO_gcm128_encrypt_ctr32
    - AES_GCM_ASM
    - EVP_CIPHER_CTX_encrypting
    - CRYPTO_gcm128_aad
    - OPENSSL_cleanse
    - AES_gcm_encrypt
    - EVP_CIPHER_CTX_ctrl
    - CRYPTO_gcm128_tag
    - CRYPTO_gcm128_decrypt_ctr32
    - CRYPTO_gcm128_decrypt
    linkageType: ''
    returnType: int
    signature: "aes_gcm_tls_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                              const
      unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1642,1
    - Dst: aes_gcm_tls_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1648,1
    - Dst: CRYPTO_gcm128_aad
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1654,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1656,1
    - Dst: AES_GCM_ASM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1660,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1663,1
    - Dst: AES_gcm_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1666,1
    - Dst: CRYPTO_gcm128_encrypt_ctr32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1674,1
    - Dst: AES_GCM_ASM2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1682,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1685,1
    - Dst: AES_gcm_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1688,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1696,1
    - Dst: AES_GCM_ASM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1704,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1707,1
    - Dst: AES_gcm_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1710,1
    - Dst: CRYPTO_gcm128_decrypt_ctr32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1718,1
    - Dst: AES_GCM_ASM2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1726,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1729,1
    - Dst: AES_gcm_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1732,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1740,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1747,1
    - Dst: CRYPTO_gcm128_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1750,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1751,1
    - Dst: CRYPTO_gcm128_tag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1757,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1757,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 72
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1764
      start: 1639
    functionDepth: 4
    functionLinenumber: 1639
    functionLinenumberEnd: 1764
    functionName: aes_gcm_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_buf_noconst
    - AES_GCM_ASM2
    - CRYPTO_gcm128_encrypt
    - EVP_C_DATA
    - CRYPTO_gcm128_encrypt_ctr32
    - AES_GCM_ASM
    - aes_gcm_tls_cipher
    - CRYPTO_gcm128_finish
    - EVP_CIPHER_CTX_encrypting
    - CRYPTO_gcm128_aad
    - AES_gcm_encrypt
    - AES_gcm_decrypt
    - CRYPTO_gcm128_tag
    - CRYPTO_gcm128_decrypt_ctr32
    - CRYPTO_gcm128_decrypt
    linkageType: ''
    returnType: int
    signature: "aes_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1780,1
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1783,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1801
      start: 1778
    functionDepth: 0
    functionLinenumber: 1778
    functionLinenumberEnd: 1801
    functionName: aes_xts_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    linkageType: ''
    returnType: int
    signature: aes_xts_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1806,1
    - Dst: HWAES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1821,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1822,1
    - Dst: HWAES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1829,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1830,1
    - Dst: HWAES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1838,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1838,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1839,1
    - Dst: vpaes_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1855,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1856,1
    - Dst: vpaes_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1860,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1861,1
    - Dst: vpaes_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1866,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1866,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1867,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1878,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1878,1
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1882,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1882,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1887,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1887,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1888,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1897,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1897,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 1901
      start: 1803
    functionDepth: 1
    functionLinenumber: 1803
    functionLinenumberEnd: 1901
    functionName: aes_xts_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - HWAES_set_encrypt_key
    - vpaes_set_encrypt_key
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_C_DATA
    - HWAES_set_decrypt_key
    - vpaes_set_decrypt_key
    - EVP_CIPHER_CTX_key_length
    - memcpy
    - AES_set_decrypt_key
    - AES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "aes_xts_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                           const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1906,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1914,1
    - Dst: CRYPTO_xts128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1915,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1915,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1917,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1920
      start: 1903
    functionDepth: 1
    functionLinenumber: 1903
    functionLinenumberEnd: 1920
    functionName: aes_xts_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - CRYPTO_xts128_encrypt
    - EVP_C_DATA
    - EVP_CIPHER_CTX_encrypting
    linkageType: ''
    returnType: int
    signature: "aes_xts_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1933,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1949,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1949,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1960,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1965,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1966,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1976,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1976,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1990,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1994,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:1994,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2000,1
    - Dst: CRYPTO_ccm128_tag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2002,1
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2012,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 71
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 2025
      start: 1931
    functionDepth: 1
    functionLinenumber: 1931
    functionLinenumberEnd: 2025
    functionName: aes_ccm_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_C_DATA
    - memcpy
    - EVP_CIPHER_CTX_encrypting
    - CRYPTO_ccm128_tag
    linkageType: ''
    returnType: int
    signature: aes_ccm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2030,1
    - Dst: HWAES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2037,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2037,1
    - Dst: CRYPTO_ccm128_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2040,1
    - Dst: vpaes_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2049,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2049,1
    - Dst: CRYPTO_ccm128_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2051,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2058,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2058,1
    - Dst: CRYPTO_ccm128_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2060,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2066,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2066,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 2070
      start: 2027
    functionDepth: 1
    functionLinenumber: 2027
    functionLinenumberEnd: 2070
    functionName: aes_ccm_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - HWAES_set_encrypt_key
    - vpaes_set_encrypt_key
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_C_DATA
    - EVP_CIPHER_CTX_key_length
    - memcpy
    - CRYPTO_ccm128_init
    - AES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "aes_ccm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                           const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2075,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2081,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2082,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2082,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2085,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2085,1
    - Dst: CRYPTO_ccm128_setiv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2089,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2089,1
    - Dst: CRYPTO_ccm128_aad
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2093,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2093,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2097,1
    - Dst: CRYPTO_ccm128_encrypt_ccm64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2098,1
    - Dst: CRYPTO_ccm128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2100,1
    - Dst: CRYPTO_ccm128_tag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2102,1
    - Dst: CRYPTO_ccm128_decrypt_ccm64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2106,1
    - Dst: CRYPTO_ccm128_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2108,1
    - Dst: CRYPTO_ccm128_tag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2110,1
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2111,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2115,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 2118
      start: 2072
    functionDepth: 2
    functionLinenumber: 2072
    functionLinenumberEnd: 2118
    functionName: aes_ccm_tls_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ccm128_setiv
    - EVP_CIPHER_CTX_buf_noconst
    - CRYPTO_ccm128_aad
    - CRYPTO_ccm128_decrypt_ccm64
    - EVP_CIPHER_CTX_iv_noconst
    - CRYPTO_memcmp
    - EVP_C_DATA
    - memcpy
    - OPENSSL_cleanse
    - EVP_CIPHER_CTX_encrypting
    - CRYPTO_ccm128_encrypt_ccm64
    - CRYPTO_ccm128_decrypt
    - CRYPTO_ccm128_encrypt
    - CRYPTO_ccm128_tag
    linkageType: ''
    returnType: int
    signature: "aes_ccm_tls_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                              const
      unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2123,1
    - Dst: aes_ccm_tls_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2130,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2135,1
    - Dst: CRYPTO_ccm128_setiv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2139,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2139,1
    - Dst: CRYPTO_ccm128_aad
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2148,1
    - Dst: CRYPTO_ccm128_setiv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2156,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2156,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2161,1
    - Dst: CRYPTO_ccm128_encrypt_ccm64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2162,1
    - Dst: CRYPTO_ccm128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2164,1
    - Dst: CRYPTO_ccm128_decrypt_ccm64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2170,1
    - Dst: CRYPTO_ccm128_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2172,1
    - Dst: CRYPTO_ccm128_tag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2174,1
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2175,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2175,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2181,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 2187
      start: 2120
    functionDepth: 3
    functionLinenumber: 2120
    functionLinenumberEnd: 2187
    functionName: aes_ccm_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ccm128_setiv
    - EVP_CIPHER_CTX_buf_noconst
    - CRYPTO_ccm128_aad
    - CRYPTO_ccm128_decrypt_ccm64
    - aes_ccm_tls_cipher
    - EVP_CIPHER_CTX_iv_noconst
    - CRYPTO_memcmp
    - EVP_C_DATA
    - OPENSSL_cleanse
    - EVP_CIPHER_CTX_encrypting
    - CRYPTO_ccm128_encrypt_ccm64
    - CRYPTO_ccm128_decrypt
    - CRYPTO_ccm128_encrypt
    - CRYPTO_ccm128_tag
    linkageType: ''
    returnType: int
    signature: "aes_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2210,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2214,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2215,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2215,1
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2218,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2218,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2224,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2224,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2224,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2225,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 2228
      start: 2207
    functionDepth: 1
    functionLinenumber: 2207
    functionLinenumberEnd: 2228
    functionName: aes_wrap_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_C_DATA
    - EVP_CIPHER_CTX_key_length
    - memcpy
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_iv_length
    - AES_set_decrypt_key
    - AES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "aes_wrap_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                            const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2233,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2244,1
    - Dst: is_partially_overlapping
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2249,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2250,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2254,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2270,1
    - Dst: CRYPTO_128_wrap_pad
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2271,1
    - Dst: CRYPTO_128_unwrap_pad
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2275,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2279,1
    - Dst: CRYPTO_128_wrap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2280,1
    - Dst: CRYPTO_128_unwrap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2283,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inlen
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 2287
      start: 2230
    functionDepth: 2
    functionLinenumber: 2230
    functionLinenumberEnd: 2287
    functionName: aes_wrap_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - CRYPTO_128_wrap_pad
    - CRYPTO_128_unwrap
    - EVP_C_DATA
    - CRYPTO_128_wrap
    - is_partially_overlapping
    - EVPerr
    - EVP_CIPHER_CTX_encrypting
    - CRYPTO_128_unwrap_pad
    linkageType: ''
    returnType: int
    signature: "aes_wrap_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2302
    functionDepth: 0
    functionLinenumber: 2302
    functionLinenumberEnd: 2305
    functionName: EVP_aes_128_wrap
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_aes_128_wrap(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2316
    functionDepth: 0
    functionLinenumber: 2316
    functionLinenumberEnd: 2319
    functionName: EVP_aes_192_wrap
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_aes_192_wrap(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2333
      start: 2330
    functionDepth: 0
    functionLinenumber: 2330
    functionLinenumberEnd: 2333
    functionName: EVP_aes_256_wrap
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_aes_256_wrap(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2347
      start: 2344
    functionDepth: 0
    functionLinenumber: 2344
    functionLinenumberEnd: 2347
    functionName: EVP_aes_128_wrap_pad
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_aes_128_wrap_pad(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2361
      start: 2358
    functionDepth: 0
    functionLinenumber: 2358
    functionLinenumberEnd: 2361
    functionName: EVP_aes_192_wrap_pad
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_aes_192_wrap_pad(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2375
      start: 2372
    functionDepth: 0
    functionLinenumber: 2372
    functionLinenumberEnd: 2375
    functionName: EVP_aes_256_wrap_pad
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_aes_256_wrap_pad(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2380,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2388,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2389,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2412,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2414,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2418,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2421,1
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2426,1
    - Dst: CRYPTO_ocb128_copy_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2427,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 2435
      start: 2378
    functionDepth: 1
    functionLinenumber: 2378
    functionLinenumberEnd: 2435
    functionName: aes_ocb_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_C_DATA
    - CRYPTO_ocb128_copy_ctx
    - memcpy
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_iv_length
    linkageType: ''
    returnType: int
    signature: aes_ocb_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2463,1
    - Dst: HWAES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2475,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2475,1
    - Dst: HWAES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2477,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2477,1
    - Dst: CRYPTO_ocb128_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2479,1
    - Dst: vpaes_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2491,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2491,1
    - Dst: vpaes_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2493,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2493,1
    - Dst: CRYPTO_ocb128_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2495,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2504,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2504,1
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2506,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2506,1
    - Dst: CRYPTO_ocb128_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2508,1
    - Dst: CRYPTO_ocb128_setiv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2523,1
    - Dst: CRYPTO_ocb128_setiv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2532,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2534,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 2538
      start: 2460
    functionDepth: 3
    functionLinenumber: 2460
    functionLinenumberEnd: 2538
    functionName: aes_ocb_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - HWAES_set_encrypt_key
    - CRYPTO_ocb128_init
    - vpaes_set_encrypt_key
    - EVP_C_DATA
    - CRYPTO_ocb128_setiv
    - HWAES_set_decrypt_key
    - vpaes_set_decrypt_key
    - EVP_CIPHER_CTX_key_length
    - memcpy
    - AES_set_decrypt_key
    - AES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "aes_ocb_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                           const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2547,1
    - Dst: is_partially_overlapping
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2572,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2573,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2587,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2591,1
    - Dst: CRYPTO_ocb128_aad
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2599,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2601,1
    - Dst: CRYPTO_ocb128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2602,1
    - Dst: CRYPTO_ocb128_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2606,1
    - Dst: CRYPTO_ocb128_aad
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2624,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2626,1
    - Dst: CRYPTO_ocb128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2627,1
    - Dst: CRYPTO_ocb128_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2631,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2641,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2652,1
    - Dst: CRYPTO_ocb128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2653,1
    - Dst: CRYPTO_ocb128_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2657,1
    - Dst: CRYPTO_ocb128_aad
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2665,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2671,1
    - Dst: CRYPTO_ocb128_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2674,1
    - Dst: CRYPTO_ocb128_tag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2681,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 94
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 2687
      start: 2540
    functionDepth: 4
    functionLinenumber: 2540
    functionLinenumberEnd: 2687
    functionName: aes_ocb_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ocb128_finish
    - CRYPTO_ocb128_tag
    - CRYPTO_ocb128_aad
    - EVP_C_DATA
    - is_partially_overlapping
    - EVPerr
    - CRYPTO_ocb128_encrypt
    - memcpy
    - EVP_CIPHER_CTX_encrypting
    - CRYPTO_ocb128_decrypt
    linkageType: ''
    returnType: int
    signature: "aes_ocb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2691,1
    - Dst: CRYPTO_ocb128_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c:2692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 2694
      start: 2689
    functionDepth: 2
    functionLinenumber: 2689
    functionLinenumberEnd: 2694
    functionName: aes_ocb_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    - CRYPTO_ocb128_cleanup
    linkageType: ''
    returnType: int
    signature: aes_ocb_cleanup(EVP_CIPHER_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:64,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:68,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:69,1
    - Dst: aesni_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:72,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:73,1
    - Dst: SHA256_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - inkey
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 83
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 83
    functionName: aesni_cbc_hmac_sha256_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached:
    - aesni_set_decrypt_key
    - data
    - EVP_CIPHER_CTX_key_length
    - aesni_set_encrypt_key
    - SHA256_Init
    linkageType: ''
    returnType: int
    signature: "aesni_cbc_hmac_sha256_init_key(EVP_CIPHER_CTX *ctx,\n                                          const
      unsigned char *inkey,\n                                          const unsigned
      char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:102,1
    - Dst: sha256_block_data_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:111,1
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - c
    - data
    - len
    argTypes:
    - SHA256_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 122
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 122
    functionName: sha256_update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached:
    - SHA256_Update
    - sha256_block_data_order
    linkageType: ''
    returnType: void
    signature: sha256_update(SHA256_CTX *c, const void *data, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:173,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:193,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:194,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:200,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:201,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:206,1
    - Dst: BSWAP8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:207,1
    - Dst: BSWAP8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:226,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:240,1
    - Dst: sha256_multi_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:249,1
    - Dst: sha256_multi_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:267,1
    - Dst: aesni_multi_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:268,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:277,1
    - Dst: sha256_multi_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:285,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:287,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:294,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:300,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:302,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:307,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:309,1
    - Dst: sha256_multi_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:317,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:319,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:322,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:324,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:326,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:328,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:330,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:332,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:334,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:336,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:339,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:341,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:343,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:345,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:347,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:349,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:351,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:353,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:355,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:358,1
    - Dst: sha256_multi_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:365,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:371,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:377,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:378,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:379,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:380,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:381,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:382,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:383,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:384,1
    - Dst: aesni_multi_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:408,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:410,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:411,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 169
    argCount: 5
    argNames:
    - key
    - out
    - inp
    - inp_len
    - n4x
    argTypes:
    - EVP_AES_HMAC_SHA256*
    - unsigned char*
    - unsigned char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 414
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 414
    functionName: tls1_1_multi_block_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 1
    functionsReached:
    - RAND_bytes
    - memset
    - BSWAP4
    - PUTU32
    - memcpy
    - aesni_multi_cbc_encrypt
    - BSWAP8
    - OPENSSL_cleanse
    - sha256_multi_block
    linkageType: ''
    returnType: size_t
    signature: "tls1_1_multi_block_encrypt(EVP_AES_HMAC_SHA256 *key,\n                                         unsigned
      char *out,\n                                         const unsigned char *inp,\n
      \                                        size_t inp_len, int n4x)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:421,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:437,1
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:462,1
    - Dst: aesni_cbc_sha256_enc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:464,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:465,1
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:479,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:483,1
    - Dst: SHA256_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:486,1
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:488,1
    - Dst: SHA256_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:489,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:496,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:497,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:499,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:500,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:512,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:513,1
    - Dst: constant_time_ge
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:541,1
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:553,1
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:560,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:569,1
    - Dst: sha256_block_data_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:600,1
    - Dst: sha256_block_data_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:619,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:630,1
    - Dst: sha256_block_data_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:634,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:646,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:647,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:648,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:649,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:650,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:651,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:652,1
    - Dst: BSWAP4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:653,1
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:665,1
    - Dst: SHA256_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:667,1
    - Dst: sha1_block_data_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:681,1
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:685,1
    - Dst: SHA256_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:686,1
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:731,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 199
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 736
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 736
    functionName: aesni_cbc_hmac_sha256_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached:
    - aesni_cbc_sha256_enc
    - constant_time_ge
    - EVP_CIPHER_CTX_iv_noconst
    - SHA256_Update
    - aesni_cbc_encrypt
    - data
    - SHA256_Final
    - BSWAP4
    - memset
    - sha1_block_data_order
    - memcpy
    - EVP_CIPHER_CTX_encrypting
    - sha256_block_data_order
    linkageType: ''
    returnType: int
    signature: "aesni_cbc_hmac_sha256_cipher(EVP_CIPHER_CTX *ctx,\n                                        unsigned
      char *out,\n                                        const unsigned char *in,
      size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:741,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:750,1
    - Dst: SHA256_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:756,1
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:757,1
    - Dst: SHA256_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:758,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:760,1
    - Dst: SHA256_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:765,1
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:766,1
    - Dst: SHA256_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:770,1
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:771,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:773,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:785,1
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:794,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:800,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:824,1
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:840,1
    - Dst: tls1_1_multi_block_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:867,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 88
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 876
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 876
    functionName: aesni_cbc_hmac_sha256_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached:
    - SHA256_Update
    - data
    - SHA256_Final
    - memset
    - tls1_1_multi_block_encrypt
    - memcpy
    - EVP_CIPHER_CTX_encrypting
    - OPENSSL_cleanse
    - SHA256_Init
    linkageType: ''
    returnType: int
    signature: "aesni_cbc_hmac_sha256_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,\n
      \                                     void *ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aesni_cbc_sha256_enc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:919,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 921
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 921
    functionName: EVP_aes_128_cbc_hmac_sha256
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached:
    - aesni_cbc_sha256_enc
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_aes_128_cbc_hmac_sha256(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aesni_cbc_sha256_enc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c:926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 928
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 928
    functionName: EVP_aes_256_cbc_hmac_sha256
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached:
    - aesni_cbc_sha256_enc
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_aes_256_cbc_hmac_sha256(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 933
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 933
    functionName: EVP_aes_128_cbc_hmac_sha256
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_aes_128_cbc_hmac_sha256(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 938
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 938
    functionName: EVP_aes_256_cbc_hmac_sha256
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_aes_256_cbc_hmac_sha256(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MD2_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md2.c:25,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md2.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md2.c
    functionUses: 280
    functionsReached:
    - MD2_Init
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: init(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MD2_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md2.c:30,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md2.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md2.c
    functionUses: 40
    functionsReached:
    - MD2_Update
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MD2_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md2.c:35,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md2.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md2.c
    functionUses: 13
    functionsReached:
    - EVP_MD_CTX_md_data
    - MD2_Final
    linkageType: ''
    returnType: int
    signature: final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: EVP_md2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: '*EVP_md2(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: EVP_desx_cbc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_xcbc_d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_desx_cbc(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_unchecked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_xcbc_d.c:57,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_xcbc_d.c:57,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_xcbc_d.c:58,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_xcbc_d.c:58,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_xcbc_d.c:59,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_xcbc_d.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: desx_cbc_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_xcbc_d.c
    functionUses: 0
    functionsReached:
    - memcpy
    - DES_set_key_unchecked
    - data
    linkageType: ''
    returnType: int
    signature: "desx_cbc_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                            const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DES_xcbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_xcbc_d.c:68,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_xcbc_d.c:68,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_xcbc_d.c:69,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_xcbc_d.c:70,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_xcbc_d.c:70,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_xcbc_d.c:71,1
    - Dst: DES_xcbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_xcbc_d.c:77,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_xcbc_d.c:77,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_xcbc_d.c:78,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_xcbc_d.c:79,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_xcbc_d.c:79,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_xcbc_d.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 82
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 82
    functionName: desx_cbc_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_xcbc_d.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - data
    - EVP_CIPHER_CTX_encrypting
    - DES_xcbc_encrypt
    linkageType: ''
    returnType: int
    signature: "desx_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:21,1
    - Dst: EVP_des_cfb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:21,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:22,1
    - Dst: EVP_des_cfb1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:22,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:23,1
    - Dst: EVP_des_cfb8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:23,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:24,1
    - Dst: EVP_des_ede_cfb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:24,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:25,1
    - Dst: EVP_des_ede3_cfb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:25,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:26,1
    - Dst: EVP_des_ede3_cfb1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:26,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:27,1
    - Dst: EVP_des_ede3_cfb8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:27,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:29,1
    - Dst: EVP_des_ofb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:29,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:30,1
    - Dst: EVP_des_ede_ofb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:30,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:31,1
    - Dst: EVP_des_ede3_ofb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:31,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:33,1
    - Dst: EVP_desx_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:33,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:34,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:35,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:37,1
    - Dst: EVP_des_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:37,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:38,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:39,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:40,1
    - Dst: EVP_des_ede_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:40,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:41,1
    - Dst: EVP_des_ede3_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:41,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:42,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:43,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:45,1
    - Dst: EVP_des_ecb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:45,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:46,1
    - Dst: EVP_des_ede
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:46,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:47,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:48,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:49,1
    - Dst: EVP_des_ede3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:49,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:50,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:51,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:52,1
    - Dst: EVP_des_ede3_wrap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:52,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:53,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:57,1
    - Dst: EVP_rc4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:57,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:58,1
    - Dst: EVP_rc4_40
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:58,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:60,1
    - Dst: EVP_rc4_hmac_md5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:60,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:65,1
    - Dst: EVP_idea_ecb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:65,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:66,1
    - Dst: EVP_idea_cfb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:66,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:67,1
    - Dst: EVP_idea_ofb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:67,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:68,1
    - Dst: EVP_idea_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:68,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:69,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:70,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:74,1
    - Dst: EVP_seed_ecb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:74,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:75,1
    - Dst: EVP_seed_cfb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:75,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:76,1
    - Dst: EVP_seed_ofb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:76,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:77,1
    - Dst: EVP_seed_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:77,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:78,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:79,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:83,1
    - Dst: EVP_rc2_ecb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:83,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:84,1
    - Dst: EVP_rc2_cfb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:84,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:85,1
    - Dst: EVP_rc2_ofb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:85,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:86,1
    - Dst: EVP_rc2_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:86,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:87,1
    - Dst: EVP_rc2_40_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:87,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:88,1
    - Dst: EVP_rc2_64_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:88,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:89,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:90,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:91,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:92,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:93,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:97,1
    - Dst: EVP_bf_ecb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:97,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:98,1
    - Dst: EVP_bf_cfb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:98,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:99,1
    - Dst: EVP_bf_ofb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:99,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:100,1
    - Dst: EVP_bf_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:100,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:101,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:102,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:103,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:107,1
    - Dst: EVP_cast5_ecb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:107,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:108,1
    - Dst: EVP_cast5_cfb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:108,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:109,1
    - Dst: EVP_cast5_ofb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:109,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:110,1
    - Dst: EVP_cast5_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:110,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:111,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:112,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:113,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:114,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:118,1
    - Dst: EVP_rc5_32_12_16_ecb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:118,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:119,1
    - Dst: EVP_rc5_32_12_16_cfb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:119,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:120,1
    - Dst: EVP_rc5_32_12_16_ofb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:120,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:121,1
    - Dst: EVP_rc5_32_12_16_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:121,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:122,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:123,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:126,1
    - Dst: EVP_aes_128_ecb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:126,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:127,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:127,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:128,1
    - Dst: EVP_aes_128_cfb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:128,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:129,1
    - Dst: EVP_aes_128_cfb1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:129,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:130,1
    - Dst: EVP_aes_128_cfb8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:130,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:131,1
    - Dst: EVP_aes_128_ofb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:131,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:132,1
    - Dst: EVP_aes_128_ctr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:132,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:133,1
    - Dst: EVP_aes_128_gcm
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:133,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:135,1
    - Dst: EVP_aes_128_ocb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:135,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:137,1
    - Dst: EVP_aes_128_xts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:137,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:138,1
    - Dst: EVP_aes_128_ccm
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:138,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:139,1
    - Dst: EVP_aes_128_wrap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:139,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:140,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:141,1
    - Dst: EVP_aes_128_wrap_pad
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:141,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:142,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:143,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:144,1
    - Dst: EVP_aes_192_ecb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:144,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:145,1
    - Dst: EVP_aes_192_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:145,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:146,1
    - Dst: EVP_aes_192_cfb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:146,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:147,1
    - Dst: EVP_aes_192_cfb1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:147,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:148,1
    - Dst: EVP_aes_192_cfb8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:148,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:149,1
    - Dst: EVP_aes_192_ofb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:149,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:150,1
    - Dst: EVP_aes_192_ctr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:150,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:151,1
    - Dst: EVP_aes_192_gcm
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:151,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:153,1
    - Dst: EVP_aes_192_ocb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:153,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:155,1
    - Dst: EVP_aes_192_ccm
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:155,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:156,1
    - Dst: EVP_aes_192_wrap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:156,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:157,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:158,1
    - Dst: EVP_aes_192_wrap_pad
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:158,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:159,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:160,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:161,1
    - Dst: EVP_aes_256_ecb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:161,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:162,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:162,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:163,1
    - Dst: EVP_aes_256_cfb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:163,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:164,1
    - Dst: EVP_aes_256_cfb1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:164,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:165,1
    - Dst: EVP_aes_256_cfb8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:165,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:166,1
    - Dst: EVP_aes_256_ofb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:166,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:167,1
    - Dst: EVP_aes_256_ctr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:167,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:168,1
    - Dst: EVP_aes_256_gcm
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:168,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:170,1
    - Dst: EVP_aes_256_ocb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:170,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:172,1
    - Dst: EVP_aes_256_xts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:172,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:173,1
    - Dst: EVP_aes_256_ccm
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:173,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:174,1
    - Dst: EVP_aes_256_wrap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:174,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:175,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:176,1
    - Dst: EVP_aes_256_wrap_pad
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:176,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:177,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:178,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:179,1
    - Dst: EVP_aes_128_cbc_hmac_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:179,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:180,1
    - Dst: EVP_aes_256_cbc_hmac_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:180,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:181,1
    - Dst: EVP_aes_128_cbc_hmac_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:181,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:182,1
    - Dst: EVP_aes_256_cbc_hmac_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:182,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:185,1
    - Dst: EVP_camellia_128_ecb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:185,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:186,1
    - Dst: EVP_camellia_128_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:186,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:187,1
    - Dst: EVP_camellia_128_cfb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:187,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:188,1
    - Dst: EVP_camellia_128_cfb1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:188,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:189,1
    - Dst: EVP_camellia_128_cfb8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:189,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:190,1
    - Dst: EVP_camellia_128_ofb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:190,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:191,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:192,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:193,1
    - Dst: EVP_camellia_192_ecb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:193,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:194,1
    - Dst: EVP_camellia_192_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:194,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:195,1
    - Dst: EVP_camellia_192_cfb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:195,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:196,1
    - Dst: EVP_camellia_192_cfb1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:196,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:197,1
    - Dst: EVP_camellia_192_cfb8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:197,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:198,1
    - Dst: EVP_camellia_192_ofb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:198,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:199,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:200,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:201,1
    - Dst: EVP_camellia_256_ecb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:201,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:202,1
    - Dst: EVP_camellia_256_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:202,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:203,1
    - Dst: EVP_camellia_256_cfb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:203,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:204,1
    - Dst: EVP_camellia_256_cfb1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:204,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:205,1
    - Dst: EVP_camellia_256_cfb8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:205,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:206,1
    - Dst: EVP_camellia_256_ofb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:206,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:207,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:208,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:209,1
    - Dst: EVP_camellia_128_ctr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:209,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:210,1
    - Dst: EVP_camellia_192_ctr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:210,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:211,1
    - Dst: EVP_camellia_256_ctr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:211,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:215,1
    - Dst: EVP_chacha20
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:215,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:217,1
    - Dst: EVP_chacha20_poly1305
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 157
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 220
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 220
    functionName: openssl_add_all_ciphers_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c
    functionUses: 1
    functionsReached:
    - EVP_idea_ecb
    - EVP_des_ede_ofb
    - EVP_camellia_192_cfb8
    - EVP_aes_128_ccm
    - EVP_camellia_128_ofb
    - EVP_aes_192_cfb
    - EVP_camellia_128_ecb
    - EVP_seed_ecb
    - EVP_camellia_256_ecb
    - EVP_camellia_256_cfb8
    - EVP_camellia_128_cfb1
    - EVP_bf_cbc
    - EVP_idea_cfb
    - EVP_aes_128_gcm
    - EVP_rc4_40
    - EVP_cast5_ofb
    - EVP_des_ede3_cfb1
    - EVP_aes_256_gcm
    - EVP_des_ede3_cfb
    - EVP_aes_192_gcm
    - EVP_add_cipher
    - EVP_aes_192_cbc
    - EVP_aes_128_cfb1
    - EVP_des_ede3_ofb
    - EVP_camellia_192_ecb
    - EVP_aes_128_cbc_hmac_sha1
    - EVP_des_ede3
    - EVP_aes_128_cfb8
    - EVP_aes_192_ctr
    - EVP_cast5_ecb
    - EVP_rc2_ecb
    - EVP_camellia_192_cfb1
    - EVP_aes_256_ofb
    - EVP_aes_256_cbc_hmac_sha256
    - EVP_aes_128_cfb
    - EVP_seed_ofb
    - EVP_cast5_cbc
    - EVP_des_ede3_cbc
    - EVP_camellia_128_ctr
    - EVP_aes_256_cfb
    - EVP_aes_256_cbc_hmac_sha1
    - EVP_idea_ofb
    - EVP_cast5_cfb
    - EVP_camellia_128_cfb8
    - EVP_rc4
    - EVP_aes_256_cbc
    - EVP_seed_cbc
    - EVP_rc2_ofb
    - EVP_chacha20_poly1305
    - EVP_aes_128_ocb
    - EVP_aes_256_cfb8
    - EVP_aes_192_ofb
    - EVP_rc2_cfb
    - EVP_aes_128_ofb
    - EVP_rc2_40_cbc
    - EVP_aes_256_xts
    - EVP_aes_192_wrap
    - EVP_des_ede
    - EVP_desx_cbc
    - EVP_aes_192_ocb
    - EVP_camellia_256_cfb
    - EVP_des_ede3_cfb8
    - EVP_aes_192_cfb1
    - EVP_rc2_cbc
    - EVP_camellia_256_cfb1
    - EVP_aes_256_ccm
    - EVP_des_ede_cfb
    - EVP_aes_128_ecb
    - EVP_aes_256_cfb1
    - EVP_aes_256_ocb
    - EVP_aes_128_cbc
    - EVP_camellia_192_ctr
    - EVP_rc5_32_12_16_cbc
    - EVP_aes_128_wrap
    - EVP_add_cipher_alias
    - EVP_rc4_hmac_md5
    - EVP_chacha20
    - EVP_bf_ofb
    - EVP_camellia_128_cbc
    - EVP_bf_ecb
    - EVP_rc2_64_cbc
    - EVP_idea_cbc
    - EVP_des_ede_cbc
    - EVP_camellia_128_cfb
    - EVP_des_cfb
    - EVP_camellia_256_ofb
    - EVP_aes_256_wrap
    - EVP_des_ede3_wrap
    - EVP_camellia_192_ofb
    - EVP_camellia_256_cbc
    - EVP_des_cfb8
    - EVP_aes_192_ccm
    - EVP_rc5_32_12_16_ofb
    - EVP_aes_256_wrap_pad
    - EVP_aes_128_xts
    - EVP_aes_128_ctr
    - EVP_aes_192_ecb
    - EVP_camellia_256_ctr
    - EVP_des_cbc
    - EVP_camellia_192_cfb
    - EVP_des_ofb
    - EVP_seed_cfb
    - EVP_bf_cfb
    - EVP_aes_128_cbc_hmac_sha256
    - EVP_aes_192_wrap_pad
    - EVP_des_ecb
    - EVP_rc5_32_12_16_cfb
    - EVP_rc5_32_12_16_ecb
    - EVP_des_cfb1
    - EVP_aes_256_ecb
    - EVP_camellia_192_cbc
    - EVP_aes_256_ctr
    - EVP_aes_192_cfb8
    - EVP_aes_128_wrap_pad
    linkageType: ''
    returnType: void
    signature: openssl_add_all_ciphers_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: EVP_rc4
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_rc4(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: EVP_rc4_40
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_rc4_40(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RC4_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4.c:72,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4.c:72,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: rc4_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_key_length
    - data
    - RC4_set_key
    linkageType: ''
    returnType: int
    signature: "rc4_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n                        const
      unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RC4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4.c:79,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: rc4_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4.c
    functionUses: 0
    functionsReached:
    - RC4
    - data
    linkageType: ''
    returnType: int
    signature: "rc4_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                      const
      unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_add_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:20,1
    - Dst: EVP_md4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:20,1
    - Dst: EVP_add_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:23,1
    - Dst: EVP_md5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:23,1
    - Dst: EVP_add_digest_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:24,1
    - Dst: EVP_add_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:25,1
    - Dst: EVP_md5_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:25,1
    - Dst: EVP_add_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:27,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:27,1
    - Dst: EVP_add_digest_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:28,1
    - Dst: EVP_add_digest_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:29,1
    - Dst: EVP_add_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:31,1
    - Dst: EVP_mdc2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:31,1
    - Dst: EVP_add_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:34,1
    - Dst: EVP_ripemd160
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:34,1
    - Dst: EVP_add_digest_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:35,1
    - Dst: EVP_add_digest_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:36,1
    - Dst: EVP_add_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:38,1
    - Dst: EVP_sha224
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:38,1
    - Dst: EVP_add_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:39,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:39,1
    - Dst: EVP_add_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:40,1
    - Dst: EVP_sha384
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:40,1
    - Dst: EVP_add_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:41,1
    - Dst: EVP_sha512
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:41,1
    - Dst: EVP_add_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:43,1
    - Dst: EVP_whirlpool
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:43,1
    - Dst: EVP_add_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:46,1
    - Dst: EVP_blake2b512
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:46,1
    - Dst: EVP_add_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:47,1
    - Dst: EVP_blake2s256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 49
    functionName: openssl_add_all_digests_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c
    functionUses: 1
    functionsReached:
    - EVP_sha512
    - EVP_blake2s256
    - EVP_sha1
    - EVP_sha384
    - EVP_add_digest
    - EVP_blake2b512
    - EVP_sha256
    - EVP_whirlpool
    - EVP_ripemd160
    - EVP_mdc2
    - EVP_md4
    - EVP_sha224
    - EVP_add_digest_alias
    - EVP_md5_sha1
    - EVP_md5
    linkageType: ''
    returnType: void
    signature: openssl_add_all_digests_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:28,1
    - Dst: MD5_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:29,1
    - Dst: SHA1_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c
    functionUses: 280
    functionsReached:
    - MD5_Init
    - EVP_MD_CTX_md_data
    - SHA1_Init
    linkageType: ''
    returnType: int
    signature: init(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:36,1
    - Dst: MD5_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:37,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c
    functionUses: 40
    functionsReached:
    - MD5_Update
    - EVP_MD_CTX_md_data
    - SHA1_Update
    linkageType: ''
    returnType: int
    signature: update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:44,1
    - Dst: MD5_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:45,1
    - Dst: SHA1_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c
    functionUses: 13
    functionsReached:
    - SHA1_Final
    - EVP_MD_CTX_md_data
    - MD5_Final
    linkageType: ''
    returnType: int
    signature: final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:63,1
    - Dst: update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:73,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:77,1
    - Dst: MD5_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:79,1
    - Dst: MD5_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:82,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:85,1
    - Dst: SHA1_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:88,1
    - Dst: init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:93,1
    - Dst: update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:96,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:100,1
    - Dst: MD5_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:102,1
    - Dst: MD5_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:105,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:108,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:111,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:116,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c:117,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 4
    argNames:
    - ctx
    - cmd
    - mslen
    - ms
    argTypes:
    - EVP_MD_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 121
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 121
    functionName: ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c
    functionUses: 33
    functionsReached:
    - MD5_Update
    - MD5_Final
    - update
    - memset
    - EVP_MD_CTX_md_data
    - SHA1_Update
    - init
    - OPENSSL_cleanse
    - SHA1_Final
    linkageType: ''
    returnType: int
    signature: ctrl(EVP_MD_CTX *ctx, int cmd, int mslen, void *ms)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: EVP_md5_sha1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: '*EVP_md5_sha1(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAST_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_cast.c:36,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_cast.c:36,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_cast.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: cast_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_cast.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_key_length
    - CAST_set_key
    - data
    linkageType: ''
    returnType: int
    signature: "cast_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n                         const
      unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned char
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: conv_ascii2bin
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: conv_ascii2bin(unsigned char a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned char
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: conv_ascii2bin
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: conv_ascii2bin(unsigned char a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: EVP_ENCODE_CTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c
    functionUses: 2
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EVP_ENCODE_CTX
    signature: '*EVP_ENCODE_CTX_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_ENCODE_CTX*
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: EVP_ENCODE_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: EVP_ENCODE_CTX_free(EVP_ENCODE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dctx
    - sctx
    argTypes:
    - EVP_ENCODE_CTX*
    - EVP_ENCODE_CTX*
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: EVP_ENCODE_CTX_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: EVP_ENCODE_CTX_copy(EVP_ENCODE_CTX *dctx, EVP_ENCODE_CTX *sctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_ENCODE_CTX*
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: EVP_ENCODE_CTX_num
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_ENCODE_CTX_num(EVP_ENCODE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_ENCODE_CTX*
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: EVP_EncodeInit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EVP_EncodeInit(EVP_ENCODE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:134,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:136,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:142,1
    - Dst: EVP_EncodeBlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:145,1
    - Dst: EVP_EncodeBlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:153,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:167,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 5
    argNames:
    - ctx
    - out
    - outl
    - in
    - inl
    argTypes:
    - EVP_ENCODE_CTX*
    - unsigned char*
    - int*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 172
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 172
    functionName: EVP_EncodeUpdate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c
    functionUses: 1
    functionsReached:
    - EVP_EncodeBlock
    - memcpy
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: "EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl,\n
      \                     const unsigned char *in, int inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncodeBlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_ENCODE_CTX*
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 185
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 185
    functionName: EVP_EncodeFinal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c
    functionUses: 1
    functionsReached:
    - EVP_EncodeBlock
    linkageType: ''
    returnType: void
    signature: EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: conv_bin2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:196,1
    - Dst: conv_bin2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:197,1
    - Dst: conv_bin2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:198,1
    - Dst: conv_bin2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:199,1
    - Dst: conv_bin2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:205,1
    - Dst: conv_bin2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:206,1
    - Dst: conv_bin2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - t
    - f
    - dlen
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 216
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 216
    functionName: EVP_EncodeBlock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c
    functionUses: 3
    functionsReached:
    - conv_bin2ascii
    linkageType: ''
    returnType: int
    signature: EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int dlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_ENCODE_CTX*
    constantsTouched: []
    func_position:
      end: 225
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 225
    functionName: EVP_DecodeInit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EVP_DecodeInit(EVP_ENCODE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: conv_ascii2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:270,1
    - Dst: B64_BASE64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:278,1
    - Dst: B64_BASE64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:295,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:305,1
    - Dst: EVP_DecodeBlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:310,1
    - Dst: EVP_DecodeBlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:329,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 85
    argCount: 5
    argNames:
    - ctx
    - out
    - outl
    - in
    - inl
    argTypes:
    - EVP_ENCODE_CTX*
    - unsigned char*
    - int*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 349
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 349
    functionName: EVP_DecodeUpdate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c
    functionUses: 1
    functionsReached:
    - conv_ascii2bin
    - EVP_DecodeBlock
    - B64_BASE64
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: "EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl,\n
      \                    const unsigned char *in, int inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: conv_ascii2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:357,1
    - Dst: B64_NOT_BASE64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:366,1
    - Dst: conv_ascii2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:366,1
    - Dst: conv_ascii2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:373,1
    - Dst: conv_ascii2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:374,1
    - Dst: conv_ascii2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:375,1
    - Dst: conv_ascii2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:376,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - t
    - f
    - n
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 388
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 388
    functionName: EVP_DecodeBlock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c
    functionUses: 1
    functionsReached:
    - conv_ascii2bin
    - B64_NOT_BASE64
    linkageType: ''
    returnType: int
    signature: EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DecodeBlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c:396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_ENCODE_CTX*
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 404
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 404
    functionName: EVP_DecodeFinal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c
    functionUses: 1
    functionsReached:
    - EVP_DecodeBlock
    linkageType: ''
    returnType: int
    signature: EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_cnf.c:24,1
    - Dst: CONF_imodule_get_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_cnf.c:27,1
    - Dst: NCONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_cnf.c:28,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_cnf.c:29,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_cnf.c:32,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_cnf.c:33,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_cnf.c:34,1
    - Dst: X509V3_get_value_bool
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_cnf.c:36,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_cnf.c:37,1
    - Dst: FIPS_mode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_cnf.c:42,1
    - Dst: FIPS_mode_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_cnf.c:42,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_cnf.c:43,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_cnf.c:48,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_cnf.c:53,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_cnf.c:54,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - md
    - cnf
    argTypes:
    - CONF_IMODULE*
    - CONF*
    constantsTouched: []
    func_position:
      end: 60
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 60
    functionName: alg_module_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_cnf.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - FIPS_mode_set
    - strcmp
    - STACK_OF
    - sk_CONF_VALUE_num
    - EVPerr
    - CONF_imodule_get_value
    - ERR_add_error_data
    - NCONF_get_section
    - FIPS_mode
    - X509V3_get_value_bool
    linkageType: ''
    returnType: int
    signature: alg_module_init(CONF_IMODULE *md, const CONF *cnf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONF_module_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_cnf.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: EVP_add_alg_module
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_cnf.c
    functionUses: 0
    functionsReached:
    - CONF_module_add
    linkageType: ''
    returnType: void
    signature: EVP_add_alg_module(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:21,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c
    functionUses: 281
    functionsReached:
    - EVP_MD_CTX_md_data
    - SHA1_Init
    linkageType: ''
    returnType: int
    signature: init(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:26,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c
    functionUses: 41
    functionsReached:
    - SHA1_Update
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:31,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c
    functionUses: 13
    functionsReached:
    - SHA1_Final
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:47,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:57,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:61,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:63,1
    - Dst: SHA1_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:66,1
    - Dst: SHA1_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:71,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:74,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:78,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:80,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:83,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:87,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - ctx
    - cmd
    - mslen
    - ms
    argTypes:
    - EVP_MD_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 91
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 91
    functionName: ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c
    functionUses: 33
    functionsReached:
    - SHA1_Init
    - memset
    - EVP_MD_CTX_md_data
    - SHA1_Update
    - OPENSSL_cleanse
    - SHA1_Final
    linkageType: ''
    returnType: int
    signature: ctrl(EVP_MD_CTX *ctx, int cmd, int mslen, void *ms)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: EVP_sha1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: '*EVP_sha1(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA224_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:115,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: init224
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_md_data
    - SHA224_Init
    linkageType: ''
    returnType: int
    signature: init224(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:120,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: init256
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_md_data
    - SHA256_Init
    linkageType: ''
    returnType: int
    signature: init256(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:130,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: update256
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c
    functionUses: 0
    functionsReached:
    - SHA256_Update
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: update256(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:135,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: final256
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_md_data
    - SHA256_Final
    linkageType: ''
    returnType: int
    signature: final256(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: EVP_sha224
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: '*EVP_sha224(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: EVP_sha256
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: '*EVP_sha256(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA384_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:178,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: init384
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c
    functionUses: 0
    functionsReached:
    - SHA384_Init
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: init384(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:183,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: init512
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c
    functionUses: 0
    functionsReached:
    - SHA512_Init
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: init512(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:189,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: update512
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_md_data
    - SHA512_Update
    linkageType: ''
    returnType: int
    signature: update512(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:194,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: final512
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c
    functionUses: 0
    functionsReached:
    - SHA512_Final
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: final512(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: EVP_sha384
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: '*EVP_sha384(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: EVP_sha512
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: '*EVP_sha512(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_null.c
    functionUses: 281
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: init(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_null.c
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_null.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: EVP_md_null
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: '*EVP_md_null(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - prompt
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: EVP_set_pw_prompt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c
    functionUses: 1
    functionsReached:
    - strncpy
    linkageType: ''
    returnType: void
    signature: EVP_set_pw_prompt(const char *prompt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: EVP_get_pw_prompt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*EVP_get_pw_prompt(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_read_pw_string_min
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - len
    - prompt
    - verify
    argTypes:
    - char*
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: EVP_read_pw_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c
    functionUses: 0
    functionsReached:
    - EVP_read_pw_string_min
    linkageType: ''
    returnType: int
    signature: EVP_read_pw_string(char *buf, int len, const char *prompt, int verify)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UI_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:58,1
    - Dst: UI_add_input_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:61,1
    - Dst: UI_add_verify_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:64,1
    - Dst: UI_process
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:67,1
    - Dst: UI_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:68,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - buf
    - min
    - len
    - prompt
    - verify
    argTypes:
    - char*
    - int
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 71
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 71
    functionName: EVP_read_pw_string_min
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c
    functionUses: 2
    functionsReached:
    - UI_add_input_string
    - UI_free
    - UI_add_verify_string
    - UI_process
    - OPENSSL_cleanse
    - UI_new
    linkageType: ''
    returnType: int
    signature: "EVP_read_pw_string_min(char *buf, int min, int len, const char *prompt,\n
      \                          int verify)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:84,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:85,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:86,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:87,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:92,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:96,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:99,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:101,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:104,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:106,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:110,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:112,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:114,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:145,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:147,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c:148,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 74
    argCount: 8
    argNames:
    - type
    - md
    - salt
    - data
    - datal
    - count
    - key
    - iv
    argTypes:
    - EVP_CIPHER*
    - EVP_MD*
    - unsigned char*
    - unsigned char*
    - int
    - int
    - unsigned char*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 150
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 150
    functionName: EVP_BytesToKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c
    functionUses: 2
    functionsReached:
    - EVP_CIPHER_key_length
    - EVP_DigestFinal_ex
    - OPENSSL_assert
    - EVP_DigestUpdate
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - OPENSSL_cleanse
    - EVP_CIPHER_iv_length
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: "EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md,\n                   const
      unsigned char *salt, const unsigned char *data,\n                   int datal,
      int count, unsigned char *key,\n                   unsigned char *iv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:24,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:24,1
    - Dst: OBJ_NAME_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:28,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 31
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 31
    functionName: EVP_add_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c
    functionUses: 1
    functionsReached:
    - OBJ_NAME_add
    - OBJ_nid2ln
    - OBJ_nid2sn
    linkageType: ''
    returnType: int
    signature: EVP_add_cipher(const EVP_CIPHER *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:38,1
    - Dst: OBJ_NAME_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:39,1
    - Dst: OBJ_NAME_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:42,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:42,1
    - Dst: OBJ_NAME_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:48,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:48,1
    - Dst: OBJ_NAME_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:52,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:52,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 56
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 56
    functionName: EVP_add_digest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c
    functionUses: 1
    functionsReached:
    - OBJ_nid2sn
    - OBJ_NAME_add
    - OBJ_nid2ln
    linkageType: ''
    returnType: int
    signature: EVP_add_digest(const EVP_MD *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:62,1
    - Dst: OBJ_NAME_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: EVP_get_cipherbyname
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c
    functionUses: 2
    functionsReached:
    - OBJ_NAME_get
    - OPENSSL_init_crypto
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_get_cipherbyname(const char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:73,1
    - Dst: OBJ_NAME_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: EVP_get_digestbyname
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c
    functionUses: 2
    functionsReached:
    - OBJ_NAME_get
    - OPENSSL_init_crypto
    linkageType: ''
    returnType: EVP_MD
    signature: '*EVP_get_digestbyname(const char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:82,1
    - Dst: OBJ_NAME_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:83,1
    - Dst: OBJ_NAME_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:89,1
    - Dst: EVP_PBE_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:91,1
    - Dst: OBJ_sigid_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 93
    functionName: evp_cleanup_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c
    functionUses: 1
    functionsReached:
    - OBJ_NAME_cleanup
    - EVP_PBE_cleanup
    - OBJ_sigid_free
    linkageType: ''
    returnType: void
    signature: evp_cleanup_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct doall_cipher*::fn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:105,1
    - Dst: struct doall_cipher*::fn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - nm
    - arg
    argTypes:
    - OBJ_NAME*
    - void*
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: do_all_cipher_fn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c
    functionUses: 0
    functionsReached:
    - struct doall_cipher*::fn
    linkageType: ''
    returnType: void
    signature: do_all_cipher_fn(const OBJ_NAME *nm, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:117,1
    - Dst: OBJ_NAME_do_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 122
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 122
    functionName: EVP_CIPHER_do_all
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c
    functionUses: 0
    functionsReached:
    - OBJ_NAME_do_all
    - OPENSSL_init_crypto
    linkageType: ''
    returnType: void
    signature: "EVP_CIPHER_do_all(void (*fn) (const EVP_CIPHER *ciph,\n                                   const
      char *from, const char *to, void *x),\n                       void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:131,1
    - Dst: OBJ_NAME_do_all_sorted
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 136
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 136
    functionName: EVP_CIPHER_do_all_sorted
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c
    functionUses: 0
    functionsReached:
    - OBJ_NAME_do_all_sorted
    - OPENSSL_init_crypto
    linkageType: ''
    returnType: void
    signature: "EVP_CIPHER_do_all_sorted(void (*fn) (const EVP_CIPHER *ciph,\n                                          const
      char *from, const char *to,\n                                          void
      *x), void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct doall_md*::fn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:148,1
    - Dst: struct doall_md*::fn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - nm
    - arg
    argTypes:
    - OBJ_NAME*
    - void*
    constantsTouched: []
    func_position:
      end: 151
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 151
    functionName: do_all_md_fn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c
    functionUses: 0
    functionsReached:
    - struct doall_md*::fn
    linkageType: ''
    returnType: void
    signature: do_all_md_fn(const OBJ_NAME *nm, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:160,1
    - Dst: OBJ_NAME_do_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 165
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 165
    functionName: EVP_MD_do_all
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c
    functionUses: 0
    functionsReached:
    - OBJ_NAME_do_all
    - OPENSSL_init_crypto
    linkageType: ''
    returnType: void
    signature: "EVP_MD_do_all(void (*fn) (const EVP_MD *md,\n                               const
      char *from, const char *to, void *x),\n                   void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:173,1
    - Dst: OBJ_NAME_do_all_sorted
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 178
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 178
    functionName: EVP_MD_do_all_sorted
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c
    functionUses: 0
    functionsReached:
    - OBJ_NAME_do_all_sorted
    - OPENSSL_init_crypto
    linkageType: ''
    returnType: void
    signature: "EVP_MD_do_all_sorted(void (*fn) (const EVP_MD *md,\n                                      const
      char *from, const char *to,\n                                      void *x),
      void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:41,1
    - Dst: RC4_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:43,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:43,1
    - Dst: MD5_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - inkey
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 52
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 52
    functionName: rc4_hmac_md5_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c
    functionUses: 0
    functionsReached:
    - MD5_Init
    - EVP_CIPHER_CTX_key_length
    - data
    - RC4_set_key
    linkageType: ''
    returnType: int
    signature: "rc4_hmac_md5_init_key(EVP_CIPHER_CTX *ctx,\n                                 const
      unsigned char *inkey,\n                                 const unsigned char
      *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:68,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:81,1
    - Dst: MD5_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:91,1
    - Dst: RC4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:92,1
    - Dst: rc4_md5_enc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:94,1
    - Dst: MD5_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:108,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:112,1
    - Dst: MD5_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:115,1
    - Dst: MD5_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:117,1
    - Dst: MD5_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:118,1
    - Dst: RC4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:120,1
    - Dst: RC4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:122,1
    - Dst: RC4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:135,1
    - Dst: MD5_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:136,1
    - Dst: rc4_md5_enc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:138,1
    - Dst: RC4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:154,1
    - Dst: MD5_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:156,1
    - Dst: MD5_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:159,1
    - Dst: MD5_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:161,1
    - Dst: MD5_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:162,1
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:164,1
    - Dst: MD5_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:167,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 70
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 174
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 174
    functionName: rc4_hmac_md5_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c
    functionUses: 0
    functionsReached:
    - MD5_Update
    - MD5_Final
    - CRYPTO_memcmp
    - data
    - memcpy
    - EVP_CIPHER_CTX_encrypting
    - rc4_md5_enc
    - RC4
    linkageType: ''
    returnType: int
    signature: "rc4_hmac_md5_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                               const
      unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:179,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:187,1
    - Dst: MD5_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:190,1
    - Dst: MD5_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:191,1
    - Dst: MD5_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:192,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:194,1
    - Dst: MD5_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:199,1
    - Dst: MD5_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:200,1
    - Dst: MD5_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:204,1
    - Dst: MD5_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:205,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:207,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:221,1
    - Dst: MD5_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c:230,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 237
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 237
    functionName: rc4_hmac_md5_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c
    functionUses: 0
    functionsReached:
    - MD5_Update
    - MD5_Init
    - MD5_Final
    - data
    - memset
    - memcpy
    - EVP_CIPHER_CTX_encrypting
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "rc4_hmac_md5_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,\n                             void
      *ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: EVP_rc4_hmac_md5
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_rc4_hmac_md5(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:24,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:26,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:27,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:28,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:29,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:30,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:31,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:32,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:33,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:34,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:35,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:36,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:37,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:38,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:39,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:40,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:41,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:42,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:43,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:44,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:45,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:46,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:47,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:48,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:49,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:50,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:51,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:52,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:53,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:54,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:55,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:56,1
    - Dst: R
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:57,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 39
    argCount: 1
    argNames:
    - inout
    argTypes:
    - uint32_t[]
    constantsTouched: []
    func_position:
      end: 62
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 62
    functionName: salsa208_word_specification
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c
    functionUses: 0
    functionsReached:
    - R
    - OPENSSL_cleanse
    - memcpy
    linkageType: ''
    returnType: void
    signature: salsa208_word_specification(uint32_t inout[16])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:69,1
    - Dst: salsa208_word_specification
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:74,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:75,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - B_
    - B
    - r
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 78
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 78
    functionName: scryptBlockMix
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c
    functionUses: 0
    functionsReached:
    - salsa208_word_specification
    - memcpy
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: scryptBlockMix(uint32_t *B_, uint32_t *B, uint64_t r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scryptBlockMix
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:96,1
    - Dst: scryptBlockMix
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:98,1
    - Dst: scryptBlockMix
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 6
    argNames:
    - B
    - r
    - N
    - X
    - T
    - V
    argTypes:
    - unsigned char*
    - uint64_t
    - uint64_t
    - uint32_t*
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 116
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 116
    functionName: scryptROMix
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c
    functionUses: 0
    functionsReached:
    - scryptBlockMix
    linkageType: ''
    returnType: void
    signature: "scryptROMix(unsigned char *B, uint64_t r, uint64_t N,\n                        uint32_t
      *X, uint32_t *T, uint32_t *V)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:219,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:227,1
    - Dst: PKCS5_PBKDF2_HMAC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:233,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:233,1
    - Dst: scryptROMix
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:238,1
    - Dst: PKCS5_PBKDF2_HMAC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:240,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:240,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c:245,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 10
    argNames:
    - pass
    - passlen
    - salt
    - saltlen
    - N
    - r
    - p
    - maxmem
    - key
    - keylen
    argTypes:
    - char*
    - size_t
    - unsigned char*
    - size_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 247
      start: 158
    functionDepth: 4
    functionLinenumber: 158
    functionLinenumberEnd: 247
    functionName: EVP_PBE_scrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c
    functionUses: 0
    functionsReached:
    - PKCS5_PBKDF2_HMAC
    - EVP_sha256
    - EVPerr
    - OPENSSL_clear_free
    - OPENSSL_malloc
    - scryptROMix
    linkageType: ''
    returnType: int
    signature: "EVP_PBE_scrypt(const char *pass, size_t passlen,\n                   const
      unsigned char *salt, size_t saltlen,\n                   uint64_t N, uint64_t
      r, uint64_t p, uint64_t maxmem,\n                   unsigned char *key, size_t
      keylen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: EVP_enc_null
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_enc_null(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: null_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "null_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n                         const
      unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_null.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: null_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_null.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "null_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                       const
      unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:80,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:82,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:83,1
    - Dst: cmll_t4_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:85,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:131,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 136
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 136
    functionName: cmll_t4_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_mode
    - EVPerr
    - EVP_CIPHER_CTX_key_length
    - cmll_t4_set_key
    - EVP_CIPHER_CTX_get_cipher_data
    linkageType: ''
    returnType: int
    signature: "cmll_t4_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                           const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:217,1
    - Dst: Camellia_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:219,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:219,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:221,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 238
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 238
    functionName: camellia_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_mode
    - EVP_C_DATA
    - EVPerr
    - Camellia_set_key
    - EVP_CIPHER_CTX_key_length
    linkageType: ''
    returnType: int
    signature: "camellia_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                            const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:243,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:247,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:248,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:249,1
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:250,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:251,1
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:253,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 257
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 257
    functionName: camellia_cbc_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_C_DATA
    - CRYPTO_cbc128_encrypt
    - EVP_CIPHER_CTX_encrypting
    - CRYPTO_cbc128_decrypt
    linkageType: ''
    returnType: int
    signature: "camellia_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                               const
      unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 273
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 273
    functionName: camellia_ecb_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    linkageType: ''
    returnType: int
    signature: "camellia_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                               const
      unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:278,1
    - Dst: CRYPTO_ofb128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:281,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:282,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 285
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 285
    functionName: camellia_ofb_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_C_DATA
    - EVP_CIPHER_CTX_set_num
    - CRYPTO_ofb128_encrypt
    linkageType: ''
    returnType: int
    signature: "camellia_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                               const
      unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:290,1
    - Dst: CRYPTO_cfb128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:293,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:294,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:294,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 297
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 297
    functionName: camellia_cfb_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_encrypt
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_C_DATA
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_set_num
    linkageType: ''
    returnType: int
    signature: "camellia_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                               const
      unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:302,1
    - Dst: CRYPTO_cfb128_8_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:305,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:306,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:306,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 309
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 309
    functionName: camellia_cfb8_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - CRYPTO_cfb128_8_encrypt
    - EVP_C_DATA
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_set_num
    linkageType: ''
    returnType: int
    signature: "camellia_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                                const
      unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:314,1
    - Dst: EVP_CIPHER_CTX_test_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:316,1
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:318,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:319,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:319,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:320,1
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:326,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:327,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:327,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:329,1
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:333,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:334,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:334,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 339
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 339
    functionName: camellia_cfb1_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_1_encrypt
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_test_flags
    - EVP_C_DATA
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_set_num
    linkageType: ''
    returnType: int
    signature: "camellia_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                                const
      unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:345,1
    - Dst: CRYPTO_ctr128_encrypt_ctr32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:348,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:349,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:350,1
    - Dst: CRYPTO_ctr128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:353,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:354,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:355,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 359
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 359
    functionName: camellia_ctr_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_C_DATA
    - CRYPTO_ctr128_encrypt_ctr32
    - EVP_CIPHER_CTX_set_num
    - CRYPTO_ctr128_encrypt
    linkageType: ''
    returnType: int
    signature: "camellia_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                               const
      unsigned char *in, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WHIRLPOOL_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_wp.c:23,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_wp.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_wp.c
    functionUses: 281
    functionsReached:
    - EVP_MD_CTX_md_data
    - WHIRLPOOL_Init
    linkageType: ''
    returnType: int
    signature: init(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WHIRLPOOL_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_wp.c:28,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_wp.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_wp.c
    functionUses: 41
    functionsReached:
    - WHIRLPOOL_Update
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WHIRLPOOL_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_wp.c:33,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_wp.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_wp.c
    functionUses: 13
    functionsReached:
    - EVP_MD_CTX_md_data
    - WHIRLPOOL_Final
    linkageType: ''
    returnType: int
    signature: final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: EVP_whirlpool
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_wp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: '*EVP_whirlpool(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5.c:24,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5.c
    functionUses: 281
    functionsReached:
    - MD5_Init
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: init(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5.c:29,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5.c
    functionUses: 41
    functionsReached:
    - MD5_Update
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5.c:34,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5.c
    functionUses: 13
    functionsReached:
    - EVP_MD_CTX_md_data
    - MD5_Final
    linkageType: ''
    returnType: int
    signature: final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: EVP_md5
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: '*EVP_md5(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:39,1
    - Dst: EVP_PKEY_CTX*::pmeth::sign_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 50
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 50
    functionName: EVP_PKEY_sign_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::sign_init
    - EVPerr
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:57,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:62,1
    - Dst: M_check_autoarg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:65,1
    - Dst: EVP_PKEY_CTX*::pmeth::sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 67
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 67
    functionName: EVP_PKEY_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c
    functionUses: 2
    functionsReached:
    - M_check_autoarg
    - EVP_PKEY_CTX*::pmeth::sign
    - EVPerr
    linkageType: ''
    returnType: int
    signature: "EVP_PKEY_sign(EVP_PKEY_CTX *ctx,\n                  unsigned char
      *sig, size_t *siglen,\n                  const unsigned char *tbs, size_t tbslen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:73,1
    - Dst: EVP_PKEY_CTX*::pmeth::verify_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 84
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 84
    functionName: EVP_PKEY_verify_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::verify_init
    - EVPerr
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:91,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:96,1
    - Dst: EVP_PKEY_CTX*::pmeth::verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: EVP_PKEY_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::verify
    - EVPerr
    linkageType: ''
    returnType: int
    signature: "EVP_PKEY_verify(EVP_PKEY_CTX *ctx,\n                    const unsigned
      char *sig, size_t siglen,\n                    const unsigned char *tbs, size_t
      tbslen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:106,1
    - Dst: EVP_PKEY_CTX*::pmeth::verify_recover_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 117
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 117
    functionName: EVP_PKEY_verify_recover_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::verify_recover_init
    - EVPerr
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:124,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:129,1
    - Dst: M_check_autoarg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:132,1
    - Dst: EVP_PKEY_CTX*::pmeth::verify_recover
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - rout
    - routlen
    - sig
    - siglen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 134
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 134
    functionName: EVP_PKEY_verify_recover
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::verify_recover
    - M_check_autoarg
    - EVPerr
    linkageType: ''
    returnType: int
    signature: "EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx,\n                            unsigned
      char *rout, size_t *routlen,\n                            const unsigned char
      *sig, size_t siglen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:140,1
    - Dst: EVP_PKEY_CTX*::pmeth::encrypt_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:147,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 151
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 151
    functionName: EVP_PKEY_encrypt_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::encrypt_init
    - EVPerr
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:158,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:163,1
    - Dst: M_check_autoarg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:166,1
    - Dst: EVP_PKEY_CTX*::pmeth::encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 168
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 168
    functionName: EVP_PKEY_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c
    functionUses: 0
    functionsReached:
    - M_check_autoarg
    - EVP_PKEY_CTX*::pmeth::encrypt
    - EVPerr
    linkageType: ''
    returnType: int
    signature: "EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx,\n                     unsigned
      char *out, size_t *outlen,\n                     const unsigned char *in, size_t
      inlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:174,1
    - Dst: EVP_PKEY_CTX*::pmeth::decrypt_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:181,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 185
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 185
    functionName: EVP_PKEY_decrypt_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::decrypt_init
    - EVPerr
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:192,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:197,1
    - Dst: M_check_autoarg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:200,1
    - Dst: EVP_PKEY_CTX*::pmeth::decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:201,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 202
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 202
    functionName: EVP_PKEY_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c
    functionUses: 0
    functionsReached:
    - M_check_autoarg
    - EVP_PKEY_CTX*::pmeth::decrypt
    - EVPerr
    linkageType: ''
    returnType: int
    signature: "EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx,\n                     unsigned
      char *out, size_t *outlen,\n                     const unsigned char *in, size_t
      inlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:208,1
    - Dst: EVP_PKEY_CTX*::pmeth::derive_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:215,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 219
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 219
    functionName: EVP_PKEY_derive_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::derive_init
    - EVPerr
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:227,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:234,1
    - Dst: EVP_PKEY_CTX*::pmeth::ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:239,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:248,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:253,1
    - Dst: EVP_PKEY_missing_parameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:264,1
    - Dst: EVP_PKEY_cmp_parameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:265,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:266,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:270,1
    - Dst: EVP_PKEY_CTX*::pmeth::ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:273,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:280,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 2
    argNames:
    - ctx
    - peer
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 282
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 282
    functionName: EVP_PKEY_derive_set_peer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::ctrl
    - EVPerr
    - EVP_PKEY_up_ref
    - EVP_PKEY_missing_parameters
    - EVP_PKEY_free
    - EVP_PKEY_cmp_parameters
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:287,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:292,1
    - Dst: M_check_autoarg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:295,1
    - Dst: EVP_PKEY_CTX*::pmeth::derive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c:296,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - key
    - pkeylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    constantsTouched: []
    func_position:
      end: 297
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 297
    functionName: EVP_PKEY_derive
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c
    functionUses: 0
    functionsReached:
    - M_check_autoarg
    - EVP_PKEY_CTX*::pmeth::derive
    - EVPerr
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *pkeylen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_test_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_verify.c:25,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_verify.c:26,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_verify.c:30,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_verify.c:32,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_verify.c:35,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_verify.c:37,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_verify.c:38,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_verify.c:44,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_verify.c:47,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_verify.c:49,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_verify.c:49,1
    - Dst: EVP_PKEY_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_verify.c:51,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_verify.c:53,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - ctx
    - sigbuf
    - siglen
    - pkey
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - unsigned int
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 55
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 55
    functionName: EVP_VerifyFinal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_verify.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_copy_ex
    - EVP_DigestFinal_ex
    - EVP_PKEY_CTX_new
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_set_signature_md
    - EVPerr
    - EVP_MD_CTX_md
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - EVP_PKEY_verify_init
    - EVP_MD_CTX_test_flags
    - EVP_PKEY_verify
    linkageType: ''
    returnType: int
    signature: "EVP_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf,\n                    unsigned
      int siglen, EVP_PKEY *pkey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_test_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:29,1
    - Dst: EVP_MD_CTX*::digest::cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:30,1
    - Dst: EVP_MD_CTX_test_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:32,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:33,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:35,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:37,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:39,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 42
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 42
    functionName: EVP_MD_CTX_reset
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX*::digest::cleanup
    - EVP_PKEY_CTX_free
    - OPENSSL_clear_free
    - ENGINE_finish
    - OPENSSL_cleanse
    - EVP_MD_CTX_test_flags
    linkageType: ''
    returnType: int
    signature: EVP_MD_CTX_reset(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: EVP_MD_CTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c
    functionUses: 9
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EVP_MD_CTX
    signature: '*EVP_MD_CTX_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:51,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: EVP_MD_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c
    functionUses: 9
    functionsReached:
    - OPENSSL_free
    - EVP_MD_CTX_reset
    linkageType: ''
    returnType: void
    signature: EVP_MD_CTX_free(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:57,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - type
    argTypes:
    - EVP_MD_CTX*
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: EVP_DigestInit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c
    functionUses: 1
    functionsReached:
    - EVP_MD_CTX_reset
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_clear_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:63,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:80,1
    - Dst: ENGINE_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:82,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:83,1
    - Dst: ENGINE_get_digest_engine
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:88,1
    - Dst: ENGINE_get_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:92,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:95,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:96,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:110,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:118,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:124,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:126,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:136,1
    - Dst: EVP_MD_CTX*::digest::init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:143,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 58
    argCount: 3
    argNames:
    - ctx
    - type
    - impl
    argTypes:
    - EVP_MD_CTX*
    - EVP_MD*
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 144
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 144
    functionName: EVP_DigestInit_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c
    functionUses: 8
    functionsReached:
    - ENGINE_get_digest_engine
    - ENGINE_get_digest
    - EVP_PKEY_CTX_ctrl
    - ENGINE_init
    - EVP_MD_CTX_clear_flags
    - EVPerr
    - ENGINE_finish
    - OPENSSL_zalloc
    - OPENSSL_clear_free
    - EVP_MD_CTX*::digest::init
    linkageType: ''
    returnType: int
    signature: EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX*::update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: EVP_DigestUpdate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c
    functionUses: 8
    functionsReached:
    - EVP_MD_CTX*::update
    linkageType: ''
    returnType: int
    signature: EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:155,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - md
    - size
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: EVP_DigestFinal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c
    functionUses: 1
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_reset
    linkageType: ''
    returnType: int
    signature: EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:165,1
    - Dst: EVP_MD_CTX*::digest::final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:166,1
    - Dst: EVP_MD_CTX*::digest::cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:170,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:171,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - md
    - size
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 175
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 175
    functionName: EVP_DigestFinal_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c
    functionUses: 10
    functionsReached:
    - OPENSSL_assert
    - EVP_MD_CTX*::digest::cleanup
    - EVP_MD_CTX_set_flags
    - OPENSSL_cleanse
    - EVP_MD_CTX*::digest::final
    linkageType: ''
    returnType: int
    signature: EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int
      *size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:179,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - EVP_MD_CTX*
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: EVP_MD_CTX_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_copy_ex
    - EVP_MD_CTX_reset
    linkageType: ''
    returnType: int
    signature: EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:187,1
    - Dst: ENGINE_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:192,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:193,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:200,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:203,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:204,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:217,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:219,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:223,1
    - Dst: EVP_PKEY_CTX_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:229,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:231,1
    - Dst: EVP_MD_CTX*::digest::copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:237,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - EVP_MD_CTX*
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 240
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 240
    functionName: EVP_MD_CTX_copy_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c
    functionUses: 6
    functionsReached:
    - ENGINE_init
    - EVPerr
    - EVP_MD_CTX*::digest::copy
    - EVP_PKEY_CTX_dup
    - EVP_MD_CTX_set_flags
    - EVP_MD_CTX_reset
    - memcpy
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:246,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:251,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:252,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:253,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:254,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c:255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 6
    argNames:
    - data
    - count
    - md
    - size
    - type
    - impl
    argTypes:
    - void*
    - size_t
    - unsigned char*
    - unsigned int*
    - EVP_MD*
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 258
      start: 242
    functionDepth: 4
    functionLinenumber: 242
    functionLinenumberEnd: 258
    functionName: EVP_Digest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c
    functionUses: 1
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_DigestUpdate
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - EVP_MD_CTX_set_flags
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: "EVP_Digest(const void *data, size_t count,\n               unsigned
      char *md, unsigned int *size, const EVP_MD *type,\n               ENGINE *impl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - cmd
    - p1
    - p2
    argTypes:
    - EVP_MD_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 269
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 269
    functionName: EVP_MD_CTX_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int cmd, int p1, void *p2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c:22,1
    - Dst: EVP_PKEY_CTX*::pmeth::paramgen_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c:29,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 33
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 33
    functionName: EVP_PKEY_paramgen_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::paramgen_init
    - EVPerr
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c:39,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c:45,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c:53,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c:56,1
    - Dst: EVP_PKEY_CTX*::pmeth::paramgen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c:60,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c:62,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - ctx
    - ppkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY**
    constantsTouched: []
    func_position:
      end: 66
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 66
    functionName: EVP_PKEY_paramgen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_new
    - EVP_PKEY_free
    - EVP_PKEY_CTX*::pmeth::paramgen
    - EVPerr
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c:72,1
    - Dst: EVP_PKEY_CTX*::pmeth::keygen_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 83
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 83
    functionName: EVP_PKEY_keygen_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::keygen_init
    - EVPerr
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c:90,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c:95,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c:103,1
    - Dst: EVP_PKEY_CTX*::pmeth::keygen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c:107,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c:109,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - ppkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY**
    constantsTouched: []
    func_position:
      end: 113
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 113
    functionName: EVP_PKEY_keygen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_new
    - EVP_PKEY_free
    - EVP_PKEY_CTX*::pmeth::keygen
    - EVPerr
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - cb
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_gen_cb*
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: EVP_PKEY_CTX_set_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: EVP_PKEY_CTX_get_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY_gen_cb
    signature: '*EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB_get_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c:132,1
    - Dst: EVP_PKEY_CTX*::pkey_gencb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - gcb
    argTypes:
    - int
    - int
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: trans_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::pkey_gencb
    - BN_GENCB_get_arg
    linkageType: ''
    returnType: int
    signature: trans_cb(int a, int b, BN_GENCB *gcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cb
    - ctx
    argTypes:
    - BN_GENCB*
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: evp_pkey_set_cb_translate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_set
    linkageType: ''
    returnType: void
    signature: evp_pkey_set_cb_translate(BN_GENCB *cb, EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - idx
    argTypes:
    - EVP_PKEY_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: EVP_PKEY_CTX_get_keygen_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c:157,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c:160,1
    - Dst: EVP_PKEY_CTX_set_mac_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c:162,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c:164,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c:167,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - type
    - e
    - key
    - keylen
    argTypes:
    - int
    - ENGINE*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 169
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 169
    functionName: EVP_PKEY_new_mac_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_mac_key
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_CTX_free
    - EVP_PKEY_keygen
    - EVP_PKEY_keygen_init
    linkageType: ''
    returnType: EVP_PKEY
    signature: "*EVP_PKEY_new_mac_key(int type, ENGINE *e,\n                               const
      unsigned char *key, int keylen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BLOCK_CIPHER_ecb_loop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_idea.c:36,1
    - Dst: IDEA_ecb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_idea.c:37,1
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_idea.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: idea_ecb_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_idea.c
    functionUses: 0
    functionsReached:
    - IDEA_ecb_encrypt
    - BLOCK_CIPHER_ecb_loop
    - EVP_C_DATA
    linkageType: ''
    returnType: int
    signature: "idea_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_idea.c:53,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_idea.c:55,1
    - Dst: IDEA_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_idea.c:59,1
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_idea.c:59,1
    - Dst: IDEA_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_idea.c:63,1
    - Dst: IDEA_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_idea.c:64,1
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_idea.c:64,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_idea.c:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 68
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 68
    functionName: idea_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_idea.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_mode
    - IDEA_set_decrypt_key
    - IDEA_set_encrypt_key
    - EVP_C_DATA
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "idea_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n                         const
      unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SEED_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_seed.c:35,1
    - Dst: EVP_C_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_seed.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: seed_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_seed.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    - SEED_set_key
    linkageType: ''
    returnType: int
    signature: "seed_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n                         const
      unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_pkey_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:27,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:30,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:31,1
    - Dst: EVP_PKEY_set_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:35,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:35,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:36,1
    - Dst: i2t_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:37,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:38,1
    - Dst: EVP_PKEY*::ameth::priv_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:43,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:44,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:48,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:55,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - p8
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    constantsTouched: []
    func_position:
      end: 57
      start: 21
    functionDepth: 3
    functionLinenumber: 21
    functionLinenumberEnd: 57
    functionName: EVP_PKCS82PKEY
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c
    functionUses: 4
    functionsReached:
    - EVP_PKEY_free
    - OBJ_obj2nid
    - i2t_ASN1_OBJECT
    - EVPerr
    - ERR_add_error_data
    - EVP_PKEY_set_type
    - EVP_PKEY*::ameth::priv_decode
    - EVP_PKEY_new
    - PKCS8_pkey_get0
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*EVP_PKCS82PKEY(const PKCS8_PRIV_KEY_INFO *p8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_PRIV_KEY_INFO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:63,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:65,1
    - Dst: EVP_PKEY*::ameth::priv_encode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:71,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:72,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:76,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:80,1
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:83,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:86,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 88
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 88
    functionName: EVP_PKEY2PKCS8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c
    functionUses: 2
    functionsReached:
    - RAND_add
    - PKCS8_PRIV_KEY_INFO_new
    - EVPerr
    - EVP_PKEY*::ameth::priv_encode
    - PKCS8_PRIV_KEY_INFO_free
    linkageType: ''
    returnType: PKCS8_PRIV_KEY_INFO
    signature: '*EVP_PKEY2PKCS8(EVP_PKEY *pkey)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: EVP_PKEY_get_attr_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_count
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_get_attr_count(const EVP_PKEY *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - nid
    - lastpos
    argTypes:
    - EVP_PKEY*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: EVP_PKEY_get_attr_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c
    functionUses: 1
    functionsReached:
    - X509at_get_attr_by_NID
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_get_attr_by_NID(const EVP_PKEY *key, int nid, int lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - obj
    - lastpos
    argTypes:
    - EVP_PKEY*
    - ASN1_OBJECT*
    - int
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: EVP_PKEY_get_attr_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "EVP_PKEY_get_attr_by_OBJ(const EVP_PKEY *key, const ASN1_OBJECT *obj,\n
      \                            int lastpos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - loc
    argTypes:
    - EVP_PKEY*
    - int
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: EVP_PKEY_get_attr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c
    functionUses: 1
    functionsReached:
    - X509at_get_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: '*EVP_PKEY_get_attr(const EVP_PKEY *key, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_delete_attr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - loc
    argTypes:
    - EVP_PKEY*
    - int
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: EVP_PKEY_delete_attr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c
    functionUses: 0
    functionsReached:
    - X509at_delete_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: '*EVP_PKEY_delete_attr(EVP_PKEY *key, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - attr
    argTypes:
    - EVP_PKEY*
    - X509_ATTRIBUTE*
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: EVP_PKEY_add1_attr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_add1_attr(EVP_PKEY *key, X509_ATTRIBUTE *attr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - key
    - obj
    - type
    - bytes
    - len
    argTypes:
    - EVP_PKEY*
    - ASN1_OBJECT*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 132
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 132
    functionName: EVP_PKEY_add1_attr_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "EVP_PKEY_add1_attr_by_OBJ(EVP_PKEY *key,\n                              const
      ASN1_OBJECT *obj, int type,\n                              const unsigned char
      *bytes, int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - key
    - nid
    - type
    - bytes
    - len
    argTypes:
    - EVP_PKEY*
    - int
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: EVP_PKEY_add1_attr_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "EVP_PKEY_add1_attr_by_NID(EVP_PKEY *key,\n                              int
      nid, int type,\n                              const unsigned char *bytes, int
      len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_txt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - key
    - attrname
    - type
    - bytes
    - len
    argTypes:
    - EVP_PKEY*
    - char*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: EVP_PKEY_add1_attr_by_txt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_txt
    linkageType: ''
    returnType: int
    signature: "EVP_PKEY_add1_attr_by_txt(EVP_PKEY *key,\n                              const
      char *attrname, int type,\n                              const unsigned char
      *bytes, int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MDC2_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_mdc2.c:24,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_mdc2.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_mdc2.c
    functionUses: 293
    functionsReached:
    - MDC2_Init
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: init(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MDC2_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_mdc2.c:29,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_mdc2.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_mdc2.c
    functionUses: 42
    functionsReached:
    - EVP_MD_CTX_md_data
    - MDC2_Update
    linkageType: ''
    returnType: int
    signature: update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MDC2_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_mdc2.c:34,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_mdc2.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_mdc2.c
    functionUses: 14
    functionsReached:
    - MDC2_Final
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: EVP_mdc2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_mdc2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: '*EVP_mdc2(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: BIO_f_base64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_f_base64(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:71,1
    - Dst: EVP_ENCODE_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:77,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:79,1
    - Dst: BIO_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:83,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 87
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 87
    functionName: b64_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - BIO_set_data
    - EVP_ENCODE_CTX_new
    - OPENSSL_zalloc
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: b64_new(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:95,1
    - Dst: EVP_ENCODE_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:99,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:100,1
    - Dst: BIO_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:101,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 105
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 105
    functionName: b64_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - BIO_set_data
    - BIO_get_data
    - EVP_ENCODE_CTX_free
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: b64_free(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:116,1
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:118,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:122,1
    - Dst: EVP_DecodeInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:129,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:134,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:138,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:139,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:160,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:167,1
    - Dst: BIO_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:187,1
    - Dst: EVP_DecodeUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:208,1
    - Dst: EVP_DecodeInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:212,1
    - Dst: EVP_DecodeInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:221,1
    - Dst: BIO_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:259,1
    - Dst: EVP_DecodeBlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:263,1
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:276,1
    - Dst: EVP_DecodeUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:285,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:302,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:313,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 141
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 315
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 315
    functionName: b64_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached:
    - EVP_DecodeBlock
    - memmove
    - EVP_DecodeUpdate
    - OPENSSL_assert
    - BIO_clear_retry_flags
    - BIO_should_retry
    - BIO_get_data
    - EVP_DecodeInit
    - BIO_get_flags
    - memcpy
    - BIO_next
    - BIO_copy_next_retry
    - BIO_read
    linkageType: ''
    returnType: int
    signature: b64_read(BIO *b, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:325,1
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:326,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:330,1
    - Dst: EVP_EncodeInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:337,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:340,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:341,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:342,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:345,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:347,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:350,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:352,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:353,1
    - Dst: BIO_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:366,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:368,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:375,1
    - Dst: EVP_EncodeBlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:381,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:383,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:384,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:392,1
    - Dst: EVP_EncodeBlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:399,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:401,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:402,1
    - Dst: EVP_EncodeUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:406,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:410,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:411,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:420,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:422,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:425,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:428,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:429,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 90
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 435
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 435
    functionName: b64_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - BIO_clear_retry_flags
    - EVP_EncodeBlock
    - BIO_get_data
    - BIO_get_flags
    - EVP_EncodeUpdate
    - memcpy
    - BIO_next
    - BIO_copy_next_retry
    - BIO_write
    - EVP_EncodeInit
    linkageType: ''
    returnType: int
    signature: b64_write(BIO *b, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:444,1
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:445,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:454,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:460,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:463,1
    - Dst: EVP_ENCODE_CTX_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:466,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:469,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:472,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:475,1
    - Dst: b64_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:481,1
    - Dst: BIO_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:485,1
    - Dst: EVP_EncodeBlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:487,1
    - Dst: EVP_ENCODE_CTX_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:495,1
    - Dst: EVP_EncodeFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:497,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:503,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:507,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:508,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:509,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:518,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 71
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 522
      start: 437
    functionDepth: 3
    functionLinenumber: 437
    functionLinenumberEnd: 522
    functionName: b64_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - OPENSSL_assert
    - BIO_clear_retry_flags
    - EVP_EncodeBlock
    - EVP_EncodeFinal
    - BIO_get_data
    - BIO_get_flags
    - BIO_next
    - BIO_copy_next_retry
    - EVP_ENCODE_CTX_num
    - b64_write
    linkageType: ''
    returnType: long
    signature: b64_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:527,1
    - Dst: BIO_callback_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:533,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - bio_info_cb*
    constantsTouched: []
    func_position:
      end: 537
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 537
    functionName: b64_callback_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    - BIO_next
    linkageType: ''
    returnType: long
    signature: b64_callback_ctrl(BIO *b, int cmd, bio_info_cb *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: b64_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:541,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 542
      start: 539
    functionDepth: 3
    functionLinenumber: 539
    functionLinenumberEnd: 542
    functionName: b64_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached:
    - strlen
    - b64_write
    linkageType: ''
    returnType: int
    signature: b64_puts(BIO *b, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BF_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_bf.c:34,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_bf.c:34,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_bf.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: bf_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_bf.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_key_length
    - data
    - BF_set_key
    linkageType: ''
    returnType: int
    signature: "bf_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n                       const
      unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: EVP_rc2_64_cbc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_rc2_64_cbc(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: EVP_rc2_40_cbc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_rc2_40_cbc(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RC2_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c:86,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c:86,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c:86,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: rc2_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_key_length
    - data
    - RC2_set_key
    linkageType: ''
    returnType: int
    signature: "rc2_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n                        const
      unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - e
    argTypes:
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 104
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 104
    functionName: rc2_meth_to_magic
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: rc2_meth_to_magic(EVP_CIPHER_CTX *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 118
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 118
    functionName: rc2_magic_to_meth
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c
    functionUses: 0
    functionsReached:
    - EVPerr
    linkageType: ''
    returnType: int
    signature: rc2_magic_to_meth(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c:129,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c:130,1
    - Dst: ASN1_TYPE_get_int_octetstring
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c:131,1
    - Dst: rc2_magic_to_meth
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c:134,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c:137,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c:139,1
    - Dst: EVP_CIPHER_CTX_set_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c:140,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - EVP_CIPHER_CTX*
    - ASN1_TYPE*
    constantsTouched: []
    func_position:
      end: 144
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 144
    functionName: rc2_get_asn1_type_and_iv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c
    functionUses: 0
    functionsReached:
    - ASN1_TYPE_get_int_octetstring
    - OPENSSL_assert
    - rc2_magic_to_meth
    - EVP_CipherInit_ex
    - EVP_CIPHER_CTX_iv_length
    - EVP_CIPHER_CTX_ctrl
    - EVP_CIPHER_CTX_set_key_length
    linkageType: ''
    returnType: int
    signature: rc2_get_asn1_type_and_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rc2_meth_to_magic
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c:152,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c:153,1
    - Dst: ASN1_TYPE_set_int_octetstring
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c:154,1
    - Dst: EVP_CIPHER_CTX_original_iv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - EVP_CIPHER_CTX*
    - ASN1_TYPE*
    constantsTouched: []
    func_position:
      end: 159
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 159
    functionName: rc2_set_asn1_type_and_iv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_original_iv
    - EVP_CIPHER_CTX_iv_length
    - ASN1_TYPE_set_int_octetstring
    - rc2_meth_to_magic
    linkageType: ''
    returnType: int
    signature: rc2_set_asn1_type_and_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c:165,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c:165,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c:169,1
    - Dst: data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 187
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 187
    functionName: rc2_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_key_length
    - data
    linkageType: ''
    returnType: int
    signature: rc2_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX*::cipher::set_asn1_parameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:22,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:24,1
    - Dst: EVP_CIPHER_CTX_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:26,1
    - Dst: ASN1_TYPE_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:27,1
    - Dst: EVP_CIPHER_set_asn1_iv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:39,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - EVP_CIPHER_CTX*
    - ASN1_TYPE*
    constantsTouched: []
    func_position:
      end: 44
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 44
    functionName: EVP_CIPHER_param_to_asn1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_set_asn1_iv
    - EVP_CIPHER_CTX_mode
    - EVP_CIPHER_CTX*::cipher::set_asn1_parameters
    - ASN1_TYPE_set
    - EVP_CIPHER_CTX_nid
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX*::cipher::get_asn1_parameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:51,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:53,1
    - Dst: EVP_CIPHER_get_asn1_iv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:67,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - EVP_CIPHER_CTX*
    - ASN1_TYPE*
    constantsTouched: []
    func_position:
      end: 73
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 73
    functionName: EVP_CIPHER_asn1_to_param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_CTX*::cipher::get_asn1_parameters
    - EVP_CIPHER_CTX_mode
    - EVP_CIPHER_get_asn1_iv
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:81,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:82,1
    - Dst: ASN1_TYPE_get_octetstring
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:83,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - EVP_CIPHER_CTX*
    - ASN1_TYPE*
    constantsTouched: []
    func_position:
      end: 90
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 90
    functionName: EVP_CIPHER_get_asn1_iv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_CTX_iv_length
    - memcpy
    - ASN1_TYPE_get_octetstring
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:98,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:99,1
    - Dst: ASN1_TYPE_set_octetstring
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - EVP_CIPHER_CTX*
    - ASN1_TYPE*
    constantsTouched: []
    func_position:
      end: 103
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 103
    functionName: EVP_CIPHER_set_asn1_iv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_set_octetstring
    - EVP_CIPHER_CTX_iv_length
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:110,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:157,1
    - Dst: OBJ_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:158,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 163
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 163
    functionName: EVP_CIPHER_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_get0_data
    - ASN1_OBJECT_free
    - OBJ_nid2obj
    - EVP_CIPHER_nid
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_type(const EVP_CIPHER *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: EVP_CIPHER_block_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_block_size(const EVP_CIPHER *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: EVP_CIPHER_CTX_block_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: EVP_CIPHER_impl_ctx_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_impl_ctx_size(const EVP_CIPHER *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: EVP_Cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 3
    functionsReached:
    - EVP_CIPHER_CTX*::cipher::do_cipher
    linkageType: ''
    returnType: int
    signature: "EVP_Cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n               const
      unsigned char *in, unsigned int inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: EVP_CIPHER_CTX_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: EVP_CIPHER_CTX_encrypting
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_CTX_encrypting(const EVP_CIPHER_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: EVP_CIPHER_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: EVP_CIPHER_flags(const EVP_CIPHER *cipher)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: EVP_CIPHER_CTX_get_app_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - EVP_CIPHER_CTX*
    - void*
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: EVP_CIPHER_CTX_set_app_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: EVP_CIPHER_CTX_get_cipher_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*EVP_CIPHER_CTX_get_cipher_data(const EVP_CIPHER_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - cipher_data
    argTypes:
    - EVP_CIPHER_CTX*
    - void*
    constantsTouched: []
    func_position:
      end: 224
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 224
    functionName: EVP_CIPHER_CTX_set_cipher_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*EVP_CIPHER_CTX_set_cipher_data(EVP_CIPHER_CTX *ctx, void *cipher_data)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: EVP_CIPHER_iv_length
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_iv_length(const EVP_CIPHER *cipher)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: EVP_CIPHER_CTX_iv_length
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: EVP_CIPHER_CTX_original_iv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: '*EVP_CIPHER_CTX_original_iv(const EVP_CIPHER_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: EVP_CIPHER_CTX_iv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: '*EVP_CIPHER_CTX_iv(const EVP_CIPHER_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: EVP_CIPHER_CTX_iv_noconst
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 42
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: '*EVP_CIPHER_CTX_iv_noconst(EVP_CIPHER_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: EVP_CIPHER_CTX_buf_noconst
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: '*EVP_CIPHER_CTX_buf_noconst(EVP_CIPHER_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: EVP_CIPHER_CTX_num
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_CTX_num(const EVP_CIPHER_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - num
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 264
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 264
    functionName: EVP_CIPHER_CTX_set_num
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EVP_CIPHER_CTX_set_num(EVP_CIPHER_CTX *ctx, int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: EVP_CIPHER_key_length
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_key_length(const EVP_CIPHER *cipher)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: EVP_CIPHER_CTX_key_length
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: EVP_CIPHER_nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_nid(const EVP_CIPHER *cipher)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: EVP_CIPHER_CTX_nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: EVP_MD_block_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_MD_block_size(const EVP_MD *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: EVP_MD_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_MD_type(const EVP_MD *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: EVP_MD_pkey_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_MD_pkey_type(const EVP_MD *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 308
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 308
    functionName: EVP_MD_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 4
    functionsReached:
    - EVPerr
    linkageType: ''
    returnType: int
    signature: EVP_MD_size(const EVP_MD *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: EVP_MD_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: EVP_MD_flags(const EVP_MD *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - md_type
    - pkey_type
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 324
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 324
    functionName: EVP_MD_meth_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 6
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EVP_MD
    signature: '*EVP_MD_meth_new(int md_type, int pkey_type)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:327,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 332
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 332
    functionName: EVP_MD_meth_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_new
    - memcpy
    linkageType: ''
    returnType: EVP_MD
    signature: '*EVP_MD_meth_dup(const EVP_MD *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 336
    functionName: EVP_MD_meth_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 8
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: EVP_MD_meth_free(EVP_MD *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - md
    - blocksize
    argTypes:
    - EVP_MD*
    - int
    constantsTouched: []
    func_position:
      end: 341
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 341
    functionName: EVP_MD_meth_set_input_blocksize
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_MD_meth_set_input_blocksize(EVP_MD *md, int blocksize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - md
    - resultsize
    argTypes:
    - EVP_MD*
    - int
    constantsTouched: []
    func_position:
      end: 346
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 346
    functionName: EVP_MD_meth_set_result_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_MD_meth_set_result_size(EVP_MD *md, int resultsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - md
    - datasize
    argTypes:
    - EVP_MD*
    - int
    constantsTouched: []
    func_position:
      end: 351
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 351
    functionName: EVP_MD_meth_set_app_datasize
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_MD_meth_set_app_datasize(EVP_MD *md, int datasize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - md
    - flags
    argTypes:
    - EVP_MD*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 356
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 356
    functionName: EVP_MD_meth_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_MD_meth_set_flags(EVP_MD *md, unsigned long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 361
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 361
    functionName: EVP_MD_meth_set_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_MD_meth_set_init(EVP_MD *md, int (*init)(EVP_MD_CTX *ctx))
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 368
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 368
    functionName: EVP_MD_meth_set_update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "EVP_MD_meth_set_update(EVP_MD *md, int (*update)(EVP_MD_CTX *ctx,\n
      \                                                    const void *data,\n                                                     size_t
      count))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 374
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 374
    functionName: EVP_MD_meth_set_final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "EVP_MD_meth_set_final(EVP_MD *md, int (*final)(EVP_MD_CTX *ctx,\n
      \                                                  unsigned char *md))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 380
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 380
    functionName: EVP_MD_meth_set_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "EVP_MD_meth_set_copy(EVP_MD *md, int (*copy)(EVP_MD_CTX *to,\n                                                 const
      EVP_MD_CTX *from))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 385
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 385
    functionName: EVP_MD_meth_set_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_MD_meth_set_cleanup(EVP_MD *md, int (*cleanup)(EVP_MD_CTX *ctx))
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 391
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 391
    functionName: EVP_MD_meth_set_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "EVP_MD_meth_set_ctrl(EVP_MD *md, int (*ctrl)(EVP_MD_CTX *ctx, int
      cmd,\n                                                 int p1, void *p2))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 396
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 396
    functionName: EVP_MD_meth_get_input_blocksize
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_MD_meth_get_input_blocksize(const EVP_MD *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 400
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 400
    functionName: EVP_MD_meth_get_result_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_MD_meth_get_result_size(const EVP_MD *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 404
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 404
    functionName: EVP_MD_meth_get_app_datasize
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_MD_meth_get_app_datasize(const EVP_MD *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: EVP_MD_meth_get_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: EVP_MD_meth_get_flags(const EVP_MD *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: (*EVP_MD_meth_get_init(const EVP_MD *md))(EVP_MD_CTX *ctx)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*EVP_MD_meth_get_init(const EVP_MD *md))(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 418
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 418
    functionName: "(*EVP_MD_meth_get_update(const EVP_MD *md))(EVP_MD_CTX *ctx,\n
      \                                               const void *data,\n                                                size_t
      count)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*EVP_MD_meth_get_update(const EVP_MD *md))(EVP_MD_CTX *ctx,\n                                                const
      void *data,\n                                                size_t count)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 423
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 423
    functionName: "(*EVP_MD_meth_get_final(const EVP_MD *md))(EVP_MD_CTX *ctx,\n                                               unsigned
      char *md)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*EVP_MD_meth_get_final(const EVP_MD *md))(EVP_MD_CTX *ctx,\n                                               unsigned
      char *md)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - EVP_MD_CTX*
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 428
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 428
    functionName: "(*EVP_MD_meth_get_copy(const EVP_MD *md))(EVP_MD_CTX *to,\n                                              const
      EVP_MD_CTX *from)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*EVP_MD_meth_get_copy(const EVP_MD *md))(EVP_MD_CTX *to,\n                                              const
      EVP_MD_CTX *from)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 432
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 432
    functionName: (*EVP_MD_meth_get_cleanup(const EVP_MD *md))(EVP_MD_CTX *ctx)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*EVP_MD_meth_get_cleanup(const EVP_MD *md))(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - cmd
    - p1
    - p2
    argTypes:
    - EVP_MD_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 437
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 437
    functionName: "(*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int
      cmd,\n                                              int p1, void *p2)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int cmd,\n
      \                                             int p1, void *p2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 444
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 444
    functionName: EVP_MD_CTX_md
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: '*EVP_MD_CTX_md(const EVP_MD_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 449
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 449
    functionName: EVP_MD_CTX_pkey_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: '*EVP_MD_CTX_pkey_ctx(const EVP_MD_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 454
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 454
    functionName: EVP_MD_CTX_md_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*EVP_MD_CTX_md_data(const EVP_MD_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 460
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 460
    functionName: "(*EVP_MD_CTX_update_fn(EVP_MD_CTX *ctx))(EVP_MD_CTX *ctx,\n                                             const
      void *data, size_t count)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*EVP_MD_CTX_update_fn(EVP_MD_CTX *ctx))(EVP_MD_CTX *ctx,\n                                             const
      void *data, size_t count)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 467
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 467
    functionName: EVP_MD_CTX_set_update_fn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_MD_CTX_set_update_fn(EVP_MD_CTX *ctx,\n                              int
      (*update) (EVP_MD_CTX *ctx,\n                                             const
      void *data, size_t count))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - EVP_MD_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 472
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 472
    functionName: EVP_MD_CTX_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - EVP_MD_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 477
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 477
    functionName: EVP_MD_CTX_clear_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - EVP_MD_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 482
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 482
    functionName: EVP_MD_CTX_test_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 487
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 487
    functionName: EVP_CIPHER_CTX_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 492
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 492
    functionName: EVP_CIPHER_CTX_clear_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 497
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 497
    functionName: EVP_CIPHER_CTX_test_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BLOCK_CIPHER_ecb_loop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:58,1
    - Dst: DES_ecb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:59,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:60,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: des_ecb_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - BLOCK_CIPHER_ecb_loop
    - DES_ecb_encrypt
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_CTX_encrypting
    linkageType: ''
    returnType: int
    signature: "des_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DES_ofb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:70,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:71,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:72,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:73,1
    - Dst: DES_ofb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:80,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:81,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:82,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 86
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 86
    functionName: des_ofb_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_CTX_set_num
    - DES_ofb64_encrypt
    linkageType: ''
    returnType: int
    signature: "des_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:91,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:95,1
    - Dst: DES_ncbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:99,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:100,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:101,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:102,1
    - Dst: DES_ncbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:108,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:109,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:110,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 113
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 113
    functionName: des_cbc_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_CTX_encrypting
    - DES_ncbc_encrypt
    linkageType: ''
    returnType: int
    signature: "des_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DES_cfb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:120,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:121,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:122,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:123,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:124,1
    - Dst: DES_cfb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:131,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:132,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:133,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:134,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 138
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 138
    functionName: des_cfb64_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - DES_cfb64_encrypt
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_set_num
    - EVP_CIPHER_CTX_get_cipher_data
    linkageType: ''
    returnType: int
    signature: "des_cfb64_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                            const
      unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DES_cfb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:156,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:156,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:157,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 171
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 171
    functionName: des_cfb1_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - DES_cfb_encrypt
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_CTX_encrypting
    linkageType: ''
    returnType: int
    signature: "des_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DES_cfb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:177,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:178,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:179,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:180,1
    - Dst: DES_cfb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:186,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:187,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:188,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 191
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 191
    functionName: des_cfb8_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_iv_noconst
    - DES_cfb_encrypt
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_CTX_encrypting
    linkageType: ''
    returnType: int
    signature: "des_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:209,1
    - Dst: des_t4_key_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:217,1
    - Dst: DES_set_key_unchecked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:223,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 225
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 225
    functionName: des_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - des_t4_key_expand
    - EVP_CIPHER_CTX_get_cipher_data
    - DES_set_key_unchecked
    linkageType: ''
    returnType: int
    signature: "des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n                        const
      unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:232,1
    - Dst: DES_set_odd_parity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 240
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 240
    functionName: des_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - DES_set_odd_parity
    linkageType: ''
    returnType: int
    signature: des_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: BIO_f_reliable
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_f_reliable(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:131,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:137,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:139,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:142,1
    - Dst: BIO_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 146
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 146
    functionName: ok_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - BIO_set_data
    - EVP_MD_CTX_new
    - OPENSSL_zalloc
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: ok_new(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:155,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:157,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:158,1
    - Dst: BIO_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:159,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 163
      start: 148
    functionDepth: 4
    functionLinenumber: 148
    functionLinenumberEnd: 163
    functionName: ok_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - BIO_set_data
    - BIO_get_data
    - EVP_MD_CTX_free
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: ok_free(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:174,1
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:175,1
    - Dst: BIO_get_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:177,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:187,1
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:202,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:217,1
    - Dst: sig_in
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:226,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:227,1
    - Dst: block_in
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:234,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:235,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:246,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:247,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 249
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 249
    functionName: ok_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached:
    - block_in
    - memmove
    - BIO_clear_retry_flags
    - sig_in
    - BIO_get_data
    - memcpy
    - BIO_get_init
    - BIO_next
    - BIO_copy_next_retry
    - BIO_read
    linkageType: ''
    returnType: int
    signature: ok_read(BIO *b, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:260,1
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:261,1
    - Dst: BIO_get_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:264,1
    - Dst: sig_out
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:267,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:271,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:274,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:276,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:277,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:298,1
    - Dst: block_out
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:304,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:305,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:311,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:312,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 314
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 314
    functionName: ok_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - BIO_should_retry
    - sig_out
    - block_out
    - BIO_get_data
    - memcpy
    - BIO_get_init
    - BIO_next
    - BIO_copy_next_retry
    - BIO_write
    linkageType: ''
    returnType: int
    signature: ok_write(BIO *b, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:325,1
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:326,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:338,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:344,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:350,1
    - Dst: block_out
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:355,1
    - Dst: ok_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:359,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:371,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:374,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:375,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:376,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:383,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:385,1
    - Dst: BIO_get_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:388,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:390,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:395,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 68
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 399
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 399
    functionName: ok_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - BIO_clear_retry_flags
    - block_out
    - EVP_MD_CTX_md
    - BIO_get_data
    - BIO_get_init
    - ok_write
    - BIO_next
    - BIO_copy_next_retry
    - BIO_ctrl
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: long
    signature: ok_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:406,1
    - Dst: BIO_callback_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:413,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - bio_info_cb*
    constantsTouched: []
    func_position:
      end: 418
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 418
    functionName: ok_callback_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    - BIO_next
    linkageType: ''
    returnType: long
    signature: ok_callback_ctrl(BIO *b, int cmd, bio_info_cb *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - _ptr
    - len
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 438
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 438
    functionName: longswap
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: longswap(void *_ptr, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:448,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:450,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:451,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:452,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:457,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:463,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:465,1
    - Dst: longswap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:466,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:469,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:469,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:471,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:478,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 480
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 480
    functionName: sig_out
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c
    functionUses: 1
    functionsReached:
    - RAND_bytes
    - EVP_DigestFinal_ex
    - longswap
    - BIO_clear_retry_flags
    - EVP_MD_size
    - EVP_DigestUpdate
    - EVP_MD_CTX_md
    - BIO_get_data
    - strlen
    - memcpy
    - EVP_MD_CTX_md_data
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: sig_out(BIO *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:492,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:494,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:495,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:496,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:501,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:503,1
    - Dst: longswap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:504,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:507,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:507,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:509,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:511,1
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:516,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:526,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 528
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 528
    functionName: sig_in
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c
    functionUses: 1
    functionsReached:
    - EVP_DigestFinal_ex
    - memcmp
    - memmove
    - longswap
    - BIO_clear_retry_flags
    - EVP_MD_size
    - EVP_DigestUpdate
    - EVP_MD_CTX_md
    - BIO_get_data
    - strlen
    - memcpy
    - EVP_MD_CTX_md_data
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: sig_in(BIO *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:538,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:540,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:541,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:548,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:551,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:557,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 559
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 559
    functionName: block_out
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c
    functionUses: 2
    functionsReached:
    - EVP_DigestFinal_ex
    - BIO_clear_retry_flags
    - EVP_MD_size
    - EVP_DigestUpdate
    - EVP_MD_CTX_md
    - BIO_get_data
    linkageType: ''
    returnType: int
    signature: block_out(BIO *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:569,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:571,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:571,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:573,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:585,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:588,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:590,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c:602,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 604
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 604
    functionName: block_in
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c
    functionUses: 1
    functionsReached:
    - EVP_DigestFinal_ex
    - memcmp
    - BIO_clear_retry_flags
    - EVP_MD_size
    - EVP_DigestUpdate
    - EVP_MD_CTX_md
    - BIO_get_data
    - assert
    linkageType: ''
    returnType: int
    signature: block_in(BIO *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MD4_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md4.c:24,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md4.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md4.c
    functionUses: 300
    functionsReached:
    - MD4_Init
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: init(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MD4_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md4.c:29,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md4.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md4.c
    functionUses: 42
    functionsReached:
    - MD4_Update
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MD4_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md4.c:34,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md4.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md4.c
    functionUses: 14
    functionsReached:
    - EVP_MD_CTX_md_data
    - MD4_Final
    linkageType: ''
    returnType: int
    signature: final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: EVP_md4
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md4.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: '*EVP_md4(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: CMS_signed_get_attr_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_count
    linkageType: ''
    returnType: int
    signature: CMS_signed_get_attr_count(const CMS_SignerInfo *si)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - si
    - nid
    - lastpos
    argTypes:
    - CMS_SignerInfo*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: CMS_signed_get_attr_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_by_NID
    linkageType: ''
    returnType: int
    signature: CMS_signed_get_attr_by_NID(const CMS_SignerInfo *si, int nid, int lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - si
    - obj
    - lastpos
    argTypes:
    - CMS_SignerInfo*
    - ASN1_OBJECT*
    - int
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: CMS_signed_get_attr_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "CMS_signed_get_attr_by_OBJ(const CMS_SignerInfo *si, const ASN1_OBJECT
      *obj,\n                               int lastpos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - si
    - loc
    argTypes:
    - CMS_SignerInfo*
    - int
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: CMS_signed_get_attr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: '*CMS_signed_get_attr(const CMS_SignerInfo *si, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_delete_attr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - si
    - loc
    argTypes:
    - CMS_SignerInfo*
    - int
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: CMS_signed_delete_attr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_delete_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: '*CMS_signed_delete_attr(CMS_SignerInfo *si, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - si
    - attr
    argTypes:
    - CMS_SignerInfo*
    - X509_ATTRIBUTE*
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: CMS_signed_add1_attr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr
    linkageType: ''
    returnType: int
    signature: CMS_signed_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - si
    - obj
    - type
    - bytes
    - len
    argTypes:
    - CMS_SignerInfo*
    - ASN1_OBJECT*
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: CMS_signed_add1_attr_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "CMS_signed_add1_attr_by_OBJ(CMS_SignerInfo *si,\n                                const
      ASN1_OBJECT *obj, int type,\n                                const void *bytes,
      int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - si
    - nid
    - type
    - bytes
    - len
    argTypes:
    - CMS_SignerInfo*
    - int
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: CMS_signed_add1_attr_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "CMS_signed_add1_attr_by_NID(CMS_SignerInfo *si,\n                                int
      nid, int type, const void *bytes, int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_txt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - si
    - attrname
    - type
    - bytes
    - len
    argTypes:
    - CMS_SignerInfo*
    - char*
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: CMS_signed_add1_attr_by_txt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_txt
    linkageType: ''
    returnType: int
    signature: "CMS_signed_add1_attr_by_txt(CMS_SignerInfo *si,\n                                const
      char *attrname, int type,\n                                const void *bytes,
      int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get0_data_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - si
    - oid
    - lastpos
    - type
    argTypes:
    - CMS_SignerInfo*
    - ASN1_OBJECT*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: CMS_signed_get0_data_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get0_data_by_OBJ
    linkageType: ''
    returnType: void
    signature: "*CMS_signed_get0_data_by_OBJ(CMS_SignerInfo *si, const ASN1_OBJECT
      *oid,\n                                  int lastpos, int type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: CMS_unsigned_get_attr_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_count
    linkageType: ''
    returnType: int
    signature: CMS_unsigned_get_attr_count(const CMS_SignerInfo *si)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - si
    - nid
    - lastpos
    argTypes:
    - CMS_SignerInfo*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: CMS_unsigned_get_attr_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "CMS_unsigned_get_attr_by_NID(const CMS_SignerInfo *si, int nid,\n
      \                                int lastpos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - si
    - obj
    - lastpos
    argTypes:
    - CMS_SignerInfo*
    - ASN1_OBJECT*
    - int
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: CMS_unsigned_get_attr_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "CMS_unsigned_get_attr_by_OBJ(const CMS_SignerInfo *si,\n                                 const
      ASN1_OBJECT *obj, int lastpos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - si
    - loc
    argTypes:
    - CMS_SignerInfo*
    - int
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: CMS_unsigned_get_attr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: '*CMS_unsigned_get_attr(const CMS_SignerInfo *si, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_delete_attr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - si
    - loc
    argTypes:
    - CMS_SignerInfo*
    - int
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: CMS_unsigned_delete_attr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_delete_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: '*CMS_unsigned_delete_attr(CMS_SignerInfo *si, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - si
    - attr
    argTypes:
    - CMS_SignerInfo*
    - X509_ATTRIBUTE*
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: CMS_unsigned_add1_attr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr
    linkageType: ''
    returnType: int
    signature: CMS_unsigned_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - si
    - obj
    - type
    - bytes
    - len
    argTypes:
    - CMS_SignerInfo*
    - ASN1_OBJECT*
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: CMS_unsigned_add1_attr_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "CMS_unsigned_add1_attr_by_OBJ(CMS_SignerInfo *si,\n                                  const
      ASN1_OBJECT *obj, int type,\n                                  const void *bytes,
      int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - si
    - nid
    - type
    - bytes
    - len
    argTypes:
    - CMS_SignerInfo*
    - int
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 134
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 134
    functionName: CMS_unsigned_add1_attr_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "CMS_unsigned_add1_attr_by_NID(CMS_SignerInfo *si,\n                                  int
      nid, int type,\n                                  const void *bytes, int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_txt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - si
    - attrname
    - type
    - bytes
    - len
    argTypes:
    - CMS_SignerInfo*
    - char*
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 144
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 144
    functionName: CMS_unsigned_add1_attr_by_txt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_txt
    linkageType: ''
    returnType: int
    signature: "CMS_unsigned_add1_attr_by_txt(CMS_SignerInfo *si,\n                                  const
      char *attrname, int type,\n                                  const void *bytes,
      int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get0_data_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - si
    - oid
    - lastpos
    - type
    argTypes:
    - CMS_SignerInfo*
    - ASN1_OBJECT*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: CMS_unsigned_get0_data_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get0_data_by_OBJ
    linkageType: ''
    returnType: void
    signature: "*CMS_unsigned_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid,\n
      \                                   int lastpos, int type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:39,1
    - Dst: BIO_f_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:39,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:41,1
    - Dst: BIO_get_cipher_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:45,1
    - Dst: EVP_get_cipherbyobj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:55,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:58,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:63,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:64,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:71,1
    - Dst: EVP_CIPHER_CTX_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:71,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:73,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:75,1
    - Dst: EVP_CIPHER_asn1_to_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:79,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:80,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:84,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:87,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:89,1
    - Dst: EVP_CIPHER_CTX_rand_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:92,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:103,1
    - Dst: EVP_CIPHER_CTX_set_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:109,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:115,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:120,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:124,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:129,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:130,1
    - Dst: ASN1_TYPE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:135,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:137,1
    - Dst: EVP_CIPHER_param_to_asn1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:140,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:141,1
    - Dst: ASN1_TYPE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:147,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:155,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:158,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:161,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 109
    argCount: 1
    argNames:
    - ec
    argTypes:
    - CMS_EncryptedContentInfo*
    constantsTouched: []
    func_position:
      end: 163
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 163
    functionName: cms_EncryptedContent_init_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - EVP_get_cipherbyobj
    - EVP_CIPHER_asn1_to_param
    - EVP_CIPHER_CTX_key_length
    - ASN1_TYPE_free
    - EVP_CipherInit_ex
    - BIO_get_cipher_ctx
    - CMSerr
    - EVP_CIPHER_CTX_type
    - EVP_CIPHER_param_to_asn1
    - OBJ_nid2obj
    - BIO_free
    - ASN1_TYPE_new
    - EVP_CIPHER_CTX_rand_key
    - BIO_new
    - OPENSSL_clear_free
    - EVP_CIPHER_CTX_set_key_length
    - ERR_clear_error
    - BIO_f_cipher
    - EVP_CIPHER_CTX_iv_length
    - OPENSSL_malloc
    linkageType: ''
    returnType: BIO
    signature: '*cms_EncryptedContent_init_bio(CMS_EncryptedContentInfo *ec)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:171,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:174,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - ec
    - cipher
    - key
    - keylen
    argTypes:
    - CMS_EncryptedContentInfo*
    - EVP_CIPHER*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 180
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 180
    functionName: cms_EncryptedContent_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OPENSSL_malloc
    - OBJ_nid2obj
    linkageType: ''
    returnType: int
    signature: "cms_EncryptedContent_init(CMS_EncryptedContentInfo *ec,\n                              const
      EVP_CIPHER *cipher,\n                              const unsigned char *key,
      size_t keylen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:187,1
    - Dst: M_ASN1_new_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:191,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:193,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:196,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:198,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:199,1
    - Dst: cms_EncryptedContent_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:203,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - cms
    - ciph
    - key
    - keylen
    argTypes:
    - CMS_ContentInfo*
    - EVP_CIPHER*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 204
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 204
    functionName: CMS_EncryptedData_set1_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - M_ASN1_new_of
    - cms_EncryptedContent_init
    - OBJ_obj2nid
    - OBJ_nid2obj
    linkageType: ''
    returnType: int
    signature: "CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER
      *ciph,\n                               const unsigned char *key, size_t keylen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cms_EncryptedContent_init_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 4
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: cms_EncryptedData_init_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c
    functionUses: 0
    functionsReached:
    - cms_EncryptedContent_init_bio
    linkageType: ''
    returnType: BIO
    signature: '*cms_EncryptedData_init_bio(CMS_ContentInfo *cms)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_err.c:252,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_err.c:253,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_err.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 258
    functionName: ERR_load_CMS_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_CMS_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:26,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ri
    - pass
    - passlen
    argTypes:
    - CMS_RecipientInfo*
    - unsigned char*
    - ossl_ssize_t
    constantsTouched: []
    func_position:
      end: 36
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 36
    functionName: CMS_RecipientInfo_set0_password
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - strlen
    linkageType: ''
    returnType: int
    signature: "CMS_RecipientInfo_set0_password(CMS_RecipientInfo *ri,\n                                    unsigned
      char *pass, ossl_ssize_t passlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cms_get0_enveloped
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:53,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:68,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:72,1
    - Dst: X509_ALGOR_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:78,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:82,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:84,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:85,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:89,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:92,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:94,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:95,1
    - Dst: ASN1_TYPE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:98,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:100,1
    - Dst: EVP_CIPHER_param_to_asn1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:103,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:104,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:110,1
    - Dst: EVP_CIPHER_CTX_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:110,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:112,1
    - Dst: M_ASN1_new_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:116,1
    - Dst: M_ASN1_new_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:120,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:127,1
    - Dst: X509_ALGOR_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:128,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:131,1
    - Dst: ASN1_TYPE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:132,1
    - Dst: ASN1_item_pack
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:136,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:136,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:142,1
    - Dst: PKCS5_pbkdf2_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:147,1
    - Dst: CMS_RecipientInfo_set0_password
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:152,1
    - Dst: sk_CMS_RecipientInfo_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:155,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:161,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:163,1
    - Dst: M_ASN1_free_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:165,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:166,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 100
    argCount: 7
    argNames:
    - cms
    - iter
    - wrap_nid
    - pbe_nid
    - pass
    - passlen
    - kekciph
    argTypes:
    - CMS_ContentInfo*
    - int
    - int
    - int
    - unsigned char*
    - ossl_ssize_t
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 169
      start: 38
    functionDepth: 4
    functionLinenumber: 38
    functionLinenumberEnd: 169
    functionName: CMS_add0_recipient_password
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - M_ASN1_new_of
    - X509_ALGOR_free
    - cms_get0_enveloped
    - CMSerr
    - EVP_EncryptInit_ex
    - EVP_CIPHER_CTX_type
    - PKCS5_pbkdf2_set
    - ASN1_item_pack
    - EVP_CIPHER_param_to_asn1
    - OBJ_nid2obj
    - ASN1_TYPE_new
    - EVP_CIPHER_CTX_new
    - X509_ALGOR_new
    - EVP_CIPHER_CTX_free
    - CMS_RecipientInfo_set0_password
    - sk_CMS_RecipientInfo_push
    - M_ASN1_free_of
    - ASN1_ITEM_rptr
    - EVP_CIPHER_CTX_iv_length
    linkageType: ''
    returnType: CMS_RecipientInfo
    signature: "*CMS_add0_recipient_password(CMS_ContentInfo *cms,\n                                               int
      iter, int wrap_nid,\n                                               int pbe_nid,\n
      \                                              unsigned char *pass,\n                                               ossl_ssize_t
      passlen,\n                                               const EVP_CIPHER *kekciph)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:191,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:195,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:202,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:205,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:208,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:210,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:222,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:225,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 5
    argNames:
    - out
    - outlen
    - in
    - inlen
    - ctx
    argTypes:
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 228
      start: 176
    functionDepth: 4
    functionLinenumber: 176
    functionLinenumberEnd: 228
    functionName: kek_unwrap_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - memcpy
    - EVP_DecryptInit_ex
    - OPENSSL_clear_free
    - EVP_DecryptUpdate
    linkageType: ''
    returnType: int
    signature: "kek_unwrap_key(unsigned char *out, size_t *outlen,\n                          const
      unsigned char *in, size_t inlen,\n                          EVP_CIPHER_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:257,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:260,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:263,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:264,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - out
    - outlen
    - in
    - inlen
    - ctx
    argTypes:
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 271
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 271
    functionName: kek_wrap_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - EVP_EncryptUpdate
    - memcpy
    linkageType: ''
    returnType: int
    signature: "kek_wrap_key(unsigned char *out, size_t *outlen,\n                        const
      unsigned char *in, size_t inlen,\n                        EVP_CIPHER_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:292,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:297,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:298,1
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:303,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:303,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:307,1
    - Dst: EVP_get_cipherbyobj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:312,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:315,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:319,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:321,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:325,1
    - Dst: EVP_CIPHER_CTX_set_padding
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:327,1
    - Dst: EVP_CIPHER_asn1_to_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:328,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:329,1
    - Dst: EVP_PBE_CipherInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:338,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:341,1
    - Dst: kek_wrap_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:349,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:352,1
    - Dst: kek_wrap_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:357,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:362,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:365,1
    - Dst: kek_unwrap_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:368,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:371,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:384,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:387,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c:388,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 78
    argCount: 3
    argNames:
    - cms
    - ri
    - en_de
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    - int
    constantsTouched: []
    func_position:
      end: 392
      start: 275
    functionDepth: 5
    functionLinenumber: 275
    functionLinenumberEnd: 392
    functionName: cms_RecipientInfo_pwri_crypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_set_padding
    - EVP_CIPHER_CTX_free
    - OBJ_obj2nid
    - kek_unwrap_key
    - EVP_get_cipherbyobj
    - X509_ALGOR_free
    - ASN1_ITEM_rptr
    - EVP_CIPHER_asn1_to_param
    - ASN1_TYPE_unpack_sequence
    - EVP_CipherInit_ex
    - kek_wrap_key
    - OPENSSL_free
    - OPENSSL_malloc
    - EVP_PBE_CipherInit
    linkageType: ''
    returnType: int
    signature: "cms_RecipientInfo_pwri_crypt(CMS_ContentInfo *cms, CMS_RecipientInfo
      *ri,\n                                 int en_de)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: CMS_get0_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: '*CMS_get0_type(const CMS_ContentInfo *cms)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_ContentInfo_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:30,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:32,1
    - Dst: CMS_set_detached
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 37
    functionName: cms_Data_create
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - CMS_ContentInfo_new
    - OBJ_nid2obj
    - CMS_set_detached
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: '*cms_Data_create(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_get0_content
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:41,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:46,1
    - Dst: BIO_s_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:46,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:51,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:51,1
    - Dst: BIO_new_mem_buf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    constantsTouched: []
    func_position:
      end: 54
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 54
    functionName: cms_content_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - CMS_get0_content
    - BIO_s_mem
    - BIO_new_mem_buf
    - BIO_s_null
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: '*cms_content_bio(CMS_ContentInfo *cms)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cms_content_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:62,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:64,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:67,1
    - Dst: cms_SignedData_init_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:73,1
    - Dst: cms_DigestedData_init_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:77,1
    - Dst: cms_CompressedData_init_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:81,1
    - Dst: cms_EncryptedData_init_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:86,1
    - Dst: cms_EnvelopedData_init_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:90,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:94,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:99,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:102,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - cms
    - icont
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    constantsTouched: []
    func_position:
      end: 105
      start: 56
    functionDepth: 5
    functionLinenumber: 56
    functionLinenumberEnd: 105
    functionName: CMS_dataInit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - BIO_push
    - cms_content_bio
    - OBJ_obj2nid
    - cms_SignedData_init_bio
    - cms_EncryptedData_init_bio
    - BIO_free
    - cms_DigestedData_init_bio
    - cms_CompressedData_init_bio
    - cms_EnvelopedData_init_bio
    linkageType: ''
    returnType: BIO
    signature: '*CMS_dataInit(CMS_ContentInfo *cms, BIO *icont)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_get0_content
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:109,1
    - Dst: BIO_find_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:117,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:119,1
    - Dst: BIO_get_mem_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:122,1
    - Dst: BIO_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:124,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:125,1
    - Dst: ASN1_STRING_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:126,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:130,1
    - Dst: cms_SignedData_final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:140,1
    - Dst: cms_DigestedData_do_final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:143,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:146,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - cms
    - cmsbio
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    constantsTouched: []
    func_position:
      end: 149
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 149
    functionName: CMS_dataFinal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - CMS_get0_content
    - ASN1_STRING_set0
    - BIO_set_flags
    - cms_SignedData_final
    - OBJ_obj2nid
    - BIO_set_mem_eof_return
    - cms_DigestedData_do_final
    - BIO_find_type
    - BIO_get_mem_data
    linkageType: ''
    returnType: int
    signature: CMS_dataFinal(CMS_ContentInfo *cms, BIO *cmsbio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:158,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 188
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 188
    functionName: CMS_get0_content
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 2
    functionsReached:
    - CMSerr
    - OBJ_obj2nid
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: '**CMS_get0_content(CMS_ContentInfo *cms)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:197,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 222
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 222
    functionName: cms_get0_econtent_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - OBJ_obj2nid
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: '**cms_get0_econtent_type(CMS_ContentInfo *cms)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cms_get0_econtent_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    constantsTouched: []
    func_position:
      end: 231
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 231
    functionName: CMS_get0_eContentType
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - cms_get0_econtent_type
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: '*CMS_get0_eContentType(CMS_ContentInfo *cms)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cms_get0_econtent_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:236,1
    - Dst: OBJ_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:241,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - cms
    - oid
    argTypes:
    - CMS_ContentInfo*
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 247
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 247
    functionName: CMS_set1_eContentType
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - ASN1_OBJECT_free
    - cms_get0_econtent_type
    - OBJ_dup
    linkageType: ''
    returnType: int
    signature: CMS_set1_eContentType(CMS_ContentInfo *cms, const ASN1_OBJECT *oid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_get0_content
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    constantsTouched: []
    func_position:
      end: 258
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 258
    functionName: CMS_is_detached
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - CMS_get0_content
    linkageType: ''
    returnType: int
    signature: CMS_is_detached(CMS_ContentInfo *cms)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_get0_content
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:263,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:267,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:272,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - cms
    - detached
    argTypes:
    - CMS_ContentInfo*
    - int
    constantsTouched: []
    func_position:
      end: 282
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 282
    functionName: CMS_set_detached
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 1
    functionsReached:
    - CMSerr
    - CMS_get0_content
    - ASN1_OCTET_STRING_new
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: int
    signature: CMS_set_detached(CMS_ContentInfo *cms, int detached)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:291,1
    - Dst: EVP_get_digestbyobj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:292,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:294,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:298,1
    - Dst: BIO_f_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:298,1
    - Dst: BIO_set_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:299,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:300,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:305,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - digestAlgorithm
    argTypes:
    - X509_ALGOR*
    constantsTouched: []
    func_position:
      end: 307
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 307
    functionName: cms_DigestAlgorithm_init_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - BIO_set_md
    - BIO_free
    - BIO_new
    - BIO_f_md
    - EVP_get_digestbyobj
    - X509_ALGOR_get0
    linkageType: ''
    returnType: BIO
    signature: '*cms_DigestAlgorithm_init_bio(X509_ALGOR *digestAlgorithm)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:316,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:317,1
    - Dst: BIO_find_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:321,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:323,1
    - Dst: BIO_get_md_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:327,1
    - Dst: EVP_MD_CTX_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:328,1
    - Dst: EVP_MD_pkey_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:333,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:333,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:334,1
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - mctx
    - chain
    - mdalg
    argTypes:
    - EVP_MD_CTX*
    - BIO*
    - X509_ALGOR*
    constantsTouched: []
    func_position:
      end: 337
      start: 311
    functionDepth: 4
    functionLinenumber: 311
    functionLinenumberEnd: 337
    functionName: cms_DigestAlgorithm_find_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - EVP_MD_CTX_copy_ex
    - EVP_MD_pkey_type
    - EVP_MD_CTX_type
    - OBJ_obj2nid
    - BIO_get_md_ctx
    - EVP_MD_CTX_md
    - BIO_find_type
    - BIO_next
    - X509_ALGOR_get0
    linkageType: ''
    returnType: int
    signature: "cms_DigestAlgorithm_find_ctx(EVP_MD_CTX *mctx, BIO *chain,\n                                 X509_ALGOR
      *mdalg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:342,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 358
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 358
    functionName: cms_get0_certificate_choices
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - OBJ_obj2nid
    linkageType: ''
    returnType: STACK_OF
    signature: '**cms_get0_certificate_choices(CMS_ContentInfo *cms)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:362,1
    - Dst: cms_get0_certificate_choices
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:364,1
    - Dst: sk_CMS_CertificateChoices_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:368,1
    - Dst: M_ASN1_new_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:371,1
    - Dst: sk_CMS_CertificateChoices_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:374,1
    - Dst: M_ASN1_free_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:375,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    constantsTouched: []
    func_position:
      end: 379
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 379
    functionName: CMS_add0_CertificateChoices
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - M_ASN1_new_of
    - cms_get0_certificate_choices
    - sk_CMS_CertificateChoices_push
    - STACK_OF
    - M_ASN1_free_of
    - sk_CMS_CertificateChoices_new_null
    linkageType: ''
    returnType: CMS_CertificateChoices
    signature: '*CMS_add0_CertificateChoices(CMS_ContentInfo *cms)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:384,1
    - Dst: cms_get0_certificate_choices
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:386,1
    - Dst: sk_CMS_CertificateChoices_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:389,1
    - Dst: sk_CMS_CertificateChoices_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:390,1
    - Dst: X509_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:392,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:393,1
    - Dst: CMS_add0_CertificateChoices
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:399,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - cms
    - cert
    argTypes:
    - CMS_ContentInfo*
    - X509*
    constantsTouched: []
    func_position:
      end: 405
      start: 381
    functionDepth: 3
    functionLinenumber: 381
    functionLinenumberEnd: 405
    functionName: CMS_add0_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - X509_cmp
    - CMSerr
    - cms_get0_certificate_choices
    - sk_CMS_CertificateChoices_num
    - STACK_OF
    - CMS_add0_CertificateChoices
    - sk_CMS_CertificateChoices_value
    linkageType: ''
    returnType: int
    signature: CMS_add0_cert(CMS_ContentInfo *cms, X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_add0_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:410,1
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cms
    - cert
    argTypes:
    - CMS_ContentInfo*
    - X509*
    constantsTouched: []
    func_position:
      end: 414
      start: 407
    functionDepth: 4
    functionLinenumber: 407
    functionLinenumberEnd: 414
    functionName: CMS_add1_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - CMS_add0_cert
    - X509_up_ref
    linkageType: ''
    returnType: int
    signature: CMS_add1_cert(CMS_ContentInfo *cms, X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:419,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 435
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 435
    functionName: cms_get0_revocation_choices
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - OBJ_obj2nid
    linkageType: ''
    returnType: STACK_OF
    signature: '**cms_get0_revocation_choices(CMS_ContentInfo *cms)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:439,1
    - Dst: cms_get0_revocation_choices
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:441,1
    - Dst: sk_CMS_RevocationInfoChoice_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:445,1
    - Dst: M_ASN1_new_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:448,1
    - Dst: sk_CMS_RevocationInfoChoice_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:451,1
    - Dst: M_ASN1_free_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:452,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    constantsTouched: []
    func_position:
      end: 456
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 456
    functionName: CMS_add0_RevocationInfoChoice
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - M_ASN1_new_of
    - STACK_OF
    - M_ASN1_free_of
    - sk_CMS_RevocationInfoChoice_new_null
    - cms_get0_revocation_choices
    - sk_CMS_RevocationInfoChoice_push
    linkageType: ''
    returnType: CMS_RevocationInfoChoice
    signature: '*CMS_add0_RevocationInfoChoice(CMS_ContentInfo *cms)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_add0_RevocationInfoChoice
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cms
    - crl
    argTypes:
    - CMS_ContentInfo*
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 467
      start: 458
    functionDepth: 3
    functionLinenumber: 458
    functionLinenumberEnd: 467
    functionName: CMS_add0_crl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - CMS_add0_RevocationInfoChoice
    linkageType: ''
    returnType: int
    signature: CMS_add0_crl(CMS_ContentInfo *cms, X509_CRL *crl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_add0_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:472,1
    - Dst: X509_CRL_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cms
    - crl
    argTypes:
    - CMS_ContentInfo*
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 476
      start: 469
    functionDepth: 4
    functionLinenumber: 469
    functionLinenumberEnd: 476
    functionName: CMS_add1_crl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - X509_CRL_up_ref
    - CMS_add0_crl
    linkageType: ''
    returnType: int
    signature: CMS_add1_crl(CMS_ContentInfo *cms, X509_CRL *crl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:536,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:536,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:539,1
    - Dst: X509_get_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ias
    - cert
    argTypes:
    - CMS_IssuerAndSerialNumber*
    - X509*
    constantsTouched: []
    func_position:
      end: 540
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 540
    functionName: cms_ias_cert_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - X509_get_serialNumber
    - ASN1_INTEGER_cmp
    - X509_NAME_cmp
    - X509_get_issuer_name
    linkageType: ''
    returnType: int
    signature: cms_ias_cert_cmp(CMS_IssuerAndSerialNumber *ias, X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_subject_key_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:544,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - keyid
    - cert
    argTypes:
    - ASN1_OCTET_STRING*
    - X509*
    constantsTouched: []
    func_position:
      end: 549
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 549
    functionName: cms_keyid_cert_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_cmp
    - X509_get0_subject_key_id
    linkageType: ''
    returnType: int
    signature: cms_keyid_cert_cmp(ASN1_OCTET_STRING *keyid, X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: M_ASN1_new_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:554,1
    - Dst: X509_NAME_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:557,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:557,1
    - Dst: ASN1_STRING_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:559,1
    - Dst: X509_get_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:559,1
    - Dst: M_ASN1_free_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:561,1
    - Dst: M_ASN1_free_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:565,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:566,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - pias
    - cert
    argTypes:
    - CMS_IssuerAndSerialNumber**
    - X509*
    constantsTouched: []
    func_position:
      end: 568
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 568
    functionName: cms_set1_ias
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - M_ASN1_new_of
    - M_ASN1_free_of
    - X509_NAME_set
    - X509_get_serialNumber
    - ASN1_STRING_copy
    - X509_get_issuer_name
    linkageType: ''
    returnType: int
    signature: cms_set1_ias(CMS_IssuerAndSerialNumber **pias, X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_subject_key_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:574,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:576,1
    - Dst: ASN1_STRING_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:579,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:581,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c:584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - pkeyid
    - cert
    argTypes:
    - ASN1_OCTET_STRING**
    - X509*
    constantsTouched: []
    func_position:
      end: 587
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 587
    functionName: cms_set1_keyid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - ASN1_STRING_dup
    - X509_get0_subject_key_id
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: int
    signature: cms_set1_keyid(ASN1_OCTET_STRING **pkeyid, X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:25,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: cms_get0_enveloped
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 1
    functionsReached:
    - CMSerr
    - OBJ_obj2nid
    linkageType: ''
    returnType: CMS_EnvelopedData
    signature: '*cms_get0_enveloped(CMS_ContentInfo *cms)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: M_ASN1_new_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:36,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:38,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:43,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:44,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:45,1
    - Dst: cms_get0_enveloped
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    constantsTouched: []
    func_position:
      end: 49
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 49
    functionName: cms_enveloped_data_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - M_ASN1_new_of
    - OBJ_nid2obj
    - ASN1_OBJECT_free
    - cms_get0_enveloped
    linkageType: ''
    returnType: CMS_EnvelopedData
    signature: '*cms_enveloped_data_init(CMS_ContentInfo *cms)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:61,1
    - Dst: EVP_PKEY*::ameth::pkey_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:68,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:70,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:75,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - ri
    - cmd
    argTypes:
    - CMS_RecipientInfo*
    - int
    constantsTouched: []
    func_position:
      end: 79
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 79
    functionName: cms_env_asn1_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - EVP_PKEY_CTX_get0_pkey
    - EVP_PKEY*::ameth::pkey_ctrl
    linkageType: ''
    returnType: int
    signature: cms_env_asn1_ctrl(CMS_RecipientInfo *ri, int cmd)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: CMS_RecipientInfo_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: CMS_RecipientInfo_type(CMS_RecipientInfo *ri)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: CMS_RecipientInfo_get0_pkey_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: '*CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_ContentInfo_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:108,1
    - Dst: cms_enveloped_data_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:111,1
    - Dst: cms_EncryptedContent_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:114,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:119,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:120,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: CMS_EnvelopedData_create
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - cms_EncryptedContent_init
    - CMS_ContentInfo_free
    - CMS_ContentInfo_new
    - cms_enveloped_data_init
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: '*CMS_EnvelopedData_create(const EVP_CIPHER *cipher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: M_ASN1_new_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:134,1
    - Dst: cms_set1_SignerIdentifier
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:154,1
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:157,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:158,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:164,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:167,1
    - Dst: cms_env_asn1_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:169,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - ri
    - recip
    - pk
    - flags
    argTypes:
    - CMS_RecipientInfo*
    - X509*
    - EVP_PKEY*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 172
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 172
    functionName: cms_RecipientInfo_ktri_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - M_ASN1_new_of
    - X509_up_ref
    - EVP_PKEY_CTX_new
    - EVP_PKEY_encrypt_init
    - cms_set1_SignerIdentifier
    - EVP_PKEY_up_ref
    - cms_env_asn1_ctrl
    linkageType: ''
    returnType: int
    signature: "cms_RecipientInfo_ktri_init(CMS_RecipientInfo *ri, X509 *recip,\n
      \                                      EVP_PKEY *pk, unsigned int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cms_get0_enveloped
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:184,1
    - Dst: M_ASN1_new_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:189,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:193,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:195,1
    - Dst: cms_pkey_get_ri_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:199,1
    - Dst: cms_RecipientInfo_ktri_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:202,1
    - Dst: cms_RecipientInfo_kari_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:207,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:212,1
    - Dst: sk_CMS_RecipientInfo_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:218,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:224,1
    - Dst: M_ASN1_free_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:226,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 3
    argNames:
    - cms
    - recip
    - flags
    argTypes:
    - CMS_ContentInfo*
    - X509*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 229
      start: 178
    functionDepth: 4
    functionLinenumber: 178
    functionLinenumberEnd: 229
    functionName: CMS_add1_recipient_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - M_ASN1_new_of
    - cms_RecipientInfo_ktri_init
    - M_ASN1_free_of
    - sk_CMS_RecipientInfo_push
    - cms_RecipientInfo_kari_init
    - cms_pkey_get_ri_type
    - X509_get0_pubkey
    - cms_get0_enveloped
    linkageType: ''
    returnType: CMS_RecipientInfo
    signature: "*CMS_add1_recipient_cert(CMS_ContentInfo *cms,\n                                           X509
      *recip, unsigned int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:237,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - ri
    - pk
    - recip
    - palg
    argTypes:
    - CMS_RecipientInfo*
    - EVP_PKEY**
    - X509**
    - X509_ALGOR**
    constantsTouched: []
    func_position:
      end: 251
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 251
    functionName: CMS_RecipientInfo_ktri_get0_algs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMSerr
    linkageType: ''
    returnType: int
    signature: "CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo *ri,\n                                     EVP_PKEY
      **pk, X509 **recip,\n                                     X509_ALGOR **palg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:260,1
    - Dst: cms_SignerIdentifier_get0_signer_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ri
    - keyid
    - issuer
    - sno
    argTypes:
    - CMS_RecipientInfo*
    - ASN1_OCTET_STRING**
    - X509_NAME**
    - ASN1_INTEGER**
    constantsTouched: []
    func_position:
      end: 267
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 267
    functionName: CMS_RecipientInfo_ktri_get0_signer_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - cms_SignerIdentifier_get0_signer_id
    linkageType: ''
    returnType: int
    signature: "CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri,\n                                          ASN1_OCTET_STRING
      **keyid,\n                                          X509_NAME **issuer,\n                                          ASN1_INTEGER
      **sno)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:272,1
    - Dst: cms_SignerIdentifier_cert_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ri
    - cert
    argTypes:
    - CMS_RecipientInfo*
    - X509*
    constantsTouched: []
    func_position:
      end: 277
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 277
    functionName: CMS_RecipientInfo_ktri_cert_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - cms_SignerIdentifier_cert_cmp
    linkageType: ''
    returnType: int
    signature: CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ri
    - pkey
    argTypes:
    - CMS_RecipientInfo*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 287
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 287
    functionName: CMS_RecipientInfo_set0_pkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMSerr
    linkageType: ''
    returnType: int
    signature: CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:303,1
    - Dst: cms_env_asn1_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:312,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:315,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:319,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:323,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:325,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:329,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:332,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:335,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:339,1
    - Dst: ASN1_STRING_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:342,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:348,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:350,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 2
    argNames:
    - cms
    - ri
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    constantsTouched: []
    func_position:
      end: 353
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 353
    functionName: cms_RecipientInfo_ktri_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - ASN1_STRING_set0
    - EVP_PKEY_encrypt_init
    - EVP_PKEY_CTX_new
    - EVP_PKEY_encrypt
    - OPENSSL_malloc
    - EVP_PKEY_CTX_ctrl
    - EVP_PKEY_CTX_free
    - OPENSSL_free
    - cms_env_asn1_ctrl
    linkageType: ''
    returnType: int
    signature: "cms_RecipientInfo_ktri_encrypt(CMS_ContentInfo *cms,\n                                          CMS_RecipientInfo
      *ri)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:369,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:373,1
    - Dst: EVP_PKEY_decrypt_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:377,1
    - Dst: cms_env_asn1_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:380,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:383,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:385,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:389,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:394,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:397,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:401,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:404,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:410,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:415,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:418,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 2
    argNames:
    - cms
    - ri
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    constantsTouched: []
    func_position:
      end: 421
      start: 357
    functionDepth: 3
    functionLinenumber: 357
    functionLinenumberEnd: 421
    functionName: cms_RecipientInfo_ktri_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - EVP_PKEY_CTX_new
    - OPENSSL_malloc
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_ctrl
    - EVP_PKEY_decrypt_init
    - EVP_PKEY_decrypt
    - OPENSSL_clear_free
    - OPENSSL_free
    - cms_env_asn1_ctrl
    linkageType: ''
    returnType: int
    signature: "cms_RecipientInfo_ktri_decrypt(CMS_ContentInfo *cms,\n                                          CMS_RecipientInfo
      *ri)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:431,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - ri
    - id
    - idlen
    argTypes:
    - CMS_RecipientInfo*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 440
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 440
    functionName: CMS_RecipientInfo_kekri_id_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - ASN1_OCTET_STRING_cmp
    linkageType: ''
    returnType: int
    signature: "CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri,\n                                   const
      unsigned char *id, size_t idlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 459
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 459
    functionName: aes_wrap_keylen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: aes_wrap_keylen(int nid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cms_get0_enveloped
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:471,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:490,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:499,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:505,1
    - Dst: M_ASN1_new_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:512,1
    - Dst: M_ASN1_new_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:516,1
    - Dst: M_ASN1_new_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:524,1
    - Dst: sk_CMS_RecipientInfo_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:529,1
    - Dst: ASN1_STRING_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:539,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:548,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:549,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:554,1
    - Dst: M_ASN1_free_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:556,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 9
    argNames:
    - cms
    - nid
    - key
    - keylen
    - id
    - idlen
    - date
    - otherTypeId
    - otherType
    argTypes:
    - CMS_ContentInfo*
    - int
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - ASN1_GENERALIZEDTIME*
    - ASN1_OBJECT*
    - ASN1_TYPE*
    constantsTouched: []
    func_position:
      end: 559
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 559
    functionName: CMS_add0_recipient_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - M_ASN1_new_of
    - ASN1_STRING_set0
    - M_ASN1_free_of
    - sk_CMS_RecipientInfo_push
    - X509_ALGOR_set0
    - OBJ_nid2obj
    - cms_get0_enveloped
    linkageType: ''
    returnType: CMS_RecipientInfo
    signature: "*CMS_add0_recipient_key(CMS_ContentInfo *cms, int nid,\n                                          unsigned
      char *key, size_t keylen,\n                                          unsigned
      char *id, size_t idlen,\n                                          ASN1_GENERALIZEDTIME
      *date,\n                                          ASN1_OBJECT *otherTypeId,\n
      \                                         ASN1_TYPE *otherType)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:570,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 6
    argNames:
    - ri
    - palg
    - pid
    - pdate
    - potherid
    - pothertype
    argTypes:
    - CMS_RecipientInfo*
    - X509_ALGOR**
    - ASN1_OCTET_STRING**
    - ASN1_GENERALIZEDTIME**
    - ASN1_OBJECT**
    - ASN1_TYPE**
    constantsTouched: []
    func_position:
      end: 593
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 593
    functionName: CMS_RecipientInfo_kekri_get0_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMSerr
    linkageType: ''
    returnType: int
    signature: "CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo *ri,\n                                    X509_ALGOR
      **palg,\n                                    ASN1_OCTET_STRING **pid,\n                                    ASN1_GENERALIZEDTIME
      **pdate,\n                                    ASN1_OBJECT **potherid,\n                                    ASN1_TYPE
      **pothertype)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ri
    - key
    - keylen
    argTypes:
    - CMS_RecipientInfo*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 608
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 608
    functionName: CMS_RecipientInfo_set0_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMSerr
    linkageType: ''
    returnType: int
    signature: "CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri,\n                               unsigned
      char *key, size_t keylen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:627,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:631,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:632,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:637,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:640,1
    - Dst: AES_wrap_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:644,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:647,1
    - Dst: ASN1_STRING_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:651,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:658,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:659,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - cms
    - ri
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    constantsTouched: []
    func_position:
      end: 663
      start: 612
    functionDepth: 2
    functionLinenumber: 612
    functionLinenumberEnd: 663
    functionName: cms_RecipientInfo_kekri_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - ASN1_STRING_set0
    - AES_wrap_key
    - OPENSSL_cleanse
    - OPENSSL_free
    - OPENSSL_malloc
    - AES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "cms_RecipientInfo_kekri_encrypt(CMS_ContentInfo *cms,\n                                           CMS_RecipientInfo
      *ri)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:682,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:686,1
    - Dst: aes_wrap_keylen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:687,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:688,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:696,1
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:701,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:702,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:707,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:710,1
    - Dst: AES_unwrap_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:714,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:719,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:731,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:732,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 2
    argNames:
    - cms
    - ri
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    constantsTouched: []
    func_position:
      end: 736
      start: 667
    functionDepth: 3
    functionLinenumber: 667
    functionLinenumberEnd: 736
    functionName: cms_RecipientInfo_kekri_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - OBJ_obj2nid
    - AES_unwrap_key
    - OPENSSL_cleanse
    - OPENSSL_free
    - AES_set_decrypt_key
    - OPENSSL_malloc
    - aes_wrap_keylen
    linkageType: ''
    returnType: int
    signature: "cms_RecipientInfo_kekri_decrypt(CMS_ContentInfo *cms,\n                                           CMS_RecipientInfo
      *ri)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cms_RecipientInfo_ktri_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:742,1
    - Dst: cms_RecipientInfo_kekri_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:745,1
    - Dst: cms_RecipientInfo_pwri_crypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:748,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - cms
    - ri
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    constantsTouched: []
    func_position:
      end: 755
      start: 738
    functionDepth: 6
    functionLinenumber: 738
    functionLinenumberEnd: 755
    functionName: CMS_RecipientInfo_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - cms_RecipientInfo_pwri_crypt
    - cms_RecipientInfo_kekri_decrypt
    - cms_RecipientInfo_ktri_decrypt
    linkageType: ''
    returnType: int
    signature: CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cms_RecipientInfo_ktri_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:761,1
    - Dst: cms_RecipientInfo_kari_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:764,1
    - Dst: cms_RecipientInfo_kekri_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:767,1
    - Dst: cms_RecipientInfo_pwri_crypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:770,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - cms
    - ri
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    constantsTouched: []
    func_position:
      end: 777
      start: 757
    functionDepth: 6
    functionLinenumber: 757
    functionLinenumberEnd: 777
    functionName: CMS_RecipientInfo_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - cms_RecipientInfo_kekri_encrypt
    - cms_RecipientInfo_ktri_encrypt
    - cms_RecipientInfo_kari_encrypt
    - cms_RecipientInfo_pwri_crypt
    linkageType: ''
    returnType: int
    signature: CMS_RecipientInfo_encrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_CMS_CertificateChoices_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:787,1
    - Dst: sk_CMS_CertificateChoices_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:789,1
    - Dst: sk_CMS_RevocationInfoChoice_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:799,1
    - Dst: sk_CMS_RevocationInfoChoice_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:801,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - env
    argTypes:
    - CMS_EnvelopedData*
    constantsTouched: []
    func_position:
      end: 807
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 807
    functionName: cms_env_set_originfo_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - sk_CMS_RevocationInfoChoice_value
    - sk_CMS_CertificateChoices_num
    - sk_CMS_RevocationInfoChoice_num
    - sk_CMS_CertificateChoices_value
    linkageType: ''
    returnType: void
    signature: cms_env_set_originfo_version(CMS_EnvelopedData *env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cms_env_set_originfo_version
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:820,1
    - Dst: sk_CMS_RecipientInfo_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:825,1
    - Dst: sk_CMS_RecipientInfo_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:826,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 1
    argNames:
    - env
    argTypes:
    - CMS_EnvelopedData*
    constantsTouched: []
    func_position:
      end: 840
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 840
    functionName: cms_env_set_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - cms_env_set_originfo_version
    - sk_CMS_RecipientInfo_value
    - sk_CMS_RecipientInfo_num
    linkageType: ''
    returnType: void
    signature: cms_env_set_version(CMS_EnvelopedData *env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:845,1
    - Dst: cms_EncryptedContent_init_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:853,1
    - Dst: sk_CMS_RecipientInfo_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:864,1
    - Dst: sk_CMS_RecipientInfo_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:865,1
    - Dst: CMS_RecipientInfo_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:866,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:867,1
    - Dst: cms_env_set_version
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:872,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:878,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:883,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    constantsTouched: []
    func_position:
      end: 886
      start: 842
    functionDepth: 7
    functionLinenumber: 842
    functionLinenumberEnd: 886
    functionName: cms_EnvelopedData_init_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 1
    functionsReached:
    - cms_EncryptedContent_init_bio
    - CMSerr
    - sk_CMS_RecipientInfo_value
    - STACK_OF
    - sk_CMS_RecipientInfo_num
    - BIO_free
    - cms_env_set_version
    - CMS_RecipientInfo_encrypt
    - OPENSSL_clear_free
    linkageType: ''
    returnType: BIO
    signature: '*cms_EnvelopedData_init_bio(CMS_ContentInfo *cms)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::pkey_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c:897,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pk
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 902
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 902
    functionName: cms_pkey_get_ri_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY*::ameth::pkey_ctrl
    linkageType: ''
    returnType: int
    signature: cms_pkey_get_ri_type(EVP_PKEY *pk)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_signed_get0_data_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:29,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:30,1
    - Dst: ASN1_item_unpack
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:36,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:36,1
    - Dst: CMS_ReceiptRequest_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - si
    - prr
    argTypes:
    - CMS_SignerInfo*
    - CMS_ReceiptRequest**
    constantsTouched: []
    func_position:
      end: 44
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 44
    functionName: CMS_get1_ReceiptRequest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - CMS_signed_get0_data_by_OBJ
    - CMS_ReceiptRequest_free
    - OBJ_nid2obj
    - ASN1_ITEM_rptr
    - ASN1_item_unpack
    linkageType: ''
    returnType: int
    signature: CMS_get1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest **prr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_ReceiptRequest_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:54,1
    - Dst: ASN1_STRING_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:58,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:60,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:62,1
    - Dst: sk_GENERAL_NAMES_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:66,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:80,1
    - Dst: CMS_ReceiptRequest_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:83,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 5
    argNames:
    - id
    - idlen
    - allorfirst
    - receiptList
    - receiptsTo
    argTypes:
    - unsigned char*
    - int
    - int
    - STACK_OF*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 86
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 86
    functionName: CMS_ReceiptRequest_create0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - ASN1_STRING_set0
    - RAND_bytes
    - CMS_ReceiptRequest_free
    - ASN1_STRING_set
    - CMS_ReceiptRequest_new
    - sk_GENERAL_NAMES_pop_free
    linkageType: ''
    returnType: CMS_ReceiptRequest
    signature: "*CMS_ReceiptRequest_create0(unsigned char *id, int idlen,\n                                               int
      allorfirst,\n                                               STACK_OF(GENERAL_NAMES)\n
      \                                              *receiptList, STACK_OF(GENERAL_NAMES)\n
      \                                              *receiptsTo)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_CMS_ReceiptRequest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:93,1
    - Dst: CMS_signed_add1_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:97,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:105,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - si
    - rr
    argTypes:
    - CMS_SignerInfo*
    - CMS_ReceiptRequest*
    constantsTouched: []
    func_position:
      end: 111
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 111
    functionName: CMS_add1_ReceiptRequest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - OPENSSL_free
    - CMS_signed_add1_attr_by_NID
    - i2d_CMS_ReceiptRequest
    linkageType: ''
    returnType: int
    signature: CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 5
    argNames:
    - rr
    - pcid
    - pallorfirst
    - plist
    - prto
    argTypes:
    - CMS_ReceiptRequest*
    - ASN1_STRING**
    - int*
    - STACK_OF**
    - STACK_OF**
    constantsTouched: []
    func_position:
      end: 134
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 134
    functionName: CMS_ReceiptRequest_get0_values
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr,\n                                    ASN1_STRING
      **pcid,\n                                    int *pallorfirst,\n                                    STACK_OF(GENERAL_NAMES)
      **plist,\n                                    STACK_OF(GENERAL_NAMES) **prto)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyobj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:142,1
    - Dst: ASN1_item_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:145,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - si
    - dig
    - diglen
    argTypes:
    - CMS_SignerInfo*
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 149
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 149
    functionName: cms_msgSigDigest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_digest
    - EVP_get_digestbyobj
    linkageType: ''
    returnType: int
    signature: "cms_msgSigDigest(CMS_SignerInfo *si,\n                            unsigned
      char *dig, unsigned int *diglen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cms_msgSigDigest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:157,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:158,1
    - Dst: CMS_signed_add1_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:161,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - CMS_SignerInfo*
    - CMS_SignerInfo*
    constantsTouched: []
    func_position:
      end: 167
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 167
    functionName: cms_msgSigDigest_add1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - cms_msgSigDigest
    - CMS_signed_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: cms_msgSigDigest_add1(CMS_SignerInfo *dest, CMS_SignerInfo *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:176,1
    - Dst: CMS_get0_SignerInfos
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:184,1
    - Dst: CMS_get0_SignerInfos
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:185,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:189,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:190,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:195,1
    - Dst: CMS_get0_eContentType
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:195,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:196,1
    - Dst: CMS_get0_content
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:201,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:203,1
    - Dst: ASN1_item_unpack
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:207,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:207,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:210,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:216,1
    - Dst: sk_CMS_SignerInfo_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:217,1
    - Dst: ASN1_STRING_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:218,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:222,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:223,1
    - Dst: sk_CMS_SignerInfo_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:227,1
    - Dst: CMS_signed_get0_data_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:231,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:232,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:237,1
    - Dst: cms_msgSigDigest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:241,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:242,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:247,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:251,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:252,1
    - Dst: CMS_signed_get0_data_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:259,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:260,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:263,1
    - Dst: OBJ_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:269,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:270,1
    - Dst: CMS_get1_ReceiptRequest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:276,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:277,1
    - Dst: ASN1_STRING_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:281,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:283,1
    - Dst: CMS_ReceiptRequest_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:290,1
    - Dst: M_ASN1_free_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:291,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 88
    argCount: 2
    argNames:
    - cms
    - req_cms
    argTypes:
    - CMS_ContentInfo*
    - CMS_ContentInfo*
    constantsTouched: []
    func_position:
      end: 294
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 294
    functionName: cms_Receipt_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - CMS_get0_eContentType
    - CMSerr
    - CMS_ReceiptRequest_free
    - sk_CMS_SignerInfo_num
    - OBJ_nid2obj
    - CMS_get1_ReceiptRequest
    - ASN1_item_unpack
    - OBJ_cmp
    - CMS_get0_SignerInfos
    - ASN1_STRING_cmp
    - sk_CMS_SignerInfo_value
    - cms_msgSigDigest
    - CMS_get0_content
    - CMS_signed_get0_data_by_OBJ
    - memcmp
    - STACK_OF
    - OBJ_obj2nid
    - M_ASN1_free_of
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: cms_Receipt_verify(CMS_ContentInfo *cms, CMS_ContentInfo *req_cms)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_get1_ReceiptRequest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:312,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:313,1
    - Dst: CMS_signed_get0_data_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:319,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:320,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:323,1
    - Dst: ASN1_item_pack
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:332,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:332,1
    - Dst: CMS_ReceiptRequest_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c:335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    constantsTouched: []
    func_position:
      end: 337
      start: 301
    functionDepth: 3
    functionLinenumber: 301
    functionLinenumberEnd: 337
    functionName: cms_encode_Receipt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - CMS_signed_get0_data_by_OBJ
    - CMS_ReceiptRequest_free
    - ASN1_item_pack
    - OBJ_nid2obj
    - ASN1_ITEM_rptr
    - CMS_get1_ReceiptRequest
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: '*cms_encode_Receipt(CMS_SignerInfo *si)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:25,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: cms_get0_signed
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - OBJ_obj2nid
    linkageType: ''
    returnType: CMS_SignedData
    signature: '*cms_get0_signed(CMS_ContentInfo *cms)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: M_ASN1_new_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:35,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:37,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:42,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:44,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:45,1
    - Dst: cms_get0_signed
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    constantsTouched: []
    func_position:
      end: 49
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 49
    functionName: cms_signed_data_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - M_ASN1_new_of
    - cms_get0_signed
    - OBJ_nid2obj
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: CMS_SignedData
    signature: '*cms_signed_data_init(CMS_ContentInfo *cms)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cms_signed_data_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: CMS_SignedData_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - cms_signed_data_init
    linkageType: ''
    returnType: int
    signature: CMS_SignedData_init(CMS_ContentInfo *cms)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_CMS_CertificateChoices_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:70,1
    - Dst: sk_CMS_CertificateChoices_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:71,1
    - Dst: sk_CMS_RevocationInfoChoice_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:84,1
    - Dst: sk_CMS_RevocationInfoChoice_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:85,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:92,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:96,1
    - Dst: sk_CMS_SignerInfo_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:97,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 1
    argNames:
    - sd
    argTypes:
    - CMS_SignedData*
    constantsTouched: []
    func_position:
      end: 110
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 110
    functionName: cms_sd_set_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - sk_CMS_RevocationInfoChoice_value
    - sk_CMS_CertificateChoices_num
    - sk_CMS_SignerInfo_value
    - OBJ_obj2nid
    - sk_CMS_SignerInfo_num
    - sk_CMS_RevocationInfoChoice_num
    - sk_CMS_CertificateChoices_value
    linkageType: ''
    returnType: void
    signature: cms_sd_set_version(CMS_SignedData *sd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:116,1
    - Dst: CMS_get0_SignerInfos
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:119,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:120,1
    - Dst: sk_CMS_SignerInfo_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:122,1
    - Dst: CMS_signed_get_attr_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:125,1
    - Dst: OBJ_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:127,1
    - Dst: CMS_signed_get0_data_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:130,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:131,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:135,1
    - Dst: CMS_signed_add1_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:140,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:147,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - cms
    - si
    argTypes:
    - CMS_ContentInfo*
    - CMS_SignerInfo*
    constantsTouched: []
    func_position:
      end: 149
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 149
    functionName: cms_copy_messageDigest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - CMS_signed_get0_data_by_OBJ
    - CMS_signed_get_attr_count
    - sk_CMS_SignerInfo_value
    - STACK_OF
    - sk_CMS_SignerInfo_num
    - OBJ_nid2obj
    - CMS_signed_add1_attr_by_NID
    - OBJ_cmp
    - CMS_get0_SignerInfos
    linkageType: ''
    returnType: int
    signature: cms_copy_messageDigest(CMS_ContentInfo *cms, CMS_SignerInfo *si)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cms_set1_ias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:155,1
    - Dst: cms_set1_keyid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:160,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - sid
    - cert
    - type
    argTypes:
    - CMS_SignerIdentifier*
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 172
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 172
    functionName: cms_set1_SignerIdentifier
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 1
    functionsReached:
    - CMSerr
    - cms_set1_keyid
    - cms_set1_ias
    linkageType: ''
    returnType: int
    signature: cms_set1_SignerIdentifier(CMS_SignerIdentifier *sid, X509 *cert, int
      type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - sid
    - keyid
    - issuer
    - sno
    argTypes:
    - CMS_SignerIdentifier*
    - ASN1_OCTET_STRING**
    - X509_NAME**
    - ASN1_INTEGER**
    constantsTouched: []
    func_position:
      end: 190
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 190
    functionName: cms_SignerIdentifier_get0_signer_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "cms_SignerIdentifier_get0_signer_id(CMS_SignerIdentifier *sid,\n                                        ASN1_OCTET_STRING
      **keyid,\n                                        X509_NAME **issuer,\n                                        ASN1_INTEGER
      **sno)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cms_ias_cert_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:195,1
    - Dst: cms_keyid_cert_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sid
    - cert
    argTypes:
    - CMS_SignerIdentifier*
    - X509*
    constantsTouched: []
    func_position:
      end: 200
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 200
    functionName: cms_SignerIdentifier_cert_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 1
    functionsReached:
    - cms_keyid_cert_cmp
    - cms_ias_cert_cmp
    linkageType: ''
    returnType: int
    signature: cms_SignerIdentifier_cert_cmp(CMS_SignerIdentifier *sid, X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::pkey_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:208,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:210,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - si
    - cmd
    argTypes:
    - CMS_SignerInfo*
    - int
    constantsTouched: []
    func_position:
      end: 218
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 218
    functionName: cms_sd_asn1_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - EVP_PKEY*::ameth::pkey_ctrl
    linkageType: ''
    returnType: int
    signature: cms_sd_asn1_ctrl(CMS_SignerInfo *si, int cmd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:228,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:229,1
    - Dst: cms_signed_data_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:233,1
    - Dst: M_ASN1_new_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:236,1
    - Dst: X509_check_purpose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:240,1
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:242,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:243,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:247,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:251,1
    - Dst: cms_set1_SignerIdentifier
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:265,1
    - Dst: EVP_PKEY_get_default_digest_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:270,1
    - Dst: EVP_get_digestbynid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:272,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:274,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:280,1
    - Dst: X509_ALGOR_set_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:284,1
    - Dst: sk_X509_ALGOR_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:287,1
    - Dst: sk_X509_ALGOR_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:289,1
    - Dst: X509_ALGOR_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:290,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:291,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:291,1
    - Dst: sk_X509_ALGOR_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:295,1
    - Dst: X509_ALGOR_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:296,1
    - Dst: X509_ALGOR_set_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:299,1
    - Dst: sk_X509_ALGOR_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:300,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:301,1
    - Dst: cms_sd_asn1_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:306,1
    - Dst: sk_X509_ATTRIBUTE_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:314,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:320,1
    - Dst: CMS_add_standard_smimecap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:321,1
    - Dst: CMS_add_smimecap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:323,1
    - Dst: sk_X509_ALGOR_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:324,1
    - Dst: cms_copy_messageDigest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:329,1
    - Dst: CMS_SignerInfo_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:332,1
    - Dst: CMS_add1_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:339,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:345,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:348,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:350,1
    - Dst: EVP_DigestSignInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:352,1
    - Dst: sk_CMS_SignerInfo_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:358,1
    - Dst: sk_CMS_SignerInfo_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:359,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:365,1
    - Dst: M_ASN1_free_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:367,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 136
    argCount: 5
    argNames:
    - cms
    - signer
    - pk
    - md
    - flags
    argTypes:
    - CMS_ContentInfo*
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 370
      start: 220
    functionDepth: 5
    functionLinenumber: 220
    functionLinenumberEnd: 370
    functionName: CMS_add1_signer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - M_ASN1_new_of
    - EVP_DigestSignInit
    - cms_signed_data_init
    - EVP_PKEY_CTX_set_signature_md
    - cms_set1_SignerIdentifier
    - EVP_MD_type
    - sk_X509_ALGOR_pop_free
    - X509_check_private_key
    - CMS_add_smimecap
    - sk_CMS_SignerInfo_new_null
    - CMS_SignerInfo_sign
    - CMSerr
    - EVP_PKEY_up_ref
    - CMS_add_standard_smimecap
    - X509_ALGOR_get0
    - X509_ALGOR_set_md
    - X509_up_ref
    - X509_ALGOR_new
    - sk_CMS_SignerInfo_push
    - EVP_get_digestbynid
    - sk_X509_ALGOR_push
    - EVP_PKEY_sign_init
    - EVP_PKEY_CTX_new
    - STACK_OF
    - OBJ_obj2nid
    - M_ASN1_free_of
    - sk_X509_ATTRIBUTE_new_null
    - X509_check_purpose
    - cms_copy_messageDigest
    - CMS_add1_cert
    - EVP_MD_CTX_new
    - EVP_PKEY_get_default_digest_nid
    - sk_X509_ALGOR_num
    - sk_X509_ALGOR_value
    - X509_ALGOR_free
    - cms_sd_asn1_ctrl
    linkageType: ''
    returnType: CMS_SignerInfo
    signature: "*CMS_add1_signer(CMS_ContentInfo *cms,\n                                X509
      *signer, EVP_PKEY *pk, const EVP_MD *md,\n                                unsigned
      int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_gmtime_adj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:379,1
    - Dst: CMS_signed_add1_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:384,1
    - Dst: ASN1_TIME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:393,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:396,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - si
    - t
    argTypes:
    - CMS_SignerInfo*
    - ASN1_TIME*
    constantsTouched: []
    func_position:
      end: 400
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 400
    functionName: cms_add1_signingTime
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - ASN1_TIME_free
    - CMS_signed_add1_attr_by_NID
    - X509_gmtime_adj
    linkageType: ''
    returnType: int
    signature: cms_add1_signingTime(CMS_SignerInfo *si, ASN1_TIME *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    constantsTouched: []
    func_position:
      end: 405
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 405
    functionName: CMS_SignerInfo_get0_pkey_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: '*CMS_SignerInfo_get0_pkey_ctx(CMS_SignerInfo *si)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    constantsTouched: []
    func_position:
      end: 410
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 410
    functionName: CMS_SignerInfo_get0_md_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD_CTX
    signature: '*CMS_SignerInfo_get0_md_ctx(CMS_SignerInfo *si)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:448,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:449,1
    - Dst: X509_get_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:450,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - si
    - signer
    argTypes:
    - CMS_SignerInfo*
    - X509*
    constantsTouched: []
    func_position:
      end: 454
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 454
    functionName: CMS_SignerInfo_set1_signer_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - X509_free
    - X509_up_ref
    - EVP_PKEY_free
    - X509_get_pubkey
    linkageType: ''
    returnType: void
    signature: CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cms_SignerIdentifier_get0_signer_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - si
    - keyid
    - issuer
    - sno
    argTypes:
    - CMS_SignerInfo*
    - ASN1_OCTET_STRING**
    - X509_NAME**
    - ASN1_INTEGER**
    constantsTouched: []
    func_position:
      end: 461
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 461
    functionName: CMS_SignerInfo_get0_signer_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - cms_SignerIdentifier_get0_signer_id
    linkageType: ''
    returnType: int
    signature: "CMS_SignerInfo_get0_signer_id(CMS_SignerInfo *si,\n                                  ASN1_OCTET_STRING
      **keyid,\n                                  X509_NAME **issuer, ASN1_INTEGER
      **sno)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cms_SignerIdentifier_cert_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - si
    - cert
    argTypes:
    - CMS_SignerInfo*
    - X509*
    constantsTouched: []
    func_position:
      end: 466
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 466
    functionName: CMS_SignerInfo_cert_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - cms_SignerIdentifier_cert_cmp
    linkageType: ''
    returnType: int
    signature: CMS_SignerInfo_cert_cmp(CMS_SignerInfo *si, X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - si
    - pk
    - signer
    - pdig
    - psig
    argTypes:
    - CMS_SignerInfo*
    - EVP_PKEY**
    - X509**
    - X509_ALGOR**
    - X509_ALGOR**
    constantsTouched: []
    func_position:
      end: 526
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 526
    functionName: CMS_SignerInfo_get0_algs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "CMS_SignerInfo_get0_algs(CMS_SignerInfo *si, EVP_PKEY **pk,\n                              X509
      **signer, X509_ALGOR **pdig,\n                              X509_ALGOR **psig)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    constantsTouched: []
    func_position:
      end: 531
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 531
    functionName: CMS_SignerInfo_get0_signature
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: '*CMS_SignerInfo_get0_signature(CMS_SignerInfo *si)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:536,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:541,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:546,1
    - Dst: cms_DigestAlgorithm_find_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:550,1
    - Dst: cms_sd_asn1_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:553,1
    - Dst: CMS_signed_get_attr_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:560,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:565,1
    - Dst: CMS_signed_add1_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:567,1
    - Dst: CMS_signed_add1_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:571,1
    - Dst: CMS_SignerInfo_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:574,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:582,1
    - Dst: EVP_PKEY_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:584,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:585,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:587,1
    - Dst: EVP_PKEY_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:590,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:591,1
    - Dst: ASN1_STRING_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:594,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:598,1
    - Dst: EVP_PKEY_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:598,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:600,1
    - Dst: EVP_SignFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:603,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:604,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:605,1
    - Dst: ASN1_STRING_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:608,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:614,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:615,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 69
    argCount: 3
    argNames:
    - cms
    - si
    - chain
    argTypes:
    - CMS_ContentInfo*
    - CMS_SignerInfo*
    - BIO*
    constantsTouched: []
    func_position:
      end: 618
      start: 533
    functionDepth: 5
    functionLinenumber: 533
    functionLinenumberEnd: 618
    functionName: cms_SignerInfo_content_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - ASN1_STRING_set0
    - EVP_DigestFinal_ex
    - CMS_signed_get_attr_count
    - OPENSSL_malloc
    - cms_DigestAlgorithm_find_ctx
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - CMS_signed_add1_attr_by_NID
    - EVP_SignFinal
    - EVP_PKEY_sign
    - EVP_PKEY_CTX_free
    - OPENSSL_free
    - cms_sd_asn1_ctrl
    - EVP_PKEY_size
    - CMS_SignerInfo_sign
    linkageType: ''
    returnType: int
    signature: "cms_SignerInfo_content_sign(CMS_ContentInfo *cms,\n                                       CMS_SignerInfo
      *si, BIO *chain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:622,1
    - Dst: CMS_get0_SignerInfos
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:625,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:626,1
    - Dst: sk_CMS_SignerInfo_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:627,1
    - Dst: cms_SignerInfo_content_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - cms
    - chain
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    constantsTouched: []
    func_position:
      end: 633
      start: 620
    functionDepth: 6
    functionLinenumber: 620
    functionLinenumberEnd: 633
    functionName: cms_SignedData_final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 1
    functionsReached:
    - sk_CMS_SignerInfo_value
    - STACK_OF
    - sk_CMS_SignerInfo_num
    - cms_SignerInfo_content_sign
    - CMS_get0_SignerInfos
    linkageType: ''
    returnType: int
    signature: cms_SignedData_final(CMS_ContentInfo *cms, BIO *chain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyobj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:644,1
    - Dst: CMS_signed_get_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:648,1
    - Dst: cms_add1_signingTime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:649,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:656,1
    - Dst: EVP_DigestSignInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:657,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:661,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:663,1
    - Dst: ASN1_item_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:667,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:668,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:671,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:673,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:675,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:676,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:679,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:682,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:684,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:688,1
    - Dst: ASN1_STRING_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:690,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:695,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:696,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    constantsTouched: []
    func_position:
      end: 699
      start: 635
    functionDepth: 3
    functionLinenumber: 635
    functionLinenumberEnd: 699
    functionName: CMS_SignerInfo_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 2
    functionsReached:
    - CMSerr
    - ASN1_item_i2d
    - ASN1_STRING_set0
    - EVP_DigestSignInit
    - OPENSSL_malloc
    - EVP_PKEY_CTX_ctrl
    - EVP_DigestSignUpdate
    - ASN1_ITEM_rptr
    - EVP_MD_CTX_reset
    - CMS_signed_get_attr_by_NID
    - EVP_DigestSignFinal
    - OPENSSL_free
    - cms_add1_signingTime
    - EVP_get_digestbyobj
    linkageType: ''
    returnType: int
    signature: CMS_SignerInfo_sign(CMS_SignerInfo *si)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:709,1
    - Dst: EVP_get_digestbyobj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:713,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:717,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:719,1
    - Dst: cms_sd_asn1_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:722,1
    - Dst: ASN1_item_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:725,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:726,1
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:729,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:730,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:735,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:738,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:740,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    constantsTouched: []
    func_position:
      end: 742
      start: 701
    functionDepth: 3
    functionLinenumber: 701
    functionLinenumberEnd: 742
    functionName: CMS_SignerInfo_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - ASN1_item_i2d
    - EVP_DigestVerifyFinal
    - EVP_DigestVerifyUpdate
    - ASN1_ITEM_rptr
    - EVP_MD_CTX_new
    - EVP_MD_CTX_reset
    - OPENSSL_free
    - cms_sd_asn1_ctrl
    - EVP_get_digestbyobj
    - EVP_DigestVerifyInit
    linkageType: ''
    returnType: int
    signature: CMS_SignerInfo_verify(CMS_SignerInfo *si)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cms_get0_signed
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:751,1
    - Dst: cms_sd_set_version
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:755,1
    - Dst: sk_X509_ALGOR_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:756,1
    - Dst: sk_X509_ALGOR_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:759,1
    - Dst: cms_DigestAlgorithm_init_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:760,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:764,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:770,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    constantsTouched: []
    func_position:
      end: 772
      start: 746
    functionDepth: 2
    functionLinenumber: 746
    functionLinenumberEnd: 772
    functionName: cms_SignedData_init_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 1
    functionsReached:
    - BIO_push
    - cms_get0_signed
    - BIO_free_all
    - cms_DigestAlgorithm_init_bio
    - sk_X509_ALGOR_value
    - cms_sd_set_version
    - sk_X509_ALGOR_num
    linkageType: ''
    returnType: BIO
    signature: '*cms_SignedData_init_bio(CMS_ContentInfo *cms)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:777,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:784,1
    - Dst: CMS_signed_get_attr_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:788,1
    - Dst: CMS_signed_get0_data_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:789,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:790,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:793,1
    - Dst: cms_DigestAlgorithm_find_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:799,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:802,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:803,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:812,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:817,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:818,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:824,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:825,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:828,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:830,1
    - Dst: cms_sd_asn1_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:833,1
    - Dst: EVP_PKEY_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:835,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:838,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:845,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c:846,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 2
    argNames:
    - si
    - chain
    argTypes:
    - CMS_SignerInfo*
    - BIO*
    constantsTouched: []
    func_position:
      end: 849
      start: 774
    functionDepth: 5
    functionLinenumber: 774
    functionLinenumberEnd: 849
    functionName: CMS_SignerInfo_verify_content
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - CMS_signed_get0_data_by_OBJ
    - CMS_signed_get_attr_count
    - EVP_DigestFinal_ex
    - memcmp
    - EVP_PKEY_CTX_new
    - cms_DigestAlgorithm_find_ctx
    - OBJ_nid2obj
    - EVP_MD_CTX_md
    - EVP_PKEY_CTX_set_signature_md
    - EVP_MD_CTX_new
    - EVP_PKEY_verify_init
    - EVP_MD_CTX_free
    - EVP_PKEY_CTX_free
    - cms_sd_asn1_ctrl
    - EVP_PKEY_verify
    linkageType: ''
    returnType: int
    signature: CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_ContentInfo_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_dd.c:24,1
    - Dst: M_ASN1_new_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_dd.c:28,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_dd.c:33,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_dd.c:37,1
    - Dst: X509_ALGOR_set_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_dd.c:39,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_dd.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 46
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 46
    functionName: cms_DigestedData_create
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_dd.c
    functionUses: 0
    functionsReached:
    - M_ASN1_new_of
    - CMS_ContentInfo_free
    - OBJ_nid2obj
    - CMS_ContentInfo_new
    - X509_ALGOR_set_md
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: '*cms_DigestedData_create(const EVP_MD *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cms_DigestAlgorithm_init_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_dd.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: cms_DigestedData_init_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_dd.c
    functionUses: 1
    functionsReached:
    - cms_DigestAlgorithm_init_bio
    linkageType: ''
    returnType: BIO
    signature: '*cms_DigestedData_init_bio(CMS_ContentInfo *cms)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_dd.c:57,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_dd.c:64,1
    - Dst: cms_DigestAlgorithm_find_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_dd.c:70,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_dd.c:73,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_dd.c:78,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_dd.c:83,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_dd.c:84,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_dd.c:89,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_dd.c:95,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 3
    argNames:
    - cms
    - chain
    - verify
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 99
      start: 55
    functionDepth: 5
    functionLinenumber: 55
    functionLinenumberEnd: 99
    functionName: cms_DigestedData_do_final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_dd.c
    functionUses: 1
    functionsReached:
    - CMSerr
    - EVP_DigestFinal_ex
    - memcmp
    - ASN1_STRING_set
    - cms_DigestAlgorithm_find_ctx
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: int
    signature: cms_DigestedData_do_final(CMS_ContentInfo *cms, BIO *chain, int verify)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_cd.c:33,1
    - Dst: CMS_ContentInfo_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_cd.c:37,1
    - Dst: M_ASN1_new_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_cd.c:41,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_cd.c:46,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_cd.c:51,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_cd.c:52,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_cd.c:54,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_cd.c:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - comp_nid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 61
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 61
    functionName: cms_CompressedData_create
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_cd.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - M_ASN1_new_of
    - CMS_ContentInfo_free
    - X509_ALGOR_set0
    - OBJ_nid2obj
    - CMS_ContentInfo_new
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: '*cms_CompressedData_create(int comp_nid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_cd.c:67,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_cd.c:68,1
    - Dst: X509_ALGOR_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_cd.c:73,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_cd.c:74,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_cd.c:75,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_cd.c:79,1
    - Dst: BIO_f_zlib
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_cd.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    constantsTouched: []
    func_position:
      end: 80
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 80
    functionName: cms_CompressedData_init_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_cd.c
    functionUses: 1
    functionsReached:
    - CMSerr
    - BIO_f_zlib
    - OBJ_obj2nid
    - BIO_new
    - X509_ALGOR_get0
    linkageType: ''
    returnType: BIO
    signature: '*cms_CompressedData_init_bio(CMS_ContentInfo *cms)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ri
    - palg
    - pukm
    argTypes:
    - CMS_RecipientInfo*
    - X509_ALGOR**
    - ASN1_OCTET_STRING**
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: CMS_RecipientInfo_kari_get0_alg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - CMSerr
    linkageType: ''
    returnType: int
    signature: "CMS_RecipientInfo_kari_get0_alg(CMS_RecipientInfo *ri,\n                                    X509_ALGOR
      **palg,\n                                    ASN1_OCTET_STRING **pukm)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:60,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 6
    argNames:
    - ri
    - pubalg
    - pubkey
    - keyid
    - issuer
    - sno
    argTypes:
    - CMS_RecipientInfo*
    - X509_ALGOR**
    - ASN1_BIT_STRING**
    - ASN1_OCTET_STRING**
    - X509_NAME**
    - ASN1_INTEGER**
    constantsTouched: []
    func_position:
      end: 91
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 91
    functionName: CMS_RecipientInfo_kari_get0_orig_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - CMSerr
    linkageType: ''
    returnType: int
    signature: "CMS_RecipientInfo_kari_get0_orig_id(CMS_RecipientInfo *ri,\n                                        X509_ALGOR
      **pubalg,\n                                        ASN1_BIT_STRING **pubkey,\n
      \                                       ASN1_OCTET_STRING **keyid,\n                                        X509_NAME
      **issuer,\n                                        ASN1_INTEGER **sno)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:97,1
    - Dst: cms_ias_cert_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:103,1
    - Dst: cms_keyid_cert_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ri
    - cert
    argTypes:
    - CMS_RecipientInfo*
    - X509*
    constantsTouched: []
    func_position:
      end: 107
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 107
    functionName: CMS_RecipientInfo_kari_orig_id_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - cms_ias_cert_cmp
    - cms_keyid_cert_cmp
    linkageType: ''
    returnType: int
    signature: CMS_RecipientInfo_kari_orig_id_cmp(CMS_RecipientInfo *ri, X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 6
    argNames:
    - rek
    - keyid
    - tm
    - other
    - issuer
    - sno
    argTypes:
    - CMS_RecipientEncryptedKey*
    - ASN1_OCTET_STRING**
    - ASN1_GENERALIZEDTIME**
    - CMS_OtherKeyAttribute**
    - X509_NAME**
    - ASN1_INTEGER**
    constantsTouched: []
    func_position:
      end: 141
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 141
    functionName: CMS_RecipientEncryptedKey_get0_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "CMS_RecipientEncryptedKey_get0_id(CMS_RecipientEncryptedKey *rek,\n
      \                                     ASN1_OCTET_STRING **keyid,\n                                      ASN1_GENERALIZEDTIME
      **tm,\n                                      CMS_OtherKeyAttribute **other,\n
      \                                     X509_NAME **issuer, ASN1_INTEGER **sno)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cms_ias_cert_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:148,1
    - Dst: cms_keyid_cert_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - rek
    - cert
    argTypes:
    - CMS_RecipientEncryptedKey*
    - X509*
    constantsTouched: []
    func_position:
      end: 153
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 153
    functionName: CMS_RecipientEncryptedKey_cert_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - cms_keyid_cert_cmp
    - cms_ias_cert_cmp
    linkageType: ''
    returnType: int
    signature: "CMS_RecipientEncryptedKey_cert_cmp(CMS_RecipientEncryptedKey *rek,\n
      \                                      X509 *cert)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:160,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:164,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:165,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ri
    - pk
    argTypes:
    - CMS_RecipientInfo*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 172
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 172
    functionName: CMS_RecipientInfo_kari_set0_pkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: int
    signature: CMS_RecipientInfo_kari_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pk)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: CMS_RecipientInfo_kari_get0_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER_CTX
    signature: '*CMS_RecipientInfo_kari_get0_ctx(CMS_RecipientInfo *ri)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:196,1
    - Dst: EVP_PKEY_derive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:200,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:203,1
    - Dst: EVP_CipherUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:206,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:208,1
    - Dst: EVP_CipherUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:211,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:218,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:220,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:221,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:223,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 6
    argNames:
    - pout
    - poutlen
    - in
    - inlen
    - kari
    - enc
    argTypes:
    - unsigned char**
    - size_t*
    - unsigned char*
    - size_t
    - CMS_KeyAgreeRecipientInfo*
    - int
    constantsTouched: []
    func_position:
      end: 226
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 226
    functionName: cms_kek_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_derive
    - EVP_CIPHER_CTX_reset
    - EVP_PKEY_CTX_free
    - EVP_CIPHER_CTX_key_length
    - EVP_CipherUpdate
    - EVP_CipherInit_ex
    - OPENSSL_cleanse
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "cms_kek_cipher(unsigned char **pout, size_t *poutlen,\n                          const
      unsigned char *in, size_t inlen,\n                          CMS_KeyAgreeRecipientInfo
      *kari, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cms_env_asn1_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:240,1
    - Dst: cms_kek_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:243,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:246,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:252,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - cms
    - ri
    - rek
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    - CMS_RecipientEncryptedKey*
    constantsTouched: []
    func_position:
      end: 254
      start: 228
    functionDepth: 4
    functionLinenumber: 228
    functionLinenumberEnd: 254
    functionName: CMS_RecipientInfo_kari_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    - OPENSSL_free
    - cms_env_asn1_ctrl
    - cms_kek_cipher
    linkageType: ''
    returnType: int
    signature: "CMS_RecipientInfo_kari_decrypt(CMS_ContentInfo *cms,\n                                   CMS_RecipientInfo
      *ri,\n                                   CMS_RecipientEncryptedKey *rek)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:263,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:266,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:268,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:270,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:271,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:274,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:280,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:281,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - kari
    - pk
    argTypes:
    - CMS_KeyAgreeRecipientInfo*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 283
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 283
    functionName: cms_kari_create_ephemeral_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_free
    - EVP_PKEY_keygen
    - EVP_PKEY_free
    - EVP_PKEY_keygen_init
    linkageType: ''
    returnType: int
    signature: "cms_kari_create_ephemeral_key(CMS_KeyAgreeRecipientInfo *kari,\n                                         EVP_PKEY
      *pk)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: M_ASN1_new_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:293,1
    - Dst: M_ASN1_new_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:301,1
    - Dst: sk_CMS_RecipientEncryptedKey_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:302,1
    - Dst: M_ASN1_free_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:303,1
    - Dst: M_ASN1_new_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:309,1
    - Dst: cms_set1_keyid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:312,1
    - Dst: cms_set1_ias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:316,1
    - Dst: cms_kari_create_ephemeral_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:321,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:324,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - ri
    - recip
    - pk
    - flags
    argTypes:
    - CMS_RecipientInfo*
    - X509*
    - EVP_PKEY*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 327
      start: 287
    functionDepth: 4
    functionLinenumber: 287
    functionLinenumberEnd: 327
    functionName: cms_RecipientInfo_kari_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c
    functionUses: 1
    functionsReached:
    - M_ASN1_new_of
    - cms_set1_ias
    - M_ASN1_free_of
    - sk_CMS_RecipientEncryptedKey_push
    - EVP_PKEY_up_ref
    - cms_kari_create_ephemeral_key
    - cms_set1_keyid
    linkageType: ''
    returnType: int
    signature: "cms_RecipientInfo_kari_init(CMS_RecipientInfo *ri, X509 *recip,\n
      \                               EVP_PKEY *pk, unsigned int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:336,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:339,1
    - Dst: EVP_CIPHER_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:348,1
    - Dst: EVP_des_ede3_wrap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:349,1
    - Dst: EVP_aes_128_wrap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:353,1
    - Dst: EVP_aes_192_wrap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:355,1
    - Dst: EVP_aes_256_wrap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:357,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:358,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - kari
    - cipher
    argTypes:
    - CMS_KeyAgreeRecipientInfo*
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 359
      start: 329
    functionDepth: 4
    functionLinenumber: 329
    functionLinenumberEnd: 359
    functionName: cms_wrap_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_cipher
    - EVP_CIPHER_CTX_mode
    - EVP_EncryptInit_ex
    - EVP_aes_128_wrap
    - EVP_aes_256_wrap
    - EVP_des_ede3_wrap
    - EVP_aes_192_wrap
    - EVP_CIPHER_type
    linkageType: ''
    returnType: int
    signature: "cms_wrap_init(CMS_KeyAgreeRecipientInfo *kari,\n                         const
      EVP_CIPHER *cipher)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:369,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:373,1
    - Dst: cms_wrap_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:380,1
    - Dst: M_ASN1_new_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:389,1
    - Dst: cms_env_asn1_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:394,1
    - Dst: sk_CMS_RecipientEncryptedKey_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:397,1
    - Dst: sk_CMS_RecipientEncryptedKey_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:400,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:401,1
    - Dst: cms_kek_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:403,1
    - Dst: ASN1_STRING_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c:406,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - cms
    - ri
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    constantsTouched: []
    func_position:
      end: 411
      start: 363
    functionDepth: 5
    functionLinenumber: 363
    functionLinenumberEnd: 411
    functionName: cms_RecipientInfo_kari_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c
    functionUses: 1
    functionsReached:
    - CMSerr
    - M_ASN1_new_of
    - sk_CMS_RecipientEncryptedKey_value
    - ASN1_STRING_set0
    - cms_wrap_init
    - sk_CMS_RecipientEncryptedKey_num
    - cms_kek_cipher
    - STACK_OF
    - EVP_PKEY_derive_set_peer
    - cms_env_asn1_ctrl
    linkageType: ''
    returnType: int
    signature: "cms_RecipientInfo_kari_encrypt(CMS_ContentInfo *cms,\n                                   CMS_RecipientInfo
      *ri)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:23,1
    - Dst: BIO_s_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:23,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:25,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:25,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - out
    - flags
    argTypes:
    - BIO*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 30
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 30
    functionName: cms_get_text_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - BIO_s_mem
    - BIO_set_mem_eof_return
    - BIO_s_null
    linkageType: ''
    returnType: BIO
    signature: '*cms_get_text_bio(BIO *out, unsigned int flags)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cms_get_text_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:38,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:41,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:47,1
    - Dst: BIO_method_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:49,1
    - Dst: BIO_get_cipher_status
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:50,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:58,1
    - Dst: SMIME_text
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:63,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:64,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:73,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 3
    argNames:
    - out
    - in
    - flags
    argTypes:
    - BIO*
    - BIO*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 76
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 76
    functionName: cms_copy_content
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - cms_get_text_bio
    - BIO_method_type
    - CMSerr
    - SMIME_text
    - BIO_get_cipher_status
    - BIO_free
    - BIO_read
    - BIO_write
    linkageType: ''
    returnType: int
    signature: cms_copy_content(BIO *out, BIO *in, unsigned int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_get0_content
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:80,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: check_content
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - CMS_get0_content
    linkageType: ''
    returnType: int
    signature: check_content(CMS_ContentInfo *cms)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:93,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:94,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - f
    - upto
    argTypes:
    - BIO*
    - BIO*
    constantsTouched: []
    func_position:
      end: 100
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 100
    functionName: do_free_upto
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - BIO_pop
    - BIO_free_all
    linkageType: ''
    returnType: void
    signature: do_free_upto(BIO *f, BIO *upto)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:106,1
    - Dst: CMS_get0_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:106,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:107,1
    - Dst: CMS_dataInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:110,1
    - Dst: cms_copy_content
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:113,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - cms
    - out
    - flags
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 116
      start: 102
    functionDepth: 6
    functionLinenumber: 102
    functionLinenumberEnd: 116
    functionName: CMS_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - BIO_free_all
    - OBJ_obj2nid
    - CMS_dataInit
    - CMS_get0_type
    - cms_copy_content
    linkageType: ''
    returnType: int
    signature: CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cms_Data_create
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:121,1
    - Dst: CMS_final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:125,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - in
    - flags
    argTypes:
    - BIO*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 131
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 131
    functionName: CMS_data_create
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_ContentInfo_free
    - CMS_final
    - cms_Data_create
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: '*CMS_data_create(BIO *in, unsigned int flags)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:138,1
    - Dst: CMS_get0_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:138,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:139,1
    - Dst: check_content
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:143,1
    - Dst: CMS_dataInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:146,1
    - Dst: cms_copy_content
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:149,1
    - Dst: cms_DigestedData_do_final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:151,1
    - Dst: do_free_upto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - cms
    - dcont
    - out
    - flags
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    - BIO*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 154
      start: 133
    functionDepth: 6
    functionLinenumber: 133
    functionLinenumberEnd: 154
    functionName: CMS_digest_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - check_content
    - OBJ_obj2nid
    - CMS_dataInit
    - CMS_get0_type
    - cms_DigestedData_do_final
    - do_free_upto
    - cms_copy_content
    linkageType: ''
    returnType: int
    signature: "CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out,\n                      unsigned
      int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:161,1
    - Dst: cms_DigestedData_create
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:162,1
    - Dst: CMS_set_detached
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:167,1
    - Dst: CMS_final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:169,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - in
    - md
    - flags
    argTypes:
    - BIO*
    - EVP_MD*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 174
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 174
    functionName: CMS_digest_create
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - EVP_sha1
    - cms_DigestedData_create
    - CMS_ContentInfo_free
    - CMS_set_detached
    - CMS_final
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: "*CMS_digest_create(BIO *in, const EVP_MD *md,\n                                   unsigned
      int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:182,1
    - Dst: CMS_get0_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:182,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:183,1
    - Dst: check_content
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:188,1
    - Dst: CMS_EncryptedData_set1_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:191,1
    - Dst: CMS_dataInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:193,1
    - Dst: cms_copy_content
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:196,1
    - Dst: do_free_upto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 6
    argNames:
    - cms
    - key
    - keylen
    - dcont
    - out
    - flags
    argTypes:
    - CMS_ContentInfo*
    - unsigned char*
    - size_t
    - BIO*
    - BIO*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 199
      start: 176
    functionDepth: 6
    functionLinenumber: 176
    functionLinenumberEnd: 199
    functionName: CMS_EncryptedData_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - check_content
    - OBJ_obj2nid
    - CMS_dataInit
    - CMS_get0_type
    - CMS_EncryptedData_set1_key
    - do_free_upto
    - cms_copy_content
    linkageType: ''
    returnType: int
    signature: "CMS_EncryptedData_decrypt(CMS_ContentInfo *cms,\n                              const
      unsigned char *key, size_t keylen,\n                              BIO *dcont,
      BIO *out, unsigned int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:207,1
    - Dst: CMS_ContentInfo_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:210,1
    - Dst: CMS_EncryptedData_set1_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:213,1
    - Dst: CMS_set_detached
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:217,1
    - Dst: CMS_final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:220,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:223,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 5
    argNames:
    - in
    - cipher
    - key
    - keylen
    - flags
    argTypes:
    - BIO*
    - EVP_CIPHER*
    - unsigned char*
    - size_t
    - unsigned int
    constantsTouched: []
    func_position:
      end: 225
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 225
    functionName: CMS_EncryptedData_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - CMS_ContentInfo_free
    - CMS_EncryptedData_set1_key
    - CMS_set_detached
    - CMS_final
    - CMS_ContentInfo_new
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: "*CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher,\n                                           const
      unsigned char *key,\n                                           size_t keylen,
      unsigned int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:583,1
    - Dst: CMS_RecipientInfo_kari_get0_reks
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:585,1
    - Dst: sk_CMS_RecipientEncryptedKey_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:588,1
    - Dst: sk_CMS_RecipientEncryptedKey_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:590,1
    - Dst: CMS_RecipientEncryptedKey_cert_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:591,1
    - Dst: CMS_RecipientInfo_kari_set0_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:593,1
    - Dst: CMS_RecipientInfo_kari_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:594,1
    - Dst: CMS_RecipientInfo_kari_set0_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:595,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - cms
    - ri
    - pk
    - cert
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    - EVP_PKEY*
    - X509*
    constantsTouched: []
    func_position:
      end: 601
      start: 579
    functionDepth: 5
    functionLinenumber: 579
    functionLinenumberEnd: 601
    functionName: cms_kari_set1_pkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - sk_CMS_RecipientEncryptedKey_value
    - CMS_RecipientEncryptedKey_cert_cmp
    - sk_CMS_RecipientEncryptedKey_num
    - STACK_OF
    - CMS_RecipientInfo_kari_decrypt
    - CMS_RecipientInfo_kari_set0_pkey
    - CMS_RecipientInfo_kari_get0_reks
    linkageType: ''
    returnType: int
    signature: "cms_kari_set1_pkey(CMS_ContentInfo *cms, CMS_RecipientInfo *ri,\n
      \                             EVP_PKEY *pk, X509 *cert)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:605,1
    - Dst: CMS_get0_RecipientInfos
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:609,1
    - Dst: cms_pkey_get_ri_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:612,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:614,1
    - Dst: sk_CMS_RecipientInfo_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:619,1
    - Dst: sk_CMS_RecipientInfo_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:620,1
    - Dst: CMS_RecipientInfo_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:621,1
    - Dst: cms_kari_set1_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:625,1
    - Dst: CMS_RecipientInfo_ktri_cert_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:635,1
    - Dst: CMS_RecipientInfo_set0_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:636,1
    - Dst: CMS_RecipientInfo_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:637,1
    - Dst: CMS_RecipientInfo_set0_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:638,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:645,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:650,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:664,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:668,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 3
    argNames:
    - cms
    - pk
    - cert
    argTypes:
    - CMS_ContentInfo*
    - EVP_PKEY*
    - X509*
    constantsTouched: []
    func_position:
      end: 671
      start: 603
    functionDepth: 7
    functionLinenumber: 603
    functionLinenumberEnd: 671
    functionName: CMS_decrypt_set1_pkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - sk_CMS_RecipientInfo_value
    - STACK_OF
    - cms_kari_set1_pkey
    - CMS_RecipientInfo_set0_pkey
    - cms_pkey_get_ri_type
    - CMS_RecipientInfo_decrypt
    - sk_CMS_RecipientInfo_num
    - CMS_get0_RecipientInfos
    - CMS_RecipientInfo_ktri_cert_cmp
    - CMS_RecipientInfo_type
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:677,1
    - Dst: CMS_get0_RecipientInfos
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:680,1
    - Dst: sk_CMS_RecipientInfo_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:681,1
    - Dst: sk_CMS_RecipientInfo_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:682,1
    - Dst: CMS_RecipientInfo_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:683,1
    - Dst: CMS_RecipientInfo_kekri_id_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:690,1
    - Dst: CMS_RecipientInfo_set0_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:691,1
    - Dst: CMS_RecipientInfo_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:692,1
    - Dst: CMS_RecipientInfo_set0_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:693,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:697,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:700,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:704,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - cms
    - key
    - keylen
    - id
    - idlen
    argTypes:
    - CMS_ContentInfo*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 707
      start: 673
    functionDepth: 7
    functionLinenumber: 673
    functionLinenumberEnd: 707
    functionName: CMS_decrypt_set1_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - CMS_RecipientInfo_kekri_id_cmp
    - sk_CMS_RecipientInfo_value
    - STACK_OF
    - CMS_RecipientInfo_decrypt
    - sk_CMS_RecipientInfo_num
    - CMS_get0_RecipientInfos
    - CMS_RecipientInfo_set0_key
    - CMS_RecipientInfo_type
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: "CMS_decrypt_set1_key(CMS_ContentInfo *cms,\n                         unsigned
      char *key, size_t keylen,\n                         const unsigned char *id,
      size_t idlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:712,1
    - Dst: CMS_get0_RecipientInfos
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:715,1
    - Dst: sk_CMS_RecipientInfo_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:716,1
    - Dst: sk_CMS_RecipientInfo_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:717,1
    - Dst: CMS_RecipientInfo_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:718,1
    - Dst: CMS_RecipientInfo_set0_password
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:720,1
    - Dst: CMS_RecipientInfo_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:721,1
    - Dst: CMS_RecipientInfo_set0_password
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:722,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:727,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - cms
    - pass
    - passlen
    argTypes:
    - CMS_ContentInfo*
    - unsigned char*
    - ossl_ssize_t
    constantsTouched: []
    func_position:
      end: 730
      start: 709
    functionDepth: 7
    functionLinenumber: 709
    functionLinenumberEnd: 730
    functionName: CMS_decrypt_set1_password
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - sk_CMS_RecipientInfo_value
    - STACK_OF
    - CMS_RecipientInfo_set0_password
    - CMS_RecipientInfo_decrypt
    - sk_CMS_RecipientInfo_num
    - CMS_get0_RecipientInfos
    - CMS_RecipientInfo_type
    linkageType: ''
    returnType: int
    signature: "CMS_decrypt_set1_password(CMS_ContentInfo *cms,\n                              unsigned
      char *pass, ossl_ssize_t passlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:737,1
    - Dst: CMS_get0_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:737,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:738,1
    - Dst: check_content
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:741,1
    - Dst: CMS_decrypt_set1_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:749,1
    - Dst: CMS_dataInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:751,1
    - Dst: cms_copy_content
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:754,1
    - Dst: do_free_upto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:755,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 6
    argNames:
    - cms
    - pk
    - cert
    - dcont
    - out
    - flags
    argTypes:
    - CMS_ContentInfo*
    - EVP_PKEY*
    - X509*
    - BIO*
    - BIO*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 757
      start: 732
    functionDepth: 8
    functionLinenumber: 732
    functionLinenumberEnd: 757
    functionName: CMS_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - check_content
    - OBJ_obj2nid
    - CMS_dataInit
    - CMS_get0_type
    - do_free_upto
    - CMS_decrypt_set1_pkey
    - cms_copy_content
    linkageType: ''
    returnType: int
    signature: "CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert,\n                BIO
      *dcont, BIO *out, unsigned int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_dataInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:764,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:765,1
    - Dst: SMIME_crlf_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:769,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:771,1
    - Dst: CMS_dataFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:773,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:774,1
    - Dst: do_free_upto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:781,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - cms
    - data
    - dcont
    - flags
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    - BIO*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 785
      start: 759
    functionDepth: 6
    functionLinenumber: 759
    functionLinenumberEnd: 785
    functionName: CMS_final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c
    functionUses: 3
    functionsReached:
    - CMSerr
    - SMIME_crlf_copy
    - BIO_flush
    - CMS_dataInit
    - do_free_upto
    - CMS_dataFinal
    linkageType: ''
    returnType: int
    signature: CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int
      flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:794,1
    - Dst: CMS_get0_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:794,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:795,1
    - Dst: check_content
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:799,1
    - Dst: CMS_dataInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:802,1
    - Dst: cms_copy_content
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:805,1
    - Dst: do_free_upto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:806,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - cms
    - dcont
    - out
    - flags
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    - BIO*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 808
      start: 789
    functionDepth: 6
    functionLinenumber: 789
    functionLinenumberEnd: 808
    functionName: CMS_uncompress
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - check_content
    - OBJ_obj2nid
    - CMS_dataInit
    - CMS_get0_type
    - do_free_upto
    - cms_copy_content
    linkageType: ''
    returnType: int
    signature: "CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out,\n                   unsigned
      int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cms_CompressedData_create
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:815,1
    - Dst: CMS_set_detached
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:820,1
    - Dst: CMS_final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:822,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:825,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - in
    - comp_nid
    - flags
    argTypes:
    - BIO*
    - int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 827
      start: 810
    functionDepth: 7
    functionLinenumber: 810
    functionLinenumberEnd: 827
    functionName: CMS_compress
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_ContentInfo_free
    - CMS_final
    - CMS_set_detached
    - cms_CompressedData_create
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: '*CMS_compress(BIO *in, int comp_nid, unsigned int flags)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - cms
    - dcont
    - out
    - flags
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    - BIO*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 836
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 836
    functionName: CMS_uncompress
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMSerr
    linkageType: ''
    returnType: int
    signature: "CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out,\n                   unsigned
      int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - in
    - comp_nid
    - flags
    argTypes:
    - BIO*
    - int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 842
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 842
    functionName: CMS_compress
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMSerr
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: '*CMS_compress(BIO *in, int comp_nid, unsigned int flags)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_get0_content
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c:20,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c:24,1
    - Dst: CMSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - boundary
    - cms
    argTypes:
    - unsigned char***
    - CMS_ContentInfo*
    constantsTouched: []
    func_position:
      end: 33
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 33
    functionName: CMS_stream
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - CMSerr
    - CMS_get0_content
    - ASN1_OCTET_STRING_new
    linkageType: ''
    returnType: int
    signature: CMS_stream(unsigned char ***boundary, CMS_ContentInfo *cms)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c:37,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - cms
    argTypes:
    - BIO*
    - CMS_ContentInfo**
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: d2i_CMS_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: '*d2i_CMS_bio(BIO *bp, CMS_ContentInfo **cms)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c:42,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - cms
    argTypes:
    - BIO*
    - CMS_ContentInfo*
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: i2d_CMS_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: i2d_CMS_bio(BIO *bp, CMS_ContentInfo *cms)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_NDEF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c:49,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - cms
    argTypes:
    - BIO*
    - CMS_ContentInfo*
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: BIO_new_CMS
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - BIO_new_NDEF
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: BIO
    signature: '*BIO_new_CMS(BIO *out, CMS_ContentInfo *cms)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_ASN1_bio_stream
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c:57,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - cms
    - in
    - flags
    argTypes:
    - BIO*
    - CMS_ContentInfo*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: i2d_CMS_bio_stream
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - i2d_ASN1_bio_stream
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: i2d_CMS_bio_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PEM_write_bio_ASN1_stream
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c:64,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - cms
    - in
    - flags
    argTypes:
    - BIO*
    - CMS_ContentInfo*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: PEM_write_bio_CMS_stream
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - PEM_write_bio_ASN1_stream
    linkageType: ''
    returnType: int
    signature: "PEM_write_bio_CMS_stream(BIO *out, CMS_ContentInfo *cms, BIO *in,\n
      \                            int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c:70,1
    - Dst: SMIME_write_ASN1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c:78,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - bio
    - cms
    - data
    - flags
    argTypes:
    - BIO*
    - CMS_ContentInfo*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 81
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 81
    functionName: SMIME_write_CMS
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - SMIME_write_ASN1
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SMIME_read_ASN1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c:85,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - bcont
    argTypes:
    - BIO*
    - BIO**
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: SMIME_read_CMS
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - SMIME_read_ASN1
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: '*SMIME_read_CMS(BIO *bio, BIO **bcont)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c:51,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c:52,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: cms_si_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_PKEY_free
    - X509_free
    linkageType: ''
    returnType: int
    signature: "cms_si_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                    void *exarg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: cms_rek_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: "cms_rek_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                     void *exarg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c:152,1
    - Dst: EVP_CIPHER_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c:155,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c:158,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    constantsTouched: []
    func_position:
      end: 162
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 162
    functionName: cms_kari_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_set_flags
    - EVP_PKEY_CTX_free
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: int
    signature: "cms_kari_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                      void *exarg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c:205,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c:206,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c:207,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c:210,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c:213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    constantsTouched: []
    func_position:
      end: 217
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 217
    functionName: cms_ri_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_free
    - OPENSSL_clear_free
    - EVP_PKEY_free
    - X509_free
    linkageType: ''
    returnType: int
    signature: "cms_ri_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                    void *exarg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_stream
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c:293,1
    - Dst: CMS_dataInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c:296,1
    - Dst: CMS_dataFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c:303,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    constantsTouched: []
    func_position:
      end: 309
      start: 281
    functionDepth: 6
    functionLinenumber: 281
    functionLinenumberEnd: 309
    functionName: cms_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c
    functionUses: 0
    functionsReached:
    - CMS_dataInit
    - CMS_dataFinal
    - CMS_stream
    linkageType: ''
    returnType: int
    signature: "cms_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n                  void
      *exarg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c:401,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 4
    argNames:
    - pder
    - kekalg
    - ukm
    - keylen
    argTypes:
    - unsigned char**
    - X509_ALGOR*
    - ASN1_OCTET_STRING*
    - int
    constantsTouched: []
    func_position:
      end: 402
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 402
    functionName: CMS_SharedInfo_encode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_item_i2d
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: "CMS_SharedInfo_encode(unsigned char **pder, X509_ALGOR *kekalg,\n
      \                         ASN1_OCTET_STRING *ukm, int keylen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: hmac_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_ameth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: hmac_size(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_ameth.c:29,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_ameth.c:32,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_ameth.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: hmac_key_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get0
    - OPENSSL_cleanse
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: void
    signature: hmac_key_free(EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: hmac_pkey_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_ameth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: hmac_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_ameth.c:51,1
    - Dst: EVP_PKEY_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_ameth.c:51,1
    - Dst: EVP_PKEY_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_ameth.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: hmac_pkey_public_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get0
    - ASN1_OCTET_STRING_cmp
    linkageType: ''
    returnType: int
    signature: hmac_pkey_public_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_ameth.c:65,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_ameth.c:66,1
    - Dst: EVP_PKEY_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_ameth.c:68,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_ameth.c:73,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - pkey
    - pder
    - derlen
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    - int
    constantsTouched: []
    func_position:
      end: 75
      start: 61
    functionDepth: 4
    functionLinenumber: 61
    functionLinenumberEnd: 75
    functionName: old_hmac_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_set
    - ASN1_OCTET_STRING_new
    - EVP_PKEY_assign
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: int
    signature: "old_hmac_decode(EVP_PKEY *pkey,\n                           const
      unsigned char **pder, int derlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_ameth.c:80,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_ameth.c:83,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_ameth.c:90,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - pkey
    - pder
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 97
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 97
    functionName: old_hmac_encode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get0
    - memcpy
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: old_hmac_encode(const EVP_PKEY *pkey, unsigned char **pder)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_block_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:39,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:40,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:42,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:44,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:46,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:52,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:56,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:63,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:65,1
    - Dst: EVP_MD_block_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:65,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:70,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:72,1
    - Dst: EVP_MD_block_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:72,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:75,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 60
    argCount: 5
    argNames:
    - ctx
    - key
    - len
    - md
    - impl
    argTypes:
    - HMAC_CTX*
    - void*
    - int
    - EVP_MD*
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 80
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 80
    functionName: HMAC_Init_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c
    functionUses: 2
    functionsReached:
    - EVP_MD_CTX_copy_ex
    - EVP_DigestFinal_ex
    - EVP_MD_block_size
    - OPENSSL_assert
    - EVP_DigestUpdate
    - memset
    - memcpy
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: "HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,\n                 const
      EVP_MD *md, ENGINE *impl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:86,1
    - Dst: HMAC_Init_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - key
    - len
    - md
    argTypes:
    - HMAC_CTX*
    - void*
    - int
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 5
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: HMAC_Init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c
    functionUses: 0
    functionsReached:
    - HMAC_CTX_reset
    - HMAC_Init_ex
    linkageType: ''
    returnType: int
    signature: HMAC_Init(HMAC_CTX *ctx, const void *key, int len, const EVP_MD *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - data
    - len
    argTypes:
    - HMAC_CTX*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: HMAC_Update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c
    functionUses: 2
    functionsReached:
    - EVP_DigestUpdate
    linkageType: ''
    returnType: int
    signature: HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:106,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:108,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:110,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:112,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - md
    - len
    argTypes:
    - HMAC_CTX*
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 117
      start: 98
    functionDepth: 4
    functionLinenumber: 98
    functionLinenumberEnd: 117
    functionName: HMAC_Final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c
    functionUses: 2
    functionsReached:
    - EVP_MD_CTX_copy_ex
    - EVP_DigestFinal_ex
    - EVP_DigestUpdate
    linkageType: ''
    returnType: int
    signature: HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - HMAC_CTX*
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: HMAC_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c
    functionUses: 0
    functionsReached:
    - EVP_MD_size
    linkageType: ''
    returnType: size_t
    signature: HMAC_size(const HMAC_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:126,1
    - Dst: HMAC_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:129,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 135
    functionName: HMAC_CTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c
    functionUses: 2
    functionsReached:
    - HMAC_CTX_free
    - HMAC_CTX_reset
    - OPENSSL_zalloc
    linkageType: ''
    returnType: HMAC_CTX
    signature: '*HMAC_CTX_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:139,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:140,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:141,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - HMAC_CTX*
    constantsTouched: []
    func_position:
      end: 145
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 145
    functionName: hmac_ctx_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    - EVP_MD_CTX_reset
    linkageType: ''
    returnType: void
    signature: hmac_ctx_cleanup(HMAC_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hmac_ctx_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:150,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:151,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:152,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:153,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - HMAC_CTX*
    constantsTouched: []
    func_position:
      end: 156
      start: 147
    functionDepth: 4
    functionLinenumber: 147
    functionLinenumberEnd: 156
    functionName: HMAC_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c
    functionUses: 3
    functionsReached:
    - EVP_MD_CTX_free
    - OPENSSL_free
    - hmac_ctx_cleanup
    linkageType: ''
    returnType: void
    signature: HMAC_CTX_free(HMAC_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hmac_ctx_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:160,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:162,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:166,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:170,1
    - Dst: hmac_ctx_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:176,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - HMAC_CTX*
    constantsTouched: []
    func_position:
      end: 178
      start: 158
    functionDepth: 4
    functionLinenumber: 158
    functionLinenumberEnd: 178
    functionName: HMAC_CTX_reset
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c
    functionUses: 3
    functionsReached:
    - EVP_MD_CTX_new
    - hmac_ctx_cleanup
    linkageType: ''
    returnType: int
    signature: HMAC_CTX_reset(HMAC_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:182,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:184,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:186,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:188,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:190,1
    - Dst: hmac_ctx_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:195,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - dctx
    - sctx
    argTypes:
    - HMAC_CTX*
    - HMAC_CTX*
    constantsTouched: []
    func_position:
      end: 197
      start: 180
    functionDepth: 5
    functionLinenumber: 180
    functionLinenumberEnd: 197
    functionName: HMAC_CTX_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c
    functionUses: 1
    functionsReached:
    - EVP_MD_CTX_copy_ex
    - hmac_ctx_cleanup
    - memcpy
    - HMAC_CTX_reset
    linkageType: ''
    returnType: int
    signature: HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:209,1
    - Dst: HMAC_Init_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:217,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:219,1
    - Dst: HMAC_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:221,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:223,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:226,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 7
    argNames:
    - evp_md
    - key
    - key_len
    - d
    - n
    - md
    - md_len
    argTypes:
    - EVP_MD*
    - void*
    - int
    - unsigned char*
    - size_t
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 228
      start: 199
    functionDepth: 5
    functionLinenumber: 199
    functionLinenumberEnd: 228
    functionName: HMAC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c
    functionUses: 5
    functionsReached:
    - HMAC_Update
    - HMAC_CTX_new
    - HMAC_Final
    - HMAC_Init_ex
    - HMAC_CTX_free
    linkageType: ''
    returnType: unsigned char
    signature: "*HMAC(const EVP_MD *evp_md, const void *key, int key_len,\n                    const
      unsigned char *d, size_t n, unsigned char *md,\n                    unsigned
      int *md_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:232,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:233,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - HMAC_CTX*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 235
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 235
    functionName: HMAC_CTX_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_set_flags
    linkageType: ''
    returnType: void
    signature: HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - HMAC_CTX*
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: HMAC_CTX_get_md
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: '*HMAC_CTX_get_md(const HMAC_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:30,1
    - Dst: HMAC_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:34,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 44
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 44
    functionName: pkey_hmac_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c
    functionUses: 0
    functionsReached:
    - HMAC_CTX_new
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: pkey_hmac_init(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pkey_hmac_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:53,1
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:55,1
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:56,1
    - Dst: HMAC_CTX_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:58,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:61,1
    - Dst: pkey_hmac_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:68,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 70
      start: 48
    functionDepth: 6
    functionLinenumber: 48
    functionLinenumberEnd: 70
    functionName: pkey_hmac_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c
    functionUses: 0
    functionsReached:
    - pkey_hmac_cleanup
    - EVP_PKEY_CTX_get_data
    - ASN1_OCTET_STRING_set
    - HMAC_CTX_copy
    - pkey_hmac_init
    linkageType: ''
    returnType: int
    signature: pkey_hmac_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:74,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:77,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:78,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:79,1
    - Dst: EVP_PKEY_CTX_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 5
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: pkey_hmac_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_CTX_set_data
    - OPENSSL_clear_free
    - EVP_PKEY_CTX_get_data
    - HMAC_CTX_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: pkey_hmac_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:90,1
    - Dst: EVP_PKEY_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 96
      start: 84
    functionDepth: 4
    functionLinenumber: 84
    functionLinenumberEnd: 96
    functionName: pkey_hmac_keygen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_dup
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: pkey_hmac_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_pkey_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:100,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: int_update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c
    functionUses: 0
    functionsReached:
    - HMAC_Update
    - EVP_MD_CTX_pkey_ctx
    linkageType: ''
    returnType: int
    signature: int_update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:109,1
    - Dst: EVP_MD_CTX_test_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:110,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:111,1
    - Dst: EVP_MD_CTX_set_update_fn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - mctx
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 114
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 114
    functionName: hmac_signctx_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_set_update_fn
    - EVP_MD_CTX_test_flags
    - EVP_MD_CTX_set_flags
    - HMAC_CTX_set_flags
    linkageType: ''
    returnType: int
    signature: hmac_signctx_init(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - sig
    - siglen
    - mctx
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 133
      start: 116
    functionDepth: 5
    functionLinenumber: 116
    functionLinenumberEnd: 133
    functionName: hmac_signctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c
    functionUses: 0
    functionsReached:
    - HMAC_Final
    linkageType: ''
    returnType: int
    signature: "hmac_signctx(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,\n
      \                       EVP_MD_CTX *mctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:144,1
    - Dst: HMAC_Init_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:154,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 164
      start: 135
    functionDepth: 5
    functionLinenumber: 135
    functionLinenumberEnd: 164
    functionName: pkey_hmac_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_set
    - HMAC_Init_ex
    linkageType: ''
    returnType: int
    signature: pkey_hmac_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:172,1
    - Dst: EVP_PKEY_CTX_str2ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:173,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:174,1
    - Dst: EVP_PKEY_CTX_hex2ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 177
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 177
    functionName: pkey_hmac_ctrl_str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_str2ctrl
    - EVP_PKEY_CTX_hex2ctrl
    - strcmp
    linkageType: ''
    returnType: int
    signature: "pkey_hmac_ctrl_str(EVP_PKEY_CTX *ctx,\n                              const
      char *type, const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/md32_common.h:275,1
    - Dst: HASH_BLOCK_DATA_ORDER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/md32_common.h:276,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/md32_common.h:287,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/md32_common.h:289,1
    - Dst: HASH_BLOCK_DATA_ORDER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/md32_common.h:297,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/md32_common.h:306,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 3
    argNames:
    - c
    - data_
    - len
    argTypes:
    - HASH_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 309
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 309
    functionName: HASH_UPDATE
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/md32_common.h
    functionUses: 0
    functionsReached:
    - HASH_BLOCK_DATA_ORDER
    - memcpy
    - memset
    linkageType: ''
    returnType: int
    signature: HASH_UPDATE(HASH_CTX *c, const void *data_, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HASH_BLOCK_DATA_ORDER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/md32_common.h:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - data
    argTypes:
    - HASH_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: HASH_TRANSFORM
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/md32_common.h
    functionUses: 0
    functionsReached:
    - HASH_BLOCK_DATA_ORDER
    linkageType: ''
    returnType: void
    signature: HASH_TRANSFORM(HASH_CTX *c, const unsigned char *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/md32_common.h:325,1
    - Dst: HASH_BLOCK_DATA_ORDER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/md32_common.h:327,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/md32_common.h:329,1
    - Dst: HOST_l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/md32_common.h:333,1
    - Dst: HOST_l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/md32_common.h:334,1
    - Dst: HOST_l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/md32_common.h:336,1
    - Dst: HOST_l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/md32_common.h:337,1
    - Dst: HASH_BLOCK_DATA_ORDER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/md32_common.h:340,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/md32_common.h:342,1
    - Dst: HASH_MAKE_STRING
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/md32_common.h:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - HASH_CTX*
    constantsTouched: []
    func_position:
      end: 351
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 351
    functionName: HASH_FINAL
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/md32_common.h
    functionUses: 0
    functionsReached:
    - memset
    - HOST_l2c
    - HASH_BLOCK_DATA_ORDER
    - HASH_MAKE_STRING
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: HASH_FINAL(unsigned char *md, HASH_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:32,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:33,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:35,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:36,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:37,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:41,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:44,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:56,1
    - Dst: BN_abs_is_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:57,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:63,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:63,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:70,1
    - Dst: BN_rshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:72,1
    - Dst: BN_lsw
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:80,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:102,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:103,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:109,1
    - Dst: BN_rshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:111,1
    - Dst: BN_lsw
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:117,1
    - Dst: BN_lsw
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:122,1
    - Dst: BN_lsw
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:122,1
    - Dst: BN_lsw
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:122,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:126,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c:135,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 77
    argCount: 3
    argNames:
    - a
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 140
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 140
    functionName: BN_kronecker
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c
    functionUses: 0
    functionsReached:
    - BN_is_odd
    - BN_rshift
    - BN_is_bit_set
    - BN_nnmod
    - BN_is_zero
    - bn_check_top
    - BN_lsw
    - BN_is_one
    - BN_CTX_end
    - BN_CTX_start
    - BN_copy
    - BN_CTX_get
    - BN_abs_is_word
    linkageType: ''
    returnType: int
    signature: BN_kronecker(const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:20,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:21,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:23,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:24,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:25,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:29,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:31,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:36,1
    - Dst: euclid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:41,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:45,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:49,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:50,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 4
    argNames:
    - r
    - in_a
    - in_b
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 52
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 52
    functionName: BN_gcd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c
    functionUses: 1
    functionsReached:
    - bn_check_top
    - BN_cmp
    - BN_CTX_end
    - BN_CTX_start
    - BN_copy
    - BN_CTX_get
    - euclid
    linkageType: ''
    returnType: int
    signature: BN_gcd(BIGNUM *r, const BIGNUM *in_a, const BIGNUM *in_b, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:59,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:60,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:63,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:66,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:67,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:68,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:70,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:72,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:79,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:81,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:89,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:90,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:92,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:99,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:101,1
    - Dst: BN_lshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:110,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:113,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 117
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 117
    functionName: euclid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c
    functionUses: 1
    functionsReached:
    - BN_is_odd
    - BN_sub
    - BN_is_zero
    - bn_check_top
    - BN_cmp
    - BN_lshift
    - BN_rshift1
    linkageType: ''
    returnType: BIGNUM
    signature: '*euclid(BIGNUM *a, BIGNUM *b)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: int_bn_mod_inverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:129,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - in
    - a
    - n
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 133
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 133
    functionName: BN_mod_inverse
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c
    functionUses: 1
    functionsReached:
    - int_bn_mod_inverse
    - BNerr
    linkageType: ''
    returnType: BIGNUM
    signature: "*BN_mod_inverse(BIGNUM *in,\n                       const BIGNUM *a,
      const BIGNUM *n, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:146,1
    - Dst: BN_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:147,1
    - Dst: BN_mod_inverse_no_branch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:148,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:151,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:152,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:154,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:155,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:156,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:157,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:158,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:159,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:160,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:161,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:166,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:172,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:173,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:174,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:176,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:179,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:180,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:192,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:192,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:201,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:215,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:218,1
    - Dst: BN_uadd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:219,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:225,1
    - Dst: BN_rshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:229,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:237,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:240,1
    - Dst: BN_uadd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:241,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:245,1
    - Dst: BN_rshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:249,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:265,1
    - Dst: BN_uadd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:267,1
    - Dst: BN_usub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:273,1
    - Dst: BN_uadd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:277,1
    - Dst: BN_usub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:283,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:290,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:300,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:300,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:301,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:303,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:305,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:305,1
    - Dst: BN_lshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:307,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:309,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:311,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:313,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:317,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:319,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:321,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:323,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:330,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:335,1
    - Dst: BN_div
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:340,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:383,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:384,1
    - Dst: BN_is_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:387,1
    - Dst: BN_lshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:388,1
    - Dst: BN_is_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:390,1
    - Dst: BN_lshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:391,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:394,1
    - Dst: BN_mul_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:396,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:399,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:402,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:423,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:428,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:430,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:431,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:434,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:445,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:446,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:447,1
    CyclomaticComplexity: 105
    EdgeCount: 105
    ICount: 207
    argCount: 5
    argNames:
    - in
    - a
    - n
    - ctx
    - pnoinv
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - int*
    constantsTouched: []
    func_position:
      end: 449
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 449
    functionName: int_bn_mod_inverse
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c
    functionUses: 1
    functionsReached:
    - BN_rshift
    - BN_sub
    - BN_mul
    - BN_zero
    - BN_CTX_get
    - BN_ucmp
    - BN_is_word
    - BN_mod_inverse_no_branch
    - BN_mul_word
    - BN_free
    - BN_nnmod
    - BN_usub
    - BN_is_zero
    - BN_uadd
    - BN_lshift
    - BN_CTX_end
    - BN_CTX_start
    - BN_is_one
    - BN_rshift1
    - BN_new
    - BN_is_odd
    - BN_copy
    - BN_get_flags
    - BN_lshift1
    - BN_div
    - BN_is_bit_set
    - bn_check_top
    - BN_add
    - BN_one
    - BN_num_bits
    - BN_set_word
    linkageType: ''
    returnType: BIGNUM
    signature: "*int_bn_mod_inverse(BIGNUM *in,\n                           const
      BIGNUM *a, const BIGNUM *n, BN_CTX *ctx,\n                           int *pnoinv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:463,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:464,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:466,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:467,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:468,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:469,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:470,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:471,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:472,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:473,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:478,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:484,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:485,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:486,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:488,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:492,1
    - Dst: bn_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:499,1
    - Dst: BN_with_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:500,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:501,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:515,1
    - Dst: bn_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:530,1
    - Dst: BN_with_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:531,1
    - Dst: BN_div
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:534,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:574,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:576,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:595,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:600,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:602,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:603,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:606,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:610,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:616,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:617,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c:618,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 87
    argCount: 4
    argNames:
    - in
    - a
    - n
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 620
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 620
    functionName: BN_mod_inverse_no_branch
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c
    functionUses: 1
    functionsReached:
    - BN_sub
    - BN_mul
    - BN_zero
    - BN_CTX_get
    - BN_ucmp
    - BN_free
    - BN_nnmod
    - BN_is_zero
    - BN_CTX_end
    - BN_CTX_start
    - BN_is_one
    - BN_new
    - BN_with_flags
    - BNerr
    - bn_init
    - BN_copy
    - BN_div
    - bn_check_top
    - BN_add
    - BN_one
    linkageType: ''
    returnType: BIGNUM
    signature: "*BN_mod_inverse_no_branch(BIGNUM *in,\n                                        const
      BIGNUM *a, const BIGNUM *n,\n                                        BN_CTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_err.c:101,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_err.c:102,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_err.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 107
    functionName: ERR_load_BN_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_BN_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rsaz_1024_norm2red_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:117,1
    - Dst: rsaz_1024_norm2red_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:118,1
    - Dst: rsaz_1024_norm2red_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:119,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:121,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:122,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:125,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:127,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:129,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:130,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:133,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:134,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:138,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:139,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:143,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:144,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:146,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:147,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:149,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:150,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:152,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:153,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:156,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:157,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:158,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:160,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:161,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:163,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:164,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:166,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:167,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:169,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:170,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:173,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:174,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:175,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:177,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:178,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:180,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:181,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:183,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:184,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:187,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:188,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:189,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:191,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:192,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:194,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:195,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:197,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:198,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:201,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:202,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:203,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:205,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:206,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:208,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:209,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:212,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:213,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:214,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:216,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:217,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:219,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:220,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:223,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:224,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:225,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:227,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:228,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:230,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:231,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:234,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:235,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:236,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:238,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:239,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:241,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:242,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:248,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:254,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:260,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:261,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:265,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:269,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:270,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:273,1
    - Dst: rsaz_1024_red2norm_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:275,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 109
    argCount: 6
    argNames:
    - result_norm
    - base_norm
    - exponent
    - m_norm
    - RR
    - k0
    argTypes:
    - BN_ULONG[]
    - BN_ULONG[]
    - BN_ULONG[]
    - BN_ULONG[]
    - BN_ULONG[]
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 278
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 278
    functionName: RSAZ_1024_mod_exp_avx2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c
    functionUses: 0
    functionsReached:
    - rsaz_1024_gather5_avx2
    - rsaz_1024_red2norm_avx2
    - rsaz_1024_sqr_avx2
    - rsaz_1024_mul_avx2
    - rsaz_1024_scatter5_avx2
    - rsaz_1024_norm2red_avx2
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: "RSAZ_1024_mod_exp_avx2(BN_ULONG result_norm[16],\n                            const
      BN_ULONG base_norm[16],\n                            const BN_ULONG exponent[16],\n
      \                           const BN_ULONG m_norm[16], const BN_ULONG RR[16],\n
      \                           BN_ULONG k0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rsaz_512_scatter4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:316,1
    - Dst: rsaz_512_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:319,1
    - Dst: rsaz_512_scatter4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:320,1
    - Dst: rsaz_512_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:323,1
    - Dst: rsaz_512_scatter4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:324,1
    - Dst: rsaz_512_mul_scatter4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:327,1
    - Dst: rsaz_512_gather4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:332,1
    - Dst: rsaz_512_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:333,1
    - Dst: rsaz_512_mul_gather4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:334,1
    - Dst: rsaz_512_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:339,1
    - Dst: rsaz_512_mul_gather4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:340,1
    - Dst: rsaz_512_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:342,1
    - Dst: rsaz_512_mul_gather4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:343,1
    - Dst: rsaz_512_mul_by_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:347,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c:349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 6
    argNames:
    - result
    - base
    - exponent
    - m
    - k0
    - RR
    argTypes:
    - BN_ULONG[]
    - BN_ULONG[]
    - BN_ULONG[]
    - BN_ULONG[]
    - BN_ULONG
    - BN_ULONG[]
    constantsTouched: []
    func_position:
      end: 350
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 350
    functionName: RSAZ_512_mod_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c
    functionUses: 0
    functionsReached:
    - rsaz_512_mul_by_one
    - rsaz_512_mul_scatter4
    - rsaz_512_mul
    - rsaz_512_sqr
    - rsaz_512_mul_gather4
    - rsaz_512_scatter4
    - OPENSSL_cleanse
    - rsaz_512_gather4
    linkageType: ''
    returnType: void
    signature: "RSAZ_512_mod_exp(BN_ULONG result[8],\n                      const
      BN_ULONG base[8], const BN_ULONG exponent[8],\n                      const BN_ULONG
      m[8], BN_ULONG k0, const BN_ULONG RR[8])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:23,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:24,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:25,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:26,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:30,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:32,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:36,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:40,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:41,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:43,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:45,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:49,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:50,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:51,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:53,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:60,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:61,1
    - Dst: BN_lshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:65,1
    - Dst: BN_lshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:68,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:70,1
    - Dst: BN_usub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:72,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:76,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:79,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:83,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 62
    argCount: 5
    argNames:
    - dv
    - rem
    - m
    - d
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 85
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 85
    functionName: BN_div
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c
    functionUses: 3
    functionsReached:
    - BN_usub
    - BN_is_zero
    - bn_check_top
    - BNerr
    - BN_lshift
    - BN_CTX_end
    - BN_CTX_start
    - BN_num_bits
    - BN_copy
    - BN_zero
    - BN_CTX_get
    - BN_ucmp
    - BN_rshift1
    - bn_wexpand
    - BN_lshift1
    linkageType: ''
    returnType: int
    signature: "BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d,\n
      \          BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:157,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:161,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:162,1
    - Dst: BN_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:164,1
    - Dst: BN_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:165,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:169,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:170,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:178,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:179,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:183,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:185,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:189,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:193,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:194,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:195,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:196,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:198,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:205,1
    - Dst: BN_lshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:206,1
    - Dst: BN_lshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:210,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:220,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:226,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:257,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:264,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:268,1
    - Dst: bn_clear_top2max
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:274,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:275,1
    - Dst: bn_div_3_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:301,1
    - Dst: bn_div_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:317,1
    - Dst: bn_div_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:341,1
    - Dst: BN_UMULT_LOHI
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:347,1
    - Dst: BN_UMULT_HIGH
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:350,1
    - Dst: LBITS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:354,1
    - Dst: HBITS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:355,1
    - Dst: LBITS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:356,1
    - Dst: HBITS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:357,1
    - Dst: mul64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:358,1
    - Dst: bn_mul_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:377,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:384,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:391,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:402,1
    - Dst: BN_rshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:409,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:410,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:412,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:415,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:416,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:419,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c:420,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 161
    argCount: 5
    argNames:
    - dv
    - rm
    - num
    - divisor
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 422
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 422
    functionName: BN_div
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c
    functionUses: 3
    functionsReached:
    - BN_rshift
    - BN_UMULT_HIGH
    - bn_sub_words
    - BN_zero
    - BN_UMULT_LOHI
    - BN_CTX_get
    - BN_ucmp
    - HBITS
    - BN_is_zero
    - BN_lshift
    - BN_CTX_end
    - BN_CTX_start
    - bn_correct_top
    - bn_wexpand
    - BNerr
    - BN_copy
    - bn_add_words
    - BN_get_flags
    - bn_div_words
    - bn_clear_top2max
    - bn_div_3_words
    - mul64
    - bn_check_top
    - bn_mul_words
    - BN_num_bits
    - LBITS
    linkageType: ''
    returnType: int
    signature: "BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor,\n
      \          BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:18,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:19,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:23,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:27,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:42,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 44
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 44
    functionName: BN_lshift1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c
    functionUses: 2
    functionsReached:
    - bn_wexpand
    - bn_check_top
    linkageType: ''
    returnType: int
    signature: BN_lshift1(BIGNUM *r, const BIGNUM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:51,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:52,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:54,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:55,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:62,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:79,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 81
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 81
    functionName: BN_rshift1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c
    functionUses: 4
    functionsReached:
    - BN_is_zero
    - bn_wexpand
    - bn_check_top
    - BN_zero
    linkageType: ''
    returnType: int
    signature: BN_rshift1(BIGNUM *r, const BIGNUM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:89,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:90,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:93,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:98,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:115,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:117,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - r
    - a
    - n
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 120
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 120
    functionName: BN_lshift
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c
    functionUses: 5
    functionsReached:
    - bn_check_top
    - memset
    - BNerr
    - bn_correct_top
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: BN_lshift(BIGNUM *r, const BIGNUM *a, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:128,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:129,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:132,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:140,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:143,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:145,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c:173,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 3
    argNames:
    - r
    - a
    - n
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 175
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 175
    functionName: BN_rshift
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c
    functionUses: 4
    functionsReached:
    - bn_check_top
    - BNerr
    - BN_num_bits
    - BN_zero
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: BN_rshift(BIGNUM *r, const BIGNUM *a, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - mult
    - high
    - low
    - mont
    argTypes:
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 63
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 63
    functionName: BN_set_params
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BN_set_params(int mult, int high, int low, int mont)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - which
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 77
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 77
    functionName: BN_get_params
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BN_get_params(int which)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: BN_value_one
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_value_one(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 1
    argNames:
    - l
    argTypes:
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 159
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 159
    functionName: BN_num_bits_word
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BN_num_bits_word(BN_ULONG l)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:164,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:166,1
    - Dst: BN_num_bits_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 169
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 169
    functionName: BN_num_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 6
    functionsReached:
    - BN_is_zero
    - BN_num_bits_word
    - bn_check_top
    linkageType: ''
    returnType: int
    signature: BN_num_bits(const BIGNUM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:173,1
    - Dst: OPENSSL_secure_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:174,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: bn_free_d
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_secure_free
    - BN_get_flags
    linkageType: ''
    returnType: void
    signature: bn_free_d(BIGNUM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:186,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:188,1
    - Dst: BN_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:189,1
    - Dst: bn_free_d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:190,1
    - Dst: BN_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:192,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:193,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:195,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 196
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 196
    functionName: BN_clear_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 7
    functionsReached:
    - bn_free_d
    - bn_check_top
    - BN_get_flags
    - OPENSSL_cleanse
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: BN_clear_free(BIGNUM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:202,1
    - Dst: BN_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:203,1
    - Dst: bn_free_d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:204,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 213
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 213
    functionName: BN_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 43
    functionsReached:
    - OPENSSL_free
    - bn_free_d
    - bn_check_top
    - BN_get_flags
    linkageType: ''
    returnType: void
    signature: BN_free(BIGNUM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 221
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 221
    functionName: bn_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached:
    - bn_check_top
    linkageType: ''
    returnType: void
    signature: bn_init(BIGNUM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:227,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:228,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 234
    functionName: BN_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 37
    functionsReached:
    - bn_check_top
    - BNerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 242
    functionName: BN_secure_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - BN_new
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_secure_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:252,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:255,1
    - Dst: BN_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:258,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:259,1
    - Dst: BN_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:262,1
    - Dst: OPENSSL_secure_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:263,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:265,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:267,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:308,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:309,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 2
    argNames:
    - b
    - words
    argTypes:
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 313
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 313
    functionName: bn_expand_internal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_secure_zalloc
    - bn_check_top
    - BNerr
    - memset
    - memcpy
    - BN_get_flags
    - OPENSSL_zalloc
    linkageType: ''
    returnType: BN_ULONG
    signature: '*bn_expand_internal(const BIGNUM *b, int words)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:325,1
    - Dst: bn_expand_internal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:328,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:332,1
    - Dst: bn_free_d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:333,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:339,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - b
    - words
    argTypes:
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 341
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 341
    functionName: bn_expand2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 3
    functionsReached:
    - bn_expand_internal
    - bn_free_d
    - bn_check_top
    - OPENSSL_cleanse
    linkageType: ''
    returnType: BIGNUM
    signature: '*bn_expand2(BIGNUM *b, int words)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:349,1
    - Dst: BN_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:351,1
    - Dst: BN_secure_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:351,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:351,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:354,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:355,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:358,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 360
      start: 343
    functionDepth: 3
    functionLinenumber: 343
    functionLinenumberEnd: 360
    functionName: BN_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 2
    functionsReached:
    - BN_new
    - BN_free
    - bn_check_top
    - BN_copy
    - BN_get_flags
    - BN_secure_new
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_dup(const BIGNUM *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:368,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:372,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:400,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:405,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 407
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 407
    functionName: BN_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 11
    functionsReached:
    - bn_wexpand
    - bn_check_top
    - memcpy
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_copy(BIGNUM *a, const BIGNUM *b)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:415,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:416,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:440,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 442
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 442
    functionName: BN_swap
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    linkageType: ''
    returnType: void
    signature: BN_swap(BIGNUM *a, BIGNUM *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:446,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 451
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 451
    functionName: BN_clear
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    - bn_check_top
    linkageType: ''
    returnType: void
    signature: BN_clear(BIGNUM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 461
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 461
    functionName: BN_get_word
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_get_word(const BIGNUM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:465,1
    - Dst: bn_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:466,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 473
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 473
    functionName: BN_set_word
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 4
    functionsReached:
    - bn_check_top
    - bn_expand
    linkageType: ''
    returnType: int
    signature: BN_set_word(BIGNUM *a, BN_ULONG w)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:483,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:486,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:497,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:498,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:516,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - s
    - len
    - ret
    argTypes:
    - unsigned char*
    - int
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 518
      start: 475
    functionDepth: 3
    functionLinenumber: 475
    functionLinenumberEnd: 518
    functionName: BN_bin2bn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 21
    functionsReached:
    - BN_new
    - BN_free
    - bn_check_top
    - bn_correct_top
    - bn_wexpand
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:526,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:527,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:534,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - a
    - to
    - tolen
    argTypes:
    - BIGNUM*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 542
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 542
    functionName: bn2binpad
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - memset
    - bn_check_top
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: bn2binpad(const BIGNUM *a, unsigned char *to, int tolen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn2binpad
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - a
    - to
    - tolen
    argTypes:
    - BIGNUM*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 549
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 549
    functionName: BN_bn2binpad
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - bn2binpad
    linkageType: ''
    returnType: int
    signature: BN_bn2binpad(const BIGNUM *a, unsigned char *to, int tolen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn2binpad
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - to
    argTypes:
    - BIGNUM*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 554
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 554
    functionName: BN_bn2bin
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 12
    functionsReached:
    - bn2binpad
    linkageType: ''
    returnType: int
    signature: BN_bn2bin(const BIGNUM *a, unsigned char *to)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:564,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:567,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:579,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:580,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:599,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - s
    - len
    - ret
    argTypes:
    - unsigned char*
    - int
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 601
      start: 556
    functionDepth: 3
    functionLinenumber: 556
    functionLinenumberEnd: 601
    functionName: BN_lebin2bn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_free
    - bn_check_top
    - bn_correct_top
    - bn_wexpand
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_lebin2bn(const unsigned char *s, int len, BIGNUM *ret)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:607,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:608,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:613,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - a
    - to
    - tolen
    argTypes:
    - BIGNUM*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 621
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 621
    functionName: BN_bn2lebinpad
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached:
    - memset
    - bn_check_top
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: BN_bn2lebinpad(const BIGNUM *a, unsigned char *to, int tolen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:628,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:629,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 643
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 643
    functionName: BN_ucmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 4
    functionsReached:
    - bn_check_top
    linkageType: ''
    returnType: int
    signature: BN_ucmp(const BIGNUM *a, const BIGNUM *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:660,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:661,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 690
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 690
    functionName: BN_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 5
    functionsReached:
    - bn_check_top
    linkageType: ''
    returnType: int
    signature: BN_cmp(const BIGNUM *a, const BIGNUM *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:702,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:710,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 712
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 712
    functionName: BN_set_bit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached:
    - bn_wexpand
    - bn_check_top
    linkageType: ''
    returnType: int
    signature: BN_set_bit(BIGNUM *a, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:718,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:728,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 730
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 730
    functionName: BN_clear_bit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached:
    - bn_correct_top
    - bn_check_top
    linkageType: ''
    returnType: int
    signature: BN_clear_bit(BIGNUM *a, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 744
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 744
    functionName: BN_is_bit_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 4
    functionsReached:
    - bn_check_top
    linkageType: ''
    returnType: int
    signature: BN_is_bit_set(const BIGNUM *a, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:750,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:764,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 766
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 766
    functionName: BN_mask_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - bn_correct_top
    - bn_check_top
    linkageType: ''
    returnType: int
    signature: BN_mask_bits(BIGNUM *a, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:770,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 774
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 774
    functionName: BN_set_negative
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 4
    functionsReached:
    - BN_is_zero
    linkageType: ''
    returnType: void
    signature: BN_set_negative(BIGNUM *a, int b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - a
    - b
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    constantsTouched: []
    func_position:
      end: 792
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 792
    functionName: bn_cmp_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: bn_cmp_words(const BN_ULONG *a, const BN_ULONG *b, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_cmp_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:820,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - a
    - b
    - cl
    - dl
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 821
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 821
    functionName: bn_cmp_part_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - bn_cmp_words
    linkageType: ''
    returnType: int
    signature: bn_cmp_part_words(const BN_ULONG *a, const BN_ULONG *b, int cl, int
      dl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_wcheck_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:835,1
    - Dst: bn_wcheck_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:836,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:838,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:839,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:840,1
    - Dst: BN_CONSTTIME_SWAP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:858,1
    - Dst: BN_CONSTTIME_SWAP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:861,1
    - Dst: BN_CONSTTIME_SWAP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:863,1
    - Dst: BN_CONSTTIME_SWAP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:865,1
    - Dst: BN_CONSTTIME_SWAP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:867,1
    - Dst: BN_CONSTTIME_SWAP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:869,1
    - Dst: BN_CONSTTIME_SWAP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:871,1
    - Dst: BN_CONSTTIME_SWAP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:873,1
    - Dst: BN_CONSTTIME_SWAP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:875,1
    - Dst: BN_CONSTTIME_SWAP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:877,1
    - Dst: BN_CONSTTIME_SWAP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 4
    argNames:
    - condition
    - a
    - b
    - nwords
    argTypes:
    - BN_ULONG
    - BIGNUM*
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 882
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 882
    functionName: BN_consttime_swap
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - assert
    - BN_CONSTTIME_SWAP
    - bn_wcheck_size
    linkageType: ''
    returnType: void
    signature: BN_consttime_swap(BN_ULONG condition, BIGNUM *a, BIGNUM *b, int nwords)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - L
    - N
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 907
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 907
    functionName: BN_security_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BN_security_bits(int L, int N)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 913
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 913
    functionName: BN_zero_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BN_zero_ex(BIGNUM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 918
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 918
    functionName: BN_abs_is_word
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BN_abs_is_word(const BIGNUM *a, const BN_ULONG w)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 923
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 923
    functionName: BN_is_zero
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BN_is_zero(const BIGNUM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_abs_is_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:927,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 928
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 928
    functionName: BN_is_one
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 5
    functionsReached:
    - BN_abs_is_word
    linkageType: ''
    returnType: int
    signature: BN_is_one(const BIGNUM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_abs_is_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:932,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 933
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 933
    functionName: BN_is_word
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached:
    - BN_abs_is_word
    linkageType: ''
    returnType: int
    signature: BN_is_word(const BIGNUM *a, const BN_ULONG w)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 938
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 938
    functionName: BN_is_odd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BN_is_odd(const BIGNUM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 943
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 943
    functionName: BN_is_negative
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BN_is_negative(const BIGNUM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - a
    - mont
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_MONT_CTX*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 949
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 949
    functionName: BN_to_montgomery
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - BN_mod_mul_montgomery
    linkageType: ''
    returnType: int
    signature: "BN_to_montgomery(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont,\n
      \                    BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - b
    - flags
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 960
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 960
    functionName: BN_with_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BN_with_flags(BIGNUM *dest, const BIGNUM *b, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:966,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 972
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 972
    functionName: BN_GENCB_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - BNerr
    linkageType: ''
    returnType: BN_GENCB
    signature: '*BN_GENCB_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:978,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cb
    argTypes:
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 979
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 979
    functionName: BN_GENCB_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: BN_GENCB_free(BN_GENCB *cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 984
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 984
    functionName: BN_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BN_set_flags(BIGNUM *b, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 989
      start: 986
    functionDepth: 0
    functionLinenumber: 986
    functionLinenumberEnd: 989
    functionName: BN_get_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BN_get_flags(const BIGNUM *b, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - gencb
    - cb_arg
    argTypes:
    - BN_GENCB*
    - void*
    constantsTouched: []
    func_position:
      end: 999
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 999
    functionName: BN_GENCB_set_old
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "BN_GENCB_set_old(BN_GENCB *gencb, void (*callback) (int, int, void
      *),\n                      void *cb_arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - gencb
    - cb_arg
    argTypes:
    - BN_GENCB*
    - void*
    constantsTouched: []
    func_position:
      end: 1009
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1009
    functionName: BN_GENCB_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "BN_GENCB_set(BN_GENCB *gencb, int (*callback) (int, int, BN_GENCB
      *),\n                  void *cb_arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 1014
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1014
    functionName: BN_GENCB_get_arg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*BN_GENCB_get_arg(BN_GENCB *cb)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_expand2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - words
    argTypes:
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 1019
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1019
    functionName: bn_wexpand
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 13
    functionsReached:
    - bn_expand2
    linkageType: ''
    returnType: BIGNUM
    signature: '*bn_wexpand(BIGNUM *a, int words)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_pollute
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c:1036,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 1037
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1037
    functionName: bn_correct_top
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
    functionUses: 8
    functionsReached:
    - bn_pollute
    linkageType: ''
    returnType: void
    signature: bn_correct_top(BIGNUM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:20,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - r
    - m
    - d
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 26
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 26
    functionName: BN_nnmod
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c
    functionUses: 4
    functionsReached:
    - BN_mod
    linkageType: ''
    returnType: int
    signature: BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:31,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - r
    - a
    - b
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: BN_mod_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c
    functionUses: 2
    functionsReached:
    - BN_add
    - BN_nnmod
    linkageType: ''
    returnType: int
    signature: "BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM
      *m,\n               BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_uadd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:43,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:45,1
    - Dst: BN_usub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - r
    - a
    - b
    - m
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: BN_mod_add_quick
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c
    functionUses: 0
    functionsReached:
    - BN_ucmp
    - BN_uadd
    - BN_usub
    linkageType: ''
    returnType: int
    signature: "BN_mod_add_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,\n                     const
      BIGNUM *m)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:53,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - r
    - a
    - b
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: BN_mod_sub
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c
    functionUses: 2
    functionsReached:
    - BN_nnmod
    - BN_sub
    linkageType: ''
    returnType: int
    signature: "BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM
      *m,\n               BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:65,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - r
    - a
    - b
    - m
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: BN_mod_sub_quick
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c
    functionUses: 0
    functionsReached:
    - BN_add
    - BN_sub
    linkageType: ''
    returnType: int
    signature: "BN_mod_sub_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,\n                     const
      BIGNUM *m)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:79,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:80,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:81,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:83,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:84,1
    - Dst: BN_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:87,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:90,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:93,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:95,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:98,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 5
    argNames:
    - r
    - a
    - b
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 100
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 100
    functionName: BN_mod_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c
    functionUses: 7
    functionsReached:
    - BN_nnmod
    - BN_mul
    - bn_check_top
    - BN_CTX_end
    - BN_CTX_start
    - BN_sqr
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM
      *m,\n               BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:104,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - r
    - a
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: BN_mod_sqr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c
    functionUses: 0
    functionsReached:
    - BN_sqr
    - BN_mod
    linkageType: ''
    returnType: int
    signature: BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_lshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:112,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:114,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - r
    - a
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: BN_mod_lshift1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - BN_lshift1
    - BN_nnmod
    linkageType: ''
    returnType: int
    signature: BN_mod_lshift1(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX
      *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_lshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:124,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:126,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:127,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - r
    - a
    - m
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: BN_mod_lshift1_quick
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - BN_lshift1
    - BN_cmp
    - BN_sub
    linkageType: ''
    returnType: int
    signature: BN_mod_lshift1_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:138,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:142,1
    - Dst: BN_mod_lshift_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:148,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:149,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - r
    - a
    - n
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 153
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 153
    functionName: BN_mod_lshift
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - BN_free
    - BN_nnmod
    - bn_check_top
    - BN_mod_lshift_quick
    linkageType: ''
    returnType: int
    signature: "BN_mod_lshift(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m,\n
      \                 BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:162,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:170,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:170,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:174,1
    - Dst: BN_lshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:182,1
    - Dst: BN_lshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:186,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:193,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:194,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c:198,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 4
    argNames:
    - r
    - a
    - n
    - m
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 201
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 201
    functionName: BN_mod_lshift_quick
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c
    functionUses: 1
    functionsReached:
    - BN_sub
    - bn_check_top
    - BN_cmp
    - BN_lshift
    - BNerr
    - BN_num_bits
    - BN_copy
    - BN_lshift1
    linkageType: ''
    returnType: int
    signature: BN_mod_lshift_quick(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM
      *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:34,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:36,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:37,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:41,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:43,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:44,1
    - Dst: BN_BLINDING_set_current_thread
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:48,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:51,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:56,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:61,1
    - Dst: BN_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:64,1
    - Dst: BN_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:65,1
    - Dst: BN_BLINDING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:77,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - A
    - Ai
    - mod
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 79
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 79
    functionName: BN_BLINDING_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - BN_BLINDING_free
    - BN_BLINDING_set_current_thread
    - bn_check_top
    - BNerr
    - CRYPTO_THREAD_lock_new
    - BN_set_flags
    - BN_get_flags
    - OPENSSL_zalloc
    - OPENSSL_free
    linkageType: ''
    returnType: BN_BLINDING
    signature: '*BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, BIGNUM *mod)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:86,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:87,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:88,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:89,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:90,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - r
    argTypes:
    - BN_BLINDING*
    constantsTouched: []
    func_position:
      end: 92
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 92
    functionName: BN_BLINDING_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - CRYPTO_THREAD_lock_free
    - BN_free
    linkageType: ''
    returnType: void
    signature: BN_BLINDING_free(BN_BLINDING *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:99,1
    - Dst: BN_BLINDING_create_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:109,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:112,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:114,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 2
    argNames:
    - b
    - ctx
    argTypes:
    - BN_BLINDING*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 123
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 123
    functionName: BN_BLINDING_update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached:
    - BN_BLINDING_create_param
    - BNerr
    - BN_mod_mul
    linkageType: ''
    returnType: int
    signature: BN_BLINDING_update(BN_BLINDING *b, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_BLINDING_convert_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - n
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BN_BLINDING*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: BN_BLINDING_convert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached:
    - BN_BLINDING_convert_ex
    linkageType: ''
    returnType: int
    signature: BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:134,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:137,1
    - Dst: BN_BLINDING_update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:144,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:148,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:152,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - n
    - r
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_BLINDING*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 156
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 156
    functionName: BN_BLINDING_convert_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c
    functionUses: 1
    functionsReached:
    - bn_check_top
    - BNerr
    - BN_BLINDING_update
    - BN_copy
    - BN_mod_mul
    linkageType: ''
    returnType: int
    signature: BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX
      *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_BLINDING_invert_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - n
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BN_BLINDING*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: BN_BLINDING_invert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached:
    - BN_BLINDING_invert_ex
    linkageType: ''
    returnType: int
    signature: BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:168,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:171,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:174,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:177,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - n
    - r
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_BLINDING*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 182
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 182
    functionName: BN_BLINDING_invert_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c
    functionUses: 1
    functionsReached:
    - bn_check_top
    - BNerr
    - BN_mod_mul
    linkageType: ''
    returnType: int
    signature: "BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b,\n
      \                         BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_compare_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:186,1
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BN_BLINDING*
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: BN_BLINDING_is_current_thread
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_get_current_id
    - CRYPTO_THREAD_compare_id
    linkageType: ''
    returnType: int
    signature: BN_BLINDING_is_current_thread(BN_BLINDING *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BN_BLINDING*
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: BN_BLINDING_set_current_thread
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_get_current_id
    linkageType: ''
    returnType: void
    signature: BN_BLINDING_set_current_thread(BN_BLINDING *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BN_BLINDING*
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: BN_BLINDING_lock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    linkageType: ''
    returnType: int
    signature: BN_BLINDING_lock(BN_BLINDING *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BN_BLINDING*
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: BN_BLINDING_unlock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: BN_BLINDING_unlock(BN_BLINDING *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BN_BLINDING*
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: BN_BLINDING_get_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: BN_BLINDING_get_flags(const BN_BLINDING *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - flags
    argTypes:
    - BN_BLINDING*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: BN_BLINDING_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BN_BLINDING_set_flags(BN_BLINDING *b, unsigned long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_BLINDING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:228,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:235,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:237,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:241,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:242,1
    - Dst: BN_rand_range
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:254,1
    - Dst: int_bn_mod_inverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:256,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:262,1
    - Dst: BN_BLINDING*::bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:273,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:277,1
    - Dst: BN_BLINDING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c:284,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 58
    argCount: 5
    argNames:
    - b
    - e
    - m
    - ctx
    - m_ctx
    argTypes:
    - BN_BLINDING*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    constantsTouched: []
    func_position:
      end: 289
      start: 214
    functionDepth: 5
    functionLinenumber: 214
    functionLinenumberEnd: 289
    functionName: BN_BLINDING_create_param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_BLINDING*::bn_mod_exp
    - BN_dup
    - BN_free
    - BN_BLINDING_free
    - BN_mod_exp
    - int_bn_mod_inverse
    - BNerr
    - BN_BLINDING_new
    - BN_rand_range
    linkageType: ''
    returnType: BN_BLINDING
    signature: "*BN_BLINDING_create_param(BN_BLINDING *b,\n                                      const
      BIGNUM *e, BIGNUM *m, BN_CTX *ctx,\n                                      int
      (*bn_mod_exp) (BIGNUM *r,\n                                                         const
      BIGNUM *a,\n                                                         const BIGNUM
      *p,\n                                                         const BIGNUM *m,\n
      \                                                        BN_CTX *ctx,\n                                                         BN_MONT_CTX
      *m_ctx),\n                                      BN_MONT_CTX *m_ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: BN_get0_nist_prime_192
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_get0_nist_prime_192(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: BN_get0_nist_prime_224
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_get0_nist_prime_224(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: BN_get0_nist_prime_256
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_get0_nist_prime_256(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: BN_get0_nist_prime_384
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_get0_nist_prime_384(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: BN_get0_nist_prime_521
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_get0_nist_prime_521(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - dst
    - src
    - top
    - max
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 263
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 263
    functionName: nist_cp_bn_0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    linkageType: ''
    returnType: void
    signature: nist_cp_bn_0(BN_ULONG *dst, const BN_ULONG *src, int top, int max)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - dst
    - src
    - top
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    constantsTouched: []
    func_position:
      end: 271
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 271
    functionName: nist_cp_bn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: nist_cp_bn(BN_ULONG *dst, const BN_ULONG *src, int top)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:333,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:334,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:340,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:340,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:341,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:343,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:345,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:348,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:351,1
    - Dst: nist_cp_bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:354,1
    - Dst: nist_cp_bn_0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:358,1
    - Dst: nist_set_192
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:410,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:411,1
    - Dst: nist_set_192
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:412,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:413,1
    - Dst: nist_set_192
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:414,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:415,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:420,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:432,1
    - Dst: nist_cp_bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:438,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:440,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 69
    argCount: 4
    argNames:
    - r
    - a
    - field
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 443
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 443
    functionName: BN_nist_mod_192
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached:
    - nist_cp_bn_0
    - BN_ucmp
    - BN_nnmod
    - nist_set_192
    - BN_is_negative
    - bn_sub_words
    - BN_zero
    - BN_copy
    - bn_add_words
    - bn_correct_top
    - OSSL_NELEM
    - bn_wexpand
    - nist_cp_bn
    linkageType: ''
    returnType: int
    signature: "BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,\n
      \                   BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:478,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:479,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:485,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:485,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:486,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:488,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:490,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:493,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:496,1
    - Dst: nist_cp_bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:499,1
    - Dst: nist_cp_bn_0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:505,1
    - Dst: nist_set_224
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:508,1
    - Dst: nist_cp_bn_0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:512,1
    - Dst: nist_set_224
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:575,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:576,1
    - Dst: nist_set_224
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:577,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:578,1
    - Dst: nist_set_224
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:579,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:580,1
    - Dst: nist_set_224
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:581,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:582,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:592,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:606,1
    - Dst: nist_cp_bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:621,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:623,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 91
    argCount: 4
    argNames:
    - r
    - a
    - field
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 626
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 626
    functionName: BN_nist_mod_224
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached:
    - nist_set_224
    - nist_cp_bn_0
    - BN_ucmp
    - BN_nnmod
    - BN_is_negative
    - bn_sub_words
    - BN_zero
    - BN_copy
    - bn_add_words
    - bn_correct_top
    - OSSL_NELEM
    - bn_wexpand
    - nist_cp_bn
    linkageType: ''
    returnType: int
    signature: "BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,\n
      \                   BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:659,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:660,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:666,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:666,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:667,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:669,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:671,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:674,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:677,1
    - Dst: nist_cp_bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:680,1
    - Dst: nist_cp_bn_0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:684,1
    - Dst: nist_set_256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:788,1
    - Dst: nist_set_256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:792,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:793,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:807,1
    - Dst: nist_set_256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:811,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:812,1
    - Dst: nist_set_256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:816,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:817,1
    - Dst: nist_set_256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:821,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:822,1
    - Dst: nist_set_256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:826,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:827,1
    - Dst: nist_set_256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:831,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:832,1
    - Dst: nist_set_256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:836,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:837,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:845,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:849,1
    - Dst: nist_cp_bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:863,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:865,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 143
    argCount: 4
    argNames:
    - r
    - a
    - field
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 868
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 868
    functionName: BN_nist_mod_256
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached:
    - nist_set_256
    - nist_cp_bn_0
    - BN_ucmp
    - BN_nnmod
    - BN_is_negative
    - bn_sub_words
    - BN_zero
    - BN_copy
    - bn_add_words
    - bn_correct_top
    - OSSL_NELEM
    - bn_wexpand
    - nist_cp_bn
    linkageType: ''
    returnType: int
    signature: "BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,\n
      \                   BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:905,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:906,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:912,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:912,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:913,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:915,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:917,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:920,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:923,1
    - Dst: nist_cp_bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:926,1
    - Dst: nist_cp_bn_0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:930,1
    - Dst: nist_set_256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1061,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1075,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1080,1
    - Dst: nist_set_384
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1084,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1086,1
    - Dst: nist_set_384
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1090,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1092,1
    - Dst: nist_set_384
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1096,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1097,1
    - Dst: nist_set_384
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1101,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1102,1
    - Dst: nist_set_384
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1106,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1108,1
    - Dst: nist_set_384
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1112,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1113,1
    - Dst: nist_set_384
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1117,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1118,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1126,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1130,1
    - Dst: nist_cp_bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1144,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1146,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 166
    argCount: 4
    argNames:
    - r
    - a
    - field
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1149
      start: 886
    functionDepth: 2
    functionLinenumber: 886
    functionLinenumberEnd: 1149
    functionName: BN_nist_mod_384
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached:
    - nist_set_256
    - nist_cp_bn_0
    - BN_ucmp
    - BN_nnmod
    - BN_is_negative
    - nist_set_384
    - bn_sub_words
    - BN_zero
    - BN_copy
    - bn_add_words
    - bn_correct_top
    - OSSL_NELEM
    - bn_wexpand
    - nist_cp_bn
    linkageType: ''
    returnType: int
    signature: "BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,\n
      \                   BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1163,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1164,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1170,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1170,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1171,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1173,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1175,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1178,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1181,1
    - Dst: nist_cp_bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1184,1
    - Dst: nist_cp_bn_0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1189,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1212,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1214,1
    - Dst: nist_cp_bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1219,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1221,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 4
    argNames:
    - r
    - a
    - field
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1224
      start: 1155
    functionDepth: 2
    functionLinenumber: 1155
    functionLinenumberEnd: 1224
    functionName: BN_nist_mod_521
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached:
    - nist_cp_bn_0
    - BN_ucmp
    - BN_nnmod
    - BN_is_negative
    - bn_sub_words
    - BN_zero
    - BN_copy
    - bn_add_words
    - bn_correct_top
    - OSSL_NELEM
    - bn_wexpand
    - nist_cp_bn
    linkageType: ''
    returnType: int
    signature: "BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,\n
      \                   BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1228,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1230,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1232,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1234,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c:1236,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - r
    - a
    - field
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1239
      start: 1226
    functionDepth: 1
    functionLinenumber: 1226
    functionLinenumberEnd: 1239
    functionName: "(*BN_nist_mod_func(const BIGNUM *p)) (BIGNUM *r, const BIGNUM *a,\n
      \                                         const BIGNUM *field, BN_CTX *ctx)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached:
    - BN_ucmp
    linkageType: ''
    returnType: int
    signature: "(*BN_nist_mod_func(const BIGNUM *p)) (BIGNUM *r, const BIGNUM *a,\n
      \                                         const BIGNUM *field, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:18,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:19,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:39,1
    - Dst: BN_usub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:40,1
    - Dst: BN_usub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:44,1
    - Dst: BN_uadd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:51,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:53,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 55
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 55
    functionName: BN_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c
    functionUses: 7
    functionsReached:
    - BN_ucmp
    - BN_uadd
    - bn_check_top
    - BN_usub
    linkageType: ''
    returnType: int
    signature: BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:64,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:65,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:78,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:87,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 104
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 104
    functionName: BN_uadd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c
    functionUses: 3
    functionsReached:
    - bn_wexpand
    - bn_check_top
    - bn_add_words
    linkageType: ''
    returnType: int
    signature: BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:113,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:114,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:121,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:125,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:132,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 148
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 148
    functionName: BN_usub
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c
    functionUses: 4
    functionsReached:
    - bn_check_top
    - BNerr
    - bn_sub_words
    - bn_correct_top
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:155,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:156,1
    - Dst: BN_uadd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:183,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:192,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:194,1
    - Dst: BN_usub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:195,1
    - Dst: BN_usub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:199,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c:203,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 205
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 205
    functionName: BN_sub
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c
    functionUses: 9
    functionsReached:
    - BN_usub
    - BN_uadd
    - bn_check_top
    - BN_ucmp
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:31,1
    - Dst: BN_div_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:35,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:36,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 59
      start: 13
    functionDepth: 4
    functionLinenumber: 13
    functionLinenumberEnd: 59
    functionName: BN_mod_word
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c
    functionUses: 1
    functionsReached:
    - BN_free
    - BN_dup
    - BN_div_word
    - bn_check_top
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_mod_word(const BIGNUM *a, BN_ULONG w)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:66,1
    - Dst: BN_num_bits_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:76,1
    - Dst: BN_lshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:78,1
    - Dst: bn_div_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:85,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:94,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 96
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 96
    functionName: BN_div_word
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c
    functionUses: 2
    functionsReached:
    - BN_num_bits_word
    - bn_check_top
    - BN_lshift
    - bn_div_words
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_div_word(BIGNUM *a, BN_ULONG w)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:103,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:110,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:111,1
    - Dst: BN_sub_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:115,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:116,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:125,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:130,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 132
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 132
    functionName: BN_add_word
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c
    functionUses: 5
    functionsReached:
    - BN_sub_word
    - BN_is_zero
    - bn_check_top
    - BN_set_word
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: BN_add_word(BIGNUM *a, BN_ULONG w)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:138,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:145,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:146,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:148,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:154,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:177,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 179
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 179
    functionName: BN_sub_word
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c
    functionUses: 4
    functionsReached:
    - BN_set_negative
    - BN_add_word
    - BN_is_zero
    - bn_check_top
    - BN_set_word
    linkageType: ''
    returnType: int
    signature: BN_sub_word(BIGNUM *a, BN_ULONG w)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:185,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:189,1
    - Dst: bn_mul_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:191,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:193,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 201
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 201
    functionName: BN_mul_word
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c
    functionUses: 2
    functionsReached:
    - bn_wexpand
    - bn_check_top
    - BN_zero
    - bn_mul_words
    linkageType: ''
    returnType: int
    signature: BN_mul_word(BIGNUM *a, BN_ULONG w)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:26,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:36,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:38,1
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:43,1
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:44,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:46,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:57,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:83,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:87,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:88,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:92,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 66
    argCount: 5
    argNames:
    - pseudorand
    - rnd
    - bits
    - top
    - bottom
    argTypes:
    - int
    - BIGNUM*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 94
      start: 17
    functionDepth: 4
    functionLinenumber: 17
    functionLinenumberEnd: 94
    functionName: bnrand
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - BN_bin2bn
    - RAND_add
    - bn_check_top
    - BNerr
    - BN_zero
    - OPENSSL_clear_free
    - OPENSSL_malloc
    - time
    linkageType: ''
    returnType: int
    signature: bnrand(int pseudorand, BIGNUM *rnd, int bits, int top, int bottom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bnrand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - rnd
    - bits
    - top
    - bottom
    argTypes:
    - BIGNUM*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 5
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: BN_rand
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c
    functionUses: 2
    functionsReached:
    - bnrand
    linkageType: ''
    returnType: int
    signature: BN_rand(BIGNUM *rnd, int bits, int top, int bottom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bnrand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - rnd
    - bits
    - top
    - bottom
    argTypes:
    - BIGNUM*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 5
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: BN_pseudo_rand
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - bnrand
    linkageType: ''
    returnType: int
    signature: BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bnrand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - rnd
    - bits
    - top
    - bottom
    argTypes:
    - BIGNUM*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 5
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: BN_bntest_rand
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - bnrand
    linkageType: ''
    returnType: int
    signature: BN_bntest_rand(BIGNUM *rnd, int bits, int top, int bottom)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:119,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:120,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:124,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:129,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:130,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:130,1
    - Dst: bn_rand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:136,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:144,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:145,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:147,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:148,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:153,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:158,1
    - Dst: bn_rand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:162,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:166,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:170,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:173,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 3
    argNames:
    - pseudo
    - r
    - range
    argTypes:
    - int
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 175
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 175
    functionName: bn_rand_range
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - BN_is_bit_set
    - BN_sub
    - BN_is_zero
    - bn_rand
    - bn_check_top
    - BN_cmp
    - BNerr
    - BN_num_bits
    - BN_zero
    linkageType: ''
    returnType: int
    signature: bn_rand_range(int pseudo, BIGNUM *r, const BIGNUM *range)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_rand_range
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - range
    argTypes:
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 4
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: BN_rand_range
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c
    functionUses: 4
    functionsReached:
    - bn_rand_range
    linkageType: ''
    returnType: int
    signature: BN_rand_range(BIGNUM *r, const BIGNUM *range)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_rand_range
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - range
    argTypes:
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 4
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: BN_pseudo_rand_range
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - bn_rand_range
    linkageType: ''
    returnType: int
    signature: BN_pseudo_rand_range(BIGNUM *r, const BIGNUM *range)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:213,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:225,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:228,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:229,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:232,1
    - Dst: SHA512_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:234,1
    - Dst: SHA512_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:235,1
    - Dst: SHA512_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:236,1
    - Dst: SHA512_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:237,1
    - Dst: SHA512_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:238,1
    - Dst: SHA512_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:239,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:244,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:248,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:250,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:255,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c:256,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 6
    argNames:
    - out
    - range
    - priv
    - message
    - message_len
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - unsigned char*
    - size_t
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 258
      start: 195
    functionDepth: 4
    functionLinenumber: 195
    functionLinenumberEnd: 258
    functionName: BN_generate_dsa_nonce
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - SHA512_Init
    - RAND_bytes
    - SHA512_Final
    - BN_bin2bn
    - BN_mod
    - memset
    - BNerr
    - SHA512_Update
    - memcpy
    - OPENSSL_cleanse
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "BN_generate_dsa_nonce(BIGNUM *out, const BIGNUM *range,\n                          const
      BIGNUM *priv, const unsigned char *message,\n                          size_t
      message_len, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c:30,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c:31,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c:33,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c:43,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c:50,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c:55,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c:59,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c:60,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c:66,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c:101,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c:113,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c:121,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c:124,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c:130,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c:137,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 79
    argCount: 3
    argNames:
    - scalar
    - w
    - ret_len
    argTypes:
    - BIGNUM*
    - int
    - size_t*
    constantsTouched: []
    func_position:
      end: 139
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 139
    functionName: bn_compute_wNAF
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached:
    - BN_is_bit_set
    - BN_is_zero
    - BNerr
    - BN_is_negative
    - BN_num_bits
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: signed char
    signature: '*bn_compute_wNAF(const BIGNUM *scalar, int w, size_t *ret_len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: bn_get_top
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: bn_get_top(const BIGNUM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - top
    argTypes:
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: bn_set_top
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: bn_set_top(BIGNUM *a, int top)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: bn_get_dmax
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: bn_get_dmax(const BIGNUM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 162
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 162
    functionName: bn_set_all_zero
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: bn_set_all_zero(BIGNUM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c:169,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - out
    - in
    - size
    argTypes:
    - BN_ULONG*
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 173
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 173
    functionName: bn_copy_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: int
    signature: bn_copy_words(BN_ULONG *out, const BIGNUM *in, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: bn_get_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: '*bn_get_words(const BIGNUM *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - a
    - words
    - size
    argTypes:
    - BIGNUM*
    - BN_ULONG*
    - int
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: bn_set_static_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached:
    - bn_correct_top
    linkageType: ''
    returnType: void
    signature: bn_set_static_words(BIGNUM *a, BN_ULONG *words, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c:191,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c:192,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c:196,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - a
    - words
    - num_words
    argTypes:
    - BIGNUM*
    - BN_ULONG*
    - int
    constantsTouched: []
    func_position:
      end: 200
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 200
    functionName: bn_set_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached:
    - bn_correct_top
    - bn_wexpand
    - memcpy
    - BNerr
    linkageType: ''
    returnType: int
    signature: bn_set_words(BIGNUM *a, BN_ULONG *words, int num_words)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: bn_sizeof_BIGNUM
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: bn_sizeof_BIGNUM(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - base
    - el
    argTypes:
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: bn_array_el
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: '*bn_array_el(BIGNUM *base, int el)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_expand2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lcl.h:682,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - bits
    argTypes:
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 683
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 683
    functionName: bn_expand
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lcl.h
    functionUses: 1
    functionsReached:
    - bn_expand2
    linkageType: ''
    returnType: ossl_inline
    signature: '*bn_expand(BIGNUM *a, int bits)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:46,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:48,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:52,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:54,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:57,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:61,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:63,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:65,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:66,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:69,1
    - Dst: BN_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:74,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:76,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:77,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:81,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:86,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:87,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 45
    argCount: 4
    argNames:
    - r
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 89
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 89
    functionName: BN_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c
    functionUses: 1
    functionsReached:
    - BN_is_odd
    - BN_is_bit_set
    - BN_mul
    - bn_check_top
    - BNerr
    - BN_CTX_end
    - BN_CTX_start
    - BN_sqr
    - BN_num_bits
    - BN_copy
    - BN_one
    - BN_get_flags
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:96,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:97,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:98,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:143,1
    - Dst: BN_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:146,1
    - Dst: BN_mod_exp_mont_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:148,1
    - Dst: BN_mod_exp_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:151,1
    - Dst: BN_mod_exp_recp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:156,1
    - Dst: BN_mod_exp_simple
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:160,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - r
    - a
    - p
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 166
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 166
    functionName: BN_mod_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c
    functionUses: 10
    functionsReached:
    - BN_is_odd
    - bn_check_top
    - BN_get_flags
    - BN_mod_exp_simple
    - BN_mod_exp_mont_word
    - BN_mod_exp_recp
    - BN_mod_exp_mont
    linkageType: ''
    returnType: int
    signature: "BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM
      *m,\n               BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:178,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:180,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:184,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:187,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:189,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:191,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:196,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:197,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:198,1
    - Dst: BN_RECP_CTX_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:202,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:205,1
    - Dst: BN_RECP_CTX_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:208,1
    - Dst: BN_RECP_CTX_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:211,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:215,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:217,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:218,1
    - Dst: BN_window_bits_for_exponent_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:223,1
    - Dst: BN_mod_mul_reciprocal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:225,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:229,1
    - Dst: BN_mod_mul_reciprocal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:230,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:242,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:246,1
    - Dst: BN_mod_mul_reciprocal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:248,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:266,1
    - Dst: BN_mod_mul_reciprocal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:278,1
    - Dst: BN_mod_mul_reciprocal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:283,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:295,1
    - Dst: BN_RECP_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:296,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:297,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 109
    argCount: 5
    argNames:
    - r
    - a
    - p
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 299
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 299
    functionName: BN_mod_exp_recp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c
    functionUses: 1
    functionsReached:
    - BN_zero
    - BN_mod_mul_reciprocal
    - BN_CTX_get
    - BN_nnmod
    - BN_is_zero
    - BN_CTX_end
    - BN_CTX_start
    - BN_is_one
    - BNerr
    - BN_copy
    - BN_get_flags
    - BN_window_bits_for_exponent_size
    - BN_is_bit_set
    - BN_RECP_CTX_free
    - bn_check_top
    - BN_num_bits
    - BN_one
    - BN_RECP_CTX_set
    - BN_RECP_CTX_init
    linkageType: ''
    returnType: int
    signature: "BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,\n                    const
      BIGNUM *m, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:312,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:313,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:316,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:317,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:318,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:320,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:321,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:324,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:327,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:329,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:331,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:336,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:337,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:338,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:339,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:350,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:352,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:356,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:357,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:362,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:363,1
    - Dst: BN_to_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:367,1
    - Dst: BN_window_bits_for_exponent_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:370,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:372,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:376,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:377,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:392,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:403,1
    - Dst: BN_to_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:406,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:406,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:409,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:411,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:430,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:442,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:447,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:464,1
    - Dst: BN_from_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:468,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:473,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:474,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:475,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 144
    argCount: 6
    argNames:
    - rr
    - a
    - p
    - m
    - ctx
    - in_mont
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    constantsTouched: []
    func_position:
      end: 477
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 477
    functionName: BN_mod_exp_mont
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c
    functionUses: 1
    functionsReached:
    - BN_MONT_CTX_new
    - BN_zero
    - BN_to_montgomery
    - BN_CTX_get
    - BN_ucmp
    - BN_MONT_CTX_set
    - BN_from_montgomery
    - BN_value_one
    - BN_nnmod
    - BN_is_zero
    - BN_CTX_end
    - BN_CTX_start
    - bn_correct_top
    - BN_is_one
    - bn_wexpand
    - BN_mod_mul_montgomery
    - BN_is_odd
    - BN_MONT_CTX_free
    - BNerr
    - BN_mod_exp_mont_consttime
    - BN_get_flags
    - BN_window_bits_for_exponent_size
    - BN_is_bit_set
    - bn_check_top
    - BN_num_bits
    - BN_one
    linkageType: ''
    returnType: int
    signature: "BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p,\n                    const
      BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *in_mont)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - a
    - bitpos
    argTypes:
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 497
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 497
    functionName: bn_get_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: bn_get_bits(const BIGNUM *a, int bitpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - b
    - top
    - buf
    - idx
    - window
    argTypes:
    - BIGNUM*
    - int
    - unsigned char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 523
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 523
    functionName: MOD_EXP_CTIME_COPY_TO_PREBUF
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "MOD_EXP_CTIME_COPY_TO_PREBUF(const BIGNUM *b, int top,\n                                        unsigned
      char *buf, int idx,\n                                        int window)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:541,1
    - Dst: constant_time_eq_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:550,1
    - Dst: constant_time_eq_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:562,1
    - Dst: constant_time_eq_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:563,1
    - Dst: constant_time_eq_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:564,1
    - Dst: constant_time_eq_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:565,1
    - Dst: constant_time_eq_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:575,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:583,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - b
    - top
    - buf
    - idx
    - window
    argTypes:
    - BIGNUM*
    - int
    - unsigned char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 585
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 585
    functionName: MOD_EXP_CTIME_COPY_FROM_PREBUF
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c
    functionUses: 0
    functionsReached:
    - bn_correct_top
    - bn_wexpand
    - constant_time_eq_int
    linkageType: ''
    returnType: int
    signature: "MOD_EXP_CTIME_COPY_FROM_PREBUF(BIGNUM *b, int top,\n                                          unsigned
      char *buf, int idx,\n                                          int window)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:618,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:619,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:620,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:622,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:623,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:629,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:632,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:634,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:636,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:641,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:650,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:652,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:662,1
    - Dst: rsaz_avx2_eligible
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:663,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:664,1
    - Dst: RSAZ_1024_mod_exp_avx2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:666,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:670,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:673,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:674,1
    - Dst: RSAZ_512_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:676,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:679,1
    - Dst: BN_window_bits_for_ctime_exponent_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:686,1
    - Dst: alloca
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:715,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:719,1
    - Dst: MOD_EXP_CTIME_ALIGN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:723,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:724,1
    - Dst: BN_to_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:749,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:749,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:753,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:754,1
    - Dst: BN_to_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:756,1
    - Dst: BN_to_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:758,1
    - Dst: bn_flip_n_scatter5_t4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:832,1
    - Dst: bn_flip_n_scatter5_t4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:833,1
    - Dst: bn_mul_mont_vis3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:836,1
    - Dst: bn_flip_n_scatter5_t4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:837,1
    - Dst: bn_mul_mont_vis3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:843,1
    - Dst: bn_flip_n_scatter5_t4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:844,1
    - Dst: alloca
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:848,1
    - Dst: bn_flip_t4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:850,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:854,1
    - Dst: bn_gather5_t4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:855,1
    - Dst: bn_get_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:865,1
    - Dst: bn_mul_mont_t4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:876,1
    - Dst: bn_mul_mont_t4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:877,1
    - Dst: bn_mul_mont_t4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:878,1
    - Dst: bn_mul_mont_t4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:879,1
    - Dst: bn_mul_mont_t4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:880,1
    - Dst: bn_mul_mont_gather5_t4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:881,1
    - Dst: bn_flip_t4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:885,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:889,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:890,1
    - Dst: bn_scatter5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:936,1
    - Dst: bn_scatter5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:937,1
    - Dst: bn_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:938,1
    - Dst: bn_scatter5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:939,1
    - Dst: bn_mul_mont_gather5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:944,1
    - Dst: bn_scatter5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:945,1
    - Dst: bn_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:950,1
    - Dst: bn_scatter5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:951,1
    - Dst: bn_mul_mont_gather5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:955,1
    - Dst: bn_scatter5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:956,1
    - Dst: bn_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:958,1
    - Dst: bn_scatter5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:959,1
    - Dst: bn_mul_mont_gather5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:963,1
    - Dst: bn_scatter5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:964,1
    - Dst: bn_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:965,1
    - Dst: bn_scatter5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:966,1
    - Dst: bn_mul_mont_gather5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:969,1
    - Dst: bn_scatter5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:970,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:975,1
    - Dst: bn_gather5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:976,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:985,1
    - Dst: bn_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:987,1
    - Dst: bn_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:988,1
    - Dst: bn_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:989,1
    - Dst: bn_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:990,1
    - Dst: bn_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:991,1
    - Dst: bn_mul_mont_gather5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:992,1
    - Dst: bn_get_bits5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:996,1
    - Dst: bn_power5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:998,1
    - Dst: bn_from_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1002,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1004,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1006,1
    - Dst: MOD_EXP_CTIME_COPY_TO_PREBUF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1013,1
    - Dst: MOD_EXP_CTIME_COPY_TO_PREBUF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1015,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1025,1
    - Dst: MOD_EXP_CTIME_COPY_TO_PREBUF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1027,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1032,1
    - Dst: MOD_EXP_CTIME_COPY_TO_PREBUF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1034,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1042,1
    - Dst: MOD_EXP_CTIME_COPY_FROM_PREBUF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1043,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1056,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1058,1
    - Dst: MOD_EXP_CTIME_COPY_FROM_PREBUF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1064,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1069,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1080,1
    - Dst: BN_from_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1084,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1089,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1091,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1092,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1094,1
    CyclomaticComplexity: 110
    EdgeCount: 110
    ICount: 279
    argCount: 6
    argNames:
    - rr
    - a
    - p
    - m
    - ctx
    - in_mont
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    constantsTouched: []
    func_position:
      end: 1096
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 1096
    functionName: BN_mod_exp_mont_consttime
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c
    functionUses: 1
    functionsReached:
    - BN_MONT_CTX_new
    - bn_mul_mont_t4
    - MOD_EXP_CTIME_ALIGN
    - RSAZ_512_mod_exp
    - bn_mul_mont_vis3
    - BN_zero
    - BN_to_montgomery
    - BN_ucmp
    - BN_MONT_CTX_set
    - bn_get_bits5
    - BN_from_montgomery
    - BN_value_one
    - MOD_EXP_CTIME_COPY_TO_PREBUF
    - bn_flip_t4
    - BN_CTX_end
    - BN_CTX_start
    - bn_correct_top
    - alloca
    - bn_get_bits
    - BN_is_one
    - bn_wexpand
    - MOD_EXP_CTIME_COPY_FROM_PREBUF
    - rsaz_avx2_eligible
    - BN_mod_mul_montgomery
    - BN_is_odd
    - bn_scatter5
    - bn_from_montgomery
    - BN_mod
    - RSAZ_1024_mod_exp_avx2
    - BN_MONT_CTX_free
    - BNerr
    - memset
    - bn_gather5_t4
    - bn_mul_mont_gather5_t4
    - BN_copy
    - bn_flip_n_scatter5_t4
    - OPENSSL_free
    - bn_mul_mont_gather5
    - bn_mul_mont
    - bn_gather5
    - BN_is_bit_set
    - BN_window_bits_for_ctime_exponent_size
    - bn_check_top
    - bn_power5
    - BN_num_bits
    - BN_one
    - OPENSSL_cleanse
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM
      *p,\n                              const BIGNUM *m, BN_CTX *ctx,\n                              BN_MONT_CTX
      *in_mont)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1124,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1126,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1130,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1131,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1133,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1134,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1140,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1143,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1145,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1147,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1152,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1157,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1158,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1159,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1160,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1167,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1169,1
    - Dst: BN_TO_MONTGOMERY_WORD
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1184,1
    - Dst: BN_MOD_MUL_WORD
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1188,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1195,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1200,1
    - Dst: BN_TO_MONTGOMERY_WORD
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1204,1
    - Dst: BN_MOD_MUL_WORD
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1208,1
    - Dst: BN_TO_MONTGOMERY_WORD
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1220,1
    - Dst: BN_MOD_MUL_WORD
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1224,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1230,1
    - Dst: BN_from_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1233,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1239,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1240,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1241,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 114
    argCount: 6
    argNames:
    - rr
    - a
    - p
    - m
    - ctx
    - in_mont
    argTypes:
    - BIGNUM*
    - BN_ULONG
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    constantsTouched: []
    func_position:
      end: 1243
      start: 1098
    functionDepth: 2
    functionLinenumber: 1098
    functionLinenumberEnd: 1243
    functionName: BN_mod_exp_mont_word
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c
    functionUses: 1
    functionsReached:
    - BN_MONT_CTX_new
    - BN_MOD_MUL_WORD
    - BN_zero
    - BN_CTX_get
    - BN_MONT_CTX_set
    - BN_from_montgomery
    - BN_CTX_end
    - BN_CTX_start
    - BN_TO_MONTGOMERY_WORD
    - BN_is_one
    - BN_mod_mul_montgomery
    - BN_is_odd
    - BN_MONT_CTX_free
    - BNerr
    - BN_get_flags
    - BN_is_bit_set
    - bn_check_top
    - BN_num_bits
    - BN_one
    linkageType: ''
    returnType: int
    signature: "BN_mod_exp_mont_word(BIGNUM *rr, BN_ULONG a, const BIGNUM *p,\n                         const
      BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *in_mont)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1255,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1257,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1261,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1264,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1266,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1268,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1273,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1274,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1275,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1279,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1281,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1282,1
    - Dst: BN_window_bits_for_exponent_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1287,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1289,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1293,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1294,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1306,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1310,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1312,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1330,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1342,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1347,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1359,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c:1360,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 94
    argCount: 5
    argNames:
    - r
    - a
    - p
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1362
      start: 1246
    functionDepth: 2
    functionLinenumber: 1246
    functionLinenumberEnd: 1362
    functionName: BN_mod_exp_simple
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c
    functionUses: 1
    functionsReached:
    - BN_is_bit_set
    - BN_mod_mul
    - BN_nnmod
    - BN_is_zero
    - bn_check_top
    - BNerr
    - BN_CTX_end
    - BN_CTX_start
    - BN_num_bits
    - BN_zero
    - BN_one
    - BN_get_flags
    - BN_CTX_get
    - BN_is_one
    - BN_window_bits_for_exponent_size
    linkageType: ''
    returnType: int
    signature: "BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,\n                      const
      BIGNUM *m, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB_set_old
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_depr.c:32,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_depr.c:35,1
    - Dst: BN_generate_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_depr.c:39,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_depr.c:45,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 6
    argNames:
    - ret
    - bits
    - safe
    - add
    - rem
    - cb_arg
    argTypes:
    - BIGNUM*
    - int
    - int
    - BIGNUM*
    - BIGNUM*
    - void*
    constantsTouched: []
    func_position:
      end: 47
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 47
    functionName: BN_generate_prime
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_depr.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_GENCB_set_old
    - BN_free
    - BN_generate_prime_ex
    linkageType: ''
    returnType: BIGNUM
    signature: "*BN_generate_prime(BIGNUM *ret, int bits, int safe,\n                          const
      BIGNUM *add, const BIGNUM *rem,\n                          void (*callback)
      (int, int, void *), void *cb_arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB_set_old
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_depr.c:54,1
    - Dst: BN_is_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_depr.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - a
    - checks
    - ctx_passed
    - cb_arg
    argTypes:
    - BIGNUM*
    - int
    - BN_CTX*
    - void*
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: BN_is_prime
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_depr.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_set_old
    - BN_is_prime_ex
    linkageType: ''
    returnType: int
    signature: "BN_is_prime(const BIGNUM *a, int checks,\n                void (*callback)
      (int, int, void *), BN_CTX *ctx_passed,\n                void *cb_arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB_set_old
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_depr.c:64,1
    - Dst: BN_is_prime_fasttest_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_depr.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - a
    - checks
    - ctx_passed
    - cb_arg
    - do_trial_division
    argTypes:
    - BIGNUM*
    - int
    - BN_CTX*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: BN_is_prime_fasttest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_depr.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_set_old
    - BN_is_prime_fasttest_ex
    linkageType: ''
    returnType: int
    signature: "BN_is_prime_fasttest(const BIGNUM *a, int checks,\n                         void
      (*callback) (int, int, void *),\n                         BN_CTX *ctx_passed,
      void *cb_arg,\n                         int do_trial_division)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:26,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:27,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:28,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:30,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:36,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 52
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 52
    functionName: BN_bn2hex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c
    functionUses: 1
    functionsReached:
    - BN_is_zero
    - OPENSSL_malloc
    - BNerr
    - OPENSSL_strdup
    linkageType: ''
    returnType: char
    signature: '*BN_bn2hex(const BIGNUM *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:70,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:73,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:74,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:76,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:79,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:85,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:89,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:92,1
    - Dst: BN_div_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:95,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:106,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:111,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:118,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:119,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:122,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 124
      start: 55
    functionDepth: 4
    functionLinenumber: 55
    functionLinenumberEnd: 124
    functionName: BN_bn2dec
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c
    functionUses: 1
    functionsReached:
    - BN_dup
    - BIO_snprintf
    - BN_free
    - BN_is_zero
    - BNerr
    - BN_is_negative
    - BN_num_bits
    - BN_div_word
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: char
    signature: '*BN_bn2dec(const BIGNUM *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isxdigit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:141,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:153,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:157,1
    - Dst: bn_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:161,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:172,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:185,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:188,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:195,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 2
    argNames:
    - bn
    - a
    argTypes:
    - BIGNUM**
    - char*
    constantsTouched: []
    func_position:
      end: 197
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 197
    functionName: BN_hex2bn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c
    functionUses: 2
    functionsReached:
    - BN_new
    - OPENSSL_hexchar2int
    - BN_free
    - bn_check_top
    - isxdigit
    - bn_expand
    - BN_zero
    - bn_correct_top
    linkageType: ''
    returnType: int
    signature: BN_hex2bn(BIGNUM **bn, const char *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:213,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:228,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:232,1
    - Dst: bn_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:236,1
    - Dst: BN_mul_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:248,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:249,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:256,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:258,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:265,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 2
    argNames:
    - bn
    - a
    argTypes:
    - BIGNUM**
    - char*
    constantsTouched: []
    func_position:
      end: 267
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 267
    functionName: BN_dec2bn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_mul_word
    - BN_add_word
    - BN_free
    - isdigit
    - bn_check_top
    - bn_expand
    - BN_zero
    - bn_correct_top
    linkageType: ''
    returnType: int
    signature: BN_dec2bn(BIGNUM **bn, const char *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:277,1
    - Dst: BN_dec2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:280,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - bn
    - a
    argTypes:
    - BIGNUM**
    - char*
    constantsTouched: []
    func_position:
      end: 287
      start: 269
    functionDepth: 4
    functionLinenumber: 269
    functionLinenumberEnd: 287
    functionName: BN_asc2bn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c
    functionUses: 0
    functionsReached:
    - BN_hex2bn
    - BN_dec2bn
    linkageType: ''
    returnType: int
    signature: BN_asc2bn(BIGNUM **bn, const char *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:295,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:295,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:297,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:298,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 301
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 301
    functionName: BN_print_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c
    functionUses: 2
    functionsReached:
    - BN_print
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: BN_print_fp(FILE *fp, const BIGNUM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:309,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:311,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:311,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:318,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 327
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 327
    functionName: BN_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c
    functionUses: 1
    functionsReached:
    - BN_is_zero
    - BIO_write
    linkageType: ''
    returnType: int
    signature: BN_print(BIO *bp, const BIGNUM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:337,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 345
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 345
    functionName: BN_options
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    linkageType: ''
    returnType: char
    signature: '*BN_options(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:98,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:100,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:104,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:106,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:109,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:110,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 115
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 115
    functionName: ctxdbg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: ctxdbg(BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:138,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:139,1
    - Dst: BN_POOL_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:143,1
    - Dst: BN_STACK_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 146
    functionName: BN_CTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c
    functionUses: 4
    functionsReached:
    - BN_STACK_init
    - BN_POOL_init
    - BNerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: BN_CTX
    signature: '*BN_CTX_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: BN_CTX_secure_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c
    functionUses: 0
    functionsReached:
    - BN_CTX_new
    linkageType: ''
    returnType: BN_CTX
    signature: '*BN_CTX_secure_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:164,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:166,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:170,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:173,1
    - Dst: BN_STACK_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:176,1
    - Dst: BN_POOL_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:177,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 179
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 179
    functionName: BN_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c
    functionUses: 5
    functionsReached:
    - BN_STACK_finish
    - fprintf
    - OPENSSL_free
    - BN_POOL_finish
    linkageType: ''
    returnType: void
    signature: BN_CTX_free(BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CTXDBG_ENTRY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:183,1
    - Dst: BN_STACK_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:188,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:189,1
    - Dst: CTXDBG_EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 193
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 193
    functionName: BN_CTX_start
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c
    functionUses: 13
    functionsReached:
    - CTXDBG_EXIT
    - CTXDBG_ENTRY
    - BNerr
    - BN_STACK_push
    linkageType: ''
    returnType: void
    signature: BN_CTX_start(BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CTXDBG_ENTRY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:197,1
    - Dst: BN_POOL_release
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:204,1
    - Dst: CTXDBG_EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 210
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 210
    functionName: BN_CTX_end
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c
    functionUses: 13
    functionsReached:
    - CTXDBG_EXIT
    - CTXDBG_ENTRY
    - BN_POOL_release
    linkageType: ''
    returnType: void
    signature: BN_CTX_end(BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CTXDBG_ENTRY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:216,1
    - Dst: BN_POOL_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:219,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:225,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:229,1
    - Dst: CTXDBG_RET
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 233
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 233
    functionName: BN_CTX_get
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c
    functionUses: 12
    functionsReached:
    - BN_POOL_get
    - BNerr
    - CTXDBG_ENTRY
    - BN_zero
    - CTXDBG_RET
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_CTX_get(BN_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - st
    argTypes:
    - BN_STACK*
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: BN_STACK_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BN_STACK_init(BN_STACK *st)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - st
    argTypes:
    - BN_STACK*
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: BN_STACK_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: BN_STACK_finish(BN_STACK *st)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:262,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - st
    - idx
    argTypes:
    - BN_STACK*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 269
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 269
    functionName: BN_STACK_push
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - memcpy
    linkageType: ''
    returnType: int
    signature: BN_STACK_push(BN_STACK *st, unsigned int idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - BN_STACK*
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: BN_STACK_pop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: BN_STACK_pop(BN_STACK *st)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - BN_POOL*
    constantsTouched: []
    func_position:
      end: 284
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 284
    functionName: BN_POOL_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BN_POOL_init(BN_POOL *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:294,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:296,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - BN_POOL*
    constantsTouched: []
    func_position:
      end: 299
      start: 286
    functionDepth: 3
    functionLinenumber: 286
    functionLinenumberEnd: 299
    functionName: BN_POOL_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: BN_POOL_finish(BN_POOL *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:309,1
    - Dst: bn_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:313,1
    - Dst: BN_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:315,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - p
    - flag
    argTypes:
    - BN_POOL*
    - int
    constantsTouched: []
    func_position:
      end: 338
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 338
    functionName: BN_POOL_get
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c
    functionUses: 1
    functionsReached:
    - bn_init
    - BN_set_flags
    - OPENSSL_malloc
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_POOL_get(BN_POOL *p, int flag)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c:346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - p
    - num
    argTypes:
    - BN_POOL*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 353
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 353
    functionName: BN_POOL_release
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c
    functionUses: 1
    functionsReached:
    - bn_check_top
    linkageType: ''
    returnType: void
    signature: BN_POOL_release(BN_POOL *p, unsigned int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 54
    argCount: 4
    argNames:
    - r1
    - r0
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 134
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 134
    functionName: bn_GF2m_mul_1x1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "bn_GF2m_mul_1x1(BN_ULONG *r1, BN_ULONG *r0, const BN_ULONG a,\n                            const
      BN_ULONG b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 82
    argCount: 4
    argNames:
    - r1
    - r0
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 231
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 231
    functionName: bn_GF2m_mul_1x1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "bn_GF2m_mul_1x1(BN_ULONG *r1, BN_ULONG *r0, const BN_ULONG a,\n                            const
      BN_ULONG b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_GF2m_mul_1x1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:244,1
    - Dst: bn_GF2m_mul_1x1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:245,1
    - Dst: bn_GF2m_mul_1x1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - r
    - a1
    - a0
    - b1
    - b0
    argTypes:
    - BN_ULONG*
    - BN_ULONG
    - BN_ULONG
    - BN_ULONG
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 250
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 250
    functionName: bn_GF2m_mul_2x2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - bn_GF2m_mul_1x1
    linkageType: ''
    returnType: void
    signature: "bn_GF2m_mul_2x2(BN_ULONG *r, const BN_ULONG a1, const BN_ULONG a0,\n
      \                           const BN_ULONG b1, const BN_ULONG b0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:265,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:266,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:276,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:287,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 290
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 290
    functionName: BN_GF2m_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - bn_correct_top
    - bn_wexpand
    - bn_check_top
    linkageType: ''
    returnType: int
    signature: BN_GF2m_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:306,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:310,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:319,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:388,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 3
    argNames:
    - r
    - a
    - p
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int[]
    constantsTouched: []
    func_position:
      end: 390
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 390
    functionName: BN_GF2m_mod_arr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - bn_correct_top
    - bn_wexpand
    - bn_check_top
    - BN_zero
    linkageType: ''
    returnType: int
    signature: BN_GF2m_mod_arr(BIGNUM *r, const BIGNUM *a, const int p[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:402,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:403,1
    - Dst: BN_GF2m_poly2arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:404,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:404,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:405,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:406,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:409,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - r
    - a
    - p
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 412
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 412
    functionName: BN_GF2m_mod
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_poly2arr
    - bn_check_top
    - BNerr
    - BN_GF2m_mod_arr
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: BN_GF2m_mod(BIGNUM *r, const BIGNUM *a, const BIGNUM *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:425,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:426,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:429,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:432,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:433,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:437,1
    - Dst: bn_GF2m_mul_2x2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:450,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:456,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:457,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:459,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:462,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 5
    argNames:
    - r
    - a
    - b
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - int[]
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 464
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 464
    functionName: BN_GF2m_mod_mul_arr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - BN_CTX_end
    - BN_CTX_start
    - bn_correct_top
    - BN_GF2m_mod_arr
    - BN_CTX_get
    - bn_GF2m_mul_2x2
    - BN_GF2m_mod_sqr_arr
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: "BN_GF2m_mod_mul_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,\n
      \                       const int p[], BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:479,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:480,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:481,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:482,1
    - Dst: BN_GF2m_poly2arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:484,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:486,1
    - Dst: BN_GF2m_mod_mul_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:489,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:490,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:492,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - r
    - a
    - b
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 494
      start: 473
    functionDepth: 3
    functionLinenumber: 473
    functionLinenumberEnd: 494
    functionName: BN_GF2m_mod_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_poly2arr
    - bn_check_top
    - BNerr
    - BN_GF2m_mod_mul_arr
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "BN_GF2m_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,\n                    const
      BIGNUM *p, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:503,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:504,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:505,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:507,1
    - Dst: SQR1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:511,1
    - Dst: SQR0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:512,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:516,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:517,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:519,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:522,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - r
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int[]
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 524
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 524
    functionName: BN_GF2m_mod_sqr_arr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
    functionUses: 1
    functionsReached:
    - SQR0
    - SQR1
    - bn_check_top
    - BN_CTX_end
    - BN_CTX_start
    - bn_correct_top
    - BN_GF2m_mod_arr
    - BN_CTX_get
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: "BN_GF2m_mod_sqr_arr(BIGNUM *r, const BIGNUM *a, const int p[],\n                        BN_CTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:538,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:539,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:540,1
    - Dst: BN_GF2m_poly2arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:542,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:544,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:547,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:548,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:550,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - r
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 552
      start: 532
    functionDepth: 3
    functionLinenumber: 532
    functionLinenumberEnd: 552
    functionName: BN_GF2m_mod_sqr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_poly2arr
    - bn_check_top
    - BNerr
    - BN_GF2m_mod_sqr_arr
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: BN_GF2m_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX
      *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:565,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:566,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:568,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:570,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:572,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:574,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:576,1
    - Dst: BN_GF2m_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:579,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:581,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:584,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:587,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:591,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:592,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:594,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:596,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:597,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:600,1
    - Dst: BN_abs_is_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:604,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:607,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:607,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:616,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:618,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:629,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:635,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:642,1
    - Dst: BN_num_bits_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:705,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:708,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:712,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:714,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:721,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:722,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:724,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 148
    argCount: 4
    argNames:
    - r
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 726
      start: 560
    functionDepth: 3
    functionLinenumber: 560
    functionLinenumberEnd: 726
    functionName: BN_GF2m_mod_inv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_is_odd
    - BN_GF2m_mod
    - BN_is_zero
    - BN_num_bits_word
    - bn_check_top
    - BN_CTX_end
    - BN_CTX_start
    - BN_one
    - BN_copy
    - BN_num_bits
    - bn_correct_top
    - BN_CTX_get
    - BN_abs_is_word
    - BN_rshift1
    - bn_wexpand
    - BN_GF2m_add
    linkageType: ''
    returnType: int
    signature: BN_GF2m_mod_inv(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX
      *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:740,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:741,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:742,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:744,1
    - Dst: BN_GF2m_mod_inv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:747,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:748,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:751,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - r
    - xx
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int[]
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 753
      start: 734
    functionDepth: 4
    functionLinenumber: 734
    functionLinenumberEnd: 753
    functionName: BN_GF2m_mod_inv_arr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_arr2poly
    - bn_check_top
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_get
    - BN_GF2m_mod_inv
    linkageType: ''
    returnType: int
    signature: "BN_GF2m_mod_inv_arr(BIGNUM *r, const BIGNUM *xx, const int p[],\n
      \                       BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:766,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:767,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:768,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:770,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:771,1
    - Dst: BN_GF2m_mod_inv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:775,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:777,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:779,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:783,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - r
    - y
    - x
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 785
      start: 760
    functionDepth: 4
    functionLinenumber: 760
    functionLinenumberEnd: 785
    functionName: BN_GF2m_mod_div
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_get
    - BN_GF2m_mod_mul
    - BN_GF2m_mod_inv
    linkageType: ''
    returnType: int
    signature: "BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *y, const BIGNUM *x,\n                    const
      BIGNUM *p, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:799,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:800,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:801,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:803,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:805,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:806,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:807,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:808,1
    - Dst: BN_GF2m_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:813,1
    - Dst: BN_GF2m_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:815,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:817,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:820,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:821,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:823,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:824,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:826,1
    - Dst: BN_GF2m_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:831,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:832,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:834,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:837,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:839,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:840,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:842,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:844,1
    - Dst: BN_abs_is_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:845,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:848,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:850,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:853,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:855,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:856,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:858,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:860,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:864,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:866,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:870,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 85
    argCount: 5
    argNames:
    - r
    - y
    - x
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 872
      start: 793
    functionDepth: 3
    functionLinenumber: 793
    functionLinenumberEnd: 872
    functionName: BN_GF2m_mod_div
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_is_odd
    - BN_GF2m_mod
    - bn_check_top
    - BN_GF2m_cmp
    - BN_CTX_end
    - BN_CTX_start
    - BN_copy
    - BN_CTX_get
    - BN_abs_is_word
    - BN_rshift1
    - BN_GF2m_add
    linkageType: ''
    returnType: int
    signature: "BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *y, const BIGNUM *x,\n                    const
      BIGNUM *p, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:887,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:888,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:890,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:891,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:893,1
    - Dst: BN_GF2m_mod_div
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:896,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:897,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:900,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - r
    - yy
    - xx
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - int[]
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 902
      start: 881
    functionDepth: 5
    functionLinenumber: 881
    functionLinenumberEnd: 902
    functionName: BN_GF2m_mod_div_arr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_arr2poly
    - bn_check_top
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_get
    - BN_GF2m_mod_div
    linkageType: ''
    returnType: int
    signature: "BN_GF2m_mod_div_arr(BIGNUM *r, const BIGNUM *yy, const BIGNUM *xx,\n
      \                       const int p[], BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:915,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:916,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:918,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:919,1
    - Dst: BN_abs_is_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:921,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:922,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:924,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:925,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:928,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:931,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:933,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:935,1
    - Dst: BN_GF2m_mod_mul_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:936,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:940,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:942,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:945,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 5
    argNames:
    - r
    - a
    - b
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - int[]
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 947
      start: 909
    functionDepth: 3
    functionLinenumber: 909
    functionLinenumberEnd: 947
    functionName: BN_GF2m_mod_exp_arr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_is_bit_set
    - BN_GF2m_mod_mul_arr
    - BN_is_zero
    - bn_check_top
    - BN_CTX_end
    - BN_CTX_start
    - BN_one
    - BN_copy
    - BN_GF2m_mod_arr
    - BN_num_bits
    - BN_CTX_get
    - BN_abs_is_word
    - BN_GF2m_mod_sqr_arr
    linkageType: ''
    returnType: int
    signature: "BN_GF2m_mod_exp_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,\n
      \                       const int p[], BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:961,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:962,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:963,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:964,1
    - Dst: BN_GF2m_poly2arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:966,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:968,1
    - Dst: BN_GF2m_mod_exp_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:971,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:972,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:974,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - r
    - a
    - b
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 976
      start: 955
    functionDepth: 4
    functionLinenumber: 955
    functionLinenumberEnd: 976
    functionName: BN_GF2m_mod_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_mod_exp_arr
    - BN_GF2m_poly2arr
    - bn_check_top
    - BNerr
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,\n                    const
      BIGNUM *p, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:988,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:992,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:996,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:997,1
    - Dst: BN_set_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1000,1
    - Dst: BN_GF2m_mod_exp_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1002,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1003,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1006,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - r
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int[]
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1008
      start: 982
    functionDepth: 4
    functionLinenumber: 982
    functionLinenumberEnd: 1008
    functionName: BN_GF2m_mod_sqrt_arr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_mod_exp_arr
    - bn_check_top
    - BN_CTX_end
    - BN_CTX_start
    - BN_zero
    - BN_CTX_get
    - BN_set_bit
    linkageType: ''
    returnType: int
    signature: "BN_GF2m_mod_sqrt_arr(BIGNUM *r, const BIGNUM *a, const int p[],\n
      \                        BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1021,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1022,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1023,1
    - Dst: BN_GF2m_poly2arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1025,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1027,1
    - Dst: BN_GF2m_mod_sqrt_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1030,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1031,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1033,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - r
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1035
      start: 1016
    functionDepth: 5
    functionLinenumber: 1016
    functionLinenumberEnd: 1035
    functionName: BN_GF2m_mod_sqrt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_poly2arr
    - bn_check_top
    - BNerr
    - OPENSSL_free
    - OPENSSL_malloc
    - BN_GF2m_mod_sqrt_arr
    linkageType: ''
    returnType: int
    signature: BN_GF2m_mod_sqrt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX
      *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1047,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1051,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1055,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1056,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1057,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1058,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1062,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1065,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1066,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1073,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1076,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1078,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1080,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1086,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1087,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1088,1
    - Dst: BN_rand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1092,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1094,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1096,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1097,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1100,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1102,1
    - Dst: BN_GF2m_mod_mul_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1104,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1106,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1108,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1112,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1113,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1114,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1119,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1121,1
    - Dst: BN_GF2m_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1123,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1124,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1128,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1130,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1135,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 100
    argCount: 4
    argNames:
    - r
    - a_
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int[]
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1137
      start: 1041
    functionDepth: 6
    functionLinenumber: 1041
    functionLinenumberEnd: 1137
    functionName: BN_GF2m_mod_solve_quad_arr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_mod_mul_arr
    - BN_is_zero
    - bn_check_top
    - BN_rand
    - BNerr
    - BN_GF2m_cmp
    - BN_CTX_start
    - BN_CTX_end
    - BN_GF2m_mod_arr
    - BN_zero
    - BN_copy
    - BN_CTX_get
    - BN_GF2m_mod_sqr_arr
    - BN_GF2m_add
    linkageType: ''
    returnType: int
    signature: "BN_GF2m_mod_solve_quad_arr(BIGNUM *r, const BIGNUM *a_, const int
      p[],\n                               BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1151,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1152,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1153,1
    - Dst: BN_GF2m_poly2arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1155,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1157,1
    - Dst: BN_GF2m_mod_solve_quad_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1160,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1161,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - r
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1165
      start: 1145
    functionDepth: 7
    functionLinenumber: 1145
    functionLinenumberEnd: 1165
    functionName: BN_GF2m_mod_solve_quad
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_poly2arr
    - bn_check_top
    - BN_GF2m_mod_solve_quad_arr
    - BNerr
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "BN_GF2m_mod_solve_quad(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,\n
      \                          BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1179,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - a
    - p
    - max
    argTypes:
    - BIGNUM*
    - int[]
    - int
    constantsTouched: []
    func_position:
      end: 1203
      start: 1174
    functionDepth: 1
    functionLinenumber: 1174
    functionLinenumberEnd: 1203
    functionName: BN_GF2m_poly2arr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
    functionUses: 6
    functionsReached:
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: BN_GF2m_poly2arr(const BIGNUM *a, int p[], int max)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1213,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1214,1
    - Dst: BN_set_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1216,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c:1219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - p
    - a
    argTypes:
    - int[]
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 1222
      start: 1209
    functionDepth: 2
    functionLinenumber: 1209
    functionLinenumberEnd: 1222
    functionName: BN_GF2m_arr2poly
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
    functionUses: 2
    functionsReached:
    - BN_set_bit
    - bn_check_top
    - BN_zero
    linkageType: ''
    returnType: int
    signature: BN_GF2m_arr2poly(const int p[], BIGNUM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:15,1
    - Dst: bn_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:16,1
    - Dst: bn_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - recp
    argTypes:
    - BN_RECP_CTX*
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: BN_RECP_CTX_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c
    functionUses: 1
    functionsReached:
    - bn_init
    - memset
    linkageType: ''
    returnType: void
    signature: BN_RECP_CTX_init(BN_RECP_CTX *recp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:24,1
    - Dst: bn_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:27,1
    - Dst: bn_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: BN_RECP_CTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c
    functionUses: 0
    functionsReached:
    - bn_init
    - OPENSSL_zalloc
    linkageType: ''
    returnType: BN_RECP_CTX
    signature: '*BN_RECP_CTX_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:38,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:39,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - recp
    argTypes:
    - BN_RECP_CTX*
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: BN_RECP_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - BN_free
    linkageType: ''
    returnType: void
    signature: BN_RECP_CTX_free(BN_RECP_CTX *recp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:46,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:48,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - recp
    - d
    - ctx
    argTypes:
    - BN_RECP_CTX*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: BN_RECP_CTX_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c
    functionUses: 1
    functionsReached:
    - BN_num_bits
    - BN_copy
    - BN_zero
    linkageType: ''
    returnType: int
    signature: BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *d, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:61,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:62,1
    - Dst: BN_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:66,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:69,1
    - Dst: BN_div_recp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:76,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:78,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:79,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - r
    - x
    - y
    - recp
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_RECP_CTX*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 81
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 81
    functionName: BN_mod_mul_reciprocal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c
    functionUses: 1
    functionsReached:
    - BN_mul
    - bn_check_top
    - BN_div_recp
    - BN_CTX_end
    - BN_CTX_start
    - BN_sqr
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "BN_mod_mul_reciprocal(BIGNUM *r, const BIGNUM *x, const BIGNUM *y,\n
      \                         BN_RECP_CTX *recp, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:89,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:90,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:91,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:95,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:99,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:103,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:104,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:105,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:106,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:109,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:119,1
    - Dst: BN_reciprocal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:126,1
    - Dst: BN_rshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:137,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:139,1
    - Dst: BN_rshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:141,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:145,1
    - Dst: BN_usub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:147,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:152,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:154,1
    - Dst: BN_usub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:157,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:159,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:163,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:167,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:168,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:169,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 71
    argCount: 5
    argNames:
    - dv
    - rem
    - m
    - recp
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_RECP_CTX*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 171
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 171
    functionName: BN_div_recp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c
    functionUses: 1
    functionsReached:
    - BN_rshift
    - BN_add_word
    - BN_usub
    - BN_mul
    - BN_is_zero
    - bn_check_top
    - BNerr
    - BN_CTX_end
    - BN_CTX_start
    - BN_reciprocal
    - BN_num_bits
    - BN_zero
    - BN_copy
    - BN_CTX_get
    - BN_ucmp
    linkageType: ''
    returnType: int
    signature: "BN_div_recp(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m,\n                BN_RECP_CTX
      *recp, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:184,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:185,1
    - Dst: BN_set_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:188,1
    - Dst: BN_div
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:191,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:196,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c:197,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - r
    - m
    - len
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 199
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 199
    functionName: BN_reciprocal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c
    functionUses: 1
    functionsReached:
    - bn_check_top
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_get
    - BN_set_bit
    - BN_div
    linkageType: ''
    returnType: int
    signature: BN_reciprocal(BIGNUM *r, const BIGNUM *m, int len, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:22,1
    - Dst: mul_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:28,1
    - Dst: mul_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:29,1
    - Dst: mul_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:30,1
    - Dst: mul_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:31,1
    - Dst: mul_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - rp
    - ap
    - num
    - w
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 45
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 45
    functionName: bn_mul_add_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - assert
    - mul_add
    linkageType: ''
    returnType: BN_ULONG
    signature: "bn_mul_add_words(BN_ULONG *rp, const BN_ULONG *ap, int num,\n                          BN_ULONG
      w)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:51,1
    - Dst: mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:57,1
    - Dst: mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:58,1
    - Dst: mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:59,1
    - Dst: mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:60,1
    - Dst: mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - rp
    - ap
    - num
    - w
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 73
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 73
    functionName: bn_mul_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
    functionUses: 2
    functionsReached:
    - assert
    - mul
    linkageType: ''
    returnType: BN_ULONG
    signature: bn_mul_words(BN_ULONG *rp, const BN_ULONG *ap, int num, BN_ULONG w)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:77,1
    - Dst: sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:83,1
    - Dst: sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:84,1
    - Dst: sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:85,1
    - Dst: sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:86,1
    - Dst: sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - r
    - a
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    constantsTouched: []
    func_position:
      end: 98
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 98
    functionName: bn_sqr_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - assert
    - sqr
    linkageType: ''
    returnType: void
    signature: bn_sqr_words(BN_ULONG *r, const BN_ULONG *a, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:109,1
    - Dst: LBITS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:113,1
    - Dst: HBITS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:114,1
    - Dst: mul_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:118,1
    - Dst: mul_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:119,1
    - Dst: mul_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:120,1
    - Dst: mul_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:121,1
    - Dst: mul_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - rp
    - ap
    - num
    - w
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 134
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 134
    functionName: bn_mul_add_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - HBITS
    - assert
    - mul_add
    - LBITS
    linkageType: ''
    returnType: BN_ULONG
    signature: "bn_mul_add_words(BN_ULONG *rp, const BN_ULONG *ap, int num,\n                          BN_ULONG
      w)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:141,1
    - Dst: LBITS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:145,1
    - Dst: HBITS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:146,1
    - Dst: mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:150,1
    - Dst: mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:151,1
    - Dst: mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:152,1
    - Dst: mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:153,1
    - Dst: mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - rp
    - ap
    - num
    - w
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 166
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 166
    functionName: bn_mul_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
    functionUses: 2
    functionsReached:
    - HBITS
    - assert
    - mul
    - LBITS
    linkageType: ''
    returnType: BN_ULONG
    signature: bn_mul_words(BN_ULONG *rp, const BN_ULONG *ap, int num, BN_ULONG w)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:170,1
    - Dst: sqr64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:176,1
    - Dst: sqr64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:177,1
    - Dst: sqr64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:178,1
    - Dst: sqr64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:179,1
    - Dst: sqr64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - r
    - a
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    constantsTouched: []
    func_position:
      end: 191
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 191
    functionName: bn_sqr_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - assert
    - sqr64
    linkageType: ''
    returnType: void
    signature: bn_sqr_words(BN_ULONG *r, const BN_ULONG *a, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - h
    - l
    - d
    argTypes:
    - BN_ULONG
    - BN_ULONG
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: bn_div_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: bn_div_words(BN_ULONG h, BN_ULONG l, BN_ULONG d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:215,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:216,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 3
    argNames:
    - h
    - l
    - d
    argTypes:
    - BN_ULONG
    - BN_ULONG
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 268
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 268
    functionName: bn_div_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
    functionUses: 2
    functionsReached:
    - BN_num_bits_word
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: bn_div_words(BN_ULONG h, BN_ULONG l, BN_ULONG d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 4
    argNames:
    - r
    - a
    - b
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    constantsTouched: []
    func_position:
      end: 311
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 311
    functionName: bn_add_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
    functionUses: 7
    functionsReached:
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: "bn_add_words(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *b,\n
      \                     int n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:318,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 4
    argNames:
    - r
    - a
    - b
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    constantsTouched: []
    func_position:
      end: 368
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 368
    functionName: bn_add_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
    functionUses: 7
    functionsReached:
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: "bn_add_words(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *b,\n
      \                     int n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:377,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 4
    argNames:
    - r
    - a
    - b
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    constantsTouched: []
    func_position:
      end: 421
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 421
    functionName: bn_sub_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
    functionUses: 7
    functionsReached:
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: "bn_sub_words(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *b,\n
      \                     int n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:588,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:591,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:592,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:595,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:596,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:597,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:600,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:601,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:602,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:603,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:606,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:607,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:608,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:609,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:610,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:613,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:614,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:615,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:616,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:617,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:618,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:621,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:622,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:623,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:624,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:625,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:626,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:627,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:630,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:631,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:632,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:633,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:634,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:635,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:636,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:637,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:640,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:641,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:642,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:643,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:644,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:645,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:646,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:649,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:650,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:651,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:652,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:653,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:654,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:657,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:658,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:659,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:660,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:661,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:664,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:665,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:666,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:667,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:670,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:671,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:672,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:675,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:676,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 98
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    constantsTouched: []
    func_position:
      end: 682
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 682
    functionName: bn_mul_comba8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - mul_add_c
    linkageType: ''
    returnType: void
    signature: bn_mul_comba8(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:691,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:694,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:695,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:698,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:699,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:700,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:703,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:704,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:705,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:706,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:709,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:710,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:711,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:714,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:715,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    constantsTouched: []
    func_position:
      end: 721
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 721
    functionName: bn_mul_comba4
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - mul_add_c
    linkageType: ''
    returnType: void
    signature: bn_mul_comba4(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:730,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:733,1
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:736,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:737,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:740,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:741,1
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:744,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:745,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:746,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:749,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:750,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:751,1
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:754,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:755,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:756,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:757,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:760,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:761,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:762,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:763,1
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:766,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:767,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:768,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:769,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:772,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:773,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:774,1
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:777,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:778,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:779,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:782,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:783,1
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:786,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:787,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:790,1
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 70
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    constantsTouched: []
    func_position:
      end: 796
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 796
    functionName: bn_sqr_comba8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - sqr_add_c2
    - sqr_add_c
    linkageType: ''
    returnType: void
    signature: bn_sqr_comba8(BN_ULONG *r, const BN_ULONG *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:805,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:808,1
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:811,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:812,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:815,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:816,1
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:819,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:820,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:823,1
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    constantsTouched: []
    func_position:
      end: 829
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 829
    functionName: bn_sqr_comba4
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - sqr_add_c2
    - sqr_add_c
    linkageType: ''
    returnType: void
    signature: bn_sqr_comba4(BN_ULONG *r, const BN_ULONG *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:860,1
    - Dst: alloca
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:862,1
    - Dst: HBITS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:869,1
    - Dst: LBITS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:870,1
    - Dst: mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:872,1
    - Dst: mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:875,1
    - Dst: HBITS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:886,1
    - Dst: LBITS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:887,1
    - Dst: mul_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:889,1
    - Dst: mul_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:892,1
    - Dst: HBITS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:902,1
    - Dst: LBITS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:903,1
    - Dst: mul_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:904,1
    - Dst: mul_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:906,1
    - Dst: mul_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:911,1
    - Dst: mul_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:913,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:923,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 61
    argCount: 6
    argNames:
    - rp
    - ap
    - bp
    - np
    - n0p
    - num
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    constantsTouched: []
    func_position:
      end: 935
      start: 847
    functionDepth: 2
    functionLinenumber: 847
    functionLinenumberEnd: 935
    functionName: bn_mul_mont
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
    functionUses: 1
    functionsReached:
    - HBITS
    - mul
    - bn_sqr_mont
    - mul_add
    - bn_sub_words
    - alloca
    - LBITS
    linkageType: ''
    returnType: int
    signature: "bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp,\n
      \               const BN_ULONG *np, const BN_ULONG *n0p, int num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - rp
    - ap
    - bp
    - np
    - n0
    - num
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    constantsTouched: []
    func_position:
      end: 946
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 946
    functionName: bn_mul_mont
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp,\n
      \               const BN_ULONG *np, const BN_ULONG *n0, int num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_sqr_normal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    constantsTouched: []
    func_position:
      end: 959
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 959
    functionName: bn_sqr_comba4
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - bn_sqr_normal
    linkageType: ''
    returnType: void
    signature: bn_sqr_comba4(BN_ULONG *r, const BN_ULONG *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_sqr_normal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    constantsTouched: []
    func_position:
      end: 965
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 965
    functionName: bn_sqr_comba8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - bn_sqr_normal
    linkageType: ''
    returnType: void
    signature: bn_sqr_comba8(BN_ULONG *r, const BN_ULONG *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:969,1
    - Dst: bn_mul_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:970,1
    - Dst: bn_mul_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:971,1
    - Dst: bn_mul_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    constantsTouched: []
    func_position:
      end: 973
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 973
    functionName: bn_mul_comba4
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - bn_mul_add_words
    - bn_mul_words
    linkageType: ''
    returnType: void
    signature: bn_mul_comba4(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:977,1
    - Dst: bn_mul_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:978,1
    - Dst: bn_mul_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:979,1
    - Dst: bn_mul_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:980,1
    - Dst: bn_mul_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:981,1
    - Dst: bn_mul_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:982,1
    - Dst: bn_mul_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:983,1
    - Dst: bn_mul_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    constantsTouched: []
    func_position:
      end: 985
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 985
    functionName: bn_mul_comba8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - bn_mul_add_words
    - bn_mul_words
    linkageType: ''
    returnType: void
    signature: bn_mul_comba8(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: alloca
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:997,1
    - Dst: bn_mul_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:1003,1
    - Dst: bn_mul_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:1008,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c:1017,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 6
    argNames:
    - rp
    - ap
    - bp
    - np
    - n0p
    - num
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    constantsTouched: []
    func_position:
      end: 1029
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 1029
    functionName: bn_mul_mont
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
    functionUses: 1
    functionsReached:
    - bn_mul_add_words
    - bn_sub_words
    - alloca
    linkageType: ''
    returnType: int
    signature: "bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp,\n
      \               const BN_ULONG *np, const BN_ULONG *n0p, int num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - rp
    - ap
    - bp
    - np
    - n0
    - num
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    constantsTouched: []
    func_position:
      end: 1035
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1035
    functionName: bn_mul_mont
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp,\n
      \               const BN_ULONG *np, const BN_ULONG *n0, int num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mpi.c:21,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mpi.c:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - a
    - d
    argTypes:
    - BIGNUM*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 40
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 40
    functionName: BN_bn2mpi
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mpi.c
    functionUses: 0
    functionsReached:
    - BN_bn2bin
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: BN_bn2mpi(const BIGNUM *a, unsigned char *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mpi.c:49,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mpi.c:55,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mpi.c:60,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mpi.c:75,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mpi.c:77,1
    - Dst: BN_clear_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mpi.c:82,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mpi.c:82,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mpi.c:84,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - d
    - n
    - ain
    argTypes:
    - unsigned char*
    - int
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 86
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 86
    functionName: BN_mpi2bn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mpi.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_clear_bit
    - BN_free
    - BN_bin2bn
    - bn_check_top
    - BNerr
    - BN_num_bits
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_mpi2bn(const unsigned char *d, int n, BIGNUM *ain)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:29,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:30,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:31,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:32,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:33,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:36,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:39,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:40,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:42,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:48,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:49,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:50,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:51,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:52,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:59,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:61,1
    - Dst: BN_window_bits_for_exponent_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:65,1
    - Dst: BN_window_bits_for_exponent_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:66,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:71,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:72,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:77,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:78,1
    - Dst: BN_to_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:83,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:86,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:91,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:92,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:100,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:101,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:106,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:107,1
    - Dst: BN_to_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:111,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:114,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:119,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:120,1
    - Dst: BN_to_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:134,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:134,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:138,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:143,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:148,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:154,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:160,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:165,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:171,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:178,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:186,1
    - Dst: BN_from_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:192,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:197,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:198,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c:199,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 156
    argCount: 8
    argNames:
    - rr
    - a1
    - p1
    - a2
    - p2
    - m
    - ctx
    - in_mont
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    constantsTouched: []
    func_position:
      end: 201
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 201
    functionName: BN_mod_exp2_mont
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c
    functionUses: 0
    functionsReached:
    - BN_MONT_CTX_new
    - BN_zero
    - BN_to_montgomery
    - BN_CTX_get
    - BN_ucmp
    - BN_MONT_CTX_set
    - BN_from_montgomery
    - BN_value_one
    - BN_is_zero
    - BN_CTX_end
    - BN_CTX_start
    - BN_mod_mul_montgomery
    - BN_mod
    - BN_MONT_CTX_free
    - BNerr
    - BN_window_bits_for_exponent_size
    - BN_is_bit_set
    - bn_check_top
    - BN_one
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: "BN_mod_exp2_mont(BIGNUM *rr, const BIGNUM *a1, const BIGNUM *p1,\n
      \                    const BIGNUM *a2, const BIGNUM *p2, const BIGNUM *m,\n
      \                    BN_CTX *ctx, BN_MONT_CTX *in_mont)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:23,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:32,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:33,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:34,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:39,1
    - Dst: bn_sqr_normal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:45,1
    - Dst: bn_sqr_comba4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:47,1
    - Dst: bn_sqr_normal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:52,1
    - Dst: bn_sqr_comba8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:54,1
    - Dst: bn_sqr_normal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:60,1
    - Dst: BN_num_bits_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:64,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:68,1
    - Dst: bn_sqr_recursive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:70,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:72,1
    - Dst: bn_sqr_normal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:74,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:78,1
    - Dst: bn_sqr_normal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:80,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:93,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:98,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:99,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:100,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 63
    argCount: 3
    argNames:
    - r
    - a
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 102
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 102
    functionName: BN_sqr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c
    functionUses: 4
    functionsReached:
    - bn_sqr_recursive
    - BN_num_bits_word
    - bn_check_top
    - bn_sqr_comba8
    - BN_CTX_end
    - BN_CTX_start
    - bn_sqr_normal
    - BN_copy
    - bn_sqr_comba4
    - BN_CTX_get
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:120,1
    - Dst: bn_mul_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:127,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:131,1
    - Dst: bn_sqr_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:135,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 4
    argNames:
    - r
    - a
    - n
    - tmp
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG*
    constantsTouched: []
    func_position:
      end: 138
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 138
    functionName: bn_sqr_normal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c
    functionUses: 3
    functionsReached:
    - bn_sqr_words
    - bn_mul_add_words
    - bn_add_words
    - bn_mul_words
    linkageType: ''
    returnType: void
    signature: bn_sqr_normal(BN_ULONG *r, const BN_ULONG *a, int n, BN_ULONG *tmp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_sqr_normal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:160,1
    - Dst: bn_sqr_comba4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:162,1
    - Dst: bn_sqr_normal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:167,1
    - Dst: bn_sqr_comba8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:169,1
    - Dst: bn_sqr_normal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:174,1
    - Dst: bn_cmp_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:178,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:181,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:183,1
    - Dst: bn_sqr_recursive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:191,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:193,1
    - Dst: bn_sqr_recursive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:194,1
    - Dst: bn_sqr_recursive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:195,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:203,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:206,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c:214,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 4
    argNames:
    - r
    - a
    - n2
    - t
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG*
    constantsTouched: []
    func_position:
      end: 234
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 234
    functionName: bn_sqr_recursive
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c
    functionUses: 2
    functionsReached:
    - bn_sqr_recursive
    - bn_cmp_words
    - memset
    - bn_sqr_comba8
    - bn_sub_words
    - bn_sqr_normal
    - bn_add_words
    - bn_sqr_comba4
    linkageType: ''
    returnType: void
    signature: bn_sqr_recursive(BN_ULONG *r, const BN_ULONG *a, int n2, BN_ULONG *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB*::cb::cb_1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:89,1
    - Dst: BN_GENCB*::cb::cb_2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - cb
    - a
    - b
    argTypes:
    - BN_GENCB*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 99
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 99
    functionName: BN_GENCB_call
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c
    functionUses: 0
    functionsReached:
    - BN_GENCB*::cb::cb_1
    - BN_GENCB*::cb::cb_2
    linkageType: ''
    returnType: int
    signature: BN_GENCB_call(BN_GENCB *cb, int a, int b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:113,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:117,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:121,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:125,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:128,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:129,1
    - Dst: probable_prime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:135,1
    - Dst: probable_prime_dh_safe
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:139,1
    - Dst: bn_probable_prime_dh
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:142,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:147,1
    - Dst: BN_is_prime_fasttest_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:152,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:162,1
    - Dst: BN_is_prime_fasttest_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:166,1
    - Dst: BN_is_prime_fasttest_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:172,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:178,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:186,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:188,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:189,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:190,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 83
    argCount: 6
    argNames:
    - ret
    - bits
    - safe
    - add
    - rem
    - cb
    argTypes:
    - BIGNUM*
    - int
    - int
    - BIGNUM*
    - BIGNUM*
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 192
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 192
    functionName: BN_generate_prime_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c
    functionUses: 2
    functionsReached:
    - probable_prime_dh_safe
    - bn_check_top
    - bn_probable_prime_dh
    - BNerr
    - BN_CTX_end
    - OPENSSL_zalloc
    - BN_CTX_start
    - OPENSSL_free
    - probable_prime
    - BN_CTX_free
    - BN_CTX_new
    - BN_CTX_get
    - BN_rshift1
    - BN_is_prime_fasttest_ex
    - BN_GENCB_call
    linkageType: ''
    returnType: int
    signature: "BN_generate_prime_ex(BIGNUM *ret, int bits, int safe,\n                         const
      BIGNUM *add, const BIGNUM *rem, BN_GENCB *cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_prime_fasttest_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a
    - checks
    - ctx_passed
    - cb
    argTypes:
    - BIGNUM*
    - int
    - BN_CTX*
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: BN_is_prime_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c
    functionUses: 2
    functionsReached:
    - BN_is_prime_fasttest_ex
    linkageType: ''
    returnType: int
    signature: "BN_is_prime_ex(const BIGNUM *a, int checks, BN_CTX *ctx_passed,\n
      \                  BN_GENCB *cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:210,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:210,1
    - Dst: BN_prime_checks_for_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:214,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:214,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:217,1
    - Dst: BN_is_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:219,1
    - Dst: BN_mod_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:222,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:228,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:234,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:236,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:241,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:243,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:249,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:250,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:251,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:256,1
    - Dst: BN_sub_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:258,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:260,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:267,1
    - Dst: BN_rshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:269,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:273,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:276,1
    - Dst: BN_pseudo_rand_range
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:280,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:282,1
    - Dst: witness
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:286,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:293,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:299,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:301,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:303,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 96
    argCount: 5
    argNames:
    - a
    - checks
    - ctx_passed
    - do_trial_division
    - cb
    argTypes:
    - BIGNUM*
    - int
    - BN_CTX*
    - int
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 306
      start: 200
    functionDepth: 5
    functionLinenumber: 200
    functionLinenumberEnd: 306
    functionName: BN_is_prime_fasttest_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c
    functionUses: 3
    functionsReached:
    - BN_rshift
    - BN_sub_word
    - BN_MONT_CTX_new
    - BN_CTX_get
    - BN_is_word
    - BN_MONT_CTX_set
    - BN_value_one
    - BN_is_zero
    - BN_cmp
    - BN_CTX_end
    - BN_CTX_start
    - BN_prime_checks_for_size
    - BN_CTX_new
    - BN_GENCB_call
    - BN_is_odd
    - BN_pseudo_rand_range
    - BN_MONT_CTX_free
    - BN_copy
    - witness
    - BN_is_bit_set
    - BN_add_word
    - BN_mod_word
    - BN_CTX_free
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: "BN_is_prime_fasttest_ex(const BIGNUM *a, int checks, BN_CTX *ctx_passed,\n
      \                           int do_trial_division, BN_GENCB *cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_rand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:314,1
    - Dst: BN_mod_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:321,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:331,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - rnd
    - bits
    - ctx
    argTypes:
    - BIGNUM*
    - int
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 333
      start: 308
    functionDepth: 6
    functionLinenumber: 308
    functionLinenumberEnd: 333
    functionName: bn_probable_prime_dh_retry
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - BN_mod_word
    - BN_rand
    linkageType: ''
    returnType: int
    signature: bn_probable_prime_dh_retry(BIGNUM *rnd, int bits, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:342,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:344,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:345,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:347,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:350,1
    - Dst: BN_rand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:354,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:357,1
    - Dst: BN_rand_range
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:359,1
    - Dst: BN_mul_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:362,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:363,1
    - Dst: BN_get_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:363,1
    - Dst: BN_mod_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:371,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:380,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:381,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 40
    argCount: 3
    argNames:
    - rnd
    - bits
    - ctx
    argTypes:
    - BIGNUM*
    - int
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 383
      start: 335
    functionDepth: 6
    functionLinenumber: 335
    functionLinenumberEnd: 383
    functionName: bn_probable_prime_dh_coprime
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c
    functionUses: 0
    functionsReached:
    - BN_mul_word
    - BN_is_bit_set
    - BN_add_word
    - BN_mod_word
    - OPENSSL_assert
    - bn_check_top
    - BN_get_word
    - BN_rand
    - BN_CTX_end
    - BN_CTX_start
    - BN_rand_range
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: bn_probable_prime_dh_coprime(BIGNUM *rnd, int bits, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_mod_exp_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:389,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:391,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:393,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:396,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:398,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:401,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:408,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 7
    argNames:
    - w
    - a
    - a1
    - a1_odd
    - k
    - ctx
    - mont
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - int
    - BN_CTX*
    - BN_MONT_CTX*
    constantsTouched: []
    func_position:
      end: 410
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 410
    functionName: witness
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c
    functionUses: 1
    functionsReached:
    - bn_check_top
    - BN_cmp
    - BN_mod_mul
    - BN_is_one
    - BN_mod_exp_mont
    linkageType: ''
    returnType: int
    signature: "witness(BIGNUM *w, const BIGNUM *a, const BIGNUM *a1,\n                   const
      BIGNUM *a1_odd, int k, BN_CTX *ctx,\n                   BN_MONT_CTX *mont)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_rand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:420,1
    - Dst: BN_mod_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:424,1
    - Dst: BN_get_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:441,1
    - Dst: BN_get_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:443,1
    - Dst: BN_get_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:451,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:486,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:488,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:490,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 3
    argNames:
    - rnd
    - bits
    - mods
    argTypes:
    - BIGNUM*
    - int
    - prime_t*
    constantsTouched: []
    func_position:
      end: 492
      start: 412
    functionDepth: 6
    functionLinenumber: 412
    functionLinenumberEnd: 492
    functionName: probable_prime
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c
    functionUses: 1
    functionsReached:
    - BN_add_word
    - BN_mod_word
    - bn_check_top
    - BN_get_word
    - BN_rand
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: probable_prime(BIGNUM *rnd, int bits, prime_t *mods)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:500,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:501,1
    - Dst: BN_rand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:504,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:509,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:511,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:514,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:517,1
    - Dst: BN_mod_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:526,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:530,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:538,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:539,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 43
    argCount: 5
    argNames:
    - rnd
    - bits
    - add
    - rem
    - ctx
    argTypes:
    - BIGNUM*
    - int
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 541
      start: 494
    functionDepth: 6
    functionLinenumber: 494
    functionLinenumberEnd: 541
    functionName: bn_probable_prime_dh
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c
    functionUses: 1
    functionsReached:
    - BN_add_word
    - BN_mod_word
    - BN_sub
    - BN_mod
    - bn_check_top
    - BN_add
    - BN_rand
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "bn_probable_prime_dh(BIGNUM *rnd, int bits,\n                         const
      BIGNUM *add, const BIGNUM *rem, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:550,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:551,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:552,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:553,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:557,1
    - Dst: BN_rand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:560,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:564,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:566,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:569,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:572,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:574,1
    - Dst: BN_lshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:579,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:581,1
    - Dst: BN_mod_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:590,1
    - Dst: BN_mod_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:591,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:595,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:597,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:605,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c:606,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 62
    argCount: 5
    argNames:
    - p
    - bits
    - padd
    - rem
    - ctx
    argTypes:
    - BIGNUM*
    - int
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 608
      start: 543
    functionDepth: 6
    functionLinenumber: 543
    functionLinenumberEnd: 608
    functionName: probable_prime_dh_safe
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c
    functionUses: 1
    functionsReached:
    - BN_add_word
    - BN_mod_word
    - BN_sub
    - BN_mod
    - bn_check_top
    - BN_add
    - BN_rand
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_get
    - BN_rshift1
    - BN_lshift1
    linkageType: ''
    returnType: int
    signature: "probable_prime_dh_safe(BIGNUM *p, int bits, const BIGNUM *padd,\n
      \                                 const BIGNUM *rem, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:25,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:27,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:27,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:31,1
    - Dst: BN_is_prime_fasttest_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:33,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:38,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:41,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 4
    argNames:
    - pi
    - Xpi
    - ctx
    - cb
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 43
      start: 21
    functionDepth: 6
    functionLinenumber: 21
    functionLinenumberEnd: 43
    functionName: bn_x931_derive_pi
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c
    functionUses: 0
    functionsReached:
    - BN_is_odd
    - BN_add_word
    - BN_copy
    - BN_is_prime_fasttest_ex
    - BN_GENCB_call
    linkageType: ''
    returnType: int
    signature: "bn_x931_derive_pi(BIGNUM *pi, const BIGNUM *Xpi, BN_CTX *ctx,\n                             BN_GENCB
      *cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:61,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:64,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:66,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:69,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:71,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:73,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:75,1
    - Dst: bn_x931_derive_pi
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:80,1
    - Dst: bn_x931_derive_pi
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:83,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:86,1
    - Dst: BN_mod_inverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:91,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:94,1
    - Dst: BN_mod_inverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:97,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:100,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:103,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:106,1
    - Dst: BN_mod_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:111,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:114,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:121,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:122,1
    - Dst: BN_sub_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:124,1
    - Dst: BN_gcd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:126,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:128,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:140,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:144,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:150,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 75
    argCount: 9
    argNames:
    - p
    - p1
    - p2
    - Xp
    - Xp1
    - Xp2
    - e
    - ctx
    - cb
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 153
      start: 51
    functionDepth: 7
    functionLinenumber: 51
    functionLinenumberEnd: 153
    functionName: BN_X931_derive_prime_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c
    functionUses: 0
    functionsReached:
    - BN_is_odd
    - bn_x931_derive_pi
    - BN_mod_sub
    - BN_mod_inverse
    - BN_sub_word
    - BN_sub
    - BN_mul
    - BN_add
    - BN_CTX_end
    - BN_CTX_start
    - BN_gcd
    - BN_copy
    - BN_CTX_get
    - BN_is_one
    - BN_GENCB_call
    linkageType: ''
    returnType: int
    signature: "BN_X931_derive_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2,\n                            const
      BIGNUM *Xp, const BIGNUM *Xp1,\n                            const BIGNUM *Xp2,
      const BIGNUM *e, BN_CTX *ctx,\n                            BN_GENCB *cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_rand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:176,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:179,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:180,1
    - Dst: BN_rand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:183,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:186,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:187,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:191,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:199,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - Xp
    - Xq
    - nbits
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 201
      start: 160
    functionDepth: 6
    functionLinenumber: 160
    functionLinenumberEnd: 201
    functionName: BN_X931_generate_Xpq
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c
    functionUses: 0
    functionsReached:
    - BN_sub
    - BN_rand
    - BN_CTX_end
    - BN_CTX_start
    - BN_num_bits
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:218,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:220,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:222,1
    - Dst: BN_rand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:224,1
    - Dst: BN_rand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:226,1
    - Dst: BN_X931_derive_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:228,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c:234,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 9
    argNames:
    - p
    - p1
    - p2
    - Xp1
    - Xp2
    - Xp
    - e
    - ctx
    - cb
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 238
      start: 211
    functionDepth: 8
    functionLinenumber: 211
    functionLinenumberEnd: 238
    functionName: BN_X931_generate_prime_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c
    functionUses: 0
    functionsReached:
    - BN_X931_derive_prime_ex
    - BN_rand
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2,\n                              BIGNUM
      *Xp1, BIGNUM *Xp2,\n                              const BIGNUM *Xp,\n                              const
      BIGNUM *e, BN_CTX *ctx, BN_GENCB *cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:26,1
    - Dst: BN_abs_is_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:26,1
    - Dst: BN_abs_is_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:27,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:29,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:32,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:32,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:34,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:37,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:41,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:45,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:45,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:47,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:50,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:50,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:52,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:55,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:59,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:60,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:61,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:62,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:63,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:64,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:65,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:70,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:75,1
    - Dst: BN_is_bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:80,1
    - Dst: BN_rshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:93,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:96,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:98,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:133,1
    - Dst: BN_rshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:137,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:140,1
    - Dst: BN_mod_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:144,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:148,1
    - Dst: BN_sub_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:150,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:154,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:156,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:159,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:169,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:179,1
    - Dst: BN_pseudo_rand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:182,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:182,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:184,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:189,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:190,1
    - Dst: BN_kronecker
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:194,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:199,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:211,1
    - Dst: BN_rshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:216,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:223,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:225,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:226,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:250,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:254,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:255,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:257,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:259,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:262,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:265,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:267,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:269,1
    - Dst: BN_mod_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:276,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:278,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:282,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:296,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:297,1
    - Dst: BN_mod_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:305,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:307,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:310,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:313,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:318,1
    - Dst: BN_mod_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:321,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:324,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:326,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:328,1
    - Dst: BN_mod_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:340,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:343,1
    - Dst: BNerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:344,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:352,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:355,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c:356,1
    CyclomaticComplexity: 126
    EdgeCount: 126
    ICount: 251
    argCount: 4
    argNames:
    - in
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 358
      start: 13
    functionDepth: 6
    functionLinenumber: 13
    functionLinenumberEnd: 358
    functionName: BN_mod_sqrt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c
    functionUses: 0
    functionsReached:
    - BN_rshift
    - BN_sub_word
    - BN_zero
    - BN_CTX_get
    - BN_abs_is_word
    - BN_ucmp
    - BN_kronecker
    - BN_free
    - BN_nnmod
    - BN_clear_free
    - BN_is_zero
    - BN_mod_sqr
    - BN_cmp
    - BN_CTX_end
    - BN_CTX_start
    - BN_mod_mul
    - BN_is_one
    - BN_rshift1
    - BN_is_odd
    - BN_new
    - BNerr
    - BN_copy
    - BN_mod_lshift1_quick
    - BN_is_bit_set
    - BN_add_word
    - BN_mod_exp
    - bn_check_top
    - BN_pseudo_rand
    - BN_set_word
    - BN_num_bits
    - BN_one
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_mod_sqrt(BIGNUM *in, const BIGNUM *a, const BIGNUM *p, BN_CTX
      *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:33,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:34,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 107
    argCount: 5
    argNames:
    - r
    - a
    - b
    - cl
    - dl
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 152
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 152
    functionName: bn_sub_part_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c
    functionUses: 0
    functionsReached:
    - bn_sub_words
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: "bn_sub_part_words(BN_ULONG *r,\n                           const BN_ULONG
      *a, const BN_ULONG *b,\n                           int cl, int dl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:161,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:162,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 138
    argCount: 5
    argNames:
    - r
    - a
    - b
    - cl
    - dl
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 313
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 313
    functionName: bn_add_part_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c
    functionUses: 0
    functionsReached:
    - assert
    - bn_add_words
    linkageType: ''
    returnType: BN_ULONG
    signature: "bn_add_part_words(BN_ULONG *r,\n                           const BN_ULONG
      *a, const BN_ULONG *b,\n                           int cl, int dl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_comba4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:344,1
    - Dst: bn_mul_comba8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:353,1
    - Dst: bn_mul_normal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:359,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:361,1
    - Dst: bn_cmp_part_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:366,1
    - Dst: bn_cmp_part_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:367,1
    - Dst: bn_sub_part_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:371,1
    - Dst: bn_sub_part_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:372,1
    - Dst: bn_sub_part_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:378,1
    - Dst: bn_sub_part_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:379,1
    - Dst: bn_sub_part_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:388,1
    - Dst: bn_sub_part_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:389,1
    - Dst: bn_sub_part_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:396,1
    - Dst: bn_sub_part_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:397,1
    - Dst: bn_mul_comba4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:405,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:407,1
    - Dst: bn_mul_comba4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:409,1
    - Dst: bn_mul_comba4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:410,1
    - Dst: bn_mul_comba8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:415,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:417,1
    - Dst: bn_mul_comba8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:419,1
    - Dst: bn_mul_comba8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:420,1
    - Dst: bn_mul_recursive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:426,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:428,1
    - Dst: bn_mul_recursive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:429,1
    - Dst: bn_mul_recursive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:430,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:439,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:442,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:445,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:454,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 91
    argCount: 7
    argNames:
    - r
    - a
    - b
    - n2
    - dna
    - dnb
    - t
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    - int
    - int
    - BN_ULONG*
    constantsTouched: []
    func_position:
      end: 474
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 474
    functionName: bn_mul_recursive
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c
    functionUses: 1
    functionsReached:
    - bn_mul_comba4
    - memset
    - bn_cmp_part_words
    - bn_mul_recursive
    - bn_sub_part_words
    - bn_sub_words
    - bn_add_words
    - bn_mul_comba8
    - bn_mul_normal
    linkageType: ''
    returnType: void
    signature: "bn_mul_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n2,\n
      \                     int dna, int dnb, BN_ULONG *t)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_normal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:488,1
    - Dst: bn_cmp_part_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:493,1
    - Dst: bn_cmp_part_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:494,1
    - Dst: bn_sub_part_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:498,1
    - Dst: bn_sub_part_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:499,1
    - Dst: bn_sub_part_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:504,1
    - Dst: bn_sub_part_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:505,1
    - Dst: bn_sub_part_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:513,1
    - Dst: bn_sub_part_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:514,1
    - Dst: bn_sub_part_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:520,1
    - Dst: bn_sub_part_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:521,1
    - Dst: bn_mul_comba4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:530,1
    - Dst: bn_mul_comba4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:531,1
    - Dst: bn_mul_normal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:532,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:533,1
    - Dst: bn_mul_comba8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:537,1
    - Dst: bn_mul_comba8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:538,1
    - Dst: bn_mul_normal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:539,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:540,1
    - Dst: bn_mul_recursive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:543,1
    - Dst: bn_mul_recursive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:544,1
    - Dst: bn_mul_recursive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:554,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:556,1
    - Dst: bn_mul_part_recursive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:558,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:560,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:564,1
    - Dst: bn_mul_normal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:567,1
    - Dst: bn_mul_part_recursive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:576,1
    - Dst: bn_mul_recursive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:581,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:597,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:600,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:603,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:612,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 99
    argCount: 7
    argNames:
    - r
    - a
    - b
    - n
    - tna
    - tnb
    - t
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    - int
    - int
    - BN_ULONG*
    constantsTouched: []
    func_position:
      end: 632
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 632
    functionName: bn_mul_part_recursive
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c
    functionUses: 1
    functionsReached:
    - bn_mul_comba4
    - memset
    - bn_cmp_part_words
    - bn_mul_recursive
    - bn_sub_part_words
    - bn_sub_words
    - bn_add_words
    - bn_mul_comba8
    - bn_mul_normal
    - bn_mul_part_recursive
    linkageType: ''
    returnType: void
    signature: "bn_mul_part_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n,\n
      \                          int tna, int tnb, BN_ULONG *t)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_recursive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:643,1
    - Dst: bn_mul_low_recursive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:645,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:646,1
    - Dst: bn_mul_low_recursive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:647,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:648,1
    - Dst: bn_mul_low_normal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:650,1
    - Dst: bn_mul_low_normal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:651,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:652,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - r
    - a
    - b
    - n2
    - t
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG*
    constantsTouched: []
    func_position:
      end: 655
      start: 638
    functionDepth: 3
    functionLinenumber: 638
    functionLinenumberEnd: 655
    functionName: bn_mul_low_recursive
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c
    functionUses: 1
    functionsReached:
    - bn_mul_low_normal
    - bn_mul_recursive
    - bn_add_words
    - bn_mul_low_recursive
    linkageType: ''
    returnType: void
    signature: "bn_mul_low_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n2,\n
      \                         BN_ULONG *t)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_cmp_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:675,1
    - Dst: bn_cmp_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:676,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:679,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:680,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:686,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:687,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:696,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:697,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:704,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:705,1
    - Dst: bn_mul_comba8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:714,1
    - Dst: bn_mul_comba8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:715,1
    - Dst: bn_mul_recursive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:719,1
    - Dst: bn_mul_recursive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:720,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:732,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:738,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:740,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:745,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:771,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:776,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:778,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:780,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:782,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:783,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:785,1
    - Dst: bn_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:787,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 115
    argCount: 6
    argNames:
    - r
    - a
    - b
    - l
    - n2
    - t
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG*
    constantsTouched: []
    func_position:
      end: 825
      start: 663
    functionDepth: 3
    functionLinenumber: 663
    functionLinenumberEnd: 825
    functionName: bn_mul_high
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c
    functionUses: 0
    functionsReached:
    - bn_cmp_words
    - bn_sub_words
    - bn_mul_recursive
    - bn_add_words
    - bn_mul_comba8
    linkageType: ''
    returnType: void
    signature: "bn_mul_high(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, BN_ULONG *l, int
      n2,\n                 BN_ULONG *t)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:841,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:842,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:843,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:849,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:854,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:856,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:868,1
    - Dst: bn_mul_comba4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:871,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:876,1
    - Dst: bn_mul_comba8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:879,1
    - Dst: BN_num_bits_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:892,1
    - Dst: BN_num_bits_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:895,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:898,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:900,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:904,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:906,1
    - Dst: bn_mul_part_recursive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:908,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:912,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:914,1
    - Dst: bn_mul_recursive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:916,1
    - Dst: BN_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:922,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:924,1
    - Dst: BN_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:929,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:931,1
    - Dst: BN_num_bits_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:940,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:943,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:945,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:947,1
    - Dst: bn_mul_recursive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:949,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:951,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:953,1
    - Dst: bn_mul_part_recursive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:955,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:963,1
    - Dst: bn_mul_normal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:966,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:972,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:973,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:978,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:979,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 137
    argCount: 4
    argNames:
    - r
    - a
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 981
      start: 828
    functionDepth: 4
    functionLinenumber: 828
    functionLinenumberEnd: 981
    functionName: BN_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c
    functionUses: 8
    functionsReached:
    - assert
    - BN_num_bits_word
    - bn_check_top
    - bn_mul_comba4
    - bn_mul_normal
    - BN_CTX_end
    - BN_CTX_start
    - bn_mul_recursive
    - BN_zero
    - bn_correct_top
    - bn_mul_comba8
    - BN_CTX_get
    - BN_get_flags
    - BN_copy
    - bn_wexpand
    - bn_mul_part_recursive
    linkageType: ''
    returnType: int
    signature: BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:1001,1
    - Dst: bn_mul_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:1004,1
    - Dst: bn_mul_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:1009,1
    - Dst: bn_mul_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:1012,1
    - Dst: bn_mul_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:1015,1
    - Dst: bn_mul_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:1018,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 5
    argNames:
    - r
    - a
    - na
    - b
    - nb
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG*
    - int
    constantsTouched: []
    func_position:
      end: 1023
      start: 983
    functionDepth: 0
    functionLinenumber: 983
    functionLinenumberEnd: 1023
    functionName: bn_mul_normal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c
    functionUses: 3
    functionsReached:
    - bn_mul_add_words
    - bn_mul_words
    linkageType: ''
    returnType: void
    signature: bn_mul_normal(BN_ULONG *r, BN_ULONG *a, int na, BN_ULONG *b, int nb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:1027,1
    - Dst: bn_mul_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:1032,1
    - Dst: bn_mul_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:1035,1
    - Dst: bn_mul_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:1038,1
    - Dst: bn_mul_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c:1041,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - r
    - a
    - b
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    constantsTouched: []
    func_position:
      end: 1045
      start: 1025
    functionDepth: 0
    functionLinenumber: 1025
    functionLinenumberEnd: 1045
    functionName: bn_mul_low_normal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c
    functionUses: 1
    functionsReached:
    - bn_mul_add_words
    - bn_mul_words
    linkageType: ''
    returnType: void
    signature: bn_mul_low_normal(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_const.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 38
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 38
    functionName: BN_get_rfc2409_prime_768
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_get_rfc2409_prime_768(BIGNUM *bn)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_const.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 70
      start: 49
    functionDepth: 4
    functionLinenumber: 49
    functionLinenumberEnd: 70
    functionName: BN_get_rfc2409_prime_1024
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_get_rfc2409_prime_1024(BIGNUM *bn)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_const.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 110
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 110
    functionName: BN_get_rfc3526_prime_1536
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_get_rfc3526_prime_1536(BIGNUM *bn)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_const.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 157
      start: 120
    functionDepth: 4
    functionLinenumber: 120
    functionLinenumberEnd: 157
    functionName: BN_get_rfc3526_prime_2048
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_get_rfc3526_prime_2048(BIGNUM *bn)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_const.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 220
      start: 167
    functionDepth: 4
    functionLinenumber: 167
    functionLinenumberEnd: 220
    functionName: BN_get_rfc3526_prime_3072
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_get_rfc3526_prime_3072(BIGNUM *bn)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_const.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 299
      start: 230
    functionDepth: 4
    functionLinenumber: 230
    functionLinenumberEnd: 299
    functionName: BN_get_rfc3526_prime_4096
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_get_rfc3526_prime_4096(BIGNUM *bn)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_const.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 410
      start: 309
    functionDepth: 4
    functionLinenumber: 309
    functionLinenumberEnd: 410
    functionName: BN_get_rfc3526_prime_6144
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_get_rfc3526_prime_6144(BIGNUM *bn)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_const.c:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 553
      start: 420
    functionDepth: 4
    functionLinenumber: 420
    functionLinenumberEnd: 553
    functionName: BN_get_rfc3526_prime_8192
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: '*BN_get_rfc3526_prime_8192(BIGNUM *bn)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:35,1
    - Dst: bn_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:37,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:40,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:46,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:47,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:51,1
    - Dst: BN_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:53,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:56,1
    - Dst: BN_from_montgomery_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:61,1
    - Dst: BN_from_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:64,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:67,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:70,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 5
    argNames:
    - r
    - a
    - b
    - mont
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_MONT_CTX*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 72
      start: 26
    functionDepth: 5
    functionLinenumber: 26
    functionLinenumberEnd: 72
    functionName: BN_mod_mul_montgomery
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c
    functionUses: 5
    functionsReached:
    - BN_mul
    - BN_from_montgomery_word
    - bn_check_top
    - BN_CTX_end
    - BN_CTX_start
    - BN_sqr
    - bn_correct_top
    - BN_CTX_get
    - bn_wexpand
    - BN_from_montgomery
    - bn_mul_mont
    linkageType: ''
    returnType: int
    signature: "BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,\n
      \                         BN_MONT_CTX *mont, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:89,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:99,1
    - Dst: bn_mul_add_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:105,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:112,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:126,1
    - Dst: bn_sub_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:155,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:156,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:158,1
    - Dst: bn_correct_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:159,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:160,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 57
    argCount: 3
    argNames:
    - ret
    - r
    - mont
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_MONT_CTX*
    constantsTouched: []
    func_position:
      end: 163
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 163
    functionName: BN_from_montgomery_word
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c
    functionUses: 1
    functionsReached:
    - bn_check_top
    - memset
    - bn_sub_words
    - memcpy
    - bn_mul_add_words
    - bn_correct_top
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: BN_from_montgomery_word(BIGNUM *ret, BIGNUM *r, BN_MONT_CTX *mont)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:173,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:174,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:174,1
    - Dst: BN_from_montgomery_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:175,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:176,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:180,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:181,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:182,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:186,1
    - Dst: BN_mask_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:188,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:190,1
    - Dst: BN_mask_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:192,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:194,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:196,1
    - Dst: BN_rshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:198,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:201,1
    - Dst: BN_usub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:202,1
    - Dst: bn_check_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:206,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:208,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 4
    argNames:
    - ret
    - a
    - mont
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_MONT_CTX*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 211
      start: 166
    functionDepth: 5
    functionLinenumber: 166
    functionLinenumberEnd: 211
    functionName: BN_from_montgomery
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c
    functionUses: 5
    functionsReached:
    - BN_rshift
    - BN_usub
    - BN_mul
    - BN_from_montgomery_word
    - BN_mask_bits
    - bn_check_top
    - BN_add
    - BN_CTX_end
    - BN_CTX_start
    - BN_copy
    - BN_CTX_get
    - BN_ucmp
    linkageType: ''
    returnType: int
    signature: "BN_from_montgomery(BIGNUM *ret, const BIGNUM *a, BN_MONT_CTX *mont,\n
      \                      BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:217,1
    - Dst: BN_MONT_CTX_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 223
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 223
    functionName: BN_MONT_CTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c
    functionUses: 5
    functionsReached:
    - OPENSSL_malloc
    - BN_MONT_CTX_init
    linkageType: ''
    returnType: BN_MONT_CTX
    signature: '*BN_MONT_CTX_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:228,1
    - Dst: bn_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:229,1
    - Dst: bn_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - BN_MONT_CTX*
    constantsTouched: []
    func_position:
      end: 233
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 233
    functionName: BN_MONT_CTX_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c
    functionUses: 1
    functionsReached:
    - bn_init
    linkageType: ''
    returnType: void
    signature: BN_MONT_CTX_init(BN_MONT_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:240,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:241,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:242,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - mont
    argTypes:
    - BN_MONT_CTX*
    constantsTouched: []
    func_position:
      end: 245
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 245
    functionName: BN_MONT_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c
    functionUses: 5
    functionsReached:
    - OPENSSL_free
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: BN_MONT_CTX_free(BN_MONT_CTX *mont)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:252,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:255,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:256,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:259,1
    - Dst: bn_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:268,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:273,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:283,1
    - Dst: BN_set_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:284,1
    - Dst: BN_mod_inverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:293,1
    - Dst: BN_lshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:295,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:297,1
    - Dst: BN_sub_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:298,1
    - Dst: bn_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:302,1
    - Dst: BN_div
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:310,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:318,1
    - Dst: BN_set_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:319,1
    - Dst: BN_mod_inverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:326,1
    - Dst: BN_lshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:328,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:330,1
    - Dst: BN_sub_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:331,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:335,1
    - Dst: BN_div
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:338,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:349,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:350,1
    - Dst: BN_set_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:351,1
    - Dst: BN_mod_inverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:354,1
    - Dst: BN_lshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:356,1
    - Dst: BN_sub_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:358,1
    - Dst: BN_div
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:363,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:369,1
    - Dst: BN_set_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:370,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:372,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:377,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 108
    argCount: 3
    argNames:
    - mont
    - mod
    - ctx
    argTypes:
    - BN_MONT_CTX*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 379
      start: 247
    functionDepth: 4
    functionLinenumber: 247
    functionLinenumberEnd: 379
    functionName: BN_MONT_CTX_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c
    functionUses: 5
    functionsReached:
    - BN_mod_inverse
    - BN_sub_word
    - BN_is_zero
    - BN_mod
    - BN_lshift
    - bn_expand
    - BN_CTX_end
    - BN_CTX_start
    - bn_init
    - BN_num_bits
    - BN_copy
    - BN_zero
    - BN_set_word
    - BN_CTX_get
    - BN_set_bit
    - BN_div
    linkageType: ''
    returnType: int
    signature: BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:386,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:388,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:390,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - BN_MONT_CTX*
    - BN_MONT_CTX*
    constantsTouched: []
    func_position:
      end: 396
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 396
    functionName: BN_MONT_CTX_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c
    functionUses: 0
    functionsReached:
    - BN_copy
    linkageType: ''
    returnType: BN_MONT_CTX
    signature: '*BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:403,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:405,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:417,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:420,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:421,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:426,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:428,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c:432,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - pmont
    - lock
    - mod
    - ctx
    argTypes:
    - BN_MONT_CTX**
    - CRYPTO_RWLOCK*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 434
      start: 398
    functionDepth: 5
    functionLinenumber: 398
    functionLinenumberEnd: 434
    functionName: BN_MONT_CTX_set_locked
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c
    functionUses: 0
    functionsReached:
    - BN_MONT_CTX_new
    - CRYPTO_THREAD_write_lock
    - BN_MONT_CTX_free
    - CRYPTO_THREAD_unlock
    - CRYPTO_THREAD_read_lock
    - BN_MONT_CTX_set
    linkageType: ''
    returnType: BN_MONT_CTX
    signature: "*BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, CRYPTO_RWLOCK *lock,\n
      \                                   const BIGNUM *mod, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mul_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:126,1
    - Dst: mul_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:127,1
    - Dst: mul_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:128,1
    - Dst: mul_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:129,1
    - Dst: mul_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:135,1
    - Dst: mul_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:138,1
    - Dst: mul_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:141,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - rp
    - ap
    - num
    - w
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 146
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 146
    functionName: bn_mul_add_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c
    functionUses: 7
    functionsReached:
    - mul_add
    linkageType: ''
    returnType: BN_ULONG
    signature: "bn_mul_add_words(BN_ULONG *rp, const BN_ULONG *ap, int num,\n                          BN_ULONG
      w)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:156,1
    - Dst: mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:157,1
    - Dst: mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:158,1
    - Dst: mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:159,1
    - Dst: mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:165,1
    - Dst: mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:168,1
    - Dst: mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:171,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - rp
    - ap
    - num
    - w
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 174
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 174
    functionName: bn_mul_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c
    functionUses: 7
    functionsReached:
    - mul
    linkageType: ''
    returnType: BN_ULONG
    signature: bn_mul_words(BN_ULONG *rp, const BN_ULONG *ap, int num, BN_ULONG w)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:182,1
    - Dst: sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:183,1
    - Dst: sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:184,1
    - Dst: sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:185,1
    - Dst: sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:191,1
    - Dst: sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:194,1
    - Dst: sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - r
    - a
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    constantsTouched: []
    func_position:
      end: 199
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 199
    functionName: bn_sqr_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c
    functionUses: 1
    functionsReached:
    - sqr
    linkageType: ''
    returnType: void
    signature: bn_sqr_words(BN_ULONG *r, const BN_ULONG *a, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - h
    - l
    - d
    argTypes:
    - BN_ULONG
    - BN_ULONG
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 210
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 210
    functionName: bn_div_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: bn_div_words(BN_ULONG h, BN_ULONG l, BN_ULONG d)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - rp
    - ap
    - bp
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    constantsTouched: []
    func_position:
      end: 235
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 235
    functionName: bn_add_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: "bn_add_words(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp,\n
      \                     int n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - rp
    - ap
    - bp
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    constantsTouched: []
    func_position:
      end: 261
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 261
    functionName: bn_sub_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: "bn_sub_words(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp,\n
      \                     int n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 4
    argNames:
    - r
    - a
    - b
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    constantsTouched: []
    func_position:
      end: 311
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 311
    functionName: bn_sub_words
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: bn_sub_words(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:405,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:408,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:409,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:412,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:413,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:414,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:417,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:418,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:419,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:420,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:423,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:424,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:425,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:426,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:427,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:430,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:431,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:432,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:433,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:434,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:435,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:438,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:439,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:440,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:441,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:442,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:443,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:444,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:447,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:448,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:449,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:450,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:451,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:452,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:453,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:454,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:457,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:458,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:459,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:460,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:461,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:462,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:463,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:466,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:467,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:468,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:469,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:470,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:471,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:474,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:475,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:476,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:477,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:478,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:481,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:482,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:483,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:484,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:487,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:488,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:489,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:492,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:493,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 98
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    constantsTouched: []
    func_position:
      end: 499
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 499
    functionName: bn_mul_comba8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c
    functionUses: 4
    functionsReached:
    - mul_add_c
    linkageType: ''
    returnType: void
    signature: bn_mul_comba8(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:508,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:511,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:512,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:515,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:516,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:517,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:520,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:521,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:522,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:523,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:526,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:527,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:528,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:531,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:532,1
    - Dst: mul_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    constantsTouched: []
    func_position:
      end: 538
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 538
    functionName: bn_mul_comba4
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c
    functionUses: 3
    functionsReached:
    - mul_add_c
    linkageType: ''
    returnType: void
    signature: bn_mul_comba4(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:547,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:550,1
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:553,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:554,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:557,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:558,1
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:561,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:562,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:563,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:566,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:567,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:568,1
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:571,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:572,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:573,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:574,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:577,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:578,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:579,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:580,1
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:583,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:584,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:585,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:586,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:589,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:590,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:591,1
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:594,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:595,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:596,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:599,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:600,1
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:603,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:604,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:607,1
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 70
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    constantsTouched: []
    func_position:
      end: 613
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 613
    functionName: bn_sqr_comba8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c
    functionUses: 2
    functionsReached:
    - sqr_add_c2
    - sqr_add_c
    linkageType: ''
    returnType: void
    signature: bn_sqr_comba8(BN_ULONG *r, const BN_ULONG *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:622,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:625,1
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:628,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:629,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:632,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:633,1
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:636,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:637,1
    - Dst: sqr_add_c2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:640,1
    - Dst: sqr_add_c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    constantsTouched: []
    func_position:
      end: 646
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 646
    functionName: bn_sqr_comba4
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c
    functionUses: 2
    functionsReached:
    - sqr_add_c2
    - sqr_add_c
    linkageType: ''
    returnType: void
    signature: bn_sqr_comba4(BN_ULONG *r, const BN_ULONG *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:41,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:47,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 44
    argCount: 3
    argNames:
    - a
    - alen
    - src
    argTypes:
    - unsigned char*
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 86
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 86
    functionName: t_fromb64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c
    functionUses: 1
    functionsReached:
    - strlen
    - strchr
    linkageType: ''
    returnType: int
    signature: t_fromb64(unsigned char *a, size_t alen, const char *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 3
    argNames:
    - dst
    - src
    - size
    argTypes:
    - char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 139
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 139
    functionName: t_tob64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*t_tob64(char *dst, const unsigned char *src, int size)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:145,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:146,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:147,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:148,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - user_pwd
    argTypes:
    - SRP_user_pwd*
    constantsTouched: []
    func_position:
      end: 150
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 150
    functionName: SRP_user_pwd_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BN_free
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: SRP_user_pwd_free(SRP_user_pwd *user_pwd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 164
    functionName: SRP_user_pwd_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    linkageType: ''
    returnType: SRP_user_pwd
    signature: '*SRP_user_pwd_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - vinfo
    - g
    - N
    argTypes:
    - SRP_user_pwd*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: SRP_user_pwd_set_gN
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SRP_user_pwd_set_gN(SRP_user_pwd *vinfo, const BIGNUM *g,\n                                const
      BIGNUM *N)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:176,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - vinfo
    - id
    - info
    argTypes:
    - SRP_user_pwd*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: SRP_user_pwd_set_ids
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: "SRP_user_pwd_set_ids(SRP_user_pwd *vinfo, const char *id,\n                                const
      char *info)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: t_fromb64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:190,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:193,1
    - Dst: t_fromb64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:195,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:198,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:203,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - vinfo
    - s
    - v
    argTypes:
    - SRP_user_pwd*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 206
      start: 181
    functionDepth: 4
    functionLinenumber: 181
    functionLinenumberEnd: 206
    functionName: SRP_user_pwd_set_sv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - BN_free
    - t_fromb64
    - BN_bin2bn
    linkageType: ''
    returnType: int
    signature: "SRP_user_pwd_set_sv(SRP_user_pwd *vinfo, const char *s,\n                               const
      char *v)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - vinfo
    - s
    - v
    argTypes:
    - SRP_user_pwd*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 213
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 213
    functionName: SRP_user_pwd_set_sv_BN
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SRP_user_pwd_set_sv_BN(SRP_user_pwd *vinfo, BIGNUM *s, BIGNUM *v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SRP_user_pwd_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:221,1
    - Dst: SRP_user_pwd_set_gN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:224,1
    - Dst: SRP_user_pwd_set_ids
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:225,1
    - Dst: SRP_user_pwd_set_sv_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:226,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:226,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:226,1
    - Dst: SRP_user_pwd_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - src
    argTypes:
    - SRP_user_pwd*
    constantsTouched: []
    func_position:
      end: 231
      start: 215
    functionDepth: 4
    functionLinenumber: 215
    functionLinenumberEnd: 231
    functionName: srp_user_pwd_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - SRP_user_pwd_new
    - BN_dup
    - SRP_user_pwd_set_ids
    - SRP_user_pwd_set_sv_BN
    - SRP_user_pwd_set_gN
    - SRP_user_pwd_free
    linkageType: ''
    returnType: SRP_user_pwd
    signature: '*srp_user_pwd_dup(SRP_user_pwd *src)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:235,1
    - Dst: sk_SRP_user_pwd_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:239,1
    - Dst: sk_SRP_gN_cache_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:240,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:241,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:247,1
    - Dst: sk_SRP_user_pwd_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:248,1
    - Dst: sk_SRP_gN_cache_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:249,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:250,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - seed_key
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 254
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 254
    functionName: SRP_VBASE_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - sk_SRP_gN_cache_free
    - sk_SRP_gN_cache_new_null
    - sk_SRP_user_pwd_free
    - OPENSSL_strdup
    - OPENSSL_free
    - OPENSSL_malloc
    - sk_SRP_user_pwd_new_null
    linkageType: ''
    returnType: SRP_VBASE
    signature: '*SRP_VBASE_new(char *seed_key)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_SRP_user_pwd_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:260,1
    - Dst: sk_SRP_gN_cache_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:261,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:262,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - vb
    argTypes:
    - SRP_VBASE*
    constantsTouched: []
    func_position:
      end: 264
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 264
    functionName: SRP_VBASE_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - sk_SRP_user_pwd_pop_free
    - OPENSSL_free
    - sk_SRP_gN_cache_free
    linkageType: ''
    returnType: void
    signature: SRP_VBASE_free(SRP_VBASE *vb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:270,1
    - Dst: t_fromb64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:275,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:279,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:282,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:285,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:287,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 289
      start: 266
    functionDepth: 4
    functionLinenumber: 266
    functionLinenumberEnd: 289
    functionName: SRP_gN_new_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - t_fromb64
    - OPENSSL_strdup
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: SRP_gN_cache
    signature: '*SRP_gN_new_init(const char *ch)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:295,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:296,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - gN_cache
    argTypes:
    - SRP_gN_cache*
    constantsTouched: []
    func_position:
      end: 298
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 298
    functionName: SRP_gN_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BN_free
    linkageType: ''
    returnType: void
    signature: SRP_gN_free(SRP_gN_cache *gN_cache)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_SRP_gN_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:306,1
    - Dst: sk_SRP_gN_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:307,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:308,1
    - Dst: SRP_get_default_gN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:312,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - id
    - gN_tab
    argTypes:
    - char*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 313
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 313
    functionName: SRP_get_gN_by_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - strcmp
    - sk_SRP_gN_num
    - SRP_get_default_gN
    - sk_SRP_gN_value
    linkageType: ''
    returnType: SRP_gN
    signature: '*SRP_get_gN_by_id(const char *id, STACK_OF(SRP_gN) *gN_tab)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_SRP_gN_cache_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:322,1
    - Dst: sk_SRP_gN_cache_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:323,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:324,1
    - Dst: SRP_gN_new_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:328,1
    - Dst: sk_SRP_gN_cache_insert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:330,1
    - Dst: SRP_gN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:332,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - gN_cache
    - ch
    argTypes:
    - STACK_OF*
    - char*
    constantsTouched: []
    func_position:
      end: 336
      start: 315
    functionDepth: 5
    functionLinenumber: 315
    functionLinenumberEnd: 336
    functionName: SRP_gN_place_bn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - SRP_gN_free
    - strcmp
    - sk_SRP_gN_cache_num
    - SRP_gN_new_init
    - sk_SRP_gN_cache_insert
    - sk_SRP_gN_cache_value
    linkageType: ''
    returnType: BIGNUM
    signature: '*SRP_gN_place_bn(STACK_OF(SRP_gN_cache) *gN_cache, char *ch)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:347,1
    - Dst: sk_SRP_gN_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:347,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:356,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:356,1
    - Dst: BIO_read_filename
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:360,1
    - Dst: TXT_DB_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:365,1
    - Dst: SRP_get_default_gN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:371,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:373,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:374,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:380,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:383,1
    - Dst: SRP_gN_place_bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:384,1
    - Dst: SRP_gN_place_bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:386,1
    - Dst: sk_SRP_gN_insert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:388,1
    - Dst: SRP_get_gN_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:400,1
    - Dst: SRP_user_pwd_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:402,1
    - Dst: SRP_user_pwd_set_gN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:405,1
    - Dst: SRP_user_pwd_set_ids
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:406,1
    - Dst: SRP_user_pwd_set_sv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:411,1
    - Dst: sk_SRP_user_pwd_insert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:415,1
    - Dst: SRP_get_gN_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:425,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:442,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:443,1
    - Dst: SRP_user_pwd_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:446,1
    - Dst: TXT_DB_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:448,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:449,1
    - Dst: sk_SRP_gN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:451,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 71
    argCount: 2
    argNames:
    - vb
    - verifier_file
    argTypes:
    - SRP_VBASE*
    - char*
    constantsTouched: []
    func_position:
      end: 455
      start: 344
    functionDepth: 6
    functionLinenumber: 344
    functionLinenumberEnd: 455
    functionName: SRP_VBASE_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - sk_SRP_user_pwd_insert
    - BIO_read_filename
    - TXT_DB_read
    - SRP_gN_place_bn
    - SRP_user_pwd_new
    - SRP_user_pwd_set_ids
    - OPENSSL_strdup
    - SRP_get_default_gN
    - SRP_user_pwd_free
    - SRP_user_pwd_set_sv
    - SRP_get_gN_by_id
    - sk_SRP_gN_free
    - sk_OPENSSL_PSTRING_num
    - BIO_new
    - BIO_s_file
    - OPENSSL_free
    - BIO_free_all
    - STACK_OF
    - sk_OPENSSL_PSTRING_value
    - sk_SRP_gN_insert
    - sk_SRP_gN_new_null
    - SRP_user_pwd_set_gN
    - OPENSSL_malloc
    - TXT_DB_free
    linkageType: ''
    returnType: int
    signature: SRP_VBASE_init(SRP_VBASE *vb, char *verifier_file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_SRP_user_pwd_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:465,1
    - Dst: sk_SRP_user_pwd_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:466,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:467,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - vb
    - username
    argTypes:
    - SRP_VBASE*
    - char*
    constantsTouched: []
    func_position:
      end: 472
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 472
    functionName: find_user
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - sk_SRP_user_pwd_num
    - sk_SRP_user_pwd_value
    - strcmp
    linkageType: ''
    returnType: SRP_user_pwd
    signature: '*find_user(SRP_VBASE *vb, char *username)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find_user
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vb
    - username
    argTypes:
    - SRP_VBASE*
    - char*
    constantsTouched: []
    func_position:
      end: 484
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 484
    functionName: SRP_VBASE_get_by_user
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - find_user
    linkageType: ''
    returnType: SRP_user_pwd
    signature: '*SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find_user
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:501,1
    - Dst: srp_user_pwd_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:502,1
    - Dst: SRP_user_pwd_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:510,1
    - Dst: SRP_user_pwd_set_gN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:513,1
    - Dst: SRP_user_pwd_set_ids
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:515,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:518,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:520,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:522,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:522,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:523,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:523,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:524,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:524,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:525,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:527,1
    - Dst: SRP_user_pwd_set_sv_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:529,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:530,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:531,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:535,1
    - Dst: SRP_user_pwd_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:536,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 29
    argCount: 2
    argNames:
    - vb
    - username
    argTypes:
    - SRP_VBASE*
    - char*
    constantsTouched: []
    func_position:
      end: 538
      start: 491
    functionDepth: 5
    functionLinenumber: 491
    functionLinenumberEnd: 538
    functionName: SRP_VBASE_get1_by_user
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - EVP_DigestFinal_ex
    - SRP_user_pwd_new
    - EVP_sha1
    - BN_bin2bn
    - SRP_user_pwd_set_ids
    - EVP_DigestUpdate
    - SRP_user_pwd_set_sv_BN
    - EVP_MD_CTX_new
    - strlen
    - EVP_MD_CTX_free
    - SRP_user_pwd_set_gN
    - find_user
    - srp_user_pwd_dup
    - SRP_user_pwd_free
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: SRP_user_pwd
    signature: '*SRP_VBASE_get1_by_user(SRP_VBASE *vb, char *username)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: t_fromb64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:560,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:562,1
    - Dst: t_fromb64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:564,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:566,1
    - Dst: SRP_get_gN_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:570,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:579,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:582,1
    - Dst: t_fromb64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:584,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:586,1
    - Dst: SRP_create_verifier_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:589,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:592,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:593,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:594,1
    - Dst: t_tob64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:596,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:596,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:601,1
    - Dst: t_tob64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:604,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:613,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:614,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:615,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:616,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:617,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 63
    argCount: 6
    argNames:
    - user
    - pass
    - salt
    - verifier
    - N
    - g
    argTypes:
    - char*
    - char*
    - char**
    - char**
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 619
      start: 543
    functionDepth: 4
    functionLinenumber: 543
    functionLinenumberEnd: 619
    functionName: SRP_create_verifier
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - SRP_get_gN_by_id
    - BN_free
    - BN_clear_free
    - BN_bin2bn
    - t_tob64
    - t_fromb64
    - OPENSSL_clear_free
    - BN_bn2bin
    - OPENSSL_malloc
    - SRP_create_verifier_BN
    - BN_num_bytes
    linkageType: ''
    returnType: char
    signature: "*SRP_create_verifier(const char *user, const char *pass, char **salt,\n
      \                         char **verifier, const char *N, const char *g)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:636,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:647,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:650,1
    - Dst: SRP_Calc_x
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:655,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:657,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:661,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:662,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:671,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:672,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c:673,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 6
    argNames:
    - user
    - pass
    - salt
    - verifier
    - N
    - g
    argTypes:
    - char*
    - char*
    - BIGNUM**
    - BIGNUM**
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 675
      start: 630
    functionDepth: 4
    functionLinenumber: 630
    functionLinenumberEnd: 675
    functionName: SRP_create_verifier_BN
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c
    functionUses: 1
    functionsReached:
    - BN_new
    - RAND_bytes
    - BN_clear_free
    - BN_bin2bn
    - BN_mod_exp
    - BN_CTX_free
    - BN_CTX_new
    - SRP_Calc_x
    linkageType: ''
    returnType: int
    signature: "SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM
      **salt,\n                           BIGNUM **verifier, const BIGNUM *N,\n                           const
      BIGNUM *g)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:25,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:27,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:29,1
    - Dst: BN_bn2binpad
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:31,1
    - Dst: BN_bn2binpad
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:32,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:33,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:33,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:35,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:37,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 3
    argNames:
    - x
    - y
    - N
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 39
      start: 19
    functionDepth: 5
    functionLinenumber: 19
    functionLinenumberEnd: 39
    functionName: srp_Calc_xy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - EVP_Digest
    - EVP_sha1
    - BN_bin2bn
    - BN_ucmp
    - OPENSSL_free
    - OPENSSL_malloc
    - BN_bn2binpad
    linkageType: ''
    returnType: BIGNUM
    signature: '*srp_Calc_xy(const BIGNUM *x, const BIGNUM *y, const BIGNUM *N)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: srp_Calc_xy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - N
    - g
    argTypes:
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 6
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: srp_Calc_k
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - srp_Calc_xy
    linkageType: ''
    returnType: BIGNUM
    signature: '*srp_Calc_k(const BIGNUM *N, const BIGNUM *g)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: srp_Calc_xy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - A
    - B
    - N
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 6
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: SRP_Calc_u
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - srp_Calc_xy
    linkageType: ''
    returnType: BIGNUM
    signature: '*SRP_Calc_u(const BIGNUM *A, const BIGNUM *B, const BIGNUM *N)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:62,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:62,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:67,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:69,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:72,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:73,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:74,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:78,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:79,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 5
    argNames:
    - A
    - v
    - u
    - b
    - N
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 81
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 81
    functionName: SRP_Calc_server_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_free
    - BN_clear_free
    - BN_mod_exp
    - BN_CTX_free
    - BN_CTX_new
    - BN_mod_mul
    linkageType: ''
    returnType: BIGNUM
    signature: "*SRP_Calc_server_key(const BIGNUM *A, const BIGNUM *v, const BIGNUM
      *u,\n                            const BIGNUM *b, const BIGNUM *N)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:91,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:94,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:95,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:95,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:100,1
    - Dst: srp_Calc_k
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:101,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:102,1
    - Dst: BN_mod_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:103,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:104,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:108,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:109,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:110,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:111,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 17
    argCount: 4
    argNames:
    - b
    - N
    - g
    - v
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 113
      start: 83
    functionDepth: 7
    functionLinenumber: 83
    functionLinenumberEnd: 113
    functionName: SRP_Calc_B
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_free
    - BN_clear_free
    - BN_mod_exp
    - BN_CTX_free
    - BN_CTX_new
    - BN_mod_mul
    - srp_Calc_k
    - BN_mod_add
    linkageType: ''
    returnType: BIGNUM
    signature: "*SRP_Calc_B(const BIGNUM *b, const BIGNUM *N, const BIGNUM *g,\n                   const
      BIGNUM *v)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:125,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:128,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:128,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:131,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:131,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:132,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:132,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:133,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:134,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:134,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:135,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:136,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:136,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:138,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:139,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:139,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:142,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:143,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:146,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:149,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:150,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 25
    argCount: 3
    argNames:
    - s
    - user
    - pass
    argTypes:
    - BIGNUM*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 152
      start: 115
    functionDepth: 4
    functionLinenumber: 115
    functionLinenumberEnd: 152
    functionName: SRP_Calc_x
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c
    functionUses: 1
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_sha1
    - BN_bin2bn
    - EVP_DigestUpdate
    - EVP_MD_CTX_new
    - BN_num_bytes
    - strlen
    - EVP_MD_CTX_free
    - OPENSSL_free
    - BN_bn2bin
    - OPENSSL_malloc
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: BIGNUM
    signature: '*SRP_Calc_x(const BIGNUM *s, const char *user, const char *pass)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:159,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:162,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:162,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:163,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:166,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - a
    - N
    - g
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 168
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 168
    functionName: SRP_Calc_A
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_free
    - BN_mod_exp
    - BN_CTX_free
    - BN_CTX_new
    linkageType: ''
    returnType: BIGNUM
    signature: '*SRP_Calc_A(const BIGNUM *a, const BIGNUM *N, const BIGNUM *g)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:177,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:180,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:181,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:182,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:185,1
    - Dst: srp_Calc_k
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:187,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:189,1
    - Dst: BN_mod_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:191,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:193,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:195,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:197,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:198,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:199,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:204,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:205,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:206,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:207,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:208,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 37
    argCount: 6
    argNames:
    - N
    - B
    - g
    - x
    - a
    - u
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 210
      start: 170
    functionDepth: 7
    functionLinenumber: 170
    functionLinenumberEnd: 210
    functionName: SRP_Calc_client_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_mod_sub
    - BN_free
    - BN_clear_free
    - BN_mul
    - BN_mod_exp
    - BN_add
    - BN_CTX_free
    - BN_CTX_new
    - BN_mod_mul
    - srp_Calc_k
    linkageType: ''
    returnType: BIGNUM
    signature: "*SRP_Calc_client_key(const BIGNUM *N, const BIGNUM *B, const BIGNUM
      *g,\n                            const BIGNUM *x, const BIGNUM *a, const BIGNUM
      *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:218,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:221,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:224,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:226,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:228,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:229,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - B
    - N
    argTypes:
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 231
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 231
    functionName: SRP_Verify_B_mod_N
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_free
    - BN_nnmod
    - BN_is_zero
    - BN_CTX_free
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: SRP_Verify_B_mod_N(const BIGNUM *B, const BIGNUM *N)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SRP_Verify_B_mod_N
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - A
    - N
    argTypes:
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: SRP_Verify_A_mod_N
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - SRP_Verify_B_mod_N
    linkageType: ''
    returnType: int
    signature: SRP_Verify_A_mod_N(const BIGNUM *A, const BIGNUM *N)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:262,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - g
    - N
    argTypes:
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 266
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 266
    functionName: SRP_check_known_gN_param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    linkageType: ''
    returnType: char
    signature: '*SRP_check_known_gN_param(const BIGNUM *g, const BIGNUM *N)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - id
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 279
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 279
    functionName: SRP_get_default_gN
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c
    functionUses: 2
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: SRP_gN
    signature: '*SRP_get_default_gN(const char *id)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c:23,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c:26,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - x
    - version
    argTypes:
    - X509_CRL*
    - long
    constantsTouched: []
    func_position:
      end: 27
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 27
    functionName: X509_CRL_set_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_set
    - ASN1_INTEGER_new
    linkageType: ''
    returnType: int
    signature: X509_CRL_set_version(X509_CRL *x, long version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - name
    argTypes:
    - X509_CRL*
    - X509_NAME*
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: X509_CRL_set_issuer_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - X509_NAME_set
    linkageType: ''
    returnType: int
    signature: X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: x509_set1_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - tm
    argTypes:
    - X509_CRL*
    - ASN1_TIME*
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: X509_CRL_set1_lastUpdate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - x509_set1_time
    linkageType: ''
    returnType: int
    signature: X509_CRL_set1_lastUpdate(X509_CRL *x, const ASN1_TIME *tm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: x509_set1_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - tm
    argTypes:
    - X509_CRL*
    - ASN1_TIME*
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: X509_CRL_set1_nextUpdate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - x509_set1_time
    linkageType: ''
    returnType: int
    signature: X509_CRL_set1_nextUpdate(X509_CRL *x, const ASN1_TIME *tm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_REVOKED_sort
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c:57,1
    - Dst: sk_X509_REVOKED_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c:58,1
    - Dst: sk_X509_REVOKED_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 64
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 64
    functionName: X509_CRL_sort
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - sk_X509_REVOKED_sort
    - sk_X509_REVOKED_num
    - sk_X509_REVOKED_value
    linkageType: ''
    returnType: int
    signature: X509_CRL_sort(X509_CRL *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c:70,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c:73,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 76
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 76
    functionName: X509_CRL_up_ref
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c
    functionUses: 1
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_atomic_add
    linkageType: ''
    returnType: int
    signature: X509_CRL_up_ref(X509_CRL *crl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: X509_CRL_get_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: long
    signature: X509_CRL_get_version(const X509_CRL *crl)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: X509_CRL_get0_lastUpdate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: '*X509_CRL_get0_lastUpdate(const X509_CRL *crl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: X509_CRL_get0_nextUpdate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: '*X509_CRL_get0_nextUpdate(const X509_CRL *crl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: X509_CRL_get_lastUpdate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: '*X509_CRL_get_lastUpdate(X509_CRL *crl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: X509_CRL_get_nextUpdate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: '*X509_CRL_get_nextUpdate(X509_CRL *crl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: X509_CRL_get_issuer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_NAME
    signature: '*X509_CRL_get_issuer(const X509_CRL *crl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: X509_CRL_get0_extensions
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: '*X509_CRL_get0_extensions(const X509_CRL *crl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - crl
    - psig
    - palg
    argTypes:
    - X509_CRL*
    - ASN1_BIT_STRING**
    - X509_ALGOR**
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: X509_CRL_get0_signature
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "X509_CRL_get0_signature(const X509_CRL *crl, const ASN1_BIT_STRING
      **psig,\n                             const X509_ALGOR **palg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: X509_CRL_get_signature_nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: X509_CRL_get_signature_nid(const X509_CRL *crl)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_REVOKED*
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: X509_REVOKED_get0_revocationDate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: '*X509_REVOKED_get0_revocationDate(const X509_REVOKED *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c:147,1
    - Dst: ASN1_TIME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - x
    - tm
    argTypes:
    - X509_REVOKED*
    - ASN1_TIME*
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: X509_REVOKED_set_revocationDate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - ASN1_TIME_free
    - ASN1_STRING_dup
    linkageType: ''
    returnType: int
    signature: X509_REVOKED_set_revocationDate(X509_REVOKED *x, ASN1_TIME *tm)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_REVOKED*
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: X509_REVOKED_get0_serialNumber
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: '*X509_REVOKED_get0_serialNumber(const X509_REVOKED *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - x
    - serial
    argTypes:
    - X509_REVOKED*
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: X509_REVOKED_set_serialNumber
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_copy
    linkageType: ''
    returnType: int
    signature: X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - X509_REVOKED*
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: X509_REVOKED_get0_extensions
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: '*X509_REVOKED_get0_extensions(const X509_REVOKED *r)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509_CRL_INFO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - crl
    - pp
    argTypes:
    - X509_CRL*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: i2d_re_X509_CRL_tbs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - i2d_X509_CRL_INFO
    linkageType: ''
    returnType: int
    signature: i2d_re_X509_CRL_tbs(X509_CRL *crl, unsigned char **pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:23,1
    - Dst: X509_NAME_get_text_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - name
    - nid
    - buf
    - len
    argTypes:
    - X509_NAME*
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 27
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 27
    functionName: X509_NAME_get_text_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c
    functionUses: 0
    functionsReached:
    - X509_NAME_get_text_by_OBJ
    - OBJ_nid2obj
    linkageType: ''
    returnType: int
    signature: X509_NAME_get_text_by_NID(X509_NAME *name, int nid, char *buf, int
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_get_index_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:35,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:38,1
    - Dst: X509_NAME_get_entry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:38,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - name
    - obj
    - buf
    - len
    argTypes:
    - X509_NAME*
    - ASN1_OBJECT*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 45
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 45
    functionName: X509_NAME_get_text_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c
    functionUses: 1
    functionsReached:
    - memcpy
    - X509_NAME_get_entry
    - X509_NAME_ENTRY_get_data
    - X509_NAME_get_index_by_OBJ
    linkageType: ''
    returnType: int
    signature: "X509_NAME_get_text_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj,
      char *buf,\n                              int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - X509_NAME*
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: X509_NAME_entry_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c
    functionUses: 0
    functionsReached:
    - sk_X509_NAME_ENTRY_num
    linkageType: ''
    returnType: int
    signature: X509_NAME_entry_count(const X509_NAME *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:58,1
    - Dst: X509_NAME_get_index_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - name
    - nid
    - lastpos
    argTypes:
    - X509_NAME*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: X509_NAME_get_index_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - X509_NAME_get_index_by_OBJ
    linkageType: ''
    returnType: int
    signature: X509_NAME_get_index_by_NID(X509_NAME *name, int nid, int lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:69,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:76,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:78,1
    - Dst: OBJ_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - name
    - obj
    - lastpos
    argTypes:
    - X509_NAME*
    - ASN1_OBJECT*
    - int
    constantsTouched: []
    func_position:
      end: 83
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 83
    functionName: X509_NAME_get_index_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c
    functionUses: 2
    functionsReached:
    - STACK_OF
    - sk_X509_NAME_ENTRY_value
    - sk_X509_NAME_ENTRY_num
    - OBJ_cmp
    linkageType: ''
    returnType: int
    signature: X509_NAME_get_index_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj,
      int lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:87,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - name
    - loc
    argTypes:
    - X509_NAME*
    - int
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: X509_NAME_get_entry
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c
    functionUses: 1
    functionsReached:
    - sk_X509_NAME_ENTRY_value
    - sk_X509_NAME_ENTRY_num
    linkageType: ''
    returnType: X509_NAME_ENTRY
    signature: '*X509_NAME_get_entry(const X509_NAME *name, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:98,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:100,1
    - Dst: sk_X509_NAME_ENTRY_delete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:104,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:105,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:112,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:115,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:129,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - name
    - loc
    argTypes:
    - X509_NAME*
    - int
    constantsTouched: []
    func_position:
      end: 131
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 131
    functionName: X509_NAME_delete_entry
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - sk_X509_NAME_ENTRY_value
    - sk_X509_NAME_ENTRY_num
    - sk_X509_NAME_ENTRY_delete
    linkageType: ''
    returnType: X509_NAME_ENTRY
    signature: '*X509_NAME_delete_entry(X509_NAME *name, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_ENTRY_create_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:139,1
    - Dst: X509_NAME_add_entry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:142,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - name
    - obj
    - type
    - bytes
    - len
    - loc
    - set
    argTypes:
    - X509_NAME*
    - ASN1_OBJECT*
    - int
    - unsigned char*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 145
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 145
    functionName: X509_NAME_add_entry_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c
    functionUses: 0
    functionsReached:
    - X509_NAME_add_entry
    - X509_NAME_ENTRY_create_by_OBJ
    - X509_NAME_ENTRY_free
    linkageType: ''
    returnType: int
    signature: "X509_NAME_add_entry_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj,
      int type,\n                               const unsigned char *bytes, int len,
      int loc,\n                               int set)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_ENTRY_create_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:153,1
    - Dst: X509_NAME_add_entry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:156,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - name
    - nid
    - type
    - bytes
    - len
    - loc
    - set
    argTypes:
    - X509_NAME*
    - int
    - int
    - unsigned char*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 159
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 159
    functionName: X509_NAME_add_entry_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c
    functionUses: 1
    functionsReached:
    - X509_NAME_add_entry
    - X509_NAME_ENTRY_create_by_NID
    - X509_NAME_ENTRY_free
    linkageType: ''
    returnType: int
    signature: "X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type,\n                               const
      unsigned char *bytes, int len, int loc,\n                               int
      set)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_ENTRY_create_by_txt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:167,1
    - Dst: X509_NAME_add_entry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:170,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - name
    - field
    - type
    - bytes
    - len
    - loc
    - set
    argTypes:
    - X509_NAME*
    - char*
    - int
    - unsigned char*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 173
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 173
    functionName: X509_NAME_add_entry_by_txt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c
    functionUses: 0
    functionsReached:
    - X509_NAME_add_entry
    - X509_NAME_ENTRY_create_by_txt
    - X509_NAME_ENTRY_free
    linkageType: ''
    returnType: int
    signature: "X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int
      type,\n                               const unsigned char *bytes, int len, int
      loc,\n                               int set)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:184,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:189,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:202,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:209,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:213,1
    - Dst: X509_NAME_ENTRY_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:221,1
    - Dst: sk_X509_NAME_ENTRY_insert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:224,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:225,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:229,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:231,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:235,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 4
    argNames:
    - name
    - ne
    - loc
    - set
    argTypes:
    - X509_NAME*
    - X509_NAME_ENTRY*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 237
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 237
    functionName: X509_NAME_add_entry
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c
    functionUses: 3
    functionsReached:
    - STACK_OF
    - X509_NAME_ENTRY_dup
    - X509_NAME_ENTRY_free
    - sk_X509_NAME_ENTRY_num
    - X509err
    - sk_X509_NAME_ENTRY_value
    - sk_X509_NAME_ENTRY_insert
    linkageType: ''
    returnType: int
    signature: "X509_NAME_add_entry(X509_NAME *name, const X509_NAME_ENTRY *ne, int
      loc,\n                        int set)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:247,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:249,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:251,1
    - Dst: X509_NAME_ENTRY_create_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:254,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - ne
    - field
    - type
    - bytes
    - len
    argTypes:
    - X509_NAME_ENTRY**
    - char*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 257
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 257
    functionName: X509_NAME_ENTRY_create_by_txt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c
    functionUses: 1
    functionsReached:
    - X509_NAME_ENTRY_create_by_OBJ
    - OBJ_txt2obj
    - ERR_add_error_data
    - ASN1_OBJECT_free
    - X509err
    linkageType: ''
    returnType: X509_NAME_ENTRY
    signature: "*X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne,\n                                               const
      char *field, int type,\n                                               const
      unsigned char *bytes,\n                                               int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:267,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:269,1
    - Dst: X509_NAME_ENTRY_create_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:272,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ne
    - nid
    - type
    - bytes
    - len
    argTypes:
    - X509_NAME_ENTRY**
    - int
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 275
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 275
    functionName: X509_NAME_ENTRY_create_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c
    functionUses: 1
    functionsReached:
    - X509err
    - ASN1_OBJECT_free
    - OBJ_nid2obj
    - X509_NAME_ENTRY_create_by_OBJ
    linkageType: ''
    returnType: X509_NAME_ENTRY
    signature: "*X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid,\n                                               int
      type,\n                                               const unsigned char *bytes,\n
      \                                              int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_ENTRY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:285,1
    - Dst: X509_NAME_ENTRY_set_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:290,1
    - Dst: X509_NAME_ENTRY_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:292,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:300,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 5
    argNames:
    - ne
    - obj
    - type
    - bytes
    - len
    argTypes:
    - X509_NAME_ENTRY**
    - ASN1_OBJECT*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 302
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 302
    functionName: X509_NAME_ENTRY_create_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c
    functionUses: 3
    functionsReached:
    - X509_NAME_ENTRY_set_object
    - X509_NAME_ENTRY_free
    - X509_NAME_ENTRY_set_data
    - X509_NAME_ENTRY_new
    linkageType: ''
    returnType: X509_NAME_ENTRY
    signature: "*X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne,\n                                               const
      ASN1_OBJECT *obj, int type,\n                                               const
      unsigned char *bytes,\n                                               int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:307,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:311,1
    - Dst: OBJ_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ne
    - obj
    argTypes:
    - X509_NAME_ENTRY*
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 314
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 314
    functionName: X509_NAME_ENTRY_set_object
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c
    functionUses: 1
    functionsReached:
    - ASN1_OBJECT_free
    - X509err
    - OBJ_dup
    linkageType: ''
    returnType: int
    signature: X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, const ASN1_OBJECT *obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_set_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:324,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:326,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:328,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:329,1
    - Dst: ASN1_PRINTABLE_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c:334,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 4
    argNames:
    - ne
    - type
    - bytes
    - len
    argTypes:
    - X509_NAME_ENTRY*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 339
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 339
    functionName: X509_NAME_ENTRY_set_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c
    functionUses: 1
    functionsReached:
    - ASN1_STRING_set
    - OBJ_obj2nid
    - strlen
    - ASN1_PRINTABLE_type
    - ASN1_STRING_set_by_NID
    linkageType: ''
    returnType: int
    signature: "X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type,\n                             const
      unsigned char *bytes, int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ne
    argTypes:
    - X509_NAME_ENTRY*
    constantsTouched: []
    func_position:
      end: 346
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 346
    functionName: X509_NAME_ENTRY_get_object
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: '*X509_NAME_ENTRY_get_object(const X509_NAME_ENTRY *ne)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ne
    argTypes:
    - X509_NAME_ENTRY*
    constantsTouched: []
    func_position:
      end: 353
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 353
    functionName: X509_NAME_ENTRY_get_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ASN1_STRING
    signature: '*X509_NAME_ENTRY_get_data(const X509_NAME_ENTRY *ne)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ne
    argTypes:
    - X509_NAME_ENTRY*
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: X509_NAME_ENTRY_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_r2x.c:27,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_r2x.c:28,1
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_r2x.c:35,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_r2x.c:36,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_r2x.c:38,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_r2x.c:44,1
    - Dst: X509_set_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_r2x.c:45,1
    - Dst: X509_set_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_r2x.c:47,1
    - Dst: X509_gmtime_adj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_r2x.c:50,1
    - Dst: X509_gmtime_adj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_r2x.c:52,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_r2x.c:56,1
    - Dst: X509_set_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_r2x.c:57,1
    - Dst: X509_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_r2x.c:60,1
    - Dst: EVP_md5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_r2x.c:60,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_r2x.c:65,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 3
    argNames:
    - r
    - days
    - pkey
    argTypes:
    - X509_REQ*
    - int
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 67
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 67
    functionName: X509_REQ_to_X509
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_r2x.c
    functionUses: 0
    functionsReached:
    - X509_set_subject_name
    - X509_REQ_get_subject_name
    - ASN1_INTEGER_new
    - ASN1_INTEGER_set
    - X509_set_issuer_name
    - X509_gmtime_adj
    - X509_new
    - X509_sign
    - EVP_md5
    - X509_set_pubkey
    - X509_free
    - X509err
    - sk_X509_ATTRIBUTE_num
    - X509_REQ_get0_pubkey
    linkageType: ''
    returnType: X509
    signature: '*X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509type.c:25,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509type.c:32,1
    - Dst: X509_get_signature_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509type.c:56,1
    - Dst: OBJ_find_sigid_algs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509type.c:57,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 2
    argNames:
    - x
    - pkey
    argTypes:
    - X509*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 77
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 77
    functionName: X509_certificate_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509type.c
    functionUses: 0
    functionsReached:
    - OBJ_find_sigid_algs
    - EVP_PKEY_id
    - X509_get0_pubkey
    - X509_get_signature_nid
    linkageType: ''
    returnType: int
    signature: X509_certificate_type(const X509 *x, const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:25,1
    - Dst: ASN1_item_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:27,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - r
    argTypes:
    - X509*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: X509_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - X509_ALGOR_cmp
    - ASN1_item_verify
    linkageType: ''
    returnType: int
    signature: X509_verify(X509 *a, EVP_PKEY *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:33,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - r
    argTypes:
    - X509_REQ*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: X509_REQ_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_verify
    linkageType: ''
    returnType: int
    signature: X509_REQ_verify(X509_REQ *a, EVP_PKEY *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:39,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - r
    argTypes:
    - NETSCAPE_SPKI*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: NETSCAPE_SPKI_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_verify
    linkageType: ''
    returnType: int
    signature: NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:46,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - x
    - pkey
    - md
    argTypes:
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: X509_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 7
    functionsReached:
    - ASN1_item_sign
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_sign_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:54,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - ctx
    argTypes:
    - X509*
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: X509_sign_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_item_sign_ctx
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_REQ_CTX_nbio_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:62,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rctx
    - pcert
    argTypes:
    - OCSP_REQ_CTX*
    - X509**
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: X509_http_nbio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - OCSP_REQ_CTX_nbio_d2i
    linkageType: ''
    returnType: int
    signature: X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:69,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - pkey
    - md
    argTypes:
    - X509_REQ*
    - EVP_PKEY*
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: X509_REQ_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_item_sign
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_sign_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:75,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - ctx
    argTypes:
    - X509_REQ*
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: X509_REQ_sign_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_item_sign_ctx
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:83,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - x
    - pkey
    - md
    argTypes:
    - X509_CRL*
    - EVP_PKEY*
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: X509_CRL_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_item_sign
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_sign_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:90,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - ctx
    argTypes:
    - X509_CRL*
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: X509_CRL_sign_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_item_sign_ctx
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_REQ_CTX_nbio_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:98,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rctx
    - pcrl
    argTypes:
    - OCSP_REQ_CTX*
    - X509_CRL**
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: X509_CRL_http_nbio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - OCSP_REQ_CTX_nbio_d2i
    linkageType: ''
    returnType: int
    signature: X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:106,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - pkey
    - md
    argTypes:
    - NETSCAPE_SPKI*
    - EVP_PKEY*
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: NETSCAPE_SPKI_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_item_sign
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:113,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - x509
    argTypes:
    - FILE*
    - X509**
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: d2i_X509_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_fp
    linkageType: ''
    returnType: X509
    signature: '*d2i_X509_fp(FILE *fp, X509 **x509)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:118,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - x509
    argTypes:
    - FILE*
    - X509*
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: i2d_X509_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 1
    functionsReached:
    - ASN1_item_i2d_fp
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: i2d_X509_fp(FILE *fp, X509 *x509)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:124,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - x509
    argTypes:
    - BIO*
    - X509**
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: d2i_X509_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 1
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio
    linkageType: ''
    returnType: X509
    signature: '*d2i_X509_bio(BIO *bp, X509 **x509)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:129,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - x509
    argTypes:
    - BIO*
    - X509*
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: i2d_X509_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: i2d_X509_bio(BIO *bp, X509 *x509)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:135,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - crl
    argTypes:
    - FILE*
    - X509_CRL**
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: d2i_X509_CRL_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_fp
    linkageType: ''
    returnType: X509_CRL
    signature: '*d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:140,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - crl
    argTypes:
    - FILE*
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: i2d_X509_CRL_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_item_i2d_fp
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: i2d_X509_CRL_fp(FILE *fp, X509_CRL *crl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:146,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - crl
    argTypes:
    - BIO*
    - X509_CRL**
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: d2i_X509_CRL_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio
    linkageType: ''
    returnType: X509_CRL
    signature: '*d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:151,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - crl
    argTypes:
    - BIO*
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: i2d_X509_CRL_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: i2d_X509_CRL_bio(BIO *bp, X509_CRL *crl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:157,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - p7
    argTypes:
    - FILE*
    - PKCS7**
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: d2i_PKCS7_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_fp
    linkageType: ''
    returnType: PKCS7
    signature: '*d2i_PKCS7_fp(FILE *fp, PKCS7 **p7)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:162,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - p7
    argTypes:
    - FILE*
    - PKCS7*
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: i2d_PKCS7_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_item_i2d_fp
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: i2d_PKCS7_fp(FILE *fp, PKCS7 *p7)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:168,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - p7
    argTypes:
    - BIO*
    - PKCS7**
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: d2i_PKCS7_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio
    linkageType: ''
    returnType: PKCS7
    signature: '*d2i_PKCS7_bio(BIO *bp, PKCS7 **p7)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:173,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - p7
    argTypes:
    - BIO*
    - PKCS7*
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: i2d_PKCS7_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: i2d_PKCS7_bio(BIO *bp, PKCS7 *p7)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:179,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - req
    argTypes:
    - FILE*
    - X509_REQ**
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: d2i_X509_REQ_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_fp
    linkageType: ''
    returnType: X509_REQ
    signature: '*d2i_X509_REQ_fp(FILE *fp, X509_REQ **req)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:184,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - req
    argTypes:
    - FILE*
    - X509_REQ*
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: i2d_X509_REQ_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_item_i2d_fp
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: i2d_X509_REQ_fp(FILE *fp, X509_REQ *req)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:190,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - req
    argTypes:
    - BIO*
    - X509_REQ**
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: d2i_X509_REQ_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio
    linkageType: ''
    returnType: X509_REQ
    signature: '*d2i_X509_REQ_bio(BIO *bp, X509_REQ **req)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:195,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - req
    argTypes:
    - BIO*
    - X509_REQ*
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: i2d_X509_REQ_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: i2d_X509_REQ_bio(BIO *bp, X509_REQ *req)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:203,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - rsa
    argTypes:
    - FILE*
    - RSA**
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: d2i_RSAPrivateKey_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_fp
    linkageType: ''
    returnType: RSA
    signature: '*d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:208,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - rsa
    argTypes:
    - FILE*
    - RSA*
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: i2d_RSAPrivateKey_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_item_i2d_fp
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: i2d_RSAPrivateKey_fp(FILE *fp, RSA *rsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:213,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - rsa
    argTypes:
    - FILE*
    - RSA**
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: d2i_RSAPublicKey_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_fp
    linkageType: ''
    returnType: RSA
    signature: '*d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - rsa
    argTypes:
    - FILE*
    - RSA**
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: d2i_RSA_PUBKEY_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp
    linkageType: ''
    returnType: RSA
    signature: '*d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:225,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - rsa
    argTypes:
    - FILE*
    - RSA*
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: i2d_RSAPublicKey_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_item_i2d_fp
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: i2d_RSAPublicKey_fp(FILE *fp, RSA *rsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - rsa
    argTypes:
    - FILE*
    - RSA*
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: i2d_RSA_PUBKEY_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp
    linkageType: ''
    returnType: int
    signature: i2d_RSA_PUBKEY_fp(FILE *fp, RSA *rsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:236,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - rsa
    argTypes:
    - BIO*
    - RSA**
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: d2i_RSAPrivateKey_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio
    linkageType: ''
    returnType: RSA
    signature: '*d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:241,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - rsa
    argTypes:
    - BIO*
    - RSA*
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: i2d_RSAPrivateKey_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: i2d_RSAPrivateKey_bio(BIO *bp, RSA *rsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:246,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - rsa
    argTypes:
    - BIO*
    - RSA**
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: d2i_RSAPublicKey_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio
    linkageType: ''
    returnType: RSA
    signature: '*d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - rsa
    argTypes:
    - BIO*
    - RSA**
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: d2i_RSA_PUBKEY_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: RSA
    signature: '*d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:256,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - rsa
    argTypes:
    - BIO*
    - RSA*
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: i2d_RSAPublicKey_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: i2d_RSAPublicKey_bio(BIO *bp, RSA *rsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - rsa
    argTypes:
    - BIO*
    - RSA*
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: i2d_RSA_PUBKEY_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - dsa
    argTypes:
    - FILE*
    - DSA**
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: d2i_DSAPrivateKey_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: DSA
    signature: '*d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of_const
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - dsa
    argTypes:
    - FILE*
    - DSA*
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: i2d_DSAPrivateKey_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of_const
    linkageType: ''
    returnType: int
    signature: i2d_DSAPrivateKey_fp(FILE *fp, DSA *dsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - dsa
    argTypes:
    - FILE*
    - DSA**
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: d2i_DSA_PUBKEY_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: DSA
    signature: '*d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - dsa
    argTypes:
    - FILE*
    - DSA*
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: i2d_DSA_PUBKEY_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: i2d_DSA_PUBKEY_fp(FILE *fp, DSA *dsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - dsa
    argTypes:
    - BIO*
    - DSA**
    constantsTouched: []
    func_position:
      end: 291
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 291
    functionName: d2i_DSAPrivateKey_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: DSA
    signature: '*d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of_const
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - dsa
    argTypes:
    - BIO*
    - DSA*
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: i2d_DSAPrivateKey_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of_const
    linkageType: ''
    returnType: int
    signature: i2d_DSAPrivateKey_bio(BIO *bp, DSA *dsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - dsa
    argTypes:
    - BIO*
    - DSA**
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: d2i_DSA_PUBKEY_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: DSA
    signature: '*d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - dsa
    argTypes:
    - BIO*
    - DSA*
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: i2d_DSA_PUBKEY_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - eckey
    argTypes:
    - FILE*
    - EC_KEY**
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: d2i_EC_PUBKEY_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: EC_KEY
    signature: '*d2i_EC_PUBKEY_fp(FILE *fp, EC_KEY **eckey)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - eckey
    argTypes:
    - FILE*
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: i2d_EC_PUBKEY_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: i2d_EC_PUBKEY_fp(FILE *fp, EC_KEY *eckey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - eckey
    argTypes:
    - FILE*
    - EC_KEY**
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: d2i_ECPrivateKey_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: EC_KEY
    signature: '*d2i_ECPrivateKey_fp(FILE *fp, EC_KEY **eckey)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - eckey
    argTypes:
    - FILE*
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: i2d_ECPrivateKey_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: i2d_ECPrivateKey_fp(FILE *fp, EC_KEY *eckey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - eckey
    argTypes:
    - BIO*
    - EC_KEY**
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: d2i_EC_PUBKEY_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: EC_KEY
    signature: '*d2i_EC_PUBKEY_bio(BIO *bp, EC_KEY **eckey)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - ecdsa
    argTypes:
    - BIO*
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: i2d_EC_PUBKEY_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: i2d_EC_PUBKEY_bio(BIO *bp, EC_KEY *ecdsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - eckey
    argTypes:
    - BIO*
    - EC_KEY**
    constantsTouched: []
    func_position:
      end: 345
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 345
    functionName: d2i_ECPrivateKey_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: EC_KEY
    signature: '*d2i_ECPrivateKey_bio(BIO *bp, EC_KEY **eckey)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - eckey
    argTypes:
    - BIO*
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 350
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 350
    functionName: i2d_ECPrivateKey_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 1
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: i2d_ECPrivateKey_bio(BIO *bp, EC_KEY *eckey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey_bitstr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:357,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - data
    - type
    - md
    - len
    argTypes:
    - X509*
    - EVP_MD*
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 361
      start: 353
    functionDepth: 5
    functionLinenumber: 353
    functionLinenumberEnd: 361
    functionName: X509_pubkey_digest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - EVP_Digest
    - X509_get0_pubkey_bitstr
    linkageType: ''
    returnType: int
    signature: "X509_pubkey_digest(const X509 *data, const EVP_MD *type,\n                       unsigned
      char *md, unsigned int *len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:366,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:370,1
    - Dst: ASN1_item_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:373,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:374,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - data
    - type
    - md
    - len
    argTypes:
    - X509*
    - EVP_MD*
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 375
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 375
    functionName: X509_digest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 1
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_digest
    - memcpy
    - EVP_sha1
    linkageType: ''
    returnType: int
    signature: "X509_digest(const X509 *data, const EVP_MD *type, unsigned char *md,\n
      \               unsigned int *len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:380,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:384,1
    - Dst: ASN1_item_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:387,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - data
    - type
    - md
    - len
    argTypes:
    - X509_CRL*
    - EVP_MD*
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 389
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 389
    functionName: X509_CRL_digest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_digest
    - memcpy
    - EVP_sha1
    linkageType: ''
    returnType: int
    signature: "X509_CRL_digest(const X509_CRL *data, const EVP_MD *type,\n                    unsigned
      char *md, unsigned int *len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:394,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - type
    - md
    - len
    argTypes:
    - X509_REQ*
    - EVP_MD*
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 396
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 396
    functionName: X509_REQ_digest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_digest
    linkageType: ''
    returnType: int
    signature: "X509_REQ_digest(const X509_REQ *data, const EVP_MD *type,\n                    unsigned
      char *md, unsigned int *len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:401,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - type
    - md
    - len
    argTypes:
    - X509_NAME*
    - EVP_MD*
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 403
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 403
    functionName: X509_NAME_digest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_digest
    linkageType: ''
    returnType: int
    signature: "X509_NAME_digest(const X509_NAME *data, const EVP_MD *type,\n                     unsigned
      char *md, unsigned int *len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:409,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - type
    - md
    - len
    argTypes:
    - PKCS7_ISSUER_AND_SERIAL*
    - EVP_MD*
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 411
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 411
    functionName: PKCS7_ISSUER_AND_SERIAL_digest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_digest
    linkageType: ''
    returnType: int
    signature: "PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data,\n                                   const
      EVP_MD *type, unsigned char *md,\n                                   unsigned
      int *len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - p8
    argTypes:
    - FILE*
    - X509_SIG**
    constantsTouched: []
    func_position:
      end: 417
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 417
    functionName: d2i_PKCS8_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: X509_SIG
    signature: '*d2i_PKCS8_fp(FILE *fp, X509_SIG **p8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - p8
    argTypes:
    - FILE*
    - X509_SIG*
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: i2d_PKCS8_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: i2d_PKCS8_fp(FILE *fp, X509_SIG *p8)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - p8
    argTypes:
    - BIO*
    - X509_SIG**
    constantsTouched: []
    func_position:
      end: 428
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 428
    functionName: d2i_PKCS8_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 1
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: X509_SIG
    signature: '*d2i_PKCS8_bio(BIO *bp, X509_SIG **p8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - p8
    argTypes:
    - BIO*
    - X509_SIG*
    constantsTouched: []
    func_position:
      end: 433
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 433
    functionName: i2d_PKCS8_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 1
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: i2d_PKCS8_bio(BIO *bp, X509_SIG *p8)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - p8inf
    argTypes:
    - FILE*
    - PKCS8_PRIV_KEY_INFO**
    constantsTouched: []
    func_position:
      end: 441
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 441
    functionName: d2i_PKCS8_PRIV_KEY_INFO_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: PKCS8_PRIV_KEY_INFO
    signature: "*d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp,\n                                                PKCS8_PRIV_KEY_INFO
      **p8inf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - p8inf
    argTypes:
    - FILE*
    - PKCS8_PRIV_KEY_INFO*
    constantsTouched: []
    func_position:
      end: 447
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 447
    functionName: i2d_PKCS8_PRIV_KEY_INFO_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, PKCS8_PRIV_KEY_INFO *p8inf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY2PKCS8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:453,1
    - Dst: i2d_PKCS8_PRIV_KEY_INFO_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:456,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fp
    - key
    argTypes:
    - FILE*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 459
      start: 449
    functionDepth: 2
    functionLinenumber: 449
    functionLinenumberEnd: 459
    functionName: i2d_PKCS8PrivateKeyInfo_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY2PKCS8
    - i2d_PKCS8_PRIV_KEY_INFO_fp
    - PKCS8_PRIV_KEY_INFO_free
    linkageType: ''
    returnType: int
    signature: i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, EVP_PKEY *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - pkey
    argTypes:
    - FILE*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 464
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 464
    functionName: i2d_PrivateKey_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: i2d_PrivateKey_fp(FILE *fp, EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - EVP_PKEY**
    constantsTouched: []
    func_position:
      end: 469
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 469
    functionName: d2i_PrivateKey_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - pkey
    argTypes:
    - FILE*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: i2d_PUBKEY_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: i2d_PUBKEY_fp(FILE *fp, EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - EVP_PKEY**
    constantsTouched: []
    func_position:
      end: 479
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 479
    functionName: d2i_PUBKEY_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - p8inf
    argTypes:
    - BIO*
    - PKCS8_PRIV_KEY_INFO**
    constantsTouched: []
    func_position:
      end: 488
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 488
    functionName: d2i_PKCS8_PRIV_KEY_INFO_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: PKCS8_PRIV_KEY_INFO
    signature: "*d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *bp,\n                                                 PKCS8_PRIV_KEY_INFO
      **p8inf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - p8inf
    argTypes:
    - BIO*
    - PKCS8_PRIV_KEY_INFO*
    constantsTouched: []
    func_position:
      end: 494
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 494
    functionName: i2d_PKCS8_PRIV_KEY_INFO_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 2
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, PKCS8_PRIV_KEY_INFO *p8inf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY2PKCS8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:500,1
    - Dst: i2d_PKCS8_PRIV_KEY_INFO_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:503,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - bp
    - key
    argTypes:
    - BIO*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 506
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 506
    functionName: i2d_PKCS8PrivateKeyInfo_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY2PKCS8
    - i2d_PKCS8_PRIV_KEY_INFO_bio
    - PKCS8_PRIV_KEY_INFO_free
    linkageType: ''
    returnType: int
    signature: i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, EVP_PKEY *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - pkey
    argTypes:
    - BIO*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 511
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 511
    functionName: i2d_PrivateKey_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: i2d_PrivateKey_bio(BIO *bp, EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - EVP_PKEY**
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: d2i_PrivateKey_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 1
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - pkey
    argTypes:
    - BIO*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 521
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 521
    functionName: i2d_PUBKEY_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: i2d_PUBKEY_bio(BIO *bp, EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - EVP_PKEY**
    constantsTouched: []
    func_position:
      end: 526
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 526
    functionName: d2i_PUBKEY_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
    functionUses: 2
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_TRUST**
    - X509_TRUST**
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: tr_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: tr_cmp(const X509_TRUST *const *a, const X509_TRUST *const *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: "(*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int,
      X509 *,\n                                                                int)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int, X509
      *,\n                                                                int)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: obj_trust
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:72,1
    - Dst: X509_TRUST_get_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:74,1
    - Dst: default_trust
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:76,1
    - Dst: X509_TRUST_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:77,1
    - Dst: X509_TRUST*::check_trust
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - x
    - id
    - flags
    argTypes:
    - X509*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 79
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 79
    functionName: X509_check_trust
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached:
    - X509_TRUST_get_by_id
    - obj_trust
    - default_trust
    - X509_TRUST_get0
    - X509_TRUST*::check_trust
    linkageType: ''
    returnType: int
    signature: X509_check_trust(X509 *x, int id, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_TRUST_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: X509_TRUST_get_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached:
    - sk_X509_TRUST_num
    linkageType: ''
    returnType: int
    signature: X509_TRUST_get_count(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_TRUST_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: X509_TRUST_get0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c
    functionUses: 1
    functionsReached:
    - sk_X509_TRUST_value
    linkageType: ''
    returnType: X509_TRUST
    signature: '*X509_TRUST_get0(int idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_TRUST_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 110
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 110
    functionName: X509_TRUST_get_by_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c
    functionUses: 1
    functionsReached:
    - sk_X509_TRUST_find
    linkageType: ''
    returnType: int
    signature: X509_TRUST_get_by_id(int id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_TRUST_get_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:114,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - t
    - trust
    argTypes:
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: X509_TRUST_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached:
    - X509_TRUST_get_by_id
    - X509err
    linkageType: ''
    returnType: int
    signature: X509_TRUST_set(int *t, int trust)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_TRUST_get_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:134,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:137,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:138,1
    - Dst: X509_TRUST_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:143,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:147,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:149,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:150,1
    - Dst: sk_X509_TRUST_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:166,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:167,1
    - Dst: sk_X509_TRUST_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:170,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:171,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:178,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:179,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 5
    argNames:
    - id
    - flags
    - name
    - arg1
    - arg2
    argTypes:
    - int
    - int
    - char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 182
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 182
    functionName: X509_TRUST_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached:
    - sk_X509_TRUST_push
    - X509_TRUST_get_by_id
    - sk_X509_TRUST_new
    - OPENSSL_malloc
    - OPENSSL_strdup
    - OPENSSL_free
    - X509_TRUST_get0
    - X509err
    linkageType: ''
    returnType: int
    signature: "X509_TRUST_add(int id, int flags, int (*ck) (X509_TRUST *, X509 *,
      int),\n                   const char *name, int arg1, void *arg2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:190,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - X509_TRUST*
    constantsTouched: []
    func_position:
      end: 193
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 193
    functionName: trtable_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: trtable_free(X509_TRUST *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_TRUST_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: X509_TRUST_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached:
    - sk_X509_TRUST_pop_free
    linkageType: ''
    returnType: void
    signature: X509_TRUST_cleanup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xp
    argTypes:
    - X509_TRUST*
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: X509_TRUST_get_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: X509_TRUST_get_flags(const X509_TRUST *xp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xp
    argTypes:
    - X509_TRUST*
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: X509_TRUST_get0_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*X509_TRUST_get0_name(const X509_TRUST *xp)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xp
    argTypes:
    - X509_TRUST*
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: X509_TRUST_get_trust
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: X509_TRUST_get_trust(const X509_TRUST *xp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: obj_trust
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - trust
    - x
    - flags
    argTypes:
    - X509_TRUST*
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 226
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 226
    functionName: trust_1oidany
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached:
    - obj_trust
    linkageType: ''
    returnType: int
    signature: trust_1oidany(X509_TRUST *trust, X509 *x, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: obj_trust
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - trust
    - x
    - flags
    argTypes:
    - X509_TRUST*
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 237
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 237
    functionName: trust_1oid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached:
    - obj_trust
    linkageType: ''
    returnType: int
    signature: trust_1oid(X509_TRUST *trust, X509 *x, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - trust
    - x
    - flags
    argTypes:
    - X509_TRUST*
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 247
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 247
    functionName: trust_compat
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c
    functionUses: 0
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: int
    signature: trust_compat(X509_TRUST *trust, X509 *x, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:255,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:256,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:266,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:267,1
    - Dst: trust_compat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c:297,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 17
    argCount: 3
    argNames:
    - id
    - x
    - flags
    argTypes:
    - int
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 298
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 298
    functionName: obj_trust
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c
    functionUses: 3
    functionsReached:
    - sk_ASN1_OBJECT_value
    - sk_ASN1_OBJECT_num
    - trust_compat
    linkageType: ''
    returnType: int
    signature: obj_trust(int id, X509 *x, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 151
    argCount: 1
    argNames:
    - n
    argTypes:
    - long
    constantsTouched: []
    func_position:
      end: 177
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 177
    functionName: X509_verify_cert_error_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_txt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*X509_verify_cert_error_string(long n)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: X509_CRL_get_ext_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: X509_CRL_get_ext_count(const X509_CRL *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - X509_CRL*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: X509_CRL_get_ext_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: X509_CRL_get_ext_by_NID(const X509_CRL *x, int nid, int lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - obj
    - lastpos
    argTypes:
    - X509_CRL*
    - ASN1_OBJECT*
    - int
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: X509_CRL_get_ext_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: "X509_CRL_get_ext_by_OBJ(const X509_CRL *x, const ASN1_OBJECT *obj,\n
      \                           int lastpos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - crit
    - lastpos
    argTypes:
    - X509_CRL*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: X509_CRL_get_ext_by_critical
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: X509_CRL_get_ext_by_critical(const X509_CRL *x, int crit, int lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - X509_CRL*
    - int
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: X509_CRL_get_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*X509_CRL_get_ext(const X509_CRL *x, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - X509_CRL*
    - int
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: X509_CRL_delete_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*X509_CRL_delete_ext(X509_CRL *x, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x
    - nid
    - crit
    - idx
    argTypes:
    - X509_CRL*
    - int
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: X509_CRL_get_ext_d2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: '*X509_CRL_get_ext_d2i(const X509_CRL *x, int nid, int *crit, int *idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add1_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - x
    - nid
    - value
    - crit
    - flags
    argTypes:
    - X509_CRL*
    - int
    - void*
    - int
    - unsigned long
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: X509_CRL_add1_ext_i2d
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_add1_i2d
    linkageType: ''
    returnType: int
    signature: "X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value, int crit,\n
      \                         unsigned long flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - ex
    - loc
    argTypes:
    - X509_CRL*
    - X509_EXTENSION*
    - int
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: X509_CRL_add_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: X509_get_ext_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: X509_get_ext_count(const X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - X509*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: X509_get_ext_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 1
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: X509_get_ext_by_NID(const X509 *x, int nid, int lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - obj
    - lastpos
    argTypes:
    - X509*
    - ASN1_OBJECT*
    - int
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: X509_get_ext_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: X509_get_ext_by_OBJ(const X509 *x, const ASN1_OBJECT *obj, int lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - crit
    - lastpos
    argTypes:
    - X509*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: X509_get_ext_by_critical
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: X509_get_ext_by_critical(const X509 *x, int crit, int lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: X509_get_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*X509_get_ext(const X509 *x, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: X509_delete_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 1
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*X509_delete_ext(X509 *x, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - ex
    - loc
    argTypes:
    - X509*
    - X509_EXTENSION*
    - int
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: X509_add_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 1
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x
    - nid
    - crit
    - idx
    argTypes:
    - X509*
    - int
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: X509_get_ext_d2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 1
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: '*X509_get_ext_d2i(const X509 *x, int nid, int *crit, int *idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add1_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - x
    - nid
    - value
    - crit
    - flags
    argTypes:
    - X509*
    - int
    - void*
    - int
    - unsigned long
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: X509_add1_ext_i2d
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 2
    functionsReached:
    - X509V3_add1_i2d
    linkageType: ''
    returnType: int
    signature: "X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit,\n                      unsigned
      long flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_REVOKED*
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: X509_REVOKED_get_ext_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: X509_REVOKED_get_ext_count(const X509_REVOKED *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - X509_REVOKED*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: X509_REVOKED_get_ext_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: X509_REVOKED_get_ext_by_NID(const X509_REVOKED *x, int nid, int lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - obj
    - lastpos
    argTypes:
    - X509_REVOKED*
    - ASN1_OBJECT*
    - int
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: X509_REVOKED_get_ext_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: "X509_REVOKED_get_ext_by_OBJ(const X509_REVOKED *x, const ASN1_OBJECT
      *obj,\n                                int lastpos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - crit
    - lastpos
    argTypes:
    - X509_REVOKED*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: X509_REVOKED_get_ext_by_critical
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: X509_REVOKED_get_ext_by_critical(const X509_REVOKED *x, int crit, int
      lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - X509_REVOKED*
    - int
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: X509_REVOKED_get_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*X509_REVOKED_get_ext(const X509_REVOKED *x, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - X509_REVOKED*
    - int
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: X509_REVOKED_delete_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*X509_REVOKED_delete_ext(X509_REVOKED *x, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - ex
    - loc
    argTypes:
    - X509_REVOKED*
    - X509_EXTENSION*
    - int
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: X509_REVOKED_add_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x
    - nid
    - crit
    - idx
    argTypes:
    - X509_REVOKED*
    - int
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: X509_REVOKED_get_ext_d2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: '*X509_REVOKED_get_ext_d2i(const X509_REVOKED *x, int nid, int *crit,
      int *idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add1_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - x
    - nid
    - value
    - crit
    - flags
    argTypes:
    - X509_REVOKED*
    - int
    - void*
    - int
    - unsigned long
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: X509_REVOKED_add1_ext_i2d
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_add1_i2d
    linkageType: ''
    returnType: int
    signature: "X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value, int
      crit,\n                              unsigned long flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509rset.c:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - x
    - version
    argTypes:
    - X509_REQ*
    - long
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: X509_REQ_set_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509rset.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: int
    signature: X509_REQ_set_version(X509_REQ *x, long version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509rset.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - x
    - name
    argTypes:
    - X509_REQ*
    - X509_NAME*
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: X509_REQ_set_subject_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509rset.c
    functionUses: 0
    functionsReached:
    - X509_NAME_set
    linkageType: ''
    returnType: int
    signature: X509_REQ_set_subject_name(X509_REQ *x, X509_NAME *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509rset.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - x
    - pkey
    argTypes:
    - X509_REQ*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: X509_REQ_set_pubkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509rset.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_set
    linkageType: ''
    returnType: int
    signature: X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: X509_get_default_private_dir
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*X509_get_default_private_dir(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: X509_get_default_cert_area
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*X509_get_default_cert_area(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: X509_get_default_cert_dir
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*X509_get_default_cert_dir(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: X509_get_default_cert_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*X509_get_default_cert_file(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: X509_get_default_cert_dir_env
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*X509_get_default_cert_dir_env(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: X509_get_default_cert_file_env
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*X509_get_default_cert_file_env(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_obj.c:42,1
    - Dst: BUF_MEM_grow
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_obj.c:44,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_obj.c:54,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_obj.c:56,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_obj.c:63,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_obj.c:64,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_obj.c:65,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_obj.c:66,1
    - Dst: i2t_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_obj.c:67,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_obj.c:70,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_obj.c:75,1
    - Dst: ascii2ebcdic
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_obj.c:87,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_obj.c:124,1
    - Dst: BUF_MEM_grow
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_obj.c:128,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_obj.c:136,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_obj.c:171,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_obj.c:178,1
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_obj.c:180,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 127
    argCount: 3
    argNames:
    - a
    - buf
    - len
    argTypes:
    - X509_NAME*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 182
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 182
    functionName: X509_NAME_oneline
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_obj.c
    functionUses: 0
    functionsReached:
    - ascii2ebcdic
    - OBJ_obj2nid
    - BUF_MEM_grow
    - strncpy
    - i2t_ASN1_OBJECT
    - OBJ_nid2sn
    - strlen
    - memcpy
    - sk_X509_NAME_ENTRY_num
    - OPENSSL_free
    - BUF_MEM_new
    - X509err
    - sk_X509_NAME_ENTRY_value
    - BUF_MEM_free
    linkageType: ''
    returnType: char
    signature: '*X509_NAME_oneline(const X509_NAME *a, char *buf, int len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:26,1
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509*
    - X509*
    constantsTouched: []
    func_position:
      end: 30
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 30
    functionName: X509_issuer_and_serial_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_cmp
    - X509_NAME_cmp
    linkageType: ''
    returnType: int
    signature: X509_issuer_and_serial_cmp(const X509 *a, const X509 *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:36,1
    - Dst: X509_NAME_oneline
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:42,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:43,1
    - Dst: EVP_md5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:43,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:45,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:45,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:47,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:48,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:52,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:58,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 60
      start: 33
    functionDepth: 4
    functionLinenumber: 33
    functionLinenumberEnd: 60
    functionName: X509_issuer_and_serial_hash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_DigestUpdate
    - EVP_MD_CTX_new
    - X509_NAME_oneline
    - strlen
    - EVP_MD_CTX_free
    - OPENSSL_free
    - EVP_md5
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: unsigned long
    signature: X509_issuer_and_serial_hash(X509 *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509*
    - X509*
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: X509_issuer_name_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_NAME_cmp
    linkageType: ''
    returnType: int
    signature: X509_issuer_name_cmp(const X509 *a, const X509 *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509*
    - X509*
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: X509_subject_name_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_NAME_cmp
    linkageType: ''
    returnType: int
    signature: X509_subject_name_cmp(const X509 *a, const X509 *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_CRL*
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: X509_CRL_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_NAME_cmp
    linkageType: ''
    returnType: int
    signature: X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_CRL*
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: X509_CRL_match
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: X509_CRL_match(const X509_CRL *a, const X509_CRL *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: X509_get_issuer_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: X509_NAME
    signature: '*X509_get_issuer_name(const X509 *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_hash
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: X509_issuer_name_hash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_NAME_hash
    linkageType: ''
    returnType: unsigned long
    signature: X509_issuer_name_hash(X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_hash_old
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: X509_issuer_name_hash_old
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_NAME_hash_old
    linkageType: ''
    returnType: unsigned long
    signature: X509_issuer_name_hash_old(X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: X509_get_subject_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: X509_NAME
    signature: '*X509_get_subject_name(const X509 *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: X509_get_serialNumber
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: '*X509_get_serialNumber(X509 *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: X509_get0_serialNumber
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: '*X509_get0_serialNumber(const X509 *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_hash
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: X509_subject_name_hash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_NAME_hash
    linkageType: ''
    returnType: unsigned long
    signature: X509_subject_name_hash(X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_hash_old
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: X509_subject_name_hash_old
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_NAME_hash_old
    linkageType: ''
    returnType: unsigned long
    signature: X509_subject_name_hash_old(X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:139,1
    - Dst: X509_check_purpose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:140,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:142,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509*
    - X509*
    constantsTouched: []
    func_position:
      end: 155
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 155
    functionName: X509_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 1
    functionsReached:
    - memcmp
    - X509_check_purpose
    linkageType: ''
    returnType: int
    signature: X509_cmp(const X509 *a, const X509 *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509_NAME
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:164,1
    - Dst: i2d_X509_NAME
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:170,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:180,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_NAME*
    - X509_NAME*
    constantsTouched: []
    func_position:
      end: 182
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 182
    functionName: X509_NAME_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 5
    functionsReached:
    - i2d_X509_NAME
    - memcmp
    linkageType: ''
    returnType: int
    signature: X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509_NAME
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:190,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:191,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_NAME*
    constantsTouched: []
    func_position:
      end: 199
      start: 184
    functionDepth: 5
    functionLinenumber: 184
    functionLinenumberEnd: 199
    functionName: X509_NAME_hash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 2
    functionsReached:
    - EVP_Digest
    - i2d_X509_NAME
    - EVP_sha1
    linkageType: ''
    returnType: unsigned long
    signature: X509_NAME_hash(X509_NAME *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:209,1
    - Dst: i2d_X509_NAME
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:217,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:218,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:219,1
    - Dst: EVP_md5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:219,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:220,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:221,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_NAME*
    constantsTouched: []
    func_position:
      end: 228
      start: 207
    functionDepth: 4
    functionLinenumber: 207
    functionLinenumberEnd: 228
    functionName: X509_NAME_hash_old
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 2
    functionsReached:
    - EVP_DigestFinal_ex
    - i2d_X509_NAME
    - EVP_DigestUpdate
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - EVP_MD_CTX_set_flags
    - EVP_md5
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: unsigned long
    signature: X509_NAME_hash_old(X509_NAME *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 270
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 270
    functionName: X509_get0_pubkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 2
    functionsReached:
    - X509_PUBKEY_get0
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*X509_get0_pubkey(const X509 *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 277
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 277
    functionName: X509_get_pubkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 2
    functionsReached:
    - X509_PUBKEY_get
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*X509_get_pubkey(X509 *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:284,1
    - Dst: EVP_PKEY_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:287,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:295,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:298,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:301,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - x
    - k
    argTypes:
    - X509*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 306
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 306
    functionName: X509_check_private_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 3
    functionsReached:
    - X509err
    - X509_get0_pubkey
    - EVP_PKEY_cmp
    linkageType: ''
    returnType: int
    signature: X509_check_private_key(const X509 *x, const EVP_PKEY *k)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:320,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:321,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:321,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:324,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 3
    argNames:
    - pkey
    - sign_nid
    - pflags
    argTypes:
    - EVP_PKEY*
    - int
    - unsigned long*
    constantsTouched: []
    func_position:
      end: 345
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 345
    functionName: check_suite_b
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get_curve_name
    - EC_KEY_get0_group
    - EVP_PKEY_id
    - EVP_PKEY_get0_EC_KEY
    linkageType: ''
    returnType: int
    signature: check_suite_b(EVP_PKEY *pkey, int sign_nid, unsigned long *pflags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:359,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:364,1
    - Dst: check_suite_b
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:373,1
    - Dst: X509_get_version
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:375,1
    - Dst: check_suite_b
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:383,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:389,1
    - Dst: X509_get_signature_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:390,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:391,1
    - Dst: X509_get_version
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:392,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:396,1
    - Dst: check_suite_b
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:397,1
    - Dst: check_suite_b
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:403,1
    - Dst: X509_get_signature_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:403,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 4
    argNames:
    - perror_depth
    - x
    - chain
    - flags
    argTypes:
    - int*
    - X509*
    - STACK_OF*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 420
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 420
    functionName: X509_chain_check_suiteb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_get_version
    - X509_get0_pubkey
    - sk_X509_num
    - check_suite_b
    - sk_X509_value
    - X509_get_signature_nid
    linkageType: ''
    returnType: int
    signature: "X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509)
      *chain,\n                            unsigned long flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:427,1
    - Dst: check_suite_b
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - crl
    - pk
    - flags
    argTypes:
    - X509_CRL*
    - EVP_PKEY*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 429
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 429
    functionName: X509_CRL_check_suiteb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - check_suite_b
    linkageType: ''
    returnType: int
    signature: X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - perror_depth
    - x
    - chain
    - flags
    argTypes:
    - int*
    - X509*
    - STACK_OF*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 436
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 436
    functionName: X509_chain_check_suiteb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509)
      *chain,\n                            unsigned long flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - crl
    - pk
    - flags
    argTypes:
    - X509_CRL*
    - EVP_PKEY*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 441
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 441
    functionName: X509_CRL_check_suiteb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: X509_trusted
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: X509_trusted(const X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_CERT_AUX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: aux_get
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c
    functionUses: 0
    functionsReached:
    - X509_CERT_AUX_new
    linkageType: ''
    returnType: X509_CERT_AUX
    signature: '*aux_get(X509 *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_UTF8STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c:56,1
    - Dst: aux_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c:60,1
    - Dst: ASN1_UTF8STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c:62,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c:64,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - x
    - name
    - len
    argTypes:
    - X509*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: X509_alias_set1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c
    functionUses: 1
    functionsReached:
    - aux_get
    - ASN1_UTF8STRING_new
    - ASN1_UTF8STRING_free
    - ASN1_STRING_set
    linkageType: ''
    returnType: int
    signature: X509_alias_set1(X509 *x, const unsigned char *name, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c:73,1
    - Dst: aux_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c:77,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c:80,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c:82,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - x
    - id
    - len
    argTypes:
    - X509*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 83
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 83
    functionName: X509_keyid_set1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c
    functionUses: 1
    functionsReached:
    - aux_get
    - ASN1_OCTET_STRING_new
    - ASN1_STRING_set
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: int
    signature: X509_keyid_set1(X509 *x, const unsigned char *id, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - x
    - len
    argTypes:
    - X509*
    - int*
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: X509_alias_get0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: '*X509_alias_get0(X509 *x, int *len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - x
    - len
    argTypes:
    - X509*
    - int*
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: X509_keyid_get0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: '*X509_keyid_get0(X509 *x, int *len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c:108,1
    - Dst: aux_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c:112,1
    - Dst: sk_ASN1_OBJECT_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c:115,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c:117,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c:120,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - x
    - obj
    argTypes:
    - X509*
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 122
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 122
    functionName: X509_add1_trust_object
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c
    functionUses: 0
    functionsReached:
    - aux_get
    - ASN1_OBJECT_free
    - OBJ_dup
    - sk_ASN1_OBJECT_push
    - sk_ASN1_OBJECT_new_null
    linkageType: ''
    returnType: int
    signature: X509_add1_trust_object(X509 *x, const ASN1_OBJECT *obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c:128,1
    - Dst: aux_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c:130,1
    - Dst: sk_ASN1_OBJECT_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c:133,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c:135,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c:137,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - x
    - obj
    argTypes:
    - X509*
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 139
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 139
    functionName: X509_add1_reject_object
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c
    functionUses: 0
    functionsReached:
    - aux_get
    - ASN1_OBJECT_free
    - OBJ_dup
    - sk_ASN1_OBJECT_push
    - sk_ASN1_OBJECT_new_null
    linkageType: ''
    returnType: int
    signature: X509_add1_reject_object(X509 *x, const ASN1_OBJECT *obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: X509_trust_clear
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_OBJECT_pop_free
    linkageType: ''
    returnType: void
    signature: X509_trust_clear(X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: X509_reject_clear
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_OBJECT_pop_free
    linkageType: ''
    returnType: void
    signature: X509_reject_clear(X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:22,1
    - Dst: X509_LOOKUP_METHOD*::new_item
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:27,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - method
    argTypes:
    - X509_LOOKUP_METHOD*
    constantsTouched: []
    func_position:
      end: 32
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 32
    functionName: X509_LOOKUP_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - X509_LOOKUP_METHOD*::new_item
    - OPENSSL_zalloc
    linkageType: ''
    returnType: X509_LOOKUP
    signature: '*X509_LOOKUP_new(X509_LOOKUP_METHOD *method)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_LOOKUP*
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: X509_LOOKUP_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: X509_LOOKUP_free(X509_LOOKUP *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - X509_STORE*
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: X509_STORE_lock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    linkageType: ''
    returnType: int
    signature: X509_STORE_lock(X509_STORE *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - X509_STORE*
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: X509_STORE_unlock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: X509_STORE_unlock(X509_STORE *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP*::method::init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_LOOKUP*
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: X509_LOOKUP_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP*::method::init
    linkageType: ''
    returnType: int
    signature: X509_LOOKUP_init(X509_LOOKUP *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP*::method::shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_LOOKUP*
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: X509_LOOKUP_shutdown
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP*::method::shutdown
    linkageType: ''
    returnType: int
    signature: X509_LOOKUP_shutdown(X509_LOOKUP *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP*::method::ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - cmd
    - argc
    - argl
    - ret
    argTypes:
    - X509_LOOKUP*
    - int
    - char*
    - long
    - char**
    constantsTouched: []
    func_position:
      end: 82
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 82
    functionName: X509_LOOKUP_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP*::method::ctrl
    linkageType: ''
    returnType: int
    signature: "X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, long
      argl,\n                     char **ret)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP*::method::get_by_subject
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - type
    - name
    - ret
    argTypes:
    - X509_LOOKUP*
    - X509_LOOKUP_TYPE
    - X509_NAME*
    - X509_OBJECT*
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: X509_LOOKUP_by_subject
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP*::method::get_by_subject
    linkageType: ''
    returnType: int
    signature: "X509_LOOKUP_by_subject(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,\n
      \                          X509_NAME *name, X509_OBJECT *ret)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP*::method::get_by_issuer_serial
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - type
    - name
    - serial
    - ret
    argTypes:
    - X509_LOOKUP*
    - X509_LOOKUP_TYPE
    - X509_NAME*
    - ASN1_INTEGER*
    - X509_OBJECT*
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: X509_LOOKUP_by_issuer_serial
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP*::method::get_by_issuer_serial
    linkageType: ''
    returnType: int
    signature: "X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,\n
      \                                X509_NAME *name, ASN1_INTEGER *serial,\n                                 X509_OBJECT
      *ret)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP*::method::get_by_fingerprint
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - type
    - bytes
    - len
    - ret
    argTypes:
    - X509_LOOKUP*
    - X509_LOOKUP_TYPE
    - unsigned char*
    - int
    - X509_OBJECT*
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: X509_LOOKUP_by_fingerprint
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP*::method::get_by_fingerprint
    linkageType: ''
    returnType: int
    signature: "X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,\n
      \                              const unsigned char *bytes, int len,\n                               X509_OBJECT
      *ret)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP*::method::get_by_alias
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - type
    - str
    - len
    - ret
    argTypes:
    - X509_LOOKUP*
    - X509_LOOKUP_TYPE
    - char*
    - int
    - X509_OBJECT*
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: X509_LOOKUP_by_alias
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP*::method::get_by_alias
    linkageType: ''
    returnType: int
    signature: "X509_LOOKUP_by_alias(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,\n                         const
      char *str, int len, X509_OBJECT *ret)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_subject_name_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:130,1
    - Dst: X509_CRL_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_OBJECT**
    - X509_OBJECT**
    constantsTouched: []
    func_position:
      end: 140
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 140
    functionName: x509_object_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_subject_name_cmp
    - X509_CRL_cmp
    linkageType: ''
    returnType: int
    signature: "x509_object_cmp(const X509_OBJECT *const *a,\n                           const
      X509_OBJECT *const *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:146,1
    - Dst: sk_X509_OBJECT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:148,1
    - Dst: sk_X509_LOOKUP_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:151,1
    - Dst: X509_VERIFY_PARAM_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:154,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:157,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:160,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:168,1
    - Dst: sk_X509_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:169,1
    - Dst: sk_X509_LOOKUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:170,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:171,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 173
    functionName: X509_STORE_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - CRYPTO_new_ex_data
    - sk_X509_LOOKUP_free
    - sk_X509_LOOKUP_new_null
    - X509_VERIFY_PARAM_free
    - CRYPTO_THREAD_lock_new
    - sk_X509_OBJECT_new
    - OPENSSL_zalloc
    - sk_X509_OBJECT_free
    - OPENSSL_free
    - X509_VERIFY_PARAM_new
    linkageType: ''
    returnType: X509_STORE
    signature: '*X509_STORE_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:180,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:182,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:187,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_OBJECT*
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 22
    functionsReached:
    - X509_CRL_free
    - OPENSSL_free
    - X509_free
    linkageType: ''
    returnType: void
    signature: cleanup(X509_OBJECT *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:193,1
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:199,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:200,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:203,1
    - Dst: sk_X509_LOOKUP_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:206,1
    - Dst: sk_X509_LOOKUP_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:207,1
    - Dst: X509_LOOKUP_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:208,1
    - Dst: X509_LOOKUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:209,1
    - Dst: sk_X509_LOOKUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:211,1
    - Dst: sk_X509_OBJECT_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:212,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:214,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:215,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:216,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - vfy
    argTypes:
    - X509_STORE*
    constantsTouched: []
    func_position:
      end: 218
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 218
    functionName: X509_STORE_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP_free
    - sk_X509_LOOKUP_free
    - STACK_OF
    - sk_X509_OBJECT_pop_free
    - CRYPTO_THREAD_lock_free
    - sk_X509_LOOKUP_value
    - X509_LOOKUP_shutdown
    - X509_VERIFY_PARAM_free
    - CRYPTO_free_ex_data
    - CRYPTO_atomic_add
    - OPENSSL_free
    - REF_ASSERT_ISNT
    - sk_X509_LOOKUP_num
    - REF_PRINT_COUNT
    linkageType: ''
    returnType: void
    signature: X509_STORE_free(X509_STORE *vfy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:224,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:227,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - vfy
    argTypes:
    - X509_STORE*
    constantsTouched: []
    func_position:
      end: 230
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 230
    functionName: X509_STORE_up_ref
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_atomic_add
    linkageType: ''
    returnType: int
    signature: X509_STORE_up_ref(X509_STORE *vfy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:235,1
    - Dst: sk_X509_LOOKUP_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:239,1
    - Dst: sk_X509_LOOKUP_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:240,1
    - Dst: X509_LOOKUP_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:246,1
    - Dst: sk_X509_LOOKUP_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:251,1
    - Dst: X509_LOOKUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:254,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - v
    - m
    argTypes:
    - X509_STORE*
    - X509_LOOKUP_METHOD*
    constantsTouched: []
    func_position:
      end: 258
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 258
    functionName: X509_STORE_add_lookup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - sk_X509_LOOKUP_push
    - X509_LOOKUP_free
    - STACK_OF
    - sk_X509_LOOKUP_value
    - X509_LOOKUP_new
    - sk_X509_LOOKUP_num
    linkageType: ''
    returnType: X509_LOOKUP
    signature: '*X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_OBJECT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:264,1
    - Dst: X509_STORE_CTX_get_by_subject
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:268,1
    - Dst: X509_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - vs
    - type
    - name
    argTypes:
    - X509_STORE_CTX*
    - X509_LOOKUP_TYPE
    - X509_NAME*
    constantsTouched: []
    func_position:
      end: 273
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 273
    functionName: X509_STORE_CTX_get_obj_by_subject
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_get_by_subject
    - X509_OBJECT_new
    - X509_OBJECT_free
    linkageType: ''
    returnType: X509_OBJECT
    signature: "*X509_STORE_CTX_get_obj_by_subject(X509_STORE_CTX *vs,\n                                               X509_LOOKUP_TYPE
      type,\n                                               X509_NAME *name)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:283,1
    - Dst: X509_OBJECT_retrieve_by_subject
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:284,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:285,1
    - Dst: sk_X509_LOOKUP_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:288,1
    - Dst: sk_X509_LOOKUP_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:289,1
    - Dst: X509_LOOKUP_by_subject
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:290,1
    - Dst: X509_OBJECT_up_ref_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:303,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - vs
    - type
    - name
    - ret
    argTypes:
    - X509_STORE_CTX*
    - X509_LOOKUP_TYPE
    - X509_NAME*
    - X509_OBJECT*
    constantsTouched: []
    func_position:
      end: 306
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 306
    functionName: X509_STORE_CTX_get_by_subject
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 1
    functionsReached:
    - X509_LOOKUP_by_subject
    - CRYPTO_THREAD_write_lock
    - sk_X509_LOOKUP_value
    - X509_OBJECT_up_ref_count
    - CRYPTO_THREAD_unlock
    - sk_X509_LOOKUP_num
    - X509_OBJECT_retrieve_by_subject
    linkageType: ''
    returnType: int
    signature: "X509_STORE_CTX_get_by_subject(X509_STORE_CTX *vs, X509_LOOKUP_TYPE
      type,\n                                  X509_NAME *name, X509_OBJECT *ret)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_OBJECT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:315,1
    - Dst: X509_OBJECT_up_ref_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:320,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:322,1
    - Dst: X509_OBJECT_retrieve_match
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:324,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:325,1
    - Dst: sk_X509_OBJECT_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:329,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:333,1
    - Dst: X509_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:336,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:338,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - ctx
    - x
    argTypes:
    - X509_STORE*
    - X509*
    constantsTouched: []
    func_position:
      end: 341
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 341
    functionName: X509_STORE_add_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_OBJECT_new
    - CRYPTO_THREAD_write_lock
    - X509_OBJECT_up_ref_count
    - CRYPTO_THREAD_unlock
    - X509_OBJECT_free
    - sk_X509_OBJECT_push
    - X509err
    - X509_OBJECT_retrieve_match
    linkageType: ''
    returnType: int
    signature: X509_STORE_add_cert(X509_STORE *ctx, X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_OBJECT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:350,1
    - Dst: X509_OBJECT_up_ref_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:355,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:357,1
    - Dst: X509_OBJECT_retrieve_match
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:359,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:360,1
    - Dst: sk_X509_OBJECT_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:363,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:367,1
    - Dst: X509_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:370,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:372,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - ctx
    - x
    argTypes:
    - X509_STORE*
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 375
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 375
    functionName: X509_STORE_add_crl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_OBJECT_new
    - CRYPTO_THREAD_write_lock
    - X509_OBJECT_up_ref_count
    - CRYPTO_THREAD_unlock
    - X509_OBJECT_free
    - sk_X509_OBJECT_push
    - X509err
    - X509_OBJECT_retrieve_match
    linkageType: ''
    returnType: int
    signature: X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:383,1
    - Dst: X509_CRL_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_OBJECT*
    constantsTouched: []
    func_position:
      end: 388
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 388
    functionName: X509_OBJECT_up_ref_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 3
    functionsReached:
    - X509_up_ref
    - X509_CRL_up_ref
    linkageType: ''
    returnType: int
    signature: X509_OBJECT_up_ref_count(X509_OBJECT *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_OBJECT*
    constantsTouched: []
    func_position:
      end: 395
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 395
    functionName: X509_OBJECT_get0_X509
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: '*X509_OBJECT_get0_X509(const X509_OBJECT *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_OBJECT*
    constantsTouched: []
    func_position:
      end: 402
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 402
    functionName: X509_OBJECT_get0_X509_CRL
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_CRL
    signature: '*X509_OBJECT_get0_X509_CRL(X509_OBJECT *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_OBJECT*
    constantsTouched: []
    func_position:
      end: 407
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 407
    functionName: X509_OBJECT_get_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_LOOKUP_TYPE
    signature: X509_OBJECT_get_type(const X509_OBJECT *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:411,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 419
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 419
    functionName: X509_OBJECT_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 4
    functionsReached:
    - X509err
    - OPENSSL_zalloc
    linkageType: ''
    returnType: X509_OBJECT
    signature: '*X509_OBJECT_new()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:430,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:433,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:436,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_OBJECT*
    constantsTouched: []
    func_position:
      end: 437
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 437
    functionName: X509_OBJECT_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 4
    functionsReached:
    - X509_CRL_free
    - OPENSSL_free
    - X509_free
    linkageType: ''
    returnType: void
    signature: X509_OBJECT_free(X509_OBJECT *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_OBJECT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:628,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:634,1
    - Dst: X509_STORE_CTX_get_by_subject
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:635,1
    - Dst: X509_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:637,1
    - Dst: X509_STORE_CTX*::check_issued
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:641,1
    - Dst: x509_check_cert_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:642,1
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:644,1
    - Dst: X509_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:645,1
    - Dst: X509_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:649,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:653,1
    - Dst: X509_OBJECT_idx_by_subject
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:654,1
    - Dst: sk_X509_OBJECT_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:658,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:659,1
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:663,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:663,1
    - Dst: X509_STORE_CTX*::check_issued
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:665,1
    - Dst: x509_check_cert_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:675,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:680,1
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:682,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - issuer
    - ctx
    - x
    argTypes:
    - X509**
    - X509_STORE_CTX*
    - X509*
    constantsTouched: []
    func_position:
      end: 684
      start: 625
    functionDepth: 2
    functionLinenumber: 625
    functionLinenumberEnd: 684
    functionName: X509_STORE_CTX_get1_issuer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_get_by_subject
    - X509_OBJECT_new
    - X509_up_ref
    - x509_check_cert_time
    - X509_STORE_CTX*::check_issued
    - CRYPTO_THREAD_write_lock
    - X509_get_subject_name
    - CRYPTO_THREAD_unlock
    - X509_NAME_cmp
    - X509_OBJECT_free
    - sk_X509_OBJECT_num
    - X509_OBJECT_idx_by_subject
    - sk_X509_OBJECT_value
    - X509_get_issuer_name
    linkageType: ''
    returnType: int
    signature: X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509
      *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - X509_STORE*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 689
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 689
    functionName: X509_STORE_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_flags
    linkageType: ''
    returnType: int
    signature: X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_depth
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - depth
    argTypes:
    - X509_STORE*
    - int
    constantsTouched: []
    func_position:
      end: 695
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 695
    functionName: X509_STORE_set_depth
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_depth
    linkageType: ''
    returnType: int
    signature: X509_STORE_set_depth(X509_STORE *ctx, int depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_purpose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - purpose
    argTypes:
    - X509_STORE*
    - int
    constantsTouched: []
    func_position:
      end: 700
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 700
    functionName: X509_STORE_set_purpose
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_purpose
    linkageType: ''
    returnType: int
    signature: X509_STORE_set_purpose(X509_STORE *ctx, int purpose)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_trust
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - trust
    argTypes:
    - X509_STORE*
    - int
    constantsTouched: []
    func_position:
      end: 705
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 705
    functionName: X509_STORE_set_trust
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_trust
    linkageType: ''
    returnType: int
    signature: X509_STORE_set_trust(X509_STORE *ctx, int trust)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - param
    argTypes:
    - X509_STORE*
    - X509_VERIFY_PARAM*
    constantsTouched: []
    func_position:
      end: 710
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 710
    functionName: X509_STORE_set1_param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set1
    linkageType: ''
    returnType: int
    signature: X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *param)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    constantsTouched: []
    func_position:
      end: 715
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 715
    functionName: X509_STORE_get0_param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_VERIFY_PARAM
    signature: '*X509_STORE_get0_param(X509_STORE *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - verify
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_verify_fn
    constantsTouched: []
    func_position:
      end: 720
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 720
    functionName: X509_STORE_set_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    constantsTouched: []
    func_position:
      end: 725
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 725
    functionName: X509_STORE_get_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_verify_fn
    signature: X509_STORE_get_verify(X509_STORE *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - verify_cb
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_verify_cb
    constantsTouched: []
    func_position:
      end: 731
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 731
    functionName: X509_STORE_set_verify_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "X509_STORE_set_verify_cb(X509_STORE *ctx,\n                              X509_STORE_CTX_verify_cb
      verify_cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    constantsTouched: []
    func_position:
      end: 736
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 736
    functionName: X509_STORE_get_verify_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_verify_cb
    signature: X509_STORE_get_verify_cb(X509_STORE *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - get_issuer
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_get_issuer_fn
    constantsTouched: []
    func_position:
      end: 742
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 742
    functionName: X509_STORE_set_get_issuer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "X509_STORE_set_get_issuer(X509_STORE *ctx,\n                               X509_STORE_CTX_get_issuer_fn
      get_issuer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    constantsTouched: []
    func_position:
      end: 747
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 747
    functionName: X509_STORE_get_get_issuer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_get_issuer_fn
    signature: X509_STORE_get_get_issuer(X509_STORE *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - check_issued
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_check_issued_fn
    constantsTouched: []
    func_position:
      end: 753
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 753
    functionName: X509_STORE_set_check_issued
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "X509_STORE_set_check_issued(X509_STORE *ctx,\n                                 X509_STORE_CTX_check_issued_fn
      check_issued)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    constantsTouched: []
    func_position:
      end: 758
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 758
    functionName: X509_STORE_get_check_issued
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_issued_fn
    signature: X509_STORE_get_check_issued(X509_STORE *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - check_revocation
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_check_revocation_fn
    constantsTouched: []
    func_position:
      end: 764
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 764
    functionName: X509_STORE_set_check_revocation
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "X509_STORE_set_check_revocation(X509_STORE *ctx,\n                                     X509_STORE_CTX_check_revocation_fn
      check_revocation)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    constantsTouched: []
    func_position:
      end: 769
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 769
    functionName: X509_STORE_get_check_revocation
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_revocation_fn
    signature: X509_STORE_get_check_revocation(X509_STORE *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - get_crl
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_get_crl_fn
    constantsTouched: []
    func_position:
      end: 775
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 775
    functionName: X509_STORE_set_get_crl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "X509_STORE_set_get_crl(X509_STORE *ctx,\n                            X509_STORE_CTX_get_crl_fn
      get_crl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    constantsTouched: []
    func_position:
      end: 780
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 780
    functionName: X509_STORE_get_get_crl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_get_crl_fn
    signature: X509_STORE_get_get_crl(X509_STORE *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - check_crl
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_check_crl_fn
    constantsTouched: []
    func_position:
      end: 786
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 786
    functionName: X509_STORE_set_check_crl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "X509_STORE_set_check_crl(X509_STORE *ctx,\n                              X509_STORE_CTX_check_crl_fn
      check_crl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    constantsTouched: []
    func_position:
      end: 791
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 791
    functionName: X509_STORE_get_check_crl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_crl_fn
    signature: X509_STORE_get_check_crl(X509_STORE *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - cert_crl
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_cert_crl_fn
    constantsTouched: []
    func_position:
      end: 797
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 797
    functionName: X509_STORE_set_cert_crl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "X509_STORE_set_cert_crl(X509_STORE *ctx,\n                             X509_STORE_CTX_cert_crl_fn
      cert_crl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    constantsTouched: []
    func_position:
      end: 802
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 802
    functionName: X509_STORE_get_cert_crl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_cert_crl_fn
    signature: X509_STORE_get_cert_crl(X509_STORE *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - check_policy
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_check_policy_fn
    constantsTouched: []
    func_position:
      end: 808
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 808
    functionName: X509_STORE_set_check_policy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "X509_STORE_set_check_policy(X509_STORE *ctx,\n                                 X509_STORE_CTX_check_policy_fn
      check_policy)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    constantsTouched: []
    func_position:
      end: 813
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 813
    functionName: X509_STORE_get_check_policy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_policy_fn
    signature: X509_STORE_get_check_policy(X509_STORE *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - lookup_certs
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_lookup_certs_fn
    constantsTouched: []
    func_position:
      end: 819
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 819
    functionName: X509_STORE_set_lookup_certs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "X509_STORE_set_lookup_certs(X509_STORE *ctx,\n                                 X509_STORE_CTX_lookup_certs_fn
      lookup_certs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    constantsTouched: []
    func_position:
      end: 824
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 824
    functionName: X509_STORE_get_lookup_certs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_lookup_certs_fn
    signature: X509_STORE_get_lookup_certs(X509_STORE *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - lookup_crls
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_lookup_crls_fn
    constantsTouched: []
    func_position:
      end: 830
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 830
    functionName: X509_STORE_set_lookup_crls
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "X509_STORE_set_lookup_crls(X509_STORE *ctx,\n                                X509_STORE_CTX_lookup_crls_fn
      lookup_crls)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    constantsTouched: []
    func_position:
      end: 835
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 835
    functionName: X509_STORE_get_lookup_crls
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_lookup_crls_fn
    signature: X509_STORE_get_lookup_crls(X509_STORE *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ctx_cleanup
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_cleanup_fn
    constantsTouched: []
    func_position:
      end: 841
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 841
    functionName: X509_STORE_set_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "X509_STORE_set_cleanup(X509_STORE *ctx,\n                            X509_STORE_CTX_cleanup_fn
      ctx_cleanup)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    constantsTouched: []
    func_position:
      end: 846
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 846
    functionName: X509_STORE_get_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_cleanup_fn
    signature: X509_STORE_get_cleanup(X509_STORE *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - idx
    - data
    argTypes:
    - X509_STORE*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 851
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 851
    functionName: X509_STORE_set_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c:855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - idx
    argTypes:
    - X509_STORE*
    - int
    constantsTouched: []
    func_position:
      end: 856
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 856
    functionName: X509_STORE_get_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: '*X509_STORE_get_ex_data(X509_STORE *ctx, int idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 861
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 861
    functionName: X509_STORE_CTX_get0_store
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE
    signature: '*X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: X509_LOOKUP_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_LOOKUP_METHOD
    signature: '*X509_LOOKUP_file(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:50,1
    - Dst: X509_get_default_cert_file_env
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:50,1
    - Dst: X509_load_cert_crl_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:52,1
    - Dst: X509_load_cert_crl_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:56,1
    - Dst: X509_get_default_cert_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:57,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:61,1
    - Dst: X509_load_cert_crl_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:65,1
    - Dst: X509_load_cert_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:68,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - ctx
    - cmd
    - argp
    - argl
    - ret
    argTypes:
    - X509_LOOKUP*
    - int
    - char*
    - long
    - char**
    constantsTouched: []
    func_position:
      end: 73
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 73
    functionName: by_file_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c
    functionUses: 0
    functionsReached:
    - X509_get_default_cert_file
    - X509_get_default_cert_file_env
    - getenv
    - X509_load_cert_file
    - X509_load_cert_crl_file
    - X509err
    linkageType: ''
    returnType: int
    signature: "by_file_ctrl(X509_LOOKUP *ctx, int cmd, const char *argp,\n                        long
      argl, char **ret)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:84,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:84,1
    - Dst: BIO_read_filename
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:86,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:87,1
    - Dst: PEM_read_bio_X509_AUX
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:93,1
    - Dst: ERR_GET_REASON
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:95,1
    - Dst: ERR_peek_last_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:95,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:97,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:100,1
    - Dst: X509_STORE_add_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:104,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:108,1
    - Dst: d2i_X509_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:113,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:115,1
    - Dst: X509_STORE_add_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:118,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:123,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:127,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:128,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 3
    argNames:
    - ctx
    - file
    - type
    argTypes:
    - X509_LOOKUP*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 130
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 130
    functionName: X509_load_cert_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c
    functionUses: 1
    functionsReached:
    - BIO_read_filename
    - PEM_read_bio_X509_AUX
    - X509_STORE_add_cert
    - d2i_X509_bio
    - BIO_s_file
    - ERR_peek_last_error
    - BIO_free
    - X509_free
    - BIO_new
    - X509err
    - ERR_GET_REASON
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:141,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:141,1
    - Dst: BIO_read_filename
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:143,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:144,1
    - Dst: PEM_read_bio_X509_CRL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:150,1
    - Dst: ERR_GET_REASON
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:152,1
    - Dst: ERR_peek_last_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:152,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:154,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:157,1
    - Dst: X509_STORE_add_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:161,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:165,1
    - Dst: d2i_X509_CRL_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:170,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:172,1
    - Dst: X509_STORE_add_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:175,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:180,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:184,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:185,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 3
    argNames:
    - ctx
    - file
    - type
    argTypes:
    - X509_LOOKUP*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 187
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 187
    functionName: X509_load_crl_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c
    functionUses: 0
    functionsReached:
    - BIO_read_filename
    - X509_STORE_add_crl
    - X509_CRL_free
    - d2i_X509_CRL_bio
    - PEM_read_bio_X509_CRL
    - BIO_s_file
    - ERR_peek_last_error
    - BIO_free
    - BIO_new
    - X509err
    - ERR_GET_REASON
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:191,1
    - Dst: X509_load_cert_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:196,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:197,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:199,1
    - Dst: PEM_X509_INFO_read_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:202,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:203,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:205,1
    - Dst: sk_X509_INFO_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:208,1
    - Dst: sk_X509_INFO_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:209,1
    - Dst: X509_STORE_add_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:211,1
    - Dst: X509_STORE_add_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:215,1
    - Dst: sk_X509_INFO_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c:219,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - ctx
    - file
    - type
    argTypes:
    - X509_LOOKUP*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 221
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 221
    functionName: X509_load_cert_crl_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c
    functionUses: 1
    functionsReached:
    - X509_STORE_add_cert
    - X509_STORE_add_crl
    - STACK_OF
    - sk_X509_INFO_value
    - PEM_X509_INFO_read_bio
    - sk_X509_INFO_num
    - X509_load_cert_file
    - BIO_free
    - BIO_new_file
    - X509err
    - sk_X509_INFO_pop_free
    linkageType: ''
    returnType: int
    signature: X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_ATTRIBUTE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_attrib.c:41,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_attrib.c:43,1
    - Dst: ASN1_TYPE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_attrib.c:44,1
    - Dst: sk_ASN1_TYPE_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_attrib.c:46,1
    - Dst: ASN1_TYPE_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_attrib.c:49,1
    - Dst: X509_ATTRIBUTE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_attrib.c:52,1
    - Dst: ASN1_TYPE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_attrib.c:53,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - nid
    - atrtype
    - value
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 55
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 55
    functionName: X509_ATTRIBUTE_create
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_attrib.c
    functionUses: 0
    functionsReached:
    - X509_ATTRIBUTE_new
    - OBJ_nid2obj
    - ASN1_TYPE_new
    - ASN1_TYPE_set
    - sk_ASN1_TYPE_push
    - ASN1_TYPE_free
    - X509_ATTRIBUTE_free
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: '*X509_ATTRIBUTE_create(int nid, int atrtype, void *value)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_ATTRIBUTE_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_req.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: rinf_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_req.c
    functionUses: 0
    functionsReached:
    - sk_X509_ATTRIBUTE_new_null
    linkageType: ''
    returnType: int
    signature: "rinf_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n                   void
      *exarg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c:23,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c:28,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c:31,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - x
    - version
    argTypes:
    - X509*
    - long
    constantsTouched: []
    func_position:
      end: 32
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 32
    functionName: X509_set_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c
    functionUses: 5
    functionsReached:
    - ASN1_INTEGER_free
    - ASN1_INTEGER_set
    - ASN1_INTEGER_new
    linkageType: ''
    returnType: int
    signature: X509_set_version(X509 *x, long version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - x
    - serial
    argTypes:
    - X509*
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: X509_set_serialNumber
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_copy
    linkageType: ''
    returnType: int
    signature: X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - name
    argTypes:
    - X509*
    - X509_NAME*
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: X509_set_issuer_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c
    functionUses: 7
    functionsReached:
    - X509_NAME_set
    linkageType: ''
    returnType: int
    signature: X509_set_issuer_name(X509 *x, X509_NAME *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - name
    argTypes:
    - X509*
    - X509_NAME*
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: X509_set_subject_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c
    functionUses: 1
    functionsReached:
    - X509_NAME_set
    linkageType: ''
    returnType: int
    signature: X509_set_subject_name(X509 *x, X509_NAME *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c:65,1
    - Dst: ASN1_TIME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ptm
    - tm
    argTypes:
    - ASN1_TIME**
    - ASN1_TIME*
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: x509_set1_time
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c
    functionUses: 2
    functionsReached:
    - ASN1_TIME_free
    - ASN1_STRING_dup
    linkageType: ''
    returnType: int
    signature: x509_set1_time(ASN1_TIME **ptm, const ASN1_TIME *tm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: x509_set1_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - tm
    argTypes:
    - X509*
    - ASN1_TIME*
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: X509_set1_notBefore
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached:
    - x509_set1_time
    linkageType: ''
    returnType: int
    signature: X509_set1_notBefore(X509 *x, const ASN1_TIME *tm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: x509_set1_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - tm
    argTypes:
    - X509*
    - ASN1_TIME*
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: X509_set1_notAfter
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached:
    - x509_set1_time
    linkageType: ''
    returnType: int
    signature: X509_set1_notAfter(X509 *x, const ASN1_TIME *tm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - pkey
    argTypes:
    - X509*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: X509_set_pubkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c
    functionUses: 6
    functionsReached:
    - X509_PUBKEY_set
    linkageType: ''
    returnType: int
    signature: X509_set_pubkey(X509 *x, EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c:99,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c:102,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 105
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 105
    functionName: X509_up_ref
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c
    functionUses: 6
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_atomic_add
    linkageType: ''
    returnType: int
    signature: X509_up_ref(X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: X509_get_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: long
    signature: X509_get_version(const X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: X509_get0_notBefore
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: '*X509_get0_notBefore(const X509 *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: X509_get0_notAfter
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: '*X509_get0_notAfter(const X509 *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: X509_getm_notBefore
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: '*X509_getm_notBefore(const X509 *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: X509_getm_notAfter
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: '*X509_getm_notAfter(const X509 *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c:134,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: X509_get_signature_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - EVP_PKEY_type
    linkageType: ''
    returnType: int
    signature: X509_get_signature_type(const X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: X509_get_X509_PUBKEY
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_PUBKEY
    signature: '*X509_get_X509_PUBKEY(const X509 *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: X509_get0_extensions
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: '*X509_get0_extensions(const X509 *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - x
    - piuid
    - psuid
    argTypes:
    - X509*
    - ASN1_BIT_STRING**
    - ASN1_BIT_STRING**
    constantsTouched: []
    func_position:
      end: 154
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 154
    functionName: X509_get0_uids
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "X509_get0_uids(const X509 *x, const ASN1_BIT_STRING **piuid,\n                    const
      ASN1_BIT_STRING **psuid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: X509_get0_tbs_sigalg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_ALGOR
    signature: '*X509_get0_tbs_sigalg(const X509 *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_new_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:55,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:60,1
    - Dst: X509_CERT_AUX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:61,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:62,1
    - Dst: AUTHORITY_KEYID_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:63,1
    - Dst: CRL_DIST_POINTS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:64,1
    - Dst: policy_cache_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:65,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:66,1
    - Dst: NAME_CONSTRAINTS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:67,1
    - Dst: sk_IPAddressFamily_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:69,1
    - Dst: ASIdentifiers_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    constantsTouched: []
    func_position:
      end: 78
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 78
    functionName: x509_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached:
    - policy_cache_free
    - CRYPTO_new_ex_data
    - ASIdentifiers_free
    - X509_CERT_AUX_free
    - CRL_DIST_POINTS_free
    - sk_IPAddressFamily_pop_free
    - ASN1_OCTET_STRING_free
    - GENERAL_NAMES_free
    - CRYPTO_free_ex_data
    - NAME_CONSTRAINTS_free
    - AUTHORITY_KEYID_free
    linkageType: ''
    returnType: int
    signature: "x509_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n                   void
      *exarg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - idx
    - arg
    argTypes:
    - X509*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: X509_set_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: X509_set_ex_data(X509 *r, int idx, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - idx
    argTypes:
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: X509_get_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: '*X509_get_ex_data(X509 *r, int idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_X509
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:118,1
    - Dst: d2i_X509_CERT_AUX
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:124,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:130,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - X509**
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 135
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 135
    functionName: d2i_X509_AUX
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached:
    - d2i_X509_CERT_AUX
    - d2i_X509
    - X509_free
    linkageType: ''
    returnType: X509
    signature: '*d2i_X509_AUX(X509 **a, const unsigned char **pp, long length)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:148,1
    - Dst: i2d_X509
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:155,1
    - Dst: i2d_X509_CERT_AUX
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:159,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - X509*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 168
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 168
    functionName: i2d_x509_aux_internal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached:
    - i2d_X509
    - i2d_X509_CERT_AUX
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: i2d_x509_aux_internal(X509 *a, unsigned char **pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_x509_aux_internal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:186,1
    - Dst: i2d_x509_aux_internal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:189,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:193,1
    - Dst: i2d_x509_aux_internal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:198,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - X509*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 204
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 204
    functionName: i2d_X509_AUX
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - i2d_x509_aux_internal
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: i2d_X509_AUX(X509 *a, unsigned char **pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509_CINF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - pp
    argTypes:
    - X509*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 210
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 210
    functionName: i2d_re_X509_tbs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached:
    - i2d_X509_CINF
    linkageType: ''
    returnType: int
    signature: i2d_re_X509_tbs(X509 *x, unsigned char **pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - psig
    - palg
    - x
    argTypes:
    - ASN1_BIT_STRING**
    - X509_ALGOR**
    - X509*
    constantsTouched: []
    func_position:
      end: 219
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 219
    functionName: X509_get0_signature
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "X509_get0_signature(const ASN1_BIT_STRING **psig,\n                         const
      X509_ALGOR **palg, const X509 *x)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: X509_get_signature_nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c
    functionUses: 2
    functionsReached:
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: X509_get_signature_nid(const X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:34,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:38,1
    - Dst: ERR_set_mark
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:44,1
    - Dst: x509_pubkey_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:45,1
    - Dst: ERR_pop_to_mark
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    constantsTouched: []
    func_position:
      end: 50
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 50
    functionName: pubkey_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - ERR_set_mark
    - x509_pubkey_decode
    - ERR_pop_to_mark
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: "pubkey_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                    void *exarg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:66,1
    - Dst: EVP_PKEY*::ameth::pub_encode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:71,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:72,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:77,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:81,1
    - Dst: X509_PUBKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:85,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:88,1
    - Dst: X509_PUBKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:92,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - x
    - pkey
    argTypes:
    - X509_PUBKEY**
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 94
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 94
    functionName: X509_PUBKEY_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c
    functionUses: 2
    functionsReached:
    - X509_PUBKEY_free
    - EVP_PKEY*::ameth::pub_encode
    - X509_PUBKEY_new
    - EVP_PKEY_up_ref
    - X509err
    linkageType: ''
    returnType: int
    signature: X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:105,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:108,1
    - Dst: EVP_PKEY_set_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:112,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:112,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:113,1
    - Dst: EVP_PKEY*::ameth::pub_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:123,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:124,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:128,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:136,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - ppkey
    - key
    argTypes:
    - EVP_PKEY**
    - X509_PUBKEY*
    constantsTouched: []
    func_position:
      end: 138
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 138
    functionName: x509_pubkey_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    - EVP_PKEY_set_type
    - EVP_PKEY_new
    - EVP_PKEY*::ameth::pub_decode
    - X509err
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: x509_pubkey_decode(EVP_PKEY **ppkey, X509_PUBKEY *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: x509_pubkey_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:158,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:161,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - key
    argTypes:
    - X509_PUBKEY*
    constantsTouched: []
    func_position:
      end: 166
      start: 140
    functionDepth: 4
    functionLinenumber: 140
    functionLinenumberEnd: 166
    functionName: X509_PUBKEY_get0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c
    functionUses: 1
    functionsReached:
    - x509_pubkey_decode
    - X509err
    - EVP_PKEY_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*X509_PUBKEY_get0(X509_PUBKEY *key)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:170,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - X509_PUBKEY*
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 5
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: X509_PUBKEY_get
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_up_ref
    - X509_PUBKEY_get0
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*X509_PUBKEY_get(X509_PUBKEY *key)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_X509_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:187,1
    - Dst: X509_PUBKEY_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:190,1
    - Dst: X509_PUBKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:191,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - EVP_PKEY**
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 200
      start: 181
    functionDepth: 6
    functionLinenumber: 181
    functionLinenumberEnd: 200
    functionName: d2i_PUBKEY
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_free
    - EVP_PKEY_free
    - d2i_X509_PUBKEY
    - X509_PUBKEY_get
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*d2i_PUBKEY(EVP_PKEY **a, const unsigned char **pp, long length)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:208,1
    - Dst: i2d_X509_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:210,1
    - Dst: X509_PUBKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 213
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 213
    functionName: i2d_PUBKEY
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_free
    - i2d_X509_PUBKEY
    - X509_PUBKEY_set
    linkageType: ''
    returnType: int
    signature: i2d_PUBKEY(EVP_PKEY *a, unsigned char **pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:225,1
    - Dst: EVP_PKEY_get1_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:228,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:229,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - RSA**
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 238
      start: 219
    functionDepth: 7
    functionLinenumber: 219
    functionLinenumberEnd: 238
    functionName: d2i_RSA_PUBKEY
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - d2i_PUBKEY
    - RSA_free
    - EVP_PKEY_get1_RSA
    - EVP_PKEY_free
    linkageType: ''
    returnType: RSA
    signature: '*d2i_RSA_PUBKEY(RSA **a, const unsigned char **pp, long length)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:246,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:248,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:251,1
    - Dst: i2d_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:252,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - RSA*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 255
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 255
    functionName: i2d_RSA_PUBKEY
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - ASN1err
    - i2d_PUBKEY
    - EVP_PKEY_set1_RSA
    - EVP_PKEY_new
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: i2d_RSA_PUBKEY(RSA *a, unsigned char **pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:265,1
    - Dst: EVP_PKEY_get1_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:268,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:269,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - DSA**
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 278
      start: 259
    functionDepth: 7
    functionLinenumber: 259
    functionLinenumberEnd: 278
    functionName: d2i_DSA_PUBKEY
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - d2i_PUBKEY
    - DSA_free
    - EVP_PKEY_free
    - EVP_PKEY_get1_DSA
    linkageType: ''
    returnType: DSA
    signature: '*d2i_DSA_PUBKEY(DSA **a, const unsigned char **pp, long length)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:286,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:288,1
    - Dst: EVP_PKEY_set1_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:291,1
    - Dst: i2d_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:292,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - DSA*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 295
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 295
    functionName: i2d_DSA_PUBKEY
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - ASN1err
    - EVP_PKEY_set1_DSA
    - i2d_PUBKEY
    - EVP_PKEY_new
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: i2d_DSA_PUBKEY(DSA *a, unsigned char **pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:305,1
    - Dst: EVP_PKEY_get1_EC_KEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:308,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:309,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:314,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - EC_KEY**
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 318
      start: 299
    functionDepth: 7
    functionLinenumber: 299
    functionLinenumberEnd: 318
    functionName: d2i_EC_PUBKEY
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - d2i_PUBKEY
    - EC_KEY_free
    - EVP_PKEY_free
    - EVP_PKEY_get1_EC_KEY
    linkageType: ''
    returnType: EC_KEY
    signature: '*d2i_EC_PUBKEY(EC_KEY **a, const unsigned char **pp, long length)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:326,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:327,1
    - Dst: EVP_PKEY_set1_EC_KEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:330,1
    - Dst: i2d_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:331,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - EC_KEY*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 334
      start: 320
    functionDepth: 3
    functionLinenumber: 320
    functionLinenumberEnd: 334
    functionName: i2d_EC_PUBKEY
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - ASN1err
    - i2d_PUBKEY
    - EVP_PKEY_new
    - EVP_PKEY_free
    - EVP_PKEY_set1_EC_KEY
    linkageType: ''
    returnType: int
    signature: i2d_EC_PUBKEY(EC_KEY *a, unsigned char **pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:341,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - pub
    - aobj
    - ptype
    - pval
    - penc
    - penclen
    argTypes:
    - X509_PUBKEY*
    - ASN1_OBJECT*
    - int
    - void*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 352
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 352
    functionName: X509_PUBKEY_set0_param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - X509_ALGOR_set0
    linkageType: ''
    returnType: int
    signature: "X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj,\n                           int
      ptype, void *pval,\n                           unsigned char *penc, int penclen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - ppkalg
    - pk
    - ppklen
    - pa
    - pub
    argTypes:
    - ASN1_OBJECT**
    - unsigned char**
    - int*
    - X509_ALGOR**
    - X509_PUBKEY*
    constantsTouched: []
    func_position:
      end: 367
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 367
    functionName: X509_PUBKEY_get0_param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg,\n                           const
      unsigned char **pk, int *ppklen,\n                           X509_ALGOR **pa,
      X509_PUBKEY *pub)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 374
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 374
    functionName: X509_get0_pubkey_bitstr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ASN1_BIT_STRING
    signature: '*X509_get0_pubkey_bitstr(const X509 *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: X509_LOOKUP_hash_dir
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_LOOKUP_METHOD
    signature: '*X509_LOOKUP_hash_dir(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:83,1
    - Dst: X509_get_default_cert_dir_env
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:83,1
    - Dst: add_cert_dir
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:85,1
    - Dst: add_cert_dir
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:87,1
    - Dst: X509_get_default_cert_dir
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:87,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:90,1
    - Dst: add_cert_dir
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - ctx
    - cmd
    - argp
    - argl
    - retp
    argTypes:
    - X509_LOOKUP*
    - int
    - char*
    - long
    - char**
    constantsTouched: []
    func_position:
      end: 97
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 97
    functionName: dir_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached:
    - X509_get_default_cert_dir
    - getenv
    - add_cert_dir
    - X509err
    - X509_get_default_cert_dir_env
    linkageType: ''
    returnType: int
    signature: "dir_ctrl(X509_LOOKUP *ctx, int cmd, const char *argp, long argl,\n
      \                   char **retp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:103,1
    - Dst: BUF_MEM_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:105,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:106,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:110,1
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:112,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - lu
    argTypes:
    - X509_LOOKUP*
    constantsTouched: []
    func_position:
      end: 118
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 118
    functionName: new_dir
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_free
    - BUF_MEM_new
    - OPENSSL_malloc
    - BUF_MEM_free
    linkageType: ''
    returnType: int
    signature: new_dir(X509_LOOKUP *lu)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - BY_DIR_HASH*
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: by_dir_hash_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: by_dir_hash_free(BY_DIR_HASH *hash)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BY_DIR_HASH**
    - BY_DIR_HASH**
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: by_dir_hash_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "by_dir_hash_cmp(const BY_DIR_HASH *const *a,\n                           const
      BY_DIR_HASH *const *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:137,1
    - Dst: sk_BY_DIR_HASH_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:138,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ent
    argTypes:
    - BY_DIR_ENTRY*
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: by_dir_entry_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - sk_BY_DIR_HASH_pop_free
    linkageType: ''
    returnType: void
    signature: by_dir_entry_free(BY_DIR_ENTRY *ent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_BY_DIR_ENTRY_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:147,1
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:148,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:149,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - lu
    argTypes:
    - X509_LOOKUP*
    constantsTouched: []
    func_position:
      end: 151
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 151
    functionName: free_dir
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - CRYPTO_THREAD_lock_free
    - sk_BY_DIR_ENTRY_pop_free
    - BUF_MEM_free
    linkageType: ''
    returnType: void
    signature: free_dir(X509_LOOKUP *lu)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:158,1
    - Dst: sk_BY_DIR_ENTRY_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:174,1
    - Dst: sk_BY_DIR_ENTRY_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:175,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:176,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:177,1
    - Dst: sk_BY_DIR_ENTRY_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:180,1
    - Dst: sk_BY_DIR_ENTRY_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:183,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:185,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:189,1
    - Dst: sk_BY_DIR_HASH_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:193,1
    - Dst: OPENSSL_strndup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:194,1
    - Dst: by_dir_entry_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:196,1
    - Dst: sk_BY_DIR_ENTRY_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:199,1
    - Dst: by_dir_entry_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:200,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 3
    argNames:
    - ctx
    - dir
    - type
    argTypes:
    - BY_DIR*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 206
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 206
    functionName: add_cert_dir
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c
    functionUses: 1
    functionsReached:
    - OPENSSL_strndup
    - sk_BY_DIR_ENTRY_push
    - OPENSSL_malloc
    - sk_BY_DIR_ENTRY_num
    - sk_BY_DIR_ENTRY_new_null
    - strncmp
    - sk_BY_DIR_HASH_new
    - by_dir_entry_free
    - strlen
    - X509err
    - sk_BY_DIR_ENTRY_value
    linkageType: ''
    returnType: int
    signature: add_cert_dir(BY_DIR *ctx, const char *dir, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:236,1
    - Dst: BUF_MEM_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:240,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:241,1
    - Dst: X509_NAME_hash
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:247,1
    - Dst: sk_BY_DIR_ENTRY_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:248,1
    - Dst: sk_BY_DIR_ENTRY_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:252,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:253,1
    - Dst: BUF_MEM_grow
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:254,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:255,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:260,1
    - Dst: sk_BY_DIR_HASH_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:261,1
    - Dst: sk_BY_DIR_HASH_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:263,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:269,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:277,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:295,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:298,1
    - Dst: stat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:307,1
    - Dst: X509_load_cert_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:313,1
    - Dst: X509_load_crl_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:316,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:326,1
    - Dst: sk_X509_OBJECT_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:327,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:329,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:332,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:337,1
    - Dst: sk_BY_DIR_HASH_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:344,1
    - Dst: sk_BY_DIR_HASH_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:346,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:349,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:351,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:352,1
    - Dst: sk_BY_DIR_HASH_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:358,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:359,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:360,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:368,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:375,1
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c:386,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 124
    argCount: 4
    argNames:
    - xl
    - type
    - name
    - ret
    argTypes:
    - X509_LOOKUP*
    - X509_LOOKUP_TYPE
    - X509_NAME*
    - X509_OBJECT*
    constantsTouched: []
    func_position:
      end: 388
      start: 208
    functionDepth: 6
    functionLinenumber: 208
    functionLinenumberEnd: 388
    functionName: get_cert_by_subject
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached:
    - BUF_MEM_grow
    - sk_X509_OBJECT_find
    - X509err
    - X509_NAME_hash
    - stat
    - X509_load_cert_file
    - BUF_MEM_new
    - sk_BY_DIR_ENTRY_value
    - sk_BY_DIR_HASH_value
    - sk_X509_OBJECT_value
    - BIO_snprintf
    - sk_BY_DIR_HASH_push
    - X509_load_crl_file
    - strlen
    - OPENSSL_free
    - sk_BY_DIR_HASH_find
    - sk_BY_DIR_ENTRY_num
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    - memcpy
    - CRYPTO_THREAD_read_lock
    - OPENSSL_malloc
    - BUF_MEM_free
    linkageType: ''
    returnType: int
    signature: "get_cert_by_subject(X509_LOOKUP *xl, X509_LOOKUP_TYPE type,\n                               X509_NAME
      *name, X509_OBJECT *ret)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: str_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    linkageType: ''
    returnType: char
    signature: '*str_copy(const char *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: str_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: str_free(char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:47,1
    - Dst: memchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:48,1
    - Dst: sk_OPENSSL_STRING_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:54,1
    - Dst: OPENSSL_strndup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:60,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:65,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:66,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:70,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:71,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:72,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:73,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 4
    argNames:
    - vpm
    - mode
    - name
    - namelen
    argTypes:
    - X509_VERIFY_PARAM*
    - int
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 80
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 80
    functionName: int_x509_param_set_hosts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_STRING_pop_free
    - OPENSSL_strndup
    - sk_OPENSSL_STRING_push
    - sk_OPENSSL_STRING_num
    - strlen
    - memchr
    - OPENSSL_free
    - sk_OPENSSL_STRING_new_null
    - sk_OPENSSL_STRING_free
    linkageType: ''
    returnType: int
    signature: "int_x509_param_set_hosts(X509_VERIFY_PARAM *vpm, int mode,\n                                    const
      char *name, size_t namelen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:96,1
    - Dst: sk_OPENSSL_STRING_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:98,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:100,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:102,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    constantsTouched: []
    func_position:
      end: 108
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 108
    functionName: x509_verify_param_zero
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_STRING_pop_free
    - OPENSSL_free
    - sk_ASN1_OBJECT_pop_free
    linkageType: ''
    returnType: void
    signature: x509_verify_param_zero(X509_VERIFY_PARAM *param)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:114,1
    - Dst: x509_verify_param_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: X509_VERIFY_PARAM_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached:
    - x509_verify_param_zero
    - OPENSSL_zalloc
    linkageType: ''
    returnType: X509_VERIFY_PARAM
    signature: '*X509_VERIFY_PARAM_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: x509_verify_param_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:125,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: X509_VERIFY_PARAM_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - x509_verify_param_zero
    linkageType: ''
    returnType: void
    signature: X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: x509_verify_param_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:198,1
    - Dst: x509_verify_param_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:199,1
    - Dst: x509_verify_param_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:200,1
    - Dst: x509_verify_param_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:201,1
    - Dst: test_x509_verify_param_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:216,1
    - Dst: X509_VERIFY_PARAM_set1_policies
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:217,1
    - Dst: test_x509_verify_param_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:222,1
    - Dst: sk_OPENSSL_STRING_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:223,1
    - Dst: sk_OPENSSL_STRING_deep_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:227,1
    - Dst: test_x509_verify_param_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:234,1
    - Dst: X509_VERIFY_PARAM_set1_email
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:235,1
    - Dst: test_x509_verify_param_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:239,1
    - Dst: X509_VERIFY_PARAM_set1_ip
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:240,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - X509_VERIFY_PARAM*
    - X509_VERIFY_PARAM*
    constantsTouched: []
    func_position:
      end: 245
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 245
    functionName: X509_VERIFY_PARAM_inherit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_STRING_pop_free
    - sk_OPENSSL_STRING_deep_copy
    - X509_VERIFY_PARAM_set1_policies
    - x509_verify_param_copy
    - test_x509_verify_param_copy
    - X509_VERIFY_PARAM_set1_ip
    - X509_VERIFY_PARAM_set1_email
    linkageType: ''
    returnType: int
    signature: "X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *dest,\n                              const
      X509_VERIFY_PARAM *src)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_inherit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - X509_VERIFY_PARAM*
    - X509_VERIFY_PARAM*
    constantsTouched: []
    func_position:
      end: 256
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 256
    functionName: X509_VERIFY_PARAM_set1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached:
    - X509_VERIFY_PARAM_inherit
    linkageType: ''
    returnType: int
    signature: "X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to,\n                           const
      X509_VERIFY_PARAM *from)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:264,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:266,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:273,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - pdest
    - pdestlen
    - src
    - srclen
    argTypes:
    - char**
    - size_t*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 278
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 278
    functionName: int_x509_param_set1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - strlen
    - OPENSSL_free
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: "int_x509_param_set1(char **pdest, size_t *pdestlen,\n                               const
      char *src, size_t srclen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:282,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - param
    - name
    argTypes:
    - X509_VERIFY_PARAM*
    - char*
    constantsTouched: []
    func_position:
      end: 287
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 287
    functionName: X509_VERIFY_PARAM_set1_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - param
    - flags
    argTypes:
    - X509_VERIFY_PARAM*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 295
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 295
    functionName: X509_VERIFY_PARAM_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, unsigned long
      flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - param
    - flags
    argTypes:
    - X509_VERIFY_PARAM*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 302
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 302
    functionName: X509_VERIFY_PARAM_clear_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param,\n                                  unsigned
      long flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: X509_VERIFY_PARAM_get_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: X509_VERIFY_PARAM_get_flags(X509_VERIFY_PARAM *param)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: X509_VERIFY_PARAM_get_inh_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: X509_VERIFY_PARAM_get_inh_flags(const X509_VERIFY_PARAM *param)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - param
    - flags
    argTypes:
    - X509_VERIFY_PARAM*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 318
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 318
    functionName: X509_VERIFY_PARAM_set_inh_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: X509_VERIFY_PARAM_set_inh_flags(X509_VERIFY_PARAM *param, uint32_t
      flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_PURPOSE_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - param
    - purpose
    argTypes:
    - X509_VERIFY_PARAM*
    - int
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: X509_VERIFY_PARAM_set_purpose
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached:
    - X509_PURPOSE_set
    linkageType: ''
    returnType: int
    signature: X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_TRUST_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - param
    - trust
    argTypes:
    - X509_VERIFY_PARAM*
    - int
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: X509_VERIFY_PARAM_set_trust
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached:
    - X509_TRUST_set
    linkageType: ''
    returnType: int
    signature: X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - param
    - depth
    argTypes:
    - X509_VERIFY_PARAM*
    - int
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: X509_VERIFY_PARAM_set_depth
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - param
    - auth_level
    argTypes:
    - X509_VERIFY_PARAM*
    - int
    constantsTouched: []
    func_position:
      end: 338
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 338
    functionName: X509_VERIFY_PARAM_set_auth_level
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    constantsTouched: []
    func_position:
      end: 343
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 343
    functionName: X509_VERIFY_PARAM_get_time
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_t
    signature: X509_VERIFY_PARAM_get_time(const X509_VERIFY_PARAM *param)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - param
    - t
    argTypes:
    - X509_VERIFY_PARAM*
    - time_t
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: X509_VERIFY_PARAM_set_time
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_OBJECT_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:355,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:359,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - param
    - policy
    argTypes:
    - X509_VERIFY_PARAM*
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 362
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 362
    functionName: X509_VERIFY_PARAM_add0_policy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_OBJECT_push
    - sk_ASN1_OBJECT_new_null
    linkageType: ''
    returnType: int
    signature: "X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param,\n                                  ASN1_OBJECT
      *policy)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: int_x509_param_set_hosts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - param
    - name
    - namelen
    argTypes:
    - X509_VERIFY_PARAM*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 401
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 401
    functionName: X509_VERIFY_PARAM_set1_host
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - int_x509_param_set_hosts
    linkageType: ''
    returnType: int
    signature: "X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param,\n                                const
      char *name, size_t namelen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: int_x509_param_set_hosts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - param
    - name
    - namelen
    argTypes:
    - X509_VERIFY_PARAM*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 407
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 407
    functionName: X509_VERIFY_PARAM_add1_host
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - int_x509_param_set_hosts
    linkageType: ''
    returnType: int
    signature: "X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param,\n                                const
      char *name, size_t namelen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - param
    - flags
    argTypes:
    - X509_VERIFY_PARAM*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 413
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 413
    functionName: X509_VERIFY_PARAM_set_hostflags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param,\n                                     unsigned
      int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    constantsTouched: []
    func_position:
      end: 418
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 418
    functionName: X509_VERIFY_PARAM_get0_peername
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *param)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - X509_VERIFY_PARAM*
    - X509_VERIFY_PARAM*
    constantsTouched: []
    func_position:
      end: 436
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 436
    functionName: X509_VERIFY_PARAM_move_peername
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: "X509_VERIFY_PARAM_move_peername(X509_VERIFY_PARAM *to,\n                                     X509_VERIFY_PARAM
      *from)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: int_x509_param_set1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - param
    - email
    - emaillen
    argTypes:
    - X509_VERIFY_PARAM*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 443
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 443
    functionName: X509_VERIFY_PARAM_set1_email
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached:
    - int_x509_param_set1
    linkageType: ''
    returnType: int
    signature: "X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param,\n                                 const
      char *email, size_t emaillen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: int_x509_param_set1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:450,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - param
    - ip
    - iplen
    argTypes:
    - X509_VERIFY_PARAM*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 452
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 452
    functionName: X509_VERIFY_PARAM_set1_ip
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached:
    - int_x509_param_set1
    linkageType: ''
    returnType: int
    signature: "X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param,\n                              const
      unsigned char *ip, size_t iplen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: a2i_ipadd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:459,1
    - Dst: X509_VERIFY_PARAM_set1_ip
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - param
    - ipasc
    argTypes:
    - X509_VERIFY_PARAM*
    - char*
    constantsTouched: []
    func_position:
      end: 463
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 463
    functionName: X509_VERIFY_PARAM_set1_ip_asc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - a2i_ipadd
    - X509_VERIFY_PARAM_set1_ip
    linkageType: ''
    returnType: int
    signature: X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, const char
      *ipasc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    constantsTouched: []
    func_position:
      end: 468
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 468
    functionName: X509_VERIFY_PARAM_get_depth
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    constantsTouched: []
    func_position:
      end: 473
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 473
    functionName: X509_VERIFY_PARAM_get_auth_level
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: X509_VERIFY_PARAM_get_auth_level(const X509_VERIFY_PARAM *param)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    constantsTouched: []
    func_position:
      end: 478
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 478
    functionName: X509_VERIFY_PARAM_get0_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_VERIFY_PARAM*
    - X509_VERIFY_PARAM*
    constantsTouched: []
    func_position:
      end: 551
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 551
    functionName: table_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: table_cmp(const X509_VERIFY_PARAM *a, const X509_VERIFY_PARAM *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_VERIFY_PARAM**
    - X509_VERIFY_PARAM**
    constantsTouched: []
    func_position:
      end: 560
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 560
    functionName: param_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 2
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "param_cmp(const X509_VERIFY_PARAM *const *a,\n                     const
      X509_VERIFY_PARAM *const *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_VERIFY_PARAM_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:567,1
    - Dst: sk_X509_VERIFY_PARAM_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:571,1
    - Dst: sk_X509_VERIFY_PARAM_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:573,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:574,1
    - Dst: sk_X509_VERIFY_PARAM_delete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:575,1
    - Dst: sk_X509_VERIFY_PARAM_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:578,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    constantsTouched: []
    func_position:
      end: 581
      start: 562
    functionDepth: 2
    functionLinenumber: 562
    functionLinenumberEnd: 581
    functionName: X509_VERIFY_PARAM_add0_table
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - sk_X509_VERIFY_PARAM_value
    - X509_VERIFY_PARAM_free
    - sk_X509_VERIFY_PARAM_push
    - sk_X509_VERIFY_PARAM_new
    - sk_X509_VERIFY_PARAM_delete
    - sk_X509_VERIFY_PARAM_find
    linkageType: ''
    returnType: int
    signature: X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_VERIFY_PARAM_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 589
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 589
    functionName: X509_VERIFY_PARAM_get_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - sk_X509_VERIFY_PARAM_num
    linkageType: ''
    returnType: int
    signature: X509_VERIFY_PARAM_get_count(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_VERIFY_PARAM_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 597
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 597
    functionName: X509_VERIFY_PARAM_get0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - sk_X509_VERIFY_PARAM_value
    linkageType: ''
    returnType: X509_VERIFY_PARAM
    signature: '*X509_VERIFY_PARAM_get0(int id)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_VERIFY_PARAM_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:606,1
    - Dst: sk_X509_VERIFY_PARAM_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:608,1
    - Dst: OBJ_bsearch_table
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:610,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 611
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 611
    functionName: X509_VERIFY_PARAM_lookup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - OBJ_bsearch_table
    - sk_X509_VERIFY_PARAM_find
    - sk_X509_VERIFY_PARAM_value
    linkageType: ''
    returnType: X509_VERIFY_PARAM
    signature: '*X509_VERIFY_PARAM_lookup(const char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_VERIFY_PARAM_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 617
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 617
    functionName: X509_VERIFY_PARAM_table_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - sk_X509_VERIFY_PARAM_pop_free
    linkageType: ''
    returnType: void
    signature: X509_VERIFY_PARAM_table_cleanup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_print_ex_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - x
    argTypes:
    - FILE*
    - X509*
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: X509_print_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c
    functionUses: 0
    functionsReached:
    - X509_print_ex_fp
    linkageType: ''
    returnType: int
    signature: X509_print_fp(FILE *fp, X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:31,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:31,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:32,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:35,1
    - Dst: X509_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:36,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - fp
    - x
    - nmflag
    - cflag
    argTypes:
    - FILE*
    - X509*
    - unsigned long
    - unsigned long
    constantsTouched: []
    func_position:
      end: 39
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 39
    functionName: X509_print_ex_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c
    functionUses: 1
    functionsReached:
    - X509_print_ex
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - BIO_new
    - X509err
    linkageType: ''
    returnType: int
    signature: "X509_print_ex_fp(FILE *fp, X509 *x, unsigned long nmflag,\n                     unsigned
      long cflag)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - X509*
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: X509_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c
    functionUses: 0
    functionsReached:
    - X509_print_ex
    linkageType: ''
    returnType: int
    signature: X509_print(BIO *bp, X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:67,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:69,1
    - Dst: X509_get_version
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:73,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:75,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:78,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:84,1
    - Dst: X509_get_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:87,1
    - Dst: ERR_set_mark
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:89,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:90,1
    - Dst: ERR_pop_to_mark
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:91,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:104,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:108,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:112,1
    - Dst: X509_get0_tbs_sigalg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:121,1
    - Dst: X509_signature_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:122,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:127,1
    - Dst: X509_NAME_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:129,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:129,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:132,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:136,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:138,1
    - Dst: ASN1_TIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:140,1
    - Dst: X509_get0_notBefore
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:140,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:142,1
    - Dst: ASN1_TIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:144,1
    - Dst: X509_get0_notAfter
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:144,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:146,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:150,1
    - Dst: X509_NAME_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:152,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:153,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:155,1
    - Dst: X509_get_X509_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:159,1
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:161,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:162,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:164,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:166,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:168,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:171,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:173,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:174,1
    - Dst: EVP_PKEY_print_public
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:176,1
    - Dst: X509_get0_uids
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:182,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:184,1
    - Dst: X509_signature_dump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:186,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:190,1
    - Dst: X509_signature_dump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:192,1
    - Dst: X509V3_extensions_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:198,1
    - Dst: X509_get0_extensions
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:199,1
    - Dst: X509_get0_signature
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:204,1
    - Dst: X509_signature_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:205,1
    - Dst: X509_aux_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:209,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:214,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 168
    argCount: 4
    argNames:
    - bp
    - x
    - nmflags
    - cflag
    argTypes:
    - BIO*
    - X509*
    - unsigned long
    - unsigned long
    constantsTouched: []
    func_position:
      end: 216
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 216
    functionName: X509_print_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c
    functionUses: 3
    functionsReached:
    - X509_get_version
    - X509_get0_signature
    - X509_get0_uids
    - ERR_pop_to_mark
    - ERR_set_mark
    - ASN1_TIME_print
    - BIO_printf
    - X509V3_extensions_print
    - X509_signature_dump
    - X509_get_issuer_name
    - X509_signature_print
    - X509_aux_print
    - X509_PUBKEY_get0_param
    - i2a_ASN1_OBJECT
    - X509_NAME_print_ex
    - X509_get0_notBefore
    - X509_get_serialNumber
    - X509_get0_tbs_sigalg
    - ASN1_INTEGER_get
    - EVP_PKEY_print_public
    - X509_get0_notAfter
    - OPENSSL_free
    - X509_get_X509_PUBKEY
    - BIO_puts
    - ERR_print_errors
    - X509_get_subject_name
    - X509_get0_pubkey
    - X509_get0_extensions
    - BIO_write
    linkageType: ''
    returnType: int
    signature: "X509_print_ex(BIO *bp, X509 *x, unsigned long nmflags,\n                  unsigned
      long cflag)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:231,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:233,1
    - Dst: i2d_X509_NAME
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:234,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:235,1
    - Dst: i2d_X509_NAME
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:237,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:239,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:239,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:242,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:245,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:251,1
    - Dst: X509_get0_pubkey_bitstr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:254,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:259,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:259,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:260,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:260,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:264,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:267,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:271,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - X509*
    constantsTouched: []
    func_position:
      end: 273
      start: 218
    functionDepth: 5
    functionLinenumber: 218
    functionLinenumberEnd: 273
    functionName: X509_ocspid_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c
    functionUses: 0
    functionsReached:
    - EVP_Digest
    - X509_get0_pubkey_bitstr
    - EVP_sha1
    - i2d_X509_NAME
    - X509_get_subject_name
    - OPENSSL_free
    - ASN1_STRING_length
    - BIO_printf
    - ASN1_STRING_get0_data
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: X509_ocspid_print(BIO *bp, X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:284,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:286,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:289,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:292,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - bp
    - sig
    - indent
    argTypes:
    - BIO*
    - ASN1_STRING*
    - int
    constantsTouched: []
    func_position:
      end: 296
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 296
    functionName: X509_signature_dump
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    - BIO_write
    - BIO_indent
    linkageType: ''
    returnType: int
    signature: X509_signature_dump(BIO *bp, const ASN1_STRING *sig, int indent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:302,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:304,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:307,1
    - Dst: OBJ_find_sigid_algs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:311,1
    - Dst: EVP_PKEY_asn1_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:312,1
    - Dst: EVP_PKEY_ASN1_METHOD*::sig_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:314,1
    - Dst: X509_signature_dump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:318,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:319,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - bp
    - sigalg
    - sig
    argTypes:
    - BIO*
    - X509_ALGOR*
    - ASN1_STRING*
    constantsTouched: []
    func_position:
      end: 322
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 322
    functionName: X509_signature_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_asn1_find
    - BIO_puts
    - i2a_ASN1_OBJECT
    - OBJ_obj2nid
    - OBJ_find_sigid_algs
    - EVP_PKEY_ASN1_METHOD*::sig_print
    - X509_signature_dump
    linkageType: ''
    returnType: int
    signature: "X509_signature_print(BIO *bp, const X509_ALGOR *sigalg,\n                         const
      ASN1_STRING *sig)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:327,1
    - Dst: X509_trusted
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:331,1
    - Dst: X509_get0_trust_objects
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:333,1
    - Dst: X509_get0_reject_objects
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:334,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:337,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:338,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:340,1
    - Dst: OBJ_obj2txt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:343,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:344,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:345,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:347,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:349,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:352,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:353,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:355,1
    - Dst: OBJ_obj2txt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:358,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:359,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:360,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:362,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:364,1
    - Dst: X509_alias_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:365,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:367,1
    - Dst: X509_keyid_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:368,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:370,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:372,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c:373,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 3
    argNames:
    - out
    - x
    - indent
    argTypes:
    - BIO*
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 376
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 376
    functionName: X509_aux_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c
    functionUses: 1
    functionsReached:
    - X509_get0_reject_objects
    - sk_ASN1_OBJECT_value
    - BIO_puts
    - STACK_OF
    - sk_ASN1_OBJECT_num
    - OBJ_obj2txt
    - X509_alias_get0
    - X509_trusted
    - BIO_printf
    - X509_get0_trust_objects
    - BIO_write
    - X509_keyid_get0
    linkageType: ''
    returnType: int
    signature: X509_aux_print(BIO *out, X509 *x, int indent)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ok
    - e
    argTypes:
    - int
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: null_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: null_callback(int ok, X509_STORE_CTX *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 120
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 120
    functionName: cert_self_signed
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: int
    signature: cert_self_signed(X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:126,1
    - Dst: X509_STORE_CTX*::lookup_certs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:130,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:130,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:134,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:135,1
    - Dst: X509_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:136,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:139,1
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:140,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:143,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - x
    argTypes:
    - X509_STORE_CTX*
    - X509*
    constantsTouched: []
    func_position:
      end: 145
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 145
    functionName: lookup_cert_match
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_cmp
    - X509_up_ref
    - STACK_OF
    - sk_X509_pop_free
    - X509_get_subject_name
    - X509_STORE_CTX*::lookup_certs
    - sk_X509_num
    - sk_X509_value
    linkageType: ''
    returnType: X509
    signature: '*lookup_cert_match(X509_STORE_CTX *ctx, X509 *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:159,1
    - Dst: X509_STORE_CTX*::verify_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - x
    - depth
    - err
    argTypes:
    - X509_STORE_CTX*
    - X509*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 163
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 163
    functionName: verify_cb_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX*::verify_cb
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: verify_cb_cert(X509_STORE_CTX *ctx, X509 *x, int depth, int err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX*::verify_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - err
    argTypes:
    - X509_STORE_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: verify_cb_crl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX*::verify_cb
    linkageType: ''
    returnType: int
    signature: verify_cb_crl(X509_STORE_CTX *ctx, int err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:187,1
    - Dst: check_key_level
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:193,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:194,1
    - Dst: check_sig_level
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:200,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:201,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 205
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 205
    functionName: check_auth_level
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - check_sig_level
    - check_key_level
    - sk_X509_value
    - verify_cb_cert
    linkageType: ''
    returnType: int
    signature: check_auth_level(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build_chain
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:216,1
    - Dst: check_chain_extensions
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:217,1
    - Dst: check_auth_level
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:218,1
    - Dst: check_name_constraints
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:219,1
    - Dst: check_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:220,1
    - Dst: X509_get_pubkey_parameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:221,1
    - Dst: X509_STORE_CTX*::check_revocation
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:222,1
    - Dst: X509_chain_check_suiteb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:225,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:228,1
    - Dst: X509_STORE_CTX*::verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:233,1
    - Dst: internal_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:233,1
    - Dst: X509v3_asid_validate_path
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:239,1
    - Dst: X509v3_addr_validate_path
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:241,1
    - Dst: X509_STORE_CTX*::check_policy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:247,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 20
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 249
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 249
    functionName: verify_chain
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX*::check_revocation
    - X509_STORE_CTX*::verify
    - X509_chain_check_suiteb
    - check_auth_level
    - check_id
    - internal_verify
    - X509_STORE_CTX*::check_policy
    - X509v3_asid_validate_path
    - check_name_constraints
    - verify_cb_cert
    - build_chain
    - check_chain_extensions
    - X509v3_addr_validate_path
    - X509_get_pubkey_parameters
    linkageType: ''
    returnType: int
    signature: verify_chain(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:257,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:267,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:276,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:277,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:278,1
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:282,1
    - Dst: check_key_level
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:286,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:287,1
    - Dst: DANETLS_ENABLED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:290,1
    - Dst: dane_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:291,1
    - Dst: verify_chain
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:293,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 303
      start: 251
    functionDepth: 4
    functionLinenumber: 251
    functionLinenumberEnd: 303
    functionName: X509_verify_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    - dane_verify
    - check_key_level
    - DANETLS_ENABLED
    - X509err
    - verify_cb_cert
    - verify_chain
    - sk_X509_push
    - sk_X509_new_null
    linkageType: ''
    returnType: int
    signature: X509_verify_cert(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:313,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:314,1
    - Dst: X509_STORE_CTX*::check_issued
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:315,1
    - Dst: x509_check_cert_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:317,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - sk
    - x
    argTypes:
    - X509_STORE_CTX*
    - STACK_OF*
    - X509*
    constantsTouched: []
    func_position:
      end: 322
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 322
    functionName: find_issuer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX*::check_issued
    - sk_X509_value
    - x509_check_cert_time
    - sk_X509_num
    linkageType: ''
    returnType: X509
    signature: '*find_issuer(X509_STORE_CTX *ctx, STACK_OF(X509) *sk, X509 *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cert_self_signed
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:330,1
    - Dst: X509_check_issued
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:331,1
    - Dst: cert_self_signed
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:336,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:336,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:338,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:339,1
    - Dst: X509_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:340,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - x
    - issuer
    argTypes:
    - X509_STORE_CTX*
    - X509*
    - X509*
    constantsTouched: []
    func_position:
      end: 348
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 348
    functionName: check_issued
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 3
    functionsReached:
    - X509_cmp
    - cert_self_signed
    - X509_check_issued
    - sk_X509_num
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: check_issued(X509_STORE_CTX *ctx, X509 *x, X509 *issuer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:354,1
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - issuer
    - ctx
    - x
    argTypes:
    - X509**
    - X509_STORE_CTX*
    - X509*
    constantsTouched: []
    func_position:
      end: 360
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 360
    functionName: get_issuer_sk
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - find_issuer
    - X509_up_ref
    linkageType: ''
    returnType: int
    signature: get_issuer_sk(X509 **issuer, X509_STORE_CTX *ctx, X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:364,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:367,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:368,1
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:369,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:369,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:371,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:372,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:373,1
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:376,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - nm
    argTypes:
    - X509_STORE_CTX*
    - X509_NAME*
    constantsTouched: []
    func_position:
      end: 380
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 380
    functionName: lookup_certs_sk
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    - STACK_OF
    - sk_X509_pop_free
    - X509_get_subject_name
    - sk_X509_num
    - sk_X509_value
    - X509_NAME_cmp
    - sk_X509_push
    - sk_X509_new_null
    linkageType: ''
    returnType: STACK_OF
    signature: '*lookup_certs_sk(X509_STORE_CTX *ctx, X509_NAME *nm)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_trust
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:410,1
    - Dst: X509_check_purpose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:418,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:430,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - ctx
    - x
    - purpose
    - depth
    - must_be_ca
    argTypes:
    - X509_STORE_CTX*
    - X509*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 431
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 431
    functionName: check_purpose
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 5
    functionsReached:
    - X509_check_trust
    - X509_check_purpose
    - verify_cb_cert
    linkageType: ''
    returnType: int
    signature: "check_purpose(X509_STORE_CTX *ctx, X509 *x, int purpose, int depth,\n
      \                        int must_be_ca)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:470,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:473,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:478,1
    - Dst: X509_check_ca
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:482,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:510,1
    - Dst: check_purpose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:513,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:519,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:544,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 67
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 556
      start: 438
    functionDepth: 3
    functionLinenumber: 438
    functionLinenumberEnd: 556
    functionName: check_chain_extensions
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - X509_check_ca
    - sk_X509_value
    - verify_cb_cert
    - check_purpose
    linkageType: ''
    returnType: int
    signature: check_chain_extensions(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:563,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:564,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:578,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:579,1
    - Dst: X509_NAME_entry_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:595,1
    - Dst: X509_NAME_entry_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:596,1
    - Dst: X509_NAME_ENTRY_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:605,1
    - Dst: X509_NAME_get_entry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:605,1
    - Dst: X509_NAME_ENTRY_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:607,1
    - Dst: X509_NAME_get_entry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:607,1
    - Dst: X509_NAME_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:617,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:619,1
    - Dst: X509_NAME_delete_entry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:625,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:627,1
    - Dst: X509_NAME_ENTRY_get_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:627,1
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:630,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:634,1
    - Dst: X509_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:635,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:639,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:649,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:650,1
    - Dst: NAME_CONSTRAINTS_check_CN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:657,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:665,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 56
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 673
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 673
    functionName: check_name_constraints
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    - X509_NAME_delete_entry
    - X509_get_subject_name
    - X509_NAME_get_entry
    - X509_NAME_ENTRY_free
    - sk_X509_num
    - X509_NAME_ENTRY_set
    - X509_NAME_free
    - NAME_CONSTRAINTS_check_CN
    - X509_NAME_dup
    - sk_X509_value
    - X509_NAME_cmp
    - verify_cb_cert
    - X509_NAME_ENTRY_get_object
    - X509_NAME_entry_count
    - X509err
    - X509_get_issuer_name
    linkageType: ''
    returnType: int
    signature: check_name_constraints(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - errcode
    argTypes:
    - X509_STORE_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 678
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 678
    functionName: check_id_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - verify_cb_cert
    linkageType: ''
    returnType: int
    signature: check_id_error(X509_STORE_CTX *ctx, int errcode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:687,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:691,1
    - Dst: X509_check_host
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:692,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - x
    - vpm
    argTypes:
    - X509*
    - X509_VERIFY_PARAM*
    constantsTouched: []
    func_position:
      end: 696
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 696
    functionName: check_hosts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_check_host
    - OPENSSL_free
    - sk_OPENSSL_STRING_value
    linkageType: ''
    returnType: int
    signature: check_hosts(X509 *x, X509_VERIFY_PARAM *vpm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_hosts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:702,1
    - Dst: check_id_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:703,1
    - Dst: X509_check_email
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:706,1
    - Dst: check_id_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:707,1
    - Dst: X509_check_ip
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:710,1
    - Dst: check_id_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:711,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 715
      start: 698
    functionDepth: 3
    functionLinenumber: 698
    functionLinenumberEnd: 715
    functionName: check_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - check_id_error
    - X509_check_email
    - check_hosts
    - X509_check_ip
    linkageType: ''
    returnType: int
    signature: check_id(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DANETLS_HAS_TA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:730,1
    - Dst: check_dane_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:731,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:745,1
    - Dst: X509_check_trust
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:746,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:770,1
    - Dst: lookup_cert_match
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:771,1
    - Dst: X509_check_trust
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:779,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:781,1
    - Dst: sk_X509_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:786,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:787,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:799,1
    - Dst: DANETLS_ENABLED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:804,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 57
    argCount: 2
    argNames:
    - ctx
    - num_untrusted
    argTypes:
    - X509_STORE_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 812
      start: 717
    functionDepth: 3
    functionLinenumber: 717
    functionLinenumberEnd: 812
    functionName: check_trust
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 3
    functionsReached:
    - DANETLS_HAS_TA
    - check_dane_issuer
    - sk_X509_set
    - DANETLS_ENABLED
    - lookup_cert_match
    - sk_X509_value
    - verify_cb_cert
    - X509_free
    - X509_check_trust
    linkageType: ''
    returnType: int
    signature: check_trust(X509_STORE_CTX *ctx, int num_untrusted)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:820,1
    - Dst: check_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:829,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 834
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 834
    functionName: check_revocation
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - check_cert
    - sk_X509_num
    linkageType: ''
    returnType: int
    signature: check_revocation(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:841,1
    - Dst: X509_STORE_CTX*::get_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:856,1
    - Dst: get_crl_delta
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:858,1
    - Dst: verify_cb_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:863,1
    - Dst: X509_STORE_CTX*::check_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:867,1
    - Dst: X509_STORE_CTX*::check_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:872,1
    - Dst: X509_STORE_CTX*::cert_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:875,1
    - Dst: X509_STORE_CTX*::cert_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:883,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:888,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:889,1
    - Dst: verify_cb_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:897,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:902,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:903,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 907
      start: 836
    functionDepth: 2
    functionLinenumber: 836
    functionLinenumberEnd: 907
    functionName: check_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - get_crl_delta
    - X509_STORE_CTX*::get_crl
    - X509_CRL_free
    - X509_STORE_CTX*::check_crl
    - sk_X509_value
    - X509_STORE_CTX*::cert_crl
    - verify_cb_crl
    linkageType: ''
    returnType: int
    signature: check_cert(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_cmp_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:925,1
    - Dst: X509_CRL_get0_lastUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:925,1
    - Dst: verify_cb_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:929,1
    - Dst: verify_cb_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:936,1
    - Dst: X509_CRL_get0_nextUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:940,1
    - Dst: X509_cmp_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:941,1
    - Dst: X509_CRL_get0_nextUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:941,1
    - Dst: verify_cb_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:946,1
    - Dst: verify_cb_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:953,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 3
    argNames:
    - ctx
    - crl
    - notify
    argTypes:
    - X509_STORE_CTX*
    - X509_CRL*
    - int
    constantsTouched: []
    func_position:
      end: 962
      start: 911
    functionDepth: 2
    functionLinenumber: 911
    functionLinenumberEnd: 962
    functionName: check_crl_time
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - verify_cb_crl
    - X509_cmp_time
    - X509_CRL_get0_nextUpdate
    - X509_CRL_get0_lastUpdate
    linkageType: ''
    returnType: int
    signature: check_crl_time(X509_STORE_CTX *ctx, X509_CRL *crl, int notify)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_CRL_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:974,1
    - Dst: sk_X509_CRL_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:975,1
    - Dst: get_crl_score
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:977,1
    - Dst: ASN1_TIME_diff
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:983,1
    - Dst: X509_CRL_get0_lastUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:983,1
    - Dst: X509_CRL_get0_lastUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:984,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1000,1
    - Dst: X509_CRL_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1005,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1006,1
    - Dst: get_delta_sk
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1008,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 7
    argNames:
    - ctx
    - pcrl
    - pdcrl
    - pissuer
    - pscore
    - preasons
    - crls
    argTypes:
    - X509_STORE_CTX*
    - X509_CRL**
    - X509_CRL**
    - X509**
    - int*
    - unsigned int*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 1015
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 1015
    functionName: get_crl_sk
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_CRL_free
    - X509_CRL_get0_lastUpdate
    - get_delta_sk
    - ASN1_TIME_diff
    - X509_CRL_up_ref
    - sk_X509_CRL_value
    - get_crl_score
    - sk_X509_CRL_num
    linkageType: ''
    returnType: int
    signature: "get_crl_sk(X509_STORE_CTX *ctx, X509_CRL **pcrl, X509_CRL **pdcrl,\n
      \                     X509 **pissuer, int *pscore, unsigned int *preasons,\n
      \                     STACK_OF(X509_CRL) *crls)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL_get_ext_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1026,1
    - Dst: X509_CRL_get_ext_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1029,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1031,1
    - Dst: X509_CRL_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1031,1
    - Dst: X509_CRL_get_ext_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1035,1
    - Dst: X509_CRL_get_ext_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1039,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1041,1
    - Dst: X509_CRL_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1041,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1051,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - a
    - b
    - nid
    argTypes:
    - X509_CRL*
    - X509_CRL*
    - int
    constantsTouched: []
    func_position:
      end: 1055
      start: 1022
    functionDepth: 2
    functionLinenumber: 1022
    functionLinenumberEnd: 1055
    functionName: crl_extension_match
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_CRL_get_ext_by_NID
    - X509_EXTENSION_get_data
    - X509_CRL_get_ext
    - ASN1_OCTET_STRING_cmp
    linkageType: ''
    returnType: int
    signature: crl_extension_match(X509_CRL *a, X509_CRL *b, int nid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1068,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1068,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1068,1
    - Dst: crl_extension_match
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1071,1
    - Dst: crl_extension_match
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1073,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1076,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1079,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - delta
    - base
    argTypes:
    - X509_CRL*
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 1082
      start: 1059
    functionDepth: 3
    functionLinenumber: 1059
    functionLinenumberEnd: 1082
    functionName: check_delta_base
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - crl_extension_match
    - X509_CRL_get_issuer
    - ASN1_INTEGER_cmp
    - X509_NAME_cmp
    linkageType: ''
    returnType: int
    signature: check_delta_base(X509_CRL *delta, X509_CRL *base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_CRL_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1098,1
    - Dst: sk_X509_CRL_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1099,1
    - Dst: check_delta_base
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1100,1
    - Dst: check_crl_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1101,1
    - Dst: X509_CRL_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - ctx
    - dcrl
    - pscore
    - base
    - crls
    argTypes:
    - X509_STORE_CTX*
    - X509_CRL**
    - int*
    - X509_CRL*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 1109
      start: 1089
    functionDepth: 4
    functionLinenumber: 1089
    functionLinenumberEnd: 1109
    functionName: get_delta_sk
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - check_crl_time
    - check_delta_base
    - X509_CRL_up_ref
    - sk_X509_CRL_value
    - sk_X509_CRL_num
    linkageType: ''
    returnType: void
    signature: "get_delta_sk(X509_STORE_CTX *ctx, X509_CRL **dcrl, int *pscore,\n
      \                        X509_CRL *base, STACK_OF(X509_CRL) *crls)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1144,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1144,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1144,1
    - Dst: check_crl_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1154,1
    - Dst: crl_akid_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1158,1
    - Dst: crl_crldp_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1167,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 5
    argNames:
    - ctx
    - pissuer
    - preasons
    - crl
    - x
    argTypes:
    - X509_STORE_CTX*
    - X509**
    - unsigned int*
    - X509_CRL*
    - X509*
    constantsTouched: []
    func_position:
      end: 1179
      start: 1119
    functionDepth: 3
    functionLinenumber: 1119
    functionLinenumberEnd: 1179
    functionName: get_crl_score
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - crl_crldp_check
    - X509_CRL_get_issuer
    - check_crl_time
    - X509_NAME_cmp
    - X509_get_issuer_name
    - crl_akid_check
    linkageType: ''
    returnType: int
    signature: "get_crl_score(X509_STORE_CTX *ctx, X509 **pissuer,\n                         unsigned
      int *preasons, X509_CRL *crl, X509 *x)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL_get_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1185,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1189,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1192,1
    - Dst: X509_check_akid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1194,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1202,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1203,1
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1204,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1204,1
    - Dst: X509_check_akid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1206,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1222,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1223,1
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1224,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1224,1
    - Dst: X509_check_akid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1226,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - ctx
    - crl
    - pissuer
    - pcrl_score
    argTypes:
    - X509_STORE_CTX*
    - X509_CRL*
    - X509**
    - int*
    constantsTouched: []
    func_position:
      end: 1232
      start: 1181
    functionDepth: 1
    functionLinenumber: 1181
    functionLinenumberEnd: 1232
    functionName: crl_akid_check
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - X509_CRL_get_issuer
    - X509_get_subject_name
    - sk_X509_num
    - X509_check_akid
    - sk_X509_value
    - X509_NAME_cmp
    linkageType: ''
    returnType: void
    signature: "crl_akid_check(X509_STORE_CTX *ctx, X509_CRL *crl,\n                           X509
      **pissuer, int *pcrl_score)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1249,1
    - Dst: X509_STORE_CTX_set0_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1254,1
    - Dst: X509_verify_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1260,1
    - Dst: check_crl_chain
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1265,1
    - Dst: X509_STORE_CTX_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ctx
    - x
    argTypes:
    - X509_STORE_CTX*
    - X509*
    constantsTouched: []
    func_position:
      end: 1269
      start: 1241
    functionDepth: 5
    functionLinenumber: 1241
    functionLinenumberEnd: 1269
    functionName: check_crl_path
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_init
    - X509_STORE_CTX_set0_param
    - check_crl_chain
    - X509_STORE_CTX_cleanup
    - X509_verify_cert
    linkageType: ''
    returnType: int
    signature: check_crl_path(X509_STORE_CTX *ctx, X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1315,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1333,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1334,1
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1337,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1345,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1346,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1347,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1348,1
    - Dst: GENERAL_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1349,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - DIST_POINT_NAME*
    - DIST_POINT_NAME*
    constantsTouched: []
    func_position:
      end: 1356
      start: 1300
    functionDepth: 1
    functionLinenumber: 1300
    functionLinenumberEnd: 1356
    functionName: idp_check_dp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - sk_GENERAL_NAME_value
    - sk_GENERAL_NAME_num
    - X509_NAME_cmp
    - GENERAL_NAME_cmp
    linkageType: ''
    returnType: int
    signature: idp_check_dp(DIST_POINT_NAME *a, DIST_POINT_NAME *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL_get_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1361,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1365,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1366,1
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1369,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - dp
    - crl
    - crl_score
    argTypes:
    - DIST_POINT*
    - X509_CRL*
    - int
    constantsTouched: []
    func_position:
      end: 1373
      start: 1358
    functionDepth: 1
    functionLinenumber: 1358
    functionLinenumberEnd: 1373
    functionName: crldp_check_crlissuer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - sk_GENERAL_NAME_value
    - sk_GENERAL_NAME_num
    - X509_CRL_get_issuer
    - X509_NAME_cmp
    linkageType: ''
    returnType: int
    signature: crldp_check_crlissuer(DIST_POINT *dp, X509_CRL *crl, int crl_score)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_DIST_POINT_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1391,1
    - Dst: sk_DIST_POINT_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1392,1
    - Dst: crldp_check_crlissuer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1393,1
    - Dst: idp_check_dp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1394,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 4
    argNames:
    - x
    - crl
    - crl_score
    - preasons
    argTypes:
    - X509*
    - X509_CRL*
    - int
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 1404
      start: 1377
    functionDepth: 2
    functionLinenumber: 1377
    functionLinenumberEnd: 1404
    functionName: crl_crldp_check
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - sk_DIST_POINT_value
    - idp_check_dp
    - crldp_check_crlissuer
    - sk_DIST_POINT_num
    linkageType: ''
    returnType: int
    signature: "crl_crldp_check(X509 *x, X509_CRL *crl, int crl_score,\n                           unsigned
      int *preasons)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1419,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1420,1
    - Dst: get_crl_sk
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1423,1
    - Dst: X509_STORE_CTX*::lookup_crls
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1430,1
    - Dst: get_crl_sk
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1436,1
    - Dst: sk_X509_CRL_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1438,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - ctx
    - pcrl
    - pdcrl
    - x
    argTypes:
    - X509_STORE_CTX*
    - X509_CRL**
    - X509_CRL**
    - X509*
    constantsTouched: []
    func_position:
      end: 1451
      start: 1411
    functionDepth: 2
    functionLinenumber: 1411
    functionLinenumberEnd: 1451
    functionName: get_crl_delta
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - STACK_OF
    - X509_STORE_CTX*::lookup_crls
    - get_crl_sk
    - X509_get_issuer_name
    - sk_X509_CRL_pop_free
    linkageType: ''
    returnType: int
    signature: "get_crl_delta(X509_STORE_CTX *ctx,\n                         X509_CRL
      **pcrl, X509_CRL **pdcrl, X509 *x)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1469,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1471,1
    - Dst: X509_STORE_CTX*::check_issued
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1473,1
    - Dst: verify_cb_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1474,1
    - Dst: verify_cb_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1488,1
    - Dst: verify_cb_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1492,1
    - Dst: check_crl_path
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1496,1
    - Dst: verify_cb_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1497,1
    - Dst: verify_cb_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1501,1
    - Dst: check_crl_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1506,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1510,1
    - Dst: verify_cb_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1513,1
    - Dst: verify_cb_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1519,1
    - Dst: X509_CRL_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1522,1
    - Dst: verify_cb_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1523,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 33
    argCount: 2
    argNames:
    - ctx
    - crl
    argTypes:
    - X509_STORE_CTX*
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 1527
      start: 1454
    functionDepth: 6
    functionLinenumber: 1454
    functionLinenumberEnd: 1527
    functionName: check_crl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - X509_CRL_verify
    - check_crl_time
    - X509_STORE_CTX*::check_issued
    - X509_get0_pubkey
    - check_crl_path
    - sk_X509_value
    - verify_cb_crl
    linkageType: ''
    returnType: int
    signature: check_crl(X509_STORE_CTX *ctx, X509_CRL *crl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: verify_cb_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1542,1
    - Dst: X509_CRL_get0_by_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1548,1
    - Dst: verify_cb_crl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1551,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - crl
    - x
    argTypes:
    - X509_STORE_CTX*
    - X509_CRL*
    - X509*
    constantsTouched: []
    func_position:
      end: 1556
      start: 1530
    functionDepth: 2
    functionLinenumber: 1530
    functionLinenumberEnd: 1556
    functionName: cert_crl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - X509_CRL_get0_by_cert
    - verify_cb_crl
    linkageType: ''
    returnType: int
    signature: cert_crl(X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1575,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1576,1
    - Dst: X509_policy_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1580,1
    - Dst: sk_X509_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1583,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1586,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1595,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1596,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1600,1
    - Dst: X509_STORE_CTX*::verify_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1609,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1612,1
    - Dst: X509_STORE_CTX*::verify_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1624,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 1629
      start: 1558
    functionDepth: 2
    functionLinenumber: 1558
    functionLinenumberEnd: 1629
    functionName: check_policy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - X509_STORE_CTX*::verify_cb
    - X509_policy_check
    - sk_X509_num
    - sk_X509_value
    - verify_cb_cert
    - sk_X509_push
    - sk_X509_pop
    - X509err
    linkageType: ''
    returnType: int
    signature: check_policy(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_cmp_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1650,1
    - Dst: X509_get0_notBefore
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1650,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1653,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1656,1
    - Dst: X509_cmp_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1659,1
    - Dst: X509_get0_notAfter
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1659,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1662,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1665,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - x
    - depth
    argTypes:
    - X509_STORE_CTX*
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 1668
      start: 1638
    functionDepth: 2
    functionLinenumber: 1638
    functionLinenumberEnd: 1668
    functionName: x509_check_cert_time
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 2
    functionsReached:
    - verify_cb_cert
    - X509_cmp_time
    - X509_get0_notBefore
    - X509_get0_notAfter
    linkageType: ''
    returnType: int
    signature: x509_check_cert_time(X509_STORE_CTX *ctx, X509 *x, int depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1673,1
    - Dst: X509_STORE_CTX*::check_issued
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1687,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1695,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1699,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1716,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1717,1
    - Dst: X509_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1720,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1721,1
    - Dst: x509_check_cert_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1729,1
    - Dst: X509_STORE_CTX*::verify_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1739,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1744,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 1748
      start: 1670
    functionDepth: 3
    functionLinenumber: 1670
    functionLinenumberEnd: 1748
    functionName: internal_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - x509_check_cert_time
    - X509_STORE_CTX*::verify_cb
    - X509_STORE_CTX*::check_issued
    - X509_get0_pubkey
    - X509_verify
    - sk_X509_value
    - verify_cb_cert
    linkageType: ''
    returnType: int
    signature: internal_verify(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_cmp_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctm
    argTypes:
    - ASN1_TIME*
    constantsTouched: []
    func_position:
      end: 1753
      start: 1750
    functionDepth: 1
    functionLinenumber: 1750
    functionLinenumberEnd: 1753
    functionName: X509_cmp_current_time
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_cmp_time
    linkageType: ''
    returnType: int
    signature: X509_cmp_current_time(const ASN1_TIME *ctm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1778,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1788,1
    - Dst: X509_time_adj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1849,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1865,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 79
    argCount: 2
    argNames:
    - ctm
    - cmp_time
    argTypes:
    - ASN1_TIME*
    - time_t*
    constantsTouched: []
    func_position:
      end: 1870
      start: 1755
    functionDepth: 1
    functionLinenumber: 1755
    functionLinenumberEnd: 1870
    functionName: X509_cmp_time
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 3
    functionsReached:
    - strcmp
    - memcpy
    - X509_time_adj
    linkageType: ''
    returnType: int
    signature: X509_cmp_time(const ASN1_TIME *ctm, time_t *cmp_time)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_time_adj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - adj
    argTypes:
    - ASN1_TIME*
    - long
    constantsTouched: []
    func_position:
      end: 1875
      start: 1872
    functionDepth: 1
    functionLinenumber: 1872
    functionLinenumberEnd: 1875
    functionName: X509_gmtime_adj
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 2
    functionsReached:
    - X509_time_adj
    linkageType: ''
    returnType: ASN1_TIME
    signature: '*X509_gmtime_adj(ASN1_TIME *s, long adj)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_time_adj_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - offset_sec
    - in_tm
    argTypes:
    - ASN1_TIME*
    - long
    - time_t*
    constantsTouched: []
    func_position:
      end: 1880
      start: 1877
    functionDepth: 1
    functionLinenumber: 1877
    functionLinenumberEnd: 1880
    functionName: X509_time_adj
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 2
    functionsReached:
    - X509_time_adj_ex
    linkageType: ''
    returnType: ASN1_TIME
    signature: '*X509_time_adj(ASN1_TIME *s, long offset_sec, time_t *in_tm)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1890,1
    - Dst: ASN1_UTCTIME_adj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1894,1
    - Dst: ASN1_GENERALIZEDTIME_adj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1896,1
    - Dst: ASN1_TIME_adj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1898,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - s
    - offset_day
    - offset_sec
    - in_tm
    argTypes:
    - ASN1_TIME*
    - int
    - long
    - time_t*
    constantsTouched: []
    func_position:
      end: 1899
      start: 1882
    functionDepth: 1
    functionLinenumber: 1882
    functionLinenumberEnd: 1899
    functionName: X509_time_adj_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - ASN1_TIME_adj
    - time
    - ASN1_UTCTIME_adj
    - ASN1_GENERALIZEDTIME_adj
    linkageType: ''
    returnType: ASN1_TIME
    signature: "*X509_time_adj_ex(ASN1_TIME *s,\n                            int offset_day,
      long offset_sec, time_t *in_tm)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1943,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1946,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1951,1
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1955,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1955,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1955,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1956,1
    - Dst: crl_extension_match
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1960,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1961,1
    - Dst: crl_extension_match
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1964,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1965,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1969,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1970,1
    - Dst: X509_CRL_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1974,1
    - Dst: X509_CRL_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1975,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1976,1
    - Dst: X509_CRL_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1980,1
    - Dst: X509_CRL_set_version
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1981,1
    - Dst: X509_CRL_set_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1984,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1984,1
    - Dst: X509_CRL_set1_lastUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1987,1
    - Dst: X509_CRL_get0_lastUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1987,1
    - Dst: X509_CRL_set1_nextUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1989,1
    - Dst: X509_CRL_get0_nextUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1989,1
    - Dst: X509_CRL_add1_ext_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:1994,1
    - Dst: X509_CRL_get_ext_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2002,1
    - Dst: X509_CRL_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2004,1
    - Dst: X509_CRL_add_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2005,1
    - Dst: X509_CRL_get_REVOKED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2011,1
    - Dst: sk_X509_REVOKED_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2013,1
    - Dst: sk_X509_REVOKED_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2015,1
    - Dst: X509_CRL_get0_by_serial
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2020,1
    - Dst: X509_REVOKED_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2021,1
    - Dst: X509_CRL_add0_revoked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2024,1
    - Dst: X509_REVOKED_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2025,1
    - Dst: X509_CRL_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2032,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2038,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2039,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 76
    argCount: 5
    argNames:
    - base
    - newer
    - skey
    - md
    - flags
    argTypes:
    - X509_CRL*
    - X509_CRL*
    - EVP_PKEY*
    - EVP_MD*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 2041
      start: 1938
    functionDepth: 3
    functionLinenumber: 1938
    functionLinenumberEnd: 2041
    functionName: X509_CRL_diff
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_REVOKED_free
    - X509_CRL_get0_nextUpdate
    - X509_CRL_free
    - X509_CRL_add_ext
    - X509_NAME_cmp
    - X509_CRL_add0_revoked
    - X509_CRL_get_ext_count
    - X509err
    - sk_X509_REVOKED_value
    - X509_CRL_get_issuer
    - X509_CRL_set1_lastUpdate
    - X509_CRL_get_ext
    - sk_X509_REVOKED_num
    - X509_CRL_set_issuer_name
    - X509_CRL_add1_ext_i2d
    - crl_extension_match
    - X509_CRL_set_version
    - X509_CRL_sign
    - X509_CRL_get0_by_serial
    - X509_CRL_verify
    - STACK_OF
    - X509_CRL_set1_nextUpdate
    - ASN1_INTEGER_cmp
    - X509_CRL_get0_lastUpdate
    - X509_CRL_get_REVOKED
    - X509_CRL_new
    - X509_REVOKED_dup
    linkageType: ''
    returnType: X509_CRL
    signature: "*X509_CRL_diff(X509_CRL *base, X509_CRL *newer,\n                        EVP_PKEY
      *skey, const EVP_MD *md, unsigned int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - idx
    - data
    argTypes:
    - X509_STORE_CTX*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 2046
      start: 2043
    functionDepth: 1
    functionLinenumber: 2043
    functionLinenumberEnd: 2046
    functionName: X509_STORE_CTX_set_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx, void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - idx
    argTypes:
    - X509_STORE_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 2051
      start: 2048
    functionDepth: 1
    functionLinenumber: 2048
    functionLinenumberEnd: 2051
    functionName: X509_STORE_CTX_get_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: '*X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2056
      start: 2053
    functionDepth: 0
    functionLinenumber: 2053
    functionLinenumberEnd: 2056
    functionName: X509_STORE_CTX_get_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: X509_STORE_CTX_get_error(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - err
    argTypes:
    - X509_STORE_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 2061
      start: 2058
    functionDepth: 0
    functionLinenumber: 2058
    functionLinenumberEnd: 2061
    functionName: X509_STORE_CTX_set_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int err)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2066
      start: 2063
    functionDepth: 0
    functionLinenumber: 2063
    functionLinenumberEnd: 2066
    functionName: X509_STORE_CTX_get_error_depth
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - depth
    argTypes:
    - X509_STORE_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 2071
      start: 2068
    functionDepth: 0
    functionLinenumber: 2068
    functionLinenumberEnd: 2071
    functionName: X509_STORE_CTX_set_error_depth
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: X509_STORE_CTX_set_error_depth(X509_STORE_CTX *ctx, int depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2076
      start: 2073
    functionDepth: 0
    functionLinenumber: 2073
    functionLinenumberEnd: 2076
    functionName: X509_STORE_CTX_get_current_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: '*X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - x
    argTypes:
    - X509_STORE_CTX*
    - X509*
    constantsTouched: []
    func_position:
      end: 2081
      start: 2078
    functionDepth: 0
    functionLinenumber: 2078
    functionLinenumberEnd: 2081
    functionName: X509_STORE_CTX_set_current_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: X509_STORE_CTX_set_current_cert(X509_STORE_CTX *ctx, X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2098
      start: 2095
    functionDepth: 0
    functionLinenumber: 2095
    functionLinenumberEnd: 2098
    functionName: X509_STORE_CTX_get0_current_issuer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: '*X509_STORE_CTX_get0_current_issuer(X509_STORE_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2103
      start: 2100
    functionDepth: 0
    functionLinenumber: 2100
    functionLinenumberEnd: 2103
    functionName: X509_STORE_CTX_get0_current_crl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_CRL
    signature: '*X509_STORE_CTX_get0_current_crl(X509_STORE_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2108
      start: 2105
    functionDepth: 0
    functionLinenumber: 2105
    functionLinenumberEnd: 2108
    functionName: X509_STORE_CTX_get0_parent_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX
    signature: '*X509_STORE_CTX_get0_parent_ctx(X509_STORE_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - x
    argTypes:
    - X509_STORE_CTX*
    - X509*
    constantsTouched: []
    func_position:
      end: 2113
      start: 2110
    functionDepth: 0
    functionLinenumber: 2110
    functionLinenumberEnd: 2113
    functionName: X509_STORE_CTX_set_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_purpose_inherit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - purpose
    argTypes:
    - X509_STORE_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 2128
      start: 2120
    functionDepth: 1
    functionLinenumber: 2120
    functionLinenumberEnd: 2128
    functionName: X509_STORE_CTX_set_purpose
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_purpose_inherit
    linkageType: ''
    returnType: int
    signature: X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_purpose_inherit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - trust
    argTypes:
    - X509_STORE_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 2137
      start: 2130
    functionDepth: 1
    functionLinenumber: 2130
    functionLinenumberEnd: 2137
    functionName: X509_STORE_CTX_set_trust
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_purpose_inherit
    linkageType: ''
    returnType: int
    signature: X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_PURPOSE_get_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2160,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2162,1
    - Dst: X509_PURPOSE_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2166,1
    - Dst: X509_PURPOSE_get_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2168,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2175,1
    - Dst: X509_PURPOSE_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2179,1
    - Dst: X509_TRUST_get_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2186,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2188,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - ctx
    - def_purpose
    - purpose
    - trust
    argTypes:
    - X509_STORE_CTX*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2199
      start: 2150
    functionDepth: 1
    functionLinenumber: 2150
    functionLinenumberEnd: 2199
    functionName: X509_STORE_CTX_purpose_inherit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 2
    functionsReached:
    - X509_PURPOSE_get_by_id
    - X509_TRUST_get_by_id
    - X509err
    - X509_PURPOSE_get0
    linkageType: ''
    returnType: int
    signature: "X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose,\n
      \                                  int purpose, int trust)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2203,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2201
    functionDepth: 0
    functionLinenumber: 2201
    functionLinenumberEnd: 2210
    functionName: X509_STORE_CTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509err
    - OPENSSL_zalloc
    linkageType: ''
    returnType: X509_STORE_CTX
    signature: '*X509_STORE_CTX_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2217,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2219
      start: 2212
    functionDepth: 1
    functionLinenumber: 2212
    functionLinenumberEnd: 2219
    functionName: X509_STORE_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - X509_STORE_CTX_cleanup
    linkageType: ''
    returnType: void
    signature: X509_STORE_CTX_free(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX*::cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2380,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2385,1
    - Dst: X509_policy_tree_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2388,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2390,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2392,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2393,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2394
      start: 2370
    functionDepth: 2
    functionLinenumber: 2370
    functionLinenumberEnd: 2394
    functionName: X509_STORE_CTX_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 2
    functionsReached:
    - sk_X509_pop_free
    - memset
    - X509_VERIFY_PARAM_free
    - CRYPTO_free_ex_data
    - X509_policy_tree_free
    - X509_STORE_CTX*::cleanup
    linkageType: ''
    returnType: void
    signature: X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_depth
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - depth
    argTypes:
    - X509_STORE_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 2399
      start: 2396
    functionDepth: 1
    functionLinenumber: 2396
    functionLinenumberEnd: 2399
    functionName: X509_STORE_CTX_set_depth
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_depth
    linkageType: ''
    returnType: void
    signature: X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - X509_STORE_CTX*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 2404
      start: 2401
    functionDepth: 1
    functionLinenumber: 2401
    functionLinenumberEnd: 2404
    functionName: X509_STORE_CTX_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_flags
    linkageType: ''
    returnType: void
    signature: X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - flags
    - t
    argTypes:
    - X509_STORE_CTX*
    - unsigned long
    - time_t
    constantsTouched: []
    func_position:
      end: 2410
      start: 2406
    functionDepth: 1
    functionLinenumber: 2406
    functionLinenumberEnd: 2410
    functionName: X509_STORE_CTX_set_time
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_time
    linkageType: ''
    returnType: void
    signature: "X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags,\n
      \                            time_t t)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2415
      start: 2412
    functionDepth: 0
    functionLinenumber: 2412
    functionLinenumberEnd: 2415
    functionName: X509_STORE_CTX_get0_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: '*X509_STORE_CTX_get0_cert(X509_STORE_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - verify_cb
    argTypes:
    - X509_STORE_CTX*
    - X509_STORE_CTX_verify_cb
    constantsTouched: []
    func_position:
      end: 2437
      start: 2433
    functionDepth: 0
    functionLinenumber: 2433
    functionLinenumberEnd: 2437
    functionName: X509_STORE_CTX_set_verify_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx,\n                                  X509_STORE_CTX_verify_cb
      verify_cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2442
      start: 2439
    functionDepth: 0
    functionLinenumber: 2439
    functionLinenumberEnd: 2442
    functionName: X509_STORE_CTX_get_verify_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_verify_cb
    signature: X509_STORE_CTX_get_verify_cb(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - verify
    argTypes:
    - X509_STORE_CTX*
    - X509_STORE_CTX_verify_fn
    constantsTouched: []
    func_position:
      end: 2448
      start: 2444
    functionDepth: 0
    functionLinenumber: 2444
    functionLinenumberEnd: 2448
    functionName: X509_STORE_CTX_set_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx,\n                               X509_STORE_CTX_verify_fn
      verify)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2453
      start: 2450
    functionDepth: 0
    functionLinenumber: 2450
    functionLinenumberEnd: 2453
    functionName: X509_STORE_CTX_get_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_verify_fn
    signature: X509_STORE_CTX_get_verify(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2458
      start: 2455
    functionDepth: 0
    functionLinenumber: 2455
    functionLinenumberEnd: 2458
    functionName: X509_STORE_CTX_get_get_issuer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_get_issuer_fn
    signature: X509_STORE_CTX_get_get_issuer(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2463
      start: 2460
    functionDepth: 0
    functionLinenumber: 2460
    functionLinenumberEnd: 2463
    functionName: X509_STORE_CTX_get_check_issued
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_issued_fn
    signature: X509_STORE_CTX_get_check_issued(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2468
      start: 2465
    functionDepth: 0
    functionLinenumber: 2465
    functionLinenumberEnd: 2468
    functionName: X509_STORE_CTX_get_check_revocation
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_revocation_fn
    signature: X509_STORE_CTX_get_check_revocation(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2473
      start: 2470
    functionDepth: 0
    functionLinenumber: 2470
    functionLinenumberEnd: 2473
    functionName: X509_STORE_CTX_get_get_crl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_get_crl_fn
    signature: X509_STORE_CTX_get_get_crl(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2478
      start: 2475
    functionDepth: 0
    functionLinenumber: 2475
    functionLinenumberEnd: 2478
    functionName: X509_STORE_CTX_get_check_crl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_crl_fn
    signature: X509_STORE_CTX_get_check_crl(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2483
      start: 2480
    functionDepth: 0
    functionLinenumber: 2480
    functionLinenumberEnd: 2483
    functionName: X509_STORE_CTX_get_cert_crl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_cert_crl_fn
    signature: X509_STORE_CTX_get_cert_crl(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2488
      start: 2485
    functionDepth: 0
    functionLinenumber: 2485
    functionLinenumberEnd: 2488
    functionName: X509_STORE_CTX_get_check_policy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_policy_fn
    signature: X509_STORE_CTX_get_check_policy(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2493
      start: 2490
    functionDepth: 0
    functionLinenumber: 2490
    functionLinenumberEnd: 2493
    functionName: X509_STORE_CTX_get_lookup_certs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_lookup_certs_fn
    signature: X509_STORE_CTX_get_lookup_certs(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2498
      start: 2495
    functionDepth: 0
    functionLinenumber: 2495
    functionLinenumberEnd: 2498
    functionName: X509_STORE_CTX_get_lookup_crls
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_lookup_crls_fn
    signature: X509_STORE_CTX_get_lookup_crls(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2503
      start: 2500
    functionDepth: 0
    functionLinenumber: 2500
    functionLinenumberEnd: 2503
    functionName: X509_STORE_CTX_get_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_cleanup_fn
    signature: X509_STORE_CTX_get_cleanup(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2508
      start: 2505
    functionDepth: 0
    functionLinenumber: 2505
    functionLinenumberEnd: 2508
    functionName: X509_STORE_CTX_get0_policy_tree
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_POLICY_TREE
    signature: '*X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2513
      start: 2510
    functionDepth: 0
    functionLinenumber: 2510
    functionLinenumberEnd: 2513
    functionName: X509_STORE_CTX_get_explicit_policy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2518
      start: 2515
    functionDepth: 0
    functionLinenumber: 2515
    functionLinenumberEnd: 2518
    functionName: X509_STORE_CTX_get_num_untrusted
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: X509_STORE_CTX_get_num_untrusted(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2523,1
    - Dst: X509_VERIFY_PARAM_inherit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - X509_STORE_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 2527
      start: 2520
    functionDepth: 2
    functionLinenumber: 2520
    functionLinenumberEnd: 2527
    functionName: X509_STORE_CTX_set_default
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_inherit
    - X509_VERIFY_PARAM_lookup
    linkageType: ''
    returnType: int
    signature: X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2532
      start: 2529
    functionDepth: 0
    functionLinenumber: 2529
    functionLinenumberEnd: 2532
    functionName: X509_STORE_CTX_get0_param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_VERIFY_PARAM
    signature: '*X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - param
    argTypes:
    - X509_STORE_CTX*
    - X509_VERIFY_PARAM*
    constantsTouched: []
    func_position:
      end: 2538
      start: 2534
    functionDepth: 2
    functionLinenumber: 2534
    functionLinenumberEnd: 2538
    functionName: X509_STORE_CTX_set0_param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - X509_VERIFY_PARAM_free
    linkageType: ''
    returnType: void
    signature: X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - dane
    argTypes:
    - X509_STORE_CTX*
    - SSL_DANE*
    constantsTouched: []
    func_position:
      end: 2543
      start: 2540
    functionDepth: 0
    functionLinenumber: 2540
    functionLinenumberEnd: 2543
    functionName: X509_STORE_CTX_set0_dane
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: X509_STORE_CTX_set0_dane(X509_STORE_CTX *ctx, SSL_DANE *dane)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2558,1
    - Dst: i2d_X509_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2561,1
    - Dst: X509_get_X509_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2561,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2564,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2569,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - cert
    - selector
    - i2dlen
    argTypes:
    - X509*
    - uint8_t
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 2575
      start: 2545
    functionDepth: 1
    functionLinenumber: 2545
    functionLinenumberEnd: 2575
    functionName: dane_i2d
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - i2d_X509_PUBKEY
    - X509err
    - X509_get_X509_PUBKEY
    - i2d_X509
    linkageType: ''
    returnType: unsigned char
    signature: "*dane_i2d(\n    X509 *cert,\n    uint8_t selector,\n    unsigned int
      *i2dlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_danetls_record_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2641,1
    - Dst: sk_danetls_record_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2643,1
    - Dst: DANETLS_USAGE_BIT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2644,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2657,1
    - Dst: dane_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2658,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2690,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2703,1
    - Dst: DANETLS_USAGE_BIT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2704,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2709,1
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2711,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2718,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 3
    argNames:
    - ctx
    - cert
    - depth
    argTypes:
    - X509_STORE_CTX*
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 2720
      start: 2579
    functionDepth: 5
    functionLinenumber: 2579
    functionLinenumberEnd: 2720
    functionName: dane_match
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - EVP_Digest
    - dane_i2d
    - X509_up_ref
    - memcmp
    - sk_danetls_record_num
    - DANETLS_USAGE_BIT
    - sk_danetls_record_value
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: dane_match(X509_STORE_CTX *ctx, X509 *cert, int depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DANETLS_HAS_TA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2728,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2736,1
    - Dst: dane_match
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2737,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - depth
    argTypes:
    - X509_STORE_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 2745
      start: 2722
    functionDepth: 6
    functionLinenumber: 2722
    functionLinenumberEnd: 2745
    functionName: check_dane_issuer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - dane_match
    - DANETLS_HAS_TA
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: check_dane_issuer(X509_STORE_CTX *ctx, int depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2752,1
    - Dst: sk_danetls_record_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2757,1
    - Dst: X509_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2761,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2765,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2774,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2776,1
    - Dst: sk_X509_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2776,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2782
      start: 2747
    functionDepth: 2
    functionLinenumber: 2747
    functionLinenumberEnd: 2782
    functionName: check_dane_pkeys
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - sk_X509_num
    - X509_verify
    - sk_X509_value
    - X509_free
    - sk_danetls_record_value
    - sk_X509_pop
    linkageType: ''
    returnType: int
    signature: check_dane_pkeys(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - dane
    argTypes:
    - SSL_DANE*
    constantsTouched: []
    func_position:
      end: 2794
      start: 2784
    functionDepth: 0
    functionLinenumber: 2784
    functionLinenumberEnd: 2794
    functionName: dane_reset
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_free
    linkageType: ''
    returnType: void
    signature: dane_reset(SSL_DANE *dane)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - X509_STORE_CTX*
    - X509*
    constantsTouched: []
    func_position:
      end: 2803
      start: 2796
    functionDepth: 2
    functionLinenumber: 2796
    functionLinenumberEnd: 2803
    functionName: check_leaf_suiteb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - verify_cb_cert
    linkageType: ''
    returnType: int
    signature: check_leaf_suiteb(X509_STORE_CTX *ctx, X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dane_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2812,1
    - Dst: dane_match
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2826,1
    - Dst: DANETLS_HAS_TA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2827,1
    - Dst: X509_get_pubkey_parameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2830,1
    - Dst: check_leaf_suiteb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2834,1
    - Dst: check_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2838,1
    - Dst: X509_STORE_CTX*::verify_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2843,1
    - Dst: check_leaf_suiteb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2855,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2857,1
    - Dst: verify_chain
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2864,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2865
      start: 2805
    functionDepth: 6
    functionLinenumber: 2805
    functionLinenumberEnd: 2865
    functionName: dane_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - DANETLS_HAS_TA
    - X509_STORE_CTX*::verify_cb
    - check_leaf_suiteb
    - check_id
    - dane_reset
    - dane_match
    - verify_cb_cert
    - verify_chain
    - X509_get_pubkey_parameters
    linkageType: ''
    returnType: int
    signature: dane_verify(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2870,1
    - Dst: X509_STORE_CTX*::get_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - issuer
    - ctx
    - cert
    argTypes:
    - X509**
    - X509_STORE_CTX*
    - X509*
    constantsTouched: []
    func_position:
      end: 2878
      start: 2868
    functionDepth: 1
    functionLinenumber: 2868
    functionLinenumberEnd: 2878
    functionName: get_issuer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 6
    functionsReached:
    - STACK_OF
    - X509_STORE_CTX*::get_issuer
    linkageType: ''
    returnType: int
    signature: get_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2884,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2886,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2897,1
    - Dst: DANETLS_HAS_PKIX
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2910,1
    - Dst: DANETLS_HAS_DANE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2910,1
    - Dst: sk_X509_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2923,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2924,1
    - Dst: DANETLS_ENABLED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2939,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2940,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2941,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2945,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2946,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2946,1
    - Dst: sk_X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2947,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2948,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:2988,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3007,1
    - Dst: get_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3009,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3034,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3037,1
    - Dst: sk_X509_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3037,1
    - Dst: DANETLS_ENABLED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3040,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3043,1
    - Dst: DANETLS_ENABLED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3046,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3056,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3057,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3058,1
    - Dst: cert_self_signed
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3064,1
    - Dst: X509_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3072,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3074,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3077,1
    - Dst: sk_X509_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3079,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3097,1
    - Dst: check_trust
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3099,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3135,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3136,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3137,1
    - Dst: find_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3143,1
    - Dst: sk_X509_delete_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3152,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3154,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3155,1
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3162,1
    - Dst: cert_self_signed
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3164,1
    - Dst: check_dane_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3169,1
    - Dst: sk_X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3177,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3183,1
    - Dst: DANETLS_HAS_DANE_TA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3185,1
    - Dst: check_dane_pkeys
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3186,1
    - Dst: check_trust
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3188,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3199,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3201,1
    - Dst: DANETLS_ENABLED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3203,1
    - Dst: DANETLS_HAS_PKIX
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3204,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3205,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3206,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3207,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3210,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3213,1
    - Dst: verify_cb_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3215,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 165
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 3218
      start: 2880
    functionDepth: 7
    functionLinenumber: 2880
    functionLinenumberEnd: 3218
    functionName: build_chain
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - X509_cmp
    - check_dane_issuer
    - DANETLS_ENABLED
    - sk_X509_num
    - sk_X509_delete_ptr
    - check_trust
    - X509err
    - cert_self_signed
    - X509_free
    - sk_X509_push
    - get_issuer
    - sk_X509_free
    - X509_up_ref
    - DANETLS_HAS_DANE_TA
    - sk_X509_dup
    - DANETLS_HAS_DANE
    - find_issuer
    - sk_X509_new_null
    - check_dane_pkeys
    - OPENSSL_assert
    - STACK_OF
    - DANETLS_HAS_PKIX
    - sk_X509_set
    - sk_X509_value
    - verify_cb_cert
    - sk_X509_pop
    linkageType: ''
    returnType: int
    signature: build_chain(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3231,1
    - Dst: EVP_PKEY_security_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - X509_STORE_CTX*
    - X509*
    constantsTouched: []
    func_position:
      end: 3244
      start: 3229
    functionDepth: 2
    functionLinenumber: 3229
    functionLinenumberEnd: 3244
    functionName: check_key_level
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 2
    functionsReached:
    - X509_get0_pubkey
    - EVP_PKEY_security_bits
    linkageType: ''
    returnType: int
    signature: check_key_level(X509_STORE_CTX *ctx, X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_find_sigid_algs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3266,1
    - Dst: EVP_get_digestbynid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3270,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c:3271,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - X509_STORE_CTX*
    - X509*
    constantsTouched: []
    func_position:
      end: 3275
      start: 3253
    functionDepth: 1
    functionLinenumber: 3253
    functionLinenumberEnd: 3275
    functionName: check_sig_level
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - EVP_MD_size
    - OBJ_find_sigid_algs
    - EVP_get_digestbynid
    linkageType: ''
    returnType: int
    signature: check_sig_level(X509_STORE_CTX *ctx, X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_REVOKED_set_cmp_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    constantsTouched: []
    func_position:
      end: 64
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 64
    functionName: crl_inf_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - sk_X509_REVOKED_set_cmp_func
    linkageType: ''
    returnType: int
    signature: "crl_inf_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                     void *exarg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:87,1
    - Dst: X509_CRL_get_REVOKED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:89,1
    - Dst: sk_X509_REVOKED_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:92,1
    - Dst: sk_X509_REVOKED_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:93,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:94,1
    - Dst: X509_REVOKED_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:97,1
    - Dst: sk_GENERAL_NAMES_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:107,1
    - Dst: sk_GENERAL_NAMES_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:111,1
    - Dst: X509_REVOKED_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:116,1
    - Dst: ASN1_ENUMERATED_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:123,1
    - Dst: ASN1_ENUMERATED_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:124,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:132,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:133,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:134,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:135,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:135,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 146
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 146
    functionName: crl_set_issuers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - sk_X509_EXTENSION_value
    - ASN1_ENUMERATED_get
    - sk_GENERAL_NAMES_new_null
    - X509_REVOKED_get_ext_d2i
    - STACK_OF
    - OBJ_obj2nid
    - sk_X509_REVOKED_num
    - X509_EXTENSION_get_object
    - ASN1_ENUMERATED_free
    - X509_CRL_get_REVOKED
    - sk_GENERAL_NAMES_push
    - X509_EXTENSION_get_critical
    - sk_X509_EXTENSION_num
    - sk_X509_REVOKED_value
    linkageType: ''
    returnType: int
    signature: crl_set_issuers(X509_CRL *crl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:156,1
    - Dst: X509_CRL_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:175,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:175,1
    - Dst: X509_CRL_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:176,1
    - Dst: setup_idp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:180,1
    - Dst: X509_CRL_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:182,1
    - Dst: X509_CRL_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:186,1
    - Dst: X509_CRL_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:189,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:205,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:207,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:208,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:208,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:211,1
    - Dst: crl_set_issuers
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:222,1
    - Dst: X509_CRL*::meth::crl_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:226,1
    - Dst: X509_CRL*::meth::crl_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:235,1
    - Dst: AUTHORITY_KEYID_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:238,1
    - Dst: ISSUING_DIST_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:239,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:240,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:241,1
    - Dst: sk_GENERAL_NAMES_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:242,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    constantsTouched: []
    func_position:
      end: 246
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 246
    functionName: crl_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - sk_X509_EXTENSION_value
    - X509_CRL*::meth::crl_init
    - EVP_sha1
    - setup_idp
    - ASN1_INTEGER_free
    - STACK_OF
    - OBJ_obj2nid
    - sk_GENERAL_NAMES_pop_free
    - X509_CRL*::meth::crl_free
    - X509_CRL_digest
    - X509_EXTENSION_get_critical
    - crl_set_issuers
    - ISSUING_DIST_POINT_free
    - sk_X509_EXTENSION_num
    - AUTHORITY_KEYID_free
    - X509_CRL_get_ext_d2i
    - X509_EXTENSION_get_object
    linkageType: ''
    returnType: int
    signature: "crl_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n                  void
      *exarg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DIST_POINT_set_dpname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:283,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:283,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - crl
    - idp
    argTypes:
    - X509_CRL*
    - ISSUING_DIST_POINT*
    constantsTouched: []
    func_position:
      end: 284
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 284
    functionName: setup_idp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c
    functionUses: 1
    functionsReached:
    - X509_CRL_get_issuer
    - DIST_POINT_set_dpname
    linkageType: ''
    returnType: void
    signature: setup_idp(X509_CRL *crl, ISSUING_DIST_POINT *idp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_REVOKED**
    - X509_REVOKED**
    constantsTouched: []
    func_position:
      end: 307
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 307
    functionName: X509_REVOKED_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_cmp
    linkageType: ''
    returnType: int
    signature: "X509_REVOKED_cmp(const X509_REVOKED *const *a,\n                            const
      X509_REVOKED *const *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_REVOKED_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:314,1
    - Dst: sk_X509_REVOKED_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:315,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - crl
    - rev
    argTypes:
    - X509_CRL*
    - X509_REVOKED*
    constantsTouched: []
    func_position:
      end: 321
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 321
    functionName: X509_CRL_add0_revoked
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c
    functionUses: 1
    functionsReached:
    - sk_X509_REVOKED_new
    - ASN1err
    - sk_X509_REVOKED_push
    linkageType: ''
    returnType: int
    signature: X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL*::meth::crl_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - crl
    - r
    argTypes:
    - X509_CRL*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: X509_CRL_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c
    functionUses: 2
    functionsReached:
    - X509_CRL*::meth::crl_verify
    linkageType: ''
    returnType: int
    signature: X509_CRL_verify(X509_CRL *crl, EVP_PKEY *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL*::meth::crl_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - crl
    - ret
    - serial
    argTypes:
    - X509_CRL*
    - X509_REVOKED**
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 336
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 336
    functionName: X509_CRL_get0_by_serial
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c
    functionUses: 1
    functionsReached:
    - X509_CRL*::meth::crl_lookup
    linkageType: ''
    returnType: int
    signature: "X509_CRL_get0_by_serial(X509_CRL *crl,\n                            X509_REVOKED
      **ret, ASN1_INTEGER *serial)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL*::meth::crl_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:341,1
    - Dst: X509_get_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:342,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - crl
    - ret
    - x
    argTypes:
    - X509_CRL*
    - X509_REVOKED**
    - X509*
    constantsTouched: []
    func_position:
      end: 345
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 345
    functionName: X509_CRL_get0_by_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c
    functionUses: 1
    functionsReached:
    - X509_CRL*::meth::crl_lookup
    - X509_get_serialNumber
    - X509_get_issuer_name
    linkageType: ''
    returnType: int
    signature: X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:349,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crl
    - r
    argTypes:
    - X509_CRL*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 351
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 351
    functionName: def_crl_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_verify
    linkageType: ''
    returnType: int
    signature: def_crl_verify(X509_CRL *crl, EVP_PKEY *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:361,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:361,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:367,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:369,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:370,1
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:373,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - crl
    - nm
    - rev
    argTypes:
    - X509_CRL*
    - X509_NAME*
    - X509_REVOKED*
    constantsTouched: []
    func_position:
      end: 378
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 378
    functionName: crl_revoked_issuer_match
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - sk_GENERAL_NAME_value
    - sk_GENERAL_NAME_num
    - X509_CRL_get_issuer
    - X509_NAME_cmp
    linkageType: ''
    returnType: int
    signature: "crl_revoked_issuer_match(X509_CRL *crl, X509_NAME *nm,\n                                    X509_REVOKED
      *rev)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_REVOKED_is_sorted
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:391,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:392,1
    - Dst: sk_X509_REVOKED_sort
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:393,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:394,1
    - Dst: sk_X509_REVOKED_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:396,1
    - Dst: sk_X509_REVOKED_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:400,1
    - Dst: sk_X509_REVOKED_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:401,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:402,1
    - Dst: crl_revoked_issuer_match
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:404,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - crl
    - ret
    - serial
    - issuer
    argTypes:
    - X509_CRL*
    - X509_REVOKED**
    - ASN1_INTEGER*
    - X509_NAME*
    constantsTouched: []
    func_position:
      end: 413
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 413
    functionName: def_crl_lookup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - sk_X509_REVOKED_find
    - sk_X509_REVOKED_is_sorted
    - CRYPTO_THREAD_write_lock
    - ASN1_INTEGER_cmp
    - sk_X509_REVOKED_num
    - CRYPTO_THREAD_unlock
    - sk_X509_REVOKED_sort
    - crl_revoked_issuer_match
    - sk_X509_REVOKED_value
    linkageType: ''
    returnType: int
    signature: "def_crl_lookup(X509_CRL *crl,\n                          X509_REVOKED
      **ret, ASN1_INTEGER *serial,\n                          X509_NAME *issuer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - meth
    argTypes:
    - X509_CRL_METHOD*
    constantsTouched: []
    func_position:
      end: 421
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 421
    functionName: X509_CRL_set_default_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: X509_CRL_set_default_method(const X509_CRL_METHOD *meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 442
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 442
    functionName: X509_CRL_METHOD_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    linkageType: ''
    returnType: X509_CRL_METHOD
    signature: "*X509_CRL_METHOD_new(int (*crl_init) (X509_CRL *crl),\n                                     int
      (*crl_free) (X509_CRL *crl),\n                                     int (*crl_lookup)
      (X509_CRL *crl,\n                                                        X509_REVOKED
      **ret,\n                                                        ASN1_INTEGER
      *ser,\n                                                        X509_NAME *issuer),\n
      \                                    int (*crl_verify) (X509_CRL *crl,\n                                                        EVP_PKEY
      *pk))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c:448,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - X509_CRL_METHOD*
    constantsTouched: []
    func_position:
      end: 449
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 449
    functionName: X509_CRL_METHOD_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: X509_CRL_METHOD_free(X509_CRL_METHOD *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crl
    - dat
    argTypes:
    - X509_CRL*
    - void*
    constantsTouched: []
    func_position:
      end: 454
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 454
    functionName: X509_CRL_set_meth_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: X509_CRL_set_meth_data(X509_CRL *crl, void *dat)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 459
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 459
    functionName: X509_CRL_get_meth_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*X509_CRL_get_meth_data(X509_CRL *crl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_err.c:136,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_err.c:137,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_err.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 142
    functionName: ERR_load_X509_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_X509_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:26,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:26,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:27,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:30,1
    - Dst: X509_REQ_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:31,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - fp
    - x
    argTypes:
    - FILE*
    - X509_REQ*
    constantsTouched: []
    func_position:
      end: 34
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 34
    functionName: X509_REQ_print_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c
    functionUses: 0
    functionsReached:
    - BIO_s_file
    - X509_REQ_print
    - BIO_free
    - BIO_set_fp
    - BIO_new
    - X509err
    linkageType: ''
    returnType: int
    signature: X509_REQ_print_fp(FILE *fp, X509_REQ *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:43,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:56,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:58,1
    - Dst: X509_REQ_get_version
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:62,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:64,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:67,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:72,1
    - Dst: X509_NAME_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:74,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:74,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:77,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:83,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:85,1
    - Dst: X509_REQ_get_X509_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:87,1
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:88,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:89,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:91,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:94,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:96,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:97,1
    - Dst: EVP_PKEY_print_public
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:99,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:105,1
    - Dst: X509_REQ_get_attr_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:108,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:109,1
    - Dst: X509_REQ_get_attr_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:112,1
    - Dst: X509_REQ_get_attr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:119,1
    - Dst: X509_ATTRIBUTE_get0_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:120,1
    - Dst: X509_REQ_extension_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:121,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:121,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:123,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:125,1
    - Dst: X509_ATTRIBUTE_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:127,1
    - Dst: X509_ATTRIBUTE_get0_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:129,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:134,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:136,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:142,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:145,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:147,1
    - Dst: X509_REQ_get_extensions
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:155,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:157,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:158,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:162,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:163,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:165,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:166,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:167,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:168,1
    - Dst: X509V3_EXT_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:170,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:171,1
    - Dst: ASN1_STRING_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:172,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:172,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:174,1
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:177,1
    - Dst: X509_REQ_get0_signature
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:184,1
    - Dst: X509_signature_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:185,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:191,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 146
    argCount: 4
    argNames:
    - bp
    - x
    - nmflags
    - cflag
    argTypes:
    - BIO*
    - X509_REQ*
    - unsigned long
    - unsigned long
    constantsTouched: []
    func_position:
      end: 193
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 193
    functionName: X509_REQ_print_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c
    functionUses: 0
    functionsReached:
    - X509_ATTRIBUTE_count
    - BIO_printf
    - X509err
    - X509_ATTRIBUTE_get0_object
    - sk_X509_EXTENSION_pop_free
    - X509_signature_print
    - X509_REQ_get_attr
    - X509_REQ_get_subject_name
    - X509_REQ_extension_nid
    - X509_PUBKEY_get0_param
    - BIO_write
    - X509_EXTENSION_get_object
    - X509_EXTENSION_get_data
    - i2a_ASN1_OBJECT
    - ASN1_STRING_print
    - X509_REQ_get0_signature
    - X509_NAME_print_ex
    - X509_REQ_get_version
    - EVP_PKEY_print_public
    - sk_X509_EXTENSION_num
    - X509_REQ_get_attr_count
    - X509_REQ_get0_pubkey
    - sk_X509_EXTENSION_value
    - BIO_puts
    - STACK_OF
    - ERR_print_errors
    - OBJ_obj2nid
    - X509V3_EXT_print
    - X509_ATTRIBUTE_get0_type
    - X509_EXTENSION_get_critical
    - X509_REQ_get_X509_PUBKEY
    - X509_REQ_get_extensions
    linkageType: ''
    returnType: int
    signature: "X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflags,\n                      unsigned
      long cflag)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_REQ_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - X509_REQ*
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 4
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: X509_REQ_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c
    functionUses: 1
    functionsReached:
    - X509_REQ_print_ex
    linkageType: ''
    returnType: int
    signature: X509_REQ_print(BIO *bp, X509_REQ *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:24,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:24,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:25,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:28,1
    - Dst: X509_CRL_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:29,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - fp
    - x
    argTypes:
    - FILE*
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 32
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 32
    functionName: X509_CRL_print_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c
    functionUses: 0
    functionsReached:
    - BIO_s_file
    - X509_CRL_print
    - BIO_free
    - BIO_set_fp
    - BIO_new
    - X509err
    linkageType: ''
    returnType: int
    signature: X509_CRL_print_fp(FILE *fp, X509_CRL *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:37,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:45,1
    - Dst: X509_CRL_get_version
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:46,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:48,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:50,1
    - Dst: X509_CRL_get0_signature
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:51,1
    - Dst: X509_signature_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:52,1
    - Dst: X509_NAME_oneline
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:53,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:53,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:54,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:55,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:56,1
    - Dst: ASN1_TIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:57,1
    - Dst: X509_CRL_get0_lastUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:57,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:58,1
    - Dst: X509_CRL_get0_nextUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:59,1
    - Dst: ASN1_TIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:60,1
    - Dst: X509_CRL_get0_nextUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:60,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:62,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:63,1
    - Dst: X509V3_extensions_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:65,1
    - Dst: X509_CRL_get0_extensions
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:66,1
    - Dst: X509_CRL_get_REVOKED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:68,1
    - Dst: sk_X509_REVOKED_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:70,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:71,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:73,1
    - Dst: sk_X509_REVOKED_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:75,1
    - Dst: sk_X509_REVOKED_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:76,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:77,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:78,1
    - Dst: X509_REVOKED_get0_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:78,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:79,1
    - Dst: ASN1_TIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:80,1
    - Dst: X509_REVOKED_get0_revocationDate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:80,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:81,1
    - Dst: X509V3_extensions_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:82,1
    - Dst: X509_REVOKED_get0_extensions
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:83,1
    - Dst: X509_signature_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - out
    - x
    argTypes:
    - BIO*
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 89
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 89
    functionName: X509_CRL_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c
    functionUses: 1
    functionsReached:
    - X509_CRL_get0_nextUpdate
    - ASN1_TIME_print
    - X509V3_extensions_print
    - BIO_printf
    - sk_X509_REVOKED_value
    - X509_signature_print
    - X509_CRL_get_issuer
    - sk_X509_REVOKED_num
    - i2a_ASN1_INTEGER
    - X509_CRL_get0_signature
    - X509_REVOKED_get0_revocationDate
    - X509_CRL_get_version
    - X509_REVOKED_get0_extensions
    - OPENSSL_free
    - X509_CRL_get0_extensions
    - STACK_OF
    - X509_CRL_get0_lastUpdate
    - X509_NAME_oneline
    - X509_CRL_get_REVOKED
    - X509_REVOKED_get0_serialNumber
    linkageType: ''
    returnType: int
    signature: X509_CRL_print(BIO *out, X509_CRL *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: X509v3_get_ext_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c
    functionUses: 3
    functionsReached:
    - sk_X509_EXTENSION_num
    linkageType: ''
    returnType: int
    signature: X509v3_get_ext_count(const STACK_OF(X509_EXTENSION) *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c:32,1
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - STACK_OF*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: X509v3_get_ext_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c
    functionUses: 3
    functionsReached:
    - X509v3_get_ext_by_OBJ
    - OBJ_nid2obj
    linkageType: ''
    returnType: int
    signature: "X509v3_get_ext_by_NID(const STACK_OF(X509_EXTENSION) *x, int nid,\n
      \                         int lastpos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c:49,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c:51,1
    - Dst: OBJ_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - sk
    - obj
    - lastpos
    argTypes:
    - STACK_OF*
    - ASN1_OBJECT*
    - int
    constantsTouched: []
    func_position:
      end: 56
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 56
    functionName: X509v3_get_ext_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c
    functionUses: 4
    functionsReached:
    - sk_X509_EXTENSION_value
    - sk_X509_EXTENSION_num
    - OBJ_cmp
    linkageType: ''
    returnType: int
    signature: "X509v3_get_ext_by_OBJ(const STACK_OF(X509_EXTENSION) *sk,\n                          const
      ASN1_OBJECT *obj, int lastpos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c:69,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c:71,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - sk
    - crit
    - lastpos
    argTypes:
    - STACK_OF*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 76
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 76
    functionName: X509v3_get_ext_by_critical
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c
    functionUses: 3
    functionsReached:
    - sk_X509_EXTENSION_value
    - sk_X509_EXTENSION_num
    linkageType: ''
    returnType: int
    signature: "X509v3_get_ext_by_critical(const STACK_OF(X509_EXTENSION) *sk, int
      crit,\n                               int lastpos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c:80,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - STACK_OF*
    - int
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: X509v3_get_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c
    functionUses: 3
    functionsReached:
    - sk_X509_EXTENSION_value
    - sk_X509_EXTENSION_num
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c:142,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c:144,1
    - Dst: X509_EXTENSION_create_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c:147,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ex
    - nid
    - crit
    - data
    argTypes:
    - X509_EXTENSION**
    - int
    - int
    - ASN1_OCTET_STRING*
    constantsTouched: []
    func_position:
      end: 151
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 151
    functionName: X509_EXTENSION_create_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c
    functionUses: 0
    functionsReached:
    - X509err
    - X509_EXTENSION_create_by_OBJ
    - OBJ_nid2obj
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: X509_EXTENSION
    signature: "*X509_EXTENSION_create_by_NID(X509_EXTENSION **ex, int nid,\n                                             int
      crit,\n                                             ASN1_OCTET_STRING *data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_EXTENSION_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c:160,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c:161,1
    - Dst: X509_EXTENSION_set_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c:168,1
    - Dst: X509_EXTENSION_set_critical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c:170,1
    - Dst: X509_EXTENSION_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c:172,1
    - Dst: X509_EXTENSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c:180,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 4
    argNames:
    - ex
    - obj
    - crit
    - data
    argTypes:
    - X509_EXTENSION**
    - ASN1_OBJECT*
    - int
    - ASN1_OCTET_STRING*
    constantsTouched: []
    func_position:
      end: 182
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 182
    functionName: X509_EXTENSION_create_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c
    functionUses: 1
    functionsReached:
    - X509_EXTENSION_set_data
    - X509_EXTENSION_set_object
    - X509_EXTENSION_free
    - X509_EXTENSION_set_critical
    - X509err
    - X509_EXTENSION_new
    linkageType: ''
    returnType: X509_EXTENSION
    signature: "*X509_EXTENSION_create_by_OBJ(X509_EXTENSION **ex,\n                                             const
      ASN1_OBJECT *obj, int crit,\n                                             ASN1_OCTET_STRING
      *data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c:188,1
    - Dst: OBJ_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ex
    - obj
    argTypes:
    - X509_EXTENSION*
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 191
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 191
    functionName: X509_EXTENSION_set_object
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c
    functionUses: 1
    functionsReached:
    - ASN1_OBJECT_free
    - OBJ_dup
    linkageType: ''
    returnType: int
    signature: X509_EXTENSION_set_object(X509_EXTENSION *ex, const ASN1_OBJECT *obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ex
    - crit
    argTypes:
    - X509_EXTENSION*
    - int
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: X509_EXTENSION_set_critical
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ex
    - data
    argTypes:
    - X509_EXTENSION*
    - ASN1_OCTET_STRING*
    constantsTouched: []
    func_position:
      end: 211
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 211
    functionName: X509_EXTENSION_set_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c
    functionUses: 1
    functionsReached:
    - ASN1_OCTET_STRING_set
    linkageType: ''
    returnType: int
    signature: X509_EXTENSION_set_data(X509_EXTENSION *ex, ASN1_OCTET_STRING *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ex
    argTypes:
    - X509_EXTENSION*
    constantsTouched: []
    func_position:
      end: 218
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 218
    functionName: X509_EXTENSION_get_object
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: '*X509_EXTENSION_get_object(X509_EXTENSION *ex)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ex
    argTypes:
    - X509_EXTENSION*
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: X509_EXTENSION_get_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: '*X509_EXTENSION_get_data(X509_EXTENSION *ex)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ex
    argTypes:
    - X509_EXTENSION*
    constantsTouched: []
    func_position:
      end: 234
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 234
    functionName: X509_EXTENSION_get_critical
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: X509_EXTENSION_get_critical(const X509_EXTENSION *ex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c:18,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - x
    - pkey
    argTypes:
    - NETSCAPE_SPKI*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 19
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 19
    functionName: NETSCAPE_SPKI_set_pubkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_set
    linkageType: ''
    returnType: int
    signature: NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - NETSCAPE_SPKI*
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 6
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: NETSCAPE_SPKI_get_pubkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_get
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c:37,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c:38,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c:39,1
    - Dst: EVP_DecodeBlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c:42,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c:44,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c:45,1
    - Dst: d2i_NETSCAPE_SPKI
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c:49,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 52
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 52
    functionName: NETSCAPE_SPKI_b64_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c
    functionUses: 0
    functionsReached:
    - EVP_DecodeBlock
    - strlen
    - X509err
    - d2i_NETSCAPE_SPKI
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: NETSCAPE_SPKI
    signature: '*NETSCAPE_SPKI_b64_decode(const char *str, int len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_NETSCAPE_SPKI
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c:61,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c:62,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c:63,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c:65,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c:66,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c:67,1
    - Dst: i2d_NETSCAPE_SPKI
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c:71,1
    - Dst: EVP_EncodeBlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c:72,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - spki
    argTypes:
    - NETSCAPE_SPKI*
    constantsTouched: []
    func_position:
      end: 75
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 75
    functionName: NETSCAPE_SPKI_b64_encode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - i2d_NETSCAPE_SPKI
    - EVP_EncodeBlock
    - OPENSSL_free
    - X509err
    linkageType: ''
    returnType: char
    signature: '*NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *spki)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:92,1
    - Dst: sk_X509_NAME_ENTRY_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:96,1
    - Dst: BUF_MEM_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:98,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:105,1
    - Dst: sk_X509_NAME_ENTRY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:107,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:108,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - val
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 111
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 111
    functionName: x509_name_ex_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c
    functionUses: 0
    functionsReached:
    - sk_X509_NAME_ENTRY_new_null
    - OPENSSL_zalloc
    - OPENSSL_free
    - BUF_MEM_new
    - sk_X509_NAME_ENTRY_free
    - ASN1err
    linkageType: ''
    returnType: int
    signature: x509_name_ex_new(ASN1_VALUE **val, const ASN1_ITEM *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:121,1
    - Dst: sk_X509_NAME_ENTRY_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:122,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:123,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 126
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 126
    functionName: x509_name_ex_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - sk_X509_NAME_ENTRY_pop_free
    - BUF_MEM_free
    linkageType: ''
    returnType: void
    signature: x509_name_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:157,1
    - Dst: ASN1_item_ex_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:164,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:165,1
    - Dst: x509_name_ex_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:172,1
    - Dst: x509_name_ex_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:173,1
    - Dst: BUF_MEM_grow
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:176,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:178,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:181,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:182,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:183,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:184,1
    - Dst: sk_X509_NAME_ENTRY_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:186,1
    - Dst: sk_X509_NAME_ENTRY_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:188,1
    - Dst: x509_name_canon
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:191,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:194,1
    - Dst: X509_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:203,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:204,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:206,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 8
    argNames:
    - val
    - in
    - len
    - it
    - tag
    - aclass
    - opt
    - ctx
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - long
    - ASN1_ITEM*
    - int
    - int
    - char
    - ASN1_TLC*
    constantsTouched: []
    func_position:
      end: 208
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 208
    functionName: x509_name_ex_d2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c
    functionUses: 0
    functionsReached:
    - sk_STACK_OF_X509_NAME_ENTRY_value
    - ASN1err
    - sk_X509_NAME_ENTRY_set
    - x509_name_ex_free
    - STACK_OF
    - BUF_MEM_grow
    - x509_name_ex_new
    - X509_NAME_free
    - sk_STACK_OF_X509_NAME_ENTRY_pop_free
    - ASN1_ITEM_rptr
    - memcpy
    - sk_X509_NAME_ENTRY_num
    - sk_X509_NAME_ENTRY_push
    - x509_name_canon
    - sk_STACK_OF_X509_NAME_ENTRY_num
    - sk_X509_NAME_ENTRY_value
    - ASN1_item_ex_d2i
    linkageType: ''
    returnType: int
    signature: "x509_name_ex_d2i(ASN1_VALUE **val,\n                            const
      unsigned char **in, long len,\n                            const ASN1_ITEM *it,
      int tag, int aclass,\n                            char opt, ASN1_TLC *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: x509_name_encode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:216,1
    - Dst: x509_name_canon
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:219,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - val
    - out
    - it
    - tag
    - aclass
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - ASN1_ITEM*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 229
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 229
    functionName: x509_name_ex_i2d
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c
    functionUses: 0
    functionsReached:
    - x509_name_canon
    - memcpy
    - x509_name_encode
    linkageType: ''
    returnType: int
    signature: "x509_name_ex_i2d(ASN1_VALUE **val, unsigned char **out,\n                            const
      ASN1_ITEM *it, int tag, int aclass)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:241,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:244,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:247,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:248,1
    - Dst: sk_X509_NAME_ENTRY_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:250,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:253,1
    - Dst: sk_X509_NAME_ENTRY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:254,1
    - Dst: sk_X509_NAME_ENTRY_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:259,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:262,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:263,1
    - Dst: BUF_MEM_grow
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:264,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:267,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:268,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:269,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:274,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:276,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_NAME*
    constantsTouched: []
    func_position:
      end: 278
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 278
    functionName: x509_name_encode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c
    functionUses: 1
    functionsReached:
    - sk_X509_NAME_ENTRY_new_null
    - ASN1_item_ex_i2d
    - sk_STACK_OF_X509_NAME_ENTRY_push
    - ASN1err
    - STACK_OF
    - sk_STACK_OF_X509_NAME_ENTRY_new_null
    - BUF_MEM_grow
    - sk_STACK_OF_X509_NAME_ENTRY_pop_free
    - ASN1_ITEM_rptr
    - sk_X509_NAME_ENTRY_num
    - sk_X509_NAME_ENTRY_push
    - sk_X509_NAME_ENTRY_free
    - sk_X509_NAME_ENTRY_value
    linkageType: ''
    returnType: int
    signature: x509_name_encode(X509_NAME *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - out
    - pval
    - indent
    - fname
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE**
    - int
    - char*
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 288
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 288
    functionName: x509_name_ex_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c
    functionUses: 0
    functionsReached:
    - X509_NAME_print_ex
    linkageType: ''
    returnType: int
    signature: "x509_name_ex_print(BIO *out, ASN1_VALUE **pval,\n                              int
      indent,\n                              const char *fname, const ASN1_PCTX *pctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:303,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:304,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:308,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:311,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:315,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:318,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:319,1
    - Dst: sk_X509_NAME_ENTRY_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:321,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:324,1
    - Dst: sk_X509_NAME_ENTRY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:325,1
    - Dst: X509_NAME_ENTRY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:330,1
    - Dst: OBJ_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:333,1
    - Dst: asn1_string_canon
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:336,1
    - Dst: sk_X509_NAME_ENTRY_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:338,1
    - Dst: i2d_name_canon
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:345,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:350,1
    - Dst: i2d_name_canon
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:357,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:363,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:364,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_NAME*
    constantsTouched: []
    func_position:
      end: 367
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 367
    functionName: x509_name_canon
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c
    functionUses: 2
    functionsReached:
    - sk_X509_NAME_ENTRY_new_null
    - sk_STACK_OF_X509_NAME_ENTRY_push
    - X509_NAME_ENTRY_new
    - STACK_OF
    - sk_STACK_OF_X509_NAME_ENTRY_new_null
    - OPENSSL_malloc
    - asn1_string_canon
    - X509_NAME_ENTRY_free
    - sk_STACK_OF_X509_NAME_ENTRY_pop_free
    - i2d_name_canon
    - sk_X509_NAME_ENTRY_num
    - OBJ_dup
    - sk_X509_NAME_ENTRY_push
    - OPENSSL_free
    - sk_X509_NAME_ENTRY_free
    - sk_X509_NAME_ENTRY_value
    linkageType: ''
    returnType: int
    signature: x509_name_canon(X509_NAME *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_tag2bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:382,1
    - Dst: ASN1_STRING_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:383,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:389,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:405,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:413,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:428,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:440,1
    - Dst: tolower
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:442,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - ASN1_STRING*
    - ASN1_STRING*
    constantsTouched: []
    func_position:
      end: 452
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 452
    functionName: asn1_string_canon
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c
    functionUses: 1
    functionsReached:
    - isspace
    - tolower
    - ASN1_STRING_to_UTF8
    - ASN1_tag2bit
    - ASN1_STRING_copy
    linkageType: ''
    returnType: int
    signature: asn1_string_canon(ASN1_STRING *out, const ASN1_STRING *in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:481,1
    - Dst: X509_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:483,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - xn
    - name
    argTypes:
    - X509_NAME**
    - X509_NAME*
    constantsTouched: []
    func_position:
      end: 488
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 488
    functionName: X509_NAME_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c
    functionUses: 5
    functionsReached:
    - X509_NAME_dup
    - X509_NAME_free
    linkageType: ''
    returnType: int
    signature: X509_NAME_set(X509_NAME **xn, X509_NAME *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_oneline
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:497,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:501,1
    - Dst: isupper
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:517,1
    - Dst: isupper
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:518,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:523,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:527,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:538,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:541,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:542,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 39
    argCount: 3
    argNames:
    - bp
    - name
    - obase
    argTypes:
    - BIO*
    - X509_NAME*
    - int
    constantsTouched: []
    func_position:
      end: 544
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 544
    functionName: X509_NAME_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c
    functionUses: 0
    functionsReached:
    - isupper
    - X509_NAME_oneline
    - OPENSSL_free
    - BIO_write
    - X509err
    linkageType: ''
    returnType: int
    signature: X509_NAME_print(BIO *bp, const X509_NAME *name, int obase)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509_NAME
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c:550,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - nm
    - pder
    - pderlen
    argTypes:
    - X509_NAME*
    - unsigned char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 557
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 557
    functionName: X509_NAME_get0_der
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c
    functionUses: 0
    functionsReached:
    - i2d_X509_NAME
    linkageType: ''
    returnType: int
    signature: "X509_NAME_get0_der(X509_NAME *nm, const unsigned char **pder,\n                       size_t
      *pderlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_add_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_d2.c:19,1
    - Dst: X509_LOOKUP_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_d2.c:19,1
    - Dst: X509_LOOKUP_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_d2.c:22,1
    - Dst: X509_STORE_add_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_d2.c:24,1
    - Dst: X509_LOOKUP_hash_dir
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_d2.c:24,1
    - Dst: X509_LOOKUP_add_dir
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_d2.c:27,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_d2.c:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    constantsTouched: []
    func_position:
      end: 33
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 33
    functionName: X509_STORE_set_default_paths
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_d2.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP_load_file
    - X509_LOOKUP_add_dir
    - ERR_clear_error
    - X509_LOOKUP_hash_dir
    - X509_STORE_add_lookup
    - X509_LOOKUP_file
    linkageType: ''
    returnType: int
    signature: X509_STORE_set_default_paths(X509_STORE *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_add_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_d2.c:41,1
    - Dst: X509_LOOKUP_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_d2.c:41,1
    - Dst: X509_LOOKUP_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_d2.c:44,1
    - Dst: X509_STORE_add_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_d2.c:48,1
    - Dst: X509_LOOKUP_hash_dir
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_d2.c:48,1
    - Dst: X509_LOOKUP_add_dir
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_d2.c:51,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - ctx
    - file
    - path
    argTypes:
    - X509_STORE*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 57
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 57
    functionName: X509_STORE_load_locations
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_d2.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP_load_file
    - X509_LOOKUP_add_dir
    - X509_LOOKUP_hash_dir
    - X509_STORE_add_lookup
    - X509_LOOKUP_file
    linkageType: ''
    returnType: int
    signature: "X509_STORE_load_locations(X509_STORE *ctx, const char *file,\n                              const
      char *path)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: X509at_get_attr_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c
    functionUses: 3
    functionsReached:
    - sk_X509_ATTRIBUTE_num
    linkageType: ''
    returnType: int
    signature: X509at_get_attr_count(const STACK_OF(X509_ATTRIBUTE) *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:28,1
    - Dst: X509at_get_attr_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - STACK_OF*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: X509at_get_attr_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c
    functionUses: 4
    functionsReached:
    - OBJ_nid2obj
    - X509at_get_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "X509at_get_attr_by_NID(const STACK_OF(X509_ATTRIBUTE) *x, int nid,\n
      \                          int lastpos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:46,1
    - Dst: sk_X509_ATTRIBUTE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:48,1
    - Dst: OBJ_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - sk
    - obj
    - lastpos
    argTypes:
    - STACK_OF*
    - ASN1_OBJECT*
    - int
    constantsTouched: []
    func_position:
      end: 53
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 53
    functionName: X509at_get_attr_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c
    functionUses: 4
    functionsReached:
    - sk_X509_ATTRIBUTE_value
    - sk_X509_ATTRIBUTE_num
    - OBJ_cmp
    linkageType: ''
    returnType: int
    signature: "X509at_get_attr_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *sk,\n                           const
      ASN1_OBJECT *obj, int lastpos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:57,1
    - Dst: sk_X509_ATTRIBUTE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - STACK_OF*
    - int
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: X509at_get_attr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c
    functionUses: 4
    functionsReached:
    - sk_X509_ATTRIBUTE_value
    - sk_X509_ATTRIBUTE_num
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: '*X509at_get_attr(const STACK_OF(X509_ATTRIBUTE) *x, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:157,1
    - Dst: X509at_get_attr_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:160,1
    - Dst: X509at_get_attr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:162,1
    - Dst: X509_ATTRIBUTE_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:163,1
    - Dst: X509_ATTRIBUTE_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - x
    - obj
    - lastpos
    - type
    argTypes:
    - STACK_OF*
    - ASN1_OBJECT*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 166
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 166
    functionName: X509at_get0_data_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c
    functionUses: 2
    functionsReached:
    - X509_ATTRIBUTE_get0_data
    - X509_ATTRIBUTE_count
    - X509at_get_attr
    - X509at_get_attr_by_OBJ
    linkageType: ''
    returnType: void
    signature: "*X509at_get0_data_by_OBJ(STACK_OF(X509_ATTRIBUTE) *x,\n                              const
      ASN1_OBJECT *obj, int lastpos, int type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:175,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:177,1
    - Dst: X509_ATTRIBUTE_create_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:180,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - attr
    - nid
    - atrtype
    - data
    - len
    argTypes:
    - X509_ATTRIBUTE**
    - int
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 184
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 184
    functionName: X509_ATTRIBUTE_create_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c
    functionUses: 0
    functionsReached:
    - X509err
    - ASN1_OBJECT_free
    - OBJ_nid2obj
    - X509_ATTRIBUTE_create_by_OBJ
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: "*X509_ATTRIBUTE_create_by_NID(X509_ATTRIBUTE **attr, int nid,\n                                             int
      atrtype, const void *data,\n                                             int
      len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_ATTRIBUTE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:194,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:195,1
    - Dst: X509_ATTRIBUTE_set1_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:202,1
    - Dst: X509_ATTRIBUTE_set1_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:204,1
    - Dst: X509_ATTRIBUTE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:212,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 5
    argNames:
    - attr
    - obj
    - atrtype
    - data
    - len
    argTypes:
    - X509_ATTRIBUTE**
    - ASN1_OBJECT*
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 214
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 214
    functionName: X509_ATTRIBUTE_create_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c
    functionUses: 1
    functionsReached:
    - X509_ATTRIBUTE_new
    - X509_ATTRIBUTE_set1_object
    - X509_ATTRIBUTE_set1_data
    - X509_ATTRIBUTE_free
    - X509err
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: "*X509_ATTRIBUTE_create_by_OBJ(X509_ATTRIBUTE **attr,\n                                             const
      ASN1_OBJECT *obj,\n                                             int atrtype,
      const void *data,\n                                             int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:224,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:226,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:228,1
    - Dst: X509_ATTRIBUTE_create_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:231,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - attr
    - atrname
    - type
    - bytes
    - len
    argTypes:
    - X509_ATTRIBUTE**
    - char*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 234
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 234
    functionName: X509_ATTRIBUTE_create_by_txt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c
    functionUses: 0
    functionsReached:
    - OBJ_txt2obj
    - X509err
    - ERR_add_error_data
    - ASN1_OBJECT_free
    - X509_ATTRIBUTE_create_by_OBJ
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: "*X509_ATTRIBUTE_create_by_txt(X509_ATTRIBUTE **attr,\n                                             const
      char *atrname, int type,\n                                             const
      unsigned char *bytes,\n                                             int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:240,1
    - Dst: OBJ_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - attr
    - obj
    argTypes:
    - X509_ATTRIBUTE*
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 243
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 243
    functionName: X509_ATTRIBUTE_set1_object
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c
    functionUses: 1
    functionsReached:
    - ASN1_OBJECT_free
    - OBJ_dup
    linkageType: ''
    returnType: int
    signature: X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr, const ASN1_OBJECT
      *obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_set_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:254,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:255,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:257,1
    - Dst: ASN1_STRING_type_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:262,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:264,1
    - Dst: ASN1_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:274,1
    - Dst: ASN1_TYPE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:277,1
    - Dst: ASN1_TYPE_set1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:280,1
    - Dst: ASN1_TYPE_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:283,1
    - Dst: sk_ASN1_TYPE_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:286,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:290,1
    - Dst: ASN1_TYPE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:291,1
    - Dst: ASN1_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:292,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 4
    argNames:
    - attr
    - attrtype
    - data
    - len
    argTypes:
    - X509_ATTRIBUTE*
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 294
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 294
    functionName: X509_ATTRIBUTE_set1_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c
    functionUses: 1
    functionsReached:
    - ASN1_STRING_set
    - ASN1_STRING_free
    - OBJ_obj2nid
    - ASN1_TYPE_new
    - ASN1_TYPE_set
    - sk_ASN1_TYPE_push
    - ASN1_TYPE_free
    - ASN1_TYPE_set1
    - ASN1_STRING_set_by_NID
    - X509err
    - ASN1_STRING_type_new
    linkageType: ''
    returnType: int
    signature: "X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype,\n                             const
      void *data, int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_TYPE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - attr
    argTypes:
    - X509_ATTRIBUTE*
    constantsTouched: []
    func_position:
      end: 301
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 301
    functionName: X509_ATTRIBUTE_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c
    functionUses: 2
    functionsReached:
    - sk_ASN1_TYPE_num
    linkageType: ''
    returnType: int
    signature: X509_ATTRIBUTE_count(const X509_ATTRIBUTE *attr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - attr
    argTypes:
    - X509_ATTRIBUTE*
    constantsTouched: []
    func_position:
      end: 308
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 308
    functionName: X509_ATTRIBUTE_get0_object
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: '*X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_ATTRIBUTE_get0_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:314,1
    - Dst: ASN1_TYPE_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:317,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - attr
    - idx
    - atrtype
    - data
    argTypes:
    - X509_ATTRIBUTE*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 322
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 322
    functionName: X509_ATTRIBUTE_get0_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c
    functionUses: 1
    functionsReached:
    - X509err
    - X509_ATTRIBUTE_get0_type
    - ASN1_TYPE_get
    linkageType: ''
    returnType: void
    signature: "*X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx,\n                               int
      atrtype, void *data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_TYPE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - attr
    - idx
    argTypes:
    - X509_ATTRIBUTE*
    - int
    constantsTouched: []
    func_position:
      end: 329
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 329
    functionName: X509_ATTRIBUTE_get0_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c
    functionUses: 3
    functionsReached:
    - sk_ASN1_TYPE_value
    linkageType: ''
    returnType: ASN1_TYPE
    signature: '*X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr, int idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_REQ_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:29,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:31,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:38,1
    - Dst: X509_REQ_set_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:43,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:43,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:46,1
    - Dst: X509_REQ_set_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:49,1
    - Dst: X509_REQ_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:54,1
    - Dst: X509_REQ_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:59,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 3
    argNames:
    - x
    - pkey
    - md
    argTypes:
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 61
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 61
    functionName: X509_to_X509_REQ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509_REQ_sign
    - X509_REQ_set_pubkey
    - X509_get_subject_name
    - X509_get0_pubkey
    - X509_REQ_free
    - X509err
    - X509_REQ_set_subject_name
    - OPENSSL_malloc
    - X509_REQ_new
    linkageType: ''
    returnType: X509_REQ
    signature: '*X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - req
    argTypes:
    - X509_REQ*
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 6
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: X509_REQ_get_pubkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_get
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*X509_REQ_get_pubkey(X509_REQ *req)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - req
    argTypes:
    - X509_REQ*
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 5
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: X509_REQ_get0_pubkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c
    functionUses: 2
    functionsReached:
    - X509_PUBKEY_get0
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*X509_REQ_get0_pubkey(X509_REQ *req)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - X509_REQ*
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: X509_REQ_get_X509_PUBKEY
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: X509_PUBKEY
    signature: '*X509_REQ_get_X509_PUBKEY(X509_REQ *req)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_REQ_get_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:87,1
    - Dst: EVP_PKEY_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:88,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:93,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:97,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:101,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:102,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:107,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:109,1
    - Dst: X509err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:114,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:117,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - x
    - k
    argTypes:
    - X509_REQ*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 119
      start: 82
    functionDepth: 7
    functionLinenumber: 82
    functionLinenumberEnd: 119
    functionName: X509_REQ_check_private_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509_REQ_get_pubkey
    - EVP_PKEY_cmp
    - EVP_PKEY_id
    - X509err
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: X509_REQ_check_private_key(X509_REQ *x, EVP_PKEY *k)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - req_nid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 141
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 141
    functionName: X509_REQ_extension_nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: X509_REQ_extension_nid(int req_nid)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: X509_REQ_get_extension_nids
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: '*X509_REQ_get_extension_nids(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nids
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: X509_REQ_set_extension_nids
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: X509_REQ_set_extension_nids(int *nids)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - X509_REQ*
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: X509_REQ_get_attr_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c
    functionUses: 1
    functionsReached:
    - X509at_get_attr_count
    linkageType: ''
    returnType: int
    signature: X509_REQ_get_attr_count(const X509_REQ *req)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - req
    - nid
    - lastpos
    argTypes:
    - X509_REQ*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: X509_REQ_get_attr_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_by_NID
    linkageType: ''
    returnType: int
    signature: X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, int lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - req
    - obj
    - lastpos
    argTypes:
    - X509_REQ*
    - ASN1_OBJECT*
    - int
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: X509_REQ_get_attr_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "X509_REQ_get_attr_by_OBJ(const X509_REQ *req, const ASN1_OBJECT *obj,\n
      \                            int lastpos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req
    - loc
    argTypes:
    - X509_REQ*
    - int
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: X509_REQ_get_attr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c
    functionUses: 1
    functionsReached:
    - X509at_get_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: '*X509_REQ_get_attr(const X509_REQ *req, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_delete_attr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req
    - loc
    argTypes:
    - X509_REQ*
    - int
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: X509_REQ_delete_attr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509at_delete_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: '*X509_REQ_delete_attr(X509_REQ *req, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - req
    - attr
    argTypes:
    - X509_REQ*
    - X509_ATTRIBUTE*
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: X509_REQ_add1_attr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr
    linkageType: ''
    returnType: int
    signature: X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - req
    - obj
    - type
    - bytes
    - len
    argTypes:
    - X509_REQ*
    - ASN1_OBJECT*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 248
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 248
    functionName: X509_REQ_add1_attr_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "X509_REQ_add1_attr_by_OBJ(X509_REQ *req,\n                              const
      ASN1_OBJECT *obj, int type,\n                              const unsigned char
      *bytes, int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - req
    - nid
    - type
    - bytes
    - len
    argTypes:
    - X509_REQ*
    - int
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 258
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 258
    functionName: X509_REQ_add1_attr_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "X509_REQ_add1_attr_by_NID(X509_REQ *req,\n                              int
      nid, int type,\n                              const unsigned char *bytes, int
      len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_txt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - req
    - attrname
    - type
    - bytes
    - len
    argTypes:
    - X509_REQ*
    - char*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 268
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 268
    functionName: X509_REQ_add1_attr_by_txt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_txt
    linkageType: ''
    returnType: int
    signature: "X509_REQ_add1_attr_by_txt(X509_REQ *req,\n                              const
      char *attrname, int type,\n                              const unsigned char
      *bytes, int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - X509_REQ*
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: X509_REQ_get_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: long
    signature: X509_REQ_get_version(const X509_REQ *req)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - X509_REQ*
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: X509_REQ_get_subject_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: X509_NAME
    signature: '*X509_REQ_get_subject_name(const X509_REQ *req)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - req
    - psig
    - palg
    argTypes:
    - X509_REQ*
    - ASN1_BIT_STRING**
    - X509_ALGOR**
    constantsTouched: []
    func_position:
      end: 287
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 287
    functionName: X509_REQ_get0_signature
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "X509_REQ_get0_signature(const X509_REQ *req, const ASN1_BIT_STRING
      **psig,\n                             const X509_ALGOR **palg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - X509_REQ*
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 292
    functionName: X509_REQ_get_signature_nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: X509_REQ_get_signature_nid(const X509_REQ *req)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509_REQ_INFO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - req
    - pp
    argTypes:
    - X509_REQ*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: i2d_re_X509_REQ_tbs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - i2d_X509_REQ_INFO
    linkageType: ''
    returnType: int
    signature: i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:65,1
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:66,1
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:67,1
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:68,1
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:69,1
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:70,1
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:71,1
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - SHA512_CTX*
    constantsTouched: []
    func_position:
      end: 79
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 79
    functionName: SHA384_Init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c
    functionUses: 2
    functionsReached:
    - U64
    linkageType: ''
    returnType: int
    signature: SHA384_Init(SHA512_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:83,1
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:84,1
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:85,1
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:86,1
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:87,1
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:88,1
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:89,1
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - SHA512_CTX*
    constantsTouched: []
    func_position:
      end: 97
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 97
    functionName: SHA512_Init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c
    functionUses: 3
    functionsReached:
    - U64
    linkageType: ''
    returnType: int
    signature: SHA512_Init(SHA512_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:112,1
    - Dst: sha512_block_data_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:114,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:117,1
    - Dst: sha512_block_data_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 59
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - SHA512_CTX*
    constantsTouched: []
    func_position:
      end: 181
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 181
    functionName: SHA512_Final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c
    functionUses: 4
    functionsReached:
    - sha512_block_data_order
    - memset
    linkageType: ''
    returnType: int
    signature: SHA512_Final(unsigned char *md, SHA512_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - SHA512_CTX*
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: SHA384_Final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c
    functionUses: 0
    functionsReached:
    - SHA512_Final
    linkageType: ''
    returnType: int
    signature: SHA384_Final(unsigned char *md, SHA512_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:197,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:208,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:211,1
    - Dst: sha512_block_data_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:213,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:221,1
    - Dst: sha512_block_data_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:222,1
    - Dst: sha512_block_data_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:226,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:231,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - c
    - _data
    - len
    argTypes:
    - SHA512_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 234
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 234
    functionName: SHA512_Update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c
    functionUses: 3
    functionsReached:
    - memcpy
    - sha512_block_data_order
    - U64
    linkageType: ''
    returnType: int
    signature: SHA512_Update(SHA512_CTX *c, const void *_data, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - data
    - len
    argTypes:
    - SHA512_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: SHA384_Update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c
    functionUses: 0
    functionsReached:
    - SHA512_Update
    linkageType: ''
    returnType: int
    signature: SHA384_Update(SHA512_CTX *c, const void *data, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:245,1
    - Dst: sha512_block_data_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - c
    - data
    argTypes:
    - SHA512_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 248
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 248
    functionName: SHA512_Transform
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sha512_block_data_order
    linkageType: ''
    returnType: void
    signature: SHA512_Transform(SHA512_CTX *c, const unsigned char *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA384_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:257,1
    - Dst: SHA512_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:258,1
    - Dst: SHA512_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:259,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 262
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 262
    functionName: SHA384
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c
    functionUses: 0
    functionsReached:
    - SHA384_Init
    - SHA512_Final
    - OPENSSL_cleanse
    - SHA512_Update
    linkageType: ''
    returnType: unsigned char
    signature: '*SHA384(const unsigned char *d, size_t n, unsigned char *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:271,1
    - Dst: SHA512_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:272,1
    - Dst: SHA512_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:273,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 276
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 276
    functionName: SHA512
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c
    functionUses: 0
    functionsReached:
    - SHA512_Init
    - SHA512_Final
    - OPENSSL_cleanse
    - SHA512_Update
    linkageType: ''
    returnType: unsigned char
    signature: '*SHA512(const unsigned char *d, size_t n, unsigned char *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 385
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 385
    functionName: __pull64be
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SHA_LONG64
    signature: __pull64be(const void *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: __pull64be
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SHA_LONG64
    signature: __pull64be(const void *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PULL64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:441,1
    - Dst: Sigma1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:446,1
    - Dst: Ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:446,1
    - Dst: Sigma0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:448,1
    - Dst: Maj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:448,1
    - Dst: sigma0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:452,1
    - Dst: sigma1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:453,1
    - Dst: Sigma1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:459,1
    - Dst: Ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:459,1
    - Dst: Sigma0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:461,1
    - Dst: Maj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 3
    argNames:
    - ctx
    - in
    - num
    argTypes:
    - SHA512_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 475
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 475
    functionName: sha512_block_data_order
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c
    functionUses: 3
    functionsReached:
    - Maj
    - Ch
    - Sigma1
    - PULL64
    - sigma1
    - sigma0
    - Sigma0
    linkageType: ''
    returnType: void
    signature: "sha512_block_data_order(SHA512_CTX *ctx, const void *in,\n                                        size_t
      num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PULL64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:501,1
    - Dst: Sigma1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:503,1
    - Dst: Ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:503,1
    - Dst: Sigma0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:504,1
    - Dst: Maj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:504,1
    - Dst: sigma0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:517,1
    - Dst: sigma1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:519,1
    - Dst: Sigma1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:522,1
    - Dst: Ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:522,1
    - Dst: Sigma0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:523,1
    - Dst: Maj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:523,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 51
    argCount: 3
    argNames:
    - ctx
    - in
    - num
    argTypes:
    - SHA512_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 545
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 545
    functionName: sha512_block_data_order
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c
    functionUses: 3
    functionsReached:
    - Maj
    - Ch
    - Sigma1
    - PULL64
    - sigma1
    - sigma0
    - Sigma0
    linkageType: ''
    returnType: void
    signature: "sha512_block_data_order(SHA512_CTX *ctx, const void *in,\n                                    size_t
      num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:578,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:580,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:582,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:584,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:586,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:588,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:590,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:592,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:594,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:596,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:598,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:600,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:602,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:604,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:606,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:608,1
    - Dst: PULL64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:610,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:611,1
    - Dst: PULL64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:612,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:613,1
    - Dst: PULL64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:614,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:615,1
    - Dst: PULL64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:616,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:617,1
    - Dst: PULL64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:618,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:619,1
    - Dst: PULL64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:620,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:621,1
    - Dst: PULL64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:622,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:623,1
    - Dst: PULL64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:624,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:625,1
    - Dst: PULL64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:626,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:627,1
    - Dst: PULL64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:628,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:629,1
    - Dst: PULL64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:630,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:631,1
    - Dst: PULL64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:632,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:633,1
    - Dst: PULL64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:634,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:635,1
    - Dst: PULL64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:636,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:637,1
    - Dst: PULL64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:638,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:639,1
    - Dst: PULL64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:640,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:641,1
    - Dst: ROUND_16_80
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:645,1
    - Dst: ROUND_16_80
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:646,1
    - Dst: ROUND_16_80
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:647,1
    - Dst: ROUND_16_80
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:648,1
    - Dst: ROUND_16_80
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:649,1
    - Dst: ROUND_16_80
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:650,1
    - Dst: ROUND_16_80
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:651,1
    - Dst: ROUND_16_80
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:652,1
    - Dst: ROUND_16_80
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:653,1
    - Dst: ROUND_16_80
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:654,1
    - Dst: ROUND_16_80
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:655,1
    - Dst: ROUND_16_80
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:656,1
    - Dst: ROUND_16_80
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:657,1
    - Dst: ROUND_16_80
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:658,1
    - Dst: ROUND_16_80
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:659,1
    - Dst: ROUND_16_80
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c:660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 102
    argCount: 3
    argNames:
    - ctx
    - in
    - num
    argTypes:
    - SHA512_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 674
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 674
    functionName: sha512_block_data_order
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c
    functionUses: 3
    functionsReached:
    - ROUND_16_80
    - ROUND_00_15
    - PULL64
    linkageType: ''
    returnType: void
    signature: "sha512_block_data_order(SHA512_CTX *ctx, const void *in,\n                                    size_t
      num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - SHA_CTX*
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: HASH_INIT
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: HASH_INIT(SHA_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:165,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:166,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:167,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:167,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:168,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:169,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:169,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:170,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:171,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:171,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:172,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:173,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:173,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:174,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:175,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:175,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:176,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:177,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:177,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:178,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:179,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:179,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:180,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:181,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:181,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:182,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:183,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:183,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:184,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:185,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:185,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:186,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:187,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:187,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:188,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:189,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:189,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:190,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:191,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:191,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:192,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:193,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:193,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:194,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:195,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:195,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:196,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:196,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:200,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:201,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:202,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:203,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:204,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:204,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:205,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:206,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:207,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:207,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:208,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:209,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:210,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:210,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:211,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:212,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:213,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:213,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:214,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:215,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:216,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:216,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:217,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:218,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:219,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:219,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:220,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:221,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:222,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:222,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:223,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:224,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:225,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:225,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:226,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:227,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:228,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:228,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:229,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:230,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:231,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:231,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:232,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:233,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:234,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:234,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:235,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:236,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:237,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:237,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:238,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:239,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:240,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:240,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:241,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:242,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:243,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:243,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:244,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:245,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:246,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:246,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:247,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:247,1
    - Dst: BODY_16_19
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:250,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:250,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:250,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:250,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:250,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:250,1
    - Dst: BODY_16_19
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:251,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:251,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:251,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:251,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:251,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:251,1
    - Dst: BODY_16_19
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:252,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:252,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:252,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:252,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:252,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:252,1
    - Dst: BODY_16_19
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:253,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:253,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:253,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:253,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:253,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:253,1
    - Dst: BODY_20_31
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:255,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:255,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:255,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:255,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:255,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:255,1
    - Dst: BODY_20_31
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:256,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:256,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:256,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:256,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:256,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:256,1
    - Dst: BODY_20_31
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:257,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:257,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:257,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:257,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:257,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:257,1
    - Dst: BODY_20_31
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:258,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:258,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:258,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:258,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:258,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:258,1
    - Dst: BODY_20_31
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:259,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:259,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:259,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:259,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:259,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:259,1
    - Dst: BODY_20_31
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:260,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:260,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:260,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:260,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:260,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:260,1
    - Dst: BODY_20_31
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:261,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:261,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:261,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:261,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:261,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:261,1
    - Dst: BODY_20_31
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:262,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:262,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:262,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:262,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:262,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:262,1
    - Dst: BODY_20_31
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:263,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:263,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:263,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:263,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:263,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:263,1
    - Dst: BODY_20_31
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:264,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:264,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:264,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:264,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:264,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:264,1
    - Dst: BODY_20_31
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:265,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:265,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:265,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:265,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:265,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:265,1
    - Dst: BODY_20_31
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:266,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:266,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:266,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:266,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:266,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:266,1
    - Dst: BODY_32_39
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:268,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:268,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:268,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:268,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:268,1
    - Dst: BODY_32_39
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:269,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:269,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:269,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:269,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:269,1
    - Dst: BODY_32_39
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:270,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:270,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:270,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:270,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:270,1
    - Dst: BODY_32_39
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:271,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:271,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:271,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:271,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:271,1
    - Dst: BODY_32_39
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:272,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:272,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:272,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:272,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:272,1
    - Dst: BODY_32_39
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:273,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:273,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:273,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:273,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:273,1
    - Dst: BODY_32_39
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:274,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:274,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:274,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:274,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:274,1
    - Dst: BODY_32_39
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:275,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:275,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:275,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:275,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:275,1
    - Dst: BODY_40_59
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:277,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:277,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:277,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:277,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:277,1
    - Dst: BODY_40_59
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:278,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:278,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:278,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:278,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:278,1
    - Dst: BODY_40_59
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:279,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:279,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:279,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:279,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:279,1
    - Dst: BODY_40_59
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:280,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:280,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:280,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:280,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:280,1
    - Dst: BODY_40_59
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:281,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:281,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:281,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:281,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:281,1
    - Dst: BODY_40_59
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:282,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:282,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:282,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:282,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:282,1
    - Dst: BODY_40_59
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:283,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:283,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:283,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:283,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:283,1
    - Dst: BODY_40_59
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:284,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:284,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:284,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:284,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:284,1
    - Dst: BODY_40_59
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:285,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:285,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:285,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:285,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:285,1
    - Dst: BODY_40_59
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:286,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:286,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:286,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:286,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:286,1
    - Dst: BODY_40_59
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:287,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:287,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:287,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:287,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:287,1
    - Dst: BODY_40_59
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:288,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:288,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:288,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:288,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:288,1
    - Dst: BODY_40_59
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:289,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:289,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:289,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:289,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:289,1
    - Dst: BODY_40_59
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:290,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:290,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:290,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:290,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:290,1
    - Dst: BODY_40_59
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:291,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:291,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:291,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:291,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:291,1
    - Dst: BODY_40_59
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:292,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:292,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:292,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:292,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:292,1
    - Dst: BODY_40_59
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:293,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:293,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:293,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:293,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:293,1
    - Dst: BODY_40_59
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:294,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:294,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:294,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:294,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:294,1
    - Dst: BODY_40_59
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:295,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:295,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:295,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:295,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:295,1
    - Dst: BODY_40_59
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:296,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:296,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:296,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:296,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:296,1
    - Dst: BODY_60_79
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:298,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:298,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:298,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:298,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:298,1
    - Dst: BODY_60_79
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:299,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:299,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:299,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:299,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:299,1
    - Dst: BODY_60_79
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:300,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:300,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:300,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:300,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:300,1
    - Dst: BODY_60_79
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:301,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:301,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:301,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:301,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:301,1
    - Dst: BODY_60_79
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:302,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:302,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:302,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:302,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:302,1
    - Dst: BODY_60_79
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:303,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:303,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:303,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:303,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:303,1
    - Dst: BODY_60_79
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:304,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:304,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:304,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:304,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:304,1
    - Dst: BODY_60_79
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:305,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:305,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:305,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:305,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:305,1
    - Dst: BODY_60_79
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:306,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:306,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:306,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:306,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:306,1
    - Dst: BODY_60_79
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:307,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:307,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:307,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:307,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:307,1
    - Dst: BODY_60_79
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:308,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:308,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:308,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:308,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:308,1
    - Dst: BODY_60_79
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:309,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:309,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:309,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:309,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:309,1
    - Dst: BODY_60_79
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:310,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:310,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:310,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:310,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:310,1
    - Dst: BODY_60_79
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:311,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:311,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:311,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:311,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:311,1
    - Dst: BODY_60_79
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:312,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:312,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:312,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:312,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:312,1
    - Dst: BODY_60_79
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:313,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:313,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:313,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:313,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:313,1
    - Dst: BODY_60_79
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:314,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:314,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:314,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:314,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:314,1
    - Dst: BODY_60_79
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:315,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:315,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:315,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:315,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:315,1
    - Dst: BODY_60_79
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:316,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:316,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:316,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:316,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:316,1
    - Dst: BODY_60_79
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:317,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:317,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:317,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:317,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:317,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 168
    argCount: 3
    argNames:
    - c
    - p
    - num
    argTypes:
    - SHA_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 335
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 335
    functionName: HASH_BLOCK_DATA_ORDER
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h
    functionUses: 3
    functionsReached:
    - BODY_16_19
    - HOST_c2l
    - X
    - BODY_32_39
    - BODY_00_15
    - BODY_20_31
    - BODY_40_59
    - BODY_60_79
    linkageType: ''
    returnType: void
    signature: HASH_BLOCK_DATA_ORDER(SHA_CTX *c, const void *p, size_t num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:385,1
    - Dst: BODY_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:387,1
    - Dst: BODY_16_19
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:390,1
    - Dst: BODY_20_39
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:393,1
    - Dst: BODY_40_59
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:397,1
    - Dst: BODY_60_79
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h:401,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 3
    argNames:
    - c
    - p
    - num
    argTypes:
    - SHA_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 421
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 421
    functionName: HASH_BLOCK_DATA_ORDER
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h
    functionUses: 3
    functionsReached:
    - BODY_16_19
    - HOST_c2l
    - BODY_00_15
    - BODY_20_39
    - BODY_40_59
    - BODY_60_79
    linkageType: ''
    returnType: void
    signature: HASH_BLOCK_DATA_ORDER(SHA_CTX *c, const void *p, size_t num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha1_one.c:22,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha1_one.c:24,1
    - Dst: SHA1_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha1_one.c:25,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha1_one.c:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 28
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 28
    functionName: SHA1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha1_one.c
    functionUses: 16
    functionsReached:
    - OPENSSL_cleanse
    - SHA1_Final
    - SHA1_Update
    - SHA1_Init
    linkageType: ''
    returnType: unsigned char
    signature: '*SHA1(const unsigned char *d, size_t n, unsigned char *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - SHA256_CTX*
    constantsTouched: []
    func_position:
      end: 32
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 32
    functionName: SHA224_Init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: SHA224_Init(SHA256_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - SHA256_CTX*
    constantsTouched: []
    func_position:
      end: 47
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 47
    functionName: SHA256_Init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c
    functionUses: 7
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: SHA256_Init(SHA256_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA224_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:56,1
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:57,1
    - Dst: SHA256_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:58,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 61
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 61
    functionName: SHA224
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    - SHA256_Update
    - SHA256_Final
    - SHA224_Init
    linkageType: ''
    returnType: unsigned char
    signature: '*SHA224(const unsigned char *d, size_t n, unsigned char *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:70,1
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:71,1
    - Dst: SHA256_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:72,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 75
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 75
    functionName: SHA256
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c
    functionUses: 7
    functionsReached:
    - OPENSSL_cleanse
    - SHA256_Update
    - SHA256_Final
    - SHA256_Init
    linkageType: ''
    returnType: unsigned char
    signature: '*SHA256(const unsigned char *d, size_t n, unsigned char *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - data
    - len
    argTypes:
    - SHA256_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: SHA224_Update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c
    functionUses: 0
    functionsReached:
    - SHA256_Update
    linkageType: ''
    returnType: int
    signature: SHA224_Update(SHA256_CTX *c, const void *data, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - SHA256_CTX*
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: SHA224_Final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c
    functionUses: 0
    functionsReached:
    - SHA256_Final
    linkageType: ''
    returnType: int
    signature: SHA224_Final(unsigned char *md, SHA256_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:188,1
    - Dst: Sigma1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:190,1
    - Dst: Ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:190,1
    - Dst: Sigma0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:191,1
    - Dst: Maj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:191,1
    - Dst: sigma0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:204,1
    - Dst: sigma1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:206,1
    - Dst: Sigma1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:209,1
    - Dst: Ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:209,1
    - Dst: Sigma0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:210,1
    - Dst: Maj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 50
    argCount: 3
    argNames:
    - ctx
    - in
    - num
    argTypes:
    - SHA256_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 231
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 231
    functionName: sha256_block_data_order
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c
    functionUses: 2
    functionsReached:
    - Maj
    - Ch
    - HOST_c2l
    - Sigma1
    - sigma1
    - sigma0
    - Sigma0
    linkageType: ''
    returnType: void
    signature: "sha256_block_data_order(SHA256_CTX *ctx, const void *in,\n                                    size_t
      num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:276,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:278,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:280,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:282,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:284,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:286,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:288,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:290,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:292,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:294,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:296,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:298,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:300,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:302,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:304,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:306,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:312,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:314,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:315,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:317,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:318,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:320,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:321,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:323,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:324,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:326,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:327,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:329,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:330,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:332,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:333,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:335,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:336,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:338,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:339,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:341,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:342,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:344,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:345,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:347,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:348,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:350,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:351,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:353,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:354,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:356,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:357,1
    - Dst: ROUND_00_15
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:359,1
    - Dst: ROUND_16_63
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:363,1
    - Dst: ROUND_16_63
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:364,1
    - Dst: ROUND_16_63
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:365,1
    - Dst: ROUND_16_63
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:366,1
    - Dst: ROUND_16_63
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:367,1
    - Dst: ROUND_16_63
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:368,1
    - Dst: ROUND_16_63
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:369,1
    - Dst: ROUND_16_63
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c:370,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 113
    argCount: 3
    argNames:
    - ctx
    - in
    - num
    argTypes:
    - SHA256_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 383
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 383
    functionName: sha256_block_data_order
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c
    functionUses: 2
    functionsReached:
    - ROUND_00_15
    - ROUND_16_63
    - HOST_c2l
    linkageType: ''
    returnType: void
    signature: "sha256_block_data_order(SHA256_CTX *ctx, const void *in,\n                                    size_t
      num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SEED_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed_ecb.c:16,1
    - Dst: SEED_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed_ecb.c:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - in
    - out
    - ks
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - SEED_KEY_SCHEDULE*
    - int
    constantsTouched: []
    func_position:
      end: 19
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 19
    functionName: SEED_ecb_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed_ecb.c
    functionUses: 0
    functionsReached:
    - SEED_decrypt
    - SEED_encrypt
    linkageType: ''
    returnType: void
    signature: "SEED_ecb_encrypt(const unsigned char *in, unsigned char *out,\n                      const
      SEED_KEY_SCHEDULE *ks, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_ofb128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed_ofb.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - in
    - out
    - len
    - ks
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - SEED_KEY_SCHEDULE*
    - unsigned char[]
    - int*
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: SEED_ofb128_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed_ofb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ofb128_encrypt
    linkageType: ''
    returnType: void
    signature: "SEED_ofb128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                        size_t len, const SEED_KEY_SCHEDULE *ks,\n                         unsigned
      char ivec[SEED_BLOCK_SIZE], int *num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed_cfb.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - len
    - ks
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - SEED_KEY_SCHEDULE*
    - unsigned char[]
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: SEED_cfb128_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed_cfb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_encrypt
    linkageType: ''
    returnType: void
    signature: "SEED_cfb128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                        size_t len, const SEED_KEY_SCHEDULE *ks,\n                         unsigned
      char ivec[SEED_BLOCK_SIZE], int *num,\n                         int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 412
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 412
    functionName: G_FUNC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: G_FUNC(unsigned int v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: char2word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:446,1
    - Dst: char2word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:447,1
    - Dst: char2word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:448,1
    - Dst: char2word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:449,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:453,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:454,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:455,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:458,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:459,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:460,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:461,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:462,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:463,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:464,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:465,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:466,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:467,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:468,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:469,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:470,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:471,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:472,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:473,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:474,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:475,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:476,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:477,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:478,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:479,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:480,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:481,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:482,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:483,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:484,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:485,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:490,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:491,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:492,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 2
    argNames:
    - rawkey
    - ks
    argTypes:
    - unsigned char[]
    - SEED_KEY_SCHEDULE*
    constantsTouched: []
    func_position:
      end: 497
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 497
    functionName: SEED_set_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c
    functionUses: 1
    functionsReached:
    - KEYSCHEDULE_UPDATE1
    - KEYSCHEDULE_UPDATE0
    - char2word
    - KEYUPDATE_TEMP
    linkageType: ''
    returnType: void
    signature: "SEED_set_key(const unsigned char rawkey[SEED_KEY_LENGTH],\n                  SEED_KEY_SCHEDULE
      *ks)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: char2word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:506,1
    - Dst: char2word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:507,1
    - Dst: char2word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:508,1
    - Dst: char2word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:509,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:512,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:513,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:514,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:515,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:516,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:517,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:518,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:519,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:520,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:521,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:522,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:523,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:524,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:525,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:526,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:527,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:532,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:533,1
    - Dst: word2char
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:538,1
    - Dst: word2char
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:539,1
    - Dst: word2char
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:540,1
    - Dst: word2char
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 3
    argNames:
    - s
    - d
    - ks
    argTypes:
    - unsigned char[]
    - unsigned char[]
    - SEED_KEY_SCHEDULE*
    constantsTouched: []
    func_position:
      end: 542
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 542
    functionName: SEED_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c
    functionUses: 1
    functionsReached:
    - E_SEED
    - char2word
    - word2char
    linkageType: ''
    returnType: void
    signature: "SEED_encrypt(const unsigned char s[SEED_BLOCK_SIZE],\n                  unsigned
      char d[SEED_BLOCK_SIZE],\n                  const SEED_KEY_SCHEDULE *ks)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: char2word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:551,1
    - Dst: char2word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:552,1
    - Dst: char2word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:553,1
    - Dst: char2word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:554,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:557,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:558,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:559,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:560,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:561,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:562,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:563,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:564,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:565,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:566,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:567,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:568,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:569,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:570,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:571,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:572,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:577,1
    - Dst: E_SEED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:578,1
    - Dst: word2char
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:584,1
    - Dst: word2char
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:585,1
    - Dst: word2char
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:586,1
    - Dst: word2char
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 3
    argNames:
    - s
    - d
    - ks
    argTypes:
    - unsigned char[]
    - unsigned char[]
    - SEED_KEY_SCHEDULE*
    constantsTouched: []
    func_position:
      end: 588
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 588
    functionName: SEED_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c
    functionUses: 1
    functionsReached:
    - E_SEED
    - char2word
    - word2char
    linkageType: ''
    returnType: void
    signature: "SEED_decrypt(const unsigned char s[SEED_BLOCK_SIZE],\n                  unsigned
      char d[SEED_BLOCK_SIZE],\n                  const SEED_KEY_SCHEDULE *ks)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed_cbc.c:18,1
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed_cbc.c:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - in
    - out
    - len
    - ks
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - SEED_KEY_SCHEDULE*
    - unsigned char[]
    - int
    constantsTouched: []
    func_position:
      end: 23
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 23
    functionName: SEED_cbc_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed_cbc.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cbc128_decrypt
    - CRYPTO_cbc128_encrypt
    linkageType: ''
    returnType: void
    signature: "SEED_cbc_encrypt(const unsigned char *in, unsigned char *out,\n                      size_t
      len, const SEED_KEY_SCHEDULE *ks,\n                      unsigned char ivec[SEED_BLOCK_SIZE],
      int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/chacha/chacha_enc.c:50,1
    - Dst: QUARTERROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/chacha/chacha_enc.c:53,1
    - Dst: QUARTERROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/chacha/chacha_enc.c:54,1
    - Dst: QUARTERROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/chacha/chacha_enc.c:55,1
    - Dst: QUARTERROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/chacha/chacha_enc.c:56,1
    - Dst: QUARTERROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/chacha/chacha_enc.c:57,1
    - Dst: QUARTERROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/chacha/chacha_enc.c:58,1
    - Dst: QUARTERROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/chacha/chacha_enc.c:59,1
    - Dst: QUARTERROUND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/chacha/chacha_enc.c:60,1
    - Dst: U32TO8_LITTLE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/chacha/chacha_enc.c:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - chacha_buf*
    - u32[]
    constantsTouched: []
    func_position:
      end: 70
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 70
    functionName: chacha20_core
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/chacha/chacha_enc.c
    functionUses: 0
    functionsReached:
    - QUARTERROUND
    - memcpy
    - U32TO8_LITTLE
    linkageType: ''
    returnType: void
    signature: chacha20_core(chacha_buf *output, const u32 input[16])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chacha20_core
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/chacha/chacha_enc.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 5
    argNames:
    - out
    - inp
    - len
    - key
    - counter
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - unsigned int[]
    - unsigned int[]
    constantsTouched: []
    func_position:
      end: 121
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 121
    functionName: ChaCha20_ctr32
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/chacha/chacha_enc.c
    functionUses: 2
    functionsReached:
    - chacha20_core
    linkageType: ''
    returnType: void
    signature: "ChaCha20_ctr32(unsigned char *out, const unsigned char *inp,\n                    size_t
      len, const unsigned int key[8],\n                    const unsigned int counter[4])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_DHxparams
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:29,1
    - Dst: d2i_DHparams
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pkey
    - pp
    - length
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: d2i_dhp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - d2i_DHparams
    - d2i_DHxparams
    linkageType: ''
    returnType: DH
    signature: "*d2i_dhp(const EVP_PKEY *pkey, const unsigned char **pp,\n                   long
      length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_DHxparams
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:36,1
    - Dst: i2d_DHparams
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pkey
    - a
    - pp
    argTypes:
    - EVP_PKEY*
    - DH*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: i2d_dhp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_DHxparams
    - i2d_DHparams
    linkageType: ''
    returnType: int
    signature: i2d_dhp(const EVP_PKEY *pkey, const DH *a, unsigned char **pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: int_dh_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - DH_free
    linkageType: ''
    returnType: void
    signature: int_dh_free(EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:57,1
    - Dst: X509_ALGOR_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:59,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:62,1
    - Dst: d2i_dhp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:70,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:71,1
    - Dst: d2i_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:75,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:76,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:81,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:82,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:86,1
    - Dst: EVP_PKEY_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:87,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:91,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:92,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - pkey
    - pubkey
    argTypes:
    - EVP_PKEY*
    - X509_PUBKEY*
    constantsTouched: []
    func_position:
      end: 95
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 95
    functionName: dh_pub_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign
    - ASN1_INTEGER_to_BN
    - ASN1_INTEGER_free
    - d2i_dhp
    - DH_free
    - d2i_ASN1_INTEGER
    - DHerr
    - X509_PUBKEY_get0_param
    - X509_ALGOR_get0
    linkageType: ''
    returnType: int
    signature: dh_pub_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:108,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:110,1
    - Dst: i2d_dhp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:113,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:115,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:120,1
    - Dst: i2d_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:124,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:126,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:129,1
    - Dst: X509_PUBKEY_set0_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:133,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:133,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:138,1
    - Dst: ASN1_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:139,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - pk
    - pkey
    argTypes:
    - X509_PUBKEY*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 142
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 142
    functionName: dh_pub_encode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_free
    - ASN1_INTEGER_free
    - ASN1_STRING_new
    - X509_PUBKEY_set0_param
    - i2d_dhp
    - OBJ_nid2obj
    - BN_to_ASN1_INTEGER
    - OPENSSL_free
    - DHerr
    - i2d_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: dh_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_pkey_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:162,1
    - Dst: X509_ALGOR_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:165,1
    - Dst: d2i_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:169,1
    - Dst: d2i_dhp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:175,1
    - Dst: BN_secure_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:179,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:180,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:181,1
    - Dst: DH_generate_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:185,1
    - Dst: EVP_PKEY_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:188,1
    - Dst: ASN1_STRING_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:190,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:195,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:197,1
    - Dst: ASN1_STRING_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:198,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - pkey
    - p8
    argTypes:
    - EVP_PKEY*
    - PKCS8_PRIV_KEY_INFO*
    constantsTouched: []
    func_position:
      end: 200
      start: 150
    functionDepth: 4
    functionLinenumber: 150
    functionLinenumberEnd: 200
    functionName: dh_priv_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign
    - ASN1_STRING_clear_free
    - ASN1_INTEGER_to_BN
    - d2i_dhp
    - DH_free
    - DH_generate_key
    - d2i_ASN1_INTEGER
    - DHerr
    - BN_secure_new
    - PKCS8_pkey_get0
    - X509_ALGOR_get0
    linkageType: ''
    returnType: int
    signature: dh_priv_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:209,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:212,1
    - Dst: i2d_dhp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:216,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:218,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:224,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:227,1
    - Dst: i2d_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:231,1
    - Dst: ASN1_STRING_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:233,1
    - Dst: PKCS8_pkey_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:236,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:236,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:243,1
    - Dst: ASN1_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:244,1
    - Dst: ASN1_STRING_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:245,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - p8
    - pkey
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 247
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 247
    functionName: dh_priv_encode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_clear_free
    - ASN1_STRING_free
    - ASN1_STRING_new
    - i2d_dhp
    - OBJ_nid2obj
    - BN_to_ASN1_INTEGER
    - OPENSSL_free
    - PKCS8_pkey_set0
    - DHerr
    - i2d_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: dh_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_dhp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:254,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:255,1
    - Dst: EVP_PKEY_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pkey
    - pder
    - derlen
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    - int
    constantsTouched: []
    func_position:
      end: 260
      start: 249
    functionDepth: 4
    functionLinenumber: 249
    functionLinenumberEnd: 260
    functionName: dh_param_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - DHerr
    - d2i_dhp
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: "dh_param_decode(EVP_PKEY *pkey,\n                           const
      unsigned char **pder, int derlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_dhp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - pder
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: dh_param_encode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_dhp
    linkageType: ''
    returnType: int
    signature: dh_param_encode(const EVP_PKEY *pkey, unsigned char **pder)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:296,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:297,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:297,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:301,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:303,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:306,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:308,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:310,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:312,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:316,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:317,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:320,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:321,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:324,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:328,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:331,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:334,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:335,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:343,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 70
    argCount: 4
    argNames:
    - bp
    - x
    - indent
    - ptype
    argTypes:
    - BIO*
    - DH*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 345
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 345
    functionName: do_dh_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_bn_print
    - BIO_indent
    - BIO_puts
    - BN_num_bits
    - DHerr
    - BIO_printf
    - BIO_write
    linkageType: ''
    returnType: int
    signature: do_dh_print(BIO *bp, const DH *x, int indent, int ptype)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 350
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 350
    functionName: int_dh_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - DH_size
    linkageType: ''
    returnType: int
    signature: int_dh_size(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 355
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 355
    functionName: dh_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: dh_bits(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH_security_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 360
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 360
    functionName: dh_security_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - DH_security_bits
    linkageType: ''
    returnType: int
    signature: dh_security_bits(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:364,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:365,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:368,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 372
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 372
    functionName: dh_cmp_parameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: dh_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:378,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - BIGNUM**
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 386
      start: 374
    functionDepth: 4
    functionLinenumber: 374
    functionLinenumberEnd: 386
    functionName: int_dh_bn_cpy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - BN_free
    linkageType: ''
    returnType: int
    signature: int_dh_bn_cpy(BIGNUM **dst, const BIGNUM *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: int_dh_bn_cpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:392,1
    - Dst: int_dh_bn_cpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:394,1
    - Dst: int_dh_bn_cpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:397,1
    - Dst: int_dh_bn_cpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:399,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:401,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:405,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - to
    - from
    - is_x942
    argTypes:
    - DH*
    - DH*
    - int
    constantsTouched: []
    func_position:
      end: 413
      start: 388
    functionDepth: 5
    functionLinenumber: 388
    functionLinenumberEnd: 413
    functionName: int_dh_param_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - int_dh_bn_cpy
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: int_dh_param_copy(DH *to, const DH *from, int is_x942)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:418,1
    - Dst: int_dh_param_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:421,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    constantsTouched: []
    func_position:
      end: 426
      start: 415
    functionDepth: 6
    functionLinenumber: 415
    functionLinenumberEnd: 426
    functionName: DHparams_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - int_dh_param_copy
    - DH_free
    - DH_new
    linkageType: ''
    returnType: DH
    signature: '*DHparams_dup(DH *dh)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:431,1
    - Dst: int_dh_param_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:435,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 437
      start: 428
    functionDepth: 6
    functionLinenumber: 428
    functionLinenumberEnd: 437
    functionName: dh_copy_parameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - int_dh_param_copy
    - DH_new
    linkageType: ''
    returnType: int
    signature: dh_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 444
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 444
    functionName: dh_missing_parameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: dh_missing_parameters(const EVP_PKEY *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dh_cmp_parameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:448,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 454
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 454
    functionName: dh_pub_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    - dh_cmp_parameters
    linkageType: ''
    returnType: int
    signature: dh_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_dh_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 460
      start: 456
    functionDepth: 3
    functionLinenumber: 456
    functionLinenumberEnd: 460
    functionName: dh_param_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - do_dh_print
    linkageType: ''
    returnType: int
    signature: "dh_param_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                          ASN1_PCTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_dh_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 466
      start: 462
    functionDepth: 3
    functionLinenumber: 462
    functionLinenumberEnd: 466
    functionName: dh_public_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - do_dh_print
    linkageType: ''
    returnType: int
    signature: "dh_public_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                           ASN1_PCTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_dh_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 472
      start: 468
    functionDepth: 3
    functionLinenumber: 468
    functionLinenumberEnd: 472
    functionName: dh_private_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - do_dh_print
    linkageType: ''
    returnType: int
    signature: "dh_private_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                            ASN1_PCTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_dh_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - DH*
    constantsTouched: []
    func_position:
      end: 477
      start: 474
    functionDepth: 3
    functionLinenumber: 474
    functionLinenumberEnd: 477
    functionName: DHparams_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - do_dh_print
    linkageType: ''
    returnType: int
    signature: DHparams_print(BIO *bp, const DH *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dh_cms_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:491,1
    - Dst: dh_cms_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 504
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 504
    functionName: dh_pkey_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - dh_cms_decrypt
    - dh_cms_encrypt
    linkageType: ''
    returnType: int
    signature: dh_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:587,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:588,1
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:594,1
    - Dst: DHparams_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:600,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:602,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:603,1
    - Dst: d2i_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:607,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:608,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:613,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:614,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:618,1
    - Dst: EVP_PKEY_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:621,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:623,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:626,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:627,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:628,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 45
    argCount: 3
    argNames:
    - pctx
    - alg
    - pubkey
    argTypes:
    - EVP_PKEY_CTX*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    constantsTouched: []
    func_position:
      end: 630
      start: 574
    functionDepth: 7
    functionLinenumber: 574
    functionLinenumberEnd: 630
    functionName: dh_cms_set_peerkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign
    - EVP_PKEY_new
    - ASN1_INTEGER_to_BN
    - ASN1_INTEGER_free
    - OBJ_obj2nid
    - DHerr
    - EVP_PKEY_derive_set_peer
    - DH_free
    - d2i_ASN1_INTEGER
    - ASN1_STRING_length
    - ASN1_STRING_get0_data
    - EVP_PKEY_CTX_get0_pkey
    - EVP_PKEY_free
    - X509_ALGOR_get0
    - DHparams_dup
    linkageType: ''
    returnType: int
    signature: "dh_cms_set_peerkey(EVP_PKEY_CTX *pctx,\n                              X509_ALGOR
      *alg, ASN1_BIT_STRING *pubkey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_kari_get0_alg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:645,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:652,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:653,1
    - Dst: EVP_PKEY_CTX_set_dh_kdf_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:657,1
    - Dst: EVP_PKEY_CTX_set_dh_kdf_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:660,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:660,1
    - Dst: d2i_X509_ALGOR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:668,1
    - Dst: CMS_RecipientInfo_kari_get0_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:671,1
    - Dst: EVP_get_cipherbyobj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:674,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:675,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:677,1
    - Dst: EVP_CIPHER_asn1_to_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:679,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:682,1
    - Dst: EVP_PKEY_CTX_set_dh_kdf_outlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:683,1
    - Dst: EVP_PKEY_CTX_set0_dh_kdf_oid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:686,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:687,1
    - Dst: EVP_CIPHER_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:687,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:692,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:693,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:693,1
    - Dst: EVP_PKEY_CTX_set0_dh_kdf_ukm
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:698,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:704,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:705,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 62
    argCount: 2
    argNames:
    - pctx
    - ri
    argTypes:
    - EVP_PKEY_CTX*
    - CMS_RecipientInfo*
    constantsTouched: []
    func_position:
      end: 707
      start: 632
    functionDepth: 4
    functionLinenumber: 632
    functionLinenumberEnd: 707
    functionName: dh_cms_set_shared_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_get_cipherbyobj
    - EVP_CIPHER_asn1_to_param
    - EVP_CIPHER_CTX_key_length
    - DHerr
    - ASN1_STRING_get0_data
    - EVP_EncryptInit_ex
    - EVP_sha1
    - d2i_X509_ALGOR
    - OBJ_nid2obj
    - EVP_PKEY_CTX_set_dh_kdf_md
    - EVP_PKEY_CTX_set_dh_kdf_outlen
    - ASN1_STRING_length
    - EVP_PKEY_CTX_set0_dh_kdf_ukm
    - EVP_CIPHER_mode
    - CMS_RecipientInfo_kari_get0_alg
    - OPENSSL_free
    - CMS_RecipientInfo_kari_get0_ctx
    - EVP_PKEY_CTX_set0_dh_kdf_oid
    - OPENSSL_memdup
    - OBJ_obj2nid
    - EVP_CIPHER_type
    - EVP_PKEY_CTX_set_dh_kdf_type
    - X509_ALGOR_free
    linkageType: ''
    returnType: int
    signature: dh_cms_set_shared_info(EVP_PKEY_CTX *pctx, CMS_RecipientInfo *ri)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_get0_pkey_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:712,1
    - Dst: EVP_PKEY_CTX_get0_peerkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:716,1
    - Dst: CMS_RecipientInfo_kari_get0_orig_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:719,1
    - Dst: dh_cms_set_peerkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:724,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:725,1
    - Dst: dh_cms_set_shared_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:730,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:731,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    constantsTouched: []
    func_position:
      end: 735
      start: 709
    functionDepth: 8
    functionLinenumber: 709
    functionLinenumberEnd: 735
    functionName: dh_cms_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 1
    functionsReached:
    - dh_cms_set_shared_info
    - CMS_RecipientInfo_kari_get0_orig_id
    - CMS_RecipientInfo_get0_pkey_ctx
    - EVP_PKEY_CTX_get0_peerkey
    - DHerr
    - dh_cms_set_peerkey
    linkageType: ''
    returnType: int
    signature: dh_cms_decrypt(CMS_RecipientInfo *ri)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_get0_pkey_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:754,1
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:758,1
    - Dst: CMS_RecipientInfo_kari_get0_orig_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:759,1
    - Dst: X509_ALGOR_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:762,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:764,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:765,1
    - Dst: i2d_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:770,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:771,1
    - Dst: ASN1_STRING_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:774,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:779,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:779,1
    - Dst: EVP_PKEY_CTX_get_dh_kdf_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:784,1
    - Dst: EVP_PKEY_CTX_get_dh_kdf_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:787,1
    - Dst: EVP_PKEY_CTX_set_dh_kdf_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:792,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:799,1
    - Dst: EVP_PKEY_CTX_set_dh_kdf_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:800,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:802,1
    - Dst: CMS_RecipientInfo_kari_get0_alg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:806,1
    - Dst: CMS_RecipientInfo_kari_get0_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:810,1
    - Dst: EVP_CIPHER_CTX_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:811,1
    - Dst: EVP_PKEY_CTX_set0_dh_kdf_oid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:812,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:812,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:814,1
    - Dst: X509_ALGOR_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:818,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:821,1
    - Dst: ASN1_TYPE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:822,1
    - Dst: EVP_CIPHER_param_to_asn1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:825,1
    - Dst: ASN1_TYPE_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:827,1
    - Dst: ASN1_TYPE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:828,1
    - Dst: EVP_PKEY_CTX_set_dh_kdf_outlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:832,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:836,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:837,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:837,1
    - Dst: EVP_PKEY_CTX_set0_dh_kdf_ukm
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:842,1
    - Dst: i2d_X509_ALGOR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:851,1
    - Dst: ASN1_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:854,1
    - Dst: ASN1_STRING_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:857,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:859,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:859,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:865,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c:866,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 106
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    constantsTouched: []
    func_position:
      end: 868
      start: 737
    functionDepth: 2
    functionLinenumber: 737
    functionLinenumberEnd: 868
    functionName: dh_cms_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
    functionUses: 1
    functionsReached:
    - X509_ALGOR_set0
    - EVP_MD_type
    - EVP_CIPHER_CTX_key_length
    - ASN1_TYPE_free
    - ASN1_STRING_get0_data
    - EVP_PKEY_CTX_get_dh_kdf_type
    - ASN1_STRING_set0
    - EVP_CIPHER_CTX_type
    - EVP_sha1
    - ASN1_STRING_new
    - EVP_CIPHER_param_to_asn1
    - OBJ_nid2obj
    - EVP_PKEY_CTX_get_dh_kdf_md
    - EVP_PKEY_CTX_set_dh_kdf_md
    - ASN1_TYPE_new
    - EVP_PKEY_CTX_set_dh_kdf_outlen
    - ASN1_STRING_length
    - X509_ALGOR_get0
    - EVP_PKEY_CTX_set0_dh_kdf_ukm
    - CMS_RecipientInfo_kari_get0_orig_id
    - X509_ALGOR_new
    - CMS_RecipientInfo_get0_pkey_ctx
    - CMS_RecipientInfo_kari_get0_alg
    - i2d_X509_ALGOR
    - OPENSSL_free
    - CMS_RecipientInfo_kari_get0_ctx
    - EVP_PKEY_CTX_set0_dh_kdf_oid
    - ASN1_TYPE_get
    - OPENSSL_memdup
    - BN_to_ASN1_INTEGER
    - EVP_PKEY_CTX_set_dh_kdf_type
    - X509_ALGOR_free
    - ASN1_INTEGER_free
    - EVP_PKEY_CTX_get0_pkey
    - i2d_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: dh_cms_encrypt(CMS_RecipientInfo *ri)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c:16,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c:21,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c:25,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - name
    - flags
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 30
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 30
    functionName: DH_meth_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - DHerr
    - OPENSSL_strdup
    - OPENSSL_zalloc
    linkageType: ''
    returnType: DH_METHOD
    signature: '*DH_meth_new(const char *name, int flags)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c:35,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: DH_meth_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: DH_meth_free(DH_METHOD *dhm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c:42,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c:45,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c:47,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c:51,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    constantsTouched: []
    func_position:
      end: 56
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 56
    functionName: DH_meth_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OPENSSL_strdup
    - OPENSSL_free
    - DHerr
    - OPENSSL_malloc
    linkageType: ''
    returnType: DH_METHOD
    signature: '*DH_meth_dup(const DH_METHOD *dhm)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: DH_meth_get0_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*DH_meth_get0_name(const DH_METHOD *dhm)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c:68,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - dhm
    - name
    argTypes:
    - DH_METHOD*
    - char*
    constantsTouched: []
    func_position:
      end: 76
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 76
    functionName: DH_meth_set1_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - DHerr
    linkageType: ''
    returnType: int
    signature: DH_meth_set1_name(DH_METHOD *dhm, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: DH_meth_get_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: DH_meth_get_flags(DH_METHOD *dhm)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dhm
    - flags
    argTypes:
    - DH_METHOD*
    - int
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: DH_meth_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: DH_meth_set_flags(DH_METHOD *dhm, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: DH_meth_get0_app_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*DH_meth_get0_app_data(const DH_METHOD *dhm)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dhm
    - app_data
    argTypes:
    - DH_METHOD*
    - void*
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: DH_meth_set0_app_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: DH_meth_set0_app_data(DH_METHOD *dhm, void *app_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: (*DH_meth_get_generate_key(const DH_METHOD *dhm)) (DH *)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*DH_meth_get_generate_key(const DH_METHOD *dhm)) (DH *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: DH_meth_set_generate_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: DH_meth_set_generate_key(DH_METHOD *dhm, int (*generate_key) (DH *))
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - pub_key
    - dh
    argTypes:
    - unsigned char*
    - BIGNUM*
    - DH*
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: "(*DH_meth_get_compute_key(const DH_METHOD *dhm))\n        (unsigned
      char *key, const BIGNUM *pub_key, DH *dh)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*DH_meth_get_compute_key(const DH_METHOD *dhm))\n        (unsigned
      char *key, const BIGNUM *pub_key, DH *dh)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: DH_meth_set_compute_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "DH_meth_set_compute_key(DH_METHOD *dhm,\n        int (*compute_key)
      (unsigned char *key, const BIGNUM *pub_key, DH *dh))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: "(*DH_meth_get_bn_mod_exp(const DH_METHOD *dhm))\n    (const DH
      *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *,\n     BN_CTX *,
      BN_MONT_CTX *)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*DH_meth_get_bn_mod_exp(const DH_METHOD *dhm))\n    (const DH *,
      BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *,\n     BN_CTX *, BN_MONT_CTX
      *)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: DH_meth_set_bn_mod_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "DH_meth_set_bn_mod_exp(DH_METHOD *dhm,\n    int (*bn_mod_exp) (const
      DH *, BIGNUM *, const BIGNUM *, const BIGNUM *,\n                       const
      BIGNUM *, BN_CTX *, BN_MONT_CTX *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: (*DH_meth_get_init(const DH_METHOD *dhm))(DH *)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*DH_meth_get_init(const DH_METHOD *dhm))(DH *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: DH_meth_set_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: DH_meth_set_init(DH_METHOD *dhm, int (*init)(DH *))
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: (*DH_meth_get_finish(const DH_METHOD *dhm)) (DH *)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*DH_meth_get_finish(const DH_METHOD *dhm)) (DH *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: DH_meth_set_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: DH_meth_set_finish(DH_METHOD *dhm, int (*finish) (DH *))
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: "(*DH_meth_get_generate_params(const DH_METHOD *dhm))\n        (DH
      *, int, int, BN_GENCB *)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*DH_meth_get_generate_params(const DH_METHOD *dhm))\n        (DH
      *, int, int, BN_GENCB *)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: DH_meth_set_generate_params
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "DH_meth_set_generate_params(DH_METHOD *dhm,\n        int (*generate_params)
      (DH *, int, int, BN_GENCB *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_get_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_kdf.c:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - pp
    - plen
    - exptag
    argTypes:
    - unsigned char**
    - long*
    - int
    constantsTouched: []
    func_position:
      end: 42
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 42
    functionName: skip_asn1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_kdf.c
    functionUses: 0
    functionsReached:
    - ASN1_get_object
    linkageType: ''
    returnType: int
    signature: skip_asn1(unsigned char **pp, long *plen, int exptag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_SharedInfo_encode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_kdf.c:79,1
    - Dst: skip_asn1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_kdf.c:84,1
    - Dst: skip_asn1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_kdf.c:86,1
    - Dst: skip_asn1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_kdf.c:88,1
    - Dst: skip_asn1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_kdf.c:90,1
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_kdf.c:92,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 6
    argNames:
    - pder
    - pctr
    - key_oid
    - outlen
    - ukm
    - ukmlen
    argTypes:
    - unsigned char**
    - unsigned char**
    - ASN1_OBJECT*
    - size_t
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 96
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 96
    functionName: dh_sharedinfo_encode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_kdf.c
    functionUses: 0
    functionsReached:
    - CMS_SharedInfo_encode
    - CRYPTO_memcmp
    - skip_asn1
    linkageType: ''
    returnType: int
    signature: "dh_sharedinfo_encode(unsigned char **pder, unsigned char **pctr,\n
      \                               ASN1_OBJECT *key_oid, size_t outlen,\n                                const
      unsigned char *ukm, size_t ukmlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_kdf.c:111,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_kdf.c:114,1
    - Dst: dh_sharedinfo_encode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_kdf.c:115,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_kdf.c:120,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_kdf.c:121,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_kdf.c:127,1
    - Dst: EVP_DigestFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_kdf.c:130,1
    - Dst: EVP_DigestFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_kdf.c:137,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_kdf.c:139,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_kdf.c:140,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_kdf.c:146,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_kdf.c:147,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 8
    argNames:
    - out
    - outlen
    - Z
    - Zlen
    - key_oid
    - ukm
    - ukmlen
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - ASN1_OBJECT*
    - unsigned char*
    - size_t
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 149
      start: 98
    functionDepth: 4
    functionLinenumber: 98
    functionLinenumberEnd: 149
    functionName: DH_KDF_X9_42
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_kdf.c
    functionUses: 0
    functionsReached:
    - EVP_MD_size
    - EVP_DigestUpdate
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - dh_sharedinfo_encode
    - memcpy
    - EVP_DigestFinal
    - OPENSSL_cleanse
    - OPENSSL_free
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: "DH_KDF_X9_42(unsigned char *out, size_t outlen,\n                 const
      unsigned char *Z, size_t Zlen,\n                 ASN1_OBJECT *key_oid,\n                 const
      unsigned char *ukm, size_t ukmlen, const EVP_MD *md)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH*::meth::generate_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c:27,1
    - Dst: dh_builtin_genparams
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ret
    - prime_len
    - generator
    - cb
    argTypes:
    - DH*
    - int
    - int
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: DH_generate_parameters_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c
    functionUses: 1
    functionsReached:
    - dh_builtin_genparams
    - DH*::meth::generate_params
    linkageType: ''
    returnType: int
    signature: "DH_generate_parameters_ex(DH *ret, int prime_len, int generator,\n
      \                             BN_GENCB *cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c:65,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c:68,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c:69,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c:70,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c:75,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c:77,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c:81,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c:85,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c:87,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c:91,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c:93,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c:105,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c:107,1
    - Dst: BN_generate_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c:112,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c:114,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c:116,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c:121,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c:126,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c:127,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 69
    argCount: 4
    argNames:
    - ret
    - prime_len
    - generator
    - cb
    argTypes:
    - DH*
    - int
    - int
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 130
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 130
    functionName: dh_builtin_genparams
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_generate_prime_ex
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_free
    - BN_set_word
    - BN_CTX_new
    - BN_CTX_get
    - DHerr
    - BN_GENCB_call
    linkageType: ''
    returnType: int
    signature: "dh_builtin_genparams(DH *ret, int prime_len, int generator,\n                                BN_GENCB
      *cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH*::meth::generate_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: DH_generate_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c
    functionUses: 1
    functionsReached:
    - DH*::meth::generate_key
    linkageType: ''
    returnType: int
    signature: DH_generate_key(DH *dh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH*::meth::compute_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - pub_key
    - dh
    argTypes:
    - unsigned char*
    - BIGNUM*
    - DH*
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: DH_compute_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c
    functionUses: 1
    functionsReached:
    - DH*::meth::compute_key
    linkageType: ''
    returnType: int
    signature: DH_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH*::meth::compute_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:36,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:39,1
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:41,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - key
    - pub_key
    - dh
    argTypes:
    - unsigned char*
    - BIGNUM*
    - DH*
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: DH_compute_key_padded
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c
    functionUses: 0
    functionsReached:
    - memset
    - DH*::meth::compute_key
    - memmove
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: DH_compute_key_padded(unsigned char *key, const BIGNUM *pub_key, DH
      *dh)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: DH_OpenSSL
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: DH_METHOD
    signature: '*DH_OpenSSL(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:73,1
    - Dst: BN_secure_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:78,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:86,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:93,1
    - Dst: BN_rand_range
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:102,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:105,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:105,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:108,1
    - Dst: BN_rand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:109,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:115,1
    - Dst: BN_with_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:119,1
    - Dst: DH*::meth::bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:121,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:122,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:126,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:134,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:137,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:139,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:140,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 64
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    constantsTouched: []
    func_position:
      end: 142
      start: 64
    functionDepth: 6
    functionLinenumber: 64
    functionLinenumberEnd: 142
    functionName: generate_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c
    functionUses: 4
    functionsReached:
    - BN_new
    - BN_free
    - BN_with_flags
    - BN_is_zero
    - DHerr
    - BN_rand
    - BN_rand_range
    - BN_CTX_free
    - BN_num_bits
    - BN_CTX_new
    - BN_is_one
    - DH*::meth::bn_mod_exp
    - BN_secure_new
    - BN_MONT_CTX_set_locked
    linkageType: ''
    returnType: int
    signature: generate_key(DH *dh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:152,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:153,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:157,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:160,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:161,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:166,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:171,1
    - Dst: BN_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:173,1
    - Dst: DH_check_pub_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:178,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:179,1
    - Dst: DH*::meth::bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:183,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:185,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:189,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:192,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:193,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 3
    argNames:
    - key
    - pub_key
    - dh
    argTypes:
    - unsigned char*
    - BIGNUM*
    - DH*
    constantsTouched: []
    func_position:
      end: 196
      start: 144
    functionDepth: 6
    functionLinenumber: 144
    functionLinenumberEnd: 196
    functionName: compute_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c
    functionUses: 5
    functionsReached:
    - BN_CTX_end
    - BN_CTX_start
    - BN_set_flags
    - BN_num_bits
    - BN_CTX_free
    - BN_CTX_new
    - BN_CTX_get
    - DH_check_pub_key
    - BN_bn2bin
    - DH*::meth::bn_mod_exp
    - DHerr
    - BN_MONT_CTX_set_locked
    linkageType: ''
    returnType: int
    signature: compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_mod_exp_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - dh
    - r
    - a
    - p
    - m
    - ctx
    - m_ctx
    argTypes:
    - DH*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: dh_bn_mod_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c
    functionUses: 0
    functionsReached:
    - BN_mod_exp_mont
    linkageType: ''
    returnType: int
    signature: "dh_bn_mod_exp(const DH *dh, BIGNUM *r,\n                         const
      BIGNUM *a, const BIGNUM *p,\n                         const BIGNUM *m, BN_CTX
      *ctx, BN_MONT_CTX *m_ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: dh_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: dh_init(DH *dh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 4
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: dh_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c
    functionUses: 0
    functionsReached:
    - BN_MONT_CTX_free
    linkageType: ''
    returnType: int
    signature: dh_finish(DH *dh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 64
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 64
    functionName: pkey_dh_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: pkey_dh_init(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:70,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:71,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: pkey_dh_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: void
    signature: pkey_dh_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pkey_dh_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:80,1
    - Dst: OBJ_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:92,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 104
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 104
    functionName: pkey_dh_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - OBJ_dup
    - pkey_dh_init
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: pkey_dh_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:180,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:193,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 74
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 205
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 205
    functionName: pkey_dh_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: pkey_dh_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:210,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:212,1
    - Dst: EVP_PKEY_CTX_set_dh_paramgen_prime_len
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:213,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:215,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:218,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:224,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:226,1
    - Dst: EVP_PKEY_CTX_set_dh_paramgen_generator
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:227,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:229,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:231,1
    - Dst: EVP_PKEY_CTX_set_dh_paramgen_subprime_len
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:232,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:234,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:236,1
    - Dst: EVP_PKEY_CTX_set_dh_paramgen_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:237,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 240
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 240
    functionName: pkey_dh_ctrl_str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - strcmp
    - atoi
    - EVP_PKEY_CTX_set_dh_paramgen_generator
    - EVP_PKEY_CTX_set_dh_paramgen_prime_len
    - EVP_PKEY_CTX_set_dh_paramgen_type
    - EVP_PKEY_CTX_set_dh_paramgen_subprime_len
    linkageType: ''
    returnType: int
    signature: "pkey_dh_ctrl_str(EVP_PKEY_CTX *ctx,\n                            const
      char *type, const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:266,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:277,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:279,1
    - Dst: dsa_builtin_paramgen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:282,1
    - Dst: dsa_builtin_paramgen2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:285,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:288,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - dctx
    - pcb
    argTypes:
    - DH_PKEY_CTX*
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 292
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 292
    functionName: dsa_dh_generate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - DSA_new
    - EVP_sha1
    - dsa_builtin_paramgen
    - DSA_free
    - dsa_builtin_paramgen2
    - EVP_sha256
    linkageType: ''
    returnType: DSA
    signature: '*dsa_dh_generate(DH_PKEY_CTX *dctx, BN_GENCB *pcb)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH_get_1024_160
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:305,1
    - Dst: DH_get_2048_224
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:309,1
    - Dst: DH_get_2048_256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:313,1
    - Dst: EVP_PKEY_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:319,1
    - Dst: BN_GENCB_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:324,1
    - Dst: evp_pkey_set_cb_translate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:327,1
    - Dst: dsa_dh_generate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:333,1
    - Dst: BN_GENCB_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:334,1
    - Dst: DSA_dup_DH
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:337,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:338,1
    - Dst: EVP_PKEY_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:341,1
    - Dst: DH_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:345,1
    - Dst: BN_GENCB_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:347,1
    - Dst: DH_generate_parameters_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:350,1
    - Dst: BN_GENCB_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:352,1
    - Dst: EVP_PKEY_assign_DH
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:354,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:356,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 358
      start: 296
    functionDepth: 4
    functionLinenumber: 296
    functionLinenumberEnd: 358
    functionName: pkey_dh_paramgen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - DSA_dup_DH
    - EVP_PKEY_assign
    - BN_GENCB_new
    - evp_pkey_set_cb_translate
    - dsa_dh_generate
    - BN_GENCB_free
    - DH_get_1024_160
    - DSA_free
    - EVP_PKEY_assign_DH
    - DH_new
    - DH_free
    - DH_get_2048_256
    - DH_get_2048_224
    - DH_generate_parameters_ex
    linkageType: ''
    returnType: int
    signature: pkey_dh_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:364,1
    - Dst: DH_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:367,1
    - Dst: EVP_PKEY_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:370,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:372,1
    - Dst: DH_generate_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:374,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 375
      start: 360
    functionDepth: 4
    functionLinenumber: 360
    functionLinenumberEnd: 375
    functionName: pkey_dh_keygen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign
    - DH_new
    - EVP_PKEY_copy_parameters
    - DH_generate_key
    - DHerr
    linkageType: ''
    returnType: int
    signature: pkey_dh_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:385,1
    - Dst: DH_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:392,1
    - Dst: DH_compute_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:395,1
    - Dst: DH_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:415,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:416,1
    - Dst: DH_compute_key_padded
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:420,1
    - Dst: DH_KDF_X9_42
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:422,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c:428,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    constantsTouched: []
    func_position:
      end: 433
      start: 377
    functionDepth: 5
    functionLinenumber: 377
    functionLinenumberEnd: 433
    functionName: pkey_dh_derive
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - DH_size
    - DH_KDF_X9_42
    - DH_compute_key
    - OPENSSL_clear_free
    - DHerr
    - OPENSSL_malloc
    - DH_compute_key_padded
    linkageType: ''
    returnType: int
    signature: "pkey_dh_derive(EVP_PKEY_CTX *ctx, unsigned char *key,\n                          size_t
      *keylen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_err.c:67,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_err.c:68,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_err.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 73
    functionName: ERR_load_DH_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_DH_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_depr.c:28,1
    - Dst: BN_GENCB_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_depr.c:30,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_depr.c:32,1
    - Dst: BN_GENCB_set_old
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_depr.c:36,1
    - Dst: DH_generate_parameters_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_depr.c:38,1
    - Dst: BN_GENCB_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_depr.c:39,1
    - Dst: BN_GENCB_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_depr.c:42,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_depr.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - prime_len
    - generator
    - cb_arg
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 45
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 45
    functionName: DH_generate_parameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_depr.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_set_old
    - BN_GENCB_free
    - BN_GENCB_new
    - DH_new
    - DH_free
    - DH_generate_parameters_ex
    linkageType: ''
    returnType: DH
    signature: "*DH_generate_parameters(int prime_len, int generator,\n                           void
      (*callback) (int, int, void *), void *cb_arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - DH_METHOD*
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: DH_set_default_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DH_set_default_method(const DH_METHOD *meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: DH_get_default_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached:
    - DH_OpenSSL
    linkageType: ''
    returnType: DH_METHOD
    signature: '*DH_get_default_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH_METHOD*::finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:39,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:41,1
    - Dst: DH_METHOD*::init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - dh
    - meth
    argTypes:
    - DH*
    - DH_METHOD*
    constantsTouched: []
    func_position:
      end: 48
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 48
    functionName: DH_set_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached:
    - DH_METHOD*::finish
    - DH_METHOD*::init
    - ENGINE_finish
    linkageType: ''
    returnType: int
    signature: DH_set_method(DH *dh, const DH_METHOD *meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH_new_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: DH_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c
    functionUses: 5
    functionsReached:
    - DH_new_method
    linkageType: ''
    returnType: DH
    signature: '*DH_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:57,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:60,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:65,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:67,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:68,1
    - Dst: DH_get_default_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:72,1
    - Dst: ENGINE_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:76,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:77,1
    - Dst: ENGINE_get_default_DH
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:82,1
    - Dst: ENGINE_get_DH
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:84,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:86,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:94,1
    - Dst: DH*::meth::init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:97,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:98,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:100,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 1
    argNames:
    - engine
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 105
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 105
    functionName: DH_new_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c
    functionUses: 1
    functionsReached:
    - DH*::meth::init
    - CRYPTO_new_ex_data
    - ENGINE_get_DH
    - ENGINE_init
    - DH_get_default_method
    - CRYPTO_THREAD_lock_new
    - DH_free
    - ENGINE_get_default_DH
    - OPENSSL_zalloc
    - OPENSSL_free
    - DHerr
    linkageType: ''
    returnType: DH
    signature: '*DH_new_method(ENGINE *engine)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:114,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:115,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:118,1
    - Dst: DH*::meth::finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:121,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:123,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:126,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:128,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:130,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:131,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:132,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:133,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:134,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:135,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:136,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:137,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - r
    argTypes:
    - DH*
    constantsTouched: []
    func_position:
      end: 139
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 139
    functionName: DH_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c
    functionUses: 9
    functionsReached:
    - DH*::meth::finish
    - BN_clear_free
    - CRYPTO_THREAD_lock_free
    - CRYPTO_free_ex_data
    - ENGINE_finish
    - CRYPTO_atomic_add
    - OPENSSL_free
    - REF_ASSERT_ISNT
    - REF_PRINT_COUNT
    linkageType: ''
    returnType: void
    signature: DH_free(DH *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:145,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:148,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - DH*
    constantsTouched: []
    func_position:
      end: 151
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 151
    functionName: DH_up_ref
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c
    functionUses: 2
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_atomic_add
    linkageType: ''
    returnType: int
    signature: DH_up_ref(DH *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - idx
    - arg
    argTypes:
    - DH*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: DH_set_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: DH_set_ex_data(DH *d, int idx, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - idx
    argTypes:
    - DH*
    - int
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: DH_get_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: '*DH_get_ex_data(DH *d, int idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: DH_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: DH_bits(const DH *dh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: DH_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c
    functionUses: 2
    functionsReached:
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: DH_size(const DH *dh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:177,1
    - Dst: BN_security_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:182,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    constantsTouched: []
    func_position:
      end: 183
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 183
    functionName: DH_security_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c
    functionUses: 1
    functionsReached:
    - BN_num_bits
    - BN_security_bits
    linkageType: ''
    returnType: int
    signature: DH_security_bits(const DH *dh)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - dh
    - p
    - q
    - g
    argTypes:
    - DH*
    - BIGNUM**
    - BIGNUM**
    - BIGNUM**
    constantsTouched: []
    func_position:
      end: 195
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 195
    functionName: DH_get0_pqg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "DH_get0_pqg(const DH *dh,\n                 const BIGNUM **p, const
      BIGNUM **q, const BIGNUM **g)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:207,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:211,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:215,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:220,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 4
    argNames:
    - dh
    - p
    - q
    - g
    argTypes:
    - DH*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 224
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 224
    functionName: DH_set0_pqg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    - BN_free
    linkageType: ''
    returnType: int
    signature: DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: DH_get_length
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: DH_get_length(const DH *dh)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dh
    - length
    argTypes:
    - DH*
    - long
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: DH_set_length
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: DH_set_length(DH *dh, long length)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - dh
    - pub_key
    - priv_key
    argTypes:
    - DH*
    - BIGNUM**
    - BIGNUM**
    constantsTouched: []
    func_position:
      end: 243
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 243
    functionName: DH_get0_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:255,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c:259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - dh
    - pub_key
    - priv_key
    argTypes:
    - DH*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 264
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 264
    functionName: DH_set0_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: int
    signature: DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dh
    - flags
    argTypes:
    - DH*
    - int
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: DH_clear_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DH_clear_flags(DH *dh, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dh
    - flags
    argTypes:
    - DH*
    - int
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: DH_test_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: DH_test_flags(const DH *dh, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dh
    - flags
    argTypes:
    - DH*
    - int
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: DH_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DH_set_flags(DH *dh, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: DH_get0_engine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE
    signature: '*DH_get0_engine(DH *dh)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_asn1.c:22,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_asn1.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    constantsTouched: []
    func_position:
      end: 32
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 32
    functionName: dh_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_asn1.c
    functionUses: 0
    functionsReached:
    - DH_free
    - DH_new
    linkageType: ''
    returnType: int
    signature: "dh_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n                 void
      *exarg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_asn1.c:85,1
    - Dst: d2i_int_dhx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_asn1.c:88,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_asn1.c:90,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_asn1.c:95,1
    - Dst: ASN1_BIT_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_asn1.c:109,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_asn1.c:110,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_asn1.c:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - DH**
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 116
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 116
    functionName: d2i_DHxparams
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_asn1.c
    functionUses: 2
    functionsReached:
    - ASN1_BIT_STRING_free
    - DH_new
    - DH_free
    - d2i_int_dhx
    - OPENSSL_free
    linkageType: ''
    returnType: DH
    signature: '*d2i_DHxparams(DH **a, const unsigned char **pp, long length)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_int_dhx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_asn1.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - dh
    - pp
    argTypes:
    - DH*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 138
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 138
    functionName: i2d_DHxparams
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_asn1.c
    functionUses: 1
    functionsReached:
    - i2d_int_dhx
    linkageType: ''
    returnType: int
    signature: i2d_DHxparams(const DH *dh, unsigned char **pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_prn.c:21,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_prn.c:21,1
    - Dst: DHerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_prn.c:22,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_prn.c:25,1
    - Dst: DHparams_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_prn.c:26,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_prn.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - fp
    - x
    argTypes:
    - FILE*
    - DH*
    constantsTouched: []
    func_position:
      end: 29
      start: 16
    functionDepth: 4
    functionLinenumber: 16
    functionLinenumberEnd: 29
    functionName: DHparams_print_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_prn.c
    functionUses: 0
    functionsReached:
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - DHparams_print
    - BIO_new
    - DHerr
    linkageType: ''
    returnType: int
    signature: DHparams_print_fp(FILE *fp, const DH *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:29,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:32,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:33,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:37,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:39,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:39,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:39,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:41,1
    - Dst: BN_sub_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:41,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:43,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:49,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:50,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 2
    argNames:
    - dh
    - ret
    argTypes:
    - DH*
    - int*
    constantsTouched: []
    func_position:
      end: 53
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 53
    functionName: DH_check_params
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c
    functionUses: 0
    functionsReached:
    - BN_is_odd
    - BN_sub_word
    - BN_is_zero
    - BN_cmp
    - BN_is_negative
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_free
    - BN_copy
    - BN_CTX_new
    - BN_CTX_get
    - BN_is_one
    linkageType: ''
    returnType: int
    signature: DH_check_params(const DH *dh, int *ret)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:73,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:76,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:77,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:80,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:85,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:85,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:87,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:91,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:93,1
    - Dst: BN_is_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:96,1
    - Dst: BN_div
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:102,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:104,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:106,1
    - Dst: BN_is_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:109,1
    - Dst: BN_mod_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:110,1
    - Dst: BN_is_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:115,1
    - Dst: BN_mod_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:116,1
    - Dst: BN_is_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:124,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:130,1
    - Dst: BN_is_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:132,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:141,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:142,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 82
    argCount: 2
    argNames:
    - dh
    - ret
    argTypes:
    - DH*
    - int*
    constantsTouched: []
    func_position:
      end: 145
      start: 65
    functionDepth: 5
    functionLinenumber: 65
    functionLinenumberEnd: 145
    functionName: DH_check
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c
    functionUses: 0
    functionsReached:
    - BN_value_one
    - BN_mod_word
    - BN_mod_exp
    - BN_is_word
    - BN_cmp
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_free
    - BN_rshift1
    - BN_CTX_new
    - BN_CTX_get
    - BN_is_one
    - BN_is_prime_ex
    - BN_div
    linkageType: ''
    returnType: int
    signature: DH_check(const DH *dh, int *ret)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:154,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:157,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:158,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:159,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:161,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:163,1
    - Dst: BN_sub_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:163,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:165,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:170,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:172,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:179,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c:180,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 3
    argNames:
    - dh
    - pub_key
    - ret
    argTypes:
    - DH*
    - BIGNUM*
    - int*
    constantsTouched: []
    func_position:
      end: 183
      start: 147
    functionDepth: 4
    functionLinenumber: 147
    functionLinenumberEnd: 183
    functionName: DH_check_pub_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c
    functionUses: 1
    functionsReached:
    - BN_sub_word
    - BN_mod_exp
    - BN_cmp
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_free
    - BN_set_word
    - BN_copy
    - BN_CTX_new
    - BN_CTX_get
    - BN_is_one
    linkageType: ''
    returnType: int
    signature: DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *ret)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: pkey_ec_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: pkey_ec_init(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pkey_ec_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:58,1
    - Dst: EC_GROUP_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:63,1
    - Dst: EC_KEY_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:70,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:78,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 85
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 85
    functionName: pkey_ec_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - pkey_ec_init
    - EC_GROUP_dup
    - EC_KEY_dup
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: pkey_ec_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:91,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:92,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:93,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: pkey_ec_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_free
    - EC_KEY_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: pkey_ec_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:107,1
    - Dst: ECDSA_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:109,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:110,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:115,1
    - Dst: ECDSA_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 125
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 125
    functionName: pkey_ec_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - ECerr
    - EVP_MD_type
    - ECDSA_size
    - ECDSA_sign
    linkageType: ''
    returnType: int
    signature: "pkey_ec_sign(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,\n
      \                       const unsigned char *tbs, size_t tbslen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:136,1
    - Dst: ECDSA_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 143
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 143
    functionName: pkey_ec_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_type
    - ECDSA_verify
    linkageType: ''
    returnType: int
    signature: "pkey_ec_verify(EVP_PKEY_CTX *ctx,\n                          const
      unsigned char *sig, size_t siglen,\n                          const unsigned
      char *tbs, size_t tbslen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:155,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:163,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:164,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:167,1
    - Dst: ECDH_compute_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    constantsTouched: []
    func_position:
      end: 181
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 181
    functionName: pkey_ec_derive
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - ECDH_compute_key
    - EC_GROUP_get_degree
    - EC_KEY_get0_public_key
    - ECerr
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: "pkey_ec_derive(EVP_PKEY_CTX *ctx, unsigned char *key,\n                          size_t
      *keylen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pkey_ec_derive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:191,1
    - Dst: pkey_ec_derive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:198,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:200,1
    - Dst: pkey_ec_derive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:203,1
    - Dst: ECDH_KDF_X9_62
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:206,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:212,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    constantsTouched: []
    func_position:
      end: 214
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 214
    functionName: pkey_ec_kdf_derive
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    - OPENSSL_malloc
    - ECDH_KDF_X9_62
    - pkey_ec_derive
    linkageType: ''
    returnType: int
    signature: "pkey_ec_kdf_derive(EVP_PKEY_CTX *ctx,\n                              unsigned
      char *key, size_t *keylen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:223,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:225,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:228,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:234,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:237,1
    - Dst: EC_KEY_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:247,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:258,1
    - Dst: EC_KEY_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:261,1
    - Dst: EC_KEY_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:266,1
    - Dst: EC_KEY_clear_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:268,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:270,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:303,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:316,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:317,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:318,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:319,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:320,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:321,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:322,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 95
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 343
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 343
    functionName: pkey_ec_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_set_asn1_flag
    - EC_KEY_get_flags
    - EC_GROUP_new_by_curve_name
    - EC_GROUP_free
    - EC_KEY_free
    - EVP_MD_type
    - BN_is_one
    - ECerr
    - OPENSSL_free
    - EC_KEY_clear_flags
    - EC_KEY_dup
    - EC_KEY_set_flags
    linkageType: ''
    returnType: int
    signature: pkey_ec_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:348,1
    - Dst: EC_curve_nist2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:350,1
    - Dst: OBJ_sn2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:352,1
    - Dst: OBJ_ln2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:354,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:356,1
    - Dst: EVP_PKEY_CTX_set_ec_paramgen_curve_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:359,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:360,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:362,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:364,1
    - Dst: EVP_PKEY_CTX_set_ec_param_enc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:368,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:369,1
    - Dst: EVP_get_digestbyname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:371,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:372,1
    - Dst: EVP_PKEY_CTX_set_ecdh_kdf_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:375,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:376,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:378,1
    - Dst: EVP_PKEY_CTX_set_ecdh_cofactor_mode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:379,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 383
      start: 345
    functionDepth: 3
    functionLinenumber: 345
    functionLinenumberEnd: 383
    functionName: pkey_ec_ctrl_str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_ecdh_kdf_md
    - OBJ_sn2nid
    - EVP_PKEY_CTX_set_ecdh_cofactor_mode
    - strcmp
    - EVP_PKEY_CTX_set_ec_param_enc
    - atoi
    - EC_curve_nist2nid
    - EVP_get_digestbyname
    - ECerr
    - OBJ_ln2nid
    - EVP_PKEY_CTX_set_ec_paramgen_curve_nid
    linkageType: ''
    returnType: int
    signature: "pkey_ec_ctrl_str(EVP_PKEY_CTX *ctx,\n                            const
      char *type, const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:391,1
    - Dst: EC_KEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:394,1
    - Dst: EC_KEY_set_group
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:397,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:399,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 403
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 403
    functionName: pkey_ec_paramgen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign_EC_KEY
    - EC_KEY_free
    - EC_KEY_new
    - ECerr
    - EC_KEY_set_group
    linkageType: ''
    returnType: int
    signature: pkey_ec_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:410,1
    - Dst: EC_KEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:413,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:416,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:419,1
    - Dst: EC_KEY_set_group
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:422,1
    - Dst: EC_KEY_generate_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c:425,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 426
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 426
    functionName: pkey_ec_keygen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_generate_key
    - EVP_PKEY_assign_EC_KEY
    - EVP_PKEY_copy_parameters
    - EC_KEY_new
    - ECerr
    - EC_KEY_set_group
    linkageType: ''
    returnType: int
    signature: pkey_ec_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_METHOD_get_field_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:20,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:20,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 35
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 35
    functionName: EC_GROUP_get_basis_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - EC_METHOD_get_field_type
    - EC_GROUP_method_of
    linkageType: ''
    returnType: int
    signature: EC_GROUP_get_basis_type(const EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_METHOD_get_field_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:43,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:43,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:47,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - group
    - k
    argTypes:
    - EC_GROUP*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 56
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 56
    functionName: EC_GROUP_get_trinomial_basis
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - EC_METHOD_get_field_type
    - EC_GROUP_method_of
    - ECerr
    linkageType: ''
    returnType: int
    signature: EC_GROUP_get_trinomial_basis(const EC_GROUP *group, unsigned int *k)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_METHOD_get_field_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:64,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:64,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:69,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 4
    argNames:
    - group
    - k1
    - k2
    - k3
    argTypes:
    - EC_GROUP*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 82
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 82
    functionName: EC_GROUP_get_pentanomial_basis
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - EC_METHOD_get_field_type
    - EC_GROUP_method_of
    - ECerr
    linkageType: ''
    returnType: int
    signature: "EC_GROUP_get_pentanomial_basis(const EC_GROUP *group, unsigned int
      *k1,\n                                   unsigned int *k2, unsigned int *k3)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:249,1
    - Dst: ASN1_TYPE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:250,1
    - Dst: EC_METHOD_get_field_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:252,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:252,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:254,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:255,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:260,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:261,1
    - Dst: EC_GROUP_get_curve_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:265,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:266,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:270,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:272,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:278,1
    - Dst: X9_62_CHARACTERISTIC_TWO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:286,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:290,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:294,1
    - Dst: EC_GROUP_get_basis_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:296,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:299,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:303,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:304,1
    - Dst: EC_GROUP_get_trinomial_basis
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:311,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:314,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:316,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:319,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:320,1
    - Dst: EC_GROUP_get_pentanomial_basis
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:326,1
    - Dst: X9_62_PENTANOMIAL_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:329,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:331,1
    - Dst: ASN1_NULL_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:342,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:344,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:351,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 95
    argCount: 2
    argNames:
    - group
    - field
    argTypes:
    - EC_GROUP*
    - X9_62_FIELDID*
    constantsTouched: []
    func_position:
      end: 353
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 353
    functionName: ec_asn1_group2fieldid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - BN_new
    - EC_GROUP_method_of
    - EC_GROUP_get_curve_GFp
    - X9_62_CHARACTERISTIC_TWO_new
    - X9_62_PENTANOMIAL_new
    - EC_GROUP_get_degree
    - EC_GROUP_get_basis_type
    - ASN1_INTEGER_new
    - OBJ_nid2obj
    - ASN1_INTEGER_set
    - BN_to_ASN1_INTEGER
    - EC_METHOD_get_field_type
    - EC_GROUP_get_pentanomial_basis
    - ASN1_OBJECT_free
    - ASN1_NULL_new
    - ASN1_TYPE_free
    - EC_GROUP_get_trinomial_basis
    - ECerr
    linkageType: ''
    returnType: int
    signature: ec_asn1_group2fieldid(const EC_GROUP *group, X9_62_FIELDID *field)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:374,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:374,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:375,1
    - Dst: EC_METHOD_get_field_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:379,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:379,1
    - Dst: EC_GROUP_get_curve_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:383,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:384,1
    - Dst: if
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:391,1
    - Dst: EC_GROUP_get_curve_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:391,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:392,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:397,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:398,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:405,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:406,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:409,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:410,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:421,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:422,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:425,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:426,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:433,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:434,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:435,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:442,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:443,1
    - Dst: ASN1_BIT_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:448,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:450,1
    - Dst: ASN1_BIT_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:454,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:461,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:462,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:463,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:464,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 82
    argCount: 2
    argNames:
    - group
    - curve
    argTypes:
    - EC_GROUP*
    - X9_62_CURVE*
    constantsTouched: []
    func_position:
      end: 466
      start: 362
    functionDepth: 3
    functionLinenumber: 362
    functionLinenumberEnd: 466
    functionName: ec_asn1_group2curve
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - BN_new
    - EC_GROUP_get_curve_GFp
    - EC_GROUP_method_of
    - if
    - ASN1_BIT_STRING_set
    - BN_free
    - EC_GROUP_get_curve_GF2m
    - ASN1_BIT_STRING_free
    - ASN1_BIT_STRING_new
    - EC_METHOD_get_field_type
    - ASN1_OCTET_STRING_set
    - ECerr
    - OPENSSL_free
    - BN_bn2bin
    - OPENSSL_malloc
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: ec_asn1_group2curve(const EC_GROUP *group, X9_62_CURVE *curve)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECPARAMETERS_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:479,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:480,1
    - Dst: ec_asn1_group2fieldid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:490,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:491,1
    - Dst: ec_asn1_group2curve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:496,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:497,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:502,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:503,1
    - Dst: EC_GROUP_get_point_conversion_form
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:507,1
    - Dst: EC_POINT_point2buf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:509,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:511,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:514,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:515,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:516,1
    - Dst: ASN1_STRING_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:519,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:522,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:524,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:527,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:529,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:534,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:536,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:538,1
    - Dst: ECPARAMETERS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:547,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 66
    argCount: 2
    argNames:
    - group
    - params
    argTypes:
    - EC_GROUP*
    - ECPARAMETERS*
    constantsTouched: []
    func_position:
      end: 549
      start: 468
    functionDepth: 4
    functionLinenumber: 468
    functionLinenumberEnd: 549
    functionName: EC_GROUP_get_ecparameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_set0
    - ASN1_OCTET_STRING_new
    - ec_asn1_group2curve
    - EC_GROUP_get0_order
    - EC_GROUP_get0_generator
    - EC_GROUP_get0_cofactor
    - BN_to_ASN1_INTEGER
    - ec_asn1_group2fieldid
    - ECPARAMETERS_new
    - EC_POINT_point2buf
    - ECerr
    - OPENSSL_free
    - ECPARAMETERS_free
    - EC_GROUP_get_point_conversion_form
    linkageType: ''
    returnType: ECPARAMETERS
    signature: "*EC_GROUP_get_ecparameters(const EC_GROUP *group,\n                                               ECPARAMETERS
      *params)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECPKPARAMETERS_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:558,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:559,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:564,1
    - Dst: ECPARAMETERS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:566,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:569,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:573,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:576,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:585,1
    - Dst: ECPKPARAMETERS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:590,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - group
    - params
    argTypes:
    - EC_GROUP*
    - ECPKPARAMETERS*
    constantsTouched: []
    func_position:
      end: 594
      start: 551
    functionDepth: 5
    functionLinenumber: 551
    functionLinenumberEnd: 594
    functionName: EC_GROUP_get_ecpkparameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - ECPKPARAMETERS_free
    - ECPKPARAMETERS_new
    - EC_GROUP_get_asn1_flag
    - EC_GROUP_get_ecparameters
    - EC_GROUP_get_curve_name
    - OBJ_nid2obj
    - ASN1_OBJECT_free
    - ECerr
    - ECPARAMETERS_free
    linkageType: ''
    returnType: ECPKPARAMETERS
    signature: "*EC_GROUP_get_ecpkparameters(const EC_GROUP *group,\n                                            ECPKPARAMETERS
      *params)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:606,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:614,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:617,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:619,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:622,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:624,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:629,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:633,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:644,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:648,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:649,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:654,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:660,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:664,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:667,1
    - Dst: BN_set_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:673,1
    - Dst: BN_set_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:675,1
    - Dst: BN_set_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:677,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:684,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:691,1
    - Dst: BN_set_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:697,1
    - Dst: BN_set_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:699,1
    - Dst: BN_set_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:701,1
    - Dst: BN_set_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:703,1
    - Dst: BN_set_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:705,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:708,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:712,1
    - Dst: EC_GROUP_new_curve_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:717,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:724,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:727,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:729,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:733,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:733,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:734,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:738,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:740,1
    - Dst: EC_GROUP_new_curve_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:745,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:747,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 131
    argCount: 1
    argNames:
    - params
    argTypes:
    - ECPARAMETERS*
    constantsTouched: []
    func_position:
      end: 749
      start: 596
    functionDepth: 4
    functionLinenumber: 596
    functionLinenumberEnd: 749
    functionName: EC_GROUP_new_from_ecparameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_set_bit
    - BN_bin2bn
    - ASN1_INTEGER_to_BN
    - OBJ_obj2nid
    - BN_is_zero
    - BN_is_negative
    - BN_num_bits
    - ASN1_INTEGER_get
    - EC_GROUP_new_curve_GF2m
    - ECerr
    - EC_GROUP_new_curve_GFp
    linkageType: ''
    returnType: EC_GROUP
    signature: '*EC_GROUP_new_from_ecparameters(const ECPARAMETERS *params)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:836,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:841,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:842,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:843,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:847,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:850,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:852,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:855,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:859,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - params
    argTypes:
    - ECPKPARAMETERS*
    constantsTouched: []
    func_position:
      end: 864
      start: 830
    functionDepth: 5
    functionLinenumber: 830
    functionLinenumberEnd: 864
    functionName: EC_GROUP_new_from_ecpkparameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_set_asn1_flag
    - EC_GROUP_new_by_curve_name
    - OBJ_obj2nid
    - EC_GROUP_new_from_ecparameters
    - ECerr
    linkageType: ''
    returnType: EC_GROUP
    signature: '*EC_GROUP_new_from_ecpkparameters(const ECPKPARAMETERS *params)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_ECPKPARAMETERS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:874,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:875,1
    - Dst: ECPKPARAMETERS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:876,1
    - Dst: EC_GROUP_new_from_ecpkparameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:880,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:881,1
    - Dst: ECPKPARAMETERS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:882,1
    - Dst: EC_GROUP_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:887,1
    - Dst: ECPKPARAMETERS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:891,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - a
    - in
    - len
    argTypes:
    - EC_GROUP**
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 894
      start: 868
    functionDepth: 6
    functionLinenumber: 868
    functionLinenumberEnd: 894
    functionName: d2i_ECPKParameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - ECPKPARAMETERS_free
    - EC_GROUP_new_from_ecpkparameters
    - d2i_ECPKPARAMETERS
    - EC_GROUP_clear_free
    - ECerr
    linkageType: ''
    returnType: EC_GROUP
    signature: '*d2i_ECPKParameters(EC_GROUP **a, const unsigned char **in, long len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_get_ecpkparameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:899,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:901,1
    - Dst: i2d_ECPKPARAMETERS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:904,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:905,1
    - Dst: ECPKPARAMETERS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:906,1
    - Dst: ECPKPARAMETERS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:909,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - a
    - out
    argTypes:
    - EC_GROUP*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 911
      start: 896
    functionDepth: 6
    functionLinenumber: 896
    functionLinenumberEnd: 911
    functionName: i2d_ECPKParameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - ECPKPARAMETERS_free
    - ECerr
    - i2d_ECPKPARAMETERS
    - EC_GROUP_get_ecpkparameters
    linkageType: ''
    returnType: int
    signature: i2d_ECPKParameters(const EC_GROUP *a, unsigned char **out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_EC_PRIVATEKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:921,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:922,1
    - Dst: EC_KEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:927,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:928,1
    - Dst: EC_GROUP_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:935,1
    - Dst: EC_GROUP_new_from_ecpkparameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:936,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:940,1
    - Dst: EC_KEY_oct2priv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:948,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:948,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:949,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:952,1
    - Dst: EC_POINT_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:956,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:957,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:959,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:967,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:968,1
    - Dst: EC_KEY_oct2key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:969,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:970,1
    - Dst: EC_KEY*::group::meth::keygenpub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:975,1
    - Dst: EC_PRIVATEKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:983,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:989,1
    - Dst: EC_PRIVATEKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:990,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 64
    argCount: 3
    argNames:
    - a
    - in
    - len
    argTypes:
    - EC_KEY**
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 992
      start: 915
    functionDepth: 6
    functionLinenumber: 915
    functionLinenumberEnd: 992
    functionName: d2i_ECPrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_new_from_ecpkparameters
    - EC_GROUP_clear_free
    - EC_KEY*::group::meth::keygenpub
    - EC_KEY_free
    - EC_KEY_oct2priv
    - EC_KEY_oct2key
    - EC_PRIVATEKEY_free
    - ASN1_STRING_length
    - EC_POINT_new
    - EC_KEY_new
    - d2i_EC_PRIVATEKEY
    - ECerr
    - EC_POINT_clear_free
    - ASN1_STRING_get0_data
    linkageType: ''
    returnType: EC_KEY
    signature: '*d2i_ECPrivateKey(EC_KEY **a, const unsigned char **in, long len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1004,1
    - Dst: EC_PRIVATEKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1008,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1009,1
    - Dst: EC_KEY_priv2buf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1015,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1018,1
    - Dst: ASN1_STRING_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1022,1
    - Dst: EC_GROUP_get_ecpkparameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1027,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1029,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1035,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1037,1
    - Dst: EC_KEY_key2buf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1041,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1044,1
    - Dst: ASN1_STRING_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1050,1
    - Dst: i2d_EC_PRIVATEKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1054,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1055,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1060,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1061,1
    - Dst: EC_PRIVATEKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1062,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 2
    argNames:
    - a
    - out
    argTypes:
    - EC_KEY*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 1064
      start: 994
    functionDepth: 6
    functionLinenumber: 994
    functionLinenumberEnd: 1064
    functionName: i2d_ECPrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_set0
    - EC_PRIVATEKEY_new
    - EC_GROUP_get_ecpkparameters
    - EC_KEY_priv2buf
    - ASN1_BIT_STRING_new
    - OPENSSL_clear_free
    - EC_PRIVATEKEY_free
    - EC_KEY_key2buf
    - i2d_EC_PRIVATEKEY
    - ECerr
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: i2d_ECPrivateKey(EC_KEY *a, unsigned char **out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1069,1
    - Dst: i2d_ECPKParameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1072,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - out
    argTypes:
    - EC_KEY*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 1073
      start: 1066
    functionDepth: 7
    functionLinenumber: 1066
    functionLinenumberEnd: 1073
    functionName: i2d_ECParameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - ECerr
    - i2d_ECPKParameters
    linkageType: ''
    returnType: int
    signature: i2d_ECParameters(EC_KEY *a, unsigned char **out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1080,1
    - Dst: EC_KEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1085,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1086,1
    - Dst: d2i_ECPKParameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1092,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1093,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1095,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - a
    - in
    - len
    argTypes:
    - EC_KEY**
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 1103
      start: 1075
    functionDepth: 7
    functionLinenumber: 1075
    functionLinenumberEnd: 1103
    functionName: d2i_ECParameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - d2i_ECPKParameters
    - ECerr
    - EC_KEY_free
    - EC_KEY_new
    linkageType: ''
    returnType: EC_KEY
    signature: '*d2i_ECParameters(EC_KEY **a, const unsigned char **in, long len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1113,1
    - Dst: EC_KEY_oct2key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1117,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - a
    - in
    - len
    argTypes:
    - EC_KEY**
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 1123
      start: 1105
    functionDepth: 1
    functionLinenumber: 1105
    functionLinenumberEnd: 1123
    functionName: o2i_ECPublicKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - ECerr
    - EC_KEY_oct2key
    linkageType: ''
    returnType: EC_KEY
    signature: '*o2i_ECPublicKey(EC_KEY **a, const unsigned char **in, long len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1131,1
    - Dst: EC_POINT_point2oct
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1135,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1143,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1144,1
    - Dst: EC_POINT_point2oct
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1149,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1151,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1153,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - a
    - out
    argTypes:
    - EC_KEY*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 1161
      start: 1125
    functionDepth: 1
    functionLinenumber: 1125
    functionLinenumberEnd: 1161
    functionName: i2o_ECPublicKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ECerr
    - OPENSSL_free
    - EC_POINT_point2oct
    linkageType: ''
    returnType: int
    signature: i2o_ECPublicKey(const EC_KEY *a, unsigned char **out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1174,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1178
    functionName: ECDSA_SIG_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c
    functionUses: 2
    functionsReached:
    - ECerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: ECDSA_SIG
    signature: '*ECDSA_SIG_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1184,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1185,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sig
    argTypes:
    - ECDSA_SIG*
    constantsTouched: []
    func_position:
      end: 1187
      start: 1180
    functionDepth: 3
    functionLinenumber: 1180
    functionLinenumberEnd: 1187
    functionName: ECDSA_SIG_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c
    functionUses: 6
    functionsReached:
    - OPENSSL_free
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: ECDSA_SIG_free(ECDSA_SIG *sig)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - sig
    - pr
    - ps
    argTypes:
    - ECDSA_SIG*
    - BIGNUM**
    - BIGNUM**
    constantsTouched: []
    func_position:
      end: 1195
      start: 1189
    functionDepth: 0
    functionLinenumber: 1189
    functionLinenumberEnd: 1195
    functionName: ECDSA_SIG_get0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM
      **ps)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1201,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - sig
    - r
    - s
    argTypes:
    - ECDSA_SIG*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 1206
      start: 1197
    functionDepth: 3
    functionLinenumber: 1197
    functionLinenumberEnd: 1206
    functionName: ECDSA_SIG_set0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c
    functionUses: 2
    functionsReached:
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1217,1
    - Dst: EC_GROUP_order_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1221,1
    - Dst: i2d_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1230,1
    - Dst: ASN1_object_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c:1232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - r
    argTypes:
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 1234
      start: 1208
    functionDepth: 1
    functionLinenumber: 1208
    functionLinenumberEnd: 1234
    functionName: ECDSA_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c
    functionUses: 1
    functionsReached:
    - EC_GROUP_order_bits
    - EC_KEY_get0_group
    - i2d_ASN1_INTEGER
    - ASN1_object_size
    linkageType: ''
    returnType: int
    signature: ECDSA_size(const EC_KEY *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_GFp_mont_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_cvt.c:55,1
    - Dst: BN_nist_mod_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_cvt.c:57,1
    - Dst: EC_GFp_nist_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_cvt.c:58,1
    - Dst: EC_GFp_mont_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_cvt.c:60,1
    - Dst: EC_GROUP_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_cvt.c:63,1
    - Dst: EC_GROUP_set_curve_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_cvt.c:67,1
    - Dst: EC_GROUP_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_cvt.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - p
    - a
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 73
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 73
    functionName: EC_GROUP_new_curve_GFp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_cvt.c
    functionUses: 1
    functionsReached:
    - EC_GROUP_set_curve_GFp
    - EC_GROUP_new
    - EC_GROUP_clear_free
    - EC_GFp_mont_method
    - EC_GFp_nist_method
    - BN_nist_mod_func
    linkageType: ''
    returnType: EC_GROUP
    signature: "*EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a,\n                                 const
      BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_GF2m_simple_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_cvt.c:82,1
    - Dst: EC_GROUP_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_cvt.c:84,1
    - Dst: EC_GROUP_set_curve_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_cvt.c:88,1
    - Dst: EC_GROUP_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_cvt.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - p
    - a
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 94
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 94
    functionName: EC_GROUP_new_curve_GF2m
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_cvt.c
    functionUses: 1
    functionsReached:
    - EC_GROUP_new
    - EC_GF2m_simple_method
    - EC_GROUP_clear_free
    - EC_GROUP_set_curve_GF2m
    linkageType: ''
    returnType: EC_GROUP
    signature: "*EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a,\n                                  const
      BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_new_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: EC_KEY_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 10
    functionsReached:
    - EC_KEY_new_method
    linkageType: ''
    returnType: EC_KEY
    signature: '*EC_KEY_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:29,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:32,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:34,1
    - Dst: EC_KEY*::meth::set_group
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:38,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 43
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 43
    functionName: EC_KEY_new_by_curve_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_KEY_free
    - EC_KEY*::meth::set_group
    - EC_KEY_new
    - EC_GROUP_new_by_curve_name
    linkageType: ''
    returnType: EC_KEY
    signature: '*EC_KEY_new_by_curve_name(int nid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:52,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:53,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:56,1
    - Dst: EC_KEY*::meth::finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:59,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:62,1
    - Dst: EC_KEY*::group::meth::keyfinish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:66,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:68,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:69,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:70,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:71,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:72,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:74,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - r
    argTypes:
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 75
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 75
    functionName: EC_KEY_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 17
    functionsReached:
    - EC_POINT_free
    - EC_KEY*::meth::finish
    - BN_clear_free
    - CRYPTO_THREAD_lock_free
    - EC_GROUP_free
    - CRYPTO_free_ex_data
    - ENGINE_finish
    - CRYPTO_atomic_add
    - OPENSSL_clear_free
    - REF_ASSERT_ISNT
    - EC_KEY*::group::meth::keyfinish
    - REF_PRINT_COUNT
    linkageType: ''
    returnType: void
    signature: EC_KEY_free(EC_KEY *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:80,1
    - Dst: EC_KEY*::meth::finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:85,1
    - Dst: EC_KEY*::group::meth::keyfinish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:87,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:89,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:96,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:98,1
    - Dst: EC_GROUP_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:99,1
    - Dst: EC_GROUP_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:102,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:107,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:108,1
    - Dst: EC_POINT_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:111,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:117,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:121,1
    - Dst: EC_KEY*::group::meth::keycopy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:124,1
    - Dst: CRYPTO_dup_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:135,1
    - Dst: ENGINE_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:141,1
    - Dst: EC_KEY*::meth::copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:148,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 56
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_KEY*
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 152
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 152
    functionName: EC_KEY_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - BN_new
    - EC_GROUP_method_of
    - EC_POINT_free
    - EC_KEY*::meth::finish
    - EC_KEY*::meth::copy
    - EC_GROUP_free
    - EC_KEY*::group::meth::keycopy
    - ENGINE_init
    - EC_GROUP_new
    - EC_POINT_new
    - EC_GROUP_copy
    - BN_copy
    - ENGINE_finish
    - EC_POINT_copy
    - CRYPTO_dup_ex_data
    - ECerr
    - EC_KEY*::group::meth::keyfinish
    linkageType: ''
    returnType: EC_KEY
    signature: '*EC_KEY_copy(EC_KEY *dest, const EC_KEY *src)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_new_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:156,1
    - Dst: EC_KEY_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:161,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ec_key
    argTypes:
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 166
      start: 154
    functionDepth: 4
    functionLinenumber: 154
    functionLinenumberEnd: 166
    functionName: EC_KEY_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 2
    functionsReached:
    - EC_KEY_copy
    - EC_KEY_new_method
    - EC_KEY_free
    linkageType: ''
    returnType: EC_KEY
    signature: '*EC_KEY_dup(const EC_KEY *ec_key)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:172,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:175,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 178
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 178
    functionName: EC_KEY_up_ref
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 2
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_atomic_add
    linkageType: ''
    returnType: int
    signature: EC_KEY_up_ref(EC_KEY *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:183,1
    - Dst: EC_KEY*::meth::keygen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:187,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 190
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 190
    functionName: EC_KEY_generate_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 3
    functionsReached:
    - EC_KEY*::meth::keygen
    - ECerr
    linkageType: ''
    returnType: int
    signature: EC_KEY_generate_key(EC_KEY *eckey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:194,1
    - Dst: EC_KEY*::group::meth::keygen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: ossl_ec_key_gen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_KEY*::group::meth::keygen
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: ossl_ec_key_gen(EC_KEY *eckey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:206,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:210,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:216,1
    - Dst: BN_rand_range
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:221,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:223,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:226,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:232,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:242,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:244,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:245,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 247
      start: 198
    functionDepth: 5
    functionLinenumber: 198
    functionLinenumberEnd: 247
    functionName: ec_key_simple_generate_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - BN_new
    - EC_POINT_free
    - BN_free
    - BN_is_zero
    - EC_GROUP_get0_order
    - BN_rand_range
    - EC_POINT_new
    - BN_CTX_free
    - BN_CTX_new
    - EC_POINT_mul
    linkageType: ''
    returnType: int
    signature: ec_key_simple_generate_key(EC_KEY *eckey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: ec_key_simple_generate_public_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_POINT_mul
    linkageType: ''
    returnType: int
    signature: ec_key_simple_generate_public_key(EC_KEY *eckey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:258,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:263,1
    - Dst: EC_KEY*::group::meth::keycheck
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 268
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 268
    functionName: EC_KEY_check_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 2
    functionsReached:
    - ECerr
    - EC_KEY*::group::meth::keycheck
    linkageType: ''
    returnType: int
    signature: EC_KEY_check_key(const EC_KEY *eckey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:278,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:282,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:283,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:287,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:289,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:293,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:294,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:299,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:300,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:303,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:304,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:307,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:308,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:316,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:317,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:320,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:322,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:325,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:326,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:332,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:333,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 60
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 335
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 335
    functionName: ec_key_simple_check_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_POINT_free
    - BN_is_zero
    - EC_POINT_is_on_curve
    - EC_POINT_is_at_infinity
    - BN_cmp
    - EC_POINT_new
    - EC_POINT_cmp
    - BN_CTX_free
    - BN_CTX_new
    - ECerr
    - EC_POINT_mul
    linkageType: ''
    returnType: int
    signature: ec_key_simple_check_key(const EC_KEY *eckey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:349,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:353,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:357,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:358,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:363,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:364,1
    - Dst: EC_METHOD_get_field_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:369,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:369,1
    - Dst: EC_POINT_set_affine_coordinates_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:375,1
    - Dst: EC_POINT_get_affine_coordinates_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:378,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:384,1
    - Dst: EC_POINT_get_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:387,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:395,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:395,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:396,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:397,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:398,1
    - Dst: EC_KEY_set_public_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:403,1
    - Dst: EC_KEY_check_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:406,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:412,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:413,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:414,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 54
    argCount: 3
    argNames:
    - key
    - x
    - y
    argTypes:
    - EC_KEY*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 417
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 417
    functionName: EC_KEY_set_public_key_affine_coordinates
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_POINT_set_affine_coordinates_GFp
    - EC_GROUP_method_of
    - EC_POINT_free
    - EC_POINT_get_affine_coordinates_GF2m
    - EC_POINT_get_affine_coordinates_GFp
    - EC_KEY_set_public_key
    - BN_cmp
    - BN_CTX_end
    - EC_METHOD_get_field_type
    - BN_CTX_start
    - EC_POINT_new
    - EC_POINT_set_affine_coordinates_GF2m
    - EC_KEY_check_key
    - BN_CTX_free
    - BN_CTX_new
    - BN_CTX_get
    - ECerr
    linkageType: ''
    returnType: int
    signature: "EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x,\n
      \                                            BIGNUM *y)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: EC_KEY_get0_group
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: EC_GROUP
    signature: '*EC_KEY_get0_group(const EC_KEY *key)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::meth::set_group
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:426,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:428,1
    - Dst: EC_GROUP_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - key
    - group
    argTypes:
    - EC_KEY*
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 431
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 431
    functionName: EC_KEY_set_group
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 8
    functionsReached:
    - EC_GROUP_free
    - EC_GROUP_dup
    - EC_KEY*::meth::set_group
    linkageType: ''
    returnType: int
    signature: EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 436
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 436
    functionName: EC_KEY_get0_private_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: '*EC_KEY_get0_private_key(const EC_KEY *key)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::group::meth::set_private
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:443,1
    - Dst: EC_KEY*::meth::set_private
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:446,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:448,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:449,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - key
    - priv_key
    argTypes:
    - EC_KEY*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 451
      start: 438
    functionDepth: 4
    functionLinenumber: 438
    functionLinenumberEnd: 451
    functionName: EC_KEY_set_private_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 2
    functionsReached:
    - EC_KEY*::group::meth::set_private
    - EC_KEY*::meth::set_private
    - BN_dup
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *priv_key)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 456
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 456
    functionName: EC_KEY_get0_public_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: EC_POINT
    signature: '*EC_KEY_get0_public_key(const EC_KEY *key)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::meth::set_public
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:461,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:463,1
    - Dst: EC_POINT_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - key
    - pub_key
    argTypes:
    - EC_KEY*
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 466
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 466
    functionName: EC_KEY_set_public_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 4
    functionsReached:
    - EC_POINT_free
    - EC_POINT_dup
    - EC_KEY*::meth::set_public
    linkageType: ''
    returnType: int
    signature: EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub_key)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 471
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 471
    functionName: EC_KEY_get_enc_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: EC_KEY_get_enc_flags(const EC_KEY *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - flags
    argTypes:
    - EC_KEY*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 476
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 476
    functionName: EC_KEY_set_enc_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EC_KEY_set_enc_flags(EC_KEY *key, unsigned int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 481
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 481
    functionName: EC_KEY_get_conv_form
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: point_conversion_form_t
    signature: EC_KEY_get_conv_form(const EC_KEY *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_set_point_conversion_form
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - cform
    argTypes:
    - EC_KEY*
    - point_conversion_form_t
    constantsTouched: []
    func_position:
      end: 488
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 488
    functionName: EC_KEY_set_conv_form
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_set_point_conversion_form
    linkageType: ''
    returnType: void
    signature: EC_KEY_set_conv_form(EC_KEY *key, point_conversion_form_t cform)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - key
    - flag
    argTypes:
    - EC_KEY*
    - int
    constantsTouched: []
    func_position:
      end: 494
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 494
    functionName: EC_KEY_set_asn1_flag
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_set_asn1_flag
    linkageType: ''
    returnType: void
    signature: EC_KEY_set_asn1_flag(EC_KEY *key, int flag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_precompute_mult
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - ctx
    argTypes:
    - EC_KEY*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 501
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 501
    functionName: EC_KEY_precompute_mult
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_precompute_mult
    linkageType: ''
    returnType: int
    signature: EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 506
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 506
    functionName: EC_KEY_get_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EC_KEY_get_flags(const EC_KEY *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - flags
    argTypes:
    - EC_KEY*
    - int
    constantsTouched: []
    func_position:
      end: 511
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 511
    functionName: EC_KEY_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EC_KEY_set_flags(EC_KEY *key, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - flags
    argTypes:
    - EC_KEY*
    - int
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: EC_KEY_clear_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EC_KEY_clear_flags(EC_KEY *key, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_point2buf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:523,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - key
    - form
    - pbuf
    - ctx
    argTypes:
    - EC_KEY*
    - point_conversion_form_t
    - unsigned char**
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 524
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 524
    functionName: EC_KEY_key2buf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached:
    - EC_POINT_point2buf
    linkageType: ''
    returnType: size_t
    signature: "EC_KEY_key2buf(const EC_KEY *key, point_conversion_form_t form,\n
      \                       unsigned char **pbuf, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:532,1
    - Dst: EC_POINT_oct2point
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:535,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 4
    argNames:
    - key
    - buf
    - len
    - ctx
    argTypes:
    - EC_KEY*
    - unsigned char*
    - size_t
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 547
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 547
    functionName: EC_KEY_oct2key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 2
    functionsReached:
    - EC_POINT_new
    - EC_POINT_oct2point
    linkageType: ''
    returnType: int
    signature: "EC_KEY_oct2key(EC_KEY *key, const unsigned char *buf, size_t len,\n
      \                  BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:555,1
    - Dst: EC_KEY*::group::meth::priv2oct
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:559,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - eckey
    - buf
    - len
    argTypes:
    - EC_KEY*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 560
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 560
    functionName: EC_KEY_priv2oct
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - ECerr
    - EC_KEY*::group::meth::priv2oct
    linkageType: ''
    returnType: size_t
    signature: "EC_KEY_priv2oct(const EC_KEY *eckey,\n                       unsigned
      char *buf, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_order_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:567,1
    - Dst: BN_bn2binpad
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:577,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:578,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - eckey
    - buf
    - len
    argTypes:
    - EC_KEY*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 583
      start: 562
    functionDepth: 2
    functionLinenumber: 562
    functionLinenumberEnd: 583
    functionName: ec_key_simple_priv2oct
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - ECerr
    - EC_GROUP_order_bits
    - BN_bn2binpad
    linkageType: ''
    returnType: size_t
    signature: "ec_key_simple_priv2oct(const EC_KEY *eckey,\n                              unsigned
      char *buf, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:590,1
    - Dst: EC_KEY*::group::meth::oct2priv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - eckey
    - buf
    - len
    argTypes:
    - EC_KEY*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 594
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 594
    functionName: EC_KEY_oct2priv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached:
    - ECerr
    - EC_KEY*::group::meth::oct2priv
    linkageType: ''
    returnType: int
    signature: EC_KEY_oct2priv(EC_KEY *eckey, const unsigned char *buf, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_secure_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:599,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:601,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:604,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:606,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - eckey
    - buf
    - len
    argTypes:
    - EC_KEY*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 610
      start: 596
    functionDepth: 4
    functionLinenumber: 596
    functionLinenumberEnd: 610
    functionName: ec_key_simple_oct2priv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - ECerr
    - BN_secure_new
    - BN_bin2bn
    linkageType: ''
    returnType: int
    signature: ec_key_simple_oct2priv(EC_KEY *eckey, const unsigned char *buf, size_t
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_priv2oct
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:616,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:619,1
    - Dst: EC_KEY_priv2oct
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:622,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c:624,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - eckey
    - pbuf
    argTypes:
    - EC_KEY*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 629
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 629
    functionName: EC_KEY_priv2buf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - OPENSSL_malloc
    - EC_KEY_priv2oct
    linkageType: ''
    returnType: size_t
    signature: EC_KEY_priv2buf(const EC_KEY *eckey, unsigned char **pbuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 637
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 637
    functionName: EC_KEY_can_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EC_KEY_can_sign(const EC_KEY *eckey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_seed
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:23,1
    - Dst: ECDSA_do_sign_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:24,1
    - Dst: i2d_ECDSA_SIG
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:29,1
    - Dst: ECDSA_SIG_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 8
    argNames:
    - type
    - dgst
    - dlen
    - sig
    - siglen
    - kinv
    - r
    - eckey
    argTypes:
    - int
    - unsigned char*
    - int
    - unsigned char*
    - unsigned int*
    - BIGNUM*
    - BIGNUM*
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 32
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 32
    functionName: ossl_ecdsa_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c
    functionUses: 0
    functionsReached:
    - i2d_ECDSA_SIG
    - RAND_seed
    - ECDSA_SIG_free
    - ECDSA_do_sign_ex
    linkageType: ''
    returnType: int
    signature: "ossl_ecdsa_sign(int type, const unsigned char *dgst, int dlen,\n                    unsigned
      char *sig, unsigned int *siglen,\n                    const BIGNUM *kinv, const
      BIGNUM *r, EC_KEY *eckey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:45,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:46,1
    - Dst: EC_KEY_can_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:50,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:51,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:56,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:57,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:63,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:64,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:65,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:67,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:70,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:71,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:74,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:76,1
    - Dst: BN_generate_dsa_nonce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:84,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:85,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:87,1
    - Dst: BN_rand_range
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:92,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:93,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:98,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:105,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:107,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:107,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:108,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:112,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:113,1
    - Dst: EC_METHOD_get_field_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:116,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:116,1
    - Dst: EC_POINT_get_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:118,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:120,1
    - Dst: if
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:127,1
    - Dst: EC_POINT_get_affine_coordinates_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:127,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:130,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:135,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:136,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:140,1
    - Dst: EC_GROUP_get_mont_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:143,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:148,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:149,1
    - Dst: BN_mod_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:152,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:153,1
    - Dst: BN_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:156,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:157,1
    - Dst: EC_GROUP_get_mont_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:158,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:159,1
    - Dst: BN_mod_inverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:163,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:164,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:170,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:171,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:178,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:179,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:182,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:183,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:184,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 116
    argCount: 6
    argNames:
    - eckey
    - ctx_in
    - kinvp
    - rp
    - dgst
    - dlen
    argTypes:
    - EC_KEY*
    - BN_CTX*
    - BIGNUM**
    - BIGNUM**
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 186
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 186
    functionName: ecdsa_sign_setup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_method_of
    - EC_GROUP_get_mont_data
    - EC_KEY_get0_private_key
    - if
    - ECerr
    - EC_POINT_free
    - BN_nnmod
    - BN_clear_free
    - BN_is_zero
    - EC_GROUP_get0_order
    - BN_generate_dsa_nonce
    - EC_METHOD_get_field_type
    - BN_CTX_new
    - EC_POINT_get_affine_coordinates_GF2m
    - BN_new
    - EC_POINT_get_affine_coordinates_GFp
    - BN_set_flags
    - BN_mod_exp_mont_consttime
    - EC_KEY_get0_group
    - BN_mod_sub
    - BN_mod_inverse
    - EC_KEY_can_sign
    - BN_add
    - BN_rand_range
    - EC_POINT_new
    - BN_num_bits
    - BN_set_word
    - BN_CTX_free
    - EC_POINT_mul
    linkageType: ''
    returnType: int
    signature: "ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in,\n                            BIGNUM
      **kinvp, BIGNUM **rp,\n                            const unsigned char *dgst,
      int dlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ecdsa_sign_setup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - eckey
    - ctx_in
    - kinvp
    - rp
    argTypes:
    - EC_KEY*
    - BN_CTX*
    - BIGNUM**
    - BIGNUM**
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 6
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: ossl_ecdsa_sign_setup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c
    functionUses: 0
    functionsReached:
    - ecdsa_sign_setup
    linkageType: ''
    returnType: int
    signature: "ossl_ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp,\n
      \                         BIGNUM **rp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:206,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:207,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:210,1
    - Dst: EC_KEY_can_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:214,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:215,1
    - Dst: ECDSA_SIG_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:219,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:221,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:224,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:225,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:227,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:232,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:233,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:233,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:234,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:238,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:240,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:243,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:249,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:250,1
    - Dst: BN_rshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:254,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:255,1
    - Dst: ecdsa_sign_setup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:260,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:261,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:267,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:268,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:273,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:274,1
    - Dst: BN_mod_add_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:277,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:278,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:281,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:282,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:285,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:291,1
    - Dst: ECDSA_SIG_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:303,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:306,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:307,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:308,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:309,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 100
    argCount: 5
    argNames:
    - dgst
    - dgst_len
    - in_kinv
    - in_r
    - eckey
    argTypes:
    - unsigned char*
    - int
    - BIGNUM*
    - BIGNUM*
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 311
      start: 194
    functionDepth: 6
    functionLinenumber: 194
    functionLinenumberEnd: 311
    functionName: ossl_ecdsa_sign_sig
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_rshift
    - BN_bin2bn
    - EC_KEY_get0_private_key
    - ECerr
    - BN_clear_free
    - BN_is_zero
    - EC_GROUP_get0_order
    - ecdsa_sign_setup
    - BN_CTX_new
    - BN_mod_mul
    - ECDSA_SIG_free
    - BN_new
    - BN_copy
    - ECDSA_SIG_new
    - EC_KEY_get0_group
    - BN_mod_add_quick
    - EC_KEY_can_sign
    - BN_CTX_free
    - BN_num_bits
    linkageType: ''
    returnType: ECDSA_SIG
    signature: "*ossl_ecdsa_sign_sig(const unsigned char *dgst, int dgst_len,\n                               const
      BIGNUM *in_kinv, const BIGNUM *in_r,\n                               EC_KEY
      *eckey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_SIG_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:328,1
    - Dst: d2i_ECDSA_SIG
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:331,1
    - Dst: i2d_ECDSA_SIG
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:334,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:335,1
    - Dst: ECDSA_do_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:337,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:339,1
    - Dst: ECDSA_SIG_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:340,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 6
    argNames:
    - type
    - dgst
    - dgst_len
    - sigbuf
    - sig_len
    - eckey
    argTypes:
    - int
    - unsigned char*
    - int
    - unsigned char*
    - int
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 342
      start: 319
    functionDepth: 4
    functionLinenumber: 319
    functionLinenumberEnd: 342
    functionName: ossl_ecdsa_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c
    functionUses: 0
    functionsReached:
    - memcmp
    - i2d_ECDSA_SIG
    - OPENSSL_clear_free
    - ECDSA_SIG_new
    - ECDSA_do_verify
    - d2i_ECDSA_SIG
    - ECDSA_SIG_free
    linkageType: ''
    returnType: int
    signature: "ossl_ecdsa_verify(int type, const unsigned char *dgst, int dgst_len,\n
      \                     const unsigned char *sigbuf, int sig_len, EC_KEY *eckey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:356,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:357,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:358,1
    - Dst: EC_KEY_can_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:362,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:363,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:367,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:369,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:372,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:373,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:374,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:375,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:376,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:378,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:382,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:384,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:388,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:388,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:389,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:389,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:390,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:390,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:391,1
    - Dst: BN_mod_inverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:396,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:397,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:401,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:407,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:408,1
    - Dst: BN_rshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:412,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:413,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:417,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:418,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:422,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:423,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:427,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:428,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:431,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:432,1
    - Dst: EC_METHOD_get_field_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:435,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:435,1
    - Dst: EC_POINT_get_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:437,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:438,1
    - Dst: if
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:445,1
    - Dst: EC_POINT_get_affine_coordinates_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:445,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:446,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:451,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:452,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:456,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:458,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:459,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c:460,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 94
    argCount: 4
    argNames:
    - dgst
    - dgst_len
    - sig
    - eckey
    argTypes:
    - unsigned char*
    - int
    - ECDSA_SIG*
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 462
      start: 344
    functionDepth: 4
    functionLinenumber: 344
    functionLinenumberEnd: 462
    functionName: ossl_ecdsa_verify_sig
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_method_of
    - BN_rshift
    - BN_bin2bn
    - BN_CTX_get
    - BN_ucmp
    - ECerr
    - if
    - EC_POINT_free
    - BN_nnmod
    - BN_is_zero
    - EC_GROUP_get0_order
    - BN_CTX_end
    - EC_METHOD_get_field_type
    - BN_CTX_start
    - BN_CTX_new
    - BN_mod_mul
    - EC_POINT_get_affine_coordinates_GF2m
    - EC_POINT_get_affine_coordinates_GFp
    - EC_KEY_get0_public_key
    - BN_is_negative
    - EC_KEY_get0_group
    - BN_mod_inverse
    - EC_KEY_can_sign
    - EC_POINT_new
    - BN_num_bits
    - BN_CTX_free
    - EC_POINT_mul
    linkageType: ''
    returnType: int
    signature: "ossl_ecdsa_verify_sig(const unsigned char *dgst, int dgst_len,\n                          const
      ECDSA_SIG *sig, EC_KEY *eckey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 298
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 298
    functionName: EC_GFp_nistp224_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: '*EC_GFp_nistp224_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - u8[]
    constantsTouched: []
    func_position:
      end: 309
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 309
    functionName: bin28_to_felem
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: bin28_to_felem(felem out, const u8 in[28])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - u8[]
    - felem
    constantsTouched: []
    func_position:
      end: 320
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 320
    functionName: felem_to_bin28
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_to_bin28(u8 out[28], const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - out
    - in
    - len
    argTypes:
    - u8*
    - u8*
    - unsigned
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: flip_endian
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: flip_endian(u8 *out, const u8 *in, unsigned len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:338,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:339,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:341,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:344,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:345,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:348,1
    - Dst: flip_endian
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:349,1
    - Dst: bin28_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - out
    - bn
    argTypes:
    - felem
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 352
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 352
    functionName: BN_to_felem
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - bin28_to_felem
    - memset
    - BN_is_negative
    - flip_endian
    - ECerr
    - BN_bn2bin
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: BN_to_felem(felem out, const BIGNUM *bn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_to_bin28
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:358,1
    - Dst: flip_endian
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:359,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - BIGNUM*
    - felem
    constantsTouched: []
    func_position:
      end: 361
      start: 355
    functionDepth: 4
    functionLinenumber: 355
    functionLinenumberEnd: 361
    functionName: felem_to_BN
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - flip_endian
    - felem_to_bin28
    linkageType: ''
    returnType: BIGNUM
    signature: '*felem_to_BN(BIGNUM *out, const felem in)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - felem
    constantsTouched: []
    func_position:
      end: 380
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 380
    functionName: felem_one
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_one(felem out)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 388
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 388
    functionName: felem_assign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_assign(felem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 397
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 397
    functionName: felem_sum
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_sum(felem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 413
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 413
    functionName: felem_neg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_neg(felem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 434
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 434
    functionName: felem_diff
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_diff(felem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - widefelem
    - widefelem
    constantsTouched: []
    func_position:
      end: 462
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 462
    functionName: widefelem_diff
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: widefelem_diff(widefelem out, const widefelem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - widefelem
    - felem
    constantsTouched: []
    func_position:
      end: 485
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 485
    functionName: felem_diff_128_64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_diff_128_64(widefelem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - felem
    - limb
    constantsTouched: []
    func_position:
      end: 497
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 497
    functionName: felem_scalar
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_scalar(felem out, const limb scalar)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - widefelem
    - widelimb
    constantsTouched: []
    func_position:
      end: 512
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 512
    functionName: widefelem_scalar
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: widefelem_scalar(widefelem out, const widelimb scalar)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - widefelem
    - felem
    constantsTouched: []
    func_position:
      end: 528
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 528
    functionName: felem_square
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_square(widefelem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - out
    - in1
    - in2
    argTypes:
    - widefelem
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 543
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 543
    functionName: felem_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_mul(widefelem out, const felem in1, const felem in2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - widefelem
    constantsTouched: []
    func_position:
      end: 611
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 611
    functionName: felem_reduce
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_reduce(felem out, const widefelem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:616,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 618
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 618
    functionName: felem_square_reduce
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - felem_reduce
    - felem_square
    linkageType: ''
    returnType: void
    signature: felem_square_reduce(felem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:623,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - in1
    - in2
    argTypes:
    - felem
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 625
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 625
    functionName: felem_mul_reduce
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - felem_reduce
    - felem_mul
    linkageType: ''
    returnType: void
    signature: felem_mul_reduce(felem out, const felem in1, const felem in2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 681
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 681
    functionName: felem_contract
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_contract(felem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - in
    argTypes:
    - felem
    constantsTouched: []
    func_position:
      end: 701
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 701
    functionName: felem_is_zero
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: limb
    signature: felem_is_zero(const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - felem
    constantsTouched: []
    func_position:
      end: 706
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 706
    functionName: felem_is_zero_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - felem_is_zero
    linkageType: ''
    returnType: limb
    signature: felem_is_zero_int(const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:716,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:717,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:718,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:719,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:720,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:721,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:722,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:723,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:724,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:725,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:726,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:727,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:728,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:729,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:730,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:731,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:732,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:733,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:735,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:736,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:738,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:739,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:740,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:741,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:743,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:744,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:746,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:747,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:748,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:749,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:751,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:752,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:754,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:755,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:756,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:757,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:759,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:760,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:762,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:763,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:764,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:765,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:767,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:768,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:770,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:771,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:773,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:774,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:776,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:777,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:778,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:779,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:780,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:781,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:783,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:784,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:786,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:787,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 73
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 788
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 788
    functionName: felem_inv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 1
    functionsReached:
    - felem_reduce
    - felem_mul
    - felem_square
    linkageType: ''
    returnType: void
    signature: felem_inv(felem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in
    - icopy
    argTypes:
    - felem
    - felem
    - limb
    constantsTouched: []
    func_position:
      end: 805
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 805
    functionName: copy_conditional
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: copy_conditional(felem out, const felem in, limb icopy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:833,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:834,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:837,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:838,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:841,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:842,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:845,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:846,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:849,1
    - Dst: felem_sum
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:851,1
    - Dst: felem_scalar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:853,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:855,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:857,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:860,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:862,1
    - Dst: felem_scalar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:863,1
    - Dst: felem_diff_128_64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:865,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:867,1
    - Dst: felem_sum
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:870,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:872,1
    - Dst: felem_sum
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:873,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:875,1
    - Dst: felem_diff_128_64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:877,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:879,1
    - Dst: felem_scalar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:882,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:884,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:886,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:888,1
    - Dst: widefelem_scalar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:890,1
    - Dst: widefelem_diff
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:892,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 6
    argNames:
    - x_out
    - y_out
    - z_out
    - x_in
    - y_in
    - z_in
    argTypes:
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 895
      start: 826
    functionDepth: 1
    functionLinenumber: 826
    functionLinenumberEnd: 895
    functionName: point_double
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 3
    functionsReached:
    - felem_diff
    - felem_mul
    - widefelem_diff
    - felem_sum
    - felem_reduce
    - felem_square
    - felem_diff_128_64
    - felem_scalar
    - felem_assign
    - widefelem_scalar
    linkageType: ''
    returnType: void
    signature: "point_double(felem x_out, felem y_out, felem z_out,\n             const
      felem x_in, const felem y_in, const felem z_in)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:926,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:927,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:930,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:931,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:934,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:935,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:938,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:939,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:946,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:949,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:953,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:954,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:957,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:958,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:961,1
    - Dst: felem_diff_128_64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:965,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:967,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:970,1
    - Dst: felem_diff_128_64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:974,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:976,1
    - Dst: felem_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:982,1
    - Dst: felem_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:983,1
    - Dst: felem_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:984,1
    - Dst: felem_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:985,1
    - Dst: point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:988,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:994,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:995,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:998,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1002,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1003,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1006,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1007,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1008,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1011,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1012,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1015,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1016,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1019,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1023,1
    - Dst: felem_diff_128_64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1027,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1031,1
    - Dst: felem_scalar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1032,1
    - Dst: felem_diff_128_64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1039,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1041,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1044,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1050,1
    - Dst: widefelem_diff
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1057,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1059,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1069,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1070,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1071,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1072,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1073,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1074,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1075,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1076,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1077,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 67
    argCount: 10
    argNames:
    - x3
    - y3
    - z3
    - x1
    - y1
    - z1
    - mixed
    - x2
    - y2
    - z2
    argTypes:
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    - int
    - felem
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 1078
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 1078
    functionName: point_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 8
    functionsReached:
    - felem_diff
    - felem_mul
    - felem_is_zero
    - widefelem_diff
    - felem_scalar
    - copy_conditional
    - felem_reduce
    - felem_square
    - felem_diff_128_64
    - point_double
    - felem_assign
    linkageType: ''
    returnType: void
    signature: "point_add(felem x3, felem y3, felem z3,\n                      const
      felem x1, const felem y1, const felem z1,\n                      const int mixed,
      const felem x2, const felem y2,\n                      const felem z2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1091,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - idx
    - size
    - pre_comp
    - out
    argTypes:
    - u64
    - unsigned int
    - felem[][]
    - felem[]
    constantsTouched: []
    func_position:
      end: 1103
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1103
    functionName: select_point
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "select_point(const u64 idx, unsigned int size,\n                         const
      felem pre_comp[][3], felem out[3])"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - in
    - i
    argTypes:
    - felem_bytearray
    - unsigned
    constantsTouched: []
    func_position:
      end: 1111
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1111
    functionName: get_bit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: get_bit(const felem_bytearray in, unsigned i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1134,1
    - Dst: point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1146,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1151,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1152,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1153,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1154,1
    - Dst: select_point
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1156,1
    - Dst: point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1160,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1163,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1168,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1169,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1170,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1171,1
    - Dst: select_point
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1173,1
    - Dst: point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1174,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1183,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1184,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1185,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1186,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1187,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1188,1
    - Dst: ec_GFp_nistp_recode_scalar_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1189,1
    - Dst: select_point
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1192,1
    - Dst: felem_neg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1193,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1195,1
    - Dst: point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1198,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1202,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1208,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1209,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1210,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 9
    argNames:
    - x_out
    - y_out
    - z_out
    - scalars
    - num_points
    - g_scalar
    - mixed
    - pre_comp
    - g_pre_comp
    argTypes:
    - felem
    - felem
    - felem
    - felem_bytearray[]
    - unsigned
    - u8*
    - int
    - felem[][][]
    - felem[][][]
    constantsTouched: []
    func_position:
      end: 1211
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1211
    functionName: batch_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - felem_neg
    - ec_GFp_nistp_recode_scalar_bits
    - select_point
    - memset
    - copy_conditional
    - memcpy
    - get_bit
    - felem_assign
    - point_double
    - point_add
    linkageType: ''
    returnType: void
    signature: "batch_mul(felem x_out, felem y_out, felem z_out,\n                      const
      felem_bytearray scalars[],\n                      const unsigned num_points,
      const u8 *g_scalar,\n                      const int mixed, const felem pre_comp[][17][3],\n
      \                     const felem g_pre_comp[2][16][3])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1220,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1223,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1229,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1231,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1218
    functionDepth: 0
    functionLinenumber: 1218
    functionLinenumberEnd: 1236
    functionName: nistp224_pre_comp_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - ECerr
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: NISTP224_PRE_COMP
    signature: '*nistp224_pre_comp_new()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - NISTP224_PRE_COMP*
    constantsTouched: []
    func_position:
      end: 1244
      start: 1238
    functionDepth: 0
    functionLinenumber: 1238
    functionLinenumberEnd: 1244
    functionName: EC_nistp224_pre_comp_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - CRYPTO_atomic_add
    linkageType: ''
    returnType: NISTP224_PRE_COMP
    signature: '*EC_nistp224_pre_comp_dup(NISTP224_PRE_COMP *p)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1253,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1254,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1257,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1259,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - NISTP224_PRE_COMP*
    constantsTouched: []
    func_position:
      end: 1261
      start: 1246
    functionDepth: 0
    functionLinenumber: 1246
    functionLinenumberEnd: 1261
    functionName: EC_nistp224_pre_comp_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - CRYPTO_atomic_add
    - OPENSSL_free
    - CRYPTO_THREAD_lock_free
    - REF_ASSERT_ISNT
    - REF_PRINT_COUNT
    linkageType: ''
    returnType: void
    signature: EC_nistp224_pre_comp_free(NISTP224_PRE_COMP *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ec_GFp_simple_group_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 1274
      start: 1268
    functionDepth: 1
    functionLinenumber: 1268
    functionLinenumberEnd: 1274
    functionName: ec_GFp_nistp224_group_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - ec_GFp_simple_group_init
    linkageType: ''
    returnType: int
    signature: ec_GFp_nistp224_group_init(EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1285,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1287,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1288,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1289,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1290,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1292,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1293,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1294,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1295,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1295,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1295,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1296,1
    - Dst: ec_GFp_simple_group_set_curve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1301,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1303,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1304,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1306
      start: 1276
    functionDepth: 4
    functionLinenumber: 1276
    functionLinenumberEnd: 1306
    functionName: ec_GFp_nistp224_group_set_curve
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - ec_GFp_simple_group_set_curve
    - BN_bin2bn
    - BN_cmp
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_free
    - BN_CTX_new
    - BN_CTX_get
    - ECerr
    linkageType: ''
    returnType: int
    signature: "ec_GFp_nistp224_group_set_curve(EC_GROUP *group, const BIGNUM *p,\n
      \                                   const BIGNUM *a, const BIGNUM *b,\n                                    BN_CTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1320,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1321,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1325,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1325,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1326,1
    - Dst: felem_inv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1328,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1329,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1330,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1331,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1332,1
    - Dst: felem_contract
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1333,1
    - Dst: felem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1335,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1336,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1341,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1342,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1343,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1344,1
    - Dst: felem_contract
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1345,1
    - Dst: felem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1347,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1348,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1354
      start: 1312
    functionDepth: 1
    functionLinenumber: 1312
    functionLinenumberEnd: 1354
    functionName: ec_GFp_nistp224_point_get_affine_coordinates
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - felem_mul
    - felem_inv
    - felem_to_BN
    - EC_POINT_is_at_infinity
    - felem_reduce
    - BN_to_felem
    - felem_square
    - felem_contract
    - ECerr
    linkageType: ''
    returnType: int
    signature: "ec_GFp_nistp224_point_get_affine_coordinates(const EC_GROUP *group,\n
      \                                                const EC_POINT *point,\n                                                 BIGNUM
      *x, BIGNUM *y,\n                                                 BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ec_GFp_nistp_points_make_affine_internal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - num
    - points
    - tmp_felems
    argTypes:
    - size_t
    - felem[][]
    - felem[]
    constantsTouched: []
    func_position:
      end: 1384
      start: 1356
    functionDepth: 1
    functionLinenumber: 1356
    functionLinenumberEnd: 1384
    functionName: make_points_affine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - ec_GFp_nistp_points_make_affine_internal
    linkageType: ''
    returnType: void
    signature: "make_points_affine(size_t num, felem points[ /* num */ ][3],\n                               felem
      tmp_felems[ /* num+1 */ ])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1403,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1417,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1419,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1420,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1421,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1422,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1423,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1434,1
    - Dst: felem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1438,1
    - Dst: felem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1439,1
    - Dst: felem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1440,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1441,1
    - Dst: EC_POINT_set_Jprojective_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1444,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1448,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1467,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1468,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1471,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1474,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1486,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1496,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1497,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1502,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1503,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1506,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1508,1
    - Dst: flip_endian
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1509,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1511,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1512,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1513,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1515,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1516,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1517,1
    - Dst: point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1520,1
    - Dst: point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1527,1
    - Dst: make_points_affine
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1536,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1541,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1543,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1543,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1548,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1549,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1552,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1554,1
    - Dst: flip_endian
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1555,1
    - Dst: batch_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1557,1
    - Dst: batch_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1563,1
    - Dst: felem_contract
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1567,1
    - Dst: felem_contract
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1568,1
    - Dst: felem_contract
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1569,1
    - Dst: felem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1570,1
    - Dst: felem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1570,1
    - Dst: felem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1571,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1572,1
    - Dst: EC_POINT_set_Jprojective_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1575,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1578,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1579,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1580,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1581,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1582,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1583,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 113
    argCount: 7
    argNames:
    - group
    - r
    - scalar
    - num
    - points
    - scalars
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - size_t
    - EC_POINT*[]
    - BIGNUM*[]
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1585
      start: 1390
    functionDepth: 2
    functionLinenumber: 1390
    functionLinenumberEnd: 1585
    functionName: ec_GFp_nistp224_points_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - felem_to_BN
    - BN_to_felem
    - felem_contract
    - OPENSSL_zalloc
    - BN_CTX_get
    - ECerr
    - EC_POINT_set_Jprojective_coordinates_GFp
    - make_points_affine
    - batch_mul
    - EC_POINT_free
    - BN_nnmod
    - BN_CTX_end
    - BN_CTX_start
    - EC_POINT_cmp
    - BN_CTX_new
    - point_add
    - memset
    - BN_is_negative
    - OPENSSL_free
    - felem_assign
    - felem
    - EC_GROUP_get0_generator
    - EC_POINT_new
    - BN_num_bits
    - BN_CTX_free
    - flip_endian
    - point_double
    - BN_bn2bin
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "ec_GFp_nistp224_points_mul(const EC_GROUP *group, EC_POINT *r,\n                               const
      BIGNUM *scalar, size_t num,\n                               const EC_POINT *points[],\n
      \                              const BIGNUM *scalars[], BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_pre_comp_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1598,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1600,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1602,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1603,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1603,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1608,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1611,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1612,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1613,1
    - Dst: nistp224_pre_comp_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1615,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1620,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1621,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1624,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1625,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1626,1
    - Dst: point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1633,1
    - Dst: point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1637,1
    - Dst: point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1643,1
    - Dst: point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1648,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1658,1
    - Dst: point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1661,1
    - Dst: point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1667,1
    - Dst: point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1673,1
    - Dst: point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1681,1
    - Dst: point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1688,1
    - Dst: make_points_affine
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1698,1
    - Dst: SETPRECOMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1701,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1705,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1706,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1707,1
    - Dst: EC_nistp224_pre_comp_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1708,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 67
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1710
      start: 1587
    functionDepth: 4
    functionLinenumber: 1587
    functionLinenumberEnd: 1710
    functionName: ec_GFp_nistp224_precompute_mult
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - EC_POINT_set_affine_coordinates_GFp
    - BN_bin2bn
    - BN_to_felem
    - BN_CTX_get
    - make_points_affine
    - EC_POINT_free
    - BN_CTX_end
    - BN_CTX_start
    - nistp224_pre_comp_new
    - EC_POINT_cmp
    - BN_CTX_new
    - SETPRECOMP
    - EC_pre_comp_free
    - memset
    - EC_nistp224_pre_comp_free
    - EC_POINT_new
    - memcpy
    - BN_CTX_free
    - point_double
    - point_add
    linkageType: ''
    returnType: int
    signature: ec_GFp_nistp224_precompute_mult(EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HAVEPRECOMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c:1714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 1715
      start: 1712
    functionDepth: 0
    functionLinenumber: 1712
    functionLinenumberEnd: 1715
    functionName: ec_GFp_nistp224_have_precompute_mult
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - HAVEPRECOMP
    linkageType: ''
    returnType: int
    signature: ec_GFp_nistp224_have_precompute_mult(const EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:28,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:28,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:29,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:32,1
    - Dst: ECPKParameters_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:33,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fp
    - x
    - 'off'
    argTypes:
    - FILE*
    - EC_GROUP*
    - int
    constantsTouched: []
    func_position:
      end: 36
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: ECPKParameters_print_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c
    functionUses: 0
    functionsReached:
    - ECPKParameters_print
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - ECerr
    - BIO_new
    linkageType: ''
    returnType: int
    signature: ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:43,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:43,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:44,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:47,1
    - Dst: EC_KEY_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:48,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fp
    - x
    - 'off'
    argTypes:
    - FILE*
    - EC_KEY*
    - int
    constantsTouched: []
    func_position:
      end: 51
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 51
    functionName: EC_KEY_print_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c
    functionUses: 0
    functionsReached:
    - EC_KEY_print
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - ECerr
    - BIO_new
    linkageType: ''
    returnType: int
    signature: EC_KEY_print_fp(FILE *fp, const EC_KEY *x, int off)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:58,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:58,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:59,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:62,1
    - Dst: ECParameters_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:63,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - fp
    - x
    argTypes:
    - FILE*
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: ECParameters_print_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c
    functionUses: 0
    functionsReached:
    - ECParameters_print
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - ECerr
    - BIO_new
    linkageType: ''
    returnType: int
    signature: ECParameters_print_fp(FILE *fp, const EC_KEY *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:91,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:97,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:102,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:105,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:108,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:108,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:110,1
    - Dst: EC_curve_nid2nist
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:112,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:114,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:116,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:128,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:128,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:129,1
    - Dst: EC_GROUP_get_curve_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:135,1
    - Dst: EC_GROUP_get_curve_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:142,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:148,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:152,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:153,1
    - Dst: EC_GROUP_get_point_conversion_form
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:159,1
    - Dst: EC_POINT_point2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:161,1
    - Dst: EC_GROUP_get0_seed
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:166,1
    - Dst: EC_GROUP_get_seed_len
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:167,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:169,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:173,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:173,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:183,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:186,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:187,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:191,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:195,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:198,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:200,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:203,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:207,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:212,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:216,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:219,1
    - Dst: print_bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:222,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:228,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:229,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:230,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:231,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:232,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:233,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 141
    argCount: 3
    argNames:
    - bp
    - x
    - 'off'
    argTypes:
    - BIO*
    - EC_GROUP*
    - int
    constantsTouched: []
    func_position:
      end: 235
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 235
    functionName: ECPKParameters_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c
    functionUses: 1
    functionsReached:
    - EC_GROUP_get_curve_GFp
    - BIO_indent
    - OBJ_nid2sn
    - ECerr
    - BIO_printf
    - EC_POINT_point2bn
    - EC_GROUP_get_asn1_flag
    - EC_GROUP_get_curve_GF2m
    - BN_free
    - EC_GROUP_get0_order
    - EC_GROUP_get0_seed
    - print_bin
    - BN_CTX_new
    - BN_new
    - ASN1_bn_print
    - EC_curve_nid2nist
    - EC_GROUP_get_curve_name
    - EC_GROUP_get0_generator
    - BN_CTX_free
    - EC_GROUP_get_seed_len
    - EC_GROUP_get0_cofactor
    - EC_GROUP_get_point_conversion_form
    linkageType: ''
    returnType: int
    signature: ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:248,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:249,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:255,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:261,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:262,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:265,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c:269,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 5
    argNames:
    - fp
    - name
    - buf
    - len
    - 'off'
    argTypes:
    - BIO*
    - char*
    - unsigned char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 273
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 273
    functionName: print_bin
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    - BIO_write
    - memset
    linkageType: ''
    returnType: int
    signature: "print_bin(BIO *fp, const char *name, const unsigned char *buf,\n                     size_t
      len, int off)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: load_3
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: load_3(const uint8_t *in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: load_4
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: load_4(const uint8_t *in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 2
    argNames:
    - h
    - s
    argTypes:
    - fe
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 92
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 92
    functionName: fe_frombytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fe_frombytes(fe h, const uint8_t *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 64
    argCount: 2
    argNames:
    - s
    - h
    argTypes:
    - uint8_t*
    - fe
    constantsTouched: []
    func_position:
      end: 194
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 194
    functionName: fe_tobytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fe_tobytes(uint8_t *s, const fe h)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe
    - fe
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: fe_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: void
    signature: fe_copy(fe h, const fe f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - fe
    constantsTouched: []
    func_position:
      end: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    functionName: fe_0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: fe_0(fe h)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - fe
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: fe_1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: fe_1(fe h)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - h
    - f
    - g
    argTypes:
    - fe
    - fe
    - fe
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: fe_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fe_add(fe h, const fe f, const fe g)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - h
    - f
    - g
    argTypes:
    - fe
    - fe
    - fe
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: fe_sub
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fe_sub(fe h, const fe f, const fe g)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 3
    argNames:
    - h
    - f
    - g
    argTypes:
    - fe
    - fe
    - fe
    constantsTouched: []
    func_position:
      end: 483
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 483
    functionName: fe_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fe_mul(fe h, const fe f, const fe g)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe
    - fe
    constantsTouched: []
    func_position:
      end: 624
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 624
    functionName: fe_sq
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fe_sq(fe h, const fe f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:639,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:642,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:643,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:646,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:648,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:651,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:654,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:657,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:659,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:663,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:668,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:670,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:672,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:675,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:677,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:679,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:683,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:686,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:689,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:691,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:693,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:696,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:698,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:700,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:703,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:705,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:709,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:712,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:714,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:718,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - fe
    - fe
    constantsTouched: []
    func_position:
      end: 719
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 719
    functionName: fe_invert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sq
    - fe_mul
    linkageType: ''
    returnType: void
    signature: fe_invert(fe out, const fe z)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe
    - fe
    constantsTouched: []
    func_position:
      end: 733
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 733
    functionName: fe_neg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fe_neg(fe h, const fe f)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - f
    - g
    - b
    argTypes:
    - fe
    - fe
    - unsigned
    constantsTouched: []
    func_position:
      end: 747
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 747
    functionName: fe_cmov
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fe_cmov(fe f, const fe g, unsigned b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe
    - fe
    constantsTouched: []
    func_position:
      end: 899
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 899
    functionName: fe_sq2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fe_sq2(fe h, const fe f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fe_0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:947,1
    - Dst: fe_1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:948,1
    - Dst: fe_1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:949,1
    - Dst: fe_0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - h
    argTypes:
    - ge_p3*
    constantsTouched: []
    func_position:
      end: 951
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 951
    functionName: ge_p3_0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_0
    - fe_1
    linkageType: ''
    returnType: void
    signature: ge_p3_0(ge_p3 *h)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fe_1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:954,1
    - Dst: fe_1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:955,1
    - Dst: fe_0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - ge_precomp*
    constantsTouched: []
    func_position:
      end: 957
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 957
    functionName: ge_precomp_0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_0
    - fe_1
    linkageType: ''
    returnType: void
    signature: ge_precomp_0(ge_precomp *h)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fe_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:961,1
    - Dst: fe_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:962,1
    - Dst: fe_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - ge_p2*
    - ge_p3*
    constantsTouched: []
    func_position:
      end: 964
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 964
    functionName: ge_p3_to_p2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_copy
    linkageType: ''
    returnType: void
    signature: ge_p3_to_p2(ge_p2 *r, const ge_p3 *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:968,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:969,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - ge_p2*
    - ge_p1p1*
    constantsTouched: []
    func_position:
      end: 971
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 971
    functionName: ge_p1p1_to_p2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_mul
    linkageType: ''
    returnType: void
    signature: ge_p1p1_to_p2(ge_p2 *r, const ge_p1p1 *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:975,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:976,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:977,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - ge_p3*
    - ge_p1p1*
    constantsTouched: []
    func_position:
      end: 979
      start: 974
    functionDepth: 1
    functionLinenumber: 974
    functionLinenumberEnd: 979
    functionName: ge_p1p1_to_p3
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_mul
    linkageType: ''
    returnType: void
    signature: ge_p1p1_to_p3(ge_p3 *r, const ge_p1p1 *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:985,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:986,1
    - Dst: fe_sq2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:987,1
    - Dst: fe_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:988,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:989,1
    - Dst: fe_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:990,1
    - Dst: fe_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:991,1
    - Dst: fe_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:992,1
    - Dst: fe_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - ge_p1p1*
    - ge_p2*
    constantsTouched: []
    func_position:
      end: 994
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 994
    functionName: ge_p2_dbl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sub
    - fe_sq
    - fe_add
    - fe_sq2
    linkageType: ''
    returnType: void
    signature: ge_p2_dbl(ge_p1p1 *r, const ge_p2 *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ge_p3_to_p2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:999,1
    - Dst: ge_p2_dbl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:1000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - ge_p1p1*
    - ge_p3*
    constantsTouched: []
    func_position:
      end: 1001
      start: 997
    functionDepth: 2
    functionLinenumber: 997
    functionLinenumberEnd: 1001
    functionName: ge_p3_dbl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - ge_p2_dbl
    - ge_p3_to_p2
    linkageType: ''
    returnType: void
    signature: ge_p3_dbl(ge_p1p1 *r, const ge_p3 *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fe_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:1007,1
    - Dst: fe_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:1008,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:1009,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:1010,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:1011,1
    - Dst: fe_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:1012,1
    - Dst: fe_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:1013,1
    - Dst: fe_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:1014,1
    - Dst: fe_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:1015,1
    - Dst: fe_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - r
    - p
    - q
    argTypes:
    - ge_p1p1*
    - ge_p3*
    - ge_precomp*
    constantsTouched: []
    func_position:
      end: 1017
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1017
    functionName: ge_madd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sub
    - fe_add
    - fe_mul
    linkageType: ''
    returnType: void
    signature: ge_madd(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - b
    - c
    argTypes:
    - signed char
    - signed char
    constantsTouched: []
    func_position:
      end: 1027
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1027
    functionName: equal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: equal(signed char b, signed char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fe_cmov
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:1030,1
    - Dst: fe_cmov
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:1031,1
    - Dst: fe_cmov
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:1032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - t
    - u
    - b
    argTypes:
    - ge_precomp*
    - ge_precomp*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1033
      start: 1029
    functionDepth: 1
    functionLinenumber: 1029
    functionLinenumberEnd: 1033
    functionName: cmov
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 1
    functionsReached:
    - fe_cmov
    linkageType: ''
    returnType: void
    signature: cmov(ge_precomp *t, const ge_precomp *u, uint8_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - signed char
    constantsTouched: []
    func_position:
      end: 3155
      start: 3151
    functionDepth: 0
    functionLinenumber: 3151
    functionLinenumberEnd: 3155
    functionName: negative
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: negative(signed char b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ge_precomp_0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3162,1
    - Dst: cmov
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3163,1
    - Dst: equal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3163,1
    - Dst: cmov
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3164,1
    - Dst: equal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3164,1
    - Dst: cmov
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3165,1
    - Dst: equal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3165,1
    - Dst: cmov
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3166,1
    - Dst: equal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3166,1
    - Dst: cmov
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3167,1
    - Dst: equal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3167,1
    - Dst: cmov
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3168,1
    - Dst: equal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3168,1
    - Dst: cmov
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3169,1
    - Dst: equal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3169,1
    - Dst: cmov
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3170,1
    - Dst: equal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3170,1
    - Dst: fe_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3171,1
    - Dst: fe_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3172,1
    - Dst: fe_neg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3173,1
    - Dst: cmov
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - t
    - pos
    - b
    argTypes:
    - ge_precomp*
    - int
    - signed char
    constantsTouched: []
    func_position:
      end: 3175
      start: 3157
    functionDepth: 2
    functionLinenumber: 3157
    functionLinenumberEnd: 3175
    functionName: table_select
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - equal
    - fe_copy
    - cmov
    - fe_neg
    - ge_precomp_0
    linkageType: ''
    returnType: void
    signature: table_select(ge_precomp *t, int pos, signed char b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ge_p3_0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3208,1
    - Dst: table_select
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3210,1
    - Dst: ge_madd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3211,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3212,1
    - Dst: ge_p3_dbl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3215,1
    - Dst: ge_p1p1_to_p2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3216,1
    - Dst: ge_p2_dbl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3217,1
    - Dst: ge_p1p1_to_p2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3218,1
    - Dst: ge_p2_dbl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3219,1
    - Dst: ge_p1p1_to_p2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3220,1
    - Dst: ge_p2_dbl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3221,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3222,1
    - Dst: table_select
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3225,1
    - Dst: ge_madd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3226,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 2
    argNames:
    - h
    - a
    argTypes:
    - ge_p3*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 3229
      start: 3183
    functionDepth: 3
    functionLinenumber: 3183
    functionLinenumberEnd: 3229
    functionName: ge_scalarmult_base
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - ge_p3_dbl
    - ge_p1p1_to_p3
    - ge_p2_dbl
    - ge_madd
    - table_select
    - ge_p1p1_to_p2
    - ge_p3_0
    linkageType: ''
    returnType: void
    signature: ge_scalarmult_base(ge_p3 *h, const uint8_t *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - f
    - g
    - b
    argTypes:
    - fe
    - fe
    - unsigned int
    constantsTouched: []
    func_position:
      end: 3244
      start: 3235
    functionDepth: 0
    functionLinenumber: 3235
    functionLinenumberEnd: 3244
    functionName: fe_cswap
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fe_cswap(fe f, fe g, unsigned int b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe
    - fe
    constantsTouched: []
    func_position:
      end: 3308
      start: 3254
    functionDepth: 0
    functionLinenumber: 3254
    functionLinenumberEnd: 3308
    functionName: fe_mul121666
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fe_mul121666(fe h, fe f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3318,1
    - Dst: fe_frombytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3322,1
    - Dst: fe_1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3323,1
    - Dst: fe_0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3324,1
    - Dst: fe_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3325,1
    - Dst: fe_1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3326,1
    - Dst: fe_cswap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3331,1
    - Dst: fe_cswap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3332,1
    - Dst: fe_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3334,1
    - Dst: fe_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3335,1
    - Dst: fe_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3336,1
    - Dst: fe_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3337,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3338,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3339,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3340,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3341,1
    - Dst: fe_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3342,1
    - Dst: fe_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3343,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3344,1
    - Dst: fe_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3345,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3346,1
    - Dst: fe_mul121666
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3347,1
    - Dst: fe_sq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3348,1
    - Dst: fe_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3349,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3350,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3351,1
    - Dst: fe_cswap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3353,1
    - Dst: fe_cswap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3354,1
    - Dst: fe_invert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3356,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3357,1
    - Dst: fe_tobytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 3
    argNames:
    - out
    - scalar
    - point
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    constantsTouched: []
    func_position:
      end: 3359
      start: 3310
    functionDepth: 2
    functionLinenumber: 3310
    functionLinenumberEnd: 3359
    functionName: x25519_scalar_mult_generic
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sub
    - fe_copy
    - fe_invert
    - fe_mul121666
    - fe_cswap
    - fe_0
    - fe_mul
    - fe_1
    - memcpy
    - fe_sq
    - fe_frombytes
    - fe_add
    - fe_tobytes
    linkageType: ''
    returnType: void
    signature: "x25519_scalar_mult_generic(uint8_t out[32],\n                                       const
      uint8_t scalar[32],\n                                       const uint8_t point[32])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: x25519_scalar_mult_generic
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - scalar
    - point
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    constantsTouched: []
    func_position:
      end: 3364
      start: 3361
    functionDepth: 3
    functionLinenumber: 3361
    functionLinenumberEnd: 3364
    functionName: x25519_scalar_mult
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - x25519_scalar_mult_generic
    linkageType: ''
    returnType: void
    signature: "x25519_scalar_mult(uint8_t out[32], const uint8_t scalar[32],\n                               const
      uint8_t point[32])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: x25519_scalar_mult
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3369,1
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out_shared_key
    - private_key
    - peer_public_value
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    constantsTouched: []
    func_position:
      end: 3372
      start: 3366
    functionDepth: 4
    functionLinenumber: 3366
    functionLinenumberEnd: 3372
    functionName: X25519
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - x25519_scalar_mult
    - CRYPTO_memcmp
    linkageType: ''
    returnType: int
    signature: "X25519(uint8_t out_shared_key[32], const uint8_t private_key[32],\n
      \          const uint8_t peer_public_value[32])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3380,1
    - Dst: ge_scalarmult_base
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3385,1
    - Dst: fe_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3389,1
    - Dst: fe_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3390,1
    - Dst: fe_invert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3391,1
    - Dst: fe_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3392,1
    - Dst: fe_tobytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c:3393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - out_public_value
    - private_key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    constantsTouched: []
    func_position:
      end: 3394
      start: 3374
    functionDepth: 4
    functionLinenumber: 3374
    functionLinenumberEnd: 3394
    functionName: X25519_public_from_private
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sub
    - fe_invert
    - fe_mul
    - memcpy
    - fe_add
    - ge_scalarmult_base
    - fe_tobytes
    linkageType: ''
    returnType: void
    signature: "X25519_public_from_private(uint8_t out_public_value[32],\n                                const
      uint8_t private_key[32])"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: EC_KEY_OpenSSL
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_KEY_METHOD
    signature: '*EC_KEY_OpenSSL(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: EC_KEY_get_default_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_KEY_METHOD
    signature: '*EC_KEY_get_default_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: EC_KEY_set_default_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EC_KEY_set_default_method(const EC_KEY_METHOD *meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: EC_KEY_get_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_KEY_METHOD
    signature: '*EC_KEY_get_method(const EC_KEY *key)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:60,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:63,1
    - Dst: EC_KEY_METHOD*::init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - key
    - meth
    argTypes:
    - EC_KEY*
    - EC_KEY_METHOD*
    constantsTouched: []
    func_position:
      end: 71
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 71
    functionName: EC_KEY_set_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached:
    - finish
    - EC_KEY_METHOD*::init
    - ENGINE_finish
    linkageType: ''
    returnType: int
    signature: EC_KEY_set_method(EC_KEY *key, const EC_KEY_METHOD *meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:75,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:78,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:83,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:85,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:86,1
    - Dst: EC_KEY_get_default_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:90,1
    - Dst: ENGINE_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:93,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:94,1
    - Dst: ENGINE_get_default_EC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:99,1
    - Dst: ENGINE_get_EC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:101,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:103,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:112,1
    - Dst: EC_KEY*::meth::init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:116,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:117,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:123,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 1
    argNames:
    - engine
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 125
      start: 73
    functionDepth: 4
    functionLinenumber: 73
    functionLinenumberEnd: 125
    functionName: EC_KEY_new_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c
    functionUses: 2
    functionsReached:
    - CRYPTO_new_ex_data
    - ENGINE_get_default_EC
    - EC_KEY_free
    - ENGINE_init
    - ENGINE_get_EC
    - CRYPTO_THREAD_lock_new
    - EC_KEY*::meth::init
    - OPENSSL_zalloc
    - ECerr
    - OPENSSL_free
    - EC_KEY_get_default_method
    linkageType: ''
    returnType: EC_KEY
    signature: '*EC_KEY_new_method(ENGINE *engine)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:135,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:139,1
    - Dst: EC_KEY*::meth::compute_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:142,1
    - Dst: KDF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:145,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:149,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - out
    - outlen
    - pub_key
    - eckey
    - "(*KDF) (const void *in, size_t inlen, void *out,\n                                   size_t
      *outlen)"
    argTypes:
    - void*
    - size_t
    - EC_POINT*
    - EC_KEY*
    - void*
    constantsTouched: []
    func_position:
      end: 153
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 153
    functionName: ECDH_compute_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c
    functionUses: 2
    functionsReached:
    - KDF
    - OPENSSL_clear_free
    - EC_KEY*::meth::compute_key
    - memcpy
    - ECerr
    linkageType: ''
    returnType: int
    signature: "ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key,\n
      \                    const EC_KEY *eckey,\n                     void *(*KDF)
      (const void *in, size_t inlen, void *out,\n                                   size_t
      *outlen))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    constantsTouched: []
    func_position:
      end: 165
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 165
    functionName: EC_KEY_METHOD_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EC_KEY_METHOD
    signature: '*EC_KEY_METHOD_new(const EC_KEY_METHOD *meth)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: EC_KEY_METHOD_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: EC_KEY_METHOD_free(EC_KEY_METHOD *meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    constantsTouched: []
    func_position:
      end: 189
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 189
    functionName: EC_KEY_METHOD_set_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EC_KEY_METHOD_set_init(EC_KEY_METHOD *meth,\n                            int
      (*init)(EC_KEY *key),\n                            void (*finish)(EC_KEY *key),\n
      \                           int (*copy)(EC_KEY *dest, const EC_KEY *src),\n
      \                           int (*set_group)(EC_KEY *key, const EC_GROUP *grp),\n
      \                           int (*set_private)(EC_KEY *key,\n                                               const
      BIGNUM *priv_key),\n                            int (*set_public)(EC_KEY *key,\n
      \                                             const EC_POINT *pub_key))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: EC_KEY_METHOD_set_keygen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EC_KEY_METHOD_set_keygen(EC_KEY_METHOD *meth,\n                              int
      (*keygen)(EC_KEY *key))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    constantsTouched: []
    func_position:
      end: 204
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 204
    functionName: EC_KEY_METHOD_set_compute_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EC_KEY_METHOD_set_compute_key(EC_KEY_METHOD *meth,\n                                   int
      (*ckey)(unsigned char **psec,\n                                               size_t
      *pseclen,\n                                               const EC_POINT *pub_key,\n
      \                                              const EC_KEY *ecdh))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - meth
    - "(*sign_sig)(const unsigned char *dgst,\n                                                   int
      dgst_len,\n                                                   const BIGNUM *in_kinv,\n
      \                                                  const BIGNUM *in_r,\n                                                   EC_KEY
      *eckey)"
    argTypes:
    - EC_KEY_METHOD*
    - ECDSA_SIG*
    constantsTouched: []
    func_position:
      end: 223
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 223
    functionName: EC_KEY_METHOD_set_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EC_KEY_METHOD_set_sign(EC_KEY_METHOD *meth,\n                            int
      (*sign)(int type, const unsigned char *dgst,\n                                        int
      dlen, unsigned char *sig,\n                                        unsigned
      int *siglen,\n                                        const BIGNUM *kinv, const
      BIGNUM *r,\n                                        EC_KEY *eckey),\n                            int
      (*sign_setup)(EC_KEY *eckey, BN_CTX *ctx_in,\n                                              BIGNUM
      **kinvp, BIGNUM **rp),\n                            ECDSA_SIG *(*sign_sig)(const
      unsigned char *dgst,\n                                                   int
      dgst_len,\n                                                   const BIGNUM *in_kinv,\n
      \                                                  const BIGNUM *in_r,\n                                                   EC_KEY
      *eckey))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    constantsTouched: []
    func_position:
      end: 237
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 237
    functionName: EC_KEY_METHOD_set_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EC_KEY_METHOD_set_verify(EC_KEY_METHOD *meth,\n                              int
      (*verify)(int type, const unsigned\n                                            char
      *dgst, int dgst_len,\n                                            const unsigned
      char *sigbuf,\n                                            int sig_len, EC_KEY
      *eckey),\n                              int (*verify_sig)(const unsigned char
      *dgst,\n                                                int dgst_len,\n                                                const
      ECDSA_SIG *sig,\n                                                EC_KEY *eckey))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    constantsTouched: []
    func_position:
      end: 262
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 262
    functionName: EC_KEY_METHOD_get_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EC_KEY_METHOD_get_init(EC_KEY_METHOD *meth,\n                            int
      (**pinit)(EC_KEY *key),\n                            void (**pfinish)(EC_KEY
      *key),\n                            int (**pcopy)(EC_KEY *dest, const EC_KEY
      *src),\n                            int (**pset_group)(EC_KEY *key,\n                                               const
      EC_GROUP *grp),\n                            int (**pset_private)(EC_KEY *key,\n
      \                                                const BIGNUM *priv_key),\n
      \                           int (**pset_public)(EC_KEY *key,\n                                                const
      EC_POINT *pub_key))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    constantsTouched: []
    func_position:
      end: 269
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 269
    functionName: EC_KEY_METHOD_get_keygen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EC_KEY_METHOD_get_keygen(EC_KEY_METHOD *meth,\n                              int
      (**pkeygen)(EC_KEY *key))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    constantsTouched: []
    func_position:
      end: 279
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 279
    functionName: EC_KEY_METHOD_get_compute_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EC_KEY_METHOD_get_compute_key(EC_KEY_METHOD *meth,\n                                   int
      (**pck)(unsigned char **pout,\n                                               size_t
      *poutlen,\n                                               const EC_POINT *pub_key,\n
      \                                              const EC_KEY *ecdh))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - meth
    - "(**psign_sig)(const unsigned char *dgst,\n                                                     int
      dgst_len,\n                                                     const BIGNUM
      *in_kinv,\n                                                     const BIGNUM
      *in_r,\n                                                     EC_KEY *eckey)"
    argTypes:
    - EC_KEY_METHOD*
    - ECDSA_SIG*
    constantsTouched: []
    func_position:
      end: 301
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 301
    functionName: EC_KEY_METHOD_get_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EC_KEY_METHOD_get_sign(EC_KEY_METHOD *meth,\n                            int
      (**psign)(int type, const unsigned char *dgst,\n                                          int
      dlen, unsigned char *sig,\n                                          unsigned
      int *siglen,\n                                          const BIGNUM *kinv,
      const BIGNUM *r,\n                                          EC_KEY *eckey),\n
      \                           int (**psign_setup)(EC_KEY *eckey, BN_CTX *ctx_in,\n
      \                                               BIGNUM **kinvp, BIGNUM **rp),\n
      \                           ECDSA_SIG *(**psign_sig)(const unsigned char *dgst,\n
      \                                                    int dgst_len,\n                                                     const
      BIGNUM *in_kinv,\n                                                     const
      BIGNUM *in_r,\n                                                     EC_KEY *eckey))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    constantsTouched: []
    func_position:
      end: 317
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 317
    functionName: EC_KEY_METHOD_get_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EC_KEY_METHOD_get_verify(EC_KEY_METHOD *meth,\n                              int
      (**pverify)(int type, const unsigned\n                                              char
      *dgst, int dgst_len,\n                                              const unsigned
      char *sigbuf,\n                                              int sig_len, EC_KEY
      *eckey),\n                              int (**pverify_sig)(const unsigned char
      *dgst,\n                                                  int dgst_len,\n                                                  const
      ECDSA_SIG *sig,\n                                                  EC_KEY *eckey))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_err.c:284,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_err.c:285,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_err.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 290
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 290
    functionName: ERR_load_EC_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_EC_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:29,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:34,1
    - Dst: ec_GFp_simple_set_compressed_coordinates
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:40,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:45,1
    - Dst: ec_GF2m_simple_set_compressed_coordinates
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:50,1
    - Dst: EC_GROUP*::meth::point_set_compressed_coordinates
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:54,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y_bit
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - int
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 56
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 56
    functionName: EC_POINT_set_compressed_coordinates_GFp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c
    functionUses: 0
    functionsReached:
    - ECerr
    - ec_GF2m_simple_set_compressed_coordinates
    - EC_GROUP*::meth::point_set_compressed_coordinates
    - ec_GFp_simple_set_compressed_coordinates
    linkageType: ''
    returnType: int
    signature: "EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group,\n                                            EC_POINT
      *point, const BIGNUM *x,\n                                            int y_bit,
      BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:65,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:70,1
    - Dst: ec_GFp_simple_set_compressed_coordinates
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:76,1
    - Dst: ec_GF2m_simple_set_compressed_coordinates
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:79,1
    - Dst: EC_GROUP*::meth::point_set_compressed_coordinates
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:82,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y_bit
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - int
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 84
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 84
    functionName: EC_POINT_set_compressed_coordinates_GF2m
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c
    functionUses: 0
    functionsReached:
    - ECerr
    - ec_GF2m_simple_set_compressed_coordinates
    - EC_GROUP*::meth::point_set_compressed_coordinates
    - ec_GFp_simple_set_compressed_coordinates
    linkageType: ''
    returnType: int
    signature: "EC_POINT_set_compressed_coordinates_GF2m(const EC_GROUP *group,\n
      \                                            EC_POINT *point, const BIGNUM *x,\n
      \                                            int y_bit, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:93,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:97,1
    - Dst: ec_GFp_simple_point2oct
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:102,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:106,1
    - Dst: ec_GF2m_simple_point2oct
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:110,1
    - Dst: EC_GROUP*::meth::point2oct
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 6
    argNames:
    - group
    - point
    - form
    - buf
    - len
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - point_conversion_form_t
    - unsigned char*
    - size_t
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 116
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 116
    functionName: EC_POINT_point2oct
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c
    functionUses: 3
    functionsReached:
    - ec_GFp_simple_point2oct
    - ECerr
    - ec_GF2m_simple_point2oct
    - EC_GROUP*::meth::point2oct
    linkageType: ''
    returnType: size_t
    signature: "EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *point,\n
      \                         point_conversion_form_t form, unsigned char *buf,\n
      \                         size_t len, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:123,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:127,1
    - Dst: ec_GFp_simple_oct2point
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:132,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:136,1
    - Dst: ec_GF2m_simple_oct2point
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:140,1
    - Dst: EC_GROUP*::meth::oct2point
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:143,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - group
    - point
    - buf
    - len
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - unsigned char*
    - size_t
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 144
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 144
    functionName: EC_POINT_oct2point
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c
    functionUses: 2
    functionsReached:
    - ec_GF2m_simple_oct2point
    - ECerr
    - ec_GFp_simple_oct2point
    - EC_GROUP*::meth::oct2point
    linkageType: ''
    returnType: int
    signature: "EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *point,\n                       const
      unsigned char *buf, size_t len, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_point2oct
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:152,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:155,1
    - Dst: EC_POINT_point2oct
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:158,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - group
    - point
    - form
    - pbuf
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - point_conversion_form_t
    - unsigned char**
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 165
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 165
    functionName: EC_POINT_point2buf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c
    functionUses: 2
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - EC_POINT_point2oct
    linkageType: ''
    returnType: size_t
    signature: "EC_POINT_point2buf(const EC_GROUP *group, const EC_POINT *point,\n
      \                         point_conversion_form_t form,\n                          unsigned
      char **pbuf, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:57,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:60,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:67,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:68,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:69,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:70,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:71,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:75,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:77,1
    - Dst: BN_GF2m_mod_sqrt_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:78,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:81,1
    - Dst: EC_GROUP*::meth::field_div
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:83,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:85,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:87,1
    - Dst: BN_GF2m_mod_solve_quad_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:89,1
    - Dst: ERR_GET_LIB
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:92,1
    - Dst: ERR_GET_REASON
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:93,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:94,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:95,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:98,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:102,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:103,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:106,1
    - Dst: EC_POINT_set_affine_coordinates_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:111,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:117,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:118,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 64
    argCount: 5
    argNames:
    - group
    - point
    - x_
    - y_bit
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - int
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 120
      start: 47
    functionDepth: 7
    functionLinenumber: 47
    functionLinenumberEnd: 120
    functionName: ec_GF2m_simple_set_compressed_coordinates
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c
    functionUses: 2
    functionsReached:
    - EC_GROUP*::meth::field_sqr
    - BN_CTX_get
    - ECerr
    - ERR_GET_REASON
    - BN_GF2m_mod_sqrt_arr
    - BN_is_zero
    - BN_GF2m_mod_solve_quad_arr
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_new
    - EC_POINT_set_affine_coordinates_GF2m
    - BN_is_odd
    - ERR_GET_LIB
    - EC_GROUP*::meth::field_mul
    - BN_GF2m_mod_arr
    - BN_GF2m_add
    - ERR_clear_error
    - EC_GROUP*::meth::field_div
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: "ec_GF2m_simple_set_compressed_coordinates(const EC_GROUP *group,\n
      \                                             EC_POINT *point,\n                                              const
      BIGNUM *x_, int y_bit,\n                                              BN_CTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:140,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:144,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:148,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:157,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:165,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:170,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:175,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:177,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:178,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:179,1
    - Dst: EC_POINT_get_affine_coordinates_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:183,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:187,1
    - Dst: EC_GROUP*::meth::field_div
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:188,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:190,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:196,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:198,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:205,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:208,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:214,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:216,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:223,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:228,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:234,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:235,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:240,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:241,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 96
    argCount: 6
    argNames:
    - group
    - point
    - form
    - buf
    - len
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - point_conversion_form_t
    - unsigned char*
    - size_t
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 243
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 243
    functionName: ec_GF2m_simple_point2oct
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c
    functionUses: 1
    functionsReached:
    - BN_is_odd
    - EC_POINT_get_affine_coordinates_GF2m
    - EC_GROUP_get_degree
    - BN_is_zero
    - EC_POINT_is_at_infinity
    - EC_GROUP*::meth::field_div
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_free
    - BN_CTX_new
    - BN_CTX_get
    - ECerr
    - BN_bn2bin
    - BN_num_bytes
    linkageType: ''
    returnType: size_t
    signature: "ec_GF2m_simple_point2oct(const EC_GROUP *group, const EC_POINT *point,\n
      \                               point_conversion_form_t form,\n                                unsigned
      char *buf, size_t len, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:261,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:270,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:274,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:280,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:284,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:287,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:293,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:298,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:303,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:304,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:305,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:306,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:310,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:312,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:313,1
    - Dst: EC_POINT_set_compressed_coordinates_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:318,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:322,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:324,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:325,1
    - Dst: EC_GROUP*::meth::field_div
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:329,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:331,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:332,1
    - Dst: EC_POINT_set_affine_coordinates_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:341,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:348,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c:349,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 82
    argCount: 5
    argNames:
    - group
    - point
    - buf
    - len
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - unsigned char*
    - size_t
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 351
      start: 249
    functionDepth: 4
    functionLinenumber: 249
    functionLinenumberEnd: 351
    functionName: ec_GF2m_simple_oct2point
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c
    functionUses: 1
    functionsReached:
    - BN_is_odd
    - EC_POINT_set_compressed_coordinates_GF2m
    - EC_GROUP_get_degree
    - BN_bin2bn
    - EC_POINT_set_to_infinity
    - EC_GROUP*::meth::field_div
    - BN_CTX_end
    - BN_CTX_start
    - EC_POINT_set_affine_coordinates_GF2m
    - BN_CTX_free
    - BN_CTX_new
    - BN_CTX_get
    - BN_ucmp
    - ECerr
    linkageType: ''
    returnType: int
    signature: "ec_GF2m_simple_oct2point(const EC_GROUP *group, EC_POINT *point,\n
      \                            const unsigned char *buf, size_t len,\n                             BN_CTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - u8[]
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: bin32_to_felem
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: bin32_to_felem(felem out, const u8 in[32])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - u8[]
    - smallfelem
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: smallfelem_to_bin32
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: smallfelem_to_bin32(u8 out[32], const smallfelem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - out
    - in
    - len
    argTypes:
    - u8*
    - u8*
    - unsigned
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: flip_endian
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: flip_endian(u8 *out, const u8 *in, unsigned len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:166,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:167,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:169,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:172,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:173,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:176,1
    - Dst: flip_endian
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:177,1
    - Dst: bin32_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - out
    - bn
    argTypes:
    - felem
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 180
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 180
    functionName: BN_to_felem
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 3
    functionsReached:
    - memset
    - BN_is_negative
    - bin32_to_felem
    - flip_endian
    - ECerr
    - BN_bn2bin
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: BN_to_felem(felem out, const BIGNUM *bn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem_to_bin32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:186,1
    - Dst: flip_endian
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:187,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - BIGNUM*
    - smallfelem
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 4
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: smallfelem_to_BN
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - smallfelem_to_bin32
    - flip_endian
    linkageType: ''
    returnType: BIGNUM
    signature: '*smallfelem_to_BN(BIGNUM *out, const smallfelem in)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - smallfelem
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: smallfelem_one
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: smallfelem_one(smallfelem out)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - smallfelem
    - smallfelem
    constantsTouched: []
    func_position:
      end: 210
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 210
    functionName: smallfelem_assign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: smallfelem_assign(smallfelem out, const smallfelem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 218
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 218
    functionName: felem_assign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_assign(felem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: felem_sum
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_sum(felem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - smallfelem
    constantsTouched: []
    func_position:
      end: 236
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 236
    functionName: felem_small_sum
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_small_sum(felem out, const smallfelem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - felem
    - u64
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: felem_scalar
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_scalar(felem out, const u64 scalar)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - longfelem
    - u64
    constantsTouched: []
    func_position:
      end: 258
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 258
    functionName: longfelem_scalar
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: longfelem_scalar(longfelem out, const u64 scalar)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - small
    argTypes:
    - felem
    - smallfelem
    constantsTouched: []
    func_position:
      end: 280
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 280
    functionName: smallfelem_neg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: smallfelem_neg(felem out, const smallfelem small)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 303
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 303
    functionName: felem_diff
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_diff(felem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 335
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 335
    functionName: felem_diff_zero107
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_diff_zero107(felem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - longfelem
    - longfelem
    constantsTouched: []
    func_position:
      end: 374
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 374
    functionName: longfelem_diff
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: longfelem_diff(longfelem out, const longfelem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - smallfelem
    - felem
    constantsTouched: []
    func_position:
      end: 480
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 480
    functionName: felem_shrink
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_shrink(smallfelem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - smallfelem
    constantsTouched: []
    func_position:
      end: 489
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 489
    functionName: smallfelem_expand
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: smallfelem_expand(felem out, const smallfelem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 2
    argNames:
    - out
    - small
    argTypes:
    - longfelem
    - smallfelem
    constantsTouched: []
    func_position:
      end: 568
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 568
    functionName: smallfelem_square
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: smallfelem_square(longfelem out, const smallfelem small)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:580,1
    - Dst: smallfelem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - longfelem
    - felem
    constantsTouched: []
    func_position:
      end: 582
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 582
    functionName: felem_square
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 12
    functionsReached:
    - smallfelem_square
    - felem_shrink
    linkageType: ''
    returnType: void
    signature: felem_square(longfelem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 81
    argCount: 3
    argNames:
    - out
    - small1
    - small2
    argTypes:
    - longfelem
    - smallfelem
    - smallfelem
    constantsTouched: []
    func_position:
      end: 693
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 693
    functionName: smallfelem_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "smallfelem_mul(longfelem out, const smallfelem small1,\n                           const
      smallfelem small2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:706,1
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:707,1
    - Dst: smallfelem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in1
    - in2
    argTypes:
    - longfelem
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 709
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 709
    functionName: felem_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 12
    functionsReached:
    - felem_shrink
    - smallfelem_mul
    linkageType: ''
    returnType: void
    signature: felem_mul(longfelem out, const felem in1, const felem in2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:723,1
    - Dst: smallfelem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - small1
    - in2
    argTypes:
    - longfelem
    - smallfelem
    - felem
    constantsTouched: []
    func_position:
      end: 725
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 725
    functionName: felem_small_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - felem_shrink
    - smallfelem_mul
    linkageType: ''
    returnType: void
    signature: "felem_small_mul(longfelem out, const smallfelem small1,\n                            const
      felem in2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - longfelem
    constantsTouched: []
    func_position:
      end: 780
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 780
    functionName: felem_reduce_
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_reduce_(felem out, const longfelem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_reduce_
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - longfelem
    constantsTouched: []
    func_position:
      end: 811
      start: 791
    functionDepth: 1
    functionLinenumber: 791
    functionLinenumberEnd: 811
    functionName: felem_reduce
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 6
    functionsReached:
    - felem_reduce_
    linkageType: ''
    returnType: void
    signature: felem_reduce(felem out, const longfelem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_reduce_
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - longfelem
    constantsTouched: []
    func_position:
      end: 840
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 840
    functionName: felem_reduce_zero105
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - felem_reduce_
    linkageType: ''
    returnType: void
    signature: felem_reduce_zero105(felem out, const longfelem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - result
    - carry
    - v
    argTypes:
    - u64*
    - u64*
    - u64
    constantsTouched: []
    func_position:
      end: 852
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 852
    functionName: subtract_u64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: subtract_u64(u64 *result, u64 *carry, u64 v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:863,1
    - Dst: subtract_u64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:906,1
    - Dst: subtract_u64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:907,1
    - Dst: subtract_u64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:908,1
    - Dst: subtract_u64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:909,1
    - Dst: subtract_u64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:911,1
    - Dst: subtract_u64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:912,1
    - Dst: subtract_u64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:913,1
    - Dst: subtract_u64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:915,1
    - Dst: subtract_u64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:916,1
    - Dst: subtract_u64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - smallfelem
    - felem
    constantsTouched: []
    func_position:
      end: 919
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 919
    functionName: felem_contract
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 2
    functionsReached:
    - subtract_u64
    - felem_shrink
    linkageType: ''
    returnType: void
    signature: felem_contract(smallfelem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:926,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:927,1
    - Dst: felem_contract
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - smallfelem
    - smallfelem
    constantsTouched: []
    func_position:
      end: 929
      start: 921
    functionDepth: 1
    functionLinenumber: 921
    functionLinenumberEnd: 929
    functionName: smallfelem_square_contract
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - smallfelem_square
    - felem_reduce
    - felem_contract
    linkageType: ''
    returnType: void
    signature: smallfelem_square_contract(smallfelem out, const smallfelem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:937,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:938,1
    - Dst: felem_contract
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in1
    - in2
    argTypes:
    - smallfelem
    - smallfelem
    - smallfelem
    constantsTouched: []
    func_position:
      end: 940
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 940
    functionName: smallfelem_mul_contract
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - felem_reduce
    - smallfelem_mul
    - felem_contract
    linkageType: ''
    returnType: void
    signature: "smallfelem_mul_contract(smallfelem out, const smallfelem in1,\n                                    const
      smallfelem in2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - small
    argTypes:
    - smallfelem
    constantsTouched: []
    func_position:
      end: 980
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 980
    functionName: smallfelem_is_zero
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: limb
    signature: smallfelem_is_zero(const smallfelem small)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - small
    argTypes:
    - smallfelem
    constantsTouched: []
    func_position:
      end: 985
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 985
    functionName: smallfelem_is_zero_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - smallfelem_is_zero
    linkageType: ''
    returnType: int
    signature: smallfelem_is_zero_int(const smallfelem small)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1003,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1004,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1005,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1006,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1007,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1008,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1009,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1010,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1011,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1012,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1013,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1014,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1015,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1016,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1017,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1018,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1019,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1020,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1021,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1022,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1023,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1024,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1025,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1027,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1028,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1030,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1031,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1032,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1034,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1035,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1037,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1038,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1039,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1041,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1042,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1044,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1045,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1046,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1048,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1049,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1052,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1053,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1055,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1056,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1058,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1059,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1061,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1062,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1064,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1065,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1067,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1068,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1070,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1071,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1072,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1073,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1074,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1075,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1076,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1077,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1078,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1079,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1080,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1081,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1082,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1083,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1085,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1086,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 83
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 1087
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 1087
    functionName: felem_inv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 2
    functionsReached:
    - felem_reduce
    - felem_assign
    - felem_mul
    - felem_square
    linkageType: ''
    returnType: void
    signature: felem_inv(felem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1093,1
    - Dst: felem_inv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1094,1
    - Dst: felem_contract
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - smallfelem
    - smallfelem
    constantsTouched: []
    func_position:
      end: 1096
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1096
    functionName: smallfelem_inv_contract
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - felem_contract
    - felem_inv
    - smallfelem_expand
    linkageType: ''
    returnType: void
    signature: smallfelem_inv_contract(smallfelem out, const smallfelem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1124,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1126,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1130,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1131,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1135,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1136,1
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1138,1
    - Dst: felem_small_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1141,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1142,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1146,1
    - Dst: felem_sum
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1148,1
    - Dst: felem_scalar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1150,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1152,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1153,1
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1155,1
    - Dst: smallfelem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1158,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1159,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1160,1
    - Dst: felem_scalar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1161,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1163,1
    - Dst: felem_sum
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1167,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1169,1
    - Dst: felem_sum
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1170,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1172,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1173,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1174,1
    - Dst: felem_scalar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1178,1
    - Dst: felem_diff_zero107
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1180,1
    - Dst: felem_small_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1182,1
    - Dst: smallfelem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1184,1
    - Dst: longfelem_scalar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1186,1
    - Dst: longfelem_diff
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1188,1
    - Dst: felem_reduce_zero105
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 6
    argNames:
    - x_out
    - y_out
    - z_out
    - x_in
    - y_in
    - z_in
    argTypes:
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 1192
      start: 1116
    functionDepth: 2
    functionLinenumber: 1116
    functionLinenumberEnd: 1192
    functionName: point_double
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 7
    functionsReached:
    - felem_diff
    - felem_shrink
    - felem_mul
    - longfelem_scalar
    - felem_diff_zero107
    - felem_sum
    - felem_reduce_zero105
    - smallfelem_square
    - felem_reduce
    - felem_square
    - felem_scalar
    - longfelem_diff
    - felem_assign
    - felem_small_mul
    linkageType: ''
    returnType: void
    signature: "point_double(felem x_out, felem y_out, felem z_out,\n             const
      felem x_in, const felem y_in, const felem z_in)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1206,1
    - Dst: smallfelem_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1207,1
    - Dst: smallfelem_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1208,1
    - Dst: point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1209,1
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1211,1
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1212,1
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - x_out
    - y_out
    - z_out
    - x_in
    - y_in
    - z_in
    argTypes:
    - smallfelem
    - smallfelem
    - smallfelem
    - smallfelem
    - smallfelem
    - smallfelem
    constantsTouched: []
    func_position:
      end: 1214
      start: 1198
    functionDepth: 1
    functionLinenumber: 1198
    functionLinenumberEnd: 1214
    functionName: point_double_small
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - point_double
    - felem_shrink
    - smallfelem_expand
    linkageType: ''
    returnType: void
    signature: "point_double_small(smallfelem x_out, smallfelem y_out, smallfelem
      z_out,\n                   const smallfelem x_in, const smallfelem y_in,\n                   const
      smallfelem z_in)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in
    - mask
    argTypes:
    - felem
    - felem
    - limb
    constantsTouched: []
    func_position:
      end: 1224
      start: 1217
    functionDepth: 0
    functionLinenumber: 1217
    functionLinenumberEnd: 1224
    functionName: copy_conditional
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: copy_conditional(felem out, const felem in, limb mask)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in
    - mask
    argTypes:
    - felem
    - smallfelem
    - limb
    constantsTouched: []
    func_position:
      end: 1234
      start: 1227
    functionDepth: 0
    functionLinenumber: 1227
    functionLinenumberEnd: 1234
    functionName: copy_small_conditional
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: copy_small_conditional(felem out, const smallfelem in, limb mask)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1258,1
    - Dst: smallfelem_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1260,1
    - Dst: smallfelem_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1261,1
    - Dst: smallfelem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1264,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1265,1
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1267,1
    - Dst: smallfelem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1271,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1272,1
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1274,1
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1276,1
    - Dst: smallfelem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1279,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1280,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1284,1
    - Dst: felem_small_sum
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1285,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1289,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1290,1
    - Dst: felem_sum
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1292,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1294,1
    - Dst: smallfelem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1298,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1299,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1302,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1303,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1311,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1315,1
    - Dst: felem_scalar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1316,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1320,1
    - Dst: smallfelem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1325,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1326,1
    - Dst: felem_diff_zero107
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1329,1
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1331,1
    - Dst: smallfelem_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1333,1
    - Dst: felem_small_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1336,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1337,1
    - Dst: smallfelem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1341,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1342,1
    - Dst: felem_small_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1345,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1346,1
    - Dst: felem_diff_zero107
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1349,1
    - Dst: felem_scalar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1351,1
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1353,1
    - Dst: smallfelem_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1354,1
    - Dst: point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1357,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1362,1
    - Dst: felem_scalar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1363,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1365,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1366,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1369,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1370,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1373,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1374,1
    - Dst: smallfelem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1377,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1378,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1379,1
    - Dst: felem_scalar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1380,1
    - Dst: felem_sum
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1381,1
    - Dst: felem_diff
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1383,1
    - Dst: felem_diff_zero107
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1387,1
    - Dst: felem_small_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1389,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1390,1
    - Dst: longfelem_scalar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1391,1
    - Dst: longfelem_diff
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1393,1
    - Dst: felem_reduce_zero105
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1395,1
    - Dst: copy_small_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1398,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1399,1
    - Dst: copy_small_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1400,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1401,1
    - Dst: copy_small_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1402,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1403,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1404,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1405,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1406,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 78
    argCount: 10
    argNames:
    - x3
    - y3
    - z3
    - x1
    - y1
    - z1
    - mixed
    - x2
    - y2
    - z2
    argTypes:
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    - int
    - smallfelem
    - smallfelem
    - smallfelem
    constantsTouched: []
    func_position:
      end: 1407
      start: 1248
    functionDepth: 2
    functionLinenumber: 1248
    functionLinenumberEnd: 1407
    functionName: point_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 11
    functionsReached:
    - felem_small_sum
    - felem_shrink
    - smallfelem_square
    - felem_reduce
    - copy_small_conditional
    - felem_square
    - felem_mul
    - smallfelem_is_zero
    - longfelem_scalar
    - felem_sum
    - felem_diff
    - copy_conditional
    - felem_scalar
    - longfelem_diff
    - felem_assign
    - smallfelem_mul
    - felem_diff_zero107
    - felem_reduce_zero105
    - point_double
    - felem_small_mul
    linkageType: ''
    returnType: void
    signature: "point_add(felem x3, felem y3, felem z3,\n                      const
      felem x1, const felem y1, const felem z1,\n                      const int mixed,
      const smallfelem x2,\n                      const smallfelem y2, const smallfelem
      z2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1419,1
    - Dst: smallfelem_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1420,1
    - Dst: smallfelem_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1421,1
    - Dst: point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1422,1
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1424,1
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1425,1
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 9
    argNames:
    - x3
    - y3
    - z3
    - x1
    - y1
    - z1
    - x2
    - y2
    - z2
    argTypes:
    - smallfelem
    - smallfelem
    - smallfelem
    - smallfelem
    - smallfelem
    - smallfelem
    - smallfelem
    - smallfelem
    - smallfelem
    constantsTouched: []
    func_position:
      end: 1427
      start: 1413
    functionDepth: 1
    functionLinenumber: 1413
    functionLinenumberEnd: 1427
    functionName: point_add_small
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - felem_shrink
    - point_add
    - smallfelem_expand
    linkageType: ''
    returnType: void
    signature: "point_add_small(smallfelem x3, smallfelem y3, smallfelem z3,\n                            smallfelem
      x1, smallfelem y1, smallfelem z1,\n                            smallfelem x2,
      smallfelem y2, smallfelem z2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1635,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - idx
    - size
    - pre_comp
    - out
    argTypes:
    - u64
    - unsigned int
    - smallfelem[][]
    - smallfelem[]
    constantsTouched: []
    func_position:
      end: 1648
      start: 1629
    functionDepth: 0
    functionLinenumber: 1629
    functionLinenumberEnd: 1648
    functionName: select_point
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "select_point(const u64 idx, unsigned int size,\n                         const
      smallfelem pre_comp[16][3], smallfelem out[3])"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - in
    - i
    argTypes:
    - felem_bytearray
    - int
    constantsTouched: []
    func_position:
      end: 1656
      start: 1651
    functionDepth: 0
    functionLinenumber: 1651
    functionLinenumberEnd: 1656
    functionName: get_bit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: get_bit(const felem_bytearray in, int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1679,1
    - Dst: point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1691,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1696,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1697,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1698,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1699,1
    - Dst: select_point
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1701,1
    - Dst: point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1705,1
    - Dst: smallfelem_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1708,1
    - Dst: smallfelem_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1709,1
    - Dst: smallfelem_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1710,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1715,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1716,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1717,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1718,1
    - Dst: select_point
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1720,1
    - Dst: point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1722,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1730,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1731,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1732,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1733,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1734,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1735,1
    - Dst: ec_GFp_nistp_recode_scalar_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1736,1
    - Dst: select_point
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1741,1
    - Dst: smallfelem_neg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1742,1
    - Dst: copy_small_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1744,1
    - Dst: felem_contract
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1745,1
    - Dst: point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1748,1
    - Dst: smallfelem_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1752,1
    - Dst: smallfelem_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1753,1
    - Dst: smallfelem_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1754,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1760,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1761,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1762,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 54
    argCount: 9
    argNames:
    - x_out
    - y_out
    - z_out
    - scalars
    - num_points
    - g_scalar
    - mixed
    - pre_comp
    - g_pre_comp
    argTypes:
    - felem
    - felem
    - felem
    - felem_bytearray[]
    - unsigned
    - u8*
    - int
    - smallfelem[][][]
    - smallfelem[][][]
    constantsTouched: []
    func_position:
      end: 1763
      start: 1665
    functionDepth: 1
    functionLinenumber: 1665
    functionLinenumberEnd: 1763
    functionName: batch_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 1
    functionsReached:
    - ec_GFp_nistp_recode_scalar_bits
    - smallfelem_expand
    - select_point
    - memset
    - smallfelem_neg
    - felem_assign
    - get_bit
    - copy_small_conditional
    - felem_contract
    - point_double
    - point_add
    linkageType: ''
    returnType: void
    signature: "batch_mul(felem x_out, felem y_out, felem z_out,\n                      const
      felem_bytearray scalars[],\n                      const unsigned num_points,
      const u8 *g_scalar,\n                      const int mixed, const smallfelem
      pre_comp[][17][3],\n                      const smallfelem g_pre_comp[2][16][3])"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1827
      start: 1772
    functionDepth: 0
    functionLinenumber: 1772
    functionLinenumberEnd: 1827
    functionName: EC_GFp_nistp256_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: '*EC_GFp_nistp256_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1836,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1839,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1845,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1847,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1848,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1834
    functionDepth: 0
    functionLinenumber: 1834
    functionLinenumberEnd: 1852
    functionName: nistp256_pre_comp_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - ECerr
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: NISTP256_PRE_COMP
    signature: '*nistp256_pre_comp_new()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - NISTP256_PRE_COMP*
    constantsTouched: []
    func_position:
      end: 1860
      start: 1854
    functionDepth: 0
    functionLinenumber: 1854
    functionLinenumberEnd: 1860
    functionName: EC_nistp256_pre_comp_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - CRYPTO_atomic_add
    linkageType: ''
    returnType: NISTP256_PRE_COMP
    signature: '*EC_nistp256_pre_comp_dup(NISTP256_PRE_COMP *p)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1869,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1870,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1873,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1875,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1876,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pre
    argTypes:
    - NISTP256_PRE_COMP*
    constantsTouched: []
    func_position:
      end: 1877
      start: 1862
    functionDepth: 0
    functionLinenumber: 1862
    functionLinenumberEnd: 1877
    functionName: EC_nistp256_pre_comp_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - CRYPTO_atomic_add
    - OPENSSL_free
    - CRYPTO_THREAD_lock_free
    - REF_ASSERT_ISNT
    - REF_PRINT_COUNT
    linkageType: ''
    returnType: void
    signature: EC_nistp256_pre_comp_free(NISTP256_PRE_COMP *pre)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ec_GFp_simple_group_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 1890
      start: 1884
    functionDepth: 1
    functionLinenumber: 1884
    functionLinenumberEnd: 1890
    functionName: ec_GFp_nistp256_group_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - ec_GFp_simple_group_init
    linkageType: ''
    returnType: int
    signature: ec_GFp_nistp256_group_init(EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1901,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1903,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1904,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1905,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1906,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1908,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1909,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1910,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1911,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1911,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1911,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1912,1
    - Dst: ec_GFp_simple_group_set_curve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1917,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1919,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1920,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1922
      start: 1892
    functionDepth: 4
    functionLinenumber: 1892
    functionLinenumberEnd: 1922
    functionName: ec_GFp_nistp256_group_set_curve
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - ec_GFp_simple_group_set_curve
    - BN_bin2bn
    - BN_cmp
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_free
    - BN_CTX_new
    - BN_CTX_get
    - ECerr
    linkageType: ''
    returnType: int
    signature: "ec_GFp_nistp256_group_set_curve(EC_GROUP *group, const BIGNUM *p,\n
      \                                   const BIGNUM *a, const BIGNUM *b,\n                                    BN_CTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1937,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1938,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1942,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1942,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1943,1
    - Dst: felem_inv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1945,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1946,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1947,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1948,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1949,1
    - Dst: felem_contract
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1950,1
    - Dst: smallfelem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1952,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1953,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1958,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1959,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1960,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1961,1
    - Dst: felem_contract
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1962,1
    - Dst: smallfelem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1964,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1965,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1971
      start: 1928
    functionDepth: 5
    functionLinenumber: 1928
    functionLinenumberEnd: 1971
    functionName: ec_GFp_nistp256_point_get_affine_coordinates
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - felem_mul
    - felem_inv
    - EC_POINT_is_at_infinity
    - felem_reduce
    - BN_to_felem
    - felem_square
    - felem_contract
    - ECerr
    - smallfelem_to_BN
    linkageType: ''
    returnType: int
    signature: "ec_GFp_nistp256_point_get_affine_coordinates(const EC_GROUP *group,\n
      \                                                const EC_POINT *point,\n                                                 BIGNUM
      *x, BIGNUM *y,\n                                                 BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ec_GFp_nistp_points_make_affine_internal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:1981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - num
    - points
    - tmp_smallfelems
    argTypes:
    - size_t
    - smallfelem[][]
    - smallfelem[]
    constantsTouched: []
    func_position:
      end: 2001
      start: 1974
    functionDepth: 1
    functionLinenumber: 1974
    functionLinenumberEnd: 2001
    functionName: make_points_affine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 2
    functionsReached:
    - ec_GFp_nistp_points_make_affine_internal
    linkageType: ''
    returnType: void
    signature: "make_points_affine(size_t num, smallfelem points[][3],\n                               smallfelem
      tmp_smallfelems[])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2019,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2034,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2036,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2037,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2038,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2039,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2040,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2051,1
    - Dst: smallfelem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2055,1
    - Dst: smallfelem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2056,1
    - Dst: smallfelem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2057,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2058,1
    - Dst: EC_POINT_set_Jprojective_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2061,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2065,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2083,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2084,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2087,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2090,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2098,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2099,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2107,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2117,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2118,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2123,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2124,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2127,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2129,1
    - Dst: flip_endian
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2130,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2132,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2133,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2134,1
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2136,1
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2137,1
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2138,1
    - Dst: point_add_small
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2141,1
    - Dst: point_double_small
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2148,1
    - Dst: make_points_affine
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2159,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2164,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2166,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2166,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2171,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2172,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2175,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2177,1
    - Dst: flip_endian
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2178,1
    - Dst: batch_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2180,1
    - Dst: batch_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2186,1
    - Dst: felem_contract
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2190,1
    - Dst: felem_contract
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2191,1
    - Dst: felem_contract
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2192,1
    - Dst: smallfelem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2193,1
    - Dst: smallfelem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2193,1
    - Dst: smallfelem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2194,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2195,1
    - Dst: EC_POINT_set_Jprojective_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2198,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2201,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2202,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2203,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2204,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2205,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2206,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 115
    argCount: 7
    argNames:
    - group
    - r
    - scalar
    - num
    - points
    - scalars
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - size_t
    - EC_POINT*[]
    - BIGNUM*[]
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 2208
      start: 2007
    functionDepth: 5
    functionLinenumber: 2007
    functionLinenumberEnd: 2208
    functionName: ec_GFp_nistp256_points_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - felem_shrink
    - smallfelem
    - BN_to_felem
    - felem_contract
    - BN_CTX_get
    - ECerr
    - EC_POINT_set_Jprojective_coordinates_GFp
    - make_points_affine
    - batch_mul
    - EC_POINT_free
    - BN_nnmod
    - BN_CTX_end
    - point_double_small
    - BN_CTX_start
    - EC_POINT_cmp
    - BN_CTX_new
    - memset
    - BN_is_negative
    - point_add_small
    - OPENSSL_free
    - smallfelem_to_BN
    - EC_GROUP_get0_generator
    - EC_POINT_new
    - BN_num_bits
    - BN_CTX_free
    - flip_endian
    - BN_bn2bin
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "ec_GFp_nistp256_points_mul(const EC_GROUP *group, EC_POINT *r,\n                               const
      BIGNUM *scalar, size_t num,\n                               const EC_POINT *points[],\n
      \                              const BIGNUM *scalars[], BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_pre_comp_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2222,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2224,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2226,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2227,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2227,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2232,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2235,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2236,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2237,1
    - Dst: nistp256_pre_comp_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2239,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2244,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2245,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2248,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2249,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2250,1
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2252,1
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2253,1
    - Dst: felem_shrink
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2254,1
    - Dst: point_double_small
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2260,1
    - Dst: point_double_small
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2265,1
    - Dst: point_double_small
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2274,1
    - Dst: point_double_small
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2280,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2290,1
    - Dst: point_add_small
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2293,1
    - Dst: point_add_small
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2299,1
    - Dst: point_add_small
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2305,1
    - Dst: point_add_small
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2313,1
    - Dst: point_add_small
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2320,1
    - Dst: make_points_affine
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2331,1
    - Dst: SETPRECOMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2334,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2339,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2340,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2341,1
    - Dst: EC_nistp256_pre_comp_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2342,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 70
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 2344
      start: 2210
    functionDepth: 4
    functionLinenumber: 2210
    functionLinenumberEnd: 2344
    functionName: ec_GFp_nistp256_precompute_mult
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - EC_POINT_set_affine_coordinates_GFp
    - EC_nistp256_pre_comp_free
    - felem_shrink
    - BN_bin2bn
    - BN_to_felem
    - BN_CTX_get
    - make_points_affine
    - EC_POINT_free
    - BN_CTX_end
    - point_double_small
    - BN_CTX_start
    - EC_POINT_cmp
    - BN_CTX_new
    - SETPRECOMP
    - EC_pre_comp_free
    - memset
    - point_add_small
    - nistp256_pre_comp_new
    - EC_POINT_new
    - memcpy
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: ec_GFp_nistp256_precompute_mult(EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HAVEPRECOMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c:2348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 2349
      start: 2346
    functionDepth: 0
    functionLinenumber: 2346
    functionLinenumberEnd: 2349
    functionName: ec_GFp_nistp256_have_precompute_mult
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - HAVEPRECOMP
    linkageType: ''
    returnType: int
    signature: ec_GFp_nistp256_have_precompute_mult(const EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 75
    functionName: EC_GFp_nist_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: '*EC_GFp_nist_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ec_GFp_simple_group_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_GROUP*
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: ec_GFp_nist_group_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c
    functionUses: 0
    functionsReached:
    - ec_GFp_simple_group_copy
    linkageType: ''
    returnType: int
    signature: ec_GFp_nist_group_copy(EC_GROUP *dest, const EC_GROUP *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:91,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:94,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:96,1
    - Dst: BN_get0_nist_prime_192
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:96,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:98,1
    - Dst: BN_get0_nist_prime_224
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:98,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:100,1
    - Dst: BN_get0_nist_prime_256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:100,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:102,1
    - Dst: BN_get0_nist_prime_384
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:102,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:104,1
    - Dst: BN_get0_nist_prime_521
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:104,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:107,1
    - Dst: ec_GFp_simple_group_set_curve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:111,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:114,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:115,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 117
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 117
    functionName: ec_GFp_nist_group_set_curve
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c
    functionUses: 0
    functionsReached:
    - BN_get0_nist_prime_192
    - ec_GFp_simple_group_set_curve
    - BN_CTX_end
    - BN_get0_nist_prime_384
    - BN_CTX_start
    - BN_CTX_free
    - BN_CTX_new
    - BN_get0_nist_prime_224
    - BN_ucmp
    - ECerr
    - BN_get0_nist_prime_256
    - BN_get0_nist_prime_521
    linkageType: ''
    returnType: int
    signature: "ec_GFp_nist_group_set_curve(EC_GROUP *group, const BIGNUM *p,\n                                const
      BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:126,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:130,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:133,1
    - Dst: EC_GROUP*::field_mod_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:135,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:140,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 5
    argNames:
    - group
    - r
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 142
      start: 119
    functionDepth: 5
    functionLinenumber: 119
    functionLinenumberEnd: 142
    functionName: ec_GFp_nist_field_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c
    functionUses: 0
    functionsReached:
    - BN_mul
    - BN_CTX_free
    - EC_GROUP*::field_mod_func
    - BN_CTX_new
    - ECerr
    linkageType: ''
    returnType: int
    signature: "ec_GFp_nist_field_mul(const EC_GROUP *group, BIGNUM *r, const BIGNUM
      *a,\n                          const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:151,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:155,1
    - Dst: BN_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:158,1
    - Dst: EC_GROUP*::field_mod_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:160,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c:165,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 167
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 167
    functionName: ec_GFp_nist_field_sqr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    - BN_sqr
    - EC_GROUP*::field_mod_func
    - BN_CTX_new
    - ECerr
    linkageType: ''
    returnType: int
    signature: "ec_GFp_nist_field_sqr(const EC_GROUP *group, BIGNUM *r, const BIGNUM
      *a,\n                          BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 74
    functionName: EC_GFp_simple_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: '*EC_GFp_simple_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:92,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:93,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:94,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:96,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:97,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 103
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 103
    functionName: ec_GFp_simple_group_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 2
    functionsReached:
    - BN_new
    - BN_free
    linkageType: ''
    returnType: int
    signature: ec_GFp_simple_group_init(EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:107,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:108,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: ec_GFp_simple_group_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: void
    signature: ec_GFp_simple_group_finish(EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:114,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:115,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: ec_GFp_simple_group_clear_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: ec_GFp_simple_group_clear_finish(EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:121,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:123,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_GROUP*
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 131
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 131
    functionName: ec_GFp_simple_group_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 1
    functionsReached:
    - BN_copy
    linkageType: ''
    returnType: int
    signature: ec_GFp_simple_group_copy(EC_GROUP *dest, const EC_GROUP *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:142,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:142,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:143,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:148,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:153,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:154,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:159,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:161,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:164,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:167,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:169,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:173,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:176,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:180,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:182,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:187,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:188,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 47
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 190
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 190
    functionName: ec_GFp_simple_group_set_curve
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 3
    functionsReached:
    - BN_is_odd
    - EC_GROUP*::meth::field_encode
    - BN_set_negative
    - BN_add_word
    - BN_nnmod
    - BN_cmp
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_free
    - BN_num_bits
    - BN_copy
    - BN_CTX_new
    - BN_CTX_get
    - ECerr
    linkageType: ''
    returnType: int
    signature: "ec_GFp_simple_group_set_curve(EC_GROUP *group,\n                                  const
      BIGNUM *p, const BIGNUM *a,\n                                  const BIGNUM
      *b, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:199,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:206,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:211,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:215,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:220,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:224,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:233,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 235
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 235
    functionName: ec_GFp_simple_group_get_curve
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::field_decode
    - BN_CTX_free
    - BN_copy
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: "ec_GFp_simple_group_get_curve(const EC_GROUP *group, BIGNUM *p, BIGNUM
      *a,\n                                  BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: ec_GFp_simple_group_get_degree
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: ec_GFp_simple_group_get_degree(const EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:250,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:252,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:257,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:258,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:259,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:260,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:261,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:262,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:267,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:269,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:272,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:274,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:283,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:284,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:286,1
    - Dst: BN_mod_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:287,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:289,1
    - Dst: BN_lshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:291,1
    - Dst: BN_mod_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:295,1
    - Dst: BN_mul_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:297,1
    - Dst: BN_mod_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:301,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:303,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:310,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:311,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 68
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 313
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 313
    functionName: ec_GFp_simple_group_check_discriminant
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_mul_word
    - BN_mod_mul
    - BN_is_zero
    - BN_mod_sqr
    - BN_lshift
    - BN_CTX_end
    - EC_GROUP*::meth::field_decode
    - BN_CTX_start
    - BN_CTX_free
    - BN_copy
    - BN_CTX_new
    - BN_CTX_get
    - ECerr
    - BN_mod_add
    linkageType: ''
    returnType: int
    signature: ec_GFp_simple_group_check_discriminant(const EC_GROUP *group, BN_CTX
      *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:317,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:318,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:319,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:323,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:324,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 329
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 329
    functionName: ec_GFp_simple_point_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_free
    linkageType: ''
    returnType: int
    signature: ec_GFp_simple_point_init(EC_POINT *point)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:333,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:334,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 336
      start: 331
    functionDepth: 3
    functionLinenumber: 331
    functionLinenumberEnd: 336
    functionName: ec_GFp_simple_point_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: void
    signature: ec_GFp_simple_point_finish(EC_POINT *point)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:340,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:341,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 344
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 344
    functionName: ec_GFp_simple_point_clear_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: ec_GFp_simple_point_clear_finish(EC_POINT *point)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:348,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:350,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_POINT*
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 357
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 357
    functionName: ec_GFp_simple_point_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_copy
    linkageType: ''
    returnType: int
    signature: ec_GFp_simple_point_copy(EC_POINT *dest, const EC_POINT *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - group
    - point
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 365
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 365
    functionName: ec_GFp_simple_point_set_to_infinity
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_zero
    linkageType: ''
    returnType: int
    signature: "ec_GFp_simple_point_set_to_infinity(const EC_GROUP *group,\n                                        EC_POINT
      *point)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:378,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:384,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:387,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:393,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:396,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:404,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:406,1
    - Dst: EC_GROUP*::meth::field_set_to_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:409,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:412,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:423,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 49
    argCount: 6
    argNames:
    - group
    - point
    - x
    - y
    - z
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 425
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 425
    functionName: ec_GFp_simple_set_Jprojective_coordinates_GFp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::field_encode
    - BN_nnmod
    - BN_CTX_free
    - BN_CTX_new
    - BN_is_one
    - EC_GROUP*::meth::field_set_to_one
    linkageType: ''
    returnType: int
    signature: "ec_GFp_simple_set_Jprojective_coordinates_GFp(const EC_GROUP *group,\n
      \                                                 EC_POINT *point,\n                                                  const
      BIGNUM *x,\n                                                  const BIGNUM *y,\n
      \                                                 const BIGNUM *z,\n                                                  BN_CTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:437,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:443,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:447,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:451,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:456,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:460,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:464,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:472,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 44
    argCount: 6
    argNames:
    - group
    - point
    - x
    - y
    - z
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 474
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 474
    functionName: ec_GFp_simple_get_Jprojective_coordinates_GFp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::field_decode
    - BN_CTX_free
    - BN_copy
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: "ec_GFp_simple_get_Jprojective_coordinates_GFp(const EC_GROUP *group,\n
      \                                                 const EC_POINT *point,\n                                                  BIGNUM
      *x, BIGNUM *y,\n                                                  BIGNUM *z,
      BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:485,1
    - Dst: EC_POINT_set_Jprojective_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:490,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 492
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 492
    functionName: ec_GFp_simple_point_set_affine_coordinates
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_value_one
    - ECerr
    - EC_POINT_set_Jprojective_coordinates_GFp
    linkageType: ''
    returnType: int
    signature: "ec_GFp_simple_point_set_affine_coordinates(const EC_GROUP *group,\n
      \                                              EC_POINT *point,\n                                               const
      BIGNUM *x,\n                                               const BIGNUM *y,
      BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:504,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:505,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:511,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:516,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:517,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:518,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:519,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:520,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:527,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:534,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:537,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:541,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:546,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:550,1
    - Dst: BN_mod_inverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:555,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:556,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:563,1
    - Dst: BN_mod_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:566,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:575,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:584,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:587,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:595,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:603,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:604,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 91
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 606
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 606
    functionName: ec_GFp_simple_point_get_affine_coordinates
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_mod_inverse
    - BN_mod_mul
    - BN_mod_sqr
    - EC_GROUP*::meth::field_mul
    - EC_POINT_is_at_infinity
    - BN_CTX_end
    - BN_CTX_start
    - EC_GROUP*::meth::field_decode
    - EC_GROUP*::meth::field_sqr
    - BN_copy
    - BN_CTX_free
    - BN_CTX_new
    - BN_CTX_get
    - BN_is_one
    - ECerr
    linkageType: ''
    returnType: int
    signature: "ec_GFp_simple_point_get_affine_coordinates(const EC_GROUP *group,\n
      \                                              const EC_POINT *point,\n                                               BIGNUM
      *x, BIGNUM *y,\n                                               BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_dbl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:620,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:621,1
    - Dst: EC_POINT_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:622,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:623,1
    - Dst: EC_POINT_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:624,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:631,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:636,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:637,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:638,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:639,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:640,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:641,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:642,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:643,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:655,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:657,1
    - Dst: field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:662,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:664,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:668,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:670,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:677,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:679,1
    - Dst: field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:684,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:686,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:690,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:692,1
    - Dst: BN_mod_sub_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:698,1
    - Dst: BN_mod_sub_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:700,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:705,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:706,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:708,1
    - Dst: EC_POINT_dbl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:709,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:714,1
    - Dst: BN_mod_add_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:722,1
    - Dst: BN_mod_add_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:724,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:731,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:735,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:738,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:741,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:744,1
    - Dst: field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:751,1
    - Dst: field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:753,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:755,1
    - Dst: BN_mod_sub_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:757,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:762,1
    - Dst: BN_mod_sub_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:764,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:769,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:771,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:773,1
    - Dst: BN_mod_sub_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:775,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:777,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:778,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:781,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:789,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:790,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 163
    argCount: 5
    argNames:
    - group
    - r
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 792
      start: 608
    functionDepth: 3
    functionLinenumber: 608
    functionLinenumberEnd: 792
    functionName: ec_GFp_simple_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - EC_POINT_dbl
    - BN_zero
    - BN_CTX_get
    - EC_POINT_copy
    - BN_mod_sub_quick
    - field_mul
    - BN_is_zero
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_new
    - BN_rshift1
    - BN_is_odd
    - BN_copy
    - BN_mod_lshift1_quick
    - BN_mod_add_quick
    - EC_POINT_is_at_infinity
    - BN_add
    - field_sqr
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: "ec_GFp_simple_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT
      *a,\n                      const EC_POINT *b, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:805,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:806,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:816,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:821,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:822,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:823,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:824,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:825,1
    - Dst: field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:837,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:839,1
    - Dst: BN_mod_add_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:841,1
    - Dst: BN_mod_add_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:843,1
    - Dst: field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:847,1
    - Dst: BN_mod_add_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:849,1
    - Dst: BN_mod_sub_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:851,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:853,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:855,1
    - Dst: BN_mod_add_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:857,1
    - Dst: field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:864,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:866,1
    - Dst: BN_mod_add_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:868,1
    - Dst: field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:870,1
    - Dst: field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:872,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:874,1
    - Dst: BN_mod_add_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:876,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:883,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:886,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:889,1
    - Dst: field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:895,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:897,1
    - Dst: BN_mod_lshift_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:899,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:904,1
    - Dst: field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:906,1
    - Dst: BN_mod_sub_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:908,1
    - Dst: field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:913,1
    - Dst: BN_mod_lshift_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:915,1
    - Dst: BN_mod_sub_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:920,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:922,1
    - Dst: BN_mod_sub_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:924,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:931,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:932,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 130
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 934
      start: 794
    functionDepth: 3
    functionLinenumber: 794
    functionLinenumberEnd: 934
    functionName: ec_GFp_simple_dbl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - field_mul
    - BN_mod_add_quick
    - EC_POINT_is_at_infinity
    - BN_CTX_end
    - BN_CTX_start
    - field_sqr
    - BN_CTX_free
    - BN_zero
    - BN_copy
    - BN_CTX_new
    - BN_CTX_get
    - BN_mod_lshift1_quick
    - BN_mod_sub_quick
    - BN_mod_lshift_quick
    linkageType: ''
    returnType: int
    signature: "ec_GFp_simple_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT
      *a,\n                      BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:938,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:938,1
    - Dst: BN_usub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:942,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 943
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 943
    functionName: ec_GFp_simple_invert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_is_zero
    - EC_POINT_is_at_infinity
    - BN_usub
    linkageType: ''
    returnType: int
    signature: ec_GFp_simple_invert(const EC_GROUP *group, EC_POINT *point, BN_CTX
      *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - group
    - point
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 948
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 948
    functionName: ec_GFp_simple_is_at_infinity
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: ec_GFp_simple_is_at_infinity(const EC_GROUP *group, const EC_POINT
      *point)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:961,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:969,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:974,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:975,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:976,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:977,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:978,1
    - Dst: field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:993,1
    - Dst: field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:997,1
    - Dst: field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:999,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1001,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1006,1
    - Dst: BN_mod_add_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1008,1
    - Dst: BN_mod_sub_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1010,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1012,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1015,1
    - Dst: BN_mod_add_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1017,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1019,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1024,1
    - Dst: BN_mod_add_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1026,1
    - Dst: BN_mod_add_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1032,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1034,1
    - Dst: BN_mod_add_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1037,1
    - Dst: field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1042,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1045,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1048,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1049,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 82
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1051
      start: 950
    functionDepth: 3
    functionLinenumber: 950
    functionLinenumberEnd: 1051
    functionName: ec_GFp_simple_is_on_curve
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_mod_add_quick
    - EC_POINT_is_at_infinity
    - BN_CTX_end
    - BN_CTX_start
    - field_sqr
    - BN_mod_sub_quick
    - BN_CTX_free
    - BN_CTX_new
    - BN_CTX_get
    - BN_ucmp
    - BN_mod_lshift1_quick
    - field_mul
    linkageType: ''
    returnType: int
    signature: "ec_GFp_simple_is_on_curve(const EC_GROUP *group, const EC_POINT *point,\n
      \                             BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1071,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1072,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1075,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1079,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1079,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1086,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1091,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1092,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1093,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1094,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1095,1
    - Dst: field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1107,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1109,1
    - Dst: field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1115,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1117,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1124,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1130,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1132,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1138,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1140,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1147,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1156,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1157,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 78
    argCount: 4
    argNames:
    - group
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1159
      start: 1053
    functionDepth: 2
    functionLinenumber: 1053
    functionLinenumberEnd: 1159
    functionName: ec_GFp_simple_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - EC_POINT_is_at_infinity
    - BN_cmp
    - BN_CTX_end
    - BN_CTX_start
    - field_sqr
    - BN_CTX_free
    - BN_CTX_new
    - BN_CTX_get
    - field_mul
    linkageType: ''
    returnType: int
    signature: "ec_GFp_simple_cmp(const EC_GROUP *group, const EC_POINT *a,\n                      const
      EC_POINT *b, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1168,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1172,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1177,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1178,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1179,1
    - Dst: EC_POINT_get_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1183,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1185,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1188,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1195,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1196,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1198
      start: 1161
    functionDepth: 2
    functionLinenumber: 1161
    functionLinenumberEnd: 1198
    functionName: ec_GFp_simple_make_affine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - EC_POINT_set_affine_coordinates_GFp
    - EC_POINT_get_affine_coordinates_GFp
    - EC_POINT_is_at_infinity
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_free
    - BN_CTX_new
    - BN_CTX_get
    - ECerr
    linkageType: ''
    returnType: int
    signature: "ec_GFp_simple_make_affine(const EC_GROUP *group, EC_POINT *point,\n
      \                             BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1213,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1218,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1219,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1220,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1224,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1228,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1238,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1239,1
    - Dst: EC_GROUP*::meth::field_set_to_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1243,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1246,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1252,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1253,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1258,1
    - Dst: BN_mod_inverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1268,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1269,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1278,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1280,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1289,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1294,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1300,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1303,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1308,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1310,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1319,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1322,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1324,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1327,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1329,1
    - Dst: EC_GROUP*::meth::field_set_to_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1333,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1336,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1346,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1347,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1352,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1354,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 121
    argCount: 4
    argNames:
    - group
    - num
    - points
    - ctx
    argTypes:
    - EC_GROUP*
    - size_t
    - EC_POINT*[]
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1357
      start: 1200
    functionDepth: 3
    functionLinenumber: 1200
    functionLinenumberEnd: 1357
    functionName: ec_GFp_simple_points_make_affine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_mod_inverse
    - EC_GROUP*::meth::field_encode
    - BN_clear_free
    - BN_is_zero
    - EC_GROUP*::meth::field_mul
    - BN_CTX_end
    - BN_CTX_start
    - EC_GROUP*::meth::field_sqr
    - BN_one
    - BN_copy
    - BN_CTX_free
    - BN_CTX_new
    - BN_CTX_get
    - ECerr
    - OPENSSL_free
    - OPENSSL_malloc
    - EC_GROUP*::meth::field_set_to_one
    linkageType: ''
    returnType: int
    signature: "ec_GFp_simple_points_make_affine(const EC_GROUP *group, size_t num,\n
      \                                    EC_POINT *points[], BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - r
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1363
      start: 1359
    functionDepth: 2
    functionLinenumber: 1359
    functionLinenumberEnd: 1363
    functionName: ec_GFp_simple_field_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_mod_mul
    linkageType: ''
    returnType: int
    signature: "ec_GFp_simple_field_mul(const EC_GROUP *group, BIGNUM *r, const BIGNUM
      *a,\n                            const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_mod_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c:1368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1369
      start: 1365
    functionDepth: 2
    functionLinenumber: 1365
    functionLinenumberEnd: 1369
    functionName: ec_GFp_simple_field_sqr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_mod_sqr
    linkageType: ''
    returnType: int
    signature: "ec_GFp_simple_field_sqr(const EC_GROUP *group, BIGNUM *r, const BIGNUM
      *a,\n                            BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_do_sign_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_sign.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dgst
    - dlen
    - eckey
    argTypes:
    - unsigned char*
    - int
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: ECDSA_do_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_sign.c
    functionUses: 2
    functionsReached:
    - ECDSA_do_sign_ex
    linkageType: ''
    returnType: ECDSA_SIG
    signature: '*ECDSA_do_sign(const unsigned char *dgst, int dlen, EC_KEY *eckey)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::meth::sign_sig
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_sign.c:24,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_sign.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - dgst
    - dlen
    - kinv
    - rp
    - eckey
    argTypes:
    - unsigned char*
    - int
    - BIGNUM*
    - BIGNUM*
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 27
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 27
    functionName: ECDSA_do_sign_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_sign.c
    functionUses: 2
    functionsReached:
    - ECerr
    - EC_KEY*::meth::sign_sig
    linkageType: ''
    returnType: ECDSA_SIG
    signature: "*ECDSA_do_sign_ex(const unsigned char *dgst, int dlen,\n                            const
      BIGNUM *kinv, const BIGNUM *rp,\n                            EC_KEY *eckey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_sign_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_sign.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - type
    - dgst
    - dlen
    - sig
    - siglen
    - eckey
    argTypes:
    - int
    - unsigned char*
    - int
    - unsigned char*
    - unsigned int*
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: ECDSA_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_sign.c
    functionUses: 1
    functionsReached:
    - ECDSA_sign_ex
    linkageType: ''
    returnType: int
    signature: "ECDSA_sign(int type, const unsigned char *dgst, int dlen, unsigned
      char\n               *sig, unsigned int *siglen, EC_KEY *eckey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::meth::sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_sign.c:40,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_sign.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 8
    argNames:
    - type
    - dgst
    - dlen
    - sig
    - siglen
    - kinv
    - r
    - eckey
    argTypes:
    - int
    - unsigned char*
    - int
    - unsigned char*
    - unsigned int*
    - BIGNUM*
    - BIGNUM*
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: ECDSA_sign_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_sign.c
    functionUses: 1
    functionsReached:
    - ECerr
    - EC_KEY*::meth::sign
    linkageType: ''
    returnType: int
    signature: "ECDSA_sign_ex(int type, const unsigned char *dgst, int dlen,\n                  unsigned
      char *sig, unsigned int *siglen, const BIGNUM *kinv,\n                  const
      BIGNUM *r, EC_KEY *eckey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::meth::sign_setup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_sign.c:49,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_sign.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - eckey
    - ctx_in
    - kinvp
    - rp
    argTypes:
    - EC_KEY*
    - BN_CTX*
    - BIGNUM**
    - BIGNUM**
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: ECDSA_sign_setup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_sign.c
    functionUses: 0
    functionsReached:
    - ECerr
    - EC_KEY*::meth::sign_setup
    linkageType: ''
    returnType: int
    signature: "ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp,\n
      \                    BIGNUM **rp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:52,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:54,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:63,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:65,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 70
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 70
    functionName: ec_pre_comp_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - ECerr
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EC_PRE_COMP
    signature: '*ec_pre_comp_new(const EC_GROUP *group)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pre
    argTypes:
    - EC_PRE_COMP*
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: EC_ec_pre_comp_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c
    functionUses: 0
    functionsReached:
    - CRYPTO_atomic_add
    linkageType: ''
    returnType: EC_PRE_COMP
    signature: '*EC_ec_pre_comp_dup(EC_PRE_COMP *pre)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:87,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:88,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:91,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:97,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:98,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:100,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - pre
    argTypes:
    - EC_PRE_COMP*
    constantsTouched: []
    func_position:
      end: 102
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 102
    functionName: EC_ec_pre_comp_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c
    functionUses: 0
    functionsReached:
    - EC_POINT_free
    - CRYPTO_THREAD_lock_free
    - CRYPTO_atomic_add
    - OPENSSL_free
    - REF_ASSERT_ISNT
    - REF_PRINT_COUNT
    linkageType: ''
    returnType: void
    signature: EC_ec_pre_comp_free(EC_PRE_COMP *pre)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:155,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:160,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:165,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:171,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:177,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:179,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:187,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:195,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:207,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:221,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:222,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:223,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:225,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:232,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:244,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:244,1
    - Dst: EC_window_bits_for_scalar_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:245,1
    - Dst: bn_compute_wNAF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:249,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:262,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:271,1
    - Dst: bn_compute_wNAF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:279,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:314,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:315,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:329,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:330,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:342,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:344,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:345,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:348,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:353,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:354,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:361,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:371,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:373,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:383,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:390,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:394,1
    - Dst: EC_POINT_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:406,1
    - Dst: EC_POINT_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:409,1
    - Dst: EC_POINT_dbl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:414,1
    - Dst: EC_POINT_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:417,1
    - Dst: EC_POINTs_make_affine
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:424,1
    - Dst: EC_POINT_dbl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:431,1
    - Dst: EC_POINT_invert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:448,1
    - Dst: EC_POINT_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:457,1
    - Dst: EC_POINT_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:461,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:471,1
    - Dst: EC_POINT_invert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:475,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:482,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:483,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:484,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:485,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:490,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:492,1
    - Dst: EC_POINT_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:496,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:498,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:500,1
    CyclomaticComplexity: 99
    EdgeCount: 99
    ICount: 259
    argCount: 7
    argNames:
    - group
    - r
    - scalar
    - num
    - points
    - scalars
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - size_t
    - EC_POINT*[]
    - BIGNUM*[]
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 502
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 502
    functionName: ec_wNAF_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c
    functionUses: 0
    functionsReached:
    - EC_POINT_dbl
    - ECerr
    - EC_POINT_copy
    - EC_POINT_free
    - EC_window_bits_for_scalar_size
    - EC_POINT_set_to_infinity
    - EC_POINT_cmp
    - BN_CTX_new
    - EC_POINT_invert
    - EC_POINTs_make_affine
    - OPENSSL_free
    - EC_POINT_clear_free
    - EC_GROUP_get0_generator
    - BN_CTX_free
    - BN_num_bits
    - memcpy
    - EC_POINT_new
    - bn_compute_wNAF
    - OPENSSL_malloc
    - EC_POINT_add
    linkageType: ''
    returnType: int
    signature: "ec_wNAF_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *scalar,\n
      \               size_t num, const EC_POINT *points[], const BIGNUM *scalars[],\n
      \               BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_pre_comp_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:536,1
    - Dst: ec_pre_comp_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:537,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:540,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:542,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:547,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:552,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:554,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:557,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:558,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:562,1
    - Dst: EC_window_bits_for_scalar_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:571,1
    - Dst: EC_window_bits_for_scalar_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:573,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:584,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:586,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:593,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:594,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:599,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:600,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:601,1
    - Dst: EC_POINT_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:605,1
    - Dst: EC_POINT_dbl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:612,1
    - Dst: EC_POINT_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:615,1
    - Dst: EC_POINT_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:622,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:633,1
    - Dst: EC_POINT_dbl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:637,1
    - Dst: EC_POINT_dbl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:640,1
    - Dst: EC_POINTs_make_affine
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:646,1
    - Dst: SETPRECOMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:656,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:662,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:663,1
    - Dst: EC_ec_pre_comp_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:664,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:669,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:670,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:672,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:673,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 113
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 675
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 675
    functionName: ec_wNAF_precompute_mult
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c
    functionUses: 0
    functionsReached:
    - EC_POINT_dbl
    - ec_pre_comp_new
    - ECerr
    - EC_POINT_copy
    - EC_POINT_free
    - EC_window_bits_for_scalar_size
    - BN_is_zero
    - EC_GROUP_get0_order
    - BN_CTX_end
    - EC_ec_pre_comp_free
    - BN_CTX_start
    - BN_CTX_new
    - SETPRECOMP
    - EC_pre_comp_free
    - EC_POINTs_make_affine
    - OPENSSL_free
    - EC_GROUP_get0_generator
    - EC_POINT_new
    - BN_num_bits
    - BN_CTX_free
    - OPENSSL_malloc
    - EC_POINT_add
    linkageType: ''
    returnType: int
    signature: ec_wNAF_precompute_mult(EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HAVEPRECOMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 680
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 680
    functionName: ec_wNAF_have_precompute_mult
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c
    functionUses: 0
    functionsReached:
    - HAVEPRECOMP
    linkageType: ''
    returnType: int
    signature: ec_wNAF_have_precompute_mult(const EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:47,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:48,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:52,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:54,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:56,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:58,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:60,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:62,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:64,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:70,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 4
    argNames:
    - group
    - x
    - z
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 72
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 72
    functionName: gf2m_Mdouble
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::field_mul
    - BN_CTX_end
    - BN_CTX_start
    - EC_GROUP*::meth::field_sqr
    - BN_CTX_get
    - BN_GF2m_add
    linkageType: ''
    returnType: int
    signature: "gf2m_Mdouble(const EC_GROUP *group, BIGNUM *x, BIGNUM *z,\n                        BN_CTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:89,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:90,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:91,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:95,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:97,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:99,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:101,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:103,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:105,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:107,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:109,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:115,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 36
    argCount: 7
    argNames:
    - group
    - x
    - x1
    - z1
    - x2
    - z2
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 117
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 117
    functionName: gf2m_Madd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::field_mul
    - BN_CTX_end
    - BN_CTX_start
    - EC_GROUP*::meth::field_sqr
    - BN_copy
    - BN_CTX_get
    - BN_GF2m_add
    linkageType: ''
    returnType: int
    signature: "gf2m_Madd(const EC_GROUP *group, const BIGNUM *x, BIGNUM *x1,\n                     BIGNUM
      *z1, const BIGNUM *x2, const BIGNUM *z2,\n                     BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:136,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:137,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:138,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:142,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:143,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:145,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:151,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:152,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:153,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:154,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:158,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:161,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:164,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:166,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:168,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:170,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:172,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:175,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:177,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:179,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:181,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:183,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:186,1
    - Dst: EC_GROUP*::meth::field_div
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:188,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:190,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:192,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:194,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:197,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:199,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:205,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 82
    argCount: 8
    argNames:
    - group
    - x
    - y
    - x1
    - z1
    - x2
    - z2
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 207
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 207
    functionName: gf2m_Mxy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c
    functionUses: 0
    functionsReached:
    - BN_is_zero
    - EC_GROUP*::meth::field_mul
    - EC_GROUP*::meth::field_div
    - BN_CTX_end
    - BN_CTX_start
    - EC_GROUP*::meth::field_sqr
    - BN_one
    - BN_zero
    - BN_copy
    - BN_CTX_get
    - BN_GF2m_add
    linkageType: ''
    returnType: int
    signature: "gf2m_Mxy(const EC_GROUP *group, const BIGNUM *x, const BIGNUM *y,\n
      \                   BIGNUM *x1, BIGNUM *z1, BIGNUM *x2, BIGNUM *z2,\n                    BN_CTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:230,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:235,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:236,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:237,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:247,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:248,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:249,1
    - Dst: bn_get_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:256,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:257,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:258,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:259,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:260,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:263,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:265,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:267,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:269,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:271,1
    - Dst: bn_get_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:275,1
    - Dst: bn_get_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:277,1
    - Dst: bn_get_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:288,1
    - Dst: BN_consttime_swap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:290,1
    - Dst: BN_consttime_swap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:291,1
    - Dst: gf2m_Madd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:292,1
    - Dst: gf2m_Mdouble
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:294,1
    - Dst: BN_consttime_swap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:296,1
    - Dst: BN_consttime_swap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:297,1
    - Dst: gf2m_Mxy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:304,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:308,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:311,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:317,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:318,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:323,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 85
    argCount: 5
    argNames:
    - group
    - r
    - scalar
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - EC_POINT*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 325
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 325
    functionName: ec_GF2m_montgomery_point_multiply
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::field_sqr
    - BN_CTX_get
    - ECerr
    - BN_consttime_swap
    - BN_is_zero
    - EC_POINT_set_to_infinity
    - BN_CTX_end
    - BN_CTX_start
    - bn_wexpand
    - bn_get_words
    - BN_GF2m_mod_arr
    - BN_GF2m_add
    - gf2m_Madd
    - BN_set_negative
    - bn_get_top
    - EC_POINT_is_at_infinity
    - gf2m_Mxy
    - gf2m_Mdouble
    - BN_one
    linkageType: ''
    returnType: int
    signature: "ec_GF2m_montgomery_point_multiply(const EC_GROUP *group,\n                                             EC_POINT
      *r,\n                                             const BIGNUM *scalar,\n                                             const
      EC_POINT *point,\n                                             BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:344,1
    - Dst: EC_GROUP_have_precompute_mult
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:356,1
    - Dst: ec_wNAF_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:357,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:361,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:363,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:366,1
    - Dst: ec_GF2m_montgomery_point_multiply
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:370,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:373,1
    - Dst: EC_GROUP*::meth::invert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:374,1
    - Dst: EC_GROUP*::meth::add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:376,1
    - Dst: ec_GF2m_montgomery_point_multiply
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:381,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:384,1
    - Dst: EC_GROUP*::meth::invert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:385,1
    - Dst: EC_GROUP*::meth::add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:387,1
    - Dst: EC_POINT_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:391,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:397,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:398,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:399,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 54
    argCount: 7
    argNames:
    - group
    - r
    - scalar
    - num
    - points
    - scalars
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - size_t
    - EC_POINT*[]
    - BIGNUM*[]
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 401
      start: 332
    functionDepth: 4
    functionLinenumber: 332
    functionLinenumberEnd: 401
    functionName: ec_GF2m_simple_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c
    functionUses: 0
    functionsReached:
    - EC_POINT_free
    - ec_wNAF_mul
    - EC_POINT_set_to_infinity
    - ec_GF2m_montgomery_point_multiply
    - EC_GROUP*::meth::add
    - BN_is_negative
    - EC_POINT_new
    - BN_CTX_free
    - BN_CTX_new
    - EC_GROUP*::meth::invert
    - EC_GROUP_have_precompute_mult
    - EC_POINT_copy
    linkageType: ''
    returnType: int
    signature: "ec_GF2m_simple_mul(const EC_GROUP *group, EC_POINT *r,\n                       const
      BIGNUM *scalar, size_t num,\n                       const EC_POINT *points[],
      const BIGNUM *scalars[],\n                       BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ec_wNAF_precompute_mult
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 411
      start: 408
    functionDepth: 3
    functionLinenumber: 408
    functionLinenumberEnd: 411
    functionName: ec_GF2m_precompute_mult
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c
    functionUses: 0
    functionsReached:
    - ec_wNAF_precompute_mult
    linkageType: ''
    returnType: int
    signature: ec_GF2m_precompute_mult(EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ec_wNAF_have_precompute_mult
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: ec_GF2m_have_precompute_mult
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c
    functionUses: 0
    functionsReached:
    - ec_wNAF_have_precompute_mult
    linkageType: ''
    returnType: int
    signature: ec_GF2m_have_precompute_mult(const EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:31,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:34,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:41,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:42,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:43,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:44,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:45,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:56,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:60,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:62,1
    - Dst: BN_mod_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:65,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:67,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:73,1
    - Dst: BN_mod_add_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:75,1
    - Dst: BN_mod_sub_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:77,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:81,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:83,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:87,1
    - Dst: BN_mod_add_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:91,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:97,1
    - Dst: BN_mod_add_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:99,1
    - Dst: BN_mod_add_quick
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:102,1
    - Dst: BN_mod_sqrt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:106,1
    - Dst: ERR_GET_LIB
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:109,1
    - Dst: ERR_GET_REASON
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:110,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:111,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:112,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:115,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:120,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:121,1
    - Dst: BN_kronecker
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:124,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:129,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:135,1
    - Dst: BN_usub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:139,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:142,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:143,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:148,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:154,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:155,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 112
    argCount: 5
    argNames:
    - group
    - point
    - x_
    - y_bit
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - int
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 157
      start: 21
    functionDepth: 7
    functionLinenumber: 21
    functionLinenumberEnd: 157
    functionName: ec_GFp_simple_set_compressed_coordinates
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c
    functionUses: 2
    functionsReached:
    - EC_POINT_set_affine_coordinates_GFp
    - EC_GROUP*::meth::field_sqr
    - EC_GROUP*::meth::field_decode
    - BN_CTX_get
    - ECerr
    - BN_kronecker
    - BN_mod_sub_quick
    - ERR_GET_REASON
    - BN_nnmod
    - BN_usub
    - BN_mod_sqr
    - BN_is_zero
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_new
    - BN_mod_mul
    - BN_is_odd
    - ERR_GET_LIB
    - EC_GROUP*::meth::field_mul
    - BN_mod_sqrt
    - BN_mod_lshift1_quick
    - ERR_clear_error
    - BN_mod_add_quick
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: "ec_GFp_simple_set_compressed_coordinates(const EC_GROUP *group,\n
      \                                            EC_POINT *point,\n                                             const
      BIGNUM *x_, int y_bit,\n                                             BN_CTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:172,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:176,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:180,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:189,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:197,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:202,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:207,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:209,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:210,1
    - Dst: EC_POINT_get_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:214,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:218,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:225,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:227,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:234,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:237,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:243,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:245,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:252,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:257,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:263,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:264,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:269,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:270,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 90
    argCount: 6
    argNames:
    - group
    - point
    - form
    - buf
    - len
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - point_conversion_form_t
    - unsigned char*
    - size_t
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 272
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 272
    functionName: ec_GFp_simple_point2oct
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c
    functionUses: 1
    functionsReached:
    - BN_is_odd
    - EC_POINT_get_affine_coordinates_GFp
    - EC_POINT_is_at_infinity
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_free
    - BN_CTX_new
    - BN_CTX_get
    - ECerr
    - BN_bn2bin
    - BN_num_bytes
    linkageType: ''
    returnType: size_t
    signature: "ec_GFp_simple_point2oct(const EC_GROUP *group, const EC_POINT *point,\n
      \                              point_conversion_form_t form,\n                               unsigned
      char *buf, size_t len, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:285,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:294,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:298,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:304,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:308,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:311,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:317,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:322,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:327,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:328,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:329,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:333,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:335,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:336,1
    - Dst: EC_POINT_set_compressed_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:341,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:345,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:347,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:348,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:352,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:353,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:362,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:369,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c:370,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 78
    argCount: 5
    argNames:
    - group
    - point
    - buf
    - len
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - unsigned char*
    - size_t
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 372
      start: 274
    functionDepth: 4
    functionLinenumber: 274
    functionLinenumberEnd: 372
    functionName: ec_GFp_simple_oct2point
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c
    functionUses: 1
    functionsReached:
    - BN_is_odd
    - EC_POINT_set_affine_coordinates_GFp
    - BN_bin2bn
    - EC_POINT_set_compressed_coordinates_GFp
    - EC_POINT_set_to_infinity
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_free
    - BN_CTX_new
    - BN_CTX_get
    - BN_ucmp
    - ECerr
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: "ec_GFp_simple_oct2point(const EC_GROUP *group, EC_POINT *point,\n
      \                           const unsigned char *buf, size_t len, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 73
    functionName: EC_GFp_mont_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: '*EC_GFp_mont_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ec_GFp_simple_group_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 4
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: ec_GFp_mont_group_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - ec_GFp_simple_group_init
    linkageType: ''
    returnType: int
    signature: ec_GFp_mont_group_init(EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:87,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:89,1
    - Dst: ec_GFp_simple_group_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: ec_GFp_mont_group_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - ec_GFp_simple_group_finish
    - BN_free
    - BN_MONT_CTX_free
    linkageType: ''
    returnType: void
    signature: ec_GFp_mont_group_finish(EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:96,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:98,1
    - Dst: ec_GFp_simple_group_clear_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: ec_GFp_mont_group_clear_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - ec_GFp_simple_group_clear_finish
    - BN_MONT_CTX_free
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: ec_GFp_mont_group_clear_finish(EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:105,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:107,1
    - Dst: ec_GFp_simple_group_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:110,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:114,1
    - Dst: BN_MONT_CTX_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:117,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:121,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:129,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_GROUP*
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 132
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 132
    functionName: ec_GFp_mont_group_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - BN_MONT_CTX_copy
    - BN_MONT_CTX_new
    - BN_clear_free
    - BN_MONT_CTX_free
    - ec_GFp_simple_group_copy
    linkageType: ''
    returnType: int
    signature: ec_GFp_mont_group_copy(EC_GROUP *dest, const EC_GROUP *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:142,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:144,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:148,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:153,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:156,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:157,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:160,1
    - Dst: BN_to_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:163,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:163,1
    - Dst: ec_GFp_simple_group_set_curve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:171,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:174,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:176,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:181,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:182,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:183,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 185
      start: 134
    functionDepth: 5
    functionLinenumber: 134
    functionLinenumberEnd: 185
    functionName: ec_GFp_mont_group_set_curve
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_value_one
    - BN_MONT_CTX_new
    - BN_free
    - ec_GFp_simple_group_set_curve
    - BN_MONT_CTX_free
    - BN_CTX_free
    - BN_to_montgomery
    - BN_CTX_new
    - ECerr
    - BN_MONT_CTX_set
    linkageType: ''
    returnType: int
    signature: "ec_GFp_mont_group_set_curve(EC_GROUP *group, const BIGNUM *p,\n                                const
      BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:191,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - group
    - r
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 196
      start: 187
    functionDepth: 6
    functionLinenumber: 187
    functionLinenumberEnd: 196
    functionName: ec_GFp_mont_field_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - ECerr
    - BN_mod_mul_montgomery
    linkageType: ''
    returnType: int
    signature: "ec_GFp_mont_field_mul(const EC_GROUP *group, BIGNUM *r, const BIGNUM
      *a,\n                          const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:202,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 207
      start: 198
    functionDepth: 6
    functionLinenumber: 198
    functionLinenumberEnd: 207
    functionName: ec_GFp_mont_field_sqr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - ECerr
    - BN_mod_mul_montgomery
    linkageType: ''
    returnType: int
    signature: "ec_GFp_mont_field_sqr(const EC_GROUP *group, BIGNUM *r, const BIGNUM
      *a,\n                          BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:213,1
    - Dst: BN_to_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 218
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 218
    functionName: ec_GFp_mont_field_encode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - ECerr
    - BN_to_montgomery
    linkageType: ''
    returnType: int
    signature: "ec_GFp_mont_field_encode(const EC_GROUP *group, BIGNUM *r,\n                             const
      BIGNUM *a, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:224,1
    - Dst: BN_from_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 229
      start: 220
    functionDepth: 6
    functionLinenumber: 220
    functionLinenumberEnd: 229
    functionName: ec_GFp_mont_field_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - ECerr
    - BN_from_montgomery
    linkageType: ''
    returnType: int
    signature: "ec_GFp_mont_field_decode(const EC_GROUP *group, BIGNUM *r,\n                             const
      BIGNUM *a, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:235,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - group
    - r
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 242
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 242
    functionName: ec_GFp_mont_field_set_to_one
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - ECerr
    - BN_copy
    linkageType: ''
    returnType: int
    signature: "ec_GFp_mont_field_set_to_one(const EC_GROUP *group, BIGNUM *r,\n                                 BN_CTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_point2buf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c:21,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c:26,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - group
    - point
    - form
    - ret
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - point_conversion_form_t
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 31
      start: 13
    functionDepth: 4
    functionLinenumber: 13
    functionLinenumberEnd: 31
    functionName: EC_POINT_point2bn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c
    functionUses: 1
    functionsReached:
    - BN_bin2bn
    - OPENSSL_free
    - EC_POINT_point2buf
    linkageType: ''
    returnType: BIGNUM
    signature: "*EC_POINT_point2bn(const EC_GROUP *group,\n                          const
      EC_POINT *point,\n                          point_conversion_form_t form,\n
      \                         BIGNUM *ret, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c:40,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c:42,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c:46,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c:47,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c:52,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c:53,1
    - Dst: EC_POINT_oct2point
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c:59,1
    - Dst: EC_POINT_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c:61,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c:62,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c:66,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - group
    - bn
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - EC_POINT*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 68
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 68
    functionName: EC_POINT_bn2point
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c
    functionUses: 0
    functionsReached:
    - EC_POINT_oct2point
    - EC_POINT_new
    - EC_POINT_clear_free
    - OPENSSL_free
    - BN_bn2bin
    - OPENSSL_malloc
    - BN_num_bytes
    linkageType: ''
    returnType: EC_POINT
    signature: "*EC_POINT_bn2point(const EC_GROUP *group,\n                            const
      BIGNUM *bn, EC_POINT *point, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_point2buf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c:81,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c:86,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c:88,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - group
    - point
    - form
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - point_conversion_form_t
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 103
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 103
    functionName: EC_POINT_point2hex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_malloc
    - EC_POINT_point2buf
    linkageType: ''
    returnType: char
    signature: "*EC_POINT_point2hex(const EC_GROUP *group,\n                         const
      EC_POINT *point,\n                         point_conversion_form_t form, BN_CTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c:111,1
    - Dst: EC_POINT_bn2point
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c:114,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - group
    - buf
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - char*
    - EC_POINT*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 119
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 119
    functionName: EC_POINT_hex2point
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c
    functionUses: 0
    functionsReached:
    - EC_POINT_bn2point
    - BN_hex2bn
    - BN_clear_free
    linkageType: ''
    returnType: EC_POINT
    signature: "*EC_POINT_hex2point(const EC_GROUP *group,\n                             const
      char *buf, EC_POINT *point, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_check.c:25,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_check.c:27,1
    - Dst: EC_GROUP_check_discriminant
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_check.c:33,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_check.c:34,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_check.c:40,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_check.c:43,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_check.c:44,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_check.c:49,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_check.c:51,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_check.c:54,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_check.c:55,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_check.c:59,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_check.c:61,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_check.c:62,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_check.c:69,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_check.c:70,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 72
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 72
    functionName: EC_GROUP_check
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_check.c
    functionUses: 0
    functionsReached:
    - EC_POINT_free
    - BN_is_zero
    - EC_GROUP_get0_order
    - EC_POINT_is_on_curve
    - EC_POINT_is_at_infinity
    - EC_GROUP_check_discriminant
    - EC_POINT_new
    - BN_CTX_free
    - BN_CTX_new
    - ECerr
    - EC_POINT_mul
    linkageType: ''
    returnType: int
    signature: EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:2995,1
    - Dst: ec_list_element::meth
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:2995,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:2997,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:2998,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3008,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3009,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3010,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3011,1
    - Dst: ec_list_element::meth
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3016,1
    - Dst: EC_GROUP_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3017,1
    - Dst: EC_GROUP*::meth::group_set_curve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3018,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3019,1
    - Dst: EC_GROUP_new_curve_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3023,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3024,1
    - Dst: if
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3032,1
    - Dst: EC_GROUP_new_curve_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3032,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3033,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3039,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3040,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3044,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3045,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3046,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3049,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3050,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3053,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3054,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3055,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3058,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3059,1
    - Dst: EC_GROUP_set_seed
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3063,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3064,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3071,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3074,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3075,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3076,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3077,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3078,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3079,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3080,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3081,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 82
    argCount: 1
    argNames:
    - curve
    argTypes:
    - ec_list_element
    constantsTouched: []
    func_position:
      end: 3083
      start: 2980
    functionDepth: 4
    functionLinenumber: 2980
    functionLinenumberEnd: 3083
    functionName: ec_group_new_from_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c
    functionUses: 0
    functionsReached:
    - EC_POINT_set_affine_coordinates_GFp
    - if
    - EC_POINT_free
    - BN_free
    - BN_bin2bn
    - EC_GROUP_free
    - EC_GROUP_new
    - EC_GROUP*::meth::group_set_curve
    - EC_POINT_new
    - BN_set_word
    - EC_GROUP_set_seed
    - BN_CTX_free
    - BN_CTX_new
    - ec_list_element::meth
    - EC_GROUP_new_curve_GF2m
    - ECerr
    - EC_GROUP_set_generator
    - EC_GROUP_new_curve_GFp
    linkageType: ''
    returnType: EC_GROUP
    signature: '*ec_group_new_from_data(const ec_list_element curve)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ec_group_new_from_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3095,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3100,1
    - Dst: EC_GROUP_set_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3107
      start: 3085
    functionDepth: 5
    functionLinenumber: 3085
    functionLinenumberEnd: 3107
    functionName: EC_GROUP_new_by_curve_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c
    functionUses: 6
    functionsReached:
    - ec_group_new_from_data
    - EC_GROUP_set_curve_name
    - ECerr
    linkageType: ''
    returnType: EC_GROUP
    signature: '*EC_GROUP_new_by_curve_name(int nid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - r
    - nitems
    argTypes:
    - EC_builtin_curve*
    - size_t
    constantsTouched: []
    func_position:
      end: 3124
      start: 3109
    functionDepth: 0
    functionLinenumber: 3109
    functionLinenumberEnd: 3124
    functionName: EC_get_builtin_curves
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3159
      start: 3151
    functionDepth: 0
    functionLinenumber: 3151
    functionLinenumberEnd: 3159
    functionName: EC_curve_nid2nist
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c
    functionUses: 1
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: '*EC_curve_nid2nist(int nid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3164,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c:3165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3169
      start: 3161
    functionDepth: 0
    functionLinenumber: 3161
    functionLinenumberEnd: 3169
    functionName: EC_curve_nist2nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c
    functionUses: 1
    functionsReached:
    - OSSL_NELEM
    - strcmp
    linkageType: ''
    returnType: int
    signature: EC_curve_nist2nid(const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:82,1
    - Dst: Z
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:82,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:83,1
    - Dst: tmp_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:83,1
    - Dst: Z
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:83,1
    - Dst: felem_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:85,1
    - Dst: tmp_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:85,1
    - Dst: felem_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:87,1
    - Dst: Z
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:87,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:88,1
    - Dst: tmp_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:88,1
    - Dst: tmp_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:88,1
    - Dst: Z
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:88,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:90,1
    - Dst: tmp_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:90,1
    - Dst: tmp_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:90,1
    - Dst: felem_inv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:97,1
    - Dst: tmp_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:97,1
    - Dst: tmp_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:97,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:105,1
    - Dst: tmp_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:105,1
    - Dst: tmp_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:105,1
    - Dst: tmp_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:105,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:107,1
    - Dst: tmp_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:107,1
    - Dst: tmp_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:107,1
    - Dst: felem_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:109,1
    - Dst: Z
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:109,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:114,1
    - Dst: tmp_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:114,1
    - Dst: tmp_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:114,1
    - Dst: Z
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:114,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:119,1
    - Dst: Z
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:119,1
    - Dst: tmp_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:119,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:120,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:120,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:120,1
    - Dst: Z
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:120,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:121,1
    - Dst: Z
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:121,1
    - Dst: Z
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:121,1
    - Dst: tmp_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:121,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:122,1
    - Dst: Y
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:122,1
    - Dst: Y
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:122,1
    - Dst: Z
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:122,1
    - Dst: felem_contract
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:123,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:123,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:123,1
    - Dst: felem_contract
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:124,1
    - Dst: Y
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:124,1
    - Dst: Y
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:124,1
    - Dst: felem_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:125,1
    - Dst: Z
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:125,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:131,1
    - Dst: tmp_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:131,1
    - Dst: tmp_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c:131,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - num
    - point_array
    - felem_size
    - tmp_felems
    argTypes:
    - size_t
    - void*
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 134
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 134
    functionName: ec_GFp_nistp_points_make_affine_internal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c
    functionUses: 2
    functionsReached:
    - Z
    - felem_mul
    - tmp_felem
    - felem_inv
    - felem_is_zero
    - X
    - Y
    - felem_square
    - felem_contract
    - felem_assign
    - felem_one
    linkageType: ''
    returnType: void
    signature: "ec_GFp_nistp_points_make_affine_internal(size_t num, void *point_array,\n
      \                                             size_t felem_size,\n                                              void
      *tmp_felems,\n                                              void (*felem_one)
      (void *out),\n                                              int (*felem_is_zero)
      (const void\n                                                                    *in),\n
      \                                             void (*felem_assign) (void *out,\n
      \                                                                   const void\n
      \                                                                   *in),\n
      \                                             void (*felem_square) (void *out,\n
      \                                                                   const void\n
      \                                                                   *in),\n
      \                                             void (*felem_mul) (void *out,\n
      \                                                                const void\n
      \                                                                *in1,\n                                                                 const
      void\n                                                                 *in2),\n
      \                                             void (*felem_inv) (void *out,\n
      \                                                                const void\n
      \                                                                *in),\n                                              void
      (*felem_contract) (void\n                                                                      *out,\n
      \                                                                     const\n
      \                                                                     void\n
      \                                                                     *in))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - sign
    - digit
    - in
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char
    constantsTouched: []
    func_position:
      end: 222
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 222
    functionName: ec_GFp_nistp_recode_scalar_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "ec_GFp_nistp_recode_scalar_bits(unsigned char *sign,\n                                     unsigned
      char *digit, unsigned char in)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:45,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:47,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:53,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:58,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:60,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:65,1
    - Dst: OPENSSL_secure_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:67,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:69,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:70,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:74,1
    - Dst: OPENSSL_secure_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:75,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:76,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:83,1
    - Dst: X25519_public_from_private
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:85,1
    - Dst: EVP_PKEY_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:88,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 5
    argNames:
    - pkey
    - palg
    - p
    - plen
    - op
    argTypes:
    - EVP_PKEY*
    - X509_ALGOR*
    - unsigned char*
    - int
    - ecx_key_op_t
    constantsTouched: []
    func_position:
      end: 90
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 90
    functionName: ecx_key_op
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - EVP_PKEY_assign
    - X25519_public_from_private
    - OPENSSL_secure_free
    - memcpy
    - OPENSSL_secure_malloc
    - OPENSSL_zalloc
    - ECerr
    - OPENSSL_free
    - X509_ALGOR_get0
    linkageType: ''
    returnType: int
    signature: "ecx_key_op(EVP_PKEY *pkey, const X509_ALGOR *palg,\n                      const
      unsigned char *p, int plen, ecx_key_op_t op)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:98,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:102,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:104,1
    - Dst: X509_PUBKEY_set0_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:108,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:108,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:110,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - pk
    - pkey
    argTypes:
    - X509_PUBKEY*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 115
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 115
    functionName: ecx_pub_encode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_memdup
    - X509_PUBKEY_set0_param
    - OBJ_nid2obj
    - ECerr
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: ecx_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:123,1
    - Dst: ecx_key_op
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pkey
    - pubkey
    argTypes:
    - EVP_PKEY*
    - X509_PUBKEY*
    constantsTouched: []
    func_position:
      end: 126
      start: 117
    functionDepth: 6
    functionLinenumber: 117
    functionLinenumberEnd: 126
    functionName: ecx_pub_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ecx_key_op
    - X509_PUBKEY_get0_param
    linkageType: ''
    returnType: int
    signature: ecx_pub_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: ecx_pub_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - CRYPTO_memcmp
    linkageType: ''
    returnType: int
    signature: ecx_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_pkey_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:146,1
    - Dst: d2i_ASN1_OCTET_STRING
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:149,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:154,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:155,1
    - Dst: ecx_key_op
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:158,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - pkey
    - p8
    argTypes:
    - EVP_PKEY*
    - PKCS8_PRIV_KEY_INFO*
    constantsTouched: []
    func_position:
      end: 161
      start: 138
    functionDepth: 6
    functionLinenumber: 138
    functionLinenumberEnd: 161
    functionName: ecx_priv_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - d2i_ASN1_OCTET_STRING
    - ASN1_OCTET_STRING_free
    - ecx_key_op
    - ASN1_STRING_length
    - ASN1_STRING_get0_data
    - PKCS8_pkey_get0
    linkageType: ''
    returnType: int
    signature: ecx_priv_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:171,1
    - Dst: i2d_ASN1_OCTET_STRING
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:179,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:181,1
    - Dst: PKCS8_pkey_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:185,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:185,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:187,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - p8
    - pkey
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 193
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 193
    functionName: ecx_priv_encode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    - OBJ_nid2obj
    - ECerr
    - PKCS8_pkey_set0
    - i2d_ASN1_OCTET_STRING
    linkageType: ''
    returnType: int
    signature: ecx_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: ecx_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ecx_size(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: ecx_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ecx_bits(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: ecx_security_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ecx_security_bits(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_secure_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:215,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 217
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 217
    functionName: ecx_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_secure_free
    linkageType: ''
    returnType: void
    signature: ecx_free(EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: ecx_cmp_parameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ecx_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:232,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:236,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:238,1
    - Dst: ASN1_buf_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:240,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:244,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:248,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:251,1
    - Dst: ASN1_buf_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:253,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 5
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    - op
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    - ecx_key_op_t
    constantsTouched: []
    func_position:
      end: 256
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 256
    functionName: ecx_key_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - ASN1_buf_print
    linkageType: ''
    returnType: int
    signature: "ecx_key_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                         ASN1_PCTX
      *ctx, ecx_key_op_t op)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ecx_key_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: ecx_priv_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ecx_key_print
    linkageType: ''
    returnType: int
    signature: "ecx_priv_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                          ASN1_PCTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ecx_key_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 268
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 268
    functionName: ecx_pub_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ecx_key_print
    linkageType: ''
    returnType: int
    signature: "ecx_pub_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                         ASN1_PCTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ecx_key_op
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:275,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 295
      start: 270
    functionDepth: 6
    functionLinenumber: 270
    functionLinenumberEnd: 295
    functionName: ecx_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ecx_key_op
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: ecx_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ecx_key_op
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 6
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: pkey_ecx_keygen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ecx_key_op
    linkageType: ''
    returnType: int
    signature: pkey_ecx_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:338,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:344,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:348,1
    - Dst: X25519
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c:352,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    constantsTouched: []
    func_position:
      end: 355
      start: 332
    functionDepth: 5
    functionLinenumber: 332
    functionLinenumberEnd: 355
    functionName: pkey_ecx_derive
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - X25519
    - ECerr
    linkageType: ''
    returnType: int
    signature: "pkey_ecx_derive(EVP_PKEY_CTX *ctx, unsigned char *key,\n                           size_t
      *keylen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 363
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 363
    functionName: pkey_ecx_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: pkey_ecx_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - u8[]
    constantsTouched: []
    func_position:
      end: 159
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 159
    functionName: bin66_to_felem
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: bin66_to_felem(felem out, const u8 in[66])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - u8[]
    - felem
    constantsTouched: []
    func_position:
      end: 177
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 177
    functionName: felem_to_bin66
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: felem_to_bin66(u8 out[66], const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - out
    - in
    - len
    argTypes:
    - u8*
    - u8*
    - unsigned
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: flip_endian
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: flip_endian(u8 *out, const u8 *in, unsigned len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:195,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:196,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:198,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:201,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:202,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:205,1
    - Dst: flip_endian
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:206,1
    - Dst: bin66_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - out
    - bn
    argTypes:
    - felem
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 209
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 209
    functionName: BN_to_felem
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 6
    functionsReached:
    - memset
    - BN_is_negative
    - bin66_to_felem
    - flip_endian
    - ECerr
    - BN_bn2bin
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: BN_to_felem(felem out, const BIGNUM *bn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_to_bin66
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:215,1
    - Dst: flip_endian
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:216,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - BIGNUM*
    - felem
    constantsTouched: []
    func_position:
      end: 218
      start: 212
    functionDepth: 4
    functionLinenumber: 212
    functionLinenumberEnd: 218
    functionName: felem_to_BN
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 4
    functionsReached:
    - BN_bin2bn
    - flip_endian
    - felem_to_bin66
    linkageType: ''
    returnType: BIGNUM
    signature: '*felem_to_BN(BIGNUM *out, const felem in)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - out
    argTypes:
    - felem
    constantsTouched: []
    func_position:
      end: 236
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 236
    functionName: felem_one
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_one(felem out)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 249
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 249
    functionName: felem_assign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_assign(felem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 263
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 263
    functionName: felem_sum64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_sum64(felem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - out
    - in
    - scalar
    argTypes:
    - felem
    - felem
    - limb
    constantsTouched: []
    func_position:
      end: 277
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 277
    functionName: felem_scalar
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_scalar(felem out, const felem in, limb scalar)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - felem
    - limb
    constantsTouched: []
    func_position:
      end: 291
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 291
    functionName: felem_scalar64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_scalar64(felem out, limb scalar)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - largefelem
    - limb
    constantsTouched: []
    func_position:
      end: 305
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 305
    functionName: felem_scalar128
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_scalar128(largefelem out, limb scalar)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 329
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 329
    functionName: felem_neg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_neg(felem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 355
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 355
    functionName: felem_diff64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_diff64(felem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - largefelem
    - felem
    constantsTouched: []
    func_position:
      end: 381
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 381
    functionName: felem_diff_128_64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_diff_128_64(largefelem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - largefelem
    - largefelem
    constantsTouched: []
    func_position:
      end: 409
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 409
    functionName: felem_diff128
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_diff128(largefelem out, const largefelem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_scalar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:421,1
    - Dst: felem_scalar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - largefelem
    - felem
    constantsTouched: []
    func_position:
      end: 492
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 492
    functionName: felem_square
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 18
    functionsReached:
    - felem_scalar
    linkageType: ''
    returnType: void
    signature: felem_square(largefelem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_scalar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 3
    argNames:
    - out
    - in1
    - in2
    argTypes:
    - largefelem
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 606
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 606
    functionName: felem_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 19
    functionsReached:
    - felem_scalar
    linkageType: ''
    returnType: void
    signature: felem_mul(largefelem out, const felem in1, const felem in2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - largefelem
    constantsTouched: []
    func_position:
      end: 690
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 690
    functionName: felem_reduce
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: felem_reduce(felem out, const largefelem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:695,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 697
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 697
    functionName: felem_square_reduce
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - felem_reduce
    - felem_square
    linkageType: ''
    returnType: void
    signature: felem_square_reduce(felem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:702,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - in1
    - in2
    argTypes:
    - felem
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 704
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 704
    functionName: felem_mul_reduce
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - felem_reduce
    - felem_mul
    linkageType: ''
    returnType: void
    signature: felem_mul_reduce(felem out, const felem in1, const felem in2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:720,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:721,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:722,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:723,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:724,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:725,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:726,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:727,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:728,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:729,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:730,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:732,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:733,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:734,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:735,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:736,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:737,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:739,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:740,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:741,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:742,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:743,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:744,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:745,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:746,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:747,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:748,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:749,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:750,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:751,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:752,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:753,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:754,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:755,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:758,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:759,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:761,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:762,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:763,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:766,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:767,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:769,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:770,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:771,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:774,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:775,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:777,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:778,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:779,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:782,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:783,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:785,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:786,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:787,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:790,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:791,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:793,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:794,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:795,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:798,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:799,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:801,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:802,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:805,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:806,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:808,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:809,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:810,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:811,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 84
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 812
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 812
    functionName: felem_inv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 5
    functionsReached:
    - felem_reduce
    - felem_assign
    - felem_mul
    - felem_square
    linkageType: ''
    returnType: void
    signature: felem_inv(felem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 1
    argNames:
    - in
    argTypes:
    - felem
    constantsTouched: []
    func_position:
      end: 893
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 893
    functionName: felem_is_zero
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 5
    functionsReached:
    - felem_assign
    linkageType: ''
    returnType: limb
    signature: felem_is_zero(const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - felem
    constantsTouched: []
    func_position:
      end: 898
      start: 895
    functionDepth: 0
    functionLinenumber: 895
    functionLinenumberEnd: 898
    functionName: felem_is_zero_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - felem_is_zero
    linkageType: ''
    returnType: int
    signature: felem_is_zero_int(const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 97
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 1032
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 1032
    functionName: felem_contract
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 9
    functionsReached:
    - felem_assign
    linkageType: ''
    returnType: void
    signature: felem_contract(felem out, const felem in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1057,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1058,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1061,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1062,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1065,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1066,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1069,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1070,1
    - Dst: felem_diff64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1073,1
    - Dst: felem_sum64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1075,1
    - Dst: felem_scalar64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1077,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1079,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1087,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1090,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1094,1
    - Dst: felem_scalar64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1095,1
    - Dst: felem_diff_128_64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1097,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1099,1
    - Dst: felem_sum64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1102,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1104,1
    - Dst: felem_sum64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1105,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1107,1
    - Dst: felem_diff_128_64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1111,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1113,1
    - Dst: felem_scalar64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1116,1
    - Dst: felem_diff64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1118,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1120,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1127,1
    - Dst: felem_scalar128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1132,1
    - Dst: felem_diff128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1138,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 6
    argNames:
    - x_out
    - y_out
    - z_out
    - x_in
    - y_in
    - z_in
    argTypes:
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 1146
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1146
    functionName: point_double
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 10
    functionsReached:
    - felem_mul
    - felem_diff_128_64
    - felem_scalar128
    - felem_scalar64
    - felem_reduce
    - felem_square
    - felem_sum64
    - felem_diff128
    - felem_assign
    - felem_diff64
    linkageType: ''
    returnType: void
    signature: "point_double(felem x_out, felem y_out, felem z_out,\n             const
      felem x_in, const felem y_in, const felem z_in)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in
    - mask
    argTypes:
    - felem
    - felem
    - limb
    constantsTouched: []
    func_position:
      end: 1156
      start: 1149
    functionDepth: 0
    functionLinenumber: 1149
    functionLinenumberEnd: 1156
    functionName: copy_conditional
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: copy_conditional(felem out, const felem in, limb mask)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1178,1
    - Dst: felem_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1179,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1182,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1183,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1187,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1188,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1191,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1192,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1195,1
    - Dst: felem_sum64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1196,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1200,1
    - Dst: felem_diff_128_64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1202,1
    - Dst: felem_diff_128_64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1204,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1206,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1209,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1210,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1213,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1214,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1221,1
    - Dst: felem_scalar
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1224,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1227,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1231,1
    - Dst: felem_diff_128_64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1235,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1237,1
    - Dst: felem_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1239,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1242,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1243,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1246,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1247,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1250,1
    - Dst: felem_diff_128_64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1254,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1256,1
    - Dst: felem_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1257,1
    - Dst: felem_scalar64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1258,1
    - Dst: point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1262,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1267,1
    - Dst: felem_scalar64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1268,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1270,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1272,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1275,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1276,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1279,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1280,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1283,1
    - Dst: felem_diff_128_64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1285,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1287,1
    - Dst: felem_scalar64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1288,1
    - Dst: felem_diff_128_64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1290,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1292,1
    - Dst: felem_diff64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1295,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1299,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1301,1
    - Dst: felem_scalar128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1303,1
    - Dst: felem_diff128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1305,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1311,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1313,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1314,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1315,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1316,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1317,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1318,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1319,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1320,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1321,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 71
    argCount: 10
    argNames:
    - x3
    - y3
    - z3
    - x1
    - y1
    - z1
    - mixed
    - x2
    - y2
    - z2
    argTypes:
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    - int
    - felem
    - felem
    - felem
    constantsTouched: []
    func_position:
      end: 1322
      start: 1169
    functionDepth: 1
    functionLinenumber: 1169
    functionLinenumberEnd: 1322
    functionName: point_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 13
    functionsReached:
    - felem_mul
    - felem_diff_128_64
    - point_double
    - felem_is_zero
    - felem_scalar128
    - felem_scalar64
    - copy_conditional
    - felem_reduce
    - felem_square
    - felem_sum64
    - felem_scalar
    - felem_diff128
    - felem_assign
    - felem_diff64
    linkageType: ''
    returnType: void
    signature: "point_add(felem x3, felem y3, felem z3,\n                      const
      felem x1, const felem y1, const felem z1,\n                      const int mixed,
      const felem x2, const felem y2,\n                      const felem z2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - idx
    - size
    - pre_comp
    - out
    argTypes:
    - limb
    - unsigned int
    - felem[][]
    - felem[]
    constantsTouched: []
    func_position:
      end: 1494
      start: 1475
    functionDepth: 0
    functionLinenumber: 1475
    functionLinenumberEnd: 1494
    functionName: select_point
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "select_point(const limb idx, unsigned int size,\n                         const
      felem pre_comp[][3], felem out[3])"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - in
    - i
    argTypes:
    - felem_bytearray
    - int
    constantsTouched: []
    func_position:
      end: 1502
      start: 1497
    functionDepth: 0
    functionLinenumber: 1497
    functionLinenumberEnd: 1502
    functionName: get_bit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: get_bit(const felem_bytearray in, int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1524,1
    - Dst: point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1536,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1540,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1542,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1543,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1544,1
    - Dst: select_point
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1547,1
    - Dst: point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1550,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1553,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1562,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1563,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1564,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1565,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1566,1
    - Dst: get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1567,1
    - Dst: ec_GFp_nistp_recode_scalar_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1568,1
    - Dst: select_point
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1573,1
    - Dst: felem_neg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1574,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1576,1
    - Dst: point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1579,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1583,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1589,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1590,1
    - Dst: felem_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1591,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 9
    argNames:
    - x_out
    - y_out
    - z_out
    - scalars
    - num_points
    - g_scalar
    - mixed
    - pre_comp
    - g_pre_comp
    argTypes:
    - felem
    - felem
    - felem
    - felem_bytearray[]
    - unsigned
    - u8*
    - int
    - felem[][][]
    - felem[][]
    constantsTouched: []
    func_position:
      end: 1592
      start: 1511
    functionDepth: 1
    functionLinenumber: 1511
    functionLinenumberEnd: 1592
    functionName: batch_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 2
    functionsReached:
    - felem_neg
    - ec_GFp_nistp_recode_scalar_bits
    - select_point
    - memset
    - copy_conditional
    - memcpy
    - get_bit
    - felem_assign
    - point_double
    - point_add
    linkageType: ''
    returnType: void
    signature: "batch_mul(felem x_out, felem y_out, felem z_out,\n                      const
      felem_bytearray scalars[],\n                      const unsigned num_points,
      const u8 *g_scalar,\n                      const int mixed, const felem pre_comp[][17][3],\n
      \                     const felem g_pre_comp[16][3])"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1601
    functionDepth: 0
    functionLinenumber: 1601
    functionLinenumberEnd: 1656
    functionName: EC_GFp_nistp521_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: '*EC_GFp_nistp521_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1665,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1668,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1674,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1676,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1677,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1663
    functionDepth: 0
    functionLinenumber: 1663
    functionLinenumberEnd: 1681
    functionName: nistp521_pre_comp_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - ECerr
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: NISTP521_PRE_COMP
    signature: '*nistp521_pre_comp_new()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1687,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - NISTP521_PRE_COMP*
    constantsTouched: []
    func_position:
      end: 1689
      start: 1683
    functionDepth: 0
    functionLinenumber: 1683
    functionLinenumberEnd: 1689
    functionName: EC_nistp521_pre_comp_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - CRYPTO_atomic_add
    linkageType: ''
    returnType: NISTP521_PRE_COMP
    signature: '*EC_nistp521_pre_comp_dup(NISTP521_PRE_COMP *p)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1698,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1699,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1702,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1704,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1705,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - NISTP521_PRE_COMP*
    constantsTouched: []
    func_position:
      end: 1706
      start: 1691
    functionDepth: 0
    functionLinenumber: 1691
    functionLinenumberEnd: 1706
    functionName: EC_nistp521_pre_comp_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - CRYPTO_atomic_add
    - OPENSSL_free
    - CRYPTO_THREAD_lock_free
    - REF_ASSERT_ISNT
    - REF_PRINT_COUNT
    linkageType: ''
    returnType: void
    signature: EC_nistp521_pre_comp_free(NISTP521_PRE_COMP *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ec_GFp_simple_group_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 1719
      start: 1713
    functionDepth: 4
    functionLinenumber: 1713
    functionLinenumberEnd: 1719
    functionName: ec_GFp_nistp521_group_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - ec_GFp_simple_group_init
    linkageType: ''
    returnType: int
    signature: ec_GFp_nistp521_group_init(EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1730,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1732,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1733,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1734,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1735,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1737,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1738,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1739,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1740,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1740,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1740,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1741,1
    - Dst: ec_GFp_simple_group_set_curve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1746,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1748,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1749,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1751
      start: 1721
    functionDepth: 4
    functionLinenumber: 1721
    functionLinenumberEnd: 1751
    functionName: ec_GFp_nistp521_group_set_curve
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - ec_GFp_simple_group_set_curve
    - BN_bin2bn
    - BN_cmp
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_free
    - BN_CTX_new
    - BN_CTX_get
    - ECerr
    linkageType: ''
    returnType: int
    signature: "ec_GFp_nistp521_group_set_curve(EC_GROUP *group, const BIGNUM *p,\n
      \                                   const BIGNUM *a, const BIGNUM *b,\n                                    BN_CTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1765,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1766,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1770,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1770,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1771,1
    - Dst: felem_inv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1773,1
    - Dst: felem_square
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1774,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1775,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1776,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1777,1
    - Dst: felem_contract
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1778,1
    - Dst: felem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1780,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1781,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1786,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1787,1
    - Dst: felem_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1788,1
    - Dst: felem_reduce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1789,1
    - Dst: felem_contract
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1790,1
    - Dst: felem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1792,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1793,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1799
      start: 1757
    functionDepth: 1
    functionLinenumber: 1757
    functionLinenumberEnd: 1799
    functionName: ec_GFp_nistp521_point_get_affine_coordinates
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - felem_mul
    - felem_inv
    - felem_to_BN
    - EC_POINT_is_at_infinity
    - felem_reduce
    - BN_to_felem
    - felem_square
    - felem_contract
    - ECerr
    linkageType: ''
    returnType: int
    signature: "ec_GFp_nistp521_point_get_affine_coordinates(const EC_GROUP *group,\n
      \                                                const EC_POINT *point,\n                                                 BIGNUM
      *x, BIGNUM *y,\n                                                 BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ec_GFp_nistp_points_make_affine_internal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - num
    - points
    - tmp_felems
    argTypes:
    - size_t
    - felem[][]
    - felem[]
    constantsTouched: []
    func_position:
      end: 1830
      start: 1802
    functionDepth: 1
    functionLinenumber: 1802
    functionLinenumberEnd: 1830
    functionName: make_points_affine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 4
    functionsReached:
    - ec_GFp_nistp_points_make_affine_internal
    linkageType: ''
    returnType: void
    signature: "make_points_affine(size_t num, felem points[][3],\n                               felem
      tmp_felems[])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1848,1
    - Dst: felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1856,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1862,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1864,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1865,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1866,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1867,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1868,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1879,1
    - Dst: felem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1883,1
    - Dst: felem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1884,1
    - Dst: felem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1885,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1886,1
    - Dst: EC_POINT_set_Jprojective_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1889,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1893,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1912,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1913,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1916,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1919,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1934,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1944,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1945,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1950,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1951,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1954,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1956,1
    - Dst: flip_endian
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1957,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1959,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1960,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1961,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1963,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1964,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1965,1
    - Dst: point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1968,1
    - Dst: point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1975,1
    - Dst: make_points_affine
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1984,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1989,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1991,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1991,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1996,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:1997,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2000,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2002,1
    - Dst: flip_endian
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2003,1
    - Dst: batch_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2005,1
    - Dst: batch_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2012,1
    - Dst: felem_contract
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2016,1
    - Dst: felem_contract
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2017,1
    - Dst: felem_contract
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2018,1
    - Dst: felem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2019,1
    - Dst: felem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2019,1
    - Dst: felem_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2020,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2021,1
    - Dst: EC_POINT_set_Jprojective_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2024,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2027,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2028,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2029,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2030,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2031,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2032,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 114
    argCount: 7
    argNames:
    - group
    - r
    - scalar
    - num
    - points
    - scalars
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - size_t
    - EC_POINT*[]
    - BIGNUM*[]
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 2034
      start: 1836
    functionDepth: 2
    functionLinenumber: 1836
    functionLinenumberEnd: 2034
    functionName: ec_GFp_nistp521_points_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - felem_to_BN
    - BN_to_felem
    - felem_contract
    - OPENSSL_zalloc
    - BN_CTX_get
    - ECerr
    - EC_POINT_set_Jprojective_coordinates_GFp
    - make_points_affine
    - batch_mul
    - EC_POINT_free
    - BN_nnmod
    - BN_CTX_end
    - BN_CTX_start
    - EC_POINT_cmp
    - BN_CTX_new
    - point_add
    - memset
    - BN_is_negative
    - OPENSSL_free
    - felem
    - EC_GROUP_get0_generator
    - EC_POINT_new
    - BN_num_bits
    - memcpy
    - BN_CTX_free
    - flip_endian
    - point_double
    - BN_bn2bin
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "ec_GFp_nistp521_points_mul(const EC_GROUP *group, EC_POINT *r,\n                               const
      BIGNUM *scalar, size_t num,\n                               const EC_POINT *points[],\n
      \                              const BIGNUM *scalars[], BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_pre_comp_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2047,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2049,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2051,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2052,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2052,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2057,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2060,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2061,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2062,1
    - Dst: nistp521_pre_comp_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2064,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2069,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2070,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2073,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2074,1
    - Dst: BN_to_felem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2075,1
    - Dst: point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2079,1
    - Dst: point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2083,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2092,1
    - Dst: point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2095,1
    - Dst: point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2101,1
    - Dst: point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2107,1
    - Dst: point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2113,1
    - Dst: point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2120,1
    - Dst: make_points_affine
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2127,1
    - Dst: SETPRECOMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2130,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2134,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2135,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2136,1
    - Dst: EC_nistp521_pre_comp_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2137,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 2139
      start: 2036
    functionDepth: 4
    functionLinenumber: 2036
    functionLinenumberEnd: 2139
    functionName: ec_GFp_nistp521_precompute_mult
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - EC_POINT_set_affine_coordinates_GFp
    - BN_bin2bn
    - BN_to_felem
    - BN_CTX_get
    - make_points_affine
    - EC_POINT_free
    - nistp521_pre_comp_new
    - BN_CTX_end
    - BN_CTX_start
    - EC_POINT_cmp
    - BN_CTX_new
    - SETPRECOMP
    - EC_pre_comp_free
    - memset
    - EC_POINT_new
    - memcpy
    - BN_CTX_free
    - point_double
    - point_add
    - EC_nistp521_pre_comp_free
    linkageType: ''
    returnType: int
    signature: ec_GFp_nistp521_precompute_mult(EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HAVEPRECOMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c:2143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 2144
      start: 2141
    functionDepth: 0
    functionLinenumber: 2141
    functionLinenumberEnd: 2144
    functionName: ec_GFp_nistp521_have_precompute_mult
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - HAVEPRECOMP
    linkageType: ''
    returnType: int
    signature: ec_GFp_nistp521_have_precompute_mult(const EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::meth::verify_sig
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_vrf.c:24,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_vrf.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - dgst
    - dgst_len
    - sig
    - eckey
    argTypes:
    - unsigned char*
    - int
    - ECDSA_SIG*
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 27
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 27
    functionName: ECDSA_do_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_vrf.c
    functionUses: 3
    functionsReached:
    - EC_KEY*::meth::verify_sig
    - ECerr
    linkageType: ''
    returnType: int
    signature: "ECDSA_do_verify(const unsigned char *dgst, int dgst_len,\n                    const
      ECDSA_SIG *sig, EC_KEY *eckey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::meth::verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_vrf.c:39,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_vrf.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - type
    - dgst
    - dgst_len
    - sigbuf
    - sig_len
    - eckey
    argTypes:
    - int
    - unsigned char*
    - int
    - unsigned char*
    - int
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: ECDSA_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_vrf.c
    functionUses: 1
    functionsReached:
    - ECerr
    - EC_KEY*::meth::verify
    linkageType: ''
    returnType: int
    signature: "ECDSA_verify(int type, const unsigned char *dgst, int dgst_len,\n
      \                const unsigned char *sigbuf, int sig_len, EC_KEY *eckey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: _booth_recode_w5
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: _booth_recode_w5(unsigned int in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 185
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 185
    functionName: _booth_recode_w7
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: _booth_recode_w7(unsigned int in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - dst
    - src
    - move
    argTypes:
    - BN_ULONG[]
    - BN_ULONG[]
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 203
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 203
    functionName: copy_conditional
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "copy_conditional(BN_ULONG dst[P256_LIMBS],\n                             const
      BN_ULONG src[P256_LIMBS], BN_ULONG move)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 211
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 211
    functionName: is_zero
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 66
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: is_zero(BN_ULONG in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BN_ULONG[]
    - BN_ULONG[]
    constantsTouched: []
    func_position:
      end: 230
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 230
    functionName: is_equal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - is_zero
    linkageType: ''
    returnType: BN_ULONG
    signature: "is_equal(const BN_ULONG a[P256_LIMBS],\n                         const
      BN_ULONG b[P256_LIMBS])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_get_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:235,1
    - Dst: bn_get_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:237,1
    - Dst: is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - z
    argTypes:
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 255
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 255
    functionName: is_one
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 20
    functionsReached:
    - bn_get_words
    - bn_get_top
    - is_zero
    linkageType: ''
    returnType: BN_ULONG
    signature: is_one(const BIGNUM *z)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ecp_nistz256_mul_by_2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:281,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:283,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:285,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:287,1
    - Dst: ecp_nistz256_mul_by_2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:288,1
    - Dst: ecp_nistz256_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:290,1
    - Dst: ecp_nistz256_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:291,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:293,1
    - Dst: ecp_nistz256_div_by_2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:294,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:296,1
    - Dst: ecp_nistz256_mul_by_3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:297,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:299,1
    - Dst: ecp_nistz256_mul_by_2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:300,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:302,1
    - Dst: ecp_nistz256_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:304,1
    - Dst: ecp_nistz256_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:305,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:307,1
    - Dst: ecp_nistz256_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - P256_POINT*
    - P256_POINT*
    constantsTouched: []
    func_position:
      end: 309
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 309
    functionName: ecp_nistz256_point_double
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - ecp_nistz256_add
    - ecp_nistz256_sub
    - ecp_nistz256_div_by_2
    - ecp_nistz256_mul_mont
    - ecp_nistz256_mul_by_3
    - ecp_nistz256_sqr_mont
    - ecp_nistz256_mul_by_2
    linkageType: ''
    returnType: void
    signature: ecp_nistz256_point_double(P256_POINT *r, const P256_POINT *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:349,1
    - Dst: is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:350,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:352,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:353,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:355,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:356,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:358,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:359,1
    - Dst: ecp_nistz256_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:360,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:362,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:363,1
    - Dst: ecp_nistz256_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:364,1
    - Dst: is_equal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:369,1
    - Dst: is_equal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:370,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:371,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:374,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:379,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:380,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:381,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:382,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:383,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:385,1
    - Dst: ecp_nistz256_mul_by_2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:386,1
    - Dst: ecp_nistz256_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:388,1
    - Dst: ecp_nistz256_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:389,1
    - Dst: ecp_nistz256_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:391,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:393,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:394,1
    - Dst: ecp_nistz256_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:395,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:397,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:398,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:399,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:401,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:402,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:403,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:405,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:406,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:407,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 50
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - P256_POINT*
    - P256_POINT*
    - P256_POINT*
    constantsTouched: []
    func_position:
      end: 408
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 408
    functionName: ecp_nistz256_point_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - ecp_nistz256_sub
    - ecp_nistz256_mul_mont
    - ecp_nistz256_point_double
    - is_equal
    - is_zero
    - memset
    - ecp_nistz256_sqr_mont
    - copy_conditional
    - ecp_nistz256_mul_by_2
    - memcpy
    linkageType: ''
    returnType: void
    signature: "ecp_nistz256_point_add(P256_POINT *r,\n                                   const
      P256_POINT *a, const P256_POINT *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:452,1
    - Dst: is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:453,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:455,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:457,1
    - Dst: ecp_nistz256_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:458,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:460,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:462,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:464,1
    - Dst: ecp_nistz256_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:465,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:467,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:468,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:469,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:471,1
    - Dst: ecp_nistz256_mul_by_2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:472,1
    - Dst: ecp_nistz256_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:474,1
    - Dst: ecp_nistz256_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:475,1
    - Dst: ecp_nistz256_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:476,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:478,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:479,1
    - Dst: ecp_nistz256_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:480,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:482,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:483,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:485,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:486,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:488,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:489,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:491,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:492,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - P256_POINT*
    - P256_POINT*
    - P256_POINT_AFFINE*
    constantsTouched: []
    func_position:
      end: 494
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 494
    functionName: ecp_nistz256_point_add_affine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - ecp_nistz256_sub
    - ecp_nistz256_mul_mont
    - is_zero
    - ecp_nistz256_sqr_mont
    - copy_conditional
    - ecp_nistz256_mul_by_2
    - memcpy
    linkageType: ''
    returnType: void
    signature: "ecp_nistz256_point_add_affine(P256_POINT *r,\n                                          const
      P256_POINT *a,\n                                          const P256_POINT_AFFINE
      *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:513,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:514,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:516,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:517,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:518,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:520,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:521,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:522,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:523,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:524,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:526,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:528,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:529,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:531,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:533,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:534,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:536,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:538,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:539,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:542,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:543,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:546,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:547,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:550,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:551,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:554,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:555,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:557,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:558,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:559,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:560,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:561,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:563,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:564,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:565,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:567,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:568,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:569,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:571,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 2
    argNames:
    - r
    - in
    argTypes:
    - BN_ULONG[]
    - BN_ULONG[]
    constantsTouched: []
    func_position:
      end: 572
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 572
    functionName: ecp_nistz256_mod_inverse
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - ecp_nistz256_mul_mont
    - memcpy
    - ecp_nistz256_sqr_mont
    linkageType: ''
    returnType: void
    signature: "ecp_nistz256_mod_inverse(BN_ULONG r[P256_LIMBS],\n                                     const
      BN_ULONG in[P256_LIMBS])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_copy_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - BN_ULONG[]
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 582
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 582
    functionName: ecp_nistz256_bignum_to_field_elem
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - bn_copy_words
    linkageType: ''
    returnType: __owur
    signature: "ecp_nistz256_bignum_to_field_elem(BN_ULONG out[P256_LIMBS],\n                                                    const
      BIGNUM *in)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: P256_POINT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:600,1
    - Dst: OPENSSL_MALLOC_MAX_NELEMS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:603,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:605,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:607,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:608,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:609,1
    - Dst: ALIGNPTR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:613,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:620,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:620,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:623,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:625,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:626,1
    - Dst: bn_get_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:633,1
    - Dst: bn_get_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:634,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:651,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:652,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:653,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:654,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:665,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:666,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:667,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:668,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:669,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:670,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:671,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:672,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:673,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:674,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:675,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:676,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:677,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:678,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:679,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:680,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:681,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:682,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:683,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:684,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:685,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:686,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:687,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:688,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:689,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:690,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:691,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:692,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:693,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:694,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:695,1
    - Dst: ecp_nistz256_gather_w5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:707,1
    - Dst: _booth_recode_w5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:707,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:708,1
    - Dst: _booth_recode_w5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:717,1
    - Dst: ecp_nistz256_gather_w5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:719,1
    - Dst: ecp_nistz256_neg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:721,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:722,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:724,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:729,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:730,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:731,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:732,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:733,1
    - Dst: _booth_recode_w5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:741,1
    - Dst: ecp_nistz256_gather_w5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:743,1
    - Dst: ecp_nistz256_neg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:745,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:746,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:748,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:753,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:754,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:755,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 112
    argCount: 6
    argNames:
    - group
    - r
    - scalar
    - point
    - num
    - ctx
    argTypes:
    - EC_GROUP*
    - P256_POINT*
    - BIGNUM**
    - EC_POINT**
    - size_t
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 757
      start: 585
    functionDepth: 3
    functionLinenumber: 585
    functionLinenumberEnd: 757
    functionName: ecp_nistz256_windowed_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - ecp_nistz256_neg
    - BN_CTX_get
    - ECerr
    - OPENSSL_MALLOC_MAX_NELEMS
    - BN_nnmod
    - ecp_nistz256_point_double
    - ecp_nistz256_bignum_to_field_elem
    - ALIGNPTR
    - _booth_recode_w5
    - bn_get_words
    - ecp_nistz256_gather_w5
    - BN_is_negative
    - ecp_nistz256_scatter_w5
    - copy_conditional
    - OPENSSL_free
    - ecp_nistz256_point_add
    - bn_get_top
    - P256_POINT
    - BN_num_bits
    - memcpy
    - OPENSSL_malloc
    linkageType: ''
    returnType: __owur
    signature: "ecp_nistz256_windowed_mul(const EC_GROUP *group,\n                                            P256_POINT
      *r,\n                                            const BIGNUM **scalar,\n                                            const
      EC_POINT **point,\n                                            size_t num, BN_CTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_get_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:776,1
    - Dst: bn_get_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:777,1
    - Dst: is_equal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:778,1
    - Dst: bn_get_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:778,1
    - Dst: is_equal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:779,1
    - Dst: bn_get_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:779,1
    - Dst: is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:780,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - generator
    argTypes:
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 781
      start: 774
    functionDepth: 2
    functionLinenumber: 774
    functionLinenumberEnd: 781
    functionName: ecp_nistz256_is_affine_G
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - is_one
    - bn_get_words
    - bn_get_top
    - is_equal
    linkageType: ''
    returnType: int
    signature: ecp_nistz256_is_affine_G(const EC_POINT *generator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_pre_comp_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:803,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:804,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:806,1
    - Dst: ecp_nistz256_is_affine_G
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:810,1
    - Dst: ecp_nistz256_pre_comp_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:818,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:822,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:827,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:829,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:833,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:834,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:841,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:842,1
    - Dst: ALIGNPTR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:846,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:848,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:849,1
    - Dst: EC_POINT_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:857,1
    - Dst: EC_POINT_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:861,1
    - Dst: EC_POINT_make_affine
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:869,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:871,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:872,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:873,1
    - Dst: ecp_nistz256_scatter_w7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:877,1
    - Dst: EC_POINT_dbl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:879,1
    - Dst: EC_POINT_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:883,1
    - Dst: SETPRECOMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:892,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:898,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:899,1
    - Dst: EC_nistz256_pre_comp_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:901,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:902,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:903,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:904,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 85
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 906
      start: 783
    functionDepth: 3
    functionLinenumber: 783
    functionLinenumberEnd: 906
    functionName: ecp_nistz256_mult_precompute
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - EC_POINT_make_affine
    - ecp_nistz256_scatter_w7
    - EC_POINT_dbl
    - EC_nistz256_pre_comp_free
    - ECerr
    - EC_POINT_copy
    - EC_POINT_free
    - BN_is_zero
    - EC_GROUP_get0_order
    - BN_CTX_end
    - BN_CTX_start
    - ecp_nistz256_bignum_to_field_elem
    - ALIGNPTR
    - BN_CTX_new
    - SETPRECOMP
    - EC_pre_comp_free
    - ecp_nistz256_pre_comp_new
    - OPENSSL_free
    - EC_GROUP_get0_generator
    - EC_POINT_new
    - BN_CTX_free
    - ecp_nistz256_is_affine_G
    - OPENSSL_malloc
    - EC_POINT_add
    linkageType: ''
    returnType: __owur
    signature: ecp_nistz256_mult_precompute(EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - sign
    - digit
    - in
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char
    constantsTouched: []
    func_position:
      end: 950
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 950
    functionName: booth_recode_w7
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "booth_recode_w7(unsigned char *sign,\n                            unsigned
      char *digit, unsigned char in)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: booth_recode_w7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:982,1
    - Dst: booth_recode_w7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:986,1
    - Dst: booth_recode_w7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:990,1
    - Dst: booth_recode_w7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:994,1
    - Dst: ecp_nistz256_avx2_multi_gather_w7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:996,1
    - Dst: ecp_nistz256_neg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:999,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1000,1
    - Dst: ecp_nistz256_neg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1001,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1002,1
    - Dst: ecp_nistz256_neg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1003,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1004,1
    - Dst: ecp_nistz256_neg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1005,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1006,1
    - Dst: ecp_nistz256_avx2_transpose_convert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1008,1
    - Dst: ecp_nistz256_avx2_to_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1009,1
    - Dst: ecp_nistz256_avx2_to_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1010,1
    - Dst: ecp_nistz256_avx2_set1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1011,1
    - Dst: booth_recode_w7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1016,1
    - Dst: booth_recode_w7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1020,1
    - Dst: booth_recode_w7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1024,1
    - Dst: booth_recode_w7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1028,1
    - Dst: ecp_nistz256_avx2_multi_gather_w7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1030,1
    - Dst: ecp_nistz256_neg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1033,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1034,1
    - Dst: ecp_nistz256_neg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1035,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1036,1
    - Dst: ecp_nistz256_neg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1037,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1038,1
    - Dst: ecp_nistz256_neg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1039,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1040,1
    - Dst: ecp_nistz256_avx2_transpose_convert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1042,1
    - Dst: ecp_nistz256_avx2_to_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1043,1
    - Dst: ecp_nistz256_avx2_to_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1044,1
    - Dst: ecp_nistz256_avx2_point_add_affines_x4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1046,1
    - Dst: booth_recode_w7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1052,1
    - Dst: booth_recode_w7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1056,1
    - Dst: booth_recode_w7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1060,1
    - Dst: booth_recode_w7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1064,1
    - Dst: ecp_nistz256_avx2_multi_gather_w7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1066,1
    - Dst: ecp_nistz256_neg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1070,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1071,1
    - Dst: ecp_nistz256_neg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1072,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1073,1
    - Dst: ecp_nistz256_neg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1074,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1075,1
    - Dst: ecp_nistz256_neg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1076,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1077,1
    - Dst: ecp_nistz256_avx2_transpose_convert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1079,1
    - Dst: ecp_nistz256_avx2_to_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1080,1
    - Dst: ecp_nistz256_avx2_to_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1081,1
    - Dst: ecp_nistz256_avx2_point_add_affine_x4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1083,1
    - Dst: ecp_nistz256_avx2_from_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1086,1
    - Dst: ecp_nistz256_avx2_from_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1087,1
    - Dst: ecp_nistz256_avx2_from_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1088,1
    - Dst: ecp_nistz256_avx2_convert_transpose_back
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1090,1
    - Dst: booth_recode_w7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1094,1
    - Dst: ecp_nistz256_gather_w7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1095,1
    - Dst: ecp_nistz256_neg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1097,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1098,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1099,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1101,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1102,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1103,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 105
    argCount: 3
    argNames:
    - r
    - p_str
    - (*preComputedTable)
    argTypes:
    - P256_POINT*
    - unsigned char[]
    - P256_POINT_AFFINE[]
    constantsTouched: []
    func_position:
      end: 1105
      start: 957
    functionDepth: 3
    functionLinenumber: 957
    functionLinenumberEnd: 1105
    functionName: ecp_nistz256_avx2_mul_g
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - ecp_nistz256_avx2_point_add_affine_x4
    - ecp_nistz256_gather_w7
    - ecp_nistz256_avx2_point_add_affines_x4
    - ecp_nistz256_avx2_convert_transpose_back
    - ecp_nistz256_avx2_transpose_convert
    - ecp_nistz256_avx2_from_mont
    - ecp_nistz256_point_add
    - booth_recode_w7
    - ecp_nistz256_avx2_to_mont
    - copy_conditional
    - ecp_nistz256_neg
    - memcpy
    - ecp_nistz256_avx2_set1
    - ecp_nistz256_avx2_multi_gather_w7
    linkageType: ''
    returnType: void
    signature: "ecp_nistz256_avx2_mul_g(P256_POINT *r,\n                                    unsigned
      char p_str[33],\n                                    const P256_POINT_AFFINE(*preComputedTable)[64])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1117,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1120,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1122,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1125,1
    - Dst: bn_set_static_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1126,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1128,1
    - Dst: bn_set_static_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1129,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1131,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1133,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - out
    - group
    - in
    - ctx
    argTypes:
    - EC_POINT*
    - EC_GROUP*
    - P256_POINT_AFFINE*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1137
      start: 1109
    functionDepth: 3
    functionLinenumber: 1109
    functionLinenumberEnd: 1137
    functionName: ecp_nistz256_set_from_affine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - BN_new
    - EC_POINT_set_affine_coordinates_GFp
    - BN_free
    - memcpy
    - bn_set_static_words
    linkageType: ''
    returnType: __owur
    signature: "ecp_nistz256_set_from_affine(EC_POINT *out, const EC_GROUP *group,\n
      \                                              const P256_POINT_AFFINE *in,\n
      \                                              BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_MALLOC_MAX_NELEMS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1166,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1167,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1172,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1177,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1181,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1187,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1192,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1195,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1197,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1209,1
    - Dst: ecp_nistz256_set_from_affine
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1213,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1216,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1220,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1223,1
    - Dst: ecp_nistz256_is_affine_G
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1226,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1237,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1238,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1239,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1242,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1243,1
    - Dst: bn_get_top
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1249,1
    - Dst: bn_get_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1250,1
    - Dst: ecp_nistz_avx2_eligible
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1269,1
    - Dst: ecp_nistz256_avx2_mul_g
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1270,1
    - Dst: _booth_recode_w7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1280,1
    - Dst: ecp_nistz256_gather_w7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1282,1
    - Dst: ecp_nistz256_neg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1285,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1286,1
    - Dst: is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1299,1
    - Dst: _booth_recode_w7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1319,1
    - Dst: ecp_nistz256_gather_w7
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1321,1
    - Dst: ecp_nistz256_neg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1324,1
    - Dst: copy_conditional
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1325,1
    - Dst: ecp_nistz256_point_add_affine
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1327,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1342,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1344,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1348,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1350,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1354,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1356,1
    - Dst: ecp_nistz256_windowed_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1369,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1373,1
    - Dst: bn_set_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1377,1
    - Dst: bn_set_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1378,1
    - Dst: bn_set_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1379,1
    - Dst: is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1382,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1388,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1389,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1390,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1391,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 162
    argCount: 7
    argNames:
    - group
    - r
    - scalar
    - num
    - points
    - scalars
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - size_t
    - EC_POINT*[]
    - BIGNUM*[]
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1393
      start: 1140
    functionDepth: 4
    functionLinenumber: 1140
    functionLinenumberEnd: 1393
    functionName: ecp_nistz256_points_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - _booth_recode_w7
    - ecp_nistz256_neg
    - BN_CTX_get
    - ECerr
    - EC_POINT_free
    - ecp_nistz256_avx2_mul_g
    - ecp_nistz256_gather_w7
    - OPENSSL_MALLOC_MAX_NELEMS
    - BN_nnmod
    - EC_POINT_set_to_infinity
    - BN_CTX_end
    - BN_CTX_start
    - EC_POINT_cmp
    - BN_CTX_new
    - ecp_nistz256_point_add_affine
    - ecp_nistz256_set_from_affine
    - bn_get_words
    - ecp_nistz_avx2_eligible
    - BN_is_negative
    - copy_conditional
    - bn_set_words
    - OPENSSL_free
    - ecp_nistz256_windowed_mul
    - ecp_nistz256_point_add
    - bn_get_top
    - EC_GROUP_get0_generator
    - is_zero
    - is_one
    - EC_POINT_new
    - BN_num_bits
    - memcpy
    - BN_CTX_free
    - ecp_nistz256_is_affine_G
    - OPENSSL_malloc
    linkageType: ''
    returnType: __owur
    signature: "ecp_nistz256_points_mul(const EC_GROUP *group,\n                                          EC_POINT
      *r,\n                                          const BIGNUM *scalar,\n                                          size_t
      num,\n                                          const EC_POINT *points[],\n
      \                                         const BIGNUM *scalars[], BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1406,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1407,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1411,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1412,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1413,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1414,1
    - Dst: ecp_nistz256_mod_inverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1418,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1419,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1420,1
    - Dst: ecp_nistz256_from_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1423,1
    - Dst: bn_set_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1424,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1429,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1430,1
    - Dst: ecp_nistz256_from_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1431,1
    - Dst: bn_set_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1432,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1437
      start: 1395
    functionDepth: 2
    functionLinenumber: 1395
    functionLinenumberEnd: 1437
    functionName: ecp_nistz256_get_affine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - ecp_nistz256_mul_mont
    - EC_POINT_is_at_infinity
    - ecp_nistz256_sqr_mont
    - ecp_nistz256_mod_inverse
    - ecp_nistz256_bignum_to_field_elem
    - ecp_nistz256_from_mont
    - bn_set_words
    - ECerr
    linkageType: ''
    returnType: __owur
    signature: "ecp_nistz256_get_affine(const EC_GROUP *group,\n                                          const
      EC_POINT *point,\n                                          BIGNUM *x, BIGNUM
      *y, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1446,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1449,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1457,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1459,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 1464
      start: 1439
    functionDepth: 0
    functionLinenumber: 1439
    functionLinenumberEnd: 1464
    functionName: ecp_nistz256_pre_comp_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - ECerr
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: NISTZ256_PRE_COMP
    signature: '*ecp_nistz256_pre_comp_new(const EC_GROUP *group)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - NISTZ256_PRE_COMP*
    constantsTouched: []
    func_position:
      end: 1472
      start: 1466
    functionDepth: 0
    functionLinenumber: 1466
    functionLinenumberEnd: 1472
    functionName: EC_nistz256_pre_comp_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - CRYPTO_atomic_add
    linkageType: ''
    returnType: NISTZ256_PRE_COMP
    signature: '*EC_nistz256_pre_comp_dup(NISTZ256_PRE_COMP *p)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1481,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1482,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1485,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1487,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1488,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - pre
    argTypes:
    - NISTZ256_PRE_COMP*
    constantsTouched: []
    func_position:
      end: 1490
      start: 1474
    functionDepth: 0
    functionLinenumber: 1474
    functionLinenumberEnd: 1490
    functionName: EC_nistz256_pre_comp_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 1
    functionsReached:
    - CRYPTO_atomic_add
    - OPENSSL_free
    - CRYPTO_THREAD_lock_free
    - REF_ASSERT_ISNT
    - REF_PRINT_COUNT
    linkageType: ''
    returnType: void
    signature: EC_nistz256_pre_comp_free(NISTZ256_PRE_COMP *pre)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_get0_generator
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1496,1
    - Dst: ecp_nistz256_is_affine_G
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1498,1
    - Dst: HAVEPRECOMP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c:1503,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 1504
      start: 1493
    functionDepth: 3
    functionLinenumber: 1493
    functionLinenumberEnd: 1504
    functionName: ecp_nistz256_window_have_precompute_mult
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - ecp_nistz256_is_affine_G
    - EC_GROUP_get0_generator
    - HAVEPRECOMP
    linkageType: ''
    returnType: int
    signature: ecp_nistz256_window_have_precompute_mult(const EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1506
    functionDepth: 0
    functionLinenumber: 1506
    functionLinenumberEnd: 1559
    functionName: EC_GFp_nistz256_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: '*EC_GFp_nistz256_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:30,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:34,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:38,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:40,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:46,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:49,1
    - Dst: EC_METHOD*::group_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:55,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:60,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:61,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:62,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_METHOD*
    constantsTouched: []
    func_position:
      end: 64
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 64
    functionName: EC_GROUP_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 4
    functionsReached:
    - BN_new
    - BN_free
    - EC_METHOD*::group_init
    - OPENSSL_zalloc
    - ECerr
    - OPENSSL_free
    linkageType: ''
    returnType: EC_GROUP
    signature: '*EC_GROUP_new(const EC_METHOD *meth)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_nistz256_pre_comp_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:73,1
    - Dst: EC_nistp224_pre_comp_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:78,1
    - Dst: EC_nistp256_pre_comp_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:81,1
    - Dst: EC_nistp521_pre_comp_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:84,1
    - Dst: EC_ec_pre_comp_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:88,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 92
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 92
    functionName: EC_pre_comp_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 5
    functionsReached:
    - EC_nistp256_pre_comp_free
    - EC_nistz256_pre_comp_free
    - EC_ec_pre_comp_free
    - EC_nistp224_pre_comp_free
    - EC_nistp521_pre_comp_free
    linkageType: ''
    returnType: void
    signature: EC_pre_comp_free(EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::group_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:100,1
    - Dst: EC_pre_comp_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:102,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:103,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:104,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:105,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:106,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:107,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 109
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 109
    functionName: EC_GROUP_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 18
    functionsReached:
    - EC_POINT_free
    - BN_free
    - BN_MONT_CTX_free
    - EC_pre_comp_free
    - EC_GROUP*::meth::group_finish
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: EC_GROUP_free(EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::group_clear_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:117,1
    - Dst: EC_GROUP*::meth::group_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:119,1
    - Dst: EC_pre_comp_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:121,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:122,1
    - Dst: EC_POINT_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:123,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:124,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:125,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:126,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 128
      start: 111
    functionDepth: 4
    functionLinenumber: 111
    functionLinenumberEnd: 128
    functionName: EC_GROUP_clear_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 4
    functionsReached:
    - EC_GROUP*::meth::group_clear_finish
    - BN_clear_free
    - BN_MONT_CTX_free
    - EC_pre_comp_free
    - EC_GROUP*::meth::group_finish
    - OPENSSL_clear_free
    - EC_POINT_clear_free
    linkageType: ''
    returnType: void
    signature: EC_GROUP_clear_free(EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:133,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:137,1
    - Dst: EC_nistz256_pre_comp_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:151,1
    - Dst: EC_nistp224_pre_comp_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:156,1
    - Dst: EC_nistp256_pre_comp_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:159,1
    - Dst: EC_nistp521_pre_comp_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:162,1
    - Dst: EC_ec_pre_comp_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:166,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:172,1
    - Dst: BN_MONT_CTX_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:176,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:180,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:186,1
    - Dst: EC_POINT_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:190,1
    - Dst: EC_POINT_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:194,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:199,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:201,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:210,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:211,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:214,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:218,1
    - Dst: EC_GROUP*::meth::group_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:223,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 79
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_GROUP*
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 224
      start: 130
    functionDepth: 4
    functionLinenumber: 130
    functionLinenumberEnd: 224
    functionName: EC_GROUP_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - EC_nistz256_pre_comp_dup
    - EC_ec_pre_comp_dup
    - BN_MONT_CTX_new
    - BN_MONT_CTX_copy
    - OPENSSL_malloc
    - BN_MONT_CTX_free
    - OPENSSL_free
    - EC_nistp224_pre_comp_dup
    - EC_POINT_new
    - BN_copy
    - EC_POINT_clear_free
    - memcpy
    - EC_GROUP*::meth::group_copy
    - ECerr
    - EC_nistp256_pre_comp_dup
    - EC_POINT_copy
    - EC_nistp521_pre_comp_dup
    linkageType: ''
    returnType: int
    signature: EC_GROUP_copy(EC_GROUP *dest, const EC_GROUP *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:234,1
    - Dst: EC_GROUP_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:236,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:243,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - a
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 247
      start: 226
    functionDepth: 5
    functionLinenumber: 226
    functionLinenumberEnd: 247
    functionName: EC_GROUP_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached:
    - EC_GROUP_new
    - EC_GROUP_free
    - EC_GROUP_copy
    linkageType: ''
    returnType: EC_GROUP
    signature: '*EC_GROUP_dup(const EC_GROUP *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: EC_GROUP_method_of
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: '*EC_GROUP_method_of(const EC_GROUP *group)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_METHOD*
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: EC_METHOD_get_field_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EC_METHOD_get_field_type(const EC_METHOD *meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:263,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:268,1
    - Dst: EC_POINT_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:272,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:276,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:279,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:282,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:285,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:292,1
    - Dst: ec_precompute_mont_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:293,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:296,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - group
    - generator
    - order
    - cofactor
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 299
      start: 259
    functionDepth: 4
    functionLinenumber: 259
    functionLinenumberEnd: 299
    functionName: EC_GROUP_set_generator
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - BN_is_odd
    - ec_precompute_mont_data
    - BN_MONT_CTX_free
    - EC_POINT_new
    - BN_zero
    - BN_copy
    - ECerr
    - EC_POINT_copy
    linkageType: ''
    returnType: int
    signature: "EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator,\n
      \                          const BIGNUM *order, const BIGNUM *cofactor)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: EC_GROUP_get0_generator
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: EC_POINT
    signature: '*EC_GROUP_get0_generator(const EC_GROUP *group)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: EC_GROUP_get_mont_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BN_MONT_CTX
    signature: '*EC_GROUP_get_mont_data(const EC_GROUP *group)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:315,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - group
    - order
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 319
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 319
    functionName: EC_GROUP_get_order
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 5
    functionsReached:
    - BN_is_zero
    - BN_copy
    linkageType: ''
    returnType: int
    signature: EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: EC_GROUP_get0_order
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: '*EC_GROUP_get0_order(const EC_GROUP *group)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:328,1
    - Dst: EC_GROUP*::meth::group_order_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: EC_GROUP_order_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached:
    - EC_GROUP*::meth::group_order_bits
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: EC_GROUP_order_bits(const EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:338,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - group
    - cofactor
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 342
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 342
    functionName: EC_GROUP_get_cofactor
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - BN_is_zero
    - BN_copy
    linkageType: ''
    returnType: int
    signature: "EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor,\n                          BN_CTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 347
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 347
    functionName: EC_GROUP_get0_cofactor
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: '*EC_GROUP_get0_cofactor(const EC_GROUP *group)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - group
    - nid
    argTypes:
    - EC_GROUP*
    - int
    constantsTouched: []
    func_position:
      end: 352
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 352
    functionName: EC_GROUP_set_curve_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EC_GROUP_set_curve_name(EC_GROUP *group, int nid)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 357
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 357
    functionName: EC_GROUP_get_curve_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EC_GROUP_get_curve_name(const EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - group
    - flag
    argTypes:
    - EC_GROUP*
    - int
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: EC_GROUP_set_asn1_flag
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 367
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 367
    functionName: EC_GROUP_get_asn1_flag
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: EC_GROUP_get_asn1_flag(const EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - group
    - form
    argTypes:
    - EC_GROUP*
    - point_conversion_form_t
    constantsTouched: []
    func_position:
      end: 373
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 373
    functionName: EC_GROUP_set_point_conversion_form
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EC_GROUP_set_point_conversion_form(EC_GROUP *group,\n                                        point_conversion_form_t
      form)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 379
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 379
    functionName: EC_GROUP_get_point_conversion_form
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: point_conversion_form_t
    signature: "EC_GROUP_get_point_conversion_form(const EC_GROUP\n                                                           *group)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:383,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:390,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - group
    - p
    - len
    argTypes:
    - EC_GROUP*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 396
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 396
    functionName: EC_GROUP_set_seed
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - memcpy
    - OPENSSL_malloc
    linkageType: ''
    returnType: size_t
    signature: EC_GROUP_set_seed(EC_GROUP *group, const unsigned char *p, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 401
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 401
    functionName: EC_GROUP_get0_seed
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: '*EC_GROUP_get0_seed(const EC_GROUP *group)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 406
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 406
    functionName: EC_GROUP_get_seed_len
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: EC_GROUP_get_seed_len(const EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:412,1
    - Dst: EC_GROUP*::meth::group_set_curve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 416
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 416
    functionName: EC_GROUP_set_curve_GFp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - EC_GROUP*::meth::group_set_curve
    - ECerr
    linkageType: ''
    returnType: int
    signature: "EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, const BIGNUM
      *a,\n                           const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:422,1
    - Dst: EC_GROUP*::meth::group_get_curve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 426
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 426
    functionName: EC_GROUP_get_curve_GFp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 3
    functionsReached:
    - ECerr
    - EC_GROUP*::meth::group_get_curve
    linkageType: ''
    returnType: int
    signature: "EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, BIGNUM *a,\n
      \                          BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:433,1
    - Dst: EC_GROUP*::meth::group_set_curve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 438
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 438
    functionName: EC_GROUP_set_curve_GF2m
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - EC_GROUP*::meth::group_set_curve
    - ECerr
    linkageType: ''
    returnType: int
    signature: "EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const BIGNUM
      *a,\n                            const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:444,1
    - Dst: EC_GROUP*::meth::group_get_curve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 449
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 449
    functionName: EC_GROUP_get_curve_GF2m
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached:
    - ECerr
    - EC_GROUP*::meth::group_get_curve
    linkageType: ''
    returnType: int
    signature: "EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM *a,\n
      \                           BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:455,1
    - Dst: EC_GROUP*::meth::group_get_degree
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 459
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 459
    functionName: EC_GROUP_get_degree
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 6
    functionsReached:
    - ECerr
    - EC_GROUP*::meth::group_get_degree
    linkageType: ''
    returnType: int
    signature: EC_GROUP_get_degree(const EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:464,1
    - Dst: EC_GROUP*::meth::group_check_discriminant
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 469
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 469
    functionName: EC_GROUP_check_discriminant
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - ECerr
    - EC_GROUP*::meth::group_check_discriminant
    linkageType: ''
    returnType: int
    signature: EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_METHOD_get_field_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:478,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:478,1
    - Dst: EC_METHOD_get_field_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:479,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:479,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:482,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:482,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:483,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:483,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:489,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:493,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:494,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:495,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:496,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:497,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:498,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:499,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:501,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:502,1
    - Dst: EC_GROUP*::meth::group_get_curve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:510,1
    - Dst: EC_GROUP*::meth::group_get_curve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:511,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:514,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:514,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:514,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:518,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:518,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:519,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:525,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:526,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:527,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:528,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:530,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:531,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:534,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:534,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:538,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:539,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 45
    argCount: 3
    argNames:
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_GROUP*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 542
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 542
    functionName: EC_GROUP_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_method_of
    - EC_GROUP_get_curve_name
    - EC_GROUP_get0_order
    - EC_GROUP_get0_generator
    - BN_cmp
    - BN_CTX_end
    - EC_METHOD_get_field_type
    - BN_CTX_start
    - BN_CTX_free
    - EC_POINT_cmp
    - BN_CTX_new
    - BN_CTX_get
    - EC_GROUP*::meth::group_get_curve
    - EC_GROUP_get0_cofactor
    linkageType: ''
    returnType: int
    signature: EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:551,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:555,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:559,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:561,1
    - Dst: EC_POINT*::meth::point_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:567,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:568,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 573
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 573
    functionName: EC_POINT_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 39
    functionsReached:
    - EC_POINT*::meth::point_init
    - ECerr
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EC_POINT
    signature: '*EC_POINT_new(const EC_GROUP *group)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT*::meth::point_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:581,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:582,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 583
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 583
    functionName: EC_POINT_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 37
    functionsReached:
    - EC_POINT*::meth::point_finish
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: EC_POINT_free(EC_POINT *point)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT*::meth::point_clear_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:591,1
    - Dst: EC_POINT*::meth::point_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:593,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:594,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 595
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 595
    functionName: EC_POINT_clear_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 7
    functionsReached:
    - EC_POINT*::meth::point_finish
    - OPENSSL_clear_free
    - EC_POINT*::meth::point_clear_finish
    linkageType: ''
    returnType: void
    signature: EC_POINT_clear_free(EC_POINT *point)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:600,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:604,1
    - Dst: EC_POINT*::meth::point_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:609,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_POINT*
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 610
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 610
    functionName: EC_POINT_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 9
    functionsReached:
    - ECerr
    - EC_POINT*::meth::point_copy
    linkageType: ''
    returnType: int
    signature: EC_POINT_copy(EC_POINT *dest, const EC_POINT *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:620,1
    - Dst: EC_POINT_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:623,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - a
    - group
    argTypes:
    - EC_POINT*
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 629
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 629
    functionName: EC_POINT_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached:
    - EC_POINT_new
    - EC_POINT_copy
    - EC_POINT_free
    linkageType: ''
    returnType: EC_POINT
    signature: '*EC_POINT_dup(const EC_POINT *a, const EC_GROUP *group)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 634
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 634
    functionName: EC_POINT_method_of
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: '*EC_POINT_method_of(const EC_POINT *point)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:639,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:644,1
    - Dst: EC_GROUP*::meth::point_set_to_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:647,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - group
    - point
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 648
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 648
    functionName: EC_POINT_set_to_infinity
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 6
    functionsReached:
    - ECerr
    - EC_GROUP*::meth::point_set_to_infinity
    linkageType: ''
    returnType: int
    signature: EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:656,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:661,1
    - Dst: EC_GROUP*::meth::point_set_Jprojective_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:665,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - group
    - point
    - x
    - y
    - z
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 667
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 667
    functionName: EC_POINT_set_Jprojective_coordinates_GFp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 4
    functionsReached:
    - ECerr
    - EC_GROUP*::meth::point_set_Jprojective_coordinates_GFp
    linkageType: ''
    returnType: int
    signature: "EC_POINT_set_Jprojective_coordinates_GFp(const EC_GROUP *group,\n
      \                                            EC_POINT *point, const BIGNUM *x,\n
      \                                            const BIGNUM *y, const BIGNUM *z,\n
      \                                            BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:675,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:680,1
    - Dst: EC_GROUP*::meth::point_get_Jprojective_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - group
    - point
    - x
    - y
    - z
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 686
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 686
    functionName: EC_POINT_get_Jprojective_coordinates_GFp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - ECerr
    - EC_GROUP*::meth::point_get_Jprojective_coordinates_GFp
    linkageType: ''
    returnType: int
    signature: "EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group,\n
      \                                            const EC_POINT *point, BIGNUM *x,\n
      \                                            BIGNUM *y, BIGNUM *z,\n                                             BN_CTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:693,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:698,1
    - Dst: EC_GROUP*::meth::point_set_affine_coordinates
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:702,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:705,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:706,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 711
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 711
    functionName: EC_POINT_set_affine_coordinates_GFp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 16
    functionsReached:
    - ECerr
    - EC_POINT_is_on_curve
    - EC_GROUP*::meth::point_set_affine_coordinates
    linkageType: ''
    returnType: int
    signature: "EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group,\n                                        EC_POINT
      *point, const BIGNUM *x,\n                                        const BIGNUM
      *y, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:719,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:724,1
    - Dst: EC_GROUP*::meth::point_set_affine_coordinates
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:728,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:731,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:732,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 737
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 737
    functionName: EC_POINT_set_affine_coordinates_GF2m
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 3
    functionsReached:
    - ECerr
    - EC_POINT_is_on_curve
    - EC_GROUP*::meth::point_set_affine_coordinates
    linkageType: ''
    returnType: int
    signature: "EC_POINT_set_affine_coordinates_GF2m(const EC_GROUP *group,\n                                         EC_POINT
      *point, const BIGNUM *x,\n                                         const BIGNUM
      *y, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:745,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:750,1
    - Dst: EC_GROUP*::meth::point_get_affine_coordinates
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:754,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 755
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 755
    functionName: EC_POINT_get_affine_coordinates_GFp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 9
    functionsReached:
    - ECerr
    - EC_GROUP*::meth::point_get_affine_coordinates
    linkageType: ''
    returnType: int
    signature: "EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group,\n                                        const
      EC_POINT *point, BIGNUM *x,\n                                        BIGNUM
      *y, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:763,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:768,1
    - Dst: EC_GROUP*::meth::point_get_affine_coordinates
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:772,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 773
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 773
    functionName: EC_POINT_get_affine_coordinates_GF2m
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 4
    functionsReached:
    - ECerr
    - EC_GROUP*::meth::point_get_affine_coordinates
    linkageType: ''
    returnType: int
    signature: "EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP *group,\n                                         const
      EC_POINT *point, BIGNUM *x,\n                                         BIGNUM
      *y, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:780,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:785,1
    - Dst: EC_GROUP*::meth::add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:788,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - group
    - r
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 789
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 789
    functionName: EC_POINT_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 9
    functionsReached:
    - ECerr
    - EC_GROUP*::meth::add
    linkageType: ''
    returnType: int
    signature: "EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a,\n
      \                const EC_POINT *b, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:795,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:799,1
    - Dst: EC_GROUP*::meth::dbl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:802,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 803
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 803
    functionName: EC_POINT_dbl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 5
    functionsReached:
    - ECerr
    - EC_GROUP*::meth::dbl
    linkageType: ''
    returnType: int
    signature: "EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a,\n
      \                BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:808,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:812,1
    - Dst: EC_GROUP*::meth::invert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:815,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - group
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 816
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 816
    functionName: EC_POINT_invert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 3
    functionsReached:
    - ECerr
    - EC_GROUP*::meth::invert
    linkageType: ''
    returnType: int
    signature: EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:821,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:826,1
    - Dst: EC_GROUP*::meth::is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:829,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - group
    - point
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 830
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 830
    functionName: EC_POINT_is_at_infinity
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 17
    functionsReached:
    - ECerr
    - EC_GROUP*::meth::is_at_infinity
    linkageType: ''
    returnType: int
    signature: EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *point)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:843,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:847,1
    - Dst: EC_GROUP*::meth::is_on_curve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 851
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 851
    functionName: EC_POINT_is_on_curve
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 4
    functionsReached:
    - ECerr
    - EC_GROUP*::meth::is_on_curve
    linkageType: ''
    returnType: int
    signature: "EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point,\n
      \                        BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:857,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:861,1
    - Dst: EC_GROUP*::meth::point_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:864,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - group
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 865
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 865
    functionName: EC_POINT_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 16
    functionsReached:
    - ECerr
    - EC_GROUP*::meth::point_cmp
    linkageType: ''
    returnType: int
    signature: "EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT
      *b,\n                 BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:870,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:874,1
    - Dst: EC_GROUP*::meth::make_affine
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:877,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 878
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 878
    functionName: EC_POINT_make_affine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - ECerr
    - EC_GROUP*::meth::make_affine
    linkageType: ''
    returnType: int
    signature: EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX
      *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:886,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:891,1
    - Dst: EC_GROUP*::meth::points_make_affine
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:895,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - group
    - num
    - points
    - ctx
    argTypes:
    - EC_GROUP*
    - size_t
    - EC_POINT*[]
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 896
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 896
    functionName: EC_POINTs_make_affine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached:
    - EC_GROUP*::meth::points_make_affine
    - ECerr
    linkageType: ''
    returnType: int
    signature: "EC_POINTs_make_affine(const EC_GROUP *group, size_t num,\n                          EC_POINT
      *points[], BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ec_wNAF_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:910,1
    - Dst: EC_GROUP*::meth::mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 7
    argNames:
    - group
    - r
    - scalar
    - num
    - points
    - scalars
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - size_t
    - EC_POINT*[]
    - BIGNUM*[]
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 913
      start: 904
    functionDepth: 4
    functionLinenumber: 904
    functionLinenumberEnd: 913
    functionName: EC_POINTs_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - EC_GROUP*::meth::mul
    - ec_wNAF_mul
    linkageType: ''
    returnType: int
    signature: "EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *scalar,\n
      \                 size_t num, const EC_POINT *points[],\n                  const
      BIGNUM *scalars[], BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINTs_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - group
    - r
    - g_scalar
    - point
    - p_scalar
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - EC_POINT*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 929
      start: 915
    functionDepth: 5
    functionLinenumber: 915
    functionLinenumberEnd: 929
    functionName: EC_POINT_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 14
    functionsReached:
    - EC_POINTs_mul
    linkageType: ''
    returnType: int
    signature: "EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *g_scalar,\n
      \                const EC_POINT *point, const BIGNUM *p_scalar, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ec_wNAF_precompute_mult
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:935,1
    - Dst: EC_GROUP*::meth::precompute_mult
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:938,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 941
      start: 931
    functionDepth: 3
    functionLinenumber: 931
    functionLinenumberEnd: 941
    functionName: EC_GROUP_precompute_mult
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - EC_GROUP*::meth::precompute_mult
    - ec_wNAF_precompute_mult
    linkageType: ''
    returnType: int
    signature: EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ec_wNAF_have_precompute_mult
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:947,1
    - Dst: EC_GROUP*::meth::have_precompute_mult
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:950,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 954
      start: 943
    functionDepth: 1
    functionLinenumber: 943
    functionLinenumberEnd: 954
    functionName: EC_GROUP_have_precompute_mult
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - ec_wNAF_have_precompute_mult
    - EC_GROUP*::meth::have_precompute_mult
    linkageType: ''
    returnType: int
    signature: EC_GROUP_have_precompute_mult(const EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:962,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:965,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:971,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:975,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:976,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:985,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 987
      start: 960
    functionDepth: 5
    functionLinenumber: 960
    functionLinenumberEnd: 987
    functionName: ec_precompute_mont_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - BN_MONT_CTX_new
    - BN_MONT_CTX_free
    - BN_CTX_free
    - BN_CTX_new
    - BN_MONT_CTX_set
    linkageType: ''
    returnType: int
    signature: ec_precompute_mont_data(EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - idx
    - arg
    argTypes:
    - EC_KEY*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 992
      start: 989
    functionDepth: 1
    functionLinenumber: 989
    functionLinenumberEnd: 992
    functionName: EC_KEY_set_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: EC_KEY_set_ex_data(EC_KEY *key, int idx, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - idx
    argTypes:
    - EC_KEY*
    - int
    constantsTouched: []
    func_position:
      end: 997
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 997
    functionName: EC_KEY_get_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: '*EC_KEY_get_ex_data(const EC_KEY *key, int idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c:1003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 1004
      start: 999
    functionDepth: 2
    functionLinenumber: 999
    functionLinenumberEnd: 1004
    functionName: ec_group_simple_order_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: ec_group_simple_order_bits(const EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:40,1
    - Dst: EC_KEY*::group::meth::ecdh_compute_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - psec
    - pseclen
    - pub_key
    - ecdh
    argTypes:
    - unsigned char**
    - size_t*
    - EC_POINT*
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: ossl_ecdh_compute_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c
    functionUses: 0
    functionsReached:
    - ECerr
    - EC_KEY*::group::meth::ecdh_compute_key
    linkageType: ''
    returnType: int
    signature: "ossl_ecdh_compute_key(unsigned char **psec, size_t *pseclen,\n                          const
      EC_POINT *pub_key, const EC_KEY *ecdh)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:64,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:66,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:67,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:68,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:70,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:72,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:76,1
    - Dst: EC_KEY_get_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:78,1
    - Dst: EC_GROUP_get_cofactor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:79,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:80,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:81,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:87,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:88,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:92,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:93,1
    - Dst: EC_METHOD_get_field_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:97,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:97,1
    - Dst: EC_POINT_get_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:99,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:100,1
    - Dst: if
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:106,1
    - Dst: EC_POINT_get_affine_coordinates_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:106,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:107,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:113,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:114,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:116,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:119,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:120,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:124,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:125,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:126,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:137,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:139,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:140,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c:141,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 4
    argNames:
    - pout
    - poutlen
    - pub_key
    - ecdh
    argTypes:
    - unsigned char**
    - size_t*
    - EC_POINT*
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 143
      start: 52
    functionDepth: 6
    functionLinenumber: 52
    functionLinenumberEnd: 143
    functionName: ecdh_simple_compute_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_method_of
    - EC_KEY_get_flags
    - BN_mul
    - EC_KEY_get0_private_key
    - BN_CTX_get
    - if
    - ECerr
    - EC_POINT_free
    - BN_CTX_end
    - EC_METHOD_get_field_type
    - BN_CTX_start
    - BN_CTX_new
    - EC_POINT_get_affine_coordinates_GF2m
    - EC_POINT_get_affine_coordinates_GFp
    - memset
    - EC_GROUP_get_cofactor
    - EC_POINT_mul
    - EC_KEY_get0_group
    - OPENSSL_free
    - EC_GROUP_get_degree
    - EC_POINT_new
    - BN_CTX_free
    - BN_bn2bin
    - OPENSSL_malloc
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: "ecdh_simple_compute_key(unsigned char **pout, size_t *poutlen,\n                            const
      EC_POINT *pub_key, const EC_KEY *ecdh)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:30,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:31,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:34,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:35,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:38,1
    - Dst: ASN1_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:43,1
    - Dst: i2d_ECParameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:46,1
    - Dst: ASN1_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:48,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:49,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - pptype
    - ppval
    - ec_key
    argTypes:
    - int*
    - void**
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 56
      start: 26
    functionDepth: 8
    functionLinenumber: 26
    functionLinenumberEnd: 56
    functionName: eckey_param2type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get_asn1_flag
    - ASN1_STRING_free
    - EC_GROUP_get_curve_name
    - ASN1_STRING_new
    - OBJ_nid2obj
    - i2d_ECParameters
    - ECerr
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: eckey_param2type(int *pptype, void **ppval, EC_KEY *ec_key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: eckey_param2type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:66,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:67,1
    - Dst: i2o_ECPublicKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:70,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:73,1
    - Dst: i2o_ECPublicKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:77,1
    - Dst: X509_PUBKEY_set0_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:80,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:80,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:85,1
    - Dst: ASN1_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:87,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:88,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - pk
    - pkey
    argTypes:
    - X509_PUBKEY*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 90
      start: 58
    functionDepth: 9
    functionLinenumber: 58
    functionLinenumberEnd: 90
    functionName: eckey_pub_encode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_free
    - X509_PUBKEY_set0_param
    - eckey_param2type
    - OBJ_nid2obj
    - ASN1_OBJECT_free
    - i2o_ECPublicKey
    - ECerr
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: eckey_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_ECParameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:101,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:102,1
    - Dst: EC_KEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:112,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:113,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:116,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:116,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:119,1
    - Dst: EC_KEY_set_group
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:120,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:122,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:124,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:131,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - ptype
    - pval
    argTypes:
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 133
      start: 92
    functionDepth: 8
    functionLinenumber: 92
    functionLinenumberEnd: 133
    functionName: eckey_type2param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_set_asn1_flag
    - EC_GROUP_new_by_curve_name
    - EC_GROUP_free
    - OBJ_obj2nid
    - EC_KEY_free
    - d2i_ECParameters
    - EC_KEY_new
    - ECerr
    - EC_KEY_set_group
    linkageType: ''
    returnType: EC_KEY
    signature: '*eckey_type2param(int ptype, const void *pval)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:143,1
    - Dst: X509_ALGOR_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:145,1
    - Dst: eckey_type2param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:147,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:150,1
    - Dst: o2i_ECPublicKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:155,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:156,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:160,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - pkey
    - pubkey
    argTypes:
    - EVP_PKEY*
    - X509_PUBKEY*
    constantsTouched: []
    func_position:
      end: 166
      start: 135
    functionDepth: 9
    functionLinenumber: 135
    functionLinenumberEnd: 166
    functionName: eckey_pub_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign_EC_KEY
    - EC_KEY_free
    - eckey_type2param
    - o2i_ECPublicKey
    - ECerr
    - X509_PUBKEY_get0_param
    - X509_ALGOR_get0
    linkageType: ''
    returnType: int
    signature: eckey_pub_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:171,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:172,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:173,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 182
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 182
    functionName: eckey_pub_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_POINT_cmp
    - EC_KEY_get0_group
    - EC_KEY_get0_public_key
    linkageType: ''
    returnType: int
    signature: eckey_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_pkey_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:192,1
    - Dst: X509_ALGOR_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:194,1
    - Dst: eckey_type2param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:196,1
    - Dst: d2i_ECPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:202,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:203,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:207,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:211,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:213,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - pkey
    - p8
    argTypes:
    - EVP_PKEY*
    - PKCS8_PRIV_KEY_INFO*
    constantsTouched: []
    func_position:
      end: 215
      start: 184
    functionDepth: 9
    functionLinenumber: 184
    functionLinenumberEnd: 215
    functionName: eckey_priv_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - d2i_ECPrivateKey
    - EVP_PKEY_assign_EC_KEY
    - EC_KEY_free
    - eckey_type2param
    - ECerr
    - PKCS8_pkey_get0
    - X509_ALGOR_get0
    linkageType: ''
    returnType: int
    signature: eckey_priv_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: eckey_param2type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:225,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:226,1
    - Dst: EC_KEY_get_enc_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:236,1
    - Dst: EC_KEY_set_enc_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:237,1
    - Dst: i2d_ECPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:239,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:241,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:244,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:246,1
    - Dst: i2d_ECPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:250,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:251,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:252,1
    - Dst: PKCS8_pkey_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:256,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:256,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:258,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - p8
    - pkey
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 263
      start: 217
    functionDepth: 9
    functionLinenumber: 217
    functionLinenumberEnd: 263
    functionName: eckey_priv_encode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_set_enc_flags
    - PKCS8_pkey_set0
    - i2d_ECPrivateKey
    - eckey_param2type
    - OBJ_nid2obj
    - OPENSSL_free
    - ECerr
    - EC_KEY_get_enc_flags
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: eckey_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 268
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 268
    functionName: int_ec_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - ECDSA_size
    linkageType: ''
    returnType: int
    signature: int_ec_size(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_order_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:272,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: ec_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_order_bits
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: ec_bits(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 289
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 289
    functionName: ec_security_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ec_security_bits(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 296
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 296
    functionName: ec_missing_parameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: ec_missing_parameters(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:300,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:300,1
    - Dst: EC_KEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:304,1
    - Dst: EC_KEY_set_group
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:308,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:310,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 312
      start: 298
    functionDepth: 6
    functionLinenumber: 298
    functionLinenumberEnd: 312
    functionName: ec_copy_parameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_free
    - EC_GROUP_dup
    - EC_KEY_new
    - EC_KEY_get0_group
    - EC_KEY_set_group
    linkageType: ''
    returnType: int
    signature: ec_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:316,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:317,1
    - Dst: EC_GROUP_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 324
      start: 314
    functionDepth: 3
    functionLinenumber: 314
    functionLinenumberEnd: 324
    functionName: ec_cmp_parameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_get0_group
    - EC_GROUP_cmp
    linkageType: ''
    returnType: int
    signature: ec_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 329
      start: 326
    functionDepth: 4
    functionLinenumber: 326
    functionLinenumberEnd: 329
    functionName: int_ec_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_free
    linkageType: ''
    returnType: void
    signature: int_ec_free(EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:345,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:346,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:350,1
    - Dst: EC_KEY_key2buf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:351,1
    - Dst: EC_KEY_get_conv_form
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:351,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:356,1
    - Dst: EC_KEY_priv2buf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:357,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:369,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:371,1
    - Dst: EC_GROUP_order_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:372,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:376,1
    - Dst: ASN1_buf_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:378,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:383,1
    - Dst: ASN1_buf_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:385,1
    - Dst: ECPKParameters_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:389,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:394,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:395,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:396,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 55
    argCount: 4
    argNames:
    - bp
    - x
    - 'off'
    - ktype
    argTypes:
    - BIO*
    - EC_KEY*
    - int
    - ec_print_t
    constantsTouched: []
    func_position:
      end: 398
      start: 337
    functionDepth: 4
    functionLinenumber: 337
    functionLinenumberEnd: 398
    functionName: do_EC_KEY_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_order_bits
    - BIO_indent
    - ECPKParameters_print
    - EC_KEY_get0_private_key
    - EC_KEY_priv2buf
    - OPENSSL_clear_free
    - EC_KEY_key2buf
    - EC_KEY_get0_public_key
    - OPENSSL_free
    - EC_KEY_get_conv_form
    - ASN1_buf_print
    - ECerr
    - BIO_printf
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: do_EC_KEY_print(BIO *bp, const EC_KEY *x, int off, ec_print_t ktype)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_ECParameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:405,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:406,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pkey
    - pder
    - derlen
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    - int
    constantsTouched: []
    func_position:
      end: 411
      start: 400
    functionDepth: 8
    functionLinenumber: 400
    functionLinenumberEnd: 411
    functionName: eckey_param_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign_EC_KEY
    - d2i_ECParameters
    - ECerr
    linkageType: ''
    returnType: int
    signature: "eckey_param_decode(EVP_PKEY *pkey,\n                              const
      unsigned char **pder, int derlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_ECParameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - pder
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 8
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: eckey_param_encode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_ECParameters
    linkageType: ''
    returnType: int
    signature: eckey_param_encode(const EVP_PKEY *pkey, unsigned char **pder)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_EC_KEY_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 422
      start: 418
    functionDepth: 5
    functionLinenumber: 418
    functionLinenumberEnd: 422
    functionName: eckey_param_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - do_EC_KEY_print
    linkageType: ''
    returnType: int
    signature: "eckey_param_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                             ASN1_PCTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_EC_KEY_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 428
      start: 424
    functionDepth: 5
    functionLinenumber: 424
    functionLinenumberEnd: 428
    functionName: eckey_pub_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - do_EC_KEY_print
    linkageType: ''
    returnType: int
    signature: "eckey_pub_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                           ASN1_PCTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_EC_KEY_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 434
      start: 430
    functionDepth: 5
    functionLinenumber: 430
    functionLinenumberEnd: 434
    functionName: eckey_priv_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - do_EC_KEY_print
    linkageType: ''
    returnType: int
    signature: "eckey_priv_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                            ASN1_PCTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_ECPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:441,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:442,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pkey
    - pder
    - derlen
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    - int
    constantsTouched: []
    func_position:
      end: 447
      start: 436
    functionDepth: 7
    functionLinenumber: 436
    functionLinenumberEnd: 447
    functionName: old_ec_priv_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign_EC_KEY
    - d2i_ECPrivateKey
    - ECerr
    linkageType: ''
    returnType: int
    signature: "old_ec_priv_decode(EVP_PKEY *pkey,\n                              const
      unsigned char **pder, int derlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_ECPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - pder
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 452
      start: 449
    functionDepth: 7
    functionLinenumber: 449
    functionLinenumberEnd: 452
    functionName: old_ec_priv_encode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_ECPrivateKey
    linkageType: ''
    returnType: int
    signature: old_ec_priv_encode(const EVP_PKEY *pkey, unsigned char **pder)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_SIGNER_INFO_get0_algs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:461,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:464,1
    - Dst: OBJ_find_sigid_by_algs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:467,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:467,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:469,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:469,1
    - Dst: CMS_SignerInfo_get0_algs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:477,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:480,1
    - Dst: OBJ_find_sigid_by_algs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:483,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:483,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:485,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:485,1
    - Dst: ecdh_cms_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:491,1
    - Dst: ecdh_cms_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:493,1
    - Dst: EC_KEY_oct2key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:506,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:506,1
    - Dst: EC_KEY_key2buf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:509,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:509,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 517
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 517
    functionName: ec_pkey_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - OBJ_find_sigid_by_algs
    - OBJ_obj2nid
    - X509_ALGOR_set0
    - ecdh_cms_encrypt
    - EVP_PKEY_id
    - OBJ_nid2obj
    - EC_KEY_oct2key
    - EVP_PKEY_get0_EC_KEY
    - ecdh_cms_decrypt
    - EC_KEY_key2buf
    - CMS_SignerInfo_get0_algs
    - PKCS7_SIGNER_INFO_get0_algs
    linkageType: ''
    returnType: int
    signature: ec_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_EC_KEY_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bp
    - x
    - 'off'
    argTypes:
    - BIO*
    - EC_KEY*
    - int
    constantsTouched: []
    func_position:
      end: 559
      start: 553
    functionDepth: 5
    functionLinenumber: 553
    functionLinenumberEnd: 559
    functionName: EC_KEY_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 5
    functionsReached:
    - do_EC_KEY_print
    linkageType: ''
    returnType: int
    signature: EC_KEY_print(BIO *bp, const EC_KEY *x, int off)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_EC_KEY_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 564
      start: 561
    functionDepth: 5
    functionLinenumber: 561
    functionLinenumberEnd: 564
    functionName: ECParameters_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 1
    functionsReached:
    - do_EC_KEY_print
    linkageType: ''
    returnType: int
    signature: ECParameters_print(BIO *bp, const EC_KEY *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:579,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:580,1
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:586,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:589,1
    - Dst: EC_KEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:590,1
    - Dst: EC_KEY_set_group
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:593,1
    - Dst: eckey_type2param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:596,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:601,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:602,1
    - Dst: o2i_ECPublicKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:605,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:607,1
    - Dst: EVP_PKEY_set1_EC_KEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:610,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:611,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:614,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:615,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 44
    argCount: 3
    argNames:
    - pctx
    - alg
    - pubkey
    argTypes:
    - EVP_PKEY_CTX*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    constantsTouched: []
    func_position:
      end: 617
      start: 568
    functionDepth: 9
    functionLinenumber: 568
    functionLinenumberEnd: 617
    functionName: ecdh_cms_set_peerkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_get0_data
    - EVP_PKEY_free
    - EVP_PKEY_set1_EC_KEY
    - EVP_PKEY_new
    - OBJ_obj2nid
    - EC_KEY_free
    - EVP_PKEY_derive_set_peer
    - eckey_type2param
    - EC_KEY_new
    - o2i_ECPublicKey
    - ASN1_STRING_length
    - EC_KEY_get0_group
    - EVP_PKEY_CTX_get0_pkey
    - EC_KEY_set_group
    - X509_ALGOR_get0
    linkageType: ''
    returnType: int
    signature: "ecdh_cms_set_peerkey(EVP_PKEY_CTX *pctx,\n                                X509_ALGOR
      *alg, ASN1_BIT_STRING *pubkey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_find_sigid_algs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:628,1
    - Dst: EVP_PKEY_CTX_set_ecdh_cofactor_mode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:638,1
    - Dst: EVP_PKEY_CTX_set_ecdh_kdf_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:641,1
    - Dst: EVP_get_digestbynid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:644,1
    - Dst: EVP_PKEY_CTX_set_ecdh_kdf_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:648,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - pctx
    - eckdf_nid
    argTypes:
    - EVP_PKEY_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 651
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 651
    functionName: ecdh_cms_set_kdf_param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_ecdh_kdf_md
    - EVP_PKEY_CTX_set_ecdh_cofactor_mode
    - EVP_PKEY_CTX_set_ecdh_kdf_type
    - EVP_get_digestbynid
    - OBJ_find_sigid_algs
    linkageType: ''
    returnType: int
    signature: ecdh_cms_set_kdf_param(EVP_PKEY_CTX *pctx, int eckdf_nid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_kari_get0_alg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:665,1
    - Dst: ecdh_cms_set_kdf_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:668,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:668,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:669,1
    - Dst: d2i_X509_ALGOR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:678,1
    - Dst: CMS_RecipientInfo_kari_get0_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:681,1
    - Dst: EVP_get_cipherbyobj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:684,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:685,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:687,1
    - Dst: EVP_CIPHER_asn1_to_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:689,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:692,1
    - Dst: EVP_PKEY_CTX_set_ecdh_kdf_outlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:693,1
    - Dst: CMS_SharedInfo_encode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:696,1
    - Dst: EVP_PKEY_CTX_set0_ecdh_kdf_ukm
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:701,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:707,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:708,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 2
    argNames:
    - pctx
    - ri
    argTypes:
    - EVP_PKEY_CTX*
    - CMS_RecipientInfo*
    constantsTouched: []
    func_position:
      end: 710
      start: 653
    functionDepth: 4
    functionLinenumber: 653
    functionLinenumberEnd: 710
    functionName: ecdh_cms_set_shared_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_EncryptInit_ex
    - CMS_RecipientInfo_kari_get0_ctx
    - EVP_CIPHER_mode
    - EVP_PKEY_CTX_set_ecdh_kdf_outlen
    - ecdh_cms_set_kdf_param
    - OBJ_obj2nid
    - d2i_X509_ALGOR
    - EVP_get_cipherbyobj
    - EVP_CIPHER_asn1_to_param
    - EVP_PKEY_CTX_set0_ecdh_kdf_ukm
    - EVP_CIPHER_CTX_key_length
    - OPENSSL_free
    - CMS_RecipientInfo_kari_get0_alg
    - CMS_SharedInfo_encode
    - ECerr
    - X509_ALGOR_free
    linkageType: ''
    returnType: int
    signature: ecdh_cms_set_shared_info(EVP_PKEY_CTX *pctx, CMS_RecipientInfo *ri)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_get0_pkey_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:715,1
    - Dst: EVP_PKEY_CTX_get0_peerkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:719,1
    - Dst: CMS_RecipientInfo_kari_get0_orig_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:722,1
    - Dst: ecdh_cms_set_peerkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:727,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:728,1
    - Dst: ecdh_cms_set_shared_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:733,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:734,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    constantsTouched: []
    func_position:
      end: 738
      start: 712
    functionDepth: 10
    functionLinenumber: 712
    functionLinenumberEnd: 738
    functionName: ecdh_cms_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 1
    functionsReached:
    - CMS_RecipientInfo_kari_get0_orig_id
    - ecdh_cms_set_peerkey
    - ecdh_cms_set_shared_info
    - ECerr
    - CMS_RecipientInfo_get0_pkey_ctx
    - EVP_PKEY_CTX_get0_peerkey
    linkageType: ''
    returnType: int
    signature: ecdh_cms_decrypt(CMS_RecipientInfo *ri)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_get0_pkey_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:756,1
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:760,1
    - Dst: CMS_RecipientInfo_kari_get0_orig_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:761,1
    - Dst: X509_ALGOR_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:764,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:766,1
    - Dst: i2o_ECPublicKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:772,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:775,1
    - Dst: i2o_ECPublicKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:779,1
    - Dst: ASN1_STRING_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:782,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:787,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:787,1
    - Dst: EVP_PKEY_CTX_get_ecdh_kdf_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:792,1
    - Dst: EVP_PKEY_CTX_get_ecdh_kdf_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:795,1
    - Dst: EVP_PKEY_CTX_get_ecdh_cofactor_mode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:797,1
    - Dst: EVP_PKEY_CTX_set_ecdh_kdf_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:807,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:814,1
    - Dst: EVP_PKEY_CTX_set_ecdh_kdf_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:815,1
    - Dst: CMS_RecipientInfo_kari_get0_alg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:819,1
    - Dst: OBJ_find_sigid_by_algs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:824,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:824,1
    - Dst: CMS_RecipientInfo_kari_get0_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:827,1
    - Dst: EVP_CIPHER_CTX_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:828,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:829,1
    - Dst: X509_ALGOR_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:833,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:836,1
    - Dst: ASN1_TYPE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:837,1
    - Dst: EVP_CIPHER_param_to_asn1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:840,1
    - Dst: ASN1_TYPE_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:842,1
    - Dst: ASN1_TYPE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:843,1
    - Dst: EVP_PKEY_CTX_set_ecdh_kdf_outlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:847,1
    - Dst: CMS_SharedInfo_encode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:850,1
    - Dst: EVP_PKEY_CTX_set0_ecdh_kdf_ukm
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:855,1
    - Dst: i2d_X509_ALGOR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:863,1
    - Dst: ASN1_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:866,1
    - Dst: ASN1_STRING_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:869,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:871,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:871,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:876,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c:877,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 111
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    constantsTouched: []
    func_position:
      end: 879
      start: 740
    functionDepth: 2
    functionLinenumber: 740
    functionLinenumberEnd: 879
    functionName: ecdh_cms_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_CTX_get0_pkey
    - OBJ_find_sigid_by_algs
    - EVP_PKEY_CTX_get_ecdh_kdf_type
    - X509_ALGOR_set0
    - EVP_MD_type
    - EVP_CIPHER_CTX_key_length
    - ASN1_TYPE_free
    - ASN1_STRING_set0
    - EVP_PKEY_CTX_set_ecdh_kdf_md
    - EVP_CIPHER_CTX_type
    - EVP_sha1
    - EVP_PKEY_CTX_get_ecdh_cofactor_mode
    - ASN1_STRING_new
    - EVP_CIPHER_param_to_asn1
    - OBJ_nid2obj
    - ASN1_TYPE_new
    - X509_ALGOR_get0
    - CMS_RecipientInfo_kari_get0_orig_id
    - X509_ALGOR_new
    - EVP_PKEY_CTX_set_ecdh_kdf_type
    - EVP_PKEY_CTX_get_ecdh_kdf_md
    - CMS_RecipientInfo_get0_pkey_ctx
    - CMS_RecipientInfo_kari_get0_alg
    - CMS_SharedInfo_encode
    - i2d_X509_ALGOR
    - OPENSSL_free
    - CMS_RecipientInfo_kari_get0_ctx
    - EVP_PKEY_CTX_set_ecdh_kdf_outlen
    - i2o_ECPublicKey
    - EVP_PKEY_CTX_set0_ecdh_kdf_ukm
    - X509_ALGOR_free
    - OPENSSL_malloc
    - ASN1_TYPE_get
    linkageType: ''
    returnType: int
    signature: ecdh_cms_encrypt(CMS_RecipientInfo *ri)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 90
    functionName: EC_GF2m_simple_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: '*EC_GF2m_simple_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:98,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:99,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:100,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:103,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:104,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 109
    functionName: ec_GF2m_simple_group_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_free
    linkageType: ''
    returnType: int
    signature: ec_GF2m_simple_group_init(EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:117,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:118,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: ec_GF2m_simple_group_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: void
    signature: ec_GF2m_simple_group_finish(EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:128,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:129,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 137
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 137
    functionName: ec_GF2m_simple_group_clear_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: ec_GF2m_simple_group_clear_finish(EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:145,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:147,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:149,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:157,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:160,1
    - Dst: bn_set_all_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:163,1
    - Dst: bn_set_all_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:164,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_GROUP*
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 166
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 166
    functionName: ec_GF2m_simple_group_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - bn_set_all_zero
    - bn_wexpand
    - BN_copy
    linkageType: ''
    returnType: int
    signature: ec_GF2m_simple_group_copy(EC_GROUP *dest, const EC_GROUP *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:176,1
    - Dst: BN_GF2m_poly2arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:178,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:180,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:185,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:187,1
    - Dst: bn_set_all_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:190,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:193,1
    - Dst: bn_wexpand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:195,1
    - Dst: bn_set_all_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:198,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 203
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 203
    functionName: ec_GF2m_simple_group_set_curve
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_poly2arr
    - bn_set_all_zero
    - BN_GF2m_mod_arr
    - BN_copy
    - ECerr
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: "ec_GF2m_simple_group_set_curve(EC_GROUP *group,\n                                   const
      BIGNUM *p, const BIGNUM *a,\n                                   const BIGNUM
      *b, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:215,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:220,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:225,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 233
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 233
    functionName: ec_GF2m_simple_group_get_curve
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_copy
    linkageType: ''
    returnType: int
    signature: "ec_GF2m_simple_group_get_curve(const EC_GROUP *group, BIGNUM *p,\n
      \                                  BIGNUM *a, BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: ec_GF2m_simple_group_get_degree
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: ec_GF2m_simple_group_get_degree(const EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:256,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:258,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:263,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:264,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:268,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:275,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:282,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:283,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 285
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 285
    functionName: ec_GF2m_simple_group_check_discriminant
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_is_zero
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_free
    - BN_GF2m_mod_arr
    - BN_CTX_new
    - BN_CTX_get
    - ECerr
    linkageType: ''
    returnType: int
    signature: "ec_GF2m_simple_group_check_discriminant(const EC_GROUP *group,\n                                            BN_CTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:290,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:291,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:292,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:295,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:296,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 301
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 301
    functionName: ec_GF2m_simple_point_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_free
    linkageType: ''
    returnType: int
    signature: ec_GF2m_simple_point_init(EC_POINT *point)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:306,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:307,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 309
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 309
    functionName: ec_GF2m_simple_point_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: void
    signature: ec_GF2m_simple_point_finish(EC_POINT *point)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:314,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:315,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 318
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 318
    functionName: ec_GF2m_simple_point_clear_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: ec_GF2m_simple_point_clear_finish(EC_POINT *point)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:326,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:328,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:330,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_POINT*
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 335
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 335
    functionName: ec_GF2m_simple_point_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_copy
    linkageType: ''
    returnType: int
    signature: ec_GF2m_simple_point_copy(EC_POINT *dest, const EC_POINT *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - group
    - point
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 347
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 347
    functionName: ec_GF2m_simple_point_set_to_infinity
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_zero
    linkageType: ''
    returnType: int
    signature: "ec_GF2m_simple_point_set_to_infinity(const EC_GROUP *group,\n                                         EC_POINT
      *point)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:360,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:365,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:367,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:368,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:370,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:371,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:371,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:373,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 379
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 379
    functionName: ec_GF2m_simple_point_set_affine_coordinates
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_set_negative
    - ECerr
    - BN_value_one
    - BN_copy
    linkageType: ''
    returnType: int
    signature: "ec_GF2m_simple_point_set_affine_coordinates(const EC_GROUP *group,\n
      \                                               EC_POINT *point,\n                                                const
      BIGNUM *x,\n                                                const BIGNUM *y,
      BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:392,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:393,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:398,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:398,1
    - Dst: ECerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:399,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:404,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:406,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:409,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:411,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 417
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 417
    functionName: ec_GF2m_simple_point_get_affine_coordinates
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_value_one
    - BN_set_negative
    - EC_POINT_is_at_infinity
    - BN_cmp
    - BN_copy
    - ECerr
    linkageType: ''
    returnType: int
    signature: "ec_GF2m_simple_point_get_affine_coordinates(const EC_GROUP *group,\n
      \                                               const EC_POINT *point,\n                                                BIGNUM
      *x, BIGNUM *y,\n                                                BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:430,1
    - Dst: EC_POINT_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:431,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:436,1
    - Dst: EC_POINT_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:437,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:443,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:448,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:449,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:450,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:451,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:452,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:453,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:454,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:455,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:456,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:461,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:463,1
    - Dst: EC_POINT_get_affine_coordinates_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:466,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:470,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:472,1
    - Dst: EC_POINT_get_affine_coordinates_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:475,1
    - Dst: BN_GF2m_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:479,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:480,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:482,1
    - Dst: EC_GROUP*::meth::field_div
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:484,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:486,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:488,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:490,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:492,1
    - Dst: BN_GF2m_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:495,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:495,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:496,1
    - Dst: EC_GROUP*::meth::field_div
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:501,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:503,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:506,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:508,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:510,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:514,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:516,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:518,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:520,1
    - Dst: EC_POINT_set_affine_coordinates_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:523,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:529,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:530,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 120
    argCount: 5
    argNames:
    - group
    - r
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 532
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 532
    functionName: ec_GF2m_simple_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_is_zero
    - EC_POINT_set_to_infinity
    - EC_GROUP*::meth::field_mul
    - EC_POINT_is_at_infinity
    - BN_GF2m_cmp
    - EC_GROUP*::meth::field_div
    - BN_CTX_start
    - EC_GROUP*::meth::field_sqr
    - EC_POINT_set_affine_coordinates_GF2m
    - BN_copy
    - BN_CTX_end
    - BN_CTX_new
    - BN_CTX_get
    - BN_CTX_free
    - EC_POINT_get_affine_coordinates_GF2m
    - EC_POINT_copy
    - BN_GF2m_add
    linkageType: ''
    returnType: int
    signature: "ec_GF2m_simple_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT
      *a,\n                       const EC_POINT *b, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ec_GF2m_simple_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 542
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 542
    functionName: ec_GF2m_simple_dbl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - ec_GF2m_simple_add
    linkageType: ''
    returnType: int
    signature: "ec_GF2m_simple_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT
      *a,\n                       BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:546,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:546,1
    - Dst: EC_POINT_make_affine
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:550,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:552,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 553
      start: 544
    functionDepth: 2
    functionLinenumber: 544
    functionLinenumberEnd: 553
    functionName: ec_GF2m_simple_invert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_is_zero
    - EC_POINT_make_affine
    - EC_POINT_is_at_infinity
    - BN_GF2m_add
    linkageType: ''
    returnType: int
    signature: ec_GF2m_simple_invert(const EC_GROUP *group, EC_POINT *point, BN_CTX
      *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - group
    - point
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    constantsTouched: []
    func_position:
      end: 560
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 560
    functionName: ec_GF2m_simple_is_at_infinity
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "ec_GF2m_simple_is_at_infinity(const EC_GROUP *group,\n                                  const
      EC_POINT *point)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:577,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:588,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:593,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:594,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:595,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:605,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:607,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:609,1
    - Dst: field_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:611,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:613,1
    - Dst: field_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:615,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:617,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:619,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:622,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:623,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 46
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 625
      start: 567
    functionDepth: 2
    functionLinenumber: 567
    functionLinenumberEnd: 625
    functionName: ec_GF2m_simple_is_on_curve
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_is_zero
    - EC_POINT_is_at_infinity
    - BN_CTX_end
    - BN_CTX_start
    - field_sqr
    - BN_CTX_free
    - BN_CTX_new
    - BN_CTX_get
    - field_mul
    - BN_GF2m_add
    linkageType: ''
    returnType: int
    signature: "ec_GF2m_simple_is_on_curve(const EC_GROUP *group, const EC_POINT *point,\n
      \                              BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:641,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:642,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:645,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:649,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:649,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:653,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:658,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:659,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:660,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:661,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:662,1
    - Dst: EC_POINT_get_affine_coordinates_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:666,1
    - Dst: EC_POINT_get_affine_coordinates_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:668,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:670,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:670,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:674,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:675,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 4
    argNames:
    - group
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 677
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 677
    functionName: ec_GF2m_simple_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - EC_POINT_is_at_infinity
    - BN_cmp
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_free
    - BN_CTX_new
    - BN_CTX_get
    - EC_POINT_get_affine_coordinates_GF2m
    linkageType: ''
    returnType: int
    signature: "ec_GF2m_simple_cmp(const EC_GROUP *group, const EC_POINT *a,\n                       const
      EC_POINT *b, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:687,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:691,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:696,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:697,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:698,1
    - Dst: EC_POINT_get_affine_coordinates_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:702,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:704,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:706,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:708,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:716,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:717,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 719
      start: 680
    functionDepth: 2
    functionLinenumber: 680
    functionLinenumberEnd: 719
    functionName: ec_GF2m_simple_make_affine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - EC_POINT_is_at_infinity
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_free
    - BN_one
    - BN_copy
    - BN_CTX_new
    - BN_CTX_get
    - EC_POINT_get_affine_coordinates_GF2m
    linkageType: ''
    returnType: int
    signature: "ec_GF2m_simple_make_affine(const EC_GROUP *group, EC_POINT *point,\n
      \                              BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::make_affine
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:730,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - group
    - num
    - points
    - ctx
    argTypes:
    - EC_GROUP*
    - size_t
    - EC_POINT*[]
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 735
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 735
    functionName: ec_GF2m_simple_points_make_affine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::make_affine
    linkageType: ''
    returnType: int
    signature: "ec_GF2m_simple_points_make_affine(const EC_GROUP *group, size_t num,\n
      \                                     EC_POINT *points[], BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_GF2m_mod_mul_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - r
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 742
      start: 738
    functionDepth: 3
    functionLinenumber: 738
    functionLinenumberEnd: 742
    functionName: ec_GF2m_simple_field_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_mod_mul_arr
    linkageType: ''
    returnType: int
    signature: "ec_GF2m_simple_field_mul(const EC_GROUP *group, BIGNUM *r,\n                             const
      BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 749
      start: 745
    functionDepth: 3
    functionLinenumber: 745
    functionLinenumberEnd: 749
    functionName: ec_GF2m_simple_field_sqr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_mod_sqr_arr
    linkageType: ''
    returnType: int
    signature: "ec_GF2m_simple_field_sqr(const EC_GROUP *group, BIGNUM *r,\n                             const
      BIGNUM *a, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_GF2m_mod_div
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - r
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 756
      start: 752
    functionDepth: 5
    functionLinenumber: 752
    functionLinenumberEnd: 756
    functionName: ec_GF2m_simple_field_div
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_mod_div
    linkageType: ''
    returnType: int
    signature: "ec_GF2m_simple_field_div(const EC_GROUP *group, BIGNUM *r,\n                             const
      BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_kdf.c:31,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_kdf.c:34,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_kdf.c:37,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_kdf.c:43,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_kdf.c:45,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_kdf.c:47,1
    - Dst: EVP_DigestFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_kdf.c:50,1
    - Dst: EVP_DigestFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_kdf.c:57,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_kdf.c:59,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_kdf.c:60,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_kdf.c:66,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 46
    argCount: 7
    argNames:
    - out
    - outlen
    - Z
    - Zlen
    - sinfo
    - sinfolen
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 68
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 68
    functionName: ECDH_KDF_X9_62
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_kdf.c
    functionUses: 1
    functionsReached:
    - EVP_MD_size
    - EVP_DigestUpdate
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - memcpy
    - EVP_DigestFinal
    - OPENSSL_cleanse
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: "ECDH_KDF_X9_62(unsigned char *out, size_t outlen,\n                   const
      unsigned char *Z, size_t Zlen,\n                   const unsigned char *sinfo,
      size_t sinfolen,\n                   const EVP_MD *md)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:115,1
    - Dst: ASN1_STRING_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:117,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:119,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:123,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:125,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:127,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:131,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:133,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:135,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 38
    argCount: 4
    argNames:
    - method
    - in
    - bp
    - ind
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 141
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 141
    functionName: i2r_ocsp_crlid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - ASN1_GENERALIZEDTIME_print
    - ASN1_STRING_print
    - i2a_ASN1_INTEGER
    - BIO_printf
    - BIO_write
    linkageType: ''
    returnType: int
    signature: "i2r_ocsp_crlid(const X509V3_EXT_METHOD *method, void *in, BIO *bp,\n
      \                         int ind)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:146,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - method
    - cutoff
    - bp
    - ind
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 151
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 151
    functionName: i2r_ocsp_acutoff
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - ASN1_GENERALIZEDTIME_print
    linkageType: ''
    returnType: int
    signature: "i2r_ocsp_acutoff(const X509V3_EXT_METHOD *method, void *cutoff,\n
      \                           BIO *bp, int ind)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:156,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - method
    - oid
    - bp
    - ind
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: i2r_object
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - i2a_ASN1_OBJECT
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "i2r_object(const X509V3_EXT_METHOD *method, void *oid, BIO *bp,\n
      \                     int ind)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: ocsp_nonce_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_new
    linkageType: ''
    returnType: void
    signature: '*ocsp_nonce_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - void*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 181
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 181
    functionName: i2d_ocsp_nonce
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: i2d_ocsp_nonce(void *a, unsigned char **pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:188,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:194,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:205,1
    - Dst: OCSPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:206,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - void*
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 208
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 208
    functionName: d2i_ocsp_nonce
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - OCSPerr
    - ASN1_OCTET_STRING_set
    - ASN1_OCTET_STRING_new
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: void
    signature: '*d2i_ocsp_nonce(void *a, const unsigned char **pp, long length)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: ocsp_nonce_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: void
    signature: ocsp_nonce_free(void *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:218,1
    - Dst: i2a_ASN1_STRING
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - method
    - nonce
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 223
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 223
    functionName: i2r_ocsp_nonce
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - i2a_ASN1_STRING
    linkageType: ''
    returnType: int
    signature: "i2r_ocsp_nonce(const X509V3_EXT_METHOD *method, void *nonce,\n                          BIO
      *out, int indent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - method
    - nocheck
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: i2r_ocsp_nocheck
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "i2r_ocsp_nocheck(const X509V3_EXT_METHOD *method, void *nocheck,\n
      \                           BIO *out, int indent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_NULL_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - method
    - ctx
    - str
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: s2i_ocsp_nocheck
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - ASN1_NULL_new
    linkageType: ''
    returnType: void
    signature: "*s2i_ocsp_nocheck(const X509V3_EXT_METHOD *method,\n                              X509V3_CTX
      *ctx, const char *str)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:246,1
    - Dst: X509_NAME_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:248,1
    - Dst: sk_ACCESS_DESCRIPTION_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:250,1
    - Dst: sk_ACCESS_DESCRIPTION_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:251,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:252,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:254,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:256,1
    - Dst: GENERAL_NAME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c:258,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 4
    argNames:
    - method
    - in
    - bp
    - ind
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 264
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 264
    functionName: i2r_ocsp_serviceloc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - sk_ACCESS_DESCRIPTION_num
    - BIO_puts
    - i2a_ASN1_OBJECT
    - sk_ACCESS_DESCRIPTION_value
    - X509_NAME_print_ex
    - GENERAL_NAME_print
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "i2r_ocsp_serviceloc(const X509V3_EXT_METHOD *method, void *in,\n                               BIO
      *bp, int ind)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - OCSP_REQUEST*
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: OCSP_REQUEST_get_ext_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: OCSP_REQUEST_get_ext_count(OCSP_REQUEST *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - OCSP_REQUEST*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: OCSP_REQUEST_get_ext_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: OCSP_REQUEST_get_ext_by_NID(OCSP_REQUEST *x, int nid, int lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - obj
    - lastpos
    argTypes:
    - OCSP_REQUEST*
    - ASN1_OBJECT*
    - int
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: OCSP_REQUEST_get_ext_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: "OCSP_REQUEST_get_ext_by_OBJ(OCSP_REQUEST *x, const ASN1_OBJECT *obj,\n
      \                               int lastpos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - crit
    - lastpos
    argTypes:
    - OCSP_REQUEST*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: OCSP_REQUEST_get_ext_by_critical
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: OCSP_REQUEST_get_ext_by_critical(OCSP_REQUEST *x, int crit, int lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_REQUEST*
    - int
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: OCSP_REQUEST_get_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*OCSP_REQUEST_get_ext(OCSP_REQUEST *x, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_REQUEST*
    - int
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: OCSP_REQUEST_delete_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*OCSP_REQUEST_delete_ext(OCSP_REQUEST *x, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x
    - nid
    - crit
    - idx
    argTypes:
    - OCSP_REQUEST*
    - int
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: OCSP_REQUEST_get1_ext_d2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: '*OCSP_REQUEST_get1_ext_d2i(OCSP_REQUEST *x, int nid, int *crit, int
      *idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add1_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - x
    - nid
    - value
    - crit
    - flags
    argTypes:
    - OCSP_REQUEST*
    - int
    - void*
    - int
    - unsigned long
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: OCSP_REQUEST_add1_ext_i2d
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_add1_i2d
    linkageType: ''
    returnType: int
    signature: "OCSP_REQUEST_add1_ext_i2d(OCSP_REQUEST *x, int nid, void *value, int
      crit,\n                              unsigned long flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - ex
    - loc
    argTypes:
    - OCSP_REQUEST*
    - X509_EXTENSION*
    - int
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: OCSP_REQUEST_add_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: OCSP_REQUEST_add_ext(OCSP_REQUEST *x, X509_EXTENSION *ex, int loc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - OCSP_ONEREQ*
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: OCSP_ONEREQ_get_ext_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: OCSP_ONEREQ_get_ext_count(OCSP_ONEREQ *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - OCSP_ONEREQ*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: OCSP_ONEREQ_get_ext_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: OCSP_ONEREQ_get_ext_by_NID(OCSP_ONEREQ *x, int nid, int lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - obj
    - lastpos
    argTypes:
    - OCSP_ONEREQ*
    - ASN1_OBJECT*
    - int
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: OCSP_ONEREQ_get_ext_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: "OCSP_ONEREQ_get_ext_by_OBJ(OCSP_ONEREQ *x, const ASN1_OBJECT *obj,\n
      \                              int lastpos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - crit
    - lastpos
    argTypes:
    - OCSP_ONEREQ*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: OCSP_ONEREQ_get_ext_by_critical
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: OCSP_ONEREQ_get_ext_by_critical(OCSP_ONEREQ *x, int crit, int lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_ONEREQ*
    - int
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: OCSP_ONEREQ_get_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*OCSP_ONEREQ_get_ext(OCSP_ONEREQ *x, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_ONEREQ*
    - int
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: OCSP_ONEREQ_delete_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*OCSP_ONEREQ_delete_ext(OCSP_ONEREQ *x, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x
    - nid
    - crit
    - idx
    argTypes:
    - OCSP_ONEREQ*
    - int
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: OCSP_ONEREQ_get1_ext_d2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: '*OCSP_ONEREQ_get1_ext_d2i(OCSP_ONEREQ *x, int nid, int *crit, int
      *idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add1_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - x
    - nid
    - value
    - crit
    - flags
    argTypes:
    - OCSP_ONEREQ*
    - int
    - void*
    - int
    - unsigned long
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: OCSP_ONEREQ_add1_ext_i2d
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_add1_i2d
    linkageType: ''
    returnType: int
    signature: "OCSP_ONEREQ_add1_ext_i2d(OCSP_ONEREQ *x, int nid, void *value, int
      crit,\n                             unsigned long flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - ex
    - loc
    argTypes:
    - OCSP_ONEREQ*
    - X509_EXTENSION*
    - int
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: OCSP_ONEREQ_add_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: OCSP_ONEREQ_add_ext(OCSP_ONEREQ *x, X509_EXTENSION *ex, int loc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - OCSP_BASICRESP*
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: OCSP_BASICRESP_get_ext_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: OCSP_BASICRESP_get_ext_count(OCSP_BASICRESP *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - OCSP_BASICRESP*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: OCSP_BASICRESP_get_ext_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: OCSP_BASICRESP_get_ext_by_NID(OCSP_BASICRESP *x, int nid, int lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - obj
    - lastpos
    argTypes:
    - OCSP_BASICRESP*
    - ASN1_OBJECT*
    - int
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: OCSP_BASICRESP_get_ext_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: "OCSP_BASICRESP_get_ext_by_OBJ(OCSP_BASICRESP *x, const ASN1_OBJECT
      *obj,\n                                  int lastpos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - crit
    - lastpos
    argTypes:
    - OCSP_BASICRESP*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: OCSP_BASICRESP_get_ext_by_critical
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: "OCSP_BASICRESP_get_ext_by_critical(OCSP_BASICRESP *x, int crit,\n
      \                                      int lastpos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_BASICRESP*
    - int
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: OCSP_BASICRESP_get_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*OCSP_BASICRESP_get_ext(OCSP_BASICRESP *x, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_BASICRESP*
    - int
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: OCSP_BASICRESP_delete_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*OCSP_BASICRESP_delete_ext(OCSP_BASICRESP *x, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x
    - nid
    - crit
    - idx
    argTypes:
    - OCSP_BASICRESP*
    - int
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: OCSP_BASICRESP_get1_ext_d2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: "*OCSP_BASICRESP_get1_ext_d2i(OCSP_BASICRESP *x, int nid, int *crit,\n
      \                                 int *idx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add1_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - x
    - nid
    - value
    - crit
    - flags
    argTypes:
    - OCSP_BASICRESP*
    - int
    - void*
    - int
    - unsigned long
    constantsTouched: []
    func_position:
      end: 175
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 175
    functionName: OCSP_BASICRESP_add1_ext_i2d
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_add1_i2d
    linkageType: ''
    returnType: int
    signature: "OCSP_BASICRESP_add1_ext_i2d(OCSP_BASICRESP *x, int nid, void *value,\n
      \                               int crit, unsigned long flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - ex
    - loc
    argTypes:
    - OCSP_BASICRESP*
    - X509_EXTENSION*
    - int
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: OCSP_BASICRESP_add_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: OCSP_BASICRESP_add_ext(OCSP_BASICRESP *x, X509_EXTENSION *ex, int loc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - OCSP_SINGLERESP*
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: OCSP_SINGLERESP_get_ext_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: OCSP_SINGLERESP_get_ext_count(OCSP_SINGLERESP *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - OCSP_SINGLERESP*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: OCSP_SINGLERESP_get_ext_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: OCSP_SINGLERESP_get_ext_by_NID(OCSP_SINGLERESP *x, int nid, int lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - obj
    - lastpos
    argTypes:
    - OCSP_SINGLERESP*
    - ASN1_OBJECT*
    - int
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: OCSP_SINGLERESP_get_ext_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: "OCSP_SINGLERESP_get_ext_by_OBJ(OCSP_SINGLERESP *x, const ASN1_OBJECT
      *obj,\n                                   int lastpos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - crit
    - lastpos
    argTypes:
    - OCSP_SINGLERESP*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: OCSP_SINGLERESP_get_ext_by_critical
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: "OCSP_SINGLERESP_get_ext_by_critical(OCSP_SINGLERESP *x, int crit,\n
      \                                       int lastpos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_SINGLERESP*
    - int
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: OCSP_SINGLERESP_get_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*OCSP_SINGLERESP_get_ext(OCSP_SINGLERESP *x, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_SINGLERESP*
    - int
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: OCSP_SINGLERESP_delete_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*OCSP_SINGLERESP_delete_ext(OCSP_SINGLERESP *x, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x
    - nid
    - crit
    - idx
    argTypes:
    - OCSP_SINGLERESP*
    - int
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: OCSP_SINGLERESP_get1_ext_d2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: "*OCSP_SINGLERESP_get1_ext_d2i(OCSP_SINGLERESP *x, int nid, int *crit,\n
      \                                  int *idx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add1_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - x
    - nid
    - value
    - crit
    - flags
    argTypes:
    - OCSP_SINGLERESP*
    - int
    - void*
    - int
    - unsigned long
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: OCSP_SINGLERESP_add1_ext_i2d
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_add1_i2d
    linkageType: ''
    returnType: int
    signature: "OCSP_SINGLERESP_add1_ext_i2d(OCSP_SINGLERESP *x, int nid, void *value,\n
      \                                int crit, unsigned long flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - ex
    - loc
    argTypes:
    - OCSP_SINGLERESP*
    - X509_EXTENSION*
    - int
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: OCSP_SINGLERESP_add_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex, int
      loc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ocsp_add1_nonce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - req
    - val
    - len
    argTypes:
    - OCSP_REQUEST*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: OCSP_request_add1_nonce
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - ocsp_add1_nonce
    linkageType: ''
    returnType: int
    signature: OCSP_request_add1_nonce(OCSP_REQUEST *req, unsigned char *val, int
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ocsp_add1_nonce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - resp
    - val
    - len
    argTypes:
    - OCSP_BASICRESP*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 293
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 293
    functionName: OCSP_basic_add1_nonce
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - ocsp_add1_nonce
    linkageType: ''
    returnType: int
    signature: OCSP_basic_add1_nonce(OCSP_BASICRESP *resp, unsigned char *val, int
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_REQUEST_get_ext_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:321,1
    - Dst: OCSP_BASICRESP_get_ext_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:322,1
    - Dst: OCSP_REQUEST_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:335,1
    - Dst: OCSP_BASICRESP_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:336,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:337,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:337,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:338,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - req
    - bs
    argTypes:
    - OCSP_REQUEST*
    - OCSP_BASICRESP*
    constantsTouched: []
    func_position:
      end: 341
      start: 309
    functionDepth: 3
    functionLinenumber: 309
    functionLinenumberEnd: 341
    functionName: OCSP_check_nonce
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509_EXTENSION_get_data
    - OCSP_BASICRESP_get_ext_by_NID
    - OCSP_REQUEST_get_ext_by_NID
    - OCSP_REQUEST_get_ext
    - ASN1_OCTET_STRING_cmp
    - OCSP_BASICRESP_get_ext
    linkageType: ''
    returnType: int
    signature: OCSP_check_nonce(OCSP_REQUEST *req, OCSP_BASICRESP *bs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_REQUEST_get_ext_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:352,1
    - Dst: OCSP_REQUEST_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:356,1
    - Dst: OCSP_BASICRESP_add_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - resp
    - req
    argTypes:
    - OCSP_BASICRESP*
    - OCSP_REQUEST*
    constantsTouched: []
    func_position:
      end: 358
      start: 347
    functionDepth: 3
    functionLinenumber: 347
    functionLinenumberEnd: 358
    functionName: OCSP_copy_nonce
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - OCSP_REQUEST_get_ext
    - OCSP_REQUEST_get_ext_by_NID
    - OCSP_BASICRESP_add_ext
    linkageType: ''
    returnType: int
    signature: OCSP_copy_nonce(OCSP_BASICRESP *resp, OCSP_REQUEST *req)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_CRLID_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:365,1
    - Dst: ASN1_IA5STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:368,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:370,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:374,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:376,1
    - Dst: ASN1_GENERALIZEDTIME_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:380,1
    - Dst: ASN1_GENERALIZEDTIME_set_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:382,1
    - Dst: X509V3_EXT_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:385,1
    - Dst: OCSP_CRLID_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:387,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 3
    argNames:
    - url
    - n
    - tim
    argTypes:
    - char*
    - long*
    - char*
    constantsTouched: []
    func_position:
      end: 389
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 389
    functionName: OCSP_crlID_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - ASN1_GENERALIZEDTIME_set_string
    - ASN1_STRING_set
    - OCSP_CRLID_new
    - ASN1_INTEGER_new
    - ASN1_INTEGER_set
    - X509V3_EXT_i2d
    - ASN1_GENERALIZEDTIME_new
    - OCSP_CRLID_free
    - ASN1_IA5STRING_new
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*OCSP_crlID_new(const char *url, long *n, char *tim)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:395,1
    - Dst: sk_ASN1_OBJECT_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:399,1
    - Dst: OBJ_txt2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:402,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:402,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:403,1
    - Dst: X509V3_EXT_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:406,1
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:408,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - oids
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 410
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 410
    functionName: OCSP_accept_responses_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_OBJECT_pop_free
    - STACK_OF
    - OBJ_nid2obj
    - OBJ_txt2nid
    - X509V3_EXT_i2d
    - sk_ASN1_OBJECT_push
    - sk_ASN1_OBJECT_new_null
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*OCSP_accept_responses_new(char **oids)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_GENERALIZEDTIME_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:418,1
    - Dst: ASN1_GENERALIZEDTIME_set_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:420,1
    - Dst: X509V3_EXT_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:422,1
    - Dst: ASN1_GENERALIZEDTIME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:424,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - tim
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 426
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 426
    functionName: OCSP_archive_cutoff_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - ASN1_GENERALIZEDTIME_free
    - X509V3_EXT_i2d
    - ASN1_GENERALIZEDTIME_new
    - ASN1_GENERALIZEDTIME_set_string
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*OCSP_archive_cutoff_new(char *tim)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_SERVICELOC_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:440,1
    - Dst: X509_NAME_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:442,1
    - Dst: sk_ACCESS_DESCRIPTION_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:445,1
    - Dst: ACCESS_DESCRIPTION_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:448,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:450,1
    - Dst: GENERAL_NAME_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:452,1
    - Dst: ASN1_IA5STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:454,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:456,1
    - Dst: sk_ACCESS_DESCRIPTION_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:461,1
    - Dst: X509V3_EXT_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:466,1
    - Dst: ASN1_IA5STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:468,1
    - Dst: ACCESS_DESCRIPTION_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:469,1
    - Dst: OCSP_SERVICELOC_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c:470,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 42
    argCount: 2
    argNames:
    - issuer
    - urls
    argTypes:
    - X509_NAME*
    - char**
    constantsTouched: []
    func_position:
      end: 472
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 472
    functionName: OCSP_url_svcloc_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - ACCESS_DESCRIPTION_free
    - ASN1_STRING_set
    - OBJ_nid2obj
    - OCSP_SERVICELOC_new
    - GENERAL_NAME_new
    - X509V3_EXT_i2d
    - sk_ACCESS_DESCRIPTION_push
    - sk_ACCESS_DESCRIPTION_new_null
    - X509_NAME_dup
    - ASN1_IA5STRING_free
    - ACCESS_DESCRIPTION_new
    - ASN1_IA5STRING_new
    - OCSP_SERVICELOC_free
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*OCSP_url_svcloc_new(X509_NAME *issuer, const char **urls)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_find_by_subject
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_vfy.c:167,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_vfy.c:176,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_vfy.c:177,1
    - Dst: X509_pubkey_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_vfy.c:178,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_vfy.c:178,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_vfy.c:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - certs
    - id
    argTypes:
    - STACK_OF*
    - OCSP_RESPID*
    constantsTouched: []
    func_position:
      end: 183
      start: 159
    functionDepth: 6
    functionLinenumber: 159
    functionLinenumberEnd: 183
    functionName: ocsp_find_signer_sk
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_vfy.c
    functionUses: 0
    functionsReached:
    - EVP_sha1
    - memcmp
    - X509_find_by_subject
    - sk_X509_num
    - sk_X509_value
    - X509_pubkey_digest
    linkageType: ''
    returnType: X509
    signature: '*ocsp_find_signer_sk(STACK_OF(X509) *certs, OCSP_RESPID *id)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_extension_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_vfy.c:315,1
    - Dst: X509_get_extended_key_usage
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_vfy.c:316,1
    - Dst: OCSPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_vfy.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 320
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 320
    functionName: ocsp_check_delegated
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_vfy.c
    functionUses: 0
    functionsReached:
    - OCSPerr
    - X509_get_extension_flags
    - X509_get_extended_key_usage
    linkageType: ''
    returnType: int
    signature: ocsp_check_delegated(X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_OCSP_ONEREQ_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - OCSP_REQUEST*
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: OCSP_request_onereq_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - sk_OCSP_ONEREQ_num
    linkageType: ''
    returnType: int
    signature: OCSP_request_onereq_count(OCSP_REQUEST *req)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_OCSP_ONEREQ_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req
    - i
    argTypes:
    - OCSP_REQUEST*
    - int
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: OCSP_request_onereq_get0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - sk_OCSP_ONEREQ_value
    linkageType: ''
    returnType: OCSP_ONEREQ
    signature: '*OCSP_request_onereq_get0(OCSP_REQUEST *req, int i)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - one
    argTypes:
    - OCSP_ONEREQ*
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: OCSP_onereq_get0_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OCSP_CERTID
    signature: '*OCSP_onereq_get0_id(OCSP_ONEREQ *one)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 5
    argNames:
    - piNameHash
    - pmd
    - pikeyHash
    - pserial
    - cid
    argTypes:
    - ASN1_OCTET_STRING**
    - ASN1_OBJECT**
    - ASN1_OCTET_STRING**
    - ASN1_INTEGER**
    - OCSP_CERTID*
    constantsTouched: []
    func_position:
      end: 54
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 54
    functionName: OCSP_id_get0_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd,\n
      \                     ASN1_OCTET_STRING **pikeyHash,\n                      ASN1_INTEGER
      **pserial, OCSP_CERTID *cid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - req
    argTypes:
    - OCSP_REQUEST*
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: OCSP_request_is_signed
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: OCSP_request_is_signed(OCSP_REQUEST *req)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_RESPONSE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:68,1
    - Dst: ASN1_ENUMERATED_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:70,1
    - Dst: OCSP_RESPBYTES_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:74,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:76,1
    - Dst: ASN1_item_pack
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:77,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:78,1
    - Dst: OCSP_RESPONSE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:82,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - status
    - bs
    argTypes:
    - int
    - OCSP_BASICRESP*
    constantsTouched: []
    func_position:
      end: 84
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 84
    functionName: OCSP_response_create
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - ASN1_item_pack
    - OCSP_RESPBYTES_new
    - OBJ_nid2obj
    - ASN1_ITEM_rptr
    - ASN1_ENUMERATED_set
    - OCSP_RESPONSE_new
    - OCSP_RESPONSE_free
    linkageType: ''
    returnType: OCSP_RESPONSE
    signature: '*OCSP_response_create(int status, OCSP_BASICRESP *bs)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_OCSP_SINGLERESP_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:99,1
    - Dst: OCSP_SINGLERESP_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:102,1
    - Dst: ASN1_TIME_to_generalizedtime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:105,1
    - Dst: ASN1_TIME_to_generalizedtime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:108,1
    - Dst: OCSP_CERTID_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:111,1
    - Dst: OCSP_CERTID_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:113,1
    - Dst: OCSPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:120,1
    - Dst: OCSP_REVOKEDINFO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:123,1
    - Dst: ASN1_TIME_to_generalizedtime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:125,1
    - Dst: ASN1_ENUMERATED_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:128,1
    - Dst: ASN1_ENUMERATED_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:130,1
    - Dst: ASN1_NULL_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:136,1
    - Dst: ASN1_NULL_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:141,1
    - Dst: sk_OCSP_SINGLERESP_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:149,1
    - Dst: OCSP_SINGLERESP_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:153,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 62
    argCount: 7
    argNames:
    - rsp
    - cid
    - status
    - reason
    - revtime
    - thisupd
    - nextupd
    argTypes:
    - OCSP_BASICRESP*
    - OCSP_CERTID*
    - int
    - int
    - ASN1_TIME*
    - ASN1_TIME*
    - ASN1_TIME*
    constantsTouched: []
    func_position:
      end: 155
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 155
    functionName: OCSP_basic_add1_status
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - ASN1_ENUMERATED_new
    - sk_OCSP_SINGLERESP_push
    - OCSP_SINGLERESP_new
    - OCSP_REVOKEDINFO_new
    - OCSP_SINGLERESP_free
    - sk_OCSP_SINGLERESP_new_null
    - OCSP_CERTID_free
    - OCSPerr
    - ASN1_ENUMERATED_set
    - ASN1_TIME_to_generalizedtime
    - ASN1_NULL_new
    - OCSP_CERTID_dup
    linkageType: ''
    returnType: OCSP_SINGLERESP
    signature: "*OCSP_basic_add1_status(OCSP_BASICRESP *rsp,\n                                        OCSP_CERTID
      *cid,\n                                        int status, int reason,\n                                        ASN1_TIME
      *revtime,\n                                        ASN1_TIME *thisupd,\n                                        ASN1_TIME
      *nextupd)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:162,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:165,1
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - resp
    - cert
    argTypes:
    - OCSP_BASICRESP*
    - X509*
    constantsTouched: []
    func_position:
      end: 169
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 169
    functionName: OCSP_basic_add1_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    - sk_X509_new_null
    - sk_X509_push
    linkageType: ''
    returnType: int
    signature: OCSP_basic_add1_cert(OCSP_BASICRESP *resp, X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:178,1
    - Dst: OCSPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:179,1
    - Dst: OCSP_basic_add1_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:185,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:187,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:188,1
    - Dst: OCSP_basic_add1_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:189,1
    - Dst: OCSP_RESPID_set_by_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:196,1
    - Dst: OCSP_RESPID_set_by_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:198,1
    - Dst: X509_gmtime_adj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:203,1
    - Dst: OCSP_BASICRESP_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:211,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 36
    argCount: 6
    argNames:
    - brsp
    - signer
    - key
    - dgst
    - certs
    - flags
    argTypes:
    - OCSP_BASICRESP*
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    - STACK_OF*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 217
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 217
    functionName: OCSP_basic_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - OCSP_RESPID_set_by_key
    - X509_gmtime_adj
    - sk_X509_num
    - OCSPerr
    - OCSP_BASICRESP_sign
    - sk_X509_value
    - X509_check_private_key
    - OCSP_basic_add1_cert
    - OCSP_RESPID_set_by_name
    linkageType: ''
    returnType: int
    signature: "OCSP_basic_sign(OCSP_BASICRESP *brsp,\n                    X509 *signer,
      EVP_PKEY *key, const EVP_MD *dgst,\n                    STACK_OF(X509) *certs,
      unsigned long flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:221,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - respid
    - cert
    argTypes:
    - OCSP_RESPID*
    - X509*
    constantsTouched: []
    func_position:
      end: 227
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 227
    functionName: OCSP_RESPID_set_by_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c
    functionUses: 1
    functionsReached:
    - X509_NAME_set
    - X509_get_subject_name
    linkageType: ''
    returnType: int
    signature: OCSP_RESPID_set_by_name(OCSP_RESPID *respid, X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_pubkey_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:235,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:235,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:238,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:242,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - respid
    - cert
    argTypes:
    - OCSP_RESPID*
    - X509*
    constantsTouched: []
    func_position:
      end: 251
      start: 229
    functionDepth: 6
    functionLinenumber: 229
    functionLinenumberEnd: 251
    functionName: OCSP_RESPID_set_by_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c
    functionUses: 1
    functionsReached:
    - ASN1_OCTET_STRING_new
    - EVP_sha1
    - ASN1_OCTET_STRING_free
    - ASN1_OCTET_STRING_set
    - X509_pubkey_digest
    linkageType: ''
    returnType: int
    signature: OCSP_RESPID_set_by_key(OCSP_RESPID *respid, X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_pubkey_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:262,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:262,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:265,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:266,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:266,1
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:272,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c:273,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - respid
    - cert
    argTypes:
    - OCSP_RESPID*
    - X509*
    constantsTouched: []
    func_position:
      end: 277
      start: 253
    functionDepth: 6
    functionLinenumber: 253
    functionLinenumberEnd: 277
    functionName: OCSP_RESPID_match
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - EVP_sha1
    - memcmp
    - X509_get_subject_name
    - X509_NAME_cmp
    - X509_pubkey_digest
    - ASN1_STRING_length
    - ASN1_STRING_get0_data
    linkageType: ''
    returnType: int
    signature: OCSP_RESPID_match(OCSP_RESPID *respid, X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:29,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:31,1
    - Dst: X509_get0_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:32,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:34,1
    - Dst: X509_get0_pubkey_bitstr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:37,1
    - Dst: OCSP_cert_id_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - dgst
    - subject
    - issuer
    argTypes:
    - EVP_MD*
    - X509*
    - X509*
    constantsTouched: []
    func_position:
      end: 39
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 39
    functionName: OCSP_cert_to_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c
    functionUses: 0
    functionsReached:
    - X509_get0_pubkey_bitstr
    - EVP_sha1
    - OCSP_cert_id_new
    - X509_get_subject_name
    - X509_get_issuer_name
    - X509_get0_serialNumber
    linkageType: ''
    returnType: OCSP_CERTID
    signature: "*OCSP_cert_to_id(const EVP_MD *dgst, const X509 *subject,\n                             const
      X509 *issuer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_CERTID_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:52,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:56,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:57,1
    - Dst: OCSPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:58,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:61,1
    - Dst: ASN1_TYPE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:63,1
    - Dst: X509_NAME_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:67,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:69,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:73,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:76,1
    - Dst: ASN1_STRING_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:80,1
    - Dst: OCSPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:85,1
    - Dst: OCSP_CERTID_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:87,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 43
    argCount: 4
    argNames:
    - dgst
    - issuerName
    - issuerKey
    - serialNumber
    argTypes:
    - EVP_MD*
    - X509_NAME*
    - ASN1_BIT_STRING*
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 89
      start: 41
    functionDepth: 5
    functionLinenumber: 41
    functionLinenumberEnd: 89
    functionName: OCSP_cert_id_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c
    functionUses: 1
    functionsReached:
    - EVP_Digest
    - OBJ_nid2obj
    - OCSP_CERTID_new
    - OCSPerr
    - X509_NAME_digest
    - EVP_MD_type
    - ASN1_OBJECT_free
    - ASN1_TYPE_new
    - ASN1_OCTET_STRING_set
    - OCSP_CERTID_free
    - ASN1_STRING_copy
    linkageType: ''
    returnType: OCSP_CERTID
    signature: "*OCSP_cert_id_new(const EVP_MD *dgst,\n                              const
      X509_NAME *issuerName,\n                              const ASN1_BIT_STRING
      *issuerKey,\n                              const ASN1_INTEGER *serialNumber)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:94,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:97,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - OCSP_CERTID*
    - OCSP_CERTID*
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: OCSP_id_issuer_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_cmp
    - ASN1_OCTET_STRING_cmp
    linkageType: ''
    returnType: int
    signature: OCSP_id_issuer_cmp(OCSP_CERTID *a, OCSP_CERTID *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_id_issuer_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:106,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - OCSP_CERTID*
    - OCSP_CERTID*
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: OCSP_id_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c
    functionUses: 0
    functionsReached:
    - OCSP_id_issuer_cmp
    - ASN1_INTEGER_cmp
    linkageType: ''
    returnType: int
    signature: OCSP_id_cmp(OCSP_CERTID *a, OCSP_CERTID *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:129,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:134,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:141,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:144,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:160,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:163,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:165,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:177,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:185,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:190,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:194,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:199,1
    - Dst: OCSPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:204,1
    - Dst: OCSPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:208,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:211,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:212,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:214,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c:216,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 79
    argCount: 5
    argNames:
    - url
    - phost
    - pport
    - ppath
    - pssl
    argTypes:
    - char*
    - char**
    - char**
    - char**
    - int*
    constantsTouched: []
    func_position:
      end: 220
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 220
    functionName: OCSP_parse_url
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strchr
    - OCSPerr
    - OPENSSL_strdup
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: "OCSP_parse_url(const char *url, char **phost, char **pport, char **ppath,\n
      \                  int *pssl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:19,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:21,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:22,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:23,1
    - Dst: i2a_ASN1_STRING
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:24,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:25,1
    - Dst: i2a_ASN1_STRING
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:26,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:27,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:28,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - bp
    - a
    - indent
    argTypes:
    - BIO*
    - OCSP_CERTID*
    - int
    constantsTouched: []
    func_position:
      end: 31
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 31
    functionName: ocsp_certid_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c
    functionUses: 0
    functionsReached:
    - i2a_ASN1_OBJECT
    - i2a_ASN1_INTEGER
    - BIO_printf
    - i2a_ASN1_STRING
    linkageType: ''
    returnType: int
    signature: ocsp_certid_print(BIO *bp, OCSP_CERTID *a, int indent)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - s
    - ts
    - len
    argTypes:
    - long
    - OCSP_TBLSTR*
    - size_t
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: do_table2string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*do_table2string(long s, const OCSP_TBLSTR *ts, size_t len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: table2string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - long
    constantsTouched: []
    func_position:
      end: 60
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 60
    functionName: OCSP_response_status_str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c
    functionUses: 0
    functionsReached:
    - table2string
    linkageType: ''
    returnType: char
    signature: '*OCSP_response_status_str(long s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: table2string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - long
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: OCSP_cert_status_str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c
    functionUses: 0
    functionsReached:
    - table2string
    linkageType: ''
    returnType: char
    signature: '*OCSP_cert_status_str(long s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: table2string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - long
    constantsTouched: []
    func_position:
      end: 85
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 85
    functionName: OCSP_crl_reason_str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c
    functionUses: 0
    functionsReached:
    - table2string
    linkageType: ''
    returnType: char
    signature: '*OCSP_crl_reason_str(long s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:96,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:98,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:99,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:102,1
    - Dst: GENERAL_NAME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:104,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:106,1
    - Dst: sk_OCSP_ONEREQ_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:108,1
    - Dst: sk_OCSP_ONEREQ_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:109,1
    - Dst: ocsp_certid_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:111,1
    - Dst: X509V3_extensions_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:112,1
    - Dst: X509V3_extensions_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:117,1
    - Dst: X509_signature_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:121,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:122,1
    - Dst: X509_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:123,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:123,1
    - Dst: PEM_write_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:124,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:124,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 3
    argNames:
    - bp
    - o
    - flags
    argTypes:
    - BIO*
    - OCSP_REQUEST*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 130
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 130
    functionName: OCSP_REQUEST_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c
    functionUses: 0
    functionsReached:
    - X509_signature_print
    - PEM_write_bio_X509
    - X509_print
    - X509V3_extensions_print
    - sk_X509_num
    - GENERAL_NAME_print
    - sk_OCSP_ONEREQ_value
    - sk_OCSP_ONEREQ_num
    - ASN1_INTEGER_get
    - sk_X509_value
    - ocsp_certid_print
    - BIO_printf
    - BIO_write
    linkageType: ''
    returnType: int
    signature: OCSP_REQUEST_print(BIO *bp, OCSP_REQUEST *o, unsigned long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:145,1
    - Dst: ASN1_ENUMERATED_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:147,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:148,1
    - Dst: OCSP_response_status_str
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:149,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:153,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:155,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:157,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:158,1
    - Dst: OCSP_response_get1_basic
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:162,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:165,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:166,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:168,1
    - Dst: X509_NAME_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:174,1
    - Dst: i2a_ASN1_STRING
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:177,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:181,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:183,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:185,1
    - Dst: sk_OCSP_SINGLERESP_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:187,1
    - Dst: sk_OCSP_SINGLERESP_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:188,1
    - Dst: sk_OCSP_SINGLERESP_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:190,1
    - Dst: ocsp_certid_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:192,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:195,1
    - Dst: OCSP_cert_status_str
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:196,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:200,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:202,1
    - Dst: ASN1_ENUMERATED_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:205,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:206,1
    - Dst: OCSP_crl_reason_str
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:208,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:212,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:214,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:217,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:219,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:222,1
    - Dst: X509V3_extensions_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:224,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:228,1
    - Dst: X509V3_extensions_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:231,1
    - Dst: X509_signature_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:234,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:237,1
    - Dst: X509_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:238,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:238,1
    - Dst: PEM_write_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:239,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:239,1
    - Dst: OCSP_BASICRESP_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c:244,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 115
    argCount: 3
    argNames:
    - bp
    - o
    - flags
    argTypes:
    - BIO*
    - OCSP_RESPONSE*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 246
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 246
    functionName: OCSP_RESPONSE_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c
    functionUses: 0
    functionsReached:
    - ASN1_ENUMERATED_get
    - OCSP_cert_status_str
    - OCSP_response_status_str
    - sk_X509_num
    - OCSP_BASICRESP_free
    - OCSP_crl_reason_str
    - X509V3_extensions_print
    - BIO_printf
    - X509_signature_print
    - i2a_ASN1_STRING
    - PEM_write_bio_X509
    - sk_OCSP_SINGLERESP_value
    - ASN1_GENERALIZEDTIME_print
    - X509_print
    - i2a_ASN1_OBJECT
    - X509_NAME_print_ex
    - ASN1_INTEGER_get
    - OCSP_response_get1_basic
    - BIO_puts
    - OBJ_obj2nid
    - sk_OCSP_SINGLERESP_num
    - sk_X509_value
    - ocsp_certid_print
    - BIO_write
    linkageType: ''
    returnType: int
    signature: OCSP_RESPONSE_print(BIO *bp, OCSP_RESPONSE *o, unsigned long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:66,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:72,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:72,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:78,1
    - Dst: OCSP_REQ_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - io
    - maxline
    argTypes:
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 84
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 84
    functionName: OCSP_REQ_CTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c
    functionUses: 0
    functionsReached:
    - BIO_s_mem
    - OCSP_REQ_CTX_free
    - OPENSSL_zalloc
    - BIO_new
    - OPENSSL_malloc
    linkageType: ''
    returnType: OCSP_REQ_CTX
    signature: '*OCSP_REQ_CTX_new(BIO *io, int maxline)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:90,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:91,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - rctx
    argTypes:
    - OCSP_REQ_CTX*
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: OCSP_REQ_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c
    functionUses: 1
    functionsReached:
    - BIO_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: OCSP_REQ_CTX_free(OCSP_REQ_CTX *rctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rctx
    argTypes:
    - OCSP_REQ_CTX*
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: OCSP_REQ_CTX_get0_mem_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO
    signature: '*OCSP_REQ_CTX_get0_mem_bio(OCSP_REQ_CTX *rctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - rctx
    - len
    argTypes:
    - OCSP_REQ_CTX*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: OCSP_set_max_response_length
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: OCSP_set_max_response_length(OCSP_REQ_CTX *rctx, unsigned long len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:114,1
    - Dst: ASN1_item_i2d_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - rctx
    - it
    - val
    argTypes:
    - OCSP_REQ_CTX*
    - ASN1_ITEM*
    - ASN1_VALUE*
    constantsTouched: []
    func_position:
      end: 120
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 120
    functionName: OCSP_REQ_CTX_i2d
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, ASN1_VALUE
      *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_REQ_CTX_nbio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:128,1
    - Dst: BIO_get_mem_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:132,1
    - Dst: ASN1_item_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - rctx
    - pval
    - it
    argTypes:
    - OCSP_REQ_CTX*
    - ASN1_VALUE**
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 139
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 139
    functionName: OCSP_REQ_CTX_nbio_d2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c
    functionUses: 2
    functionsReached:
    - OCSP_REQ_CTX_nbio
    - BIO_get_mem_data
    - ASN1_item_d2i
    linkageType: ''
    returnType: int
    signature: "OCSP_REQ_CTX_nbio_d2i(OCSP_REQ_CTX *rctx,\n                          ASN1_VALUE
      **pval, const ASN1_ITEM *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - rctx
    - op
    - path
    argTypes:
    - OCSP_REQ_CTX*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 152
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 152
    functionName: OCSP_REQ_CTX_http
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: OCSP_REQ_CTX_http(OCSP_REQ_CTX *rctx, const char *op, const char *path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_REQ_CTX_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:156,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rctx
    - req
    argTypes:
    - OCSP_REQ_CTX*
    - OCSP_REQUEST*
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: OCSP_REQ_CTX_set1_req
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - OCSP_REQ_CTX_i2d
    linkageType: ''
    returnType: int
    signature: OCSP_REQ_CTX_set1_req(OCSP_REQ_CTX *rctx, OCSP_REQUEST *req)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:165,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:168,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:170,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - rctx
    - name
    - value
    argTypes:
    - OCSP_REQ_CTX*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 177
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 177
    functionName: OCSP_REQ_CTX_add1_header
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: "OCSP_REQ_CTX_add1_header(OCSP_REQ_CTX *rctx,\n                             const
      char *name, const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_REQ_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:184,1
    - Dst: OCSP_REQ_CTX_http
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:188,1
    - Dst: OCSP_REQ_CTX_set1_req
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:191,1
    - Dst: OCSP_REQ_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:197,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - io
    - path
    - req
    - maxline
    argTypes:
    - BIO*
    - char*
    - OCSP_REQUEST*
    - int
    constantsTouched: []
    func_position:
      end: 199
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 199
    functionName: OCSP_sendreq_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c
    functionUses: 0
    functionsReached:
    - OCSP_REQ_CTX_http
    - OCSP_REQ_CTX_set1_req
    - OCSP_REQ_CTX_free
    - OCSP_REQ_CTX_new
    linkageType: ''
    returnType: OCSP_REQ_CTX
    signature: "*OCSP_sendreq_new(BIO *io, const char *path, OCSP_REQUEST *req,\n
      \                              int maxline)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:212,1
    - Dst: OCSPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:215,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:220,1
    - Dst: OCSPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:224,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:229,1
    - Dst: OCSPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:233,1
    - Dst: strtoul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:241,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:247,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:256,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:256,1
    - Dst: OCSPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:260,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:262,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:264,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 270
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 270
    functionName: parse_http_line1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c
    functionUses: 0
    functionsReached:
    - isspace
    - OCSPerr
    - strlen
    - ERR_add_error_data
    - strtoul
    linkageType: ''
    returnType: int
    signature: parse_http_line1(char *line)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:278,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:281,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:288,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:295,1
    - Dst: BIO_get_mem_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:302,1
    - Dst: BIO_get_mem_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:306,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:308,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:311,1
    - Dst: BIO_reset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:324,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:328,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:335,1
    - Dst: BIO_get_mem_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:355,1
    - Dst: memchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:356,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:363,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:366,1
    - Dst: parse_http_line1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:380,1
    - Dst: BIO_get_mem_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:408,1
    - Dst: BIO_get_mem_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:453,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 138
    argCount: 1
    argNames:
    - rctx
    argTypes:
    - OCSP_REQ_CTX*
    constantsTouched: []
    func_position:
      end: 467
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 467
    functionName: OCSP_REQ_CTX_nbio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c
    functionUses: 1
    functionsReached:
    - BIO_write
    - BIO_flush
    - BIO_should_retry
    - BIO_gets
    - memchr
    - BIO_get_mem_data
    - BIO_read
    - parse_http_line1
    - BIO_reset
    linkageType: ''
    returnType: int
    signature: OCSP_REQ_CTX_nbio(OCSP_REQ_CTX *rctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_REQ_CTX_nbio_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:471,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - presp
    - rctx
    argTypes:
    - OCSP_RESPONSE**
    - OCSP_REQ_CTX*
    constantsTouched: []
    func_position:
      end: 474
      start: 469
    functionDepth: 2
    functionLinenumber: 469
    functionLinenumberEnd: 474
    functionName: OCSP_sendreq_nbio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - OCSP_REQ_CTX_nbio_d2i
    linkageType: ''
    returnType: int
    signature: OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OCSP_REQ_CTX *rctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_sendreq_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:484,1
    - Dst: OCSP_sendreq_nbio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:490,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:491,1
    - Dst: OCSP_REQ_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c:493,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - b
    - path
    - req
    argTypes:
    - BIO*
    - char*
    - OCSP_REQUEST*
    constantsTouched: []
    func_position:
      end: 499
      start: 478
    functionDepth: 4
    functionLinenumber: 478
    functionLinenumberEnd: 499
    functionName: OCSP_sendreq_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c
    functionUses: 0
    functionsReached:
    - OCSP_sendreq_new
    - BIO_should_retry
    - OCSP_sendreq_nbio
    - OCSP_REQ_CTX_free
    linkageType: ''
    returnType: OCSP_RESPONSE
    signature: '*OCSP_sendreq_bio(BIO *b, const char *path, OCSP_REQUEST *req)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_ONEREQ_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:34,1
    - Dst: OCSP_CERTID_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:36,1
    - Dst: sk_OCSP_ONEREQ_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:38,1
    - Dst: OCSP_ONEREQ_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - req
    - cid
    argTypes:
    - OCSP_REQUEST*
    - OCSP_CERTID*
    constantsTouched: []
    func_position:
      end: 46
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 46
    functionName: OCSP_request_add0_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - OCSP_ONEREQ_new
    - OCSP_CERTID_free
    - sk_OCSP_ONEREQ_push
    - OCSP_ONEREQ_free
    linkageType: ''
    returnType: OCSP_ONEREQ
    signature: '*OCSP_request_add0_id(OCSP_REQUEST *req, OCSP_CERTID *cid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GENERAL_NAME_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:54,1
    - Dst: X509_NAME_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:57,1
    - Dst: GENERAL_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:58,1
    - Dst: GENERAL_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - req
    - nm
    argTypes:
    - OCSP_REQUEST*
    - X509_NAME*
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: OCSP_request_set1_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - X509_NAME_set
    - GENERAL_NAME_new
    - GENERAL_NAME_free
    linkageType: ''
    returnType: int
    signature: OCSP_request_set1_name(OCSP_REQUEST *req, X509_NAME *nm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_SIGNATURE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:73,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:80,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:83,1
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:85,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - req
    - cert
    argTypes:
    - OCSP_REQUEST*
    - X509*
    constantsTouched: []
    func_position:
      end: 87
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 87
    functionName: OCSP_request_add1_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - OCSP_SIGNATURE_new
    - X509_up_ref
    - sk_X509_new_null
    - sk_X509_push
    linkageType: ''
    returnType: int
    signature: OCSP_request_add1_cert(OCSP_REQUEST *req, X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_request_set1_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:104,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:104,1
    - Dst: OCSP_SIGNATURE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:107,1
    - Dst: X509_check_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:110,1
    - Dst: OCSPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:111,1
    - Dst: OCSP_REQUEST_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:115,1
    - Dst: OCSP_request_add1_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:120,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:122,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:123,1
    - Dst: OCSP_request_add1_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:124,1
    - Dst: OCSP_SIGNATURE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:131,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 6
    argNames:
    - req
    - signer
    - key
    - dgst
    - certs
    - flags
    argTypes:
    - OCSP_REQUEST*
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    - STACK_OF*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 134
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 134
    functionName: OCSP_request_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - OCSP_SIGNATURE_new
    - OCSP_request_add1_cert
    - OCSP_SIGNATURE_free
    - X509_get_subject_name
    - sk_X509_num
    - OCSPerr
    - OCSP_REQUEST_sign
    - X509_check_private_key
    - sk_X509_value
    - OCSP_request_set1_name
    linkageType: ''
    returnType: int
    signature: "OCSP_request_sign(OCSP_REQUEST *req,\n                      X509 *signer,\n
      \                     EVP_PKEY *key,\n                      const EVP_MD *dgst,\n
      \                     STACK_OF(X509) *certs, unsigned long flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ENUMERATED_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - resp
    argTypes:
    - OCSP_RESPONSE*
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: OCSP_response_status
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - ASN1_ENUMERATED_get
    linkageType: ''
    returnType: int
    signature: OCSP_response_status(OCSP_RESPONSE *resp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OCSPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:153,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:156,1
    - Dst: OCSPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:157,1
    - Dst: ASN1_item_unpack
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:161,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - resp
    argTypes:
    - OCSP_RESPONSE*
    constantsTouched: []
    func_position:
      end: 162
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 162
    functionName: OCSP_response_get1_basic
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c
    functionUses: 1
    functionsReached:
    - OCSPerr
    - OBJ_obj2nid
    - ASN1_ITEM_rptr
    - ASN1_item_unpack
    linkageType: ''
    returnType: OCSP_BASICRESP
    signature: '*OCSP_response_get1_basic(OCSP_RESPONSE *resp)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - OCSP_BASICRESP*
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: OCSP_resp_get0_signature
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: '*OCSP_resp_get0_signature(const OCSP_BASICRESP *bs)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_OCSP_SINGLERESP_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bs
    argTypes:
    - OCSP_BASICRESP*
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: OCSP_resp_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - sk_OCSP_SINGLERESP_num
    linkageType: ''
    returnType: int
    signature: OCSP_resp_count(OCSP_BASICRESP *bs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_OCSP_SINGLERESP_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bs
    - idx
    argTypes:
    - OCSP_BASICRESP*
    - int
    constantsTouched: []
    func_position:
      end: 187
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 187
    functionName: OCSP_resp_get0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - sk_OCSP_SINGLERESP_value
    linkageType: ''
    returnType: OCSP_SINGLERESP
    signature: '*OCSP_resp_get0(OCSP_BASICRESP *bs, int idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - OCSP_BASICRESP*
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: OCSP_resp_get0_produced_at
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_GENERALIZEDTIME
    signature: '*OCSP_resp_get0_produced_at(const OCSP_BASICRESP* bs)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - OCSP_BASICRESP*
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: OCSP_resp_get0_certs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: '*OCSP_resp_get0_certs(const OCSP_BASICRESP *bs)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - bs
    - pid
    - pname
    argTypes:
    - OCSP_BASICRESP*
    - ASN1_OCTET_STRING**
    - X509_NAME**
    constantsTouched: []
    func_position:
      end: 215
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 215
    functionName: OCSP_resp_get0_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "OCSP_resp_get0_id(const OCSP_BASICRESP *bs,\n                      const
      ASN1_OCTET_STRING **pid,\n                      const X509_NAME **pname)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:222,1
    - Dst: sk_OCSP_SINGLERESP_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:231,1
    - Dst: sk_OCSP_SINGLERESP_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:232,1
    - Dst: OCSP_id_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:233,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - bs
    - id
    - last
    argTypes:
    - OCSP_BASICRESP*
    - OCSP_CERTID*
    - int
    constantsTouched: []
    func_position:
      end: 237
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 237
    functionName: OCSP_resp_find
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - OCSP_id_cmp
    - sk_OCSP_SINGLERESP_num
    - sk_OCSP_SINGLERESP_value
    linkageType: ''
    returnType: int
    signature: OCSP_resp_find(OCSP_BASICRESP *bs, OCSP_CERTID *id, int last)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ENUMERATED_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:262,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - single
    - reason
    - revtime
    - thisupd
    - nextupd
    argTypes:
    - OCSP_SINGLERESP*
    - int*
    - ASN1_GENERALIZEDTIME**
    - ASN1_GENERALIZEDTIME**
    - ASN1_GENERALIZEDTIME**
    constantsTouched: []
    func_position:
      end: 272
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 272
    functionName: OCSP_single_get0_status
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - ASN1_ENUMERATED_get
    linkageType: ''
    returnType: int
    signature: "OCSP_single_get0_status(OCSP_SINGLERESP *single, int *reason,\n                            ASN1_GENERALIZEDTIME
      **revtime,\n                            ASN1_GENERALIZEDTIME **thisupd,\n                            ASN1_GENERALIZEDTIME
      **nextupd)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_resp_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:287,1
    - Dst: OCSP_resp_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:291,1
    - Dst: OCSP_single_get0_status
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 7
    argNames:
    - bs
    - id
    - status
    - reason
    - revtime
    - thisupd
    - nextupd
    argTypes:
    - OCSP_BASICRESP*
    - OCSP_CERTID*
    - int*
    - int*
    - ASN1_GENERALIZEDTIME**
    - ASN1_GENERALIZEDTIME**
    - ASN1_GENERALIZEDTIME**
    constantsTouched: []
    func_position:
      end: 296
      start: 279
    functionDepth: 4
    functionLinenumber: 279
    functionLinenumberEnd: 296
    functionName: OCSP_resp_find_status
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - OCSP_resp_get0
    - OCSP_single_get0_status
    - OCSP_resp_find
    linkageType: ''
    returnType: int
    signature: "OCSP_resp_find_status(OCSP_BASICRESP *bs, OCSP_CERTID *id, int *status,\n
      \                         int *reason,\n                          ASN1_GENERALIZEDTIME
      **revtime,\n                          ASN1_GENERALIZEDTIME **thisupd,\n                          ASN1_GENERALIZEDTIME
      **nextupd)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:312,1
    - Dst: ASN1_GENERALIZEDTIME_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:314,1
    - Dst: OCSPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:315,1
    - Dst: X509_cmp_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:319,1
    - Dst: OCSPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:320,1
    - Dst: X509_cmp_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:330,1
    - Dst: OCSPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:331,1
    - Dst: ASN1_GENERALIZEDTIME_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:341,1
    - Dst: OCSPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:342,1
    - Dst: X509_cmp_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:346,1
    - Dst: OCSPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:347,1
    - Dst: ASN1_STRING_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:353,1
    - Dst: OCSPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c:354,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 4
    argNames:
    - thisupd
    - nextupd
    - nsec
    - maxsec
    argTypes:
    - ASN1_GENERALIZEDTIME*
    - ASN1_GENERALIZEDTIME*
    - long
    - long
    constantsTouched: []
    func_position:
      end: 360
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 360
    functionName: OCSP_check_validity
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_cmp
    - ASN1_GENERALIZEDTIME_check
    - X509_cmp_time
    - OCSPerr
    - time
    linkageType: ''
    returnType: int
    signature: "OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd,\n                        ASN1_GENERALIZEDTIME
      *nextupd, long nsec, long maxsec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - single
    argTypes:
    - OCSP_SINGLERESP*
    constantsTouched: []
    func_position:
      end: 365
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 365
    functionName: OCSP_SINGLERESP_get0_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OCSP_CERTID
    signature: '*OCSP_SINGLERESP_get0_id(const OCSP_SINGLERESP *single)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_err.c:85,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_err.c:86,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_err.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: ERR_load_OCSP_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_OCSP_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MD4_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_one.c:26,1
    - Dst: MD4_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_one.c:29,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_one.c:37,1
    - Dst: MD4_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_one.c:38,1
    - Dst: MD4_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_one.c:44,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_one.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 47
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 47
    functionName: MD4
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_one.c
    functionUses: 0
    functionsReached:
    - MD4_Final
    - MD4_Update
    - MD4_Init
    - OPENSSL_cleanse
    - ebcdic2ascii
    linkageType: ''
    returnType: unsigned char
    signature: '*MD4(const unsigned char *d, size_t n, unsigned char *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - MD4_CTX*
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: MD4_Init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: MD4_Init(MD4_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:57,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:58,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:59,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:60,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:62,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:62,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:63,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:64,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:65,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:65,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:66,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:67,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:68,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:68,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:69,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:70,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:71,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:71,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:72,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:73,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:74,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:74,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:75,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:76,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:77,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:77,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:78,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:79,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:80,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:80,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:81,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:82,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:83,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:83,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:84,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:85,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:86,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:86,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:87,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:88,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:89,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:89,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:90,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:91,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:92,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:92,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:93,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:94,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:95,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:95,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:96,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:97,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:98,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:98,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:99,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:100,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:101,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:101,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:102,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:103,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:104,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:104,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:105,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:105,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:107,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:107,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:108,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:108,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:109,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:109,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:110,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:110,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:111,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:111,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:112,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:112,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:113,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:113,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:114,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:114,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:115,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:115,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:116,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:116,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:117,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:117,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:118,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:118,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:119,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:119,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:120,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:120,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:121,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:121,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:122,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:122,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:124,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:124,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:125,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:125,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:126,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:126,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:127,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:127,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:128,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:128,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:129,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:129,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:130,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:130,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:131,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:131,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:132,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:132,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:133,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:133,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:134,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:134,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:135,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:135,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:136,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:136,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:137,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:137,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:138,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:138,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:139,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 91
    argCount: 3
    argNames:
    - c
    - data_
    - num
    argTypes:
    - MD4_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 146
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 146
    functionName: md4_block_data_order
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c
    functionUses: 0
    functionsReached:
    - HOST_c2l
    - X
    - R0
    - R2
    - R1
    linkageType: ''
    returnType: void
    signature: md4_block_data_order(MD4_CTX *c, const void *data_, size_t num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:28,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:28,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:31,1
    - Dst: OPENSSL_LH_stats_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:32,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - lh
    - fp
    argTypes:
    - OPENSSL_LHASH*
    - FILE*
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: OPENSSL_LH_stats
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_stats_bio
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: void
    signature: OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:40,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:40,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:43,1
    - Dst: OPENSSL_LH_node_stats_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:44,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - lh
    - fp
    argTypes:
    - OPENSSL_LHASH*
    - FILE*
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: OPENSSL_LH_node_stats
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_node_stats_bio
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: void
    signature: OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:52,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:52,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:55,1
    - Dst: OPENSSL_LH_node_usage_stats_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:56,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - lh
    - fp
    argTypes:
    - OPENSSL_LHASH*
    - FILE*
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: OPENSSL_LH_node_usage_stats
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_node_usage_stats_bio
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: void
    signature: OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:64,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:65,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:66,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:67,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:68,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:69,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:70,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:72,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:73,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:74,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:75,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:76,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:77,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:78,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:79,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - lh
    - out
    argTypes:
    - OPENSSL_LHASH*
    - BIO*
    constantsTouched: []
    func_position:
      end: 81
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 81
    functionName: OPENSSL_LH_stats_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - lh
    - out
    argTypes:
    - OPENSSL_LHASH*
    - BIO*
    constantsTouched: []
    func_position:
      end: 93
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 93
    functionName: OPENSSL_LH_node_stats_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:110,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:111,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - lh
    - out
    argTypes:
    - OPENSSL_LHASH*
    - BIO*
    constantsTouched: []
    func_position:
      end: 118
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 118
    functionName: OPENSSL_LH_node_usage_stats_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c:31,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c:33,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - h
    - c
    argTypes:
    - OPENSSL_LH_HASHFUNC
    - OPENSSL_LH_COMPFUNC
    constantsTouched: []
    func_position:
      end: 48
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 48
    functionName: OPENSSL_LH_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OPENSSL_LHASH
    signature: '*OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c:62,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c:66,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - lh
    argTypes:
    - OPENSSL_LHASH*
    constantsTouched: []
    func_position:
      end: 68
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 68
    functionName: OPENSSL_LH_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: OPENSSL_LH_free(OPENSSL_LHASH *lh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c:77,1
    - Dst: getrn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c:80,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - lh
    - data
    argTypes:
    - OPENSSL_LHASH*
    - void*
    constantsTouched: []
    func_position:
      end: 101
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 101
    functionName: OPENSSL_LH_insert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - expand
    - getrn
    linkageType: ''
    returnType: void
    signature: '*OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getrn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c:110,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c:119,1
    - Dst: contract
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - lh
    - data
    argTypes:
    - OPENSSL_LHASH*
    - void*
    constantsTouched: []
    func_position:
      end: 129
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 129
    functionName: OPENSSL_LH_delete
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached:
    - contract
    - OPENSSL_free
    - getrn
    linkageType: ''
    returnType: void
    signature: '*OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getrn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - lh
    - data
    argTypes:
    - OPENSSL_LHASH*
    - void*
    constantsTouched: []
    func_position:
      end: 148
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 148
    functionName: OPENSSL_LH_retrieve
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached:
    - getrn
    linkageType: ''
    returnType: void
    signature: '*OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: func_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c:169,1
    - Dst: func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - lh
    - use_arg
    - func
    - func_arg
    - arg
    argTypes:
    - OPENSSL_LHASH*
    - int
    - OPENSSL_LH_DOALL_FUNC
    - OPENSSL_LH_DOALL_FUNCARG
    - void*
    constantsTouched: []
    func_position:
      end: 175
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 175
    functionName: doall_util_fn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached:
    - func_arg
    - func
    linkageType: ''
    returnType: void
    signature: "doall_util_fn(OPENSSL_LHASH *lh, int use_arg,\n                          OPENSSL_LH_DOALL_FUNC
      func,\n                          OPENSSL_LH_DOALL_FUNCARG func_arg, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doall_util_fn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lh
    - func
    argTypes:
    - OPENSSL_LHASH*
    - OPENSSL_LH_DOALL_FUNC
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: OPENSSL_LH_doall
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached:
    - doall_util_fn
    linkageType: ''
    returnType: void
    signature: OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doall_util_fn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lh
    - func
    - arg
    argTypes:
    - OPENSSL_LHASH*
    - OPENSSL_LH_DOALL_FUNCARG
    - void*
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: OPENSSL_LH_doall_arg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached:
    - doall_util_fn
    linkageType: ''
    returnType: void
    signature: OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func,
      void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c:214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 1
    argNames:
    - lh
    argTypes:
    - OPENSSL_LHASH*
    constantsTouched: []
    func_position:
      end: 230
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 230
    functionName: expand
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c
    functionUses: 51
    functionsReached:
    - OPENSSL_realloc
    linkageType: ''
    returnType: int
    signature: expand(OPENSSL_LHASH *lh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - lh
    argTypes:
    - OPENSSL_LHASH*
    constantsTouched: []
    func_position:
      end: 265
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 265
    functionName: contract
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c
    functionUses: 12
    functionsReached:
    - OPENSSL_realloc
    linkageType: ''
    returnType: void
    signature: contract(OPENSSL_LHASH *lh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c:291,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 296
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 296
    functionName: getrn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c
    functionUses: 3
    functionsReached:
    - cf
    linkageType: ''
    returnType: OPENSSL_LH_NODE
    signature: "**getrn(OPENSSL_LHASH *lh,\n                               const void
      *data, unsigned long *rhash)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 329
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 329
    functionName: OPENSSL_LH_strhash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: OPENSSL_LH_strhash(const char *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lh
    argTypes:
    - OPENSSL_LHASH*
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: OPENSSL_LH_num_items
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: OPENSSL_LH_num_items(const OPENSSL_LHASH *lh)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lh
    argTypes:
    - OPENSSL_LHASH*
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: OPENSSL_LH_get_down_load
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lh
    - down_load
    argTypes:
    - OPENSSL_LHASH*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 344
    functionName: OPENSSL_LH_set_down_load
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lh
    argTypes:
    - OPENSSL_LHASH*
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: OPENSSL_LH_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: OPENSSL_LH_error(OPENSSL_LHASH *lh)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: DSA_OpenSSL
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: DSA_METHOD
    signature: '*DSA_OpenSSL(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:59,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:60,1
    - Dst: DSA_SIG_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:69,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:72,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:73,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:77,1
    - Dst: dsa_sign_setup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:81,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:84,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:90,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:91,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:95,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:97,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:99,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:100,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:102,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:109,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:109,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:116,1
    - Dst: DSA_SIG_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:117,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:120,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:121,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:122,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:123,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 63
    argCount: 3
    argNames:
    - dgst
    - dlen
    - dsa
    argTypes:
    - unsigned char*
    - int
    - DSA*
    constantsTouched: []
    func_position:
      end: 125
      start: 49
    functionDepth: 4
    functionLinenumber: 49
    functionLinenumberEnd: 125
    functionName: dsa_do_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_new
    - DSAerr
    - BN_clear_free
    - BN_bin2bn
    - BN_sub
    - BN_is_zero
    - DSA_SIG_free
    - BN_add
    - BN_cmp
    - dsa_sign_setup
    - BN_CTX_free
    - DSA_SIG_new
    - BN_CTX_new
    - BN_mod_mul
    - BN_num_bytes
    linkageType: ''
    returnType: DSA_SIG
    signature: '*dsa_do_sign(const unsigned char *dgst, int dlen, DSA *dsa)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dsa_sign_setup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dsa
    - ctx_in
    - kinvp
    - rp
    argTypes:
    - DSA*
    - BN_CTX*
    - BIGNUM**
    - BIGNUM**
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: dsa_sign_setup_no_digest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c
    functionUses: 0
    functionsReached:
    - dsa_sign_setup
    linkageType: ''
    returnType: int
    signature: "dsa_sign_setup_no_digest(DSA *dsa, BN_CTX *ctx_in,\n                                    BIGNUM
      **kinvp, BIGNUM **rp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:142,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:146,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:151,1
    - Dst: BN_generate_dsa_nonce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:163,1
    - Dst: BN_rand_range
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:166,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:168,1
    - Dst: BN_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:170,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:173,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:187,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:189,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:189,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:190,1
    - Dst: DSA*::meth::bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:195,1
    - Dst: BN_mod_exp_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:199,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:203,1
    - Dst: BN_mod_inverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:207,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:210,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:216,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:218,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:219,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 66
    argCount: 6
    argNames:
    - dsa
    - ctx_in
    - kinvp
    - rp
    - dgst
    - dlen
    argTypes:
    - DSA*
    - BN_CTX*
    - BIGNUM**
    - BIGNUM**
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 221
      start: 133
    functionDepth: 6
    functionLinenumber: 133
    functionLinenumberEnd: 221
    functionName: dsa_sign_setup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c
    functionUses: 4
    functionsReached:
    - BN_new
    - DSAerr
    - BN_mod_inverse
    - BN_clear_free
    - BN_is_zero
    - BN_generate_dsa_nonce
    - BN_mod
    - BN_add
    - BN_rand_range
    - BN_set_flags
    - BN_num_bits
    - DSA*::meth::bn_mod_exp
    - BN_CTX_free
    - BN_CTX_new
    - BN_MONT_CTX_set_locked
    - BN_mod_exp_mont
    linkageType: ''
    returnType: int
    signature: "dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in,\n                          BIGNUM
      **kinvp, BIGNUM **rp,\n                          const unsigned char *dgst,
      int dlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:232,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:236,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:239,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:243,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:244,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:247,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:248,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:249,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:250,1
    - Dst: DSA_SIG_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:254,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:256,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:256,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:257,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:261,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:261,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:262,1
    - Dst: BN_mod_inverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:270,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:281,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:285,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:289,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:293,1
    - Dst: DSA*::meth::dsa_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:300,1
    - Dst: BN_mod_exp2_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:304,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:310,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:316,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:320,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:321,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:322,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:323,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:324,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 74
    argCount: 4
    argNames:
    - dgst
    - dgst_len
    - sig
    - dsa
    argTypes:
    - unsigned char*
    - int
    - DSA_SIG*
    - DSA*
    constantsTouched: []
    func_position:
      end: 326
      start: 223
    functionDepth: 6
    functionLinenumber: 223
    functionLinenumberEnd: 326
    functionName: dsa_do_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_new
    - DSAerr
    - BN_mod_inverse
    - BN_free
    - BN_bin2bn
    - BN_is_zero
    - DSA*::meth::dsa_mod_exp
    - BN_mod
    - BN_is_negative
    - BN_mod_exp2_mont
    - BN_CTX_free
    - BN_num_bits
    - BN_CTX_new
    - BN_mod_mul
    - BN_ucmp
    - BN_MONT_CTX_set_locked
    - DSA_SIG_get0
    linkageType: ''
    returnType: int
    signature: "dsa_do_verify(const unsigned char *dgst, int dgst_len,\n                         DSA_SIG
      *sig, DSA *dsa)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    constantsTouched: []
    func_position:
      end: 332
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 332
    functionName: dsa_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: dsa_init(DSA *dsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    constantsTouched: []
    func_position:
      end: 338
      start: 334
    functionDepth: 4
    functionLinenumber: 334
    functionLinenumberEnd: 338
    functionName: dsa_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_MONT_CTX_free
    linkageType: ''
    returnType: int
    signature: dsa_finish(DSA *dsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - DSA_METHOD*
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: DSA_set_default_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DSA_set_default_method(const DSA_METHOD *meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: DSA_get_default_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached:
    - DSA_OpenSSL
    linkageType: ''
    returnType: DSA_METHOD
    signature: '*DSA_get_default_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA_new_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: DSA_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached:
    - DSA_new_method
    linkageType: ''
    returnType: DSA
    signature: '*DSA_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA_METHOD*::finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:48,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:50,1
    - Dst: DSA_METHOD*::init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - dsa
    - meth
    argTypes:
    - DSA*
    - DSA_METHOD*
    constantsTouched: []
    func_position:
      end: 57
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 57
    functionName: DSA_set_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached:
    - DSA_METHOD*::finish
    - DSA_METHOD*::init
    - ENGINE_finish
    linkageType: ''
    returnType: int
    signature: DSA_set_method(DSA *dsa, const DSA_METHOD *meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - DSA*
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: DSA_get_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DSA_METHOD
    signature: '*DSA_get_method(DSA *d)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:66,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:69,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:74,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:76,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:77,1
    - Dst: DSA_get_default_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:81,1
    - Dst: ENGINE_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:85,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:86,1
    - Dst: ENGINE_get_default_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:91,1
    - Dst: ENGINE_get_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:93,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:95,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:103,1
    - Dst: DSA*::meth::init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:106,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:107,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:109,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 1
    argNames:
    - engine
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 114
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 114
    functionName: DSA_new_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached:
    - DSAerr
    - DSA_get_default_method
    - CRYPTO_new_ex_data
    - DSA*::meth::init
    - ENGINE_init
    - DSA_free
    - CRYPTO_THREAD_lock_new
    - ENGINE_get_DSA
    - OPENSSL_zalloc
    - OPENSSL_free
    - ENGINE_get_default_DSA
    linkageType: ''
    returnType: DSA
    signature: '*DSA_new_method(ENGINE *engine)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:123,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:124,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:127,1
    - Dst: DSA*::meth::finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:130,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:132,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:135,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:137,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:139,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:140,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:141,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:142,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:143,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - r
    argTypes:
    - DSA*
    constantsTouched: []
    func_position:
      end: 145
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 145
    functionName: DSA_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c
    functionUses: 8
    functionsReached:
    - BN_clear_free
    - CRYPTO_THREAD_lock_free
    - CRYPTO_atomic_add
    - CRYPTO_free_ex_data
    - ENGINE_finish
    - DSA*::meth::finish
    - OPENSSL_free
    - REF_ASSERT_ISNT
    - REF_PRINT_COUNT
    linkageType: ''
    returnType: void
    signature: DSA_free(DSA *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:151,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:154,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - DSA*
    constantsTouched: []
    func_position:
      end: 157
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 157
    functionName: DSA_up_ref
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_atomic_add
    linkageType: ''
    returnType: int
    signature: DSA_up_ref(DSA *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:168,1
    - Dst: i2d_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:175,1
    - Dst: ASN1_object_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - DSA*
    constantsTouched: []
    func_position:
      end: 179
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 179
    functionName: DSA_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached:
    - BN_num_bits
    - i2d_ASN1_INTEGER
    - ASN1_object_size
    linkageType: ''
    returnType: int
    signature: DSA_size(const DSA *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - idx
    - arg
    argTypes:
    - DSA*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: DSA_set_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: DSA_set_ex_data(DSA *d, int idx, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - idx
    argTypes:
    - DSA*
    - int
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: DSA_get_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: '*DSA_get_ex_data(DSA *d, int idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_security_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:194,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:194,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - DSA*
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: DSA_security_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    - BN_security_bits
    linkageType: ''
    returnType: int
    signature: DSA_security_bits(const DSA *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:211,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:219,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:220,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:221,1
    - Dst: DH_set0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:222,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:228,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:232,1
    - Dst: DH_set0_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:236,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:246,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:247,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:248,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:249,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:250,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:251,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 50
    argCount: 1
    argNames:
    - r
    argTypes:
    - DSA*
    constantsTouched: []
    func_position:
      end: 253
      start: 199
    functionDepth: 4
    functionLinenumber: 199
    functionLinenumberEnd: 253
    functionName: DSA_dup_DH
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached:
    - DH_set0_key
    - BN_dup
    - BN_free
    - DH_set0_pqg
    - DH_new
    - DH_free
    linkageType: ''
    returnType: DH
    signature: '*DSA_dup_DH(const DSA *r)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - d
    - p
    - q
    - g
    argTypes:
    - DSA*
    - BIGNUM**
    - BIGNUM**
    - BIGNUM**
    constantsTouched: []
    func_position:
      end: 265
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 265
    functionName: DSA_get0_pqg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "DSA_get0_pqg(const DSA *d,\n                  const BIGNUM **p, const
      BIGNUM **q, const BIGNUM **g)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:278,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:282,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:286,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 4
    argNames:
    - d
    - p
    - q
    - g
    argTypes:
    - DSA*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 291
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 291
    functionName: DSA_set0_pqg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: int
    signature: DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - d
    - pub_key
    - priv_key
    argTypes:
    - DSA*
    - BIGNUM**
    - BIGNUM**
    constantsTouched: []
    func_position:
      end: 300
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 300
    functionName: DSA_get0_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "DSA_get0_key(const DSA *d,\n                  const BIGNUM **pub_key,
      const BIGNUM **priv_key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:312,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:316,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - d
    - pub_key
    - priv_key
    argTypes:
    - DSA*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 321
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 321
    functionName: DSA_set0_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: int
    signature: DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - flags
    argTypes:
    - DSA*
    - int
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: DSA_clear_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DSA_clear_flags(DSA *d, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - flags
    argTypes:
    - DSA*
    - int
    constantsTouched: []
    func_position:
      end: 331
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 331
    functionName: DSA_test_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: DSA_test_flags(const DSA *d, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - flags
    argTypes:
    - DSA*
    - int
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 336
    functionName: DSA_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DSA_set_flags(DSA *d, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - DSA*
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: DSA_get0_engine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ENGINE
    signature: '*DSA_get0_engine(DSA *d)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    constantsTouched: []
    func_position:
      end: 346
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 346
    functionName: DSA_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: DSA_bits(const DSA *dsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:32,1
    - Dst: X509_ALGOR_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:34,1
    - Dst: d2i_DSAparams
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:41,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:42,1
    - Dst: DSA_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:47,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:48,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:52,1
    - Dst: d2i_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:56,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:57,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:61,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:62,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:66,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:67,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:71,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:72,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 2
    argNames:
    - pkey
    - pubkey
    argTypes:
    - EVP_PKEY*
    - X509_PUBKEY*
    constantsTouched: []
    func_position:
      end: 75
      start: 20
    functionDepth: 4
    functionLinenumber: 20
    functionLinenumberEnd: 75
    functionName: dsa_pub_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - DSA_new
    - DSAerr
    - ASN1_INTEGER_to_BN
    - EVP_PKEY_assign_DSA
    - DSA_free
    - d2i_ASN1_INTEGER
    - d2i_DSAparams
    - ASN1_INTEGER_free
    - X509_PUBKEY_get0_param
    - X509_ALGOR_get0
    linkageType: ''
    returnType: int
    signature: dsa_pub_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:88,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:90,1
    - Dst: i2d_DSAparams
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:93,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:95,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:102,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:105,1
    - Dst: i2d_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:109,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:110,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:113,1
    - Dst: X509_PUBKEY_set0_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:117,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:117,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:122,1
    - Dst: ASN1_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:123,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - pk
    - pkey
    argTypes:
    - X509_PUBKEY*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 126
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 126
    functionName: dsa_pub_encode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - DSAerr
    - ASN1_STRING_free
    - ASN1_STRING_new
    - X509_PUBKEY_set0_param
    - OBJ_nid2obj
    - BN_to_ASN1_INTEGER
    - i2d_DSAparams
    - OPENSSL_free
    - ASN1_INTEGER_free
    - i2d_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: dsa_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_pkey_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:148,1
    - Dst: X509_ALGOR_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:150,1
    - Dst: d2i_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:152,1
    - Dst: d2i_DSAparams
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:160,1
    - Dst: BN_secure_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:163,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:164,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:165,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:169,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:170,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:173,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:174,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:178,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:179,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:183,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:189,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:191,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:193,1
    - Dst: ASN1_STRING_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:194,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 2
    argNames:
    - pkey
    - p8
    argTypes:
    - EVP_PKEY*
    - PKCS8_PRIV_KEY_INFO*
    constantsTouched: []
    func_position:
      end: 196
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 196
    functionName: dsa_priv_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - BN_new
    - DSAerr
    - ASN1_STRING_clear_free
    - ASN1_INTEGER_to_BN
    - BN_mod_exp
    - EVP_PKEY_assign_DSA
    - DSA_free
    - BN_CTX_free
    - BN_CTX_new
    - d2i_ASN1_INTEGER
    - d2i_DSAparams
    - BN_secure_new
    - PKCS8_pkey_get0
    - X509_ALGOR_get0
    linkageType: ''
    returnType: int
    signature: dsa_priv_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:206,1
    - Dst: ASN1_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:210,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:213,1
    - Dst: i2d_DSAparams
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:217,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:219,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:225,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:228,1
    - Dst: i2d_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:232,1
    - Dst: ASN1_STRING_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:234,1
    - Dst: PKCS8_pkey_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:237,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:237,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:244,1
    - Dst: ASN1_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:245,1
    - Dst: ASN1_STRING_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:246,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 2
    argNames:
    - p8
    - pkey
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 248
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 248
    functionName: dsa_priv_encode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - DSAerr
    - ASN1_STRING_clear_free
    - ASN1_STRING_free
    - ASN1_STRING_new
    - OBJ_nid2obj
    - BN_to_ASN1_INTEGER
    - OPENSSL_free
    - i2d_DSAparams
    - PKCS8_pkey_set0
    - i2d_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: dsa_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: int_dsa_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - DSA_size
    linkageType: ''
    returnType: int
    signature: int_dsa_size(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: dsa_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - DSA_bits
    linkageType: ''
    returnType: int
    signature: dsa_bits(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA_security_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: dsa_security_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - DSA_security_bits
    linkageType: ''
    returnType: int
    signature: dsa_security_bits(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 272
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 272
    functionName: dsa_missing_parameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: dsa_missing_parameters(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:279,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:284,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:286,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:289,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:291,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:294,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:296,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 299
      start: 274
    functionDepth: 4
    functionLinenumber: 274
    functionLinenumberEnd: 299
    functionName: dsa_copy_parameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - DSA_new
    - BN_dup
    - BN_free
    linkageType: ''
    returnType: int
    signature: dsa_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:303,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:304,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:305,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 309
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 309
    functionName: dsa_cmp_parameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: dsa_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 317
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 317
    functionName: dsa_pub_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: dsa_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 4
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: int_dsa_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - DSA_free
    linkageType: ''
    returnType: void
    signature: int_dsa_free(EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:348,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:350,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:350,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:355,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:357,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:359,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:361,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:363,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 4
    argNames:
    - bp
    - x
    - 'off'
    - ptype
    argTypes:
    - BIO*
    - DSA*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 368
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 368
    functionName: do_dsa_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - BN_num_bits
    - ASN1_bn_print
    - BIO_indent
    linkageType: ''
    returnType: int
    signature: do_dsa_print(BIO *bp, const DSA *x, int off, int ptype)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_DSAparams
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:375,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:376,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pkey
    - pder
    - derlen
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    - int
    constantsTouched: []
    func_position:
      end: 381
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 381
    functionName: dsa_param_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - d2i_DSAparams
    - DSAerr
    - EVP_PKEY_assign_DSA
    linkageType: ''
    returnType: int
    signature: "dsa_param_decode(EVP_PKEY *pkey,\n                            const
      unsigned char **pder, int derlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_DSAparams
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - pder
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 386
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 386
    functionName: dsa_param_encode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_DSAparams
    linkageType: ''
    returnType: int
    signature: dsa_param_encode(const EVP_PKEY *pkey, unsigned char **pder)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_dsa_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 392
      start: 388
    functionDepth: 3
    functionLinenumber: 388
    functionLinenumberEnd: 392
    functionName: dsa_param_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - do_dsa_print
    linkageType: ''
    returnType: int
    signature: "dsa_param_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                           ASN1_PCTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_dsa_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 398
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 398
    functionName: dsa_pub_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - do_dsa_print
    linkageType: ''
    returnType: int
    signature: "dsa_pub_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                         ASN1_PCTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_dsa_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 404
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 404
    functionName: dsa_priv_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - do_dsa_print
    linkageType: ''
    returnType: int
    signature: "dsa_priv_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                          ASN1_PCTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_DSAPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:411,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:412,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pkey
    - pder
    - derlen
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    - int
    constantsTouched: []
    func_position:
      end: 417
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 417
    functionName: old_dsa_priv_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - d2i_DSAPrivateKey
    - DSAerr
    - EVP_PKEY_assign_DSA
    linkageType: ''
    returnType: int
    signature: "old_dsa_priv_decode(EVP_PKEY *pkey,\n                               const
      unsigned char **pder, int derlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_DSAPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - pder
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: old_dsa_priv_encode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_DSAPrivateKey
    linkageType: ''
    returnType: int
    signature: old_dsa_priv_encode(const EVP_PKEY *pkey, unsigned char **pder)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:431,1
    - Dst: d2i_DSA_SIG
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:437,1
    - Dst: DSA_SIG_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:442,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:444,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:447,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:449,1
    - Dst: DSA_SIG_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:453,1
    - Dst: X509_signature_dump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:456,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 5
    argNames:
    - bp
    - sigalg
    - sig
    - indent
    - pctx
    argTypes:
    - BIO*
    - X509_ALGOR*
    - ASN1_STRING*
    - int
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 457
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 457
    functionName: dsa_sig_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - d2i_DSA_SIG
    - ASN1_bn_print
    - BIO_puts
    - DSA_SIG_free
    - BIO_write
    - X509_signature_dump
    - DSA_SIG_get0
    linkageType: ''
    returnType: int
    signature: "dsa_sig_print(BIO *bp, const X509_ALGOR *sigalg,\n                         const
      ASN1_STRING *sig, int indent, ASN1_PCTX *pctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_SIGNER_INFO_get0_algs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:466,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:469,1
    - Dst: OBJ_find_sigid_by_algs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:472,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:472,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:474,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:474,1
    - Dst: CMS_SignerInfo_get0_algs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:482,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:485,1
    - Dst: OBJ_find_sigid_by_algs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:488,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:488,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:490,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c:490,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 508
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 508
    functionName: dsa_pkey_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - OBJ_find_sigid_by_algs
    - OBJ_obj2nid
    - X509_ALGOR_set0
    - EVP_PKEY_id
    - OBJ_nid2obj
    - CMS_SignerInfo_get0_algs
    - PKCS7_SIGNER_INFO_get0_algs
    linkageType: ''
    returnType: int
    signature: dsa_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA*::meth::dsa_do_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_vrf.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dgst
    - dgst_len
    - sig
    - dsa
    argTypes:
    - unsigned char*
    - int
    - DSA_SIG*
    - DSA*
    constantsTouched: []
    func_position:
      end: 19
      start: 15
    functionDepth: 7
    functionLinenumber: 15
    functionLinenumberEnd: 19
    functionName: DSA_do_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_vrf.c
    functionUses: 3
    functionsReached:
    - DSA*::meth::dsa_do_verify
    linkageType: ''
    returnType: int
    signature: "DSA_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG *sig,\n
      \                 DSA *dsa)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c:21,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c:21,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c:22,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c:25,1
    - Dst: DSA_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c:26,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fp
    - x
    - 'off'
    argTypes:
    - FILE*
    - DSA*
    - int
    constantsTouched: []
    func_position:
      end: 29
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 29
    functionName: DSA_print_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c
    functionUses: 0
    functionsReached:
    - DSAerr
    - DSA_print
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: DSA_print_fp(FILE *fp, const DSA *x, int off)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c:36,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c:36,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c:37,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c:40,1
    - Dst: DSAparams_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c:41,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - fp
    - x
    argTypes:
    - FILE*
    - DSA*
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: DSAparams_print_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c
    functionUses: 0
    functionsReached:
    - DSAerr
    - BIO_s_file
    - BIO_free
    - DSAparams_print
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: DSAparams_print_fp(FILE *fp, const DSA *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c:51,1
    - Dst: EVP_PKEY_set1_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c:52,1
    - Dst: EVP_PKEY_print_private
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c:54,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - bp
    - x
    - 'off'
    argTypes:
    - BIO*
    - DSA*
    - int
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: DSA_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_new
    - EVP_PKEY_print_private
    - EVP_PKEY_free
    - EVP_PKEY_set1_DSA
    linkageType: ''
    returnType: int
    signature: DSA_print(BIO *bp, const DSA *x, int off)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c:63,1
    - Dst: EVP_PKEY_set1_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c:64,1
    - Dst: EVP_PKEY_print_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c:66,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - DSA*
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: DSAparams_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_new
    - EVP_PKEY_free
    - EVP_PKEY_print_params
    - EVP_PKEY_set1_DSA
    linkageType: ''
    returnType: int
    signature: DSAparams_print(BIO *bp, const DSA *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA*::meth::dsa_do_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_sign.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dgst
    - dlen
    - dsa
    argTypes:
    - unsigned char*
    - int
    - DSA*
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 5
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: DSA_do_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_sign.c
    functionUses: 2
    functionsReached:
    - DSA*::meth::dsa_do_sign
    linkageType: ''
    returnType: DSA_SIG
    signature: '*DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA*::meth::dsa_sign_setup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_sign.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dsa
    - ctx_in
    - kinvp
    - rp
    argTypes:
    - DSA*
    - BN_CTX*
    - BIGNUM**
    - BIGNUM**
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 7
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: DSA_sign_setup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_sign.c
    functionUses: 0
    functionsReached:
    - DSA*::meth::dsa_sign_setup
    linkageType: ''
    returnType: int
    signature: DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_err.c:70,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_err.c:71,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_err.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 76
    functionName: ERR_load_DSA_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_DSA_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_depr.c:44,1
    - Dst: BN_GENCB_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_depr.c:46,1
    - Dst: BN_GENCB_set_old
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_depr.c:50,1
    - Dst: DSA_generate_parameters_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_depr.c:52,1
    - Dst: BN_GENCB_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_depr.c:54,1
    - Dst: BN_GENCB_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_depr.c:57,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_depr.c:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 6
    argNames:
    - bits
    - seed_in
    - seed_len
    - counter_ret
    - h_ret
    - cb_arg
    argTypes:
    - int
    - unsigned char*
    - int
    - int*
    - unsigned long*
    - void*
    constantsTouched: []
    func_position:
      end: 61
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 61
    functionName: DSA_generate_parameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_depr.c
    functionUses: 0
    functionsReached:
    - DSA_new
    - BN_GENCB_set_old
    - BN_GENCB_free
    - BN_GENCB_new
    - DSA_free
    - DSA_generate_parameters_ex
    linkageType: ''
    returnType: DSA
    signature: "*DSA_generate_parameters(int bits,\n                             unsigned
      char *seed_in, int seed_len,\n                             int *counter_ret,
      unsigned long *h_ret,\n                             void (*callback) (int, int,
      void *),\n                             void *cb_arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c:26,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: DSA_SIG_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c
    functionUses: 6
    functionsReached:
    - DSAerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: DSA_SIG
    signature: '*DSA_SIG_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c:36,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c:37,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sig
    argTypes:
    - DSA_SIG*
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: DSA_SIG_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c
    functionUses: 11
    functionsReached:
    - OPENSSL_free
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: DSA_SIG_free(DSA_SIG *sig)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - sig
    - pr
    - ps
    argTypes:
    - DSA_SIG*
    - BIGNUM**
    - BIGNUM**
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: DSA_SIG_get0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c:53,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - sig
    - r
    - s
    argTypes:
    - DSA_SIG*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 58
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 58
    functionName: DSA_SIG_set0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c
    functionUses: 3
    functionsReached:
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c:65,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    constantsTouched: []
    func_position:
      end: 75
      start: 61
    functionDepth: 4
    functionLinenumber: 61
    functionLinenumberEnd: 75
    functionName: dsa_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c
    functionUses: 0
    functionsReached:
    - DSA_new
    - DSA_free
    linkageType: ''
    returnType: int
    signature: "dsa_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n                  void
      *exarg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c:107,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: DSAparams_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_dup
    linkageType: ''
    returnType: DSA
    signature: '*DSAparams_dup(DSA *dsa)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_seed
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c:114,1
    - Dst: DSA_do_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c:115,1
    - Dst: i2d_DSA_SIG
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c:120,1
    - Dst: DSA_SIG_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - type
    - dgst
    - dlen
    - sig
    - siglen
    - dsa
    argTypes:
    - int
    - unsigned char*
    - int
    - unsigned char*
    - unsigned int*
    - DSA*
    constantsTouched: []
    func_position:
      end: 123
      start: 110
    functionDepth: 6
    functionLinenumber: 110
    functionLinenumberEnd: 123
    functionName: DSA_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c
    functionUses: 1
    functionsReached:
    - i2d_DSA_SIG
    - DSA_SIG_free
    - RAND_seed
    - DSA_do_sign
    linkageType: ''
    returnType: int
    signature: "DSA_sign(int type, const unsigned char *dgst, int dlen,\n             unsigned
      char *sig, unsigned int *siglen, DSA *dsa)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA_SIG_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c:141,1
    - Dst: d2i_DSA_SIG
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c:144,1
    - Dst: i2d_DSA_SIG
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c:147,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c:148,1
    - Dst: DSA_do_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c:150,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c:152,1
    - Dst: DSA_SIG_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c:153,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 6
    argNames:
    - type
    - dgst
    - dgst_len
    - sigbuf
    - siglen
    - dsa
    argTypes:
    - int
    - unsigned char*
    - int
    - unsigned char*
    - int
    - DSA*
    constantsTouched: []
    func_position:
      end: 155
      start: 132
    functionDepth: 8
    functionLinenumber: 132
    functionLinenumberEnd: 155
    functionName: DSA_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c
    functionUses: 1
    functionsReached:
    - d2i_DSA_SIG
    - memcmp
    - DSA_SIG_free
    - DSA_do_verify
    - DSA_SIG_new
    - OPENSSL_clear_free
    - i2d_DSA_SIG
    linkageType: ''
    returnType: int
    signature: "DSA_verify(int type, const unsigned char *dgst, int dgst_len,\n               const
      unsigned char *sigbuf, int siglen, DSA *dsa)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c:24,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c:29,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c:33,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - name
    - flags
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 38
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 38
    functionName: DSA_meth_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - DSAerr
    - OPENSSL_strdup
    - OPENSSL_zalloc
    linkageType: ''
    returnType: DSA_METHOD
    signature: '*DSA_meth_new(const char *name, int flags)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c:43,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: DSA_meth_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: DSA_meth_free(DSA_METHOD *dsam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c:50,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c:53,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c:55,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c:59,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    constantsTouched: []
    func_position:
      end: 64
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 64
    functionName: DSA_meth_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached:
    - DSAerr
    - memcpy
    - OPENSSL_strdup
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: DSA_METHOD
    signature: '*DSA_meth_dup(const DSA_METHOD *dsam)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: DSA_meth_get0_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*DSA_meth_get0_name(const DSA_METHOD *dsam)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c:76,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - dsam
    - name
    argTypes:
    - DSA_METHOD*
    - char*
    constantsTouched: []
    func_position:
      end: 84
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 84
    functionName: DSA_meth_set1_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - DSAerr
    linkageType: ''
    returnType: int
    signature: DSA_meth_set1_name(DSA_METHOD *dsam, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: DSA_meth_get_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: DSA_meth_get_flags(DSA_METHOD *dsam)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dsam
    - flags
    argTypes:
    - DSA_METHOD*
    - int
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: DSA_meth_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: DSA_meth_set_flags(DSA_METHOD *dsam, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: DSA_meth_get0_app_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*DSA_meth_get0_app_data(const DSA_METHOD *dsam)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dsam
    - app_data
    argTypes:
    - DSA_METHOD*
    - void*
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: DSA_meth_set0_app_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: DSA_meth_set0_app_data(DSA_METHOD *dsam, void *app_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: "*(*DSA_meth_get_sign(const DSA_METHOD *dsam))\n        (const unsigned
      char *, int, DSA *)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DSA_SIG
    signature: "*(*DSA_meth_get_sign(const DSA_METHOD *dsam))\n        (const unsigned
      char *, int, DSA *)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dsam
    - (*sign) (const unsigned char *, int, DSA *)
    argTypes:
    - DSA_METHOD*
    - DSA_SIG*
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: DSA_meth_set_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "DSA_meth_set_sign(DSA_METHOD *dsam,\n                       DSA_SIG
      *(*sign) (const unsigned char *, int, DSA *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: "(*DSA_meth_get_sign_setup(const DSA_METHOD *dsam))\n        (DSA
      *, BN_CTX *, BIGNUM **, BIGNUM **)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*DSA_meth_get_sign_setup(const DSA_METHOD *dsam))\n        (DSA *,
      BN_CTX *, BIGNUM **, BIGNUM **)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: DSA_meth_set_sign_setup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "DSA_meth_set_sign_setup(DSA_METHOD *dsam,\n        int (*sign_setup)
      (DSA *, BN_CTX *, BIGNUM **, BIGNUM **))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: "(*DSA_meth_get_verify(const DSA_METHOD *dsam))\n        (const
      unsigned char *, int , DSA_SIG *, DSA *)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*DSA_meth_get_verify(const DSA_METHOD *dsam))\n        (const unsigned
      char *, int , DSA_SIG *, DSA *)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: DSA_meth_set_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "DSA_meth_set_verify(DSA_METHOD *dsam,\n    int (*verify) (const unsigned
      char *, int, DSA_SIG *, DSA *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: "(*DSA_meth_get_mod_exp(const DSA_METHOD *dsam))\n        (DSA *,
      BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *,\n         const BIGNUM
      *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*DSA_meth_get_mod_exp(const DSA_METHOD *dsam))\n        (DSA *, BIGNUM
      *, const BIGNUM *, const BIGNUM *, const BIGNUM *,\n         const BIGNUM *,
      const BIGNUM *, BN_CTX *, BN_MONT_CTX *)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 161
    functionName: DSA_meth_set_mod_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "DSA_meth_set_mod_exp(DSA_METHOD *dsam,\n    int (*mod_exp) (DSA *,
      BIGNUM *, const BIGNUM *, const BIGNUM *,\n                    const BIGNUM
      *, const BIGNUM *, const BIGNUM *, BN_CTX *,\n                    BN_MONT_CTX
      *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: "(*DSA_meth_get_bn_mod_exp(const DSA_METHOD *dsam))\n    (DSA *,
      BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *,\n     BN_MONT_CTX
      *)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*DSA_meth_get_bn_mod_exp(const DSA_METHOD *dsam))\n    (DSA *, BIGNUM
      *, const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *,\n     BN_MONT_CTX
      *)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: DSA_meth_set_bn_mod_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "DSA_meth_set_bn_mod_exp(DSA_METHOD *dsam,\n    int (*bn_mod_exp) (DSA
      *, BIGNUM *, const BIGNUM *, const BIGNUM *,\n                       const BIGNUM
      *, BN_CTX *, BN_MONT_CTX *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: (*DSA_meth_get_init(const DSA_METHOD *dsam))(DSA *)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*DSA_meth_get_init(const DSA_METHOD *dsam))(DSA *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: DSA_meth_set_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: DSA_meth_set_init(DSA_METHOD *dsam, int (*init)(DSA *))
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: (*DSA_meth_get_finish(const DSA_METHOD *dsam)) (DSA *)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*DSA_meth_get_finish(const DSA_METHOD *dsam)) (DSA *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: DSA_meth_set_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: DSA_meth_set_finish(DSA_METHOD *dsam, int (*finish) (DSA *))
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 205
    functionName: "(*DSA_meth_get_paramgen(const DSA_METHOD *dsam))\n        (DSA
      *, int, const unsigned char *, int, int *, unsigned long *,\n         BN_GENCB
      *)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*DSA_meth_get_paramgen(const DSA_METHOD *dsam))\n        (DSA *,
      int, const unsigned char *, int, int *, unsigned long *,\n         BN_GENCB
      *)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 213
    functionName: DSA_meth_set_paramgen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "DSA_meth_set_paramgen(DSA_METHOD *dsam,\n        int (*paramgen) (DSA
      *, int, const unsigned char *, int, int *,\n                         unsigned
      long *, BN_GENCB *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: (*DSA_meth_get_keygen(const DSA_METHOD *dsam)) (DSA *)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*DSA_meth_get_keygen(const DSA_METHOD *dsam)) (DSA *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: DSA_meth_set_keygen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: DSA_meth_set_keygen(DSA_METHOD *dsam, int (*keygen) (DSA *))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA*::meth::dsa_paramgen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:32,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:35,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:35,1
    - Dst: dsa_builtin_paramgen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - ret
    - bits
    - seed_in
    - seed_len
    - counter_ret
    - h_ret
    - cb
    argTypes:
    - DSA*
    - int
    - unsigned char*
    - int
    - int*
    - unsigned long*
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 42
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 42
    functionName: DSA_generate_parameters_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c
    functionUses: 2
    functionsReached:
    - DSA*::meth::dsa_paramgen
    - dsa_builtin_paramgen
    - EVP_sha1
    - EVP_sha256
    linkageType: ''
    returnType: int
    signature: "DSA_generate_parameters_ex(DSA *ret, int bits,\n                               const
      unsigned char *seed_in, int seed_len,\n                               int *counter_ret,
      unsigned long *h_ret,\n                               BN_GENCB *cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:69,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:78,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:85,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:88,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:91,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:94,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:96,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:97,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:98,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:99,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:100,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:101,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:102,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:103,1
    - Dst: BN_lshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:108,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:108,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:116,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:120,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:126,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:127,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:136,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:138,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:146,1
    - Dst: BN_is_prime_fasttest_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:150,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:161,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:163,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:173,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:177,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:189,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:193,1
    - Dst: BN_lshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:195,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:197,1
    - Dst: BN_mask_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:202,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:204,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:206,1
    - Dst: BN_lshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:210,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:212,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:214,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:214,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:216,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:220,1
    - Dst: BN_is_prime_fasttest_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:222,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:239,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:244,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:244,1
    - Dst: BN_div
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:246,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:249,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:251,1
    - Dst: BN_mod_exp_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:256,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:258,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:260,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:260,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:265,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:271,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:272,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:273,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:274,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:275,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:276,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:286,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:289,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:290,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:291,1
    CyclomaticComplexity: 106
    EdgeCount: 106
    ICount: 203
    argCount: 10
    argNames:
    - ret
    - bits
    - qbits
    - evpmd
    - seed_in
    - seed_len
    - seed_out
    - counter_ret
    - h_ret
    - cb
    argTypes:
    - DSA*
    - size_t
    - size_t
    - EVP_MD*
    - unsigned char*
    - size_t
    - unsigned char*
    - int*
    - unsigned long*
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 293
      start: 44
    functionDepth: 6
    functionLinenumber: 44
    functionLinenumberEnd: 293
    functionName: dsa_builtin_paramgen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c
    functionUses: 2
    functionsReached:
    - RAND_bytes
    - BN_MONT_CTX_new
    - BN_bin2bn
    - BN_sub
    - BN_mask_bits
    - BN_zero
    - BN_CTX_get
    - BN_MONT_CTX_set
    - BN_mod_exp_mont
    - BN_value_one
    - DSAerr
    - EVP_sha1
    - BN_free
    - BN_dup
    - BN_cmp
    - BN_lshift
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_new
    - BN_is_one
    - BN_is_prime_fasttest_ex
    - BN_GENCB_call
    - BN_mod
    - BN_MONT_CTX_free
    - BN_copy
    - BN_lshift1
    - BN_div
    - EVP_Digest
    - BN_add
    - BN_CTX_free
    - memcpy
    - BN_set_word
    linkageType: ''
    returnType: int
    signature: "dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits,\n                         const
      EVP_MD *evpmd, const unsigned char *seed_in,\n                         size_t
      seed_len, unsigned char *seed_out,\n                         int *counter_ret,
      unsigned long *h_ret, BN_GENCB *cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:317,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:325,1
    - Dst: EVP_sha224
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:327,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:329,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:332,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:338,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:343,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:349,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:353,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:356,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:359,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:360,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:361,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:362,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:363,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:364,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:365,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:374,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:377,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:378,1
    - Dst: BN_lshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:381,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:381,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:387,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:391,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:395,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:404,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:409,1
    - Dst: BN_is_prime_fasttest_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:413,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:422,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:431,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:433,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:435,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:445,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:449,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:461,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:465,1
    - Dst: BN_lshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:467,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:469,1
    - Dst: BN_mask_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:474,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:476,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:478,1
    - Dst: BN_lshift1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:482,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:484,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:486,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:486,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:488,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:492,1
    - Dst: BN_is_prime_fasttest_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:494,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:511,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:516,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:523,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:523,1
    - Dst: BN_div
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:525,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:529,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:533,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:542,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:544,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:546,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:548,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:550,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:552,1
    - Dst: BN_mod_exp_mont
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:556,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:558,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:560,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:560,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:567,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:574,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:575,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:578,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:579,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:581,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:582,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:592,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:594,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:596,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:597,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:598,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c:599,1
    CyclomaticComplexity: 137
    EdgeCount: 137
    ICount: 261
    argCount: 11
    argNames:
    - ret
    - L
    - N
    - evpmd
    - seed_in
    - seed_len
    - idx
    - seed_out
    - counter_ret
    - h_ret
    - cb
    argTypes:
    - DSA*
    - size_t
    - size_t
    - EVP_MD*
    - unsigned char*
    - size_t
    - int
    - unsigned char*
    - int*
    - unsigned long*
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 601
      start: 300
    functionDepth: 6
    functionLinenumber: 300
    functionLinenumberEnd: 601
    functionName: dsa_builtin_paramgen2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c
    functionUses: 1
    functionsReached:
    - RAND_bytes
    - BN_MONT_CTX_new
    - BN_bin2bn
    - BN_sub
    - BN_mask_bits
    - EVP_DigestUpdate
    - EVP_MD_CTX_free
    - BN_zero
    - BN_CTX_get
    - EVP_sha224
    - BN_MONT_CTX_set
    - EVP_DigestInit_ex
    - BN_mod_exp_mont
    - BN_value_one
    - DSAerr
    - EVP_DigestFinal_ex
    - EVP_sha1
    - BN_free
    - BN_dup
    - EVP_MD_size
    - BN_cmp
    - BN_lshift
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_new
    - BN_is_one
    - BN_is_prime_fasttest_ex
    - BN_GENCB_call
    - BN_mod
    - BN_MONT_CTX_free
    - EVP_sha256
    - memset
    - BN_copy
    - OPENSSL_free
    - BN_lshift1
    - BN_div
    - EVP_Digest
    - BN_add
    - EVP_MD_CTX_new
    - BN_CTX_free
    - memcpy
    - BN_set_word
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "dsa_builtin_paramgen2(DSA *ret, size_t L, size_t N,\n                          const
      EVP_MD *evpmd, const unsigned char *seed_in,\n                          size_t
      seed_len, int idx, unsigned char *seed_out,\n                          int *counter_ret,
      unsigned long *h_ret,\n                          BN_GENCB *cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA*::meth::dsa_keygen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_key.c:21,1
    - Dst: dsa_builtin_keygen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_key.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: DSA_generate_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_key.c
    functionUses: 0
    functionsReached:
    - dsa_builtin_keygen
    - DSA*::meth::dsa_keygen
    linkageType: ''
    returnType: int
    signature: DSA_generate_key(DSA *dsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_key.c:31,1
    - Dst: BN_secure_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_key.c:35,1
    - Dst: BN_rand_range
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_key.c:41,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_key.c:43,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_key.c:46,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_key.c:52,1
    - Dst: BN_with_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_key.c:56,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_key.c:58,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_key.c:59,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_key.c:63,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_key.c:72,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_key.c:74,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_key.c:75,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    constantsTouched: []
    func_position:
      end: 77
      start: 25
    functionDepth: 5
    functionLinenumber: 25
    functionLinenumberEnd: 77
    functionName: dsa_builtin_keygen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_key.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_free
    - BN_with_flags
    - BN_is_zero
    - BN_mod_exp
    - BN_rand_range
    - BN_CTX_free
    - BN_CTX_new
    - BN_secure_new
    linkageType: ''
    returnType: int
    signature: dsa_builtin_keygen(DSA *dsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 48
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 48
    functionName: pkey_dsa_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: pkey_dsa_init(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pkey_dsa_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 62
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 62
    functionName: pkey_dsa_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - pkey_dsa_init
    linkageType: ''
    returnType: int
    signature: pkey_dsa_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: pkey_dsa_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: pkey_dsa_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:80,1
    - Dst: DSA_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 93
      start: 70
    functionDepth: 7
    functionLinenumber: 70
    functionLinenumberEnd: 93
    functionName: pkey_dsa_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_size
    - DSA_sign
    linkageType: ''
    returnType: int
    signature: "pkey_dsa_sign(EVP_PKEY_CTX *ctx, unsigned char *sig,\n                         size_t
      *siglen, const unsigned char *tbs,\n                         size_t tbslen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:104,1
    - Dst: DSA_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 114
      start: 95
    functionDepth: 9
    functionLinenumber: 95
    functionLinenumberEnd: 114
    functionName: pkey_dsa_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_size
    - DSA_verify
    linkageType: ''
    returnType: int
    signature: "pkey_dsa_verify(EVP_PKEY_CTX *ctx,\n                           const
      unsigned char *sig, size_t siglen,\n                           const unsigned
      char *tbs, size_t tbslen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:133,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:134,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:135,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:136,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:143,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:144,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:145,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:146,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:147,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:148,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:149,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:150,1
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:166,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 173
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 173
    functionName: pkey_dsa_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_type
    - DSAerr
    linkageType: ''
    returnType: int
    signature: pkey_dsa_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:178,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:180,1
    - Dst: EVP_PKEY_CTX_set_dsa_paramgen_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:181,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:183,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:185,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:189,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:190,1
    - Dst: EVP_get_digestbyname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 195
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 195
    functionName: pkey_dsa_ctrl_str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_dsa_paramgen_bits
    - strcmp
    - atoi
    - EVP_PKEY_CTX_ctrl
    - EVP_get_digestbyname
    linkageType: ''
    returnType: int
    signature: "pkey_dsa_ctrl_str(EVP_PKEY_CTX *ctx,\n                             const
      char *type, const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:204,1
    - Dst: evp_pkey_set_cb_translate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:207,1
    - Dst: DSA_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:210,1
    - Dst: BN_GENCB_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:212,1
    - Dst: dsa_builtin_paramgen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:215,1
    - Dst: BN_GENCB_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:217,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:219,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 223
      start: 197
    functionDepth: 7
    functionLinenumber: 197
    functionLinenumberEnd: 223
    functionName: pkey_dsa_paramgen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - DSA_new
    - BN_GENCB_free
    - evp_pkey_set_cb_translate
    - BN_GENCB_new
    - dsa_builtin_paramgen
    - EVP_PKEY_assign_DSA
    - DSA_free
    linkageType: ''
    returnType: int
    signature: pkey_dsa_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:229,1
    - Dst: DSA_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:232,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:235,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:237,1
    - Dst: DSA_generate_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 240
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 240
    functionName: pkey_dsa_keygen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - DSA_new
    - DSAerr
    - EVP_PKEY_assign_DSA
    - EVP_PKEY_copy_parameters
    - DSA_generate_key
    linkageType: ''
    returnType: int
    signature: pkey_dsa_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_cfb.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - CAMELLIA_KEY*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: Camellia_cfb128_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_cfb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_encrypt
    linkageType: ''
    returnType: void
    signature: "Camellia_cfb128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                            size_t length, const CAMELLIA_KEY *key,\n                             unsigned
      char *ivec, int *num, const int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_cfb.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - CAMELLIA_KEY*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: Camellia_cfb1_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_cfb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_1_encrypt
    linkageType: ''
    returnType: void
    signature: "Camellia_cfb1_encrypt(const unsigned char *in, unsigned char *out,\n
      \                          size_t length, const CAMELLIA_KEY *key,\n                           unsigned
      char *ivec, int *num, const int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_8_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_cfb.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - CAMELLIA_KEY*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: Camellia_cfb8_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_cfb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_8_encrypt
    linkageType: ''
    returnType: void
    signature: "Camellia_cfb8_encrypt(const unsigned char *in, unsigned char *out,\n
      \                          size_t length, const CAMELLIA_KEY *key,\n                           unsigned
      char *ivec, int *num, const int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:324,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:325,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:326,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:327,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:330,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:331,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:336,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:337,1
    - Dst: Camellia_Feistel
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:343,1
    - Dst: Camellia_Feistel
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:344,1
    - Dst: Camellia_Feistel
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:347,1
    - Dst: Camellia_Feistel
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:348,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:353,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:355,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:357,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:359,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:361,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:363,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:367,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:369,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:371,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:373,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:375,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:377,1
    - Dst: Camellia_Feistel
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:384,1
    - Dst: Camellia_Feistel
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:385,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:388,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:390,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:392,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:396,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:398,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:400,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:402,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:406,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:408,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:412,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:416,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:418,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:420,1
    - Dst: RotLeft128
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:422,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 90
    argCount: 3
    argNames:
    - keyBitLength
    - rawKey
    - k
    argTypes:
    - int
    - u8*
    - KEY_TABLE_TYPE
    constantsTouched: []
    func_position:
      end: 435
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 435
    functionName: Camellia_Ekeygen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c
    functionUses: 0
    functionsReached:
    - GETU32
    - Camellia_Feistel
    - RotLeft128
    linkageType: ''
    returnType: int
    signature: Camellia_Ekeygen(int keyBitLength, const u8 *rawKey, KEY_TABLE_TYPE
      k)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:444,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:445,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:446,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:447,1
    - Dst: Camellia_Feistel
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:452,1
    - Dst: Camellia_Feistel
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:453,1
    - Dst: Camellia_Feistel
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:454,1
    - Dst: Camellia_Feistel
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:455,1
    - Dst: Camellia_Feistel
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:456,1
    - Dst: Camellia_Feistel
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:457,1
    - Dst: LeftRotate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:468,1
    - Dst: LeftRotate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:471,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:477,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:478,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:479,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 4
    argNames:
    - grandRounds
    - plaintext
    - keyTable
    - ciphertext
    argTypes:
    - int
    - u8[]
    - KEY_TABLE_TYPE
    - u8[]
    constantsTouched: []
    func_position:
      end: 481
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 481
    functionName: Camellia_EncryptBlock_Rounds
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c
    functionUses: 0
    functionsReached:
    - GETU32
    - PUTU32
    - Camellia_Feistel
    - LeftRotate
    linkageType: ''
    returnType: void
    signature: "Camellia_EncryptBlock_Rounds(int grandRounds, const u8 plaintext[],\n
      \                                 const KEY_TABLE_TYPE keyTable,\n                                  u8
      ciphertext[])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Camellia_EncryptBlock_Rounds
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - keyBitLength
    - plaintext
    - keyTable
    - ciphertext
    argTypes:
    - int
    - u8[]
    - KEY_TABLE_TYPE
    - u8[]
    constantsTouched: []
    func_position:
      end: 488
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 488
    functionName: Camellia_EncryptBlock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c
    functionUses: 0
    functionsReached:
    - Camellia_EncryptBlock_Rounds
    linkageType: ''
    returnType: void
    signature: "Camellia_EncryptBlock(int keyBitLength, const u8 plaintext[],\n                           const
      KEY_TABLE_TYPE keyTable, u8 ciphertext[])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:497,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:498,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:499,1
    - Dst: GETU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:500,1
    - Dst: Camellia_Feistel
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:505,1
    - Dst: Camellia_Feistel
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:506,1
    - Dst: Camellia_Feistel
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:507,1
    - Dst: Camellia_Feistel
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:508,1
    - Dst: Camellia_Feistel
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:509,1
    - Dst: Camellia_Feistel
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:510,1
    - Dst: LeftRotate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:521,1
    - Dst: LeftRotate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:524,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:530,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:531,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:532,1
    - Dst: PUTU32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:533,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 4
    argNames:
    - grandRounds
    - ciphertext
    - keyTable
    - plaintext
    argTypes:
    - int
    - u8[]
    - KEY_TABLE_TYPE
    - u8[]
    constantsTouched: []
    func_position:
      end: 534
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 534
    functionName: Camellia_DecryptBlock_Rounds
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c
    functionUses: 0
    functionsReached:
    - GETU32
    - PUTU32
    - Camellia_Feistel
    - LeftRotate
    linkageType: ''
    returnType: void
    signature: "Camellia_DecryptBlock_Rounds(int grandRounds, const u8 ciphertext[],\n
      \                                 const KEY_TABLE_TYPE keyTable,\n                                  u8
      plaintext[])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Camellia_DecryptBlock_Rounds
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - keyBitLength
    - plaintext
    - keyTable
    - ciphertext
    argTypes:
    - int
    - u8[]
    - KEY_TABLE_TYPE
    - u8[]
    constantsTouched: []
    func_position:
      end: 541
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 541
    functionName: Camellia_DecryptBlock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c
    functionUses: 0
    functionsReached:
    - Camellia_DecryptBlock_Rounds
    linkageType: ''
    returnType: void
    signature: "Camellia_DecryptBlock(int keyBitLength, const u8 plaintext[],\n                           const
      KEY_TABLE_TYPE keyTable, u8 ciphertext[])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_ofb128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_ofb.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - CAMELLIA_KEY*
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: Camellia_ofb128_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_ofb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ofb128_encrypt
    linkageType: ''
    returnType: void
    signature: "Camellia_ofb128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                            size_t length, const CAMELLIA_KEY *key,\n                             unsigned
      char *ivec, int *num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_ctr128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_ctr.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - ecount_buf
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - CAMELLIA_KEY*
    - unsigned char[]
    - unsigned char[]
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 22
      start: 13
    functionDepth: 3
    functionLinenumber: 13
    functionLinenumberEnd: 22
    functionName: Camellia_ctr128_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_ctr.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ctr128_encrypt
    linkageType: ''
    returnType: void
    signature: "Camellia_ctr128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                            size_t length, const CAMELLIA_KEY *key,\n                             unsigned
      char ivec[CAMELLIA_BLOCK_SIZE],\n                             unsigned char
      ecount_buf[CAMELLIA_BLOCK_SIZE],\n                             unsigned int
      *num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Camellia_Ekeygen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_misc.c:21,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - CAMELLIA_KEY*
    constantsTouched: []
    func_position:
      end: 23
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 23
    functionName: Camellia_set_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_misc.c
    functionUses: 1
    functionsReached:
    - Camellia_Ekeygen
    linkageType: ''
    returnType: int
    signature: "Camellia_set_key(const unsigned char *userKey, const int bits,\n                     CAMELLIA_KEY
      *key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Camellia_EncryptBlock_Rounds
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_misc.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - CAMELLIA_KEY*
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: Camellia_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_misc.c
    functionUses: 0
    functionsReached:
    - Camellia_EncryptBlock_Rounds
    linkageType: ''
    returnType: void
    signature: "Camellia_encrypt(const unsigned char *in, unsigned char *out,\n                      const
      CAMELLIA_KEY *key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Camellia_DecryptBlock_Rounds
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_misc.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - CAMELLIA_KEY*
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: Camellia_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_misc.c
    functionUses: 0
    functionsReached:
    - Camellia_DecryptBlock_Rounds
    linkageType: ''
    returnType: void
    signature: "Camellia_decrypt(const unsigned char *in, unsigned char *out,\n                      const
      CAMELLIA_KEY *key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Camellia_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_ecb.c:17,1
    - Dst: Camellia_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_ecb.c:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - in
    - out
    - key
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - CAMELLIA_KEY*
    - int
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: Camellia_ecb_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_ecb.c
    functionUses: 0
    functionsReached:
    - Camellia_decrypt
    - Camellia_encrypt
    linkageType: ''
    returnType: void
    signature: "Camellia_ecb_encrypt(const unsigned char *in, unsigned char *out,\n
      \                         const CAMELLIA_KEY *key, const int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_cbc.c:19,1
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_cbc.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - CAMELLIA_KEY*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 24
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 24
    functionName: Camellia_cbc_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_cbc.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cbc128_decrypt
    - CRYPTO_cbc128_encrypt
    linkageType: ''
    returnType: void
    signature: "Camellia_cbc_encrypt(const unsigned char *in, unsigned char *out,\n
      \                         size_t len, const CAMELLIA_KEY *key,\n                          unsigned
      char *ivec, const int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - MD5_CTX*
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: MD5_Init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c
    functionUses: 5
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: MD5_Init(MD5_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:57,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:58,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:59,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:60,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:62,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:62,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:63,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:64,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:65,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:65,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:66,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:67,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:68,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:68,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:69,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:70,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:71,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:71,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:72,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:73,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:74,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:74,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:75,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:76,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:77,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:77,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:78,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:79,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:80,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:80,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:81,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:82,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:83,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:83,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:84,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:85,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:86,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:86,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:87,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:88,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:89,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:89,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:90,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:91,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:92,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:92,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:93,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:94,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:95,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:95,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:96,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:97,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:98,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:98,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:99,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:100,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:101,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:101,1
    - Dst: HOST_c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:102,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:103,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:104,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:104,1
    - Dst: R0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:105,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:105,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:107,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:107,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:108,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:108,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:109,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:109,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:110,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:110,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:111,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:111,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:112,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:112,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:113,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:113,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:114,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:114,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:115,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:115,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:116,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:116,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:117,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:117,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:118,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:118,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:119,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:119,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:120,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:120,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:121,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:121,1
    - Dst: R1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:122,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:122,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:124,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:124,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:125,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:125,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:126,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:126,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:127,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:127,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:128,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:128,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:129,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:129,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:130,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:130,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:131,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:131,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:132,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:132,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:133,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:133,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:134,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:134,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:135,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:135,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:136,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:136,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:137,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:137,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:138,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:138,1
    - Dst: R2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:139,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:139,1
    - Dst: R3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:141,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:141,1
    - Dst: R3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:142,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:142,1
    - Dst: R3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:143,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:143,1
    - Dst: R3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:144,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:144,1
    - Dst: R3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:145,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:145,1
    - Dst: R3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:146,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:146,1
    - Dst: R3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:147,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:147,1
    - Dst: R3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:148,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:148,1
    - Dst: R3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:149,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:149,1
    - Dst: R3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:150,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:150,1
    - Dst: R3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:151,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:151,1
    - Dst: R3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:152,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:152,1
    - Dst: R3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:153,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:153,1
    - Dst: R3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:154,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:154,1
    - Dst: R3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:155,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:155,1
    - Dst: R3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:156,1
    - Dst: X
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 107
    argCount: 3
    argNames:
    - c
    - data_
    - num
    argTypes:
    - MD5_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 163
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 163
    functionName: md5_block_data_order
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c
    functionUses: 0
    functionsReached:
    - HOST_c2l
    - X
    - R3
    - R0
    - R2
    - R1
    linkageType: ''
    returnType: void
    signature: md5_block_data_order(MD5_CTX *c, const void *data_, size_t num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_one.c:26,1
    - Dst: MD5_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_one.c:29,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_one.c:37,1
    - Dst: MD5_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_one.c:38,1
    - Dst: MD5_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_one.c:44,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_one.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 47
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 47
    functionName: MD5
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_one.c
    functionUses: 0
    functionsReached:
    - MD5_Update
    - MD5_Init
    - MD5_Final
    - OPENSSL_cleanse
    - ebcdic2ascii
    linkageType: ''
    returnType: unsigned char
    signature: '*MD5(const unsigned char *d, size_t n, unsigned char *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: BIO_s_log
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_s_log(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xopenlog
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: slg_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c
    functionUses: 0
    functionsReached:
    - xopenlog
    linkageType: ''
    returnType: int
    signature: slg_new(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xcloselog
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: slg_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c
    functionUses: 0
    functionsReached:
    - xcloselog
    linkageType: ''
    returnType: int
    signature: slg_free(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:195,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:198,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:202,1
    - Dst: xsyslog
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:207,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 211
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 211
    functionName: slg_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c
    functionUses: 0
    functionsReached:
    - xsyslog
    - strncmp
    - strncpy
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: slg_write(BIO *b, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xcloselog
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:217,1
    - Dst: xopenlog
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 224
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 224
    functionName: slg_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c
    functionUses: 0
    functionsReached:
    - xcloselog
    - xopenlog
    linkageType: ''
    returnType: long
    signature: slg_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:230,1
    - Dst: slg_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 233
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 233
    functionName: slg_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c
    functionUses: 0
    functionsReached:
    - strlen
    - slg_write
    linkageType: ''
    returnType: int
    signature: slg_puts(BIO *bp, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_winnt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:239,1
    - Dst: RegisterEventSourceA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bp
    - name
    - level
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 243
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 243
    functionName: xopenlog
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c
    functionUses: 2
    functionsReached:
    - check_winnt
    - RegisterEventSourceA
    linkageType: ''
    returnType: void
    signature: xopenlog(BIO *bp, char *name, int level)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:278,1
    - Dst: GetCurrentProcessId
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:278,1
    - Dst: ReportEventA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:282,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - bp
    - priority
    - string
    argTypes:
    - BIO*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 283
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 283
    functionName: xsyslog
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c
    functionUses: 1
    functionsReached:
    - ReportEventA
    - GetCurrentProcessId
    - sprintf
    linkageType: ''
    returnType: void
    signature: xsyslog(BIO *bp, int priority, const char *string)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeregisterEventSource
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bp
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 290
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 290
    functionName: xcloselog
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c
    functionUses: 2
    functionsReached:
    - DeregisterEventSource
    linkageType: ''
    returnType: void
    signature: xcloselog(BIO *bp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bp
    - name
    - level
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: xopenlog
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: xopenlog(BIO *bp, char *name, int level)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: $DESCRIPTOR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:325,1
    - Dst: lib$sys_fao
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:360,1
    - Dst: OPCDEF_MALLOC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:363,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:365,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:367,1
    - Dst: sys$sndopr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:374,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:376,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 3
    argNames:
    - bp
    - priority
    - string
    argTypes:
    - BIO*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 377
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 377
    functionName: xsyslog
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c
    functionUses: 1
    functionsReached:
    - OPCDEF_MALLOC
    - sys$sndopr
    - lib$sys_fao
    - memcpy
    - $DESCRIPTOR
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: xsyslog(BIO *bp, int priority, const char *string)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bp
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 381
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 381
    functionName: xcloselog
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: xcloselog(BIO *bp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: openlog
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:388,1
    - Dst: openlog
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bp
    - name
    - level
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 392
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 392
    functionName: xopenlog
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c
    functionUses: 2
    functionsReached:
    - openlog
    linkageType: ''
    returnType: void
    signature: xopenlog(BIO *bp, char *name, int level)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: syslog
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bp
    - priority
    - string
    argTypes:
    - BIO*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 397
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 397
    functionName: xsyslog
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c
    functionUses: 1
    functionsReached:
    - syslog
    linkageType: ''
    returnType: void
    signature: xsyslog(BIO *bp, int priority, const char *string)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: closelog
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bp
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 402
    functionName: xcloselog
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c
    functionUses: 2
    functionsReached:
    - closelog
    linkageType: ''
    returnType: void
    signature: xcloselog(BIO *bp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - close_flag
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: BIO_new_fd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO
    signature: '*BIO_new_fd(int fd, int close_flag)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: BIO_fd_non_fatal_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BIO_fd_non_fatal_error(int err)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: BIO_fd_should_retry
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BIO_fd_should_retry(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: BIO_s_fd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_s_fd(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: BIO_s_fd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_s_fd(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c:80,1
    - Dst: BIO_s_fd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c:80,1
    - Dst: BIO_set_fd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - close_flag
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: BIO_new_fd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - BIO_s_fd
    - BIO_set_fd
    linkageType: ''
    returnType: BIO
    signature: '*BIO_new_fd(int fd, int close_flag)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: fd_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: fd_new(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UP_close
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 108
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 108
    functionName: fd_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached:
    - UP_close
    linkageType: ''
    returnType: int
    signature: fd_free(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear_sys_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c:115,1
    - Dst: UP_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c:116,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c:117,1
    - Dst: BIO_fd_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c:119,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 124
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 124
    functionName: fd_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached:
    - clear_sys_error
    - UP_read
    - BIO_clear_retry_flags
    - BIO_fd_should_retry
    - BIO_set_retry_read
    linkageType: ''
    returnType: int
    signature: fd_read(BIO *b, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear_sys_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c:129,1
    - Dst: UP_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c:130,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c:131,1
    - Dst: BIO_fd_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c:133,1
    - Dst: BIO_set_retry_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 137
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 137
    functionName: fd_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached:
    - clear_sys_error
    - UP_write
    - BIO_clear_retry_flags
    - BIO_set_retry_write
    - BIO_fd_should_retry
    linkageType: ''
    returnType: int
    signature: fd_write(BIO *b, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UP_lseek
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c:148,1
    - Dst: UP_lseek
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c:152,1
    - Dst: fd_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c:155,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 188
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 188
    functionName: fd_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached:
    - UP_lseek
    - fd_free
    linkageType: ''
    returnType: long
    signature: fd_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c:194,1
    - Dst: fd_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 197
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 197
    functionName: fd_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached:
    - strlen
    - fd_write
    linkageType: ''
    returnType: int
    signature: fd_puts(BIO *bp, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fd_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c:205,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c:211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 213
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 213
    functionName: fd_gets
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached:
    - fd_read
    - strlen
    linkageType: ''
    returnType: int
    signature: fd_gets(BIO *bp, char *buf, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_last_sys_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c:220,1
    - Dst: BIO_fd_non_fatal_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 225
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 225
    functionName: BIO_fd_should_retry
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c
    functionUses: 2
    functionsReached:
    - get_last_sys_error
    - BIO_fd_non_fatal_error
    linkageType: ''
    returnType: int
    signature: BIO_fd_should_retry(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 272
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 272
    functionName: BIO_fd_non_fatal_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BIO_fd_non_fatal_error(int err)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: BIO_s_null
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_null.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_s_null(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: null_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: null_new(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: null_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: null_free(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: null_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: null_read(BIO *b, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: null_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: null_write(BIO *b, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 88
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 88
    functionName: null_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: null_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: null_gets
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: null_gets(BIO *bp, char *buf, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_null.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: null_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_null.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: null_puts(BIO *bp, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: BIO_s_socket
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_s_socket(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c:60,1
    - Dst: BIO_s_socket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c:60,1
    - Dst: BIO_set_fd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - close_flag
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: BIO_new_socket
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - BIO_set_fd
    - BIO_s_socket
    linkageType: ''
    returnType: BIO
    signature: '*BIO_new_socket(int fd, int close_flag)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: sock_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: sock_new(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 88
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 88
    functionName: sock_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached:
    - BIO_closesocket
    linkageType: ''
    returnType: int
    signature: sock_free(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c:95,1
    - Dst: readsocket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c:96,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c:97,1
    - Dst: BIO_sock_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c:99,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 104
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 104
    functionName: sock_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached:
    - readsocket
    - BIO_clear_retry_flags
    - BIO_sock_should_retry
    - clear_socket_error
    - BIO_set_retry_read
    linkageType: ''
    returnType: int
    signature: sock_read(BIO *b, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c:110,1
    - Dst: writesocket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c:111,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c:112,1
    - Dst: BIO_sock_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c:114,1
    - Dst: BIO_set_retry_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 118
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 118
    functionName: sock_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - BIO_sock_should_retry
    - clear_socket_error
    - BIO_set_retry_write
    - writesocket
    linkageType: ''
    returnType: int
    signature: sock_write(BIO *b, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c:127,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 156
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 156
    functionName: sock_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached:
    - sock_free
    linkageType: ''
    returnType: long
    signature: sock_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c:162,1
    - Dst: sock_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: sock_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached:
    - strlen
    - sock_write
    linkageType: ''
    returnType: int
    signature: sock_puts(BIO *bp, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c:172,1
    - Dst: BIO_sock_non_fatal_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 177
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 177
    functionName: BIO_sock_should_retry
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c
    functionUses: 2
    functionsReached:
    - BIO_sock_non_fatal_error
    - get_last_socket_error
    linkageType: ''
    returnType: int
    signature: BIO_sock_should_retry(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 229
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 229
    functionName: BIO_sock_non_fatal_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BIO_sock_non_fatal_error(int err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:83,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:84,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:105,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:116,1
    - Dst: BIO_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:119,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:125,1
    - Dst: BIO_socket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:133,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:133,1
    - Dst: BIO_ADDRINFO_socktype
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:134,1
    - Dst: BIO_ADDRINFO_protocol
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:135,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:137,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:137,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:138,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:141,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:149,1
    - Dst: BIO_connect
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:150,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:150,1
    - Dst: BIO_sock_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:154,1
    - Dst: BIO_set_retry_special
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:155,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:158,1
    - Dst: BIO_ADDRINFO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:159,1
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:164,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:166,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:169,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:169,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:170,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:173,1
    - Dst: BIO_sock_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:182,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:184,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:185,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:186,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:189,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:205,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:213,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 121
    argCount: 2
    argNames:
    - b
    - c
    argTypes:
    - BIO*
    - BIO_CONNECT*
    constantsTouched: []
    func_position:
      end: 216
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 216
    functionName: conn_state
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - BIO_ADDRINFO_next
    - BIO_ADDRINFO_socktype
    - BIO_clear_retry_flags
    - BIO_sock_error
    - BIOerr
    - cb
    - BIO_lookup
    - ERR_add_error_data
    - get_last_socket_error
    - BIO_set_retry_special
    - BIO_connect
    - SYSerr
    - ERR_clear_error
    - BIO_sock_should_retry
    - BIO_ADDRINFO_family
    - BIO_ADDRINFO_protocol
    - BIO_socket
    - BIO_closesocket
    - BIO_ADDRINFO_address
    linkageType: ''
    returnType: int
    signature: conn_state(BIO *b, BIO_CONNECT *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 227
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 227
    functionName: BIO_CONNECT_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: BIO_CONNECT
    signature: '*BIO_CONNECT_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:234,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:235,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:236,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO_CONNECT*
    constantsTouched: []
    func_position:
      end: 238
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 238
    functionName: BIO_CONNECT_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BIO_ADDRINFO_free
    linkageType: ''
    returnType: void
    signature: BIO_CONNECT_free(BIO_CONNECT *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: BIO_s_connect
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_s_connect(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_CONNECT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 254
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 254
    functionName: conn_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c
    functionUses: 1
    functionsReached:
    - BIO_CONNECT_new
    linkageType: ''
    returnType: int
    signature: conn_new(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:264,1
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 268
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 268
    functionName: conn_close_socket
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - BIO_closesocket
    - shutdown
    linkageType: ''
    returnType: void
    signature: conn_close_socket(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: conn_close_socket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:279,1
    - Dst: BIO_CONNECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 286
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 286
    functionName: conn_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c
    functionUses: 3
    functionsReached:
    - conn_close_socket
    - BIO_CONNECT_free
    linkageType: ''
    returnType: int
    signature: conn_free(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: conn_state
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:295,1
    - Dst: clear_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:301,1
    - Dst: readsocket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:302,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:303,1
    - Dst: BIO_sock_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:305,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:306,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 310
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 310
    functionName: conn_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - readsocket
    - BIO_sock_should_retry
    - BIO_clear_retry_flags
    - clear_socket_error
    - conn_state
    - BIO_set_retry_read
    linkageType: ''
    returnType: int
    signature: conn_read(BIO *b, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: conn_state
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:319,1
    - Dst: clear_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:324,1
    - Dst: writesocket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:325,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:326,1
    - Dst: BIO_sock_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:328,1
    - Dst: BIO_set_retry_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 332
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 332
    functionName: conn_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - BIO_sock_should_retry
    - clear_socket_error
    - conn_state
    - BIO_set_retry_write
    - writesocket
    linkageType: ''
    returnType: int
    signature: conn_write(BIO *b, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: conn_close_socket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:348,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:349,1
    - Dst: conn_state
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:356,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:368,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:370,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:402,1
    - Dst: BIO_parse_hostserv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:404,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:409,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:411,1
    - Dst: BUF_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:412,1
    - Dst: BIO_ADDR_hostname_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:416,1
    - Dst: BIO_ADDR_service_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:417,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:418,1
    - Dst: BIO_set_conn_hostname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:463,1
    - Dst: BIO_set_conn_port
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:465,1
    - Dst: BIO_set_conn_ip_family
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:466,1
    - Dst: BIO_set_conn_mode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:467,1
    - Dst: BIO_set_info_callback
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:472,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:480,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 136
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 500
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 500
    functionName: conn_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - BIO_ADDR_service_string
    - BIO_set_conn_port
    - BIO_parse_hostserv
    - BIO_set_conn_hostname
    - BIOerr
    - BIO_set_conn_mode
    - conn_state
    - BIO_ADDRINFO_family
    - BIO_ADDRINFO_free
    - BUF_strdup
    - BIO_set_conn_ip_family
    - BIO_ADDR_hostname_string
    - OPENSSL_free
    - conn_close_socket
    - BIO_set_info_callback
    - BIO_ADDRINFO_address
    linkageType: ''
    returnType: long
    signature: conn_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - bio_info_cb*
    constantsTouched: []
    func_position:
      end: 521
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 521
    functionName: conn_callback_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: conn_callback_ctrl(BIO *b, int cmd, bio_info_cb *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:527,1
    - Dst: conn_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 530
      start: 523
    functionDepth: 4
    functionLinenumber: 523
    functionLinenumberEnd: 530
    functionName: conn_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - strlen
    - conn_write
    linkageType: ''
    returnType: int
    signature: conn_puts(BIO *bp, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:536,1
    - Dst: BIO_s_connect
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:536,1
    - Dst: BIO_set_conn_hostname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:539,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c:541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 543
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 543
    functionName: BIO_new_connect
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - BIO_s_connect
    - BIO_free
    - BIO_new
    - BIO_set_conn_hostname
    linkageType: ''
    returnType: BIO
    signature: '*BIO_new_connect(const char *str)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: BIO_f_buffer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_f_buffer(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:45,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:50,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:52,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:56,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:58,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 67
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 67
    functionName: buffer_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_malloc
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: buffer_new(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:76,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:77,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 83
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 83
    functionName: buffer_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: buffer_free(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:97,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:105,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:123,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:125,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:141,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:143,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 154
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 154
    functionName: buffer_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - BIO_copy_next_retry
    - memcpy
    - BIO_read
    linkageType: ''
    returnType: int
    signature: buffer_read(BIO *b, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:167,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:172,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:180,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:188,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:191,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:212,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:214,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 231
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 231
    functionName: buffer_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - BIO_copy_next_retry
    - memcpy
    - BIO_write
    linkageType: ''
    returnType: int
    signature: buffer_write(BIO *b, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:252,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:270,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:278,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:283,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:286,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:291,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:312,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:317,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:320,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:325,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:332,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:342,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:343,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:344,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:351,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:356,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:358,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:360,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:371,1
    - Dst: BIO_set_read_buffer_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:375,1
    - Dst: BIO_set_write_buffer_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:376,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:382,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:387,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 146
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 389
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 389
    functionName: buffer_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - BIOerr
    - BIO_clear_retry_flags
    - BIO_set_read_buffer_size
    - memcpy
    - BIO_copy_next_retry
    - BIO_set_write_buffer_size
    - OPENSSL_free
    - BIO_write
    - OPENSSL_malloc
    linkageType: ''
    returnType: long
    signature: buffer_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_callback_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:399,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - bio_info_cb*
    constantsTouched: []
    func_position:
      end: 403
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 403
    functionName: buffer_callback_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: buffer_callback_ctrl(BIO *b, int cmd, bio_info_cb *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:413,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:437,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:439,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 3
    argNames:
    - b
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 450
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 450
    functionName: buffer_gets
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - BIO_copy_next_retry
    - BIO_read
    linkageType: ''
    returnType: int
    signature: buffer_gets(BIO *b, char *buf, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: buffer_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:454,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 455
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 455
    functionName: buffer_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c
    functionUses: 0
    functionsReached:
    - buffer_write
    - strlen
    linkageType: ''
    returnType: int
    signature: buffer_puts(BIO *b, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: BIO_s_mem
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_s_mem(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: BIO_s_secmem
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_s_secmem(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:81,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:84,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:85,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 98
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 98
    functionName: BIO_new_mem_buf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c
    functionUses: 6
    functionsReached:
    - strlen
    - BIO_new
    - BIO_s_mem
    - BIOerr
    linkageType: ''
    returnType: BIO
    signature: '*BIO_new_mem_buf(const void *buf, int len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:102,1
    - Dst: BUF_MEM_new_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:106,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:107,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:110,1
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:111,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - bi
    - flags
    argTypes:
    - BIO*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 121
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 121
    functionName: mem_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - BUF_MEM_new_ex
    - BUF_MEM_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: mem_init(BIO *bi, unsigned long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: mem_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - mem_init
    linkageType: ''
    returnType: int
    signature: mem_new(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: secmem_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - mem_init
    linkageType: ''
    returnType: int
    signature: secmem_new(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem_buf_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: mem_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c
    functionUses: 18
    functionsReached:
    - mem_buf_free
    linkageType: ''
    returnType: int
    signature: mem_free(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:151,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:153,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:154,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - a
    - free_all
    argTypes:
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 161
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 161
    functionName: mem_buf_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - BUF_MEM_free
    linkageType: ''
    returnType: int
    signature: mem_buf_free(BIO *a, int free_all)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 178
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 178
    functionName: mem_buf_sync
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: int
    signature: mem_buf_sync(BIO *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:186,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:189,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:195,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 198
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 198
    functionName: mem_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - memcpy
    - BIO_set_retry_read
    linkageType: ''
    returnType: int
    signature: mem_read(BIO *b, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:207,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:211,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:214,1
    - Dst: mem_buf_sync
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:216,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:217,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:219,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 224
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 224
    functionName: mem_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - BIOerr
    - BIO_clear_retry_flags
    - memcpy
    - BUF_MEM_grow_clean
    - mem_buf_sync
    linkageType: ''
    returnType: int
    signature: mem_write(BIO *b, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:241,1
    - Dst: mem_buf_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:263,1
    - Dst: mem_buf_sync
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:271,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 68
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 301
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 301
    functionName: mem_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c
    functionUses: 9
    functionsReached:
    - mem_buf_free
    - mem_buf_sync
    - memset
    linkageType: ''
    returnType: long
    signature: mem_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:311,1
    - Dst: mem_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:332,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 337
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 337
    functionName: mem_gets
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - mem_read
    linkageType: ''
    returnType: int
    signature: mem_gets(BIO *bp, char *buf, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:343,1
    - Dst: mem_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 347
      start: 339
    functionDepth: 3
    functionLinenumber: 339
    functionLinenumberEnd: 347
    functionName: mem_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - strlen
    - mem_write
    linkageType: ''
    returnType: int
    signature: mem_puts(BIO *bp, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:18,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:21,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:29,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:32,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:34,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:35,1
    - Dst: BIO_METHOD*::create
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:39,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:40,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:41,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:42,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:49,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - method
    argTypes:
    - BIO_METHOD*
    constantsTouched: []
    func_position:
      end: 51
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 51
    functionName: BIO_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 36
    functionsReached:
    - CRYPTO_new_ex_data
    - BIOerr
    - CRYPTO_THREAD_lock_new
    - CRYPTO_free_ex_data
    - OPENSSL_zalloc
    - OPENSSL_free
    - CRYPTO_THREAD_lock_free
    - BIO_METHOD*::create
    linkageType: ''
    returnType: BIO
    signature: '*BIO_new(const BIO_METHOD *method)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:60,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:63,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:66,1
    - Dst: BIO*::callback
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:68,1
    - Dst: BIO*::method::destroy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:72,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:74,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:76,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:78,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 81
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 81
    functionName: BIO_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 44
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - CRYPTO_free_ex_data
    - BIO*::method::destroy
    - CRYPTO_atomic_add
    - OPENSSL_free
    - REF_ASSERT_ISNT
    - BIO*::callback
    - REF_PRINT_COUNT
    linkageType: ''
    returnType: int
    signature: BIO_free(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - ptr
    argTypes:
    - BIO*
    - void*
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: BIO_set_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BIO_set_data(BIO *a, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: BIO_get_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*BIO_get_data(BIO *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - init
    argTypes:
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: BIO_set_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BIO_set_init(BIO *a, int init)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: BIO_get_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BIO_get_init(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - shut
    argTypes:
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: BIO_set_shutdown
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BIO_set_shutdown(BIO *a, int shut)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: BIO_get_shutdown
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BIO_get_shutdown(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 4
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: BIO_vfree
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - BIO_free
    linkageType: ''
    returnType: void
    signature: BIO_vfree(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:122,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:125,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 128
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 128
    functionName: BIO_up_ref
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 1
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_atomic_add
    linkageType: ''
    returnType: int
    signature: BIO_up_ref(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - flags
    argTypes:
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: BIO_clear_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BIO_clear_flags(BIO *b, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - flags
    argTypes:
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: BIO_test_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BIO_test_flags(const BIO *b, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - flags
    argTypes:
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: BIO_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BIO_set_flags(BIO *b, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: "(*BIO_get_callback(const BIO *b)) (struct bio_st *, int, const
      char *,\n                                        int, long, long)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: "(*BIO_get_callback(const BIO *b)) (struct bio_st *, int, const char
      *,\n                                        int, long, long)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: BIO_set_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "BIO_set_callback(BIO *b,\n                      long (*cb) (struct
      bio_st *, int, const char *, int,\n                                  long, long))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - arg
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: BIO_set_callback_arg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BIO_set_callback_arg(BIO *b, char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: BIO_get_callback_arg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*BIO_get_callback_arg(const BIO *b)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: BIO_method_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*BIO_method_name(const BIO *b)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: BIO_method_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BIO_method_type(const BIO *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:183,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:189,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:193,1
    - Dst: BIO*::method::bread
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:197,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:203,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 205
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 205
    functionName: BIO_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 10
    functionsReached:
    - cb
    - BIO*::method::bread
    - BIOerr
    linkageType: ''
    returnType: int
    signature: BIO_read(BIO *b, void *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:217,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:222,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:226,1
    - Dst: BIO*::method::bwrite
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:230,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:236,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 238
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 238
    functionName: BIO_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 25
    functionsReached:
    - cb
    - BIO*::method::bwrite
    - BIOerr
    linkageType: ''
    returnType: int
    signature: BIO_write(BIO *b, const void *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:246,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:252,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:256,1
    - Dst: BIO*::method::bputs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:260,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:266,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - b
    - in
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 268
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 268
    functionName: BIO_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 10
    functionsReached:
    - cb
    - BIO*::method::bputs
    - BIOerr
    linkageType: ''
    returnType: int
    signature: BIO_puts(BIO *b, const char *in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:276,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:282,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:286,1
    - Dst: BIO*::method::bgets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:290,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:293,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 295
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 295
    functionName: BIO_gets
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 3
    functionsReached:
    - cb
    - BIOerr
    - BIO*::method::bgets
    linkageType: ''
    returnType: int
    signature: BIO_gets(BIO *b, char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:304,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - b
    - indent
    - max
    argTypes:
    - BIO*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 307
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 307
    functionName: BIO_indent
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 6
    functionsReached:
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: BIO_indent(BIO *b, int indent, int max)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - b
    - cmd
    - larg
    - iarg
    argTypes:
    - BIO*
    - int
    - long
    - int
    constantsTouched: []
    func_position:
      end: 315
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 315
    functionName: BIO_int_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: long
    signature: BIO_int_ctrl(BIO *b, int cmd, long larg, int iarg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - cmd
    - larg
    argTypes:
    - BIO*
    - int
    - long
    constantsTouched: []
    func_position:
      end: 325
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 325
    functionName: BIO_ptr_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: void
    signature: '*BIO_ptr_ctrl(BIO *b, int cmd, long larg)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:336,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:343,1
    - Dst: BIO*::method::ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:346,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:349,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - b
    - cmd
    - larg
    - parg
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 351
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 351
    functionName: BIO_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 7
    functionsReached:
    - cb
    - BIO*::method::ctrl
    - BIOerr
    linkageType: ''
    returnType: long
    signature: BIO_ctrl(BIO *b, int cmd, long larg, void *parg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:364,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:371,1
    - Dst: BIO*::method::callback_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:374,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:377,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - b
    - cmd
    argTypes:
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 379
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 379
    functionName: BIO_callback_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 5
    functionsReached:
    - cb
    - BIO*::method::callback_ctrl
    - BIOerr
    linkageType: ''
    returnType: long
    signature: "BIO_callback_ctrl(BIO *b, int cmd,\n                       void (*fp)
      (struct bio_st *, int, const char *, int,\n                                   long,
      long))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 389
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 389
    functionName: BIO_ctrl_pending
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: size_t
    signature: BIO_ctrl_pending(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 394
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 394
    functionName: BIO_ctrl_wpending
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: size_t
    signature: BIO_ctrl_wpending(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - b
    - bio
    argTypes:
    - BIO*
    - BIO*
    constantsTouched: []
    func_position:
      end: 412
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 412
    functionName: BIO_push
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 2
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: BIO
    signature: '*BIO_push(BIO *b, BIO *bio)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:423,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 433
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 433
    functionName: BIO_pop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 1
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: BIO
    signature: '*BIO_pop(BIO *b)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:441,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - bio
    - reason
    argTypes:
    - BIO*
    - int*
    constantsTouched: []
    func_position:
      end: 451
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 451
    functionName: BIO_get_retry_BIO
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - BIO_should_retry
    linkageType: ''
    returnType: BIO
    signature: '*BIO_get_retry_BIO(BIO *bio, int *reason)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 456
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 456
    functionName: BIO_get_retry_reason
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BIO_get_retry_reason(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - reason
    argTypes:
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 461
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 461
    functionName: BIO_set_retry_reason
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BIO_set_retry_reason(BIO *bio, int reason)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - bio
    - type
    argTypes:
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 483
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 483
    functionName: BIO_find_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BIO
    signature: '*BIO_find_type(BIO *bio, int type)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 490
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 490
    functionName: BIO_next
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: BIO
    signature: '*BIO_next(BIO *b)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - next
    argTypes:
    - BIO*
    - BIO*
    constantsTouched: []
    func_position:
      end: 495
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 495
    functionName: BIO_set_next
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: BIO_set_next(BIO *b, BIO *next)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:506,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 511
      start: 497
    functionDepth: 4
    functionLinenumber: 497
    functionLinenumberEnd: 511
    functionName: BIO_free_all
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 7
    functionsReached:
    - BIO_free
    linkageType: ''
    returnType: void
    signature: BIO_free_all(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:518,1
    - Dst: BIO_dup_state
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:529,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:530,1
    - Dst: CRYPTO_dup_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:535,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:537,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:545,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:551,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 1
    argNames:
    - in
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 554
      start: 513
    functionDepth: 5
    functionLinenumber: 513
    functionLinenumberEnd: 554
    functionName: BIO_dup_chain
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - BIO_push
    - BIO_free_all
    - BIO_free
    - CRYPTO_dup_ex_data
    - BIO_dup_state
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: '*BIO_dup_chain(BIO *in)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:558,1
    - Dst: BIO_get_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 560
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 560
    functionName: BIO_copy_next_retry
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 16
    functionsReached:
    - BIO_set_flags
    - BIO_get_retry_flags
    linkageType: ''
    returnType: void
    signature: BIO_copy_next_retry(BIO *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bio
    - idx
    - data
    argTypes:
    - BIO*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 565
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 565
    functionName: BIO_set_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: BIO_set_ex_data(BIO *bio, int idx, void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - idx
    argTypes:
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 570
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 570
    functionName: BIO_get_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: '*BIO_get_ex_data(BIO *bio, int idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 577
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 577
    functionName: BIO_number_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: BIO_number_read(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 584
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 584
    functionName: BIO_number_written
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: BIO_number_written(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_free_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 589
      start: 586
    functionDepth: 2
    functionLinenumber: 586
    functionLinenumberEnd: 589
    functionName: bio_free_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 1
    functionsReached:
    - CRYPTO_free_ex_data
    linkageType: ''
    returnType: void
    signature: bio_free_ex_data(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bio_sock_cleanup_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:594,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:595,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 600
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 600
    functionName: bio_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
    functionUses: 1
    functionsReached:
    - bio_sock_cleanup_int
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: bio_cleanup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: openssl_fopen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:67,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:70,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:74,1
    - Dst: get_last_sys_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:74,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:75,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:81,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:83,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:86,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:86,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:87,1
    - Dst: BIO_clear_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:91,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 95
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 95
    functionName: BIO_new_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c
    functionUses: 2
    functionsReached:
    - get_last_sys_error
    - openssl_fopen
    - BIOerr
    - BIO_clear_flags
    - strchr
    - fclose
    - BIO_s_file
    - ERR_add_error_data
    - BIO_set_fp
    - BIO_new
    - SYSerr
    linkageType: ''
    returnType: BIO
    signature: '*BIO_new_file(const char *filename, const char *mode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:101,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:101,1
    - Dst: BIO_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:105,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - stream
    - close_flag
    argTypes:
    - FILE*
    - int
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: BIO_new_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c
    functionUses: 5
    functionsReached:
    - BIO_s_file
    - BIO_new
    - BIO_set_flags
    - BIO_set_fp
    linkageType: ''
    returnType: BIO
    signature: '*BIO_new_fp(FILE *stream, int close_flag)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: BIO_s_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_s_file(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: file_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: file_new(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UP_fclose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:131,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 140
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 140
    functionName: file_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached:
    - fclose
    - UP_fclose
    linkageType: ''
    returnType: int
    signature: file_free(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UP_fread
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:148,1
    - Dst: fread
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:150,1
    - Dst: UP_ferror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:152,1
    - Dst: ferror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:153,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:154,1
    - Dst: get_last_sys_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:154,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:155,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 160
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 160
    functionName: file_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached:
    - get_last_sys_error
    - UP_fread
    - BIOerr
    - ferror
    - fread
    - UP_ferror
    - SYSerr
    linkageType: ''
    returnType: int
    signature: file_read(BIO *b, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UP_fwrite
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:168,1
    - Dst: fwrite
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 181
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 181
    functionName: file_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached:
    - fwrite
    - UP_fwrite
    linkageType: ''
    returnType: int
    signature: file_write(BIO *b, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UP_fseek
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:194,1
    - Dst: fseek
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:196,1
    - Dst: UP_feof
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:200,1
    - Dst: feof
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:202,1
    - Dst: UP_ftell
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:207,1
    - Dst: ftell
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:209,1
    - Dst: file_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:212,1
    - Dst: BIO_clear_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:223,1
    - Dst: BIO_clear_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:227,1
    - Dst: UP_fsetmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:232,1
    - Dst: _setmode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:239,1
    - Dst: _setmode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:241,1
    - Dst: _setmode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:246,1
    - Dst: isatty
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:250,1
    - Dst: _setmode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:251,1
    - Dst: _setmode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:253,1
    - Dst: setmode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:258,1
    - Dst: setmode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:260,1
    - Dst: file_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:265,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:269,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:271,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:273,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:275,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:277,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:279,1
    - Dst: strcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:285,1
    - Dst: strcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:287,1
    - Dst: openssl_fopen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:289,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:291,1
    - Dst: get_last_sys_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:291,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:292,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:293,1
    - Dst: BIO_clear_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:299,1
    - Dst: UP_fflush
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:317,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:319,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 108
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 334
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 334
    functionName: file_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached:
    - get_last_sys_error
    - strcat
    - UP_fseek
    - setmode
    - fseek
    - UP_feof
    - feof
    - OPENSSL_strlcpy
    - _setmode
    - isatty
    - ftell
    - UP_fflush
    - UP_ftell
    - BIOerr
    - BIO_clear_flags
    - file_free
    - UP_fsetmod
    - ERR_add_error_data
    - fflush
    - SYSerr
    - openssl_fopen
    linkageType: ''
    returnType: long
    signature: file_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UP_fgets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:342,1
    - Dst: fgets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:345,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:349,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 352
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 352
    functionName: file_gets
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached:
    - strlen
    - fgets
    - UP_fgets
    linkageType: ''
    returnType: int
    signature: file_gets(BIO *bp, char *buf, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:358,1
    - Dst: file_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 361
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 361
    functionName: file_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached:
    - strlen
    - file_write
    linkageType: ''
    returnType: int
    signature: file_puts(BIO *bp, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 368
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 368
    functionName: file_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: file_write(BIO *b, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 372
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 372
    functionName: file_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: file_read(BIO *b, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 376
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 376
    functionName: file_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: file_puts(BIO *bp, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 380
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 380
    functionName: file_gets
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: file_gets(BIO *bp, char *buf, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 384
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 384
    functionName: file_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: file_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 388
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 388
    functionName: file_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: file_new(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 392
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 392
    functionName: file_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: file_free(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 410
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 410
    functionName: BIO_s_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_s_file(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: BIO_new_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BIO
    signature: '*BIO_new_file(const char *filename, const char *mode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: BIO_s_datagram
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_s_datagram(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:146,1
    - Dst: BIO_s_datagram
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:146,1
    - Dst: BIO_set_fd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - close_flag
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 151
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 151
    functionName: BIO_new_dgram
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - BIO_set_fd
    - BIO_s_datagram
    linkageType: ''
    returnType: BIO
    signature: '*BIO_new_dgram(int fd, int close_flag)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: dgram_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: dgram_new(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dgram_clear
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:169,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 176
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 176
    functionName: dgram_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - dgram_clear
    linkageType: ''
    returnType: int
    signature: dgram_free(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 190
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 190
    functionName: dgram_clear
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 1
    functionsReached:
    - BIO_closesocket
    linkageType: ''
    returnType: int
    signature: dgram_clear(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:212,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:214,1
    - Dst: getsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:221,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:223,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:225,1
    - Dst: get_current_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:229,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:232,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:257,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:259,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:262,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:264,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 270
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 270
    functionName: dgram_adjust_rcv_timeout
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - perror
    - get_current_time
    - memcpy
    - getsockopt
    - setsockopt
    linkageType: ''
    returnType: void
    signature: dgram_adjust_rcv_timeout(BIO *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:282,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:284,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:287,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:290,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 295
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 295
    functionName: dgram_reset_rcv_timeout
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - setsockopt
    - perror
    linkageType: ''
    returnType: void
    signature: dgram_reset_rcv_timeout(BIO *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:307,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:308,1
    - Dst: dgram_adjust_rcv_timeout
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:309,1
    - Dst: recvfrom
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:312,1
    - Dst: BIO_ADDR_sockaddr_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:313,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:316,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:318,1
    - Dst: BIO_dgram_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:320,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:321,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:322,1
    - Dst: dgram_reset_rcv_timeout
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:326,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 329
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 329
    functionName: dgram_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - BIO_dgram_should_retry
    - BIO_clear_retry_flags
    - dgram_reset_rcv_timeout
    - clear_socket_error
    - BIO_ADDR_sockaddr_noconst
    - memset
    - dgram_adjust_rcv_timeout
    - get_last_socket_error
    - recvfrom
    - BIO_set_retry_read
    - BIO_ctrl
    linkageType: ''
    returnType: int
    signature: dgram_read(BIO *b, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:335,1
    - Dst: writesocket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:338,1
    - Dst: sendto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:343,1
    - Dst: BIO_ADDR_sockaddr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:344,1
    - Dst: sendto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:346,1
    - Dst: BIO_ADDR_sockaddr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:347,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:351,1
    - Dst: BIO_dgram_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:353,1
    - Dst: BIO_set_retry_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:354,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:355,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 359
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 359
    functionName: dgram_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - BIO_dgram_should_retry
    - BIO_clear_retry_flags
    - clear_socket_error
    - BIO_set_retry_write
    - sendto
    - get_last_socket_error
    - writesocket
    - BIO_ADDR_sockaddr
    linkageType: ''
    returnType: int
    signature: dgram_write(BIO *b, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ADDR_family
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:365,1
    - Dst: BIO_ADDR_rawaddress
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:377,1
    - Dst: IN6_IS_ADDR_V4MAPPED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:378,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - data
    argTypes:
    - bio_dgram_data*
    constantsTouched: []
    func_position:
      end: 398
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 398
    functionName: dgram_get_mtu_overhead
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - BIO_ADDR_rawaddress
    - IN6_IS_ADDR_V4MAPPED
    - BIO_ADDR_family
    linkageType: ''
    returnType: long
    signature: dgram_get_mtu_overhead(bio_dgram_data *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dgram_clear
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:425,1
    - Dst: BIO_ADDR_make
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:454,1
    - Dst: BIO_ADDR_sockaddr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:454,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:460,1
    - Dst: getsockname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:461,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:468,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:470,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:475,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:477,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:491,1
    - Dst: getsockname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:492,1
    - Dst: getsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:500,1
    - Dst: getsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:515,1
    - Dst: dgram_get_mtu_overhead
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:538,1
    - Dst: BIO_ADDR_family
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:539,1
    - Dst: BIO_ADDR_rawaddress
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:548,1
    - Dst: IN6_IS_ADDR_V4MAPPED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:549,1
    - Dst: BIO_ADDR_make
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:571,1
    - Dst: BIO_ADDR_sockaddr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:571,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:574,1
    - Dst: BIO_ADDR_sockaddr_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:578,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:583,1
    - Dst: BIO_ADDR_make
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:586,1
    - Dst: BIO_ADDR_sockaddr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:586,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:589,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:597,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:599,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:604,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:606,1
    - Dst: getsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:624,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:626,1
    - Dst: getsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:635,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:637,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:640,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:654,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:656,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:661,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:663,1
    - Dst: getsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:681,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:683,1
    - Dst: getsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:692,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:694,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:697,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:734,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:736,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:741,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:743,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:747,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:750,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:760,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:763,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:768,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:770,1
    - Dst: dgram_get_mtu_overhead
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:784,1
    CyclomaticComplexity: 92
    EdgeCount: 92
    ICount: 269
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 794
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 794
    functionName: dgram_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - BIO_ADDR_sockaddr_size
    - dgram_get_mtu_overhead
    - OPENSSL_assert
    - BIO_ADDR_make
    - getsockname
    - perror
    - memset
    - memcpy
    - getsockopt
    - dgram_clear
    - BIO_ADDR_rawaddress
    - IN6_IS_ADDR_V4MAPPED
    - setsockopt
    - BIO_ADDR_sockaddr
    - BIO_ADDR_family
    linkageType: ''
    returnType: long
    signature: dgram_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:800,1
    - Dst: dgram_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 803
      start: 796
    functionDepth: 2
    functionLinenumber: 796
    functionLinenumberEnd: 803
    functionName: dgram_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - strlen
    - dgram_write
    linkageType: ''
    returnType: int
    signature: dgram_puts(BIO *bp, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 809
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 809
    functionName: BIO_s_datagram_sctp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_s_datagram_sctp(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:828,1
    - Dst: BIO_s_datagram_sctp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:828,1
    - Dst: BIO_set_fd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:831,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:836,1
    - Dst: BIO_vfree
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:839,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:844,1
    - Dst: BIO_vfree
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:847,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:857,1
    - Dst: BIO_vfree
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:859,1
    - Dst: getsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:862,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:865,1
    - Dst: BIO_vfree
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:866,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:879,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:881,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:882,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:886,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:891,1
    - Dst: BIO_vfree
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:894,1
    - Dst: getsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:899,1
    - Dst: BIO_vfree
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:901,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:908,1
    - Dst: BIO_vfree
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:911,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:922,1
    - Dst: BIO_vfree
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:925,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 65
    argCount: 2
    argNames:
    - fd
    - close_flag
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 930
      start: 811
    functionDepth: 5
    functionLinenumber: 811
    functionLinenumberEnd: 930
    functionName: BIO_new_dgram_sctp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - BIO_set_fd
    - OPENSSL_assert
    - BIO_s_datagram_sctp
    - memset
    - OPENSSL_free
    - getsockopt
    - OPENSSL_zalloc
    - BIO_new
    - BIO_vfree
    - setsockopt
    linkageType: ''
    returnType: BIO
    signature: '*BIO_new_dgram_sctp(int fd, int close_flag)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_method_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 935
      start: 932
    functionDepth: 1
    functionLinenumber: 932
    functionLinenumberEnd: 935
    functionName: BIO_dgram_is_sctp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - BIO_method_type
    linkageType: ''
    returnType: int
    signature: BIO_dgram_is_sctp(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 953
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 953
    functionName: dgram_sctp_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: dgram_sctp_new(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dgram_clear
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:961,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:966,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:967,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 971
      start: 955
    functionDepth: 2
    functionLinenumber: 955
    functionLinenumberEnd: 971
    functionName: dgram_sctp_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - dgram_clear
    linkageType: ''
    returnType: int
    signature: dgram_sctp_free(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:985,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - b
    - snp
    argTypes:
    - BIO*
    - union sctp_notification*
    constantsTouched: []
    func_position:
      end: 988
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 988
    functionName: dgram_sctp_handle_auth_free_key_event
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: void
    signature: "dgram_sctp_handle_auth_free_key_event(BIO *b,\n                                           union
      sctp_notification *snp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1003,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1006,1
    - Dst: recvmsg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1016,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1025,1
    - Dst: CMSG_NXTHDR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1026,1
    - Dst: CMSG_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1033,1
    - Dst: CMSG_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1048,1
    - Dst: dgram_sctp_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1075,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1082,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1089,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1093,1
    - Dst: getsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1101,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1110,1
    - Dst: dgram_sctp_handle_auth_free_key_event
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1120,1
    - Dst: bio_dgram_sctp_data*::handle_notifications
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1124,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1127,1
    - Dst: getsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1149,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1151,1
    - Dst: getsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1159,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1162,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1167,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1173,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1174,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1178,1
    - Dst: BIO_dgram_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1180,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1181,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1182,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1194,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1196,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1199,1
    - Dst: getsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1200,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1213,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1216,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 137
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1224
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 1224
    functionName: dgram_sctp_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - BIO_set_retry_read
    - bio_dgram_sctp_data*::handle_notifications
    - BIO_clear_retry_flags
    - dgram_sctp_write
    - getsockopt
    - CMSG_DATA
    - BIOerr
    - memset
    - get_last_socket_error
    - CMSG_NXTHDR
    - recvmsg
    - OPENSSL_free
    - setsockopt
    - BIO_dgram_should_retry
    - OPENSSL_assert
    - clear_socket_error
    - dgram_sctp_handle_auth_free_key_event
    - CMSG_FIRSTHDR
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: dgram_sctp_read(BIO *b, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1254,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1261,1
    - Dst: BIO_dgram_sctp_wait_for_dry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1273,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1280,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1281,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1284,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1286,1
    - Dst: CMSG_LEN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1305,1
    - Dst: CMSG_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1306,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1307,1
    - Dst: CMSG_SPACE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1312,1
    - Dst: CMSG_SPACE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1315,1
    - Dst: CMSG_LEN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1318,1
    - Dst: CMSG_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1319,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1320,1
    - Dst: CMSG_SPACE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1323,1
    - Dst: CMSG_LEN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1328,1
    - Dst: CMSG_DATA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1329,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1330,1
    - Dst: CMSG_SPACE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1339,1
    - Dst: sendmsg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1342,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1344,1
    - Dst: BIO_dgram_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1346,1
    - Dst: BIO_set_retry_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1347,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1348,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 76
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1352
      start: 1234
    functionDepth: 1
    functionLinenumber: 1234
    functionLinenumberEnd: 1352
    functionName: dgram_sctp_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 1
    functionsReached:
    - CMSG_LEN
    - CMSG_DATA
    - BIO_dgram_should_retry
    - BIOerr
    - BIO_clear_retry_flags
    - clear_socket_error
    - CMSG_SPACE
    - memset
    - sendmsg
    - BIO_set_retry_write
    - memcpy
    - get_last_socket_error
    - OPENSSL_free
    - BIO_dgram_sctp_wait_for_dry
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: dgram_sctp_write(BIO *b, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1404,1
    - Dst: getsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1415,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1422,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1427,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1436,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1439,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1441,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1447,1
    - Dst: getsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1459,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1466,1
    - Dst: getsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1494,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1506,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1514,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1530,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1538,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1545,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1554,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1561,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1569,1
    - Dst: dgram_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1583,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 126
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 1587
      start: 1354
    functionDepth: 3
    functionLinenumber: 1354
    functionLinenumberEnd: 1587
    functionName: dgram_sctp_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - dgram_ctrl
    - memset
    - memcpy
    - getsockopt
    - OPENSSL_free
    - OPENSSL_malloc
    - setsockopt
    linkageType: ''
    returnType: long
    signature: dgram_sctp_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - b
    - context
    argTypes:
    - BIO*
    - void*
    constantsTouched: []
    func_position:
      end: 1605
      start: 1589
    functionDepth: 0
    functionLinenumber: 1589
    functionLinenumberEnd: 1605
    functionName: BIO_dgram_sctp_notification_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "BIO_dgram_sctp_notification_cb(BIO *b,\n                                   void
      (*handle_notifications) (BIO *bio,\n                                                                 void\n
      \                                                                *context,\n
      \                                                                void *buf),\n
      \                                  void *context)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1638,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1643,1
    - Dst: getsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1647,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1654,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1661,1
    - Dst: recvmsg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1672,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1674,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1675,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1683,1
    - Dst: recvmsg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1694,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1696,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1697,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1708,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1713,1
    - Dst: getsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1718,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1726,1
    - Dst: dgram_sctp_handle_auth_free_key_event
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1734,1
    - Dst: bio_dgram_sctp_data*::handle_notifications
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1738,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1742,1
    - Dst: fcntl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1755,1
    - Dst: fcntl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1756,1
    - Dst: recvmsg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1759,1
    - Dst: fcntl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1762,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1766,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1767,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 92
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 1776
      start: 1620
    functionDepth: 1
    functionLinenumber: 1620
    functionLinenumberEnd: 1776
    functionName: BIO_dgram_sctp_wait_for_dry
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 1
    functionsReached:
    - bio_dgram_sctp_data*::handle_notifications
    - fcntl
    - dgram_sctp_handle_auth_free_key_event
    - memset
    - get_last_socket_error
    - getsockopt
    - recvmsg
    - setsockopt
    linkageType: ''
    returnType: int
    signature: BIO_dgram_sctp_wait_for_dry(BIO *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1788,1
    - Dst: fcntl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1799,1
    - Dst: fcntl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1800,1
    - Dst: recvmsg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1801,1
    - Dst: fcntl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1802,1
    - Dst: dgram_sctp_handle_auth_free_key_event
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1808,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1811,1
    - Dst: recvmsg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1821,1
    - Dst: bio_dgram_sctp_data*::handle_notifications
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1824,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 1835
      start: 1778
    functionDepth: 1
    functionLinenumber: 1778
    functionLinenumberEnd: 1835
    functionName: BIO_dgram_sctp_msg_waiting
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - bio_dgram_sctp_data*::handle_notifications
    - fcntl
    - dgram_sctp_handle_auth_free_key_event
    - memset
    - recvmsg
    linkageType: ''
    returnType: int
    signature: BIO_dgram_sctp_msg_waiting(BIO *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1841,1
    - Dst: dgram_sctp_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 1844
      start: 1837
    functionDepth: 2
    functionLinenumber: 1837
    functionLinenumberEnd: 1844
    functionName: dgram_sctp_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - strlen
    - dgram_sctp_write
    linkageType: ''
    returnType: int
    signature: dgram_sctp_puts(BIO *bp, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1852,1
    - Dst: BIO_dgram_non_fatal_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1862,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1865
      start: 1847
    functionDepth: 1
    functionLinenumber: 1847
    functionLinenumberEnd: 1865
    functionName: BIO_dgram_should_retry
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 4
    functionsReached:
    - BIO_dgram_non_fatal_error
    - get_last_socket_error
    linkageType: ''
    returnType: int
    signature: BIO_dgram_should_retry(int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1914
      start: 1867
    functionDepth: 0
    functionLinenumber: 1867
    functionLinenumberEnd: 1914
    functionName: BIO_dgram_non_fatal_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BIO_dgram_non_fatal_error(int err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemTime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1925,1
    - Dst: SystemTimeToFileTime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1926,1
    - Dst: ftime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1936,1
    - Dst: gettimeofday
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c:1940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct timeval*
    constantsTouched: []
    func_position:
      end: 1942
      start: 1916
    functionDepth: 0
    functionLinenumber: 1916
    functionLinenumberEnd: 1942
    functionName: get_current_time
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
    functionUses: 1
    functionsReached:
    - gettimeofday
    - SystemTimeToFileTime
    - GetSystemTime
    - ftime
    linkageType: ''
    returnType: void
    signature: get_current_time(struct timeval *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_sock_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:44,1
    - Dst: socket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:47,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:49,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:49,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - domain
    - socktype
    - protocol
    - options
    argTypes:
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 55
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 55
    functionName: BIO_socket
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c
    functionUses: 1
    functionsReached:
    - BIOerr
    - get_last_socket_error
    - socket
    - BIO_sock_init
    - SYSerr
    linkageType: ''
    returnType: int
    signature: BIO_socket(int domain, int socktype, int protocol, int options)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:82,1
    - Dst: BIO_socket_nbio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:86,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:90,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:91,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:91,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:92,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:98,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:99,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:99,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:100,1
    - Dst: connect
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:105,1
    - Dst: BIO_ADDR_sockaddr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:105,1
    - Dst: BIO_ADDR_sockaddr_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:106,1
    - Dst: BIO_sock_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:107,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:108,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:108,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:109,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - sock
    - addr
    - options
    argTypes:
    - int
    - BIO_ADDR*
    - int
    constantsTouched: []
    func_position:
      end: 114
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 114
    functionName: BIO_connect
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c
    functionUses: 1
    functionsReached:
    - BIO_ADDR_sockaddr_size
    - BIOerr
    - BIO_sock_should_retry
    - connect
    - get_last_socket_error
    - setsockopt
    - BIO_socket_nbio
    - SYSerr
    - BIO_ADDR_sockaddr
    linkageType: ''
    returnType: int
    signature: BIO_connect(int sock, const BIO_ADDR *addr, int options)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:160,1
    - Dst: getsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:164,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:166,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:166,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:167,1
    - Dst: BIO_socket_nbio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:171,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:178,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:179,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:179,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:180,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:187,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:188,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:188,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:189,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:195,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:196,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:196,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:197,1
    - Dst: BIO_ADDR_family
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:203,1
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:204,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:205,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:205,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:206,1
    - Dst: bind
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:212,1
    - Dst: BIO_ADDR_sockaddr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:212,1
    - Dst: BIO_ADDR_sockaddr_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:212,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:213,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:213,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:214,1
    - Dst: listen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:218,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:219,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:219,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:220,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 3
    argNames:
    - sock
    - addr
    - options
    argTypes:
    - int
    - BIO_ADDR*
    - int
    constantsTouched: []
    func_position:
      end: 225
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 225
    functionName: BIO_listen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c
    functionUses: 0
    functionsReached:
    - BIO_ADDR_sockaddr_size
    - BIOerr
    - bind
    - get_last_socket_error
    - BIO_socket_nbio
    - getsockopt
    - setsockopt
    - listen
    - SYSerr
    - BIO_ADDR_sockaddr
    - BIO_ADDR_family
    linkageType: ''
    returnType: int
    signature: BIO_listen(int sock, const BIO_ADDR *addr, int options)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:242,1
    - Dst: BIO_ADDR_sockaddr_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:243,1
    - Dst: BIO_sock_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:245,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:246,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:246,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:247,1
    - Dst: BIO_socket_nbio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:252,1
    - Dst: closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:253,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - accept_sock
    - addr_
    - options
    argTypes:
    - int
    - BIO_ADDR*
    - int
    constantsTouched: []
    func_position:
      end: 258
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 258
    functionName: BIO_accept_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c
    functionUses: 0
    functionsReached:
    - BIOerr
    - BIO_sock_should_retry
    - BIO_ADDR_sockaddr_noconst
    - closesocket
    - get_last_socket_error
    - BIO_socket_nbio
    - accept
    - SYSerr
    linkageType: ''
    returnType: int
    signature: BIO_accept_ex(int accept_sock, BIO_ADDR *addr_, int options)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 269
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 269
    functionName: BIO_closesocket
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c
    functionUses: 4
    functionsReached:
    - closesocket
    linkageType: ''
    returnType: int
    signature: BIO_closesocket(int sock)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: BIO_f_null
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_f_null(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: nullf_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: nullf_new(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: nullf_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: nullf_free(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_null.c:73,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_null.c:74,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_null.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 77
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 77
    functionName: nullf_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_null.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - BIO_copy_next_retry
    - BIO_read
    linkageType: ''
    returnType: int
    signature: nullf_read(BIO *b, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_null.c:87,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_null.c:88,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_null.c:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 91
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 91
    functionName: nullf_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_null.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - BIO_copy_next_retry
    - BIO_write
    linkageType: ''
    returnType: int
    signature: nullf_write(BIO *b, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_null.c:101,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_null.c:102,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_null.c:103,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_null.c:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 112
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 112
    functionName: nullf_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_null.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - BIO_copy_next_retry
    - BIO_ctrl
    linkageType: ''
    returnType: long
    signature: nullf_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_callback_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_null.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - bio_info_cb*
    constantsTouched: []
    func_position:
      end: 126
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 126
    functionName: nullf_callback_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_null.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: nullf_callback_ctrl(BIO *b, int cmd, bio_info_cb *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_null.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: nullf_gets
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_null.c
    functionUses: 0
    functionsReached:
    - BIO_gets
    linkageType: ''
    returnType: int
    signature: nullf_gets(BIO *bp, char *buf, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_null.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: nullf_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_null.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: nullf_puts(BIO *bp, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: BIO_s_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_s_bio(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 87
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 87
    functionName: bio_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: bio_new(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:97,1
    - Dst: bio_destroy_pair
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:100,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:102,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 106
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 106
    functionName: bio_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - assert
    - bio_destroy_pair
    linkageType: ''
    returnType: int
    signature: bio_free(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:114,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:120,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:121,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:123,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:124,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:135,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:155,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:159,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:165,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:167,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:172,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:178,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 3
    argNames:
    - bio
    - buf
    - size_
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 186
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 186
    functionName: bio_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - assert
    - BIO_set_retry_read
    - memcpy
    linkageType: ''
    returnType: int
    signature: bio_read(BIO *bio, char *buf, int size_)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:204,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:210,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:211,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:213,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:214,1
    - Dst: bio_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:222,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:229,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - bio
    - buf
    argTypes:
    - BIO*
    - char**
    constantsTouched: []
    func_position:
      end: 234
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 234
    functionName: bio_nread0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - bio_read
    - assert
    linkageType: ''
    returnType: ossl_ssize_t
    signature: bio_nread0(BIO *bio, char **buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bio_nread0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:246,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:258,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - bio
    - buf
    - num_
    argTypes:
    - BIO*
    - char**
    - size_t
    constantsTouched: []
    func_position:
      end: 265
      start: 236
    functionDepth: 3
    functionLinenumber: 236
    functionLinenumberEnd: 265
    functionName: bio_nread
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - bio_nread0
    - assert
    linkageType: ''
    returnType: ossl_ssize_t
    signature: bio_nread(BIO *bio, char **buf, size_t num_)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:273,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:279,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:280,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:281,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:286,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:290,1
    - Dst: BIO_set_retry_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:293,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:305,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:310,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:323,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:327,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - bio
    - buf
    - num_
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 335
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 335
    functionName: bio_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIOerr
    - BIO_clear_retry_flags
    - BIO_set_retry_write
    - memcpy
    - assert
    linkageType: ''
    returnType: int
    signature: bio_write(BIO *bio, const char *buf, int num_)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:350,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:356,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:357,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:358,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:362,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:366,1
    - Dst: BIO_set_retry_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:369,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:387,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - bio
    - buf
    argTypes:
    - BIO*
    - char**
    constantsTouched: []
    func_position:
      end: 390
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 390
    functionName: bio_nwrite0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - BIO_set_retry_write
    - assert
    - BIOerr
    linkageType: ''
    returnType: ossl_ssize_t
    signature: bio_nwrite0(BIO *bio, char **buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bio_nwrite0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:402,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:408,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - bio
    - buf
    - num_
    argTypes:
    - BIO*
    - char**
    - size_t
    constantsTouched: []
    func_position:
      end: 413
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 413
    functionName: bio_nwrite
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - bio_nwrite0
    - assert
    linkageType: ''
    returnType: ossl_ssize_t
    signature: bio_nwrite(BIO *bio, char **buf, size_t num_)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:420,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:427,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:430,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:436,1
    - Dst: bio_make_pair
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:452,1
    - Dst: bio_destroy_pair
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:464,1
    - Dst: bio_nread0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:506,1
    - Dst: bio_nread
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:511,1
    - Dst: bio_nwrite0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:516,1
    - Dst: bio_nwrite
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:521,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:565,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:567,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:569,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 111
    argCount: 4
    argNames:
    - bio
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 598
      start: 415
    functionDepth: 4
    functionLinenumber: 415
    functionLinenumberEnd: 598
    functionName: bio_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - bio_make_pair
    - BIOerr
    - bio_nread0
    - bio_destroy_pair
    - bio_nread
    - bio_nwrite
    - bio_nwrite0
    - OPENSSL_free
    - assert
    linkageType: ''
    returnType: long
    signature: bio_ctrl(BIO *bio, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bio_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:602,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 603
      start: 600
    functionDepth: 2
    functionLinenumber: 600
    functionLinenumberEnd: 603
    functionName: bio_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - strlen
    - bio_write
    linkageType: ''
    returnType: int
    signature: bio_puts(BIO *bio, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:609,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:610,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:616,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:621,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:623,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:631,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:633,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - bio1
    - bio2
    argTypes:
    - BIO*
    - BIO*
    constantsTouched: []
    func_position:
      end: 651
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 651
    functionName: bio_make_pair
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c
    functionUses: 1
    functionsReached:
    - assert
    - OPENSSL_malloc
    - BIOerr
    linkageType: ''
    returnType: int
    signature: bio_make_pair(BIO *bio1, BIO *bio2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:663,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:664,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:668,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 679
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 679
    functionName: bio_destroy_pair
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: bio_destroy_pair(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:689,1
    - Dst: BIO_s_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:689,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:692,1
    - Dst: BIO_s_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:692,1
    - Dst: BIO_set_write_buf_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:697,1
    - Dst: BIO_set_write_buf_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:702,1
    - Dst: BIO_make_bio_pair
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:707,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:714,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:716,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 4
    argNames:
    - bio1_p
    - writebuf1
    - bio2_p
    - writebuf2
    argTypes:
    - BIO**
    - size_t
    - BIO**
    - size_t
    constantsTouched: []
    func_position:
      end: 723
      start: 682
    functionDepth: 4
    functionLinenumber: 682
    functionLinenumberEnd: 723
    functionName: BIO_new_bio_pair
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - BIO_set_write_buf_size
    - BIO_make_bio_pair
    - BIO_s_bio
    - BIO_new
    linkageType: ''
    returnType: int
    signature: "BIO_new_bio_pair(BIO **bio1_p, size_t writebuf1,\n                     BIO
      **bio2_p, size_t writebuf2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 728
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 728
    functionName: BIO_ctrl_get_write_guarantee
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: size_t
    signature: BIO_ctrl_get_write_guarantee(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 733
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 733
    functionName: BIO_ctrl_get_read_request
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: size_t
    signature: BIO_ctrl_get_read_request(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 738
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 738
    functionName: BIO_ctrl_reset_read_request
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: int
    signature: BIO_ctrl_reset_read_request(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:750,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:754,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - bio
    - buf
    argTypes:
    - BIO*
    - char**
    constantsTouched: []
    func_position:
      end: 759
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 759
    functionName: BIO_nread0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - BIOerr
    linkageType: ''
    returnType: int
    signature: BIO_nread0(BIO *bio, char **buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:766,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:770,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - bio
    - buf
    - num
    argTypes:
    - BIO*
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 774
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 774
    functionName: BIO_nread
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - BIOerr
    linkageType: ''
    returnType: int
    signature: BIO_nread(BIO *bio, char **buf, int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:781,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:785,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - bio
    - buf
    argTypes:
    - BIO*
    - char**
    constantsTouched: []
    func_position:
      end: 790
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 790
    functionName: BIO_nwrite0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - BIOerr
    linkageType: ''
    returnType: int
    signature: BIO_nwrite0(BIO *bio, char **buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:797,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c:801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - bio
    - buf
    - num
    argTypes:
    - BIO*
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 805
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 805
    functionName: BIO_nwrite
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - BIOerr
    linkageType: ''
    returnType: int
    signature: BIO_nwrite(BIO *bio, char **buf, int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_cb.c:30,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_cb.c:40,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_cb.c:44,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_cb.c:48,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_cb.c:53,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_cb.c:57,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_cb.c:61,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_cb.c:64,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_cb.c:68,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_cb.c:72,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_cb.c:75,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_cb.c:78,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_cb.c:81,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_cb.c:84,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_cb.c:87,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_cb.c:93,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_cb.c:93,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 6
    argNames:
    - bio
    - cmd
    - argp
    - argi
    - argl
    - ret
    argTypes:
    - BIO*
    - int
    - char*
    - int
    - long
    - long
    constantsTouched: []
    func_position:
      end: 99
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 99
    functionName: BIO_debug_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_cb.c
    functionUses: 0
    functionsReached:
    - strlen
    - BIO_write
    - BIO_snprintf
    linkageType: ''
    returnType: long
    signature: "BIO_debug_callback(BIO *bio, int cmd, const char *argp,\n                        int
      argi, long argl, long ret)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(do_bio_type_init)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c:27,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c:28,1
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 34
    functionName: BIO_get_new_index
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached:
    - BIOerr
    - RUN_ONCE
    - CRYPTO_atomic_add
    linkageType: ''
    returnType: int
    signature: BIO_get_new_index()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - type
    - name
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: BIO_meth_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_meth_new(int type, const char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: BIO_meth_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: BIO_meth_free(BIO_METHOD *biom)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: (*BIO_meth_get_write(BIO_METHOD *biom)) (BIO *, const char *, int)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*BIO_meth_get_write(BIO_METHOD *biom)) (BIO *, const char *, int)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: BIO_meth_set_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "BIO_meth_set_write(BIO_METHOD *biom,\n                       int (*bwrite)
      (BIO *, const char *, int))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: (*BIO_meth_get_read(BIO_METHOD *biom)) (BIO *, char *, int)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*BIO_meth_get_read(BIO_METHOD *biom)) (BIO *, char *, int)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: BIO_meth_set_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "BIO_meth_set_read(BIO_METHOD *biom,\n                      int (*bread)
      (BIO *, char *, int))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: (*BIO_meth_get_puts(BIO_METHOD *biom)) (BIO *, const char *)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*BIO_meth_get_puts(BIO_METHOD *biom)) (BIO *, const char *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: BIO_meth_set_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "BIO_meth_set_puts(BIO_METHOD *biom,\n                      int (*bputs)
      (BIO *, const char *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: (*BIO_meth_get_gets(BIO_METHOD *biom)) (BIO *, char *, int)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*BIO_meth_get_gets(BIO_METHOD *biom)) (BIO *, char *, int)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: BIO_meth_set_gets
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "BIO_meth_set_gets(BIO_METHOD *biom,\n                      int (*bgets)
      (BIO *, char *, int))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: (*BIO_meth_get_ctrl(BIO_METHOD *biom)) (BIO *, int, long, void *)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: (*BIO_meth_get_ctrl(BIO_METHOD *biom)) (BIO *, int, long, void *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: BIO_meth_set_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "BIO_meth_set_ctrl(BIO_METHOD *biom,\n                      long (*ctrl)
      (BIO *, int, long, void *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: (*BIO_meth_get_create(BIO_METHOD *biom)) (BIO *)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*BIO_meth_get_create(BIO_METHOD *biom)) (BIO *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: BIO_meth_set_create
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *))
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: (*BIO_meth_get_destroy(BIO_METHOD *biom)) (BIO *)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*BIO_meth_get_destroy(BIO_METHOD *biom)) (BIO *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: BIO_meth_set_destroy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *))
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: (*BIO_meth_get_callback_ctrl(BIO_METHOD *biom)) (BIO *, int, bio_info_cb
      *)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: (*BIO_meth_get_callback_ctrl(BIO_METHOD *biom)) (BIO *, int, bio_info_cb
      *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: BIO_meth_set_callback_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "BIO_meth_set_callback_ctrl(BIO_METHOD *biom,\n                               long
      (*callback_ctrl) (BIO *, int,\n                                                      bio_info_cb
      *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: BIO_f_linebuffer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_f_linebuffer(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:58,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:61,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 73
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 73
    functionName: linebuffer_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: linebuffer_new(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:82,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 88
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 88
    functionName: linebuffer_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: linebuffer_free(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:98,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:99,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: linebuffer_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - BIO_copy_next_retry
    - BIO_read
    linkageType: ''
    returnType: int
    signature: linebuffer_read(BIO *b, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:115,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:138,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:144,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:151,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:154,1
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:162,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:171,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:173,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:191,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 65
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 196
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 196
    functionName: linebuffer_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - memmove
    - BIO_clear_retry_flags
    - memcpy
    - BIO_copy_next_retry
    - BIO_write
    linkageType: ''
    returnType: int
    signature: linebuffer_write(BIO *b, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:214,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:224,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:231,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:239,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:240,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:248,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:249,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:250,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:257,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:262,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:264,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:265,1
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:269,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:276,1
    - Dst: BIO_set_write_buffer_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:280,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:286,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:291,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 86
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 293
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 293
    functionName: linebuffer_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - memmove
    - BIOerr
    - BIO_clear_retry_flags
    - memcpy
    - BIO_copy_next_retry
    - BIO_set_write_buffer_size
    - OPENSSL_free
    - BIO_write
    - OPENSSL_malloc
    linkageType: ''
    returnType: long
    signature: linebuffer_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_callback_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - bio_info_cb*
    constantsTouched: []
    func_position:
      end: 307
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 307
    functionName: linebuffer_callback_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: linebuffer_callback_ctrl(BIO *b, int cmd, bio_info_cb *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 314
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 314
    functionName: linebuffer_gets
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - BIO_gets
    linkageType: ''
    returnType: int
    signature: linebuffer_gets(BIO *b, char *buf, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: linebuffer_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:318,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 3
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: linebuffer_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - strlen
    - linebuffer_write
    linkageType: ''
    returnType: int
    signature: linebuffer_puts(BIO *b, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_err.c:119,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_err.c:120,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_err.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 125
    functionName: ERR_load_BIO_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_BIO_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_sock_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:37,1
    - Dst: BIO_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:40,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:43,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:44,1
    - Dst: BIO_ADDR_rawaddress
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:47,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:47,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:50,1
    - Dst: BIO_ADDR_rawaddress
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:52,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:52,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:55,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - str
    - ip
    argTypes:
    - char*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 61
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 61
    functionName: BIO_get_host_ip
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c
    functionUses: 0
    functionsReached:
    - BIOerr
    - OPENSSL_assert
    - BIO_ADDRINFO_family
    - BIO_ADDRINFO_free
    - BIO_lookup
    - ERR_add_error_data
    - BIO_sock_init
    - BIO_ADDR_rawaddress
    - BIO_ADDRINFO_address
    linkageType: ''
    returnType: int
    signature: BIO_get_host_ip(const char *str, unsigned char *ip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:69,1
    - Dst: BIO_sock_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:73,1
    - Dst: BIO_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:76,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:77,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:78,1
    - Dst: ntohs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:81,1
    - Dst: BIO_ADDR_rawport
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:81,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:81,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:84,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - str
    - port_ptr
    argTypes:
    - char*
    - unsigned short*
    constantsTouched: []
    func_position:
      end: 90
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 90
    functionName: BIO_get_port
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c
    functionUses: 0
    functionsReached:
    - BIO_ADDR_rawport
    - BIOerr
    - BIO_ADDRINFO_family
    - BIO_ADDRINFO_free
    - BIO_lookup
    - ERR_add_error_data
    - ntohs
    - BIO_sock_init
    - BIO_ADDRINFO_address
    linkageType: ''
    returnType: int
    signature: BIO_get_port(const char *str, unsigned short *port_ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:104,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 109
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 109
    functionName: BIO_sock_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c
    functionUses: 1
    functionsReached:
    - get_last_socket_error
    - getsockopt
    linkageType: ''
    returnType: int
    signature: BIO_sock_error(int sock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gethostbyname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:119,1
    - Dst: gethostbyname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: BIO_gethostbyname
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c
    functionUses: 0
    functionsReached:
    - gethostbyname
    linkageType: ''
    returnType: struct hostent
    signature: '*BIO_gethostbyname(const char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:135,1
    - Dst: WSAStartup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:142,1
    - Dst: WSAGetLastError
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:143,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:144,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:145,1
    - Dst: sock_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 158
    functionName: BIO_sock_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c
    functionUses: 3
    functionsReached:
    - BIOerr
    - WSAGetLastError
    - WSAStartup
    - memset
    - SYSerr
    - sock_init
    linkageType: ''
    returnType: int
    signature: BIO_sock_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WSACleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 168
    functionName: bio_sock_cleanup_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c
    functionUses: 1
    functionsReached:
    - WSACleanup
    linkageType: ''
    returnType: void
    signature: bio_sock_cleanup_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ioctlsocket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:177,1
    - Dst: ioctlsocket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:203,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:206,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - fd
    - type
    - arg
    argTypes:
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 208
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 208
    functionName: BIO_socket_ioctl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c
    functionUses: 0
    functionsReached:
    - get_last_socket_error
    - SYSerr
    - ioctlsocket
    linkageType: ''
    returnType: int
    signature: BIO_socket_ioctl(int fd, long type, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_parse_hostserv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:218,1
    - Dst: BIO_sock_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:221,1
    - Dst: BIO_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:224,1
    - Dst: BIO_socket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:227,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:227,1
    - Dst: BIO_ADDRINFO_socktype
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:227,1
    - Dst: BIO_ADDRINFO_protocol
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:228,1
    - Dst: BIO_listen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:233,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:233,1
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:235,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:240,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:241,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:242,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - host
    - bind_mode
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 245
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 245
    functionName: BIO_get_accept_socket
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c
    functionUses: 0
    functionsReached:
    - BIO_parse_hostserv
    - BIO_listen
    - BIO_ADDRINFO_family
    - BIO_ADDRINFO_free
    - BIO_ADDRINFO_protocol
    - BIO_lookup
    - BIO_ADDRINFO_socktype
    - BIO_socket
    - BIO_sock_init
    - OPENSSL_free
    - BIO_closesocket
    - BIO_ADDRINFO_address
    linkageType: ''
    returnType: int
    signature: BIO_get_accept_socket(char *host, int bind_mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_accept_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:252,1
    - Dst: BIO_sock_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:254,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:258,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:258,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:259,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:267,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:267,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:267,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:272,1
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:273,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:276,1
    - Dst: strcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:277,1
    - Dst: strcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:278,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:280,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:281,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - sock
    - ip_port
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 286
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 286
    functionName: BIO_accept
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c
    functionUses: 0
    functionsReached:
    - strcat
    - BIOerr
    - BIO_accept_ex
    - BIO_sock_should_retry
    - strlen
    - get_last_socket_error
    - OPENSSL_zalloc
    - strcpy
    - OPENSSL_free
    - BIO_closesocket
    - SYSerr
    linkageType: ''
    returnType: int
    signature: BIO_accept(int sock, char **ip_port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - s
    - 'on'
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 306
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 306
    functionName: BIO_set_tcp_ndelay
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: BIO_set_tcp_ndelay(int s, int on)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_socket_ioctl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:317,1
    - Dst: fcntl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:321,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:323,1
    - Dst: get_last_rtl_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:323,1
    - Dst: fcntl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:338,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:341,1
    - Dst: get_last_rtl_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:341,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:346,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - s
    - mode
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 350
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 350
    functionName: BIO_socket_nbio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c
    functionUses: 3
    functionsReached:
    - get_last_rtl_error
    - fcntl
    - BIOerr
    - SYSerr
    - BIO_socket_ioctl
    linkageType: ''
    returnType: int
    signature: BIO_socket_nbio(int s, int mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getsockname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:361,1
    - Dst: BIO_ADDR_sockaddr_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:361,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:364,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:364,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:365,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:369,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c:375,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - sock
    - type
    - info
    argTypes:
    - int
    - enum BIO_sock_info_type
    - union BIO_sock_info_u*
    constantsTouched: []
    func_position:
      end: 379
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 379
    functionName: BIO_sock_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c
    functionUses: 0
    functionsReached:
    - BIOerr
    - getsockname
    - BIO_ADDR_sockaddr_noconst
    - get_last_socket_error
    - SYSerr
    linkageType: ''
    returnType: int
    signature: "BIO_sock_info(int sock,\n                  enum BIO_sock_info_type
      type, union BIO_sock_info_u *info)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_dump_indent_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - u
    - s
    - len
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: BIO_dump_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c
    functionUses: 0
    functionsReached:
    - BIO_dump_indent_cb
    linkageType: ''
    returnType: int
    signature: "BIO_dump_cb(int (*cb) (const void *data, size_t len, void *u),\n                void
      *u, const char *s, int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:48,1
    - Dst: DUMP_WIDTH_LESS_INDENT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:52,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:57,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:58,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:59,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:62,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:65,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:67,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:70,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:76,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:79,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:84,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:86,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:91,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:91,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:95,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:97,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:97,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 4
    argNames:
    - u
    - s
    - len
    - indent
    argTypes:
    - void*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 101
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 101
    functionName: BIO_dump_indent_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c
    functionUses: 1
    functionsReached:
    - BIO_snprintf
    - OPENSSL_strlcpy
    - memset
    - cb
    - strlen
    - DUMP_WIDTH_LESS_INDENT
    - OPENSSL_strlcat
    linkageType: ''
    returnType: int
    signature: "BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u),\n
      \                      void *u, const char *s, int len, int indent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UP_fwrite
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - len
    - fp
    argTypes:
    - void*
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: write_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c
    functionUses: 0
    functionsReached:
    - UP_fwrite
    linkageType: ''
    returnType: int
    signature: write_fp(const void *data, size_t len, void *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_dump_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fp
    - s
    - len
    argTypes:
    - FILE*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: BIO_dump_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c
    functionUses: 0
    functionsReached:
    - BIO_dump_cb
    linkageType: ''
    returnType: int
    signature: BIO_dump_fp(FILE *fp, const char *s, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_dump_indent_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fp
    - s
    - len
    - indent
    argTypes:
    - FILE*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: BIO_dump_indent_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c
    functionUses: 0
    functionsReached:
    - BIO_dump_indent_cb
    linkageType: ''
    returnType: int
    signature: BIO_dump_indent_fp(FILE *fp, const char *s, int len, int indent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - len
    - bp
    argTypes:
    - void*
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: write_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c
    functionUses: 7
    functionsReached:
    - BIO_write
    linkageType: ''
    returnType: int
    signature: write_bio(const void *data, size_t len, void *bp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_dump_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bp
    - s
    - len
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: BIO_dump
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c
    functionUses: 0
    functionsReached:
    - BIO_dump_cb
    linkageType: ''
    returnType: int
    signature: BIO_dump(BIO *bp, const char *s, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_dump_indent_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - s
    - len
    - indent
    argTypes:
    - BIO*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: BIO_dump_indent
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c
    functionUses: 0
    functionsReached:
    - BIO_dump_indent_cb
    linkageType: ''
    returnType: int
    signature: BIO_dump_indent(BIO *bp, const char *s, int len, int indent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:145,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:147,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:151,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:155,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c:156,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 5
    argNames:
    - out
    - indent
    - width
    - data
    - datalen
    argTypes:
    - BIO*
    - int
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 158
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 158
    functionName: BIO_hex_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "BIO_hex_string(BIO *out, int indent, int width, unsigned char *data,\n
      \                  int datalen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: BIO_s_accept
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_s_accept(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ACCEPT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 85
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 85
    functionName: acpt_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - BIO_ACCEPT_new
    linkageType: ''
    returnType: int
    signature: acpt_new(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: BIO_ACCEPT_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c
    functionUses: 1
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: BIO_ACCEPT
    signature: '*BIO_ACCEPT_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:103,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:104,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:105,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:106,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:107,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:108,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:109,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:110,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO_ACCEPT*
    constantsTouched: []
    func_position:
      end: 112
      start: 98
    functionDepth: 4
    functionLinenumber: 98
    functionLinenumberEnd: 112
    functionName: BIO_ACCEPT_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - OPENSSL_free
    - BIO_ADDRINFO_free
    linkageType: ''
    returnType: void
    signature: BIO_ACCEPT_free(BIO_ACCEPT *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:120,1
    - Dst: closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 125
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 125
    functionName: acpt_close_socket
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - shutdown
    - closesocket
    linkageType: ''
    returnType: void
    signature: acpt_close_socket(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: acpt_close_socket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:136,1
    - Dst: BIO_ACCEPT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 143
      start: 127
    functionDepth: 5
    functionLinenumber: 127
    functionLinenumberEnd: 143
    functionName: acpt_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - BIO_ACCEPT_free
    - acpt_close_socket
    linkageType: ''
    returnType: int
    signature: acpt_free(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:154,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:155,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:165,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:167,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:169,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:171,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:190,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:201,1
    - Dst: BIO_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:204,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:209,1
    - Dst: BIO_socket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:220,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:220,1
    - Dst: BIO_ADDRINFO_socktype
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:221,1
    - Dst: BIO_ADDRINFO_protocol
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:222,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:224,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:224,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:225,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:228,1
    - Dst: BIO_listen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:238,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:239,1
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:241,1
    - Dst: BIO_sock_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:250,1
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:252,1
    - Dst: BIO_ADDR_hostname_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:258,1
    - Dst: BIO_ADDR_service_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:260,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:271,1
    - Dst: BIO_accept_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:274,1
    - Dst: BIO_sock_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:281,1
    - Dst: BIO_set_retry_special
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:282,1
    - Dst: BIO_new_socket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:294,1
    - Dst: BIO_set_callback
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:298,1
    - Dst: BIO_get_callback
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:298,1
    - Dst: BIO_set_callback_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:299,1
    - Dst: BIO_get_callback_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:299,1
    - Dst: BIO_dup_chain
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:306,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:308,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:312,1
    - Dst: BIO_ADDR_hostname_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:316,1
    - Dst: BIO_ADDR_service_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:318,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:340,1
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:342,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 157
    argCount: 2
    argNames:
    - b
    - c
    argTypes:
    - BIO*
    - BIO_ACCEPT*
    constantsTouched: []
    func_position:
      end: 345
      start: 145
    functionDepth: 6
    functionLinenumber: 145
    functionLinenumberEnd: 345
    functionName: acpt_state
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - BIO_push
    - BIO_listen
    - BIO_ADDRINFO_socktype
    - BIO_sock_info
    - BIO_clear_retry_flags
    - BIO_free
    - BIO_ADDR_hostname_string
    - BIO_set_callback_arg
    - BIO_ADDR_service_string
    - BIO_set_callback
    - BIOerr
    - BIO_accept_ex
    - BIO_dup_chain
    - BIO_lookup
    - ERR_add_error_data
    - get_last_socket_error
    - OPENSSL_free
    - BIO_set_retry_special
    - BIO_get_callback
    - SYSerr
    - BIO_get_callback_arg
    - BIO_sock_should_retry
    - BIO_ADDRINFO_family
    - BIO_ADDRINFO_protocol
    - BIO_socket
    - BIO_new_socket
    - BIO_closesocket
    - BIO_ADDRINFO_address
    linkageType: ''
    returnType: int
    signature: acpt_state(BIO *b, BIO_ACCEPT *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:352,1
    - Dst: acpt_state
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:356,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:361,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 364
      start: 347
    functionDepth: 7
    functionLinenumber: 347
    functionLinenumberEnd: 364
    functionName: acpt_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - BIO_copy_next_retry
    - BIO_read
    - acpt_state
    linkageType: ''
    returnType: int
    signature: acpt_read(BIO *b, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:371,1
    - Dst: acpt_state
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:375,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:380,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 383
      start: 366
    functionDepth: 7
    functionLinenumber: 366
    functionLinenumberEnd: 383
    functionName: acpt_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - BIO_copy_next_retry
    - BIO_write
    - acpt_state
    linkageType: ''
    returnType: int
    signature: acpt_write(BIO *b, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: acpt_close_socket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:398,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:399,1
    - Dst: acpt_state
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:405,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:415,1
    - Dst: BIO_parse_hostserv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:417,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:422,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:425,1
    - Dst: BUF_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:426,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:431,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:480,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 130
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 533
      start: 385
    functionDepth: 7
    functionLinenumber: 385
    functionLinenumberEnd: 533
    functionName: acpt_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - BIO_parse_hostserv
    - BUF_strdup
    - BIO_ADDRINFO_free
    - acpt_state
    - BIO_ADDRINFO_family
    - BIO_free
    - acpt_close_socket
    - OPENSSL_free
    linkageType: ''
    returnType: long
    signature: acpt_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:539,1
    - Dst: acpt_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 542
      start: 535
    functionDepth: 8
    functionLinenumber: 535
    functionLinenumberEnd: 542
    functionName: acpt_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - strlen
    - acpt_write
    linkageType: ''
    returnType: int
    signature: acpt_puts(BIO *bp, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:548,1
    - Dst: BIO_s_accept
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:548,1
    - Dst: BIO_set_accept_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:551,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c:553,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 555
      start: 544
    functionDepth: 4
    functionLinenumber: 544
    functionLinenumberEnd: 555
    functionName: BIO_new_accept
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - BIO_s_accept
    - BIO_new
    - BIO_free
    - BIO_set_accept_name
    linkageType: ''
    returnType: BIO
    signature: '*BIO_new_accept(const char *str)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strerror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - herr
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 41
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 41
    functionName: ossl_hstrerror
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 0
    functionsReached:
    - strerror
    linkageType: ''
    returnType: char
    signature: '*ossl_hstrerror(int herr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:64,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 73
    functionName: BIO_ADDR_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 0
    functionsReached:
    - BIOerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: BIO_ADDR
    signature: '*BIO_ADDR_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: BIO_ADDR_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: BIO_ADDR_free(BIO_ADDR *ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: BIO_ADDR_clear
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: BIO_ADDR_clear(BIO_ADDR *ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ap
    - sa
    argTypes:
    - BIO_ADDR*
    - struct sockaddr*
    constantsTouched: []
    func_position:
      end: 110
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 110
    functionName: BIO_ADDR_make
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BIO_ADDR_make(BIO_ADDR *ap, const struct sockaddr *sa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:120,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:122,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:129,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:139,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 5
    argNames:
    - ap
    - family
    - where
    - wherelen
    - port
    argTypes:
    - BIO_ADDR*
    - int
    - void*
    - size_t
    - unsigned short
    constantsTouched: []
    func_position:
      end: 148
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 148
    functionName: BIO_ADDR_rawmake
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 0
    functionsReached:
    - strncpy
    - memset
    linkageType: ''
    returnType: int
    signature: "BIO_ADDR_rawmake(BIO_ADDR *ap, int family,\n                     const
      void *where, size_t wherelen,\n                     unsigned short port)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: BIO_ADDR_family
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BIO_ADDR_family(const BIO_ADDR *ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:172,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - ap
    - p
    - l
    argTypes:
    - BIO_ADDR*
    - void*
    - size_t*
    constantsTouched: []
    func_position:
      end: 187
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 187
    functionName: BIO_ADDR_rawaddress
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 3
    functionsReached:
    - strlen
    - memcpy
    linkageType: ''
    returnType: int
    signature: BIO_ADDR_rawaddress(const BIO_ADDR *ap, void *p, size_t *l)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    constantsTouched: []
    func_position:
      end: 198
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 198
    functionName: BIO_ADDR_rawport
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned short
    signature: BIO_ADDR_rawport(const BIO_ADDR *ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: addr_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ap
    - numeric
    argTypes:
    - BIO_ADDR*
    - int
    constantsTouched: []
    func_position:
      end: 296
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 296
    functionName: BIO_ADDR_hostname_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 2
    functionsReached:
    - addr_strings
    linkageType: ''
    returnType: char
    signature: '*BIO_ADDR_hostname_string(const BIO_ADDR *ap, int numeric)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: addr_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ap
    - numeric
    argTypes:
    - BIO_ADDR*
    - int
    constantsTouched: []
    func_position:
      end: 306
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 306
    functionName: BIO_ADDR_service_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 2
    functionsReached:
    - addr_strings
    linkageType: ''
    returnType: char
    signature: '*BIO_ADDR_service_string(const BIO_ADDR *ap, int numeric)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    constantsTouched: []
    func_position:
      end: 315
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 315
    functionName: BIO_ADDR_path_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    linkageType: ''
    returnType: char
    signature: '*BIO_ADDR_path_string(const BIO_ADDR *ap)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: BIO_ADDR_sockaddr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: struct sockaddr
    signature: '*BIO_ADDR_sockaddr(const BIO_ADDR *ap)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 336
    functionName: BIO_ADDR_sockaddr_noconst
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: struct sockaddr
    signature: '*BIO_ADDR_sockaddr_noconst(BIO_ADDR *ap)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    constantsTouched: []
    func_position:
      end: 357
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 357
    functionName: BIO_ADDR_sockaddr_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: socklen_t
    signature: BIO_ADDR_sockaddr_size(const BIO_ADDR *ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    constantsTouched: []
    func_position:
      end: 370
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 370
    functionName: BIO_ADDRINFO_next
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIO_ADDRINFO
    signature: '*BIO_ADDRINFO_next(const BIO_ADDRINFO *bai)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    constantsTouched: []
    func_position:
      end: 377
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 377
    functionName: BIO_ADDRINFO_family
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BIO_ADDRINFO_family(const BIO_ADDRINFO *bai)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    constantsTouched: []
    func_position:
      end: 384
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 384
    functionName: BIO_ADDRINFO_socktype
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BIO_ADDRINFO_socktype(const BIO_ADDRINFO *bai)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    constantsTouched: []
    func_position:
      end: 407
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 407
    functionName: BIO_ADDRINFO_protocol
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: BIO_ADDRINFO_protocol(const BIO_ADDRINFO *bai)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    constantsTouched: []
    func_position:
      end: 418
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 418
    functionName: BIO_ADDRINFO_sockaddr_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socklen_t
    signature: BIO_ADDRINFO_sockaddr_size(const BIO_ADDRINFO *bai)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    constantsTouched: []
    func_position:
      end: 429
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 429
    functionName: BIO_ADDRINFO_sockaddr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct sockaddr
    signature: '*BIO_ADDRINFO_sockaddr(const BIO_ADDRINFO *bai)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    constantsTouched: []
    func_position:
      end: 436
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 436
    functionName: BIO_ADDRINFO_address
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: BIO_ADDR
    signature: '*BIO_ADDRINFO_address(const BIO_ADDRINFO *bai)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: freeaddrinfo
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:450,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:460,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    constantsTouched: []
    func_position:
      end: 464
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 464
    functionName: BIO_ADDRINFO_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 7
    functionsReached:
    - OPENSSL_free
    - freeaddrinfo
    linkageType: ''
    returnType: void
    signature: BIO_ADDRINFO_free(BIO_ADDRINFO *bai)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:498,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:509,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:513,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:532,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:535,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:538,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:542,1
    - Dst: OPENSSL_strndup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:550,1
    - Dst: OPENSSL_strndup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:560,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:568,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:571,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:574,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 71
    argCount: 4
    argNames:
    - hostserv
    - host
    - service
    - hostserv_prio
    argTypes:
    - char*
    - char**
    - char**
    - enum BIO_hostserv_priorities
    constantsTouched: []
    func_position:
      end: 576
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 576
    functionName: BIO_parse_hostserv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 3
    functionsReached:
    - BIOerr
    - strlen
    - OPENSSL_strndup
    - strchr
    linkageType: ''
    returnType: int
    signature: "BIO_parse_hostserv(const char *hostserv, char **host, char **service,\n
      \                      enum BIO_hostserv_priorities hostserv_prio)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:592,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:594,1
    - Dst: BIO_ADDR_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:614,1
    - Dst: BIO_ADDR_rawmake
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:616,1
    - Dst: BIO_ADDR_sockaddr_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:617,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:622,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 6
    argNames:
    - family
    - socktype
    - where
    - wherelen
    - port
    - bai
    argTypes:
    - int
    - int
    - void*
    - size_t
    - unsigned short
    - BIO_ADDRINFO**
    constantsTouched: []
    func_position:
      end: 627
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 627
    functionName: addrinfo_wrap
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 0
    functionsReached:
    - BIO_ADDR_new
    - OPENSSL_assert
    - BIO_ADDR_sockaddr_noconst
    - BIO_ADDRINFO_free
    - OPENSSL_zalloc
    - BIO_ADDR_rawmake
    linkageType: ''
    returnType: int
    signature: "addrinfo_wrap(int family, int socktype,\n                         const
      void *where, size_t wherelen,\n                         unsigned short port,\n
      \                        BIO_ADDRINFO **bai)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:631,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 634
      start: 629
    functionDepth: 2
    functionLinenumber: 629
    functionLinenumberEnd: 634
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_init_crypto
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(do_bio_lookup_init)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:673,1
    - Dst: addrinfo_wrap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:679,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:679,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:682,1
    - Dst: BIO_sock_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:687,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:694,1
    - Dst: getaddrinfo
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:705,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:708,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:708,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:709,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:716,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:717,1
    - Dst: gai_strerror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:717,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:757,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:758,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:763,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:775,1
    - Dst: gethostbyname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:779,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:783,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:784,1
    - Dst: hstrerror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:784,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:786,1
    - Dst: WSAGetLastError
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:786,1
    - Dst: htons
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:825,1
    - Dst: getservbyname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:829,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:833,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:834,1
    - Dst: hstrerror
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:834,1
    - Dst: SYSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:836,1
    - Dst: WSAGetLastError
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:836,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:841,1
    - Dst: addrinfo_wrap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:873,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:881,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:883,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c:891,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 130
    argCount: 6
    argNames:
    - host
    - service
    - lookup_type
    - family
    - socktype
    - res
    argTypes:
    - char*
    - char*
    - enum BIO_lookup_type
    - int
    - int
    - BIO_ADDRINFO**
    constantsTouched: []
    func_position:
      end: 895
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 895
    functionName: BIO_lookup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
    functionUses: 5
    functionsReached:
    - RUN_ONCE
    - WSAGetLastError
    - hstrerror
    - htons
    - getaddrinfo
    - BIO_sock_init
    - BIOerr
    - memset
    - BIO_ADDRINFO_free
    - strlen
    - ERR_add_error_data
    - get_last_socket_error
    - gai_strerror
    - SYSerr
    - addrinfo_wrap
    - OPENSSL_assert
    - getservbyname
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    - gethostbyname
    linkageType: ''
    returnType: int
    signature: "BIO_lookup(const char *host, const char *service,\n               enum
      BIO_lookup_type lookup_type,\n               int family, int socktype, BIO_ADDRINFO
      **res)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: BIO_f_nbio_test
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_f_nbio_test(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: nbiof_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: nbiof_new(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: nbiof_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: nbiof_free(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c:87,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c:88,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c:97,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c:99,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c:101,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 104
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 104
    functionName: nbiof_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - BIO_clear_retry_flags
    - BIO_set_retry_read
    - BIO_copy_next_retry
    - BIO_read
    linkageType: ''
    returnType: int
    signature: nbiof_read(BIO *b, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c:119,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c:125,1
    - Dst: BIO_set_retry_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c:135,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c:137,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c:139,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 144
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 144
    functionName: nbiof_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - BIO_clear_retry_flags
    - BIO_set_retry_write
    - BIO_copy_next_retry
    - BIO_write
    linkageType: ''
    returnType: int
    signature: nbiof_write(BIO *b, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c:154,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c:155,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c:156,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c:162,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 166
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 166
    functionName: nbiof_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - BIO_copy_next_retry
    - BIO_ctrl
    linkageType: ''
    returnType: long
    signature: nbiof_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_callback_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c:176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - bio_info_cb*
    constantsTouched: []
    func_position:
      end: 180
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 180
    functionName: nbiof_callback_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: nbiof_callback_ctrl(BIO *b, int cmd, bio_info_cb *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 187
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 187
    functionName: nbiof_gets
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - BIO_gets
    linkageType: ''
    returnType: int
    signature: nbiof_gets(BIO *bp, char *buf, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: nbiof_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: nbiof_puts(BIO *bp, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:133,1
    - Dst: isdigit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:165,1
    - Dst: char_to_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:166,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:169,1
    - Dst: isdigit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:183,1
    - Dst: char_to_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:186,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:189,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:228,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:231,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:234,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:237,1
    - Dst: fmtint
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:240,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:253,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:256,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:259,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:262,1
    - Dst: fmtint
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:265,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:272,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:274,1
    - Dst: fmtfp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:275,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:283,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:285,1
    - Dst: fmtfp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:286,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:294,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:296,1
    - Dst: fmtfp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:297,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:302,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:303,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:307,1
    - Dst: fmtstr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:314,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:319,1
    - Dst: fmtint
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:320,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:327,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:331,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:335,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:339,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:344,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:375,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 238
    argCount: 7
    argNames:
    - sbuffer
    - buffer
    - maxlen
    - retlen
    - truncated
    - format
    - args
    argTypes:
    - char**
    - char**
    - size_t*
    - size_t*
    - int*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 379
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 379
    functionName: _dopr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c
    functionUses: 0
    functionsReached:
    - doapr_outch
    - char_to_int
    - fmtfp
    - fmtint
    - isdigit
    - va_arg
    - fmtstr
    linkageType: ''
    returnType: int
    signature: "_dopr(char **sbuffer,\n      char **buffer,\n      size_t *maxlen,\n
      \     size_t *retlen, int *truncated, const char *format, va_list args)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strnlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:394,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:413,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:419,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:425,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 33
    argCount: 8
    argNames:
    - sbuffer
    - buffer
    - currlen
    - maxlen
    - value
    - flags
    - min
    - max
    argTypes:
    - char**
    - char**
    - size_t*
    - size_t*
    - char*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 431
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 431
    functionName: fmtstr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c
    functionUses: 1
    functionsReached:
    - OPENSSL_strnlen
    - doapr_outch
    linkageType: ''
    returnType: int
    signature: "fmtstr(char **sbuffer,\n       char **buffer,\n       size_t *currlen,\n
      \      size_t *maxlen, const char *value, int flags, int min, int max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_MAX
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:479,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:479,1
    - Dst: OSSL_MAX
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:485,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:493,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:500,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:505,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:513,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:520,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:526,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 71
    argCount: 9
    argNames:
    - sbuffer
    - buffer
    - currlen
    - maxlen
    - value
    - base
    - min
    - max
    - flags
    argTypes:
    - char**
    - char**
    - size_t*
    - size_t*
    - LLONG
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 531
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 531
    functionName: fmtint
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c
    functionUses: 1
    functionsReached:
    - OSSL_MAX
    - strlen
    - doapr_outch
    linkageType: ''
    returnType: int
    signature: "fmtint(char **sbuffer,\n       char **buffer,\n       size_t *currlen,\n
      \      size_t *maxlen, LLONG value, int base, int min, int max, int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - LDOUBLE
    constantsTouched: []
    func_position:
      end: 539
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 539
    functionName: abs_val
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LDOUBLE
    signature: abs_val(LDOUBLE value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - in_exp
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 549
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 549
    functionName: pow_10
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LDOUBLE
    signature: pow_10(int in_exp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - LDOUBLE
    constantsTouched: []
    func_position:
      end: 559
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 559
    functionName: roundv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: roundv(LDOUBLE value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pow_10
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:605,1
    - Dst: abs_val
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:655,1
    - Dst: roundv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:673,1
    - Dst: pow_10
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:673,1
    - Dst: roundv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:674,1
    - Dst: pow_10
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:674,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:746,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:752,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:758,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:762,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:766,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:775,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:779,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:785,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:796,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:799,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:802,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:806,1
    - Dst: doapr_outch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:813,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 169
    argCount: 9
    argNames:
    - sbuffer
    - buffer
    - currlen
    - maxlen
    - fvalue
    - min
    - max
    - flags
    - style
    argTypes:
    - char**
    - char**
    - size_t*
    - size_t*
    - LDOUBLE
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 818
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 818
    functionName: fmtfp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c
    functionUses: 1
    functionsReached:
    - doapr_outch
    - pow_10
    - roundv
    - abs_val
    linkageType: ''
    returnType: int
    signature: "fmtfp(char **sbuffer,\n      char **buffer,\n      size_t *currlen,\n
      \     size_t *maxlen, LDOUBLE fvalue, int min, int max, int flags, int style)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:827,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:830,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:838,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:842,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:843,1
    - Dst: OPENSSL_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:848,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 5
    argNames:
    - sbuffer
    - buffer
    - currlen
    - maxlen
    - c
    argTypes:
    - char**
    - char**
    - size_t*
    - size_t*
    - int
    constantsTouched: []
    func_position:
      end: 863
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 863
    functionName: doapr_outch
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c
    functionUses: 4
    functionsReached:
    - memcpy
    - OPENSSL_malloc
    - OPENSSL_realloc
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: "doapr_outch(char **sbuffer,\n            char **buffer, size_t *currlen,
      size_t *maxlen, int c)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:872,1
    - Dst: BIO_vprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:874,1
    - Dst: va_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - bio
    - format
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 878
      start: 867
    functionDepth: 1
    functionLinenumber: 867
    functionLinenumberEnd: 878
    functionName: BIO_printf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c
    functionUses: 34
    functionsReached:
    - va_start
    - BIO_vprintf
    - va_end
    linkageType: ''
    returnType: int
    signature: BIO_printf(BIO *bio, const char *format, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _dopr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:893,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:895,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:899,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:900,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:902,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - bio
    - format
    - args
    argTypes:
    - BIO*
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 905
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 905
    functionName: BIO_vprintf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - _dopr
    - BIO_write
    linkageType: ''
    returnType: int
    signature: BIO_vprintf(BIO *bio, const char *format, va_list args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:918,1
    - Dst: BIO_vsnprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:920,1
    - Dst: va_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - n
    - format
    argTypes:
    - char*
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 924
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 924
    functionName: BIO_snprintf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c
    functionUses: 19
    functionsReached:
    - va_start
    - va_end
    - BIO_vsnprintf
    linkageType: ''
    returnType: int
    signature: BIO_snprintf(char *buf, size_t n, const char *format, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _dopr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c:931,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - buf
    - n
    - format
    - args
    argTypes:
    - char*
    - size_t
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 944
      start: 926
    functionDepth: 2
    functionLinenumber: 926
    functionLinenumberEnd: 944
    functionName: BIO_vsnprintf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c
    functionUses: 1
    functionsReached:
    - _dopr
    linkageType: ''
    returnType: int
    signature: BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BCryptGenRandom
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c:49,1
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c:50,1
    - Dst: CryptAcquireContextW
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c:55,1
    - Dst: CryptGenRandom
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c:56,1
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c:57,1
    - Dst: CryptReleaseContext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c:59,1
    - Dst: CryptAcquireContextW
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c:63,1
    - Dst: CryptGenRandom
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c:64,1
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c:65,1
    - Dst: CryptReleaseContext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c:67,1
    - Dst: readtimer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c:72,1
    - Dst: GlobalMemoryStatus
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c:75,1
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c:76,1
    - Dst: GetCurrentProcessId
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c:79,1
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 83
    functionName: RAND_poll
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c
    functionUses: 0
    functionsReached:
    - GetCurrentProcessId
    - readtimer
    - RAND_add
    - BCryptGenRandom
    - CryptAcquireContextW
    - CryptReleaseContext
    - GlobalMemoryStatus
    - CryptGenRandom
    linkageType: ''
    returnType: int
    signature: RAND_poll(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_poll
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c:88,1
    - Dst: RAND_status
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - iMsg
    - wParam
    - lParam
    argTypes:
    - UINT
    - WPARAM
    - LPARAM
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: RAND_event
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c
    functionUses: 0
    functionsReached:
    - RAND_status
    - RAND_poll
    linkageType: ''
    returnType: int
    signature: RAND_event(UINT iMsg, WPARAM wParam, LPARAM lParam)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_poll
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: RAND_screen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c
    functionUses: 0
    functionsReached:
    - RAND_poll
    linkageType: ''
    returnType: void
    signature: RAND_screen(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c:112,1
    - Dst: QueryPerformanceCounter
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c:123,1
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c:126,1
    - Dst: GetTickCount
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c:130,1
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c:131,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 133
    functionName: readtimer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c
    functionUses: 1
    functionsReached:
    - RAND_add
    - QueryPerformanceCounter
    - GetTickCount
    linkageType: ''
    returnType: void
    signature: readtimer(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_err.c:37,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_err.c:38,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_err.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 43
    functionName: ERR_load_RAND_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_RAND_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - path
    - buf
    - bytes
    argTypes:
    - char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: RAND_query_egd_bytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_egd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: RAND_egd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_egd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: RAND_egd(const char *path)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - bytes
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: RAND_egd_bytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_egd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: RAND_egd_bytes(const char *path, int bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_egd.c:101,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_egd.c:103,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_egd.c:105,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_egd.c:106,1
    - Dst: socket
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_egd.c:107,1
    - Dst: connect
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_egd.c:112,1
    - Dst: write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_egd.c:147,1
    - Dst: read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_egd.c:168,1
    - Dst: read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_egd.c:197,1
    - Dst: RAND_seed
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_egd.c:221,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_egd.c:225,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 103
    argCount: 3
    argNames:
    - path
    - buf
    - bytes
    argTypes:
    - char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 227
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 227
    functionName: RAND_query_egd_bytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_egd.c
    functionUses: 0
    functionsReached:
    - write
    - OPENSSL_strlcpy
    - RAND_seed
    - memset
    - connect
    - strlen
    - close
    - socket
    - read
    linkageType: ''
    returnType: int
    signature: RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_query_egd_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_egd.c:233,1
    - Dst: RAND_status
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_egd.c:236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - path
    - bytes
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 240
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 240
    functionName: RAND_egd_bytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_egd.c
    functionUses: 0
    functionsReached:
    - RAND_status
    - RAND_query_egd_bytes
    linkageType: ''
    returnType: int
    signature: RAND_egd_bytes(const char *path, int bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_egd_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_egd.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: RAND_egd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_egd.c
    functionUses: 0
    functionsReached:
    - RAND_egd_bytes
    linkageType: ''
    returnType: int
    signature: RAND_egd(const char *path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sys$getjpiw
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_vms.c:103,1
    - Dst: sys$gettim
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_vms.c:105,1
    - Dst: srand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_vms.c:106,1
    - Dst: rand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_vms.c:113,1
    - Dst: rand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_vms.c:118,1
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_vms.c:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 131
    functionName: RAND_poll
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_vms.c
    functionUses: 2
    functionsReached:
    - sys$getjpiw
    - sys$gettim
    - RAND_add
    - srand
    - rand
    linkageType: ''
    returnType: int
    signature: RAND_poll(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: openssl_fopen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:132,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:143,1
    - Dst: fstat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:144,1
    - Dst: fileno
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:144,1
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:146,1
    - Dst: S_ISBLK
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:149,1
    - Dst: S_ISCHR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:149,1
    - Dst: setbuf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:156,1
    - Dst: fread
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:165,1
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:169,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:177,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:180,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 2
    argNames:
    - file
    - bytes
    argTypes:
    - char*
    - long
    constantsTouched: []
    func_position:
      end: 182
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 182
    functionName: RAND_load_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c
    functionUses: 0
    functionsReached:
    - fstat
    - setbuf
    - openssl_fopen
    - RAND_add
    - fread
    - memset
    - fclose
    - fileno
    - OPENSSL_cleanse
    - S_ISCHR
    - S_ISBLK
    linkageType: ''
    returnType: int
    signature: RAND_load_file(const char *file, long bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:200,1
    - Dst: S_ISBLK
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:202,1
    - Dst: S_ISCHR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:202,1
    - Dst: fdopen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:227,1
    - Dst: openssl_fopen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:250,1
    - Dst: openssl_fopen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:253,1
    - Dst: chmod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:258,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:264,1
    - Dst: fwrite
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:266,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:276,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:277,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 280
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 280
    functionName: RAND_write_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - fdopen
    - openssl_fopen
    - stat
    - fwrite
    - fclose
    - chmod
    - OPENSSL_cleanse
    - S_ISCHR
    - S_ISBLK
    linkageType: ''
    returnType: int
    signature: RAND_write_file(const char *file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetEnvironmentVariableW
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:295,1
    - Dst: GetEnvironmentVariableW
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:297,1
    - Dst: GetEnvironmentVariableW
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:299,1
    - Dst: GetEnvironmentVariableW
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:301,1
    - Dst: _alloca
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:307,1
    - Dst: GetEnvironmentVariableW
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:309,1
    - Dst: WideCharToMultiByte
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:310,1
    - Dst: _alloca
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:312,1
    - Dst: WideCharToMultiByte
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:313,1
    - Dst: OPENSSL_issetugid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:319,1
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:322,1
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:325,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:338,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:340,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:341,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:343,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:345,1
    - Dst: stat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:360,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c:361,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 42
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 366
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 366
    functionName: RAND_file_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c
    functionUses: 0
    functionsReached:
    - WideCharToMultiByte
    - stat
    - _alloca
    - OPENSSL_strlcpy
    - OPENSSL_issetugid
    - getenv
    - strlen
    - OPENSSL_strlcat
    - GetEnvironmentVariableW
    linkageType: ''
    returnType: char
    signature: '*RAND_file_name(char *buf, size_t size)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RAND_METHOD*
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: RAND_set_rand_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - ENGINE_finish
    linkageType: ''
    returnType: int
    signature: RAND_set_rand_method(const RAND_METHOD *meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_default_RAND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c:43,1
    - Dst: ENGINE_get_RAND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c:45,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c:47,1
    - Dst: RAND_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 58
    functionName: RAND_get_rand_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_default_RAND
    - ENGINE_get_RAND
    - ENGINE_finish
    - RAND_OpenSSL
    linkageType: ''
    returnType: RAND_METHOD
    signature: '*RAND_get_rand_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c:65,1
    - Dst: ENGINE_get_RAND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c:67,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c:69,1
    - Dst: RAND_set_rand_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - engine
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 77
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 77
    functionName: RAND_set_rand_engine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_RAND
    - RAND_set_rand_method
    - ENGINE_init
    - ENGINE_finish
    linkageType: ''
    returnType: int
    signature: RAND_set_rand_engine(ENGINE *engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get_rand_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c:82,1
    - Dst: RAND_METHOD*::cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c:84,1
    - Dst: RAND_set_rand_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: rand_cleanup_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c
    functionUses: 1
    functionsReached:
    - RAND_get_rand_method
    - RAND_set_rand_method
    - RAND_METHOD*::cleanup
    linkageType: ''
    returnType: void
    signature: rand_cleanup_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get_rand_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c:90,1
    - Dst: RAND_METHOD*::seed
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: RAND_seed
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c
    functionUses: 6
    functionsReached:
    - RAND_get_rand_method
    - RAND_METHOD*::seed
    linkageType: ''
    returnType: void
    signature: RAND_seed(const void *buf, int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get_rand_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c:97,1
    - Dst: RAND_METHOD*::add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - buf
    - num
    - entropy
    argTypes:
    - void*
    - int
    - double
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: RAND_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c
    functionUses: 7
    functionsReached:
    - RAND_get_rand_method
    - RAND_METHOD*::add
    linkageType: ''
    returnType: void
    signature: RAND_add(const void *buf, int num, double entropy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get_rand_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c:104,1
    - Dst: RAND_METHOD*::bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: RAND_bytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c
    functionUses: 33
    functionsReached:
    - RAND_get_rand_method
    - RAND_METHOD*::bytes
    linkageType: ''
    returnType: int
    signature: RAND_bytes(unsigned char *buf, int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get_rand_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c:113,1
    - Dst: RAND_METHOD*::pseudorand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: RAND_pseudo_bytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - RAND_get_rand_method
    - RAND_METHOD*::pseudorand
    linkageType: ''
    returnType: int
    signature: RAND_pseudo_bytes(unsigned char *buf, int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get_rand_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c:122,1
    - Dst: RAND_METHOD*::status
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: RAND_status
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c
    functionUses: 2
    functionsReached:
    - RAND_get_rand_method
    - RAND_METHOD*::status
    linkageType: ''
    returnType: int
    signature: RAND_status(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:92,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:93,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_init_crypto
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(do_rand_lock_init)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: RAND_OpenSSL
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: RAND_METHOD
    signature: '*RAND_OpenSSL(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:105,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:108,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:113,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 115
    functionName: rand_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: rand_cleanup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:144,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:148,1
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:153,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:154,1
    - Dst: CRYPTO_THREAD_compare_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:155,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:156,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:161,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:172,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:193,1
    - Dst: MD_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:199,1
    - Dst: MD_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:201,1
    - Dst: MD_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:205,1
    - Dst: MD_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:207,1
    - Dst: MD_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:209,1
    - Dst: MD_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:213,1
    - Dst: MD_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:223,1
    - Dst: MD_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:225,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:247,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:260,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:264,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 86
    argCount: 3
    argNames:
    - buf
    - num
    - add
    argTypes:
    - void*
    - int
    - double
    constantsTouched: []
    func_position:
      end: 266
      start: 117
    functionDepth: 4
    functionLinenumber: 117
    functionLinenumberEnd: 266
    functionName: rand_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c
    functionUses: 0
    functionsReached:
    - MD_Init
    - CRYPTO_THREAD_get_current_id
    - CRYPTO_THREAD_compare_id
    - RUN_ONCE
    - MD_Final
    - CRYPTO_THREAD_write_lock
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - CRYPTO_THREAD_unlock
    - memcpy
    - MD_Update
    - CRYPTO_THREAD_read_lock
    linkageType: ''
    returnType: int
    signature: rand_add(const void *buf, int num, double add)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 271
      start: 268
    functionDepth: 5
    functionLinenumber: 268
    functionLinenumberEnd: 271
    functionName: rand_seed
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c
    functionUses: 0
    functionsReached:
    - rand_add
    linkageType: ''
    returnType: int
    signature: rand_seed(const void *buf, int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:283,1
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:285,1
    - Dst: GetSystemTime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:292,1
    - Dst: SystemTimeToFileTime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:293,1
    - Dst: GetSystemTimeAsFileTime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:295,1
    - Dst: clock_gettime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:299,1
    - Dst: OPENSSL_rdtsc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:302,1
    - Dst: gettimeofday
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:305,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:321,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:347,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:350,1
    - Dst: ASYNC_block_pause
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:355,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:358,1
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:359,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:360,1
    - Dst: RAND_poll
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:364,1
    - Dst: rand_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:408,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:419,1
    - Dst: ASYNC_unblock_pause
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:434,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:435,1
    - Dst: MD_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:441,1
    - Dst: MD_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:445,1
    - Dst: MD_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:451,1
    - Dst: MD_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:453,1
    - Dst: rand_hw_seed
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:456,1
    - Dst: MD_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:459,1
    - Dst: MD_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:461,1
    - Dst: MD_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:466,1
    - Dst: MD_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:468,1
    - Dst: MD_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:470,1
    - Dst: MD_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:472,1
    - Dst: MD_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:485,1
    - Dst: MD_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:486,1
    - Dst: MD_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:487,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:489,1
    - Dst: ASYNC_block_pause
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:493,1
    - Dst: MD_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:494,1
    - Dst: MD_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:494,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:495,1
    - Dst: ASYNC_unblock_pause
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:498,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:499,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:501,1
    - Dst: RANDerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:507,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:508,1
    - Dst: RANDerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:513,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:514,1
    - Dst: RANDerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:517,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:518,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 144
    argCount: 3
    argNames:
    - buf
    - num
    - pseudo
    argTypes:
    - unsigned char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 521
      start: 273
    functionDepth: 5
    functionLinenumber: 273
    functionLinenumberEnd: 521
    functionName: rand_bytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c
    functionUses: 0
    functionsReached:
    - RUN_ONCE
    - RANDerr
    - EVP_MD_CTX_free
    - ASYNC_unblock_pause
    - SystemTimeToFileTime
    - clock_gettime
    - MD_Update
    - ASYNC_block_pause
    - time
    - GetSystemTime
    - MD_Init
    - CRYPTO_THREAD_get_current_id
    - RAND_poll
    - rand_hw_seed
    - gettimeofday
    - OPENSSL_rdtsc
    - ERR_add_error_data
    - getpid
    - rand_add
    - MD_Final
    - CRYPTO_THREAD_write_lock
    - GetSystemTimeAsFileTime
    - EVP_MD_CTX_new
    - CRYPTO_THREAD_unlock
    - memcpy
    linkageType: ''
    returnType: int
    signature: rand_bytes(unsigned char *buf, int num, int pseudo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 526
      start: 523
    functionDepth: 6
    functionLinenumber: 523
    functionLinenumberEnd: 526
    functionName: rand_nopseudo_bytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c
    functionUses: 0
    functionsReached:
    - rand_bytes
    linkageType: ''
    returnType: int
    signature: rand_nopseudo_bytes(unsigned char *buf, int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 535
      start: 532
    functionDepth: 6
    functionLinenumber: 532
    functionLinenumberEnd: 535
    functionName: rand_pseudo_bytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c
    functionUses: 0
    functionsReached:
    - rand_bytes
    linkageType: ''
    returnType: int
    signature: rand_pseudo_bytes(unsigned char *buf, int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:544,1
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:547,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:553,1
    - Dst: CRYPTO_THREAD_compare_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:554,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:555,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:560,1
    - Dst: ASYNC_block_pause
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:564,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:569,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:571,1
    - Dst: RAND_poll
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:576,1
    - Dst: ASYNC_unblock_pause
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:586,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:587,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 591
      start: 538
    functionDepth: 4
    functionLinenumber: 538
    functionLinenumberEnd: 591
    functionName: rand_status
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_get_current_id
    - CRYPTO_THREAD_compare_id
    - RUN_ONCE
    - RAND_poll
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    - ASYNC_unblock_pause
    - ASYNC_block_pause
    - CRYPTO_THREAD_read_lock
    linkageType: ''
    returnType: int
    signature: rand_status(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_ia32_rdrand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:617,1
    - Dst: MD_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:620,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 624
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 624
    functionName: rand_hw_seed
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c
    functionUses: 1
    functionsReached:
    - OPENSSL_ia32_rdrand
    - MD_Update
    linkageType: ''
    returnType: int
    signature: rand_hw_seed(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_ia32_rdrand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:634,1
    - Dst: OPENSSL_ia32_rdrand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c:642,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 652
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 652
    functionName: rand_hw_xor
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c
    functionUses: 0
    functionsReached:
    - OPENSSL_ia32_rdrand
    linkageType: ''
    returnType: void
    signature: rand_hw_xor(unsigned char *buf, size_t num)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 659
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 659
    functionName: rand_hw_seed
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: rand_hw_seed(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 664
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 664
    functionName: rand_hw_xor
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: rand_hw_xor(unsigned char *buf, size_t num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getgid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:82,1
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:83,1
    - Dst: getpid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:86,1
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:87,1
    - Dst: getuid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:90,1
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:91,1
    - Dst: random
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:100,1
    - Dst: s$sleep
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:105,1
    - Dst: s$sleep2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:110,1
    - Dst: clock_gettime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:115,1
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 123
    functionName: RAND_poll
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c
    functionUses: 4
    functionsReached:
    - getpid
    - s$sleep
    - clock_gettime
    - RAND_add
    - getuid
    - getgid
    - random
    - s$sleep2
    linkageType: ''
    returnType: int
    signature: RAND_poll(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arc4random
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:132,1
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:136,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 140
    functionName: RAND_poll
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c
    functionUses: 4
    functionsReached:
    - RAND_add
    - arc4random
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: RAND_poll(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:145,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:152,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:162,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:169,1
    - Dst: open
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:170,1
    - Dst: fstat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:191,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:192,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:201,1
    - Dst: poll
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:216,1
    - Dst: FD_ZERO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:235,1
    - Dst: FD_SET
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:236,1
    - Dst: select
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:238,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:240,1
    - Dst: read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:248,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:268,1
    - Dst: RAND_query_egd_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:283,1
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:292,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:293,1
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:299,1
    - Dst: getuid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:300,1
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:301,1
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:303,1
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c:304,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 311
    functionName: RAND_poll
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c
    functionUses: 4
    functionsReached:
    - getpid
    - fstat
    - open
    - RAND_add
    - FD_ZERO
    - FD_SET
    - getuid
    - poll
    - memset
    - FD_ISSET
    - close
    - OPENSSL_cleanse
    - OSSL_NELEM
    - RAND_query_egd_bytes
    - read
    - time
    - select
    linkageType: ''
    returnType: int
    signature: RAND_poll(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: RAND_poll
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: RAND_poll(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: pkey_tls1_prf_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: pkey_tls1_prf_init(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:51,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:52,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: pkey_tls1_prf_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    - OPENSSL_free
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: pkey_tls1_prf_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:68,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:69,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:71,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:82,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 90
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 90
    functionName: pkey_tls1_prf_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    - memcpy
    - OPENSSL_cleanse
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: pkey_tls1_prf_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KDFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:96,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:99,1
    - Dst: EVP_get_digestbyname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:102,1
    - Dst: KDFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:104,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:110,1
    - Dst: EVP_PKEY_CTX_str2ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:111,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:112,1
    - Dst: EVP_PKEY_CTX_hex2ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:113,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:114,1
    - Dst: EVP_PKEY_CTX_str2ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:115,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:116,1
    - Dst: EVP_PKEY_CTX_hex2ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 119
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 119
    functionName: pkey_tls1_prf_ctrl_str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_str2ctrl
    - EVP_PKEY_CTX_hex2ctrl
    - strcmp
    - KDFerr
    - EVP_get_digestbyname
    linkageType: ''
    returnType: int
    signature: "pkey_tls1_prf_ctrl_str(EVP_PKEY_CTX *ctx,\n                                  const
      char *type, const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KDFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:126,1
    - Dst: tls1_prf_alg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: pkey_tls1_prf_derive
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c
    functionUses: 0
    functionsReached:
    - KDFerr
    - tls1_prf_alg
    linkageType: ''
    returnType: int
    signature: "pkey_tls1_prf_derive(EVP_PKEY_CTX *ctx, unsigned char *key,\n                                size_t
      *keylen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:176,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:177,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:179,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:180,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:181,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:184,1
    - Dst: EVP_PKEY_new_mac_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:185,1
    - Dst: EVP_DigestSignInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:188,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:190,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:192,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:194,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:199,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:201,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:203,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:205,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:210,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:215,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:219,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:221,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:227,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:228,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:229,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:230,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:231,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 65
    argCount: 7
    argNames:
    - md
    - sec
    - sec_len
    - seed
    - seed_len
    - out
    - olen
    argTypes:
    - EVP_MD*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 233
      start: 164
    functionDepth: 4
    functionLinenumber: 164
    functionLinenumberEnd: 233
    functionName: tls1_prf_P_hash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_copy_ex
    - EVP_DigestSignInit
    - OPENSSL_assert
    - EVP_MD_size
    - EVP_DigestSignUpdate
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - EVP_MD_CTX_set_flags
    - EVP_DigestSignFinal
    - memcpy
    - EVP_PKEY_new_mac_key
    - OPENSSL_cleanse
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: "tls1_prf_P_hash(const EVP_MD *md,\n                           const
      unsigned char *sec, size_t sec_len,\n                           const unsigned
      char *seed, size_t seed_len,\n                           unsigned char *out,
      size_t olen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:241,1
    - Dst: tls1_prf_P_hash
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:244,1
    - Dst: EVP_md5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:244,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:248,1
    - Dst: tls1_prf_P_hash
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:251,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:251,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:253,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:258,1
    - Dst: tls1_prf_P_hash
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c:261,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 7
    argNames:
    - md
    - sec
    - slen
    - seed
    - seed_len
    - out
    - olen
    argTypes:
    - EVP_MD*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 265
      start: 235
    functionDepth: 5
    functionLinenumber: 235
    functionLinenumberEnd: 265
    functionName: tls1_prf_alg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c
    functionUses: 1
    functionsReached:
    - EVP_sha1
    - tls1_prf_P_hash
    - EVP_MD_type
    - OPENSSL_clear_free
    - OPENSSL_malloc
    - EVP_md5
    linkageType: ''
    returnType: int
    signature: "tls1_prf_alg(const EVP_MD *md,\n                        const unsigned
      char *sec, size_t slen,\n                        const unsigned char *seed,
      size_t seed_len,\n                        unsigned char *out, size_t olen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/kdf_err.c:40,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/kdf_err.c:41,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/kdf_err.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: ERR_load_KDF_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/kdf_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_KDF_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 57
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 57
    functionName: pkey_hkdf_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: pkey_hkdf_init(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:62,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:63,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:64,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: pkey_hkdf_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    - OPENSSL_free
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: pkey_hkdf_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:88,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:90,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:102,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:104,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:118,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 126
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 126
    functionName: pkey_hkdf_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    - memcpy
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: pkey_hkdf_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:131,1
    - Dst: EVP_PKEY_CTX_set_hkdf_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:132,1
    - Dst: EVP_get_digestbyname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:132,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:134,1
    - Dst: EVP_PKEY_CTX_str2ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:135,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:137,1
    - Dst: EVP_PKEY_CTX_hex2ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:138,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:140,1
    - Dst: EVP_PKEY_CTX_str2ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:141,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:143,1
    - Dst: EVP_PKEY_CTX_hex2ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:144,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:146,1
    - Dst: EVP_PKEY_CTX_str2ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:147,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:149,1
    - Dst: EVP_PKEY_CTX_hex2ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:150,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 153
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 153
    functionName: pkey_hkdf_ctrl_str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_str2ctrl
    - EVP_PKEY_CTX_set_hkdf_md
    - EVP_PKEY_CTX_hex2ctrl
    - strcmp
    - EVP_get_digestbyname
    linkageType: ''
    returnType: int
    signature: "pkey_hkdf_ctrl_str(EVP_PKEY_CTX *ctx, const char *type,\n                              const
      char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HKDF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    constantsTouched: []
    func_position:
      end: 170
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 170
    functionName: pkey_hkdf_derive
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c
    functionUses: 0
    functionsReached:
    - HKDF
    linkageType: ''
    returnType: int
    signature: "pkey_hkdf_derive(EVP_PKEY_CTX *ctx, unsigned char *key,\n                            size_t
      *keylen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HKDF_Extract
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:211,1
    - Dst: HKDF_Expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 9
    argNames:
    - evp_md
    - salt
    - salt_len
    - key
    - key_len
    - info
    - info_len
    - okm
    - okm_len
    argTypes:
    - EVP_MD*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 215
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 215
    functionName: HKDF
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c
    functionUses: 1
    functionsReached:
    - HKDF_Extract
    - HKDF_Expand
    linkageType: ''
    returnType: unsigned char
    signature: "*HKDF(const EVP_MD *evp_md,\n                           const unsigned
      char *salt, size_t salt_len,\n                           const unsigned char
      *key, size_t key_len,\n                           const unsigned char *info,
      size_t info_len,\n                           unsigned char *okm, size_t okm_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HMAC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - evp_md
    - salt
    - salt_len
    - key
    - key_len
    - prk
    - prk_len
    argTypes:
    - EVP_MD*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t*
    constantsTouched: []
    func_position:
      end: 229
      start: 217
    functionDepth: 6
    functionLinenumber: 217
    functionLinenumberEnd: 229
    functionName: HKDF_Extract
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c
    functionUses: 1
    functionsReached:
    - HMAC
    linkageType: ''
    returnType: unsigned char
    signature: "*HKDF_Extract(const EVP_MD *evp_md,\n                                   const
      unsigned char *salt, size_t salt_len,\n                                   const
      unsigned char *key, size_t key_len,\n                                   unsigned
      char *prk, size_t *prk_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:251,1
    - Dst: HMAC_Init_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:254,1
    - Dst: HMAC_Init_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:262,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:265,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:269,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:272,1
    - Dst: HMAC_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:275,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:282,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:287,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c:291,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 7
    argNames:
    - evp_md
    - prk
    - prk_len
    - info
    - info_len
    - okm
    - okm_len
    argTypes:
    - EVP_MD*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 293
      start: 231
    functionDepth: 5
    functionLinenumber: 231
    functionLinenumberEnd: 293
    functionName: HKDF_Expand
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c
    functionUses: 1
    functionsReached:
    - HMAC_Update
    - HMAC_CTX_new
    - HMAC_Final
    - memcpy
    - HMAC_Init_ex
    - HMAC_CTX_free
    linkageType: ''
    returnType: unsigned char
    signature: "*HKDF_Expand(const EVP_MD *evp_md,\n                                  const
      unsigned char *prk, size_t prk_len,\n                                  const
      unsigned char *info, size_t info_len,\n                                  unsigned
      char *okm, size_t okm_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_scn.c:27,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_scn.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: ASN1_SCTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_scn.c
    functionUses: 0
    functionsReached:
    - ASN1err
    - OPENSSL_zalloc
    linkageType: ''
    returnType: ASN1_SCTX
    signature: '*ASN1_SCTX_new(int (*scan_cb) (ASN1_SCTX *ctx))'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_scn.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_SCTX*
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: ASN1_SCTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_scn.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: ASN1_SCTX_free(ASN1_SCTX *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_SCTX*
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: ASN1_SCTX_get_item
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_scn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_ITEM
    signature: '*ASN1_SCTX_get_item(ASN1_SCTX *p)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_SCTX*
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: ASN1_SCTX_get_template
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_scn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TEMPLATE
    signature: '*ASN1_SCTX_get_template(ASN1_SCTX *p)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_SCTX*
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: ASN1_SCTX_get_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_scn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: ASN1_SCTX_get_flags(ASN1_SCTX *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - data
    argTypes:
    - ASN1_SCTX*
    - void*
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: ASN1_SCTX_set_app_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_scn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ASN1_SCTX_set_app_data(ASN1_SCTX *p, void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_SCTX*
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: ASN1_SCTX_get_app_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_scn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*ASN1_SCTX_get_app_data(ASN1_SCTX *p)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c:60,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c:63,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c:64,1
    - Dst: BIO_f_asn1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c:64,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c:69,1
    - Dst: BIO_asn1_set_prefix
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c:73,1
    - Dst: BIO_asn1_set_suffix
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c:74,1
    - Dst: ASN1_AUX*::asn1_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c:85,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c:94,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c:99,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c:100,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - out
    - val
    - it
    argTypes:
    - BIO*
    - ASN1_VALUE*
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 102
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 102
    functionName: BIO_new_NDEF
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c
    functionUses: 1
    functionsReached:
    - BIO_push
    - BIO_asn1_set_prefix
    - ASN1_AUX*::asn1_cb
    - BIO_ctrl
    - BIO_f_asn1
    - BIO_free
    - OPENSSL_free
    - OPENSSL_zalloc
    - BIO_new
    - ASN1err
    - BIO_asn1_set_suffix
    linkageType: ''
    returnType: BIO
    signature: '*BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_ndef_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c:115,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c:116,1
    - Dst: ASN1_item_ndef_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - b
    - pbuf
    - plen
    - parg
    argTypes:
    - BIO*
    - unsigned char**
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 130
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 130
    functionName: ndef_prefix
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ASN1_item_ndef_i2d
    linkageType: ''
    returnType: int
    signature: ndef_prefix(BIO *b, unsigned char **pbuf, int *plen, void *parg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - b
    - pbuf
    - plen
    - parg
    argTypes:
    - BIO*
    - unsigned char**
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 148
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 148
    functionName: ndef_prefix_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: "ndef_prefix_free(BIO *b, unsigned char **pbuf, int *plen,\n                            void
      *parg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndef_prefix_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c:154,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - b
    - pbuf
    - plen
    - parg
    argTypes:
    - BIO*
    - unsigned char**
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: ndef_suffix_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ndef_prefix_free
    linkageType: ''
    returnType: int
    signature: "ndef_suffix_free(BIO *b, unsigned char **pbuf, int *plen,\n                            void
      *parg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_AUX*::asn1_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c:180,1
    - Dst: ASN1_item_ndef_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c:184,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c:185,1
    - Dst: ASN1_item_ndef_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - b
    - pbuf
    - plen
    - parg
    argTypes:
    - BIO*
    - unsigned char**
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 199
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 199
    functionName: ndef_suffix
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c
    functionUses: 0
    functionsReached:
    - ASN1_AUX*::asn1_cb
    - OPENSSL_malloc
    - ASN1_item_ndef_i2d
    linkageType: ''
    returnType: int
    signature: ndef_suffix(BIO *b, unsigned char **pbuf, int *plen, void *parg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_pkey.c:20,1
    - Dst: X509_ALGOR_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_pkey.c:24,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_pkey.c:25,1
    - Dst: X509_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_pkey.c:31,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_pkey.c:32,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 34
    functionName: X509_PKEY_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_pkey.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_new
    - X509_ALGOR_new
    - OPENSSL_zalloc
    - X509_PKEY_free
    - ASN1err
    linkageType: ''
    returnType: X509_PKEY
    signature: '*X509_PKEY_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_pkey.c:41,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_pkey.c:42,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_pkey.c:43,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_pkey.c:45,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_pkey.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_PKEY*
    constantsTouched: []
    func_position:
      end: 47
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 47
    functionName: X509_PKEY_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_pkey.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - X509_ALGOR_free
    - EVP_PKEY_free
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: void
    signature: X509_PKEY_free(X509_PKEY *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_digest.c:32,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_digest.c:33,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_digest.c:34,1
    - Dst: i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_digest.c:38,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_digest.c:40,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_digest.c:41,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_digest.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - i2d
    - type
    - data
    - md
    - len
    argTypes:
    - i2d_of_void*
    - EVP_MD*
    - char*
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 46
      start: 26
    functionDepth: 5
    functionLinenumber: 26
    functionLinenumberEnd: 46
    functionName: ASN1_digest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_digest.c
    functionUses: 0
    functionsReached:
    - EVP_Digest
    - i2d
    - OPENSSL_free
    - OPENSSL_malloc
    - ASN1err
    linkageType: ''
    returnType: int
    signature: "ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data,\n                unsigned
      char *md, unsigned int *len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_digest.c:56,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_digest.c:60,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_digest.c:61,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_digest.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - it
    - type
    - asn
    - md
    - len
    argTypes:
    - ASN1_ITEM*
    - EVP_MD*
    - void*
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 66
      start: 50
    functionDepth: 5
    functionLinenumber: 50
    functionLinenumberEnd: 66
    functionName: ASN1_item_digest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_digest.c
    functionUses: 6
    functionsReached:
    - ASN1_item_i2d
    - OPENSSL_free
    - EVP_Digest
    linkageType: ''
    returnType: int
    signature: "ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *asn,\n
      \                    unsigned char *md, unsigned int *len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: asn1_get_choice_selector
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: asn1_get_choice_selector(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: offset2ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pval
    - value
    - it
    argTypes:
    - ASN1_VALUE**
    - int
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: asn1_set_choice_selector
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - offset2ptr
    linkageType: ''
    returnType: int
    signature: "asn1_set_choice_selector(ASN1_VALUE **pval, int value,\n                             const
      ASN1_ITEM *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: offset2ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:68,1
    - Dst: offset2ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:69,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:72,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:74,1
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:79,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:82,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:84,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:86,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - pval
    - op
    - it
    argTypes:
    - ASN1_VALUE**
    - int
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 90
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 90
    functionName: asn1_do_lock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - CRYPTO_THREAD_lock_new
    - offset2ptr
    - CRYPTO_atomic_add
    - fprintf
    - REF_ASSERT_ISNT
    - ASN1err
    linkageType: ''
    returnType: int
    signature: asn1_do_lock(ASN1_VALUE **pval, int op, const ASN1_ITEM *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: offset2ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: asn1_get_enc_ptr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - offset2ptr
    linkageType: ''
    returnType: ASN1_ENCODING
    signature: '*asn1_get_enc_ptr(ASN1_VALUE **pval, const ASN1_ITEM *it)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_get_enc_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: asn1_enc_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - asn1_get_enc_ptr
    linkageType: ''
    returnType: void
    signature: asn1_enc_init(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_get_enc_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:117,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 124
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 124
    functionName: asn1_enc_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - asn1_get_enc_ptr
    linkageType: ''
    returnType: void
    signature: asn1_enc_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_get_enc_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:130,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:134,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:135,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - pval
    - in
    - inlen
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 143
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 143
    functionName: asn1_enc_save
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - memcpy
    - asn1_get_enc_ptr
    linkageType: ''
    returnType: int
    signature: "asn1_enc_save(ASN1_VALUE **pval, const unsigned char *in, int inlen,\n
      \                 const ASN1_ITEM *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_get_enc_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:149,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - len
    - out
    - pval
    - it
    argTypes:
    - int*
    - unsigned char**
    - ASN1_VALUE**
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 159
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 159
    functionName: asn1_enc_restore
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - memcpy
    - asn1_get_enc_ptr
    linkageType: ''
    returnType: int
    signature: "asn1_enc_restore(int *len, unsigned char **out, ASN1_VALUE **pval,\n
      \                    const ASN1_ITEM *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: offset2ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: asn1_get_field_ptr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - offset2ptr
    linkageType: ''
    returnType: ASN1_VALUE
    signature: '**asn1_get_field_ptr(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ADB_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:190,1
    - Dst: offset2ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:193,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:207,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:209,1
    - Dst: ASN1_ADB*::adb_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:212,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:213,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c:238,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - pval
    - tt
    - nullerr
    argTypes:
    - ASN1_VALUE**
    - ASN1_TEMPLATE*
    - int
    constantsTouched: []
    func_position:
      end: 240
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 240
    functionName: asn1_do_adb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - ASN1_ADB_ptr
    - offset2ptr
    - ASN1_INTEGER_get
    - ASN1_ADB*::adb_cb
    - ASN1err
    linkageType: ''
    returnType: ASN1_TEMPLATE
    signature: "*asn1_do_adb(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt,\n                                 int
      nullerr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:33,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:39,1
    - Dst: ASN1_TYPE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:54,1
    - Dst: ASN1_TYPE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:58,1
    - Dst: ASN1_TYPE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:59,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:63,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:64,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:66,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:70,1
    - Dst: i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:75,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:76,1
    - Dst: EVP_PKEY_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:77,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:78,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:81,1
    - Dst: i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:86,1
    - Dst: EVP_SignInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:87,1
    - Dst: EVP_SignUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:88,1
    - Dst: EVP_SignFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:89,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:92,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:95,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:106,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:107,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:108,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 66
    argCount: 7
    argNames:
    - i2d
    - algor1
    - algor2
    - signature
    - data
    - pkey
    - type
    argTypes:
    - i2d_of_void*
    - X509_ALGOR*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    - char*
    - EVP_PKEY*
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 110
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 110
    functionName: ASN1_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_size
    - OBJ_nid2obj
    - EVP_MD_CTX_new
    - ASN1_TYPE_new
    - ASN1_OBJECT_free
    - i2d
    - EVP_MD_CTX_free
    - ASN1_TYPE_free
    - EVP_SignUpdate
    - EVP_SignFinal
    - OPENSSL_clear_free
    - OPENSSL_free
    - OPENSSL_malloc
    - ASN1err
    - EVP_SignInit_ex
    linkageType: ''
    returnType: int
    signature: "ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, X509_ALGOR *algor2,\n
      \             ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey,\n              const
      EVP_MD *type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:119,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:122,1
    - Dst: EVP_DigestSignInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:125,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:126,1
    - Dst: ASN1_item_sign_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:130,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 7
    argNames:
    - it
    - algor1
    - algor2
    - signature
    - asn
    - pkey
    - type
    argTypes:
    - ASN1_ITEM*
    - X509_ALGOR*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    - void*
    - EVP_PKEY*
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 134
      start: 114
    functionDepth: 4
    functionLinenumber: 114
    functionLinenumberEnd: 134
    functionName: ASN1_item_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c
    functionUses: 4
    functionsReached:
    - EVP_DigestSignInit
    - ASN1_item_sign_ctx
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - ASN1err
    linkageType: ''
    returnType: int
    signature: "ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1,\n                   X509_ALGOR
      *algor2, ASN1_BIT_STRING *signature, void *asn,\n                   EVP_PKEY
      *pkey, const EVP_MD *type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:147,1
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:148,1
    - Dst: EVP_MD_CTX_pkey_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:148,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:151,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:156,1
    - Dst: EVP_PKEY*::ameth::item_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:161,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:172,1
    - Dst: OBJ_find_sigid_by_algs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:179,1
    - Dst: EVP_MD_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:180,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:182,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:193,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:193,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:195,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:195,1
    - Dst: ASN1_item_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:199,1
    - Dst: EVP_PKEY_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:200,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:201,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:204,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:208,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:209,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:211,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:214,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:225,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c:226,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 64
    argCount: 6
    argNames:
    - it
    - algor1
    - algor2
    - signature
    - asn
    - ctx
    argTypes:
    - ASN1_ITEM*
    - X509_ALGOR*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    - void*
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 228
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 228
    functionName: ASN1_item_sign_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c
    functionUses: 4
    functionsReached:
    - EVP_PKEY_CTX_get0_pkey
    - ASN1_item_i2d
    - OBJ_find_sigid_by_algs
    - EVP_PKEY_size
    - OPENSSL_malloc
    - X509_ALGOR_set0
    - OBJ_nid2obj
    - EVP_DigestSignUpdate
    - EVP_MD_CTX_md
    - EVP_DigestSignFinal
    - EVP_MD_nid
    - OPENSSL_clear_free
    - OPENSSL_free
    - EVP_PKEY*::ameth::item_sign
    - ASN1err
    - EVP_MD_CTX_pkey_ctx
    linkageType: ''
    returnType: int
    signature: "ASN1_item_sign_ctx(const ASN1_ITEM *it,\n                       X509_ALGOR
      *algor1, X509_ALGOR *algor2,\n                       ASN1_BIT_STRING *signature,
      void *asn, EVP_MD_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PBEPARAM_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c:34,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c:36,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c:41,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c:42,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c:48,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c:50,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c:54,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c:55,1
    - Dst: ASN1_STRING_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c:58,1
    - Dst: ASN1_item_pack
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c:61,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c:61,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c:62,1
    - Dst: PBEPARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c:66,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c:69,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c:69,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c:73,1
    - Dst: PBEPARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c:74,1
    - Dst: ASN1_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c:75,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 5
    argNames:
    - algor
    - alg
    - iter
    - salt
    - saltlen
    argTypes:
    - X509_ALGOR*
    - int
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 77
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 77
    functionName: PKCS5_pbe_set0_algor
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - ASN1_STRING_set0
    - ASN1_item_pack
    - ASN1_STRING_free
    - X509_ALGOR_set0
    - ASN1_INTEGER_set
    - OBJ_nid2obj
    - PBEPARAM_new
    - ASN1_ITEM_rptr
    - PBEPARAM_free
    - memcpy
    - OPENSSL_free
    - OPENSSL_malloc
    - ASN1err
    linkageType: ''
    returnType: int
    signature: "PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter,\n                         const
      unsigned char *salt, int saltlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c:85,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c:87,1
    - Dst: PKCS5_pbe_set0_algor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c:91,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - alg
    - iter
    - salt
    - saltlen
    argTypes:
    - int
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 96
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 96
    functionName: PKCS5_pbe_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c
    functionUses: 2
    functionsReached:
    - X509_ALGOR_new
    - PKCS5_pbe_set0_algor
    - ASN1err
    - X509_ALGOR_free
    linkageType: ''
    returnType: X509_ALGOR
    signature: "*PKCS5_pbe_set(int alg, int iter,\n                          const
      unsigned char *salt, int saltlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_object_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:28,1
    - Dst: ASN1_put_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:33,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:34,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - ASN1_OBJECT*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 39
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 39
    functionName: i2d_ASN1_OBJECT
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c
    functionUses: 0
    functionsReached:
    - ASN1_put_object
    - memcpy
    - ASN1_object_size
    linkageType: ''
    returnType: int
    signature: i2d_ASN1_OBJECT(const ASN1_OBJECT *a, unsigned char **pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:53,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:61,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:66,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:75,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:88,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:94,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:95,1
    - Dst: BN_mul_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:99,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:100,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:107,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:112,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:120,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:124,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:126,1
    - Dst: BN_div_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:131,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:148,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:158,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:159,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:163,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:164,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 121
    argCount: 4
    argNames:
    - out
    - olen
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 166
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 166
    functionName: a2d_ASN1_OBJECT
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_mul_word
    - BN_add_word
    - BN_free
    - strlen
    - BN_set_word
    - BN_num_bits
    - BN_div_word
    - OPENSSL_free
    - OPENSSL_malloc
    - ASN1err
    linkageType: ''
    returnType: int
    signature: a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int
      num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2txt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - buf_len
    - a
    argTypes:
    - char*
    - int
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: i2t_ASN1_OBJECT
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c
    functionUses: 3
    functionsReached:
    - OBJ_obj2txt
    linkageType: ''
    returnType: int
    signature: i2t_ASN1_OBJECT(char *buf, int buf_len, const ASN1_OBJECT *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:179,1
    - Dst: i2t_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:180,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:182,1
    - Dst: i2t_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:185,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:188,1
    - Dst: BIO_dump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:189,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:192,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:194,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 196
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 196
    functionName: i2a_ASN1_OBJECT
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c
    functionUses: 7
    functionsReached:
    - i2t_ASN1_OBJECT
    - BIO_dump
    - OPENSSL_free
    - BIO_write
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: i2a_ASN1_OBJECT(BIO *bp, const ASN1_OBJECT *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_get_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:207,1
    - Dst: c2i_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:217,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:222,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - ASN1_OBJECT**
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 224
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 224
    functionName: d2i_ASN1_OBJECT
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c
    functionUses: 0
    functionsReached:
    - c2i_ASN1_OBJECT
    - ASN1_get_object
    - ASN1err
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: "*d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp,\n                             long
      length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:241,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:254,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:261,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:263,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:271,1
    - Dst: ASN1_OBJECT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:282,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:294,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:295,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:302,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:316,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:318,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 61
    argCount: 3
    argNames:
    - a
    - pp
    - len
    argTypes:
    - ASN1_OBJECT**
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 320
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 320
    functionName: c2i_ASN1_OBJECT
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c
    functionUses: 2
    functionsReached:
    - ASN1_OBJECT_new
    - OBJ_obj2nid
    - OBJ_nid2obj
    - ASN1_OBJECT_free
    - memcpy
    - OPENSSL_free
    - OPENSSL_malloc
    - ASN1err
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: "*c2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp,\n                             long
      len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:326,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 333
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 333
    functionName: ASN1_OBJECT_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c
    functionUses: 1
    functionsReached:
    - ASN1err
    - OPENSSL_zalloc
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: '*ASN1_OBJECT_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:343,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:344,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:349,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:354,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - a
    argTypes:
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 355
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 355
    functionName: ASN1_OBJECT_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c
    functionUses: 23
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: ASN1_OBJECT_free(ASN1_OBJECT *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - nid
    - data
    - len
    - sn
    - ln
    argTypes:
    - int
    - unsigned char*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 370
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 370
    functionName: ASN1_OBJECT_create
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c
    functionUses: 0
    functionsReached:
    - OBJ_dup
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: "*ASN1_OBJECT_create(int nid, unsigned char *data, int len,\n                                const
      char *sn, const char *ln)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:28,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:29,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:35,1
    - Dst: EVP_PKEY_set_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:40,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:41,1
    - Dst: EVP_PKEY*::ameth::old_priv_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:46,1
    - Dst: d2i_PKCS8_PRIV_KEY_INFO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:50,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:53,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:54,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:57,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:60,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:70,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 4
    argNames:
    - type
    - a
    - pp
    - length
    argTypes:
    - int
    - EVP_PKEY**
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 72
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 72
    functionName: d2i_PrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY*::ameth::old_priv_decode
    - EVP_PKEY_free
    - EVP_PKCS82PKEY
    - ENGINE_finish
    - EVP_PKEY_set_type
    - d2i_PKCS8_PRIV_KEY_INFO
    - EVP_PKEY_new
    - PKCS8_PRIV_KEY_INFO_free
    - ASN1err
    linkageType: ''
    returnType: EVP_PKEY
    signature: "*d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp,\n
      \                        long length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:82,1
    - Dst: d2i_ASN1_SEQUENCE_ANY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:91,1
    - Dst: sk_ASN1_TYPE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:97,1
    - Dst: sk_ASN1_TYPE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:99,1
    - Dst: sk_ASN1_TYPE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:101,1
    - Dst: d2i_PKCS8_PRIV_KEY_INFO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:103,1
    - Dst: sk_ASN1_TYPE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:106,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:108,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:112,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:113,1
    - Dst: sk_ASN1_TYPE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:123,1
    - Dst: d2i_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c:124,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - EVP_PKEY**
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 125
      start: 79
    functionDepth: 5
    functionLinenumber: 79
    functionLinenumberEnd: 125
    functionName: d2i_AutoPrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c
    functionUses: 0
    functionsReached:
    - d2i_ASN1_SEQUENCE_ANY
    - EVP_PKCS82PKEY
    - STACK_OF
    - d2i_PrivateKey
    - sk_ASN1_TYPE_pop_free
    - sk_ASN1_TYPE_num
    - PKCS8_PRIV_KEY_INFO_free
    - d2i_PKCS8_PRIV_KEY_INFO
    - ASN1err
    linkageType: ''
    returnType: EVP_PKEY
    signature: "*d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp,\n                             long
      length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_adj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - ASN1_TIME*
    - time_t
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: ASN1_TIME_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached:
    - ASN1_TIME_adj
    linkageType: ''
    returnType: ASN1_TIME
    signature: '*ASN1_TIME_set(ASN1_TIME *s, time_t t)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_gmtime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:38,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:40,1
    - Dst: OPENSSL_gmtime_adj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:44,1
    - Dst: ASN1_UTCTIME_adj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:48,1
    - Dst: ASN1_GENERALIZEDTIME_adj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:49,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - s
    - t
    - offset_day
    - offset_sec
    argTypes:
    - ASN1_TIME*
    - time_t
    - int
    - long
    constantsTouched: []
    func_position:
      end: 50
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 50
    functionName: ASN1_TIME_adj
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c
    functionUses: 2
    functionsReached:
    - OPENSSL_gmtime
    - ASN1_UTCTIME_adj
    - OPENSSL_gmtime_adj
    - ASN1_GENERALIZEDTIME_adj
    - ASN1err
    linkageType: ''
    returnType: ASN1_TIME
    signature: "*ASN1_TIME_adj(ASN1_TIME *s, time_t t,\n                         int
      offset_day, long offset_sec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_GENERALIZEDTIME_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:55,1
    - Dst: ASN1_UTCTIME_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - t
    argTypes:
    - ASN1_TIME*
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: ASN1_TIME_check
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached:
    - ASN1_GENERALIZEDTIME_check
    - ASN1_UTCTIME_check
    linkageType: ''
    returnType: int
    signature: ASN1_TIME_check(const ASN1_TIME *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:69,1
    - Dst: ASN1_GENERALIZEDTIME_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:73,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:82,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:88,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:95,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:97,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:99,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - t
    - out
    argTypes:
    - ASN1_TIME*
    - ASN1_GENERALIZEDTIME**
    constantsTouched: []
    func_position:
      end: 102
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 102
    functionName: ASN1_TIME_to_generalizedtime
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c
    functionUses: 1
    functionsReached:
    - ASN1_STRING_set
    - ASN1_TIME_check
    - OPENSSL_strlcpy
    - ASN1_GENERALIZEDTIME_new
    - OPENSSL_strlcat
    linkageType: ''
    returnType: ASN1_GENERALIZEDTIME
    signature: "*ASN1_TIME_to_generalizedtime(ASN1_TIME *t,\n                                                   ASN1_GENERALIZEDTIME
      **out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:108,1
    - Dst: ASN1_TIME_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:114,1
    - Dst: ASN1_TIME_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:116,1
    - Dst: ASN1_STRING_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - s
    - str
    argTypes:
    - ASN1_TIME*
    - char*
    constantsTouched: []
    func_position:
      end: 124
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 124
    functionName: ASN1_TIME_set_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c
    functionUses: 1
    functionsReached:
    - strlen
    - ASN1_STRING_copy
    - ASN1_TIME_check
    linkageType: ''
    returnType: int
    signature: ASN1_TIME_set_string(ASN1_TIME *s, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:130,1
    - Dst: OPENSSL_gmtime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:131,1
    - Dst: asn1_utctime_to_tm
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:137,1
    - Dst: asn1_generalizedtime_to_tm
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:139,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - tm
    - t
    argTypes:
    - struct tm*
    - ASN1_TIME*
    constantsTouched: []
    func_position:
      end: 142
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 142
    functionName: asn1_time_to_tm
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached:
    - asn1_utctime_to_tm
    - OPENSSL_gmtime
    - time
    - asn1_generalizedtime_to_tm
    linkageType: ''
    returnType: int
    signature: asn1_time_to_tm(struct tm *tm, const ASN1_TIME *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_time_to_tm
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:148,1
    - Dst: asn1_time_to_tm
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:150,1
    - Dst: OPENSSL_gmtime_diff
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - pday
    - psec
    - from
    - to
    argTypes:
    - int*
    - int*
    - ASN1_TIME*
    - ASN1_TIME*
    constantsTouched: []
    func_position:
      end: 153
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 153
    functionName: ASN1_TIME_diff
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c
    functionUses: 1
    functionsReached:
    - OPENSSL_gmtime_diff
    - asn1_time_to_tm
    linkageType: ''
    returnType: int
    signature: "ASN1_TIME_diff(int *pday, int *psec,\n                   const ASN1_TIME
      *from, const ASN1_TIME *to)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_UTCTIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:158,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:160,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - bp
    - tm
    argTypes:
    - BIO*
    - ASN1_TIME*
    constantsTouched: []
    func_position:
      end: 163
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 163
    functionName: ASN1_TIME_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c
    functionUses: 2
    functionsReached:
    - ASN1_UTCTIME_print
    - BIO_write
    - ASN1_GENERALIZEDTIME_print
    linkageType: ''
    returnType: int
    signature: ASN1_TIME_print(BIO *bp, const ASN1_TIME *tm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:27,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:27,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:28,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:31,1
    - Dst: ASN1_d2i_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:32,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - (*xnew) (void)
    - d2i
    - in
    - x
    argTypes:
    - void*
    - d2i_of_void*
    - FILE*
    - void**
    constantsTouched: []
    func_position:
      end: 35
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 35
    functionName: ASN1_d2i_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c
    functionUses: 1
    functionsReached:
    - ASN1_d2i_bio
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - BIO_new
    - ASN1err
    linkageType: ''
    returnType: void
    signature: '*ASN1_d2i_fp(void *(*xnew) (void), d2i_of_void *d2i, FILE *in, void
      **x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_d2i_read_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:45,1
    - Dst: d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:50,1
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - (*xnew) (void)
    - d2i
    - in
    - x
    argTypes:
    - void*
    - d2i_of_void*
    - BIO*
    - void**
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: ASN1_d2i_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c
    functionUses: 1
    functionsReached:
    - asn1_d2i_read_bio
    - d2i
    - BUF_MEM_free
    linkageType: ''
    returnType: void
    signature: '*ASN1_d2i_bio(void *(*xnew) (void), d2i_of_void *d2i, BIO *in, void
      **x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_d2i_read_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:65,1
    - Dst: ASN1_item_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:70,1
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - it
    - in
    - x
    argTypes:
    - ASN1_ITEM*
    - BIO*
    - void*
    constantsTouched: []
    func_position:
      end: 74
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 74
    functionName: ASN1_item_d2i_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c
    functionUses: 8
    functionsReached:
    - asn1_d2i_read_bio
    - ASN1_item_d2i
    - BUF_MEM_free
    linkageType: ''
    returnType: void
    signature: '*ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:82,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:82,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:83,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:86,1
    - Dst: ASN1_item_d2i_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:87,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - it
    - in
    - x
    argTypes:
    - ASN1_ITEM*
    - FILE*
    - void*
    constantsTouched: []
    func_position:
      end: 90
      start: 77
    functionDepth: 4
    functionLinenumber: 77
    functionLinenumberEnd: 90
    functionName: ASN1_item_d2i_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c
    functionUses: 7
    functionsReached:
    - ASN1_item_d2i_bio
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - BIO_new
    - ASN1err
    linkageType: ''
    returnType: void
    signature: '*ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:109,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:111,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:115,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:120,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:121,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:124,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:126,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:131,1
    - Dst: ASN1_get_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:141,1
    - Dst: ERR_GET_REASON
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:145,1
    - Dst: ERR_peek_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:145,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:149,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:157,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:178,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:190,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:191,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:196,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:198,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:214,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:226,1
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c:233,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 109
    argCount: 2
    argNames:
    - in
    - pb
    argTypes:
    - BIO*
    - BUF_MEM**
    constantsTouched: []
    func_position:
      end: 235
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 235
    functionName: asn1_d2i_read_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c
    functionUses: 2
    functionsReached:
    - BUF_MEM_new
    - ASN1_get_object
    - ERR_peek_error
    - BUF_MEM_grow_clean
    - BUF_MEM_free
    - BIO_read
    - ASN1err
    - ERR_GET_REASON
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: asn1_d2i_read_bio(BIO *in, BUF_MEM **pb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - unsigned long
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: ASN1_STRING_set_default_mask
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ASN1_STRING_set_default_mask(unsigned long mask)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: ASN1_STRING_get_default_mask
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: ASN1_STRING_get_default_mask(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:53,1
    - Dst: strtoul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:56,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:59,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:61,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:63,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:65,1
    - Dst: ASN1_STRING_set_default_mask
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:69,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 71
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 71
    functionName: ASN1_STRING_set_default_mask_asc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_set_default_mask
    - strtoul
    - strncmp
    - strcmp
    linkageType: ''
    returnType: int
    signature: ASN1_STRING_set_default_mask_asc(const char *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_TABLE_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:89,1
    - Dst: ASN1_mbstring_ncopy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:94,1
    - Dst: ASN1_mbstring_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - out
    - in
    - inlen
    - inform
    - nid
    argTypes:
    - ASN1_STRING**
    - unsigned char*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 103
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 103
    functionName: ASN1_STRING_set_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c
    functionUses: 2
    functionsReached:
    - ASN1_mbstring_copy
    - ASN1_mbstring_ncopy
    - ASN1_STRING_TABLE_get
    linkageType: ''
    returnType: ASN1_STRING
    signature: "*ASN1_STRING_set_by_NID(ASN1_STRING **out,\n                                    const
      unsigned char *in, int inlen,\n                                    int inform,
      int nid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_STRING_TABLE**
    - ASN1_STRING_TABLE**
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: sk_table_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "sk_table_cmp(const ASN1_STRING_TABLE *const *a,\n                        const
      ASN1_STRING_TABLE *const *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_STRING_TABLE*
    - ASN1_STRING_TABLE*
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: table_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: table_cmp(const ASN1_STRING_TABLE *a, const ASN1_STRING_TABLE *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_STRING_TABLE_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:178,1
    - Dst: sk_ASN1_STRING_TABLE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:180,1
    - Dst: OBJ_bsearch_table
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:182,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 183
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 183
    functionName: ASN1_STRING_TABLE_get
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c
    functionUses: 1
    functionsReached:
    - sk_ASN1_STRING_TABLE_value
    - OSSL_NELEM
    - sk_ASN1_STRING_TABLE_find
    - OBJ_bsearch_table
    linkageType: ''
    returnType: ASN1_STRING_TABLE
    signature: '*ASN1_STRING_TABLE_get(int nid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_STRING_TABLE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:195,1
    - Dst: ASN1_STRING_TABLE_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:199,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:202,1
    - Dst: sk_ASN1_STRING_TABLE_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:205,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:206,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 221
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 221
    functionName: stable_get
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_STRING_TABLE_push
    - sk_ASN1_STRING_TABLE_new
    - ASN1_STRING_TABLE_get
    - OPENSSL_zalloc
    - OPENSSL_free
    linkageType: ''
    returnType: ASN1_STRING_TABLE
    signature: '*stable_get(int nid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stable_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:228,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:230,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - nid
    - minsize
    - maxsize
    - mask
    - flags
    argTypes:
    - int
    - long
    - long
    - unsigned long
    - unsigned long
    constantsTouched: []
    func_position:
      end: 242
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 242
    functionName: ASN1_STRING_TABLE_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c
    functionUses: 1
    functionsReached:
    - stable_get
    - ASN1err
    linkageType: ''
    returnType: int
    signature: "ASN1_STRING_TABLE_add(int nid,\n                          long minsize,
      long maxsize, unsigned long mask,\n                          unsigned long flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:246,1
    - Dst: sk_ASN1_STRING_TABLE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 252
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 252
    functionName: ASN1_STRING_TABLE_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - sk_ASN1_STRING_TABLE_pop_free
    linkageType: ''
    returnType: void
    signature: ASN1_STRING_TABLE_cleanup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - tbl
    argTypes:
    - ASN1_STRING_TABLE*
    constantsTouched: []
    func_position:
      end: 258
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 258
    functionName: st_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c
    functionUses: 4
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: st_free(ASN1_STRING_TABLE *tbl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:268,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:277,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:278,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:281,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:282,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c:283,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 285
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 285
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c
    functionUses: 22
    functionsReached:
    - OSSL_NELEM
    - printf
    - exit
    - OBJ_nid2ln
    linkageType: ''
    returnType: void
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - tag
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: ASN1_tag2bit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: ASN1_tag2bit(int tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_tlc_clear_nc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:103,1
    - Dst: ASN1_item_ex_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - pval
    - in
    - len
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - long
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 107
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 107
    functionName: ASN1_item_d2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c
    functionUses: 3
    functionsReached:
    - asn1_tlc_clear_nc
    - ASN1_item_ex_d2i
    linkageType: ''
    returnType: ASN1_VALUE
    signature: "*ASN1_item_d2i(ASN1_VALUE **pval,\n                          const
      unsigned char **in, long len,\n                          const ASN1_ITEM *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_embed_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:114,1
    - Dst: ASN1_item_ex_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 8
    argNames:
    - pval
    - in
    - len
    - it
    - tag
    - aclass
    - opt
    - ctx
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - long
    - ASN1_ITEM*
    - int
    - int
    - char
    - ASN1_TLC*
    constantsTouched: []
    func_position:
      end: 118
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 118
    functionName: ASN1_item_ex_d2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c
    functionUses: 2
    functionsReached:
    - asn1_item_embed_d2i
    - ASN1_item_ex_free
    linkageType: ''
    returnType: int
    signature: "ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long
      len,\n                     const ASN1_ITEM *it,\n                     int tag,
      int aclass, char opt, ASN1_TLC *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:158,1
    - Dst: asn1_template_ex_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:162,1
    - Dst: asn1_d2i_ex_primitive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:165,1
    - Dst: asn1_check_tlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:171,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:174,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:183,1
    - Dst: ASN1_tag2bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:187,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:191,1
    - Dst: asn1_d2i_ex_primitive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:194,1
    - Dst: ASN1_EXTERN_FUNCS*::asn1_ex_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:199,1
    - Dst: asn1_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:202,1
    - Dst: asn1_get_choice_selector
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:206,1
    - Dst: asn1_get_field_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:209,1
    - Dst: asn1_template_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:210,1
    - Dst: asn1_set_choice_selector
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:211,1
    - Dst: ASN1_item_ex_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:213,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:214,1
    - Dst: asn1_get_field_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:220,1
    - Dst: asn1_template_ex_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:224,1
    - Dst: asn1_template_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:235,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:237,1
    - Dst: ASN1_item_ex_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:246,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:249,1
    - Dst: asn1_set_choice_selector
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:253,1
    - Dst: asn1_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:255,1
    - Dst: asn1_check_tlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:271,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:274,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:286,1
    - Dst: ASN1_item_ex_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:290,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:291,1
    - Dst: asn1_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:295,1
    - Dst: asn1_do_adb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:303,1
    - Dst: asn1_get_field_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:306,1
    - Dst: asn1_template_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:307,1
    - Dst: asn1_do_adb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:315,1
    - Dst: asn1_get_field_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:318,1
    - Dst: asn1_check_eoc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:323,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:325,1
    - Dst: asn1_template_ex_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:347,1
    - Dst: asn1_template_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:355,1
    - Dst: asn1_check_eoc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:363,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:364,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:369,1
    - Dst: asn1_do_adb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:380,1
    - Dst: asn1_get_field_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:385,1
    - Dst: asn1_template_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:386,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:389,1
    - Dst: asn1_enc_save
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:394,1
    - Dst: asn1_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:396,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:405,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:408,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:411,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 213
    argCount: 8
    argNames:
    - pval
    - in
    - len
    - it
    - tag
    - aclass
    - opt
    - ctx
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - long
    - ASN1_ITEM*
    - int
    - int
    - char
    - ASN1_TLC*
    constantsTouched: []
    func_position:
      end: 413
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 413
    functionName: asn1_item_embed_d2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached:
    - ASN1_item_ex_new
    - asn1_do_adb
    - asn1_check_eoc
    - asn1_get_choice_selector
    - ASN1_item_ex_free
    - asn1_cb
    - ASN1_EXTERN_FUNCS*::asn1_ex_d2i
    - asn1_set_choice_selector
    - ERR_add_error_data
    - asn1_get_field_ptr
    - ASN1_tag2bit
    - asn1_template_free
    - asn1_enc_save
    - asn1_d2i_ex_primitive
    - asn1_template_ex_d2i
    - ASN1err
    - asn1_check_tlen
    linkageType: ''
    returnType: int
    signature: "asn1_item_embed_d2i(ASN1_VALUE **pval, const unsigned char **in,\n
      \                              long len, const ASN1_ITEM *it,\n                               int
      tag, int aclass, char opt, ASN1_TLC *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_check_tlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:444,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:448,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:453,1
    - Dst: asn1_template_noexp_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:458,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:460,1
    - Dst: asn1_check_eoc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:467,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:468,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:476,1
    - Dst: asn1_template_noexp_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:482,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 6
    argNames:
    - val
    - in
    - inlen
    - tt
    - opt
    - ctx
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - long
    - ASN1_TEMPLATE*
    - char
    - ASN1_TLC*
    constantsTouched: []
    func_position:
      end: 489
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 489
    functionName: asn1_template_ex_d2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached:
    - asn1_template_noexp_d2i
    - ASN1err
    - asn1_check_tlen
    - asn1_check_eoc
    linkageType: ''
    returnType: int
    signature: "asn1_template_ex_d2i(ASN1_VALUE **val,\n                                const
      unsigned char **in, long inlen,\n                                const ASN1_TEMPLATE
      *tt, char opt,\n                                ASN1_TLC *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_check_tlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:533,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:536,1
    - Dst: OPENSSL_sk_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:541,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:546,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:546,1
    - Dst: sk_ASN1_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:548,1
    - Dst: sk_ASN1_VALUE_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:549,1
    - Dst: ASN1_item_ex_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:550,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:550,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:555,1
    - Dst: asn1_check_eoc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:564,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:566,1
    - Dst: asn1_item_embed_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:575,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:576,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:577,1
    - Dst: ASN1_item_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:580,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:580,1
    - Dst: sk_ASN1_VALUE_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:584,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:584,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:585,1
    - Dst: ASN1_item_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:586,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:586,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:591,1
    - Dst: asn1_item_embed_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:596,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:597,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:600,1
    - Dst: asn1_item_embed_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:606,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:606,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:609,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 98
    argCount: 6
    argNames:
    - val
    - in
    - len
    - tt
    - opt
    - ctx
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - long
    - ASN1_TEMPLATE*
    - char
    - ASN1_TLC*
    constantsTouched: []
    func_position:
      end: 620
      start: 491
    functionDepth: 3
    functionLinenumber: 491
    functionLinenumberEnd: 620
    functionName: asn1_template_noexp_d2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached:
    - sk_ASN1_VALUE_num
    - sk_ASN1_VALUE_push
    - asn1_check_eoc
    - STACK_OF
    - ASN1_item_ex_free
    - ASN1_item_free
    - asn1_item_embed_d2i
    - OPENSSL_sk_new_null
    - ASN1_ITEM_ptr
    - sk_ASN1_VALUE_pop
    - ASN1err
    - asn1_check_tlen
    linkageType: ''
    returnType: int
    signature: "asn1_template_noexp_d2i(ASN1_VALUE **val,\n                                   const
      unsigned char **in, long len,\n                                   const ASN1_TEMPLATE
      *tt, char opt,\n                                   ASN1_TLC *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:635,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:649,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:653,1
    - Dst: asn1_check_tlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:658,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:661,1
    - Dst: asn1_check_tlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:673,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:676,1
    - Dst: asn1_tlc_clear
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:689,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:693,1
    - Dst: asn1_find_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:701,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:712,1
    - Dst: asn1_collect
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:724,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:729,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:730,1
    - Dst: asn1_ex_c2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:743,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:750,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 93
    argCount: 8
    argNames:
    - pval
    - in
    - inlen
    - it
    - tag
    - aclass
    - opt
    - ctx
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - long
    - ASN1_ITEM*
    - int
    - int
    - char
    - ASN1_TLC*
    constantsTouched: []
    func_position:
      end: 752
      start: 622
    functionDepth: 2
    functionLinenumber: 622
    functionLinenumberEnd: 752
    functionName: asn1_d2i_ex_primitive
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached:
    - asn1_collect
    - asn1_tlc_clear
    - asn1_find_end
    - asn1_ex_c2i
    - BUF_MEM_grow_clean
    - OPENSSL_free
    - ASN1err
    - asn1_check_tlen
    linkageType: ''
    returnType: int
    signature: "asn1_d2i_ex_primitive(ASN1_VALUE **pval,\n                                 const
      unsigned char **in, long inlen,\n                                 const ASN1_ITEM
      *it,\n                                 int tag, int aclass, char opt, ASN1_TLC
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PRIMITIVE_FUNCS*::prim_c2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:768,1
    - Dst: ASN1_TYPE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:772,1
    - Dst: ASN1_TYPE_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:780,1
    - Dst: c2i_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:786,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:792,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:800,1
    - Dst: c2i_ASN1_BIT_STRING
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:810,1
    - Dst: c2i_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:817,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:842,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:846,1
    - Dst: ASN1_STRING_type_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:852,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:854,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:864,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:869,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:870,1
    - Dst: ASN1_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:871,1
    - Dst: ASN1_TYPE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:885,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 122
    argCount: 6
    argNames:
    - pval
    - cont
    - len
    - utype
    - free_cont
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int
    - int
    - char*
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 890
      start: 756
    functionDepth: 2
    functionLinenumber: 756
    functionLinenumberEnd: 890
    functionName: asn1_ex_c2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached:
    - c2i_ASN1_BIT_STRING
    - ASN1_STRING_set
    - c2i_ASN1_INTEGER
    - ASN1_STRING_free
    - c2i_ASN1_OBJECT
    - ASN1_TYPE_new
    - ASN1_TYPE_set
    - ASN1_TYPE_free
    - ASN1_PRIMITIVE_FUNCS*::prim_c2i
    - OPENSSL_free
    - ASN1err
    - ASN1_STRING_type_new
    linkageType: ''
    returnType: int
    signature: "asn1_ex_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,\n
      \                      int utype, char *free_cont, const ASN1_ITEM *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_check_eoc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:917,1
    - Dst: asn1_check_tlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:926,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:928,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:933,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:943,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - in
    - len
    - inf
    argTypes:
    - unsigned char**
    - long
    - char
    constantsTouched: []
    func_position:
      end: 948
      start: 899
    functionDepth: 1
    functionLinenumber: 899
    functionLinenumberEnd: 948
    functionName: asn1_find_end
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached:
    - ASN1err
    - asn1_check_eoc
    - asn1_check_tlen
    linkageType: ''
    returnType: int
    signature: asn1_find_end(const unsigned char **in, long len, char inf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_check_eoc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:985,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:990,1
    - Dst: asn1_check_tlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:997,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:999,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:1006,1
    - Dst: asn1_collect
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:1009,1
    - Dst: collect_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:1011,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:1016,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 7
    argNames:
    - buf
    - in
    - len
    - inf
    - tag
    - aclass
    - depth
    argTypes:
    - BUF_MEM*
    - unsigned char**
    - long
    - char
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1021
      start: 966
    functionDepth: 1
    functionLinenumber: 966
    functionLinenumberEnd: 1021
    functionName: asn1_collect
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c
    functionUses: 2
    functionsReached:
    - asn1_check_eoc
    - asn1_collect
    - collect_data
    - ASN1err
    - asn1_check_tlen
    linkageType: ''
    returnType: int
    signature: "asn1_collect(BUF_MEM *buf, const unsigned char **in, long len,\n                        char
      inf, int tag, int aclass, int depth)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_grow_clean
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:1028,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:1029,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:1032,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - buf
    - p
    - plen
    argTypes:
    - BUF_MEM*
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 1036
      start: 1023
    functionDepth: 2
    functionLinenumber: 1023
    functionLinenumberEnd: 1036
    functionName: collect_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached:
    - memcpy
    - ASN1err
    - BUF_MEM_grow_clean
    linkageType: ''
    returnType: int
    signature: collect_data(BUF_MEM *buf, const unsigned char **p, long plen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - in
    - len
    argTypes:
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 1051
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1051
    functionName: asn1_check_eoc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: asn1_check_eoc(const unsigned char **in, long len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_get_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:1079,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:1092,1
    - Dst: asn1_tlc_clear
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:1093,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:1100,1
    - Dst: asn1_tlc_clear
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:1101,1
    - Dst: asn1_tlc_clear
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:1111,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:1112,1
    - Dst: asn1_tlc_clear
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c:1119,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 11
    argNames:
    - olen
    - otag
    - oclass
    - inf
    - cst
    - in
    - len
    - exptag
    - expclass
    - opt
    - ctx
    argTypes:
    - long*
    - int*
    - unsigned char*
    - char*
    - char*
    - unsigned char**
    - long
    - int
    - int
    - char
    - ASN1_TLC*
    constantsTouched: []
    func_position:
      end: 1142
      start: 1060
    functionDepth: 1
    functionLinenumber: 1060
    functionLinenumberEnd: 1142
    functionName: asn1_check_tlen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c
    functionUses: 6
    functionsReached:
    - ASN1_get_object
    - asn1_tlc_clear
    - ASN1err
    linkageType: ''
    returnType: int
    signature: "asn1_check_tlen(long *olen, int *otag, unsigned char *oclass,\n                           char
      *inf, char *cst,\n                           const unsigned char **in, long
      len,\n                           int exptag, int expclass, char opt, ASN1_TLC
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_embed_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - it
    argTypes:
    - ASN1_VALUE*
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: ASN1_item_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c
    functionUses: 1
    functionsReached:
    - asn1_item_embed_free
    linkageType: ''
    returnType: void
    signature: ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_embed_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: ASN1_item_ex_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c
    functionUses: 3
    functionsReached:
    - asn1_item_embed_free
    linkageType: ''
    returnType: void
    signature: ASN1_item_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_template_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:53,1
    - Dst: asn1_primitive_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:55,1
    - Dst: asn1_primitive_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:59,1
    - Dst: asn1_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:64,1
    - Dst: asn1_get_choice_selector
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:68,1
    - Dst: asn1_get_field_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:73,1
    - Dst: asn1_template_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:74,1
    - Dst: asn1_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:77,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:79,1
    - Dst: ASN1_EXTERN_FUNCS*::asn1_ex_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:87,1
    - Dst: asn1_do_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:92,1
    - Dst: asn1_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:95,1
    - Dst: asn1_enc_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:99,1
    - Dst: asn1_do_adb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:110,1
    - Dst: asn1_get_field_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:113,1
    - Dst: asn1_template_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:114,1
    - Dst: asn1_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:117,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:119,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 68
    argCount: 3
    argNames:
    - pval
    - it
    - embed
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    constantsTouched: []
    func_position:
      end: 124
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 124
    functionName: asn1_item_embed_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c
    functionUses: 2
    functionsReached:
    - ASN1_EXTERN_FUNCS*::asn1_ex_free
    - asn1_do_lock
    - asn1_do_adb
    - asn1_enc_free
    - asn1_get_choice_selector
    - asn1_cb
    - asn1_primitive_free
    - asn1_get_field_ptr
    - OPENSSL_free
    - asn1_template_free
    linkageType: ''
    returnType: void
    signature: "asn1_item_embed_free(ASN1_VALUE **pval, const ASN1_ITEM *it,\n                                 int
      embed)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:135,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:135,1
    - Dst: sk_ASN1_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:138,1
    - Dst: sk_ASN1_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:139,1
    - Dst: asn1_item_embed_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:141,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:141,1
    - Dst: sk_ASN1_VALUE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:143,1
    - Dst: asn1_item_embed_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:146,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - pval
    - tt
    argTypes:
    - ASN1_VALUE**
    - ASN1_TEMPLATE*
    constantsTouched: []
    func_position:
      end: 148
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 148
    functionName: asn1_template_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c
    functionUses: 2
    functionsReached:
    - sk_ASN1_VALUE_value
    - sk_ASN1_VALUE_num
    - sk_ASN1_VALUE_free
    - STACK_OF
    - asn1_item_embed_free
    - ASN1_ITEM_ptr
    linkageType: ''
    returnType: void
    signature: asn1_template_free(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PRIMITIVE_FUNCS*::prim_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:159,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:184,1
    - Dst: asn1_primitive_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:198,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:199,1
    - Dst: asn1_string_embed_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c:203,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 3
    argNames:
    - pval
    - it
    - embed
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    constantsTouched: []
    func_position:
      end: 207
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 207
    functionName: asn1_primitive_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c
    functionUses: 2
    functionsReached:
    - asn1_string_embed_free
    - asn1_primitive_free
    - ASN1_OBJECT_free
    - ASN1_PRIMITIVE_FUNCS*::prim_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: asn1_primitive_free(ASN1_VALUE **pval, const ASN1_ITEM *it, int embed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/i2d_pu.c:21,1
    - Dst: i2d_RSAPublicKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/i2d_pu.c:24,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/i2d_pu.c:24,1
    - Dst: i2d_DSAPublicKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/i2d_pu.c:28,1
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/i2d_pu.c:28,1
    - Dst: i2o_ECPublicKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/i2d_pu.c:32,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/i2d_pu.c:32,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/i2d_pu.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 38
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 38
    functionName: i2d_PublicKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/i2d_pu.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get0_DSA
    - ASN1err
    - EVP_PKEY_get0_RSA
    - i2d_DSAPublicKey
    - EVP_PKEY_id
    - EVP_PKEY_get0_EC_KEY
    - i2o_ECPublicKey
    - i2d_RSAPublicKey
    linkageType: ''
    returnType: int
    signature: i2d_PublicKey(EVP_PKEY *a, unsigned char **pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/evp_asn1.c:19,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/evp_asn1.c:21,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/evp_asn1.c:22,1
    - Dst: ASN1_TYPE_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/evp_asn1.c:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - a
    - data
    - len
    argTypes:
    - ASN1_TYPE*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 27
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 27
    functionName: ASN1_TYPE_set_octetstring
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/evp_asn1.c
    functionUses: 1
    functionsReached:
    - ASN1_OCTET_STRING_set
    - ASN1_OCTET_STRING_new
    - ASN1_TYPE_set
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: int
    signature: ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/evp_asn1.c:36,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/evp_asn1.c:39,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/evp_asn1.c:40,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/evp_asn1.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - a
    - data
    - max_len
    argTypes:
    - ASN1_TYPE*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 47
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 47
    functionName: ASN1_TYPE_get_octetstring
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/evp_asn1.c
    functionUses: 1
    functionsReached:
    - ASN1_STRING_length
    - ASN1_STRING_get0_data
    - ASN1err
    - memcpy
    linkageType: ''
    returnType: int
    signature: ASN1_TYPE_get_octetstring(const ASN1_TYPE *a, unsigned char *data,
      int max_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_pack_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/evp_asn1.c:74,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/evp_asn1.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - a
    - num
    - data
    - len
    argTypes:
    - ASN1_TYPE*
    - long
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 77
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 77
    functionName: ASN1_TYPE_set_int_octetstring
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/evp_asn1.c
    functionUses: 1
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_TYPE_pack_sequence
    linkageType: ''
    returnType: int
    signature: "ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, unsigned char
      *data,\n                                  int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/evp_asn1.c:93,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/evp_asn1.c:93,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/evp_asn1.c:101,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/evp_asn1.c:108,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/evp_asn1.c:108,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/evp_asn1.c:111,1
    - Dst: M_ASN1_free_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/evp_asn1.c:113,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - a
    - num
    - data
    - max_len
    argTypes:
    - ASN1_TYPE*
    - long*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 115
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 115
    functionName: ASN1_TYPE_get_int_octetstring
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/evp_asn1.c
    functionUses: 1
    functionsReached:
    - M_ASN1_free_of
    - ASN1_ITEM_rptr
    - ASN1_TYPE_unpack_sequence
    - memcpy
    - ASN1_STRING_length
    - ASN1_STRING_get0_data
    - ASN1err
    linkageType: ''
    returnType: int
    signature: "ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num,\n                                  unsigned
      char *data, int max_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_string.c:26,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_string.c:32,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_string.c:38,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - bp
    - a
    - type
    argTypes:
    - BIO*
    - ASN1_STRING*
    - int
    constantsTouched: []
    func_position:
      end: 46
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 46
    functionName: i2a_ASN1_STRING
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_string.c
    functionUses: 3
    functionsReached:
    - BIO_write
    linkageType: ''
    returnType: int
    signature: i2a_ASN1_STRING(BIO *bp, const ASN1_STRING *a, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_string.c:55,1
    - Dst: isxdigit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_string.c:87,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_string.c:106,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_string.c:107,1
    - Dst: OPENSSL_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_string.c:112,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_string.c:114,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_string.c:115,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_string.c:123,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_string.c:125,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_string.c:127,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_string.c:136,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_string.c:145,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_string.c:146,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 78
    argCount: 4
    argNames:
    - bp
    - bs
    - buf
    - size
    argTypes:
    - BIO*
    - ASN1_STRING*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 148
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 148
    functionName: a2i_ASN1_STRING
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_string.c
    functionUses: 0
    functionsReached:
    - OPENSSL_hexchar2int
    - OPENSSL_realloc
    - isxdigit
    - BIO_gets
    - OPENSSL_free
    - ASN1err
    linkageType: ''
    returnType: int
    signature: a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_info.c:20,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_info.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 27
    functionName: X509_INFO_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_info.c
    functionUses: 0
    functionsReached:
    - ASN1err
    - OPENSSL_zalloc
    linkageType: ''
    returnType: X509_INFO
    signature: '*X509_INFO_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_info.c:34,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_info.c:35,1
    - Dst: X509_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_info.c:36,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_info.c:37,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_info.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_INFO*
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: X509_INFO_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_info.c
    functionUses: 0
    functionsReached:
    - X509_CRL_free
    - OPENSSL_free
    - X509_PKEY_free
    - X509_free
    linkageType: ''
    returnType: void
    signature: X509_INFO_free(X509_INFO *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - ASN1_TYPE*
    constantsTouched: []
    func_position:
      end: 22
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 22
    functionName: ASN1_TYPE_get
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_type.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ASN1_TYPE_get(const ASN1_TYPE *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_primitive_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_type.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - a
    - type
    - value
    argTypes:
    - ASN1_TYPE*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 35
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 35
    functionName: ASN1_TYPE_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_type.c
    functionUses: 5
    functionsReached:
    - asn1_primitive_free
    linkageType: ''
    returnType: void
    signature: ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_type.c:41,1
    - Dst: OBJ_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_type.c:44,1
    - Dst: ASN1_TYPE_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_type.c:47,1
    - Dst: ASN1_STRING_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_type.c:50,1
    - Dst: ASN1_TYPE_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_type.c:53,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - a
    - type
    - value
    argTypes:
    - ASN1_TYPE*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 56
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 56
    functionName: ASN1_TYPE_set1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_type.c
    functionUses: 1
    functionsReached:
    - ASN1_STRING_dup
    - ASN1_TYPE_set
    - OBJ_dup
    linkageType: ''
    returnType: int
    signature: ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_type.c:68,1
    - Dst: ASN1_STRING_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_type.c:97,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_TYPE*
    - ASN1_TYPE*
    constantsTouched: []
    func_position:
      end: 103
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 103
    functionName: ASN1_TYPE_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_type.c
    functionUses: 0
    functionsReached:
    - OBJ_cmp
    - ASN1_STRING_cmp
    linkageType: ''
    returnType: int
    signature: ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_pack
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_type.c:110,1
    - Dst: ASN1_TYPE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_type.c:117,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_type.c:119,1
    - Dst: ASN1_TYPE_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_type.c:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - it
    - s
    - t
    argTypes:
    - ASN1_ITEM*
    - void*
    - ASN1_TYPE**
    constantsTouched: []
    func_position:
      end: 127
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 127
    functionName: ASN1_TYPE_pack_sequence
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_type.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_new
    - ASN1_TYPE_set
    - ASN1_item_pack
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: ASN1_TYPE
    signature: '*ASN1_TYPE_pack_sequence(const ASN1_ITEM *it, void *s, ASN1_TYPE **t)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_unpack
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_type.c:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - it
    - t
    argTypes:
    - ASN1_ITEM*
    - ASN1_TYPE*
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: ASN1_TYPE_unpack_sequence
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_type.c
    functionUses: 7
    functionsReached:
    - ASN1_item_unpack
    linkageType: ''
    returnType: void
    signature: '*ASN1_TYPE_unpack_sequence(const ASN1_ITEM *it, const ASN1_TYPE *t)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_ex_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: ASN1_item_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c
    functionUses: 0
    functionsReached:
    - ASN1_item_ex_new
    linkageType: ''
    returnType: ASN1_VALUE
    signature: '*ASN1_item_new(const ASN1_ITEM *it)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_embed_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: ASN1_item_ex_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c
    functionUses: 2
    functionsReached:
    - asn1_item_embed_new
    linkageType: ''
    returnType: int
    signature: ASN1_item_ex_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_mem_debug_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:56,1
    - Dst: ASN1_EXTERN_FUNCS*::asn1_ex_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:64,1
    - Dst: asn1_template_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:71,1
    - Dst: asn1_primitive_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:73,1
    - Dst: asn1_primitive_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:78,1
    - Dst: asn1_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:84,1
    - Dst: OPENSSL_mem_debug_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:89,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:95,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:97,1
    - Dst: asn1_set_choice_selector
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:101,1
    - Dst: asn1_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:102,1
    - Dst: asn1_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:109,1
    - Dst: OPENSSL_mem_debug_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:114,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:120,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:122,1
    - Dst: asn1_do_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:127,1
    - Dst: asn1_enc_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:129,1
    - Dst: asn1_get_field_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:131,1
    - Dst: asn1_template_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:132,1
    - Dst: asn1_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:135,1
    - Dst: OPENSSL_mem_debug_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:140,1
    - Dst: ASN1_item_ex_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:145,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:147,1
    - Dst: OPENSSL_mem_debug_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:149,1
    - Dst: ASN1_item_ex_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:154,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:156,1
    - Dst: OPENSSL_mem_debug_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:158,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 106
    argCount: 3
    argNames:
    - pval
    - it
    - embed
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    constantsTouched: []
    func_position:
      end: 162
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 162
    functionName: asn1_item_embed_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c
    functionUses: 1
    functionsReached:
    - asn1_primitive_new
    - asn1_template_new
    - asn1_do_lock
    - ASN1_item_ex_free
    - OPENSSL_mem_debug_push
    - asn1_cb
    - OPENSSL_mem_debug_pop
    - memset
    - ASN1_EXTERN_FUNCS*::asn1_ex_new
    - asn1_set_choice_selector
    - OPENSSL_zalloc
    - asn1_get_field_ptr
    - asn1_enc_init
    - ASN1err
    linkageType: ''
    returnType: int
    signature: asn1_item_embed_new(ASN1_VALUE **pval, const ASN1_ITEM *it, int embed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_EXTERN_FUNCS*::asn1_ex_clear
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:173,1
    - Dst: asn1_template_clear
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:180,1
    - Dst: asn1_primitive_clear
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:182,1
    - Dst: asn1_primitive_clear
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:186,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 195
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 195
    functionName: asn1_item_clear
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c
    functionUses: 0
    functionsReached:
    - ASN1_EXTERN_FUNCS*::asn1_ex_clear
    - asn1_primitive_clear
    - asn1_template_clear
    linkageType: ''
    returnType: void
    signature: asn1_item_clear(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:199,1
    - Dst: asn1_template_clear
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:208,1
    - Dst: OPENSSL_mem_debug_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:218,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:223,1
    - Dst: sk_ASN1_VALUE_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:224,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:226,1
    - Dst: asn1_item_embed_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:235,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - pval
    - tt
    argTypes:
    - ASN1_VALUE**
    - ASN1_TEMPLATE*
    constantsTouched: []
    func_position:
      end: 241
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 241
    functionName: asn1_template_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c
    functionUses: 1
    functionsReached:
    - sk_ASN1_VALUE_new_null
    - STACK_OF
    - OPENSSL_mem_debug_push
    - asn1_item_embed_new
    - ASN1_ITEM_ptr
    - asn1_template_clear
    - ASN1err
    linkageType: ''
    returnType: int
    signature: asn1_template_new(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_clear
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:249,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pval
    - tt
    argTypes:
    - ASN1_VALUE**
    - ASN1_TEMPLATE*
    constantsTouched: []
    func_position:
      end: 250
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 250
    functionName: asn1_template_clear
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c
    functionUses: 2
    functionsReached:
    - asn1_item_clear
    - ASN1_ITEM_ptr
    linkageType: ''
    returnType: void
    signature: asn1_template_clear(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PRIMITIVE_FUNCS*::prim_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:270,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:279,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:291,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:302,1
    - Dst: ASN1_STRING_type_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:306,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 3
    argNames:
    - pval
    - it
    - embed
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    constantsTouched: []
    func_position:
      end: 316
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 316
    functionName: asn1_primitive_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c
    functionUses: 1
    functionsReached:
    - ASN1_PRIMITIVE_FUNCS*::prim_new
    - OBJ_nid2obj
    - memset
    - OPENSSL_malloc
    - ASN1_STRING_type_new
    linkageType: ''
    returnType: int
    signature: "asn1_primitive_new(ASN1_VALUE **pval, const ASN1_ITEM *it,\n                              int
      embed)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PRIMITIVE_FUNCS*::prim_clear
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c:324,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 337
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 337
    functionName: asn1_primitive_clear
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c
    functionUses: 1
    functionsReached:
    - ASN1_PRIMITIVE_FUNCS*::prim_clear
    linkageType: ''
    returnType: void
    signature: asn1_primitive_clear(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_algor.c:35,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_algor.c:40,1
    - Dst: ASN1_TYPE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_algor.c:46,1
    - Dst: ASN1_TYPE_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_algor.c:49,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - alg
    - aobj
    - ptype
    - pval
    argTypes:
    - X509_ALGOR*
    - ASN1_OBJECT*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 51
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 51
    functionName: X509_ALGOR_set0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_algor.c
    functionUses: 10
    functionsReached:
    - ASN1_TYPE_set
    - ASN1_TYPE_new
    - ASN1_OBJECT_free
    - ASN1_TYPE_free
    linkageType: ''
    returnType: int
    signature: X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, void
      *pval)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - paobj
    - pptype
    - ppval
    - algor
    argTypes:
    - ASN1_OBJECT**
    - int*
    - void**
    - X509_ALGOR*
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: X509_ALGOR_get0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_algor.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "X509_ALGOR_get0(const ASN1_OBJECT **paobj, int *pptype,\n                     const
      void **ppval, const X509_ALGOR *algor)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_algor.c:80,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_algor.c:80,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_algor.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - alg
    - md
    argTypes:
    - X509_ALGOR*
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 82
      start: 71
    functionDepth: 4
    functionLinenumber: 71
    functionLinenumberEnd: 82
    functionName: X509_ALGOR_set_md
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_algor.c
    functionUses: 2
    functionsReached:
    - X509_ALGOR_set0
    - OBJ_nid2obj
    - EVP_MD_type
    linkageType: ''
    returnType: void
    signature: X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_algor.c:87,1
    - Dst: ASN1_TYPE_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_algor.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_ALGOR*
    - X509_ALGOR*
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: X509_ALGOR_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_algor.c
    functionUses: 1
    functionsReached:
    - OBJ_cmp
    - ASN1_TYPE_cmp
    linkageType: ''
    returnType: int
    signature: X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_dup.c:26,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_dup.c:27,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_dup.c:29,1
    - Dst: i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_dup.c:33,1
    - Dst: d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_dup.c:35,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_dup.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - i2d
    - d2i
    - x
    argTypes:
    - i2d_of_void*
    - d2i_of_void*
    - void*
    constantsTouched: []
    func_position:
      end: 38
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 38
    functionName: ASN1_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_dup.c
    functionUses: 0
    functionsReached:
    - d2i
    - i2d
    - OPENSSL_free
    - OPENSSL_malloc
    - ASN1err
    linkageType: ''
    returnType: void
    signature: '*ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, void *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_dup.c:59,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_dup.c:61,1
    - Dst: ASN1_item_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_dup.c:65,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_dup.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - it
    - x
    argTypes:
    - ASN1_ITEM*
    - void*
    constantsTouched: []
    func_position:
      end: 68
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 68
    functionName: ASN1_item_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_dup.c
    functionUses: 1
    functionsReached:
    - ASN1_item_i2d
    - OPENSSL_free
    - ASN1_item_d2i
    - ASN1err
    linkageType: ''
    returnType: void
    signature: '*ASN1_item_dup(const ASN1_ITEM *it, void *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_print.c:41,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_print.c:41,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 21
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 52
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 52
    functionName: ASN1_PRINTABLE_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_print.c
    functionUses: 1
    functionsReached:
    - strchr
    - isalnum
    linkageType: ''
    returnType: int
    signature: ASN1_PRINTABLE_type(const unsigned char *s, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PRINTABLE_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_print.c:78,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - s
    argTypes:
    - ASN1_UNIVERSALSTRING*
    constantsTouched: []
    func_position:
      end: 80
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 80
    functionName: ASN1_UNIVERSALSTRING_to_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_print.c
    functionUses: 0
    functionsReached:
    - ASN1_PRINTABLE_type
    linkageType: ''
    returnType: int
    signature: ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_print.c:100,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_print.c:106,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - bp
    - v
    argTypes:
    - BIO*
    - ASN1_STRING*
    constantsTouched: []
    func_position:
      end: 109
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 109
    functionName: ASN1_STRING_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_print.c
    functionUses: 2
    functionsReached:
    - BIO_write
    linkageType: ''
    returnType: int
    signature: ASN1_STRING_print(BIO *bp, const ASN1_STRING *v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:50,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:52,1
    - Dst: PBE2PARAM_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:57,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:62,1
    - Dst: ASN1_TYPE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:63,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:67,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:69,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:69,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:70,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:70,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:74,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:79,1
    - Dst: EVP_CIPHER_param_to_asn1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:81,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:82,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:90,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:91,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:94,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:100,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:106,1
    - Dst: PKCS5_pbkdf2_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:108,1
    - Dst: X509_ALGOR_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:115,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:118,1
    - Dst: ASN1_TYPE_pack_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:122,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:122,1
    - Dst: PBE2PARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:126,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:132,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:135,1
    - Dst: PBE2PARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:136,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:138,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 67
    argCount: 6
    argNames:
    - cipher
    - iter
    - salt
    - saltlen
    - aiv
    - prf_nid
    argTypes:
    - EVP_CIPHER*
    - int
    - unsigned char*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 141
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 141
    functionName: PKCS5_pbe2_set_iv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c
    functionUses: 1
    functionsReached:
    - RAND_bytes
    - EVP_CipherInit_ex
    - PBE2PARAM_free
    - ASN1err
    - PKCS5_pbkdf2_set
    - EVP_CIPHER_param_to_asn1
    - OBJ_nid2obj
    - ASN1_TYPE_new
    - EVP_CIPHER_iv_length
    - EVP_CIPHER_key_length
    - EVP_CIPHER_CTX_new
    - X509_ALGOR_new
    - EVP_CIPHER_CTX_ctrl
    - ERR_clear_error
    - ASN1_TYPE_pack_sequence
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_type
    - ASN1_ITEM_rptr
    - memcpy
    - X509_ALGOR_free
    - PBE2PARAM_new
    linkageType: ''
    returnType: X509_ALGOR
    signature: "*PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter,\n                              unsigned
      char *salt, int saltlen,\n                              unsigned char *aiv,
      int prf_nid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS5_pbe2_set_iv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cipher
    - iter
    - salt
    - saltlen
    argTypes:
    - EVP_CIPHER*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 5
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: PKCS5_pbe2_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c
    functionUses: 2
    functionsReached:
    - PKCS5_pbe2_set_iv
    linkageType: ''
    returnType: X509_ALGOR
    signature: "*PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter,\n                           unsigned
      char *salt, int saltlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PBKDF2PARAM_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:156,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:158,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:166,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:172,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:173,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:179,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:185,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:187,1
    - Dst: X509_ALGOR_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:193,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:196,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:196,1
    - Dst: X509_ALGOR_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:201,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:205,1
    - Dst: ASN1_TYPE_pack_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:209,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:209,1
    - Dst: PBKDF2PARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:213,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:217,1
    - Dst: PBKDF2PARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:218,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c:219,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 56
    argCount: 5
    argNames:
    - iter
    - salt
    - saltlen
    - prf_nid
    - keylen
    argTypes:
    - int
    - unsigned char*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 221
      start: 149
    functionDepth: 4
    functionLinenumber: 149
    functionLinenumberEnd: 221
    functionName: PKCS5_pbkdf2_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c
    functionUses: 2
    functionsReached:
    - RAND_bytes
    - ASN1_OCTET_STRING_new
    - ASN1_TYPE_pack_sequence
    - ASN1_INTEGER_new
    - X509_ALGOR_new
    - X509_ALGOR_set0
    - PBKDF2PARAM_new
    - ASN1_INTEGER_set
    - OBJ_nid2obj
    - ASN1_ITEM_rptr
    - memcpy
    - X509_ALGOR_free
    - OPENSSL_malloc
    - ASN1err
    - PBKDF2PARAM_free
    linkageType: ''
    returnType: X509_ALGOR
    signature: "*PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen,\n                             int
      prf_nid, int keylen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 76
    argCount: 3
    argNames:
    - str
    - len
    - val
    argTypes:
    - unsigned char*
    - int
    - unsigned long*
    constantsTouched: []
    func_position:
      end: 114
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 114
    functionName: UTF8_getc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utf8.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: UTF8_getc(const unsigned char *str, int len, unsigned long *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 63
    argCount: 3
    argNames:
    - str
    - len
    - value
    argTypes:
    - unsigned char*
    - int
    - unsigned long
    constantsTouched: []
    func_position:
      end: 188
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 188
    functionName: UTF8_putc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utf8.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: UTF8_putc(unsigned char *str, int len, unsigned long value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:39,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: ASN1_PCTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached:
    - ASN1err
    - OPENSSL_zalloc
    linkageType: ''
    returnType: ASN1_PCTX
    signature: '*ASN1_PCTX_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: ASN1_PCTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: ASN1_PCTX_free(ASN1_PCTX *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: ASN1_PCTX_get_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: ASN1_PCTX_get_flags(const ASN1_PCTX *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - flags
    argTypes:
    - ASN1_PCTX*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: ASN1_PCTX_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: ASN1_PCTX_get_nm_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: ASN1_PCTX_get_nm_flags(const ASN1_PCTX *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - flags
    argTypes:
    - ASN1_PCTX*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: ASN1_PCTX_set_nm_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: ASN1_PCTX_get_cert_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: ASN1_PCTX_get_cert_flags(const ASN1_PCTX *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - flags
    argTypes:
    - ASN1_PCTX*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: ASN1_PCTX_set_cert_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: ASN1_PCTX_get_oid_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: ASN1_PCTX_get_oid_flags(const ASN1_PCTX *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - flags
    argTypes:
    - ASN1_PCTX*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: ASN1_PCTX_set_oid_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: ASN1_PCTX_get_str_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: ASN1_PCTX_get_str_flags(const ASN1_PCTX *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - flags
    argTypes:
    - ASN1_PCTX*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: ASN1_PCTX_set_str_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_print_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - out
    - ifld
    - indent
    - it
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE*
    - int
    - ASN1_ITEM*
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: ASN1_item_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached:
    - asn1_item_print_ctx
    linkageType: ''
    returnType: int
    signature: "ASN1_item_print(BIO *out, ASN1_VALUE *ifld, int indent,\n                    const
      ASN1_ITEM *it, const ASN1_PCTX *pctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_print_fsname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:157,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:159,1
    - Dst: asn1_template_print_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:168,1
    - Dst: asn1_primitive_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:175,1
    - Dst: asn1_print_fsname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:180,1
    - Dst: ASN1_EXTERN_FUNCS*::asn1_ex_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:185,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:188,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:192,1
    - Dst: asn1_get_choice_selector
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:198,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:201,1
    - Dst: asn1_get_field_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:206,1
    - Dst: asn1_template_print_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:207,1
    - Dst: asn1_print_fsname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:213,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:217,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:220,1
    - Dst: asn1_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:226,1
    - Dst: asn1_do_adb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:236,1
    - Dst: asn1_get_field_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:239,1
    - Dst: asn1_template_print_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:240,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:245,1
    - Dst: asn1_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:250,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:257,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 98
    argCount: 8
    argNames:
    - out
    - fld
    - indent
    - it
    - fname
    - sname
    - nohdr
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE**
    - int
    - ASN1_ITEM*
    - char*
    - char*
    - int
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 262
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 262
    functionName: asn1_item_print_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c
    functionUses: 1
    functionsReached:
    - asn1_do_adb
    - BIO_puts
    - asn1_get_choice_selector
    - asn1_cb
    - asn1_primitive_print
    - asn1_get_field_ptr
    - BIO_printf
    - asn1_print_fsname
    - asn1_template_print_ctx
    - ASN1_EXTERN_FUNCS*::asn1_ex_print
    linkageType: ''
    returnType: int
    signature: "asn1_item_print_ctx(BIO *out, ASN1_VALUE **fld, int indent,\n                               const
      ASN1_ITEM *it,\n                               const char *fname, const char
      *sname,\n                               int nohdr, const ASN1_PCTX *pctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:272,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:292,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:301,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:304,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:307,1
    - Dst: sk_ASN1_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:308,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:309,1
    - Dst: sk_ASN1_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:312,1
    - Dst: asn1_item_print_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:313,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:314,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:318,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:321,1
    - Dst: asn1_item_print_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:326,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:326,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 5
    argNames:
    - out
    - fld
    - indent
    - tt
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE**
    - int
    - ASN1_TEMPLATE*
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 328
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 328
    functionName: asn1_template_print_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c
    functionUses: 1
    functionsReached:
    - asn1_item_print_ctx
    - sk_ASN1_VALUE_value
    - sk_ASN1_VALUE_num
    - BIO_puts
    - STACK_OF
    - ASN1_ITEM_ptr
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "asn1_template_print_ctx(BIO *out, ASN1_VALUE **fld, int indent,\n
      \                           const ASN1_TEMPLATE *tt, const ASN1_PCTX *pctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:338,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:342,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:351,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:356,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:359,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:363,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 5
    argNames:
    - out
    - indent
    - fname
    - sname
    - pctx
    argTypes:
    - BIO*
    - int
    - char*
    - char*
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 366
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 366
    functionName: asn1_print_fsname
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    - BIO_write
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: "asn1_print_fsname(BIO *out, int indent,\n                             const
      char *fname, const char *sname,\n                             const ASN1_PCTX
      *pctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:386,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - out
    - boolval
    argTypes:
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 390
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 390
    functionName: asn1_print_boolean
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: asn1_print_boolean(BIO *out, int boolval)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2s_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:396,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:399,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - out
    - str
    argTypes:
    - BIO*
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 403
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 403
    functionName: asn1_print_integer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - i2s_ASN1_INTEGER
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: asn1_print_integer(BIO *out, const ASN1_INTEGER *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:409,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:409,1
    - Dst: OBJ_obj2txt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:412,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - out
    - oid
    argTypes:
    - BIO*
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 416
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 416
    functionName: asn1_print_oid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - BIO_printf
    - OBJ_nid2ln
    - OBJ_obj2txt
    linkageType: ''
    returnType: int
    signature: asn1_print_oid(BIO *out, const ASN1_OBJECT *oid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:421,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:423,1
    - Dst: BIO_dump_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:426,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - out
    - str
    - indent
    argTypes:
    - BIO*
    - ASN1_STRING*
    - int
    constantsTouched: []
    func_position:
      end: 430
      start: 418
    functionDepth: 4
    functionLinenumber: 418
    functionLinenumberEnd: 430
    functionName: asn1_print_obstring
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - BIO_dump_indent
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: asn1_print_obstring(BIO *out, const ASN1_STRING *str, int indent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_print_fsname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:443,1
    - Dst: ASN1_PRIMITIVE_FUNCS*::prim_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:446,1
    - Dst: ASN1_tag2str
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:465,1
    - Dst: ASN1_tag2str
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:468,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:474,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:480,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:482,1
    - Dst: asn1_print_boolean
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:492,1
    - Dst: asn1_print_integer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:498,1
    - Dst: ASN1_UTCTIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:502,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:506,1
    - Dst: asn1_print_oid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:510,1
    - Dst: asn1_print_obstring
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:515,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:522,1
    - Dst: ASN1_parse_dump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:524,1
    - Dst: ASN1_STRING_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:530,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c:535,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 80
    argCount: 7
    argNames:
    - out
    - fld
    - it
    - indent
    - fname
    - sname
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    - char*
    - char*
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 538
      start: 432
    functionDepth: 5
    functionLinenumber: 432
    functionLinenumberEnd: 538
    functionName: asn1_primitive_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c
    functionUses: 1
    functionsReached:
    - asn1_print_integer
    - ASN1_UTCTIME_print
    - asn1_print_oid
    - ASN1_GENERALIZEDTIME_print
    - BIO_puts
    - asn1_print_boolean
    - ASN1_tag2str
    - asn1_print_obstring
    - ASN1_PRIMITIVE_FUNCS*::prim_print
    - ASN1_parse_dump
    - ASN1_STRING_print_ex
    - asn1_print_fsname
    linkageType: ''
    returnType: int
    signature: "asn1_primitive_print(BIO *out, ASN1_VALUE **fld,\n                                const
      ASN1_ITEM *it, int indent,\n                                const char *fname,
      const char *sname,\n                                const ASN1_PCTX *pctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:35,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:37,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:41,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:43,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:45,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:47,1
    - Dst: ASN1_tag2str
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:49,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:51,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 5
    argNames:
    - bp
    - tag
    - xclass
    - constructed
    - indent
    argTypes:
    - BIO*
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 56
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 56
    functionName: asn1_print_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - BIO_indent
    - ASN1_tag2str
    - BIO_printf
    - BIO_write
    linkageType: ''
    returnType: int
    signature: "asn1_print_info(BIO *bp, int tag, int xclass, int constructed,\n                           int
      indent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_parse2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pp
    - len
    - indent
    argTypes:
    - BIO*
    - unsigned char*
    - long
    - int
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: ASN1_parse
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c
    functionUses: 0
    functionsReached:
    - asn1_parse2
    linkageType: ''
    returnType: int
    signature: ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_parse2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - bp
    - pp
    - len
    - indent
    - dump
    argTypes:
    - BIO*
    - unsigned char*
    - long
    - int
    - int
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: ASN1_parse_dump
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c
    functionUses: 1
    functionsReached:
    - asn1_parse2
    linkageType: ''
    returnType: int
    signature: "ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int indent,\n
      \                   int dump)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:82,1
    - Dst: ASN1_get_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:91,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:93,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:103,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:108,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:112,1
    - Dst: asn1_print_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:115,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:121,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:124,1
    - Dst: asn1_parse2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:130,1
    - Dst: asn1_parse2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:147,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:159,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:170,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:172,1
    - Dst: d2i_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:177,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:178,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:180,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:182,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:188,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:193,1
    - Dst: d2i_ASN1_OCTET_STRING
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:200,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:218,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:220,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:227,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:230,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:237,1
    - Dst: BIO_dump_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:240,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:250,1
    - Dst: d2i_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:257,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:259,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:262,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:265,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:269,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:273,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:277,1
    - Dst: d2i_ASN1_ENUMERATED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:283,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:285,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:288,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:291,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:295,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:299,1
    - Dst: ASN1_ENUMERATED_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:303,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:306,1
    - Dst: BIO_dump_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:309,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:318,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:321,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:324,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:329,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:342,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c:343,1
    CyclomaticComplexity: 138
    EdgeCount: 138
    ICount: 260
    argCount: 7
    argNames:
    - bp
    - pp
    - length
    - offset
    - depth
    - indent
    - dump
    argTypes:
    - BIO*
    - unsigned char**
    - long
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 346
      start: 69
    functionDepth: 4
    functionLinenumber: 69
    functionLinenumberEnd: 346
    functionName: asn1_parse2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c
    functionUses: 3
    functionsReached:
    - asn1_parse2
    - BIO_dump_indent
    - BIO_puts
    - i2a_ASN1_OBJECT
    - ASN1_get_object
    - d2i_ASN1_OCTET_STRING
    - ASN1_INTEGER_free
    - asn1_print_info
    - d2i_ASN1_ENUMERATED
    - ASN1_OCTET_STRING_free
    - ASN1_ENUMERATED_free
    - ASN1_OBJECT_free
    - d2i_ASN1_OBJECT
    - d2i_ASN1_INTEGER
    - BIO_printf
    - BIO_write
    linkageType: ''
    returnType: int
    signature: "asn1_parse2(BIO *bp, const unsigned char **pp, long length,\n                       int
      offset, int depth, int indent, int dump)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - tag
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 375
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 375
    functionName: ASN1_tag2str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*ASN1_tag2str(int tag)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - arg
    - buf
    - len
    argTypes:
    - void*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: send_bio_chars
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - BIO_write
    linkageType: ''
    returnType: int
    signature: send_bio_chars(void *arg, const void *buf, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - arg
    - buf
    - len
    argTypes:
    - void*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: send_fp_chars
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: int
    signature: send_fp_chars(void *arg, const void *buf, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:76,1
    - Dst: io_ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:77,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:82,1
    - Dst: io_ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:83,1
    - Dst: io_ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:97,1
    - Dst: io_ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:101,1
    - Dst: io_ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:103,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:110,1
    - Dst: io_ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:111,1
    - Dst: io_ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:120,1
    - Dst: io_ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:124,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 5
    argNames:
    - c
    - flags
    - do_quotes
    - io_ch
    - arg
    argTypes:
    - unsigned long
    - unsigned char
    - char*
    - char_io*
    - void*
    constantsTouched: []
    func_position:
      end: 127
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 127
    functionName: do_esc_char
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - io_ch
    - BIO_snprintf
    linkageType: ''
    returnType: int
    signature: "do_esc_char(unsigned long c, unsigned char flags, char *do_quotes,\n
      \                      char_io *io_ch, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UTF8_getc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:172,1
    - Dst: UTF8_putc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:185,1
    - Dst: do_esc_char
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:194,1
    - Dst: do_esc_char
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:202,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 7
    argNames:
    - buf
    - buflen
    - type
    - flags
    - quotes
    - io_ch
    - arg
    argTypes:
    - unsigned char*
    - int
    - int
    - unsigned short
    - char*
    - char_io*
    - void*
    constantsTouched: []
    func_position:
      end: 210
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 210
    functionName: do_buf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - do_esc_char
    - UTF8_putc
    - UTF8_getc
    linkageType: ''
    returnType: int
    signature: "do_buf(unsigned char *buf, int buflen,\n                  int type,
      unsigned short flags, char *quotes, char_io *io_ch,\n                  void
      *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io_ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - io_ch
    - arg
    - buf
    - buflen
    argTypes:
    - char_io*
    - void*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 232
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 232
    functionName: do_hex_dump
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - io_ch
    linkageType: ''
    returnType: int
    signature: "do_hex_dump(char_io *io_ch, void *arg, unsigned char *buf,\n                       int
      buflen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io_ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:251,1
    - Dst: do_hex_dump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:255,1
    - Dst: i2d_ASN1_TYPE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:262,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:263,1
    - Dst: i2d_ASN1_TYPE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:267,1
    - Dst: do_hex_dump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:268,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:269,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - lflags
    - io_ch
    - arg
    - str
    argTypes:
    - unsigned long
    - char_io*
    - void*
    - ASN1_STRING*
    constantsTouched: []
    func_position:
      end: 273
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 273
    functionName: do_dump
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - i2d_ASN1_TYPE
    - io_ch
    - do_hex_dump
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "do_dump(unsigned long lflags, char_io *io_ch, void *arg,\n                   const
      ASN1_STRING *str)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_tag2str
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:315,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:316,1
    - Dst: io_ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:317,1
    - Dst: io_ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:317,1
    - Dst: do_dump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:341,1
    - Dst: do_buf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:360,1
    - Dst: io_ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:368,1
    - Dst: do_buf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:370,1
    - Dst: io_ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:372,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 49
    argCount: 4
    argNames:
    - io_ch
    - arg
    - lflags
    - str
    argTypes:
    - char_io*
    - void*
    - unsigned long
    - ASN1_STRING*
    constantsTouched: []
    func_position:
      end: 375
      start: 298
    functionDepth: 4
    functionLinenumber: 298
    functionLinenumberEnd: 375
    functionName: do_print_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - ASN1_tag2str
    - do_dump
    - strlen
    - io_ch
    - do_buf
    linkageType: ''
    returnType: int
    signature: "do_print_ex(char_io *io_ch, void *arg, unsigned long lflags,\n                       const
      ASN1_STRING *str)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io_ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - io_ch
    - arg
    - indent
    argTypes:
    - char_io*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 386
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 386
    functionName: do_indent
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - io_ch
    linkageType: ''
    returnType: int
    signature: do_indent(char_io *io_ch, void *arg, int indent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:407,1
    - Dst: X509_NAME_entry_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:455,1
    - Dst: X509_NAME_get_entry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:458,1
    - Dst: X509_NAME_get_entry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:460,1
    - Dst: X509_NAME_ENTRY_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:462,1
    - Dst: io_ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:463,1
    - Dst: io_ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:467,1
    - Dst: do_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:470,1
    - Dst: X509_NAME_ENTRY_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:475,1
    - Dst: X509_NAME_ENTRY_get_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:476,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:477,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:478,1
    - Dst: OBJ_obj2txt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:482,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:488,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:491,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:497,1
    - Dst: io_ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:498,1
    - Dst: do_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:501,1
    - Dst: io_ch
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:505,1
    - Dst: do_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:519,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 107
    argCount: 5
    argNames:
    - io_ch
    - arg
    - n
    - indent
    - flags
    argTypes:
    - char_io*
    - void*
    - X509_NAME*
    - int
    - unsigned long
    constantsTouched: []
    func_position:
      end: 525
      start: 391
    functionDepth: 5
    functionLinenumber: 391
    functionLinenumberEnd: 525
    functionName: do_name_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - do_indent
    - OBJ_obj2nid
    - X509_NAME_get_entry
    - X509_NAME_ENTRY_get_data
    - OBJ_obj2txt
    - X509_NAME_ENTRY_set
    - OBJ_nid2sn
    - io_ch
    - strlen
    - X509_NAME_ENTRY_get_object
    - X509_NAME_entry_count
    - do_print_ex
    linkageType: ''
    returnType: int
    signature: "do_name_ex(char_io *io_ch, void *arg, const X509_NAME *n,\n                      int
      indent, unsigned long flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:533,1
    - Dst: do_name_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - out
    - nm
    - indent
    - flags
    argTypes:
    - BIO*
    - X509_NAME*
    - int
    - unsigned long
    constantsTouched: []
    func_position:
      end: 535
      start: 529
    functionDepth: 6
    functionLinenumber: 529
    functionLinenumberEnd: 535
    functionName: X509_NAME_print_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c
    functionUses: 6
    functionsReached:
    - X509_NAME_print
    - do_name_ex
    linkageType: ''
    returnType: int
    signature: "X509_NAME_print_ex(BIO *out, const X509_NAME *nm, int indent,\n                       unsigned
      long flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:544,1
    - Dst: X509_NAME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:547,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:548,1
    - Dst: do_name_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - fp
    - nm
    - indent
    - flags
    argTypes:
    - FILE*
    - X509_NAME*
    - int
    - unsigned long
    constantsTouched: []
    func_position:
      end: 552
      start: 538
    functionDepth: 6
    functionLinenumber: 538
    functionLinenumberEnd: 552
    functionName: X509_NAME_print_ex_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - X509_NAME_print
    - BIO_new_fp
    - BIO_free
    - do_name_ex
    linkageType: ''
    returnType: int
    signature: "X509_NAME_print_ex_fp(FILE *fp, const X509_NAME *nm, int indent,\n
      \                         unsigned long flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - str
    - flags
    argTypes:
    - BIO*
    - ASN1_STRING*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 558
      start: 555
    functionDepth: 5
    functionLinenumber: 555
    functionLinenumberEnd: 558
    functionName: ASN1_STRING_print_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c
    functionUses: 1
    functionsReached:
    - do_print_ex
    linkageType: ''
    returnType: int
    signature: ASN1_STRING_print_ex(BIO *out, const ASN1_STRING *str, unsigned long
      flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fp
    - str
    - flags
    argTypes:
    - FILE*
    - ASN1_STRING*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 564
      start: 561
    functionDepth: 5
    functionLinenumber: 561
    functionLinenumberEnd: 564
    functionName: ASN1_STRING_print_ex_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - do_print_ex
    linkageType: ''
    returnType: int
    signature: ASN1_STRING_print_ex_fp(FILE *fp, const ASN1_STRING *str, unsigned
      long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_mbstring_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c:589,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - unsigned char**
    - ASN1_STRING*
    constantsTouched: []
    func_position:
      end: 595
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 595
    functionName: ASN1_STRING_to_UTF8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c
    functionUses: 2
    functionsReached:
    - ASN1_mbstring_copy
    linkageType: ''
    returnType: int
    signature: ASN1_STRING_to_UTF8(unsigned char **out, const ASN1_STRING *in)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 30
    argCount: 1
    argNames:
    - host
    argTypes:
    - ASN1_STRING*
    constantsTouched: []
    func_position:
      end: 645
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 645
    functionName: asn1_valid_host
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: asn1_valid_host(const ASN1_STRING *host)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p8_pkey.c:24,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    constantsTouched: []
    func_position:
      end: 27
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 27
    functionName: pkey_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p8_pkey.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "pkey_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n                   void
      *exarg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p8_pkey.c:43,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p8_pkey.c:46,1
    - Dst: ASN1_STRING_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p8_pkey.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 7
    argNames:
    - priv
    - aobj
    - version
    - ptype
    - pval
    - penc
    - penclen
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - ASN1_OBJECT*
    - int
    - int
    - void*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 51
      start: 38
    functionDepth: 4
    functionLinenumber: 38
    functionLinenumberEnd: 51
    functionName: PKCS8_pkey_set0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p8_pkey.c
    functionUses: 4
    functionsReached:
    - ASN1_STRING_set0
    - X509_ALGOR_set0
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: int
    signature: "PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj,\n                    int
      version,\n                    int ptype, void *pval, unsigned char *penc, int
      penclen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p8_pkey.c:60,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p8_pkey.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - ppkalg
    - pk
    - ppklen
    - pa
    - p8
    argTypes:
    - ASN1_OBJECT**
    - unsigned char**
    - int*
    - X509_ALGOR**
    - PKCS8_PRIV_KEY_INFO*
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: PKCS8_pkey_get0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p8_pkey.c
    functionUses: 5
    functionsReached:
    - ASN1_STRING_length
    - ASN1_STRING_get0_data
    linkageType: ''
    returnType: int
    signature: "PKCS8_pkey_get0(const ASN1_OBJECT **ppkalg,\n                    const
      unsigned char **pk, int *ppklen,\n                    const X509_ALGOR **pa,
      const PKCS8_PRIV_KEY_INFO *p8)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p8
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: PKCS8_pkey_get0_attrs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p8_pkey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: '*

      PKCS8_pkey_get0_attrs(const PKCS8_PRIV_KEY_INFO *p8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p8_pkey.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - p8
    - nid
    - type
    - bytes
    - len
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - int
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: PKCS8_pkey_add1_attr_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p8_pkey.c
    functionUses: 1
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "PKCS8_pkey_add1_attr_by_NID(PKCS8_PRIV_KEY_INFO *p8, int nid, int
      type,\n                                const unsigned char *bytes, int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:61,1
    - Dst: EVP_PBE_scrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:65,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:66,1
    - Dst: EVP_CIPHER_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:71,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:73,1
    - Dst: PBE2PARAM_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:78,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:85,1
    - Dst: ASN1_TYPE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:86,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:91,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:93,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:93,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:94,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:94,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:98,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:103,1
    - Dst: EVP_CIPHER_param_to_asn1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:105,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:106,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:110,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:116,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:120,1
    - Dst: pkcs5_scrypt_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:122,1
    - Dst: X509_ALGOR_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:129,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:133,1
    - Dst: ASN1_TYPE_pack_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:137,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:137,1
    - Dst: PBE2PARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:141,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:147,1
    - Dst: PBE2PARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:150,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:151,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:152,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 75
    argCount: 7
    argNames:
    - cipher
    - salt
    - saltlen
    - aiv
    - N
    - r
    - p
    argTypes:
    - EVP_CIPHER*
    - unsigned char*
    - int
    - unsigned char*
    - uint64_t
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 155
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 155
    functionName: PKCS5_pbe2_set_scrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - pkcs5_scrypt_set
    - EVP_CipherInit_ex
    - PBE2PARAM_free
    - ASN1err
    - EVP_CIPHER_param_to_asn1
    - OBJ_nid2obj
    - ASN1_TYPE_new
    - EVP_CIPHER_iv_length
    - EVP_PBE_scrypt
    - EVP_CIPHER_key_length
    - EVP_CIPHER_CTX_new
    - X509_ALGOR_new
    - ASN1_TYPE_pack_sequence
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_type
    - ASN1_ITEM_rptr
    - memcpy
    - X509_ALGOR_free
    - PBE2PARAM_new
    linkageType: ''
    returnType: X509_ALGOR
    signature: "*PKCS5_pbe2_set_scrypt(const EVP_CIPHER *cipher,\n                                  const
      unsigned char *salt, int saltlen,\n                                  unsigned
      char *aiv, uint64_t N, uint64_t r,\n                                  uint64_t
      p)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SCRYPT_PARAMS_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:162,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:171,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:174,1
    - Dst: ASN1_INTEGER_set_uint64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:177,1
    - Dst: ASN1_INTEGER_set_uint64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:180,1
    - Dst: ASN1_INTEGER_set_uint64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:183,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:189,1
    - Dst: ASN1_INTEGER_set_int64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:192,1
    - Dst: X509_ALGOR_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:198,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:202,1
    - Dst: ASN1_TYPE_pack_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:206,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:206,1
    - Dst: SCRYPT_PARAMS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:210,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:214,1
    - Dst: SCRYPT_PARAMS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:216,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:217,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 48
    argCount: 6
    argNames:
    - salt
    - saltlen
    - keylen
    - N
    - r
    - p
    argTypes:
    - unsigned char*
    - size_t
    - size_t
    - uint64_t
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 219
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 219
    functionName: pkcs5_scrypt_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c
    functionUses: 1
    functionsReached:
    - RAND_bytes
    - SCRYPT_PARAMS_new
    - ASN1_STRING_set
    - ASN1_TYPE_pack_sequence
    - ASN1_INTEGER_new
    - X509_ALGOR_new
    - ASN1_INTEGER_set_int64
    - OBJ_nid2obj
    - X509_ALGOR_free
    - ASN1_ITEM_rptr
    - SCRYPT_PARAMS_free
    - ASN1_INTEGER_set_uint64
    - ASN1err
    linkageType: ''
    returnType: X509_ALGOR
    signature: "*pkcs5_scrypt_set(const unsigned char *salt, size_t saltlen,\n                                    size_t
      keylen, uint64_t N, uint64_t r,\n                                    uint64_t
      p)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:232,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:233,1
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:239,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:239,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:242,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:246,1
    - Dst: ASN1_INTEGER_get_uint64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:252,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:254,1
    - Dst: ASN1_INTEGER_get_uint64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:260,1
    - Dst: ASN1_INTEGER_get_uint64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:261,1
    - Dst: ASN1_INTEGER_get_uint64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:262,1
    - Dst: EVP_PBE_scrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:263,1
    - Dst: EVPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:264,1
    - Dst: EVP_PBE_scrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:273,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:276,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:279,1
    - Dst: SCRYPT_PARAMS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c:280,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 7
    argNames:
    - ctx
    - pass
    - passlen
    - param
    - c
    - md
    - en_de
    argTypes:
    - EVP_CIPHER_CTX*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER*
    - EVP_MD*
    - int
    constantsTouched: []
    func_position:
      end: 282
      start: 221
    functionDepth: 5
    functionLinenumber: 221
    functionLinenumberEnd: 282
    functionName: PKCS5_v2_scrypt_keyivgen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_cipher
    - EVPerr
    - ASN1_ITEM_rptr
    - SCRYPT_PARAMS_free
    - ASN1_TYPE_unpack_sequence
    - EVP_CIPHER_CTX_key_length
    - ASN1_INTEGER_get_uint64
    - EVP_CipherInit_ex
    - OPENSSL_cleanse
    - EVP_PBE_scrypt
    linkageType: ''
    returnType: int
    signature: "PKCS5_v2_scrypt_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass,\n
      \                            int passlen, ASN1_TYPE *param,\n                             const
      EVP_CIPHER *c, const EVP_MD *md, int en_de)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pu.c:28,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pu.c:29,1
    - Dst: EVP_PKEY_set_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pu.c:35,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pu.c:36,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pu.c:40,1
    - Dst: d2i_RSAPublicKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pu.c:43,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pu.c:44,1
    - Dst: d2i_DSAPublicKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pu.c:52,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pu.c:53,1
    - Dst: o2i_ECPublicKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pu.c:60,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pu.c:61,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pu.c:67,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pu.c:76,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 48
    argCount: 4
    argNames:
    - type
    - a
    - pp
    - length
    argTypes:
    - int
    - EVP_PKEY**
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 78
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 78
    functionName: d2i_PublicKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pu.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKEY_id
    - d2i_DSAPublicKey
    - EVP_PKEY_set_type
    - d2i_RSAPublicKey
    - o2i_ECPublicKey
    - EVP_PKEY_new
    - ASN1err
    linkageType: ''
    returnType: EVP_PKEY
    signature: "*d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp,\n
      \                       long length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - sig
    - palg
    - pdigest
    argTypes:
    - X509_SIG*
    - X509_ALGOR**
    - ASN1_OCTET_STRING**
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: X509_SIG_get0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_sig.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "X509_SIG_get0(const X509_SIG *sig, const X509_ALGOR **palg,\n                   const
      ASN1_OCTET_STRING **pdigest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - sig
    - palg
    - pdigest
    argTypes:
    - X509_SIG*
    - X509_ALGOR**
    - ASN1_OCTET_STRING**
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: X509_SIG_getm
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_sig.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "X509_SIG_getm(X509_SIG *sig, X509_ALGOR **palg,\n                   ASN1_OCTET_STRING
      **pdigest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_gmtime_adj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c:100,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 91
    argCount: 2
    argNames:
    - tm
    - d
    argTypes:
    - struct tm*
    - ASN1_UTCTIME*
    constantsTouched: []
    func_position:
      end: 106
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 106
    functionName: asn1_utctime_to_tm
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c
    functionUses: 1
    functionsReached:
    - OPENSSL_gmtime_adj
    linkageType: ''
    returnType: int
    signature: asn1_utctime_to_tm(struct tm *tm, const ASN1_UTCTIME *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_utctime_to_tm
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - ASN1_UTCTIME*
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: ASN1_UTCTIME_check
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c
    functionUses: 1
    functionsReached:
    - asn1_utctime_to_tm
    linkageType: ''
    returnType: int
    signature: ASN1_UTCTIME_check(const ASN1_UTCTIME *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c:118,1
    - Dst: ASN1_UTCTIME_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c:120,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - s
    - str
    argTypes:
    - ASN1_UTCTIME*
    - char*
    constantsTouched: []
    func_position:
      end: 129
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 129
    functionName: ASN1_UTCTIME_set_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c
    functionUses: 0
    functionsReached:
    - strlen
    - ASN1_STRING_set
    - ASN1_UTCTIME_check
    linkageType: ''
    returnType: int
    signature: ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_UTCTIME_adj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - ASN1_UTCTIME*
    - time_t
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: ASN1_UTCTIME_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c
    functionUses: 0
    functionsReached:
    - ASN1_UTCTIME_adj
    linkageType: ''
    returnType: ASN1_UTCTIME
    signature: '*ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_UTCTIME_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c:146,1
    - Dst: OPENSSL_gmtime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c:152,1
    - Dst: OPENSSL_gmtime_adj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c:157,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c:166,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c:168,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c:171,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c:175,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c:178,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c:181,1
    - Dst: ASN1_UTCTIME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c:186,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 4
    argNames:
    - s
    - t
    - offset_day
    - offset_sec
    argTypes:
    - ASN1_UTCTIME*
    - time_t
    - int
    - long
    constantsTouched: []
    func_position:
      end: 188
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 188
    functionName: ASN1_UTCTIME_adj
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c
    functionUses: 3
    functionsReached:
    - OPENSSL_gmtime
    - ebcdic2ascii
    - BIO_snprintf
    - ASN1_UTCTIME_free
    - OPENSSL_gmtime_adj
    - strlen
    - ASN1_UTCTIME_new
    - OPENSSL_free
    - OPENSSL_malloc
    - ASN1err
    linkageType: ''
    returnType: ASN1_UTCTIME
    signature: "*ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t,\n                               int
      offset_day, long offset_sec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_utctime_to_tm
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c:195,1
    - Dst: OPENSSL_gmtime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c:198,1
    - Dst: OPENSSL_gmtime_diff
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c:201,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - ASN1_UTCTIME*
    - time_t
    constantsTouched: []
    func_position:
      end: 213
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 213
    functionName: ASN1_UTCTIME_cmp_time_t
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c
    functionUses: 0
    functionsReached:
    - asn1_utctime_to_tm
    - OPENSSL_gmtime
    - OPENSSL_gmtime_diff
    linkageType: ''
    returnType: int
    signature: ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c:245,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c:252,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 2
    argNames:
    - bp
    - tm
    argTypes:
    - BIO*
    - ASN1_UTCTIME*
    constantsTouched: []
    func_position:
      end: 254
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 254
    functionName: ASN1_UTCTIME_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c
    functionUses: 2
    functionsReached:
    - BIO_printf
    - BIO_write
    linkageType: ''
    returnType: int
    signature: ASN1_UTCTIME_print(BIO *bp, const ASN1_UTCTIME *tm)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: long_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_long.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: long_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: long_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_long.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: long_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_long.c:69,1
    - Dst: BN_num_bits_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_long.c:82,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - pval
    - cont
    - putype
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int*
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 103
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 103
    functionName: long_i2c
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_long.c
    functionUses: 0
    functionsReached:
    - BN_num_bits_word
    - memcpy
    linkageType: ''
    returnType: int
    signature: "long_i2c(ASN1_VALUE **pval, unsigned char *cont, int *putype,\n                    const
      ASN1_ITEM *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_long.c:113,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_long.c:135,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_long.c:138,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 6
    argNames:
    - pval
    - cont
    - len
    - utype
    - free_cont
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int
    - int
    - char*
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 140
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 140
    functionName: long_c2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_long.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ASN1err
    linkageType: ''
    returnType: int
    signature: "long_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,\n
      \                   int utype, char *free_cont, const ASN1_ITEM *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_long.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - pval
    - it
    - indent
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: long_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_long.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "long_print(BIO *out, ASN1_VALUE **pval, const ASN1_ITEM *it,\n                      int
      indent, const ASN1_PCTX *pctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:56,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:57,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c
    functionUses: 22
    functionsReached:
    - OSSL_NELEM
    - fprintf
    - OBJ_nid2sn
    linkageType: ''
    returnType: void
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY_ASN1_METHOD**
    - EVP_PKEY_ASN1_METHOD**
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: ameth_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "ameth_cmp(const EVP_PKEY_ASN1_METHOD *const *a,\n                     const
      EVP_PKEY_ASN1_METHOD *const *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PKEY_ASN1_METHOD_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: EVP_PKEY_asn1_get_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached:
    - sk_EVP_PKEY_ASN1_METHOD_num
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_asn1_get_count(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PKEY_ASN1_METHOD_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: EVP_PKEY_asn1_get0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached:
    - sk_EVP_PKEY_ASN1_METHOD_value
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: '*EVP_PKEY_asn1_get0(int idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PKEY_ASN1_METHOD_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:101,1
    - Dst: sk_EVP_PKEY_ASN1_METHOD_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:103,1
    - Dst: OBJ_bsearch_ameth
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:105,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 109
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 109
    functionName: pkey_asn1_find
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached:
    - sk_EVP_PKEY_ASN1_METHOD_value
    - OSSL_NELEM
    - sk_EVP_PKEY_ASN1_METHOD_find
    - OBJ_bsearch_ameth
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: '*pkey_asn1_find(int type)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pkey_asn1_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:122,1
    - Dst: ENGINE_get_pkey_asn1_meth_engine
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:131,1
    - Dst: ENGINE_get_pkey_asn1_meth
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:134,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - pe
    - type
    argTypes:
    - ENGINE**
    - int
    constantsTouched: []
    func_position:
      end: 140
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 140
    functionName: EVP_PKEY_asn1_find
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c
    functionUses: 3
    functionsReached:
    - ENGINE_get_pkey_asn1_meth
    - pkey_asn1_find
    - ENGINE_get_pkey_asn1_meth_engine
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: '*EVP_PKEY_asn1_find(ENGINE **pe, int type)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:148,1
    - Dst: ENGINE_pkey_asn1_find_str
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:152,1
    - Dst: ENGINE_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:157,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:159,1
    - Dst: EVP_PKEY_asn1_get_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:166,1
    - Dst: EVP_PKEY_asn1_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:167,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:170,1
    - Dst: strncasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:171,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - pe
    - str
    - len
    argTypes:
    - ENGINE**
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 175
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 175
    functionName: EVP_PKEY_asn1_find_str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c
    functionUses: 3
    functionsReached:
    - strncasecmp
    - EVP_PKEY_asn1_get_count
    - ENGINE_init
    - ENGINE_free
    - strlen
    - EVP_PKEY_asn1_get0
    - ENGINE_pkey_asn1_find_str
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: "*EVP_PKEY_asn1_find_str(ENGINE **pe,\n                                                   const
      char *str, int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PKEY_ASN1_METHOD_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:180,1
    - Dst: sk_EVP_PKEY_ASN1_METHOD_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:184,1
    - Dst: sk_EVP_PKEY_ASN1_METHOD_sort
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    constantsTouched: []
    func_position:
      end: 188
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 188
    functionName: EVP_PKEY_asn1_add0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached:
    - sk_EVP_PKEY_ASN1_METHOD_new
    - sk_EVP_PKEY_ASN1_METHOD_push
    - sk_EVP_PKEY_ASN1_METHOD_sort
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_asn1_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:193,1
    - Dst: EVP_PKEY_asn1_add0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:197,1
    - Dst: EVP_PKEY_asn1_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 202
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 202
    functionName: EVP_PKEY_asn1_add_alias
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_asn1_new
    - EVP_PKEY_asn1_add0
    - EVP_PKEY_asn1_free
    linkageType: ''
    returnType: int
    signature: EVP_PKEY_asn1_add_alias(int to, int from)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 6
    argNames:
    - ppkey_id
    - ppkey_base_id
    - ppkey_flags
    - pinfo
    - ppem_str
    - ameth
    argTypes:
    - int*
    - int*
    - int*
    - char**
    - char**
    - EVP_PKEY_ASN1_METHOD*
    constantsTouched: []
    func_position:
      end: 222
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 222
    functionName: EVP_PKEY_asn1_get0_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "EVP_PKEY_asn1_get0_info(int *ppkey_id, int *ppkey_base_id,\n                            int
      *ppkey_flags, const char **pinfo,\n                            const char **ppem_str,\n
      \                           const EVP_PKEY_ASN1_METHOD *ameth)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: EVP_PKEY_get0_asn1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: '*EVP_PKEY_get0_asn1(const EVP_PKEY *pkey)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:232,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:242,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:248,1
    - Dst: EVP_PKEY_asn1_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:256,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - id
    - flags
    - pem_str
    - info
    argTypes:
    - int
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 259
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 259
    functionName: EVP_PKEY_asn1_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_asn1_free
    - OPENSSL_strdup
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: "*EVP_PKEY_asn1_new(int id, int flags,\n                                        const
      char *pem_str, const char *info)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    - EVP_PKEY_ASN1_METHOD*
    constantsTouched: []
    func_position:
      end: 293
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 293
    functionName: EVP_PKEY_asn1_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst,\n                        const
      EVP_PKEY_ASN1_METHOD *src)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:298,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:299,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    constantsTouched: []
    func_position:
      end: 302
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 302
    functionName: EVP_PKEY_asn1_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    constantsTouched: []
    func_position:
      end: 323
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 323
    functionName: EVP_PKEY_asn1_set_public
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth,\n                              int
      (*pub_decode) (EVP_PKEY *pk,\n                                                 X509_PUBKEY
      *pub),\n                              int (*pub_encode) (X509_PUBKEY *pub,\n
      \                                                const EVP_PKEY *pk),\n                              int
      (*pub_cmp) (const EVP_PKEY *a,\n                                              const
      EVP_PKEY *b),\n                              int (*pub_print) (BIO *out,\n                                                const
      EVP_PKEY *pkey,\n                                                int indent,
      ASN1_PCTX *pctx),\n                              int (*pkey_size) (const EVP_PKEY
      *pk),\n                              int (*pkey_bits) (const EVP_PKEY *pk))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    constantsTouched: []
    func_position:
      end: 339
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 339
    functionName: EVP_PKEY_asn1_set_private
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth,\n                               int
      (*priv_decode) (EVP_PKEY *pk,\n                                                   const
      PKCS8_PRIV_KEY_INFO\n                                                   *p8inf),\n
      \                              int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8,\n
      \                                                  const EVP_PKEY *pk),\n                               int
      (*priv_print) (BIO *out,\n                                                  const
      EVP_PKEY *pkey,\n                                                  int indent,\n
      \                                                 ASN1_PCTX *pctx))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    constantsTouched: []
    func_position:
      end: 362
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 362
    functionName: EVP_PKEY_asn1_set_param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_asn1_set_param(EVP_PKEY_ASN1_METHOD *ameth,\n                             int
      (*param_decode) (EVP_PKEY *pkey,\n                                                  const
      unsigned char **pder,\n                                                  int
      derlen),\n                             int (*param_encode) (const EVP_PKEY *pkey,\n
      \                                                 unsigned char **pder),\n                             int
      (*param_missing) (const EVP_PKEY *pk),\n                             int (*param_copy)
      (EVP_PKEY *to,\n                                                const EVP_PKEY
      *from),\n                             int (*param_cmp) (const EVP_PKEY *a,\n
      \                                              const EVP_PKEY *b),\n                             int
      (*param_print) (BIO *out,\n                                                 const
      EVP_PKEY *pkey,\n                                                 int indent,
      ASN1_PCTX *pctx))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: EVP_PKEY_asn1_set_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_asn1_set_free(EVP_PKEY_ASN1_METHOD *ameth,\n                            void
      (*pkey_free) (EVP_PKEY *pkey))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    constantsTouched: []
    func_position:
      end: 375
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 375
    functionName: EVP_PKEY_asn1_set_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth,\n                            int
      (*pkey_ctrl) (EVP_PKEY *pkey, int op,\n                                              long
      arg1, void *arg2))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    constantsTouched: []
    func_position:
      end: 382
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 382
    functionName: EVP_PKEY_asn1_set_security_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_asn1_set_security_bits(EVP_PKEY_ASN1_METHOD *ameth,\n                                     int
      (*pkey_security_bits) (const EVP_PKEY\n                                                                *pk))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    constantsTouched: []
    func_position:
      end: 400
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 400
    functionName: EVP_PKEY_asn1_set_item
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth,\n                            int
      (*item_verify) (EVP_MD_CTX *ctx,\n                                                const
      ASN1_ITEM *it,\n                                                void *asn,\n
      \                                               X509_ALGOR *a,\n                                                ASN1_BIT_STRING
      *sig,\n                                                EVP_PKEY *pkey),\n                            int
      (*item_sign) (EVP_MD_CTX *ctx,\n                                              const
      ASN1_ITEM *it,\n                                              void *asn,\n                                              X509_ALGOR
      *alg1,\n                                              X509_ALGOR *alg2,\n                                              ASN1_BIT_STRING
      *sig))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_int.c:26,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_int.c:32,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_int.c:38,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_int.c:44,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 52
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 52
    functionName: i2a_ASN1_INTEGER
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_int.c
    functionUses: 3
    functionsReached:
    - BIO_write
    linkageType: ''
    returnType: int
    signature: i2a_ASN1_INTEGER(BIO *bp, const ASN1_INTEGER *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_int.c:63,1
    - Dst: isxdigit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_int.c:89,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_int.c:114,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_int.c:115,1
    - Dst: OPENSSL_clear_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_int.c:120,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_int.c:122,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_int.c:123,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_int.c:131,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_int.c:133,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_int.c:143,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_int.c:151,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_int.c:152,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 83
    argCount: 4
    argNames:
    - bp
    - bs
    - buf
    - size
    argTypes:
    - BIO*
    - ASN1_INTEGER*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 154
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 154
    functionName: a2i_ASN1_INTEGER
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_int.c
    functionUses: 0
    functionsReached:
    - OPENSSL_hexchar2int
    - OPENSSL_clear_realloc
    - isxdigit
    - BIO_gets
    - OPENSSL_free
    - ASN1err
    linkageType: ''
    returnType: int
    signature: a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_int.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - ASN1_ENUMERATED*
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: i2a_ASN1_ENUMERATED
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_int.c
    functionUses: 0
    functionsReached:
    - i2a_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: i2a_ASN1_ENUMERATED(BIO *bp, const ASN1_ENUMERATED *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - bp
    - bs
    - buf
    - size
    argTypes:
    - BIO*
    - ASN1_ENUMERATED*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: a2i_ASN1_ENUMERATED
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_int.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_pkey.c:27,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_pkey.c:29,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_pkey.c:36,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_pkey.c:40,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - bp
    - buf
    - buflen
    - indent
    argTypes:
    - BIO*
    - unsigned char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 43
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 43
    functionName: ASN1_buf_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_pkey.c
    functionUses: 2
    functionsReached:
    - BIO_printf
    - BIO_write
    - BIO_indent
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: ASN1_buf_print(BIO *bp, const unsigned char *buf, size_t buflen, int
      indent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_pkey.c:55,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_pkey.c:56,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_pkey.c:58,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_pkey.c:59,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_pkey.c:64,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_pkey.c:65,1
    - Dst: bn_get_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_pkey.c:66,1
    - Dst: bn_get_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_pkey.c:67,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_pkey.c:72,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_pkey.c:73,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_pkey.c:77,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_pkey.c:80,1
    - Dst: ASN1_buf_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_pkey.c:87,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_pkey.c:91,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 5
    argNames:
    - bp
    - number
    - num
    - ign
    - indent
    argTypes:
    - BIO*
    - char*
    - BIGNUM*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 93
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 93
    functionName: ASN1_bn_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_pkey.c
    functionUses: 4
    functionsReached:
    - BIO_indent
    - BN_is_zero
    - bn_get_words
    - BN_is_negative
    - ASN1_buf_print
    - OPENSSL_clear_free
    - BIO_printf
    - BN_bn2bin
    - OPENSSL_malloc
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: "ASN1_bn_print(BIO *bp, const char *number, const BIGNUM *num,\n                  unsigned
      char *ign, int indent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_generate_v3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:83,1
    - Dst: X509V3_set_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:85,1
    - Dst: ASN1_generate_v3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - str
    - nconf
    argTypes:
    - char*
    - CONF*
    constantsTouched: []
    func_position:
      end: 87
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 87
    functionName: ASN1_generate_nconf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c
    functionUses: 0
    functionsReached:
    - X509V3_set_nconf
    - ASN1_generate_v3
    linkageType: ''
    returnType: ASN1_TYPE
    signature: '*ASN1_generate_nconf(const char *str, CONF *nconf)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: generate_v3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:92,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - cnf
    argTypes:
    - char*
    - X509V3_CTX*
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: ASN1_generate_v3
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c
    functionUses: 1
    functionsReached:
    - generate_v3
    - ASN1err
    linkageType: ''
    returnType: ASN1_TYPE
    signature: '*ASN1_generate_v3(const char *str, X509V3_CTX *cnf)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONF_parse_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:120,1
    - Dst: asn1_multi
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:135,1
    - Dst: asn1_str2type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:137,1
    - Dst: i2d_ASN1_TYPE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:147,1
    - Dst: ASN1_TYPE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:148,1
    - Dst: ASN1_get_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:157,1
    - Dst: ASN1_object_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:178,1
    - Dst: ASN1_object_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:190,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:195,1
    - Dst: ASN1_put_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:207,1
    - Dst: ASN1_put_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:220,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:225,1
    - Dst: d2i_ASN1_TYPE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:230,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:233,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:234,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 71
    argCount: 4
    argNames:
    - str
    - cnf
    - depth
    - perr
    argTypes:
    - char*
    - X509V3_CTX*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 238
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 238
    functionName: generate_v3
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c
    functionUses: 2
    functionsReached:
    - i2d_ASN1_TYPE
    - d2i_ASN1_TYPE
    - asn1_multi
    - ASN1_put_object
    - ASN1_get_object
    - CONF_parse_list
    - ASN1_object_size
    - memcpy
    - ASN1_TYPE_free
    - asn1_str2type
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: ASN1_TYPE
    signature: "*generate_v3(const char *str, X509V3_CTX *cnf, int depth,\n                              int
      *perr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_str2tag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:263,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:266,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:267,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:277,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:288,1
    - Dst: parse_tagging
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:291,1
    - Dst: parse_tagging
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:297,1
    - Dst: append_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:299,1
    - Dst: append_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:304,1
    - Dst: append_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:309,1
    - Dst: append_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:314,1
    - Dst: append_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:319,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:325,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:328,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:330,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:332,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:334,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:337,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 76
    argCount: 3
    argNames:
    - elem
    - len
    - bitstr
    argTypes:
    - char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 346
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 346
    functionName: asn1_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c
    functionUses: 6
    functionsReached:
    - asn1_str2tag
    - append_exp
    - strncmp
    - ERR_add_error_data
    - parse_tagging
    - ASN1err
    linkageType: ''
    returnType: int
    signature: asn1_cb(const char *elem, int len, void *bitstr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:355,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:360,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:391,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:392,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 4
    argNames:
    - vstart
    - vlen
    - ptag
    - pclass
    argTypes:
    - char*
    - int
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 401
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 401
    functionName: parse_tagging
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c
    functionUses: 1
    functionsReached:
    - ERR_add_error_data
    - strtoul
    - ASN1err
    linkageType: ''
    returnType: int
    signature: parse_tagging(const char *vstart, int vlen, int *ptag, int *pclass)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:409,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:410,1
    - Dst: sk_ASN1_TYPE_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:414,1
    - Dst: X509V3_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:420,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:423,1
    - Dst: generate_v3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:425,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:425,1
    - Dst: sk_ASN1_TYPE_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:429,1
    - Dst: i2d_ASN1_SET_ANY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:439,1
    - Dst: i2d_ASN1_SEQUENCE_ANY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:441,1
    - Dst: ASN1_TYPE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:445,1
    - Dst: ASN1_STRING_type_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:447,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:458,1
    - Dst: sk_ASN1_TYPE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:460,1
    - Dst: X509V3_section_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:461,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 5
    argNames:
    - utype
    - section
    - cnf
    - depth
    - perr
    argTypes:
    - int
    - char*
    - X509V3_CTX*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 464
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 464
    functionName: asn1_multi
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c
    functionUses: 1
    functionsReached:
    - sk_CONF_VALUE_value
    - i2d_ASN1_SEQUENCE_ANY
    - STACK_OF
    - generate_v3
    - sk_CONF_VALUE_num
    - sk_ASN1_TYPE_pop_free
    - ASN1_TYPE_new
    - sk_ASN1_TYPE_push
    - sk_ASN1_TYPE_new_null
    - X509V3_get_section
    - X509V3_section_free
    - i2d_ASN1_SET_ANY
    - OPENSSL_free
    - ASN1_STRING_type_new
    linkageType: ''
    returnType: ASN1_TYPE
    signature: "*asn1_multi(int utype, const char *section, X509V3_CTX *cnf,\n                             int
      depth, int *perr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:472,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 6
    argNames:
    - arg
    - exp_tag
    - exp_class
    - exp_constructed
    - exp_pad
    - imp_ok
    argTypes:
    - tag_exp_arg*
    - int
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 500
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 500
    functionName: append_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c
    functionUses: 1
    functionsReached:
    - ASN1err
    linkageType: ''
    returnType: int
    signature: "append_exp(tag_exp_arg *arg, int exp_tag, int exp_class,\n                      int
      exp_constructed, int exp_pad, int imp_ok)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:506,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:507,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:508,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:509,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:510,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:511,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:512,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:513,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:514,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:515,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:516,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:517,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:518,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:519,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:520,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:521,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:522,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:523,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:524,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:525,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:526,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:527,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:528,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:529,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:530,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:531,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:532,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:533,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:534,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:535,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:536,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:537,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:538,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:539,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:540,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:541,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:544,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:545,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:546,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:549,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:550,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:552,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:553,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:555,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:557,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:559,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:561,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:562,1
    - Dst: ASN1_GEN_STR
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:563,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:567,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:570,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:571,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - tagstr
    - len
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 576
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 576
    functionName: asn1_str2tag
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c
    functionUses: 1
    functionsReached:
    - OSSL_NELEM
    - strlen
    - ASN1_GEN_STR
    - strncmp
    linkageType: ''
    returnType: int
    signature: asn1_str2tag(const char *tagstr, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:586,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:587,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:598,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:605,1
    - Dst: X509V3_get_value_bool
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:611,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:612,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:620,1
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:624,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:625,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:632,1
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:635,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:636,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:644,1
    - Dst: ASN1_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:647,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:648,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:651,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:652,1
    - Dst: ASN1_TIME_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:656,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:657,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:677,1
    - Dst: ASN1_mbstring_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:681,1
    - Dst: ASN1_tag2bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:682,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:683,1
    - Dst: ASN1_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:691,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:692,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:697,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:698,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:705,1
    - Dst: CONF_parse_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:708,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:710,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:716,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:729,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:737,1
    - Dst: ASN1_TYPE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:740,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 152
    argCount: 3
    argNames:
    - str
    - format
    - utype
    argTypes:
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 743
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 743
    functionName: asn1_str2type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c
    functionUses: 1
    functionsReached:
    - OBJ_txt2obj
    - ASN1_STRING_set
    - ASN1_TIME_check
    - ASN1_STRING_new
    - CONF_parse_list
    - OPENSSL_hexstr2buf
    - ASN1_TYPE_new
    - ERR_add_error_data
    - ASN1_tag2bit
    - s2i_ASN1_INTEGER
    - ASN1_TYPE_free
    - ASN1_mbstring_copy
    - ASN1err
    - X509V3_get_value_bool
    linkageType: ''
    returnType: ASN1_TYPE
    signature: '*asn1_str2type(const char *str, int format, int utype)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:751,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:755,1
    - Dst: ASN1_BIT_STRING_set_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:758,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:759,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - elem
    - len
    - bitstr
    argTypes:
    - char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 763
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 763
    functionName: bitstr_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c
    functionUses: 0
    functionsReached:
    - strtoul
    - ASN1_BIT_STRING_set_bit
    - ASN1err
    linkageType: ''
    returnType: int
    signature: bitstr_cb(const char *elem, int len, void *bitstr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:771,1
    - Dst: asn1_str2tag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:775,1
    - Dst: ASN1_tag2bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:778,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - elem
    - len
    - arg
    argTypes:
    - char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 783
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 783
    functionName: mask_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c
    functionUses: 0
    functionsReached:
    - strncmp
    - ASN1_tag2bit
    - asn1_str2tag
    linkageType: ''
    returnType: int
    signature: mask_cb(const char *elem, int len, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONF_parse_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - str
    - pmask
    argTypes:
    - char*
    - unsigned long*
    constantsTouched: []
    func_position:
      end: 789
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 789
    functionName: ASN1_str2mask
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c
    functionUses: 0
    functionsReached:
    - CONF_parse_list
    linkageType: ''
    returnType: int
    signature: ASN1_str2mask(const char *str, unsigned long *pmask)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_bignum.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: bn_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_bignum.c
    functionUses: 0
    functionsReached:
    - BN_new
    linkageType: ''
    returnType: int
    signature: bn_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_secure_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_bignum.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: bn_secure_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_bignum.c
    functionUses: 0
    functionsReached:
    - BN_secure_new
    linkageType: ''
    returnType: int
    signature: bn_secure_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_bignum.c:88,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_bignum.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: bn_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_bignum.c
    functionUses: 0
    functionsReached:
    - BN_free
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: bn_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_bignum.c:103,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_bignum.c:110,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_bignum.c:112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - pval
    - cont
    - putype
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int*
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 113
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 113
    functionName: bn_i2c
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_bignum.c
    functionUses: 0
    functionsReached:
    - BN_bn2bin
    - BN_num_bits
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: "bn_i2c(ASN1_VALUE **pval, unsigned char *cont, int *putype,\n                  const
      ASN1_ITEM *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_bignum.c:120,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_bignum.c:123,1
    - Dst: bn_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_bignum.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 6
    argNames:
    - pval
    - cont
    - len
    - utype
    - free_cont
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int
    - int
    - char*
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 128
      start: 115
    functionDepth: 4
    functionLinenumber: 115
    functionLinenumberEnd: 128
    functionName: bn_c2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_bignum.c
    functionUses: 0
    functionsReached:
    - bn_free
    - bn_new
    - BN_bin2bn
    linkageType: ''
    returnType: int
    signature: "bn_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,\n                  int
      utype, char *free_cont, const ASN1_ITEM *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_secure_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_bignum.c:134,1
    - Dst: bn_c2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_bignum.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - pval
    - cont
    - len
    - utype
    - free_cont
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int
    - int
    - char*
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 5
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: bn_secure_c2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_bignum.c
    functionUses: 0
    functionsReached:
    - bn_c2i
    - bn_secure_new
    linkageType: ''
    returnType: int
    signature: "bn_secure_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,\n
      \                        int utype, char *free_cont, const ASN1_ITEM *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_bignum.c:141,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_bignum.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - out
    - pval
    - it
    - indent
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: bn_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_bignum.c
    functionUses: 4
    functionsReached:
    - BN_print
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: "bn_print(BIO *out, ASN1_VALUE **pval, const ASN1_ITEM *it,\n                    int
      indent, const ASN1_PCTX *pctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_mbstring_ncopy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - in
    - len
    - inform
    - mask
    argTypes:
    - ASN1_STRING**
    - unsigned char*
    - int
    - int
    - unsigned long
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: ASN1_mbstring_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c
    functionUses: 3
    functionsReached:
    - ASN1_mbstring_ncopy
    linkageType: ''
    returnType: int
    signature: "ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int
      len,\n                       int inform, unsigned long mask)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:57,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:66,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:75,1
    - Dst: traverse_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:85,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:87,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:97,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:102,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:103,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:104,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:109,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:110,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:111,1
    - Dst: traverse_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:116,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:117,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:146,1
    - Dst: ASN1_STRING_type_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:152,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:154,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:161,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:162,1
    - Dst: traverse_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:187,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:191,1
    - Dst: ASN1_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:193,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:194,1
    - Dst: traverse_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:200,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 126
    argCount: 7
    argNames:
    - out
    - in
    - len
    - inform
    - mask
    - minsize
    - maxsize
    argTypes:
    - ASN1_STRING**
    - unsigned char*
    - int
    - int
    - unsigned long
    - long
    - long
    constantsTouched: []
    func_position:
      end: 202
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 202
    functionName: ASN1_mbstring_ncopy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c
    functionUses: 2
    functionsReached:
    - BIO_snprintf
    - ASN1_STRING_set
    - ASN1_STRING_free
    - strlen
    - ERR_add_error_data
    - OPENSSL_free
    - traverse_string
    - OPENSSL_malloc
    - ASN1err
    - ASN1_STRING_type_new
    linkageType: ''
    returnType: int
    signature: "ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int
      len,\n                        int inform, unsigned long mask,\n                        long
      minsize, long maxsize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UTF8_getc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:230,1
    - Dst: rfunc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:237,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 4
    argNames:
    - p
    - len
    - inform
    - arg
    argTypes:
    - unsigned char*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 243
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 243
    functionName: traverse_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c
    functionUses: 1
    functionsReached:
    - rfunc
    - UTF8_getc
    linkageType: ''
    returnType: int
    signature: "traverse_string(const unsigned char *p, int len, int inform,\n                           int
      (*rfunc) (unsigned long value, void *in),\n                           void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - value
    - arg
    argTypes:
    - unsigned long
    - void*
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: in_utf8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: in_utf8(unsigned long value, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UTF8_putc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - value
    - arg
    argTypes:
    - unsigned long
    - void*
    constantsTouched: []
    func_position:
      end: 265
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 265
    functionName: out_utf8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c
    functionUses: 0
    functionsReached:
    - UTF8_putc
    linkageType: ''
    returnType: int
    signature: out_utf8(unsigned long value, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_numeric
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:276,1
    - Dst: is_printable
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:278,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 2
    argNames:
    - value
    - arg
    argTypes:
    - unsigned long
    - void*
    constantsTouched: []
    func_position:
      end: 290
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 290
    functionName: type_str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c
    functionUses: 1
    functionsReached:
    - is_printable
    - is_numeric
    linkageType: ''
    returnType: int
    signature: type_str(unsigned long value, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - value
    - arg
    argTypes:
    - unsigned long
    - void*
    constantsTouched: []
    func_position:
      end: 302
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 302
    functionName: cpy_asc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: cpy_asc(unsigned long value, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - value
    - arg
    argTypes:
    - unsigned long
    - void*
    constantsTouched: []
    func_position:
      end: 315
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 315
    functionName: cpy_bmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: cpy_bmp(unsigned long value, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - value
    - arg
    argTypes:
    - unsigned long
    - void*
    constantsTouched: []
    func_position:
      end: 330
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 330
    functionName: cpy_univ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: cpy_univ(unsigned long value, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UTF8_putc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - value
    - arg
    argTypes:
    - unsigned long
    - void*
    constantsTouched: []
    func_position:
      end: 343
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 343
    functionName: cpy_utf8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c
    functionUses: 0
    functionsReached:
    - UTF8_putc
    linkageType: ''
    returnType: int
    signature: cpy_utf8(unsigned long value, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:363,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:372,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 21
    argCount: 1
    argNames:
    - value
    argTypes:
    - unsigned long
    constantsTouched: []
    func_position:
      end: 376
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 376
    functionName: is_printable
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c
    functionUses: 1
    functionsReached:
    - strchr
    linkageType: ''
    returnType: int
    signature: is_printable(unsigned long value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c:386,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - value
    argTypes:
    - unsigned long
    constantsTouched: []
    func_position:
      end: 395
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 395
    functionName: is_numeric
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c
    functionUses: 1
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: int
    signature: is_numeric(unsigned long value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_gmtime_adj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c:126,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 109
    argCount: 2
    argNames:
    - tm
    - d
    argTypes:
    - struct tm*
    - ASN1_GENERALIZEDTIME*
    constantsTouched: []
    func_position:
      end: 135
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 135
    functionName: asn1_generalizedtime_to_tm
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c
    functionUses: 1
    functionsReached:
    - OPENSSL_gmtime_adj
    linkageType: ''
    returnType: int
    signature: asn1_generalizedtime_to_tm(struct tm *tm, const ASN1_GENERALIZEDTIME
      *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_generalizedtime_to_tm
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - ASN1_GENERALIZEDTIME*
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: ASN1_GENERALIZEDTIME_check
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c
    functionUses: 2
    functionsReached:
    - asn1_generalizedtime_to_tm
    linkageType: ''
    returnType: int
    signature: ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c:147,1
    - Dst: ASN1_GENERALIZEDTIME_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c:149,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - s
    - str
    argTypes:
    - ASN1_GENERALIZEDTIME*
    - char*
    constantsTouched: []
    func_position:
      end: 158
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 158
    functionName: ASN1_GENERALIZEDTIME_set_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c
    functionUses: 2
    functionsReached:
    - strlen
    - ASN1_STRING_set
    - ASN1_GENERALIZEDTIME_check
    linkageType: ''
    returnType: int
    signature: ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char
      *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_GENERALIZEDTIME_adj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - ASN1_GENERALIZEDTIME*
    - time_t
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: ASN1_GENERALIZEDTIME_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c
    functionUses: 0
    functionsReached:
    - ASN1_GENERALIZEDTIME_adj
    linkageType: ''
    returnType: ASN1_GENERALIZEDTIME
    signature: "*ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s,\n                                               time_t
      t)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_GENERALIZEDTIME_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c:177,1
    - Dst: OPENSSL_gmtime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c:183,1
    - Dst: OPENSSL_gmtime_adj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c:188,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c:194,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c:196,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c:199,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c:203,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c:206,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c:209,1
    - Dst: ASN1_GENERALIZEDTIME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c:214,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 4
    argNames:
    - s
    - t
    - offset_day
    - offset_sec
    argTypes:
    - ASN1_GENERALIZEDTIME*
    - time_t
    - int
    - long
    constantsTouched: []
    func_position:
      end: 216
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 216
    functionName: ASN1_GENERALIZEDTIME_adj
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c
    functionUses: 3
    functionsReached:
    - OPENSSL_gmtime
    - ebcdic2ascii
    - BIO_snprintf
    - ASN1_GENERALIZEDTIME_free
    - OPENSSL_gmtime_adj
    - strlen
    - ASN1_GENERALIZEDTIME_new
    - OPENSSL_free
    - OPENSSL_malloc
    - ASN1err
    linkageType: ''
    returnType: ASN1_GENERALIZEDTIME
    signature: "*ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s,\n                                               time_t
      t, int offset_day,\n                                               long offset_sec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c:264,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c:271,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 36
    argCount: 2
    argNames:
    - bp
    - tm
    argTypes:
    - BIO*
    - ASN1_GENERALIZEDTIME*
    constantsTouched: []
    func_position:
      end: 273
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 273
    functionName: ASN1_GENERALIZEDTIME_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c
    functionUses: 5
    functionsReached:
    - BIO_printf
    - BIO_write
    linkageType: ''
    returnType: int
    signature: ASN1_GENERALIZEDTIME_print(BIO *bp, const ASN1_GENERALIZEDTIME *tm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c:23,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c:23,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c:24,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c:27,1
    - Dst: ASN1_i2d_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c:28,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - i2d
    - out
    - x
    argTypes:
    - i2d_of_void*
    - FILE*
    - void*
    constantsTouched: []
    func_position:
      end: 31
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 31
    functionName: ASN1_i2d_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c
    functionUses: 1
    functionsReached:
    - ASN1_i2d_bio
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - BIO_new
    - ASN1err
    linkageType: ''
    returnType: int
    signature: ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, void *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c:40,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c:41,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c:43,1
    - Dst: i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c:48,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c:51,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c:61,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - i2d
    - out
    - x
    argTypes:
    - i2d_of_void*
    - BIO*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 63
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 63
    functionName: ASN1_i2d_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c
    functionUses: 1
    functionsReached:
    - i2d
    - OPENSSL_free
    - BIO_write
    - OPENSSL_malloc
    - ASN1err
    linkageType: ''
    returnType: int
    signature: ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, unsigned char *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c:73,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c:73,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c:74,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c:77,1
    - Dst: ASN1_item_i2d_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c:78,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - it
    - out
    - x
    argTypes:
    - ASN1_ITEM*
    - FILE*
    - void*
    constantsTouched: []
    func_position:
      end: 81
      start: 68
    functionDepth: 4
    functionLinenumber: 68
    functionLinenumberEnd: 81
    functionName: ASN1_item_i2d_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c
    functionUses: 7
    functionsReached:
    - ASN1_item_i2d_bio
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - BIO_new
    - ASN1err
    linkageType: ''
    returnType: int
    signature: ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c:89,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c:91,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c:96,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - it
    - out
    - x
    argTypes:
    - ASN1_ITEM*
    - BIO*
    - void*
    constantsTouched: []
    func_position:
      end: 108
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 108
    functionName: ASN1_item_i2d_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c
    functionUses: 10
    functionsReached:
    - ASN1_item_i2d
    - OPENSSL_free
    - BIO_write
    - ASN1err
    linkageType: ''
    returnType: int
    signature: ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: BIO_f_asn1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_f_asn1(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:98,1
    - Dst: asn1_bio_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:102,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:103,1
    - Dst: BIO_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:106,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 110
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 110
    functionName: asn1_bio_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - asn1_bio_init
    - BIO_set_data
    - OPENSSL_zalloc
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: asn1_bio_new(BIO *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - BIO_ASN1_BUF_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 122
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 122
    functionName: asn1_bio_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: asn1_bio_init(BIO_ASN1_BUF_CTX *ctx, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:131,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:135,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:136,1
    - Dst: BIO_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:137,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 141
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 141
    functionName: asn1_bio_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - BIO_set_init
    - OPENSSL_free
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: asn1_bio_free(BIO *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:150,1
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:151,1
    - Dst: asn1_bio_setup_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:163,1
    - Dst: asn1_bio_flush_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:171,1
    - Dst: ASN1_object_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:180,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:181,1
    - Dst: ASN1_put_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:183,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:190,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:210,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:227,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:235,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:236,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 66
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 240
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 240
    functionName: asn1_bio_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - asn1_bio_setup_ex
    - OPENSSL_assert
    - ASN1_put_object
    - BIO_clear_retry_flags
    - ASN1_object_size
    - BIO_get_data
    - asn1_bio_flush_ex
    - BIO_next
    - BIO_copy_next_retry
    - BIO_write
    linkageType: ''
    returnType: int
    signature: asn1_bio_write(BIO *b, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:250,1
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:250,1
    - Dst: cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:258,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - b
    - ctx
    - cleanup
    - next
    argTypes:
    - BIO*
    - BIO_ASN1_BUF_CTX*
    - asn1_ps_func*
    - asn1_bio_state_t
    constantsTouched: []
    func_position:
      end: 265
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 265
    functionName: asn1_bio_flush_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c
    functionUses: 1
    functionsReached:
    - cleanup
    - BIO_write
    - BIO_next
    linkageType: ''
    returnType: int
    signature: "asn1_bio_flush_ex(BIO *b, BIO_ASN1_BUF_CTX *ctx,\n                             asn1_ps_func
      *cleanup, asn1_bio_state_t next)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:272,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:273,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - b
    - ctx
    - setup
    - ex_state
    - other_state
    argTypes:
    - BIO*
    - BIO_ASN1_BUF_CTX*
    - asn1_ps_func*
    - asn1_bio_state_t
    - asn1_bio_state_t
    constantsTouched: []
    func_position:
      end: 281
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 281
    functionName: asn1_bio_setup_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c
    functionUses: 1
    functionsReached:
    - BIO_clear_retry_flags
    - setup
    linkageType: ''
    returnType: int
    signature: "asn1_bio_setup_ex(BIO *b, BIO_ASN1_BUF_CTX *ctx,\n                             asn1_ps_func
      *setup,\n                             asn1_bio_state_t ex_state,\n                             asn1_bio_state_t
      other_state)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:285,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 289
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 289
    functionName: asn1_bio_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - BIO_read
    - BIO_next
    linkageType: ''
    returnType: int
    signature: asn1_bio_read(BIO *b, char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_bio_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:293,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: asn1_bio_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - strlen
    - asn1_bio_write
    linkageType: ''
    returnType: int
    signature: asn1_bio_puts(BIO *b, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:298,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - str
    - size
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 302
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 302
    functionName: asn1_bio_gets
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - BIO_gets
    - BIO_next
    linkageType: ''
    returnType: int
    signature: asn1_bio_gets(BIO *b, char *str, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:306,1
    - Dst: BIO_callback_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - bio_info_cb*
    constantsTouched: []
    func_position:
      end: 310
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 310
    functionName: asn1_bio_callback_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    - BIO_next
    linkageType: ''
    returnType: long
    signature: asn1_bio_callback_ctrl(BIO *b, int cmd, bio_info_cb *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:319,1
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:322,1
    - Dst: asn1_bio_setup_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:363,1
    - Dst: asn1_bio_flush_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:369,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:376,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:378,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:385,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 4
    argNames:
    - b
    - cmd
    - arg1
    - arg2
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 390
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 390
    functionName: asn1_bio_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - asn1_bio_setup_ex
    - BIO_clear_retry_flags
    - BIO_get_data
    - asn1_bio_flush_ex
    - BIO_next
    - BIO_ctrl
    linkageType: ''
    returnType: long
    signature: asn1_bio_ctrl(BIO *b, int cmd, long arg1, void *arg2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - b
    - cmd
    - ex_func
    - ex_free_func
    argTypes:
    - BIO*
    - int
    - asn1_ps_func*
    - asn1_ps_func*
    constantsTouched: []
    func_position:
      end: 399
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 399
    functionName: asn1_bio_set_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: int
    signature: "asn1_bio_set_ex(BIO *b, int cmd,\n                           asn1_ps_func
      *ex_func, asn1_ps_func *ex_free_func)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - b
    - cmd
    - ex_func
    - ex_free_func
    argTypes:
    - BIO*
    - int
    - asn1_ps_func**
    - asn1_ps_func**
    constantsTouched: []
    func_position:
      end: 413
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 413
    functionName: asn1_bio_get_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: int
    signature: "asn1_bio_get_ex(BIO *b, int cmd,\n                           asn1_ps_func
      **ex_func,\n                           asn1_ps_func **ex_free_func)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_bio_set_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - prefix
    - prefix_free
    argTypes:
    - BIO*
    - asn1_ps_func*
    - asn1_ps_func*
    constantsTouched: []
    func_position:
      end: 419
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 419
    functionName: BIO_asn1_set_prefix
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c
    functionUses: 1
    functionsReached:
    - asn1_bio_set_ex
    linkageType: ''
    returnType: int
    signature: "BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix,\n                        asn1_ps_func
      *prefix_free)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_bio_get_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - pprefix
    - pprefix_free
    argTypes:
    - BIO*
    - asn1_ps_func**
    - asn1_ps_func**
    constantsTouched: []
    func_position:
      end: 425
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 425
    functionName: BIO_asn1_get_prefix
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - asn1_bio_get_ex
    linkageType: ''
    returnType: int
    signature: "BIO_asn1_get_prefix(BIO *b, asn1_ps_func **pprefix,\n                        asn1_ps_func
      **pprefix_free)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_bio_set_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - suffix
    - suffix_free
    argTypes:
    - BIO*
    - asn1_ps_func*
    - asn1_ps_func*
    constantsTouched: []
    func_position:
      end: 431
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 431
    functionName: BIO_asn1_set_suffix
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c
    functionUses: 1
    functionsReached:
    - asn1_bio_set_ex
    linkageType: ''
    returnType: int
    signature: "BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix,\n                        asn1_ps_func
      *suffix_free)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_bio_get_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - psuffix
    - psuffix_free
    argTypes:
    - BIO*
    - asn1_ps_func**
    - asn1_ps_func**
    constantsTouched: []
    func_position:
      end: 437
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 437
    functionName: BIO_asn1_get_suffix
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - asn1_bio_get_ex
    linkageType: ''
    returnType: int
    signature: "BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix,\n                        asn1_ps_func
      **psuffix_free)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_bitst.c:20,1
    - Dst: ASN1_BIT_STRING_get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_bitst.c:22,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_bitst.c:24,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_bitst.c:25,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_bitst.c:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - out
    - bs
    - tbl
    - indent
    argTypes:
    - BIO*
    - ASN1_BIT_STRING*
    - BIT_STRING_BITNAME*
    - int
    constantsTouched: []
    func_position:
      end: 31
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 31
    functionName: ASN1_BIT_STRING_name_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_bitst.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - ASN1_BIT_STRING_get_bit
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: "ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs,\n                               BIT_STRING_BITNAME
      *tbl, int indent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_BIT_STRING_num_asc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_bitst.c:37,1
    - Dst: ASN1_BIT_STRING_set_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_bitst.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - bs
    - name
    - value
    - tbl
    argTypes:
    - ASN1_BIT_STRING*
    - char*
    - int
    - BIT_STRING_BITNAME*
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: ASN1_BIT_STRING_set_asc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_bitst.c
    functionUses: 0
    functionsReached:
    - ASN1_BIT_STRING_num_asc
    - ASN1_BIT_STRING_set_bit
    linkageType: ''
    returnType: int
    signature: "ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, const char *name, int
      value,\n                            BIT_STRING_BITNAME *tbl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_bitst.c:51,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_bitst.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - name
    - tbl
    argTypes:
    - char*
    - BIT_STRING_BITNAME*
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: ASN1_BIT_STRING_num_asc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_bitst.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: ASN1_BIT_STRING_num_asc(const char *name, BIT_STRING_BITNAME *tbl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_spki.c:27,1
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_spki.c:28,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_spki.c:29,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_spki.c:30,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_spki.c:31,1
    - Dst: X509_PUBKEY_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_spki.c:32,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_spki.c:34,1
    - Dst: EVP_PKEY_print_public
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_spki.c:36,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_spki.c:37,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_spki.c:41,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_spki.c:42,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_spki.c:43,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_spki.c:44,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_spki.c:50,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_spki.c:51,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_spki.c:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - out
    - spki
    argTypes:
    - BIO*
    - NETSCAPE_SPKI*
    constantsTouched: []
    func_position:
      end: 56
      start: 20
    functionDepth: 6
    functionLinenumber: 20
    functionLinenumberEnd: 56
    functionName: NETSCAPE_SPKI_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_spki.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - X509_PUBKEY_get
    - OBJ_obj2nid
    - EVP_PKEY_print_public
    - BIO_printf
    - BIO_write
    - X509_PUBKEY_get0_param
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: NETSCAPE_SPKI_print(BIO *out, NETSCAPE_SPKI *spki)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:32,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:38,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:41,1
    - Dst: EVP_get_digestbyname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:42,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:42,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:44,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:49,1
    - Dst: i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:53,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:54,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:56,1
    - Dst: i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:61,1
    - Dst: EVP_VerifyInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:62,1
    - Dst: EVP_VerifyUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:63,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:65,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:68,1
    - Dst: EVP_VerifyFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:73,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:75,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:81,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 5
    argNames:
    - i2d
    - a
    - signature
    - data
    - pkey
    argTypes:
    - i2d_of_void*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    - char*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 83
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 83
    functionName: ASN1_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c
    functionUses: 0
    functionsReached:
    - EVP_VerifyInit_ex
    - OBJ_obj2nid
    - EVP_VerifyUpdate
    - EVP_VerifyFinal
    - OBJ_nid2sn
    - EVP_MD_CTX_new
    - i2d
    - EVP_MD_CTX_free
    - EVP_get_digestbyname
    - OPENSSL_clear_free
    - OPENSSL_malloc
    - ASN1err
    linkageType: ''
    returnType: int
    signature: "ASN1_verify(i2d_of_void *i2d, X509_ALGOR *a, ASN1_BIT_STRING *signature,\n
      \               char *data, EVP_PKEY *pkey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:97,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:102,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:106,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:108,1
    - Dst: OBJ_find_sigid_algs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:113,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:113,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:114,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:119,1
    - Dst: EVP_PKEY*::ameth::item_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:123,1
    - Dst: EVP_get_digestbynid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:134,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:136,1
    - Dst: EVP_PKEY_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:142,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:143,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:147,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:148,1
    - Dst: ASN1_item_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:155,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:158,1
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:162,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:164,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:167,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:172,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:174,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c:180,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 75
    argCount: 5
    argNames:
    - it
    - a
    - signature
    - asn
    - pkey
    argTypes:
    - ASN1_ITEM*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    - void*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 182
      start: 87
    functionDepth: 4
    functionLinenumber: 87
    functionLinenumberEnd: 182
    functionName: ASN1_item_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c
    functionUses: 4
    functionsReached:
    - ASN1_item_i2d
    - EVP_DigestVerifyFinal
    - OBJ_obj2nid
    - EVP_PKEY*::ameth::item_verify
    - EVP_PKEY_type
    - EVP_DigestVerifyUpdate
    - EVP_get_digestbynid
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - OBJ_find_sigid_algs
    - OPENSSL_clear_free
    - ASN1err
    - EVP_DigestVerifyInit
    linkageType: ''
    returnType: int
    signature: "ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a,\n                     ASN1_BIT_STRING
      *signature, void *asn, EVP_PKEY *pkey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:25,1
    - Dst: CONF_imodule_get_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:28,1
    - Dst: NCONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:29,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:30,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:33,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:34,1
    - Dst: do_tcreate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:35,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - md
    - cnf
    argTypes:
    - CONF_IMODULE*
    - CONF*
    constantsTouched: []
    func_position:
      end: 41
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 41
    functionName: stbl_module_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - STACK_OF
    - sk_CONF_VALUE_num
    - CONF_imodule_get_value
    - do_tcreate
    - NCONF_get_section
    - ASN1err
    linkageType: ''
    returnType: int
    signature: stbl_module_init(CONF_IMODULE *md, const CONF *cnf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_TABLE_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: stbl_module_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_TABLE_cleanup
    linkageType: ''
    returnType: void
    signature: stbl_module_finish(CONF_IMODULE *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONF_module_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: ASN1_add_stable_module
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c
    functionUses: 0
    functionsReached:
    - CONF_module_add
    linkageType: ''
    returnType: void
    signature: ASN1_add_stable_module(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:64,1
    - Dst: OBJ_sn2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:66,1
    - Dst: OBJ_ln2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:68,1
    - Dst: X509V3_parse_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:71,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:74,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:75,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:76,1
    - Dst: strtoul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:77,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:80,1
    - Dst: strtoul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:81,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:84,1
    - Dst: ASN1_str2mask
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:85,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:87,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:88,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:90,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:100,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:102,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:105,1
    - Dst: ASN1_STRING_TABLE_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:107,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:110,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c:112,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 57
    argCount: 2
    argNames:
    - value
    - name
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 114
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 114
    functionName: do_tcreate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c
    functionUses: 1
    functionsReached:
    - sk_CONF_VALUE_value
    - OBJ_sn2nid
    - strcmp
    - STACK_OF
    - sk_CONF_VALUE_num
    - ERR_add_error_data
    - X509V3_parse_list
    - ASN1_STRING_TABLE_add
    - ASN1_str2mask
    - OBJ_ln2nid
    - strtoul
    - ASN1err
    - sk_CONF_VALUE_pop_free
    linkageType: ''
    returnType: int
    signature: do_tcreate(const char *value, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_pack.c:21,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_pack.c:22,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_pack.c:29,1
    - Dst: ASN1_item_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_pack.c:32,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_pack.c:33,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_pack.c:37,1
    - Dst: ASN1_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_pack.c:47,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - obj
    - it
    - oct
    argTypes:
    - void*
    - ASN1_ITEM*
    - ASN1_STRING**
    constantsTouched: []
    func_position:
      end: 49
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 49
    functionName: ASN1_item_pack
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_pack.c
    functionUses: 6
    functionsReached:
    - ASN1_item_i2d
    - ASN1_STRING_free
    - ASN1_STRING_new
    - OPENSSL_free
    - ASN1err
    linkageType: ''
    returnType: ASN1_STRING
    signature: '*ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_STRING **oct)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_pack.c:59,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_pack.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - oct
    - it
    argTypes:
    - ASN1_STRING*
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: ASN1_item_unpack
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_pack.c
    functionUses: 6
    functionsReached:
    - ASN1_item_d2i
    - ASN1err
    linkageType: ''
    returnType: void
    signature: '*ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_moid.c:27,1
    - Dst: CONF_imodule_get_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_moid.c:30,1
    - Dst: NCONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_moid.c:31,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_moid.c:32,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_moid.c:35,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_moid.c:36,1
    - Dst: do_create
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_moid.c:37,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_moid.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - md
    - cnf
    argTypes:
    - CONF_IMODULE*
    - CONF*
    constantsTouched: []
    func_position:
      end: 43
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 43
    functionName: oid_module_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_moid.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - STACK_OF
    - sk_CONF_VALUE_num
    - CONF_imodule_get_value
    - NCONF_get_section
    - ASN1err
    - do_create
    linkageType: ''
    returnType: int
    signature: oid_module_init(CONF_IMODULE *md, const CONF *cnf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: oid_module_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_moid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: oid_module_finish(CONF_IMODULE *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONF_module_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_moid.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: ASN1_add_oid_module
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_moid.c
    functionUses: 0
    functionsReached:
    - CONF_module_add
    linkageType: ''
    returnType: void
    signature: ASN1_add_oid_module(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_moid.c:66,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_moid.c:75,1
    - Dst: OBJ_create
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_moid.c:79,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_moid.c:86,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_moid.c:89,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_moid.c:95,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_moid.c:98,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_moid.c:100,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - value
    - name
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 105
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 105
    functionName: do_create
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_moid.c
    functionUses: 1
    functionsReached:
    - isspace
    - OBJ_nid2obj
    - strrchr
    - OBJ_create
    - memcpy
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: do_create(const char *value, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::old_priv_encode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/i2d_pr.c:20,1
    - Dst: EVP_PKEY2PKCS8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/i2d_pr.c:23,1
    - Dst: i2d_PKCS8_PRIV_KEY_INFO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/i2d_pr.c:26,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/i2d_pr.c:27,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/i2d_pr.c:31,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 33
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 33
    functionName: i2d_PrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/i2d_pr.c
    functionUses: 0
    functionsReached:
    - i2d_PKCS8_PRIV_KEY_INFO
    - EVP_PKEY2PKCS8
    - PKCS8_PRIV_KEY_INFO_free
    - EVP_PKEY*::ameth::old_priv_encode
    - ASN1err
    linkageType: ''
    returnType: int
    signature: i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/nsseq.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: nsseq_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/nsseq.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    linkageType: ''
    returnType: int
    signature: "nsseq_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                   void *exarg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_flags_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - val
    - out
    - it
    argTypes:
    - ASN1_VALUE*
    - unsigned char**
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: ASN1_item_ndef_i2d
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c
    functionUses: 2
    functionsReached:
    - asn1_item_flags_i2d
    linkageType: ''
    returnType: int
    signature: "ASN1_item_ndef_i2d(ASN1_VALUE *val, unsigned char **out,\n                       const
      ASN1_ITEM *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_flags_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - val
    - out
    - it
    argTypes:
    - ASN1_VALUE*
    - unsigned char**
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: ASN1_item_i2d
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c
    functionUses: 10
    functionsReached:
    - asn1_item_flags_i2d
    linkageType: ''
    returnType: int
    signature: ASN1_item_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM
      *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_ex_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:60,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:63,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:67,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - val
    - out
    - it
    - flags
    argTypes:
    - ASN1_VALUE*
    - unsigned char**
    - ASN1_ITEM*
    - int
    constantsTouched: []
    func_position:
      end: 73
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 73
    functionName: asn1_item_flags_i2d
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c
    functionUses: 2
    functionsReached:
    - OPENSSL_malloc
    - ASN1_item_ex_i2d
    linkageType: ''
    returnType: int
    signature: "asn1_item_flags_i2d(ASN1_VALUE *val, unsigned char **out,\n                               const
      ASN1_ITEM *it, int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_template_ex_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:99,1
    - Dst: asn1_i2d_ex_primitive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:101,1
    - Dst: asn1_i2d_ex_primitive
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:104,1
    - Dst: asn1_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:107,1
    - Dst: asn1_get_choice_selector
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:109,1
    - Dst: asn1_get_field_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:114,1
    - Dst: asn1_template_ex_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:115,1
    - Dst: asn1_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:118,1
    - Dst: ASN1_EXTERN_FUNCS*::asn1_ex_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:125,1
    - Dst: asn1_enc_restore
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:134,1
    - Dst: asn1_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:150,1
    - Dst: asn1_do_adb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:157,1
    - Dst: asn1_get_field_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:160,1
    - Dst: asn1_template_ex_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:161,1
    - Dst: ASN1_object_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:167,1
    - Dst: ASN1_put_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:171,1
    - Dst: asn1_do_adb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:175,1
    - Dst: asn1_get_field_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:178,1
    - Dst: asn1_template_ex_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:180,1
    - Dst: ASN1_put_eoc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:183,1
    - Dst: asn1_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:184,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 73
    argCount: 5
    argNames:
    - pval
    - out
    - it
    - tag
    - aclass
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - ASN1_ITEM*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 193
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 193
    functionName: ASN1_item_ex_i2d
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c
    functionUses: 2
    functionsReached:
    - asn1_i2d_ex_primitive
    - ASN1_EXTERN_FUNCS*::asn1_ex_i2d
    - asn1_do_adb
    - asn1_get_choice_selector
    - asn1_enc_restore
    - asn1_cb
    - ASN1_put_object
    - ASN1_put_eoc
    - ASN1_object_size
    - asn1_get_field_ptr
    - asn1_template_ex_i2d
    linkageType: ''
    returnType: int
    signature: "ASN1_item_ex_i2d(ASN1_VALUE **pval, unsigned char **out,\n                     const
      ASN1_ITEM *it, int tag, int aclass)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:251,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:251,1
    - Dst: sk_ASN1_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:284,1
    - Dst: sk_ASN1_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:286,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:287,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:287,1
    - Dst: ASN1_object_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:293,1
    - Dst: ASN1_object_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:298,1
    - Dst: ASN1_put_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:308,1
    - Dst: ASN1_put_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:310,1
    - Dst: asn1_set_seq_out
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:312,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:312,1
    - Dst: ASN1_put_eoc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:315,1
    - Dst: ASN1_put_eoc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:317,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:326,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:326,1
    - Dst: ASN1_object_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:330,1
    - Dst: ASN1_put_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:333,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:334,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:334,1
    - Dst: ASN1_put_eoc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:336,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:342,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:342,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 83
    argCount: 5
    argNames:
    - pval
    - out
    - tt
    - tag
    - iclass
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - ASN1_TEMPLATE*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 345
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 345
    functionName: asn1_template_ex_i2d
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c
    functionUses: 1
    functionsReached:
    - sk_ASN1_VALUE_value
    - sk_ASN1_VALUE_num
    - STACK_OF
    - ASN1_put_object
    - asn1_set_seq_out
    - ASN1_object_size
    - ASN1_ITEM_ptr
    - ASN1_put_eoc
    - ASN1_item_ex_i2d
    linkageType: ''
    returnType: int
    signature: "asn1_template_ex_i2d(ASN1_VALUE **pval, unsigned char **out,\n                                const
      ASN1_TEMPLATE *tt, int tag, int iclass)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 364
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 364
    functionName: der_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: der_cmp(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_ex_i2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:443,1
    - Dst: ASN1_put_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:474,1
    - Dst: asn1_ex_i2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:475,1
    - Dst: ASN1_put_eoc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:477,1
    - Dst: ASN1_object_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:483,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 5
    argNames:
    - pval
    - out
    - it
    - tag
    - aclass
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - ASN1_ITEM*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 485
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 485
    functionName: asn1_i2d_ex_primitive
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c
    functionUses: 1
    functionsReached:
    - ASN1_put_object
    - ASN1_put_eoc
    - asn1_ex_i2c
    - ASN1_object_size
    linkageType: ''
    returnType: int
    signature: "asn1_i2d_ex_primitive(ASN1_VALUE **pval, unsigned char **out,\n                                 const
      ASN1_ITEM *it, int tag, int aclass)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PRIMITIVE_FUNCS*::prim_i2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:502,1
    - Dst: i2c_ASN1_BIT_STRING
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:557,1
    - Dst: i2c_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:565,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c:603,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 81
    argCount: 4
    argNames:
    - pval
    - cout
    - putype
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int*
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 605
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 605
    functionName: asn1_ex_i2c
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c
    functionUses: 1
    functionsReached:
    - i2c_ASN1_BIT_STRING
    - memcpy
    - ASN1_PRIMITIVE_FUNCS*::prim_i2c
    - i2c_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: "asn1_ex_i2c(ASN1_VALUE **pval, unsigned char *cout, int *putype,\n
      \                      const ASN1_ITEM *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_octet.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - ASN1_OCTET_STRING*
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: ASN1_OCTET_STRING_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_octet.c
    functionUses: 1
    functionsReached:
    - ASN1_STRING_dup
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: '*ASN1_OCTET_STRING_dup(const ASN1_OCTET_STRING *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_octet.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_OCTET_STRING*
    - ASN1_OCTET_STRING*
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: ASN1_OCTET_STRING_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_octet.c
    functionUses: 6
    functionsReached:
    - ASN1_STRING_cmp
    linkageType: ''
    returnType: int
    signature: "ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a,\n                          const
      ASN1_OCTET_STRING *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_octet.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - d
    - len
    argTypes:
    - ASN1_OCTET_STRING*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: ASN1_OCTET_STRING_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_octet.c
    functionUses: 11
    functionsReached:
    - ASN1_STRING_set
    linkageType: ''
    returnType: int
    signature: "ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *x, const unsigned char *d,\n
      \                         int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 32
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 32
    functionName: _asn1_check_infinite_end
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: _asn1_check_infinite_end(const unsigned char **p, long len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _asn1_check_infinite_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: ASN1_check_infinite_end
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 0
    functionsReached:
    - _asn1_check_infinite_end
    linkageType: ''
    returnType: int
    signature: ASN1_check_infinite_end(unsigned char **p, long len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _asn1_check_infinite_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: ASN1_const_check_infinite_end
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 0
    functionsReached:
    - _asn1_check_infinite_end
    linkageType: ''
    returnType: int
    signature: ASN1_const_check_infinite_end(const unsigned char **p, long len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:84,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:91,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:101,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 5
    argNames:
    - pp
    - plength
    - ptag
    - pclass
    - omax
    argTypes:
    - unsigned char**
    - long*
    - int*
    - int*
    - long
    constantsTouched: []
    func_position:
      end: 103
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 103
    functionName: ASN1_get_object
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 6
    functionsReached:
    - asn1_get_length
    - ASN1err
    linkageType: ''
    returnType: int
    signature: "ASN1_get_object(const unsigned char **pp, long *plength, int *ptag,\n
      \                   int *pclass, long omax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - pp
    - inf
    - rl
    - max
    argTypes:
    - unsigned char**
    - int*
    - long*
    - long
    constantsTouched: []
    func_position:
      end: 143
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 143
    functionName: asn1_get_length
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "asn1_get_length(const unsigned char **pp, int *inf, long *rl,\n                           long
      max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_put_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:174,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - pp
    - constructed
    - length
    - tag
    - xclass
    argTypes:
    - unsigned char**
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 176
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 176
    functionName: ASN1_put_object
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 6
    functionsReached:
    - asn1_put_length
    linkageType: ''
    returnType: void
    signature: "ASN1_put_object(unsigned char **pp, int constructed, int length, int
      tag,\n                     int xclass)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pp
    argTypes:
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 185
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 185
    functionName: ASN1_put_eoc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ASN1_put_eoc(unsigned char **pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - pp
    - length
    argTypes:
    - unsigned char**
    - int
    constantsTouched: []
    func_position:
      end: 206
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 206
    functionName: asn1_put_length
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: asn1_put_length(unsigned char **pp, int length)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - constructed
    - length
    - tag
    argTypes:
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 234
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 234
    functionName: ASN1_object_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ASN1_object_size(int constructed, int length, int tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - dst
    - str
    argTypes:
    - ASN1_STRING*
    - ASN1_STRING*
    constantsTouched: []
    func_position:
      end: 247
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 247
    functionName: ASN1_STRING_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 6
    functionsReached:
    - ASN1_STRING_set
    linkageType: ''
    returnType: int
    signature: ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:254,1
    - Dst: ASN1_STRING_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:257,1
    - Dst: ASN1_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - str
    argTypes:
    - ASN1_STRING*
    constantsTouched: []
    func_position:
      end: 262
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 262
    functionName: ASN1_STRING_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 5
    functionsReached:
    - ASN1_STRING_new
    - ASN1_STRING_free
    - ASN1_STRING_copy
    linkageType: ''
    returnType: ASN1_STRING
    signature: '*ASN1_STRING_dup(const ASN1_STRING *str)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:273,1
    - Dst: OPENSSL_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:277,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:279,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:286,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - str
    - _data
    - len
    argTypes:
    - ASN1_STRING*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 291
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 291
    functionName: ASN1_STRING_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 18
    functionsReached:
    - strlen
    - OPENSSL_realloc
    - ASN1err
    - memcpy
    linkageType: ''
    returnType: int
    signature: ASN1_STRING_set(ASN1_STRING *str, const void *_data, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - str
    - data
    - len
    argTypes:
    - ASN1_STRING*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 298
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 298
    functionName: ASN1_STRING_set0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 14
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: ASN1_STRING_set0(ASN1_STRING *str, void *data, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_type_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: ASN1_STRING_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 10
    functionsReached:
    - ASN1_STRING_type_new
    linkageType: ''
    returnType: ASN1_STRING
    signature: '*ASN1_STRING_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:309,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 316
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 316
    functionName: ASN1_STRING_type_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 7
    functionsReached:
    - ASN1err
    - OPENSSL_zalloc
    linkageType: ''
    returnType: ASN1_STRING
    signature: '*ASN1_STRING_type_new(int type)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:323,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - a
    - embed
    argTypes:
    - ASN1_STRING*
    - int
    constantsTouched: []
    func_position:
      end: 326
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 326
    functionName: asn1_string_embed_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: asn1_string_embed_free(ASN1_STRING *a, int embed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_embed_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - ASN1_STRING*
    constantsTouched: []
    func_position:
      end: 333
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 333
    functionName: ASN1_STRING_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 13
    functionsReached:
    - asn1_string_embed_free
    linkageType: ''
    returnType: void
    signature: ASN1_STRING_free(ASN1_STRING *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:340,1
    - Dst: ASN1_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - a
    argTypes:
    - ASN1_STRING*
    constantsTouched: []
    func_position:
      end: 342
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 342
    functionName: ASN1_STRING_clear_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 4
    functionsReached:
    - OPENSSL_cleanse
    - ASN1_STRING_free
    linkageType: ''
    returnType: void
    signature: ASN1_STRING_clear_free(ASN1_STRING *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c:350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_STRING*
    - ASN1_STRING*
    constantsTouched: []
    func_position:
      end: 357
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 357
    functionName: ASN1_STRING_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 5
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - ASN1_STRING*
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: ASN1_STRING_length
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ASN1_STRING_length(const ASN1_STRING *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - len
    argTypes:
    - ASN1_STRING*
    - int
    constantsTouched: []
    func_position:
      end: 367
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 367
    functionName: ASN1_STRING_length_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ASN1_STRING_length_set(ASN1_STRING *x, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - ASN1_STRING*
    constantsTouched: []
    func_position:
      end: 372
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 372
    functionName: ASN1_STRING_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ASN1_STRING_type(const ASN1_STRING *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - ASN1_STRING*
    constantsTouched: []
    func_position:
      end: 377
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 377
    functionName: ASN1_STRING_get0_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: '*ASN1_STRING_get0_data(const ASN1_STRING *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - ASN1_STRING*
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: ASN1_STRING_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: '*ASN1_STRING_data(ASN1_STRING *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_NDEF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:73,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:75,1
    - Dst: SMIME_crlf_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:78,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:79,1
    - Dst: BIO_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:82,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:83,1
    - Dst: ASN1_item_i2d_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - out
    - val
    - in
    - flags
    - it
    argTypes:
    - BIO*
    - ASN1_VALUE*
    - BIO*
    - int
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 94
      start: 67
    functionDepth: 5
    functionLinenumber: 67
    functionLinenumberEnd: 94
    functionName: i2d_ASN1_bio_stream
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - ASN1_item_i2d_bio
    - SMIME_crlf_copy
    - BIO_flush
    - BIO_new_NDEF
    - BIO_free
    - BIO_pop
    - ASN1err
    linkageType: ''
    returnType: int
    signature: "i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags,\n
      \                       const ASN1_ITEM *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:103,1
    - Dst: BIO_f_base64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:103,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:105,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:111,1
    - Dst: i2d_ASN1_bio_stream
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:112,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:113,1
    - Dst: BIO_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:114,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - out
    - val
    - in
    - flags
    - it
    argTypes:
    - BIO*
    - ASN1_VALUE*
    - BIO*
    - int
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 117
      start: 98
    functionDepth: 6
    functionLinenumber: 98
    functionLinenumberEnd: 117
    functionName: B64_write_ASN1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 0
    functionsReached:
    - i2d_ASN1_bio_stream
    - BIO_push
    - BIO_flush
    - BIO_free
    - BIO_pop
    - BIO_f_base64
    - BIO_new
    - ASN1err
    linkageType: ''
    returnType: int
    signature: "B64_write_ASN1(BIO *out, ASN1_VALUE *val, BIO *in, int flags,\n                          const
      ASN1_ITEM *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:125,1
    - Dst: B64_write_ASN1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:126,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - out
    - val
    - in
    - flags
    - hdr
    - it
    argTypes:
    - BIO*
    - ASN1_VALUE*
    - BIO*
    - int
    - char*
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 7
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: PEM_write_bio_ASN1_stream
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    - B64_write_ASN1
    linkageType: ''
    returnType: int
    signature: "PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in, int
      flags,\n                              const char *hdr, const ASN1_ITEM *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:136,1
    - Dst: BIO_f_base64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:136,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:137,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:140,1
    - Dst: ASN1_item_d2i_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:141,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:143,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:144,1
    - Dst: BIO_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:145,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - bio
    - it
    argTypes:
    - BIO*
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 148
      start: 131
    functionDepth: 4
    functionLinenumber: 131
    functionLinenumberEnd: 148
    functionName: b64_read_asn1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 0
    functionsReached:
    - BIO_push
    - ASN1_item_d2i_bio
    - BIO_flush
    - BIO_free
    - BIO_pop
    - BIO_f_base64
    - BIO_new
    - ASN1err
    linkageType: ''
    returnType: ASN1_VALUE
    signature: '*b64_read_asn1(BIO *bio, const ASN1_ITEM *it)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:242,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:253,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:254,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:255,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:256,1
    - Dst: asn1_write_micalg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:257,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:258,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:260,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:263,1
    - Dst: asn1_output_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:264,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:266,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:270,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:271,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:272,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:273,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:274,1
    - Dst: B64_write_ASN1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:275,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:276,1
    - Dst: sk_X509_ALGOR_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:288,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:297,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:298,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:299,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:300,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:302,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:303,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:304,1
    - Dst: B64_write_ASN1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:306,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:308,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 63
    argCount: 8
    argNames:
    - bio
    - val
    - data
    - flags
    - ctype_nid
    - econt_nid
    - mdalgs
    - it
    argTypes:
    - BIO*
    - ASN1_VALUE*
    - BIO*
    - int
    - int
    - int
    - STACK_OF*
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 310
      start: 222
    functionDepth: 7
    functionLinenumber: 222
    functionLinenumberEnd: 310
    functionName: SMIME_write_ASN1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - RAND_bytes
    - BIO_puts
    - asn1_write_micalg
    - sk_X509_ALGOR_num
    - B64_write_ASN1
    - BIO_printf
    - asn1_output_data
    linkageType: ''
    returnType: int
    signature: "SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags,\n
      \                    int ctype_nid, int econt_nid,\n                     STACK_OF(X509_ALGOR)
      *mdalgs, const ASN1_ITEM *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SMIME_crlf_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:327,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:332,1
    - Dst: ASN1_AUX*::asn1_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:342,1
    - Dst: SMIME_crlf_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:346,1
    - Dst: ASN1_AUX*::asn1_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:349,1
    - Dst: BIO_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:355,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:356,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 5
    argNames:
    - out
    - data
    - val
    - flags
    - it
    argTypes:
    - BIO*
    - BIO*
    - ASN1_VALUE*
    - int
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 362
      start: 314
    functionDepth: 4
    functionLinenumber: 314
    functionLinenumberEnd: 362
    functionName: asn1_output_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - ASN1_AUX*::asn1_cb
    - SMIME_crlf_copy
    - BIO_free
    - BIO_pop
    - ASN1err
    linkageType: ''
    returnType: int
    signature: "asn1_output_data(BIO *out, BIO *data, ASN1_VALUE *val, int flags,\n
      \                           const ASN1_ITEM *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:373,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:374,1
    - Dst: mime_parse_hdr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:383,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:384,1
    - Dst: mime_hdr_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:388,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:390,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:391,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:397,1
    - Dst: mime_param_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:399,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:401,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:402,1
    - Dst: multi_split
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:405,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:406,1
    - Dst: sk_BIO_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:407,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:408,1
    - Dst: sk_BIO_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:409,1
    - Dst: sk_BIO_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:414,1
    - Dst: mime_parse_hdr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:416,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:417,1
    - Dst: sk_BIO_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:418,1
    - Dst: mime_hdr_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:424,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:426,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:427,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:431,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:432,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:433,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:434,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:435,1
    - Dst: sk_BIO_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:436,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:439,1
    - Dst: b64_read_asn1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:441,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:442,1
    - Dst: sk_BIO_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:443,1
    - Dst: sk_BIO_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:448,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:449,1
    - Dst: sk_BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:450,1
    - Dst: sk_BIO_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:452,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:458,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:459,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:460,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:461,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:462,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:466,1
    - Dst: b64_read_asn1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:468,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:469,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 3
    argNames:
    - bio
    - bcont
    - it
    argTypes:
    - BIO*
    - BIO**
    - ASN1_ITEM*
    constantsTouched: []
    func_position:
      end: 474
      start: 370
    functionDepth: 5
    functionLinenumber: 370
    functionLinenumberEnd: 474
    functionName: SMIME_read_ASN1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - mime_param_find
    - sk_MIME_HEADER_pop_free
    - sk_BIO_value
    - strcmp
    - STACK_OF
    - b64_read_asn1
    - sk_BIO_free
    - BIO_free
    - sk_BIO_num
    - sk_BIO_pop_free
    - ERR_add_error_data
    - multi_split
    - mime_hdr_find
    - ASN1err
    - mime_parse_hdr
    linkageType: ''
    returnType: ASN1_VALUE
    signature: '*SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:487,1
    - Dst: BIO_f_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:487,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:490,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:492,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:493,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:497,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:498,1
    - Dst: strip_eol
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:499,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:505,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:508,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:510,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:514,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:517,1
    - Dst: BIO_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:518,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:519,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - in
    - out
    - flags
    argTypes:
    - BIO*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 521
      start: 477
    functionDepth: 4
    functionLinenumber: 477
    functionLinenumberEnd: 521
    functionName: SMIME_crlf_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 3
    functionsReached:
    - BIO_push
    - BIO_f_buffer
    - BIO_flush
    - BIO_gets
    - strip_eol
    - BIO_free
    - BIO_pop
    - BIO_printf
    - BIO_new
    - BIO_read
    - BIO_write
    linkageType: ''
    returnType: int
    signature: SMIME_crlf_copy(BIO *in, BIO *out, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:528,1
    - Dst: mime_parse_hdr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:531,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:532,1
    - Dst: mime_hdr_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:535,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:537,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:538,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:541,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:542,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:543,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:544,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:547,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:548,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:549,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - BIO*
    - BIO*
    constantsTouched: []
    func_position:
      end: 553
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 553
    functionName: SMIME_text
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - BIO_write
    - sk_MIME_HEADER_pop_free
    - strcmp
    - STACK_OF
    - ERR_add_error_data
    - BIO_read
    - mime_hdr_find
    - ASN1err
    - mime_parse_hdr
    linkageType: ''
    returnType: int
    signature: SMIME_text(BIO *in, BIO *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:566,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:569,1
    - Dst: sk_BIO_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:573,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:577,1
    - Dst: mime_bound_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:578,1
    - Dst: sk_BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:583,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:584,1
    - Dst: strip_eol
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:590,1
    - Dst: sk_BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:594,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:595,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:598,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:598,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:601,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:603,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:606,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:609,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 3
    argNames:
    - bio
    - bound
    - ret
    argTypes:
    - BIO*
    - char*
    - STACK_OF**
    constantsTouched: []
    func_position:
      end: 611
      start: 560
    functionDepth: 4
    functionLinenumber: 560
    functionLinenumberEnd: 611
    functionName: multi_split
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - sk_BIO_new_null
    - mime_bound_check
    - STACK_OF
    - BIO_s_mem
    - BIO_set_mem_eof_return
    - BIO_gets
    - strip_eol
    - strlen
    - BIO_free
    - sk_BIO_push
    - BIO_new
    - BIO_write
    linkageType: ''
    returnType: int
    signature: multi_split(BIO *bio, const char *bound, STACK_OF(BIO) **ret)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:629,1
    - Dst: sk_MIME_HEADER_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:632,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:635,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:637,1
    - Dst: strip_ends
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:656,1
    - Dst: mime_debug
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:663,1
    - Dst: mime_hdr_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:665,1
    - Dst: strip_ends
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:665,1
    - Dst: sk_MIME_HEADER_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:668,1
    - Dst: strip_ends
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:691,1
    - Dst: mime_hdr_addparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:700,1
    - Dst: strip_ends
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:700,1
    - Dst: mime_debug
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:704,1
    - Dst: mime_debug
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:714,1
    - Dst: mime_hdr_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:722,1
    - Dst: strip_ends
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:722,1
    - Dst: sk_MIME_HEADER_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:725,1
    - Dst: mime_hdr_addparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:730,1
    - Dst: strip_ends
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:730,1
    - Dst: mime_hdr_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:738,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:739,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 102
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 741
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 741
    functionName: mime_parse_hdr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 2
    functionsReached:
    - sk_MIME_HEADER_new
    - isspace
    - mime_hdr_new
    - mime_hdr_addparam
    - sk_MIME_HEADER_pop_free
    - STACK_OF
    - mime_hdr_free
    - BIO_gets
    - strip_ends
    - mime_debug
    - sk_MIME_HEADER_push
    linkageType: ''
    returnType: STACK_OF
    signature: '*mime_parse_hdr(BIO *bio)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strip_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:745,1
    - Dst: strip_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 746
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 746
    functionName: strip_ends
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - strip_start
    - strip_end
    linkageType: ''
    returnType: char
    signature: '*strip_ends(char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:761,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 765
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 765
    functionName: strip_start
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - isspace
    linkageType: ''
    returnType: char
    signature: '*strip_start(char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:774,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:782,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 788
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 788
    functionName: strip_end
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - strlen
    - isspace
    linkageType: ''
    returnType: char
    signature: '*strip_end(char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:797,1
    - Dst: isupper
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:801,1
    - Dst: tolower
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:802,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:808,1
    - Dst: isupper
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:812,1
    - Dst: tolower
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:813,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:818,1
    - Dst: sk_MIME_PARAM_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:823,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:828,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:829,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:830,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 832
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 832
    functionName: mime_hdr_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - sk_MIME_PARAM_new
    - isupper
    - tolower
    - OPENSSL_strdup
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: MIME_HEADER
    signature: '*mime_hdr_new(const char *name, const char *value)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:840,1
    - Dst: isupper
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:845,1
    - Dst: tolower
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:846,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:852,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:857,1
    - Dst: sk_MIME_PARAM_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:862,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:866,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:867,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:868,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - mhdr
    - name
    - value
    argTypes:
    - MIME_HEADER*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 870
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 870
    functionName: mime_hdr_addparam
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - isupper
    - tolower
    - OPENSSL_free
    - OPENSSL_strdup
    - sk_MIME_PARAM_push
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: mime_hdr_addparam(MIME_HEADER *mhdr, const char *name, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:878,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - MIME_HEADER**
    - MIME_HEADER**
    constantsTouched: []
    func_position:
      end: 879
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 879
    functionName: mime_hdr_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "mime_hdr_cmp(const MIME_HEADER *const *a,\n                        const
      MIME_HEADER *const *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:886,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - MIME_PARAM**
    - MIME_PARAM**
    constantsTouched: []
    func_position:
      end: 887
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 887
    functionName: mime_param_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "mime_param_cmp(const MIME_PARAM *const *a,\n                          const
      MIME_PARAM *const *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_MIME_HEADER_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:900,1
    - Dst: sk_MIME_HEADER_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:903,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - hdrs
    - name
    argTypes:
    - STACK_OF*
    - char*
    constantsTouched: []
    func_position:
      end: 904
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 904
    functionName: mime_hdr_find
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 2
    functionsReached:
    - sk_MIME_HEADER_find
    - sk_MIME_HEADER_value
    linkageType: ''
    returnType: MIME_HEADER
    signature: '*mime_hdr_find(STACK_OF(MIME_HEADER) *hdrs, const char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_MIME_PARAM_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:913,1
    - Dst: sk_MIME_PARAM_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:916,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - hdr
    - name
    argTypes:
    - MIME_HEADER*
    - char*
    constantsTouched: []
    func_position:
      end: 917
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 917
    functionName: mime_param_find
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - sk_MIME_PARAM_value
    - sk_MIME_PARAM_find
    linkageType: ''
    returnType: MIME_PARAM
    signature: '*mime_param_find(MIME_HEADER *hdr, const char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:923,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:924,1
    - Dst: sk_MIME_PARAM_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:926,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - MIME_HEADER*
    constantsTouched: []
    func_position:
      end: 928
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 928
    functionName: mime_hdr_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - sk_MIME_PARAM_pop_free
    linkageType: ''
    returnType: void
    signature: mime_hdr_free(MIME_HEADER *hdr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:932,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:933,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - param
    argTypes:
    - MIME_PARAM*
    constantsTouched: []
    func_position:
      end: 935
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 935
    functionName: mime_param_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: mime_param_free(MIME_PARAM *param)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:946,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:948,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:953,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:954,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c:955,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - line
    - linelen
    - bound
    - blen
    argTypes:
    - char*
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 961
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 961
    functionName: mime_bound_check
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - strlen
    - strncmp
    linkageType: ''
    returnType: int
    signature: mime_bound_check(char *line, int linelen, const char *bound, int blen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - linebuf
    - plen
    - flags
    argTypes:
    - char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 980
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 980
    functionName: strip_eol
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: strip_eol(char *linebuf, int *plen, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_bitstr.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - d
    - len
    argTypes:
    - ASN1_BIT_STRING*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: ASN1_BIT_STRING_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_bitstr.c
    functionUses: 1
    functionsReached:
    - ASN1_STRING_set
    linkageType: ''
    returnType: int
    signature: ASN1_BIT_STRING_set(ASN1_BIT_STRING *x, unsigned char *d, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_bitstr.c:70,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - ASN1_BIT_STRING*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 76
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 76
    functionName: i2c_ASN1_BIT_STRING
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_bitstr.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: i2c_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_bitstr.c:92,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_bitstr.c:111,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_bitstr.c:116,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_bitstr.c:123,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_bitstr.c:131,1
    - Dst: ASN1_BIT_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_bitstr.c:133,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 3
    argNames:
    - a
    - pp
    - len
    argTypes:
    - ASN1_BIT_STRING**
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 135
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 135
    functionName: c2i_ASN1_BIT_STRING
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_bitstr.c
    functionUses: 1
    functionsReached:
    - ASN1_BIT_STRING_free
    - ASN1_BIT_STRING_new
    - memcpy
    - OPENSSL_free
    - OPENSSL_malloc
    - ASN1err
    linkageType: ''
    returnType: ASN1_BIT_STRING
    signature: "*c2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a,\n                                     const
      unsigned char **pp, long len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_bitstr.c:159,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_bitstr.c:161,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_bitstr.c:165,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - a
    - n
    - value
    argTypes:
    - ASN1_BIT_STRING*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 173
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 173
    functionName: ASN1_BIT_STRING_set_bit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_bitstr.c
    functionUses: 2
    functionsReached:
    - ASN1err
    - OPENSSL_clear_realloc
    - memset
    linkageType: ''
    returnType: int
    signature: ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - ASN1_BIT_STRING*
    - int
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 184
    functionName: ASN1_BIT_STRING_get_bit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_bitstr.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ASN1_BIT_STRING_get_bit(const ASN1_BIT_STRING *a, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - a
    - flags
    - flags_len
    argTypes:
    - ASN1_BIT_STRING*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 210
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 210
    functionName: ASN1_BIT_STRING_check
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_bitstr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "ASN1_BIT_STRING_check(const ASN1_BIT_STRING *a,\n                          const
      unsigned char *flags, int flags_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_err.c:261,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_err.c:262,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_err.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 267
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 267
    functionName: ERR_load_ASN1_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_ASN1_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 3
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: ASN1_INTEGER_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_dup
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: '*ASN1_INTEGER_dup(const ASN1_INTEGER *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - ASN1_INTEGER*
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 41
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 41
    functionName: ASN1_INTEGER_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 6
    functionsReached:
    - ASN1_STRING_cmp
    linkageType: ''
    returnType: int
    signature: ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:115,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 4
    argNames:
    - b
    - blen
    - neg
    - pp
    argTypes:
    - unsigned char*
    - size_t
    - int
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 137
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 137
    functionName: i2c_ibuf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "i2c_ibuf(const unsigned char *b, size_t blen, int neg,\n                       unsigned
      char **pp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:152,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:174,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:180,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:194,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:212,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 4
    argNames:
    - b
    - pneg
    - p
    - plen
    argTypes:
    - unsigned char*
    - int*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 218
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 218
    functionName: c2i_ibuf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ASN1err
    - memset
    - OPENSSL_assert
    linkageType: ''
    returnType: size_t
    signature: "c2i_ibuf(unsigned char *b, int *pneg,\n                       const
      unsigned char *p, size_t plen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2c_ibuf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - ASN1_INTEGER*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: i2c_ASN1_INTEGER
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 1
    functionsReached:
    - i2c_ibuf
    linkageType: ''
    returnType: int
    signature: i2c_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - pr
    - b
    - blen
    argTypes:
    - uint64_t*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 241
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 241
    functionName: asn1_get_uint64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - ASN1err
    linkageType: ''
    returnType: int
    signature: asn1_get_uint64(uint64_t *pr, const unsigned char *b, size_t blen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - b
    - r
    argTypes:
    - unsigned char*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 270
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 270
    functionName: asn1_put_uint64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: asn1_put_uint64(unsigned char *b, uint64_t r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_get_uint64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:285,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:289,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:295,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - pr
    - b
    - blen
    - neg
    argTypes:
    - int64_t*
    - unsigned char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 301
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 301
    functionName: asn1_get_int64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - asn1_get_uint64
    - ASN1err
    linkageType: ''
    returnType: int
    signature: "asn1_get_int64(int64_t *pr, const unsigned char *b, size_t blen,\n
      \                         int neg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2i_ibuf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:311,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:317,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:324,1
    - Dst: c2i_ibuf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:327,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:337,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:339,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - a
    - pp
    - len
    argTypes:
    - ASN1_INTEGER**
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 341
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 341
    functionName: c2i_ASN1_INTEGER
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 2
    functionsReached:
    - ASN1_STRING_set
    - ASN1_INTEGER_new
    - c2i_ibuf
    - ASN1_INTEGER_free
    - ASN1err
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: "*c2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **pp,\n                               long
      len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:346,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:350,1
    - Dst: asn1_get_int64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - pr
    - a
    - itype
    argTypes:
    - int64_t*
    - ASN1_STRING*
    - int
    constantsTouched: []
    func_position:
      end: 354
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 354
    functionName: asn1_string_get_int64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - asn1_get_int64
    - ASN1err
    linkageType: ''
    returnType: int
    signature: asn1_string_get_int64(int64_t *pr, const ASN1_STRING *a, int itype)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_put_uint64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:362,1
    - Dst: asn1_put_uint64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:365,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - a
    - r
    - itype
    argTypes:
    - ASN1_STRING*
    - int64_t
    - int
    constantsTouched: []
    func_position:
      end: 371
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 371
    functionName: asn1_string_set_int64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_set
    - asn1_put_uint64
    linkageType: ''
    returnType: int
    signature: asn1_string_set_int64(ASN1_STRING *a, int64_t r, int itype)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:377,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:381,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:385,1
    - Dst: asn1_get_uint64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - pr
    - a
    - itype
    argTypes:
    - uint64_t*
    - ASN1_STRING*
    - int
    constantsTouched: []
    func_position:
      end: 389
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 389
    functionName: asn1_string_get_uint64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - asn1_get_uint64
    - ASN1err
    linkageType: ''
    returnType: int
    signature: "asn1_string_get_uint64(uint64_t *pr, const ASN1_STRING *a,\n                                  int
      itype)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_put_uint64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:396,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - a
    - r
    - itype
    argTypes:
    - ASN1_STRING*
    - uint64_t
    - int
    constantsTouched: []
    func_position:
      end: 400
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 400
    functionName: asn1_string_set_uint64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_set
    - asn1_put_uint64
    linkageType: ''
    returnType: int
    signature: asn1_string_set_uint64(ASN1_STRING *a, uint64_t r, int itype)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:419,1
    - Dst: ASN1_get_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:426,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:441,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:452,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:456,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:464,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:466,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - ASN1_INTEGER**
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 468
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 468
    functionName: d2i_ASN1_UINTEGER
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_new
    - ASN1_get_object
    - memcpy
    - OPENSSL_free
    - ASN1_INTEGER_free
    - OPENSSL_malloc
    - ASN1err
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: "*d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp,\n                                long
      length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_type_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:477,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:484,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:488,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:488,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:491,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:496,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:497,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:502,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:505,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:510,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - bn
    - ai
    - atype
    argTypes:
    - BIGNUM*
    - ASN1_STRING*
    - int
    constantsTouched: []
    func_position:
      end: 512
      start: 470
    functionDepth: 2
    functionLinenumber: 470
    functionLinenumberEnd: 512
    functionName: bn_to_asn1_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_set
    - ASN1_INTEGER_free
    - BN_is_zero
    - BN_is_negative
    - BN_bn2bin
    - ASN1err
    - BN_num_bytes
    - ASN1_STRING_type_new
    linkageType: ''
    returnType: ASN1_STRING
    signature: "*bn_to_asn1_string(const BIGNUM *bn, ASN1_STRING *ai,\n                                      int
      atype)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:520,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:524,1
    - Dst: ASN1err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:526,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:530,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ai
    - bn
    - itype
    argTypes:
    - ASN1_INTEGER*
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 532
      start: 514
    functionDepth: 4
    functionLinenumber: 514
    functionLinenumberEnd: 532
    functionName: asn1_string_to_bn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - BN_set_negative
    - ASN1err
    - BN_bin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: "*asn1_string_to_bn(const ASN1_INTEGER *ai, BIGNUM *bn,\n                                 int
      itype)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_get_int64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pr
    - a
    argTypes:
    - int64_t*
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 537
      start: 534
    functionDepth: 3
    functionLinenumber: 534
    functionLinenumberEnd: 537
    functionName: ASN1_INTEGER_get_int64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - asn1_string_get_int64
    linkageType: ''
    returnType: int
    signature: ASN1_INTEGER_get_int64(int64_t *pr, const ASN1_INTEGER *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_set_int64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - r
    argTypes:
    - ASN1_INTEGER*
    - int64_t
    constantsTouched: []
    func_position:
      end: 542
      start: 539
    functionDepth: 2
    functionLinenumber: 539
    functionLinenumberEnd: 542
    functionName: ASN1_INTEGER_set_int64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 1
    functionsReached:
    - asn1_string_set_int64
    linkageType: ''
    returnType: int
    signature: ASN1_INTEGER_set_int64(ASN1_INTEGER *a, int64_t r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_get_uint64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pr
    - a
    argTypes:
    - uint64_t*
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 547
      start: 544
    functionDepth: 2
    functionLinenumber: 544
    functionLinenumberEnd: 547
    functionName: ASN1_INTEGER_get_uint64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 1
    functionsReached:
    - asn1_string_get_uint64
    linkageType: ''
    returnType: int
    signature: ASN1_INTEGER_get_uint64(uint64_t *pr, const ASN1_INTEGER *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_set_uint64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - r
    argTypes:
    - ASN1_INTEGER*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 552
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 552
    functionName: ASN1_INTEGER_set_uint64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 2
    functionsReached:
    - asn1_string_set_uint64
    linkageType: ''
    returnType: int
    signature: ASN1_INTEGER_set_uint64(ASN1_INTEGER *a, uint64_t r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set_int64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - v
    argTypes:
    - ASN1_INTEGER*
    - long
    constantsTouched: []
    func_position:
      end: 557
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 557
    functionName: ASN1_INTEGER_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 11
    functionsReached:
    - ASN1_INTEGER_set_int64
    linkageType: ''
    returnType: int
    signature: ASN1_INTEGER_set(ASN1_INTEGER *a, long v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get_int64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:565,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 571
      start: 559
    functionDepth: 4
    functionLinenumber: 559
    functionLinenumberEnd: 571
    functionName: ASN1_INTEGER_get
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 13
    functionsReached:
    - ASN1_INTEGER_get_int64
    linkageType: ''
    returnType: long
    signature: ASN1_INTEGER_get(const ASN1_INTEGER *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_to_asn1_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bn
    - ai
    argTypes:
    - BIGNUM*
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 576
      start: 573
    functionDepth: 3
    functionLinenumber: 573
    functionLinenumberEnd: 576
    functionName: BN_to_ASN1_INTEGER
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 7
    functionsReached:
    - bn_to_asn1_string
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: '*BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_to_bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ai
    - bn
    argTypes:
    - ASN1_INTEGER*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 581
      start: 578
    functionDepth: 5
    functionLinenumber: 578
    functionLinenumberEnd: 581
    functionName: ASN1_INTEGER_to_BN
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 6
    functionsReached:
    - asn1_string_to_bn
    linkageType: ''
    returnType: BIGNUM
    signature: '*ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_get_int64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pr
    - a
    argTypes:
    - int64_t*
    - ASN1_ENUMERATED*
    constantsTouched: []
    func_position:
      end: 586
      start: 583
    functionDepth: 3
    functionLinenumber: 583
    functionLinenumberEnd: 586
    functionName: ASN1_ENUMERATED_get_int64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - asn1_string_get_int64
    linkageType: ''
    returnType: int
    signature: ASN1_ENUMERATED_get_int64(int64_t *pr, const ASN1_ENUMERATED *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_set_int64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - r
    argTypes:
    - ASN1_ENUMERATED*
    - int64_t
    constantsTouched: []
    func_position:
      end: 591
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 591
    functionName: ASN1_ENUMERATED_set_int64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - asn1_string_set_int64
    linkageType: ''
    returnType: int
    signature: ASN1_ENUMERATED_set_int64(ASN1_ENUMERATED *a, int64_t r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ENUMERATED_set_int64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - v
    argTypes:
    - ASN1_ENUMERATED*
    - long
    constantsTouched: []
    func_position:
      end: 596
      start: 593
    functionDepth: 3
    functionLinenumber: 593
    functionLinenumberEnd: 596
    functionName: ASN1_ENUMERATED_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 2
    functionsReached:
    - ASN1_ENUMERATED_set_int64
    linkageType: ''
    returnType: int
    signature: ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ENUMERATED_get_int64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:608,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - a
    argTypes:
    - ASN1_ENUMERATED*
    constantsTouched: []
    func_position:
      end: 614
      start: 598
    functionDepth: 4
    functionLinenumber: 598
    functionLinenumberEnd: 614
    functionName: ASN1_ENUMERATED_get
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 4
    functionsReached:
    - ASN1_ENUMERATED_get_int64
    linkageType: ''
    returnType: long
    signature: ASN1_ENUMERATED_get(const ASN1_ENUMERATED *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bn_to_asn1_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bn
    - ai
    argTypes:
    - BIGNUM*
    - ASN1_ENUMERATED*
    constantsTouched: []
    func_position:
      end: 619
      start: 616
    functionDepth: 3
    functionLinenumber: 616
    functionLinenumberEnd: 619
    functionName: BN_to_ASN1_ENUMERATED
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - bn_to_asn1_string
    linkageType: ''
    returnType: ASN1_ENUMERATED
    signature: '*BN_to_ASN1_ENUMERATED(const BIGNUM *bn, ASN1_ENUMERATED *ai)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_to_bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ai
    - bn
    argTypes:
    - ASN1_ENUMERATED*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 624
      start: 621
    functionDepth: 5
    functionLinenumber: 621
    functionLinenumberEnd: 624
    functionName: ASN1_ENUMERATED_to_BN
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - asn1_string_to_bn
    linkageType: ''
    returnType: BIGNUM
    signature: '*ASN1_ENUMERATED_to_BN(const ASN1_ENUMERATED *ai, BIGNUM *bn)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cfb64.c:33,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cfb64.c:35,1
    - Dst: BF_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cfb64.c:37,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cfb64.c:40,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cfb64.c:42,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cfb64.c:53,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cfb64.c:55,1
    - Dst: BF_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cfb64.c:57,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cfb64.c:60,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cfb64.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 7
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - BF_KEY*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 74
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 74
    functionName: BF_cfb64_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cfb64.c
    functionUses: 0
    functionsReached:
    - BF_encrypt
    - l2n
    - n2l
    linkageType: ''
    returnType: void
    signature: "BF_cfb64_encrypt(const unsigned char *in, unsigned char *out,\n                      long
      length, const BF_KEY *schedule,\n                      unsigned char *ivec,
      int *num, int encrypt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: BF_options
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_ecb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*BF_options(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_ecb.c:30,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_ecb.c:32,1
    - Dst: BF_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_ecb.c:35,1
    - Dst: BF_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_ecb.c:37,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_ecb.c:39,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_ecb.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - in
    - out
    - key
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - BF_KEY*
    - int
    constantsTouched: []
    func_position:
      end: 43
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 43
    functionName: BF_ecb_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_ecb.c
    functionUses: 0
    functionsReached:
    - BF_encrypt
    - BF_decrypt
    - n2l
    - l2n
    linkageType: ''
    returnType: void
    signature: "BF_ecb_encrypt(const unsigned char *in, unsigned char *out,\n                    const
      BF_KEY *key, int encrypt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_skey.c:22,1
    - Dst: BF_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_skey.c:56,1
    - Dst: BF_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_skey.c:63,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - key
    - len
    - data
    argTypes:
    - BF_KEY*
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 67
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 67
    functionName: BF_set_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_skey.c
    functionUses: 1
    functionsReached:
    - BF_encrypt
    - memcpy
    linkageType: ''
    returnType: void
    signature: BF_set_key(BF_KEY *key, int len, const unsigned char *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:35,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:36,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:37,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:38,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:39,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:40,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:41,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:42,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:43,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:44,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:45,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:46,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:47,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:48,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:49,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:50,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:52,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:53,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:54,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 2
    argNames:
    - data
    - key
    argTypes:
    - BF_LONG*
    - BF_KEY*
    constantsTouched: []
    func_position:
      end: 61
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 61
    functionName: BF_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c
    functionUses: 3
    functionsReached:
    - BF_ENC
    linkageType: ''
    returnType: void
    signature: BF_encrypt(BF_LONG *data, const BF_KEY *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:77,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:78,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:79,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:80,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:82,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:83,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:84,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:85,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:86,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:87,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:88,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:89,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:90,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:91,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:92,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:93,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:94,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:95,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:96,1
    - Dst: BF_ENC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 2
    argNames:
    - data
    - key
    argTypes:
    - BF_LONG*
    - BF_KEY*
    constantsTouched: []
    func_position:
      end: 102
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 102
    functionName: BF_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c
    functionUses: 1
    functionsReached:
    - BF_ENC
    linkageType: ''
    returnType: void
    signature: BF_decrypt(BF_LONG *data, const BF_KEY *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:113,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:114,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:117,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:118,1
    - Dst: BF_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:123,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:126,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:127,1
    - Dst: n2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:130,1
    - Dst: BF_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:135,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:138,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:139,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:141,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:142,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:144,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:145,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:148,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:149,1
    - Dst: BF_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:152,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:155,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:156,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:161,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:162,1
    - Dst: BF_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:165,1
    - Dst: l2nn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:168,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:172,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c:173,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 66
    argCount: 6
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - BF_KEY*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 177
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 177
    functionName: BF_cbc_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c
    functionUses: 0
    functionsReached:
    - BF_decrypt
    - l2nn
    - BF_encrypt
    - l2n
    - n2l
    - n2ln
    linkageType: ''
    returnType: void
    signature: "BF_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,\n
      \                   const BF_KEY *schedule, unsigned char *ivec, int encrypt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_ofb64.c:32,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_ofb64.c:33,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_ofb64.c:37,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_ofb64.c:38,1
    - Dst: BF_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_ofb64.c:41,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_ofb64.c:44,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_ofb64.c:46,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_ofb64.c:56,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_ofb64.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 6
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - BF_KEY*
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 61
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 61
    functionName: BF_ofb64_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_ofb64.c
    functionUses: 0
    functionsReached:
    - BF_encrypt
    - l2n
    - n2l
    linkageType: ''
    returnType: void
    signature: "BF_ofb64_encrypt(const unsigned char *in, unsigned char *out,\n                      long
      length, const BF_KEY *schedule,\n                      unsigned char *ivec,
      int *num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:22,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:23,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:26,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:27,1
    - Dst: BF_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:32,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:35,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:36,1
    - Dst: n2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:39,1
    - Dst: BF_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:44,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:47,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:48,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:50,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:51,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:53,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:54,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:57,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:58,1
    - Dst: BF_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:61,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:64,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:65,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:70,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:71,1
    - Dst: BF_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:74,1
    - Dst: l2nn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:77,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:81,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c:82,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 66
    argCount: 6
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - BF_KEY*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 86
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 86
    functionName: BF_cbc_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c
    functionUses: 0
    functionsReached:
    - BF_decrypt
    - l2nn
    - BF_encrypt
    - l2n
    - n2l
    - n2ln
    linkageType: ''
    returnType: void
    signature: "BF_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,\n
      \                   const BF_KEY *schedule, unsigned char *ivec, int encrypt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cpuid_setup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_all.c:16,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_all.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: ENGINE_load_builtin_engines
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_all.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cpuid_setup
    - OPENSSL_init_crypto
    linkageType: ''
    returnType: void
    signature: ENGINE_load_builtin_engines(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_all.c:26,1
    - Dst: ENGINE_register_all_complete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_all.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 30
    functionName: ENGINE_setup_bsd_cryptodev
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_all.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - ENGINE_register_all_complete
    linkageType: ''
    returnType: void
    signature: ENGINE_setup_bsd_cryptodev(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_set_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:91,1
    - Dst: ENGINE_set_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:92,1
    - Dst: ENGINE_set_destroy_function
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:93,1
    - Dst: ENGINE_set_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:96,1
    - Dst: RSA_get_default_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:96,1
    - Dst: ENGINE_set_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:99,1
    - Dst: DSA_get_default_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:99,1
    - Dst: ENGINE_set_EC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:102,1
    - Dst: EC_KEY_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:102,1
    - Dst: ENGINE_set_DH
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:105,1
    - Dst: DH_get_default_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:105,1
    - Dst: ENGINE_set_RAND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:107,1
    - Dst: RAND_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:107,1
    - Dst: ENGINE_set_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:109,1
    - Dst: ENGINE_set_digests
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:112,1
    - Dst: ENGINE_set_load_privkey_function
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:116,1
    - Dst: ossl_register_hmac_meth
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:119,1
    - Dst: ENGINE_set_pkey_meths
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:120,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 130
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 130
    functionName: bind_helper
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 4
    functionsReached:
    - ENGINE_set_RAND
    - DSA_get_default_method
    - ENGINE_set_EC
    - ENGINE_set_name
    - ENGINE_set_digests
    - RAND_OpenSSL
    - ENGINE_set_load_privkey_function
    - ossl_register_hmac_meth
    - EC_KEY_OpenSSL
    - ENGINE_set_destroy_function
    - ENGINE_set_id
    - ENGINE_set_DH
    - RSA_get_default_method
    - ENGINE_set_ciphers
    - ENGINE_set_DSA
    - ENGINE_set_pkey_meths
    - DH_get_default_method
    - ENGINE_set_RSA
    linkageType: ''
    returnType: int
    signature: bind_helper(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:134,1
    - Dst: bind_helper
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:137,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 142
    functionName: engine_openssl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - bind_helper
    - ENGINE_free
    - ENGINE_new
    linkageType: ''
    returnType: ENGINE
    signature: '*engine_openssl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_openssl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:146,1
    - Dst: ENGINE_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:149,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:154,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 156
    functionName: engine_load_openssl_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 1
    functionsReached:
    - ENGINE_add
    - ERR_clear_error
    - engine_openssl
    - ENGINE_free
    linkageType: ''
    returnType: void
    signature: engine_load_openssl_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:165,1
    - Dst: bind_helper
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    constantsTouched: []
    func_position:
      end: 170
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 170
    functionName: bind_fn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - bind_helper
    - strcmp
    linkageType: ''
    returnType: int
    signature: bind_fn(ENGINE *e, const char *id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:198,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:200,1
    - Dst: test
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:200,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:200,1
    - Dst: RC4_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:201,1
    - Dst: test
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:201,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:201,1
    - Dst: test
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 204
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 204
    functionName: test_rc4_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - RC4_set_key
    - test
    - memcpy
    - EVP_CIPHER_CTX_key_length
    - fprintf
    linkageType: ''
    returnType: int
    signature: "test_rc4_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                            const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:210,1
    - Dst: RC4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:212,1
    - Dst: test
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: test_rc4_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - test
    - fprintf
    - RC4
    linkageType: ''
    returnType: int
    signature: "test_rc4_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:222,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:223,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:224,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:225,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:226,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:227,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:228,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 234
    functionName: test_r4_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_iv_length
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_init
    - EVP_CIPHER_meth_new
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*test_r4_cipher(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 239
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 239
    functionName: test_r4_cipher_destroy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_free
    linkageType: ''
    returnType: void
    signature: test_r4_cipher_destroy(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:247,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:248,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:249,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:250,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:251,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:252,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:253,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 259
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 259
    functionName: test_r4_40_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_iv_length
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_init
    - EVP_CIPHER_meth_new
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*test_r4_40_cipher(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: test_r4_40_cipher_destroy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_free
    linkageType: ''
    returnType: void
    signature: test_r4_40_cipher_destroy(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_r4_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:273,1
    - Dst: EVP_CIPHER_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:274,1
    - Dst: test_r4_40_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:275,1
    - Dst: EVP_CIPHER_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - nids
    argTypes:
    - int**
    constantsTouched: []
    func_position:
      end: 282
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 282
    functionName: test_cipher_nids
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - test_r4_40_cipher
    - EVP_CIPHER_nid
    - test_r4_cipher
    linkageType: ''
    returnType: int
    signature: test_cipher_nids(const int **nids)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_cipher_nids
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:289,1
    - Dst: test_r4_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:293,1
    - Dst: test_r4_40_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:295,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - e
    - cipher
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_CIPHER**
    - int**
    - int
    constantsTouched: []
    func_position:
      end: 305
      start: 284
    functionDepth: 3
    functionLinenumber: 284
    functionLinenumberEnd: 305
    functionName: openssl_ciphers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - test_cipher_nids
    - test_r4_40_cipher
    - fprintf
    - test_r4_cipher
    linkageType: ''
    returnType: int
    signature: "openssl_ciphers(ENGINE *e, const EVP_CIPHER **cipher,\n                           const
      int **nids, int nid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:315,1
    - Dst: SHA1_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:317,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 318
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 318
    functionName: test_sha1_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - fprintf
    - EVP_MD_CTX_md_data
    - SHA1_Init
    linkageType: ''
    returnType: int
    signature: test_sha1_init(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:323,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:325,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 326
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 326
    functionName: test_sha1_update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SHA1_Update
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: test_sha1_update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:331,1
    - Dst: SHA1_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:333,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 334
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 334
    functionName: test_sha1_final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SHA1_Final
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: test_sha1_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:342,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:343,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:344,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:345,1
    - Dst: EVP_MD_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:347,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:348,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:349,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:350,1
    - Dst: EVP_MD_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:351,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 357
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 357
    functionName: test_sha_md
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_set_final
    - EVP_MD_meth_set_flags
    - EVP_MD_meth_set_update
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_free
    - EVP_MD_meth_set_result_size
    - EVP_MD_meth_set_init
    - EVP_MD_meth_new
    - EVP_MD_meth_set_input_blocksize
    linkageType: ''
    returnType: EVP_MD
    signature: '*test_sha_md(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 362
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 362
    functionName: test_sha_md_destroy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_free
    linkageType: ''
    returnType: void
    signature: test_sha_md_destroy(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_sha_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:371,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - nids
    argTypes:
    - int**
    constantsTouched: []
    func_position:
      end: 378
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 378
    functionName: test_digest_nids
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 1
    functionsReached:
    - EVP_MD_type
    - test_sha_md
    linkageType: ''
    returnType: int
    signature: test_digest_nids(const int **nids)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_digest_nids
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:385,1
    - Dst: test_sha_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:389,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - e
    - digest
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_MD**
    - int**
    - int
    constantsTouched: []
    func_position:
      end: 399
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 399
    functionName: openssl_digests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - fprintf
    - test_sha_md
    - test_digest_nids
    linkageType: ''
    returnType: int
    signature: "openssl_digests(ENGINE *e, const EVP_MD **digest,\n                           const
      int **nids, int nid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:409,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:411,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:414,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - eng
    - key_id
    - ui_method
    - callback_data
    argTypes:
    - ENGINE*
    - char*
    - UI_METHOD*
    - void*
    constantsTouched: []
    func_position:
      end: 417
      start: 403
    functionDepth: 4
    functionLinenumber: 403
    functionLinenumberEnd: 417
    functionName: openssl_load_privkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - fprintf
    - PEM_read_bio_PrivateKey
    - BIO_free
    - BIO_new_file
    linkageType: ''
    returnType: EVP_PKEY
    signature: "*openssl_load_privkey(ENGINE *eng, const char *key_id,\n                                      UI_METHOD
      *ui_method,\n                                      void *callback_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:439,1
    - Dst: HMAC_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:443,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:445,1
    - Dst: EVP_PKEY_CTX_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:448,1
    - Dst: EVP_PKEY_CTX_set0_keygen_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:449,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 454
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 454
    functionName: ossl_hmac_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_data
    - HMAC_CTX_new
    - EVP_PKEY_CTX_set0_keygen_info
    - OPENSSL_zalloc
    - fprintf
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: ossl_hmac_init(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ossl_hmac_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:463,1
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:465,1
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:466,1
    - Dst: HMAC_CTX_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:468,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:471,1
    - Dst: ossl_hmac_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:478,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 480
      start: 458
    functionDepth: 6
    functionLinenumber: 458
    functionLinenumberEnd: 480
    functionName: ossl_hmac_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - ossl_hmac_init
    - EVP_PKEY_CTX_get_data
    - ASN1_OCTET_STRING_set
    - HMAC_CTX_copy
    - ossl_hmac_cleanup
    linkageType: ''
    returnType: int
    signature: ossl_hmac_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:484,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:487,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:488,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:489,1
    - Dst: EVP_PKEY_CTX_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 492
      start: 482
    functionDepth: 5
    functionLinenumber: 482
    functionLinenumberEnd: 492
    functionName: ossl_hmac_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_CTX_set_data
    - OPENSSL_clear_free
    - EVP_PKEY_CTX_get_data
    - HMAC_CTX_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: ossl_hmac_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:497,1
    - Dst: ASN1_OCTET_STRING_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:500,1
    - Dst: EVP_PKEY_assign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:503,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 506
      start: 494
    functionDepth: 4
    functionLinenumber: 494
    functionLinenumberEnd: 506
    functionName: ossl_hmac_keygen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_dup
    - EVP_PKEY_CTX_get_data
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: ossl_hmac_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:510,1
    - Dst: EVP_MD_CTX_pkey_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:510,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 514
      start: 508
    functionDepth: 2
    functionLinenumber: 508
    functionLinenumberEnd: 514
    functionName: ossl_int_update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_pkey_ctx
    - HMAC_Update
    - EVP_PKEY_CTX_get_data
    linkageType: ''
    returnType: int
    signature: ossl_int_update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:518,1
    - Dst: EVP_MD_CTX_set_update_fn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - mctx
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 521
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 521
    functionName: ossl_hmac_signctx_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_set_flags
    - EVP_MD_CTX_set_update_fn
    linkageType: ''
    returnType: int
    signature: ossl_hmac_signctx_init(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:527,1
    - Dst: HMAC_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:536,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - sig
    - siglen
    - mctx
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 540
      start: 523
    functionDepth: 5
    functionLinenumber: 523
    functionLinenumberEnd: 540
    functionName: ossl_hmac_signctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - HMAC_Final
    - EVP_PKEY_CTX_get_data
    linkageType: ''
    returnType: int
    signature: "ossl_hmac_signctx(EVP_PKEY_CTX *ctx, unsigned char *sig,\n                             size_t
      *siglen, EVP_MD_CTX *mctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:544,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:552,1
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:561,1
    - Dst: EVP_PKEY_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:562,1
    - Dst: HMAC_Init_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:563,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 572
      start: 542
    functionDepth: 5
    functionLinenumber: 542
    functionLinenumberEnd: 572
    functionName: ossl_hmac_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get0
    - EVP_PKEY_CTX_get_data
    - ASN1_OCTET_STRING_set
    - HMAC_Init_ex
    - EVP_PKEY_CTX_get0_pkey
    linkageType: ''
    returnType: int
    signature: ossl_hmac_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:580,1
    - Dst: ossl_hmac_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:582,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:584,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:588,1
    - Dst: ossl_hmac_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:591,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:592,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 596
      start: 574
    functionDepth: 6
    functionLinenumber: 574
    functionLinenumberEnd: 596
    functionName: ossl_hmac_ctrl_str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_hexstr2buf
    - OPENSSL_free
    - ossl_hmac_ctrl
    - strcmp
    linkageType: ''
    returnType: int
    signature: "ossl_hmac_ctrl_str(EVP_PKEY_CTX *ctx,\n                              const
      char *type, const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:603,1
    - Dst: EVP_PKEY_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:606,1
    - Dst: EVP_PKEY_meth_set_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:607,1
    - Dst: EVP_PKEY_meth_set_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:608,1
    - Dst: EVP_PKEY_meth_set_keygen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:610,1
    - Dst: EVP_PKEY_meth_set_signctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:612,1
    - Dst: EVP_PKEY_meth_set_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 618
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 618
    functionName: ossl_register_hmac_meth
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_meth_set_copy
    - EVP_PKEY_meth_new
    - EVP_PKEY_meth_set_signctx
    - EVP_PKEY_meth_set_ctrl
    - EVP_PKEY_meth_set_keygen
    - EVP_PKEY_meth_set_cleanup
    - EVP_PKEY_meth_set_init
    linkageType: ''
    returnType: int
    signature: ossl_register_hmac_meth(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - e
    - pmeth
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_PKEY_METHOD**
    - int**
    - int
    constantsTouched: []
    func_position:
      end: 639
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 639
    functionName: ossl_pkey_meths
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "ossl_pkey_meths(ENGINE *e, EVP_PKEY_METHOD **pmeth,\n                           const
      int **nids, int nid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_sha_md_destroy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:645,1
    - Dst: test_r4_cipher_destroy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:647,1
    - Dst: test_r4_40_cipher_destroy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 651
      start: 643
    functionDepth: 2
    functionLinenumber: 643
    functionLinenumberEnd: 651
    functionName: openssl_destroy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - test_sha_md_destroy
    - test_r4_cipher_destroy
    - test_r4_40_cipher_destroy
    linkageType: ''
    returnType: int
    signature: openssl_destroy(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_ia32_rdrand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_rdrand.c:30,1
    - Dst: OPENSSL_ia32_rdrand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_rdrand.c:38,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_rdrand.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 45
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 45
    functionName: get_random_bytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_rdrand.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OPENSSL_ia32_rdrand
    linkageType: ''
    returnType: int
    signature: get_random_bytes(unsigned char *buf, int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: random_status
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_rdrand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: random_status(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: rdrand_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_rdrand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: rdrand_init(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_set_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_rdrand.c:71,1
    - Dst: ENGINE_set_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_rdrand.c:72,1
    - Dst: ENGINE_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_rdrand.c:73,1
    - Dst: ENGINE_set_init_function
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_rdrand.c:74,1
    - Dst: ENGINE_set_RAND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_rdrand.c:75,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 79
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 79
    functionName: bind_helper
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_rdrand.c
    functionUses: 6
    functionsReached:
    - ENGINE_set_RAND
    - ENGINE_set_name
    - ENGINE_set_flags
    - ENGINE_set_id
    - ENGINE_set_init_function
    linkageType: ''
    returnType: int
    signature: bind_helper(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_rdrand.c:83,1
    - Dst: bind_helper
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_rdrand.c:86,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_rdrand.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: ENGINE_rdrand
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_rdrand.c
    functionUses: 0
    functionsReached:
    - bind_helper
    - ENGINE_free
    - ENGINE_new
    linkageType: ''
    returnType: ENGINE
    signature: '*ENGINE_rdrand(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_rdrand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_rdrand.c:98,1
    - Dst: ENGINE_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_rdrand.c:101,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_rdrand.c:102,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_rdrand.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 105
    functionName: engine_load_rdrand_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_rdrand.c
    functionUses: 1
    functionsReached:
    - ERR_clear_error
    - ENGINE_add
    - ENGINE_rdrand
    - ENGINE_free
    linkageType: ''
    returnType: void
    signature: engine_load_rdrand_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: engine_load_rdrand_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_rdrand.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: engine_load_rdrand_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: ENGINE_unregister_pkey_meths
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: ENGINE_unregister_pkey_meths(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: engine_unregister_all_pkey_meths
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: engine_unregister_all_pkey_meths(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 36
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 36
    functionName: ENGINE_register_pkey_meths
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: ENGINE_register_pkey_meths(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c:42,1
    - Dst: ENGINE_get_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c:42,1
    - Dst: ENGINE_register_pkey_meths
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: ENGINE_register_all_pkey_meths
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_first
    - ENGINE_register_pkey_meths
    - ENGINE_get_next
    linkageType: ''
    returnType: void
    signature: ENGINE_register_all_pkey_meths()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 57
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 57
    functionName: ENGINE_set_default_pkey_meths
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: ENGINE_set_default_pkey_meths(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_select
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: ENGINE_get_pkey_meth_engine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c
    functionUses: 1
    functionsReached:
    - engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: '*ENGINE_get_pkey_meth_engine(int nid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_pkey_meths
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c:73,1
    - Dst: fn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c:74,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - e
    - nid
    argTypes:
    - ENGINE*
    - int
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: ENGINE_get_pkey_meth
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c
    functionUses: 1
    functionsReached:
    - ENGINE_get_pkey_meths
    - ENGINEerr
    - fn
    linkageType: ''
    returnType: EVP_PKEY_METHOD
    signature: '*ENGINE_get_pkey_meth(ENGINE *e, int nid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: ENGINE_get_pkey_meths
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_PKEY_METHS_PTR
    signature: ENGINE_get_pkey_meths(const ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - f
    argTypes:
    - ENGINE*
    - ENGINE_PKEY_METHS_PTR
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: ENGINE_set_pkey_meths
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ENGINE_set_pkey_meths(ENGINE *e, ENGINE_PKEY_METHS_PTR f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::pkey_meths
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c:107,1
    - Dst: ENGINE*::pkey_meths
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c:109,1
    - Dst: EVP_PKEY_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 114
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 114
    functionName: engine_pkey_meths_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c
    functionUses: 0
    functionsReached:
    - ENGINE*::pkey_meths
    - EVP_PKEY_meth_free
    linkageType: ''
    returnType: void
    signature: engine_pkey_meths_free(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_digest.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: ENGINE_unregister_digests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_digest.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: ENGINE_unregister_digests(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_digest.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: engine_unregister_all_digests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_digest.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: engine_unregister_all_digests(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_digest.c:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 35
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 35
    functionName: ENGINE_register_digests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_digest.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: ENGINE_register_digests(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_digest.c:41,1
    - Dst: ENGINE_get_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_digest.c:41,1
    - Dst: ENGINE_register_digests
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_digest.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: ENGINE_register_all_digests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_digest.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_first
    - ENGINE_register_digests
    - ENGINE_get_next
    linkageType: ''
    returnType: void
    signature: ENGINE_register_all_digests()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_digest.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: ENGINE_set_default_digests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_digest.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: ENGINE_set_default_digests(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_select
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_digest.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: ENGINE_get_digest_engine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_digest.c
    functionUses: 1
    functionsReached:
    - engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: '*ENGINE_get_digest_engine(int nid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_digests
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_digest.c:72,1
    - Dst: fn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_digest.c:73,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_digest.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - e
    - nid
    argTypes:
    - ENGINE*
    - int
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: ENGINE_get_digest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_digest.c
    functionUses: 1
    functionsReached:
    - ENGINEerr
    - ENGINE_get_digests
    - fn
    linkageType: ''
    returnType: EVP_MD
    signature: '*ENGINE_get_digest(ENGINE *e, int nid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: ENGINE_get_digests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_digest.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_DIGESTS_PTR
    signature: ENGINE_get_digests(const ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - f
    argTypes:
    - ENGINE*
    - ENGINE_DIGESTS_PTR
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: ENGINE_set_digests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_digest.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ENGINE_set_digests(ENGINE *e, ENGINE_DIGESTS_PTR f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:21,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: DEFINE_RUN_ONCE
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_init_crypto
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE(do_engine_lock_init)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:30,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:31,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:32,1
    - Dst: engine_ref_debug
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:36,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:37,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 42
    functionName: ENGINE_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 8
    functionsReached:
    - CRYPTO_new_ex_data
    - RUN_ONCE
    - ENGINEerr
    - engine_ref_debug
    - OPENSSL_zalloc
    - OPENSSL_free
    linkageType: ''
    returnType: ENGINE
    signature: '*ENGINE_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 67
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 67
    functionName: engine_set_all_null
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: engine_set_all_null(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:76,1
    - Dst: engine_ref_debug
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:79,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:82,1
    - Dst: engine_pkey_meths_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:84,1
    - Dst: engine_pkey_asn1_meths_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:85,1
    - Dst: ENGINE*::destroy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:91,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:92,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - e
    - locked
    argTypes:
    - ENGINE*
    - int
    constantsTouched: []
    func_position:
      end: 95
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 95
    functionName: engine_free_util
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached:
    - ENGINE*::destroy
    - engine_pkey_meths_free
    - engine_pkey_asn1_meths_free
    - CRYPTO_free_ex_data
    - engine_ref_debug
    - CRYPTO_atomic_add
    - OPENSSL_free
    - REF_ASSERT_ISNT
    linkageType: ''
    returnType: int
    signature: engine_free_util(ENGINE *e, int locked)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_free_util
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: ENGINE_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 17
    functionsReached:
    - engine_free_util
    linkageType: ''
    returnType: int
    signature: ENGINE_free(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_ENGINE_CLEANUP_ITEM_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - create
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 119
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 119
    functionName: int_cleanup_check
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached:
    - sk_ENGINE_CLEANUP_ITEM_new_null
    linkageType: ''
    returnType: int
    signature: int_cleanup_check(int create)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cb
    argTypes:
    - ENGINE_CLEANUP_CB*
    constantsTouched: []
    func_position:
      end: 128
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 128
    functionName: int_cleanup_item
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    linkageType: ''
    returnType: ENGINE_CLEANUP_ITEM
    signature: '*int_cleanup_item(ENGINE_CLEANUP_CB *cb)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: int_cleanup_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:133,1
    - Dst: int_cleanup_item
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:135,1
    - Dst: sk_ENGINE_CLEANUP_ITEM_insert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - ENGINE_CLEANUP_CB*
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: engine_cleanup_add_first
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached:
    - int_cleanup_check
    - int_cleanup_item
    - sk_ENGINE_CLEANUP_ITEM_insert
    linkageType: ''
    returnType: void
    signature: engine_cleanup_add_first(ENGINE_CLEANUP_CB *cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: int_cleanup_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:143,1
    - Dst: int_cleanup_item
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:145,1
    - Dst: sk_ENGINE_CLEANUP_ITEM_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - ENGINE_CLEANUP_CB*
    constantsTouched: []
    func_position:
      end: 148
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 148
    functionName: engine_cleanup_add_last
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached:
    - int_cleanup_check
    - int_cleanup_item
    - sk_ENGINE_CLEANUP_ITEM_push
    linkageType: ''
    returnType: void
    signature: engine_cleanup_add_last(ENGINE_CLEANUP_CB *cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - ENGINE_CLEANUP_ITEM*
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: engine_cleanup_cb_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: engine_cleanup_cb_free(ENGINE_CLEANUP_ITEM *item)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: int_cleanup_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:159,1
    - Dst: sk_ENGINE_CLEANUP_ITEM_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:160,1
    - Dst: RAND_set_rand_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:168,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 170
    functionName: engine_cleanup_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 1
    functionsReached:
    - sk_ENGINE_CLEANUP_ITEM_pop_free
    - int_cleanup_check
    - RAND_set_rand_method
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: engine_cleanup_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - e
    - idx
    - arg
    argTypes:
    - ENGINE*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: ENGINE_set_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 2
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: ENGINE_set_ex_data(ENGINE *e, int idx, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - e
    - idx
    argTypes:
    - ENGINE*
    - int
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: ENGINE_get_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 6
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: '*ENGINE_get_ex_data(const ENGINE *e, int idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: ENGINE_set_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 8
    functionsReached:
    - ENGINEerr
    linkageType: ''
    returnType: int
    signature: ENGINE_set_id(ENGINE *e, const char *id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - e
    - name
    argTypes:
    - ENGINE*
    - char*
    constantsTouched: []
    func_position:
      end: 207
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 207
    functionName: ENGINE_set_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 8
    functionsReached:
    - ENGINEerr
    linkageType: ''
    returnType: int
    signature: ENGINE_set_name(ENGINE *e, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - destroy_f
    argTypes:
    - ENGINE*
    - ENGINE_GEN_INT_FUNC_PTR
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: ENGINE_set_destroy_function
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ENGINE_set_destroy_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR destroy_f)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - init_f
    argTypes:
    - ENGINE*
    - ENGINE_GEN_INT_FUNC_PTR
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: ENGINE_set_init_function
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ENGINE_set_init_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR init_f)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - finish_f
    argTypes:
    - ENGINE*
    - ENGINE_GEN_INT_FUNC_PTR
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: ENGINE_set_finish_function
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ENGINE_set_finish_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR finish_f)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - ctrl_f
    argTypes:
    - ENGINE*
    - ENGINE_CTRL_FUNC_PTR
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: ENGINE_set_ctrl_function
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ENGINE_set_ctrl_function(ENGINE *e, ENGINE_CTRL_FUNC_PTR ctrl_f)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - flags
    argTypes:
    - ENGINE*
    - int
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: ENGINE_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ENGINE_set_flags(ENGINE *e, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - defns
    argTypes:
    - ENGINE*
    - ENGINE_CMD_DEFN*
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: ENGINE_set_cmd_defns
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ENGINE_set_cmd_defns(ENGINE *e, const ENGINE_CMD_DEFN *defns)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: ENGINE_get_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*ENGINE_get_id(const ENGINE *e)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: ENGINE_get_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*ENGINE_get_name(const ENGINE *e)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: ENGINE_get_destroy_function
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_GEN_INT_FUNC_PTR
    signature: ENGINE_get_destroy_function(const ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: ENGINE_get_init_function
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_GEN_INT_FUNC_PTR
    signature: ENGINE_get_init_function(const ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 268
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 268
    functionName: ENGINE_get_finish_function
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_GEN_INT_FUNC_PTR
    signature: ENGINE_get_finish_function(const ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: ENGINE_get_ctrl_function
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_CTRL_FUNC_PTR
    signature: ENGINE_get_ctrl_function(const ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: ENGINE_get_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ENGINE_get_flags(const ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 283
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 283
    functionName: ENGINE_get_cmd_defns
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_CMD_DEFN
    signature: '*ENGINE_get_cmd_defns(const ENGINE *e)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: ENGINE_get_static_state
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*ENGINE_get_static_state(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dsa.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: ENGINE_unregister_DSA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dsa.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: ENGINE_unregister_DSA(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dsa.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: engine_unregister_all_DSA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dsa.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: engine_unregister_all_DSA(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dsa.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: ENGINE_register_DSA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dsa.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: ENGINE_register_DSA(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dsa.c:38,1
    - Dst: ENGINE_get_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dsa.c:38,1
    - Dst: ENGINE_register_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dsa.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: ENGINE_register_all_DSA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dsa.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_first
    - ENGINE_register_DSA
    - ENGINE_get_next
    linkageType: ''
    returnType: void
    signature: ENGINE_register_all_DSA()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dsa.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: ENGINE_set_default_DSA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dsa.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: ENGINE_set_default_DSA(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_select
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dsa.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: ENGINE_get_default_DSA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dsa.c
    functionUses: 1
    functionsReached:
    - engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: '*ENGINE_get_default_DSA(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: ENGINE_get_DSA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dsa.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: DSA_METHOD
    signature: '*ENGINE_get_DSA(const ENGINE *e)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - dsa_meth
    argTypes:
    - ENGINE*
    - DSA_METHOD*
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: ENGINE_set_DSA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dsa.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ENGINE_set_DSA(ENGINE *e, const DSA_METHOD *dsa_meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - defn
    argTypes:
    - ENGINE_CMD_DEFN*
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: int_ctrl_cmd_is_null
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int_ctrl_cmd_is_null(const ENGINE_CMD_DEFN *defn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: int_ctrl_cmd_is_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:34,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:34,1
    - Dst: int_ctrl_cmd_is_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - defn
    - s
    argTypes:
    - ENGINE_CMD_DEFN*
    - char*
    constantsTouched: []
    func_position:
      end: 42
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: int_ctrl_cmd_by_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c
    functionUses: 0
    functionsReached:
    - strcmp
    - int_ctrl_cmd_is_null
    linkageType: ''
    returnType: int
    signature: int_ctrl_cmd_by_name(const ENGINE_CMD_DEFN *defn, const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: int_ctrl_cmd_is_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - defn
    - num
    argTypes:
    - ENGINE_CMD_DEFN*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 59
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 59
    functionName: int_ctrl_cmd_by_num
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c
    functionUses: 0
    functionsReached:
    - int_ctrl_cmd_is_null
    linkageType: ''
    returnType: int
    signature: int_ctrl_cmd_by_num(const ENGINE_CMD_DEFN *defn, unsigned int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: int_ctrl_cmd_is_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:68,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:77,1
    - Dst: int_ctrl_cmd_by_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:84,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:85,1
    - Dst: int_ctrl_cmd_by_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:94,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:97,1
    - Dst: int_ctrl_cmd_is_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:104,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:110,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:112,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:112,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:116,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:117,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:120,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:121,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:123,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:123,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:129,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 4
    argNames:
    - e
    - cmd
    - i
    - p
    argTypes:
    - ENGINE*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 131
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 131
    functionName: int_ctrl_helper
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - ENGINEerr
    - strlen
    - int_ctrl_cmd_by_num
    - int_ctrl_cmd_is_null
    - int_ctrl_cmd_by_name
    linkageType: ''
    returnType: int
    signature: "int_ctrl_helper(ENGINE *e, int cmd, long i, void *p,\n                           void
      (*f) (void))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:137,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:140,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:142,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:145,1
    - Dst: int_ctrl_helper
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:164,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:166,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:179,1
    - Dst: ENGINE*::ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:182,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 4
    argNames:
    - e
    - cmd
    - i
    - p
    argTypes:
    - ENGINE*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 183
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 183
    functionName: ENGINE_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    - int_ctrl_helper
    - ENGINE*::ctrl
    linkageType: ''
    returnType: int
    signature: ENGINE_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:189,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - e
    - cmd
    argTypes:
    - ENGINE*
    - int
    constantsTouched: []
    func_position:
      end: 199
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 199
    functionName: ENGINE_cmd_is_executable
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c
    functionUses: 0
    functionsReached:
    - ENGINE_ctrl
    - ENGINEerr
    linkageType: ''
    returnType: int
    signature: ENGINE_cmd_is_executable(ENGINE *e, int cmd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:207,1
    - Dst: ENGINE_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:211,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:222,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:225,1
    - Dst: ENGINE_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:232,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 5
    argNames:
    - e
    - cmd_name
    - i
    - p
    - cmd_optional
    argTypes:
    - ENGINE*
    - char*
    - long
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 235
      start: 201
    functionDepth: 4
    functionLinenumber: 201
    functionLinenumberEnd: 235
    functionName: ENGINE_ctrl_cmd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - ENGINE_ctrl
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: "ENGINE_ctrl_cmd(ENGINE *e, const char *cmd_name,\n                    long
      i, void *p, void (*f) (void), int cmd_optional)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:245,1
    - Dst: ENGINE_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:249,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:260,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:263,1
    - Dst: ENGINE_cmd_is_executable
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:266,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:267,1
    - Dst: ENGINE_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:272,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:278,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:287,1
    - Dst: ENGINE_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:297,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:303,1
    - Dst: ENGINE_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:310,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:321,1
    - Dst: strtol
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:325,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:327,1
    - Dst: ENGINE_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c:335,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 4
    argNames:
    - e
    - cmd_name
    - arg
    - cmd_optional
    argTypes:
    - ENGINE*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 338
      start: 237
    functionDepth: 5
    functionLinenumber: 237
    functionLinenumberEnd: 338
    functionName: ENGINE_ctrl_cmd_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c
    functionUses: 0
    functionsReached:
    - ENGINE_ctrl
    - ENGINEerr
    - ENGINE_cmd_is_executable
    - strtol
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: "ENGINE_ctrl_cmd_string(ENGINE *e, const char *cmd_name, const char
      *arg,\n                           int cmd_optional)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rsa.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: ENGINE_unregister_RSA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rsa.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: ENGINE_unregister_RSA(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rsa.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: engine_unregister_all_RSA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rsa.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: engine_unregister_all_RSA(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rsa.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: ENGINE_register_RSA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rsa.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: ENGINE_register_RSA(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rsa.c:38,1
    - Dst: ENGINE_get_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rsa.c:38,1
    - Dst: ENGINE_register_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rsa.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: ENGINE_register_all_RSA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rsa.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_first
    - ENGINE_get_next
    - ENGINE_register_RSA
    linkageType: ''
    returnType: void
    signature: ENGINE_register_all_RSA()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rsa.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: ENGINE_set_default_RSA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rsa.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: ENGINE_set_default_RSA(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_select
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rsa.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: ENGINE_get_default_RSA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rsa.c
    functionUses: 0
    functionsReached:
    - engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: '*ENGINE_get_default_RSA(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: ENGINE_get_RSA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RSA_METHOD
    signature: '*ENGINE_get_RSA(const ENGINE *e)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - rsa_meth
    argTypes:
    - ENGINE*
    - RSA_METHOD*
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: ENGINE_set_RSA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rsa.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ENGINE_set_RSA(ENGINE *e, const RSA_METHOD *rsa_meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: skip_dot
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*skip_dot(const char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:30,1
    - Dst: sk_ENGINE_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:33,1
    - Dst: sk_ENGINE_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:34,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 39
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 39
    functionName: int_engine_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c
    functionUses: 0
    functionsReached:
    - sk_ENGINE_new_null
    - sk_ENGINE_push
    - ENGINE_init
    - ENGINE_finish
    linkageType: ''
    returnType: int
    signature: int_engine_init(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:46,1
    - Dst: skip_dot
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:52,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:54,1
    - Dst: NCONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:57,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:60,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:65,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:66,1
    - Dst: skip_dot
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:67,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:70,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:77,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:79,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:82,1
    - Dst: ENGINE_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:83,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:86,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:88,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:90,1
    - Dst: ENGINE_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:100,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:102,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:112,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:114,1
    - Dst: NCONF_get_number_e
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:115,1
    - Dst: int_engine_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:118,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:121,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:125,1
    - Dst: ENGINE_set_default_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:126,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:128,1
    - Dst: int_engine_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:133,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:140,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:143,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:147,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 85
    argCount: 3
    argNames:
    - name
    - value
    - cnf
    argTypes:
    - char*
    - char*
    - CONF*
    constantsTouched: []
    func_position:
      end: 149
      start: 41
    functionDepth: 6
    functionLinenumber: 41
    functionLinenumberEnd: 149
    functionName: int_engine_configure
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - skip_dot
    - strcmp
    - STACK_OF
    - ENGINEerr
    - ENGINE_by_id
    - sk_CONF_VALUE_num
    - ENGINE_free
    - int_engine_init
    - ERR_add_error_data
    - NCONF_get_number_e
    - ENGINE_set_default_string
    - NCONF_get_section
    - fprintf
    - ENGINE_ctrl_cmd_string
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: int_engine_configure(const char *name, const char *value, const CONF
      *cnf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:153,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:157,1
    - Dst: CONF_imodule_get_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:158,1
    - Dst: CONF_imodule_get_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:158,1
    - Dst: NCONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:161,1
    - Dst: CONF_imodule_get_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:161,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:164,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:169,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:170,1
    - Dst: int_engine_configure
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - md
    - cnf
    argTypes:
    - CONF_IMODULE*
    - CONF*
    constantsTouched: []
    func_position:
      end: 176
      start: 151
    functionDepth: 7
    functionLinenumber: 151
    functionLinenumberEnd: 176
    functionName: int_engine_module_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - STACK_OF
    - ENGINEerr
    - sk_CONF_VALUE_num
    - int_engine_configure
    - CONF_imodule_get_value
    - CONF_imodule_get_name
    - NCONF_get_section
    - fprintf
    linkageType: ''
    returnType: int
    signature: int_engine_module_init(CONF_IMODULE *md, const CONF *cnf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_ENGINE_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:182,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:183,1
    - Dst: sk_ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: int_engine_module_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c
    functionUses: 0
    functionsReached:
    - sk_ENGINE_free
    - sk_ENGINE_pop
    - ENGINE_finish
    linkageType: ''
    returnType: void
    signature: int_engine_module_finish(CONF_IMODULE *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONF_module_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: ENGINE_add_conf_module
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c
    functionUses: 0
    functionsReached:
    - CONF_module_add
    linkageType: ''
    returnType: void
    signature: ENGINE_add_conf_module(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: int_free_str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: int_free_str(char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:140,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:141,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:142,1
    - Dst: sk_OPENSSL_STRING_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:143,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 146
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 146
    functionName: dynamic_data_ctx_free_func
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_STRING_pop_free
    - OPENSSL_free
    - DSO_free
    linkageType: ''
    returnType: void
    signature: "dynamic_data_ctx_free_func(void *parent, void *ptr,\n                                       CRYPTO_EX_DATA
      *ad, int idx, long argl,\n                                       void *argp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:156,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:160,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:163,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:165,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:166,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:172,1
    - Dst: ENGINE_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:173,1
    - Dst: ENGINE_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:177,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:183,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:189,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:190,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - e
    - ctx
    argTypes:
    - ENGINE*
    - dynamic_data_ctx**
    constantsTouched: []
    func_position:
      end: 192
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 192
    functionName: dynamic_set_data_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - sk_OPENSSL_STRING_new_null
    - CRYPTO_THREAD_unlock
    - ENGINE_set_ex_data
    - ENGINE_get_ex_data
    - OPENSSL_zalloc
    - OPENSSL_free
    - sk_OPENSSL_STRING_free
    linkageType: ''
    returnType: int
    signature: dynamic_set_data_ctx(ENGINE *e, dynamic_data_ctx **ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:210,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:213,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:220,1
    - Dst: ENGINE_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:226,1
    - Dst: dynamic_set_data_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:228,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 232
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 232
    functionName: dynamic_get_data_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - dynamic_set_data_ctx
    - CRYPTO_THREAD_unlock
    - ENGINE_get_ex_data
    linkageType: ''
    returnType: dynamic_data_ctx
    signature: '*dynamic_get_data_ctx(ENGINE *e)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:236,1
    - Dst: ENGINE_set_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:239,1
    - Dst: ENGINE_set_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:240,1
    - Dst: ENGINE_set_init_function
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:241,1
    - Dst: ENGINE_set_finish_function
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:242,1
    - Dst: ENGINE_set_ctrl_function
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:243,1
    - Dst: ENGINE_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:244,1
    - Dst: ENGINE_set_cmd_defns
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:245,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:246,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 234
    functionDepth: 4
    functionLinenumber: 234
    functionLinenumberEnd: 250
    functionName: engine_dynamic
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached:
    - ENGINE_set_name
    - ENGINE_set_flags
    - ENGINE_free
    - ENGINE_set_cmd_defns
    - ENGINE_set_id
    - ENGINE_set_init_function
    - ENGINE_set_ctrl_function
    - ENGINE_new
    - ENGINE_set_finish_function
    linkageType: ''
    returnType: ENGINE
    signature: '*engine_dynamic(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_dynamic
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:254,1
    - Dst: ENGINE_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:257,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:262,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 269
      start: 252
    functionDepth: 5
    functionLinenumber: 252
    functionLinenumberEnd: 269
    functionName: engine_load_dynamic_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c
    functionUses: 1
    functionsReached:
    - ENGINE_add
    - ERR_clear_error
    - engine_dynamic
    - ENGINE_free
    linkageType: ''
    returnType: void
    signature: engine_load_dynamic_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 278
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 278
    functionName: dynamic_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: dynamic_init(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 287
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 287
    functionName: dynamic_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: dynamic_finish(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_get_data_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:291,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:295,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:301,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:307,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:309,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:311,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:320,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:322,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:324,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:330,1
    - Dst: dynamic_load
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:336,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:339,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:346,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:347,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:353,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:356,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:357,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:358,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:366,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 4
    argNames:
    - e
    - cmd
    - i
    - p
    argTypes:
    - ENGINE*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 368
      start: 289
    functionDepth: 4
    functionLinenumber: 289
    functionLinenumberEnd: 368
    functionName: dynamic_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_STRING_push
    - ENGINEerr
    - dynamic_get_data_ctx
    - strlen
    - OPENSSL_strdup
    - dynamic_load
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: dynamic_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSO_load
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:374,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:379,1
    - Dst: DSO_load
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:386,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:388,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:391,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - dynamic_data_ctx*
    constantsTouched: []
    func_position:
      end: 394
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 394
    functionName: int_load
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - DSO_load
    - sk_OPENSSL_STRING_num
    linkageType: ''
    returnType: int
    signature: int_load(dynamic_data_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:402,1
    - Dst: DSO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:408,1
    - Dst: DSO_convert_filename
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:411,1
    - Dst: int_load
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:413,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:414,1
    - Dst: DSO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:415,1
    - Dst: DSO_bind_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:422,1
    - Dst: DSO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:425,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:427,1
    - Dst: DSO_bind_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:438,1
    - Dst: dynamic_data_ctx*::v_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:441,1
    - Dst: DSO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:451,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:453,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:462,1
    - Dst: ENGINE_get_static_state
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:470,1
    - Dst: CRYPTO_get_mem_functions
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:471,1
    - Dst: engine_set_all_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:477,1
    - Dst: dynamic_data_ctx*::bind_engine
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:480,1
    - Dst: DSO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:483,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:485,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:487,1
    - Dst: ENGINE_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:492,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:501,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c:506,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 60
    argCount: 2
    argNames:
    - e
    - ctx
    argTypes:
    - ENGINE*
    - dynamic_data_ctx*
    constantsTouched: []
    func_position:
      end: 510
      start: 396
    functionDepth: 4
    functionLinenumber: 396
    functionLinenumberEnd: 510
    functionName: dynamic_load
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c
    functionUses: 1
    functionsReached:
    - DSO_ctrl
    - DSO_free
    - engine_set_all_null
    - ENGINEerr
    - DSO_convert_filename
    - ENGINE_get_static_state
    - DSO_new
    - CRYPTO_get_mem_functions
    - dynamic_data_ctx*::bind_engine
    - ENGINE_add
    - int_load
    - memcpy
    - DSO_bind_func
    - dynamic_data_ctx*::v_check
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: dynamic_load(ENGINE *e, dynamic_data_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: ENGINE_get_table_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: ENGINE_get_table_flags(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: ENGINE_set_table_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ENGINE_set_table_flags(unsigned int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - ENGINE_PILE*
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: engine_pile_hash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: engine_pile_hash(const ENGINE_PILE *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ENGINE_PILE*
    - ENGINE_PILE*
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: engine_pile_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: engine_pile_cmp(const ENGINE_PILE *a, const ENGINE_PILE *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LHASH_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:66,1
    - Dst: lh_ENGINE_PILE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - t
    - create
    argTypes:
    - ENGINE_TABLE**
    - int
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: int_table_check
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached:
    - lh_ENGINE_PILE_new
    - LHASH_OF
    linkageType: ''
    returnType: int
    signature: int_table_check(ENGINE_TABLE **t, int create)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:88,1
    - Dst: int_table_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:91,1
    - Dst: engine_cleanup_add_first
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:95,1
    - Dst: lh_ENGINE_PILE_retrieve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:98,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:100,1
    - Dst: sk_ENGINE_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:105,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:107,1
    - Dst: lh_ENGINE_PILE_insert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:111,1
    - Dst: sk_ENGINE_delete_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:114,1
    - Dst: sk_ENGINE_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:118,1
    - Dst: engine_unlocked_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:123,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:124,1
    - Dst: engine_unlocked_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:129,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:137,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 6
    argNames:
    - table
    - cleanup
    - e
    - nids
    - num_nids
    - setdefault
    argTypes:
    - ENGINE_TABLE**
    - ENGINE_CLEANUP_CB*
    - ENGINE*
    - int*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 139
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 139
    functionName: engine_table_register
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c
    functionUses: 8
    functionsReached:
    - int_table_check
    - lh_ENGINE_PILE_retrieve
    - engine_cleanup_add_first
    - sk_ENGINE_delete_ptr
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - engine_unlocked_finish
    - sk_ENGINE_new_null
    - CRYPTO_THREAD_unlock
    - lh_ENGINE_PILE_insert
    - sk_ENGINE_push
    - OPENSSL_free
    - OPENSSL_malloc
    - engine_unlocked_init
    linkageType: ''
    returnType: int
    signature: "engine_table_register(ENGINE_TABLE **table, ENGINE_CLEANUP_CB *cleanup,\n
      \                         ENGINE *e, const int *nids, int num_nids,\n                          int
      setdefault)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_ENGINE_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:145,1
    - Dst: sk_ENGINE_delete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:146,1
    - Dst: engine_unlocked_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pile
    - e
    argTypes:
    - ENGINE_PILE*
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 153
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 153
    functionName: int_unregister_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached:
    - sk_ENGINE_find
    - engine_unlocked_finish
    - sk_ENGINE_delete
    linkageType: ''
    returnType: void
    signature: int_unregister_cb(ENGINE_PILE *pile, ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:159,1
    - Dst: int_table_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:160,1
    - Dst: lh_ENGINE_PILE_doall_ENGINE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:161,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - table
    - e
    argTypes:
    - ENGINE_TABLE**
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 163
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 163
    functionName: engine_table_unregister
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c
    functionUses: 4
    functionsReached:
    - int_table_check
    - CRYPTO_THREAD_write_lock
    - lh_ENGINE_PILE_doall_ENGINE
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: engine_table_unregister(ENGINE_TABLE **table, ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:169,1
    - Dst: engine_unlocked_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:171,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - ENGINE_PILE*
    constantsTouched: []
    func_position:
      end: 173
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 173
    functionName: int_cleanup_cb_doall
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - sk_ENGINE_free
    - engine_unlocked_finish
    linkageType: ''
    returnType: void
    signature: int_cleanup_cb_doall(ENGINE_PILE *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:177,1
    - Dst: lh_ENGINE_PILE_doall
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:179,1
    - Dst: lh_ENGINE_PILE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:180,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - table
    argTypes:
    - ENGINE_TABLE**
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 184
    functionName: engine_table_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c
    functionUses: 4
    functionsReached:
    - lh_ENGINE_PILE_doall
    - CRYPTO_THREAD_write_lock
    - lh_ENGINE_PILE_free
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: engine_table_cleanup(ENGINE_TABLE **table)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:200,1
    - Dst: ERR_set_mark
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:205,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:206,1
    - Dst: int_table_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:211,1
    - Dst: lh_ENGINE_PILE_retrieve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:214,1
    - Dst: engine_unlocked_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:217,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:219,1
    - Dst: sk_ENGINE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:230,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:233,1
    - Dst: engine_unlocked_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:240,1
    - Dst: engine_unlocked_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:245,1
    - Dst: engine_unlocked_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:248,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:251,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:256,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:271,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:274,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:277,1
    - Dst: ERR_pop_to_mark
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:282,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 60
    argCount: 4
    argNames:
    - table
    - nid
    - f
    - l
    argTypes:
    - ENGINE_TABLE**
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 284
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 284
    functionName: engine_table_select_tmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached:
    - int_table_check
    - lh_ENGINE_PILE_retrieve
    - engine_unlocked_finish
    - CRYPTO_THREAD_write_lock
    - sk_ENGINE_value
    - CRYPTO_THREAD_unlock
    - ERR_pop_to_mark
    - ERR_set_mark
    - fprintf
    - engine_unlocked_init
    linkageType: ''
    returnType: ENGINE
    signature: "*engine_table_select_tmp(ENGINE_TABLE **table, int nid, const char
      *f,\n                                int l)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_PILE_DOALL*::cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pile
    - dall
    argTypes:
    - ENGINE_PILE*
    - ENGINE_PILE_DOALL*
    constantsTouched: []
    func_position:
      end: 291
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 291
    functionName: int_dall
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached:
    - ENGINE_PILE_DOALL*::cb
    linkageType: ''
    returnType: void
    signature: int_dall(const ENGINE_PILE *pile, ENGINE_PILE_DOALL *dall)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_ENGINE_PILE_doall_ENGINE_PILE_DOALL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - table
    - cb
    - arg
    argTypes:
    - ENGINE_TABLE*
    - engine_table_doall_cb*
    - void*
    constantsTouched: []
    func_position:
      end: 303
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 303
    functionName: engine_table_doall
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached:
    - lh_ENGINE_PILE_doall_ENGINE_PILE_DOALL
    linkageType: ''
    returnType: void
    signature: "engine_table_doall(ENGINE_TABLE *table, engine_table_doall_cb *cb,\n
      \                       void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_remove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: engine_list_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c
    functionUses: 0
    functionsReached:
    - ENGINE_remove
    linkageType: ''
    returnType: void
    signature: engine_list_cleanup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:59,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:64,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:68,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:74,1
    - Dst: engine_cleanup_add_last
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:82,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:86,1
    - Dst: engine_ref_debug
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:96,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 101
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 101
    functionName: engine_list_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - engine_cleanup_add_last
    - engine_ref_debug
    - strcmp
    linkageType: ''
    returnType: int
    signature: engine_list_add(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:108,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:116,1
    - Dst: engine_free_util
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:130,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 132
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 132
    functionName: engine_list_remove
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - engine_free_util
    linkageType: ''
    returnType: int
    signature: engine_list_remove(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:139,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:140,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:144,1
    - Dst: engine_ref_debug
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:148,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 152
    functionName: ENGINE_get_first
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c
    functionUses: 4
    functionsReached:
    - RUN_ONCE
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    - engine_ref_debug
    linkageType: ''
    returnType: ENGINE
    signature: '*ENGINE_get_first(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:158,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:159,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:163,1
    - Dst: engine_ref_debug
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:167,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 171
    functionName: ENGINE_get_last
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c
    functionUses: 0
    functionsReached:
    - RUN_ONCE
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    - engine_ref_debug
    linkageType: ''
    returnType: ENGINE
    signature: '*ENGINE_get_last(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:178,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:181,1
    - Dst: engine_ref_debug
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:186,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:188,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 192
      start: 174
    functionDepth: 4
    functionLinenumber: 174
    functionLinenumberEnd: 192
    functionName: ENGINE_get_next
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c
    functionUses: 4
    functionsReached:
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - ENGINE_free
    - CRYPTO_THREAD_unlock
    - engine_ref_debug
    linkageType: ''
    returnType: ENGINE
    signature: '*ENGINE_get_next(ENGINE *e)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:198,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:201,1
    - Dst: engine_ref_debug
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:206,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:208,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 212
      start: 194
    functionDepth: 4
    functionLinenumber: 194
    functionLinenumberEnd: 212
    functionName: ENGINE_get_prev
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - ENGINE_free
    - CRYPTO_THREAD_unlock
    - engine_ref_debug
    linkageType: ''
    returnType: ENGINE
    signature: '*ENGINE_get_prev(ENGINE *e)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:219,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:223,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:226,1
    - Dst: engine_list_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:227,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:228,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 233
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 233
    functionName: ENGINE_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c
    functionUses: 10
    functionsReached:
    - CRYPTO_THREAD_unlock
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - engine_list_add
    linkageType: ''
    returnType: int
    signature: ENGINE_add(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:240,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:243,1
    - Dst: engine_list_remove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:244,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:245,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 250
      start: 236
    functionDepth: 4
    functionLinenumber: 236
    functionLinenumberEnd: 250
    functionName: ENGINE_remove
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c
    functionUses: 1
    functionsReached:
    - engine_list_remove
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: ENGINE_remove(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - ENGINE*
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 280
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 280
    functionName: engine_cpy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: engine_cpy(ENGINE *dest, const ENGINE *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:287,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:290,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:291,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:295,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:297,1
    - Dst: ENGINE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:306,1
    - Dst: engine_cpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:310,1
    - Dst: engine_ref_debug
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:315,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:318,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:324,1
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:325,1
    - Dst: ENGINE_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:327,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:328,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:329,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:330,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:332,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:333,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:338,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:339,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:340,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 1
    argNames:
    - id
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 343
      start: 282
    functionDepth: 6
    functionLinenumber: 282
    functionLinenumberEnd: 343
    functionName: ENGINE_by_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c
    functionUses: 2
    functionsReached:
    - RUN_ONCE
    - strcmp
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - ENGINE_by_id
    - getenv
    - ENGINE_free
    - ERR_add_error_data
    - CRYPTO_THREAD_unlock
    - engine_ref_debug
    - ENGINE_new
    - ENGINE_ctrl_cmd_string
    - engine_cpy
    linkageType: ''
    returnType: ENGINE
    signature: '*ENGINE_by_id(const char *id)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:349,1
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 354
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 354
    functionName: ENGINE_up_ref
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - CRYPTO_atomic_add
    linkageType: ''
    returnType: int
    signature: ENGINE_up_ref(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_err.c:117,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_err.c:118,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_err.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 123
    functionName: ERR_load_ENGINE_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_ENGINE_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dh.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: ENGINE_unregister_DH
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dh.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: ENGINE_unregister_DH(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dh.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: engine_unregister_all_DH
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dh.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: engine_unregister_all_DH(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dh.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: ENGINE_register_DH
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dh.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: ENGINE_register_DH(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dh.c:38,1
    - Dst: ENGINE_get_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dh.c:38,1
    - Dst: ENGINE_register_DH
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dh.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: ENGINE_register_all_DH
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dh.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_first
    - ENGINE_get_next
    - ENGINE_register_DH
    linkageType: ''
    returnType: void
    signature: ENGINE_register_all_DH()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dh.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: ENGINE_set_default_DH
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dh.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: ENGINE_set_default_DH(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_select
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dh.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: ENGINE_get_default_DH
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dh.c
    functionUses: 1
    functionsReached:
    - engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: '*ENGINE_get_default_DH(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: ENGINE_get_DH
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dh.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: DH_METHOD
    signature: '*ENGINE_get_DH(const ENGINE *e)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - dh_meth
    argTypes:
    - ENGINE*
    - DH_METHOD*
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: ENGINE_set_DH
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dh.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ENGINE_set_DH(ENGINE *e, const DH_METHOD *dh_meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_set_default_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:21,1
    - Dst: ENGINE_set_default_digests
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:23,1
    - Dst: ENGINE_set_default_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:26,1
    - Dst: ENGINE_set_default_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:30,1
    - Dst: ENGINE_set_default_DH
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:34,1
    - Dst: ENGINE_set_default_EC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:38,1
    - Dst: ENGINE_set_default_RAND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:41,1
    - Dst: ENGINE_set_default_pkey_meths
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:44,1
    - Dst: ENGINE_set_default_pkey_asn1_meths
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:47,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 20
    argCount: 2
    argNames:
    - e
    - flags
    argTypes:
    - ENGINE*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 50
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 50
    functionName: ENGINE_set_default
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c
    functionUses: 0
    functionsReached:
    - ENGINE_set_default_DH
    - ENGINE_set_default_RSA
    - ENGINE_set_default_digests
    - ENGINE_set_default_EC
    - ENGINE_set_default_ciphers
    - ENGINE_set_default_pkey_asn1_meths
    - ENGINE_set_default_DSA
    - ENGINE_set_default_pkey_meths
    - ENGINE_set_default_RAND
    linkageType: ''
    returnType: int
    signature: ENGINE_set_default(ENGINE *e, unsigned int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:59,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:61,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:63,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:65,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:67,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:69,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:71,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:73,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:75,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:77,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:79,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 3
    argNames:
    - alg
    - len
    - arg
    argTypes:
    - char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 84
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 84
    functionName: int_def_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: int_def_cb(const char *alg, int len, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONF_parse_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:89,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:90,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:92,1
    - Dst: ENGINE_set_default
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - e
    - def_list
    argTypes:
    - ENGINE*
    - char*
    constantsTouched: []
    func_position:
      end: 96
      start: 86
    functionDepth: 5
    functionLinenumber: 86
    functionLinenumberEnd: 96
    functionName: ENGINE_set_default_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c
    functionUses: 1
    functionsReached:
    - ERR_add_error_data
    - ENGINEerr
    - ENGINE_set_default
    - CONF_parse_list
    linkageType: ''
    returnType: int
    signature: ENGINE_set_default_string(ENGINE *e, const char *def_list)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_register_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:100,1
    - Dst: ENGINE_register_digests
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:101,1
    - Dst: ENGINE_register_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:103,1
    - Dst: ENGINE_register_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:106,1
    - Dst: ENGINE_register_DH
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:109,1
    - Dst: ENGINE_register_EC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:112,1
    - Dst: ENGINE_register_RAND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:114,1
    - Dst: ENGINE_register_pkey_meths
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 117
      start: 98
    functionDepth: 4
    functionLinenumber: 98
    functionLinenumberEnd: 117
    functionName: ENGINE_register_complete
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c
    functionUses: 0
    functionsReached:
    - ENGINE_register_pkey_meths
    - ENGINE_register_DH
    - ENGINE_register_EC
    - ENGINE_register_DSA
    - ENGINE_register_RAND
    - ENGINE_register_RSA
    - ENGINE_register_ciphers
    - ENGINE_register_digests
    linkageType: ''
    returnType: int
    signature: ENGINE_register_complete(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:123,1
    - Dst: ENGINE_get_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:123,1
    - Dst: ENGINE_register_complete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 119
    functionDepth: 5
    functionLinenumber: 119
    functionLinenumberEnd: 127
    functionName: ENGINE_register_all_complete
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c
    functionUses: 2
    functionsReached:
    - ENGINE_get_first
    - ENGINE_get_next
    - ENGINE_register_complete
    linkageType: ''
    returnType: int
    signature: ENGINE_register_all_complete(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: engine_load_cryptodev_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: engine_load_cryptodev_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:254,1
    - Dst: fcntl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:257,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 264
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 264
    functionName: open_dev_crypto
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - close
    - open
    - fcntl
    linkageType: ''
    returnType: int
    signature: open_dev_crypto(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: open_dev_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:270,1
    - Dst: ioctl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:273,1
    - Dst: fcntl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:277,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 285
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 285
    functionName: get_dev_crypto
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - close
    - open_dev_crypto
    - ioctl
    - fcntl
    linkageType: ''
    returnType: int
    signature: get_dev_crypto(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: put_dev_crypto
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: put_dev_crypto(int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_dev_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 302
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 302
    functionName: get_asym_dev_crypto
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - get_dev_crypto
    linkageType: ''
    returnType: int
    signature: get_asym_dev_crypto(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_dev_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:316,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:320,1
    - Dst: ioctl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:329,1
    - Dst: ioctl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:330,1
    - Dst: put_dev_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:333,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - cnids
    argTypes:
    - int**
    constantsTouched: []
    func_position:
      end: 340
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 340
    functionName: get_cryptodev_ciphers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - get_dev_crypto
    - put_dev_crypto
    - ioctl
    - memset
    linkageType: ''
    returnType: int
    signature: get_cryptodev_ciphers(const int **cnids)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_dev_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:355,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:359,1
    - Dst: ioctl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:367,1
    - Dst: ioctl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:368,1
    - Dst: put_dev_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:371,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - cnids
    argTypes:
    - int**
    constantsTouched: []
    func_position:
      end: 378
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 378
    functionName: get_cryptodev_digests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - get_dev_crypto
    - put_dev_crypto
    - ioctl
    - memset
    linkageType: ''
    returnType: int
    signature: get_cryptodev_digests(const int **cnids)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_cryptodev_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nids
    argTypes:
    - int**
    constantsTouched: []
    func_position:
      end: 405
      start: 402
    functionDepth: 3
    functionLinenumber: 402
    functionLinenumberEnd: 405
    functionName: cryptodev_usable_ciphers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - get_cryptodev_ciphers
    linkageType: ''
    returnType: int
    signature: cryptodev_usable_ciphers(const int **nids)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_cryptodev_digests
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - nids
    argTypes:
    - int**
    constantsTouched: []
    func_position:
      end: 427
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 427
    functionName: cryptodev_usable_digests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - get_cryptodev_digests
    linkageType: ''
    returnType: int
    signature: cryptodev_usable_digests(const int **nids)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:434,1
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:443,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:446,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:455,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:457,1
    - Dst: EVP_CIPHER_CTX_iv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:458,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:459,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:460,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:461,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:461,1
    - Dst: ioctl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:466,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:474,1
    - Dst: EVP_CIPHER_CTX_encrypting
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:475,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:476,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:479,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:479,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:480,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 483
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 483
    functionName: cryptodev_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_block_size
    - EVP_CIPHER_CTX_iv_noconst
    - ioctl
    - memset
    - EVP_CIPHER_CTX_iv
    - memcpy
    - EVP_CIPHER_CTX_encrypting
    - EVP_CIPHER_CTX_iv_length
    - EVP_CIPHER_CTX_get_cipher_data
    linkageType: ''
    returnType: int
    signature: "cryptodev_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                 const
      unsigned char *in, size_t inl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:489,1
    - Dst: EVP_CIPHER_CTX_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:494,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:495,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:496,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:506,1
    - Dst: get_dev_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:508,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:512,1
    - Dst: ioctl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:515,1
    - Dst: put_dev_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:516,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 521
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 521
    functionName: cryptodev_init_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - get_dev_crypto
    - ioctl
    - memset
    - EVP_CIPHER_CTX_key_length
    - put_dev_crypto
    - EVP_CIPHER_CTX_iv_length
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_CTX_nid
    linkageType: ''
    returnType: int
    signature: "cryptodev_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                  const unsigned char *iv, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:530,1
    - Dst: ioctl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:546,1
    - Dst: put_dev_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    constantsTouched: []
    func_position:
      end: 555
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 555
    functionName: cryptodev_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - put_dev_crypto
    - EVP_CIPHER_CTX_get_cipher_data
    - ioctl
    linkageType: ''
    returnType: int
    signature: cryptodev_cleanup(EVP_CIPHER_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:569,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:570,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:571,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:572,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:573,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:574,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:575,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:576,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 582
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 582
    functionName: cryptodev_rc4
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_set_cleanup
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_iv_length
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_init
    - EVP_CIPHER_meth_new
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*cryptodev_rc4(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:591,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:592,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:593,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:594,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:595,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:596,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:597,1
    - Dst: EVP_CIPHER_meth_set_set_asn1_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:598,1
    - Dst: EVP_CIPHER_meth_set_get_asn1_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:599,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:600,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 606
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 606
    functionName: cryptodev_des_cbc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_set_cleanup
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_set_asn1_params
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_get_asn1_params
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_iv_length
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_init
    - EVP_CIPHER_meth_new
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*cryptodev_des_cbc(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:615,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:616,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:617,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:618,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:619,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:620,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:621,1
    - Dst: EVP_CIPHER_meth_set_set_asn1_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:622,1
    - Dst: EVP_CIPHER_meth_set_get_asn1_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:623,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:624,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 630
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 630
    functionName: cryptodev_3des_cbc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_set_cleanup
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_set_asn1_params
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_get_asn1_params
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_iv_length
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_init
    - EVP_CIPHER_meth_new
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*cryptodev_3des_cbc(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:638,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:639,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:640,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:641,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:642,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:643,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:644,1
    - Dst: EVP_CIPHER_meth_set_set_asn1_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:645,1
    - Dst: EVP_CIPHER_meth_set_get_asn1_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:646,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:647,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 653
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 653
    functionName: cryptodev_bf_cbc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_set_cleanup
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_set_asn1_params
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_get_asn1_params
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_iv_length
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_init
    - EVP_CIPHER_meth_new
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*cryptodev_bf_cbc(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:661,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:662,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:663,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:664,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:665,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:666,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:667,1
    - Dst: EVP_CIPHER_meth_set_set_asn1_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:668,1
    - Dst: EVP_CIPHER_meth_set_get_asn1_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:669,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:670,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 676
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 676
    functionName: cryptodev_cast_cbc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_set_cleanup
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_set_asn1_params
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_get_asn1_params
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_iv_length
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_init
    - EVP_CIPHER_meth_new
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*cryptodev_cast_cbc(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:684,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:685,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:686,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:687,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:688,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:689,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:690,1
    - Dst: EVP_CIPHER_meth_set_set_asn1_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:691,1
    - Dst: EVP_CIPHER_meth_set_get_asn1_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:692,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:693,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 699
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 699
    functionName: cryptodev_aes_cbc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_set_cleanup
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_set_asn1_params
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_get_asn1_params
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_iv_length
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_init
    - EVP_CIPHER_meth_new
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*cryptodev_aes_cbc(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:707,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:708,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:709,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:710,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:711,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:712,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:713,1
    - Dst: EVP_CIPHER_meth_set_set_asn1_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:714,1
    - Dst: EVP_CIPHER_meth_set_get_asn1_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:715,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:716,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 722
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 722
    functionName: cryptodev_aes_192_cbc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_set_cleanup
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_set_asn1_params
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_get_asn1_params
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_iv_length
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_init
    - EVP_CIPHER_meth_new
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*cryptodev_aes_192_cbc(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:730,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:731,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:732,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:733,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:734,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:735,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:736,1
    - Dst: EVP_CIPHER_meth_set_set_asn1_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:737,1
    - Dst: EVP_CIPHER_meth_set_get_asn1_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:738,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:739,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 745
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 745
    functionName: cryptodev_aes_256_cbc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_set_cleanup
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_set_asn1_params
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_get_asn1_params
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_iv_length
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_init
    - EVP_CIPHER_meth_new
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*cryptodev_aes_256_cbc(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:754,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:755,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:756,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:757,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:758,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:759,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:760,1
    - Dst: EVP_CIPHER_meth_set_set_asn1_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:761,1
    - Dst: EVP_CIPHER_meth_set_get_asn1_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:762,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:763,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 769
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 769
    functionName: cryptodev_aes_ctr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_set_cleanup
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_set_asn1_params
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_get_asn1_params
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_iv_length
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_init
    - EVP_CIPHER_meth_new
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*cryptodev_aes_ctr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:777,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:778,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:779,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:780,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:781,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:782,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:783,1
    - Dst: EVP_CIPHER_meth_set_set_asn1_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:784,1
    - Dst: EVP_CIPHER_meth_set_get_asn1_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:785,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:786,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 792
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 792
    functionName: cryptodev_aes_192_ctr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_set_cleanup
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_set_asn1_params
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_get_asn1_params
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_iv_length
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_init
    - EVP_CIPHER_meth_new
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*cryptodev_aes_192_ctr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:800,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:801,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:802,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:803,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:804,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:805,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:806,1
    - Dst: EVP_CIPHER_meth_set_set_asn1_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:807,1
    - Dst: EVP_CIPHER_meth_set_get_asn1_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:808,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:809,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 815
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 815
    functionName: cryptodev_aes_256_ctr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_set_cleanup
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_set_asn1_params
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_get_asn1_params
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_iv_length
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_init
    - EVP_CIPHER_meth_new
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*cryptodev_aes_256_ctr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cryptodev_usable_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:827,1
    - Dst: cryptodev_rc4
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:831,1
    - Dst: cryptodev_3des_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:834,1
    - Dst: cryptodev_des_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:837,1
    - Dst: cryptodev_bf_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:840,1
    - Dst: cryptodev_cast_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:843,1
    - Dst: cryptodev_aes_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:846,1
    - Dst: cryptodev_aes_192_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:849,1
    - Dst: cryptodev_aes_256_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:852,1
    - Dst: cryptodev_aes_ctr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:856,1
    - Dst: cryptodev_aes_192_ctr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:859,1
    - Dst: cryptodev_aes_256_ctr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:862,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 4
    argNames:
    - e
    - cipher
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_CIPHER**
    - int**
    - int
    constantsTouched: []
    func_position:
      end: 870
      start: 822
    functionDepth: 4
    functionLinenumber: 822
    functionLinenumberEnd: 870
    functionName: cryptodev_engine_ciphers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - cryptodev_aes_cbc
    - cryptodev_3des_cbc
    - cryptodev_aes_192_ctr
    - cryptodev_aes_192_cbc
    - cryptodev_aes_256_cbc
    - cryptodev_aes_256_ctr
    - cryptodev_aes_ctr
    - cryptodev_usable_ciphers
    - cryptodev_bf_cbc
    - cryptodev_rc4
    - cryptodev_cast_cbc
    - cryptodev_des_cbc
    linkageType: ''
    returnType: int
    signature: "cryptodev_engine_ciphers(ENGINE *e, const EVP_CIPHER **cipher,\n                         const
      int **nids, int nid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 883
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 883
    functionName: digest_nid_to_cryptodev
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: digest_nid_to_cryptodev(int nid)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 893
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 893
    functionName: digest_key_length
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: digest_key_length(int nid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:897,1
    - Dst: digest_nid_to_cryptodev
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:901,1
    - Dst: EVP_MD_CTX_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:901,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:902,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:906,1
    - Dst: get_dev_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:908,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:909,1
    - Dst: digest_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:914,1
    - Dst: EVP_MD_CTX_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:914,1
    - Dst: ioctl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:917,1
    - Dst: put_dev_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:918,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:920,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 925
      start: 895
    functionDepth: 2
    functionLinenumber: 895
    functionLinenumberEnd: 925
    functionName: cryptodev_digest_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - get_dev_crypto
    - EVP_MD_CTX_type
    - ioctl
    - memset
    - digest_nid_to_cryptodev
    - digest_key_length
    - printf
    - EVP_MD_CTX_md_data
    - put_dev_crypto
    linkageType: ''
    returnType: int
    signature: cryptodev_digest_init(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:931,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:936,1
    - Dst: EVP_MD_CTX_test_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:944,1
    - Dst: OPENSSL_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:947,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:950,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:955,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:961,1
    - Dst: ioctl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:969,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:970,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 974
      start: 927
    functionDepth: 1
    functionLinenumber: 927
    functionLinenumberEnd: 974
    functionName: cryptodev_digest_update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - OPENSSL_realloc
    - ioctl
    - memset
    - printf
    - EVP_MD_CTX_md_data
    - memcpy
    - EVP_MD_CTX_test_flags
    linkageType: ''
    returnType: int
    signature: "cryptodev_digest_update(EVP_MD_CTX *ctx, const void *data,\n                                   size_t
      count)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:979,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:985,1
    - Dst: EVP_MD_CTX_test_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:989,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:991,1
    - Dst: ioctl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:998,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:999,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1006,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1006,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 1009
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 1009
    functionName: cryptodev_digest_final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_size
    - ioctl
    - memset
    - printf
    - EVP_MD_CTX_md_data
    - memcpy
    - EVP_MD_CTX_test_flags
    linkageType: ''
    returnType: int
    signature: cryptodev_digest_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1014,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1021,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1025,1
    - Dst: ioctl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1029,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1030,1
    - Dst: put_dev_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1035,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 1039
      start: 1011
    functionDepth: 1
    functionLinenumber: 1011
    functionLinenumberEnd: 1039
    functionName: cryptodev_digest_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - ioctl
    - put_dev_crypto
    - printf
    - EVP_MD_CTX_md_data
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: cryptodev_digest_cleanup(EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1043,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1044,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1051,1
    - Dst: digest_nid_to_cryptodev
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1055,1
    - Dst: EVP_MD_CTX_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1055,1
    - Dst: digest_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1058,1
    - Dst: EVP_MD_CTX_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1058,1
    - Dst: get_dev_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1061,1
    - Dst: ioctl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1063,1
    - Dst: put_dev_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1064,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1066,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1072,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1074,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1077,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - EVP_MD_CTX*
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 1083
      start: 1041
    functionDepth: 2
    functionLinenumber: 1041
    functionLinenumberEnd: 1083
    functionName: cryptodev_digest_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - get_dev_crypto
    - EVP_MD_CTX_type
    - ioctl
    - digest_nid_to_cryptodev
    - digest_key_length
    - memcpy
    - EVP_MD_CTX_md_data
    - put_dev_crypto
    - printf
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: cryptodev_digest_copy(EVP_MD_CTX *to, const EVP_MD_CTX *from)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1091,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1092,1
    - Dst: EVP_MD_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1093,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1094,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1095,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1097,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1098,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1099,1
    - Dst: EVP_MD_meth_set_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1100,1
    - Dst: EVP_MD_meth_set_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1101,1
    - Dst: EVP_MD_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1102,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1086
    functionDepth: 1
    functionLinenumber: 1086
    functionLinenumberEnd: 1108
    functionName: cryptodev_sha1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_set_final
    - EVP_MD_meth_set_copy
    - EVP_MD_meth_set_flags
    - EVP_MD_meth_set_update
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_free
    - EVP_MD_meth_set_cleanup
    - EVP_MD_meth_set_result_size
    - EVP_MD_meth_set_init
    - EVP_MD_meth_new
    - EVP_MD_meth_set_input_blocksize
    linkageType: ''
    returnType: EVP_MD
    signature: '*cryptodev_sha1(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1116,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1117,1
    - Dst: EVP_MD_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1118,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1119,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1120,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1122,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1123,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1124,1
    - Dst: EVP_MD_meth_set_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1125,1
    - Dst: EVP_MD_meth_set_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1126,1
    - Dst: EVP_MD_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1127,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1111
    functionDepth: 1
    functionLinenumber: 1111
    functionLinenumberEnd: 1133
    functionName: cryptodev_md5
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_set_final
    - EVP_MD_meth_set_copy
    - EVP_MD_meth_set_flags
    - EVP_MD_meth_set_update
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_free
    - EVP_MD_meth_set_cleanup
    - EVP_MD_meth_set_result_size
    - EVP_MD_meth_set_init
    - EVP_MD_meth_new
    - EVP_MD_meth_set_input_blocksize
    linkageType: ''
    returnType: EVP_MD
    signature: '*cryptodev_md5(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cryptodev_usable_digests
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1142,1
    - Dst: cryptodev_md5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1147,1
    - Dst: cryptodev_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - e
    - digest
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_MD**
    - int**
    - int
    constantsTouched: []
    func_position:
      end: 1158
      start: 1137
    functionDepth: 4
    functionLinenumber: 1137
    functionLinenumberEnd: 1158
    functionName: cryptodev_engine_digests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - cryptodev_md5
    - cryptodev_usable_digests
    - cryptodev_sha1
    linkageType: ''
    returnType: int
    signature: "cryptodev_engine_digests(ENGINE *e, const EVP_MD **digest,\n                         const
      int **nids, int nid)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1162,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1164,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1166,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1168,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1170,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1172,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1174,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1176,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1179,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1181,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1183,1
    - Dst: EVP_MD_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1187,1
    - Dst: EVP_MD_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1189,1
    - Dst: RSA_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1192,1
    - Dst: DSA_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1195,1
    - Dst: DH_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 1203
      start: 1160
    functionDepth: 1
    functionLinenumber: 1160
    functionLinenumberEnd: 1203
    functionName: cryptodev_engine_destroy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - RSA_meth_free
    - EVP_CIPHER_meth_free
    - DH_meth_free
    - EVP_MD_meth_free
    - DSA_meth_free
    linkageType: ''
    returnType: int
    signature: cryptodev_engine_destroy(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1218,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1219,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1221,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - a
    - crp
    argTypes:
    - BIGNUM*
    - struct crparam*
    constantsTouched: []
    func_position:
      end: 1230
      start: 1210
    functionDepth: 2
    functionLinenumber: 1210
    functionLinenumberEnd: 1230
    functionName: bn2crparam
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - BN_bn2bin
    - BN_num_bits
    - BN_num_bytes
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: bn2crparam(const BIGNUM *a, struct crparam *crp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1243,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1249,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - crp
    - a
    argTypes:
    - struct crparam*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 1253
      start: 1233
    functionDepth: 4
    functionLinenumber: 1233
    functionLinenumberEnd: 1253
    functionName: crparam2bn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - free
    - OPENSSL_malloc
    - BN_bin2bn
    linkageType: ''
    returnType: int
    signature: crparam2bn(struct crparam *crp, BIGNUM *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - kop
    argTypes:
    - struct crypt_kop*
    constantsTouched: []
    func_position:
      end: 1264
      start: 1255
    functionDepth: 0
    functionLinenumber: 1255
    functionLinenumberEnd: 1264
    functionName: zapparams
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: zapparams(struct crypt_kop *kop)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_asym_dev_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1272,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1276,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1284,1
    - Dst: ioctl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1295,1
    - Dst: crparam2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1297,1
    - Dst: crparam2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1299,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - kop
    - rlen
    - r
    - slen
    - s
    argTypes:
    - struct crypt_kop*
    - int
    - BIGNUM*
    - int
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 1304
      start: 1266
    functionDepth: 5
    functionLinenumber: 1266
    functionLinenumberEnd: 1304
    functionName: cryptodev_asym
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    - crparam2bn
    - ioctl
    - get_asym_dev_crypto
    linkageType: ''
    returnType: int
    signature: "cryptodev_asym(struct crypt_kop *kop, int rlen, BIGNUM *r, int slen,\n
      \              BIGNUM *s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1318,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1322,1
    - Dst: bn2crparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1326,1
    - Dst: bn2crparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1328,1
    - Dst: bn2crparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1330,1
    - Dst: cryptodev_asym
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1334,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1334,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1335,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1336,1
    - Dst: RSA_meth_get_bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1337,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1340,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1341,1
    - Dst: RSA_meth_get_bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1342,1
    - Dst: zapparams
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1347,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 6
    argNames:
    - r
    - a
    - p
    - m
    - ctx
    - in_mont
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    constantsTouched: []
    func_position:
      end: 1349
      start: 1306
    functionDepth: 6
    functionLinenumber: 1306
    functionLinenumberEnd: 1349
    functionName: cryptodev_bn_mod_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - RSA_meth_get_bn_mod_exp
    - BN_mod_exp
    - memset
    - bn2crparam
    - cryptodev_asym
    - printf
    - zapparams
    - RSA_PKCS1_OpenSSL
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: "cryptodev_bn_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,\n
      \                    const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *in_mont)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1359,1
    - Dst: RSA_get0_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1360,1
    - Dst: cryptodev_bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1361,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - r0
    - I
    - rsa
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - RSA*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1364
      start: 1351
    functionDepth: 7
    functionLinenumber: 1351
    functionLinenumberEnd: 1364
    functionName: cryptodev_rsa_nocrt_mod_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    - RSA_get0_key
    - cryptodev_bn_mod_exp
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: "cryptodev_rsa_nocrt_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa,\n
      \                           BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_get0_factors
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1378,1
    - Dst: RSA_get0_crt_params
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1379,1
    - Dst: RSA_get0_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1380,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1387,1
    - Dst: bn2crparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1390,1
    - Dst: bn2crparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1392,1
    - Dst: bn2crparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1394,1
    - Dst: bn2crparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1396,1
    - Dst: bn2crparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1398,1
    - Dst: bn2crparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1400,1
    - Dst: cryptodev_asym
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1404,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1404,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1405,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1406,1
    - Dst: RSA_meth_get_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1407,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1410,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1411,1
    - Dst: RSA_meth_get_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1412,1
    - Dst: zapparams
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1417,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 4
    argNames:
    - r0
    - I
    - rsa
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - RSA*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1419
      start: 1366
    functionDepth: 6
    functionLinenumber: 1366
    functionLinenumberEnd: 1419
    functionName: cryptodev_rsa_mod_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - RSA_get0_key
    - RSA_get0_factors
    - memset
    - bn2crparam
    - RSA_get0_crt_params
    - cryptodev_asym
    - printf
    - RSA_meth_get_mod_exp
    - zapparams
    - RSA_PKCS1_OpenSSL
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: cryptodev_rsa_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX
      *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cryptodev_bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - dsa
    - r
    - a
    - p
    - m
    - ctx
    - m_ctx
    argTypes:
    - DSA*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    constantsTouched: []
    func_position:
      end: 1427
      start: 1422
    functionDepth: 7
    functionLinenumber: 1422
    functionLinenumberEnd: 1427
    functionName: cryptodev_dsa_bn_mod_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - cryptodev_bn_mod_exp
    linkageType: ''
    returnType: int
    signature: "cryptodev_dsa_bn_mod_exp(DSA *dsa, BIGNUM *r, const BIGNUM *a, const
      BIGNUM *p,\n                         const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX
      *m_ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1442,1
    - Dst: DSA_get0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1450,1
    - Dst: DSA_get0_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1451,1
    - Dst: DSA_get_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1453,1
    - Dst: DSA_meth_get_bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1456,1
    - Dst: bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1460,1
    - Dst: bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1464,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1467,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1472,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 9
    argNames:
    - dsa
    - t1
    - g
    - u1
    - pub_key
    - u2
    - p
    - ctx
    - mont
    argTypes:
    - DSA*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    constantsTouched: []
    func_position:
      end: 1474
      start: 1429
    functionDepth: 3
    functionLinenumber: 1429
    functionLinenumberEnd: 1474
    functionName: cryptodev_dsa_dsa_mod_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - BN_new
    - DSA_meth_get_bn_mod_exp
    - DSA_get_method
    - BN_free
    - DSA_get0_key
    - bn_mod_exp
    - BN_mod_mul
    - DSA_get0_pqg
    linkageType: ''
    returnType: int
    signature: "cryptodev_dsa_dsa_mod_exp(DSA *dsa, BIGNUM *t1, const BIGNUM *g,\n
      \                         const BIGNUM *u1, const BIGNUM *pub_key,\n                          const
      BIGNUM *u2, const BIGNUM *p, BN_CTX *ctx,\n                          BN_MONT_CTX
      *mont)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA_SIG_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1485,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1489,1
    - Dst: DSA_get0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1495,1
    - Dst: DSA_get0_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1496,1
    - Dst: bn2crparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1497,1
    - Dst: bn2crparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1499,1
    - Dst: bn2crparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1501,1
    - Dst: bn2crparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1503,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1507,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1510,1
    - Dst: cryptodev_asym
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1513,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1513,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1514,1
    - Dst: DSA_SIG_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1515,1
    - Dst: DSA_meth_get_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1518,1
    - Dst: DSA_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1518,1
    - Dst: DSA_SIG_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1522,1
    - Dst: zapparams
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1524,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 3
    argNames:
    - dgst
    - dlen
    - dsa
    argTypes:
    - unsigned char*
    - int
    - DSA*
    constantsTouched: []
    func_position:
      end: 1526
      start: 1476
    functionDepth: 6
    functionLinenumber: 1476
    functionLinenumberEnd: 1526
    functionName: cryptodev_dsa_do_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - BN_new
    - DSA_meth_get_sign
    - DSA_get0_key
    - DSA_SIG_free
    - DSA_SIG_set0
    - memset
    - bn2crparam
    - cryptodev_asym
    - DSA_SIG_new
    - zapparams
    - DSA_OpenSSL
    - DSA_get0_pqg
    - BN_num_bytes
    linkageType: ''
    returnType: DSA_SIG
    signature: "*cryptodev_dsa_do_sign(const unsigned char *dgst, int dlen,\n                                      DSA
      *dsa)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1536,1
    - Dst: DSA_get0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1542,1
    - Dst: bn2crparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1543,1
    - Dst: bn2crparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1545,1
    - Dst: bn2crparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1547,1
    - Dst: DSA_get0_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1549,1
    - Dst: bn2crparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1550,1
    - Dst: DSA_SIG_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1552,1
    - Dst: bn2crparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1553,1
    - Dst: bn2crparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1555,1
    - Dst: cryptodev_asym
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1559,1
    - Dst: DSA_meth_get_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1566,1
    - Dst: DSA_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1566,1
    - Dst: zapparams
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1570,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 4
    argNames:
    - dgst
    - dlen
    - sig
    - dsa
    argTypes:
    - unsigned char*
    - int
    - DSA_SIG*
    - DSA*
    constantsTouched: []
    func_position:
      end: 1572
      start: 1528
    functionDepth: 6
    functionLinenumber: 1528
    functionLinenumberEnd: 1572
    functionName: cryptodev_dsa_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - DSA_get0_key
    - DSA_meth_get_verify
    - memset
    - bn2crparam
    - cryptodev_asym
    - zapparams
    - DSA_OpenSSL
    - DSA_get0_pqg
    - DSA_SIG_get0
    linkageType: ''
    returnType: int
    signature: "cryptodev_dsa_verify(const unsigned char *dgst, int dlen,\n                     DSA_SIG
      *sig, DSA *dsa)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cryptodev_bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - dh
    - r
    - a
    - p
    - m
    - ctx
    - m_ctx
    argTypes:
    - DH*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    constantsTouched: []
    func_position:
      end: 1582
      start: 1576
    functionDepth: 7
    functionLinenumber: 1576
    functionLinenumberEnd: 1582
    functionName: cryptodev_mod_exp_dh
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - cryptodev_bn_mod_exp
    linkageType: ''
    returnType: int
    signature: "cryptodev_mod_exp_dh(const DH *dh, BIGNUM *r, const BIGNUM *a,\n                     const
      BIGNUM *p, const BIGNUM *m, BN_CTX *ctx,\n                     BN_MONT_CTX *m_ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_asym_dev_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1593,1
    - Dst: DH_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1594,1
    - Dst: DH_meth_get_compute_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1596,1
    - Dst: DH_get0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1599,1
    - Dst: DH_get0_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1600,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1602,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1604,1
    - Dst: bn2crparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1608,1
    - Dst: bn2crparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1610,1
    - Dst: bn2crparam
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1612,1
    - Dst: ioctl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1620,1
    - Dst: DH_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1621,1
    - Dst: DH_meth_get_compute_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1623,1
    - Dst: zapparams
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1627,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - key
    - pub_key
    - dh
    argTypes:
    - unsigned char*
    - BIGNUM*
    - DH*
    constantsTouched: []
    func_position:
      end: 1629
      start: 1584
    functionDepth: 3
    functionLinenumber: 1584
    functionLinenumberEnd: 1629
    functionName: cryptodev_dh_compute_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - DH_OpenSSL
    - DH_get0_pqg
    - ioctl
    - memset
    - bn2crparam
    - DH_get0_key
    - BN_num_bits
    - get_asym_dev_crypto
    - zapparams
    - DH_meth_get_compute_key
    linkageType: ''
    returnType: int
    signature: cryptodev_dh_compute_key(unsigned char *key, const BIGNUM *pub_key,
      DH *dh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: syslog_r
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1647,1
    - Dst: syslog
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1649,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - e
    - cmd
    - i
    - p
    argTypes:
    - ENGINE*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 1654
      start: 1637
    functionDepth: 0
    functionLinenumber: 1637
    functionLinenumberEnd: 1654
    functionName: cryptodev_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 0
    functionsReached:
    - syslog_r
    - syslog
    linkageType: ''
    returnType: int
    signature: cryptodev_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1658,1
    - Dst: get_dev_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1663,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1664,1
    - Dst: ioctl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1671,1
    - Dst: put_dev_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1672,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1673,1
    - Dst: put_dev_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1676,1
    - Dst: ENGINE_set_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1678,1
    - Dst: ENGINE_set_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1679,1
    - Dst: ENGINE_set_destroy_function
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1680,1
    - Dst: ENGINE_set_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1681,1
    - Dst: ENGINE_set_digests
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1682,1
    - Dst: ENGINE_set_ctrl_function
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1683,1
    - Dst: ENGINE_set_cmd_defns
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1684,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1685,1
    - Dst: RSA_meth_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1689,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1689,1
    - Dst: RSA_meth_set1_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1691,1
    - Dst: RSA_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1692,1
    - Dst: ENGINE_set_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1693,1
    - Dst: RSA_meth_set_bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1695,1
    - Dst: RSA_meth_set_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1697,1
    - Dst: RSA_meth_set_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1699,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1704,1
    - Dst: DSA_meth_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1709,1
    - Dst: DSA_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1709,1
    - Dst: DSA_meth_set1_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1711,1
    - Dst: DSA_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1712,1
    - Dst: ENGINE_set_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1713,1
    - Dst: DSA_meth_set_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1715,1
    - Dst: DSA_meth_set_bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1717,1
    - Dst: DSA_meth_set_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1719,1
    - Dst: DSA_meth_set_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1722,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1725,1
    - Dst: DH_meth_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1731,1
    - Dst: DH_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1731,1
    - Dst: DH_meth_set1_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1733,1
    - Dst: DH_meth_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1734,1
    - Dst: ENGINE_set_DH
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1735,1
    - Dst: DH_meth_set_bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1737,1
    - Dst: DH_meth_set_compute_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1739,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1744,1
    - Dst: ENGINE_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1749,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1750,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c:1751,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1656
    functionDepth: 4
    functionLinenumber: 1656
    functionLinenumberEnd: 1752
    functionName: engine_load_cryptodev_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
    functionUses: 1
    functionsReached:
    - ENGINE_set_name
    - RSA_meth_set1_name
    - put_dev_crypto
    - ENGINE_set_ciphers
    - ENGINE_new
    - ENGINE_set_DSA
    - RSA_meth_dup
    - ENGINE_set_RSA
    - RSA_PKCS1_OpenSSL
    - RSA_meth_set_flags
    - DSA_meth_set_mod_exp
    - ENGINE_set_digests
    - ENGINE_add
    - ENGINE_set_destroy_function
    - ENGINE_set_ctrl_function
    - DSA_OpenSSL
    - DH_meth_set_compute_key
    - DH_OpenSSL
    - ioctl
    - DSA_meth_set_verify
    - DH_meth_set_flags
    - ENGINE_set_DH
    - RSA_meth_set_bn_mod_exp
    - DH_meth_dup
    - ERR_clear_error
    - DSA_meth_set_bn_mod_exp
    - DH_meth_set_bn_mod_exp
    - get_dev_crypto
    - DSA_meth_set1_name
    - RSA_meth_set_mod_exp
    - ENGINE_free
    - ENGINE_set_cmd_defns
    - ENGINE_set_id
    - DH_meth_set1_name
    - DSA_meth_set_flags
    - DSA_meth_dup
    - DSA_meth_set_sign
    linkageType: ''
    returnType: void
    signature: engine_load_cryptodev_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rand.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: ENGINE_unregister_RAND
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rand.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: ENGINE_unregister_RAND(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rand.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: engine_unregister_all_RAND
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rand.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: engine_unregister_all_RAND(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rand.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: ENGINE_register_RAND
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rand.c
    functionUses: 1
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: ENGINE_register_RAND(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rand.c:38,1
    - Dst: ENGINE_get_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rand.c:38,1
    - Dst: ENGINE_register_RAND
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rand.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: ENGINE_register_all_RAND
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rand.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_first
    - ENGINE_register_RAND
    - ENGINE_get_next
    linkageType: ''
    returnType: void
    signature: ENGINE_register_all_RAND()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rand.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: ENGINE_set_default_RAND
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rand.c
    functionUses: 1
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: ENGINE_set_default_RAND(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_select
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rand.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: ENGINE_get_default_RAND
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rand.c
    functionUses: 1
    functionsReached:
    - engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: '*ENGINE_get_default_RAND(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: ENGINE_get_RAND
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rand.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: RAND_METHOD
    signature: '*ENGINE_get_RAND(const ENGINE *e)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - rand_meth
    argTypes:
    - ENGINE*
    - RAND_METHOD*
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: ENGINE_set_RAND
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rand.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ENGINE_set_RAND(ENGINE *e, const RAND_METHOD *rand_meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - loadpriv_f
    argTypes:
    - ENGINE*
    - ENGINE_LOAD_KEY_PTR
    constantsTouched: []
    func_position:
      end: 19
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 19
    functionName: ENGINE_set_load_privkey_function
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "ENGINE_set_load_privkey_function(ENGINE *e,\n                                     ENGINE_LOAD_KEY_PTR
      loadpriv_f)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - loadpub_f
    argTypes:
    - ENGINE*
    - ENGINE_LOAD_KEY_PTR
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: ENGINE_set_load_pubkey_function
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ENGINE_set_load_pubkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpub_f)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - loadssl_f
    argTypes:
    - ENGINE*
    - ENGINE_SSL_CLIENT_CERT_PTR
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: ENGINE_set_load_ssl_client_cert_function
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "ENGINE_set_load_ssl_client_cert_function(ENGINE *e,\n                                             ENGINE_SSL_CLIENT_CERT_PTR\n
      \                                            loadssl_f)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: ENGINE_get_load_privkey_function
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_LOAD_KEY_PTR
    signature: ENGINE_get_load_privkey_function(const ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: ENGINE_get_load_pubkey_function
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_LOAD_KEY_PTR
    signature: ENGINE_get_load_pubkey_function(const ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: ENGINE_get_ssl_client_cert_function
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_SSL_CLIENT_CERT_PTR
    signature: "ENGINE_get_ssl_client_cert_function(const ENGINE\n                                                               *e)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c:59,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c:63,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c:65,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c:66,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c:69,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c:71,1
    - Dst: ENGINE*::load_privkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c:75,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - e
    - key_id
    - ui_method
    - callback_data
    argTypes:
    - ENGINE*
    - char*
    - UI_METHOD*
    - void*
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: ENGINE_load_private_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c
    functionUses: 0
    functionsReached:
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - ENGINE*::load_privkey
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: EVP_PKEY
    signature: "*ENGINE_load_private_key(ENGINE *e, const char *key_id,\n                                  UI_METHOD
      *ui_method, void *callback_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c:90,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c:94,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c:96,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c:97,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c:100,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c:102,1
    - Dst: ENGINE*::load_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c:105,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - e
    - key_id
    - ui_method
    - callback_data
    argTypes:
    - ENGINE*
    - char*
    - UI_METHOD*
    - void*
    constantsTouched: []
    func_position:
      end: 112
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 112
    functionName: ENGINE_load_public_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c
    functionUses: 0
    functionsReached:
    - ENGINE*::load_pubkey
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: EVP_PKEY
    signature: "*ENGINE_load_public_key(ENGINE *e, const char *key_id,\n                                 UI_METHOD
      *ui_method, void *callback_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_cipher.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: ENGINE_unregister_ciphers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_cipher.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: ENGINE_unregister_ciphers(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_cipher.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: engine_unregister_all_ciphers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_cipher.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: engine_unregister_all_ciphers(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_cipher.c:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 35
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 35
    functionName: ENGINE_register_ciphers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_cipher.c
    functionUses: 1
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: ENGINE_register_ciphers(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_cipher.c:41,1
    - Dst: ENGINE_get_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_cipher.c:41,1
    - Dst: ENGINE_register_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_cipher.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 5
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: ENGINE_register_all_ciphers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_cipher.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_first
    - ENGINE_get_next
    - ENGINE_register_ciphers
    linkageType: ''
    returnType: void
    signature: ENGINE_register_all_ciphers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_cipher.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: ENGINE_set_default_ciphers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_cipher.c
    functionUses: 1
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: ENGINE_set_default_ciphers(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_select
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_cipher.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: ENGINE_get_cipher_engine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_cipher.c
    functionUses: 1
    functionsReached:
    - engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: '*ENGINE_get_cipher_engine(int nid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_cipher.c:72,1
    - Dst: fn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_cipher.c:73,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_cipher.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - e
    - nid
    argTypes:
    - ENGINE*
    - int
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: ENGINE_get_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_cipher.c
    functionUses: 1
    functionsReached:
    - ENGINEerr
    - ENGINE_get_ciphers
    - fn
    linkageType: ''
    returnType: EVP_CIPHER
    signature: '*ENGINE_get_cipher(ENGINE *e, int nid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: ENGINE_get_ciphers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_cipher.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_CIPHERS_PTR
    signature: ENGINE_get_ciphers(const ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - f
    argTypes:
    - ENGINE*
    - ENGINE_CIPHERS_PTR
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: ENGINE_set_ciphers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_cipher.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ENGINE_set_ciphers(ENGINE *e, ENGINE_CIPHERS_PTR f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_eckey.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: ENGINE_unregister_EC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_eckey.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: ENGINE_unregister_EC(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_eckey.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: engine_unregister_all_EC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_eckey.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: engine_unregister_all_EC(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_eckey.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: ENGINE_register_EC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_eckey.c
    functionUses: 1
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: ENGINE_register_EC(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_eckey.c:38,1
    - Dst: ENGINE_get_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_eckey.c:38,1
    - Dst: ENGINE_register_EC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_eckey.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: ENGINE_register_all_EC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_eckey.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_first
    - ENGINE_register_EC
    - ENGINE_get_next
    linkageType: ''
    returnType: void
    signature: ENGINE_register_all_EC()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_eckey.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: ENGINE_set_default_EC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_eckey.c
    functionUses: 1
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: ENGINE_set_default_EC(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_select
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_eckey.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: ENGINE_get_default_EC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_eckey.c
    functionUses: 1
    functionsReached:
    - engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: '*ENGINE_get_default_EC(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: ENGINE_get_EC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_eckey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EC_KEY_METHOD
    signature: '*ENGINE_get_EC(const ENGINE *e)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - ec_meth
    argTypes:
    - ENGINE*
    - EC_KEY_METHOD*
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: ENGINE_set_EC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_eckey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ENGINE_set_EC(ENGINE *e, const EC_KEY_METHOD *ec_meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c:25,1
    - Dst: engine_ref_debug
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c:33,1
    - Dst: engine_ref_debug
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 37
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 37
    functionName: engine_unlocked_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c
    functionUses: 2
    functionsReached:
    - ENGINE*::init
    - engine_ref_debug
    linkageType: ''
    returnType: int
    signature: engine_unlocked_init(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_ref_debug
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c:56,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c:59,1
    - Dst: ENGINE*::finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c:60,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c:62,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c:66,1
    - Dst: engine_free_util
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c:68,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c:69,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - e
    - unlock_for_handlers
    argTypes:
    - ENGINE*
    - int
    constantsTouched: []
    func_position:
      end: 73
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 73
    functionName: engine_unlocked_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c
    functionUses: 4
    functionsReached:
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - ENGINE*::finish
    - CRYPTO_THREAD_unlock
    - engine_ref_debug
    - engine_free_util
    - REF_ASSERT_ISNT
    linkageType: ''
    returnType: int
    signature: engine_unlocked_finish(ENGINE *e, int unlock_for_handlers)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c:80,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c:83,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c:84,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c:87,1
    - Dst: engine_unlocked_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c:88,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 91
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 91
    functionName: ENGINE_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c
    functionUses: 13
    functionsReached:
    - RUN_ONCE
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    - engine_unlocked_init
    linkageType: ''
    returnType: int
    signature: ENGINE_init(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c:100,1
    - Dst: engine_unlocked_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c:101,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c:102,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 108
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 108
    functionName: ENGINE_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c
    functionUses: 22
    functionsReached:
    - ENGINEerr
    - engine_unlocked_finish
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: ENGINE_finish(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: ENGINE_unregister_pkey_asn1_meths
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: ENGINE_unregister_pkey_asn1_meths(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: engine_unregister_all_pkey_asn1_meths
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: engine_unregister_all_pkey_asn1_meths(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: ENGINE_register_pkey_asn1_meths
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: ENGINE_register_pkey_asn1_meths(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:51,1
    - Dst: ENGINE_get_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:51,1
    - Dst: ENGINE_register_pkey_asn1_meths
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: ENGINE_register_all_pkey_asn1_meths
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_first
    - ENGINE_get_next
    - ENGINE_register_pkey_asn1_meths
    linkageType: ''
    returnType: void
    signature: ENGINE_register_all_pkey_asn1_meths(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 66
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 66
    functionName: ENGINE_set_default_pkey_asn1_meths
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c
    functionUses: 1
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: ENGINE_set_default_pkey_asn1_meths(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_select
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: ENGINE_get_pkey_asn1_meth_engine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c
    functionUses: 1
    functionsReached:
    - engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: '*ENGINE_get_pkey_asn1_meth_engine(int nid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_pkey_asn1_meths
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:85,1
    - Dst: fn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:86,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - e
    - nid
    argTypes:
    - ENGINE*
    - int
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: ENGINE_get_pkey_asn1_meth
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c
    functionUses: 1
    functionsReached:
    - ENGINEerr
    - ENGINE_get_pkey_asn1_meths
    - fn
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: '*ENGINE_get_pkey_asn1_meth(ENGINE *e, int nid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: ENGINE_get_pkey_asn1_meths
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_PKEY_ASN1_METHS_PTR
    signature: ENGINE_get_pkey_asn1_meths(const ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - f
    argTypes:
    - ENGINE*
    - ENGINE_PKEY_ASN1_METHS_PTR
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: ENGINE_set_pkey_asn1_meths
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ENGINE_set_pkey_asn1_meths(ENGINE *e, ENGINE_PKEY_ASN1_METHS_PTR f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::pkey_asn1_meths
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:119,1
    - Dst: ENGINE*::pkey_asn1_meths
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:121,1
    - Dst: EVP_PKEY_asn1_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 126
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 126
    functionName: engine_pkey_asn1_meths_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c
    functionUses: 1
    functionsReached:
    - ENGINE*::pkey_asn1_meths
    - EVP_PKEY_asn1_free
    linkageType: ''
    returnType: void
    signature: engine_pkey_asn1_meths_free(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:145,1
    - Dst: ENGINE*::pkey_asn1_meths
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:146,1
    - Dst: ENGINE*::pkey_asn1_meths
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:148,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:149,1
    - Dst: strncasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - e
    - str
    - len
    argTypes:
    - ENGINE*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 154
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 154
    functionName: ENGINE_get_pkey_asn1_meth_str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c
    functionUses: 0
    functionsReached:
    - strlen
    - ENGINE*::pkey_asn1_meths
    - strncasecmp
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: "*ENGINE_get_pkey_asn1_meth_str(ENGINE *e,\n                                                          const
      char *str,\n                                                          int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_ENGINE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:169,1
    - Dst: sk_ENGINE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:170,1
    - Dst: ENGINE*::pkey_asn1_meths
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:172,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:173,1
    - Dst: strncasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - nid
    - sk
    - def
    - arg
    argTypes:
    - int
    - STACK_OF*
    - ENGINE*
    - void*
    constantsTouched: []
    func_position:
      end: 180
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 180
    functionName: look_str_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c
    functionUses: 0
    functionsReached:
    - ENGINE*::pkey_asn1_meths
    - strncasecmp
    - sk_ENGINE_value
    - sk_ENGINE_num
    - strlen
    linkageType: ''
    returnType: void
    signature: look_str_cb(int nid, STACK_OF(ENGINE) *sk, ENGINE *def, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:192,1
    - Dst: ENGINEerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:193,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:197,1
    - Dst: engine_table_doall
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:198,1
    - Dst: engine_ref_debug
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:202,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - pe
    - str
    - len
    argTypes:
    - ENGINE**
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 207
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 207
    functionName: ENGINE_pkey_asn1_find_str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c
    functionUses: 1
    functionsReached:
    - engine_table_doall
    - RUN_ONCE
    - ENGINEerr
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    - engine_ref_debug
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: "*ENGINE_pkey_asn1_find_str(ENGINE **pe,\n                                                      const
      char *str,\n                                                      int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:75,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:85,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:88,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:91,1
    - Dst: NCONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:95,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:100,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:101,1
    - Dst: module_run
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:102,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - cnf
    - appname
    - flags
    argTypes:
    - CONF*
    - char*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 110
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 110
    functionName: CONF_modules_load
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - STACK_OF
    - module_run
    - sk_CONF_VALUE_num
    - NCONF_get_string
    - NCONF_get_section
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: "CONF_modules_load(const CONF *cnf, const char *appname,\n                      unsigned
      long flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:118,1
    - Dst: CONF_get1_default_config_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:123,1
    - Dst: NCONF_load
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:129,1
    - Dst: ERR_GET_REASON
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:131,1
    - Dst: ERR_peek_last_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:131,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:132,1
    - Dst: CONF_modules_load
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:138,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:142,1
    - Dst: NCONF_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:143,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - filename
    - appname
    - flags
    argTypes:
    - char*
    - char*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 146
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 146
    functionName: CONF_modules_load_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached:
    - NCONF_load
    - CONF_get1_default_config_file
    - CONF_modules_load
    - ERR_peek_last_error
    - NCONF_free
    - NCONF_new
    - OPENSSL_free
    - ERR_GET_REASON
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: "CONF_modules_load_file(const char *filename, const char *appname,\n
      \                          unsigned long flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: module_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:154,1
    - Dst: module_load_dso
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:158,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:162,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:163,1
    - Dst: module_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:168,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:173,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:174,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:175,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - cnf
    - name
    - value
    - flags
    argTypes:
    - CONF*
    - char*
    - char*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 181
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 181
    functionName: module_run
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - module_find
    - BIO_snprintf
    - CONFerr
    - ERR_add_error_data
    - module_load_dso
    - module_init
    linkageType: ''
    returnType: int
    signature: "module_run(const CONF *cnf, const char *name, const char *value,\n
      \                     unsigned long flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:194,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:196,1
    - Dst: DSO_load
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:199,1
    - Dst: DSO_bind_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:204,1
    - Dst: DSO_bind_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:209,1
    - Dst: module_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:211,1
    - Dst: DSO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:219,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:220,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:221,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - cnf
    - name
    - value
    argTypes:
    - CONF*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 223
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 223
    functionName: module_load_dso
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - ERR_clear_error
    - DSO_free
    - CONFerr
    - NCONF_get_string
    - DSO_load
    - ERR_add_error_data
    - DSO_bind_func
    - module_add
    linkageType: ''
    returnType: CONF_MODULE
    signature: "*module_load_dso(const CONF *cnf,\n                                    const
      char *name, const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_CONF_MODULE_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:231,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:234,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:239,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:243,1
    - Dst: sk_CONF_MODULE_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:247,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:248,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:249,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - dso
    - name
    - ifunc
    - ffunc
    argTypes:
    - DSO*
    - char*
    - conf_init_func*
    - conf_finish_func*
    constantsTouched: []
    func_position:
      end: 254
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 254
    functionName: module_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 5
    functionsReached:
    - sk_CONF_MODULE_push
    - sk_CONF_MODULE_new_null
    - OPENSSL_strdup
    - OPENSSL_zalloc
    - OPENSSL_free
    linkageType: ''
    returnType: CONF_MODULE
    signature: "*module_add(DSO *dso, const char *name,\n                               conf_init_func
      *ifunc, conf_finish_func *ffunc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:267,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:272,1
    - Dst: sk_CONF_MODULE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:274,1
    - Dst: sk_CONF_MODULE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:275,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 282
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 282
    functionName: module_find
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - sk_CONF_MODULE_num
    - sk_CONF_MODULE_value
    - strncmp
    - strrchr
    - strlen
    linkageType: ''
    returnType: CONF_MODULE
    signature: '*module_find(const char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:293,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:298,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:299,1
    - Dst: CONF_MODULE*::init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:307,1
    - Dst: sk_CONF_IMODULE_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:315,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:317,1
    - Dst: sk_CONF_IMODULE_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:322,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:323,1
    - Dst: CONF_MODULE*::finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:335,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:339,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:340,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:341,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 4
    argNames:
    - pmod
    - name
    - value
    - cnf
    argTypes:
    - CONF_MODULE*
    - char*
    - char*
    - CONF*
    constantsTouched: []
    func_position:
      end: 346
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 346
    functionName: module_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - CONF_MODULE*::init
    - sk_CONF_IMODULE_push
    - sk_CONF_IMODULE_new_null
    - CONFerr
    - CONF_MODULE*::finish
    - OPENSSL_strdup
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "module_init(CONF_MODULE *pmod, const char *name, const char *value,\n
      \                      const CONF *cnf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONF_modules_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:358,1
    - Dst: sk_CONF_MODULE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:360,1
    - Dst: sk_CONF_MODULE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:361,1
    - Dst: sk_CONF_MODULE_delete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:366,1
    - Dst: module_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:367,1
    - Dst: sk_CONF_MODULE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:369,1
    - Dst: sk_CONF_MODULE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:370,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - all
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 373
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 373
    functionName: CONF_modules_unload
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached:
    - sk_CONF_MODULE_delete
    - sk_CONF_MODULE_num
    - module_free
    - sk_CONF_MODULE_free
    - sk_CONF_MODULE_value
    - CONF_modules_finish
    linkageType: ''
    returnType: void
    signature: CONF_modules_unload(int all)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:378,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:379,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_MODULE*
    constantsTouched: []
    func_position:
      end: 381
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 381
    functionName: module_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - DSO_free
    linkageType: ''
    returnType: void
    signature: module_free(CONF_MODULE *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_CONF_IMODULE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:388,1
    - Dst: sk_CONF_IMODULE_pop
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:389,1
    - Dst: module_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:390,1
    - Dst: sk_CONF_IMODULE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 394
    functionName: CONF_modules_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - module_finish
    - sk_CONF_IMODULE_pop
    - sk_CONF_IMODULE_num
    - sk_CONF_IMODULE_free
    linkageType: ''
    returnType: void
    signature: CONF_modules_finish(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONF_IMODULE*::pmod::finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:403,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:405,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:406,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - imod
    argTypes:
    - CONF_IMODULE*
    constantsTouched: []
    func_position:
      end: 408
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 408
    functionName: module_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - CONF_IMODULE*::pmod::finish
    linkageType: ''
    returnType: void
    signature: module_finish(CONF_IMODULE *imod)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: module_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - name
    - ifunc
    - ffunc
    argTypes:
    - char*
    - conf_init_func*
    - conf_finish_func*
    constantsTouched: []
    func_position:
      end: 419
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 419
    functionName: CONF_module_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 4
    functionsReached:
    - module_add
    linkageType: ''
    returnType: int
    signature: "CONF_module_add(const char *name, conf_init_func *ifunc,\n                    conf_finish_func
      *ffunc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONF_modules_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:423,1
    - Dst: CONF_modules_unload
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 425
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 425
    functionName: conf_modules_free_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - CONF_modules_finish
    - CONF_modules_unload
    linkageType: ''
    returnType: void
    signature: conf_modules_free_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    constantsTouched: []
    func_position:
      end: 432
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 432
    functionName: CONF_imodule_get_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*CONF_imodule_get_name(const CONF_IMODULE *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    constantsTouched: []
    func_position:
      end: 437
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 437
    functionName: CONF_imodule_get_value
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*CONF_imodule_get_value(const CONF_IMODULE *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    constantsTouched: []
    func_position:
      end: 442
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 442
    functionName: CONF_imodule_get_usr_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*CONF_imodule_get_usr_data(const CONF_IMODULE *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - md
    - usr_data
    argTypes:
    - CONF_IMODULE*
    - void*
    constantsTouched: []
    func_position:
      end: 447
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 447
    functionName: CONF_imodule_set_usr_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CONF_imodule_set_usr_data(CONF_IMODULE *md, void *usr_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    constantsTouched: []
    func_position:
      end: 452
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 452
    functionName: CONF_imodule_get_module
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CONF_MODULE
    signature: '*CONF_imodule_get_module(const CONF_IMODULE *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    constantsTouched: []
    func_position:
      end: 457
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 457
    functionName: CONF_imodule_get_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: CONF_imodule_get_flags(const CONF_IMODULE *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - md
    - flags
    argTypes:
    - CONF_IMODULE*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 462
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 462
    functionName: CONF_imodule_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CONF_imodule_set_flags(CONF_IMODULE *md, unsigned long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmod
    argTypes:
    - CONF_MODULE*
    constantsTouched: []
    func_position:
      end: 467
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 467
    functionName: CONF_module_get_usr_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*CONF_module_get_usr_data(CONF_MODULE *pmod)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pmod
    - usr_data
    argTypes:
    - CONF_MODULE*
    - void*
    constantsTouched: []
    func_position:
      end: 472
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 472
    functionName: CONF_module_set_usr_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CONF_module_set_usr_data(CONF_MODULE *pmod, void *usr_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:481,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:483,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:485,1
    - Dst: X509_get_default_cert_area
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:485,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:489,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:491,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:495,1
    - Dst: X509_get_default_cert_area
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:495,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:497,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 502
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 502
    functionName: CONF_get1_default_config_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - OPENSSL_strlcpy
    - getenv
    - strlen
    - OPENSSL_strdup
    - X509_get_default_cert_area
    - OPENSSL_strlcat
    - OPENSSL_malloc
    linkageType: ''
    returnType: char
    signature: '*CONF_get1_default_config_file(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:519,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:526,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:529,1
    - Dst: list_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:531,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:536,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:538,1
    - Dst: list_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c:541,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 4
    argNames:
    - list_
    - sep
    - nospc
    - arg
    argTypes:
    - char*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 549
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 549
    functionName: CONF_parse_list
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
    functionUses: 4
    functionsReached:
    - isspace
    - strchr
    - CONFerr
    - strlen
    - list_cb
    linkageType: ''
    returnType: int
    signature: "CONF_parse_list(const char *list_, int sep, int nospc,\n                    int
      (*list_cb) (const char *elem, int len, void *usr),\n                    void
      *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - CONF_METHOD*
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: CONF_set_default_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: CONF_set_default_method(CONF_METHOD *meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:112,1
    - Dst: CONF_set_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:115,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - conf
    - group
    - name
    argTypes:
    - LHASH_OF*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 118
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 118
    functionName: CONF_get_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c
    functionUses: 3
    functionsReached:
    - CONF_set_nconf
    - NCONF_get_string
    linkageType: ''
    returnType: char
    signature: "*CONF_get_string(LHASH_OF(CONF_VALUE) *conf, const char *group,\n
      \                     const char *name)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_default
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:184,1
    - Dst: CONF_METHOD*::create
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:186,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - meth
    argTypes:
    - CONF_METHOD*
    constantsTouched: []
    func_position:
      end: 193
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 193
    functionName: NCONF_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c
    functionUses: 1
    functionsReached:
    - CONFerr
    - NCONF_default
    - CONF_METHOD*::create
    linkageType: ''
    returnType: CONF
    signature: '*NCONF_new(CONF_METHOD *meth)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONF*::meth::destroy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: NCONF_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c
    functionUses: 1
    functionsReached:
    - CONF*::meth::destroy
    linkageType: ''
    returnType: void
    signature: NCONF_free(CONF *conf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONF*::meth::destroy_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    constantsTouched: []
    func_position:
      end: 207
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 207
    functionName: NCONF_free_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - CONF*::meth::destroy_data
    linkageType: ''
    returnType: void
    signature: NCONF_free_data(CONF *conf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:212,1
    - Dst: CONF*::meth::load
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - conf
    - file
    - eline
    argTypes:
    - CONF*
    - char*
    - long*
    constantsTouched: []
    func_position:
      end: 217
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 217
    functionName: NCONF_load
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c
    functionUses: 1
    functionsReached:
    - CONFerr
    - CONF*::meth::load
    linkageType: ''
    returnType: int
    signature: NCONF_load(CONF *conf, const char *file, long *eline)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:224,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:225,1
    - Dst: NCONF_load_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:228,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - conf
    - fp
    - eline
    argTypes:
    - CONF*
    - FILE*
    - long*
    constantsTouched: []
    func_position:
      end: 231
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 231
    functionName: NCONF_load_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - CONFerr
    - BIO_new_fp
    - NCONF_load_bio
    - BIO_free
    linkageType: ''
    returnType: int
    signature: NCONF_load_fp(CONF *conf, FILE *fp, long *eline)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:237,1
    - Dst: CONF*::meth::load_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - conf
    - bp
    - eline
    argTypes:
    - CONF*
    - BIO*
    - long*
    constantsTouched: []
    func_position:
      end: 242
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 242
    functionName: NCONF_load_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c
    functionUses: 1
    functionsReached:
    - CONFerr
    - CONF*::meth::load_bio
    linkageType: ''
    returnType: int
    signature: NCONF_load_bio(CONF *conf, BIO *bp, long *eline)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:271,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:275,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - conf
    - group
    - name
    argTypes:
    - CONF*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 278
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 278
    functionName: NCONF_get_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c
    functionUses: 3
    functionsReached:
    - CONFerr
    - ERR_add_error_data
    linkageType: ''
    returnType: char
    signature: '*NCONF_get_string(const CONF *conf, const char *group, const char
      *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:286,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:290,1
    - Dst: CONF*::meth::is_number
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:295,1
    - Dst: CONF*::meth::to_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:296,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - conf
    - group
    - name
    - result
    argTypes:
    - CONF*
    - char*
    - char*
    - long*
    constantsTouched: []
    func_position:
      end: 301
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 301
    functionName: NCONF_get_number_e
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c
    functionUses: 1
    functionsReached:
    - CONFerr
    - CONF*::meth::to_int
    - CONF*::meth::is_number
    - NCONF_get_string
    linkageType: ''
    returnType: int
    signature: "NCONF_get_number_e(const CONF *conf, const char *group, const char
      *name,\n                       long *result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:308,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:309,1
    - Dst: NCONF_dump_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:312,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - conf
    - out
    argTypes:
    - CONF*
    - FILE*
    constantsTouched: []
    func_position:
      end: 315
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 315
    functionName: NCONF_dump_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - CONFerr
    - BIO_new_fp
    - BIO_free
    - NCONF_dump_bio
    linkageType: ''
    returnType: int
    signature: NCONF_dump_fp(const CONF *conf, FILE *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:321,1
    - Dst: CONF*::meth::dump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - conf
    - out
    argTypes:
    - CONF*
    - BIO*
    constantsTouched: []
    func_position:
      end: 326
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 326
    functionName: NCONF_dump_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c
    functionUses: 1
    functionsReached:
    - CONFerr
    - CONF*::meth::dump
    linkageType: ''
    returnType: int
    signature: NCONF_dump_bio(const CONF *conf, BIO *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:334,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 339
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 339
    functionName: OPENSSL_INIT_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - malloc
    - memset
    linkageType: ''
    returnType: OPENSSL_INIT_SETTINGS
    signature: '*OPENSSL_INIT_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:349,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - settings
    - appname
    argTypes:
    - OPENSSL_INIT_SETTINGS*
    - char*
    constantsTouched: []
    func_position:
      end: 358
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 358
    functionName: OPENSSL_INIT_set_config_appname
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "OPENSSL_INIT_set_config_appname(OPENSSL_INIT_SETTINGS *settings,\n
      \                                   const char *appname)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:363,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - settings
    argTypes:
    - OPENSSL_INIT_SETTINGS*
    constantsTouched: []
    func_position:
      end: 365
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 365
    functionName: OPENSSL_INIT_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_sap.c:31,1
    - Dst: strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_sap.c:33,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_sap.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - appname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: OPENSSL_config
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_sap.c
    functionUses: 0
    functionsReached:
    - strdup
    - OPENSSL_init_crypto
    - memset
    linkageType: ''
    returnType: void
    signature: OPENSSL_config(const char *appname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_load_builtin_modules
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_sap.c:43,1
    - Dst: ENGINE_load_builtin_engines
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_sap.c:46,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_sap.c:48,1
    - Dst: CONF_modules_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_sap.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - appname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 55
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 55
    functionName: openssl_config_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_sap.c
    functionUses: 1
    functionsReached:
    - ENGINE_load_builtin_engines
    - CONF_modules_load_file
    - OPENSSL_load_builtin_modules
    - ERR_clear_error
    linkageType: ''
    returnType: void
    signature: openssl_config_int(const char *appname)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: openssl_no_config_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_sap.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: openssl_no_config_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_add_oid_module
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mall.c:23,1
    - Dst: ASN1_add_stable_module
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mall.c:24,1
    - Dst: ENGINE_add_conf_module
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mall.c:26,1
    - Dst: EVP_add_alg_module
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mall.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 29
    functionName: OPENSSL_load_builtin_modules
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mall.c
    functionUses: 1
    functionsReached:
    - ASN1_add_stable_module
    - ENGINE_add_conf_module
    - EVP_add_alg_module
    - ASN1_add_oid_module
    linkageType: ''
    returnType: void
    signature: OPENSSL_load_builtin_modules(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: NCONF_default
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CONF_METHOD
    signature: '*NCONF_default()'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: NCONF_WIN32
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CONF_METHOD
    signature: '*NCONF_WIN32()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:82,1
    - Dst: CONF_METHOD*::init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:84,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - meth
    argTypes:
    - CONF_METHOD*
    constantsTouched: []
    func_position:
      end: 89
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 89
    functionName: def_create
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached:
    - CONF_METHOD*::init
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: CONF
    signature: '*def_create(CONF_METHOD *meth)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: def_init_default
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: def_init_default(CONF *conf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    constantsTouched: []
    func_position:
      end: 113
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 113
    functionName: def_init_WIN32
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: def_init_WIN32(CONF *conf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: def_destroy_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:117,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: def_destroy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - def_destroy_data
    linkageType: ''
    returnType: int
    signature: def_destroy(CONF *conf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _CONF_free_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: def_destroy_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - _CONF_free_data
    linkageType: ''
    returnType: int
    signature: def_destroy_data(CONF *conf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:138,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:140,1
    - Dst: ERR_GET_REASON
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:143,1
    - Dst: ERR_peek_last_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:143,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:144,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:146,1
    - Dst: def_load_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:150,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - conf
    - name
    - line
    argTypes:
    - CONF*
    - char*
    - long*
    constantsTouched: []
    func_position:
      end: 154
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 154
    functionName: def_load
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached:
    - def_load_bio
    - CONFerr
    - ERR_peek_last_error
    - BIO_free
    - BIO_new_file
    - ERR_GET_REASON
    linkageType: ''
    returnType: int
    signature: def_load(CONF *conf, const char *name, long *line)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:172,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:173,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:177,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:179,1
    - Dst: _CONF_new_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:183,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:184,1
    - Dst: _CONF_new_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:188,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:190,1
    - Dst: BUF_MEM_grow
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:197,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:198,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:203,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:205,1
    - Dst: IS_ESC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:238,1
    - Dst: IS_ESC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:238,1
    - Dst: clear_comments
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:248,1
    - Dst: eat_ws
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:249,1
    - Dst: IS_EOF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:250,1
    - Dst: eat_ws
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:256,1
    - Dst: eat_alpha_numeric
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:259,1
    - Dst: eat_ws
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:260,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:266,1
    - Dst: str_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:271,1
    - Dst: _CONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:273,1
    - Dst: _CONF_new_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:274,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:276,1
    - Dst: eat_alpha_numeric
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:284,1
    - Dst: eat_alpha_numeric
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:290,1
    - Dst: eat_ws
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:292,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:294,1
    - Dst: eat_ws
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:299,1
    - Dst: IS_EOF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:300,1
    - Dst: IS_WS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:303,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:308,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:309,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:314,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:314,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:317,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:320,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:320,1
    - Dst: str_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:321,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:324,1
    - Dst: _CONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:325,1
    - Dst: _CONF_new_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:327,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:329,1
    - Dst: _CONF_add_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:335,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:336,1
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:342,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:343,1
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:346,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:347,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:350,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:351,1
    - Dst: CONF_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:353,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:357,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:358,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:359,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 180
    argCount: 3
    argNames:
    - conf
    - in
    - line
    argTypes:
    - CONF*
    - BIO*
    - long*
    constantsTouched: []
    func_position:
      end: 362
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 362
    functionName: def_load_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - clear_comments
    - BUF_MEM_grow
    - IS_WS
    - IS_ESC
    - _CONF_add_string
    - OPENSSL_strdup
    - _CONF_get_section
    - OPENSSL_strlcpy
    - _CONF_new_section
    - BUF_MEM_new
    - BIO_snprintf
    - CONF_free
    - BIO_gets
    - CONFerr
    - strlen
    - ERR_add_error_data
    - OPENSSL_free
    - eat_ws
    - eat_alpha_numeric
    - strcmp
    - IS_EOF
    - str_copy
    - _CONF_new_data
    - OPENSSL_malloc
    - BUF_MEM_free
    linkageType: ''
    returnType: int
    signature: def_load_bio(CONF *conf, BIO *in, long *line)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_FCOMMENT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:367,1
    - Dst: IS_WS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:371,1
    - Dst: IS_COMMENT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:378,1
    - Dst: IS_DQUOTE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:382,1
    - Dst: scan_dquote
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:383,1
    - Dst: IS_QUOTE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:386,1
    - Dst: scan_quote
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:387,1
    - Dst: IS_ESC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:390,1
    - Dst: scan_esc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:391,1
    - Dst: IS_EOF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:394,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 2
    argNames:
    - conf
    - p
    argTypes:
    - CONF*
    - char*
    constantsTouched: []
    func_position:
      end: 399
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 399
    functionName: clear_comments
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - IS_WS
    - scan_quote
    - IS_FCOMMENT
    - IS_ESC
    - scan_esc
    - IS_EOF
    - scan_dquote
    - IS_QUOTE
    - IS_DQUOTE
    - IS_COMMENT
    linkageType: ''
    returnType: void
    signature: clear_comments(CONF *conf, char *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:407,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:410,1
    - Dst: BUF_MEM_grow
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:411,1
    - Dst: IS_QUOTE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:415,1
    - Dst: IS_EOF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:418,1
    - Dst: IS_ESC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:419,1
    - Dst: IS_EOF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:421,1
    - Dst: IS_DQUOTE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:428,1
    - Dst: IS_EOF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:431,1
    - Dst: IS_ESC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:443,1
    - Dst: IS_EOF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:446,1
    - Dst: IS_EOF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:457,1
    - Dst: IS_ALPHA_NUMERIC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:474,1
    - Dst: IS_ALPHA_NUMERIC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:483,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:491,1
    - Dst: _CONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:506,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:511,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:514,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:515,1
    - Dst: CONFerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:516,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:539,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:541,1
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:544,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 121
    argCount: 4
    argNames:
    - conf
    - section
    - pto
    - from
    argTypes:
    - CONF*
    - char*
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 546
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 546
    functionName: str_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - _CONF_get_string
    - BUF_MEM_grow
    - IS_EOF
    - IS_ESC
    - strlen
    - CONFerr
    - IS_QUOTE
    - BUF_MEM_grow_clean
    - OPENSSL_free
    - BUF_MEM_new
    - IS_ALPHA_NUMERIC
    - IS_DQUOTE
    - BUF_MEM_free
    linkageType: ''
    returnType: int
    signature: str_copy(CONF *conf, char *section, char **pto, char *from)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_WS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:550,1
    - Dst: IS_EOF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - conf
    - p
    argTypes:
    - CONF*
    - char*
    constantsTouched: []
    func_position:
      end: 553
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 553
    functionName: eat_ws
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - IS_WS
    - IS_EOF
    linkageType: ''
    returnType: char
    signature: '*eat_ws(CONF *conf, char *p)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_ESC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:558,1
    - Dst: scan_esc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:559,1
    - Dst: IS_ALPHA_NUMERIC_PUNCT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:562,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - conf
    - p
    argTypes:
    - CONF*
    - char*
    constantsTouched: []
    func_position:
      end: 566
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 566
    functionName: eat_alpha_numeric
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - scan_esc
    - IS_ALPHA_NUMERIC_PUNCT
    - IS_ESC
    linkageType: ''
    returnType: char
    signature: '*eat_alpha_numeric(CONF *conf, char *p)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_EOF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:573,1
    - Dst: IS_ESC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:574,1
    - Dst: IS_EOF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:576,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - conf
    - p
    argTypes:
    - CONF*
    - char*
    constantsTouched: []
    func_position:
      end: 584
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 584
    functionName: scan_quote
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - IS_EOF
    - IS_ESC
    linkageType: ''
    returnType: char
    signature: '*scan_quote(CONF *conf, char *p)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_EOF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:591,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - conf
    - p
    argTypes:
    - CONF*
    - char*
    constantsTouched: []
    func_position:
      end: 604
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 604
    functionName: scan_dquote
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - IS_EOF
    linkageType: ''
    returnType: char
    signature: '*scan_dquote(CONF *conf, char *p)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:609,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - out
    argTypes:
    - CONF_VALUE*
    - BIO*
    constantsTouched: []
    func_position:
      end: 612
      start: 606
    functionDepth: 2
    functionLinenumber: 606
    functionLinenumberEnd: 612
    functionName: dump_value_doall_arg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: dump_value_doall_arg(const CONF_VALUE *a, BIO *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_CONF_VALUE_doall_BIO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - conf
    - out
    argTypes:
    - CONF*
    - BIO*
    constantsTouched: []
    func_position:
      end: 620
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 620
    functionName: def_dump
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached:
    - lh_CONF_VALUE_doall_BIO
    linkageType: ''
    returnType: int
    signature: def_dump(const CONF *conf, BIO *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_NUMBER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conf
    - c
    argTypes:
    - CONF*
    - char
    constantsTouched: []
    func_position:
      end: 625
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 625
    functionName: def_is_number
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached:
    - IS_NUMBER
    linkageType: ''
    returnType: int
    signature: def_is_number(const CONF *conf, char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conf
    - c
    argTypes:
    - CONF*
    - char
    constantsTouched: []
    func_position:
      end: 630
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 630
    functionName: def_to_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: def_to_int(const CONF *conf, char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_CONF_VALUE_retrieve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - conf
    - section
    argTypes:
    - CONF*
    - char*
    constantsTouched: []
    func_position:
      end: 32
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 32
    functionName: _CONF_get_section
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c
    functionUses: 1
    functionsReached:
    - lh_CONF_VALUE_retrieve
    linkageType: ''
    returnType: CONF_VALUE
    signature: '*_CONF_get_section(const CONF *conf, const char *section)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:50,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:52,1
    - Dst: sk_CONF_VALUE_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:55,1
    - Dst: lh_CONF_VALUE_insert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:59,1
    - Dst: sk_CONF_VALUE_delete_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:61,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:62,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:63,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - conf
    - section
    - value
    argTypes:
    - CONF*
    - CONF_VALUE*
    - CONF_VALUE*
    constantsTouched: []
    func_position:
      end: 67
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 67
    functionName: _CONF_add_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c
    functionUses: 1
    functionsReached:
    - sk_CONF_VALUE_push
    - STACK_OF
    - lh_CONF_VALUE_insert
    - sk_CONF_VALUE_delete_ptr
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: _CONF_add_string(CONF *conf, CONF_VALUE *section, CONF_VALUE *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_CONF_VALUE_retrieve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:81,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:84,1
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:85,1
    - Dst: lh_CONF_VALUE_retrieve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:92,1
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:98,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - conf
    - section
    - name
    argTypes:
    - CONF*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 99
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 99
    functionName: _CONF_get_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c
    functionUses: 1
    functionsReached:
    - lh_CONF_VALUE_retrieve
    - getenv
    - strcmp
    linkageType: ''
    returnType: char
    signature: "*_CONF_get_string(const CONF *conf, const char *section,\n                       const
      char *name)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_LH_strhash
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:103,1
    - Dst: OPENSSL_LH_strhash
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - CONF_VALUE*
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: conf_value_hash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_strhash
    linkageType: ''
    returnType: unsigned long
    signature: conf_value_hash(const CONF_VALUE *v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:111,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:117,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - CONF_VALUE*
    - CONF_VALUE*
    constantsTouched: []
    func_position:
      end: 123
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 123
    functionName: conf_value_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: conf_value_cmp(const CONF_VALUE *a, const CONF_VALUE *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_CONF_VALUE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    constantsTouched: []
    func_position:
      end: 136
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 136
    functionName: _CONF_new_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c
    functionUses: 1
    functionsReached:
    - lh_CONF_VALUE_new
    linkageType: ''
    returnType: int
    signature: _CONF_new_data(CONF *conf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_CONF_VALUE_set_down_load
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:148,1
    - Dst: lh_CONF_VALUE_doall_LH_CONF_VALUE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:149,1
    - Dst: lh_CONF_VALUE_doall
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:156,1
    - Dst: lh_CONF_VALUE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    constantsTouched: []
    func_position:
      end: 158
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 158
    functionName: _CONF_free_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c
    functionUses: 1
    functionsReached:
    - lh_CONF_VALUE_set_down_load
    - lh_CONF_VALUE_doall_LH_CONF_VALUE
    - lh_CONF_VALUE_doall
    - lh_CONF_VALUE_free
    linkageType: ''
    returnType: void
    signature: _CONF_free_data(CONF *conf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_CONF_VALUE_delete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - a
    - conf
    argTypes:
    - CONF_VALUE*
    - LHASH_OF*
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: value_free_hash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c
    functionUses: 0
    functionsReached:
    - lh_CONF_VALUE_delete
    linkageType: ''
    returnType: void
    signature: value_free_hash(const CONF_VALUE *a, LHASH_OF(CONF_VALUE) *conf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:169,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:175,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:176,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:177,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:178,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:179,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:180,1
    - Dst: sk_CONF_VALUE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:182,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:183,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - a
    argTypes:
    - CONF_VALUE*
    constantsTouched: []
    func_position:
      end: 185
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 185
    functionName: value_free_stack_doall
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - STACK_OF
    - sk_CONF_VALUE_free
    - sk_CONF_VALUE_num
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: value_free_stack_doall(CONF_VALUE *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:190,1
    - Dst: sk_CONF_VALUE_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:194,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:196,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:198,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:199,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:202,1
    - Dst: lh_CONF_VALUE_insert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:206,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:207,1
    - Dst: sk_CONF_VALUE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:211,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c:212,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - conf
    - section
    argTypes:
    - CONF*
    - char*
    constantsTouched: []
    func_position:
      end: 214
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 214
    functionName: _CONF_new_section
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c
    functionUses: 1
    functionsReached:
    - sk_CONF_VALUE_new_null
    - OPENSSL_assert
    - STACK_OF
    - sk_CONF_VALUE_free
    - strlen
    - lh_CONF_VALUE_insert
    - memcpy
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: CONF_VALUE
    signature: '*_CONF_new_section(CONF *conf, const char *section)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_err.c:73,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_err.c:74,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_err.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 79
    functionName: ERR_load_CONF_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_CONF_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MD2_Init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_one.c:26,1
    - Dst: MD2_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_one.c:29,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_one.c:37,1
    - Dst: MD2_Update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_one.c:38,1
    - Dst: MD2_Final
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_one.c:44,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_one.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 47
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 47
    functionName: MD2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_one.c
    functionUses: 0
    functionsReached:
    - MD2_Final
    - MD2_Init
    - MD2_Update
    - OPENSSL_cleanse
    - ebcdic2ascii
    linkageType: ''
    returnType: unsigned char
    signature: '*MD2(const unsigned char *d, size_t n, unsigned char *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: MD2_options
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_dgst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*MD2_options(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_dgst.c:74,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_dgst.c:75,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_dgst.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - MD2_CTX*
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: MD2_Init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_dgst.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: MD2_Init(MD2_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_dgst.c:90,1
    - Dst: md2_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_dgst.c:91,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_dgst.c:97,1
    - Dst: md2_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_dgst.c:108,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_dgst.c:112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - c
    - data
    - len
    argTypes:
    - MD2_CTX*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 115
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 115
    functionName: MD2_Update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_dgst.c
    functionUses: 2
    functionsReached:
    - md2_block
    - memcpy
    linkageType: ''
    returnType: int
    signature: MD2_Update(MD2_CTX *c, const unsigned char *data, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_dgst.c:146,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_dgst.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 2
    argNames:
    - c
    - d
    argTypes:
    - MD2_CTX*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 148
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 148
    functionName: md2_block
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_dgst.c
    functionUses: 1
    functionsReached:
    - OPENSSL_cleanse
    - memcpy
    linkageType: ''
    returnType: void
    signature: md2_block(MD2_CTX *c, const unsigned char *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: md2_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_dgst.c:163,1
    - Dst: md2_block
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_dgst.c:167,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_dgst.c:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - MD2_CTX*
    constantsTouched: []
    func_position:
      end: 173
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 173
    functionName: MD2_Final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_dgst.c
    functionUses: 2
    functionsReached:
    - md2_block
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: MD2_Final(unsigned char *md, MD2_CTX *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:36,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:38,1
    - Dst: EVP_DecodeBlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:42,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:44,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:56,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - char*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 58
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 58
    functionName: ct_base64_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c
    functionUses: 0
    functionsReached:
    - CTerr
    - OPENSSL_free
    - EVP_DecodeBlock
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: ct_base64_decode(const char *in, unsigned char **out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SCT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:65,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:71,1
    - Dst: SCT_set_version
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:79,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:80,1
    - Dst: ct_base64_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:84,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:86,1
    - Dst: SCT_set0_log_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:89,1
    - Dst: ct_base64_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:93,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:95,1
    - Dst: SCT_set0_extensions
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:98,1
    - Dst: ct_base64_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:101,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:103,1
    - Dst: o2i_SCT_signature
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:108,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:110,1
    - Dst: SCT_set_timestamp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:113,1
    - Dst: SCT_set_log_entry_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:115,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:121,1
    - Dst: SCT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:122,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 6
    argNames:
    - version
    - logid_base64
    - entry_type
    - timestamp
    - extensions_base64
    - signature_base64
    argTypes:
    - unsigned char
    - char*
    - ct_log_entry_type_t
    - uint64_t
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 124
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 124
    functionName: SCT_new_from_base64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c
    functionUses: 0
    functionsReached:
    - o2i_SCT_signature
    - SCT_set_timestamp
    - SCT_set0_extensions
    - CTerr
    - SCT_set_version
    - ct_base64_decode
    - SCT_free
    - SCT_set0_log_id
    - SCT_new
    - OPENSSL_free
    - SCT_set_log_entry_type
    linkageType: ''
    returnType: SCT
    signature: "*SCT_new_from_base64(unsigned char version, const char *logid_base64,\n
      \                        ct_log_entry_type_t entry_type, uint64_t timestamp,\n
      \                        const char *extensions_base64,\n                         const
      char *signature_base64)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:140,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:145,1
    - Dst: d2i_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:150,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:151,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:153,1
    - Dst: CTLOG_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:157,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - ct_log
    - pkey_base64
    - name
    argTypes:
    - CTLOG**
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 164
      start: 132
    functionDepth: 7
    functionLinenumber: 132
    functionLinenumberEnd: 164
    functionName: CTLOG_new_from_base64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c
    functionUses: 0
    functionsReached:
    - CTerr
    - d2i_PUBKEY
    - CTLOG_new
    - OPENSSL_free
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: CTLOG_new_from_base64(CTLOG **ct_log, const char *pkey_base64, const
      char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:25,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: SCT_CTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - CTerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: SCT_CTX
    signature: '*SCT_CTX_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:37,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:38,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:39,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:40,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:41,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - sctx
    argTypes:
    - SCT_CTX*
    constantsTouched: []
    func_position:
      end: 43
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 43
    functionName: SCT_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: SCT_CTX_free(SCT_CTX *sctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_ext_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - cert
    - nid
    - is_duplicated
    argTypes:
    - X509*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: ct_x509_get_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - X509_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: ct_x509_get_ext(X509 *cert, int nid, int *is_duplicated)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ct_x509_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:73,1
    - Dst: ct_x509_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:75,1
    - Dst: X509_set_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:90,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:90,1
    - Dst: X509_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:94,1
    - Dst: X509_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:95,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:101,1
    - Dst: X509_EXTENSION_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:103,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 23
    argCount: 2
    argNames:
    - cert
    - presigner
    argTypes:
    - X509*
    - X509*
    constantsTouched: []
    func_position:
      end: 107
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 107
    functionName: ct_x509_cert_fixup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - ct_x509_get_ext
    - X509_EXTENSION_get_data
    - X509_EXTENSION_set_data
    - X509_get_ext
    - X509_set_issuer_name
    - X509_get_issuer_name
    linkageType: ''
    returnType: __owur
    signature: ct_x509_cert_fixup(X509 *cert, X509 *presigner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:128,1
    - Dst: ct_x509_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:134,1
    - Dst: X509_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:161,1
    - Dst: X509_delete_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:165,1
    - Dst: X509_EXTENSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:166,1
    - Dst: ct_x509_cert_fixup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:168,1
    - Dst: i2d_re_X509_tbs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:171,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:176,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:178,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:182,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:188,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:189,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:190,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 3
    argNames:
    - sctx
    - cert
    - presigner
    argTypes:
    - SCT_CTX*
    - X509*
    - X509*
    constantsTouched: []
    func_position:
      end: 192
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 192
    functionName: SCT_CTX_set1_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - ct_x509_get_ext
    - X509_dup
    - i2d_X509
    - ct_x509_cert_fixup
    - X509_delete_ext
    - i2d_re_X509_tbs
    - X509_free
    - OPENSSL_free
    - X509_EXTENSION_free
    linkageType: ''
    returnType: int
    signature: SCT_CTX_set1_cert(SCT_CTX *sctx, X509 *cert, X509 *presigner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:206,1
    - Dst: i2d_X509_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:212,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:216,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:216,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:220,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:228,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:229,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - pkey
    - hash
    - hash_len
    argTypes:
    - X509_PUBKEY*
    - unsigned char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 231
      start: 194
    functionDepth: 5
    functionLinenumber: 194
    functionLinenumberEnd: 231
    functionName: ct_public_key_hash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - EVP_Digest
    - EVP_sha256
    - i2d_X509_PUBKEY
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: __owur
    signature: "ct_public_key_hash(X509_PUBKEY *pkey, unsigned char **hash,\n                                     size_t
      *hash_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SCT_CTX_set1_issuer_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:235,1
    - Dst: X509_get_X509_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sctx
    - issuer
    argTypes:
    - SCT_CTX*
    - X509*
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: SCT_CTX_set1_issuer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - SCT_CTX_set1_issuer_pubkey
    - X509_get_X509_PUBKEY
    linkageType: ''
    returnType: int
    signature: SCT_CTX_set1_issuer(SCT_CTX *sctx, const X509 *issuer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ct_public_key_hash
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sctx
    - pubkey
    argTypes:
    - SCT_CTX*
    - X509_PUBKEY*
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 6
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: SCT_CTX_set1_issuer_pubkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c
    functionUses: 1
    functionsReached:
    - ct_public_key_hash
    linkageType: ''
    returnType: int
    signature: SCT_CTX_set1_issuer_pubkey(SCT_CTX *sctx, X509_PUBKEY *pubkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:245,1
    - Dst: ct_public_key_hash
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:250,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:251,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - sctx
    - pubkey
    argTypes:
    - SCT_CTX*
    - X509_PUBKEY*
    constantsTouched: []
    func_position:
      end: 258
      start: 243
    functionDepth: 6
    functionLinenumber: 243
    functionLinenumberEnd: 258
    functionName: SCT_CTX_set1_pubkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - ct_public_key_hash
    - X509_PUBKEY_get
    linkageType: ''
    returnType: int
    signature: SCT_CTX_set1_pubkey(SCT_CTX *sctx, X509_PUBKEY *pubkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sctx
    - time_in_ms
    argTypes:
    - SCT_CTX*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: SCT_CTX_set_time
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SCT_CTX_set_time(SCT_CTX *sctx, uint64_t time_in_ms)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_policy.c:30,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_policy.c:33,1
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_policy.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 42
    functionName: CT_POLICY_EVAL_CTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached:
    - CTerr
    - time
    - OPENSSL_zalloc
    linkageType: ''
    returnType: CT_POLICY_EVAL_CTX
    signature: '*CT_POLICY_EVAL_CTX_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_policy.c:48,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_policy.c:49,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_policy.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CT_POLICY_EVAL_CTX*
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: CT_POLICY_EVAL_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - X509_free
    linkageType: ''
    returnType: void
    signature: CT_POLICY_EVAL_CTX_free(CT_POLICY_EVAL_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_policy.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - CT_POLICY_EVAL_CTX*
    - X509*
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: CT_POLICY_EVAL_CTX_set1_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    linkageType: ''
    returnType: int
    signature: CT_POLICY_EVAL_CTX_set1_cert(CT_POLICY_EVAL_CTX *ctx, X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_policy.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - issuer
    argTypes:
    - CT_POLICY_EVAL_CTX*
    - X509*
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: CT_POLICY_EVAL_CTX_set1_issuer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    linkageType: ''
    returnType: int
    signature: CT_POLICY_EVAL_CTX_set1_issuer(CT_POLICY_EVAL_CTX *ctx, X509 *issuer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - log_store
    argTypes:
    - CT_POLICY_EVAL_CTX*
    - CTLOG_STORE*
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE(CT_POLICY_EVAL_CTX *ctx,\n
      \                                              CTLOG_STORE *log_store)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - time_in_ms
    argTypes:
    - CT_POLICY_EVAL_CTX*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: CT_POLICY_EVAL_CTX_set_time
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: CT_POLICY_EVAL_CTX_set_time(CT_POLICY_EVAL_CTX *ctx, uint64_t time_in_ms)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CT_POLICY_EVAL_CTX*
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: CT_POLICY_EVAL_CTX_get0_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: '* CT_POLICY_EVAL_CTX_get0_cert(const CT_POLICY_EVAL_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CT_POLICY_EVAL_CTX*
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: CT_POLICY_EVAL_CTX_get0_issuer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: '* CT_POLICY_EVAL_CTX_get0_issuer(const CT_POLICY_EVAL_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CT_POLICY_EVAL_CTX*
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: CT_POLICY_EVAL_CTX_get0_log_store
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CTLOG_STORE
    signature: '*CT_POLICY_EVAL_CTX_get0_log_store(const CT_POLICY_EVAL_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CT_POLICY_EVAL_CTX*
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: CT_POLICY_EVAL_CTX_get_time
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: CT_POLICY_EVAL_CTX_get_time(const CT_POLICY_EVAL_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: l2n8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c:55,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c:56,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c:58,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c:65,1
    - Dst: l2n3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c:77,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c:79,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c:81,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c:86,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c:87,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c:90,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - ctx
    - sctx
    - sct
    argTypes:
    - EVP_MD_CTX*
    - SCT_CTX*
    - SCT*
    constantsTouched: []
    func_position:
      end: 94
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 94
    functionName: sct_ctx_update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c
    functionUses: 0
    functionsReached:
    - l2n3
    - EVP_DigestUpdate
    - s2n
    - l2n8
    linkageType: ''
    returnType: int
    signature: sct_ctx_update(EVP_MD_CTX *ctx, const SCT_CTX *sctx, const SCT *sct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SCT_is_complete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c:101,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c:104,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c:108,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c:112,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c:113,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c:117,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c:121,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c:125,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c:125,1
    - Dst: sct_ctx_update
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c:128,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c:132,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c:135,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c:138,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 2
    argNames:
    - sctx
    - sct
    argTypes:
    - SCT_CTX*
    - SCT*
    constantsTouched: []
    func_position:
      end: 140
      start: 96
    functionDepth: 4
    functionLinenumber: 96
    functionLinenumberEnd: 140
    functionName: SCT_CTX_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c
    functionUses: 0
    functionsReached:
    - memcmp
    - EVP_DigestVerifyFinal
    - CTerr
    - SCT_is_complete
    - EVP_sha256
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - sct_ctx_update
    - EVP_DigestVerifyInit
    linkageType: ''
    returnType: int
    signature: SCT_CTX_verify(const SCT_CTX *sctx, const SCT *sct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:24,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:26,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - sct
    - out
    argTypes:
    - SCT*
    - BIO*
    constantsTouched: []
    func_position:
      end: 27
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 27
    functionName: SCT_signature_algorithms_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - OBJ_nid2ln
    linkageType: ''
    returnType: void
    signature: SCT_signature_algorithms_print(const SCT *sct, BIO *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_GENERALIZEDTIME_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:31,1
    - Dst: ASN1_GENERALIZEDTIME_adj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:36,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:43,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:44,1
    - Dst: ASN1_GENERALIZEDTIME_set_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:45,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:46,1
    - Dst: ASN1_GENERALIZEDTIME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - timestamp
    - out
    argTypes:
    - uint64_t
    - BIO*
    constantsTouched: []
    func_position:
      end: 48
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 48
    functionName: timestamp_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c
    functionUses: 0
    functionsReached:
    - ASN1_GENERALIZEDTIME_set_string
    - BIO_snprintf
    - ASN1_GENERALIZEDTIME_print
    - ASN1_GENERALIZEDTIME_free
    - ASN1_GENERALIZEDTIME_adj
    - ASN1_GENERALIZEDTIME_new
    - ASN1_STRING_get0_data
    linkageType: ''
    returnType: void
    signature: timestamp_print(uint64_t timestamp, BIO *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SCT_get_validation_status
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    constantsTouched: []
    func_position:
      end: 68
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 68
    functionName: SCT_validation_status_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c
    functionUses: 0
    functionsReached:
    - SCT_get_validation_status
    linkageType: ''
    returnType: char
    signature: '*SCT_validation_status_string(const SCT *sct)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CTLOG_STORE_get0_log_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:76,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:80,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:81,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:84,1
    - Dst: BIO_hex_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:85,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:89,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:92,1
    - Dst: CTLOG_get0_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:93,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:96,1
    - Dst: BIO_hex_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:97,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:99,1
    - Dst: timestamp_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:100,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:102,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:104,1
    - Dst: BIO_hex_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:106,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:108,1
    - Dst: SCT_signature_algorithms_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:109,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:110,1
    - Dst: BIO_hex_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 4
    argNames:
    - sct
    - out
    - indent
    - log_store
    argTypes:
    - SCT*
    - BIO*
    - int
    - CTLOG_STORE*
    constantsTouched: []
    func_position:
      end: 112
      start: 70
    functionDepth: 4
    functionLinenumber: 70
    functionLinenumberEnd: 112
    functionName: SCT_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c
    functionUses: 0
    functionsReached:
    - CTLOG_get0_name
    - SCT_signature_algorithms_print
    - timestamp_print
    - BIO_hex_string
    - BIO_printf
    - CTLOG_STORE_get0_log_by_id
    linkageType: ''
    returnType: void
    signature: "SCT_print(const SCT *sct, BIO *out, int indent,\n               const
      CTLOG_STORE *log_store)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_SCT_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:121,1
    - Dst: SCT_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:123,1
    - Dst: sk_SCT_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:124,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - sct_list
    - out
    - indent
    - separator
    - log_store
    argTypes:
    - STACK_OF*
    - BIO*
    - int
    - char*
    - CTLOG_STORE*
    constantsTouched: []
    func_position:
      end: 127
      start: 114
    functionDepth: 5
    functionLinenumber: 114
    functionLinenumberEnd: 127
    functionName: SCT_LIST_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c
    functionUses: 0
    functionsReached:
    - SCT_print
    - BIO_printf
    - sk_SCT_num
    - sk_SCT_value
    linkageType: ''
    returnType: void
    signature: "SCT_LIST_print(const STACK_OF(SCT) *sct_list, BIO *out, int indent,\n
      \                   const char *separator, const CTLOG_STORE *log_store)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_err.c:81,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_err.c:82,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_err.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 87
    functionName: ERR_load_CT_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_err.c
    functionUses: 0
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_CT_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:24,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 34
    functionName: SCT_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - CTerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: SCT
    signature: '*SCT_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:41,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:42,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:43,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:44,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: SCT_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: SCT_free(SCT *sct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sct
    - version
    argTypes:
    - SCT*
    - sct_version_t
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: SCT_set_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - CTerr
    linkageType: ''
    returnType: int
    signature: SCT_set_version(SCT *sct, sct_version_t version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - sct
    - entry_type
    argTypes:
    - SCT*
    - ct_log_entry_type_t
    constantsTouched: []
    func_position:
      end: 77
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 77
    functionName: SCT_set_log_entry_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - CTerr
    linkageType: ''
    returnType: int
    signature: SCT_set_log_entry_type(SCT *sct, ct_log_entry_type_t entry_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:82,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - sct
    - log_id
    - log_id_len
    argTypes:
    - SCT*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 91
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 91
    functionName: SCT_set0_log_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - CTerr
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: SCT_set0_log_id(SCT *sct, unsigned char *log_id, size_t log_id_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:96,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:100,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:106,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:108,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - sct
    - log_id
    - log_id_len
    argTypes:
    - SCT*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 114
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 114
    functionName: SCT_set1_log_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - CTerr
    - OPENSSL_free
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: SCT_set1_log_id(SCT *sct, const unsigned char *log_id, size_t log_id_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sct
    - timestamp
    argTypes:
    - SCT*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: SCT_set_timestamp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SCT_set_timestamp(SCT *sct, uint64_t timestamp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - sct
    - nid
    argTypes:
    - SCT*
    - int
    constantsTouched: []
    func_position:
      end: 140
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 140
    functionName: SCT_set_signature_nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - CTerr
    linkageType: ''
    returnType: int
    signature: SCT_set_signature_nid(SCT *sct, int nid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - sct
    - ext
    - ext_len
    argTypes:
    - SCT*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: SCT_set0_extensions
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: SCT_set0_extensions(SCT *sct, unsigned char *ext, size_t ext_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:152,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:158,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - sct
    - ext
    - ext_len
    argTypes:
    - SCT*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 166
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 166
    functionName: SCT_set1_extensions
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - CTerr
    - OPENSSL_free
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: SCT_set1_extensions(SCT *sct, const unsigned char *ext, size_t ext_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - sct
    - sig
    - sig_len
    argTypes:
    - SCT*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: SCT_set0_signature
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: SCT_set0_signature(SCT *sct, unsigned char *sig, size_t sig_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:178,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:184,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - sct
    - sig
    - sig_len
    argTypes:
    - SCT*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 192
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 192
    functionName: SCT_set1_signature
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - CTerr
    - OPENSSL_free
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: SCT_set1_signature(SCT *sct, const unsigned char *sig, size_t sig_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: SCT_get_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sct_version_t
    signature: SCT_get_version(const SCT *sct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: SCT_get_log_entry_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ct_log_entry_type_t
    signature: SCT_get_log_entry_type(const SCT *sct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sct
    - log_id
    argTypes:
    - SCT*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 208
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 208
    functionName: SCT_get0_log_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: SCT_get0_log_id(const SCT *sct, unsigned char **log_id)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: SCT_get_timestamp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: SCT_get_timestamp(const SCT *sct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    constantsTouched: []
    func_position:
      end: 230
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 230
    functionName: SCT_get_signature_nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SCT_get_signature_nid(const SCT *sct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sct
    - ext
    argTypes:
    - SCT*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: SCT_get0_extensions
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: SCT_get0_extensions(const SCT *sct, unsigned char **ext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sct
    - sig
    argTypes:
    - SCT*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: SCT_get0_signature
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: SCT_get0_signature(const SCT *sct, unsigned char **sig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SCT_signature_is_complete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    constantsTouched: []
    func_position:
      end: 254
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 254
    functionName: SCT_is_complete
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - SCT_signature_is_complete
    linkageType: ''
    returnType: int
    signature: SCT_is_complete(const SCT *sct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SCT_get_signature_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: SCT_signature_is_complete
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - SCT_get_signature_nid
    linkageType: ''
    returnType: int
    signature: SCT_signature_is_complete(const SCT *sct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: SCT_get_source
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sct_source_t
    signature: SCT_get_source(const SCT *sct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SCT_set_log_entry_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:274,1
    - Dst: SCT_set_log_entry_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - sct
    - source
    argTypes:
    - SCT*
    - sct_source_t
    constantsTouched: []
    func_position:
      end: 280
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 280
    functionName: SCT_set_source
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - SCT_set_log_entry_type
    linkageType: ''
    returnType: int
    signature: SCT_set_source(SCT *sct, sct_source_t source)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: SCT_get_validation_status
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: sct_validation_status_t
    signature: SCT_get_validation_status(const SCT *sct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CTLOG_STORE_get0_log_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:303,1
    - Dst: SCT_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:312,1
    - Dst: X509_PUBKEY_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:316,1
    - Dst: CTLOG_get0_public_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:316,1
    - Dst: SCT_CTX_set1_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:318,1
    - Dst: SCT_get_log_entry_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:321,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:329,1
    - Dst: X509_PUBKEY_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:331,1
    - Dst: SCT_CTX_set1_issuer_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:333,1
    - Dst: SCT_CTX_set_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:337,1
    - Dst: SCT_CTX_set1_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:357,1
    - Dst: SCT_CTX_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:360,1
    - Dst: X509_PUBKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:366,1
    - Dst: X509_PUBKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:367,1
    - Dst: SCT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:368,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 2
    argNames:
    - sct
    - ctx
    argTypes:
    - SCT*
    - CT_POLICY_EVAL_CTX*
    constantsTouched: []
    func_position:
      end: 371
      start: 287
    functionDepth: 7
    functionLinenumber: 287
    functionLinenumberEnd: 371
    functionName: SCT_validate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - SCT_CTX_new
    - X509_PUBKEY_free
    - X509_PUBKEY_set
    - X509_get0_pubkey
    - SCT_CTX_set1_issuer_pubkey
    - SCT_CTX_free
    - CTLOG_get0_public_key
    - SCT_CTX_set_time
    - SCT_CTX_set1_pubkey
    - SCT_CTX_verify
    - CTLOG_STORE_get0_log_by_id
    - SCT_CTX_set1_cert
    - SCT_get_log_entry_type
    linkageType: ''
    returnType: int
    signature: SCT_validate(SCT *sct, const CT_POLICY_EVAL_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_SCT_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:381,1
    - Dst: SCT_validate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c:386,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - scts
    - ctx
    argTypes:
    - STACK_OF*
    - CT_POLICY_EVAL_CTX*
    constantsTouched: []
    func_position:
      end: 393
      start: 373
    functionDepth: 8
    functionLinenumber: 373
    functionLinenumberEnd: 393
    functionName: SCT_LIST_validate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - SCT_validate
    - sk_SCT_value
    linkageType: ''
    returnType: int
    signature: SCT_LIST_validate(const STACK_OF(SCT) *scts, CT_POLICY_EVAL_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:59,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: ctlog_store_load_ctx_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - CTerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: CTLOG_STORE_LOAD_CTX
    signature: '*ctlog_store_load_ctx_new()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CTLOG_STORE_LOAD_CTX*
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: ctlog_store_load_ctx_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: ctlog_store_load_ctx_free(CTLOG_STORE_LOAD_CTX* ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:81,1
    - Dst: SHA256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:85,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - pkey
    - log_id
    argTypes:
    - EVP_PKEY*
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 90
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 90
    functionName: ct_v1_log_id_from_pkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - CTerr
    - OPENSSL_free
    - SHA256
    linkageType: ''
    returnType: int
    signature: "ct_v1_log_id_from_pkey(EVP_PKEY *pkey,\n                                  unsigned
      char log_id[CT_V1_HASHLEN])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:94,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:97,1
    - Dst: sk_CTLOG_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:101,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 109
    functionName: CTLOG_STORE_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - CTerr
    - OPENSSL_free
    - sk_CTLOG_new_null
    - OPENSSL_zalloc
    linkageType: ''
    returnType: CTLOG_STORE
    signature: '*CTLOG_STORE_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_CTLOG_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:114,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - store
    argTypes:
    - CTLOG_STORE*
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: CTLOG_STORE_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - sk_CTLOG_pop_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: CTLOG_STORE_free(CTLOG_STORE *store)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:125,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:129,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:131,1
    - Dst: CTLOG_new_from_base64
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ct_log
    - conf
    - section
    argTypes:
    - CTLOG**
    - CONF*
    - char*
    constantsTouched: []
    func_position:
      end: 136
      start: 119
    functionDepth: 8
    functionLinenumber: 119
    functionLinenumberEnd: 136
    functionName: ctlog_new_from_conf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - CTerr
    - CTLOG_new_from_base64
    - NCONF_get_string
    linkageType: ''
    returnType: int
    signature: ctlog_new_from_conf(CTLOG **ct_log, const CONF *conf, const char *section)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CTLOG_STORE_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - store
    argTypes:
    - CTLOG_STORE*
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: CTLOG_STORE_load_default_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - CTLOG_STORE_load_file
    linkageType: ''
    returnType: int
    signature: CTLOG_STORE_load_default_file(CTLOG_STORE *store)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strndup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:167,1
    - Dst: ctlog_new_from_conf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:171,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:172,1
    - Dst: sk_CTLOG_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:184,1
    - Dst: CTLOG_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:190,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:191,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - log_name
    - log_name_len
    - arg
    argTypes:
    - char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 193
      start: 154
    functionDepth: 9
    functionLinenumber: 154
    functionLinenumberEnd: 193
    functionName: ctlog_store_load_log
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strndup
    - CTerr
    - ctlog_new_from_conf
    - sk_CTLOG_push
    - OPENSSL_free
    - CTLOG_free
    linkageType: ''
    returnType: int
    signature: "ctlog_store_load_log(const char *log_name, int log_name_len,\n                                void
      *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ctlog_store_load_ctx_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:199,1
    - Dst: NCONF_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:202,1
    - Dst: NCONF_load
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:206,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:207,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:211,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:213,1
    - Dst: CONF_parse_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:217,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:219,1
    - Dst: NCONF_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:225,1
    - Dst: ctlog_store_load_ctx_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:226,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - store
    - file
    argTypes:
    - CTLOG_STORE*
    - char*
    constantsTouched: []
    func_position:
      end: 228
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 228
    functionName: CTLOG_STORE_load_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c
    functionUses: 1
    functionsReached:
    - NCONF_load
    - CTerr
    - ctlog_store_load_ctx_new
    - CONF_parse_list
    - NCONF_free
    - NCONF_new
    - ctlog_store_load_ctx_free
    - NCONF_get_string
    linkageType: ''
    returnType: int
    signature: CTLOG_STORE_load_file(CTLOG_STORE *store, const char *file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:237,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:240,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:244,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:246,1
    - Dst: ct_v1_log_id_from_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:250,1
    - Dst: CTLOG_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:256,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - public_key
    - name
    argTypes:
    - EVP_PKEY*
    - char*
    constantsTouched: []
    func_position:
      end: 258
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 258
    functionName: CTLOG_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c
    functionUses: 1
    functionsReached:
    - ct_v1_log_id_from_pkey
    - CTerr
    - OPENSSL_strdup
    - OPENSSL_zalloc
    - CTLOG_free
    linkageType: ''
    returnType: CTLOG
    signature: '*CTLOG_new(EVP_PKEY *public_key, const char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:264,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:265,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - log
    argTypes:
    - CTLOG*
    constantsTouched: []
    func_position:
      end: 268
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 268
    functionName: CTLOG_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: CTLOG_free(CTLOG *log)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - log
    argTypes:
    - CTLOG*
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: CTLOG_get0_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*CTLOG_get0_name(const CTLOG *log)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - log
    - log_id
    - log_id_len
    argTypes:
    - CTLOG*
    - uint8_t**
    - size_t*
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: CTLOG_get0_log_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "CTLOG_get0_log_id(const CTLOG *log, const uint8_t **log_id,\n                       size_t
      *log_id_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - log
    argTypes:
    - CTLOG*
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: CTLOG_get0_public_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*CTLOG_get0_public_key(const CTLOG *log)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_CTLOG_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:297,1
    - Dst: sk_CTLOG_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:298,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - store
    - log_id
    - log_id_len
    argTypes:
    - CTLOG_STORE*
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 304
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 304
    functionName: CTLOG_STORE_get0_log_by_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c
    functionUses: 2
    functionsReached:
    - sk_CTLOG_num
    - sk_CTLOG_value
    - memcmp
    linkageType: ''
    returnType: CTLOG
    signature: "*CTLOG_STORE_get0_log_by_id(const CTLOG_STORE *store,\n                                        const
      uint8_t *log_id,\n                                        size_t log_id_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:31,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:42,1
    - Dst: SCT_get_signature_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:50,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:51,1
    - Dst: n2s
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:55,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:58,1
    - Dst: SCT_set1_signature
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - sct
    - in
    - len
    argTypes:
    - SCT*
    - unsigned char**
    - size_t
    constantsTouched: []
    func_position:
      end: 68
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 68
    functionName: o2i_SCT_signature
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c
    functionUses: 1
    functionsReached:
    - CTerr
    - n2s
    - SCT_get_signature_nid
    - SCT_set1_signature
    linkageType: ''
    returnType: int
    signature: o2i_SCT_signature(SCT *sct, const unsigned char **in, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:76,1
    - Dst: SCT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:80,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:99,1
    - Dst: BUF_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:104,1
    - Dst: n2l8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:110,1
    - Dst: n2s
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:112,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:114,1
    - Dst: BUF_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:118,1
    - Dst: o2i_SCT_signature
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:126,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:128,1
    - Dst: BUF_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:135,1
    - Dst: SCT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:143,1
    - Dst: SCT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:149,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 3
    argNames:
    - psct
    - in
    - len
    argTypes:
    - SCT**
    - unsigned char**
    - size_t
    constantsTouched: []
    func_position:
      end: 151
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 151
    functionName: o2i_SCT
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c
    functionUses: 0
    functionsReached:
    - n2l8
    - o2i_SCT_signature
    - CTerr
    - BUF_memdup
    - SCT_free
    - SCT_new
    - n2s
    linkageType: ''
    returnType: SCT
    signature: '*o2i_SCT(SCT **psct, const unsigned char **in, size_t len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SCT_signature_is_complete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:158,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:159,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:164,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:180,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:182,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:190,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:191,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:196,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - sct
    - out
    argTypes:
    - SCT*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 198
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 198
    functionName: i2o_SCT_signature
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c
    functionUses: 0
    functionsReached:
    - s2n
    - CTerr
    - SCT_signature_is_complete
    - memcpy
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: i2o_SCT_signature(const SCT *sct, unsigned char **out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SCT_is_complete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:205,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:206,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:227,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:229,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:237,1
    - Dst: l2n8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:239,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:240,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:242,1
    - Dst: i2o_SCT_signature
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:245,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:248,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:253,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 2
    argNames:
    - sct
    - out
    argTypes:
    - SCT*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 255
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 255
    functionName: i2o_SCT
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c
    functionUses: 0
    functionsReached:
    - s2n
    - CTerr
    - SCT_is_complete
    - memcpy
    - OPENSSL_free
    - i2o_SCT_signature
    - OPENSSL_malloc
    - l2n8
    linkageType: ''
    returnType: int
    signature: i2o_SCT(const SCT *sct, unsigned char **out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2o_SCT_LIST
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:329,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:330,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:333,1
    - Dst: CTerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:334,1
    - Dst: sk_SCT_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:343,1
    - Dst: i2o_SCT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:347,1
    - Dst: sk_SCT_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:347,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:349,1
    - Dst: i2o_SCT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:351,1
    - Dst: sk_SCT_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:351,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:362,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:370,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - STACK_OF*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 374
      start: 321
    functionDepth: 4
    functionLinenumber: 321
    functionLinenumberEnd: 374
    functionName: i2o_SCT_LIST
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c
    functionUses: 1
    functionsReached:
    - s2n
    - sk_SCT_num
    - CTerr
    - i2o_SCT
    - i2o_SCT_LIST
    - OPENSSL_free
    - OPENSSL_malloc
    - sk_SCT_value
    linkageType: ''
    returnType: int
    signature: i2o_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2o_SCT_LIST
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:401,1
    - Dst: i2d_ASN1_OCTET_STRING
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:404,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - a
    - out
    argTypes:
    - STACK_OF*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 407
      start: 395
    functionDepth: 5
    functionLinenumber: 395
    functionLinenumberEnd: 407
    functionName: i2d_SCT_LIST
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - i2d_ASN1_OCTET_STRING
    - i2o_SCT_LIST
    linkageType: ''
    returnType: int
    signature: i2d_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_x509v3.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - method
    - val
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: i2s_poison
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_x509v3.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    linkageType: ''
    returnType: char
    signature: '*i2s_poison(const X509V3_EXT_METHOD *method, void *val)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_NULL_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_x509v3.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - method
    - ctx
    - str
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: s2i_poison
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_x509v3.c
    functionUses: 0
    functionsReached:
    - ASN1_NULL_new
    linkageType: ''
    returnType: void
    signature: '*s2i_poison(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx, const
      char *str)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FIPS_set_error_callbacks
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:47,1
    - Dst: ERR_load_ERR_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:50,1
    - Dst: ERR_load_BN_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:51,1
    - Dst: ERR_load_RSA_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:53,1
    - Dst: ERR_load_DH_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:56,1
    - Dst: ERR_load_EVP_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:58,1
    - Dst: ERR_load_BUF_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:59,1
    - Dst: ERR_load_OBJ_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:60,1
    - Dst: ERR_load_PEM_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:61,1
    - Dst: ERR_load_DSA_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:63,1
    - Dst: ERR_load_X509_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:65,1
    - Dst: ERR_load_ASN1_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:66,1
    - Dst: ERR_load_CONF_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:67,1
    - Dst: ERR_load_CRYPTO_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:68,1
    - Dst: ERR_load_COMP_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:70,1
    - Dst: ERR_load_EC_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:73,1
    - Dst: ERR_load_BIO_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:76,1
    - Dst: ERR_load_PKCS7_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:77,1
    - Dst: ERR_load_X509V3_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:78,1
    - Dst: ERR_load_PKCS12_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:79,1
    - Dst: ERR_load_RAND_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:80,1
    - Dst: ERR_load_DSO_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:81,1
    - Dst: ERR_load_TS_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:83,1
    - Dst: ERR_load_ENGINE_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:86,1
    - Dst: ERR_load_OCSP_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:89,1
    - Dst: ERR_load_UI_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:92,1
    - Dst: ERR_load_FIPS_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:95,1
    - Dst: ERR_load_CMS_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:98,1
    - Dst: ERR_load_CT_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:101,1
    - Dst: ERR_load_ASYNC_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:103,1
    - Dst: ERR_load_KDF_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c:105,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 109
    functionName: err_load_crypto_strings_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c
    functionUses: 1
    functionsReached:
    - ERR_load_X509_strings
    - ERR_load_UI_strings
    - ERR_load_CMS_strings
    - ERR_load_PKCS12_strings
    - ERR_load_ERR_strings
    - ERR_load_CT_strings
    - ERR_load_BUF_strings
    - ERR_load_FIPS_strings
    - ERR_load_PKCS7_strings
    - ERR_load_BIO_strings
    - ERR_load_EVP_strings
    - ERR_load_DH_strings
    - ERR_load_KDF_strings
    - ERR_load_OBJ_strings
    - ERR_load_EC_strings
    - ERR_load_ASYNC_strings
    - ERR_load_CONF_strings
    - ERR_load_TS_strings
    - ERR_load_ENGINE_strings
    - ERR_load_X509V3_strings
    - ERR_load_OCSP_strings
    - ERR_load_DSA_strings
    - ERR_load_DSO_strings
    - ERR_load_CRYPTO_strings
    - ERR_load_ASN1_strings
    - FIPS_set_error_callbacks
    - ERR_load_RAND_strings
    - ERR_load_BN_strings
    - ERR_load_PEM_strings
    - ERR_load_RSA_strings
    - ERR_load_COMP_strings
    linkageType: ''
    returnType: int
    signature: err_load_crypto_strings_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_GET_LIB
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:147,1
    - Dst: ERR_GET_FUNC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - ERR_STRING_DATA*
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: err_string_data_hash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - ERR_GET_LIB
    - ERR_GET_FUNC
    linkageType: ''
    returnType: unsigned long
    signature: err_string_data_hash(const ERR_STRING_DATA *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ERR_STRING_DATA*
    - ERR_STRING_DATA*
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: err_string_data_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "err_string_data_cmp(const ERR_STRING_DATA *a,\n                               const
      ERR_STRING_DATA *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:161,1
    - Dst: lh_ERR_STRING_DATA_retrieve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:163,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - ERR_STRING_DATA*
    constantsTouched: []
    func_position:
      end: 167
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 167
    functionName: int_err_get_item
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_read_lock
    - lh_ERR_STRING_DATA_retrieve
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: ERR_STRING_DATA
    signature: '*int_err_get_item(const ERR_STRING_DATA *d)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:191,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:193,1
    - Dst: openssl_strerror_r
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:203,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:217,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 218
    functionName: build_SYS_str_reasons
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - openssl_strerror_r
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: build_SYS_str_reasons(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: err_clear_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:248,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - ERR_STATE*
    constantsTouched: []
    func_position:
      end: 251
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 251
    functionName: ERR_STATE_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - err_clear_data
    linkageType: ''
    returnType: void
    signature: ERR_STATE_free(ERR_STATE *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:255,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_init_crypto
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(do_err_strings_init)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: err_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: err_cleanup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:269,1
    - Dst: err_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:272,1
    - Dst: err_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:273,1
    - Dst: err_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:274,1
    - Dst: build_SYS_str_reasons
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:275,1
    - Dst: err_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 279
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 279
    functionName: ERR_load_ERR_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - err_load_strings
    - build_SYS_str_reasons
    - RUN_ONCE
    linkageType: ''
    returnType: int
    signature: ERR_load_ERR_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:283,1
    - Dst: lh_ERR_STRING_DATA_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:285,1
    - Dst: ERR_PACK
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:290,1
    - Dst: lh_ERR_STRING_DATA_insert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:291,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:294,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - lib
    - str
    argTypes:
    - int
    - ERR_STRING_DATA*
    constantsTouched: []
    func_position:
      end: 295
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 295
    functionName: err_load_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - lh_ERR_STRING_DATA_new
    - lh_ERR_STRING_DATA_insert
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    - ERR_PACK
    linkageType: ''
    returnType: void
    signature: err_load_strings(int lib, ERR_STRING_DATA *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_load_ERR_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:299,1
    - Dst: err_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - lib
    - str
    argTypes:
    - int
    - ERR_STRING_DATA*
    constantsTouched: []
    func_position:
      end: 303
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 303
    functionName: ERR_load_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 29
    functionsReached:
    - ERR_load_ERR_strings
    - err_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_strings(int lib, ERR_STRING_DATA *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:307,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:310,1
    - Dst: ERR_PACK
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:314,1
    - Dst: lh_ERR_STRING_DATA_delete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:315,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:318,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - lib
    - str
    argTypes:
    - int
    - ERR_STRING_DATA*
    constantsTouched: []
    func_position:
      end: 321
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 321
    functionName: ERR_unload_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 5
    functionsReached:
    - lh_ERR_STRING_DATA_delete
    - RUN_ONCE
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    - ERR_PACK
    linkageType: ''
    returnType: int
    signature: ERR_unload_strings(int lib, ERR_STRING_DATA *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:325,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:328,1
    - Dst: lh_ERR_STRING_DATA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:329,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 332
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 332
    functionName: err_free_strings_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - lh_ERR_STRING_DATA_free
    - RUN_ONCE
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: err_free_strings_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:346,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:351,1
    - Dst: strrchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:355,1
    - Dst: ERR_get_state
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:359,1
    - Dst: ERR_PACK
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:365,1
    - Dst: err_clear_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:368,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - lib
    - func
    - reason
    - file
    - line
    argTypes:
    - int
    - int
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 369
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 369
    functionName: ERR_put_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strrchr
    - strlen
    - ERR_PACK
    - ERR_get_state
    - err_clear_data
    linkageType: ''
    returnType: void
    signature: ERR_put_error(int lib, int func, int reason, const char *file, int
      line)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_state
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:376,1
    - Dst: err_clear
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 382
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 382
    functionName: ERR_clear_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 31
    functionsReached:
    - ERR_get_state
    - err_clear
    linkageType: ''
    returnType: void
    signature: ERR_clear_error(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 387
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 387
    functionName: ERR_get_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 2
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: ERR_get_error(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char**
    - int*
    constantsTouched: []
    func_position:
      end: 392
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 392
    functionName: ERR_get_error_line
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: ERR_get_error_line(const char **file, int *line)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - file
    - line
    - data
    - flags
    argTypes:
    - char**
    - int*
    - char**
    - int*
    constantsTouched: []
    func_position:
      end: 398
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 398
    functionName: ERR_get_error_line_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: "ERR_get_error_line_data(const char **file, int *line,\n                                      const
      char **data, int *flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: ERR_peek_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 6
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: ERR_peek_error(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char**
    - int*
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: ERR_peek_error_line
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: ERR_peek_error_line(const char **file, int *line)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - file
    - line
    - data
    - flags
    argTypes:
    - char**
    - int*
    - char**
    - int*
    constantsTouched: []
    func_position:
      end: 414
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 414
    functionName: ERR_peek_error_line_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: "ERR_peek_error_line_data(const char **file, int *line,\n                                       const
      char **data, int *flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 419
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 419
    functionName: ERR_peek_last_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 4
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: ERR_peek_last_error(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char**
    - int*
    constantsTouched: []
    func_position:
      end: 424
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 424
    functionName: ERR_peek_last_error_line
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: ERR_peek_last_error_line(const char **file, int *line)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - file
    - line
    - data
    - flags
    argTypes:
    - char**
    - int*
    - char**
    - int*
    constantsTouched: []
    func_position:
      end: 430
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 430
    functionName: ERR_peek_last_error_line_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: "ERR_peek_last_error_line_data(const char **file, int *line,\n                                            const
      char **data, int *flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_state
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:440,1
    - Dst: err_clear_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:482,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 6
    argNames:
    - inc
    - top
    - file
    - line
    - data
    - flags
    argTypes:
    - int
    - int
    - char**
    - int*
    - char**
    - int*
    constantsTouched: []
    func_position:
      end: 496
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 496
    functionName: get_error_values
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 9
    functionsReached:
    - ERR_get_state
    - err_clear_data
    linkageType: ''
    returnType: unsigned long
    signature: "get_error_values(int inc, int top, const char **file,\n                                      int
      *line, const char **data,\n                                      int *flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_GET_LIB
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:507,1
    - Dst: ERR_GET_FUNC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:508,1
    - Dst: ERR_GET_REASON
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:509,1
    - Dst: ERR_lib_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:511,1
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:512,1
    - Dst: ERR_reason_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:513,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:516,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:518,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:520,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:522,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:524,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - e
    - buf
    - len
    argTypes:
    - unsigned long
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 548
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 548
    functionName: ERR_error_string_n
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 2
    functionsReached:
    - ERR_GET_LIB
    - BIO_snprintf
    - ERR_reason_error_string
    - ERR_lib_error_string
    - strlen
    - ERR_GET_FUNC
    - ERR_func_error_string
    - ERR_GET_REASON
    linkageType: ''
    returnType: void
    signature: ERR_error_string_n(unsigned long e, char *buf, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_error_string_n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - e
    - ret
    argTypes:
    - unsigned long
    - char*
    constantsTouched: []
    func_position:
      end: 563
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 563
    functionName: ERR_error_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 3
    functionsReached:
    - ERR_error_string_n
    linkageType: ''
    returnType: char
    signature: '*ERR_error_string(unsigned long e, char *ret)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:570,1
    - Dst: ERR_GET_LIB
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:574,1
    - Dst: ERR_PACK
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:575,1
    - Dst: int_err_get_item
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - e
    argTypes:
    - unsigned long
    constantsTouched: []
    func_position:
      end: 578
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 578
    functionName: ERR_lib_error_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - ERR_GET_LIB
    - int_err_get_item
    - RUN_ONCE
    - ERR_PACK
    linkageType: ''
    returnType: char
    signature: '*ERR_lib_error_string(unsigned long e)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:585,1
    - Dst: ERR_GET_LIB
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:589,1
    - Dst: ERR_GET_FUNC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:590,1
    - Dst: ERR_PACK
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:591,1
    - Dst: int_err_get_item
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - e
    argTypes:
    - unsigned long
    constantsTouched: []
    func_position:
      end: 594
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 594
    functionName: ERR_func_error_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 25
    functionsReached:
    - ERR_GET_LIB
    - RUN_ONCE
    - ERR_GET_FUNC
    - ERR_PACK
    - int_err_get_item
    linkageType: ''
    returnType: char
    signature: '*ERR_func_error_string(unsigned long e)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:601,1
    - Dst: ERR_GET_LIB
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:605,1
    - Dst: ERR_GET_REASON
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:606,1
    - Dst: ERR_PACK
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:607,1
    - Dst: int_err_get_item
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:608,1
    - Dst: ERR_PACK
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:610,1
    - Dst: int_err_get_item
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - e
    argTypes:
    - unsigned long
    constantsTouched: []
    func_position:
      end: 614
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 614
    functionName: ERR_reason_error_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - ERR_GET_LIB
    - RUN_ONCE
    - int_err_get_item
    - ERR_PACK
    - ERR_GET_REASON
    linkageType: ''
    returnType: char
    signature: '*ERR_reason_error_string(unsigned long e)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_state
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:618,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:622,1
    - Dst: ERR_STATE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 624
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 624
    functionName: err_delete_thread_state
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_set_local
    - ERR_get_state
    - ERR_STATE_free
    linkageType: ''
    returnType: void
    signature: err_delete_thread_state(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dummy
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 629
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 629
    functionName: ERR_remove_thread_state
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ERR_remove_thread_state(void *dummy)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pid
    argTypes:
    - unsigned long
    constantsTouched: []
    func_position:
      end: 635
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 635
    functionName: ERR_remove_state
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ERR_remove_state(unsigned long pid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 641
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 641
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_init_local
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(err_do_init)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:647,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:650,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:653,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:657,1
    - Dst: ERR_STATE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:658,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:663,1
    - Dst: ossl_init_thread_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:664,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 668
      start: 643
    functionDepth: 2
    functionLinenumber: 643
    functionLinenumberEnd: 668
    functionName: ERR_get_state
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 4
    functionsReached:
    - CRYPTO_THREAD_set_local
    - CRYPTO_THREAD_get_local
    - RUN_ONCE
    - ERR_STATE_free
    - OPENSSL_zalloc
    - ossl_init_thread_start
    - OPENSSL_init_crypto
    linkageType: ''
    returnType: ERR_STATE
    signature: '*ERR_get_state(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:674,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:678,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 682
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 682
    functionName: ERR_get_next_error_library
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 10
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - RUN_ONCE
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: ERR_get_next_error_library(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_state
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:689,1
    - Dst: err_clear_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - flags
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 698
      start: 684
    functionDepth: 3
    functionLinenumber: 684
    functionLinenumberEnd: 698
    functionName: ERR_set_error_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - ERR_get_state
    - err_clear_data
    linkageType: ''
    returnType: void
    signature: ERR_set_error_data(char *data, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:703,1
    - Dst: ERR_add_error_vdata
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:704,1
    - Dst: va_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 706
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 706
    functionName: ERR_add_error_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 53
    functionsReached:
    - va_end
    - va_start
    - ERR_add_error_vdata
    linkageType: ''
    returnType: void
    signature: ERR_add_error_data(int num, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:714,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:721,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:724,1
    - Dst: OPENSSL_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:727,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:729,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:734,1
    - Dst: ERR_set_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:737,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - num
    - args
    argTypes:
    - int
    - va_list
    constantsTouched: []
    func_position:
      end: 738
      start: 708
    functionDepth: 4
    functionLinenumber: 708
    functionLinenumberEnd: 738
    functionName: ERR_add_error_vdata
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - OPENSSL_realloc
    - va_arg
    - ERR_set_error_data
    - strlen
    - OPENSSL_free
    - OPENSSL_strlcat
    - OPENSSL_malloc
    linkageType: ''
    returnType: void
    signature: ERR_add_error_vdata(int num, va_list args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_state
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 750
      start: 740
    functionDepth: 3
    functionLinenumber: 740
    functionLinenumberEnd: 750
    functionName: ERR_set_mark
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 4
    functionsReached:
    - ERR_get_state
    linkageType: ''
    returnType: int
    signature: ERR_set_mark(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_state
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:756,1
    - Dst: err_clear
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c:760,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 770
      start: 752
    functionDepth: 3
    functionLinenumber: 752
    functionLinenumberEnd: 770
    functionName: ERR_pop_to_mark
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
    functionUses: 4
    functionsReached:
    - ERR_get_state
    - err_clear
    linkageType: ''
    returnType: int
    signature: ERR_pop_to_mark(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_prn.c:35,1
    - Dst: ERR_get_error_line_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_prn.c:37,1
    - Dst: ERR_error_string_n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_prn.c:38,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_prn.c:39,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_prn.c:41,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_prn.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - u
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 44
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 44
    functionName: ERR_print_errors_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_prn.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_get_current_id
    - BIO_snprintf
    - ERR_get_error_line_data
    - cb
    - strlen
    - ERR_error_string_n
    linkageType: ''
    returnType: void
    signature: "ERR_print_errors_cb(int (*cb) (const char *str, size_t len, void *u),\n
      \                        void *u)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_prn.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - str
    - len
    - bp
    argTypes:
    - char*
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: print_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_prn.c
    functionUses: 0
    functionsReached:
    - BIO_write
    linkageType: ''
    returnType: int
    signature: print_bio(const char *str, size_t len, void *bp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_print_errors_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_prn.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bp
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 4
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: ERR_print_errors
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_prn.c
    functionUses: 2
    functionsReached:
    - ERR_print_errors_cb
    linkageType: ''
    returnType: void
    signature: ERR_print_errors(BIO *bp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_prn.c:59,1
    - Dst: ERR_print_errors_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_prn.c:63,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_prn.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 4
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: ERR_print_errors_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_prn.c
    functionUses: 2
    functionsReached:
    - BIO_new_fp
    - ERR_print_errors_cb
    - BIO_free
    linkageType: ''
    returnType: void
    signature: ERR_print_errors_fp(FILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:30,1
    - Dst: TS_STATUS_INFO_print_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:31,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:33,1
    - Dst: TS_TST_INFO_print_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:35,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - bio
    - a
    argTypes:
    - BIO*
    - TS_RESP*
    constantsTouched: []
    func_position:
      end: 40
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 40
    functionName: TS_RESP_print_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - TS_TST_INFO_print_bio
    - TS_STATUS_INFO_print_bio
    linkageType: ''
    returnType: int
    signature: TS_RESP_print_bio(BIO *bio, TS_RESP *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:75,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:76,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:77,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:78,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:80,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:82,1
    - Dst: sk_ASN1_UTF8STRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:83,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:85,1
    - Dst: ASN1_STRING_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:86,1
    - Dst: sk_ASN1_UTF8STRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:86,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:87,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:90,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:92,1
    - Dst: ts_status_map_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:94,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:96,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:97,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - bio
    - a
    argTypes:
    - BIO*
    - TS_STATUS_INFO*
    constantsTouched: []
    func_position:
      end: 100
      start: 42
    functionDepth: 6
    functionLinenumber: 42
    functionLinenumberEnd: 100
    functionName: TS_STATUS_INFO_print_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c
    functionUses: 1
    functionsReached:
    - BIO_puts
    - sk_ASN1_UTF8STRING_num
    - sk_ASN1_UTF8STRING_value
    - ASN1_INTEGER_get
    - ASN1_STRING_print_ex
    - OSSL_NELEM
    - BIO_printf
    - ts_status_map_print
    linkageType: ''
    returnType: int
    signature: TS_STATUS_INFO_print_bio(BIO *bio, TS_STATUS_INFO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_BIT_STRING_get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:108,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:110,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - bio
    - a
    - v
    argTypes:
    - BIO*
    - struct status_map_st*
    - ASN1_BIT_STRING*
    constantsTouched: []
    func_position:
      end: 116
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 116
    functionName: ts_status_map_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    - ASN1_BIT_STRING_get_bit
    linkageType: ''
    returnType: int
    signature: "ts_status_map_print(BIO *bio, const struct status_map_st *a,\n                               const
      ASN1_BIT_STRING *v)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:125,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:126,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:128,1
    - Dst: TS_OBJ_print_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:129,1
    - Dst: TS_MSG_IMPRINT_print_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:131,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:133,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:135,1
    - Dst: TS_ASN1_INTEGER_print_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:137,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:138,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:140,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:141,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:142,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:144,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:146,1
    - Dst: ts_ACCURACY_print_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:148,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:149,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:151,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:153,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:155,1
    - Dst: TS_ASN1_INTEGER_print_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:157,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:158,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:160,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:162,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:164,1
    - Dst: i2v_GENERAL_NAME
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:165,1
    - Dst: X509V3_EXT_val_prn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:166,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:167,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:169,1
    - Dst: TS_ext_print_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:171,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 2
    argNames:
    - bio
    - a
    argTypes:
    - BIO*
    - TS_TST_INFO*
    constantsTouched: []
    func_position:
      end: 174
      start: 118
    functionDepth: 5
    functionLinenumber: 118
    functionLinenumberEnd: 174
    functionName: TS_TST_INFO_print_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c
    functionUses: 1
    functionsReached:
    - ASN1_GENERALIZEDTIME_print
    - STACK_OF
    - ts_ACCURACY_print_bio
    - X509V3_EXT_val_prn
    - TS_MSG_IMPRINT_print_bio
    - TS_ASN1_INTEGER_print_bio
    - ASN1_INTEGER_get
    - i2v_GENERAL_NAME
    - TS_ext_print_bio
    - BIO_printf
    - BIO_write
    - TS_OBJ_print_bio
    - sk_CONF_VALUE_pop_free
    linkageType: ''
    returnType: int
    signature: TS_TST_INFO_print_bio(BIO *bio, TS_TST_INFO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TS_ASN1_INTEGER_print_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:179,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:181,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:182,1
    - Dst: TS_ASN1_INTEGER_print_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:184,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:186,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:187,1
    - Dst: TS_ASN1_INTEGER_print_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:189,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:191,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - bio
    - a
    argTypes:
    - BIO*
    - TS_ACCURACY*
    constantsTouched: []
    func_position:
      end: 195
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 195
    functionName: ts_ACCURACY_print_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    - TS_ASN1_INTEGER_print_bio
    linkageType: ''
    returnType: int
    signature: ts_ACCURACY_print_bio(BIO *bio, const TS_ACCURACY *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:25,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:28,1
    - Dst: BN_bn2hex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:29,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:30,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:31,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:31,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:32,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - bio
    - num
    argTypes:
    - BIO*
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 37
      start: 19
    functionDepth: 6
    functionLinenumber: 19
    functionLinenumberEnd: 37
    functionName: TS_ASN1_INTEGER_print_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c
    functionUses: 2
    functionsReached:
    - BN_new
    - BN_free
    - ASN1_INTEGER_to_BN
    - strlen
    - BN_bn2hex
    - OPENSSL_free
    - BIO_write
    linkageType: ''
    returnType: int
    signature: TS_ASN1_INTEGER_print_bio(BIO *bio, const ASN1_INTEGER *num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2txt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:43,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bio
    - obj
    argTypes:
    - BIO*
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: TS_OBJ_print_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    - OBJ_obj2txt
    linkageType: ''
    returnType: int
    signature: TS_OBJ_print_bio(BIO *bio, const ASN1_OBJECT *obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:55,1
    - Dst: X509v3_get_ext_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:56,1
    - Dst: X509v3_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:58,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:59,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:60,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:62,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:63,1
    - Dst: X509V3_EXT_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:64,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:65,1
    - Dst: ASN1_STRING_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:66,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:66,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - bio
    - extensions
    argTypes:
    - BIO*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 72
      start: 49
    functionDepth: 4
    functionLinenumber: 49
    functionLinenumberEnd: 72
    functionName: TS_ext_print_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c
    functionUses: 1
    functionsReached:
    - X509_EXTENSION_get_data
    - X509v3_get_ext
    - i2a_ASN1_OBJECT
    - X509V3_EXT_print
    - ASN1_STRING_print
    - X509v3_get_ext_count
    - X509_EXTENSION_get_critical
    - BIO_printf
    - BIO_write
    - X509_EXTENSION_get_object
    linkageType: ''
    returnType: int
    signature: TS_ext_print_bio(BIO *bio, const STACK_OF(X509_EXTENSION) *extensions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:77,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - alg
    argTypes:
    - BIO*
    - X509_ALGOR*
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: TS_X509_ALGOR_print_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - OBJ_nid2ln
    linkageType: ''
    returnType: int
    signature: TS_X509_ALGOR_print_bio(BIO *bio, const X509_ALGOR *alg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TS_X509_ALGOR_print_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:85,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:87,1
    - Dst: BIO_dump_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:89,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:89,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - bio
    - a
    argTypes:
    - BIO*
    - TS_MSG_IMPRINT*
    constantsTouched: []
    func_position:
      end: 93
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 93
    functionName: TS_MSG_IMPRINT_print_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c
    functionUses: 1
    functionsReached:
    - BIO_dump_indent
    - TS_X509_ALGOR_print_bio
    - ASN1_STRING_length
    - BIO_printf
    - ASN1_STRING_get0_data
    linkageType: ''
    returnType: int
    signature: TS_MSG_IMPRINT_print_bio(BIO *bio, TS_MSG_IMPRINT *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_MSG_IMPRINT**
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: d2i_TS_MSG_IMPRINT_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: TS_MSG_IMPRINT
    signature: '*d2i_TS_MSG_IMPRINT_bio(BIO *bp, TS_MSG_IMPRINT **a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of_const
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_MSG_IMPRINT*
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: i2d_TS_MSG_IMPRINT_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of_const
    linkageType: ''
    returnType: int
    signature: i2d_TS_MSG_IMPRINT_bio(BIO *bp, TS_MSG_IMPRINT *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_MSG_IMPRINT**
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: d2i_TS_MSG_IMPRINT_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: TS_MSG_IMPRINT
    signature: '*d2i_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT **a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of_const
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_MSG_IMPRINT*
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: i2d_TS_MSG_IMPRINT_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of_const
    linkageType: ''
    returnType: int
    signature: i2d_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_REQ**
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: d2i_TS_REQ_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: TS_REQ
    signature: '*d2i_TS_REQ_bio(BIO *bp, TS_REQ **a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of_const
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_REQ*
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: i2d_TS_REQ_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of_const
    linkageType: ''
    returnType: int
    signature: i2d_TS_REQ_bio(BIO *bp, TS_REQ *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_REQ**
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: d2i_TS_REQ_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: TS_REQ
    signature: '*d2i_TS_REQ_fp(FILE *fp, TS_REQ **a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of_const
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_REQ*
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: i2d_TS_REQ_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of_const
    linkageType: ''
    returnType: int
    signature: i2d_TS_REQ_fp(FILE *fp, TS_REQ *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_TST_INFO**
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: d2i_TS_TST_INFO_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: TS_TST_INFO
    signature: '*d2i_TS_TST_INFO_bio(BIO *bp, TS_TST_INFO **a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of_const
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_TST_INFO*
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: i2d_TS_TST_INFO_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of_const
    linkageType: ''
    returnType: int
    signature: i2d_TS_TST_INFO_bio(BIO *bp, TS_TST_INFO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_TST_INFO**
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: d2i_TS_TST_INFO_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: TS_TST_INFO
    signature: '*d2i_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO **a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of_const
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_TST_INFO*
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: i2d_TS_TST_INFO_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of_const
    linkageType: ''
    returnType: int
    signature: i2d_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:137,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:141,1
    - Dst: TS_TST_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:144,1
    - Dst: PKCS7_to_TS_TST_INFO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:145,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:147,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:152,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_RESP*
    constantsTouched: []
    func_position:
      end: 157
      start: 133
    functionDepth: 5
    functionLinenumber: 133
    functionLinenumberEnd: 157
    functionName: ts_resp_set_tst_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - TS_TST_INFO_free
    - PKCS7_to_TS_TST_INFO
    - TSerr
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: int
    signature: ts_resp_set_tst_info(TS_RESP *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TS_TST_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:166,1
    - Dst: ts_resp_set_tst_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - op
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    constantsTouched: []
    func_position:
      end: 172
      start: 159
    functionDepth: 6
    functionLinenumber: 159
    functionLinenumberEnd: 172
    functionName: ts_resp_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - TS_TST_INFO_free
    - ts_resp_set_tst_info
    linkageType: ''
    returnType: int
    signature: "ts_resp_cb(int op, ASN1_VALUE **pval, const ASN1_ITEM *it,\n                      void
      *exarg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_RESP**
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: d2i_TS_RESP_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: TS_RESP
    signature: '*d2i_TS_RESP_bio(BIO *bp, TS_RESP **a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of_const
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_RESP*
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: i2d_TS_RESP_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of_const
    linkageType: ''
    returnType: int
    signature: i2d_TS_RESP_bio(BIO *bp, TS_RESP *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_RESP**
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: d2i_TS_RESP_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: TS_RESP
    signature: '*d2i_TS_RESP_fp(FILE *fp, TS_RESP **a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of_const
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_RESP*
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: i2d_TS_RESP_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of_const
    linkageType: ''
    returnType: int
    signature: i2d_TS_RESP_fp(FILE *fp, TS_RESP *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_type_is_signed
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:237,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:238,1
    - Dst: PKCS7_get_detached
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:241,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:242,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:247,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:248,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:253,1
    - Dst: d2i_TS_TST_INFO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c:258,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - token
    argTypes:
    - PKCS7*
    constantsTouched: []
    func_position:
      end: 259
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 259
    functionName: PKCS7_to_TS_TST_INFO
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c
    functionUses: 1
    functionsReached:
    - d2i_TS_TST_INFO
    - OBJ_obj2nid
    - PKCS7_get_detached
    - TSerr
    - PKCS7_type_is_signed
    linkageType: ''
    returnType: TS_TST_INFO
    signature: '*PKCS7_to_TS_TST_INFO(PKCS7 *token)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:48,1
    - Dst: PEM_read_bio_X509_AUX
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:50,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:53,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: TS_CONF_load_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - PEM_read_bio_X509_AUX
    - TSerr
    - BIO_new_file
    linkageType: ''
    returnType: X509
    signature: '*TS_CONF_load_cert(const char *file)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:91,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:93,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:96,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - file
    - pass
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 99
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 99
    functionName: TS_CONF_load_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_PrivateKey
    - BIO_free
    - TSerr
    - BIO_new_file
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*TS_CONF_load_key(const char *file, const char *pass)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:105,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - tag
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: ts_CONF_lookup_fail
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - ERR_add_error_data
    - TSerr
    linkageType: ''
    returnType: void
    signature: ts_CONF_lookup_fail(const char *name, const char *tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:111,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - tag
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: ts_CONF_invalid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - ERR_add_error_data
    - TSerr
    linkageType: ''
    returnType: void
    signature: ts_CONF_invalid(const char *name, const char *tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:118,1
    - Dst: ts_CONF_lookup_fail
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - conf
    - section
    argTypes:
    - CONF*
    - char*
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: TS_CONF_get_tsa_section
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - ts_CONF_lookup_fail
    - NCONF_get_string
    linkageType: ''
    returnType: char
    signature: '*TS_CONF_get_tsa_section(CONF *conf, const char *section)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ts_CONF_lookup_fail
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:131,1
    - Dst: TS_RESP_CTX_set_serial_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - conf
    - section
    - cb
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_serial_cb
    - TS_RESP_CTX*
    constantsTouched: []
    func_position:
      end: 139
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 139
    functionName: TS_CONF_set_serial
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - ts_CONF_lookup_fail
    - TS_RESP_CTX_set_serial_cb
    linkageType: ''
    returnType: int
    signature: "TS_CONF_set_serial(CONF *conf, const char *section, TS_serial_cb cb,\n
      \                      TS_RESP_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:149,1
    - Dst: TS_CONF_set_default_engine
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:151,1
    - Dst: ts_CONF_invalid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - conf
    - section
    - device
    argTypes:
    - CONF*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 158
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 158
    functionName: TS_CONF_set_crypto_device
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - TS_CONF_set_default_engine
    - ts_CONF_invalid
    - NCONF_get_string
    linkageType: ''
    returnType: int
    signature: "TS_CONF_set_crypto_device(CONF *conf, const char *section,\n                              const
      char *device)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:165,1
    - Dst: ENGINE_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:168,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:170,1
    - Dst: ENGINE_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:171,1
    - Dst: ENGINE_set_default
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:172,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:178,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:179,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:181,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 183
      start: 160
    functionDepth: 7
    functionLinenumber: 160
    functionLinenumberEnd: 183
    functionName: TS_CONF_set_default_engine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c
    functionUses: 1
    functionsReached:
    - ENGINE_ctrl
    - ENGINE_set_default
    - strcmp
    - ENGINE_by_id
    - TSerr
    - ENGINE_free
    - ERR_add_error_data
    linkageType: ''
    returnType: int
    signature: TS_CONF_set_default_engine(const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:194,1
    - Dst: ts_CONF_lookup_fail
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:196,1
    - Dst: TS_CONF_load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:200,1
    - Dst: TS_RESP_CTX_set_signer_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:202,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:207,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - conf
    - section
    - cert
    - ctx
    argTypes:
    - CONF*
    - char*
    - char*
    - TS_RESP_CTX*
    constantsTouched: []
    func_position:
      end: 209
      start: 187
    functionDepth: 5
    functionLinenumber: 187
    functionLinenumberEnd: 209
    functionName: TS_CONF_set_signer_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - TS_RESP_CTX_set_signer_cert
    - ts_CONF_lookup_fail
    - X509_free
    - TS_CONF_load_cert
    - NCONF_get_string
    linkageType: ''
    returnType: int
    signature: "TS_CONF_set_signer_cert(CONF *conf, const char *section,\n                            const
      char *cert, TS_RESP_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:215,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:219,1
    - Dst: TS_CONF_load_certs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:222,1
    - Dst: TS_RESP_CTX_set_certs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:224,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:229,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - conf
    - section
    - certs
    - ctx
    argTypes:
    - CONF*
    - char*
    - char*
    - TS_RESP_CTX*
    constantsTouched: []
    func_position:
      end: 231
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 231
    functionName: TS_CONF_set_certs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - sk_X509_pop_free
    - TS_RESP_CTX_set_certs
    - TS_CONF_load_certs
    - NCONF_get_string
    linkageType: ''
    returnType: int
    signature: "TS_CONF_set_certs(CONF *conf, const char *section, const char *certs,\n
      \                     TS_RESP_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:240,1
    - Dst: ts_CONF_lookup_fail
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:242,1
    - Dst: TS_CONF_load_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:245,1
    - Dst: TS_RESP_CTX_set_signer_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:247,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:252,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - conf
    - section
    - key
    - pass
    - ctx
    argTypes:
    - CONF*
    - char*
    - char*
    - char*
    - TS_RESP_CTX*
    constantsTouched: []
    func_position:
      end: 254
      start: 233
    functionDepth: 5
    functionLinenumber: 233
    functionLinenumberEnd: 254
    functionName: TS_CONF_set_signer_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - TS_CONF_load_key
    - ts_CONF_lookup_fail
    - TS_RESP_CTX_set_signer_key
    - EVP_PKEY_free
    - NCONF_get_string
    linkageType: ''
    returnType: int
    signature: "TS_CONF_set_signer_key(CONF *conf, const char *section,\n                           const
      char *key, const char *pass,\n                           TS_RESP_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:262,1
    - Dst: ts_CONF_lookup_fail
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:264,1
    - Dst: EVP_get_digestbyname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:267,1
    - Dst: ts_CONF_invalid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:269,1
    - Dst: TS_RESP_CTX_set_signer_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - conf
    - section
    - md
    - ctx
    argTypes:
    - CONF*
    - char*
    - char*
    - TS_RESP_CTX*
    constantsTouched: []
    func_position:
      end: 278
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 278
    functionName: TS_CONF_set_signer_digest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - ts_CONF_lookup_fail
    - TS_RESP_CTX_set_signer_digest
    - EVP_get_digestbyname
    - ts_CONF_invalid
    - NCONF_get_string
    linkageType: ''
    returnType: int
    signature: "TS_CONF_set_signer_digest(CONF *conf, const char *section,\n                              const
      char *md, TS_RESP_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:286,1
    - Dst: ts_CONF_lookup_fail
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:288,1
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:291,1
    - Dst: ts_CONF_invalid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:292,1
    - Dst: TS_RESP_CTX_set_def_policy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:295,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:300,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - conf
    - section
    - policy
    - ctx
    argTypes:
    - CONF*
    - char*
    - char*
    - TS_RESP_CTX*
    constantsTouched: []
    func_position:
      end: 302
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 302
    functionName: TS_CONF_set_def_policy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - OBJ_txt2obj
    - ts_CONF_lookup_fail
    - NCONF_get_string
    - ASN1_OBJECT_free
    - ts_CONF_invalid
    - TS_RESP_CTX_set_def_policy
    linkageType: ''
    returnType: int
    signature: "TS_CONF_set_def_policy(CONF *conf, const char *section,\n                           const
      char *policy, TS_RESP_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:308,1
    - Dst: X509V3_parse_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:312,1
    - Dst: ts_CONF_invalid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:313,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:316,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:317,1
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:321,1
    - Dst: ts_CONF_invalid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:322,1
    - Dst: TS_RESP_CTX_add_policy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:325,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:327,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:332,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - conf
    - section
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_RESP_CTX*
    constantsTouched: []
    func_position:
      end: 334
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 334
    functionName: TS_CONF_set_policies
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - TS_RESP_CTX_add_policy
    - sk_CONF_VALUE_value
    - OBJ_txt2obj
    - STACK_OF
    - sk_CONF_VALUE_num
    - X509V3_parse_list
    - ASN1_OBJECT_free
    - ts_CONF_invalid
    - sk_CONF_VALUE_pop_free
    linkageType: ''
    returnType: int
    signature: TS_CONF_set_policies(CONF *conf, const char *section, TS_RESP_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:340,1
    - Dst: ts_CONF_lookup_fail
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:344,1
    - Dst: X509V3_parse_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:347,1
    - Dst: ts_CONF_invalid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:348,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:351,1
    - Dst: ts_CONF_invalid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:352,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:355,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:356,1
    - Dst: EVP_get_digestbyname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:360,1
    - Dst: ts_CONF_invalid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:361,1
    - Dst: TS_RESP_CTX_add_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:364,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:370,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - conf
    - section
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_RESP_CTX*
    constantsTouched: []
    func_position:
      end: 372
      start: 336
    functionDepth: 3
    functionLinenumber: 336
    functionLinenumberEnd: 372
    functionName: TS_CONF_set_digests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - STACK_OF
    - sk_CONF_VALUE_num
    - ts_CONF_lookup_fail
    - X509V3_parse_list
    - TS_RESP_CTX_add_md
    - EVP_get_digestbyname
    - ts_CONF_invalid
    - sk_CONF_VALUE_pop_free
    linkageType: ''
    returnType: int
    signature: TS_CONF_set_digests(CONF *conf, const char *section, TS_RESP_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:379,1
    - Dst: X509V3_parse_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:382,1
    - Dst: ts_CONF_invalid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:383,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:386,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:387,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:388,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:390,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:391,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:393,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:394,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:396,1
    - Dst: ts_CONF_invalid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:398,1
    - Dst: TS_RESP_CTX_set_accuracy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:402,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:407,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 3
    argNames:
    - conf
    - section
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_RESP_CTX*
    constantsTouched: []
    func_position:
      end: 409
      start: 374
    functionDepth: 3
    functionLinenumber: 374
    functionLinenumberEnd: 409
    functionName: TS_CONF_set_accuracy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - strcmp
    - STACK_OF
    - atoi
    - sk_CONF_VALUE_num
    - TS_RESP_CTX_set_accuracy
    - X509V3_parse_list
    - ts_CONF_invalid
    - sk_CONF_VALUE_pop_free
    linkageType: ''
    returnType: int
    signature: TS_CONF_set_accuracy(CONF *conf, const char *section, TS_RESP_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_number_e
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:420,1
    - Dst: ts_CONF_invalid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:424,1
    - Dst: TS_RESP_CTX_set_clock_precision_digits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:428,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - conf
    - section
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_RESP_CTX*
    constantsTouched: []
    func_position:
      end: 434
      start: 411
    functionDepth: 3
    functionLinenumber: 411
    functionLinenumberEnd: 434
    functionName: TS_CONF_set_clock_precision_digits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - TS_RESP_CTX_set_clock_precision_digits
    - NCONF_get_number_e
    - ts_CONF_invalid
    linkageType: ''
    returnType: int
    signature: "TS_CONF_set_clock_precision_digits(CONF *conf, const char *section,\n
      \                                      TS_RESP_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:442,1
    - Dst: TS_RESP_CTX_add_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:443,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:444,1
    - Dst: ts_CONF_invalid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:445,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - conf
    - section
    - field
    - flag
    - ctx
    argTypes:
    - CONF*
    - char*
    - char*
    - int
    - TS_RESP_CTX*
    constantsTouched: []
    func_position:
      end: 451
      start: 436
    functionDepth: 3
    functionLinenumber: 436
    functionLinenumberEnd: 451
    functionName: ts_CONF_add_flag
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - TS_RESP_CTX_add_flags
    - ts_CONF_invalid
    - strcmp
    linkageType: ''
    returnType: int
    signature: "ts_CONF_add_flag(CONF *conf, const char *section,\n                            const
      char *field, int flag, TS_RESP_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ts_CONF_add_flag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - conf
    - section
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_RESP_CTX*
    constantsTouched: []
    func_position:
      end: 456
      start: 453
    functionDepth: 4
    functionLinenumber: 453
    functionLinenumberEnd: 456
    functionName: TS_CONF_set_ordering
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - ts_CONF_add_flag
    linkageType: ''
    returnType: int
    signature: TS_CONF_set_ordering(CONF *conf, const char *section, TS_RESP_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ts_CONF_add_flag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - conf
    - section
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_RESP_CTX*
    constantsTouched: []
    func_position:
      end: 461
      start: 458
    functionDepth: 4
    functionLinenumber: 458
    functionLinenumberEnd: 461
    functionName: TS_CONF_set_tsa_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - ts_CONF_add_flag
    linkageType: ''
    returnType: int
    signature: TS_CONF_set_tsa_name(CONF *conf, const char *section, TS_RESP_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ts_CONF_add_flag
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - conf
    - section
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_RESP_CTX*
    constantsTouched: []
    func_position:
      end: 468
      start: 463
    functionDepth: 4
    functionLinenumber: 463
    functionLinenumberEnd: 468
    functionName: TS_CONF_set_ess_cert_id_chain
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - ts_CONF_add_flag
    linkageType: ''
    returnType: int
    signature: "TS_CONF_set_ess_cert_id_chain(CONF *conf, const char *section,\n                                  TS_RESP_CTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:17,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 22
    functionName: TS_VERIFY_CTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached:
    - TSerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: TS_VERIFY_CTX
    signature: '*TS_VERIFY_CTX_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:26,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_VERIFY_CTX*
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: TS_VERIFY_CTX_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached:
    - memset
    - OPENSSL_assert
    linkageType: ''
    returnType: void
    signature: TS_VERIFY_CTX_init(TS_VERIFY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TS_VERIFY_CTX_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:35,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_VERIFY_CTX*
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: TS_VERIFY_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - TS_VERIFY_CTX_cleanup
    linkageType: ''
    returnType: void
    signature: TS_VERIFY_CTX_free(TS_VERIFY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - f
    argTypes:
    - TS_VERIFY_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: TS_VERIFY_CTX_add_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TS_VERIFY_CTX_add_flags(TS_VERIFY_CTX *ctx, int f)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - f
    argTypes:
    - TS_VERIFY_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: TS_VERIFY_CTX_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TS_VERIFY_CTX_set_flags(TS_VERIFY_CTX *ctx, int f)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - b
    argTypes:
    - TS_VERIFY_CTX*
    - BIO*
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: TS_VERIFY_CTX_set_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO
    signature: '*TS_VERIFY_CTX_set_data(TS_VERIFY_CTX *ctx, BIO *b)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - s
    argTypes:
    - TS_VERIFY_CTX*
    - X509_STORE*
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: TS_VERIFY_CTX_set_store
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE
    signature: '*TS_VERIFY_CTX_set_store(TS_VERIFY_CTX *ctx, X509_STORE *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - hexstr
    - len
    argTypes:
    - TS_VERIFY_CTX*
    - unsigned char*
    - long
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: TS_VERIFY_CTX_set_imprint
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: "*TS_VERIFY_CTX_set_imprint(TS_VERIFY_CTX *ctx,\n                                         unsigned
      char *hexstr, long len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:83,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:84,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:86,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:88,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:89,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:91,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:93,1
    - Dst: GENERAL_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:95,1
    - Dst: TS_VERIFY_CTX_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_VERIFY_CTX*
    constantsTouched: []
    func_position:
      end: 98
      start: 78
    functionDepth: 5
    functionLinenumber: 78
    functionLinenumberEnd: 98
    functionName: TS_VERIFY_CTX_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c
    functionUses: 1
    functionsReached:
    - X509_STORE_free
    - BIO_free_all
    - sk_X509_pop_free
    - OPENSSL_free
    - ASN1_OBJECT_free
    - X509_ALGOR_free
    - ASN1_INTEGER_free
    - TS_VERIFY_CTX_init
    - GENERAL_NAME_free
    linkageType: ''
    returnType: void
    signature: TS_VERIFY_CTX_cleanup(TS_VERIFY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:109,1
    - Dst: TS_VERIFY_CTX_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:111,1
    - Dst: TS_VERIFY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:112,1
    - Dst: OBJ_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:118,1
    - Dst: X509_ALGOR_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:125,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:128,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:129,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:131,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:131,1
    - Dst: ASN1_INTEGER_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:134,1
    - Dst: TS_VERIFY_CTX_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:142,1
    - Dst: TS_VERIFY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c:144,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 2
    argNames:
    - req
    - ctx
    argTypes:
    - TS_REQ*
    - TS_VERIFY_CTX*
    constantsTouched: []
    func_position:
      end: 146
      start: 100
    functionDepth: 6
    functionLinenumber: 100
    functionLinenumberEnd: 146
    functionName: TS_REQ_to_TS_VERIFY_CTX
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached:
    - X509_ALGOR_dup
    - OPENSSL_assert
    - TS_VERIFY_CTX_new
    - ASN1_INTEGER_dup
    - memcpy
    - OBJ_dup
    - TS_VERIFY_CTX_cleanup
    - ASN1_STRING_length
    - ASN1_STRING_get0_data
    - OPENSSL_malloc
    - TS_VERIFY_CTX_free
    linkageType: ''
    returnType: TS_VERIFY_CTX
    signature: '*TS_REQ_to_TS_VERIFY_CTX(TS_REQ *req, TS_VERIFY_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:47,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:51,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:56,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - struct TS_resp_ctx*
    - void*
    constantsTouched: []
    func_position:
      end: 60
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 60
    functionName: def_serial_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - TSerr
    - TS_RESP_CTX_set_status_info
    - ASN1_INTEGER_set
    - ASN1_INTEGER_new
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: '*def_serial_cb(struct TS_resp_ctx *ctx, void *data)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:68,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:69,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:70,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - data
    - sec
    - usec
    argTypes:
    - struct TS_resp_ctx*
    - void*
    - long*
    - long*
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 79
    functionName: def_time_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    - TS_RESP_CTX_set_status_info
    - TS_RESP_CTX_add_failure_info
    - TSerr
    linkageType: ''
    returnType: int
    signature: "def_time_cb(struct TS_resp_ctx *ctx, void *data,\n                       long
      *sec, long *usec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:87,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:88,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:89,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - data
    - sec
    - usec
    argTypes:
    - struct TS_resp_ctx*
    - void*
    - long*
    - long*
    constantsTouched: []
    func_position:
      end: 98
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 98
    functionName: def_time_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - TSerr
    - TS_RESP_CTX_set_status_info
    - TS_RESP_CTX_add_failure_info
    - time
    linkageType: ''
    returnType: int
    signature: "def_time_cb(struct TS_resp_ctx *ctx, void *data,\n                       long
      *sec, long *usec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:105,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - ext
    - data
    argTypes:
    - struct TS_resp_ctx*
    - X509_EXTENSION*
    - void*
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: def_extension_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - TS_RESP_CTX_set_status_info
    - TS_RESP_CTX_add_failure_info
    linkageType: ''
    returnType: int
    signature: "def_extension_cb(struct TS_resp_ctx *ctx, X509_EXTENSION *ext,\n                            void
      *data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:117,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:118,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 129
    functionName: TS_RESP_CTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - TSerr
    - EVP_sha256
    - OPENSSL_zalloc
    linkageType: ''
    returnType: TS_RESP_CTX
    signature: '*TS_RESP_CTX_new()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:136,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:137,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:138,1
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:139,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:140,1
    - Dst: sk_EVP_MD_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:141,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:142,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:143,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:144,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    constantsTouched: []
    func_position:
      end: 146
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 146
    functionName: TS_RESP_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_OBJECT_pop_free
    - sk_X509_pop_free
    - ASN1_OBJECT_free
    - sk_EVP_MD_free
    - X509_free
    - OPENSSL_free
    - ASN1_INTEGER_free
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: TS_RESP_CTX_free(TS_RESP_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:150,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:151,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:155,1
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - signer
    argTypes:
    - TS_RESP_CTX*
    - X509*
    constantsTouched: []
    func_position:
      end: 159
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 159
    functionName: TS_RESP_CTX_set_signer_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - TSerr
    - X509_up_ref
    - X509_check_purpose
    - X509_free
    linkageType: ''
    returnType: int
    signature: TS_RESP_CTX_set_signer_cert(TS_RESP_CTX *ctx, X509 *signer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:163,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - TS_RESP_CTX*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 168
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 168
    functionName: TS_RESP_CTX_set_signer_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_up_ref
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: TS_RESP_CTX_set_signer_key(TS_RESP_CTX *ctx, EVP_PKEY *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - TS_RESP_CTX*
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: TS_RESP_CTX_set_signer_digest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TS_RESP_CTX_set_signer_digest(TS_RESP_CTX *ctx, const EVP_MD *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:178,1
    - Dst: OBJ_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:179,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - def_policy
    argTypes:
    - TS_RESP_CTX*
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 185
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 185
    functionName: TS_RESP_CTX_set_def_policy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - ASN1_OBJECT_free
    - TSerr
    - OBJ_dup
    linkageType: ''
    returnType: int
    signature: TS_RESP_CTX_set_def_policy(TS_RESP_CTX *ctx, const ASN1_OBJECT *def_policy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_OBJECT_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:207,1
    - Dst: OBJ_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:209,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:211,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:216,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:217,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - policy
    argTypes:
    - TS_RESP_CTX*
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 219
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 219
    functionName: TS_RESP_CTX_add_policy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - TSerr
    - ASN1_OBJECT_free
    - OBJ_dup
    - sk_ASN1_OBJECT_push
    - sk_ASN1_OBJECT_new_null
    linkageType: ''
    returnType: int
    signature: TS_RESP_CTX_add_policy(TS_RESP_CTX *ctx, const ASN1_OBJECT *policy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_MD_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:224,1
    - Dst: sk_EVP_MD_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:226,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:231,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - TS_RESP_CTX*
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 233
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 233
    functionName: TS_RESP_CTX_add_md
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - sk_EVP_MD_push
    - sk_EVP_MD_new_null
    - TSerr
    linkageType: ''
    returnType: int
    signature: TS_RESP_CTX_add_md(TS_RESP_CTX *ctx, const EVP_MD *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TS_RESP_CTX_accuracy_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:247,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:249,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:250,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:253,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:254,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:257,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:258,1
    - Dst: TS_RESP_CTX_accuracy_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:263,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:264,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - secs
    - millis
    - micros
    argTypes:
    - TS_RESP_CTX*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 266
      start: 243
    functionDepth: 4
    functionLinenumber: 243
    functionLinenumberEnd: 266
    functionName: TS_RESP_CTX_set_accuracy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - TSerr
    - TS_RESP_CTX_accuracy_free
    - ASN1_INTEGER_set
    - ASN1_INTEGER_new
    linkageType: ''
    returnType: int
    signature: "TS_RESP_CTX_set_accuracy(TS_RESP_CTX *ctx,\n                             int
      secs, int millis, int micros)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - TS_RESP_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 271
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 271
    functionName: TS_RESP_CTX_add_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TS_RESP_CTX_add_flags(TS_RESP_CTX *ctx, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - cb
    - data
    argTypes:
    - TS_RESP_CTX*
    - TS_serial_cb
    - void*
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: TS_RESP_CTX_set_serial_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TS_RESP_CTX_set_serial_cb(TS_RESP_CTX *ctx, TS_serial_cb cb, void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - cb
    - data
    argTypes:
    - TS_RESP_CTX*
    - TS_time_cb
    - void*
    constantsTouched: []
    func_position:
      end: 283
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 283
    functionName: TS_RESP_CTX_set_time_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: TS_RESP_CTX_set_time_cb(TS_RESP_CTX *ctx, TS_time_cb cb, void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - cb
    - data
    argTypes:
    - TS_RESP_CTX*
    - TS_extension_cb
    - void*
    constantsTouched: []
    func_position:
      end: 290
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 290
    functionName: TS_RESP_CTX_set_extension_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "TS_RESP_CTX_set_extension_cb(TS_RESP_CTX *ctx,\n                                  TS_extension_cb
      cb, void *data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TS_STATUS_INFO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:299,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:301,1
    - Dst: ASN1_UTF8STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:304,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:305,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:305,1
    - Dst: sk_ASN1_UTF8STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:308,1
    - Dst: sk_ASN1_UTF8STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:310,1
    - Dst: TS_RESP_set_status_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:314,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:319,1
    - Dst: TS_STATUS_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:320,1
    - Dst: ASN1_UTF8STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:321,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 30
    argCount: 3
    argNames:
    - ctx
    - status
    - text
    argTypes:
    - TS_RESP_CTX*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 323
      start: 292
    functionDepth: 4
    functionLinenumber: 292
    functionLinenumberEnd: 323
    functionName: TS_RESP_CTX_set_status_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 4
    functionsReached:
    - ASN1_STRING_set
    - sk_ASN1_UTF8STRING_new_null
    - TS_STATUS_INFO_new
    - ASN1_INTEGER_set
    - TSerr
    - TS_STATUS_INFO_free
    - strlen
    - ASN1_UTF8STRING_new
    - sk_ASN1_UTF8STRING_push
    - TS_RESP_set_status_info
    - ASN1_UTF8STRING_free
    linkageType: ''
    returnType: int
    signature: "TS_RESP_CTX_set_status_info(TS_RESP_CTX *ctx,\n                                int
      status, const char *text)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:331,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - status
    - text
    argTypes:
    - TS_RESP_CTX*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 335
      start: 325
    functionDepth: 5
    functionLinenumber: 325
    functionLinenumberEnd: 335
    functionName: TS_RESP_CTX_set_status_info_cond
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - TS_RESP_CTX_set_status_info
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: int
    signature: "TS_RESP_CTX_set_status_info_cond(TS_RESP_CTX *ctx,\n                                     int
      status, const char *text)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:341,1
    - Dst: ASN1_BIT_STRING_set_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:343,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:347,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - failure
    argTypes:
    - TS_RESP_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 349
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 349
    functionName: TS_RESP_CTX_add_failure_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 3
    functionsReached:
    - TSerr
    - ASN1_BIT_STRING_new
    - ASN1_BIT_STRING_set_bit
    linkageType: ''
    returnType: int
    signature: TS_RESP_CTX_add_failure_info(TS_RESP_CTX *ctx, int failure)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 354
    functionName: TS_RESP_CTX_get_request
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TS_REQ
    signature: '*TS_RESP_CTX_get_request(TS_RESP_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: TS_RESP_CTX_get_tst_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TS_TST_INFO
    signature: '*TS_RESP_CTX_get_tst_info(TS_RESP_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - precision
    argTypes:
    - TS_RESP_CTX*
    - unsigned
    constantsTouched: []
    func_position:
      end: 368
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 368
    functionName: TS_RESP_CTX_set_clock_precision_digits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "TS_RESP_CTX_set_clock_precision_digits(TS_RESP_CTX *ctx,\n                                           unsigned
      precision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ts_RESP_CTX_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:377,1
    - Dst: TS_RESP_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:379,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:380,1
    - Dst: d2i_TS_REQ_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:383,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:384,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:386,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:389,1
    - Dst: ts_RESP_check_request
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:391,1
    - Dst: ts_RESP_get_policy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:393,1
    - Dst: ts_RESP_create_tst_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:395,1
    - Dst: ts_RESP_process_extensions
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:397,1
    - Dst: ts_RESP_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:399,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:405,1
    - Dst: TS_RESP_CTX_set_status_info_cond
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:407,1
    - Dst: TS_RESP_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:411,1
    - Dst: ts_RESP_CTX_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:418,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 2
    argNames:
    - ctx
    - req_bio
    argTypes:
    - TS_RESP_CTX*
    - BIO*
    constantsTouched: []
    func_position:
      end: 420
      start: 371
    functionDepth: 6
    functionLinenumber: 371
    functionLinenumberEnd: 420
    functionName: TS_RESP_create_response
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - ts_RESP_CTX_init
    - TS_RESP_new
    - d2i_TS_REQ_bio
    - TSerr
    - ts_RESP_create_tst_info
    - TS_RESP_CTX_set_status_info
    - ts_RESP_get_policy
    - TS_RESP_free
    - TS_RESP_CTX_add_failure_info
    - ts_RESP_check_request
    - ts_RESP_CTX_cleanup
    - TS_RESP_CTX_set_status_info_cond
    - ts_RESP_sign
    - ts_RESP_process_extensions
    linkageType: ''
    returnType: TS_RESP
    signature: '*TS_RESP_create_response(TS_RESP_CTX *ctx, BIO *req_bio)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    constantsTouched: []
    func_position:
      end: 428
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 428
    functionName: ts_RESP_CTX_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ts_RESP_CTX_init(TS_RESP_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TS_REQ_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:433,1
    - Dst: TS_RESP_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:435,1
    - Dst: TS_TST_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    constantsTouched: []
    func_position:
      end: 439
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 439
    functionName: ts_RESP_CTX_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - TS_TST_INFO_free
    - TS_RESP_free
    - TS_REQ_free
    linkageType: ''
    returnType: void
    signature: ts_RESP_CTX_cleanup(TS_RESP_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TS_REQ_get_version
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:452,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:453,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:455,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:461,1
    - Dst: sk_EVP_MD_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:462,1
    - Dst: sk_EVP_MD_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:463,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:464,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:468,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:471,1
    - Dst: ASN1_TYPE_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:475,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:476,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:479,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:483,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:484,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:486,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    constantsTouched: []
    func_position:
      end: 491
      start: 442
    functionDepth: 5
    functionLinenumber: 442
    functionLinenumberEnd: 491
    functionName: ts_RESP_check_request
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    - TS_REQ_get_version
    - EVP_MD_size
    - TS_RESP_CTX_set_status_info
    - EVP_MD_type
    - TS_RESP_CTX_add_failure_info
    - sk_EVP_MD_value
    - sk_EVP_MD_num
    - ASN1_TYPE_get
    linkageType: ''
    returnType: int
    signature: ts_RESP_check_request(TS_RESP_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:501,1
    - Dst: OBJ_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:504,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:508,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:509,1
    - Dst: OBJ_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:510,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:514,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:515,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:517,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    constantsTouched: []
    func_position:
      end: 520
      start: 494
    functionDepth: 5
    functionLinenumber: 494
    functionLinenumberEnd: 520
    functionName: ts_RESP_get_policy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - sk_ASN1_OBJECT_value
    - sk_ASN1_OBJECT_num
    - TSerr
    - TS_RESP_CTX_set_status_info
    - TS_RESP_CTX_add_failure_info
    - OBJ_cmp
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: '*ts_RESP_get_policy(TS_RESP_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TS_TST_INFO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:535,1
    - Dst: TS_TST_INFO_set_version
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:537,1
    - Dst: TS_TST_INFO_set_policy_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:539,1
    - Dst: TS_TST_INFO_set_msg_imprint
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:541,1
    - Dst: TS_RESP_CTX*::serial_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:543,1
    - Dst: TS_TST_INFO_set_serial
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:544,1
    - Dst: TS_RESP_CTX*::time_cb
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:546,1
    - Dst: TS_RESP_set_genTime_with_precision
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:548,1
    - Dst: TS_TST_INFO_set_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:550,1
    - Dst: TS_ACCURACY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:554,1
    - Dst: TS_ACCURACY_set_seconds
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:556,1
    - Dst: TS_ACCURACY_set_millis
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:558,1
    - Dst: TS_ACCURACY_set_micros
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:560,1
    - Dst: TS_TST_INFO_set_accuracy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:562,1
    - Dst: TS_TST_INFO_set_ordering
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:566,1
    - Dst: TS_TST_INFO_set_nonce
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:570,1
    - Dst: GENERAL_NAME_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:574,1
    - Dst: X509_NAME_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:578,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:578,1
    - Dst: TS_TST_INFO_set_tsa
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:581,1
    - Dst: TS_TST_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:588,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:590,1
    - Dst: TS_RESP_CTX_set_status_info_cond
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:591,1
    - Dst: GENERAL_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:595,1
    - Dst: TS_ACCURACY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:596,1
    - Dst: ASN1_GENERALIZEDTIME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:597,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:598,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 67
    argCount: 2
    argNames:
    - ctx
    - policy
    argTypes:
    - TS_RESP_CTX*
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 601
      start: 523
    functionDepth: 6
    functionLinenumber: 523
    functionLinenumberEnd: 601
    functionName: ts_RESP_create_tst_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - TS_RESP_set_genTime_with_precision
    - TS_TST_INFO_set_msg_imprint
    - TSerr
    - GENERAL_NAME_new
    - TS_RESP_CTX_set_status_info_cond
    - GENERAL_NAME_free
    - TS_ACCURACY_set_seconds
    - TS_ACCURACY_new
    - TS_ACCURACY_free
    - TS_TST_INFO_set_nonce
    - ASN1_GENERALIZEDTIME_free
    - TS_TST_INFO_set_tsa
    - TS_RESP_CTX*::serial_cb
    - TS_TST_INFO_set_ordering
    - TS_TST_INFO_set_accuracy
    - TS_TST_INFO_set_serial
    - TS_ACCURACY_set_millis
    - TS_TST_INFO_set_version
    - TS_TST_INFO_new
    - TS_ACCURACY_set_micros
    - TS_TST_INFO_set_policy_id
    - X509_get_subject_name
    - TS_RESP_CTX*::time_cb
    - X509_NAME_dup
    - TS_TST_INFO_set_time
    - ASN1_INTEGER_free
    - TS_TST_INFO_free
    linkageType: ''
    returnType: TS_TST_INFO
    signature: "*ts_RESP_create_tst_info(TS_RESP_CTX *ctx,\n                                            ASN1_OBJECT
      *policy)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:606,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:610,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    constantsTouched: []
    func_position:
      end: 622
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 622
    functionName: ts_RESP_process_extensions
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - STACK_OF
    - sk_X509_EXTENSION_value
    - sk_X509_EXTENSION_num
    linkageType: ''
    returnType: int
    signature: ts_RESP_process_extensions(TS_RESP_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:630,1
    - Dst: X509_check_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:636,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:637,1
    - Dst: PKCS7_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:641,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:642,1
    - Dst: PKCS7_set_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:645,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:647,1
    - Dst: PKCS7_add_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:651,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:653,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:654,1
    - Dst: PKCS7_add_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:655,1
    - Dst: PKCS7_add_signature
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:660,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:662,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:666,1
    - Dst: PKCS7_add_signed_attribute
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:667,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:669,1
    - Dst: ess_SIGNING_CERT_new_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:674,1
    - Dst: ESS_add_signing_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:676,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:677,1
    - Dst: ts_TST_INFO_content_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:681,1
    - Dst: PKCS7_dataInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:683,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:684,1
    - Dst: i2d_TS_TST_INFO_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:687,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:688,1
    - Dst: PKCS7_dataFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:691,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:692,1
    - Dst: TS_RESP_set_tst_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:695,1
    - Dst: TS_RESP_CTX_set_status_info_cond
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:702,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:705,1
    - Dst: ESS_SIGNING_CERT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:706,1
    - Dst: PKCS7_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:707,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 76
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    constantsTouched: []
    func_position:
      end: 709
      start: 625
    functionDepth: 6
    functionLinenumber: 625
    functionLinenumberEnd: 709
    functionName: ts_RESP_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - ESS_add_signing_cert
    - ESS_SIGNING_CERT_free
    - TSerr
    - sk_X509_num
    - X509_check_private_key
    - ts_TST_INFO_content_new
    - TS_RESP_CTX_set_status_info_cond
    - PKCS7_free
    - PKCS7_add_certificate
    - PKCS7_add_signature
    - ASN1_INTEGER_set
    - OBJ_nid2obj
    - PKCS7_set_type
    - i2d_TS_TST_INFO_bio
    - PKCS7_add_signed_attribute
    - TS_RESP_set_tst_info
    - PKCS7_dataInit
    - PKCS7_dataFinal
    - ess_SIGNING_CERT_new_init
    - BIO_free_all
    - STACK_OF
    - sk_X509_value
    - PKCS7_new
    linkageType: ''
    returnType: int
    signature: ts_RESP_sign(TS_RESP_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ESS_SIGNING_CERT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:718,1
    - Dst: sk_ESS_CERT_ID_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:721,1
    - Dst: ess_CERT_ID_new_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:724,1
    - Dst: sk_ESS_CERT_ID_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:725,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:727,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:728,1
    - Dst: ess_CERT_ID_new_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:729,1
    - Dst: sk_ESS_CERT_ID_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:730,1
    - Dst: ESS_SIGNING_CERT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:736,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:737,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 2
    argNames:
    - signcert
    - certs
    argTypes:
    - X509*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 739
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 739
    functionName: ess_SIGNING_CERT_new_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - ESS_SIGNING_CERT_free
    - ess_CERT_ID_new_init
    - TSerr
    - sk_X509_num
    - sk_ESS_CERT_ID_push
    - ESS_SIGNING_CERT_new
    - sk_X509_value
    - sk_ESS_CERT_ID_new_null
    linkageType: ''
    returnType: ESS_SIGNING_CERT
    signature: "*ess_SIGNING_CERT_new_init(X509 *signcert,\n                                                   STACK_OF(X509)
      *certs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:748,1
    - Dst: ESS_CERT_ID_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:749,1
    - Dst: X509_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:751,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:751,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:752,1
    - Dst: ESS_ISSUER_SERIAL_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:758,1
    - Dst: GENERAL_NAME_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:760,1
    - Dst: X509_NAME_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:763,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:763,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:765,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:768,1
    - Dst: ASN1_INTEGER_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:770,1
    - Dst: X509_get_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:770,1
    - Dst: GENERAL_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:776,1
    - Dst: ESS_CERT_ID_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:777,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:778,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 2
    argNames:
    - cert
    - issuer_needed
    argTypes:
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 780
      start: 741
    functionDepth: 4
    functionLinenumber: 741
    functionLinenumberEnd: 780
    functionName: ess_CERT_ID_new_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - EVP_sha1
    - X509_digest
    - ASN1_INTEGER_dup
    - sk_GENERAL_NAME_push
    - X509_check_purpose
    - GENERAL_NAME_new
    - TSerr
    - ASN1_OCTET_STRING_set
    - X509_get_serialNumber
    - X509_NAME_dup
    - GENERAL_NAME_free
    - ESS_CERT_ID_new
    - ASN1_INTEGER_free
    - ESS_CERT_ID_free
    - X509_get_issuer_name
    - ESS_ISSUER_SERIAL_new
    linkageType: ''
    returnType: ESS_CERT_ID
    signature: '*ess_CERT_ID_new_init(X509 *cert, int issuer_needed)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:788,1
    - Dst: ASN1_TYPE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:790,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:792,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:793,1
    - Dst: ASN1_TYPE_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:795,1
    - Dst: PKCS7_set_content
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:799,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:804,1
    - Dst: PKCS7_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:805,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - p7
    argTypes:
    - PKCS7*
    constantsTouched: []
    func_position:
      end: 807
      start: 782
    functionDepth: 3
    functionLinenumber: 782
    functionLinenumberEnd: 807
    functionName: ts_TST_INFO_content_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - PKCS7_set_content
    - ASN1_OCTET_STRING_new
    - OBJ_nid2obj
    - ASN1_OCTET_STRING_free
    - ASN1_TYPE_new
    - ASN1_TYPE_set
    - PKCS7_new
    - PKCS7_free
    linkageType: ''
    returnType: int
    signature: ts_TST_INFO_content_new(PKCS7 *p7)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_ESS_SIGNING_CERT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:815,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:816,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:817,1
    - Dst: i2d_ESS_SIGNING_CERT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:821,1
    - Dst: ASN1_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:822,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:822,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:823,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:826,1
    - Dst: PKCS7_add_signed_attribute
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:828,1
    - Dst: ASN1_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:832,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:833,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - si
    - sc
    argTypes:
    - PKCS7_SIGNER_INFO*
    - ESS_SIGNING_CERT*
    constantsTouched: []
    func_position:
      end: 836
      start: 809
    functionDepth: 2
    functionLinenumber: 809
    functionLinenumberEnd: 836
    functionName: ESS_add_signing_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - ASN1_STRING_set
    - ASN1_STRING_free
    - ASN1_STRING_new
    - TSerr
    - PKCS7_add_signed_attribute
    - i2d_ESS_SIGNING_CERT
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: ESS_add_signing_cert(PKCS7_SIGNER_INFO *si, ESS_SIGNING_CERT *sc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gmtime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:851,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:861,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:866,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:867,1
    - Dst: ASN1_GENERALIZEDTIME_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:893,1
    - Dst: ASN1_GENERALIZEDTIME_set_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:895,1
    - Dst: ASN1_GENERALIZEDTIME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:896,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c:902,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 4
    argNames:
    - asn1_time
    - sec
    - usec
    - precision
    argTypes:
    - ASN1_GENERALIZEDTIME*
    - long
    - long
    - unsigned
    constantsTouched: []
    func_position:
      end: 904
      start: 838
    functionDepth: 3
    functionLinenumber: 838
    functionLinenumberEnd: 904
    functionName: TS_RESP_set_genTime_with_precision
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - gmtime
    - ASN1_GENERALIZEDTIME_set_string
    - BIO_snprintf
    - ASN1_GENERALIZEDTIME_free
    - TSerr
    - strlen
    - ASN1_GENERALIZEDTIME_new
    linkageType: ''
    returnType: ASN1_GENERALIZEDTIME
    signature: "*TS_RESP_set_genTime_with_precision(ASN1_GENERALIZEDTIME *asn1_time,\n
      \                                   long sec, long usec, unsigned precision)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - version
    argTypes:
    - TS_REQ*
    - long
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 4
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: TS_REQ_set_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: int
    signature: TS_REQ_set_version(TS_REQ *a, long version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_REQ*
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: TS_REQ_get_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: long
    signature: TS_REQ_get_version(const TS_REQ *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TS_MSG_IMPRINT_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:33,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:35,1
    - Dst: TS_MSG_IMPRINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - msg_imprint
    argTypes:
    - TS_REQ*
    - TS_MSG_IMPRINT*
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: TS_REQ_set_msg_imprint
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - TS_MSG_IMPRINT_dup
    - TSerr
    - TS_MSG_IMPRINT_free
    linkageType: ''
    returnType: int
    signature: TS_REQ_set_msg_imprint(TS_REQ *a, TS_MSG_IMPRINT *msg_imprint)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_REQ*
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: TS_REQ_get_msg_imprint
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TS_MSG_IMPRINT
    signature: '*TS_REQ_get_msg_imprint(TS_REQ *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:54,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:56,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - alg
    argTypes:
    - TS_MSG_IMPRINT*
    - X509_ALGOR*
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: TS_MSG_IMPRINT_set_algo
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509_ALGOR_free
    - TSerr
    - X509_ALGOR_dup
    linkageType: ''
    returnType: int
    signature: TS_MSG_IMPRINT_set_algo(TS_MSG_IMPRINT *a, X509_ALGOR *alg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_MSG_IMPRINT*
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: TS_MSG_IMPRINT_get_algo
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_ALGOR
    signature: '*TS_MSG_IMPRINT_get_algo(TS_MSG_IMPRINT *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - d
    - len
    argTypes:
    - TS_MSG_IMPRINT*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: TS_MSG_IMPRINT_set_msg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_set
    linkageType: ''
    returnType: int
    signature: TS_MSG_IMPRINT_set_msg(TS_MSG_IMPRINT *a, unsigned char *d, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_MSG_IMPRINT*
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: TS_MSG_IMPRINT_get_msg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: '*TS_MSG_IMPRINT_get_msg(TS_MSG_IMPRINT *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:85,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:87,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - policy
    argTypes:
    - TS_REQ*
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 93
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 93
    functionName: TS_REQ_set_policy_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - ASN1_OBJECT_free
    - TSerr
    - OBJ_dup
    linkageType: ''
    returnType: int
    signature: TS_REQ_set_policy_id(TS_REQ *a, const ASN1_OBJECT *policy)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_REQ*
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: TS_REQ_get_policy_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: '*TS_REQ_get_policy_id(TS_REQ *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:106,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:108,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - nonce
    argTypes:
    - TS_REQ*
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 114
      start: 100
    functionDepth: 4
    functionLinenumber: 100
    functionLinenumberEnd: 114
    functionName: TS_REQ_set_nonce
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_free
    - TSerr
    - ASN1_INTEGER_dup
    linkageType: ''
    returnType: int
    signature: TS_REQ_set_nonce(TS_REQ *a, const ASN1_INTEGER *nonce)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_REQ*
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: TS_REQ_get_nonce
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: '*TS_REQ_get_nonce(const TS_REQ *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - cert_req
    argTypes:
    - TS_REQ*
    - int
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: TS_REQ_set_cert_req
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TS_REQ_set_cert_req(TS_REQ *a, int cert_req)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_REQ*
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: TS_REQ_get_cert_req
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TS_REQ_get_cert_req(const TS_REQ *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_REQ*
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: TS_REQ_ext_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - sk_X509_EXTENSION_pop_free
    linkageType: ''
    returnType: void
    signature: TS_REQ_ext_free(TS_REQ *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_REQ*
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: TS_REQ_get_ext_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: TS_REQ_get_ext_count(TS_REQ *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - nid
    - lastpos
    argTypes:
    - TS_REQ*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: TS_REQ_get_ext_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: TS_REQ_get_ext_by_NID(TS_REQ *a, int nid, int lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - obj
    - lastpos
    argTypes:
    - TS_REQ*
    - ASN1_OBJECT*
    - int
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: TS_REQ_get_ext_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: TS_REQ_get_ext_by_OBJ(TS_REQ *a, const ASN1_OBJECT *obj, int lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - crit
    - lastpos
    argTypes:
    - TS_REQ*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: TS_REQ_get_ext_by_critical
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: TS_REQ_get_ext_by_critical(TS_REQ *a, int crit, int lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - loc
    argTypes:
    - TS_REQ*
    - int
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: TS_REQ_get_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*TS_REQ_get_ext(TS_REQ *a, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - loc
    argTypes:
    - TS_REQ*
    - int
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: TS_REQ_delete_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*TS_REQ_delete_ext(TS_REQ *a, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - ex
    - loc
    argTypes:
    - TS_REQ*
    - X509_EXTENSION*
    - int
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: TS_REQ_add_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: TS_REQ_add_ext(TS_REQ *a, X509_EXTENSION *ex, int loc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a
    - nid
    - crit
    - idx
    argTypes:
    - TS_REQ*
    - int
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: TS_REQ_get_ext_d2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: '*TS_REQ_get_ext_d2i(TS_REQ *a, int nid, int *crit, int *idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TS_STATUS_INFO_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:23,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:25,1
    - Dst: TS_STATUS_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - status_info
    argTypes:
    - TS_RESP*
    - TS_STATUS_INFO*
    constantsTouched: []
    func_position:
      end: 32
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 32
    functionName: TS_RESP_set_status_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - TS_STATUS_INFO_free
    - TSerr
    - TS_STATUS_INFO_dup
    linkageType: ''
    returnType: int
    signature: TS_RESP_set_status_info(TS_RESP *a, TS_STATUS_INFO *status_info)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_RESP*
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: TS_RESP_get_status_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TS_STATUS_INFO
    signature: '*TS_RESP_get_status_info(TS_RESP *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:42,1
    - Dst: TS_TST_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - a
    - p7
    - tst_info
    argTypes:
    - TS_RESP*
    - PKCS7*
    - TS_TST_INFO*
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: TS_RESP_set_tst_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - TS_TST_INFO_free
    - PKCS7_free
    linkageType: ''
    returnType: void
    signature: TS_RESP_set_tst_info(TS_RESP *a, PKCS7 *p7, TS_TST_INFO *tst_info)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_RESP*
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: TS_RESP_get_token
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKCS7
    signature: '*TS_RESP_get_token(TS_RESP *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_RESP*
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: TS_RESP_get_tst_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TS_TST_INFO
    signature: '*TS_RESP_get_tst_info(TS_RESP *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - version
    argTypes:
    - TS_TST_INFO*
    - long
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: TS_TST_INFO_set_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: int
    signature: TS_TST_INFO_set_version(TS_TST_INFO *a, long version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 5
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: TS_TST_INFO_get_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: long
    signature: TS_TST_INFO_get_version(const TS_TST_INFO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:74,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:76,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - policy
    argTypes:
    - TS_TST_INFO*
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 82
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 82
    functionName: TS_TST_INFO_set_policy_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_OBJECT_free
    - TSerr
    - OBJ_dup
    linkageType: ''
    returnType: int
    signature: TS_TST_INFO_set_policy_id(TS_TST_INFO *a, ASN1_OBJECT *policy)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: TS_TST_INFO_get_policy_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: '*TS_TST_INFO_get_policy_id(TS_TST_INFO *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TS_MSG_IMPRINT_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:95,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:97,1
    - Dst: TS_MSG_IMPRINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - msg_imprint
    argTypes:
    - TS_TST_INFO*
    - TS_MSG_IMPRINT*
    constantsTouched: []
    func_position:
      end: 103
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 103
    functionName: TS_TST_INFO_set_msg_imprint
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - TS_MSG_IMPRINT_dup
    - TSerr
    - TS_MSG_IMPRINT_free
    linkageType: ''
    returnType: int
    signature: TS_TST_INFO_set_msg_imprint(TS_TST_INFO *a, TS_MSG_IMPRINT *msg_imprint)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: TS_TST_INFO_get_msg_imprint
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TS_MSG_IMPRINT
    signature: '*TS_TST_INFO_get_msg_imprint(TS_TST_INFO *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:116,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:118,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - serial
    argTypes:
    - TS_TST_INFO*
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 124
      start: 110
    functionDepth: 4
    functionLinenumber: 110
    functionLinenumberEnd: 124
    functionName: TS_TST_INFO_set_serial
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_free
    - TSerr
    - ASN1_INTEGER_dup
    linkageType: ''
    returnType: int
    signature: TS_TST_INFO_set_serial(TS_TST_INFO *a, const ASN1_INTEGER *serial)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: TS_TST_INFO_get_serial
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: '*TS_TST_INFO_get_serial(const TS_TST_INFO *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:137,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:139,1
    - Dst: ASN1_GENERALIZEDTIME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - gtime
    argTypes:
    - TS_TST_INFO*
    - ASN1_GENERALIZEDTIME*
    constantsTouched: []
    func_position:
      end: 145
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 145
    functionName: TS_TST_INFO_set_time
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_GENERALIZEDTIME_free
    - ASN1_STRING_dup
    - TSerr
    linkageType: ''
    returnType: int
    signature: TS_TST_INFO_set_time(TS_TST_INFO *a, const ASN1_GENERALIZEDTIME *gtime)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: TS_TST_INFO_get_time
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_GENERALIZEDTIME
    signature: '*TS_TST_INFO_get_time(const TS_TST_INFO *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TS_ACCURACY_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:158,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:160,1
    - Dst: TS_ACCURACY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - accuracy
    argTypes:
    - TS_TST_INFO*
    - TS_ACCURACY*
    constantsTouched: []
    func_position:
      end: 166
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 166
    functionName: TS_TST_INFO_set_accuracy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - TS_ACCURACY_free
    - TSerr
    - TS_ACCURACY_dup
    linkageType: ''
    returnType: int
    signature: TS_TST_INFO_set_accuracy(TS_TST_INFO *a, TS_ACCURACY *accuracy)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: TS_TST_INFO_get_accuracy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TS_ACCURACY
    signature: '*TS_TST_INFO_get_accuracy(TS_TST_INFO *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:179,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:181,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - seconds
    argTypes:
    - TS_ACCURACY*
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 187
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 187
    functionName: TS_ACCURACY_set_seconds
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_free
    - TSerr
    - ASN1_INTEGER_dup
    linkageType: ''
    returnType: int
    signature: TS_ACCURACY_set_seconds(TS_ACCURACY *a, const ASN1_INTEGER *seconds)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_ACCURACY*
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: TS_ACCURACY_get_seconds
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: '*TS_ACCURACY_get_seconds(const TS_ACCURACY *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:201,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:203,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - a
    - millis
    argTypes:
    - TS_ACCURACY*
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 210
      start: 194
    functionDepth: 4
    functionLinenumber: 194
    functionLinenumberEnd: 210
    functionName: TS_ACCURACY_set_millis
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_free
    - TSerr
    - ASN1_INTEGER_dup
    linkageType: ''
    returnType: int
    signature: TS_ACCURACY_set_millis(TS_ACCURACY *a, const ASN1_INTEGER *millis)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_ACCURACY*
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: TS_ACCURACY_get_millis
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: '*TS_ACCURACY_get_millis(const TS_ACCURACY *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:224,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:226,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - a
    - micros
    argTypes:
    - TS_ACCURACY*
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 233
      start: 217
    functionDepth: 4
    functionLinenumber: 217
    functionLinenumberEnd: 233
    functionName: TS_ACCURACY_set_micros
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_free
    - TSerr
    - ASN1_INTEGER_dup
    linkageType: ''
    returnType: int
    signature: TS_ACCURACY_set_micros(TS_ACCURACY *a, const ASN1_INTEGER *micros)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_ACCURACY*
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: TS_ACCURACY_get_micros
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: '*TS_ACCURACY_get_micros(const TS_ACCURACY *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - ordering
    argTypes:
    - TS_TST_INFO*
    - int
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: TS_TST_INFO_set_ordering
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TS_TST_INFO_set_ordering(TS_TST_INFO *a, int ordering)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: TS_TST_INFO_get_ordering
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: TS_TST_INFO_get_ordering(const TS_TST_INFO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:257,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:259,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - nonce
    argTypes:
    - TS_TST_INFO*
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 265
      start: 251
    functionDepth: 4
    functionLinenumber: 251
    functionLinenumberEnd: 265
    functionName: TS_TST_INFO_set_nonce
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_free
    - TSerr
    - ASN1_INTEGER_dup
    linkageType: ''
    returnType: int
    signature: TS_TST_INFO_set_nonce(TS_TST_INFO *a, const ASN1_INTEGER *nonce)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: TS_TST_INFO_get_nonce
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: '*TS_TST_INFO_get_nonce(const TS_TST_INFO *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GENERAL_NAME_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:278,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:280,1
    - Dst: GENERAL_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - tsa
    argTypes:
    - TS_TST_INFO*
    - GENERAL_NAME*
    constantsTouched: []
    func_position:
      end: 286
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 286
    functionName: TS_TST_INFO_set_tsa
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - TSerr
    - GENERAL_NAME_dup
    - GENERAL_NAME_free
    linkageType: ''
    returnType: int
    signature: TS_TST_INFO_set_tsa(TS_TST_INFO *a, GENERAL_NAME *tsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    constantsTouched: []
    func_position:
      end: 291
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 291
    functionName: TS_TST_INFO_get_tsa
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GENERAL_NAME
    signature: '*TS_TST_INFO_get_tsa(TS_TST_INFO *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    constantsTouched: []
    func_position:
      end: 304
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 304
    functionName: TS_TST_INFO_ext_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - sk_X509_EXTENSION_pop_free
    linkageType: ''
    returnType: void
    signature: TS_TST_INFO_ext_free(TS_TST_INFO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: TS_TST_INFO_get_ext_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: TS_TST_INFO_get_ext_count(TS_TST_INFO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - nid
    - lastpos
    argTypes:
    - TS_TST_INFO*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: TS_TST_INFO_get_ext_by_NID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: TS_TST_INFO_get_ext_by_NID(TS_TST_INFO *a, int nid, int lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - obj
    - lastpos
    argTypes:
    - TS_TST_INFO*
    - ASN1_OBJECT*
    - int
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: TS_TST_INFO_get_ext_by_OBJ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: TS_TST_INFO_get_ext_by_OBJ(TS_TST_INFO *a, const ASN1_OBJECT *obj,
      int lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - crit
    - lastpos
    argTypes:
    - TS_TST_INFO*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: TS_TST_INFO_get_ext_by_critical
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: TS_TST_INFO_get_ext_by_critical(TS_TST_INFO *a, int crit, int lastpos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - loc
    argTypes:
    - TS_TST_INFO*
    - int
    constantsTouched: []
    func_position:
      end: 329
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 329
    functionName: TS_TST_INFO_get_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*TS_TST_INFO_get_ext(TS_TST_INFO *a, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - loc
    argTypes:
    - TS_TST_INFO*
    - int
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: TS_TST_INFO_delete_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*TS_TST_INFO_delete_ext(TS_TST_INFO *a, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - ex
    - loc
    argTypes:
    - TS_TST_INFO*
    - X509_EXTENSION*
    - int
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: TS_TST_INFO_add_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: TS_TST_INFO_add_ext(TS_TST_INFO *a, X509_EXTENSION *ex, int loc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a
    - nid
    - crit
    - idx
    argTypes:
    - TS_TST_INFO*
    - int
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 344
    functionName: TS_TST_INFO_get_ext_d2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: '*TS_TST_INFO_get_ext_d2i(TS_TST_INFO *a, int nid, int *crit, int *idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - i
    argTypes:
    - TS_STATUS_INFO*
    - int
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 4
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: TS_STATUS_INFO_set_status
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: int
    signature: TS_STATUS_INFO_set_status(TS_STATUS_INFO *a, int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_STATUS_INFO*
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 354
    functionName: TS_STATUS_INFO_get0_status
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: '*TS_STATUS_INFO_get0_status(const TS_STATUS_INFO *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_STATUS_INFO*
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: TS_STATUS_INFO_get0_text
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: '*

      TS_STATUS_INFO_get0_text(const TS_STATUS_INFO *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_STATUS_INFO*
    constantsTouched: []
    func_position:
      end: 365
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 365
    functionName: TS_STATUS_INFO_get0_failure_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_BIT_STRING
    signature: '*TS_STATUS_INFO_get0_failure_info(const TS_STATUS_INFO *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TS_REQ_get_version
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_print.c:26,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_print.c:27,1
    - Dst: TS_MSG_IMPRINT_print_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_print.c:29,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_print.c:31,1
    - Dst: TS_REQ_get_policy_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_print.c:32,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_print.c:34,1
    - Dst: TS_OBJ_print_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_print.c:36,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_print.c:38,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_print.c:40,1
    - Dst: TS_ASN1_INTEGER_print_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_print.c:42,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_print.c:43,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_print.c:45,1
    - Dst: TS_ext_print_bio
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_print.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - bio
    - a
    argTypes:
    - BIO*
    - TS_REQ*
    constantsTouched: []
    func_position:
      end: 51
      start: 18
    functionDepth: 7
    functionLinenumber: 18
    functionLinenumberEnd: 51
    functionName: TS_REQ_print_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_print.c
    functionUses: 0
    functionsReached:
    - TS_REQ_get_policy_id
    - TS_REQ_get_version
    - TS_MSG_IMPRINT_print_bio
    - TS_ASN1_INTEGER_print_bio
    - TS_ext_print_bio
    - BIO_printf
    - BIO_write
    - TS_OBJ_print_bio
    linkageType: ''
    returnType: int
    signature: TS_REQ_print_bio(BIO *bio, TS_REQ *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_get_signed_attribute
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:239,1
    - Dst: d2i_ESS_SIGNING_CERT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - si
    argTypes:
    - PKCS7_SIGNER_INFO*
    constantsTouched: []
    func_position:
      end: 244
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 244
    functionName: ess_get_signing_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c
    functionUses: 0
    functionsReached:
    - d2i_ESS_SIGNING_CERT
    - PKCS7_get_signed_attribute
    linkageType: ''
    returnType: ESS_SIGNING_CERT
    signature: '*ess_get_signing_cert(PKCS7_SIGNER_INFO *si)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:279,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:282,1
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:284,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:284,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:287,1
    - Dst: X509_get_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:287,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - is
    - cert
    argTypes:
    - ESS_ISSUER_SERIAL*
    - X509*
    constantsTouched: []
    func_position:
      end: 291
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 291
    functionName: ts_issuer_serial_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c
    functionUses: 0
    functionsReached:
    - sk_GENERAL_NAME_value
    - sk_GENERAL_NAME_num
    - ASN1_INTEGER_cmp
    - X509_get_serialNumber
    - X509_NAME_cmp
    - X509_get_issuer_name
    linkageType: ''
    returnType: int
    signature: ts_issuer_serial_cmp(ESS_ISSUER_SERIAL *is, X509 *cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ts_check_status_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:305,1
    - Dst: int_ts_RESP_verify_token
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:307,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - response
    argTypes:
    - TS_VERIFY_CTX*
    - TS_RESP*
    constantsTouched: []
    func_position:
      end: 313
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 313
    functionName: TS_RESP_verify_response
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c
    functionUses: 0
    functionsReached:
    - int_ts_RESP_verify_token
    - ts_check_status_info
    linkageType: ''
    returnType: int
    signature: TS_RESP_verify_response(TS_VERIFY_CTX *ctx, TS_RESP *response)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_to_TS_TST_INFO
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:321,1
    - Dst: int_ts_RESP_verify_token
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:324,1
    - Dst: TS_TST_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - token
    argTypes:
    - TS_VERIFY_CTX*
    - PKCS7*
    constantsTouched: []
    func_position:
      end: 328
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 328
    functionName: TS_RESP_verify_token
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c
    functionUses: 0
    functionsReached:
    - int_ts_RESP_verify_token
    - PKCS7_to_TS_TST_INFO
    - TS_TST_INFO_free
    linkageType: ''
    returnType: int
    signature: TS_RESP_verify_token(TS_VERIFY_CTX *ctx, PKCS7 *token)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TS_RESP_verify_signature
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:360,1
    - Dst: TS_TST_INFO_get_version
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:363,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:364,1
    - Dst: ts_check_policy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:368,1
    - Dst: ts_check_imprints
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:371,1
    - Dst: ts_compute_imprint
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:375,1
    - Dst: ts_check_imprints
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:377,1
    - Dst: ts_check_nonces
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:380,1
    - Dst: ts_check_signer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:383,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:384,1
    - Dst: ts_check_signer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:388,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:389,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:395,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:396,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:397,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 41
    argCount: 3
    argNames:
    - ctx
    - token
    - tst_info
    argTypes:
    - TS_VERIFY_CTX*
    - PKCS7*
    - TS_TST_INFO*
    constantsTouched: []
    func_position:
      end: 399
      start: 342
    functionDepth: 6
    functionLinenumber: 342
    functionLinenumberEnd: 399
    functionName: int_ts_RESP_verify_token
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c
    functionUses: 2
    functionsReached:
    - ts_check_signer_name
    - ts_compute_imprint
    - ts_check_policy
    - TSerr
    - ts_check_nonces
    - X509_ALGOR_free
    - OPENSSL_free
    - ts_check_imprints
    - X509_free
    - TS_TST_INFO_get_version
    - TS_RESP_verify_signature
    linkageType: ''
    returnType: int
    signature: "int_ts_RESP_verify_token(TS_VERIFY_CTX *ctx,\n                                    PKCS7
      *token, TS_TST_INFO *tst_info)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:413,1
    - Dst: sk_ASN1_UTF8STRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:418,1
    - Dst: ts_get_status_text
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:419,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:426,1
    - Dst: ASN1_BIT_STRING_get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:427,1
    - Dst: strcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:430,1
    - Dst: strcat
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:433,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:438,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:440,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:441,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:446,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - response
    argTypes:
    - TS_RESP*
    constantsTouched: []
    func_position:
      end: 449
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 449
    functionName: ts_check_status_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c
    functionUses: 1
    functionsReached:
    - strcat
    - ts_get_status_text
    - TSerr
    - sk_ASN1_UTF8STRING_num
    - ERR_add_error_data
    - OSSL_NELEM
    - strcpy
    - OPENSSL_free
    - ASN1_BIT_STRING_get_bit
    linkageType: ''
    returnType: int
    signature: ts_check_status_info(TS_RESP *response)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_UTF8STRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:458,1
    - Dst: sk_ASN1_UTF8STRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:459,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:460,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:462,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:465,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:466,1
    - Dst: sk_ASN1_UTF8STRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:470,1
    - Dst: sk_ASN1_UTF8STRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:471,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:472,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:475,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:475,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - text
    argTypes:
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 481
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 481
    functionName: ts_get_status_text
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c
    functionUses: 1
    functionsReached:
    - TSerr
    - strncpy
    - sk_ASN1_UTF8STRING_num
    - sk_ASN1_UTF8STRING_value
    - ASN1_STRING_length
    - ASN1_STRING_get0_data
    - OPENSSL_malloc
    linkageType: ''
    returnType: char
    signature: '*ts_get_status_text(STACK_OF(ASN1_UTF8STRING) *text)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:488,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - req_oid
    - tst_info
    argTypes:
    - ASN1_OBJECT*
    - TS_TST_INFO*
    constantsTouched: []
    func_position:
      end: 494
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 494
    functionName: ts_check_policy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c
    functionUses: 1
    functionsReached:
    - OBJ_cmp
    - TSerr
    linkageType: ''
    returnType: int
    signature: "ts_check_policy(const ASN1_OBJECT *req_oid, \n                           const
      TS_TST_INFO *tst_info)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:510,1
    - Dst: EVP_get_digestbyobj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:512,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:513,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:516,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:520,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:521,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:525,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:527,1
    - Dst: EVP_DigestInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:530,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:532,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:533,1
    - Dst: EVP_DigestFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:536,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:538,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:542,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:543,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:544,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 5
    argNames:
    - data
    - tst_info
    - md_alg
    - imprint
    - imprint_len
    argTypes:
    - BIO*
    - TS_TST_INFO*
    - X509_ALGOR**
    - unsigned char**
    - unsigned*
    constantsTouched: []
    func_position:
      end: 548
      start: 496
    functionDepth: 4
    functionLinenumber: 496
    functionLinenumberEnd: 548
    functionName: ts_compute_imprint
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c
    functionUses: 1
    functionsReached:
    - EVP_DigestInit
    - X509_ALGOR_dup
    - EVP_MD_size
    - EVP_DigestUpdate
    - TSerr
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - OPENSSL_free
    - EVP_DigestFinal
    - X509_ALGOR_free
    - BIO_read
    - OPENSSL_malloc
    - EVP_get_digestbyobj
    linkageType: ''
    returnType: int
    signature: "ts_compute_imprint(BIO *data, TS_TST_INFO *tst_info,\n                              X509_ALGOR
      **md_alg,\n                              unsigned char **imprint, unsigned *imprint_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:559,1
    - Dst: ASN1_TYPE_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:564,1
    - Dst: ASN1_TYPE_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:566,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:570,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:571,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:571,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:574,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 4
    argNames:
    - algor_a
    - imprint_a
    - len_a
    - tst_info
    argTypes:
    - X509_ALGOR*
    - unsigned char*
    - unsigned
    - TS_TST_INFO*
    constantsTouched: []
    func_position:
      end: 576
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 576
    functionName: ts_check_imprints
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c
    functionUses: 1
    functionsReached:
    - memcmp
    - TSerr
    - ASN1_STRING_length
    - OBJ_cmp
    - ASN1_STRING_get0_data
    - ASN1_TYPE_get
    linkageType: ''
    returnType: int
    signature: "ts_check_imprints(X509_ALGOR *algor_a,\n                             const
      unsigned char *imprint_a, unsigned len_a,\n                             TS_TST_INFO
      *tst_info)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:583,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:588,1
    - Dst: TSerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:589,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - a
    - tst_info
    argTypes:
    - ASN1_INTEGER*
    - TS_TST_INFO*
    constantsTouched: []
    func_position:
      end: 594
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 594
    functionName: ts_check_nonces
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_cmp
    - TSerr
    linkageType: ''
    returnType: int
    signature: ts_check_nonces(const ASN1_INTEGER *a, TS_TST_INFO *tst_info)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:602,1
    - Dst: X509_name_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:607,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:607,1
    - Dst: X509_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:609,1
    - Dst: ts_find_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:611,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:618,1
    - Dst: X509_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:619,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c:621,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - tsa_name
    - signer
    argTypes:
    - GENERAL_NAME*
    - X509*
    constantsTouched: []
    func_position:
      end: 624
      start: 600
    functionDepth: 2
    functionLinenumber: 600
    functionLinenumberEnd: 624
    functionName: ts_check_signer_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c
    functionUses: 1
    functionsReached:
    - X509_get_ext_d2i
    - ts_find_name
    - STACK_OF
    - X509_get_subject_name
    - GENERAL_NAMES_free
    - X509_name_cmp
    linkageType: ''
    returnType: int
    signature: ts_check_signer_name(GENERAL_NAME *tsa_name, X509 *signer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_err.c:138,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_err.c:139,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_err.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 134
    functionDepth: 4
    functionLinenumber: 134
    functionLinenumberEnd: 144
    functionName: ERR_load_TS_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_err.c
    functionUses: 1
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_TS_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_ACCESS_DESCRIPTION_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_info.c:108,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_info.c:109,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_info.c:112,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_info.c:113,1
    - Dst: ACCESS_DESCRIPTION_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_info.c:114,1
    - Dst: sk_ACCESS_DESCRIPTION_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_info.c:115,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_info.c:116,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_info.c:120,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_info.c:122,1
    - Dst: v2i_GENERAL_NAME_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_info.c:129,1
    - Dst: OPENSSL_strndup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_info.c:131,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_info.c:132,1
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_info.c:136,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_info.c:138,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_info.c:140,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_info.c:141,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_info.c:144,1
    - Dst: sk_ACCESS_DESCRIPTION_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_info.c:149,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 151
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 151
    functionName: v2i_AUTHORITY_INFO_ACCESS
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_info.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - OPENSSL_strndup
    - OBJ_txt2obj
    - sk_ACCESS_DESCRIPTION_pop_free
    - v2i_GENERAL_NAME_ex
    - sk_CONF_VALUE_num
    - strchr
    - X509V3err
    - sk_ACCESS_DESCRIPTION_push
    - sk_ACCESS_DESCRIPTION_new_null
    - ERR_add_error_data
    - ACCESS_DESCRIPTION_new
    - OPENSSL_free
    linkageType: ''
    returnType: AUTHORITY_INFO_ACCESS
    signature: "*v2i_AUTHORITY_INFO_ACCESS(X509V3_EXT_METHOD\n                                                        *method,\n
      \                                                       X509V3_CTX *ctx,\n                                                        STACK_OF(CONF_VALUE)\n
      \                                                       *nval)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_info.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - ACCESS_DESCRIPTION*
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 4
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: i2a_ACCESS_DESCRIPTION
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_info.c
    functionUses: 0
    functionsReached:
    - i2a_ASN1_OBJECT
    linkageType: ''
    returnType: int
    signature: i2a_ACCESS_DESCRIPTION(BIO *bp, const ACCESS_DESCRIPTION *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pku.c:43,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pku.c:45,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pku.c:46,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pku.c:48,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pku.c:51,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pku.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - method
    - usage
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - PKEY_USAGE_PERIOD*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 55
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 55
    functionName: i2r_PKEY_USAGE_PERIOD
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pku.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - BIO_write
    - ASN1_GENERALIZEDTIME_print
    linkageType: ''
    returnType: int
    signature: "i2r_PKEY_USAGE_PERIOD(X509V3_EXT_METHOD *method,\n                                 PKEY_USAGE_PERIOD
      *usage, BIO *out,\n                                 int indent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_POLICYINFO_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:34,1
    - Dst: sk_X509_POLICY_DATA_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:36,1
    - Dst: sk_POLICYINFO_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:39,1
    - Dst: sk_POLICYINFO_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:40,1
    - Dst: policy_data_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:41,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:47,1
    - Dst: sk_X509_POLICY_DATA_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:53,1
    - Dst: sk_X509_POLICY_DATA_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:56,1
    - Dst: policy_data_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:64,1
    - Dst: sk_POLICYINFO_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:65,1
    - Dst: sk_X509_POLICY_DATA_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:67,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 3
    argNames:
    - x
    - policies
    - crit
    argTypes:
    - X509*
    - CERTIFICATEPOLICIES*
    - int
    constantsTouched: []
    func_position:
      end: 71
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 71
    functionName: policy_cache_create
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c
    functionUses: 0
    functionsReached:
    - sk_X509_POLICY_DATA_new
    - sk_X509_POLICY_DATA_pop_free
    - OBJ_obj2nid
    - sk_POLICYINFO_pop_free
    - sk_X509_POLICY_DATA_find
    - policy_data_free
    - policy_data_new
    - sk_POLICYINFO_value
    - sk_X509_POLICY_DATA_push
    - sk_POLICYINFO_num
    linkageType: ''
    returnType: int
    signature: "policy_cache_create(X509 *x,\n                               CERTIFICATEPOLICIES
      *policies, int crit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:84,1
    - Dst: X509_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:99,1
    - Dst: policy_cache_set_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:108,1
    - Dst: policy_cache_set_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:111,1
    - Dst: X509_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:118,1
    - Dst: policy_cache_create
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:130,1
    - Dst: X509_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:137,1
    - Dst: policy_cache_set_mapping
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:144,1
    - Dst: X509_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:149,1
    - Dst: policy_cache_set_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:154,1
    - Dst: POLICY_CONSTRAINTS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:162,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:163,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 68
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 166
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 166
    functionName: policy_cache_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c
    functionUses: 0
    functionsReached:
    - X509_get_ext_d2i
    - policy_cache_set_mapping
    - policy_cache_create
    - policy_cache_set_int
    - POLICY_CONSTRAINTS_free
    - ASN1_INTEGER_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: policy_cache_new(X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: policy_data_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:172,1
    - Dst: sk_X509_POLICY_DATA_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:173,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cache
    argTypes:
    - X509_POLICY_CACHE*
    constantsTouched: []
    func_position:
      end: 175
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 175
    functionName: policy_cache_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - sk_X509_POLICY_DATA_pop_free
    - policy_data_free
    linkageType: ''
    returnType: void
    signature: policy_cache_free(X509_POLICY_CACHE *cache)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:181,1
    - Dst: policy_cache_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:182,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 188
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 188
    functionName: policy_cache_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - policy_cache_new
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: X509_POLICY_CACHE
    signature: '*policy_cache_set(X509 *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_POLICY_DATA_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:196,1
    - Dst: sk_X509_POLICY_DATA_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cache
    - id
    argTypes:
    - X509_POLICY_CACHE*
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 200
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 200
    functionName: policy_cache_find_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c
    functionUses: 0
    functionsReached:
    - sk_X509_POLICY_DATA_find
    - sk_X509_POLICY_DATA_value
    linkageType: ''
    returnType: X509_POLICY_DATA
    signature: "*policy_cache_find_data(const X509_POLICY_CACHE *cache,\n                                         const
      ASN1_OBJECT *id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_POLICY_DATA**
    - X509_POLICY_DATA**
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: policy_data_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c
    functionUses: 0
    functionsReached:
    - OBJ_cmp
    linkageType: ''
    returnType: int
    signature: "policy_data_cmp(const X509_POLICY_DATA *const *a,\n                           const
      X509_POLICY_DATA *const *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - out
    - value
    argTypes:
    - long*
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 216
      start: 208
    functionDepth: 5
    functionLinenumber: 208
    functionLinenumberEnd: 216
    functionName: policy_cache_set_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: int
    signature: policy_cache_set_int(long *out, ASN1_INTEGER *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:78,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:81,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:82,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:83,1
    - Dst: X509V3_EXT_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:85,1
    - Dst: unknown_ext_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:86,1
    - Dst: ASN1_item_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:88,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:88,1
    - Dst: X509V3_EXT_METHOD*::d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:90,1
    - Dst: unknown_ext_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:93,1
    - Dst: X509V3_EXT_METHOD*::i2s
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:96,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:101,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:106,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:107,1
    - Dst: ascii2ebcdic
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:109,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:110,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:111,1
    - Dst: X509V3_EXT_METHOD*::i2v
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:116,1
    - Dst: X509V3_EXT_val_prn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:120,1
    - Dst: X509V3_EXT_METHOD*::i2r
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:123,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:129,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:130,1
    - Dst: ASN1_item_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:132,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:132,1
    - Dst: X509V3_EXT_METHOD*::ext_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:134,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 4
    argNames:
    - out
    - ext
    - flag
    - indent
    argTypes:
    - BIO*
    - X509_EXTENSION*
    - unsigned long
    - int
    constantsTouched: []
    func_position:
      end: 136
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 136
    functionName: X509V3_EXT_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c
    functionUses: 2
    functionsReached:
    - ASN1_item_d2i
    - X509V3_EXT_METHOD*::d2i
    - X509V3_EXT_get
    - X509V3_EXT_METHOD*::ext_free
    - BIO_printf
    - ASN1_STRING_get0_data
    - ascii2ebcdic
    - ASN1_ITEM_ptr
    - ASN1_STRING_length
    - sk_CONF_VALUE_pop_free
    - X509_EXTENSION_get_data
    - X509V3_EXT_METHOD*::i2r
    - ASN1_item_free
    - strlen
    - unknown_ext_print
    - OPENSSL_free
    - STACK_OF
    - X509V3_EXT_val_prn
    - X509V3_EXT_METHOD*::i2v
    - X509V3_EXT_METHOD*::i2s
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag,\n
      \                    int indent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:144,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:148,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:152,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:155,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:156,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:158,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:159,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:160,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:161,1
    - Dst: X509V3_EXT_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:163,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:164,1
    - Dst: ASN1_STRING_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:165,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:165,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:167,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - bp
    - title
    - exts
    - flag
    - indent
    argTypes:
    - BIO*
    - char*
    - STACK_OF*
    - unsigned long
    - int
    constantsTouched: []
    func_position:
      end: 171
      start: 138
    functionDepth: 4
    functionLinenumber: 138
    functionLinenumberEnd: 171
    functionName: X509V3_extensions_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c
    functionUses: 4
    functionsReached:
    - sk_X509_EXTENSION_value
    - X509_EXTENSION_get_data
    - BIO_write
    - i2a_ASN1_OBJECT
    - X509V3_EXT_print
    - ASN1_STRING_print
    - X509_EXTENSION_get_critical
    - BIO_printf
    - sk_X509_EXTENSION_num
    - X509_EXTENSION_get_object
    linkageType: ''
    returnType: int
    signature: "X509V3_extensions_print(BIO *bp, const char *title,\n                            const
      STACK_OF(X509_EXTENSION) *exts,\n                            unsigned long flag,
      int indent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:183,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:185,1
    - Dst: ASN1_parse_dump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:189,1
    - Dst: BIO_dump_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 6
    argNames:
    - out
    - ext
    - extlen
    - flag
    - indent
    - supported
    argTypes:
    - BIO*
    - unsigned char*
    - int
    - unsigned long
    - int
    - int
    constantsTouched: []
    func_position:
      end: 196
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 196
    functionName: unknown_ext_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    - BIO_dump_indent
    - ASN1_parse_dump
    linkageType: ''
    returnType: int
    signature: "unknown_ext_print(BIO *out, const unsigned char *ext, int extlen,\n
      \                            unsigned long flag, int indent, int supported)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:204,1
    - Dst: X509V3_EXT_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:206,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - fp
    - ext
    - flag
    - indent
    argTypes:
    - FILE*
    - X509_EXTENSION*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 209
      start: 199
    functionDepth: 4
    functionLinenumber: 199
    functionLinenumberEnd: 209
    functionName: X509V3_EXT_print_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c
    functionUses: 0
    functionsReached:
    - X509V3_EXT_print
    - BIO_new_fp
    - BIO_free
    linkageType: ''
    returnType: int
    signature: X509V3_EXT_print_fp(FILE *fp, X509_EXTENSION *ext, int flag, int indent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_buf2hexstr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_skey.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - method
    - oct
    argTypes:
    - X509V3_EXT_METHOD*
    - ASN1_OCTET_STRING*
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: i2s_ASN1_OCTET_STRING
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_skey.c
    functionUses: 0
    functionsReached:
    - OPENSSL_buf2hexstr
    linkageType: ''
    returnType: char
    signature: "*i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, \n                            const
      ASN1_OCTET_STRING *oct)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_skey.c:39,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_skey.c:40,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_skey.c:44,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_skey.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - method
    - ctx
    - str
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 53
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 53
    functionName: s2i_ASN1_OCTET_STRING
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_skey.c
    functionUses: 0
    functionsReached:
    - X509V3err
    - ASN1_OCTET_STRING_new
    - ASN1_OCTET_STRING_free
    - OPENSSL_hexstr2buf
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: "*s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method,\n                                         X509V3_CTX
      *ctx, const char *str)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_skey.c:65,1
    - Dst: s2i_ASN1_OCTET_STRING
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_skey.c:66,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_skey.c:68,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_skey.c:69,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_skey.c:77,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_skey.c:87,1
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_skey.c:91,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_skey.c:93,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_skey.c:93,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_skey.c:96,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_skey.c:97,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_skey.c:104,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 3
    argNames:
    - method
    - ctx
    - str
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 106
      start: 55
    functionDepth: 5
    functionLinenumber: 55
    functionLinenumberEnd: 106
    functionName: s2i_skey_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_skey.c
    functionUses: 0
    functionsReached:
    - EVP_Digest
    - ASN1_OCTET_STRING_new
    - EVP_sha1
    - strcmp
    - ASN1_OCTET_STRING_free
    - X509V3err
    - ASN1_OCTET_STRING_set
    - s2i_ASN1_OCTET_STRING
    - X509_PUBKEY_get0_param
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: "*s2i_skey_id(X509V3_EXT_METHOD *method,\n                                      X509V3_CTX
      *ctx, char *str)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:70,1
    - Dst: NAME_CONSTRAINTS_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:74,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:77,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:78,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:79,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:82,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:86,1
    - Dst: GENERAL_SUBTREE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:90,1
    - Dst: v2i_GENERAL_NAME_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:93,1
    - Dst: sk_GENERAL_SUBTREE_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:96,1
    - Dst: sk_GENERAL_SUBTREE_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:97,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:105,1
    - Dst: NAME_CONSTRAINTS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:107,1
    - Dst: GENERAL_SUBTREE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:108,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 111
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 111
    functionName: v2i_NAME_CONSTRAINTS
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - GENERAL_SUBTREE_free
    - STACK_OF
    - strncmp
    - v2i_GENERAL_NAME_ex
    - sk_CONF_VALUE_num
    - sk_GENERAL_SUBTREE_new_null
    - X509V3err
    - NAME_CONSTRAINTS_new
    - sk_GENERAL_SUBTREE_push
    - NAME_CONSTRAINTS_free
    - GENERAL_SUBTREE_new
    linkageType: ''
    returnType: void
    signature: "*v2i_NAME_CONSTRAINTS(const X509V3_EXT_METHOD *method,\n                                  X509V3_CTX
      *ctx, STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_i2r_name_constraints
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:117,1
    - Dst: do_i2r_name_constraints
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - method
    - a
    - bp
    - ind
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 122
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 122
    functionName: i2r_NAME_CONSTRAINTS
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c
    functionUses: 0
    functionsReached:
    - do_i2r_name_constraints
    linkageType: ''
    returnType: int
    signature: "i2r_NAME_CONSTRAINTS(const X509V3_EXT_METHOD *method, void *a,\n                                BIO
      *bp, int ind)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_GENERAL_SUBTREE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:130,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:131,1
    - Dst: sk_GENERAL_SUBTREE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:132,1
    - Dst: sk_GENERAL_SUBTREE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:133,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:134,1
    - Dst: print_nc_ipadd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:136,1
    - Dst: GENERAL_NAME_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:138,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - method
    - trees
    - bp
    - ind
    - name
    argTypes:
    - X509V3_EXT_METHOD*
    - STACK_OF*
    - BIO*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 142
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 142
    functionName: do_i2r_name_constraints
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c
    functionUses: 1
    functionsReached:
    - sk_GENERAL_SUBTREE_num
    - BIO_puts
    - sk_GENERAL_SUBTREE_value
    - GENERAL_NAME_print
    - print_nc_ipadd
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "do_i2r_name_constraints(const X509V3_EXT_METHOD *method,\n                                   STACK_OF(GENERAL_SUBTREE)
      *trees,\n                                   BIO *bp, int ind, const char *name)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:150,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:152,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:156,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:159,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:161,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:164,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - bp
    - ip
    argTypes:
    - BIO*
    - ASN1_OCTET_STRING*
    constantsTouched: []
    func_position:
      end: 166
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 166
    functionName: print_nc_ipadd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: print_nc_ipadd(BIO *bp, ASN1_OCTET_STRING *ip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:185,1
    - Dst: X509_NAME_entry_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:187,1
    - Dst: nc_match
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:192,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:204,1
    - Dst: X509_NAME_get_entry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:207,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:208,1
    - Dst: nc_match
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:212,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:220,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:221,1
    - Dst: nc_match
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:222,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - x
    - nc
    argTypes:
    - X509*
    - NAME_CONSTRAINTS*
    constantsTouched: []
    func_position:
      end: 229
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 229
    functionName: NAME_CONSTRAINTS_check
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c
    functionUses: 0
    functionsReached:
    - nc_match
    - sk_GENERAL_NAME_value
    - sk_GENERAL_NAME_num
    - X509_get_subject_name
    - X509_NAME_get_entry
    - X509_NAME_ENTRY_get_data
    - X509_NAME_get_index_by_NID
    - X509_NAME_entry_count
    linkageType: ''
    returnType: int
    signature: NAME_CONSTRAINTS_check(X509 *x, NAME_CONSTRAINTS *nc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:243,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:250,1
    - Dst: X509_NAME_get_entry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:253,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:254,1
    - Dst: asn1_valid_host
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:256,1
    - Dst: nc_match
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:265,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:267,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - x
    - nc
    argTypes:
    - X509*
    - NAME_CONSTRAINTS*
    constantsTouched: []
    func_position:
      end: 274
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 274
    functionName: NAME_CONSTRAINTS_check_CN
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c
    functionUses: 1
    functionsReached:
    - nc_match
    - X509_get_subject_name
    - X509_NAME_ENTRY_get_data
    - X509_NAME_get_entry
    - X509_NAME_get_index_by_NID
    - OPENSSL_free
    - asn1_valid_host
    linkageType: ''
    returnType: int
    signature: NAME_CONSTRAINTS_check_CN(X509 *x, NAME_CONSTRAINTS *nc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_GENERAL_SUBTREE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:286,1
    - Dst: sk_GENERAL_SUBTREE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:287,1
    - Dst: nc_match_single
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:297,1
    - Dst: sk_GENERAL_SUBTREE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:309,1
    - Dst: sk_GENERAL_SUBTREE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:310,1
    - Dst: nc_match_single
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:316,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 32
    argCount: 2
    argNames:
    - gen
    - nc
    argTypes:
    - GENERAL_NAME*
    - NAME_CONSTRAINTS*
    constantsTouched: []
    func_position:
      end: 326
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 326
    functionName: nc_match
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c
    functionUses: 2
    functionsReached:
    - sk_GENERAL_SUBTREE_value
    - nc_match_single
    - sk_GENERAL_SUBTREE_num
    linkageType: ''
    returnType: int
    signature: nc_match(GENERAL_NAME *gen, NAME_CONSTRAINTS *nc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nc_dn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:332,1
    - Dst: nc_dns
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:335,1
    - Dst: nc_email
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:338,1
    - Dst: nc_uri
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:341,1
    - Dst: nc_ip
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - gen
    - base
    argTypes:
    - GENERAL_NAME*
    - GENERAL_NAME*
    constantsTouched: []
    func_position:
      end: 351
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 351
    functionName: nc_match_single
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c
    functionUses: 1
    functionsReached:
    - nc_email
    - nc_ip
    - nc_dn
    - nc_uri
    - nc_dns
    linkageType: ''
    returnType: int
    signature: nc_match_single(GENERAL_NAME *gen, GENERAL_NAME *base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509_NAME
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:362,1
    - Dst: i2d_X509_NAME
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:364,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:368,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - nm
    - base
    argTypes:
    - X509_NAME*
    - X509_NAME*
    constantsTouched: []
    func_position:
      end: 371
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 371
    functionName: nc_dn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c
    functionUses: 1
    functionsReached:
    - i2d_X509_NAME
    - memcmp
    linkageType: ''
    returnType: int
    signature: nc_dn(X509_NAME *nm, X509_NAME *base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:390,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - dns
    - base
    argTypes:
    - ASN1_IA5STRING*
    - ASN1_IA5STRING*
    constantsTouched: []
    func_position:
      end: 395
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 395
    functionName: nc_dns
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c
    functionUses: 1
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: nc_dns(ASN1_IA5STRING *dns, ASN1_IA5STRING *base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:410,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:423,1
    - Dst: strcasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:431,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - eml
    - base
    argTypes:
    - ASN1_IA5STRING*
    - ASN1_IA5STRING*
    constantsTouched: []
    func_position:
      end: 436
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 436
    functionName: nc_email
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c
    functionUses: 1
    functionsReached:
    - strcasecmp
    - strncmp
    linkageType: ''
    returnType: int
    signature: nc_email(ASN1_IA5STRING *eml, ASN1_IA5STRING *base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:453,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:456,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:459,1
    - Dst: strncasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:470,1
    - Dst: strncasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c:477,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - uri
    - base
    argTypes:
    - ASN1_IA5STRING*
    - ASN1_IA5STRING*
    constantsTouched: []
    func_position:
      end: 482
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 482
    functionName: nc_uri
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c
    functionUses: 1
    functionsReached:
    - strlen
    - strncasecmp
    - strchr
    linkageType: ''
    returnType: int
    signature: nc_uri(ASN1_IA5STRING *uri, ASN1_IA5STRING *base)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - ip
    - base
    argTypes:
    - ASN1_OCTET_STRING*
    - ASN1_OCTET_STRING*
    constantsTouched: []
    func_position:
      end: 513
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 513
    functionName: nc_ip
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: nc_ip(ASN1_OCTET_STRING *ip, ASN1_OCTET_STRING *base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_int.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - meth
    - ctx
    - value
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: s2i_asn1_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_int.c
    functionUses: 0
    functionsReached:
    - s2i_ASN1_INTEGER
    linkageType: ''
    returnType: void
    signature: "*s2i_asn1_int(X509V3_EXT_METHOD *meth, X509V3_CTX *ctx,\n                          const
      char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:83,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:84,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:85,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:87,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:89,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:91,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:94,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:95,1
    - Dst: AUTHORITY_KEYID_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:102,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:103,1
    - Dst: X509_get_ext_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:111,1
    - Dst: X509_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:112,1
    - Dst: X509V3_EXT_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:113,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:115,1
    - Dst: X509_NAME_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:122,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:122,1
    - Dst: ASN1_INTEGER_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:123,1
    - Dst: X509_get_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:123,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:125,1
    - Dst: AUTHORITY_KEYID_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:131,1
    - Dst: sk_GENERAL_NAME_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:135,1
    - Dst: GENERAL_NAME_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:136,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:137,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:138,1
    - Dst: sk_GENERAL_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:154,1
    - Dst: GENERAL_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:155,1
    - Dst: X509_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:156,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:157,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c:158,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 69
    argCount: 3
    argNames:
    - method
    - ctx
    - values
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 160
      start: 67
    functionDepth: 4
    functionLinenumber: 67
    functionLinenumberEnd: 160
    functionName: v2i_AUTHORITY_KEYID
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c
    functionUses: 0
    functionsReached:
    - sk_GENERAL_NAME_new_null
    - sk_GENERAL_NAME_push
    - GENERAL_NAME_new
    - sk_GENERAL_NAME_free
    - ASN1_OCTET_STRING_free
    - X509_get_issuer_name
    - GENERAL_NAME_free
    - X509V3_EXT_d2i
    - sk_CONF_VALUE_value
    - AUTHORITY_KEYID_new
    - X509_NAME_free
    - sk_CONF_VALUE_num
    - ASN1_INTEGER_dup
    - X509_get_ext
    - X509V3err
    - ERR_add_error_data
    - X509_get_serialNumber
    - X509_get_ext_by_NID
    - strcmp
    - X509_NAME_dup
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: AUTHORITY_KEYID
    signature: "*v2i_AUTHORITY_KEYID(X509V3_EXT_METHOD *method,\n                                            X509V3_CTX
      *ctx,\n                                            STACK_OF(CONF_VALUE) *values)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_OBJECT_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_extku.c:79,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_extku.c:80,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_extku.c:84,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_extku.c:85,1
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_extku.c:90,1
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_extku.c:91,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_extku.c:92,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_extku.c:94,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_extku.c:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 100
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 100
    functionName: v2i_EXTENDED_KEY_USAGE
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_extku.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - OBJ_txt2obj
    - sk_ASN1_OBJECT_pop_free
    - sk_CONF_VALUE_num
    - X509V3err
    - X509V3_conf_err
    - sk_ASN1_OBJECT_push
    - sk_ASN1_OBJECT_new_null
    linkageType: ''
    returnType: void
    signature: "*v2i_EXTENDED_KEY_USAGE(const X509V3_EXT_METHOD *method,\n                                    X509V3_CTX
      *ctx,\n                                    STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add_standard_extensions
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:28,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:29,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:31,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:32,1
    - Dst: CONF_load
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:37,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:39,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:40,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:41,1
    - Dst: fopen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:44,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:46,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:47,1
    - Dst: PEM_read_X509
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:49,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:51,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:52,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:54,1
    - Dst: sk_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:56,1
    - Dst: X509V3_EXT_add_conf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:59,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:60,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:61,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:62,1
    - Dst: X509_get_ext_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:65,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:66,1
    - Dst: X509_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:68,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:69,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:69,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:69,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:71,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:73,1
    - Dst: X509V3_EXT_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:74,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c:75,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 46
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 79
      start: 19
    functionDepth: 5
    functionLinenumber: 19
    functionLinenumberEnd: 79
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c
    functionUses: 22
    functionsReached:
    - PEM_read_X509
    - OBJ_nid2ln
    - exit
    - OBJ_obj2nid
    - ERR_print_errors_fp
    - X509_get_ext_count
    - X509_get_ext
    - fclose
    - X509V3_add_standard_extensions
    - sk_pop_free
    - X509V3_EXT_add_conf
    - printf
    - X509V3_EXT_print_fp
    - fprintf
    - fopen
    - CONF_load
    - ERR_load_crypto_strings
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:41,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:43,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:45,1
    - Dst: sk_CONF_VALUE_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:47,1
    - Dst: sk_CONF_VALUE_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:52,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:56,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:57,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:58,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:59,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 3
    argNames:
    - name
    - value
    - extlist
    argTypes:
    - char*
    - char*
    - STACK_OF**
    constantsTouched: []
    func_position:
      end: 61
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 61
    functionName: X509V3_add_value
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_new_null
    - sk_CONF_VALUE_push
    - X509V3err
    - OPENSSL_strdup
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "X509V3_add_value(const char *name, const char *value,\n                     STACK_OF(CONF_VALUE)
      **extlist)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - value
    - extlist
    argTypes:
    - char*
    - unsigned char*
    - STACK_OF**
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: X509V3_add_value_uchar
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - X509V3_add_value
    linkageType: ''
    returnType: int
    signature: "X509V3_add_value_uchar(const char *name, const unsigned char *value,\n
      \                          STACK_OF(CONF_VALUE) **extlist)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:75,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:76,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:77,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF_VALUE*
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: X509V3_conf_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: X509V3_conf_free(CONF_VALUE *conf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:85,1
    - Dst: X509V3_add_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - name
    - asn1_bool
    - extlist
    argTypes:
    - char*
    - int
    - STACK_OF**
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: X509V3_add_value_bool
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - X509V3_add_value
    linkageType: ''
    returnType: int
    signature: "X509V3_add_value_bool(const char *name, int asn1_bool,\n                          STACK_OF(CONF_VALUE)
      **extlist)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - name
    - asn1_bool
    - extlist
    argTypes:
    - char*
    - int
    - STACK_OF**
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: X509V3_add_value_bool_nf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - X509V3_add_value
    linkageType: ''
    returnType: int
    signature: "X509V3_add_value_bool_nf(const char *name, int asn1_bool,\n                             STACK_OF(CONF_VALUE)
      **extlist)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ENUMERATED_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:104,1
    - Dst: BN_bn2dec
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:105,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:106,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - method
    - a
    argTypes:
    - X509V3_EXT_METHOD*
    - ASN1_ENUMERATED*
    constantsTouched: []
    func_position:
      end: 109
      start: 97
    functionDepth: 6
    functionLinenumber: 97
    functionLinenumberEnd: 109
    functionName: i2s_ASN1_ENUMERATED
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - BN_bn2dec
    - X509V3err
    - ASN1_ENUMERATED_to_BN
    - BN_free
    linkageType: ''
    returnType: char
    signature: '*i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *method, const ASN1_ENUMERATED
      *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:118,1
    - Dst: BN_bn2dec
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:119,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:120,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - method
    - a
    argTypes:
    - X509V3_EXT_METHOD*
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 6
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: i2s_ASN1_INTEGER
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 1
    functionsReached:
    - BN_bn2dec
    - X509V3err
    - BN_free
    - ASN1_INTEGER_to_BN
    linkageType: ''
    returnType: char
    signature: '*i2s_ASN1_INTEGER(X509V3_EXT_METHOD *method, const ASN1_INTEGER *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:132,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:135,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:137,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:153,1
    - Dst: BN_dec2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:155,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:158,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:159,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:163,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:166,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:167,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:169,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 2
    argNames:
    - method
    - value
    argTypes:
    - X509V3_EXT_METHOD*
    - char*
    constantsTouched: []
    func_position:
      end: 176
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 176
    functionName: s2i_ASN1_INTEGER
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 2
    functionsReached:
    - BN_new
    - BN_dec2bn
    - BN_free
    - BN_is_zero
    - BN_hex2bn
    - BN_to_ASN1_INTEGER
    - X509V3err
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: '*s2i_ASN1_INTEGER(X509V3_EXT_METHOD *method, const char *value)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2s_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:186,1
    - Dst: X509V3_add_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:188,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - name
    - aint
    - extlist
    argTypes:
    - char*
    - ASN1_INTEGER*
    - STACK_OF**
    constantsTouched: []
    func_position:
      end: 191
      start: 178
    functionDepth: 7
    functionLinenumber: 178
    functionLinenumberEnd: 191
    functionName: X509V3_add_value_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - X509V3_add_value
    - i2s_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: "X509V3_add_value_int(const char *name, const ASN1_INTEGER *aint,\n
      \                        STACK_OF(CONF_VALUE) **extlist)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:199,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:200,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:201,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:202,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:203,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:204,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:208,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:209,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:210,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:211,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:212,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:213,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:218,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:220,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 17
    argCount: 2
    argNames:
    - value
    - asn1_bool
    argTypes:
    - CONF_VALUE*
    - int*
    constantsTouched: []
    func_position:
      end: 222
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 222
    functionName: X509V3_get_value_bool
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 2
    functionsReached:
    - X509V3err
    - X509V3_conf_err
    - strcmp
    linkageType: ''
    returnType: int
    signature: X509V3_get_value_bool(const CONF_VALUE *value, int *asn1_bool)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:228,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - aint
    argTypes:
    - CONF_VALUE*
    - ASN1_INTEGER**
    constantsTouched: []
    func_position:
      end: 234
      start: 224
    functionDepth: 5
    functionLinenumber: 224
    functionLinenumberEnd: 234
    functionName: X509V3_get_value_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - X509V3_conf_err
    - s2i_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: X509V3_get_value_int(const CONF_VALUE *value, ASN1_INTEGER **aint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:337,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:341,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:342,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 349
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 349
    functionName: strip_spaces
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - strlen
    - isspace
    linkageType: ''
    returnType: char
    signature: '*strip_spaces(char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:360,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:361,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - name
    - cmp
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 367
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 367
    functionName: name_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 2
    functionsReached:
    - strlen
    - strncmp
    linkageType: ''
    returnType: int
    signature: name_cmp(const char *name, const char *cmp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 372
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 372
    functionName: sk_strcmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: sk_strcmp(const char *const *a, const char *const *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:425,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:433,1
    - Dst: X509_NAME_get_entry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:435,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:436,1
    - Dst: append_ia5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:437,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:440,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:441,1
    - Dst: append_ia5
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:444,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - name
    - gens
    argTypes:
    - X509_NAME*
    - GENERAL_NAMES*
    constantsTouched: []
    func_position:
      end: 448
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 448
    functionName: get_email
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - sk_GENERAL_NAME_value
    - append_ia5
    - sk_GENERAL_NAME_num
    - X509_NAME_get_entry
    - X509_NAME_ENTRY_get_data
    - X509_NAME_get_index_by_NID
    linkageType: ''
    returnType: STACK_OF
    signature: "*get_email(X509_NAME *name,\n                                           GENERAL_NAMES
      *gens)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - OPENSSL_STRING
    constantsTouched: []
    func_position:
      end: 453
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 453
    functionName: str_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: str_free(OPENSSL_STRING str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - p
    - plen
    - subject_len
    - flags
    argTypes:
    - unsigned char**
    - size_t*
    - size_t
    - unsigned int
    constantsTouched: []
    func_position:
      end: 519
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 519
    functionName: skip_prefix
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "skip_prefix(const unsigned char **p, size_t *plen,\n                        size_t
      subject_len,\n                        unsigned int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:526,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 5
    argNames:
    - pattern
    - pattern_len
    - subject
    - subject_len
    - flags
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned int
    constantsTouched: []
    func_position:
      end: 548
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 548
    functionName: equal_nocase
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: "equal_nocase(const unsigned char *pattern, size_t pattern_len,\n                        const
      unsigned char *subject, size_t subject_len,\n                        unsigned
      int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:555,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - pattern
    - pattern_len
    - subject
    - subject_len
    - flags
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned int
    constantsTouched: []
    func_position:
      end: 559
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 559
    functionName: equal_case
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - memcmp
    linkageType: ''
    returnType: int
    signature: "equal_case(const unsigned char *pattern, size_t pattern_len,\n                      const
      unsigned char *subject, size_t subject_len,\n                      unsigned
      int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: equal_nocase
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:580,1
    - Dst: equal_case
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:587,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 5
    argNames:
    - a
    - a_len
    - b
    - b_len
    - unused_flags
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned int
    constantsTouched: []
    func_position:
      end: 588
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 588
    functionName: equal_email
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - equal_case
    - equal_nocase
    linkageType: ''
    returnType: int
    signature: "equal_email(const unsigned char *a, size_t a_len,\n                       const
      unsigned char *b, size_t b_len,\n                       unsigned int unused_flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: equal_nocase
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:607,1
    - Dst: equal_nocase
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:611,1
    - Dst: strncasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:626,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 24
    argCount: 7
    argNames:
    - prefix
    - prefix_len
    - suffix
    - suffix_len
    - subject
    - subject_len
    - flags
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned int
    constantsTouched: []
    func_position:
      end: 643
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 643
    functionName: wildcard_match
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - equal_nocase
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: "wildcard_match(const unsigned char *prefix, size_t prefix_len,\n                          const
      unsigned char *suffix, size_t suffix_len,\n                          const unsigned
      char *subject, size_t subject_len,\n                          unsigned int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:685,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 33
    argCount: 3
    argNames:
    - p
    - len
    - flags
    argTypes:
    - unsigned char*
    - size_t
    - unsigned int
    constantsTouched: []
    func_position:
      end: 709
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 709
    functionName: valid_star
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - strncasecmp
    linkageType: ''
    returnType: unsigned char
    signature: "*valid_star(const unsigned char *p, size_t len,\n                                       unsigned
      int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: valid_star
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:723,1
    - Dst: equal_nocase
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:725,1
    - Dst: wildcard_match
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:727,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - pattern
    - pattern_len
    - subject
    - subject_len
    - flags
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned int
    constantsTouched: []
    func_position:
      end: 730
      start: 712
    functionDepth: 3
    functionLinenumber: 712
    functionLinenumberEnd: 730
    functionName: equal_wildcard
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - equal_nocase
    - wildcard_match
    - valid_star
    linkageType: ''
    returnType: int
    signature: "equal_wildcard(const unsigned char *pattern, size_t pattern_len,\n
      \                         const unsigned char *subject, size_t subject_len,\n
      \                         unsigned int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: equal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:750,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:751,1
    - Dst: OPENSSL_strndup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:754,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:758,1
    - Dst: equal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:766,1
    - Dst: OPENSSL_strndup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:768,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:769,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 7
    argNames:
    - a
    - cmp_type
    - equal
    - flags
    - b
    - blen
    - peername
    argTypes:
    - ASN1_STRING*
    - int
    - equal_fn
    - unsigned int
    - char*
    - size_t
    - char**
    constantsTouched: []
    func_position:
      end: 772
      start: 738
    functionDepth: 2
    functionLinenumber: 738
    functionLinenumberEnd: 772
    functionName: do_check_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strndup
    - equal
    - memcmp
    - ASN1_STRING_to_UTF8
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: "do_check_string(const ASN1_STRING *a, int cmp_type, equal_fn equal,\n
      \                          unsigned int flags, const char *b, size_t blen,\n
      \                          char **peername)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:808,1
    - Dst: X509_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:810,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:812,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:815,1
    - Dst: do_check_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:826,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:830,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:842,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:843,1
    - Dst: X509_NAME_get_entry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:844,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:845,1
    - Dst: do_check_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:848,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 6
    argNames:
    - x
    - chk
    - chklen
    - flags
    - check_type
    - peername
    argTypes:
    - X509*
    - char*
    - size_t
    - unsigned int
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 853
      start: 774
    functionDepth: 3
    functionLinenumber: 774
    functionLinenumberEnd: 853
    functionName: do_x509_check
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - X509_get_ext_d2i
    - do_check_string
    - sk_GENERAL_NAME_value
    - sk_GENERAL_NAME_num
    - X509_get_subject_name
    - X509_NAME_get_entry
    - X509_NAME_ENTRY_get_data
    - GENERAL_NAMES_free
    - strlen
    - X509_NAME_get_index_by_NID
    linkageType: ''
    returnType: int
    signature: "do_x509_check(X509 *x, const char *chk, size_t chklen,\n                         unsigned
      int flags, int check_type, char **peername)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:866,1
    - Dst: memchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:867,1
    - Dst: do_x509_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:871,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 5
    argNames:
    - x
    - chk
    - chklen
    - flags
    - peername
    argTypes:
    - X509*
    - char*
    - size_t
    - unsigned int
    - char**
    constantsTouched: []
    func_position:
      end: 872
      start: 855
    functionDepth: 4
    functionLinenumber: 855
    functionLinenumberEnd: 872
    functionName: X509_check_host
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 1
    functionsReached:
    - strlen
    - memchr
    - do_x509_check
    linkageType: ''
    returnType: int
    signature: "X509_check_host(X509 *x, const char *chk, size_t chklen,\n                    unsigned
      int flags, char **peername)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:885,1
    - Dst: memchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:886,1
    - Dst: do_x509_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:890,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - x
    - chk
    - chklen
    - flags
    argTypes:
    - X509*
    - char*
    - size_t
    - unsigned int
    constantsTouched: []
    func_position:
      end: 891
      start: 874
    functionDepth: 4
    functionLinenumber: 874
    functionLinenumberEnd: 891
    functionName: X509_check_email
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 1
    functionsReached:
    - strlen
    - memchr
    - do_x509_check
    linkageType: ''
    returnType: int
    signature: "X509_check_email(X509 *x, const char *chk, size_t chklen,\n                     unsigned
      int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_x509_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - x
    - chk
    - chklen
    - flags
    argTypes:
    - X509*
    - unsigned char*
    - size_t
    - unsigned int
    constantsTouched: []
    func_position:
      end: 899
      start: 893
    functionDepth: 4
    functionLinenumber: 893
    functionLinenumberEnd: 899
    functionName: X509_check_ip
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 1
    functionsReached:
    - do_x509_check
    linkageType: ''
    returnType: int
    signature: "X509_check_ip(X509 *x, const unsigned char *chk, size_t chklen,\n
      \                 unsigned int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: a2i_ipadd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:908,1
    - Dst: do_x509_check
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:911,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - x
    - ipasc
    - flags
    argTypes:
    - X509*
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 912
      start: 901
    functionDepth: 4
    functionLinenumber: 901
    functionLinenumberEnd: 912
    functionName: X509_check_ip_asc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - a2i_ipadd
    - do_x509_check
    linkageType: ''
    returnType: int
    signature: X509_check_ip_asc(X509 *x, const char *ipasc, unsigned int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: a2i_ipadd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:927,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:932,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:935,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:936,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ipasc
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 940
      start: 919
    functionDepth: 2
    functionLinenumber: 919
    functionLinenumberEnd: 940
    functionName: a2i_IPADDRESS
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_set
    - ASN1_OCTET_STRING_new
    - a2i_ipadd
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: '*a2i_IPADDRESS(const char *ipasc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:948,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:951,1
    - Dst: a2i_ipadd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:957,1
    - Dst: a2i_ipadd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:962,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:964,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:970,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:973,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:979,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:980,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - ipasc
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 982
      start: 942
    functionDepth: 2
    functionLinenumber: 942
    functionLinenumberEnd: 982
    functionName: a2i_IPADDRESS_NC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_new
    - a2i_ipadd
    - strchr
    - ASN1_OCTET_STRING_free
    - ASN1_OCTET_STRING_set
    - OPENSSL_strdup
    - OPENSSL_free
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: '*a2i_IPADDRESS_NC(const char *ipasc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:988,1
    - Dst: ipv6_from_asc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:989,1
    - Dst: ipv4_from_asc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:993,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ipout
    - ipasc
    argTypes:
    - unsigned char*
    - char*
    constantsTouched: []
    func_position:
      end: 997
      start: 984
    functionDepth: 1
    functionLinenumber: 984
    functionLinenumberEnd: 997
    functionName: a2i_ipadd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 4
    functionsReached:
    - ipv6_from_asc
    - ipv4_from_asc
    - strchr
    linkageType: ''
    returnType: int
    signature: a2i_ipadd(unsigned char *ipout, const char *ipasc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:1002,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 2
    argNames:
    - v4
    - in
    argTypes:
    - unsigned char*
    - char*
    constantsTouched: []
    func_position:
      end: 1012
      start: 999
    functionDepth: 0
    functionLinenumber: 999
    functionLinenumberEnd: 1012
    functionName: ipv4_from_asc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 1
    functionsReached:
    - sscanf
    linkageType: ''
    returnType: int
    signature: ipv4_from_asc(unsigned char *v4, const char *in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONF_parse_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:1036,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:1075,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:1077,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:1080,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:1084,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 2
    argNames:
    - v6
    - in
    argTypes:
    - unsigned char*
    - char*
    constantsTouched: []
    func_position:
      end: 1087
      start: 1025
    functionDepth: 1
    functionLinenumber: 1025
    functionLinenumberEnd: 1087
    functionName: ipv6_from_asc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 1
    functionsReached:
    - memset
    - memcpy
    - CONF_parse_list
    linkageType: ''
    returnType: int
    signature: ipv6_from_asc(unsigned char *v6, const char *in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ipv4_from_asc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:1112,1
    - Dst: ipv6_hex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:1116,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - elem
    - len
    - usr
    argTypes:
    - char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1122
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1122
    functionName: ipv6_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 0
    functionsReached:
    - ipv4_from_asc
    - ipv6_hex
    linkageType: ''
    returnType: int
    signature: ipv6_cb(const char *elem, int len, void *usr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_hexchar2int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c:1139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - out
    - in
    - inlen
    argTypes:
    - unsigned char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1147
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1147
    functionName: ipv6_hex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
    functionUses: 1
    functionsReached:
    - OPENSSL_hexchar2int
    linkageType: ''
    returnType: int
    signature: ipv6_hex(unsigned char *out, const char *in, int inlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_node.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_POLICY_NODE**
    - X509_POLICY_NODE**
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: node_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_node.c
    functionUses: 0
    functionsReached:
    - OBJ_cmp
    linkageType: ''
    returnType: int
    signature: "node_cmp(const X509_POLICY_NODE *const *a,\n                    const
      X509_POLICY_NODE *const *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tree
    argTypes:
    - X509_POLICY_TREE*
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: X509_policy_tree_level_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: X509_policy_tree_level_count(const X509_POLICY_TREE *tree)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - tree
    - i
    argTypes:
    - X509_POLICY_TREE*
    - int
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: X509_policy_tree_get0_level
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_POLICY_LEVEL
    signature: "*X509_policy_tree_get0_level(const X509_POLICY_TREE *tree,\n                                               int
      i)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_POLICY_NODE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_lib.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - level
    argTypes:
    - X509_POLICY_LEVEL*
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: X509_policy_level_node_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_lib.c
    functionUses: 0
    functionsReached:
    - sk_X509_POLICY_NODE_num
    linkageType: ''
    returnType: int
    signature: X509_policy_level_node_count(X509_POLICY_LEVEL *level)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_POLICY_NODE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_lib.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - level
    - i
    argTypes:
    - X509_POLICY_LEVEL*
    - int
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: X509_policy_level_get0_node
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_lib.c
    functionUses: 0
    functionsReached:
    - sk_X509_POLICY_NODE_value
    linkageType: ''
    returnType: X509_POLICY_NODE
    signature: '*X509_policy_level_get0_node(X509_POLICY_LEVEL *level, int i)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - X509_POLICY_NODE*
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: X509_policy_node_get0_policy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: '*X509_policy_node_get0_policy(const X509_POLICY_NODE *node)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - X509_POLICY_NODE*
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: X509_policy_node_get0_parent
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_POLICY_NODE
    signature: "*X509_policy_node_get0_parent(const X509_POLICY_NODE\n                                                     *node)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_data.c:22,1
    - Dst: sk_POLICYQUALINFO_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_data.c:25,1
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_data.c:26,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_data.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - X509_POLICY_DATA*
    constantsTouched: []
    func_position:
      end: 28
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 28
    functionName: policy_data_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_data.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - ASN1_OBJECT_free
    - sk_POLICYQUALINFO_pop_free
    - sk_ASN1_OBJECT_pop_free
    linkageType: ''
    returnType: void
    signature: policy_data_free(X509_POLICY_DATA *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_data.c:46,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_data.c:51,1
    - Dst: sk_ASN1_OBJECT_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_data.c:54,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_data.c:56,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_data.c:57,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - policy
    - cid
    - crit
    argTypes:
    - POLICYINFO*
    - ASN1_OBJECT*
    - int
    constantsTouched: []
    func_position:
      end: 77
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 77
    functionName: policy_data_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_data.c
    functionUses: 1
    functionsReached:
    - ASN1_OBJECT_free
    - OBJ_dup
    - OPENSSL_zalloc
    - sk_ASN1_OBJECT_new_null
    - OPENSSL_free
    linkageType: ''
    returnType: X509_POLICY_DATA
    signature: "*policy_data_new(POLICYINFO *policy,\n                                  const
      ASN1_OBJECT *cid, int crit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:48,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:49,1
    - Dst: X509V3_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:51,1
    - Dst: X509V3_parse_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:53,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:55,1
    - Dst: v2i_GENERAL_NAMES
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:58,1
    - Dst: X509V3_section_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:60,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - sect
    argTypes:
    - X509V3_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 64
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 64
    functionName: gnames_from_sectname
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - X509V3err
    - X509V3_parse_list
    - X509V3_get_section
    - X509V3_section_free
    - v2i_GENERAL_NAMES
    - sk_CONF_VALUE_pop_free
    linkageType: ''
    returnType: STACK_OF
    signature: "*gnames_from_sectname(X509V3_CTX *ctx,\n                                                    char
      *sect)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:69,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:70,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:72,1
    - Dst: gnames_from_sectname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:73,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:76,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:78,1
    - Dst: X509_NAME_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:80,1
    - Dst: X509V3_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:83,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:85,1
    - Dst: X509V3_NAME_from_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:89,1
    - Dst: X509V3_section_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:90,1
    - Dst: X509_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:93,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:94,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:99,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:100,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:101,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:109,1
    - Dst: DIST_POINT_NAME_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:114,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:128,1
    - Dst: sk_X509_NAME_ENTRY_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:129,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 3
    argNames:
    - pdp
    - ctx
    - cnf
    argTypes:
    - DIST_POINT_NAME**
    - X509V3_CTX*
    - CONF_VALUE*
    constantsTouched: []
    func_position:
      end: 131
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 131
    functionName: set_dist_point_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c
    functionUses: 0
    functionsReached:
    - strcmp
    - STACK_OF
    - gnames_from_sectname
    - strncmp
    - X509_NAME_free
    - sk_GENERAL_NAME_pop_free
    - X509V3err
    - DIST_POINT_NAME_new
    - sk_X509_NAME_ENTRY_num
    - X509V3_get_section
    - X509V3_section_free
    - X509_NAME_new
    - X509V3_NAME_from_section
    - sk_X509_NAME_ENTRY_pop_free
    - sk_X509_NAME_ENTRY_value
    linkageType: ''
    returnType: int
    signature: "set_dist_point_name(DIST_POINT_NAME **pdp, X509V3_CTX *ctx,\n                               CONF_VALUE
      *cnf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:148,1
    - Dst: X509V3_parse_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:152,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:157,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:158,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:160,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:165,1
    - Dst: ASN1_BIT_STRING_set_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:166,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:177,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 2
    argNames:
    - preas
    - value
    argTypes:
    - ASN1_BIT_STRING**
    - char*
    constantsTouched: []
    func_position:
      end: 179
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 179
    functionName: set_reasons
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - strcmp
    - STACK_OF
    - ASN1_BIT_STRING_new
    - sk_CONF_VALUE_num
    - X509V3_parse_list
    - ASN1_BIT_STRING_set_bit
    - sk_CONF_VALUE_pop_free
    linkageType: ''
    returnType: int
    signature: set_reasons(ASN1_BIT_STRING **preas, char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:186,1
    - Dst: ASN1_BIT_STRING_get_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:188,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:192,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:193,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:197,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - out
    - rname
    - rflags
    - indent
    argTypes:
    - BIO*
    - char*
    - ASN1_BIT_STRING*
    - int
    constantsTouched: []
    func_position:
      end: 201
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 201
    functionName: print_reasons
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - ASN1_BIT_STRING_get_bit
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: "print_reasons(BIO *out, const char *rname,\n                         ASN1_BIT_STRING
      *rflags, int indent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DIST_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:209,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:212,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:214,1
    - Dst: set_dist_point_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:215,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:220,1
    - Dst: set_reasons
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:221,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:223,1
    - Dst: gnames_from_sectname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:224,1
    - Dst: DIST_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:233,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 2
    argNames:
    - ctx
    - nval
    argTypes:
    - X509V3_CTX*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 235
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 235
    functionName: crldp_from_section
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - set_dist_point_name
    - strcmp
    - gnames_from_sectname
    - sk_CONF_VALUE_num
    - DIST_POINT_free
    - set_reasons
    - DIST_POINT_new
    linkageType: ''
    returnType: DIST_POINT
    signature: "*crldp_from_section(X509V3_CTX *ctx,\n                                      STACK_OF(CONF_VALUE)
      *nval)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:240,1
    - Dst: sk_DIST_POINT_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:246,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:248,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:250,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:252,1
    - Dst: X509V3_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:253,1
    - Dst: crldp_from_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:256,1
    - Dst: X509V3_section_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:257,1
    - Dst: sk_DIST_POINT_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:260,1
    - Dst: DIST_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:261,1
    - Dst: v2i_GENERAL_NAME
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:265,1
    - Dst: GENERAL_NAMES_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:267,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:269,1
    - Dst: DIST_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:272,1
    - Dst: sk_DIST_POINT_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:274,1
    - Dst: DIST_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:275,1
    - Dst: DIST_POINT_NAME_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:278,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:288,1
    - Dst: GENERAL_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:290,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:291,1
    - Dst: sk_DIST_POINT_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:292,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 60
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 294
      start: 237
    functionDepth: 4
    functionLinenumber: 237
    functionLinenumberEnd: 294
    functionName: v2i_crld
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - v2i_GENERAL_NAME
    - STACK_OF
    - sk_DIST_POINT_push
    - sk_DIST_POINT_new_null
    - sk_GENERAL_NAME_push
    - sk_CONF_VALUE_num
    - DIST_POINT_free
    - GENERAL_NAMES_free
    - X509V3err
    - sk_DIST_POINT_pop_free
    - DIST_POINT_NAME_new
    - GENERAL_NAMES_new
    - X509V3_get_section
    - X509V3_section_free
    - crldp_from_section
    - DIST_POINT_new
    - GENERAL_NAME_free
    linkageType: ''
    returnType: void
    signature: "*v2i_crld(const X509V3_EXT_METHOD *method,\n                      X509V3_CTX
      *ctx, STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    constantsTouched: []
    func_position:
      end: 311
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 311
    functionName: dpn_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c
    functionUses: 0
    functionsReached:
    - X509_NAME_free
    linkageType: ''
    returnType: int
    signature: "dpn_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n                  void
      *exarg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISSUING_DIST_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:370,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:373,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:374,1
    - Dst: set_dist_point_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:377,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:382,1
    - Dst: X509V3_get_value_bool
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:383,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:385,1
    - Dst: X509V3_get_value_bool
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:386,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:388,1
    - Dst: X509V3_get_value_bool
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:389,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:391,1
    - Dst: X509V3_get_value_bool
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:392,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:394,1
    - Dst: set_reasons
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:395,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:398,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:399,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:406,1
    - Dst: ISSUING_DIST_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:408,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 54
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 410
      start: 363
    functionDepth: 3
    functionLinenumber: 363
    functionLinenumberEnd: 410
    functionName: v2i_idp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - set_dist_point_name
    - strcmp
    - sk_CONF_VALUE_num
    - X509V3err
    - set_reasons
    - ISSUING_DIST_POINT_new
    - X509V3_conf_err
    - ISSUING_DIST_POINT_free
    - X509V3_get_value_bool
    linkageType: ''
    returnType: void
    signature: "*v2i_idp(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,\n                     STACK_OF(CONF_VALUE)
      *nval)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:426,1
    - Dst: print_gens
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:427,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:431,1
    - Dst: X509_NAME_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:432,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - out
    - dpn
    - indent
    argTypes:
    - BIO*
    - DIST_POINT_NAME*
    - int
    constantsTouched: []
    func_position:
      end: 436
      start: 423
    functionDepth: 7
    functionLinenumber: 423
    functionLinenumberEnd: 436
    functionName: print_distpoint
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - print_gens
    - X509_NAME_print_ex
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: print_distpoint(BIO *out, DIST_POINT_NAME *dpn, int indent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: print_distpoint
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:443,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:445,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:447,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:449,1
    - Dst: print_reasons
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:451,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:453,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:457,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 4
    argNames:
    - method
    - pidp
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 460
      start: 438
    functionDepth: 8
    functionLinenumber: 438
    functionLinenumberEnd: 460
    functionName: i2r_idp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c
    functionUses: 0
    functionsReached:
    - print_distpoint
    - BIO_printf
    - print_reasons
    linkageType: ''
    returnType: int
    signature: "i2r_idp(const X509V3_EXT_METHOD *method, void *pidp, BIO *out,\n                   int
      indent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:465,1
    - Dst: sk_DIST_POINT_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:468,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:469,1
    - Dst: sk_DIST_POINT_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:470,1
    - Dst: print_distpoint
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:472,1
    - Dst: print_reasons
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:474,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:476,1
    - Dst: print_gens
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - method
    - pcrldp
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 481
      start: 462
    functionDepth: 8
    functionLinenumber: 462
    functionLinenumberEnd: 481
    functionName: i2r_crldp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c
    functionUses: 0
    functionsReached:
    - print_gens
    - BIO_puts
    - STACK_OF
    - sk_DIST_POINT_value
    - sk_DIST_POINT_num
    - print_reasons
    - print_distpoint
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "i2r_crldp(const X509V3_EXT_METHOD *method, void *pcrldp, BIO *out,\n
      \                    int indent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:486,1
    - Dst: X509_NAME_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:491,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:494,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:495,1
    - Dst: X509_NAME_add_entry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:496,1
    - Dst: X509_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:497,1
    - Dst: i2d_X509_NAME
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:503,1
    - Dst: X509_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c:504,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - dpn
    - iname
    argTypes:
    - DIST_POINT_NAME*
    - X509_NAME*
    constantsTouched: []
    func_position:
      end: 509
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 509
    functionName: DIST_POINT_set_dpname
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c
    functionUses: 1
    functionsReached:
    - STACK_OF
    - i2d_X509_NAME
    - X509_NAME_free
    - X509_NAME_add_entry
    - X509_NAME_dup
    - sk_X509_NAME_ENTRY_num
    - sk_X509_NAME_ENTRY_value
    linkageType: ''
    returnType: int
    signature: DIST_POINT_set_dpname(DIST_POINT_NAME *dpn, X509_NAME *iname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_genn.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - GENERAL_NAME*
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: GENERAL_NAME_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_genn.c
    functionUses: 1
    functionsReached:
    - ASN1_dup
    linkageType: ''
    returnType: GENERAL_NAME
    signature: '*GENERAL_NAME_dup(GENERAL_NAME *a)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_genn.c:70,1
    - Dst: OTHERNAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_genn.c:74,1
    - Dst: ASN1_STRING_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_genn.c:80,1
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_genn.c:84,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_genn.c:88,1
    - Dst: OBJ_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_genn.c:92,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - GENERAL_NAME*
    - GENERAL_NAME*
    constantsTouched: []
    func_position:
      end: 96
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 96
    functionName: GENERAL_NAME_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_genn.c
    functionUses: 1
    functionsReached:
    - ASN1_STRING_cmp
    - ASN1_TYPE_cmp
    - X509_NAME_cmp
    - OBJ_cmp
    - ASN1_OCTET_STRING_cmp
    - OTHERNAME_cmp
    linkageType: ''
    returnType: int
    signature: GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_genn.c:106,1
    - Dst: ASN1_TYPE_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_genn.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - OTHERNAME*
    - OTHERNAME*
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: OTHERNAME_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_genn.c
    functionUses: 1
    functionsReached:
    - OBJ_cmp
    - ASN1_TYPE_cmp
    linkageType: ''
    returnType: int
    signature: OTHERNAME_cmp(OTHERNAME *a, OTHERNAME *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - a
    - type
    - value
    argTypes:
    - GENERAL_NAME*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 144
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 144
    functionName: GENERAL_NAME_set0_value
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_genn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: GENERAL_NAME_set0_value(GENERAL_NAME *a, int type, void *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - a
    - ptype
    argTypes:
    - GENERAL_NAME*
    - int*
    constantsTouched: []
    func_position:
      end: 175
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 175
    functionName: GENERAL_NAME_get0_value
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_genn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*GENERAL_NAME_get0_value(GENERAL_NAME *a, int *ptype)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OTHERNAME_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_genn.c:181,1
    - Dst: GENERAL_NAME_set0_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_genn.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - gen
    - oid
    - value
    argTypes:
    - GENERAL_NAME*
    - ASN1_OBJECT*
    - ASN1_TYPE*
    constantsTouched: []
    func_position:
      end: 188
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 188
    functionName: GENERAL_NAME_set0_othername
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_genn.c
    functionUses: 0
    functionsReached:
    - OTHERNAME_new
    - GENERAL_NAME_set0_value
    linkageType: ''
    returnType: int
    signature: "GENERAL_NAME_set0_othername(GENERAL_NAME *gen,\n                                ASN1_OBJECT
      *oid, ASN1_TYPE *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - gen
    - poid
    - pvalue
    argTypes:
    - GENERAL_NAME*
    - ASN1_OBJECT**
    - ASN1_TYPE**
    constantsTouched: []
    func_position:
      end: 200
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 200
    functionName: GENERAL_NAME_get0_otherName
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_genn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "GENERAL_NAME_get0_otherName(GENERAL_NAME *gen,\n                                ASN1_OBJECT
      **poid, ASN1_TYPE **pvalue)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:136,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:140,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:145,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:149,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:153,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:157,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:161,1
    - Dst: X509_NAME_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:162,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:168,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:170,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:172,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:175,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:177,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:183,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:184,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 2
    argNames:
    - out
    - gen
    argTypes:
    - BIO*
    - GENERAL_NAME*
    constantsTouched: []
    func_position:
      end: 188
      start: 130
    functionDepth: 7
    functionLinenumber: 130
    functionLinenumberEnd: 188
    functionName: GENERAL_NAME_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c
    functionUses: 3
    functionsReached:
    - i2a_ASN1_OBJECT
    - BIO_printf
    - X509_NAME_print_ex
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_GENERAL_NAME_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:198,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:199,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:202,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:203,1
    - Dst: name_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:204,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:205,1
    - Dst: copy_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:206,1
    - Dst: v2i_GENERAL_NAME
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:210,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:212,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:217,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 219
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 219
    functionName: v2i_issuer_alt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - copy_issuer
    - name_cmp
    - sk_GENERAL_NAME_new_null
    - strcmp
    - v2i_GENERAL_NAME
    - sk_GENERAL_NAME_push
    - sk_GENERAL_NAME_pop_free
    - sk_CONF_VALUE_num
    - X509V3err
    linkageType: ''
    returnType: GENERAL_NAMES
    signature: "*v2i_issuer_alt(X509V3_EXT_METHOD *method,\n                                     X509V3_CTX
      *ctx,\n                                     STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:233,1
    - Dst: X509_get_ext_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:236,1
    - Dst: X509_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:239,1
    - Dst: X509V3_EXT_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:240,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:241,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:245,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:246,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:247,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:248,1
    - Dst: sk_GENERAL_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:252,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - gens
    argTypes:
    - X509V3_CTX*
    - GENERAL_NAMES*
    constantsTouched: []
    func_position:
      end: 259
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 259
    functionName: copy_issuer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c
    functionUses: 1
    functionsReached:
    - X509V3_EXT_d2i
    - X509_get_ext_by_NID
    - sk_GENERAL_NAME_value
    - sk_GENERAL_NAME_num
    - sk_GENERAL_NAME_push
    - X509_get_ext
    - sk_GENERAL_NAME_free
    - X509V3err
    linkageType: ''
    returnType: int
    signature: copy_issuer(X509V3_CTX *ctx, GENERAL_NAMES *gens)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_GENERAL_NAME_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:269,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:270,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:273,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:274,1
    - Dst: name_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:275,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:276,1
    - Dst: copy_email
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:277,1
    - Dst: name_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:279,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:280,1
    - Dst: copy_email
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:281,1
    - Dst: v2i_GENERAL_NAME
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:285,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:287,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:292,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 294
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 294
    functionName: v2i_subject_alt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - name_cmp
    - sk_GENERAL_NAME_new_null
    - strcmp
    - v2i_GENERAL_NAME
    - sk_GENERAL_NAME_push
    - sk_GENERAL_NAME_pop_free
    - sk_CONF_VALUE_num
    - X509V3err
    - copy_email
    linkageType: ''
    returnType: GENERAL_NAMES
    signature: "*v2i_subject_alt(X509V3_EXT_METHOD *method,\n                                      X509V3_CTX
      *ctx,\n                                      STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:310,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:315,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:317,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:321,1
    - Dst: X509_NAME_get_entry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:323,1
    - Dst: ASN1_STRING_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:324,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:324,1
    - Dst: X509_NAME_delete_entry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:326,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:327,1
    - Dst: GENERAL_NAME_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:330,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:331,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:337,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:338,1
    - Dst: GENERAL_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:347,1
    - Dst: ASN1_IA5STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:348,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - ctx
    - gens
    - move_p
    argTypes:
    - X509V3_CTX*
    - GENERAL_NAMES*
    - int
    constantsTouched: []
    func_position:
      end: 351
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 351
    functionName: copy_email
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c
    functionUses: 1
    functionsReached:
    - ASN1_STRING_dup
    - X509_REQ_get_subject_name
    - X509_NAME_delete_entry
    - sk_GENERAL_NAME_push
    - X509_get_subject_name
    - X509_NAME_get_entry
    - X509_NAME_ENTRY_get_data
    - X509_NAME_ENTRY_free
    - GENERAL_NAME_new
    - X509V3err
    - X509_NAME_get_index_by_NID
    - ASN1_IA5STRING_free
    - GENERAL_NAME_free
    linkageType: ''
    returnType: int
    signature: copy_email(X509V3_CTX *ctx, GENERAL_NAMES *gens, int move_p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_GENERAL_NAME_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:361,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:362,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:365,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:366,1
    - Dst: v2i_GENERAL_NAME
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:367,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:369,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 375
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 375
    functionName: v2i_GENERAL_NAMES
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c
    functionUses: 1
    functionsReached:
    - sk_CONF_VALUE_value
    - v2i_GENERAL_NAME
    - sk_GENERAL_NAME_new_null
    - sk_GENERAL_NAME_push
    - sk_GENERAL_NAME_pop_free
    - sk_CONF_VALUE_num
    - X509V3err
    linkageType: ''
    returnType: GENERAL_NAMES
    signature: "*v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method,\n                                 X509V3_CTX
      *ctx, STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: v2i_GENERAL_NAME_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - method
    - ctx
    - cnf
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - CONF_VALUE*
    constantsTouched: []
    func_position:
      end: 381
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 381
    functionName: v2i_GENERAL_NAME
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c
    functionUses: 4
    functionsReached:
    - v2i_GENERAL_NAME_ex
    linkageType: ''
    returnType: GENERAL_NAME
    signature: "*v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method,\n                               X509V3_CTX
      *ctx, CONF_VALUE *cnf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:392,1
    - Dst: GENERAL_NAME_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:399,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:401,1
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:416,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:417,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:418,1
    - Dst: a2i_IPADDRESS_NC
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:427,1
    - Dst: a2i_IPADDRESS
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:429,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:431,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:432,1
    - Dst: do_dirname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:438,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:439,1
    - Dst: do_othername
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:445,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:446,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:451,1
    - Dst: ASN1_IA5STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:456,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:457,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:458,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:459,1
    - Dst: GENERAL_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:470,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 73
    argCount: 6
    argNames:
    - out
    - method
    - ctx
    - gen_type
    - value
    - is_nc
    argTypes:
    - GENERAL_NAME*
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 472
      start: 383
    functionDepth: 3
    functionLinenumber: 383
    functionLinenumberEnd: 472
    functionName: a2i_GENERAL_NAME
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c
    functionUses: 0
    functionsReached:
    - OBJ_txt2obj
    - ASN1_STRING_set
    - GENERAL_NAME_new
    - do_othername
    - a2i_IPADDRESS
    - X509V3err
    - ERR_add_error_data
    - strlen
    - a2i_IPADDRESS_NC
    - ASN1_IA5STRING_new
    - do_dirname
    - GENERAL_NAME_free
    linkageType: ''
    returnType: GENERAL_NAME
    signature: "*a2i_GENERAL_NAME(GENERAL_NAME *out,\n                               const
      X509V3_EXT_METHOD *method,\n                               X509V3_CTX *ctx,
      int gen_type, const char *value,\n                               int is_nc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:486,1
    - Dst: name_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:490,1
    - Dst: name_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:492,1
    - Dst: name_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:494,1
    - Dst: name_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:496,1
    - Dst: name_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:498,1
    - Dst: name_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:500,1
    - Dst: name_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:502,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:505,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:506,1
    - Dst: a2i_GENERAL_NAME
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:510,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - out
    - method
    - ctx
    - cnf
    - is_nc
    argTypes:
    - GENERAL_NAME*
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - CONF_VALUE*
    - int
    constantsTouched: []
    func_position:
      end: 512
      start: 474
    functionDepth: 4
    functionLinenumber: 474
    functionLinenumberEnd: 512
    functionName: v2i_GENERAL_NAME_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c
    functionUses: 3
    functionsReached:
    - X509V3err
    - ERR_add_error_data
    - a2i_GENERAL_NAME
    - name_cmp
    linkageType: ''
    returnType: GENERAL_NAME
    signature: "*v2i_GENERAL_NAME_ex(GENERAL_NAME *out,\n                                  const
      X509V3_EXT_METHOD *method,\n                                  X509V3_CTX *ctx,
      CONF_VALUE *cnf, int is_nc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:519,1
    - Dst: OTHERNAME_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:521,1
    - Dst: ASN1_TYPE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:527,1
    - Dst: ASN1_generate_v3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:528,1
    - Dst: OPENSSL_strndup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:531,1
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:534,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:535,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - gen
    - value
    - ctx
    argTypes:
    - GENERAL_NAME*
    - char*
    - X509V3_CTX*
    constantsTouched: []
    func_position:
      end: 539
      start: 514
    functionDepth: 2
    functionLinenumber: 514
    functionLinenumberEnd: 539
    functionName: do_othername
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c
    functionUses: 1
    functionsReached:
    - OTHERNAME_new
    - OPENSSL_strndup
    - OBJ_txt2obj
    - strchr
    - ASN1_TYPE_free
    - OPENSSL_free
    - ASN1_generate_v3
    linkageType: ''
    returnType: int
    signature: do_othername(GENERAL_NAME *gen, const char *value, X509V3_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:544,1
    - Dst: X509_NAME_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:547,1
    - Dst: X509V3_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:549,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:551,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:552,1
    - Dst: X509V3_NAME_from_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:556,1
    - Dst: X509_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:563,1
    - Dst: X509V3_section_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c:564,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - gen
    - value
    - ctx
    argTypes:
    - GENERAL_NAME*
    - char*
    - X509V3_CTX*
    constantsTouched: []
    func_position:
      end: 566
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 566
    functionName: do_dirname
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c
    functionUses: 1
    functionsReached:
    - STACK_OF
    - X509_NAME_free
    - X509V3err
    - ERR_add_error_data
    - X509V3_get_section
    - X509V3_section_free
    - X509_NAME_new
    - X509V3_NAME_from_section
    linkageType: ''
    returnType: int
    signature: do_dirname(GENERAL_NAME *gen, const char *value, X509V3_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ia5.c:34,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ia5.c:35,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ia5.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - method
    - ia5
    argTypes:
    - X509V3_EXT_METHOD*
    - ASN1_IA5STRING*
    constantsTouched: []
    func_position:
      end: 41
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 41
    functionName: i2s_ASN1_IA5STRING
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ia5.c
    functionUses: 0
    functionsReached:
    - X509V3err
    - memcpy
    - OPENSSL_malloc
    linkageType: ''
    returnType: char
    signature: '*i2s_ASN1_IA5STRING(X509V3_EXT_METHOD *method, ASN1_IA5STRING *ia5)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ia5.c:48,1
    - Dst: ASN1_IA5STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ia5.c:52,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ia5.c:54,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ia5.c:54,1
    - Dst: ASN1_IA5STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ia5.c:55,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ia5.c:59,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ia5.c:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - method
    - ctx
    - str
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 65
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 65
    functionName: s2i_ASN1_IA5STRING
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ia5.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_set
    - X509V3err
    - strlen
    - ASN1_IA5STRING_free
    - ASN1_IA5STRING_new
    - ebcdic2ascii
    linkageType: ''
    returnType: ASN1_IA5STRING
    signature: "*s2i_ASN1_IA5STRING(X509V3_EXT_METHOD *method,\n                                   X509V3_CTX
      *ctx, const char *str)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ENUMERATED_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_enum.c:47,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_enum.c:50,1
    - Dst: i2s_ASN1_ENUMERATED
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_enum.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - method
    - e
    argTypes:
    - X509V3_EXT_METHOD*
    - ASN1_ENUMERATED*
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 7
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: i2s_ASN1_ENUMERATED_TABLE
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_enum.c
    functionUses: 0
    functionsReached:
    - ASN1_ENUMERATED_get
    - i2s_ASN1_ENUMERATED
    - OPENSSL_strdup
    linkageType: ''
    returnType: char
    signature: "*i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *method, \n                                const
      ASN1_ENUMERATED *e)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: v3_check_critical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:42,1
    - Dst: v3_check_generic
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:43,1
    - Dst: v3_generic_extension
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:44,1
    - Dst: do_ext_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:45,1
    - Dst: OBJ_sn2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:45,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:47,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - conf
    - ctx
    - name
    - value
    argTypes:
    - CONF*
    - X509V3_CTX*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 51
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 51
    functionName: X509V3_EXT_nconf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached:
    - v3_generic_extension
    - v3_check_generic
    - v3_check_critical
    - OBJ_sn2nid
    - X509V3err
    - ERR_add_error_data
    - do_ext_nconf
    linkageType: ''
    returnType: X509_EXTENSION
    signature: "*X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, const char *name,\n
      \                                const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: v3_check_critical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:60,1
    - Dst: v3_check_generic
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:61,1
    - Dst: v3_generic_extension
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:62,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:62,1
    - Dst: do_ext_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - conf
    - ctx
    - ext_nid
    - value
    argTypes:
    - CONF*
    - X509V3_CTX*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 65
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 65
    functionName: X509V3_EXT_nconf_nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c
    functionUses: 1
    functionsReached:
    - v3_generic_extension
    - v3_check_generic
    - v3_check_critical
    - OBJ_nid2sn
    - do_ext_nconf
    linkageType: ''
    returnType: X509_EXTENSION
    signature: "*X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid,\n
      \                                    const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:74,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:78,1
    - Dst: X509V3_EXT_get_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:81,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:82,1
    - Dst: NCONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:88,1
    - Dst: X509V3_parse_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:90,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:91,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:92,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:94,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:94,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:97,1
    - Dst: X509V3_EXT_METHOD*::v2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:100,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:102,1
    - Dst: X509V3_EXT_METHOD*::s2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:106,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:110,1
    - Dst: X509V3_EXT_METHOD*::r2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:113,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:116,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:118,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:118,1
    - Dst: do_ext_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:122,1
    - Dst: ASN1_item_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:124,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:124,1
    - Dst: X509V3_EXT_METHOD*::ext_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:126,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 5
    argNames:
    - conf
    - ctx
    - ext_nid
    - crit
    - value
    argTypes:
    - CONF*
    - X509V3_CTX*
    - int
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 129
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 129
    functionName: do_ext_nconf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c
    functionUses: 2
    functionsReached:
    - X509V3_EXT_get_nid
    - X509V3_EXT_METHOD*::r2i
    - STACK_OF
    - ASN1_item_free
    - sk_CONF_VALUE_num
    - OBJ_nid2sn
    - X509V3err
    - ERR_add_error_data
    - X509V3_parse_list
    - X509V3_EXT_METHOD*::v2i
    - X509V3_EXT_METHOD*::s2i
    - do_ext_i2d
    - ASN1_ITEM_ptr
    - NCONF_get_section
    - X509V3_EXT_METHOD*::ext_free
    - sk_CONF_VALUE_pop_free
    linkageType: ''
    returnType: X509_EXTENSION
    signature: "*do_ext_nconf(CONF *conf, X509V3_CTX *ctx, int ext_nid,\n                                    int
      crit, const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:142,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:142,1
    - Dst: X509V3_EXT_METHOD*::i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:148,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:149,1
    - Dst: X509V3_EXT_METHOD*::i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:152,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:154,1
    - Dst: X509_EXTENSION_create_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:160,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:163,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:168,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:169,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:170,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - method
    - ext_nid
    - crit
    - ext_struc
    argTypes:
    - X509V3_EXT_METHOD*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 173
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 173
    functionName: do_ext_i2d
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c
    functionUses: 1
    functionsReached:
    - ASN1_item_i2d
    - ASN1_OCTET_STRING_new
    - X509_EXTENSION_create_by_NID
    - X509V3_EXT_METHOD*::i2d
    - ASN1_OCTET_STRING_free
    - X509V3err
    - ASN1_ITEM_ptr
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: X509_EXTENSION
    signature: "*do_ext_i2d(const X509V3_EXT_METHOD *method,\n                                  int
      ext_nid, int crit, void *ext_struc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_EXT_get_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:181,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:182,1
    - Dst: do_ext_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ext_nid
    - crit
    - ext_struc
    argTypes:
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 186
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 186
    functionName: X509V3_EXT_i2d
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c
    functionUses: 4
    functionsReached:
    - X509V3err
    - X509V3_EXT_get_nid
    - do_ext_i2d
    linkageType: ''
    returnType: X509_EXTENSION
    signature: '*X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:192,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:192,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 199
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 199
    functionName: v3_check_critical
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c
    functionUses: 2
    functionsReached:
    - strlen
    - strncmp
    - isspace
    linkageType: ''
    returnType: int
    signature: v3_check_critical(const char **value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:206,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:206,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:209,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:209,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:215,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - value
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 219
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 219
    functionName: v3_check_generic
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c
    functionUses: 2
    functionsReached:
    - strlen
    - strncmp
    - isspace
    linkageType: ''
    returnType: int
    signature: v3_check_generic(const char **value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:232,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:233,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:235,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:240,1
    - Dst: generic_asn1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:242,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:245,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:247,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:251,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:252,1
    - Dst: X509_EXTENSION_create_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:260,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:263,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:264,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:265,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 5
    argNames:
    - ext
    - value
    - crit
    - gen_type
    - ctx
    argTypes:
    - char*
    - char*
    - int
    - int
    - X509V3_CTX*
    constantsTouched: []
    func_position:
      end: 268
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 268
    functionName: v3_generic_extension
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c
    functionUses: 2
    functionsReached:
    - ASN1_OCTET_STRING_new
    - X509_EXTENSION_create_by_OBJ
    - OBJ_txt2obj
    - generic_asn1
    - ASN1_OCTET_STRING_free
    - X509V3err
    - ERR_add_error_data
    - ASN1_OBJECT_free
    - OPENSSL_hexstr2buf
    - OPENSSL_free
    linkageType: ''
    returnType: X509_EXTENSION
    signature: "*v3_generic_extension(const char *ext, const char *value,\n                                            int
      crit, int gen_type,\n                                            X509V3_CTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_generate_v3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:275,1
    - Dst: i2d_ASN1_TYPE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:278,1
    - Dst: ASN1_TYPE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - value
    - ctx
    - ext_len
    argTypes:
    - char*
    - X509V3_CTX*
    - long*
    constantsTouched: []
    func_position:
      end: 281
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 281
    functionName: generic_asn1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c
    functionUses: 1
    functionsReached:
    - i2d_ASN1_TYPE
    - ASN1_TYPE_free
    - ASN1_generate_v3
    linkageType: ''
    returnType: unsigned char
    signature: "*generic_asn1(const char *value, X509V3_CTX *ctx,\n                                   long
      *ext_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:304,1
    - Dst: NCONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:308,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:310,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:311,1
    - Dst: X509V3_EXT_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:312,1
    - Dst: delete_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:315,1
    - Dst: X509v3_add_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:317,1
    - Dst: X509_EXTENSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:318,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - conf
    - ctx
    - section
    - sk
    argTypes:
    - CONF*
    - X509V3_CTX*
    - char*
    - STACK_OF**
    constantsTouched: []
    func_position:
      end: 321
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 321
    functionName: X509V3_EXT_add_nconf_sk
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - STACK_OF
    - sk_CONF_VALUE_num
    - X509v3_add_ext
    - X509V3_EXT_nconf
    - NCONF_get_section
    - delete_ext
    - X509_EXTENSION_free
    linkageType: ''
    returnType: int
    signature: "X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, const char *section,\n
      \                           STACK_OF(X509_EXTENSION) **sk)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:330,1
    - Dst: X509V3_EXT_add_nconf_sk
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - conf
    - ctx
    - section
    - cert
    argTypes:
    - CONF*
    - X509V3_CTX*
    - char*
    - X509*
    constantsTouched: []
    func_position:
      end: 334
      start: 327
    functionDepth: 4
    functionLinenumber: 327
    functionLinenumberEnd: 334
    functionName: X509V3_EXT_add_nconf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - X509V3_EXT_add_nconf_sk
    linkageType: ''
    returnType: int
    signature: "X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section,\n
      \                        X509 *cert)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:341,1
    - Dst: X509V3_EXT_add_nconf_sk
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - conf
    - ctx
    - section
    - crl
    argTypes:
    - CONF*
    - X509V3_CTX*
    - char*
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 345
      start: 338
    functionDepth: 4
    functionLinenumber: 338
    functionLinenumberEnd: 345
    functionName: X509V3_EXT_CRL_add_nconf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - X509V3_EXT_add_nconf_sk
    linkageType: ''
    returnType: int
    signature: "X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section,\n
      \                            X509_CRL *crl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:352,1
    - Dst: X509V3_EXT_add_nconf_sk
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:356,1
    - Dst: X509_REQ_add_extensions
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:359,1
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - conf
    - ctx
    - section
    - req
    argTypes:
    - CONF*
    - X509V3_CTX*
    - char*
    - X509_REQ*
    constantsTouched: []
    func_position:
      end: 362
      start: 349
    functionDepth: 4
    functionLinenumber: 349
    functionLinenumberEnd: 362
    functionName: X509V3_EXT_REQ_add_nconf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - sk_X509_EXTENSION_pop_free
    - X509V3_EXT_add_nconf_sk
    - X509_REQ_add_extensions
    linkageType: ''
    returnType: int
    signature: "X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section,\n
      \                            X509_REQ *req)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:369,1
    - Dst: X509V3_CTX*::db_meth::get_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - name
    - section
    argTypes:
    - X509V3_CTX*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 375
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 375
    functionName: X509V3_get_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached:
    - X509V3err
    - X509V3_CTX*::db_meth::get_string
    linkageType: ''
    returnType: char
    signature: '*X509V3_get_string(X509V3_CTX *ctx, const char *name, const char *section)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_CTX*::db_meth::free_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - str
    argTypes:
    - X509V3_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 395
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 395
    functionName: X509V3_string_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached:
    - X509V3_CTX*::db_meth::free_string
    linkageType: ''
    returnType: void
    signature: X509V3_string_free(X509V3_CTX *ctx, char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - db
    - section
    - value
    argTypes:
    - void*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: nconf_get_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached:
    - NCONF_get_string
    linkageType: ''
    returnType: char
    signature: '*nconf_get_string(void *db, const char *section, const char *value)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - section
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 413
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 413
    functionName: nconf_get_section
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached:
    - NCONF_get_section
    linkageType: ''
    returnType: STACK_OF
    signature: '*nconf_get_section(void *db, const char *section)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - conf
    argTypes:
    - X509V3_CTX*
    - CONF*
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: X509V3_set_nconf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - ctx
    - issuer
    - subj
    - req
    - crl
    - flags
    argTypes:
    - X509V3_CTX*
    - X509*
    - X509*
    - X509_REQ*
    - X509_CRL*
    - int
    constantsTouched: []
    func_position:
      end: 436
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 436
    functionName: X509V3_set_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subj, X509_REQ
      *req,\n                    X509_CRL *crl, int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - db
    - section
    - value
    argTypes:
    - void*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 461
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 461
    functionName: conf_lhash_get_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached:
    - CONF_get_string
    linkageType: ''
    returnType: char
    signature: '*conf_lhash_get_string(void *db, const char *section, const char *value)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - section
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 466
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 466
    functionName: conf_lhash_get_section
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c
    functionUses: 0
    functionsReached:
    - CONF_get_section
    linkageType: ''
    returnType: STACK_OF
    signature: '*conf_lhash_get_section(void *db, const char *section)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/tabtest.c:25,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/tabtest.c:27,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/tabtest.c:37,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/tabtest.c:39,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/tabtest.c:39,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/tabtest.c:41,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 42
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/tabtest.c
    functionUses: 22
    functionsReached:
    - OSSL_NELEM
    - fprintf
    - printf
    - OBJ_nid2sn
    linkageType: ''
    returnType: void
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BASIC_CONSTRAINTS_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_bcons.c:62,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_bcons.c:63,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_bcons.c:66,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_bcons.c:67,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_bcons.c:68,1
    - Dst: X509V3_get_value_bool
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_bcons.c:69,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_bcons.c:71,1
    - Dst: X509V3_get_value_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_bcons.c:72,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_bcons.c:75,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_bcons.c:76,1
    - Dst: BASIC_CONSTRAINTS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_bcons.c:82,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - method
    - ctx
    - values
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 84
      start: 54
    functionDepth: 6
    functionLinenumber: 54
    functionLinenumberEnd: 84
    functionName: v2i_BASIC_CONSTRAINTS
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_bcons.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - strcmp
    - BASIC_CONSTRAINTS_free
    - X509V3_get_value_int
    - sk_CONF_VALUE_num
    - X509V3err
    - X509V3_conf_err
    - BASIC_CONSTRAINTS_new
    - X509V3_get_value_bool
    linkageType: ''
    returnType: BASIC_CONSTRAINTS
    signature: "*v2i_BASIC_CONSTRAINTS(X509V3_EXT_METHOD *method,\n                                                X509V3_CTX
      *ctx,\n                                                STACK_OF(CONF_VALUE)
      *values)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - afi
    argTypes:
    - unsigned
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: length_from_afi
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: length_from_afi(const unsigned afi)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - IPAddressFamily*
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: X509v3_addr_get_afi
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: X509v3_addr_get_afi(const IPAddressFamily *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:104,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - addr
    - bs
    - length
    - fill
    argTypes:
    - unsigned char*
    - ASN1_BIT_STRING*
    - int
    - unsigned char
    constantsTouched: []
    func_position:
      end: 115
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 115
    functionName: addr_expand
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: int
    signature: "addr_expand(unsigned char *addr,\n                       const ASN1_BIT_STRING
      *bs,\n                       const int length, const unsigned char fill)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: addr_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:136,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:138,1
    - Dst: addr_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:141,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:146,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:149,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:151,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:155,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:156,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 4
    argNames:
    - out
    - afi
    - fill
    - bs
    argTypes:
    - BIO*
    - unsigned
    - unsigned char
    - ASN1_BIT_STRING*
    constantsTouched: []
    func_position:
      end: 160
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 160
    functionName: i2r_address
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - addr_expand
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "i2r_address(BIO *out,\n                       const unsigned afi,\n
      \                      const unsigned char fill, const ASN1_BIT_STRING *bs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:171,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:172,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:173,1
    - Dst: i2r_address
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:176,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:178,1
    - Dst: addr_prefixlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:178,1
    - Dst: i2r_address
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:181,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:183,1
    - Dst: i2r_address
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:184,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - out
    - indent
    - aors
    - afi
    argTypes:
    - BIO*
    - int
    - IPAddressOrRanges*
    - unsigned
    constantsTouched: []
    func_position:
      end: 191
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 191
    functionName: i2r_IPAddressOrRanges
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - addr_prefixlen
    - sk_IPAddressOrRange_num
    - i2r_address
    - BIO_printf
    - sk_IPAddressOrRange_value
    linkageType: ''
    returnType: int
    signature: "i2r_IPAddressOrRanges(BIO *out,\n                                 const
      int indent,\n                                 const IPAddressOrRanges *aors,\n
      \                                const unsigned afi)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressFamily_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:201,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:202,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:206,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:209,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:212,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:218,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:221,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:224,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:227,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:230,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:233,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:236,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:239,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:242,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:249,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:252,1
    - Dst: i2r_IPAddressOrRanges
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:253,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 4
    argNames:
    - method
    - ext
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 262
      start: 196
    functionDepth: 4
    functionLinenumber: 196
    functionLinenumberEnd: 262
    functionName: i2r_IPAddrBlocks
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - sk_IPAddressFamily_value
    - BIO_printf
    - i2r_IPAddressOrRanges
    - sk_IPAddressFamily_num
    linkageType: ''
    returnType: int
    signature: "i2r_IPAddrBlocks(const X509V3_EXT_METHOD *method,\n                            void
      *ext, BIO *out, int indent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: addr_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:283,1
    - Dst: addr_prefixlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:285,1
    - Dst: addr_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:288,1
    - Dst: addr_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:296,1
    - Dst: addr_prefixlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:298,1
    - Dst: addr_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:301,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:307,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - a
    - b
    - length
    argTypes:
    - IPAddressOrRange*
    - IPAddressOrRange*
    - int
    constantsTouched: []
    func_position:
      end: 311
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 311
    functionName: IPAddressOrRange_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - addr_prefixlen
    - addr_expand
    - memcmp
    linkageType: ''
    returnType: int
    signature: "IPAddressOrRange_cmp(const IPAddressOrRange *a,\n                                const
      IPAddressOrRange *b, const int length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddressOrRange_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - IPAddressOrRange**
    - IPAddressOrRange**
    constantsTouched: []
    func_position:
      end: 321
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 321
    functionName: v4IPAddressOrRange_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - IPAddressOrRange_cmp
    linkageType: ''
    returnType: int
    signature: "v4IPAddressOrRange_cmp(const IPAddressOrRange *const *a,\n                                  const
      IPAddressOrRange *const *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddressOrRange_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - IPAddressOrRange**
    - IPAddressOrRange**
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: v6IPAddressOrRange_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - IPAddressOrRange_cmp
    linkageType: ''
    returnType: int
    signature: "v6IPAddressOrRange_cmp(const IPAddressOrRange *const *a,\n                                  const
      IPAddressOrRange *const *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:343,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:343,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 3
    argNames:
    - min
    - max
    - length
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 380
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 380
    functionName: range_should_be_prefix
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - memcmp
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: "range_should_be_prefix(const unsigned char *min,\n                                  const
      unsigned char *max, const int length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IPAddressOrRange_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:389,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:395,1
    - Dst: ASN1_BIT_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:397,1
    - Dst: IPAddressOrRange_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:410,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - result
    - addr
    - prefixlen
    argTypes:
    - IPAddressOrRange**
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 412
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 412
    functionName: make_addressPrefix
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - ASN1_BIT_STRING_new
    - IPAddressOrRange_new
    - ASN1_BIT_STRING_set
    - IPAddressOrRange_free
    linkageType: ''
    returnType: int
    signature: "make_addressPrefix(IPAddressOrRange **result,\n                              unsigned
      char *addr, const int prefixlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: range_should_be_prefix
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:426,1
    - Dst: make_addressPrefix
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:427,1
    - Dst: IPAddressOrRange_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:429,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:432,1
    - Dst: IPAddressRange_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:433,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:436,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:439,1
    - Dst: ASN1_BIT_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:443,1
    - Dst: ASN1_BIT_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:456,1
    - Dst: IPAddressOrRange_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:472,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 46
    argCount: 4
    argNames:
    - result
    - min
    - max
    - length
    argTypes:
    - IPAddressOrRange**
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 474
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 474
    functionName: make_addressRange
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - IPAddressRange_new
    - OPENSSL_assert
    - ASN1_BIT_STRING_new
    - IPAddressOrRange_free
    - make_addressPrefix
    - IPAddressOrRange_new
    - ASN1_BIT_STRING_set
    - range_should_be_prefix
    linkageType: ''
    returnType: int
    signature: "make_addressRange(IPAddressOrRange **result,\n                             unsigned
      char *min,\n                             unsigned char *max, const int length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressFamily_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:497,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:498,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:499,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:501,1
    - Dst: IPAddressFamily_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:505,1
    - Dst: IPAddressChoice_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:508,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:511,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:513,1
    - Dst: sk_IPAddressFamily_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:515,1
    - Dst: IPAddressFamily_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:521,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 3
    argNames:
    - addr
    - afi
    - safi
    argTypes:
    - IPAddrBlocks*
    - unsigned
    - unsigned*
    constantsTouched: []
    func_position:
      end: 523
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 523
    functionName: make_IPAddressFamily
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_new
    - memcmp
    - OPENSSL_assert
    - IPAddressChoice_new
    - sk_IPAddressFamily_value
    - IPAddressFamily_new
    - ASN1_OCTET_STRING_set
    - sk_IPAddressFamily_push
    - IPAddressFamily_free
    - sk_IPAddressFamily_num
    linkageType: ''
    returnType: IPAddressFamily
    signature: "*make_IPAddressFamily(IPAddrBlocks *addr,\n                                             const
      unsigned afi,\n                                             const unsigned *safi)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: make_IPAddressFamily
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:531,1
    - Dst: ASN1_NULL_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:541,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 3
    argNames:
    - addr
    - afi
    - safi
    argTypes:
    - IPAddrBlocks*
    - unsigned
    - unsigned*
    constantsTouched: []
    func_position:
      end: 545
      start: 528
    functionDepth: 3
    functionLinenumber: 528
    functionLinenumberEnd: 545
    functionName: X509v3_addr_add_inherit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - ASN1_NULL_new
    - make_IPAddressFamily
    linkageType: ''
    returnType: int
    signature: "X509v3_addr_add_inherit(IPAddrBlocks *addr,\n                            const
      unsigned afi, const unsigned *safi)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: make_IPAddressFamily
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:554,1
    - Dst: sk_IPAddressOrRange_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:566,1
    - Dst: sk_IPAddressOrRange_set_cmp_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:570,1
    - Dst: sk_IPAddressOrRange_set_cmp_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:573,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 3
    argNames:
    - addr
    - afi
    - safi
    argTypes:
    - IPAddrBlocks*
    - unsigned
    - unsigned*
    constantsTouched: []
    func_position:
      end: 579
      start: 550
    functionDepth: 3
    functionLinenumber: 550
    functionLinenumberEnd: 579
    functionName: make_prefix_or_range
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - sk_IPAddressOrRange_new_null
    - make_IPAddressFamily
    - sk_IPAddressOrRange_set_cmp_func
    linkageType: ''
    returnType: IPAddressOrRanges
    signature: "*make_prefix_or_range(IPAddrBlocks *addr,\n                                               const
      unsigned afi,\n                                               const unsigned
      *safi)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: make_prefix_or_range
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:589,1
    - Dst: make_addressPrefix
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:591,1
    - Dst: sk_IPAddressOrRange_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:593,1
    - Dst: IPAddressOrRange_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:595,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - addr
    - afi
    - safi
    - a
    - prefixlen
    argTypes:
    - IPAddrBlocks*
    - unsigned
    - unsigned*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 597
      start: 584
    functionDepth: 4
    functionLinenumber: 584
    functionLinenumberEnd: 597
    functionName: X509v3_addr_add_prefix
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - make_prefix_or_range
    - sk_IPAddressOrRange_push
    - make_addressPrefix
    - IPAddressOrRange_free
    linkageType: ''
    returnType: int
    signature: "X509v3_addr_add_prefix(IPAddrBlocks *addr,\n                           const
      unsigned afi,\n                           const unsigned *safi,\n                           unsigned
      char *a, const int prefixlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: make_prefix_or_range
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:607,1
    - Dst: make_addressRange
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:612,1
    - Dst: sk_IPAddressOrRange_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:614,1
    - Dst: IPAddressOrRange_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:616,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - addr
    - afi
    - safi
    - min
    - max
    argTypes:
    - IPAddrBlocks*
    - unsigned
    - unsigned*
    - unsigned char*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 618
      start: 602
    functionDepth: 4
    functionLinenumber: 602
    functionLinenumberEnd: 618
    functionName: X509v3_addr_add_range
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - make_prefix_or_range
    - make_addressRange
    - sk_IPAddressOrRange_push
    - IPAddressOrRange_free
    linkageType: ''
    returnType: int
    signature: "X509v3_addr_add_range(IPAddrBlocks *addr,\n                          const
      unsigned afi,\n                          const unsigned *safi,\n                          unsigned
      char *min, unsigned char *max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: addr_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:630,1
    - Dst: addr_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:631,1
    - Dst: addr_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:633,1
    - Dst: addr_expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:634,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - aor
    - min
    - max
    - length
    argTypes:
    - IPAddressOrRange*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 637
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 637
    functionName: extract_min_max
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - addr_expand
    linkageType: ''
    returnType: int
    signature: "extract_min_max(IPAddressOrRange *aor,\n                           unsigned
      char *min, unsigned char *max, int length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: extract_min_max
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:652,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 4
    argCount: 5
    argNames:
    - aor
    - afi
    - min
    - max
    - length
    argTypes:
    - IPAddressOrRange*
    - unsigned
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 656
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 656
    functionName: X509v3_addr_get_range
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - extract_min_max
    linkageType: ''
    returnType: int
    signature: "X509v3_addr_get_range(IPAddressOrRange *aor,\n                          const
      unsigned afi,\n                          unsigned char *min,\n                          unsigned
      char *max, const int length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - IPAddressFamily**
    - IPAddressFamily**
    constantsTouched: []
    func_position:
      end: 676
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 676
    functionName: IPAddressFamily_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "IPAddressFamily_cmp(const IPAddressFamily *const *a_,\n                               const
      IPAddressFamily *const *b_)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressFamily_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:697,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:698,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:699,1
    - Dst: IPAddressFamily_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:700,1
    - Dst: sk_IPAddressFamily_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:707,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:708,1
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:730,1
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:732,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:733,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:734,1
    - Dst: extract_min_max
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:736,1
    - Dst: extract_min_max
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:737,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:743,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:744,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:745,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:753,1
    - Dst: range_should_be_prefix
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:760,1
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:768,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:770,1
    - Dst: extract_min_max
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:772,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:774,1
    - Dst: range_should_be_prefix
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:775,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 43
    argCount: 1
    argNames:
    - addr
    argTypes:
    - IPAddrBlocks*
    constantsTouched: []
    func_position:
      end: 785
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 785
    functionName: X509v3_addr_is_canonical
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - memcmp
    - sk_IPAddressFamily_value
    - IPAddressFamily_cmp
    - sk_IPAddressOrRange_num
    - extract_min_max
    - sk_IPAddressFamily_num
    - sk_IPAddressOrRange_value
    - range_should_be_prefix
    linkageType: ''
    returnType: int
    signature: X509v3_addr_is_canonical(IPAddrBlocks *addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressOrRange_sort
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:798,1
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:803,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:804,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:805,1
    - Dst: extract_min_max
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:809,1
    - Dst: extract_min_max
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:810,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:816,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:817,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:823,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:831,1
    - Dst: make_addressRange
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:833,1
    - Dst: sk_IPAddressOrRange_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:835,1
    - Dst: sk_IPAddressOrRange_delete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:836,1
    - Dst: IPAddressOrRange_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:837,1
    - Dst: IPAddressOrRange_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:838,1
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:847,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:849,1
    - Dst: extract_min_max
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:852,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:854,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 2
    argNames:
    - aors
    - afi
    argTypes:
    - IPAddressOrRanges*
    - unsigned
    constantsTouched: []
    func_position:
      end: 860
      start: 790
    functionDepth: 4
    functionLinenumber: 790
    functionLinenumberEnd: 860
    functionName: IPAddressOrRanges_canonize
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - sk_IPAddressOrRange_set
    - sk_IPAddressOrRange_sort
    - memcmp
    - make_addressRange
    - sk_IPAddressOrRange_num
    - sk_IPAddressOrRange_delete
    - extract_min_max
    - sk_IPAddressOrRange_value
    - IPAddressOrRange_free
    linkageType: ''
    returnType: int
    signature: "IPAddressOrRanges_canonize(IPAddressOrRanges *aors,\n                                      const
      unsigned afi)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressFamily_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:868,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:869,1
    - Dst: IPAddressOrRanges_canonize
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:871,1
    - Dst: X509v3_addr_get_afi
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:873,1
    - Dst: sk_IPAddressFamily_set_cmp_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:876,1
    - Dst: sk_IPAddressFamily_sort
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:877,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:878,1
    - Dst: X509v3_addr_is_canonical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:878,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - addr
    argTypes:
    - IPAddrBlocks*
    constantsTouched: []
    func_position:
      end: 880
      start: 865
    functionDepth: 5
    functionLinenumber: 865
    functionLinenumberEnd: 880
    functionName: X509v3_addr_canonize
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - sk_IPAddressFamily_sort
    - OPENSSL_assert
    - sk_IPAddressFamily_value
    - sk_IPAddressFamily_set_cmp_func
    - X509v3_addr_is_canonical
    - sk_IPAddressFamily_num
    - X509v3_addr_get_afi
    - IPAddressOrRanges_canonize
    linkageType: ''
    returnType: int
    signature: X509v3_addr_canonize(IPAddrBlocks *addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressFamily_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:895,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:896,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:900,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:901,1
    - Dst: name_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:907,1
    - Dst: name_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:909,1
    - Dst: name_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:911,1
    - Dst: name_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:914,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:918,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:920,1
    - Dst: length_from_afi
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:933,1
    - Dst: strtoul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:940,1
    - Dst: strspn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:941,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:943,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:944,1
    - Dst: strspn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:947,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:948,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:950,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:953,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:961,1
    - Dst: X509v3_addr_add_inherit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:962,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:963,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:965,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:968,1
    - Dst: strspn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:973,1
    - Dst: strspn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:974,1
    - Dst: a2i_ipadd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:978,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:979,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:980,1
    - Dst: strtoul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:986,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:988,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:990,1
    - Dst: X509v3_addr_add_prefix
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:993,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:994,1
    - Dst: strspn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:999,1
    - Dst: strspn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1000,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1002,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1004,1
    - Dst: a2i_ipadd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1007,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1008,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1010,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1013,1
    - Dst: length_from_afi
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1013,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1014,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1016,1
    - Dst: X509v3_addr_add_range
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1019,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1020,1
    - Dst: X509v3_addr_add_prefix
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1025,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1026,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1031,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1033,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1037,1
    - Dst: X509v3_addr_canonize
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1044,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1049,1
    - Dst: sk_IPAddressFamily_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1050,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 141
    argCount: 3
    argNames:
    - method
    - ctx
    - values
    argTypes:
    - struct v3_ext_method*
    - struct v3_ext_ctx*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 1052
      start: 885
    functionDepth: 6
    functionLinenumber: 885
    functionLinenumberEnd: 1052
    functionName: v2i_IPAddrBlocks
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - sk_IPAddressFamily_pop_free
    - X509v3_addr_canonize
    - X509v3_addr_add_prefix
    - X509v3_addr_add_inherit
    - OPENSSL_strdup
    - strtoul
    - sk_CONF_VALUE_value
    - name_cmp
    - a2i_ipadd
    - sk_CONF_VALUE_num
    - strspn
    - X509V3err
    - length_from_afi
    - X509V3_conf_err
    - OPENSSL_free
    - memcmp
    - strcmp
    - X509v3_addr_add_range
    - sk_IPAddressFamily_new
    linkageType: ''
    returnType: void
    signature: "*v2i_IPAddrBlocks(const struct v3_ext_method *method,\n                              struct
      v3_ext_ctx *ctx,\n                              STACK_OF(CONF_VALUE) *values)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressFamily_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1079,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1080,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - addr
    argTypes:
    - IPAddrBlocks*
    constantsTouched: []
    func_position:
      end: 1085
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1085
    functionName: X509v3_addr_inherits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - sk_IPAddressFamily_value
    - sk_IPAddressFamily_num
    linkageType: ''
    returnType: int
    signature: X509v3_addr_inherits(IPAddrBlocks *addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1103,1
    - Dst: extract_min_max
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1104,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1104,1
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1108,1
    - Dst: extract_min_max
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1110,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1110,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1113,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1115,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 3
    argNames:
    - parent
    - child
    - length
    argTypes:
    - IPAddressOrRanges*
    - IPAddressOrRanges*
    - int
    constantsTouched: []
    func_position:
      end: 1122
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1122
    functionName: addr_contains
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - memcmp
    - extract_min_max
    - sk_IPAddressOrRange_value
    - sk_IPAddressOrRange_num
    linkageType: ''
    returnType: int
    signature: "addr_contains(IPAddressOrRanges *parent,\n                         IPAddressOrRanges
      *child, int length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_addr_inherits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1132,1
    - Dst: X509v3_addr_inherits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1132,1
    - Dst: sk_IPAddressFamily_set_cmp_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1134,1
    - Dst: sk_IPAddressFamily_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1135,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1136,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1139,1
    - Dst: addr_contains
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1142,1
    - Dst: length_from_afi
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1144,1
    - Dst: X509v3_addr_get_afi
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1144,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - IPAddrBlocks*
    - IPAddrBlocks*
    constantsTouched: []
    func_position:
      end: 1148
      start: 1127
    functionDepth: 1
    functionLinenumber: 1127
    functionLinenumberEnd: 1148
    functionName: X509v3_addr_subset
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 0
    functionsReached:
    - sk_IPAddressFamily_num
    - sk_IPAddressFamily_value
    - X509v3_addr_inherits
    - addr_contains
    - length_from_afi
    - sk_IPAddressFamily_set_cmp_func
    - X509v3_addr_get_afi
    linkageType: ''
    returnType: int
    signature: X509v3_addr_subset(IPAddrBlocks *a, IPAddrBlocks *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: addr_validate_path_internal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c:1286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 1287
      start: 1284
    functionDepth: 0
    functionLinenumber: 1284
    functionLinenumberEnd: 1287
    functionName: X509v3_addr_validate_path
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
    functionUses: 1
    functionsReached:
    - addr_validate_path_internal
    linkageType: ''
    returnType: int
    signature: X509v3_addr_validate_path(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3err.c:181,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3err.c:182,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3err.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 177
    functionDepth: 4
    functionLinenumber: 177
    functionLinenumberEnd: 187
    functionName: ERR_load_X509V3_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3err.c
    functionUses: 1
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_X509V3_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:32,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:35,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:37,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:38,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:39,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:41,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:42,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - err
    - lev
    - node
    - indent
    argTypes:
    - BIO*
    - X509_POLICY_LEVEL*
    - X509_POLICY_NODE*
    - int
    constantsTouched: []
    func_position:
      end: 46
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 46
    functionName: expected_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_OBJECT_value
    - BIO_puts
    - STACK_OF
    - i2a_ASN1_OBJECT
    - sk_ASN1_OBJECT_num
    linkageType: ''
    returnType: void
    signature: "expected_print(BIO *err, X509_POLICY_LEVEL *lev,\n                           X509_POLICY_NODE
      *node, int indent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:51,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:61,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:62,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:66,1
    - Dst: sk_X509_POLICY_NODE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:68,1
    - Dst: sk_X509_POLICY_NODE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:69,1
    - Dst: X509_POLICY_NODE_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:71,1
    - Dst: expected_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:72,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:73,1
    - Dst: X509_POLICY_NODE_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:76,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:78,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - str
    - tree
    - curr
    argTypes:
    - char*
    - X509_POLICY_TREE*
    - X509_POLICY_LEVEL*
    constantsTouched: []
    func_position:
      end: 79
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 79
    functionName: tree_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c
    functionUses: 0
    functionsReached:
    - sk_X509_POLICY_NODE_num
    - expected_print
    - BIO_new_fp
    - sk_X509_POLICY_NODE_value
    - BIO_free
    - X509_POLICY_NODE_print
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: "tree_print(char *str, X509_POLICY_TREE *tree,\n                       X509_POLICY_LEVEL
      *curr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_POLICY_NODE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:249,1
    - Dst: sk_X509_POLICY_NODE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:250,1
    - Dst: policy_node_match
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:252,1
    - Dst: level_add_node
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:253,1
    - Dst: level_add_node
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:259,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - curr
    - data
    argTypes:
    - X509_POLICY_LEVEL*
    - X509_POLICY_DATA*
    constantsTouched: []
    func_position:
      end: 263
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 263
    functionName: tree_link_matching_nodes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c
    functionUses: 0
    functionsReached:
    - sk_X509_POLICY_NODE_value
    - sk_X509_POLICY_NODE_num
    - policy_node_match
    - level_add_node
    linkageType: ''
    returnType: int
    signature: "tree_link_matching_nodes(X509_POLICY_LEVEL *curr,\n                                    X509_POLICY_DATA
      *data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_POLICY_DATA_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:276,1
    - Dst: sk_X509_POLICY_DATA_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:277,1
    - Dst: tree_link_matching_nodes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - curr
    - cache
    argTypes:
    - X509_POLICY_LEVEL*
    - X509_POLICY_CACHE*
    constantsTouched: []
    func_position:
      end: 284
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 284
    functionName: tree_link_nodes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c
    functionUses: 0
    functionsReached:
    - sk_X509_POLICY_DATA_num
    - tree_link_matching_nodes
    - sk_X509_POLICY_DATA_value
    linkageType: ''
    returnType: int
    signature: "tree_link_nodes(X509_POLICY_LEVEL *curr,\n                           const
      X509_POLICY_CACHE *cache)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: policy_data_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:305,1
    - Dst: node_critical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:305,1
    - Dst: level_add_node
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:311,1
    - Dst: policy_data_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - curr
    - cache
    - id
    - node
    - tree
    argTypes:
    - X509_POLICY_LEVEL*
    - X509_POLICY_CACHE*
    - ASN1_OBJECT*
    - X509_POLICY_NODE*
    - X509_POLICY_TREE*
    constantsTouched: []
    func_position:
      end: 316
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 316
    functionName: tree_add_unmatched
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c
    functionUses: 0
    functionsReached:
    - policy_data_new
    - policy_data_free
    - level_add_node
    - node_critical
    linkageType: ''
    returnType: int
    signature: "tree_add_unmatched(X509_POLICY_LEVEL *curr,\n                              const
      X509_POLICY_CACHE *cache,\n                              const ASN1_OBJECT *id,\n
      \                             X509_POLICY_NODE *node, X509_POLICY_TREE *tree)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tree_add_unmatched
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:333,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:338,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:339,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:342,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:343,1
    - Dst: level_find_node
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:344,1
    - Dst: tree_add_unmatched
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:346,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 4
    argNames:
    - curr
    - cache
    - node
    - tree
    argTypes:
    - X509_POLICY_LEVEL*
    - X509_POLICY_CACHE*
    - X509_POLICY_NODE*
    - X509_POLICY_TREE*
    constantsTouched: []
    func_position:
      end: 352
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 352
    functionName: tree_link_unmatched
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_OBJECT_value
    - STACK_OF
    - sk_ASN1_OBJECT_num
    - level_find_node
    - tree_add_unmatched
    linkageType: ''
    returnType: int
    signature: "tree_link_unmatched(X509_POLICY_LEVEL *curr,\n                               const
      X509_POLICY_CACHE *cache,\n                               X509_POLICY_NODE *node,
      X509_POLICY_TREE *tree)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_POLICY_NODE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:365,1
    - Dst: sk_X509_POLICY_NODE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:366,1
    - Dst: tree_link_unmatched
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:368,1
    - Dst: level_add_node
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - curr
    - cache
    - tree
    argTypes:
    - X509_POLICY_LEVEL*
    - X509_POLICY_CACHE*
    - X509_POLICY_TREE*
    constantsTouched: []
    func_position:
      end: 376
      start: 357
    functionDepth: 4
    functionLinenumber: 357
    functionLinenumberEnd: 376
    functionName: tree_link_any
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c
    functionUses: 0
    functionsReached:
    - sk_X509_POLICY_NODE_value
    - sk_X509_POLICY_NODE_num
    - level_add_node
    - tree_link_unmatched
    linkageType: ''
    returnType: int
    signature: "tree_link_any(X509_POLICY_LEVEL *curr,\n                         const
      X509_POLICY_CACHE *cache,\n                         X509_POLICY_TREE *tree)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:390,1
    - Dst: sk_X509_POLICY_NODE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:395,1
    - Dst: sk_X509_POLICY_NODE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:396,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:400,1
    - Dst: sk_X509_POLICY_NODE_delete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:401,1
    - Dst: sk_X509_POLICY_NODE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:409,1
    - Dst: sk_X509_POLICY_NODE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:410,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:413,1
    - Dst: sk_X509_POLICY_NODE_delete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:414,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:420,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - tree
    - curr
    argTypes:
    - X509_POLICY_TREE*
    - X509_POLICY_LEVEL*
    constantsTouched: []
    func_position:
      end: 431
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 431
    functionName: tree_prune
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c
    functionUses: 0
    functionsReached:
    - sk_X509_POLICY_NODE_delete
    - STACK_OF
    - sk_X509_POLICY_NODE_num
    - sk_X509_POLICY_NODE_value
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: tree_prune(X509_POLICY_TREE *tree, X509_POLICY_LEVEL *curr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: policy_cache_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:581,1
    - Dst: tree_link_nodes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:582,1
    - Dst: tree_link_any
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:586,1
    - Dst: tree_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:589,1
    - Dst: tree_prune
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:591,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - tree
    argTypes:
    - X509_POLICY_TREE*
    constantsTouched: []
    func_position:
      end: 596
      start: 574
    functionDepth: 6
    functionLinenumber: 574
    functionLinenumberEnd: 596
    functionName: tree_evaluate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c
    functionUses: 0
    functionsReached:
    - tree_link_nodes
    - policy_cache_set
    - tree_link_any
    - tree_prune
    - tree_print
    linkageType: ''
    returnType: int
    signature: tree_evaluate(X509_POLICY_TREE *tree)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - X509_POLICY_NODE*
    constantsTouched: []
    func_position:
      end: 602
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 602
    functionName: exnode_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: exnode_free(X509_POLICY_NODE *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_POLICY_NODE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:612,1
    - Dst: sk_X509_POLICY_NODE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:613,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:616,1
    - Dst: sk_X509_POLICY_NODE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:617,1
    - Dst: policy_node_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:618,1
    - Dst: sk_X509_POLICY_DATA_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:621,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:622,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - tree
    argTypes:
    - X509_POLICY_TREE*
    constantsTouched: []
    func_position:
      end: 625
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 625
    functionName: X509_policy_tree_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c
    functionUses: 1
    functionsReached:
    - sk_X509_POLICY_NODE_pop_free
    - policy_node_free
    - sk_X509_POLICY_DATA_pop_free
    - X509_free
    - OPENSSL_free
    - sk_X509_POLICY_NODE_free
    linkageType: ''
    returnType: void
    signature: X509_policy_tree_free(X509_POLICY_TREE *tree)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:642,1
    - Dst: tree_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:646,1
    - Dst: X509_policy_tree_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:653,1
    - Dst: tree_evaluate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:663,1
    - Dst: tree_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:665,1
    - Dst: X509_policy_tree_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:671,1
    - Dst: tree_calculate_authority_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:678,1
    - Dst: tree_calculate_user_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:679,1
    - Dst: sk_X509_POLICY_NODE_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:682,1
    - Dst: X509_policy_tree_get0_user_policies
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:687,1
    - Dst: sk_X509_POLICY_NODE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:688,1
    - Dst: X509_policy_tree_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c:694,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 5
    argNames:
    - ptree
    - pexplicit_policy
    - certs
    - policy_oids
    - flags
    argTypes:
    - X509_POLICY_TREE**
    - int*
    - STACK_OF*
    - STACK_OF*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 696
      start: 635
    functionDepth: 7
    functionLinenumber: 635
    functionLinenumberEnd: 696
    functionName: X509_policy_check
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c
    functionUses: 1
    functionsReached:
    - tree_calculate_authority_set
    - X509_policy_tree_get0_user_policies
    - STACK_OF
    - sk_X509_POLICY_NODE_num
    - tree_init
    - tree_evaluate
    - tree_calculate_user_set
    - X509_policy_tree_free
    - tree_print
    - sk_X509_POLICY_NODE_free
    linkageType: ''
    returnType: int
    signature: "X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy,\n
      \                     STACK_OF(X509) *certs,\n                      STACK_OF(ASN1_OBJECT)
      *policy_oids, unsigned int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_INTEGER_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_tlsf.c:97,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_tlsf.c:98,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_tlsf.c:102,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_tlsf.c:103,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_tlsf.c:109,1
    - Dst: strcasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_tlsf.c:110,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_tlsf.c:112,1
    - Dst: strtol
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_tlsf.c:115,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_tlsf.c:118,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_tlsf.c:119,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_tlsf.c:124,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_tlsf.c:126,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_tlsf.c:129,1
    - Dst: sk_ASN1_INTEGER_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_tlsf.c:130,1
    - Dst: sk_ASN1_INTEGER_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_tlsf.c:135,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 137
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 137
    functionName: v2i_TLS_FEATURE
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_tlsf.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - strtol
    - ASN1_INTEGER_new
    - sk_ASN1_INTEGER_push
    - ASN1_INTEGER_set
    - sk_CONF_VALUE_num
    - X509V3err
    - sk_ASN1_INTEGER_new_null
    - sk_ASN1_INTEGER_pop_free
    - X509V3_conf_err
    - OSSL_NELEM
    - strcasecmp
    linkageType: ''
    returnType: TLS_FEATURE
    signature: "*v2i_TLS_FEATURE(const X509V3_EXT_METHOD *method,\n                                    X509V3_CTX
      *ctx, STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: POLICY_CONSTRAINTS_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pcons.c:63,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pcons.c:64,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pcons.c:67,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pcons.c:68,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pcons.c:69,1
    - Dst: X509V3_get_value_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pcons.c:70,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pcons.c:72,1
    - Dst: X509V3_get_value_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pcons.c:73,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pcons.c:76,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pcons.c:77,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pcons.c:82,1
    - Dst: POLICY_CONSTRAINTS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pcons.c:89,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - method
    - ctx
    - values
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 91
      start: 55
    functionDepth: 6
    functionLinenumber: 55
    functionLinenumberEnd: 91
    functionName: v2i_POLICY_CONSTRAINTS
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pcons.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - strcmp
    - X509V3_get_value_int
    - sk_CONF_VALUE_num
    - X509V3err
    - X509V3_conf_err
    - POLICY_CONSTRAINTS_free
    - POLICY_CONSTRAINTS_new
    linkageType: ''
    returnType: void
    signature: "*v2i_POLICY_CONSTRAINTS(const X509V3_EXT_METHOD *method,\n                                    X509V3_CTX
      *ctx,\n                                    STACK_OF(CONF_VALUE) *values)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_PURPOSE**
    - X509_PURPOSE**
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: xp_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: xp_cmp(const X509_PURPOSE *const *a, const X509_PURPOSE *const *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:82,1
    - Dst: x509v3_cache_extensions
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:83,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:84,1
    - Dst: X509_PURPOSE_get_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:89,1
    - Dst: X509_PURPOSE_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:92,1
    - Dst: X509_PURPOSE*::check_purpose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - x
    - id
    - ca
    argTypes:
    - X509*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 94
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 94
    functionName: X509_check_purpose
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 7
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - X509_PURPOSE*::check_purpose
    - X509_PURPOSE_get0
    - X509_PURPOSE_get_by_id
    - CRYPTO_THREAD_unlock
    - x509v3_cache_extensions
    linkageType: ''
    returnType: int
    signature: X509_check_purpose(X509 *x, int id, int ca)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_PURPOSE_get_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:98,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - p
    - purpose
    argTypes:
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 104
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 104
    functionName: X509_PURPOSE_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 1
    functionsReached:
    - X509_PURPOSE_get_by_id
    - X509V3err
    linkageType: ''
    returnType: int
    signature: X509_PURPOSE_set(int *p, int purpose)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_PURPOSE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: X509_PURPOSE_get_count
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - sk_X509_PURPOSE_num
    linkageType: ''
    returnType: int
    signature: X509_PURPOSE_get_count(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_PURPOSE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: X509_PURPOSE_get0
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 2
    functionsReached:
    - sk_X509_PURPOSE_value
    linkageType: ''
    returnType: X509_PURPOSE
    signature: '*X509_PURPOSE_get0(int idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_PURPOSE_get_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:126,1
    - Dst: X509_PURPOSE_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:127,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - sname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: X509_PURPOSE_get_by_sname
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - X509_PURPOSE_get_count
    - strcmp
    - X509_PURPOSE_get0
    linkageType: ''
    returnType: int
    signature: X509_PURPOSE_get_by_sname(const char *sname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_PURPOSE_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - purpose
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 147
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 147
    functionName: X509_PURPOSE_get_by_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 3
    functionsReached:
    - sk_X509_PURPOSE_find
    linkageType: ''
    returnType: int
    signature: X509_PURPOSE_get_by_id(int purpose)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_PURPOSE_get_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:162,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:165,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:166,1
    - Dst: X509_PURPOSE_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:171,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:175,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:176,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:179,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:180,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:182,1
    - Dst: sk_X509_PURPOSE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:198,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:199,1
    - Dst: sk_X509_PURPOSE_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:202,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:203,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:210,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:211,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:212,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 6
    argNames:
    - id
    - trust
    - flags
    - name
    - sname
    - arg
    argTypes:
    - int
    - int
    - int
    - char*
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 215
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 215
    functionName: X509_PURPOSE_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - sk_X509_PURPOSE_new
    - X509_PURPOSE_get0
    - X509_PURPOSE_get_by_id
    - X509V3err
    - sk_X509_PURPOSE_push
    - OPENSSL_strdup
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "X509_PURPOSE_add(int id, int trust, int flags,\n                     int
      (*ck) (const X509_PURPOSE *, const X509 *, int),\n                     const
      char *name, const char *sname, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:223,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:224,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - X509_PURPOSE*
    constantsTouched: []
    func_position:
      end: 228
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 228
    functionName: xptable_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: xptable_free(X509_PURPOSE *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_PURPOSE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: X509_PURPOSE_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - sk_X509_PURPOSE_pop_free
    linkageType: ''
    returnType: void
    signature: X509_PURPOSE_cleanup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xp
    argTypes:
    - X509_PURPOSE*
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: X509_PURPOSE_get_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: X509_PURPOSE_get_id(const X509_PURPOSE *xp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xp
    argTypes:
    - X509_PURPOSE*
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: X509_PURPOSE_get0_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*X509_PURPOSE_get0_name(const X509_PURPOSE *xp)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xp
    argTypes:
    - X509_PURPOSE*
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: X509_PURPOSE_get0_sname
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*X509_PURPOSE_get0_sname(const X509_PURPOSE *xp)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xp
    argTypes:
    - X509_PURPOSE*
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: X509_PURPOSE_get_trust
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: X509_PURPOSE_get_trust(const X509_PURPOSE *xp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: nid_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: nid_cmp(const int *a, const int *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_bsearch_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:297,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ex
    argTypes:
    - X509_EXTENSION*
    constantsTouched: []
    func_position:
      end: 300
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 300
    functionName: X509_supported_extension
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - OBJ_bsearch_nid
    linkageType: ''
    returnType: int
    signature: X509_supported_extension(X509_EXTENSION *ex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:316,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:317,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:324,1
    - Dst: DIST_POINT_set_dpname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:326,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - x
    - dp
    argTypes:
    - X509*
    - DIST_POINT*
    constantsTouched: []
    func_position:
      end: 328
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 328
    functionName: setup_dp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - sk_GENERAL_NAME_value
    - sk_GENERAL_NAME_num
    - DIST_POINT_set_dpname
    - X509_get_issuer_name
    linkageType: ''
    returnType: void
    signature: setup_dp(X509 *x, DIST_POINT *dp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:333,1
    - Dst: sk_DIST_POINT_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:334,1
    - Dst: setup_dp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:335,1
    - Dst: sk_DIST_POINT_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 336
      start: 330
    functionDepth: 3
    functionLinenumber: 330
    functionLinenumberEnd: 336
    functionName: setup_crldp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - sk_DIST_POINT_value
    - setup_dp
    - X509_get_ext_d2i
    - sk_DIST_POINT_num
    linkageType: ''
    returnType: void
    signature: setup_crldp(X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:358,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:358,1
    - Dst: X509_get_version
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:360,1
    - Dst: X509_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:363,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:372,1
    - Dst: BASIC_CONSTRAINTS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:375,1
    - Dst: X509_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:379,1
    - Dst: X509_get_ext_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:381,1
    - Dst: X509_get_ext_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:382,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:386,1
    - Dst: PROXY_CERT_INFO_EXTENSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:389,1
    - Dst: X509_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:393,1
    - Dst: ASN1_BIT_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:401,1
    - Dst: X509_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:404,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:406,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:407,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:407,1
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:446,1
    - Dst: X509_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:449,1
    - Dst: ASN1_BIT_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:455,1
    - Dst: X509_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:457,1
    - Dst: X509_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:458,1
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:460,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:460,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:460,1
    - Dst: X509_check_akid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:463,1
    - Dst: ku_reject
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:464,1
    - Dst: X509_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:467,1
    - Dst: X509_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:468,1
    - Dst: setup_crldp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:471,1
    - Dst: X509_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:474,1
    - Dst: X509_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:475,1
    - Dst: X509_get_ext_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:478,1
    - Dst: X509_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:479,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:480,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:480,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:483,1
    - Dst: X509_supported_extension
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:485,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 111
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 491
      start: 346
    functionDepth: 5
    functionLinenumber: 346
    functionLinenumberEnd: 491
    functionName: x509v3_cache_extensions
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 1
    functionsReached:
    - X509_get_version
    - sk_ASN1_OBJECT_pop_free
    - ASN1_BIT_STRING_free
    - X509_NAME_cmp
    - X509_supported_extension
    - X509_get_issuer_name
    - PROXY_CERT_INFO_EXTENSION_free
    - EVP_sha1
    - X509_digest
    - BASIC_CONSTRAINTS_free
    - X509_get_ext_count
    - ku_reject
    - X509_EXTENSION_get_object
    - setup_crldp
    - sk_ASN1_OBJECT_num
    - X509_get_ext
    - X509_check_akid
    - ASN1_INTEGER_get
    - sk_ASN1_OBJECT_value
    - X509_get_ext_d2i
    - X509_get_ext_by_NID
    - OBJ_obj2nid
    - X509_get_subject_name
    - X509_EXTENSION_get_critical
    linkageType: ''
    returnType: void
    signature: x509v3_cache_extensions(X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ku_reject
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:506,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 529
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 529
    functionName: check_ca
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 1
    functionsReached:
    - ku_reject
    linkageType: ''
    returnType: int
    signature: check_ca(const X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: X509_set_proxy_flag
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: X509_set_proxy_flag(X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - l
    argTypes:
    - X509*
    - long
    constantsTouched: []
    func_position:
      end: 539
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 539
    functionName: X509_set_proxy_pathlen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: X509_set_proxy_pathlen(X509 *x, long l)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:544,1
    - Dst: x509v3_cache_extensions
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:545,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:546,1
    - Dst: check_ca
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:549,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 550
      start: 541
    functionDepth: 6
    functionLinenumber: 541
    functionLinenumberEnd: 550
    functionName: X509_check_ca
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - check_ca
    - x509v3_cache_extensions
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: X509_check_ca(X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_ca
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:556,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 564
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 564
    functionName: check_ssl_ca
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - check_ca
    linkageType: ''
    returnType: int
    signature: check_ssl_ca(const X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xku_reject
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:569,1
    - Dst: check_ssl_ca
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:572,1
    - Dst: ku_reject
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:574,1
    - Dst: ns_reject
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - xp
    - x
    - ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 580
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 580
    functionName: check_purpose_ssl_client
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - ku_reject
    - check_ssl_ca
    - xku_reject
    - ns_reject
    linkageType: ''
    returnType: int
    signature: "check_purpose_ssl_client(const X509_PURPOSE *xp, const X509 *x,\n
      \                                   int ca)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xku_reject
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:593,1
    - Dst: check_ssl_ca
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:596,1
    - Dst: ns_reject
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:598,1
    - Dst: ku_reject
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:600,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - xp
    - x
    - ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 605
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 605
    functionName: check_purpose_ssl_server
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - ku_reject
    - check_ssl_ca
    - xku_reject
    - ns_reject
    linkageType: ''
    returnType: int
    signature: "check_purpose_ssl_server(const X509_PURPOSE *xp, const X509 *x,\n
      \                                   int ca)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_purpose_ssl_server
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:611,1
    - Dst: ku_reject
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:615,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - xp
    - x
    - ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 618
      start: 607
    functionDepth: 3
    functionLinenumber: 607
    functionLinenumberEnd: 618
    functionName: check_purpose_ns_ssl_server
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - check_purpose_ssl_server
    - ku_reject
    linkageType: ''
    returnType: int
    signature: "check_purpose_ns_ssl_server(const X509_PURPOSE *xp, const X509 *x,\n
      \                                      int ca)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xku_reject
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:623,1
    - Dst: check_ca
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:627,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - x
    - ca
    argTypes:
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 645
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 645
    functionName: purpose_smime
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - xku_reject
    - check_ca
    linkageType: ''
    returnType: int
    signature: purpose_smime(const X509 *x, int ca)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: purpose_smime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:651,1
    - Dst: ku_reject
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - xp
    - x
    - ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 657
      start: 647
    functionDepth: 2
    functionLinenumber: 647
    functionLinenumberEnd: 657
    functionName: check_purpose_smime_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - purpose_smime
    - ku_reject
    linkageType: ''
    returnType: int
    signature: "check_purpose_smime_sign(const X509_PURPOSE *xp, const X509 *x,\n
      \                                   int ca)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: purpose_smime
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:663,1
    - Dst: ku_reject
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:666,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - xp
    - x
    - ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 669
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 669
    functionName: check_purpose_smime_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - purpose_smime
    - ku_reject
    linkageType: ''
    returnType: int
    signature: "check_purpose_smime_encrypt(const X509_PURPOSE *xp, const X509 *x,\n
      \                                      int ca)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_ca
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:676,1
    - Dst: ku_reject
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:681,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - xp
    - x
    - ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 684
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 684
    functionName: check_purpose_crl_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - ku_reject
    - check_ca
    linkageType: ''
    returnType: int
    signature: "check_purpose_crl_sign(const X509_PURPOSE *xp, const X509 *x,\n                                  int
      ca)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_ca
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - xp
    - x
    - ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 701
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 701
    functionName: ocsp_helper
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - check_ca
    linkageType: ''
    returnType: int
    signature: ocsp_helper(const X509_PURPOSE *xp, const X509 *x, int ca)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_ca
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:710,1
    - Dst: X509_get_ext_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:728,1
    - Dst: X509_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:730,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:731,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - xp
    - x
    - ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 736
      start: 703
    functionDepth: 2
    functionLinenumber: 703
    functionLinenumberEnd: 736
    functionName: check_purpose_timestamp_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - X509_EXTENSION_get_critical
    - X509_get_ext
    - check_ca
    - X509_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: "check_purpose_timestamp_sign(const X509_PURPOSE *xp, const X509 *x,\n
      \                                       int ca)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xp
    - x
    - ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 741
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 741
    functionName: no_check
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: no_check(const X509_PURPOSE *xp, const X509 *x, int ca)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:758,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:758,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:759,1
    - Dst: x509v3_cache_extensions
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:761,1
    - Dst: x509v3_cache_extensions
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:762,1
    - Dst: ku_reject
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:771,1
    - Dst: ku_reject
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:773,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - issuer
    - subject
    argTypes:
    - X509*
    - X509*
    constantsTouched: []
    func_position:
      end: 776
      start: 756
    functionDepth: 6
    functionLinenumber: 756
    functionLinenumberEnd: 776
    functionName: X509_check_issued
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 1
    functionsReached:
    - X509_get_subject_name
    - X509_NAME_cmp
    - ku_reject
    - x509v3_cache_extensions
    - X509_get_issuer_name
    linkageType: ''
    returnType: int
    signature: X509_check_issued(X509 *issuer, X509 *subject)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:786,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:790,1
    - Dst: X509_get_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:790,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:804,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:805,1
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:811,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:811,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 2
    argNames:
    - issuer
    - akid
    argTypes:
    - X509*
    - AUTHORITY_KEYID*
    constantsTouched: []
    func_position:
      end: 815
      start: 778
    functionDepth: 2
    functionLinenumber: 778
    functionLinenumberEnd: 815
    functionName: X509_check_akid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 2
    functionsReached:
    - sk_GENERAL_NAME_value
    - sk_GENERAL_NAME_num
    - ASN1_INTEGER_cmp
    - X509_get_serialNumber
    - X509_NAME_cmp
    - ASN1_OCTET_STRING_cmp
    - X509_get_issuer_name
    linkageType: ''
    returnType: int
    signature: X509_check_akid(X509 *issuer, AUTHORITY_KEYID *akid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 822
      start: 817
    functionDepth: 4
    functionLinenumber: 817
    functionLinenumberEnd: 822
    functionName: X509_get_extension_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 1
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: uint32_t
    signature: X509_get_extension_flags(X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 831
      start: 824
    functionDepth: 4
    functionLinenumber: 824
    functionLinenumberEnd: 831
    functionName: X509_get_key_usage
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: uint32_t
    signature: X509_get_key_usage(X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:836,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 840
      start: 833
    functionDepth: 4
    functionLinenumber: 833
    functionLinenumberEnd: 840
    functionName: X509_get_extended_key_usage
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 1
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: uint32_t
    signature: X509_get_extended_key_usage(X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 847
      start: 842
    functionDepth: 4
    functionLinenumber: 842
    functionLinenumberEnd: 847
    functionName: X509_get0_subject_key_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 2
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: '*X509_get0_subject_key_id(X509 *x)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 856
      start: 849
    functionDepth: 4
    functionLinenumber: 849
    functionLinenumberEnd: 856
    functionName: X509_get_pathlen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: long
    signature: X509_get_pathlen(X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c:861,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 865
      start: 858
    functionDepth: 4
    functionLinenumber: 858
    functionLinenumberEnd: 865
    functionName: X509_get_proxy_pathlen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
    functionUses: 0
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: long
    signature: X509_get_proxy_pathlen(X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:66,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:68,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:70,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:71,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:72,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:73,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:74,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - method
    - pci
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - PROXY_CERT_INFO_EXTENSION*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 79
      start: 63
    functionDepth: 4
    functionLinenumber: 63
    functionLinenumberEnd: 79
    functionName: i2r_pci
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c
    functionUses: 0
    functionsReached:
    - i2a_ASN1_INTEGER
    - BIO_printf
    - i2a_ASN1_OBJECT
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: "i2r_pci(X509V3_EXT_METHOD *method, PROXY_CERT_INFO_EXTENSION *pci,\n
      \                  BIO *out, int indent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:87,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:89,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:91,1
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:94,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:95,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:97,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:100,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:102,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:104,1
    - Dst: X509V3_get_value_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:107,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:108,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:110,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:113,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:117,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:119,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:120,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:125,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:130,1
    - Dst: OPENSSL_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:134,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:138,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:143,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:148,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:151,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:152,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:155,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:156,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:159,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:161,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:162,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:165,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:166,1
    - Dst: OPENSSL_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:170,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:174,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:177,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:179,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:180,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:185,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:189,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:192,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:193,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:196,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:197,1
    - Dst: OPENSSL_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:198,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:202,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:211,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:214,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:215,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:219,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:221,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:225,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:226,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:233,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 131
    argCount: 4
    argNames:
    - val
    - language
    - pathlen
    - policy
    argTypes:
    - CONF_VALUE*
    - ASN1_OBJECT**
    - ASN1_INTEGER**
    - ASN1_OCTET_STRING**
    constantsTouched: []
    func_position:
      end: 237
      start: 81
    functionDepth: 6
    functionLinenumber: 81
    functionLinenumberEnd: 237
    functionName: process_pci_value
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_new
    - OBJ_txt2obj
    - BIO_free_all
    - strcmp
    - OPENSSL_realloc
    - X509V3_get_value_int
    - strncmp
    - BIO_should_retry
    - ASN1_OCTET_STRING_free
    - X509V3err
    - strlen
    - memcpy
    - X509V3_conf_err
    - BIO_new_file
    - OPENSSL_free
    - BIO_read
    linkageType: ''
    returnType: int
    signature: "process_pci_value(CONF_VALUE *val,\n                             ASN1_OBJECT
      **language, ASN1_INTEGER **pathlen,\n                             ASN1_OCTET_STRING
      **policy)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:243,1
    - Dst: X509V3_parse_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:249,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:250,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:251,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:253,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:255,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:259,1
    - Dst: X509V3_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:262,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:264,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:265,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:268,1
    - Dst: process_pci_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:270,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:270,1
    - Dst: X509V3_section_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:273,1
    - Dst: process_pci_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:277,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:278,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:286,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:290,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:292,1
    - Dst: PROXY_CERT_INFO_EXTENSION_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:297,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:299,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:311,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:312,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:314,1
    - Dst: PROXY_CERT_INFO_EXTENSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:316,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c:319,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 3
    argNames:
    - method
    - ctx
    - value
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 321
      start: 239
    functionDepth: 7
    functionLinenumber: 239
    functionLinenumberEnd: 321
    functionName: r2i_pci
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c
    functionUses: 0
    functionsReached:
    - PROXY_CERT_INFO_EXTENSION_free
    - sk_CONF_VALUE_value
    - STACK_OF
    - OBJ_obj2nid
    - sk_CONF_VALUE_num
    - ASN1_OCTET_STRING_free
    - X509V3err
    - process_pci_value
    - X509V3_parse_list
    - PROXY_CERT_INFO_EXTENSION_new
    - ASN1_OBJECT_free
    - X509V3_conf_err
    - X509V3_get_section
    - X509V3_section_free
    - ASN1_INTEGER_free
    - sk_CONF_VALUE_pop_free
    linkageType: ''
    returnType: PROXY_CERT_INFO_EXTENSION
    signature: "*r2i_pci(X509V3_EXT_METHOD *method,\n                                          X509V3_CTX
      *ctx, char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_POLICY_MAPPING_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_map.c:29,1
    - Dst: sk_POLICY_MAPPING_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_map.c:33,1
    - Dst: sk_POLICY_MAPPING_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_map.c:34,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_map.c:36,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_map.c:37,1
    - Dst: policy_cache_find_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_map.c:43,1
    - Dst: policy_data_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_map.c:50,1
    - Dst: sk_X509_POLICY_DATA_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_map.c:61,1
    - Dst: policy_data_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_map.c:62,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_map.c:67,1
    - Dst: sk_POLICY_MAPPING_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_map.c:78,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 2
    argNames:
    - x
    - maps
    argTypes:
    - X509*
    - POLICY_MAPPINGS*
    constantsTouched: []
    func_position:
      end: 81
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 81
    functionName: policy_cache_set_mapping
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_map.c
    functionUses: 1
    functionsReached:
    - sk_ASN1_OBJECT_push
    - sk_POLICY_MAPPING_value
    - OBJ_obj2nid
    - policy_data_free
    - policy_data_new
    - policy_cache_find_data
    - sk_POLICY_MAPPING_num
    - sk_X509_POLICY_DATA_push
    - sk_POLICY_MAPPING_pop_free
    linkageType: ''
    returnType: int
    signature: policy_cache_set_mapping(X509 *x, POLICY_MAPPINGS *maps)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add_standard_extensions
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3prin.c:23,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3prin.c:24,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3prin.c:26,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3prin.c:27,1
    - Dst: fopen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3prin.c:29,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3prin.c:30,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3prin.c:31,1
    - Dst: PEM_read_X509
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3prin.c:33,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3prin.c:34,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3prin.c:35,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3prin.c:36,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3prin.c:38,1
    - Dst: X509_get_ext_count
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3prin.c:39,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3prin.c:40,1
    - Dst: X509_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3prin.c:42,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3prin.c:43,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3prin.c:43,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3prin.c:43,1
    - Dst: X509V3_EXT_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3prin.c:44,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3prin.c:45,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3prin.c:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 50
      start: 16
    functionDepth: 5
    functionLinenumber: 16
    functionLinenumberEnd: 50
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3prin.c
    functionUses: 22
    functionsReached:
    - PEM_read_X509
    - OBJ_nid2ln
    - exit
    - OBJ_obj2nid
    - ERR_print_errors_fp
    - X509_get_ext_count
    - X509_get_ext
    - fclose
    - X509V3_add_standard_extensions
    - printf
    - X509V3_EXT_print_fp
    - fprintf
    - fopen
    - ERR_load_crypto_strings
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:68,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:71,1
    - Dst: sk_ASIdOrRange_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:74,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:76,1
    - Dst: i2s_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:79,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:81,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:82,1
    - Dst: i2s_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:85,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:87,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:88,1
    - Dst: i2s_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:89,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:91,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:92,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 4
    argNames:
    - out
    - choice
    - indent
    - msg
    argTypes:
    - BIO*
    - ASIdentifierChoice*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 103
      start: 60
    functionDepth: 7
    functionLinenumber: 60
    functionLinenumberEnd: 103
    functionName: i2r_ASIdentifierChoice
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - sk_ASIdOrRange_value
    - sk_ASIdOrRange_num
    - i2s_ASN1_INTEGER
    - BIO_printf
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: "i2r_ASIdentifierChoice(BIO *out,\n                                  ASIdentifierChoice
      *choice,\n                                  int indent, const char *msg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2r_ASIdentifierChoice
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:112,1
    - Dst: i2r_ASIdentifierChoice
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - method
    - ext
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 8
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: i2r_ASIdentifiers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - i2r_ASIdentifierChoice
    linkageType: ''
    returnType: int
    signature: "i2r_ASIdentifiers(const X509V3_EXT_METHOD *method,\n                             void
      *ext, BIO *out, int indent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:126,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:130,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:135,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:139,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:144,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:146,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 11
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - ASIdOrRange**
    - ASIdOrRange**
    constantsTouched: []
    func_position:
      end: 147
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 147
    functionName: ASIdOrRange_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_cmp
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: "ASIdOrRange_cmp(const ASIdOrRange *const *a_,\n                           const
      ASIdOrRange *const *b_)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASIdentifierChoice_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:168,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:170,1
    - Dst: ASN1_NULL_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:171,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - asid
    - which
    argTypes:
    - ASIdentifiers*
    - int
    constantsTouched: []
    func_position:
      end: 176
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 176
    functionName: X509v3_asid_add_inherit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - ASN1_NULL_new
    - ASIdentifierChoice_new
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: X509v3_asid_add_inherit(ASIdentifiers *asid, int which)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASIdentifierChoice_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:201,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:203,1
    - Dst: sk_ASIdOrRange_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:204,1
    - Dst: ASIdOrRange_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:209,1
    - Dst: ASRange_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:216,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:218,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:220,1
    - Dst: sk_ASIdOrRange_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:223,1
    - Dst: ASIdOrRange_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:228,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 4
    argNames:
    - asid
    - which
    - min
    - max
    argTypes:
    - ASIdentifiers*
    - int
    - ASN1_INTEGER*
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 230
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 230
    functionName: X509v3_asid_add_id_or_range
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - ASIdOrRange_new
    - OPENSSL_assert
    - ASRange_new
    - ASIdOrRange_free
    - ASIdentifierChoice_new
    - sk_ASIdOrRange_push
    - sk_ASIdOrRange_new
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: int
    signature: "X509v3_asid_add_id_or_range(ASIdentifiers *asid,\n                                int
      which, ASN1_INTEGER *min, ASN1_INTEGER *max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - aor
    - min
    - max
    argTypes:
    - ASIdOrRange*
    - ASN1_INTEGER**
    - ASN1_INTEGER**
    constantsTouched: []
    func_position:
      end: 249
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 249
    functionName: extract_min_max
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c
    functionUses: 4
    functionsReached:
    - OPENSSL_assert
    linkageType: ''
    returnType: void
    signature: "extract_min_max(ASIdOrRange *aor,\n                            ASN1_INTEGER
      **min, ASN1_INTEGER **max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASIdOrRange_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:270,1
    - Dst: sk_ASIdOrRange_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:276,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:277,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:278,1
    - Dst: extract_min_max
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:282,1
    - Dst: extract_min_max
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:283,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:288,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:289,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:290,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:296,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:297,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:298,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:300,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:301,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:309,1
    - Dst: sk_ASIdOrRange_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:316,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:318,1
    - Dst: extract_min_max
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:321,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:322,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:330,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:331,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 34
    argCount: 1
    argNames:
    - choice
    argTypes:
    - ASIdentifierChoice*
    constantsTouched: []
    func_position:
      end: 333
      start: 254
    functionDepth: 6
    functionLinenumber: 254
    functionLinenumberEnd: 333
    functionName: ASIdentifierChoice_is_canonical
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_add_word
    - BN_free
    - ASN1_INTEGER_to_BN
    - sk_ASIdOrRange_value
    - ASN1_INTEGER_cmp
    - BN_to_ASN1_INTEGER
    - X509V3err
    - sk_ASIdOrRange_num
    - extract_min_max
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: int
    signature: ASIdentifierChoice_is_canonical(ASIdentifierChoice *choice)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASIdentifierChoice_is_canonical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:341,1
    - Dst: ASIdentifierChoice_is_canonical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - asid
    argTypes:
    - ASIdentifiers*
    constantsTouched: []
    func_position:
      end: 343
      start: 338
    functionDepth: 7
    functionLinenumber: 338
    functionLinenumberEnd: 343
    functionName: X509v3_asid_is_canonical
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - ASIdentifierChoice_is_canonical
    linkageType: ''
    returnType: int
    signature: X509v3_asid_is_canonical(ASIdentifiers *asid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASIdOrRange_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:364,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:365,1
    - Dst: sk_ASIdOrRange_sort
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:373,1
    - Dst: sk_ASIdOrRange_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:379,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:380,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:381,1
    - Dst: extract_min_max
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:385,1
    - Dst: extract_min_max
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:386,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:391,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:391,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:396,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:397,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:403,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:404,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:412,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:413,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:414,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:416,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:417,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:425,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:429,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:430,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:440,1
    - Dst: ASIdOrRange_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:452,1
    - Dst: sk_ASIdOrRange_delete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:453,1
    - Dst: sk_ASIdOrRange_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:462,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:464,1
    - Dst: extract_min_max
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:467,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:468,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:473,1
    - Dst: ASIdentifierChoice_is_canonical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:473,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:478,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:479,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 72
    argCount: 1
    argNames:
    - choice
    argTypes:
    - ASIdentifierChoice*
    constantsTouched: []
    func_position:
      end: 481
      start: 348
    functionDepth: 7
    functionLinenumber: 348
    functionLinenumberEnd: 481
    functionName: ASIdentifierChoice_canonize
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_add_word
    - sk_ASIdOrRange_delete
    - BN_free
    - OPENSSL_assert
    - ASN1_INTEGER_to_BN
    - ASIdOrRange_free
    - sk_ASIdOrRange_value
    - ASN1_INTEGER_cmp
    - ASIdentifierChoice_is_canonical
    - BN_to_ASN1_INTEGER
    - X509V3err
    - sk_ASIdOrRange_num
    - sk_ASIdOrRange_sort
    - extract_min_max
    - ASN1_INTEGER_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: ASIdentifierChoice_canonize(ASIdentifierChoice *choice)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASIdentifierChoice_canonize
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:489,1
    - Dst: ASIdentifierChoice_canonize
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - asid
    argTypes:
    - ASIdentifiers*
    constantsTouched: []
    func_position:
      end: 491
      start: 486
    functionDepth: 8
    functionLinenumber: 486
    functionLinenumberEnd: 491
    functionName: X509v3_asid_canonize
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - ASIdentifierChoice_canonize
    linkageType: ''
    returnType: int
    signature: X509v3_asid_canonize(ASIdentifiers *asid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASIdentifiers_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:504,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:505,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:509,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:510,1
    - Dst: name_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:516,1
    - Dst: name_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:518,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:521,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:523,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:530,1
    - Dst: X509v3_asid_add_inherit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:531,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:533,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:535,1
    - Dst: strspn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:542,1
    - Dst: strspn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:547,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:549,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:551,1
    - Dst: strspn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:555,1
    - Dst: strspn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:556,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:558,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:560,1
    - Dst: X509V3_get_value_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:569,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:570,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:576,1
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:580,1
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:581,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:582,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:584,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:587,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:588,1
    - Dst: X509v3_asid_add_id_or_range
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:593,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:594,1
    - Dst: X509v3_asid_canonize
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:603,1
    - Dst: ASIdentifiers_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:608,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:609,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:610,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 91
    argCount: 3
    argNames:
    - method
    - ctx
    - values
    argTypes:
    - struct v3_ext_method*
    - struct v3_ext_ctx*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 612
      start: 496
    functionDepth: 9
    functionLinenumber: 496
    functionLinenumberEnd: 612
    functionName: v2i_ASIdentifiers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - X509v3_asid_add_id_or_range
    - sk_CONF_VALUE_value
    - X509v3_asid_canonize
    - name_cmp
    - strcmp
    - ASIdentifiers_free
    - ASIdentifiers_new
    - X509v3_asid_add_inherit
    - X509V3_get_value_int
    - ASN1_INTEGER_cmp
    - sk_CONF_VALUE_num
    - X509V3err
    - X509V3_conf_err
    - s2i_ASN1_INTEGER
    - OPENSSL_free
    - ASN1_INTEGER_free
    - strspn
    linkageType: ''
    returnType: void
    signature: "*v2i_ASIdentifiers(const struct v3_ext_method *method,\n                               struct
      v3_ext_ctx *ctx,\n                               STACK_OF(CONF_VALUE) *values)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - asid
    argTypes:
    - ASIdentifiers*
    constantsTouched: []
    func_position:
      end: 641
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 641
    functionName: X509v3_asid_inherits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: X509v3_asid_inherits(ASIdentifiers *asid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASIdOrRange_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:657,1
    - Dst: extract_min_max
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:658,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:658,1
    - Dst: sk_ASIdOrRange_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:660,1
    - Dst: extract_min_max
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:662,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:662,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:663,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:665,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - parent
    - child
    argTypes:
    - ASIdOrRanges*
    - ASIdOrRanges*
    constantsTouched: []
    func_position:
      end: 672
      start: 646
    functionDepth: 2
    functionLinenumber: 646
    functionLinenumberEnd: 672
    functionName: asid_contains
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - extract_min_max
    - sk_ASIdOrRange_value
    - sk_ASIdOrRange_num
    - ASN1_INTEGER_cmp
    linkageType: ''
    returnType: int
    signature: asid_contains(ASIdOrRanges *parent, ASIdOrRanges *child)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_asid_inherits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:682,1
    - Dst: X509v3_asid_inherits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:683,1
    - Dst: asid_contains
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:684,1
    - Dst: asid_contains
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:686,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASIdentifiers*
    - ASIdentifiers*
    constantsTouched: []
    func_position:
      end: 688
      start: 677
    functionDepth: 3
    functionLinenumber: 677
    functionLinenumberEnd: 688
    functionName: X509v3_asid_subset
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c
    functionUses: 0
    functionsReached:
    - asid_contains
    - X509v3_asid_inherits
    linkageType: ''
    returnType: int
    signature: X509v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asid_validate_path_internal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c:833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 834
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 834
    functionName: X509v3_asid_validate_path
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c
    functionUses: 1
    functionsReached:
    - asid_validate_path_internal
    linkageType: ''
    returnType: int
    signature: X509v3_asid_validate_path(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509V3_EXT_METHOD_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:28,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:29,1
    - Dst: sk_X509V3_EXT_METHOD_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:32,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ext
    argTypes:
    - X509V3_EXT_METHOD*
    constantsTouched: []
    func_position:
      end: 37
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 37
    functionName: X509V3_EXT_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c
    functionUses: 0
    functionsReached:
    - X509V3err
    - sk_X509V3_EXT_METHOD_new
    - sk_X509V3_EXT_METHOD_push
    linkageType: ''
    returnType: int
    signature: X509V3_EXT_add(X509V3_EXT_METHOD *ext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509V3_EXT_METHOD**
    - X509V3_EXT_METHOD**
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: ext_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "ext_cmp(const X509V3_EXT_METHOD *const *a,\n                   const
      X509V3_EXT_METHOD *const *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_bsearch_ext
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:126,1
    - Dst: sk_X509V3_EXT_METHOD_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:131,1
    - Dst: sk_X509V3_EXT_METHOD_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:134,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 135
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 135
    functionName: X509V3_EXT_get_nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c
    functionUses: 2
    functionsReached:
    - sk_X509V3_EXT_METHOD_find
    - OBJ_bsearch_ext
    - sk_X509V3_EXT_METHOD_value
    linkageType: ''
    returnType: X509V3_EXT_METHOD
    signature: '*X509V3_EXT_get_nid(int nid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:140,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:140,1
    - Dst: X509V3_EXT_get_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ext
    argTypes:
    - X509_EXTENSION*
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: X509V3_EXT_get
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    - X509V3_EXT_get_nid
    - X509_EXTENSION_get_object
    linkageType: ''
    returnType: X509V3_EXT_METHOD
    signature: '*X509V3_EXT_get(X509_EXTENSION *ext)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_EXT_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - extlist
    argTypes:
    - X509V3_EXT_METHOD*
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: X509V3_EXT_add_list
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c
    functionUses: 0
    functionsReached:
    - X509V3_EXT_add
    linkageType: ''
    returnType: int
    signature: X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_EXT_get_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:158,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:159,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:162,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:163,1
    - Dst: X509V3_EXT_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - nid_to
    - nid_from
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 170
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 170
    functionName: X509V3_EXT_add_alias
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c
    functionUses: 0
    functionsReached:
    - X509V3err
    - X509V3_EXT_get_nid
    - OPENSSL_malloc
    - X509V3_EXT_add
    linkageType: ''
    returnType: int
    signature: X509V3_EXT_add_alias(int nid_to, int nid_from)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509V3_EXT_METHOD_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: X509V3_EXT_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c
    functionUses: 0
    functionsReached:
    - sk_X509V3_EXT_METHOD_pop_free
    linkageType: ''
    returnType: void
    signature: X509V3_EXT_cleanup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ext
    argTypes:
    - X509V3_EXT_METHOD*
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: ext_list_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: ext_list_free(X509V3_EXT_METHOD *ext)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: X509V3_add_standard_extensions
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: X509V3_add_standard_extensions(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_EXT_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:203,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:205,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:206,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:207,1
    - Dst: ASN1_item_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:209,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:209,1
    - Dst: X509V3_EXT_METHOD*::d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ext
    argTypes:
    - X509_EXTENSION*
    constantsTouched: []
    func_position:
      end: 211
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 211
    functionName: X509V3_EXT_d2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c
    functionUses: 2
    functionsReached:
    - X509_EXTENSION_get_data
    - ASN1_item_d2i
    - X509V3_EXT_METHOD*::d2i
    - X509V3_EXT_get
    - ASN1_ITEM_ptr
    - ASN1_STRING_length
    - ASN1_STRING_get0_data
    linkageType: ''
    returnType: void
    signature: '*X509V3_EXT_d2i(X509_EXTENSION *ext)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:247,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:248,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:249,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:249,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:266,1
    - Dst: X509V3_EXT_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c:267,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 4
    argNames:
    - x
    - nid
    - crit
    - idx
    argTypes:
    - STACK_OF*
    - int
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 276
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 276
    functionName: X509V3_get_d2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c
    functionUses: 9
    functionsReached:
    - sk_X509_EXTENSION_value
    - X509V3_EXT_d2i
    - OBJ_obj2nid
    - X509_EXTENSION_get_critical
    - sk_X509_EXTENSION_num
    - X509_EXTENSION_get_object
    linkageType: ''
    returnType: void
    signature: "*X509V3_get_d2i(const STACK_OF(X509_EXTENSION) *x, int nid, int *crit,\n
      \                    int *idx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_POLICY_MAPPING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pmaps.c:73,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pmaps.c:74,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pmaps.c:78,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pmaps.c:79,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pmaps.c:81,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pmaps.c:83,1
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pmaps.c:86,1
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pmaps.c:87,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pmaps.c:89,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pmaps.c:91,1
    - Dst: POLICY_MAPPING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pmaps.c:94,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pmaps.c:96,1
    - Dst: sk_POLICY_MAPPING_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pmaps.c:102,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pmaps.c:106,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pmaps.c:107,1
    - Dst: sk_POLICY_MAPPING_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pmaps.c:108,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 110
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 110
    functionName: v2i_POLICY_MAPPINGS
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pmaps.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - OBJ_txt2obj
    - sk_CONF_VALUE_num
    - X509V3err
    - POLICY_MAPPING_new
    - ASN1_OBJECT_free
    - X509V3_conf_err
    - sk_POLICY_MAPPING_push
    - sk_POLICY_MAPPING_new_null
    - sk_POLICY_MAPPING_pop_free
    linkageType: ''
    returnType: void
    signature: "*v2i_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method,\n                                 X509V3_CTX
      *ctx, STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:89,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:93,1
    - Dst: sk_POLICYINFO_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:96,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:98,1
    - Dst: X509V3_parse_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:101,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:103,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:107,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:108,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:110,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:112,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:116,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:120,1
    - Dst: X509V3_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:121,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:123,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:125,1
    - Dst: policy_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:128,1
    - Dst: X509V3_section_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:129,1
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:133,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:134,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:136,1
    - Dst: POLICYINFO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:139,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:141,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:142,1
    - Dst: sk_POLICYINFO_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:147,1
    - Dst: POLICYINFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:148,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:149,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:153,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:156,1
    - Dst: sk_POLICYINFO_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:157,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 72
    argCount: 3
    argNames:
    - method
    - ctx
    - value
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 159
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 159
    functionName: r2i_certpol
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - OBJ_txt2obj
    - sk_POLICYINFO_push
    - strcmp
    - STACK_OF
    - POLICYINFO_free
    - sk_POLICYINFO_pop_free
    - sk_POLICYINFO_new_null
    - sk_CONF_VALUE_num
    - X509V3err
    - X509V3_parse_list
    - policy_section
    - ASN1_OBJECT_free
    - X509V3_conf_err
    - X509V3_get_section
    - X509V3_section_free
    - sk_CONF_VALUE_pop_free
    - POLICYINFO_new
    linkageType: ''
    returnType: STACK_OF
    signature: "*r2i_certpol(X509V3_EXT_METHOD *method,\n                                         X509V3_CTX
      *ctx, const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: POLICYINFO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:169,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:171,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:172,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:173,1
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:175,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:176,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:178,1
    - Dst: name_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:183,1
    - Dst: sk_POLICYQUALINFO_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:185,1
    - Dst: POLICYQUALINFO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:186,1
    - Dst: sk_POLICYQUALINFO_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:188,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:190,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:191,1
    - Dst: ASN1_IA5STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:194,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:196,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:197,1
    - Dst: name_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:199,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:200,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:202,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:204,1
    - Dst: X509V3_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:207,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:209,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:211,1
    - Dst: notice_section
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:214,1
    - Dst: X509V3_section_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:215,1
    - Dst: sk_POLICYQUALINFO_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:219,1
    - Dst: sk_POLICYQUALINFO_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:220,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:223,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:225,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:230,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:237,1
    - Dst: POLICYINFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:240,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 81
    argCount: 3
    argNames:
    - ctx
    - polstrs
    - ia5org
    argTypes:
    - X509V3_CTX*
    - STACK_OF*
    - int
    constantsTouched: []
    func_position:
      end: 243
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 243
    functionName: policy_section
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c
    functionUses: 1
    functionsReached:
    - POLICYQUALINFO_new
    - X509V3_section_free
    - POLICYINFO_new
    - sk_CONF_VALUE_value
    - name_cmp
    - OBJ_nid2obj
    - sk_CONF_VALUE_num
    - ASN1_IA5STRING_new
    - OBJ_txt2obj
    - sk_POLICYQUALINFO_push
    - X509V3err
    - strlen
    - notice_section
    - X509V3_conf_err
    - sk_POLICYQUALINFO_new_null
    - X509V3_get_section
    - ASN1_STRING_set
    - strcmp
    - STACK_OF
    - POLICYINFO_free
    linkageType: ''
    returnType: POLICYINFO
    signature: "*policy_section(X509V3_CTX *ctx,\n                                  STACK_OF(CONF_VALUE)
      *polstrs, int ia5org)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: POLICYQUALINFO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:253,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:255,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:256,1
    - Dst: USERNOTICE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:259,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:262,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:263,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:264,1
    - Dst: ASN1_VISIBLESTRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:265,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:267,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:268,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:270,1
    - Dst: NOTICEREF_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:273,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:282,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:283,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:285,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:287,1
    - Dst: NOTICEREF_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:289,1
    - Dst: X509V3_parse_list
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:294,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:295,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:296,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:297,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:298,1
    - Dst: nref_nos
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:301,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:302,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:306,1
    - Dst: X509V3_conf_err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:307,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:314,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:322,1
    - Dst: POLICYQUALINFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:325,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 80
    argCount: 3
    argNames:
    - ctx
    - unot
    - ia5org
    argTypes:
    - X509V3_CTX*
    - STACK_OF*
    - int
    constantsTouched: []
    func_position:
      end: 327
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 327
    functionName: notice_section
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c
    functionUses: 1
    functionsReached:
    - sk_CONF_VALUE_value
    - nref_nos
    - POLICYQUALINFO_new
    - POLICYQUALINFO_free
    - ASN1_STRING_set
    - strcmp
    - STACK_OF
    - OBJ_nid2obj
    - sk_CONF_VALUE_num
    - USERNOTICE_new
    - ASN1_VISIBLESTRING_new
    - X509V3err
    - strlen
    - X509V3_parse_list
    - NOTICEREF_new
    - X509V3_conf_err
    - sk_CONF_VALUE_pop_free
    linkageType: ''
    returnType: POLICYQUALINFO
    signature: "*notice_section(X509V3_CTX *ctx,\n                                      STACK_OF(CONF_VALUE)
      *unot, int ia5org)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:406,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:408,1
    - Dst: sk_ASN1_INTEGER_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:409,1
    - Dst: sk_ASN1_INTEGER_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:410,1
    - Dst: sk_ASN1_INTEGER_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:413,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:415,1
    - Dst: i2s_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:416,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:417,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:418,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:420,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:423,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - out
    - notice
    - indent
    argTypes:
    - BIO*
    - USERNOTICE*
    - int
    constantsTouched: []
    func_position:
      end: 425
      start: 400
    functionDepth: 7
    functionLinenumber: 400
    functionLinenumberEnd: 425
    functionName: print_notice
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - sk_ASN1_INTEGER_value
    - OPENSSL_free
    - sk_ASN1_INTEGER_num
    - i2s_ASN1_INTEGER
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: print_notice(BIO *out, USERNOTICE *notice, int indent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:431,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:433,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:434,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:435,1
    - Dst: node_data_critical
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:436,1
    - Dst: print_qualifiers
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:438,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - out
    - node
    - indent
    argTypes:
    - BIO*
    - X509_POLICY_NODE*
    - int
    constantsTouched: []
    func_position:
      end: 441
      start: 427
    functionDepth: 4
    functionLinenumber: 427
    functionLinenumberEnd: 441
    functionName: X509_POLICY_NODE_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c
    functionUses: 1
    functionsReached:
    - BIO_puts
    - i2a_ASN1_OBJECT
    - print_qualifiers
    - node_data_critical
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:64,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:65,1
    - Dst: sk_SXNETID_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:66,1
    - Dst: sk_SXNETID_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:67,1
    - Dst: i2s_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:68,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:69,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:70,1
    - Dst: ASN1_STRING_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - method
    - sx
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - SXNET*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 74
      start: 57
    functionDepth: 7
    functionLinenumber: 57
    functionLinenumberEnd: 74
    functionName: sxnet_i2r
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c
    functionUses: 0
    functionsReached:
    - sk_SXNETID_num
    - ASN1_STRING_print
    - OPENSSL_free
    - ASN1_INTEGER_get
    - i2s_ASN1_INTEGER
    - BIO_printf
    - sk_SXNETID_value
    linkageType: ''
    returnType: int
    signature: "sxnet_i2r(X509V3_EXT_METHOD *method, SXNET *sx, BIO *out,\n                     int
      indent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:90,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:91,1
    - Dst: SXNET_add_id_asc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 96
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 96
    functionName: sxnet_v2i
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c
    functionUses: 0
    functionsReached:
    - SXNET_add_id_asc
    - sk_CONF_VALUE_value
    - sk_CONF_VALUE_num
    linkageType: ''
    returnType: SXNET
    signature: "*sxnet_v2i(X509V3_EXT_METHOD *method, X509V3_CTX *ctx,\n                        STACK_OF(CONF_VALUE)
      *nval)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:108,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:109,1
    - Dst: SXNET_add_id_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - psx
    - zone
    - user
    - userlen
    argTypes:
    - SXNET**
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 5
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: SXNET_add_id_asc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c
    functionUses: 1
    functionsReached:
    - X509V3err
    - SXNET_add_id_INTEGER
    - s2i_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: SXNET_add_id_asc(SXNET **psx, const char *zone, const char *user, int
      userlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:122,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:123,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:124,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:125,1
    - Dst: SXNET_add_id_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - psx
    - lzone
    - user
    - userlen
    argTypes:
    - SXNET**
    - unsigned long
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 130
      start: 117
    functionDepth: 4
    functionLinenumber: 117
    functionLinenumberEnd: 130
    functionName: SXNET_add_id_ulong
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_new
    - ASN1_INTEGER_set
    - X509V3err
    - SXNET_add_id_INTEGER
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: int
    signature: "SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, const char *user,\n
      \                      int userlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:143,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:148,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:150,1
    - Dst: SXNET_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:154,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:156,1
    - Dst: SXNET_get_id_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:161,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:162,1
    - Dst: SXNETID_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:166,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:169,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:171,1
    - Dst: sk_SXNETID_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:173,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:179,1
    - Dst: SXNETID_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:180,1
    - Dst: SXNET_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:181,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 4
    argNames:
    - psx
    - zone
    - user
    - userlen
    argTypes:
    - SXNET**
    - ASN1_INTEGER*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 184
      start: 137
    functionDepth: 4
    functionLinenumber: 137
    functionLinenumberEnd: 184
    functionName: SXNET_add_id_INTEGER
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c
    functionUses: 2
    functionsReached:
    - SXNET_free
    - ASN1_INTEGER_set
    - X509V3err
    - strlen
    - SXNETID_new
    - SXNET_get_id_INTEGER
    - ASN1_OCTET_STRING_set
    - sk_SXNETID_push
    - SXNET_new
    - SXNETID_free
    linkageType: ''
    returnType: int
    signature: "SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *zone, const char *user,\n
      \                        int userlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:191,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:192,1
    - Dst: SXNET_get_id_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:195,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sx
    - zone
    argTypes:
    - SXNET*
    - char*
    constantsTouched: []
    func_position:
      end: 198
      start: 186
    functionDepth: 5
    functionLinenumber: 186
    functionLinenumberEnd: 198
    functionName: SXNET_get_id_asc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c
    functionUses: 0
    functionsReached:
    - X509V3err
    - ASN1_INTEGER_free
    - SXNET_get_id_INTEGER
    - s2i_ASN1_INTEGER
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: '*SXNET_get_id_asc(SXNET *sx, const char *zone)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:205,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:206,1
    - Dst: X509V3err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:207,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:208,1
    - Dst: SXNET_get_id_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:211,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sx
    - lzone
    argTypes:
    - SXNET*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 214
      start: 200
    functionDepth: 4
    functionLinenumber: 200
    functionLinenumberEnd: 214
    functionName: SXNET_get_id_ulong
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_new
    - ASN1_INTEGER_set
    - X509V3err
    - SXNET_get_id_INTEGER
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: '*SXNET_get_id_ulong(SXNET *sx, unsigned long lzone)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_SXNETID_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:220,1
    - Dst: sk_SXNETID_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:221,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - sx
    - zone
    argTypes:
    - SXNET*
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 226
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 226
    functionName: SXNET_get_id_INTEGER
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c
    functionUses: 3
    functionsReached:
    - sk_SXNETID_num
    - ASN1_INTEGER_cmp
    - sk_SXNETID_value
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: '*SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - sk
    - c
    argTypes:
    - OPENSSL_STACK*
    - OPENSSL_sk_compfunc
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: OPENSSL_sk_set_cmp_func
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OPENSSL_sk_compfunc
    signature: OPENSSL_sk_set_cmp_func(OPENSSL_STACK *sk, OPENSSL_sk_compfunc c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:47,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:53,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:55,1
    - Dst: OPENSSL_sk_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - sk
    argTypes:
    - OPENSSL_STACK*
    constantsTouched: []
    func_position:
      end: 60
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 60
    functionName: OPENSSL_sk_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - OPENSSL_sk_free
    - memcpy
    - OPENSSL_malloc
    linkageType: ''
    returnType: OPENSSL_STACK
    signature: '*OPENSSL_sk_dup(const OPENSSL_STACK *sk)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:72,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:79,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:81,1
    - Dst: copy_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:88,1
    - Dst: free_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:91,1
    - Dst: OPENSSL_sk_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:92,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - sk
    - copy_func
    - free_func
    argTypes:
    - OPENSSL_STACK*
    - OPENSSL_sk_copyfunc
    - OPENSSL_sk_freefunc
    constantsTouched: []
    func_position:
      end: 97
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 97
    functionName: OPENSSL_sk_deep_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - free_func
    - copy_func
    - OPENSSL_zalloc
    - OPENSSL_sk_free
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: OPENSSL_STACK
    signature: "*OPENSSL_sk_deep_copy(const OPENSSL_STACK *sk,\n                             OPENSSL_sk_copyfunc
      copy_func,\n                             OPENSSL_sk_freefunc free_func)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_sk_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: OPENSSL_sk_new_null
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
    functionUses: 1
    functionsReached:
    - OPENSSL_sk_new
    linkageType: ''
    returnType: OPENSSL_STACK
    signature: '*OPENSSL_sk_new_null(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:108,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:110,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - OPENSSL_sk_compfunc
    constantsTouched: []
    func_position:
      end: 119
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 119
    functionName: OPENSSL_sk_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OPENSSL_STACK
    signature: '*OPENSSL_sk_new(OPENSSL_sk_compfunc c)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:139,1
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:150,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - st
    - data
    - loc
    argTypes:
    - OPENSSL_STACK*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 157
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 157
    functionName: OPENSSL_sk_insert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - OPENSSL_realloc
    - memmove
    linkageType: ''
    returnType: int
    signature: OPENSSL_sk_insert(OPENSSL_STACK *st, const void *data, int loc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_sk_delete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - st
    - p
    argTypes:
    - OPENSSL_STACK*
    - void*
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: OPENSSL_sk_delete_ptr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - OPENSSL_sk_delete
    linkageType: ''
    returnType: void
    signature: '*OPENSSL_sk_delete_ptr(OPENSSL_STACK *st, const void *p)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - st
    - loc
    argTypes:
    - OPENSSL_STACK*
    - int
    constantsTouched: []
    func_position:
      end: 182
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 182
    functionName: OPENSSL_sk_delete
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
    functionUses: 1
    functionsReached:
    - memmove
    linkageType: ''
    returnType: void
    signature: '*OPENSSL_sk_delete(OPENSSL_STACK *st, int loc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_sk_sort
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:199,1
    - Dst: OBJ_bsearch_ex_
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:202,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - st
    - data
    - ret_val_options
    argTypes:
    - OPENSSL_STACK*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 207
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 207
    functionName: internal_find
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - OPENSSL_sk_sort
    - OBJ_bsearch_ex_
    linkageType: ''
    returnType: int
    signature: "internal_find(OPENSSL_STACK *st, const void *data,\n                         int
      ret_val_options)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: internal_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - data
    argTypes:
    - OPENSSL_STACK*
    - void*
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: OPENSSL_sk_find
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - internal_find
    linkageType: ''
    returnType: int
    signature: OPENSSL_sk_find(OPENSSL_STACK *st, const void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: internal_find
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - data
    argTypes:
    - OPENSSL_STACK*
    - void*
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: OPENSSL_sk_find_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - internal_find
    linkageType: ''
    returnType: int
    signature: OPENSSL_sk_find_ex(OPENSSL_STACK *st, const void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_sk_insert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - data
    argTypes:
    - OPENSSL_STACK*
    - void*
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: OPENSSL_sk_push
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - OPENSSL_sk_insert
    linkageType: ''
    returnType: int
    signature: OPENSSL_sk_push(OPENSSL_STACK *st, const void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_sk_insert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - data
    argTypes:
    - OPENSSL_STACK*
    - void*
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: OPENSSL_sk_unshift
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - OPENSSL_sk_insert
    linkageType: ''
    returnType: int
    signature: OPENSSL_sk_unshift(OPENSSL_STACK *st, const void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_sk_delete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - st
    argTypes:
    - OPENSSL_STACK*
    constantsTouched: []
    func_position:
      end: 236
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 236
    functionName: OPENSSL_sk_shift
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - OPENSSL_sk_delete
    linkageType: ''
    returnType: void
    signature: '*OPENSSL_sk_shift(OPENSSL_STACK *st)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_sk_delete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - st
    argTypes:
    - OPENSSL_STACK*
    constantsTouched: []
    func_position:
      end: 245
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 245
    functionName: OPENSSL_sk_pop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - OPENSSL_sk_delete
    linkageType: ''
    returnType: void
    signature: '*OPENSSL_sk_pop(OPENSSL_STACK *st)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - st
    argTypes:
    - OPENSSL_STACK*
    constantsTouched: []
    func_position:
      end: 255
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 255
    functionName: OPENSSL_sk_zero
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: OPENSSL_sk_zero(OPENSSL_STACK *st)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:265,1
    - Dst: OPENSSL_sk_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - st
    - func
    argTypes:
    - OPENSSL_STACK*
    - OPENSSL_sk_freefunc
    constantsTouched: []
    func_position:
      end: 267
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 267
    functionName: OPENSSL_sk_pop_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - OPENSSL_sk_free
    - func
    linkageType: ''
    returnType: void
    signature: OPENSSL_sk_pop_free(OPENSSL_STACK *st, OPENSSL_sk_freefunc func)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:273,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - st
    argTypes:
    - OPENSSL_STACK*
    constantsTouched: []
    func_position:
      end: 275
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 275
    functionName: OPENSSL_sk_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
    functionUses: 3
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: OPENSSL_sk_free(OPENSSL_STACK *st)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - st
    argTypes:
    - OPENSSL_STACK*
    constantsTouched: []
    func_position:
      end: 282
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: OPENSSL_sk_num
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: OPENSSL_sk_num(const OPENSSL_STACK *st)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - st
    - i
    argTypes:
    - OPENSSL_STACK*
    - int
    constantsTouched: []
    func_position:
      end: 289
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 289
    functionName: OPENSSL_sk_value
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*OPENSSL_sk_value(const OPENSSL_STACK *st, int i)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - st
    - i
    - data
    argTypes:
    - OPENSSL_STACK*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 297
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 297
    functionName: OPENSSL_sk_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*OPENSSL_sk_set(OPENSSL_STACK *st, int i, const void *data)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c:302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - st
    argTypes:
    - OPENSSL_STACK*
    constantsTouched: []
    func_position:
      end: 305
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 305
    functionName: OPENSSL_sk_sort
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
    functionUses: 1
    functionsReached:
    - qsort
    linkageType: ''
    returnType: void
    signature: OPENSSL_sk_sort(OPENSSL_STACK *st)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - st
    argTypes:
    - OPENSSL_STACK*
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: OPENSSL_sk_is_sorted
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: OPENSSL_sk_is_sorted(const OPENSSL_STACK *st)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/comp_err.c:42,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/comp_err.c:43,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/comp_err.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 4
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: ERR_load_COMP_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/comp_err.c
    functionUses: 1
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_COMP_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - opaque
    - 'no'
    - size
    argTypes:
    - void*
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: zlib_zalloc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: void
    signature: '*zlib_zalloc(void *opaque, unsigned int no, unsigned int size)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opaque
    - address
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: zlib_zfree
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: zlib_zfree(void *opaque, void *address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:126,1
    - Dst: inflateInit_
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:136,1
    - Dst: deflateInit_
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:145,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:153,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - COMP_CTX*
    constantsTouched: []
    func_position:
      end: 155
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 155
    functionName: zlib_stateful_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - inflateInit_
    - deflateInit_
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: zlib_stateful_init(COMP_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inflateEnd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:160,1
    - Dst: deflateEnd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:161,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - COMP_CTX*
    constantsTouched: []
    func_position:
      end: 163
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 163
    functionName: zlib_stateful_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - deflateEnd
    - inflateEnd
    linkageType: ''
    returnType: void
    signature: zlib_stateful_finish(COMP_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: deflate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - ctx
    - out
    - olen
    - in
    - ilen
    argTypes:
    - COMP_CTX*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 184
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 184
    functionName: zlib_stateful_compress_block
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - deflate
    linkageType: ''
    returnType: int
    signature: "zlib_stateful_compress_block(COMP_CTX *ctx, unsigned char *out,\n
      \                                       unsigned int olen, unsigned char *in,\n
      \                                       unsigned int ilen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inflate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - ctx
    - out
    - olen
    - in
    - ilen
    argTypes:
    - COMP_CTX*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 205
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 205
    functionName: zlib_stateful_expand_block
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - inflate
    linkageType: ''
    returnType: int
    signature: "zlib_stateful_expand_block(COMP_CTX *ctx, unsigned char *out,\n                                      unsigned
      int olen, unsigned char *in,\n                                      unsigned
      int ilen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSO_load
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:226,1
    - Dst: DSO_bind_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:228,1
    - Dst: DSO_bind_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:230,1
    - Dst: DSO_bind_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:231,1
    - Dst: DSO_bind_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:233,1
    - Dst: DSO_bind_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:235,1
    - Dst: DSO_bind_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:236,1
    - Dst: DSO_bind_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:238,1
    - Dst: DSO_bind_func
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:239,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:246,1
    - Dst: comp_zlib_cleanup_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:247,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 260
    functionName: COMP_zlib
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - comp_zlib_cleanup_int
    - DSO_load
    - OPENSSL_init_crypto
    - DSO_bind_func
    linkageType: ''
    returnType: COMP_METHOD
    signature: '*COMP_zlib(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 269
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 269
    functionName: comp_zlib_cleanup_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c
    functionUses: 2
    functionsReached:
    - DSO_free
    linkageType: ''
    returnType: void
    signature: comp_zlib_cleanup_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: BIO_f_zlib
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_f_zlib(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COMP_zlib
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:319,1
    - Dst: COMPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:321,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:325,1
    - Dst: COMPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:327,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:337,1
    - Dst: BIO_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 341
      start: 315
    functionDepth: 4
    functionLinenumber: 315
    functionLinenumberEnd: 341
    functionName: bio_zlib_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - BIO_set_data
    - OPENSSL_zalloc
    - COMPerr
    - COMP_zlib
    linkageType: ''
    returnType: int
    signature: bio_zlib_new(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:348,1
    - Dst: inflateEnd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:351,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:352,1
    - Dst: deflateEnd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:356,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:357,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:359,1
    - Dst: BIO_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:360,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:361,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 364
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 364
    functionName: bio_zlib_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - deflateEnd
    - BIO_set_data
    - inflateEnd
    - BIO_get_data
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: bio_zlib_free(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:371,1
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:375,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:377,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:379,1
    - Dst: COMPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:381,1
    - Dst: inflateInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:384,1
    - Dst: inflate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:395,1
    - Dst: COMPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:397,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:398,1
    - Dst: zError
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:398,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:410,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:414,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 422
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 422
    functionName: bio_zlib_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - inflate
    - BIO_clear_retry_flags
    - inflateInit
    - zError
    - BIO_get_data
    - ERR_add_error_data
    - BIO_next
    - COMPerr
    - BIO_copy_next_retry
    - BIO_read
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: bio_zlib_read(BIO *b, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:429,1
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:433,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:437,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:439,1
    - Dst: COMPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:442,1
    - Dst: deflateInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:447,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:457,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:461,1
    - Dst: deflate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:481,1
    - Dst: COMPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:483,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:484,1
    - Dst: zError
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:484,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 489
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 489
    functionName: bio_zlib_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - deflate
    - BIO_clear_retry_flags
    - zError
    - BIO_get_data
    - ERR_add_error_data
    - BIO_next
    - COMPerr
    - BIO_copy_next_retry
    - BIO_write
    - OPENSSL_malloc
    - deflateInit
    linkageType: ''
    returnType: int
    signature: bio_zlib_write(BIO *b, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:496,1
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:498,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:503,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:510,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:512,1
    - Dst: deflate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:528,1
    - Dst: COMPerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:532,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:533,1
    - Dst: zError
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:533,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 538
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 538
    functionName: bio_zlib_flush
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - deflate
    - BIO_clear_retry_flags
    - zError
    - BIO_get_data
    - ERR_add_error_data
    - COMPerr
    - BIO_next
    - BIO_copy_next_retry
    - BIO_write
    linkageType: ''
    returnType: int
    signature: bio_zlib_flush(BIO *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:545,1
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:549,1
    - Dst: bio_zlib_flush
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:559,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:561,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:579,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:585,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:593,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:594,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:595,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:599,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 605
      start: 540
    functionDepth: 3
    functionLinenumber: 540
    functionLinenumberEnd: 605
    functionName: bio_zlib_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - BIO_clear_retry_flags
    - BIO_flush
    - BIO_get_data
    - BIO_next
    - BIO_copy_next_retry
    - OPENSSL_free
    - bio_zlib_flush
    linkageType: ''
    returnType: long
    signature: bio_zlib_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:609,1
    - Dst: BIO_callback_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - bio_info_cb*
    constantsTouched: []
    func_position:
      end: 613
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 613
    functionName: bio_zlib_callback_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    - BIO_next
    linkageType: ''
    returnType: long
    signature: bio_zlib_callback_ctrl(BIO *b, int cmd, bio_info_cb *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/comp_lib.c:21,1
    - Dst: COMP_CTX*::meth::init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/comp_lib.c:24,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/comp_lib.c:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - meth
    argTypes:
    - COMP_METHOD*
    constantsTouched: []
    func_position:
      end: 29
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 29
    functionName: COMP_CTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - COMP_CTX*::meth::init
    - OPENSSL_zalloc
    linkageType: ''
    returnType: COMP_CTX
    signature: '*COMP_CTX_new(COMP_METHOD *meth)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - COMP_CTX*
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: COMP_CTX_get_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: COMP_METHOD
    signature: '*COMP_CTX_get_method(const COMP_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - COMP_METHOD*
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: COMP_get_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: COMP_get_type(const COMP_METHOD *meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - COMP_METHOD*
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: COMP_get_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*COMP_get_name(const COMP_METHOD *meth)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COMP_CTX*::meth::finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/comp_lib.c:52,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/comp_lib.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - COMP_CTX*
    constantsTouched: []
    func_position:
      end: 55
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 55
    functionName: COMP_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - COMP_CTX*::meth::finish
    linkageType: ''
    returnType: void
    signature: COMP_CTX_free(COMP_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COMP_CTX*::meth::compress
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/comp_lib.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - out
    - olen
    - in
    - ilen
    argTypes:
    - COMP_CTX*
    - unsigned char*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: COMP_compress_block
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached:
    - COMP_CTX*::meth::compress
    linkageType: ''
    returnType: int
    signature: "COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen,\n
      \                       unsigned char *in, int ilen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COMP_CTX*::meth::expand
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/comp/comp_lib.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - out
    - olen
    - in
    - ilen
    argTypes:
    - COMP_CTX*
    - unsigned char*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 86
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 86
    functionName: COMP_expand_block
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached:
    - COMP_CTX*::meth::expand
    linkageType: ''
    returnType: int
    signature: "COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen,\n                      unsigned
      char *in, int ilen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - comp
    argTypes:
    - COMP_CTX*
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: COMP_CTX_get_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: COMP_CTX_get_type(const COMP_CTX* comp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_ofb64.c:32,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_ofb64.c:33,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_ofb64.c:37,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_ofb64.c:38,1
    - Dst: CAST_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_ofb64.c:41,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_ofb64.c:44,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_ofb64.c:46,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_ofb64.c:56,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_ofb64.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 6
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - CAST_KEY*
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 61
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 61
    functionName: CAST_ofb64_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_ofb64.c
    functionUses: 0
    functionsReached:
    - l2n
    - n2l
    - CAST_encrypt
    linkageType: ''
    returnType: void
    signature: "CAST_ofb64_encrypt(const unsigned char *in, unsigned char *out,\n
      \                       long length, const CAST_KEY *schedule,\n                        unsigned
      char *ivec, int *num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_cfb64.c:33,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_cfb64.c:35,1
    - Dst: CAST_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_cfb64.c:37,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_cfb64.c:40,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_cfb64.c:42,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_cfb64.c:53,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_cfb64.c:55,1
    - Dst: CAST_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_cfb64.c:57,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_cfb64.c:60,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_cfb64.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 7
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - CAST_KEY*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 74
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 74
    functionName: CAST_cfb64_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_cfb64.c
    functionUses: 0
    functionsReached:
    - l2n
    - n2l
    - CAST_encrypt
    linkageType: ''
    returnType: void
    signature: "CAST_cfb64_encrypt(const unsigned char *in, unsigned char *out,\n
      \                       long length, const CAST_KEY *schedule,\n                        unsigned
      char *ivec, int *num, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAST_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_skey.c:55,1
    - Dst: CAST_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_skey.c:57,1
    - Dst: CAST_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_skey.c:59,1
    - Dst: CAST_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_skey.c:61,1
    - Dst: CAST_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_skey.c:69,1
    - Dst: CAST_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_skey.c:71,1
    - Dst: CAST_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_skey.c:73,1
    - Dst: CAST_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_skey.c:75,1
    - Dst: CAST_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_skey.c:83,1
    - Dst: CAST_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_skey.c:85,1
    - Dst: CAST_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_skey.c:87,1
    - Dst: CAST_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_skey.c:89,1
    - Dst: CAST_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_skey.c:97,1
    - Dst: CAST_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_skey.c:99,1
    - Dst: CAST_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_skey.c:101,1
    - Dst: CAST_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_skey.c:103,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 72
    argCount: 3
    argNames:
    - key
    - len
    - data
    argTypes:
    - CAST_KEY*
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 118
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 118
    functionName: CAST_set_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_skey.c
    functionUses: 1
    functionsReached:
    - CAST_exp
    linkageType: ''
    returnType: void
    signature: CAST_set_key(CAST_KEY *key, int len, const unsigned char *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_ecb.c:19,1
    - Dst: n2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_ecb.c:21,1
    - Dst: CAST_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_ecb.c:24,1
    - Dst: CAST_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_ecb.c:26,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_ecb.c:28,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_ecb.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - in
    - out
    - ks
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - CAST_KEY*
    - int
    constantsTouched: []
    func_position:
      end: 32
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 32
    functionName: CAST_ecb_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_ecb.c
    functionUses: 0
    functionsReached:
    - l2n
    - n2l
    - CAST_decrypt
    - CAST_encrypt
    linkageType: ''
    returnType: void
    signature: "CAST_ecb_encrypt(const unsigned char *in, unsigned char *out,\n                      const
      CAST_KEY *ks, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_ASN1_bio_stream
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_mime.c:20,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_mime.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - p7
    - in
    - flags
    argTypes:
    - BIO*
    - PKCS7*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 6
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: i2d_PKCS7_bio_stream
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_mime.c
    functionUses: 0
    functionsReached:
    - i2d_ASN1_bio_stream
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PEM_write_bio_ASN1_stream
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_mime.c:26,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_mime.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - p7
    - in
    - flags
    argTypes:
    - BIO*
    - PKCS7*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 8
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: PEM_write_bio_PKCS7_stream
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_mime.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - PEM_write_bio_ASN1_stream
    linkageType: ''
    returnType: int
    signature: PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_mime.c:32,1
    - Dst: SMIME_write_ASN1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_mime.c:41,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_mime.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - bio
    - p7
    - data
    - flags
    argTypes:
    - BIO*
    - PKCS7*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 8
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: SMIME_write_PKCS7
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_mime.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - SMIME_write_ASN1
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SMIME_read_ASN1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_mime.c:48,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_mime.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - bcont
    argTypes:
    - BIO*
    - BIO**
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 6
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: SMIME_read_PKCS7
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_mime.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - SMIME_read_ASN1
    linkageType: ''
    returnType: PKCS7
    signature: '*SMIME_read_PKCS7(BIO *bio, BIO **bcont)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_stream
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_asn1.c:41,1
    - Dst: PKCS7_dataInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_asn1.c:44,1
    - Dst: PKCS7_dataFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_asn1.c:51,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    constantsTouched: []
    func_position:
      end: 57
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 57
    functionName: pk7_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_asn1.c
    functionUses: 0
    functionsReached:
    - PKCS7_dataFinal
    - PKCS7_dataInit
    - PKCS7_stream
    linkageType: ''
    returnType: int
    signature: "pk7_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n                  void
      *exarg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_asn1.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: si_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_asn1.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: "si_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n                 void
      *exarg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_asn1.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: ri_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_asn1.c
    functionUses: 0
    functionsReached:
    - X509_free
    linkageType: ''
    returnType: int
    signature: "ri_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n                 void
      *exarg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - p7
    argTypes:
    - PKCS7*
    constantsTouched: []
    func_position:
      end: 43
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 43
    functionName: PKCS7_type_is_other
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: PKCS7_type_is_other(PKCS7 *p7)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_type_is_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:47,1
    - Dst: PKCS7_type_is_other
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - p7
    argTypes:
    - PKCS7*
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: PKCS7_get_octet_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - PKCS7_type_is_other
    - PKCS7_type_is_data
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: '*PKCS7_get_octet_string(PKCS7 *p7)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:59,1
    - Dst: BIO_f_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:59,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:60,1
    - Dst: EVP_get_digestbyobj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:64,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:66,1
    - Dst: BIO_set_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:70,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:73,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:74,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:82,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - pbio
    - alg
    argTypes:
    - BIO**
    - X509_ALGOR*
    constantsTouched: []
    func_position:
      end: 85
      start: 55
    functionDepth: 4
    functionLinenumber: 55
    functionLinenumberEnd: 85
    functionName: PKCS7_bio_add_digest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - BIO_push
    - BIO_set_md
    - BIO_free
    - PKCS7err
    - BIO_new
    - BIO_f_md
    - EVP_get_digestbyobj
    linkageType: ''
    returnType: int
    signature: PKCS7_bio_add_digest(BIO **pbio, X509_ALGOR *alg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:96,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:101,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:105,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:108,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:110,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:114,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:117,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:120,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:124,1
    - Dst: ASN1_STRING_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:127,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:133,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:134,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 3
    argNames:
    - ri
    - key
    - keylen
    argTypes:
    - PKCS7_RECIP_INFO*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 137
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 137
    functionName: pkcs7_encode_rinfo
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_set0
    - EVP_PKEY_encrypt_init
    - EVP_PKEY_CTX_new
    - EVP_PKEY_encrypt
    - EVP_PKEY_CTX_ctrl
    - X509_get0_pubkey
    - PKCS7err
    - EVP_PKEY_CTX_free
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "pkcs7_encode_rinfo(PKCS7_RECIP_INFO *ri,\n                              unsigned
      char *key, int keylen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:148,1
    - Dst: EVP_PKEY_decrypt_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:152,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:155,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:157,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:161,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:165,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:168,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:172,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:175,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:181,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:186,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:188,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 4
    argNames:
    - pek
    - peklen
    - ri
    - pkey
    argTypes:
    - unsigned char**
    - int*
    - PKCS7_RECIP_INFO*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 191
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 191
    functionName: pkcs7_decrypt_rinfo
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_ctrl
    - EVP_PKEY_decrypt_init
    - EVP_PKEY_decrypt
    - PKCS7err
    - OPENSSL_clear_free
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "pkcs7_decrypt_rinfo(unsigned char **pek, int *peklen,\n                               PKCS7_RECIP_INFO
      *ri, EVP_PKEY *pkey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:199,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:200,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:206,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:220,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:224,1
    - Dst: PKCS7_get_octet_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:230,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:238,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:247,1
    - Dst: PKCS7_get_octet_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:253,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:258,1
    - Dst: sk_X509_ALGOR_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:262,1
    - Dst: PKCS7_bio_add_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:263,1
    - Dst: sk_X509_ALGOR_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:263,1
    - Dst: PKCS7_bio_add_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:266,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:275,1
    - Dst: BIO_f_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:275,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:276,1
    - Dst: BIO_get_cipher_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:279,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:280,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:281,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:282,1
    - Dst: EVP_CIPHER_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:282,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:284,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:286,1
    - Dst: EVP_CIPHER_CTX_rand_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:288,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:290,1
    - Dst: ASN1_TYPE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:295,1
    - Dst: EVP_CIPHER_param_to_asn1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:299,1
    - Dst: sk_PKCS7_RECIP_INFO_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:304,1
    - Dst: sk_PKCS7_RECIP_INFO_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:305,1
    - Dst: pkcs7_encode_rinfo
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:306,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:309,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:314,1
    - Dst: PKCS7_is_detached
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:319,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:320,1
    - Dst: BIO_s_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:320,1
    - Dst: BIO_new_mem_buf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:322,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:324,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:324,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:327,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:331,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:337,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:338,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 125
    argCount: 2
    argNames:
    - p7
    - bio
    argTypes:
    - PKCS7*
    - BIO*
    constantsTouched: []
    func_position:
      end: 340
      start: 193
    functionDepth: 5
    functionLinenumber: 193
    functionLinenumberEnd: 340
    functionName: PKCS7_dataInit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c
    functionUses: 2
    functionsReached:
    - RAND_bytes
    - BIO_push
    - BIO_s_mem
    - BIO_new_mem_buf
    - EVP_CipherInit_ex
    - BIO_get_cipher_ctx
    - PKCS7_is_detached
    - PKCS7_get_octet_string
    - EVP_CIPHER_param_to_asn1
    - OBJ_nid2obj
    - ASN1_TYPE_new
    - EVP_CIPHER_CTX_rand_key
    - BIO_s_null
    - EVP_CIPHER_iv_length
    - BIO_new
    - EVP_CIPHER_key_length
    - PKCS7_bio_add_digest
    - pkcs7_encode_rinfo
    - sk_PKCS7_RECIP_INFO_num
    - BIO_f_cipher
    - BIO_free_all
    - STACK_OF
    - OBJ_obj2nid
    - sk_PKCS7_RECIP_INFO_value
    - BIO_set_mem_eof_return
    - EVP_CIPHER_type
    - sk_X509_ALGOR_num
    - PKCS7err
    - sk_X509_ALGOR_value
    - OPENSSL_cleanse
    linkageType: ''
    returnType: BIO
    signature: '*PKCS7_dataInit(PKCS7 *p7, BIO *bio)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:345,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:346,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:349,1
    - Dst: X509_get_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ri
    - pcert
    argTypes:
    - PKCS7_RECIP_INFO*
    - X509*
    constantsTouched: []
    func_position:
      end: 351
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 351
    functionName: pkcs7_cmp_ri
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - X509_get_serialNumber
    - ASN1_INTEGER_cmp
    - X509_NAME_cmp
    - X509_get_issuer_name
    linkageType: ''
    returnType: int
    signature: pkcs7_cmp_ri(PKCS7_RECIP_INFO *ri, X509 *pcert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:364,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:365,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:371,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:376,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:380,1
    - Dst: PKCS7_get_octet_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:391,1
    - Dst: PKCS7_is_detached
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:392,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:393,1
    - Dst: EVP_get_cipherbyobj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:405,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:407,1
    - Dst: EVP_get_cipherbyobj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:417,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:419,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:425,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:431,1
    - Dst: sk_X509_ALGOR_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:437,1
    - Dst: sk_X509_ALGOR_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:438,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:439,1
    - Dst: BIO_f_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:439,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:440,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:444,1
    - Dst: EVP_get_digestbynid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:445,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:447,1
    - Dst: BIO_set_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:452,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:456,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:462,1
    - Dst: BIO_f_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:462,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:463,1
    - Dst: sk_PKCS7_RECIP_INFO_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:478,1
    - Dst: sk_PKCS7_RECIP_INFO_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:479,1
    - Dst: pkcs7_cmp_ri
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:480,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:485,1
    - Dst: sk_PKCS7_RECIP_INFO_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:497,1
    - Dst: sk_PKCS7_RECIP_INFO_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:498,1
    - Dst: pkcs7_decrypt_rinfo
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:500,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:502,1
    - Dst: pkcs7_decrypt_rinfo
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:506,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:508,1
    - Dst: BIO_get_cipher_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:512,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:513,1
    - Dst: EVP_CIPHER_asn1_to_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:515,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:518,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:519,1
    - Dst: EVP_CIPHER_CTX_rand_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:522,1
    - Dst: EVP_CIPHER_CTX_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:530,1
    - Dst: EVP_CIPHER_CTX_set_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:536,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:538,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:545,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:546,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:549,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:551,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:557,1
    - Dst: BIO_new_mem_buf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:564,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:566,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:566,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:569,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:574,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:579,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:580,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:581,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:582,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:583,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:584,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 180
    argCount: 4
    argNames:
    - p7
    - pkey
    - in_bio
    - pcert
    argTypes:
    - PKCS7*
    - EVP_PKEY*
    - BIO*
    - X509*
    constantsTouched: []
    func_position:
      end: 586
      start: 354
    functionDepth: 5
    functionLinenumber: 354
    functionLinenumberEnd: 586
    functionName: PKCS7_dataDecode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - BIO_push
    - BIO_s_mem
    - EVP_get_cipherbyobj
    - BIO_new_mem_buf
    - EVP_CIPHER_asn1_to_param
    - EVP_CIPHER_CTX_key_length
    - EVP_CipherInit_ex
    - BIO_get_cipher_ctx
    - PKCS7_is_detached
    - PKCS7_get_octet_string
    - OPENSSL_malloc
    - pkcs7_decrypt_rinfo
    - pkcs7_cmp_ri
    - EVP_CIPHER_CTX_rand_key
    - BIO_new
    - EVP_get_digestbynid
    - sk_PKCS7_RECIP_INFO_num
    - OPENSSL_clear_free
    - ERR_clear_error
    - EVP_CIPHER_CTX_set_key_length
    - BIO_f_cipher
    - BIO_free_all
    - STACK_OF
    - OBJ_obj2nid
    - sk_PKCS7_RECIP_INFO_value
    - BIO_set_md
    - BIO_set_mem_eof_return
    - sk_X509_ALGOR_num
    - PKCS7err
    - sk_X509_ALGOR_value
    - BIO_f_md
    linkageType: ''
    returnType: BIO
    signature: '*PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_find_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:591,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:593,1
    - Dst: BIO_get_md_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:597,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:599,1
    - Dst: EVP_MD_CTX_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:602,1
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:604,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - pmd
    - bio
    - nid
    argTypes:
    - EVP_MD_CTX**
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 607
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 607
    functionName: PKCS7_find_digest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_type
    - BIO_get_md_ctx
    - BIO_find_type
    - PKCS7err
    - BIO_next
    linkageType: ''
    returnType: BIO
    signature: '*PKCS7_find_digest(EVP_MD_CTX **pmd, BIO *bio, int nid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_get_signed_attribute
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:615,1
    - Dst: PKCS7_add0_attrib_signing_time
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:616,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:617,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:623,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:624,1
    - Dst: PKCS7_add1_attrib_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:627,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:628,1
    - Dst: PKCS7_SIGNER_INFO_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:633,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - si
    - mctx
    argTypes:
    - PKCS7_SIGNER_INFO*
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 637
      start: 609
    functionDepth: 2
    functionLinenumber: 609
    functionLinenumberEnd: 637
    functionName: do_pkcs7_signed_attrib
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - PKCS7_SIGNER_INFO_sign
    - PKCS7_get_signed_attribute
    - PKCS7err
    - PKCS7_add1_attrib_digest
    - PKCS7_add0_attrib_signing_time
    linkageType: ''
    returnType: int
    signature: do_pkcs7_signed_attrib(PKCS7_SIGNER_INFO *si, EVP_MD_CTX *mctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:646,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:647,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:651,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:656,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:660,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:662,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:666,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:678,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:680,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:690,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:692,1
    - Dst: PKCS7_get_octet_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:700,1
    - Dst: PKCS7_type_is_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:702,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:703,1
    - Dst: PKCS7_get_octet_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:710,1
    - Dst: PKCS7_type_is_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:712,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:713,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:720,1
    - Dst: sk_PKCS7_SIGNER_INFO_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:725,1
    - Dst: sk_PKCS7_SIGNER_INFO_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:726,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:730,1
    - Dst: PKCS7_find_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:734,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:742,1
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:751,1
    - Dst: do_pkcs7_signed_attrib
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:752,1
    - Dst: EVP_PKEY_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:757,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:758,1
    - Dst: EVP_SignFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:762,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:763,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:764,1
    - Dst: ASN1_STRING_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:767,1
    - Dst: PKCS7_find_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:773,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:774,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:776,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:778,1
    - Dst: PKCS7_is_detached
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:782,1
    - Dst: BIO_find_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:792,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:794,1
    - Dst: BIO_get_mem_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:797,1
    - Dst: BIO_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:802,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:803,1
    - Dst: ASN1_STRING_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:804,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:809,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 137
    argCount: 2
    argNames:
    - p7
    - bio
    argTypes:
    - PKCS7*
    - BIO*
    constantsTouched: []
    func_position:
      end: 811
      start: 639
    functionDepth: 4
    functionLinenumber: 639
    functionLinenumberEnd: 811
    functionName: PKCS7_dataFinal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c
    functionUses: 2
    functionsReached:
    - ASN1_OCTET_STRING_free
    - EVP_MD_CTX_free
    - BIO_get_mem_data
    - PKCS7_is_detached
    - PKCS7_find_digest
    - sk_X509_ATTRIBUTE_num
    - ASN1_STRING_set0
    - EVP_DigestFinal_ex
    - PKCS7_get_octet_string
    - PKCS7_type_is_data
    - EVP_PKEY_size
    - sk_PKCS7_SIGNER_INFO_value
    - ASN1_OCTET_STRING_new
    - do_pkcs7_signed_attrib
    - EVP_SignFinal
    - OPENSSL_free
    - EVP_MD_CTX_copy_ex
    - BIO_set_flags
    - STACK_OF
    - OBJ_obj2nid
    - BIO_set_mem_eof_return
    - sk_PKCS7_SIGNER_INFO_num
    - EVP_MD_CTX_new
    - ASN1_OCTET_STRING_set
    - PKCS7err
    - BIO_find_type
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: PKCS7_dataFinal(PKCS7 *p7, BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyobj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:822,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:826,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:828,1
    - Dst: EVP_DigestSignInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:832,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:835,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:837,1
    - Dst: ASN1_item_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:841,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:842,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:845,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:847,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:849,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:851,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:854,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:857,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:859,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:863,1
    - Dst: ASN1_STRING_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:865,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:870,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:871,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 1
    argNames:
    - si
    argTypes:
    - PKCS7_SIGNER_INFO*
    constantsTouched: []
    func_position:
      end: 874
      start: 813
    functionDepth: 4
    functionLinenumber: 813
    functionLinenumberEnd: 874
    functionName: PKCS7_SIGNER_INFO_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c
    functionUses: 1
    functionsReached:
    - ASN1_item_i2d
    - ASN1_STRING_set0
    - EVP_DigestSignInit
    - EVP_PKEY_CTX_ctrl
    - EVP_DigestSignUpdate
    - ASN1_ITEM_rptr
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - PKCS7err
    - EVP_DigestSignFinal
    - OPENSSL_free
    - OPENSSL_malloc
    - EVP_get_digestbyobj
    linkageType: ''
    returnType: int
    signature: PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:881,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:885,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:890,1
    - Dst: PKCS7_type_is_signed
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:894,1
    - Dst: PKCS7_type_is_signedAndEnveloped
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:896,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:899,1
    - Dst: X509_find_by_issuer_and_serial
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:905,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:909,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:915,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:916,1
    - Dst: X509_STORE_CTX_set_purpose
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:919,1
    - Dst: X509_verify_cert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:920,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:922,1
    - Dst: X509_STORE_CTX_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:923,1
    - Dst: X509_STORE_CTX_cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:926,1
    - Dst: PKCS7_signatureVerify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:928,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 5
    argNames:
    - cert_store
    - ctx
    - bio
    - p7
    - si
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX*
    - BIO*
    - PKCS7*
    - PKCS7_SIGNER_INFO*
    constantsTouched: []
    func_position:
      end: 931
      start: 876
    functionDepth: 5
    functionLinenumber: 876
    functionLinenumberEnd: 931
    functionName: PKCS7_dataVerify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_init
    - STACK_OF
    - PKCS7_type_is_signedAndEnveloped
    - X509_STORE_CTX_set_purpose
    - PKCS7_signatureVerify
    - X509_find_by_issuer_and_serial
    - PKCS7err
    - PKCS7_type_is_signed
    - X509_STORE_CTX_cleanup
    - X509_verify_cert
    linkageType: ''
    returnType: int
    signature: "PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, BIO
      *bio,\n                     PKCS7 *p7, PKCS7_SIGNER_INFO *si)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:940,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:944,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:946,1
    - Dst: PKCS7_type_is_signed
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:950,1
    - Dst: PKCS7_type_is_signedAndEnveloped
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:950,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:951,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:955,1
    - Dst: BIO_find_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:960,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:961,1
    - Dst: BIO_get_md_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:965,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:967,1
    - Dst: EVP_MD_CTX_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:970,1
    - Dst: EVP_MD_pkey_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:976,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:976,1
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:978,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:985,1
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:989,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:995,1
    - Dst: PKCS7_digest_from_attributes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:997,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:999,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1004,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1005,1
    - Dst: EVP_VerifyInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1010,1
    - Dst: EVP_get_digestbynid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1010,1
    - Dst: ASN1_item_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1013,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1014,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1016,1
    - Dst: EVP_VerifyUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1020,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1023,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1027,1
    - Dst: EVP_VerifyFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1033,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1035,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1041,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 87
    argCount: 4
    argNames:
    - bio
    - p7
    - si
    - x509
    argTypes:
    - BIO*
    - PKCS7*
    - PKCS7_SIGNER_INFO*
    - X509*
    constantsTouched: []
    func_position:
      end: 1043
      start: 933
    functionDepth: 4
    functionLinenumber: 933
    functionLinenumberEnd: 1043
    functionName: PKCS7_signatureVerify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c
    functionUses: 1
    functionsReached:
    - EVP_MD_pkey_type
    - PKCS7_digest_from_attributes
    - EVP_VerifyUpdate
    - BIO_get_md_ctx
    - EVP_MD_CTX_free
    - BIO_next
    - sk_X509_ATTRIBUTE_num
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_md
    - EVP_VerifyFinal
    - ASN1_item_i2d
    - EVP_MD_CTX_type
    - EVP_get_digestbynid
    - OPENSSL_free
    - EVP_MD_CTX_copy_ex
    - memcmp
    - STACK_OF
    - PKCS7_type_is_signedAndEnveloped
    - OBJ_obj2nid
    - EVP_VerifyInit_ex
    - X509_get0_pubkey
    - ASN1_ITEM_rptr
    - EVP_MD_CTX_new
    - BIO_find_type
    - PKCS7err
    - PKCS7_type_is_signed
    linkageType: ''
    returnType: int
    signature: "PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si,\n
      \                         X509 *x509)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1047,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1051,1
    - Dst: sk_PKCS7_RECIP_INFO_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1059,1
    - Dst: sk_PKCS7_RECIP_INFO_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1061,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - p7
    - idx
    argTypes:
    - PKCS7*
    - int
    constantsTouched: []
    func_position:
      end: 1063
      start: 1045
    functionDepth: 1
    functionLinenumber: 1045
    functionLinenumberEnd: 1063
    functionName: PKCS7_get_issuer_and_serial
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - OBJ_obj2nid
    - sk_PKCS7_RECIP_INFO_num
    - sk_PKCS7_RECIP_INFO_value
    linkageType: ''
    returnType: PKCS7_ISSUER_AND_SERIAL
    signature: '*PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_attribute
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - si
    - nid
    argTypes:
    - PKCS7_SIGNER_INFO*
    - int
    constantsTouched: []
    func_position:
      end: 1068
      start: 1065
    functionDepth: 1
    functionLinenumber: 1065
    functionLinenumberEnd: 1068
    functionName: PKCS7_get_signed_attribute
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c
    functionUses: 2
    functionsReached:
    - get_attribute
    linkageType: ''
    returnType: ASN1_TYPE
    signature: '*PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_attribute
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - si
    - nid
    argTypes:
    - PKCS7_SIGNER_INFO*
    - int
    constantsTouched: []
    func_position:
      end: 1073
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1073
    functionName: PKCS7_get_attribute
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - get_attribute
    linkageType: ''
    returnType: ASN1_TYPE
    signature: '*PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1079,1
    - Dst: X509at_get_attr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1080,1
    - Dst: X509_ATTRIBUTE_get0_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sk
    - nid
    argTypes:
    - STACK_OF*
    - int
    constantsTouched: []
    func_position:
      end: 1082
      start: 1075
    functionDepth: 2
    functionLinenumber: 1075
    functionLinenumberEnd: 1082
    functionName: get_attribute
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c
    functionUses: 2
    functionsReached:
    - X509at_get_attr_by_NID
    - X509_ATTRIBUTE_get0_type
    - X509at_get_attr
    linkageType: ''
    returnType: ASN1_TYPE
    signature: '*get_attribute(STACK_OF(X509_ATTRIBUTE) *sk, int nid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: add_attribute
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p7si
    - nid
    - atrtype
    - value
    argTypes:
    - PKCS7_SIGNER_INFO*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1134
      start: 1130
    functionDepth: 0
    functionLinenumber: 1130
    functionLinenumberEnd: 1134
    functionName: PKCS7_add_signed_attribute
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c
    functionUses: 2
    functionsReached:
    - add_attribute
    linkageType: ''
    returnType: int
    signature: "PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype,\n
      \                              void *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: add_attribute
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c:1139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p7si
    - nid
    - atrtype
    - value
    argTypes:
    - PKCS7_SIGNER_INFO*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1140
      start: 1136
    functionDepth: 0
    functionLinenumber: 1136
    functionLinenumberEnd: 1140
    functionName: PKCS7_add_attribute
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - add_attribute
    linkageType: ''
    returnType: int
    signature: "PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype,\n
      \                       void *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_get_signed_attribute
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_attr.c:88,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_attr.c:91,1
    - Dst: PKCS7_add_signed_attribute
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_attr.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - si
    - coid
    argTypes:
    - PKCS7_SIGNER_INFO*
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: PKCS7_add_attrib_content_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_attr.c
    functionUses: 0
    functionsReached:
    - PKCS7_add_signed_attribute
    - PKCS7_get_signed_attribute
    - OBJ_nid2obj
    linkageType: ''
    returnType: int
    signature: PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT *coid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_gmtime_adj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_attr.c:98,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_attr.c:99,1
    - Dst: PKCS7_add_signed_attribute
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_attr.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - si
    - t
    argTypes:
    - PKCS7_SIGNER_INFO*
    - ASN1_TIME*
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: PKCS7_add0_attrib_signing_time
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_attr.c
    functionUses: 1
    functionsReached:
    - PKCS7_add_signed_attribute
    - PKCS7err
    - X509_gmtime_adj
    linkageType: ''
    returnType: int
    signature: PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_attr.c:111,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_attr.c:114,1
    - Dst: PKCS7_add_signed_attribute
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_attr.c:115,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_attr.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - si
    - md
    - mdlen
    argTypes:
    - PKCS7_SIGNER_INFO*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 121
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 121
    functionName: PKCS7_add1_attrib_digest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_attr.c
    functionUses: 1
    functionsReached:
    - PKCS7_add_signed_attribute
    - ASN1_OCTET_STRING_new
    - ASN1_STRING_set
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: int
    signature: "PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si,\n                             const
      unsigned char *md, int mdlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_dataInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:70,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:71,1
    - Dst: SMIME_crlf_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:75,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:77,1
    - Dst: PKCS7_dataFinal
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:79,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:80,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - p7
    - data
    - flags
    argTypes:
    - PKCS7*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 91
      start: 65
    functionDepth: 6
    functionLinenumber: 65
    functionLinenumberEnd: 91
    functionName: PKCS7_final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c
    functionUses: 0
    functionsReached:
    - PKCS7_dataFinal
    - BIO_free_all
    - SMIME_crlf_copy
    - BIO_flush
    - PKCS7err
    - PKCS7_dataInit
    linkageType: ''
    returnType: int
    signature: PKCS7_final(PKCS7 *p7, BIO *data, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:114,1
    - Dst: X509_check_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:115,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:116,1
    - Dst: PKCS7_add_signature
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:121,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:122,1
    - Dst: PKCS7_add_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:128,1
    - Dst: PKCS7_add_attrib_content_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:133,1
    - Dst: sk_X509_ALGOR_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:137,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:138,1
    - Dst: add_cipher_smcap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:141,1
    - Dst: add_digest_smcap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:142,1
    - Dst: add_digest_smcap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:143,1
    - Dst: add_digest_smcap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:144,1
    - Dst: add_cipher_smcap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:145,1
    - Dst: add_cipher_smcap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:146,1
    - Dst: add_cipher_smcap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:147,1
    - Dst: add_cipher_smcap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:148,1
    - Dst: add_cipher_smcap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:149,1
    - Dst: add_cipher_smcap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:150,1
    - Dst: add_cipher_smcap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:151,1
    - Dst: add_cipher_smcap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:152,1
    - Dst: PKCS7_add_attrib_smimecap
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:153,1
    - Dst: sk_X509_ALGOR_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:155,1
    - Dst: pkcs7_copy_existing_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:159,1
    - Dst: PKCS7_SIGNER_INFO_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:161,1
    - Dst: sk_X509_ALGOR_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:167,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 45
    argCount: 5
    argNames:
    - p7
    - signcert
    - pkey
    - md
    - flags
    argTypes:
    - PKCS7*
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    - int
    constantsTouched: []
    func_position:
      end: 169
      start: 109
    functionDepth: 5
    functionLinenumber: 109
    functionLinenumberEnd: 169
    functionName: PKCS7_sign_add_signer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c
    functionUses: 0
    functionsReached:
    - add_digest_smcap
    - pkcs7_copy_existing_digest
    - STACK_OF
    - PKCS7_add_signature
    - PKCS7_SIGNER_INFO_sign
    - PKCS7_add_attrib_smimecap
    - sk_X509_ALGOR_pop_free
    - PKCS7err
    - X509_check_private_key
    - add_cipher_smcap
    - PKCS7_add_certificate
    - sk_X509_ALGOR_new_null
    - PKCS7_add_attrib_content_type
    linkageType: ''
    returnType: PKCS7_SIGNER_INFO
    signature: "*PKCS7_sign_add_signer(PKCS7 *p7, X509 *signcert,\n                                         EVP_PKEY
      *pkey, const EVP_MD *md,\n                                         int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:179,1
    - Dst: PKCS7_get_signer_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:182,1
    - Dst: sk_PKCS7_SIGNER_INFO_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:183,1
    - Dst: sk_PKCS7_SIGNER_INFO_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:184,1
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:187,1
    - Dst: OBJ_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:189,1
    - Dst: PKCS7_digest_from_attributes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:190,1
    - Dst: PKCS7_add1_attrib_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:197,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:199,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - p7
    - si
    argTypes:
    - PKCS7*
    - PKCS7_SIGNER_INFO*
    constantsTouched: []
    func_position:
      end: 202
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 202
    functionName: pkcs7_copy_existing_digest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c
    functionUses: 1
    functionsReached:
    - STACK_OF
    - PKCS7_digest_from_attributes
    - sk_PKCS7_SIGNER_INFO_num
    - PKCS7_add1_attrib_digest
    - PKCS7err
    - OBJ_cmp
    - sk_X509_ATTRIBUTE_num
    - PKCS7_get_signer_info
    - sk_PKCS7_SIGNER_INFO_value
    linkageType: ''
    returnType: int
    signature: pkcs7_copy_existing_digest(PKCS7 *p7, PKCS7_SIGNER_INFO *si)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:484,1
    - Dst: PKCS7_type_is_enveloped
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:488,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:489,1
    - Dst: X509_check_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:493,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:494,1
    - Dst: PKCS7_dataDecode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:499,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:500,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:507,1
    - Dst: BIO_f_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:507,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:508,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:509,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:512,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:513,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:514,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:515,1
    - Dst: SMIME_text
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:518,1
    - Dst: BIO_method_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:519,1
    - Dst: BIO_get_cipher_status
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:520,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:523,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:526,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:527,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:531,1
    - Dst: BIO_method_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:534,1
    - Dst: BIO_get_cipher_status
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:535,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:541,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:546,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c:547,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 5
    argNames:
    - p7
    - pkey
    - cert
    - data
    - flags
    argTypes:
    - PKCS7*
    - EVP_PKEY*
    - X509*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 549
      start: 477
    functionDepth: 6
    functionLinenumber: 477
    functionLinenumberEnd: 549
    functionName: PKCS7_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c
    functionUses: 0
    functionsReached:
    - SMIME_text
    - BIO_push
    - BIO_method_type
    - BIO_free_all
    - BIO_get_cipher_status
    - BIO_f_buffer
    - OPENSSL_free
    - PKCS7err
    - X509_check_private_key
    - PKCS7_type_is_enveloped
    - PKCS7_dataDecode
    - BIO_new
    - BIO_read
    - OPENSSL_malloc
    - BIO_write
    linkageType: ''
    returnType: int
    signature: PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, int
      flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:22,1
    - Dst: PKCS7_type_is_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:29,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:32,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:36,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:50,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:57,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - p7
    - cmd
    - larg
    - parg
    argTypes:
    - PKCS7*
    - int
    - long
    - char*
    constantsTouched: []
    func_position:
      end: 61
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 61
    functionName: PKCS7_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - PKCS7err
    - PKCS7_type_is_data
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: long
    signature: PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:67,1
    - Dst: PKCS7_set_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:69,1
    - Dst: PKCS7_set_content
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:71,1
    - Dst: PKCS7_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - p7
    - type
    argTypes:
    - PKCS7*
    - int
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: PKCS7_content_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - PKCS7_set_content
    - PKCS7_new
    - PKCS7_free
    - PKCS7_set_type
    linkageType: ''
    returnType: int
    signature: PKCS7_content_new(PKCS7 *p7, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:84,1
    - Dst: PKCS7_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:87,1
    - Dst: PKCS7_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:91,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - p7
    - p7_data
    argTypes:
    - PKCS7*
    - PKCS7*
    constantsTouched: []
    func_position:
      end: 105
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 105
    functionName: PKCS7_set_content
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c
    functionUses: 2
    functionsReached:
    - OBJ_obj2nid
    - PKCS7err
    - PKCS7_free
    linkageType: ''
    returnType: int
    signature: PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:114,1
    - Dst: PKCS7_SIGNED_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:119,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:121,1
    - Dst: PKCS7_SIGNED_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:122,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:129,1
    - Dst: PKCS7_SIGN_ENVELOPE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:134,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:137,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:138,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:141,1
    - Dst: PKCS7_ENVELOPE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:145,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:148,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:150,1
    - Dst: PKCS7_ENCRYPT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:154,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:157,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:159,1
    - Dst: PKCS7_DIGEST_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:164,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:167,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:171,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 70
    argCount: 2
    argNames:
    - p7
    - type
    argTypes:
    - PKCS7*
    - int
    constantsTouched: []
    func_position:
      end: 177
      start: 107
    functionDepth: 4
    functionLinenumber: 107
    functionLinenumberEnd: 177
    functionName: PKCS7_set_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c
    functionUses: 3
    functionsReached:
    - PKCS7_ENCRYPT_new
    - ASN1_OCTET_STRING_new
    - PKCS7_DIGEST_new
    - PKCS7_SIGN_ENVELOPE_new
    - ASN1_INTEGER_set
    - OBJ_nid2obj
    - PKCS7err
    - PKCS7_SIGNED_new
    - PKCS7_ENVELOPE_new
    - PKCS7_SIGNED_free
    linkageType: ''
    returnType: int
    signature: PKCS7_set_type(PKCS7 *p7, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - p7
    - type
    - other
    argTypes:
    - PKCS7*
    - int
    - ASN1_TYPE*
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: PKCS7_set0_type_other
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    linkageType: ''
    returnType: int
    signature: PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:190,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:191,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:193,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:204,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:208,1
    - Dst: sk_X509_ALGOR_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:212,1
    - Dst: sk_X509_ALGOR_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:213,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:214,1
    - Dst: X509_ALGOR_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:220,1
    - Dst: ASN1_TYPE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:221,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:222,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:223,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:226,1
    - Dst: sk_X509_ALGOR_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:228,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:229,1
    - Dst: sk_PKCS7_SIGNER_INFO_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:234,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - p7
    - psi
    argTypes:
    - PKCS7*
    - PKCS7_SIGNER_INFO*
    constantsTouched: []
    func_position:
      end: 237
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 237
    functionName: PKCS7_add_signer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - OBJ_obj2nid
    - X509_ALGOR_new
    - sk_PKCS7_SIGNER_INFO_push
    - OBJ_nid2obj
    - sk_X509_ALGOR_num
    - PKCS7err
    - sk_X509_ALGOR_value
    - ASN1_TYPE_new
    - sk_X509_ALGOR_push
    - X509_ALGOR_free
    linkageType: ''
    returnType: int
    signature: PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *psi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:242,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:244,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:253,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:258,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:260,1
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:263,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:264,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:265,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - p7
    - x509
    argTypes:
    - PKCS7*
    - X509*
    constantsTouched: []
    func_position:
      end: 269
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 269
    functionName: PKCS7_add_certificate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c
    functionUses: 2
    functionsReached:
    - X509_up_ref
    - STACK_OF
    - OBJ_obj2nid
    - PKCS7err
    - X509_free
    - sk_X509_push
    - sk_X509_new_null
    linkageType: ''
    returnType: int
    signature: PKCS7_add_certificate(PKCS7 *p7, X509 *x509)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:274,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:276,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:285,1
    - Dst: sk_X509_CRL_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:290,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:292,1
    - Dst: X509_CRL_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:296,1
    - Dst: sk_X509_CRL_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:297,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:298,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - p7
    - crl
    argTypes:
    - PKCS7*
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 302
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 302
    functionName: PKCS7_add_crl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - sk_X509_CRL_push
    - STACK_OF
    - OBJ_obj2nid
    - X509_CRL_free
    - PKCS7err
    - X509_CRL_up_ref
    - sk_X509_CRL_new_null
    linkageType: ''
    returnType: int
    signature: PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:310,1
    - Dst: X509_NAME_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:312,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:313,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:320,1
    - Dst: ASN1_INTEGER_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:322,1
    - Dst: X509_get_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:322,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:326,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:331,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:331,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:331,1
    - Dst: EVP_PKEY*::ameth::pkey_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:335,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:339,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:344,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - p7i
    - x509
    - pkey
    - dgst
    argTypes:
    - PKCS7_SIGNER_INFO*
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 348
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 348
    functionName: PKCS7_SIGNER_INFO_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY*::ameth::pkey_ctrl
    - ASN1_INTEGER_dup
    - X509_NAME_set
    - X509_ALGOR_set0
    - ASN1_INTEGER_set
    - OBJ_nid2obj
    - EVP_PKEY_up_ref
    - X509_get_serialNumber
    - EVP_MD_type
    - PKCS7err
    - ASN1_INTEGER_free
    - X509_get_issuer_name
    linkageType: ''
    returnType: int
    signature: "PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY
      *pkey,\n                          const EVP_MD *dgst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_default_digest_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:357,1
    - Dst: EVP_get_digestbynid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:359,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:361,1
    - Dst: PKCS7_SIGNER_INFO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:366,1
    - Dst: PKCS7_SIGNER_INFO_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:368,1
    - Dst: PKCS7_add_signer
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:370,1
    - Dst: PKCS7_SIGNER_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:374,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 4
    argNames:
    - p7
    - x509
    - pkey
    - dgst
    argTypes:
    - PKCS7*
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 376
      start: 350
    functionDepth: 5
    functionLinenumber: 350
    functionLinenumberEnd: 376
    functionName: PKCS7_add_signature
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c
    functionUses: 2
    functionsReached:
    - PKCS7_SIGNER_INFO_new
    - PKCS7_add_signer
    - EVP_get_digestbynid
    - EVP_PKEY_get_default_digest_nid
    - PKCS7err
    - PKCS7_SIGNER_INFO_free
    - PKCS7_SIGNER_INFO_set
    linkageType: ''
    returnType: PKCS7_SIGNER_INFO
    signature: "*PKCS7_add_signature(PKCS7 *p7, X509 *x509, EVP_PKEY *pkey,\n                                       const
      EVP_MD *dgst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_type_is_digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:380,1
    - Dst: ASN1_TYPE_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:381,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:382,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:386,1
    - Dst: EVP_MD_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:386,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - p7
    - md
    argTypes:
    - PKCS7*
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 392
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 392
    functionName: PKCS7_set_digest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - ASN1_TYPE_new
    - PKCS7err
    - PKCS7_type_is_digest
    - EVP_MD_nid
    linkageType: ''
    returnType: int
    signature: PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - si
    - pk
    - pdig
    - psig
    argTypes:
    - PKCS7_SIGNER_INFO*
    - EVP_PKEY**
    - X509_ALGOR**
    - X509_ALGOR**
    constantsTouched: []
    func_position:
      end: 415
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 415
    functionName: PKCS7_SIGNER_INFO_get0_algs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk,\n
      \                                X509_ALGOR **pdig, X509_ALGOR **psig)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ri
    - penc
    argTypes:
    - PKCS7_RECIP_INFO*
    - X509_ALGOR**
    constantsTouched: []
    func_position:
      end: 421
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 421
    functionName: PKCS7_RECIP_INFO_get0_alg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_RECIP_INFO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:427,1
    - Dst: PKCS7_RECIP_INFO_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:429,1
    - Dst: PKCS7_add_recipient_info
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:431,1
    - Dst: PKCS7_RECIP_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:435,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - p7
    - x509
    argTypes:
    - PKCS7*
    - X509*
    constantsTouched: []
    func_position:
      end: 437
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 437
    functionName: PKCS7_add_recipient
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - PKCS7_RECIP_INFO_set
    - PKCS7_RECIP_INFO_free
    - PKCS7_RECIP_INFO_new
    - PKCS7_add_recipient_info
    linkageType: ''
    returnType: PKCS7_RECIP_INFO
    signature: '*PKCS7_add_recipient(PKCS7 *p7, X509 *x509)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:442,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:444,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:453,1
    - Dst: sk_PKCS7_RECIP_INFO_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:458,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - p7
    - ri
    argTypes:
    - PKCS7*
    - PKCS7_RECIP_INFO*
    constantsTouched: []
    func_position:
      end: 461
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 461
    functionName: PKCS7_add_recipient_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c
    functionUses: 1
    functionsReached:
    - STACK_OF
    - OBJ_obj2nid
    - PKCS7err
    - sk_PKCS7_RECIP_INFO_push
    linkageType: ''
    returnType: int
    signature: PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:467,1
    - Dst: X509_NAME_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:469,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:470,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:473,1
    - Dst: ASN1_INTEGER_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:475,1
    - Dst: X509_get_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:475,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:478,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:481,1
    - Dst: EVP_PKEY*::ameth::pkey_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:486,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:488,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:493,1
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:498,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - p7i
    - x509
    argTypes:
    - PKCS7_RECIP_INFO*
    - X509*
    constantsTouched: []
    func_position:
      end: 505
      start: 463
    functionDepth: 4
    functionLinenumber: 463
    functionLinenumberEnd: 505
    functionName: PKCS7_RECIP_INFO_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c
    functionUses: 1
    functionsReached:
    - X509_up_ref
    - EVP_PKEY*::ameth::pkey_ctrl
    - ASN1_INTEGER_dup
    - X509_NAME_set
    - ASN1_INTEGER_set
    - X509_get0_pubkey
    - X509_get_serialNumber
    - PKCS7err
    - ASN1_INTEGER_free
    - X509_get_issuer_name
    linkageType: ''
    returnType: int
    signature: PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_type_is_signed
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:509,1
    - Dst: X509_find_by_issuer_and_serial
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p7
    - si
    argTypes:
    - PKCS7*
    - PKCS7_SIGNER_INFO*
    constantsTouched: []
    func_position:
      end: 516
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 516
    functionName: PKCS7_cert_from_signer_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - X509_find_by_issuer_and_serial
    - PKCS7_type_is_signed
    linkageType: ''
    returnType: X509
    signature: '*PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:523,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:532,1
    - Dst: EVP_CIPHER_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:537,1
    - Dst: PKCS7err
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:539,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - p7
    - cipher
    argTypes:
    - PKCS7*
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 546
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 546
    functionName: PKCS7_set_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - PKCS7err
    - EVP_CIPHER_type
    linkageType: ''
    returnType: int
    signature: PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:552,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:560,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c:568,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - boundary
    - p7
    argTypes:
    - unsigned char***
    - PKCS7*
    constantsTouched: []
    func_position:
      end: 589
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 589
    functionName: PKCS7_stream
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    - ASN1_OCTET_STRING_new
    linkageType: ''
    returnType: int
    signature: PKCS7_stream(unsigned char ***boundary, PKCS7 *p7)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_NDEF
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/bio_pk7.c:23,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/bio_pk7.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - p7
    argTypes:
    - BIO*
    - PKCS7*
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 5
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: BIO_new_PKCS7
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/bio_pk7.c
    functionUses: 0
    functionsReached:
    - BIO_new_NDEF
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: BIO
    signature: '*BIO_new_PKCS7(BIO *out, PKCS7 *p7)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pkcs7err.c:125,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pkcs7err.c:126,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pkcs7err.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 121
    functionDepth: 4
    functionLinenumber: 121
    functionLinenumberEnd: 131
    functionName: ERR_load_PKCS7_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pkcs7err.c
    functionUses: 1
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_PKCS7_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_OBJECT**
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: sn_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: sn_cmp(const ASN1_OBJECT *const *a, const unsigned int *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_OBJECT**
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: ln_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: ln_cmp(const ASN1_OBJECT *const *a, const unsigned int *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_LH_strhash
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:71,1
    - Dst: OPENSSL_LH_strhash
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:74,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - ca
    argTypes:
    - ADDED_OBJ*
    constantsTouched: []
    func_position:
      end: 86
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 86
    functionName: added_obj_hash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_strhash
    linkageType: ''
    returnType: unsigned long
    signature: added_obj_hash(const ADDED_OBJ *ca)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:103,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:110,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - ca
    - cb
    argTypes:
    - ADDED_OBJ*
    - ADDED_OBJ*
    constantsTouched: []
    func_position:
      end: 124
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 124
    functionName: added_obj_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - memcmp
    - strcmp
    linkageType: ''
    returnType: int
    signature: added_obj_cmp(const ADDED_OBJ *ca, const ADDED_OBJ *cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_ADDED_OBJ_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: init_added
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - lh_ADDED_OBJ_new
    linkageType: ''
    returnType: int
    signature: init_added(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - ADDED_OBJ*
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: cleanup1_doall
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: cleanup1_doall(ADDED_OBJ *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - ADDED_OBJ*
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: cleanup2_doall
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: cleanup2_doall(ADDED_OBJ *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:149,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - ADDED_OBJ*
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: cleanup3_doall
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: void
    signature: cleanup3_doall(ADDED_OBJ *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_ADDED_OBJ_set_down_load
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:157,1
    - Dst: lh_ADDED_OBJ_doall
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:158,1
    - Dst: lh_ADDED_OBJ_doall
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:159,1
    - Dst: lh_ADDED_OBJ_doall
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:160,1
    - Dst: lh_ADDED_OBJ_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 163
    functionName: obj_cleanup_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 1
    functionsReached:
    - lh_ADDED_OBJ_set_down_load
    - lh_ADDED_OBJ_free
    - lh_ADDED_OBJ_doall
    linkageType: ''
    returnType: void
    signature: obj_cleanup_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 172
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 172
    functionName: OBJ_new_nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: OBJ_new_nid(int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_added
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:181,1
    - Dst: OBJ_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:183,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:185,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:188,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:191,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:194,1
    - Dst: lh_ADDED_OBJ_insert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:201,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:203,1
    - Dst: OBJerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:212,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:215,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:216,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 1
    argNames:
    - obj
    argTypes:
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 218
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 218
    functionName: OBJ_add_object
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - init_added
    - OBJ_dup
    - OPENSSL_free
    - lh_ADDED_OBJ_insert
    - OPENSSL_malloc
    - OBJerr
    linkageType: ''
    returnType: int
    signature: OBJ_add_object(const ASN1_OBJECT *obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:227,1
    - Dst: lh_ADDED_OBJ_retrieve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:237,1
    - Dst: OBJerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:241,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 245
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 245
    functionName: OBJ_nid2obj
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 73
    functionsReached:
    - lh_ADDED_OBJ_retrieve
    - OBJerr
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: '*OBJ_nid2obj(int n)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:254,1
    - Dst: lh_ADDED_OBJ_retrieve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:264,1
    - Dst: OBJerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:268,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 272
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 272
    functionName: OBJ_nid2sn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 12
    functionsReached:
    - lh_ADDED_OBJ_retrieve
    - OBJerr
    linkageType: ''
    returnType: char
    signature: '*OBJ_nid2sn(int n)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:281,1
    - Dst: lh_ADDED_OBJ_retrieve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:291,1
    - Dst: OBJerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:295,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 299
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 299
    functionName: OBJ_nid2ln
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 11
    functionsReached:
    - lh_ADDED_OBJ_retrieve
    - OBJerr
    linkageType: ''
    returnType: char
    signature: '*OBJ_nid2ln(int n)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ap
    - bp
    argTypes:
    - ASN1_OBJECT**
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 313
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 313
    functionName: obj_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: obj_cmp(const ASN1_OBJECT *const *ap, const unsigned int *bp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_ADDED_OBJ_retrieve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:333,1
    - Dst: OBJ_bsearch_obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:337,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - a
    argTypes:
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 341
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 341
    functionName: OBJ_obj2nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 90
    functionsReached:
    - lh_ADDED_OBJ_retrieve
    - OBJ_bsearch_obj
    linkageType: ''
    returnType: int
    signature: OBJ_obj2nid(const ASN1_OBJECT *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_sn2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:360,1
    - Dst: OBJ_ln2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:361,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:362,1
    - Dst: a2d_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:366,1
    - Dst: ASN1_object_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:375,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:379,1
    - Dst: ASN1_put_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:384,1
    - Dst: a2d_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:386,1
    - Dst: d2i_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:389,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:390,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - s
    - no_name
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 392
      start: 350
    functionDepth: 4
    functionLinenumber: 350
    functionLinenumberEnd: 392
    functionName: OBJ_txt2obj
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 14
    functionsReached:
    - OBJ_sn2nid
    - ASN1_put_object
    - OBJ_nid2obj
    - ASN1_object_size
    - OPENSSL_free
    - d2i_ASN1_OBJECT
    - a2d_ASN1_OBJECT
    - OBJ_ln2nid
    - OPENSSL_malloc
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: '*OBJ_txt2obj(const char *s, int no_name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:409,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:411,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:413,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:416,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:417,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:437,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:444,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:446,1
    - Dst: BN_lshift
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:451,1
    - Dst: BN_sub_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:462,1
    - Dst: BN_bn2dec
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:480,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:483,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:490,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:501,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:503,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:504,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:506,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:520,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:524,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 120
    argCount: 4
    argNames:
    - buf
    - buf_len
    - a
    - no_name
    argTypes:
    - char*
    - int
    - ASN1_OBJECT*
    - int
    constantsTouched: []
    func_position:
      end: 526
      start: 394
    functionDepth: 5
    functionLinenumber: 394
    functionLinenumberEnd: 526
    functionName: OBJ_obj2txt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 5
    functionsReached:
    - BN_new
    - BN_bn2dec
    - OBJ_nid2ln
    - BN_add_word
    - BN_sub_word
    - BIO_snprintf
    - BN_free
    - OBJ_obj2nid
    - OPENSSL_strlcpy
    - BN_lshift
    - OBJ_nid2sn
    - strlen
    - BN_set_word
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:532,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:533,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 536
      start: 528
    functionDepth: 5
    functionLinenumber: 528
    functionLinenumberEnd: 536
    functionName: OBJ_txt2nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 3
    functionsReached:
    - OBJ_obj2nid
    - ASN1_OBJECT_free
    - OBJ_txt2obj
    linkageType: ''
    returnType: int
    signature: OBJ_txt2nid(const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_ADDED_OBJ_retrieve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:549,1
    - Dst: OBJ_bsearch_ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:553,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 557
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 557
    functionName: OBJ_ln2nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 3
    functionsReached:
    - lh_ADDED_OBJ_retrieve
    - OBJ_bsearch_ln
    linkageType: ''
    returnType: int
    signature: OBJ_ln2nid(const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_ADDED_OBJ_retrieve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:570,1
    - Dst: OBJ_bsearch_sn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:574,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 578
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 578
    functionName: OBJ_sn2nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 6
    functionsReached:
    - OBJ_bsearch_sn
    - lh_ADDED_OBJ_retrieve
    linkageType: ''
    returnType: int
    signature: OBJ_sn2nid(const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_bsearch_ex_
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key
    - base
    - num
    - size
    argTypes:
    - void*
    - void*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 584
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 584
    functionName: OBJ_bsearch_
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - OBJ_bsearch_ex_
    linkageType: ''
    returnType: void
    signature: "*OBJ_bsearch_(const void *key, const void *base, int num, int size,\n
      \                        int (*cmp) (const void *, const void *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 5
    argNames:
    - key
    - base_
    - num
    - size
    - flags
    argTypes:
    - void*
    - void*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 633
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 633
    functionName: OBJ_bsearch_ex_
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "*OBJ_bsearch_ex_(const void *key, const void *base_, int num,\n                            int
      size,\n                            int (*cmp) (const void *, const void *),\n
      \                           int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:643,1
    - Dst: isalnum
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:647,1
    - Dst: isdigit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:650,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:654,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:660,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:664,1
    - Dst: OBJ_create
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:675,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 1
    argNames:
    - in
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 680
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 680
    functionName: OBJ_create_objects
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - isspace
    - isdigit
    - OBJ_create
    - BIO_gets
    - isalnum
    linkageType: ''
    returnType: int
    signature: OBJ_create_objects(BIO *in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_sn2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:688,1
    - Dst: OBJ_ln2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:688,1
    - Dst: OBJerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:689,1
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:694,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:697,1
    - Dst: OBJerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:698,1
    - Dst: OBJ_new_nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:702,1
    - Dst: OBJ_add_object
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:706,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c:712,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - oid
    - sn
    - ln
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 714
      start: 682
    functionDepth: 5
    functionLinenumber: 682
    functionLinenumberEnd: 714
    functionName: OBJ_create
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 3
    functionsReached:
    - OBJ_new_nid
    - OBJ_sn2nid
    - OBJ_txt2obj
    - OBJ_add_object
    - OBJ_obj2nid
    - ASN1_OBJECT_free
    - OBJ_ln2nid
    - OBJerr
    linkageType: ''
    returnType: int
    signature: OBJ_create(const char *oid, const char *sn, const char *ln)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 721
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 721
    functionName: OBJ_length
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: OBJ_length(const ASN1_OBJECT *obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 728
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 728
    functionName: OBJ_get0_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: '*OBJ_get0_data(const ASN1_OBJECT *obj)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_err.c:44,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_err.c:45,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_err.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 50
    functionName: ERR_load_OBJ_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_err.c
    functionUses: 1
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_OBJ_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - nid_triple*
    - nid_triple*
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: sig_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: sig_cmp(const nid_triple *a, const nid_triple *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - nid_triple**
    - nid_triple**
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: sig_sk_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: sig_sk_cmp(const nid_triple *const *a, const nid_triple *const *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - nid_triple**
    - nid_triple**
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: sigx_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: sigx_cmp(const nid_triple *const *a, const nid_triple *const *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_nid_triple_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:51,1
    - Dst: OBJ_bsearch_sig
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:55,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:55,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - signid
    - pdig_nid
    - ppkey_nid
    argTypes:
    - int
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 65
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 65
    functionName: OBJ_find_sigid_algs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c
    functionUses: 5
    functionsReached:
    - OSSL_NELEM
    - sk_nid_triple_value
    - OBJ_bsearch_sig
    linkageType: ''
    returnType: int
    signature: OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_nid_triple_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:79,1
    - Dst: OBJ_bsearch_sigx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:85,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - psignid
    - dig_nid
    - pkey_nid
    argTypes:
    - int*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 93
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 93
    functionName: OBJ_find_sigid_by_algs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c
    functionUses: 4
    functionsReached:
    - OBJ_bsearch_sigx
    - OSSL_NELEM
    - sk_nid_triple_value
    linkageType: ''
    returnType: int
    signature: OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_nid_triple_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:99,1
    - Dst: sk_nid_triple_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:103,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:106,1
    - Dst: sk_nid_triple_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:113,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:114,1
    - Dst: sk_nid_triple_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:118,1
    - Dst: sk_nid_triple_sort
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:121,1
    - Dst: sk_nid_triple_sort
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:122,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - signid
    - dig_id
    - pkey_id
    argTypes:
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 125
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 125
    functionName: OBJ_add_sigid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c
    functionUses: 0
    functionsReached:
    - sk_nid_triple_push
    - sk_nid_triple_new
    - sk_nid_triple_sort
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: OBJ_add_sigid(int signid, int dig_id, int pkey_id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tt
    argTypes:
    - nid_triple*
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: sid_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: sid_free(nid_triple *tt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_nid_triple_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:134,1
    - Dst: sk_nid_triple_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: OBJ_sigid_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c
    functionUses: 1
    functionsReached:
    - sk_nid_triple_free
    - sk_nid_triple_pop_free
    linkageType: ''
    returnType: void
    signature: OBJ_sigid_free(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:148,1
    - Dst: OBJ_add_sigid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:149,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:153,1
    - Dst: OBJ_find_sigid_algs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:155,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:156,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:157,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:157,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:157,1
    - Dst: OBJ_find_sigid_by_algs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:159,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:160,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:161,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:161,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 163
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c
    functionUses: 22
    functionsReached:
    - OBJ_nid2ln
    - OBJ_find_sigid_by_algs
    - OBJ_add_sigid
    - printf
    - OBJ_find_sigid_algs
    - OSSL_NELEM
    linkageType: ''
    returnType: void
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: obj_strcmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: obj_strcmp(const char *a, const char *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:69,1
    - Dst: lh_OBJ_NAME_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:70,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: OBJ_NAME_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - lh_OBJ_NAME_new
    - CRYPTO_mem_ctrl
    linkageType: ''
    returnType: int
    signature: OBJ_NAME_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:83,1
    - Dst: sk_NAME_FUNCS_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:84,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:85,1
    - Dst: sk_NAME_FUNCS_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:93,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:94,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:95,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:96,1
    - Dst: OBJerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:98,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:103,1
    - Dst: sk_NAME_FUNCS_push
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:105,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:106,1
    - Dst: OBJerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:109,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:110,1
    - Dst: sk_NAME_FUNCS_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:114,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 122
    functionName: OBJ_NAME_new_index
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - sk_NAME_FUNCS_value
    - sk_NAME_FUNCS_push
    - sk_NAME_FUNCS_new_null
    - CRYPTO_mem_ctrl
    - sk_NAME_FUNCS_num
    - OPENSSL_zalloc
    - OPENSSL_free
    - OBJerr
    linkageType: ''
    returnType: int
    signature: "OBJ_NAME_new_index(unsigned long (*hash_func) (const char *),\n                       int
      (*cmp_func) (const char *, const char *),\n                       void (*free_func)
      (const char *, int, const char *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_NAME_FUNCS_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:131,1
    - Dst: sk_NAME_FUNCS_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:132,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - OBJ_NAME*
    - OBJ_NAME*
    constantsTouched: []
    func_position:
      end: 138
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 138
    functionName: obj_name_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - sk_NAME_FUNCS_num
    - sk_NAME_FUNCS_value
    - strcmp
    linkageType: ''
    returnType: int
    signature: obj_name_cmp(const OBJ_NAME *a, const OBJ_NAME *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_NAME_FUNCS_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:145,1
    - Dst: sk_NAME_FUNCS_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:147,1
    - Dst: OPENSSL_LH_strhash
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - OBJ_NAME*
    constantsTouched: []
    func_position:
      end: 154
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 154
    functionName: obj_name_hash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - sk_NAME_FUNCS_num
    - sk_NAME_FUNCS_value
    - OPENSSL_LH_strhash
    linkageType: ''
    returnType: unsigned long
    signature: obj_name_hash(const OBJ_NAME *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:163,1
    - Dst: lh_OBJ_NAME_retrieve
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:173,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 184
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 184
    functionName: OBJ_NAME_get
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c
    functionUses: 2
    functionsReached:
    - OBJ_NAME_init
    - lh_OBJ_NAME_retrieve
    linkageType: ''
    returnType: char
    signature: '*OBJ_NAME_get(const char *name, int type)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:191,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:197,1
    - Dst: lh_OBJ_NAME_insert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:208,1
    - Dst: sk_NAME_FUNCS_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:212,1
    - Dst: sk_NAME_FUNCS_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:217,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:221,1
    - Dst: lh_OBJ_NAME_error
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:223,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:225,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - name
    - type
    - data
    argTypes:
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 230
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 230
    functionName: OBJ_NAME_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c
    functionUses: 2
    functionsReached:
    - sk_NAME_FUNCS_value
    - lh_OBJ_NAME_error
    - OBJ_NAME_init
    - sk_NAME_FUNCS_num
    - OPENSSL_free
    - lh_OBJ_NAME_insert
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: OBJ_NAME_add(const char *name, int type, const char *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_OBJ_NAME_delete
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:242,1
    - Dst: sk_NAME_FUNCS_num
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:246,1
    - Dst: sk_NAME_FUNCS_value
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:251,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 259
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 259
    functionName: OBJ_NAME_remove
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - sk_NAME_FUNCS_num
    - OPENSSL_free
    - sk_NAME_FUNCS_value
    - lh_OBJ_NAME_delete
    linkageType: ''
    returnType: int
    signature: OBJ_NAME_remove(const char *name, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_DOALL*::fn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - name
    - d
    argTypes:
    - OBJ_NAME*
    - OBJ_DOALL*
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: do_all_fn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - OBJ_DOALL*::fn
    linkageType: ''
    returnType: void
    signature: do_all_fn(const OBJ_NAME *name, OBJ_DOALL *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_OBJ_NAME_doall_OBJ_DOALL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 285
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 285
    functionName: OBJ_NAME_do_all
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c
    functionUses: 2
    functionsReached:
    - lh_OBJ_NAME_doall_OBJ_DOALL
    linkageType: ''
    returnType: void
    signature: "OBJ_NAME_do_all(int type, void (*fn) (const OBJ_NAME *, void *arg),\n
      \                    void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - name
    - d_
    argTypes:
    - OBJ_NAME*
    - void*
    constantsTouched: []
    func_position:
      end: 301
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 301
    functionName: do_all_sorted_fn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: do_all_sorted_fn(const OBJ_NAME *name, void *d_)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - n1_
    - n2_
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 309
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 309
    functionName: do_all_sorted_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: do_all_sorted_cmp(const void *n1_, const void *n2_)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:320,1
    - Dst: lh_OBJ_NAME_num_items
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:320,1
    - Dst: OBJ_NAME_do_all
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:324,1
    - Dst: qsort
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:326,1
    - Dst: fn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:329,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 333
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 333
    functionName: OBJ_NAME_do_all_sorted
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - lh_OBJ_NAME_num_items
    - fn
    - OBJ_NAME_do_all
    - OPENSSL_malloc
    - qsort
    linkageType: ''
    returnType: void
    signature: "OBJ_NAME_do_all_sorted(int type,\n                            void
      (*fn) (const OBJ_NAME *, void *arg),\n                            void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_remove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:343,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - onp
    argTypes:
    - OBJ_NAME*
    constantsTouched: []
    func_position:
      end: 344
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 344
    functionName: names_lh_free_doall
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - OBJ_NAME_remove
    linkageType: ''
    returnType: void
    signature: names_lh_free_doall(OBJ_NAME *onp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - NAME_FUNCS*
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: name_funcs_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: name_funcs_free(NAME_FUNCS *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_OBJ_NAME_get_down_load
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:359,1
    - Dst: lh_OBJ_NAME_set_down_load
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:360,1
    - Dst: lh_OBJ_NAME_doall
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:362,1
    - Dst: lh_OBJ_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:364,1
    - Dst: sk_NAME_FUNCS_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:365,1
    - Dst: lh_OBJ_NAME_set_down_load
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 370
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 370
    functionName: OBJ_NAME_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c
    functionUses: 1
    functionsReached:
    - lh_OBJ_NAME_free
    - lh_OBJ_NAME_doall
    - lh_OBJ_NAME_set_down_load
    - lh_OBJ_NAME_get_down_load
    - sk_NAME_FUNCS_pop_free
    linkageType: ''
    returnType: void
    signature: OBJ_NAME_cleanup(int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_lib.c:27,1
    - Dst: OBJerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_lib.c:29,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_lib.c:39,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_lib.c:45,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_lib.c:48,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_lib.c:53,1
    - Dst: OBJerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_lib.c:54,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 1
    argNames:
    - o
    argTypes:
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 56
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 56
    functionName: OBJ_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_lib.c
    functionUses: 17
    functionsReached:
    - ASN1_OBJECT_new
    - OPENSSL_memdup
    - ASN1_OBJECT_free
    - OPENSSL_strdup
    - OBJerr
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: '*OBJ_dup(const ASN1_OBJECT *o)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_lib.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_OBJECT*
    - ASN1_OBJECT*
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: OBJ_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_lib.c
    functionUses: 16
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_new_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: RSA_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached:
    - RSA_new_method
    linkageType: ''
    returnType: RSA
    signature: '*RSA_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: RSA_set_default_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: RSA_set_default_method(const RSA_METHOD *meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_null_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:36,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 43
    functionName: RSA_get_default_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c
    functionUses: 1
    functionsReached:
    - RSA_null_method
    - RSA_PKCS1_OpenSSL
    linkageType: ''
    returnType: RSA_METHOD
    signature: '*RSA_get_default_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: RSA_get_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RSA_METHOD
    signature: '*RSA_get_method(const RSA *rsa)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_METHOD*::finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:59,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:61,1
    - Dst: RSA_METHOD*::init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - rsa
    - meth
    argTypes:
    - RSA*
    - RSA_METHOD*
    constantsTouched: []
    func_position:
      end: 68
      start: 50
    functionDepth: 5
    functionLinenumber: 50
    functionLinenumberEnd: 68
    functionName: RSA_set_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - RSA_METHOD*::finish
    - RSA_METHOD*::init
    - ENGINE_finish
    linkageType: ''
    returnType: int
    signature: RSA_set_method(RSA *rsa, const RSA_METHOD *meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:72,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:75,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:80,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:82,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:83,1
    - Dst: RSA_get_default_method
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:87,1
    - Dst: ENGINE_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:91,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:92,1
    - Dst: ENGINE_get_default_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:97,1
    - Dst: ENGINE_get_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:99,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:101,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:108,1
    - Dst: RSA*::meth::init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:112,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:113,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:120,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 1
    argNames:
    - engine
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 122
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 122
    functionName: RSA_new_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c
    functionUses: 3
    functionsReached:
    - ENGINE_get_RSA
    - CRYPTO_new_ex_data
    - RSA*::meth::init
    - ENGINE_init
    - ENGINE_get_default_RSA
    - CRYPTO_THREAD_lock_new
    - RSA_get_default_method
    - RSA_free
    - OPENSSL_zalloc
    - OPENSSL_free
    - RSAerr
    linkageType: ''
    returnType: RSA
    signature: '*RSA_new_method(ENGINE *engine)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:131,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:132,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:135,1
    - Dst: RSA*::meth::finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:138,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:140,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:143,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:145,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:147,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:148,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:149,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:150,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:151,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:152,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:153,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:154,1
    - Dst: BN_BLINDING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:155,1
    - Dst: BN_BLINDING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:156,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:157,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    constantsTouched: []
    func_position:
      end: 159
      start: 124
    functionDepth: 5
    functionLinenumber: 124
    functionLinenumberEnd: 159
    functionName: RSA_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c
    functionUses: 8
    functionsReached:
    - BN_clear_free
    - RSA*::meth::finish
    - CRYPTO_THREAD_lock_free
    - BN_BLINDING_free
    - CRYPTO_free_ex_data
    - ENGINE_finish
    - CRYPTO_atomic_add
    - OPENSSL_free
    - REF_ASSERT_ISNT
    - REF_PRINT_COUNT
    linkageType: ''
    returnType: void
    signature: RSA_free(RSA *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:165,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:168,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: RSA_up_ref
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_atomic_add
    linkageType: ''
    returnType: int
    signature: RSA_up_ref(RSA *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - idx
    - arg
    argTypes:
    - RSA*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: RSA_set_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c
    functionUses: 4
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: RSA_set_ex_data(RSA *r, int idx, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - idx
    argTypes:
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: RSA_get_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c
    functionUses: 5
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: '*RSA_get_ex_data(const RSA *r, int idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_security_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:185,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: RSA_security_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    - BN_security_bits
    linkageType: ''
    returnType: int
    signature: RSA_security_bits(const RSA *rsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:199,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:203,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:207,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - r
    - n
    - e
    - d
    argTypes:
    - RSA*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 212
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 212
    functionName: RSA_set0_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: int
    signature: RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:224,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:228,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - r
    - p
    - q
    argTypes:
    - RSA*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 233
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 233
    functionName: RSA_set0_factors
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c
    functionUses: 1
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: int
    signature: RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:246,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:250,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c:254,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 4
    argNames:
    - r
    - dmp1
    - dmq1
    - iqmp
    argTypes:
    - RSA*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 259
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 259
    functionName: RSA_set0_crt_params
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c
    functionUses: 1
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: int
    signature: RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - r
    - n
    - e
    - d
    argTypes:
    - RSA*
    - BIGNUM**
    - BIGNUM**
    - BIGNUM**
    constantsTouched: []
    func_position:
      end: 270
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 270
    functionName: RSA_get0_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "RSA_get0_key(const RSA *r,\n                  const BIGNUM **n, const
      BIGNUM **e, const BIGNUM **d)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - r
    - p
    - q
    argTypes:
    - RSA*
    - BIGNUM**
    - BIGNUM**
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: RSA_get0_factors
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - r
    - dmp1
    - dmq1
    - iqmp
    argTypes:
    - RSA*
    - BIGNUM**
    - BIGNUM**
    - BIGNUM**
    constantsTouched: []
    func_position:
      end: 290
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 290
    functionName: RSA_get0_crt_params
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "RSA_get0_crt_params(const RSA *r,\n                         const
      BIGNUM **dmp1, const BIGNUM **dmq1,\n                         const BIGNUM **iqmp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - flags
    argTypes:
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: RSA_clear_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: RSA_clear_flags(RSA *r, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - flags
    argTypes:
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: RSA_test_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: RSA_test_flags(const RSA *r, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - flags
    argTypes:
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: RSA_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: RSA_set_flags(RSA *r, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    constantsTouched: []
    func_position:
      end: 310
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 310
    functionName: RSA_get0_engine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ENGINE
    signature: '*RSA_get0_engine(const RSA *r)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:42,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:44,1
    - Dst: OBJ_length
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:47,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:48,1
    - Dst: i2d_X509_SIG
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 5
    argNames:
    - out
    - out_len
    - type
    - m
    - m_len
    argTypes:
    - unsigned char**
    - int*
    - int
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 67
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 67
    functionName: encode_pkcs1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c
    functionUses: 0
    functionsReached:
    - RSAerr
    - OBJ_length
    - OBJ_nid2obj
    - i2d_X509_SIG
    linkageType: ''
    returnType: int
    signature: "encode_pkcs1(unsigned char **out, int *out_len, int type,\n                        const
      unsigned char *m, unsigned int m_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA*::meth::rsa_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:77,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:88,1
    - Dst: encode_pkcs1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:94,1
    - Dst: RSA_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:99,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:100,1
    - Dst: RSA_private_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:103,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:112,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 6
    argNames:
    - type
    - m
    - m_len
    - sigret
    - siglen
    - rsa
    argTypes:
    - int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    - RSA*
    constantsTouched: []
    func_position:
      end: 114
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 114
    functionName: RSA_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c
    functionUses: 1
    functionsReached:
    - RSA*::meth::rsa_sign
    - RSA_size
    - encode_pkcs1
    - OPENSSL_clear_free
    - RSA_private_encrypt
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "RSA_sign(int type, const unsigned char *m, unsigned int m_len,\n             unsigned
      char *sigret, unsigned int *siglen, RSA *rsa)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:131,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:132,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:137,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:139,1
    - Dst: RSA_public_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:143,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:155,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:160,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:164,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:168,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:169,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:180,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:184,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:188,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:189,1
    - Dst: EVP_get_digestbynid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:200,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:202,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:206,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:208,1
    - Dst: encode_pkcs1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:215,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:219,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:220,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:226,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:234,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:235,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 87
    argCount: 8
    argNames:
    - type
    - m
    - m_len
    - rm
    - prm_len
    - sigbuf
    - siglen
    - rsa
    argTypes:
    - int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    - RSA*
    constantsTouched: []
    func_position:
      end: 237
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 237
    functionName: int_rsa_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c
    functionUses: 0
    functionsReached:
    - memcmp
    - RSA_size
    - encode_pkcs1
    - EVP_MD_size
    - OPENSSL_clear_free
    - EVP_get_digestbynid
    - RSA_public_decrypt
    - memcpy
    - RSAerr
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "int_rsa_verify(int type, const unsigned char *m, unsigned int m_len,\n
      \                  unsigned char *rm, size_t *prm_len,\n                   const
      unsigned char *sigbuf, size_t siglen, RSA *rsa)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA*::meth::rsa_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:244,1
    - Dst: int_rsa_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - type
    - m
    - m_len
    - sigbuf
    - siglen
    - rsa
    argTypes:
    - int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - RSA*
    constantsTouched: []
    func_position:
      end: 248
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 248
    functionName: RSA_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c
    functionUses: 1
    functionsReached:
    - int_rsa_verify
    - RSA*::meth::rsa_verify
    linkageType: ''
    returnType: int
    signature: "RSA_verify(int type, const unsigned char *m, unsigned int m_len,\n
      \              const unsigned char *sigbuf, unsigned int siglen, RSA *rsa)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931.c:30,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931.c:42,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - to
    - tlen
    - from
    - flen
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 51
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 51
    functionName: RSA_padding_add_X931
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931.c
    functionUses: 0
    functionsReached:
    - memcpy
    - RSAerr
    - memset
    linkageType: ''
    returnType: int
    signature: "RSA_padding_add_X931(unsigned char *to, int tlen,\n                         const
      unsigned char *from, int flen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931.c:61,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931.c:72,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931.c:80,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931.c:88,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931.c:92,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 5
    argNames:
    - to
    - tlen
    - from
    - flen
    - num
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 95
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 95
    functionName: RSA_padding_check_X931
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931.c
    functionUses: 0
    functionsReached:
    - memcpy
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "RSA_padding_check_X931(unsigned char *to, int tlen,\n                           const
      unsigned char *from, int flen, int num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 116
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 116
    functionName: RSA_X931_hash_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: RSA_X931_hash_id(int nid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c:16,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c:21,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c:25,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - name
    - flags
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 30
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 30
    functionName: RSA_meth_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - RSAerr
    - OPENSSL_strdup
    - OPENSSL_zalloc
    linkageType: ''
    returnType: RSA_METHOD
    signature: '*RSA_meth_new(const char *name, int flags)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c:35,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: RSA_meth_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 4
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: RSA_meth_free(RSA_METHOD *meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c:42,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c:45,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c:47,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c:51,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    constantsTouched: []
    func_position:
      end: 56
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 56
    functionName: RSA_meth_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - memcpy
    - OPENSSL_strdup
    - OPENSSL_free
    - RSAerr
    linkageType: ''
    returnType: RSA_METHOD
    signature: '*RSA_meth_dup(const RSA_METHOD *meth)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: RSA_meth_get0_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*RSA_meth_get0_name(const RSA_METHOD *meth)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c:68,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - meth
    - name
    argTypes:
    - RSA_METHOD*
    - char*
    constantsTouched: []
    func_position:
      end: 76
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 76
    functionName: RSA_meth_set1_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - RSAerr
    linkageType: ''
    returnType: int
    signature: RSA_meth_set1_name(RSA_METHOD *meth, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: RSA_meth_get_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: RSA_meth_get_flags(RSA_METHOD *meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - meth
    - flags
    argTypes:
    - RSA_METHOD*
    - int
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: RSA_meth_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: RSA_meth_set_flags(RSA_METHOD *meth, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: RSA_meth_get0_app_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*RSA_meth_get0_app_data(const RSA_METHOD *meth)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - meth
    - app_data
    argTypes:
    - RSA_METHOD*
    - void*
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: RSA_meth_set0_app_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: RSA_meth_set0_app_data(RSA_METHOD *meth, void *app_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: "(*RSA_meth_get_pub_enc(const RSA_METHOD *meth))\n    (int flen,
      const unsigned char *from,\n     unsigned char *to, RSA *rsa, int padding)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*RSA_meth_get_pub_enc(const RSA_METHOD *meth))\n    (int flen, const
      unsigned char *from,\n     unsigned char *to, RSA *rsa, int padding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    constantsTouched: []
    func_position:
      end: 114
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 114
    functionName: RSA_meth_set_pub_enc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "RSA_meth_set_pub_enc(RSA_METHOD *meth,\n                         int
      (*pub_enc) (int flen, const unsigned char *from,\n                                         unsigned
      char *to, RSA *rsa,\n                                         int padding))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: "(*RSA_meth_get_pub_dec(const RSA_METHOD *meth))\n    (int flen,
      const unsigned char *from,\n     unsigned char *to, RSA *rsa, int padding)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*RSA_meth_get_pub_dec(const RSA_METHOD *meth))\n    (int flen, const
      unsigned char *from,\n     unsigned char *to, RSA *rsa, int padding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: RSA_meth_set_pub_dec
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "RSA_meth_set_pub_dec(RSA_METHOD *meth,\n                         int
      (*pub_dec) (int flen, const unsigned char *from,\n                                         unsigned
      char *to, RSA *rsa,\n                                         int padding))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: "(*RSA_meth_get_priv_enc(const RSA_METHOD *meth))\n    (int flen,
      const unsigned char *from,\n     unsigned char *to, RSA *rsa, int padding)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*RSA_meth_get_priv_enc(const RSA_METHOD *meth))\n    (int flen, const
      unsigned char *from,\n     unsigned char *to, RSA *rsa, int padding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: RSA_meth_set_priv_enc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "RSA_meth_set_priv_enc(RSA_METHOD *meth,\n                          int
      (*priv_enc) (int flen, const unsigned char *from,\n                                           unsigned
      char *to, RSA *rsa,\n                                           int padding))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 153
    functionName: "(*RSA_meth_get_priv_dec(const RSA_METHOD *meth))\n    (int flen,
      const unsigned char *from,\n     unsigned char *to, RSA *rsa, int padding)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*RSA_meth_get_priv_dec(const RSA_METHOD *meth))\n    (int flen, const
      unsigned char *from,\n     unsigned char *to, RSA *rsa, int padding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 162
    functionName: RSA_meth_set_priv_dec
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "RSA_meth_set_priv_dec(RSA_METHOD *meth,\n                          int
      (*priv_dec) (int flen, const unsigned char *from,\n                                           unsigned
      char *to, RSA *rsa,\n                                           int padding))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r0
    - I
    - rsa
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - RSA*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: "(*RSA_meth_get_mod_exp(const RSA_METHOD *meth))\n    (BIGNUM *r0,
      const BIGNUM *I, RSA *rsa, BN_CTX *ctx)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*RSA_meth_get_mod_exp(const RSA_METHOD *meth))\n    (BIGNUM *r0,
      const BIGNUM *I, RSA *rsa, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: RSA_meth_set_mod_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "RSA_meth_set_mod_exp(RSA_METHOD *meth,\n                         int
      (*mod_exp) (BIGNUM *r0, const BIGNUM *I, RSA *rsa,\n                                         BN_CTX
      *ctx))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - r
    - a
    - p
    - m
    - ctx
    - m_ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: "(*RSA_meth_get_bn_mod_exp(const RSA_METHOD *meth))\n    (BIGNUM
      *r, const BIGNUM *a, const BIGNUM *p,\n     const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX
      *m_ctx)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*RSA_meth_get_bn_mod_exp(const RSA_METHOD *meth))\n    (BIGNUM *r,
      const BIGNUM *a, const BIGNUM *p,\n     const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX
      *m_ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    constantsTouched: []
    func_position:
      end: 197
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 197
    functionName: RSA_meth_set_bn_mod_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "RSA_meth_set_bn_mod_exp(RSA_METHOD *meth,\n                            int
      (*bn_mod_exp) (BIGNUM *r,\n                                               const
      BIGNUM *a,\n                                               const BIGNUM *p,\n
      \                                              const BIGNUM *m,\n                                               BN_CTX
      *ctx,\n                                               BN_MONT_CTX *m_ctx))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: (*RSA_meth_get_init(const RSA_METHOD *meth)) (RSA *rsa)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*RSA_meth_get_init(const RSA_METHOD *meth)) (RSA *rsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: RSA_meth_set_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: RSA_meth_set_init(RSA_METHOD *meth, int (*init) (RSA *rsa))
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: (*RSA_meth_get_finish(const RSA_METHOD *meth)) (RSA *rsa)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*RSA_meth_get_finish(const RSA_METHOD *meth)) (RSA *rsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: RSA_meth_set_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: RSA_meth_set_finish(RSA_METHOD *meth, int (*finish) (RSA *rsa))
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - type
    - m
    - m_length
    - sigret
    - siglen
    - rsa
    argTypes:
    - int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    - RSA*
    constantsTouched: []
    func_position:
      end: 230
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 230
    functionName: "(*RSA_meth_get_sign(const RSA_METHOD *meth))\n    (int type,\n
      \    const unsigned char *m, unsigned int m_length,\n     unsigned char *sigret,
      unsigned int *siglen,\n     const RSA *rsa)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*RSA_meth_get_sign(const RSA_METHOD *meth))\n    (int type,\n     const
      unsigned char *m, unsigned int m_length,\n     unsigned char *sigret, unsigned
      int *siglen,\n     const RSA *rsa)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    constantsTouched: []
    func_position:
      end: 240
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 240
    functionName: RSA_meth_set_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "RSA_meth_set_sign(RSA_METHOD *meth,\n                      int (*sign)
      (int type, const unsigned char *m,\n                                   unsigned
      int m_length,\n                                   unsigned char *sigret, unsigned
      int *siglen,\n                                   const RSA *rsa))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - dtype
    - m
    - m_length
    - sigbuf
    - siglen
    - rsa
    argTypes:
    - int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - RSA*
    constantsTouched: []
    func_position:
      end: 248
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 248
    functionName: "(*RSA_meth_get_verify(const RSA_METHOD *meth))\n    (int dtype,
      const unsigned char *m,\n     unsigned int m_length, const unsigned char *sigbuf,\n
      \    unsigned int siglen, const RSA *rsa)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*RSA_meth_get_verify(const RSA_METHOD *meth))\n    (int dtype, const
      unsigned char *m,\n     unsigned int m_length, const unsigned char *sigbuf,\n
      \    unsigned int siglen, const RSA *rsa)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    constantsTouched: []
    func_position:
      end: 258
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 258
    functionName: RSA_meth_set_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "RSA_meth_set_verify(RSA_METHOD *meth,\n                        int
      (*verify) (int dtype, const unsigned char *m,\n                                       unsigned
      int m_length,\n                                       const unsigned char *sigbuf,\n
      \                                      unsigned int siglen, const RSA *rsa))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - rsa
    - bits
    - e
    - cb
    argTypes:
    - RSA*
    - int
    - BIGNUM*
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: "(*RSA_meth_get_keygen(const RSA_METHOD *meth))\n    (RSA *rsa,
      int bits, BIGNUM *e, BN_GENCB *cb)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*RSA_meth_get_keygen(const RSA_METHOD *meth))\n    (RSA *rsa, int
      bits, BIGNUM *e, BN_GENCB *cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    constantsTouched: []
    func_position:
      end: 272
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 272
    functionName: RSA_meth_set_keygen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "RSA_meth_set_keygen(RSA_METHOD *meth,\n                        int
      (*keygen) (RSA *rsa, int bits, BIGNUM *e,\n                                       BN_GENCB
      *cb))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: RSA_PKCS1_OpenSSL
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: RSA_METHOD
    signature: '*RSA_PKCS1_OpenSSL(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:59,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:60,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:64,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:65,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:70,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:71,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:72,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:77,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:79,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:80,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:81,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:82,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:83,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:85,1
    - Dst: RSA_padding_add_PKCS1_type_2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:91,1
    - Dst: RSA_padding_add_PKCS1_OAEP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:94,1
    - Dst: RSA_padding_add_SSLv23
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:97,1
    - Dst: RSA_padding_add_none
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:100,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:103,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:109,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:112,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:114,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:120,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:124,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:132,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:133,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:140,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:141,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:142,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 76
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 144
      start: 51
    functionDepth: 6
    functionLinenumber: 51
    functionLinenumberEnd: 144
    functionName: rsa_ossl_public_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - BN_CTX_get
    - BN_ucmp
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_new
    - RSAerr
    - RSA_padding_add_PKCS1_OAEP
    - RSA_padding_add_SSLv23
    - OPENSSL_clear_free
    - RSA*::meth::bn_mod_exp
    - BN_MONT_CTX_set_locked
    - RSA_padding_add_PKCS1_type_2
    - RSA_padding_add_none
    - BN_CTX_free
    - BN_num_bits
    - BN_bn2bin
    - OPENSSL_malloc
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: "rsa_ossl_public_encrypt(int flen, const unsigned char *from,\n                                  unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:150,1
    - Dst: RSA_setup_blinding
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:153,1
    - Dst: BN_BLINDING_is_current_thread
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:160,1
    - Dst: RSA_setup_blinding
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:175,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:181,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - rsa
    - local
    - ctx
    argTypes:
    - RSA*
    - int*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 183
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 183
    functionName: rsa_get_blinding
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_unlock
    - BN_BLINDING_is_current_thread
    - CRYPTO_THREAD_write_lock
    - RSA_setup_blinding
    linkageType: ''
    returnType: BN_BLINDING
    signature: '*rsa_get_blinding(RSA *rsa, int *local, BN_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_BLINDING_convert_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:192,1
    - Dst: BN_BLINDING_lock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:199,1
    - Dst: BN_BLINDING_convert_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:200,1
    - Dst: BN_BLINDING_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - b
    - f
    - unblind
    - ctx
    argTypes:
    - BN_BLINDING*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 205
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 205
    functionName: rsa_blinding_convert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_BLINDING_convert_ex
    - BN_BLINDING_lock
    - BN_BLINDING_unlock
    linkageType: ''
    returnType: int
    signature: "rsa_blinding_convert(BN_BLINDING *b, BIGNUM *f, BIGNUM *unblind,\n
      \                               BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_BLINDING_invert_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - b
    - f
    - unblind
    - ctx
    argTypes:
    - BN_BLINDING*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 219
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 219
    functionName: rsa_blinding_invert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_BLINDING_invert_ex
    linkageType: ''
    returnType: int
    signature: "rsa_blinding_invert(BN_BLINDING *b, BIGNUM *f, BIGNUM *unblind,\n
      \                              BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:238,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:240,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:241,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:242,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:243,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:244,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:246,1
    - Dst: RSA_padding_add_PKCS1_type_1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:252,1
    - Dst: RSA_padding_add_X931
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:255,1
    - Dst: RSA_padding_add_none
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:258,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:262,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:268,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:271,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:273,1
    - Dst: rsa_get_blinding
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:279,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:281,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:287,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:288,1
    - Dst: rsa_blinding_convert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:291,1
    - Dst: RSA*::meth::rsa_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:299,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:302,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:304,1
    - Dst: BN_with_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:307,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:310,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:312,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:316,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:318,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:322,1
    - Dst: rsa_blinding_invert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:326,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:330,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:331,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:342,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:343,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:350,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:351,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:352,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 106
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 354
      start: 222
    functionDepth: 6
    functionLinenumber: 222
    functionLinenumberEnd: 354
    functionName: rsa_ossl_private_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - rsa_blinding_convert
    - BN_bin2bn
    - BN_sub
    - rsa_blinding_invert
    - BN_CTX_get
    - BN_ucmp
    - BN_free
    - OPENSSL_malloc
    - BN_cmp
    - BN_CTX_end
    - BN_CTX_start
    - RSA_padding_add_X931
    - BN_CTX_new
    - RSA_padding_add_PKCS1_type_1
    - RSA*::meth::rsa_mod_exp
    - BN_new
    - BN_with_flags
    - rsa_get_blinding
    - RSA*::meth::bn_mod_exp
    - OPENSSL_clear_free
    - BN_MONT_CTX_set_locked
    - RSA_padding_add_none
    - BN_CTX_free
    - BN_bn2bin
    - RSAerr
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: "rsa_ossl_private_encrypt(int flen, const unsigned char *from,\n                                   unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:373,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:375,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:376,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:377,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:378,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:379,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:381,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:390,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:396,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:399,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:400,1
    - Dst: rsa_get_blinding
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:406,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:408,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:414,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:415,1
    - Dst: rsa_blinding_convert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:418,1
    - Dst: RSA*::meth::rsa_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:427,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:430,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:432,1
    - Dst: BN_with_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:435,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:438,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:440,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:443,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:445,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:449,1
    - Dst: rsa_blinding_invert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:453,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:457,1
    - Dst: RSA_padding_check_PKCS1_type_2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:461,1
    - Dst: RSA_padding_check_PKCS1_OAEP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:464,1
    - Dst: RSA_padding_check_SSLv23
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:467,1
    - Dst: RSA_padding_check_none
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:470,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:473,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:477,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:481,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:482,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:483,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 102
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 485
      start: 356
    functionDepth: 6
    functionLinenumber: 356
    functionLinenumberEnd: 485
    functionName: rsa_ossl_private_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - rsa_blinding_convert
    - BN_bin2bn
    - rsa_blinding_invert
    - RSA_padding_check_SSLv23
    - BN_CTX_get
    - BN_ucmp
    - BN_free
    - OPENSSL_malloc
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_new
    - RSA_padding_check_PKCS1_type_2
    - RSA*::meth::rsa_mod_exp
    - BN_new
    - BN_with_flags
    - rsa_get_blinding
    - RSA_padding_check_PKCS1_OAEP
    - RSA*::meth::bn_mod_exp
    - OPENSSL_clear_free
    - BN_MONT_CTX_set_locked
    - BN_CTX_free
    - RSA_padding_check_none
    - BN_bn2bin
    - RSAerr
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: "rsa_ossl_private_decrypt(int flen, const unsigned char *from,\n                                   unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:497,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:498,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:502,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:503,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:508,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:509,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:510,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:515,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:517,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:518,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:519,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:520,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:521,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:523,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:532,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:536,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:539,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:540,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:546,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:550,1
    - Dst: bn_get_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:554,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:555,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:559,1
    - Dst: RSA_padding_check_PKCS1_type_1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:563,1
    - Dst: RSA_padding_check_X931
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:566,1
    - Dst: RSA_padding_check_none
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:569,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:572,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:576,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:580,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:581,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:582,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 78
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 584
      start: 488
    functionDepth: 6
    functionLinenumber: 488
    functionLinenumberEnd: 584
    functionName: rsa_ossl_public_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - BN_sub
    - BN_CTX_get
    - BN_ucmp
    - RSA_padding_check_PKCS1_type_1
    - RSA_padding_check_X931
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_new
    - RSAerr
    - bn_get_words
    - RSA*::meth::bn_mod_exp
    - OPENSSL_clear_free
    - BN_MONT_CTX_set_locked
    - BN_CTX_free
    - BN_num_bits
    - RSA_padding_check_none
    - BN_bn2bin
    - OPENSSL_malloc
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: "rsa_ossl_public_decrypt(int flen, const unsigned char *from,\n                                  unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:591,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:593,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:594,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:595,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:598,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:598,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:605,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:606,1
    - Dst: BN_with_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:609,1
    - Dst: BN_with_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:610,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:613,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:615,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:617,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:618,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:625,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:626,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:630,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:636,1
    - Dst: BN_with_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:639,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:641,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:642,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:647,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:649,1
    - Dst: BN_with_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:652,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:655,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:657,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:658,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:662,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:666,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:667,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:671,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:675,1
    - Dst: BN_with_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:678,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:681,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:683,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:687,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:690,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:696,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:697,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:700,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:704,1
    - Dst: BN_with_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:707,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:709,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:710,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:714,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:724,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:725,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:727,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:729,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:733,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:742,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:744,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:746,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:747,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:749,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:756,1
    - Dst: BN_with_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:759,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:761,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:763,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:767,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:772,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 132
    argCount: 4
    argNames:
    - r0
    - I
    - rsa
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - RSA*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 774
      start: 586
    functionDepth: 6
    functionLinenumber: 586
    functionLinenumberEnd: 774
    functionName: rsa_ossl_mod_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_free
    - BN_with_flags
    - BN_sub
    - BN_mul
    - BN_is_zero
    - BN_mod
    - BN_add
    - BN_is_negative
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_get
    - RSA*::meth::bn_mod_exp
    - BN_MONT_CTX_set_locked
    linkageType: ''
    returnType: int
    signature: rsa_ossl_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    constantsTouched: []
    func_position:
      end: 780
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 780
    functionName: rsa_ossl_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: rsa_ossl_init(RSA *rsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:784,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:785,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    constantsTouched: []
    func_position:
      end: 788
      start: 782
    functionDepth: 4
    functionLinenumber: 782
    functionLinenumberEnd: 788
    functionName: rsa_ossl_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_MONT_CTX_free
    linkageType: ''
    returnType: int
    signature: rsa_ossl_finish(RSA *rsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_depr.c:31,1
    - Dst: RSA_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_depr.c:32,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_depr.c:33,1
    - Dst: BN_set_bit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_depr.c:44,1
    - Dst: BN_GENCB_set_old
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_depr.c:48,1
    - Dst: RSA_generate_key_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_depr.c:50,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_depr.c:51,1
    - Dst: BN_GENCB_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_depr.c:52,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_depr.c:56,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_depr.c:57,1
    - Dst: BN_GENCB_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_depr.c:58,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - bits
    - e_value
    - cb_arg
    argTypes:
    - int
    - unsigned long
    - void*
    constantsTouched: []
    func_position:
      end: 60
      start: 27
    functionDepth: 6
    functionLinenumber: 27
    functionLinenumberEnd: 60
    functionName: RSA_generate_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_depr.c
    functionUses: 0
    functionsReached:
    - BN_new
    - RSA_generate_key_ex
    - BN_GENCB_set_old
    - BN_free
    - BN_GENCB_new
    - BN_GENCB_free
    - RSA_new
    - RSA_free
    - BN_set_bit
    linkageType: ''
    returnType: RSA
    signature: "*RSA_generate_key(int bits, unsigned long e_value,\n                      void
      (*callback) (int, int, void *), void *cb_arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:25,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:37,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - to
    - tlen
    - from
    - flen
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 42
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 42
    functionName: RSA_padding_add_PKCS1_type_1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c
    functionUses: 1
    functionsReached:
    - memcpy
    - RSAerr
    - memset
    linkageType: ''
    returnType: int
    signature: "RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen,\n                                 const
      unsigned char *from, int flen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:66,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:74,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:87,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:96,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:102,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:109,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:112,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 5
    argNames:
    - to
    - tlen
    - from
    - flen
    - num
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 115
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 115
    functionName: RSA_padding_check_PKCS1_type_1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c
    functionUses: 1
    functionsReached:
    - memcpy
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen,\n                                   const
      unsigned char *from, int flen,\n                                   int num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:124,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:137,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:142,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - to
    - tlen
    - from
    - flen
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 152
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 152
    functionName: RSA_padding_add_PKCS1_type_2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c
    functionUses: 1
    functionsReached:
    - RAND_bytes
    - memcpy
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen,\n                                 const
      unsigned char *from, int flen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:178,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:180,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:191,1
    - Dst: constant_time_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:193,1
    - Dst: constant_time_eq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:194,1
    - Dst: constant_time_select_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:200,1
    - Dst: constant_time_ge
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:210,1
    - Dst: constant_time_ge
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:223,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:237,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:240,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c:242,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 5
    argNames:
    - to
    - tlen
    - from
    - flen
    - num
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 245
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 245
    functionName: RSA_padding_check_PKCS1_type_2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c
    functionUses: 1
    functionsReached:
    - constant_time_eq
    - constant_time_is_zero
    - constant_time_ge
    - constant_time_select_int
    - memcpy
    - OPENSSL_zalloc
    - OPENSSL_free
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen,\n                                   const
      unsigned char *from, int flen,\n                                   int num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: RSA_null_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_null.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: RSA_METHOD
    signature: '*RSA_null_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_null.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: RSA_null_public_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_null.c
    functionUses: 0
    functionsReached:
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "RSA_null_public_encrypt(int flen, const unsigned char *from,\n                                   unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_null.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: RSA_null_private_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_null.c
    functionUses: 0
    functionsReached:
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "RSA_null_private_encrypt(int flen, const unsigned char *from,\n                                    unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_null.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: RSA_null_private_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_null.c
    functionUses: 0
    functionsReached:
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "RSA_null_private_decrypt(int flen, const unsigned char *from,\n                                    unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_null.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: RSA_null_public_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_null.c
    functionUses: 0
    functionsReached:
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "RSA_null_public_decrypt(int flen, const unsigned char *from,\n                                   unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: RSA_null_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: RSA_null_init(RSA *rsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: RSA_null_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: RSA_null_finish(RSA *rsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_prn.c:21,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_prn.c:21,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_prn.c:22,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_prn.c:25,1
    - Dst: RSA_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_prn.c:26,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_prn.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fp
    - x
    - 'off'
    argTypes:
    - FILE*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 29
      start: 16
    functionDepth: 4
    functionLinenumber: 16
    functionLinenumberEnd: 29
    functionName: RSA_print_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_prn.c
    functionUses: 0
    functionsReached:
    - BIO_s_file
    - BIO_free
    - BIO_set_fp
    - BIO_new
    - RSAerr
    - RSA_print
    linkageType: ''
    returnType: int
    signature: RSA_print_fp(FILE *fp, const RSA *x, int off)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_prn.c:36,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_prn.c:37,1
    - Dst: EVP_PKEY_print_private
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_prn.c:39,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_prn.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - bp
    - x
    - 'off'
    argTypes:
    - BIO*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 42
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 42
    functionName: RSA_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_prn.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_new
    - EVP_PKEY_free
    - EVP_PKEY_print_private
    - EVP_PKEY_set1_RSA
    linkageType: ''
    returnType: int
    signature: RSA_print(BIO *bp, const RSA *x, int off)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_padding_add_PKCS1_OAEP_mgf1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - to
    - tlen
    - from
    - flen
    - param
    - plen
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: RSA_padding_add_PKCS1_OAEP
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c
    functionUses: 1
    functionsReached:
    - RSA_padding_add_PKCS1_OAEP_mgf1
    linkageType: ''
    returnType: int
    signature: "RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen,\n                               const
      unsigned char *from, int flen,\n                               const unsigned
      char *param, int plen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:52,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:56,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:59,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:65,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:74,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:76,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:78,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:79,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:82,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:87,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:89,1
    - Dst: PKCS1_MGF1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:93,1
    - Dst: PKCS1_MGF1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:98,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:103,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:107,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 8
    argNames:
    - to
    - tlen
    - from
    - flen
    - param
    - plen
    - md
    - mgf1md
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - unsigned char*
    - int
    - EVP_MD*
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 109
      start: 41
    functionDepth: 5
    functionLinenumber: 41
    functionLinenumberEnd: 109
    functionName: RSA_padding_add_PKCS1_OAEP_mgf1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c
    functionUses: 1
    functionsReached:
    - EVP_Digest
    - RAND_bytes
    - EVP_sha1
    - OPENSSL_malloc
    - EVP_MD_size
    - memset
    - PKCS1_MGF1
    - memcpy
    - OPENSSL_free
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "RSA_padding_add_PKCS1_OAEP_mgf1(unsigned char *to, int tlen,\n                                    const
      unsigned char *from, int flen,\n                                    const unsigned
      char *param, int plen,\n                                    const EVP_MD *md,
      const EVP_MD *mgf1md)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_padding_check_PKCS1_OAEP_mgf1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - to
    - tlen
    - from
    - flen
    - num
    - param
    - plen
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: RSA_padding_check_PKCS1_OAEP
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c
    functionUses: 1
    functionsReached:
    - RSA_padding_check_PKCS1_OAEP_mgf1
    linkageType: ''
    returnType: int
    signature: "RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen,\n                                 const
      unsigned char *from, int flen, int num,\n                                 const
      unsigned char *param, int plen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:137,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:141,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:157,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:158,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:160,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:172,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:173,1
    - Dst: constant_time_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:180,1
    - Dst: PKCS1_MGF1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:185,1
    - Dst: PKCS1_MGF1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:190,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:195,1
    - Dst: constant_time_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:198,1
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:198,1
    - Dst: constant_time_select_int
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:207,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:227,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:230,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:239,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:242,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:243,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 66
    argCount: 9
    argNames:
    - to
    - tlen
    - from
    - flen
    - num
    - param
    - plen
    - md
    - mgf1md
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - int
    - unsigned char*
    - int
    - EVP_MD*
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 245
      start: 119
    functionDepth: 5
    functionLinenumber: 119
    functionLinenumberEnd: 245
    functionName: RSA_padding_check_PKCS1_OAEP_mgf1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c
    functionUses: 1
    functionsReached:
    - EVP_Digest
    - EVP_sha1
    - constant_time_is_zero
    - EVP_MD_size
    - CRYPTO_memcmp
    - memset
    - PKCS1_MGF1
    - constant_time_select_int
    - memcpy
    - RSAerr
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen,\n                                      const
      unsigned char *from, int flen,\n                                      int num,
      const unsigned char *param,\n                                      int plen,
      const EVP_MD *md,\n                                      const EVP_MD *mgf1md)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:252,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:259,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:267,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:268,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:269,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:272,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:276,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:278,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c:284,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 5
    argNames:
    - mask
    - len
    - seed
    - seedlen
    - dgst
    argTypes:
    - unsigned char*
    - long
    - unsigned char*
    - long
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 286
      start: 247
    functionDepth: 4
    functionLinenumber: 247
    functionLinenumberEnd: 286
    functionName: PKCS1_MGF1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c
    functionUses: 2
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_size
    - EVP_DigestUpdate
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - memcpy
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: "PKCS1_MGF1(unsigned char *mask, long len,\n               const unsigned
      char *seed, long seedlen, const EVP_MD *dgst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_verify_PKCS1_PSS_mgf1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - rsa
    - mHash
    - Hash
    - EM
    - sLen
    argTypes:
    - RSA*
    - unsigned char*
    - EVP_MD*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: RSA_verify_PKCS1_PSS
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c
    functionUses: 0
    functionsReached:
    - RSA_verify_PKCS1_PSS_mgf1
    linkageType: ''
    returnType: int
    signature: "RSA_verify_PKCS1_PSS(RSA *rsa, const unsigned char *mHash,\n                         const
      EVP_MD *Hash, const unsigned char *EM,\n                         int sLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:41,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:51,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:65,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:69,1
    - Dst: RSA_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:70,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:72,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:80,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:84,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:89,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:91,1
    - Dst: PKCS1_MGF1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:94,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:102,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:106,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:109,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:110,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:111,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:114,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:117,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:119,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:120,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:126,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:127,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 88
    argCount: 6
    argNames:
    - rsa
    - mHash
    - Hash
    - mgf1Hash
    - EM
    - sLen
    argTypes:
    - RSA*
    - unsigned char*
    - EVP_MD*
    - EVP_MD*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 131
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 131
    functionName: RSA_verify_PKCS1_PSS_mgf1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c
    functionUses: 1
    functionsReached:
    - EVP_DigestFinal_ex
    - memcmp
    - RSA_size
    - OPENSSL_malloc
    - EVP_MD_size
    - EVP_DigestUpdate
    - EVP_MD_CTX_new
    - PKCS1_MGF1
    - BN_num_bits
    - EVP_MD_CTX_free
    - OPENSSL_free
    - RSAerr
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: "RSA_verify_PKCS1_PSS_mgf1(RSA *rsa, const unsigned char *mHash,\n
      \                             const EVP_MD *Hash, const EVP_MD *mgf1Hash,\n
      \                             const unsigned char *EM, int sLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_padding_add_PKCS1_PSS_mgf1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - rsa
    - EM
    - mHash
    - Hash
    - sLen
    argTypes:
    - RSA*
    - unsigned char*
    - unsigned char*
    - EVP_MD*
    - int
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: RSA_padding_add_PKCS1_PSS
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c
    functionUses: 0
    functionsReached:
    - RSA_padding_add_PKCS1_PSS_mgf1
    linkageType: ''
    returnType: int
    signature: "RSA_padding_add_PKCS1_PSS(RSA *rsa, unsigned char *EM,\n                              const
      unsigned char *mHash,\n                              const EVP_MD *Hash, int
      sLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:154,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:168,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:172,1
    - Dst: RSA_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:173,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:181,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:186,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:188,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:192,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:197,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:200,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:201,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:202,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:204,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:206,1
    - Dst: PKCS1_MGF1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:210,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:235,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c:236,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 75
    argCount: 6
    argNames:
    - rsa
    - EM
    - mHash
    - Hash
    - mgf1Hash
    - sLen
    argTypes:
    - RSA*
    - unsigned char*
    - unsigned char*
    - EVP_MD*
    - EVP_MD*
    - int
    constantsTouched: []
    func_position:
      end: 240
      start: 140
    functionDepth: 5
    functionLinenumber: 140
    functionLinenumberEnd: 240
    functionName: RSA_padding_add_PKCS1_PSS_mgf1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c
    functionUses: 1
    functionsReached:
    - RAND_bytes
    - EVP_DigestFinal_ex
    - RSA_size
    - EVP_MD_size
    - EVP_DigestUpdate
    - EVP_MD_CTX_new
    - PKCS1_MGF1
    - BN_num_bits
    - EVP_MD_CTX_free
    - RSAerr
    - OPENSSL_free
    - OPENSSL_malloc
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: "RSA_padding_add_PKCS1_PSS_mgf1(RSA *rsa, unsigned char *EM,\n                                   const
      unsigned char *mHash,\n                                   const EVP_MD *Hash,
      const EVP_MD *mgf1Hash,\n                                   int sLen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ssl.c:23,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ssl.c:36,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ssl.c:41,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ssl.c:47,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ssl.c:51,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - to
    - tlen
    - from
    - flen
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 53
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 53
    functionName: RSA_padding_add_SSLv23
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ssl.c
    functionUses: 1
    functionsReached:
    - RAND_bytes
    - memcpy
    - RSAerr
    - memset
    linkageType: ''
    returnType: int
    signature: "RSA_padding_add_SSLv23(unsigned char *to, int tlen,\n                           const
      unsigned char *from, int flen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ssl.c:63,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ssl.c:67,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ssl.c:78,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ssl.c:87,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ssl.c:94,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ssl.c:97,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 5
    argNames:
    - to
    - tlen
    - from
    - flen
    - num
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 100
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 100
    functionName: RSA_padding_check_SSLv23
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ssl.c
    functionUses: 1
    functionsReached:
    - memcpy
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "RSA_padding_check_SSLv23(unsigned char *to, int tlen,\n                             const
      unsigned char *from, int flen, int num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA*::meth::rsa_keygen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:35,1
    - Dst: rsa_builtin_keygen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - rsa
    - bits
    - e_value
    - cb
    argTypes:
    - RSA*
    - int
    - BIGNUM*
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: RSA_generate_key_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c
    functionUses: 1
    functionsReached:
    - RSA*::meth::rsa_keygen
    - rsa_builtin_keygen
    linkageType: ''
    returnType: int
    signature: RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e_value, BN_GENCB *cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:46,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:49,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:50,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:51,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:52,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:53,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:61,1
    - Dst: BN_secure_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:63,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:65,1
    - Dst: BN_secure_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:67,1
    - Dst: BN_secure_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:69,1
    - Dst: BN_secure_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:71,1
    - Dst: BN_secure_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:73,1
    - Dst: BN_secure_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:75,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:78,1
    - Dst: BN_generate_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:83,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:85,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:85,1
    - Dst: BN_gcd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:87,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:89,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:91,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:94,1
    - Dst: BN_generate_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:104,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:106,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:109,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:112,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:112,1
    - Dst: BN_gcd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:114,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:116,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:118,1
    - Dst: BN_GENCB_call
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:121,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:123,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:130,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:134,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:134,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:136,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:136,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:138,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:141,1
    - Dst: BN_with_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:145,1
    - Dst: BN_mod_inverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:146,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:147,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:151,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:155,1
    - Dst: BN_with_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:159,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:162,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:164,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:165,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:169,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:173,1
    - Dst: BN_with_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:177,1
    - Dst: BN_mod_inverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:180,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:181,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:185,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:191,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:195,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c:196,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 149
    argCount: 4
    argNames:
    - rsa
    - bits
    - e_value
    - cb
    argTypes:
    - RSA*
    - int
    - BIGNUM*
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 199
      start: 39
    functionDepth: 5
    functionLinenumber: 39
    functionLinenumberEnd: 199
    functionName: rsa_builtin_keygen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c
    functionUses: 1
    functionsReached:
    - BN_sub
    - BN_mul
    - BN_gcd
    - BN_CTX_get
    - BN_value_one
    - BN_free
    - BN_cmp
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_new
    - BN_is_one
    - BN_secure_new
    - BN_GENCB_call
    - BN_new
    - BN_with_flags
    - BN_mod
    - BN_generate_prime_ex
    - BN_copy
    - BN_mod_inverse
    - BN_CTX_free
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "rsa_builtin_keygen(RSA *rsa, int bits, BIGNUM *e_value,\n                              BN_GENCB
      *cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_RSAPublicKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:31,1
    - Dst: X509_PUBKEY_set0_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:34,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:34,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pk
    - pkey
    argTypes:
    - X509_PUBKEY*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 40
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 40
    functionName: rsa_pub_encode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_set0_param
    - OPENSSL_free
    - OBJ_nid2obj
    - i2d_RSAPublicKey
    linkageType: ''
    returnType: int
    signature: rsa_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:48,1
    - Dst: d2i_RSAPublicKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:50,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:51,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pkey
    - pubkey
    argTypes:
    - EVP_PKEY*
    - X509_PUBKEY*
    constantsTouched: []
    func_position:
      end: 56
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 56
    functionName: rsa_pub_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - RSAerr
    - X509_PUBKEY_get0_param
    - EVP_PKEY_assign_RSA
    - d2i_RSAPublicKey
    linkageType: ''
    returnType: int
    signature: rsa_pub_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:60,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: rsa_pub_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: rsa_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_RSAPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:71,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:72,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pkey
    - pder
    - derlen
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    - int
    constantsTouched: []
    func_position:
      end: 77
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 77
    functionName: old_rsa_priv_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - RSAerr
    - EVP_PKEY_assign_RSA
    - d2i_RSAPrivateKey
    linkageType: ''
    returnType: int
    signature: "old_rsa_priv_decode(EVP_PKEY *pkey,\n                               const
      unsigned char **pder, int derlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_RSAPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - pder
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: old_rsa_priv_encode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_RSAPrivateKey
    linkageType: ''
    returnType: int
    signature: old_rsa_priv_encode(const EVP_PKEY *pkey, unsigned char **pder)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_RSAPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:88,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:91,1
    - Dst: PKCS8_pkey_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:95,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:95,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - p8
    - pkey
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 102
      start: 84
    functionDepth: 5
    functionLinenumber: 84
    functionLinenumberEnd: 102
    functionName: rsa_priv_encode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - RSAerr
    - PKCS8_pkey_set0
    - i2d_RSAPrivateKey
    - OBJ_nid2obj
    linkageType: ''
    returnType: int
    signature: rsa_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_pkey_get0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:108,1
    - Dst: old_rsa_priv_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pkey
    - p8
    argTypes:
    - EVP_PKEY*
    - PKCS8_PRIV_KEY_INFO*
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: rsa_priv_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 1
    functionsReached:
    - PKCS8_pkey_get0
    - old_rsa_priv_decode
    linkageType: ''
    returnType: int
    signature: rsa_priv_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: int_rsa_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - RSA_size
    linkageType: ''
    returnType: int
    signature: int_rsa_size(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: rsa_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: rsa_bits(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_security_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: rsa_security_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - RSA_security_bits
    linkageType: ''
    returnType: int
    signature: rsa_security_bits(const EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 6
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: int_rsa_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - RSA_free
    linkageType: ''
    returnType: void
    signature: int_rsa_free(EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:140,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:142,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:146,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:151,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:156,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:158,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:161,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:163,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:165,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:167,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:169,1
    - Dst: ASN1_bn_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:171,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 49
    argCount: 4
    argNames:
    - bp
    - x
    - 'off'
    - priv
    argTypes:
    - BIO*
    - RSA*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 177
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 177
    functionName: do_rsa_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - BN_num_bits
    - ASN1_bn_print
    - BIO_indent
    linkageType: ''
    returnType: int
    signature: do_rsa_print(BIO *bp, const RSA *x, int off, int priv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_rsa_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 5
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: rsa_pub_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - do_rsa_print
    linkageType: ''
    returnType: int
    signature: "rsa_pub_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                         ASN1_PCTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_rsa_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 5
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: rsa_priv_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - do_rsa_print
    linkageType: ''
    returnType: int
    signature: "rsa_priv_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                          ASN1_PCTX
      *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:196,1
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:198,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - alg
    argTypes:
    - X509_ALGOR*
    constantsTouched: []
    func_position:
      end: 200
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 200
    functionName: rsa_mgf1_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - OBJ_obj2nid
    - ASN1_TYPE_unpack_sequence
    linkageType: ''
    returnType: X509_ALGOR
    signature: '*rsa_mgf1_decode(X509_ALGOR *alg)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:209,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:209,1
    - Dst: rsa_mgf1_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - alg
    - pmaskHash
    argTypes:
    - X509_ALGOR*
    - X509_ALGOR**
    constantsTouched: []
    func_position:
      end: 218
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 218
    functionName: rsa_pss_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_TYPE_unpack_sequence
    - rsa_mgf1_decode
    linkageType: ''
    returnType: RSA_PSS_PARAMS
    signature: "*rsa_pss_decode(const X509_ALGOR *alg,\n                                      X509_ALGOR
      **pmaskHash)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:225,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:229,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:231,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:233,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:237,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:239,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:242,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:245,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:248,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:251,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:253,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:256,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:258,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:260,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:262,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:264,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:266,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:269,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:271,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:273,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:275,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:277,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:280,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:282,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:284,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 86
    argCount: 4
    argNames:
    - bp
    - pss
    - maskHash
    - indent
    argTypes:
    - BIO*
    - RSA_PSS_PARAMS*
    - X509_ALGOR*
    - int
    constantsTouched: []
    func_position:
      end: 291
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 291
    functionName: rsa_pss_param_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - i2a_ASN1_OBJECT
    - i2a_ASN1_INTEGER
    - BIO_indent
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: "rsa_pss_param_print(BIO *bp, RSA_PSS_PARAMS *pss,\n                               X509_ALGOR
      *maskHash, int indent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:296,1
    - Dst: rsa_pss_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:300,1
    - Dst: rsa_pss_param_print
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:301,1
    - Dst: RSA_PSS_PARAMS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:302,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:303,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:306,1
    - Dst: X509_signature_dump
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 5
    argNames:
    - bp
    - sigalg
    - sig
    - indent
    - pctx
    argTypes:
    - BIO*
    - X509_ALGOR*
    - ASN1_STRING*
    - int
    - ASN1_PCTX*
    constantsTouched: []
    func_position:
      end: 311
      start: 293
    functionDepth: 5
    functionLinenumber: 293
    functionLinenumberEnd: 311
    functionName: rsa_sig_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - OBJ_obj2nid
    - rsa_pss_param_print
    - rsa_pss_decode
    - X509_ALGOR_free
    - X509_signature_dump
    - RSA_PSS_PARAMS_free
    linkageType: ''
    returnType: int
    signature: "rsa_sig_print(BIO *bp, const X509_ALGOR *sigalg,\n                         const
      ASN1_STRING *sig, int indent, ASN1_PCTX *pctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_SIGNER_INFO_get0_algs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:320,1
    - Dst: PKCS7_RECIP_INFO_get0_alg
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:325,1
    - Dst: rsa_cms_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:330,1
    - Dst: rsa_cms_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:332,1
    - Dst: rsa_cms_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:337,1
    - Dst: rsa_cms_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:339,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:357,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:357,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 361
      start: 313
    functionDepth: 4
    functionLinenumber: 313
    functionLinenumberEnd: 361
    functionName: rsa_pkey_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - rsa_cms_encrypt
    - rsa_cms_decrypt
    - rsa_cms_sign
    - X509_ALGOR_set0
    - OBJ_nid2obj
    - rsa_cms_verify
    - PKCS7_RECIP_INFO_get0_alg
    - PKCS7_SIGNER_INFO_get0_algs
    linkageType: ''
    returnType: int
    signature: rsa_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:366,1
    - Dst: X509_ALGOR_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:368,1
    - Dst: X509_ALGOR_set_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - palg
    - md
    argTypes:
    - X509_ALGOR**
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 373
      start: 364
    functionDepth: 5
    functionLinenumber: 364
    functionLinenumberEnd: 373
    functionName: rsa_md_to_algor
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - X509_ALGOR_new
    - EVP_MD_type
    - X509_ALGOR_set_md
    linkageType: ''
    returnType: int
    signature: rsa_md_to_algor(X509_ALGOR **palg, const EVP_MD *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:381,1
    - Dst: rsa_md_to_algor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:384,1
    - Dst: ASN1_item_pack
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:386,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:386,1
    - Dst: X509_ALGOR_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:388,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:391,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:391,1
    - Dst: ASN1_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:394,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:395,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - palg
    - mgf1md
    argTypes:
    - X509_ALGOR**
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 399
      start: 376
    functionDepth: 6
    functionLinenumber: 376
    functionLinenumberEnd: 399
    functionName: rsa_md_to_mgf1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_item_pack
    - ASN1_STRING_free
    - rsa_md_to_algor
    - X509_ALGOR_new
    - X509_ALGOR_set0
    - OBJ_nid2obj
    - ASN1_ITEM_rptr
    - EVP_MD_type
    - X509_ALGOR_free
    linkageType: ''
    returnType: int
    signature: rsa_md_to_mgf1(X509_ALGOR **palg, const EVP_MD *mgf1md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:406,1
    - Dst: EVP_get_digestbyobj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:407,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - alg
    argTypes:
    - X509_ALGOR*
    constantsTouched: []
    func_position:
      end: 411
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 411
    functionName: rsa_algor_to_md
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - RSAerr
    - EVP_sha1
    - EVP_get_digestbyobj
    linkageType: ''
    returnType: EVP_MD
    signature: '*rsa_algor_to_md(X509_ALGOR *alg)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:418,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:420,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:421,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:425,1
    - Dst: EVP_get_digestbyobj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:428,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:430,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - alg
    - maskHash
    argTypes:
    - X509_ALGOR*
    - X509_ALGOR*
    constantsTouched: []
    func_position:
      end: 434
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 434
    functionName: rsa_mgf1_to_md
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - EVP_sha1
    - RSAerr
    - EVP_get_digestbyobj
    linkageType: ''
    returnType: EVP_MD
    signature: '*rsa_mgf1_to_md(X509_ALGOR *alg, X509_ALGOR *maskHash)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:446,1
    - Dst: EVP_PKEY_CTX_get_signature_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:448,1
    - Dst: EVP_PKEY_CTX_get_rsa_mgf1_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:450,1
    - Dst: EVP_PKEY_CTX_get_rsa_pss_saltlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:452,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:455,1
    - Dst: EVP_PKEY_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:457,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:457,1
    - Dst: EVP_PKEY_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:458,1
    - Dst: RSA_PSS_PARAMS_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:461,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:465,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:468,1
    - Dst: rsa_md_to_algor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:471,1
    - Dst: rsa_md_to_mgf1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:473,1
    - Dst: ASN1_item_pack
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:476,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:476,1
    - Dst: RSA_PSS_PARAMS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:480,1
    - Dst: ASN1_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:483,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 47
    argCount: 1
    argNames:
    - pkctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 485
      start: 441
    functionDepth: 7
    functionLinenumber: 441
    functionLinenumberEnd: 485
    functionName: rsa_ctx_to_pss
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - RSA_PSS_PARAMS_new
    - ASN1_item_pack
    - rsa_md_to_mgf1
    - ASN1_INTEGER_new
    - rsa_md_to_algor
    - EVP_PKEY_CTX_get_rsa_pss_saltlen
    - EVP_MD_size
    - EVP_PKEY_CTX_get_rsa_mgf1_md
    - ASN1_INTEGER_set
    - ASN1_STRING_free
    - ASN1_ITEM_rptr
    - EVP_PKEY_bits
    - EVP_PKEY_CTX_get0_pkey
    - EVP_PKEY_size
    - EVP_PKEY_CTX_get_signature_md
    - RSA_PSS_PARAMS_free
    linkageType: ''
    returnType: ASN1_STRING
    signature: '*rsa_ctx_to_pss(EVP_PKEY_CTX *pkctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:502,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:503,1
    - Dst: rsa_pss_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:507,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:510,1
    - Dst: rsa_mgf1_to_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:513,1
    - Dst: rsa_algor_to_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:516,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:521,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:528,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:538,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:539,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:546,1
    - Dst: EVP_PKEY_CTX_get_signature_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:550,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:552,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:552,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:553,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:558,1
    - Dst: EVP_PKEY_CTX_set_rsa_pss_saltlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:561,1
    - Dst: EVP_PKEY_CTX_set_rsa_mgf1_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:564,1
    - Dst: RSA_PSS_PARAMS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:570,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:571,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 62
    argCount: 4
    argNames:
    - ctx
    - pkctx
    - sigalg
    - pkey
    argTypes:
    - EVP_MD_CTX*
    - EVP_PKEY_CTX*
    - X509_ALGOR*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 573
      start: 493
    functionDepth: 5
    functionLinenumber: 493
    functionLinenumberEnd: 573
    functionName: rsa_pss_to_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - rsa_algor_to_md
    - OBJ_obj2nid
    - EVP_PKEY_CTX_set_rsa_mgf1_md
    - EVP_PKEY_CTX_set_rsa_padding
    - EVP_MD_type
    - rsa_pss_decode
    - ASN1_INTEGER_get
    - EVP_PKEY_CTX_set_rsa_pss_saltlen
    - RSA_PSS_PARAMS_free
    - X509_ALGOR_free
    - rsa_mgf1_to_md
    - RSAerr
    - EVP_PKEY_CTX_get_signature_md
    - EVP_DigestVerifyInit
    linkageType: ''
    returnType: int
    signature: "rsa_pss_to_ctx(EVP_MD_CTX *ctx, EVP_PKEY_CTX *pkctx,\n                          X509_ALGOR
      *sigalg, EVP_PKEY *pkey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_SignerInfo_get0_pkey_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:580,1
    - Dst: CMS_SignerInfo_get0_algs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:581,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:582,1
    - Dst: rsa_pss_to_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:586,1
    - Dst: OBJ_find_sigid_algs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:588,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    constantsTouched: []
    func_position:
      end: 593
      start: 576
    functionDepth: 6
    functionLinenumber: 576
    functionLinenumberEnd: 593
    functionName: rsa_cms_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 1
    functionsReached:
    - rsa_pss_to_ctx
    - OBJ_obj2nid
    - OBJ_find_sigid_algs
    - CMS_SignerInfo_get0_pkey_ctx
    - CMS_SignerInfo_get0_algs
    linkageType: ''
    returnType: int
    signature: rsa_cms_verify(CMS_SignerInfo *si)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:606,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:607,1
    - Dst: rsa_pss_to_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - ctx
    - it
    - asn
    - sigalg
    - sig
    - pkey
    argTypes:
    - EVP_MD_CTX*
    - ASN1_ITEM*
    - void*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 615
      start: 601
    functionDepth: 6
    functionLinenumber: 601
    functionLinenumberEnd: 615
    functionName: rsa_item_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - RSAerr
    - rsa_pss_to_ctx
    linkageType: ''
    returnType: int
    signature: "rsa_item_verify(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn,\n
      \                          X509_ALGOR *sigalg, ASN1_BIT_STRING *sig,\n                           EVP_PKEY
      *pkey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_SignerInfo_get0_pkey_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:622,1
    - Dst: CMS_SignerInfo_get0_algs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:624,1
    - Dst: EVP_PKEY_CTX_get_rsa_padding
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:626,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:630,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:630,1
    - Dst: rsa_ctx_to_pss
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:636,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:639,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:639,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    constantsTouched: []
    func_position:
      end: 641
      start: 618
    functionDepth: 8
    functionLinenumber: 618
    functionLinenumberEnd: 641
    functionName: rsa_cms_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 1
    functionsReached:
    - X509_ALGOR_set0
    - rsa_ctx_to_pss
    - OBJ_nid2obj
    - EVP_PKEY_CTX_get_rsa_padding
    - CMS_SignerInfo_get0_pkey_ctx
    - CMS_SignerInfo_get0_algs
    linkageType: ''
    returnType: int
    signature: rsa_cms_sign(CMS_SignerInfo *si)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_pkey_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:649,1
    - Dst: EVP_PKEY_CTX_get_rsa_padding
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:650,1
    - Dst: rsa_ctx_to_pss
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:656,1
    - Dst: ASN1_STRING_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:661,1
    - Dst: ASN1_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:663,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:666,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:666,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:669,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:669,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - ctx
    - it
    - asn
    - alg1
    - alg2
    - sig
    argTypes:
    - EVP_MD_CTX*
    - ASN1_ITEM*
    - void*
    - X509_ALGOR*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    constantsTouched: []
    func_position:
      end: 674
      start: 644
    functionDepth: 8
    functionLinenumber: 644
    functionLinenumberEnd: 674
    functionName: rsa_item_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_dup
    - ASN1_STRING_free
    - X509_ALGOR_set0
    - rsa_ctx_to_pss
    - OBJ_nid2obj
    - EVP_PKEY_CTX_get_rsa_padding
    - EVP_MD_CTX_pkey_ctx
    linkageType: ''
    returnType: int
    signature: "rsa_item_sign(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn,\n                         X509_ALGOR
      *alg1, X509_ALGOR *alg2,\n                         ASN1_BIT_STRING *sig)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:684,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:684,1
    - Dst: rsa_mgf1_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - alg
    - pmaskHash
    argTypes:
    - X509_ALGOR*
    - X509_ALGOR**
    constantsTouched: []
    func_position:
      end: 693
      start: 677
    functionDepth: 3
    functionLinenumber: 677
    functionLinenumberEnd: 693
    functionName: rsa_oaep_decode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_TYPE_unpack_sequence
    - rsa_mgf1_decode
    linkageType: ''
    returnType: RSA_OAEP_PARAMS
    signature: "*rsa_oaep_decode(const X509_ALGOR *alg,\n                                        X509_ALGOR
      **pmaskHash)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_get0_pkey_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:706,1
    - Dst: CMS_RecipientInfo_ktri_get0_algs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:709,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:711,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:715,1
    - Dst: rsa_oaep_decode
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:719,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:722,1
    - Dst: rsa_mgf1_to_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:726,1
    - Dst: rsa_algor_to_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:729,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:735,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:736,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:740,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:750,1
    - Dst: EVP_PKEY_CTX_set_rsa_oaep_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:752,1
    - Dst: EVP_PKEY_CTX_set_rsa_mgf1_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:754,1
    - Dst: EVP_PKEY_CTX_set0_rsa_oaep_label
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:756,1
    - Dst: RSA_OAEP_PARAMS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:762,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:763,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    constantsTouched: []
    func_position:
      end: 765
      start: 695
    functionDepth: 4
    functionLinenumber: 695
    functionLinenumberEnd: 765
    functionName: rsa_cms_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 1
    functionsReached:
    - rsa_algor_to_md
    - EVP_PKEY_CTX_set_rsa_oaep_md
    - OBJ_obj2nid
    - EVP_PKEY_CTX_set_rsa_mgf1_md
    - EVP_PKEY_CTX_set_rsa_padding
    - EVP_PKEY_CTX_set0_rsa_oaep_label
    - rsa_oaep_decode
    - CMS_RecipientInfo_get0_pkey_ctx
    - X509_ALGOR_free
    - rsa_mgf1_to_md
    - RSAerr
    - CMS_RecipientInfo_ktri_get0_algs
    - RSA_OAEP_PARAMS_free
    linkageType: ''
    returnType: int
    signature: rsa_cms_decrypt(CMS_RecipientInfo *ri)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_get0_pkey_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:773,1
    - Dst: CMS_RecipientInfo_ktri_get0_algs
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:776,1
    - Dst: EVP_PKEY_CTX_get_rsa_padding
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:778,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:782,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:782,1
    - Dst: EVP_PKEY_CTX_get_rsa_oaep_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:788,1
    - Dst: EVP_PKEY_CTX_get_rsa_mgf1_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:790,1
    - Dst: EVP_PKEY_CTX_get0_rsa_oaep_label
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:792,1
    - Dst: RSA_OAEP_PARAMS_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:795,1
    - Dst: rsa_md_to_algor
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:798,1
    - Dst: rsa_md_to_mgf1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:800,1
    - Dst: X509_ALGOR_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:804,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:807,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:810,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:811,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:814,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:814,1
    - Dst: ASN1_item_pack
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:818,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:818,1
    - Dst: X509_ALGOR_set0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:820,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:820,1
    - Dst: RSA_OAEP_PARAMS_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:824,1
    - Dst: ASN1_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c:825,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 59
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    constantsTouched: []
    func_position:
      end: 827
      start: 767
    functionDepth: 7
    functionLinenumber: 767
    functionLinenumberEnd: 827
    functionName: rsa_cms_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
    functionUses: 1
    functionsReached:
    - X509_ALGOR_set0
    - ASN1_OCTET_STRING_free
    - RSA_OAEP_PARAMS_new
    - ASN1_item_pack
    - ASN1_STRING_free
    - rsa_md_to_algor
    - OBJ_nid2obj
    - EVP_PKEY_CTX_get_rsa_oaep_md
    - RSA_OAEP_PARAMS_free
    - ASN1_OCTET_STRING_new
    - EVP_PKEY_CTX_get0_rsa_oaep_label
    - X509_ALGOR_new
    - CMS_RecipientInfo_get0_pkey_ctx
    - CMS_RecipientInfo_ktri_get0_algs
    - rsa_md_to_mgf1
    - EVP_PKEY_CTX_get_rsa_mgf1_md
    - ASN1_ITEM_rptr
    - ASN1_OCTET_STRING_set
    - EVP_PKEY_CTX_get_rsa_padding
    linkageType: ''
    returnType: int
    signature: rsa_cms_encrypt(CMS_RecipientInfo *ri)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_asn1.c:22,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_asn1.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    constantsTouched: []
    func_position:
      end: 32
      start: 18
    functionDepth: 6
    functionLinenumber: 18
    functionLinenumberEnd: 32
    functionName: rsa_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_asn1.c
    functionUses: 0
    functionsReached:
    - RSA_new
    - RSA_free
    linkageType: ''
    returnType: int
    signature: "rsa_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n                  void
      *exarg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_asn1.c:75,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_asn1.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: RSAPublicKey_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_dup
    linkageType: ''
    returnType: RSA
    signature: '*RSAPublicKey_dup(RSA *rsa)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_asn1.c:80,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_asn1.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: RSAPrivateKey_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_dup
    linkageType: ''
    returnType: RSA
    signature: '*RSAPrivateKey_dup(RSA *rsa)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_none.c:18,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_none.c:23,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_none.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - to
    - tlen
    - from
    - flen
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 29
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 29
    functionName: RSA_padding_add_none
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_none.c
    functionUses: 2
    functionsReached:
    - memcpy
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "RSA_padding_add_none(unsigned char *to, int tlen,\n                         const
      unsigned char *from, int flen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_none.c:36,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_none.c:40,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_none.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - to
    - tlen
    - from
    - flen
    - num
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 43
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 43
    functionName: RSA_padding_check_none
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_none.c
    functionUses: 2
    functionsReached:
    - memcpy
    - RSAerr
    - memset
    linkageType: ''
    returnType: int
    signature: "RSA_padding_check_none(unsigned char *to, int tlen,\n                           const
      unsigned char *from, int flen, int num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: RSA_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c
    functionUses: 2
    functionsReached:
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: RSA_bits(const RSA *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: RSA_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c
    functionUses: 8
    functionsReached:
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: RSA_size(const RSA *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA*::meth::rsa_pub_enc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: RSA_public_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c
    functionUses: 0
    functionsReached:
    - RSA*::meth::rsa_pub_enc
    linkageType: ''
    returnType: int
    signature: "RSA_public_encrypt(int flen, const unsigned char *from, unsigned char
      *to,\n                       RSA *rsa, int padding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA*::meth::rsa_priv_enc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: RSA_private_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c
    functionUses: 1
    functionsReached:
    - RSA*::meth::rsa_priv_enc
    linkageType: ''
    returnType: int
    signature: "RSA_private_encrypt(int flen, const unsigned char *from,\n                        unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA*::meth::rsa_priv_dec
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: RSA_private_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c
    functionUses: 0
    functionsReached:
    - RSA*::meth::rsa_priv_dec
    linkageType: ''
    returnType: int
    signature: "RSA_private_decrypt(int flen, const unsigned char *from,\n                        unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA*::meth::rsa_pub_dec
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: RSA_public_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c
    functionUses: 1
    functionsReached:
    - RSA*::meth::rsa_pub_dec
    linkageType: ''
    returnType: int
    signature: "RSA_public_decrypt(int flen, const unsigned char *from, unsigned char
      *to,\n                       RSA *rsa, int padding)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: RSA_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: RSA_flags(const RSA *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_BLINDING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 4
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: RSA_blinding_off
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c
    functionUses: 0
    functionsReached:
    - BN_BLINDING_free
    linkageType: ''
    returnType: void
    signature: RSA_blinding_off(RSA *rsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_blinding_off
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:70,1
    - Dst: RSA_setup_blinding
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - rsa
    - ctx
    argTypes:
    - RSA*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 81
      start: 65
    functionDepth: 5
    functionLinenumber: 65
    functionLinenumberEnd: 81
    functionName: RSA_blinding_on
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c
    functionUses: 0
    functionsReached:
    - RSA_blinding_off
    - RSA_setup_blinding
    linkageType: ''
    returnType: int
    signature: RSA_blinding_on(RSA *rsa, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:91,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:92,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:93,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:94,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:98,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:98,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:100,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:100,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:102,1
    - Dst: BN_mod_inverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:105,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:107,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 4
    argNames:
    - d
    - p
    - q
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 109
      start: 83
    functionDepth: 5
    functionLinenumber: 83
    functionLinenumberEnd: 109
    functionName: rsa_get_public_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c
    functionUses: 0
    functionsReached:
    - BN_value_one
    - BN_mod_inverse
    - BN_sub
    - BN_mul
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_get
    linkageType: ''
    returnType: BIGNUM
    signature: "*rsa_get_public_exp(const BIGNUM *d, const BIGNUM *p,\n                                  const
      BIGNUM *q, BN_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:118,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:123,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:124,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:126,1
    - Dst: rsa_get_public_exp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:131,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:133,1
    - Dst: RAND_status
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:139,1
    - Dst: bn_get_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:140,1
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:145,1
    - Dst: bn_get_words
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:145,1
    - Dst: bn_get_dmax
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:145,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:150,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:153,1
    - Dst: BN_with_flags
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:156,1
    - Dst: BN_BLINDING_create_param
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:158,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:161,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:164,1
    - Dst: BN_BLINDING_set_current_thread
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:168,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:171,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:173,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c:175,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 2
    argNames:
    - rsa
    - in_ctx
    argTypes:
    - RSA*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 178
      start: 111
    functionDepth: 6
    functionLinenumber: 111
    functionLinenumberEnd: 178
    functionName: RSA_setup_blinding
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c
    functionUses: 2
    functionsReached:
    - BN_new
    - BN_BLINDING_create_param
    - BN_with_flags
    - BN_free
    - RAND_add
    - bn_get_words
    - BN_BLINDING_set_current_thread
    - BN_CTX_end
    - BN_CTX_start
    - rsa_get_public_exp
    - RAND_status
    - bn_get_dmax
    - BN_CTX_free
    - BN_CTX_new
    - BN_CTX_get
    - RSAerr
    linkageType: ''
    returnType: BN_BLINDING
    signature: '*RSA_setup_blinding(RSA *rsa, BN_CTX *in_ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_check_key_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - RSA*
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: RSA_check_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c
    functionUses: 0
    functionsReached:
    - RSA_check_key_ex
    linkageType: ''
    returnType: int
    signature: RSA_check_key(const RSA *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:27,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:31,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:32,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:33,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:34,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:35,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:36,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:40,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:44,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:46,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:48,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:50,1
    - Dst: BN_is_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:54,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:56,1
    - Dst: BN_is_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:60,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:62,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:66,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:70,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:72,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:76,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:76,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:80,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:80,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:86,1
    - Dst: BN_gcd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:90,1
    - Dst: BN_div
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:94,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:98,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:103,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:105,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:110,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:110,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:114,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:118,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:120,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:124,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:124,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:128,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:132,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:134,1
    - Dst: BN_mod_inverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:138,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:142,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:144,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:149,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:150,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:151,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:152,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:153,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c:154,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 124
    argCount: 2
    argNames:
    - key
    - cb
    argTypes:
    - RSA*
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 156
      start: 19
    functionDepth: 5
    functionLinenumber: 19
    functionLinenumberEnd: 156
    functionName: RSA_check_key_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_is_odd
    - BN_value_one
    - BN_mod_inverse
    - BN_free
    - BN_sub
    - BN_mul
    - BN_mod
    - BN_cmp
    - BN_CTX_free
    - BN_gcd
    - BN_CTX_new
    - BN_mod_mul
    - BN_is_one
    - BN_is_prime_ex
    - RSAerr
    - BN_div
    linkageType: ''
    returnType: int
    signature: RSA_check_key_ex(const RSA *key, BN_GENCB *cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_ASN1_OCTET_STRING
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_saos.c:30,1
    - Dst: RSA_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_saos.c:31,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_saos.c:33,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_saos.c:37,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_saos.c:39,1
    - Dst: i2d_ASN1_OCTET_STRING
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_saos.c:43,1
    - Dst: RSA_private_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_saos.c:44,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_saos.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 6
    argNames:
    - type
    - m
    - m_len
    - sigret
    - siglen
    - rsa
    argTypes:
    - int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    - RSA*
    constantsTouched: []
    func_position:
      end: 52
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 52
    functionName: RSA_sign_ASN1_OCTET_STRING
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_saos.c
    functionUses: 0
    functionsReached:
    - RSA_size
    - OPENSSL_clear_free
    - RSA_private_encrypt
    - OPENSSL_malloc
    - RSAerr
    - i2d_ASN1_OCTET_STRING
    linkageType: ''
    returnType: int
    signature: "RSA_sign_ASN1_OCTET_STRING(int type,\n                               const
      unsigned char *m, unsigned int m_len,\n                               unsigned
      char *sigret, unsigned int *siglen,\n                               RSA *rsa)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_saos.c:64,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_saos.c:65,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_saos.c:70,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_saos.c:72,1
    - Dst: RSA_public_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_saos.c:75,1
    - Dst: d2i_ASN1_OCTET_STRING
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_saos.c:81,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_saos.c:86,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_saos.c:87,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_saos.c:91,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_saos.c:92,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 6
    argNames:
    - dtype
    - m
    - m_len
    - sigbuf
    - siglen
    - rsa
    argTypes:
    - int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - RSA*
    constantsTouched: []
    func_position:
      end: 94
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 94
    functionName: RSA_verify_ASN1_OCTET_STRING
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_saos.c
    functionUses: 0
    functionsReached:
    - memcmp
    - RSA_size
    - d2i_ASN1_OCTET_STRING
    - OPENSSL_clear_free
    - ASN1_OCTET_STRING_free
    - RSA_public_decrypt
    - RSAerr
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "RSA_verify_ASN1_OCTET_STRING(int dtype,\n                                 const
      unsigned char *m,\n                                 unsigned int m_len, unsigned
      char *sigbuf,\n                                 unsigned int siglen, RSA *rsa)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:31,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:34,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:36,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:37,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:38,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:39,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:44,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:56,1
    - Dst: BN_X931_derive_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:60,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:66,1
    - Dst: BN_X931_derive_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:69,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:75,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:76,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:86,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:89,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:93,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:93,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:95,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:95,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:97,1
    - Dst: BN_gcd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:100,1
    - Dst: BN_div
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:103,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:106,1
    - Dst: BN_mod_inverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:110,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:115,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:118,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:122,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:125,1
    - Dst: BN_mod_inverse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:129,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:134,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:135,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:136,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 99
    argCount: 13
    argNames:
    - rsa
    - p1
    - p2
    - q1
    - q2
    - Xp1
    - Xp2
    - Xp
    - Xq1
    - Xq2
    - Xq
    - e
    - cb
    argTypes:
    - RSA*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 140
      start: 19
    functionDepth: 8
    functionLinenumber: 19
    functionLinenumberEnd: 140
    functionName: RSA_X931_derive_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_value_one
    - BN_mod_inverse
    - BN_dup
    - BN_sub
    - BN_mul
    - BN_mod
    - BN_X931_derive_prime_ex
    - BN_CTX_end
    - BN_CTX_start
    - BN_CTX_free
    - BN_gcd
    - BN_CTX_new
    - BN_CTX_get
    - BN_div
    linkageType: ''
    returnType: int
    signature: "RSA_X931_derive_ex(RSA *rsa, BIGNUM *p1, BIGNUM *p2, BIGNUM *q1,\n
      \                      BIGNUM *q2, const BIGNUM *Xp1, const BIGNUM *Xp2,\n                       const
      BIGNUM *Xp, const BIGNUM *Xq1, const BIGNUM *Xq2,\n                       const
      BIGNUM *Xq, const BIGNUM *e, BN_GENCB *cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:149,1
    - Dst: BN_CTX_start
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:153,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:154,1
    - Dst: BN_CTX_get
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:155,1
    - Dst: BN_X931_generate_Xpq
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:156,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:159,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:160,1
    - Dst: BN_X931_generate_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:166,1
    - Dst: BN_X931_generate_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:170,1
    - Dst: RSA_X931_derive_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:179,1
    - Dst: BN_CTX_end
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:187,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c:188,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 4
    argNames:
    - rsa
    - bits
    - e
    - cb
    argTypes:
    - RSA*
    - int
    - BIGNUM*
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 195
      start: 142
    functionDepth: 9
    functionLinenumber: 142
    functionLinenumberEnd: 195
    functionName: RSA_X931_generate_key_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_X931_generate_Xpq
    - BN_X931_generate_prime_ex
    - BN_CTX_end
    - BN_CTX_start
    - RSA_X931_derive_ex
    - BN_CTX_free
    - BN_CTX_new
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "RSA_X931_generate_key_ex(RSA *rsa, int bits, const BIGNUM *e,\n                             BN_GENCB
      *cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_err.c:179,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_err.c:180,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_err.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 175
    functionDepth: 4
    functionLinenumber: 175
    functionLinenumberEnd: 185
    functionName: ERR_load_RSA_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_err.c
    functionUses: 1
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_RSA_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: pkey_rsa_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: pkey_rsa_init(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pkey_rsa_init
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:64,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:70,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:78,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 85
      start: 61
    functionDepth: 4
    functionLinenumber: 61
    functionLinenumberEnd: 85
    functionName: pkey_rsa_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BN_dup
    - pkey_rsa_init
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: pkey_rsa_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:91,1
    - Dst: EVP_PKEY_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - pk
    argTypes:
    - RSA_PKEY_CTX*
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: setup_tbuf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - EVP_PKEY_size
    linkageType: ''
    returnType: int
    signature: setup_tbuf(RSA_PKEY_CTX *ctx, EVP_PKEY_CTX *pk)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:101,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:102,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:103,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: pkey_rsa_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BN_free
    linkageType: ''
    returnType: void
    signature: pkey_rsa_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:117,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:118,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:122,1
    - Dst: RSA_sign_ASN1_OCTET_STRING
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:126,1
    - Dst: EVP_PKEY_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:133,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:134,1
    - Dst: setup_tbuf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:137,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:138,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:141,1
    - Dst: RSA_X931_hash_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:142,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:142,1
    - Dst: RSA_private_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:143,1
    - Dst: RSA_sign
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:147,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:147,1
    - Dst: setup_tbuf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:153,1
    - Dst: RSA_padding_add_PKCS1_PSS_mgf1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:155,1
    - Dst: RSA_private_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:160,1
    - Dst: RSA_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:160,1
    - Dst: RSA_private_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:165,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 171
      start: 108
    functionDepth: 6
    functionLinenumber: 108
    functionLinenumberEnd: 171
    functionName: pkey_rsa_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - RSA_size
    - EVP_MD_size
    - setup_tbuf
    - RSA_X931_hash_id
    - RSA_sign
    - EVP_MD_type
    - memcpy
    - RSA_sign_ASN1_OCTET_STRING
    - RSA_private_encrypt
    - RSAerr
    - EVP_PKEY_size
    - RSA_padding_add_PKCS1_PSS_mgf1
    linkageType: ''
    returnType: int
    signature: "pkey_rsa_sign(EVP_PKEY_CTX *ctx, unsigned char *sig,\n                         size_t
      *siglen, const unsigned char *tbs,\n                         size_t tbslen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setup_tbuf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:182,1
    - Dst: RSA_public_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:184,1
    - Dst: RSA_X931_hash_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:190,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:190,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:191,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:195,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:196,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:201,1
    - Dst: int_rsa_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:204,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:204,1
    - Dst: RSA_public_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:213,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 5
    argNames:
    - ctx
    - rout
    - routlen
    - sig
    - siglen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 219
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 219
    functionName: pkey_rsa_verifyrecover
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - int_rsa_verify
    - EVP_MD_size
    - setup_tbuf
    - RSA_X931_hash_id
    - RSA_public_decrypt
    - EVP_MD_type
    - memcpy
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "pkey_rsa_verifyrecover(EVP_PKEY_CTX *ctx,\n                                  unsigned
      char *rout, size_t *routlen,\n                                  const unsigned
      char *sig, size_t siglen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSA_verify
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:230,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:230,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:232,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:233,1
    - Dst: pkey_rsa_verifyrecover
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:237,1
    - Dst: setup_tbuf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:241,1
    - Dst: RSA_public_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:243,1
    - Dst: RSA_verify_PKCS1_PSS_mgf1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:247,1
    - Dst: setup_tbuf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:256,1
    - Dst: RSA_public_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:258,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:264,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 269
      start: 221
    functionDepth: 6
    functionLinenumber: 221
    functionLinenumberEnd: 269
    functionName: pkey_rsa_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - RSA_verify_PKCS1_PSS_mgf1
    - memcmp
    - EVP_MD_size
    - RSA_verify
    - setup_tbuf
    - EVP_MD_type
    - RSA_public_decrypt
    - pkey_rsa_verifyrecover
    - RSAerr
    linkageType: ''
    returnType: int
    signature: "pkey_rsa_verify(EVP_PKEY_CTX *ctx,\n                           const
      unsigned char *sig, size_t siglen,\n                           const unsigned
      char *tbs, size_t tbslen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setup_tbuf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:279,1
    - Dst: RSA_padding_add_PKCS1_OAEP_mgf1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:281,1
    - Dst: RSA_public_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:287,1
    - Dst: RSA_public_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:290,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - ctx
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 296
      start: 271
    functionDepth: 6
    functionLinenumber: 271
    functionLinenumberEnd: 296
    functionName: pkey_rsa_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - RSA_padding_add_PKCS1_OAEP_mgf1
    - setup_tbuf
    - RSA_public_encrypt
    linkageType: ''
    returnType: int
    signature: "pkey_rsa_encrypt(EVP_PKEY_CTX *ctx,\n                            unsigned
      char *out, size_t *outlen,\n                            const unsigned char
      *in, size_t inlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setup_tbuf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:306,1
    - Dst: RSA_private_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:308,1
    - Dst: RSA_padding_check_PKCS1_OAEP_mgf1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:316,1
    - Dst: RSA_private_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:322,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 5
    argNames:
    - ctx
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 328
      start: 298
    functionDepth: 6
    functionLinenumber: 298
    functionLinenumberEnd: 328
    functionName: pkey_rsa_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - RSA_padding_check_PKCS1_OAEP_mgf1
    - setup_tbuf
    - RSA_private_decrypt
    linkageType: ''
    returnType: int
    signature: "pkey_rsa_decrypt(EVP_PKEY_CTX *ctx,\n                            unsigned
      char *out, size_t *outlen,\n                            const unsigned char
      *in, size_t inlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:336,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:339,1
    - Dst: RSA_X931_hash_id
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:344,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:345,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:365,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 2
    argNames:
    - md
    - padding
    argTypes:
    - EVP_MD*
    - int
    constantsTouched: []
    func_position:
      end: 372
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 372
    functionName: check_padding_md
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_type
    - RSAerr
    - RSA_X931_hash_id
    linkageType: ''
    returnType: int
    signature: check_padding_md(const EVP_MD *md, int padding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_padding_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:380,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:387,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:393,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:399,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:410,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:424,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:431,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:431,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:432,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:435,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:442,1
    - Dst: check_padding_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:452,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:465,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:479,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:482,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:494,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:512,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 125
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 520
      start: 374
    functionDepth: 3
    functionLinenumber: 374
    functionLinenumberEnd: 520
    functionName: pkey_rsa_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - check_padding_md
    - BN_is_odd
    - EVP_sha1
    - BN_free
    - BN_is_one
    - OPENSSL_free
    - RSAerr
    linkageType: ''
    returnType: int
    signature: pkey_rsa_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:526,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:529,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:531,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:533,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:535,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:537,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:539,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:541,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:543,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:546,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:549,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:552,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:554,1
    - Dst: EVP_PKEY_CTX_set_rsa_pss_saltlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:555,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:558,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:560,1
    - Dst: EVP_PKEY_CTX_set_rsa_keygen_bits
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:561,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:564,1
    - Dst: BN_asc2bn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:567,1
    - Dst: EVP_PKEY_CTX_set_rsa_keygen_pubexp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:569,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:571,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:575,1
    - Dst: EVP_get_digestbyname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:577,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:578,1
    - Dst: EVP_PKEY_CTX_set_rsa_mgf1_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:581,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:584,1
    - Dst: EVP_get_digestbyname
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:586,1
    - Dst: RSAerr
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:587,1
    - Dst: EVP_PKEY_CTX_set_rsa_oaep_md
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:590,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:592,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:596,1
    - Dst: EVP_PKEY_CTX_set0_rsa_oaep_label
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:599,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:601,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 65
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 606
      start: 522
    functionDepth: 5
    functionLinenumber: 522
    functionLinenumberEnd: 606
    functionName: pkey_rsa_ctrl_str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - BN_asc2bn
    - BN_free
    - strcmp
    - EVP_PKEY_CTX_set_rsa_oaep_md
    - EVP_PKEY_CTX_set_rsa_mgf1_md
    - atoi
    - EVP_PKEY_CTX_set_rsa_padding
    - EVP_PKEY_CTX_set0_rsa_oaep_label
    - EVP_PKEY_CTX_set_rsa_pss_saltlen
    - OPENSSL_hexstr2buf
    - EVP_get_digestbyname
    - OPENSSL_free
    - EVP_PKEY_CTX_set_rsa_keygen_pubexp
    - RSAerr
    - EVP_PKEY_CTX_set_rsa_keygen_bits
    linkageType: ''
    returnType: int
    signature: "pkey_rsa_ctrl_str(EVP_PKEY_CTX *ctx,\n                             const
      char *type, const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:615,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:616,1
    - Dst: RSA_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:619,1
    - Dst: BN_GENCB_new
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:623,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:625,1
    - Dst: evp_pkey_set_cb_translate
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:628,1
    - Dst: RSA_generate_key_ex
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:631,1
    - Dst: BN_GENCB_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:632,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:634,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c:636,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 638
      start: 608
    functionDepth: 6
    functionLinenumber: 608
    functionLinenumberEnd: 638
    functionName: pkey_rsa_keygen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_GENCB_free
    - BN_GENCB_new
    - evp_pkey_set_cb_translate
    - EVP_PKEY_assign_RSA
    - RSA_new
    - BN_set_word
    - RSA_free
    - RSA_generate_key_ex
    linkageType: ''
    returnType: int
    signature: pkey_rsa_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ecb_enc.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 31
    functionName: DES_options
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/ecb_enc.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    linkageType: ''
    returnType: char
    signature: '*DES_options(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ecb_enc.c:41,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ecb_enc.c:43,1
    - Dst: DES_encrypt1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ecb_enc.c:45,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ecb_enc.c:47,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ecb_enc.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - input
    - output
    - ks
    - enc
    argTypes:
    - const_DES_cblock*
    - DES_cblock*
    - DES_key_schedule*
    - int
    constantsTouched: []
    func_position:
      end: 51
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 51
    functionName: DES_ecb_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/ecb_enc.c
    functionUses: 1
    functionsReached:
    - DES_encrypt1
    - c2l
    - l2c
    linkageType: ''
    returnType: void
    signature: "DES_ecb_encrypt(const_DES_cblock *input, DES_cblock *output,\n                     DES_key_schedule
      *ks, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ecb3_enc.c:21,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ecb3_enc.c:22,1
    - Dst: DES_encrypt3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ecb3_enc.c:26,1
    - Dst: DES_decrypt3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ecb3_enc.c:28,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ecb3_enc.c:31,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ecb3_enc.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - input
    - output
    - ks1
    - ks2
    - ks3
    - enc
    argTypes:
    - const_DES_cblock*
    - DES_cblock*
    - DES_key_schedule*
    - DES_key_schedule*
    - DES_key_schedule*
    - int
    constantsTouched: []
    func_position:
      end: 33
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 33
    functionName: DES_ecb3_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/ecb3_enc.c
    functionUses: 1
    functionsReached:
    - DES_encrypt3
    - c2l
    - l2c
    - DES_decrypt3
    linkageType: ''
    returnType: void
    signature: "DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output,\n                      DES_key_schedule
      *ks1, DES_key_schedule *ks2,\n                      DES_key_schedule *ks3, int
      enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64enc.c:32,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64enc.c:34,1
    - Dst: DES_encrypt1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64enc.c:36,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64enc.c:39,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64enc.c:41,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64enc.c:52,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64enc.c:54,1
    - Dst: DES_encrypt1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64enc.c:56,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64enc.c:59,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64enc.c:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 7
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - DES_key_schedule*
    - DES_cblock*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 73
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 73
    functionName: DES_cfb64_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64enc.c
    functionUses: 1
    functionsReached:
    - DES_encrypt1
    - c2l
    - l2c
    linkageType: ''
    returnType: void
    signature: "DES_cfb64_encrypt(const unsigned char *in, unsigned char *out,\n                       long
      length, DES_key_schedule *schedule,\n                       DES_cblock *ivec,
      int *num, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:22,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:32,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:33,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:41,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:42,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:43,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:44,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:45,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:46,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:47,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:48,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:49,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:50,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:51,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:52,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:53,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:54,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:55,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:56,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:58,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:59,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:60,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:61,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:62,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:63,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:64,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:65,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:66,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:67,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:68,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:69,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:70,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:71,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:72,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:73,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:77,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:78,1
    - Dst: FP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 3
    argNames:
    - data
    - ks
    - enc
    argTypes:
    - DES_LONG*
    - DES_key_schedule*
    - int
    constantsTouched: []
    func_position:
      end: 84
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 84
    functionName: DES_encrypt1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c
    functionUses: 3
    functionsReached:
    - FP
    - D_ENCRYPT
    - ROTATE
    - IP
    linkageType: ''
    returnType: void
    signature: DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:102,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:103,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:111,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:112,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:113,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:114,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:115,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:116,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:117,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:118,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:119,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:120,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:121,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:122,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:123,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:124,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:125,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:126,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:128,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:129,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:130,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:131,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:132,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:133,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:134,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:135,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:136,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:137,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:138,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:139,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:140,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:141,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:142,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:143,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:146,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 3
    argNames:
    - data
    - ks
    - enc
    argTypes:
    - DES_LONG*
    - DES_key_schedule*
    - int
    constantsTouched: []
    func_position:
      end: 149
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 149
    functionName: DES_encrypt2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c
    functionUses: 0
    functionsReached:
    - D_ENCRYPT
    - ROTATE
    linkageType: ''
    returnType: void
    signature: DES_encrypt2(DES_LONG *data, DES_key_schedule *ks, int enc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:158,1
    - Dst: DES_encrypt2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:161,1
    - Dst: DES_encrypt2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:162,1
    - Dst: DES_encrypt2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:163,1
    - Dst: FP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - data
    - ks1
    - ks2
    - ks3
    argTypes:
    - DES_LONG*
    - DES_key_schedule*
    - DES_key_schedule*
    - DES_key_schedule*
    constantsTouched: []
    func_position:
      end: 169
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 169
    functionName: DES_encrypt3
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c
    functionUses: 1
    functionsReached:
    - FP
    - DES_encrypt2
    - IP
    linkageType: ''
    returnType: void
    signature: "DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1,\n                  DES_key_schedule
      *ks2, DES_key_schedule *ks3)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:178,1
    - Dst: DES_encrypt2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:181,1
    - Dst: DES_encrypt2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:182,1
    - Dst: DES_encrypt2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:183,1
    - Dst: FP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - data
    - ks1
    - ks2
    - ks3
    argTypes:
    - DES_LONG*
    - DES_key_schedule*
    - DES_key_schedule*
    - DES_key_schedule*
    constantsTouched: []
    func_position:
      end: 189
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 189
    functionName: DES_decrypt3
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c
    functionUses: 1
    functionsReached:
    - FP
    - DES_encrypt2
    - IP
    linkageType: ''
    returnType: void
    signature: "DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1,\n                  DES_key_schedule
      *ks2, DES_key_schedule *ks3)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:214,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:215,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:217,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:218,1
    - Dst: DES_encrypt3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:224,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:228,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:229,1
    - Dst: c2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:232,1
    - Dst: DES_encrypt3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:238,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:242,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:243,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:246,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:247,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:251,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:252,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:254,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:255,1
    - Dst: DES_decrypt3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:262,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:268,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:269,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:274,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:275,1
    - Dst: DES_decrypt3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:282,1
    - Dst: l2cn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:288,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:294,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c:295,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 77
    argCount: 8
    argNames:
    - input
    - output
    - length
    - ks1
    - ks2
    - ks3
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - DES_key_schedule*
    - DES_key_schedule*
    - DES_key_schedule*
    - DES_cblock*
    - int
    constantsTouched: []
    func_position:
      end: 299
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 299
    functionName: DES_ede3_cbc_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c
    functionUses: 1
    functionsReached:
    - DES_encrypt3
    - l2cn
    - c2l
    - c2ln
    - l2c
    - DES_decrypt3
    linkageType: ''
    returnType: void
    signature: "DES_ede3_cbc_encrypt(const unsigned char *input, unsigned char *output,\n
      \                         long length, DES_key_schedule *ks1,\n                          DES_key_schedule
      *ks2, DES_key_schedule *ks3,\n                          DES_cblock *ivec, int
      enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cbc_cksm.c:22,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cbc_cksm.c:23,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cbc_cksm.c:26,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cbc_cksm.c:27,1
    - Dst: c2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cbc_cksm.c:29,1
    - Dst: DES_encrypt1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cbc_cksm.c:35,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cbc_cksm.c:41,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cbc_cksm.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 5
    argNames:
    - in
    - output
    - length
    - schedule
    - ivec
    argTypes:
    - unsigned char*
    - DES_cblock*
    - long
    - DES_key_schedule*
    - const_DES_cblock*
    constantsTouched: []
    func_position:
      end: 54
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 54
    functionName: DES_cbc_cksum
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/cbc_cksm.c
    functionUses: 0
    functionsReached:
    - c2ln
    - DES_encrypt1
    - c2l
    - l2c
    linkageType: ''
    returnType: DES_LONG
    signature: "DES_cbc_cksum(const unsigned char *in, DES_cblock *output,\n                       long
      length, DES_key_schedule *schedule,\n                       const_DES_cblock
      *ivec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb_enc.c:46,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb_enc.c:47,1
    - Dst: DES_encrypt1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb_enc.c:53,1
    - Dst: c2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb_enc.c:56,1
    - Dst: l2cn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb_enc.c:60,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb_enc.c:79,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb_enc.c:80,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 51
    argCount: 6
    argNames:
    - in
    - out
    - numbits
    - length
    - schedule
    - ivec
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    - long
    - DES_key_schedule*
    - DES_cblock*
    constantsTouched: []
    func_position:
      end: 82
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 82
    functionName: DES_ofb_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb_enc.c
    functionUses: 0
    functionsReached:
    - l2cn
    - c2l
    - DES_encrypt1
    - c2ln
    - l2c
    linkageType: ''
    returnType: void
    signature: "DES_ofb_encrypt(const unsigned char *in, unsigned char *out, int numbits,\n
      \                    long length, DES_key_schedule *schedule,\n                     DES_cblock
      *ivec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:28,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:29,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:31,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:32,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:37,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:38,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:40,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:41,1
    - Dst: DES_encrypt1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:46,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:48,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:50,1
    - Dst: c2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:53,1
    - Dst: DES_encrypt1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:58,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:60,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:62,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:65,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:66,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:68,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:69,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:71,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:73,1
    - Dst: DES_encrypt1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:75,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:78,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:79,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:84,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:86,1
    - Dst: DES_encrypt1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:88,1
    - Dst: l2cn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:91,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:97,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 74
    argCount: 8
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - inw
    - outw
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - DES_key_schedule*
    - DES_cblock*
    - const_DES_cblock*
    - const_DES_cblock*
    - int
    constantsTouched: []
    func_position:
      end: 103
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 103
    functionName: DES_xcbc_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c
    functionUses: 1
    functionsReached:
    - l2cn
    - c2l
    - DES_encrypt1
    - c2ln
    - l2c
    linkageType: ''
    returnType: void
    signature: "DES_xcbc_encrypt(const unsigned char *in, unsigned char *out,\n                      long
      length, DES_key_schedule *schedule,\n                      DES_cblock *ivec,
      const_DES_cblock *inw,\n                      const_DES_cblock *outw, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 60
    functionName: OPENSSL_IMPLEMENT_GLOBAL
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "OPENSSL_IMPLEMENT_GLOBAL(int, DES_check_key, 0)\n                                                    /*\n
      \                                                    * defaults to false\n                                                     */\nstatic
      const unsigned char odd_parity[256] = {\n    1, 1, 2, 2, 4, 4, 7, 7, 8, 8, 11,
      11, 13, 13, 14, 14,\n    16, 16, 19, 19, 21, 21, 22, 22, 25, 25, 26, 26, 28,
      28, 31, 31,\n    32, 32, 35, 35, 37, 37, 38, 38, 41, 41, 42, 42, 44, 44, 47,
      47,\n    49, 49, 50, 50, 52, 52, 55, 55, 56, 56, 59, 59, 61, 61, 62, 62,\n    64,
      64, 67, 67, 69, 69, 70, 70, 73, 73, 74, 74, 76, 76, 79, 79,\n    81, 81, 82,
      82, 84, 84, 87, 87, 88, 88, 91, 91, 93, 93, 94, 94,\n    97, 97, 98, 98, 100,
      100, 103, 103, 104, 104, 107, 107, 109, 109, 110,\n    110,\n    112, 112, 115,
      115, 117, 117, 118, 118, 121, 121, 122, 122, 124, 124, 127,\n    127,\n    128,
      128, 131, 131, 133, 133, 134, 134, 137, 137, 138, 138, 140, 140, 143,\n    143,\n
      \   145, 145, 146, 146, 148, 148, 151, 151, 152, 152, 155, 155, 157, 157, 158,\n
      \   158,\n    161, 161, 162, 162, 164, 164, 167, 167, 168, 168, 171, 171, 173,
      173, 174,\n    174,\n    176, 176, 179, 179, 181, 181, 182, 182, 185, 185, 186,
      186, 188, 188, 191,\n    191,\n    193, 193, 194, 194, 196, 196, 199, 199, 200,
      200, 203, 203, 205, 205, 206,\n    206,\n    208, 208, 211, 211, 213, 213, 214,
      214, 217, 217, 218, 218, 220, 220, 223,\n    223,\n    224, 224, 227, 227, 229,
      229, 230, 230, 233, 233, 234, 234, 236, 236, 239,\n    239,\n    241, 241, 242,
      242, 244, 244, 247, 247, 248, 248, 251, 251, 253, 253, 254,\n    254\n};\n\nvoid
      DES_set_odd_parity(DES_cblock *key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - const_DES_cblock*
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: DES_check_key_parity
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: DES_check_key_parity(const_DES_cblock *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - const_DES_cblock*
    constantsTouched: []
    func_position:
      end: 119
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 119
    functionName: DES_is_weak_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: DES_is_weak_key(const_DES_cblock *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_checked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c:290,1
    - Dst: DES_set_key_unchecked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - key
    - schedule
    argTypes:
    - const_DES_cblock*
    - DES_key_schedule*
    constantsTouched: []
    func_position:
      end: 295
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 295
    functionName: DES_set_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c
    functionUses: 0
    functionsReached:
    - DES_set_key_unchecked
    - DES_set_key_checked
    linkageType: ''
    returnType: int
    signature: DES_set_key(const_DES_cblock *key, DES_key_schedule *schedule)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DES_check_key_parity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c:304,1
    - Dst: DES_is_weak_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c:306,1
    - Dst: DES_set_key_unchecked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - key
    - schedule
    argTypes:
    - const_DES_cblock*
    - DES_key_schedule*
    constantsTouched: []
    func_position:
      end: 310
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 310
    functionName: DES_set_key_checked
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c
    functionUses: 1
    functionsReached:
    - DES_check_key_parity
    - DES_set_key_unchecked
    - DES_is_weak_key
    linkageType: ''
    returnType: int
    signature: DES_set_key_checked(const_DES_cblock *key, DES_key_schedule *schedule)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c:322,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c:328,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c:329,1
    - Dst: PERM_OP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c:335,1
    - Dst: HPERM_OP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c:336,1
    - Dst: HPERM_OP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c:337,1
    - Dst: PERM_OP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c:338,1
    - Dst: PERM_OP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c:339,1
    - Dst: PERM_OP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c:340,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c:371,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 2
    argNames:
    - key
    - schedule
    argTypes:
    - const_DES_cblock*
    - DES_key_schedule*
    constantsTouched: []
    func_position:
      end: 376
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 376
    functionName: DES_set_key_unchecked
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c
    functionUses: 7
    functionsReached:
    - c2l
    - PERM_OP
    - memcpy
    - ROTATE
    - HPERM_OP
    linkageType: ''
    returnType: void
    signature: DES_set_key_unchecked(const_DES_cblock *key, DES_key_schedule *schedule)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - schedule
    argTypes:
    - const_DES_cblock*
    - DES_key_schedule*
    constantsTouched: []
    func_position:
      end: 381
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 381
    functionName: DES_key_sched
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c
    functionUses: 0
    functionsReached:
    - DES_set_key
    linkageType: ''
    returnType: int
    signature: DES_key_sched(const_DES_cblock *key, DES_key_schedule *schedule)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb64enc.c:31,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb64enc.c:32,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb64enc.c:36,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb64enc.c:37,1
    - Dst: DES_encrypt1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb64enc.c:40,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb64enc.c:43,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb64enc.c:45,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb64enc.c:55,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb64enc.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 6
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - DES_key_schedule*
    - DES_cblock*
    - int*
    constantsTouched: []
    func_position:
      end: 60
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 60
    functionName: DES_ofb64_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb64enc.c
    functionUses: 1
    functionsReached:
    - DES_encrypt1
    - c2l
    - l2c
    linkageType: ''
    returnType: void
    signature: "DES_ofb64_encrypt(register const unsigned char *in,\n                       register
      unsigned char *out, long length,\n                       DES_key_schedule *schedule,
      DES_cblock *ivec, int *num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c:41,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c:42,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c:43,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c:44,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c:45,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c:46,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c:47,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c:48,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c:49,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c:50,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c:51,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c:52,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c:53,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c:54,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c:55,1
    - Dst: D_ENCRYPT
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c:56,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c:61,1
    - Dst: ROTATE
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c:62,1
    - Dst: PERM_OP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c:64,1
    - Dst: PERM_OP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c:65,1
    - Dst: PERM_OP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c:66,1
    - Dst: PERM_OP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c:67,1
    - Dst: PERM_OP
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 4
    argNames:
    - out
    - ks
    - Eswap0
    - Eswap1
    argTypes:
    - DES_LONG*
    - DES_key_schedule*
    - DES_LONG
    - DES_LONG
    constantsTouched: []
    func_position:
      end: 72
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 72
    functionName: fcrypt_body
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c
    functionUses: 0
    functionsReached:
    - ROTATE
    - PERM_OP
    - D_ENCRYPT
    linkageType: ''
    returnType: void
    signature: "fcrypt_body(DES_LONG *out, DES_key_schedule *ks, DES_LONG Eswap0,\n
      \                DES_LONG Eswap1)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb64ede.c:32,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb64ede.c:33,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb64ede.c:37,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb64ede.c:38,1
    - Dst: DES_encrypt3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb64ede.c:43,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb64ede.c:48,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb64ede.c:49,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb64ede.c:57,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb64ede.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 8
    argNames:
    - in
    - out
    - length
    - k1
    - k2
    - k3
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - DES_key_schedule*
    - DES_key_schedule*
    - DES_key_schedule*
    - DES_cblock*
    - int*
    constantsTouched: []
    func_position:
      end: 62
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 62
    functionName: DES_ede3_ofb64_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb64ede.c
    functionUses: 1
    functionsReached:
    - DES_encrypt3
    - c2l
    - l2c
    linkageType: ''
    returnType: void
    signature: "DES_ede3_ofb64_encrypt(register const unsigned char *in,\n                            register
      unsigned char *out, long length,\n                            DES_key_schedule
      *k1, DES_key_schedule *k2,\n                            DES_key_schedule *k3,
      DES_cblock *ivec, int *num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:36,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:37,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:39,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:40,1
    - Dst: DES_encrypt1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:45,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:47,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:49,1
    - Dst: c2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:52,1
    - Dst: DES_encrypt1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:57,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:59,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:61,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:65,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:66,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:69,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:70,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:72,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:74,1
    - Dst: DES_encrypt1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:76,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:79,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:80,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:85,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:87,1
    - Dst: DES_encrypt1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:89,1
    - Dst: l2cn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:92,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:100,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 67
    argCount: 6
    argNames:
    - in
    - out
    - length
    - _schedule
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - DES_key_schedule*
    - DES_cblock*
    - int
    constantsTouched: []
    func_position:
      end: 106
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 106
    functionName: DES_ncbc_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c
    functionUses: 1
    functionsReached:
    - l2cn
    - c2l
    - DES_encrypt1
    - c2ln
    - l2c
    linkageType: ''
    returnType: void
    signature: "DES_ncbc_encrypt(const unsigned char *in, unsigned char *out,\n                      long
      length, DES_key_schedule *_schedule,\n                      DES_cblock *ivec,
      int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_unchecked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/rpc_enc.c:19,1
    - Dst: DES_ecb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/rpc_enc.c:23,1
    - Dst: DES_ncbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/rpc_enc.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - buf
    - len
    - desp
    argTypes:
    - char*
    - int
    - struct desparams*
    constantsTouched: []
    func_position:
      end: 30
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 30
    functionName: _des_crypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/rpc_enc.c
    functionUses: 0
    functionsReached:
    - DES_ecb_encrypt
    - DES_set_key_unchecked
    - DES_ncbc_encrypt
    linkageType: ''
    returnType: int
    signature: _des_crypt(char *buf, int len, struct desparams *desp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/rand_key.c:16,1
    - Dst: DES_is_weak_key
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/rand_key.c:18,1
    - Dst: DES_set_odd_parity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/rand_key.c:19,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ret
    argTypes:
    - DES_cblock*
    constantsTouched: []
    func_position:
      end: 21
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 21
    functionName: DES_random_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/rand_key.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - DES_set_odd_parity
    - DES_is_weak_key
    linkageType: ''
    returnType: int
    signature: DES_random_key(DES_cblock *ret)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/pcbc_enc.c:26,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/pcbc_enc.c:27,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/pcbc_enc.c:30,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/pcbc_enc.c:31,1
    - Dst: c2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/pcbc_enc.c:33,1
    - Dst: DES_encrypt1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/pcbc_enc.c:36,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/pcbc_enc.c:41,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/pcbc_enc.c:42,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/pcbc_enc.c:45,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/pcbc_enc.c:46,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/pcbc_enc.c:48,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/pcbc_enc.c:49,1
    - Dst: DES_encrypt1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/pcbc_enc.c:52,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/pcbc_enc.c:56,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/pcbc_enc.c:57,1
    - Dst: l2cn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/pcbc_enc.c:59,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 6
    argNames:
    - input
    - output
    - length
    - schedule
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - DES_key_schedule*
    - DES_cblock*
    - int
    constantsTouched: []
    func_position:
      end: 66
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 66
    functionName: DES_pcbc_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/pcbc_enc.c
    functionUses: 0
    functionsReached:
    - l2cn
    - c2l
    - DES_encrypt1
    - c2ln
    - l2c
    linkageType: ''
    returnType: void
    signature: "DES_pcbc_encrypt(const unsigned char *input, unsigned char *output,\n
      \                     long length, DES_key_schedule *schedule,\n                      DES_cblock
      *ivec, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:34,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:35,1
    - Dst: DES_encrypt3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:39,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:44,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:45,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:56,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:57,1
    - Dst: DES_encrypt3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:61,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:66,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 9
    argNames:
    - in
    - out
    - length
    - ks1
    - ks2
    - ks3
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - DES_key_schedule*
    - DES_key_schedule*
    - DES_key_schedule*
    - DES_cblock*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 79
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 79
    functionName: DES_ede3_cfb64_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c
    functionUses: 1
    functionsReached:
    - DES_encrypt3
    - c2l
    - l2c
    linkageType: ''
    returnType: void
    signature: "DES_ede3_cfb64_encrypt(const unsigned char *in, unsigned char *out,\n
      \                           long length, DES_key_schedule *ks1,\n                            DES_key_schedule
      *ks2, DES_key_schedule *ks3,\n                            DES_cblock *ivec,
      int *num, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:101,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:102,1
    - Dst: DES_encrypt3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:108,1
    - Dst: c2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:109,1
    - Dst: l2cn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:113,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:127,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:128,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:129,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:130,1
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:132,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:140,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:141,1
    - Dst: DES_encrypt3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:149,1
    - Dst: c2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:150,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:164,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:165,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:166,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:167,1
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:169,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:177,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:178,1
    - Dst: l2cn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:182,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:187,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c:188,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 83
    argCount: 9
    argNames:
    - in
    - out
    - numbits
    - length
    - ks1
    - ks2
    - ks3
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    - long
    - DES_key_schedule*
    - DES_key_schedule*
    - DES_key_schedule*
    - DES_cblock*
    - int
    constantsTouched: []
    func_position:
      end: 190
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 190
    functionName: DES_ede3_cfb_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c
    functionUses: 2
    functionsReached:
    - memmove
    - DES_encrypt3
    - l2cn
    - c2l
    - c2ln
    - l2c
    linkageType: ''
    returnType: void
    signature: "DES_ede3_cfb_encrypt(const unsigned char *in, unsigned char *out,\n
      \                         int numbits, long length, DES_key_schedule *ks1,\n
      \                         DES_key_schedule *ks2, DES_key_schedule *ks3,\n                          DES_cblock
      *ivec, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:41,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:49,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:50,1
    - Dst: DES_encrypt1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:56,1
    - Dst: c2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:57,1
    - Dst: l2cn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:61,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:76,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:77,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:78,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:79,1
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:84,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:93,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:94,1
    - Dst: DES_encrypt1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:103,1
    - Dst: c2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:104,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:119,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:120,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:121,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:122,1
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:127,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:136,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:137,1
    - Dst: l2cn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:142,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:147,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c:148,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 84
    argCount: 7
    argNames:
    - in
    - out
    - numbits
    - length
    - schedule
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    - long
    - DES_key_schedule*
    - DES_cblock*
    - int
    constantsTouched: []
    func_position:
      end: 150
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 150
    functionName: DES_cfb_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c
    functionUses: 2
    functionsReached:
    - memmove
    - l2cn
    - c2l
    - DES_encrypt1
    - c2ln
    - assert
    - l2c
    linkageType: ''
    returnType: void
    signature: "DES_cfb_encrypt(const unsigned char *in, unsigned char *out, int numbits,\n
      \                    long length, DES_key_schedule *schedule,\n                     DES_cblock
      *ivec, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Q_B0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/qud_cksm.c:41,1
    - Dst: Q_B1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/qud_cksm.c:41,1
    - Dst: Q_B2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/qud_cksm.c:41,1
    - Dst: Q_B3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/qud_cksm.c:42,1
    - Dst: Q_B0
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/qud_cksm.c:43,1
    - Dst: Q_B1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/qud_cksm.c:43,1
    - Dst: Q_B2
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/qud_cksm.c:43,1
    - Dst: Q_B3
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/qud_cksm.c:44,1
    - Dst: Q_B1
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/qud_cksm.c:52,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 5
    argNames:
    - input
    - output
    - length
    - out_count
    - seed
    argTypes:
    - unsigned char*
    - DES_cblock[]
    - long
    - int
    - DES_cblock*
    constantsTouched: []
    func_position:
      end: 77
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 77
    functionName: DES_quad_cksum
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/qud_cksm.c
    functionUses: 0
    functionsReached:
    - Q_B0
    - Q_B2
    - Q_B1
    - Q_B3
    linkageType: ''
    returnType: DES_LONG
    signature: "DES_quad_cksum(const unsigned char *input, DES_cblock output[],\n
      \                       long length, int out_count, DES_cblock *seed)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/str2key.c:18,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/str2key.c:19,1
    - Dst: DES_set_odd_parity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/str2key.c:38,1
    - Dst: DES_set_key_unchecked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/str2key.c:39,1
    - Dst: DES_cbc_cksum
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/str2key.c:40,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/str2key.c:41,1
    - Dst: DES_set_odd_parity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/str2key.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - str
    - key
    argTypes:
    - char*
    - DES_cblock*
    constantsTouched: []
    func_position:
      end: 43
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 43
    functionName: DES_string_to_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/str2key.c
    functionUses: 0
    functionsReached:
    - DES_set_odd_parity
    - DES_set_key_unchecked
    - DES_cbc_cksum
    - memset
    - strlen
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: DES_string_to_key(const char *str, DES_cblock *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/str2key.c:50,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/str2key.c:51,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/str2key.c:52,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/str2key.c:86,1
    - Dst: DES_set_odd_parity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/str2key.c:88,1
    - Dst: DES_set_odd_parity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/str2key.c:89,1
    - Dst: DES_set_key_unchecked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/str2key.c:90,1
    - Dst: DES_cbc_cksum
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/str2key.c:91,1
    - Dst: DES_set_key_unchecked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/str2key.c:92,1
    - Dst: DES_cbc_cksum
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/str2key.c:93,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/str2key.c:94,1
    - Dst: DES_set_odd_parity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/str2key.c:95,1
    - Dst: DES_set_odd_parity
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/str2key.c:96,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 3
    argNames:
    - str
    - key1
    - key2
    argTypes:
    - char*
    - DES_cblock*
    - DES_cblock*
    constantsTouched: []
    func_position:
      end: 97
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 97
    functionName: DES_string_to_2keys
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/str2key.c
    functionUses: 0
    functionsReached:
    - DES_set_odd_parity
    - DES_set_key_unchecked
    - DES_cbc_cksum
    - memset
    - strlen
    - memcpy
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: DES_string_to_2keys(const char *str, DES_cblock *key1, DES_cblock *key2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DES_fcrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt.c:63,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt.c:76,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt.c:79,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt.c:80,1
    - Dst: DES_fcrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt.c:83,1
    - Dst: ascii2ebcdic
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt.c:85,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt.c:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - salt
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 89
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 89
    functionName: DES_crypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt.c
    functionUses: 0
    functionsReached:
    - ascii2ebcdic
    - OPENSSL_strlcpy
    - strlen
    - DES_fcrypt
    - ebcdic2ascii
    linkageType: ''
    returnType: char
    signature: '*DES_crypt(const char *buf, const char *salt)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_unchecked
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt.c:123,1
    - Dst: fcrypt_body
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt.c:124,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt.c:127,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt.c:129,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - buf
    - salt
    - ret
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 149
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 149
    functionName: DES_fcrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt.c
    functionUses: 1
    functionsReached:
    - fcrypt_body
    - DES_set_key_unchecked
    - l2c
    linkageType: ''
    returnType: char
    signature: '*DES_fcrypt(const char *buf, const char *salt, char *ret)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_skey.c:27,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_skey.c:29,1
    - Dst: c2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_skey.c:35,1
    - Dst: ROTATE_l32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_skey.c:52,1
    - Dst: ROTATE_l32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_skey.c:55,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 4
    argNames:
    - key
    - len
    - data
    - rounds
    argTypes:
    - RC5_32_KEY*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 61
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 61
    functionName: RC5_32_set_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_skey.c
    functionUses: 1
    functionsReached:
    - c2ln
    - c2l
    - ROTATE_l32
    linkageType: ''
    returnType: void
    signature: "RC5_32_set_key(RC5_32_KEY *key, int len, const unsigned char *data,\n
      \                   int rounds)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:24,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:25,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:28,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:29,1
    - Dst: RC5_32_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:34,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:36,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:38,1
    - Dst: c2ln
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:41,1
    - Dst: RC5_32_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:46,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:48,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:50,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:52,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:53,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:55,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:56,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:59,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:61,1
    - Dst: RC5_32_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:63,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:66,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:67,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:72,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:74,1
    - Dst: RC5_32_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:76,1
    - Dst: l2cn
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:79,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:83,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 66
    argCount: 6
    argNames:
    - in
    - out
    - length
    - ks
    - iv
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - RC5_32_KEY*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 88
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 88
    functionName: RC5_32_cbc_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c
    functionUses: 0
    functionsReached:
    - RC5_32_decrypt
    - RC5_32_encrypt
    - l2cn
    - c2l
    - c2ln
    - l2c
    linkageType: ''
    returnType: void
    signature: "RC5_32_cbc_encrypt(const unsigned char *in, unsigned char *out,\n
      \                       long length, RC5_32_KEY *ks, unsigned char *iv,\n                        int
      encrypt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: E_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:98,1
    - Dst: E_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:99,1
    - Dst: E_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:100,1
    - Dst: E_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:101,1
    - Dst: E_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:102,1
    - Dst: E_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:103,1
    - Dst: E_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:104,1
    - Dst: E_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:105,1
    - Dst: E_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:107,1
    - Dst: E_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:108,1
    - Dst: E_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:109,1
    - Dst: E_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:110,1
    - Dst: E_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:113,1
    - Dst: E_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:114,1
    - Dst: E_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:115,1
    - Dst: E_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:116,1
    - Dst: E_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:117,1
    - Dst: E_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:118,1
    - Dst: E_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:119,1
    - Dst: E_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - d
    - key
    argTypes:
    - unsigned long*
    - RC5_32_KEY*
    constantsTouched: []
    func_position:
      end: 124
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 124
    functionName: RC5_32_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c
    functionUses: 1
    functionsReached:
    - E_RC5_32
    linkageType: ''
    returnType: void
    signature: RC5_32_encrypt(unsigned long *d, RC5_32_KEY *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: D_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:135,1
    - Dst: D_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:136,1
    - Dst: D_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:137,1
    - Dst: D_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:138,1
    - Dst: D_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:140,1
    - Dst: D_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:141,1
    - Dst: D_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:142,1
    - Dst: D_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:143,1
    - Dst: D_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:145,1
    - Dst: D_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:146,1
    - Dst: D_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:147,1
    - Dst: D_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:148,1
    - Dst: D_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:150,1
    - Dst: D_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:151,1
    - Dst: D_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:152,1
    - Dst: D_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:153,1
    - Dst: D_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:154,1
    - Dst: D_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:155,1
    - Dst: D_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:156,1
    - Dst: D_RC5_32
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - d
    - key
    argTypes:
    - unsigned long*
    - RC5_32_KEY*
    constantsTouched: []
    func_position:
      end: 160
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 160
    functionName: RC5_32_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c
    functionUses: 1
    functionsReached:
    - D_RC5_32
    linkageType: ''
    returnType: void
    signature: RC5_32_decrypt(unsigned long *d, RC5_32_KEY *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5ofb64.c:32,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5ofb64.c:33,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5ofb64.c:37,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5ofb64.c:38,1
    - Dst: RC5_32_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5ofb64.c:41,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5ofb64.c:44,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5ofb64.c:46,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5ofb64.c:56,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5ofb64.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 6
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - RC5_32_KEY*
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 61
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 61
    functionName: RC5_32_ofb64_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5ofb64.c
    functionUses: 0
    functionsReached:
    - c2l
    - l2c
    - RC5_32_encrypt
    linkageType: ''
    returnType: void
    signature: "RC5_32_ofb64_encrypt(const unsigned char *in, unsigned char *out,\n
      \                         long length, RC5_32_KEY *schedule,\n                          unsigned
      char *ivec, int *num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_ecb.c:19,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_ecb.c:21,1
    - Dst: RC5_32_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_ecb.c:24,1
    - Dst: RC5_32_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_ecb.c:26,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_ecb.c:28,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_ecb.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - in
    - out
    - ks
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - RC5_32_KEY*
    - int
    constantsTouched: []
    func_position:
      end: 32
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 32
    functionName: RC5_32_ecb_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_ecb.c
    functionUses: 0
    functionsReached:
    - l2c
    - RC5_32_decrypt
    - c2l
    - RC5_32_encrypt
    linkageType: ''
    returnType: void
    signature: "RC5_32_ecb_encrypt(const unsigned char *in, unsigned char *out,\n
      \                       RC5_32_KEY *ks, int encrypt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5cfb64.c:33,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5cfb64.c:35,1
    - Dst: RC5_32_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5cfb64.c:37,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5cfb64.c:40,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5cfb64.c:42,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5cfb64.c:53,1
    - Dst: c2l
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5cfb64.c:55,1
    - Dst: RC5_32_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5cfb64.c:57,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5cfb64.c:60,1
    - Dst: l2c
      Src: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5cfb64.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 7
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - RC5_32_KEY*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 74
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 74
    functionName: RC5_32_cfb64_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5cfb64.c
    functionUses: 0
    functionsReached:
    - l2c
    - c2l
    - RC5_32_encrypt
    linkageType: ''
    returnType: void
    signature: "RC5_32_cfb64_encrypt(const unsigned char *in, unsigned char *out,\n
      \                         long length, RC5_32_KEY *schedule,\n                          unsigned
      char *ivec, int *num, int encrypt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_showfatal
      Src: /src/openweave-core/third_party/openssl/openssl/ms/uplink.c:30,1
    - Dst: ExitProcess
      Src: /src/openweave-core/third_party/openssl/openssl/ms/uplink.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: unimplemented
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ms/uplink.c
    functionUses: 0
    functionsReached:
    - ExitProcess
    - OPENSSL_showfatal
    linkageType: ''
    returnType: void
    signature: unimplemented(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _sntprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ms/uplink.c:58,1
    - Dst: _T
      Src: /src/openweave-core/third_party/openssl/openssl/ms/uplink.c:59,1
    - Dst: _tcscpy
      Src: /src/openweave-core/third_party/openssl/openssl/ms/uplink.c:60,1
    - Dst: _T
      Src: /src/openweave-core/third_party/openssl/openssl/ms/uplink.c:60,1
    - Dst: GetModuleHandle
      Src: /src/openweave-core/third_party/openssl/openssl/ms/uplink.c:63,1
    - Dst: _tcscpy
      Src: /src/openweave-core/third_party/openssl/openssl/ms/uplink.c:65,1
    - Dst: _T
      Src: /src/openweave-core/third_party/openssl/openssl/ms/uplink.c:65,1
    - Dst: GetProcAddress
      Src: /src/openweave-core/third_party/openssl/openssl/ms/uplink.c:76,1
    - Dst: _tcscpy
      Src: /src/openweave-core/third_party/openssl/openssl/ms/uplink.c:79,1
    - Dst: _T
      Src: /src/openweave-core/third_party/openssl/openssl/ms/uplink.c:79,1
    - Dst: _tcscpy
      Src: /src/openweave-core/third_party/openssl/openssl/ms/uplink.c:85,1
    - Dst: _T
      Src: /src/openweave-core/third_party/openssl/openssl/ms/uplink.c:85,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 2
    argNames:
    - table
    - index
    argTypes:
    - void**
    - int
    constantsTouched: []
    func_position:
      end: 100
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 100
    functionName: OPENSSL_Uplink
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ms/uplink.c
    functionUses: 0
    functionsReached:
    - _tcscpy
    - GetModuleHandle
    - _T
    - _sntprintf
    - GetProcAddress
    linkageType: ''
    returnType: void
    signature: OPENSSL_Uplink(volatile void **table, int index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UP_fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ms/uplink.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ms/uplink.c
    functionUses: 22
    functionsReached:
    - UP_fprintf
    linkageType: ''
    returnType: void
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: app_stdin
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ms/applink.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*app_stdin(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: app_stdout
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ms/applink.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*app_stdout(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: app_stderr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ms/applink.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*app_stderr(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: feof
      Src: /src/openweave-core/third_party/openssl/openssl/ms/applink.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: app_feof
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ms/applink.c
    functionUses: 0
    functionsReached:
    - feof
    linkageType: ''
    returnType: int
    signature: app_feof(FILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ferror
      Src: /src/openweave-core/third_party/openssl/openssl/ms/applink.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: app_ferror
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ms/applink.c
    functionUses: 0
    functionsReached:
    - ferror
    linkageType: ''
    returnType: int
    signature: app_ferror(FILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clearerr
      Src: /src/openweave-core/third_party/openssl/openssl/ms/applink.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: app_clearerr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ms/applink.c
    functionUses: 0
    functionsReached:
    - clearerr
    linkageType: ''
    returnType: void
    signature: app_clearerr(FILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _fileno
      Src: /src/openweave-core/third_party/openssl/openssl/ms/applink.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: app_fileno
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ms/applink.c
    functionUses: 0
    functionsReached:
    - _fileno
    linkageType: ''
    returnType: int
    signature: app_fileno(FILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _setmode
      Src: /src/openweave-core/third_party/openssl/openssl/ms/applink.c:78,1
    - Dst: _fileno
      Src: /src/openweave-core/third_party/openssl/openssl/ms/applink.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - mod
    argTypes:
    - FILE*
    - char
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: app_fsetmod
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ms/applink.c
    functionUses: 0
    functionsReached:
    - _fileno
    - _setmode
    linkageType: ''
    returnType: int
    signature: app_fsetmod(FILE *fp, char mod)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 133
    functionName: OPENSSL_Applink
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ms/applink.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: OPENSSL_Applink(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/test/gmdifftest.c:27,1
    - Dst: OPENSSL_gmtime
      Src: /src/openweave-core/third_party/openssl/openssl/test/gmdifftest.c:30,1
    - Dst: OPENSSL_gmtime
      Src: /src/openweave-core/third_party/openssl/openssl/test/gmdifftest.c:31,1
    - Dst: OPENSSL_gmtime_adj
      Src: /src/openweave-core/third_party/openssl/openssl/test/gmdifftest.c:33,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/gmdifftest.c:39,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/gmdifftest.c:40,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/gmdifftest.c:43,1
    - Dst: OPENSSL_gmtime_diff
      Src: /src/openweave-core/third_party/openssl/openssl/test/gmdifftest.c:48,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/gmdifftest.c:52,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/gmdifftest.c:53,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - offset
    argTypes:
    - long
    constantsTouched: []
    func_position:
      end: 58
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 58
    functionName: check_time
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/gmdifftest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_gmtime
    - OPENSSL_gmtime_diff
    - fprintf
    - time
    - OPENSSL_gmtime_adj
    linkageType: ''
    returnType: int
    signature: check_time(long offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/gmdifftest.c:66,1
    - Dst: check_time
      Src: /src/openweave-core/third_party/openssl/openssl/test/gmdifftest.c:70,1
    - Dst: check_time
      Src: /src/openweave-core/third_party/openssl/openssl/test/gmdifftest.c:72,1
    - Dst: check_time
      Src: /src/openweave-core/third_party/openssl/openssl/test/gmdifftest.c:74,1
    - Dst: check_time
      Src: /src/openweave-core/third_party/openssl/openssl/test/gmdifftest.c:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 81
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 81
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/gmdifftest.c
    functionUses: 22
    functionsReached:
    - fprintf
    - check_time
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:115,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:118,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:119,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:123,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:125,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:128,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:129,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:137,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 5
    argNames:
    - test
    - val
    - width
    - prec
    - fail
    argTypes:
    - int
    - double
    - char*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 139
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 139
    functionName: dofptest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - printf
    - BIO_snprintf
    - strcmp
    linkageType: ''
    returnType: void
    signature: dofptest(int test, double val, char *width, int prec, int *fail)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:151,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:155,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:156,1
    - Dst: dofptest
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:191,1
    - Dst: dofptest
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:192,1
    - Dst: dofptest
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:193,1
    - Dst: dofptest
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:194,1
    - Dst: dofptest
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:195,1
    - Dst: dofptest
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:196,1
    - Dst: dofptest
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:197,1
    - Dst: dofptest
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:198,1
    - Dst: dofptest
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:199,1
    - Dst: dofptest
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:200,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:204,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:205,1
    - Dst: CRYPTO_mem_leaks_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:211,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:217,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c:220,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 223
      start: 141
    functionDepth: 5
    functionLinenumber: 141
    functionLinenumberEnd: 223
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c
    functionUses: 22
    functionsReached:
    - BIO_snprintf
    - strcmp
    - CRYPTO_mem_ctrl
    - CRYPTO_mem_leaks_fp
    - printf
    - CRYPTO_set_mem_debug
    - dofptest
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PBE_get
      Src: /src/openweave-core/third_party/openssl/openssl/test/pbelutest.c:25,1
    - Dst: EVP_PBE_find
      Src: /src/openweave-core/third_party/openssl/openssl/test/pbelutest.c:26,1
    - Dst: EVP_PBE_get
      Src: /src/openweave-core/third_party/openssl/openssl/test/pbelutest.c:34,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/pbelutest.c:41,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/test/pbelutest.c:42,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 47
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 47
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/pbelutest.c
    functionUses: 22
    functionsReached:
    - OBJ_nid2sn
    - fprintf
    - EVP_PBE_get
    - EVP_PBE_find
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: test_usage
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: test_usage(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_error_line_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:38,1
    - Dst: ERR_error_string_n
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:39,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:41,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 45
    functionName: print_errors
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c
    functionUses: 2
    functionsReached:
    - fprintf
    - ERR_get_error_line_data
    - ERR_error_string_n
    linkageType: ''
    returnType: void
    signature: print_errors(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_bio
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:59,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:71,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:72,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:73,1
    - Dst: d2i
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:77,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:80,1
    - Dst: i2d
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:86,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:88,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:93,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:94,1
    - Dst: i2d
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:98,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:100,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:107,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:112,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:113,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:118,1
    - Dst: i2d
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:122,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:124,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:129,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:130,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:138,1
    - Dst: i2d
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:142,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:144,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:149,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:150,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:160,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:161,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:162,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:163,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:164,1
    - Dst: ERR_GET_REASON
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:167,1
    - Dst: ERR_peek_last_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:167,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:170,1
    - Dst: print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:176,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 96
    argCount: 1
    argNames:
    - fp
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 178
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 178
    functionName: test_certs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c
    functionUses: 0
    functionsReached:
    - memcmp
    - print_errors
    - strcmp
    - d2i
    - perror
    - ERR_peek_last_error
    - PEM_read_bio
    - i2d
    - X509_free
    - fprintf
    - OPENSSL_free
    - OPENSSL_malloc
    - ERR_GET_REASON
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: test_certs(BIO *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_usage
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:188,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:189,1
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:192,1
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:194,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:195,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:196,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:197,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:203,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:207,1
    - Dst: strerror
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:208,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:209,1
    - Dst: test_certs
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:211,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:212,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:215,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:219,1
    - Dst: CRYPTO_mem_leaks
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:226,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:229,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c:230,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 231
      start: 180
    functionDepth: 4
    functionLinenumber: 180
    functionLinenumberEnd: 231
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c
    functionUses: 22
    functionsReached:
    - test_certs
    - CRYPTO_mem_leaks
    - strcmp
    - CRYPTO_mem_ctrl
    - test_usage
    - getenv
    - BIO_new_fp
    - BIO_free
    - printf
    - BIO_new_file
    - fprintf
    - EXIT
    - strerror
    - CRYPTO_set_mem_debug
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - thread_t*
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: run_thread
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: int
    signature: run_thread(thread_t *t, void (*f)(void))
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - thread
    argTypes:
    - thread_t
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: wait_for_thread
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: wait_for_thread(thread_t thread)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - LPVOID
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: thread_run
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: DWORD
    signature: thread_run(LPVOID arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateThread
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - thread_t*
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: run_thread
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c
    functionUses: 0
    functionsReached:
    - CreateThread
    linkageType: ''
    returnType: int
    signature: run_thread(thread_t *t, void (*f)(void))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WaitForSingleObject
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - thread
    argTypes:
    - thread_t
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: wait_for_thread
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c
    functionUses: 0
    functionsReached:
    - WaitForSingleObject
    linkageType: ''
    returnType: int
    signature: wait_for_thread(thread_t thread)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: thread_run
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: void
    signature: '*thread_run(void *arg)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_create
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - thread_t*
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: run_thread
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c
    functionUses: 0
    functionsReached:
    - pthread_create
    linkageType: ''
    returnType: int
    signature: run_thread(thread_t *t, void (*f)(void))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_join
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - thread
    argTypes:
    - thread_t
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: wait_for_thread
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c
    functionUses: 0
    functionsReached:
    - pthread_join
    linkageType: ''
    returnType: int
    signature: wait_for_thread(thread_t thread)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:86,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:88,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:89,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:93,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:94,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 101
    functionName: test_lock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_read_lock
    - CRYPTO_THREAD_lock_new
    - CRYPTO_THREAD_unlock
    - fprintf
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: int
    signature: test_lock(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: once_do_run
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: once_do_run(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_run_once
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: once_run_thread_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_run_once
    linkageType: ''
    returnType: void
    signature: once_run_thread_cb(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_thread
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:119,1
    - Dst: wait_for_thread
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:120,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:122,1
    - Dst: CRYPTO_THREAD_run_once
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:126,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:127,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 137
    functionName: test_once
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c
    functionUses: 0
    functionsReached:
    - fprintf
    - CRYPTO_THREAD_run_once
    - run_thread
    - wait_for_thread
    linkageType: ''
    returnType: int
    signature: test_once(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 153
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 153
    functionName: thread_local_destructor
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: thread_local_destructor(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:159,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:161,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:165,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:166,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:170,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 177
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 177
    functionName: thread_local_thread_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_set_local
    - fprintf
    - CRYPTO_THREAD_get_local
    linkageType: ''
    returnType: void
    signature: thread_local_thread_cb(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:184,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:185,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:189,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:191,1
    - Dst: run_thread
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:195,1
    - Dst: wait_for_thread
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:196,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:198,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:203,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:209,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:211,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:217,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:225,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:226,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 231
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 231
    functionName: test_thread_local
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_get_local
    - run_thread
    - CRYPTO_THREAD_cleanup_local
    - CRYPTO_THREAD_init_local
    - wait_for_thread
    - fprintf
    linkageType: ''
    returnType: int
    signature: test_thread_local(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_lock
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:235,1
    - Dst: test_once
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:238,1
    - Dst: test_thread_local
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:241,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 246
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 246
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c
    functionUses: 22
    functionsReached:
    - printf
    - test_once
    - test_thread_local
    - test_lock
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:131,1
    - Dst: WHIRLPOOL
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:133,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:134,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:135,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:136,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:139,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:140,1
    - Dst: WHIRLPOOL
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:142,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:143,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:144,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:145,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:148,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:149,1
    - Dst: WHIRLPOOL
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:151,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:152,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:153,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:154,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:157,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:158,1
    - Dst: WHIRLPOOL
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:160,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:161,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:162,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:163,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:166,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:167,1
    - Dst: WHIRLPOOL
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:169,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:170,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:171,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:172,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:175,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:176,1
    - Dst: WHIRLPOOL
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:178,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:180,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:181,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:182,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:185,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:186,1
    - Dst: WHIRLPOOL
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:188,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:190,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:191,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:192,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:195,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:196,1
    - Dst: WHIRLPOOL
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:198,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:199,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:200,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:201,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:204,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:205,1
    - Dst: WHIRLPOOL_Init
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:207,1
    - Dst: WHIRLPOOL_Update
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:209,1
    - Dst: WHIRLPOOL_Final
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:219,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:220,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:221,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:222,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:225,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:226,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:228,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c:229,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 80
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 232
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 232
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c
    functionUses: 22
    functionsReached:
    - memcmp
    - WHIRLPOOL_Init
    - WHIRLPOOL_Update
    - WHIRLPOOL
    - WHIRLPOOL_Final
    - fprintf
    - fflush
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:53,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:54,1
    - Dst: RAND_seed
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:56,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:58,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:58,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:60,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:61,1
    - Dst: BN_GENCB_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:63,1
    - Dst: BN_GENCB_set
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:66,1
    - Dst: DH_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:67,1
    - Dst: DH_generate_parameters_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:68,1
    - Dst: DH_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:71,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:74,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:76,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:78,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:80,1
    - Dst: DH_get0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:82,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:83,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:84,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:85,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:86,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:87,1
    - Dst: DH_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:89,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:93,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:94,1
    - Dst: DH_set0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:95,1
    - Dst: DH_generate_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:99,1
    - Dst: DH_get0_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:101,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:102,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:103,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:104,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:105,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:106,1
    - Dst: DH_generate_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:108,1
    - Dst: DH_get0_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:110,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:111,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:112,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:113,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:114,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:115,1
    - Dst: DH_size
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:117,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:118,1
    - Dst: DH_compute_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:122,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:124,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:126,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:127,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:129,1
    - Dst: DH_size
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:131,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:132,1
    - Dst: DH_compute_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:136,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:138,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:140,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:141,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:143,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:144,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:145,1
    - Dst: run_rfc5114_tests
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:149,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:152,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:153,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:155,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:156,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:157,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:158,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:159,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:160,1
    - Dst: BN_GENCB_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:161,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:162,1
    - Dst: CRYPTO_mem_leaks_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:165,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:169,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 107
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 170
      start: 38
    functionDepth: 6
    functionLinenumber: 38
    functionLinenumberEnd: 170
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c
    functionUses: 22
    functionsReached:
    - ERR_print_errors_fp
    - RAND_seed
    - DH_generate_key
    - fprintf
    - run_rfc5114_tests
    - BN_print
    - BN_dup
    - BN_free
    - DH_get0_pqg
    - BIO_free
    - DH_free
    - BIO_set_fp
    - BIO_new
    - CRYPTO_set_mem_debug
    - DH_size
    - DH_set0_pqg
    - BIO_s_file
    - DH_compute_key
    - CRYPTO_mem_leaks_fp
    - EXIT
    - OPENSSL_free
    - sprintf
    - BN_GENCB_set
    - memcmp
    - BN_GENCB_free
    - BN_GENCB_new
    - DH_check
    - BIO_puts
    - BIO_flush
    - CRYPTO_mem_ctrl
    - DH_new
    - DH_get0_key
    - OPENSSL_malloc
    - DH_generate_parameters_ex
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:184,1
    - Dst: BN_GENCB_get_arg
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:184,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:185,1
    - Dst: BN_GENCB_get_arg
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - p
    - n
    - arg
    argTypes:
    - int
    - int
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 187
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 187
    functionName: cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c
    functionUses: 86
    functionsReached:
    - BIO_flush
    - BIO_write
    - BN_GENCB_get_arg
    linkageType: ''
    returnType: int
    signature: cb(int p, int n, BN_GENCB *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:482,1
    - Dst: rfc5114_td*::get_param
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:485,1
    - Dst: rfc5114_td*::get_param
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:486,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:490,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:491,1
    - Dst: DH_set0_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:493,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:496,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:497,1
    - Dst: DH_set0_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:500,1
    - Dst: DH_size
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:504,1
    - Dst: DH_size
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:505,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:508,1
    - Dst: DH_size
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:508,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:509,1
    - Dst: DH_size
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:509,1
    - Dst: DH_get0_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:516,1
    - Dst: DH_compute_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:517,1
    - Dst: DH_get0_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:520,1
    - Dst: DH_compute_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:521,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:524,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:526,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:529,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:531,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:532,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:533,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:534,1
    - Dst: DH_get_2048_224
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:543,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:546,1
    - Dst: DH_size
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:546,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:550,1
    - Dst: DH_generate_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:555,1
    - Dst: DH_compute_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:558,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:566,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:568,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:570,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:571,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:572,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:576,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:577,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:578,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:579,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:580,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:581,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:582,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:584,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:585,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:588,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:589,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:590,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:591,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:592,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c:594,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 97
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 596
      start: 471
    functionDepth: 5
    functionLinenumber: 471
    functionLinenumberEnd: 596
    functionName: run_rfc5114_tests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c
    functionUses: 1
    functionsReached:
    - rfc5114_td*::get_param
    - DH_set0_key
    - ERR_clear_error
    - memcmp
    - BN_free
    - BN_bin2bn
    - ERR_print_errors_fp
    - DH_compute_key
    - DH_get0_key
    - printf
    - DH_free
    - DH_generate_key
    - OSSL_NELEM
    - fprintf
    - OPENSSL_free
    - DH_get_2048_224
    - OPENSSL_malloc
    - DH_size
    linkageType: ''
    returnType: int
    signature: run_rfc5114_tests(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:44,1
    - Dst: BIO_meth_set_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:46,1
    - Dst: BIO_meth_set_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:47,1
    - Dst: BIO_meth_set_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:48,1
    - Dst: BIO_meth_set_gets
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:49,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:50,1
    - Dst: BIO_meth_set_create
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:51,1
    - Dst: BIO_meth_set_destroy
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:52,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 56
    functionName: bio_f_async_filter
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - BIO_meth_set_ctrl
    - BIO_meth_new
    - BIO_meth_set_gets
    - BIO_meth_set_destroy
    - BIO_meth_set_puts
    - BIO_meth_set_write
    - BIO_meth_set_read
    - BIO_meth_set_create
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*bio_f_async_filter()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:62,1
    - Dst: BIO_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:66,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 69
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 69
    functionName: async_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - BIO_set_data
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: async_new(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:77,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:78,1
    - Dst: BIO_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:79,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 83
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 83
    functionName: async_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - BIO_set_init
    - OPENSSL_free
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: async_free(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:89,1
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:96,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:98,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:101,1
    - Dst: BIO_should_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:102,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:103,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - bio
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 111
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 111
    functionName: async_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - BIO_get_data
    - BIO_next
    - BIO_set_retry_read
    - BIO_read
    - BIO_should_read
    linkageType: ''
    returnType: int
    signature: async_read(BIO *bio, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:125,1
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:132,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:134,1
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:141,1
    - Dst: abort
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:142,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:144,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:148,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:149,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:150,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:151,1
    - Dst: abort
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:152,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:157,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:174,1
    - Dst: abort
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:176,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:192,1
    - Dst: BIO_should_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:195,1
    - Dst: BIO_set_retry_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:196,1
    - Dst: BIO_set_retry_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:201,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 3
    argNames:
    - bio
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 205
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 205
    functionName: async_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - BIO_should_write
    - abort
    - PACKET_remaining
    - BIO_clear_retry_flags
    - BIO_get_data
    - BIO_set_retry_write
    - BIO_next
    - PACKET_buf_init
    - PACKET_get_length_prefixed_2
    - PACKET_get_1
    - BIO_write
    linkageType: ''
    returnType: int
    signature: async_write(BIO *bio, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:210,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - bio
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 224
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 224
    functionName: async_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - BIO_next
    linkageType: ''
    returnType: long
    signature: async_ctrl(BIO *bio, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bio
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: async_gets
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: async_gets(BIO *bio, char *buf, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: async_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:234,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: async_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - strlen
    - async_write
    linkageType: ''
    returnType: int
    signature: async_puts(BIO *bio, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:249,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:250,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:253,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:257,1
    - Dst: TLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:257,1
    - Dst: TLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:257,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:259,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:274,1
    - Dst: bio_f_async_filter
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:274,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:275,1
    - Dst: bio_f_async_filter
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:275,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:277,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:278,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:279,1
    - Dst: create_ssl_objects
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:284,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:286,1
    - Dst: create_ssl_connection
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:290,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:291,1
    - Dst: SSL_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:308,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:317,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:325,1
    - Dst: SSL_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:336,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:344,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:351,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:353,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:359,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:360,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:364,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:369,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:371,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:372,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:373,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:374,1
    - Dst: CRYPTO_mem_leaks_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c:377,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 91
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 381
      start: 239
    functionDepth: 5
    functionLinenumber: 239
    functionLinenumberEnd: 381
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c
    functionUses: 22
    functionsReached:
    - TLS_server_method
    - bio_f_async_filter
    - memcmp
    - SSL_write
    - SSL_CTX_free
    - ERR_print_errors_fp
    - CRYPTO_mem_ctrl
    - create_ssl_ctx_pair
    - BIO_free
    - CRYPTO_mem_leaks_fp
    - printf
    - create_ssl_objects
    - TLS_client_method
    - SSL_read
    - SSL_free
    - BIO_new
    - CRYPTO_set_mem_debug
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RC2_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c:62,1
    - Dst: RC2_ecb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c:64,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c:65,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c:66,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c:67,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c:69,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c:70,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c:71,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c:73,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c:75,1
    - Dst: RC2_ecb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c:78,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c:79,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c:80,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c:81,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c:83,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c:84,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c:85,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c:87,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c:88,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c:94,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c:96,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 97
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 97
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c
    functionUses: 22
    functionsReached:
    - memcmp
    - RC2_ecb_encrypt
    - printf
    - RC2_set_key
    - EXIT
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/md5test.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/md5test.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/test/md5test.c:59,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/md5test.c:59,1
    - Dst: EVP_md5
      Src: /src/openweave-core/third_party/openssl/openssl/test/md5test.c:59,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/md5test.c:61,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/md5test.c:62,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/md5test.c:64,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/md5test.c:65,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/md5test.c:66,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/md5test.c:67,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/md5test.c:70,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/md5test.c:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 77
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 77
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/md5test.c
    functionUses: 22
    functionsReached:
    - EVP_Digest
    - strcmp
    - pt
    - strlen
    - printf
    - EXIT
    - EVP_md5
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/md5test.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - md
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: pt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/md5test.c
    functionUses: 219
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: char
    signature: '*pt(unsigned char *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3ext.c:24,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3ext.c:27,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3ext.c:30,1
    - Dst: X509_get_pathlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3ext.c:33,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3ext.c:38,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3ext.c:39,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3ext.c:40,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - ac
    - av
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 42
      start: 16
    functionDepth: 5
    functionLinenumber: 16
    functionLinenumberEnd: 42
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/v3ext.c
    functionUses: 22
    functionsReached:
    - PEM_read_bio_X509
    - X509_get_pathlen
    - ERR_print_errors_fp
    - BIO_free
    - BIO_new_file
    - X509_free
    - fprintf
    linkageType: ''
    returnType: int
    signature: main(int ac, char **av)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:45,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:47,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:49,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:49,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:51,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:51,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:51,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:53,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:57,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:58,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:59,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:60,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:63,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:67,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:69,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:71,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:71,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:72,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:77,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:78,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:83,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:84,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:88,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:91,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:92,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:93,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:96,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:98,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:99,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 101
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 101
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c
    functionUses: 22
    functionsReached:
    - EVP_Digest
    - EVP_DigestFinal_ex
    - EVP_sha1
    - strcmp
    - EVP_DigestUpdate
    - pt
    - memset
    - EVP_MD_CTX_new
    - strlen
    - printf
    - EVP_MD_CTX_free
    - OSSL_NELEM
    - EXIT
    - ebcdic2ascii
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - md
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: pt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c
    functionUses: 220
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: char
    signature: '*pt(unsigned char *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:25,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:28,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:29,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - f
    - title
    - s
    - l
    argTypes:
    - FILE*
    - char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: hexdump
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/igetest.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: hexdump(FILE *f, const char *title, const unsigned char *s, int l)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:153,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:159,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:162,1
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:164,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:165,1
    - Dst: AES_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:166,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:168,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:169,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:170,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:171,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:172,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:173,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:174,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:180,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:181,1
    - Dst: AES_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:182,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:184,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:185,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:186,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:187,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:188,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:189,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:190,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:196,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:202,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:205,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:206,1
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:208,1
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:209,1
    - Dst: AES_bi_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:212,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:215,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:216,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:217,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:218,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:219,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:220,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:221,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:222,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 229
    functionName: run_test_vectors
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/igetest.c
    functionUses: 0
    functionsReached:
    - memcmp
    - hexdump
    - AES_ige_encrypt
    - AES_bi_ige_encrypt
    - memcpy
    - printf
    - AES_set_decrypt_key
    - OSSL_NELEM
    - assert
    - AES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: run_test_vectors(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:246,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:248,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:249,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:250,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:251,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:256,1
    - Dst: AES_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:257,1
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:259,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:260,1
    - Dst: AES_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:261,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:263,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:264,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:265,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:266,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:271,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:272,1
    - Dst: AES_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:273,1
    - Dst: AES_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:275,1
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:279,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:280,1
    - Dst: AES_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:281,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:283,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:284,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:285,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:286,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:291,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:292,1
    - Dst: AES_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:293,1
    - Dst: AES_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:295,1
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:299,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:300,1
    - Dst: AES_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:301,1
    - Dst: AES_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:303,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:307,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:308,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:309,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:310,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:315,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:316,1
    - Dst: AES_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:317,1
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:322,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:323,1
    - Dst: AES_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:324,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:333,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:338,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:349,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:352,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:353,1
    - Dst: AES_bi_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:354,1
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:357,1
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:358,1
    - Dst: AES_bi_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:359,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:362,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:363,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:364,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:365,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:370,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:371,1
    - Dst: AES_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:372,1
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:377,1
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:378,1
    - Dst: AES_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:379,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:388,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:393,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:394,1
    - Dst: AES_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:395,1
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:400,1
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:401,1
    - Dst: AES_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:402,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:411,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:416,1
    - Dst: AES_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:417,1
    - Dst: AES_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:418,1
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:423,1
    - Dst: AES_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:424,1
    - Dst: AES_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:425,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:434,1
    - Dst: run_test_vectors
      Src: /src/openweave-core/third_party/openssl/openssl/test/igetest.c:438,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 123
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 441
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 441
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/igetest.c
    functionUses: 22
    functionsReached:
    - RAND_bytes
    - memcmp
    - hexdump
    - AES_ige_encrypt
    - AES_bi_ige_encrypt
    - run_test_vectors
    - memcpy
    - printf
    - AES_set_decrypt_key
    - assert
    - AES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:193,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:194,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:198,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:198,1
    - Dst: BIO_new_mem_buf
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - pem
    - out
    argTypes:
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 200
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 200
    functionName: glue
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/crltest.c
    functionUses: 0
    functionsReached:
    - strlen
    - OPENSSL_malloc
    - strcpy
    - BIO_new_mem_buf
    linkageType: ''
    returnType: BIO
    signature: '*glue(const char **pem, char **out)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: glue
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:208,1
    - Dst: PEM_read_bio_X509_CRL
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:209,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:211,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pem
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 214
      start: 205
    functionDepth: 4
    functionLinenumber: 205
    functionLinenumberEnd: 214
    functionName: CRL_from_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/crltest.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - OPENSSL_free
    - PEM_read_bio_X509_CRL
    - glue
    linkageType: ''
    returnType: X509_CRL
    signature: '*CRL_from_strings(const char **pem)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: glue
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:222,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:223,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:225,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pem
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 228
      start: 219
    functionDepth: 4
    functionLinenumber: 219
    functionLinenumberEnd: 228
    functionName: X509_from_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/crltest.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - OPENSSL_free
    - glue
    - PEM_read_bio_X509
    linkageType: ''
    returnType: X509
    signature: '*X509_from_strings(const char **pem)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:285,1
    - Dst: sk_X509_CRL_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:285,1
    - Dst: sk_X509_CRL_push
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:287,1
    - Dst: X509_CRL_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:288,1
    - Dst: sk_X509_CRL_push
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:290,1
    - Dst: X509_CRL_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - X509_CRL*
    - X509_CRL*
    constantsTouched: []
    func_position:
      end: 294
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 294
    functionName: make_CRL_stack
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/crltest.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - X509_CRL_up_ref
    - sk_X509_CRL_push
    - sk_X509_CRL_new_null
    linkageType: ''
    returnType: STACK_OF
    signature: '*make_CRL_stack(X509_CRL *x1, X509_CRL *x2)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_from_strings
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:298,1
    - Dst: X509_from_strings
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:299,1
    - Dst: CRL_from_strings
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:300,1
    - Dst: CRL_from_strings
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:301,1
    - Dst: CRL_from_strings
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:302,1
    - Dst: CRL_from_strings
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:303,1
    - Dst: CRL_from_strings
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:304,1
    - Dst: CRL_from_strings
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:305,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:312,1
    - Dst: verify
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:316,1
    - Dst: make_CRL_stack
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:316,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:318,1
    - Dst: verify
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:322,1
    - Dst: make_CRL_stack
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:322,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:324,1
    - Dst: verify
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:328,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:330,1
    - Dst: verify
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:334,1
    - Dst: make_CRL_stack
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:334,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:336,1
    - Dst: verify
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:340,1
    - Dst: make_CRL_stack
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:340,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:342,1
    - Dst: verify
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:346,1
    - Dst: make_CRL_stack
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:346,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:349,1
    - Dst: verify
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:353,1
    - Dst: make_CRL_stack
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:353,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:356,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:363,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:364,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:365,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:366,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:367,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:368,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:369,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:370,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 372
      start: 296
    functionDepth: 5
    functionLinenumber: 296
    functionLinenumberEnd: 372
    functionName: test_crl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/crltest.c
    functionUses: 0
    functionsReached:
    - CRL_from_strings
    - X509_CRL_free
    - make_CRL_stack
    - X509_free
    - X509_from_strings
    - fprintf
    - verify
    linkageType: ''
    returnType: int
    signature: test_crl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:376,1
    - Dst: run_tests
      Src: /src/openweave-core/third_party/openssl/openssl/test/crltest.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 378
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 378
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/crltest.c
    functionUses: 22
    functionsReached:
    - run_tests
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - words
    argTypes:
    - BIGNUM*
    - int
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: bn_expand2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: '*bn_expand2(BIGNUM *b, int words)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:99,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:100,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:101,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - m
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: message
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 4
    functionsReached:
    - fprintf
    - BIO_puts
    linkageType: ''
    returnType: void
    signature: message(BIO *out, char *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:111,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:112,1
    - Dst: RAND_seed
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:116,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:121,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:123,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:132,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:134,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:136,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:136,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:138,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:140,1
    - Dst: BIO_write_filename
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:142,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:143,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:144,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:149,1
    - Dst: BIO_f_linebuffer
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:149,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:150,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:155,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:157,1
    - Dst: test_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:158,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:160,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:162,1
    - Dst: test_sub
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:163,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:165,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:167,1
    - Dst: test_lshift1
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:168,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:170,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:172,1
    - Dst: test_lshift
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:173,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:173,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:175,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:177,1
    - Dst: test_lshift
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:178,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:180,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:182,1
    - Dst: test_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:183,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:185,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:187,1
    - Dst: test_rshift
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:188,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:190,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:192,1
    - Dst: test_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:193,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:195,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:197,1
    - Dst: test_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:198,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:200,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:202,1
    - Dst: test_div
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:203,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:205,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:207,1
    - Dst: test_div_word
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:208,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:210,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:212,1
    - Dst: test_div_recp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:213,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:215,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:217,1
    - Dst: test_mod
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:218,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:220,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:222,1
    - Dst: test_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:223,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:225,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:227,1
    - Dst: test_mont
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:228,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:230,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:232,1
    - Dst: test_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:233,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:235,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:237,1
    - Dst: test_mod_exp_mont_consttime
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:238,1
    - Dst: test_mod_exp_mont5
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:240,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:242,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:244,1
    - Dst: test_exp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:245,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:247,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:249,1
    - Dst: test_kron
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:250,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:252,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:254,1
    - Dst: test_sqrt
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:255,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:257,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:259,1
    - Dst: test_small_prime
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:260,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:262,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:264,1
    - Dst: test_bn2dec
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:265,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:267,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:270,1
    - Dst: test_gf2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:271,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:273,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:275,1
    - Dst: test_gf2m_mod
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:276,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:278,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:280,1
    - Dst: test_gf2m_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:281,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:283,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:285,1
    - Dst: test_gf2m_mod_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:286,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:288,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:290,1
    - Dst: test_gf2m_mod_inv
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:291,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:293,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:295,1
    - Dst: test_gf2m_mod_div
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:296,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:298,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:300,1
    - Dst: test_gf2m_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:301,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:303,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:305,1
    - Dst: test_gf2m_mod_sqrt
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:306,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:308,1
    - Dst: message
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:310,1
    - Dst: test_gf2m_mod_solve_quad
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:311,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:313,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:315,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:316,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:318,1
    - Dst: CRYPTO_mem_leaks_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:321,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:322,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:324,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:326,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:329,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:330,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:331,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:333,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:334,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 208
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 335
      start: 105
    functionDepth: 5
    functionLinenumber: 105
    functionLinenumberEnd: 335
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 22
    functionsReached:
    - BIO_push
    - test_div_word
    - test_lshift
    - BN_bin2bn
    - test_gf2m_mod_inv
    - test_mod
    - ERR_print_errors_fp
    - RAND_seed
    - test_add
    - test_sqrt
    - test_bn2dec
    - test_mod_exp_mont5
    - test_gf2m_mod_div
    - test_gf2m_mod_sqr
    - test_rshift
    - test_mod_mul
    - message
    - test_mod_exp_mont_consttime
    - perror
    - BIO_free
    - test_gf2m_mod_sqrt
    - BN_CTX_new
    - BIO_set_fp
    - test_div_recp
    - BIO_new
    - CRYPTO_set_mem_debug
    - test_gf2m_mod_exp
    - test_mont
    - test_sub
    - BIO_write_filename
    - test_gf2m_mod_mul
    - BIO_s_file
    - test_kron
    - test_gf2m_add
    - CRYPTO_mem_leaks_fp
    - test_small_prime
    - EXIT
    - test_gf2m_mod_solve_quad
    - test_mod_exp
    - strcmp
    - BIO_puts
    - BIO_flush
    - test_gf2m_mod
    - CRYPTO_mem_ctrl
    - test_sqr
    - test_exp
    - BIO_f_linebuffer
    - test_lshift1
    - test_div
    - BN_CTX_free
    - test_mul
    - test_rshift1
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:342,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:343,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:344,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:346,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:348,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:349,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:350,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:351,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:354,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:355,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:356,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:357,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:359,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:360,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:364,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:365,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:366,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:367,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:371,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:372,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 1
    argNames:
    - bp
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 375
      start: 337
    functionDepth: 6
    functionLinenumber: 337
    functionLinenumberEnd: 375
    functionName: test_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_print
    - BN_free
    - BIO_puts
    - BN_is_zero
    - BN_bntest_rand
    - BN_add
    - rand_neg
    - fprintf
    linkageType: ''
    returnType: int
    signature: test_add(BIO *bp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:382,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:383,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:384,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:388,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:389,1
    - Dst: BN_set_bit
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:390,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:392,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:394,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:395,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:396,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:398,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:401,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:402,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:403,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:404,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:406,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:407,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:409,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:410,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:411,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:412,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:416,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:417,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:418,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 1
    argNames:
    - bp
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 420
      start: 377
    functionDepth: 6
    functionLinenumber: 377
    functionLinenumberEnd: 420
    functionName: test_sub
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - fprintf
    - BN_add_word
    - BN_print
    - BN_free
    - BN_sub
    - BIO_puts
    - BN_is_zero
    - BN_bntest_rand
    - BN_add
    - BN_copy
    - rand_neg
    - BN_set_bit
    linkageType: ''
    returnType: int
    signature: test_sub(BIO *bp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:427,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:428,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:429,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:430,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:431,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:433,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:434,1
    - Dst: BN_div
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:436,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:437,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:443,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:444,1
    - Dst: BN_lshift
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:445,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:446,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:448,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:449,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:450,1
    - Dst: BN_div
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:451,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:454,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:455,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:456,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:457,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:459,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:460,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:463,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:464,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:465,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:466,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:468,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:469,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:471,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:472,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:473,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:474,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:475,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:479,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:480,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:481,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:482,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:483,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 55
    argCount: 2
    argNames:
    - bp
    - ctx
    argTypes:
    - BIO*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 485
      start: 422
    functionDepth: 6
    functionLinenumber: 422
    functionLinenumberEnd: 485
    functionName: test_div
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_add_word
    - BN_print
    - BN_free
    - BIO_puts
    - BN_mul
    - BN_sub
    - BN_bntest_rand
    - BN_is_zero
    - BN_add
    - BN_lshift
    - BN_one
    - BN_zero
    - BN_copy
    - rand_neg
    - fprintf
    - BN_div
    linkageType: ''
    returnType: int
    signature: test_div(BIO *bp, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:502,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:507,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - bp
    - w
    argTypes:
    - BIO*
    - BN_ULONG
    constantsTouched: []
    func_position:
      end: 508
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 508
    functionName: print_word
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: print_word(BIO *bp, BN_ULONG w)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:516,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:517,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:521,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:522,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:523,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:526,1
    - Dst: BN_mod_word
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:527,1
    - Dst: BN_div_word
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:528,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:531,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:537,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:538,1
    - Dst: print_word
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:539,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:540,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:542,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:543,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:546,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:547,1
    - Dst: print_word
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:548,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:549,1
    - Dst: print_word
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:551,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:552,1
    - Dst: BN_mul_word
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:554,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:555,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:556,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:557,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:558,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:562,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:563,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 45
    argCount: 1
    argNames:
    - bp
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 565
      start: 510
    functionDepth: 6
    functionLinenumber: 510
    functionLinenumberEnd: 565
    functionName: test_div_word
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_mul_word
    - BN_print
    - BN_mod_word
    - BN_add_word
    - BIO_puts
    - BN_is_zero
    - BN_sub
    - BN_bntest_rand
    - BN_free
    - print_word
    - BN_copy
    - BN_div_word
    - fprintf
    linkageType: ''
    returnType: int
    signature: test_div_word(BIO *bp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_RECP_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:573,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:574,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:575,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:576,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:577,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:578,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:582,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:583,1
    - Dst: BN_lshift
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:584,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:585,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:587,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:588,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:589,1
    - Dst: BN_RECP_CTX_set
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:590,1
    - Dst: BN_div_recp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:591,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:594,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:595,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:596,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:597,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:599,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:600,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:603,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:604,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:605,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:606,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:608,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:609,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:611,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:612,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:613,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:614,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:615,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:616,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:617,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:618,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:619,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:620,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:624,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:625,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:626,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:627,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:628,1
    - Dst: BN_RECP_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:629,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 57
    argCount: 2
    argNames:
    - bp
    - ctx
    argTypes:
    - BIO*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 631
      start: 567
    functionDepth: 6
    functionLinenumber: 567
    functionLinenumberEnd: 631
    functionName: test_div_recp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_sub
    - BN_mul
    - fprintf
    - BN_print_fp
    - BN_RECP_CTX_new
    - BN_print
    - BN_free
    - BN_is_zero
    - BN_lshift
    - BN_new
    - BN_copy
    - rand_neg
    - BN_add_word
    - BN_RECP_CTX_free
    - BIO_puts
    - BN_bntest_rand
    - BN_div_recp
    - BN_add
    - BN_RECP_CTX_set
    linkageType: ''
    returnType: int
    signature: test_div_recp(BIO *bp, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:639,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:641,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:643,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:644,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:645,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:646,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:647,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:651,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:652,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:654,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:655,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:656,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:657,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:660,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:661,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:662,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:663,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:665,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:666,1
    - Dst: BN_div
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:668,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:669,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:670,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:670,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:671,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:675,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:676,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:677,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:678,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:679,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:680,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 1
    argNames:
    - bp
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 682
      start: 633
    functionDepth: 6
    functionLinenumber: 633
    functionLinenumberEnd: 682
    functionName: test_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_print
    - BN_free
    - BIO_puts
    - BN_mul
    - BN_sub
    - BN_bntest_rand
    - BN_is_zero
    - BN_CTX_free
    - rand_neg
    - BN_CTX_new
    - fprintf
    - EXIT
    - BN_div
    linkageType: ''
    returnType: int
    signature: test_mul(BIO *bp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:689,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:690,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:691,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:692,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:698,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:699,1
    - Dst: BN_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:700,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:703,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:704,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:705,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:706,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:708,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:709,1
    - Dst: BN_div
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:711,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:712,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:713,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:713,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:714,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:720,1
    - Dst: BN_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:723,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:726,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:727,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:728,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:729,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:731,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:732,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:734,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:735,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:736,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:742,1
    - Dst: BN_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:745,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:748,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:749,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:750,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:751,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:753,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:754,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:756,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:757,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:758,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:764,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:765,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:766,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:767,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 75
    argCount: 2
    argNames:
    - bp
    - ctx
    argTypes:
    - BIO*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 769
      start: 684
    functionDepth: 6
    functionLinenumber: 684
    functionLinenumberEnd: 769
    functionName: test_sqr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_print
    - BN_free
    - BIO_puts
    - BN_sub
    - BN_is_zero
    - BN_bntest_rand
    - BN_hex2bn
    - BN_mul
    - BN_cmp
    - BN_sqr
    - rand_neg
    - fprintf
    - BN_div
    linkageType: ''
    returnType: int
    signature: test_sqr(BIO *bp, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:778,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:779,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:780,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:781,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:782,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:783,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:784,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:786,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:790,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:791,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:792,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:796,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:797,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:798,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:802,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:803,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:809,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:810,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:812,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:813,1
    - Dst: BN_to_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:815,1
    - Dst: BN_to_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:816,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:818,1
    - Dst: BN_from_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:819,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:822,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:823,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:824,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:825,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:826,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:827,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:829,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:830,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:832,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:833,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:834,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:835,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:841,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:846,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:851,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:856,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:857,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:858,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:859,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:860,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:865,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:866,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:867,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:868,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:869,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:870,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:871,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:872,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 72
    argCount: 2
    argNames:
    - bp
    - ctx
    argTypes:
    - BIO*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 874
      start: 771
    functionDepth: 6
    functionLinenumber: 771
    functionLinenumberEnd: 874
    functionName: test_mont
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_MONT_CTX_new
    - BN_sub
    - BN_zero
    - BN_to_montgomery
    - fprintf
    - BN_MONT_CTX_set
    - BN_from_montgomery
    - BN_print
    - BN_free
    - BN_nnmod
    - BN_is_zero
    - BN_cmp
    - BN_mod_mul
    - BN_mod_mul_montgomery
    - BN_new
    - BN_hex2bn
    - BN_MONT_CTX_free
    - BIO_puts
    - BN_bntest_rand
    - BN_set_word
    linkageType: ''
    returnType: int
    signature: test_mont(BIO *bp, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:881,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:882,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:883,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:884,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:885,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:887,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:889,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:890,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:891,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:892,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:895,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:896,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:897,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:898,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:900,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:901,1
    - Dst: BN_div
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:903,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:904,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:905,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:906,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:910,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:911,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:912,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:913,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:914,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 2
    argNames:
    - bp
    - ctx
    argTypes:
    - BIO*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 916
      start: 876
    functionDepth: 6
    functionLinenumber: 876
    functionLinenumberEnd: 916
    functionName: test_mod
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_print
    - BN_free
    - BIO_puts
    - BN_sub
    - BN_is_zero
    - BN_bntest_rand
    - BN_mod
    - rand_neg
    - fprintf
    - BN_div
    linkageType: ''
    returnType: int
    signature: test_mod(BIO *bp, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:923,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:924,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:925,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:926,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:927,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:929,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:930,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:931,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:932,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:933,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:938,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:940,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:941,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:942,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:943,1
    - Dst: BN_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:944,1
    - Dst: ERR_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:947,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:948,1
    - Dst: ERR_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:948,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:949,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:953,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:954,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:955,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:956,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:957,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:958,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:965,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:966,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:968,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:970,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:971,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:973,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:974,1
    - Dst: BN_div
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:975,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:976,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:977,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:978,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:983,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:984,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:985,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:986,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:987,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 2
    argNames:
    - bp
    - ctx
    argTypes:
    - BIO*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 989
      start: 918
    functionDepth: 6
    functionLinenumber: 918
    functionLinenumberEnd: 989
    functionName: test_mod_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - ERR_error_string
    - BN_print
    - BN_free
    - BIO_puts
    - BN_is_zero
    - BN_mul
    - BN_bntest_rand
    - BN_sub
    - ERR_print_errors_fp
    - BN_div
    - BN_one
    - BN_zero
    - rand_neg
    - BN_mod_mul
    - fprintf
    - EXIT
    - ERR_get_error
    linkageType: ''
    returnType: int
    signature: test_mod_mul(BIO *bp, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:996,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:997,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:998,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:999,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1000,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1002,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1003,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1004,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1005,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1006,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1010,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1012,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1013,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1015,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1020,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1021,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1022,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1023,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1024,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1025,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1027,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1028,1
    - Dst: BN_exp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1030,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1031,1
    - Dst: BN_div
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1032,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1033,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1034,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1040,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1041,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1042,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1049,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1050,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1051,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1052,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1056,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1057,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1058,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1059,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1060,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 54
    argCount: 2
    argNames:
    - bp
    - ctx
    argTypes:
    - BIO*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1062
      start: 991
    functionDepth: 6
    functionLinenumber: 991
    functionLinenumberEnd: 1062
    functionName: test_mod_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_print
    - BN_free
    - BIO_puts
    - BN_sub
    - BN_is_zero
    - BN_mod_exp
    - BN_bntest_rand
    - BN_hex2bn
    - BN_mul
    - BN_exp
    - BN_cmp
    - BN_one
    - BN_zero
    - fprintf
    - BN_div
    linkageType: ''
    returnType: int
    signature: test_mod_exp(BIO *bp, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1069,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1070,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1071,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1072,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1073,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1075,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1076,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1077,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1078,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1079,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1084,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1085,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1086,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1091,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1093,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1094,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1096,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1101,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1102,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1103,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1104,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1105,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1106,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1108,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1109,1
    - Dst: BN_exp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1111,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1112,1
    - Dst: BN_div
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1113,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1114,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1115,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1119,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1120,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1121,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1122,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1123,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 50
    argCount: 2
    argNames:
    - bp
    - ctx
    argTypes:
    - BIO*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1125
      start: 1064
    functionDepth: 6
    functionLinenumber: 1064
    functionLinenumberEnd: 1125
    functionName: test_mod_exp_mont_consttime
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_print
    - BN_free
    - BIO_puts
    - BN_sub
    - BN_is_zero
    - BN_bntest_rand
    - BN_exp
    - BN_one
    - BN_zero
    - BN_set_word
    - BN_mod_exp_mont_consttime
    - fprintf
    - BN_div
    linkageType: ''
    returnType: int
    signature: test_mod_exp_mont_consttime(BIO *bp, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1136,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1137,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1138,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1139,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1140,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1141,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1143,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1145,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1146,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1147,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1149,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1150,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1154,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1155,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1156,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1158,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1159,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1167,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1168,1
    - Dst: BN_from_montgomery
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1169,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1171,1
    - Dst: BN_mod_exp_simple
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1173,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1175,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1176,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1180,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1181,1
    - Dst: BN_mod_exp_simple
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1183,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1185,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1186,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1189,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1190,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1191,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1192,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1193,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1194,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 2
    argNames:
    - bp
    - ctx
    argTypes:
    - BIO*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1196
      start: 1131
    functionDepth: 6
    functionLinenumber: 1131
    functionLinenumberEnd: 1196
    functionName: test_mod_exp_mont5
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_MONT_CTX_new
    - BN_free
    - BN_is_zero
    - BN_bntest_rand
    - BN_mod_exp_simple
    - BN_cmp
    - BN_MONT_CTX_free
    - BN_one
    - BN_zero
    - BN_mod_exp_mont_consttime
    - BN_is_one
    - fprintf
    - BN_MONT_CTX_set
    - BN_from_montgomery
    linkageType: ''
    returnType: int
    signature: test_mod_exp_mont5(BIO *bp, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1203,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1204,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1205,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1206,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1207,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1208,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1211,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1212,1
    - Dst: BN_exp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1214,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1219,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1220,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1221,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1222,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1224,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1225,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1227,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1228,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1228,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1229,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1230,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1231,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1232,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1236,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1237,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1238,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1239,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1240,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 2
    argNames:
    - bp
    - ctx
    argTypes:
    - BIO*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1242
      start: 1198
    functionDepth: 6
    functionLinenumber: 1198
    functionLinenumberEnd: 1242
    functionName: test_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_print
    - BN_free
    - BIO_puts
    - BN_is_zero
    - BN_sub
    - BN_bntest_rand
    - BN_mul
    - BN_exp
    - BN_one
    - fprintf
    linkageType: ''
    returnType: int
    signature: test_exp(BIO *bp, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1250,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1251,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1252,1
    - Dst: BN_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1255,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1256,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1256,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1257,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1258,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1259,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1261,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1261,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1262,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1262,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1263,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1266,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1268,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1269,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1275,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1276,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1277,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - bp
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 1279
      start: 1245
    functionDepth: 6
    functionLinenumber: 1245
    functionLinenumberEnd: 1279
    functionName: test_gf2m_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_value_one
    - BN_is_odd
    - BN_free
    - BN_is_zero
    - BN_rand
    - rand_neg
    - BN_copy
    - fprintf
    - BN_GF2m_add
    linkageType: ''
    returnType: int
    signature: test_gf2m_add(BIO *bp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1288,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1289,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1290,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1291,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1292,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1293,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1295,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1296,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1299,1
    - Dst: BN_GF2m_mod
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1301,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1302,1
    - Dst: BN_GF2m_mod
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1303,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1305,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1306,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1313,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1314,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1315,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1316,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1317,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1318,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - bp
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 1320
      start: 1281
    functionDepth: 6
    functionLinenumber: 1281
    functionLinenumberEnd: 1320
    functionName: test_gf2m_mod
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_GF2m_arr2poly
    - BN_free
    - BN_GF2m_mod
    - BN_is_zero
    - BN_bntest_rand
    - fprintf
    - BN_GF2m_add
    linkageType: ''
    returnType: int
    signature: test_gf2m_mod(BIO *bp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1329,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1330,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1331,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1332,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1333,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1334,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1335,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1336,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1337,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1339,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1340,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1343,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1344,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1345,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1347,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1348,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1349,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1350,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1351,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1352,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1354,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1355,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1363,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1364,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1365,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1366,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1367,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1368,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1369,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1370,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1371,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 2
    argNames:
    - bp
    - ctx
    argTypes:
    - BIO*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1373
      start: 1322
    functionDepth: 6
    functionLinenumber: 1322
    functionLinenumberEnd: 1373
    functionName: test_gf2m_mod_mul
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_GF2m_arr2poly
    - fprintf
    - BN_free
    - BN_is_zero
    - BN_bntest_rand
    - BN_GF2m_mod_mul
    - BN_GF2m_add
    linkageType: ''
    returnType: int
    signature: test_gf2m_mod_mul(BIO *bp, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1382,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1383,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1384,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1385,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1386,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1388,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1389,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1392,1
    - Dst: BN_GF2m_mod_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1394,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1395,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1396,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1397,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1399,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1400,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1407,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1408,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1409,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1410,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1411,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 2
    argNames:
    - bp
    - ctx
    argTypes:
    - BIO*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1413
      start: 1375
    functionDepth: 6
    functionLinenumber: 1375
    functionLinenumberEnd: 1413
    functionName: test_gf2m_mod_sqr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_GF2m_arr2poly
    - fprintf
    - BN_GF2m_add
    - BN_free
    - BN_is_zero
    - BN_bntest_rand
    - BN_copy
    - BN_GF2m_mod_mul
    - BN_GF2m_mod_sqr
    linkageType: ''
    returnType: int
    signature: test_gf2m_mod_sqr(BIO *bp, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1422,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1423,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1424,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1425,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1426,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1428,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1429,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1432,1
    - Dst: BN_GF2m_mod_inv
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1434,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1435,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1437,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1438,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1445,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1446,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1447,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1448,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1449,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - bp
    - ctx
    argTypes:
    - BIO*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1451
      start: 1415
    functionDepth: 6
    functionLinenumber: 1415
    functionLinenumberEnd: 1451
    functionName: test_gf2m_mod_inv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_GF2m_arr2poly
    - fprintf
    - BN_free
    - BN_bntest_rand
    - BN_is_one
    - BN_GF2m_mod_mul
    - BN_GF2m_mod_inv
    linkageType: ''
    returnType: int
    signature: test_gf2m_mod_inv(BIO *bp, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1460,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1461,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1462,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1463,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1464,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1465,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1466,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1468,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1469,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1472,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1473,1
    - Dst: BN_GF2m_mod_div
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1475,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1476,1
    - Dst: BN_GF2m_mod_div
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1477,1
    - Dst: BN_is_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1479,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1480,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1487,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1488,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1489,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1490,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1491,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1492,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1493,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 2
    argNames:
    - bp
    - ctx
    argTypes:
    - BIO*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1495
      start: 1453
    functionDepth: 6
    functionLinenumber: 1453
    functionLinenumberEnd: 1495
    functionName: test_gf2m_mod_div
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_GF2m_arr2poly
    - fprintf
    - BN_free
    - BN_bntest_rand
    - BN_is_one
    - BN_GF2m_mod_mul
    - BN_GF2m_mod_div
    linkageType: ''
    returnType: int
    signature: test_gf2m_mod_div(BIO *bp, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1504,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1505,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1506,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1507,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1508,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1509,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1510,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1512,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1513,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1516,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1517,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1518,1
    - Dst: BN_GF2m_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1520,1
    - Dst: BN_GF2m_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1521,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1522,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1523,1
    - Dst: BN_GF2m_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1524,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1525,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1527,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1528,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1536,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1537,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1538,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1539,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1540,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1541,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1542,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 2
    argNames:
    - bp
    - ctx
    argTypes:
    - BIO*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1544
      start: 1497
    functionDepth: 6
    functionLinenumber: 1497
    functionLinenumberEnd: 1544
    functionName: test_gf2m_mod_exp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_GF2m_arr2poly
    - fprintf
    - BN_free
    - BN_is_zero
    - BN_bntest_rand
    - BN_add
    - BN_GF2m_mod_exp
    - BN_GF2m_mod_mul
    - BN_GF2m_add
    linkageType: ''
    returnType: int
    signature: test_gf2m_mod_exp(BIO *bp, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1553,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1554,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1555,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1556,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1557,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1558,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1559,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1561,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1562,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1565,1
    - Dst: BN_GF2m_mod
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1567,1
    - Dst: BN_GF2m_mod_sqrt
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1568,1
    - Dst: BN_GF2m_mod_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1569,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1570,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1572,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1573,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1580,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1581,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1582,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1583,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1584,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1585,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1586,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 2
    argNames:
    - bp
    - ctx
    argTypes:
    - BIO*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1588
      start: 1546
    functionDepth: 6
    functionLinenumber: 1546
    functionLinenumberEnd: 1588
    functionName: test_gf2m_mod_sqrt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_GF2m_arr2poly
    - BN_GF2m_add
    - BN_free
    - BN_GF2m_mod_sqrt
    - BN_GF2m_mod
    - BN_is_zero
    - BN_bntest_rand
    - fprintf
    - BN_GF2m_mod_sqr
    linkageType: ''
    returnType: int
    signature: test_gf2m_mod_sqrt(BIO *bp, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1597,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1598,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1599,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1600,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1601,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1602,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1604,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1605,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1608,1
    - Dst: BN_GF2m_mod_solve_quad
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1610,1
    - Dst: BN_GF2m_mod_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1613,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1614,1
    - Dst: BN_GF2m_mod
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1615,1
    - Dst: BN_GF2m_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1616,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1620,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1621,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1630,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1633,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1639,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1640,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1641,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1642,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1643,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1644,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 2
    argNames:
    - bp
    - ctx
    argTypes:
    - BIO*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1646
      start: 1590
    functionDepth: 8
    functionLinenumber: 1590
    functionLinenumberEnd: 1646
    functionName: test_gf2m_mod_solve_quad
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_GF2m_arr2poly
    - BN_GF2m_mod_solve_quad
    - BN_GF2m_add
    - BN_GF2m_mod
    - BN_is_zero
    - BN_free
    - BN_bntest_rand
    - fprintf
    - BN_GF2m_mod_sqr
    linkageType: ''
    returnType: int
    signature: test_gf2m_mod_solve_quad(BIO *bp, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: putc
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1660,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1661,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - p
    - n
    - arg
    argTypes:
    - int
    - int
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 1663
      start: 1648
    functionDepth: 0
    functionLinenumber: 1648
    functionLinenumberEnd: 1663
    functionName: genprime_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 0
    functionsReached:
    - fflush
    - putc
    linkageType: ''
    returnType: int
    signature: genprime_cb(int p, int n, BN_GENCB *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1673,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1674,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1675,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1676,1
    - Dst: BN_GENCB_set
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1680,1
    - Dst: BN_generate_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1692,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1694,1
    - Dst: putc
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1695,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1698,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1700,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1703,1
    - Dst: BN_sub_word
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1706,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1708,1
    - Dst: BN_mod_exp_recp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1713,1
    - Dst: BN_is_word
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1717,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1719,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1722,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1724,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1725,1
    - Dst: BN_kronecker
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1731,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1739,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1740,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1741,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1742,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1743,1
    - Dst: putc
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1747,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1748,1
    - Dst: putc
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1751,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1752,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1755,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1756,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1757,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1758,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 76
    argCount: 2
    argNames:
    - bp
    - ctx
    argTypes:
    - BIO*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1760
      start: 1665
    functionDepth: 6
    functionLinenumber: 1665
    functionLinenumberEnd: 1760
    functionName: test_kron
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_sub_word
    - BN_is_word
    - BN_ucmp
    - fprintf
    - BN_kronecker
    - BN_print_fp
    - BN_free
    - BN_is_zero
    - BN_rshift1
    - BN_mod_exp_recp
    - BN_new
    - putc
    - BN_generate_prime_ex
    - rand_neg
    - BN_copy
    - fflush
    - BN_GENCB_set
    - BN_add_word
    - BN_bntest_rand
    linkageType: ''
    returnType: int
    signature: test_kron(BIO *bp, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1769,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1770,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1771,1
    - Dst: BN_GENCB_set
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1775,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1781,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1784,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1786,1
    - Dst: BN_generate_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1789,1
    - Dst: putc
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1791,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1793,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1800,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1802,1
    - Dst: BN_mod_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1804,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1806,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1808,1
    - Dst: BN_mod_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1810,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1812,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1814,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1815,1
    - Dst: BN_mod_sqrt
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1818,1
    - Dst: BN_mod_sqr
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1820,1
    - Dst: BN_nnmod
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1823,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1826,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1827,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1828,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1829,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1830,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1831,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1832,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1833,1
    - Dst: putc
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1837,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1838,1
    - Dst: putc
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1841,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1842,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1846,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1847,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1848,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 85
    argCount: 2
    argNames:
    - bp
    - ctx
    argTypes:
    - BIO*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1850
      start: 1762
    functionDepth: 7
    functionLinenumber: 1762
    functionLinenumberEnd: 1850
    functionName: test_sqrt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_GENCB_set
    - putc
    - BN_free
    - BN_nnmod
    - BN_sub
    - BN_mod_sqr
    - BN_mul
    - BN_bntest_rand
    - BN_cmp
    - BN_generate_prime_ex
    - BN_set_word
    - rand_neg
    - BN_mod_sqrt
    - fprintf
    - fflush
    - BN_print_fp
    linkageType: ''
    returnType: int
    signature: test_sqrt(BIO *bp, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1858,1
    - Dst: BN_generate_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1859,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1861,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1862,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1863,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1870,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - bp
    - ctx
    argTypes:
    - BIO*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 1872
      start: 1852
    functionDepth: 3
    functionLinenumber: 1852
    functionLinenumberEnd: 1872
    functionName: test_small_prime
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_clear_free
    - BN_generate_prime_ex
    - BN_num_bits
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: test_small_prime(BIO *bp, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1892,1
    - Dst: BN_dec2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1893,1
    - Dst: BN_bn2dec
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1896,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1898,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1902,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1903,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1908,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1915,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1916,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - bp
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 1918
      start: 1874
    functionDepth: 5
    functionLinenumber: 1874
    functionLinenumberEnd: 1918
    functionName: test_bn2dec
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_bn2dec
    - BN_dec2bn
    - BN_free
    - strcmp
    - OSSL_NELEM
    - fprintf
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: test_bn2dec(BIO *bp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1925,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1926,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1927,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1928,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1933,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1934,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1935,1
    - Dst: BN_lshift
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1938,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1939,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1942,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1943,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1944,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1945,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1947,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1948,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1950,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1951,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1952,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1953,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1954,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1955,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1956,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1957,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1958,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1959,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1960,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1961,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1962,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1966,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1967,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1968,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1969,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 3
    argNames:
    - bp
    - ctx
    - a_
    argTypes:
    - BIO*
    - BN_CTX*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 1971
      start: 1920
    functionDepth: 6
    functionLinenumber: 1920
    functionLinenumberEnd: 1971
    functionName: test_lshift
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_print
    - BN_free
    - BIO_puts
    - BN_mul
    - BN_sub
    - BN_bntest_rand
    - BN_is_zero
    - BN_add
    - BN_lshift
    - BN_one
    - rand_neg
    - fprintf
    - BN_print_fp
    linkageType: ''
    returnType: int
    signature: test_lshift(BIO *bp, BN_CTX *ctx, BIGNUM *a_)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1978,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1979,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1980,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1982,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1983,1
    - Dst: BN_lshift1
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1985,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1988,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1989,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1990,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1992,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1993,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1995,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1996,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1997,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:1998,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2002,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2004,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2005,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2006,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - bp
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 2008
      start: 1973
    functionDepth: 6
    functionLinenumber: 1973
    functionLinenumberEnd: 2008
    functionName: test_lshift1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_print
    - BN_free
    - BIO_puts
    - BN_sub
    - BN_is_zero
    - BN_bntest_rand
    - BN_add
    - rand_neg
    - BN_copy
    - fprintf
    - BN_lshift1
    linkageType: ''
    returnType: int
    signature: test_lshift1(BIO *bp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2015,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2016,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2017,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2018,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2019,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2020,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2022,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2023,1
    - Dst: BN_rshift
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2025,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2026,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2029,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2030,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2031,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2032,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2034,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2035,1
    - Dst: BN_div
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2037,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2038,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2039,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2040,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2044,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2045,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2046,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2047,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2048,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 2
    argNames:
    - bp
    - ctx
    argTypes:
    - BIO*
    - BN_CTX*
    constantsTouched: []
    func_position:
      end: 2050
      start: 2010
    functionDepth: 6
    functionLinenumber: 2010
    functionLinenumberEnd: 2050
    functionName: test_rshift
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_rshift
    - BN_print
    - BN_free
    - BIO_puts
    - BN_sub
    - BN_is_zero
    - BN_bntest_rand
    - BN_add
    - BN_one
    - rand_neg
    - fprintf
    - BN_div
    linkageType: ''
    returnType: int
    signature: test_rshift(BIO *bp, BN_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2057,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2058,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2059,1
    - Dst: BN_bntest_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2061,1
    - Dst: rand_neg
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2062,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2064,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2067,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2068,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2069,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2071,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2072,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2074,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2075,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2076,1
    - Dst: BN_abs_is_word
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2076,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2077,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2080,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2082,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2083,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bntest.c:2084,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - bp
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 2086
      start: 2052
    functionDepth: 6
    functionLinenumber: 2052
    functionLinenumberEnd: 2086
    functionName: test_rshift1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_print
    - BN_free
    - BIO_puts
    - BN_sub
    - BN_is_zero
    - BN_bntest_rand
    - rand_neg
    - BN_copy
    - BN_abs_is_word
    - fprintf
    - BN_rshift1
    linkageType: ''
    returnType: int
    signature: test_rshift1(BIO *bp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2094
      start: 2088
    functionDepth: 0
    functionLinenumber: 2088
    functionLinenumberEnd: 2094
    functionName: rand_neg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: rand_neg(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 308
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 308
    functionName: cookie_gen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: cookie_gen(SSL *ssl, unsigned char *cookie, unsigned int *cookie_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 324
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 324
    functionName: cookie_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "cookie_verify(SSL *ssl, const unsigned char *cookie,\n                         unsigned
      int cookie_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ADDR_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:334,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:340,1
    - Dst: DTLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:340,1
    - Dst: SSL_CTX_set_cookie_generate_cb
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:344,1
    - Dst: SSL_CTX_set_cookie_verify_cb
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:345,1
    - Dst: SSL_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:348,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:352,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:352,1
    - Dst: SSL_set0_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:355,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:358,1
    - Dst: BIO_new_mem_buf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:359,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:366,1
    - Dst: SSL_set0_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:368,1
    - Dst: DTLSv1_listen
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:371,1
    - Dst: BIO_get_mem_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:377,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:382,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:383,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:386,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:389,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:395,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:397,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:401,1
    - Dst: BIO_reset
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:404,1
    - Dst: SSL_set0_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:407,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:412,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:414,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:415,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:416,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:417,1
    - Dst: CRYPTO_mem_leaks_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:419,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c:423,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 426
      start: 327
    functionDepth: 5
    functionLinenumber: 327
    functionLinenumberEnd: 426
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c
    functionUses: 22
    functionsReached:
    - DTLSv1_listen
    - SSL_CTX_set_cookie_verify_cb
    - BIO_s_mem
    - ERR_print_errors_fp
    - SSL_new
    - BIO_new_mem_buf
    - BIO_get_mem_data
    - printf
    - SSL_CTX_set_cookie_generate_cb
    - BIO_free
    - SSL_free
    - DTLS_server_method
    - OSSL_NELEM
    - BIO_new
    - SSL_CTX_new
    - BIO_reset
    - SSL_set0_wbio
    - SSL_set0_rbio
    - CRYPTO_mem_leaks_fp
    - SSL_CTX_free
    - OPENSSL_free
    - memcmp
    - BIO_ADDR_new
    - BIO_set_mem_eof_return
    linkageType: ''
    returnType: int
    signature: main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 19
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 19
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/srptest.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:29,1
    - Dst: fputs
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:30,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:31,1
    - Dst: putc
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - name
    - bn
    argTypes:
    - char*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: showbn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/srptest.c
    functionUses: 3
    functionsReached:
    - fputs
    - BN_print_fp
    - putc
    linkageType: ''
    returnType: void
    signature: showbn(const char *name, const BIGNUM *bn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SRP_get_default_gN
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:53,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:56,1
    - Dst: SRP_create_verifier_BN
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:60,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:61,1
    - Dst: showbn
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:65,1
    - Dst: showbn
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:66,1
    - Dst: showbn
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:67,1
    - Dst: showbn
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:68,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:71,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:72,1
    - Dst: showbn
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:74,1
    - Dst: SRP_Calc_B
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:77,1
    - Dst: showbn
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:78,1
    - Dst: SRP_Verify_B_mod_N
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:80,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:81,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:86,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:87,1
    - Dst: showbn
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:89,1
    - Dst: SRP_Calc_A
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:92,1
    - Dst: showbn
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:93,1
    - Dst: SRP_Verify_A_mod_N
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:95,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:96,1
    - Dst: SRP_Calc_u
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:101,1
    - Dst: SRP_Calc_x
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:104,1
    - Dst: SRP_Calc_client_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:105,1
    - Dst: showbn
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:106,1
    - Dst: SRP_Calc_server_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:109,1
    - Dst: showbn
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:110,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:112,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:115,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:119,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:120,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:121,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:122,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:123,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:124,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:125,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:126,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:127,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 54
    argCount: 3
    argNames:
    - username
    - client_pass
    - server_pass
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 131
      start: 37
    functionDepth: 8
    functionLinenumber: 37
    functionLinenumberEnd: 131
    functionName: run_srp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/srptest.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - SRP_Verify_A_mod_N
    - SRP_Calc_u
    - BN_clear_free
    - BN_bin2bn
    - SRP_Calc_client_key
    - showbn
    - BN_free
    - SRP_Calc_B
    - BN_cmp
    - SRP_Calc_A
    - SRP_Verify_B_mod_N
    - fprintf
    - SRP_Calc_x
    - SRP_get_default_gN
    - SRP_create_verifier_BN
    - SRP_Calc_server_key
    linkageType: ''
    returnType: int
    signature: "run_srp(const char *username, const char *client_pass,\n                   const
      char *server_pass)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:137,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:139,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:141,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:142,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:143,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:144,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:147,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:148,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:149,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:150,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:151,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:152,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - name
    - bn
    - hexbn
    argTypes:
    - char*
    - BIGNUM*
    - char*
    constantsTouched: []
    func_position:
      end: 155
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 155
    functionName: check_bn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/srptest.c
    functionUses: 0
    functionsReached:
    - BN_free
    - BN_hex2bn
    - BN_cmp
    - printf
    - BN_print_fp
    linkageType: ''
    returnType: int
    signature: check_bn(const char *name, const BIGNUM *bn, const char *hexbn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SRP_get_default_gN
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:172,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:175,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:178,1
    - Dst: SRP_create_verifier_BN
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:180,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:182,1
    - Dst: check_bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:186,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:195,1
    - Dst: SRP_Calc_B
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:199,1
    - Dst: SRP_Verify_B_mod_N
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:201,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:202,1
    - Dst: check_bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:206,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:215,1
    - Dst: SRP_Calc_A
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:219,1
    - Dst: SRP_Verify_A_mod_N
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:221,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:222,1
    - Dst: check_bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:226,1
    - Dst: SRP_Calc_u
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:235,1
    - Dst: check_bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:237,1
    - Dst: SRP_Calc_x
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:241,1
    - Dst: SRP_Calc_client_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:242,1
    - Dst: check_bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:243,1
    - Dst: SRP_Calc_server_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:251,1
    - Dst: check_bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:252,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:263,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:264,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:265,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:266,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:267,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:268,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:269,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:270,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:271,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:272,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 275
      start: 158
    functionDepth: 8
    functionLinenumber: 158
    functionLinenumberEnd: 275
    functionName: run_srp_kat
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/srptest.c
    functionUses: 0
    functionsReached:
    - check_bn
    - SRP_Verify_A_mod_N
    - SRP_Calc_u
    - BN_clear_free
    - SRP_Calc_client_key
    - BN_free
    - BN_hex2bn
    - SRP_Calc_B
    - SRP_Calc_A
    - SRP_Verify_B_mod_N
    - fprintf
    - SRP_Calc_x
    - SRP_get_default_gN
    - SRP_create_verifier_BN
    - SRP_Calc_server_key
    linkageType: ''
    returnType: int
    signature: run_srp_kat(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:280,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:282,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:283,1
    - Dst: run_srp
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:287,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:288,1
    - Dst: run_srp
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:293,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:294,1
    - Dst: run_srp_kat
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:299,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:300,1
    - Dst: CRYPTO_mem_leaks
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:305,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/srptest.c:308,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 311
      start: 277
    functionDepth: 9
    functionLinenumber: 277
    functionLinenumberEnd: 311
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/srptest.c
    functionUses: 22
    functionsReached:
    - CRYPTO_mem_leaks
    - run_srp_kat
    - CRYPTO_mem_ctrl
    - BIO_new_fp
    - BIO_free
    - run_srp
    - fprintf
    - CRYPTO_set_mem_debug
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aes_128_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:41,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:53,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:55,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:58,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:60,1
    - Dst: EVP_CipherUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:61,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:62,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:63,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:68,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:69,1
    - Dst: EVP_CipherUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:70,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:71,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:72,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:78,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:79,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:86,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 88
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 88
    functionName: test_afalg_aes_128_cbc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_reset
    - memcmp
    - EVP_CIPHER_CTX_free
    - EVP_aes_128_cbc
    - EVP_CipherFinal_ex
    - EVP_CipherUpdate
    - EVP_CipherInit_ex
    - fprintf
    linkageType: ''
    returnType: int
    signature: test_afalg_aes_128_cbc(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:94,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:95,1
    - Dst: ENGINE_load_builtin_engines
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:97,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:100,1
    - Dst: ENGINE_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:103,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:109,1
    - Dst: test_afalg_aes_128_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:114,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:115,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:119,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 122
      start: 90
    functionDepth: 7
    functionLinenumber: 90
    functionLinenumberEnd: 122
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c
    functionUses: 22
    functionsReached:
    - test_afalg_aes_128_cbc
    - ENGINE_by_id
    - CRYPTO_mem_ctrl
    - OPENSSL_init_crypto
    - ENGINE_free
    - ENGINE_load_builtin_engines
    - printf
    - fprintf
    - CRYPTO_set_mem_debug
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:128,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c
    functionUses: 22
    functionsReached:
    - fprintf
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dlopen
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - filename
    - lib
    argTypes:
    - char*
    - SHLIB*
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: shlib_load
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c
    functionUses: 0
    functionsReached:
    - dlopen
    linkageType: ''
    returnType: int
    signature: shlib_load(const char *filename, SHLIB *lib)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - lib
    - symname
    - sym
    argTypes:
    - SHLIB
    - char*
    - SHLIB_SYM*
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: shlib_sym
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c
    functionUses: 0
    functionsReached:
    - dlsym
    linkageType: ''
    returnType: int
    signature: shlib_sym(SHLIB lib, const char *symname, SHLIB_SYM *sym)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dlclose
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - lib
    argTypes:
    - SHLIB
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: shlib_close
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c
    functionUses: 0
    functionsReached:
    - dlclose
    linkageType: ''
    returnType: int
    signature: shlib_close(SHLIB lib)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibraryA
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - filename
    - lib
    argTypes:
    - char*
    - SHLIB*
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: shlib_load
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c
    functionUses: 0
    functionsReached:
    - LoadLibraryA
    linkageType: ''
    returnType: int
    signature: shlib_load(const char *filename, SHLIB *lib)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetProcAddress
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - lib
    - symname
    - sym
    argTypes:
    - SHLIB
    - char*
    - SHLIB_SYM*
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: shlib_sym
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c
    functionUses: 0
    functionsReached:
    - GetProcAddress
    linkageType: ''
    returnType: int
    signature: shlib_sym(SHLIB lib, const char *symname, SHLIB_SYM *sym)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FreeLibrary
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - lib
    argTypes:
    - SHLIB
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: shlib_close
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c
    functionUses: 0
    functionsReached:
    - FreeLibrary
    linkageType: ''
    returnType: int
    signature: shlib_close(SHLIB lib)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:131,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:135,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:137,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:139,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:142,1
    - Dst: shlib_load
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:150,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:151,1
    - Dst: shlib_load
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:157,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:158,1
    - Dst: shlib_sym
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:165,1
    - Dst: shlib_sym
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:166,1
    - Dst: shlib_sym
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:167,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:168,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:176,1
    - Dst: TLS_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:176,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:178,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:181,1
    - Dst: shlib_sym
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:184,1
    - Dst: shlib_sym
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:185,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:187,1
    - Dst: ERR_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:194,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:195,1
    - Dst: OpenSSL_version_num
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:199,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:200,1
    - Dst: shlib_close
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:207,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:208,1
    - Dst: shlib_close
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:215,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:216,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:222,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 76
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 224
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 224
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c
    functionUses: 22
    functionsReached:
    - strcmp
    - ERR_get_error
    - shlib_close
    - shlib_sym
    - TLS_method
    - printf
    - OpenSSL_version_num
    - shlib_load
    - SSL_CTX_free
    - SSL_CTX_new
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:24,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:32,1
    - Dst: BIO_f_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:32,1
    - Dst: BIO_set_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:33,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:33,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:35,1
    - Dst: BIO_new_mem_buf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:35,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:36,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:37,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:41,1
    - Dst: BIO_f_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:41,1
    - Dst: BIO_set_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:42,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:42,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:44,1
    - Dst: BIO_new_mem_buf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:44,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:45,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:47,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:50,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:53,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:54,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:56,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:57,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:66,1
    - Dst: BIO_f_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:66,1
    - Dst: BIO_set_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:67,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:67,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:69,1
    - Dst: BIO_new_mem_buf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:69,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:70,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:71,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:74,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:76,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:77,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:87,1
    - Dst: BIO_f_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:87,1
    - Dst: BIO_set_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:88,1
    - Dst: EVP_aes_128_ctr
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:88,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:90,1
    - Dst: BIO_new_mem_buf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:90,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:91,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:92,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:96,1
    - Dst: BIO_f_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:96,1
    - Dst: BIO_set_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:97,1
    - Dst: EVP_aes_128_ctr
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:97,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:99,1
    - Dst: BIO_new_mem_buf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:99,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:100,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:102,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:105,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:108,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:109,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:111,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:112,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:121,1
    - Dst: BIO_f_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:121,1
    - Dst: BIO_set_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:122,1
    - Dst: EVP_aes_128_ctr
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:122,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:124,1
    - Dst: BIO_new_mem_buf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:124,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:125,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:126,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:129,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:131,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c:132,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 15
    functionDepth: 5
    functionLinenumber: 15
    functionLinenumberEnd: 138
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c
    functionUses: 22
    functionsReached:
    - RAND_bytes
    - BIO_set_cipher
    - BIO_push
    - BIO_f_cipher
    - memcmp
    - BIO_free_all
    - EVP_aes_128_cbc
    - EVP_aes_128_ctr
    - memset
    - BIO_new_mem_buf
    - fprintf
    - BIO_new
    - BIO_read
    linkageType: ''
    returnType: int
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:28,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - op_name
    - a
    - b
    - is_true
    argTypes:
    - char*
    - unsigned int
    - unsigned int
    - int
    constantsTouched: []
    func_position:
      end: 37
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 37
    functionName: test_binary_op
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: "test_binary_op(unsigned int (*op) (unsigned int a, unsigned int b),\n
      \                         const char *op_name, unsigned int a, unsigned int
      b,\n                          int is_true)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:46,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - op_name
    - a
    - b
    - is_true
    argTypes:
    - char*
    - unsigned int
    - unsigned int
    - int
    constantsTouched: []
    func_position:
      end: 55
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 55
    functionName: test_binary_op_8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: "test_binary_op_8(unsigned\n                            char (*op)
      (unsigned int a, unsigned int b),\n                            const char *op_name,
      unsigned int a,\n                            unsigned int b, int is_true)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:61,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: test_is_zero
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: test_is_zero(unsigned int a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:76,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 85
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 85
    functionName: test_is_zero_8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: test_is_zero_8(unsigned int a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:91,1
    - Dst: constant_time_select
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:96,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: test_select
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - fprintf
    - constant_time_select
    linkageType: ''
    returnType: int
    signature: test_select(unsigned int a, unsigned int b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:110,1
    - Dst: constant_time_select_8
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:115,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned char
    - unsigned char
    constantsTouched: []
    func_position:
      end: 123
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 123
    functionName: test_select_8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - fprintf
    - constant_time_select_8
    linkageType: ''
    returnType: int
    signature: test_select_8(unsigned char a, unsigned char b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:129,1
    - Dst: constant_time_select_int
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:134,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 142
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 142
    functionName: test_select_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - fprintf
    - constant_time_select_int
    linkageType: ''
    returnType: int
    signature: test_select_int(int a, int b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:148,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 158
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 158
    functionName: test_eq_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: test_eq_int(int a, int b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:164,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 174
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 174
    functionName: test_eq_int_8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: test_eq_int_8(int a, int b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:196,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:198,1
    - Dst: test_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:200,1
    - Dst: test_is_zero_8
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:201,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:203,1
    - Dst: test_binary_op
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:205,1
    - Dst: test_binary_op_8
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:207,1
    - Dst: test_binary_op
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:209,1
    - Dst: test_binary_op_8
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:211,1
    - Dst: test_binary_op
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:213,1
    - Dst: test_binary_op_8
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:215,1
    - Dst: test_binary_op
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:219,1
    - Dst: test_binary_op_8
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:222,1
    - Dst: test_binary_op
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:225,1
    - Dst: test_binary_op_8
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:228,1
    - Dst: test_binary_op
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:231,1
    - Dst: test_binary_op_8
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:234,1
    - Dst: test_select
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:236,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:241,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:243,1
    - Dst: test_select_int
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:245,1
    - Dst: test_eq_int
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:246,1
    - Dst: test_eq_int_8
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:247,1
    - Dst: test_select_8
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:256,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:262,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c:265,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 50
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 268
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 268
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c
    functionUses: 22
    functionsReached:
    - test_select
    - test_select_8
    - test_eq_int_8
    - test_eq_int
    - test_binary_op
    - test_select_int
    - OSSL_NELEM
    - fprintf
    - test_binary_op_8
    - test_is_zero_8
    - test_is_zero
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: ssl_give_srp_client_pwd_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    linkageType: ''
    returnType: char
    signature: '*ssl_give_srp_client_pwd_cb(SSL *s, void *arg)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:171,1
    - Dst: SSL_get_srp_username
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:171,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:172,1
    - Dst: SSL_get_srp_username
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:172,1
    - Dst: SSL_set_srp_server_param_pw
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - s
    - ad
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 180
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 180
    functionName: ssl_srp_server_param_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - SSL_get_srp_username
    - fprintf
    - SSL_set_srp_server_param_pw
    - strcmp
    linkageType: ''
    returnType: int
    signature: ssl_srp_server_param_cb(SSL *s, int *ad, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - s
    - out
    - outlen
    - in
    - inlen
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - void*
    constantsTouched: []
    func_position:
      end: 205
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 205
    functionName: cb_client_npn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "cb_client_npn(SSL *s, unsigned char **out, unsigned char *outlen,\n
      \                        const unsigned char *in, unsigned int inlen,\n                         void
      *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - s
    - data
    - len
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned int*
    - void*
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 213
    functionName: cb_server_npn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "cb_server_npn(SSL *s, const unsigned char **data,\n                         unsigned
      int *len, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - data
    - len
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned int*
    - void*
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: cb_server_rejects_npn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "cb_server_rejects_npn(SSL *s, const unsigned char **data,\n                                 unsigned
      int *len, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get0_next_proto_negotiated
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:228,1
    - Dst: SSL_get0_next_proto_negotiated
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:229,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:232,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:233,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:234,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:238,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:239,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:240,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:248,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:251,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 26
    argCount: 2
    argNames:
    - client
    - server
    argTypes:
    - SSL*
    - SSL*
    constantsTouched: []
    func_position:
      end: 264
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 264
    functionName: verify_npn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - BIO_write
    - memcmp
    - SSL_get0_next_proto_negotiated
    linkageType: ''
    returnType: int
    signature: verify_npn(SSL *client, SSL *server)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:292,1
    - Dst: strcasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:298,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:299,1
    - Dst: SSL_set_SSL_CTX
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:300,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - s
    - ad
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 304
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 304
    functionName: servername_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - BIO_printf
    - SSL_set_SSL_CTX
    linkageType: ''
    returnType: int
    signature: servername_cb(SSL *s, int *ad, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_SSL_CTX
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:308,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:315,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:317,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:319,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:321,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - client
    - server
    argTypes:
    - SSL*
    - SSL*
    constantsTouched: []
    func_position:
      end: 323
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 323
    functionName: verify_servername
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - SSL_get_SSL_CTX
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: verify_servername(SSL *client, SSL *server)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:342,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:346,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:346,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:353,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - outlen
    - in
    argTypes:
    - size_t*
    - char*
    constantsTouched: []
    func_position:
      end: 364
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 364
    functionName: next_protos_parse
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - strlen
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: unsigned char
    signature: "*next_protos_parse(size_t *outlen,\n                                        const
      char *in)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next_protos_parse
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:374,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:376,1
    - Dst: abort
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:378,1
    - Dst: SSL_select_next_proto
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:381,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:384,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:392,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:393,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 6
    argNames:
    - s
    - out
    - outlen
    - in
    - inlen
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - void*
    constantsTouched: []
    func_position:
      end: 398
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 398
    functionName: cb_server_alpn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - abort
    - next_protos_parse
    - memcpy
    - SSL_select_next_proto
    - fprintf
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "cb_server_alpn(SSL *s, const unsigned char **out,\n                          unsigned
      char *outlen, const unsigned char *in,\n                          unsigned int
      inlen, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get0_alpn_selected
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:404,1
    - Dst: SSL_get0_alpn_selected
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:405,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:407,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:411,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:416,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:417,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:422,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:427,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:428,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:429,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:438,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:439,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:440,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:441,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:442,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:443,1
    - Dst: SSL_get_SSL_CTX
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:445,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:446,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:449,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - client
    - server
    argTypes:
    - SSL*
    - SSL*
    constantsTouched: []
    func_position:
      end: 453
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 453
    functionName: verify_alpn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - memcmp
    - strlen
    - BIO_printf
    - SSL_get0_alpn_selected
    - SSL_get_SSL_CTX
    - OPENSSL_free
    - BIO_write
    linkageType: ''
    returnType: int
    signature: verify_alpn(SSL *client, SSL *server)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 496
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 496
    functionName: serverinfo_cli_parse_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "serverinfo_cli_parse_cb(SSL *s, unsigned int ext_type,\n                                   const
      unsigned char *in, size_t inlen,\n                                   int *al,
      void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 507
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 507
    functionName: verify_serverinfo
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: verify_serverinfo()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - s
    - ext_type
    - out
    - outlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char**
    - size_t*
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 524
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 524
    functionName: custom_ext_0_cli_add_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "custom_ext_0_cli_add_cb(SSL *s, unsigned int ext_type,\n                                   const
      unsigned char **out,\n                                   size_t *outlen, int
      *al, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 531
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 531
    functionName: custom_ext_0_cli_parse_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "custom_ext_0_cli_parse_cb(SSL *s, unsigned int ext_type,\n                                     const
      unsigned char *in,\n                                     size_t inlen, int *al,
      void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - s
    - ext_type
    - out
    - outlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char**
    - size_t*
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 542
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 542
    functionName: custom_ext_1_cli_add_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: "custom_ext_1_cli_add_cb(SSL *s, unsigned int ext_type,\n                                   const
      unsigned char **out,\n                                   size_t *outlen, int
      *al, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 549
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 549
    functionName: custom_ext_1_cli_parse_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "custom_ext_1_cli_parse_cb(SSL *s, unsigned int ext_type,\n                                     const
      unsigned char *in,\n                                     size_t inlen, int *al,
      void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - s
    - ext_type
    - out
    - outlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char**
    - size_t*
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 560
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 560
    functionName: custom_ext_2_cli_add_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: "custom_ext_2_cli_add_cb(SSL *s, unsigned int ext_type,\n                                   const
      unsigned char **out,\n                                   size_t *outlen, int
      *al, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 571
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 571
    functionName: custom_ext_2_cli_parse_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "custom_ext_2_cli_parse_cb(SSL *s, unsigned int ext_type,\n                                     const
      unsigned char *in,\n                                     size_t inlen, int *al,
      void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - s
    - ext_type
    - out
    - outlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char**
    - size_t*
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 582
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 582
    functionName: custom_ext_3_cli_add_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: "custom_ext_3_cli_add_cb(SSL *s, unsigned int ext_type,\n                                   const
      unsigned char **out,\n                                   size_t *outlen, int
      *al, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:590,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:592,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 595
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 595
    functionName: custom_ext_3_cli_parse_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcmp
    linkageType: ''
    returnType: int
    signature: "custom_ext_3_cli_parse_cb(SSL *s, unsigned int ext_type,\n                                     const
      unsigned char *in,\n                                     size_t inlen, int *al,
      void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 607
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 607
    functionName: custom_ext_0_srv_parse_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "custom_ext_0_srv_parse_cb(SSL *s, unsigned int ext_type,\n                                     const
      unsigned char *in,\n                                     size_t inlen, int *al,
      void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - s
    - ext_type
    - out
    - outlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char**
    - size_t*
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 617
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 617
    functionName: custom_ext_0_srv_add_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "custom_ext_0_srv_add_cb(SSL *s, unsigned int ext_type,\n                                   const
      unsigned char **out,\n                                   size_t *outlen, int
      *al, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:626,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:628,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 631
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 631
    functionName: custom_ext_1_srv_parse_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcmp
    linkageType: ''
    returnType: int
    signature: "custom_ext_1_srv_parse_cb(SSL *s, unsigned int ext_type,\n                                     const
      unsigned char *in,\n                                     size_t inlen, int *al,
      void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - s
    - ext_type
    - out
    - outlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char**
    - size_t*
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 638
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 638
    functionName: custom_ext_1_srv_add_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "custom_ext_1_srv_add_cb(SSL *s, unsigned int ext_type,\n                                   const
      unsigned char **out,\n                                   size_t *outlen, int
      *al, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:647,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:649,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 652
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 652
    functionName: custom_ext_2_srv_parse_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcmp
    linkageType: ''
    returnType: int
    signature: "custom_ext_2_srv_parse_cb(SSL *s, unsigned int ext_type,\n                                     const
      unsigned char *in,\n                                     size_t inlen, int *al,
      void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - s
    - ext_type
    - out
    - outlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char**
    - size_t*
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 661
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 661
    functionName: custom_ext_2_srv_add_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "custom_ext_2_srv_add_cb(SSL *s, unsigned int ext_type,\n                                   const
      unsigned char **out,\n                                   size_t *outlen, int
      *al, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:670,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:672,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 675
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 675
    functionName: custom_ext_3_srv_parse_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcmp
    linkageType: ''
    returnType: int
    signature: "custom_ext_3_srv_parse_cb(SSL *s, unsigned int ext_type,\n                                     const
      unsigned char *in,\n                                     size_t inlen, int *al,
      void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - s
    - ext_type
    - out
    - outlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char**
    - size_t*
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 684
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 684
    functionName: custom_ext_3_srv_add_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: "custom_ext_3_srv_add_cb(SSL *s, unsigned int ext_type,\n                                   const
      unsigned char **out,\n                                   size_t *outlen, int
      *al, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:700,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:701,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:703,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:705,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:706,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:707,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:708,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:709,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:710,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:711,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:714,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:716,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:718,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:720,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:723,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:726,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:729,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:730,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:733,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:736,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:739,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:741,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:744,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:747,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:748,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:749,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:750,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:752,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:753,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:755,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:756,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:757,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:758,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:759,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:760,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:762,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:764,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:765,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:766,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:768,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:769,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:770,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:772,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:774,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:775,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:776,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:777,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:778,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:780,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:781,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:782,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:783,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:784,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:786,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:787,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:788,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:790,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:791,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:792,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:793,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:794,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:795,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:796,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:797,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:798,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:799,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 801
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 801
    functionName: sv_usage
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: sv_usage(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get1_EC_KEY
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:808,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:811,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:811,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:812,1
    - Dst: EC_curve_nid2nist
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:813,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:815,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:816,1
    - Dst: EVP_PKEY_bits
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:816,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:832,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:835,1
    - Dst: EVP_PKEY_bits
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:835,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - out
    - key
    argTypes:
    - BIO*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 837
      start: 803
    functionDepth: 4
    functionLinenumber: 803
    functionLinenumberEnd: 837
    functionName: print_key_details
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get1_EC_KEY
    - EC_KEY_free
    - EC_GROUP_get_curve_name
    - EC_curve_nid2nist
    - EVP_PKEY_bits
    - OBJ_nid2sn
    - BIO_printf
    - EC_KEY_get0_group
    linkageType: ''
    returnType: void
    signature: print_key_details(BIO *out, EVP_PKEY *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_current_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:846,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:847,1
    - Dst: SSL_get_version
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:849,1
    - Dst: SSL_CIPHER_get_version
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:850,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:850,1
    - Dst: SSL_get_peer_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:851,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:853,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:856,1
    - Dst: print_key_details
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:857,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:859,1
    - Dst: SSL_get_server_tmp_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:861,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:862,1
    - Dst: print_key_details
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:863,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:864,1
    - Dst: SSL_get_peer_signature_nid
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:866,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:867,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:867,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:868,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - c_ssl
    - prefix
    argTypes:
    - SSL*
    - char*
    constantsTouched: []
    func_position:
      end: 869
      start: 839
    functionDepth: 5
    functionLinenumber: 839
    functionLinenumberEnd: 869
    functionName: print_details
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - SSL_get_current_cipher
    - SSL_get_server_tmp_key
    - BIO_puts
    - SSL_get_peer_certificate
    - X509_get0_pubkey
    - print_key_details
    - OBJ_nid2sn
    - X509_free
    - SSL_CIPHER_get_version
    - SSL_get_peer_signature_nid
    - BIO_printf
    - SSL_get_version
    - SSL_CIPHER_get_name
    linkageType: ''
    returnType: void
    signature: print_details(SSL *c_ssl, const char *prefix)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:893,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 896
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 896
    functionName: protocol_from_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: protocol_from_string(const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:901,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:904,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:905,1
    - Dst: PEM_read_bio_SSL_SESSION
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:908,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:910,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:911,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:913,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 915
      start: 898
    functionDepth: 5
    functionLinenumber: 898
    functionLinenumberEnd: 915
    functionName: read_session
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - ERR_print_errors
    - PEM_read_bio_SSL_SESSION
    - BIO_free
    - BIO_new_file
    - BIO_printf
    linkageType: ''
    returnType: SSL_SESSION
    signature: '*read_session(const char *filename)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:919,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:922,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:926,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:927,1
    - Dst: PEM_write_bio_SSL_SESSION
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:930,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:931,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - filename
    - sess
    argTypes:
    - char*
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 933
      start: 917
    functionDepth: 5
    functionLinenumber: 917
    functionLinenumberEnd: 933
    functionName: write_session
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - ERR_print_errors
    - BIO_free
    - BIO_new_file
    - BIO_printf
    - PEM_write_bio_SSL_SESSION
    linkageType: ''
    returnType: int
    signature: write_session(const char *filename, SSL_SESSION *sess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:945,1
    - Dst: SSL_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:948,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - version
    - ssl
    - setting
    argTypes:
    - char*
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 951
      start: 940
    functionDepth: 2
    functionLinenumber: 940
    functionLinenumberEnd: 951
    functionName: set_protocol_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - SSL_ctrl
    linkageType: ''
    returnType: int
    signature: set_protocol_version(const char *version, SSL *ssl, int setting)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:989,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1004,1
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1011,1
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1013,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1014,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1015,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1016,1
    - Dst: RAND_seed
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1018,1
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1020,1
    - Dst: SSL_CONF_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1022,1
    - Dst: SSL_CONF_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1023,1
    - Dst: SSL_CONF_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1024,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1027,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1031,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1035,1
    - Dst: SSL_CONF_CTX_set1_prefix
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1039,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1040,1
    - Dst: SSL_CONF_CTX_set1_prefix
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1043,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1044,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1048,1
    - Dst: SSL_CONF_CTX_set1_prefix
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1052,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1053,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1061,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1065,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1067,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1069,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1071,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1073,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1075,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1077,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1079,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1083,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1086,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1090,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1093,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1095,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1097,1
    - Dst: strspn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1102,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1102,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1103,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1111,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1117,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1124,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1126,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1128,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1130,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1132,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1134,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1137,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1140,1
    - Dst: atol
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1143,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1146,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1151,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1155,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1159,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1163,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1167,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1169,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1173,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1175,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1179,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1182,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1187,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1191,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1195,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1197,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1199,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1203,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1205,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1207,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1211,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1213,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1217,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1218,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1222,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1226,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1230,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1234,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1238,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1242,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1246,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1250,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1254,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1258,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1262,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1264,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1266,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1270,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1274,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1278,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1282,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1285,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1286,1
    - Dst: SSL_CONF_cmd_argv
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1293,1
    - Dst: SSL_CONF_cmd_argv
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1296,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1302,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1306,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1308,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1313,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1315,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1317,1
    CyclomaticComplexity: 98
    EdgeCount: 98
    ICount: 297
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 1323
      start: 953
    functionDepth: 5
    functionLinenumber: 953
    functionLinenumberEnd: 1323
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 22
    functionsReached:
    - atoi
    - RAND_seed
    - fprintf
    - atol
    - BIO_printf
    - sk_OPENSSL_STRING_push
    - strspn
    - CRYPTO_set_mem_debug
    - SSL_CONF_CTX_new
    - SSL_CONF_cmd_argv
    - getenv
    - BIO_new_fp
    - strlen
    - SSL_CONF_CTX_set1_prefix
    - EXIT
    - strcmp
    - STACK_OF
    - ERR_print_errors
    - CRYPTO_mem_ctrl
    - strncmp
    - sk_OPENSSL_STRING_new_null
    - SSL_CONF_CTX_set_flags
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_accept
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1954,1
    - Dst: BIO_set_accept_ip_family
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1957,1
    - Dst: BIO_set_bind_mode
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1958,1
    - Dst: BIO_do_accept
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1959,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1962,1
    - Dst: BIO_get_accept_port
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1962,1
    - Dst: BIO_new_connect
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1964,1
    - Dst: BIO_set_conn_ip_family
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1965,1
    - Dst: BIO_set_nbio
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1969,1
    - Dst: BIO_set_nbio
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1971,1
    - Dst: BIO_do_connect
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1979,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1980,1
    - Dst: BIO_do_accept
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1987,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1988,1
    - Dst: BIO_pop
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1997,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:1998,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2001,1
    - Dst: BIO_f_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2001,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2005,1
    - Dst: BIO_f_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2005,1
    - Dst: SSL_set_connect_state
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2009,1
    - Dst: SSL_set_bio
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2010,1
    - Dst: BIO_set_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2011,1
    - Dst: SSL_set_accept_state
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2013,1
    - Dst: SSL_set_bio
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2014,1
    - Dst: BIO_set_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2015,1
    - Dst: clock
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2041,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2043,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2046,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2047,1
    - Dst: SSL_state_string_long
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2048,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2057,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2059,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2060,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2071,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2075,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2083,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2085,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2086,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2094,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2098,1
    - Dst: clock
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2112,1
    - Dst: clock
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2120,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2122,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2125,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2126,1
    - Dst: SSL_state_string_long
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2127,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2136,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2138,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2139,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2145,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2149,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2157,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2159,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2160,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2166,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2170,1
    - Dst: clock
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2175,1
    - Dst: print_details
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2181,1
    - Dst: verify_npn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2183,1
    - Dst: verify_serverinfo
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2188,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2189,1
    - Dst: verify_alpn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2193,1
    - Dst: verify_servername
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2197,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2203,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2214,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2216,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2217,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2218,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2219,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2220,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2222,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2224,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 206
    argCount: 6
    argNames:
    - s_ssl
    - c_ssl
    - family
    - count
    - s_time
    - c_time
    argTypes:
    - SSL*
    - SSL*
    - int
    - long
    - clock_t*
    - clock_t*
    constantsTouched: []
    func_position:
      end: 2228
      start: 1943
    functionDepth: 6
    functionLinenumber: 1943
    functionLinenumberEnd: 2228
    functionName: doit_localhost
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - BIO_set_nbio
    - BIO_set_accept_ip_family
    - BIO_should_retry
    - BIO_do_accept
    - SSL_in_init
    - printf
    - BIO_new_accept
    - fprintf
    - BIO_do_connect
    - BIO_set_ssl
    - verify_npn
    - BIO_get_accept_port
    - BIO_free
    - SSL_set_bio
    - verify_serverinfo
    - BIO_new
    - verify_servername
    - BIO_snprintf
    - BIO_new_connect
    - BIO_read
    - print_details
    - memset
    - SSL_set_connect_state
    - SSL_state_string_long
    - BIO_free_all
    - strcmp
    - ERR_print_errors
    - SSL_set_accept_state
    - BIO_f_ssl
    - BIO_set_conn_ip_family
    - BIO_pop
    - BIO_set_bind_mode
    - clock
    - verify_alpn
    - BIO_write
    linkageType: ''
    returnType: int
    signature: "doit_localhost(SSL *s_ssl, SSL *c_ssl, int family, long count,\n                   clock_t
      *s_time, clock_t *c_time)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_bio_pair
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2243,1
    - Dst: BIO_new_bio_pair
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2245,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2248,1
    - Dst: BIO_f_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2248,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2252,1
    - Dst: BIO_f_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2252,1
    - Dst: SSL_set_connect_state
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2256,1
    - Dst: SSL_set_bio
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2257,1
    - Dst: BIO_set_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2258,1
    - Dst: SSL_set_accept_state
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2260,1
    - Dst: SSL_set_bio
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2261,1
    - Dst: BIO_set_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2262,1
    - Dst: clock
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2312,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2314,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2317,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2318,1
    - Dst: SSL_state_string_long
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2319,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2328,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2330,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2331,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2342,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2346,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2354,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2356,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2357,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2365,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2369,1
    - Dst: clock
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2383,1
    - Dst: clock
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2391,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2393,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2396,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2397,1
    - Dst: SSL_state_string_long
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2398,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2407,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2409,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2410,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2416,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2420,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2428,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2430,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2431,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2437,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2441,1
    - Dst: clock
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2446,1
    - Dst: BIO_ctrl_pending
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2467,1
    - Dst: BIO_ctrl_get_write_guarantee
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2468,1
    - Dst: BIO_nread
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2479,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2480,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2481,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2486,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2488,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2495,1
    - Dst: BIO_ctrl_pending
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2507,1
    - Dst: BIO_ctrl_get_read_request
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2508,1
    - Dst: BIO_nwrite0
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2526,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2527,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2530,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2532,1
    - Dst: BIO_nwrite
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2537,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2539,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2545,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2554,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2555,1
    - Dst: print_details
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2564,1
    - Dst: verify_npn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2566,1
    - Dst: verify_serverinfo
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2571,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2572,1
    - Dst: verify_alpn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2576,1
    - Dst: verify_servername
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2580,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2586,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2597,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2599,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2600,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2601,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2602,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2603,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2604,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2606,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2608,1
    CyclomaticComplexity: 86
    EdgeCount: 86
    ICount: 232
    argCount: 5
    argNames:
    - s_ssl
    - c_ssl
    - count
    - s_time
    - c_time
    argTypes:
    - SSL*
    - SSL*
    - long
    - clock_t*
    - clock_t*
    constantsTouched: []
    func_position:
      end: 2612
      start: 2231
    functionDepth: 6
    functionLinenumber: 2231
    functionLinenumberEnd: 2612
    functionName: doit_biopair
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - BIO_nwrite0
    - BIO_should_retry
    - SSL_in_init
    - printf
    - fprintf
    - BIO_ctrl_pending
    - BIO_set_ssl
    - verify_npn
    - BIO_free
    - SSL_set_bio
    - verify_serverinfo
    - BIO_new
    - BIO_write
    - verify_servername
    - BIO_new_bio_pair
    - print_details
    - memset
    - BIO_nwrite
    - SSL_set_connect_state
    - assert
    - SSL_state_string_long
    - BIO_ctrl_get_read_request
    - BIO_ctrl_get_write_guarantee
    - strcmp
    - ERR_print_errors
    - SSL_set_accept_state
    - BIO_f_ssl
    - BIO_nread
    - clock
    - verify_alpn
    - BIO_read
    linkageType: ''
    returnType: int
    signature: "doit_biopair(SSL *s_ssl, SSL *c_ssl, long count,\n                 clock_t
      *s_time, clock_t *c_time)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2641,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2643,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2646,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2646,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2647,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2647,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2649,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2653,1
    - Dst: BIO_f_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2653,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2654,1
    - Dst: BIO_f_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2654,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2656,1
    - Dst: SSL_set_connect_state
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2660,1
    - Dst: SSL_set_bio
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2661,1
    - Dst: SSL_set_max_send_fragment
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2662,1
    - Dst: BIO_set_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2663,1
    - Dst: BIO_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2669,1
    - Dst: BIO_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2675,1
    - Dst: SSL_set_accept_state
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2681,1
    - Dst: SSL_set_bio
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2682,1
    - Dst: SSL_set_max_send_fragment
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2688,1
    - Dst: BIO_set_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2689,1
    - Dst: BIO_pending
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2702,1
    - Dst: BIO_pending
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2706,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2711,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2712,1
    - Dst: SSL_state_string_long
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2713,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2722,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2723,1
    - Dst: SSL_state_string_long
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2724,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2733,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2734,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2740,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2744,1
    - Dst: BIO_should_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2745,1
    - Dst: BIO_should_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2747,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2750,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2752,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2756,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2760,1
    - Dst: SSL_set_max_send_fragment
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2766,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2769,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2773,1
    - Dst: BIO_should_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2774,1
    - Dst: BIO_should_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2776,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2779,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2781,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2785,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2789,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2806,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2810,1
    - Dst: BIO_should_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2811,1
    - Dst: BIO_should_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2813,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2816,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2818,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2822,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2823,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2828,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2842,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2846,1
    - Dst: BIO_should_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2847,1
    - Dst: BIO_should_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2849,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2852,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2854,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2858,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2859,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2864,1
    - Dst: SSL_set_max_send_fragment
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2871,1
    - Dst: print_details
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2881,1
    - Dst: verify_npn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2883,1
    - Dst: verify_serverinfo
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2888,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2889,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2894,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2900,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2901,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2902,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2903,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2904,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2905,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2907,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2909,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 253
    argCount: 3
    argNames:
    - s_ssl
    - c_ssl
    - count
    argTypes:
    - SSL*
    - SSL*
    - long
    constantsTouched: []
    func_position:
      end: 2913
      start: 2619
    functionDepth: 6
    functionLinenumber: 2619
    functionLinenumberEnd: 2913
    functionName: doit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - BIO_s_mem
    - BIO_should_retry
    - SSL_in_init
    - printf
    - OPENSSL_zalloc
    - fprintf
    - BIO_set_ssl
    - BIO_should_write
    - verify_npn
    - BIO_pending
    - SSL_set_max_send_fragment
    - BIO_free
    - SSL_set_bio
    - verify_serverinfo
    - BIO_new
    - BIO_read
    - print_details
    - SSL_set_connect_state
    - OPENSSL_free
    - SSL_state_string_long
    - BIO_up_ref
    - BIO_free_all
    - strcmp
    - ERR_print_errors
    - SSL_set_accept_state
    - BIO_f_ssl
    - BIO_write
    - BIO_should_read
    linkageType: ''
    returnType: int
    signature: doit(SSL *s_ssl, SSL *c_ssl, long count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_oneline
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2919,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2919,1
    - Dst: X509_STORE_CTX_get_current_cert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2919,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2923,1
    - Dst: X509_STORE_CTX_get_error_depth
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2923,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2925,1
    - Dst: X509_STORE_CTX_get_error_depth
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2926,1
    - Dst: X509_STORE_CTX_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2927,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2936,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2937,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - ok
    - ctx
    argTypes:
    - int
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 2948
      start: 2915
    functionDepth: 3
    functionLinenumber: 2915
    functionLinenumberEnd: 2948
    functionName: verify_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 1
    functionsReached:
    - X509_get_subject_name
    - X509_NAME_oneline
    - printf
    - X509_STORE_CTX_get_error
    - X509_STORE_CTX_get_current_cert
    - X509_STORE_CTX_get_error_depth
    - fprintf
    - X509_verify_cert_error_string
    linkageType: ''
    returnType: int
    signature: verify_callback(int ok, X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_get0_cert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2957,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2959,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2960,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2961,1
    - Dst: X509_NAME_oneline
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2964,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2964,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2966,1
    - Dst: X509_STORE_CTX_get_error_depth
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2967,1
    - Dst: X509_verify_cert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:2972,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - arg
    argTypes:
    - X509_STORE_CTX*
    - void*
    constantsTouched: []
    func_position:
      end: 2975
      start: 2950
    functionDepth: 5
    functionLinenumber: 2950
    functionLinenumberEnd: 2975
    functionName: app_verify_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - X509_get_subject_name
    - X509_NAME_oneline
    - printf
    - X509_STORE_CTX_get_error_depth
    - X509_STORE_CTX_get0_cert
    - X509_verify_cert
    linkageType: ''
    returnType: int
    signature: app_verify_callback(X509_STORE_CTX *ctx, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3006,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3008,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3009,1
    - Dst: DH_set0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3010,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3011,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3012,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3013,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3017
      start: 2985
    functionDepth: 4
    functionLinenumber: 2985
    functionLinenumberEnd: 3017
    functionName: get_dh512
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - BN_free
    - BN_bin2bn
    - DH_set0_pqg
    - DH_new
    - DH_free
    linkageType: ''
    returnType: DH
    signature: '*get_dh512()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3050,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3052,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3053,1
    - Dst: DH_set0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3054,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3055,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3056,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3057,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3061
      start: 3019
    functionDepth: 4
    functionLinenumber: 3019
    functionLinenumberEnd: 3061
    functionName: get_dh1024
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - BN_free
    - BN_bin2bn
    - DH_set0_pqg
    - DH_new
    - DH_free
    linkageType: ''
    returnType: DH
    signature: '*get_dh1024()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3114,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3116,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3117,1
    - Dst: DH_set0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3118,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3119,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3120,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3121,1
    - Dst: DH_set_length
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3126
      start: 3063
    functionDepth: 4
    functionLinenumber: 3063
    functionLinenumberEnd: 3126
    functionName: get_dh1024dsa
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - DH_set_length
    - BN_free
    - BN_bin2bn
    - DH_set0_pqg
    - DH_new
    - DH_free
    linkageType: ''
    returnType: DH
    signature: '*get_dh1024dsa()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3137,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3139,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3141,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3144,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3145,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3147,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3148,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3151,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - pskkey
    - psk
    - max_psk_len
    argTypes:
    - char*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 3154
      start: 3131
    functionDepth: 4
    functionLinenumber: 3131
    functionLinenumberEnd: 3154
    functionName: psk_key2bn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - BN_free
    - BN_hex2bn
    - BIO_printf
    - BN_bn2bin
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: "psk_key2bn(const char *pskkey, unsigned char *psk,\n                      unsigned
      int max_psk_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3165,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3169,1
    - Dst: psk_key2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3171,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 6
    argNames:
    - ssl
    - hint
    - identity
    - max_identity_len
    - psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - char*
    - unsigned int
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 3177
      start: 3156
    functionDepth: 5
    functionLinenumber: 3156
    functionLinenumberEnd: 3177
    functionName: psk_client_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - fprintf
    - psk_key2bn
    - BIO_snprintf
    linkageType: ''
    returnType: unsigned int
    signature: "psk_client_callback(SSL *ssl, const char *hint,\n                                        char
      *identity,\n                                        unsigned int max_identity_len,\n
      \                                       unsigned char *psk,\n                                        unsigned
      int max_psk_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3185,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3186,1
    - Dst: psk_key2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c:3189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ssl
    - identity
    - psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 3191
      start: 3179
    functionDepth: 5
    functionLinenumber: 3179
    functionLinenumberEnd: 3191
    functionName: psk_server_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - psk_key2bn
    - strcmp
    linkageType: ''
    returnType: unsigned int
    signature: "psk_server_callback(SSL *ssl, const char *identity,\n                                        unsigned
      char *psk,\n                                        unsigned int max_psk_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/test/memleaktest.c:22,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/memleaktest.c:23,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/memleaktest.c:24,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/memleaktest.c:25,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/memleaktest.c:27,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/memleaktest.c:29,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/memleaktest.c:33,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/memleaktest.c:34,1
    - Dst: CRYPTO_mem_leaks_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/memleaktest.c:38,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 46
      start: 15
    functionDepth: 5
    functionLinenumber: 15
    functionLinenumberEnd: 46
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/memleaktest.c
    functionUses: 22
    functionsReached:
    - strcmp
    - CRYPTO_mem_ctrl
    - getenv
    - CRYPTO_mem_leaks_fp
    - CRYPTO_set_mem_debug
    - fprintf
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 19
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 19
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:31,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:33,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:35,1
    - Dst: ENGINE_get_id
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:36,1
    - Dst: ENGINE_get_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:36,1
    - Dst: ENGINE_get_next
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:37,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:39,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 26
    functionDepth: 5
    functionLinenumber: 26
    functionLinenumberEnd: 45
    functionName: display_engine_list
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_id
    - ENGINE_get_first
    - ENGINE_get_next
    - ENGINE_get_name
    - ENGINE_free
    - printf
    linkageType: ''
    returnType: void
    signature: display_engine_list(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:60,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:61,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:62,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:64,1
    - Dst: ENGINE_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:65,1
    - Dst: ENGINE_set_id
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:66,1
    - Dst: ENGINE_set_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:67,1
    - Dst: ENGINE_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:68,1
    - Dst: ENGINE_set_id
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:69,1
    - Dst: ENGINE_set_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:70,1
    - Dst: ENGINE_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:71,1
    - Dst: ENGINE_set_id
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:72,1
    - Dst: ENGINE_set_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:73,1
    - Dst: ENGINE_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:74,1
    - Dst: ENGINE_set_id
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:75,1
    - Dst: ENGINE_set_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:76,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:77,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:80,1
    - Dst: display_engine_list
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:81,1
    - Dst: ENGINE_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:82,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:83,1
    - Dst: display_engine_list
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:86,1
    - Dst: ENGINE_get_first
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:87,1
    - Dst: ENGINE_remove
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:88,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:89,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:92,1
    - Dst: display_engine_list
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:93,1
    - Dst: ENGINE_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:94,1
    - Dst: ENGINE_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:94,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:95,1
    - Dst: display_engine_list
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:98,1
    - Dst: ENGINE_remove
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:99,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:100,1
    - Dst: display_engine_list
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:103,1
    - Dst: ENGINE_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:104,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:105,1
    - Dst: display_engine_list
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:108,1
    - Dst: ENGINE_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:109,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:110,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:113,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:114,1
    - Dst: ENGINE_remove
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:115,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:116,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:119,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:120,1
    - Dst: ENGINE_remove
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:121,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:122,1
    - Dst: display_engine_list
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:125,1
    - Dst: ENGINE_remove
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:126,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:127,1
    - Dst: display_engine_list
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:130,1
    - Dst: ENGINE_get_first
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:135,1
    - Dst: ENGINE_remove
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:137,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:138,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:140,1
    - Dst: display_engine_list
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:141,1
    - Dst: ENGINE_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:142,1
    - Dst: ENGINE_remove
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:142,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:143,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:146,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:147,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:149,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:150,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:151,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:152,1
    - Dst: ENGINE_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:153,1
    - Dst: ENGINE_set_id
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:154,1
    - Dst: ENGINE_set_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:155,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:156,1
    - Dst: ENGINE_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:162,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:163,1
    - Dst: ENGINE_get_id
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:164,1
    - Dst: ENGINE_get_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:165,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:168,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:169,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:172,1
    - Dst: ENGINE_get_first
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:173,1
    - Dst: ENGINE_remove
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:174,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:175,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:178,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:179,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:180,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:183,1
    - Dst: ENGINE_get_id
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:183,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:184,1
    - Dst: ENGINE_get_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:184,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:186,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:190,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:191,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:192,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:193,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:194,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:196,1
    - Dst: CRYPTO_mem_leaks_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c:199,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 135
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 203
      start: 47
    functionDepth: 6
    functionLinenumber: 47
    functionLinenumberEnd: 203
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c
    functionUses: 22
    functionsReached:
    - ENGINE_remove
    - display_engine_list
    - ENGINE_set_name
    - ERR_print_errors_fp
    - ENGINE_get_name
    - printf
    - OPENSSL_strdup
    - ENGINE_new
    - ENGINE_add
    - CRYPTO_set_mem_debug
    - ENGINE_get_id
    - ENGINE_get_first
    - memset
    - getenv
    - CRYPTO_mem_leaks_fp
    - fflush
    - OPENSSL_free
    - sprintf
    - ERR_clear_error
    - strcmp
    - ENGINE_free
    - ENGINE_set_id
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ectest.c
    functionUses: 22
    functionsReached:
    - puts
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:73,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:74,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:75,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:76,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:77,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:80,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:81,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:82,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:83,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:84,1
    - Dst: EC_GROUP_get_order
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:85,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:87,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:89,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:91,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:92,1
    - Dst: EC_GROUP_precompute_mult
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:93,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:95,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:97,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:99,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:100,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:105,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:108,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:114,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:117,1
    - Dst: BN_sub
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:120,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:122,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:124,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:128,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:128,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:130,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:132,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:136,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:138,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:140,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:144,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:145,1
    - Dst: EC_POINT_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:148,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:150,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:154,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:157,1
    - Dst: EC_POINTs_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:160,1
    - Dst: EC_POINT_dbl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:162,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:164,1
    - Dst: EC_POINTs_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:179,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:181,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:184,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:186,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:187,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:188,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:189,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:190,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:191,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:192,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:193,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 91
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    constantsTouched: []
    func_position:
      end: 194
      start: 70
    functionDepth: 6
    functionLinenumber: 70
    functionLinenumberEnd: 194
    functionName: group_order_tests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get_order
    - EC_POINT_dbl
    - BN_sub
    - BN_mul
    - fprintf
    - BN_value_one
    - EC_POINT_free
    - BN_free
    - EC_POINT_cmp
    - BN_CTX_new
    - EC_POINTs_mul
    - BN_new
    - EC_GROUP_precompute_mult
    - fflush
    - BN_set_negative
    - EC_POINT_is_at_infinity
    - BN_add
    - EC_POINT_new
    - BN_set_word
    - BN_one
    - BN_CTX_free
    - EC_POINT_mul
    - EC_POINT_add
    linkageType: ''
    returnType: void
    signature: group_order_tests(EC_GROUP *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:209,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:213,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:214,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:215,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:219,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:221,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:223,1
    - Dst: EC_GROUP_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:226,1
    - Dst: EC_GFp_mont_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:226,1
    - Dst: EC_GROUP_set_curve_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:233,1
    - Dst: EC_GROUP_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:238,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:238,1
    - Dst: EC_GROUP_copy
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:241,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:243,1
    - Dst: EC_GROUP_get_curve_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:247,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:250,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:252,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:253,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:254,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:255,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:256,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:257,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:259,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:260,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:261,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:265,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:267,1
    - Dst: EC_POINT_oct2point
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:271,1
    - Dst: EC_POINT_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:274,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:276,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:279,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:280,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:281,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:282,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:286,1
    - Dst: EC_POINT_set_compressed_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:288,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:290,1
    - Dst: EC_POINT_get_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:291,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:293,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:294,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:295,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:296,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:297,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:301,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:307,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:308,1
    - Dst: EC_POINT_get_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:310,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:313,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:314,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:315,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:316,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:317,1
    - Dst: EC_POINT_copy
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:320,1
    - Dst: EC_POINT_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:322,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:326,1
    - Dst: EC_POINT_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:328,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:330,1
    - Dst: EC_POINT_point2oct
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:334,1
    - Dst: EC_POINT_oct2point
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:338,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:340,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:342,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:344,1
    - Dst: EC_POINT_point2oct
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:347,1
    - Dst: EC_POINT_oct2point
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:351,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:353,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:355,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:357,1
    - Dst: EC_POINT_point2oct
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:360,1
    - Dst: EC_POINT_oct2point
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:364,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:366,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:368,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:370,1
    - Dst: EC_POINT_get_Jprojective_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:372,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:374,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:376,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:377,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:378,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:379,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:380,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:381,1
    - Dst: EC_POINT_invert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:383,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:385,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:393,1
    - Dst: BN_is_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:395,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:397,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:399,1
    - Dst: EC_GROUP_set_curve_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:401,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:404,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:406,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:408,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:408,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:414,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:416,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:418,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:420,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:422,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:422,1
    - Dst: EC_POINT_get_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:425,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:427,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:428,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:429,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:430,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:431,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:433,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:435,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:438,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:439,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:441,1
    - Dst: group_order_tests
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:443,1
    - Dst: EC_GROUP_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:445,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:445,1
    - Dst: EC_GROUP_copy
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:447,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:452,1
    - Dst: BN_is_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:454,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:456,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:458,1
    - Dst: EC_GROUP_set_curve_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:460,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:463,1
    - Dst: EC_POINT_set_compressed_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:465,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:467,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:469,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:471,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:471,1
    - Dst: EC_POINT_get_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:474,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:476,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:477,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:478,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:479,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:480,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:482,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:484,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:487,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:487,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:493,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:496,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:497,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:499,1
    - Dst: group_order_tests
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:501,1
    - Dst: EC_GROUP_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:503,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:503,1
    - Dst: EC_GROUP_copy
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:505,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:510,1
    - Dst: BN_is_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:513,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:515,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:518,1
    - Dst: EC_GROUP_set_curve_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:521,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:524,1
    - Dst: EC_POINT_set_compressed_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:527,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:529,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:531,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:534,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:534,1
    - Dst: EC_POINT_get_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:537,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:539,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:540,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:541,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:542,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:543,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:545,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:548,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:551,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:551,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:557,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:560,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:561,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:563,1
    - Dst: group_order_tests
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:565,1
    - Dst: EC_GROUP_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:567,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:567,1
    - Dst: EC_GROUP_copy
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:569,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:574,1
    - Dst: BN_is_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:578,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:580,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:584,1
    - Dst: EC_GROUP_set_curve_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:588,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:591,1
    - Dst: EC_POINT_set_compressed_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:595,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:597,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:599,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:602,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:602,1
    - Dst: EC_POINT_get_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:605,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:607,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:608,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:609,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:610,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:611,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:613,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:617,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:620,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:620,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:626,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:629,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:630,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:632,1
    - Dst: group_order_tests
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:634,1
    - Dst: EC_GROUP_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:636,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:636,1
    - Dst: EC_GROUP_copy
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:638,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:643,1
    - Dst: BN_is_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:646,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:648,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:651,1
    - Dst: EC_GROUP_set_curve_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:654,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:657,1
    - Dst: EC_POINT_set_compressed_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:660,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:662,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:664,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:667,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:667,1
    - Dst: EC_POINT_get_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:670,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:672,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:673,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:674,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:675,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:676,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:678,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:681,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:684,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:684,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:690,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:693,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:694,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:696,1
    - Dst: group_order_tests
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:698,1
    - Dst: EC_GROUP_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:700,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:700,1
    - Dst: EC_GROUP_copy
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:702,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:707,1
    - Dst: BN_is_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:711,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:713,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:717,1
    - Dst: EC_GROUP_set_curve_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:721,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:724,1
    - Dst: EC_POINT_set_compressed_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:728,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:730,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:732,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:736,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:736,1
    - Dst: EC_POINT_get_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:739,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:741,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:742,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:743,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:744,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:745,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:747,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:751,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:754,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:754,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:760,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:763,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:764,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:766,1
    - Dst: group_order_tests
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:768,1
    - Dst: EC_GROUP_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:770,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:770,1
    - Dst: EC_GROUP_copy
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:772,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:778,1
    - Dst: EC_POINT_copy
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:781,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:783,1
    - Dst: EC_POINT_dbl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:785,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:787,1
    - Dst: EC_POINT_invert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:789,1
    - Dst: EC_POINT_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:792,1
    - Dst: EC_POINT_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:794,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:796,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:804,1
    - Dst: EC_GROUP_get_order
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:811,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:813,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:813,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:815,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:817,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:822,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:823,1
    - Dst: EC_POINTs_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:826,1
    - Dst: EC_POINTs_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:828,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:830,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:832,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:835,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:836,1
    - Dst: BN_pseudo_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:838,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:838,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:840,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:842,1
    - Dst: EC_POINTs_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:846,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:848,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:851,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:852,1
    - Dst: BN_pseudo_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:854,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:854,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:856,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:858,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:863,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:866,1
    - Dst: EC_POINTs_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:869,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:871,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:874,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:876,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:879,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:880,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:881,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:882,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:883,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:884,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:885,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:886,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:887,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:888,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:889,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:890,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:892,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:893,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:894,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:895,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:896,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:897,1
    CyclomaticComplexity: 187
    EdgeCount: 187
    ICount: 503
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 899
      start: 196
    functionDepth: 7
    functionLinenumber: 196
    functionLinenumberEnd: 899
    functionName: prime_field_tests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_POINT_set_affine_coordinates_GFp
    - EC_GROUP_method_of
    - EC_GROUP_get_curve_GFp
    - EC_POINT_dbl
    - EC_GROUP_get_order
    - EC_GROUP_new
    - BN_zero
    - EC_GROUP_set_generator
    - fprintf
    - BN_is_prime_ex
    - EC_GFp_mont_method
    - EC_POINT_copy
    - BN_print_fp
    - BN_value_one
    - EC_POINT_free
    - BN_free
    - EC_POINT_set_compressed_coordinates_GFp
    - EC_POINT_set_to_infinity
    - EC_POINT_is_on_curve
    - BN_cmp
    - EC_POINT_cmp
    - BN_CTX_new
    - group_order_tests
    - BN_rshift1
    - EC_POINTs_mul
    - BN_new
    - BN_is_odd
    - EC_POINT_get_Jprojective_coordinates_GFp
    - EC_POINT_get_affine_coordinates_GFp
    - EC_GROUP_free
    - BN_hex2bn
    - EC_GROUP_set_curve_GFp
    - EC_POINT_invert
    - EC_GROUP_copy
    - fflush
    - BN_set_negative
    - EC_POINT_oct2point
    - EC_GROUP_get_degree
    - EC_POINT_is_at_infinity
    - BN_add
    - BN_pseudo_rand
    - EC_POINT_new
    - BN_num_bits
    - BN_CTX_free
    - EC_POINT_point2oct
    - EC_POINT_add
    linkageType: ''
    returnType: void
    signature: prime_field_tests(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:978,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:982,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:983,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:984,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:988,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:990,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:992,1
    - Dst: EC_GROUP_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:995,1
    - Dst: EC_GF2m_simple_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:995,1
    - Dst: EC_GROUP_set_curve_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1001,1
    - Dst: EC_GROUP_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1006,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1006,1
    - Dst: EC_GROUP_copy
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1009,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1011,1
    - Dst: EC_GROUP_get_curve_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1015,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1018,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1020,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1021,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1022,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1023,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1024,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1025,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1027,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1028,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1029,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1033,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1035,1
    - Dst: EC_POINT_oct2point
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1039,1
    - Dst: EC_POINT_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1042,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1044,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1047,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1048,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1049,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1050,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1051,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1055,1
    - Dst: EC_POINT_set_compressed_coordinates_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1059,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1062,1
    - Dst: EC_POINT_set_affine_coordinates_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1064,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1067,1
    - Dst: EC_POINT_get_affine_coordinates_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1070,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1073,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1074,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1075,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1076,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1077,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1081,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1087,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1088,1
    - Dst: EC_POINT_get_affine_coordinates_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1090,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1093,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1094,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1095,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1096,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1097,1
    - Dst: EC_POINT_copy
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1100,1
    - Dst: EC_POINT_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1102,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1105,1
    - Dst: EC_POINT_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1107,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1109,1
    - Dst: EC_POINT_point2oct
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1115,1
    - Dst: EC_POINT_oct2point
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1119,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1121,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1123,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1125,1
    - Dst: EC_POINT_point2oct
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1129,1
    - Dst: EC_POINT_oct2point
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1133,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1135,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1137,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1139,1
    - Dst: EC_POINT_point2oct
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1144,1
    - Dst: EC_POINT_oct2point
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1148,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1150,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1152,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1154,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1157,1
    - Dst: EC_POINT_invert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1159,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1161,1
    - Dst: CHAR2_CURVE_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1165,1
    - Dst: CHAR2_CURVE_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1175,1
    - Dst: CHAR2_CURVE_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1185,1
    - Dst: CHAR2_CURVE_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1197,1
    - Dst: CHAR2_CURVE_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1209,1
    - Dst: CHAR2_CURVE_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1221,1
    - Dst: CHAR2_CURVE_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1233,1
    - Dst: CHAR2_CURVE_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1245,1
    - Dst: CHAR2_CURVE_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1257,1
    - Dst: CHAR2_CURVE_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1269,1
    - Dst: EC_POINT_copy
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1282,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1284,1
    - Dst: EC_POINT_dbl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1286,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1288,1
    - Dst: EC_POINT_invert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1290,1
    - Dst: EC_POINT_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1293,1
    - Dst: EC_POINT_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1295,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1297,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1304,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1310,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1310,1
    - Dst: BN_is_odd
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1312,1
    - Dst: BN_rshift1
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1314,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1319,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1320,1
    - Dst: EC_POINTs_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1323,1
    - Dst: EC_POINTs_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1325,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1327,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1329,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1332,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1333,1
    - Dst: BN_pseudo_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1335,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1335,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1337,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1339,1
    - Dst: EC_POINTs_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1343,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1345,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1348,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1349,1
    - Dst: BN_pseudo_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1351,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1351,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1353,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1355,1
    - Dst: EC_POINTs_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1360,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1362,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1365,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1368,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1369,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1370,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1371,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1372,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1373,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1374,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1375,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1376,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1377,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1378,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1379,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1380,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1382,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1383,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1384,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1385,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1386,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1387,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1388,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1389,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1390,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1391,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 238
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 963
    functionDepth: 6
    functionLinenumber: 963
    functionLinenumberEnd: 1393
    functionName: char2_field_tests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_method_of
    - EC_POINT_dbl
    - EC_GROUP_new
    - fprintf
    - EC_GF2m_simple_method
    - EC_POINT_copy
    - BN_print_fp
    - BN_value_one
    - EC_POINT_free
    - BN_free
    - EC_GROUP_get_curve_GF2m
    - EC_POINT_set_to_infinity
    - EC_POINT_is_on_curve
    - EC_POINT_cmp
    - BN_CTX_new
    - EC_POINT_set_affine_coordinates_GF2m
    - EC_POINT_get_affine_coordinates_GF2m
    - BN_rshift1
    - EC_POINTs_mul
    - BN_new
    - BN_is_odd
    - EC_GROUP_free
    - BN_hex2bn
    - CHAR2_CURVE_TEST
    - EC_POINT_invert
    - EC_GROUP_copy
    - fflush
    - EC_GROUP_set_curve_GF2m
    - EC_POINT_set_compressed_coordinates_GF2m
    - EC_POINT_oct2point
    - BN_set_negative
    - EC_POINT_is_at_infinity
    - BN_add
    - BN_pseudo_rand
    - EC_POINT_new
    - BN_num_bits
    - BN_CTX_free
    - EC_POINT_point2oct
    - EC_POINT_add
    linkageType: ''
    returnType: void
    signature: char2_field_tests(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_get_builtin_curves
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1402,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1403,1
    - Dst: EC_get_builtin_curves
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1407,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1408,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1412,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1417,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1419,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1420,1
    - Dst: EC_GROUP_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1424,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1426,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1427,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1428,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1432,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1433,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1434,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1437,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1439,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1453,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1453,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1454,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1455,1
    - Dst: group_order_tests
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1458,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1459,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1462,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1396
    functionDepth: 7
    functionLinenumber: 1396
    functionLinenumberEnd: 1464
    functionName: internal_curve_test
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_new_by_curve_name
    - fflush
    - EC_GROUP_free
    - OBJ_nid2sn
    - EC_GROUP_check
    - fprintf
    - OPENSSL_free
    - group_order_tests
    - OPENSSL_malloc
    - EC_get_builtin_curves
    linkageType: ''
    returnType: void
    signature: internal_curve_test(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1561,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1563,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1564,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1565,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1566,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1567,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1568,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1569,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1570,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1571,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1572,1
    - Dst: EC_GROUP_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1574,1
    - Dst: struct nistp_test_params*::meth
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1574,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1577,1
    - Dst: BN_is_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1579,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1581,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1583,1
    - Dst: EC_GROUP_set_curve_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1585,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1587,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1588,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1589,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1590,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1591,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1593,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1595,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1595,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1601,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1603,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1605,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1607,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1609,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1611,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1613,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1613,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1616,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1617,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1619,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1621,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1622,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1625,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1626,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1629,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1630,1
    - Dst: EC_POINT_dbl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1634,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1636,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1636,1
    - Dst: BN_rshift
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1639,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1644,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1645,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1648,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1649,1
    - Dst: EC_GROUP_have_precompute_mult
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1656,1
    - Dst: EC_GROUP_precompute_mult
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1660,1
    - Dst: EC_GROUP_have_precompute_mult
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1662,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1666,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1667,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1670,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1671,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1675,1
    - Dst: BN_value_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1675,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1678,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1679,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1682,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1683,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1686,1
    - Dst: group_order_tests
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1687,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1688,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1689,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1690,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1691,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1692,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1693,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1694,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1695,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1696,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1697,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1698,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1699,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1700,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1701,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1702,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 111
    argCount: 1
    argNames:
    - test
    argTypes:
    - struct nistp_test_params*
    constantsTouched: []
    func_position:
      end: 1703
      start: 1554
    functionDepth: 7
    functionLinenumber: 1554
    functionLinenumberEnd: 1703
    functionName: nistp_single_test
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_POINT_set_affine_coordinates_GFp
    - BN_rshift
    - EC_POINT_dbl
    - EC_GROUP_new
    - EC_GROUP_set_generator
    - EC_GROUP_have_precompute_mult
    - fprintf
    - BN_is_prime_ex
    - BN_value_one
    - EC_POINT_free
    - BN_free
    - EC_POINT_cmp
    - BN_CTX_new
    - group_order_tests
    - BN_new
    - EC_GROUP_free
    - struct nistp_test_params*::meth
    - BN_hex2bn
    - EC_GROUP_set_curve_GFp
    - EC_GROUP_precompute_mult
    - EC_GROUP_get_degree
    - BN_add
    - EC_POINT_new
    - BN_CTX_free
    - EC_POINT_mul
    linkageType: ''
    returnType: void
    signature: nistp_single_test(const struct nistp_test_params *test)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1709,1
    - Dst: nistp_single_test
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1705
    functionDepth: 8
    functionLinenumber: 1705
    functionLinenumberEnd: 1712
    functionName: nistp_tests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ectest.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - nistp_single_test
    linkageType: ''
    returnType: void
    signature: nistp_tests()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1720,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1722,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1726,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1729,1
    - Dst: EC_GROUP_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1732,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1735,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1737,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1738,1
    - Dst: ECPARAMETERS_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1739,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1715
    functionDepth: 6
    functionLinenumber: 1715
    functionLinenumberEnd: 1740
    functionName: parameter_test
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_cmp
    - EC_GROUP_new_by_curve_name
    - EC_GROUP_get_ecparameters
    - EC_GROUP_free
    - EC_GROUP_new_from_ecparameters
    - fprintf
    - ECPARAMETERS_free
    linkageType: ''
    returnType: void
    signature: parameter_test(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1749,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1750,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1751,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1752,1
    - Dst: RAND_seed
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1754,1
    - Dst: prime_field_tests
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1756,1
    - Dst: puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1757,1
    - Dst: char2_field_tests
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1759,1
    - Dst: nistp_tests
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1762,1
    - Dst: internal_curve_test
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1765,1
    - Dst: parameter_test
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1767,1
    - Dst: CRYPTO_mem_leaks_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ectest.c:1770,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 1775
      start: 1745
    functionDepth: 9
    functionLinenumber: 1745
    functionLinenumberEnd: 1775
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ectest.c
    functionUses: 22
    functionsReached:
    - strcmp
    - prime_field_tests
    - CRYPTO_mem_ctrl
    - RAND_seed
    - getenv
    - nistp_tests
    - CRYPTO_mem_leaks_fp
    - internal_curve_test
    - char2_field_tests
    - puts
    - CRYPTO_set_mem_debug
    - parameter_test
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/sanitytest.c:47,1
    - Dst: TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sanitytest.c:48,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sanitytest.c:48,1
    - Dst: TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sanitytest.c:51,1
    - Dst: TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sanitytest.c:52,1
    - Dst: TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sanitytest.c:53,1
    - Dst: TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sanitytest.c:55,1
    - Dst: TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sanitytest.c:56,1
    - Dst: TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sanitytest.c:59,1
    - Dst: TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sanitytest.c:60,1
    - Dst: TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sanitytest.c:63,1
    - Dst: TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sanitytest.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 67
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sanitytest.c
    functionUses: 22
    functionsReached:
    - TEST
    - memcmp
    - memset
    linkageType: ''
    returnType: int
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/destest.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:319,1
    - Dst: DES_set_key_unchecked
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:321,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:322,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:323,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:324,1
    - Dst: DES_ecb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:325,1
    - Dst: DES_ecb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:326,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:328,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:329,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:330,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:330,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:330,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:331,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:334,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:335,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:336,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:336,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:336,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:336,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:342,1
    - Dst: DES_set_key_unchecked
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:344,1
    - Dst: DES_set_key_unchecked
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:345,1
    - Dst: DES_set_key_unchecked
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:346,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:347,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:348,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:349,1
    - Dst: DES_ecb3_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:350,1
    - Dst: DES_ecb3_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:351,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:353,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:354,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:355,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:355,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:355,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:356,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:359,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:360,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:361,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:361,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:361,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:361,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:367,1
    - Dst: DES_set_key_checked
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:368,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:369,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:372,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:373,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:374,1
    - Dst: DES_ncbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:375,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:375,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:377,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:378,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:382,1
    - Dst: DES_ncbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:383,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:383,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:385,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:385,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:386,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:390,1
    - Dst: DES_set_key_checked
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:391,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:392,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:395,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:396,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:397,1
    - Dst: DES_xcbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:398,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:398,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:400,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:401,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:404,1
    - Dst: DES_xcbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:405,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:405,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:407,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:407,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:408,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:413,1
    - Dst: DES_set_key_checked
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:414,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:415,1
    - Dst: DES_set_key_checked
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:418,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:419,1
    - Dst: DES_set_key_checked
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:422,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:423,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:426,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:427,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:428,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:430,1
    - Dst: DES_ede3_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:432,1
    - Dst: DES_ede3_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:434,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:436,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:438,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:441,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:443,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:444,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:446,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:447,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:451,1
    - Dst: DES_ede3_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:452,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:453,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:453,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:456,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:458,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:459,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:461,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:462,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:466,1
    - Dst: DES_set_key_checked
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:467,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:468,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:471,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:472,1
    - Dst: DES_pcbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:473,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:473,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:475,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:476,1
    - Dst: DES_pcbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:479,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:479,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:481,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:481,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:482,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:486,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:487,1
    - Dst: cfb_test
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:488,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:489,1
    - Dst: cfb_test
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:490,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:491,1
    - Dst: cfb_test
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:492,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:493,1
    - Dst: cfb_test
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:494,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:495,1
    - Dst: cfb_test
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:496,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:498,1
    - Dst: cfb64_test
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:499,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:501,1
    - Dst: DES_cfb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:503,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:505,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:506,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:510,1
    - Dst: DES_cfb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:512,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:514,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:515,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:519,1
    - Dst: ede_cfb64_test
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:520,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:522,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:524,1
    - Dst: DES_set_key_checked
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:525,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:526,1
    - Dst: DES_ofb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:527,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:528,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:529,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:530,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:534,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:540,1
    - Dst: DES_ofb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:541,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:543,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:544,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:545,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:549,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:555,1
    - Dst: DES_set_key_checked
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:556,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:557,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:558,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:559,1
    - Dst: DES_ofb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:562,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:564,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:565,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:568,1
    - Dst: DES_ofb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:570,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:572,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:573,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:577,1
    - Dst: DES_set_key_checked
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:578,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:579,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:580,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:581,1
    - Dst: DES_ede3_ofb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:584,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:587,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:588,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:591,1
    - Dst: DES_ede3_ofb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:593,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:595,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:596,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:600,1
    - Dst: DES_set_key_checked
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:601,1
    - Dst: DES_cbc_cksum
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:602,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:602,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:605,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:609,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:610,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:614,1
    - Dst: DES_quad_cksum
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:615,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:616,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:619,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:624,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:629,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:634,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:639,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:645,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:647,1
    - Dst: DES_ncbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:648,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:649,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:652,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:654,1
    - Dst: DES_ncbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:655,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:656,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:659,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:660,1
    - Dst: DES_crypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:661,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:662,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:663,1
    - Dst: DES_crypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:666,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:667,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:668,1
    - Dst: DES_crypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:671,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:673,1
    - Dst: DES_crypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:676,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:678,1
    - Dst: DES_crypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:681,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:683,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:686,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 293
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 688
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 688
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/destest.c
    functionUses: 22
    functionsReached:
    - DES_cfb_encrypt
    - DES_cbc_cksum
    - pt
    - printf
    - DES_ofb_encrypt
    - DES_ede3_cbc_encrypt
    - ede_cfb64_test
    - DES_crypt
    - cfb64_test
    - DES_ede3_ofb64_encrypt
    - DES_ecb_encrypt
    - DES_set_key_unchecked
    - DES_ecb3_encrypt
    - DES_pcbc_encrypt
    - memset
    - strlen
    - cfb_test
    - DES_set_key_checked
    - DES_xcbc_encrypt
    - DES_ncbc_encrypt
    - memcmp
    - DES_ofb64_encrypt
    - strcmp
    - memcpy
    - DES_quad_cksum
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 706
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 706
    functionName: pt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/destest.c
    functionUses: 224
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*pt(unsigned char *p)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_checked
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:715,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:716,1
    - Dst: DES_cfb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:717,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:719,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:721,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:723,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:723,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:725,1
    - Dst: DES_cfb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:726,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:728,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:730,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:732,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:732,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - bits
    - cfb_cipher
    argTypes:
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 735
      start: 710
    functionDepth: 2
    functionLinenumber: 710
    functionLinenumberEnd: 735
    functionName: cfb_test
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/destest.c
    functionUses: 1
    functionsReached:
    - memcmp
    - DES_cfb_encrypt
    - pt
    - memcpy
    - printf
    - DES_set_key_checked
    linkageType: ''
    returnType: int
    signature: cfb_test(int bits, unsigned char *cfb_cipher)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_checked
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:742,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:743,1
    - Dst: DES_cfb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:745,1
    - Dst: DES_cfb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:746,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:748,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:750,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:752,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:752,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:754,1
    - Dst: DES_cfb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:756,1
    - Dst: DES_cfb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:757,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:759,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:761,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:763,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:763,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - cfb_cipher
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 766
      start: 737
    functionDepth: 2
    functionLinenumber: 737
    functionLinenumberEnd: 766
    functionName: cfb64_test
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/destest.c
    functionUses: 1
    functionsReached:
    - memcmp
    - DES_cfb64_encrypt
    - pt
    - printf
    - memcpy
    - DES_set_key_checked
    linkageType: ''
    returnType: int
    signature: cfb64_test(unsigned char *cfb_cipher)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_checked
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:773,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:774,1
    - Dst: DES_ede3_cfb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:776,1
    - Dst: DES_ede3_cfb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:778,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:781,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:783,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:785,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:785,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:787,1
    - Dst: DES_ede3_cfb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:789,1
    - Dst: DES_ede3_cfb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:791,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:794,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:796,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:798,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/destest.c:798,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - cfb_cipher
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 801
      start: 768
    functionDepth: 3
    functionLinenumber: 768
    functionLinenumberEnd: 801
    functionName: ede_cfb64_test
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/destest.c
    functionUses: 1
    functionsReached:
    - memcmp
    - DES_ede3_cfb64_encrypt
    - pt
    - memcpy
    - printf
    - DES_set_key_checked
    linkageType: ''
    returnType: int
    signature: ede_cfb64_test(unsigned char *cfb_cipher)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:32,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:33,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:34,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:35,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:36,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:37,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:38,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - method
    - r
    - a
    argTypes:
    - char*
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 43
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 43
    functionName: a_is_zero_mod_one
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/exptest.c
    functionUses: 0
    functionsReached:
    - BN_is_zero
    - fprintf
    - BN_print_fp
    linkageType: ''
    returnType: int
    signature: "a_is_zero_mod_one(const char *method, const BIGNUM *r,\n                             const
      BIGNUM *a)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:53,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:56,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:59,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:61,1
    - Dst: BN_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:64,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:66,1
    - Dst: BN_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:69,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:71,1
    - Dst: BN_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:75,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:78,1
    - Dst: a_is_zero_mod_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:81,1
    - Dst: BN_mod_exp_recp
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:84,1
    - Dst: a_is_zero_mod_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:87,1
    - Dst: BN_mod_exp_simple
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:90,1
    - Dst: a_is_zero_mod_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:93,1
    - Dst: BN_mod_exp_mont
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:96,1
    - Dst: a_is_zero_mod_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:99,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:102,1
    - Dst: a_is_zero_mod_one
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:106,1
    - Dst: BN_mod_exp_mont_word
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:113,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:116,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:117,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:118,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:119,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:120,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:121,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:128,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:129,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:130,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:131,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:132,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 48
    functionDepth: 6
    functionLinenumber: 48
    functionLinenumberEnd: 135
    functionName: test_exp_mod_zero
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/exptest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - fprintf
    - BN_print_fp
    - BN_free
    - BN_is_zero
    - BN_mod_exp
    - BN_rand
    - BN_CTX_free
    - BN_one
    - BN_zero
    - BN_CTX_new
    - BN_mod_exp_mont_consttime
    - BN_mod_exp_simple
    - a_is_zero_mod_one
    - BN_mod_exp_mont_word
    - BN_mod_exp_recp
    - BN_mod_exp_mont
    linkageType: ''
    returnType: int
    signature: test_exp_mod_zero()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_seed
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:145,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:149,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:151,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:152,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:153,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:154,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:155,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:156,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:157,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:158,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:162,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:162,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:165,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:166,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:169,1
    - Dst: BN_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:171,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:173,1
    - Dst: BN_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:175,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:177,1
    - Dst: BN_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:179,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:181,1
    - Dst: BN_mod
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:182,1
    - Dst: BN_mod_exp_mont
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:184,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:186,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:187,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:188,1
    - Dst: BN_mod_exp_recp
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:191,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:193,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:194,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:195,1
    - Dst: BN_mod_exp_simple
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:198,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:200,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:201,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:202,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:205,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:207,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:208,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:209,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:212,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:213,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:214,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:215,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:216,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:218,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:219,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:220,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:221,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:222,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:223,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:225,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:225,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:226,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:227,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:227,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:228,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:229,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:229,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:230,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:231,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:232,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:233,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:234,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:235,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:236,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:237,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:238,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:239,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:240,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:243,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:244,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:245,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:246,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:247,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:248,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:249,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:250,1
    - Dst: test_exp_mod_zero
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:252,1
    - Dst: CRYPTO_mem_leaks
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:256,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:259,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:260,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:262,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:264,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:266,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/exptest.c:267,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 105
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 268
      start: 137
    functionDepth: 7
    functionLinenumber: 137
    functionLinenumberEnd: 268
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/exptest.c
    functionUses: 22
    functionsReached:
    - RAND_bytes
    - RAND_seed
    - BN_rand
    - printf
    - BN_mod_exp_mont
    - BN_print
    - BN_free
    - BN_cmp
    - BIO_free
    - BN_CTX_new
    - BIO_set_fp
    - BIO_new
    - BN_mod_exp_recp
    - BN_new
    - CRYPTO_mem_leaks
    - BN_mod
    - BIO_s_file
    - test_exp_mod_zero
    - BN_mod_exp_mont_consttime
    - fflush
    - EXIT
    - ERR_print_errors
    - BN_CTX_free
    - BN_num_bits
    - BN_mod_exp_simple
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c
    functionUses: 22
    functionsReached:
    - puts
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get_rand_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:68,1
    - Dst: RAND_set_rand_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 82
    functionName: change_rand
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c
    functionUses: 0
    functionsReached:
    - RAND_get_rand_method
    - RAND_set_rand_method
    linkageType: ''
    returnType: int
    signature: change_rand(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_set_rand_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: restore_rand
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c
    functionUses: 0
    functionsReached:
    - RAND_set_rand_method
    linkageType: ''
    returnType: int
    signature: restore_rand(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:114,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:120,1
    - Dst: BN_dec2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:123,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:124,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:128,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:128,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:132,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 134
      start: 108
    functionDepth: 4
    functionLinenumber: 108
    functionLinenumberEnd: 134
    functionName: fbytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_dec2bn
    - BN_free
    - bytes
    - BN_bn2bin
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: fbytes(unsigned char *buf, int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:143,1
    - Dst: EVP_DigestInit
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:154,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:154,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:155,1
    - Dst: EVP_DigestFinal
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:156,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:159,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:159,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:161,1
    - Dst: EC_KEY_generate_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:164,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:166,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:167,1
    - Dst: ECDSA_sign_setup
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:171,1
    - Dst: ECDSA_do_sign_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:173,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:176,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:177,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:179,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:179,1
    - Dst: BN_dec2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:181,1
    - Dst: BN_dec2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:181,1
    - Dst: ECDSA_SIG_get0
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:183,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:184,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:184,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:186,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:187,1
    - Dst: ECDSA_do_verify
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:189,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:191,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:192,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:194,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:198,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:199,1
    - Dst: ECDSA_SIG_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:200,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:201,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:202,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:203,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:204,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:205,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 58
    argCount: 4
    argNames:
    - out
    - nid
    - r_in
    - s_in
    argTypes:
    - BIO*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 207
      start: 137
    functionDepth: 4
    functionLinenumber: 137
    functionLinenumberEnd: 207
    functionName: x9_62_test_internal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c
    functionUses: 0
    functionsReached:
    - EC_KEY_free
    - EVP_DigestUpdate
    - OBJ_nid2sn
    - EVP_MD_CTX_free
    - BIO_printf
    - EVP_DigestInit
    - EVP_sha1
    - BN_free
    - BN_clear_free
    - ECDSA_SIG_get0
    - BN_cmp
    - ECDSA_SIG_free
    - BN_new
    - EC_KEY_generate_key
    - ECDSA_sign_setup
    - BN_dec2bn
    - EC_KEY_new_by_curve_name
    - ECDSA_do_verify
    - EVP_DigestFinal
    - BIO_flush
    - EVP_MD_CTX_new
    - ECDSA_do_sign_ex
    linkageType: ''
    returnType: int
    signature: x9_62_test_internal(BIO *out, int nid, const char *r_in, const char
      *s_in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:213,1
    - Dst: change_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:216,1
    - Dst: x9_62_test_internal
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:219,1
    - Dst: x9_62_test_internal
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:223,1
    - Dst: x9_62_test_internal
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:230,1
    - Dst: x9_62_test_internal
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:234,1
    - Dst: restore_rand
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:243,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 1
    argNames:
    - out
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 246
      start: 209
    functionDepth: 5
    functionLinenumber: 209
    functionLinenumberEnd: 246
    functionName: x9_62_tests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - change_rand
    - x9_62_test_internal
    - restore_rand
    linkageType: ''
    returnType: int
    signature: x9_62_tests(BIO *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:267,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:267,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:268,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:275,1
    - Dst: EC_get_builtin_curves
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:279,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:280,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:282,1
    - Dst: EC_get_builtin_curves
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:286,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:287,1
    - Dst: EC_KEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:299,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:301,1
    - Dst: EC_KEY_set_group
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:304,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:306,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:307,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:307,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:310,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:314,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:314,1
    - Dst: EC_KEY_generate_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:316,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:317,1
    - Dst: EC_KEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:321,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:323,1
    - Dst: EC_KEY_set_group
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:326,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:328,1
    - Dst: EC_KEY_generate_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:329,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:330,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:334,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:335,1
    - Dst: EC_KEY_check_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:337,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:338,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:341,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:342,1
    - Dst: ECDSA_size
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:344,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:345,1
    - Dst: ECDSA_sign
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:347,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:348,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:351,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:352,1
    - Dst: ECDSA_verify
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:354,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:355,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:358,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:359,1
    - Dst: ECDSA_verify
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:361,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:362,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:365,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:366,1
    - Dst: ECDSA_verify
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:368,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:369,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:372,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:373,1
    - Dst: ECDSA_verify
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:375,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:376,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:379,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:380,1
    - Dst: d2i_ECDSA_SIG
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:388,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:389,1
    - Dst: ECDSA_SIG_get0
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:393,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:396,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:397,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:400,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:404,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:406,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:407,1
    - Dst: ECDSA_SIG_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:414,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:417,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:418,1
    - Dst: ECDSA_SIG_set0
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:419,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:420,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:421,1
    - Dst: i2d_ECDSA_SIG
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:425,1
    - Dst: ECDSA_verify
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:426,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:427,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:434,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:435,1
    - Dst: ECDSA_SIG_set0
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:436,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:437,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:438,1
    - Dst: i2d_ECDSA_SIG
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:443,1
    - Dst: ECDSA_verify
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:444,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:445,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:448,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:449,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:451,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:454,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:455,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:457,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:459,1
    - Dst: ECDSA_SIG_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:461,1
    - Dst: ECDSA_SIG_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:463,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:465,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:471,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:472,1
    - Dst: ECDSA_SIG_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:473,1
    - Dst: ECDSA_SIG_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:474,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:475,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:476,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:477,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 193
    argCount: 1
    argNames:
    - out
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 480
      start: 248
    functionDepth: 6
    functionLinenumber: 248
    functionLinenumberEnd: 480
    functionName: test_builtin
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - BN_bin2bn
    - EC_KEY_free
    - ECDSA_verify
    - OBJ_nid2sn
    - OPENSSL_zalloc
    - i2d_ECDSA_SIG
    - d2i_ECDSA_SIG
    - BIO_printf
    - EC_get_builtin_curves
    - BN_free
    - EC_GROUP_new_by_curve_name
    - ECDSA_SIG_get0
    - ECDSA_SIG_free
    - EC_KEY_set_group
    - EC_KEY_generate_key
    - ECDSA_SIG_set0
    - EC_GROUP_free
    - ECDSA_size
    - EC_KEY_check_key
    - EC_KEY_new
    - ECDSA_SIG_new
    - OPENSSL_free
    - EC_KEY_get0_group
    - ERR_clear_error
    - EC_GROUP_get_degree
    - ECDSA_sign
    - BIO_flush
    - BN_bn2bin
    - OPENSSL_malloc
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: test_builtin(BIO *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:488,1
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:490,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:491,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:492,1
    - Dst: RAND_seed
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:495,1
    - Dst: x9_62_tests
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:498,1
    - Dst: test_builtin
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:500,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:506,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:508,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:510,1
    - Dst: CRYPTO_mem_leaks
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:513,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c:516,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 518
      start: 482
    functionDepth: 7
    functionLinenumber: 482
    functionLinenumberEnd: 518
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c
    functionUses: 22
    functionsReached:
    - x9_62_tests
    - CRYPTO_mem_leaks
    - strcmp
    - ERR_print_errors
    - RAND_seed
    - getenv
    - BIO_new_fp
    - BIO_free
    - BIO_printf
    - CRYPTO_set_mem_debug
    - test_builtin
    linkageType: ''
    returnType: int
    signature: main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:65,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:67,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:67,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:69,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:70,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:71,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:74,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:75,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:77,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:79,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:81,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:82,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:83,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:86,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:87,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:89,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:91,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:92,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:95,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:95,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:98,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:110,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:113,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:114,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:115,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:118,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:119,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:121,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:122,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:124,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:126,1
    - Dst: EVP_sha224
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:126,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:128,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:129,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:130,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:133,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:134,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:136,1
    - Dst: EVP_sha224
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:138,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:140,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:141,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:142,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:145,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:146,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:148,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:149,1
    - Dst: EVP_sha224
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:149,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:152,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:157,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:159,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:161,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:162,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:163,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:166,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:167,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:169,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:170,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c:175,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 96
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 177
      start: 59
    functionDepth: 5
    functionLinenumber: 59
    functionLinenumberEnd: 177
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c
    functionUses: 22
    functionsReached:
    - EVP_Digest
    - EVP_DigestFinal_ex
    - memcmp
    - EVP_DigestUpdate
    - EVP_sha256
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - EVP_MD_CTX_reset
    - EVP_sha224
    - fprintf
    - fflush
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/testutil.c:39,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/testutil.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - test_case_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: add_test
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/testutil.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - assert
    linkageType: ''
    returnType: void
    signature: add_test(const char *test_case_name, int (*test_fn) ())
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/testutil.c:50,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/testutil.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - test_case_name
    - num
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: add_all_tests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/testutil.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - assert
    linkageType: ''
    returnType: void
    signature: "add_all_tests(const char *test_case_name, int(*test_fn)(int idx),\n
      \                  int num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/testutil.c:64,1
    - Dst: test_fn
      Src: /src/openweave-core/third_party/openssl/openssl/test/testutil.c:69,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/testutil.c:70,1
    - Dst: param_test_fn
      Src: /src/openweave-core/third_party/openssl/openssl/test/testutil.c:76,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/testutil.c:77,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/testutil.c:86,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/testutil.c:90,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - test_prog_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 92
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 92
    functionName: run_tests
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/testutil.c
    functionUses: 1
    functionsReached:
    - param_test_fn
    - test_fn
    - printf
    linkageType: ''
    returnType: int
    signature: run_tests(const char *test_prog_name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: print_string_maybe_null
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/testutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*print_string_maybe_null(const char *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/testutil.c:103,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/testutil.c:104,1
    - Dst: print_string_maybe_null
      Src: /src/openweave-core/third_party/openssl/openssl/test/testutil.c:104,1
    - Dst: print_string_maybe_null
      Src: /src/openweave-core/third_party/openssl/openssl/test/testutil.c:105,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - desc
    - s1
    - s2
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 109
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 109
    functionName: strings_equal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/testutil.c
    functionUses: 0
    functionsReached:
    - fprintf
    - print_string_maybe_null
    - strcmp
    linkageType: ''
    returnType: int
    signature: strings_equal(const char *desc, const char *s1, const char *s2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rmdtest.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/rmdtest.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/rmdtest.c:62,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/test/rmdtest.c:64,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/rmdtest.c:64,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/test/rmdtest.c:66,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/rmdtest.c:66,1
    - Dst: EVP_ripemd160
      Src: /src/openweave-core/third_party/openssl/openssl/test/rmdtest.c:66,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rmdtest.c:68,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/rmdtest.c:69,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/rmdtest.c:71,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/rmdtest.c:72,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rmdtest.c:73,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rmdtest.c:74,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rmdtest.c:77,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/rmdtest.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 81
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 81
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/rmdtest.c
    functionUses: 22
    functionsReached:
    - EVP_Digest
    - strcmp
    - pt
    - strlen
    - EVP_ripemd160
    - printf
    - OSSL_NELEM
    - EXIT
    - ebcdic2ascii
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rmdtest.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - md
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: pt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/rmdtest.c
    functionUses: 228
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: char
    signature: '*pt(unsigned char *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:68,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:72,1
    - Dst: EVP_PKEY_CTX_set_tls1_prf_md
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:73,1
    - Dst: EVP_md5_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:73,1
    - Dst: EVP_PKEY_CTX_set1_tls1_prf_secret
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:74,1
    - Dst: EVP_PKEY_CTX_add1_tls1_prf_seed
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:75,1
    - Dst: EVP_PKEY_CTX_add1_tls1_prf_seed
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:76,1
    - Dst: EVP_PKEY_CTX_add1_tls1_prf_seed
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:77,1
    - Dst: EVP_PKEY_derive
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:78,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 8
    argNames:
    - seed1
    - seed1_len
    - seed2
    - seed2_len
    - seed3
    - seed3_len
    - out
    - olen
    argTypes:
    - void*
    - int
    - void*
    - int
    - void*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 81
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 81
    functionName: do_PRF
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_derive
    - EVP_PKEY_CTX_set1_tls1_prf_secret
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_CTX_add1_tls1_prf_seed
    - EVP_PKEY_CTX_set_tls1_prf_md
    - EVP_PKEY_CTX_free
    - EVP_md5_sha1
    linkageType: ''
    returnType: int
    signature: "do_PRF(const void *seed1, int seed1_len,\n                  const
      void *seed2, int seed2_len,\n                  const void *seed3, int seed3_len,\n
      \                 unsigned char *out, int olen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:108,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:109,1
    - Dst: d2i_SSL_SESSION
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 112
    functionName: client_session
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - memcpy
    - d2i_SSL_SESSION
    linkageType: ''
    returnType: SSL_SESSION
    signature: '*client_session(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_mem_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:123,1
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:124,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:128,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:131,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:134,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:138,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:141,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:145,1
    - Dst: PACKET_copy_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:149,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:153,1
    - Dst: PACKET_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:154,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:158,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:160,1
    - Dst: PACKET_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:161,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:167,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:167,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:171,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:171,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:175,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:175,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:179,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:183,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:185,1
    - Dst: BIO_reset
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:187,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 39
    argCount: 1
    argNames:
    - wbio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 190
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 190
    functionName: validate_client_hello
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - PACKET_get_length_prefixed_1
    - BIO_reset
    - EVP_DigestUpdate
    - PACKET_equal
    - PACKET_get_net_2
    - BIO_get_mem_data
    - printf
    - PACKET_remaining
    - PACKET_buf_init
    - PACKET_forward
    - PACKET_get_1
    - PACKET_copy_bytes
    linkageType: ''
    returnType: int
    signature: validate_client_hello(BIO *wbio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:213,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - rbio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 218
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 218
    functionName: send_hello_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BIO_write
    linkageType: ''
    returnType: int
    signature: send_hello_verify(BIO *rbio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:257,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:258,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:260,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:262,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:264,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - rbio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 268
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 268
    functionName: send_server_hello
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - printf
    - memcpy
    - EVP_DigestUpdate
    - BIO_write
    linkageType: ''
    returnType: int
    signature: send_server_hello(BIO *rbio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:297,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:302,1
    - Dst: HMAC_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:305,1
    - Dst: HMAC_Init_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:306,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:306,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:307,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:308,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:309,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:310,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:313,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:314,1
    - Dst: HMAC_Final
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:315,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:316,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:325,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:326,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:327,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:327,1
    - Dst: EVP_Cipher
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:328,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:329,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:332,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:333,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:334,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:335,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:338,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:340,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:341,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 5
    argNames:
    - rbio
    - type
    - seqnr
    - msg
    - len
    argTypes:
    - BIO*
    - unsigned char
    - unsigned long
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 345
      start: 271
    functionDepth: 5
    functionLinenumber: 271
    functionLinenumberEnd: 345
    functionName: send_record
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - EVP_CIPHER_CTX_new
    - EVP_sha1
    - EVP_CIPHER_CTX_free
    - EVP_aes_128_cbc
    - HMAC_Update
    - EVP_Cipher
    - HMAC_CTX_new
    - HMAC_Final
    - memcpy
    - HMAC_Init_ex
    - EVP_CipherInit_ex
    - HMAC_CTX_free
    - OPENSSL_free
    - BIO_write
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "send_record(BIO *rbio, unsigned char type, unsigned long seqnr,\n
      \                      const void *msg, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_PRF
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:361,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:367,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:368,1
    - Dst: do_PRF
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:370,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:371,1
    - Dst: send_record
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - rbio
    argTypes:
    - SSL*
    - BIO*
    constantsTouched: []
    func_position:
      end: 377
      start: 347
    functionDepth: 6
    functionLinenumber: 347
    functionLinenumberEnd: 377
    functionName: send_finished
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - send_record
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_size
    - do_PRF
    - printf
    linkageType: ''
    returnType: int
    signature: send_finished(SSL *s, BIO *rbio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_mem_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:386,1
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:387,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:391,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:394,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:397,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:401,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:405,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:409,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:411,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:415,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 21
    argCount: 1
    argNames:
    - wbio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 425
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 425
    functionName: validate_ccs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - PACKET_get_net_2
    - BIO_get_mem_data
    - PACKET_buf_init
    - PACKET_forward
    - PACKET_get_1
    linkageType: ''
    returnType: int
    signature: validate_ccs(BIO *wbio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:459,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:461,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:462,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:464,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:465,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:466,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:467,1
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:469,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:470,1
    - Dst: client_session
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:472,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:474,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:478,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:480,1
    - Dst: EVP_md5_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:480,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:481,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:485,1
    - Dst: DTLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:485,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:487,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:490,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:491,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:494,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:495,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:499,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:500,1
    - Dst: SSL_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:504,1
    - Dst: SSL_set_session
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:505,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:506,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:509,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:511,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:511,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:512,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:512,1
    - Dst: BIO_set_nbio
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:514,1
    - Dst: BIO_set_nbio
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:515,1
    - Dst: SSL_set_bio
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:517,1
    - Dst: SSL_set_connect_state
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:518,1
    - Dst: SSL_do_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:521,1
    - Dst: SSL_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:522,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:523,1
    - Dst: validate_client_hello
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:527,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:528,1
    - Dst: send_hello_verify
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:531,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:532,1
    - Dst: SSL_do_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:535,1
    - Dst: SSL_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:536,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:537,1
    - Dst: validate_client_hello
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:540,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:541,1
    - Dst: send_server_hello
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:544,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:545,1
    - Dst: SSL_do_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:548,1
    - Dst: SSL_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:549,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:550,1
    - Dst: send_finished
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:553,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:554,1
    - Dst: SSL_do_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:557,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:559,1
    - Dst: validate_ccs
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:562,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:563,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:572,1
    - Dst: send_record
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:575,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:577,1
    - Dst: SSL_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:585,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:587,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:592,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:598,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:604,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:606,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:608,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:610,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:613,1
    - Dst: CRYPTO_mem_leaks
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:618,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c:621,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 155
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 624
      start: 446
    functionDepth: 7
    functionLinenumber: 446
    functionLinenumberEnd: 624
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c
    functionUses: 22
    functionsReached:
    - RAND_bytes
    - BIO_set_nbio
    - client_session
    - BIO_s_mem
    - ERR_print_errors_fp
    - SSL_new
    - EVP_MD_CTX_free
    - send_finished
    - printf
    - EVP_md5_sha1
    - SSL_get_error
    - EVP_DigestInit_ex
    - send_server_hello
    - BIO_free
    - SSL_set_bio
    - SSL_do_handshake
    - SSL_free
    - OSSL_NELEM
    - SSL_CTX_set_cipher_list
    - BIO_new
    - CRYPTO_set_mem_debug
    - SSL_CTX_new
    - time
    - SSL_set_session
    - send_record
    - DTLS_client_method
    - CRYPTO_mem_leaks
    - BIO_new_fp
    - validate_ccs
    - SSL_set_connect_state
    - SSL_CTX_free
    - SSL_CTX_set_min_proto_version
    - SSL_SESSION_free
    - SSL_CTX_set_max_proto_version
    - CRYPTO_mem_ctrl
    - EVP_MD_CTX_new
    - send_hello_verify
    - memcpy
    - SSL_read
    - validate_client_hello
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/md4test.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/md4test.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/test/md4test.c:59,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/md4test.c:59,1
    - Dst: EVP_md4
      Src: /src/openweave-core/third_party/openssl/openssl/test/md4test.c:59,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/md4test.c:61,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/md4test.c:62,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/md4test.c:64,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/md4test.c:65,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/md4test.c:66,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/md4test.c:67,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/md4test.c:70,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/md4test.c:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 76
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 76
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/md4test.c
    functionUses: 22
    functionsReached:
    - EVP_Digest
    - strcmp
    - pt
    - strlen
    - printf
    - EVP_md4
    - EXIT
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/md4test.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - md
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: pt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/md4test.c
    functionUses: 229
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: char
    signature: '*pt(unsigned char *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RC5_32_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:197,1
    - Dst: RC5_32_ecb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:199,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:200,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:201,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:202,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:204,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:205,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:206,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:208,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:210,1
    - Dst: RC5_32_ecb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:213,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:214,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:215,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:216,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:218,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:219,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:220,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:222,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:223,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:228,1
    - Dst: RC5_32_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:235,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:237,1
    - Dst: RC5_32_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:238,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:241,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:242,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:243,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:245,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:246,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:247,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:249,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:251,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:254,1
    - Dst: RC5_32_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:255,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:256,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:257,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:258,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:260,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:261,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:262,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:264,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:265,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:270,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c:272,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 70
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 274
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 274
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c
    functionUses: 22
    functionsReached:
    - memcmp
    - RC5_32_cbc_encrypt
    - RC5_32_set_key
    - printf
    - memcpy
    - EXIT
    - RC5_32_ecb_encrypt
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_die
      Src: /src/openweave-core/third_party/openssl/openssl/test/aborttest.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 16
      start: 12
    functionDepth: 3
    functionLinenumber: 12
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/aborttest.c
    functionUses: 22
    functionsReached:
    - OPENSSL_die
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:50,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:52,1
    - Dst: DTLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:52,1
    - Dst: DTLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:52,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:54,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:58,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:59,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:62,1
    - Dst: bio_f_tls_dump_filter
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:62,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:64,1
    - Dst: create_ssl_objects
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:69,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:71,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:72,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:86,1
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:87,1
    - Dst: mempacket_test_inject
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:88,1
    - Dst: create_ssl_connection
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:91,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:92,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:93,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:99,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:100,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:101,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:102,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 1
    argNames:
    - testidx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 105
      start: 43
    functionDepth: 5
    functionLinenumber: 43
    functionLinenumberEnd: 105
    functionName: test_dtls_unprocessed
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c
    functionUses: 0
    functionsReached:
    - DTLS_client_method
    - SSL_CTX_free
    - ERR_print_errors_fp
    - create_ssl_ctx_pair
    - mempacket_test_inject
    - BIO_next
    - printf
    - create_ssl_objects
    - SSL_free
    - DTLS_server_method
    - SSL_CTX_set_cipher_list
    - BIO_new
    - SSL_get_wbio
    - bio_f_tls_dump_filter
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: test_dtls_unprocessed(int testidx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:113,1
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:120,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:122,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:123,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:125,1
    - Dst: run_tests
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:127,1
    - Dst: bio_f_tls_dump_filter_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:129,1
    - Dst: bio_s_mempacket_test_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:130,1
    - Dst: CRYPTO_mem_leaks
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:133,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:136,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 142
      start: 107
    functionDepth: 4
    functionLinenumber: 107
    functionLinenumberEnd: 142
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c
    functionUses: 22
    functionsReached:
    - bio_s_mempacket_test_free
    - CRYPTO_mem_leaks
    - run_tests
    - CRYPTO_mem_ctrl
    - BIO_new_fp
    - BIO_free
    - printf
    - ADD_ALL_TESTS
    - CRYPTO_set_mem_debug
    - bio_f_tls_dump_filter_free
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - test_case_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: set_up
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: D2I_TEST_FIXTURE
    signature: set_up(const char *const test_case_name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:69,1
    - Dst: ASN1_item_d2i_bio
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:73,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:84,1
    - Dst: ASN1_item_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:88,1
    - Dst: ASN1_item_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:95,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:103,1
    - Dst: ERR_GET_REASON
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:114,1
    - Dst: ERR_peek_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:114,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:116,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:117,1
    - Dst: ASN1_item_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:118,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 44
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - D2I_TEST_FIXTURE
    constantsTouched: []
    func_position:
      end: 120
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 120
    functionName: execute_test
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c
    functionUses: 0
    functionsReached:
    - ASN1_item_i2d
    - memcmp
    - ASN1_item_d2i_bio
    - ASN1_item_d2i
    - ASN1_item_free
    - BIO_free
    - ERR_peek_error
    - BIO_new_file
    - OPENSSL_free
    - BIO_read
    - ERR_GET_REASON
    linkageType: ''
    returnType: int
    signature: execute_test(D2I_TEST_FIXTURE fixture)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - D2I_TEST_FIXTURE
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 5
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: tear_down
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c
    functionUses: 0
    functionsReached:
    - ERR_print_errors_fp
    linkageType: ''
    returnType: void
    signature: tear_down(D2I_TEST_FIXTURE fixture)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_D2I_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:135,1
    - Dst: EXECUTE_D2I_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: test_bad_asn1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c
    functionUses: 0
    functionsReached:
    - SETUP_D2I_TEST_FIXTURE
    - EXECUTE_D2I_TEST
    linkageType: ''
    returnType: int
    signature: test_bad_asn1()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ITEM_ref
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:152,1
    - Dst: ASN1_ITEM_ref
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:153,1
    - Dst: ASN1_ITEM_ref
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:154,1
    - Dst: ASN1_ITEM_ref
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:155,1
    - Dst: ASN1_ITEM_ref
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:157,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:169,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:170,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:171,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:174,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:183,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:184,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:185,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:191,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:192,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:193,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:194,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:195,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:200,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:201,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:208,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:212,1
    - Dst: run_tests
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:214,1
    - Dst: CRYPTO_mem_leaks_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c:217,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 222
      start: 143
    functionDepth: 5
    functionLinenumber: 143
    functionLinenumberEnd: 222
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c
    functionUses: 22
    functionsReached:
    - ASN1_ITEM_ref
    - strcmp
    - run_tests
    - CRYPTO_mem_ctrl
    - CRYPTO_mem_leaks_fp
    - ASN1_ITEM_ptr
    - OSSL_NELEM
    - fprintf
    - CRYPTO_set_mem_debug
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:47,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:49,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:50,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:58,1
    - Dst: TLS_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:58,1
    - Dst: SSL_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:59,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:61,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:61,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:62,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:62,1
    - Dst: SSL_set_bio
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:63,1
    - Dst: SSL_set_connect_state
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:64,1
    - Dst: SSL_set_session_ticket_ext
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:67,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:67,1
    - Dst: SSL_connect
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:71,1
    - Dst: BIO_get_mem_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:76,1
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:77,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:81,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:85,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:89,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:93,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:97,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:101,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:105,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:109,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:111,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:112,1
    - Dst: PACKET_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:117,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:117,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:121,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:130,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:131,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:133,1
    - Dst: CRYPTO_mem_leaks
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:139,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c:142,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 74
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 145
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 145
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c
    functionUses: 22
    functionsReached:
    - BIO_s_mem
    - SSL_new
    - BIO_get_mem_data
    - printf
    - TLS_method
    - PACKET_as_length_prefixed_2
    - BIO_free
    - SSL_set_bio
    - SSL_free
    - PACKET_forward
    - BIO_new
    - CRYPTO_set_mem_debug
    - SSL_CTX_new
    - SSL_set_session_ticket_ext
    - PACKET_get_length_prefixed_1
    - CRYPTO_mem_leaks
    - BIO_new_fp
    - strlen
    - SSL_set_connect_state
    - PACKET_get_length_prefixed_2
    - PACKET_remaining
    - SSL_CTX_free
    - CRYPTO_mem_ctrl
    - PACKET_get_net_2
    - PACKET_equal
    - SSL_connect
    - PACKET_buf_init
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:18,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:19,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:20,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:21,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:22,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:23,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:24,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 29
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 29
    functionName: test_PACKET_remaining
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - fprintf
    - PACKET_forward
    - PACKET_remaining
    linkageType: ''
    returnType: int
    signature: test_PACKET_remaining(unsigned char buf[BUF_LEN])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:35,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:36,1
    - Dst: PACKET_end
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:37,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:38,1
    - Dst: PACKET_end
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:39,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:40,1
    - Dst: PACKET_end
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:41,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:42,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 47
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 47
    functionName: test_PACKET_end
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_end
    - PACKET_remaining
    - PACKET_buf_init
    - fprintf
    - PACKET_forward
    linkageType: ''
    returnType: int
    signature: test_PACKET_end(unsigned char buf[BUF_LEN])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:54,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:55,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:57,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:58,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:60,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:61,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 66
    functionName: test_PACKET_get_1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - fprintf
    - PACKET_forward
    - PACKET_get_1
    linkageType: ''
    returnType: int
    signature: test_PACKET_get_1(unsigned char buf[BUF_LEN])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:73,1
    - Dst: PACKET_get_4
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:74,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:76,1
    - Dst: PACKET_get_4
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:77,1
    - Dst: PACKET_get_4
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:79,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:80,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 85
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 85
    functionName: test_PACKET_get_4
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - fprintf
    - PACKET_get_4
    - PACKET_forward
    linkageType: ''
    returnType: int
    signature: test_PACKET_get_4(unsigned char buf[BUF_LEN])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:92,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:93,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:95,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:96,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:98,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:99,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: test_PACKET_get_net_2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - fprintf
    - PACKET_forward
    - PACKET_get_net_2
    linkageType: ''
    returnType: int
    signature: test_PACKET_get_net_2(unsigned char buf[BUF_LEN])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:111,1
    - Dst: PACKET_get_net_3
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:112,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:114,1
    - Dst: PACKET_get_net_3
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:115,1
    - Dst: PACKET_get_net_3
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:117,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:118,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 123
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 123
    functionName: test_PACKET_get_net_3
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - fprintf
    - PACKET_get_net_3
    - PACKET_forward
    linkageType: ''
    returnType: int
    signature: test_PACKET_get_net_3(unsigned char buf[BUF_LEN])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:130,1
    - Dst: PACKET_get_net_4
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:131,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:133,1
    - Dst: PACKET_get_net_4
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:134,1
    - Dst: PACKET_get_net_4
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:136,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:137,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 142
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 142
    functionName: test_PACKET_get_net_4
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - PACKET_get_net_4
    - PACKET_forward
    - fprintf
    linkageType: ''
    returnType: int
    signature: test_PACKET_get_net_4(unsigned char buf[BUF_LEN])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:149,1
    - Dst: PACKET_get_sub_packet
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:150,1
    - Dst: PACKET_get_net_4
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:151,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:153,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:154,1
    - Dst: PACKET_get_sub_packet
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:155,1
    - Dst: PACKET_get_net_4
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:156,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:158,1
    - Dst: PACKET_get_sub_packet
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:159,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:160,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 165
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 165
    functionName: test_PACKET_get_sub_packet
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_get_sub_packet
    - PACKET_get_net_4
    - PACKET_remaining
    - PACKET_buf_init
    - fprintf
    - PACKET_forward
    linkageType: ''
    returnType: int
    signature: test_PACKET_get_sub_packet(unsigned char buf[BUF_LEN])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:172,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:173,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:176,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:177,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:178,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:181,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:182,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 187
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 187
    functionName: test_PACKET_get_bytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_remaining
    - PACKET_buf_init
    - fprintf
    - PACKET_forward
    - PACKET_get_bytes
    linkageType: ''
    returnType: int
    signature: test_PACKET_get_bytes(unsigned char buf[BUF_LEN])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:194,1
    - Dst: PACKET_copy_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:195,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:198,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:199,1
    - Dst: PACKET_copy_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:200,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:203,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:204,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 209
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 209
    functionName: test_PACKET_copy_bytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_remaining
    - PACKET_buf_init
    - fprintf
    - PACKET_forward
    - PACKET_copy_bytes
    linkageType: ''
    returnType: int
    signature: test_PACKET_copy_bytes(unsigned char buf[BUF_LEN])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:217,1
    - Dst: PACKET_copy_all
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:218,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:220,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:221,1
    - Dst: PACKET_copy_all
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:222,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:223,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 228
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 228
    functionName: test_PACKET_copy_all
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 0
    functionsReached:
    - fprintf
    - memcmp
    - PACKET_remaining
    - PACKET_buf_init
    - PACKET_copy_all
    linkageType: ''
    returnType: int
    signature: test_PACKET_copy_all(unsigned char buf[BUF_LEN])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:236,1
    - Dst: PACKET_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:237,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:239,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:239,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:240,1
    - Dst: PACKET_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:241,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:243,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:243,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:244,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:245,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:249,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 1
    argNames:
    - buf
    argTypes:
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 251
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 251
    functionName: test_PACKET_memdup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 0
    functionsReached:
    - memcmp
    - OPENSSL_free
    - PACKET_memdup
    - PACKET_buf_init
    - fprintf
    - PACKET_forward
    - PACKET_data
    linkageType: ''
    returnType: int
    signature: test_PACKET_memdup(unsigned char buf[BUF_LEN])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:259,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:260,1
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:263,1
    - Dst: PACKET_strndup
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:264,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:265,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:266,1
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:267,1
    - Dst: PACKET_strndup
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:268,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:269,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:270,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:271,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:272,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:276,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 278
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 278
    functionName: test_PACKET_strndup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_strndup
    - strcmp
    - strncmp
    - memset
    - strlen
    - PACKET_buf_init
    - fprintf
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: test_PACKET_strndup()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:285,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:286,1
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:289,1
    - Dst: PACKET_contains_zero_byte
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:290,1
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:291,1
    - Dst: PACKET_contains_zero_byte
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:292,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:293,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 298
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 298
    functionName: test_PACKET_contains_zero_byte
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - fprintf
    - memset
    - PACKET_contains_zero_byte
    linkageType: ''
    returnType: int
    signature: test_PACKET_contains_zero_byte()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:305,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:306,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:307,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:309,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:310,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:312,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 317
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 317
    functionName: test_PACKET_forward
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - fprintf
    - PACKET_forward
    - PACKET_get_bytes
    linkageType: ''
    returnType: int
    signature: test_PACKET_forward(unsigned char buf[BUF_LEN])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:325,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:326,1
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:327,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:328,1
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:329,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:330,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 335
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 335
    functionName: test_PACKET_buf_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - fprintf
    - PACKET_remaining
    linkageType: ''
    returnType: int
    signature: test_PACKET_buf_init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_null_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:341,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:342,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:343,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 349
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 349
    functionName: test_PACKET_null_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 0
    functionsReached:
    - fprintf
    - PACKET_forward
    - PACKET_null_init
    - PACKET_remaining
    linkageType: ''
    returnType: int
    signature: test_PACKET_null_init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:355,1
    - Dst: PACKET_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:356,1
    - Dst: PACKET_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:357,1
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:358,1
    - Dst: PACKET_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:359,1
    - Dst: PACKET_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:360,1
    - Dst: PACKET_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:361,1
    - Dst: PACKET_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:362,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:363,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 368
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 368
    functionName: test_PACKET_equal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - fprintf
    - PACKET_equal
    linkageType: ''
    returnType: int
    signature: test_PACKET_equal(unsigned char buf[BUF_LEN])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:382,1
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:383,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:384,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:385,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:386,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:388,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:389,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:390,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 395
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 395
    functionName: test_PACKET_get_length_prefixed_1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_get_length_prefixed_1
    - PACKET_get_net_2
    - PACKET_remaining
    - PACKET_buf_init
    - fprintf
    linkageType: ''
    returnType: int
    signature: test_PACKET_get_length_prefixed_1()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:408,1
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:409,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:410,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:411,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:412,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:414,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:415,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:416,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 421
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 421
    functionName: test_PACKET_get_length_prefixed_2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_get_net_2
    - PACKET_remaining
    - PACKET_buf_init
    - fprintf
    - PACKET_get_length_prefixed_2
    linkageType: ''
    returnType: int
    signature: test_PACKET_get_length_prefixed_2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:434,1
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:435,1
    - Dst: PACKET_get_length_prefixed_3
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:436,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:437,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:438,1
    - Dst: PACKET_get_length_prefixed_3
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:440,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:441,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:442,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 447
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 447
    functionName: test_PACKET_get_length_prefixed_3
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_get_length_prefixed_3
    - PACKET_get_net_2
    - PACKET_remaining
    - PACKET_buf_init
    - fprintf
    linkageType: ''
    returnType: int
    signature: test_PACKET_get_length_prefixed_3()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:461,1
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:462,1
    - Dst: PACKET_as_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:463,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:464,1
    - Dst: PACKET_as_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:465,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:466,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:467,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:468,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 473
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 473
    functionName: test_PACKET_as_length_prefixed_1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - fprintf
    - PACKET_remaining
    - PACKET_as_length_prefixed_1
    linkageType: ''
    returnType: int
    signature: test_PACKET_as_length_prefixed_1()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:486,1
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:487,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:488,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:489,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:490,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:491,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:492,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:493,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 498
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 498
    functionName: test_PACKET_as_length_prefixed_2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - fprintf
    - PACKET_as_length_prefixed_2
    - PACKET_remaining
    linkageType: ''
    returnType: int
    signature: test_PACKET_as_length_prefixed_2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:510,1
    - Dst: test_PACKET_null_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:511,1
    - Dst: test_PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:512,1
    - Dst: test_PACKET_end
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:513,1
    - Dst: test_PACKET_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:514,1
    - Dst: test_PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:515,1
    - Dst: test_PACKET_get_4
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:516,1
    - Dst: test_PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:517,1
    - Dst: test_PACKET_get_net_3
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:518,1
    - Dst: test_PACKET_get_net_4
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:519,1
    - Dst: test_PACKET_get_sub_packet
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:520,1
    - Dst: test_PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:521,1
    - Dst: test_PACKET_copy_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:522,1
    - Dst: test_PACKET_copy_all
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:523,1
    - Dst: test_PACKET_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:524,1
    - Dst: test_PACKET_strndup
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:525,1
    - Dst: test_PACKET_contains_zero_byte
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:526,1
    - Dst: test_PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:527,1
    - Dst: test_PACKET_get_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:528,1
    - Dst: test_PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:529,1
    - Dst: test_PACKET_get_length_prefixed_3
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:530,1
    - Dst: test_PACKET_as_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:531,1
    - Dst: test_PACKET_as_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:532,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/packettest.c:535,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 537
      start: 500
    functionDepth: 2
    functionLinenumber: 500
    functionLinenumberEnd: 537
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
    functionUses: 22
    functionsReached:
    - test_PACKET_get_4
    - test_PACKET_null_init
    - test_PACKET_end
    - test_PACKET_copy_bytes
    - printf
    - test_PACKET_contains_zero_byte
    - test_PACKET_get_sub_packet
    - test_PACKET_memdup
    - test_PACKET_get_length_prefixed_3
    - test_PACKET_get_net_2
    - test_PACKET_get_length_prefixed_2
    - test_PACKET_equal
    - test_PACKET_copy_all
    - test_PACKET_strndup
    - test_PACKET_get_bytes
    - test_PACKET_get_net_3
    - test_PACKET_forward
    - test_PACKET_get_1
    - test_PACKET_buf_init
    - test_PACKET_get_net_4
    - test_PACKET_get_length_prefixed_1
    - test_PACKET_as_length_prefixed_2
    - test_PACKET_remaining
    - test_PACKET_as_length_prefixed_1
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:65,1
    - Dst: CTLOG_STORE_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:69,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:73,1
    - Dst: CTLOG_STORE_load_default_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:77,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:79,1
    - Dst: CTLOG_STORE_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:85,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - test_case_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 89
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 89
    functionName: set_up
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c
    functionUses: 12
    functionsReached:
    - CTLOG_STORE_load_default_file
    - exit
    - memset
    - CTLOG_STORE_free
    - fprintf
    - CTLOG_STORE_new
    linkageType: ''
    returnType: CT_TEST_FIXTURE
    signature: set_up(const char *const test_case_name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CTLOG_STORE_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:93,1
    - Dst: SCT_LIST_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:94,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CT_TEST_FIXTURE
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 5
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: tear_down
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c
    functionUses: 0
    functionsReached:
    - ERR_print_errors_fp
    - SCT_LIST_free
    - CTLOG_STORE_free
    linkageType: ''
    returnType: void
    signature: tear_down(CT_TEST_FIXTURE fixture)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:107,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:107,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:107,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:108,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:110,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:111,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - dir
    - file
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 116
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 116
    functionName: mk_file_path
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c
    functionUses: 0
    functionsReached:
    - strlen
    - OPENSSL_strlcpy
    - OPENSSL_strlcat
    - OPENSSL_zalloc
    linkageType: ''
    returnType: char
    signature: '*mk_file_path(const char *dir, const char *file)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:124,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:125,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:128,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dir
    - file
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 133
      start: 118
    functionDepth: 4
    functionLinenumber: 118
    functionLinenumberEnd: 133
    functionName: load_pem_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - OPENSSL_free
    - PEM_read_bio_X509
    - BIO_new_file
    linkageType: ''
    returnType: X509
    signature: '*load_pem_cert(const char *dir, const char *file)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:142,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:143,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:146,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - dir
    - file
    - buffer
    - buffer_length
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 152
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 152
    functionName: read_text_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - OPENSSL_free
    - BIO_read
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: "read_text_file(const char *dir, const char *file,\n                          char
      *buffer, int buffer_length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:197,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:197,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:199,1
    - Dst: X509V3_EXT_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:203,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:204,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:210,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:211,1
    - Dst: BIO_get_mem_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:216,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:217,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:220,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:226,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - extension
    - expected_output
    argTypes:
    - X509_EXTENSION*
    - char*
    constantsTouched: []
    func_position:
      end: 228
      start: 190
    functionDepth: 4
    functionLinenumber: 190
    functionLinenumberEnd: 228
    functionName: compare_extension_printout
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    - X509V3_EXT_print
    - BIO_s_mem
    - BIO_free
    - BIO_get_mem_data
    - fprintf
    - BIO_new
    - BIO_write
    linkageType: ''
    returnType: int
    signature: "compare_extension_printout(X509_EXTENSION *extension,\n                                      const
      char *expected_output)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SCT_LIST_validate
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:237,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:238,1
    - Dst: sk_SCT_num
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:242,1
    - Dst: sk_SCT_value
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:243,1
    - Dst: SCT_get_validation_status
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:244,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:261,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - fixture
    - scts
    - policy_ctx
    argTypes:
    - CT_TEST_FIXTURE
    - STACK_OF*
    - CT_POLICY_EVAL_CTX*
    constantsTouched: []
    func_position:
      end: 273
      start: 230
    functionDepth: 9
    functionLinenumber: 230
    functionLinenumberEnd: 273
    functionName: assert_validity
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c
    functionUses: 0
    functionsReached:
    - sk_SCT_num
    - SCT_get_validation_status
    - SCT_LIST_validate
    - fprintf
    - sk_SCT_value
    linkageType: ''
    returnType: int
    signature: "assert_validity(CT_TEST_FIXTURE fixture,\n                           STACK_OF(SCT)
      *scts,\n                           CT_POLICY_EVAL_CTX *policy_ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:279,1
    - Dst: CT_POLICY_EVAL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:285,1
    - Dst: read_text_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:288,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:293,1
    - Dst: CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:301,1
    - Dst: CT_POLICY_EVAL_CTX_set_time
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:304,1
    - Dst: load_pem_cert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:309,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:312,1
    - Dst: CT_POLICY_EVAL_CTX_set1_cert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:317,1
    - Dst: load_pem_cert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:320,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:323,1
    - Dst: CT_POLICY_EVAL_CTX_set1_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:328,1
    - Dst: X509_get_ext_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:332,1
    - Dst: X509_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:333,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:336,1
    - Dst: compare_extension_printout
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:342,1
    - Dst: X509V3_EXT_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:350,1
    - Dst: sk_SCT_num
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:351,1
    - Dst: sk_SCT_value
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:352,1
    - Dst: SCT_set_source
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:354,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:355,1
    - Dst: assert_validity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:361,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:365,1
    - Dst: o2i_SCT_LIST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:374,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:375,1
    - Dst: assert_validity
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:380,1
    - Dst: compare_sct_list_printout
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:385,1
    - Dst: i2o_SCT_LIST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:389,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:391,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:392,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:400,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:401,1
    - Dst: SCT_LIST_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:402,1
    - Dst: SCT_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:403,1
    - Dst: CT_POLICY_EVAL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:404,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:405,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 94
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CT_TEST_FIXTURE
    constantsTouched: []
    func_position:
      end: 407
      start: 275
    functionDepth: 10
    functionLinenumber: 275
    functionLinenumberEnd: 407
    functionName: execute_cert_test
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c
    functionUses: 0
    functionsReached:
    - i2o_SCT_LIST
    - CT_POLICY_EVAL_CTX_set1_cert
    - CT_POLICY_EVAL_CTX_set1_issuer
    - fprintf
    - X509V3_EXT_d2i
    - o2i_SCT_LIST
    - CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE
    - SCT_free
    - CT_POLICY_EVAL_CTX_free
    - read_text_file
    - X509_free
    - load_pem_cert
    - compare_extension_printout
    - sk_SCT_num
    - CT_POLICY_EVAL_CTX_new
    - X509_get_ext
    - OPENSSL_free
    - sk_SCT_value
    - memcmp
    - X509_get_ext_by_NID
    - STACK_OF
    - SCT_set_source
    - SCT_LIST_free
    - CT_POLICY_EVAL_CTX_set_time
    - compare_sct_list_printout
    - assert_validity
    linkageType: ''
    returnType: int
    signature: execute_cert_test(CT_TEST_FIXTURE fixture)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:414,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 420
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 420
    functionName: test_no_scts_in_certificate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c
    functionUses: 0
    functionsReached:
    - SETUP_CT_TEST_FIXTURE
    - EXECUTE_CT_TEST
    linkageType: ''
    returnType: int
    signature: test_no_scts_in_certificate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:424,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 432
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 432
    functionName: test_one_sct_in_certificate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c
    functionUses: 0
    functionsReached:
    - SETUP_CT_TEST_FIXTURE
    - EXECUTE_CT_TEST
    linkageType: ''
    returnType: int
    signature: test_one_sct_in_certificate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:436,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 444
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 444
    functionName: test_multiple_scts_in_certificate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c
    functionUses: 0
    functionsReached:
    - SETUP_CT_TEST_FIXTURE
    - EXECUTE_CT_TEST
    linkageType: ''
    returnType: int
    signature: test_multiple_scts_in_certificate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:448,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 455
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 455
    functionName: test_verify_one_sct
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c
    functionUses: 0
    functionsReached:
    - SETUP_CT_TEST_FIXTURE
    - EXECUTE_CT_TEST
    linkageType: ''
    returnType: int
    signature: test_verify_one_sct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:459,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 466
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 466
    functionName: test_verify_multiple_scts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c
    functionUses: 0
    functionsReached:
    - SETUP_CT_TEST_FIXTURE
    - EXECUTE_CT_TEST
    linkageType: ''
    returnType: int
    signature: test_verify_multiple_scts()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:470,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 479
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 479
    functionName: test_verify_fails_for_future_sct
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c
    functionUses: 0
    functionsReached:
    - SETUP_CT_TEST_FIXTURE
    - EXECUTE_CT_TEST
    linkageType: ''
    returnType: int
    signature: test_verify_fails_for_future_sct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:501,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 507
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 507
    functionName: test_decode_tls_sct
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c
    functionUses: 0
    functionsReached:
    - SETUP_CT_TEST_FIXTURE
    - EXECUTE_CT_TEST
    linkageType: ''
    returnType: int
    signature: test_decode_tls_sct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:518,1
    - Dst: sk_SCT_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:520,1
    - Dst: SCT_new_from_base64
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:521,1
    - Dst: tear_down
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:526,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:527,1
    - Dst: sk_SCT_push
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:531,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 535
      start: 509
    functionDepth: 4
    functionLinenumber: 509
    functionLinenumberEnd: 535
    functionName: test_encode_tls_sct
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c
    functionUses: 0
    functionsReached:
    - SETUP_CT_TEST_FIXTURE
    - sk_SCT_new_null
    - EXECUTE_CT_TEST
    - SCT_new_from_base64
    - sk_SCT_push
    - fprintf
    - tear_down
    linkageType: ''
    returnType: int
    signature: test_encode_tls_sct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CT_POLICY_EVAL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:544,1
    - Dst: CT_POLICY_EVAL_CTX_get_time
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:545,1
    - Dst: fabs
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:549,1
    - Dst: difftime
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:549,1
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:549,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:550,1
    - Dst: CT_POLICY_EVAL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 559
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 559
    functionName: test_default_ct_policy_eval_ctx_time_is_now
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c
    functionUses: 0
    functionsReached:
    - CT_POLICY_EVAL_CTX_new
    - CT_POLICY_EVAL_CTX_free
    - difftime
    - fprintf
    - time
    - fabs
    - CT_POLICY_EVAL_CTX_get_time
    linkageType: ''
    returnType: int
    signature: test_default_ct_policy_eval_ctx_time_is_now()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:566,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:567,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:568,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:569,1
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:571,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:572,1
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:573,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:574,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:576,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:577,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:578,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:579,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:580,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:581,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:582,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:583,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:584,1
    - Dst: run_tests
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:586,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:587,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:589,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:590,1
    - Dst: CRYPTO_mem_leaks_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c:593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 598
      start: 561
    functionDepth: 5
    functionLinenumber: 561
    functionLinenumberEnd: 598
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c
    functionUses: 22
    functionsReached:
    - strcmp
    - ERR_print_errors_fp
    - run_tests
    - CRYPTO_mem_ctrl
    - getenv
    - CRYPTO_mem_leaks_fp
    - OPENSSL_strdup
    - OPENSSL_free
    - CRYPTO_set_mem_debug
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 605
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 605
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: main(int argc, char* argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RC4_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:76,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:77,1
    - Dst: RC4
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:78,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:79,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:80,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:81,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:83,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:84,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:85,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:88,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:89,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:92,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:94,1
    - Dst: RC4_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:96,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:97,1
    - Dst: RC4
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:98,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:99,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:100,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:101,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:103,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:104,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:105,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:108,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:109,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:112,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:113,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:116,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:117,1
    - Dst: RC4_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:119,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:120,1
    - Dst: RC4
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:121,1
    - Dst: RC4
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:122,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:123,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:124,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:125,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:127,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:128,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:129,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:132,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:135,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:136,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:139,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:140,1
    - Dst: RC4_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:150,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:151,1
    - Dst: SHA1_Init
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:152,1
    - Dst: RC4
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:154,1
    - Dst: SHA1_Update
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:155,1
    - Dst: SHA1_Final
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:157,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:159,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:160,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:161,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:163,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:164,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:165,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:167,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:168,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:171,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c:173,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 90
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 174
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 174
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c
    functionUses: 22
    functionsReached:
    - memcmp
    - RC4_set_key
    - SHA1_Init
    - memset
    - printf
    - SHA1_Update
    - fflush
    - EXIT
    - SHA1_Final
    - RC4
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:19,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:23,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:29,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:31,1
    - Dst: ERR_set_mark
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:35,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:37,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:38,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:39,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:40,1
    - Dst: ERR_pop_to_mark
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:47,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:51,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 54
      start: 17
    functionDepth: 4
    functionLinenumber: 17
    functionLinenumberEnd: 54
    functionName: load_certs_from_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_X509
    - STACK_OF
    - sk_X509_pop_free
    - BIO_free
    - ERR_pop_to_mark
    - BIO_new_file
    - sk_X509_push
    - ERR_set_mark
    - sk_X509_new_null
    linkageType: ''
    returnType: STACK_OF
    signature: '*load_certs_from_file(const char *filename)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:92,1
    - Dst: X509_STORE_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:98,1
    - Dst: X509_STORE_add_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:102,1
    - Dst: X509_LOOKUP_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:102,1
    - Dst: X509_LOOKUP_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:105,1
    - Dst: load_certs_from_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:108,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:110,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:113,1
    - Dst: X509_STORE_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:116,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:120,1
    - Dst: X509_verify_cert
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:123,1
    - Dst: X509_STORE_CTX_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:125,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:130,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:131,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:132,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:133,1
    - Dst: X509_STORE_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:134,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:136,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 3
    argNames:
    - roots_f
    - untrusted_f
    - bad_f
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 138
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 138
    functionName: test_alt_chains_cert_forgery
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c
    functionUses: 0
    functionsReached:
    - X509_STORE_free
    - X509_LOOKUP_load_file
    - X509_verify_cert
    - PEM_read_bio_X509
    - X509_STORE_CTX_init
    - STACK_OF
    - sk_X509_pop_free
    - X509_STORE_CTX_free
    - X509_STORE_new
    - ERR_print_errors_fp
    - load_certs_from_file
    - BIO_free
    - X509_STORE_CTX_get_error
    - BIO_new_file
    - X509_free
    - X509_STORE_CTX_new
    - X509_STORE_add_lookup
    - X509_LOOKUP_file
    linkageType: ''
    returnType: int
    signature: "test_alt_chains_cert_forgery(const char *roots_f,\n                                        const
      char *untrusted_f,\n                                        const char *bad_f)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:142,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:143,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:146,1
    - Dst: test_alt_chains_cert_forgery
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:150,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:151,1
    - Dst: CRYPTO_mem_leaks_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:156,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 162
      start: 140
    functionDepth: 6
    functionLinenumber: 140
    functionLinenumberEnd: 162
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c
    functionUses: 22
    functionsReached:
    - CRYPTO_mem_ctrl
    - test_alt_chains_cert_forgery
    - CRYPTO_mem_leaks_fp
    - printf
    - fprintf
    - CRYPTO_set_mem_debug
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/md2test.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/md2test.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/test/md2test.c:63,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/md2test.c:63,1
    - Dst: EVP_md2
      Src: /src/openweave-core/third_party/openssl/openssl/test/md2test.c:63,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/md2test.c:65,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/md2test.c:66,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/md2test.c:68,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/md2test.c:69,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/md2test.c:70,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/md2test.c:71,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/md2test.c:74,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/md2test.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 81
      start: 52
    functionDepth: 5
    functionLinenumber: 52
    functionLinenumberEnd: 81
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/md2test.c
    functionUses: 22
    functionsReached:
    - EVP_Digest
    - EVP_md2
    - strcmp
    - pt
    - strlen
    - printf
    - EXIT
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/md2test.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - md
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: pt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/md2test.c
    functionUses: 231
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: char
    signature: '*pt(unsigned char *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:53,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:53,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:56,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:58,1
    - Dst: EVP_mdc2
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:58,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:59,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:59,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:60,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:63,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:65,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:66,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:68,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:69,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:72,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:75,1
    - Dst: EVP_mdc2
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:75,1
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:78,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:79,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:79,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:80,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:83,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:85,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:86,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:88,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:89,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:91,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:96,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c:97,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 98
      start: 44
    functionDepth: 4
    functionLinenumber: 44
    functionLinenumberEnd: 98
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c
    functionUses: 22
    functionsReached:
    - EVP_DigestFinal_ex
    - memcmp
    - EVP_DigestUpdate
    - strlen
    - EVP_mdc2
    - EVP_MD_CTX_new
    - printf
    - EVP_MD_CTX_md_data
    - EVP_MD_CTX_free
    - EXIT
    - ebcdic2ascii
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IDEA_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:69,1
    - Dst: IDEA_ecb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:70,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:71,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:72,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:73,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:75,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:76,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:77,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:79,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:81,1
    - Dst: IDEA_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:84,1
    - Dst: IDEA_ecb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:85,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:86,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:87,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:88,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:90,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:91,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:92,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:94,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:95,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:100,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:102,1
    - Dst: IDEA_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:103,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:103,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:105,1
    - Dst: IDEA_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:106,1
    - Dst: IDEA_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:107,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:107,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:109,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:109,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:110,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:113,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:115,1
    - Dst: cfb64_test
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:116,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:117,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:120,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:122,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 123
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 123
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c
    functionUses: 22
    functionsReached:
    - IDEA_set_decrypt_key
    - memcmp
    - IDEA_set_encrypt_key
    - IDEA_cbc_encrypt
    - IDEA_ecb_encrypt
    - strlen
    - printf
    - memcpy
    - EXIT
    - cfb64_test
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IDEA_set_encrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:130,1
    - Dst: IDEA_set_decrypt_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:131,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:132,1
    - Dst: IDEA_cfb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:134,1
    - Dst: IDEA_cfb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:136,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:139,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:141,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:143,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:143,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:145,1
    - Dst: IDEA_cfb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:147,1
    - Dst: IDEA_cfb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:149,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:152,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:154,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:156,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - cfb_cipher
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 159
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 159
    functionName: cfb64_test
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c
    functionUses: 2
    functionsReached:
    - IDEA_set_decrypt_key
    - memcmp
    - IDEA_set_encrypt_key
    - pt
    - memcpy
    - printf
    - IDEA_cfb64_encrypt
    linkageType: ''
    returnType: int
    signature: cfb64_test(const unsigned char *cfb_cipher)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 177
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 177
    functionName: pt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c
    functionUses: 233
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*pt(unsigned char *p)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - in
    - inlen
    - out
    - outlen
    argTypes:
    - void*
    - size_t
    - void*
    - size_t*
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: KDF1_SHA1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c
    functionUses: 0
    functionsReached:
    - SHA1
    linkageType: ''
    returnType: void
    signature: "*KDF1_SHA1(const void *in, size_t inlen, void *out,\n                       size_t
      *outlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:72,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:73,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:77,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:79,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:81,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:83,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:85,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:88,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:89,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:89,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:91,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:93,1
    - Dst: EC_KEY_generate_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:96,1
    - Dst: EC_METHOD_get_field_type
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:99,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:99,1
    - Dst: EC_POINT_get_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:101,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:102,1
    - Dst: if
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:107,1
    - Dst: EC_POINT_get_affine_coordinates_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:107,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:108,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:114,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:115,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:116,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:117,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:118,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:119,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:120,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:122,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:123,1
    - Dst: EC_KEY_generate_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:126,1
    - Dst: EC_METHOD_get_field_type
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:129,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:129,1
    - Dst: EC_POINT_get_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:131,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:132,1
    - Dst: if
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:137,1
    - Dst: EC_POINT_get_affine_coordinates_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:137,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:138,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:145,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:146,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:147,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:148,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:149,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:150,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:151,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:153,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:154,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:158,1
    - Dst: ECDH_compute_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:160,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:160,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:163,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:165,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:166,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:168,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:170,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:171,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:175,1
    - Dst: ECDH_compute_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:177,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:177,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:180,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:182,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:183,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:185,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:187,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:188,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:191,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:193,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:194,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:195,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:196,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:196,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:197,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:198,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:199,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:200,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:201,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:202,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:203,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:204,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:204,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:205,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:206,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:207,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:208,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:209,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:210,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:211,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:213,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:214,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:216,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:217,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:219,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:220,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:222,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:224,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:228,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:233,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:235,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:236,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:237,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:238,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:239,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:240,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:241,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:242,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 130
    argCount: 3
    argNames:
    - nid
    - ctx
    - out
    argTypes:
    - int
    - BN_CTX*
    - BIO*
    constantsTouched: []
    func_position:
      end: 244
      start: 62
    functionDepth: 5
    functionLinenumber: 62
    functionLinenumberEnd: 244
    functionName: test_ecdh_curve
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_method_of
    - EC_KEY_free
    - EC_KEY_get0_private_key
    - ERR_print_errors_fp
    - OBJ_nid2sn
    - if
    - BIO_printf
    - fprintf
    - BN_print
    - BN_free
    - EC_METHOD_get_field_type
    - EC_POINT_get_affine_coordinates_GF2m
    - BN_new
    - EC_KEY_generate_key
    - EC_POINT_get_affine_coordinates_GFp
    - EC_KEY_new_by_curve_name
    - EC_KEY_get0_public_key
    - OPENSSL_free
    - EC_KEY_get0_group
    - sprintf
    - ECDH_compute_key
    - memcmp
    - BIO_puts
    - BIO_flush
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: test_ecdh_curve(int nid, BN_CTX *ctx, BIO *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:336,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:339,1
    - Dst: EC_KEY_set_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:343,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:345,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:346,1
    - Dst: EC_POINT_mul
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:349,1
    - Dst: EC_KEY_set_public_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:351,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:355,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:356,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:359,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 2
    argNames:
    - nid
    - str
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 361
      start: 329
    functionDepth: 6
    functionLinenumber: 329
    functionLinenumberEnd: 361
    functionName: mk_eckey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c
    functionUses: 0
    functionsReached:
    - EC_POINT_free
    - BN_clear_free
    - EC_KEY_set_private_key
    - EC_KEY_free
    - BN_hex2bn
    - EC_KEY_new_by_curve_name
    - EC_POINT_new
    - EC_KEY_set_public_key
    - EC_KEY_get0_group
    - EC_POINT_mul
    linkageType: ''
    returnType: EC_KEY
    signature: '*mk_eckey(int nid, const char *str)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:375,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:376,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:376,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:377,1
    - Dst: mk_eckey
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:379,1
    - Dst: mk_eckey
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:380,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:383,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:383,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:384,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:387,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:389,1
    - Dst: BN_bn2binpad
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:391,1
    - Dst: ECDH_compute_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:393,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:394,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:396,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:398,1
    - Dst: ECDH_compute_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:399,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:400,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:402,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:406,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:407,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:408,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:409,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:410,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:412,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:414,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:415,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 2
    argNames:
    - out
    - kat
    argTypes:
    - BIO*
    - ecdh_kat_t*
    constantsTouched: []
    func_position:
      end: 418
      start: 368
    functionDepth: 7
    functionLinenumber: 368
    functionLinenumberEnd: 418
    functionName: ecdh_kat
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c
    functionUses: 0
    functionsReached:
    - ECDH_compute_key
    - memcmp
    - BN_free
    - EC_GROUP_get_degree
    - BIO_puts
    - EC_KEY_free
    - ERR_print_errors_fp
    - BN_hex2bn
    - memset
    - EC_KEY_get0_public_key
    - OBJ_nid2sn
    - mk_eckey
    - OPENSSL_zalloc
    - fprintf
    - OPENSSL_free
    - EC_KEY_get0_group
    - BN_bn2binpad
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: ecdh_kat(BIO *out, const ecdh_kat_t *kat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:452,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:453,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:453,1
    - Dst: mk_eckey
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:456,1
    - Dst: EC_KEY_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:459,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:461,1
    - Dst: EC_POINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:463,1
    - Dst: EC_METHOD_get_field_type
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:466,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:466,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:470,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:472,1
    - Dst: EC_POINT_set_affine_coordinates_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:478,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:483,1
    - Dst: EC_POINT_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:487,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:487,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:491,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:493,1
    - Dst: EC_POINT_set_affine_coordinates_GF2m
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:499,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:504,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:509,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:511,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:511,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:512,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:515,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:517,1
    - Dst: BN_bn2binpad
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:519,1
    - Dst: ECDH_compute_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:521,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:524,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:528,1
    - Dst: EC_POINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:529,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:530,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:531,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:532,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:533,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:534,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:536,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:539,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:540,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 92
    argCount: 2
    argNames:
    - out
    - kat
    argTypes:
    - BIO*
    - ecdh_cavs_kat_t*
    constantsTouched: []
    func_position:
      end: 543
      start: 443
    functionDepth: 7
    functionLinenumber: 443
    functionLinenumberEnd: 543
    functionName: ecdh_cavs_kat
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c
    functionUses: 0
    functionsReached:
    - EC_POINT_set_affine_coordinates_GFp
    - EC_GROUP_method_of
    - EC_KEY_free
    - ERR_print_errors_fp
    - OBJ_nid2sn
    - mk_eckey
    - OPENSSL_zalloc
    - fprintf
    - EC_POINT_free
    - BN_free
    - EC_METHOD_get_field_type
    - EC_POINT_cmp
    - EC_POINT_set_affine_coordinates_GF2m
    - BN_hex2bn
    - EC_KEY_get0_public_key
    - OPENSSL_free
    - EC_KEY_get0_group
    - ECDH_compute_key
    - memcmp
    - EC_GROUP_get_degree
    - BIO_puts
    - EC_POINT_new
    - BN_bn2binpad
    - BN_num_bytes
    - EC_KEY_set_flags
    linkageType: ''
    returnType: int
    signature: ecdh_cavs_kat(BIO *out, const ecdh_cavs_kat_t *kat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:553,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:554,1
    - Dst: RAND_seed
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:556,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:558,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:558,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:560,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:561,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:563,1
    - Dst: EC_get_builtin_curves
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:567,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:568,1
    - Dst: EC_get_builtin_curves
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:571,1
    - Dst: test_ecdh_curve
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:583,1
    - Dst: ecdh_kat
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:588,1
    - Dst: ecdh_cavs_kat
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:594,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:601,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:602,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:603,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:604,1
    - Dst: CRYPTO_mem_leaks_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:607,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c:610,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 611
      start: 545
    functionDepth: 8
    functionLinenumber: 545
    functionLinenumberEnd: 611
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c
    functionUses: 22
    functionsReached:
    - EXIT
    - ecdh_kat
    - OPENSSL_malloc
    - ecdh_cavs_kat
    - ERR_print_errors_fp
    - CRYPTO_mem_ctrl
    - RAND_seed
    - BIO_s_file
    - test_ecdh_curve
    - OPENSSL_free
    - BN_CTX_free
    - BIO_free
    - CRYPTO_mem_leaks_fp
    - BN_CTX_new
    - BIO_set_fp
    - BIO_new
    - CRYPTO_set_mem_debug
    - EC_get_builtin_curves
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:43,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:48,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:51,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:52,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:55,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:59,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:61,1
    - Dst: SSL_CTX_set_read_ahead
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:70,1
    - Dst: i2d_X509
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:80,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:81,1
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:84,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:85,1
    - Dst: SSL_CTX_add_extra_chain_cert
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:88,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:89,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:90,1
    - Dst: create_ssl_objects
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:95,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:96,1
    - Dst: create_ssl_connection
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:100,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:101,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:109,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:110,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:116,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:117,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:118,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:119,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:120,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 3
    argNames:
    - smeth
    - cmeth
    - read_ahead
    argTypes:
    - SSL_METHOD*
    - SSL_METHOD*
    - int
    constantsTouched: []
    func_position:
      end: 123
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 123
    functionName: execute_test_large_message
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    - PEM_read_bio_X509
    - i2d_X509
    - OPENSSL_assert
    - create_ssl_ctx_pair
    - SSL_clear
    - SSL_CTX_add_extra_chain_cert
    - BIO_free
    - printf
    - create_ssl_objects
    - SSL_free
    - BIO_new_file
    - X509_free
    - SSL_CTX_set_read_ahead
    - SSL_CTX_free
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: "execute_test_large_message(const SSL_METHOD *smeth,\n                                      const
      SSL_METHOD *cmeth, int read_ahead)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_large_message
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:127,1
    - Dst: TLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:127,1
    - Dst: TLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 5
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: test_large_message_tls
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - execute_test_large_message
    - TLS_server_method
    - TLS_client_method
    linkageType: ''
    returnType: int
    signature: test_large_message_tls(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_large_message
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:133,1
    - Dst: TLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:133,1
    - Dst: TLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 5
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: test_large_message_tls_read_ahead
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - execute_test_large_message
    - TLS_server_method
    - TLS_client_method
    linkageType: ''
    returnType: int
    signature: test_large_message_tls_read_ahead(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_large_message
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:144,1
    - Dst: DTLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:144,1
    - Dst: DTLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 5
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: test_large_message_dtls
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - DTLS_client_method
    - execute_test_large_message
    - DTLS_server_method
    linkageType: ''
    returnType: int
    signature: test_large_message_dtls(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:154,1
    - Dst: SSL_get_tlsext_status_ids
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:159,1
    - Dst: sk_OCSP_RESPID_num
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:160,1
    - Dst: sk_OCSP_RESPID_value
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:163,1
    - Dst: OCSP_RESPID_match
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:164,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:171,1
    - Dst: SSL_set_tlsext_status_ocsp_resp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:175,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    constantsTouched: []
    func_position:
      end: 180
      start: 150
    functionDepth: 7
    functionLinenumber: 150
    functionLinenumberEnd: 180
    functionName: ocsp_server_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_memdup
    - STACK_OF
    - sk_OCSP_RESPID_value
    - sk_OCSP_RESPID_num
    - SSL_get_tlsext_status_ids
    - SSL_set_tlsext_status_ocsp_resp
    - OCSP_RESPID_match
    linkageType: ''
    returnType: int
    signature: ocsp_server_cb(SSL *s, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_tlsext_status_ocsp_resp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:191,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    constantsTouched: []
    func_position:
      end: 199
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 199
    functionName: ocsp_client_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_get_tlsext_status_ocsp_resp
    - memcmp
    linkageType: ''
    returnType: int
    signature: ocsp_client_cb(SSL *s, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:206,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:210,1
    - Dst: TLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:210,1
    - Dst: TLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:210,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:212,1
    - Dst: SSL_CTX_get_tlsext_status_type
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:216,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:217,1
    - Dst: SSL_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:224,1
    - Dst: SSL_get_tlsext_status_type
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:225,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:226,1
    - Dst: SSL_set_tlsext_status_type
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:230,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:231,1
    - Dst: SSL_get_tlsext_status_type
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:235,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:236,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:240,1
    - Dst: SSL_CTX_set_tlsext_status_type
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:243,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:244,1
    - Dst: SSL_CTX_get_tlsext_status_type
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:248,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:249,1
    - Dst: SSL_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:253,1
    - Dst: SSL_get_tlsext_status_type
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:255,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:256,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:260,1
    - Dst: SSL_CTX_set_tlsext_status_cb
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:268,1
    - Dst: SSL_CTX_set_tlsext_status_arg
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:269,1
    - Dst: SSL_CTX_set_tlsext_status_cb
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:270,1
    - Dst: SSL_CTX_set_tlsext_status_arg
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:271,1
    - Dst: create_ssl_objects
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:273,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:274,1
    - Dst: create_ssl_connection
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:278,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:279,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:284,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:288,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:289,1
    - Dst: create_ssl_objects
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:298,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:299,1
    - Dst: create_ssl_connection
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:304,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:305,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:310,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:314,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:315,1
    - Dst: create_ssl_objects
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:327,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:328,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:336,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:338,1
    - Dst: OCSP_RESPID_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:341,1
    - Dst: sk_OCSP_RESPID_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:342,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:343,1
    - Dst: OCSP_RESPID_set_by_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:345,1
    - Dst: sk_OCSP_RESPID_push
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:346,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:347,1
    - Dst: SSL_set_tlsext_status_ids
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:351,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:355,1
    - Dst: create_ssl_connection
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:358,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:359,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:364,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:371,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:372,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:373,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:374,1
    - Dst: sk_OCSP_RESPID_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:375,1
    - Dst: OCSP_RESPID_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:376,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:377,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:378,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 142
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 382
      start: 201
    functionDepth: 7
    functionLinenumber: 201
    functionLinenumberEnd: 382
    functionName: test_tlsext_status_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - SSL_new
    - printf
    - BIO_new_file
    - SSL_set_tlsext_status_ids
    - create_ssl_connection
    - SSL_CTX_set_tlsext_status_type
    - SSL_set_tlsext_status_type
    - BIO_free
    - TLS_client_method
    - SSL_free
    - X509_free
    - SSL_CTX_set_tlsext_status_arg
    - OCSP_RESPID_set_by_key
    - SSL_CTX_get_tlsext_status_type
    - OCSP_RESPID_new
    - create_ssl_ctx_pair
    - sk_OCSP_RESPID_new_null
    - SSL_get_tlsext_status_type
    - SSL_CTX_free
    - OCSP_RESPID_free
    - sk_OCSP_RESPID_push
    - PEM_read_bio_X509
    - STACK_OF
    - SSL_CTX_set_tlsext_status_cb
    - create_ssl_objects
    - sk_OCSP_RESPID_pop_free
    linkageType: ''
    returnType: int
    signature: test_tlsext_status_type(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - test_case_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 405
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 405
    functionName: ssl_session_set_up
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SSL_SESSION_TEST_FIXTURE
    signature: ssl_session_set_up(const char *const test_case_name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - SSL_SESSION_TEST_FIXTURE
    constantsTouched: []
    func_position:
      end: 409
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 409
    functionName: ssl_session_tear_down
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ssl_session_tear_down(SSL_SESSION_TEST_FIXTURE fixture)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ssl
    - sess
    argTypes:
    - SSL*
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 416
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 416
    functionName: new_session_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: new_session_cb(SSL *ssl, SSL_SESSION *sess)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - sess
    argTypes:
    - SSL_CTX*
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 421
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 421
    functionName: remove_session_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: remove_session_cb(SSL_CTX *ctx, SSL_SESSION *sess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_ssl_ctx_pair
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:434,1
    - Dst: TLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:434,1
    - Dst: TLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:434,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:436,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:442,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:447,1
    - Dst: SSL_CTX_sess_set_remove_cb
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:448,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:452,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:454,1
    - Dst: create_ssl_objects
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:459,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:461,1
    - Dst: create_ssl_connection
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:465,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:466,1
    - Dst: SSL_get1_session
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:469,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:471,1
    - Dst: SSL_CTX_add_session
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:475,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:477,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:482,1
    - Dst: create_ssl_objects
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:486,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:487,1
    - Dst: create_ssl_connection
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:491,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:492,1
    - Dst: SSL_get1_session
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:496,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:498,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:503,1
    - Dst: SSL_set_session
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:511,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:512,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:517,1
    - Dst: SSL_get_session
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:522,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:523,1
    - Dst: SSL_CTX_add_session
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:528,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:532,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:536,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:537,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:549,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:550,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:555,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:561,1
    - Dst: create_ssl_objects
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:563,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:564,1
    - Dst: SSL_set_session
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:568,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:569,1
    - Dst: create_ssl_connection
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:574,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:575,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:582,1
    - Dst: SSL_CTX_add_session
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:586,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:590,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:598,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:599,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:600,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:601,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:603,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:604,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:606,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:607,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:612,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:614,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:615,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:616,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 145
    argCount: 1
    argNames:
    - fix
    argTypes:
    - SSL_SESSION_TEST_FIXTURE
    constantsTouched: []
    func_position:
      end: 619
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 619
    functionName: execute_test_session
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - printf
    - create_ssl_connection
    - TLS_client_method
    - SSL_free
    - SSL_CTX_sess_set_remove_cb
    - SSL_set_session
    - SSL_get_session
    - SSL_CTX_set_session_cache_mode
    - create_ssl_ctx_pair
    - SSL_CTX_free
    - SSL_CTX_set_min_proto_version
    - SSL_CTX_remove_session
    - SSL_CTX_add_session
    - SSL_SESSION_free
    - SSL_CTX_set_max_proto_version
    - SSL_CTX_sess_set_new_cb
    - create_ssl_objects
    - SSL_get1_session
    linkageType: ''
    returnType: int
    signature: execute_test_session(SSL_SESSION_TEST_FIXTURE fix)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:623,1
    - Dst: EXECUTE_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 628
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 628
    functionName: test_session_with_only_int_cache
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: test_session_with_only_int_cache(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:632,1
    - Dst: EXECUTE_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 637
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 637
    functionName: test_session_with_only_ext_cache
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: test_session_with_only_ext_cache(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:641,1
    - Dst: EXECUTE_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 644
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 644
    functionName: test_session_with_both_cache
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: test_session_with_both_cache(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - res
    - bio1
    - bio2
    - type
    argTypes:
    - BIO**
    - BIO*
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 665
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 665
    functionName: setupbio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: setupbio(BIO **res, BIO *bio1, BIO *bio2, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:669,1
    - Dst: TLS_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:669,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:678,1
    - Dst: SSL_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:682,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:684,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:695,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:699,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:699,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:701,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:708,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:708,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:710,1
    - Dst: setupbio
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:715,1
    - Dst: setupbio
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:716,1
    - Dst: BIO_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:723,1
    - Dst: BIO_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:725,1
    - Dst: SSL_set_bio
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:727,1
    - Dst: setupbio
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:729,1
    - Dst: setupbio
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:730,1
    - Dst: BIO_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:738,1
    - Dst: BIO_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:740,1
    - Dst: SSL_set_bio
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:742,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:747,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:748,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:749,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:756,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 58
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 759
      start: 667
    functionDepth: 4
    functionLinenumber: 667
    functionLinenumberEnd: 759
    functionName: test_ssl_set_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - BIO_up_ref
    - OPENSSL_assert
    - SSL_CTX_free
    - BIO_s_mem
    - SSL_new
    - TLS_method
    - BIO_free
    - printf
    - SSL_set_bio
    - SSL_free
    - BIO_new
    - setupbio
    - SSL_CTX_new
    linkageType: ''
    returnType: int
    signature: test_ssl_set_bio(int idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - test_case_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 776
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 776
    functionName: ssl_bio_set_up
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SSL_BIO_TEST_FIXTURE
    signature: ssl_bio_set_up(const char *const test_case_name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - SSL_BIO_TEST_FIXTURE
    constantsTouched: []
    func_position:
      end: 780
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 780
    functionName: ssl_bio_tear_down
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ssl_bio_tear_down(SSL_BIO_TEST_FIXTURE fixture)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:785,1
    - Dst: TLS_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:785,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:790,1
    - Dst: SSL_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:794,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:796,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:800,1
    - Dst: BIO_f_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:800,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:801,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:801,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:804,1
    - Dst: BIO_set_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:808,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:814,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:818,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:818,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:820,1
    - Dst: SSL_set0_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:824,1
    - Dst: SSL_set0_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:826,1
    - Dst: BIO_pop
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:831,1
    - Dst: BIO_pop
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:833,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:837,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:838,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:839,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:840,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 1
    argNames:
    - fix
    argTypes:
    - SSL_BIO_TEST_FIXTURE
    constantsTouched: []
    func_position:
      end: 843
      start: 782
    functionDepth: 4
    functionLinenumber: 782
    functionLinenumberEnd: 843
    functionName: execute_test_ssl_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - BIO_push
    - BIO_set_ssl
    - SSL_CTX_free
    - BIO_s_mem
    - SSL_set0_wbio
    - SSL_new
    - BIO_f_ssl
    - TLS_method
    - SSL_set0_rbio
    - BIO_free
    - printf
    - BIO_pop
    - SSL_free
    - BIO_new
    - SSL_CTX_new
    linkageType: ''
    returnType: int
    signature: execute_test_ssl_bio(SSL_BIO_TEST_FIXTURE fix)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:847,1
    - Dst: EXECUTE_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 850
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 850
    functionName: test_ssl_bio_pop_next_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: test_ssl_bio_pop_next_bio(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:854,1
    - Dst: EXECUTE_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 859
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 859
    functionName: test_ssl_bio_pop_ssl_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: test_ssl_bio_pop_ssl_bio(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:863,1
    - Dst: EXECUTE_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 868
      start: 861
    functionDepth: 0
    functionLinenumber: 861
    functionLinenumberEnd: 868
    functionName: test_ssl_bio_change_rbio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: test_ssl_bio_change_rbio(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:872,1
    - Dst: EXECUTE_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 877
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 877
    functionName: test_ssl_bio_change_wbio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: test_ssl_bio_change_wbio(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:924,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:927,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:929,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:931,1
    - Dst: TLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:931,1
    - Dst: TLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:931,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:933,1
    - Dst: SSL_CTX_set1_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:940,1
    - Dst: SSL_CTX_set1_sigalgs_list
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:942,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:946,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:953,1
    - Dst: create_ssl_objects
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:958,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:959,1
    - Dst: SSL_set1_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:967,1
    - Dst: SSL_set1_sigalgs_list
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:969,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:972,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:978,1
    - Dst: create_ssl_connection
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:983,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:984,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:991,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:992,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:993,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:994,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 997
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 997
    functionName: test_set_sigalgs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - SSL_set1_sigalgs_list
    - create_ssl_ctx_pair
    - SSL_CTX_set1_sigalgs
    - printf
    - create_ssl_objects
    - TLS_client_method
    - SSL_set1_sigalgs
    - create_ssl_connection
    - OSSL_NELEM
    - SSL_free
    - SSL_CTX_free
    - SSL_CTX_set1_sigalgs_list
    linkageType: ''
    returnType: int
    signature: test_set_sigalgs(int idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:1005,1
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:1012,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:1014,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:1015,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:1017,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:1018,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:1020,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:1023,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:1025,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:1026,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:1027,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:1028,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:1029,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:1030,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:1031,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:1032,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:1033,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:1033,1
    - Dst: run_tests
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:1035,1
    - Dst: bio_s_mempacket_test_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:1037,1
    - Dst: CRYPTO_mem_leaks
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:1040,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:1043,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c:1046,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 1049
      start: 999
    functionDepth: 4
    functionLinenumber: 999
    functionLinenumberEnd: 1049
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
    functionUses: 22
    functionsReached:
    - bio_s_mempacket_test_free
    - CRYPTO_mem_leaks
    - run_tests
    - CRYPTO_mem_ctrl
    - BIO_new_fp
    - BIO_free
    - printf
    - ADD_ALL_TESTS
    - OSSL_NELEM
    - CRYPTO_set_mem_debug
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/casttest.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAST_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:76,1
    - Dst: CAST_ecb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:78,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:79,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:80,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:82,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:84,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:85,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:86,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:88,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:90,1
    - Dst: CAST_ecb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:93,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:94,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:95,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:97,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:99,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:100,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:101,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:103,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:104,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:109,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:116,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:117,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:118,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:119,1
    - Dst: CAST_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:123,1
    - Dst: CAST_ecb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:124,1
    - Dst: CAST_ecb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:125,1
    - Dst: CAST_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:126,1
    - Dst: CAST_ecb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:127,1
    - Dst: CAST_ecb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:128,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:130,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:131,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:136,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:137,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:138,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:139,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:141,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:143,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:144,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:146,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:147,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:149,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:151,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:152,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:154,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:155,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:157,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/casttest.c:161,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 71
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 162
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 162
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/casttest.c
    functionUses: 22
    functionsReached:
    - memcmp
    - CAST_set_key
    - printf
    - memcpy
    - fflush
    - EXIT
    - CAST_ecb_encrypt
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_RSAPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:196,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:200,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:201,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:209,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 213
      start: 189
    functionDepth: 6
    functionLinenumber: 189
    functionLinenumberEnd: 213
    functionName: load_example_rsa_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_set1_RSA
    - d2i_RSAPrivateKey
    - RSA_free
    - EVP_PKEY_new
    - EVP_PKEY_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*load_example_rsa_key(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:223,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:224,1
    - Dst: load_example_rsa_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:228,1
    - Dst: EVP_DigestSignInit
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:230,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:230,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:231,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:235,1
    - Dst: EVP_PKEY_size
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:239,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:240,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:244,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:245,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:250,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:250,1
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:251,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:252,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:260,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:263,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:264,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:265,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:266,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 269
      start: 215
    functionDepth: 7
    functionLinenumber: 215
    functionLinenumberEnd: 269
    functionName: test_EVP_DigestSignInit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - EVP_DigestSignInit
    - EVP_DigestVerifyFinal
    - load_example_rsa_key
    - ERR_print_errors_fp
    - EVP_DigestVerifyUpdate
    - EVP_DigestSignUpdate
    - EVP_sha256
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - EVP_DigestSignFinal
    - fprintf
    - OPENSSL_free
    - OPENSSL_malloc
    - EVP_PKEY_size
    - EVP_DigestVerifyInit
    linkageType: ''
    returnType: int
    signature: test_EVP_DigestSignInit(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:277,1
    - Dst: load_example_rsa_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:279,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:281,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:281,1
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:282,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:283,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:290,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:293,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:294,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 297
      start: 271
    functionDepth: 7
    functionLinenumber: 271
    functionLinenumberEnd: 297
    functionName: test_EVP_DigestVerifyInit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_DigestVerifyFinal
    - load_example_rsa_key
    - ERR_print_errors_fp
    - EVP_DigestVerifyUpdate
    - EVP_sha256
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - EVP_PKEY_free
    - EVP_DigestVerifyInit
    linkageType: ''
    returnType: int
    signature: test_EVP_DigestVerifyInit(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_AutoPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:307,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:309,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:313,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:314,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:322,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:325,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - input
    - input_len
    - expected_id
    argTypes:
    - unsigned char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 327
      start: 299
    functionDepth: 6
    functionLinenumber: 299
    functionLinenumberEnd: 327
    functionName: test_d2i_AutoPrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - d2i_AutoPrivateKey
    - ERR_print_errors_fp
    - EVP_PKEY_id
    - fprintf
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: "test_d2i_AutoPrivateKey(const unsigned char *input,\n                                   size_t
      input_len, int expected_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PKCS8_PRIV_KEY_INFO
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:338,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:341,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:345,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:347,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:354,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:355,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 358
      start: 331
    functionDepth: 4
    functionLinenumber: 331
    functionLinenumberEnd: 358
    functionName: test_EVP_PKCS82PKEY
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKCS82PKEY
    - PKCS8_PRIV_KEY_INFO_free
    - d2i_PKCS8_PRIV_KEY_INFO
    - fprintf
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: test_EVP_PKCS82PKEY(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:363,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:364,1
    - Dst: test_EVP_DigestSignInit
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:367,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:368,1
    - Dst: test_EVP_DigestVerifyInit
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:372,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:373,1
    - Dst: test_d2i_AutoPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:377,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:379,1
    - Dst: test_d2i_AutoPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:383,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:385,1
    - Dst: test_d2i_AutoPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:390,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:392,1
    - Dst: test_EVP_PKCS82PKEY
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:396,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:397,1
    - Dst: CRYPTO_mem_leaks_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:403,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c:407,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 409
      start: 361
    functionDepth: 8
    functionLinenumber: 361
    functionLinenumberEnd: 409
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c
    functionUses: 22
    functionsReached:
    - test_EVP_PKCS82PKEY
    - test_EVP_DigestVerifyInit
    - CRYPTO_mem_ctrl
    - test_d2i_AutoPrivateKey
    - CRYPTO_mem_leaks_fp
    - printf
    - test_EVP_DigestSignInit
    - fprintf
    - CRYPTO_set_mem_debug
    linkageType: ''
    returnType: int
    signature: main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_secure_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:21,1
    - Dst: perror_line
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:24,1
    - Dst: CRYPTO_secure_malloc_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:27,1
    - Dst: perror_line
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:28,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:31,1
    - Dst: perror_line
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:32,1
    - Dst: OPENSSL_secure_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:35,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:37,1
    - Dst: perror_line
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:38,1
    - Dst: CRYPTO_secure_used
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:42,1
    - Dst: perror_line
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:43,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:46,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:48,1
    - Dst: perror_line
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:49,1
    - Dst: OPENSSL_secure_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:52,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:54,1
    - Dst: perror_line
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:55,1
    - Dst: CRYPTO_secure_used
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:59,1
    - Dst: perror_line
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:60,1
    - Dst: OPENSSL_secure_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:63,1
    - Dst: CRYPTO_secure_used
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:65,1
    - Dst: perror_line
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:66,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:69,1
    - Dst: CRYPTO_secure_malloc_done
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:71,1
    - Dst: perror_line
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:72,1
    - Dst: CRYPTO_secure_malloc_initialized
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:75,1
    - Dst: perror_line
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:76,1
    - Dst: OPENSSL_secure_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:79,1
    - Dst: CRYPTO_secure_used
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:81,1
    - Dst: perror_line
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:82,1
    - Dst: CRYPTO_secure_malloc_done
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:85,1
    - Dst: perror_line
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:86,1
    - Dst: CRYPTO_secure_malloc_initialized
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:89,1
    - Dst: perror_line
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:90,1
    - Dst: OPENSSL_secure_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:94,1
    - Dst: CRYPTO_secure_malloc_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:97,1
    - Dst: perror_line
      Src: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c:98,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 70
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 103
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 103
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c
    functionUses: 22
    functionsReached:
    - CRYPTO_secure_malloc_initialized
    - CRYPTO_secure_malloc_done
    - CRYPTO_secure_allocated
    - CRYPTO_secure_malloc_init
    - OPENSSL_secure_free
    - perror_line
    - OPENSSL_secure_malloc
    - OPENSSL_free
    - OPENSSL_malloc
    - CRYPTO_secure_used
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:91,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:93,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:94,1
    - Dst: RAND_seed
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:96,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:98,1
    - Dst: BN_GENCB_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:100,1
    - Dst: BN_GENCB_set
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:104,1
    - Dst: DSA_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:105,1
    - Dst: DSA_generate_parameters_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:105,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:111,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:113,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:116,1
    - Dst: DSA_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:118,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:120,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:124,1
    - Dst: DSA_get0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:128,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:129,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:131,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:132,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:136,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:138,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:139,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:143,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:145,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:146,1
    - Dst: DSA_generate_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:150,1
    - Dst: DSA_sign
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:151,1
    - Dst: DSA_verify
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:152,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:157,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:158,1
    - Dst: BN_GENCB_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:159,1
    - Dst: CRYPTO_mem_leaks
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:162,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:165,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:167,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 168
      start: 79
    functionDepth: 9
    functionLinenumber: 79
    functionLinenumberEnd: 168
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c
    functionUses: 22
    functionsReached:
    - DSA_generate_parameters_ex
    - RAND_seed
    - DSA_generate_key
    - BIO_printf
    - DSA_sign
    - DSA_free
    - BIO_free
    - CRYPTO_set_mem_debug
    - DSA_new
    - CRYPTO_mem_leaks
    - BIO_new_fp
    - EXIT
    - DSA_get0_pqg
    - BN_GENCB_set
    - memcmp
    - BN_GENCB_free
    - BN_GENCB_new
    - DSA_print
    - DSA_verify
    - ERR_print_errors
    - CRYPTO_mem_ctrl
    - BN_bn2bin
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:187,1
    - Dst: BN_GENCB_get_arg
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:187,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:188,1
    - Dst: BN_GENCB_get_arg
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:188,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:191,1
    - Dst: BN_GENCB_get_arg
      Src: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c:191,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - p
    - n
    - arg
    argTypes:
    - int
    - int
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 195
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 195
    functionName: dsa_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c
    functionUses: 0
    functionsReached:
    - BIO_flush
    - BIO_printf
    - BIO_write
    - BN_GENCB_get_arg
    linkageType: ''
    returnType: int
    signature: dsa_cb(int p, int n, BN_GENCB *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: is_exception
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: is_exception(const char *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:86,1
    - Dst: X509_NAME_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:87,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:93,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:96,1
    - Dst: X509_NAME_add_entry_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:97,1
    - Dst: X509_set_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:101,1
    - Dst: X509_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:105,1
    - Dst: va_end
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:106,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - crt
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 108
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 108
    functionName: set_cn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - X509_set_subject_name
    - va_end
    - va_start
    - X509_NAME_free
    - va_arg
    - X509_NAME_add_entry_by_NID
    - X509_NAME_new
    linkageType: ''
    returnType: int
    signature: set_cn(X509 *crt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:124,1
    - Dst: sk_GENERAL_NAME_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:125,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:131,1
    - Dst: va_arg
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:134,1
    - Dst: GENERAL_NAME_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:136,1
    - Dst: ASN1_IA5STRING_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:139,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:142,1
    - Dst: GENERAL_NAME_set0_value
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:147,1
    - Dst: abort
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:151,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:153,1
    - Dst: X509_add1_ext_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:156,1
    - Dst: ASN1_IA5STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:160,1
    - Dst: GENERAL_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:161,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:162,1
    - Dst: va_end
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:163,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 1
    argNames:
    - crt
    argTypes:
    - X509*
    constantsTouched: []
    func_position:
      end: 165
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 165
    functionName: set_altname
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_set
    - abort
    - X509_add1_ext_i2d
    - sk_GENERAL_NAME_new_null
    - GENERAL_NAME_set0_value
    - va_end
    - va_start
    - sk_GENERAL_NAME_push
    - GENERAL_NAME_new
    - va_arg
    - GENERAL_NAMES_free
    - ASN1_IA5STRING_free
    - ASN1_IA5STRING_new
    - GENERAL_NAME_free
    linkageType: ''
    returnType: int
    signature: set_altname(X509 *crt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_cn
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: set_cn1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - set_cn
    linkageType: ''
    returnType: int
    signature: set_cn1(X509 *crt, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_cn
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: set_cn_and_email
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - set_cn
    linkageType: ''
    returnType: int
    signature: set_cn_and_email(X509 *crt, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_cn
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: set_cn2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - set_cn
    linkageType: ''
    returnType: int
    signature: set_cn2(X509 *crt, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_cn
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: set_cn3
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - set_cn
    linkageType: ''
    returnType: int
    signature: set_cn3(X509 *crt, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_cn
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: set_email1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - set_cn
    linkageType: ''
    returnType: int
    signature: set_email1(X509 *crt, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_cn
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: set_email2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - set_cn
    linkageType: ''
    returnType: int
    signature: set_email2(X509 *crt, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_cn
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: set_email3
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - set_cn
    linkageType: ''
    returnType: int
    signature: set_email3(X509 *crt, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_cn
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: set_email_and_cn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - set_cn
    linkageType: ''
    returnType: int
    signature: set_email_and_cn(X509 *crt, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_altname
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: set_altname_dns
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - set_altname
    linkageType: ''
    returnType: int
    signature: set_altname_dns(X509 *crt, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_altname
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: set_altname_email
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - set_altname
    linkageType: ''
    returnType: int
    signature: set_altname_email(X509 *crt, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:249,1
    - Dst: X509_set_version
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:252,1
    - Dst: X509_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 259
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 259
    functionName: make_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - X509_NAME_free
    - X509_set_version
    - X509_new
    linkageType: ''
    returnType: X509
    signature: '*make_cert()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:269,1
    - Dst: is_exception
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:272,1
    - Dst: puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - fn
    - op
    - nameincert
    - match
    - name
    argTypes:
    - struct set_name_fn*
    - char*
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 276
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 276
    functionName: check_message
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - puts
    - BIO_snprintf
    - is_exception
    linkageType: ''
    returnType: void
    signature: "check_message(const struct set_name_fn *fn, const char *op,\n                          const
      char *nameincert, int match, const char *name)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:287,1
    - Dst: X509_check_host
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:289,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:292,1
    - Dst: check_message
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:301,1
    - Dst: X509_check_host
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:303,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:307,1
    - Dst: check_message
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:316,1
    - Dst: X509_check_email
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:318,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:323,1
    - Dst: check_message
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:327,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:329,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 47
    argCount: 3
    argNames:
    - crt
    - nameincert
    - fn
    argTypes:
    - X509*
    - char*
    - struct set_name_fn*
    constantsTouched: []
    func_position:
      end: 331
      start: 278
    functionDepth: 5
    functionLinenumber: 278
    functionLinenumberEnd: 331
    functionName: run_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - X509_check_host
    - X509_check_email
    - strchr
    - free
    - memcpy
    - fprintf
    - check_message
    linkageType: ''
    returnType: void
    signature: "run_cert(X509 *crt, const char *nameincert,\n                     const
      struct set_name_fn *fn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: make_cert
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:339,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:341,1
    - Dst: struct set_name_fn*::fn
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:344,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:345,1
    - Dst: run_cert
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:348,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c:349,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 355
      start: 333
    functionDepth: 6
    functionLinenumber: 333
    functionLinenumberEnd: 355
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c
    functionUses: 22
    functionsReached:
    - struct set_name_fn*::fn
    - make_cert
    - run_cert
    - X509_free
    - fprintf
    linkageType: ''
    returnType: int
    signature: main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:23,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:24,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: exnew
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "exnew(void *parent, void *ptr, CRYPTO_EX_DATA *ad,\n          int
      idx, long argl, void *argp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:31,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:32,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - to
    - from
    - from_d
    - idx
    - argl
    - argp
    argTypes:
    - CRYPTO_EX_DATA*
    - CRYPTO_EX_DATA*
    - void*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: exdup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "exdup(CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from,\n          void *from_d,
      int idx, long argl, void *argp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:40,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:41,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: exfree
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "exfree(void *parent, void *ptr, CRYPTO_EX_DATA *ad,\n            int
      idx, long argl, void *argp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:53,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:57,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: MYOBJ_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_new_ex_data
    - assert
    - OPENSSL_malloc
    linkageType: ''
    returnType: MYOBJ
    signature: '*MYOBJ_new()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:66,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - cp
    argTypes:
    - MYOBJ*
    - char*
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: MYOBJ_sethello
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c
    functionUses: 0
    functionsReached:
    - assert
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: void
    signature: MYOBJ_sethello(MYOBJ *obj, char *cp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - MYOBJ*
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: MYOBJ_gethello
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: char
    signature: '*MYOBJ_gethello(MYOBJ *obj)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_free_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:77,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - MYOBJ*
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: MYOBJ_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_free_ex_data
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: MYOBJ_free(MYOBJ *obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:87,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:89,1
    - Dst: CRYPTO_get_ex_new_index
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:90,1
    - Dst: MYOBJ_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:92,1
    - Dst: MYOBJ_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:93,1
    - Dst: MYOBJ_sethello
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:94,1
    - Dst: MYOBJ_gethello
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:95,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:96,1
    - Dst: MYOBJ_gethello
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:97,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:98,1
    - Dst: MYOBJ_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:99,1
    - Dst: MYOBJ_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:100,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:101,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 104
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c
    functionUses: 22
    functionsReached:
    - assert
    - strdup
    - MYOBJ_new
    - MYOBJ_gethello
    - free
    - MYOBJ_free
    - malloc
    - MYOBJ_sethello
    - CRYPTO_get_ex_new_index
    linkageType: ''
    returnType: int
    signature: main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:34,1
    - Dst: BIO_meth_set_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:37,1
    - Dst: BIO_meth_set_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:38,1
    - Dst: BIO_meth_set_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:39,1
    - Dst: BIO_meth_set_gets
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:40,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:41,1
    - Dst: BIO_meth_set_create
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:42,1
    - Dst: BIO_meth_set_destroy
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:43,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 47
    functionName: bio_f_tls_dump_filter
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 1
    functionsReached:
    - BIO_meth_set_ctrl
    - BIO_meth_new
    - BIO_meth_set_gets
    - BIO_meth_set_destroy
    - BIO_meth_set_puts
    - BIO_meth_set_write
    - BIO_meth_set_read
    - BIO_meth_set_create
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*bio_f_tls_dump_filter(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: bio_f_tls_dump_filter_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 1
    functionsReached:
    - BIO_meth_free
    linkageType: ''
    returnType: void
    signature: bio_f_tls_dump_filter_free(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: tls_dump_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: tls_dump_new(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: tls_dump_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: tls_dump_free(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:70,1
    - Dst: BIO_test_flags
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:72,1
    - Dst: BIO_clear_flags
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:73,1
    - Dst: BIO_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: copy_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - BIO_clear_flags
    - BIO_test_flags
    - BIO_set_flags
    - BIO_next
    linkageType: ''
    returnType: void
    signature: copy_flags(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:106,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:113,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:114,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:116,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:120,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:121,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:124,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:125,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:127,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:129,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:135,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:137,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:140,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:142,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:145,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:146,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:151,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:155,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:157,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:159,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:161,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:165,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:170,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:173,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:174,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 58
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 175
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 175
    functionName: dump_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - fflush
    - printf
    linkageType: ''
    returnType: void
    signature: dump_data(const char *data, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:180,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:182,1
    - Dst: copy_flags
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:183,1
    - Dst: dump_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - bio
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 190
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 190
    functionName: tls_dump_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - copy_flags
    - dump_data
    - BIO_read
    - BIO_next
    linkageType: ''
    returnType: int
    signature: tls_dump_read(BIO *bio, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:195,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:197,1
    - Dst: copy_flags
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - bio
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 201
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 201
    functionName: tls_dump_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - copy_flags
    - BIO_write
    - BIO_next
    linkageType: ''
    returnType: int
    signature: tls_dump_write(BIO *bio, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:206,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - bio
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 220
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 220
    functionName: tls_dump_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - BIO_next
    linkageType: ''
    returnType: long
    signature: tls_dump_ctrl(BIO *bio, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bio
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: tls_dump_gets
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: tls_dump_gets(BIO *bio, char *buf, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls_dump_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:230,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: tls_dump_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - strlen
    - tls_dump_write
    linkageType: ''
    returnType: int
    signature: tls_dump_puts(BIO *bio, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:244,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - MEMPACKET*
    constantsTouched: []
    func_position:
      end: 246
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 246
    functionName: mempacket_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: mempacket_free(MEMPACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:268,1
    - Dst: BIO_meth_set_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:271,1
    - Dst: BIO_meth_set_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:272,1
    - Dst: BIO_meth_set_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:273,1
    - Dst: BIO_meth_set_gets
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:274,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:275,1
    - Dst: BIO_meth_set_create
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:276,1
    - Dst: BIO_meth_set_destroy
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:277,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 281
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 281
    functionName: bio_s_mempacket_test
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - BIO_meth_set_ctrl
    - BIO_meth_new
    - BIO_meth_set_gets
    - BIO_meth_set_destroy
    - BIO_meth_set_puts
    - BIO_meth_set_write
    - BIO_meth_set_read
    - BIO_meth_set_create
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*bio_s_mempacket_test(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: bio_s_mempacket_test_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 2
    functionsReached:
    - BIO_meth_free
    linkageType: ''
    returnType: void
    signature: bio_s_mempacket_test_free(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:290,1
    - Dst: sk_MEMPACKET_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:293,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:295,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:298,1
    - Dst: BIO_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 301
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 301
    functionName: mempacket_test_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - sk_MEMPACKET_new_null
    - BIO_set_init
    - BIO_set_data
    - OPENSSL_zalloc
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: mempacket_test_new(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:305,1
    - Dst: sk_MEMPACKET_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:307,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:308,1
    - Dst: BIO_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:309,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 313
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 313
    functionName: mempacket_test_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 2
    functionsReached:
    - sk_MEMPACKET_pop_free
    - BIO_set_init
    - BIO_set_data
    - BIO_get_data
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: mempacket_test_free(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:326,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:332,1
    - Dst: sk_MEMPACKET_value
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:334,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:337,1
    - Dst: sk_MEMPACKET_shift
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:340,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:381,1
    - Dst: mempacket_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:383,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 3
    argNames:
    - bio
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 386
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 386
    functionName: mempacket_test_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - mempacket_free
    - BIO_clear_retry_flags
    - sk_MEMPACKET_value
    - sk_MEMPACKET_shift
    - BIO_get_data
    - memcpy
    - BIO_set_retry_read
    linkageType: ''
    returnType: int
    signature: mempacket_test_read(BIO *bio, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:391,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:406,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:410,1
    - Dst: mempacket_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:412,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:416,1
    - Dst: sk_MEMPACKET_value
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:421,1
    - Dst: sk_MEMPACKET_insert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:424,1
    - Dst: mempacket_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:425,1
    - Dst: sk_MEMPACKET_value
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:439,1
    - Dst: sk_MEMPACKET_push
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:458,1
    - Dst: mempacket_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:459,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 5
    argNames:
    - bio
    - in
    - inl
    - pktnum
    - type
    argTypes:
    - BIO*
    - char*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 467
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 467
    functionName: mempacket_test_inject
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 1
    functionsReached:
    - mempacket_free
    - sk_MEMPACKET_value
    - BIO_get_data
    - memcpy
    - sk_MEMPACKET_insert
    - OPENSSL_malloc
    - sk_MEMPACKET_push
    linkageType: ''
    returnType: int
    signature: "mempacket_test_inject(BIO *bio, const char *in, int inl, int pktnum,\n
      \                         int type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mempacket_test_inject
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bio
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 472
      start: 469
    functionDepth: 2
    functionLinenumber: 469
    functionLinenumberEnd: 472
    functionName: mempacket_test_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - mempacket_test_inject
    linkageType: ''
    returnType: int
    signature: mempacket_test_write(BIO *bio, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:477,1
    - Dst: sk_MEMPACKET_num
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:482,1
    - Dst: BIO_get_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:485,1
    - Dst: BIO_set_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:488,1
    - Dst: sk_MEMPACKET_value
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:494,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - bio
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 512
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 512
    functionName: mempacket_test_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - BIO_set_shutdown
    - sk_MEMPACKET_num
    - BIO_get_shutdown
    - sk_MEMPACKET_value
    - BIO_get_data
    linkageType: ''
    returnType: long
    signature: mempacket_test_ctrl(BIO *bio, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bio
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 518
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 518
    functionName: mempacket_test_gets
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: mempacket_test_gets(BIO *bio, char *buf, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mempacket_test_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:522,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 523
      start: 520
    functionDepth: 3
    functionLinenumber: 520
    functionLinenumberEnd: 523
    functionName: mempacket_test_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 0
    functionsReached:
    - mempacket_test_write
    - strlen
    linkageType: ''
    returnType: int
    signature: mempacket_test_puts(BIO *bio, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:532,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:533,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:535,1
    - Dst: SSL_CTX_use_certificate_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:539,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:541,1
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:544,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:546,1
    - Dst: SSL_CTX_check_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:548,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:549,1
    - Dst: SSL_CTX_set_dh_auto
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:554,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:562,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:563,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 6
    argNames:
    - sm
    - cm
    - sctx
    - cctx
    - certfile
    - privkeyfile
    argTypes:
    - SSL_METHOD*
    - SSL_METHOD*
    - SSL_CTX**
    - SSL_CTX**
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 565
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 565
    functionName: create_ssl_ctx_pair
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 6
    functionsReached:
    - SSL_CTX_set_dh_auto
    - SSL_CTX_use_certificate_file
    - SSL_CTX_use_PrivateKey_file
    - printf
    - SSL_CTX_check_private_key
    - SSL_CTX_free
    - SSL_CTX_new
    linkageType: ''
    returnType: int
    signature: "create_ssl_ctx_pair(const SSL_METHOD *sm, const SSL_METHOD *cm,\n
      \                       SSL_CTX **sctx, SSL_CTX **cctx, char *certfile,\n                        char
      *privkeyfile)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:579,1
    - Dst: SSL_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:583,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:588,1
    - Dst: SSL_is_dtls
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:592,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:593,1
    - Dst: bio_s_mempacket_test
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:593,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:594,1
    - Dst: bio_s_mempacket_test
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:594,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:596,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:596,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:597,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:597,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:600,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:605,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:607,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:609,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:614,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:615,1
    - Dst: BIO_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:618,1
    - Dst: BIO_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:619,1
    - Dst: SSL_set_bio
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:621,1
    - Dst: SSL_set_bio
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:622,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:634,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:635,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:636,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:637,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:638,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:639,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 6
    argNames:
    - serverctx
    - clientctx
    - sssl
    - cssl
    - s_to_c_fbio
    - c_to_s_fbio
    argTypes:
    - SSL_CTX*
    - SSL_CTX*
    - SSL**
    - SSL**
    - BIO*
    - BIO*
    constantsTouched: []
    func_position:
      end: 642
      start: 572
    functionDepth: 4
    functionLinenumber: 572
    functionLinenumberEnd: 642
    functionName: create_ssl_objects
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 6
    functionsReached:
    - SSL_is_dtls
    - BIO_push
    - BIO_up_ref
    - BIO_s_mem
    - BIO_set_mem_eof_return
    - SSL_new
    - BIO_free
    - printf
    - SSL_set_bio
    - SSL_free
    - BIO_new
    - bio_s_mempacket_test
    linkageType: ''
    returnType: int
    signature: "create_ssl_objects(SSL_CTX *serverctx, SSL_CTX *clientctx, SSL **sssl,\n
      \                         SSL **cssl, BIO *s_to_c_fbio, BIO *c_to_s_fbio)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_connect
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:652,1
    - Dst: SSL_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:654,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:658,1
    - Dst: SSL_accept
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:664,1
    - Dst: SSL_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:666,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:670,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c:676,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 30
    argCount: 2
    argNames:
    - serverssl
    - clientssl
    argTypes:
    - SSL*
    - SSL*
    constantsTouched: []
    func_position:
      end: 682
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 682
    functionName: create_ssl_connection
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
    functionUses: 6
    functionsReached:
    - printf
    - SSL_accept
    - SSL_connect
    - SSL_get_error
    linkageType: ''
    returnType: int
    signature: create_ssl_connection(SSL *serverssl, SSL *clientssl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:34,1
    - Dst: TLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:34,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:35,1
    - Dst: TLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:35,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - test_case_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: set_up
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c
    functionUses: 12
    functionsReached:
    - TLS_server_method
    - OPENSSL_assert
    - SSL_CTX_new
    - TLS_client_method
    linkageType: ''
    returnType: CIPHERLIST_TEST_FIXTURE
    signature: set_up(const char *const test_case_name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:120,1
    - Dst: SSL_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:125,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:126,1
    - Dst: SSL_get1_supported_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:128,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:129,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:130,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:131,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:133,1
    - Dst: SSL_CIPHER_get_id
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:140,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:140,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:142,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:151,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 154
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 154
    functionName: test_default_cipherlist
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c
    functionUses: 0
    functionsReached:
    - SSL_get1_supported_ciphers
    - OPENSSL_assert
    - STACK_OF
    - SSL_CIPHER_get_id
    - sk_SSL_CIPHER_num
    - SSL_new
    - sk_SSL_CIPHER_value
    - SSL_free
    - OSSL_NELEM
    - fprintf
    - sk_SSL_CIPHER_free
    linkageType: ''
    returnType: int
    signature: test_default_cipherlist(SSL_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_default_cipherlist
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:158,1
    - Dst: test_default_cipherlist
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CIPHERLIST_TEST_FIXTURE
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: execute_test
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c
    functionUses: 0
    functionsReached:
    - test_default_cipherlist
    linkageType: ''
    returnType: int
    signature: execute_test(CIPHERLIST_TEST_FIXTURE fixture)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:164,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:165,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CIPHERLIST_TEST_FIXTURE
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 5
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: tear_down
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_free
    - ERR_print_errors_fp
    linkageType: ''
    returnType: void
    signature: tear_down(CIPHERLIST_TEST_FIXTURE fixture)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CIPHERLIST_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:177,1
    - Dst: EXECUTE_CIPHERLIST_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: test_default_cipherlist_implicit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c
    functionUses: 0
    functionsReached:
    - SETUP_CIPHERLIST_TEST_FIXTURE
    - EXECUTE_CIPHERLIST_TEST
    linkageType: ''
    returnType: int
    signature: test_default_cipherlist_implicit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CIPHERLIST_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:183,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:184,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:184,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:185,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:185,1
    - Dst: EXECUTE_CIPHERLIST_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: test_default_cipherlist_explicit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_cipher_list
    - SETUP_CIPHERLIST_TEST_FIXTURE
    - EXECUTE_CIPHERLIST_TEST
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: test_default_cipherlist_explicit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:193,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:194,1
    - Dst: run_tests
      Src: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 199
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 199
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c
    functionUses: 22
    functionsReached:
    - run_tests
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bftest.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: print_test_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:239,1
    - Dst: test
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:241,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 244
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 244
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bftest.c
    functionUses: 22
    functionsReached:
    - test
    - EXIT
    - print_test_data
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:250,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:251,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:254,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:255,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:257,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:258,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:260,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:261,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:264,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:265,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:267,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:268,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:270,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:272,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:273,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:275,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:276,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:279,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:280,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:282,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:283,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:285,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:286,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:286,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:287,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:287,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:288,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:289,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:290,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:291,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:292,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:294,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:295,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:297,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:298,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:298,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:299,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:300,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:301,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:303,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:304,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:304,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:305,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:306,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:307,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 309
    functionName: print_test_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bftest.c
    functionUses: 1
    functionsReached:
    - strlen
    - printf
    linkageType: ''
    returnType: int
    signature: print_test_data(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:321,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:321,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:324,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:327,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:327,1
    - Dst: BF_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:329,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:329,1
    - Dst: BF_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:333,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:334,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:335,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:336,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:338,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:339,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:340,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:342,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:344,1
    - Dst: BF_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:347,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:348,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:349,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:350,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:352,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:353,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:354,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:356,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:357,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:362,1
    - Dst: BF_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:365,1
    - Dst: BF_ecb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:367,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:368,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:369,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:370,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:372,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:373,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:374,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:376,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:378,1
    - Dst: BF_ecb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:381,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:382,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:383,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:384,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:386,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:387,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:388,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:390,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:391,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:396,1
    - Dst: BF_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:398,1
    - Dst: BF_ecb_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:399,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:401,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:402,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:407,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:408,1
    - Dst: BF_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:410,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:411,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:412,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:413,1
    - Dst: BF_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:414,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:416,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:418,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:420,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:422,1
    - Dst: BF_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:423,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:424,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:424,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:425,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:429,1
    - Dst: BF_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:431,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:432,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:433,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:434,1
    - Dst: BF_cfb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:436,1
    - Dst: BF_cfb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:438,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:440,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:442,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:444,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:447,1
    - Dst: BF_cfb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:448,1
    - Dst: BF_cfb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:449,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:451,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:452,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:456,1
    - Dst: BF_set_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:458,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:459,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:460,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:461,1
    - Dst: BF_ofb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:463,1
    - Dst: BF_ofb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:465,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:467,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:469,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:471,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:474,1
    - Dst: BF_ofb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:475,1
    - Dst: BF_ofb64_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:476,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:477,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/bftest.c:478,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 138
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 483
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 483
    functionName: test
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/bftest.c
    functionUses: 18
    functionsReached:
    - BF_ofb64_encrypt
    - BF_decrypt
    - memcmp
    - BF_ecb_encrypt
    - memset
    - strlen
    - printf
    - memcpy
    - BF_cbc_encrypt
    - BF_encrypt
    - BF_cfb64_encrypt
    - ebcdic2ascii
    - BF_set_key
    linkageType: ''
    returnType: int
    signature: test(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:70,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:72,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - f
    - title
    - s
    - l
    argTypes:
    - FILE*
    - char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: hexdump
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c
    functionUses: 3
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: hexdump(FILE *f, const char *title, const unsigned char *s, int l)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dst
    - src
    - len
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: convert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c
    functionUses: 3
    functionsReached:
    - sscanf
    linkageType: ''
    returnType: void
    signature: convert(unsigned char *dst, const unsigned char *src, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyname
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:96,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:98,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:99,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:102,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:103,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:104,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:106,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:107,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:108,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:110,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:111,1
    - Dst: convert
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:113,1
    - Dst: PKCS5_PBKDF2_HMAC
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:115,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:120,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:122,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:124,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:125,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:127,1
    - Dst: hexdump
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:128,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:129,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:131,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:132,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - i
    - digestname
    - test
    - hex
    argTypes:
    - int
    - char*
    - testdata*
    - char*
    constantsTouched: []
    func_position:
      end: 133
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 133
    functionName: test_p5_pbkdf2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c
    functionUses: 0
    functionsReached:
    - memcmp
    - PKCS5_PBKDF2_HMAC
    - hexdump
    - strlen
    - OPENSSL_free
    - convert
    - EVP_get_digestbyname
    - fprintf
    - EXIT
    - OPENSSL_malloc
    linkageType: ''
    returnType: void
    signature: test_p5_pbkdf2(int i, char *digestname, testdata *test, const char
      *hex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:140,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:141,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:143,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:145,1
    - Dst: test_p5_pbkdf2
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:147,1
    - Dst: test_p5_pbkdf2
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:148,1
    - Dst: test_p5_pbkdf2
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:149,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:150,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:152,1
    - Dst: CRYPTO_mem_leaks_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 159
      start: 135
    functionDepth: 5
    functionLinenumber: 135
    functionLinenumberEnd: 159
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c
    functionUses: 22
    functionsReached:
    - test_p5_pbkdf2
    - CRYPTO_mem_ctrl
    - OPENSSL_init_crypto
    - CRYPTO_mem_leaks_fp
    - printf
    - CRYPTO_set_mem_debug
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:85,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:88,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:90,1
    - Dst: SSL_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:96,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:98,1
    - Dst: ssl_init_wbio_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:104,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:105,1
    - Dst: ssl3_setup_buffers
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:111,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:112,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:123,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:127,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:128,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - test_case_name
    - meth
    argTypes:
    - char*
    - SSL_METHOD*
    constantsTouched: []
    func_position:
      end: 131
      start: 80
    functionDepth: 5
    functionLinenumber: 80
    functionLinenumberEnd: 131
    functionName: set_up
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c
    functionUses: 12
    functionsReached:
    - exit
    - ssl_init_wbio_buffer
    - ERR_print_errors_fp
    - memset
    - SSL_new
    - ssl3_setup_buffers
    - fprintf
    - SSL_CTX_new
    linkageType: ''
    returnType: HEARTBEAT_TEST_FIXTURE
    signature: "set_up(const char *const test_case_name,\n                                     const
      SSL_METHOD *meth)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_up
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:135,1
    - Dst: DTLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - test_case_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 148
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 148
    functionName: set_up_dtls
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c
    functionUses: 0
    functionsReached:
    - set_up
    - DTLS_server_method
    linkageType: ''
    returnType: HEARTBEAT_TEST_FIXTURE
    signature: set_up_dtls(const char *const test_case_name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: dummy_handshake
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: dummy_handshake(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:158,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:159,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - HEARTBEAT_TEST_FIXTURE
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 5
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: tear_down
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_free
    - ERR_print_errors_fp
    - SSL_free
    linkageType: ''
    returnType: void
    signature: tear_down(HEARTBEAT_TEST_FIXTURE fixture)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:170,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:172,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:173,1
    - Dst: isprint
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:177,1
    - Dst: fputc
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:178,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:180,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - prefix
    - payload
    - n
    argTypes:
    - char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 183
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 183
    functionName: print_payload
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c
    functionUses: 0
    functionsReached:
    - fputc
    - isprint
    - printf
    linkageType: ''
    returnType: void
    signature: "print_payload(const char *const prefix,\n                          const
      unsigned char *payload, const int n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:196,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:198,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:204,1
    - Dst: HEARTBEAT_TEST_FIXTURE::process_heartbeat
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:206,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:210,1
    - Dst: n2s
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:222,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:225,1
    - Dst: print_payload
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:228,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:228,1
    - Dst: print_payload
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:229,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:234,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:235,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:241,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - HEARTBEAT_TEST_FIXTURE
    constantsTouched: []
    func_position:
      end: 248
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 248
    functionName: execute_heartbeat
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c
    functionUses: 0
    functionsReached:
    - s2n
    - strcmp
    - HEARTBEAT_TEST_FIXTURE::process_heartbeat
    - strlen
    - printf
    - memcpy
    - n2s
    - OPENSSL_free
    - print_payload
    linkageType: ''
    returnType: int
    signature: execute_heartbeat(HEARTBEAT_TEST_FIXTURE fixture)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - payload_buf
    argTypes:
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 254
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 254
    functionName: honest_payload_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: honest_payload_size(unsigned char payload_buf[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_HEARTBEAT_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:264,1
    - Dst: EXECUTE_HEARTBEAT_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 277
    functionName: test_dtls1_not_bleeding
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_HEARTBEAT_TEST
    - SETUP_HEARTBEAT_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: test_dtls1_not_bleeding()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_HEARTBEAT_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:283,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:289,1
    - Dst: honest_payload_size
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:291,1
    - Dst: EXECUTE_HEARTBEAT_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 299
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 299
    functionName: test_dtls1_not_bleeding_empty_payload
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_HEARTBEAT_TEST
    - memset
    - honest_payload_size
    - SETUP_HEARTBEAT_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: test_dtls1_not_bleeding_empty_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_HEARTBEAT_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:303,1
    - Dst: EXECUTE_HEARTBEAT_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 314
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 314
    functionName: test_dtls1_heartbleed
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_HEARTBEAT_TEST
    - SETUP_HEARTBEAT_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: test_dtls1_heartbleed()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_HEARTBEAT_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:318,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:324,1
    - Dst: EXECUTE_HEARTBEAT_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 333
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 333
    functionName: test_dtls1_heartbleed_empty_payload
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_HEARTBEAT_TEST
    - memset
    - SETUP_HEARTBEAT_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: test_dtls1_heartbleed_empty_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_HEARTBEAT_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:337,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:343,1
    - Dst: honest_payload_size
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:347,1
    - Dst: EXECUTE_HEARTBEAT_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 352
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 352
    functionName: test_dtls1_heartbleed_excessive_plaintext_length
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_HEARTBEAT_TEST
    - memset
    - honest_payload_size
    - SETUP_HEARTBEAT_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: test_dtls1_heartbleed_excessive_plaintext_length()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:361,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:362,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:363,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:364,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:365,1
    - Dst: run_tests
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:367,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 370
      start: 357
    functionDepth: 5
    functionLinenumber: 357
    functionLinenumberEnd: 370
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c
    functionUses: 22
    functionsReached:
    - ERR_print_errors_fp
    - run_tests
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 377
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 377
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:28,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:33,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pval
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 38
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 38
    functionName: remove_space
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - strlen
    - isspace
    linkageType: ''
    returnType: void
    signature: remove_space(char **pval)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:50,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:53,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:54,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:59,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:65,1
    - Dst: remove_space
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:77,1
    - Dst: remove_space
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - pkw
    - pval
    - linebuf
    argTypes:
    - char**
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 81
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 81
    functionName: parse_line
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - exit
    - strchr
    - strlen
    - fprintf
    - remove_space
    linkageType: ''
    returnType: int
    signature: parse_line(char **pkw, char **pval, char *linebuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:97,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:101,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:120,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - input
    - input_len
    - out_len
    argTypes:
    - char*
    - size_t
    - size_t*
    constantsTouched: []
    func_position:
      end: 122
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 122
    functionName: unescape
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_malloc
    - OPENSSL_zalloc
    linkageType: ''
    returnType: unsigned char
    signature: "* unescape(const char *input, size_t input_len,\n                               size_t
      *out_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:137,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:148,1
    - Dst: unescape
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:152,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:158,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:160,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:161,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - value
    - buf
    - buflen
    argTypes:
    - char*
    - unsigned char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 167
      start: 125
    functionDepth: 5
    functionLinenumber: 125
    functionLinenumberEnd: 167
    functionName: test_bin
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - ERR_print_errors_fp
    - strlen
    - OPENSSL_hexstr2buf
    - fprintf
    - OPENSSL_malloc
    - unescape
    linkageType: ''
    returnType: int
    signature: test_bin(const char *value, unsigned char **buf, size_t *buflen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:175,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:181,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:186,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - value
    - pr
    argTypes:
    - char*
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 193
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 193
    functionName: test_uint64
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: test_uint64(const char *value, uint64_t *pr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 290
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 290
    functionName: evp_find_test
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct evp_test_method
    signature: '*evp_find_test(const char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:295,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:297,1
    - Dst: fputs
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - name
    - buf
    - len
    argTypes:
    - char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 299
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 299
    functionName: hex_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - fprintf
    - fputs
    linkageType: ''
    returnType: void
    signature: hex_print(const char *name, const unsigned char *buf, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:303,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:305,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:307,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:309,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct evp_test*
    constantsTouched: []
    func_position:
      end: 317
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 317
    functionName: free_expected
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: free_expected(struct evp_test *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hex_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:323,1
    - Dst: hex_print
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:324,1
    - Dst: free_expected
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct evp_test*
    constantsTouched: []
    func_position:
      end: 326
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 326
    functionName: print_expected
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - free_expected
    - hex_print
    linkageType: ''
    returnType: void
    signature: print_expected(struct evp_test *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:337,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:340,1
    - Dst: print_expected
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:343,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:347,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:352,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:353,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:362,1
    - Dst: ERR_peek_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:367,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:369,1
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:374,1
    - Dst: ERR_reason_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:375,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:378,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:383,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:383,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:386,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct evp_test*
    constantsTouched: []
    func_position:
      end: 390
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 390
    functionName: check_test_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    - ERR_reason_error_string
    - ERR_peek_error
    - ERR_func_error_string
    - fprintf
    - print_expected
    linkageType: ''
    returnType: int
    signature: check_test_error(struct evp_test *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct evp_test*::meth::run_test
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:403,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:404,1
    - Dst: check_test_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:408,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:410,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:415,1
    - Dst: struct evp_test*::meth::cleanup
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:417,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:418,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:421,1
    - Dst: free_expected
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:423,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - t
    - tmeth
    argTypes:
    - struct evp_test*
    - struct evp_test_method*
    constantsTouched: []
    func_position:
      end: 427
      start: 394
    functionDepth: 5
    functionLinenumber: 394
    functionLinenumberEnd: 427
    functionName: setup_test
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - free_expected
    - ERR_print_errors_fp
    - struct evp_test*::meth::run_test
    - struct evp_test*::meth::cleanup
    - fprintf
    - OPENSSL_free
    - check_test_error
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: setup_test(struct evp_test *t, const struct evp_test_method *tmeth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ppk
    - name
    - lst
    argTypes:
    - EVP_PKEY**
    - char*
    - struct key_list*
    constantsTouched: []
    func_position:
      end: 439
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 439
    functionName: find_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: find_key(EVP_PKEY **ppk, const char *name, struct key_list *lst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:445,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:446,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - lst
    argTypes:
    - struct key_list*
    constantsTouched: []
    func_position:
      end: 451
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 451
    functionName: free_key_list
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: free_key_list(struct key_list *lst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_GET_LIB
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:456,1
    - Dst: ERR_GET_REASON
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:457,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 462
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 462
    functionName: check_unsupported
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - ERR_GET_LIB
    - ERR_GET_REASON
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: check_unsupported()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:469,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:469,1
    - Dst: BIO_reset
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:470,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:473,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:477,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:479,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:480,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:483,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:486,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct evp_test*
    constantsTouched: []
    func_position:
      end: 488
      start: 465
    functionDepth: 3
    functionLinenumber: 465
    functionLinenumberEnd: 488
    functionName: read_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - BIO_s_mem
    - strncmp
    - BIO_gets
    - fprintf
    - BIO_new
    - BIO_reset
    linkageType: ''
    returnType: int
    signature: read_key(struct evp_test *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:498,1
    - Dst: parse_line
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:499,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:501,1
    - Dst: read_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:502,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:504,1
    - Dst: check_unsupported
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:505,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:506,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:507,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:513,1
    - Dst: read_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:514,1
    - Dst: PEM_read_bio_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:516,1
    - Dst: check_unsupported
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:517,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:518,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:519,1
    - Dst: find_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:527,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:528,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:531,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:534,1
    - Dst: evp_find_test
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:542,1
    - Dst: setup_test
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:544,1
    - Dst: struct evp_test_method*::init
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:548,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:549,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:555,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:557,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:560,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:563,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:565,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:568,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:571,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:573,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:576,1
    - Dst: struct evp_test*::meth::parse
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:582,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:585,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:589,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 95
    argCount: 3
    argNames:
    - t
    - buf
    - verbose
    argTypes:
    - struct evp_test*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 595
      start: 490
    functionDepth: 6
    functionLinenumber: 490
    functionLinenumberEnd: 595
    functionName: process_test
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - evp_find_test
    - strcmp
    - OPENSSL_malloc
    - struct evp_test_method*::init
    - read_key
    - ERR_print_errors_fp
    - find_key
    - PEM_read_bio_PrivateKey
    - struct evp_test*::meth::parse
    - fputs
    - parse_line
    - OPENSSL_strdup
    - PEM_read_bio_PUBKEY
    - fprintf
    - setup_test
    - check_unsupported
    linkageType: ''
    returnType: int
    signature: process_test(struct evp_test *t, char *buf, int verbose)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:604,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:609,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:611,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:614,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:615,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - t
    - expected
    - expected_len
    - received
    - received_len
    argTypes:
    - struct evp_test*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 618
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 618
    functionName: check_var_length_output
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - fprintf
    - memcmp
    - exit
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: "check_var_length_output(struct evp_test *t,\n                                   const
      unsigned char *expected,\n                                   size_t expected_len,\n
      \                                  const unsigned char *received,\n                                   size_t
      received_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_var_length_output
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - t
    - expected
    - received
    - len
    argTypes:
    - struct evp_test*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 626
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 626
    functionName: check_output
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - check_var_length_output
    linkageType: ''
    returnType: int
    signature: "check_output(struct evp_test *t,\n                        const unsigned
      char *expected,\n                        const unsigned char *received,\n                        size_t
      len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:635,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:639,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:641,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:643,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:645,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:650,1
    - Dst: process_test
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:652,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:653,1
    - Dst: setup_test
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:656,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:657,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:658,1
    - Dst: free_key_list
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:660,1
    - Dst: free_key_list
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:661,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:662,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:663,1
    - Dst: CRYPTO_mem_leaks_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:666,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 672
      start: 628
    functionDepth: 7
    functionLinenumber: 628
    functionLinenumberEnd: 672
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 22
    functionsReached:
    - exit
    - CRYPTO_mem_ctrl
    - memset
    - BIO_gets
    - BIO_free
    - CRYPTO_mem_leaks_fp
    - process_test
    - BIO_new_file
    - setup_test
    - fprintf
    - free_key_list
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 677
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 677
    functionName: test_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: test_free(void *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyname
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:698,1
    - Dst: OBJ_sn2nid
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:701,1
    - Dst: OBJ_ln2nid
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:701,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:707,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - t
    - alg
    argTypes:
    - struct evp_test*
    - char*
    constantsTouched: []
    func_position:
      end: 714
      start: 694
    functionDepth: 3
    functionLinenumber: 694
    functionLinenumberEnd: 714
    functionName: digest_test_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_get_digestbyname
    - OBJ_ln2nid
    - OBJ_sn2nid
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: digest_test_init(struct evp_test *t, const char *alg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:719,1
    - Dst: test_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct evp_test*
    constantsTouched: []
    func_position:
      end: 721
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 721
    functionName: digest_test_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - test_free
    linkageType: ''
    returnType: void
    signature: digest_test_cleanup(struct evp_test *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:727,1
    - Dst: test_bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:728,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:729,1
    - Dst: test_bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:730,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:731,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - struct evp_test*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 739
      start: 723
    functionDepth: 6
    functionLinenumber: 723
    functionLinenumberEnd: 739
    functionName: digest_test_parse
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - test_bin
    - strcmp
    linkageType: ''
    returnType: int
    signature: "digest_test_parse(struct evp_test *t,\n                             const
      char *keyword, const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:749,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:753,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:757,1
    - Dst: EVP_DigestFinal
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:761,1
    - Dst: check_output
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:767,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:771,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct evp_test*
    constantsTouched: []
    func_position:
      end: 774
      start: 741
    functionDepth: 4
    functionLinenumber: 741
    functionLinenumberEnd: 774
    functionName: digest_test_run
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - check_output
    - EVP_DigestUpdate
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - EVP_DigestFinal
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: digest_test_run(struct evp_test *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_cipherbyname
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:809,1
    - Dst: OBJ_sn2nid
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:812,1
    - Dst: OBJ_ln2nid
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:812,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:818,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:828,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:829,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:830,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:831,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:832,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - t
    - alg
    argTypes:
    - struct evp_test*
    - char*
    constantsTouched: []
    func_position:
      end: 838
      start: 805
    functionDepth: 3
    functionLinenumber: 805
    functionLinenumberEnd: 838
    functionName: cipher_test_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_mode
    - OBJ_sn2nid
    - EVP_get_cipherbyname
    - EVP_CIPHER_flags
    - OBJ_ln2nid
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: cipher_test_init(struct evp_test *t, const char *alg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:843,1
    - Dst: test_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:844,1
    - Dst: test_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:845,1
    - Dst: test_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:846,1
    - Dst: test_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:847,1
    - Dst: test_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct evp_test*
    constantsTouched: []
    func_position:
      end: 849
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 849
    functionName: cipher_test_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - test_free
    linkageType: ''
    returnType: void
    signature: cipher_test_cleanup(struct evp_test *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:855,1
    - Dst: test_bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:856,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:857,1
    - Dst: test_bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:858,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:859,1
    - Dst: test_bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:860,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:861,1
    - Dst: test_bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:862,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:864,1
    - Dst: test_bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:865,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:866,1
    - Dst: test_bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:867,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:870,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:871,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:873,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - struct evp_test*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 880
      start: 851
    functionDepth: 6
    functionLinenumber: 851
    functionLinenumberEnd: 880
    functionName: cipher_test_parse
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - test_bin
    - strcmp
    linkageType: ''
    returnType: int
    signature: "cipher_test_parse(struct evp_test *t, const char *keyword,\n                             const
      char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:892,1
    - Dst: EVP_CIPHER_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:895,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:911,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:914,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:925,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:929,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:933,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:938,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:941,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:958,1
    - Dst: EVP_CIPHER_CTX_set_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:965,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:968,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:972,1
    - Dst: EVP_CipherUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:980,1
    - Dst: EVP_CipherUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:988,1
    - Dst: EVP_CipherUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:996,1
    - Dst: EVP_CipherUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1001,1
    - Dst: EVP_CipherUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1007,1
    - Dst: EVP_CIPHER_CTX_set_padding
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1012,1
    - Dst: EVP_CipherUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1017,1
    - Dst: EVP_CipherUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1022,1
    - Dst: EVP_CipherUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1029,1
    - Dst: EVP_CipherUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1037,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1047,1
    - Dst: check_output
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1054,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1062,1
    - Dst: check_output
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1067,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1074,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1075,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 177
    argCount: 5
    argNames:
    - t
    - enc
    - out_misalign
    - inp_misalign
    - frag
    argTypes:
    - struct evp_test*
    - int
    - size_t
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 1078
      start: 882
    functionDepth: 3
    functionLinenumber: 882
    functionLinenumberEnd: 1078
    functionName: cipher_test_enc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_set_padding
    - EVP_CIPHER_CTX_free
    - check_output
    - EVP_CIPHER_CTX_ctrl
    - EVP_CIPHER_CTX_set_flags
    - OPENSSL_free
    - EVP_CipherFinal_ex
    - memcpy
    - EVP_CipherUpdate
    - EVP_CipherInit_ex
    - EVP_CIPHER_CTX_iv_length
    - OPENSSL_malloc
    - EVP_CIPHER_CTX_set_key_length
    linkageType: ''
    returnType: int
    signature: "cipher_test_enc(struct evp_test *t, int enc,\n                           size_t
      out_misalign, size_t inp_misalign, int frag)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1090,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1092,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1107,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1112,1
    - Dst: cipher_test_enc
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1119,1
    - Dst: cipher_test_enc
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1128,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1144,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1145,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct evp_test*
    constantsTouched: []
    func_position:
      end: 1156
      start: 1080
    functionDepth: 4
    functionLinenumber: 1080
    functionLinenumberEnd: 1156
    functionName: cipher_test_run
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_iv_length
    - EVP_CIPHER_mode
    - BIO_snprintf
    - cipher_test_enc
    linkageType: ''
    returnType: int
    signature: cipher_test_run(struct evp_test *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1186,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1188,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - t
    - alg
    argTypes:
    - struct evp_test*
    - char*
    constantsTouched: []
    func_position:
      end: 1206
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1206
    functionName: mac_test_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - strcmp
    linkageType: ''
    returnType: int
    signature: mac_test_init(struct evp_test *t, const char *alg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1211,1
    - Dst: test_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1212,1
    - Dst: test_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1213,1
    - Dst: test_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct evp_test*
    constantsTouched: []
    func_position:
      end: 1215
      start: 1208
    functionDepth: 1
    functionLinenumber: 1208
    functionLinenumberEnd: 1215
    functionName: mac_test_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - test_free
    linkageType: ''
    returnType: void
    signature: mac_test_cleanup(struct evp_test *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1221,1
    - Dst: test_bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1222,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1223,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1224,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1229,1
    - Dst: test_bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1230,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1231,1
    - Dst: test_bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1232,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - struct evp_test*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1234
      start: 1217
    functionDepth: 6
    functionLinenumber: 1217
    functionLinenumberEnd: 1234
    functionName: mac_test_parse
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - test_bin
    - OPENSSL_strdup
    - strcmp
    linkageType: ''
    returnType: int
    signature: "mac_test_parse(struct evp_test *t,\n                          const
      char *keyword, const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1248,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1256,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1261,1
    - Dst: EVP_PKEY_CTX_ctrl_str
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1265,1
    - Dst: EVP_PKEY_CTX_set_mac_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1270,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1274,1
    - Dst: EVP_get_digestbyname
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1278,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1282,1
    - Dst: EVP_DigestSignInit
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1286,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1290,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1293,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1295,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1297,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1298,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1300,1
    - Dst: check_output
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1306,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1310,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1311,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1312,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1313,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 77
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct evp_test*
    constantsTouched: []
    func_position:
      end: 1316
      start: 1236
    functionDepth: 4
    functionLinenumber: 1236
    functionLinenumberEnd: 1316
    functionName: mac_test_run
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_DigestSignInit
    - EVP_PKEY_CTX_set_mac_key
    - EVP_MD_CTX_free
    - EVP_PKEY_CTX_free
    - fprintf
    - EVP_PKEY_free
    - EVP_PKEY_CTX_ctrl_str
    - exit
    - check_output
    - EVP_DigestSignUpdate
    - EVP_PKEY_CTX_new_id
    - strstr
    - OPENSSL_free
    - EVP_PKEY_keygen_init
    - EVP_MD_CTX_new
    - EVP_DigestSignFinal
    - EVP_get_digestbyname
    - EVP_PKEY_keygen
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: mac_test_run(struct evp_test *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1363,1
    - Dst: find_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1365,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1371,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1373,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1381,1
    - Dst: keyopinit
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1384,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - t
    - name
    - use_public
    argTypes:
    - struct evp_test*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1387
      start: 1350
    functionDepth: 3
    functionLinenumber: 1350
    functionLinenumberEnd: 1387
    functionName: pkey_test_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - keyopinit
    - find_key
    - OPENSSL_malloc
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: "pkey_test_init(struct evp_test *t, const char *name,\n                          int
      use_public,\n                          int (*keyopinit) (EVP_PKEY_CTX *ctx),\n
      \                         int (*keyop) (EVP_PKEY_CTX *ctx,\n                                        unsigned
      char *sig, size_t *siglen,\n                                        const unsigned
      char *tbs,\n                                        size_t tbslen)\n    )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1393,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1394,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct evp_test*
    constantsTouched: []
    func_position:
      end: 1396
      start: 1389
    functionDepth: 2
    functionLinenumber: 1389
    functionLinenumberEnd: 1396
    functionName: pkey_test_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: pkey_test_cleanup(struct evp_test *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1404,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1407,1
    - Dst: EVP_PKEY_CTX_ctrl_str
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1410,1
    - Dst: OBJ_ln2nid
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1418,1
    - Dst: EVP_get_digestbynid
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1419,1
    - Dst: EVP_get_cipherbynid
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1420,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1428,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - t
    - pctx
    - value
    argTypes:
    - struct evp_test*
    - EVP_PKEY_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 1430
      start: 1398
    functionDepth: 2
    functionLinenumber: 1398
    functionLinenumberEnd: 1430
    functionName: pkey_test_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl_str
    - EVP_get_cipherbynid
    - strchr
    - EVP_get_digestbynid
    - OPENSSL_free
    - OPENSSL_strdup
    - OBJ_ln2nid
    linkageType: ''
    returnType: int
    signature: "pkey_test_ctrl(struct evp_test *t, EVP_PKEY_CTX *pctx,\n                          const
      char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1436,1
    - Dst: test_bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1437,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1438,1
    - Dst: test_bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1439,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1440,1
    - Dst: pkey_test_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1441,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - struct evp_test*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1443
      start: 1432
    functionDepth: 6
    functionLinenumber: 1432
    functionLinenumberEnd: 1443
    functionName: pkey_test_parse
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - test_bin
    - pkey_test_ctrl
    - strcmp
    linkageType: ''
    returnType: int
    signature: "pkey_test_parse(struct evp_test *t,\n                           const
      char *keyword, const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct pkey_data*::keyop
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1451,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1454,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1456,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1457,1
    - Dst: struct pkey_data*::keyop
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1460,1
    - Dst: check_output
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1467,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1471,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct evp_test*
    constantsTouched: []
    func_position:
      end: 1474
      start: 1445
    functionDepth: 2
    functionLinenumber: 1445
    functionLinenumberEnd: 1474
    functionName: pkey_test_run
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - exit
    - check_output
    - struct pkey_data*::keyop
    - fprintf
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: pkey_test_run(struct evp_test *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pkey_test_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - name
    argTypes:
    - struct evp_test*
    - char*
    constantsTouched: []
    func_position:
      end: 1479
      start: 1476
    functionDepth: 4
    functionLinenumber: 1476
    functionLinenumberEnd: 1479
    functionName: sign_test_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - pkey_test_init
    linkageType: ''
    returnType: int
    signature: sign_test_init(struct evp_test *t, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pkey_test_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - name
    argTypes:
    - struct evp_test*
    - char*
    constantsTouched: []
    func_position:
      end: 1493
      start: 1489
    functionDepth: 4
    functionLinenumber: 1489
    functionLinenumberEnd: 1493
    functionName: verify_recover_test_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - pkey_test_init
    linkageType: ''
    returnType: int
    signature: verify_recover_test_init(struct evp_test *t, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pkey_test_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - name
    argTypes:
    - struct evp_test*
    - char*
    constantsTouched: []
    func_position:
      end: 1507
      start: 1503
    functionDepth: 4
    functionLinenumber: 1503
    functionLinenumberEnd: 1507
    functionName: decrypt_test_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - pkey_test_init
    linkageType: ''
    returnType: int
    signature: decrypt_test_init(struct evp_test *t, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pkey_test_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - name
    argTypes:
    - struct evp_test*
    - char*
    constantsTouched: []
    func_position:
      end: 1520
      start: 1517
    functionDepth: 4
    functionLinenumber: 1517
    functionLinenumberEnd: 1520
    functionName: verify_test_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - pkey_test_init
    linkageType: ''
    returnType: int
    signature: verify_test_init(struct evp_test *t, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_verify
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct evp_test*
    constantsTouched: []
    func_position:
      end: 1529
      start: 1522
    functionDepth: 1
    functionLinenumber: 1522
    functionLinenumberEnd: 1529
    functionName: verify_test_run
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_verify
    linkageType: ''
    returnType: int
    signature: verify_test_run(struct evp_test *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pkey_test_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - name
    argTypes:
    - struct evp_test*
    - char*
    constantsTouched: []
    func_position:
      end: 1543
      start: 1540
    functionDepth: 4
    functionLinenumber: 1540
    functionLinenumberEnd: 1543
    functionName: pderive_test_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - pkey_test_init
    linkageType: ''
    returnType: int
    signature: pderive_test_init(struct evp_test *t, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1550,1
    - Dst: find_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1552,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1554,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1558,1
    - Dst: test_bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1559,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1560,1
    - Dst: pkey_test_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1561,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - struct evp_test*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1563
      start: 1545
    functionDepth: 6
    functionLinenumber: 1545
    functionLinenumberEnd: 1563
    functionName: pderive_test_parse
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    - find_key
    - pkey_test_ctrl
    - test_bin
    - EVP_PKEY_derive_set_peer
    linkageType: ''
    returnType: int
    signature: "pderive_test_parse(struct evp_test *t,\n                              const
      char *keyword, const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1573,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1575,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1576,1
    - Dst: EVP_PKEY_derive
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1579,1
    - Dst: check_output
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1585,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1589,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct evp_test*
    constantsTouched: []
    func_position:
      end: 1592
      start: 1565
    functionDepth: 2
    functionLinenumber: 1565
    functionLinenumberEnd: 1592
    functionName: pderive_test_run
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_derive
    - exit
    - check_output
    - fprintf
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: pderive_test_run(struct evp_test *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1638,1
    - Dst: test_uint64
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1639,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1640,1
    - Dst: test_uint64
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1641,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1642,1
    - Dst: test_uint64
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1643,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1644,1
    - Dst: test_uint64
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1645,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - struct evp_test*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1647
      start: 1633
    functionDepth: 1
    functionLinenumber: 1633
    functionLinenumberEnd: 1647
    functionName: scrypt_test_parse
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - test_uint64
    - strcmp
    linkageType: ''
    returnType: int
    signature: "scrypt_test_parse(struct evp_test *t,\n                             const
      char *keyword, const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1655,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1656,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1661,1
    - Dst: EVP_get_digestbyname
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1662,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - struct evp_test*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1668
      start: 1650
    functionDepth: 3
    functionLinenumber: 1650
    functionLinenumberEnd: 1668
    functionName: pbkdf2_test_parse
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_get_digestbyname
    - atoi
    - strcmp
    linkageType: ''
    returnType: int
    signature: "pbkdf2_test_parse(struct evp_test *t,\n                             const
      char *keyword, const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1675,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1676,1
    - Dst: pbkdf2_test_parse
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - struct evp_test*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1682
      start: 1670
    functionDepth: 4
    functionLinenumber: 1670
    functionLinenumberEnd: 1682
    functionName: pkcs12_test_parse
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - atoi
    - pbkdf2_test_parse
    - strcmp
    linkageType: ''
    returnType: int
    signature: "pkcs12_test_parse(struct evp_test *t,\n                             const
      char *keyword, const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1689,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1696,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1698,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1701,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1703,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - t
    - alg
    argTypes:
    - struct evp_test*
    - char*
    constantsTouched: []
    func_position:
      end: 1716
      start: 1684
    functionDepth: 0
    functionLinenumber: 1684
    functionLinenumberEnd: 1716
    functionName: pbe_test_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - fprintf
    - OPENSSL_malloc
    - strcmp
    linkageType: ''
    returnType: int
    signature: pbe_test_init(struct evp_test *t, const char *alg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1721,1
    - Dst: test_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1722,1
    - Dst: test_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct evp_test*
    constantsTouched: []
    func_position:
      end: 1724
      start: 1718
    functionDepth: 1
    functionLinenumber: 1718
    functionLinenumberEnd: 1724
    functionName: pbe_test_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - test_free
    linkageType: ''
    returnType: void
    signature: pbe_test_cleanup(struct evp_test *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1731,1
    - Dst: test_bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1732,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1733,1
    - Dst: test_bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1734,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1735,1
    - Dst: test_bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1736,1
    - Dst: pbkdf2_test_parse
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1738,1
    - Dst: pkcs12_test_parse
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1740,1
    - Dst: scrypt_test_parse
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1743,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - struct evp_test*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1746
      start: 1726
    functionDepth: 6
    functionLinenumber: 1726
    functionLinenumberEnd: 1746
    functionName: pbe_test_parse
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - scrypt_test_parse
    - strcmp
    - pkcs12_test_parse
    - test_bin
    - pbkdf2_test_parse
    linkageType: ''
    returnType: int
    signature: "pbe_test_parse(struct evp_test *t,\n                             const
      char *keyword, const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1754,1
    - Dst: PKCS5_PBKDF2_HMAC
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1759,1
    - Dst: EVP_PBE_scrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1767,1
    - Dst: PKCS12_key_gen_uni
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1775,1
    - Dst: check_output
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1782,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1786,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct evp_test*
    constantsTouched: []
    func_position:
      end: 1789
      start: 1748
    functionDepth: 5
    functionLinenumber: 1748
    functionLinenumberEnd: 1789
    functionName: pbe_test_run
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - PKCS12_key_gen_uni
    - check_output
    - PKCS5_PBKDF2_HMAC
    - OPENSSL_free
    - EVP_PBE_scrypt
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: pbe_test_run(struct evp_test *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1819,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1821,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1823,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1825,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1827,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1831,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - t
    - encoding
    argTypes:
    - struct evp_test*
    - char*
    constantsTouched: []
    func_position:
      end: 1837
      start: 1817
    functionDepth: 0
    functionLinenumber: 1817
    functionLinenumberEnd: 1837
    functionName: encode_test_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - fprintf
    - strcmp
    - OPENSSL_strdup
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: encode_test_init(struct evp_test *t, const char *encoding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1842,1
    - Dst: test_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1843,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct evp_test*
    constantsTouched: []
    func_position:
      end: 1845
      start: 1839
    functionDepth: 1
    functionLinenumber: 1839
    functionLinenumberEnd: 1845
    functionName: encode_test_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - test_free
    - memset
    linkageType: ''
    returnType: void
    signature: encode_test_cleanup(struct evp_test *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1851,1
    - Dst: test_bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1852,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1853,1
    - Dst: test_bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1854,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - struct evp_test*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1856
      start: 1847
    functionDepth: 6
    functionLinenumber: 1847
    functionLinenumberEnd: 1856
    functionName: encode_test_parse
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - test_bin
    - strcmp
    linkageType: ''
    returnType: int
    signature: "encode_test_parse(struct evp_test *t,\n                             const
      char *keyword, const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_ENCODE_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1864,1
    - Dst: EVP_ENCODE_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1870,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1873,1
    - Dst: EVP_ENCODE_LENGTH
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1873,1
    - Dst: EVP_EncodeInit
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1877,1
    - Dst: EVP_EncodeUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1878,1
    - Dst: EVP_EncodeFinal
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1882,1
    - Dst: EVP_ENCODE_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1885,1
    - Dst: check_var_length_output
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1887,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1894,1
    - Dst: EVP_DECODE_LENGTH
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1894,1
    - Dst: EVP_DecodeInit
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1898,1
    - Dst: EVP_DecodeUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1899,1
    - Dst: EVP_DecodeFinal
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1906,1
    - Dst: check_var_length_output
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1913,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1922,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1923,1
    - Dst: EVP_ENCODE_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1924,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct evp_test*
    constantsTouched: []
    func_position:
      end: 1926
      start: 1858
    functionDepth: 3
    functionLinenumber: 1858
    functionLinenumberEnd: 1926
    functionName: encode_test_run
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_DECODE_LENGTH
    - EVP_DecodeUpdate
    - check_var_length_output
    - EVP_ENCODE_LENGTH
    - OPENSSL_malloc
    - EVP_DecodeFinal
    - EVP_EncodeFinal
    - EVP_EncodeUpdate
    - EVP_DecodeInit
    - EVP_ENCODE_CTX_new
    - EVP_ENCODE_CTX_free
    - OPENSSL_free
    - EVP_EncodeInit
    linkageType: ''
    returnType: int
    signature: encode_test_run(struct evp_test *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1954,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1960,1
    - Dst: OBJ_sn2nid
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1960,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1963,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - t
    - name
    argTypes:
    - struct evp_test*
    - char*
    constantsTouched: []
    func_position:
      end: 1966
      start: 1950
    functionDepth: 3
    functionLinenumber: 1950
    functionLinenumberEnd: 1966
    functionName: kdf_test_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_id
    - OPENSSL_malloc
    - OBJ_sn2nid
    - EVP_PKEY_derive_init
    linkageType: ''
    returnType: int
    signature: kdf_test_init(struct evp_test *t, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1971,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct evp_test*
    constantsTouched: []
    func_position:
      end: 1973
      start: 1968
    functionDepth: 2
    functionLinenumber: 1968
    functionLinenumberEnd: 1973
    functionName: kdf_test_cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: kdf_test_cleanup(struct evp_test *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1979,1
    - Dst: test_bin
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1980,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1981,1
    - Dst: pkey_test_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1982,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - t
    - keyword
    - value
    argTypes:
    - struct evp_test*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1984
      start: 1975
    functionDepth: 6
    functionLinenumber: 1975
    functionLinenumberEnd: 1984
    functionName: kdf_test_parse
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - test_bin
    - strncmp
    - pkey_test_ctrl
    - strcmp
    linkageType: ''
    returnType: int
    signature: "kdf_test_parse(struct evp_test *t,\n                          const
      char *keyword, const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1992,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1994,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1995,1
    - Dst: EVP_PKEY_derive
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:1998,1
    - Dst: check_output
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:2004,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c:2008,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct evp_test*
    constantsTouched: []
    func_position:
      end: 2011
      start: 1986
    functionDepth: 2
    functionLinenumber: 1986
    functionLinenumberEnd: 2011
    functionName: kdf_test_run
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_derive
    - exit
    - check_output
    - fprintf
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: kdf_test_run(struct evp_test *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:25,1
    - Dst: strcasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - value
    - result
    argTypes:
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 34
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: parse_boolean
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: parse_boolean(const char *value, int *result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - enums
    - num_enums
    - value
    - name
    argTypes:
    - test_enum*
    - size_t
    - int*
    - char*
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: parse_enum
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: __owur
    signature: "parse_enum(const test_enum *enums, size_t num_enums,\n                             int
      *value, const char *name)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - enums
    - num_enums
    - value
    argTypes:
    - test_enum*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 88
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 88
    functionName: enum_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "*enum_name(const test_enum *enums, size_t num_enums,\n                             int
      value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:103,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: parse_expected_result
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_enum
    - OSSL_NELEM
    linkageType: ''
    returnType: __owur
    signature: parse_expected_result(SSL_TEST_CTX *test_ctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:113,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - ssl_test_result_t
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: ssl_test_result_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - enum_name
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: '*ssl_test_result_name(ssl_test_result_t result)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:128,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - alert
    - value
    argTypes:
    - int*
    - char*
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: parse_alert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_enum
    - OSSL_NELEM
    linkageType: ''
    returnType: __owur
    signature: parse_alert(int *alert, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_alert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: parse_client_alert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_alert
    linkageType: ''
    returnType: __owur
    signature: parse_client_alert(SSL_TEST_CTX *test_ctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_alert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: parse_server_alert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_alert
    linkageType: ''
    returnType: __owur
    signature: parse_server_alert(SSL_TEST_CTX *test_ctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:143,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alert
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: ssl_alert_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - enum_name
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: '*ssl_alert_name(int alert)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:159,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: parse_protocol
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_enum
    - OSSL_NELEM
    linkageType: ''
    returnType: __owur
    signature: parse_protocol(SSL_TEST_CTX *test_ctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:165,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: ssl_protocol_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - enum_name
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: '*ssl_protocol_name(int protocol)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:180,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - client_conf
    - value
    argTypes:
    - SSL_TEST_CLIENT_CONF*
    - char*
    constantsTouched: []
    func_position:
      end: 186
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 186
    functionName: parse_client_verify_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_enum
    - OSSL_NELEM
    linkageType: ''
    returnType: __owur
    signature: "parse_client_verify_callback(SSL_TEST_CLIENT_CONF *client_conf,\n
      \                                              const char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:190,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - callback
    argTypes:
    - ssl_verify_callback_t
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: ssl_verify_callback_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - enum_name
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: '*ssl_verify_callback_name(ssl_verify_callback_t callback)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:207,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - client_conf
    - value
    argTypes:
    - SSL_TEST_CLIENT_CONF*
    - char*
    constantsTouched: []
    func_position:
      end: 213
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 213
    functionName: parse_servername
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_enum
    - OSSL_NELEM
    linkageType: ''
    returnType: __owur
    signature: "parse_servername(SSL_TEST_CLIENT_CONF *client_conf,\n                                   const
      char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:219,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 225
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 225
    functionName: parse_expected_servername
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_enum
    - OSSL_NELEM
    linkageType: ''
    returnType: __owur
    signature: "parse_expected_servername(SSL_TEST_CTX *test_ctx,\n                                            const
      char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:229,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - server
    argTypes:
    - ssl_servername_t
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: ssl_servername_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - enum_name
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: '*ssl_servername_name(ssl_servername_t server)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:245,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - server_conf
    - value
    argTypes:
    - SSL_TEST_SERVER_CONF*
    - char*
    constantsTouched: []
    func_position:
      end: 251
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 251
    functionName: parse_servername_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_enum
    - OSSL_NELEM
    linkageType: ''
    returnType: __owur
    signature: "parse_servername_callback(SSL_TEST_SERVER_CONF *server_conf,\n                                            const
      char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:255,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - callback
    argTypes:
    - ssl_servername_callback_t
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 257
    functionName: ssl_servername_callback_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - enum_name
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: '*ssl_servername_callback_name(ssl_servername_callback_t callback)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:270,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 276
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 276
    functionName: parse_session_ticket
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_enum
    - OSSL_NELEM
    linkageType: ''
    returnType: __owur
    signature: parse_session_ticket(SSL_TEST_CTX *test_ctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:280,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - server
    argTypes:
    - ssl_session_ticket_t
    constantsTouched: []
    func_position:
      end: 283
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 283
    functionName: ssl_session_ticket_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - enum_name
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: '*ssl_session_ticket_name(ssl_session_ticket_t server)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:295,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 301
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 301
    functionName: parse_test_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_enum
    - OSSL_NELEM
    linkageType: ''
    returnType: __owur
    signature: parse_test_method(SSL_TEST_CTX *test_ctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:305,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - method
    argTypes:
    - ssl_test_method_t
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: ssl_test_method_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - enum_name
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: '*ssl_test_method_name(ssl_test_method_t method)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:329,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 335
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 335
    functionName: parse_handshake_mode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_enum
    - OSSL_NELEM
    linkageType: ''
    returnType: __owur
    signature: parse_handshake_mode(SSL_TEST_CTX *test_ctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:339,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - ssl_handshake_mode_t
    constantsTouched: []
    func_position:
      end: 341
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 341
    functionName: ssl_handshake_mode_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - enum_name
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: '*ssl_handshake_mode_name(ssl_handshake_mode_t mode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:359,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - client_conf
    - value
    argTypes:
    - SSL_TEST_CLIENT_CONF*
    - char*
    constantsTouched: []
    func_position:
      end: 365
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 365
    functionName: parse_ct_validation
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_enum
    - OSSL_NELEM
    linkageType: ''
    returnType: __owur
    signature: "parse_ct_validation(SSL_TEST_CLIENT_CONF *client_conf,\n                                      const
      char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:369,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - ssl_ct_validation_t
    constantsTouched: []
    func_position:
      end: 371
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 371
    functionName: ssl_ct_validation_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - enum_name
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: '*ssl_ct_validation_name(ssl_ct_validation_t mode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_enum
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:388,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - server_conf
    - value
    argTypes:
    - SSL_TEST_SERVER_CONF*
    - char*
    constantsTouched: []
    func_position:
      end: 394
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 394
    functionName: parse_certstatus
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - parse_enum
    - OSSL_NELEM
    linkageType: ''
    returnType: __owur
    signature: "parse_certstatus(SSL_TEST_SERVER_CONF *server_conf,\n                                            const
      char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enum_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:398,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cert_status
    argTypes:
    - ssl_cert_status_t
    constantsTouched: []
    func_position:
      end: 400
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 400
    functionName: ssl_certstatus_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - enum_name
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: '*ssl_certstatus_name(ssl_cert_status_t cert_status)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_sn2nid
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:421,1
    - Dst: OBJ_ln2nid
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:423,1
    - Dst: EC_curve_nist2nid
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:426,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - test_ctx
    - value
    argTypes:
    - SSL_TEST_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 432
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 432
    functionName: parse_expected_tmp_key_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OBJ_ln2nid
    - EC_curve_nist2nid
    - OBJ_sn2nid
    linkageType: ''
    returnType: __owur
    signature: "parse_expected_tmp_key_type(SSL_TEST_CTX *test_ctx,\n                                              const
      char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:495,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 500
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 500
    functionName: SSL_TEST_CTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - TEST_check
    - OPENSSL_zalloc
    linkageType: ''
    returnType: SSL_TEST_CTX
    signature: '*SSL_TEST_CTX_new()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:504,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:505,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:506,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:507,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:508,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - conf
    argTypes:
    - SSL_TEST_EXTRA_CONF*
    constantsTouched: []
    func_position:
      end: 510
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 510
    functionName: ssl_test_extra_conf_free_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: ssl_test_extra_conf_free_data(SSL_TEST_EXTRA_CONF *conf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_test_extra_conf_free_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:514,1
    - Dst: ssl_test_extra_conf_free_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_TEST_CTX*
    constantsTouched: []
    func_position:
      end: 516
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 516
    functionName: ssl_test_ctx_free_extra_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - ssl_test_extra_conf_free_data
    linkageType: ''
    returnType: void
    signature: ssl_test_ctx_free_extra_data(SSL_TEST_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_test_ctx_free_extra_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:520,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:521,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:522,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_TEST_CTX*
    constantsTouched: []
    func_position:
      end: 524
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 524
    functionName: SSL_TEST_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ssl_test_ctx_free_extra_data
    linkageType: ''
    returnType: void
    signature: SSL_TEST_CTX_free(SSL_TEST_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:529,1
    - Dst: NCONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:533,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:534,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:536,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:538,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:539,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:540,1
    - Dst: parse
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:541,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:542,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:551,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - client
    - conf
    - client_section
    argTypes:
    - SSL_TEST_CLIENT_CONF*
    - CONF*
    - char*
    constantsTouched: []
    func_position:
      end: 557
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 557
    functionName: parse_client_options
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - strcmp
    - STACK_OF
    - sk_CONF_VALUE_num
    - parse
    - NCONF_get_section
    - fprintf
    - OSSL_NELEM
    - TEST_check
    linkageType: ''
    returnType: int
    signature: "parse_client_options(SSL_TEST_CLIENT_CONF *client, const CONF *conf,\n
      \                               const char *client_section)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:562,1
    - Dst: NCONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:566,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:567,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:569,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:571,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:572,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:573,1
    - Dst: parse
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:574,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:575,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:584,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - server
    - conf
    - server_section
    argTypes:
    - SSL_TEST_SERVER_CONF*
    - CONF*
    - char*
    constantsTouched: []
    func_position:
      end: 590
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 590
    functionName: parse_server_options
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - strcmp
    - STACK_OF
    - sk_CONF_VALUE_num
    - parse
    - NCONF_get_section
    - fprintf
    - OSSL_NELEM
    - TEST_check
    linkageType: ''
    returnType: int
    signature: "parse_server_options(SSL_TEST_SERVER_CONF *server, const CONF *conf,\n
      \                               const char *server_section)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:594,1
    - Dst: NCONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:599,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:600,1
    - Dst: SSL_TEST_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:602,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:603,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:605,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:607,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:610,1
    - Dst: parse_client_options
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:611,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:614,1
    - Dst: parse_server_options
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:615,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:618,1
    - Dst: parse_server_options
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:619,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:622,1
    - Dst: parse_client_options
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:623,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:626,1
    - Dst: parse_server_options
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:627,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:630,1
    - Dst: parse_server_options
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:631,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:636,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:637,1
    - Dst: parse
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:638,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:639,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:648,1
    - Dst: SSL_TEST_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c:657,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 64
    argCount: 2
    argNames:
    - conf
    - test_section
    argTypes:
    - CONF*
    - char*
    constantsTouched: []
    func_position:
      end: 661
      start: 592
    functionDepth: 3
    functionLinenumber: 592
    functionLinenumberEnd: 661
    functionName: SSL_TEST_CTX_create
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - parse_client_options
    - strcmp
    - STACK_OF
    - SSL_TEST_CTX_new
    - SSL_TEST_CTX_free
    - parse_server_options
    - sk_CONF_VALUE_num
    - parse
    - NCONF_get_section
    - fprintf
    - OSSL_NELEM
    - TEST_check
    linkageType: ''
    returnType: SSL_TEST_CTX
    signature: '*SSL_TEST_CTX_create(const CONF *conf, const char *test_section)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: save_errno
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/danetest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: save_errno(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: restore_errno
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/danetest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: restore_errno(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: test_usage
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/danetest.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: test_usage(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_error_line_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:66,1
    - Dst: ERR_error_string_n
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:67,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:69,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: print_errors
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/danetest.c
    functionUses: 12
    functionsReached:
    - fprintf
    - ERR_get_error_line_data
    - ERR_error_string_n
    linkageType: ''
    returnType: void
    signature: print_errors(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:119,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:122,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:123,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:124,1
    - Dst: PEM_read_bio
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:129,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:133,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:134,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:135,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:136,1
    - Dst: d
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:138,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:142,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:143,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:147,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:154,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:155,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:156,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:160,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:165,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:171,1
    - Dst: print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:172,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 2
    argNames:
    - fp
    - nelem
    argTypes:
    - BIO*
    - int
    constantsTouched: []
    func_position:
      end: 174
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 174
    functionName: load_chain
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/danetest.c
    functionUses: 0
    functionsReached:
    - exit
    - print_errors
    - strcmp
    - STACK_OF
    - d
    - sk_X509_pop_free
    - perror
    - PEM_read_bio
    - sk_X509_push
    - fprintf
    - OPENSSL_free
    - sk_X509_new_null
    - ERR_clear_error
    linkageType: ''
    returnType: STACK_OF
    signature: '*load_chain(BIO *fp, int nelem)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:181,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:184,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:188,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:190,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:196,1
    - Dst: _UC
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:196,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - f
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 200
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 200
    functionName: read_to_eol
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/danetest.c
    functionUses: 0
    functionsReached:
    - isspace
    - BIO_gets
    - strlen
    - _UC
    - fprintf
    linkageType: ''
    returnType: char
    signature: '*read_to_eol(BIO *f)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:219,1
    - Dst: _UC
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:219,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:221,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:223,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:235,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - in
    - result
    argTypes:
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 240
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 240
    functionName: hexdecode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/danetest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_hexchar2int
    - OPENSSL_free
    - _UC
    - isspace
    linkageType: ''
    returnType: ossl_ssize_t
    signature: hexdecode(const char *in, void *result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: save_errno
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:250,1
    - Dst: strtol
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:251,1
    - Dst: restore_errno
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:252,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:255,1
    - Dst: _UC
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:255,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:259,1
    - Dst: _UC
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:259,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 262
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 262
    functionName: checked_uint8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/danetest.c
    functionUses: 0
    functionsReached:
    - isspace
    - restore_errno
    - _UC
    - strtol
    - save_errno
    linkageType: ''
    returnType: ossl_ssize_t
    signature: checked_uint8(const char *in, void *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct tlsa_field*::parser
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:289,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:290,1
    - Dst: SSL_dane_tlsa_add
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:295,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:296,1
    - Dst: print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:299,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:300,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:305,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ssl
    - rrdata
    argTypes:
    - SSL*
    - char*
    constantsTouched: []
    func_position:
      end: 310
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 310
    functionName: tlsa_import_rr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/danetest.c
    functionUses: 0
    functionsReached:
    - print_errors
    - SSL_dane_tlsa_add
    - fprintf
    - OPENSSL_free
    - struct tlsa_field*::parser
    linkageType: ''
    returnType: int
    signature: tlsa_import_rr(SSL *ssl, const char *rrdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:315,1
    - Dst: _UC
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - cp
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 318
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 318
    functionName: allws
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/danetest.c
    functionUses: 0
    functionsReached:
    - _UC
    - isspace
    linkageType: ''
    returnType: int
    signature: allws(const char *cp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_to_eol
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:328,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:329,1
    - Dst: sscanf
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:345,1
    - Dst: allws
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:347,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:348,1
    - Dst: SSL_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:353,1
    - Dst: SSL_set_connect_state
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:355,1
    - Dst: SSL_dane_enable
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:356,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:357,1
    - Dst: SSL_dane_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:361,1
    - Dst: read_to_eol
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:364,1
    - Dst: tlsa_import_rr
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:364,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:365,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:371,1
    - Dst: load_chain
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:372,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:374,1
    - Dst: verify_chain
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:378,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:379,1
    - Dst: SSL_get_verify_result
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:380,1
    - Dst: SSL_set_verify_result
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:386,1
    - Dst: SSL_get0_dane_authority
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:387,1
    - Dst: SSL_set_verify_result
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:389,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:390,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:394,1
    - Dst: print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:396,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:403,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:404,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:406,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:409,1
    - Dst: print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:412,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:417,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:420,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:422,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 64
    argCount: 4
    argNames:
    - ctx
    - basename
    - f
    - path
    argTypes:
    - SSL_CTX*
    - char*
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 425
      start: 320
    functionDepth: 4
    functionLinenumber: 320
    functionLinenumberEnd: 425
    functionName: test_tlsafile
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/danetest.c
    functionUses: 0
    functionsReached:
    - read_to_eol
    - sk_X509_pop_free
    - SSL_new
    - verify_chain
    - fprintf
    - tlsa_import_rr
    - print_errors
    - SSL_free
    - SSL_set_verify_result
    - allws
    - SSL_dane_enable
    - SSL_get0_dane_authority
    - SSL_set_connect_state
    - X509_verify_cert_error_string
    - ERR_clear_error
    - SSL_get_verify_result
    - sscanf
    - STACK_OF
    - SSL_dane_set_flags
    - load_chain
    linkageType: ''
    returnType: int
    signature: "test_tlsafile(SSL_CTX *ctx, const char *basename,\n                         BIO
      *f, const char *path)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_usage
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:440,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:441,1
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:447,1
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:449,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:450,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:451,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:452,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:454,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:456,1
    - Dst: strerror
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:457,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:458,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:461,1
    - Dst: TLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:461,1
    - Dst: SSL_CTX_dane_enable
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:462,1
    - Dst: print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:463,1
    - Dst: SSL_CTX_load_verify_locations
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:466,1
    - Dst: print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:467,1
    - Dst: SSL_CTX_dane_mtype_set
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:470,1
    - Dst: EVP_sha512
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:470,1
    - Dst: print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:471,1
    - Dst: SSL_CTX_dane_mtype_set
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:474,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:474,1
    - Dst: print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:475,1
    - Dst: test_tlsafile
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:479,1
    - Dst: print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:480,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:488,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:489,1
    - Dst: CRYPTO_mem_leaks
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:492,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:495,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:496,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 497
      start: 427
    functionDepth: 5
    functionLinenumber: 427
    functionLinenumberEnd: 497
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/danetest.c
    functionUses: 22
    functionsReached:
    - BIO_new_file
    - fprintf
    - print_errors
    - SSL_CTX_dane_enable
    - BIO_free
    - TLS_client_method
    - CRYPTO_set_mem_debug
    - SSL_CTX_new
    - CRYPTO_mem_leaks
    - EVP_sha256
    - getenv
    - BIO_new_fp
    - test_tlsafile
    - EXIT
    - strerror
    - SSL_CTX_free
    - EVP_sha512
    - strcmp
    - CRYPTO_mem_ctrl
    - test_usage
    - SSL_CTX_dane_mtype_set
    - SSL_CTX_load_verify_locations
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_set0_dane
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:503,1
    - Dst: SSL_get0_dane
      Src: /src/openweave-core/third_party/openssl/openssl/test/danetest.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - store_ctx
    - ssl
    argTypes:
    - X509_STORE_CTX*
    - SSL*
    constantsTouched: []
    func_position:
      end: 504
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 504
    functionName: store_ctx_dane_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/danetest.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_set0_dane
    - SSL_get0_dane
    linkageType: ''
    returnType: void
    signature: store_ctx_dane_init(X509_STORE_CTX *store_ctx, SSL *ssl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - c
    argTypes:
    - RSA*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 92
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 92
    functionName: key1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: key1(RSA *key, unsigned char *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - c
    argTypes:
    - RSA*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 137
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 137
    functionName: key2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: key2(RSA *key, unsigned char *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - c
    argTypes:
    - RSA*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 209
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 209
    functionName: key3
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: key3(RSA *key, unsigned char *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:214,1
    - Dst: ERR_GET_REASON
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: pad_unknown
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c
    functionUses: 0
    functionsReached:
    - ERR_get_error
    - ERR_GET_REASON
    linkageType: ''
    returnType: int
    signature: pad_unknown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:237,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:238,1
    - Dst: RAND_seed
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:240,1
    - Dst: RSA_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:245,1
    - Dst: key1
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:248,1
    - Dst: key2
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:251,1
    - Dst: key3
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:254,1
    - Dst: RSA_public_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:258,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:261,1
    - Dst: RSA_private_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:266,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:267,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:268,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:271,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:274,1
    - Dst: RSA_public_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:275,1
    - Dst: pad_unknown
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:277,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:278,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:282,1
    - Dst: RSA_private_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:287,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:289,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:290,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:292,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:293,1
    - Dst: RSA_private_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:300,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:303,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:304,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:307,1
    - Dst: RSA_private_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:312,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:315,1
    - Dst: RSA_private_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:324,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:327,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:334,1
    - Dst: CRYPTO_mem_leaks_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c:338,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 84
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 343
      start: 223
    functionDepth: 6
    functionLinenumber: 223
    functionLinenumberEnd: 343
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c
    functionUses: 22
    functionsReached:
    - RSA_private_decrypt
    - key2
    - key3
    - memcmp
    - CRYPTO_mem_ctrl
    - RAND_seed
    - key1
    - RSA_new
    - RSA_public_encrypt
    - printf
    - pad_unknown
    - RSA_free
    - CRYPTO_mem_leaks_fp
    - CRYPTO_set_mem_debug
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_pause_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: only_pause
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c
    functionUses: 0
    functionsReached:
    - ASYNC_pause_job
    linkageType: ''
    returnType: int
    signature: only_pause(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_pause_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: add_two
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c
    functionUses: 0
    functionsReached:
    - ASYNC_pause_job
    linkageType: ''
    returnType: int
    signature: add_two(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_get_current_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:41,1
    - Dst: ASYNC_pause_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 4
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: save_current
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c
    functionUses: 0
    functionsReached:
    - ASYNC_pause_job
    - ASYNC_get_current_job
    linkageType: ''
    returnType: int
    signature: save_current(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_get_current_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:52,1
    - Dst: ASYNC_get_wait_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:55,1
    - Dst: ASYNC_pause_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:60,1
    - Dst: ASYNC_WAIT_CTX_set_wait_fd
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:63,1
    - Dst: ASYNC_pause_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:65,1
    - Dst: ASYNC_WAIT_CTX_clear_fd
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:68,1
    - Dst: ASYNC_pause_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:70,1
    - Dst: ASYNC_WAIT_CTX_set_wait_fd
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:73,1
    - Dst: ASYNC_WAIT_CTX_clear_fd
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:75,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 79
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 79
    functionName: waitfd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c
    functionUses: 0
    functionsReached:
    - ASYNC_pause_job
    - ASYNC_WAIT_CTX_clear_fd
    - ASYNC_get_current_job
    - ASYNC_WAIT_CTX_set_wait_fd
    - ASYNC_get_wait_ctx
    linkageType: ''
    returnType: int
    signature: waitfd(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_block_pause
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:83,1
    - Dst: ASYNC_pause_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:84,1
    - Dst: ASYNC_unblock_pause
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:85,1
    - Dst: ASYNC_pause_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: blockpause
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c
    functionUses: 0
    functionsReached:
    - ASYNC_pause_job
    - ASYNC_unblock_pause
    - ASYNC_block_pause
    linkageType: ''
    returnType: int
    signature: blockpause(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_init_thread
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:97,1
    - Dst: ASYNC_WAIT_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:98,1
    - Dst: ASYNC_start_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:99,1
    - Dst: ASYNC_start_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:101,1
    - Dst: ASYNC_start_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:103,1
    - Dst: ASYNC_start_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:105,1
    - Dst: ASYNC_start_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:107,1
    - Dst: ASYNC_start_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:109,1
    - Dst: ASYNC_start_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:111,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:116,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:117,1
    - Dst: ASYNC_cleanup_thread
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:118,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:122,1
    - Dst: ASYNC_cleanup_thread
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:123,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 91
    functionDepth: 6
    functionLinenumber: 91
    functionLinenumberEnd: 125
    functionName: test_ASYNC_init_thread
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c
    functionUses: 0
    functionsReached:
    - ASYNC_init_thread
    - ASYNC_WAIT_CTX_new
    - ASYNC_cleanup_thread
    - ASYNC_WAIT_CTX_free
    - ASYNC_start_job
    - fprintf
    linkageType: ''
    returnType: int
    signature: test_ASYNC_init_thread()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_init_thread
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:135,1
    - Dst: ASYNC_WAIT_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:136,1
    - Dst: ASYNC_start_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:137,1
    - Dst: ASYNC_start_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:140,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:144,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:145,1
    - Dst: ASYNC_cleanup_thread
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:146,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:150,1
    - Dst: ASYNC_cleanup_thread
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:151,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 127
    functionDepth: 6
    functionLinenumber: 127
    functionLinenumberEnd: 153
    functionName: test_ASYNC_start_job
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c
    functionUses: 0
    functionsReached:
    - ASYNC_init_thread
    - ASYNC_WAIT_CTX_new
    - ASYNC_cleanup_thread
    - ASYNC_WAIT_CTX_free
    - ASYNC_start_job
    - fprintf
    linkageType: ''
    returnType: int
    signature: test_ASYNC_start_job()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_init_thread
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:163,1
    - Dst: ASYNC_WAIT_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:164,1
    - Dst: ASYNC_start_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:165,1
    - Dst: ASYNC_start_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:168,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:171,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:172,1
    - Dst: ASYNC_cleanup_thread
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:173,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:177,1
    - Dst: ASYNC_cleanup_thread
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:178,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 155
    functionDepth: 6
    functionLinenumber: 155
    functionLinenumberEnd: 180
    functionName: test_ASYNC_get_current_job
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c
    functionUses: 0
    functionsReached:
    - ASYNC_init_thread
    - ASYNC_WAIT_CTX_new
    - ASYNC_cleanup_thread
    - ASYNC_WAIT_CTX_free
    - ASYNC_start_job
    - fprintf
    linkageType: ''
    returnType: int
    signature: test_ASYNC_get_current_job()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_init_thread
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:190,1
    - Dst: ASYNC_WAIT_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:191,1
    - Dst: ASYNC_start_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:193,1
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:195,1
    - Dst: ASYNC_WAIT_CTX_get_changed_fds
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:197,1
    - Dst: ASYNC_start_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:202,1
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:204,1
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:206,1
    - Dst: ASYNC_WAIT_CTX_get_changed_fds
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:209,1
    - Dst: ASYNC_WAIT_CTX_get_changed_fds
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:213,1
    - Dst: ASYNC_start_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:217,1
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:219,1
    - Dst: ASYNC_WAIT_CTX_get_changed_fds
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:221,1
    - Dst: ASYNC_WAIT_CTX_get_changed_fds
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:225,1
    - Dst: ASYNC_start_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:229,1
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:231,1
    - Dst: ASYNC_WAIT_CTX_get_changed_fds
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:233,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:238,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:239,1
    - Dst: ASYNC_cleanup_thread
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:240,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:244,1
    - Dst: ASYNC_cleanup_thread
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:245,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 247
      start: 182
    functionDepth: 6
    functionLinenumber: 182
    functionLinenumberEnd: 247
    functionName: test_ASYNC_WAIT_CTX_get_all_fds
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c
    functionUses: 0
    functionsReached:
    - ASYNC_init_thread
    - ASYNC_WAIT_CTX_new
    - ASYNC_cleanup_thread
    - ASYNC_WAIT_CTX_free
    - ASYNC_start_job
    - ASYNC_WAIT_CTX_get_all_fds
    - fprintf
    - ASYNC_WAIT_CTX_get_changed_fds
    linkageType: ''
    returnType: int
    signature: test_ASYNC_WAIT_CTX_get_all_fds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_init_thread
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:255,1
    - Dst: ASYNC_WAIT_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:256,1
    - Dst: ASYNC_start_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:257,1
    - Dst: ASYNC_start_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:259,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:262,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:263,1
    - Dst: ASYNC_cleanup_thread
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:264,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:268,1
    - Dst: ASYNC_cleanup_thread
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:269,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 271
      start: 249
    functionDepth: 6
    functionLinenumber: 249
    functionLinenumberEnd: 271
    functionName: test_ASYNC_block_pause
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c
    functionUses: 0
    functionsReached:
    - ASYNC_init_thread
    - ASYNC_WAIT_CTX_new
    - ASYNC_cleanup_thread
    - ASYNC_WAIT_CTX_free
    - ASYNC_start_job
    - fprintf
    linkageType: ''
    returnType: int
    signature: test_ASYNC_block_pause()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_is_capable
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:275,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:276,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:279,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:280,1
    - Dst: test_ASYNC_init_thread
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:282,1
    - Dst: test_ASYNC_start_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:283,1
    - Dst: test_ASYNC_get_current_job
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:284,1
    - Dst: test_ASYNC_WAIT_CTX_get_all_fds
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:285,1
    - Dst: test_ASYNC_block_pause
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:286,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c:290,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 292
      start: 273
    functionDepth: 7
    functionLinenumber: 273
    functionLinenumberEnd: 292
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c
    functionUses: 22
    functionsReached:
    - test_ASYNC_start_job
    - ASYNC_is_capable
    - CRYPTO_mem_ctrl
    - test_ASYNC_WAIT_CTX_get_all_fds
    - test_ASYNC_block_pause
    - printf
    - test_ASYNC_get_current_job
    - test_ASYNC_init_thread
    - fprintf
    - CRYPTO_set_mem_debug
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:84,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:86,1
    - Dst: EVP_sha512
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:86,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:88,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:89,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:90,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:93,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:94,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:96,1
    - Dst: EVP_sha512
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:99,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:101,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:102,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:103,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:106,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:107,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:109,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:111,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:112,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:115,1
    - Dst: EVP_sha512
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:115,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:118,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:130,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:132,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:134,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:135,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:136,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:139,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:140,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:142,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:143,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:145,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:147,1
    - Dst: EVP_sha384
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:147,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:149,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:150,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:151,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:154,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:155,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:157,1
    - Dst: EVP_sha384
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:160,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:162,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:163,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:164,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:167,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:168,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:170,1
    - Dst: EVP_sha384
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:170,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:173,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:178,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:180,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:182,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:183,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:184,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:187,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:188,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:190,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:191,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:196,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c:197,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 97
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 199
      start: 78
    functionDepth: 5
    functionLinenumber: 78
    functionLinenumberEnd: 199
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c
    functionUses: 22
    functionsReached:
    - EVP_Digest
    - EVP_sha512
    - EVP_DigestFinal_ex
    - memcmp
    - EVP_sha384
    - EVP_DigestUpdate
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - EVP_MD_CTX_reset
    - fprintf
    - fflush
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/test/randtest.c:31,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/randtest.c:33,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/randtest.c:81,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/randtest.c:84,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/randtest.c:92,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/randtest.c:95,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/randtest.c:100,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/randtest.c:105,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/randtest.c:110,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/randtest.c:115,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/randtest.c:120,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/randtest.c:125,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/randtest.c:130,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/randtest.c:134,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/randtest.c:138,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/randtest.c:141,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/randtest.c:144,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 96
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 145
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 145
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/randtest.c
    functionUses: 22
    functionsReached:
    - RAND_bytes
    - EXIT
    - printf
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - test_case_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: set_up
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: SSL_TEST_FIXTURE
    signature: set_up(const char *const test_case_name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_alert_desc_string_long
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alert
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: print_alert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - SSL_alert_desc_string_long
    linkageType: ''
    returnType: char
    signature: '*print_alert(int alert)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:46,1
    - Dst: ssl_test_result_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:47,1
    - Dst: ssl_test_result_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: check_result
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - fprintf
    - ssl_test_result_name
    linkageType: ''
    returnType: int
    signature: check_result(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:57,1
    - Dst: print_alert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:58,1
    - Dst: print_alert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:59,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:75,1
    - Dst: print_alert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:76,1
    - Dst: print_alert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:77,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:89,1
    - Dst: print_alert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:90,1
    - Dst: print_alert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:91,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:97,1
    - Dst: print_alert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:98,1
    - Dst: print_alert
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:99,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:104,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:109,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    constantsTouched: []
    func_position:
      end: 114
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 114
    functionName: check_alerts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - print_alert
    - fprintf
    linkageType: ''
    returnType: int
    signature: check_alerts(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:119,1
    - Dst: ssl_protocol_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:120,1
    - Dst: ssl_protocol_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:121,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:127,1
    - Dst: ssl_protocol_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:128,1
    - Dst: ssl_protocol_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    constantsTouched: []
    func_position:
      end: 134
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 134
    functionName: check_protocol
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - fprintf
    - ssl_protocol_name
    linkageType: ''
    returnType: int
    signature: check_protocol(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:139,1
    - Dst: ssl_servername_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:140,1
    - Dst: ssl_servername_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    constantsTouched: []
    func_position:
      end: 145
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 145
    functionName: check_servername
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - ssl_servername_name
    - fprintf
    linkageType: ''
    returnType: int
    signature: check_servername(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:152,1
    - Dst: ssl_session_ticket_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:153,1
    - Dst: ssl_session_ticket_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    constantsTouched: []
    func_position:
      end: 158
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 158
    functionName: check_session_ticket
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - fprintf
    - ssl_session_ticket_name
    linkageType: ''
    returnType: int
    signature: check_session_ticket(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strings_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:164,1
    - Dst: strings_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: check_npn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - strings_equal
    linkageType: ''
    returnType: int
    signature: check_npn(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strings_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:177,1
    - Dst: strings_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    constantsTouched: []
    func_position:
      end: 184
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 184
    functionName: check_alpn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - strings_equal
    linkageType: ''
    returnType: int
    signature: check_alpn(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:189,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    constantsTouched: []
    func_position:
      end: 199
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 199
    functionName: check_resumption
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: check_resumption(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:206,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:207,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    constantsTouched: []
    func_position:
      end: 210
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 210
    functionName: check_tmp_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - fprintf
    - OBJ_nid2ln
    linkageType: ''
    returnType: int
    signature: check_tmp_key(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_result
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:220,1
    - Dst: check_alerts
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:221,1
    - Dst: check_protocol
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:223,1
    - Dst: check_servername
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:224,1
    - Dst: check_session_ticket
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:225,1
    - Dst: check_npn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:228,1
    - Dst: check_alpn
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:230,1
    - Dst: check_resumption
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:231,1
    - Dst: check_tmp_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - result
    - test_ctx
    argTypes:
    - HANDSHAKE_RESULT*
    - SSL_TEST_CTX*
    constantsTouched: []
    func_position:
      end: 235
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 235
    functionName: check_test
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - check_servername
    - check_tmp_key
    - check_alerts
    - check_result
    - check_alpn
    - check_resumption
    - check_session_ticket
    - check_protocol
    - check_npn
    linkageType: ''
    returnType: int
    signature: check_test(HANDSHAKE_RESULT *result, SSL_TEST_CTX *test_ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TEST_CTX_create
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:245,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:251,1
    - Dst: DTLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:251,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:254,1
    - Dst: DTLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:254,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:255,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:257,1
    - Dst: DTLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:257,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:259,1
    - Dst: DTLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:259,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:260,1
    - Dst: DTLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:260,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:261,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:262,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:267,1
    - Dst: TLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:267,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:271,1
    - Dst: TLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:271,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:272,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:274,1
    - Dst: TLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:274,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:277,1
    - Dst: TLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:277,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:278,1
    - Dst: TLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:278,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:279,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:280,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:284,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:285,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:287,1
    - Dst: CONF_modules_load
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:287,1
    - Dst: SSL_CTX_config
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:289,1
    - Dst: SSL_CTX_config
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:290,1
    - Dst: SSL_CTX_config
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:294,1
    - Dst: SSL_CTX_config
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:297,1
    - Dst: SSL_CTX_config
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:300,1
    - Dst: do_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:303,1
    - Dst: check_test
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:306,1
    - Dst: CONF_modules_unload
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:309,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:310,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:311,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:312,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:313,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:314,1
    - Dst: SSL_TEST_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:315,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:317,1
    - Dst: HANDSHAKE_RESULT_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:318,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - SSL_TEST_FIXTURE
    constantsTouched: []
    func_position:
      end: 320
      start: 237
    functionDepth: 5
    functionLinenumber: 237
    functionLinenumberEnd: 320
    functionName: execute_test
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - DTLS_client_method
    - TLS_server_method
    - CONF_modules_load
    - HANDSHAKE_RESULT_free
    - SSL_CTX_free
    - SSL_TEST_CTX_free
    - ERR_print_errors_fp
    - check_test
    - CONF_modules_unload
    - TLS_client_method
    - do_handshake
    - DTLS_server_method
    - SSL_CTX_config
    - SSL_TEST_CTX_create
    - SSL_CTX_new
    - TEST_check
    linkageType: ''
    returnType: int
    signature: execute_test(SSL_TEST_FIXTURE fixture)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - SSL_TEST_FIXTURE
    constantsTouched: []
    func_position:
      end: 324
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 324
    functionName: tear_down
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: tear_down(SSL_TEST_FIXTURE fixture)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_SSL_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:333,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:334,1
    - Dst: EXECUTE_SSL_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 337
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 337
    functionName: test_handshake
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c
    functionUses: 0
    functionsReached:
    - SETUP_SSL_TEST_FIXTURE
    - EXECUTE_SSL_TEST
    - BIO_snprintf
    linkageType: ''
    returnType: int
    signature: test_handshake(int idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:347,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:348,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:351,1
    - Dst: NCONF_load
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:351,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:353,1
    - Dst: NCONF_get_number_e
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:353,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:355,1
    - Dst: run_tests
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 359
      start: 339
    functionDepth: 3
    functionLinenumber: 339
    functionLinenumberEnd: 359
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c
    functionUses: 22
    functionsReached:
    - NCONF_load
    - run_tests
    - NCONF_get_number_e
    - ADD_ALL_TESTS
    - NCONF_new
    - TEST_check
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:94,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:98,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:99,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:100,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:101,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:105,1
    - Dst: HMAC
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:105,1
    - Dst: EVP_md5
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:105,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:110,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:111,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:112,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:115,1
    - Dst: HMAC_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:120,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:122,1
    - Dst: HMAC_CTX_get_md
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:126,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:127,1
    - Dst: HMAC_Init_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:131,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:132,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:136,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:137,1
    - Dst: HMAC_Init_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:141,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:141,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:142,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:146,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:147,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:151,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:154,1
    - Dst: HMAC
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:154,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:154,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:156,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:157,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:158,1
    - Dst: HMAC_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:162,1
    - Dst: HMAC_CTX_get_md
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:163,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:164,1
    - Dst: HMAC_Init_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:168,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:169,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:173,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:174,1
    - Dst: HMAC_Init_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:178,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:178,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:179,1
    - Dst: HMAC_Init_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:183,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:183,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:184,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:188,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:189,1
    - Dst: HMAC_Final
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:193,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:194,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:198,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:199,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:200,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:201,1
    - Dst: HMAC_Init_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:205,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:205,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:206,1
    - Dst: HMAC_Init_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:210,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:210,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:211,1
    - Dst: HMAC_CTX_get_md
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:215,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:215,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:216,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:220,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:221,1
    - Dst: HMAC_Final
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:225,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:226,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:230,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:231,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:232,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:233,1
    - Dst: HMAC_Init_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:237,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:238,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:242,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:243,1
    - Dst: HMAC_Final
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:247,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:248,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:252,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:253,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:254,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:255,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:258,1
    - Dst: HMAC_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:261,1
    - Dst: HMAC_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:262,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:264,1
    - Dst: HMAC_Init_ex
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:268,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:268,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:269,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:273,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:274,1
    - Dst: HMAC_CTX_copy
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:278,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:279,1
    - Dst: HMAC_Final
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:283,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:284,1
    - Dst: pt
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:288,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:289,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:290,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:291,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:294,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:297,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:298,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:299,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 223
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 300
      start: 82
    functionDepth: 6
    functionLinenumber: 82
    functionLinenumberEnd: 300
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c
    functionUses: 22
    functionsReached:
    - EVP_sha1
    - strcmp
    - HMAC_CTX_get_md
    - HMAC
    - HMAC_Update
    - pt
    - EVP_sha256
    - HMAC_CTX_new
    - HMAC_Final
    - printf
    - HMAC_Init_ex
    - HMAC_CTX_reset
    - EVP_md5
    - HMAC_CTX_copy
    - HMAC_CTX_free
    - EXIT
    - ebcdic2ascii
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - md
    - len
    argTypes:
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 311
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 311
    functionName: pt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c
    functionUses: 239
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: char
    signature: '*pt(unsigned char *md, unsigned int len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:16,1
    - Dst: BIO_test_flags
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:18,1
    - Dst: BIO_clear_flags
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:19,1
    - Dst: BIO_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 21
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 21
    functionName: copy_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c
    functionUses: 2
    functionsReached:
    - BIO_clear_flags
    - BIO_test_flags
    - BIO_set_flags
    - BIO_next
    linkageType: ''
    returnType: void
    signature: copy_flags(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:26,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:28,1
    - Dst: copy_flags
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - bio
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 32
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: tls_corrupt_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c
    functionUses: 0
    functionsReached:
    - copy_flags
    - BIO_read
    - BIO_next
    linkageType: ''
    returnType: int
    signature: tls_corrupt_read(BIO *bio, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:37,1
    - Dst: BUF_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:41,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:42,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:45,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:46,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:48,1
    - Dst: copy_flags
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - bio
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 53
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 53
    functionName: tls_corrupt_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c
    functionUses: 0
    functionsReached:
    - copy_flags
    - BUF_memdup
    - BIO_next
    - OPENSSL_free
    - BIO_write
    - TEST_check
    linkageType: ''
    returnType: int
    signature: tls_corrupt_write(BIO *bio, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:58,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - bio
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 72
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 72
    functionName: tls_corrupt_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - BIO_next
    linkageType: ''
    returnType: long
    signature: tls_corrupt_ctrl(BIO *bio, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bio
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: tls_corrupt_gets
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: tls_corrupt_gets(BIO *bio, char *buf, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: tls_corrupt_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: tls_corrupt_puts(BIO *bio, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: tls_corrupt_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: tls_corrupt_new(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: tls_corrupt_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: tls_corrupt_free(BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:108,1
    - Dst: BIO_meth_set_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:111,1
    - Dst: BIO_meth_set_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:112,1
    - Dst: BIO_meth_set_puts
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:113,1
    - Dst: BIO_meth_set_gets
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:114,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:115,1
    - Dst: BIO_meth_set_create
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:116,1
    - Dst: BIO_meth_set_destroy
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:117,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 121
    functionName: bio_f_tls_corrupt_filter
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c
    functionUses: 0
    functionsReached:
    - BIO_meth_set_ctrl
    - BIO_meth_new
    - BIO_meth_set_gets
    - BIO_meth_set_destroy
    - BIO_meth_set_puts
    - BIO_meth_set_write
    - BIO_meth_set_read
    - BIO_meth_set_create
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*bio_f_tls_corrupt_filter(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: bio_f_tls_corrupt_filter_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c
    functionUses: 0
    functionsReached:
    - BIO_meth_free
    linkageType: ''
    returnType: void
    signature: bio_f_tls_corrupt_filter_free(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:144,1
    - Dst: TLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:144,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:145,1
    - Dst: SSL_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:146,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:147,1
    - Dst: SSL_get1_supported_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:148,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:149,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:156,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:156,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:158,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:160,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:161,1
    - Dst: SSL_CIPHER_get_auth_nid
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:163,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:164,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:166,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:168,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:169,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 173
    functionName: setup_cipher_list
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - SSL_get1_supported_ciphers
    - sk_SSL_CIPHER_num
    - SSL_CIPHER_get_name
    - SSL_new
    - sk_SSL_CIPHER_value
    - SSL_CIPHER_get_auth_nid
    - SSL_free
    - SSL_CTX_free
    - OPENSSL_malloc
    - SSL_CTX_new
    - sk_SSL_CIPHER_free
    - TEST_check
    linkageType: ''
    returnType: int
    signature: setup_cipher_list()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:186,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:188,1
    - Dst: TLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:188,1
    - Dst: TLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:188,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:190,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:194,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:195,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:199,1
    - Dst: bio_f_tls_corrupt_filter
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:199,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:201,1
    - Dst: create_ssl_objects
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:206,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:208,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:209,1
    - Dst: create_ssl_connection
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:213,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:214,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:215,1
    - Dst: SSL_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:219,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:220,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:221,1
    - Dst: SSL_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:225,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:226,1
    - Dst: ERR_GET_REASON
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:230,1
    - Dst: ERR_peek_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:230,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:232,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:238,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:239,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:240,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:241,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 1
    argNames:
    - testidx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 244
      start: 178
    functionDepth: 5
    functionLinenumber: 178
    functionLinenumberEnd: 244
    functionName: test_ssl_corrupt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - SSL_write
    - SSL_CTX_free
    - ERR_print_errors_fp
    - create_ssl_ctx_pair
    - printf
    - create_ssl_objects
    - TLS_client_method
    - bio_f_tls_corrupt_filter
    - SSL_read
    - ERR_peek_error
    - SSL_CTX_set_cipher_list
    - BIO_new
    - SSL_free
    - ERR_GET_REASON
    - create_ssl_connection
    linkageType: ''
    returnType: int
    signature: test_ssl_corrupt(int testidx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:252,1
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:259,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:261,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:262,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:264,1
    - Dst: setup_cipher_list
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:264,1
    - Dst: run_tests
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:266,1
    - Dst: bio_f_tls_corrupt_filter_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:268,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:270,1
    - Dst: CRYPTO_mem_leaks
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:273,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:276,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 282
      start: 246
    functionDepth: 4
    functionLinenumber: 246
    functionLinenumberEnd: 282
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c
    functionUses: 22
    functionsReached:
    - setup_cipher_list
    - CRYPTO_mem_leaks
    - run_tests
    - CRYPTO_mem_ctrl
    - BIO_new_fp
    - BIO_free
    - printf
    - bio_f_tls_corrupt_filter_free
    - ADD_ALL_TESTS
    - OPENSSL_free
    - CRYPTO_set_mem_debug
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:21,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: HANDSHAKE_RESULT_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - TEST_check
    - OPENSSL_zalloc
    linkageType: ''
    returnType: HANDSHAKE_RESULT
    signature: '*HANDSHAKE_RESULT_new()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:30,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:31,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:32,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:33,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - result
    argTypes:
    - HANDSHAKE_RESULT*
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: HANDSHAKE_RESULT_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: HANDSHAKE_RESULT_free(HANDSHAKE_RESULT *result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:60,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx_data
    argTypes:
    - CTX_DATA*
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: ctx_data_free_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: ctx_data_free_data(CTX_DATA *ctx_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:72,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:75,1
    - Dst: SSL_alert_type_string
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:75,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:76,1
    - Dst: SSL_alert_desc_string
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - s
    - where
    - ret
    argTypes:
    - SSL*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 82
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 82
    functionName: info_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - SSL_alert_desc_string
    - SSL_alert_type_string
    - SSL_get_ex_data
    - strcmp
    linkageType: ''
    returnType: void
    signature: info_cb(const SSL *s, int where, int ret)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:94,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:101,1
    - Dst: SSL_set_SSL_CTX
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:103,1
    - Dst: SSL_clear_options
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:109,1
    - Dst: SSL_set_options
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:110,1
    - Dst: SSL_CTX_get_options
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:110,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - s
    - arg
    - ignore
    argTypes:
    - SSL*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 124
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 124
    functionName: select_server_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - strcmp
    - SSL_set_options
    - SSL_CTX_get_options
    - SSL_get_ex_data
    - SSL_set_SSL_CTX
    - SSL_clear_options
    linkageType: ''
    returnType: int
    signature: select_server_ctx(SSL *s, void *arg, int ignore)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: select_server_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - ad
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: servername_ignore_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - select_server_ctx
    linkageType: ''
    returnType: int
    signature: servername_ignore_cb(SSL *s, int *ad, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: select_server_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - ad
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: servername_reject_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - select_server_ctx
    linkageType: ''
    returnType: int
    signature: servername_reject_cb(SSL *s, int *ad, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:154,1
    - Dst: SSL_set_tlsext_status_ocsp_resp
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    constantsTouched: []
    func_position:
      end: 165
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 165
    functionName: server_ocsp_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - SSL_set_tlsext_status_ocsp_resp
    linkageType: ''
    returnType: int
    signature: server_ocsp_cb(SSL *s, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_tlsext_status_ocsp_resp
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    constantsTouched: []
    func_position:
      end: 177
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 177
    functionName: client_ocsp_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - SSL_get_tlsext_status_ocsp_resp
    linkageType: ''
    returnType: int
    signature: client_ocsp_cb(SSL *s, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - arg
    argTypes:
    - X509_STORE_CTX*
    - void*
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: verify_reject_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_set_error
    linkageType: ''
    returnType: int
    signature: verify_reject_cb(X509_STORE_CTX *ctx, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - arg
    argTypes:
    - X509_STORE_CTX*
    - void*
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: verify_accept_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: verify_accept_cb(X509_STORE_CTX *ctx, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - s
    - key_name
    - iv
    - ctx
    - hctx
    - enc
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned char*
    - EVP_CIPHER_CTX*
    - HMAC_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: broken_session_ticket_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "broken_session_ticket_cb(SSL *s, unsigned char *key_name, unsigned
      char *iv,\n                                    EVP_CIPHER_CTX *ctx, HMAC_CTX
      *hctx, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - s
    - key_name
    - iv
    - ctx
    - hctx
    - enc
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned char*
    - EVP_CIPHER_CTX*
    - HMAC_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 203
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 203
    functionName: do_not_call_session_ticket_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - SSL_get_ex_data
    linkageType: ''
    returnType: int
    signature: "do_not_call_session_ticket_cb(SSL *s, unsigned char *key_name,\n                                         unsigned
      char *iv,\n                                         EVP_CIPHER_CTX *ctx,\n                                         HMAC_CTX
      *hctx, int enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:210,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:213,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:216,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:217,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:224,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:230,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - protos
    - out
    - outlen
    argTypes:
    - char*
    - unsigned char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 238
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 238
    functionName: parse_protos
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    - OPENSSL_malloc
    - TEST_check
    linkageType: ''
    returnType: void
    signature: parse_protos(const char *protos, unsigned char **out, size_t *outlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_select_next_proto
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:254,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - s
    - out
    - outlen
    - in
    - inlen
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - void*
    constantsTouched: []
    func_position:
      end: 260
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 260
    functionName: client_npn_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - TEST_check
    - SSL_select_next_proto
    linkageType: ''
    returnType: int
    signature: "client_npn_cb(SSL *s, unsigned char **out, unsigned char *outlen,\n
      \                        const unsigned char *in, unsigned int inlen,\n                         void
      *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - s
    - data
    - len
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned int*
    - void*
    constantsTouched: []
    func_position:
      end: 269
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 269
    functionName: server_npn_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "server_npn_cb(SSL *s, const unsigned char **data,\n                         unsigned
      int *len, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_select_next_proto
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - s
    - out
    - outlen
    - in
    - inlen
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - void*
    constantsTouched: []
    func_position:
      end: 301
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 301
    functionName: server_alpn_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - SSL_select_next_proto
    linkageType: ''
    returnType: int
    signature: "server_alpn_cb(SSL *s, const unsigned char **out,\n                          unsigned
      char *outlen, const unsigned char *in,\n                          unsigned int
      inlen, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:318,1
    - Dst: SSL_CTX_set_max_send_fragment
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:318,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:321,1
    - Dst: SSL_CTX_set_max_send_fragment
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:321,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:324,1
    - Dst: SSL_CTX_set_max_send_fragment
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:324,1
    - Dst: SSL_CTX_set_cert_verify_callback
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:329,1
    - Dst: SSL_CTX_set_cert_verify_callback
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:333,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:343,1
    - Dst: SSL_CTX_set_tlsext_servername_arg
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:344,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:347,1
    - Dst: SSL_CTX_set_tlsext_servername_arg
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:348,1
    - Dst: SSL_CTX_set_tlsext_status_type
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:355,1
    - Dst: SSL_CTX_set_tlsext_status_cb
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:356,1
    - Dst: SSL_CTX_set_tlsext_status_arg
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:357,1
    - Dst: SSL_CTX_set_tlsext_status_cb
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:358,1
    - Dst: SSL_CTX_set_tlsext_status_arg
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:359,1
    - Dst: SSL_CTX_set_tlsext_ticket_key_cb
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:370,1
    - Dst: SSL_CTX_set_tlsext_ticket_key_cb
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:374,1
    - Dst: parse_protos
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:378,1
    - Dst: SSL_CTX_set_next_protos_advertised_cb
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:381,1
    - Dst: parse_protos
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:385,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:388,1
    - Dst: SSL_CTX_set_next_protos_advertised_cb
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:389,1
    - Dst: parse_protos
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:393,1
    - Dst: SSL_CTX_set_next_proto_select_cb
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:396,1
    - Dst: parse_protos
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:401,1
    - Dst: SSL_CTX_set_alpn_select_cb
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:404,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:407,1
    - Dst: parse_protos
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:408,1
    - Dst: SSL_CTX_set_alpn_select_cb
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:411,1
    - Dst: parse_protos
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:416,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:419,1
    - Dst: SSL_CTX_set_alpn_protos
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:419,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:421,1
    - Dst: SSL_CTX_set_tlsext_ticket_keys
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:428,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:429,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:430,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:431,1
    - Dst: SSL_CTX_set_tlsext_ticket_keys
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:431,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:433,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:437,1
    - Dst: SSL_CTX_set_default_ctlog_list_file
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:437,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:440,1
    - Dst: SSL_CTX_enable_ct
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:440,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:443,1
    - Dst: SSL_CTX_enable_ct
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:443,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 83
    argCount: 8
    argNames:
    - server_ctx
    - server2_ctx
    - client_ctx
    - test
    - extra
    - server_ctx_data
    - server2_ctx_data
    - client_ctx_data
    argTypes:
    - SSL_CTX*
    - SSL_CTX*
    - SSL_CTX*
    - SSL_TEST_CTX*
    - SSL_TEST_EXTRA_CONF*
    - CTX_DATA*
    - CTX_DATA*
    - CTX_DATA*
    constantsTouched: []
    func_position:
      end: 449
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 449
    functionName: configure_handshake_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_cert_verify_callback
    - SSL_CTX_enable_ct
    - OPENSSL_zalloc
    - SSL_CTX_set_alpn_select_cb
    - SSL_CTX_set_alpn_protos
    - SSL_CTX_set_tlsext_status_type
    - SSL_CTX_set_tlsext_status_arg
    - SSL_CTX_set_next_protos_advertised_cb
    - SSL_CTX_set_tlsext_servername_arg
    - parse_protos
    - SSL_CTX_set_next_proto_select_cb
    - SSL_CTX_set_tlsext_servername_callback
    - OPENSSL_free
    - SSL_CTX_set_default_ctlog_list_file
    - SSL_CTX_set_max_send_fragment
    - SSL_CTX_set_tlsext_status_cb
    - SSL_CTX_set_tlsext_ticket_key_cb
    - SSL_CTX_set_tlsext_ticket_keys
    - TEST_check
    linkageType: ''
    returnType: void
    signature: "configure_handshake_ctx(SSL_CTX *server_ctx, SSL_CTX *server2_ctx,\n
      \                                   SSL_CTX *client_ctx,\n                                    const
      SSL_TEST_CTX *test,\n                                    const SSL_TEST_EXTRA_CONF
      *extra,\n                                    CTX_DATA *server_ctx_data,\n                                    CTX_DATA
      *server2_ctx_data,\n                                    CTX_DATA *client_ctx_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:456,1
    - Dst: ssl_servername_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - server
    - client
    - extra
    argTypes:
    - SSL*
    - SSL*
    - SSL_TEST_EXTRA_CONF*
    constantsTouched: []
    func_position:
      end: 458
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 458
    functionName: configure_handshake_ssl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - ssl_servername_name
    - SSL_set_tlsext_host_name
    linkageType: ''
    returnType: void
    signature: "configure_handshake_ssl(SSL *server, SSL *client,\n                                    const
      SSL_TEST_EXTRA_CONF *extra)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:484,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:485,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:486,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:487,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:488,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - peer
    - ctx
    argTypes:
    - PEER*
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 491
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 491
    functionName: create_peer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    - SSL_new
    - TEST_check
    linkageType: ''
    returnType: void
    signature: create_peer(PEER *peer, SSL_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:495,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:496,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - peer
    argTypes:
    - PEER*
    constantsTouched: []
    func_position:
      end: 498
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 498
    functionName: peer_free_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - SSL_free
    linkageType: ''
    returnType: void
    signature: peer_free_data(PEER *peer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:508,1
    - Dst: SSL_do_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - peer
    argTypes:
    - PEER*
    constantsTouched: []
    func_position:
      end: 521
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 521
    functionName: do_handshake_step
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - SSL_do_handshake
    - TEST_check
    linkageType: ''
    returnType: void
    signature: do_handshake_step(PEER *peer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:536,1
    - Dst: SSL_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:540,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:542,1
    - Dst: SSL_write
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:560,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:563,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - peer
    argTypes:
    - PEER*
    constantsTouched: []
    func_position:
      end: 584
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 584
    functionName: do_app_data_step
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - SSL_write
    - SSL_read
    - TEST_check
    linkageType: ''
    returnType: void
    signature: do_app_data_step(PEER *peer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:591,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:592,1
    - Dst: SSL_is_server
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:597,1
    - Dst: SSL_is_server
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:599,1
    - Dst: SSL_renegotiate_pending
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:604,1
    - Dst: SSL_is_server
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:610,1
    - Dst: SSL_renegotiate
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:611,1
    - Dst: SSL_set_cipher_list
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:614,1
    - Dst: SSL_renegotiate
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:619,1
    - Dst: SSL_renegotiate_abbreviated
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:621,1
    - Dst: do_handshake_step
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:628,1
    - Dst: SSL_read
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:652,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:667,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 2
    argNames:
    - test_ctx
    - peer
    argTypes:
    - SSL_TEST_CTX*
    - PEER*
    constantsTouched: []
    func_position:
      end: 672
      start: 586
    functionDepth: 2
    functionLinenumber: 586
    functionLinenumberEnd: 672
    functionName: do_reneg_setup_step
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - SSL_is_server
    - SSL_set_cipher_list
    - SSL_renegotiate
    - do_handshake_step
    - SSL_in_init
    - SSL_renegotiate_abbreviated
    - SSL_read
    - SSL_renegotiate_pending
    - TEST_check
    linkageType: ''
    returnType: void
    signature: do_reneg_setup_step(const SSL_TEST_CTX *test_ctx, PEER *peer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:694,1
    - Dst: SSL_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:695,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - peer
    argTypes:
    - PEER*
    constantsTouched: []
    func_position:
      end: 705
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 705
    functionName: do_shutdown_step
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - SSL_shutdown
    - TEST_check
    linkageType: ''
    returnType: void
    signature: do_shutdown_step(PEER *peer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:737,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - test_ctx
    - phase
    argTypes:
    - SSL_TEST_CTX*
    - connect_phase_t
    constantsTouched: []
    func_position:
      end: 739
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 739
    functionName: next_phase
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - TEST_check
    linkageType: ''
    returnType: connect_phase_t
    signature: "next_phase(const SSL_TEST_CTX *test_ctx,\n                                  connect_phase_t
      phase)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_handshake_step
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:746,1
    - Dst: do_app_data_step
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:749,1
    - Dst: do_reneg_setup_step
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:752,1
    - Dst: do_handshake_step
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:755,1
    - Dst: do_app_data_step
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:758,1
    - Dst: do_shutdown_step
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:761,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:764,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - test_ctx
    - peer
    - phase
    argTypes:
    - SSL_TEST_CTX*
    - PEER*
    - connect_phase_t
    constantsTouched: []
    func_position:
      end: 766
      start: 741
    functionDepth: 3
    functionLinenumber: 741
    functionLinenumberEnd: 766
    functionName: do_connect_step
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - do_shutdown_step
    - do_handshake_step
    - do_reneg_setup_step
    - do_app_data_step
    - TEST_check
    linkageType: ''
    returnType: void
    signature: "do_connect_step(const SSL_TEST_CTX *test_ctx, PEER *peer,\n                            connect_phase_t
      phase)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 3
    argNames:
    - last_status
    - previous_status
    - client_spoke_last
    argTypes:
    - peer_status_t
    - peer_status_t
    - int
    constantsTouched: []
    func_position:
      end: 840
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 840
    functionName: handshake_status
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: handshake_status_t
    signature: "handshake_status(peer_status_t last_status,\n                                           peer_status_t
      previous_status,\n                                           int client_spoke_last)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:851,1
    - Dst: OPENSSL_strnlen
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:851,1
    - Dst: OPENSSL_strndup
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:852,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:853,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - in
    - len
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 855
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 855
    functionName: dup_str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strnlen
    - OPENSSL_strndup
    - TEST_check
    linkageType: ''
    returnType: char
    signature: '*dup_str(const unsigned char *in, size_t len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HANDSHAKE_RESULT_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:879,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:891,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:892,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:893,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:894,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:895,1
    - Dst: configure_handshake_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:897,1
    - Dst: create_peer
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:901,1
    - Dst: create_peer
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:902,1
    - Dst: configure_handshake_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:907,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:910,1
    - Dst: SSL_CTX_add_session
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:910,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:911,1
    - Dst: SSL_set_session
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:911,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:914,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:915,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:919,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:919,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:920,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:920,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:922,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:923,1
    - Dst: BIO_set_nbio
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:926,1
    - Dst: BIO_set_nbio
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:927,1
    - Dst: SSL_set_connect_state
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:929,1
    - Dst: SSL_set_accept_state
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:930,1
    - Dst: SSL_set_bio
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:933,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:934,1
    - Dst: BIO_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:934,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:935,1
    - Dst: BIO_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:935,1
    - Dst: SSL_set_bio
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:936,1
    - Dst: SSL_get_ex_new_index
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:938,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:939,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:941,1
    - Dst: SSL_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:941,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:942,1
    - Dst: SSL_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:942,1
    - Dst: SSL_set_info_callback
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:944,1
    - Dst: SSL_set_info_callback
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:945,1
    - Dst: do_connect_step
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:959,1
    - Dst: handshake_status
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:960,1
    - Dst: do_connect_step
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:963,1
    - Dst: handshake_status
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:964,1
    - Dst: next_phase
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:971,1
    - Dst: SSL_version
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1018,1
    - Dst: SSL_version
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1019,1
    - Dst: SSL_get0_session
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1021,1
    - Dst: SSL_SESSION_get0_ticket
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1022,1
    - Dst: SSL_get0_next_proto_negotiated
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1030,1
    - Dst: dup_str
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1031,1
    - Dst: SSL_get0_next_proto_negotiated
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1033,1
    - Dst: dup_str
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1034,1
    - Dst: SSL_get0_alpn_selected
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1037,1
    - Dst: dup_str
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1038,1
    - Dst: SSL_get0_alpn_selected
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1040,1
    - Dst: dup_str
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1041,1
    - Dst: SSL_session_reused
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1043,1
    - Dst: SSL_session_reused
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1044,1
    - Dst: SSL_get1_session
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1047,1
    - Dst: SSL_get_server_tmp_key
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1049,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1054,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1055,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1055,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1058,1
    - Dst: ctx_data_free_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1062,1
    - Dst: ctx_data_free_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1063,1
    - Dst: ctx_data_free_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1064,1
    - Dst: peer_free_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1066,1
    - Dst: peer_free_data
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1067,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 123
    argCount: 7
    argNames:
    - server_ctx
    - server2_ctx
    - client_ctx
    - test_ctx
    - extra
    - session_in
    - session_out
    argTypes:
    - SSL_CTX*
    - SSL_CTX*
    - SSL_CTX*
    - SSL_TEST_CTX*
    - SSL_TEST_EXTRA_CONF*
    - SSL_SESSION*
    - SSL_SESSION**
    constantsTouched: []
    func_position:
      end: 1069
      start: 870
    functionDepth: 4
    functionLinenumber: 870
    functionLinenumberEnd: 1069
    functionName: do_handshake_internal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 0
    functionsReached:
    - SSL_get_ex_new_index
    - BIO_set_nbio
    - SSL_set_info_callback
    - SSL_get_server_tmp_key
    - configure_handshake_ssl
    - BIO_s_mem
    - SSL_session_reused
    - EVP_PKEY_free
    - EVP_PKEY_get0_EC_KEY
    - SSL_set_bio
    - next_phase
    - peer_free_data
    - SSL_get0_alpn_selected
    - BIO_new
    - SSL_set_session
    - create_peer
    - SSL_SESSION_get0_ticket
    - memset
    - SSL_get0_next_proto_negotiated
    - SSL_set_connect_state
    - EC_KEY_get0_group
    - dup_str
    - SSL_CTX_add_session
    - BIO_up_ref
    - EC_GROUP_get_curve_name
    - SSL_get0_session
    - SSL_set_accept_state
    - handshake_status
    - SSL_version
    - HANDSHAKE_RESULT_new
    - do_connect_step
    - ctx_data_free_data
    - SSL_set_ex_data
    - configure_handshake_ctx
    - SSL_get1_session
    - TEST_check
    linkageType: ''
    returnType: HANDSHAKE_RESULT
    signature: "*do_handshake_internal(\n    SSL_CTX *server_ctx, SSL_CTX *server2_ctx,
      SSL_CTX *client_ctx,\n    const SSL_TEST_CTX *test_ctx, const SSL_TEST_EXTRA_CONF
      *extra,\n    SSL_SESSION *session_in, SSL_SESSION **session_out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_handshake_internal
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1079,1
    - Dst: HANDSHAKE_RESULT_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1090,1
    - Dst: do_handshake_internal
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1092,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c:1096,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 6
    argNames:
    - server_ctx
    - server2_ctx
    - client_ctx
    - resume_server_ctx
    - resume_client_ctx
    - test_ctx
    argTypes:
    - SSL_CTX*
    - SSL_CTX*
    - SSL_CTX*
    - SSL_CTX*
    - SSL_CTX*
    - SSL_TEST_CTX*
    constantsTouched: []
    func_position:
      end: 1098
      start: 1071
    functionDepth: 5
    functionLinenumber: 1071
    functionLinenumberEnd: 1098
    functionName: do_handshake
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
    functionUses: 4
    functionsReached:
    - SSL_SESSION_free
    - do_handshake_internal
    - HANDSHAKE_RESULT_free
    linkageType: ''
    returnType: HANDSHAKE_RESULT
    signature: "*do_handshake(SSL_CTX *server_ctx, SSL_CTX *server2_ctx,\n                               SSL_CTX
      *client_ctx, SSL_CTX *resume_server_ctx,\n                               SSL_CTX
      *resume_client_ctx,\n                               const SSL_TEST_CTX *test_ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:40,1
    - Dst: ssl_verify_callback_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:41,1
    - Dst: ssl_verify_callback_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:42,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:46,1
    - Dst: ssl_servername_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:47,1
    - Dst: ssl_servername_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:48,1
    - Dst: strings_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:51,1
    - Dst: strings_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:54,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:58,1
    - Dst: ssl_ct_validation_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:59,1
    - Dst: ssl_ct_validation_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:60,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - client
    - client2
    argTypes:
    - SSL_TEST_CLIENT_CONF*
    - SSL_TEST_CLIENT_CONF*
    constantsTouched: []
    func_position:
      end: 64
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 64
    functionName: SSL_TEST_CLIENT_CONF_equal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c
    functionUses: 0
    functionsReached:
    - ssl_verify_callback_name
    - ssl_ct_validation_name
    - strings_equal
    - ssl_servername_name
    - fprintf
    linkageType: ''
    returnType: int
    signature: "SSL_TEST_CLIENT_CONF_equal(SSL_TEST_CLIENT_CONF *client,\n                                      SSL_TEST_CLIENT_CONF
      *client2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:70,1
    - Dst: ssl_servername_callback_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:71,1
    - Dst: ssl_servername_callback_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:72,1
    - Dst: strings_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:75,1
    - Dst: strings_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:78,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:82,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:87,1
    - Dst: ssl_certstatus_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:88,1
    - Dst: ssl_certstatus_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:89,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - server
    - server2
    argTypes:
    - SSL_TEST_SERVER_CONF*
    - SSL_TEST_SERVER_CONF*
    constantsTouched: []
    func_position:
      end: 93
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 93
    functionName: SSL_TEST_SERVER_CONF_equal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c
    functionUses: 0
    functionsReached:
    - fprintf
    - ssl_servername_callback_name
    - strings_equal
    - ssl_certstatus_name
    linkageType: ''
    returnType: int
    signature: "SSL_TEST_SERVER_CONF_equal(SSL_TEST_SERVER_CONF *server,\n                                      SSL_TEST_SERVER_CONF
      *server2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TEST_CLIENT_CONF_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:98,1
    - Dst: SSL_TEST_SERVER_CONF_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:99,1
    - Dst: SSL_TEST_SERVER_CONF_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - extra
    - extra2
    argTypes:
    - SSL_TEST_EXTRA_CONF*
    - SSL_TEST_EXTRA_CONF*
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: SSL_TEST_EXTRA_CONF_equal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c
    functionUses: 0
    functionsReached:
    - SSL_TEST_SERVER_CONF_equal
    - SSL_TEST_CLIENT_CONF_equal
    linkageType: ''
    returnType: int
    signature: "SSL_TEST_EXTRA_CONF_equal(SSL_TEST_EXTRA_CONF *extra,\n                                     SSL_TEST_EXTRA_CONF
      *extra2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:107,1
    - Dst: ssl_test_method_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:108,1
    - Dst: ssl_test_method_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:109,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:113,1
    - Dst: ssl_handshake_mode_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:114,1
    - Dst: ssl_handshake_mode_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:115,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:119,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:125,1
    - Dst: SSL_TEST_EXTRA_CONF_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:130,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:131,1
    - Dst: SSL_TEST_EXTRA_CONF_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:134,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:135,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:140,1
    - Dst: ssl_test_result_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:141,1
    - Dst: ssl_test_result_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:142,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:146,1
    - Dst: ssl_alert_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:147,1
    - Dst: ssl_alert_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:148,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:152,1
    - Dst: ssl_alert_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:153,1
    - Dst: ssl_alert_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:154,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:158,1
    - Dst: ssl_protocol_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:159,1
    - Dst: ssl_protocol_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:160,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:164,1
    - Dst: ssl_servername_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:165,1
    - Dst: ssl_servername_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:166,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:170,1
    - Dst: ssl_session_ticket_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:171,1
    - Dst: ssl_session_ticket_name
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:172,1
    - Dst: strings_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:175,1
    - Dst: strings_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:178,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:182,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 2
    argNames:
    - ctx
    - ctx2
    argTypes:
    - SSL_TEST_CTX*
    - SSL_TEST_CTX*
    constantsTouched: []
    func_position:
      end: 187
      start: 104
    functionDepth: 4
    functionLinenumber: 104
    functionLinenumberEnd: 187
    functionName: SSL_TEST_CTX_equal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c
    functionUses: 0
    functionsReached:
    - ssl_session_ticket_name
    - ssl_handshake_mode_name
    - ssl_test_method_name
    - ssl_protocol_name
    - strings_equal
    - SSL_TEST_EXTRA_CONF_equal
    - ssl_servername_name
    - fprintf
    - ssl_test_result_name
    - ssl_alert_name
    linkageType: ''
    returnType: int
    signature: SSL_TEST_CTX_equal(SSL_TEST_CTX *ctx, SSL_TEST_CTX *ctx2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TEST_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:193,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - test_case_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 196
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 196
    functionName: set_up
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c
    functionUses: 13
    functionsReached:
    - SSL_TEST_CTX_new
    - TEST_check
    linkageType: ''
    returnType: SSL_TEST_CTX_TEST_FIXTURE
    signature: set_up(const char *const test_case_name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TEST_CTX_create
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:202,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:205,1
    - Dst: SSL_TEST_CTX_equal
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:210,1
    - Dst: SSL_TEST_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - SSL_TEST_CTX_TEST_FIXTURE
    constantsTouched: []
    func_position:
      end: 217
      start: 198
    functionDepth: 5
    functionLinenumber: 198
    functionLinenumberEnd: 217
    functionName: execute_test
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SSL_TEST_CTX_free
    - SSL_TEST_CTX_create
    - SSL_TEST_CTX_equal
    linkageType: ''
    returnType: int
    signature: execute_test(SSL_TEST_CTX_TEST_FIXTURE fixture)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TEST_CTX_create
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:221,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:224,1
    - Dst: SSL_TEST_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - SSL_TEST_CTX_TEST_FIXTURE
    constantsTouched: []
    func_position:
      end: 231
      start: 219
    functionDepth: 4
    functionLinenumber: 219
    functionLinenumberEnd: 231
    functionName: execute_failure_test
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SSL_TEST_CTX_free
    - SSL_TEST_CTX_create
    linkageType: ''
    returnType: int
    signature: execute_failure_test(SSL_TEST_CTX_TEST_FIXTURE fixture)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TEST_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:235,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - SSL_TEST_CTX_TEST_FIXTURE
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 5
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: tear_down
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c
    functionUses: 1
    functionsReached:
    - SSL_TEST_CTX_free
    - ERR_print_errors_fp
    linkageType: ''
    returnType: void
    signature: tear_down(SSL_TEST_CTX_TEST_FIXTURE fixture)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_SSL_TEST_CTX_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:248,1
    - Dst: EXECUTE_SSL_TEST_CTX_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 252
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 252
    functionName: test_empty_configuration
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c
    functionUses: 0
    functionsReached:
    - SETUP_SSL_TEST_CTX_TEST_FIXTURE
    - EXECUTE_SSL_TEST_CTX_TEST
    linkageType: ''
    returnType: int
    signature: test_empty_configuration()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_SSL_TEST_CTX_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:256,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:275,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:276,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:283,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:284,1
    - Dst: EXECUTE_SSL_TEST_CTX_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 291
    functionName: test_good_configuration
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c
    functionUses: 0
    functionsReached:
    - SETUP_SSL_TEST_CTX_TEST_FIXTURE
    - EXECUTE_SSL_TEST_CTX_TEST
    - OPENSSL_strdup
    - TEST_check
    linkageType: ''
    returnType: int
    signature: test_good_configuration()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_SSL_TEST_CTX_TEST_FIXTURE
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:311,1
    - Dst: EXECUTE_SSL_TEST_CTX_FAILURE_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 314
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 314
    functionName: test_bad_configuration
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c
    functionUses: 0
    functionsReached:
    - SETUP_SSL_TEST_CTX_TEST_FIXTURE
    - EXECUTE_SSL_TEST_CTX_FAILURE_TEST
    linkageType: ''
    returnType: int
    signature: test_bad_configuration(int idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_new
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:323,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:324,1
    - Dst: TEST_check
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:327,1
    - Dst: NCONF_load
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:327,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:329,1
    - Dst: ADD_TEST
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:330,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:331,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:331,1
    - Dst: run_tests
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:333,1
    - Dst: NCONF_free
      Src: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 338
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 338
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c
    functionUses: 22
    functionsReached:
    - NCONF_load
    - run_tests
    - ADD_ALL_TESTS
    - NCONF_new
    - OSSL_NELEM
    - NCONF_free
    - ADD_TEST
    - TEST_check
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c:25,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c:26,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c:28,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c:29,1
    - Dst: fopen
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c:30,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c:31,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c:32,1
    - Dst: PEM_read_X509
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c:34,1
    - Dst: rewind
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c:35,1
    - Dst: PEM_read_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c:36,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c:37,1
    - Dst: PKCS12_create
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c:38,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c:40,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c:41,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c:42,1
    - Dst: fopen
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c:44,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c:45,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c:46,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c:47,1
    - Dst: i2d_PKCS12_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c:49,1
    - Dst: PKCS12_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c:50,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 53
      start: 18
    functionDepth: 5
    functionLinenumber: 18
    functionLinenumberEnd: 53
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c
    functionUses: 22
    functionsReached:
    - PKCS12_free
    - PEM_read_X509
    - exit
    - PKCS12_create
    - ERR_print_errors_fp
    - rewind
    - OpenSSL_add_all_algorithms
    - PEM_read_PrivateKey
    - fclose
    - i2d_PKCS12_fp
    - fprintf
    - fopen
    - ERR_load_crypto_strings
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:23,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:27,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:28,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:30,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:31,1
    - Dst: fopen
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:32,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:33,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:34,1
    - Dst: d2i_PKCS12_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:36,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:37,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:39,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:40,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:41,1
    - Dst: PKCS12_parse
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:43,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:44,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:45,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:46,1
    - Dst: PKCS12_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:48,1
    - Dst: fopen
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:49,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:50,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:51,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:54,1
    - Dst: PEM_write_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:55,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:58,1
    - Dst: PEM_write_X509_AUX
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:59,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:61,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:62,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:63,1
    - Dst: PEM_write_X509_AUX
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:64,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:64,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c:66,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 68
      start: 18
    functionDepth: 5
    functionLinenumber: 18
    functionLinenumberEnd: 68
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c
    functionUses: 22
    functionsReached:
    - PKCS12_free
    - d2i_PKCS12_fp
    - exit
    - PEM_write_X509_AUX
    - STACK_OF
    - ERR_print_errors_fp
    - OpenSSL_add_all_algorithms
    - fclose
    - sk_X509_num
    - PEM_write_PrivateKey
    - sk_X509_value
    - PKCS12_parse
    - fprintf
    - fopen
    - ERR_load_crypto_strings
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:55,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:56,1
    - Dst: BIO_dump_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:57,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:58,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:60,1
    - Dst: EVP_aes_192_ccm
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:60,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:62,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:65,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:67,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:69,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:71,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:73,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:75,1
    - Dst: BIO_dump_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:76,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:78,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:80,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:82,1
    - Dst: BIO_dump_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:83,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 50
    functionDepth: 4
    functionLinenumber: 50
    functionLinenumberEnd: 85
    functionName: aes_ccm_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c
    functionUses: 0
    functionsReached:
    - EVP_EncryptInit_ex
    - EVP_EncryptFinal_ex
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_free
    - BIO_dump_fp
    - EVP_EncryptUpdate
    - printf
    - EVP_aes_192_ccm
    - EVP_CIPHER_CTX_ctrl
    linkageType: ''
    returnType: void
    signature: aes_ccm_encrypt(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:92,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:93,1
    - Dst: BIO_dump_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:94,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:95,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:97,1
    - Dst: EVP_aes_192_ccm
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:97,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:99,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:102,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:105,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:107,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:109,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:111,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:114,1
    - Dst: BIO_dump_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:115,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:117,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 87
    functionDepth: 4
    functionLinenumber: 87
    functionLinenumberEnd: 119
    functionName: aes_ccm_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_free
    - BIO_dump_fp
    - printf
    - EVP_DecryptUpdate
    - EVP_aes_192_ccm
    - EVP_DecryptInit_ex
    - EVP_CIPHER_CTX_ctrl
    linkageType: ''
    returnType: void
    signature: aes_ccm_decrypt(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aes_ccm_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:123,1
    - Dst: aes_ccm_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 5
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c
    functionUses: 22
    functionsReached:
    - aes_ccm_encrypt
    - aes_ccm_decrypt
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:55,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:56,1
    - Dst: BIO_dump_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:57,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:58,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:60,1
    - Dst: EVP_aes_256_gcm
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:60,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:62,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:64,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:66,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:68,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:70,1
    - Dst: BIO_dump_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:71,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:73,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:75,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:77,1
    - Dst: BIO_dump_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:78,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 50
    functionDepth: 4
    functionLinenumber: 50
    functionLinenumberEnd: 80
    functionName: aes_gcm_encrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c
    functionUses: 0
    functionsReached:
    - EVP_EncryptInit_ex
    - EVP_EncryptFinal_ex
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_free
    - BIO_dump_fp
    - EVP_EncryptUpdate
    - printf
    - EVP_aes_256_gcm
    - EVP_CIPHER_CTX_ctrl
    linkageType: ''
    returnType: void
    signature: aes_gcm_encrypt(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:87,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:88,1
    - Dst: BIO_dump_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:89,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:90,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:92,1
    - Dst: EVP_aes_256_gcm
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:92,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:94,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:96,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:98,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:100,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:102,1
    - Dst: BIO_dump_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:103,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:105,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:107,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:112,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 82
    functionDepth: 4
    functionLinenumber: 82
    functionLinenumberEnd: 114
    functionName: aes_gcm_decrypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_free
    - EVP_DecryptFinal_ex
    - BIO_dump_fp
    - printf
    - EVP_DecryptUpdate
    - EVP_aes_256_gcm
    - EVP_DecryptInit_ex
    - EVP_CIPHER_CTX_ctrl
    linkageType: ''
    returnType: void
    signature: aes_gcm_decrypt(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aes_gcm_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:118,1
    - Dst: aes_gcm_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 5
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c
    functionUses: 22
    functionsReached:
    - aes_gcm_decrypt
    - aes_gcm_encrypt
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:23,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:24,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:26,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:31,1
    - Dst: BIO_reset
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:33,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:35,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:37,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:39,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:44,1
    - Dst: BIO_reset
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:46,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:48,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:53,1
    - Dst: CMS_sign
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:58,1
    - Dst: CMS_add1_signer
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:65,1
    - Dst: CMS_add1_signer
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:68,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:71,1
    - Dst: SMIME_write_CMS
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:77,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:85,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:86,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:89,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:90,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:91,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:92,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:93,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:94,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:95,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c:96,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 98
      start: 15
    functionDepth: 6
    functionLinenumber: 15
    functionLinenumberEnd: 98
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c
    functionUses: 22
    functionsReached:
    - CMS_add1_signer
    - EVP_PKEY_free
    - PEM_read_bio_X509
    - CMS_ContentInfo_free
    - ERR_print_errors_fp
    - OpenSSL_add_all_algorithms
    - SMIME_write_CMS
    - PEM_read_bio_PrivateKey
    - BIO_free
    - BIO_new_file
    - X509_free
    - fprintf
    - CMS_sign
    - BIO_reset
    - ERR_load_crypto_strings
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ddec.c:26,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ddec.c:27,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ddec.c:30,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ddec.c:35,1
    - Dst: BIO_reset
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ddec.c:37,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ddec.c:39,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ddec.c:46,1
    - Dst: PEM_read_bio_CMS
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ddec.c:52,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ddec.c:58,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ddec.c:63,1
    - Dst: CMS_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ddec.c:68,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ddec.c:76,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ddec.c:77,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ddec.c:80,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ddec.c:81,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ddec.c:82,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ddec.c:83,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ddec.c:84,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ddec.c:85,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ddec.c:86,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 88
      start: 18
    functionDepth: 9
    functionLinenumber: 18
    functionLinenumberEnd: 88
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ddec.c
    functionUses: 22
    functionsReached:
    - PEM_read_bio_CMS
    - EVP_PKEY_free
    - CMS_decrypt
    - PEM_read_bio_X509
    - CMS_ContentInfo_free
    - ERR_print_errors_fp
    - OpenSSL_add_all_algorithms
    - PEM_read_bio_PrivateKey
    - BIO_free
    - BIO_new_file
    - X509_free
    - fprintf
    - BIO_reset
    - ERR_load_crypto_strings
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_enc.c:19,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_enc.c:29,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_enc.c:30,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_enc.c:33,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_enc.c:38,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_enc.c:44,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_enc.c:46,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_enc.c:57,1
    - Dst: CMS_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_enc.c:63,1
    - Dst: EVP_des_ede3_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_enc.c:63,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_enc.c:68,1
    - Dst: SMIME_write_CMS
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_enc.c:73,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_enc.c:81,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_enc.c:82,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_enc.c:85,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_enc.c:86,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_enc.c:87,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_enc.c:88,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_enc.c:89,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_enc.c:90,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 92
      start: 15
    functionDepth: 5
    functionLinenumber: 15
    functionLinenumberEnd: 92
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_enc.c
    functionUses: 22
    functionsReached:
    - CMS_encrypt
    - PEM_read_bio_X509
    - STACK_OF
    - CMS_ContentInfo_free
    - ERR_print_errors_fp
    - sk_X509_pop_free
    - OpenSSL_add_all_algorithms
    - SMIME_write_CMS
    - BIO_free
    - BIO_new_file
    - sk_X509_push
    - X509_free
    - fprintf
    - sk_X509_new_null
    - EVP_des_ede3_cbc
    - ERR_load_crypto_strings
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ver.c:24,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ver.c:25,1
    - Dst: X509_STORE_new
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ver.c:29,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ver.c:32,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ver.c:37,1
    - Dst: X509_STORE_add_cert
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ver.c:42,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ver.c:47,1
    - Dst: SMIME_read_CMS
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ver.c:53,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ver.c:59,1
    - Dst: CMS_verify
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ver.c:63,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ver.c:64,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ver.c:68,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ver.c:75,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ver.c:76,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ver.c:79,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ver.c:80,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ver.c:81,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ver.c:82,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ver.c:83,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 85
      start: 15
    functionDepth: 5
    functionLinenumber: 15
    functionLinenumberEnd: 85
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ver.c
    functionUses: 22
    functionsReached:
    - PEM_read_bio_X509
    - X509_STORE_add_cert
    - CMS_ContentInfo_free
    - ERR_print_errors_fp
    - X509_STORE_new
    - OpenSSL_add_all_algorithms
    - BIO_free
    - BIO_new_file
    - X509_free
    - fprintf
    - CMS_verify
    - SMIME_read_CMS
    - ERR_load_crypto_strings
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c:22,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c:28,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c:29,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c:32,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c:37,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c:43,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c:45,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c:56,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c:58,1
    - Dst: CMS_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c:64,1
    - Dst: EVP_des_ede3_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c:64,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c:69,1
    - Dst: CMS_final
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c:73,1
    - Dst: PEM_write_bio_CMS
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c:77,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c:85,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c:86,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c:89,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c:90,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c:91,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c:92,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c:93,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c:94,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c:95,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 97
      start: 18
    functionDepth: 7
    functionLinenumber: 18
    functionLinenumberEnd: 97
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c
    functionUses: 22
    functionsReached:
    - fprintf
    - CMS_encrypt
    - PEM_read_bio_X509
    - STACK_OF
    - CMS_ContentInfo_free
    - ERR_print_errors_fp
    - sk_X509_pop_free
    - OpenSSL_add_all_algorithms
    - BIO_free
    - PEM_write_bio_CMS
    - BIO_new_file
    - sk_X509_push
    - X509_free
    - CMS_final
    - sk_X509_new_null
    - EVP_des_ede3_cbc
    - ERR_load_crypto_strings
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_dec.c:23,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_dec.c:24,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_dec.c:27,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_dec.c:32,1
    - Dst: BIO_reset
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_dec.c:34,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_dec.c:36,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_dec.c:43,1
    - Dst: SMIME_read_CMS
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_dec.c:49,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_dec.c:54,1
    - Dst: CMS_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_dec.c:59,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_dec.c:67,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_dec.c:68,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_dec.c:71,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_dec.c:72,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_dec.c:73,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_dec.c:74,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_dec.c:75,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_dec.c:76,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 78
      start: 15
    functionDepth: 9
    functionLinenumber: 15
    functionLinenumberEnd: 78
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_dec.c
    functionUses: 22
    functionsReached:
    - EVP_PKEY_free
    - CMS_decrypt
    - PEM_read_bio_X509
    - CMS_ContentInfo_free
    - ERR_print_errors_fp
    - OpenSSL_add_all_algorithms
    - PEM_read_bio_PrivateKey
    - BIO_free
    - BIO_new_file
    - X509_free
    - fprintf
    - BIO_reset
    - SMIME_read_CMS
    - ERR_load_crypto_strings
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_comp.c:27,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_comp.c:28,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_comp.c:32,1
    - Dst: CMS_compress
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_comp.c:38,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_comp.c:43,1
    - Dst: SMIME_write_CMS
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_comp.c:48,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_comp.c:56,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_comp.c:57,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_comp.c:60,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_comp.c:61,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_comp.c:62,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 64
      start: 15
    functionDepth: 8
    functionLinenumber: 15
    functionLinenumberEnd: 64
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_comp.c
    functionUses: 22
    functionsReached:
    - CMS_ContentInfo_free
    - ERR_print_errors_fp
    - CMS_compress
    - OpenSSL_add_all_algorithms
    - SMIME_write_CMS
    - BIO_free
    - BIO_new_file
    - fprintf
    - ERR_load_crypto_strings
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_uncomp.c:21,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_uncomp.c:22,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_uncomp.c:26,1
    - Dst: SMIME_read_CMS
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_uncomp.c:32,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_uncomp.c:37,1
    - Dst: CMS_uncompress
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_uncomp.c:42,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_uncomp.c:50,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_uncomp.c:51,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_uncomp.c:54,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_uncomp.c:55,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_uncomp.c:56,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 58
      start: 15
    functionDepth: 7
    functionLinenumber: 15
    functionLinenumberEnd: 58
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_uncomp.c
    functionUses: 22
    functionsReached:
    - CMS_ContentInfo_free
    - ERR_print_errors_fp
    - OpenSSL_add_all_algorithms
    - CMS_uncompress
    - BIO_free
    - BIO_new_file
    - fprintf
    - SMIME_read_CMS
    - ERR_load_crypto_strings
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign.c:30,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign.c:31,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign.c:34,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign.c:39,1
    - Dst: BIO_reset
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign.c:41,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign.c:43,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign.c:50,1
    - Dst: CMS_sign
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign.c:56,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign.c:61,1
    - Dst: BIO_reset
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign.c:66,1
    - Dst: SMIME_write_CMS
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign.c:69,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign.c:77,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign.c:78,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign.c:81,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign.c:82,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign.c:83,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign.c:84,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign.c:85,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign.c:86,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 88
      start: 15
    functionDepth: 5
    functionLinenumber: 15
    functionLinenumberEnd: 88
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign.c
    functionUses: 22
    functionsReached:
    - EVP_PKEY_free
    - PEM_read_bio_X509
    - CMS_ContentInfo_free
    - ERR_print_errors_fp
    - OpenSSL_add_all_algorithms
    - SMIME_write_CMS
    - PEM_read_bio_PrivateKey
    - BIO_free
    - BIO_new_file
    - X509_free
    - fprintf
    - CMS_sign
    - BIO_reset
    - ERR_load_crypto_strings
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign.c:30,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign.c:31,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign.c:34,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign.c:39,1
    - Dst: BIO_reset
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign.c:41,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign.c:43,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign.c:50,1
    - Dst: PKCS7_sign
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign.c:56,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign.c:61,1
    - Dst: BIO_reset
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign.c:66,1
    - Dst: SMIME_write_PKCS7
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign.c:69,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign.c:76,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign.c:77,1
    - Dst: PKCS7_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign.c:79,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign.c:80,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign.c:81,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign.c:82,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign.c:83,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign.c:84,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 88
      start: 15
    functionDepth: 9
    functionLinenumber: 15
    functionLinenumberEnd: 88
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign.c
    functionUses: 22
    functionsReached:
    - EVP_PKEY_free
    - PEM_read_bio_X509
    - ERR_print_errors_fp
    - OpenSSL_add_all_algorithms
    - PEM_read_bio_PrivateKey
    - SMIME_write_PKCS7
    - BIO_free
    - PKCS7_free
    - BIO_new_file
    - X509_free
    - fprintf
    - PKCS7_sign
    - BIO_reset
    - ERR_load_crypto_strings
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smdec.c:23,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smdec.c:24,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smdec.c:27,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smdec.c:32,1
    - Dst: BIO_reset
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smdec.c:34,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smdec.c:36,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smdec.c:43,1
    - Dst: SMIME_read_PKCS7
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smdec.c:49,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smdec.c:54,1
    - Dst: PKCS7_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smdec.c:59,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smdec.c:66,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smdec.c:67,1
    - Dst: PKCS7_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smdec.c:69,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smdec.c:70,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smdec.c:71,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smdec.c:72,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smdec.c:73,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smdec.c:74,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 78
      start: 15
    functionDepth: 7
    functionLinenumber: 15
    functionLinenumberEnd: 78
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/smime/smdec.c
    functionUses: 22
    functionsReached:
    - SMIME_read_PKCS7
    - EVP_PKEY_free
    - PKCS7_decrypt
    - PEM_read_bio_X509
    - ERR_print_errors_fp
    - OpenSSL_add_all_algorithms
    - PEM_read_bio_PrivateKey
    - BIO_free
    - BIO_new_file
    - X509_free
    - fprintf
    - PKCS7_free
    - BIO_reset
    - ERR_load_crypto_strings
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:23,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:24,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:26,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:31,1
    - Dst: BIO_reset
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:33,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:35,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:37,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:39,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:44,1
    - Dst: BIO_reset
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:46,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:48,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:53,1
    - Dst: PKCS7_sign
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:58,1
    - Dst: PKCS7_sign_add_signer
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:65,1
    - Dst: PKCS7_sign_add_signer
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:68,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:71,1
    - Dst: SMIME_write_PKCS7
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:77,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:84,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:85,1
    - Dst: PKCS7_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:87,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:88,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:89,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:90,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:91,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:92,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:93,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c:94,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 96
      start: 15
    functionDepth: 9
    functionLinenumber: 15
    functionLinenumberEnd: 96
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c
    functionUses: 22
    functionsReached:
    - EVP_PKEY_free
    - PKCS7_sign_add_signer
    - PEM_read_bio_X509
    - ERR_print_errors_fp
    - OpenSSL_add_all_algorithms
    - PEM_read_bio_PrivateKey
    - BIO_free
    - SMIME_write_PKCS7
    - PKCS7_free
    - BIO_new_file
    - X509_free
    - fprintf
    - PKCS7_sign
    - BIO_reset
    - ERR_load_crypto_strings
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smenc.c:19,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smenc.c:29,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smenc.c:30,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smenc.c:33,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smenc.c:38,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smenc.c:44,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smenc.c:46,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smenc.c:57,1
    - Dst: PKCS7_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smenc.c:63,1
    - Dst: EVP_des_ede3_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smenc.c:63,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smenc.c:68,1
    - Dst: SMIME_write_PKCS7
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smenc.c:73,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smenc.c:80,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smenc.c:81,1
    - Dst: PKCS7_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smenc.c:83,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smenc.c:84,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smenc.c:85,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smenc.c:86,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smenc.c:87,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smenc.c:88,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 91
      start: 15
    functionDepth: 9
    functionLinenumber: 15
    functionLinenumberEnd: 91
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/smime/smenc.c
    functionUses: 22
    functionsReached:
    - PEM_read_bio_X509
    - STACK_OF
    - sk_X509_pop_free
    - ERR_print_errors_fp
    - PKCS7_encrypt
    - OpenSSL_add_all_algorithms
    - SMIME_write_PKCS7
    - BIO_free
    - PKCS7_free
    - BIO_new_file
    - sk_X509_push
    - X509_free
    - fprintf
    - sk_X509_new_null
    - EVP_des_ede3_cbc
    - ERR_load_crypto_strings
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smver.c:24,1
    - Dst: ERR_load_crypto_strings
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smver.c:25,1
    - Dst: X509_STORE_new
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smver.c:29,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smver.c:32,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smver.c:37,1
    - Dst: X509_STORE_add_cert
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smver.c:42,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smver.c:47,1
    - Dst: SMIME_read_PKCS7
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smver.c:53,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smver.c:59,1
    - Dst: PKCS7_verify
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smver.c:63,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smver.c:64,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smver.c:68,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smver.c:74,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smver.c:75,1
    - Dst: PKCS7_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smver.c:77,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smver.c:78,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smver.c:79,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smver.c:80,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/smime/smver.c:81,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 83
      start: 15
    functionDepth: 7
    functionLinenumber: 15
    functionLinenumberEnd: 83
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/smime/smver.c
    functionUses: 22
    functionsReached:
    - SMIME_read_PKCS7
    - PEM_read_bio_X509
    - X509_STORE_add_cert
    - ERR_print_errors_fp
    - X509_STORE_new
    - OpenSSL_add_all_algorithms
    - PKCS7_verify
    - BIO_free
    - BIO_new_file
    - X509_free
    - fprintf
    - PKCS7_free
    - ERR_load_crypto_strings
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:24,1
    - Dst: NCONF_new
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:29,1
    - Dst: NCONF_load
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:31,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:33,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:35,1
    - Dst: NCONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:39,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:42,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:46,1
    - Dst: TLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:46,1
    - Dst: SSL_CONF_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:47,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:48,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:49,1
    - Dst: SSL_CONF_CTX_set_ssl_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:50,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:51,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:52,1
    - Dst: SSL_CONF_cmd
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:53,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:57,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:59,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:62,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:65,1
    - Dst: SSL_CONF_CTX_finish
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:70,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:71,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:72,1
    - Dst: BIO_new_ssl_connect
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:82,1
    - Dst: BIO_get_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:84,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:87,1
    - Dst: SSL_set_mode
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:92,1
    - Dst: BIO_set_conn_hostname
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:96,1
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:98,1
    - Dst: BIO_do_connect
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:99,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:100,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:101,1
    - Dst: BIO_do_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:105,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:106,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:107,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:113,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:115,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:118,1
    - Dst: SSL_CONF_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:121,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:122,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:123,1
    - Dst: NCONF_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c:124,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 82
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 126
      start: 15
    functionDepth: 5
    functionLinenumber: 15
    functionLinenumberEnd: 126
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c
    functionUses: 22
    functionsReached:
    - ERR_print_errors_fp
    - fprintf
    - BIO_do_connect
    - SSL_CONF_CTX_free
    - NCONF_load
    - sk_CONF_VALUE_value
    - BIO_set_conn_hostname
    - sk_CONF_VALUE_num
    - BIO_free
    - BIO_new_ssl_connect
    - TLS_client_method
    - SSL_CONF_CTX_set_ssl_ctx
    - NCONF_new
    - NCONF_free
    - SSL_CTX_new
    - SSL_CONF_CTX_finish
    - SSL_CONF_CTX_new
    - BIO_do_handshake
    - BIO_write
    - BIO_new_fp
    - BIO_get_ssl
    - SSL_CONF_cmd
    - SSL_set_mode
    - BIO_free_all
    - strcmp
    - STACK_OF
    - BIO_puts
    - NCONF_get_section
    - BIO_read
    - SSL_CONF_CTX_set_flags
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:31,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:37,1
    - Dst: TLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:37,1
    - Dst: NCONF_new
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:39,1
    - Dst: NCONF_load
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:41,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:43,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:45,1
    - Dst: NCONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:49,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:52,1
    - Dst: SSL_CONF_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:56,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:57,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:58,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:59,1
    - Dst: SSL_CONF_CTX_set_ssl_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:60,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:61,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:63,1
    - Dst: SSL_CONF_cmd
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:64,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:68,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:70,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:73,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:76,1
    - Dst: SSL_CONF_CTX_finish
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:81,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:82,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:83,1
    - Dst: BIO_new_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:88,1
    - Dst: BIO_new_accept
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:90,1
    - Dst: BIO_set_accept_bios
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:98,1
    - Dst: BIO_do_accept
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:107,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:111,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:118,1
    - Dst: BIO_pop
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:119,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:120,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:124,1
    - Dst: fwrite
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:128,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:129,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:135,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:137,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c:138,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 84
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 140
      start: 23
    functionDepth: 5
    functionLinenumber: 23
    functionLinenumberEnd: 140
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c
    functionUses: 22
    functionsReached:
    - TLS_server_method
    - BIO_new_ssl
    - ERR_print_errors_fp
    - BIO_should_retry
    - BIO_do_accept
    - printf
    - BIO_new_accept
    - fprintf
    - BIO_set_accept_bios
    - NCONF_load
    - sk_CONF_VALUE_value
    - exit
    - fwrite
    - sk_CONF_VALUE_num
    - BIO_free
    - SSL_CONF_CTX_set_ssl_ctx
    - NCONF_new
    - SSL_CTX_new
    - SSL_CONF_CTX_finish
    - SSL_CONF_CTX_new
    - fflush
    - SSL_CONF_cmd
    - BIO_free_all
    - strcmp
    - STACK_OF
    - BIO_pop
    - NCONF_get_section
    - BIO_read
    - SSL_CONF_CTX_set_flags
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: interrupt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: interrupt(int sig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c:43,1
    - Dst: sigaction
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: sigsetup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c
    functionUses: 0
    functionsReached:
    - sigaction
    - sigemptyset
    linkageType: ''
    returnType: void
    signature: sigsetup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c:61,1
    - Dst: TLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c:61,1
    - Dst: SSL_CTX_use_certificate_chain_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c:62,1
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c:64,1
    - Dst: SSL_CTX_check_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c:66,1
    - Dst: BIO_new_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c:70,1
    - Dst: BIO_new_accept
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c:72,1
    - Dst: BIO_set_accept_bios
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c:80,1
    - Dst: sigsetup
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c:83,1
    - Dst: BIO_do_accept
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c:92,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c:96,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c:103,1
    - Dst: BIO_pop
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c:104,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c:105,1
    - Dst: fwrite
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c:110,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c:111,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c:117,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c:119,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c:120,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 122
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 122
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c
    functionUses: 22
    functionsReached:
    - TLS_server_method
    - SSL_CTX_use_PrivateKey_file
    - BIO_new_ssl
    - ERR_print_errors_fp
    - BIO_do_accept
    - printf
    - SSL_CTX_check_private_key
    - BIO_new_accept
    - BIO_set_accept_bios
    - exit
    - fwrite
    - BIO_free
    - SSL_CTX_new
    - fflush
    - BIO_free_all
    - sigsetup
    - BIO_pop
    - SSL_CTX_use_certificate_chain_file
    - BIO_read
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:34,1
    - Dst: TLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:34,1
    - Dst: SSL_CONF_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:36,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:37,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:38,1
    - Dst: SSL_CONF_CTX_set_ssl_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:39,1
    - Dst: SSL_CONF_cmd_argv
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:43,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:45,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:49,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:50,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:57,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:60,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:67,1
    - Dst: SSL_CONF_CTX_finish
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:72,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:73,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:74,1
    - Dst: SSL_CTX_set_current_cert
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:84,1
    - Dst: SSL_CTX_get0_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:86,1
    - Dst: X509_NAME_print_ex_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:87,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:87,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:89,1
    - Dst: SSL_CTX_set_current_cert
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:90,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:92,1
    - Dst: BIO_new_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:96,1
    - Dst: BIO_new_accept
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:98,1
    - Dst: BIO_set_accept_bios
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:106,1
    - Dst: BIO_do_accept
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:115,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:119,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:126,1
    - Dst: BIO_pop
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:127,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:128,1
    - Dst: fwrite
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:133,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:134,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:140,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:142,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c:143,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 85
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 145
      start: 22
    functionDepth: 7
    functionLinenumber: 22
    functionLinenumberEnd: 145
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c
    functionUses: 22
    functionsReached:
    - TLS_server_method
    - SSL_CTX_get0_certificate
    - BIO_new_ssl
    - ERR_print_errors_fp
    - BIO_do_accept
    - printf
    - BIO_new_accept
    - fprintf
    - BIO_set_accept_bios
    - exit
    - fwrite
    - BIO_free
    - SSL_CONF_CTX_set_ssl_ctx
    - SSL_CTX_new
    - SSL_CONF_CTX_new
    - SSL_CONF_CTX_finish
    - SSL_CONF_cmd_argv
    - fflush
    - BIO_free_all
    - strcmp
    - X509_get_subject_name
    - BIO_pop
    - X509_NAME_print_ex_fp
    - SSL_CTX_set_current_cert
    - BIO_read
    - SSL_CONF_CTX_set_flags
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:26,1
    - Dst: TLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:26,1
    - Dst: SSL_CONF_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:27,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:28,1
    - Dst: SSL_CONF_CTX_set_ssl_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:29,1
    - Dst: SSL_CONF_cmd_argv
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:33,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:35,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:39,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:40,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:47,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:50,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:57,1
    - Dst: SSL_CONF_CTX_finish
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:62,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:63,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:64,1
    - Dst: BIO_new_ssl_connect
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:74,1
    - Dst: BIO_get_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:76,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:79,1
    - Dst: SSL_set_mode
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:84,1
    - Dst: BIO_set_conn_hostname
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:88,1
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:90,1
    - Dst: BIO_do_connect
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:91,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:92,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:93,1
    - Dst: BIO_do_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:97,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:98,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:99,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:105,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:107,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:110,1
    - Dst: SSL_CONF_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:113,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:114,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c:115,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 77
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 117
      start: 14
    functionDepth: 5
    functionLinenumber: 14
    functionLinenumberEnd: 117
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c
    functionUses: 22
    functionsReached:
    - ERR_print_errors_fp
    - fprintf
    - BIO_do_connect
    - SSL_CONF_CTX_free
    - BIO_set_conn_hostname
    - BIO_free
    - BIO_new_ssl_connect
    - SSL_CONF_CTX_set_ssl_ctx
    - TLS_client_method
    - SSL_CTX_new
    - SSL_CONF_CTX_new
    - BIO_do_handshake
    - SSL_CONF_CTX_finish
    - BIO_write
    - SSL_CONF_cmd_argv
    - BIO_new_fp
    - BIO_get_ssl
    - SSL_set_mode
    - BIO_free_all
    - strcmp
    - BIO_puts
    - BIO_read
    - SSL_CONF_CTX_set_flags
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-cmod.c:30,1
    - Dst: TLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-cmod.c:30,1
    - Dst: CONF_modules_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-cmod.c:32,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-cmod.c:33,1
    - Dst: SSL_CTX_config
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-cmod.c:37,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-cmod.c:38,1
    - Dst: BIO_new_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-cmod.c:43,1
    - Dst: BIO_new_accept
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-cmod.c:45,1
    - Dst: BIO_set_accept_bios
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-cmod.c:53,1
    - Dst: BIO_do_accept
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-cmod.c:62,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-cmod.c:66,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-cmod.c:73,1
    - Dst: BIO_pop
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-cmod.c:74,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-cmod.c:75,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-cmod.c:79,1
    - Dst: fwrite
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-cmod.c:83,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-cmod.c:84,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-cmod.c:90,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-cmod.c:92,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-cmod.c:93,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 95
      start: 21
    functionDepth: 5
    functionLinenumber: 21
    functionLinenumberEnd: 95
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-cmod.c
    functionUses: 22
    functionsReached:
    - TLS_server_method
    - BIO_new_ssl
    - ERR_print_errors_fp
    - BIO_should_retry
    - BIO_do_accept
    - printf
    - BIO_new_accept
    - fprintf
    - BIO_set_accept_bios
    - exit
    - fwrite
    - BIO_free
    - SSL_CTX_config
    - SSL_CTX_new
    - fflush
    - BIO_free_all
    - BIO_pop
    - CONF_modules_load_file
    - BIO_read
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:106,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:107,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:112,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:115,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:119,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:119,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:123,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:126,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:126,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:130,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:151,1
    - Dst: opt_pair
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:154,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:154,1
    - Dst: opt_pair
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:160,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:160,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:168,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:172,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:172,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:176,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:182,1
    - Dst: bio_open_owner
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:185,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:194,1
    - Dst: EC_get_builtin_curves
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:195,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:196,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:204,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:210,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:211,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:214,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:227,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:228,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:231,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:232,1
    - Dst: OBJ_sn2nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:236,1
    - Dst: EC_curve_nist2nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:239,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:242,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:246,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:248,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:251,1
    - Dst: EC_GROUP_set_point_conversion_form
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:252,1
    - Dst: d2i_ECPKParameters_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:254,1
    - Dst: PEM_read_bio_ECPKParameters
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:256,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:258,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:259,1
    - Dst: EC_GROUP_set_point_conversion_form
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:264,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:267,1
    - Dst: EC_GROUP_set_seed
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:270,1
    - Dst: ECPKParameters_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:274,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:279,1
    - Dst: EC_GROUP_check
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:280,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:281,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:282,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:285,1
    - Dst: EC_GROUP_method_of
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:293,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:295,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:296,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:297,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:298,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:299,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:300,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:301,1
    - Dst: EC_METHOD_get_field_type
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:305,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:307,1
    - Dst: EC_GROUP_get_curve_GFp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:311,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:314,1
    - Dst: EC_POINT_point2bn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:316,1
    - Dst: EC_GROUP_get_point_conversion_form
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:317,1
    - Dst: EC_GROUP_get_order
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:320,1
    - Dst: EC_GROUP_get_cofactor
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:322,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:328,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:330,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:332,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:334,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:336,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:338,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:340,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:343,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:345,1
    - Dst: print_bignum_var
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:346,1
    - Dst: print_bignum_var
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:347,1
    - Dst: print_bignum_var
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:348,1
    - Dst: print_bignum_var
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:349,1
    - Dst: print_bignum_var
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:350,1
    - Dst: print_bignum_var
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:351,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:352,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:360,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:362,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:364,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:366,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:369,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:370,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:372,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:373,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:375,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:377,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:379,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:383,1
    - Dst: i2d_ECPKParameters_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:398,1
    - Dst: PEM_write_bio_ECPKParameters
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:400,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:402,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:404,1
    - Dst: app_RAND_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:410,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:412,1
    - Dst: app_RAND_load_files
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:413,1
    - Dst: EC_KEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:417,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:422,1
    - Dst: EC_KEY_set_group
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:424,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:425,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:426,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:427,1
    - Dst: EC_KEY_generate_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:431,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:432,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:433,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:434,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:437,1
    - Dst: i2d_ECPrivateKey_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:439,1
    - Dst: PEM_write_bio_ECPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:441,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:443,1
    - Dst: app_RAND_write_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:447,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:451,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:452,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:453,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:454,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:455,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:456,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:457,1
    - Dst: EC_GROUP_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:458,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:459,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:460,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c:461,1
    CyclomaticComplexity: 109
    EdgeCount: 109
    ICount: 293
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 463
      start: 88
    functionDepth: 6
    functionLinenumber: 88
    functionLinenumberEnd: 463
    functionName: ecparam_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_method_of
    - EC_GROUP_get_curve_GFp
    - EC_GROUP_set_asn1_flag
    - opt_pair
    - EC_GROUP_get_order
    - d2i_ECPKParameters_bio
    - EC_KEY_free
    - release_engine
    - OBJ_nid2sn
    - EC_GROUP_check
    - BIO_printf
    - app_RAND_write_file
    - EC_get_builtin_curves
    - setup_engine
    - EC_POINT_point2bn
    - opt_init
    - OBJ_sn2nid
    - print_bignum_var
    - EC_GROUP_new_by_curve_name
    - BN_free
    - opt_next
    - perror
    - app_RAND_load_files
    - EC_METHOD_get_field_type
    - BIO_free
    - EC_GROUP_set_point_conversion_form
    - opt_num_rest
    - EC_GROUP_set_seed
    - bio_open_owner
    - opt_format
    - EC_KEY_set_group
    - BN_new
    - EC_KEY_generate_key
    - i2d_ECPKParameters_bio
    - i2d_ECPrivateKey_bio
    - PEM_write_bio_ECPrivateKey
    - PEM_write_bio_ECPKParameters
    - EC_GROUP_free
    - EC_curve_nist2nid
    - opt_arg
    - EC_GROUP_get_cofactor
    - EC_KEY_new
    - OPENSSL_free
    - app_RAND_load_file
    - assert
    - ECPKParameters_print
    - BIO_free_all
    - strcmp
    - ERR_print_errors
    - bio_open_default
    - EC_GROUP_get0_generator
    - opt_help
    - app_malloc
    - BN_num_bits
    - PEM_read_bio_ECPKParameters
    - BN_num_bytes
    - EC_GROUP_get_point_conversion_form
    linkageType: ''
    returnType: int
    signature: ecparam_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:64,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:65,1
    - Dst: X509_VERIFY_PARAM_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:73,1
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:76,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:77,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:81,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:84,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:85,1
    - Dst: X509_PURPOSE_get_count
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:86,1
    - Dst: X509_PURPOSE_get0
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:88,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:89,1
    - Dst: X509_PURPOSE_get0_sname
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:90,1
    - Dst: X509_PURPOSE_get0_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:91,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:94,1
    - Dst: X509_VERIFY_PARAM_get_count
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:95,1
    - Dst: X509_VERIFY_PARAM_get0
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:97,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:98,1
    - Dst: X509_VERIFY_PARAM_get0_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:99,1
    - Dst: opt_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:104,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:109,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:112,1
    - Dst: load_certs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:122,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:122,1
    - Dst: load_certs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:130,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:130,1
    - Dst: load_crls
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:136,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:136,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:144,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:144,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:157,1
    - Dst: opt_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:158,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:160,1
    - Dst: setup_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:166,1
    - Dst: X509_STORE_set_verify_cb
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:168,1
    - Dst: X509_STORE_set1_param
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:171,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:173,1
    - Dst: store_setup_crl_download
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:176,1
    - Dst: check
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:180,1
    - Dst: check
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:184,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:190,1
    - Dst: X509_STORE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:191,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:192,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:193,1
    - Dst: sk_X509_CRL_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:194,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:195,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 115
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 197
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 197
    functionName: verify_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/verify.c
    functionUses: 0
    functionsReached:
    - opt_verify
    - sk_X509_pop_free
    - release_engine
    - X509_STORE_set1_param
    - X509_VERIFY_PARAM_free
    - setup_verify
    - BIO_printf
    - X509_VERIFY_PARAM_get0_name
    - setup_engine
    - X509_VERIFY_PARAM_get_count
    - opt_init
    - load_certs
    - opt_next
    - opt_num_rest
    - X509_PURPOSE_get0_sname
    - sk_X509_CRL_pop_free
    - X509_STORE_free
    - X509_VERIFY_PARAM_get0
    - X509_PURPOSE_get_count
    - X509_PURPOSE_get0
    - opt_arg
    - check
    - X509_PURPOSE_get0_name
    - X509_VERIFY_PARAM_new
    - ERR_clear_error
    - opt_rest
    - STACK_OF
    - X509_STORE_set_verify_cb
    - opt_help
    - load_crls
    - store_setup_crl_download
    linkageType: ''
    returnType: int
    signature: verify_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:206,1
    - Dst: load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:209,1
    - Dst: X509_STORE_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:213,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:215,1
    - Dst: X509_STORE_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:220,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:221,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:222,1
    - Dst: X509_STORE_CTX_set0_trusted_stack
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:227,1
    - Dst: X509_STORE_CTX_set0_crls
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:229,1
    - Dst: X509_verify_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:230,1
    - Dst: X509_STORE_CTX_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:231,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:232,1
    - Dst: X509_STORE_CTX_get1_chain
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:237,1
    - Dst: X509_STORE_CTX_get_num_untrusted
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:238,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:239,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:240,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:241,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:242,1
    - Dst: X509_NAME_print_ex_fp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:243,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:244,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:247,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:248,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:250,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:253,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:255,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:259,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:260,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 6
    argNames:
    - ctx
    - file
    - uchain
    - tchain
    - crls
    - show_chain
    argTypes:
    - X509_STORE*
    - char*
    - STACK_OF*
    - STACK_OF*
    - STACK_OF*
    - int
    constantsTouched: []
    func_position:
      end: 263
      start: 199
    functionDepth: 7
    functionLinenumber: 199
    functionLinenumberEnd: 263
    functionName: check
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/verify.c
    functionUses: 62
    functionsReached:
    - X509_STORE_CTX_init
    - sk_X509_pop_free
    - X509_STORE_CTX_free
    - sk_X509_num
    - printf
    - X509_STORE_CTX_get1_chain
    - X509_STORE_CTX_get_num_untrusted
    - X509_free
    - X509_STORE_set_flags
    - X509_STORE_CTX_set0_crls
    - X509_STORE_CTX_get_error
    - X509_STORE_CTX_new
    - STACK_OF
    - ERR_print_errors
    - X509_get_subject_name
    - load_cert
    - sk_X509_value
    - X509_NAME_print_ex_fp
    - X509_STORE_CTX_set0_trusted_stack
    - X509_verify_cert
    linkageType: ''
    returnType: int
    signature: "check(X509_STORE *ctx, const char *file,\n                 STACK_OF(X509)
      *uchain, STACK_OF(X509) *tchain,\n                 STACK_OF(X509_CRL) *crls,
      int show_chain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_get_current_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:268,1
    - Dst: X509_NAME_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:272,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:273,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:275,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:277,1
    - Dst: X509_STORE_CTX_get0_parent_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:278,1
    - Dst: X509_STORE_CTX_get_error_depth
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:280,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:281,1
    - Dst: policies_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:284,1
    - Dst: policies_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:307,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/verify.c:309,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - ok
    - ctx
    argTypes:
    - int
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 311
      start: 265
    functionDepth: 7
    functionLinenumber: 265
    functionLinenumberEnd: 311
    functionName: cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/verify.c
    functionUses: 91
    functionsReached:
    - policies_print
    - X509_STORE_CTX_get0_parent_ctx
    - X509_get_subject_name
    - X509_NAME_print_ex
    - X509_STORE_CTX_get_current_cert
    - X509_STORE_CTX_get_error_depth
    - BIO_printf
    - X509_verify_cert_error_string
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: cb(int ok, X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:59,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:60,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:65,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:69,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:72,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:75,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:78,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:78,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:81,1
    - Dst: opt_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:84,1
    - Dst: opt_unknown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:84,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:89,1
    - Dst: opt_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:90,1
    - Dst: app_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:97,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:98,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:102,1
    - Dst: PEM_read_bio_DSAparams
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:106,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:107,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:110,1
    - Dst: bio_open_owner
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:113,1
    - Dst: app_RAND_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:117,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:118,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:122,1
    - Dst: app_RAND_load_files
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:123,1
    - Dst: DSA_get0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:125,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:126,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:126,1
    - Dst: DSA_generate_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:127,1
    - Dst: app_RAND_write_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:130,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:132,1
    - Dst: PEM_write_bio_DSAPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:133,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:138,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:140,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:141,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:142,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:143,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c:144,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 90
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 146
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 146
    functionName: gendsa_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c
    functionUses: 0
    functionsReached:
    - release_engine
    - DSA_generate_key
    - BIO_printf
    - app_RAND_write_file
    - setup_engine
    - opt_init
    - opt_next
    - DSA_free
    - app_RAND_load_files
    - BIO_free
    - opt_num_rest
    - bio_open_owner
    - opt_arg
    - opt_unknown
    - app_RAND_load_file
    - DSA_get0_pqg
    - app_passwd
    - assert
    - OPENSSL_free
    - PEM_write_bio_DSAPrivateKey
    - BIO_free_all
    - opt_rest
    - ERR_print_errors
    - bio_open_default
    - opt_help
    - opt_cipher
    - BN_num_bits
    - PEM_read_bio_DSAparams
    linkageType: ''
    returnType: int
    signature: gendsa_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: app_tminterval
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: tm_Time_F
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c
    functionUses: 0
    functionsReached:
    - app_tminterval
    linkageType: ''
    returnType: double
    signature: tm_Time_F(int s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:112,1
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:114,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:115,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:120,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:123,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:127,1
    - Dst: opt_int
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:136,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:136,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:138,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:142,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:145,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:148,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:151,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:160,1
    - Dst: opt_int
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:166,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:166,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:170,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:171,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:173,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:182,1
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:187,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:189,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:193,1
    - Dst: SSL_CTX_set_quiet_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:196,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:197,1
    - Dst: SSL_CTX_set_options
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:201,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:202,1
    - Dst: set_cert_stuff
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:204,1
    - Dst: ctx_set_verify_locations
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:207,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:208,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:213,1
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:218,1
    - Dst: tm_Time_F
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:219,1
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:221,1
    - Dst: doConnection
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:224,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:228,1
    - Dst: SSL_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:230,1
    - Dst: SSL_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:232,1
    - Dst: SSL_set_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:236,1
    - Dst: SSL_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:238,1
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:240,1
    - Dst: SSL_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:240,1
    - Dst: SSL_session_reused
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:243,1
    - Dst: SSL_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:246,1
    - Dst: fputc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:254,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:255,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:257,1
    - Dst: tm_Time_F
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:260,1
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:262,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:263,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:266,1
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:268,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:277,1
    - Dst: doConnection
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:280,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:281,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:286,1
    - Dst: SSL_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:288,1
    - Dst: SSL_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:290,1
    - Dst: SSL_set_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:294,1
    - Dst: SSL_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:296,1
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:298,1
    - Dst: SSL_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:298,1
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:303,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:305,1
    - Dst: tm_Time_F
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:307,1
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:310,1
    - Dst: doConnection
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:313,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:317,1
    - Dst: SSL_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:319,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:319,1
    - Dst: SSL_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:321,1
    - Dst: SSL_set_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:325,1
    - Dst: SSL_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:327,1
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:329,1
    - Dst: SSL_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:329,1
    - Dst: SSL_session_reused
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:332,1
    - Dst: SSL_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:335,1
    - Dst: fputc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:343,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:344,1
    - Dst: tm_Time_F
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:346,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:348,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:351,1
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:353,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:358,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:359,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 216
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 361
      start: 96
    functionDepth: 5
    functionLinenumber: 96
    functionLinenumberEnd: 361
    functionName: s_time_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c
    functionUses: 0
    functionsReached:
    - SSL_session_reused
    - SSL_CTX_set_options
    - printf
    - BIO_printf
    - SSL_set_shutdown
    - opt_init
    - opt_next
    - doConnection
    - fputc
    - TLS_client_method
    - opt_num_rest
    - SSL_shutdown
    - SSL_free
    - SSL_CTX_set_cipher_list
    - SSL_get_fd
    - time
    - SSL_CTX_new
    - BIO_snprintf
    - getenv
    - opt_arg
    - strlen
    - SSL_CTX_set_quiet_shutdown
    - fflush
    - SSL_CTX_free
    - set_cert_stuff
    - SSL_write
    - ERR_print_errors
    - SSL_CTX_set_max_proto_version
    - opt_help
    - SSL_version
    - SSL_read
    - ctx_set_verify_locations
    - opt_int
    - BIO_closesocket
    - tm_Time_F
    linkageType: ''
    returnType: int
    signature: s_time_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:373,1
    - Dst: BIO_s_connect
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:373,1
    - Dst: BIO_set_conn_hostname
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:376,1
    - Dst: SSL_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:379,1
    - Dst: SSL_set_connect_state
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:382,1
    - Dst: SSL_set_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:385,1
    - Dst: SSL_connect
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:389,1
    - Dst: BIO_sock_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:390,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:391,1
    - Dst: SSL_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:393,1
    - Dst: FD_ZERO
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:395,1
    - Dst: openssl_fdset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:396,1
    - Dst: select
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:403,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:409,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:411,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:412,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:414,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c:416,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - scon
    - host
    - ctx
    argTypes:
    - SSL*
    - char*
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 421
      start: 366
    functionDepth: 5
    functionLinenumber: 366
    functionLinenumberEnd: 421
    functionName: doConnection
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c
    functionUses: 1
    functionsReached:
    - BIO_s_connect
    - BIO_printf
    - BIO_set_conn_hostname
    - openssl_fdset
    - BIO_sock_should_retry
    - ERR_print_errors
    - SSL_new
    - SSL_set_bio
    - SSL_connect
    - SSL_free
    - SSL_set_connect_state
    - FD_ZERO
    - SSL_get_fd
    - BIO_new
    - X509_verify_cert_error_string
    - select
    linkageType: ''
    returnType: SSL
    signature: '*doConnection(SSL *scon, const char *host, SSL_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:145,1
    - Dst: EVP_des_ede3_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:169,1
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:172,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:173,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:178,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:181,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:185,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:185,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:189,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:189,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:193,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:193,1
    - Dst: ENGINE_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:197,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:197,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:199,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:205,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:217,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:217,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:221,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:224,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:227,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:230,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:233,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:236,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:239,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:244,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:245,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:245,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:250,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:251,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:251,1
    - Dst: set_name_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:280,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:280,1
    - Dst: set_cert_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:284,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:284,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:295,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:295,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:299,1
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:302,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:302,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:310,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:316,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:319,1
    - Dst: opt_md
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:322,1
    - Dst: opt_unknown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:322,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:328,1
    - Dst: app_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:338,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:339,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:344,1
    - Dst: app_load_config
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:345,1
    - Dst: if
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:349,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:350,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:352,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:356,1
    - Dst: OBJ_create_objects
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:363,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:364,1
    - Dst: add_oid_section
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:368,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:372,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:374,1
    - Dst: opt_md
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:376,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:383,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:385,1
    - Dst: X509V3_set_ctx_test
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:390,1
    - Dst: X509V3_set_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:391,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:392,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:393,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:401,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:403,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:408,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:410,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:413,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:415,1
    - Dst: ASN1_STRING_set_default_mask_asc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:417,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:418,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:423,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:425,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:426,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:431,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:433,1
    - Dst: X509V3_set_ctx_test
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:438,1
    - Dst: X509V3_set_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:439,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:440,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:441,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:449,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:456,1
    - Dst: app_RAND_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:457,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:464,1
    - Dst: app_RAND_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:465,1
    - Dst: app_RAND_load_files
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:467,1
    - Dst: NCONF_get_number
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:469,1
    - Dst: set_keygen_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:474,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:482,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:483,1
    - Dst: set_keygen_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:489,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:497,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:498,1
    - Dst: pkey_ctrl_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:499,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:500,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:501,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:508,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:510,1
    - Dst: EVP_PKEY_CTX_set_cb
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:514,1
    - Dst: EVP_PKEY_CTX_set_app_data
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:515,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:517,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:518,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:522,1
    - Dst: app_RAND_write_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:525,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:528,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:530,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:534,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:536,1
    - Dst: bio_open_owner
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:537,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:541,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:543,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:544,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:546,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:548,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:555,1
    - Dst: PEM_write_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:556,1
    - Dst: ERR_GET_REASON
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:558,1
    - Dst: ERR_peek_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:558,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:560,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:566,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:568,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:572,1
    - Dst: d2i_X509_REQ_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:577,1
    - Dst: PEM_read_bio_X509_REQ
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:579,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:581,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:588,1
    - Dst: X509_REQ_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:593,1
    - Dst: make_REQ
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:598,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:601,1
    - Dst: X509_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:608,1
    - Dst: X509_set_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:612,1
    - Dst: X509_set_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:615,1
    - Dst: rand_serial
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:618,1
    - Dst: X509_get_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:618,1
    - Dst: X509_set_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:622,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:622,1
    - Dst: set_cert_times
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:624,1
    - Dst: X509_set_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:626,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:627,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:629,1
    - Dst: X509_set_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:630,1
    - Dst: X509V3_set_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:635,1
    - Dst: X509V3_set_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:636,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:639,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:642,1
    - Dst: do_X509_sign
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:647,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:649,1
    - Dst: X509V3_set_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:657,1
    - Dst: X509V3_set_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:658,1
    - Dst: X509V3_EXT_REQ_add_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:661,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:664,1
    - Dst: do_X509_REQ_sign
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:668,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:670,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:677,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:683,1
    - Dst: print_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:684,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:685,1
    - Dst: build_subject
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:688,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:689,1
    - Dst: print_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:695,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:696,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:704,1
    - Dst: X509_REQ_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:709,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:714,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:715,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:717,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:725,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:727,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:733,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:736,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:737,1
    - Dst: PEM_write_bio_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:740,1
    - Dst: X509_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:745,1
    - Dst: X509_REQ_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:747,1
    - Dst: print_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:752,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:752,1
    - Dst: print_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:755,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:755,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:763,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:765,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:767,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:770,1
    - Dst: EVP_PKEY_base_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:772,1
    - Dst: RSA_get0_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:774,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:774,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:775,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:778,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:779,1
    - Dst: i2d_X509_REQ_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:784,1
    - Dst: PEM_write_bio_X509_REQ_NEW
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:786,1
    - Dst: PEM_write_bio_X509_REQ
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:788,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:790,1
    - Dst: i2d_X509_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:796,1
    - Dst: PEM_write_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:798,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:800,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:807,1
    - Dst: NCONF_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:809,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:810,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:811,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:812,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:813,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:814,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:815,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:817,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:819,1
    - Dst: X509_REQ_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:820,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:821,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:822,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:823,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:825,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:827,1
    CyclomaticComplexity: 246
    EdgeCount: 246
    ICount: 594
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 829
      start: 138
    functionDepth: 7
    functionLinenumber: 138
    functionLinenumberEnd: 829
    functionName: req_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/req.c
    functionUses: 0
    functionsReached:
    - RSA_get0_key
    - sk_OPENSSL_STRING_value
    - BIO_new_file
    - app_RAND_write_file
    - X509V3_EXT_REQ_add_nconf
    - EVP_PKEY_free
    - sk_OPENSSL_STRING_free
    - bio_open_owner
    - NCONF_get_number
    - X509_set_subject_name
    - PEM_write_bio_X509_REQ_NEW
    - PEM_write_bio_PrivateKey
    - opt_unknown
    - opt_md
    - X509_print_ex
    - strcmp
    - ERR_print_errors
    - d2i_X509_REQ_bio
    - EVP_PKEY_keygen
    - X509_REQ_new
    - release_engine
    - atoi
    - load_key
    - X509_set_pubkey
    - if
    - BIO_printf
    - fprintf
    - sk_OPENSSL_STRING_push
    - opt_next
    - set_cert_times
    - X509_set_version
    - app_load_config
    - opt_format
    - EVP_des_ede3_cbc
    - EVP_PKEY_CTX_set_cb
    - ASN1_INTEGER_free
    - X509_REQ_print_ex
    - EVP_PKEY_base_id
    - NCONF_get_string
    - ERR_clear_error
    - PEM_read_bio_X509_REQ
    - rand_serial
    - EVP_PKEY_get0_RSA
    - STACK_OF
    - bio_open_default
    - X509_get_subject_name
    - X509_get0_pubkey
    - sk_OPENSSL_STRING_new_null
    - setup_engine
    - PEM_write_bio_X509
    - X509_REQ_get_subject_name
    - set_name_ex
    - ERR_peek_error
    - X509_free
    - PEM_write_bio_X509_REQ
    - i2d_X509_bio
    - sk_OPENSSL_STRING_num
    - X509_REQ_free
    - X509_set_issuer_name
    - X509V3_set_ctx
    - X509_get_serialNumber
    - pkey_ctrl_string
    - X509V3_set_nconf
    - app_RAND_load_file
    - BIO_puts
    - ENGINE_by_id
    - opt_help
    - ENGINE_free
    - ASN1_STRING_set_default_mask_asc
    - X509V3_set_ctx_test
    - X509_set_serialNumber
    - set_cert_ex
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_set_app_data
    - ERR_GET_REASON
    - X509_REQ_verify
    - opt_init
    - PEM_write_bio_PUBKEY
    - BN_print
    - app_RAND_load_files
    - BIO_free
    - print_name
    - opt_num_rest
    - set_keygen_ctx
    - NCONF_free
    - OBJ_create_objects
    - make_REQ
    - X509_new
    - opt_arg
    - s2i_ASN1_INTEGER
    - OPENSSL_free
    - assert
    - app_passwd
    - do_X509_sign
    - X509_REQ_get0_pubkey
    - BIO_free_all
    - build_subject
    - i2d_X509_REQ_bio
    - X509V3_EXT_add_nconf
    - add_oid_section
    - do_X509_REQ_sign
    linkageType: ''
    returnType: int
    signature: req_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:836,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:839,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:841,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:842,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:845,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:847,1
    - Dst: NCONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:851,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:853,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:857,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:859,1
    - Dst: NCONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:862,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:864,1
    - Dst: X509_REQ_set_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:870,1
    - Dst: build_subject
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:874,1
    - Dst: auto_info
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:876,1
    - Dst: prompt_info
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:878,1
    - Dst: X509_REQ_set_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:883,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 6
    argNames:
    - req
    - pkey
    - subj
    - multirdn
    - attribs
    - chtype
    argTypes:
    - X509_REQ*
    - EVP_PKEY*
    - char*
    - int
    - int
    - unsigned long
    constantsTouched: []
    func_position:
      end: 889
      start: 831
    functionDepth: 2
    functionLinenumber: 831
    functionLinenumberEnd: 889
    functionName: make_REQ
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/req.c
    functionUses: 1
    functionsReached:
    - prompt_info
    - strcmp
    - STACK_OF
    - build_subject
    - X509_REQ_set_pubkey
    - NCONF_get_string
    - X509_REQ_set_version
    - NCONF_get_section
    - BIO_printf
    - auto_info
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: "make_REQ(X509_REQ *req, EVP_PKEY *pkey, char *subj, int multirdn,\n
      \                   int attribs, unsigned long chtype)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:900,1
    - Dst: X509_REQ_set_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:903,1
    - Dst: X509_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:904,1
    - Dst: X509_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:907,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - req
    - subject
    - chtype
    - multirdn
    argTypes:
    - X509_REQ*
    - char*
    - unsigned long
    - int
    constantsTouched: []
    func_position:
      end: 909
      start: 895
    functionDepth: 2
    functionLinenumber: 895
    functionLinenumberEnd: 909
    functionName: build_subject
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/req.c
    functionUses: 2
    functionsReached:
    - parse_name
    - X509_REQ_set_subject_name
    - X509_NAME_free
    linkageType: ''
    returnType: int
    signature: "build_subject(X509_REQ *req, const char *subject, unsigned long chtype,\n
      \                        int multirdn)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1153,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1154,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1156,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1157,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1158,1
    - Dst: fgets
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1162,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1175,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1176,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1180,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1182,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1187,1
    - Dst: req_check_len
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1189,1
    - Dst: X509_NAME_add_entry_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1195,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 9
    argNames:
    - n
    - text
    - def
    - value
    - nid
    - n_min
    - n_max
    - chtype
    - mval
    argTypes:
    - X509_NAME*
    - char*
    - char*
    - char*
    - int
    - int
    - int
    - unsigned long
    - int
    constantsTouched: []
    func_position:
      end: 1201
      start: 1145
    functionDepth: 2
    functionLinenumber: 1145
    functionLinenumberEnd: 1201
    functionName: add_DN_object
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/req.c
    functionUses: 0
    functionsReached:
    - BIO_flush
    - OPENSSL_strlcpy
    - fgets
    - strlen
    - X509_NAME_add_entry_by_NID
    - req_check_len
    - BIO_printf
    - OPENSSL_strlcat
    - ebcdic2ascii
    linkageType: ''
    returnType: int
    signature: "add_DN_object(X509_NAME *n, char *text, const char *def,\n                         char
      *value, int nid, int n_min, int n_max,\n                         unsigned long
      chtype, int mval)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1212,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1213,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1215,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1216,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1217,1
    - Dst: fgets
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1221,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1234,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1235,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1239,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1241,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1246,1
    - Dst: req_check_len
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1248,1
    - Dst: X509_REQ_add1_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1254,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1256,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1257,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 8
    argNames:
    - req
    - text
    - def
    - value
    - nid
    - n_min
    - n_max
    - chtype
    argTypes:
    - X509_REQ*
    - char*
    - char*
    - char*
    - int
    - int
    - int
    - unsigned long
    constantsTouched: []
    func_position:
      end: 1264
      start: 1203
    functionDepth: 5
    functionLinenumber: 1203
    functionLinenumberEnd: 1264
    functionName: add_attribute_object
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/req.c
    functionUses: 0
    functionsReached:
    - X509_REQ_add1_attr_by_NID
    - BIO_flush
    - ERR_print_errors
    - OPENSSL_strlcpy
    - fgets
    - strlen
    - req_check_len
    - BIO_printf
    - OPENSSL_strlcat
    - ebcdic2ascii
    linkageType: ''
    returnType: int
    signature: "add_attribute_object(X509_REQ *req, char *text, const char *def,\n
      \                               char *value, int nid, int n_min,\n                                int
      n_max, unsigned long chtype)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1269,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - len
    - n_min
    - n_max
    argTypes:
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1281
      start: 1266
    functionDepth: 2
    functionLinenumber: 1266
    functionLinenumberEnd: 1281
    functionName: req_check_len
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/req.c
    functionUses: 2
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: req_check_len(int len, int n_min, int n_max)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1288,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1289,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - str
    - end
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1294
      start: 1284
    functionDepth: 0
    functionLinenumber: 1284
    functionLinenumberEnd: 1294
    functionName: check_end
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/req.c
    functionUses: 0
    functionsReached:
    - strlen
    - strcmp
    linkageType: ''
    returnType: int
    signature: check_end(const char *str, const char *end)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atol
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1311,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1313,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1324,1
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1330,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1333,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1337,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1339,1
    - Dst: atol
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1343,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1352,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1354,1
    - Dst: PEM_read_bio_Parameters
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1357,1
    - Dst: BIO_reset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1361,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1362,1
    - Dst: X509_get_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1364,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1365,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1369,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1372,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1376,1
    - Dst: EVP_PKEY_base_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1377,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1378,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1379,1
    - Dst: EVP_PKEY_asn1_find
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1388,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1390,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1393,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1394,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1396,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1401,1
    - Dst: EVP_PKEY_bits
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1402,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1403,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1405,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1408,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1409,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1413,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1414,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1415,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1416,1
    - Dst: EVP_PKEY_CTX_set_rsa_keygen_bits
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1421,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1422,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1423,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1424,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 96
    argCount: 5
    argNames:
    - gstr
    - pkey_type
    - pkeylen
    - palgnam
    - keygen_engine
    argTypes:
    - char*
    - int*
    - long*
    - char**
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 1431
      start: 1296
    functionDepth: 5
    functionLinenumber: 1296
    functionLinenumberEnd: 1431
    functionName: set_keygen_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/req.c
    functionUses: 1
    functionsReached:
    - PEM_read_bio_Parameters
    - ENGINE_finish
    - BIO_new_file
    - OPENSSL_strdup
    - EVP_PKEY_CTX_free
    - BIO_printf
    - atol
    - EVP_PKEY_free
    - EVP_PKEY_asn1_find
    - EVP_PKEY_CTX_new_id
    - BIO_free
    - X509_free
    - EVP_PKEY_bits
    - BIO_reset
    - EVP_PKEY_id
    - X509_get_pubkey
    - strlen
    - EVP_PKEY_asn1_find_str
    - EVP_PKEY_base_id
    - EVP_PKEY_keygen_init
    - EVP_PKEY_CTX_new
    - PEM_read_bio_X509
    - BIO_puts
    - ERR_print_errors
    - strncmp
    - EVP_PKEY_asn1_get0_info
    - EVP_PKEY_CTX_set_rsa_keygen_bits
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: "*set_keygen_ctx(const char *gstr,\n                                    int
      *pkey_type, long *pkeylen,\n                                    char **palgnam,
      ENGINE *keygen_engine)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_app_data
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1436,1
    - Dst: EVP_PKEY_CTX_get_keygen_info
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1438,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1447,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1448,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 1450
      start: 1433
    functionDepth: 1
    functionLinenumber: 1433
    functionLinenumberEnd: 1450
    functionName: genpkey_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/req.c
    functionUses: 0
    functionsReached:
    - BIO_flush
    - EVP_PKEY_CTX_get_app_data
    - EVP_PKEY_CTX_get_keygen_info
    - BIO_write
    linkageType: ''
    returnType: int
    signature: genpkey_cb(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestSignInit
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1460,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1462,1
    - Dst: pkey_ctrl_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1464,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1465,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - pkey
    - md
    - sigopts
    argTypes:
    - EVP_MD_CTX*
    - EVP_PKEY*
    - EVP_MD*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 1471
      start: 1452
    functionDepth: 5
    functionLinenumber: 1452
    functionLinenumberEnd: 1471
    functionName: do_sign_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/req.c
    functionUses: 0
    functionsReached:
    - EVP_DigestSignInit
    - sk_OPENSSL_STRING_num
    - ERR_print_errors
    - pkey_ctrl_string
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "do_sign_init(EVP_MD_CTX *ctx, EVP_PKEY *pkey,\n                        const
      EVP_MD *md, STACK_OF(OPENSSL_STRING) *sigopts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1477,1
    - Dst: do_sign_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1479,1
    - Dst: X509_sign_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1481,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - x
    - pkey
    - md
    - sigopts
    argTypes:
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 1484
      start: 1473
    functionDepth: 6
    functionLinenumber: 1473
    functionLinenumberEnd: 1484
    functionName: do_X509_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/req.c
    functionUses: 1
    functionsReached:
    - EVP_MD_CTX_new
    - do_sign_init
    - X509_sign_ctx
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: int
    signature: "do_X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md,\n                 STACK_OF(OPENSSL_STRING)
      *sigopts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1490,1
    - Dst: do_sign_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1491,1
    - Dst: X509_REQ_sign_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1493,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - x
    - pkey
    - md
    - sigopts
    argTypes:
    - X509_REQ*
    - EVP_PKEY*
    - EVP_MD*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 1496
      start: 1486
    functionDepth: 6
    functionLinenumber: 1486
    functionLinenumberEnd: 1496
    functionName: do_X509_REQ_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/req.c
    functionUses: 1
    functionsReached:
    - EVP_MD_CTX_new
    - do_sign_init
    - EVP_MD_CTX_free
    - X509_REQ_sign_ctx
    linkageType: ''
    returnType: int
    signature: "do_X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md,\n
      \                    STACK_OF(OPENSSL_STRING) *sigopts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1502,1
    - Dst: do_sign_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1503,1
    - Dst: X509_CRL_sign_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1505,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/req.c:1506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - x
    - pkey
    - md
    - sigopts
    argTypes:
    - X509_CRL*
    - EVP_PKEY*
    - EVP_MD*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 1508
      start: 1498
    functionDepth: 6
    functionLinenumber: 1498
    functionLinenumberEnd: 1508
    functionName: do_X509_CRL_sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/req.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_new
    - do_sign_init
    - X509_CRL_sign_ctx
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: int
    signature: "do_X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md,\n
      \                    STACK_OF(OPENSSL_STRING) *sigopts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:71,1
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:86,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:87,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:92,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:95,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:99,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:99,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:103,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:106,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:106,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:110,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:113,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:113,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:117,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:120,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:123,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:127,1
    - Dst: set_name_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:173,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:173,1
    - Dst: opt_md
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:177,1
    - Dst: opt_unknown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:177,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:181,1
    - Dst: load_crl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:188,1
    - Dst: setup_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:193,1
    - Dst: X509_STORE_add_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:195,1
    - Dst: X509_LOOKUP_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:195,1
    - Dst: X509_STORE_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:198,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:199,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:200,1
    - Dst: X509_STORE_CTX_get_obj_by_subject
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:204,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:205,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:207,1
    - Dst: X509_get_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:210,1
    - Dst: X509_OBJECT_get0_X509
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:210,1
    - Dst: X509_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:211,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:213,1
    - Dst: X509_CRL_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:216,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:217,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:221,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:223,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:229,1
    - Dst: load_crl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:232,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:235,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:237,1
    - Dst: X509_CRL_diff
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:240,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:241,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:242,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:244,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:247,1
    - Dst: X509_CRL_get0_signature
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:255,1
    - Dst: corrupt_signature
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:256,1
    - Dst: print_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:262,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:262,1
    - Dst: X509_CRL_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:267,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:268,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:270,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:271,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:273,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:274,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:277,1
    - Dst: X509_NAME_hash
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:278,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:278,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:282,1
    - Dst: X509_NAME_hash_old
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:283,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:283,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:287,1
    - Dst: ASN1_TIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:288,1
    - Dst: X509_CRL_get0_lastUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:288,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:289,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:292,1
    - Dst: X509_CRL_get0_nextUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:293,1
    - Dst: ASN1_TIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:294,1
    - Dst: X509_CRL_get0_nextUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:294,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:296,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:297,1
    - Dst: X509_CRL_digest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:304,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:305,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:308,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:309,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:309,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:311,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:317,1
    - Dst: X509_CRL_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:322,1
    - Dst: i2d_X509_CRL_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:330,1
    - Dst: PEM_write_bio_X509_CRL
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:332,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:334,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:341,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:342,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:343,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:344,1
    - Dst: X509_STORE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl.c:345,1
    CyclomaticComplexity: 90
    EdgeCount: 90
    ICount: 255
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 347
      start: 62
    functionDepth: 6
    functionLinenumber: 62
    functionLinenumberEnd: 347
    functionName: crl_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/crl.c
    functionUses: 0
    functionsReached:
    - X509_CRL_diff
    - X509_CRL_get0_nextUpdate
    - X509_STORE_CTX_init
    - X509_CRL_free
    - load_key
    - X509_STORE_CTX_free
    - OBJ_nid2sn
    - EVP_MD_type
    - setup_verify
    - BIO_printf
    - ASN1_TIME_print
    - EVP_PKEY_free
    - X509_NAME_hash
    - opt_init
    - X509_CRL_get_issuer
    - EVP_sha1
    - opt_next
    - X509_NAME_hash_old
    - i2a_ASN1_INTEGER
    - set_name_ex
    - print_name
    - corrupt_signature
    - opt_num_rest
    - opt_format
    - X509_CRL_get_ext_d2i
    - X509_CRL_get0_signature
    - X509_STORE_free
    - PEM_write_bio_X509_CRL
    - ASN1_INTEGER_free
    - X509_get_pubkey
    - load_crl
    - opt_arg
    - X509_CRL_print
    - X509_STORE_CTX_new
    - opt_unknown
    - opt_md
    - X509_STORE_add_lookup
    - X509_LOOKUP_file
    - BIO_free_all
    - X509_CRL_verify
    - BIO_puts
    - ERR_print_errors
    - bio_open_default
    - opt_help
    - X509_OBJECT_get0_X509
    - X509_CRL_get0_lastUpdate
    - X509_CRL_digest
    - i2d_X509_CRL_bio
    - X509_OBJECT_free
    - X509_STORE_CTX_get_obj_by_subject
    linkageType: ''
    returnType: int
    signature: crl_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: sig_done
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - signal
    linkageType: ''
    returnType: SIGRETTYPE
    signature: sig_done(int sig)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - secs
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: alarm_win32
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: alarm_win32(unsigned int secs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sleep
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - VOID*
    constantsTouched: []
    func_position:
      end: 310
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 310
    functionName: sleepy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - Sleep
    linkageType: ''
    returnType: DWORD
    signature: sleepy(VOID * arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateThread
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:319,1
    - Dst: GetLastError
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:321,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:322,1
    - Dst: ExitProcess
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:323,1
    - Dst: Sleep
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:326,1
    - Dst: app_tminterval
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:327,1
    - Dst: app_tminterval
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:329,1
    - Dst: TerminateThread
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:331,1
    - Dst: CloseHandle
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:332,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 336
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 336
    functionName: Time_F
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 1
    functionsReached:
    - app_tminterval
    - ExitProcess
    - TerminateThread
    - CloseHandle
    - CreateThread
    - GetLastError
    - BIO_printf
    - Sleep
    linkageType: ''
    returnType: double
    signature: Time_F(int s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: alarm
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: Time_F
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 1
    functionsReached:
    - alarm
    linkageType: ''
    returnType: double
    signature: Time_F(int s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - name
    - pairs
    - result
    argTypes:
    - char*
    - OPT_PAIR*
    - int*
    constantsTouched: []
    func_position:
      end: 358
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 358
    functionName: found
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 4
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: found(const char *name, const OPT_PAIR *pairs, int *result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:601,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:602,1
    - Dst: EVP_md2
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 607
      start: 594
    functionDepth: 5
    functionLinenumber: 594
    functionLinenumberEnd: 607
    functionName: EVP_Digest_MD2_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - EVP_Digest
    - COND
    - EVP_md2
    linkageType: ''
    returnType: int
    signature: EVP_Digest_MD2_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:618,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:619,1
    - Dst: EVP_mdc2
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:619,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 624
      start: 611
    functionDepth: 5
    functionLinenumber: 611
    functionLinenumberEnd: 624
    functionName: EVP_Digest_MDC2_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - EVP_Digest
    - EVP_mdc2
    - COND
    linkageType: ''
    returnType: int
    signature: EVP_Digest_MDC2_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:635,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:636,1
    - Dst: EVP_md4
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 641
      start: 628
    functionDepth: 5
    functionLinenumber: 628
    functionLinenumberEnd: 641
    functionName: EVP_Digest_MD4_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - EVP_Digest
    - COND
    - EVP_md4
    linkageType: ''
    returnType: int
    signature: EVP_Digest_MD4_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:651,1
    - Dst: MD5
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 654
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 654
    functionName: MD5_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - MD5
    linkageType: ''
    returnType: int
    signature: MD5_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:664,1
    - Dst: HMAC_Init_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:665,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:666,1
    - Dst: HMAC_Final
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:667,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 670
      start: 656
    functionDepth: 5
    functionLinenumber: 656
    functionLinenumberEnd: 670
    functionName: HMAC_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - HMAC_Final
    - COND
    - HMAC_Update
    - HMAC_Init_ex
    linkageType: ''
    returnType: int
    signature: HMAC_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:679,1
    - Dst: SHA1
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 682
      start: 673
    functionDepth: 2
    functionLinenumber: 673
    functionLinenumberEnd: 682
    functionName: SHA1_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - SHA1
    - COND
    linkageType: ''
    returnType: int
    signature: SHA1_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:690,1
    - Dst: SHA256
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 693
      start: 684
    functionDepth: 2
    functionLinenumber: 684
    functionLinenumberEnd: 693
    functionName: SHA256_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - SHA256
    - COND
    linkageType: ''
    returnType: int
    signature: SHA256_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:701,1
    - Dst: SHA512
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:702,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 704
      start: 695
    functionDepth: 2
    functionLinenumber: 695
    functionLinenumberEnd: 704
    functionName: SHA512_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - SHA512
    - COND
    linkageType: ''
    returnType: int
    signature: SHA512_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:713,1
    - Dst: WHIRLPOOL
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:714,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 716
      start: 707
    functionDepth: 3
    functionLinenumber: 707
    functionLinenumberEnd: 716
    functionName: WHIRLPOOL_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - WHIRLPOOL
    linkageType: ''
    returnType: int
    signature: WHIRLPOOL_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:726,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:727,1
    - Dst: EVP_ripemd160
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:728,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 732
      start: 720
    functionDepth: 5
    functionLinenumber: 720
    functionLinenumberEnd: 732
    functionName: EVP_Digest_RMD160_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - EVP_Digest
    - EVP_ripemd160
    - COND
    linkageType: ''
    returnType: int
    signature: EVP_Digest_RMD160_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:742,1
    - Dst: RC4
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 745
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 745
    functionName: RC4_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - RC4
    - COND
    linkageType: ''
    returnType: int
    signature: RC4_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:758,1
    - Dst: DES_ncbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 762
      start: 753
    functionDepth: 2
    functionLinenumber: 753
    functionLinenumberEnd: 762
    functionName: DES_ncbc_encrypt_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - DES_ncbc_encrypt
    linkageType: ''
    returnType: int
    signature: DES_ncbc_encrypt_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:769,1
    - Dst: DES_ede3_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 774
      start: 764
    functionDepth: 3
    functionLinenumber: 764
    functionLinenumberEnd: 774
    functionName: DES_ede3_cbc_encrypt_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - DES_ede3_cbc_encrypt
    - COND
    linkageType: ''
    returnType: int
    signature: DES_ede3_cbc_encrypt_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:786,1
    - Dst: AES_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 791
      start: 781
    functionDepth: 2
    functionLinenumber: 781
    functionLinenumberEnd: 791
    functionName: AES_cbc_128_encrypt_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - AES_cbc_encrypt
    linkageType: ''
    returnType: int
    signature: AES_cbc_128_encrypt_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:798,1
    - Dst: AES_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:799,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 803
      start: 793
    functionDepth: 2
    functionLinenumber: 793
    functionLinenumberEnd: 803
    functionName: AES_cbc_192_encrypt_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - AES_cbc_encrypt
    linkageType: ''
    returnType: int
    signature: AES_cbc_192_encrypt_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:810,1
    - Dst: AES_cbc_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 815
      start: 805
    functionDepth: 2
    functionLinenumber: 805
    functionLinenumberEnd: 815
    functionName: AES_cbc_256_encrypt_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - COND
    - AES_cbc_encrypt
    linkageType: ''
    returnType: int
    signature: AES_cbc_256_encrypt_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:823,1
    - Dst: AES_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 828
      start: 817
    functionDepth: 1
    functionLinenumber: 817
    functionLinenumberEnd: 828
    functionName: AES_ige_128_encrypt_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - AES_ige_encrypt
    - COND
    linkageType: ''
    returnType: int
    signature: AES_ige_128_encrypt_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:836,1
    - Dst: AES_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 841
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 841
    functionName: AES_ige_192_encrypt_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - AES_ige_encrypt
    - COND
    linkageType: ''
    returnType: int
    signature: AES_ige_192_encrypt_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:849,1
    - Dst: AES_ige_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 854
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 854
    functionName: AES_ige_256_encrypt_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - AES_ige_encrypt
    - COND
    linkageType: ''
    returnType: int
    signature: AES_ige_256_encrypt_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:862,1
    - Dst: CRYPTO_gcm128_aad
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 865
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 865
    functionName: CRYPTO_gcm128_aad_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - CRYPTO_gcm128_aad
    - COND
    linkageType: ''
    returnType: int
    signature: CRYPTO_gcm128_aad_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:879,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:880,1
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:882,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:883,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:885,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:887,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 889
      start: 869
    functionDepth: 3
    functionLinenumber: 869
    functionLinenumberEnd: 889
    functionName: EVP_Update_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - EVP_EncryptFinal_ex
    - COND
    - EVP_DecryptFinal_ex
    - EVP_EncryptUpdate
    - EVP_DecryptUpdate
    linkageType: ''
    returnType: int
    signature: EVP_Update_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:902,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:903,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 907
      start: 892
    functionDepth: 5
    functionLinenumber: 892
    functionLinenumberEnd: 907
    functionName: EVP_Digest_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - EVP_Digest
    - COND
    linkageType: ''
    returnType: int
    signature: EVP_Digest_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:920,1
    - Dst: RSA_sign
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:921,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:923,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:924,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 930
      start: 912
    functionDepth: 5
    functionLinenumber: 912
    functionLinenumberEnd: 930
    functionName: RSA_sign_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - RSA_sign
    - ERR_print_errors
    - BIO_printf
    - COND
    linkageType: ''
    returnType: int
    signature: RSA_sign_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:940,1
    - Dst: RSA_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:941,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:943,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:944,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 950
      start: 932
    functionDepth: 5
    functionLinenumber: 932
    functionLinenumberEnd: 950
    functionName: RSA_verify_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - ERR_print_errors
    - RSA_verify
    - COND
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: RSA_verify_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:963,1
    - Dst: DSA_sign
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:964,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:966,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:967,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 973
      start: 955
    functionDepth: 7
    functionLinenumber: 955
    functionLinenumberEnd: 973
    functionName: DSA_sign_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - ERR_print_errors
    - BIO_printf
    - COND
    - DSA_sign
    linkageType: ''
    returnType: int
    signature: DSA_sign_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:983,1
    - Dst: DSA_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:984,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:986,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:987,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 993
      start: 975
    functionDepth: 9
    functionLinenumber: 975
    functionLinenumberEnd: 993
    functionName: DSA_verify_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - ERR_print_errors
    - DSA_verify
    - BIO_printf
    - COND
    linkageType: ''
    returnType: int
    signature: DSA_verify_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1006,1
    - Dst: ECDSA_sign
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1007,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1010,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1011,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1017
      start: 998
    functionDepth: 5
    functionLinenumber: 998
    functionLinenumberEnd: 1017
    functionName: ECDSA_sign_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - ERR_print_errors
    - BIO_printf
    - COND
    - ECDSA_sign
    linkageType: ''
    returnType: int
    signature: ECDSA_sign_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1027,1
    - Dst: ECDSA_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1028,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1031,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1032,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1038
      start: 1019
    functionDepth: 5
    functionLinenumber: 1019
    functionLinenumberEnd: 1038
    functionName: ECDSA_verify_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - ERR_print_errors
    - BIO_printf
    - ECDSA_verify
    - COND
    linkageType: ''
    returnType: int
    signature: ECDSA_verify_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1053,1
    - Dst: ECDH_compute_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1054,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1055,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1059
      start: 1043
    functionDepth: 1
    functionLinenumber: 1043
    functionLinenumberEnd: 1059
    functionName: ECDH_compute_key_loop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - ECDH_compute_key
    - COND
    - EC_KEY_get0_public_key
    linkageType: ''
    returnType: int
    signature: ECDH_compute_key_loop(void *args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1068,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - in
    - inlen
    - out
    - outlen
    argTypes:
    - void*
    - size_t
    - void*
    - size_t*
    constantsTouched: []
    func_position:
      end: 1069
      start: 1062
    functionDepth: 2
    functionLinenumber: 1062
    functionLinenumberEnd: 1069
    functionName: KDF1_SHA1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - SHA1
    linkageType: ''
    returnType: void
    signature: "*KDF1_SHA1(const void *in, size_t inlen, void *out,\n                       size_t
      *outlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: loop_function
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1085,1
    - Dst: ASYNC_start_job
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1092,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1108,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1109,1
    - Dst: FD_ZERO
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1123,1
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1129,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1131,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1132,1
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1136,1
    - Dst: FD_SET
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1137,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1143,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1147,1
    - Dst: select
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1152,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1157,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1158,1
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1171,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1173,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1174,1
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1178,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1181,1
    - Dst: PeekNamedPipe
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1185,1
    - Dst: ASYNC_start_job
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1190,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1209,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:1210,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 98
    argCount: 2
    argNames:
    - async_jobs
    - loopargs
    argTypes:
    - int
    - loopargs_t*
    constantsTouched: []
    func_position:
      end: 1218
      start: 1072
    functionDepth: 5
    functionLinenumber: 1072
    functionLinenumberEnd: 1218
    functionName: run_benchmark
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - ERR_print_errors
    - FD_SET
    - FD_ISSET
    - loop_function
    - ASYNC_start_job
    - ASYNC_WAIT_CTX_get_all_fds
    - PeekNamedPipe
    - FD_ZERO
    - BIO_printf
    - select
    linkageType: ''
    returnType: int
    signature: "run_benchmark(int async_jobs,\n                         int (*loop_function)(void
      *), loopargs_t *loopargs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2824,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2827,1
    - Dst: alarm
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2828,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2830,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - s
    - num
    - length
    argTypes:
    - char*
    - long
    - int
    constantsTouched: []
    func_position:
      end: 2835
      start: 2821
    functionDepth: 2
    functionLinenumber: 2821
    functionLinenumberEnd: 2835
    functionName: print_message
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - alarm
    - BIO_flush
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: print_message(const char *s, long num, int length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2841,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2844,1
    - Dst: alarm
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2845,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2847,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - str
    - str2
    - num
    - bits
    - tm
    argTypes:
    - char*
    - char*
    - long
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2852
      start: 2837
    functionDepth: 2
    functionLinenumber: 2837
    functionLinenumberEnd: 2852
    functionName: pkey_print_message
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - alarm
    - BIO_flush
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: "pkey_print_message(const char *str, const char *str2, long num,\n
      \                              int bits, int tm)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2857,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2858,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2860,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - alg
    - run_no
    - count
    - time_used
    argTypes:
    - int
    - int
    - int
    - double
    constantsTouched: []
    func_position:
      end: 2864
      start: 2854
    functionDepth: 2
    functionLinenumber: 2854
    functionLinenumberEnd: 2864
    functionName: print_result
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - exit
    - BIO_puts
    linkageType: ''
    returnType: void
    signature: print_result(int alg, int run_no, int count, double time_used)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2875,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - string
    - delim
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 2893
      start: 2867
    functionDepth: 0
    functionLinenumber: 2867
    functionLinenumberEnd: 2893
    functionName: sstrsep
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: char
    signature: '*sstrsep(char **string, const char *delim)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2902,1
    - Dst: pipe
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2904,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2905,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2906,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2908,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2909,1
    - Dst: fork
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2910,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2911,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2914,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2915,1
    - Dst: dup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2916,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2917,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2918,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2920,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2923,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2926,1
    - Dst: fdopen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2935,1
    - Dst: fgets
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2936,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2937,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2941,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2945,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2946,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2951,1
    - Dst: sstrsep
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2951,1
    - Dst: sstrsep
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2952,1
    - Dst: atof
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2954,1
    - Dst: sstrsep
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2954,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2955,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2960,1
    - Dst: sstrsep
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2960,1
    - Dst: sstrsep
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2961,1
    - Dst: atof
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2963,1
    - Dst: sstrsep
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2963,1
    - Dst: atof
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2969,1
    - Dst: sstrsep
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2969,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2976,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2981,1
    - Dst: sstrsep
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2981,1
    - Dst: sstrsep
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2982,1
    - Dst: atof
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2984,1
    - Dst: sstrsep
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2984,1
    - Dst: atof
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2990,1
    - Dst: sstrsep
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2990,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:2998,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3003,1
    - Dst: sstrsep
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3003,1
    - Dst: sstrsep
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3004,1
    - Dst: atof
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3006,1
    - Dst: sstrsep
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3006,1
    - Dst: atof
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3013,1
    - Dst: sstrsep
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3013,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3019,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3024,1
    - Dst: sstrsep
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3024,1
    - Dst: sstrsep
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3025,1
    - Dst: atof
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3027,1
    - Dst: sstrsep
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3027,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3036,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3042,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3044,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 97
    argCount: 1
    argNames:
    - multi
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3046
      start: 2895
    functionDepth: 2
    functionLinenumber: 2895
    functionLinenumberEnd: 3046
    functionName: do_multi
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - atoi
    - fclose
    - printf
    - close
    - BIO_printf
    - pipe
    - exit
    - fork
    - fgets
    - fflush
    - dup
    - atof
    - fdopen
    - BIO_flush
    - strncmp
    - strchr
    - free
    - malloc
    - sstrsep
    linkageType: ''
    returnType: int
    signature: do_multi(int multi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3059,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3060,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3061,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3062,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3063,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3065,1
    - Dst: EVP_CIPHER_nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3065,1
    - Dst: print_message
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3068,1
    - Dst: Time_F
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3069,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3076,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3087,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3094,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3099,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3103,1
    - Dst: EVP_Cipher
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3105,1
    - Dst: Time_F
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3108,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3109,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3115,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3117,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3118,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3119,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3121,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3122,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3124,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3126,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3128,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3129,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3130,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3134,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3136,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3138,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3141,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3142,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/speed.c:3143,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 66
    argCount: 1
    argNames:
    - evp_cipher
    argTypes:
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 3144
      start: 3049
    functionDepth: 4
    functionLinenumber: 3049
    functionLinenumberEnd: 3144
    functionName: multiblock_speed
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
    functionUses: 0
    functionsReached:
    - EVP_EncryptInit_ex
    - RAND_bytes
    - EVP_CIPHER_CTX_new
    - OBJ_nid2ln
    - fprintf
    - EVP_CIPHER_CTX_free
    - app_malloc
    - memset
    - OPENSSL_free
    - print_message
    - EVP_Cipher
    - BIO_printf
    - Time_F
    - EVP_CIPHER_CTX_ctrl
    - EVP_CIPHER_nid
    linkageType: ''
    returnType: void
    signature: multiblock_speed(const EVP_CIPHER *evp_cipher)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_file_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/app_rand.c:23,1
    - Dst: RAND_egd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/app_rand.c:25,1
    - Dst: RAND_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/app_rand.c:34,1
    - Dst: RAND_status
      Src: /src/openweave-core/third_party/openssl/openssl/apps/app_rand.c:35,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/app_rand.c:37,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/app_rand.c:38,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/app_rand.c:40,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/app_rand.c:43,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/app_rand.c:45,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - file
    - dont_warn
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 54
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 54
    functionName: app_RAND_load_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/app_rand.c
    functionUses: 3
    functionsReached:
    - RAND_load_file
    - RAND_egd
    - RAND_status
    - BIO_printf
    - RAND_file_name
    linkageType: ''
    returnType: int
    signature: app_RAND_load_file(const char *file, int dont_warn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_egd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/app_rand.c:77,1
    - Dst: RAND_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/app_rand.c:82,1
    - Dst: app_RAND_allow_write_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/app_rand.c:87,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 89
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 89
    functionName: app_RAND_load_files
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/app_rand.c
    functionUses: 3
    functionsReached:
    - RAND_egd
    - app_RAND_allow_write_file
    - RAND_load_file
    linkageType: ''
    returnType: long
    signature: app_RAND_load_files(char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_file_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/app_rand.c:104,1
    - Dst: RAND_write_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/app_rand.c:105,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/app_rand.c:106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 110
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 110
    functionName: app_RAND_write_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/app_rand.c
    functionUses: 3
    functionsReached:
    - RAND_file_name
    - BIO_printf
    - RAND_write_file
    linkageType: ''
    returnType: int
    signature: app_RAND_write_file(const char *file)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: app_RAND_allow_write_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/app_rand.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: app_RAND_allow_write_file(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: save_errno
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: save_errno(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: restore_errno
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: restore_errno(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:120,1
    - Dst: SSL_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 133
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 133
    functionName: do_ssl_shutdown
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c
    functionUses: 0
    functionsReached:
    - SSL_get_error
    - SSL_shutdown
    linkageType: ''
    returnType: void
    signature: do_ssl_shutdown(SSL *ssl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:152,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:156,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:159,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:164,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:168,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:172,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:174,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:179,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:182,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:186,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:187,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:190,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:195,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 6
    argNames:
    - ssl
    - hint
    - identity
    - max_identity_len
    - psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - char*
    - unsigned int
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 197
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 197
    functionName: psk_client_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - OPENSSL_hexstr2buf
    - memcpy
    - BIO_printf
    - OPENSSL_free
    linkageType: ''
    returnType: unsigned int
    signature: "psk_client_cb(SSL *ssl, const char *hint, char *identity,\n                                  unsigned
      int max_identity_len,\n                                  unsigned char *psk,\n
      \                                 unsigned int max_psk_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_servername_type
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:210,1
    - Dst: SSL_session_reused
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:211,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - s
    - ad
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 216
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 216
    functionName: ssl_servername_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c
    functionUses: 0
    functionsReached:
    - SSL_get_servername_type
    - BIO_printf
    - SSL_session_reused
    linkageType: ''
    returnType: int
    signature: ssl_servername_cb(SSL *s, int *ad, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:234,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:235,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:236,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:248,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:249,1
    - Dst: BN_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:250,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 5
    argCount: 2
    argNames:
    - N
    - g
    argTypes:
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 252
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 252
    functionName: srp_Verify_N_and_g
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_CTX_free
    - BN_free
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: srp_Verify_N_and_g(const BIGNUM *N, const BIGNUM *g)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_srp_N
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:275,1
    - Dst: SSL_get_srp_g
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:275,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:278,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:279,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:280,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:281,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:282,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:283,1
    - Dst: SRP_check_known_gN_param
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:286,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:291,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:299,1
    - Dst: srp_Verify_N_and_g
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:299,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:302,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    constantsTouched: []
    func_position:
      end: 304
      start: 270
    functionDepth: 4
    functionLinenumber: 270
    functionLinenumberEnd: 304
    functionName: ssl_srp_verify_param_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c
    functionUses: 0
    functionsReached:
    - srp_Verify_N_and_g
    - BN_print
    - SSL_get_srp_N
    - SSL_get_srp_g
    - SRP_check_known_gN_param
    - BN_num_bits
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: ssl_srp_verify_param_cb(SSL *s, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: password_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:317,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:318,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    constantsTouched: []
    func_position:
      end: 325
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 325
    functionName: ssl_give_srp_client_pwd_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - password_callback
    - BIO_printf
    linkageType: ''
    returnType: char
    signature: '*ssl_give_srp_client_pwd_cb(SSL *s, void *arg)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:350,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:353,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:354,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:357,1
    - Dst: SSL_select_next_proto
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:361,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - s
    - out
    - outlen
    - in
    - inlen
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - void*
    constantsTouched: []
    func_position:
      end: 363
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 363
    functionName: next_proto_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - BIO_write
    - SSL_select_next_proto
    linkageType: ''
    returnType: int
    signature: "next_proto_cb(SSL *s, unsigned char **out, unsigned char *outlen,\n
      \                        const unsigned char *in, unsigned int inlen,\n                         void
      *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:378,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:380,1
    - Dst: PEM_write_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 384
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 384
    functionName: serverinfo_cli_parse_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BIO_snprintf
    - PEM_write_bio
    linkageType: ''
    returnType: int
    signature: "serverinfo_cli_parse_cb(SSL *s, unsigned int ext_type,\n                                   const
      unsigned char *in, size_t inlen,\n                                   int *al,
      void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:405,1
    - Dst: _UC
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:405,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:407,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:409,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:421,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - inptr
    - result
    argTypes:
    - char**
    - void*
    constantsTouched: []
    func_position:
      end: 427
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 427
    functionName: hexdecode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c
    functionUses: 0
    functionsReached:
    - OPENSSL_hexchar2int
    - OPENSSL_free
    - _UC
    - isspace
    linkageType: ''
    returnType: ossl_ssize_t
    signature: hexdecode(const char **inptr, void *result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: save_errno
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:441,1
    - Dst: strtol
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:442,1
    - Dst: restore_errno
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:443,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:446,1
    - Dst: _UC
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:446,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:450,1
    - Dst: _UC
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:450,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 2
    argNames:
    - inptr
    - out
    argTypes:
    - char**
    - void*
    constantsTouched: []
    func_position:
      end: 455
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 455
    functionName: checked_uint8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c
    functionUses: 0
    functionsReached:
    - isspace
    - restore_errno
    - _UC
    - strtol
    - save_errno
    linkageType: ''
    returnType: ossl_ssize_t
    signature: checked_uint8(const char **inptr, void *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct tlsa_field*::parser
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:484,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:485,1
    - Dst: SSL_dane_tlsa_add
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:491,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:492,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:495,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:496,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:501,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:502,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - con
    - rrdata
    argTypes:
    - SSL*
    - char*
    constantsTouched: []
    func_position:
      end: 507
      start: 463
    functionDepth: 5
    functionLinenumber: 463
    functionLinenumberEnd: 507
    functionName: tlsa_import_rr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c
    functionUses: 1
    functionsReached:
    - ERR_print_errors
    - SSL_dane_tlsa_add
    - BIO_printf
    - OPENSSL_free
    - struct tlsa_field*::parser
    linkageType: ''
    returnType: int
    signature: tlsa_import_rr(SSL *con, const char *rrdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:768,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dest
    - source
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 772
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 772
    functionName: freeandcopy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    linkageType: ''
    returnType: void
    signature: freeandcopy(char **dest, const char *source)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:780,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:785,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:787,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:789,1
    - Dst: TLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:790,1
    - Dst: FD_ZERO
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:865,1
    - Dst: FD_ZERO
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:866,1
    - Dst: __has_feature
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:869,1
    - Dst: __msan_unpoison
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:870,1
    - Dst: __msan_unpoison
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:871,1
    - Dst: opt_progname
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:875,1
    - Dst: X509_VERIFY_PARAM_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:880,1
    - Dst: SSL_CONF_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:881,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:884,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:888,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:889,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:890,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:892,1
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:894,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:895,1
    - Dst: IS_INET_FLAG
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:897,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:898,1
    - Dst: IS_UNIX_FLAG
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:903,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:904,1
    - Dst: IS_PROT_FLAG
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:910,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:911,1
    - Dst: IS_NO_PROT_FLAG
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:914,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:917,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:926,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:929,1
    - Dst: freeandcopy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:946,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:946,1
    - Dst: freeandcopy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:950,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:950,1
    - Dst: freeandcopy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:954,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:954,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:957,1
    - Dst: freeandcopy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:964,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:964,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:968,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:971,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:975,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:975,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:977,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:980,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:983,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:989,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:992,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:995,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:995,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:999,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:999,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1013,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1015,1
    - Dst: opt_flag
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1015,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1016,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1016,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1017,1
    - Dst: opt_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1022,1
    - Dst: args_excert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1027,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1046,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1046,1
    - Dst: ENGINE_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1050,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1050,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1052,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1058,1
    - Dst: dbug_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1079,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1086,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1086,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1110,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1113,1
    - Dst: isxdigit
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1114,1
    - Dst: _UC
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1114,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1116,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1123,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1128,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1133,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1133,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1134,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1151,1
    - Dst: DTLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1171,1
    - Dst: DTLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1177,1
    - Dst: DTLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1185,1
    - Dst: atol
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1198,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1198,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1205,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1205,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1209,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1212,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1215,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1221,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1227,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1230,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1236,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1249,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1253,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1256,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1259,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1263,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1265,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1265,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1266,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1275,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1279,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1282,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1283,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1286,1
    - Dst: opt_pair
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1294,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1294,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1298,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1301,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1304,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1307,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1307,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1313,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1313,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1323,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1323,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1326,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1326,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1331,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1334,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1342,1
    - Dst: BIO_parse_hostserv
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1345,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1347,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1349,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1351,1
    - Dst: BIO_parse_hostserv
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1359,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1362,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1364,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1366,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1374,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1380,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1385,1
    - Dst: next_protos_parse
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1393,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1395,1
    - Dst: app_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1402,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1403,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1411,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1414,1
    - Dst: load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1420,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1422,1
    - Dst: load_certs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1428,1
    - Dst: load_crl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1435,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1437,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1438,1
    - Dst: sk_X509_CRL_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1441,1
    - Dst: sk_X509_CRL_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1442,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1443,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1444,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1445,1
    - Dst: load_excert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1450,1
    - Dst: app_RAND_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1453,1
    - Dst: RAND_status
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1454,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1455,1
    - Dst: app_RAND_load_files
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1459,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1460,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1465,1
    - Dst: BIO_s_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1465,1
    - Dst: dup_bio_out
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1467,1
    - Dst: dup_bio_out
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1469,1
    - Dst: app_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1472,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1473,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1478,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1480,1
    - Dst: ssl_ctx_security_debug
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1485,1
    - Dst: SSL_CTX_config
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1488,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1489,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1491,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1496,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1498,1
    - Dst: SSL_CTX_set1_param
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1501,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1502,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1503,1
    - Dst: SSL_CTX_set_mode
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1508,1
    - Dst: SSL_CTX_set_split_send_fragment
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1511,1
    - Dst: SSL_CTX_set_max_pipelines
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1514,1
    - Dst: SSL_CTX_set_default_read_buffer_len
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1518,1
    - Dst: config_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1521,1
    - Dst: ssl_load_stores
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1524,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1526,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1527,1
    - Dst: SSL_CTX_set_client_cert_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1532,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1533,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1534,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1535,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1538,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1545,1
    - Dst: SSL_CTX_set_psk_client_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1546,1
    - Dst: SSL_CTX_set_tlsext_use_srtp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1552,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1553,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1554,1
    - Dst: ssl_ctx_set_excert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1561,1
    - Dst: SSL_CTX_set_next_proto_select_cb
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1565,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1572,1
    - Dst: SSL_CTX_set_alpn_protos
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1576,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1577,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1580,1
    - Dst: SSL_CTX_add_client_custom_ext
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1584,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1588,1
    - Dst: SSL_CTX_set_info_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1595,1
    - Dst: SSL_CTX_enable_ct
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1600,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1601,1
    - Dst: ctx_set_ctlog_list_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1605,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1607,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1617,1
    - Dst: SSL_CTX_set_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1621,1
    - Dst: ctx_set_verify_locations
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1623,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1624,1
    - Dst: ssl_ctx_add_crls
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1628,1
    - Dst: set_cert_key_stuff
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1630,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1635,1
    - Dst: SSL_CTX_set_tlsext_servername_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1636,1
    - Dst: SSL_CTX_set_srp_username
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1640,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1641,1
    - Dst: SSL_CTX_set_srp_cb_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1646,1
    - Dst: SSL_CTX_set_srp_client_pwd_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1647,1
    - Dst: SSL_CTX_set_srp_strength
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1648,1
    - Dst: SSL_CTX_set_srp_verify_param_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1650,1
    - Dst: SSL_CTX_dane_enable
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1656,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1657,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1660,1
    - Dst: SSL_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1665,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1668,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1670,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1671,1
    - Dst: PEM_read_bio_SSL_SESSION
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1674,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1675,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1677,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1678,1
    - Dst: SSL_set_session
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1681,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1682,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1683,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1686,1
    - Dst: SSL_set_mode
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1690,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1693,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1694,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1695,1
    - Dst: SSL_dane_enable
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1701,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1702,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1704,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1708,1
    - Dst: tlsa_import_rrset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1712,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1713,1
    - Dst: SSL_dane_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1718,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1720,1
    - Dst: init_client
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1726,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1727,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1727,1
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1728,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1731,1
    - Dst: BIO_socket_nbio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1734,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1735,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1738,1
    - Dst: BIO_new_dgram
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1744,1
    - Dst: BIO_ADDR_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1745,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1746,1
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1747,1
    - Dst: BIO_sock_info
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1750,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1751,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1752,1
    - Dst: BIO_ADDR_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1753,1
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1754,1
    - Dst: BIO_ctrl_set_connected
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1758,1
    - Dst: BIO_ADDR_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1759,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1765,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1769,1
    - Dst: DTLS_get_link_min_mtu
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1773,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1774,1
    - Dst: DTLS_get_link_min_mtu
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1775,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1776,1
    - Dst: SSL_set_options
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1779,1
    - Dst: DTLS_set_link_mtu
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1780,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1781,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1782,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1787,1
    - Dst: BIO_new_socket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1790,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1795,1
    - Dst: BIO_f_nbio_test
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1795,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1796,1
    - Dst: BIO_set_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1800,1
    - Dst: BIO_set_callback_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1801,1
    - Dst: SSL_set_msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1806,1
    - Dst: SSL_set_msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1809,1
    - Dst: SSL_set_msg_callback_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1810,1
    - Dst: SSL_set_tlsext_debug_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1814,1
    - Dst: SSL_set_tlsext_debug_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1815,1
    - Dst: SSL_set_tlsext_status_type
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1819,1
    - Dst: SSL_CTX_set_tlsext_status_cb
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1820,1
    - Dst: SSL_CTX_set_tlsext_status_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1821,1
    - Dst: SSL_set_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1825,1
    - Dst: SSL_set_connect_state
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1826,1
    - Dst: fileno_stdin
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1829,1
    - Dst: SSL_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1829,1
    - Dst: fileno_stdin
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1830,1
    - Dst: SSL_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1832,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1859,1
    - Dst: BIO_f_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1859,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1860,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1863,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1866,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1867,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1870,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1871,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1875,1
    - Dst: BIO_pop
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1876,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1877,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1879,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1882,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1883,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1888,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1889,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1890,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1892,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1900,1
    - Dst: BIO_f_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1900,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1901,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1902,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1904,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1905,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1908,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1909,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1913,1
    - Dst: BIO_pop
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1914,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1915,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1917,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1920,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1921,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1926,1
    - Dst: BIO_f_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1926,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1927,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1930,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1933,1
    - Dst: BIO_pop
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1934,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1935,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1936,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1937,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1944,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1949,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1951,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1953,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1956,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1963,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1965,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1967,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1989,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1990,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1993,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1994,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1995,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1997,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:1998,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2009,1
    - Dst: BIO_f_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2009,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2011,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2012,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2013,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2020,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2022,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2027,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2035,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2038,1
    - Dst: BIO_pop
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2039,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2040,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2049,1
    - Dst: BIO_f_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2049,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2051,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2052,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2053,1
    - Dst: SSL_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2054,1
    - Dst: FD_ZERO
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2059,1
    - Dst: openssl_fdset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2060,1
    - Dst: SSL_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2060,1
    - Dst: BIO_get_buffer_num_lines
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2070,1
    - Dst: BIO_pending
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2071,1
    - Dst: BIO_pending
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2072,1
    - Dst: select
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2073,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2075,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2081,1
    - Dst: sscanf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2082,1
    - Dst: strstr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2087,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2088,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2092,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2093,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2098,1
    - Dst: BIO_pop
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2099,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2100,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2102,1
    - Dst: FD_ZERO
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2110,1
    - Dst: FD_ZERO
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2111,1
    - Dst: SSL_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2113,1
    - Dst: DTLSv1_get_timeout
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2114,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2119,1
    - Dst: SSL_total_renegotiations
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2119,1
    - Dst: SSL_session_reused
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2127,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2128,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2134,1
    - Dst: PEM_write_bio_SSL_SESSION
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2136,1
    - Dst: SSL_get_session
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2136,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2137,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2139,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2143,1
    - Dst: print_ssl_summary
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2144,1
    - Dst: print_stuff
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2147,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2152,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2160,1
    - Dst: do_ssl_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2162,1
    - Dst: SSL_set_connect_state
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2163,1
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2164,1
    - Dst: SSL_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2164,1
    - Dst: SSL_has_pending
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2170,1
    - Dst: openssl_fdset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2181,1
    - Dst: fileno_stdin
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2181,1
    - Dst: openssl_fdset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2184,1
    - Dst: fileno_stdout
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2184,1
    - Dst: openssl_fdset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2188,1
    - Dst: SSL_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2188,1
    - Dst: openssl_fdset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2190,1
    - Dst: SSL_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2190,1
    - Dst: openssl_fdset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2194,1
    - Dst: SSL_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2194,1
    - Dst: openssl_fdset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2196,1
    - Dst: SSL_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2196,1
    - Dst: select
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2220,1
    - Dst: has_stdin_waiting
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2222,1
    - Dst: select
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2225,1
    - Dst: select
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2229,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2233,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2234,1
    - Dst: SSL_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2240,1
    - Dst: DTLSv1_handle_timeout
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2241,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2242,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2245,1
    - Dst: SSL_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2245,1
    - Dst: SSL_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2246,1
    - Dst: SSL_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2247,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2264,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2269,1
    - Dst: wait_for_async
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2270,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2275,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2281,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2285,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2296,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2297,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2307,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2315,1
    - Dst: fileno_stdout
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2315,1
    - Dst: ascii2ebcdic
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2319,1
    - Dst: raw_write_stdout
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2321,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2324,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2336,1
    - Dst: SSL_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2336,1
    - Dst: SSL_renegotiate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2341,1
    - Dst: SSL_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2346,1
    - Dst: SSL_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2348,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2359,1
    - Dst: wait_for_async
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2360,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2367,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2372,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2379,1
    - Dst: get_last_socket_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2382,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2384,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2386,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2389,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2395,1
    - Dst: has_stdin_waiting
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2402,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2404,1
    - Dst: fileno_stdin
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2404,1
    - Dst: raw_read_stdin
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2410,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2424,1
    - Dst: raw_read_stdin
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2426,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2433,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2439,1
    - Dst: SSL_renegotiate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2440,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2445,1
    - Dst: SSL_heartbeat
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2446,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2454,1
    CyclomaticComplexity: 477
    EdgeCount: 477
    ICount: 1300
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 2461
      start: 774
    functionDepth: 7
    functionLinenumber: 774
    functionLinenumberEnd: 2461
    functionName: s_client_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_SSL_SESSION
    - SSL_new
    - DTLSv1_get_timeout
    - BIO_new_file
    - FD_ZERO
    - SSL_get_error
    - dup_bio_out
    - ascii2ebcdic
    - SSL_CTX_set_alpn_protos
    - BIO_pending
    - SSL_set_options
    - fileno_stdin
    - config_ctx
    - SSL_set_tlsext_status_type
    - SSL_CTX_dane_enable
    - print_ssl_summary
    - BIO_socket_nbio
    - SSL_dane_enable
    - SSL_get_session
    - DTLS_client_method
    - BIO_parse_hostserv
    - strstr
    - SSL_CTX_set_next_proto_select_cb
    - BIO_gets
    - RAND_status
    - SSL_CTX_set_verify
    - SSL_set_connect_state
    - __msan_unpoison
    - fileno_stdout
    - ebcdic2ascii
    - SSL_CTX_set_psk_client_callback
    - __has_feature
    - ERR_print_errors
    - SSL_CTX_set_tlsext_status_cb
    - BIO_flush
    - SSL_read
    - SSL_CTX_set_default_read_buffer_len
    - SSL_set_tlsext_host_name
    - opt_verify
    - SSL_CTX_add_client_custom_ext
    - X509_CRL_free
    - atoi
    - load_key
    - IS_INET_FLAG
    - _UC
    - BIO_printf
    - atol
    - DTLS_set_link_mtu
    - load_certs
    - sk_OPENSSL_STRING_push
    - BIO_ctrl
    - dbug_init
    - opt_next
    - next_protos_parse
    - isxdigit
    - SSL_set_msg_callback
    - BIO_get_buffer_num_lines
    - SSL_CTX_set_srp_cb_arg
    - BIO_new
    - SSL_CTX_config
    - opt_format
    - SSL_CTX_new
    - SSL_CTX_set_srp_client_pwd_callback
    - PEM_write_bio_SSL_SESSION
    - BIO_set_callback
    - SSL_CTX_set_tlsext_servername_arg
    - openssl_fdset
    - BIO_read
    - SSL_renegotiate
    - SSL_CTX_set_client_cert_engine
    - print_stuff
    - set_cert_key_stuff
    - X509_VERIFY_PARAM_new
    - SSL_CTX_set_min_proto_version
    - ERR_clear_error
    - raw_read_stdin
    - SSL_SESSION_free
    - BIO_ADDR_new
    - ssl_ctx_add_crls
    - STACK_OF
    - SSL_dane_set_flags
    - SSL_write
    - IS_PROT_FLAG
    - SSL_version
    - BIO_new_dgram
    - app_malloc
    - load_cert
    - BIO_new_socket
    - sk_OPENSSL_STRING_new_null
    - BIO_write
    - do_ssl_shutdown
    - SSL_session_reused
    - raw_write_stdout
    - BIO_ADDR_free
    - SSL_CTX_set1_param
    - args_excert
    - setup_engine
    - SSL_CTX_set_max_pipelines
    - SSL_set_tlsext_debug_callback
    - BIO_ctrl_set_connected
    - FD_ISSET
    - opt_flag
    - BIO_s_null
    - BIO_set_callback_arg
    - SSL_get_fd
    - SSL_set_session
    - BIO_f_nbio_test
    - ssl_ctx_set_excert
    - wait_for_async
    - SSL_has_pending
    - load_crl
    - get_last_socket_error
    - SSL_CTX_set_info_callback
    - SSL_CTX_set_tlsext_servername_callback
    - app_RAND_load_file
    - sk_X509_CRL_new_null
    - memcmp
    - BIO_puts
    - ssl_ctx_security_debug
    - ENGINE_by_id
    - opt_help
    - ENGINE_free
    - ctx_set_verify_locations
    - BIO_pop
    - SSL_total_renegotiations
    - SSL_CONF_CTX_set_flags
    - sk_X509_CRL_push
    - BIO_push
    - opt_pair
    - SSL_CTX_set_mode
    - BIO_f_buffer
    - SSL_CTX_set_srp_strength
    - SSL_CTX_enable_ct
    - SSL_in_init
    - SSL_CTX_set_srp_username
    - BIO_sock_info
    - opt_init
    - init_client
    - app_RAND_load_files
    - BIO_free
    - SSL_set_bio
    - TLS_client_method
    - opt_num_rest
    - ssl_load_stores
    - SSL_CTX_set_tlsext_status_arg
    - select
    - SSL_CONF_CTX_new
    - DTLSv1_handle_timeout
    - ctx_set_ctlog_list_file
    - DTLS_get_link_min_mtu
    - SSL_set_tlsext_debug_arg
    - SSL_heartbeat
    - opt_arg
    - strlen
    - SSL_set_msg_callback_arg
    - OPENSSL_free
    - assert
    - opt_progname
    - IS_NO_PROT_FLAG
    - app_passwd
    - load_excert
    - has_stdin_waiting
    - SSL_set_mode
    - sscanf
    - freeandcopy
    - tlsa_import_rrset
    - SSL_CTX_set_max_proto_version
    - SSL_CTX_set_srp_verify_param_callback
    - IS_UNIX_FLAG
    - SSL_CTX_set_split_send_fragment
    - BIO_closesocket
    - SSL_CTX_set_tlsext_use_srtp
    linkageType: ''
    returnType: int
    signature: s_client_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2520,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2521,1
    - Dst: SSL_get_SSL_CTX
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2530,1
    - Dst: SSL_get_peer_cert_chain
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2536,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2540,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2541,1
    - Dst: X509_NAME_oneline
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2542,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2542,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2542,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2544,1
    - Dst: X509_NAME_oneline
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2545,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2545,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2545,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2547,1
    - Dst: PEM_write_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2549,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2549,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2553,1
    - Dst: SSL_get_peer_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2554,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2556,1
    - Dst: PEM_write_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2560,1
    - Dst: X509_NAME_oneline
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2561,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2561,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2562,1
    - Dst: X509_NAME_oneline
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2563,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2563,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2564,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2566,1
    - Dst: SSL_get_client_CA_list
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2568,1
    - Dst: sk_X509_NAME_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2569,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2570,1
    - Dst: sk_X509_NAME_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2571,1
    - Dst: sk_X509_NAME_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2572,1
    - Dst: X509_NAME_oneline
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2573,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2574,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2574,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2575,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2578,1
    - Dst: ssl_print_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2581,1
    - Dst: ssl_print_tmp_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2582,1
    - Dst: SSL_session_reused
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2594,1
    - Dst: SSL_ct_is_enabled
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2594,1
    - Dst: SSL_get0_peer_scts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2595,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2598,1
    - Dst: SSL_CTX_get0_ctlog_store
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2600,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2602,1
    - Dst: sk_SCT_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2604,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2606,1
    - Dst: SCT_validation_status_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2607,1
    - Dst: SCT_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2608,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2610,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2612,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2617,1
    - Dst: BIO_number_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2620,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2620,1
    - Dst: BIO_number_written
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2621,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2621,1
    - Dst: print_verify_detail
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2623,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2624,1
    - Dst: SSL_session_reused
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2624,1
    - Dst: SSL_get_current_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2625,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2626,1
    - Dst: SSL_CIPHER_get_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2627,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2627,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2631,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2632,1
    - Dst: EVP_PKEY_bits
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2633,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2635,1
    - Dst: SSL_get_secure_renegotiation_support
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2636,1
    - Dst: SSL_get_current_compression
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2638,1
    - Dst: SSL_get_current_expansion
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2639,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2640,1
    - Dst: SSL_COMP_get_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2641,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2642,1
    - Dst: SSL_COMP_get_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2643,1
    - Dst: SSL_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2652,1
    - Dst: BIO_ADDR_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2653,1
    - Dst: BIO_sock_info
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2654,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2655,1
    - Dst: ntohs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2656,1
    - Dst: BIO_ADDR_rawport
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2656,1
    - Dst: BIO_ADDR_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2658,1
    - Dst: SSL_get0_next_proto_negotiated
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2666,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2667,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2668,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2669,1
    - Dst: SSL_get0_alpn_selected
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2675,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2677,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2678,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2679,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2681,1
    - Dst: SSL_get_selected_srtp_profile
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2687,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2690,1
    - Dst: SSL_SESSION_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2695,1
    - Dst: SSL_get_session
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2695,1
    - Dst: SSL_get_session
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2696,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2697,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2698,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2699,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2700,1
    - Dst: SSL_export_keying_material
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2701,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2704,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2706,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2708,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2710,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2711,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2713,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2715,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2716,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2718,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 113
    argCount: 3
    argNames:
    - bio
    - s
    - full
    argTypes:
    - BIO*
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 2719
      start: 2516
    functionDepth: 5
    functionLinenumber: 2516
    functionLinenumberEnd: 2719
    functionName: print_stuff
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c
    functionUses: 1
    functionsReached:
    - ssl_print_sigalgs
    - SSL_COMP_get_name
    - SSL_session_reused
    - sk_X509_num
    - BIO_sock_info
    - BIO_ADDR_free
    - SCT_validation_status_string
    - BIO_printf
    - SSL_get_client_CA_list
    - X509_get_issuer_name
    - BIO_number_written
    - PEM_write_bio_X509
    - SSL_CTX_get0_ctlog_store
    - BIO_number_read
    - SSL_get_current_expansion
    - SSL_get_peer_cert_chain
    - ssl_print_tmp_key
    - SSL_get0_alpn_selected
    - SSL_get_fd
    - EVP_PKEY_bits
    - X509_free
    - print_verify_detail
    - BIO_ADDR_rawport
    - SSL_get_session
    - SCT_print
    - SSL_get_current_cipher
    - SSL_get_peer_certificate
    - SSL_ct_is_enabled
    - SSL_get0_next_proto_negotiated
    - SSL_get_current_compression
    - strlen
    - SSL_SESSION_print
    - SSL_export_keying_material
    - ntohs
    - sk_X509_NAME_value
    - SSL_get_SSL_CTX
    - SSL_get_selected_srtp_profile
    - OPENSSL_free
    - SSL_get_secure_renegotiation_support
    - sk_SCT_value
    - BIO_ADDR_new
    - SSL_get0_peer_scts
    - STACK_OF
    - BIO_flush
    - X509_get_subject_name
    - SSL_CIPHER_get_name
    - X509_get0_pubkey
    - app_malloc
    - X509_NAME_oneline
    - SSL_get_rbio
    - sk_X509_NAME_num
    - sk_X509_value
    - SSL_CIPHER_get_version
    - BIO_write
    - SSL_get_wbio
    linkageType: ''
    returnType: void
    signature: print_stuff(BIO *bio, SSL *s, int full)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_tlsext_status_ocsp_resp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2727,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2728,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2730,1
    - Dst: d2i_OCSP_RESPONSE
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2733,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2735,1
    - Dst: BIO_dump_indent
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2736,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2739,1
    - Dst: OCSP_RESPONSE_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2740,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2741,1
    - Dst: OCSP_RESPONSE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c:2742,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    constantsTouched: []
    func_position:
      end: 2744
      start: 2722
    functionDepth: 4
    functionLinenumber: 2722
    functionLinenumberEnd: 2744
    functionName: ocsp_resp_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c
    functionUses: 0
    functionsReached:
    - d2i_OCSP_RESPONSE
    - BIO_dump_indent
    - BIO_puts
    - OCSP_RESPONSE_free
    - SSL_get_tlsext_status_ocsp_resp
    - OCSP_RESPONSE_print
    linkageType: ''
    returnType: int
    signature: ocsp_resp_cb(SSL *s, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:89,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:90,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:95,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:98,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:104,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:132,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:142,1
    - Dst: opt_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:143,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:171,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:180,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:197,1
    - Dst: EVP_read_pw_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:208,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:215,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:222,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:223,1
    - Dst: do_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:227,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:238,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:249,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:250,1
    - Dst: do_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:253,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:265,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:266,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:267,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:268,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 145
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 270
      start: 75
    functionDepth: 5
    functionLinenumber: 75
    functionLinenumberEnd: 270
    functionName: passwd_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c
    functionUses: 0
    functionsReached:
    - opt_init
    - opt_rest
    - EVP_read_pw_string
    - opt_next
    - bio_open_default
    - opt_help
    - ERR_print_errors
    - app_malloc
    - BIO_gets
    - opt_arg
    - strchr
    - OPENSSL_free
    - BIO_free
    - do_passwd
    - opt_num_rest
    - BIO_printf
    - assert
    linkageType: ''
    returnType: int
    signature: passwd_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:293,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:296,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:301,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:302,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:303,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:305,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:309,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:314,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:316,1
    - Dst: EVP_md5
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:316,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:317,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:318,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:319,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:320,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:321,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:324,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:326,1
    - Dst: EVP_md5
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:326,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:327,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:328,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:329,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:330,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:334,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:337,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:342,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:346,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:350,1
    - Dst: EVP_md5
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:350,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:352,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:357,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:361,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:364,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:368,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:371,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:372,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:390,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:394,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:394,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:406,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:410,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:410,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:416,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:417,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 95
    argCount: 3
    argNames:
    - passwd
    - magic
    - salt
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 419
      start: 282
    functionDepth: 4
    functionLinenumber: 282
    functionLinenumberEnd: 419
    functionName: md5crypt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - assert
    - EVP_DigestUpdate
    - strlen
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - OPENSSL_strlcat
    - EVP_md5
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: char
    signature: '*md5crypt(const char *passwd, const char *magic, const char *salt)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:429,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:430,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:437,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:439,1
    - Dst: ascii2ebcdic
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:445,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:456,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:458,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:468,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:471,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:476,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:481,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:481,1
    - Dst: DES_crypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:486,1
    - Dst: md5crypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:490,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:492,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:495,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:497,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:499,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 12
    argNames:
    - passed_salt
    - salt_p
    - salt_malloc_p
    - passwd
    - out
    - quiet
    - table
    - reverse
    - pw_maxlen
    - usecrypt
    - use1
    - useapr1
    argTypes:
    - int
    - char**
    - char**
    - char*
    - BIO*
    - int
    - int
    - int
    - size_t
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 504
      start: 422
    functionDepth: 5
    functionLinenumber: 422
    functionLinenumberEnd: 504
    functionName: do_passwd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c
    functionUses: 1
    functionsReached:
    - RAND_bytes
    - ascii2ebcdic
    - app_malloc
    - strlen
    - DES_crypt
    - md5crypt
    - BIO_printf
    - assert
    linkageType: ''
    returnType: int
    signature: "do_passwd(int passed_salt, char **salt_p, char **salt_malloc_p,\n
      \                    char *passwd, BIO *out, int quiet, int table,\n                     int
      reverse, size_t pw_maxlen, int usecrypt, int use1,\n                     int
      useapr1)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 511
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 511
    functionName: passwd_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: passwd_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:52,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:53,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:58,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:61,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:65,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:65,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:69,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:69,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:74,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:77,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:89,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:93,1
    - Dst: load_sess_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:97,1
    - Dst: SSL_SESSION_get0_peer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:101,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:106,1
    - Dst: SSL_SESSION_set1_id_context
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:109,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:111,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:117,1
    - Dst: SSL_SESSION_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:123,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:127,1
    - Dst: X509_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:129,1
    - Dst: i2d_SSL_SESSION_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:135,1
    - Dst: PEM_write_bio_SSL_SESSION
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:137,1
    - Dst: SSL_SESSION_print_keylog
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:139,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:141,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:145,1
    - Dst: i2d_X509_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:150,1
    - Dst: PEM_write_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:152,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:154,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:158,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:164,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:165,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 120
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 167
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 167
    functionName: sess_id_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_set1_id_context
    - SSL_SESSION_print_keylog
    - BIO_printf
    - opt_init
    - PEM_write_bio_X509
    - opt_next
    - opt_num_rest
    - SSL_SESSION_get0_peer
    - opt_format
    - PEM_write_bio_SSL_SESSION
    - i2d_X509_bio
    - X509_print
    - opt_arg
    - SSL_SESSION_print
    - SSL_SESSION_free
    - BIO_free_all
    - BIO_puts
    - bio_open_default
    - load_sess_id
    - opt_help
    - i2d_SSL_SESSION_bio
    linkageType: ''
    returnType: int
    signature: sess_id_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:174,1
    - Dst: d2i_SSL_SESSION_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:178,1
    - Dst: PEM_read_bio_SSL_SESSION
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:180,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:182,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:183,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c:188,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - infile
    - format
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 190
      start: 169
    functionDepth: 5
    functionLinenumber: 169
    functionLinenumberEnd: 190
    functionName: load_sess_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c
    functionUses: 1
    functionsReached:
    - ERR_print_errors
    - bio_open_default
    - PEM_read_bio_SSL_SESSION
    - BIO_free
    - d2i_SSL_SESSION_bio
    - BIO_printf
    linkageType: ''
    returnType: SSL_SESSION
    signature: '*load_sess_id(char *infile, int format)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:60,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:61,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:66,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:69,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:73,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:73,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:77,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:77,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:81,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:84,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:87,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:87,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:90,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:93,1
    - Dst: opt_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:114,1
    - Dst: opt_unknown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:114,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:118,1
    - Dst: app_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:126,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:127,1
    - Dst: bio_open_owner
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:131,1
    - Dst: load_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:136,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:138,1
    - Dst: PEM_write_bio_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:145,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:147,1
    - Dst: PEM_write_bio_PrivateKey_traditional
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:149,1
    - Dst: PEM_write_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:153,1
    - Dst: i2d_PUBKEY_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:158,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:160,1
    - Dst: i2d_PrivateKey_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:161,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:164,1
    - Dst: EVP_PKEY_print_public
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:172,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:174,1
    - Dst: EVP_PKEY_print_private
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:175,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:182,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:183,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:184,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:185,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:186,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c:187,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 126
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 190
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 190
    functionName: pkey_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c
    functionUses: 0
    functionsReached:
    - release_engine
    - load_key
    - PEM_write_bio_PrivateKey_traditional
    - BIO_printf
    - EVP_PKEY_free
    - setup_engine
    - i2d_PrivateKey_bio
    - opt_init
    - PEM_write_bio_PUBKEY
    - opt_next
    - BIO_free
    - i2d_PUBKEY_bio
    - opt_num_rest
    - bio_open_owner
    - opt_format
    - load_pubkey
    - EVP_PKEY_print_private
    - PEM_write_bio_PrivateKey
    - opt_arg
    - opt_unknown
    - assert
    - app_passwd
    - EVP_PKEY_print_public
    - OPENSSL_free
    - BIO_free_all
    - opt_help
    - opt_cipher
    linkageType: ''
    returnType: int
    signature: pkey_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:62,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:63,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:68,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:72,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:75,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:75,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:79,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:82,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:85,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:85,1
    - Dst: init_keygen_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:90,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:90,1
    - Dst: init_gen_str
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:94,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:94,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:99,1
    - Dst: pkey_ctrl_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:102,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:102,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:103,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:105,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:106,1
    - Dst: opt_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:119,1
    - Dst: opt_unknown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:119,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:124,1
    - Dst: app_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:133,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:134,1
    - Dst: bio_open_owner
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:138,1
    - Dst: EVP_PKEY_CTX_set_cb
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:142,1
    - Dst: EVP_PKEY_CTX_set_app_data
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:143,1
    - Dst: EVP_PKEY_paramgen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:146,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:147,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:148,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:152,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:153,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:154,1
    - Dst: PEM_write_bio_Parameters
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:160,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:162,1
    - Dst: PEM_write_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:163,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:165,1
    - Dst: i2d_PrivateKey_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:166,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:168,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:173,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:174,1
    - Dst: EVP_PKEY_print_params
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:179,1
    - Dst: EVP_PKEY_print_private
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:181,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:184,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:185,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:192,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:193,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:194,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:195,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:196,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:197,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 142
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 199
      start: 50
    functionDepth: 5
    functionLinenumber: 50
    functionLinenumberEnd: 199
    functionName: genpkey_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c
    functionUses: 0
    functionsReached:
    - release_engine
    - EVP_PKEY_CTX_free
    - BIO_printf
    - EVP_PKEY_free
    - EVP_PKEY_CTX_set_app_data
    - setup_engine
    - i2d_PrivateKey_bio
    - opt_init
    - opt_next
    - BIO_free
    - opt_num_rest
    - bio_open_owner
    - opt_format
    - EVP_PKEY_print_private
    - EVP_PKEY_CTX_set_cb
    - PEM_write_bio_PrivateKey
    - EVP_PKEY_print_params
    - opt_arg
    - pkey_ctrl_string
    - opt_unknown
    - init_gen_str
    - app_passwd
    - EVP_PKEY_paramgen
    - assert
    - OPENSSL_free
    - PEM_write_bio_Parameters
    - BIO_free_all
    - BIO_puts
    - init_keygen_file
    - ERR_print_errors
    - opt_help
    - opt_cipher
    - EVP_PKEY_keygen
    linkageType: ''
    returnType: int
    signature: genpkey_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:207,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:211,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:213,1
    - Dst: PEM_read_bio_Parameters
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:217,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:218,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:221,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:225,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:228,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:230,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:235,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:236,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:237,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:238,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 3
    argNames:
    - pctx
    - file
    - e
    argTypes:
    - EVP_PKEY_CTX**
    - char*
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 241
      start: 201
    functionDepth: 5
    functionLinenumber: 201
    functionLinenumberEnd: 241
    functionName: init_keygen_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_CTX_new
    - BIO_puts
    - ERR_print_errors
    - BIO_free
    - PEM_read_bio_Parameters
    - BIO_new_file
    - EVP_PKEY_CTX_free
    - BIO_printf
    - EVP_PKEY_free
    - EVP_PKEY_keygen_init
    linkageType: ''
    returnType: int
    signature: init_keygen_file(EVP_PKEY_CTX **pctx, const char *file, ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:252,1
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:256,1
    - Dst: ENGINE_get_pkey_asn1_meth_str
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:260,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:264,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:268,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:270,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:272,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:274,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:279,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:282,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:290,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:291,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:292,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 4
    argNames:
    - pctx
    - algname
    - e
    - do_param
    argTypes:
    - EVP_PKEY_CTX**
    - char*
    - ENGINE*
    - int
    constantsTouched: []
    func_position:
      end: 295
      start: 243
    functionDepth: 5
    functionLinenumber: 243
    functionLinenumberEnd: 295
    functionName: init_gen_str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_paramgen_init
    - ENGINE_get_pkey_asn1_meth_str
    - BIO_puts
    - ERR_print_errors
    - EVP_PKEY_CTX_new_id
    - ENGINE_finish
    - EVP_PKEY_asn1_find_str
    - EVP_PKEY_asn1_get0_info
    - EVP_PKEY_CTX_free
    - BIO_printf
    - EVP_PKEY_keygen_init
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: "init_gen_str(EVP_PKEY_CTX **pctx,\n                 const char *algname,
      ENGINE *e, int do_param)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_app_data
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:300,1
    - Dst: EVP_PKEY_CTX_get_keygen_info
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:302,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:311,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c:312,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    constantsTouched: []
    func_position:
      end: 314
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 314
    functionName: genpkey_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c
    functionUses: 0
    functionsReached:
    - BIO_flush
    - EVP_PKEY_CTX_get_app_data
    - EVP_PKEY_CTX_get_keygen_info
    - BIO_write
    linkageType: ''
    returnType: int
    signature: genpkey_cb(EVP_PKEY_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:195,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:196,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:197,1
    - Dst: X509_VERIFY_PARAM_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:223,1
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:226,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:227,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:232,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:235,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:239,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:239,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:243,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:243,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:247,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:272,1
    - Dst: SMIME_read_CMS
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:367,1
    - Dst: PEM_read_bio_CMS
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:369,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:371,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:371,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:376,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:379,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:382,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:391,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:394,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:398,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:400,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:400,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:404,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:406,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:406,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:413,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:414,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:417,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:417,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:419,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:419,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:426,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:427,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:430,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:430,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:432,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:432,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:438,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:442,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:443,1
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:446,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:446,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:448,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:448,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:453,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:457,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:457,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:460,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:463,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:466,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:469,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:472,1
    - Dst: opt_md
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:475,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:475,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:482,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:484,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:488,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:490,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:493,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:499,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:503,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:505,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:508,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:510,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:512,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:515,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:515,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:520,1
    - Dst: load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:522,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:522,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:526,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:529,1
    - Dst: opt_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:532,1
    - Dst: opt_unknown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:532,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:539,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:544,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:547,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:552,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:554,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:563,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:563,1
    - Dst: opt_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:566,1
    - Dst: EVP_des_ede3_wrap
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:572,1
    - Dst: EVP_aes_128_wrap
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:576,1
    - Dst: EVP_aes_192_wrap
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:579,1
    - Dst: EVP_aes_256_wrap
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:582,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:586,1
    - Dst: opt_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:587,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:590,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:595,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:599,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:605,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:611,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:613,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:614,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:618,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:621,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:631,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:637,1
    - Dst: app_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:644,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:645,1
    - Dst: app_RAND_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:650,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:652,1
    - Dst: app_RAND_load_files
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:653,1
    - Dst: EVP_des_ede3_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:674,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:676,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:682,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:687,1
    - Dst: load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:690,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:693,1
    - Dst: load_certs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:700,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:702,1
    - Dst: load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:708,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:710,1
    - Dst: load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:716,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:718,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:733,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:738,1
    - Dst: SMIME_read_CMS
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:744,1
    - Dst: PEM_read_bio_CMS
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:746,1
    - Dst: d2i_CMS_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:748,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:750,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:755,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:759,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:760,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:761,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:766,1
    - Dst: CMS_get1_certs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:767,1
    - Dst: save_certs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:768,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:769,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:774,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:780,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:781,1
    - Dst: SMIME_read_CMS
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:786,1
    - Dst: PEM_read_bio_CMS
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:788,1
    - Dst: d2i_CMS_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:790,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:792,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:797,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:802,1
    - Dst: setup_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:807,1
    - Dst: X509_STORE_set_verify_cb
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:809,1
    - Dst: X509_STORE_set1_param
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:811,1
    - Dst: CMS_data_create
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:817,1
    - Dst: CMS_digest_create
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:819,1
    - Dst: CMS_compress
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:821,1
    - Dst: CMS_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:825,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:828,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:832,1
    - Dst: CMS_add1_recipient_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:839,1
    - Dst: CMS_RecipientInfo_get0_pkey_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:844,1
    - Dst: cms_set_pkey_param
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:845,1
    - Dst: CMS_RecipientInfo_type
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:848,1
    - Dst: CMS_RecipientInfo_kari_get0_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:851,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:852,1
    - Dst: CMS_add0_recipient_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:857,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:867,1
    - Dst: CMS_add0_recipient_password
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:870,1
    - Dst: CMS_final
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:877,1
    - Dst: CMS_EncryptedData_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:881,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:886,1
    - Dst: CMS_get0_SignerInfos
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:888,1
    - Dst: sk_CMS_SignerInfo_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:891,1
    - Dst: CMS_sign_receipt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:892,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:895,1
    - Dst: CMS_sign
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:910,1
    - Dst: CMS_set1_eContentType
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:914,1
    - Dst: make_receipt_request
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:917,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:919,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:926,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:930,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:931,1
    - Dst: load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:933,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:936,1
    - Dst: CMS_add1_signer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:945,1
    - Dst: CMS_SignerInfo_get0_pkey_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:950,1
    - Dst: cms_set_pkey_param
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:951,1
    - Dst: CMS_add1_ReceiptRequest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:954,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:956,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:958,1
    - Dst: CMS_final
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:963,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:969,1
    - Dst: CMS_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:976,1
    - Dst: CMS_decrypt_set1_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:979,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:982,1
    - Dst: CMS_decrypt_set1_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:988,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:989,1
    - Dst: CMS_decrypt_set1_password
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:995,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:996,1
    - Dst: CMS_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1001,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1002,1
    - Dst: CMS_data
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1006,1
    - Dst: CMS_uncompress
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1009,1
    - Dst: CMS_digest_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1012,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1013,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1015,1
    - Dst: CMS_EncryptedData_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1019,1
    - Dst: CMS_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1023,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1024,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1026,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1032,1
    - Dst: CMS_get0_signers
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1033,1
    - Dst: save_certs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1034,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1035,1
    - Dst: sk_X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1040,1
    - Dst: receipt_request_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1043,1
    - Dst: CMS_verify_receipt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1046,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1047,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1049,1
    - Dst: CMS_ContentInfo_print_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1055,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1058,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1060,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1062,1
    - Dst: SMIME_write_CMS
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1064,1
    - Dst: SMIME_write_CMS
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1066,1
    - Dst: PEM_write_bio_CMS_stream
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1068,1
    - Dst: i2d_CMS_bio_stream
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1070,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1072,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1083,1
    - Dst: app_RAND_write_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1085,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1086,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1087,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1088,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1089,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1090,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1091,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1092,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1093,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1094,1
    - Dst: CMS_ReceiptRequest_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1095,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1096,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1097,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1100,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1102,1
    - Dst: X509_STORE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1105,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1106,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1107,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1108,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1109,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1110,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1111,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1112,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1113,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1114,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1115,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1116,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1117,1
    CyclomaticComplexity: 378
    EdgeCount: 378
    ICount: 894
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 1119
      start: 185
    functionDepth: 9
    functionLinenumber: 185
    functionLinenumberEnd: 1119
    functionName: cms_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/cms.c
    functionUses: 0
    functionsReached:
    - CMS_add1_signer
    - sk_OPENSSL_STRING_value
    - sk_X509_pop_free
    - X509_VERIFY_PARAM_free
    - CMS_get1_certs
    - BIO_new_file
    - OPENSSL_strdup
    - EVP_PKEY_free
    - CMS_verify
    - app_RAND_write_file
    - EVP_EncryptInit_ex
    - sk_OPENSSL_STRING_free
    - CMS_compress
    - CMS_data_create
    - sk_X509_free
    - save_certs
    - CMS_get0_SignerInfos
    - i2d_CMS_bio_stream
    - CMS_decrypt_set1_key
    - opt_unknown
    - opt_md
    - ERR_print_errors
    - X509_STORE_set_verify_cb
    - opt_cipher
    - CMS_RecipientInfo_type
    - opt_verify
    - CMS_verify_receipt
    - release_engine
    - load_key
    - X509_STORE_set1_param
    - BIO_printf
    - CMS_sign
    - CMS_get0_signers
    - load_certs
    - sk_OPENSSL_STRING_push
    - opt_next
    - CMS_decrypt_set1_pkey
    - opt_format
    - EVP_des_ede3_cbc
    - CMS_add0_recipient_password
    - X509_VERIFY_PARAM_new
    - SMIME_read_CMS
    - CMS_RecipientInfo_kari_get0_ctx
    - opt_rest
    - make_receipt_request
    - STACK_OF
    - bio_open_default
    - d2i_CMS_bio
    - CMS_ContentInfo_free
    - app_malloc
    - load_cert
    - sk_OPENSSL_STRING_new_null
    - EVP_aes_192_wrap
    - sk_X509_num
    - CMS_add1_ReceiptRequest
    - setup_verify
    - setup_engine
    - CMS_add1_recipient_cert
    - ASN1_OBJECT_free
    - X509_free
    - CMS_final
    - CMS_sign_receipt
    - X509_STORE_free
    - CMS_add0_recipient_key
    - sk_OPENSSL_STRING_num
    - OBJ_txt2obj
    - sk_CMS_SignerInfo_value
    - CMS_EncryptedData_decrypt
    - CMS_digest_create
    - app_RAND_load_file
    - EVP_aes_128_wrap
    - CMS_set1_eContentType
    - BIO_puts
    - opt_help
    - CMS_EncryptedData_encrypt
    - OPENSSL_hexstr2buf
    - CMS_data
    - EVP_aes_256_wrap
    - EVP_des_ede3_wrap
    - PEM_write_bio_CMS_stream
    - PEM_read_bio_CMS
    - opt_init
    - CMS_ReceiptRequest_free
    - app_RAND_load_files
    - cms_set_pkey_param
    - BIO_free
    - opt_num_rest
    - sk_X509_push
    - CMS_encrypt
    - CMS_decrypt_set1_password
    - CMS_decrypt
    - opt_arg
    - SMIME_write_CMS
    - CMS_RecipientInfo_get0_pkey_ctx
    - CMS_SignerInfo_get0_pkey_ctx
    - OPENSSL_free
    - sk_X509_new_null
    - app_passwd
    - CMS_digest_verify
    - BIO_free_all
    - CMS_uncompress
    - receipt_request_print
    - sk_X509_value
    - CMS_ContentInfo_print_ctx
    linkageType: ''
    returnType: int
    signature: cms_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1127,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1130,1
    - Dst: PEM_write_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1131,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1131,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - signerfile
    - signers
    argTypes:
    - char*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 1134
      start: 1121
    functionDepth: 4
    functionLinenumber: 1121
    functionLinenumberEnd: 1134
    functionName: save_certs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/cms.c
    functionUses: 1
    functionsReached:
    - PEM_write_bio_X509
    - sk_X509_num
    - BIO_free
    - sk_X509_value
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: save_certs(char *signerfile, STACK_OF(X509) *signers)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1142,1
    - Dst: policies_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ok
    - ctx
    argTypes:
    - int
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 1154
      start: 1138
    functionDepth: 1
    functionLinenumber: 1138
    functionLinenumberEnd: 1154
    functionName: cms_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/cms.c
    functionUses: 0
    functionsReached:
    - policies_print
    - X509_STORE_CTX_get_error
    linkageType: ''
    returnType: int
    signature: cms_cb(int ok, X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1176,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1180,1
    - Dst: CMS_get0_SignerInfos
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1183,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1184,1
    - Dst: sk_CMS_SignerInfo_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1185,1
    - Dst: CMS_get1_ReceiptRequest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1186,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1187,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1189,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1191,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1192,1
    - Dst: CMS_ReceiptRequest_get0_values
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1196,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1198,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1199,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1200,1
    - Dst: BIO_dump_indent
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1201,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1202,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1204,1
    - Dst: gnames_stack_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1205,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1207,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1209,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1211,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1212,1
    - Dst: gnames_stack_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1213,1
    - Dst: CMS_ReceiptRequest_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1215,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    constantsTouched: []
    func_position:
      end: 1217
      start: 1174
    functionDepth: 5
    functionLinenumber: 1174
    functionLinenumberEnd: 1217
    functionName: receipt_request_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/cms.c
    functionUses: 1
    functionsReached:
    - gnames_stack_print
    - CMS_ReceiptRequest_free
    - sk_CMS_SignerInfo_value
    - BIO_dump_indent
    - BIO_puts
    - STACK_OF
    - ERR_print_errors
    - sk_CMS_SignerInfo_num
    - CMS_ReceiptRequest_get0_values
    - CMS_get1_ReceiptRequest
    - ASN1_STRING_length
    - BIO_printf
    - ASN1_STRING_get0_data
    - CMS_get0_SignerInfos
    linkageType: ''
    returnType: void
    signature: receipt_request_print(CMS_ContentInfo *cms)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1257,1
    - Dst: make_names_stack
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1259,1
    - Dst: make_names_stack
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1263,1
    - Dst: CMS_ReceiptRequest_create0
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1268,1
    - Dst: sk_GENERAL_NAMES_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/cms.c:1272,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - rr_to
    - rr_allorfirst
    - rr_from
    argTypes:
    - STACK_OF*
    - int
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 1274
      start: 1253
    functionDepth: 2
    functionLinenumber: 1253
    functionLinenumberEnd: 1274
    functionName: make_receipt_request
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/cms.c
    functionUses: 1
    functionsReached:
    - STACK_OF
    - CMS_ReceiptRequest_create0
    - make_names_stack
    - sk_GENERAL_NAMES_pop_free
    linkageType: ''
    returnType: CMS_ReceiptRequest
    signature: "*make_receipt_request(STACK_OF(OPENSSL_STRING)\n                                                *rr_to,
      int rr_allorfirst, STACK_OF(OPENSSL_STRING)\n                                                *rr_from)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - set
    - bit
    argTypes:
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: bit_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: bit_set(unsigned char *set, unsigned int bit)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - set
    - bit
    argTypes:
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: bit_isset
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: bit_isset(unsigned char *set, unsigned int bit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:106,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:115,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:116,1
    - Dst: opt_getprog
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:117,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:121,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:130,1
    - Dst: opt_getprog
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:132,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:135,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:138,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:151,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 6
    argNames:
    - type
    - hash
    - filename
    - digest
    - need_symlink
    - old_id
    argTypes:
    - enum Type
    - unsigned int
    - char*
    - unsigned char*
    - int
    - unsigned short
    constantsTouched: []
    func_position:
      end: 154
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 154
    functionName: add_entry
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c
    functionUses: 4
    functionsReached:
    - memcmp
    - strcmp
    - app_malloc
    - memcpy
    - opt_getprog
    - OPENSSL_strdup
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "add_entry(enum Type type, unsigned int hash, const char *filename,\n
      \                     const unsigned char *digest, int need_symlink,\n                      unsigned
      short old_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isxdigit
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:170,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:173,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:177,1
    - Dst: strncasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:179,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:179,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:182,1
    - Dst: strtoul
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:184,1
    - Dst: readlink
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:188,1
    - Dst: add_entry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:193,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - filename
    - fullpath
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 194
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 194
    functionName: handle_symlink
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c
    functionUses: 0
    functionsReached:
    - add_entry
    - OPENSSL_hexchar2int
    - strncasecmp
    - isxdigit
    - strlen
    - OSSL_NELEM
    - strtoul
    - readlink
    linkageType: ''
    returnType: int
    signature: handle_symlink(const char *filename, const char *fullpath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:201,1
    - Dst: strrchr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:211,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:213,1
    - Dst: strcasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:214,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:217,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:221,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:222,1
    - Dst: opt_getprog
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:223,1
    - Dst: PEM_X509_INFO_read_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:227,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:228,1
    - Dst: sk_X509_INFO_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:232,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:233,1
    - Dst: opt_getprog
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:236,1
    - Dst: sk_X509_INFO_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:240,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:243,1
    - Dst: X509_digest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:244,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:247,1
    - Dst: X509_CRL_digest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:248,1
    - Dst: add_entry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:255,1
    - Dst: X509_NAME_hash
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:255,1
    - Dst: add_entry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:257,1
    - Dst: X509_NAME_hash_old
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:257,1
    - Dst: sk_X509_INFO_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:261,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 53
    argCount: 3
    argNames:
    - filename
    - fullpath
    - h
    argTypes:
    - char*
    - char*
    - enum Hash
    constantsTouched: []
    func_position:
      end: 263
      start: 199
    functionDepth: 6
    functionLinenumber: 199
    functionLinenumberEnd: 263
    functionName: do_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c
    functionUses: 0
    functionsReached:
    - strrchr
    - opt_getprog
    - BIO_new_file
    - BIO_printf
    - sk_X509_INFO_pop_free
    - X509_NAME_hash
    - X509_CRL_get_issuer
    - X509_digest
    - sk_X509_INFO_value
    - X509_NAME_hash_old
    - BIO_free
    - OSSL_NELEM
    - strcasecmp
    - add_entry
    - PEM_X509_INFO_read_bio
    - STACK_OF
    - X509_get_subject_name
    - sk_X509_INFO_num
    - X509_CRL_digest
    linkageType: ''
    returnType: int
    signature: do_file(const char *filename, const char *fullpath, enum Hash h)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 268
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 268
    functionName: str_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: str_free(char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:285,1
    - Dst: app_access
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:287,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:288,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:291,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:294,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:297,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:299,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:300,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:301,1
    - Dst: OPENSSL_DIR_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:303,1
    - Dst: strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:304,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:305,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:306,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:307,1
    - Dst: OPENSSL_DIR_end
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:310,1
    - Dst: sk_OPENSSL_STRING_sort
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:311,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:313,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:315,1
    - Dst: snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:316,1
    - Dst: lstat
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:319,1
    - Dst: S_ISLNK
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:321,1
    - Dst: handle_symlink
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:321,1
    - Dst: do_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:323,1
    - Dst: sk_OPENSSL_STRING_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:325,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:327,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:331,1
    - Dst: bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:334,1
    - Dst: snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:340,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:343,1
    - Dst: bit_isset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:347,1
    - Dst: snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:350,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:354,1
    - Dst: unlink
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:356,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:357,1
    - Dst: opt_getprog
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:359,1
    - Dst: strerror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:359,1
    - Dst: symlink
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:362,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:363,1
    - Dst: opt_getprog
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:365,1
    - Dst: strerror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:366,1
    - Dst: bit_set
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:369,1
    - Dst: snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:372,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:376,1
    - Dst: unlink
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:378,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:379,1
    - Dst: opt_getprog
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:381,1
    - Dst: strerror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:381,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:385,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:386,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:388,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:393,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 85
    argCount: 2
    argNames:
    - dirname
    - h
    argTypes:
    - char*
    - enum Hash
    constantsTouched: []
    func_position:
      end: 395
      start: 273
    functionDepth: 7
    functionLinenumber: 273
    functionLinenumberEnd: 395
    functionName: do_dir
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_STRING_pop_free
    - sk_OPENSSL_STRING_sort
    - sk_OPENSSL_STRING_value
    - bit_set
    - unlink
    - app_access
    - snprintf
    - S_ISLNK
    - opt_getprog
    - BIO_printf
    - symlink
    - lstat
    - handle_symlink
    - sk_OPENSSL_STRING_push
    - exit
    - OPENSSL_DIR_end
    - do_file
    - OSSL_NELEM
    - sk_OPENSSL_STRING_num
    - memset
    - strlen
    - OPENSSL_free
    - strerror
    - OPENSSL_DIR_read
    - BIO_puts
    - STACK_OF
    - strdup
    - bit_isset
    - app_malloc
    - sk_OPENSSL_STRING_new_null
    linkageType: ''
    returnType: int
    signature: do_dir(const char *dirname, enum Hash h)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:423,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:424,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:428,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:431,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:447,1
    - Dst: opt_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:448,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:450,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:451,1
    - Dst: do_dir
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:455,1
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:456,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:457,1
    - Dst: strtok
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:458,1
    - Dst: strtok
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:458,1
    - Dst: do_dir
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:459,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:460,1
    - Dst: do_dir
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:462,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 467
      start: 415
    functionDepth: 8
    functionLinenumber: 415
    functionLinenumberEnd: 467
    functionName: rehash_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c
    functionUses: 0
    functionsReached:
    - opt_init
    - EVP_sha1
    - opt_rest
    - EVP_MD_size
    - opt_next
    - opt_help
    - getenv
    - strtok
    - OPENSSL_free
    - opt_num_rest
    - OPENSSL_strdup
    - BIO_printf
    - do_dir
    linkageType: ''
    returnType: int
    signature: rehash_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 478
      start: 474
    functionDepth: 2
    functionLinenumber: 474
    functionLinenumberEnd: 478
    functionName: rehash_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: rehash_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:50,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:57,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:59,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:59,1
    - Dst: isupper
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:66,1
    - Dst: tolower
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:66,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 1
    argNames:
    - argv0
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 69
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 69
    functionName: opt_progname
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 1
    functionsReached:
    - tolower
    - strlen
    - isupper
    - strcmp
    linkageType: ''
    returnType: char
    signature: '*opt_progname(const char *argv0)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:78,1
    - Dst: strrchr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:84,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:85,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - argv0
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 90
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 90
    functionName: opt_progname
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 1
    functionsReached:
    - strlen
    - strncpy
    - strrchr
    linkageType: ''
    returnType: char
    signature: '*opt_progname(const char *argv0)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:99,1
    - Dst: strncpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - argv0
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 107
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 107
    functionName: opt_progname
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 1
    functionsReached:
    - strlen
    - strncpy
    linkageType: ''
    returnType: char
    signature: '*opt_progname(const char *argv0)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: opt_getprog
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*opt_getprog(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_progname
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:123,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:138,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:139,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:146,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:154,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:155,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:159,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:161,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 3
    argNames:
    - ac
    - av
    - o
    argTypes:
    - int
    - char**
    - OPTIONS*
    constantsTouched: []
    func_position:
      end: 165
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 165
    functionName: opt_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 13
    functionsReached:
    - assert
    - opt_progname
    - strcmp
    linkageType: ''
    returnType: char
    signature: '*opt_init(int ac, char **av, const OPTIONS *o)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:187,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:190,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - s
    - flags
    argTypes:
    - char*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 197
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 197
    functionName: opt_format_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: opt_format_error(const char *s, unsigned long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_format_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:208,1
    - Dst: opt_format_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:214,1
    - Dst: opt_format_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:220,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:221,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:221,1
    - Dst: opt_format_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:222,1
    - Dst: opt_format_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:228,1
    - Dst: opt_format_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:234,1
    - Dst: opt_format_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:240,1
    - Dst: opt_format_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:246,1
    - Dst: opt_format_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:251,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:256,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:256,1
    - Dst: opt_format_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:258,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:260,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:260,1
    - Dst: opt_format_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:262,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:264,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:264,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:265,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:265,1
    - Dst: opt_format_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:267,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 74
    argCount: 3
    argNames:
    - s
    - flags
    - result
    argTypes:
    - char*
    - unsigned long
    - int*
    constantsTouched: []
    func_position:
      end: 274
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 274
    functionName: opt_format
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 8
    functionsReached:
    - strcmp
    - opt_format_error
    linkageType: ''
    returnType: int
    signature: opt_format(const char *s, unsigned long flags, int *result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_cipherbyname
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:279,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - name
    - cipherp
    argTypes:
    - char*
    - EVP_CIPHER**
    constantsTouched: []
    func_position:
      end: 284
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 284
    functionName: opt_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 4
    functionsReached:
    - BIO_printf
    - EVP_get_cipherbyname
    linkageType: ''
    returnType: int
    signature: opt_cipher(const char *name, const EVP_CIPHER **cipherp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyname
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:291,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - name
    - mdp
    argTypes:
    - char*
    - EVP_MD**
    constantsTouched: []
    func_position:
      end: 296
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 296
    functionName: opt_md
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 3
    functionsReached:
    - EVP_get_digestbyname
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: opt_md(const char *name, const EVP_MD **mdp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:304,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:308,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - name
    - pairs
    - result
    argTypes:
    - char*
    - OPT_PAIR*
    - int*
    constantsTouched: []
    func_position:
      end: 312
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 312
    functionName: opt_pair
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 2
    functionsReached:
    - BIO_printf
    - strcmp
    linkageType: ''
    returnType: int
    signature: opt_pair(const char *name, const OPT_PAIR* pairs, int *result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_long
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:319,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - value
    - result
    argTypes:
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 328
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 328
    functionName: opt_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 1
    functionsReached:
    - opt_long
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: opt_int(const char *value, int *result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:338,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:343,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - value
    - result
    argTypes:
    - char*
    - long*
    constantsTouched: []
    func_position:
      end: 351
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 351
    functionName: opt_long
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 2
    functionsReached:
    - strtol
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: opt_long(const char *value, long *result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strtoimax
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:364,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:369,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - value
    - result
    argTypes:
    - char*
    - intmax_t*
    constantsTouched: []
    func_position:
      end: 377
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 377
    functionName: opt_imax
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - strtoimax
    linkageType: ''
    returnType: int
    signature: opt_imax(const char *value, intmax_t *result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strtoumax
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:387,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:392,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - value
    - result
    argTypes:
    - char*
    - uintmax_t*
    constantsTouched: []
    func_position:
      end: 400
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 400
    functionName: opt_umax
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 0
    functionsReached:
    - strtoumax
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: opt_umax(const char *value, uintmax_t *result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:413,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:418,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - value
    - result
    argTypes:
    - char*
    - unsigned long*
    constantsTouched: []
    func_position:
      end: 426
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 426
    functionName: opt_ulong
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 0
    functionsReached:
    - strtoul
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: opt_ulong(const char *value, unsigned long *result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:443,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:444,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:445,1
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:452,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:452,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:454,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:454,1
    - Dst: X509_VERIFY_PARAM_add0_policy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:457,1
    - Dst: X509_PURPOSE_get_by_sname
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:461,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:461,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:463,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:463,1
    - Dst: X509_PURPOSE_get0
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:468,1
    - Dst: X509_PURPOSE_get_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:471,1
    - Dst: X509_VERIFY_PARAM_set_purpose
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:473,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:474,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:476,1
    - Dst: X509_VERIFY_PARAM_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:481,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:481,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:483,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:484,1
    - Dst: X509_VERIFY_PARAM_set1
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:487,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:490,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:490,1
    - Dst: X509_VERIFY_PARAM_set_depth
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:492,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:495,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:495,1
    - Dst: X509_VERIFY_PARAM_set_auth_level
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:497,1
    - Dst: opt_imax
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:500,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:500,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:503,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:504,1
    - Dst: X509_VERIFY_PARAM_set_time
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:507,1
    - Dst: X509_VERIFY_PARAM_set1_host
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:510,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:510,1
    - Dst: X509_VERIFY_PARAM_set1_email
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:514,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:514,1
    - Dst: X509_VERIFY_PARAM_set1_ip_asc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:518,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:518,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:522,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:528,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:531,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:536,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:539,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:542,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:545,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:548,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:551,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:554,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:557,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:560,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:563,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:566,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:569,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:572,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:575,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:578,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:581,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:584,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 132
    argCount: 2
    argNames:
    - opt
    - vpm
    argTypes:
    - int
    - X509_VERIFY_PARAM*
    constantsTouched: []
    func_position:
      end: 589
      start: 435
    functionDepth: 5
    functionLinenumber: 435
    functionLinenumberEnd: 589
    functionName: opt_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 3
    functionsReached:
    - X509_VERIFY_PARAM_set1_ip_asc
    - X509_VERIFY_PARAM_set_depth
    - atoi
    - BIO_printf
    - X509_VERIFY_PARAM_set1
    - X509_PURPOSE_get_by_sname
    - X509_VERIFY_PARAM_set1_host
    - X509_PURPOSE_get_id
    - X509_VERIFY_PARAM_add0_policy
    - X509_VERIFY_PARAM_set_purpose
    - OBJ_txt2obj
    - X509_VERIFY_PARAM_set_flags
    - X509_PURPOSE_get0
    - opt_arg
    - X509_VERIFY_PARAM_lookup
    - X509_VERIFY_PARAM_set_time
    - X509_VERIFY_PARAM_set_auth_level
    - assert
    - opt_imax
    - X509_VERIFY_PARAM_set1_email
    linkageType: ''
    returnType: int
    signature: opt_verify(int opt, X509_VERIFY_PARAM *vpm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:617,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:626,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:630,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:636,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:646,1
    - Dst: app_isdir
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:660,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:662,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:666,1
    - Dst: app_access
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:666,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:668,1
    - Dst: strerror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:670,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:674,1
    - Dst: app_access
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:674,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:676,1
    - Dst: strerror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:678,1
    - Dst: opt_int
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:682,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:684,1
    - Dst: opt_imax
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:691,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:692,1
    - Dst: opt_umax
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:699,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:700,1
    - Dst: opt_long
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:707,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:708,1
    - Dst: opt_ulong
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:715,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:716,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:726,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:732,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:745,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 99
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 747
      start: 595
    functionDepth: 4
    functionLinenumber: 595
    functionLinenumberEnd: 747
    functionName: opt_next
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 13
    functionsReached:
    - opt_format
    - strcmp
    - strchr
    - opt_imax
    - opt_umax
    - opt_long
    - app_isdir
    - app_access
    - opt_int
    - BIO_printf
    - strerror
    - opt_ulong
    linkageType: ''
    returnType: int
    signature: opt_next(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 753
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 753
    functionName: opt_arg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*opt_arg(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 759
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 759
    functionName: opt_flag
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*opt_flag(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 765
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 765
    functionName: opt_unknown
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*opt_unknown(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 771
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 771
    functionName: opt_rest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '**opt_rest(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:779,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 782
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 782
    functionName: opt_num_rest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 13
    functionsReached:
    - opt_rest
    linkageType: ''
    returnType: int
    signature: opt_num_rest(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 1
    argNames:
    - o
    argTypes:
    - OPTIONS*
    constantsTouched: []
    func_position:
      end: 819
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 819
    functionName: valtype2param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*valtype2param(const OPTIONS *o)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:838,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:840,1
    - Dst: valtype2param
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:840,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:843,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:847,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:854,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:859,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:865,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:874,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:874,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:879,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:879,1
    - Dst: valtype2param
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:879,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:884,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:885,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:888,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 1
    argNames:
    - list
    argTypes:
    - OPTIONS*
    constantsTouched: []
    func_position:
      end: 890
      start: 821
    functionDepth: 2
    functionLinenumber: 821
    functionLinenumberEnd: 890
    functionName: opt_help
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 13
    functionsReached:
    - assert
    - memset
    - strlen
    - strcpy
    - BIO_printf
    - valtype2param
    linkageType: ''
    returnType: void
    signature: opt_help(const OPTIONS *list)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:923,1
    - Dst: S_ISDIR
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:923,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 924
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 924
    functionName: app_isdir
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 1
    functionsReached:
    - stat
    - S_ISDIR
    linkageType: ''
    returnType: int
    signature: app_isdir(const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:932,1
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:934,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:935,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:940,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:943,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:946,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:946,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:949,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:949,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:952,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:952,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:955,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:955,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:958,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:958,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:961,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:964,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:964,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:968,1
    - Dst: opt_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:969,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:971,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/opt.c:974,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 2
    argNames:
    - ac
    - av
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 976
      start: 926
    functionDepth: 5
    functionLinenumber: 926
    functionLinenumberEnd: 976
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
    functionUses: 22
    functionsReached:
    - opt_init
    - opt_rest
    - opt_next
    - opt_help
    - opt_arg
    - BIO_new_fp
    - printf
    - opt_num_rest
    linkageType: ''
    returnType: int
    signature: main(int ac, char **av)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:82,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:83,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:88,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:91,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:95,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:95,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:99,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:102,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:102,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:106,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:109,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:112,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:115,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:115,1
    - Dst: opt_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:149,1
    - Dst: opt_unknown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:149,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:154,1
    - Dst: app_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:160,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:161,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:165,1
    - Dst: load_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:182,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:184,1
    - Dst: EVP_PKEY_get1_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:187,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:188,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:192,1
    - Dst: bio_open_owner
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:196,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:201,1
    - Dst: RSA_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:202,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:203,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:204,1
    - Dst: RSA_get0_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:211,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:212,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:213,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:214,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:221,1
    - Dst: ERR_peek_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:225,1
    - Dst: ERR_GET_LIB
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:226,1
    - Dst: ERR_GET_FUNC
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:227,1
    - Dst: ERR_GET_REASON
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:228,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:229,1
    - Dst: ERR_reason_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:230,1
    - Dst: ERR_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:231,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:234,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:243,1
    - Dst: i2d_RSAPublicKey_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:247,1
    - Dst: i2d_RSA_PUBKEY_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:249,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:251,1
    - Dst: i2d_RSAPrivateKey_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:252,1
    - Dst: PEM_write_bio_RSAPublicKey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:258,1
    - Dst: PEM_write_bio_RSA_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:260,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:262,1
    - Dst: PEM_write_bio_RSAPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:263,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:269,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:270,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:273,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:274,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:277,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:279,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:280,1
    - Dst: i2b_PVK_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:283,1
    - Dst: i2b_PublicKey_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:286,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:288,1
    - Dst: i2b_PrivateKey_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:289,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:291,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:294,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:298,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:299,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:303,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:304,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:305,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:306,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c:307,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 214
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 309
      start: 66
    functionDepth: 6
    functionLinenumber: 66
    functionLinenumberEnd: 309
    functionName: rsa_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c
    functionUses: 0
    functionsReached:
    - RSA_get0_key
    - release_engine
    - load_key
    - i2b_PublicKey_bio
    - RSA_free
    - BIO_printf
    - EVP_PKEY_free
    - setup_engine
    - ERR_GET_REASON
    - opt_init
    - BN_print
    - i2b_PVK_bio
    - opt_next
    - perror
    - i2d_RSA_PUBKEY_bio
    - ERR_peek_error
    - EVP_PKEY_set1_RSA
    - opt_num_rest
    - EVP_PKEY_new
    - bio_open_owner
    - opt_format
    - load_pubkey
    - ERR_get_error
    - PEM_write_bio_RSA_PUBKEY
    - ERR_GET_LIB
    - i2d_RSAPublicKey_bio
    - opt_arg
    - PEM_write_bio_RSAPublicKey
    - i2b_PrivateKey_bio
    - PEM_write_bio_RSAPrivateKey
    - opt_unknown
    - assert
    - app_passwd
    - OPENSSL_free
    - RSA_print
    - i2d_RSAPrivateKey_bio
    - EVP_PKEY_get1_RSA
    - BIO_free_all
    - ERR_print_errors
    - ERR_reason_error_string
    - opt_help
    - opt_cipher
    - ERR_GET_FUNC
    linkageType: ''
    returnType: int
    signature: rsa_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetConsoleOutputCP
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:25,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:28,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: cleanup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c
    functionUses: 57
    functionsReached:
    - free
    - SetConsoleOutputCP
    linkageType: ''
    returnType: void
    signature: cleanup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - argc
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 56
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 56
    functionName: validate_argv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: int
    signature: validate_argv(int argc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindFirstFileW
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:88,1
    - Dst: WideCharToMultiByte
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:94,1
    - Dst: validate_argv
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:112,1
    - Dst: WideCharToMultiByte
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:119,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:122,1
    - Dst: WideCharToMultiByte
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:127,1
    - Dst: WideCharToMultiByte
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:130,1
    - Dst: FindNextFileW
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:134,1
    - Dst: CloseHandle
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:136,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 36
    argCount: 2
    argNames:
    - wstr
    - wlen
    argTypes:
    - WCHAR*
    - int
    constantsTouched: []
    func_position:
      end: 139
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 139
    functionName: process_glob
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c
    functionUses: 0
    functionsReached:
    - FindNextFileW
    - WideCharToMultiByte
    - FindFirstFileW
    - validate_argv
    - CloseHandle
    - malloc
    linkageType: ''
    returnType: int
    signature: process_glob(WCHAR *wstr, int wlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetEnvironmentVariableW
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:148,1
    - Dst: validate_argv
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:153,1
    - Dst: GetCommandLineW
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:156,1
    - Dst: wcslen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:162,1
    - Dst: _alloca
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:163,1
    - Dst: wcscpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:164,1
    - Dst: process_glob
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:253,1
    - Dst: validate_argv
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:254,1
    - Dst: WideCharToMultiByte
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:261,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:267,1
    - Dst: WideCharToMultiByte
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:274,1
    - Dst: GetConsoleOutputCP
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:283,1
    - Dst: SetConsoleOutputCP
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:284,1
    - Dst: atexit
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:289,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:294,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c:296,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 83
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char**[]
    constantsTouched: []
    func_position:
      end: 303
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 303
    functionName: win32_utf8argv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c
    functionUses: 0
    functionsReached:
    - GetConsoleOutputCP
    - WideCharToMultiByte
    - _alloca
    - process_glob
    - SetConsoleOutputCP
    - atexit
    - validate_argv
    - malloc
    - free
    - wcscpy
    - wcslen
    - GetCommandLineW
    - GetEnvironmentVariableW
    linkageType: ''
    returnType: void
    signature: win32_utf8argv(int *argc, char **argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**[]
    constantsTouched: []
    func_position:
      end: 306
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 306
    functionName: win32_utf8argv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: win32_utf8argv(int &argc, char **argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:63,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:64,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:69,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:72,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:76,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:79,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:91,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:94,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:97,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:100,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:103,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:106,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:106,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:110,1
    - Dst: app_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:114,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:115,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:120,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:120,1
    - Dst: NETSCAPE_SPKI_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:125,1
    - Dst: ASN1_STRING_set
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:127,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:128,1
    - Dst: NETSCAPE_SPKI_set_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:129,1
    - Dst: NETSCAPE_SPKI_sign
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:130,1
    - Dst: EVP_md5
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:130,1
    - Dst: NETSCAPE_SPKI_b64_encode
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:131,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:133,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:135,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:138,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:139,1
    - Dst: app_load_config
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:144,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:147,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:150,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:151,1
    - Dst: NETSCAPE_SPKI_b64_decode
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:155,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:158,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:159,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:163,1
    - Dst: NETSCAPE_SPKI_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:168,1
    - Dst: NETSCAPE_SPKI_get_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:169,1
    - Dst: NETSCAPE_SPKI_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:171,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:173,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:175,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:176,1
    - Dst: PEM_write_bio_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:181,1
    - Dst: NCONF_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:186,1
    - Dst: NETSCAPE_SPKI_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:187,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:188,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:189,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:190,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c:191,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 130
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 193
      start: 49
    functionDepth: 7
    functionLinenumber: 49
    functionLinenumberEnd: 193
    functionName: spkac_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c
    functionUses: 0
    functionsReached:
    - NETSCAPE_SPKI_b64_decode
    - NETSCAPE_SPKI_sign
    - release_engine
    - load_key
    - NETSCAPE_SPKI_print
    - BIO_printf
    - EVP_md5
    - setup_engine
    - EVP_PKEY_free
    - opt_init
    - PEM_write_bio_PUBKEY
    - opt_next
    - app_load_config
    - NETSCAPE_SPKI_free
    - opt_num_rest
    - NCONF_free
    - opt_arg
    - strlen
    - NETSCAPE_SPKI_set_pubkey
    - NETSCAPE_SPKI_b64_encode
    - NETSCAPE_SPKI_verify
    - OPENSSL_free
    - app_passwd
    - NCONF_get_string
    - ASN1_STRING_set
    - BIO_free_all
    - strcmp
    - ERR_print_errors
    - bio_open_default
    - opt_help
    - NETSCAPE_SPKI_new
    - NETSCAPE_SPKI_get_pubkey
    linkageType: ''
    returnType: int
    signature: spkac_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:41,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:42,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:46,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:49,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:59,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:59,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:65,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:65,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:69,1
    - Dst: opt_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:70,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:73,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:81,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:84,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:86,1
    - Dst: BN_generate_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:89,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:90,1
    - Dst: BN_bn2hex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:93,1
    - Dst: BN_bn2dec
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:93,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:95,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:98,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:99,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:105,1
    - Dst: BN_dec2bn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:107,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:110,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:114,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:115,1
    - Dst: BN_is_prime_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:117,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/prime.c:124,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 82
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 126
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 126
    functionName: prime_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/prime.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_bn2dec
    - opt_init
    - BN_dec2bn
    - BN_print
    - BN_free
    - opt_rest
    - opt_next
    - atoi
    - opt_help
    - BN_hex2bn
    - BN_generate_prime_ex
    - opt_arg
    - OPENSSL_free
    - BN_bn2hex
    - opt_num_rest
    - BN_is_prime_ex
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: prime_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:81,1
    - Dst: opt_progname
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:94,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:95,1
    - Dst: EVP_get_digestbyname
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:96,1
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:98,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:99,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:104,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:107,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:117,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:120,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:123,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:126,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:129,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:133,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:137,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:140,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:140,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:144,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:144,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:162,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:165,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:169,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:170,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:170,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:175,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:176,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:176,1
    - Dst: opt_md
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:180,1
    - Dst: opt_unknown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:180,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:186,1
    - Dst: opt_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:187,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:189,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:194,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:201,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:201,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:202,1
    - Dst: BIO_f_md
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:202,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:204,1
    - Dst: BIO_set_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:209,1
    - Dst: BIO_set_callback_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:211,1
    - Dst: app_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:214,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:215,1
    - Dst: app_RAND_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:227,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:229,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:234,1
    - Dst: load_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:240,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:242,1
    - Dst: init_gen_str
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:254,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:258,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:259,1
    - Dst: pkey_ctrl_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:260,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:261,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:263,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:268,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:269,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:270,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:275,1
    - Dst: EVP_PKEY_new_mac_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:281,1
    - Dst: BIO_get_md_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:291,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:292,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:293,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:297,1
    - Dst: EVP_DigestSignInit
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:299,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:301,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:302,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:307,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:308,1
    - Dst: pkey_ctrl_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:309,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:310,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:311,1
    - Dst: BIO_get_md_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:320,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:321,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:322,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:326,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:327,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:328,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:329,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:335,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:337,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:338,1
    - Dst: EVP_PKEY_size
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:341,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:342,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:343,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:344,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:346,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:347,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:351,1
    - Dst: BIO_get_md_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:355,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:356,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:360,1
    - Dst: do_fp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:361,1
    - Dst: EVP_PKEY_get0_asn1
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:368,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:370,1
    - Dst: EVP_MD_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:374,1
    - Dst: BIO_read_filename
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:379,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:380,1
    - Dst: do_fp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:384,1
    - Dst: BIO_reset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:388,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:392,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:393,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:394,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:395,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:396,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:397,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:398,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:399,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:400,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:401,1
    CyclomaticComplexity: 106
    EdgeCount: 106
    ICount: 295
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 403
      start: 76
    functionDepth: 6
    functionLinenumber: 76
    functionLinenumberEnd: 403
    functionName: dgst_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c
    functionUses: 0
    functionsReached:
    - BIO_push
    - BIO_read_filename
    - sk_OPENSSL_STRING_value
    - EVP_DigestSignInit
    - release_engine
    - load_key
    - BIO_get_md_ctx
    - EVP_PKEY_new_mac_key
    - BIO_new_file
    - EVP_PKEY_CTX_free
    - BIO_printf
    - EVP_PKEY_free
    - setup_engine
    - EVP_DigestInit_ex
    - sk_OPENSSL_STRING_free
    - opt_init
    - sk_OPENSSL_STRING_push
    - opt_next
    - EVP_PKEY_get0_asn1
    - perror
    - EVP_MD_CTX_md
    - BIO_free
    - opt_num_rest
    - BIO_set_fp
    - BIO_set_callback_arg
    - BIO_new
    - opt_format
    - load_pubkey
    - EVP_PKEY_size
    - EVP_DigestVerifyInit
    - BIO_reset
    - BIO_set_callback
    - sk_OPENSSL_STRING_num
    - BIO_read
    - EVP_PKEY_asn1_get0_info
    - EVP_sha256
    - opt_arg
    - BIO_s_file
    - pkey_ctrl_string
    - do_fp
    - OPENSSL_clear_free
    - opt_unknown
    - opt_md
    - opt_progname
    - app_passwd
    - app_RAND_load_file
    - init_gen_str
    - OPENSSL_free
    - BIO_free_all
    - opt_rest
    - STACK_OF
    - ERR_print_errors
    - bio_open_default
    - BIO_puts
    - opt_help
    - EVP_MD_name
    - app_malloc
    - EVP_get_digestbyname
    - sk_OPENSSL_STRING_new_null
    - EVP_PKEY_keygen
    - BIO_f_md
    linkageType: ''
    returnType: int
    signature: dgst_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:414,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:416,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:417,1
    - Dst: BIO_get_md_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:425,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:426,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:428,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:430,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:433,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:434,1
    - Dst: BIO_get_md_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:441,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:443,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:444,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:445,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:449,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:451,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:457,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:460,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:461,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:464,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:466,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:467,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:469,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:471,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:474,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:475,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c:477,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 65
    argCount: 11
    argNames:
    - out
    - buf
    - bp
    - sep
    - binout
    - key
    - sigin
    - siglen
    - sig_name
    - md_name
    - file
    argTypes:
    - BIO*
    - unsigned char*
    - BIO*
    - int
    - int
    - EVP_PKEY*
    - unsigned char*
    - int
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 480
      start: 405
    functionDepth: 5
    functionLinenumber: 405
    functionLinenumberEnd: 480
    functionName: do_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c
    functionUses: 1
    functionsReached:
    - EVP_DigestVerifyFinal
    - BIO_puts
    - ERR_print_errors
    - BIO_get_md_ctx
    - BIO_gets
    - EVP_DigestSignFinal
    - BIO_printf
    - BIO_read
    - BIO_write
    linkageType: ''
    returnType: int
    signature: "do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,\n
      \         EVP_PKEY *key, unsigned char *sigin, int siglen,\n          const
      char *sig_name, const char *md_name,\n          const char *file)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:55,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:56,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:61,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:64,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:68,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:68,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:72,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:72,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:76,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:79,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:94,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:94,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:98,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:102,1
    - Dst: d2i_PKCS7_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:107,1
    - Dst: PEM_read_bio_PKCS7
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:109,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:111,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:112,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:116,1
    - Dst: PKCS7_print_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:121,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:124,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:125,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:127,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:148,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:149,1
    - Dst: X509_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:151,1
    - Dst: dump_cert_text
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:153,1
    - Dst: PEM_write_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:156,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:157,1
    - Dst: sk_X509_CRL_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:163,1
    - Dst: sk_X509_CRL_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:164,1
    - Dst: X509_CRL_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:166,1
    - Dst: PEM_write_bio_X509_CRL
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:169,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:170,1
    - Dst: i2d_PKCS7_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:180,1
    - Dst: PEM_write_bio_PKCS7
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:182,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:185,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:186,1
    - Dst: PKCS7_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:192,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:193,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:194,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c:195,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 135
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 197
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 197
    functionName: pkcs7_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c
    functionUses: 0
    functionsReached:
    - release_engine
    - PEM_read_bio_PKCS7
    - sk_X509_num
    - sk_X509_CRL_value
    - BIO_printf
    - sk_X509_CRL_num
    - PKCS7_free
    - d2i_PKCS7_bio
    - setup_engine
    - opt_init
    - PEM_write_bio_X509
    - opt_next
    - BIO_free
    - dump_cert_text
    - opt_num_rest
    - opt_format
    - PEM_write_bio_X509_CRL
    - X509_print
    - opt_arg
    - X509_CRL_print
    - PEM_write_bio_PKCS7
    - i2d_PKCS7_bio
    - BIO_free_all
    - BIO_puts
    - STACK_OF
    - ERR_print_errors
    - bio_open_default
    - OBJ_obj2nid
    - opt_help
    - sk_X509_value
    - PKCS7_print_ctx
    linkageType: ''
    returnType: int
    signature: pkcs7_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_progname
      Src: /src/openweave-core/third_party/openssl/openssl/apps/enc.c:109,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/enc.c:110,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/enc.c:113,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openweave-core/third_party/openssl/openssl/apps/enc.c:117,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/enc.c:118,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/enc.c:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 122
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 122
    functionName: enc_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/enc.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - opt_progname
    - EVP_get_cipherbyname
    - strcmp
    linkageType: ''
    returnType: int
    signature: enc_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: islower
      Src: /src/openweave-core/third_party/openssl/openssl/apps/enc.c:566,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/enc.c:569,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/enc.c:571,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/enc.c:574,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - name
    - bio_
    argTypes:
    - OBJ_NAME*
    - void*
    constantsTouched: []
    func_position:
      end: 575
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 575
    functionName: show_ciphers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/enc.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - islower
    linkageType: ''
    returnType: void
    signature: show_ciphers(const OBJ_NAME *name, void *bio_)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/enc.c:582,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/enc.c:584,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/enc.c:587,1
    - Dst: isxdigit
      Src: /src/openweave-core/third_party/openssl/openssl/apps/enc.c:593,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/enc.c:594,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openweave-core/third_party/openssl/openssl/apps/enc.c:597,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - in
    - out
    - size
    argTypes:
    - char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 604
      start: 577
    functionDepth: 2
    functionLinenumber: 577
    functionLinenumberEnd: 604
    functionName: set_hex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/enc.c
    functionUses: 0
    functionsReached:
    - OPENSSL_hexchar2int
    - isxdigit
    - memset
    - strlen
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: set_hex(char *in, unsigned char *out, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:94,1
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:96,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:97,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:102,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:105,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:109,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:112,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:115,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:121,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:124,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:127,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:130,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:130,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:134,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:134,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:138,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:138,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:173,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:176,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:176,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:183,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:184,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:184,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:185,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:191,1
    - Dst: init_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:202,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:205,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:206,1
    - Dst: setup_peer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:209,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:210,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:211,1
    - Dst: pkey_ctrl_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:221,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:222,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:223,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:230,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:236,1
    - Dst: app_RAND_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:242,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:245,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:249,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:254,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:256,1
    - Dst: bio_to_mem
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:259,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:260,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:262,1
    - Dst: bio_to_mem
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:269,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:271,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:272,1
    - Dst: EVP_PKEY_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:287,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:290,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:293,1
    - Dst: do_keyop
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:300,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:304,1
    - Dst: do_keyop
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:305,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:310,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:311,1
    - Dst: ASN1_parse_dump
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:317,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:318,1
    - Dst: BIO_dump
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:320,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:322,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:325,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:326,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:327,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:328,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:329,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:330,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:331,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:332,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 231
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 334
      start: 75
    functionDepth: 5
    functionLinenumber: 75
    functionLinenumberEnd: 334
    functionName: pkeyutl_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c
    functionUses: 0
    functionsReached:
    - do_keyop
    - release_engine
    - atoi
    - BIO_new_file
    - bio_to_mem
    - EVP_PKEY_CTX_free
    - BIO_printf
    - setup_engine
    - EVP_PKEY_verify
    - sk_OPENSSL_STRING_free
    - opt_init
    - sk_OPENSSL_STRING_push
    - exit
    - opt_next
    - BIO_free
    - opt_num_rest
    - opt_format
    - init_ctx
    - setup_peer
    - opt_arg
    - pkey_ctrl_string
    - BIO_dump
    - OPENSSL_free
    - app_RAND_load_file
    - BIO_free_all
    - BIO_puts
    - STACK_OF
    - ERR_print_errors
    - bio_open_default
    - opt_help
    - app_malloc
    - ASN1_parse_dump
    - sk_OPENSSL_STRING_new_null
    - BIO_write
    linkageType: ''
    returnType: int
    signature: pkeyutl_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:350,1
    - Dst: app_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:353,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:354,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:359,1
    - Dst: load_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:363,1
    - Dst: load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:367,1
    - Dst: X509_get_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:369,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:370,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:388,1
    - Dst: EVP_PKEY_size
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:392,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:393,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:394,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:402,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:406,1
    - Dst: EVP_PKEY_verify_recover_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:410,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:414,1
    - Dst: EVP_PKEY_decrypt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:418,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:422,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:427,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:432,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 74
    argCount: 9
    argNames:
    - kdfalg
    - pkeysize
    - keyfile
    - keyform
    - key_type
    - passinarg
    - pkey_op
    - e
    - engine_impl
    argTypes:
    - char*
    - int*
    - char*
    - int
    - int
    - char*
    - int
    - ENGINE*
    - int
    constantsTouched: []
    func_position:
      end: 435
      start: 336
    functionDepth: 3
    functionLinenumber: 336
    functionLinenumberEnd: 435
    functionName: init_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_encrypt_init
    - load_key
    - EVP_PKEY_verify_init
    - EVP_PKEY_CTX_free
    - BIO_printf
    - EVP_PKEY_free
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_decrypt_init
    - X509_free
    - EVP_PKEY_size
    - load_pubkey
    - X509_get_pubkey
    - OPENSSL_free
    - EVP_PKEY_sign_init
    - app_passwd
    - EVP_PKEY_verify_recover_init
    - EVP_PKEY_CTX_new
    - EVP_PKEY_derive_init
    - load_cert
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: "*init_ctx(const char *kdfalg, int *pkeysize,\n                              const
      char *keyfile, int keyform, int key_type,\n                              char
      *passinarg, int pkey_op, ENGINE *e,\n                              const int
      engine_impl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:446,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:448,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:449,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:453,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:455,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:457,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - peerform
    - file
    - e
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - char*
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 459
      start: 437
    functionDepth: 5
    functionLinenumber: 437
    functionLinenumberEnd: 459
    functionName: setup_peer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c
    functionUses: 1
    functionsReached:
    - load_pubkey
    - ERR_print_errors
    - BIO_printf
    - EVP_PKEY_derive_set_peer
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: "setup_peer(EVP_PKEY_CTX *ctx, int peerform, const char *file,\n                      ENGINE*
      e)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_verify_recover
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:468,1
    - Dst: EVP_PKEY_sign
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:472,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:476,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:480,1
    - Dst: EVP_PKEY_derive
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c:484,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 6
    argNames:
    - ctx
    - pkey_op
    - out
    - poutlen
    - in
    - inlen
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 489
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 489
    functionName: do_keyop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_derive
    - EVP_PKEY_verify_recover
    - EVP_PKEY_encrypt
    - EVP_PKEY_decrypt
    - EVP_PKEY_sign
    linkageType: ''
    returnType: int
    signature: "do_keyop(EVP_PKEY_CTX *ctx, int pkey_op,\n                    unsigned
      char *out, size_t *poutlen,\n                    const unsigned char *in, size_t
      inlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:81,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:82,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:87,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:90,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:94,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:94,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:98,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:98,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:102,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:105,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:108,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:108,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:134,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:138,1
    - Dst: opt_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:139,1
    - Dst: opt_int
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:141,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:149,1
    - Dst: BN_GENCB_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:161,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:163,1
    - Dst: BN_GENCB_set
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:167,1
    - Dst: app_RAND_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:168,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:169,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:173,1
    - Dst: app_RAND_load_files
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:174,1
    - Dst: DSA_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:178,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:180,1
    - Dst: DSA_generate_parameters_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:183,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:185,1
    - Dst: BN_GENCB_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:186,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:187,1
    - Dst: DSA_dup_DH
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:191,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:192,1
    - Dst: BN_GENCB_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:194,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:195,1
    - Dst: DH_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:201,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:202,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:205,1
    - Dst: DH_generate_parameters_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:206,1
    - Dst: BN_GENCB_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:207,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:208,1
    - Dst: BN_GENCB_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:213,1
    - Dst: app_RAND_write_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:214,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:217,1
    - Dst: d2i_DSAparams_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:226,1
    - Dst: PEM_read_bio_DSAparams
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:228,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:231,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:232,1
    - Dst: DSA_dup_DH
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:236,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:237,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:239,1
    - Dst: d2i_DHparams_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:246,1
    - Dst: PEM_read_bio_DHparams
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:248,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:251,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:252,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:260,1
    - Dst: DHparams_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:265,1
    - Dst: DH_check
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:269,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:270,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:274,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:276,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:278,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:280,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:282,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:284,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:287,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:289,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:295,1
    - Dst: DH_size
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:304,1
    - Dst: DH_bits
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:305,1
    - Dst: DH_get0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:306,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:307,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:308,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:312,1
    - Dst: print_bignum_var
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:313,1
    - Dst: print_bignum_var
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:314,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:315,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:320,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:322,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:324,1
    - Dst: DH_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:331,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:332,1
    - Dst: DH_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:335,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:336,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:337,1
    - Dst: DH_get0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:342,1
    - Dst: i2d_DHparams_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:344,1
    - Dst: PEM_write_bio_DHxparams
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:346,1
    - Dst: PEM_write_bio_DHparams
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:348,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:350,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:351,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:357,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:358,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:359,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:360,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 227
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 362
      start: 68
    functionDepth: 6
    functionLinenumber: 68
    functionLinenumberEnd: 362
    functionName: dhparam_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c
    functionUses: 0
    functionsReached:
    - DSA_dup_DH
    - PEM_write_bio_DHxparams
    - release_engine
    - DH_get_length
    - d2i_DHparams_bio
    - PEM_write_bio_DHparams
    - PEM_read_bio_DHparams
    - DHparams_print
    - BIO_printf
    - app_RAND_write_file
    - setup_engine
    - i2d_DHparams_bio
    - opt_init
    - print_bignum_var
    - DH_get0_pqg
    - opt_next
    - DSA_free
    - app_RAND_load_files
    - BIO_free
    - DH_free
    - opt_num_rest
    - DH_bits
    - opt_format
    - DH_size
    - DSA_new
    - opt_arg
    - OPENSSL_free
    - app_RAND_load_file
    - d2i_DSAparams_bio
    - BN_GENCB_set
    - BN_GENCB_free
    - BN_GENCB_new
    - opt_rest
    - DH_check
    - ERR_print_errors
    - bio_open_default
    - BIO_free_all
    - opt_help
    - app_malloc
    - DH_new
    - PEM_read_bio_DSAparams
    - opt_int
    - DSA_generate_parameters_ex
    - DH_generate_parameters_ex
    linkageType: ''
    returnType: int
    signature: dhparam_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:376,1
    - Dst: BN_GENCB_get_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:376,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:377,1
    - Dst: BN_GENCB_get_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c:377,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - p
    - n
    - cb
    argTypes:
    - int
    - int
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 379
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 379
    functionName: dh_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c
    functionUses: 0
    functionsReached:
    - BIO_flush
    - BIO_write
    - BN_GENCB_get_arg
    linkageType: ''
    returnType: int
    signature: dh_cb(int p, int n, BN_GENCB *cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 57
    functionName: __struct
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __union
    signature: __struct
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LogMessage
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:133,1
    - Dst: strcasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:134,1
    - Dst: TerminalSocket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:138,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:140,1
    - Dst: LogMessage
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:145,1
    - Dst: recv
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:146,1
    - Dst: LogMessage
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:148,1
    - Dst: TerminalSocket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:153,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - argc
    - argv
    - envp
    argTypes:
    - int
    - char*[]
    - char*[]
    constantsTouched: []
    func_position:
      end: 160
      start: 126
    functionDepth: 7
    functionLinenumber: 126
    functionLinenumberEnd: 160
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c
    functionUses: 22
    functionsReached:
    - exit
    - recv
    - TerminalSocket
    - strcasecmp
    - LogMessage
    linkageType: ''
    returnType: int
    signature: main (int argc, char *argv[], char *envp[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: $DESCRIPTOR
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:169,1
    - Dst: CreateSocketPair
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:179,1
    - Dst: LogMessage
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:181,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:183,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:185,1
    - Dst: sys$assign
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:192,1
    - Dst: LogMessage
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:196,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:197,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:198,1
    - Dst: sys$qio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:205,1
    - Dst: LogMessage
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:215,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:216,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:217,1
    - Dst: sys$cancel
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:231,1
    - Dst: LogMessage
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:233,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:234,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:235,1
    - Dst: sys$dassgn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:242,1
    - Dst: LogMessage
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:244,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:245,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:246,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:253,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:254,1
    - Dst: LogMessage
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:266,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 2
    argNames:
    - FunctionCode
    - ReturnSocket
    argTypes:
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 276
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 276
    functionName: TerminalSocket
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c
    functionUses: 1
    functionsReached:
    - sys$cancel
    - sys$dassgn
    - sys$qio
    - CreateSocketPair
    - close
    - $DESCRIPTOR
    - sys$assign
    - LogMessage
    linkageType: ''
    returnType: int
    signature: TerminalSocket (int FunctionCode, int *ReturnSocket)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: $DESCRIPTOR
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:306,1
    - Dst: socket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:311,1
    - Dst: LogMessage
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:313,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:321,1
    - Dst: inet_addr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:323,1
    - Dst: bind
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:329,1
    - Dst: LogMessage
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:331,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:332,1
    - Dst: getsockname
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:339,1
    - Dst: LogMessage
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:341,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:342,1
    - Dst: listen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:350,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:355,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:356,1
    - Dst: sys$bintim
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:358,1
    - Dst: LogMessage
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:360,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:361,1
    - Dst: sys$assign
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:369,1
    - Dst: LogMessage
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:371,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:372,1
    - Dst: decc$get_sdc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:379,1
    - Dst: sys$qio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:384,1
    - Dst: LogMessage
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:392,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:393,1
    - Dst: sys$dassgn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:394,1
    - Dst: socket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:401,1
    - Dst: LogMessage
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:403,1
    - Dst: sys$cancel
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:404,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:405,1
    - Dst: sys$dassgn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:406,1
    - Dst: decc$get_sdc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:414,1
    - Dst: sys$setimr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:420,1
    - Dst: LogMessage
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:426,1
    - Dst: sys$cancel
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:427,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:428,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:429,1
    - Dst: sys$dassgn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:430,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:437,1
    - Dst: inet_addr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:439,1
    - Dst: connect
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:442,1
    - Dst: LogMessage
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:444,1
    - Dst: sys$cantim
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:445,1
    - Dst: sys$cancel
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:446,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:447,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:448,1
    - Dst: sys$dassgn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:449,1
    - Dst: sys$synch
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:458,1
    - Dst: LogMessage
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:461,1
    - Dst: LogMessage
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:463,1
    - Dst: sys$cantim
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:465,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:467,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:468,1
    - Dst: sys$dassgn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:469,1
    - Dst: sys$cantim
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:478,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:480,1
    - Dst: socket_fd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:482,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 99
    argCount: 4
    argNames:
    - SocketFamily
    - SocketType
    - SocketProtocol
    - SocketPair
    argTypes:
    - int
    - int
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 486
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 486
    functionName: CreateSocketPair
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c
    functionUses: 1
    functionsReached:
    - sys$setimr
    - getsockname
    - sys$bintim
    - decc$get_sdc
    - close
    - socket
    - $DESCRIPTOR
    - sys$assign
    - sys$cancel
    - sys$synch
    - socket_fd
    - memset
    - strlen
    - sys$cantim
    - sys$dassgn
    - LogMessage
    - sprintf
    - listen
    - sys$qio
    - connect
    - bind
    - inet_addr
    linkageType: ''
    returnType: int
    signature: "CreateSocketPair (int SocketFamily,\n                             int
      SocketType,\n                             int SocketProtocol,\n                             int
      *SocketPair)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sys$cancel
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:495,1
    - Dst: sys$cancel
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - astparm
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 500
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 500
    functionName: SocketPairTimeoutAst
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c
    functionUses: 0
    functionsReached:
    - sys$cancel
    linkageType: ''
    returnType: void
    signature: SocketPairTimeoutAst (int astparm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcat
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:513,1
    - Dst: send
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:518,1
    - Dst: sys$qio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - astparm
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 539
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 539
    functionName: TerminalDeviceAst
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c
    functionUses: 0
    functionsReached:
    - strcat
    - sys$qio
    - send
    linkageType: ''
    returnType: int
    signature: TerminalDeviceAst (int astparm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:558,1
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:563,1
    - Dst: localtime
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:564,1
    - Dst: sprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:569,1
    - Dst: va_start
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:578,1
    - Dst: vfprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:579,1
    - Dst: va_end
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:580,1
    - Dst: fsync
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:585,1
    - Dst: fileno
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c:585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 589
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 589
    functionName: LogMessage
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c
    functionUses: 4
    functionsReached:
    - getpid
    - va_end
    - va_start
    - localtime
    - fsync
    - vfprintf
    - fileno
    - time
    - sprintf
    linkageType: ''
    returnType: void
    signature: LogMessage (char *msg, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:232,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:233,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:234,1
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:260,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:261,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:266,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:269,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:274,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:277,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:283,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:286,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:289,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:302,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:305,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:308,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:308,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:311,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:314,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:317,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:320,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:320,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:324,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:327,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:330,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:336,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:340,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:342,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:342,1
    - Dst: atol
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:364,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:364,1
    - Dst: atol
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:367,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:367,1
    - Dst: atol
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:370,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:370,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:376,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:380,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:384,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:388,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:392,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:395,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:398,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:404,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:407,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:411,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:415,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:419,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:423,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:423,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:428,1
    - Dst: opt_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:429,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:431,1
    - Dst: app_load_config
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:433,1
    - Dst: app_load_modules
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:435,1
    - Dst: lookup_conf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:440,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:444,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:446,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:450,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:456,1
    - Dst: OBJ_create_objects
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:458,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:459,1
    - Dst: add_oid_section
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:462,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:463,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:468,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:470,1
    - Dst: app_RAND_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:471,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:473,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:475,1
    - Dst: ASN1_STRING_set_default_mask_asc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:477,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:478,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:483,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:485,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:486,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:491,1
    - Dst: parse_yesno
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:493,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:495,1
    - Dst: lookup_conf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:500,1
    - Dst: load_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:504,1
    - Dst: index_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:508,1
    - Dst: get_certificate_status
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:511,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:512,1
    - Dst: lookup_conf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:520,1
    - Dst: app_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:525,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:526,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:530,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:532,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:532,1
    - Dst: lookup_conf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:542,1
    - Dst: load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:545,1
    - Dst: X509_check_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:549,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:550,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:558,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:560,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:563,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:565,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:569,1
    - Dst: set_name_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:572,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:573,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:579,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:582,1
    - Dst: set_cert_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:585,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:586,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:591,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:593,1
    - Dst: set_ext_copy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:596,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:597,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:601,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:607,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:609,1
    - Dst: app_isdir
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:621,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:622,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:623,1
    - Dst: lookup_conf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:631,1
    - Dst: load_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:635,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:640,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:641,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:643,1
    - Dst: make_revoked
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:649,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:650,1
    - Dst: check_time_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:653,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:654,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:658,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:664,1
    - Dst: isxdigit
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:669,1
    - Dst: _UC
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:669,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:670,1
    - Dst: TXT_DB_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:678,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:679,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:680,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:681,1
    - Dst: index_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:684,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:691,1
    - Dst: do_updatedb
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:693,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:695,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:699,1
    - Dst: save_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:701,1
    - Dst: rotate_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:704,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:708,1
    - Dst: app_load_config
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:716,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:722,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:727,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:736,1
    - Dst: lookup_conf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:742,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:745,1
    - Dst: EVP_PKEY_get_default_digest_nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:747,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:748,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:751,1
    - Dst: opt_md
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:754,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:762,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:763,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:767,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:768,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:768,1
    - Dst: lookup_conf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:770,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:774,1
    - Dst: lookup_conf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:776,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:786,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:788,1
    - Dst: X509V3_set_ctx_test
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:793,1
    - Dst: X509V3_set_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:794,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:795,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:796,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:806,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:809,1
    - Dst: ASN1_TIME_set_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:811,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:812,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:820,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:822,1
    - Dst: ASN1_TIME_set_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:824,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:825,1
    - Dst: NCONF_get_number
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:831,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:835,1
    - Dst: load_serial
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:840,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:841,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:845,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:846,1
    - Dst: BN_bn2hex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:848,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:850,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:851,1
    - Dst: NCONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:855,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:856,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:860,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:861,1
    - Dst: certify_spkac
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:866,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:875,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:876,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:878,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:879,1
    - Dst: certify_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:890,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:900,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:901,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:903,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:904,1
    - Dst: certify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:911,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:919,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:920,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:922,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:923,1
    - Dst: certify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:930,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:938,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:939,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:941,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:942,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:952,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:954,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:957,1
    - Dst: fgets
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:959,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:960,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:966,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:972,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:973,1
    - Dst: save_serial
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:975,1
    - Dst: save_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:978,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:983,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:984,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:986,1
    - Dst: X509_get_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:987,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:991,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:992,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:994,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:995,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:999,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1002,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1005,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1010,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1025,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1027,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1029,1
    - Dst: write_new_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1032,1
    - Dst: write_new_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1033,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1034,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1037,1
    - Dst: rotate_serial
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1039,1
    - Dst: rotate_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1042,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1045,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1053,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1055,1
    - Dst: X509V3_set_ctx_test
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1060,1
    - Dst: X509V3_set_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1061,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1062,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1063,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1071,1
    - Dst: load_serial
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1073,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1074,1
    - Dst: NCONF_get_number
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1079,1
    - Dst: NCONF_get_number
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1082,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1085,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1088,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1094,1
    - Dst: X509_CRL_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1095,1
    - Dst: X509_CRL_set_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1097,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1097,1
    - Dst: ASN1_TIME_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1100,1
    - Dst: X509_gmtime_adj
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1103,1
    - Dst: X509_CRL_set1_lastUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1104,1
    - Dst: X509_time_adj_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1105,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1107,1
    - Dst: X509_CRL_set1_nextUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1110,1
    - Dst: ASN1_TIME_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1112,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1114,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1115,1
    - Dst: X509_REVOKED_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1117,1
    - Dst: make_revoked
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1119,1
    - Dst: BN_hex2bn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1124,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1126,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1127,1
    - Dst: X509_REVOKED_set_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1131,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1132,1
    - Dst: X509_CRL_add0_revoked
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1133,1
    - Dst: X509_CRL_sort
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1140,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1144,1
    - Dst: X509V3_set_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1150,1
    - Dst: X509V3_set_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1151,1
    - Dst: X509V3_EXT_CRL_add_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1154,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1157,1
    - Dst: X509_CRL_add1_ext_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1160,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1161,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1163,1
    - Dst: X509_CRL_set_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1168,1
    - Dst: save_serial
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1174,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1177,1
    - Dst: do_X509_CRL_sign
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1180,1
    - Dst: PEM_write_bio_X509_CRL
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1183,1
    - Dst: rotate_serial
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1186,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1193,1
    - Dst: load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1197,1
    - Dst: do_revoke
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1202,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1205,1
    - Dst: save_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1207,1
    - Dst: rotate_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1210,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1213,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1219,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1220,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1221,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1222,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1225,1
    - Dst: app_RAND_write_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1226,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1228,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1229,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1230,1
    - Dst: free_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1231,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1232,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1233,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1234,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1235,1
    - Dst: NCONF_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1236,1
    - Dst: NCONF_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1237,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1238,1
    CyclomaticComplexity: 362
    EdgeCount: 362
    ICount: 869
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 1240
      start: 221
    functionDepth: 7
    functionLinenumber: 221
    functionLinenumberEnd: 1240
    functionName: ca_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ca.c
    functionUses: 0
    functionsReached:
    - load_index
    - sk_X509_pop_free
    - save_serial
    - BIO_new_file
    - X509_CRL_add0_revoked
    - ASN1_STRING_get0_data
    - app_RAND_write_file
    - EVP_PKEY_free
    - sk_OPENSSL_STRING_free
    - BN_free
    - certify_cert
    - X509_gmtime_adj
    - NCONF_get_number
    - check_time_format
    - rotate_serial
    - opt_md
    - parse_yesno
    - strcmp
    - save_index
    - ERR_print_errors
    - BIO_flush
    - BN_to_ASN1_INTEGER
    - X509V3_EXT_CRL_add_nconf
    - NCONF_get_section
    - X509_CRL_sort
    - certify_spkac
    - X509_CRL_free
    - release_engine
    - atoi
    - load_key
    - OBJ_nid2sn
    - _UC
    - get_certificate_status
    - atol
    - BIO_printf
    - sk_OPENSSL_STRING_push
    - free_index
    - opt_next
    - ASN1_TIME_free
    - perror
    - isxdigit
    - app_load_config
    - X509_CRL_set_issuer_name
    - OPENSSL_strlcat
    - opt_format
    - X509_CRL_set_version
    - ERR_clear_error
    - NCONF_get_string
    - app_load_modules
    - opt_rest
    - STACK_OF
    - bio_open_default
    - X509_CRL_set1_nextUpdate
    - X509_get_subject_name
    - X509_REVOKED_new
    - load_cert
    - OPENSSL_cleanse
    - sk_OPENSSL_STRING_new_null
    - load_serial
    - sk_X509_num
    - X509_check_private_key
    - X509_time_adj_ex
    - strcpy
    - setup_engine
    - BN_is_zero
    - X509_CRL_set1_lastUpdate
    - sk_OPENSSL_PSTRING_num
    - set_name_ex
    - X509_free
    - ASN1_STRING_length
    - PEM_write_bio_X509_CRL
    - BIO_snprintf
    - do_revoke
    - TXT_DB_write
    - X509_REVOKED_set_serialNumber
    - BN_hex2bn
    - fgets
    - X509V3_set_ctx
    - X509_get_serialNumber
    - X509V3_set_nconf
    - index_index
    - app_RAND_load_file
    - BIO_puts
    - opt_help
    - certify
    - ASN1_STRING_set_default_mask_asc
    - do_X509_CRL_sign
    - X509V3_set_ctx_test
    - make_revoked
    - EVP_MD_type
    - BN_bn2hex
    - set_cert_ex
    - opt_init
    - OBJ_nid2ln
    - BIO_free
    - opt_num_rest
    - sk_X509_push
    - NCONF_free
    - ASN1_TIME_set_string
    - X509_CRL_add1_ext_i2d
    - OBJ_create_objects
    - lookup_conf
    - rotate_index
    - do_updatedb
    - opt_arg
    - strlen
    - ASN1_TIME_new
    - OPENSSL_free
    - app_passwd
    - set_ext_copy
    - sk_X509_new_null
    - write_new_certificate
    - BN_add_word
    - BIO_free_all
    - sk_OPENSSL_PSTRING_value
    - EVP_PKEY_get_default_digest_nid
    - app_isdir
    - sk_X509_value
    - X509V3_EXT_add_nconf
    - X509_CRL_new
    - add_oid_section
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: int
    signature: ca_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - conf
    - section
    - tag
    argTypes:
    - CONF*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1248
      start: 1242
    functionDepth: 2
    functionLinenumber: 1242
    functionLinenumberEnd: 1248
    functionName: lookup_conf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ca.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: char
    signature: '*lookup_conf(const CONF *conf, const char *section, const char *tag)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1265,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1267,1
    - Dst: PEM_read_bio_X509_REQ
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1270,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1271,1
    - Dst: X509_REQ_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1276,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1278,1
    - Dst: X509_REQ_check_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1280,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1281,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1286,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1287,1
    - Dst: X509_REQ_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1290,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1294,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1295,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1300,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1302,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1305,1
    - Dst: do_body
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1307,1
    - Dst: X509_REQ_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1313,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1314,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 25
    argNames:
    - xret
    - infile
    - pkey
    - x509
    - dgst
    - sigopts
    - policy
    - db
    - serial
    - subj
    - chtype
    - multirdn
    - email_dn
    - startdate
    - enddate
    - days
    - batch
    - ext_sect
    - lconf
    - verbose
    - certopt
    - nameopt
    - default_op
    - ext_copy
    - selfsign
    argTypes:
    - X509**
    - char*
    - EVP_PKEY*
    - X509*
    - EVP_MD*
    - STACK_OF*
    - STACK_OF*
    - CA_DB*
    - BIGNUM*
    - char*
    - unsigned long
    - int
    - int
    - char*
    - char*
    - long
    - int
    - char*
    - CONF*
    - int
    - unsigned long
    - unsigned long
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1316
      start: 1250
    functionDepth: 8
    functionLinenumber: 1250
    functionLinenumberEnd: 1316
    functionName: certify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ca.c
    functionUses: 1
    functionsReached:
    - X509_REQ_check_private_key
    - PEM_read_bio_X509_REQ
    - X509_REQ_verify
    - do_body
    - ERR_print_errors
    - X509_REQ_free
    - X509_REQ_print
    - BIO_free
    - BIO_new_file
    - BIO_printf
    - X509_REQ_get0_pubkey
    linkageType: ''
    returnType: int
    signature: "certify(X509 **xret, const char *infile, EVP_PKEY *pkey, X509 *x509,\n
      \                  const EVP_MD *dgst, STACK_OF(OPENSSL_STRING) *sigopts,\n
      \                  STACK_OF(CONF_VALUE) *policy, CA_DB *db,\n                   BIGNUM
      *serial, const char *subj, unsigned long chtype,\n                   int multirdn,
      int email_dn, const char *startdate,\n                   const char *enddate,\n
      \                  long days, int batch, const char *ext_sect, CONF *lconf,\n
      \                  int verbose, unsigned long certopt, unsigned long nameopt,\n
      \                  int default_op, int ext_copy, int selfsign)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1332,1
    - Dst: X509_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1335,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1337,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1339,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1340,1
    - Dst: X509_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1343,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1346,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1351,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1354,1
    - Dst: X509_to_X509_REQ
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1356,1
    - Dst: do_body
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1359,1
    - Dst: X509_REQ_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1365,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1366,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 24
    argNames:
    - xret
    - infile
    - pkey
    - x509
    - dgst
    - sigopts
    - policy
    - db
    - serial
    - subj
    - chtype
    - multirdn
    - email_dn
    - startdate
    - enddate
    - days
    - batch
    - ext_sect
    - lconf
    - verbose
    - certopt
    - nameopt
    - default_op
    - ext_copy
    argTypes:
    - X509**
    - char*
    - EVP_PKEY*
    - X509*
    - EVP_MD*
    - STACK_OF*
    - STACK_OF*
    - CA_DB*
    - BIGNUM*
    - char*
    - unsigned long
    - int
    - int
    - char*
    - char*
    - long
    - int
    - char*
    - CONF*
    - int
    - unsigned long
    - unsigned long
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1368
      start: 1318
    functionDepth: 3
    functionLinenumber: 1318
    functionLinenumberEnd: 1368
    functionName: certify_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ca.c
    functionUses: 1
    functionsReached:
    - do_body
    - X509_print
    - X509_REQ_free
    - X509_get0_pubkey
    - X509_verify
    - load_cert
    - X509_free
    - BIO_printf
    - X509_to_X509_REQ
    linkageType: ''
    returnType: int
    signature: "certify_cert(X509 **xret, const char *infile, EVP_PKEY *pkey, X509
      *x509,\n                        const EVP_MD *dgst, STACK_OF(OPENSSL_STRING)
      *sigopts,\n                        STACK_OF(CONF_VALUE) *policy, CA_DB *db,\n
      \                       BIGNUM *serial, const char *subj, unsigned long chtype,\n
      \                       int multirdn, int email_dn, const char *startdate,\n
      \                       const char *enddate, long days, int batch, const char
      *ext_sect,\n                        CONF *lconf, int verbose, unsigned long
      certopt,\n                        unsigned long nameopt, int default_op, int
      ext_copy)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1400,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1403,1
    - Dst: X509_REQ_set_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1406,1
    - Dst: X509_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1407,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1411,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1414,1
    - Dst: X509_NAME_entry_count
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1415,1
    - Dst: X509_NAME_get_entry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1416,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1417,1
    - Dst: X509_NAME_ENTRY_get_object
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1418,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1422,1
    - Dst: X509_NAME_ENTRY_get_object
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1422,1
    - Dst: ASN1_UNIVERSALSTRING_to_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1425,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1437,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1441,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1443,1
    - Dst: ASN1_PRINTABLE_type
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1449,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1454,1
    - Dst: old_entry_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1461,1
    - Dst: X509_NAME_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1465,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1466,1
    - Dst: X509_NAME_dup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1472,1
    - Dst: X509_NAME_dup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1474,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1474,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1479,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1480,1
    - Dst: OBJ_txt2nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1481,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1482,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1487,1
    - Dst: X509_NAME_get_index_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1492,1
    - Dst: X509_NAME_get_entry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1498,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1504,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1507,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1509,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1515,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1519,1
    - Dst: X509_NAME_get_index_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1528,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1530,1
    - Dst: X509_NAME_get_entry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1537,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1538,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1539,1
    - Dst: ASN1_STRING_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1541,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1545,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1554,1
    - Dst: X509_NAME_add_entry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1561,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1562,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1563,1
    - Dst: X509_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1573,1
    - Dst: X509_NAME_dup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1575,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1581,1
    - Dst: X509_NAME_dup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1598,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1599,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1602,1
    - Dst: X509_NAME_get_entry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1605,1
    - Dst: X509_NAME_delete_entry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1606,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1607,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1611,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1612,1
    - Dst: BN_bn2hex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1614,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1616,1
    - Dst: TXT_DB_get_by_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1623,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1625,1
    - Dst: TXT_DB_get_by_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1631,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1633,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1636,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1642,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1651,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1656,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1661,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1665,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1669,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1673,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1680,1
    - Dst: X509_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1683,1
    - Dst: X509_set_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1688,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1692,1
    - Dst: X509_get_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1692,1
    - Dst: X509_set_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1695,1
    - Dst: X509_set_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1698,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1698,1
    - Dst: set_cert_times
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1702,1
    - Dst: ASN1_TIME_diff
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1707,1
    - Dst: X509_get0_notAfter
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1707,1
    - Dst: X509_set_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1711,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1714,1
    - Dst: X509_set_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1715,1
    - Dst: X509_set_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1722,1
    - Dst: X509V3_set_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1726,1
    - Dst: X509V3_set_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1728,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1732,1
    - Dst: X509V3_set_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1735,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1741,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1742,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1745,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1749,1
    - Dst: X509V3_set_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1753,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1755,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1756,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1759,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1764,1
    - Dst: copy_extensions
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1771,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1772,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1773,1
    - Dst: X509_set_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1779,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1784,1
    - Dst: X509_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1789,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1792,1
    - Dst: ASN1_TIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1793,1
    - Dst: X509_get0_notAfter
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1793,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1795,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1796,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1800,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1801,1
    - Dst: fgets
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1803,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1804,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1810,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1816,1
    - Dst: EVP_PKEY_missing_parameters
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1817,1
    - Dst: EVP_PKEY_missing_parameters
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1818,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1819,1
    - Dst: do_X509_sign
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1821,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1825,1
    - Dst: X509_get0_notAfter
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1826,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1827,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1828,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1831,1
    - Dst: X509_NAME_oneline
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1832,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1832,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1836,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1840,1
    - Dst: TXT_DB_insert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1847,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1848,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1849,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1855,1
    - Dst: X509_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1857,1
    - Dst: X509_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1858,1
    - Dst: X509_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1860,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1862,1
    CyclomaticComplexity: 144
    EdgeCount: 144
    ICount: 363
    argCount: 25
    argNames:
    - xret
    - pkey
    - x509
    - dgst
    - sigopts
    - policy
    - db
    - serial
    - subj
    - chtype
    - multirdn
    - email_dn
    - startdate
    - enddate
    - days
    - batch
    - verbose
    - req
    - ext_sect
    - lconf
    - certopt
    - nameopt
    - default_op
    - ext_copy
    - selfsign
    argTypes:
    - X509**
    - EVP_PKEY*
    - X509*
    - EVP_MD*
    - STACK_OF*
    - STACK_OF*
    - CA_DB*
    - BIGNUM*
    - char*
    - unsigned long
    - int
    - int
    - char*
    - char*
    - long
    - int
    - int
    - X509_REQ*
    - char*
    - CONF*
    - unsigned long
    - unsigned long
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1866
      start: 1370
    functionDepth: 7
    functionLinenumber: 1370
    functionLinenumberEnd: 1866
    functionName: do_body
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ca.c
    functionUses: 2
    functionsReached:
    - X509_NAME_ENTRY_get_data
    - X509_NAME_add_entry
    - BN_bn2hex
    - OPENSSL_strdup
    - X509_set_pubkey
    - parse_name
    - TXT_DB_get_by_index
    - BIO_printf
    - ASN1_TIME_print
    - EVP_PKEY_missing_parameters
    - TXT_DB_insert
    - sk_CONF_VALUE_value
    - X509_REQ_get_subject_name
    - BN_is_zero
    - X509_NAME_free
    - old_entry_print
    - sk_CONF_VALUE_num
    - OBJ_nid2obj
    - X509_set_version
    - set_cert_times
    - X509_NAME_get_index_by_OBJ
    - X509_free
    - X509_NAME_new
    - ASN1_STRING_cmp
    - X509_set_subject_name
    - X509_NAME_delete_entry
    - X509_NAME_get_entry
    - X509_set_issuer_name
    - fgets
    - OBJ_txt2nid
    - X509_new
    - X509V3_set_ctx
    - X509_get_serialNumber
    - copy_extensions
    - ASN1_PRINTABLE_type
    - X509_NAME_ENTRY_get_object
    - X509V3_set_nconf
    - OPENSSL_free
    - X509_get0_notAfter
    - do_X509_sign
    - X509_REQ_get0_pubkey
    - X509_print_ex
    - strcmp
    - ASN1_UNIVERSALSTRING_to_string
    - ERR_print_errors
    - OBJ_obj2nid
    - BIO_flush
    - X509_get_subject_name
    - X509_NAME_ENTRY_free
    - X509_get0_pubkey
    - BN_to_ASN1_INTEGER
    - app_malloc
    - X509_NAME_oneline
    - X509_NAME_dup
    - X509_NAME_get_index_by_NID
    - EVP_PKEY_copy_parameters
    - X509V3_EXT_add_nconf
    - memcpy
    - ASN1_TIME_diff
    - X509_NAME_entry_count
    - X509_REQ_set_subject_name
    linkageType: ''
    returnType: int
    signature: "do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509,\n                   const
      EVP_MD *dgst, STACK_OF(OPENSSL_STRING) *sigopts,\n                   STACK_OF(CONF_VALUE)
      *policy, CA_DB *db, BIGNUM *serial,\n                   const char *subj, unsigned
      long chtype, int multirdn,\n                   int email_dn, const char *startdate,
      const char *enddate, long days,\n                   int batch, int verbose,
      X509_REQ *req, const char *ext_sect,\n                   CONF *lconf, unsigned
      long certopt, unsigned long nameopt,\n                   int default_op, int
      ext_copy, int selfsign)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1873,1
    - Dst: X509_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1877,1
    - Dst: PEM_write_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1878,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - bp
    - x
    - output_der
    - notext
    argTypes:
    - BIO*
    - X509*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1879
      start: 1868
    functionDepth: 2
    functionLinenumber: 1868
    functionLinenumberEnd: 1879
    functionName: write_new_certificate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ca.c
    functionUses: 1
    functionsReached:
    - PEM_write_bio_X509
    - i2d_X509_bio
    - X509_print
    linkageType: ''
    returnType: void
    signature: "write_new_certificate(BIO *bp, X509 *x, int output_der,\n                                  int
      notext)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1891,1
    - Dst: LHASH_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1892,1
    - Dst: CONF_load
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1909,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1911,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1912,1
    - Dst: CONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1916,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1917,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1918,1
    - Dst: X509_REQ_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1929,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1931,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1938,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1941,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1944,1
    - Dst: OBJ_txt2nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1958,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1959,1
    - Dst: NETSCAPE_SPKI_b64_decode
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1960,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1962,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1964,1
    - Dst: X509_NAME_add_entry_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1971,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1976,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1985,1
    - Dst: NETSCAPE_SPKI_get_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1988,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1989,1
    - Dst: NETSCAPE_SPKI_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1993,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1995,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:1996,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2000,1
    - Dst: X509_REQ_set_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2002,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2003,1
    - Dst: do_body
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2004,1
    - Dst: X509_REQ_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2009,1
    - Dst: CONF_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2010,1
    - Dst: NETSCAPE_SPKI_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2011,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2012,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 81
    argCount: 23
    argNames:
    - xret
    - infile
    - pkey
    - x509
    - dgst
    - sigopts
    - policy
    - db
    - serial
    - subj
    - chtype
    - multirdn
    - email_dn
    - startdate
    - enddate
    - days
    - ext_sect
    - lconf
    - verbose
    - certopt
    - nameopt
    - default_op
    - ext_copy
    argTypes:
    - X509**
    - char*
    - EVP_PKEY*
    - X509*
    - EVP_MD*
    - STACK_OF*
    - STACK_OF*
    - CA_DB*
    - BIGNUM*
    - char*
    - unsigned long
    - int
    - int
    - char*
    - char*
    - long
    - char*
    - CONF*
    - int
    - unsigned long
    - unsigned long
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2015
      start: 1881
    functionDepth: 8
    functionLinenumber: 1881
    functionLinenumberEnd: 2015
    functionName: certify_spkac
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ca.c
    functionUses: 1
    functionsReached:
    - NETSCAPE_SPKI_b64_decode
    - X509_REQ_set_pubkey
    - LHASH_OF
    - BIO_printf
    - EVP_PKEY_free
    - sk_CONF_VALUE_value
    - do_body
    - X509_REQ_get_subject_name
    - sk_CONF_VALUE_num
    - NETSCAPE_SPKI_free
    - X509_NAME_add_entry_by_NID
    - X509_REQ_free
    - CONF_free
    - OBJ_txt2nid
    - NETSCAPE_SPKI_verify
    - strcmp
    - STACK_OF
    - ERR_print_errors
    - X509_NAME_ENTRY_free
    - CONF_get_section
    - CONF_load
    - NETSCAPE_SPKI_get_pubkey
    - X509_REQ_new
    linkageType: ''
    returnType: int
    signature: "certify_spkac(X509 **xret, const char *infile, EVP_PKEY *pkey,\n                         X509
      *x509, const EVP_MD *dgst,\n                         STACK_OF(OPENSSL_STRING)
      *sigopts,\n                         STACK_OF(CONF_VALUE) *policy, CA_DB *db,\n
      \                        BIGNUM *serial, const char *subj, unsigned long chtype,\n
      \                        int multirdn, int email_dn, const char *startdate,\n
      \                        const char *enddate, long days, const char *ext_sect,\n
      \                        CONF *lconf, int verbose, unsigned long certopt,\n
      \                        unsigned long nameopt, int default_op, int ext_copy)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_set_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2020
      start: 2017
    functionDepth: 3
    functionLinenumber: 2017
    functionLinenumberEnd: 2020
    functionName: check_time_format
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ca.c
    functionUses: 1
    functionsReached:
    - ASN1_TIME_set_string
    linkageType: ''
    returnType: int
    signature: check_time_format(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_oneline
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2032,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2032,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2033,1
    - Dst: X509_get_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2033,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2036,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2037,1
    - Dst: BN_bn2hex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2039,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2040,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2042,1
    - Dst: TXT_DB_get_by_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2049,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2051,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2056,1
    - Dst: X509_get0_notAfter
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2057,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2058,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2059,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2062,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2064,1
    - Dst: TXT_DB_insert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2071,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2072,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2073,1
    - Dst: do_revoke
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2081,1
    - Dst: index_name_cmp_noconst
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2085,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2086,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2089,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2093,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2097,1
    - Dst: make_revocation_str
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2098,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2100,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2110,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 78
    argCount: 4
    argNames:
    - x509
    - db
    - type
    - value
    argTypes:
    - X509*
    - CA_DB*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 2113
      start: 2022
    functionDepth: 6
    functionLinenumber: 2022
    functionLinenumberEnd: 2113
    functionName: do_revoke
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ca.c
    functionUses: 2
    functionsReached:
    - make_revocation_str
    - BN_free
    - do_revoke
    - ASN1_INTEGER_to_BN
    - BN_is_zero
    - X509_get_subject_name
    - app_malloc
    - X509_NAME_oneline
    - X509_get_serialNumber
    - memcpy
    - OPENSSL_free
    - BN_bn2hex
    - OPENSSL_strdup
    - TXT_DB_insert
    - TXT_DB_get_by_index
    - index_name_cmp_noconst
    - BIO_printf
    - X509_get0_notAfter
    linkageType: ''
    returnType: int
    signature: do_revoke(X509 *x509, CA_DB *db, int type, char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2126,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2135,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2139,1
    - Dst: toupper
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2145,1
    - Dst: TXT_DB_get_by_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2150,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2152,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2156,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2160,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2164,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2168,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2172,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2178,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 2
    argNames:
    - serial
    - db
    argTypes:
    - char*
    - CA_DB*
    constantsTouched: []
    func_position:
      end: 2181
      start: 2115
    functionDepth: 2
    functionLinenumber: 2115
    functionLinenumberEnd: 2181
    functionName: get_certificate_status
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ca.c
    functionUses: 1
    functionsReached:
    - toupper
    - app_malloc
    - OPENSSL_free
    - memcpy
    - TXT_DB_get_by_index
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: get_certificate_status(const char *serial, CA_DB *db)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_UTCTIME_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2190,1
    - Dst: X509_gmtime_adj
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2195,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2196,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2198,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2201,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2206,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2207,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2211,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2218,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2223,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2230,1
    - Dst: ASN1_UTCTIME_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2236,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2237,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 1
    argNames:
    - db
    argTypes:
    - CA_DB*
    constantsTouched: []
    func_position:
      end: 2239
      start: 2183
    functionDepth: 2
    functionLinenumber: 2183
    functionLinenumberEnd: 2239
    functionName: do_updatedb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ca.c
    functionUses: 1
    functionsReached:
    - ASN1_UTCTIME_free
    - strcmp
    - sk_OPENSSL_PSTRING_value
    - sk_OPENSSL_PSTRING_num
    - strncmp
    - app_malloc
    - X509_gmtime_adj
    - OPENSSL_free
    - memcpy
    - ASN1_UTCTIME_new
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: do_updatedb(CA_DB *db)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2280,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2286,1
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2294,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2295,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2298,1
    - Dst: ASN1_GENERALIZEDTIME_set_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2310,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2311,1
    - Dst: X509_gmtime_adj
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2326,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2334,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2336,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2338,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2339,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2341,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2342,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2345,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2346,1
    - Dst: ASN1_UTCTIME_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2348,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 2
    argNames:
    - rev_type
    - rev_arg
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 2350
      start: 2266
    functionDepth: 5
    functionLinenumber: 2266
    functionLinenumberEnd: 2350
    functionName: make_revocation_str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ca.c
    functionUses: 1
    functionsReached:
    - ASN1_UTCTIME_free
    - ASN1_GENERALIZEDTIME_set_string
    - OBJ_txt2obj
    - OPENSSL_strlcpy
    - X509_gmtime_adj
    - app_malloc
    - strlen
    - ASN1_OBJECT_free
    - strcasecmp
    - BIO_printf
    - OPENSSL_strlcat
    linkageType: ''
    returnType: char
    signature: '*make_revocation_str(int rev_type, char *rev_arg)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unpack_revinfo
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2371,1
    - Dst: X509_REVOKED_set_revocationDate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2376,1
    - Dst: ASN1_ENUMERATED_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2380,1
    - Dst: ASN1_ENUMERATED_set
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2381,1
    - Dst: X509_REVOKED_add1_ext_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2383,1
    - Dst: X509_REVOKED_add1_ext_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2388,1
    - Dst: X509_REVOKED_add1_ext_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2393,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2405,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2406,1
    - Dst: ASN1_GENERALIZEDTIME_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2407,1
    - Dst: ASN1_ENUMERATED_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2408,1
    - Dst: ASN1_TIME_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2409,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 38
    argCount: 2
    argNames:
    - rev
    - str
    argTypes:
    - X509_REVOKED*
    - char*
    constantsTouched: []
    func_position:
      end: 2412
      start: 2360
    functionDepth: 4
    functionLinenumber: 2360
    functionLinenumberEnd: 2412
    functionName: make_revoked
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ca.c
    functionUses: 1
    functionsReached:
    - ASN1_ENUMERATED_new
    - X509_REVOKED_add1_ext_i2d
    - ASN1_GENERALIZEDTIME_free
    - ASN1_TIME_free
    - X509_REVOKED_set_revocationDate
    - ASN1_ENUMERATED_free
    - ASN1_ENUMERATED_set
    - ASN1_OBJECT_free
    - unpack_revinfo
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: make_revoked(X509_REVOKED *rev, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2420,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2426,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2429,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2431,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2433,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2435,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2437,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2442,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2444,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2446,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2448,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2451,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - obj
    - str
    argTypes:
    - ASN1_OBJECT*
    - ASN1_STRING*
    constantsTouched: []
    func_position:
      end: 2453
      start: 2414
    functionDepth: 4
    functionLinenumber: 2414
    functionLinenumberEnd: 2453
    functionName: old_entry_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ca.c
    functionUses: 1
    functionsReached:
    - i2a_ASN1_OBJECT
    - BIO_printf
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: old_entry_print(const ASN1_OBJECT *obj, const ASN1_STRING *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2466,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2468,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2472,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2480,1
    - Dst: ASN1_UTCTIME_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2488,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2490,1
    - Dst: ASN1_UTCTIME_set_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2493,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2494,1
    - Dst: strcasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2500,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2506,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2514,1
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2518,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2521,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2528,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2531,1
    - Dst: ASN1_GENERALIZEDTIME_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2534,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2536,1
    - Dst: ASN1_GENERALIZEDTIME_set_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2539,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2540,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2561,1
    - Dst: ASN1_GENERALIZEDTIME_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ca.c:2562,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 97
    argCount: 5
    argNames:
    - prevtm
    - preason
    - phold
    - pinvtm
    - str
    argTypes:
    - ASN1_TIME**
    - int*
    - ASN1_OBJECT**
    - ASN1_GENERALIZEDTIME**
    - char*
    constantsTouched: []
    func_position:
      end: 2565
      start: 2455
    functionDepth: 5
    functionLinenumber: 2455
    functionLinenumberEnd: 2565
    functionName: unpack_revinfo
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ca.c
    functionUses: 1
    functionsReached:
    - ASN1_UTCTIME_set_string
    - OBJ_txt2obj
    - ASN1_GENERALIZEDTIME_set_string
    - ASN1_GENERALIZEDTIME_free
    - strchr
    - strcasecmp
    - OPENSSL_free
    - ASN1_OBJECT_free
    - ASN1_GENERALIZEDTIME_new
    - OPENSSL_strdup
    - ASN1_UTCTIME_new
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "unpack_revinfo(ASN1_TIME **prevtm, int *preason, ASN1_OBJECT **phold,\n
      \                  ASN1_GENERALIZEDTIME **pinvtm, const char *str)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:153,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:154,1
    - Dst: X509_STORE_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:183,1
    - Dst: X509_STORE_set_verify_cb
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:186,1
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:188,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:189,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:194,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:197,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:201,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:201,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:205,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:208,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:208,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:212,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:212,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:216,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:216,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:220,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:220,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:224,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:232,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:233,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:233,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:237,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:237,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:240,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:243,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:246,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:249,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:254,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:259,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:262,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:266,1
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:269,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:269,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:273,1
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:276,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:276,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:277,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:279,1
    - Dst: sk_ASN1_OBJECT_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:282,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:284,1
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:289,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:289,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:290,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:292,1
    - Dst: sk_ASN1_OBJECT_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:296,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:298,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:303,1
    - Dst: set_cert_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:307,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:307,1
    - Dst: set_name_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:312,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:312,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:316,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:316,1
    - Dst: opt_imax
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:419,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:419,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:423,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:424,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:430,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:433,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:436,1
    - Dst: opt_md
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:439,1
    - Dst: opt_unknown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:439,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:443,1
    - Dst: opt_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:444,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:446,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:453,1
    - Dst: app_RAND_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:458,1
    - Dst: app_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:460,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:461,1
    - Dst: X509_STORE_set_default_paths
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:465,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:466,1
    - Dst: load_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:471,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:479,1
    - Dst: app_load_config
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:486,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:489,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:491,1
    - Dst: X509V3_set_ctx_test
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:495,1
    - Dst: X509V3_set_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:496,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:497,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:498,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:500,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:510,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:513,1
    - Dst: PEM_read_bio_X509_REQ
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:516,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:517,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:520,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:524,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:525,1
    - Dst: X509_REQ_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:528,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:530,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:531,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:535,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:539,1
    - Dst: print_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:541,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:541,1
    - Dst: X509_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:544,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:548,1
    - Dst: rand_serial
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:549,1
    - Dst: X509_set_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:551,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:553,1
    - Dst: X509_set_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:555,1
    - Dst: X509_set_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:558,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:558,1
    - Dst: X509_set_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:560,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:560,1
    - Dst: set_cert_times
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:562,1
    - Dst: X509_set_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:566,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:568,1
    - Dst: X509_set_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:569,1
    - Dst: load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:572,1
    - Dst: load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:577,1
    - Dst: OBJ_create
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:583,1
    - Dst: X509_alias_set1
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:588,1
    - Dst: X509_trust_clear
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:591,1
    - Dst: X509_reject_clear
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:593,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:596,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:597,1
    - Dst: X509_add1_trust_object
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:598,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:604,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:605,1
    - Dst: X509_add1_reject_object
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:606,1
    - Dst: X509_get0_signature
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:614,1
    - Dst: corrupt_signature
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:615,1
    - Dst: print_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:621,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:621,1
    - Dst: print_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:623,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:624,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:626,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:627,1
    - Dst: X509_get_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:627,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:628,1
    - Dst: X509_get_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:630,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:631,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:635,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:637,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:640,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:641,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:642,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:643,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:646,1
    - Dst: X509_get1_email
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:648,1
    - Dst: X509_get1_ocsp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:650,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:651,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:652,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:653,1
    - Dst: X509_email_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:654,1
    - Dst: X509_alias_get0
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:657,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:659,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:661,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:663,1
    - Dst: X509_subject_name_hash
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:663,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:667,1
    - Dst: X509_subject_name_hash_old
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:667,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:671,1
    - Dst: X509_issuer_name_hash
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:671,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:675,1
    - Dst: X509_issuer_name_hash_old
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:675,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:681,1
    - Dst: X509_PURPOSE_get_count
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:682,1
    - Dst: X509_PURPOSE_get0
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:683,1
    - Dst: purpose_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:684,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:689,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:691,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:692,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:695,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:697,1
    - Dst: RSA_get0_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:699,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:699,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:700,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:704,1
    - Dst: DSA_get0_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:706,1
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:706,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:707,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:711,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:713,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:717,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:719,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:720,1
    - Dst: PEM_write_bio_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:723,1
    - Dst: X509_NAME_oneline
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:729,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:729,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:730,1
    - Dst: X509_NAME_oneline
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:733,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:733,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:734,1
    - Dst: i2d_X509
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:737,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:738,1
    - Dst: i2d_X509_NAME
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:740,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:740,1
    - Dst: print_array
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:741,1
    - Dst: i2d_X509_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:743,1
    - Dst: X509_get_X509_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:743,1
    - Dst: print_array
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:744,1
    - Dst: i2d_X509
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:746,1
    - Dst: print_array
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:747,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:748,1
    - Dst: X509_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:750,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:752,1
    - Dst: ASN1_TIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:753,1
    - Dst: X509_get0_notBefore
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:753,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:754,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:756,1
    - Dst: ASN1_TIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:757,1
    - Dst: X509_get0_notAfter
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:757,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:758,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:766,1
    - Dst: X509_digest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:768,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:769,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:772,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:773,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:773,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:775,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:782,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:784,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:790,1
    - Dst: sign
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:791,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:794,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:796,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:802,1
    - Dst: x509_certify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:803,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:811,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:813,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:816,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:822,1
    - Dst: X509_to_X509_REQ
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:824,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:825,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:827,1
    - Dst: X509_REQ_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:831,1
    - Dst: PEM_write_bio_X509_REQ
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:832,1
    - Dst: X509_ocspid_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:836,1
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:842,1
    - Dst: X509_cmp_time
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:844,1
    - Dst: X509_get0_notAfter
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:844,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:845,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:848,1
    - Dst: print_cert_checks
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:854,1
    - Dst: i2d_X509_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:862,1
    - Dst: PEM_write_bio_X509_AUX
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:865,1
    - Dst: PEM_write_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:867,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:869,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:873,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:874,1
    - Dst: app_RAND_write_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:880,1
    - Dst: NCONF_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:881,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:882,1
    - Dst: X509_STORE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:883,1
    - Dst: X509_REQ_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:884,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:885,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:886,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:887,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:888,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:889,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:890,1
    - Dst: X509_REQ_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:891,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:892,1
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:893,1
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:894,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:895,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:896,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:897,1
    CyclomaticComplexity: 238
    EdgeCount: 238
    ICount: 672
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 899
      start: 146
    functionDepth: 6
    functionLinenumber: 146
    functionLinenumberEnd: 899
    functionName: x509_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/x509.c
    functionUses: 0
    functionsReached:
    - RSA_get0_key
    - sk_OPENSSL_STRING_value
    - sk_ASN1_OBJECT_pop_free
    - X509_STORE_new
    - X509_reject_clear
    - EVP_PKEY_free
    - app_RAND_write_file
    - sk_OPENSSL_STRING_free
    - BN_free
    - i2a_ASN1_INTEGER
    - time
    - print_cert_checks
    - X509_set_subject_name
    - EVP_PKEY_id
    - X509_PURPOSE_get0
    - X509_REQ_print
    - X509_ocspid_print
    - sk_ASN1_OBJECT_new_null
    - opt_unknown
    - opt_md
    - EVP_PKEY_get0_DSA
    - X509_print_ex
    - ERR_print_errors
    - X509_STORE_set_verify_cb
    - BN_to_ASN1_INTEGER
    - X509_get1_email
    - X509_to_X509_REQ
    - i2d_X509
    - release_engine
    - atoi
    - load_key
    - X509_get0_signature
    - OBJ_nid2sn
    - X509_set_pubkey
    - BIO_printf
    - sk_OPENSSL_STRING_push
    - X509_trust_clear
    - DSA_get0_key
    - opt_next
    - purpose_print
    - set_cert_times
    - app_load_config
    - OBJ_create
    - corrupt_signature
    - opt_format
    - load_pubkey
    - X509_issuer_name_hash_old
    - X509_PURPOSE_get_count
    - print_array
    - X509_get0_notAfter
    - NCONF_get_string
    - ERR_clear_error
    - sk_ASN1_OBJECT_value
    - X509_subject_name_hash
    - PEM_read_bio_X509_REQ
    - rand_serial
    - EVP_PKEY_get0_RSA
    - opt_rest
    - STACK_OF
    - bio_open_default
    - X509_get_subject_name
    - X509_get0_pubkey
    - app_malloc
    - X509_NAME_oneline
    - load_cert
    - sign
    - sk_OPENSSL_STRING_new_null
    - X509_STORE_set_default_paths
    - sk_ASN1_OBJECT_push
    - setup_engine
    - X509_get_issuer_name
    - PEM_write_bio_X509
    - EVP_sha1
    - X509_REQ_get_subject_name
    - set_name_ex
    - ASN1_OBJECT_free
    - X509_free
    - PEM_write_bio_X509_REQ
    - X509_get1_ocsp
    - X509_add1_trust_object
    - X509_STORE_free
    - i2d_X509_bio
    - sk_OPENSSL_STRING_num
    - OBJ_txt2obj
    - sk_ASN1_OBJECT_num
    - i2d_X509_NAME
    - X509_REQ_free
    - X509_set_issuer_name
    - X509_get0_notBefore
    - X509_get_serialNumber
    - X509_alias_get0
    - X509V3_set_nconf
    - app_RAND_load_file
    - X509_get_X509_PUBKEY
    - BIO_puts
    - opt_help
    - PEM_write_bio_X509_AUX
    - X509V3_set_ctx_test
    - X509_set_serialNumber
    - EVP_MD_type
    - set_cert_ex
    - ASN1_TIME_print
    - X509_subject_name_hash_old
    - X509_REQ_verify
    - opt_init
    - BN_print
    - PEM_write_bio_PUBKEY
    - X509_digest
    - ASN1_INTEGER_to_BN
    - X509_issuer_name_hash
    - X509_cmp_time
    - BIO_free
    - print_name
    - i2d_X509_PUBKEY
    - opt_num_rest
    - NCONF_free
    - X509_add1_reject_object
    - X509_new
    - opt_arg
    - x509_certify
    - s2i_ASN1_INTEGER
    - OPENSSL_free
    - assert
    - app_passwd
    - X509_REQ_get0_pubkey
    - X509_email_free
    - X509_alias_set1
    - BN_add_word
    - BIO_free_all
    - ASN1_INTEGER_new
    - opt_imax
    - X509V3_EXT_add_nconf
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: int
    signature: x509_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:910,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:910,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:911,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:912,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:914,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:920,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:922,1
    - Dst: load_serial
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:924,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:928,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:929,1
    - Dst: save_serial
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:933,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:937,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:938,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - CAfile
    - serialfile
    - create
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 940
      start: 901
    functionDepth: 3
    functionLinenumber: 901
    functionLinenumberEnd: 940
    functionName: x509_load_serial
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/x509.c
    functionUses: 0
    functionsReached:
    - load_serial
    - BN_add_word
    - BN_free
    - OPENSSL_strlcpy
    - save_serial
    - app_malloc
    - strlen
    - OPENSSL_free
    - BIO_printf
    - OPENSSL_strlcat
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: "*x509_load_serial(const char *CAfile, const char *serialfile,\n                                      int
      create)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:954,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:956,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:959,1
    - Dst: X509_STORE_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:961,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:962,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:963,1
    - Dst: x509_load_serial
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:968,1
    - Dst: X509_STORE_CTX_set_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:975,1
    - Dst: X509_STORE_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:976,1
    - Dst: X509_verify_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:977,1
    - Dst: X509_check_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:980,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:981,1
    - Dst: X509_set_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:986,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:986,1
    - Dst: X509_set_serialNumber
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:988,1
    - Dst: set_cert_times
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:991,1
    - Dst: X509_get_ext_count
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:995,1
    - Dst: X509_delete_ext
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:996,1
    - Dst: X509_set_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1001,1
    - Dst: X509V3_set_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1002,1
    - Dst: X509V3_set_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1003,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1004,1
    - Dst: do_X509_sign
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1008,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1012,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1014,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1016,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 62
    argCount: 15
    argNames:
    - ctx
    - CAfile
    - digest
    - x
    - xca
    - pkey
    - sigopts
    - serialfile
    - create
    - days
    - clrext
    - conf
    - section
    - sno
    - reqfile
    argTypes:
    - X509_STORE*
    - char*
    - EVP_MD*
    - X509*
    - X509*
    - EVP_PKEY*
    - STACK_OF*
    - char*
    - int
    - int
    - int
    - CONF*
    - char*
    - ASN1_INTEGER*
    - int
    constantsTouched: []
    func_position:
      end: 1018
      start: 942
    functionDepth: 7
    functionLinenumber: 942
    functionLinenumberEnd: 1018
    functionName: x509_certify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/x509.c
    functionUses: 1
    functionsReached:
    - X509_STORE_CTX_init
    - X509_STORE_CTX_free
    - X509_set_serialNumber
    - X509_check_private_key
    - BIO_printf
    - X509_get_ext_count
    - set_cert_times
    - X509_set_version
    - X509_STORE_CTX_set_flags
    - X509_STORE_CTX_set_cert
    - X509_set_issuer_name
    - X509V3_set_ctx
    - X509_delete_ext
    - X509V3_set_nconf
    - x509_load_serial
    - X509_STORE_CTX_new
    - do_X509_sign
    - ERR_print_errors
    - X509_get_subject_name
    - X509_get0_pubkey
    - EVP_PKEY_copy_parameters
    - X509V3_EXT_add_nconf
    - ASN1_INTEGER_free
    - X509_verify_cert
    linkageType: ''
    returnType: int
    signature: "x509_certify(X509_STORE *ctx, const char *CAfile, const EVP_MD *digest,\n
      \                       X509 *x, X509 *xca, EVP_PKEY *pkey,\n                        STACK_OF(OPENSSL_STRING)
      *sigopts,\n                        const char *serialfile, int create,\n                        int
      days, int clrext, CONF *conf, const char *section,\n                        ASN1_INTEGER
      *sno, int reqfile)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1029,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1039,1
    - Dst: X509_STORE_CTX_get_current_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1043,1
    - Dst: print_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1044,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1044,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1045,1
    - Dst: X509_STORE_CTX_get_error_depth
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1047,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1048,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ok
    - ctx
    argTypes:
    - int
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 1051
      start: 1020
    functionDepth: 2
    functionLinenumber: 1020
    functionLinenumberEnd: 1051
    functionName: callb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/x509.c
    functionUses: 0
    functionsReached:
    - X509_get_subject_name
    - print_name
    - X509_STORE_CTX_get_error
    - X509_STORE_CTX_get_current_cert
    - X509_STORE_CTX_get_error_depth
    - BIO_printf
    - X509_verify_cert_error_string
    linkageType: ''
    returnType: int
    signature: callb(int ok, X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_set_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1058,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1058,1
    - Dst: set_cert_times
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1060,1
    - Dst: X509_set_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1062,1
    - Dst: X509_get_ext_count
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1065,1
    - Dst: X509_delete_ext
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1066,1
    - Dst: X509_set_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1070,1
    - Dst: X509V3_set_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1071,1
    - Dst: X509V3_set_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1072,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1073,1
    - Dst: X509_sign
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1076,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1080,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 7
    argNames:
    - x
    - pkey
    - days
    - clrext
    - digest
    - conf
    - section
    argTypes:
    - X509*
    - EVP_PKEY*
    - int
    - int
    - EVP_MD*
    - CONF*
    - char*
    constantsTouched: []
    func_position:
      end: 1082
      start: 1054
    functionDepth: 5
    functionLinenumber: 1054
    functionLinenumberEnd: 1082
    functionName: sign
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/x509.c
    functionUses: 110
    functionsReached:
    - ERR_print_errors
    - X509_get_ext_count
    - set_cert_times
    - X509_get_subject_name
    - X509_set_issuer_name
    - X509_set_version
    - X509V3_set_ctx
    - X509_sign
    - X509_delete_ext
    - X509V3_EXT_add_nconf
    - X509_set_pubkey
    - X509V3_set_nconf
    linkageType: ''
    returnType: int
    signature: "sign(X509 *x, EVP_PKEY *pkey, int days, int clrext,\n                const
      EVP_MD *digest, CONF *conf, const char *section)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_PURPOSE_get_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1088,1
    - Dst: X509_PURPOSE_get0_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1089,1
    - Dst: X509_check_purpose
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1091,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1092,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1094,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1096,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/x509.c:1098,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - bio
    - cert
    - pt
    argTypes:
    - BIO*
    - X509*
    - X509_PURPOSE*
    constantsTouched: []
    func_position:
      end: 1101
      start: 1084
    functionDepth: 4
    functionLinenumber: 1084
    functionLinenumberEnd: 1101
    functionName: purpose_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/x509.c
    functionUses: 1
    functionsReached:
    - X509_PURPOSE_get_id
    - BIO_printf
    - X509_PURPOSE_get0_name
    - X509_check_purpose
    linkageType: ''
    returnType: int
    signature: purpose_print(BIO *bio, X509 *cert, X509_PURPOSE *pt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:48,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:49,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:54,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:57,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:61,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:64,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:64,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:67,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:77,1
    - Dst: opt_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:78,1
    - Dst: opt_int
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:80,1
    - Dst: app_RAND_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:83,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:85,1
    - Dst: app_RAND_load_files
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:86,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:88,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:93,1
    - Dst: BIO_f_base64
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:93,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:96,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:106,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:110,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:114,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:120,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:121,1
    - Dst: app_RAND_write_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:121,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:128,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:129,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rand.c:130,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 84
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 132
      start: 40
    functionDepth: 5
    functionLinenumber: 40
    functionLinenumberEnd: 132
    functionName: rand_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/rand.c
    functionUses: 0
    functionsReached:
    - BIO_push
    - RAND_bytes
    - release_engine
    - BIO_f_base64
    - BIO_printf
    - app_RAND_write_file
    - setup_engine
    - opt_init
    - opt_next
    - app_RAND_load_files
    - opt_num_rest
    - BIO_new
    - opt_arg
    - app_RAND_load_file
    - BIO_free_all
    - opt_rest
    - BIO_puts
    - BIO_flush
    - bio_open_default
    - ERR_print_errors
    - opt_help
    - opt_int
    - BIO_write
    linkageType: ''
    returnType: int
    signature: rand_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:52,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:56,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:56,1
    - Dst: OPENSSL_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:59,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:61,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:69,1
    - Dst: OPENSSL_strlcat
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - buf
    - size
    - s
    argTypes:
    - char**
    - int*
    - char*
    constantsTouched: []
    func_position:
      end: 73
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 73
    functionName: append_buf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/engine.c
    functionUses: 1
    functionsReached:
    - OPENSSL_realloc
    - app_malloc
    - strlen
    - OPENSSL_free
    - OPENSSL_strlcat
    linkageType: ''
    returnType: int
    signature: append_buf(char **buf, int *size, const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:79,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:81,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:89,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:93,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:104,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:107,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:112,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:115,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:124,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:125,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:128,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:129,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - out
    - flags
    - indent
    argTypes:
    - BIO*
    - unsigned int
    - char*
    constantsTouched: []
    func_position:
      end: 131
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 131
    functionName: util_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/engine.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: util_flags(BIO *out, unsigned int flags, const char *indent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:142,1
    - Dst: ENGINE_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:143,1
    - Dst: ENGINE_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:144,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:149,1
    - Dst: ENGINE_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:156,1
    - Dst: ENGINE_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:161,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:164,1
    - Dst: ENGINE_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:165,1
    - Dst: ENGINE_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:169,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:173,1
    - Dst: ENGINE_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:174,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:181,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:184,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:189,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:190,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:191,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:192,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:194,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:197,1
    - Dst: util_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:200,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:205,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:207,1
    - Dst: ENGINE_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:210,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:213,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:216,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:217,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:218,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 62
    argCount: 4
    argNames:
    - e
    - verbose
    - out
    - indent
    argTypes:
    - ENGINE*
    - int
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 220
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 220
    functionName: util_verbose
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/engine.c
    functionUses: 0
    functionsReached:
    - ENGINE_ctrl
    - BIO_puts
    - STACK_OF
    - app_malloc
    - strlen
    - util_flags
    - OPENSSL_free
    - BIO_printf
    - sk_OPENSSL_STRING_new_null
    - sk_OPENSSL_STRING_free
    linkageType: ''
    returnType: int
    signature: util_verbose(ENGINE *e, int verbose, BIO *out, const char *indent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:266,1
    - Dst: sk_OPENSSL_CSTRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:266,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:267,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:267,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:268,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:268,1
    - Dst: dup_bio_out
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:275,1
    - Dst: sk_OPENSSL_CSTRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:283,1
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:288,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:290,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:294,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:297,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:318,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:318,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:321,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:321,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:327,1
    - Dst: opt_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:328,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:331,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:333,1
    - Dst: sk_OPENSSL_CSTRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:336,1
    - Dst: sk_OPENSSL_CSTRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:339,1
    - Dst: ENGINE_get_first
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:340,1
    - Dst: ENGINE_get_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:340,1
    - Dst: sk_OPENSSL_CSTRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:341,1
    - Dst: ENGINE_get_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:341,1
    - Dst: sk_OPENSSL_CSTRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:346,1
    - Dst: ENGINE_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:348,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:353,1
    - Dst: util_do_cmds
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:354,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:355,1
    - Dst: ENGINE_get_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:355,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:356,1
    - Dst: ENGINE_get_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:357,1
    - Dst: ENGINE_get_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:357,1
    - Dst: ENGINE_get_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:368,1
    - Dst: append_buf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:369,1
    - Dst: ENGINE_get_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:371,1
    - Dst: append_buf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:372,1
    - Dst: ENGINE_get_DH
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:374,1
    - Dst: append_buf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:375,1
    - Dst: ENGINE_get_RAND
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:377,1
    - Dst: append_buf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:378,1
    - Dst: ENGINE_get_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:381,1
    - Dst: fn_c
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:384,1
    - Dst: append_buf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:386,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:386,1
    - Dst: ENGINE_get_digests
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:390,1
    - Dst: fn_d
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:393,1
    - Dst: append_buf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:395,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:395,1
    - Dst: ENGINE_get_pkey_meths
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:399,1
    - Dst: fn_pk
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:402,1
    - Dst: append_buf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:404,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:404,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:408,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:410,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:413,1
    - Dst: ENGINE_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:414,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:415,1
    - Dst: util_do_cmds
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:416,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:417,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:419,1
    - Dst: ERR_print_errors_fp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:421,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:422,1
    - Dst: util_verbose
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:425,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:427,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:429,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:438,1
    - Dst: sk_OPENSSL_CSTRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:439,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:440,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:441,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/engine.c:442,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 157
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 444
      start: 261
    functionDepth: 7
    functionLinenumber: 261
    functionLinenumberEnd: 444
    functionName: engine_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/engine.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_next
    - ENGINE_get_name
    - fn_c
    - ERR_print_errors_fp
    - sk_OPENSSL_CSTRING_push
    - sk_OPENSSL_CSTRING_new_null
    - OBJ_nid2sn
    - sk_OPENSSL_CSTRING_free
    - ENGINE_get_RAND
    - fn_pk
    - ENGINE_finish
    - util_verbose
    - BIO_printf
    - sk_OPENSSL_STRING_free
    - dup_bio_out
    - opt_init
    - sk_OPENSSL_STRING_push
    - append_buf
    - opt_next
    - opt_num_rest
    - ENGINE_get_id
    - ENGINE_get_first
    - opt_arg
    - sk_OPENSSL_CSTRING_num
    - util_do_cmds
    - ENGINE_get_DSA
    - ENGINE_get_digests
    - OPENSSL_free
    - ENGINE_get_ciphers
    - ERR_clear_error
    - ENGINE_get_pkey_meths
    - ENGINE_get_RSA
    - ENGINE_get_DH
    - BIO_free_all
    - opt_rest
    - STACK_OF
    - strcmp
    - ERR_print_errors
    - ENGINE_by_id
    - opt_help
    - fn_d
    - ENGINE_init
    - ENGINE_free
    - sk_OPENSSL_STRING_new_null
    linkageType: ''
    returnType: int
    signature: engine_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - foo
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: timebomb_sigalarm
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: timebomb_sigalarm(int foo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:82,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:83,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:88,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:91,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:95,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:95,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:99,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:102,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:102,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:106,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:109,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:109,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:113,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:113,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:126,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:134,1
    - Dst: opt_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:135,1
    - Dst: opt_int
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:138,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:146,1
    - Dst: bio_open_owner
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:149,1
    - Dst: app_RAND_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:154,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:156,1
    - Dst: app_RAND_load_files
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:157,1
    - Dst: BN_GENCB_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:161,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:163,1
    - Dst: BN_GENCB_set
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:166,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:167,1
    - Dst: DSA_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:168,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:170,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:173,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:175,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:181,1
    - Dst: sigaction
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:184,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:185,1
    - Dst: alarm
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:188,1
    - Dst: DSA_generate_parameters_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:191,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:194,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:200,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:201,1
    - Dst: d2i_DSAparams_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:205,1
    - Dst: PEM_read_bio_DSAparams
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:207,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:209,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:210,1
    - Dst: DSAparams_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:215,1
    - Dst: DSA_get0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:223,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:224,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:225,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:227,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:229,1
    - Dst: print_bignum_var
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:230,1
    - Dst: print_bignum_var
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:231,1
    - Dst: print_bignum_var
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:232,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:233,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:235,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:237,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:239,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:241,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:243,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:248,1
    - Dst: i2d_DSAparams_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:253,1
    - Dst: PEM_write_bio_DSAparams
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:255,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:257,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:258,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:265,1
    - Dst: DSAparams_dup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:266,1
    - Dst: DSA_generate_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:268,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:269,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:270,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:273,1
    - Dst: i2d_DSAPrivateKey_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:275,1
    - Dst: PEM_write_bio_DSAPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:277,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:279,1
    - Dst: app_RAND_write_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:282,1
    - Dst: BN_GENCB_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:285,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:286,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:287,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:288,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:289,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 188
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 291
      start: 67
    functionDepth: 5
    functionLinenumber: 67
    functionLinenumberEnd: 291
    functionName: dsaparam_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c
    functionUses: 0
    functionsReached:
    - release_engine
    - atoi
    - sigaction
    - DSAparams_dup
    - DSAparams_print
    - DSA_generate_key
    - BIO_printf
    - app_RAND_write_file
    - setup_engine
    - opt_init
    - print_bignum_var
    - opt_next
    - DSA_free
    - app_RAND_load_files
    - BIO_free
    - opt_num_rest
    - bio_open_owner
    - opt_format
    - DSA_new
    - PEM_write_bio_DSAparams
    - opt_arg
    - OPENSSL_free
    - assert
    - app_RAND_load_file
    - d2i_DSAparams_bio
    - DSA_get0_pqg
    - i2d_DSAPrivateKey_bio
    - BN_GENCB_set
    - PEM_write_bio_DSAPrivateKey
    - BN_GENCB_free
    - BN_GENCB_new
    - opt_rest
    - alarm
    - ERR_print_errors
    - bio_open_default
    - BIO_free_all
    - opt_help
    - app_malloc
    - i2d_DSAparams_bio
    - BN_num_bits
    - PEM_read_bio_DSAparams
    - opt_int
    - DSA_generate_parameters_ex
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: dsaparam_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:305,1
    - Dst: BN_GENCB_get_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:305,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:306,1
    - Dst: BN_GENCB_get_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c:306,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - p
    - n
    - cb
    argTypes:
    - int
    - int
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 312
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 312
    functionName: dsa_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c
    functionUses: 0
    functionsReached:
    - BIO_flush
    - BIO_write
    - BN_GENCB_get_arg
    linkageType: ''
    returnType: int
    signature: dsa_cb(int p, int n, BN_GENCB *cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ssl
    - hint
    - identity
    - max_identity_len
    - psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - char*
    - unsigned int
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: dummy_psk
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "dummy_psk(SSL *ssl, const char *hint, char *identity,\n                              unsigned
      int max_identity_len,\n                              unsigned char *psk,\n                              unsigned
      int max_psk_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - arg
    argTypes:
    - SSL*
    - void*
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: dummy_srp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*dummy_srp(SSL *ssl, void *arg)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:78,1
    - Dst: TLS_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:79,1
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:96,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:97,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:102,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:105,1
    - Dst: opt_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:150,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:151,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:158,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:161,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:163,1
    - Dst: SSL_CTX_set_psk_client_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:168,1
    - Dst: SSL_CTX_set_srp_client_pwd_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:172,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:175,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:176,1
    - Dst: SSL_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:180,1
    - Dst: SSL_get1_supported_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:185,1
    - Dst: SSL_get_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:187,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:190,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:191,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:192,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:196,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:197,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:199,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:202,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:205,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:215,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:218,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:225,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:228,1
    - Dst: SSL_CIPHER_description
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:228,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:235,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:238,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:239,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c:240,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 127
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 242
      start: 74
    functionDepth: 5
    functionLinenumber: 74
    functionLinenumberEnd: 242
    functionName: ciphers_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - SSL_get1_supported_ciphers
    - SSL_new
    - SSL_CIPHER_description
    - BIO_printf
    - opt_init
    - opt_next
    - sk_SSL_CIPHER_num
    - SSL_free
    - opt_num_rest
    - SSL_CTX_set_cipher_list
    - SSL_CTX_new
    - sk_SSL_CIPHER_free
    - SSL_CTX_set_srp_client_pwd_callback
    - sk_SSL_CIPHER_value
    - SSL_get_ciphers
    - SSL_CTX_free
    - SSL_CTX_set_min_proto_version
    - opt_rest
    - STACK_OF
    - SSL_CTX_set_psk_client_callback
    - BIO_puts
    - SSL_CTX_set_max_proto_version
    - opt_help
    - ERR_print_errors
    - SSL_CIPHER_get_name
    linkageType: ''
    returnType: int
    signature: ciphers_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:141,1
    - Dst: EVP_des_ede3_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:142,1
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:145,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:146,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:151,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:154,1
    - Dst: opt_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:197,1
    - Dst: opt_unknown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:197,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:213,1
    - Dst: set_pbe
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:219,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:219,1
    - Dst: set_pbe
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:223,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:223,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:227,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:230,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:233,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:236,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:242,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:246,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:248,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:248,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:251,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:254,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:257,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:260,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:263,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:266,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:269,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:278,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:278,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:282,1
    - Dst: app_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:295,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:296,1
    - Dst: app_RAND_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:316,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:318,1
    - Dst: app_RAND_load_files
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:319,1
    - Dst: EVP_read_pw_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:325,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:327,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:332,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:340,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:346,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:354,1
    - Dst: load_certs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:362,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:368,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:369,1
    - Dst: X509_check_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:370,1
    - Dst: X509_keyid_set1
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:373,1
    - Dst: X509_alias_set1
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:374,1
    - Dst: sk_X509_delete
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:376,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:381,1
    - Dst: load_certs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:391,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:399,1
    - Dst: setup_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:401,1
    - Dst: get_cert_chain
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:405,1
    - Dst: X509_STORE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:406,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:410,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:411,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:411,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:413,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:413,1
    - Dst: sk_X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:414,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:417,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:418,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:420,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:427,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:428,1
    - Dst: X509_alias_set1
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:429,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:429,1
    - Dst: EVP_PKEY_add1_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:433,1
    - Dst: EVP_PKEY_add1_attr_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:438,1
    - Dst: EVP_read_pw_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:443,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:445,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:450,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:456,1
    - Dst: PKCS12_create
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:458,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:462,1
    - Dst: opt_md
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:467,1
    - Dst: PKCS12_set_mac
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:472,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:474,1
    - Dst: bio_open_owner
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:476,1
    - Dst: i2d_PKCS12_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:480,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:486,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:487,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:488,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:494,1
    - Dst: bio_open_owner
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:497,1
    - Dst: d2i_PKCS12_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:501,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:502,1
    - Dst: EVP_read_pw_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:509,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:511,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:516,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:522,1
    - Dst: PKCS12_mac_present
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:524,1
    - Dst: PKCS12_get0_mac
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:528,1
    - Dst: X509_ALGOR_get0
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:529,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:530,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:531,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:532,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:533,1
    - Dst: PKCS12_verify_mac
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:537,1
    - Dst: PKCS12_verify_mac
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:541,1
    - Dst: OPENSSL_asc2uni
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:549,1
    - Dst: OPENSSL_uni2utf8
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:552,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:553,1
    - Dst: PKCS12_verify_mac
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:554,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:555,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:556,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:559,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:566,1
    - Dst: dump_certs_keys_p12
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:567,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:568,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:569,1
    - Dst: PKCS12_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:574,1
    - Dst: app_RAND_write_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:576,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:577,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:578,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:579,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:580,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:581,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:582,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:583,1
    CyclomaticComplexity: 143
    EdgeCount: 143
    ICount: 383
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 585
      start: 118
    functionDepth: 5
    functionLinenumber: 118
    functionLinenumberEnd: 585
    functionName: pkcs12_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_STRING_value
    - sk_X509_pop_free
    - release_engine
    - load_key
    - dump_certs_keys_p12
    - sk_X509_num
    - X509_check_private_key
    - setup_verify
    - BIO_printf
    - sk_X509_delete
    - OPENSSL_uni2utf8
    - get_cert_chain
    - setup_engine
    - EVP_PKEY_free
    - app_RAND_write_file
    - sk_OPENSSL_STRING_free
    - opt_init
    - sk_OPENSSL_STRING_push
    - load_certs
    - X509_keyid_set1
    - opt_next
    - OPENSSL_strlcpy
    - app_RAND_load_files
    - PKCS12_mac_present
    - PKCS12_get0_mac
    - PKCS12_set_mac
    - BIO_free
    - opt_num_rest
    - sk_X509_push
    - X509_free
    - sk_X509_free
    - bio_open_owner
    - EVP_des_ede3_cbc
    - X509_ALGOR_get0
    - X509_STORE_free
    - PKCS12_free
    - sk_OPENSSL_STRING_num
    - OPENSSL_asc2uni
    - i2a_ASN1_OBJECT
    - opt_arg
    - i2d_PKCS12_bio
    - ASN1_INTEGER_get
    - d2i_PKCS12_bio
    - set_pbe
    - opt_unknown
    - app_RAND_load_file
    - app_passwd
    - X509_verify_cert_error_string
    - opt_md
    - assert
    - OPENSSL_free
    - X509_alias_set1
    - EVP_PKEY_add1_attr_by_NID
    - BIO_free_all
    - PKCS12_create
    - STACK_OF
    - EVP_read_pw_string
    - ERR_print_errors
    - bio_open_default
    - opt_help
    - BIO_puts
    - opt_cipher
    - sk_X509_value
    - PKCS12_verify_mac
    - sk_OPENSSL_STRING_new_null
    linkageType: ''
    returnType: int
    signature: pkcs12_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:591,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:592,1
    - Dst: PKCS12_unpack_authsafes
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:597,1
    - Dst: sk_PKCS7_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:599,1
    - Dst: sk_PKCS7_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:600,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:601,1
    - Dst: PKCS12_unpack_p7data
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:603,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:605,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:608,1
    - Dst: alg_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:609,1
    - Dst: PKCS12_unpack_p7encdata
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:611,1
    - Dst: dump_certs_pkeys_bags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:616,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:618,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:621,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:627,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 7
    argNames:
    - out
    - p12
    - pass
    - passlen
    - options
    - pempass
    - enc
    argTypes:
    - BIO*
    - PKCS12*
    - char*
    - int
    - int
    - char*
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 629
      start: 587
    functionDepth: 2
    functionLinenumber: 587
    functionLinenumberEnd: 629
    functionName: dump_certs_keys_p12
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c
    functionUses: 1
    functionsReached:
    - PKCS12_unpack_p7encdata
    - STACK_OF
    - OBJ_obj2nid
    - sk_PKCS7_value
    - dump_certs_pkeys_bags
    - sk_PKCS12_SAFEBAG_pop_free
    - PKCS12_unpack_authsafes
    - sk_PKCS7_num
    - alg_print
    - PKCS12_unpack_p7data
    - BIO_printf
    - sk_PKCS7_pop_free
    linkageType: ''
    returnType: int
    signature: "dump_certs_keys_p12(BIO *out, const PKCS12 *p12, const char *pass,\n
      \                       int passlen, int options, char *pempass,\n                        const
      EVP_CIPHER *enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_PKCS12_SAFEBAG_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:636,1
    - Dst: dump_certs_pkeys_bag
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:637,1
    - Dst: sk_PKCS12_SAFEBAG_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:638,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 7
    argNames:
    - out
    - bags
    - pass
    - passlen
    - options
    - pempass
    - enc
    argTypes:
    - BIO*
    - STACK_OF*
    - char*
    - int
    - int
    - char*
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 643
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 643
    functionName: dump_certs_pkeys_bags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c
    functionUses: 1
    functionsReached:
    - dump_certs_pkeys_bag
    - sk_PKCS12_SAFEBAG_num
    - sk_PKCS12_SAFEBAG_value
    linkageType: ''
    returnType: int
    signature: "dump_certs_pkeys_bags(BIO *out, const STACK_OF(PKCS12_SAFEBAG) *bags,\n
      \                         const char *pass, int passlen, int options,\n                          char
      *pempass, const EVP_CIPHER *enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_get0_attrs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:656,1
    - Dst: PKCS12_SAFEBAG_get_nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:658,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:661,1
    - Dst: print_attribs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:664,1
    - Dst: PKCS12_SAFEBAG_get0_p8inf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:665,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:666,1
    - Dst: print_attribs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:668,1
    - Dst: PKCS8_pkey_get0_attrs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:668,1
    - Dst: PEM_write_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:669,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:670,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:678,1
    - Dst: PKCS12_SAFEBAG_get0_pkcs8
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:679,1
    - Dst: X509_SIG_get0
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:680,1
    - Dst: alg_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:681,1
    - Dst: print_attribs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:685,1
    - Dst: PKCS12_decrypt_skey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:686,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:688,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:689,1
    - Dst: print_attribs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:692,1
    - Dst: PKCS8_pkey_get0_attrs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:692,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:693,1
    - Dst: PEM_write_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:694,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:695,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:700,1
    - Dst: PKCS12_SAFEBAG_get0_attr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:703,1
    - Dst: print_attribs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:708,1
    - Dst: PKCS12_SAFEBAG_get_bag_nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:709,1
    - Dst: PKCS12_SAFEBAG_get1_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:711,1
    - Dst: dump_cert_text
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:713,1
    - Dst: PEM_write_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:714,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:715,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:720,1
    - Dst: print_attribs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:721,1
    - Dst: dump_certs_pkeys_bags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:722,1
    - Dst: PKCS12_SAFEBAG_get0_safes
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:722,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:726,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:727,1
    - Dst: PKCS12_SAFEBAG_get0_type
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:727,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:728,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 70
    argCount: 7
    argNames:
    - out
    - bag
    - pass
    - passlen
    - options
    - pempass
    - enc
    argTypes:
    - BIO*
    - PKCS12_SAFEBAG*
    - char*
    - int
    - int
    - char*
    - EVP_CIPHER*
    constantsTouched: []
    func_position:
      end: 732
      start: 645
    functionDepth: 4
    functionLinenumber: 645
    functionLinenumberEnd: 732
    functionName: dump_certs_pkeys_bag
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c
    functionUses: 1
    functionsReached:
    - print_attribs
    - PKCS12_SAFEBAG_get0_type
    - PKCS12_SAFEBAG_get0_safes
    - PKCS12_SAFEBAG_get1_cert
    - BIO_printf
    - EVP_PKEY_free
    - PKCS8_pkey_get0_attrs
    - PEM_write_bio_X509
    - PKCS12_SAFEBAG_get0_pkcs8
    - X509_SIG_get0
    - dump_cert_text
    - X509_free
    - alg_print
    - PKCS12_SAFEBAG_get0_attr
    - PKCS12_SAFEBAG_get_nid
    - i2a_ASN1_OBJECT
    - PEM_write_bio_PrivateKey
    - dump_certs_pkeys_bags
    - PKCS12_decrypt_skey
    - PKCS12_SAFEBAG_get0_attrs
    - PKCS8_PRIV_KEY_INFO_free
    - PKCS12_SAFEBAG_get0_p8inf
    - PKCS12_SAFEBAG_get_bag_nid
    - EVP_PKCS82PKEY
    linkageType: ''
    returnType: int
    signature: "dump_certs_pkeys_bag(BIO *out, const PKCS12_SAFEBAG *bag,\n                         const
      char *pass, int passlen, int options,\n                         char *pempass,
      const EVP_CIPHER *enc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_get0
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:772,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:774,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:776,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:776,1
    - Dst: ASN1_item_unpack
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:786,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:786,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:788,1
    - Dst: X509_ALGOR_get0
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:791,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:792,1
    - Dst: X509_ALGOR_get0
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:793,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:794,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:795,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:795,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:796,1
    - Dst: ASN1_item_unpack
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:802,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:802,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:804,1
    - Dst: X509_ALGOR_get0
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:811,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:812,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:814,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:815,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:815,1
    - Dst: PBKDF2PARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:816,1
    - Dst: PBE2PARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:818,1
    - Dst: ASN1_item_unpack
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:821,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:821,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:823,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:826,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:826,1
    - Dst: PBEPARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:827,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:830,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 1
    argNames:
    - alg
    argTypes:
    - X509_ALGOR*
    constantsTouched: []
    func_position:
      end: 832
      start: 765
    functionDepth: 5
    functionLinenumber: 765
    functionLinenumberEnd: 832
    functionName: alg_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c
    functionUses: 2
    functionsReached:
    - OBJ_nid2ln
    - BIO_puts
    - OBJ_obj2nid
    - ASN1_ITEM_rptr
    - OBJ_nid2sn
    - PBEPARAM_free
    - ASN1_item_unpack
    - ASN1_INTEGER_get
    - PBE2PARAM_free
    - BIO_printf
    - PBKDF2PARAM_free
    - X509_ALGOR_get0
    linkageType: ''
    returnType: int
    signature: alg_print(const X509_ALGOR *alg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:860,1
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:863,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:864,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:867,1
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:868,1
    - Dst: sk_X509_ATTRIBUTE_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:870,1
    - Dst: X509_ATTRIBUTE_get0_object
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:871,1
    - Dst: OBJ_obj2nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:872,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:873,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:875,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:876,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:878,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:878,1
    - Dst: X509_ATTRIBUTE_count
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:880,1
    - Dst: X509_ATTRIBUTE_get0_type
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:881,1
    - Dst: OPENSSL_uni2asc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:884,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:886,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:887,1
    - Dst: hex_prin
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:891,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:893,1
    - Dst: hex_prin
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:897,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:899,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:903,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:907,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 3
    argNames:
    - out
    - attrlst
    - name
    argTypes:
    - BIO*
    - STACK_OF*
    - char*
    constantsTouched: []
    func_position:
      end: 910
      start: 852
    functionDepth: 4
    functionLinenumber: 852
    functionLinenumberEnd: 910
    functionName: print_attribs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c
    functionUses: 1
    functionsReached:
    - sk_X509_ATTRIBUTE_value
    - OBJ_nid2ln
    - i2a_ASN1_OBJECT
    - OBJ_obj2nid
    - X509_ATTRIBUTE_get0_type
    - hex_prin
    - OPENSSL_free
    - OPENSSL_uni2asc
    - X509_ATTRIBUTE_count
    - BIO_printf
    - sk_X509_ATTRIBUTE_num
    - X509_ATTRIBUTE_get0_object
    linkageType: ''
    returnType: int
    signature: "print_attribs(BIO *out, const STACK_OF(X509_ATTRIBUTE) *attrlst,\n
      \                 const char *name)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:916,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - out
    - buf
    - len
    argTypes:
    - BIO*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 917
      start: 912
    functionDepth: 2
    functionLinenumber: 912
    functionLinenumberEnd: 917
    functionName: hex_prin
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: hex_prin(BIO *out, unsigned char *buf, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:923,1
    - Dst: OBJ_txt2nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:927,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c:929,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ppbe
    - str
    argTypes:
    - int*
    - char*
    constantsTouched: []
    func_position:
      end: 933
      start: 919
    functionDepth: 6
    functionLinenumber: 919
    functionLinenumberEnd: 933
    functionName: set_pbe
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c
    functionUses: 1
    functionsReached:
    - OBJ_txt2nid
    - BIO_printf
    - strcmp
    linkageType: ''
    returnType: int
    signature: set_pbe(int *ppbe, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:57,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:60,1
    - Dst: BN_GENCB_set
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:74,1
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:76,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:77,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:81,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:85,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:94,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:97,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:97,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:100,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:103,1
    - Dst: opt_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:106,1
    - Dst: opt_unknown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:106,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:111,1
    - Dst: opt_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:112,1
    - Dst: opt_int
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:115,1
    - Dst: app_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:118,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:119,1
    - Dst: bio_open_owner
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:123,1
    - Dst: app_RAND_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:127,1
    - Dst: RAND_status
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:128,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:129,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:133,1
    - Dst: app_RAND_load_files
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:134,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:136,1
    - Dst: RSA_new_method
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:138,1
    - Dst: RSA_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:138,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:142,1
    - Dst: RSA_generate_key_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:142,1
    - Dst: app_RAND_write_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:145,1
    - Dst: RSA_get0_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:147,1
    - Dst: BN_bn2hex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:148,1
    - Dst: BN_bn2dec
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:149,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:151,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:153,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:154,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:157,1
    - Dst: PEM_write_bio_RSAPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:158,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:165,1
    - Dst: BN_GENCB_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:166,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:167,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:168,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:169,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:170,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:172,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 98
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 174
      start: 55
    functionDepth: 6
    functionLinenumber: 55
    functionLinenumberEnd: 174
    functionName: genrsa_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c
    functionUses: 0
    functionsReached:
    - RSA_get0_key
    - release_engine
    - BN_bn2hex
    - RSA_free
    - BIO_printf
    - app_RAND_write_file
    - setup_engine
    - opt_init
    - BN_free
    - opt_next
    - app_RAND_load_files
    - RSA_new_method
    - opt_num_rest
    - bio_open_owner
    - BN_new
    - BN_bn2dec
    - opt_arg
    - RAND_status
    - PEM_write_bio_RSAPrivateKey
    - RSA_generate_key_ex
    - opt_unknown
    - app_RAND_load_file
    - app_passwd
    - OPENSSL_free
    - assert
    - BN_GENCB_set
    - BN_GENCB_free
    - BN_GENCB_new
    - opt_rest
    - BIO_free_all
    - ERR_print_errors
    - opt_help
    - opt_cipher
    - RSA_new
    - BN_set_word
    - opt_int
    linkageType: ''
    returnType: int
    signature: genrsa_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:188,1
    - Dst: BN_GENCB_get_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:188,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:189,1
    - Dst: BN_GENCB_get_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c:189,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - p
    - n
    - cb
    argTypes:
    - int
    - int
    - BN_GENCB*
    constantsTouched: []
    func_position:
      end: 191
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 191
    functionName: genrsa_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c
    functionUses: 0
    functionsReached:
    - BIO_flush
    - BIO_write
    - BN_GENCB_get_arg
    linkageType: ''
    returnType: int
    signature: genrsa_cb(int p, int n, BN_GENCB *cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:78,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:83,1
    - Dst: _UC
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:83,1
    - Dst: OPENSSL_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:92,1
    - Dst: isspace
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:108,1
    - Dst: _UC
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:108,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 2
    argNames:
    - arg
    - buf
    argTypes:
    - ARGS*
    - char*
    constantsTouched: []
    func_position:
      end: 116
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 116
    functionName: chopup_args
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - _UC
    - isspace
    - app_malloc
    - OPENSSL_realloc
    linkageType: ''
    returnType: int
    signature: chopup_args(ARGS *arg, char *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mesgwin
    argTypes:
    - long
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: app_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: app_init(long mesgwin)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_default_verify_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:129,1
    - Dst: SSL_CTX_set_default_verify_dir
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:131,1
    - Dst: SSL_CTX_load_verify_locations
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:136,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - CAfile
    - CApath
    - noCAfile
    - noCApath
    argTypes:
    - SSL_CTX*
    - char*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 137
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 137
    functionName: ctx_set_verify_locations
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 2
    functionsReached:
    - SSL_CTX_set_default_verify_dir
    - SSL_CTX_set_default_verify_file
    - SSL_CTX_load_verify_locations
    linkageType: ''
    returnType: int
    signature: "ctx_set_verify_locations(SSL_CTX *ctx, const char *CAfile,\n                             const
      char *CApath, int noCAfile, int noCApath)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_default_ctlog_list_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:144,1
    - Dst: SSL_CTX_set_ctlog_list_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - path
    argTypes:
    - SSL_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 148
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 148
    functionName: ctx_set_ctlog_list_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_set_ctlog_list_file
    - SSL_CTX_set_default_ctlog_list_file
    linkageType: ''
    returnType: int
    signature: ctx_set_ctlog_list_file(SSL_CTX *ctx, const char *path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_oneline
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:156,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:156,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:157,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:158,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:159,1
    - Dst: X509_NAME_oneline
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:161,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:161,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:162,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:163,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:164,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - out
    - x
    argTypes:
    - BIO*
    - X509*
    constantsTouched: []
    func_position:
      end: 168
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 168
    functionName: dump_cert_text
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 2
    functionsReached:
    - BIO_puts
    - X509_get_subject_name
    - X509_NAME_oneline
    - OPENSSL_free
    - X509_get_issuer_name
    linkageType: ''
    returnType: int
    signature: dump_cert_text(BIO *out, X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UI_method_get_opener
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:173,1
    - Dst: UI_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: ui_open
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - UI_method_get_opener
    - UI_OpenSSL
    linkageType: ''
    returnType: int
    signature: ui_open(UI *ui)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UI_get_input_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:178,1
    - Dst: UI_get0_user_data
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:179,1
    - Dst: UI_get_string_type
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:180,1
    - Dst: UI_set_result
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:187,1
    - Dst: UI_method_get_reader
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:195,1
    - Dst: UI_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:195,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - ui
    - uis
    argTypes:
    - UI*
    - UI_STRING*
    constantsTouched: []
    func_position:
      end: 196
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 196
    functionName: ui_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - UI_get_input_flags
    - UI_get0_user_data
    - UI_get_string_type
    - UI_OpenSSL
    - UI_method_get_reader
    - UI_set_result
    linkageType: ''
    returnType: int
    signature: ui_read(UI *ui, UI_STRING *uis)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UI_get_input_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:200,1
    - Dst: UI_get0_user_data
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:201,1
    - Dst: UI_get_string_type
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:202,1
    - Dst: UI_method_get_writer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:215,1
    - Dst: UI_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:215,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - ui
    - uis
    argTypes:
    - UI*
    - UI_STRING*
    constantsTouched: []
    func_position:
      end: 216
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 216
    functionName: ui_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - UI_get_input_flags
    - UI_method_get_writer
    - UI_get0_user_data
    - UI_get_string_type
    - UI_OpenSSL
    linkageType: ''
    returnType: int
    signature: ui_write(UI *ui, UI_STRING *uis)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UI_method_get_closer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:220,1
    - Dst: UI_OpenSSL
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: ui_close
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - UI_OpenSSL
    - UI_method_get_closer
    linkageType: ''
    returnType: int
    signature: ui_close(UI *ui)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UI_create_method
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:225,1
    - Dst: UI_method_set_opener
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:226,1
    - Dst: UI_method_set_reader
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:227,1
    - Dst: UI_method_set_writer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:228,1
    - Dst: UI_method_set_closer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 231
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 231
    functionName: setup_ui_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - UI_method_set_writer
    - UI_create_method
    - UI_method_set_closer
    - UI_method_set_opener
    - UI_method_set_reader
    linkageType: ''
    returnType: int
    signature: setup_ui_method(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UI_destroy_method
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 239
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 239
    functionName: destroy_ui_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - UI_destroy_method
    linkageType: ''
    returnType: void
    signature: destroy_ui_method(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:252,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:255,1
    - Dst: UI_new_method
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:258,1
    - Dst: UI_construct_prompt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:268,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:270,1
    - Dst: UI_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:271,1
    - Dst: UI_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:276,1
    - Dst: UI_add_user_data
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:279,1
    - Dst: UI_add_input_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:282,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:285,1
    - Dst: UI_add_verify_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:286,1
    - Dst: UI_process
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:291,1
    - Dst: UI_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:293,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:295,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:298,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:300,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:301,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:302,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:306,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:307,1
    - Dst: UI_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:310,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:311,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 4
    argNames:
    - buf
    - bufsiz
    - verify
    - cb_tmp
    argTypes:
    - char*
    - int
    - int
    - PW_CB_DATA*
    constantsTouched: []
    func_position:
      end: 315
      start: 242
    functionDepth: 5
    functionLinenumber: 242
    functionLinenumberEnd: 315
    functionName: password_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - UI_add_input_string
    - UI_free
    - ERR_print_errors
    - UI_add_verify_string
    - app_malloc
    - strlen
    - OPENSSL_free
    - memcpy
    - UI_ctrl
    - UI_add_user_data
    - UI_construct_prompt
    - UI_process
    - OPENSSL_clear_free
    - BIO_printf
    - OPENSSL_cleanse
    - UI_new_method
    linkageType: ''
    returnType: int
    signature: password_callback(char *buf, int bufsiz, int verify, PW_CB_DATA *cb_tmp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:322,1
    - Dst: app_get_pass
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:327,1
    - Dst: app_get_pass
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:333,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 4
    argNames:
    - arg1
    - arg2
    - pass1
    - pass2
    argTypes:
    - char*
    - char*
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 339
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 339
    functionName: app_passwd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 14
    functionsReached:
    - app_get_pass
    - strcmp
    linkageType: ''
    returnType: int
    signature: app_passwd(const char *arg1, const char *arg2, char **pass1, char **pass2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:347,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:348,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:349,1
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:350,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:352,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:355,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:358,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:359,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:361,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:373,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:375,1
    - Dst: BIO_new_fd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:377,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:379,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:385,1
    - Dst: BIO_f_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:385,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:386,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:388,1
    - Dst: dup_bio_in
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:389,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:391,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:395,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:399,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:401,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:405,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:408,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:411,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 2
    argNames:
    - arg
    - keepbio
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 412
      start: 341
    functionDepth: 5
    functionLinenumber: 341
    functionLinenumberEnd: 412
    functionName: app_get_pass
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - BIO_push
    - dup_bio_in
    - BIO_free_all
    - strcmp
    - BIO_f_buffer
    - atoi
    - strncmp
    - strchr
    - getenv
    - BIO_new_fd
    - BIO_gets
    - BIO_new_file
    - OPENSSL_strdup
    - BIO_new
    - BIO_printf
    linkageType: ''
    returnType: char
    signature: '*app_get_pass(const char *arg, int keepbio)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:420,1
    - Dst: NCONF_load_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:421,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:426,1
    - Dst: opt_getprog
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:427,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:429,1
    - Dst: opt_getprog
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:430,1
    - Dst: NCONF_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - in
    - filename
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 433
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 433
    functionName: app_load_config_
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - opt_getprog
    - NCONF_free
    - NCONF_new
    - BIO_printf
    - NCONF_load_bio
    linkageType: ''
    returnType: CONF
    signature: '*app_load_config_(BIO *in, const char *filename)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:439,1
    - Dst: app_load_config_
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:443,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 446
      start: 434
    functionDepth: 4
    functionLinenumber: 434
    functionLinenumberEnd: 446
    functionName: app_load_config
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 4
    functionsReached:
    - BIO_free
    - bio_open_default
    - app_load_config_
    linkageType: ''
    returnType: CONF
    signature: '*app_load_config(const char *filename)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bio_open_default_quiet
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:452,1
    - Dst: app_load_config_
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:456,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 459
      start: 447
    functionDepth: 4
    functionLinenumber: 447
    functionLinenumberEnd: 459
    functionName: app_load_config_quiet
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - bio_open_default_quiet
    - BIO_free
    - app_load_config_
    linkageType: ''
    returnType: CONF
    signature: '*app_load_config_quiet(const char *filename)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: app_load_config_quiet
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:466,1
    - Dst: CONF_modules_load
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:470,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:471,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:472,1
    - Dst: NCONF_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:473,1
    - Dst: NCONF_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - config
    argTypes:
    - CONF*
    constantsTouched: []
    func_position:
      end: 478
      start: 461
    functionDepth: 5
    functionLinenumber: 461
    functionLinenumberEnd: 478
    functionName: app_load_modules
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - CONF_modules_load
    - ERR_print_errors
    - NCONF_free
    - app_load_config_quiet
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: app_load_modules(const CONF *config)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:483,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:487,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:488,1
    - Dst: NCONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:491,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:492,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:495,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:496,1
    - Dst: OBJ_create
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:497,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:498,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    constantsTouched: []
    func_position:
      end: 504
      start: 480
    functionDepth: 6
    functionLinenumber: 480
    functionLinenumberEnd: 504
    functionName: add_oid_section
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 2
    functionsReached:
    - sk_CONF_VALUE_value
    - STACK_OF
    - sk_CONF_VALUE_num
    - OBJ_create
    - NCONF_get_string
    - NCONF_get_section
    - BIO_printf
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: add_oid_section(CONF *conf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PKCS12_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:514,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:516,1
    - Dst: PKCS12_verify_mac
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:520,1
    - Dst: PKCS12_verify_mac
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:520,1
    - Dst: pem_cb
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:525,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:527,1
    - Dst: PKCS12_verify_mac
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:532,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:533,1
    - Dst: PKCS12_parse
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:540,1
    - Dst: PKCS12_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:542,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 7
    argNames:
    - in
    - desc
    - pem_cb
    - cb_data
    - pkey
    - cert
    - ca
    argTypes:
    - BIO*
    - char*
    - pem_password_cb*
    - void*
    - EVP_PKEY**
    - X509**
    - STACK_OF**
    constantsTouched: []
    func_position:
      end: 544
      start: 506
    functionDepth: 4
    functionLinenumber: 506
    functionLinenumberEnd: 544
    functionName: load_pkcs12
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - PKCS12_free
    - PKCS12_parse
    - pem_cb
    - PKCS12_verify_mac
    - d2i_PKCS12_bio
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "load_pkcs12(BIO *in, const char *desc,\n                       pem_password_cb
      *pem_cb, void *cb_data,\n                       EVP_PKEY **pkey, X509 **cert,
      STACK_OF(X509) **ca)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_parse_url
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:553,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:556,1
    - Dst: BIO_new_connect
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:559,1
    - Dst: BIO_set_conn_port
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:560,1
    - Dst: OCSP_REQ_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:562,1
    - Dst: OCSP_REQ_CTX_http
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:565,1
    - Dst: OCSP_REQ_CTX_add1_header
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:567,1
    - Dst: X509_http_nbio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:571,1
    - Dst: X509_CRL_http_nbio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:575,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:580,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:581,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:582,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:584,1
    - Dst: OCSP_REQ_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:585,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:587,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:589,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 3
    argNames:
    - url
    - pcert
    - pcrl
    argTypes:
    - char*
    - X509**
    - X509_CRL**
    constantsTouched: []
    func_position:
      end: 592
      start: 547
    functionDepth: 5
    functionLinenumber: 547
    functionLinenumberEnd: 592
    functionName: load_cert_crl_http
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - BIO_set_conn_port
    - OCSP_REQ_CTX_add1_header
    - OCSP_REQ_CTX_new
    - BIO_new_connect
    - BIO_puts
    - BIO_free_all
    - OCSP_parse_url
    - X509_CRL_http_nbio
    - ERR_print_errors
    - OCSP_REQ_CTX_free
    - X509_http_nbio
    - BIO_printf
    - OCSP_REQ_CTX_http
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: load_cert_crl_http(const char *url, X509 **pcert, X509_CRL **pcrl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load_cert_crl_http
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:602,1
    - Dst: unbuffer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:608,1
    - Dst: dup_bio_in
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:609,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:611,1
    - Dst: d2i_X509_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:616,1
    - Dst: PEM_read_bio_X509_AUX
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:618,1
    - Dst: load_pkcs12
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:621,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:624,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:629,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:630,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:632,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - file
    - format
    - cert_descrip
    argTypes:
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 634
      start: 595
    functionDepth: 6
    functionLinenumber: 595
    functionLinenumberEnd: 634
    functionName: load_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 8
    functionsReached:
    - dup_bio_in
    - PEM_read_bio_X509_AUX
    - load_cert_crl_http
    - ERR_print_errors
    - bio_open_default
    - d2i_X509_bio
    - BIO_free
    - load_pkcs12
    - BIO_printf
    - unbuffer
    linkageType: ''
    returnType: X509
    signature: '*load_cert(const char *file, int format, const char *cert_descrip)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load_cert_crl_http
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:643,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:648,1
    - Dst: d2i_X509_CRL_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:652,1
    - Dst: PEM_read_bio_X509_CRL
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:654,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:656,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:660,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:661,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:666,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - infile
    - format
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 668
      start: 636
    functionDepth: 6
    functionLinenumber: 636
    functionLinenumberEnd: 668
    functionName: load_crl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 2
    functionsReached:
    - load_cert_crl_http
    - d2i_X509_CRL_bio
    - ERR_print_errors
    - bio_open_default
    - PEM_read_bio_X509_CRL
    - BIO_free
    - BIO_printf
    linkageType: ''
    returnType: X509_CRL
    signature: '*load_crl(const char *infile, int format)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:681,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:686,1
    - Dst: ENGINE_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:689,1
    - Dst: ENGINE_load_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:690,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:691,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:694,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:695,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:698,1
    - Dst: unbuffer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:704,1
    - Dst: dup_bio_in
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:705,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:707,1
    - Dst: d2i_PrivateKey_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:711,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:713,1
    - Dst: load_pkcs12
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:718,1
    - Dst: b2i_PrivateKey_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:725,1
    - Dst: b2i_PVK_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:727,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:731,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 48
    argCount: 6
    argNames:
    - file
    - format
    - maybe_stdin
    - pass
    - e
    - key_descrip
    argTypes:
    - char*
    - int
    - int
    - char*
    - ENGINE*
    - char*
    constantsTouched: []
    func_position:
      end: 733
      start: 670
    functionDepth: 6
    functionLinenumber: 670
    functionLinenumberEnd: 733
    functionName: load_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 16
    functionsReached:
    - dup_bio_in
    - b2i_PrivateKey_bio
    - d2i_PrivateKey_bio
    - ERR_print_errors
    - ENGINE_load_private_key
    - bio_open_default
    - ENGINE_init
    - PEM_read_bio_PrivateKey
    - load_pkcs12
    - ENGINE_finish
    - b2i_PVK_bio
    - BIO_printf
    - unbuffer
    linkageType: ''
    returnType: EVP_PKEY
    signature: "*load_key(const char *file, int format, int maybe_stdin,\n                   const
      char *pass, ENGINE *e, const char *key_descrip)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:754,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:759,1
    - Dst: ENGINE_load_public_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:762,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:764,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:765,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:768,1
    - Dst: unbuffer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:774,1
    - Dst: dup_bio_in
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:775,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:777,1
    - Dst: d2i_PUBKEY_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:781,1
    - Dst: d2i_RSAPublicKey_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:786,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:788,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:790,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:791,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:794,1
    - Dst: PEM_read_bio_RSAPublicKey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:800,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:804,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:806,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:807,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:810,1
    - Dst: PEM_read_bio_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:815,1
    - Dst: b2i_PublicKey_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:821,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:824,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:826,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 64
    argCount: 6
    argNames:
    - file
    - format
    - maybe_stdin
    - pass
    - e
    - key_descrip
    argTypes:
    - char*
    - int
    - int
    - char*
    - ENGINE*
    - char*
    constantsTouched: []
    func_position:
      end: 828
      start: 743
    functionDepth: 6
    functionLinenumber: 743
    functionLinenumberEnd: 828
    functionName: load_pubkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 7
    functionsReached:
    - dup_bio_in
    - PEM_read_bio_PUBKEY
    - ENGINE_load_public_key
    - ERR_print_errors
    - bio_open_default
    - d2i_PUBKEY_bio
    - d2i_RSAPublicKey_bio
    - BIO_free
    - b2i_PublicKey_bio
    - EVP_PKEY_set1_RSA
    - RSA_free
    - EVP_PKEY_new
    - PEM_read_bio_RSAPublicKey
    - BIO_printf
    - unbuffer
    linkageType: ''
    returnType: EVP_PKEY
    signature: "*load_pubkey(const char *file, int format, int maybe_stdin,\n                      const
      char *pass, ENGINE *e, const char *key_descrip)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:837,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:846,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:850,1
    - Dst: PEM_X509_INFO_read_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:854,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:858,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:861,1
    - Dst: sk_X509_CRL_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:867,1
    - Dst: sk_X509_INFO_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:872,1
    - Dst: sk_X509_INFO_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:873,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:875,1
    - Dst: sk_X509_CRL_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:880,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:886,1
    - Dst: sk_X509_CRL_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:889,1
    - Dst: sk_X509_INFO_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:894,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:898,1
    - Dst: sk_X509_CRL_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:902,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:905,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:907,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 60
    argCount: 6
    argNames:
    - file
    - format
    - pass
    - desc
    - pcerts
    - pcrls
    argTypes:
    - char*
    - int
    - char*
    - char*
    - STACK_OF**
    - STACK_OF**
    constantsTouched: []
    func_position:
      end: 910
      start: 830
    functionDepth: 5
    functionLinenumber: 830
    functionLinenumberEnd: 910
    functionName: load_certs_crls
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - sk_X509_CRL_push
    - STACK_OF
    - sk_X509_INFO_value
    - bio_open_default
    - sk_X509_pop_free
    - PEM_X509_INFO_read_bio
    - sk_X509_INFO_num
    - ERR_print_errors
    - sk_X509_num
    - BIO_free
    - sk_X509_CRL_pop_free
    - sk_X509_push
    - BIO_printf
    - sk_X509_CRL_num
    - sk_X509_new_null
    - sk_X509_INFO_pop_free
    - sk_X509_CRL_new_null
    linkageType: ''
    returnType: int
    signature: "load_certs_crls(const char *file, int format,\n                           const
      char *pass, const char *desc,\n                           STACK_OF(X509) **pcerts,\n
      \                          STACK_OF(X509_CRL) **pcrls)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:917,1
    - Dst: opt_getprog
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:918,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:919,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sz
    - what
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 923
      start: 912
    functionDepth: 5
    functionLinenumber: 912
    functionLinenumberEnd: 923
    functionName: app_malloc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 24
    functionsReached:
    - ERR_print_errors
    - BIO_printf
    - exit
    - opt_getprog
    linkageType: ''
    returnType: void
    signature: '* app_malloc(int sz, const char *what)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load_certs_crls
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - file
    - certs
    - format
    - pass
    - desc
    argTypes:
    - char*
    - STACK_OF**
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 932
      start: 928
    functionDepth: 6
    functionLinenumber: 928
    functionLinenumberEnd: 932
    functionName: load_certs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 5
    functionsReached:
    - load_certs_crls
    linkageType: ''
    returnType: int
    signature: "load_certs(const char *file, STACK_OF(X509) **certs, int format,\n
      \              const char *pass, const char *desc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load_certs_crls
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - file
    - crls
    - format
    - pass
    - desc
    argTypes:
    - char*
    - STACK_OF**
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 941
      start: 937
    functionDepth: 6
    functionLinenumber: 937
    functionLinenumberEnd: 941
    functionName: load_crls
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - load_certs_crls
    linkageType: ''
    returnType: int
    signature: "load_crls(const char *file, STACK_OF(X509_CRL) **crls, int format,\n
      \             const char *pass, const char *desc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_multi_opts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - flags
    - arg
    argTypes:
    - unsigned long*
    - char*
    constantsTouched: []
    func_position:
      end: 980
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 980
    functionName: set_cert_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 3
    functionsReached:
    - set_multi_opts
    linkageType: ''
    returnType: int
    signature: set_cert_ex(unsigned long *flags, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_multi_opts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1015,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - flags
    - arg
    argTypes:
    - unsigned long*
    - char*
    constantsTouched: []
    func_position:
      end: 1020
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 1020
    functionName: set_name_ex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 4
    functionsReached:
    - set_multi_opts
    linkageType: ''
    returnType: int
    signature: set_name_ex(unsigned long *flags, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1024,1
    - Dst: strcasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1026,1
    - Dst: strcasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1028,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - copy_type
    - arg
    argTypes:
    - int*
    - char*
    constantsTouched: []
    func_position:
      end: 1033
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1033
    functionName: set_ext_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: set_ext_copy(int *copy_type, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1037,1
    - Dst: X509_REQ_get_extensions
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1043,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1045,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1046,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1047,1
    - Dst: X509_get_ext_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1048,1
    - Dst: X509_get_ext
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1056,1
    - Dst: X509_delete_ext
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1057,1
    - Dst: X509_EXTENSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1058,1
    - Dst: X509_get_ext_by_OBJ
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1059,1
    - Dst: X509_add_ext
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1062,1
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1070,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - x
    - req
    - copy_type
    argTypes:
    - X509*
    - X509_REQ*
    - int
    constantsTouched: []
    func_position:
      end: 1073
      start: 1035
    functionDepth: 2
    functionLinenumber: 1035
    functionLinenumberEnd: 1073
    functionName: copy_extensions
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - sk_X509_EXTENSION_value
    - sk_X509_EXTENSION_pop_free
    - X509_EXTENSION_free
    - STACK_OF
    - X509_get_ext
    - X509_add_ext
    - X509_delete_ext
    - X509_get_ext_by_OBJ
    - sk_X509_EXTENSION_num
    - X509_REQ_get_extensions
    - X509_EXTENSION_get_object
    linkageType: ''
    returnType: int
    signature: copy_extensions(X509 *x, X509_REQ *req, int copy_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1078,1
    - Dst: X509V3_parse_list
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1083,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1084,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1085,1
    - Dst: set_table_opts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1086,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1089,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - flags
    - arg
    - in_tbl
    argTypes:
    - unsigned long*
    - char*
    - NAME_EX_TBL*
    constantsTouched: []
    func_position:
      end: 1091
      start: 1075
    functionDepth: 1
    functionLinenumber: 1075
    functionLinenumberEnd: 1091
    functionName: set_multi_opts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 2
    functionsReached:
    - sk_CONF_VALUE_value
    - STACK_OF
    - sk_CONF_VALUE_num
    - X509V3_parse_list
    - set_table_opts
    - sk_CONF_VALUE_pop_free
    linkageType: ''
    returnType: int
    signature: "set_multi_opts(unsigned long *flags, const char *arg,\n                          const
      NAME_EX_TBL * in_tbl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - flags
    - arg
    - in_tbl
    argTypes:
    - unsigned long*
    - char*
    - NAME_EX_TBL*
    constantsTouched: []
    func_position:
      end: 1120
      start: 1093
    functionDepth: 0
    functionLinenumber: 1093
    functionLinenumberEnd: 1120
    functionName: set_table_opts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: "set_table_opts(unsigned long *flags, const char *arg,\n                          const
      NAME_EX_TBL * in_tbl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1130,1
    - Dst: X509_NAME_oneline
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1136,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1137,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1138,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1139,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1142,1
    - Dst: X509_NAME_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1143,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - out
    - title
    - nm
    - lflags
    argTypes:
    - BIO*
    - char*
    - X509_NAME*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 1146
      start: 1122
    functionDepth: 7
    functionLinenumber: 1122
    functionLinenumberEnd: 1146
    functionName: print_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 4
    functionsReached:
    - X509_NAME_oneline
    - OPENSSL_free
    - X509_NAME_print_ex
    - BIO_puts
    linkageType: ''
    returnType: void
    signature: "print_name(BIO *out, const char *title, X509_NAME *nm,\n                unsigned
      long lflags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1151,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1152,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1153,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1157,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1160,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1162,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1164,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - out
    - in
    - var
    - len
    - buffer
    argTypes:
    - BIO*
    - BIGNUM*
    - char*
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 1168
      start: 1148
    functionDepth: 2
    functionLinenumber: 1148
    functionLinenumberEnd: 1168
    functionName: print_bignum_var
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 3
    functionsReached:
    - BN_is_zero
    - BIO_printf
    - BN_bn2bin
    linkageType: ''
    returnType: void
    signature: "print_bignum_var(BIO *out, const BIGNUM *in, const char *var,\n                      int
      len, unsigned char *buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1173,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1176,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1178,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1180,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - out
    - title
    - len
    - d
    argTypes:
    - BIO*
    - char*
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 1183
      start: 1169
    functionDepth: 2
    functionLinenumber: 1169
    functionLinenumberEnd: 1183
    functionName: print_array
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: print_array(BIO *out, const char* title, int len, const unsigned char*
      d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1187,1
    - Dst: X509_STORE_add_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1194,1
    - Dst: X509_LOOKUP_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1194,1
    - Dst: X509_LOOKUP_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1198,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1199,1
    - Dst: X509_LOOKUP_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1203,1
    - Dst: X509_STORE_add_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1207,1
    - Dst: X509_LOOKUP_hash_dir
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1207,1
    - Dst: X509_LOOKUP_add_dir
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1211,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1212,1
    - Dst: X509_LOOKUP_add_dir
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1216,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1219,1
    - Dst: X509_STORE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1222,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 4
    argNames:
    - CAfile
    - CApath
    - noCAfile
    - noCApath
    argTypes:
    - char*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1224
      start: 1185
    functionDepth: 3
    functionLinenumber: 1185
    functionLinenumberEnd: 1224
    functionName: setup_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 4
    functionsReached:
    - X509_STORE_free
    - X509_LOOKUP_load_file
    - X509_LOOKUP_add_dir
    - ERR_clear_error
    - X509_STORE_new
    - X509_LOOKUP_hash_dir
    - BIO_printf
    - X509_STORE_add_lookup
    - X509_LOOKUP_file
    linkageType: ''
    returnType: X509_STORE
    signature: '*setup_verify(const char *CAfile, const char *CApath, int noCAfile,
      int noCApath)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1230,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1232,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1233,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - engine
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1239
      start: 1228
    functionDepth: 7
    functionLinenumber: 1228
    functionLinenumberEnd: 1239
    functionName: try_load_engine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - ENGINE_ctrl_cmd_string
    - ENGINE_by_id
    - ENGINE_free
    linkageType: ''
    returnType: ENGINE
    signature: '*try_load_engine(const char *engine)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1248,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1249,1
    - Dst: ENGINE_register_all_complete
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1250,1
    - Dst: ENGINE_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1253,1
    - Dst: try_load_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1254,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1255,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1256,1
    - Dst: ENGINE_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1260,1
    - Dst: ENGINE_ctrl_cmd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1262,1
    - Dst: ENGINE_set_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1263,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1264,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1265,1
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1266,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1270,1
    - Dst: ENGINE_get_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1270,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - engine
    - debug
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1274
      start: 1242
    functionDepth: 8
    functionLinenumber: 1242
    functionLinenumberEnd: 1274
    functionName: setup_engine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 20
    functionsReached:
    - try_load_engine
    - ENGINE_ctrl
    - ENGINE_get_id
    - ENGINE_set_default
    - strcmp
    - ERR_print_errors
    - ENGINE_by_id
    - ENGINE_free
    - ENGINE_ctrl_cmd
    - ENGINE_register_all_complete
    - BIO_printf
    linkageType: ''
    returnType: ENGINE
    signature: '*setup_engine(const char *engine, int debug)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 1283
      start: 1276
    functionDepth: 4
    functionLinenumber: 1276
    functionLinenumberEnd: 1283
    functionName: release_engine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 19
    functionsReached:
    - ENGINE_free
    linkageType: ''
    returnType: void
    signature: release_engine(ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_LH_strhash
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - OPENSSL_CSTRING*
    constantsTouched: []
    func_position:
      end: 1293
      start: 1285
    functionDepth: 1
    functionLinenumber: 1285
    functionLinenumberEnd: 1293
    functionName: index_serial_hash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_strhash
    linkageType: ''
    returnType: unsigned long
    signature: index_serial_hash(const OPENSSL_CSTRING *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - OPENSSL_CSTRING*
    - OPENSSL_CSTRING*
    constantsTouched: []
    func_position:
      end: 1303
      start: 1295
    functionDepth: 0
    functionLinenumber: 1295
    functionLinenumberEnd: 1303
    functionName: index_serial_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "index_serial_cmp(const OPENSSL_CSTRING *a,\n                            const
      OPENSSL_CSTRING *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 1308
      start: 1305
    functionDepth: 0
    functionLinenumber: 1305
    functionLinenumberEnd: 1308
    functionName: index_name_qual
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: index_name_qual(char **a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_LH_strhash
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - OPENSSL_CSTRING*
    constantsTouched: []
    func_position:
      end: 1313
      start: 1310
    functionDepth: 1
    functionLinenumber: 1310
    functionLinenumberEnd: 1313
    functionName: index_name_hash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_strhash
    linkageType: ''
    returnType: unsigned long
    signature: index_name_hash(const OPENSSL_CSTRING *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - OPENSSL_CSTRING*
    - OPENSSL_CSTRING*
    constantsTouched: []
    func_position:
      end: 1318
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1318
    functionName: index_name_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: index_name_cmp(const OPENSSL_CSTRING *a, const OPENSSL_CSTRING *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1340,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1343,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1344,1
    - Dst: rand_serial
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1345,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1320
    functionDepth: 2
    functionLinenumber: 1320
    functionLinenumberEnd: 1347
    functionName: BIO_new_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 46
    functionsReached:
    - BN_new
    - rand_serial
    - perror
    - BIO_printf
    - ERR_clear_error
    linkageType: ''
    returnType: void
    signature: "BIO_new_file(serialfile, \"r\");\n    if (in == NULL)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1381,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1383,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1383,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1385,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1390,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1393,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1395,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1398,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1400,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1404,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1405,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1408,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1409,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1416,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1417,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 4
    argNames:
    - serialfile
    - suffix
    - serial
    - retai
    argTypes:
    - char*
    - char*
    - BIGNUM*
    - ASN1_INTEGER**
    constantsTouched: []
    func_position:
      end: 1419
      start: 1371
    functionDepth: 5
    functionLinenumber: 1371
    functionLinenumberEnd: 1419
    functionName: save_serial
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 2
    functionsReached:
    - BIO_snprintf
    - BIO_free_all
    - BIO_puts
    - ERR_print_errors
    - OPENSSL_strlcpy
    - BN_to_ASN1_INTEGER
    - i2a_ASN1_INTEGER
    - strlen
    - BIO_new_file
    - BIO_printf
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: int
    signature: "save_serial(const char *serialfile, const char *suffix, const BIGNUM
      *serial,\n                ASN1_INTEGER **retai)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1427,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1427,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1428,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1428,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1432,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1436,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1437,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1439,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1440,1
    - Dst: rename
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1442,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1447,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1449,1
    - Dst: rename
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1452,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1453,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1455,1
    - Dst: rename
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1456,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - serialfile
    - new_suffix
    - old_suffix
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1462
      start: 1421
    functionDepth: 2
    functionLinenumber: 1421
    functionLinenumberEnd: 1462
    functionName: rotate_serial
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - BIO_snprintf
    - perror
    - strlen
    - rename
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "rotate_serial(const char *serialfile, const char *new_suffix,\n                  const
      char *old_suffix)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1472,1
    - Dst: BN_pseudo_rand
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1477,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1479,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1487,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - b
    - ai
    argTypes:
    - BIGNUM*
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 1490
      start: 1464
    functionDepth: 6
    functionLinenumber: 1464
    functionLinenumberEnd: 1490
    functionName: rand_serial
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 3
    functionsReached:
    - BN_new
    - BN_free
    - BN_pseudo_rand
    - BN_to_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: rand_serial(BIGNUM *b, ASN1_INTEGER *ai)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1500,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1502,1
    - Dst: TXT_DB_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1505,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1509,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1511,1
    - Dst: app_load_config
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1513,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1515,1
    - Dst: parse_yesno
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1527,1
    - Dst: NCONF_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1532,1
    - Dst: TXT_DB_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1533,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1534,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - dbfile
    - db_attr
    argTypes:
    - char*
    - DB_ATTR*
    constantsTouched: []
    func_position:
      end: 1536
      start: 1492
    functionDepth: 6
    functionLinenumber: 1492
    functionLinenumberEnd: 1536
    functionName: load_index
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - TXT_DB_read
    - BIO_snprintf
    - BIO_free_all
    - ERR_print_errors
    - TXT_DB_free
    - app_malloc
    - app_load_config
    - BIO_new_file
    - NCONF_free
    - parse_yesno
    linkageType: ''
    returnType: CA_DB
    signature: '*load_index(const char *dbfile, DB_ATTR *db_attr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TXT_DB_create_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1540,1
    - Dst: LHASH_HASH_FN
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1541,1
    - Dst: LHASH_COMP_FN
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1542,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1543,1
    - Dst: TXT_DB_create_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1550,1
    - Dst: LHASH_HASH_FN
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1551,1
    - Dst: LHASH_COMP_FN
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1552,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1553,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - db
    argTypes:
    - CA_DB*
    constantsTouched: []
    func_position:
      end: 1558
      start: 1538
    functionDepth: 2
    functionLinenumber: 1538
    functionLinenumberEnd: 1558
    functionName: index_index
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    - LHASH_COMP_FN
    - TXT_DB_create_index
    - LHASH_HASH_FN
    linkageType: ''
    returnType: int
    signature: index_index(CA_DB *db)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1566,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1566,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1568,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1572,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1573,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1574,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1576,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1577,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1578,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1580,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1582,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1583,1
    - Dst: TXT_DB_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1586,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1587,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1591,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1593,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1594,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1597,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1599,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - dbfile
    - suffix
    - db
    argTypes:
    - char*
    - char*
    - CA_DB*
    constantsTouched: []
    func_position:
      end: 1604
      start: 1560
    functionDepth: 4
    functionLinenumber: 1560
    functionLinenumberEnd: 1604
    functionName: save_index
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - BIO_snprintf
    - TXT_DB_write
    - perror
    - strlen
    - BIO_free
    - BIO_new_file
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: save_index(const char *dbfile, const char *suffix, CA_DB *db)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1612,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1612,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1613,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1613,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1617,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1621,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1622,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1623,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1624,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1625,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1627,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1628,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1629,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1630,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1631,1
    - Dst: rename
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1633,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1638,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1639,1
    - Dst: rename
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1642,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1643,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1644,1
    - Dst: rename
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1645,1
    - Dst: rename
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1648,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1653,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1654,1
    - Dst: rename
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1655,1
    - Dst: rename
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1656,1
    - Dst: rename
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1659,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1660,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1661,1
    - Dst: rename
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1662,1
    - Dst: rename
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1663,1
    - Dst: rename
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1664,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 3
    argNames:
    - dbfile
    - new_suffix
    - old_suffix
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1670
      start: 1606
    functionDepth: 2
    functionLinenumber: 1606
    functionLinenumberEnd: 1670
    functionName: rotate_index
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - BIO_snprintf
    - perror
    - strlen
    - rename
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "rotate_index(const char *dbfile, const char *new_suffix,\n                 const
      char *old_suffix)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TXT_DB_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1675,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - db
    argTypes:
    - CA_DB*
    constantsTouched: []
    func_position:
      end: 1678
      start: 1672
    functionDepth: 1
    functionLinenumber: 1672
    functionLinenumberEnd: 1678
    functionName: free_index
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - TXT_DB_free
    linkageType: ''
    returnType: void
    signature: free_index(CA_DB *db)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - str
    - def
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1699
      start: 1680
    functionDepth: 0
    functionLinenumber: 1680
    functionLinenumberEnd: 1699
    functionName: parse_yesno
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: parse_yesno(const char *str, int def)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1714,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1717,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1733,1
    - Dst: opt_getprog
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1735,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1749,1
    - Dst: opt_getprog
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1751,1
    - Dst: OBJ_txt2nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1762,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1764,1
    - Dst: opt_getprog
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1765,1
    - Dst: X509_NAME_add_entry_by_NID
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1768,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1769,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1774,1
    - Dst: X509_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1778,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1779,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 3
    argNames:
    - cp
    - chtype
    - canmulti
    argTypes:
    - char*
    - long
    - int
    constantsTouched: []
    func_position:
      end: 1781
      start: 1705
    functionDepth: 6
    functionLinenumber: 1705
    functionLinenumberEnd: 1781
    functionName: parse_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 2
    functionsReached:
    - X509_NAME_free
    - OBJ_txt2nid
    - strlen
    - X509_NAME_add_entry_by_NID
    - OPENSSL_free
    - opt_getprog
    - OPENSSL_strdup
    - X509_NAME_new
    - BIO_printf
    linkageType: ''
    returnType: X509_NAME
    signature: '*parse_name(const char *cp, long chtype, int canmulti)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1794,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1794,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1802,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1804,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1809,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1810,1
    - Dst: BIO_get_mem_data
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1818,1
    - Dst: BIO_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1819,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1820,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - out
    - maxlen
    - in
    argTypes:
    - unsigned char**
    - int
    - BIO*
    constantsTouched: []
    func_position:
      end: 1822
      start: 1788
    functionDepth: 4
    functionLinenumber: 1788
    functionLinenumberEnd: 1822
    functionName: bio_to_mem
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - BIO_set_flags
    - BIO_read
    - BIO_s_mem
    - BIO_free
    - BIO_get_mem_data
    - BIO_new
    - BIO_write
    linkageType: ''
    returnType: int
    signature: bio_to_mem(unsigned char **out, int maxlen, BIO *in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1828,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1831,1
    - Dst: EVP_PKEY_CTX_ctrl_str
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1836,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 1839
      start: 1824
    functionDepth: 2
    functionLinenumber: 1824
    functionLinenumberEnd: 1839
    functionName: pkey_ctrl_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 5
    functionsReached:
    - EVP_PKEY_CTX_ctrl_str
    - OPENSSL_free
    - strchr
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: pkey_ctrl_string(EVP_PKEY_CTX *ctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1846,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1848,1
    - Dst: sk_X509_POLICY_NODE_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1849,1
    - Dst: sk_X509_POLICY_NODE_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1850,1
    - Dst: X509_POLICY_NODE_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1851,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1854,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - name
    - nodes
    argTypes:
    - char*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 1855
      start: 1841
    functionDepth: 5
    functionLinenumber: 1841
    functionLinenumberEnd: 1855
    functionName: nodes_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - sk_X509_POLICY_NODE_num
    - sk_X509_POLICY_NODE_value
    - X509_POLICY_NODE_print
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: nodes_print(const char *name, STACK_OF(X509_POLICY_NODE) *nodes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_get0_policy_tree
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1861,1
    - Dst: X509_STORE_CTX_get_explicit_policy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1862,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1864,1
    - Dst: nodes_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1867,1
    - Dst: X509_policy_tree_get0_policies
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1867,1
    - Dst: nodes_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1868,1
    - Dst: X509_policy_tree_get0_user_policies
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 1869
      start: 1857
    functionDepth: 6
    functionLinenumber: 1857
    functionLinenumberEnd: 1869
    functionName: policies_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 2
    functionsReached:
    - X509_STORE_CTX_get0_policy_tree
    - X509_STORE_CTX_get_explicit_policy
    - X509_policy_tree_get0_policies
    - BIO_printf
    - X509_policy_tree_get0_user_policies
    - nodes_print
    linkageType: ''
    returnType: void
    signature: policies_print(X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1886,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1890,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1890,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1894,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - outlen
    - in
    argTypes:
    - size_t*
    - char*
    constantsTouched: []
    func_position:
      end: 1905
      start: 1880
    functionDepth: 6
    functionLinenumber: 1880
    functionLinenumberEnd: 1905
    functionName: next_protos_parse
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 2
    functionsReached:
    - strlen
    - OPENSSL_free
    - app_malloc
    linkageType: ''
    returnType: unsigned char
    signature: '*next_protos_parse(size_t *outlen, const char *in)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1914,1
    - Dst: X509_check_host
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1916,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1921,1
    - Dst: X509_check_email
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1922,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1927,1
    - Dst: X509_check_ip_asc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1928,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - bio
    - x
    - checkhost
    - checkemail
    - checkip
    argTypes:
    - BIO*
    - X509*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1930
      start: 1907
    functionDepth: 5
    functionLinenumber: 1907
    functionLinenumberEnd: 1930
    functionName: print_cert_checks
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - X509_check_host
    - BIO_printf
    - X509_check_email
    - X509_check_ip_asc
    linkageType: ''
    returnType: void
    signature: "print_cert_checks(BIO *bio, X509 *x,\n                       const
      char *checkhost,\n                       const char *checkemail, const char
      *checkip)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1943,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1944,1
    - Dst: GENERAL_NAME_get0_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1945,1
    - Dst: ASN1_STRING_length
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1946,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1948,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - dp
    argTypes:
    - DIST_POINT*
    constantsTouched: []
    func_position:
      end: 1953
      start: 1934
    functionDepth: 1
    functionLinenumber: 1934
    functionLinenumberEnd: 1953
    functionName: get_dp_url
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - sk_GENERAL_NAME_value
    - sk_GENERAL_NAME_num
    - strncmp
    - GENERAL_NAME_get0_value
    - ASN1_STRING_length
    linkageType: ''
    returnType: char
    signature: '*get_dp_url(DIST_POINT *dp)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_DIST_POINT_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1964,1
    - Dst: sk_DIST_POINT_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1965,1
    - Dst: get_dp_url
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1966,1
    - Dst: load_crl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1968,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - crldp
    argTypes:
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 1971
      start: 1960
    functionDepth: 7
    functionLinenumber: 1960
    functionLinenumberEnd: 1971
    functionName: load_crl_crldp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - sk_DIST_POINT_value
    - get_dp_url
    - load_crl
    - sk_DIST_POINT_num
    linkageType: ''
    returnType: X509_CRL
    signature: '*load_crl_crldp(STACK_OF(DIST_POINT) *crldp)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1982,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1984,1
    - Dst: sk_X509_CRL_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1986,1
    - Dst: X509_STORE_CTX_get_current_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1989,1
    - Dst: X509_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1990,1
    - Dst: load_crl_crldp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1991,1
    - Dst: sk_DIST_POINT_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1992,1
    - Dst: sk_X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1994,1
    - Dst: sk_X509_CRL_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1997,1
    - Dst: X509_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:1999,1
    - Dst: load_crl_crldp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2000,1
    - Dst: sk_DIST_POINT_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2001,1
    - Dst: sk_X509_CRL_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2003,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - nm
    argTypes:
    - X509_STORE_CTX*
    - X509_NAME*
    constantsTouched: []
    func_position:
      end: 2005
      start: 1979
    functionDepth: 8
    functionLinenumber: 1979
    functionLinenumberEnd: 2005
    functionName: crls_http_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - sk_X509_CRL_push
    - X509_get_ext_d2i
    - STACK_OF
    - load_crl_crldp
    - sk_X509_CRL_free
    - sk_DIST_POINT_pop_free
    - X509_STORE_CTX_get_current_cert
    - sk_X509_CRL_new_null
    linkageType: ''
    returnType: STACK_OF
    signature: '*crls_http_cb(X509_STORE_CTX *ctx, X509_NAME *nm)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_set_lookup_crls_cb
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - X509_STORE*
    constantsTouched: []
    func_position:
      end: 2010
      start: 2007
    functionDepth: 0
    functionLinenumber: 2007
    functionLinenumberEnd: 2010
    functionName: store_setup_crl_download
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - X509_STORE_set_lookup_crls_cb
    linkageType: ''
    returnType: void
    signature: store_setup_crl_download(X509_STORE *st)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_winnt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2087,1
    - Dst: OpenProcess
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2088,1
    - Dst: GetCurrentProcessId
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2089,1
    - Dst: GetProcessTimes
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2096,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2103,1
    - Dst: GetSystemTime
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2107,1
    - Dst: SystemTimeToFileTime
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2108,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - stop
    - usertime
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2124
      start: 2077
    functionDepth: 2
    functionLinenumber: 2077
    functionLinenumberEnd: 2124
    functionName: app_tminterval
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 2
    functionsReached:
    - SystemTimeToFileTime
    - GetSystemTime
    - OpenProcess
    - GetCurrentProcessId
    - GetProcessTimes
    - BIO_printf
    - check_winnt
    linkageType: ''
    returnType: double
    signature: app_tminterval(int stop, int usertime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2141,1
    - Dst: clock_gettime
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2146,1
    - Dst: tickGet
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2153,1
    - Dst: sysClkRateGet
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - stop
    - usertime
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2160
      start: 2128
    functionDepth: 2
    functionLinenumber: 2128
    functionLinenumberEnd: 2160
    functionName: app_tminterval
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 2
    functionsReached:
    - sysClkRateGet
    - BIO_printf
    - tickGet
    - clock_gettime
    linkageType: ''
    returnType: double
    signature: app_tminterval(int stop, int usertime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: times
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2174,1
    - Dst: clock
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2179,1
    - Dst: gettimeofday
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - stop
    - usertime
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2194
      start: 2166
    functionDepth: 0
    functionLinenumber: 2166
    functionLinenumberEnd: 2194
    functionName: app_tminterval
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 2
    functionsReached:
    - gettimeofday
    - times
    - clock
    linkageType: ''
    returnType: double
    signature: app_tminterval(int stop, int usertime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: times
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - stop
    - usertime
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2217
      start: 2199
    functionDepth: 0
    functionLinenumber: 2199
    functionLinenumberEnd: 2217
    functionName: app_tminterval
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 2
    functionsReached:
    - times
    linkageType: ''
    returnType: double
    signature: app_tminterval(int stop, int usertime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getrusage
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2231,1
    - Dst: gettimeofday
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - stop
    - usertime
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2242
      start: 2223
    functionDepth: 0
    functionLinenumber: 2223
    functionLinenumberEnd: 2242
    functionName: app_tminterval
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 2
    functionsReached:
    - gettimeofday
    - getrusage
    linkageType: ''
    returnType: double
    signature: app_tminterval(int stop, int usertime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _access
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2248,1
    - Dst: access
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - flag
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2252
      start: 2245
    functionDepth: 0
    functionLinenumber: 2245
    functionLinenumberEnd: 2252
    functionName: app_access
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 2
    functionsReached:
    - _access
    - access
    linkageType: ''
    returnType: int
    signature: app_access(const char* name, int flag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2263,1
    - Dst: MultiByteToWideChar
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2267,1
    - Dst: FindFirstFile
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2273,1
    - Dst: FindFirstFile
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2275,1
    - Dst: FindClose
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2279,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2281
      start: 2256
    functionDepth: 0
    functionLinenumber: 2256
    functionLinenumberEnd: 2281
    functionName: app_isdir
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 2
    functionsReached:
    - OSSL_NELEM
    - MultiByteToWideChar
    - FindClose
    - FindFirstFile
    linkageType: ''
    returnType: int
    signature: app_isdir(const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2297,1
    - Dst: S_ISDIR
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2304
      start: 2292
    functionDepth: 0
    functionLinenumber: 2292
    functionLinenumberEnd: 2304
    functionName: app_isdir
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 2
    functionsReached:
    - stat
    - S_ISDIR
    linkageType: ''
    returnType: int
    signature: app_isdir(const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TerminalSocket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2315
      start: 2312
    functionDepth: 2
    functionLinenumber: 2312
    functionLinenumberEnd: 2315
    functionName: close_stdin_sock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - TerminalSocket
    linkageType: ''
    returnType: void
    signature: close_stdin_sock(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TerminalSocket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2320,1
    - Dst: atexit
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2325
      start: 2317
    functionDepth: 2
    functionLinenumber: 2317
    functionLinenumberEnd: 2325
    functionName: fileno_stdin
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - TerminalSocket
    - atexit
    linkageType: ''
    returnType: int
    signature: fileno_stdin(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fileno
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2330
      start: 2327
    functionDepth: 0
    functionLinenumber: 2327
    functionLinenumberEnd: 2330
    functionName: fileno_stdin
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - fileno
    linkageType: ''
    returnType: int
    signature: fileno_stdin(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fileno
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2336
      start: 2333
    functionDepth: 0
    functionLinenumber: 2333
    functionLinenumberEnd: 2336
    functionName: fileno_stdout
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - fileno
    linkageType: ''
    returnType: int
    signature: fileno_stdout(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadFile
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2342,1
    - Dst: GetStdHandle
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - siz
    argTypes:
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 2346
      start: 2339
    functionDepth: 0
    functionLinenumber: 2339
    functionLinenumberEnd: 2346
    functionName: raw_read_stdin
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - GetStdHandle
    - ReadFile
    linkageType: ''
    returnType: int
    signature: raw_read_stdin(void *buf, int siz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2352,1
    - Dst: fileno_stdin
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - siz
    argTypes:
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 2353
      start: 2350
    functionDepth: 7
    functionLinenumber: 2350
    functionLinenumberEnd: 2353
    functionName: raw_read_stdin
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - recv
    - fileno_stdin
    linkageType: ''
    returnType: int
    signature: raw_read_stdin(void *buf, int siz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2357,1
    - Dst: fileno_stdin
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - siz
    argTypes:
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 2358
      start: 2355
    functionDepth: 3
    functionLinenumber: 2355
    functionLinenumberEnd: 2358
    functionName: raw_read_stdin
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - read
    - fileno_stdin
    linkageType: ''
    returnType: int
    signature: raw_read_stdin(void *buf, int siz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteFile
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2365,1
    - Dst: GetStdHandle
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - siz
    argTypes:
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 2369
      start: 2362
    functionDepth: 0
    functionLinenumber: 2362
    functionLinenumberEnd: 2369
    functionName: raw_write_stdout
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - GetStdHandle
    - WriteFile
    linkageType: ''
    returnType: int
    signature: raw_write_stdout(const void *buf, int siz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2373,1
    - Dst: fileno_stdout
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - siz
    argTypes:
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 2374
      start: 2371
    functionDepth: 1
    functionLinenumber: 2371
    functionLinenumberEnd: 2374
    functionName: raw_write_stdout
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - fileno_stdout
    - write
    linkageType: ''
    returnType: int
    signature: raw_write_stdout(const void *buf, int siz)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2387
      start: 2384
    functionDepth: 0
    functionLinenumber: 2384
    functionLinenumberEnd: 2387
    functionName: istext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: istext(int format)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2391,1
    - Dst: istext
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2393
      start: 2389
    functionDepth: 4
    functionLinenumber: 2389
    functionLinenumberEnd: 2393
    functionName: dup_bio_in
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 4
    functionsReached:
    - BIO_new_fp
    - istext
    linkageType: ''
    returnType: BIO
    signature: '*dup_bio_in(int format)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2397,1
    - Dst: istext
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2398,1
    - Dst: istext
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2400,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2401,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2401,1
    - Dst: BIO_f_linebuffer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - format
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2404
      start: 2395
    functionDepth: 4
    functionLinenumber: 2395
    functionLinenumberEnd: 2404
    functionName: dup_bio_out
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 2
    functionsReached:
    - BIO_push
    - BIO_f_linebuffer
    - BIO_new_fp
    - istext
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: '*dup_bio_out(int format)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2408,1
    - Dst: istext
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2409,1
    - Dst: istext
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2411,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2412,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2412,1
    - Dst: BIO_f_linebuffer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - format
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2415
      start: 2406
    functionDepth: 4
    functionLinenumber: 2406
    functionLinenumberEnd: 2415
    functionName: dup_bio_err
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - BIO_push
    - BIO_f_linebuffer
    - BIO_new_fp
    - istext
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: '*dup_bio_err(int format)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setbuf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 2434
      start: 2417
    functionDepth: 0
    functionLinenumber: 2417
    functionLinenumberEnd: 2434
    functionName: unbuffer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 3
    functionsReached:
    - setbuf
    linkageType: ''
    returnType: void
    signature: unbuffer(FILE *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2438,1
    - Dst: istext
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2442,1
    - Dst: istext
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2444,1
    - Dst: istext
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2446,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - mode
    - format
    argTypes:
    - char
    - int
    constantsTouched: []
    func_position:
      end: 2450
      start: 2436
    functionDepth: 1
    functionLinenumber: 2436
    functionLinenumberEnd: 2450
    functionName: modestr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - istext
    - OPENSSL_assert
    linkageType: ''
    returnType: char
    signature: '*modestr(char mode, int format)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - mode
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 2463
      start: 2452
    functionDepth: 0
    functionLinenumber: 2452
    functionLinenumberEnd: 2463
    functionName: modeverb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*modeverb(char mode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2474,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2475,1
    - Dst: istext
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2484,1
    - Dst: open
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2500,1
    - Dst: open
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2503,1
    - Dst: fdopen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2506,1
    - Dst: modestr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2506,1
    - Dst: BIO_new_fp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2512,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2517,1
    - Dst: opt_getprog
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2518,1
    - Dst: strerror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2518,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2519,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2522,1
    - Dst: close
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2524,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 3
    argNames:
    - filename
    - format
    - private
    argTypes:
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2526
      start: 2468
    functionDepth: 5
    functionLinenumber: 2468
    functionLinenumberEnd: 2526
    functionName: bio_open_owner
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 9
    functionsReached:
    - fdopen
    - open
    - modestr
    - strcmp
    - ERR_print_errors
    - bio_open_default
    - fclose
    - BIO_new_fp
    - close
    - opt_getprog
    - istext
    - BIO_printf
    - strerror
    linkageType: ''
    returnType: BIO
    signature: '*bio_open_owner(const char *filename, int format, int private)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2533,1
    - Dst: dup_bio_in
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2534,1
    - Dst: dup_bio_out
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2534,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2536,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2541,1
    - Dst: strerror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2543,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2545,1
    - Dst: modestr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2545,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2547,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2552,1
    - Dst: modeverb
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2554,1
    - Dst: strerror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2554,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2556,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - filename
    - mode
    - format
    - quiet
    argTypes:
    - char*
    - char
    - int
    - int
    constantsTouched: []
    func_position:
      end: 2558
      start: 2528
    functionDepth: 5
    functionLinenumber: 2528
    functionLinenumberEnd: 2558
    functionName: bio_open_default_
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 0
    functionsReached:
    - dup_bio_in
    - dup_bio_out
    - modestr
    - strcmp
    - ERR_print_errors
    - modeverb
    - BIO_new_file
    - BIO_printf
    - strerror
    - ERR_clear_error
    linkageType: ''
    returnType: BIO
    signature: "*bio_open_default_(const char *filename, char mode, int format,\n
      \                             int quiet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bio_open_default_
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - filename
    - mode
    - format
    argTypes:
    - char*
    - char
    - int
    constantsTouched: []
    func_position:
      end: 2563
      start: 2560
    functionDepth: 6
    functionLinenumber: 2560
    functionLinenumberEnd: 2563
    functionName: bio_open_default
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 25
    functionsReached:
    - bio_open_default_
    linkageType: ''
    returnType: BIO
    signature: '*bio_open_default(const char *filename, char mode, int format)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bio_open_default_
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - filename
    - mode
    - format
    argTypes:
    - char*
    - char
    - int
    constantsTouched: []
    func_position:
      end: 2568
      start: 2565
    functionDepth: 6
    functionLinenumber: 2565
    functionLinenumberEnd: 2568
    functionName: bio_open_default_quiet
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - bio_open_default_
    linkageType: ''
    returnType: BIO
    signature: '*bio_open_default_quiet(const char *filename, char mode, int format)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_all_async_fds
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2579,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2583,1
    - Dst: SSL_get_all_async_fds
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2584,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2585,1
    - Dst: FD_ZERO
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2588,1
    - Dst: openssl_fdset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2592,1
    - Dst: select
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2596,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2598
      start: 2570
    functionDepth: 6
    functionLinenumber: 2570
    functionLinenumberEnd: 2598
    functionName: wait_for_async
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - openssl_fdset
    - app_malloc
    - FD_ZERO
    - SSL_get_all_async_fds
    - OPENSSL_free
    - select
    linkageType: ''
    returnType: void
    signature: wait_for_async(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetStdHandle
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2605,1
    - Dst: PeekConsoleInput
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2615,1
    - Dst: feof
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2618,1
    - Dst: _kbhit
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2624,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2625
      start: 2602
    functionDepth: 0
    functionLinenumber: 2602
    functionLinenumberEnd: 2625
    functionName: has_stdin_waiting
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 1
    functionsReached:
    - PeekConsoleInput
    - GetStdHandle
    - _kbhit
    - feof
    linkageType: ''
    returnType: int
    signature: has_stdin_waiting(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signature
    argTypes:
    - ASN1_STRING*
    constantsTouched: []
    func_position:
      end: 2633
      start: 2629
    functionDepth: 0
    functionLinenumber: 2629
    functionLinenumberEnd: 2633
    functionName: corrupt_signature
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: corrupt_signature(const ASN1_STRING *signature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2638,1
    - Dst: X509_gmtime_adj
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2639,1
    - Dst: X509_getm_notBefore
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2639,1
    - Dst: ASN1_TIME_set_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2642,1
    - Dst: X509_getm_notBefore
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2642,1
    - Dst: X509_time_adj_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2646,1
    - Dst: X509_getm_notAfter
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2646,1
    - Dst: ASN1_TIME_set_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2649,1
    - Dst: X509_getm_notAfter
      Src: /src/openweave-core/third_party/openssl/openssl/apps/apps.c:2649,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - x
    - startdate
    - enddate
    - days
    argTypes:
    - X509*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2653
      start: 2635
    functionDepth: 3
    functionLinenumber: 2635
    functionLinenumberEnd: 2653
    functionName: set_cert_times
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
    functionUses: 5
    functionsReached:
    - strcmp
    - X509_gmtime_adj
    - X509_time_adj_ex
    - ASN1_TIME_set_string
    - X509_getm_notBefore
    - X509_getm_notAfter
    linkageType: ''
    returnType: int
    signature: "set_cert_times(X509 *x, const char *startdate, const char *enddate,\n
      \                  int days)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyparam.c:43,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyparam.c:44,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyparam.c:49,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyparam.c:52,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyparam.c:56,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyparam.c:59,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyparam.c:62,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyparam.c:62,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyparam.c:72,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyparam.c:76,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyparam.c:79,1
    - Dst: PEM_read_bio_Parameters
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyparam.c:82,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyparam.c:84,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyparam.c:85,1
    - Dst: PEM_write_bio_Parameters
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyparam.c:90,1
    - Dst: EVP_PKEY_print_params
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyparam.c:93,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyparam.c:98,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyparam.c:99,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyparam.c:100,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkeyparam.c:101,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 104
      start: 34
    functionDepth: 9
    functionLinenumber: 34
    functionLinenumberEnd: 104
    functionName: pkeyparam_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/pkeyparam.c
    functionUses: 0
    functionsReached:
    - PEM_write_bio_Parameters
    - opt_init
    - BIO_free_all
    - ERR_print_errors
    - opt_next
    - bio_open_default
    - opt_help
    - EVP_PKEY_print_params
    - release_engine
    - opt_arg
    - BIO_free
    - PEM_read_bio_Parameters
    - opt_num_rest
    - BIO_printf
    - EVP_PKEY_free
    - setup_engine
    linkageType: ''
    returnType: int
    signature: pkeyparam_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:57,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:59,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:60,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:61,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:62,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:63,1
    - Dst: DSA_set0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:68,1
    - Dst: DSA_set0_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:72,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:77,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:78,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:79,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:80,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:81,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:82,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 84
    functionName: get_dsa512
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h
    functionUses: 0
    functionsReached:
    - DSA_new
    - DSA_set0_key
    - BN_free
    - BN_bin2bn
    - DSA_free
    - DSA_set0_pqg
    linkageType: ''
    returnType: DSA
    signature: '*get_dsa512()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:143,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:145,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:146,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:147,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:148,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:149,1
    - Dst: DSA_set0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:154,1
    - Dst: DSA_set0_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:158,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:163,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:164,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:165,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:166,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:167,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:168,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 138
    functionDepth: 4
    functionLinenumber: 138
    functionLinenumberEnd: 170
    functionName: get_dsa1024
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h
    functionUses: 0
    functionsReached:
    - DSA_new
    - DSA_set0_key
    - BN_free
    - BN_bin2bn
    - DSA_free
    - DSA_set0_pqg
    linkageType: ''
    returnType: DSA
    signature: '*get_dsa1024()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DSA_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:262,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:264,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:265,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:266,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:267,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:268,1
    - Dst: DSA_set0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:273,1
    - Dst: DSA_set0_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:277,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:282,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:283,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:284,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:285,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:286,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h:287,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 289
      start: 257
    functionDepth: 4
    functionLinenumber: 257
    functionLinenumberEnd: 289
    functionName: get_dsa2048
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h
    functionUses: 0
    functionsReached:
    - DSA_new
    - DSA_set0_key
    - BN_free
    - BN_bin2bn
    - DSA_free
    - DSA_set0_pqg
    linkageType: ''
    returnType: DSA
    signature: '*get_dsa2048()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:81,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:82,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:87,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:90,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:94,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:94,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:98,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:101,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:104,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:104,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:151,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:154,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:158,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:163,1
    - Dst: app_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:167,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:168,1
    - Dst: app_RAND_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:173,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:177,1
    - Dst: load_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:181,1
    - Dst: load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:185,1
    - Dst: X509_get_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:187,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:188,1
    - Dst: EVP_PKEY_get1_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:197,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:198,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:201,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:202,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:206,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:209,1
    - Dst: RSA_size
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:213,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:215,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:216,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:219,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:221,1
    - Dst: RSA_public_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:236,1
    - Dst: RSA_private_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:241,1
    - Dst: RSA_public_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:245,1
    - Dst: RSA_private_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:250,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:255,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:256,1
    - Dst: ASN1_parse_dump
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:261,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:262,1
    - Dst: BIO_dump
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:265,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:267,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:269,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:270,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:271,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:272,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:273,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:274,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c:275,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 186
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 277
      start: 66
    functionDepth: 9
    functionLinenumber: 66
    functionLinenumberEnd: 277
    functionName: rsautl_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c
    functionUses: 0
    functionsReached:
    - release_engine
    - load_key
    - RSA_public_decrypt
    - RSA_public_encrypt
    - RSA_free
    - BIO_printf
    - EVP_PKEY_free
    - setup_engine
    - opt_init
    - opt_next
    - BIO_free
    - opt_num_rest
    - X509_free
    - opt_format
    - load_pubkey
    - BIO_write
    - RSA_private_decrypt
    - X509_get_pubkey
    - opt_arg
    - BIO_dump
    - RSA_private_encrypt
    - OPENSSL_free
    - app_RAND_load_file
    - app_passwd
    - EVP_PKEY_get1_RSA
    - RSA_size
    - BIO_free_all
    - ERR_print_errors
    - bio_open_default
    - opt_help
    - app_malloc
    - load_cert
    - ASN1_parse_dump
    - BIO_read
    linkageType: ''
    returnType: int
    signature: rsautl_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:41,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:42,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:44,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:47,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:48,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:51,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - db
    - id
    - type
    argTypes:
    - CA_DB*
    - char*
    - char
    constantsTouched: []
    func_position:
      end: 56
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 56
    functionName: get_index
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/srp.c
    functionUses: 7
    functionsReached:
    - sk_OPENSSL_PSTRING_value
    - sk_OPENSSL_PSTRING_num
    - strcmp
    linkageType: ''
    returnType: int
    signature: get_index(CA_DB *db, char *id, char type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:63,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - db
    - indx
    - verbose
    - s
    argTypes:
    - CA_DB*
    - int
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: print_entry
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/srp.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: print_entry(CA_DB *db, int indx, int verbose, char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: print_entry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - db
    - indexindex
    - verbose
    argTypes:
    - CA_DB*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: print_index
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/srp.c
    functionUses: 0
    functionsReached:
    - print_entry
    linkageType: ''
    returnType: void
    signature: print_index(CA_DB *db, int indexindex, int verbose)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: print_entry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:81,1
    - Dst: print_entry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:82,1
    - Dst: get_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - db
    - userindex
    - verbose
    argTypes:
    - CA_DB*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 87
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 87
    functionName: print_user
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/srp.c
    functionUses: 0
    functionsReached:
    - print_entry
    - get_index
    linkageType: ''
    returnType: void
    signature: print_user(CA_DB *db, int userindex, int verbose)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:94,1
    - Dst: TXT_DB_insert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:101,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:102,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:103,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - db
    - row
    argTypes:
    - CA_DB*
    - char**
    constantsTouched: []
    func_position:
      end: 108
      start: 89
    functionDepth: 6
    functionLinenumber: 89
    functionLinenumberEnd: 108
    functionName: update_index
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/srp.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BIO_printf
    - TXT_DB_insert
    - app_malloc
    linkageType: ''
    returnType: int
    signature: update_index(CA_DB *db, char **row)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - conf
    - section
    - tag
    argTypes:
    - CONF*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: lookup_conf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/srp.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: char
    signature: '*lookup_conf(const CONF *conf, const char *section, const char *tag)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: password_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:130,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:132,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:135,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:137,1
    - Dst: SRP_create_verifier
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:140,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:142,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:144,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 7
    argNames:
    - user
    - srp_verifier
    - srp_usersalt
    - g
    - N
    - passin
    - verbose
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 150
      start: 118
    functionDepth: 6
    functionLinenumber: 118
    functionLinenumberEnd: 150
    functionName: srp_verify_user
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/srp.c
    functionUses: 0
    functionsReached:
    - strcmp
    - OPENSSL_assert
    - password_callback
    - OPENSSL_free
    - BIO_printf
    - SRP_create_verifier
    linkageType: ''
    returnType: char
    signature: "*srp_verify_user(const char *user, const char *srp_verifier,\n                             char
      *srp_usersalt, const char *g, const char *N,\n                             const
      char *passin, int verbose)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: password_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:163,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:165,1
    - Dst: SRP_create_verifier
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:169,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:171,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 7
    argNames:
    - user
    - srp_verifier
    - srp_usersalt
    - g
    - N
    - passout
    - verbose
    argTypes:
    - char*
    - char**
    - char**
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 180
      start: 152
    functionDepth: 6
    functionLinenumber: 152
    functionLinenumberEnd: 180
    functionName: srp_create_user
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/srp.c
    functionUses: 0
    functionsReached:
    - password_callback
    - BIO_printf
    - SRP_create_verifier
    linkageType: ''
    returnType: char
    signature: "*srp_create_user(char *user, char **srp_verifier,\n                             char
      **srp_usersalt, char *g, char *N,\n                             char *passout,
      int verbose)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:224,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:225,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:230,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:233,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:240,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:243,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:246,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:253,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:261,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:264,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:267,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:270,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:273,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:273,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:277,1
    - Dst: opt_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:278,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:281,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:286,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:292,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:297,1
    - Dst: app_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:302,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:303,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:312,1
    - Dst: app_load_config
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:314,1
    - Dst: app_load_modules
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:317,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:323,1
    - Dst: lookup_conf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:327,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:333,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:336,1
    - Dst: lookup_conf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:340,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:345,1
    - Dst: app_RAND_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:347,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:350,1
    - Dst: load_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:353,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:358,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:359,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:363,1
    - Dst: print_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:366,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:371,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:374,1
    - Dst: print_entry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:375,1
    - Dst: SRP_get_default_gN
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:376,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:377,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:381,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:386,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:395,1
    - Dst: get_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:396,1
    - Dst: print_user
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:397,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:402,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:404,1
    - Dst: print_user
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:405,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:408,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:417,1
    - Dst: srp_create_user
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:429,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:434,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:440,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:441,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:442,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:450,1
    - Dst: update_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:451,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:452,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:453,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:454,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:455,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:456,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:457,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:464,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:474,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:485,1
    - Dst: get_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:489,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:491,1
    - Dst: srp_verify_user
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:494,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:499,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:507,1
    - Dst: srp_create_user
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:512,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:517,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:525,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:533,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:542,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:549,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:562,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:566,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:567,1
    - Dst: print_user
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:571,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:576,1
    - Dst: save_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:577,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:581,1
    - Dst: rotate_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:582,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:586,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:593,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:596,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:598,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:599,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:601,1
    - Dst: app_RAND_write_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:603,1
    - Dst: NCONF_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:604,1
    - Dst: free_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:605,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/srp.c:606,1
    CyclomaticComplexity: 126
    EdgeCount: 126
    ICount: 292
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 608
      start: 210
    functionDepth: 9
    functionLinenumber: 210
    functionLinenumberEnd: 608
    functionName: srp_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/srp.c
    functionUses: 0
    functionsReached:
    - print_entry
    - srp_verify_user
    - load_index
    - release_engine
    - OPENSSL_strdup
    - BIO_printf
    - SRP_get_default_gN
    - app_RAND_write_file
    - setup_engine
    - print_user
    - opt_init
    - free_index
    - opt_next
    - sk_OPENSSL_PSTRING_num
    - app_load_config
    - srp_create_user
    - opt_num_rest
    - NCONF_free
    - get_index
    - lookup_conf
    - rotate_index
    - update_index
    - print_index
    - opt_arg
    - OPENSSL_free
    - app_RAND_load_file
    - app_passwd
    - ERR_clear_error
    - NCONF_get_string
    - app_load_modules
    - opt_rest
    - sk_OPENSSL_PSTRING_value
    - strcmp
    - save_index
    - ERR_print_errors
    - opt_help
    linkageType: ''
    returnType: int
    signature: srp_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:80,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:81,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:86,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:89,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:93,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:93,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:97,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:100,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:100,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:104,1
    - Dst: opt_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:119,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:119,1
    - Dst: OBJ_txt2nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:123,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:123,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:125,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:126,1
    - Dst: OBJ_txt2nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:131,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:131,1
    - Dst: EVP_PBE_find
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:132,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:133,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:134,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:138,1
    - Dst: opt_int
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:141,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:141,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:145,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:148,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:151,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:151,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:159,1
    - Dst: opt_long
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:162,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:162,1
    - Dst: opt_long
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:166,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:166,1
    - Dst: opt_long
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:170,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:170,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:176,1
    - Dst: app_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:182,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:183,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:188,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:190,1
    - Dst: bio_open_owner
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:193,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:198,1
    - Dst: EVP_PKEY2PKCS8
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:201,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:202,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:203,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:207,1
    - Dst: PEM_write_bio_PKCS8_PRIV_KEY_INFO
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:209,1
    - Dst: i2d_PKCS8_PRIV_KEY_INFO_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:211,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:213,1
    - Dst: PKCS5_pbe2_set_scrypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:221,1
    - Dst: PKCS5_pbe2_set_iv
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:225,1
    - Dst: PKCS5_pbe_set
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:228,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:231,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:232,1
    - Dst: EVP_read_pw_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:240,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:242,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:247,1
    - Dst: app_RAND_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:250,1
    - Dst: PKCS8_set0_pbe
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:251,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:251,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:253,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:254,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:255,1
    - Dst: app_RAND_write_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:258,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:259,1
    - Dst: PEM_write_bio_PKCS8
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:261,1
    - Dst: i2d_PKCS8_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:263,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:265,1
    - Dst: PEM_read_bio_PKCS8_PRIV_KEY_INFO
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:276,1
    - Dst: d2i_PKCS8_PRIV_KEY_INFO_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:278,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:280,1
    - Dst: PEM_read_bio_PKCS8
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:285,1
    - Dst: d2i_PKCS8_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:287,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:289,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:294,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:295,1
    - Dst: EVP_read_pw_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:303,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:304,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:309,1
    - Dst: PKCS8_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:312,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:312,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:316,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:317,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:321,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:322,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:323,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:327,1
    - Dst: PEM_write_bio_PrivateKey_traditional
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:330,1
    - Dst: PEM_write_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:333,1
    - Dst: i2d_PrivateKey_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:335,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:337,1
    - Dst: X509_SIG_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:343,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:344,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:345,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:346,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:347,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:348,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:349,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c:350,1
    CyclomaticComplexity: 104
    EdgeCount: 104
    ICount: 275
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 353
      start: 58
    functionDepth: 9
    functionLinenumber: 58
    functionLinenumberEnd: 353
    functionName: pkcs8_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY2PKCS8
    - load_key
    - i2d_PKCS8_PRIV_KEY_INFO_bio
    - release_engine
    - BIO_printf
    - PEM_write_bio_PrivateKey_traditional
    - app_RAND_write_file
    - setup_engine
    - EVP_PKEY_free
    - i2d_PrivateKey_bio
    - opt_init
    - opt_next
    - PEM_read_bio_PKCS8_PRIV_KEY_INFO
    - PKCS5_pbe2_set_scrypt
    - BIO_free
    - opt_num_rest
    - PEM_read_bio_PKCS8
    - bio_open_owner
    - opt_format
    - X509_SIG_free
    - PKCS5_pbe2_set_iv
    - PEM_write_bio_PrivateKey
    - OBJ_txt2nid
    - opt_arg
    - opt_long
    - strlen
    - PKCS5_pbe_set
    - OPENSSL_free
    - assert
    - app_passwd
    - app_RAND_load_file
    - d2i_PKCS8_PRIV_KEY_INFO_bio
    - EVP_PBE_find
    - PEM_write_bio_PKCS8_PRIV_KEY_INFO
    - BIO_free_all
    - EVP_aes_256_cbc
    - bio_open_default
    - ERR_print_errors
    - opt_help
    - EVP_read_pw_string
    - PKCS8_set0_pbe
    - PKCS8_decrypt
    - opt_cipher
    - d2i_PKCS8_bio
    - PEM_write_bio_PKCS8
    - i2d_PKCS8_bio
    - PKCS8_PRIV_KEY_INFO_free
    - opt_int
    - X509_ALGOR_free
    - EVP_PKCS82PKEY
    linkageType: ''
    returnType: int
    signature: pkcs8_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 100
    functionName: copy_argv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/vms_decc_init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '**copy_argv(int *argc, char *argv[])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_decc_init.c:116,1
    - Dst: strtol
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_decc_init.c:118,1
    - Dst: decc$feature_get_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_decc_init.c:131,1
    - Dst: decc$feature_get_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_decc_init.c:134,1
    - Dst: decc$feature_get_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_decc_init.c:135,1
    - Dst: decc$feature_get_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_decc_init.c:136,1
    - Dst: decc$feature_set_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_decc_init.c:143,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_decc_init.c:147,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_decc_init.c:154,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_decc_init.c:162,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/vms_decc_init.c:168,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 170
    functionName: decc_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/vms_decc_init.c
    functionUses: 0
    functionsReached:
    - getenv
    - decc$feature_get_value
    - decc$feature_set_value
    - strtol
    - fprintf
    - decc$feature_get_index
    linkageType: ''
    returnType: void
    signature: decc_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:158,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:160,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:164,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:165,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:168,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:169,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:174,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:177,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:179,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:184,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:187,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:191,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:192,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:195,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:199,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:200,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:201,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 4
    argNames:
    - ssl
    - identity
    - psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 203
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 203
    functionName: psk_server_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached:
    - strcmp
    - BIO_flush
    - OPENSSL_hexstr2buf
    - strlen
    - memcpy
    - BIO_printf
    - OPENSSL_free
    linkageType: ''
    returnType: unsigned int
    signature: "psk_server_cb(SSL *ssl, const char *identity,\n                                  unsigned
      char *psk,\n                                  unsigned int max_psk_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_srp_username
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:228,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:229,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:234,1
    - Dst: SSL_set_srp_server_param
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:238,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:244,1
    - Dst: SRP_user_pwd_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:250,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - s
    - ad
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 254
      start: 222
    functionDepth: 4
    functionLinenumber: 222
    functionLinenumberEnd: 254
    functionName: ssl_srp_server_param_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached:
    - SSL_get_srp_username
    - SRP_user_pwd_free
    - BIO_printf
    - SSL_set_srp_server_param
    linkageType: ''
    returnType: int
    signature: ssl_srp_server_param_cb(SSL *s, int *ad, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:282,1
    - Dst: BIO_meth_set_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:285,1
    - Dst: BIO_meth_set_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:286,1
    - Dst: BIO_meth_set_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:287,1
    - Dst: BIO_meth_set_gets
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:288,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:289,1
    - Dst: BIO_meth_set_create
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:290,1
    - Dst: BIO_meth_set_destroy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:291,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 295
    functionName: BIO_f_ebcdic_filter
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached:
    - BIO_meth_set_ctrl
    - BIO_meth_new
    - BIO_meth_set_gets
    - BIO_meth_set_destroy
    - BIO_meth_set_puts
    - BIO_meth_set_write
    - BIO_meth_set_read
    - BIO_meth_set_create
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_f_ebcdic_filter()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:301,1
    - Dst: BIO_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:305,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 308
      start: 297
    functionDepth: 6
    functionLinenumber: 297
    functionLinenumberEnd: 308
    functionName: ebcdic_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - BIO_set_data
    - app_malloc
    linkageType: ''
    returnType: int
    signature: ebcdic_new(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:316,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:317,1
    - Dst: BIO_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:318,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 322
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 322
    functionName: ebcdic_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - BIO_set_init
    - OPENSSL_free
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: ebcdic_free(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:327,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:334,1
    - Dst: ascii2ebcdic
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:336,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 338
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 338
    functionName: ebcdic_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached:
    - ascii2ebcdic
    - BIO_read
    - BIO_next
    linkageType: ''
    returnType: int
    signature: ebcdic_read(BIO *b, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:343,1
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:352,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:358,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:359,1
    - Dst: BIO_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:364,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:367,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:369,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 372
      start: 340
    functionDepth: 6
    functionLinenumber: 340
    functionLinenumberEnd: 372
    functionName: ebcdic_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached:
    - BIO_set_data
    - app_malloc
    - BIO_get_data
    - BIO_next
    - OPENSSL_free
    - BIO_write
    - ebcdic2ascii
    linkageType: ''
    returnType: int
    signature: ebcdic_write(BIO *b, const char *in, int inl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:377,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:386,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 390
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 390
    functionName: ebcdic_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - BIO_next
    linkageType: ''
    returnType: long
    signature: ebcdic_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:395,1
    - Dst: ebcdic_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:401,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 412
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 412
    functionName: ebcdic_gets
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached:
    - ebcdic_read
    - BIO_next
    linkageType: ''
    returnType: int
    signature: ebcdic_gets(BIO *bp, char *buf, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:416,1
    - Dst: ebcdic_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:418,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 419
      start: 414
    functionDepth: 7
    functionLinenumber: 414
    functionLinenumberEnd: 419
    functionName: ebcdic_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached:
    - strlen
    - ebcdic_write
    - BIO_next
    linkageType: ''
    returnType: int
    signature: ebcdic_puts(BIO *bp, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:434,1
    - Dst: strcasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:441,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:444,1
    - Dst: SSL_set_SSL_CTX
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:445,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - s
    - ad
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 449
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 449
    functionName: ssl_servername_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - BIO_printf
    - SSL_set_SSL_CTX
    linkageType: ''
    returnType: int
    signature: ssl_servername_cb(SSL *s, int *ad, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:480,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:487,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:492,1
    - Dst: SSL_get_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:494,1
    - Dst: X509_get1_ocsp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:495,1
    - Dst: OCSP_parse_url
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:497,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:497,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:499,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:503,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:504,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:507,1
    - Dst: X509_STORE_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:517,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:520,1
    - Dst: SSL_CTX_get_cert_store
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:521,1
    - Dst: SSL_get_SSL_CTX
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:521,1
    - Dst: X509_STORE_CTX_get_obj_by_subject
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:524,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:525,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:527,1
    - Dst: OCSP_cert_to_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:530,1
    - Dst: X509_OBJECT_get0_X509
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:530,1
    - Dst: X509_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:531,1
    - Dst: OCSP_REQUEST_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:534,1
    - Dst: OCSP_request_add0_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:537,1
    - Dst: SSL_get_tlsext_status_exts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:541,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:542,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:543,1
    - Dst: OCSP_REQUEST_add_ext
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:544,1
    - Dst: process_responder
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:547,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:550,1
    - Dst: i2d_OCSP_RESPONSE
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:553,1
    - Dst: SSL_set_tlsext_status_ocsp_resp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:556,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:558,1
    - Dst: OCSP_RESPONSE_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:559,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:568,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:570,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:571,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:572,1
    - Dst: X509_email_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:573,1
    - Dst: OCSP_CERTID_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:575,1
    - Dst: OCSP_REQUEST_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:576,1
    - Dst: OCSP_RESPONSE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:577,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:578,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 94
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    constantsTouched: []
    func_position:
      end: 580
      start: 473
    functionDepth: 5
    functionLinenumber: 473
    functionLinenumberEnd: 580
    functionName: cert_status_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_STRING_value
    - X509_STORE_CTX_init
    - X509_STORE_CTX_free
    - BIO_printf
    - X509_get_issuer_name
    - OCSP_parse_url
    - OCSP_REQUEST_new
    - i2d_OCSP_RESPONSE
    - SSL_CTX_get_cert_store
    - OCSP_RESPONSE_free
    - X509_get1_ocsp
    - OCSP_REQUEST_add_ext
    - OCSP_request_add0_id
    - SSL_get_tlsext_status_exts
    - OCSP_CERTID_free
    - SSL_get_SSL_CTX
    - X509_STORE_CTX_new
    - sk_X509_EXTENSION_num
    - OPENSSL_free
    - OCSP_RESPONSE_print
    - X509_email_free
    - sk_X509_EXTENSION_value
    - process_responder
    - BIO_puts
    - STACK_OF
    - ERR_print_errors
    - OCSP_REQUEST_free
    - X509_OBJECT_get0_X509
    - OCSP_cert_to_id
    - SSL_get_certificate
    - SSL_set_tlsext_status_ocsp_resp
    - X509_OBJECT_free
    - X509_STORE_CTX_get_obj_by_subject
    linkageType: ''
    returnType: int
    signature: cert_status_cb(SSL *s, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - s
    - data
    - len
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned int*
    - void*
    constantsTouched: []
    func_position:
      end: 599
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 599
    functionName: next_proto_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "next_proto_cb(SSL *s, const unsigned char **data,\n                         unsigned
      int *len, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:616,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:619,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:620,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:623,1
    - Dst: SSL_select_next_proto
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:626,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:633,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:634,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:635,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 6
    argNames:
    - s
    - out
    - outlen
    - in
    - inlen
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - void*
    constantsTouched: []
    func_position:
      end: 639
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 639
    functionName: alpn_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - BIO_write
    - SSL_select_next_proto
    linkageType: ''
    returnType: int
    signature: "alpn_cb(SSL *s, const unsigned char **out, unsigned char *outlen,\n
      \                  const unsigned char *in, unsigned int inlen, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - is_forward_secure
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 645
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 645
    functionName: not_resumable_sess_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: not_resumable_sess_cb(SSL *s, int is_forward_secure)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:1979,1
    - Dst: SSL_CTX_sess_number
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:1980,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:1981,1
    - Dst: SSL_CTX_sess_connect
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:1982,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:1983,1
    - Dst: SSL_CTX_sess_connect_renegotiate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:1984,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:1985,1
    - Dst: SSL_CTX_sess_connect_good
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:1986,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:1987,1
    - Dst: SSL_CTX_sess_accept
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:1988,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:1989,1
    - Dst: SSL_CTX_sess_accept_renegotiate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:1990,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:1991,1
    - Dst: SSL_CTX_sess_accept_good
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:1992,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:1993,1
    - Dst: SSL_CTX_sess_hits
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:1993,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:1994,1
    - Dst: SSL_CTX_sess_misses
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:1995,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:1996,1
    - Dst: SSL_CTX_sess_timeouts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:1997,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:1998,1
    - Dst: SSL_CTX_sess_cb_hits
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:1999,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2000,1
    - Dst: SSL_CTX_sess_cache_full
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2001,1
    - Dst: SSL_CTX_sess_get_cache_size
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - bio
    - ssl_ctx
    argTypes:
    - BIO*
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 2003
      start: 1977
    functionDepth: 2
    functionLinenumber: 1977
    functionLinenumberEnd: 2003
    functionName: print_stats
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_sess_cb_hits
    - SSL_CTX_sess_connect_renegotiate
    - SSL_CTX_sess_accept_renegotiate
    - SSL_CTX_sess_timeouts
    - SSL_CTX_sess_cache_full
    - SSL_CTX_sess_get_cache_size
    - SSL_CTX_sess_misses
    - SSL_CTX_sess_accept_good
    - SSL_CTX_sess_connect_good
    - SSL_CTX_sess_connect
    - SSL_CTX_sess_number
    - SSL_CTX_sess_accept
    - BIO_printf
    - SSL_CTX_sess_hits
    linkageType: ''
    returnType: void
    signature: print_stats(BIO *bio, SSL_CTX *ssl_ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2021,1
    - Dst: BIO_socket_nbio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2023,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2024,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2026,1
    - Dst: SSL_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2030,1
    - Dst: SSL_set_tlsext_debug_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2033,1
    - Dst: SSL_set_tlsext_debug_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2034,1
    - Dst: SSL_set_session_id_context
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2038,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2039,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2040,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2045,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2046,1
    - Dst: BIO_new_dgram
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2053,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2058,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2062,1
    - Dst: DTLS_get_link_min_mtu
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2066,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2067,1
    - Dst: DTLS_get_link_min_mtu
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2068,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2070,1
    - Dst: SSL_set_options
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2073,1
    - Dst: DTLS_set_link_mtu
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2074,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2075,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2077,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2082,1
    - Dst: SSL_set_options
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2085,1
    - Dst: BIO_new_socket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2088,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2093,1
    - Dst: BIO_f_nbio_test
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2093,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2094,1
    - Dst: SSL_set_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2097,1
    - Dst: SSL_set_accept_state
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2098,1
    - Dst: BIO_set_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2102,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2102,1
    - Dst: BIO_set_callback_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2103,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2103,1
    - Dst: SSL_set_msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2108,1
    - Dst: SSL_set_msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2111,1
    - Dst: SSL_set_msg_callback_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2112,1
    - Dst: SSL_set_tlsext_debug_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2116,1
    - Dst: SSL_set_tlsext_debug_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2117,1
    - Dst: fileno_stdin
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2120,1
    - Dst: fileno_stdin
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2121,1
    - Dst: SSL_has_pending
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2129,1
    - Dst: SSL_waiting_for_async
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2130,1
    - Dst: FD_ZERO
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2133,1
    - Dst: openssl_fdset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2135,1
    - Dst: fileno_stdin
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2135,1
    - Dst: openssl_fdset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2137,1
    - Dst: select
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2154,1
    - Dst: has_stdin_waiting
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2155,1
    - Dst: SSL_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2160,1
    - Dst: DTLSv1_get_timeout
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2161,1
    - Dst: select
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2166,1
    - Dst: SSL_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2168,1
    - Dst: DTLSv1_handle_timeout
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2169,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2170,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2175,1
    - Dst: fileno_stdin
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2175,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2178,1
    - Dst: raw_read_stdin
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2185,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2199,1
    - Dst: raw_read_stdin
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2201,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2205,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2206,1
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2207,1
    - Dst: close_accept_socket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2208,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2213,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2214,1
    - Dst: SSL_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2215,1
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2216,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2224,1
    - Dst: SSL_heartbeat
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2225,1
    - Dst: SSL_renegotiate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2231,1
    - Dst: SSL_do_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2232,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2233,1
    - Dst: SSL_set_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2241,1
    - Dst: SSL_renegotiate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2244,1
    - Dst: SSL_do_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2245,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2246,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2256,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2256,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2256,1
    - Dst: print_stats
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2259,1
    - Dst: SSL_get_SSL_CTX
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2259,1
    - Dst: ebcdic2ascii
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2263,1
    - Dst: SSL_renegotiate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2272,1
    - Dst: SSL_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2275,1
    - Dst: SSL_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2277,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2278,1
    - Dst: SRP_user_pwd_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2279,1
    - Dst: SRP_VBASE_get1_by_user
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2281,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2284,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2287,1
    - Dst: SSL_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2288,1
    - Dst: SSL_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2291,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2295,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2296,1
    - Dst: wait_for_async
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2297,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2302,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2303,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2311,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2312,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2313,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2318,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2319,1
    - Dst: SSL_waiting_for_async
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2337,1
    - Dst: SSL_is_init_finished
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2338,1
    - Dst: init_ssl_connection
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2339,1
    - Dst: SSL_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2350,1
    - Dst: SSL_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2352,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2353,1
    - Dst: SRP_user_pwd_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2354,1
    - Dst: SRP_VBASE_get1_by_user
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2356,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2359,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2362,1
    - Dst: SSL_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2363,1
    - Dst: SSL_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2366,1
    - Dst: ascii2ebcdic
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2369,1
    - Dst: raw_write_stdout
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2371,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2372,1
    - Dst: SSL_has_pending
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2373,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2377,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2378,1
    - Dst: wait_for_async
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2379,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2383,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2384,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2392,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2393,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2394,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2398,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2399,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2408,1
    - Dst: SSL_set_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2409,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2410,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2412,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2413,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2415,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2416,1
    CyclomaticComplexity: 105
    EdgeCount: 105
    ICount: 305
    argCount: 3
    argNames:
    - s
    - stype
    - context
    argTypes:
    - int
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 2418
      start: 2005
    functionDepth: 7
    functionLinenumber: 2005
    functionLinenumberEnd: 2418
    functionName: sv_body
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached:
    - BIO_push
    - raw_write_stdout
    - SSL_new
    - SSL_set_verify
    - DTLSv1_get_timeout
    - printf
    - FD_ZERO
    - BIO_printf
    - DTLS_set_link_mtu
    - SSL_get_error
    - SRP_user_pwd_free
    - SSL_set_shutdown
    - ascii2ebcdic
    - SSL_set_tlsext_debug_callback
    - SSL_is_init_finished
    - SSL_set_options
    - fileno_stdin
    - FD_ISSET
    - SSL_set_msg_callback
    - close_accept_socket
    - BIO_free
    - SSL_set_bio
    - SSL_do_handshake
    - SSL_free
    - BIO_set_callback_arg
    - BIO_new
    - BIO_socket_nbio
    - select
    - DTLSv1_handle_timeout
    - BIO_write
    - BIO_f_nbio_test
    - BIO_set_callback
    - print_stats
    - SSL_set_tlsext_debug_arg
    - DTLS_get_link_min_mtu
    - openssl_fdset
    - SSL_renegotiate
    - wait_for_async
    - SSL_has_pending
    - SSL_heartbeat
    - strlen
    - SSL_waiting_for_async
    - SSL_set_msg_callback_arg
    - SSL_get_SSL_CTX
    - OPENSSL_clear_free
    - assert
    - SSL_set_session_id_context
    - has_stdin_waiting
    - ebcdic2ascii
    - raw_read_stdin
    - SSL_write
    - SRP_VBASE_get1_by_user
    - ERR_print_errors
    - BIO_flush
    - SSL_set_accept_state
    - SSL_version
    - BIO_new_dgram
    - app_malloc
    - SSL_clear
    - SSL_get_rbio
    - SSL_read
    - init_ssl_connection
    - BIO_new_socket
    - BIO_ctrl
    - BIO_closesocket
    - SSL_get_wbio
    linkageType: ''
    returnType: int
    signature: sv_body(int s, int stype, unsigned char *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2422,1
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2426
      start: 2420
    functionDepth: 2
    functionLinenumber: 2420
    functionLinenumberEnd: 2426
    functionName: close_accept_socket
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    - BIO_closesocket
    linkageType: ''
    returnType: void
    signature: close_accept_socket(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ADDR_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2446,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2447,1
    - Dst: DTLSv1_listen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2450,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2455,1
    - Dst: BIO_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2457,1
    - Dst: BIO_connect
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2460,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2461,1
    - Dst: BIO_ADDR_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2462,1
    - Dst: BIO_ADDR_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2465,1
    - Dst: SSL_accept
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2467,1
    - Dst: BIO_ADDR_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2469,1
    - Dst: SSL_accept
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2475,1
    - Dst: BIO_sock_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2478,1
    - Dst: SSL_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2482,1
    - Dst: SSL_get_state
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2483,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2484,1
    - Dst: SSL_accept
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2486,1
    - Dst: BIO_sock_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2488,1
    - Dst: SSL_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2495,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2496,1
    - Dst: SRP_user_pwd_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2498,1
    - Dst: SRP_VBASE_get1_by_user
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2500,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2503,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2506,1
    - Dst: SSL_accept
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2507,1
    - Dst: BIO_sock_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2509,1
    - Dst: SSL_waiting_for_async
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2512,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2517,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2521,1
    - Dst: SSL_get_verify_result
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2523,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2525,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2526,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2529,1
    - Dst: print_ssl_summary
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2534,1
    - Dst: PEM_write_bio_SSL_SESSION
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2536,1
    - Dst: SSL_get_session
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2536,1
    - Dst: SSL_get_peer_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2538,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2540,1
    - Dst: PEM_write_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2541,1
    - Dst: X509_NAME_oneline
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2542,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2542,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2543,1
    - Dst: X509_NAME_oneline
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2544,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2544,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2545,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2546,1
    - Dst: SSL_get_shared_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2550,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2551,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2552,1
    - Dst: SSL_get_current_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2552,1
    - Dst: ssl_print_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2553,1
    - Dst: ssl_print_point_formats
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2555,1
    - Dst: ssl_print_curves
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2556,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2558,1
    - Dst: SSL_get0_next_proto_negotiated
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2561,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2563,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2564,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2565,1
    - Dst: SSL_get_selected_srtp_profile
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2571,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2574,1
    - Dst: SSL_session_reused
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2578,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2579,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2580,1
    - Dst: SSL_get_secure_renegotiation_support
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2581,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2583,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2584,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2585,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2586,1
    - Dst: SSL_export_keying_material
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2587,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2590,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2592,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2594,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2596,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2597,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2599,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2602,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 110
    argCount: 1
    argNames:
    - con
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2604
      start: 2428
    functionDepth: 6
    functionLinenumber: 2428
    functionLinenumberEnd: 2604
    functionName: init_ssl_connection
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 1
    functionsReached:
    - DTLSv1_listen
    - ssl_print_sigalgs
    - SSL_get_shared_ciphers
    - SSL_session_reused
    - SSL_get_state
    - BIO_ADDR_free
    - BIO_printf
    - SRP_user_pwd_free
    - SSL_get_error
    - X509_get_issuer_name
    - PEM_write_bio_X509
    - ssl_print_curves
    - X509_free
    - print_ssl_summary
    - SSL_accept
    - PEM_write_bio_SSL_SESSION
    - SSL_get_session
    - SSL_get_current_cipher
    - SSL_get_peer_certificate
    - SSL_get0_next_proto_negotiated
    - strlen
    - SSL_waiting_for_async
    - SSL_export_keying_material
    - SSL_get_selected_srtp_profile
    - X509_verify_cert_error_string
    - BIO_connect
    - SSL_get_secure_renegotiation_support
    - OPENSSL_free
    - SSL_get_verify_result
    - BIO_ADDR_new
    - SRP_VBASE_get1_by_user
    - BIO_sock_should_retry
    - ERR_print_errors
    - BIO_flush
    - X509_get_subject_name
    - SSL_CIPHER_get_name
    - app_malloc
    - X509_NAME_oneline
    - ssl_print_point_formats
    - BIO_get_fd
    - BIO_write
    - SSL_get_wbio
    linkageType: ''
    returnType: int
    signature: init_ssl_connection(SSL *con)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2612,1
    - Dst: PEM_read_bio_DHparams
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2614,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - dhfile
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2618
      start: 2607
    functionDepth: 4
    functionLinenumber: 2607
    functionLinenumberEnd: 2618
    functionName: load_dh_param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - PEM_read_bio_DHparams
    - BIO_new_file
    linkageType: ''
    returnType: DH
    signature: '*load_dh_param(const char *dhfile)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2638,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2639,1
    - Dst: BIO_f_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2639,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2640,1
    - Dst: BIO_f_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2640,1
    - Dst: BIO_socket_nbio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2645,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2646,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2648,1
    - Dst: BIO_set_write_buffer_size
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2652,1
    - Dst: SSL_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2655,1
    - Dst: SSL_set_tlsext_debug_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2659,1
    - Dst: SSL_set_tlsext_debug_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2660,1
    - Dst: SSL_set_session_id_context
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2664,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2665,1
    - Dst: BIO_new_socket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2668,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2672,1
    - Dst: BIO_f_nbio_test
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2672,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2673,1
    - Dst: SSL_set_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2675,1
    - Dst: SSL_set_accept_state
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2676,1
    - Dst: BIO_set_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2679,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2680,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2682,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2682,1
    - Dst: BIO_f_ebcdic_filter
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2682,1
    - Dst: BIO_set_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2686,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2686,1
    - Dst: BIO_set_callback_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2687,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2687,1
    - Dst: SSL_set_msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2692,1
    - Dst: SSL_set_msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2695,1
    - Dst: SSL_set_msg_callback_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2696,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2700,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2702,1
    - Dst: SSL_waiting_for_async
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2702,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2704,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2707,1
    - Dst: BIO_should_io_special
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2709,1
    - Dst: BIO_get_retry_reason
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2710,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2711,1
    - Dst: SRP_user_pwd_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2712,1
    - Dst: SRP_VBASE_get1_by_user
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2714,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2717,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2720,1
    - Dst: sleep
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2725,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2735,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2736,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2739,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2742,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2743,1
    - Dst: SSL_set_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2744,1
    - Dst: SSL_renegotiate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2747,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2748,1
    - Dst: SSL_do_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2750,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2752,1
    - Dst: SSL_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2753,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2754,1
    - Dst: FD_ZERO
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2758,1
    - Dst: openssl_fdset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2759,1
    - Dst: select
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2760,1
    - Dst: FD_ISSET
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2761,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2762,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2764,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2773,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2776,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2778,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2779,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2781,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2787,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2790,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2793,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2796,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2799,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2801,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2803,1
    - Dst: SSL_get_secure_renegotiation_support
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2805,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2811,1
    - Dst: SSL_get_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2812,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2813,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2815,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2816,1
    - Dst: SSL_CIPHER_get_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2817,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2817,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2819,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2821,1
    - Dst: SSL_get_shared_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2822,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2824,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2829,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2832,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2834,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2839,1
    - Dst: ssl_print_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2841,1
    - Dst: ssl_print_curves
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2843,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2845,1
    - Dst: SSL_session_reused
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2845,1
    - Dst: SSL_get_current_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2847,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2848,1
    - Dst: SSL_CIPHER_get_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2849,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2849,1
    - Dst: SSL_SESSION_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2850,1
    - Dst: SSL_get_session
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2850,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2851,1
    - Dst: print_stats
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2852,1
    - Dst: SSL_get_SSL_CTX
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2852,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2853,1
    - Dst: SSL_get_peer_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2854,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2856,1
    - Dst: X509_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2857,1
    - Dst: PEM_write_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2858,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2859,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2862,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2863,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2866,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2898,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2899,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2905,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2906,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2911,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2912,1
    - Dst: app_isdir
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2917,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2918,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2919,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2923,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2924,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2925,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2926,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2931,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2934,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2935,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2936,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2937,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2938,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2941,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2946,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2952,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2955,1
    - Dst: SSL_renegotiate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2956,1
    - Dst: SSL_renegotiate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2964,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2967,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2969,1
    - Dst: SSL_waiting_for_async
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2970,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2973,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2981,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2987,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2989,1
    - Dst: SSL_set_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:2996,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3000,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3001,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3002,1
    CyclomaticComplexity: 105
    EdgeCount: 105
    ICount: 280
    argCount: 3
    argNames:
    - s
    - stype
    - context
    argTypes:
    - int
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 3004
      start: 2621
    functionDepth: 6
    functionLinenumber: 2621
    functionLinenumberEnd: 3004
    functionName: www_body
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached:
    - BIO_push
    - BIO_should_io_special
    - BIO_f_buffer
    - ssl_print_sigalgs
    - BIO_should_retry
    - SSL_get_shared_ciphers
    - SSL_session_reused
    - SSL_new
    - SSL_set_verify
    - BIO_new_file
    - FD_ZERO
    - BIO_printf
    - SRP_user_pwd_free
    - SSL_get_error
    - SSL_set_shutdown
    - BIO_set_ssl
    - SSL_set_tlsext_debug_callback
    - PEM_write_bio_X509
    - sk_SSL_CIPHER_num
    - FD_ISSET
    - SSL_set_msg_callback
    - ssl_print_curves
    - BIO_free
    - SSL_set_bio
    - SSL_do_handshake
    - sleep
    - X509_free
    - BIO_set_callback_arg
    - BIO_new
    - BIO_socket_nbio
    - select
    - print_stats
    - SSL_get_session
    - BIO_f_nbio_test
    - BIO_set_callback
    - SSL_get_current_cipher
    - SSL_set_tlsext_debug_arg
    - openssl_fdset
    - X509_print
    - SSL_renegotiate
    - BIO_read
    - SSL_get_peer_certificate
    - BIO_get_retry_reason
    - BIO_f_ebcdic_filter
    - BIO_gets
    - strlen
    - SSL_waiting_for_async
    - SSL_get_ciphers
    - sk_SSL_CIPHER_value
    - SSL_SESSION_print
    - SSL_set_msg_callback_arg
    - SSL_get_SSL_CTX
    - OPENSSL_free
    - SSL_set_session_id_context
    - SSL_get_secure_renegotiation_support
    - BIO_free_all
    - SRP_VBASE_get1_by_user
    - STACK_OF
    - ERR_print_errors
    - BIO_puts
    - SSL_set_accept_state
    - strncmp
    - strcmp
    - app_malloc
    - BIO_f_ssl
    - BIO_flush
    - SSL_get_rbio
    - app_isdir
    - SSL_CIPHER_get_version
    - BIO_new_socket
    - BIO_set_write_buffer_size
    - BIO_write
    - SSL_CIPHER_get_name
    linkageType: ''
    returnType: int
    signature: www_body(int s, int stype, unsigned char *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3014,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3015,1
    - Dst: BIO_f_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3015,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3016,1
    - Dst: BIO_f_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3016,1
    - Dst: BIO_set_write_buffer_size
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3021,1
    - Dst: SSL_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3024,1
    - Dst: SSL_set_tlsext_debug_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3028,1
    - Dst: SSL_set_tlsext_debug_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3029,1
    - Dst: SSL_set_session_id_context
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3032,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3033,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3034,1
    - Dst: BIO_new_socket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3038,1
    - Dst: SSL_set_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3039,1
    - Dst: SSL_set_accept_state
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3040,1
    - Dst: BIO_set_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3042,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3043,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3045,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3045,1
    - Dst: BIO_f_ebcdic_filter
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3045,1
    - Dst: BIO_set_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3049,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3049,1
    - Dst: BIO_set_callback_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3050,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3050,1
    - Dst: SSL_set_msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3055,1
    - Dst: SSL_set_msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3058,1
    - Dst: SSL_set_msg_callback_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3059,1
    - Dst: BIO_do_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3063,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3066,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3067,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3068,1
    - Dst: BIO_should_io_special
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3072,1
    - Dst: BIO_get_retry_reason
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3073,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3074,1
    - Dst: SRP_user_pwd_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3075,1
    - Dst: SRP_VBASE_get1_by_user
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3077,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3080,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3083,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3088,1
    - Dst: print_ssl_summary
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3089,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3092,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3094,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3096,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3099,1
    - Dst: BIO_should_io_special
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3101,1
    - Dst: BIO_get_retry_reason
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3102,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3103,1
    - Dst: SRP_user_pwd_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3104,1
    - Dst: SRP_VBASE_get1_by_user
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3106,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3109,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3112,1
    - Dst: sleep
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3117,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3123,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3131,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3133,1
    - Dst: BUF_reverse
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3136,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3138,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3140,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3143,1
    - Dst: SSL_set_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3150,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3154,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3155,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 120
    argCount: 3
    argNames:
    - s
    - stype
    - context
    argTypes:
    - int
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 3157
      start: 3006
    functionDepth: 6
    functionLinenumber: 3006
    functionLinenumberEnd: 3157
    functionName: rev_body
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached:
    - BIO_push
    - BIO_should_io_special
    - BIO_f_buffer
    - BIO_should_retry
    - SSL_new
    - BIO_printf
    - SRP_user_pwd_free
    - SSL_set_shutdown
    - BIO_set_ssl
    - SSL_set_tlsext_debug_callback
    - SSL_set_msg_callback
    - SSL_set_bio
    - sleep
    - BIO_set_callback_arg
    - print_ssl_summary
    - BIO_new
    - BIO_do_handshake
    - BIO_set_callback
    - SSL_set_tlsext_debug_arg
    - BIO_get_retry_reason
    - BIO_f_ebcdic_filter
    - BIO_gets
    - strlen
    - BUF_reverse
    - SSL_set_msg_callback_arg
    - OPENSSL_free
    - SSL_set_session_id_context
    - BIO_free_all
    - BIO_puts
    - SRP_VBASE_get1_by_user
    - ERR_print_errors
    - BIO_flush
    - SSL_set_accept_state
    - strncmp
    - app_malloc
    - BIO_f_ssl
    - SSL_get_rbio
    - BIO_new_socket
    - BIO_set_write_buffer_size
    - BIO_write
    linkageType: ''
    returnType: int
    signature: rev_body(int s, int stype, unsigned char *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3165,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3174,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3175,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3176,1
    - Dst: SSL_has_matching_session_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ssl
    - id
    - id_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 3183
      start: 3160
    functionDepth: 1
    functionLinenumber: 3160
    functionLinenumberEnd: 3183
    functionName: generate_session_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - memcpy
    - strlen
    - SSL_has_matching_session_id
    linkageType: ''
    returnType: int
    signature: "generate_session_id(const SSL *ssl, unsigned char *id,\n                               unsigned
      int *id_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3204,1
    - Dst: SSL_SESSION_get_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3207,1
    - Dst: i2d_SSL_SESSION
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3208,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3210,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3211,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3215,1
    - Dst: SSL_SESSION_get_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3215,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3216,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3218,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3219,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3220,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3221,1
    - Dst: i2d_SSL_SESSION
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3227,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3228,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3229,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3230,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3231,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 2
    argNames:
    - ssl
    - session
    argTypes:
    - SSL*
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 3239
      start: 3202
    functionDepth: 6
    functionLinenumber: 3202
    functionLinenumberEnd: 3239
    functionName: add_session
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 2
    functionsReached:
    - i2d_SSL_SESSION
    - OPENSSL_memdup
    - SSL_SESSION_get_id
    - app_malloc
    - BIO_printf
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: add_session(SSL *ssl, SSL_SESSION *session)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3247,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3249,1
    - Dst: d2i_SSL_SESSION
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3250,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3253,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - ssl
    - id
    - idlen
    - do_copy
    argTypes:
    - SSL*
    - unsigned char*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 3255
      start: 3241
    functionDepth: 2
    functionLinenumber: 3241
    functionLinenumberEnd: 3255
    functionName: get_session
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 5
    functionsReached:
    - BIO_printf
    - memcmp
    - d2i_SSL_SESSION
    linkageType: ''
    returnType: SSL_SESSION
    signature: "*get_session(SSL *ssl, const unsigned char *id, int idlen,\n                                int
      *do_copy)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_get_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3262,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3264,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3269,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3270,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - sctx
    - session
    argTypes:
    - SSL_CTX*
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 3276
      start: 3257
    functionDepth: 1
    functionLinenumber: 3257
    functionLinenumberEnd: 3276
    functionName: del_session
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - memcmp
    - SSL_SESSION_get_id
    linkageType: ''
    returnType: void
    signature: del_session(SSL_CTX *sctx, SSL_SESSION *session)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3280,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3283,1
    - Dst: SSL_CTX_sess_set_get_cb
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3284,1
    - Dst: SSL_CTX_sess_set_remove_cb
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 3286
      start: 3278
    functionDepth: 1
    functionLinenumber: 3278
    functionLinenumberEnd: 3286
    functionName: init_session_cache_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_sess_set_remove_cb
    - SSL_CTX_set_session_cache_mode
    - SSL_CTX_sess_set_get_cb
    - SSL_CTX_sess_set_new_cb
    linkageType: ''
    returnType: void
    signature: init_session_cache_ctx(SSL_CTX *sctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3292,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3293,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c:3296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3299
      start: 3288
    functionDepth: 0
    functionLinenumber: 3288
    functionLinenumberEnd: 3299
    functionName: free_sessions
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: free_sessions(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_sock_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:64,1
    - Dst: BIO_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:67,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:69,1
    - Dst: BIO_ADDRINFO_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:74,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:78,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:78,1
    - Dst: BIO_ADDRINFO_socktype
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:79,1
    - Dst: BIO_socket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:81,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:81,1
    - Dst: BIO_ADDRINFO_socktype
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:81,1
    - Dst: BIO_ADDRINFO_protocol
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:82,1
    - Dst: BIO_connect
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:89,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:89,1
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:90,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:100,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:103,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:106,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 5
    argNames:
    - sock
    - host
    - port
    - family
    - type
    argTypes:
    - int*
    - char*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 108
      start: 57
    functionDepth: 5
    functionLinenumber: 57
    functionLinenumberEnd: 108
    functionName: init_client
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c
    functionUses: 1
    functionsReached:
    - BIO_ADDRINFO_next
    - ERR_clear_error
    - OPENSSL_assert
    - ERR_print_errors
    - BIO_ADDRINFO_family
    - BIO_ADDRINFO_free
    - BIO_ADDRINFO_protocol
    - BIO_lookup
    - BIO_ADDRINFO_socktype
    - BIO_socket
    - BIO_sock_init
    - BIO_closesocket
    - BIO_connect
    - BIO_ADDRINFO_address
    linkageType: ''
    returnType: int
    signature: "init_client(int *sock, const char *host, const char *port,\n                int
      family, int type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_sock_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:140,1
    - Dst: BIO_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:143,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:144,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:150,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:150,1
    - Dst: BIO_ADDRINFO_socktype
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:151,1
    - Dst: BIO_socket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:153,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:153,1
    - Dst: BIO_ADDRINFO_socktype
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:153,1
    - Dst: BIO_ADDRINFO_protocol
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:154,1
    - Dst: BIO_listen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:156,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:156,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:157,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:158,1
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:160,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:164,1
    - Dst: BIO_accept_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:172,1
    - Dst: BIO_sock_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:173,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:175,1
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:176,1
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:180,1
    - Dst: BIO_closesocket
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:188,1
    - Dst: unlink
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c:196,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 50
    argCount: 8
    argNames:
    - accept_sock
    - host
    - port
    - family
    - type
    - cb
    - context
    - naccept
    argTypes:
    - int*
    - char*
    - char*
    - int
    - int
    - do_server_cb
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 199
      start: 130
    functionDepth: 5
    functionLinenumber: 130
    functionLinenumberEnd: 199
    functionName: do_server
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - BIO_listen
    - ERR_print_errors
    - BIO_accept_ex
    - BIO_sock_should_retry
    - unlink
    - BIO_ADDRINFO_family
    - BIO_ADDRINFO_free
    - BIO_ADDRINFO_protocol
    - BIO_lookup
    - BIO_ADDRINFO_socktype
    - BIO_socket
    - BIO_sock_init
    - BIO_closesocket
    - BIO_ADDRINFO_address
    linkageType: ''
    returnType: int
    signature: "do_server(int *accept_sock, const char *host, const char *port,\n
      \             int family, int type, do_server_cb cb,\n              unsigned
      char *context, int naccept)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/errstr.c:37,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/errstr.c:38,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/errstr.c:42,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/errstr.c:45,1
    - Dst: opt_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/errstr.c:52,1
    - Dst: sscanf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/errstr.c:53,1
    - Dst: OPENSSL_init_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/errstr.c:59,1
    - Dst: ERR_error_string_n
      Src: /src/openweave-core/third_party/openssl/openssl/apps/errstr.c:61,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/errstr.c:62,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 67
      start: 30
    functionDepth: 5
    functionLinenumber: 30
    functionLinenumberEnd: 67
    functionName: errstr_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/errstr.c
    functionUses: 0
    functionsReached:
    - opt_init
    - sscanf
    - opt_rest
    - opt_next
    - opt_help
    - ERR_error_string_n
    - BIO_printf
    - OPENSSL_init_ssl
    linkageType: ''
    returnType: int
    signature: errstr_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:116,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:117,1
    - Dst: X509_VERIFY_PARAM_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:139,1
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:142,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:143,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:148,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:151,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:155,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:155,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:159,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:162,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:162,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:166,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:228,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:232,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:232,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:235,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:238,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:241,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:244,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:250,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:252,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:256,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:258,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:261,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:264,1
    - Dst: opt_md
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:267,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:267,1
    - Dst: opt_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:271,1
    - Dst: opt_unknown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:271,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:278,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:283,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:285,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:288,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:290,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:292,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:295,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:295,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:299,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:302,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:305,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:314,1
    - Dst: opt_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:317,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:323,1
    - Dst: opt_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:324,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:327,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:334,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:339,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:341,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:342,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:346,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:349,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:357,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:363,1
    - Dst: app_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:370,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:371,1
    - Dst: app_RAND_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:376,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:378,1
    - Dst: app_RAND_load_files
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:379,1
    - Dst: EVP_des_ede3_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:400,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:402,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:406,1
    - Dst: load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:410,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:414,1
    - Dst: load_certs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:421,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:423,1
    - Dst: load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:429,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:431,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:446,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:451,1
    - Dst: SMIME_read_PKCS7
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:457,1
    - Dst: PEM_read_bio_PKCS7
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:459,1
    - Dst: d2i_PKCS7_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:461,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:463,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:468,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:472,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:473,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:474,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:480,1
    - Dst: setup_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:485,1
    - Dst: X509_STORE_set_verify_cb
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:487,1
    - Dst: X509_STORE_set1_param
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:489,1
    - Dst: PKCS7_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:497,1
    - Dst: PKCS7_sign
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:511,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:515,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:516,1
    - Dst: PKCS7_add_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:517,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:522,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:523,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:524,1
    - Dst: load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:525,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:529,1
    - Dst: PKCS7_sign_add_signer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:532,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:534,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:536,1
    - Dst: PKCS7_final
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:541,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:547,1
    - Dst: PKCS7_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:553,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:554,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:558,1
    - Dst: PKCS7_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:559,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:560,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:562,1
    - Dst: PKCS7_get0_signers
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:565,1
    - Dst: save_certs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:566,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:567,1
    - Dst: sk_X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:571,1
    - Dst: PEM_write_bio_PKCS7
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:573,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:576,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:578,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:580,1
    - Dst: SMIME_write_PKCS7
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:583,1
    - Dst: SMIME_write_PKCS7
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:585,1
    - Dst: PEM_write_bio_PKCS7_stream
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:587,1
    - Dst: i2d_PKCS7_bio_stream
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:589,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:591,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:595,1
    - Dst: app_RAND_write_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:603,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:605,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:606,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:607,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:608,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:609,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:610,1
    - Dst: X509_STORE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:611,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:612,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:613,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:614,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:615,1
    - Dst: PKCS7_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:616,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:617,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:618,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:619,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:620,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:621,1
    CyclomaticComplexity: 197
    EdgeCount: 197
    ICount: 490
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 623
      start: 111
    functionDepth: 9
    functionLinenumber: 111
    functionLinenumberEnd: 623
    functionName: smime_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/smime.c
    functionUses: 0
    functionsReached:
    - opt_verify
    - sk_OPENSSL_STRING_value
    - sk_X509_pop_free
    - release_engine
    - load_key
    - PEM_read_bio_PKCS7
    - X509_STORE_set1_param
    - sk_X509_num
    - PKCS7_verify
    - PKCS7_get0_signers
    - PEM_write_bio_PKCS7_stream
    - setup_verify
    - X509_VERIFY_PARAM_free
    - BIO_new_file
    - BIO_printf
    - PKCS7_free
    - d2i_PKCS7_bio
    - setup_engine
    - PKCS7_add_certificate
    - EVP_PKEY_free
    - app_RAND_write_file
    - opt_init
    - sk_OPENSSL_STRING_push
    - load_certs
    - sk_OPENSSL_STRING_free
    - opt_next
    - PKCS7_encrypt
    - app_RAND_load_files
    - BIO_free
    - SMIME_write_PKCS7
    - opt_num_rest
    - sk_X509_push
    - X509_free
    - sk_X509_free
    - save_certs
    - opt_format
    - EVP_des_ede3_cbc
    - PKCS7_sign
    - X509_STORE_free
    - sk_OPENSSL_STRING_num
    - PKCS7_decrypt
    - opt_arg
    - PEM_write_bio_PKCS7
    - opt_unknown
    - opt_md
    - app_passwd
    - X509_VERIFY_PARAM_new
    - app_RAND_load_file
    - sk_X509_new_null
    - SMIME_read_PKCS7
    - i2d_PKCS7_bio_stream
    - OPENSSL_free
    - PKCS7_sign_add_signer
    - BIO_free_all
    - opt_rest
    - STACK_OF
    - BIO_puts
    - ERR_print_errors
    - bio_open_default
    - opt_help
    - X509_STORE_set_verify_cb
    - PKCS7_final
    - opt_cipher
    - load_cert
    - sk_X509_value
    - sk_OPENSSL_STRING_new_null
    linkageType: ''
    returnType: int
    signature: smime_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:631,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:634,1
    - Dst: PEM_write_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:635,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:635,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:636,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - signerfile
    - signers
    argTypes:
    - char*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 638
      start: 625
    functionDepth: 4
    functionLinenumber: 625
    functionLinenumberEnd: 638
    functionName: save_certs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/smime.c
    functionUses: 2
    functionsReached:
    - PEM_write_bio_X509
    - sk_X509_num
    - BIO_free
    - sk_X509_value
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: save_certs(char *signerfile, STACK_OF(X509) *signers)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:646,1
    - Dst: policies_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/smime.c:652,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ok
    - ctx
    argTypes:
    - int
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 656
      start: 642
    functionDepth: 7
    functionLinenumber: 642
    functionLinenumberEnd: 656
    functionName: smime_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/smime.c
    functionUses: 0
    functionsReached:
    - policies_print
    - X509_STORE_CTX_get_error
    linkageType: ''
    returnType: int
    signature: smime_cb(int ok, X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:174,1
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:177,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:178,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:183,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:186,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:188,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:192,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:195,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:205,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:208,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:211,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:214,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:223,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:229,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:238,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:241,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:244,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:247,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:250,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:253,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:256,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:259,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:262,1
    - Dst: opt_md
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:265,1
    - Dst: opt_unknown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:265,1
    - Dst: opt_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:269,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:275,1
    - Dst: app_RAND_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:280,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:281,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:284,1
    - Dst: app_RAND_load_files
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:285,1
    - Dst: app_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:289,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:290,1
    - Dst: load_config_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:294,1
    - Dst: app_load_modules
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:295,1
    - Dst: query_command
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:308,1
    - Dst: reply_command
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:320,1
    - Dst: EXACTLY_ONE
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:325,1
    - Dst: verify_command
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:327,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:333,1
    - Dst: app_RAND_write_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:334,1
    - Dst: NCONF_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:335,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:336,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 167
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 338
      start: 153
    functionDepth: 6
    functionLinenumber: 153
    functionLinenumberEnd: 338
    functionName: ts_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ts.c
    functionUses: 0
    functionsReached:
    - opt_verify
    - X509_VERIFY_PARAM_free
    - verify_command
    - BIO_printf
    - EXACTLY_ONE
    - app_RAND_write_file
    - opt_init
    - opt_next
    - app_RAND_load_files
    - opt_num_rest
    - NCONF_free
    - query_command
    - load_config_file
    - opt_arg
    - opt_unknown
    - app_RAND_load_file
    - opt_md
    - X509_VERIFY_PARAM_new
    - app_passwd
    - OPENSSL_free
    - reply_command
    - app_load_modules
    - opt_help
    linkageType: ''
    returnType: int
    signature: ts_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:348,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - oid
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 352
      start: 344
    functionDepth: 5
    functionLinenumber: 344
    functionLinenumberEnd: 352
    functionName: txt2obj
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ts.c
    functionUses: 22
    functionsReached:
    - BIO_printf
    - OBJ_txt2obj
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: '*txt2obj(const char *oid)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: app_load_config
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:356,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:361,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:362,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:364,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:366,1
    - Dst: OBJ_create_objects
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:368,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:369,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:372,1
    - Dst: add_oid_section
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:373,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:374,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - configfile
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 377
      start: 354
    functionDepth: 7
    functionLinenumber: 354
    functionLinenumberEnd: 377
    functionName: load_config_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ts.c
    functionUses: 1
    functionsReached:
    - ERR_clear_error
    - BIO_free_all
    - ERR_print_errors
    - app_load_config
    - BIO_new_file
    - add_oid_section
    - BIO_printf
    - OBJ_create_objects
    - NCONF_get_string
    linkageType: ''
    returnType: CONF
    signature: '*load_config_file(const char *configfile)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:394,1
    - Dst: d2i_TS_REQ_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:396,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:399,1
    - Dst: create_query
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:401,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:407,1
    - Dst: TS_REQ_print_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:409,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:412,1
    - Dst: i2d_TS_REQ_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:414,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:421,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:422,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:423,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:424,1
    - Dst: TS_REQ_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:425,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 9
    argNames:
    - data
    - digest
    - md
    - policy
    - no_nonce
    - cert
    - in
    - out
    - text
    argTypes:
    - char*
    - char*
    - EVP_MD*
    - char*
    - int
    - int
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 427
      start: 382
    functionDepth: 8
    functionLinenumber: 382
    functionLinenumberEnd: 427
    functionName: query_command
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ts.c
    functionUses: 1
    functionsReached:
    - create_query
    - i2d_TS_REQ_bio
    - TS_REQ_free
    - BIO_free_all
    - ERR_print_errors
    - bio_open_default
    - d2i_TS_REQ_bio
    - TS_REQ_print_bio
    linkageType: ''
    returnType: int
    signature: "query_command(const char *data, const char *digest, const EVP_MD *md,\n
      \                        const char *policy, int no_nonce,\n                         int
      cert, const char *in, const char *out, int text)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyname
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:441,1
    - Dst: TS_REQ_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:443,1
    - Dst: TS_REQ_set_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:445,1
    - Dst: TS_MSG_IMPRINT_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:447,1
    - Dst: X509_ALGOR_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:449,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:451,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:451,1
    - Dst: ASN1_TYPE_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:453,1
    - Dst: TS_MSG_IMPRINT_set_algo
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:456,1
    - Dst: create_digest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:458,1
    - Dst: TS_MSG_IMPRINT_set_msg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:460,1
    - Dst: TS_REQ_set_msg_imprint
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:462,1
    - Dst: txt2obj
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:464,1
    - Dst: TS_REQ_set_policy_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:466,1
    - Dst: create_nonce
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:470,1
    - Dst: TS_REQ_set_nonce
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:472,1
    - Dst: TS_REQ_set_cert_req
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:474,1
    - Dst: TS_REQ_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:480,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:482,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:483,1
    - Dst: TS_MSG_IMPRINT_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:485,1
    - Dst: X509_ALGOR_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:486,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:487,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:488,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:489,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 65
    argCount: 6
    argNames:
    - data_bio
    - digest
    - md
    - policy
    - no_nonce
    - cert
    argTypes:
    - BIO*
    - char*
    - EVP_MD*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 491
      start: 429
    functionDepth: 6
    functionLinenumber: 429
    functionLinenumberEnd: 491
    functionName: create_query
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ts.c
    functionUses: 1
    functionsReached:
    - EVP_MD_type
    - BIO_printf
    - create_nonce
    - TS_REQ_new
    - TS_REQ_set_version
    - OBJ_nid2obj
    - ASN1_TYPE_new
    - ASN1_OBJECT_free
    - TS_MSG_IMPRINT_free
    - TS_REQ_set_cert_req
    - TS_REQ_free
    - X509_ALGOR_new
    - TS_REQ_set_nonce
    - OPENSSL_free
    - TS_REQ_set_policy_id
    - TS_REQ_set_msg_imprint
    - TS_MSG_IMPRINT_new
    - ERR_print_errors
    - create_digest
    - txt2obj
    - TS_MSG_IMPRINT_set_msg
    - EVP_get_digestbyname
    - TS_MSG_IMPRINT_set_algo
    - X509_ALGOR_free
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: TS_REQ
    signature: "*create_query(BIO *data_bio, const char *digest, const EVP_MD *md,\n
      \                           const char *policy, int no_nonce, int cert)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:500,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:508,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:511,1
    - Dst: EVP_DigestInit
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:512,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:514,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:515,1
    - Dst: EVP_DigestFinal
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:518,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:520,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:523,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:525,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:527,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:534,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 4
    argNames:
    - input
    - digest
    - md
    - md_value
    argTypes:
    - BIO*
    - char*
    - EVP_MD*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 536
      start: 493
    functionDepth: 6
    functionLinenumber: 493
    functionLinenumberEnd: 536
    functionName: create_digest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ts.c
    functionUses: 1
    functionsReached:
    - EVP_DigestInit
    - BIO_printf
    - EVP_MD_size
    - EVP_DigestUpdate
    - app_malloc
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - OPENSSL_hexstr2buf
    - EVP_DigestFinal
    - OPENSSL_free
    - BIO_read
    linkageType: ''
    returnType: int
    signature: "create_digest(BIO *input, const char *digest, const EVP_MD *md,\n
      \                        unsigned char **md_value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:547,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:553,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:555,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:557,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:558,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:562,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:563,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - bits
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 565
      start: 538
    functionDepth: 6
    functionLinenumber: 538
    functionLinenumberEnd: 565
    functionName: create_nonce
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ts.c
    functionUses: 1
    functionsReached:
    - RAND_bytes
    - ASN1_INTEGER_new
    - app_malloc
    - memcpy
    - BIO_printf
    - OPENSSL_free
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: '*create_nonce(int bits)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:586,1
    - Dst: read_PKCS7
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:589,1
    - Dst: d2i_TS_RESP_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:591,1
    - Dst: create_response
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:594,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:597,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:599,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:606,1
    - Dst: TS_RESP_get_tst_info
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:609,1
    - Dst: TS_TST_INFO_print_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:610,1
    - Dst: TS_RESP_print_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:613,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:617,1
    - Dst: TS_RESP_get_token
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:620,1
    - Dst: i2d_PKCS7_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:621,1
    - Dst: i2d_TS_RESP_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:624,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:632,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:633,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:634,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:635,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:636,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:637,1
    - Dst: TS_RESP_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:638,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 57
    argCount: 15
    argNames:
    - conf
    - section
    - engine
    - queryfile
    - passin
    - inkey
    - md
    - signer
    - chain
    - policy
    - in
    - token_in
    - out
    - token_out
    - text
    argTypes:
    - CONF*
    - char*
    - char*
    - char*
    - char*
    - char*
    - EVP_MD*
    - char*
    - char*
    - char*
    - char*
    - int
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 640
      start: 571
    functionDepth: 7
    functionLinenumber: 571
    functionLinenumberEnd: 640
    functionName: reply_command
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ts.c
    functionUses: 1
    functionsReached:
    - TS_RESP_print_bio
    - TS_TST_INFO_print_bio
    - i2d_PKCS7_bio
    - TS_RESP_get_tst_info
    - read_PKCS7
    - BIO_free_all
    - ERR_print_errors
    - bio_open_default
    - TS_RESP_get_token
    - d2i_TS_RESP_bio
    - i2d_TS_RESP_bio
    - create_response
    - BIO_new_file
    - BIO_printf
    - TS_RESP_free
    linkageType: ''
    returnType: int
    signature: "reply_command(CONF *conf, const char *section, const char *engine,\n
      \                        const char *queryfile, const char *passin, const char
      *inkey,\n                         const EVP_MD *md, const char *signer, const
      char *chain,\n                         const char *policy, const char *in, int
      token_in,\n                         const char *out, int token_out, int text)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PKCS7_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:651,1
    - Dst: PKCS7_to_TS_TST_INFO
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:653,1
    - Dst: TS_RESP_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:655,1
    - Dst: TS_STATUS_INFO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:657,1
    - Dst: TS_STATUS_INFO_set_status
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:659,1
    - Dst: TS_RESP_set_status_info
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:661,1
    - Dst: TS_RESP_set_tst_info
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:663,1
    - Dst: PKCS7_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:669,1
    - Dst: TS_TST_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:670,1
    - Dst: TS_RESP_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:672,1
    - Dst: TS_STATUS_INFO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:675,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 1
    argNames:
    - in_bio
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 677
      start: 643
    functionDepth: 5
    functionLinenumber: 643
    functionLinenumberEnd: 677
    functionName: read_PKCS7
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ts.c
    functionUses: 4
    functionsReached:
    - TS_RESP_new
    - TS_TST_INFO_free
    - TS_STATUS_INFO_new
    - d2i_PKCS7_bio
    - TS_STATUS_INFO_free
    - TS_RESP_free
    - TS_RESP_set_status_info
    - PKCS7_to_TS_TST_INFO
    - PKCS7_free
    - TS_STATUS_INFO_set_status
    - TS_RESP_set_tst_info
    linkageType: ''
    returnType: TS_RESP
    signature: '*read_PKCS7(BIO *in_bio)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:689,1
    - Dst: TS_CONF_get_tsa_section
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:691,1
    - Dst: TS_RESP_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:693,1
    - Dst: TS_CONF_set_serial
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:695,1
    - Dst: TS_CONF_set_crypto_device
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:698,1
    - Dst: TS_CONF_set_signer_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:701,1
    - Dst: TS_CONF_set_certs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:703,1
    - Dst: TS_CONF_set_signer_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:705,1
    - Dst: TS_RESP_CTX_set_signer_digest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:709,1
    - Dst: TS_CONF_set_signer_digest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:711,1
    - Dst: TS_CONF_set_def_policy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:715,1
    - Dst: TS_CONF_set_policies
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:717,1
    - Dst: TS_CONF_set_digests
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:719,1
    - Dst: TS_CONF_set_accuracy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:721,1
    - Dst: TS_CONF_set_clock_precision_digits
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:723,1
    - Dst: TS_CONF_set_ordering
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:725,1
    - Dst: TS_CONF_set_tsa_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:727,1
    - Dst: TS_CONF_set_ess_cert_id_chain
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:729,1
    - Dst: TS_RESP_create_response
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:731,1
    - Dst: TS_RESP_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:737,1
    - Dst: TS_RESP_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:740,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:741,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 71
    argCount: 10
    argNames:
    - conf
    - section
    - engine
    - queryfile
    - passin
    - inkey
    - md
    - signer
    - chain
    - policy
    argTypes:
    - CONF*
    - char*
    - char*
    - char*
    - char*
    - char*
    - EVP_MD*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 743
      start: 679
    functionDepth: 7
    functionLinenumber: 679
    functionLinenumberEnd: 743
    functionName: create_response
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ts.c
    functionUses: 2
    functionsReached:
    - TS_CONF_set_signer_digest
    - TS_RESP_create_response
    - TS_CONF_set_signer_key
    - TS_CONF_set_def_policy
    - BIO_new_file
    - TS_CONF_set_ordering
    - TS_CONF_set_digests
    - TS_CONF_set_accuracy
    - TS_CONF_set_policies
    - TS_CONF_set_ess_cert_id_chain
    - TS_CONF_set_crypto_device
    - TS_CONF_set_signer_cert
    - TS_CONF_set_serial
    - TS_CONF_get_tsa_section
    - TS_CONF_set_clock_precision_digits
    - TS_RESP_free
    - TS_RESP_CTX_new
    - TS_CONF_set_certs
    - BIO_free_all
    - TS_RESP_CTX_free
    - TS_RESP_CTX_set_signer_digest
    - TS_CONF_set_tsa_name
    linkageType: ''
    returnType: TS_RESP
    signature: "*create_response(CONF *conf, const char *section, const char *engine,\n
      \                               const char *queryfile, const char *passin,\n
      \                               const char *inkey, const EVP_MD *md, const char
      *signer,\n                                const char *chain, const char *policy)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next_serial
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:748,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:751,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:754,1
    - Dst: save_ts_serial
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:756,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - TS_RESP_CTX*
    - void*
    constantsTouched: []
    func_position:
      end: 759
      start: 745
    functionDepth: 5
    functionLinenumber: 745
    functionLinenumberEnd: 759
    functionName: serial_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ts.c
    functionUses: 2
    functionsReached:
    - TS_RESP_CTX_set_status_info
    - TS_RESP_CTX_add_failure_info
    - next_serial
    - save_ts_serial
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: '*serial_cb(TS_RESP_CTX *ctx, void *data)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:768,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:771,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:772,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:773,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:775,1
    - Dst: a2i_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:779,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:780,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:784,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:786,1
    - Dst: BN_add_word
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:788,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:790,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:797,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:800,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:801,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 1
    argNames:
    - serialfile
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 803
      start: 761
    functionDepth: 6
    functionLinenumber: 761
    functionLinenumberEnd: 803
    functionName: next_serial
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ts.c
    functionUses: 1
    functionsReached:
    - BN_add_word
    - BN_free
    - BIO_free_all
    - ASN1_INTEGER_new
    - a2i_ASN1_INTEGER
    - ASN1_INTEGER_to_BN
    - ASN1_INTEGER_set
    - BN_to_ASN1_INTEGER
    - BIO_new_file
    - BIO_printf
    - ASN1_INTEGER_free
    - ERR_clear_error
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: '*next_serial(const char *serialfile)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:810,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:812,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:814,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:819,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:821,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - serialfile
    - serial
    argTypes:
    - char*
    - ASN1_INTEGER*
    constantsTouched: []
    func_position:
      end: 823
      start: 805
    functionDepth: 5
    functionLinenumber: 805
    functionLinenumberEnd: 823
    functionName: save_ts_serial
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ts.c
    functionUses: 1
    functionsReached:
    - BIO_free_all
    - BIO_puts
    - i2a_ASN1_INTEGER
    - BIO_new_file
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: save_ts_serial(const char *serialfile, ASN1_INTEGER *serial)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:841,1
    - Dst: d2i_PKCS7_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:844,1
    - Dst: d2i_TS_RESP_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:847,1
    - Dst: create_verify_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:851,1
    - Dst: TS_RESP_verify_token
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:857,1
    - Dst: TS_RESP_verify_response
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:858,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:861,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:863,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:865,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:866,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:869,1
    - Dst: PKCS7_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:870,1
    - Dst: TS_RESP_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:871,1
    - Dst: TS_VERIFY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:872,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 9
    argNames:
    - data
    - digest
    - queryfile
    - in
    - token_in
    - CApath
    - CAfile
    - untrusted
    - vpm
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - int
    - char*
    - char*
    - char*
    - X509_VERIFY_PARAM*
    constantsTouched: []
    func_position:
      end: 874
      start: 830
    functionDepth: 5
    functionLinenumber: 830
    functionLinenumberEnd: 874
    functionName: verify_command
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ts.c
    functionUses: 1
    functionsReached:
    - BIO_free_all
    - TS_RESP_verify_token
    - ERR_print_errors
    - TS_RESP_verify_response
    - d2i_TS_RESP_bio
    - create_verify_ctx
    - printf
    - TS_RESP_free
    - BIO_new_file
    - PKCS7_free
    - d2i_PKCS7_bio
    - TS_VERIFY_CTX_free
    linkageType: ''
    returnType: int
    signature: "verify_command(const char *data, const char *digest, const char *queryfile,\n
      \                         const char *in, int token_in,\n                          const
      char *CApath, const char *CAfile, const char *untrusted,\n                          X509_VERIFY_PARAM
      *vpm)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TS_VERIFY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:889,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:896,1
    - Dst: TS_VERIFY_CTX_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:898,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:899,1
    - Dst: TS_VERIFY_CTX_set_imprint
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:906,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:907,1
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:913,1
    - Dst: d2i_TS_REQ_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:915,1
    - Dst: TS_REQ_to_TS_VERIFY_CTX
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:917,1
    - Dst: TS_VERIFY_CTX_add_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:923,1
    - Dst: TS_VERIFY_CTX_set_store
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:926,1
    - Dst: create_cert_store
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:926,1
    - Dst: TS_VERIFY_CTS_set_certs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:932,1
    - Dst: TS_CONF_load_certs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:932,1
    - Dst: TS_VERIFY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:938,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:941,1
    - Dst: TS_REQ_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:942,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 55
    argCount: 7
    argNames:
    - data
    - digest
    - queryfile
    - CApath
    - CAfile
    - untrusted
    - vpm
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - X509_VERIFY_PARAM*
    constantsTouched: []
    func_position:
      end: 944
      start: 876
    functionDepth: 7
    functionLinenumber: 876
    functionLinenumberEnd: 944
    functionName: create_verify_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ts.c
    functionUses: 1
    functionsReached:
    - TS_VERIFY_CTX_set_data
    - TS_REQ_free
    - BIO_free_all
    - TS_VERIFY_CTX_set_imprint
    - TS_VERIFY_CTX_new
    - TS_VERIFY_CTS_set_certs
    - d2i_TS_REQ_bio
    - TS_VERIFY_CTX_set_store
    - TS_REQ_to_TS_VERIFY_CTX
    - TS_VERIFY_CTX_free
    - BIO_new_file
    - create_cert_store
    - BIO_printf
    - TS_CONF_load_certs
    - TS_VERIFY_CTX_add_flags
    linkageType: ''
    returnType: TS_VERIFY_CTX
    signature: "*create_verify_ctx(const char *data, const char *digest,\n                                        const
      char *queryfile,\n                                        const char *CApath,
      const char *CAfile,\n                                        const char *untrusted,\n
      \                                       X509_VERIFY_PARAM *vpm)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:953,1
    - Dst: X509_STORE_set_verify_cb
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:954,1
    - Dst: X509_STORE_add_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:956,1
    - Dst: X509_LOOKUP_hash_dir
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:956,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:958,1
    - Dst: X509_LOOKUP_add_dir
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:961,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:963,1
    - Dst: X509_STORE_add_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:969,1
    - Dst: X509_LOOKUP_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:969,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:971,1
    - Dst: X509_LOOKUP_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:974,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:976,1
    - Dst: X509_STORE_set1_param
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:982,1
    - Dst: X509_STORE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ts.c:987,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 3
    argNames:
    - CApath
    - CAfile
    - vpm
    argTypes:
    - char*
    - char*
    - X509_VERIFY_PARAM*
    constantsTouched: []
    func_position:
      end: 989
      start: 946
    functionDepth: 3
    functionLinenumber: 946
    functionLinenumberEnd: 989
    functionName: create_cert_store
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ts.c
    functionUses: 1
    functionsReached:
    - X509_STORE_free
    - X509_LOOKUP_load_file
    - X509_LOOKUP_add_dir
    - X509_STORE_set_verify_cb
    - X509_STORE_new
    - X509_STORE_set1_param
    - X509_LOOKUP_hash_dir
    - BIO_printf
    - X509_STORE_add_lookup
    - X509_LOOKUP_file
    linkageType: ''
    returnType: X509_STORE
    signature: "*create_cert_store(const char *CApath, const char *CAfile,\n                                     X509_VERIFY_PARAM
      *vpm)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ok
    - ctx
    argTypes:
    - int
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 994
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 994
    functionName: verify_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ts.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: verify_cb(int ok, X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:45,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:46,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:47,1
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:54,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:55,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:60,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:63,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:67,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:67,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:71,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:71,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:75,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:78,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:85,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:87,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:87,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:92,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:97,1
    - Dst: d2i_X509_CRL_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:102,1
    - Dst: PEM_read_bio_X509_CRL
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:104,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:106,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:107,1
    - Dst: PKCS7_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:112,1
    - Dst: PKCS7_SIGNED_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:114,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:116,1
    - Dst: OBJ_nid2obj
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:118,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:120,1
    - Dst: sk_X509_CRL_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:122,1
    - Dst: sk_X509_CRL_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:126,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:130,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:135,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:136,1
    - Dst: add_certs_from_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:137,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:138,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:139,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:144,1
    - Dst: i2d_PKCS7_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:149,1
    - Dst: PEM_write_bio_PKCS7
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:151,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:153,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:154,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:159,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:160,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:161,1
    - Dst: PKCS7_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:162,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c:163,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 125
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 166
      start: 40
    functionDepth: 7
    functionLinenumber: 40
    functionLinenumberEnd: 166
    functionName: crl2pkcs7_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c
    functionUses: 0
    functionsReached:
    - sk_X509_CRL_push
    - sk_OPENSSL_STRING_value
    - X509_CRL_free
    - PKCS7_SIGNED_new
    - BIO_printf
    - PKCS7_free
    - sk_OPENSSL_STRING_free
    - opt_init
    - sk_OPENSSL_STRING_push
    - opt_next
    - OBJ_nid2obj
    - ASN1_INTEGER_set
    - BIO_free
    - opt_num_rest
    - opt_format
    - sk_OPENSSL_STRING_num
    - d2i_X509_CRL_bio
    - opt_arg
    - PEM_write_bio_PKCS7
    - sk_X509_new_null
    - sk_X509_CRL_new_null
    - i2d_PKCS7_bio
    - BIO_free_all
    - STACK_OF
    - ERR_print_errors
    - bio_open_default
    - add_certs_from_file
    - opt_help
    - PEM_read_bio_X509_CRL
    - sk_OPENSSL_STRING_new_null
    - PKCS7_new
    linkageType: ''
    returnType: int
    signature: crl2pkcs7_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:38,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:39,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:44,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:48,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:54,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:57,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:61,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:65,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:68,1
    - Dst: NETSCAPE_CERT_SEQUENCE_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:73,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:76,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:79,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:80,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:82,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:83,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:85,1
    - Dst: PEM_write_bio_NETSCAPE_CERT_SEQUENCE
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:88,1
    - Dst: PEM_read_bio_NETSCAPE_CERT_SEQUENCE
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:93,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:95,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:97,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:101,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:102,1
    - Dst: dump_cert_text
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:103,1
    - Dst: PEM_write_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:104,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:108,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:109,1
    - Dst: NETSCAPE_CERT_SEQUENCE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c:110,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 80
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 113
      start: 29
    functionDepth: 7
    functionLinenumber: 29
    functionLinenumberEnd: 113
    functionName: nseq_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c
    functionUses: 0
    functionsReached:
    - sk_X509_num
    - BIO_printf
    - opt_init
    - PEM_write_bio_X509
    - opt_next
    - PEM_write_bio_NETSCAPE_CERT_SEQUENCE
    - BIO_free
    - dump_cert_text
    - opt_num_rest
    - sk_X509_push
    - NETSCAPE_CERT_SEQUENCE_new
    - opt_arg
    - sk_X509_new_null
    - NETSCAPE_CERT_SEQUENCE_free
    - PEM_read_bio_NETSCAPE_CERT_SEQUENCE
    - PEM_read_bio_X509
    - BIO_free_all
    - ERR_print_errors
    - bio_open_default
    - opt_help
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: nseq_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:86,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:87,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:92,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:95,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:99,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:99,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:103,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:106,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:106,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:110,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:128,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:131,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:134,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:134,1
    - Dst: opt_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:137,1
    - Dst: opt_unknown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:137,1
    - Dst: opt_pair
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:141,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:141,1
    - Dst: opt_pair
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:147,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:147,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:160,1
    - Dst: app_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:168,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:169,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:174,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:179,1
    - Dst: d2i_EC_PUBKEY_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:182,1
    - Dst: d2i_ECPrivateKey_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:184,1
    - Dst: load_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:188,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:190,1
    - Dst: EVP_PKEY_get1_EC_KEY
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:192,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:193,1
    - Dst: PEM_read_bio_EC_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:197,1
    - Dst: PEM_read_bio_ECPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:199,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:202,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:203,1
    - Dst: bio_open_owner
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:207,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:211,1
    - Dst: EC_KEY_set_conv_form
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:214,1
    - Dst: EC_KEY_set_asn1_flag
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:217,1
    - Dst: EC_KEY_set_enc_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:220,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:223,1
    - Dst: EC_KEY_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:224,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:225,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:226,1
    - Dst: EC_KEY_check_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:232,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:233,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:235,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:236,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:245,1
    - Dst: i2d_ECPKParameters_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:248,1
    - Dst: i2d_EC_PUBKEY_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:250,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:252,1
    - Dst: i2d_ECPrivateKey_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:253,1
    - Dst: PEM_write_bio_ECPKParameters
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:257,1
    - Dst: PEM_write_bio_EC_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:259,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:261,1
    - Dst: PEM_write_bio_ECPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:262,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:268,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:269,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:273,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:274,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:275,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:276,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:277,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ec.c:278,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 191
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 280
      start: 70
    functionDepth: 9
    functionLinenumber: 70
    functionLinenumberEnd: 280
    functionName: ec_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ec.c
    functionUses: 0
    functionsReached:
    - opt_pair
    - EC_KEY_free
    - load_key
    - release_engine
    - BIO_printf
    - d2i_EC_PUBKEY_bio
    - EVP_PKEY_free
    - setup_engine
    - EC_KEY_set_asn1_flag
    - opt_init
    - EC_KEY_set_enc_flags
    - i2d_EC_PUBKEY_bio
    - EVP_PKEY_get1_EC_KEY
    - opt_next
    - perror
    - BIO_free
    - opt_num_rest
    - opt_format
    - load_pubkey
    - bio_open_owner
    - i2d_ECPKParameters_bio
    - i2d_ECPrivateKey_bio
    - PEM_write_bio_ECPrivateKey
    - PEM_write_bio_ECPKParameters
    - opt_arg
    - EC_KEY_check_key
    - opt_unknown
    - d2i_ECPrivateKey_bio
    - app_passwd
    - EC_KEY_get0_group
    - EC_KEY_set_conv_form
    - assert
    - PEM_read_bio_EC_PUBKEY
    - PEM_write_bio_EC_PUBKEY
    - OPENSSL_free
    - BIO_free_all
    - ERR_print_errors
    - bio_open_default
    - opt_help
    - opt_cipher
    - PEM_read_bio_ECPrivateKey
    - EC_KEY_print
    linkageType: ''
    returnType: int
    signature: ec_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:68,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:72,1
    - Dst: setup_ui_method
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 81
    functionName: apps_startup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c
    functionUses: 0
    functionsReached:
    - setup_ui_method
    - signal
    - OPENSSL_init_crypto
    linkageType: ''
    returnType: int
    signature: apps_startup()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: destroy_ui_method
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: apps_shutdown
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c
    functionUses: 0
    functionsReached:
    - destroy_ui_method
    linkageType: ''
    returnType: void
    signature: apps_shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:96,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:97,1
    - Dst: X509_get_default_cert_area
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:99,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:100,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:100,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:101,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:102,1
    - Dst: strcat
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:104,1
    - Dst: strcat
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 90
    functionDepth: 6
    functionLinenumber: 90
    functionLinenumberEnd: 109
    functionName: make_config_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c
    functionUses: 0
    functionsReached:
    - strcat
    - app_malloc
    - getenv
    - strlen
    - OPENSSL_strdup
    - X509_get_default_cert_area
    - strcpy
    linkageType: ''
    returnType: char
    signature: '*make_config_name()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LHASH_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:114,1
    - Dst: make_config_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:126,1
    - Dst: dup_bio_in
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:127,1
    - Dst: dup_bio_out
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:128,1
    - Dst: dup_bio_err
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:129,1
    - Dst: copy_argv
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:132,1
    - Dst: win32_utf8argv
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:137,1
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:140,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:141,1
    - Dst: CRYPTO_set_mem_debug
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:142,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:143,1
    - Dst: getenv
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:145,1
    - Dst: FIPS_mode_set
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:147,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:148,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:152,1
    - Dst: apps_startup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:157,1
    - Dst: prog_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:160,1
    - Dst: opt_progname
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:161,1
    - Dst: lh_FUNCTION_retrieve
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:165,1
    - Dst: func
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:168,1
    - Dst: do_cmd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:176,1
    - Dst: fputs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:190,1
    - Dst: fflush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:191,1
    - Dst: fgets
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:192,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:196,1
    - Dst: readline
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:210,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:213,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:217,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:217,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:218,1
    - Dst: add_history
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:219,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:224,1
    - Dst: strcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:224,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:225,1
    - Dst: chopup_args
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:231,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:232,1
    - Dst: do_cmd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:236,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:242,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:243,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:244,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:248,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:249,1
    - Dst: lh_FUNCTION_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:250,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:251,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:253,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:254,1
    - Dst: apps_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:255,1
    - Dst: CRYPTO_mem_leaks
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:257,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:260,1
    - Dst: EXIT
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:261,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 113
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 262
      start: 111
    functionDepth: 7
    functionLinenumber: 111
    functionLinenumberEnd: 262
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c
    functionUses: 22
    functionsReached:
    - do_cmd
    - make_config_name
    - dup_bio_in
    - apps_shutdown
    - fputs
    - lh_FUNCTION_retrieve
    - strcpy
    - BIO_printf
    - lh_FUNCTION_free
    - dup_bio_out
    - BIO_free
    - prog_init
    - CRYPTO_set_mem_debug
    - FIPS_mode_set
    - copy_argv
    - CRYPTO_mem_leaks
    - win32_utf8argv
    - fgets
    - getenv
    - strlen
    - add_history
    - fflush
    - OPENSSL_free
    - apps_startup
    - opt_progname
    - func
    - EXIT
    - BIO_free_all
    - strcmp
    - ERR_print_errors
    - BIO_flush
    - CRYPTO_mem_ctrl
    - free
    - chopup_args
    - dup_bio_err
    - readline
    - LHASH_OF
    linkageType: ''
    returnType: int
    signature: main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:272,1
    - Dst: EVP_CIPHER_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:272,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - c
    - from
    - to
    - arg
    argTypes:
    - EVP_CIPHER*
    - char*
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 280
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 280
    functionName: list_cipher_fn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - EVP_CIPHER_name
    linkageType: ''
    returnType: void
    signature: "list_cipher_fn(const EVP_CIPHER *c,\n                           const
      char *from, const char *to, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:286,1
    - Dst: EVP_MD_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:286,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - m
    - from
    - to
    - arg
    argTypes:
    - EVP_MD*
    - char*
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 294
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 294
    functionName: list_md_fn
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_name
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: "list_md_fn(const EVP_MD *m,\n                       const char *from,
      const char *to, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:327,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:328,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:332,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:335,1
    - Dst: list_type
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:338,1
    - Dst: list_type
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:341,1
    - Dst: EVP_MD_do_all_sorted
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:344,1
    - Dst: list_type
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:347,1
    - Dst: EVP_CIPHER_do_all_sorted
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:350,1
    - Dst: list_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:353,1
    - Dst: list_disabled
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:356,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:363,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 368
      start: 321
    functionDepth: 5
    functionLinenumber: 321
    functionLinenumberEnd: 368
    functionName: list_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c
    functionUses: 0
    functionsReached:
    - opt_init
    - list_disabled
    - EVP_MD_do_all_sorted
    - list_pkey
    - opt_next
    - opt_help
    - list_type
    - EVP_CIPHER_do_all_sorted
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: list_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:383,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:384,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:387,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:390,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:395,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:396,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:400,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:406,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:412,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:415,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:419,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:423,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:425,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 427
      start: 375
    functionDepth: 5
    functionLinenumber: 375
    functionLinenumberEnd: 427
    functionName: help_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c
    functionUses: 0
    functionsReached:
    - opt_init
    - opt_next
    - opt_help
    - opt_num_rest
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: help_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 432
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 432
    functionName: exit_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: exit_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:442,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:443,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:445,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ft
    argTypes:
    - FUNC_TYPE
    constantsTouched: []
    func_position:
      end: 446
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 446
    functionName: list_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: list_type(FUNC_TYPE ft)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_asn1_get_count
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:497,1
    - Dst: EVP_PKEY_asn1_get0
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:501,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:502,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:505,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:505,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:506,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:507,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:509,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:510,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:513,1
    - Dst: OBJ_nid2ln
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:513,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 520
      start: 493
    functionDepth: 2
    functionLinenumber: 493
    functionLinenumberEnd: 520
    functionName: list_pkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c
    functionUses: 1
    functionsReached:
    - OBJ_nid2ln
    - EVP_PKEY_asn1_get_count
    - EVP_PKEY_asn1_get0
    - EVP_PKEY_asn1_get0_info
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: list_pkey(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FUNCTION*
    - FUNCTION*
    constantsTouched: []
    func_position:
      end: 525
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 525
    functionName: function_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: function_cmp(const FUNCTION * a, const FUNCTION * b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_LH_strhash
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - FUNCTION*
    constantsTouched: []
    func_position:
      end: 530
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 530
    functionName: function_hash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_strhash
    linkageType: ''
    returnType: unsigned long
    signature: function_hash(const FUNCTION * a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - _f1
    - _f2
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 540
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 540
    functionName: SortFnByName
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: SortFnByName(const void *_f1, const void *_f2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:544,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:546,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:549,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:552,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:555,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:558,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:561,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:564,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:567,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:570,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:573,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:576,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:579,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:582,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:585,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:588,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:591,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:594,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:597,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:600,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:603,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:606,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:609,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:612,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:615,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:618,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:621,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:624,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:627,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:630,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:633,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:636,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:639,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:642,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:645,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:648,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:651,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:654,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:657,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:660,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:663,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:666,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:669,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:672,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 677
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 677
    functionName: list_disabled
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c
    functionUses: 1
    functionsReached:
    - BIO_puts
    linkageType: ''
    returnType: void
    signature: list_disabled(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LHASH_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:681,1
    - Dst: qsort
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:687,1
    - Dst: lh_FUNCTION_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:689,1
    - Dst: lh_FUNCTION_insert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c:693,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 695
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 695
    functionName: prog_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c
    functionUses: 1
    functionsReached:
    - lh_FUNCTION_new
    - lh_FUNCTION_insert
    - LHASH_OF
    - qsort
    linkageType: ''
    returnType: LHASH_OF
    signature: '*prog_init(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - val
    - list
    - def
    argTypes:
    - int
    - STRINT_PAIR*
    - char*
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: lookup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*lookup(int val, const STRINT_PAIR* list, const char* def)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_get_current_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:49,1
    - Dst: X509_STORE_CTX_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:50,1
    - Dst: X509_STORE_CTX_get_error_depth
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:51,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:54,1
    - Dst: X509_NAME_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:56,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:57,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:59,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:61,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:64,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:65,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:77,1
    - Dst: X509_NAME_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:78,1
    - Dst: X509_get_issuer_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:78,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:80,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:84,1
    - Dst: ASN1_TIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:85,1
    - Dst: X509_get0_notBefore
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:85,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:86,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:90,1
    - Dst: ASN1_TIME_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:91,1
    - Dst: X509_get0_notAfter
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:91,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:92,1
    - Dst: policies_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:96,1
    - Dst: policies_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:100,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:102,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 2
    argNames:
    - ok
    - ctx
    argTypes:
    - int
    - X509_STORE_CTX*
    constantsTouched: []
    func_position:
      end: 104
      start: 44
    functionDepth: 7
    functionLinenumber: 44
    functionLinenumberEnd: 104
    functionName: verify_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 2
    functionsReached:
    - policies_print
    - BIO_puts
    - X509_get_subject_name
    - X509_NAME_print_ex
    - X509_get0_notBefore
    - ASN1_TIME_print
    - X509_get0_notAfter
    - X509_STORE_CTX_get_error
    - X509_STORE_CTX_get_current_cert
    - X509_STORE_CTX_get_error_depth
    - BIO_printf
    - X509_verify_cert_error_string
    - X509_get_issuer_name
    linkageType: ''
    returnType: int
    signature: verify_callback(int ok, X509_STORE_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_use_certificate_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:109,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:111,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:113,1
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:118,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:119,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:121,1
    - Dst: SSL_CTX_check_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:134,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - cert_file
    - key_file
    argTypes:
    - SSL_CTX*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 141
      start: 106
    functionDepth: 5
    functionLinenumber: 106
    functionLinenumberEnd: 141
    functionName: set_cert_stuff
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_use_certificate_file
    - SSL_CTX_use_PrivateKey_file
    - ERR_print_errors
    - SSL_CTX_check_private_key
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: set_cert_stuff(SSL_CTX *ctx, char *cert_file, char *key_file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:201,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:207,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:209,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:211,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - bio
    - s
    argTypes:
    - BIO*
    - SSL*
    constantsTouched: []
    func_position:
      end: 214
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 214
    functionName: ssl_print_client_cert_types
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - BIO_puts
    linkageType: ''
    returnType: void
    signature: ssl_print_client_cert_types(BIO *bio, SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_is_server
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:219,1
    - Dst: SSL_get_shared_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:221,1
    - Dst: SSL_get_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:223,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:228,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:231,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:232,1
    - Dst: SSL_get_shared_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:238,1
    - Dst: SSL_get_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:241,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:243,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:251,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:253,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:255,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:255,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:257,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:259,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - out
    - s
    - shared
    argTypes:
    - BIO*
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 261
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 261
    functionName: do_print_sigalgs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - SSL_is_server
    - BIO_puts
    - OBJ_nid2sn
    - SSL_get_sigalgs
    - SSL_get_shared_sigalgs
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: do_print_sigalgs(BIO *out, SSL *s, int shared)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_is_server
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:266,1
    - Dst: ssl_print_client_cert_types
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:267,1
    - Dst: do_print_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:268,1
    - Dst: do_print_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:269,1
    - Dst: SSL_get_peer_signature_nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:270,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:271,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - out
    - s
    argTypes:
    - BIO*
    - SSL*
    constantsTouched: []
    func_position:
      end: 273
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 273
    functionName: ssl_print_sigalgs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 3
    functionsReached:
    - do_print_sigalgs
    - SSL_is_server
    - OBJ_nid2sn
    - ssl_print_client_cert_types
    - SSL_get_peer_signature_nid
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: ssl_print_sigalgs(BIO *out, SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get0_ec_point_formats
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:280,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:283,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:286,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:289,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:293,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:297,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:301,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:306,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - out
    - s
    argTypes:
    - BIO*
    - SSL*
    constantsTouched: []
    func_position:
      end: 308
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 308
    functionName: ssl_print_point_formats
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    - SSL_get0_ec_point_formats
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: ssl_print_point_formats(BIO *out, SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get1_curves
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:315,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:318,1
    - Dst: SSL_get1_curves
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:319,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:321,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:324,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:328,1
    - Dst: EC_curve_nid2nist
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:331,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:333,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:334,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:337,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:339,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:342,1
    - Dst: SSL_get_shared_curve
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:343,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:346,1
    - Dst: SSL_get_shared_curve
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:347,1
    - Dst: EC_curve_nid2nist
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:348,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:350,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:351,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:354,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:355,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - out
    - s
    - noshared
    argTypes:
    - BIO*
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 357
      start: 310
    functionDepth: 6
    functionLinenumber: 310
    functionLinenumberEnd: 357
    functionName: ssl_print_curves
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 2
    functionsReached:
    - BIO_puts
    - EC_curve_nid2nist
    - SSL_get1_curves
    - app_malloc
    - OBJ_nid2sn
    - OPENSSL_free
    - BIO_printf
    - SSL_get_shared_curve
    linkageType: ''
    returnType: int
    signature: ssl_print_curves(BIO *out, SSL *s, int noshared)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_server_tmp_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:362,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:364,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:365,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:367,1
    - Dst: EVP_PKEY_bits
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:367,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:371,1
    - Dst: EVP_PKEY_bits
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:371,1
    - Dst: EVP_PKEY_get1_EC_KEY
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:376,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:379,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:379,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:380,1
    - Dst: EC_curve_nid2nist
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:381,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:383,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:384,1
    - Dst: EVP_PKEY_bits
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:384,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:389,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:389,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:389,1
    - Dst: EVP_PKEY_bits
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:390,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:392,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - out
    - s
    argTypes:
    - BIO*
    - SSL*
    constantsTouched: []
    func_position:
      end: 394
      start: 359
    functionDepth: 4
    functionLinenumber: 359
    functionLinenumberEnd: 394
    functionName: ssl_print_tmp_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 1
    functionsReached:
    - SSL_get_server_tmp_key
    - BIO_puts
    - EVP_PKEY_get1_EC_KEY
    - EC_GROUP_get_curve_name
    - EC_KEY_free
    - EVP_PKEY_id
    - EVP_PKEY_bits
    - EC_curve_nid2nist
    - OBJ_nid2sn
    - BIO_printf
    - EC_KEY_get0_group
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: ssl_print_tmp_key(BIO *out, SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_callback_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:401,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:406,1
    - Dst: BIO_dump
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:408,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:411,1
    - Dst: BIO_dump
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:413,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - bio
    - cmd
    - argp
    - argi
    - argl
    - ret
    argTypes:
    - BIO*
    - int
    - char*
    - int
    - long
    - long
    constantsTouched: []
    func_position:
      end: 416
      start: 396
    functionDepth: 3
    functionLinenumber: 396
    functionLinenumberEnd: 416
    functionName: bio_dump_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - BIO_dump
    - BIO_printf
    - BIO_get_callback_arg
    linkageType: ''
    returnType: long
    signature: "bio_dump_callback(BIO *bio, int cmd, const char *argp,\n                       int
      argi, long argl, long ret)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:433,1
    - Dst: SSL_state_string_long
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:433,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:436,1
    - Dst: SSL_alert_type_string_long
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:438,1
    - Dst: SSL_alert_desc_string_long
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:439,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:442,1
    - Dst: SSL_state_string_long
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:443,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:445,1
    - Dst: SSL_state_string_long
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:446,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - s
    - where
    - ret
    argTypes:
    - SSL*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 449
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 449
    functionName: apps_ssl_info_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - SSL_alert_type_string_long
    - SSL_alert_desc_string_long
    - SSL_state_string_long
    linkageType: ''
    returnType: void
    signature: apps_ssl_info_callback(const SSL *s, int where, int ret)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lookup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:542,1
    - Dst: lookup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:549,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:573,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:580,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:584,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:585,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:588,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:589,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:591,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 59
    argCount: 7
    argNames:
    - write_p
    - version
    - content_type
    - buf
    - len
    - ssl
    - arg
    argTypes:
    - int
    - int
    - int
    - void*
    - size_t
    - SSL*
    - void*
    constantsTouched: []
    func_position:
      end: 592
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 592
    functionName: msg_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - BIO_flush
    - BIO_printf
    - lookup
    linkageType: ''
    returnType: void
    signature: "msg_cb(int write_p, int version, int content_type, const void *buf,\n
      \           size_t len, SSL *ssl, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:637,1
    - Dst: BIO_dump
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:639,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - s
    - client_server
    - type
    - data
    - len
    - arg
    argTypes:
    - SSL*
    - int
    - int
    - unsigned char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 641
      start: 631
    functionDepth: 3
    functionLinenumber: 631
    functionLinenumberEnd: 641
    functionName: tlsext_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - BIO_dump
    - BIO_flush
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: "tlsext_cb(SSL *s, int client_server, int type,\n               const
      unsigned char *data, int len, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:654,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:655,1
    - Dst: BIO_ADDR_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:661,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:663,1
    - Dst: BIO_dgram_get_peer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:668,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:668,1
    - Dst: BIO_ADDR_rawaddress
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:671,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:672,1
    - Dst: BIO_ADDR_rawport
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:673,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:675,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:677,1
    - Dst: BIO_ADDR_rawaddress
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:678,1
    - Dst: HMAC
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:681,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:681,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:684,1
    - Dst: BIO_ADDR_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:685,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 688
      start: 644
    functionDepth: 6
    functionLinenumber: 644
    functionLinenumberEnd: 688
    functionName: generate_cookie_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - BIO_ADDR_rawport
    - RAND_bytes
    - EVP_sha1
    - BIO_ADDR_new
    - BIO_dgram_get_peer
    - OPENSSL_assert
    - HMAC
    - app_malloc
    - SSL_get_rbio
    - OPENSSL_free
    - memcpy
    - BIO_ADDR_free
    - BIO_ADDR_rawaddress
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "generate_cookie_callback(SSL *ssl, unsigned char *cookie,\n                             unsigned
      int *cookie_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: generate_cookie_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:699,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:701,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 705
      start: 690
    functionDepth: 7
    functionLinenumber: 690
    functionLinenumberEnd: 705
    functionName: verify_cookie_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - memcmp
    - generate_cookie_callback
    linkageType: ''
    returnType: int
    signature: "verify_cookie_callback(SSL *ssl, const unsigned char *cookie,\n                           unsigned
      int cookie_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:747,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:750,1
    - Dst: SSL_set_cert_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:751,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:752,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:754,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - s
    - flags
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 755
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 755
    functionName: print_chain_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - SSL_set_cert_flags
    - BIO_printf
    - BIO_puts
    linkageType: ''
    returnType: void
    signature: print_chain_flags(SSL *s, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:769,1
    - Dst: SSL_certs_clear
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:775,1
    - Dst: SSL_check_chain
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:791,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:792,1
    - Dst: X509_NAME_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:793,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:793,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:795,1
    - Dst: print_chain_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:796,1
    - Dst: SSL_use_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:798,1
    - Dst: SSL_use_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:799,1
    - Dst: SSL_build_cert_chain
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:808,1
    - Dst: SSL_set1_chain
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:811,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - ssl
    - arg
    argTypes:
    - SSL*
    - void*
    constantsTouched: []
    func_position:
      end: 816
      start: 761
    functionDepth: 7
    functionLinenumber: 761
    functionLinenumberEnd: 816
    functionName: set_cert_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - SSL_set1_chain
    - SSL_certs_clear
    - SSL_use_certificate
    - SSL_check_chain
    - BIO_puts
    - SSL_use_PrivateKey
    - X509_get_subject_name
    - X509_NAME_print_ex
    - SSL_build_cert_chain
    - BIO_printf
    - print_chain_flags
    linkageType: ''
    returnType: int
    signature: set_cert_cb(SSL *ssl, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_cert_cb
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - exc
    argTypes:
    - SSL_CTX*
    - SSL_EXCERT*
    constantsTouched: []
    func_position:
      end: 821
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 821
    functionName: ssl_ctx_set_excert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_set_cert_cb
    linkageType: ''
    returnType: void
    signature: ssl_ctx_set_excert(SSL_CTX *ctx, SSL_EXCERT *exc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:825,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - pexc
    argTypes:
    - SSL_EXCERT**
    constantsTouched: []
    func_position:
      end: 842
      start: 823
    functionDepth: 6
    functionLinenumber: 823
    functionLinenumberEnd: 842
    functionName: ssl_excert_prepend
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - memset
    - app_malloc
    linkageType: ''
    returnType: int
    signature: ssl_excert_prepend(SSL_EXCERT **pexc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:851,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:852,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:853,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:856,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - exc
    argTypes:
    - SSL_EXCERT*
    constantsTouched: []
    func_position:
      end: 858
      start: 844
    functionDepth: 2
    functionLinenumber: 844
    functionLinenumberEnd: 858
    functionName: ssl_excert_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - sk_X509_pop_free
    - OPENSSL_free
    - EVP_PKEY_free
    - X509_free
    linkageType: ''
    returnType: void
    signature: ssl_excert_free(SSL_EXCERT *exc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_excert_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:867,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:873,1
    - Dst: load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:876,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:881,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:884,1
    - Dst: load_certs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:890,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - pexc
    argTypes:
    - SSL_EXCERT**
    constantsTouched: []
    func_position:
      end: 896
      start: 860
    functionDepth: 7
    functionLinenumber: 860
    functionLinenumberEnd: 896
    functionName: load_excert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 1
    functionsReached:
    - load_certs
    - ssl_excert_free
    - load_key
    - load_cert
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: load_excert(SSL_EXCERT **pexc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:904,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:905,1
    - Dst: ssl_excert_prepend
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:908,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:909,1
    - Dst: opt_getprog
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:910,1
    - Dst: ssl_excert_prepend
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:921,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:922,1
    - Dst: opt_getprog
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:922,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:926,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:930,1
    - Dst: opt_getprog
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:930,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:933,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:937,1
    - Dst: opt_getprog
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:938,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:941,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:947,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:947,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:951,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:951,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:958,1
    - Dst: ssl_excert_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:959,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 2
    argNames:
    - opt
    - pexc
    argTypes:
    - int
    - SSL_EXCERT**
    constantsTouched: []
    func_position:
      end: 962
      start: 900
    functionDepth: 7
    functionLinenumber: 900
    functionLinenumberEnd: 962
    functionName: args_excert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 1
    functionsReached:
    - ssl_excert_free
    - ERR_print_errors
    - ssl_excert_prepend
    - opt_arg
    - opt_getprog
    - BIO_printf
    - assert
    - opt_format
    linkageType: ''
    returnType: int
    signature: args_excert(int opt, SSL_EXCERT **pexc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_is_server
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:969,1
    - Dst: SSL_get0_raw_cipherlist
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:971,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:972,1
    - Dst: SSL_get0_raw_cipherlist
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:973,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:974,1
    - Dst: SSL_CIPHER_find
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:976,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:978,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:980,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:980,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:981,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:982,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:985,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:987,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:990,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 991
      start: 964
    functionDepth: 2
    functionLinenumber: 964
    functionLinenumberEnd: 991
    functionName: print_raw_cipherlist
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - SSL_is_server
    - SSL_CIPHER_find
    - memcmp
    - BIO_puts
    - OPENSSL_assert
    - BIO_printf
    - SSL_get0_raw_cipherlist
    - SSL_CIPHER_get_name
    linkageType: ''
    returnType: void
    signature: print_raw_cipherlist(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1005,1
    - Dst: opt_getprog
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1006,1
    - Dst: exit
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1007,1
    - Dst: app_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1009,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1017
      start: 996
    functionDepth: 6
    functionLinenumber: 996
    functionLinenumberEnd: 1017
    functionName: hexencode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - exit
    - opt_getprog
    - app_malloc
    linkageType: ''
    returnType: char
    signature: '*hexencode(const unsigned char *data, size_t len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1028,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1030,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1034,1
    - Dst: SSL_get0_dane_authority
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1037,1
    - Dst: SSL_get0_dane_tlsa
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1043,1
    - Dst: hexencode
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1054,1
    - Dst: hexencode
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1056,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1057,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1063,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - s
    - bio
    argTypes:
    - SSL*
    - BIO*
    constantsTouched: []
    func_position:
      end: 1065
      start: 1019
    functionDepth: 7
    functionLinenumber: 1019
    functionLinenumberEnd: 1065
    functionName: print_verify_detail
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 1
    functionsReached:
    - hexencode
    - SSL_get0_dane_tlsa
    - SSL_get0_dane_authority
    - BIO_printf
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: print_verify_detail(SSL *s, BIO *bio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1073,1
    - Dst: SSL_get_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1073,1
    - Dst: print_raw_cipherlist
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1074,1
    - Dst: SSL_get_current_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1075,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1076,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1076,1
    - Dst: do_print_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1077,1
    - Dst: SSL_get_peer_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1078,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1082,1
    - Dst: X509_NAME_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1083,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1083,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1085,1
    - Dst: SSL_get_peer_signature_nid
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1086,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1087,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1087,1
    - Dst: print_verify_detail
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1088,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1090,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1091,1
    - Dst: ssl_print_point_formats
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1093,1
    - Dst: SSL_is_server
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1094,1
    - Dst: ssl_print_curves
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1095,1
    - Dst: ssl_print_tmp_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1097,1
    - Dst: SSL_is_server
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1099,1
    - Dst: ssl_print_tmp_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1102
      start: 1067
    functionDepth: 8
    functionLinenumber: 1067
    functionLinenumberEnd: 1102
    functionName: print_ssl_summary
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 3
    functionsReached:
    - do_print_sigalgs
    - SSL_get_current_cipher
    - SSL_is_server
    - BIO_puts
    - SSL_get_peer_certificate
    - X509_get_subject_name
    - X509_NAME_print_ex
    - OBJ_nid2sn
    - print_raw_cipherlist
    - ssl_print_curves
    - ssl_print_point_formats
    - X509_free
    - ssl_print_tmp_key
    - SSL_get_peer_signature_nid
    - BIO_printf
    - SSL_get_version
    - SSL_CIPHER_get_name
    - print_verify_detail
    linkageType: ''
    returnType: void
    signature: print_ssl_summary(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1160,1
    - Dst: X509_STORE_load_locations
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1163,1
    - Dst: add_crls_store
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1165,1
    - Dst: SSL_CTX_set1_verify_cert_store
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1166,1
    - Dst: store_setup_crl_download
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1168,1
    - Dst: X509_STORE_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1171,1
    - Dst: X509_STORE_load_locations
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1174,1
    - Dst: SSL_CTX_set1_chain_cert_store
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1176,1
    - Dst: X509_STORE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1180,1
    - Dst: X509_STORE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1181,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 7
    argNames:
    - ctx
    - vfyCApath
    - vfyCAfile
    - chCApath
    - chCAfile
    - crls
    - crl_download
    argTypes:
    - SSL_CTX*
    - char*
    - char*
    - char*
    - char*
    - STACK_OF*
    - int
    constantsTouched: []
    func_position:
      end: 1183
      start: 1152
    functionDepth: 3
    functionLinenumber: 1152
    functionLinenumberEnd: 1183
    functionName: ssl_load_stores
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 1
    functionsReached:
    - X509_STORE_free
    - SSL_CTX_set1_chain_cert_store
    - SSL_CTX_set1_verify_cert_store
    - X509_STORE_new
    - X509_STORE_load_locations
    - add_crls_store
    - store_setup_crl_download
    linkageType: ''
    returnType: int
    signature: "ssl_load_stores(SSL_CTX *ctx,\n                    const char *vfyCApath,
      const char *vfyCAfile,\n                    const char *chCApath, const char
      *chCAfile,\n                    STACK_OF(X509_CRL) *crls, int crl_download)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: security_debug_ex*::old_cb
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1226,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1229,1
    - Dst: lookup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1231,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1239,1
    - Dst: lookup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1239,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1249,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1254,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1254,1
    - Dst: EC_curve_nid2nist
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1261,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1263,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1264,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1272,1
    - Dst: DH_bits
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1272,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1280,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1280,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1282,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1284,1
    - Dst: EVP_PKEY_get0_asn1
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1285,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1286,1
    - Dst: EVP_PKEY_bits
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1287,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1310,1
    - Dst: OBJ_nid2sn
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1310,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1312,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1314,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1321,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1322,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 74
    argCount: 7
    argNames:
    - s
    - ctx
    - op
    - bits
    - nid
    - other
    - ex
    argTypes:
    - SSL*
    - SSL_CTX*
    - int
    - int
    - int
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 1324
      start: 1219
    functionDepth: 3
    functionLinenumber: 1219
    functionLinenumberEnd: 1324
    functionName: security_callback_debug
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 0
    functionsReached:
    - security_debug_ex*::old_cb
    - BIO_puts
    - EC_curve_nid2nist
    - X509_get0_pubkey
    - EVP_PKEY_get0_asn1
    - EVP_PKEY_bits
    - OBJ_nid2sn
    - EVP_PKEY_asn1_get0_info
    - DH_bits
    - BIO_printf
    - SSL_CIPHER_get_name
    - lookup
    linkageType: ''
    returnType: int
    signature: "security_callback_debug(const SSL *s, const SSL_CTX *ctx,\n                                   int
      op, int bits, int nid,\n                                   void *other, void
      *ex)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get_security_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1332,1
    - Dst: SSL_CTX_set_security_callback
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1333,1
    - Dst: SSL_CTX_set0_security_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c:1334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - verbose
    argTypes:
    - SSL_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 1335
      start: 1326
    functionDepth: 1
    functionLinenumber: 1326
    functionLinenumberEnd: 1335
    functionName: ssl_ctx_security_debug
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_set_security_callback
    - SSL_CTX_set0_security_ex_data
    - SSL_CTX_get_security_callback
    linkageType: ''
    returnType: void
    signature: ssl_ctx_security_debug(SSL_CTX *ctx, int verbose)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:190,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:191,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:192,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:193,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:194,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:220,1
    - Dst: sk_OCSP_CERTID_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:223,1
    - Dst: X509_VERIFY_PARAM_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:226,1
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:229,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:230,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:235,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:239,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:242,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:246,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:246,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:250,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:251,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:252,1
    - Dst: OCSP_parse_url
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:254,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:254,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:255,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:263,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:266,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:323,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:326,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:329,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:332,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:336,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:339,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:342,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:345,1
    - Dst: opt_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:354,1
    - Dst: opt_long
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:359,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:359,1
    - Dst: opt_long
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:362,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:362,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:365,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:368,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:371,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:374,1
    - Dst: load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:377,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:377,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:381,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:384,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:387,1
    - Dst: load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:388,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:388,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:392,1
    - Dst: add_ocsp_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:393,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:395,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:395,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:401,1
    - Dst: add_ocsp_serial
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:402,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:402,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:404,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:404,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:409,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:412,1
    - Dst: opt_int
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:415,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:415,1
    - Dst: opt_int
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:420,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:420,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:423,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:423,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:426,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:429,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:432,1
    - Dst: opt_md
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:435,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:435,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:439,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:440,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:442,1
    - Dst: X509V3_add_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:446,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:451,1
    - Dst: opt_md
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:456,1
    - Dst: opt_unknown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:456,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:464,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:468,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:476,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:484,1
    - Dst: d2i_OCSP_REQUEST_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:487,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:488,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:490,1
    - Dst: init_responder
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:496,1
    - Dst: load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:504,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:506,1
    - Dst: load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:509,1
    - Dst: load_certs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:511,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:515,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:521,1
    - Dst: do_responder
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:526,1
    - Dst: OCSP_response_create
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:530,1
    - Dst: send_ocsp_response
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:532,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:538,1
    - Dst: OCSP_request_add1_nonce
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:543,1
    - Dst: load_cert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:548,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:550,1
    - Dst: load_certs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:554,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:558,1
    - Dst: OCSP_request_sign
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:563,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:565,1
    - Dst: OCSP_REQUEST_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:571,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:574,1
    - Dst: i2d_OCSP_REQUEST_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:577,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:578,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:582,1
    - Dst: load_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:588,1
    - Dst: index_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:591,1
    - Dst: make_ocsp_response
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:596,1
    - Dst: send_ocsp_response
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:599,1
    - Dst: process_responder
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:602,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:607,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:612,1
    - Dst: d2i_OCSP_RESPONSE_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:615,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:616,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:618,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:629,1
    - Dst: i2d_OCSP_RESPONSE_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:632,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:633,1
    - Dst: OCSP_response_status
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:636,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:638,1
    - Dst: OCSP_response_status_str
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:639,1
    - Dst: OCSP_RESPONSE_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:647,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:656,1
    - Dst: OCSP_REQUEST_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:658,1
    - Dst: OCSP_RESPONSE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:660,1
    - Dst: setup_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:670,1
    - Dst: X509_STORE_set1_param
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:675,1
    - Dst: load_certs
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:677,1
    - Dst: OCSP_response_get1_basic
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:682,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:684,1
    - Dst: OCSP_check_nonce
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:691,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:693,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:695,1
    - Dst: OCSP_basic_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:701,1
    - Dst: OCSP_basic_verify
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:703,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:705,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:708,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:709,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:712,1
    - Dst: print_ocsp_summary
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:716,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:719,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:720,1
    - Dst: X509_STORE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:721,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:722,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:723,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:724,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:725,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:726,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:727,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:728,1
    - Dst: free_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:729,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:730,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:731,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:732,1
    - Dst: OCSP_REQUEST_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:733,1
    - Dst: OCSP_RESPONSE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:734,1
    - Dst: OCSP_BASICRESP_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:735,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:736,1
    - Dst: sk_OCSP_CERTID_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:737,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:738,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:739,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:740,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:741,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:742,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:743,1
    CyclomaticComplexity: 215
    EdgeCount: 215
    ICount: 534
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 746
      start: 180
    functionDepth: 7
    functionLinenumber: 180
    functionLinenumberEnd: 746
    functionName: ocsp_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c
    functionUses: 0
    functionsReached:
    - opt_verify
    - make_ocsp_response
    - load_index
    - sk_X509_pop_free
    - atoi
    - X509V3_add_value
    - load_key
    - OCSP_response_status_str
    - X509_STORE_set1_param
    - X509_VERIFY_PARAM_free
    - setup_verify
    - OCSP_BASICRESP_free
    - BIO_printf
    - send_ocsp_response
    - EVP_PKEY_free
    - sk_OPENSSL_STRING_free
    - opt_init
    - sk_OPENSSL_STRING_push
    - EVP_sha1
    - add_ocsp_serial
    - load_certs
    - add_ocsp_cert
    - OCSP_parse_url
    - opt_next
    - free_index
    - d2i_OCSP_REQUEST_bio
    - OCSP_check_nonce
    - BIO_free
    - sk_OCSP_CERTID_new_null
    - init_responder
    - OCSP_REQUEST_print
    - X509_free
    - sk_X509_push
    - opt_num_rest
    - OCSP_RESPONSE_free
    - sk_CONF_VALUE_pop_free
    - do_responder
    - X509_STORE_free
    - sk_OCSP_CERTID_free
    - opt_arg
    - opt_long
    - OCSP_response_get1_basic
    - OPENSSL_free
    - X509_VERIFY_PARAM_new
    - sk_X509_new_null
    - opt_md
    - opt_unknown
    - index_index
    - OCSP_RESPONSE_print
    - OCSP_basic_verify
    - ERR_clear_error
    - i2d_OCSP_RESPONSE_bio
    - print_ocsp_summary
    - process_responder
    - d2i_OCSP_RESPONSE_bio
    - STACK_OF
    - BIO_free_all
    - bio_open_default
    - OCSP_request_sign
    - opt_help
    - OCSP_REQUEST_free
    - strchr
    - OCSP_request_add1_nonce
    - ERR_print_errors
    - load_cert
    - OCSP_response_status
    - OCSP_response_create
    - i2d_OCSP_REQUEST_bio
    - opt_int
    - sk_OPENSSL_STRING_new_null
    linkageType: ''
    returnType: int
    signature: ocsp_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:754,1
    - Dst: OCSP_REQUEST_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:758,1
    - Dst: OCSP_cert_to_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:761,1
    - Dst: sk_OCSP_CERTID_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:762,1
    - Dst: OCSP_request_add0_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:764,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:769,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 5
    argNames:
    - req
    - cert
    - cert_id_md
    - issuer
    - ids
    argTypes:
    - OCSP_REQUEST**
    - X509*
    - EVP_MD*
    - X509*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 771
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 771
    functionName: add_ocsp_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c
    functionUses: 1
    functionsReached:
    - OCSP_REQUEST_new
    - OCSP_cert_to_id
    - sk_OCSP_CERTID_push
    - BIO_printf
    - OCSP_request_add0_id
    linkageType: ''
    returnType: int
    signature: "add_ocsp_cert(OCSP_REQUEST **req, X509 *cert,\n                         const
      EVP_MD *cert_id_md, X509 *issuer,\n                         STACK_OF(OCSP_CERTID)
      *ids)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:782,1
    - Dst: OCSP_REQUEST_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:786,1
    - Dst: X509_get_subject_name
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:789,1
    - Dst: X509_get0_pubkey_bitstr
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:790,1
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:791,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:793,1
    - Dst: OCSP_cert_id_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:796,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:797,1
    - Dst: sk_OCSP_CERTID_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:798,1
    - Dst: OCSP_request_add0_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:800,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:805,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 5
    argNames:
    - req
    - serial
    - cert_id_md
    - issuer
    - ids
    argTypes:
    - OCSP_REQUEST**
    - char*
    - EVP_MD*
    - X509*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 807
      start: 773
    functionDepth: 6
    functionLinenumber: 773
    functionLinenumberEnd: 807
    functionName: add_ocsp_serial
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c
    functionUses: 1
    functionsReached:
    - X509_get0_pubkey_bitstr
    - OCSP_cert_id_new
    - OCSP_REQUEST_new
    - X509_get_subject_name
    - sk_OCSP_CERTID_push
    - s2i_ASN1_INTEGER
    - BIO_printf
    - ASN1_INTEGER_free
    - OCSP_request_add0_id
    linkageType: ''
    returnType: int
    signature: "add_ocsp_serial(OCSP_REQUEST **req, char *serial,\n                           const
      EVP_MD *cert_id_md, X509 *issuer,\n                           STACK_OF(OCSP_CERTID)
      *ids)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_request_onereq_count
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:877,1
    - Dst: OCSP_response_create
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:881,1
    - Dst: OCSP_BASICRESP_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:885,1
    - Dst: X509_gmtime_adj
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:886,1
    - Dst: X509_time_adj_ex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:888,1
    - Dst: OCSP_request_onereq_get0
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:897,1
    - Dst: OCSP_onereq_get0_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:898,1
    - Dst: OCSP_id_get0_info
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:900,1
    - Dst: EVP_get_digestbyobj
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:902,1
    - Dst: OCSP_response_create
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:904,1
    - Dst: OCSP_CERTID_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:908,1
    - Dst: OCSP_cert_to_id
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:909,1
    - Dst: OCSP_id_issuer_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:912,1
    - Dst: OCSP_basic_add1_status
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:913,1
    - Dst: OCSP_id_get0_info
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:918,1
    - Dst: lookup_serial
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:919,1
    - Dst: OCSP_basic_add1_status
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:921,1
    - Dst: OCSP_basic_add1_status
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:925,1
    - Dst: unpack_revinfo
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:934,1
    - Dst: OCSP_basic_add1_status
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:935,1
    - Dst: OCSP_SINGLERESP_add1_ext_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:939,1
    - Dst: OCSP_SINGLERESP_add1_ext_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:942,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:945,1
    - Dst: ASN1_TIME_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:946,1
    - Dst: ASN1_GENERALIZEDTIME_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:947,1
    - Dst: OCSP_copy_nonce
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:951,1
    - Dst: OCSP_basic_sign
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:953,1
    - Dst: OCSP_resp_get0_signature
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:956,1
    - Dst: corrupt_signature
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:957,1
    - Dst: OCSP_response_create
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:960,1
    - Dst: ASN1_TIME_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:963,1
    - Dst: ASN1_TIME_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:964,1
    - Dst: OCSP_CERTID_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:965,1
    - Dst: OCSP_BASICRESP_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:966,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 57
    argCount: 12
    argNames:
    - resp
    - req
    - db
    - ca
    - rcert
    - rkey
    - rmd
    - rother
    - flags
    - nmin
    - ndays
    - badsig
    argTypes:
    - OCSP_RESPONSE**
    - OCSP_REQUEST*
    - CA_DB*
    - X509*
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    - STACK_OF*
    - unsigned long
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 967
      start: 866
    functionDepth: 6
    functionLinenumber: 866
    functionLinenumberEnd: 967
    functionName: make_ocsp_response
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c
    functionUses: 1
    functionsReached:
    - lookup_serial
    - OCSP_basic_sign
    - OCSP_request_onereq_get0
    - OCSP_id_get0_info
    - OCSP_BASICRESP_free
    - X509_time_adj_ex
    - OCSP_basic_add1_status
    - EVP_get_digestbyobj
    - OCSP_BASICRESP_new
    - ASN1_TIME_free
    - X509_gmtime_adj
    - ASN1_OBJECT_free
    - corrupt_signature
    - OCSP_request_onereq_count
    - OCSP_SINGLERESP_add1_ext_i2d
    - ASN1_GENERALIZEDTIME_free
    - OCSP_CERTID_free
    - unpack_revinfo
    - OCSP_copy_nonce
    - OCSP_id_issuer_cmp
    - OCSP_resp_get0_signature
    - OCSP_onereq_get0_id
    - OCSP_cert_to_id
    - OCSP_response_create
    linkageType: ''
    returnType: void
    signature: "make_ocsp_response(OCSP_RESPONSE **resp, OCSP_REQUEST *req,\n                              CA_DB
      *db, X509 *ca, X509 *rcert,\n                              EVP_PKEY *rkey, const
      EVP_MD *rmd,\n                              STACK_OF(X509) *rother, unsigned
      long flags,\n                              int nmin, int ndays, int badsig)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:976,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:977,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:979,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:980,1
    - Dst: BN_bn2hex
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:982,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:984,1
    - Dst: TXT_DB_get_by_index
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:985,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:986,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 988
      start: 969
    functionDepth: 6
    functionLinenumber: 969
    functionLinenumberEnd: 988
    functionName: lookup_serial
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c
    functionUses: 1
    functionsReached:
    - BN_free
    - OPENSSL_assert
    - BN_is_zero
    - ASN1_INTEGER_to_BN
    - BN_bn2hex
    - OPENSSL_strdup
    - TXT_DB_get_by_index
    - OPENSSL_free
    linkageType: ''
    returnType: char
    signature: '**lookup_serial(CA_DB *db, ASN1_INTEGER *ser)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:995,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1001,1
    - Dst: BIO_f_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1001,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1004,1
    - Dst: BIO_s_accept
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1004,1
    - Dst: BIO_set_bind_mode
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1006,1
    - Dst: BIO_set_accept_port
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1007,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1008,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1009,1
    - Dst: BIO_set_accept_bios
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1013,1
    - Dst: BIO_do_accept
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1015,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1016,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1017,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1024,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1025,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - port
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1028
      start: 992
    functionDepth: 5
    functionLinenumber: 992
    functionLinenumberEnd: 1028
    functionName: init_responder
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c
    functionUses: 1
    functionsReached:
    - BIO_set_accept_port
    - BIO_free_all
    - BIO_f_buffer
    - ERR_print_errors
    - BIO_do_accept
    - BIO_s_accept
    - BIO_free
    - BIO_set_bind_mode
    - BIO_printf
    - BIO_new
    - BIO_set_accept_bios
    linkageType: ''
    returnType: BIO
    signature: '*init_responder(const char *port)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isxdigit
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1042,1
    - Dst: _UC
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1042,1
    - Dst: isxdigit
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1042,1
    - Dst: _UC
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1042,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1044,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1045,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1053
      start: 1034
    functionDepth: 1
    functionLinenumber: 1034
    functionLinenumberEnd: 1053
    functionName: urldecode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c
    functionUses: 0
    functionsReached:
    - _UC
    - OPENSSL_hexchar2int
    - isxdigit
    linkageType: ''
    returnType: int
    signature: urldecode(char *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_do_accept
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1067,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1068,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1069,1
    - Dst: BIO_pop
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1073,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1077,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1080,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1085,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1094,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1095,1
    - Dst: urldecode
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1099,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1101,1
    - Dst: BIO_new_mem_buf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1104,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1105,1
    - Dst: BIO_f_base64
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1105,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1106,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1107,1
    - Dst: BIO_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1110,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1111,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1112,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1113,1
    - Dst: BIO_gets
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1119,1
    - Dst: d2i_OCSP_REQUEST_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1128,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1129,1
    - Dst: d2i_OCSP_REQUEST_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1131,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1134,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1135,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 3
    argNames:
    - preq
    - pcbio
    - acbio
    argTypes:
    - OCSP_REQUEST**
    - BIO**
    - BIO*
    constantsTouched: []
    func_position:
      end: 1142
      start: 1056
    functionDepth: 5
    functionLinenumber: 1056
    functionLinenumberEnd: 1142
    functionName: do_responder
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c
    functionUses: 1
    functionsReached:
    - BIO_push
    - BIO_f_base64
    - BIO_set_flags
    - BIO_free_all
    - ERR_print_errors
    - BIO_do_accept
    - strncmp
    - d2i_OCSP_REQUEST_bio
    - BIO_gets
    - BIO_new_mem_buf
    - BIO_pop
    - BIO_new
    - urldecode
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: do_responder(OCSP_REQUEST **preq, BIO **pcbio, BIO *acbio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1151,1
    - Dst: i2d_OCSP_RESPONSE
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1151,1
    - Dst: i2d_OCSP_RESPONSE_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1152,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cbio
    - resp
    argTypes:
    - BIO*
    - OCSP_RESPONSE*
    constantsTouched: []
    func_position:
      end: 1155
      start: 1144
    functionDepth: 2
    functionLinenumber: 1144
    functionLinenumberEnd: 1155
    functionName: send_ocsp_response
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c
    functionUses: 1
    functionsReached:
    - BIO_flush
    - BIO_printf
    - i2d_OCSP_RESPONSE
    - i2d_OCSP_RESPONSE_bio
    linkageType: ''
    returnType: int
    signature: send_ocsp_response(BIO *cbio, OCSP_RESPONSE *resp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_nbio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1173,1
    - Dst: BIO_do_connect
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1175,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1177,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1178,1
    - Dst: BIO_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1182,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1183,1
    - Dst: FD_ZERO
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1188,1
    - Dst: openssl_fdset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1189,1
    - Dst: select
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1192,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1194,1
    - Dst: OCSP_sendreq_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1199,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1203,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1204,1
    - Dst: strcasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1205,1
    - Dst: OCSP_REQ_CTX_add1_header
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1207,1
    - Dst: OCSP_REQ_CTX_add1_header
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1211,1
    - Dst: OCSP_REQ_CTX_set1_req
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1214,1
    - Dst: OCSP_sendreq_nbio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1218,1
    - Dst: FD_ZERO
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1223,1
    - Dst: openssl_fdset
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1224,1
    - Dst: BIO_should_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1227,1
    - Dst: select
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1228,1
    - Dst: BIO_should_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1229,1
    - Dst: select
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1230,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1232,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1236,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1240,1
    - Dst: OCSP_REQ_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1246,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 71
    argCount: 6
    argNames:
    - cbio
    - host
    - path
    - headers
    - req
    - req_timeout
    argTypes:
    - BIO*
    - char*
    - char*
    - STACK_OF*
    - OCSP_REQUEST*
    - int
    constantsTouched: []
    func_position:
      end: 1249
      start: 1158
    functionDepth: 4
    functionLinenumber: 1158
    functionLinenumberEnd: 1249
    functionName: query_responder
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c
    functionUses: 0
    functionsReached:
    - BIO_set_nbio
    - sk_CONF_VALUE_value
    - OCSP_REQ_CTX_add1_header
    - BIO_should_write
    - openssl_fdset
    - BIO_puts
    - OCSP_REQ_CTX_set1_req
    - BIO_should_retry
    - sk_CONF_VALUE_num
    - OCSP_sendreq_new
    - OCSP_REQ_CTX_free
    - BIO_get_fd
    - BIO_should_read
    - FD_ZERO
    - strcasecmp
    - OCSP_sendreq_nbio
    - select
    - BIO_do_connect
    linkageType: ''
    returnType: OCSP_RESPONSE
    signature: "*query_responder(BIO *cbio, const char *host,\n                                      const
      char *path,\n                                      const STACK_OF(CONF_VALUE)
      *headers,\n                                      OCSP_REQUEST *req, int req_timeout)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_connect
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1261,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1263,1
    - Dst: BIO_set_conn_port
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1267,1
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1270,1
    - Dst: TLS_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1270,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1272,1
    - Dst: SSL_CTX_set_mode
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1275,1
    - Dst: BIO_new_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1276,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1277,1
    - Dst: query_responder
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1280,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1282,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1284,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c:1285,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 7
    argNames:
    - req
    - host
    - path
    - port
    - use_ssl
    - headers
    - req_timeout
    argTypes:
    - OCSP_REQUEST*
    - char*
    - char*
    - char*
    - int
    - STACK_OF*
    - int
    constantsTouched: []
    func_position:
      end: 1287
      start: 1251
    functionDepth: 5
    functionLinenumber: 1251
    functionLinenumberEnd: 1287
    functionName: process_responder
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c
    functionUses: 2
    functionsReached:
    - BIO_set_conn_port
    - BIO_push
    - BIO_new_connect
    - SSL_CTX_set_mode
    - BIO_new_ssl
    - BIO_free_all
    - SSL_CTX_free
    - query_responder
    - TLS_client_method
    - BIO_printf
    - SSL_CTX_new
    linkageType: ''
    returnType: OCSP_RESPONSE
    signature: "*process_responder(OCSP_REQUEST *req,\n                                 const
      char *host, const char *path,\n                                 const char *port,
      int use_ssl,\n                                 STACK_OF(CONF_VALUE) *headers,\n
      \                                int req_timeout)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:59,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:60,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:64,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:67,1
    - Dst: OpenSSL_version_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:100,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:101,1
    - Dst: OpenSSL_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:101,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:103,1
    - Dst: OpenSSL_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:104,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:108,1
    - Dst: OpenSSL_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:108,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:110,1
    - Dst: OpenSSL_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:110,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:112,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:113,1
    - Dst: BN_options
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:113,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:115,1
    - Dst: MD2_options
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:115,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:118,1
    - Dst: RC4_options
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:118,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:121,1
    - Dst: DES_options
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:121,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:124,1
    - Dst: IDEA_options
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:124,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:127,1
    - Dst: BF_options
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:127,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:129,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:132,1
    - Dst: OpenSSL_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:132,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:134,1
    - Dst: OpenSSL_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:134,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:136,1
    - Dst: OpenSSL_version
      Src: /src/openweave-core/third_party/openssl/openssl/apps/version.c:136,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 73
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 140
      start: 51
    functionDepth: 5
    functionLinenumber: 51
    functionLinenumberEnd: 140
    functionName: version_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/version.c
    functionUses: 0
    functionsReached:
    - opt_init
    - BN_options
    - opt_next
    - MD2_options
    - opt_help
    - RC4_options
    - printf
    - DES_options
    - IDEA_options
    - OpenSSL_version_num
    - BIO_printf
    - OpenSSL_version
    - BF_options
    linkageType: ''
    returnType: int
    signature: version_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:78,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:79,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:85,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:88,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:92,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:92,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:96,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:99,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:99,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:103,1
    - Dst: setup_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:106,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:106,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:109,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:112,1
    - Dst: opt_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:137,1
    - Dst: opt_unknown
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:137,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:142,1
    - Dst: app_passwd
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:150,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:151,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:155,1
    - Dst: load_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:160,1
    - Dst: load_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:162,1
    - Dst: EVP_PKEY_get1_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:165,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:166,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:170,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:171,1
    - Dst: bio_open_owner
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:175,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:180,1
    - Dst: DSA_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:181,1
    - Dst: perror
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:182,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:183,1
    - Dst: DSA_get0_key
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:190,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:191,1
    - Dst: BN_print
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:192,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:193,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:200,1
    - Dst: i2d_DSA_PUBKEY_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:203,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:205,1
    - Dst: i2d_DSAPrivateKey_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:206,1
    - Dst: PEM_write_bio_DSA_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:210,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:212,1
    - Dst: PEM_write_bio_DSAPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:213,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:219,1
    - Dst: EVP_PKEY_set1_DSA
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:220,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:223,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:224,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:227,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:229,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:230,1
    - Dst: i2b_PVK_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:233,1
    - Dst: i2b_PublicKey_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:237,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:239,1
    - Dst: i2b_PrivateKey_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:240,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:242,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:245,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:249,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:250,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:255,1
    - Dst: DSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:256,1
    - Dst: release_engine
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:257,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:258,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c:259,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 178
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 261
      start: 62
    functionDepth: 9
    functionLinenumber: 62
    functionLinenumberEnd: 261
    functionName: dsa_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c
    functionUses: 0
    functionsReached:
    - release_engine
    - load_key
    - i2b_PublicKey_bio
    - BIO_printf
    - EVP_PKEY_free
    - EVP_PKEY_get1_DSA
    - setup_engine
    - opt_init
    - BN_print
    - DSA_get0_key
    - i2b_PVK_bio
    - opt_next
    - DSA_free
    - perror
    - EVP_PKEY_set1_DSA
    - opt_num_rest
    - EVP_PKEY_new
    - PEM_write_bio_DSA_PUBKEY
    - bio_open_owner
    - opt_format
    - load_pubkey
    - i2d_DSA_PUBKEY_bio
    - opt_arg
    - i2b_PrivateKey_bio
    - opt_unknown
    - assert
    - app_passwd
    - OPENSSL_free
    - i2d_DSAPrivateKey_bio
    - PEM_write_bio_DSAPrivateKey
    - BIO_free_all
    - ERR_print_errors
    - DSA_print
    - opt_help
    - opt_cipher
    linkageType: ''
    returnType: int
    signature: dsa_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:62,1
    - Dst: opt_init
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:75,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:77,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:78,1
    - Dst: opt_next
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:82,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:87,1
    - Dst: opt_help
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:90,1
    - Dst: opt_format
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:94,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:94,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:98,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:101,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:110,1
    - Dst: strtol
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:113,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:113,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:116,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:116,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:122,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:122,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:125,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:125,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:128,1
    - Dst: opt_arg
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:131,1
    - Dst: opt_num_rest
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:139,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:144,1
    - Dst: OBJ_create_objects
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:147,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:148,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:151,1
    - Dst: bio_open_default
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:154,1
    - Dst: PEM_read_bio
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:158,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:160,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:161,1
    - Dst: BUF_MEM_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:166,1
    - Dst: BUF_MEM_grow
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:168,1
    - Dst: do_generate
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:172,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:174,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:184,1
    - Dst: BIO_f_base64
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:184,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:186,1
    - Dst: BUF_MEM_grow
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:194,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:196,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:208,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:211,1
    - Dst: atoi
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:214,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:214,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:216,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:217,1
    - Dst: d2i_ASN1_TYPE
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:224,1
    - Dst: ASN1_TYPE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:225,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:227,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:228,1
    - Dst: ASN1_TYPE_get
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:231,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:235,1
    - Dst: ASN1_tag2str
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:235,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:236,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:248,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:257,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:258,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:259,1
    - Dst: ASN1_parse_dump
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:264,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:266,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:271,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:272,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:273,1
    - Dst: ERR_print_errors
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:275,1
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:276,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:277,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:278,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:280,1
    - Dst: ASN1_TYPE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:281,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:282,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 202
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 284
      start: 57
    functionDepth: 7
    functionLinenumber: 57
    functionLinenumberEnd: 284
    functionName: asn1parse_main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c
    functionUses: 0
    functionsReached:
    - d2i_ASN1_TYPE
    - BIO_push
    - do_generate
    - sk_OPENSSL_STRING_value
    - atoi
    - BUF_MEM_grow
    - ASN1_TYPE_free
    - strtol
    - BIO_f_base64
    - BIO_printf
    - sk_OPENSSL_STRING_free
    - opt_init
    - sk_OPENSSL_STRING_push
    - opt_next
    - BIO_free
    - opt_num_rest
    - BIO_new
    - BUF_MEM_new
    - opt_format
    - OBJ_create_objects
    - BIO_write
    - sk_OPENSSL_STRING_num
    - ASN1_tag2str
    - opt_arg
    - OPENSSL_free
    - STACK_OF
    - ERR_print_errors
    - bio_open_default
    - opt_help
    - PEM_read_bio
    - ASN1_parse_dump
    - sk_OPENSSL_STRING_new_null
    - BIO_read
    - ASN1_TYPE_get
    - BUF_MEM_free
    linkageType: ''
    returnType: int
    signature: asn1parse_main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: app_load_config
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:294,1
    - Dst: NCONF_get_string
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:297,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:299,1
    - Dst: ASN1_generate_nconf
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:304,1
    - Dst: NCONF_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:305,1
    - Dst: i2d_ASN1_TYPE
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:311,1
    - Dst: BUF_MEM_grow
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:316,1
    - Dst: i2d_ASN1_TYPE
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:321,1
    - Dst: ASN1_TYPE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:323,1
    - Dst: NCONF_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:327,1
    - Dst: ASN1_TYPE_free
      Src: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c:328,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - genstr
    - genconf
    - buf
    argTypes:
    - char*
    - char*
    - BUF_MEM*
    constantsTouched: []
    func_position:
      end: 330
      start: 286
    functionDepth: 5
    functionLinenumber: 286
    functionLinenumberEnd: 330
    functionName: do_generate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c
    functionUses: 1
    functionsReached:
    - i2d_ASN1_TYPE
    - BUF_MEM_grow
    - ASN1_generate_nconf
    - app_load_config
    - NCONF_free
    - ASN1_TYPE_free
    - BIO_printf
    - NCONF_get_string
    linkageType: ''
    returnType: int
    signature: do_generate(char *genstr, const char *genconf, BUF_MEM *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: constant_time_msb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: constant_time_msb(unsigned int a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_msb
      Src: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: constant_time_lt
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h
    functionUses: 0
    functionsReached:
    - constant_time_msb
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: "constant_time_lt(unsigned int a,\n                                                 unsigned
      int b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_lt
      Src: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: constant_time_lt_8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h
    functionUses: 0
    functionsReached:
    - constant_time_lt
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: "constant_time_lt_8(unsigned int a,\n                                                    unsigned
      int b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_lt
      Src: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: constant_time_ge
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h
    functionUses: 3
    functionsReached:
    - constant_time_lt
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: "constant_time_ge(unsigned int a,\n                                                 unsigned
      int b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_ge
      Src: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: constant_time_ge_8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h
    functionUses: 0
    functionsReached:
    - constant_time_ge
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: "constant_time_ge_8(unsigned int a,\n                                                    unsigned
      int b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_msb
      Src: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: constant_time_is_zero
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h
    functionUses: 2
    functionsReached:
    - constant_time_msb
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: constant_time_is_zero(unsigned int a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: constant_time_is_zero_8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h
    functionUses: 0
    functionsReached:
    - constant_time_is_zero
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: constant_time_is_zero_8(unsigned int a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: constant_time_eq
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h
    functionUses: 1
    functionsReached:
    - constant_time_is_zero
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: "constant_time_eq(unsigned int a,\n                                                 unsigned
      int b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_eq
      Src: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: constant_time_eq_8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h
    functionUses: 0
    functionsReached:
    - constant_time_eq
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: "constant_time_eq_8(unsigned int a,\n                                                    unsigned
      int b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_eq
      Src: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: constant_time_eq_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h
    functionUses: 1
    functionsReached:
    - constant_time_eq
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: constant_time_eq_int(int a, int b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_eq_8
      Src: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 4
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: constant_time_eq_int_8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h
    functionUses: 0
    functionsReached:
    - constant_time_eq_8
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: constant_time_eq_int_8(int a, int b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mask
    - a
    - b
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: constant_time_select
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: "constant_time_select(unsigned int mask,\n                                                     unsigned
      int a,\n                                                     unsigned int b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_select
      Src: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mask
    - a
    - b
    argTypes:
    - unsigned char
    - unsigned char
    - unsigned char
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: constant_time_select_8
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h
    functionUses: 1
    functionsReached:
    - constant_time_select
    linkageType: ''
    returnType: ossl_inline unsigned
    signature: "constant_time_select_8(unsigned char mask,\n                                                        unsigned
      char a,\n                                                        unsigned char
      b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_select
      Src: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mask
    - a
    - b
    argTypes:
    - unsigned int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: constant_time_select_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h
    functionUses: 3
    functionsReached:
    - constant_time_select
    linkageType: ''
    returnType: ossl_inline
    signature: "constant_time_select_int(unsigned int mask, int a,\n                                                int
      b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: FuzzerInitialize
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/asn1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FuzzerInitialize(int *argc, char ***argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PCTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/asn1.c:193,1
    - Dst: ASN1_PCTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/asn1.c:195,1
    - Dst: ASN1_PCTX_set_str_flags
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/asn1.c:198,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/asn1.c:204,1
    - Dst: ASN1_item_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/asn1.c:205,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/asn1.c:208,1
    - Dst: BIO_s_null
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/asn1.c:208,1
    - Dst: ASN1_item_print
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/asn1.c:209,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/asn1.c:210,1
    - Dst: ASN1_item_i2d
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/asn1.c:212,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/asn1.c:213,1
    - Dst: ASN1_item_free
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/asn1.c:215,1
    - Dst: ASN1_PCTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/asn1.c:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 222
      start: 190
    functionDepth: 4
    functionLinenumber: 190
    functionLinenumberEnd: 222
    functionName: FuzzerTestOneInput
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_item_i2d
    - ASN1_PCTX_set_flags
    - ASN1_item_d2i
    - ASN1_item_free
    - BIO_s_null
    - ASN1_item_print
    - BIO_free
    - OPENSSL_free
    - ASN1_PCTX_new
    - ASN1_ITEM_ptr
    - ASN1_PCTX_set_str_flags
    - BIO_new
    - ASN1_PCTX_free
    linkageType: ''
    returnType: int
    signature: FuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: FuzzerInitialize
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/asn1parse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FuzzerInitialize(int *argc, char ***argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/asn1parse.c:29,1
    - Dst: ASN1_parse_dump
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/asn1parse.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: FuzzerTestOneInput
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/asn1parse.c
    functionUses: 0
    functionsReached:
    - ASN1_parse_dump
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: FuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzerInitialize
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/test-corpus.c:26,1
    - Dst: stat
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/test-corpus.c:34,1
    - Dst: fopen
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/test-corpus.c:35,1
    - Dst: malloc
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/test-corpus.c:38,1
    - Dst: fread
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/test-corpus.c:39,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/test-corpus.c:40,1
    - Dst: FuzzerTestOneInput
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/test-corpus.c:41,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/test-corpus.c:42,1
    - Dst: fclose
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/test-corpus.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 46
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 46
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/test-corpus.c
    functionUses: 22
    functionsReached:
    - stat
    - OPENSSL_assert
    - fread
    - FuzzerTestOneInput
    - fclose
    - free
    - FuzzerInitialize
    - fopen
    - malloc
    linkageType: ''
    returnType: int
    signature: main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 17
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 17
    functionName: FuzzerInitialize
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/crl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FuzzerInitialize(int *argc, char ***argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_X509_CRL
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/crl.c:23,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/crl.c:25,1
    - Dst: BIO_s_null
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/crl.c:25,1
    - Dst: X509_CRL_print
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/crl.c:26,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/crl.c:27,1
    - Dst: i2d_X509_CRL
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/crl.c:29,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/crl.c:30,1
    - Dst: X509_CRL_free
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/crl.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 35
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 35
    functionName: FuzzerTestOneInput
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/crl.c
    functionUses: 1
    functionsReached:
    - X509_CRL_free
    - i2d_X509_CRL
    - X509_CRL_print
    - BIO_free
    - OPENSSL_free
    - BIO_s_null
    - BIO_new
    - d2i_X509_CRL
    linkageType: ''
    returnType: int
    signature: FuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: FuzzerInitialize
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/cms.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FuzzerInitialize(int *argc, char ***argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/cms.c:30,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/cms.c:30,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/cms.c:31,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/cms.c:31,1
    - Dst: d2i_CMS_bio
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/cms.c:32,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/cms.c:33,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/cms.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 36
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: FuzzerTestOneInput
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/cms.c
    functionUses: 1
    functionsReached:
    - OPENSSL_assert
    - CMS_ContentInfo_free
    - d2i_CMS_bio
    - BIO_s_mem
    - BIO_free
    - BIO_new
    - BIO_write
    linkageType: ''
    returnType: int
    signature: FuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: FuzzerInitialize
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FuzzerInitialize(int *argc, char ***argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:37,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:38,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:39,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:40,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:41,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:42,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:59,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:59,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:60,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:61,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:61,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:62,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:65,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:70,1
    - Dst: BN_div
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:70,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:71,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:72,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:72,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:73,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:74,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:74,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:74,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:75,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:75,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:77,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:77,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:77,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:78,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:78,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:79,1
    - Dst: BN_mul
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:79,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:80,1
    - Dst: BN_add
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:80,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:82,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:84,1
    - Dst: putchar
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:85,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:86,1
    - Dst: putchar
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:87,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:88,1
    - Dst: putchar
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:89,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:90,1
    - Dst: putchar
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:91,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:92,1
    - Dst: putchar
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:93,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:94,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:94,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:95,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:96,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:96,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:96,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:97,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:97,1
    - Dst: BN_is_negative
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:98,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:98,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:99,1
    - Dst: puts
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:100,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c:104,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 107
      start: 24
    functionDepth: 5
    functionLinenumber: 24
    functionLinenumberEnd: 107
    functionName: FuzzerTestOneInput
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_set_negative
    - BN_bin2bn
    - OPENSSL_assert
    - BN_is_zero
    - BN_mul
    - BN_add
    - BN_cmp
    - BN_is_negative
    - printf
    - BN_CTX_new
    - puts
    - BN_div
    - BN_print_fp
    - putchar
    linkageType: ''
    returnType: int
    signature: FuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: FuzzerInitialize
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/ct.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FuzzerInitialize(int *argc, char ***argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/ct.c:26,1
    - Dst: d2i_SCT_LIST
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/ct.c:26,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/ct.c:28,1
    - Dst: BIO_s_null
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/ct.c:28,1
    - Dst: SCT_LIST_print
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/ct.c:29,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/ct.c:30,1
    - Dst: i2d_SCT_LIST
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/ct.c:32,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/ct.c:35,1
    - Dst: SCT_LIST_free
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/ct.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 40
      start: 23
    functionDepth: 6
    functionLinenumber: 23
    functionLinenumberEnd: 40
    functionName: FuzzerTestOneInput
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/ct.c
    functionUses: 1
    functionsReached:
    - d2i_SCT_LIST
    - STACK_OF
    - BIO_free
    - OPENSSL_free
    - SCT_LIST_free
    - i2d_SCT_LIST
    - BIO_s_null
    - SCT_LIST_print
    - BIO_new
    linkageType: ''
    returnType: int
    signature: FuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:201,1
    - Dst: SSLv23_method
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:201,1
    - Dst: d2i_RSAPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:202,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:203,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:204,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:205,1
    - Dst: SSL_CTX_use_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:206,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:207,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:208,1
    - Dst: d2i_X509
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:210,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:211,1
    - Dst: SSL_CTX_use_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:212,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:213,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 217
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 217
    functionName: FuzzerInitialize
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_free
    - d2i_X509
    - OPENSSL_assert
    - SSL_CTX_use_certificate
    - EVP_PKEY_assign_RSA
    - SSLv23_method
    - d2i_RSAPrivateKey
    - SSL_CTX_use_PrivateKey
    - EVP_PKEY_new
    - X509_free
    - SSL_CTX_new
    linkageType: ''
    returnType: int
    signature: FuzzerInitialize(int *argc, char ***argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:233,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:234,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:234,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:235,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:235,1
    - Dst: SSL_set_bio
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:236,1
    - Dst: SSL_set_accept_state
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:237,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:238,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:238,1
    - Dst: SSL_do_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:239,1
    - Dst: SSL_read
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:243,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c:248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 250
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 250
    functionName: FuzzerTestOneInput
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c
    functionUses: 1
    functionsReached:
    - OPENSSL_assert
    - BIO_s_mem
    - SSL_set_accept_state
    - SSL_new
    - SSL_set_bio
    - SSL_do_handshake
    - SSL_read
    - SSL_free
    - BIO_new
    - BIO_write
    linkageType: ''
    returnType: int
    signature: FuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 17
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 17
    functionName: FuzzerInitialize
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/x509.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FuzzerInitialize(int *argc, char ***argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_X509
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/x509.c:23,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/x509.c:25,1
    - Dst: BIO_s_null
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/x509.c:25,1
    - Dst: X509_print
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/x509.c:27,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/x509.c:28,1
    - Dst: i2d_X509
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/x509.c:30,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/x509.c:31,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/x509.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 36
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 36
    functionName: FuzzerTestOneInput
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/x509.c
    functionUses: 1
    functionsReached:
    - d2i_X509
    - X509_print
    - i2d_X509
    - BIO_free
    - OPENSSL_free
    - X509_free
    - BIO_s_null
    - BIO_new
    linkageType: ''
    returnType: int
    signature: FuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: FuzzerInitialize
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/conf.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FuzzerInitialize(int *argc, char ***argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/conf.c:30,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/conf.c:31,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/conf.c:31,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/conf.c:32,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/conf.c:32,1
    - Dst: NCONF_load_bio
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/conf.c:33,1
    - Dst: NCONF_free
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/conf.c:34,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/conf.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 38
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 38
    functionName: FuzzerTestOneInput
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/conf.c
    functionUses: 1
    functionsReached:
    - NCONF_load_bio
    - OPENSSL_assert
    - BIO_s_mem
    - BIO_free
    - NCONF_free
    - NCONF_new
    - BIO_new
    - BIO_write
    linkageType: ''
    returnType: int
    signature: FuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: FuzzerInitialize
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: FuzzerInitialize(int *argc, char ***argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:36,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:37,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:38,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:39,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:40,1
    - Dst: BN_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:41,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:60,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:60,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:61,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:62,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:62,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:63,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:64,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:64,1
    - Dst: BN_set_negative
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:65,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:68,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:73,1
    - Dst: BN_mod_exp
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:73,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:74,1
    - Dst: BN_mod_exp_simple
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:74,1
    - Dst: BN_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:76,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:78,1
    - Dst: putchar
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:79,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:80,1
    - Dst: putchar
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:81,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:82,1
    - Dst: putchar
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:83,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:84,1
    - Dst: putchar
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:85,1
    - Dst: BN_print_fp
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:86,1
    - Dst: putchar
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:87,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c:91,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 94
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 94
    functionName: FuzzerTestOneInput
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_set_negative
    - BN_bin2bn
    - OPENSSL_assert
    - BN_is_zero
    - BN_mod_exp
    - BN_cmp
    - BN_CTX_new
    - BN_mod_exp_simple
    - BN_print_fp
    - putchar
    linkageType: ''
    returnType: int
    signature: FuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzerInitialize
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/driver.c:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/driver.c
    functionUses: 0
    functionsReached:
    - FuzzerInitialize
    linkageType: ''
    returnType: int
    signature: LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzerTestOneInput
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/driver.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/driver.c
    functionUses: 0
    functionsReached:
    - FuzzerTestOneInput
    linkageType: ''
    returnType: int
    signature: LLVMFuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzerInitialize
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/driver.c:36,1
    - Dst: __AFL_LOOP
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/driver.c:38,1
    - Dst: FuzzerTestOneInput
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/driver.c:42,1
    - Dst: free
      Src: /src/openweave-core/third_party/openssl/openssl/fuzz/driver.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 46
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 46
    functionName: main
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/fuzz/driver.c
    functionUses: 22
    functionsReached:
    - free
    - __AFL_LOOP
    - FuzzerInitialize
    - FuzzerTestOneInput
    linkageType: ''
    returnType: int
    signature: main(int argc, char** argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - cctx
    - name_flags
    - option_value
    - onoff
    argTypes:
    - SSL_CONF_CTX*
    - unsigned int
    - unsigned long
    - int
    constantsTouched: []
    func_position:
      end: 134
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 134
    functionName: ssl_set_option
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "ssl_set_option(SSL_CONF_CTX *cctx, unsigned int name_flags,\n                           unsigned
      long option_value, int onoff)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:143,1
    - Dst: strncasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:145,1
    - Dst: ssl_set_option
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:147,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 5
    argNames:
    - cctx
    - tbl
    - name
    - namelen
    - onoff
    argTypes:
    - SSL_CONF_CTX*
    - ssl_flag_tbl*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 149
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 149
    functionName: ssl_match_option
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - ssl_set_option
    - strncasecmp
    - strcmp
    linkageType: ''
    returnType: int
    signature: "ssl_match_option(SSL_CONF_CTX *cctx, const ssl_flag_tbl *tbl,\n                            const
      char *name, int namelen, int onoff)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_match_option
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:175,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - elem
    - len
    - usr
    argTypes:
    - char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 179
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 179
    functionName: ssl_set_option_list
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - ssl_match_option
    linkageType: ''
    returnType: int
    signature: ssl_set_option_list(const char *elem, int len, void *usr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set1_sigalgs_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:186,1
    - Dst: SSL_CTX_set1_sigalgs_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 191
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 191
    functionName: cmd_SignatureAlgorithms
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - SSL_set1_sigalgs_list
    - SSL_CTX_set1_sigalgs_list
    linkageType: ''
    returnType: int
    signature: cmd_SignatureAlgorithms(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set1_client_sigalgs_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:198,1
    - Dst: SSL_CTX_set1_client_sigalgs_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 203
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 203
    functionName: cmd_ClientSignatureAlgorithms
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set1_client_sigalgs_list
    - SSL_set1_client_sigalgs_list
    linkageType: ''
    returnType: int
    signature: cmd_ClientSignatureAlgorithms(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set1_curves_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:209,1
    - Dst: SSL_CTX_set1_curves_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 214
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 214
    functionName: cmd_Curves
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - SSL_set1_curves_list
    - SSL_CTX_set1_curves_list
    linkageType: ''
    returnType: int
    signature: cmd_Curves(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_curve_nist2nid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:224,1
    - Dst: OBJ_sn2nid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:226,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:229,1
    - Dst: SSL_CTX_set_tmp_ecdh
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:233,1
    - Dst: SSL_set_tmp_ecdh
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:235,1
    - Dst: EC_KEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:236,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 239
      start: 218
    functionDepth: 4
    functionLinenumber: 218
    functionLinenumberEnd: 239
    functionName: cmd_ECDHParameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - OBJ_sn2nid
    - SSL_set_tmp_ecdh
    - EC_KEY_free
    - SSL_CTX_set_tmp_ecdh
    - EC_curve_nist2nid
    - EC_KEY_new_by_curve_name
    linkageType: ''
    returnType: int
    signature: cmd_ECDHParameters(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:245,1
    - Dst: SSL_set_cipher_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 249
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 249
    functionName: cmd_CipherString
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_cipher_list
    - SSL_set_cipher_list
    linkageType: ''
    returnType: int
    signature: cmd_CipherString(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:254,1
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:255,1
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:256,1
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:257,1
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:258,1
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:259,1
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:260,1
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:261,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:264,1
    - Dst: CONF_parse_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 266
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 266
    functionName: cmd_Protocol
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - SSL_FLAG_TBL_INV
    - CONF_parse_list
    linkageType: ''
    returnType: int
    signature: cmd_Protocol(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 295
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 295
    functionName: protocol_from_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: protocol_from_string(const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: protocol_from_string
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:308,1
    - Dst: ssl_set_version_bound
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - cctx
    - value
    - bound
    argTypes:
    - SSL_CONF_CTX*
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 311
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 311
    functionName: min_max_proto
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - protocol_from_string
    - ssl_set_version_bound
    linkageType: ''
    returnType: int
    signature: min_max_proto(SSL_CONF_CTX *cctx, const char *value, int *bound)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min_max_proto
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: cmd_MinProtocol
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - min_max_proto
    linkageType: ''
    returnType: int
    signature: cmd_MinProtocol(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min_max_proto
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: cmd_MaxProtocol
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - min_max_proto
    linkageType: ''
    returnType: int
    signature: cmd_MaxProtocol(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:340,1
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:341,1
    - Dst: SSL_FLAG_TBL
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:343,1
    - Dst: SSL_FLAG_TBL_INV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:344,1
    - Dst: SSL_FLAG_TBL_SRV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:345,1
    - Dst: SSL_FLAG_TBL_SRV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:346,1
    - Dst: SSL_FLAG_TBL_SRV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:348,1
    - Dst: SSL_FLAG_TBL_SRV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:349,1
    - Dst: SSL_FLAG_TBL
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:350,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:356,1
    - Dst: CONF_parse_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 358
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 358
    functionName: cmd_Options
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - SSL_FLAG_TBL_INV
    - SSL_FLAG_TBL
    - CONF_parse_list
    - SSL_FLAG_TBL_SRV
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: cmd_Options(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_FLAG_VFY_CLI
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:363,1
    - Dst: SSL_FLAG_VFY_SRV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:364,1
    - Dst: SSL_FLAG_VFY_SRV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:365,1
    - Dst: SSL_FLAG_VFY_SRV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:367,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:372,1
    - Dst: CONF_parse_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 374
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 374
    functionName: cmd_VerifyMode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - SSL_FLAG_VFY_CLI
    - SSL_FLAG_VFY_SRV
    - CONF_parse_list
    linkageType: ''
    returnType: int
    signature: cmd_VerifyMode(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_use_certificate_chain_file
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:381,1
    - Dst: SSL_use_certificate_chain_file
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:385,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:390,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:391,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 397
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 397
    functionName: cmd_Certificate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_use_certificate_chain_file
    - OPENSSL_free
    - SSL_use_certificate_chain_file
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: cmd_Certificate(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:405,1
    - Dst: SSL_use_PrivateKey_file
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:407,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 409
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 409
    functionName: cmd_PrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_use_PrivateKey_file
    - SSL_use_PrivateKey_file
    linkageType: ''
    returnType: int
    signature: cmd_PrivateKey(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_use_serverinfo_file
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 417
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 417
    functionName: cmd_ServerInfoFile
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_use_serverinfo_file
    linkageType: ''
    returnType: int
    signature: cmd_ServerInfoFile(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:432,1
    - Dst: X509_STORE_load_locations
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:436,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - cctx
    - CAfile
    - CApath
    - verify_store
    argTypes:
    - SSL_CONF_CTX*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 437
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 437
    functionName: do_store
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - X509_STORE_new
    - X509_STORE_load_locations
    linkageType: ''
    returnType: int
    signature: "do_store(SSL_CONF_CTX *cctx,\n                    const char *CAfile,
      const char *CApath, int verify_store)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_store
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 442
      start: 439
    functionDepth: 4
    functionLinenumber: 439
    functionLinenumberEnd: 442
    functionName: cmd_ChainCAPath
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - do_store
    linkageType: ''
    returnType: int
    signature: cmd_ChainCAPath(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_store
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 447
      start: 444
    functionDepth: 4
    functionLinenumber: 444
    functionLinenumberEnd: 447
    functionName: cmd_ChainCAFile
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - do_store
    linkageType: ''
    returnType: int
    signature: cmd_ChainCAFile(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_store
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 452
      start: 449
    functionDepth: 4
    functionLinenumber: 449
    functionLinenumberEnd: 452
    functionName: cmd_VerifyCAPath
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - do_store
    linkageType: ''
    returnType: int
    signature: cmd_VerifyCAPath(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_store
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 457
      start: 454
    functionDepth: 4
    functionLinenumber: 454
    functionLinenumberEnd: 457
    functionName: cmd_VerifyCAFile
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - do_store
    linkageType: ''
    returnType: int
    signature: cmd_VerifyCAFile(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_NAME_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:462,1
    - Dst: SSL_add_file_cert_subjects_to_stack
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 466
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 466
    functionName: cmd_ClientCAFile
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - SSL_add_file_cert_subjects_to_stack
    - sk_X509_NAME_new_null
    linkageType: ''
    returnType: int
    signature: cmd_ClientCAFile(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_NAME_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:471,1
    - Dst: SSL_add_dir_cert_subjects_to_stack
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:474,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 475
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 475
    functionName: cmd_ClientCAPath
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - SSL_add_dir_cert_subjects_to_stack
    - sk_X509_NAME_new_null
    linkageType: ''
    returnType: int
    signature: cmd_ClientCAPath(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:484,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:484,1
    - Dst: BIO_read_filename
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:487,1
    - Dst: PEM_read_bio_DHparams
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:489,1
    - Dst: SSL_CTX_set_tmp_dh
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:495,1
    - Dst: SSL_set_tmp_dh
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:497,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:499,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:500,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - cctx
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 502
      start: 478
    functionDepth: 4
    functionLinenumber: 478
    functionLinenumberEnd: 502
    functionName: cmd_DHParameters
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - BIO_read_filename
    - BIO_s_file
    - BIO_free
    - DH_free
    - PEM_read_bio_DHparams
    - SSL_CTX_set_tmp_dh
    - BIO_new
    - SSL_set_tmp_dh
    linkageType: ''
    returnType: int
    signature: cmd_DHParameters(SSL_CONF_CTX *cctx, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:609,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:612,1
    - Dst: strncasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:615,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 2
    argNames:
    - cctx
    - pcmd
    argTypes:
    - SSL_CONF_CTX*
    - char**
    constantsTouched: []
    func_position:
      end: 624
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 624
    functionName: ssl_conf_cmd_skip_prefix
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - strlen
    - strncmp
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: ssl_conf_cmd_skip_prefix(SSL_CONF_CTX *cctx, const char **pcmd)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - cctx
    - t
    argTypes:
    - SSL_CONF_CTX*
    - ssl_conf_cmd_tbl*
    constantsTouched: []
    func_position:
      end: 639
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 639
    functionName: ssl_conf_cmd_allowed
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ssl_conf_cmd_allowed(SSL_CONF_CTX *cctx, const ssl_conf_cmd_tbl * t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:650,1
    - Dst: ssl_conf_cmd_allowed
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:651,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:653,1
    - Dst: strcasecmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:657,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - cctx
    - cmd
    argTypes:
    - SSL_CONF_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 663
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 663
    functionName: ssl_conf_cmd_lookup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - strcasecmp
    - ssl_conf_cmd_allowed
    - strcmp
    linkageType: ''
    returnType: ssl_conf_cmd_tbl
    signature: "*ssl_conf_cmd_lookup(SSL_CONF_CTX *cctx,\n                                                   const
      char *cmd)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:671,1
    - Dst: ssl_set_option
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:675,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cctx
    - cmd
    argTypes:
    - SSL_CONF_CTX*
    - ssl_conf_cmd_tbl*
    constantsTouched: []
    func_position:
      end: 677
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 677
    functionName: ctrl_switch_option
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ssl_set_option
    linkageType: ''
    returnType: int
    signature: ctrl_switch_option(SSL_CONF_CTX *cctx, const ssl_conf_cmd_tbl * cmd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:683,1
    - Dst: ssl_conf_cmd_skip_prefix
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:687,1
    - Dst: ssl_conf_cmd_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:690,1
    - Dst: ctrl_switch_option
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:695,1
    - Dst: ssl_conf_cmd_tbl*::cmd
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:699,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:705,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:706,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:712,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:713,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - cctx
    - cmd
    - value
    argTypes:
    - SSL_CONF_CTX*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 717
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 717
    functionName: SSL_CONF_cmd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 2
    functionsReached:
    - ctrl_switch_option
    - SSLerr
    - ssl_conf_cmd_skip_prefix
    - ssl_conf_cmd_lookup
    - ERR_add_error_data
    - ssl_conf_cmd_tbl*::cmd
    linkageType: ''
    returnType: int
    signature: SSL_CONF_cmd(SSL_CONF_CTX *cctx, const char *cmd, const char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CONF_cmd
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:735,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 3
    argNames:
    - cctx
    - pargc
    - pargv
    argTypes:
    - SSL_CONF_CTX*
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 750
      start: 719
    functionDepth: 3
    functionLinenumber: 719
    functionLinenumberEnd: 750
    functionName: SSL_CONF_cmd_argv
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 3
    functionsReached:
    - SSL_CONF_cmd
    linkageType: ''
    returnType: int
    signature: SSL_CONF_cmd_argv(SSL_CONF_CTX *cctx, int *pargc, char ***pargv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_conf_cmd_skip_prefix
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:754,1
    - Dst: ssl_conf_cmd_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:756,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cctx
    - cmd
    argTypes:
    - SSL_CONF_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 761
      start: 752
    functionDepth: 2
    functionLinenumber: 752
    functionLinenumberEnd: 761
    functionName: SSL_CONF_cmd_value_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached:
    - ssl_conf_cmd_lookup
    - ssl_conf_cmd_skip_prefix
    linkageType: ''
    returnType: int
    signature: SSL_CONF_cmd_value_type(SSL_CONF_CTX *cctx, const char *cmd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 768
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 768
    functionName: SSL_CONF_CTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 6
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: SSL_CONF_CTX
    signature: '*SSL_CONF_CTX_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:786,1
    - Dst: SSL_set_client_CA_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:793,1
    - Dst: SSL_CTX_set_client_CA_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:795,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:797,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - cctx
    argTypes:
    - SSL_CONF_CTX*
    constantsTouched: []
    func_position:
      end: 801
      start: 770
    functionDepth: 2
    functionLinenumber: 770
    functionLinenumberEnd: 801
    functionName: SSL_CONF_CTX_finish
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 4
    functionsReached:
    - SSL_set_client_CA_list
    - cmd_PrivateKey
    - sk_X509_NAME_pop_free
    - SSL_CTX_set_client_CA_list
    linkageType: ''
    returnType: int
    signature: SSL_CONF_CTX_finish(SSL_CONF_CTX *cctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:808,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:809,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:810,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:811,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - cctx
    argTypes:
    - SSL_CONF_CTX*
    constantsTouched: []
    func_position:
      end: 813
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 813
    functionName: SSL_CONF_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - sk_X509_NAME_pop_free
    linkageType: ''
    returnType: void
    signature: SSL_CONF_CTX_free(SSL_CONF_CTX *cctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cctx
    - flags
    argTypes:
    - SSL_CONF_CTX*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 819
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 819
    functionName: SSL_CONF_CTX_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: SSL_CONF_CTX_set_flags(SSL_CONF_CTX *cctx, unsigned int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cctx
    - flags
    argTypes:
    - SSL_CONF_CTX*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 825
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 825
    functionName: SSL_CONF_CTX_clear_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: SSL_CONF_CTX_clear_flags(SSL_CONF_CTX *cctx, unsigned int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:831,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:835,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c:838,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - cctx
    - pre
    argTypes:
    - SSL_CONF_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 842
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 842
    functionName: SSL_CONF_CTX_set1_prefix
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 1
    functionsReached:
    - strlen
    - OPENSSL_free
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: SSL_CONF_CTX_set1_prefix(SSL_CONF_CTX *cctx, const char *pre)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - cctx
    - ssl
    argTypes:
    - SSL_CONF_CTX*
    - SSL*
    constantsTouched: []
    func_position:
      end: 861
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 861
    functionName: SSL_CONF_CTX_set_ssl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SSL_CONF_CTX_set_ssl(SSL_CONF_CTX *cctx, SSL *ssl)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - cctx
    - ctx
    argTypes:
    - SSL_CONF_CTX*
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 880
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 880
    functionName: SSL_CONF_CTX_set_ssl_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *cctx, SSL_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pkt
    - len
    argTypes:
    - PACKET*
    - size_t
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: packet_forward
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: packet_forward(PACKET *pkt, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - PACKET*
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: PACKET_remaining
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: PACKET_remaining(const PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - PACKET*
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: PACKET_end
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: '*PACKET_end(const PACKET *pkt)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - PACKET*
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: PACKET_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: '*PACKET_data(const PACKET *pkt)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pkt
    - buf
    - len
    argTypes:
    - PACKET*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: PACKET_buf_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: __owur
    signature: "PACKET_buf_init(PACKET *pkt,\n                                              const
      unsigned char *buf,\n                                              size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - PACKET*
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: PACKET_null_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: PACKET_null_init(PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:100,1
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pkt
    - ptr
    - num
    argTypes:
    - PACKET*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: PACKET_equal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 4
    functionsReached:
    - CRYPTO_memcmp
    - PACKET_remaining
    linkageType: ''
    returnType: __owur
    signature: "PACKET_equal(const PACKET *pkt, const void *ptr,\n                                           size_t
      num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:113,1
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pkt
    - subpkt
    - len
    argTypes:
    - PACKET*
    - PACKET*
    - size_t
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: PACKET_peek_sub_packet
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - PACKET_remaining
    linkageType: ''
    returnType: __owur
    signature: "PACKET_peek_sub_packet(const PACKET *pkt,\n                                                     PACKET
      *subpkt, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_peek_sub_packet
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:127,1
    - Dst: packet_forward
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pkt
    - subpkt
    - len
    argTypes:
    - PACKET*
    - PACKET*
    - size_t
    constantsTouched: []
    func_position:
      end: 133
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 133
    functionName: PACKET_get_sub_packet
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 2
    functionsReached:
    - packet_forward
    - PACKET_peek_sub_packet
    linkageType: ''
    returnType: __owur
    signature: "PACKET_get_sub_packet(PACKET *pkt,\n                                                    PACKET
      *subpkt, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 149
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 149
    functionName: PACKET_peek_net_2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 0
    functionsReached:
    - PACKET_remaining
    linkageType: ''
    returnType: __owur
    signature: "PACKET_peek_net_2(const PACKET *pkt,\n                                                unsigned
      int *data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_peek_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:155,1
    - Dst: packet_forward
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: PACKET_get_net_2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 8
    functionsReached:
    - packet_forward
    - PACKET_peek_net_2
    linkageType: ''
    returnType: __owur
    signature: PACKET_get_net_2(PACKET *pkt, unsigned int *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - unsigned long*
    constantsTouched: []
    func_position:
      end: 178
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 178
    functionName: PACKET_peek_net_3
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 0
    functionsReached:
    - PACKET_remaining
    linkageType: ''
    returnType: __owur
    signature: "PACKET_peek_net_3(const PACKET *pkt,\n                                                unsigned
      long *data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_peek_net_3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:184,1
    - Dst: packet_forward
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - unsigned long*
    constantsTouched: []
    func_position:
      end: 190
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 190
    functionName: PACKET_get_net_3
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 2
    functionsReached:
    - packet_forward
    - PACKET_peek_net_3
    linkageType: ''
    returnType: __owur
    signature: PACKET_get_net_3(PACKET *pkt, unsigned long *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - unsigned long*
    constantsTouched: []
    func_position:
      end: 208
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 208
    functionName: PACKET_peek_net_4
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 0
    functionsReached:
    - PACKET_remaining
    linkageType: ''
    returnType: __owur
    signature: "PACKET_peek_net_4(const PACKET *pkt,\n                                                unsigned
      long *data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_peek_net_4
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:214,1
    - Dst: packet_forward
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - unsigned long*
    constantsTouched: []
    func_position:
      end: 220
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 220
    functionName: PACKET_get_net_4
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 3
    functionsReached:
    - packet_forward
    - PACKET_peek_net_4
    linkageType: ''
    returnType: __owur
    signature: PACKET_get_net_4(PACKET *pkt, unsigned long *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 232
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 232
    functionName: PACKET_peek_1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 0
    functionsReached:
    - PACKET_remaining
    linkageType: ''
    returnType: __owur
    signature: "PACKET_peek_1(const PACKET *pkt,\n                                            unsigned
      int *data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_peek_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:237,1
    - Dst: packet_forward
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 243
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 243
    functionName: PACKET_get_1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 5
    functionsReached:
    - PACKET_peek_1
    - packet_forward
    linkageType: ''
    returnType: __owur
    signature: PACKET_get_1(PACKET *pkt, unsigned int *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - unsigned long*
    constantsTouched: []
    func_position:
      end: 261
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 261
    functionName: PACKET_peek_4
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 0
    functionsReached:
    - PACKET_remaining
    linkageType: ''
    returnType: __owur
    signature: "PACKET_peek_4(const PACKET *pkt,\n                                            unsigned
      long *data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_peek_4
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:270,1
    - Dst: packet_forward
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - unsigned long*
    constantsTouched: []
    func_position:
      end: 276
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 276
    functionName: PACKET_get_4
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 2
    functionsReached:
    - PACKET_peek_4
    - packet_forward
    linkageType: ''
    returnType: __owur
    signature: PACKET_get_4(PACKET *pkt, unsigned long *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pkt
    - data
    - len
    argTypes:
    - PACKET*
    - unsigned char**
    - size_t
    constantsTouched: []
    func_position:
      end: 294
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 294
    functionName: PACKET_peek_bytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 0
    functionsReached:
    - PACKET_remaining
    linkageType: ''
    returnType: __owur
    signature: "PACKET_peek_bytes(const PACKET *pkt,\n                                                const
      unsigned char **data,\n                                                size_t
      len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_peek_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:306,1
    - Dst: packet_forward
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pkt
    - data
    - len
    argTypes:
    - PACKET*
    - unsigned char**
    - size_t
    constantsTouched: []
    func_position:
      end: 312
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 312
    functionName: PACKET_get_bytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 3
    functionsReached:
    - packet_forward
    - PACKET_peek_bytes
    linkageType: ''
    returnType: __owur
    signature: "PACKET_get_bytes(PACKET *pkt,\n                                               const
      unsigned char **data,\n                                               size_t
      len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:319,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pkt
    - data
    - len
    argTypes:
    - PACKET*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 325
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 325
    functionName: PACKET_peek_copy_bytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 0
    functionsReached:
    - memcpy
    - PACKET_remaining
    linkageType: ''
    returnType: __owur
    signature: "PACKET_peek_copy_bytes(const PACKET *pkt,\n                                                     unsigned
      char *data,\n                                                     size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_peek_copy_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:334,1
    - Dst: packet_forward
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pkt
    - data
    - len
    argTypes:
    - PACKET*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 340
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 340
    functionName: PACKET_copy_bytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 3
    functionsReached:
    - packet_forward
    - PACKET_peek_copy_bytes
    linkageType: ''
    returnType: __owur
    signature: "PACKET_copy_bytes(PACKET *pkt,\n                                                unsigned
      char *data, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:353,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - pkt
    - dest
    - dest_len
    - len
    argTypes:
    - PACKET*
    - unsigned char*
    - size_t
    - size_t*
    constantsTouched: []
    func_position:
      end: 360
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 360
    functionName: PACKET_copy_all
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 2
    functionsReached:
    - memcpy
    - PACKET_remaining
    linkageType: ''
    returnType: __owur
    signature: "PACKET_copy_all(const PACKET *pkt,\n                                              unsigned
      char *dest,\n                                              size_t dest_len,
      size_t *len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:376,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:380,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - pkt
    - data
    - len
    argTypes:
    - PACKET*
    - unsigned char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 391
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 391
    functionName: PACKET_memdup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 2
    functionsReached:
    - OPENSSL_memdup
    - OPENSSL_free
    - PACKET_remaining
    linkageType: ''
    returnType: __owur
    signature: "PACKET_memdup(const PACKET *pkt,\n                                            unsigned
      char **data, size_t *len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:405,1
    - Dst: OPENSSL_strndup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:408,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pkt
    - data
    argTypes:
    - PACKET*
    - char**
    constantsTouched: []
    func_position:
      end: 410
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 410
    functionName: PACKET_strndup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strndup
    - PACKET_remaining
    linkageType: ''
    returnType: __owur
    signature: PACKET_strndup(const PACKET *pkt, char **data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - PACKET*
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: PACKET_contains_zero_byte
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 2
    functionsReached:
    - memchr
    linkageType: ''
    returnType: ossl_inline
    signature: PACKET_contains_zero_byte(const PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:421,1
    - Dst: packet_forward
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pkt
    - len
    argTypes:
    - PACKET*
    - size_t
    constantsTouched: []
    func_position:
      end: 427
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 427
    functionName: PACKET_forward
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 17
    functionsReached:
    - packet_forward
    - PACKET_remaining
    linkageType: ''
    returnType: __owur
    signature: PACKET_forward(PACKET *pkt, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:442,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pkt
    - subpkt
    argTypes:
    - PACKET*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 452
      start: 436
    functionDepth: 3
    functionLinenumber: 436
    functionLinenumberEnd: 452
    functionName: PACKET_get_length_prefixed_1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 4
    functionsReached:
    - PACKET_get_1
    - PACKET_get_bytes
    linkageType: ''
    returnType: __owur
    signature: "PACKET_get_length_prefixed_1(PACKET *pkt,\n                                                           PACKET
      *subpkt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:464,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:465,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:466,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pkt
    - subpkt
    argTypes:
    - PACKET*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 475
      start: 458
    functionDepth: 3
    functionLinenumber: 458
    functionLinenumberEnd: 475
    functionName: PACKET_as_length_prefixed_1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 2
    functionsReached:
    - PACKET_get_1
    - PACKET_remaining
    - PACKET_get_bytes
    linkageType: ''
    returnType: __owur
    signature: "PACKET_as_length_prefixed_1(PACKET *pkt,\n                                                          PACKET
      *subpkt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:491,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pkt
    - subpkt
    argTypes:
    - PACKET*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 501
      start: 484
    functionDepth: 3
    functionLinenumber: 484
    functionLinenumberEnd: 501
    functionName: PACKET_get_length_prefixed_2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 4
    functionsReached:
    - PACKET_get_net_2
    - PACKET_get_bytes
    linkageType: ''
    returnType: __owur
    signature: "PACKET_get_length_prefixed_2(PACKET *pkt,\n                                                           PACKET
      *subpkt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:514,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:515,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pkt
    - subpkt
    argTypes:
    - PACKET*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 525
      start: 507
    functionDepth: 3
    functionLinenumber: 507
    functionLinenumberEnd: 525
    functionName: PACKET_as_length_prefixed_2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 3
    functionsReached:
    - PACKET_get_net_2
    - PACKET_remaining
    - PACKET_get_bytes
    linkageType: ''
    returnType: __owur
    signature: "PACKET_as_length_prefixed_2(PACKET *pkt,\n                                                          PACKET
      *subpkt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_net_3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:540,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h:541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pkt
    - subpkt
    argTypes:
    - PACKET*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 550
      start: 534
    functionDepth: 3
    functionLinenumber: 534
    functionLinenumberEnd: 550
    functionName: PACKET_get_length_prefixed_3
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
    functionUses: 2
    functionsReached:
    - PACKET_get_net_3
    - PACKET_get_bytes
    linkageType: ''
    returnType: __owur
    signature: "PACKET_get_length_prefixed_3(PACKET *pkt,\n                                                           PACKET
      *subpkt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32toLE
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:47,1
    - Dst: u32toLE
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:48,1
    - Dst: u32toLE
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:49,1
    - Dst: u32toLE
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - md_out
    argTypes:
    - void*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: tls1_md5_final_raw
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c
    functionUses: 0
    functionsReached:
    - u32toLE
    linkageType: ''
    returnType: void
    signature: tls1_md5_final_raw(void *ctx, unsigned char *md_out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:56,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:57,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:58,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:59,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - md_out
    argTypes:
    - void*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: tls1_sha1_final_raw
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c
    functionUses: 0
    functionsReached:
    - l2n
    linkageType: ''
    returnType: void
    signature: tls1_sha1_final_raw(void *ctx, unsigned char *md_out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - md_out
    argTypes:
    - void*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: tls1_sha256_final_raw
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c
    functionUses: 0
    functionsReached:
    - l2n
    linkageType: ''
    returnType: void
    signature: tls1_sha256_final_raw(void *ctx, unsigned char *md_out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: l2n8
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - md_out
    argTypes:
    - void*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 81
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: tls1_sha512_final_raw
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c
    functionUses: 0
    functionsReached:
    - l2n8
    linkageType: ''
    returnType: void
    signature: tls1_sha512_final_raw(void *ctx, unsigned char *md_out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FIPS_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:92,1
    - Dst: EVP_MD_CTX_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    constantsTouched: []
    func_position:
      end: 105
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 105
    functionName: ssl3_cbc_record_digest_supported
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c
    functionUses: 0
    functionsReached:
    - FIPS_mode
    - EVP_MD_CTX_type
    linkageType: ''
    returnType: char
    signature: ssl3_cbc_record_digest_supported(const EVP_MD_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:169,1
    - Dst: EVP_MD_CTX_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:171,1
    - Dst: MD5_Init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:173,1
    - Dst: SHA1_Init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:183,1
    - Dst: SHA224_Init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:191,1
    - Dst: SHA256_Init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:199,1
    - Dst: SHA384_Init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:207,1
    - Dst: SHA512_Init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:217,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:231,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:237,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:238,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:239,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:334,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:335,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:336,1
    - Dst: md_transform
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:340,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:344,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:350,1
    - Dst: md_transform
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:375,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:376,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:377,1
    - Dst: md_transform
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:378,1
    - Dst: md_transform
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:380,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:383,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:384,1
    - Dst: md_transform
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:385,1
    - Dst: md_transform
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:387,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:391,1
    - Dst: constant_time_ge_8
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:412,1
    - Dst: constant_time_ge_8
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:413,1
    - Dst: constant_time_select_8
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:419,1
    - Dst: constant_time_select_8
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:437,1
    - Dst: md_transform
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:445,1
    - Dst: md_final_raw
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:446,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:452,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:455,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:455,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:459,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:461,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:462,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:463,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:470,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:471,1
    - Dst: EVP_DigestFinal
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:474,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:477,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:481,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 172
    argCount: 10
    argNames:
    - ctx
    - md_out
    - md_out_size
    - header
    - data
    - data_plus_mac_size
    - data_plus_mac_plus_padding_size
    - mac_secret
    - mac_secret_length
    - is_sslv3
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t*
    - unsigned char[]
    - unsigned char*
    - size_t
    - size_t
    - unsigned char*
    - unsigned
    - char
    constantsTouched: []
    func_position:
      end: 483
      start: 129
    functionDepth: 4
    functionLinenumber: 129
    functionLinenumberEnd: 483
    functionName: ssl3_cbc_digest_record
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c
    functionUses: 0
    functionsReached:
    - MD5_Init
    - EVP_DigestUpdate
    - SHA224_Init
    - SHA384_Init
    - EVP_MD_CTX_free
    - EVP_DigestInit_ex
    - SHA1_Init
    - md_final_raw
    - EVP_MD_CTX_md
    - constant_time_ge_8
    - md_transform
    - EVP_MD_CTX_type
    - memset
    - EVP_DigestFinal
    - SHA256_Init
    - SHA512_Init
    - OPENSSL_assert
    - constant_time_select_8
    - EVP_MD_CTX_new
    - memcpy
    linkageType: ''
    returnType: int
    signature: "ssl3_cbc_digest_record(const EVP_MD_CTX *ctx,\n                           unsigned
      char *md_out,\n                           size_t *md_out_size,\n                           const
      unsigned char header[13],\n                           const unsigned char *data,\n
      \                          size_t data_plus_mac_size,\n                           size_t
      data_plus_mac_plus_padding_size,\n                           const unsigned
      char *mac_secret,\n                           unsigned mac_secret_length, char
      is_sslv3)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:496,1
    - Dst: EVP_MD_CTX_block_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:498,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c:527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - cipher_ctx
    - mac_ctx
    - data
    - data_len
    - orig_len
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_MD_CTX*
    - unsigned char*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 529
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 529
    functionName: tls_fips_digest_extra
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_mode
    - EVP_MD_CTX_block_size
    - EVP_DigestSignUpdate
    linkageType: ''
    returnType: int
    signature: "tls_fips_digest_extra(const EVP_CIPHER_CTX *cipher_ctx,\n                          EVP_MD_CTX
      *mac_ctx, const unsigned char *data,\n                          size_t data_len,
      size_t orig_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:28,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:32,1
    - Dst: EVP_des_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:32,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:33,1
    - Dst: EVP_des_ede3_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:33,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:36,1
    - Dst: EVP_idea_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:36,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:39,1
    - Dst: EVP_rc4
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:39,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:41,1
    - Dst: EVP_rc4_hmac_md5
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:41,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:45,1
    - Dst: EVP_rc2_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:45,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:50,1
    - Dst: EVP_rc2_40_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:50,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:52,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:52,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:53,1
    - Dst: EVP_aes_192_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:53,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:54,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:54,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:55,1
    - Dst: EVP_aes_128_gcm
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:55,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:56,1
    - Dst: EVP_aes_256_gcm
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:56,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:57,1
    - Dst: EVP_aes_128_ccm
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:57,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:58,1
    - Dst: EVP_aes_256_ccm
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:58,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:59,1
    - Dst: EVP_aes_128_cbc_hmac_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:59,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:60,1
    - Dst: EVP_aes_256_cbc_hmac_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:60,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:61,1
    - Dst: EVP_aes_128_cbc_hmac_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:61,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:62,1
    - Dst: EVP_aes_256_cbc_hmac_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:62,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:64,1
    - Dst: EVP_camellia_128_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:64,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:65,1
    - Dst: EVP_camellia_256_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:65,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:68,1
    - Dst: EVP_chacha20_poly1305
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:68,1
    - Dst: EVP_add_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:72,1
    - Dst: EVP_seed_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:72,1
    - Dst: EVP_add_digest
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:76,1
    - Dst: EVP_md5
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:76,1
    - Dst: EVP_add_digest_alias
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:77,1
    - Dst: EVP_add_digest
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:78,1
    - Dst: EVP_md5_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:78,1
    - Dst: EVP_add_digest
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:80,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:80,1
    - Dst: EVP_add_digest_alias
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:81,1
    - Dst: EVP_add_digest_alias
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:82,1
    - Dst: EVP_add_digest
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:83,1
    - Dst: EVP_sha224
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:83,1
    - Dst: EVP_add_digest
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:84,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:84,1
    - Dst: EVP_add_digest
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:85,1
    - Dst: EVP_sha384
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:85,1
    - Dst: EVP_add_digest
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:86,1
    - Dst: EVP_sha512
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:86,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:89,1
    - Dst: SSL_COMP_get_compression_methods
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:96,1
    - Dst: ssl_load_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:99,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:102,1
    - Dst: SSL_add_ssl_module
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:105,1
    - Dst: OPENSSL_atexit
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 113
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c
    functionUses: 0
    functionsReached:
    - EVP_rc2_40_cbc
    - EVP_aes_128_ccm
    - EVP_camellia_256_cbc
    - EVP_sha224
    - fprintf
    - EVP_md5_sha1
    - EVP_md5
    - EVP_aes_256_cbc_hmac_sha256
    - EVP_aes_128_gcm
    - SSL_add_ssl_module
    - EVP_sha1
    - EVP_rc2_cbc
    - EVP_aes_256_ccm
    - EVP_des_cbc
    - EVP_aes_256_gcm
    - EVP_add_digest_alias
    - EVP_des_ede3_cbc
    - EVP_aes_128_cbc_hmac_sha256
    - EVP_add_digest
    - EVP_aes_128_cbc
    - EVP_aes_256_cbc_hmac_sha1
    - EVP_sha256
    - EVP_add_cipher
    - EVP_aes_192_cbc
    - EVP_sha512
    - EVP_sha384
    - EVP_rc4
    - EVP_rc4_hmac_md5
    - EVP_aes_256_cbc
    - ssl_load_ciphers
    - EVP_camellia_128_cbc
    - EVP_aes_128_cbc_hmac_sha1
    - EVP_chacha20_poly1305
    - EVP_seed_cbc
    - SSL_COMP_get_compression_methods
    - OPENSSL_atexit
    - EVP_idea_cbc
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(ossl_init_ssl_base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:125,1
    - Dst: ERR_load_SSL_strings
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 132
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c
    functionUses: 0
    functionsReached:
    - ERR_load_SSL_strings
    - fprintf
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(ossl_init_load_ssl_strings)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(ossl_init_no_load_ssl_strings)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:150,1
    - Dst: ssl_comp_free_compression_methods_int
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:153,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:159,1
    - Dst: err_free_strings_int
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 170
    functionName: ssl_library_stop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c
    functionUses: 0
    functionsReached:
    - err_free_strings_int
    - fprintf
    - ssl_comp_free_compression_methods_int
    linkageType: ''
    returnType: void
    signature: ssl_library_stop(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:189,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:194,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:198,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:202,1
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c:206,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - opts
    - settings
    argTypes:
    - uint64_t
    - OPENSSL_INIT_SETTINGS*
    constantsTouched: []
    func_position:
      end: 210
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 210
    functionName: OPENSSL_init_ssl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c
    functionUses: 1
    functionsReached:
    - OPENSSL_init_crypto
    - SSLerr
    - RUN_ONCE
    linkageType: ''
    returnType: int
    signature: OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS * settings)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - exts
    - ext_type
    argTypes:
    - custom_ext_methods*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 26
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 26
    functionName: custom_ext_find
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: custom_ext_method
    signature: "*custom_ext_find(const custom_ext_methods *exts,\n                                          unsigned
      int ext_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - exts
    argTypes:
    - custom_ext_methods*
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: custom_ext_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: custom_ext_init(custom_ext_methods *exts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: custom_ext_find
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c:46,1
    - Dst: custom_ext_method*::parse_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c:70,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 6
    argNames:
    - s
    - server
    - ext_type
    - ext_data
    - ext_size
    - al
    argTypes:
    - SSL*
    - int
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    constantsTouched: []
    func_position:
      end: 71
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 71
    functionName: custom_ext_parse
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c
    functionUses: 0
    functionsReached:
    - custom_ext_find
    - custom_ext_method*::parse_cb
    linkageType: ''
    returnType: int
    signature: "custom_ext_parse(SSL *s, int server,\n                     unsigned
      int ext_type,\n                     const unsigned char *ext_data, size_t ext_size,
      int *al)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: custom_ext_method*::add_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c:102,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c:111,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c:112,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c:114,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c:120,1
    - Dst: custom_ext_method*::free_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c:128,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 5
    argNames:
    - s
    - server
    - pret
    - limit
    - al
    argTypes:
    - SSL*
    - int
    - unsigned char**
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 132
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 132
    functionName: custom_ext_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c
    functionUses: 0
    functionsReached:
    - custom_ext_method*::free_cb
    - s2n
    - OPENSSL_assert
    - memcpy
    - custom_ext_method*::add_cb
    linkageType: ''
    returnType: int
    signature: "custom_ext_add(SSL *s, int server,\n                   unsigned char
      **pret, unsigned char *limit, int *al)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - custom_ext_methods*
    - custom_ext_methods*
    constantsTouched: []
    func_position:
      end: 146
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 146
    functionName: custom_exts_copy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c
    functionUses: 0
    functionsReached:
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: custom_exts_copy(custom_ext_methods *dst, const custom_ext_methods
      *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exts
    argTypes:
    - custom_ext_methods*
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: custom_exts_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: custom_exts_free(custom_ext_methods *exts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_extension_supported
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c:172,1
    - Dst: custom_ext_find
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c:179,1
    - Dst: OPENSSL_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c:181,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c:189,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 7
    argNames:
    - exts
    - ext_type
    - add_cb
    - free_cb
    - add_arg
    - parse_cb
    - parse_arg
    argTypes:
    - custom_ext_methods*
    - unsigned int
    - custom_ext_add_cb
    - custom_ext_free_cb
    - void*
    - custom_ext_parse_cb
    - void*
    constantsTouched: []
    func_position:
      end: 198
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 198
    functionName: custom_ext_meth_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c
    functionUses: 0
    functionsReached:
    - OPENSSL_realloc
    - custom_ext_find
    - SSL_extension_supported
    - memset
    linkageType: ''
    returnType: int
    signature: "custom_ext_meth_add(custom_ext_methods *exts,\n                               unsigned
      int ext_type,\n                               custom_ext_add_cb add_cb,\n                               custom_ext_free_cb
      free_cb,\n                               void *add_arg,\n                               custom_ext_parse_cb
      parse_cb, void *parse_arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: custom_ext_find
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ext_type
    argTypes:
    - SSL_CTX*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: SSL_CTX_has_client_custom_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c
    functionUses: 0
    functionsReached:
    - custom_ext_find
    linkageType: ''
    returnType: int
    signature: SSL_CTX_has_client_custom_ext(const SSL_CTX *ctx, unsigned int ext_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_ct_is_enabled
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c:220,1
    - Dst: custom_ext_meth_add
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 7
    argNames:
    - ctx
    - ext_type
    - add_cb
    - free_cb
    - add_arg
    - parse_cb
    - parse_arg
    argTypes:
    - SSL_CTX*
    - unsigned int
    - custom_ext_add_cb
    - custom_ext_free_cb
    - void*
    - custom_ext_parse_cb
    - void*
    constantsTouched: []
    func_position:
      end: 225
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 225
    functionName: SSL_CTX_add_client_custom_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c
    functionUses: 1
    functionsReached:
    - custom_ext_meth_add
    - SSL_CTX_ct_is_enabled
    linkageType: ''
    returnType: int
    signature: "SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, unsigned int ext_type,\n
      \                                 custom_ext_add_cb add_cb,\n                                  custom_ext_free_cb
      free_cb,\n                                  void *add_arg,\n                                  custom_ext_parse_cb
      parse_cb, void *parse_arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: custom_ext_meth_add
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ctx
    - ext_type
    - add_cb
    - free_cb
    - add_arg
    - parse_cb
    - parse_arg
    argTypes:
    - SSL_CTX*
    - unsigned int
    - custom_ext_add_cb
    - custom_ext_free_cb
    - void*
    - custom_ext_parse_cb
    - void*
    constantsTouched: []
    func_position:
      end: 235
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 235
    functionName: SSL_CTX_add_server_custom_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c
    functionUses: 0
    functionsReached:
    - custom_ext_meth_add
    linkageType: ''
    returnType: int
    signature: "SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, unsigned int ext_type,\n
      \                                 custom_ext_add_cb add_cb,\n                                  custom_ext_free_cb
      free_cb,\n                                  void *add_arg,\n                                  custom_ext_parse_cb
      parse_cb, void *parse_arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - ext_type
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 264
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 264
    functionName: SSL_extension_supported
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_extension_supported(unsigned int ext_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - dest
    - os
    - data
    - len
    argTypes:
    - ASN1_OCTET_STRING**
    - ASN1_OCTET_STRING*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: ssl_session_oinit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "ssl_session_oinit(ASN1_OCTET_STRING **dest, ASN1_OCTET_STRING *os,\n
      \                             unsigned char *data, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_session_oinit
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:115,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - dest
    - os
    - data
    argTypes:
    - ASN1_OCTET_STRING**
    - ASN1_OCTET_STRING*
    - char*
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: ssl_session_sinit
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c
    functionUses: 0
    functionsReached:
    - strlen
    - ssl_session_oinit
    linkageType: ''
    returnType: void
    signature: "ssl_session_sinit(ASN1_OCTET_STRING **dest, ASN1_OCTET_STRING *os,\n
      \                             char *data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:149,1
    - Dst: ssl_session_oinit
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:161,1
    - Dst: ssl_session_oinit
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:166,1
    - Dst: ssl_session_oinit
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:170,1
    - Dst: ssl_session_oinit
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:173,1
    - Dst: ssl_session_oinit
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:176,1
    - Dst: ssl_session_sinit
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:185,1
    - Dst: ssl_session_oinit
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:188,1
    - Dst: ssl_session_sinit
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:194,1
    - Dst: ssl_session_sinit
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:196,1
    - Dst: ssl_session_sinit
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:199,1
    - Dst: i2d_SSL_SESSION_ASN1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:204,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - in
    - pp
    argTypes:
    - SSL_SESSION*
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 206
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 206
    functionName: i2d_SSL_SESSION
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c
    functionUses: 2
    functionsReached:
    - ssl_session_oinit
    - ssl_session_sinit
    - memset
    - i2d_SSL_SESSION_ASN1
    linkageType: ''
    returnType: int
    signature: i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:214,1
    - Dst: OPENSSL_strndup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pdst
    - src
    argTypes:
    - char**
    - ASN1_OCTET_STRING*
    constantsTouched: []
    func_position:
      end: 222
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 222
    functionName: ssl_session_strndup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strndup
    linkageType: ''
    returnType: int
    signature: ssl_session_strndup(char **pdst, ASN1_OCTET_STRING *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - dst
    - pdstlen
    - src
    - maxlen
    argTypes:
    - unsigned char*
    - unsigned int*
    - ASN1_OCTET_STRING*
    - int
    constantsTouched: []
    func_position:
      end: 238
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 238
    functionName: ssl_session_memcpy
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "ssl_session_memcpy(unsigned char *dst, unsigned int *pdstlen,\n                              ASN1_OCTET_STRING
      *src, int maxlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_SSL_SESSION_ASN1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:249,1
    - Dst: SSL_SESSION_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:255,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:263,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:270,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:277,1
    - Dst: ssl_session_memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:287,1
    - Dst: ssl_session_memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:291,1
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:300,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:307,1
    - Dst: ssl_session_memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:311,1
    - Dst: ssl_session_strndup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:318,1
    - Dst: ssl_session_strndup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:322,1
    - Dst: ssl_session_strndup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:324,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:339,1
    - Dst: ssl_session_strndup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:349,1
    - Dst: M_ASN1_free_of
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:355,1
    - Dst: M_ASN1_free_of
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:363,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c:365,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 95
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - SSL_SESSION**
    - unsigned char**
    - long
    constantsTouched: []
    func_position:
      end: 367
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 367
    functionName: d2i_SSL_SESSION
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c
    functionUses: 3
    functionsReached:
    - ssl_session_memcpy
    - SSL_SESSION_free
    - SSLerr
    - d2i_SSL_SESSION_ASN1
    - M_ASN1_free_of
    - SSL_SESSION_new
    - ssl_session_strndup
    - X509_free
    - time
    linkageType: ''
    returnType: SSL_SESSION
    signature: "*d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp,\n                             long
      length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: SSL_test_functions
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_utst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct openssl_ssl_test_functions
    signature: '*SSL_test_functions(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: BIO_f_ssl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: '*BIO_f_ssl(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:55,1
    - Dst: BIOerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:58,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:61,1
    - Dst: BIO_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:62,1
    - Dst: BIO_clear_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: ssl_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - BIOerr
    - BIO_clear_flags
    - BIO_set_data
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: ssl_new(BIO *bi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:75,1
    - Dst: SSL_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:77,1
    - Dst: BIO_get_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:78,1
    - Dst: BIO_get_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:79,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:80,1
    - Dst: BIO_clear_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:82,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:83,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 87
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 87
    functionName: ssl_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - BIO_get_shutdown
    - BIO_clear_flags
    - BIO_get_data
    - BIO_get_init
    - SSL_free
    - SSL_shutdown
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: ssl_free(BIO *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:99,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:102,1
    - Dst: SSL_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:104,1
    - Dst: SSL_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:106,1
    - Dst: SSL_renegotiate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:115,1
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:122,1
    - Dst: SSL_renegotiate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:126,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:132,1
    - Dst: BIO_set_retry_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:135,1
    - Dst: BIO_set_retry_special
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:138,1
    - Dst: BIO_set_retry_special
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:142,1
    - Dst: BIO_set_retry_special
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:146,1
    - Dst: BIO_set_retry_reason
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:156,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 158
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 158
    functionName: ssl_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_renegotiate
    - BIO_clear_retry_flags
    - BIO_get_data
    - BIO_set_retry_write
    - SSL_read
    - BIO_set_retry_reason
    - BIO_set_retry_read
    - BIO_set_retry_special
    - time
    - SSL_get_error
    linkageType: ''
    returnType: int
    signature: ssl_read(BIO *b, char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:169,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:172,1
    - Dst: SSL_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:177,1
    - Dst: SSL_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:179,1
    - Dst: SSL_renegotiate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:188,1
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:195,1
    - Dst: SSL_renegotiate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:199,1
    - Dst: BIO_set_retry_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:204,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:207,1
    - Dst: BIO_set_retry_special
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:210,1
    - Dst: BIO_set_retry_special
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:214,1
    - Dst: BIO_set_retry_reason
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:222,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 224
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 224
    functionName: ssl_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_renegotiate
    - BIO_clear_retry_flags
    - SSL_write
    - BIO_get_data
    - BIO_set_retry_write
    - BIO_set_retry_reason
    - BIO_set_retry_read
    - BIO_set_retry_special
    - time
    - SSL_get_error
    linkageType: ''
    returnType: int
    signature: ssl_write(BIO *b, const char *out, int outl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:234,1
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:235,1
    - Dst: SSL_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:241,1
    - Dst: SSL_set_connect_state
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:244,1
    - Dst: SSL_set_accept_state
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:246,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:248,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:254,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:256,1
    - Dst: SSL_set_connect_state
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:265,1
    - Dst: SSL_set_accept_state
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:267,1
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:274,1
    - Dst: ssl_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:286,1
    - Dst: ssl_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:287,1
    - Dst: BIO_set_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:290,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:293,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:296,1
    - Dst: BIO_set_next
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:297,1
    - Dst: BIO_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:298,1
    - Dst: BIO_set_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:300,1
    - Dst: BIO_get_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:310,1
    - Dst: BIO_set_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:313,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:316,1
    - Dst: SSL_pending
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:319,1
    - Dst: BIO_pending
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:321,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:324,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:325,1
    - Dst: BIO_copy_next_retry
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:326,1
    - Dst: BIO_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:334,1
    - Dst: SSL_set_bio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:335,1
    - Dst: SSL_set_bio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:342,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:346,1
    - Dst: BIO_set_retry_reason
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:348,1
    - Dst: SSL_do_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:349,1
    - Dst: SSL_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:351,1
    - Dst: BIO_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:353,1
    - Dst: BIO_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:356,1
    - Dst: BIO_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:359,1
    - Dst: BIO_set_retry_reason
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:360,1
    - Dst: BIO_get_retry_reason
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:360,1
    - Dst: BIO_set_retry_special
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:363,1
    - Dst: BIO_set_retry_reason
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:364,1
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:372,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:373,1
    - Dst: SSL_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:374,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:383,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:389,1
    - Dst: SSL_get_info_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:401,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:405,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 155
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 409
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 409
    functionName: ssl_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_push
    - BIO_set_init
    - SSLerr
    - BIO_set_next
    - BIO_next
    - BIO_copy_next_retry
    - ssl_free
    - BIO_set_retry_reason
    - SSL_get_error
    - BIO_set_shutdown
    - BIO_pending
    - BIO_clear_retry_flags
    - BIO_get_data
    - SSL_set_bio
    - SSL_do_handshake
    - SSL_shutdown
    - SSL_free
    - SSL_get_info_callback
    - time
    - SSL_dup
    - BIO_get_retry_reason
    - SSL_set_connect_state
    - BIO_set_retry_special
    - SSL_pending
    - BIO_up_ref
    - BIO_set_flags
    - BIO_get_shutdown
    - SSL_set_accept_state
    - ssl_new
    - SSL_clear
    - SSL_get_rbio
    - BIO_ctrl
    linkageType: ''
    returnType: long
    signature: ssl_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:417,1
    - Dst: SSL_set_info_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:426,1
    - Dst: BIO_callback_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:430,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - bio_info_cb*
    constantsTouched: []
    func_position:
      end: 434
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 434
    functionName: ssl_callback_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - SSL_set_info_callback
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: ssl_callback_ctrl(BIO *b, int cmd, bio_info_cb *fp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:440,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    constantsTouched: []
    func_position:
      end: 443
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 443
    functionName: ssl_puts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c
    functionUses: 0
    functionsReached:
    - strlen
    - BIO_write
    linkageType: ''
    returnType: int
    signature: ssl_puts(BIO *bp, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:450,1
    - Dst: BIO_f_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:450,1
    - Dst: BIO_new_ssl_connect
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:452,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:454,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:458,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:459,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 462
      start: 445
    functionDepth: 4
    functionLinenumber: 445
    functionLinenumberEnd: 462
    functionName: BIO_new_buffer_ssl_connect
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_push
    - BIO_f_buffer
    - BIO_free
    - BIO_new_ssl_connect
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: '*BIO_new_buffer_ssl_connect(SSL_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:469,1
    - Dst: BIO_s_connect
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:469,1
    - Dst: BIO_new_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:471,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:473,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:477,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 480
      start: 464
    functionDepth: 4
    functionLinenumber: 464
    functionLinenumberEnd: 480
    functionName: BIO_new_ssl_connect
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c
    functionUses: 3
    functionsReached:
    - BIO_s_connect
    - BIO_push
    - BIO_new_ssl
    - BIO_free
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: '*BIO_new_ssl_connect(SSL_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:487,1
    - Dst: BIO_f_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:487,1
    - Dst: SSL_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:489,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:490,1
    - Dst: SSL_set_connect_state
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:494,1
    - Dst: SSL_set_accept_state
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:496,1
    - Dst: BIO_set_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:498,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - client
    argTypes:
    - SSL_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 500
      start: 482
    functionDepth: 4
    functionLinenumber: 482
    functionLinenumberEnd: 500
    functionName: BIO_new_ssl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c
    functionUses: 6
    functionsReached:
    - BIO_set_ssl
    - SSL_set_accept_state
    - SSL_new
    - BIO_f_ssl
    - BIO_free
    - SSL_set_connect_state
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: '*BIO_new_ssl(SSL_CTX *ctx, int client)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_find_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:505,1
    - Dst: BIO_find_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:506,1
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:509,1
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:510,1
    - Dst: SSL_copy_session_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:513,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - t
    - f
    argTypes:
    - BIO*
    - BIO*
    constantsTouched: []
    func_position:
      end: 516
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 516
    functionName: BIO_ssl_copy_session_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - BIO_find_type
    - SSL_copy_session_id
    linkageType: ''
    returnType: int
    signature: BIO_ssl_copy_session_id(BIO *t, BIO *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_find_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:522,1
    - Dst: BIO_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:526,1
    - Dst: SSL_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c:527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    constantsTouched: []
    func_position:
      end: 528
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 528
    functionName: BIO_ssl_shutdown
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - BIO_find_type
    - SSL_shutdown
    linkageType: ''
    returnType: void
    signature: BIO_ssl_shutdown(BIO *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tlsv1_2_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: TLSv1_2_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c
    functionUses: 0
    functionsReached:
    - tlsv1_2_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: '*TLSv1_2_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tlsv1_2_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: TLSv1_2_server_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c
    functionUses: 0
    functionsReached:
    - tlsv1_2_server_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: '*TLSv1_2_server_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tlsv1_2_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: TLSv1_2_client_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c
    functionUses: 0
    functionsReached:
    - tlsv1_2_client_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: '*TLSv1_2_client_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tlsv1_1_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: TLSv1_1_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c
    functionUses: 0
    functionsReached:
    - tlsv1_1_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: '*TLSv1_1_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tlsv1_1_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: TLSv1_1_server_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c
    functionUses: 0
    functionsReached:
    - tlsv1_1_server_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: '*TLSv1_1_server_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tlsv1_1_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: TLSv1_1_client_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c
    functionUses: 0
    functionsReached:
    - tlsv1_1_client_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: '*TLSv1_1_client_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tlsv1_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: TLSv1_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c
    functionUses: 0
    functionsReached:
    - tlsv1_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: '*TLSv1_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tlsv1_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: TLSv1_server_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c
    functionUses: 0
    functionsReached:
    - tlsv1_server_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: '*TLSv1_server_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tlsv1_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: TLSv1_client_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c
    functionUses: 0
    functionsReached:
    - tlsv1_client_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: '*TLSv1_client_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sslv3_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: SSLv3_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c
    functionUses: 0
    functionsReached:
    - sslv3_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: '*SSLv3_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sslv3_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: SSLv3_server_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c
    functionUses: 0
    functionsReached:
    - sslv3_server_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: '*SSLv3_server_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sslv3_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: SSLv3_client_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c
    functionUses: 0
    functionsReached:
    - sslv3_client_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: '*SSLv3_client_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dtlsv1_2_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: DTLSv1_2_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c
    functionUses: 0
    functionsReached:
    - dtlsv1_2_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: '*DTLSv1_2_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dtlsv1_2_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: DTLSv1_2_server_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c
    functionUses: 0
    functionsReached:
    - dtlsv1_2_server_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: '*DTLSv1_2_server_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dtlsv1_2_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: DTLSv1_2_client_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c
    functionUses: 0
    functionsReached:
    - dtlsv1_2_client_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: '*DTLSv1_2_client_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dtlsv1_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: DTLSv1_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c
    functionUses: 0
    functionsReached:
    - dtlsv1_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: '*DTLSv1_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dtlsv1_server_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: DTLSv1_server_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c
    functionUses: 0
    functionsReached:
    - dtlsv1_server_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: '*DTLSv1_server_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dtlsv1_client_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: DTLSv1_client_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c
    functionUses: 0
    functionsReached:
    - dtlsv1_client_method
    linkageType: ''
    returnType: SSL_METHOD
    signature: '*DTLSv1_client_method(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ossl_statem_in_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_stat.c:42,1
    - Dst: SSL_get_state
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_stat.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 77
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 119
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 119
    functionName: SSL_state_string_long
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_stat.c
    functionUses: 5
    functionsReached:
    - SSL_get_state
    - ossl_statem_in_error
    linkageType: ''
    returnType: char
    signature: '*SSL_state_string_long(const SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ossl_statem_in_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_stat.c:123,1
    - Dst: SSL_get_state
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_stat.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 77
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 200
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 200
    functionName: SSL_state_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_stat.c
    functionUses: 1
    functionsReached:
    - SSL_get_state
    - ossl_statem_in_error
    linkageType: ''
    returnType: char
    signature: '*SSL_state_string(const SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 212
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 212
    functionName: SSL_alert_type_string_long
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_stat.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*SSL_alert_type_string_long(int value)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 224
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 224
    functionName: SSL_alert_type_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_stat.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*SSL_alert_type_string(int value)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 65
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 292
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 292
    functionName: SSL_alert_desc_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_stat.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*SSL_alert_desc_string(int value)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 67
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 362
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 362
    functionName: SSL_alert_desc_string_long
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_stat.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*SSL_alert_desc_string_long(int value)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:43,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:45,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:46,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:48,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    constantsTouched: []
    func_position:
      end: 53
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 53
    functionName: ssl_module_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: ssl_module_free(CONF_IMODULE *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:60,1
    - Dst: CONF_imodule_get_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:61,1
    - Dst: NCONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:62,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:63,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:65,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:67,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:68,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:71,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:72,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:76,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:77,1
    - Dst: NCONF_get_section
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:77,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:78,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:80,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:83,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:84,1
    - Dst: BUF_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:87,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:90,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:91,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:97,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:100,1
    - Dst: BUF_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:105,1
    - Dst: BUF_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:106,1
    - Dst: ssl_module_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:115,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 2
    argNames:
    - md
    - cnf
    argTypes:
    - CONF_IMODULE*
    - CONF*
    constantsTouched: []
    func_position:
      end: 117
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 117
    functionName: ssl_module_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_value
    - SSLerr
    - ssl_module_free
    - STACK_OF
    - BUF_strdup
    - sk_CONF_VALUE_num
    - strchr
    - CONF_imodule_get_value
    - ERR_add_error_data
    - OPENSSL_zalloc
    - NCONF_get_section
    linkageType: ''
    returnType: int
    signature: ssl_module_init(CONF_IMODULE *md, const CONF *cnf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONF_module_add
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: SSL_add_ssl_module
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c
    functionUses: 1
    functionsReached:
    - CONF_module_add
    linkageType: ''
    returnType: void
    signature: SSL_add_ssl_module(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 135
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 135
    functionName: ssl_name_find
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct ssl_conf_name
    signature: '*ssl_name_find(const char *name)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:147,1
    - Dst: ssl_name_find
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:150,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:152,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:153,1
    - Dst: SSL_CONF_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:156,1
    - Dst: SSL_CONF_CTX_set_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:163,1
    - Dst: SSL_CONF_CTX_set_ssl_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:166,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:172,1
    - Dst: SSL_CONF_cmd
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:174,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:177,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:179,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:180,1
    - Dst: SSL_CONF_CTX_finish
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:185,1
    - Dst: SSL_CONF_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:187,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 3
    argNames:
    - s
    - ctx
    - name
    argTypes:
    - SSL*
    - SSL_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 189
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 189
    functionName: ssl_do_config
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c
    functionUses: 0
    functionsReached:
    - SSL_CONF_CTX_set_flags
    - SSL_CONF_cmd
    - SSLerr
    - SSL_CONF_CTX_free
    - SSL_CONF_CTX_finish
    - ERR_add_error_data
    - SSL_CONF_CTX_set_ssl_ctx
    - ssl_name_find
    - SSL_CONF_CTX_new
    - SSL_CONF_CTX_set_ssl
    linkageType: ''
    returnType: int
    signature: ssl_do_config(SSL *s, SSL_CTX *ctx, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_do_config
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - name
    argTypes:
    - SSL*
    - char*
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: SSL_config
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c
    functionUses: 0
    functionsReached:
    - ssl_do_config
    linkageType: ''
    returnType: int
    signature: SSL_config(SSL *s, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_do_config
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - SSL_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 4
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: SSL_CTX_config
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c
    functionUses: 3
    functionsReached:
    - ssl_do_config
    linkageType: ''
    returnType: int
    signature: SSL_CTX_config(SSL_CTX *ctx, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:20,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - s
    - p
    - len
    - maxlen
    argTypes:
    - SSL*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 36
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 36
    functionName: ssl_add_clienthello_renegotiate_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c
    functionUses: 0
    functionsReached:
    - memcpy
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "ssl_add_clienthello_renegotiate_ext(SSL *s, unsigned char *p, int
      *len,\n                                        int maxlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:47,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:48,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:49,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:57,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:63,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - s
    - pkt
    - al
    argTypes:
    - SSL*
    - PACKET*
    - int*
    constantsTouched: []
    func_position:
      end: 74
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 74
    functionName: ssl_parse_clienthello_renegotiate_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - memcmp
    - PACKET_get_1
    - PACKET_get_bytes
    linkageType: ''
    returnType: int
    signature: ssl_parse_clienthello_renegotiate_ext(SSL *s, PACKET *pkt, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:83,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:93,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - s
    - p
    - len
    - maxlen
    argTypes:
    - SSL*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 105
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 105
    functionName: ssl_add_serverhello_renegotiate_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c
    functionUses: 0
    functionsReached:
    - memcpy
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "ssl_add_serverhello_renegotiate_ext(SSL *s, unsigned char *p, int
      *len,\n                                        int maxlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:118,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:119,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:122,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:123,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:130,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:131,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:139,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:145,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:146,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:148,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:154,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:155,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c:157,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - s
    - pkt
    - al
    argTypes:
    - SSL*
    - PACKET*
    - int*
    constantsTouched: []
    func_position:
      end: 165
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 165
    functionName: ssl_parse_serverhello_renegotiate_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c
    functionUses: 0
    functionsReached:
    - memcmp
    - SSLerr
    - OPENSSL_assert
    - PACKET_remaining
    - PACKET_get_1
    - PACKET_get_bytes
    linkageType: ''
    returnType: int
    signature: ssl_parse_serverhello_renegotiate_ext(SSL *s, PACKET *pkt, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_msg.c:22,1
    - Dst: ossl_statem_get_in_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_msg.c:22,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_msg.c:23,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_msg.c:23,1
    - Dst: ossl_statem_in_sctp_read_sock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_msg.c:24,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_msg.c:26,1
    - Dst: ossl_statem_get_in_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_msg.c:26,1
    - Dst: SSL*::handshake_func
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_msg.c:29,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_msg.c:33,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_msg.c:40,1
    - Dst: dtls1_write_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_msg.c:44,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 4
    argNames:
    - s
    - type
    - buf_
    - len
    argTypes:
    - SSL*
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 46
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 46
    functionName: dtls1_write_app_data_bytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_msg.c
    functionUses: 0
    functionsReached:
    - dtls1_write_bytes
    - SSL*::handshake_func
    - BIO_dgram_is_sctp
    - SSLerr
    - ossl_statem_get_in_handshake
    - SSL_in_init
    - ossl_statem_in_sctp_read_sock
    - SSL_get_wbio
    linkageType: ''
    returnType: int
    signature: dtls1_write_app_data_bytes(SSL *s, int type, const void *buf_, int
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_msg.c:57,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_msg.c:63,1
    - Dst: l2n3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_msg.c:64,1
    - Dst: do_dtls1_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_msg.c:68,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_msg.c:78,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_msg.c:81,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_msg.c:91,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 95
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 95
    functionName: dtls1_dispatch_alert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_msg.c
    functionUses: 0
    functionsReached:
    - do_dtls1_write
    - s2n
    - BIO_flush
    - l2n3
    - memset
    - cb
    - SSL*::msg_callback
    linkageType: ''
    returnType: int
    signature: dtls1_dispatch_alert(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 2729
      start: 2723
    functionDepth: 0
    functionLinenumber: 2723
    functionLinenumberEnd: 2729
    functionName: cipher_compare
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: cipher_compare(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2733,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2735
      start: 2731
    functionDepth: 0
    functionLinenumber: 2731
    functionLinenumberEnd: 2735
    functionName: ssl_sort_cipher_list
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - qsort
    linkageType: ''
    returnType: void
    signature: ssl_sort_cipher_list(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2764
      start: 2757
    functionDepth: 0
    functionLinenumber: 2757
    functionLinenumberEnd: 2764
    functionName: ssl3_default_timeout
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: ssl3_default_timeout(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2769
      start: 2766
    functionDepth: 0
    functionLinenumber: 2766
    functionLinenumberEnd: 2769
    functionName: ssl3_num_ciphers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ssl3_num_ciphers(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - u
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 2777
      start: 2771
    functionDepth: 0
    functionLinenumber: 2771
    functionLinenumberEnd: 2777
    functionName: ssl3_get_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SSL_CIPHER
    signature: '*ssl3_get_cipher(unsigned int u)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: l2n3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - s
    - htype
    - len
    argTypes:
    - SSL*
    - int
    - unsigned long
    constantsTouched: []
    func_position:
      end: 2788
      start: 2779
    functionDepth: 0
    functionLinenumber: 2779
    functionLinenumberEnd: 2788
    functionName: ssl3_set_handshake_header
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - l2n3
    linkageType: ''
    returnType: int
    signature: ssl3_set_handshake_header(SSL *s, int htype, unsigned long len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_do_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2793
      start: 2790
    functionDepth: 1
    functionLinenumber: 2790
    functionLinenumberEnd: 2793
    functionName: ssl3_handshake_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - ssl3_do_write
    linkageType: ''
    returnType: int
    signature: ssl3_handshake_write(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2799,1
    - Dst: SSL_SRP_CTX_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2804,1
    - Dst: SSL*::method::ssl_clear
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2807,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2811
      start: 2795
    functionDepth: 1
    functionLinenumber: 2795
    functionLinenumberEnd: 2811
    functionName: ssl3_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - SSL_SRP_CTX_init
    - SSL*::method::ssl_clear
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: ssl3_new(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_cleanup_key_block
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2818,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2821,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2823,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2827,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2828,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2829,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2830,1
    - Dst: ssl3_free_digest_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2831,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2832,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2833,1
    - Dst: SSL_SRP_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2836,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2838,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2840
      start: 2813
    functionDepth: 2
    functionLinenumber: 2813
    functionLinenumberEnd: 2840
    functionName: ssl3_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - ssl3_free_digest_list
    - SSL_SRP_CTX_free
    - ssl3_cleanup_key_block
    - OPENSSL_clear_free
    - OPENSSL_free
    - sk_X509_NAME_pop_free
    linkageType: ''
    returnType: void
    signature: ssl3_free(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_cleanup_key_block
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2844,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2845,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2846,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2847,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2848,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2851,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2852,1
    - Dst: ssl3_free_digest_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2855,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2857,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2858,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2861,1
    - Dst: ssl_free_wbio_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2863,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2868,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2872
      start: 2842
    functionDepth: 2
    functionLinenumber: 2842
    functionLinenumberEnd: 2872
    functionName: ssl3_clear
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - ssl3_free_digest_list
    - memset
    - ssl3_cleanup_key_block
    - ssl_free_wbio_buffer
    - OPENSSL_clear_free
    - OPENSSL_free
    - EVP_PKEY_free
    - sk_X509_NAME_pop_free
    linkageType: ''
    returnType: void
    signature: ssl3_clear(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    constantsTouched: []
    func_position:
      end: 2878
      start: 2875
    functionDepth: 0
    functionLinenumber: 2875
    functionLinenumberEnd: 2878
    functionName: srp_password_from_info_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    linkageType: ''
    returnType: char
    signature: '*srp_password_from_info_cb(SSL *s, void *arg)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2909,1
    - Dst: ssl_dh_to_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2912,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2914,1
    - Dst: ssl_security
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2917,1
    - Dst: EVP_PKEY_security_bits
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2918,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2919,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2920,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2923,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2930,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2944,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2947,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2949,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2952,1
    - Dst: tls1_set_curves
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2955,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2965,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2971,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2973,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2976,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2977,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:2981,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3000,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3010,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3024,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3032,1
    - Dst: dtls1_heartbeat
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3033,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3037,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3042,1
    - Dst: ssl_cert_set1_chain
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3054,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3054,1
    - Dst: ssl_cert_set0_chain
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3056,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3056,1
    - Dst: ssl_cert_add1_chain_cert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3060,1
    - Dst: ssl_cert_add0_chain_cert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3062,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3065,1
    - Dst: ssl_cert_select_current
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3069,1
    - Dst: ssl_get_server_send_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3086,1
    - Dst: ssl_cert_set_current
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3092,1
    - Dst: n2s
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3108,1
    - Dst: tls1_ec_curve_id2nid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3109,1
    - Dst: tls1_set_curves
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3120,1
    - Dst: tls1_set_curves_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3124,1
    - Dst: tls1_shared_curve
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3128,1
    - Dst: tls1_set_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3132,1
    - Dst: tls1_set_sigalgs_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3135,1
    - Dst: tls1_set_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3138,1
    - Dst: tls1_set_sigalgs_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3141,1
    - Dst: ssl3_set_req_cert_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3161,1
    - Dst: ssl_build_cert_chain
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3164,1
    - Dst: ssl_cert_set_cert_store
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3167,1
    - Dst: ssl_cert_set_cert_store
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3170,1
    - Dst: SSL_USE_SIGALGS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3173,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3178,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3193,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 245
    argCount: 4
    argNames:
    - s
    - cmd
    - larg
    - parg
    argTypes:
    - SSL*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 3216
      start: 2883
    functionDepth: 2
    functionLinenumber: 2883
    functionLinenumberEnd: 3216
    functionName: ssl3_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - ssl_get_server_send_pkey
    - tls1_set_sigalgs
    - ssl_cert_set1_chain
    - ssl_dh_to_pkey
    - EVP_MD_type
    - OPENSSL_strdup
    - ssl_cert_add0_chain_cert
    - SSL_USE_SIGALGS
    - EVP_PKEY_free
    - dtls1_heartbeat
    - ssl_cert_set_cert_store
    - EVP_PKEY_up_ref
    - ssl_security
    - ssl_cert_set0_chain
    - ssl3_set_req_cert_type
    - ssl_cert_set_current
    - ssl_build_cert_chain
    - strlen
    - OPENSSL_free
    - EC_KEY_get0_group
    - tls1_ec_curve_id2nid
    - tls1_shared_curve
    - ssl_cert_select_current
    - tls1_set_curves_list
    - ssl_cert_add1_chain_cert
    - EC_GROUP_get_curve_name
    - tls1_set_curves
    - STACK_OF
    - EVP_PKEY_security_bits
    - tls1_set_sigalgs_list
    - n2s
    - SSL_IS_DTLS
    linkageType: ''
    returnType: long
    signature: ssl3_ctrl(SSL *s, int cmd, long larg, void *parg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - s
    - cmd
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 3244
      start: 3218
    functionDepth: 0
    functionLinenumber: 3218
    functionLinenumberEnd: 3244
    functionName: ssl3_callback_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: ssl3_callback_ctrl(SSL *s, int cmd, void (*fp) (void))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3255,1
    - Dst: ssl_dh_to_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3258,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3260,1
    - Dst: ssl_ctx_security
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3263,1
    - Dst: EVP_PKEY_security_bits
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3264,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3265,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3266,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3269,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3278,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3292,1
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3295,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3297,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3300,1
    - Dst: tls1_set_curves
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3303,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3322,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3326,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3328,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3331,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3336,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3338,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3341,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3371,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3375,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3375,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3376,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3379,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3380,1
    - Dst: tls1_set_curves
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3401,1
    - Dst: tls1_set_curves_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3406,1
    - Dst: tls1_set_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3411,1
    - Dst: tls1_set_sigalgs_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3414,1
    - Dst: tls1_set_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3417,1
    - Dst: tls1_set_sigalgs_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3420,1
    - Dst: ssl3_set_req_cert_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3423,1
    - Dst: ssl_build_cert_chain
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3426,1
    - Dst: ssl_cert_set_cert_store
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3429,1
    - Dst: ssl_cert_set_cert_store
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3432,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3437,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3438,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3442,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3443,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3450,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3452,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3456,1
    - Dst: ssl_cert_set1_chain
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3462,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3462,1
    - Dst: ssl_cert_set0_chain
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3464,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3464,1
    - Dst: ssl_cert_add1_chain_cert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3468,1
    - Dst: ssl_cert_add0_chain_cert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3470,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3473,1
    - Dst: ssl_cert_select_current
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3477,1
    - Dst: ssl_cert_set_current
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3480,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 165
    argCount: 4
    argNames:
    - ctx
    - cmd
    - larg
    - parg
    argTypes:
    - SSL_CTX*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 3486
      start: 3246
    functionDepth: 2
    functionLinenumber: 3246
    functionLinenumberEnd: 3486
    functionName: ssl3_ctx_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - sk_X509_pop_free
    - tls1_set_sigalgs
    - ssl_cert_set1_chain
    - ssl_dh_to_pkey
    - OPENSSL_strdup
    - ssl_cert_add0_chain_cert
    - EVP_PKEY_free
    - ssl_cert_set_cert_store
    - sk_X509_push
    - ssl_ctx_security
    - ssl_cert_set0_chain
    - ssl3_set_req_cert_type
    - ssl_cert_set_current
    - ssl_build_cert_chain
    - strlen
    - OPENSSL_free
    - EC_KEY_get0_group
    - sk_X509_new_null
    - ssl_cert_select_current
    - tls1_set_curves_list
    - ssl_cert_add1_chain_cert
    - EC_GROUP_get_curve_name
    - tls1_set_curves
    - STACK_OF
    - memcpy
    - EVP_PKEY_security_bits
    - tls1_set_sigalgs_list
    linkageType: ''
    returnType: long
    signature: ssl3_ctx_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - ctx
    - cmd
    argTypes:
    - SSL_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 3538
      start: 3488
    functionDepth: 0
    functionLinenumber: 3488
    functionLinenumberEnd: 3538
    functionName: ssl3_ctx_callback_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: ssl3_ctx_callback_ctrl(SSL_CTX *ctx, int cmd, void (*fp) (void))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_bsearch_ssl_cipher_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 3554
      start: 3544
    functionDepth: 0
    functionLinenumber: 3544
    functionLinenumberEnd: 3554
    functionName: ssl3_get_cipher_by_char
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_bsearch_ssl_cipher_id
    linkageType: ''
    returnType: SSL_CIPHER
    signature: '*ssl3_get_cipher_by_char(const unsigned char *p)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - c
    - p
    argTypes:
    - SSL_CIPHER*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 3568
      start: 3556
    functionDepth: 0
    functionLinenumber: 3556
    functionLinenumberEnd: 3568
    functionName: ssl3_put_cipher_by_char
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ssl3_put_cipher_by_char(const SSL_CIPHER *c, unsigned char *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3582,1
    - Dst: sk_SSL_CIPHER_set_cmp_func
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3595,1
    - Dst: sk_SSL_CIPHER_set_cmp_func
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3596,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3600,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3600,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3602,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3603,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3604,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3606,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3606,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3608,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3609,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3610,1
    - Dst: tls1_suiteb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3614,1
    - Dst: tls1_set_cert_validity
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3622,1
    - Dst: ssl_set_masks
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3623,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3625,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3626,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3629,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3632,1
    - Dst: DTLS_VERSION_LT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3633,1
    - Dst: DTLS_VERSION_GT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3634,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3657,1
    - Dst: tls1_check_ec_tmp_key
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3667,1
    - Dst: sk_SSL_CIPHER_find
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3672,1
    - Dst: ssl_security
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3675,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3682,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3686,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 59
    argCount: 3
    argNames:
    - s
    - clnt
    - srvr
    argTypes:
    - SSL*
    - STACK_OF*
    - STACK_OF*
    constantsTouched: []
    func_position:
      end: 3691
      start: 3578
    functionDepth: 1
    functionLinenumber: 3578
    functionLinenumberEnd: 3691
    functionName: ssl3_choose_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - ssl_set_masks
    - STACK_OF
    - ssl_security
    - sk_SSL_CIPHER_num
    - tls1_set_cert_validity
    - DTLS_VERSION_LT
    - sk_SSL_CIPHER_set_cmp_func
    - DTLS_VERSION_GT
    - sk_SSL_CIPHER_value
    - tls1_check_ec_tmp_key
    - sk_SSL_CIPHER_find
    - tls1_suiteb
    - fprintf
    - SSL_IS_DTLS
    linkageType: ''
    returnType: SSL_CIPHER
    signature: "*ssl3_choose_cipher(SSL *s, STACK_OF(SSL_CIPHER) *clnt,\n                                     STACK_OF(SSL_CIPHER)
      *srvr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3700,1
    - Dst: ssl_set_sig_mask
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3704,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - s
    - p
    argTypes:
    - SSL*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 3748
      start: 3693
    functionDepth: 1
    functionLinenumber: 3693
    functionLinenumberEnd: 3748
    functionName: ssl3_get_req_cert_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - ssl_set_sig_mask
    - memcpy
    linkageType: ''
    returnType: int
    signature: ssl3_get_req_cert_type(SSL *s, unsigned char *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3752,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3758,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3761,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - c
    - p
    - len
    argTypes:
    - CERT*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 3764
      start: 3750
    functionDepth: 0
    functionLinenumber: 3750
    functionLinenumberEnd: 3764
    functionName: ssl3_set_req_cert_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - memcpy
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: ssl3_set_req_cert_type(CERT *c, const unsigned char *p, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_in_before
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3774,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3781,1
    - Dst: SSL*::method::ssl_dispatch_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3790,1
    - Dst: SSL*::method::ssl_read_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3803,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3814
      start: 3766
    functionDepth: 1
    functionLinenumber: 3766
    functionLinenumberEnd: 3814
    functionName: ssl3_shutdown
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - SSL_in_before
    - ssl3_send_alert
    - SSL*::method::ssl_read_bytes
    - SSL*::method::ssl_dispatch_alert
    linkageType: ''
    returnType: int
    signature: ssl3_shutdown(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear_sys_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3818,1
    - Dst: ssl3_renegotiate_check
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3820,1
    - Dst: SSL*::method::ssl_write_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - s
    - buf
    - len
    argTypes:
    - SSL*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 3823
      start: 3816
    functionDepth: 1
    functionLinenumber: 3816
    functionLinenumberEnd: 3823
    functionName: ssl3_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - clear_sys_error
    - SSL*::method::ssl_write_bytes
    - ssl3_renegotiate_check
    linkageType: ''
    returnType: int
    signature: ssl3_write(SSL *s, const void *buf, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear_sys_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3829,1
    - Dst: ssl3_renegotiate_check
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3831,1
    - Dst: SSL*::method::ssl_read_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3834,1
    - Dst: ossl_statem_set_in_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3844,1
    - Dst: SSL*::method::ssl_read_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3846,1
    - Dst: ossl_statem_set_in_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3848,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - s
    - buf
    - len
    - peek
    argTypes:
    - SSL*
    - void*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 3853
      start: 3825
    functionDepth: 1
    functionLinenumber: 3825
    functionLinenumberEnd: 3853
    functionName: ssl3_read_internal
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - clear_sys_error
    - SSL*::method::ssl_read_bytes
    - ossl_statem_set_in_handshake
    - ssl3_renegotiate_check
    linkageType: ''
    returnType: int
    signature: ssl3_read_internal(SSL *s, void *buf, int len, int peek)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_read_internal
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - buf
    - len
    argTypes:
    - SSL*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 3858
      start: 3855
    functionDepth: 2
    functionLinenumber: 3855
    functionLinenumberEnd: 3858
    functionName: ssl3_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - ssl3_read_internal
    linkageType: ''
    returnType: int
    signature: ssl3_read(SSL *s, void *buf, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_read_internal
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - buf
    - len
    argTypes:
    - SSL*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 3863
      start: 3860
    functionDepth: 2
    functionLinenumber: 3860
    functionLinenumberEnd: 3863
    functionName: ssl3_peek
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - ssl3_read_internal
    linkageType: ''
    returnType: int
    signature: ssl3_peek(SSL *s, void *buf, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3875
      start: 3865
    functionDepth: 0
    functionLinenumber: 3865
    functionLinenumberEnd: 3875
    functionName: ssl3_renegotiate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ssl3_renegotiate(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_read_pending
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3882,1
    - Dst: RECORD_LAYER_write_pending
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3883,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3884,1
    - Dst: ossl_statem_set_renegotiate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3890,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3898
      start: 3877
    functionDepth: 1
    functionLinenumber: 3877
    functionLinenumberEnd: 3898
    functionName: ssl3_renegotiate_check
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 2
    functionsReached:
    - RECORD_LAYER_read_pending
    - SSL_in_init
    - RECORD_LAYER_write_pending
    - ossl_statem_set_renegotiate
    linkageType: ''
    returnType: int
    signature: ssl3_renegotiate_check(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3920
      start: 3906
    functionDepth: 0
    functionLinenumber: 3906
    functionLinenumberEnd: 3920
    functionName: ssl_get_algorithm2
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: ssl_get_algorithm2(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3939,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3940,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3942,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - s
    - server
    - result
    - len
    argTypes:
    - SSL*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 3943
      start: 3926
    functionDepth: 0
    functionLinenumber: 3926
    functionLinenumberEnd: 3943
    functionName: ssl_fill_hello_random
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - l2n
    - RAND_bytes
    linkageType: ''
    returnType: int
    signature: ssl_fill_hello_random(SSL *s, int server, unsigned char *result, int
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3962,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3968,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3970,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3972,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3974,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3975,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3977,1
    - Dst: SSL*::method::ssl3_enc::generate_master_secret
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3980,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3983,1
    - Dst: SSL*::method::ssl3_enc::generate_master_secret
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3991,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:3999,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4001,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 4
    argNames:
    - s
    - pms
    - pmslen
    - free_pms
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 4006
      start: 3945
    functionDepth: 1
    functionLinenumber: 3945
    functionLinenumberEnd: 4006
    functionName: ssl_generate_master_secret
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - s2n
    - SSL*::method::ssl3_enc::generate_master_secret
    - memset
    - memcpy
    - OPENSSL_cleanse
    - OPENSSL_clear_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "ssl_generate_master_secret(SSL *s, unsigned char *pms, size_t pmslen,\n
      \                              int free_pms)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4016,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4019,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4021,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4022,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4027,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - pm
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 4029
      start: 4009
    functionDepth: 3
    functionLinenumber: 4009
    functionLinenumberEnd: 4029
    functionName: ssl_generate_pkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new
    - EVP_PKEY_CTX_free
    - EVP_PKEY_keygen
    - EVP_PKEY_free
    - EVP_PKEY_keygen_init
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*ssl_generate_pkey(EVP_PKEY *pm)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4042,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4045,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4049,1
    - Dst: EVP_PKEY_CTX_set_ec_paramgen_curve_nid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4051,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4053,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4054,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4059,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 4061
      start: 4032
    functionDepth: 3
    functionLinenumber: 4032
    functionLinenumberEnd: 4061
    functionName: ssl_generate_pkey_curve
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_set_ec_paramgen_curve_nid
    - EVP_PKEY_keygen
    - EVP_PKEY_free
    - EVP_PKEY_keygen_init
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*ssl_generate_pkey_curve(int id)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4075,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4077,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4078,1
    - Dst: EVP_PKEY_derive
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4079,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4083,1
    - Dst: EVP_PKEY_derive
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4087,1
    - Dst: ssl_generate_master_secret
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4092,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4103,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4104,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - s
    - privkey
    - pubkey
    argTypes:
    - SSL*
    - EVP_PKEY*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 4106
      start: 4065
    functionDepth: 3
    functionLinenumber: 4065
    functionLinenumberEnd: 4106
    functionName: ssl_derive
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_derive
    - EVP_PKEY_CTX_new
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_free
    - EVP_PKEY_derive_set_peer
    - ssl_generate_master_secret
    - OPENSSL_clear_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: ssl_derive(SSL *s, EVP_PKEY *privkey, EVP_PKEY *pubkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4114,1
    - Dst: EVP_PKEY_set1_DH
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4115,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c:4116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    constantsTouched: []
    func_position:
      end: 4120
      start: 4109
    functionDepth: 2
    functionLinenumber: 4109
    functionLinenumberEnd: 4120
    functionName: ssl_dh_to_pkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY_new
    - EVP_PKEY_set1_DH
    - EVP_PKEY_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*ssl_dh_to_pkey(DH *dh)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:55,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:56,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:58,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:61,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:66,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:73,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:73,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:74,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:75,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:77,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:78,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:79,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:80,1
    - Dst: EVP_md5
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:80,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:81,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:83,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:86,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:88,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:90,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:96,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:99,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:100,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 43
    argCount: 3
    argNames:
    - s
    - km
    - num
    argTypes:
    - SSL*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 102
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 102
    functionName: ssl3_generate_key_block
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_sha1
    - SSLerr
    - EVP_DigestUpdate
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - EVP_MD_CTX_set_flags
    - memcpy
    - OPENSSL_cleanse
    - EVP_md5
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: ssl3_generate_key_block(SSL *s, unsigned char *km, int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:122,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:133,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:139,1
    - Dst: ssl_replace_hash
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:142,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:143,1
    - Dst: COMP_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:148,1
    - Dst: COMP_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:151,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:153,1
    - Dst: RECORD_LAYER_reset_read_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:159,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:164,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:170,1
    - Dst: ssl_replace_hash
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:172,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:173,1
    - Dst: COMP_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:178,1
    - Dst: COMP_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:181,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:183,1
    - Dst: RECORD_LAYER_reset_write_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:189,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:194,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:197,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:200,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:202,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:222,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:226,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:228,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:236,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:237,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:239,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:242,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:248,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:249,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:252,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:254,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:255,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 112
    argCount: 2
    argNames:
    - s
    - which
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 257
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 257
    functionName: ssl3_change_cipher_state
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c
    functionUses: 0
    functionsReached:
    - RECORD_LAYER_reset_read_sequence
    - EVP_CIPHER_key_length
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_reset
    - SSLerr
    - OPENSSL_assert
    - RECORD_LAYER_reset_write_sequence
    - COMP_CTX_free
    - EVP_MD_size
    - ssl_replace_hash
    - COMP_CTX_new
    - memcpy
    - EVP_CipherInit_ex
    - OPENSSL_cleanse
    - EVP_CIPHER_iv_length
    - SSL*::msg_callback
    linkageType: ''
    returnType: int
    signature: ssl3_change_cipher_state(SSL *s, int which)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cipher_get_evp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:271,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:272,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:284,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:288,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:288,1
    - Dst: ssl3_cleanup_key_block
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:291,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:293,1
    - Dst: ssl3_generate_key_block
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:299,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:322,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 324
      start: 259
    functionDepth: 5
    functionLinenumber: 259
    functionLinenumberEnd: 324
    functionName: ssl3_setup_key_block
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_key_length
    - SSLerr
    - ssl_cipher_get_evp
    - EVP_MD_size
    - ssl3_cleanup_key_block
    - ssl3_generate_key_block
    - EVP_CIPHER_iv_length
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: ssl3_setup_key_block(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 331
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 331
    functionName: ssl3_cleanup_key_block
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c
    functionUses: 3
    functionsReached:
    - OPENSSL_clear_free
    linkageType: ''
    returnType: void
    signature: ssl3_cleanup_key_block(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:335,1
    - Dst: BIO_s_mem
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:335,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:338,1
    - Dst: ssl3_free_digest_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:341,1
    - Dst: BIO_set_close
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 345
      start: 333
    functionDepth: 3
    functionLinenumber: 333
    functionLinenumberEnd: 345
    functionName: ssl3_init_finished_mac
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - ssl3_free_digest_list
    - BIO_s_mem
    - BIO_set_close
    - BIO_new
    linkageType: ''
    returnType: int
    signature: ssl3_init_finished_mac(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:354,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 358
      start: 352
    functionDepth: 4
    functionLinenumber: 352
    functionLinenumberEnd: 358
    functionName: ssl3_free_digest_list
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c
    functionUses: 3
    functionsReached:
    - BIO_free
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: void
    signature: ssl3_free_digest_list(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:364,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - s
    - buf
    - len
    argTypes:
    - SSL*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 367
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 367
    functionName: ssl3_finish_mac
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - EVP_DigestUpdate
    linkageType: ''
    returnType: int
    signature: ssl3_finish_mac(SSL *s, const unsigned char *buf, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_mem_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:376,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:378,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:383,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:385,1
    - Dst: ssl_handshake_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:389,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:390,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:391,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:392,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:397,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - s
    - keep
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 402
      start: 369
    functionDepth: 4
    functionLinenumber: 369
    functionLinenumberEnd: 402
    functionName: ssl3_digest_cached_records
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - ssl_handshake_md
    - EVP_DigestUpdate
    - EVP_MD_CTX_new
    - BIO_get_mem_data
    - BIO_free
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: ssl3_digest_cached_records(SSL *s, int keep)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_digest_cached_records
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:409,1
    - Dst: EVP_MD_CTX_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:412,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:413,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:417,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:419,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:422,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:423,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:427,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:429,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:433,1
    - Dst: EVP_MD_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:434,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:437,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:438,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c:442,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - s
    - sender
    - len
    - p
    argTypes:
    - SSL*
    - char*
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 445
      start: 404
    functionDepth: 5
    functionLinenumber: 404
    functionLinenumberEnd: 445
    functionName: ssl3_final_finish_mac
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_ctrl
    - EVP_MD_CTX_copy_ex
    - EVP_MD_CTX_size
    - EVP_DigestFinal_ex
    - SSLerr
    - EVP_MD_CTX_type
    - ssl3_digest_cached_records
    - EVP_DigestUpdate
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - EVP_MD_CTX_reset
    linkageType: ''
    returnType: int
    signature: ssl3_final_finish_mac(SSL *s, const char *sender, int len, unsigned
      char *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 5
    argCount: 4
    argNames:
    - s
    - out
    - p
    - len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 490
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 490
    functionName: ssl3_generate_master_secret
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "ssl3_generate_master_secret(SSL *s, unsigned char *out, unsigned char
      *p,\n                                int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 69
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 585
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 585
    functionName: ssl3_alert_code
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ssl3_alert_code(int code)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - table
    - table_cnt
    - mask
    argTypes:
    - ssl_cipher_table*
    - size_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 181
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 181
    functionName: ssl_cipher_info_find
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "ssl_cipher_info_find(const ssl_cipher_table * table,\n                                size_t
      table_cnt, uint32_t mask)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:342,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pkey_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 348
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 348
    functionName: get_optional_pkey_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_asn1_get0_info
    - EVP_PKEY_asn1_find_str
    linkageType: ''
    returnType: int
    signature: get_optional_pkey_id(const char *pkey_name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:357,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:359,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pkey_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 365
      start: 352
    functionDepth: 5
    functionLinenumber: 352
    functionLinenumberEnd: 365
    functionName: get_optional_pkey_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_asn1_get0_info
    - ENGINE_finish
    - EVP_PKEY_asn1_find_str
    linkageType: ''
    returnType: int
    signature: get_optional_pkey_id(const char *pkey_name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sort_cipher_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:381,1
    - Dst: EVP_get_cipherbynid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:386,1
    - Dst: EVP_get_digestbynid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:397,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:402,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:403,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:407,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:408,1
    - Dst: get_optional_pkey_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:439,1
    - Dst: get_optional_pkey_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:447,1
    - Dst: get_optional_pkey_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:454,1
    - Dst: get_optional_pkey_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:456,1
    - Dst: get_optional_pkey_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:458,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 466
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 466
    functionName: ssl_load_ciphers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 1
    functionsReached:
    - get_optional_pkey_id
    - EVP_get_cipherbynid
    - OPENSSL_assert
    - EVP_MD_size
    - ssl_sort_cipher_list
    - EVP_get_digestbynid
    linkageType: ''
    returnType: void
    signature: ssl_load_ciphers(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - SSL_COMP**
    - SSL_COMP**
    constantsTouched: []
    func_position:
      end: 473
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 473
    functionName: sk_comp_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: sk_comp_cmp(const SSL_COMP *const *a, const SSL_COMP *const *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COMP_zlib
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:478,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:480,1
    - Dst: sk_SSL_COMP_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:481,1
    - Dst: COMP_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:483,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:484,1
    - Dst: COMP_get_name
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:488,1
    - Dst: sk_SSL_COMP_push
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:489,1
    - Dst: sk_SSL_COMP_sort
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:490,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 495
      start: 475
    functionDepth: 4
    functionLinenumber: 475
    functionLinenumberEnd: 495
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - COMP_get_type
    - CRYPTO_mem_ctrl
    - sk_SSL_COMP_sort
    - sk_SSL_COMP_new
    - COMP_get_name
    - sk_SSL_COMP_push
    - COMP_zlib
    - OPENSSL_malloc
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(do_load_builtin_compressions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 500
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 500
    functionName: load_builtin_compressions
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - RUN_ONCE
    linkageType: ''
    returnType: int
    signature: load_builtin_compressions(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load_builtin_compressions
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:516,1
    - Dst: sk_SSL_COMP_find
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:526,1
    - Dst: sk_SSL_COMP_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:528,1
    - Dst: ssl_cipher_info_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:540,1
    - Dst: EVP_enc_null
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:546,1
    - Dst: ssl_cipher_info_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:551,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:569,1
    - Dst: FIPS_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:580,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:585,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:589,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:593,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:597,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:601,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 63
    argCount: 7
    argNames:
    - s
    - enc
    - md
    - mac_pkey_type
    - mac_secret_size
    - comp
    - use_etm
    argTypes:
    - SSL_SESSION*
    - EVP_CIPHER**
    - EVP_MD**
    - int*
    - int*
    - SSL_COMP**
    - int
    constantsTouched: []
    func_position:
      end: 606
      start: 503
    functionDepth: 3
    functionLinenumber: 503
    functionLinenumberEnd: 606
    functionName: ssl_cipher_get_evp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 1
    functionsReached:
    - EVP_enc_null
    - EVP_get_cipherbyname
    - sk_SSL_COMP_value
    - ssl_cipher_info_lookup
    - EVP_CIPHER_flags
    - load_builtin_compressions
    - FIPS_mode
    - sk_SSL_COMP_find
    linkageType: ''
    returnType: int
    signature: "ssl_cipher_get_evp(const SSL_SESSION *s, const EVP_CIPHER **enc,\n
      \                      const EVP_MD **md, int *mac_pkey_type,\n                       int
      *mac_secret_size, SSL_COMP **comp, int use_etm)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 614
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 614
    functionName: ssl_md
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: '*ssl_md(int idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:618,1
    - Dst: ssl_get_algorithm2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 619
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 619
    functionName: ssl_handshake_md
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 1
    functionsReached:
    - ssl_get_algorithm2
    - ssl_md
    linkageType: ''
    returnType: EVP_MD
    signature: '*ssl_handshake_md(SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:623,1
    - Dst: ssl_get_algorithm2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 624
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 624
    functionName: ssl_prf_md
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - ssl_get_algorithm2
    - ssl_md
    linkageType: ''
    returnType: EVP_MD
    signature: '*ssl_prf_md(SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - head
    - curr
    - tail
    argTypes:
    - CIPHER_ORDER**
    - CIPHER_ORDER*
    - CIPHER_ORDER**
    constantsTouched: []
    func_position:
      end: 644
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 644
    functionName: ll_append_tail
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "ll_append_tail(CIPHER_ORDER **head, CIPHER_ORDER *curr,\n                           CIPHER_ORDER
      **tail)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - head
    - curr
    - tail
    argTypes:
    - CIPHER_ORDER**
    - CIPHER_ORDER*
    - CIPHER_ORDER**
    constantsTouched: []
    func_position:
      end: 661
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 661
    functionName: ll_append_head
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "ll_append_head(CIPHER_ORDER **head, CIPHER_ORDER *curr,\n                           CIPHER_ORDER
      **tail)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_METHOD*::get_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:686,1
    - Dst: FIPS_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:690,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 34
    argCount: 9
    argNames:
    - ssl_method
    - num_of_ciphers
    - disabled_mkey
    - disabled_auth
    - disabled_enc
    - disabled_mac
    - co_list
    - head_p
    - tail_p
    argTypes:
    - SSL_METHOD*
    - int
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - CIPHER_ORDER*
    - CIPHER_ORDER**
    - CIPHER_ORDER**
    constantsTouched: []
    func_position:
      end: 736
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 736
    functionName: ssl_cipher_collect_ciphers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - FIPS_mode
    - SSL_METHOD*::get_cipher
    linkageType: ''
    returnType: void
    signature: "ssl_cipher_collect_ciphers(const SSL_METHOD *ssl_method,\n                                       int
      num_of_ciphers,\n                                       uint32_t disabled_mkey,\n
      \                                      uint32_t disabled_auth,\n                                       uint32_t
      disabled_enc,\n                                       uint32_t disabled_mac,\n
      \                                      CIPHER_ORDER *co_list,\n                                       CIPHER_ORDER
      **head_p,\n                                       CIPHER_ORDER **tail_p)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 7
    argNames:
    - ca_list
    - num_of_group_aliases
    - disabled_mkey
    - disabled_auth
    - disabled_enc
    - disabled_mac
    - head
    argTypes:
    - SSL_CIPHER**
    - int
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - CIPHER_ORDER*
    constantsTouched: []
    func_position:
      end: 798
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 798
    functionName: ssl_cipher_collect_aliases
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "ssl_cipher_collect_aliases(const SSL_CIPHER **ca_list,\n                                       int
      num_of_group_aliases,\n                                       uint32_t disabled_mkey,\n
      \                                      uint32_t disabled_auth,\n                                       uint32_t
      disabled_enc,\n                                       uint32_t disabled_mac,\n
      \                                      CIPHER_ORDER *head)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:812,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:856,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:881,1
    - Dst: ll_append_tail
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:888,1
    - Dst: ll_append_tail
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:896,1
    - Dst: ll_append_head
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:906,1
    - Dst: ll_append_head
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:911,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 81
    argCount: 11
    argNames:
    - cipher_id
    - alg_mkey
    - alg_auth
    - alg_enc
    - alg_mac
    - min_tls
    - algo_strength
    - rule
    - strength_bits
    - head_p
    - tail_p
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - int
    - uint32_t
    - int
    - int32_t
    - CIPHER_ORDER**
    - CIPHER_ORDER**
    constantsTouched: []
    func_position:
      end: 932
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 932
    functionName: ssl_cipher_apply_rule
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - ll_append_head
    - fprintf
    - ll_append_tail
    linkageType: ''
    returnType: void
    signature: "ssl_cipher_apply_rule(uint32_t cipher_id, uint32_t alg_mkey,\n                                  uint32_t
      alg_auth, uint32_t alg_enc,\n                                  uint32_t alg_mac,
      int min_tls,\n                                  uint32_t algo_strength, int
      rule,\n                                  int32_t strength_bits, CIPHER_ORDER
      **head_p,\n                                  CIPHER_ORDER **tail_p)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:954,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:956,1
    - Dst: ssl_cipher_apply_rule
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:975,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:978,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - head_p
    - tail_p
    argTypes:
    - CIPHER_ORDER**
    - CIPHER_ORDER**
    constantsTouched: []
    func_position:
      end: 980
      start: 934
    functionDepth: 2
    functionLinenumber: 934
    functionLinenumberEnd: 980
    functionName: ssl_cipher_strength_sort
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ssl_cipher_apply_rule
    - SSLerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: "ssl_cipher_strength_sort(CIPHER_ORDER **head_p,\n                                    CIPHER_ORDER
      **tail_p)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ITEM_SEP
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1017,1
    - Dst: isalnum
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1039,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1052,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1084,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1198,1
    - Dst: ssl_cipher_strength_sort
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1199,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1200,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1203,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1210,1
    - Dst: ITEM_SEP
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1219,1
    - Dst: ssl_cipher_apply_rule
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1222,1
    - Dst: ITEM_SEP
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1227,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 173
    argCount: 5
    argNames:
    - rule_str
    - head_p
    - tail_p
    - ca_list
    - c
    argTypes:
    - char*
    - CIPHER_ORDER**
    - CIPHER_ORDER**
    - SSL_CIPHER**
    - CERT*
    constantsTouched: []
    func_position:
      end: 1235
      start: 982
    functionDepth: 3
    functionLinenumber: 982
    functionLinenumberEnd: 1235
    functionName: ssl_cipher_process_rulestr
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - ssl_cipher_apply_rule
    - strncmp
    - ITEM_SEP
    - ssl_cipher_strength_sort
    - isalnum
    linkageType: ''
    returnType: int
    signature: "ssl_cipher_process_rulestr(const char *rule_str,\n                                      CIPHER_ORDER
      **head_p,\n                                      CIPHER_ORDER **tail_p,\n                                      const
      SSL_CIPHER **ca_list, CERT *c)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1242,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1244,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1247,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1249,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1264,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1286,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - meth
    - c
    - prule_str
    argTypes:
    - SSL_METHOD*
    - CERT*
    - char**
    constantsTouched: []
    func_position:
      end: 1289
      start: 1238
    functionDepth: 0
    functionLinenumber: 1238
    functionLinenumberEnd: 1289
    functionName: check_suiteb_cipher_list
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - strncmp
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "check_suiteb_cipher_list(const SSL_METHOD *meth, CERT *c,\n                                    const
      char **prule_str)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1535,1
    - Dst: ssl_protocol_to_string
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1546,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1707,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 170
    argCount: 3
    argNames:
    - cipher
    - buf
    - len
    argTypes:
    - SSL_CIPHER*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1710
      start: 1526
    functionDepth: 2
    functionLinenumber: 1526
    functionLinenumberEnd: 1710
    functionName: SSL_CIPHER_description
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 1
    functionsReached:
    - ssl_protocol_to_string
    - OPENSSL_malloc
    - BIO_snprintf
    linkageType: ''
    returnType: char
    signature: '*SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_protocol_to_string
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - SSL_CIPHER*
    constantsTouched: []
    func_position:
      end: 1724
      start: 1712
    functionDepth: 1
    functionLinenumber: 1712
    functionLinenumberEnd: 1724
    functionName: SSL_CIPHER_get_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 4
    functionsReached:
    - ssl_protocol_to_string
    linkageType: ''
    returnType: char
    signature: '*SSL_CIPHER_get_version(const SSL_CIPHER *c)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - SSL_CIPHER*
    constantsTouched: []
    func_position:
      end: 1732
      start: 1727
    functionDepth: 0
    functionLinenumber: 1727
    functionLinenumberEnd: 1732
    functionName: SSL_CIPHER_get_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*SSL_CIPHER_get_name(const SSL_CIPHER *c)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - c
    - alg_bits
    argTypes:
    - SSL_CIPHER*
    - int*
    constantsTouched: []
    func_position:
      end: 1745
      start: 1735
    functionDepth: 0
    functionLinenumber: 1735
    functionLinenumberEnd: 1745
    functionName: SSL_CIPHER_get_bits
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - SSL_CIPHER*
    constantsTouched: []
    func_position:
      end: 1750
      start: 1747
    functionDepth: 0
    functionLinenumber: 1747
    functionLinenumberEnd: 1750
    functionName: SSL_CIPHER_get_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: SSL_CIPHER_get_id(const SSL_CIPHER *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - comp
    argTypes:
    - SSL_COMP*
    constantsTouched: []
    func_position:
      end: 1878
      start: 1871
    functionDepth: 0
    functionLinenumber: 1871
    functionLinenumberEnd: 1878
    functionName: SSL_COMP_get0_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*SSL_COMP_get0_name(const SSL_COMP *comp)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - comp
    argTypes:
    - SSL_COMP*
    constantsTouched: []
    func_position:
      end: 1887
      start: 1880
    functionDepth: 0
    functionLinenumber: 1880
    functionLinenumberEnd: 1887
    functionName: SSL_COMP_get_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_COMP_get_id(const SSL_COMP *comp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - SSL_CIPHER*
    constantsTouched: []
    func_position:
      end: 1908
      start: 1890
    functionDepth: 0
    functionLinenumber: 1890
    functionLinenumberEnd: 1908
    functionName: ssl_cipher_get_cert_index
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ssl_cipher_get_cert_index(const SSL_CIPHER *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::method::get_cipher_by_char
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1912,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ssl
    - ptr
    argTypes:
    - SSL*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 1917
      start: 1910
    functionDepth: 0
    functionLinenumber: 1910
    functionLinenumberEnd: 1917
    functionName: ssl_get_cipher_by_char
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - SSL*::method::get_cipher_by_char
    linkageType: ''
    returnType: SSL_CIPHER
    signature: '*ssl_get_cipher_by_char(SSL *ssl, const unsigned char *ptr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::method::get_cipher_by_char
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - ptr
    argTypes:
    - SSL*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 1922
      start: 1919
    functionDepth: 0
    functionLinenumber: 1919
    functionLinenumberEnd: 1922
    functionName: SSL_CIPHER_find
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 2
    functionsReached:
    - SSL*::method::get_cipher_by_char
    linkageType: ''
    returnType: SSL_CIPHER
    signature: '*SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cipher_info_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c:1929,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - SSL_CIPHER*
    constantsTouched: []
    func_position:
      end: 1933
      start: 1924
    functionDepth: 0
    functionLinenumber: 1924
    functionLinenumberEnd: 1933
    functionName: SSL_CIPHER_get_cipher_nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached:
    - ssl_cipher_info_lookup
    linkageType: ''
    returnType: int
    signature: SSL_CIPHER_get_cipher_nid(const SSL_CIPHER *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - SSL_CIPHER*
    constantsTouched: []
    func_position:
      end: 1942
      start: 1935
    functionDepth: 0
    functionLinenumber: 1935
    functionLinenumberEnd: 1942
    functionName: SSL_CIPHER_get_digest_nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_CIPHER_get_digest_nid(const SSL_CIPHER *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - SSL_CIPHER*
    constantsTouched: []
    func_position:
      end: 1951
      start: 1944
    functionDepth: 0
    functionLinenumber: 1944
    functionLinenumberEnd: 1951
    functionName: SSL_CIPHER_get_kx_nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_CIPHER_get_kx_nid(const SSL_CIPHER *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - SSL_CIPHER*
    constantsTouched: []
    func_position:
      end: 1960
      start: 1953
    functionDepth: 0
    functionLinenumber: 1953
    functionLinenumberEnd: 1960
    functionName: SSL_CIPHER_get_auth_nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_CIPHER_get_auth_nid(const SSL_CIPHER *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - SSL_CIPHER*
    constantsTouched: []
    func_position:
      end: 1965
      start: 1962
    functionDepth: 0
    functionLinenumber: 1962
    functionLinenumberEnd: 1965
    functionName: SSL_CIPHER_is_aead
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_CIPHER_is_aead(const SSL_CIPHER *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_func_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_err.c:676,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_err.c:677,1
    - Dst: ERR_load_strings
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_err.c:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 682
      start: 672
    functionDepth: 4
    functionLinenumber: 672
    functionLinenumberEnd: 682
    functionName: ERR_load_SSL_strings
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_err.c
    functionUses: 1
    functionsReached:
    - ERR_func_error_string
    - ERR_load_strings
    linkageType: ''
    returnType: int
    signature: ERR_load_SSL_strings(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: dtls1_default_timeout
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: dtls1_default_timeout(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DTLS_RECORD_LAYER_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:82,1
    - Dst: ssl3_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:86,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:88,1
    - Dst: ssl3_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:89,1
    - Dst: pqueue_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:93,1
    - Dst: pqueue_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:94,1
    - Dst: pqueue_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:104,1
    - Dst: pqueue_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:105,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:106,1
    - Dst: ssl3_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:107,1
    - Dst: SSL*::method::ssl_clear
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 114
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 114
    functionName: dtls1_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - pqueue_new
    - ssl3_new
    - ssl3_free
    - OPENSSL_zalloc
    - OPENSSL_free
    - DTLS_RECORD_LAYER_new
    - pqueue_free
    - SSL*::method::ssl_clear
    linkageType: ''
    returnType: int
    signature: dtls1_new(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_clear_received_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:118,1
    - Dst: dtls1_clear_sent_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: dtls1_clear_queues
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - dtls1_clear_received_buffer
    - dtls1_clear_sent_buffer
    linkageType: ''
    returnType: void
    signature: dtls1_clear_queues(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pqueue_pop
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:127,1
    - Dst: dtls1_hm_fragment_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:129,1
    - Dst: pitem_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: dtls1_clear_received_buffer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 1
    functionsReached:
    - dtls1_hm_fragment_free
    - pitem_free
    - pqueue_pop
    linkageType: ''
    returnType: void
    signature: dtls1_clear_received_buffer(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pqueue_pop
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:139,1
    - Dst: dtls1_hm_fragment_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:141,1
    - Dst: pitem_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 144
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 144
    functionName: dtls1_clear_sent_buffer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 1
    functionsReached:
    - dtls1_hm_fragment_free
    - pitem_free
    - pqueue_pop
    linkageType: ''
    returnType: void
    signature: dtls1_clear_sent_buffer(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DTLS_RECORD_LAYER_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:149,1
    - Dst: ssl3_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:151,1
    - Dst: dtls1_clear_queues
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:153,1
    - Dst: pqueue_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:155,1
    - Dst: pqueue_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:156,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 160
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 160
    functionName: dtls1_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - ssl3_free
    - DTLS_RECORD_LAYER_free
    - dtls1_clear_queues
    - OPENSSL_free
    - pqueue_free
    linkageType: ''
    returnType: void
    signature: dtls1_free(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DTLS_RECORD_LAYER_clear
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:169,1
    - Dst: dtls1_clear_queues
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:177,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:179,1
    - Dst: SSL_get_options
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:185,1
    - Dst: ssl3_clear
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 204
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 204
    functionName: dtls1_clear
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - ssl3_clear
    - SSL_get_options
    - memset
    - dtls1_clear_queues
    - DTLS_RECORD_LAYER_clear
    linkageType: ''
    returnType: void
    signature: dtls1_clear(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_get_timeout
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:212,1
    - Dst: dtls1_handle_timeout
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:217,1
    - Dst: dtls1_link_min_mtu
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:220,1
    - Dst: dtls1_link_min_mtu
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:225,1
    - Dst: dtls1_link_min_mtu
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:231,1
    - Dst: ssl3_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:236,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - s
    - cmd
    - larg
    - parg
    argTypes:
    - SSL*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 240
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 240
    functionName: dtls1_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - ssl3_ctrl
    - dtls1_link_min_mtu
    - dtls1_get_timeout
    - dtls1_handle_timeout
    linkageType: ''
    returnType: long
    signature: dtls1_ctrl(SSL *s, int cmd, long larg, void *parg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_dgram_is_sctp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:246,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:246,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:247,1
    - Dst: get_current_time
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:258,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:262,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 264
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 264
    functionName: dtls1_start_timer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - BIO_dgram_is_sctp
    - memset
    - get_current_time
    - SSL_get_rbio
    - BIO_ctrl
    - SSL_get_wbio
    linkageType: ''
    returnType: void
    signature: dtls1_start_timer(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_current_time
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:276,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:282,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:287,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:300,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - s
    - timeleft
    argTypes:
    - SSL*
    - struct timeval*
    constantsTouched: []
    func_position:
      end: 304
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 304
    functionName: dtls1_get_timeout
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 1
    functionsReached:
    - memcpy
    - memset
    - get_current_time
    linkageType: ''
    returnType: struct timeval
    signature: '*dtls1_get_timeout(SSL *s, struct timeval *timeleft)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_get_timeout
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 322
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 322
    functionName: dtls1_is_timer_expired
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - dtls1_get_timeout
    linkageType: ''
    returnType: int
    signature: dtls1_is_timer_expired(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_start_timer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 330
      start: 324
    functionDepth: 3
    functionLinenumber: 324
    functionLinenumberEnd: 330
    functionName: dtls1_double_timeout
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - dtls1_start_timer
    linkageType: ''
    returnType: void
    signature: dtls1_double_timeout(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:335,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:336,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:338,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:338,1
    - Dst: dtls1_clear_sent_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 342
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 342
    functionName: dtls1_stop_timer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - SSL_get_rbio
    - BIO_ctrl
    - memset
    - dtls1_clear_sent_buffer
    linkageType: ''
    returnType: void
    signature: dtls1_stop_timer(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_options
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:352,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:354,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:354,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:361,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 366
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 366
    functionName: dtls1_check_timeout_num
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - SSL_get_options
    - SSL_get_wbio
    - SSLerr
    linkageType: ''
    returnType: int
    signature: dtls1_check_timeout_num(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_is_timer_expired
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:371,1
    - Dst: dtls1_double_timeout
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:375,1
    - Dst: dtls1_check_timeout_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:377,1
    - Dst: dtls1_heartbeat
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:387,1
    - Dst: dtls1_start_timer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:391,1
    - Dst: dtls1_retransmit_buffered_messages
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:392,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 393
      start: 368
    functionDepth: 4
    functionLinenumber: 368
    functionLinenumberEnd: 393
    functionName: dtls1_handle_timeout
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 1
    functionsReached:
    - dtls1_start_timer
    - dtls1_retransmit_buffered_messages
    - dtls1_check_timeout_num
    - dtls1_double_timeout
    - dtls1_is_timer_expired
    - dtls1_heartbeat
    linkageType: ''
    returnType: int
    signature: dtls1_handle_timeout(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemTime
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:404,1
    - Dst: SystemTimeToFileTime
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:405,1
    - Dst: ftime
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:418,1
    - Dst: gettimeofday
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct timeval*
    constantsTouched: []
    func_position:
      end: 424
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 424
    functionName: get_current_time
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 3
    functionsReached:
    - gettimeofday
    - SystemTimeToFileTime
    - GetSystemTime
    - ftime
    linkageType: ''
    returnType: void
    signature: get_current_time(struct timeval *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_accept_state
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:446,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:450,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:453,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:455,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:456,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:459,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:468,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:468,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:478,1
    - Dst: BUF_MEM_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:483,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:484,1
    - Dst: BUF_MEM_grow
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:488,1
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:489,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:490,1
    - Dst: clear_sys_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:500,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:509,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:512,1
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:522,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:523,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:538,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:543,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:547,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:548,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:549,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:554,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:563,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:567,1
    - Dst: PACKET_copy_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:569,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:570,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:571,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:581,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:586,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:589,1
    - Dst: PACKET_get_net_3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:590,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:591,1
    - Dst: PACKET_get_net_3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:592,1
    - Dst: PACKET_get_net_3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:593,1
    - Dst: PACKET_get_sub_packet
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:594,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:595,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:596,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:601,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:607,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:620,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:625,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:629,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:630,1
    - Dst: DTLS_VERSION_LT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:637,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:639,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:643,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:644,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:645,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:650,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:658,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:665,1
    - Dst: SSL*::ctx::app_verify_cookie_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:669,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:669,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:670,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:694,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:694,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:695,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:696,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:696,1
    - Dst: SSL*::ctx::app_gen_cookie_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:700,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:702,1
    - Dst: dtls_raw_hello_verify_request
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:708,1
    - Dst: l2n3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:714,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:717,1
    - Dst: l2n3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:723,1
    - Dst: l2n3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:724,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:750,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:754,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:763,1
    - Dst: BIO_ADDR_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:766,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:767,1
    - Dst: BIO_dgram_get_peer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:776,1
    - Dst: BIO_dgram_set_peer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:777,1
    - Dst: BIO_ADDR_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:779,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:782,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:783,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:793,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:794,1
    - Dst: DTLS_RECORD_LAYER_set_write_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:812,1
    - Dst: SSL_set_options
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:818,1
    - Dst: ossl_statem_set_hello_verify_done
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:824,1
    - Dst: BIO_dgram_get_peer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:829,1
    - Dst: BIO_ADDR_clear
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:830,1
    - Dst: BIO_ADDR_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:835,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:836,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:836,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:839,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 204
    argCount: 2
    argNames:
    - s
    - client
    argTypes:
    - SSL*
    - BIO_ADDR*
    constantsTouched: []
    func_position:
      end: 842
      start: 430
    functionDepth: 4
    functionLinenumber: 430
    functionLinenumberEnd: 842
    functionName: DTLSv1_listen
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 2
    functionsReached:
    - ossl_statem_set_hello_verify_done
    - SSLerr
    - BIO_dgram_get_peer
    - BUF_MEM_grow
    - BIO_should_retry
    - DTLS_VERSION_LT
    - BIO_dgram_set_peer
    - BIO_ADDR_free
    - SSL*::ctx::app_gen_cookie_cb
    - BIO_ADDR_clear
    - PACKET_data
    - SSL_set_options
    - BUF_MEM_free
    - PACKET_forward
    - BUF_MEM_new
    - BIO_write
    - PACKET_get_length_prefixed_1
    - s2n
    - l2n3
    - SSL*::ctx::app_verify_cookie_cb
    - dtls_raw_hello_verify_request
    - DTLS_RECORD_LAYER_set_write_sequence
    - PACKET_remaining
    - PACKET_get_length_prefixed_2
    - PACKET_get_1
    - ERR_clear_error
    - clear_sys_error
    - BIO_ADDR_new
    - BIO_flush
    - PACKET_get_sub_packet
    - SSL_set_accept_state
    - PACKET_get_net_2
    - SSL_clear
    - SSL_get_rbio
    - PACKET_get_net_3
    - memcpy
    - PACKET_buf_init
    - BIO_ctrl
    - BIO_read
    - SSL_get_wbio
    - SSL*::msg_callback
    - PACKET_copy_bytes
    linkageType: ''
    returnType: int
    signature: DTLSv1_listen(SSL *s, BIO_ADDR *client)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_set_message_header
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:847,1
    - Dst: dtls1_buffer_message
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - s
    - htype
    - len
    argTypes:
    - SSL*
    - int
    - unsigned long
    constantsTouched: []
    func_position:
      end: 856
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 856
    functionName: dtls1_set_handshake_header
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - dtls1_buffer_message
    - dtls1_set_message_header
    linkageType: ''
    returnType: int
    signature: dtls1_set_handshake_header(SSL *s, int htype, unsigned long len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_do_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 861
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 861
    functionName: dtls1_handshake_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - dtls1_do_write
    linkageType: ''
    returnType: int
    signature: dtls1_handshake_write(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:880,1
    - Dst: HEARTBEAT_SIZE_STD
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:884,1
    - Dst: n2s
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:890,1
    - Dst: HEARTBEAT_SIZE_STD
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:891,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:904,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:911,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:912,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:915,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:916,1
    - Dst: dtls1_write_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:920,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:923,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:926,1
    - Dst: n2s
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:937,1
    - Dst: dtls1_stop_timer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:940,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 3
    argNames:
    - s
    - p
    - length
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 947
      start: 872
    functionDepth: 3
    functionLinenumber: 872
    functionLinenumberEnd: 947
    functionName: dtls1_process_heartbeat
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - HEARTBEAT_SIZE_STD
    - RAND_bytes
    - dtls1_write_bytes
    - s2n
    - dtls1_stop_timer
    - memcpy
    - n2s
    - OPENSSL_free
    - OPENSSL_malloc
    - SSL*::msg_callback
    linkageType: ''
    returnType: int
    signature: dtls1_process_heartbeat(SSL *s, unsigned char *p, unsigned int length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:960,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:966,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:971,1
    - Dst: ossl_statem_get_in_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:971,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:972,1
    - Dst: HEARTBEAT_SIZE
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:981,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:982,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:984,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:991,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:993,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:995,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:996,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1001,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1002,1
    - Dst: dtls1_write_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1006,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1009,1
    - Dst: dtls1_start_timer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1012,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1017,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1020
      start: 949
    functionDepth: 3
    functionLinenumber: 949
    functionLinenumberEnd: 1020
    functionName: dtls1_heartbeat
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 2
    functionsReached:
    - HEARTBEAT_SIZE
    - RAND_bytes
    - dtls1_write_bytes
    - s2n
    - SSLerr
    - ossl_statem_get_in_handshake
    - SSL_in_init
    - dtls1_start_timer
    - OPENSSL_free
    - OPENSSL_malloc
    - SSL*::msg_callback
    linkageType: ''
    returnType: int
    signature: dtls1_heartbeat(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1029,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1030,1
    - Dst: BIO_dgram_sctp_wait_for_dry
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1032,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1037,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1037,1
    - Dst: ssl3_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1041,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1043,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1043,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1046
      start: 1023
    functionDepth: 2
    functionLinenumber: 1023
    functionLinenumberEnd: 1046
    functionName: dtls1_shutdown
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - ssl3_shutdown
    - BIO_dgram_is_sctp
    - BIO_ctrl
    - BIO_dgram_sctp_wait_for_dry
    - SSL_get_wbio
    linkageType: ''
    returnType: int
    signature: dtls1_shutdown(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_dgram_get_mtu_overhead
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1052,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1052,1
    - Dst: dtls1_min_mtu
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1057,1
    - Dst: SSL_get_options
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1058,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1060,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1060,1
    - Dst: dtls1_min_mtu
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1066,1
    - Dst: dtls1_min_mtu
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1068,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1069,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1069,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1076
      start: 1048
    functionDepth: 1
    functionLinenumber: 1048
    functionLinenumberEnd: 1076
    functionName: dtls1_query_mtu
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 0
    functionsReached:
    - SSL_get_options
    - dtls1_min_mtu
    - BIO_ctrl
    - SSL_get_wbio
    - BIO_dgram_get_mtu_overhead
    linkageType: ''
    returnType: int
    signature: dtls1_query_mtu(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1078
    functionDepth: 0
    functionLinenumber: 1078
    functionLinenumberEnd: 1082
    functionName: dtls1_link_min_mtu
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: dtls1_link_min_mtu(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_link_min_mtu
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1086,1
    - Dst: BIO_dgram_get_mtu_overhead
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1086,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1087
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1087
    functionName: dtls1_min_mtu
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
    functionUses: 1
    functionsReached:
    - dtls1_link_min_mtu
    - SSL_get_wbio
    - BIO_dgram_get_mtu_overhead
    linkageType: ''
    returnType: unsigned int
    signature: dtls1_min_mtu(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_prf_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:54,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:62,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:65,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:66,1
    - Dst: EVP_PKEY_CTX_set_tls1_prf_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:67,1
    - Dst: EVP_PKEY_CTX_set1_tls1_prf_secret
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:68,1
    - Dst: EVP_PKEY_CTX_add1_tls1_prf_seed
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:71,1
    - Dst: EVP_PKEY_CTX_add1_tls1_prf_seed
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:73,1
    - Dst: EVP_PKEY_CTX_add1_tls1_prf_seed
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:75,1
    - Dst: EVP_PKEY_CTX_add1_tls1_prf_seed
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:77,1
    - Dst: EVP_PKEY_CTX_add1_tls1_prf_seed
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:79,1
    - Dst: EVP_PKEY_derive
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:82,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:87,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 32
    argCount: 15
    argNames:
    - s
    - seed1
    - seed1_len
    - seed2
    - seed2_len
    - seed3
    - seed3_len
    - seed4
    - seed4_len
    - seed5
    - seed5_len
    - sec
    - slen
    - out
    - olen
    argTypes:
    - SSL*
    - void*
    - int
    - void*
    - int
    - void*
    - int
    - void*
    - int
    - void*
    - int
    - unsigned char*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 89
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 89
    functionName: tls1_PRF
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_derive
    - ssl_prf_md
    - EVP_PKEY_CTX_set1_tls1_prf_secret
    - SSLerr
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_CTX_add1_tls1_prf_seed
    - EVP_PKEY_CTX_set_tls1_prf_md
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: "tls1_PRF(SSL *s,\n                    const void *seed1, int seed1_len,\n
      \                   const void *seed2, int seed2_len,\n                    const
      void *seed3, int seed3_len,\n                    const void *seed4, int seed4_len,\n
      \                   const void *seed5, int seed5_len,\n                    const
      unsigned char *sec, int slen,\n                    unsigned char *out, int olen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls1_PRF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - km
    - num
    argTypes:
    - SSL*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 102
      start: 91
    functionDepth: 4
    functionLinenumber: 91
    functionLinenumberEnd: 102
    functionName: tls1_generate_key_block
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c
    functionUses: 0
    functionsReached:
    - tls1_PRF
    linkageType: ''
    returnType: int
    signature: tls1_generate_key_block(SSL *s, unsigned char *km, int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:145,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:151,1
    - Dst: ssl_replace_hash
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:153,1
    - Dst: COMP_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:157,1
    - Dst: COMP_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:160,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:162,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:171,1
    - Dst: RECORD_LAYER_reset_read_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:172,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:185,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:187,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:190,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:191,1
    - Dst: ssl_replace_hash
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:196,1
    - Dst: COMP_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:201,1
    - Dst: COMP_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:204,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:206,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:215,1
    - Dst: RECORD_LAYER_reset_write_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:216,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:222,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:227,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:231,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:233,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:236,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:256,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:260,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:262,1
    - Dst: EVP_PKEY_new_mac_key
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:263,1
    - Dst: EVP_DigestSignInit
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:266,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:267,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:268,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:271,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:274,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:278,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:282,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:283,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:284,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:285,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:288,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:295,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:296,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:297,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:298,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:299,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:300,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:304,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:305,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:310,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:311,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:313,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:320,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:324,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:327,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:331,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:337,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:340,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:341,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:343,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:347,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:349,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:352,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:353,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:354,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:355,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:358,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:360,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:361,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:362,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:363,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 188
    argCount: 2
    argNames:
    - s
    - which
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 365
      start: 104
    functionDepth: 4
    functionLinenumber: 104
    functionLinenumberEnd: 365
    functionName: tls1_change_cipher_state
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c
    functionUses: 0
    functionsReached:
    - EVP_DigestSignInit
    - SSLerr
    - COMP_CTX_new
    - printf
    - EVP_CipherInit_ex
    - EVP_PKEY_free
    - RECORD_LAYER_reset_read_sequence
    - EVP_CIPHER_iv_length
    - EVP_CIPHER_key_length
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_mode
    - RECORD_LAYER_reset_write_sequence
    - COMP_CTX_free
    - ssl_replace_hash
    - EVP_CIPHER_flags
    - EVP_CIPHER_CTX_ctrl
    - EVP_CIPHER_CTX_reset
    - EVP_MD_CTX_new
    - memcpy
    - EVP_PKEY_new_mac_key
    - OPENSSL_cleanse
    - SSL_IS_DTLS
    - SSL*::msg_callback
    linkageType: ''
    returnType: int
    signature: tls1_change_cipher_state(SSL *s, int which)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cipher_get_evp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:380,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:382,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:390,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:390,1
    - Dst: ssl3_cleanup_key_block
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:393,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:395,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:396,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:404,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:408,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:411,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:415,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:418,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:422,1
    - Dst: tls1_generate_key_block
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:426,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:429,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:433,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 459
      start: 367
    functionDepth: 5
    functionLinenumber: 367
    functionLinenumberEnd: 459
    functionName: tls1_setup_key_block
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_key_length
    - SSLerr
    - ssl_cipher_get_evp
    - ssl3_cleanup_key_block
    - printf
    - tls1_generate_key_block
    - EVP_CIPHER_iv_length
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: tls1_setup_key_block(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_digest_cached_records
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:466,1
    - Dst: ssl_handshake_hash
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:469,1
    - Dst: tls1_PRF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:474,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - s
    - str
    - slen
    - out
    argTypes:
    - SSL*
    - char*
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 480
      start: 461
    functionDepth: 5
    functionLinenumber: 461
    functionLinenumberEnd: 480
    functionName: tls1_final_finish_mac
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c
    functionUses: 0
    functionsReached:
    - ssl3_digest_cached_records
    - tls1_PRF
    - ssl_handshake_hash
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: tls1_final_finish_mac(SSL *s, const char *str, int slen, unsigned char
      *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_digest_cached_records
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:493,1
    - Dst: ssl_handshake_hash
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:495,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:497,1
    - Dst: BIO_dump_fp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:498,1
    - Dst: tls1_PRF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:500,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:508,1
    - Dst: tls1_PRF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:510,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:520,1
    - Dst: BIO_dump_fp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:521,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:522,1
    - Dst: BIO_dump_fp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:523,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:524,1
    - Dst: BIO_dump_fp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:525,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:526,1
    - Dst: BIO_dump_fp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:527,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:533,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:535,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:538,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:541,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 4
    argNames:
    - s
    - out
    - p
    - len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 548
      start: 482
    functionDepth: 5
    functionLinenumber: 482
    functionLinenumberEnd: 548
    functionName: tls1_generate_master_secret
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c
    functionUses: 0
    functionsReached:
    - ssl3_digest_cached_records
    - ssl_handshake_hash
    - BIO_dump_fp
    - tls1_PRF
    - OPENSSL_cleanse
    - fprintf
    - SSL*::msg_callback
    linkageType: ''
    returnType: int
    signature: "tls1_generate_master_secret(SSL *s, unsigned char *out, unsigned char
      *p,\n                                int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:569,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:573,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:575,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:577,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:586,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:595,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:598,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:601,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:604,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:607,1
    - Dst: tls1_PRF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:611,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:622,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:626,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c:629,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 8
    argNames:
    - s
    - out
    - olen
    - label
    - llen
    - context
    - contextlen
    - use_context
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    - char*
    - size_t
    - unsigned char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 631
      start: 550
    functionDepth: 4
    functionLinenumber: 550
    functionLinenumberEnd: 631
    functionName: tls1_export_keying_material
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c
    functionUses: 0
    functionsReached:
    - memcmp
    - SSLerr
    - memcpy
    - tls1_PRF
    - OPENSSL_clear_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "tls1_export_keying_material(SSL *s, unsigned char *out, size_t olen,\n
      \                               const char *label, size_t llen,\n                                const
      unsigned char *context,\n                                size_t contextlen,
      int use_context)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 69
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 703
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 703
    functionName: tls1_alert_code
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: tls1_alert_code(int code)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:24,1
    - Dst: ssl_security_cert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:27,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:29,1
    - Dst: ssl_set_cert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ssl
    - x
    argTypes:
    - SSL*
    - X509*
    constantsTouched: []
    func_position:
      end: 34
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 34
    functionName: SSL_use_certificate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 1
    functionsReached:
    - ssl_set_cert
    - ssl_security_cert
    - SSLerr
    linkageType: ''
    returnType: int
    signature: SSL_use_certificate(SSL *ssl, X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:43,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:43,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:45,1
    - Dst: BIO_read_filename
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:49,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:50,1
    - Dst: d2i_X509_bio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:55,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:58,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:61,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:66,1
    - Dst: SSL_use_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:70,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:72,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:73,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - ssl
    - file
    - type
    argTypes:
    - SSL*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 75
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 75
    functionName: SSL_use_certificate_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - BIO_read_filename
    - SSL_use_certificate
    - SSLerr
    - PEM_read_bio_X509
    - d2i_X509_bio
    - BIO_s_file
    - BIO_free
    - X509_free
    - BIO_new
    linkageType: ''
    returnType: int
    signature: SSL_use_certificate_file(SSL *ssl, const char *file, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_X509
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:82,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:84,1
    - Dst: SSL_use_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:88,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ssl
    - d
    - len
    argTypes:
    - SSL*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: SSL_use_certificate_ASN1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - d2i_X509
    - SSL_use_certificate
    - SSLerr
    - X509_free
    linkageType: ''
    returnType: int
    signature: SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:100,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:103,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:104,1
    - Dst: RSA_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:108,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:109,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:110,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:111,1
    - Dst: ssl_set_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:115,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - ssl
    - rsa
    argTypes:
    - SSL*
    - RSA*
    constantsTouched: []
    func_position:
      end: 118
      start: 94
    functionDepth: 6
    functionLinenumber: 94
    functionLinenumberEnd: 118
    functionName: SSL_use_RSAPrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - RSA_up_ref
    - EVP_PKEY_assign_RSA
    - RSA_free
    - ssl_set_pkey
    - EVP_PKEY_new
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cert_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:124,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:126,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:132,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:134,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:141,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:142,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:149,1
    - Dst: RSA_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:150,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:150,1
    - Dst: X509_check_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:153,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:154,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:160,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:161,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - c
    - pkey
    argTypes:
    - CERT*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 165
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 165
    functionName: ssl_set_pkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 1
    functionsReached:
    - RSA_flags
    - EVP_PKEY_get0_RSA
    - SSLerr
    - EVP_PKEY_id
    - X509_get0_pubkey
    - ssl_cert_type
    - EVP_PKEY_up_ref
    - X509_check_private_key
    - EVP_PKEY_copy_parameters
    - X509_free
    - EVP_PKEY_free
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: ssl_set_pkey(CERT *c, EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:174,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:174,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:176,1
    - Dst: BIO_read_filename
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:180,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:181,1
    - Dst: d2i_RSAPrivateKey_bio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:186,1
    - Dst: PEM_read_bio_RSAPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:189,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:194,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:198,1
    - Dst: SSL_use_RSAPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:201,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:202,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:204,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - ssl
    - file
    - type
    argTypes:
    - SSL*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 206
      start: 168
    functionDepth: 7
    functionLinenumber: 168
    functionLinenumberEnd: 206
    functionName: SSL_use_RSAPrivateKey_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - SSL_use_RSAPrivateKey
    - BIO_read_filename
    - PEM_read_bio_RSAPrivateKey
    - SSLerr
    - d2i_RSAPrivateKey_bio
    - BIO_s_file
    - BIO_free
    - RSA_free
    - BIO_new
    linkageType: ''
    returnType: int
    signature: SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_RSAPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:215,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:216,1
    - Dst: SSL_use_RSAPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:220,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ssl
    - d
    - len
    argTypes:
    - SSL*
    - unsigned char*
    - long
    constantsTouched: []
    func_position:
      end: 223
      start: 208
    functionDepth: 7
    functionLinenumber: 208
    functionLinenumberEnd: 223
    functionName: SSL_use_RSAPrivateKey_ASN1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - SSL_use_RSAPrivateKey
    - RSA_free
    - SSLerr
    - d2i_RSAPrivateKey
    linkageType: ''
    returnType: int
    signature: SSL_use_RSAPrivateKey_ASN1(SSL *ssl, const unsigned char *d, long len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:231,1
    - Dst: ssl_set_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ssl
    - pkey
    argTypes:
    - SSL*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 236
      start: 226
    functionDepth: 4
    functionLinenumber: 226
    functionLinenumberEnd: 236
    functionName: SSL_use_PrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 1
    functionsReached:
    - ssl_set_pkey
    - SSLerr
    linkageType: ''
    returnType: int
    signature: SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:244,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:244,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:246,1
    - Dst: BIO_read_filename
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:250,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:251,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:256,1
    - Dst: d2i_PrivateKey_bio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:262,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:264,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:268,1
    - Dst: SSL_use_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:271,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:272,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:274,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - ssl
    - file
    - type
    argTypes:
    - SSL*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 276
      start: 238
    functionDepth: 5
    functionLinenumber: 238
    functionLinenumberEnd: 276
    functionName: SSL_use_PrivateKey_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 1
    functionsReached:
    - BIO_read_filename
    - SSLerr
    - d2i_PrivateKey_bio
    - SSL_use_PrivateKey
    - BIO_s_file
    - PEM_read_bio_PrivateKey
    - BIO_free
    - BIO_new
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:286,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:287,1
    - Dst: SSL_use_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:291,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - type
    - ssl
    - d
    - len
    argTypes:
    - int
    - SSL*
    - unsigned char*
    - long
    constantsTouched: []
    func_position:
      end: 294
      start: 278
    functionDepth: 5
    functionLinenumber: 278
    functionLinenumberEnd: 294
    functionName: SSL_use_PrivateKey_ASN1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - d2i_PrivateKey
    - SSL_use_PrivateKey
    - EVP_PKEY_free
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "SSL_use_PrivateKey_ASN1(int type, SSL *ssl, const unsigned char *d,\n
      \                           long len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:300,1
    - Dst: ssl_security_cert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:303,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:305,1
    - Dst: ssl_set_cert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - x
    argTypes:
    - SSL_CTX*
    - X509*
    constantsTouched: []
    func_position:
      end: 309
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 309
    functionName: SSL_CTX_use_certificate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 1
    functionsReached:
    - ssl_set_cert
    - ssl_security_cert
    - SSLerr
    linkageType: ''
    returnType: int
    signature: SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:316,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:318,1
    - Dst: ssl_cert_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:322,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:324,1
    - Dst: EC_KEY_can_sign
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:328,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:328,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:329,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:338,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:339,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:346,1
    - Dst: RSA_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:347,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:347,1
    - Dst: X509_check_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:351,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:357,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:360,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:364,1
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:365,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - c
    - x
    argTypes:
    - CERT*
    - X509*
    constantsTouched: []
    func_position:
      end: 370
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 370
    functionName: ssl_set_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 2
    functionsReached:
    - RSA_flags
    - X509_up_ref
    - EVP_PKEY_get0_RSA
    - SSLerr
    - EC_KEY_can_sign
    - EVP_PKEY_id
    - X509_get0_pubkey
    - EVP_PKEY_get0_EC_KEY
    - ssl_cert_type
    - X509_check_private_key
    - EVP_PKEY_copy_parameters
    - X509_free
    - EVP_PKEY_free
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: ssl_set_cert(CERT *c, X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:379,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:379,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:381,1
    - Dst: BIO_read_filename
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:385,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:386,1
    - Dst: d2i_X509_bio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:391,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:394,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:397,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:402,1
    - Dst: SSL_CTX_use_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:406,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:408,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:409,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - ctx
    - file
    - type
    argTypes:
    - SSL_CTX*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 411
      start: 372
    functionDepth: 4
    functionLinenumber: 372
    functionLinenumberEnd: 411
    functionName: SSL_CTX_use_certificate_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 2
    functionsReached:
    - BIO_read_filename
    - SSLerr
    - PEM_read_bio_X509
    - SSL_CTX_use_certificate
    - d2i_X509_bio
    - BIO_s_file
    - BIO_free
    - X509_free
    - BIO_new
    linkageType: ''
    returnType: int
    signature: SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_X509
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:418,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:420,1
    - Dst: SSL_CTX_use_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:424,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - len
    - d
    argTypes:
    - SSL_CTX*
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 427
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 427
    functionName: SSL_CTX_use_certificate_ASN1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_use_certificate
    - d2i_X509
    - SSLerr
    - X509_free
    linkageType: ''
    returnType: int
    signature: SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, const unsigned
      char *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:436,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:439,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:440,1
    - Dst: RSA_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:444,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:445,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:446,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:447,1
    - Dst: ssl_set_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:451,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:452,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - ctx
    - rsa
    argTypes:
    - SSL_CTX*
    - RSA*
    constantsTouched: []
    func_position:
      end: 454
      start: 430
    functionDepth: 6
    functionLinenumber: 430
    functionLinenumberEnd: 454
    functionName: SSL_CTX_use_RSAPrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - RSA_up_ref
    - EVP_PKEY_assign_RSA
    - RSA_free
    - ssl_set_pkey
    - EVP_PKEY_new
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:462,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:462,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:464,1
    - Dst: BIO_read_filename
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:468,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:469,1
    - Dst: d2i_RSAPrivateKey_bio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:474,1
    - Dst: PEM_read_bio_RSAPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:477,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:481,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:485,1
    - Dst: SSL_CTX_use_RSAPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:488,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:489,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:491,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - ctx
    - file
    - type
    argTypes:
    - SSL_CTX*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 493
      start: 456
    functionDepth: 7
    functionLinenumber: 456
    functionLinenumberEnd: 493
    functionName: SSL_CTX_use_RSAPrivateKey_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - BIO_read_filename
    - PEM_read_bio_RSAPrivateKey
    - SSLerr
    - d2i_RSAPrivateKey_bio
    - SSL_CTX_use_RSAPrivateKey
    - BIO_s_file
    - BIO_free
    - RSA_free
    - BIO_new
    linkageType: ''
    returnType: int
    signature: SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file, int
      type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_RSAPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:503,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:504,1
    - Dst: SSL_CTX_use_RSAPrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:508,1
    - Dst: RSA_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - d
    - len
    argTypes:
    - SSL_CTX*
    - unsigned char*
    - long
    constantsTouched: []
    func_position:
      end: 511
      start: 495
    functionDepth: 7
    functionLinenumber: 495
    functionLinenumberEnd: 511
    functionName: SSL_CTX_use_RSAPrivateKey_ASN1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - RSA_free
    - SSL_CTX_use_RSAPrivateKey
    - SSLerr
    - d2i_RSAPrivateKey
    linkageType: ''
    returnType: int
    signature: "SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char *d,\n
      \                                  long len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:517,1
    - Dst: ssl_set_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - SSL_CTX*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 521
      start: 514
    functionDepth: 4
    functionLinenumber: 514
    functionLinenumberEnd: 521
    functionName: SSL_CTX_use_PrivateKey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 1
    functionsReached:
    - ssl_set_pkey
    - SSLerr
    linkageType: ''
    returnType: int
    signature: SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:529,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:529,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:531,1
    - Dst: BIO_read_filename
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:535,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:536,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:541,1
    - Dst: d2i_PrivateKey_bio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:546,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:548,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:552,1
    - Dst: SSL_CTX_use_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:555,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:556,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:558,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - ctx
    - file
    - type
    argTypes:
    - SSL_CTX*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 560
      start: 523
    functionDepth: 5
    functionLinenumber: 523
    functionLinenumberEnd: 560
    functionName: SSL_CTX_use_PrivateKey_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 4
    functionsReached:
    - BIO_read_filename
    - SSLerr
    - d2i_PrivateKey_bio
    - BIO_s_file
    - PEM_read_bio_PrivateKey
    - BIO_free
    - SSL_CTX_use_PrivateKey
    - BIO_new
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:570,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:571,1
    - Dst: SSL_CTX_use_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:575,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - type
    - ctx
    - d
    - len
    argTypes:
    - int
    - SSL_CTX*
    - unsigned char*
    - long
    constantsTouched: []
    func_position:
      end: 578
      start: 562
    functionDepth: 5
    functionLinenumber: 562
    functionLinenumberEnd: 578
    functionName: SSL_CTX_use_PrivateKey_ASN1
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - d2i_PrivateKey
    - EVP_PKEY_free
    - SSLerr
    - SSL_CTX_use_PrivateKey
    linkageType: ''
    returnType: int
    signature: "SSL_CTX_use_PrivateKey_ASN1(int type, SSL_CTX *ctx,\n                                const
      unsigned char *d, long len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:593,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:604,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:604,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:606,1
    - Dst: BIO_read_filename
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:610,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:611,1
    - Dst: PEM_read_bio_X509_AUX
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:615,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:618,1
    - Dst: SSL_CTX_use_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:623,1
    - Dst: SSL_use_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:625,1
    - Dst: ERR_peek_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:627,1
    - Dst: SSL_CTX_clear_chain_certs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:640,1
    - Dst: SSL_clear_chain_certs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:642,1
    - Dst: PEM_read_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:649,1
    - Dst: SSL_CTX_add0_chain_cert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:653,1
    - Dst: SSL_add0_chain_cert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:655,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:662,1
    - Dst: ERR_peek_last_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:668,1
    - Dst: ERR_GET_LIB
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:669,1
    - Dst: ERR_GET_REASON
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:670,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:671,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:677,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:678,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 3
    argNames:
    - ctx
    - ssl
    - file
    argTypes:
    - SSL_CTX*
    - SSL*
    - char*
    constantsTouched: []
    func_position:
      end: 680
      start: 585
    functionDepth: 4
    functionLinenumber: 585
    functionLinenumberEnd: 680
    functionName: use_certificate_chain_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 2
    functionsReached:
    - BIO_read_filename
    - PEM_read_bio_X509_AUX
    - SSL_use_certificate
    - SSLerr
    - SSL_CTX_use_certificate
    - SSL_CTX_clear_chain_certs
    - ERR_GET_REASON
    - SSL_add0_chain_cert
    - BIO_free
    - ERR_peek_error
    - X509_free
    - BIO_new
    - SSL_clear_chain_certs
    - ERR_GET_LIB
    - BIO_s_file
    - ERR_peek_last_error
    - ERR_clear_error
    - PEM_read_bio_X509
    - SSL_CTX_add0_chain_cert
    linkageType: ''
    returnType: int
    signature: use_certificate_chain_file(SSL_CTX *ctx, SSL *ssl, const char *file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: use_certificate_chain_file
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - file
    argTypes:
    - SSL_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 685
      start: 682
    functionDepth: 5
    functionLinenumber: 682
    functionLinenumberEnd: 685
    functionName: SSL_CTX_use_certificate_chain_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 2
    functionsReached:
    - use_certificate_chain_file
    linkageType: ''
    returnType: int
    signature: SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: use_certificate_chain_file
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - file
    argTypes:
    - SSL*
    - char*
    constantsTouched: []
    func_position:
      end: 690
      start: 687
    functionDepth: 5
    functionLinenumber: 687
    functionLinenumberEnd: 690
    functionName: SSL_use_certificate_chain_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 1
    functionsReached:
    - use_certificate_chain_file
    linkageType: ''
    returnType: int
    signature: SSL_use_certificate_chain_file(SSL *ssl, const char *file)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 5
    argNames:
    - serverinfo
    - serverinfo_length
    - extension_type
    - extension_data
    - extension_length
    argTypes:
    - unsigned char*
    - size_t
    - unsigned int
    - unsigned char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 737
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 737
    functionName: serverinfo_find_extension
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "serverinfo_find_extension(const unsigned char *serverinfo,\n                                     size_t
      serverinfo_length,\n                                     unsigned int extension_type,\n
      \                                    const unsigned char **extension_data,\n
      \                                    size_t *extension_length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 750
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 750
    functionName: serverinfo_srv_parse_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "serverinfo_srv_parse_cb(SSL *s, unsigned int ext_type,\n                                   const
      unsigned char *in,\n                                   size_t inlen, int *al,
      void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_get_server_cert_serverinfo
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:760,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - s
    - ext_type
    - out
    - outlen
    - al
    - arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char**
    - size_t*
    - int*
    - void*
    constantsTouched: []
    func_position:
      end: 775
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 775
    functionName: serverinfo_srv_add_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - ssl_get_server_cert_serverinfo
    linkageType: ''
    returnType: int
    signature: "serverinfo_srv_add_cb(SSL *s, unsigned int ext_type,\n                                 const
      unsigned char **out, size_t *outlen,\n                                 int *al,
      void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_add_server_custom_ext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:815,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 3
    argNames:
    - serverinfo
    - serverinfo_length
    - ctx
    argTypes:
    - unsigned char*
    - size_t
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 839
      start: 782
    functionDepth: 3
    functionLinenumber: 782
    functionLinenumberEnd: 839
    functionName: serverinfo_process_buffer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_add_server_custom_ext
    linkageType: ''
    returnType: int
    signature: "serverinfo_process_buffer(const unsigned char *serverinfo,\n                                     size_t
      serverinfo_length, SSL_CTX *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:847,1
    - Dst: serverinfo_process_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:850,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:851,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:855,1
    - Dst: OPENSSL_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:858,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:861,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:865,1
    - Dst: serverinfo_process_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:872,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:873,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - serverinfo
    - serverinfo_length
    argTypes:
    - SSL_CTX*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 877
      start: 841
    functionDepth: 4
    functionLinenumber: 841
    functionLinenumberEnd: 877
    functionName: SSL_CTX_use_serverinfo
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 0
    functionsReached:
    - serverinfo_process_buffer
    - SSLerr
    - memcpy
    - OPENSSL_realloc
    linkageType: ''
    returnType: int
    signature: "SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo,\n
      \                          size_t serverinfo_length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:894,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:898,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:898,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:900,1
    - Dst: BIO_read_filename
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:903,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:904,1
    - Dst: PEM_read_bio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:909,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:915,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:922,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:922,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:923,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:926,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:926,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:927,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:936,1
    - Dst: OPENSSL_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:940,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:942,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:946,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:949,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:951,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:953,1
    - Dst: SSL_CTX_use_serverinfo
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:957,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:960,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:961,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:962,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:963,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c:964,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 2
    argNames:
    - ctx
    - file
    argTypes:
    - SSL_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 966
      start: 879
    functionDepth: 5
    functionLinenumber: 879
    functionLinenumberEnd: 966
    functionName: SSL_CTX_use_serverinfo_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
    functionUses: 1
    functionsReached:
    - BIO_read_filename
    - SSLerr
    - OPENSSL_realloc
    - strncmp
    - BIO_s_file
    - strlen
    - PEM_read_bio
    - memcpy
    - OPENSSL_free
    - BIO_free
    - BIO_new
    - SSL_CTX_use_serverinfo
    linkageType: ''
    returnType: int
    signature: SSL_CTX_use_serverinfo_file(SSL_CTX *ctx, const char *file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:49,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - profile_name
    - pptr
    - len
    argTypes:
    - char*
    - SRTP_PROTECTION_PROFILE**
    - unsigned
    constantsTouched: []
    func_position:
      end: 59
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 59
    functionName: find_profile_by_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c
    functionUses: 0
    functionsReached:
    - strlen
    - strncmp
    linkageType: ''
    returnType: int
    signature: "find_profile_by_name(char *profile_name,\n                                SRTP_PROTECTION_PROFILE
      **pptr, unsigned len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:64,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:70,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:71,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:77,1
    - Dst: find_profile_by_name
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:79,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:79,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_find
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:80,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:81,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_push
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:86,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:87,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:92,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:101,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:107,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - profiles_string
    - out
    argTypes:
    - char*
    - STACK_OF**
    constantsTouched: []
    func_position:
      end: 109
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 109
    functionName: ssl_ctx_make_profiles
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c
    functionUses: 0
    functionsReached:
    - sk_SRTP_PROTECTION_PROFILE_new_null
    - SSLerr
    - STACK_OF
    - sk_SRTP_PROTECTION_PROFILE_find
    - sk_SRTP_PROTECTION_PROFILE_free
    - strchr
    - strlen
    - sk_SRTP_PROTECTION_PROFILE_push
    - find_profile_by_name
    linkageType: ''
    returnType: int
    signature: "ssl_ctx_make_profiles(const char *profiles_string,\n                                 STACK_OF(SRTP_PROTECTION_PROFILE)
      **out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_ctx_make_profiles
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - profiles
    argTypes:
    - SSL_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: SSL_CTX_set_tlsext_use_srtp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c
    functionUses: 1
    functionsReached:
    - ssl_ctx_make_profiles
    linkageType: ''
    returnType: int
    signature: SSL_CTX_set_tlsext_use_srtp(SSL_CTX *ctx, const char *profiles)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_ctx_make_profiles
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - profiles
    argTypes:
    - SSL*
    - char*
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: SSL_set_tlsext_use_srtp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c
    functionUses: 0
    functionsReached:
    - ssl_ctx_make_profiles
    linkageType: ''
    returnType: int
    signature: SSL_set_tlsext_use_srtp(SSL *s, const char *profiles)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: SSL_get_selected_srtp_profile
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SRTP_PROTECTION_PROFILE
    signature: '*SSL_get_selected_srtp_profile(SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:147,1
    - Dst: SSL_get_srtp_profiles
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:150,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:151,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:155,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:161,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:167,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:169,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - s
    - p
    - len
    - maxlen
    argTypes:
    - SSL*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 180
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 180
    functionName: ssl_add_clienthello_use_srtp_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c
    functionUses: 0
    functionsReached:
    - SSL_get_srtp_profiles
    - s2n
    - SSLerr
    - STACK_OF
    - sk_SRTP_PROTECTION_PROFILE_value
    - sk_SRTP_PROTECTION_PROFILE_num
    linkageType: ''
    returnType: int
    signature: "ssl_add_clienthello_use_srtp_ext(SSL *s, unsigned char *p, int *len,\n
      \                                    int maxlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:185,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:191,1
    - Dst: PACKET_get_sub_packet
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:192,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:193,1
    - Dst: SSL_get_srtp_profiles
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:199,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:202,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:204,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:205,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:206,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:219,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:231,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:232,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:238,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:239,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:240,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - s
    - pkt
    - al
    argTypes:
    - SSL*
    - PACKET*
    - int*
    constantsTouched: []
    func_position:
      end: 247
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 247
    functionName: ssl_parse_clienthello_use_srtp_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c
    functionUses: 0
    functionsReached:
    - SSL_get_srtp_profiles
    - SSLerr
    - STACK_OF
    - PACKET_get_sub_packet
    - PACKET_get_net_2
    - PACKET_remaining
    - PACKET_forward
    - sk_SRTP_PROTECTION_PROFILE_value
    - PACKET_get_1
    - sk_SRTP_PROTECTION_PROFILE_num
    linkageType: ''
    returnType: int
    signature: ssl_parse_clienthello_use_srtp_ext(SSL *s, PACKET *pkt, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:254,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:260,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:264,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - s
    - p
    - len
    - maxlen
    argTypes:
    - SSL*
    - unsigned char*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 271
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 271
    functionName: ssl_add_serverhello_use_srtp_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c
    functionUses: 0
    functionsReached:
    - s2n
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "ssl_add_serverhello_use_srtp_ext(SSL *s, unsigned char *p, int *len,\n
      \                                    int maxlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:278,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:281,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:282,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:283,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:284,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:285,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:293,1
    - Dst: SSL_get_srtp_profiles
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:299,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:303,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:313,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:314,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c:323,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - s
    - pkt
    - al
    argTypes:
    - SSL*
    - PACKET*
    - int*
    constantsTouched: []
    func_position:
      end: 327
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 327
    functionName: ssl_parse_serverhello_use_srtp_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c
    functionUses: 0
    functionsReached:
    - SSL_get_srtp_profiles
    - SSLerr
    - STACK_OF
    - PACKET_get_net_2
    - PACKET_remaining
    - sk_SRTP_PROTECTION_PROFILE_value
    - PACKET_get_1
    - sk_SRTP_PROTECTION_PROFILE_num
    linkageType: ''
    returnType: int
    signature: ssl_parse_serverhello_use_srtp_ext(SSL *s, PACKET *pkt, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/pqueue.c:20,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/pqueue.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - prio64be
    - data
    argTypes:
    - unsigned char*
    - void*
    constantsTouched: []
    func_position:
      end: 30
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 30
    functionName: pitem_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/pqueue.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OPENSSL_malloc
    linkageType: ''
    returnType: pitem
    signature: '*pitem_new(unsigned char *prio64be, void *data)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/pqueue.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - pitem*
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: pitem_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/pqueue.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: pitem_free(pitem *item)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/pqueue.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: pqueue_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/pqueue.c
    functionUses: 1
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: pqueue
    signature: '*pqueue_new()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/pqueue.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pq
    argTypes:
    - pqueue*
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: pqueue_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/pqueue.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: pqueue_free(pqueue *pq)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - pq
    - item
    argTypes:
    - pqueue*
    - pitem*
    constantsTouched: []
    func_position:
      end: 83
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 83
    functionName: pqueue_insert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/pqueue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pitem
    signature: '*pqueue_insert(pqueue *pq, pitem *item)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pq
    argTypes:
    - pqueue*
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: pqueue_peek
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/pqueue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pitem
    signature: '*pqueue_peek(pqueue *pq)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pq
    argTypes:
    - pqueue*
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: pqueue_pop
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/pqueue.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: pitem
    signature: '*pqueue_pop(pqueue *pq)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/pqueue.c:109,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/pqueue.c:116,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - pq
    - prio64be
    argTypes:
    - pqueue*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 123
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 123
    functionName: pqueue_find
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/pqueue.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: pitem
    signature: '*pqueue_find(pqueue *pq, unsigned char *prio64be)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pqueue_peek
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/pqueue.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pq
    argTypes:
    - pqueue*
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: pqueue_iterator
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/pqueue.c
    functionUses: 0
    functionsReached:
    - pqueue_peek
    linkageType: ''
    returnType: pitem
    signature: '*pqueue_iterator(pqueue *pq)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - item
    argTypes:
    - pitem**
    constantsTouched: []
    func_position:
      end: 142
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 142
    functionName: pqueue_next
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/pqueue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pitem
    signature: '*pqueue_next(pitem **item)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pq
    argTypes:
    - pqueue*
    constantsTouched: []
    func_position:
      end: 154
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 154
    functionName: pqueue_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/pqueue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: pqueue_size(pqueue *pq)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:120,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:121,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:124,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:125,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:126,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:131,1
    - Dst: EVP_get_digestbynid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:135,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - struct dane_ctx_st*
    constantsTouched: []
    func_position:
      end: 146
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 146
    functionName: dane_ctx_enable
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - EVP_get_digestbynid
    - OPENSSL_zalloc
    - OSSL_NELEM
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: dane_ctx_enable(struct dane_ctx_st *dctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:150,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - struct dane_ctx_st*
    constantsTouched: []
    func_position:
      end: 156
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 156
    functionName: dane_ctx_final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: dane_ctx_final(struct dane_ctx_st *dctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:162,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:163,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - t
    argTypes:
    - danetls_record*
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: tlsa_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: tlsa_free(danetls_record *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_danetls_record_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:169,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:172,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - dane
    argTypes:
    - SSL_DANE*
    constantsTouched: []
    func_position:
      end: 180
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 180
    functionName: dane_final
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - sk_X509_pop_free
    - sk_danetls_record_pop_free
    - X509_free
    linkageType: ''
    returnType: void
    signature: dane_final(SSL_DANE *dane)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DANETLS_ENABLED
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:190,1
    - Dst: dane_final
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:193,1
    - Dst: sk_danetls_record_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:196,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:199,1
    - Dst: sk_danetls_record_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:203,1
    - Dst: sk_danetls_record_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:205,1
    - Dst: SSL_dane_tlsa_add
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - SSL*
    - SSL*
    constantsTouched: []
    func_position:
      end: 212
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 212
    functionName: ssl_dane_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - sk_danetls_record_num
    - SSLerr
    - sk_danetls_record_new_null
    - SSL_dane_tlsa_add
    - DANETLS_ENABLED
    - sk_danetls_record_value
    - dane_final
    linkageType: ''
    returnType: int
    signature: ssl_dane_dup(SSL *to, SSL *from)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:220,1
    - Dst: OPENSSL_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:229,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:231,1
    - Dst: OPENSSL_realloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:236,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:238,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - dctx
    - md
    - mtype
    - ord
    argTypes:
    - struct dane_ctx_st*
    - EVP_MD*
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 257
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 257
    functionName: dane_mtype_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_realloc
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "dane_mtype_set(struct dane_ctx_st *dctx,\n                          const
      EVP_MD *md, uint8_t mtype, uint8_t ord)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dane
    - mtype
    argTypes:
    - SSL_DANE*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 264
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 264
    functionName: tlsa_md_get
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: '*tlsa_md_get(SSL_DANE *dane, uint8_t mtype)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:278,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:283,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:288,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:293,1
    - Dst: tlsa_md_get
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:298,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:300,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:305,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:306,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:310,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:314,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:315,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:322,1
    - Dst: tlsa_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:324,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:325,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:328,1
    - Dst: d2i_X509
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:339,1
    - Dst: tlsa_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:341,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:342,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:345,1
    - Dst: tlsa_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:346,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:347,1
    - Dst: DANETLS_USAGE_BIT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:351,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:352,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:364,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:365,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:366,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:367,1
    - Dst: tlsa_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:368,1
    - Dst: d2i_PUBKEY
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:374,1
    - Dst: tlsa_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:376,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:377,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:389,1
    - Dst: sk_danetls_record_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:408,1
    - Dst: sk_danetls_record_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:410,1
    - Dst: sk_danetls_record_insert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:425,1
    - Dst: tlsa_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:426,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:427,1
    - Dst: DANETLS_USAGE_BIT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:430,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 104
    argCount: 6
    argNames:
    - dane
    - usage
    - selector
    - mtype
    - data
    - dlen
    argTypes:
    - SSL_DANE*
    - uint8_t
    - uint8_t
    - uint8_t
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 433
      start: 266
    functionDepth: 7
    functionLinenumber: 266
    functionLinenumberEnd: 433
    functionName: dane_tlsa_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 3
    functionsReached:
    - d2i_X509
    - SSLerr
    - sk_danetls_record_num
    - EVP_MD_size
    - sk_X509_new_null
    - sk_danetls_record_insert
    - X509_get0_pubkey
    - DANETLS_USAGE_BIT
    - tlsa_md_get
    - tlsa_free
    - sk_X509_push
    - memcpy
    - d2i_PUBKEY
    - X509_free
    - OPENSSL_zalloc
    - sk_danetls_record_value
    - OPENSSL_malloc
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: "dane_tlsa_add(SSL_DANE *dane,\n                         uint8_t usage,\n
      \                        uint8_t selector,\n                         uint8_t
      mtype, unsigned char *data, size_t dlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_clear_cipher_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:438,1
    - Dst: ssl_clear_hash_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:439,1
    - Dst: ssl_clear_hash_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 441
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 441
    functionName: clear_ciphers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - ssl_clear_cipher_ctx
    - ssl_clear_hash_ctx
    linkageType: ''
    returnType: void
    signature: clear_ciphers(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:446,1
    - Dst: ssl_clear_bad_session
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:450,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:451,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:460,1
    - Dst: ossl_statem_clear
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:464,1
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:470,1
    - Dst: clear_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:472,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:478,1
    - Dst: X509_VERIFY_PARAM_move_peername
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:483,1
    - Dst: ossl_statem_get_in_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:489,1
    - Dst: SSL*::method::ssl_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:491,1
    - Dst: SSL*::method::ssl_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:493,1
    - Dst: SSL*::method::ssl_clear
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:496,1
    - Dst: RECORD_LAYER_clear
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:498,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 501
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 501
    functionName: SSL_clear
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 12
    functionsReached:
    - SSL_SESSION_free
    - SSL*::method::ssl_free
    - SSLerr
    - clear_ciphers
    - X509_VERIFY_PARAM_move_peername
    - ossl_statem_get_in_handshake
    - SSL*::method::ssl_new
    - ssl_clear_bad_session
    - X509_free
    - RECORD_LAYER_clear
    - ossl_statem_clear
    - SSL*::method::ssl_clear
    - BUF_MEM_free
    linkageType: ''
    returnType: int
    signature: SSL_clear(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:506,1
    - Dst: ssl_create_cipher_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:510,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:513,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - meth
    argTypes:
    - SSL_CTX*
    - SSL_METHOD*
    constantsTouched: []
    func_position:
      end: 518
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 518
    functionName: SSL_CTX_set_ssl_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - sk_SSL_CIPHER_num
    - SSLerr
    - ssl_create_cipher_list
    linkageType: ''
    returnType: int
    signature: SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:525,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:529,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:533,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:537,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:539,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:540,1
    - Dst: RECORD_LAYER_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:544,1
    - Dst: ssl_cert_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:563,1
    - Dst: RECORD_LAYER_set_read_ahead
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:567,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:573,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:574,1
    - Dst: X509_VERIFY_PARAM_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:578,1
    - Dst: X509_VERIFY_PARAM_inherit
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:581,1
    - Dst: RECORD_LAYER_set_read_ahead
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:587,1
    - Dst: SSL_set_default_read_buffer_len
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:589,1
    - Dst: SSL_CTX_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:591,1
    - Dst: SSL_CTX_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:602,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:607,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:616,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:630,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:633,1
    - Dst: SSL*::method::ssl_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:646,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:651,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:654,1
    - Dst: SSL_set_ct_validation_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:665,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:672,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:673,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 117
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 675
      start: 520
    functionDepth: 3
    functionLinenumber: 520
    functionLinenumberEnd: 675
    functionName: SSL_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 20
    functionsReached:
    - SSLerr
    - SSL_set_ct_validation_callback
    - X509_VERIFY_PARAM_inherit
    - SSL*::method::ssl_new
    - OPENSSL_zalloc
    - SSL_CTX_up_ref
    - SSL_set_default_read_buffer_len
    - RECORD_LAYER_init
    - CRYPTO_THREAD_lock_new
    - SSL_free
    - RECORD_LAYER_set_read_ahead
    - ssl_cert_dup
    - OPENSSL_free
    - X509_VERIFY_PARAM_new
    - CRYPTO_new_ex_data
    - OPENSSL_assert
    - OPENSSL_memdup
    - SSL_clear
    - memcpy
    - OPENSSL_malloc
    linkageType: ''
    returnType: SSL
    signature: '*SSL_new(SSL_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 680
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 680
    functionName: SSL_is_dtls
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - SSL_IS_DTLS
    linkageType: ''
    returnType: int
    signature: SSL_is_dtls(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:686,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:689,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 692
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 692
    functionName: SSL_up_ref
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_atomic_add
    linkageType: ''
    returnType: int
    signature: SSL_up_ref(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:698,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - sid_ctx
    - sid_ctx_len
    argTypes:
    - SSL_CTX*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 706
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 706
    functionName: SSL_CTX_set_session_id_context
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - memcpy
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "SSL_CTX_set_session_id_context(SSL_CTX *ctx, const unsigned char *sid_ctx,\n
      \                                  unsigned int sid_ctx_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:712,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ssl
    - sid_ctx
    - sid_ctx_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 720
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 720
    functionName: SSL_set_session_id_context
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 3
    functionsReached:
    - memcpy
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx,\n
      \                              unsigned int sid_ctx_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:724,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - cb
    argTypes:
    - SSL_CTX*
    - GEN_SESSION_CB
    constantsTouched: []
    func_position:
      end: 728
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 728
    functionName: SSL_CTX_set_generate_session_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: SSL_CTX_set_generate_session_id(SSL_CTX *ctx, GEN_SESSION_CB cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:732,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ssl
    - cb
    argTypes:
    - SSL*
    - GEN_SESSION_CB
    constantsTouched: []
    func_position:
      end: 736
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 736
    functionName: SSL_set_generate_session_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: SSL_set_generate_session_id(SSL *ssl, GEN_SESSION_CB cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:755,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:757,1
    - Dst: lh_SSL_SESSION_retrieve
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:758,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ssl
    - id
    - id_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 761
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 761
    functionName: SSL_has_matching_session_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_unlock
    - lh_SSL_SESSION_retrieve
    - memcpy
    - CRYPTO_THREAD_read_lock
    linkageType: ''
    returnType: int
    signature: "SSL_has_matching_session_id(const SSL *ssl, const unsigned char *id,\n
      \                               unsigned int id_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_purpose
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - purpose
    argTypes:
    - SSL_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 766
      start: 763
    functionDepth: 2
    functionLinenumber: 763
    functionLinenumberEnd: 766
    functionName: SSL_CTX_set_purpose
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_purpose
    linkageType: ''
    returnType: int
    signature: SSL_CTX_set_purpose(SSL_CTX *s, int purpose)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_purpose
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - purpose
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 771
      start: 768
    functionDepth: 2
    functionLinenumber: 768
    functionLinenumberEnd: 771
    functionName: SSL_set_purpose
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_purpose
    linkageType: ''
    returnType: int
    signature: SSL_set_purpose(SSL *s, int purpose)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_trust
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - trust
    argTypes:
    - SSL_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 776
      start: 773
    functionDepth: 3
    functionLinenumber: 773
    functionLinenumberEnd: 776
    functionName: SSL_CTX_set_trust
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_trust
    linkageType: ''
    returnType: int
    signature: SSL_CTX_set_trust(SSL_CTX *s, int trust)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_trust
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - trust
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 781
      start: 778
    functionDepth: 3
    functionLinenumber: 778
    functionLinenumberEnd: 781
    functionName: SSL_set_trust
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_trust
    linkageType: ''
    returnType: int
    signature: SSL_set_trust(SSL *s, int trust)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set1_host
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - hostname
    argTypes:
    - SSL*
    - char*
    constantsTouched: []
    func_position:
      end: 786
      start: 783
    functionDepth: 2
    functionLinenumber: 783
    functionLinenumberEnd: 786
    functionName: SSL_set1_host
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set1_host
    linkageType: ''
    returnType: int
    signature: SSL_set1_host(SSL *s, const char *hostname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_add1_host
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - hostname
    argTypes:
    - SSL*
    - char*
    constantsTouched: []
    func_position:
      end: 791
      start: 788
    functionDepth: 2
    functionLinenumber: 788
    functionLinenumberEnd: 791
    functionName: SSL_add1_host
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_add1_host
    linkageType: ''
    returnType: int
    signature: SSL_add1_host(SSL *s, const char *hostname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_hostflags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - flags
    argTypes:
    - SSL*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 796
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 796
    functionName: SSL_set_hostflags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_hostflags
    linkageType: ''
    returnType: void
    signature: SSL_set_hostflags(SSL *s, unsigned int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_get0_peername
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 801
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 801
    functionName: SSL_get0_peername
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_get0_peername
    linkageType: ''
    returnType: char
    signature: '*SSL_get0_peername(SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dane_ctx_enable
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 806
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 806
    functionName: SSL_CTX_dane_enable
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - dane_ctx_enable
    linkageType: ''
    returnType: int
    signature: SSL_CTX_dane_enable(SSL_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - SSL_CTX*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 814
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 814
    functionName: SSL_CTX_dane_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: SSL_CTX_dane_set_flags(SSL_CTX *ctx, unsigned long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - SSL_CTX*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 822
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 822
    functionName: SSL_CTX_dane_clear_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: SSL_CTX_dane_clear_flags(SSL_CTX *ctx, unsigned long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:829,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:833,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:843,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:844,1
    - Dst: X509_VERIFY_PARAM_set1_host
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:850,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:851,1
    - Dst: sk_danetls_record_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:858,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:861,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - s
    - basedomain
    argTypes:
    - SSL*
    - char*
    constantsTouched: []
    func_position:
      end: 865
      start: 824
    functionDepth: 2
    functionLinenumber: 824
    functionLinenumberEnd: 865
    functionName: SSL_dane_enable
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - SSL_set_tlsext_host_name
    - SSLerr
    - X509_VERIFY_PARAM_set1_host
    - sk_danetls_record_new_null
    linkageType: ''
    returnType: int
    signature: SSL_dane_enable(SSL *s, const char *basedomain)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ssl
    - flags
    argTypes:
    - SSL*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 873
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 873
    functionName: SSL_dane_set_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: SSL_dane_set_flags(SSL *ssl, unsigned long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ssl
    - flags
    argTypes:
    - SSL*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 881
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 881
    functionName: SSL_dane_clear_flags
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: SSL_dane_clear_flags(SSL *ssl, unsigned long flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DANETLS_ENABLED
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:887,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - s
    - mcert
    - mspki
    argTypes:
    - SSL*
    - X509**
    - EVP_PKEY**
    constantsTouched: []
    func_position:
      end: 896
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 896
    functionName: SSL_get0_dane_authority
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - DANETLS_ENABLED
    linkageType: ''
    returnType: int
    signature: SSL_get0_dane_authority(SSL *s, X509 **mcert, EVP_PKEY **mspki)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DANETLS_ENABLED
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:903,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 6
    argNames:
    - s
    - usage
    - selector
    - mtype
    - data
    - dlen
    argTypes:
    - SSL*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - unsigned const char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 918
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 918
    functionName: SSL_get0_dane_tlsa
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - DANETLS_ENABLED
    linkageType: ''
    returnType: int
    signature: "SSL_get0_dane_tlsa(SSL *s, uint8_t *usage, uint8_t *selector,\n                       uint8_t
      *mtype, unsigned const char **data, size_t *dlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 923
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 923
    functionName: SSL_get0_dane
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SSL_DANE
    signature: '*SSL_get0_dane(SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dane_tlsa_add
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - s
    - usage
    - selector
    - mtype
    - data
    - dlen
    argTypes:
    - SSL*
    - uint8_t
    - uint8_t
    - uint8_t
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 929
      start: 925
    functionDepth: 8
    functionLinenumber: 925
    functionLinenumberEnd: 929
    functionName: SSL_dane_tlsa_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 3
    functionsReached:
    - dane_tlsa_add
    linkageType: ''
    returnType: int
    signature: "SSL_dane_tlsa_add(SSL *s, uint8_t usage, uint8_t selector,\n                      uint8_t
      mtype, unsigned char *data, size_t dlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dane_mtype_set
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - md
    - mtype
    - ord
    argTypes:
    - SSL_CTX*
    - EVP_MD*
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 935
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 935
    functionName: SSL_CTX_dane_mtype_set
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - dane_mtype_set
    linkageType: ''
    returnType: int
    signature: "SSL_CTX_dane_mtype_set(SSL_CTX *ctx, const EVP_MD *md, uint8_t mtype,\n
      \                          uint8_t ord)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - vpm
    argTypes:
    - SSL_CTX*
    - X509_VERIFY_PARAM*
    constantsTouched: []
    func_position:
      end: 940
      start: 937
    functionDepth: 3
    functionLinenumber: 937
    functionLinenumberEnd: 940
    functionName: SSL_CTX_set1_param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - X509_VERIFY_PARAM_set1
    linkageType: ''
    returnType: int
    signature: SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - vpm
    argTypes:
    - SSL*
    - X509_VERIFY_PARAM*
    constantsTouched: []
    func_position:
      end: 945
      start: 942
    functionDepth: 3
    functionLinenumber: 942
    functionLinenumberEnd: 945
    functionName: SSL_set1_param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set1
    linkageType: ''
    returnType: int
    signature: SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 950
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 950
    functionName: SSL_CTX_get0_param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_VERIFY_PARAM
    signature: '*SSL_CTX_get0_param(SSL_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 955
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 955
    functionName: SSL_get0_param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_VERIFY_PARAM
    signature: '*SSL_get0_param(SSL *ssl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cert_clear_certs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 960
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 960
    functionName: SSL_certs_clear
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - ssl_cert_clear_certs
    linkageType: ''
    returnType: void
    signature: SSL_certs_clear(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:969,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:970,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:973,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:975,1
    - Dst: dane_final
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:976,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:977,1
    - Dst: ssl_free_wbio_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:979,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:981,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:982,1
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:984,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:987,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:988,1
    - Dst: ssl_clear_bad_session
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:992,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:993,1
    - Dst: clear_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:996,1
    - Dst: ssl_cert_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:998,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1001,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1002,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1004,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1005,1
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1007,1
    - Dst: sk_OCSP_RESPID_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1009,1
    - Dst: SCT_LIST_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1012,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1013,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1015,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1016,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1018,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1020,1
    - Dst: SSL*::method::ssl_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1023,1
    - Dst: RECORD_LAYER_release
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1025,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1027,1
    - Dst: ASYNC_WAIT_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1029,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1032,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1036,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1039,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1041,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1042
      start: 962
    functionDepth: 5
    functionLinenumber: 962
    functionLinenumberEnd: 1042
    functionName: SSL_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 697
    functionsReached:
    - sk_X509_pop_free
    - RECORD_LAYER_release
    - X509_VERIFY_PARAM_free
    - ASYNC_WAIT_CTX_free
    - CRYPTO_free_ex_data
    - dane_final
    - CRYPTO_THREAD_lock_free
    - sk_X509_EXTENSION_pop_free
    - SSL*::method::ssl_free
    - clear_ciphers
    - ssl_clear_bad_session
    - CRYPTO_atomic_add
    - REF_ASSERT_ISNT
    - sk_X509_NAME_pop_free
    - sk_SSL_CIPHER_free
    - REF_PRINT_COUNT
    - sk_SRTP_PROTECTION_PROFILE_free
    - SSL_CTX_free
    - OPENSSL_free
    - ssl_cert_free
    - SSL_SESSION_free
    - BIO_free_all
    - ssl_free_wbio_buffer
    - SCT_LIST_free
    - sk_OCSP_RESPID_pop_free
    - BUF_MEM_free
    linkageType: ''
    returnType: void
    signature: SSL_free(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - rbio
    argTypes:
    - SSL*
    - BIO*
    constantsTouched: []
    func_position:
      end: 1048
      start: 1044
    functionDepth: 5
    functionLinenumber: 1044
    functionLinenumberEnd: 1048
    functionName: SSL_set0_rbio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - BIO_free_all
    linkageType: ''
    returnType: void
    signature: SSL_set0_rbio(SSL *s, BIO *rbio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_pop
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1056,1
    - Dst: BIO_free_all
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1058,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1063,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - s
    - wbio
    argTypes:
    - SSL*
    - BIO*
    constantsTouched: []
    func_position:
      end: 1064
      start: 1050
    functionDepth: 5
    functionLinenumber: 1050
    functionLinenumberEnd: 1064
    functionName: SSL_set0_wbio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - BIO_push
    - BIO_pop
    - BIO_free_all
    linkageType: ''
    returnType: void
    signature: SSL_set0_wbio(SSL *s, BIO *wbio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1074,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1074,1
    - Dst: BIO_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1082,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1087,1
    - Dst: SSL_set0_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1088,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1096,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1096,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1096,1
    - Dst: SSL_set0_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1097,1
    - Dst: SSL_set0_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1102,1
    - Dst: SSL_set0_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1103,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - s
    - rbio
    - wbio
    argTypes:
    - SSL*
    - BIO*
    - BIO*
    constantsTouched: []
    func_position:
      end: 1104
      start: 1066
    functionDepth: 6
    functionLinenumber: 1066
    functionLinenumberEnd: 1104
    functionName: SSL_set_bio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 15
    functionsReached:
    - BIO_up_ref
    - SSL_set0_wbio
    - SSL_set0_rbio
    - SSL_get_rbio
    - SSL_get_wbio
    linkageType: ''
    returnType: void
    signature: SSL_set_bio(SSL *s, BIO *rbio, BIO *wbio)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1109
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1109
    functionName: SSL_get_rbio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: BIO
    signature: '*SSL_get_rbio(const SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1121
      start: 1111
    functionDepth: 1
    functionLinenumber: 1111
    functionLinenumberEnd: 1121
    functionName: SSL_get_wbio
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 13
    functionsReached:
    - BIO_next
    linkageType: ''
    returnType: BIO
    signature: '*SSL_get_wbio(const SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_rfd
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1126
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1126
    functionName: SSL_get_fd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 4
    functionsReached:
    - SSL_get_rfd
    linkageType: ''
    returnType: int
    signature: SSL_get_fd(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1133,1
    - Dst: BIO_find_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1134,1
    - Dst: BIO_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1138
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1138
    functionName: SSL_get_rfd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - SSL_get_rbio
    - BIO_find_type
    - BIO_get_fd
    linkageType: ''
    returnType: int
    signature: SSL_get_rfd(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1145,1
    - Dst: BIO_find_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1146,1
    - Dst: BIO_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1150
      start: 1140
    functionDepth: 2
    functionLinenumber: 1140
    functionLinenumberEnd: 1150
    functionName: SSL_get_wfd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - BIO_find_type
    - SSL_get_wbio
    - BIO_get_fd
    linkageType: ''
    returnType: int
    signature: SSL_get_wfd(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1158,1
    - Dst: BIO_s_socket
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1158,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1161,1
    - Dst: BIO_set_fd
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1164,1
    - Dst: SSL_set_bio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - s
    - fd
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 1169
      start: 1153
    functionDepth: 7
    functionLinenumber: 1153
    functionLinenumberEnd: 1169
    functionName: SSL_set_fd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - BIO_set_fd
    - SSLerr
    - SSL_set_bio
    - BIO_new
    - BIO_s_socket
    linkageType: ''
    returnType: int
    signature: SSL_set_fd(SSL *s, int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1173,1
    - Dst: BIO_method_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1175,1
    - Dst: BIO_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1176,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1177,1
    - Dst: BIO_s_socket
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1177,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1180,1
    - Dst: BIO_set_fd
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1183,1
    - Dst: SSL_set0_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1184,1
    - Dst: BIO_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1186,1
    - Dst: SSL_set0_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - s
    - fd
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 1190
      start: 1171
    functionDepth: 6
    functionLinenumber: 1171
    functionLinenumberEnd: 1190
    functionName: SSL_set_wfd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - BIO_method_type
    - BIO_set_fd
    - BIO_up_ref
    - SSLerr
    - SSL_set0_wbio
    - SSL_get_rbio
    - BIO_get_fd
    - BIO_new
    - BIO_s_socket
    linkageType: ''
    returnType: int
    signature: SSL_set_wfd(SSL *s, int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1194,1
    - Dst: BIO_method_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1196,1
    - Dst: BIO_get_fd
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1197,1
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1198,1
    - Dst: BIO_s_socket
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1198,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1201,1
    - Dst: BIO_set_fd
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1204,1
    - Dst: SSL_set0_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1205,1
    - Dst: BIO_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1207,1
    - Dst: SSL_set0_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - s
    - fd
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 1212
      start: 1192
    functionDepth: 6
    functionLinenumber: 1192
    functionLinenumberEnd: 1212
    functionName: SSL_set_rfd
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - BIO_method_type
    - BIO_set_fd
    - BIO_up_ref
    - SSLerr
    - SSL_set0_rbio
    - BIO_get_fd
    - BIO_new
    - BIO_s_socket
    - SSL_get_wbio
    linkageType: ''
    returnType: int
    signature: SSL_set_rfd(SSL *s, int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - s
    - buf
    - count
    argTypes:
    - SSL*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 1227
      start: 1216
    functionDepth: 0
    functionLinenumber: 1216
    functionLinenumberEnd: 1227
    functionName: SSL_get_finished
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: SSL_get_finished(const SSL *s, void *buf, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - s
    - buf
    - count
    argTypes:
    - SSL*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 1241
      start: 1230
    functionDepth: 0
    functionLinenumber: 1230
    functionLinenumberEnd: 1241
    functionName: SSL_get_peer_finished
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: SSL_get_peer_finished(const SSL *s, void *buf, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1246
      start: 1243
    functionDepth: 0
    functionLinenumber: 1243
    functionLinenumberEnd: 1246
    functionName: SSL_get_verify_mode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_get_verify_mode(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_get_depth
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1251
      start: 1248
    functionDepth: 1
    functionLinenumber: 1248
    functionLinenumberEnd: 1251
    functionName: SSL_get_verify_depth
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_get_depth
    linkageType: ''
    returnType: int
    signature: SSL_get_verify_depth(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1253
    functionDepth: 0
    functionLinenumber: 1253
    functionLinenumberEnd: 1255
    functionName: (*SSL_get_verify_callback(const SSL *s)) (int, X509_STORE_CTX *)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*SSL_get_verify_callback(const SSL *s)) (int, X509_STORE_CTX *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 1260
      start: 1257
    functionDepth: 0
    functionLinenumber: 1257
    functionLinenumberEnd: 1260
    functionName: SSL_CTX_get_verify_mode
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_CTX_get_verify_mode(const SSL_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_get_depth
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 1265
      start: 1262
    functionDepth: 1
    functionLinenumber: 1262
    functionLinenumberEnd: 1265
    functionName: SSL_CTX_get_verify_depth
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_get_depth
    linkageType: ''
    returnType: int
    signature: SSL_CTX_get_verify_depth(const SSL_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1267
    functionDepth: 0
    functionLinenumber: 1267
    functionLinenumberEnd: 1269
    functionName: (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx)) (int, X509_STORE_CTX
      *)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx)) (int, X509_STORE_CTX
      *)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - mode
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 1277
      start: 1271
    functionDepth: 0
    functionLinenumber: 1271
    functionLinenumberEnd: 1277
    functionName: SSL_set_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SSL_set_verify(SSL *s, int mode,\n                    int (*callback)
      (int ok, X509_STORE_CTX *ctx))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_depth
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - depth
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 1282
      start: 1279
    functionDepth: 1
    functionLinenumber: 1279
    functionLinenumberEnd: 1282
    functionName: SSL_set_verify_depth
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_depth
    linkageType: ''
    returnType: void
    signature: SSL_set_verify_depth(SSL *s, int depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_set_read_ahead
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - 'yes'
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 1287
      start: 1284
    functionDepth: 0
    functionLinenumber: 1284
    functionLinenumberEnd: 1287
    functionName: SSL_set_read_ahead
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - RECORD_LAYER_set_read_ahead
    linkageType: ''
    returnType: void
    signature: SSL_set_read_ahead(SSL *s, int yes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_read_ahead
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1292
      start: 1289
    functionDepth: 0
    functionLinenumber: 1289
    functionLinenumberEnd: 1292
    functionName: SSL_get_read_ahead
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - RECORD_LAYER_get_read_ahead
    linkageType: ''
    returnType: int
    signature: SSL_get_read_ahead(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::method::ssl_pending
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1304
      start: 1294
    functionDepth: 0
    functionLinenumber: 1294
    functionLinenumberEnd: 1304
    functionName: SSL_pending
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - SSL*::method::ssl_pending
    linkageType: ''
    returnType: int
    signature: SSL_pending(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_pending
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1316,1
    - Dst: RECORD_LAYER_read_pending
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1320
      start: 1306
    functionDepth: 1
    functionLinenumber: 1306
    functionLinenumberEnd: 1320
    functionName: SSL_has_pending
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - SSL_pending
    - RECORD_LAYER_read_pending
    linkageType: ''
    returnType: int
    signature: SSL_has_pending(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1337
      start: 1322
    functionDepth: 1
    functionLinenumber: 1322
    functionLinenumberEnd: 1337
    functionName: SSL_get_peer_certificate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 6
    functionsReached:
    - X509_up_ref
    linkageType: ''
    returnType: X509
    signature: '*SSL_get_peer_certificate(const SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_session
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1364,1
    - Dst: SSL_get_session
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1364,1
    - Dst: SSL*::method::ssl_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1372,1
    - Dst: SSL*::method::ssl_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1374,1
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1378,1
    - Dst: ssl_cert_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1379,1
    - Dst: SSL_set_session_id_context
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1381,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - t
    - f
    argTypes:
    - SSL*
    - SSL*
    constantsTouched: []
    func_position:
      end: 1386
      start: 1360
    functionDepth: 2
    functionLinenumber: 1360
    functionLinenumberEnd: 1386
    functionName: SSL_copy_session_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - SSL_get_session
    - SSL*::method::ssl_free
    - SSL*::method::ssl_new
    - CRYPTO_atomic_add
    - ssl_cert_free
    - SSL_set_session_id_context
    - SSL_set_session
    linkageType: ''
    returnType: int
    signature: SSL_copy_session_id(SSL *t, const SSL *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1392,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1396,1
    - Dst: X509_check_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1399,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 1401
      start: 1389
    functionDepth: 3
    functionLinenumber: 1389
    functionLinenumberEnd: 1401
    functionName: SSL_CTX_check_private_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 3
    functionsReached:
    - X509_check_private_key
    - SSLerr
    linkageType: ''
    returnType: int
    signature: SSL_CTX_check_private_key(const SSL_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1407,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1411,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1415,1
    - Dst: X509_check_private_key
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1418,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1420
      start: 1404
    functionDepth: 3
    functionLinenumber: 1404
    functionLinenumberEnd: 1420
    functionName: SSL_check_private_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_check_private_key
    - SSLerr
    linkageType: ''
    returnType: int
    signature: SSL_check_private_key(const SSL *ssl)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1428
      start: 1422
    functionDepth: 0
    functionLinenumber: 1422
    functionLinenumberEnd: 1428
    functionName: SSL_waiting_for_async
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_waiting_for_async(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_WAIT_CTX_get_all_fds
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - s
    - fds
    - numfds
    argTypes:
    - SSL*
    - OSSL_ASYNC_FD*
    - size_t*
    constantsTouched: []
    func_position:
      end: 1437
      start: 1430
    functionDepth: 1
    functionLinenumber: 1430
    functionLinenumberEnd: 1437
    functionName: SSL_get_all_async_fds
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - ASYNC_WAIT_CTX_get_all_fds
    linkageType: ''
    returnType: int
    signature: SSL_get_all_async_fds(SSL *s, OSSL_ASYNC_FD *fds, size_t *numfds)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_WAIT_CTX_get_changed_fds
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - s
    - addfd
    - numaddfds
    - delfd
    - numdelfds
    argTypes:
    - SSL*
    - OSSL_ASYNC_FD*
    - size_t*
    - OSSL_ASYNC_FD*
    - size_t*
    constantsTouched: []
    func_position:
      end: 1448
      start: 1439
    functionDepth: 1
    functionLinenumber: 1439
    functionLinenumberEnd: 1448
    functionName: SSL_get_changed_async_fds
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - ASYNC_WAIT_CTX_get_changed_fds
    linkageType: ''
    returnType: int
    signature: "SSL_get_changed_async_fds(SSL *s, OSSL_ASYNC_FD *addfd, size_t *numaddfds,\n
      \                             OSSL_ASYNC_FD *delfd, size_t *numdelfds)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_accept_state
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1454,1
    - Dst: SSL_do_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1458
      start: 1450
    functionDepth: 1
    functionLinenumber: 1450
    functionLinenumberEnd: 1458
    functionName: SSL_accept
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - SSL_set_accept_state
    - SSL_do_handshake
    linkageType: ''
    returnType: int
    signature: SSL_accept(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_connect_state
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1464,1
    - Dst: SSL_do_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1468
      start: 1460
    functionDepth: 1
    functionLinenumber: 1460
    functionLinenumberEnd: 1468
    functionName: SSL_connect
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 3
    functionsReached:
    - SSL_do_handshake
    - SSL_set_connect_state
    linkageType: ''
    returnType: int
    signature: SSL_connect(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::method::get_timeout
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1473
      start: 1470
    functionDepth: 0
    functionLinenumber: 1470
    functionLinenumberEnd: 1473
    functionName: SSL_get_default_timeout
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL*::method::get_timeout
    linkageType: ''
    returnType: long
    signature: SSL_get_default_timeout(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_WAIT_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1480,1
    - Dst: ASYNC_start_job
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1484,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1488,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - s
    - args
    argTypes:
    - SSL*
    - struct ssl_async_args*
    constantsTouched: []
    func_position:
      end: 1505
      start: 1475
    functionDepth: 4
    functionLinenumber: 1475
    functionLinenumberEnd: 1505
    functionName: ssl_start_async_job
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - ASYNC_start_job
    - SSLerr
    - ASYNC_WAIT_CTX_new
    linkageType: ''
    returnType: int
    signature: "ssl_start_async_job(SSL *s, struct ssl_async_args *args,\n                               int
      (*func) (void *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct ssl_async_args*::f::func_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1520,1
    - Dst: struct ssl_async_args*::f::func_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1522,1
    - Dst: struct ssl_async_args*::f::func_other
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - vargs
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1527
      start: 1507
    functionDepth: 0
    functionLinenumber: 1507
    functionLinenumberEnd: 1527
    functionName: ssl_io_intern
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - struct ssl_async_args*::f::func_read
    - struct ssl_async_args*::f::func_write
    - struct ssl_async_args*::f::func_other
    linkageType: ''
    returnType: int
    signature: ssl_io_intern(void *vargs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1532,1
    - Dst: ASYNC_get_current_job
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1541,1
    - Dst: ssl_start_async_job
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1550,1
    - Dst: SSL*::method::ssl_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1552,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - s
    - buf
    - num
    argTypes:
    - SSL*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 1554
      start: 1529
    functionDepth: 5
    functionLinenumber: 1529
    functionLinenumberEnd: 1554
    functionName: SSL_read
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 10
    functionsReached:
    - ssl_start_async_job
    - ASYNC_get_current_job
    - SSL*::method::ssl_read
    - SSLerr
    linkageType: ''
    returnType: int
    signature: SSL_read(SSL *s, void *buf, int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1559,1
    - Dst: ASYNC_get_current_job
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1566,1
    - Dst: ssl_start_async_job
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1575,1
    - Dst: SSL*::method::ssl_peek
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - s
    - buf
    - num
    argTypes:
    - SSL*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 1579
      start: 1556
    functionDepth: 5
    functionLinenumber: 1556
    functionLinenumberEnd: 1579
    functionName: SSL_peek
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - ssl_start_async_job
    - ASYNC_get_current_job
    - SSL*::method::ssl_peek
    - SSLerr
    linkageType: ''
    returnType: int
    signature: SSL_peek(SSL *s, void *buf, int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1584,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1590,1
    - Dst: ASYNC_get_current_job
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1594,1
    - Dst: ssl_start_async_job
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1603,1
    - Dst: SSL*::method::ssl_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1605,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - s
    - buf
    - num
    argTypes:
    - SSL*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 1607
      start: 1581
    functionDepth: 5
    functionLinenumber: 1581
    functionLinenumberEnd: 1607
    functionName: SSL_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 7
    functionsReached:
    - ssl_start_async_job
    - SSL*::method::ssl_write
    - ASYNC_get_current_job
    - SSLerr
    linkageType: ''
    returnType: int
    signature: SSL_write(SSL *s, const void *buf, int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1619,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1623,1
    - Dst: ASYNC_get_current_job
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1624,1
    - Dst: ssl_start_async_job
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1631,1
    - Dst: SSL*::method::ssl_shutdown
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1633,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1636,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1639
      start: 1609
    functionDepth: 5
    functionLinenumber: 1609
    functionLinenumberEnd: 1639
    functionName: SSL_shutdown
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 6
    functionsReached:
    - SSLerr
    - SSL_in_init
    - ASYNC_get_current_job
    - SSL*::method::ssl_shutdown
    - ssl_start_async_job
    linkageType: ''
    returnType: int
    signature: SSL_shutdown(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::method::ssl_renegotiate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1649
      start: 1641
    functionDepth: 0
    functionLinenumber: 1641
    functionLinenumberEnd: 1649
    functionName: SSL_renegotiate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 6
    functionsReached:
    - SSL*::method::ssl_renegotiate
    linkageType: ''
    returnType: int
    signature: SSL_renegotiate(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::method::ssl_renegotiate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1659
      start: 1651
    functionDepth: 0
    functionLinenumber: 1651
    functionLinenumberEnd: 1659
    functionName: SSL_renegotiate_abbreviated
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - SSL*::method::ssl_renegotiate
    linkageType: ''
    returnType: int
    signature: SSL_renegotiate_abbreviated(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1668
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1668
    functionName: SSL_renegotiate_pending
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_renegotiate_pending(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_read_ahead
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1676,1
    - Dst: RECORD_LAYER_get_read_ahead
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1678,1
    - Dst: RECORD_LAYER_set_read_ahead
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1679,1
    - Dst: RECORD_LAYER_set_read_ahead
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1713,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1735,1
    - Dst: ossl_statem_get_in_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1735,1
    - Dst: ssl_set_version_bound
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1742,1
    - Dst: ssl_set_version_bound
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1745,1
    - Dst: SSL*::method::ssl_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1748,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 70
    argCount: 4
    argNames:
    - s
    - cmd
    - larg
    - parg
    argTypes:
    - SSL*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 1750
      start: 1670
    functionDepth: 3
    functionLinenumber: 1670
    functionLinenumberEnd: 1750
    functionName: SSL_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - ossl_statem_get_in_handshake
    - SSL*::method::ssl_ctrl
    - RECORD_LAYER_get_read_ahead
    - SSL_in_init
    - RECORD_LAYER_set_read_ahead
    - ssl_set_version_bound
    linkageType: ''
    returnType: long
    signature: SSL_ctrl(SSL *s, int cmd, long larg, void *parg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::method::ssl_callback_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - s
    - cmd
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 1765
      start: 1752
    functionDepth: 2
    functionLinenumber: 1752
    functionLinenumberEnd: 1765
    functionName: SSL_callback_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL*::method::ssl_callback_ctrl
    linkageType: ''
    returnType: long
    signature: SSL_callback_ctrl(SSL *s, int cmd, void (*fp) (void))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls1_set_curves_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1780,1
    - Dst: tls1_set_sigalgs_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1784,1
    - Dst: lh_SSL_SESSION_num_items
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1823,1
    - Dst: ssl_set_version_bound
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1872,1
    - Dst: ssl_set_version_bound
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1875,1
    - Dst: SSL_CTX*::method::ssl_ctx_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1878,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 96
    argCount: 4
    argNames:
    - ctx
    - cmd
    - larg
    - parg
    argTypes:
    - SSL_CTX*
    - int
    - long
    - void*
    constantsTouched: []
    func_position:
      end: 1880
      start: 1772
    functionDepth: 1
    functionLinenumber: 1772
    functionLinenumberEnd: 1880
    functionName: SSL_CTX_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - tls1_set_curves_list
    - lh_SSL_SESSION_num_items
    - tls1_set_sigalgs_list
    - SSL_CTX*::method::ssl_ctx_ctrl
    - ssl_set_version_bound
    linkageType: ''
    returnType: long
    signature: SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX*::method::ssl_ctx_callback_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1893,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - cmd
    argTypes:
    - SSL_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 1895
      start: 1882
    functionDepth: 0
    functionLinenumber: 1882
    functionLinenumberEnd: 1895
    functionName: SSL_CTX_callback_ctrl
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL_CTX*::method::ssl_ctx_callback_ctrl
    linkageType: ''
    returnType: long
    signature: SSL_CTX_callback_ctrl(SSL_CTX *ctx, int cmd, void (*fp) (void))
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - SSL_CIPHER*
    - SSL_CIPHER*
    constantsTouched: []
    func_position:
      end: 1904
      start: 1897
    functionDepth: 0
    functionLinenumber: 1897
    functionLinenumberEnd: 1904
    functionName: ssl_cipher_id_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ssl_cipher_id_cmp(const SSL_CIPHER *a, const SSL_CIPHER *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ap
    - bp
    argTypes:
    - SSL_CIPHER**
    - SSL_CIPHER**
    constantsTouched: []
    func_position:
      end: 1914
      start: 1906
    functionDepth: 0
    functionLinenumber: 1906
    functionLinenumberEnd: 1914
    functionName: ssl_cipher_ptr_id_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "ssl_cipher_ptr_id_cmp(const SSL_CIPHER *const *ap,\n                          const
      SSL_CIPHER *const *bp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1979,1
    - Dst: SSL_get_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1983,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1984,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:1986,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 1990
      start: 1976
    functionDepth: 0
    functionLinenumber: 1976
    functionLinenumberEnd: 1990
    functionName: SSL_get_cipher_list
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - sk_SSL_CIPHER_value
    - SSL_get_ciphers
    - sk_SSL_CIPHER_num
    linkageType: ''
    returnType: char
    signature: '*SSL_get_cipher_list(const SSL *s, int n)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2004,1
    - Dst: ssl_create_cipher_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2006,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2017,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2018,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - str
    argTypes:
    - SSL_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 2022
      start: 2002
    functionDepth: 0
    functionLinenumber: 2002
    functionLinenumberEnd: 2022
    functionName: SSL_CTX_set_cipher_list
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 7
    functionsReached:
    - STACK_OF
    - sk_SSL_CIPHER_num
    - SSLerr
    - ssl_create_cipher_list
    linkageType: ''
    returnType: int
    signature: SSL_CTX_set_cipher_list(SSL_CTX *ctx, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2027,1
    - Dst: ssl_create_cipher_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2029,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2034,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2035,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - s
    - str
    argTypes:
    - SSL*
    - char*
    constantsTouched: []
    func_position:
      end: 2039
      start: 2025
    functionDepth: 0
    functionLinenumber: 2025
    functionLinenumberEnd: 2039
    functionName: SSL_set_cipher_list
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - STACK_OF
    - sk_SSL_CIPHER_num
    - SSLerr
    - ssl_create_cipher_list
    linkageType: ''
    returnType: int
    signature: SSL_set_cipher_list(SSL *s, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2044,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2054,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2057,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2060,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2061,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2068,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - s
    - buf
    - len
    argTypes:
    - SSL*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2075
      start: 2041
    functionDepth: 0
    functionLinenumber: 2041
    functionLinenumberEnd: 2075
    functionName: SSL_get_shared_ciphers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - STACK_OF
    - sk_SSL_CIPHER_num
    - sk_SSL_CIPHER_value
    - strlen
    - memcpy
    linkageType: ''
    returnType: char
    signature: '*SSL_get_shared_ciphers(const SSL *s, char *buf, int len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - s
    - type
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 2088
      start: 2081
    functionDepth: 0
    functionLinenumber: 2081
    functionLinenumberEnd: 2088
    functionName: SSL_get_servername
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*SSL_get_servername(const SSL *s, const int type)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2097
      start: 2090
    functionDepth: 0
    functionLinenumber: 2090
    functionLinenumberEnd: 2097
    functionName: SSL_get_servername_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_get_servername_type(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 6
    argNames:
    - out
    - outlen
    - server
    - server_len
    - client
    - client_len
    argTypes:
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 2155
      start: 2119
    functionDepth: 0
    functionLinenumber: 2119
    functionLinenumberEnd: 2155
    functionName: SSL_select_next_proto
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 5
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "SSL_select_next_proto(unsigned char **out, unsigned char *outlen,\n
      \                         const unsigned char *server,\n                          unsigned
      int server_len,\n                          const unsigned char *client, unsigned
      int client_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - s
    - data
    - len
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned*
    constantsTouched: []
    func_position:
      end: 2175
      start: 2166
    functionDepth: 0
    functionLinenumber: 2166
    functionLinenumberEnd: 2175
    functionName: SSL_get0_next_proto_negotiated
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data,\n
      \                                   unsigned *len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - arg
    argTypes:
    - SSL_CTX*
    - void*
    constantsTouched: []
    func_position:
      end: 2196
      start: 2187
    functionDepth: 0
    functionLinenumber: 2187
    functionLinenumberEnd: 2196
    functionName: SSL_CTX_set_next_protos_advertised_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SSL_CTX_set_next_protos_advertised_cb(SSL_CTX *ctx,\n                                           int
      (*cb) (SSL *ssl,\n                                                      const
      unsigned char\n                                                      **out,\n
      \                                                     unsigned int *outlen,\n
      \                                                     void *arg), void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - arg
    argTypes:
    - SSL_CTX*
    - void*
    constantsTouched: []
    func_position:
      end: 2217
      start: 2208
    functionDepth: 0
    functionLinenumber: 2208
    functionLinenumberEnd: 2217
    functionName: SSL_CTX_set_next_proto_select_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SSL_CTX_set_next_proto_select_cb(SSL_CTX *ctx,\n                                      int
      (*cb) (SSL *s, unsigned char **out,\n                                                 unsigned
      char *outlen,\n                                                 const unsigned
      char *in,\n                                                 unsigned int inlen,\n
      \                                                void *arg), void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2228,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2229,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - protos
    - protos_len
    argTypes:
    - SSL_CTX*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 2237
      start: 2225
    functionDepth: 0
    functionLinenumber: 2225
    functionLinenumberEnd: 2237
    functionName: SSL_CTX_set_alpn_protos
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - SSLerr
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: "SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos,\n
      \                           unsigned int protos_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2247,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2248,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ssl
    - protos
    - protos_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 2256
      start: 2244
    functionDepth: 0
    functionLinenumber: 2244
    functionLinenumberEnd: 2256
    functionName: SSL_set_alpn_protos
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - SSLerr
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: "SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos,\n                        unsigned
      int protos_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - arg
    argTypes:
    - SSL_CTX*
    - void*
    constantsTouched: []
    func_position:
      end: 2273
      start: 2263
    functionDepth: 0
    functionLinenumber: 2263
    functionLinenumberEnd: 2273
    functionName: SSL_CTX_set_alpn_select_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx,\n                                int
      (*cb) (SSL *ssl,\n                                           const unsigned
      char **out,\n                                           unsigned char *outlen,\n
      \                                          const unsigned char *in,\n                                           unsigned
      int inlen,\n                                           void *arg), void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ssl
    - data
    - len
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 2291
      start: 2281
    functionDepth: 0
    functionLinenumber: 2281
    functionLinenumberEnd: 2291
    functionName: SSL_get0_alpn_selected
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data,\n
      \                           unsigned int *len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::method::ssl3_enc::export_keying_material
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 8
    argNames:
    - s
    - out
    - olen
    - label
    - llen
    - p
    - plen
    - use_context
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    - char*
    - size_t
    - unsigned char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 2304
      start: 2293
    functionDepth: 0
    functionLinenumber: 2293
    functionLinenumberEnd: 2304
    functionName: SSL_export_keying_material
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - SSL*::method::ssl3_enc::export_keying_material
    linkageType: ''
    returnType: int
    signature: "SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen,\n
      \                              const char *label, size_t llen,\n                               const
      unsigned char *p, size_t plen,\n                               int use_context)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2313,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 2324
      start: 2306
    functionDepth: 0
    functionLinenumber: 2306
    functionLinenumberEnd: 2324
    functionName: ssl_session_hash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: unsigned long
    signature: ssl_session_hash(const SSL_SESSION *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - SSL_SESSION*
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 2340
      start: 2333
    functionDepth: 0
    functionLinenumber: 2333
    functionLinenumberEnd: 2340
    functionName: ssl_session_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: ssl_session_cmp(const SSL_SESSION *a, const SSL_SESSION *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2354,1
    - Dst: OPENSSL_init_ssl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2358,1
    - Dst: FIPS_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2361,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2362,1
    - Dst: SSL_get_ex_data_X509_STORE_CTX_idx
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2366,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2367,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2370,1
    - Dst: SSL_METHOD*::get_timeout
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2380,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2382,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2384,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2385,1
    - Dst: ssl_cert_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2390,1
    - Dst: lh_SSL_SESSION_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2393,1
    - Dst: X509_STORE_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2396,1
    - Dst: CTLOG_STORE_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2400,1
    - Dst: ssl_create_cipher_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2404,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2407,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2408,1
    - Dst: X509_VERIFY_PARAM_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2412,1
    - Dst: EVP_get_digestbyname
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2416,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2417,1
    - Dst: EVP_get_digestbyname
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2420,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2421,1
    - Dst: sk_X509_NAME_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2425,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2428,1
    - Dst: SSL_COMP_get_compression_methods
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2433,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2439,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2441,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2443,1
    - Dst: SSL_CTX_SRP_CTX_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2448,1
    - Dst: ENGINE_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2458,1
    - Dst: eng_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2458,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2460,1
    - Dst: ENGINE_load_builtin_engines
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2461,1
    - Dst: ENGINE_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2462,1
    - Dst: eng_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2462,1
    - Dst: SSL_CTX_set_client_cert_engine
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2464,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2465,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2486,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2488,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 104
    argCount: 1
    argNames:
    - meth
    argTypes:
    - SSL_METHOD*
    constantsTouched: []
    func_position:
      end: 2490
      start: 2349
    functionDepth: 7
    functionLinenumber: 2349
    functionLinenumberEnd: 2490
    functionName: SSL_CTX_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 23
    functionsReached:
    - RAND_bytes
    - SSLerr
    - X509_STORE_new
    - sk_X509_NAME_new_null
    - OPENSSL_zalloc
    - ssl_create_cipher_list
    - CTLOG_STORE_new
    - sk_SSL_CIPHER_num
    - eng_str
    - CRYPTO_THREAD_lock_new
    - SSL_CTX_SRP_CTX_init
    - SSL_METHOD*::get_timeout
    - FIPS_mode
    - SSL_get_ex_data_X509_STORE_CTX_idx
    - lh_SSL_SESSION_new
    - SSL_CTX_set_client_cert_engine
    - OPENSSL_free
    - OPENSSL_init_ssl
    - X509_VERIFY_PARAM_new
    - SSL_CTX_free
    - ERR_clear_error
    - CRYPTO_new_ex_data
    - ENGINE_by_id
    - SSL_COMP_get_compression_methods
    - ENGINE_load_builtin_engines
    - EVP_get_digestbyname
    - ssl_cert_new
    linkageType: ''
    returnType: SSL_CTX
    signature: '*SSL_CTX_new(const SSL_METHOD *meth)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2496,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2499,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 2502
      start: 2492
    functionDepth: 0
    functionLinenumber: 2492
    functionLinenumberEnd: 2502
    functionName: SSL_CTX_up_ref
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_atomic_add
    linkageType: ''
    returnType: int
    signature: SSL_CTX_up_ref(SSL_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2511,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2512,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2515,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2517,1
    - Dst: dane_ctx_final
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2518,1
    - Dst: SSL_CTX_flush_sessions
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2530,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2532,1
    - Dst: lh_SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2533,1
    - Dst: X509_STORE_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2534,1
    - Dst: CTLOG_STORE_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2536,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2538,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2539,1
    - Dst: ssl_cert_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2540,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2541,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2542,1
    - Dst: sk_SRTP_PROTECTION_PROFILE_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2545,1
    - Dst: SSL_CTX_SRP_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2548,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2551,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2555,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2556,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2558,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2560,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2562,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 1
    argNames:
    - a
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 2563
      start: 2504
    functionDepth: 5
    functionLinenumber: 2504
    functionLinenumberEnd: 2563
    functionName: SSL_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 26
    functionsReached:
    - sk_X509_pop_free
    - SSL_CTX_flush_sessions
    - X509_VERIFY_PARAM_free
    - CRYPTO_free_ex_data
    - ENGINE_finish
    - CRYPTO_THREAD_lock_free
    - SSL_CTX_SRP_CTX_free
    - CRYPTO_atomic_add
    - REF_ASSERT_ISNT
    - sk_X509_NAME_pop_free
    - sk_SSL_CIPHER_free
    - REF_PRINT_COUNT
    - X509_STORE_free
    - sk_SRTP_PROTECTION_PROFILE_free
    - CTLOG_STORE_free
    - OPENSSL_free
    - ssl_cert_free
    - dane_ctx_final
    - lh_SSL_SESSION_free
    linkageType: ''
    returnType: void
    signature: SSL_CTX_free(SSL_CTX *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - cb
    argTypes:
    - SSL_CTX*
    - pem_password_cb*
    constantsTouched: []
    func_position:
      end: 2568
      start: 2565
    functionDepth: 0
    functionLinenumber: 2565
    functionLinenumberEnd: 2568
    functionName: SSL_CTX_set_default_passwd_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - u
    argTypes:
    - SSL_CTX*
    - void*
    constantsTouched: []
    func_position:
      end: 2573
      start: 2570
    functionDepth: 0
    functionLinenumber: 2570
    functionLinenumberEnd: 2573
    functionName: SSL_CTX_set_default_passwd_cb_userdata
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 2578
      start: 2575
    functionDepth: 0
    functionLinenumber: 2575
    functionLinenumberEnd: 2578
    functionName: SSL_CTX_get_default_passwd_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pem_password_cb
    signature: '*SSL_CTX_get_default_passwd_cb(SSL_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 2583
      start: 2580
    functionDepth: 0
    functionLinenumber: 2580
    functionLinenumberEnd: 2583
    functionName: SSL_CTX_get_default_passwd_cb_userdata
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*SSL_CTX_get_default_passwd_cb_userdata(SSL_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - cb
    argTypes:
    - SSL*
    - pem_password_cb*
    constantsTouched: []
    func_position:
      end: 2588
      start: 2585
    functionDepth: 0
    functionLinenumber: 2585
    functionLinenumberEnd: 2588
    functionName: SSL_set_default_passwd_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SSL_set_default_passwd_cb(SSL *s, pem_password_cb *cb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - u
    argTypes:
    - SSL*
    - void*
    constantsTouched: []
    func_position:
      end: 2593
      start: 2590
    functionDepth: 0
    functionLinenumber: 2590
    functionLinenumberEnd: 2593
    functionName: SSL_set_default_passwd_cb_userdata
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SSL_set_default_passwd_cb_userdata(SSL *s, void *u)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2598
      start: 2595
    functionDepth: 0
    functionLinenumber: 2595
    functionLinenumberEnd: 2598
    functionName: SSL_get_default_passwd_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pem_password_cb
    signature: '*SSL_get_default_passwd_cb(SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2603
      start: 2600
    functionDepth: 0
    functionLinenumber: 2600
    functionLinenumberEnd: 2603
    functionName: SSL_get_default_passwd_cb_userdata
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*SSL_get_default_passwd_cb_userdata(SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - arg
    argTypes:
    - SSL_CTX*
    - void*
    constantsTouched: []
    func_position:
      end: 2611
      start: 2605
    functionDepth: 0
    functionLinenumber: 2605
    functionLinenumberEnd: 2611
    functionName: SSL_CTX_set_cert_verify_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx,\n                                      int
      (*cb) (X509_STORE_CTX *, void *),\n                                      void
      *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - mode
    argTypes:
    - SSL_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 2618
      start: 2613
    functionDepth: 0
    functionLinenumber: 2613
    functionLinenumberEnd: 2618
    functionName: SSL_CTX_set_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SSL_CTX_set_verify(SSL_CTX *ctx, int mode,\n                        int
      (*cb) (int, X509_STORE_CTX *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_depth
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - depth
    argTypes:
    - SSL_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 2623
      start: 2620
    functionDepth: 1
    functionLinenumber: 2620
    functionLinenumberEnd: 2623
    functionName: SSL_CTX_set_verify_depth
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_depth
    linkageType: ''
    returnType: void
    signature: SSL_CTX_set_verify_depth(SSL_CTX *ctx, int depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cert_set_cert_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - arg
    argTypes:
    - SSL_CTX*
    - void*
    constantsTouched: []
    func_position:
      end: 2628
      start: 2625
    functionDepth: 1
    functionLinenumber: 2625
    functionLinenumberEnd: 2628
    functionName: SSL_CTX_set_cert_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - ssl_cert_set_cert_cb
    linkageType: ''
    returnType: void
    signature: SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cb) (SSL *ssl, void *arg), void
      *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cert_set_cert_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    constantsTouched: []
    func_position:
      end: 2633
      start: 2630
    functionDepth: 1
    functionLinenumber: 2630
    functionLinenumberEnd: 2633
    functionName: SSL_set_cert_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - ssl_cert_set_cert_cb
    linkageType: ''
    returnType: void
    signature: SSL_set_cert_cb(SSL *s, int (*cb) (SSL *ssl, void *arg), void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2667,1
    - Dst: X509_get_key_usage
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2714,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2740
      start: 2635
    functionDepth: 5
    functionLinenumber: 2635
    functionLinenumberEnd: 2740
    functionName: ssl_set_masks
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - fprintf
    - X509_get_key_usage
    linkageType: ''
    returnType: void
    signature: ssl_set_masks(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_key_usage
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2748,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2749,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - x
    - s
    argTypes:
    - X509*
    - SSL*
    constantsTouched: []
    func_position:
      end: 2755
      start: 2744
    functionDepth: 5
    functionLinenumber: 2744
    functionLinenumberEnd: 2755
    functionName: ssl_check_srvr_ecc_cert_and_alg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - X509_get_key_usage
    linkageType: ''
    returnType: int
    signature: ssl_check_srvr_ecc_cert_and_alg(X509 *x, SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cipher_get_cert_index
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2762,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2776,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2778
      start: 2759
    functionDepth: 1
    functionLinenumber: 2759
    functionLinenumberEnd: 2778
    functionName: ssl_get_server_cert_index
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - ssl_cipher_get_cert_index
    - SSLerr
    linkageType: ''
    returnType: int
    signature: ssl_get_server_cert_index(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_set_masks
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2788,1
    - Dst: ssl_get_server_cert_index
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2790,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2798
      start: 2780
    functionDepth: 6
    functionLinenumber: 2780
    functionLinenumberEnd: 2798
    functionName: ssl_get_server_send_pkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - ssl_get_server_cert_index
    - ssl_set_masks
    linkageType: ''
    returnType: CERT_PKEY
    signature: '*ssl_get_server_send_pkey(SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2821,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - s
    - cipher
    - pmd
    argTypes:
    - SSL*
    - SSL_CIPHER*
    - EVP_MD**
    constantsTouched: []
    func_position:
      end: 2827
      start: 2800
    functionDepth: 0
    functionLinenumber: 2800
    functionLinenumberEnd: 2827
    functionName: ssl_get_sign_pkey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSLerr
    linkageType: ''
    returnType: EVP_PKEY
    signature: "*ssl_get_sign_pkey(SSL *s, const SSL_CIPHER *cipher,\n                            const
      EVP_MD **pmd)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_get_server_cert_index
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - s
    - serverinfo
    - serverinfo_length
    argTypes:
    - SSL*
    - unsigned char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 2847
      start: 2829
    functionDepth: 2
    functionLinenumber: 2829
    functionLinenumberEnd: 2847
    functionName: ssl_get_server_cert_serverinfo
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - ssl_get_server_cert_index
    linkageType: ''
    returnType: int
    signature: "ssl_get_server_cert_serverinfo(SSL *s, const unsigned char **serverinfo,\n
      \                                  size_t *serverinfo_length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_add_session
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2863,1
    - Dst: SSL_SESSION_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2865,1
    - Dst: SSL*::session_ctx::new_session_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2866,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2867,1
    - Dst: SSL_CTX_flush_sessions
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2875,1
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2875,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 2
    argNames:
    - s
    - mode
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 2878
      start: 2849
    functionDepth: 1
    functionLinenumber: 2849
    functionLinenumberEnd: 2878
    functionName: ssl_update_cache
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_add_session
    - SSL_SESSION_free
    - SSL_CTX_flush_sessions
    - SSL*::session_ctx::new_session_cb
    - time
    - SSL_SESSION_up_ref
    linkageType: ''
    returnType: void
    signature: ssl_update_cache(SSL *s, int mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 2883
      start: 2880
    functionDepth: 0
    functionLinenumber: 2880
    functionLinenumberEnd: 2883
    functionName: SSL_CTX_get_ssl_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SSL_METHOD
    signature: '*SSL_CTX_get_ssl_method(SSL_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2888
      start: 2885
    functionDepth: 0
    functionLinenumber: 2885
    functionLinenumberEnd: 2888
    functionName: SSL_get_ssl_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SSL_METHOD
    signature: '*SSL_get_ssl_method(SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_METHOD*::ssl_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2901,1
    - Dst: SSL*::method::ssl_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2903,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - s
    - meth
    argTypes:
    - SSL*
    - SSL_METHOD*
    constantsTouched: []
    func_position:
      end: 2912
      start: 2890
    functionDepth: 2
    functionLinenumber: 2890
    functionLinenumberEnd: 2912
    functionName: SSL_set_ssl_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL_METHOD*::ssl_free
    - SSL*::method::ssl_new
    linkageType: ''
    returnType: int
    signature: SSL_set_ssl_method(SSL *s, const SSL_METHOD *meth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ERR_peek_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2927,1
    - Dst: ERR_GET_LIB
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2928,1
    - Dst: SSL_want_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2935,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2936,1
    - Dst: BIO_should_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2937,1
    - Dst: BIO_should_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2939,1
    - Dst: BIO_should_io_special
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2950,1
    - Dst: BIO_get_retry_reason
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2951,1
    - Dst: SSL_want_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2961,1
    - Dst: BIO_should_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2967,1
    - Dst: BIO_should_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2969,1
    - Dst: BIO_should_io_special
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2974,1
    - Dst: BIO_get_retry_reason
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2975,1
    - Dst: SSL_want_x509_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2984,1
    - Dst: SSL_want_async
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2987,1
    - Dst: SSL_want_async_job
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:2990,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 2
    argNames:
    - s
    - i
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 3001
      start: 2914
    functionDepth: 2
    functionLinenumber: 2914
    functionLinenumberEnd: 3001
    functionName: SSL_get_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 12
    functionsReached:
    - ERR_GET_LIB
    - BIO_should_write
    - SSL_want_write
    - SSL_want_x509_lookup
    - BIO_should_io_special
    - SSL_want_async_job
    - BIO_get_retry_reason
    - SSL_get_rbio
    - ERR_peek_error
    - SSL_want_read
    - SSL_want_async
    - BIO_should_read
    linkageType: ''
    returnType: int
    signature: SSL_get_error(const SSL *s, int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::handshake_func
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vargs
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 3012
      start: 3003
    functionDepth: 0
    functionLinenumber: 3003
    functionLinenumberEnd: 3012
    functionName: ssl_do_handshake_intern
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL*::handshake_func
    linkageType: ''
    returnType: int
    signature: ssl_do_handshake_intern(void *vargs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3019,1
    - Dst: SSL*::method::ssl_renegotiate_check
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3023,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3025,1
    - Dst: SSL_in_before
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3025,1
    - Dst: ASYNC_get_current_job
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3026,1
    - Dst: ssl_start_async_job
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3031,1
    - Dst: SSL*::handshake_func
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3033,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3037
      start: 3014
    functionDepth: 5
    functionLinenumber: 3014
    functionLinenumberEnd: 3037
    functionName: SSL_do_handshake
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 9
    functionsReached:
    - SSL*::handshake_func
    - SSLerr
    - SSL_in_init
    - ASYNC_get_current_job
    - SSL_in_before
    - ssl_start_async_job
    - SSL*::method::ssl_renegotiate_check
    linkageType: ''
    returnType: int
    signature: SSL_do_handshake(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ossl_statem_clear
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3043,1
    - Dst: clear_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3046
      start: 3039
    functionDepth: 2
    functionLinenumber: 3039
    functionLinenumberEnd: 3046
    functionName: SSL_set_accept_state
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 13
    functionsReached:
    - ossl_statem_clear
    - clear_ciphers
    linkageType: ''
    returnType: void
    signature: SSL_set_accept_state(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ossl_statem_clear
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3052,1
    - Dst: clear_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3055
      start: 3048
    functionDepth: 2
    functionLinenumber: 3048
    functionLinenumberEnd: 3055
    functionName: SSL_set_connect_state
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 13
    functionsReached:
    - ossl_statem_clear
    - clear_ciphers
    linkageType: ''
    returnType: void
    signature: SSL_set_connect_state(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3061
      start: 3057
    functionDepth: 0
    functionLinenumber: 3057
    functionLinenumberEnd: 3061
    functionName: ssl_undefined_function
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSLerr
    linkageType: ''
    returnType: int
    signature: ssl_undefined_function(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3068
      start: 3063
    functionDepth: 0
    functionLinenumber: 3063
    functionLinenumberEnd: 3068
    functionName: ssl_undefined_void_function
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSLerr
    linkageType: ''
    returnType: int
    signature: ssl_undefined_void_function(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3073
      start: 3070
    functionDepth: 0
    functionLinenumber: 3070
    functionLinenumberEnd: 3073
    functionName: ssl_undefined_const_function
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ssl_undefined_const_function(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ver
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3079
      start: 3075
    functionDepth: 0
    functionLinenumber: 3075
    functionLinenumberEnd: 3079
    functionName: ssl_bad_method
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSLerr
    linkageType: ''
    returnType: SSL_METHOD
    signature: '*ssl_bad_method(int ver)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - version
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3099
      start: 3081
    functionDepth: 0
    functionLinenumber: 3081
    functionLinenumberEnd: 3099
    functionName: ssl_protocol_to_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*ssl_protocol_to_string(int version)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_protocol_to_string
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3104
      start: 3101
    functionDepth: 1
    functionLinenumber: 3101
    functionLinenumberEnd: 3104
    functionName: SSL_get_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - ssl_protocol_to_string
    linkageType: ''
    returnType: char
    signature: '*SSL_get_version(const SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3108,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3114,1
    - Dst: SSL_in_before
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3114,1
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3115,1
    - Dst: SSL_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3122,1
    - Dst: SSL_get_SSL_CTX
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3122,1
    - Dst: SSL_copy_session_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3130,1
    - Dst: SSL_set_ssl_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3139,1
    - Dst: ssl_cert_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3143,1
    - Dst: ssl_cert_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3144,1
    - Dst: SSL_set_session_id_context
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3149,1
    - Dst: ssl_dane_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3153,1
    - Dst: SSL_set_max_cert_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3158,1
    - Dst: SSL_get_max_cert_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3158,1
    - Dst: SSL_set_read_ahead
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3159,1
    - Dst: SSL_get_read_ahead
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3159,1
    - Dst: SSL_set_verify
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3162,1
    - Dst: SSL_get_verify_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3162,1
    - Dst: SSL_get_verify_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3162,1
    - Dst: SSL_set_verify_depth
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3163,1
    - Dst: SSL_get_verify_depth
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3163,1
    - Dst: SSL_set_info_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3166,1
    - Dst: SSL_get_info_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3166,1
    - Dst: CRYPTO_dup_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3169,1
    - Dst: BIO_dup_state
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3174,1
    - Dst: BIO_dup_state
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3179,1
    - Dst: BIO_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3182,1
    - Dst: SSL_set_accept_state
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3190,1
    - Dst: SSL_set_connect_state
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3192,1
    - Dst: X509_VERIFY_PARAM_inherit
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3200,1
    - Dst: sk_SSL_CIPHER_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3204,1
    - Dst: sk_SSL_CIPHER_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3208,1
    - Dst: sk_X509_NAME_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3214,1
    - Dst: sk_X509_NAME_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3217,1
    - Dst: sk_X509_NAME_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3218,1
    - Dst: sk_X509_NAME_set
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3219,1
    - Dst: X509_NAME_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3219,1
    - Dst: X509_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3220,1
    - Dst: SSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3228,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 98
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3230
      start: 3106
    functionDepth: 6
    functionLinenumber: 3106
    functionLinenumberEnd: 3230
    functionName: SSL_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - SSL_get_read_ahead
    - SSL_set_info_callback
    - sk_X509_NAME_set
    - X509_VERIFY_PARAM_inherit
    - SSL_in_init
    - SSL_new
    - SSL_set_verify
    - SSL_get_verify_mode
    - SSL_get_verify_callback
    - X509_NAME_free
    - SSL_in_before
    - sk_SSL_CIPHER_dup
    - SSL_set_max_cert_list
    - CRYPTO_dup_ex_data
    - CRYPTO_atomic_add
    - SSL_get_info_callback
    - SSL_free
    - ssl_dane_dup
    - sk_X509_NAME_dup
    - SSL_get_max_cert_list
    - SSL_set_connect_state
    - ssl_cert_dup
    - SSL_get_SSL_CTX
    - ssl_cert_free
    - sk_X509_NAME_value
    - SSL_set_ssl_method
    - SSL_copy_session_id
    - SSL_set_session_id_context
    - SSL_set_read_ahead
    - BIO_up_ref
    - STACK_OF
    - SSL_set_accept_state
    - sk_X509_NAME_num
    - SSL_get_verify_depth
    - X509_NAME_dup
    - SSL_set_verify_depth
    - BIO_dup_state
    linkageType: ''
    returnType: SSL
    signature: '*SSL_dup(SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3235,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3239,1
    - Dst: COMP_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3243,1
    - Dst: COMP_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3248
      start: 3232
    functionDepth: 3
    functionLinenumber: 3232
    functionLinenumberEnd: 3248
    functionName: ssl_clear_cipher_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - COMP_CTX_free
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: void
    signature: ssl_clear_cipher_ctx(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3256
      start: 3250
    functionDepth: 0
    functionLinenumber: 3250
    functionLinenumberEnd: 3256
    functionName: SSL_get_certificate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: '*SSL_get_certificate(const SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3264
      start: 3258
    functionDepth: 0
    functionLinenumber: 3258
    functionLinenumberEnd: 3264
    functionName: SSL_get_privatekey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*SSL_get_privatekey(const SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 3272
      start: 3266
    functionDepth: 0
    functionLinenumber: 3266
    functionLinenumberEnd: 3272
    functionName: SSL_CTX_get0_certificate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: '*SSL_CTX_get0_certificate(const SSL_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 3280
      start: 3274
    functionDepth: 0
    functionLinenumber: 3274
    functionLinenumberEnd: 3280
    functionName: SSL_CTX_get0_privatekey
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY
    signature: '*SSL_CTX_get0_privatekey(const SSL_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3287
      start: 3282
    functionDepth: 0
    functionLinenumber: 3282
    functionLinenumberEnd: 3287
    functionName: SSL_get_current_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: SSL_CIPHER
    signature: '*SSL_get_current_cipher(const SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COMP_CTX_get_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3296
      start: 3289
    functionDepth: 1
    functionLinenumber: 3289
    functionLinenumberEnd: 3296
    functionName: SSL_get_current_compression
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - COMP_CTX_get_method
    linkageType: ''
    returnType: COMP_METHOD
    signature: '*SSL_get_current_compression(SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COMP_CTX_get_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3305
      start: 3298
    functionDepth: 1
    functionLinenumber: 3298
    functionLinenumberEnd: 3305
    functionName: SSL_get_current_expansion
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - COMP_CTX_get_method
    linkageType: ''
    returnType: COMP_METHOD
    signature: '*SSL_get_current_expansion(SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3316,1
    - Dst: BIO_f_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3316,1
    - Dst: BIO_set_read_buffer_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3317,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3318,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3319,1
    - Dst: BIO_push
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3326
      start: 3307
    functionDepth: 4
    functionLinenumber: 3307
    functionLinenumberEnd: 3326
    functionName: ssl_init_wbio_buffer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - BIO_push
    - SSLerr
    - BIO_f_buffer
    - BIO_set_read_buffer_size
    - BIO_free
    - BIO_new
    linkageType: ''
    returnType: int
    signature: ssl_init_wbio_buffer(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_pop
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3334,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3335,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3338
      start: 3328
    functionDepth: 4
    functionLinenumber: 3328
    functionLinenumberEnd: 3338
    functionName: ssl_free_wbio_buffer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - BIO_free
    - assert
    - BIO_pop
    linkageType: ''
    returnType: void
    signature: ssl_free_wbio_buffer(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - mode
    argTypes:
    - SSL_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 3343
      start: 3340
    functionDepth: 0
    functionLinenumber: 3340
    functionLinenumberEnd: 3343
    functionName: SSL_CTX_set_quiet_shutdown
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 3348
      start: 3345
    functionDepth: 0
    functionLinenumber: 3345
    functionLinenumberEnd: 3348
    functionName: SSL_CTX_get_quiet_shutdown
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - mode
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 3353
      start: 3350
    functionDepth: 0
    functionLinenumber: 3350
    functionLinenumberEnd: 3353
    functionName: SSL_set_quiet_shutdown
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SSL_set_quiet_shutdown(SSL *s, int mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3358
      start: 3355
    functionDepth: 0
    functionLinenumber: 3355
    functionLinenumberEnd: 3358
    functionName: SSL_get_quiet_shutdown
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_get_quiet_shutdown(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - mode
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 3363
      start: 3360
    functionDepth: 0
    functionLinenumber: 3360
    functionLinenumberEnd: 3363
    functionName: SSL_set_shutdown
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SSL_set_shutdown(SSL *s, int mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3368
      start: 3365
    functionDepth: 0
    functionLinenumber: 3365
    functionLinenumberEnd: 3368
    functionName: SSL_get_shutdown
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_get_shutdown(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3373
      start: 3370
    functionDepth: 0
    functionLinenumber: 3370
    functionLinenumberEnd: 3373
    functionName: SSL_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_version(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3378
      start: 3375
    functionDepth: 0
    functionLinenumber: 3375
    functionLinenumberEnd: 3378
    functionName: SSL_client_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_client_version(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3383
      start: 3380
    functionDepth: 0
    functionLinenumber: 3380
    functionLinenumberEnd: 3383
    functionName: SSL_get_SSL_CTX
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: SSL_CTX
    signature: '*SSL_get_SSL_CTX(const SSL *ssl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cert_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3392,1
    - Dst: ssl_cert_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3396,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3403,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3413,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3415,1
    - Dst: SSL_CTX_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3418,1
    - Dst: SSL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3419,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - ssl
    - ctx
    argTypes:
    - SSL*
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 3423
      start: 3385
    functionDepth: 6
    functionLinenumber: 3385
    functionLinenumberEnd: 3423
    functionName: SSL_set_SSL_CTX
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 3
    functionsReached:
    - memcmp
    - OPENSSL_assert
    - SSL_CTX_free
    - SSL_CTX_up_ref
    - memcpy
    - ssl_cert_dup
    - ssl_cert_free
    linkageType: ''
    returnType: SSL_CTX
    signature: '*SSL_set_SSL_CTX(SSL *ssl, SSL_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_set_default_paths
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 3428
      start: 3425
    functionDepth: 3
    functionLinenumber: 3425
    functionLinenumberEnd: 3428
    functionName: SSL_CTX_set_default_verify_paths
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_STORE_set_default_paths
    linkageType: ''
    returnType: int
    signature: SSL_CTX_set_default_verify_paths(SSL_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_add_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3434,1
    - Dst: X509_LOOKUP_hash_dir
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3434,1
    - Dst: X509_LOOKUP_add_dir
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3437,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 3443
      start: 3430
    functionDepth: 2
    functionLinenumber: 3430
    functionLinenumberEnd: 3443
    functionName: SSL_CTX_set_default_verify_dir
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - X509_LOOKUP_add_dir
    - X509_STORE_add_lookup
    - X509_LOOKUP_hash_dir
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: SSL_CTX_set_default_verify_dir(SSL_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_add_lookup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3449,1
    - Dst: X509_LOOKUP_file
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3449,1
    - Dst: X509_LOOKUP_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3453,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 3459
      start: 3445
    functionDepth: 2
    functionLinenumber: 3445
    functionLinenumberEnd: 3459
    functionName: SSL_CTX_set_default_verify_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - X509_LOOKUP_load_file
    - ERR_clear_error
    - X509_STORE_add_lookup
    - X509_LOOKUP_file
    linkageType: ''
    returnType: int
    signature: SSL_CTX_set_default_verify_file(SSL_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_load_locations
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - CAfile
    - CApath
    argTypes:
    - SSL_CTX*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 3465
      start: 3461
    functionDepth: 3
    functionLinenumber: 3461
    functionLinenumberEnd: 3465
    functionName: SSL_CTX_load_verify_locations
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - X509_STORE_load_locations
    linkageType: ''
    returnType: int
    signature: "SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile,\n
      \                                 const char *CApath)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3471
      start: 3467
    functionDepth: 0
    functionLinenumber: 3467
    functionLinenumberEnd: 3471
    functionName: SSL_set_info_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SSL_set_info_callback(SSL *ssl,\n                           void (*cb)
      (const SSL *ssl, int type, int val))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3481
      start: 3477
    functionDepth: 0
    functionLinenumber: 3477
    functionLinenumberEnd: 3481
    functionName: "(*SSL_get_info_callback(const SSL *ssl)) (const SSL * /* ssl */
      ,\n                                               int /* type */ ,\n                                               int
      /* val */ )"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "(*SSL_get_info_callback(const SSL *ssl)) (const SSL * /* ssl */ ,\n
      \                                              int /* type */ ,\n                                               int
      /* val */ )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - arg
    argTypes:
    - SSL*
    - long
    constantsTouched: []
    func_position:
      end: 3486
      start: 3483
    functionDepth: 0
    functionLinenumber: 3483
    functionLinenumberEnd: 3486
    functionName: SSL_set_verify_result
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SSL_set_verify_result(SSL *ssl, long arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3491
      start: 3488
    functionDepth: 0
    functionLinenumber: 3488
    functionLinenumberEnd: 3491
    functionName: SSL_get_verify_result
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: SSL_get_verify_result(const SSL *ssl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ssl
    - out
    - outlen
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 3501
      start: 3493
    functionDepth: 0
    functionLinenumber: 3493
    functionLinenumberEnd: 3501
    functionName: SSL_get_client_random
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: SSL_get_client_random(const SSL *ssl, unsigned char *out, size_t outlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ssl
    - out
    - outlen
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 3511
      start: 3503
    functionDepth: 0
    functionLinenumber: 3503
    functionLinenumberEnd: 3511
    functionName: SSL_get_server_random
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: SSL_get_server_random(const SSL *ssl, unsigned char *out, size_t outlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3524,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - session
    - out
    - outlen
    argTypes:
    - SSL_SESSION*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 3526
      start: 3513
    functionDepth: 0
    functionLinenumber: 3513
    functionLinenumberEnd: 3526
    functionName: SSL_SESSION_get_master_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "SSL_SESSION_get_master_key(const SSL_SESSION *session,\n                                  unsigned
      char *out, size_t outlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - idx
    - arg
    argTypes:
    - SSL*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 3531
      start: 3528
    functionDepth: 1
    functionLinenumber: 3528
    functionLinenumberEnd: 3531
    functionName: SSL_set_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: SSL_set_ex_data(SSL *s, int idx, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - idx
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 3536
      start: 3533
    functionDepth: 1
    functionLinenumber: 3533
    functionLinenumberEnd: 3536
    functionName: SSL_get_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 3
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: '*SSL_get_ex_data(const SSL *s, int idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - idx
    - arg
    argTypes:
    - SSL_CTX*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 3541
      start: 3538
    functionDepth: 1
    functionLinenumber: 3538
    functionLinenumberEnd: 3541
    functionName: SSL_CTX_set_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: SSL_CTX_set_ex_data(SSL_CTX *s, int idx, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - idx
    argTypes:
    - SSL_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 3546
      start: 3543
    functionDepth: 1
    functionLinenumber: 3543
    functionLinenumberEnd: 3546
    functionName: SSL_CTX_get_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: '*SSL_CTX_get_ex_data(const SSL_CTX *s, int idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3551
      start: 3548
    functionDepth: 0
    functionLinenumber: 3548
    functionLinenumberEnd: 3551
    functionName: ssl_ok
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ssl_ok(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 3556
      start: 3553
    functionDepth: 0
    functionLinenumber: 3553
    functionLinenumberEnd: 3556
    functionName: SSL_CTX_get_cert_store
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE
    signature: '*SSL_CTX_get_cert_store(const SSL_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - store
    argTypes:
    - SSL_CTX*
    - X509_STORE*
    constantsTouched: []
    func_position:
      end: 3562
      start: 3558
    functionDepth: 3
    functionLinenumber: 3558
    functionLinenumberEnd: 3562
    functionName: SSL_CTX_set_cert_store
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - X509_STORE_free
    linkageType: ''
    returnType: void
    signature: SSL_CTX_set_cert_store(SSL_CTX *ctx, X509_STORE *store)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3567
      start: 3564
    functionDepth: 0
    functionLinenumber: 3564
    functionLinenumberEnd: 3567
    functionName: SSL_want
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_want(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_callback_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - "(*dh) (SSL *ssl, int is_export,\n                                            int
      keylength)"
    argTypes:
    - SSL_CTX*
    - DH*
    constantsTouched: []
    func_position:
      end: 3581
      start: 3576
    functionDepth: 1
    functionLinenumber: 3576
    functionLinenumberEnd: 3581
    functionName: SSL_CTX_set_tmp_dh_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_callback_ctrl
    linkageType: ''
    returnType: void
    signature: "SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx,\n                                 DH
      *(*dh) (SSL *ssl, int is_export,\n                                            int
      keylength))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_callback_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - "(*dh) (SSL *ssl, int is_export,\n                                                  int
      keylength)"
    argTypes:
    - SSL*
    - DH*
    constantsTouched: []
    func_position:
      end: 3587
      start: 3583
    functionDepth: 3
    functionLinenumber: 3583
    functionLinenumberEnd: 3587
    functionName: SSL_set_tmp_dh_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL_callback_ctrl
    linkageType: ''
    returnType: void
    signature: "SSL_set_tmp_dh_callback(SSL *ssl, DH *(*dh) (SSL *ssl, int is_export,\n
      \                                                 int keylength))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3593,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3594,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3597,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3599,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - identity_hint
    argTypes:
    - SSL_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 3605
      start: 3591
    functionDepth: 0
    functionLinenumber: 3591
    functionLinenumberEnd: 3605
    functionName: SSL_CTX_use_psk_identity_hint
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - strlen
    - OPENSSL_free
    - SSLerr
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *identity_hint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3612,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3613,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3616,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3618,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - s
    - identity_hint
    argTypes:
    - SSL*
    - char*
    constantsTouched: []
    func_position:
      end: 3624
      start: 3607
    functionDepth: 0
    functionLinenumber: 3607
    functionLinenumberEnd: 3624
    functionName: SSL_use_psk_identity_hint
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - strlen
    - OPENSSL_free
    - SSLerr
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: SSL_use_psk_identity_hint(SSL *s, const char *identity_hint)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3631
      start: 3626
    functionDepth: 0
    functionLinenumber: 3626
    functionLinenumberEnd: 3631
    functionName: SSL_get_psk_identity_hint
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*SSL_get_psk_identity_hint(const SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3638
      start: 3633
    functionDepth: 0
    functionLinenumber: 3633
    functionLinenumberEnd: 3638
    functionName: SSL_get_psk_identity
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*SSL_get_psk_identity(const SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3650
      start: 3640
    functionDepth: 0
    functionLinenumber: 3640
    functionLinenumberEnd: 3650
    functionName: SSL_set_psk_client_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SSL_set_psk_client_callback(SSL *s,\n                                 unsigned
      int (*cb) (SSL *ssl,\n                                                     const
      char *hint,\n                                                     char *identity,\n
      \                                                    unsigned int\n                                                     max_identity_len,\n
      \                                                    unsigned char *psk,\n                                                     unsigned
      int max_psk_len))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 3663
      start: 3652
    functionDepth: 0
    functionLinenumber: 3652
    functionLinenumberEnd: 3663
    functionName: SSL_CTX_set_psk_client_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SSL_CTX_set_psk_client_callback(SSL_CTX *ctx,\n                                     unsigned
      int (*cb) (SSL *ssl,\n                                                         const
      char *hint,\n                                                         char *identity,\n
      \                                                        unsigned int\n                                                         max_identity_len,\n
      \                                                        unsigned char *psk,\n
      \                                                        unsigned int\n                                                         max_psk_len))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3672
      start: 3665
    functionDepth: 0
    functionLinenumber: 3665
    functionLinenumberEnd: 3672
    functionName: SSL_set_psk_server_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SSL_set_psk_server_callback(SSL *s,\n                                 unsigned
      int (*cb) (SSL *ssl,\n                                                     const
      char *identity,\n                                                     unsigned
      char *psk,\n                                                     unsigned int
      max_psk_len))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 3682
      start: 3674
    functionDepth: 0
    functionLinenumber: 3674
    functionLinenumberEnd: 3682
    functionName: SSL_CTX_set_psk_server_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SSL_CTX_set_psk_server_callback(SSL_CTX *ctx,\n                                     unsigned
      int (*cb) (SSL *ssl,\n                                                         const
      char *identity,\n                                                         unsigned
      char *psk,\n                                                         unsigned
      int\n                                                         max_psk_len))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_callback_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 3691
      start: 3685
    functionDepth: 1
    functionLinenumber: 3685
    functionLinenumberEnd: 3691
    functionName: SSL_CTX_set_msg_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_callback_ctrl
    linkageType: ''
    returnType: void
    signature: "SSL_CTX_set_msg_callback(SSL_CTX *ctx,\n                              void
      (*cb) (int write_p, int version,\n                                          int
      content_type, const void *buf,\n                                          size_t
      len, SSL *ssl, void *arg))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_callback_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3699
      start: 3693
    functionDepth: 3
    functionLinenumber: 3693
    functionLinenumberEnd: 3699
    functionName: SSL_set_msg_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 4
    functionsReached:
    - SSL_callback_ctrl
    linkageType: ''
    returnType: void
    signature: "SSL_set_msg_callback(SSL *ssl,\n                          void (*cb)
      (int write_p, int version,\n                                      int content_type,
      const void *buf,\n                                      size_t len, SSL *ssl,
      void *arg))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_callback_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 3708
      start: 3701
    functionDepth: 1
    functionLinenumber: 3701
    functionLinenumberEnd: 3708
    functionName: SSL_CTX_set_not_resumable_session_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_callback_ctrl
    linkageType: ''
    returnType: void
    signature: "SSL_CTX_set_not_resumable_session_callback(SSL_CTX *ctx,\n                                                int
      (*cb) (SSL *ssl,\n                                                           int\n
      \                                                          is_forward_secure))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_callback_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3716
      start: 3710
    functionDepth: 3
    functionLinenumber: 3710
    functionLinenumberEnd: 3716
    functionName: SSL_set_not_resumable_session_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL_callback_ctrl
    linkageType: ''
    returnType: void
    signature: "SSL_set_not_resumable_session_callback(SSL *ssl,\n                                            int
      (*cb) (SSL *ssl,\n                                                       int
      is_forward_secure))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_clear_hash_ctx
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3727,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3728,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3729,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3730,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - hash
    - md
    argTypes:
    - EVP_MD_CTX**
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 3735
      start: 3725
    functionDepth: 4
    functionLinenumber: 3725
    functionLinenumberEnd: 3735
    functionName: ssl_replace_hash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - EVP_DigestInit_ex
    - ssl_clear_hash_ctx
    linkageType: ''
    returnType: EVP_MD_CTX
    signature: '*ssl_replace_hash(EVP_MD_CTX **hash, const EVP_MD *md)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hash
    argTypes:
    - EVP_MD_CTX**
    constantsTouched: []
    func_position:
      end: 3743
      start: 3737
    functionDepth: 4
    functionLinenumber: 3737
    functionLinenumberEnd: 3743
    functionName: ssl_clear_hash_ctx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: void
    signature: ssl_clear_hash_ctx(EVP_MD_CTX **hash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3755,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3760,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3761,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3764,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - s
    - out
    - outlen
    argTypes:
    - SSL*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 3766
      start: 3746
    functionDepth: 4
    functionLinenumber: 3746
    functionLinenumberEnd: 3766
    functionName: ssl_handshake_hash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - EVP_MD_CTX_copy_ex
    - EVP_MD_CTX_new
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: int
    signature: ssl_handshake_hash(SSL *s, unsigned char *out, int outlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3771
      start: 3768
    functionDepth: 0
    functionLinenumber: 3768
    functionLinenumberEnd: 3771
    functionName: SSL_session_reused
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_session_reused(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3776
      start: 3773
    functionDepth: 0
    functionLinenumber: 3773
    functionLinenumberEnd: 3776
    functionName: SSL_is_server
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_is_server(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - debug
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 3784
      start: 3779
    functionDepth: 0
    functionLinenumber: 3779
    functionLinenumberEnd: 3784
    functionName: SSL_set_debug
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SSL_set_debug(SSL *s, int debug)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - level
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 3790
      start: 3787
    functionDepth: 0
    functionLinenumber: 3787
    functionLinenumberEnd: 3790
    functionName: SSL_set_security_level
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SSL_set_security_level(SSL *s, int level)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3795
      start: 3792
    functionDepth: 0
    functionLinenumber: 3792
    functionLinenumberEnd: 3795
    functionName: SSL_get_security_level
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_get_security_level(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3803
      start: 3797
    functionDepth: 0
    functionLinenumber: 3797
    functionLinenumberEnd: 3803
    functionName: SSL_set_security_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SSL_set_security_callback(SSL *s,\n                               int
      (*cb) (const SSL *s, const SSL_CTX *ctx,\n                                          int
      op, int bits, int nid,\n                                          void *other,
      void *ex))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - s
    - ctx
    - op
    - bits
    - nid
    - other
    - ex
    argTypes:
    - SSL*
    - SSL_CTX*
    - int
    - int
    - int
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 3810
      start: 3805
    functionDepth: 0
    functionLinenumber: 3805
    functionLinenumberEnd: 3810
    functionName: "(*SSL_get_security_callback(const SSL *s)) (const SSL *s,\n                                                const
      SSL_CTX *ctx, int op,\n                                                int bits,
      int nid, void *other,\n                                                void
      *ex)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*SSL_get_security_callback(const SSL *s)) (const SSL *s,\n                                                const
      SSL_CTX *ctx, int op,\n                                                int bits,
      int nid, void *other,\n                                                void
      *ex)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - ex
    argTypes:
    - SSL*
    - void*
    constantsTouched: []
    func_position:
      end: 3815
      start: 3812
    functionDepth: 0
    functionLinenumber: 3812
    functionLinenumberEnd: 3815
    functionName: SSL_set0_security_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SSL_set0_security_ex_data(SSL *s, void *ex)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3820
      start: 3817
    functionDepth: 0
    functionLinenumber: 3817
    functionLinenumberEnd: 3820
    functionName: SSL_get0_security_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*SSL_get0_security_ex_data(const SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - level
    argTypes:
    - SSL_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 3825
      start: 3822
    functionDepth: 0
    functionLinenumber: 3822
    functionLinenumberEnd: 3825
    functionName: SSL_CTX_set_security_level
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SSL_CTX_set_security_level(SSL_CTX *ctx, int level)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 3830
      start: 3827
    functionDepth: 0
    functionLinenumber: 3827
    functionLinenumberEnd: 3830
    functionName: SSL_CTX_get_security_level
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_CTX_get_security_level(const SSL_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 3838
      start: 3832
    functionDepth: 0
    functionLinenumber: 3832
    functionLinenumberEnd: 3838
    functionName: SSL_CTX_set_security_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SSL_CTX_set_security_callback(SSL_CTX *ctx,\n                                   int
      (*cb) (const SSL *s, const SSL_CTX *ctx,\n                                              int
      op, int bits, int nid,\n                                              void *other,
      void *ex))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - s
    - ctx
    - op
    - bits
    - nid
    - other
    - ex
    argTypes:
    - SSL*
    - SSL_CTX*
    - int
    - int
    - int
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 3847
      start: 3840
    functionDepth: 0
    functionLinenumber: 3840
    functionLinenumberEnd: 3847
    functionName: "(*SSL_CTX_get_security_callback(const SSL_CTX *ctx)) (const SSL
      *s,\n                                                          const SSL_CTX
      *ctx,\n                                                          int op, int
      bits,\n                                                          int nid,\n
      \                                                         void *other,\n                                                          void
      *ex)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*SSL_CTX_get_security_callback(const SSL_CTX *ctx)) (const SSL *s,\n
      \                                                         const SSL_CTX *ctx,\n
      \                                                         int op, int bits,\n
      \                                                         int nid,\n                                                          void
      *other,\n                                                          void *ex)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ex
    argTypes:
    - SSL_CTX*
    - void*
    constantsTouched: []
    func_position:
      end: 3852
      start: 3849
    functionDepth: 0
    functionLinenumber: 3849
    functionLinenumberEnd: 3852
    functionName: SSL_CTX_set0_security_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SSL_CTX_set0_security_ex_data(SSL_CTX *ctx, void *ex)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 3857
      start: 3854
    functionDepth: 0
    functionLinenumber: 3854
    functionLinenumberEnd: 3857
    functionName: SSL_CTX_get0_security_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: '*SSL_CTX_get0_security_ex_data(const SSL_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 3867
      start: 3864
    functionDepth: 0
    functionLinenumber: 3864
    functionLinenumberEnd: 3867
    functionName: SSL_CTX_get_options
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: SSL_CTX_get_options(const SSL_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3872
      start: 3869
    functionDepth: 0
    functionLinenumber: 3869
    functionLinenumberEnd: 3872
    functionName: SSL_get_options
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: SSL_get_options(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - op
    argTypes:
    - SSL_CTX*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 3877
      start: 3874
    functionDepth: 0
    functionLinenumber: 3874
    functionLinenumberEnd: 3877
    functionName: SSL_CTX_set_options
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: SSL_CTX_set_options(SSL_CTX *ctx, unsigned long op)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - op
    argTypes:
    - SSL*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 3882
      start: 3879
    functionDepth: 0
    functionLinenumber: 3879
    functionLinenumberEnd: 3882
    functionName: SSL_set_options
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: SSL_set_options(SSL *s, unsigned long op)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - op
    argTypes:
    - SSL_CTX*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 3887
      start: 3884
    functionDepth: 0
    functionLinenumber: 3884
    functionLinenumberEnd: 3887
    functionName: SSL_CTX_clear_options
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: SSL_CTX_clear_options(SSL_CTX *ctx, unsigned long op)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - op
    argTypes:
    - SSL*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 3892
      start: 3889
    functionDepth: 0
    functionLinenumber: 3889
    functionLinenumberEnd: 3892
    functionName: SSL_clear_options
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: SSL_clear_options(SSL *s, unsigned long op)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3950,1
    - Dst: o2i_SCT_LIST
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3950,1
    - Dst: ct_move_scts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3952,1
    - Dst: SCT_LIST_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3954,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3958
      start: 3944
    functionDepth: 0
    functionLinenumber: 3944
    functionLinenumberEnd: 3958
    functionName: ct_extract_tls_extension_scts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - o2i_SCT_LIST
    - ct_move_scts
    - SCT_LIST_free
    linkageType: ''
    returnType: int
    signature: ct_extract_tls_extension_scts(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3975,1
    - Dst: d2i_OCSP_RESPONSE
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3982,1
    - Dst: OCSP_response_get1_basic
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3986,1
    - Dst: OCSP_resp_count
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3990,1
    - Dst: OCSP_resp_get0
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3991,1
    - Dst: OCSP_SINGLERESP_get1_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3997,1
    - Dst: ct_move_scts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:3999,1
    - Dst: SCT_LIST_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4004,1
    - Dst: OCSP_BASICRESP_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4005,1
    - Dst: OCSP_RESPONSE_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4006,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 4012
      start: 3968
    functionDepth: 2
    functionLinenumber: 3968
    functionLinenumberEnd: 4012
    functionName: ct_extract_ocsp_response_scts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - d2i_OCSP_RESPONSE
    - OCSP_SINGLERESP_get1_ext_d2i
    - STACK_OF
    - OCSP_resp_count
    - SCT_LIST_free
    - OCSP_BASICRESP_free
    - OCSP_resp_get0
    - OCSP_response_get1_basic
    - OCSP_RESPONSE_free
    - ct_move_scts
    linkageType: ''
    returnType: int
    signature: ct_extract_ocsp_response_scts(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4025,1
    - Dst: X509_get_ext_d2i
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4026,1
    - Dst: ct_move_scts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4029,1
    - Dst: SCT_LIST_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4031,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 4035
      start: 4019
    functionDepth: 2
    functionLinenumber: 4019
    functionLinenumberEnd: 4035
    functionName: ct_extract_x509v3_extension_scts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - ct_move_scts
    - X509_get_ext_d2i
    - SCT_LIST_free
    linkageType: ''
    returnType: int
    signature: ct_extract_x509v3_extension_scts(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ct_extract_tls_extension_scts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4045,1
    - Dst: ct_extract_ocsp_response_scts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4046,1
    - Dst: ct_extract_x509v3_extension_scts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4047,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 4055
      start: 4042
    functionDepth: 3
    functionLinenumber: 4042
    functionLinenumberEnd: 4055
    functionName: SSL_get0_peer_scts
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - ct_extract_x509v3_extension_scts
    - ct_extract_ocsp_response_scts
    - ct_extract_tls_extension_scts
    linkageType: ''
    returnType: STACK_OF
    signature: '*SSL_get0_peer_scts(SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - scts
    - unused_arg
    argTypes:
    - CT_POLICY_EVAL_CTX*
    - STACK_OF*
    - void*
    constantsTouched: []
    func_position:
      end: 4061
      start: 4057
    functionDepth: 0
    functionLinenumber: 4057
    functionLinenumberEnd: 4061
    functionName: ct_permissive
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "ct_permissive(const CT_POLICY_EVAL_CTX * ctx,\n                         const
      STACK_OF(SCT) *scts, void *unused_arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_SCT_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4070,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4076,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - scts
    - unused_arg
    argTypes:
    - CT_POLICY_EVAL_CTX*
    - STACK_OF*
    - void*
    constantsTouched: []
    func_position:
      end: 4078
      start: 4063
    functionDepth: 0
    functionLinenumber: 4063
    functionLinenumberEnd: 4078
    functionName: ct_strict
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - sk_SCT_value
    linkageType: ''
    returnType: int
    signature: "ct_strict(const CT_POLICY_EVAL_CTX * ctx,\n                     const
      STACK_OF(SCT) *scts, void *unused_arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_has_client_custom_ext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4087,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4090,1
    - Dst: SSL_set_tlsext_status_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4099,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - s
    - callback
    - arg
    argTypes:
    - SSL*
    - ssl_ct_validation_cb
    - void*
    constantsTouched: []
    func_position:
      end: 4107
      start: 4080
    functionDepth: 2
    functionLinenumber: 4080
    functionLinenumberEnd: 4107
    functionName: SSL_set_ct_validation_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_has_client_custom_ext
    - SSLerr
    - SSL_set_tlsext_status_type
    linkageType: ''
    returnType: int
    signature: "SSL_set_ct_validation_callback(SSL *s, ssl_ct_validation_cb callback,\n
      \                                  void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_has_client_custom_ext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4116,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - callback
    - arg
    argTypes:
    - SSL_CTX*
    - ssl_ct_validation_cb
    - void*
    constantsTouched: []
    func_position:
      end: 4127
      start: 4109
    functionDepth: 2
    functionLinenumber: 4109
    functionLinenumberEnd: 4127
    functionName: SSL_CTX_set_ct_validation_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_has_client_custom_ext
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "SSL_CTX_set_ct_validation_callback(SSL_CTX *ctx,\n                                       ssl_ct_validation_cb
      callback, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 4132
      start: 4129
    functionDepth: 0
    functionLinenumber: 4129
    functionLinenumberEnd: 4132
    functionName: SSL_ct_is_enabled
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_ct_is_enabled(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 4137
      start: 4134
    functionDepth: 0
    functionLinenumber: 4134
    functionLinenumberEnd: 4137
    functionName: SSL_CTX_ct_is_enabled
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_CTX_ct_is_enabled(const SSL_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4161,1
    - Dst: DANETLS_ENABLED
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4168,1
    - Dst: CT_POLICY_EVAL_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4176,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4178,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4182,1
    - Dst: CT_POLICY_EVAL_CTX_set1_cert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4183,1
    - Dst: CT_POLICY_EVAL_CTX_set1_issuer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4184,1
    - Dst: CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4185,1
    - Dst: CT_POLICY_EVAL_CTX_set_time
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4186,1
    - Dst: SSL_SESSION_get_time
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4186,1
    - Dst: SSL_get0_session
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4186,1
    - Dst: SSL_get0_peer_scts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4188,1
    - Dst: SCT_LIST_validate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4204,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4205,1
    - Dst: SSL*::ct_validation_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4209,1
    - Dst: CT_POLICY_EVAL_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4214,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 4233
      start: 4139
    functionDepth: 9
    functionLinenumber: 4139
    functionLinenumberEnd: 4233
    functionName: ssl_validate_ct
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - SSL_get0_peer_scts
    - SSL_SESSION_get_time
    - SSL_get0_session
    - CT_POLICY_EVAL_CTX_new
    - CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE
    - DANETLS_ENABLED
    - sk_X509_num
    - CT_POLICY_EVAL_CTX_set1_cert
    - CT_POLICY_EVAL_CTX_free
    - SSL*::ct_validation_callback
    - sk_X509_value
    - CT_POLICY_EVAL_CTX_set1_issuer
    - CT_POLICY_EVAL_CTX_set_time
    - SCT_LIST_validate
    linkageType: ''
    returnType: int
    signature: ssl_validate_ct(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4239,1
    - Dst: SSL_CTX_set_ct_validation_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4242,1
    - Dst: SSL_CTX_set_ct_validation_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - validation_mode
    argTypes:
    - SSL_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 4246
      start: 4235
    functionDepth: 3
    functionLinenumber: 4235
    functionLinenumberEnd: 4246
    functionName: SSL_CTX_enable_ct
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - SSLerr
    - SSL_CTX_set_ct_validation_callback
    linkageType: ''
    returnType: int
    signature: SSL_CTX_enable_ct(SSL_CTX *ctx, int validation_mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4252,1
    - Dst: SSL_set_ct_validation_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4255,1
    - Dst: SSL_set_ct_validation_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - s
    - validation_mode
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 4259
      start: 4248
    functionDepth: 3
    functionLinenumber: 4248
    functionLinenumberEnd: 4259
    functionName: SSL_enable_ct
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - SSL_set_ct_validation_callback
    linkageType: ''
    returnType: int
    signature: SSL_enable_ct(SSL *s, int validation_mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CTLOG_STORE_load_default_file
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 4264
      start: 4261
    functionDepth: 2
    functionLinenumber: 4261
    functionLinenumberEnd: 4264
    functionName: SSL_CTX_set_default_ctlog_list_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 2
    functionsReached:
    - CTLOG_STORE_load_default_file
    linkageType: ''
    returnType: int
    signature: SSL_CTX_set_default_ctlog_list_file(SSL_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CTLOG_STORE_load_file
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - path
    argTypes:
    - SSL_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 4269
      start: 4266
    functionDepth: 3
    functionLinenumber: 4266
    functionLinenumberEnd: 4269
    functionName: SSL_CTX_set_ctlog_list_file
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached:
    - CTLOG_STORE_load_file
    linkageType: ''
    returnType: int
    signature: SSL_CTX_set_ctlog_list_file(SSL_CTX *ctx, const char *path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CTLOG_STORE_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c:4273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - logs
    argTypes:
    - SSL_CTX*
    - CTLOG_STORE*
    constantsTouched: []
    func_position:
      end: 4275
      start: 4271
    functionDepth: 1
    functionLinenumber: 4271
    functionLinenumberEnd: 4275
    functionName: SSL_CTX_set0_ctlog_store
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 0
    functionsReached:
    - CTLOG_STORE_free
    linkageType: ''
    returnType: void
    signature: SSL_CTX_set0_ctlog_store(SSL_CTX *ctx, CTLOG_STORE * logs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 4280
      start: 4277
    functionDepth: 0
    functionLinenumber: 4277
    functionLinenumberEnd: 4280
    functionName: SSL_CTX_get0_ctlog_store
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CTLOG_STORE
    signature: '*SSL_CTX_get0_ctlog_store(const SSL_CTX *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_msg.c:27,1
    - Dst: SSL*::method::ssl3_enc::setup_key_block
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_msg.c:32,1
    - Dst: SSL*::method::ssl3_enc::change_cipher_state
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_msg.c:36,1
    - Dst: SSL*::method::ssl3_enc::final_finish_mac
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_msg.c:51,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_msg.c:55,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 61
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 61
    functionName: ssl3_do_change_cipher_spec
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_msg.c
    functionUses: 0
    functionsReached:
    - SSL*::method::ssl3_enc::change_cipher_state
    - SSL*::method::ssl3_enc::setup_key_block
    - SSLerr
    - SSL*::method::ssl3_enc::final_finish_mac
    linkageType: ''
    returnType: int
    signature: ssl3_do_change_cipher_spec(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::method::ssl3_enc::alert_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_msg.c:66,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_msg.c:74,1
    - Dst: RECORD_LAYER_write_pending
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_msg.c:79,1
    - Dst: SSL*::method::ssl_dispatch_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_msg.c:81,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - s
    - level
    - desc
    argTypes:
    - SSL*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 88
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 88
    functionName: ssl3_send_alert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_msg.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_remove_session
    - SSL*::method::ssl3_enc::alert_value
    - SSL*::method::ssl_dispatch_alert
    - RECORD_LAYER_write_pending
    linkageType: ''
    returnType: int
    signature: ssl3_send_alert(SSL *s, int level, int desc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_ssl3_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_msg.c:98,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_msg.c:108,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_msg.c:111,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/s3_msg.c:121,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 125
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 125
    functionName: ssl3_dispatch_alert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/s3_msg.c
    functionUses: 0
    functionsReached:
    - do_ssl3_write
    - BIO_flush
    - cb
    - SSL*::msg_callback
    linkageType: ''
    returnType: int
    signature: ssl3_dispatch_alert(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_get_ex_new_index
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_get_ex_new_index
    linkageType: ''
    returnType: void
    signature: DEFINE_RUN_ONCE_STATIC(ssl_x509_store_ctx_init)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: SSL_get_ex_data_X509_STORE_CTX_idx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
    functionUses: 2
    functionsReached:
    - RUN_ONCE
    linkageType: ''
    returnType: int
    signature: SSL_get_ex_data_X509_STORE_CTX_idx(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:59,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:62,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:71,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:73,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 79
    functionName: ssl_cert_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_free
    - SSLerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: CERT
    signature: '*ssl_cert_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:83,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:87,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:93,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:95,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:96,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:102,1
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:113,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:118,1
    - Dst: X509_chain_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:122,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:124,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:131,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:133,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:137,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:144,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:147,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:153,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:156,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:165,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:168,1
    - Dst: X509_STORE_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:178,1
    - Dst: X509_STORE_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:183,1
    - Dst: custom_exts_copy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:191,1
    - Dst: custom_exts_copy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:193,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:197,1
    - Dst: ssl_cert_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:205,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 105
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERT*
    constantsTouched: []
    func_position:
      end: 208
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 208
    functionName: ssl_cert_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
    functionUses: 3
    functionsReached:
    - X509_chain_up_ref
    - X509_STORE_up_ref
    - X509_up_ref
    - SSLerr
    - ssl_cert_free
    - CRYPTO_THREAD_lock_new
    - EVP_PKEY_up_ref
    - memcpy
    - OPENSSL_strdup
    - OPENSSL_zalloc
    - OPENSSL_free
    - OPENSSL_malloc
    - custom_exts_copy
    linkageType: ''
    returnType: CERT
    signature: '*ssl_cert_dup(CERT *cert)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:219,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:221,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:223,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - CERT*
    constantsTouched: []
    func_position:
      end: 229
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 229
    functionName: ssl_cert_clear_certs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
    functionUses: 1
    functionsReached:
    - sk_X509_pop_free
    - OPENSSL_free
    - EVP_PKEY_free
    - X509_free
    linkageType: ''
    returnType: void
    signature: ssl_cert_clear_certs(CERT *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:238,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:239,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:242,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:245,1
    - Dst: ssl_cert_clear_certs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:248,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:249,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:250,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:251,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:252,1
    - Dst: X509_STORE_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:253,1
    - Dst: X509_STORE_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:254,1
    - Dst: custom_exts_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:255,1
    - Dst: custom_exts_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:256,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:258,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:260,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - c
    argTypes:
    - CERT*
    constantsTouched: []
    func_position:
      end: 262
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 262
    functionName: ssl_cert_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
    functionUses: 6
    functionsReached:
    - X509_STORE_free
    - CRYPTO_THREAD_lock_free
    - CRYPTO_atomic_add
    - OPENSSL_free
    - REF_ASSERT_ISNT
    - ssl_cert_clear_certs
    - EVP_PKEY_free
    - custom_exts_free
    - REF_PRINT_COUNT
    linkageType: ''
    returnType: void
    signature: ssl_cert_free(CERT *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_security_cert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:303,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:305,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:309,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:310,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - s
    - ctx
    - x
    argTypes:
    - SSL*
    - SSL_CTX*
    - X509*
    constantsTouched: []
    func_position:
      end: 313
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 313
    functionName: ssl_cert_add0_chain_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
    functionUses: 2
    functionsReached:
    - ssl_security_cert
    - sk_X509_new_null
    - SSLerr
    - sk_X509_push
    linkageType: ''
    returnType: int
    signature: ssl_cert_add0_chain_cert(SSL *s, SSL_CTX *ctx, X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cert_add0_chain_cert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:317,1
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - s
    - ctx
    - x
    argTypes:
    - SSL*
    - SSL_CTX*
    - X509*
    constantsTouched: []
    func_position:
      end: 321
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 321
    functionName: ssl_cert_add1_chain_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
    functionUses: 2
    functionsReached:
    - X509_up_ref
    - ssl_cert_add0_chain_cert
    linkageType: ''
    returnType: int
    signature: ssl_cert_add1_chain_cert(SSL *s, SSL_CTX *ctx, X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:338,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - c
    - x
    argTypes:
    - CERT*
    - X509*
    constantsTouched: []
    func_position:
      end: 344
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 344
    functionName: ssl_cert_select_current
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
    functionUses: 2
    functionsReached:
    - X509_cmp
    linkageType: ''
    returnType: int
    signature: ssl_cert_select_current(CERT *c, X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - c
    - op
    argTypes:
    - CERT*
    - long
    constantsTouched: []
    func_position:
      end: 367
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 367
    functionName: ssl_cert_set_current
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ssl_cert_set_current(CERT *c, long op)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - arg
    argTypes:
    - CERT*
    - void*
    constantsTouched: []
    func_position:
      end: 373
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 373
    functionName: ssl_cert_set_cert_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ssl_cert_set_cert_cb(CERT *c, int (*cb) (SSL *ssl, void *arg), void
      *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: add_client_CA
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - x
    argTypes:
    - SSL*
    - X509*
    constantsTouched: []
    func_position:
      end: 541
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 541
    functionName: SSL_add_client_CA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
    functionUses: 0
    functionsReached:
    - add_client_CA
    linkageType: ''
    returnType: int
    signature: SSL_add_client_CA(SSL *ssl, X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: add_client_CA
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - x
    argTypes:
    - SSL_CTX*
    - X509*
    constantsTouched: []
    func_position:
      end: 546
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 546
    functionName: SSL_CTX_add_client_CA
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
    functionUses: 0
    functionsReached:
    - add_client_CA
    linkageType: ''
    returnType: int
    signature: SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_NAME**
    - X509_NAME**
    constantsTouched: []
    func_position:
      end: 551
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 551
    functionName: xname_sk_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
    functionUses: 0
    functionsReached:
    - X509_NAME_cmp
    linkageType: ''
    returnType: int
    signature: xname_sk_cmp(const X509_NAME *const *a, const X509_NAME *const *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_NAME*
    - X509_NAME*
    constantsTouched: []
    func_position:
      end: 556
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 556
    functionName: xname_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
    functionUses: 0
    functionsReached:
    - X509_NAME_cmp
    linkageType: ''
    returnType: int
    signature: xname_cmp(const X509_NAME *a, const X509_NAME *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_hash
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_NAME*
    constantsTouched: []
    func_position:
      end: 561
      start: 558
    functionDepth: 6
    functionLinenumber: 558
    functionLinenumberEnd: 561
    functionName: xname_hash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
    functionUses: 0
    functionsReached:
    - X509_NAME_hash
    linkageType: ''
    returnType: unsigned long
    signature: xname_hash(const X509_NAME *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:750,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:751,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:752,1
    - Dst: l2n3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:756,1
    - Dst: i2d_X509
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:757,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:760,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - buf
    - l
    - x
    argTypes:
    - BUF_MEM*
    - unsigned long*
    - X509*
    constantsTouched: []
    func_position:
      end: 766
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 766
    functionName: ssl_add_cert_to_buf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
    functionUses: 0
    functionsReached:
    - l2n3
    - SSLerr
    - BUF_MEM_grow_clean
    - i2d_X509
    linkageType: ''
    returnType: int
    signature: ssl_add_cert_to_buf(BUF_MEM *buf, unsigned long *l, X509 *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:774,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:775,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:779,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:780,1
    - Dst: X509_STORE_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:805,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:808,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:811,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:812,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:813,1
    - Dst: X509_verify_cert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:822,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:824,1
    - Dst: X509_STORE_CTX_get0_chain
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:825,1
    - Dst: ssl_security_cert_chain
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:826,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:830,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:831,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:832,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:834,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:835,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:838,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:840,1
    - Dst: ssl_add_cert_to_buf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:842,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:843,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:847,1
    - Dst: ssl_security_cert_chain
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:849,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:851,1
    - Dst: ssl_add_cert_to_buf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:854,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:856,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:857,1
    - Dst: ssl_add_cert_to_buf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:858,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 3
    argNames:
    - s
    - cpk
    - l
    argTypes:
    - SSL*
    - CERT_PKEY*
    - unsigned long*
    constantsTouched: []
    func_position:
      end: 863
      start: 769
    functionDepth: 5
    functionLinenumber: 769
    functionLinenumberEnd: 863
    functionName: ssl_add_cert_chain
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
    functionUses: 0
    functionsReached:
    - ERR_clear_error
    - SSLerr
    - X509_STORE_CTX_init
    - ssl_add_cert_to_buf
    - STACK_OF
    - ssl_security_cert_chain
    - X509_STORE_CTX_free
    - sk_X509_num
    - sk_X509_value
    - BUF_MEM_grow_clean
    - X509_STORE_CTX_get0_chain
    - X509_STORE_CTX_new
    - X509_verify_cert
    linkageType: ''
    returnType: int
    signature: ssl_add_cert_chain(SSL *s, CERT_PKEY *cpk, unsigned long *l)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:872,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:878,1
    - Dst: X509_STORE_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:883,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:886,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:887,1
    - Dst: X509_STORE_add_cert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:888,1
    - Dst: ERR_peek_last_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:889,1
    - Dst: ERR_GET_LIB
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:890,1
    - Dst: ERR_GET_REASON
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:891,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:893,1
    - Dst: X509_STORE_add_cert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:897,1
    - Dst: ERR_peek_last_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:898,1
    - Dst: ERR_GET_LIB
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:899,1
    - Dst: ERR_GET_REASON
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:900,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:902,1
    - Dst: X509_STORE_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:916,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:918,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:921,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:922,1
    - Dst: X509_STORE_CTX_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:926,1
    - Dst: X509_verify_cert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:929,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:932,1
    - Dst: X509_STORE_CTX_get1_chain
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:937,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:939,1
    - Dst: X509_STORE_CTX_get_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:940,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:941,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:942,1
    - Dst: sk_X509_shift
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:947,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:948,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:950,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:952,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:952,1
    - Dst: X509_get_extension_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:953,1
    - Dst: sk_X509_pop
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:954,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:955,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:963,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:964,1
    - Dst: ssl_security_cert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:965,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:967,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:968,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:973,1
    - Dst: X509_STORE_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:979,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:980,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 98
    argCount: 3
    argNames:
    - s
    - ctx
    - flags
    argTypes:
    - SSL*
    - SSL_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 983
      start: 866
    functionDepth: 5
    functionLinenumber: 866
    functionLinenumberEnd: 983
    functionName: ssl_build_cert_chain
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
    functionUses: 2
    functionsReached:
    - SSLerr
    - X509_STORE_CTX_init
    - sk_X509_pop_free
    - X509_STORE_CTX_free
    - X509_STORE_new
    - sk_X509_num
    - ERR_GET_REASON
    - X509_STORE_add_cert
    - X509_STORE_CTX_get1_chain
    - X509_free
    - X509_STORE_CTX_set_flags
    - X509_STORE_free
    - ERR_GET_LIB
    - X509_get_extension_flags
    - sk_X509_shift
    - ERR_peek_last_error
    - ERR_add_error_data
    - ssl_security_cert
    - X509_STORE_CTX_get_error
    - X509_STORE_CTX_new
    - X509_verify_cert_error_string
    - ERR_clear_error
    - STACK_OF
    - sk_X509_value
    - sk_X509_pop
    - X509_verify_cert
    linkageType: ''
    returnType: int
    signature: ssl_build_cert_chain(SSL *s, SSL_CTX *ctx, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:992,1
    - Dst: X509_STORE_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:995,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - c
    - store
    - chain
    - ref
    argTypes:
    - CERT*
    - X509_STORE*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 997
      start: 985
    functionDepth: 3
    functionLinenumber: 985
    functionLinenumberEnd: 997
    functionName: ssl_cert_set_cert_store
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
    functionUses: 2
    functionsReached:
    - X509_STORE_free
    - X509_STORE_up_ref
    linkageType: ''
    returnType: int
    signature: ssl_cert_set_cert_store(CERT *c, X509_STORE *store, int chain, int
      ref)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get_security_level
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:1006,1
    - Dst: SSL_get_security_level
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:1008,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:1049,1
    - Dst: DTLS_VERSION_LT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:1061,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 56
    argCount: 7
    argNames:
    - s
    - ctx
    - op
    - bits
    - nid
    - other
    - ex
    argTypes:
    - SSL*
    - SSL_CTX*
    - int
    - int
    - int
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 1079
      start: 999
    functionDepth: 1
    functionLinenumber: 999
    functionLinenumberEnd: 1079
    functionName: ssl_security_default_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get_security_level
    - SSL_get_security_level
    - SSL_IS_DTLS
    - DTLS_VERSION_LT
    linkageType: ''
    returnType: int
    signature: "ssl_security_default_callback(const SSL *s, const SSL_CTX *ctx,\n
      \                                        int op, int bits, int nid, void *other,\n
      \                                        void *ex)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::cert::sec_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:1083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - s
    - op
    - bits
    - nid
    - other
    argTypes:
    - SSL*
    - int
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1084
      start: 1081
    functionDepth: 0
    functionLinenumber: 1081
    functionLinenumberEnd: 1084
    functionName: ssl_security
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
    functionUses: 2
    functionsReached:
    - SSL*::cert::sec_cb
    linkageType: ''
    returnType: int
    signature: ssl_security(const SSL *s, int op, int bits, int nid, void *other)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX*::cert::sec_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c:1088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - op
    - bits
    - nid
    - other
    argTypes:
    - SSL_CTX*
    - int
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 1090
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1090
    functionName: ssl_ctx_security
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
    functionUses: 1
    functionsReached:
    - SSL_CTX*::cert::sec_cb
    linkageType: ''
    returnType: int
    signature: ssl_ctx_security(const SSL_CTX *ctx, int op, int bits, int nid, void
      *other)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: tls1_default_timeout
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: tls1_default_timeout(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:99,1
    - Dst: SSL*::method::ssl_clear
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: tls1_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - SSL*::method::ssl_clear
    - ssl3_new
    linkageType: ''
    returnType: int
    signature: tls1_new(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:107,1
    - Dst: ssl3_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: tls1_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - ssl3_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: tls1_free(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_clear
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: tls1_clear
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - ssl3_clear
    linkageType: ''
    returnType: void
    signature: tls1_clear(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - curve_id
    - pflags
    argTypes:
    - int
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 194
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 194
    functionName: tls1_ec_curve_id2nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 1
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: tls1_ec_curve_id2nid(int curve_id, unsigned int *pflags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 204
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 204
    functionName: tls1_ec_nid2curve_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: tls1_ec_nid2curve_id(int nid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls1_suiteb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:228,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:255,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 4
    argNames:
    - s
    - sess
    - pcurves
    - num_curves
    argTypes:
    - SSL*
    - int
    - unsigned char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 261
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 261
    functionName: tls1_get_curvelist
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls1_suiteb
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "tls1_get_curvelist(SSL *s, int sess,\n                              const
      unsigned char **pcurves, size_t *num_curves)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:269,1
    - Dst: ssl_security
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - s
    - curve
    - op
    argTypes:
    - SSL*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 277
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 277
    functionName: tls_curve_allowed
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - ssl_security
    linkageType: ''
    returnType: int
    signature: tls_curve_allowed(SSL *s, const unsigned char *curve, int op)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls1_get_curvelist
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:301,1
    - Dst: tls_curve_allowed
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:305,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 3
    argNames:
    - s
    - p
    - len
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 308
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 308
    functionName: tls1_check_curve
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls1_get_curvelist
    - tls_curve_allowed
    linkageType: ''
    returnType: int
    signature: tls1_check_curve(SSL *s, const unsigned char *p, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls1_suiteb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:327,1
    - Dst: tls1_get_curvelist
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:348,1
    - Dst: tls1_get_curvelist
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:353,1
    - Dst: tls_curve_allowed
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:363,1
    - Dst: tls1_ec_curve_id2nid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:368,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 2
    argNames:
    - s
    - nmatch
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 378
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 378
    functionName: tls1_shared_curve
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 1
    functionsReached:
    - tls1_suiteb
    - tls_curve_allowed
    - tls1_ec_curve_id2nid
    - tls1_get_curvelist
    linkageType: ''
    returnType: int
    signature: tls1_shared_curve(SSL *s, int nmatch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:390,1
    - Dst: tls1_ec_nid2curve_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:396,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:399,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:403,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:405,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - pext
    - pextlen
    - curves
    - ncurves
    argTypes:
    - unsigned char**
    - size_t*
    - int*
    - size_t
    constantsTouched: []
    func_position:
      end: 409
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 409
    functionName: tls1_set_curves
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 2
    functionsReached:
    - tls1_ec_nid2curve_id
    - OPENSSL_free
    - s2n
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "tls1_set_curves(unsigned char **pext, size_t *pextlen,\n                    int
      *curves, size_t ncurves)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:430,1
    - Dst: EC_curve_nist2nid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:432,1
    - Dst: OBJ_sn2nid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:434,1
    - Dst: OBJ_ln2nid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:436,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - elem
    - len
    - arg
    argTypes:
    - char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 444
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 444
    functionName: nid_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_ln2nid
    - EC_curve_nist2nid
    - memcpy
    - OBJ_sn2nid
    linkageType: ''
    returnType: int
    signature: nid_cb(const char *elem, int len, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONF_parse_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:451,1
    - Dst: tls1_set_curves
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - pext
    - pextlen
    - str
    argTypes:
    - unsigned char**
    - size_t*
    - char*
    constantsTouched: []
    func_position:
      end: 456
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 456
    functionName: tls1_set_curves_list
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 3
    functionsReached:
    - tls1_set_curves
    - CONF_parse_list
    linkageType: ''
    returnType: int
    signature: tls1_set_curves_list(unsigned char **pext, size_t *pextlen, const char
      *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:467,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:471,1
    - Dst: tls1_ec_nid2curve_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:472,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:479,1
    - Dst: EC_KEY_get_conv_form
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:481,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - curve_id
    - comp_id
    - ec
    argTypes:
    - unsigned char*
    - unsigned char*
    - EC_KEY*
    constantsTouched: []
    func_position:
      end: 491
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 491
    functionName: tls1_set_ec_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get_curve_name
    - EC_KEY_get0_public_key
    - tls1_ec_nid2curve_id
    - EC_KEY_get_conv_form
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: "tls1_set_ec_id(unsigned char *curve_id, unsigned char *comp_id,\n
      \                         EC_KEY *ec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls1_get_curvelist
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:518,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 29
    argCount: 3
    argNames:
    - s
    - curve_id
    - comp_id
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 541
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 541
    functionName: tls1_check_ec_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls1_get_curvelist
    linkageType: ''
    returnType: int
    signature: "tls1_check_ec_key(SSL *s,\n                             unsigned char
      *curve_id, unsigned char *comp_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls1_suiteb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - s
    - pformats
    - num_formats
    argTypes:
    - SSL*
    - unsigned char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 560
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 560
    functionName: tls1_get_formatlist
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls1_suiteb
    linkageType: ''
    returnType: void
    signature: "tls1_get_formatlist(SSL *s, const unsigned char **pformats,\n                                size_t
      *num_formats)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:571,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:575,1
    - Dst: tls1_set_ec_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:577,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:577,1
    - Dst: tls1_check_ec_key
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:584,1
    - Dst: tls1_suiteb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:591,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:611,1
    - Dst: EVP_sha384
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:613,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 3
    argNames:
    - s
    - x
    - set_ee_md
    argTypes:
    - SSL*
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 617
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 617
    functionName: tls1_check_cert_param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls1_suiteb
    - EVP_sha384
    - EVP_PKEY_id
    - X509_get0_pubkey
    - EVP_PKEY_get0_EC_KEY
    - EVP_sha256
    - tls1_check_ec_key
    - tls1_set_ec_id
    linkageType: ''
    returnType: int
    signature: tls1_check_cert_param(SSL *s, X509 *x, int set_ee_md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls1_suiteb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:636,1
    - Dst: tls1_check_ec_key
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:647,1
    - Dst: tls1_shared_curve
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:652,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - s
    - cid
    argTypes:
    - SSL*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 655
      start: 630
    functionDepth: 3
    functionLinenumber: 630
    functionLinenumberEnd: 655
    functionName: tls1_check_ec_tmp_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 1
    functionsReached:
    - tls1_suiteb
    - tls1_check_ec_key
    - tls1_shared_curve
    linkageType: ''
    returnType: int
    signature: tls1_check_ec_tmp_key(SSL *s, unsigned long cid)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - x
    - set_ee_md
    argTypes:
    - SSL*
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 663
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 663
    functionName: tls1_check_cert_param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: tls1_check_cert_param(SSL *s, X509 *x, int set_ee_md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls1_suiteb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:721,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - s
    - sent
    - psigs
    argTypes:
    - SSL*
    - int
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 746
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 746
    functionName: tls12_get_psigalgs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls1_suiteb
    linkageType: ''
    returnType: size_t
    signature: tls12_get_psigalgs(SSL *s, int sent, const unsigned char **psigs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:763,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:767,1
    - Dst: tls1_set_ec_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:770,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:770,1
    - Dst: tls1_check_ec_key
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:772,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:773,1
    - Dst: tls1_suiteb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:777,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:782,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:788,1
    - Dst: tls1_suiteb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:795,1
    - Dst: tls12_get_psigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:800,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:809,1
    - Dst: tls12_get_hash
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:812,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:814,1
    - Dst: ssl_security
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:818,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:819,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:819,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:820,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 4
    argNames:
    - pmd
    - s
    - sig
    - pkey
    argTypes:
    - EVP_MD**
    - SSL*
    - unsigned char*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 828
      start: 752
    functionDepth: 2
    functionLinenumber: 752
    functionLinenumberEnd: 828
    functionName: tls12_check_peer_sigalg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls1_suiteb
    - SSLerr
    - EVP_MD_size
    - ssl_security
    - EVP_PKEY_id
    - tls12_get_psigalgs
    - EVP_PKEY_get0_EC_KEY
    - EVP_MD_type
    - tls12_get_hash
    - tls1_check_ec_key
    - tls1_set_ec_id
    linkageType: ''
    returnType: int
    signature: "tls12_check_peer_sigalg(const EVP_MD **pmd, SSL *s,\n                            const
      unsigned char *sig, EVP_PKEY *pkey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_set_sig_mask
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:844,1
    - Dst: ssl_get_client_min_max_version
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:845,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 859
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 859
    functionName: ssl_set_client_disabled
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - ssl_set_sig_mask
    - ssl_get_client_min_max_version
    linkageType: ''
    returnType: void
    signature: ssl_set_client_disabled(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:876,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:879,1
    - Dst: DTLS_VERSION_GT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:879,1
    - Dst: DTLS_VERSION_LT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:880,1
    - Dst: ssl_security
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:883,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 3
    argNames:
    - s
    - c
    - op
    argTypes:
    - SSL*
    - SSL_CIPHER*
    - int
    constantsTouched: []
    func_position:
      end: 884
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 884
    functionName: ssl_cipher_disabled
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - DTLS_VERSION_GT
    - ssl_security
    - SSL_IS_DTLS
    - DTLS_VERSION_LT
    linkageType: ''
    returnType: int
    signature: ssl_cipher_disabled(SSL *s, const SSL_CIPHER *c, int op)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_security
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 891
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 891
    functionName: tls_use_ticket
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - ssl_security
    linkageType: ''
    returnType: int
    signature: tls_use_ticket(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 903
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 903
    functionName: compare_uint
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: compare_uint(const void *p1, const void *p2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:921,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:924,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:925,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:934,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:936,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:944,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:945,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:947,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:952,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:953,1
    - Dst: qsort
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:957,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:964,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 1
    argNames:
    - packet
    argTypes:
    - PACKET*
    constantsTouched: []
    func_position:
      end: 966
      start: 913
    functionDepth: 4
    functionLinenumber: 913
    functionLinenumberEnd: 966
    functionName: tls1_check_duplicate_extensions
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - PACKET_get_net_2
    - PACKET_remaining
    - PACKET_get_length_prefixed_2
    - OPENSSL_free
    - OPENSSL_malloc
    - qsort
    linkageType: ''
    returnType: int
    signature: tls1_check_duplicate_extensions(const PACKET *packet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:977,1
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:980,1
    - Dst: SSL_get_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:980,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:982,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:983,1
    - Dst: ssl_add_clienthello_renegotiate_ext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1005,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1006,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1010,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1013,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1014,1
    - Dst: ssl_add_clienthello_renegotiate_ext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1016,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1017,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1039,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1040,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1044,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1045,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1048,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1052,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1053,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1063,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1073,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1077,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1078,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1080,1
    - Dst: tls1_get_formatlist
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1095,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1098,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1107,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1110,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1112,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1114,1
    - Dst: tls1_get_curvelist
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1121,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1125,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1134,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1137,1
    - Dst: tls_curve_allowed
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1141,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1149,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1150,1
    - Dst: tls_use_ticket
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1155,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1162,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1165,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1177,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1179,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1180,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1182,1
    - Dst: SSL_CLIENT_USE_SIGALGS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1188,1
    - Dst: tls12_get_psigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1192,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1200,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1202,1
    - Dst: tls12_copy_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1206,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1208,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1209,1
    - Dst: sk_OCSP_RESPID_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1220,1
    - Dst: sk_OCSP_RESPID_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1221,1
    - Dst: i2d_OCSP_RESPID
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1222,1
    - Dst: i2d_X509_EXTENSIONS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1229,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1247,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1250,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1251,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1253,1
    - Dst: sk_OCSP_RESPID_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1254,1
    - Dst: sk_OCSP_RESPID_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1257,1
    - Dst: i2d_OCSP_RESPID
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1260,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1262,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1264,1
    - Dst: i2d_X509_EXTENSIONS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1266,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1270,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1278,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1281,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1282,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1306,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1308,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1309,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1325,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1327,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1328,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1329,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1330,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1335,1
    - Dst: SSL_get_srtp_profiles
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1335,1
    - Dst: ssl_add_clienthello_use_srtp_ext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1339,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1340,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1349,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1352,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1353,1
    - Dst: ssl_add_clienthello_use_srtp_ext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1355,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1356,1
    - Dst: custom_ext_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1362,1
    - Dst: custom_ext_add
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1364,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1372,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1377,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1379,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1380,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1389,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1392,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1393,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1401,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1403,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1404,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1431,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1433,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1434,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1435,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1445,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 244
    argCount: 4
    argNames:
    - s
    - buf
    - limit
    - al
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 1447
      start: 968
    functionDepth: 2
    functionLinenumber: 968
    functionLinenumberEnd: 1447
    functionName: ssl_add_clienthello_tlsext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls1_get_curvelist
    - tls_use_ticket
    - SSLerr
    - sk_OCSP_RESPID_value
    - tls12_get_psigalgs
    - sk_SSL_CIPHER_num
    - tls_curve_allowed
    - tls1_get_formatlist
    - custom_ext_init
    - s2n
    - custom_ext_add
    - memset
    - sk_SSL_CIPHER_value
    - SSL_get_ciphers
    - strlen
    - tls12_copy_sigalgs
    - SSL_get_srtp_profiles
    - i2d_X509_EXTENSIONS
    - STACK_OF
    - SSL_CLIENT_USE_SIGALGS
    - sk_OCSP_RESPID_num
    - ssl_add_clienthello_renegotiate_ext
    - i2d_OCSP_RESPID
    - memcpy
    - CHECKLEN
    - ssl_add_clienthello_use_srtp_ext
    - OPENSSL_malloc
    - SSL_IS_DTLS
    linkageType: ''
    returnType: unsigned char
    signature: "*ssl_add_clienthello_tlsext(SSL *s, unsigned char *buf,\n                                          unsigned
      char *limit, int *al)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_add_serverhello_renegotiate_ext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1472,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1473,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1482,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1485,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1486,1
    - Dst: ssl_add_serverhello_renegotiate_ext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1488,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1489,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1506,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1509,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1510,1
    - Dst: tls1_get_formatlist
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1520,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1523,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1533,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1536,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1537,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1539,1
    - Dst: tls_use_ticket
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1549,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1554,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1556,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1557,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1571,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1573,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1574,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1577,1
    - Dst: ssl_add_serverhello_use_srtp_ext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1581,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1582,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1590,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1593,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1594,1
    - Dst: ssl_add_serverhello_use_srtp_ext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1596,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1597,1
    - Dst: SSL_get_options
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1606,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1617,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1619,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1625,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1631,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1633,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1634,1
    - Dst: SSL*::ctx::next_protos_advertised_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1656,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1665,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1667,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1668,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1669,1
    - Dst: custom_ext_add
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1675,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1682,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1692,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1694,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1695,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1703,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1705,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1706,1
    - Dst: CHECKLEN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1720,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1722,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1723,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1724,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1726,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1735,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 134
    argCount: 4
    argNames:
    - s
    - buf
    - limit
    - al
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 1737
      start: 1449
    functionDepth: 2
    functionLinenumber: 1449
    functionLinenumberEnd: 1737
    functionName: ssl_add_serverhello_tlsext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls_use_ticket
    - s2n
    - SSLerr
    - SSL_get_options
    - SSL*::ctx::next_protos_advertised_cb
    - custom_ext_add
    - ssl_add_serverhello_renegotiate_ext
    - memcpy
    - CHECKLEN
    - ssl_add_serverhello_use_srtp_ext
    - tls1_get_formatlist
    - SSL_IS_DTLS
    linkageType: ''
    returnType: unsigned char
    signature: "*ssl_add_serverhello_tlsext(SSL *s, unsigned char *buf,\n                                          unsigned
      char *limit, int *al)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1751,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1752,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1759,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1760,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1763,1
    - Dst: PACKET_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1765,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - s
    - pkt
    - al
    argTypes:
    - SSL*
    - PACKET*
    - int*
    constantsTouched: []
    func_position:
      end: 1772
      start: 1745
    functionDepth: 4
    functionLinenumber: 1745
    functionLinenumberEnd: 1772
    functionName: tls1_alpn_handle_client_hello
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - PACKET_as_length_prefixed_2
    - PACKET_memdup
    - PACKET_get_length_prefixed_1
    - PACKET_remaining
    linkageType: ''
    returnType: int
    signature: tls1_alpn_handle_client_hello(SSL *s, PACKET *pkt, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1791,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1792,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - s
    - al
    argTypes:
    - SSL*
    - int*
    constantsTouched: []
    func_position:
      end: 1809
      start: 1779
    functionDepth: 0
    functionLinenumber: 1779
    functionLinenumberEnd: 1809
    functionName: tls1_alpn_handle_client_hello_late
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: tls1_alpn_handle_client_hello_late(SSL *s, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1859,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1860,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1861,1
    - Dst: TLS1_get_client_version
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1868,1
    - Dst: PACKET_equal
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1871,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 1873
      start: 1825
    functionDepth: 4
    functionLinenumber: 1825
    functionLinenumberEnd: 1873
    functionName: ssl_check_for_safari
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - PACKET_equal
    - PACKET_get_net_2
    - PACKET_get_length_prefixed_2
    - PACKET_forward
    - TLS1_get_client_version
    linkageType: ''
    returnType: void
    signature: ssl_check_for_safari(SSL *s, const PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1900,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1903,1
    - Dst: ssl_check_for_safari
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1913,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1917,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1922,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1928,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1931,1
    - Dst: tls1_check_duplicate_extensions
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1934,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1942,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1944,1
    - Dst: SSL*::tlsext_debug_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1948,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1948,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1949,1
    - Dst: ssl_parse_clienthello_renegotiate_ext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1953,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1987,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:1989,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2005,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2007,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2012,1
    - Dst: PACKET_contains_zero_byte
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2017,1
    - Dst: PACKET_strndup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2022,1
    - Dst: PACKET_equal
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2034,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2035,1
    - Dst: PACKET_as_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2042,1
    - Dst: PACKET_contains_zero_byte
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2045,1
    - Dst: PACKET_strndup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2052,1
    - Dst: PACKET_as_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2063,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2064,1
    - Dst: PACKET_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2069,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2081,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2082,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2083,1
    - Dst: PACKET_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2088,1
    - Dst: SSL*::tls_session_ticket_ext_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2100,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2100,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2101,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2110,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2111,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2112,1
    - Dst: tls1_save_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2117,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2117,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2118,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2123,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2131,1
    - Dst: sk_OCSP_RESPID_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2139,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2141,1
    - Dst: sk_OCSP_RESPID_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2142,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2151,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2156,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2158,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2162,1
    - Dst: d2i_OCSP_RESPID
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2163,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2164,1
    - Dst: PACKET_end
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2168,1
    - Dst: OCSP_RESPID_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2169,1
    - Dst: sk_OCSP_RESPID_push
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2173,1
    - Dst: OCSP_RESPID_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2174,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2181,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2184,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2185,1
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2186,1
    - Dst: d2i_X509_EXTENSIONS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2189,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2190,1
    - Dst: PACKET_end
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2192,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2206,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2209,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2210,1
    - Dst: tls1_alpn_handle_client_hello
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2254,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2260,1
    - Dst: SSL_get_srtp_profiles
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2260,1
    - Dst: ssl_parse_clienthello_use_srtp_ext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2262,1
    - Dst: custom_ext_parse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2281,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2281,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2282,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2287,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2302,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 197
    argCount: 3
    argNames:
    - s
    - pkt
    - al
    argTypes:
    - SSL*
    - PACKET*
    - int*
    constantsTouched: []
    func_position:
      end: 2314
      start: 1887
    functionDepth: 5
    functionLinenumber: 1887
    functionLinenumberEnd: 2314
    functionName: ssl_scan_clienthello_tlsext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - PACKET_strndup
    - d2i_X509_EXTENSIONS
    - SSLerr
    - SSL*::tlsext_debug_cb
    - tls1_save_sigalgs
    - PACKET_memdup
    - PACKET_contains_zero_byte
    - sk_X509_EXTENSION_pop_free
    - PACKET_end
    - SSL*::tls_session_ticket_ext_cb
    - d2i_OCSP_RESPID
    - ssl_parse_clienthello_renegotiate_ext
    - ssl_check_for_safari
    - PACKET_as_length_prefixed_2
    - PACKET_as_length_prefixed_1
    - sk_OCSP_RESPID_new_null
    - ssl_parse_clienthello_use_srtp_ext
    - strlen
    - PACKET_remaining
    - PACKET_get_length_prefixed_2
    - tls1_alpn_handle_client_hello
    - OPENSSL_free
    - PACKET_get_1
    - OCSP_RESPID_free
    - sk_OCSP_RESPID_push
    - SSL_get_srtp_profiles
    - custom_ext_parse
    - PACKET_equal
    - PACKET_get_net_2
    - tls1_check_duplicate_extensions
    - sk_OCSP_RESPID_pop_free
    - SSL_IS_DTLS
    - PACKET_data
    linkageType: ''
    returnType: int
    signature: ssl_scan_clienthello_tlsext(SSL *s, PACKET *pkt, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: custom_ext_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2319,1
    - Dst: ssl_scan_clienthello_tlsext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2320,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2321,1
    - Dst: ssl_check_clienthello_tlsext_early
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2324,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 2329
      start: 2316
    functionDepth: 6
    functionLinenumber: 2316
    functionLinenumberEnd: 2329
    functionName: ssl_parse_clienthello_tlsext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - ssl_check_clienthello_tlsext_early
    - SSLerr
    - ssl3_send_alert
    - ssl_scan_clienthello_tlsext
    - custom_ext_init
    linkageType: ''
    returnType: int
    signature: ssl_parse_clienthello_tlsext(SSL *s, PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2341,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2342,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2343,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - PACKET*
    constantsTouched: []
    func_position:
      end: 2348
      start: 2337
    functionDepth: 4
    functionLinenumber: 2337
    functionLinenumberEnd: 2348
    functionName: ssl_next_proto_validate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - PACKET_get_length_prefixed_1
    - PACKET_remaining
    linkageType: ''
    returnType: char
    signature: ssl_next_proto_validate(PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2362,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2373,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2376,1
    - Dst: tls1_check_duplicate_extensions
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2381,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2386,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2386,1
    - Dst: PACKET_get_sub_packet
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2390,1
    - Dst: PACKET_peek_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2391,1
    - Dst: SSL*::tlsext_debug_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2395,1
    - Dst: ssl_parse_serverhello_renegotiate_ext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2398,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2412,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2419,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2421,1
    - Dst: PACKET_copy_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2427,1
    - Dst: SSL*::tls_session_ticket_ext_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2440,1
    - Dst: tls_use_ticket
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2446,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2473,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2478,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2483,1
    - Dst: ssl_next_proto_validate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2498,1
    - Dst: SSL*::ctx::next_proto_select_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2502,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2514,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2515,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2520,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2539,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2540,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2540,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2541,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2545,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2546,1
    - Dst: PACKET_copy_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2551,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2558,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2560,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2579,1
    - Dst: ssl_parse_serverhello_use_srtp_ext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2580,1
    - Dst: custom_ext_parse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2598,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2602,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2611,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2635,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2648,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 191
    argCount: 3
    argNames:
    - s
    - pkt
    - al
    argTypes:
    - SSL*
    - PACKET*
    - int*
    constantsTouched: []
    func_position:
      end: 2654
      start: 2351
    functionDepth: 5
    functionLinenumber: 2351
    functionLinenumberEnd: 2654
    functionName: ssl_scan_serverhello_tlsext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls_use_ticket
    - SSLerr
    - SSL*::tlsext_debug_cb
    - OPENSSL_strdup
    - ssl_next_proto_validate
    - PACKET_peek_bytes
    - SSL*::tls_session_ticket_ext_cb
    - PACKET_remaining
    - OPENSSL_free
    - PACKET_get_1
    - custom_ext_parse
    - PACKET_get_sub_packet
    - SSL*::ctx::next_proto_select_cb
    - PACKET_get_net_2
    - memcpy
    - tls1_check_duplicate_extensions
    - ssl_parse_serverhello_use_srtp_ext
    - OPENSSL_malloc
    - SSL_IS_DTLS
    - ssl_parse_serverhello_renegotiate_ext
    - PACKET_copy_bytes
    linkageType: ''
    returnType: int
    signature: ssl_scan_serverhello_tlsext(SSL *s, PACKET *pkt, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2660
      start: 2656
    functionDepth: 0
    functionLinenumber: 2656
    functionLinenumberEnd: 2660
    functionName: ssl_prepare_clienthello_tlsext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ssl_prepare_clienthello_tlsext(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2665
      start: 2662
    functionDepth: 0
    functionLinenumber: 2662
    functionLinenumberEnd: 2665
    functionName: ssl_prepare_serverhello_tlsext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ssl_prepare_serverhello_tlsext(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::ctx::tlsext_servername_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2685,1
    - Dst: SSL*::session_ctx::tlsext_servername_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2690,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2696,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2700,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2708
      start: 2667
    functionDepth: 2
    functionLinenumber: 2667
    functionLinenumberEnd: 2708
    functionName: ssl_check_clienthello_tlsext_early
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 1
    functionsReached:
    - SSL*::ctx::tlsext_servername_callback
    - ssl3_send_alert
    - SSL*::session_ctx::tlsext_servername_callback
    linkageType: ''
    returnType: int
    signature: ssl_check_clienthello_tlsext_early(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2715,1
    - Dst: SSL_USE_SIGALGS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2718,1
    - Dst: ssl_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2719,1
    - Dst: ssl_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2721,1
    - Dst: ssl_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2725,1
    - Dst: ssl_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2728,1
    - Dst: ssl_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2729,1
    - Dst: ssl_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2732
      start: 2711
    functionDepth: 1
    functionLinenumber: 2711
    functionLinenumberEnd: 2732
    functionName: ssl_set_default_md
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - SSL_USE_SIGALGS
    - ssl_md
    linkageType: ''
    returnType: void
    signature: ssl_set_default_md(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2740,1
    - Dst: tls1_process_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2751,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2752,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2758,1
    - Dst: ssl_set_default_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2764,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2768,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2770
      start: 2734
    functionDepth: 2
    functionLinenumber: 2734
    functionLinenumberEnd: 2770
    functionName: tls1_set_server_sigalgs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - ssl_set_default_md
    - ssl3_send_alert
    - tls1_process_sigalgs
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: tls1_set_server_sigalgs(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_get_server_send_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2789,1
    - Dst: SSL*::ctx::tlsext_status_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2797,1
    - Dst: tls1_alpn_handle_client_hello_late
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2817,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - s
    - al
    argTypes:
    - SSL*
    - int*
    constantsTouched: []
    func_position:
      end: 2822
      start: 2776
    functionDepth: 7
    functionLinenumber: 2776
    functionLinenumberEnd: 2822
    functionName: ssl_check_clienthello_tlsext_late
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls1_alpn_handle_client_hello_late
    - ssl_get_server_send_pkey
    - SSL*::ctx::tlsext_status_cb
    linkageType: ''
    returnType: int
    signature: ssl_check_clienthello_tlsext_late(SSL *s, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2854,1
    - Dst: SSL*::ctx::tlsext_servername_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2864,1
    - Dst: SSL*::session_ctx::tlsext_servername_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2869,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2877,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2883,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2887,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2895
      start: 2824
    functionDepth: 2
    functionLinenumber: 2824
    functionLinenumberEnd: 2895
    functionName: ssl_check_serverhello_tlsext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - ssl3_send_alert
    - SSL*::session_ctx::tlsext_servername_callback
    - SSL*::ctx::tlsext_servername_callback
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: ssl_check_serverhello_tlsext(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_scan_serverhello_tlsext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2902,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2903,1
    - Dst: ssl_check_serverhello_tlsext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2907,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2908,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 2912
      start: 2897
    functionDepth: 6
    functionLinenumber: 2897
    functionLinenumberEnd: 2912
    functionName: ssl_parse_serverhello_tlsext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - ssl_scan_serverhello_tlsext
    - ssl3_send_alert
    - ssl_check_serverhello_tlsext
    - SSLerr
    linkageType: ''
    returnType: int
    signature: ssl_parse_serverhello_tlsext(SSL *s, PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2973,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2977,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2980,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2981,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:2986,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3020,1
    - Dst: tls_decrypt_ticket
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3025,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3025,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3026,1
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3047,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 76
    argCount: 4
    argNames:
    - s
    - ext
    - session_id
    - ret
    argTypes:
    - SSL*
    - PACKET*
    - PACKET*
    - SSL_SESSION**
    constantsTouched: []
    func_position:
      end: 3057
      start: 2951
    functionDepth: 3
    functionLinenumber: 2951
    functionLinenumberEnd: 3057
    functionName: tls_check_serverhello_tlsext_early
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - PACKET_get_net_2
    - tls_decrypt_ticket
    - PACKET_remaining
    - PACKET_forward
    - PACKET_data
    - PACKET_get_bytes
    linkageType: ''
    returnType: int
    signature: "tls_check_serverhello_tlsext_early(SSL *s, const PACKET *ext,\n                                       const
      PACKET *session_id,\n                                       SSL_SESSION **ret)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3090,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3093,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3112,1
    - Dst: HMAC_Init_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3117,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3119,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3120,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3120,1
    - Dst: HMAC_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3131,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3137,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3143,1
    - Dst: HMAC_Final
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3144,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3147,1
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3148,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3149,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3154,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3155,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3156,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3157,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3158,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3159,1
    - Dst: EVP_DecryptFinal
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3162,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3163,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3164,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3168,1
    - Dst: d2i_SSL_SESSION
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3172,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3173,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3182,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3190,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3196,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3197,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 87
    argCount: 6
    argNames:
    - s
    - etick
    - eticklen
    - sess_id
    - sesslen
    - psess
    argTypes:
    - SSL*
    - unsigned char*
    - int
    - unsigned char*
    - int
    - SSL_SESSION**
    constantsTouched: []
    func_position:
      end: 3199
      start: 3076
    functionDepth: 5
    functionLinenumber: 3076
    functionLinenumberEnd: 3199
    functionName: tls_decrypt_ticket
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 1
    functionsReached:
    - HMAC_size
    - d2i_SSL_SESSION
    - CRYPTO_memcmp
    - HMAC_Update
    - EVP_CIPHER_CTX_new
    - EVP_sha256
    - HMAC_Init_ex
    - EVP_DecryptInit_ex
    - OPENSSL_free
    - EVP_DecryptUpdate
    - ERR_clear_error
    - memcmp
    - EVP_CIPHER_CTX_free
    - EVP_DecryptFinal
    - EVP_aes_256_cbc
    - HMAC_CTX_new
    - HMAC_Final
    - memcpy
    - HMAC_CTX_free
    - EVP_CIPHER_CTX_iv_length
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: "tls_decrypt_ticket(SSL *s, const unsigned char *etick,\n                              int
      eticklen, const unsigned char *sess_id,\n                              int sesslen,
      SSL_SESSION **psess)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - nid
    - table
    - tlen
    argTypes:
    - int
    - tls12_lookup*
    - size_t
    constantsTouched: []
    func_position:
      end: 3237
      start: 3229
    functionDepth: 0
    functionLinenumber: 3229
    functionLinenumberEnd: 3237
    functionName: tls12_find_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: tls12_find_id(int nid, const tls12_lookup *table, size_t tlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - id
    - table
    - tlen
    argTypes:
    - int
    - tls12_lookup*
    - size_t
    constantsTouched: []
    func_position:
      end: 3247
      start: 3239
    functionDepth: 0
    functionLinenumber: 3239
    functionLinenumberEnd: 3247
    functionName: tls12_find_nid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: tls12_find_nid(int id, const tls12_lookup *table, size_t tlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls12_find_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3254,1
    - Dst: EVP_MD_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3254,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3254,1
    - Dst: tls12_get_sigid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - p
    - pk
    - md
    argTypes:
    - unsigned char*
    - EVP_PKEY*
    - EVP_MD*
    constantsTouched: []
    func_position:
      end: 3263
      start: 3249
    functionDepth: 1
    functionLinenumber: 3249
    functionLinenumberEnd: 3263
    functionName: tls12_get_sigandhash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - tls12_find_id
    - tls12_get_sigid
    - EVP_MD_type
    linkageType: ''
    returnType: int
    signature: tls12_get_sigandhash(unsigned char *p, const EVP_PKEY *pk, const EVP_MD
      *md)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls12_find_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3267,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3267,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pk
    argTypes:
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 3268
      start: 3265
    functionDepth: 1
    functionLinenumber: 3265
    functionLinenumberEnd: 3268
    functionName: tls12_get_sigid
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 1
    functionsReached:
    - OSSL_NELEM
    - tls12_find_id
    - EVP_PKEY_id
    linkageType: ''
    returnType: int
    signature: tls12_get_sigid(const EVP_PKEY *pk)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - hash_alg
    argTypes:
    - unsigned char
    constantsTouched: []
    func_position:
      end: 3303
      start: 3291
    functionDepth: 0
    functionLinenumber: 3291
    functionLinenumberEnd: 3303
    functionName: tls12_get_hash_info
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: tls12_hash_info
    signature: '*tls12_get_hash_info(unsigned char hash_alg)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FIPS_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3308,1
    - Dst: tls12_get_hash_info
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3310,1
    - Dst: ssl_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3313,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - hash_alg
    argTypes:
    - unsigned char
    constantsTouched: []
    func_position:
      end: 3314
      start: 3305
    functionDepth: 1
    functionLinenumber: 3305
    functionLinenumberEnd: 3314
    functionName: tls12_get_hash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 1
    functionsReached:
    - FIPS_mode
    - tls12_get_hash_info
    - ssl_md
    linkageType: ''
    returnType: EVP_MD
    signature: '*tls12_get_hash(unsigned char hash_alg)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - sig_alg
    argTypes:
    - unsigned char
    constantsTouched: []
    func_position:
      end: 3343
      start: 3316
    functionDepth: 0
    functionLinenumber: 3316
    functionLinenumberEnd: 3343
    functionName: tls12_get_pkey_idx
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: tls12_get_pkey_idx(unsigned char sig_alg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls12_find_nid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3353,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3353,1
    - Dst: tls12_find_nid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3358,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3358,1
    - Dst: OBJ_find_sigid_by_algs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3364,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 17
    argCount: 4
    argNames:
    - phash_nid
    - psign_nid
    - psignhash_nid
    - data
    argTypes:
    - int*
    - int*
    - int*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 3367
      start: 3346
    functionDepth: 1
    functionLinenumber: 3346
    functionLinenumberEnd: 3367
    functionName: tls1_lookup_sigalg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - OBJ_find_sigid_by_algs
    - tls12_find_nid
    linkageType: ''
    returnType: void
    signature: "tls1_lookup_sigalg(int *phash_nid, int *psign_nid,\n                               int
      *psignhash_nid, const unsigned char *data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls12_get_hash_info
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3373,1
    - Dst: ssl_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3374,1
    - Dst: tls12_get_pkey_idx
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3377,1
    - Dst: ssl_security
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - s
    - op
    - ptmp
    argTypes:
    - SSL*
    - int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 3381
      start: 3370
    functionDepth: 1
    functionLinenumber: 3370
    functionLinenumberEnd: 3381
    functionName: tls12_sigalg_allowed
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - ssl_security
    - tls12_get_pkey_idx
    - tls12_get_hash_info
    - ssl_md
    linkageType: ''
    returnType: int
    signature: tls12_sigalg_allowed(SSL *s, int op, const unsigned char *ptmp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls12_get_psigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3399,1
    - Dst: tls12_sigalg_allowed
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3404,1
    - Dst: tls12_sigalg_allowed
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3410,1
    - Dst: tls12_sigalg_allowed
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3416,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 3
    argNames:
    - pmask_a
    - s
    - op
    argTypes:
    - uint32_t*
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 3428
      start: 3389
    functionDepth: 2
    functionLinenumber: 3389
    functionLinenumberEnd: 3428
    functionName: ssl_set_sig_mask
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 2
    functionsReached:
    - tls12_get_psigalgs
    - tls12_sigalg_allowed
    linkageType: ''
    returnType: void
    signature: ssl_set_sig_mask(uint32_t *pmask_a, SSL *s, int op)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls12_sigalg_allowed
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - s
    - out
    - psig
    - psiglen
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 3442
      start: 3430
    functionDepth: 2
    functionLinenumber: 3430
    functionLinenumberEnd: 3442
    functionName: tls12_copy_sigalgs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 1
    functionsReached:
    - tls12_sigalg_allowed
    linkageType: ''
    returnType: size_t
    signature: "tls12_copy_sigalgs(SSL *s, unsigned char *out,\n                          const
      unsigned char *psig, size_t psiglen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls12_sigalg_allowed
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3453,1
    - Dst: tls1_lookup_sigalg
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3461,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 6
    argNames:
    - s
    - shsig
    - pref
    - preflen
    - allow
    - allowlen
    argTypes:
    - SSL*
    - TLS_SIGALGS*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 3471
      start: 3445
    functionDepth: 2
    functionLinenumber: 3445
    functionLinenumberEnd: 3471
    functionName: tls12_shared_sigalgs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - tls1_lookup_sigalg
    - tls12_sigalg_allowed
    linkageType: ''
    returnType: int
    signature: "tls12_shared_sigalgs(SSL *s, TLS_SIGALGS *shsig,\n                                const
      unsigned char *pref, size_t preflen,\n                                const
      unsigned char *allow, size_t allowlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3483,1
    - Dst: tls12_get_psigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3494,1
    - Dst: tls12_shared_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3506,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3508,1
    - Dst: tls12_shared_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3511,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3518
      start: 3474
    functionDepth: 3
    functionLinenumber: 3474
    functionLinenumberEnd: 3518
    functionName: tls1_set_shared_sigalgs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - tls12_shared_sigalgs
    - tls12_get_psigalgs
    linkageType: ''
    returnType: int
    signature: tls1_set_shared_sigalgs(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_USE_SIGALGS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3526,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3532,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3533,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3537,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - s
    - data
    - dsize
    argTypes:
    - SSL*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 3539
      start: 3522
    functionDepth: 0
    functionLinenumber: 3522
    functionLinenumberEnd: 3539
    functionName: tls1_save_sigalgs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - memcpy
    - SSL_USE_SIGALGS
    linkageType: ''
    returnType: int
    signature: tls1_save_sigalgs(SSL *s, const unsigned char *data, int dsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls1_set_shared_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3550,1
    - Dst: tls12_get_pkey_idx
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3555,1
    - Dst: tls12_get_hash
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3557,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3578,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3582,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3583,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3588,1
    - Dst: EVP_get_digestbynid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3592,1
    - Dst: EVP_get_digestbynid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3595,1
    - Dst: EVP_get_digestbynid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3598,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3602
      start: 3541
    functionDepth: 4
    functionLinenumber: 3541
    functionLinenumberEnd: 3602
    functionName: tls1_process_sigalgs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 1
    functionsReached:
    - EVP_sha1
    - tls1_set_shared_sigalgs
    - EVP_get_digestbynid
    - tls12_get_hash
    - tls12_get_pkey_idx
    linkageType: ''
    returnType: int
    signature: tls1_process_sigalgs(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls1_lookup_sigalg
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3620,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 7
    argNames:
    - s
    - idx
    - psign
    - phash
    - psignhash
    - rsig
    - rhash
    argTypes:
    - SSL*
    - int
    - int*
    - int*
    - int*
    - unsigned char*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 3623
      start: 3604
    functionDepth: 2
    functionLinenumber: 3604
    functionLinenumberEnd: 3623
    functionName: SSL_get_sigalgs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 1
    functionsReached:
    - tls1_lookup_sigalg
    linkageType: ''
    returnType: int
    signature: "SSL_get_sigalgs(SSL *s, int idx,\n                    int *psign,
      int *phash, int *psignhash,\n                    unsigned char *rsig, unsigned
      char *rhash)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 7
    argNames:
    - s
    - idx
    - psign
    - phash
    - psignhash
    - rsig
    - rhash
    argTypes:
    - SSL*
    - int
    - int*
    - int*
    - int*
    - unsigned char*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 3644
      start: 3625
    functionDepth: 0
    functionLinenumber: 3625
    functionLinenumberEnd: 3644
    functionName: SSL_get_shared_sigalgs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "SSL_get_shared_sigalgs(SSL *s, int idx,\n                           int
      *psign, int *phash, int *psignhash,\n                           unsigned char
      *rsig, unsigned char *rhash)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3655,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3657,1
    - Dst: strcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3659,1
    - Dst: OBJ_sn2nid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3662,1
    - Dst: OBJ_ln2nid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3664,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - psig
    - phash
    - str
    argTypes:
    - int*
    - int*
    - char*
    constantsTouched: []
    func_position:
      end: 3666
      start: 3653
    functionDepth: 1
    functionLinenumber: 3653
    functionLinenumberEnd: 3666
    functionName: get_sigorhash
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_ln2nid
    - OBJ_sn2nid
    - strcmp
    linkageType: ''
    returnType: void
    signature: get_sigorhash(int *psig, int *phash, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3680,1
    - Dst: strchr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3682,1
    - Dst: get_sigorhash
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3690,1
    - Dst: get_sigorhash
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3691,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - elem
    - len
    - arg
    argTypes:
    - char*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 3703
      start: 3668
    functionDepth: 2
    functionLinenumber: 3668
    functionLinenumberEnd: 3703
    functionName: sig_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - get_sigorhash
    - memcpy
    - strchr
    linkageType: ''
    returnType: int
    signature: sig_cb(const char *elem, int len, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CONF_parse_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3713,1
    - Dst: tls1_set_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - c
    - str
    - client
    argTypes:
    - CERT*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 3718
      start: 3709
    functionDepth: 1
    functionLinenumber: 3709
    functionLinenumberEnd: 3718
    functionName: tls1_set_sigalgs_list
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 3
    functionsReached:
    - CONF_parse_list
    - tls1_set_sigalgs
    linkageType: ''
    returnType: int
    signature: tls1_set_sigalgs_list(CERT *c, const char *str, int client)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3727,1
    - Dst: tls12_find_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3731,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3731,1
    - Dst: tls12_find_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3732,1
    - Dst: OSSL_NELEM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3732,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3741,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3745,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3753,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - c
    - psig_nids
    - salglen
    - client
    argTypes:
    - CERT*
    - int*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 3755
      start: 3720
    functionDepth: 1
    functionLinenumber: 3720
    functionLinenumberEnd: 3755
    functionName: tls1_set_sigalgs
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 3
    functionsReached:
    - OSSL_NELEM
    - OPENSSL_free
    - tls12_find_id
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: tls1_set_sigalgs(CERT *c, const int *psig_nids, size_t salglen, int
      client)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_signature_nid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:3763,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - c
    - x
    - default_nid
    argTypes:
    - CERT*
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 3770
      start: 3757
    functionDepth: 2
    functionLinenumber: 3757
    functionLinenumberEnd: 3770
    functionName: tls1_check_sig_alg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - X509_get_signature_nid
    linkageType: ''
    returnType: int
    signature: tls1_check_sig_alg(CERT *c, X509 *x, int default_nid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls1_check_chain
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4051,1
    - Dst: tls1_check_chain
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4052,1
    - Dst: tls1_check_chain
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4053,1
    - Dst: tls1_check_chain
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4054,1
    - Dst: tls1_check_chain
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4055,1
    - Dst: tls1_check_chain
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4056,1
    - Dst: tls1_check_chain
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 4058
      start: 4049
    functionDepth: 0
    functionLinenumber: 4049
    functionLinenumberEnd: 4058
    functionName: tls1_set_cert_validity
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 1
    functionsReached:
    - tls1_check_chain
    linkageType: ''
    returnType: void
    signature: tls1_set_cert_validity(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DH_get_1024_160
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4071,1
    - Dst: ssl_get_server_send_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4078,1
    - Dst: EVP_PKEY_security_bits
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4079,1
    - Dst: DH_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4083,1
    - Dst: BN_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4087,1
    - Dst: BN_set_word
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4089,1
    - Dst: BN_get_rfc3526_prime_8192
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4091,1
    - Dst: BN_get_rfc3526_prime_3072
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4093,1
    - Dst: DH_set0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4094,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4095,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4096,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4097,1
    - Dst: DH_get_2048_224
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4103,1
    - Dst: DH_get_1024_160
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4104,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 4105
      start: 4067
    functionDepth: 7
    functionLinenumber: 4067
    functionLinenumberEnd: 4105
    functionName: ssl_get_auto_dh
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_free
    - BN_get_rfc3526_prime_8192
    - BN_get_rfc3526_prime_3072
    - DH_get_1024_160
    - ssl_get_server_send_pkey
    - DH_new
    - DH_set0_pqg
    - BN_set_word
    - DH_free
    - EVP_PKEY_security_bits
    - DH_get_2048_224
    linkageType: ''
    returnType: DH
    signature: '*ssl_get_auto_dh(SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4111,1
    - Dst: EVP_PKEY_security_bits
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4119,1
    - Dst: ssl_security
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4122,1
    - Dst: ssl_ctx_security
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - s
    - ctx
    - x
    - op
    argTypes:
    - SSL*
    - SSL_CTX*
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 4125
      start: 4108
    functionDepth: 2
    functionLinenumber: 4108
    functionLinenumberEnd: 4125
    functionName: ssl_security_cert_key
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - ssl_security
    - ssl_ctx_security
    - X509_get0_pubkey
    - EVP_PKEY_security_bits
    linkageType: ''
    returnType: int
    signature: ssl_security_cert_key(SSL *s, SSL_CTX *ctx, X509 *x, int op)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_extension_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4132,1
    - Dst: X509_get_signature_nid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4134,1
    - Dst: OBJ_find_sigid_algs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4135,1
    - Dst: EVP_get_digestbynid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4137,1
    - Dst: EVP_MD_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4138,1
    - Dst: ssl_security
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4141,1
    - Dst: ssl_ctx_security
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4143,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - s
    - ctx
    - x
    - op
    argTypes:
    - SSL*
    - SSL_CTX*
    - X509*
    - int
    constantsTouched: []
    func_position:
      end: 4144
      start: 4127
    functionDepth: 5
    functionLinenumber: 4127
    functionLinenumberEnd: 4144
    functionName: ssl_security_cert_sig
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 0
    functionsReached:
    - X509_get_extension_flags
    - EVP_MD_size
    - EVP_get_digestbynid
    - OBJ_find_sigid_algs
    - ssl_security
    - ssl_ctx_security
    - X509_get_signature_nid
    linkageType: ''
    returnType: int
    signature: ssl_security_cert_sig(SSL *s, SSL_CTX *ctx, X509 *x, int op)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_security_cert_key
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4151,1
    - Dst: ssl_security_cert_key
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4154,1
    - Dst: ssl_security_cert_sig
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c:4157,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - s
    - ctx
    - x
    - vfy
    - is_ee
    argTypes:
    - SSL*
    - SSL_CTX*
    - X509*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 4160
      start: 4146
    functionDepth: 6
    functionLinenumber: 4146
    functionLinenumberEnd: 4160
    functionName: ssl_security_cert
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
    functionUses: 4
    functionsReached:
    - ssl_security_cert_sig
    - ssl_security_cert_key
    linkageType: ''
    returnType: int
    signature: ssl_security_cert(SSL *s, SSL_CTX *ctx, X509 *x, int vfy, int is_ee)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:22,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:23,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:24,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:25,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:26,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:27,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:28,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:29,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct ssl_ctx_st*
    constantsTouched: []
    func_position:
      end: 48
      start: 18
    functionDepth: 3
    functionLinenumber: 18
    functionLinenumberEnd: 48
    functionName: SSL_CTX_SRP_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - BN_free
    linkageType: ''
    returnType: int
    signature: SSL_CTX_SRP_CTX_free(struct ssl_ctx_st *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:54,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:55,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:56,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:57,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:58,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:59,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:60,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:61,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ssl_st*
    constantsTouched: []
    func_position:
      end: 80
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 80
    functionName: SSL_SRP_CTX_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - BN_free
    linkageType: ''
    returnType: int
    signature: SSL_SRP_CTX_free(struct ssl_st *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:112,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:114,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:116,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:118,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:120,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:122,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:124,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:126,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:127,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:131,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:132,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:139,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:140,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:141,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:142,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:143,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:144,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:145,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:146,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:147,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 42
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ssl_st*
    constantsTouched: []
    func_position:
      end: 149
      start: 82
    functionDepth: 4
    functionLinenumber: 82
    functionLinenumberEnd: 149
    functionName: SSL_SRP_CTX_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c
    functionUses: 1
    functionsReached:
    - BN_dup
    - BN_free
    - SSLerr
    - OPENSSL_strdup
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: SSL_SRP_CTX_init(struct ssl_st *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct ssl_ctx_st*
    constantsTouched: []
    func_position:
      end: 178
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 178
    functionName: SSL_CTX_SRP_CTX_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_CTX_SRP_CTX_init(struct ssl_ctx_st *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::srp_ctx::TLS_ext_srp_username_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:189,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:200,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:202,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:203,1
    - Dst: SRP_Calc_B
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:208,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - s
    - ad
    argTypes:
    - SSL*
    - int*
    constantsTouched: []
    func_position:
      end: 211
      start: 181
    functionDepth: 8
    functionLinenumber: 181
    functionLinenumberEnd: 211
    functionName: SSL_srp_server_param_with_username
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - BN_bin2bn
    - SSL*::srp_ctx::TLS_ext_srp_username_callback
    - OPENSSL_cleanse
    - SRP_Calc_B
    linkageType: ''
    returnType: int
    signature: SSL_srp_server_param_with_username(SSL *s, int *ad)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SRP_get_default_gN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:220,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:223,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:224,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:225,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:227,1
    - Dst: SRP_create_verifier_BN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - s
    - user
    - pass
    - grp
    argTypes:
    - SSL*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 234
      start: 217
    functionDepth: 5
    functionLinenumber: 217
    functionLinenumberEnd: 234
    functionName: SSL_set_srp_server_param_pw
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c
    functionUses: 1
    functionsReached:
    - BN_clear_free
    - SRP_get_default_gN
    - SRP_create_verifier_BN
    - BN_dup
    linkageType: ''
    returnType: int
    signature: "SSL_set_srp_server_param_pw(SSL *s, const char *user, const char *pass,\n
      \                               const char *grp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:241,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:242,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:246,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:250,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:251,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:255,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:259,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:260,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:264,1
    - Dst: BN_copy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:268,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:269,1
    - Dst: BN_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:273,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 6
    argNames:
    - s
    - N
    - g
    - sa
    - v
    - info
    argTypes:
    - SSL*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - char*
    constantsTouched: []
    func_position:
      end: 282
      start: 236
    functionDepth: 4
    functionLinenumber: 236
    functionLinenumberEnd: 282
    functionName: SSL_set_srp_server_param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c
    functionUses: 1
    functionsReached:
    - BN_copy
    - BN_free
    - BN_dup
    linkageType: ''
    returnType: int
    signature: "SSL_set_srp_server_param(SSL *s, const BIGNUM *N, const BIGNUM *g,\n
      \                            BIGNUM *sa, BIGNUM *v, char *info)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SRP_Verify_A_mod_N
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:290,1
    - Dst: SRP_Calc_u
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:292,1
    - Dst: SRP_Calc_server_key
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:294,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:298,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:299,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:301,1
    - Dst: ssl_generate_master_secret
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:302,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:304,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:305,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 307
      start: 284
    functionDepth: 7
    functionLinenumber: 284
    functionLinenumberEnd: 307
    functionName: srp_generate_server_master_secret
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c
    functionUses: 0
    functionsReached:
    - SRP_Calc_u
    - SRP_Verify_A_mod_N
    - BN_clear_free
    - ssl_generate_master_secret
    - BN_bn2bin
    - SRP_Calc_server_key
    - OPENSSL_malloc
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: srp_generate_server_master_secret(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SRP_Verify_B_mod_N
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:320,1
    - Dst: SRP_Calc_u
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:322,1
    - Dst: SSL*::srp_ctx::SRP_give_srp_client_pwd_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:328,1
    - Dst: SRP_Calc_x
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:330,1
    - Dst: SRP_Calc_client_key
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:332,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:336,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:337,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:339,1
    - Dst: ssl_generate_master_secret
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:340,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:342,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:343,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:345,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:345,1
    - Dst: BN_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:346,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 348
      start: 310
    functionDepth: 8
    functionLinenumber: 310
    functionLinenumberEnd: 348
    functionName: srp_generate_client_master_secret
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c
    functionUses: 0
    functionsReached:
    - SSL*::srp_ctx::SRP_give_srp_client_pwd_callback
    - SRP_Calc_u
    - BN_clear_free
    - SRP_Calc_client_key
    - OPENSSL_clear_free
    - strlen
    - ssl_generate_master_secret
    - SRP_Verify_B_mod_N
    - SRP_Calc_x
    - BN_bn2bin
    - OPENSSL_malloc
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: srp_generate_client_master_secret(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:357,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:357,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:358,1
    - Dst: BN_num_bits
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:363,1
    - Dst: SRP_CTX*::SRP_verify_param_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:369,1
    - Dst: SRP_check_known_gN_param
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:373,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - s
    - al
    argTypes:
    - SSL*
    - int*
    constantsTouched: []
    func_position:
      end: 379
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 379
    functionName: srp_verify_server_param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c
    functionUses: 0
    functionsReached:
    - BN_is_zero
    - SRP_check_known_gN_param
    - BN_num_bits
    - SRP_CTX*::SRP_verify_param_callback
    - BN_ucmp
    linkageType: ''
    returnType: int
    signature: srp_verify_server_param(SSL *s, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:385,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:387,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:388,1
    - Dst: SRP_Calc_A
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 394
      start: 381
    functionDepth: 4
    functionLinenumber: 381
    functionLinenumberEnd: 394
    functionName: SRP_Calc_A_param
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - OPENSSL_cleanse
    - SRP_Calc_A
    - BN_bin2bn
    linkageType: ''
    returnType: int
    signature: SRP_Calc_A_param(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 401
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 401
    functionName: SSL_get_srp_g
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: '*SSL_get_srp_g(SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 408
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 408
    functionName: SSL_get_srp_N
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: '*SSL_get_srp_N(SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 415
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 415
    functionName: SSL_get_srp_username
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*SSL_get_srp_username(SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 422
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 422
    functionName: SSL_get_srp_userinfo
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*SSL_get_srp_userinfo(SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls1_ctx_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - SSL_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 430
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 430
    functionName: SSL_CTX_set_srp_username
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c
    functionUses: 1
    functionsReached:
    - tls1_ctx_ctrl
    linkageType: ''
    returnType: int
    signature: SSL_CTX_set_srp_username(SSL_CTX *ctx, char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls1_ctx_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - password
    argTypes:
    - SSL_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 435
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 435
    functionName: SSL_CTX_set_srp_password
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c
    functionUses: 0
    functionsReached:
    - tls1_ctx_ctrl
    linkageType: ''
    returnType: int
    signature: SSL_CTX_set_srp_password(SSL_CTX *ctx, char *password)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls1_ctx_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - strength
    argTypes:
    - SSL_CTX*
    - int
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: SSL_CTX_set_srp_strength
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c
    functionUses: 1
    functionsReached:
    - tls1_ctx_ctrl
    linkageType: ''
    returnType: int
    signature: SSL_CTX_set_srp_strength(SSL_CTX *ctx, int strength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls1_ctx_callback_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 448
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 448
    functionName: SSL_CTX_set_srp_verify_param_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c
    functionUses: 1
    functionsReached:
    - tls1_ctx_callback_ctrl
    linkageType: ''
    returnType: int
    signature: "SSL_CTX_set_srp_verify_param_callback(SSL_CTX *ctx,\n                                          int
      (*cb) (SSL *, void *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls1_ctx_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - arg
    argTypes:
    - SSL_CTX*
    - void*
    constantsTouched: []
    func_position:
      end: 453
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 453
    functionName: SSL_CTX_set_srp_cb_arg
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c
    functionUses: 1
    functionsReached:
    - tls1_ctx_ctrl
    linkageType: ''
    returnType: int
    signature: SSL_CTX_set_srp_cb_arg(SSL_CTX *ctx, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls1_ctx_callback_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 460
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 460
    functionName: SSL_CTX_set_srp_username_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c
    functionUses: 0
    functionsReached:
    - tls1_ctx_callback_ctrl
    linkageType: ''
    returnType: int
    signature: "SSL_CTX_set_srp_username_callback(SSL_CTX *ctx,\n                                      int
      (*cb) (SSL *, int *, void *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls1_ctx_callback_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - (*cb) (SSL *, void *)
    argTypes:
    - SSL_CTX*
    - char*
    constantsTouched: []
    func_position:
      end: 467
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 467
    functionName: SSL_CTX_set_srp_client_pwd_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c
    functionUses: 2
    functionsReached:
    - tls1_ctx_callback_ctrl
    linkageType: ''
    returnType: int
    signature: "SSL_CTX_set_srp_client_pwd_callback(SSL_CTX *ctx,\n                                        char
      *(*cb) (SSL *, void *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:47,1
    - Dst: BIO_s_file
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:47,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:48,1
    - Dst: BIO_set_fp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:51,1
    - Dst: SSL_SESSION_print
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:52,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - fp
    - x
    argTypes:
    - FILE*
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: SSL_SESSION_print_fp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - BIO_s_file
    - BIO_free
    - SSL_SESSION_print
    - BIO_set_fp
    - BIO_new
    linkageType: ''
    returnType: int
    signature: SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:65,1
    - Dst: ssl_protocol_to_string
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:67,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:68,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:73,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:77,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:82,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:87,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:90,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:93,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:96,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:99,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:102,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:106,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:108,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:110,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:112,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:117,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:119,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:123,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:129,1
    - Dst: BIO_dump_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:131,1
    - Dst: ssl_cipher_get_evp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:140,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:143,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:146,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:153,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:157,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:160,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:163,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:165,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:166,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:169,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 121
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 176
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 176
    functionName: SSL_SESSION_print
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c
    functionUses: 4
    functionsReached:
    - ssl_protocol_to_string
    - BIO_dump_indent
    - ssl_cipher_get_evp
    - BIO_puts
    - BIO_printf
    - X509_verify_cert_error_string
    linkageType: ''
    returnType: int
    signature: SSL_SESSION_print(BIO *bp, const SSL_SESSION *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:196,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:199,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:202,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:205,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:208,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c:211,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 33
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 217
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 217
    functionName: SSL_SESSION_print_keylog
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: SSL_SESSION_print_keylog(BIO *bp, const SSL_SESSION *x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - val
    - tbl
    - ntbl
    argTypes:
    - int
    - ssl_trace_tbl*
    - size_t
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: do_ssl_trace_str
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*do_ssl_trace_str(int val, ssl_trace_tbl *tbl, size_t ntbl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:49,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:50,1
    - Dst: do_ssl_trace_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 7
    argNames:
    - bio
    - indent
    - msg
    - msglen
    - vlen
    - tbl
    - ntbl
    argTypes:
    - BIO*
    - int
    - unsigned char*
    - size_t
    - size_t
    - ssl_trace_tbl*
    - size_t
    constantsTouched: []
    func_position:
      end: 55
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 55
    functionName: do_ssl_trace_list
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - do_ssl_trace_str
    - BIO_indent
    linkageType: ''
    returnType: int
    signature: "do_ssl_trace_list(BIO *bio, int indent,\n                             const
      unsigned char *msg, size_t msglen,\n                             size_t vlen,
      ssl_trace_tbl *tbl, size_t ntbl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:569,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:570,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:572,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - bio
    - indent
    - name
    - msg
    - msglen
    argTypes:
    - BIO*
    - int
    - char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 574
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 574
    functionName: ssl_print_hex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - BIO_indent
    - BIO_puts
    linkageType: ''
    returnType: void
    signature: "ssl_print_hex(BIO *bio, int indent, const char *name,\n                          const
      unsigned char *msg, size_t msglen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_print_hex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:590,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - bio
    - indent
    - name
    - nlen
    - pmsg
    - pmsglen
    argTypes:
    - BIO*
    - int
    - char*
    - size_t
    - unsigned char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 594
      start: 576
    functionDepth: 3
    functionLinenumber: 576
    functionLinenumberEnd: 594
    functionName: ssl_print_hexbuf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_print_hex
    linkageType: ''
    returnType: int
    signature: "ssl_print_hexbuf(BIO *bio, int indent,\n                            const
      char *name, size_t nlen,\n                            const unsigned char **pmsg,
      size_t *pmsglen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:603,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:604,1
    - Dst: ssl_trace_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - bio
    - indent
    - name
    - pmsg
    - pmsglen
    argTypes:
    - BIO*
    - int
    - char*
    - unsigned char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 609
      start: 596
    functionDepth: 2
    functionLinenumber: 596
    functionLinenumberEnd: 609
    functionName: ssl_print_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_trace_str
    - BIO_printf
    - BIO_indent
    linkageType: ''
    returnType: int
    signature: "ssl_print_version(BIO *bio, int indent, const char *name,\n                             const
      unsigned char **pmsg, size_t *pmsglen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:620,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:621,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:622,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:623,1
    - Dst: ssl_print_hex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - bio
    - indent
    - pmsg
    - pmsglen
    argTypes:
    - BIO*
    - int
    - unsigned char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 628
      start: 611
    functionDepth: 3
    functionLinenumber: 611
    functionLinenumberEnd: 628
    functionName: ssl_print_random
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - ssl_print_hex
    - BIO_indent
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: "ssl_print_random(BIO *bio, int indent,\n                            const
      unsigned char **pmsg, size_t *pmsglen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_USE_SIGALGS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:635,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:637,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:638,1
    - Dst: ssl_trace_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:639,1
    - Dst: ssl_trace_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:640,1
    - Dst: ssl_print_hexbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - bio
    - indent
    - s
    - pmsg
    - pmsglen
    argTypes:
    - BIO*
    - int
    - SSL*
    - unsigned char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 645
      start: 630
    functionDepth: 4
    functionLinenumber: 630
    functionLinenumberEnd: 645
    functionName: ssl_print_signature
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_trace_str
    - ssl_print_hexbuf
    - BIO_indent
    - BIO_printf
    - SSL_USE_SIGALGS
    linkageType: ''
    returnType: int
    signature: "ssl_print_signature(BIO *bio, int indent, SSL *s,\n                               const
      unsigned char **pmsg, size_t *pmsglen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:651,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:652,1
    - Dst: ssl_trace_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:653,1
    - Dst: ssl_trace_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:661,1
    - Dst: ssl_trace_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:669,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:682,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:683,1
    - Dst: ssl_trace_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:684,1
    - Dst: ssl_trace_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:685,1
    - Dst: ssl_print_hex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:704,1
    - Dst: ssl_print_hex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:707,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:710,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:711,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:718,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:719,1
    - Dst: ssl_trace_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:720,1
    - Dst: ssl_print_hex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:725,1
    - Dst: BIO_dump_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:729,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 71
    argCount: 6
    argNames:
    - bio
    - indent
    - server
    - extype
    - ext
    - extlen
    argTypes:
    - BIO*
    - int
    - int
    - int
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 732
      start: 647
    functionDepth: 4
    functionLinenumber: 647
    functionLinenumberEnd: 732
    functionName: ssl_print_extension
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_trace_str
    - BIO_dump_indent
    - BIO_indent
    - BIO_puts
    - ssl_print_hex
    - BIO_printf
    - ssl_trace_list
    linkageType: ''
    returnType: int
    signature: "ssl_print_extension(BIO *bio, int indent, int server, int extype,\n
      \                              const unsigned char *ext, size_t extlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:738,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:740,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:748,1
    - Dst: ssl_print_extension
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:759,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 5
    argNames:
    - bio
    - indent
    - server
    - msg
    - msglen
    argTypes:
    - BIO*
    - int
    - int
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 765
      start: 734
    functionDepth: 5
    functionLinenumber: 734
    functionLinenumberEnd: 765
    functionName: ssl_print_extensions
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_print_extension
    - BIO_printf
    - BIO_indent
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: "ssl_print_extensions(BIO *bio, int indent, int server,\n                                const
      unsigned char *msg, size_t msglen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_print_version
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:772,1
    - Dst: ssl_print_random
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:774,1
    - Dst: ssl_print_hexbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:776,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:778,1
    - Dst: ssl_print_hexbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:779,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:787,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:788,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:793,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:794,1
    - Dst: ssl_trace_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:795,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:807,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:808,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:810,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:811,1
    - Dst: ssl_trace_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:812,1
    - Dst: ssl_print_extensions
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:817,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 5
    argNames:
    - bio
    - ssl
    - indent
    - msg
    - msglen
    argTypes:
    - BIO*
    - SSL*
    - int
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 820
      start: 767
    functionDepth: 6
    functionLinenumber: 767
    functionLinenumberEnd: 820
    functionName: ssl_print_client_hello
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_trace_str
    - ssl_print_hexbuf
    - BIO_indent
    - ssl_print_extensions
    - ssl_print_random
    - BIO_printf
    - SSL_IS_DTLS
    - ssl_print_version
    linkageType: ''
    returnType: int
    signature: "ssl_print_client_hello(BIO *bio, SSL *ssl, int indent,\n                                  const
      unsigned char *msg, size_t msglen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_print_version
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:825,1
    - Dst: ssl_print_hexbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:827,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - bio
    - indent
    - msg
    - msglen
    argTypes:
    - BIO*
    - int
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 830
      start: 822
    functionDepth: 4
    functionLinenumber: 822
    functionLinenumberEnd: 830
    functionName: dtls_print_hello_vfyrequest
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_print_hexbuf
    - ssl_print_version
    linkageType: ''
    returnType: int
    signature: "dtls_print_hello_vfyrequest(BIO *bio, int indent,\n                                       const
      unsigned char *msg, size_t msglen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_print_version
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:836,1
    - Dst: ssl_print_random
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:838,1
    - Dst: ssl_print_hexbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:840,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:845,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:846,1
    - Dst: ssl_trace_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:847,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:852,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:853,1
    - Dst: ssl_trace_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:854,1
    - Dst: ssl_print_extensions
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:857,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - bio
    - indent
    - msg
    - msglen
    argTypes:
    - BIO*
    - int
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 860
      start: 832
    functionDepth: 6
    functionLinenumber: 832
    functionLinenumberEnd: 860
    functionName: ssl_print_server_hello
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_trace_str
    - ssl_print_hexbuf
    - BIO_indent
    - ssl_print_extensions
    - ssl_print_random
    - BIO_printf
    - ssl_print_version
    linkageType: ''
    returnType: int
    signature: "ssl_print_server_hello(BIO *bio, int indent,\n                                  const
      unsigned char *msg, size_t msglen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - pname
    - ssl
    argTypes:
    - char**
    - SSL*
    constantsTouched: []
    func_position:
      end: 903
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 903
    functionName: ssl_get_keyex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ssl_get_keyex(const char **pname, SSL *ssl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_get_keyex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:910,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:911,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:912,1
    - Dst: ssl_print_hexbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:914,1
    - Dst: TLS1_get_version
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:922,1
    - Dst: ssl_print_hex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:923,1
    - Dst: ssl_print_hexbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:926,1
    - Dst: ssl_print_hexbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:934,1
    - Dst: ssl_print_hexbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:940,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 5
    argNames:
    - bio
    - indent
    - ssl
    - msg
    - msglen
    argTypes:
    - BIO*
    - int
    - SSL*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 947
      start: 905
    functionDepth: 4
    functionLinenumber: 905
    functionLinenumberEnd: 947
    functionName: ssl_print_client_keyex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_print_hexbuf
    - BIO_indent
    - ssl_get_keyex
    - TLS1_get_version
    - ssl_print_hex
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "ssl_print_client_keyex(BIO *bio, int indent, SSL *ssl,\n                                  const
      unsigned char *msg, size_t msglen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_get_keyex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:954,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:955,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:956,1
    - Dst: ssl_print_hexbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:958,1
    - Dst: ssl_print_hexbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:965,1
    - Dst: ssl_print_hexbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:967,1
    - Dst: ssl_print_hexbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:974,1
    - Dst: ssl_print_hexbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:976,1
    - Dst: ssl_print_hexbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:978,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:987,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:989,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:991,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:997,1
    - Dst: ssl_trace_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:998,1
    - Dst: ssl_print_hexbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1001,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1004,1
    - Dst: ssl_print_signature
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1015,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 5
    argNames:
    - bio
    - indent
    - ssl
    - msg
    - msglen
    argTypes:
    - BIO*
    - int
    - SSL*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1017
      start: 949
    functionDepth: 5
    functionLinenumber: 949
    functionLinenumberEnd: 1017
    functionName: ssl_print_server_keyex
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_trace_str
    - ssl_print_hexbuf
    - BIO_indent
    - BIO_puts
    - ssl_print_signature
    - ssl_get_keyex
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "ssl_print_server_keyex(BIO *bio, int indent, SSL *ssl,\n                                  const
      unsigned char *msg, size_t msglen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1032,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1033,1
    - Dst: d2i_X509
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1034,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1036,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1038,1
    - Dst: X509_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1039,1
    - Dst: PEM_write_bio_X509
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1040,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1042,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1043,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1046,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - bio
    - indent
    - pmsg
    - pmsglen
    argTypes:
    - BIO*
    - int
    - unsigned char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 1051
      start: 1019
    functionDepth: 4
    functionLinenumber: 1019
    functionLinenumberEnd: 1051
    functionName: ssl_print_certificate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - d2i_X509
    - X509_print_ex
    - PEM_write_bio_X509
    - BIO_indent
    - BIO_puts
    - X509_free
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "ssl_print_certificate(BIO *bio, int indent,\n                                 const
      unsigned char **pmsg, size_t *pmsglen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1063,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1064,1
    - Dst: ssl_print_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1066,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - bio
    - indent
    - msg
    - msglen
    argTypes:
    - BIO*
    - int
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1070
      start: 1053
    functionDepth: 5
    functionLinenumber: 1053
    functionLinenumberEnd: 1070
    functionName: ssl_print_certificates
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - BIO_indent
    - ssl_print_certificate
    linkageType: ''
    returnType: int
    signature: "ssl_print_certificates(BIO *bio, int indent,\n                                  const
      unsigned char *msg, size_t msglen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1082,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1083,1
    - Dst: ssl_trace_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1084,1
    - Dst: SSL_USE_SIGALGS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1088,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1096,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1097,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1099,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1100,1
    - Dst: ssl_trace_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1101,1
    - Dst: ssl_trace_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1102,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1111,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1116,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1127,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1128,1
    - Dst: d2i_X509_NAME
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1130,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1132,1
    - Dst: X509_NAME_print_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1134,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1135,1
    - Dst: X509_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1136,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 63
    argCount: 5
    argNames:
    - bio
    - indent
    - s
    - msg
    - msglen
    argTypes:
    - BIO*
    - int
    - SSL*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1142
      start: 1072
    functionDepth: 7
    functionLinenumber: 1072
    functionLinenumberEnd: 1142
    functionName: ssl_print_cert_request
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_trace_str
    - BIO_indent
    - BIO_puts
    - X509_NAME_free
    - X509_NAME_print_ex
    - d2i_X509_NAME
    - BIO_printf
    - SSL_USE_SIGALGS
    - ssl_trace_list
    linkageType: ''
    returnType: int
    signature: "ssl_print_cert_request(BIO *bio, int indent, SSL *s,\n                                  const
      unsigned char *msg, size_t msglen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1149,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1150,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1158,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1159,1
    - Dst: ssl_print_hexbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - bio
    - indent
    - msg
    - msglen
    argTypes:
    - BIO*
    - int
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1165
      start: 1144
    functionDepth: 4
    functionLinenumber: 1144
    functionLinenumberEnd: 1165
    functionName: ssl_print_ticket
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - ssl_print_hexbuf
    - BIO_indent
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: "ssl_print_ticket(BIO *bio, int indent,\n                            const
      unsigned char *msg, size_t msglen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1177,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1178,1
    - Dst: ssl_trace_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1179,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1182,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1185,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1186,1
    - Dst: ssl_print_client_hello
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1198,1
    - Dst: dtls_print_hello_vfyrequest
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1203,1
    - Dst: ssl_print_server_hello
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1208,1
    - Dst: ssl_print_server_keyex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1213,1
    - Dst: ssl_print_client_keyex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1218,1
    - Dst: ssl_print_certificates
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1223,1
    - Dst: ssl_print_signature
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1228,1
    - Dst: ssl_print_cert_request
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1233,1
    - Dst: ssl_print_hex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1238,1
    - Dst: ssl_print_hex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1243,1
    - Dst: ssl_print_ticket
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1247,1
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1252,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1253,1
    - Dst: BIO_dump_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1254,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 69
    argCount: 5
    argNames:
    - bio
    - ssl
    - msg
    - msglen
    - indent
    argTypes:
    - BIO*
    - SSL*
    - unsigned char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 1257
      start: 1167
    functionDepth: 8
    functionLinenumber: 1167
    functionLinenumberEnd: 1257
    functionName: ssl_print_handshake
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_print_client_keyex
    - ssl_trace_str
    - ssl_print_server_keyex
    - ssl_print_ticket
    - BIO_dump_indent
    - BIO_indent
    - BIO_puts
    - ssl_print_cert_request
    - ssl_print_signature
    - ssl_print_certificates
    - ssl_print_hex
    - ssl_print_server_hello
    - ssl_print_client_hello
    - BIO_printf
    - dtls_print_hello_vfyrequest
    - SSL_IS_DTLS
    linkageType: ''
    returnType: int
    signature: "ssl_print_handshake(BIO *bio, SSL *ssl,\n                               const
      unsigned char *msg, size_t msglen,\n                               int indent)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1264,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1265,1
    - Dst: ssl_trace_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1266,1
    - Dst: ssl_print_hexbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1269,1
    - Dst: ssl_print_hex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - bio
    - indent
    - msg
    - msglen
    argTypes:
    - BIO*
    - int
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1273
      start: 1259
    functionDepth: 4
    functionLinenumber: 1259
    functionLinenumberEnd: 1273
    functionName: ssl_print_heartbeat
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_trace_str
    - ssl_print_hexbuf
    - BIO_indent
    - ssl_print_hex
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "ssl_print_heartbeat(BIO *bio, int indent,\n                               const
      unsigned char *msg, size_t msglen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_trace_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - SSL_CIPHER*
    constantsTouched: []
    func_position:
      end: 1278
      start: 1275
    functionDepth: 0
    functionLinenumber: 1275
    functionLinenumberEnd: 1278
    functionName: SSL_CIPHER_standard_name
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_trace_str
    linkageType: ''
    returnType: char
    signature: '*SSL_CIPHER_standard_name(const SSL_CIPHER *c)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1287,1
    - Dst: ssl_print_hex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1288,1
    - Dst: ssl_trace_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1289,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1296,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1297,1
    - Dst: ssl_trace_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1298,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1299,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1300,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1307,1
    - Dst: ssl_trace_str
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1308,1
    - Dst: ssl_print_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1313,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1314,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1319,1
    - Dst: ssl_print_hex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1321,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1326,1
    - Dst: BIO_printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1328,1
    - Dst: SSL_alert_type_string_long
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1329,1
    - Dst: SSL_alert_desc_string_long
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1330,1
    - Dst: ssl_print_heartbeat
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1333,1
    - Dst: BIO_puts
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c:1338,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 7
    argNames:
    - write_p
    - version
    - content_type
    - buf
    - msglen
    - ssl
    - arg
    argTypes:
    - int
    - int
    - int
    - void*
    - size_t
    - SSL*
    - void*
    constantsTouched: []
    func_position:
      end: 1339
      start: 1280
    functionDepth: 9
    functionLinenumber: 1280
    functionLinenumberEnd: 1339
    functionName: SSL_trace
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
    functionUses: 0
    functionsReached:
    - ssl_trace_str
    - ssl_print_handshake
    - SSL_alert_desc_string_long
    - ssl_print_heartbeat
    - BIO_puts
    - ssl_print_hex
    - SSL_alert_type_string_long
    - BIO_printf
    - SSL_IS_DTLS
    linkageType: ''
    returnType: void
    signature: "SSL_trace(int write_p, int version, int content_type,\n               const
      void *buf, size_t msglen, SSL *ssl, void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: SSL_get_session
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: SSL_SESSION
    signature: '*SSL_get_session(const SSL *ssl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:62,1
    - Dst: SSL_SESSION_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:65,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 68
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 68
    functionName: SSL_get1_session
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 3
    functionsReached:
    - CRYPTO_THREAD_unlock
    - CRYPTO_THREAD_read_lock
    - SSL_SESSION_up_ref
    linkageType: ''
    returnType: SSL_SESSION
    signature: '*SSL_get1_session(SSL *ssl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - idx
    - arg
    argTypes:
    - SSL_SESSION*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: SSL_SESSION_set_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: SSL_SESSION_set_ex_data(SSL_SESSION *s, int idx, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - idx
    argTypes:
    - SSL_SESSION*
    - int
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: SSL_SESSION_get_ex_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: '*SSL_SESSION_get_ex_data(const SSL_SESSION *s, int idx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:84,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:86,1
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:93,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:94,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:96,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:97,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:101,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:102,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 107
    functionName: SSL_SESSION_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 2
    functionsReached:
    - CRYPTO_new_ex_data
    - SSLerr
    - CRYPTO_THREAD_lock_new
    - OPENSSL_zalloc
    - OPENSSL_free
    - CRYPTO_THREAD_lock_free
    - time
    linkageType: ''
    returnType: SSL_SESSION
    signature: '*SSL_SESSION_new(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:117,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:121,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:141,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:149,1
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:154,1
    - Dst: X509_chain_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:157,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:163,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:169,1
    - Dst: sk_SSL_CIPHER_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:177,1
    - Dst: CRYPTO_dup_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:182,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:188,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:196,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:203,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:212,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:222,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:231,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:232,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 96
    argCount: 2
    argNames:
    - src
    - ticket
    argTypes:
    - SSL_SESSION*
    - int
    constantsTouched: []
    func_position:
      end: 234
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 234
    functionName: ssl_session_dup
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached:
    - X509_chain_up_ref
    - X509_up_ref
    - SSL_SESSION_free
    - SSLerr
    - OPENSSL_memdup
    - memset
    - CRYPTO_THREAD_lock_new
    - sk_SSL_CIPHER_dup
    - memcpy
    - OPENSSL_strdup
    - CRYPTO_dup_ex_data
    - OPENSSL_malloc
    linkageType: ''
    returnType: SSL_SESSION
    signature: '*ssl_session_dup(SSL_SESSION *src, int ticket)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - SSL_SESSION*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 241
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 241
    functionName: SSL_SESSION_get_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: '*SSL_SESSION_get_id(const SSL_SESSION *s, unsigned int *len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - SSL_SESSION*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 248
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 248
    functionName: SSL_SESSION_get0_id_context
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: "*SSL_SESSION_get0_id_context(const SSL_SESSION *s,\n                                                unsigned
      int *len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: SSL_SESSION_get_compress_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: SSL_SESSION_get_compress_id(const SSL_SESSION *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:272,1
    - Dst: SSL_has_matching_session_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - ssl
    - id
    - id_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 288
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 288
    functionName: def_generate_session_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - SSL_has_matching_session_id
    linkageType: ''
    returnType: int
    signature: "def_generate_session_id(const SSL *ssl, unsigned char *id,\n                                   unsigned
      int *id_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:298,1
    - Dst: SSL_get_default_timeout
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:303,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:307,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:333,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:334,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:359,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:360,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:365,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:366,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:368,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:370,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:372,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:374,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:383,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:385,1
    - Dst: SSL_has_matching_session_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:390,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:392,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:393,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:399,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:401,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:402,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:411,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:412,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:415,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 98
    argCount: 2
    argNames:
    - s
    - session
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 426
      start: 290
    functionDepth: 3
    functionLinenumber: 290
    functionLinenumberEnd: 426
    functionName: ssl_get_new_session
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_free
    - SSLerr
    - SSL_get_default_timeout
    - memset
    - cb
    - SSL_SESSION_new
    - CRYPTO_THREAD_unlock
    - memcpy
    - SSL_has_matching_session_id
    - OPENSSL_strdup
    - CRYPTO_THREAD_read_lock
    linkageType: ''
    returnType: int
    signature: ssl_get_new_session(SSL *s, int session)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:454,1
    - Dst: tls_check_serverhello_tlsext_early
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:458,1
    - Dst: abort
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:471,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:481,1
    - Dst: PACKET_copy_all
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:482,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:487,1
    - Dst: lh_SSL_SESSION_retrieve
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:488,1
    - Dst: SSL_SESSION_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:491,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:493,1
    - Dst: SSL*::session_ctx::get_session_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:501,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:501,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:502,1
    - Dst: SSL_SESSION_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:516,1
    - Dst: SSL_CTX_add_session
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:529,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:541,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:560,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:572,1
    - Dst: ssl_get_cipher_by_char
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:574,1
    - Dst: ssl_get_cipher_by_char
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:576,1
    - Dst: time
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:581,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:585,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:594,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:595,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:606,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:613,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 110
    argCount: 3
    argNames:
    - s
    - ext
    - session_id
    argTypes:
    - SSL*
    - PACKET*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 627
      start: 445
    functionDepth: 4
    functionLinenumber: 445
    functionLinenumberEnd: 627
    functionName: ssl_get_prev_session
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - ssl3_send_alert
    - PACKET_copy_all
    - lh_SSL_SESSION_retrieve
    - time
    - memset
    - PACKET_remaining
    - l2n
    - ssl_get_cipher_by_char
    - SSL_CTX_remove_session
    - SSL_CTX_add_session
    - SSL_SESSION_free
    - memcmp
    - abort
    - SSL*::session_ctx::get_session_cb
    - CRYPTO_THREAD_unlock
    - tls_check_serverhello_tlsext_early
    - CRYPTO_THREAD_read_lock
    - PACKET_data
    - SSL_SESSION_up_ref
    linkageType: ''
    returnType: int
    signature: ssl_get_prev_session(SSL *s, const PACKET *ext, const PACKET *session_id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:639,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:644,1
    - Dst: lh_SSL_SESSION_insert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:645,1
    - Dst: SSL_SESSION_list_remove
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:654,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:655,1
    - Dst: lh_SSL_SESSION_retrieve
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:664,1
    - Dst: SSL_SESSION_list_add
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:676,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:684,1
    - Dst: SSL_CTX_sess_get_cache_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:693,1
    - Dst: SSL_CTX_sess_number
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:694,1
    - Dst: SSL_CTX_sess_get_cache_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:694,1
    - Dst: remove_session_lock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:695,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:702,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - SSL_CTX*
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 704
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 704
    functionName: SSL_CTX_add_session
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 4
    functionsReached:
    - remove_session_lock
    - SSL_SESSION_free
    - SSL_SESSION_list_add
    - SSL_CTX_sess_get_cache_size
    - SSL_SESSION_list_remove
    - CRYPTO_THREAD_write_lock
    - lh_SSL_SESSION_retrieve
    - CRYPTO_THREAD_unlock
    - SSL_CTX_sess_number
    - lh_SSL_SESSION_insert
    - SSL_SESSION_up_ref
    linkageType: ''
    returnType: int
    signature: SSL_CTX_add_session(SSL_CTX *ctx, SSL_SESSION *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: remove_session_lock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - SSL_CTX*
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 709
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 709
    functionName: SSL_CTX_remove_session
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 3
    functionsReached:
    - remove_session_lock
    linkageType: ''
    returnType: int
    signature: SSL_CTX_remove_session(SSL_CTX *ctx, SSL_SESSION *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:718,1
    - Dst: lh_SSL_SESSION_retrieve
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:719,1
    - Dst: lh_SSL_SESSION_delete
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:721,1
    - Dst: SSL_SESSION_list_remove
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:722,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:727,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:730,1
    - Dst: SSL_CTX*::remove_session_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:733,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - ctx
    - c
    - lck
    argTypes:
    - SSL_CTX*
    - SSL_SESSION*
    - int
    constantsTouched: []
    func_position:
      end: 737
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 737
    functionName: remove_session_lock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 2
    functionsReached:
    - SSL_SESSION_free
    - CRYPTO_THREAD_write_lock
    - SSL_SESSION_list_remove
    - lh_SSL_SESSION_delete
    - CRYPTO_THREAD_unlock
    - lh_SSL_SESSION_retrieve
    - SSL_CTX*::remove_session_cb
    linkageType: ''
    returnType: int
    signature: remove_session_lock(SSL_CTX *ctx, SSL_SESSION *c, int lck)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:746,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:747,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:750,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:752,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:754,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:755,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:756,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:757,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:758,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:759,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:760,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:763,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:765,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:768,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:769,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:772,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:774,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:775,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - ss
    argTypes:
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 776
      start: 739
    functionDepth: 2
    functionLinenumber: 739
    functionLinenumberEnd: 776
    functionName: SSL_SESSION_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 16
    functionsReached:
    - sk_X509_pop_free
    - CRYPTO_THREAD_lock_free
    - OPENSSL_clear_free
    - CRYPTO_free_ex_data
    - X509_free
    - CRYPTO_atomic_add
    - OPENSSL_cleanse
    - OPENSSL_free
    - REF_ASSERT_ISNT
    - sk_SSL_CIPHER_free
    - REF_PRINT_COUNT
    linkageType: ''
    returnType: void
    signature: SSL_SESSION_free(SSL_SESSION *ss)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_atomic_add
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:782,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:785,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ss
    argTypes:
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 788
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 788
    functionName: SSL_SESSION_up_ref
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 4
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_atomic_add
    linkageType: ''
    returnType: int
    signature: SSL_SESSION_up_ref(SSL_SESSION *ss)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_clear_bad_session
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:792,1
    - Dst: SSL_set_ssl_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:794,1
    - Dst: SSL_SESSION_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:799,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:802,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - s
    - session
    argTypes:
    - SSL*
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 806
      start: 790
    functionDepth: 3
    functionLinenumber: 790
    functionLinenumberEnd: 806
    functionName: SSL_set_session
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 5
    functionsReached:
    - SSL_SESSION_up_ref
    - SSL_SESSION_free
    - SSL_set_ssl_method
    - ssl_clear_bad_session
    linkageType: ''
    returnType: int
    signature: SSL_set_session(SSL *s, SSL_SESSION *session)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:812,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - s
    - sid
    - sid_len
    argTypes:
    - SSL_SESSION*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 819
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 819
    functionName: SSL_SESSION_set1_id
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached:
    - memcpy
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "SSL_SESSION_set1_id(SSL_SESSION *s, const unsigned char *sid,\n                        unsigned
      int sid_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - SSL_SESSION*
    - long
    constantsTouched: []
    func_position:
      end: 827
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 827
    functionName: SSL_SESSION_set_timeout
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: SSL_SESSION_set_timeout(SSL_SESSION *s, long t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 834
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 834
    functionName: SSL_SESSION_get_timeout
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: SSL_SESSION_get_timeout(const SSL_SESSION *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 841
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 841
    functionName: SSL_SESSION_get_time
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: SSL_SESSION_get_time(const SSL_SESSION *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - SSL_SESSION*
    - long
    constantsTouched: []
    func_position:
      end: 849
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 849
    functionName: SSL_SESSION_set_time
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: SSL_SESSION_set_time(SSL_SESSION *s, long t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 854
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 854
    functionName: SSL_SESSION_get_protocol_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_SESSION_get_protocol_version(const SSL_SESSION *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 859
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 859
    functionName: SSL_SESSION_get0_cipher
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SSL_CIPHER
    signature: '*SSL_SESSION_get0_cipher(const SSL_SESSION *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 864
      start: 861
    functionDepth: 0
    functionLinenumber: 861
    functionLinenumberEnd: 864
    functionName: SSL_SESSION_get0_hostname
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*SSL_SESSION_get0_hostname(const SSL_SESSION *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 869
      start: 866
    functionDepth: 0
    functionLinenumber: 866
    functionLinenumberEnd: 869
    functionName: SSL_SESSION_has_ticket
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_SESSION_has_ticket(const SSL_SESSION *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 874
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 874
    functionName: SSL_SESSION_get_ticket_lifetime_hint
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - s
    - tick
    - len
    argTypes:
    - SSL_SESSION*
    - unsigned char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 882
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 882
    functionName: SSL_SESSION_get0_ticket
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SSL_SESSION_get0_ticket(const SSL_SESSION *s, const unsigned char
      **tick,\n                             size_t *len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 887
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 887
    functionName: SSL_SESSION_get0_peer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: '*SSL_SESSION_get0_peer(SSL_SESSION *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:893,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - s
    - sid_ctx
    - sid_ctx_len
    argTypes:
    - SSL_SESSION*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 901
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 901
    functionName: SSL_SESSION_set1_id_context
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 1
    functionsReached:
    - memcpy
    - SSLerr
    linkageType: ''
    returnType: int
    signature: "SSL_SESSION_set1_id_context(SSL_SESSION *s, const unsigned char *sid_ctx,\n
      \                               unsigned int sid_ctx_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - SSL_CTX*
    - long
    constantsTouched: []
    func_position:
      end: 911
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 911
    functionName: SSL_CTX_set_timeout
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: SSL_CTX_set_timeout(SSL_CTX *s, long t)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 918
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 918
    functionName: SSL_CTX_get_timeout
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: SSL_CTX_get_timeout(const SSL_CTX *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    constantsTouched: []
    func_position:
      end: 936
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 936
    functionName: SSL_set_session_secret_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "SSL_set_session_secret_cb(SSL *s,\n                              int
      (*tls_session_secret_cb) (SSL *s,\n                                                            void
      *secret,\n                                                            int *secret_len,\n
      \                                                           STACK_OF(SSL_CIPHER)\n
      \                                                           *peer_ciphers,\n
      \                                                           const SSL_CIPHER\n
      \                                                           **cipher,\n                                                            void
      *arg),\n                              void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - s
    - cb
    - arg
    argTypes:
    - SSL*
    - tls_session_ticket_ext_cb_fn
    - void*
    constantsTouched: []
    func_position:
      end: 946
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 946
    functionName: SSL_set_session_ticket_ext_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "SSL_set_session_ticket_ext_cb(SSL *s, tls_session_ticket_ext_cb_fn
      cb,\n                                  void *arg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:951,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:954,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:956,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:963,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - s
    - ext_data
    - ext_len
    argTypes:
    - SSL*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 973
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 973
    functionName: SSL_set_session_ticket_ext
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - memcpy
    - OPENSSL_malloc
    - SSLerr
    linkageType: ''
    returnType: int
    signature: SSL_set_session_ticket_ext(SSL *s, void *ext_data, int ext_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lh_SSL_SESSION_delete
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:988,1
    - Dst: SSL_SESSION_list_remove
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:989,1
    - Dst: TIMEOUT_PARAM*::ctx::remove_session_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:992,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:993,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - s
    - p
    argTypes:
    - SSL_SESSION*
    - TIMEOUT_PARAM*
    constantsTouched: []
    func_position:
      end: 995
      start: 981
    functionDepth: 3
    functionLinenumber: 981
    functionLinenumberEnd: 995
    functionName: timeout_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached:
    - lh_SSL_SESSION_delete
    - SSL_SESSION_list_remove
    - TIMEOUT_PARAM*::ctx::remove_session_cb
    - SSL_SESSION_free
    linkageType: ''
    returnType: void
    signature: timeout_cb(SSL_SESSION *s, TIMEOUT_PARAM *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:1009,1
    - Dst: lh_SSL_SESSION_get_down_load
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:1010,1
    - Dst: lh_SSL_SESSION_set_down_load
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:1011,1
    - Dst: lh_SSL_SESSION_doall_TIMEOUT_PARAM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:1012,1
    - Dst: lh_SSL_SESSION_set_down_load
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:1013,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:1014,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - SSL_CTX*
    - long
    constantsTouched: []
    func_position:
      end: 1015
      start: 999
    functionDepth: 0
    functionLinenumber: 999
    functionLinenumberEnd: 1015
    functionName: SSL_CTX_flush_sessions
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 2
    functionsReached:
    - lh_SSL_SESSION_set_down_load
    - CRYPTO_THREAD_write_lock
    - lh_SSL_SESSION_doall_TIMEOUT_PARAM
    - lh_SSL_SESSION_get_down_load
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: SSL_CTX_flush_sessions(SSL_CTX *s, long t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:1021,1
    - Dst: SSL_in_before
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:1021,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:1022,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1026
      start: 1017
    functionDepth: 2
    functionLinenumber: 1017
    functionLinenumberEnd: 1026
    functionName: ssl_clear_bad_session
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 3
    functionsReached:
    - SSL_in_before
    - SSL_in_init
    - SSL_CTX_remove_session
    linkageType: ''
    returnType: int
    signature: ssl_clear_bad_session(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - s
    argTypes:
    - SSL_CTX*
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 1056
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1056
    functionName: SSL_SESSION_list_remove
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SSL_SESSION_list_remove(SSL_CTX *ctx, SSL_SESSION *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_list_remove
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:1061,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - s
    argTypes:
    - SSL_CTX*
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 1074
      start: 1058
    functionDepth: 1
    functionLinenumber: 1058
    functionLinenumberEnd: 1074
    functionName: SSL_SESSION_list_add
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 1
    functionsReached:
    - SSL_SESSION_list_remove
    linkageType: ''
    returnType: void
    signature: SSL_SESSION_list_add(SSL_CTX *ctx, SSL_SESSION *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 1080
      start: 1076
    functionDepth: 0
    functionLinenumber: 1076
    functionLinenumberEnd: 1080
    functionName: SSL_CTX_sess_set_new_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SSL_CTX_sess_set_new_cb(SSL_CTX *ctx,\n                             int
      (*cb) (struct ssl_st *ssl, SSL_SESSION *sess))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - sess
    argTypes:
    - SSL*
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 1084
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1084
    functionName: (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)) (SSL *ssl, SSL_SESSION
      *sess)
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)) (SSL *ssl, SSL_SESSION *sess)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 1090
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1090
    functionName: SSL_CTX_sess_set_remove_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx,\n                                void
      (*cb) (SSL_CTX *ctx, SSL_SESSION *sess))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - sess
    argTypes:
    - SSL_CTX*
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 1095
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1095
    functionName: "(*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx)) (SSL_CTX *ctx,\n                                                  SSL_SESSION
      *sess)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "(*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx)) (SSL_CTX *ctx,\n                                                  SSL_SESSION
      *sess)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - "(*cb) (struct ssl_st *ssl,\n                                                 const
      unsigned char *data,\n                                                 int len,
      int *copy)"
    argTypes:
    - SSL_CTX*
    - SSL_SESSION*
    constantsTouched: []
    func_position:
      end: 1103
      start: 1097
    functionDepth: 0
    functionLinenumber: 1097
    functionLinenumberEnd: 1103
    functionName: SSL_CTX_sess_set_get_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SSL_CTX_sess_set_get_cb(SSL_CTX *ctx,\n                             SSL_SESSION
      *(*cb) (struct ssl_st *ssl,\n                                                 const
      unsigned char *data,\n                                                 int len,
      int *copy))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ssl
    - data
    - len
    - copy
    argTypes:
    - SSL*
    - unsigned char*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 1110
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1110
    functionName: "*(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx)) (SSL *ssl,\n                                                       const
      unsigned char\n                                                       *data,
      int len,\n                                                       int *copy)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SSL_SESSION
    signature: "*(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx)) (SSL *ssl,\n                                                       const
      unsigned char\n                                                       *data,
      int len,\n                                                       int *copy)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 1116
      start: 1112
    functionDepth: 0
    functionLinenumber: 1112
    functionLinenumberEnd: 1116
    functionName: SSL_CTX_set_info_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SSL_CTX_set_info_callback(SSL_CTX *ctx,\n                               void
      (*cb) (const SSL *ssl, int type, int val))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ssl
    - type
    - val
    argTypes:
    - SSL*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1121
      start: 1118
    functionDepth: 0
    functionLinenumber: 1118
    functionLinenumberEnd: 1121
    functionName: "(*SSL_CTX_get_info_callback(SSL_CTX *ctx)) (const SSL *ssl, int
      type,\n                                                 int val)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "(*SSL_CTX_get_info_callback(SSL_CTX *ctx)) (const SSL *ssl, int type,\n
      \                                                int val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 1128
      start: 1123
    functionDepth: 0
    functionLinenumber: 1123
    functionLinenumberEnd: 1128
    functionName: SSL_CTX_set_client_cert_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SSL_CTX_set_client_cert_cb(SSL_CTX *ctx,\n                                int
      (*cb) (SSL *ssl, X509 **x509,\n                                           EVP_PKEY
      **pkey))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ssl
    - x509
    - pkey
    argTypes:
    - SSL*
    - X509**
    - EVP_PKEY**
    constantsTouched: []
    func_position:
      end: 1133
      start: 1130
    functionDepth: 0
    functionLinenumber: 1130
    functionLinenumberEnd: 1133
    functionName: "(*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx)) (SSL *ssl, X509 **x509,\n
      \                                                EVP_PKEY **pkey)"
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "(*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx)) (SSL *ssl, X509 **x509,\n
      \                                                EVP_PKEY **pkey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:1138,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:1139,1
    - Dst: ENGINE_get_ssl_client_cert_function
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:1142,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:1143,1
    - Dst: ENGINE_finish
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c:1145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - e
    argTypes:
    - SSL_CTX*
    - ENGINE*
    constantsTouched: []
    func_position:
      end: 1150
      start: 1136
    functionDepth: 5
    functionLinenumber: 1136
    functionLinenumberEnd: 1150
    functionName: SSL_CTX_set_client_cert_engine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 2
    functionsReached:
    - ENGINE_finish
    - ENGINE_init
    - SSLerr
    - ENGINE_get_ssl_client_cert_function
    linkageType: ''
    returnType: int
    signature: SSL_CTX_set_client_cert_engine(SSL_CTX *ctx, ENGINE *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 1159
      start: 1153
    functionDepth: 0
    functionLinenumber: 1153
    functionLinenumberEnd: 1159
    functionName: SSL_CTX_set_cookie_generate_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx,\n                                    int
      (*cb) (SSL *ssl,\n                                               unsigned char
      *cookie,\n                                               unsigned int *cookie_len))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    constantsTouched: []
    func_position:
      end: 1167
      start: 1161
    functionDepth: 0
    functionLinenumber: 1161
    functionLinenumberEnd: 1167
    functionName: SSL_CTX_set_cookie_verify_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx,\n                                  int
      (*cb) (SSL *ssl,\n                                             const unsigned
      char *cookie,\n                                             unsigned int cookie_len))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - b
    - d
    - n
    argTypes:
    - SSL3_BUFFER*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: SSL3_BUFFER_set_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: SSL3_BUFFER_set_data(SSL3_BUFFER *b, const unsigned char *d, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - SSL3_BUFFER*
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: SSL3_BUFFER_clear
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SSL3_BUFFER_clear(SSL3_BUFFER *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - SSL3_BUFFER*
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: SSL3_BUFFER_release
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: SSL3_BUFFER_release(SSL3_BUFFER *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_rbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c:43,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c:45,1
    - Dst: ssl_allow_compression
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c:58,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c:63,1
    - Dst: RECORD_LAYER_set_packet
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c:69,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c:73,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 75
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 75
    functionName: ssl3_setup_read_buffer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - RECORD_LAYER_get_rbuf
    - RECORD_LAYER_set_packet
    - OPENSSL_malloc
    - SSL_IS_DTLS
    - ssl_allow_compression
    linkageType: ''
    returnType: int
    signature: ssl3_setup_read_buffer(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c:87,1
    - Dst: ssl_allow_compression
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c:99,1
    - Dst: RECORD_LAYER_get_wbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c:106,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c:111,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c:116,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c:125,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - s
    - numwpipes
    - len
    argTypes:
    - SSL*
    - unsigned int
    - size_t
    constantsTouched: []
    func_position:
      end: 127
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 127
    functionName: ssl3_setup_write_buffer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - memset
    - RECORD_LAYER_get_wbuf
    - OPENSSL_malloc
    - SSL_IS_DTLS
    - ssl_allow_compression
    linkageType: ''
    returnType: int
    signature: ssl3_setup_write_buffer(SSL *s, unsigned int numwpipes, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_setup_read_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c:131,1
    - Dst: ssl3_setup_write_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: ssl3_setup_buffers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c
    functionUses: 1
    functionsReached:
    - ssl3_setup_write_buffer
    - ssl3_setup_read_buffer
    linkageType: ''
    returnType: int
    signature: ssl3_setup_buffers(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_wbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c:145,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 153
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 153
    functionName: ssl3_release_write_buffer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c
    functionUses: 0
    functionsReached:
    - RECORD_LAYER_get_wbuf
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: ssl3_release_write_buffer(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_rbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c:159,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 163
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 163
    functionName: ssl3_release_read_buffer
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - RECORD_LAYER_get_rbuf
    linkageType: ''
    returnType: int
    signature: ssl3_release_read_buffer(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: n2l8
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/dtls1_bitmap.c:19,1
    - Dst: n2l8
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/dtls1_bitmap.c:20,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - unsigned char*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 36
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 36
    functionName: satsub64be
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/dtls1_bitmap.c
    functionUses: 0
    functionsReached:
    - n2l8
    linkageType: ''
    returnType: int
    signature: satsub64be(const unsigned char *v1, const unsigned char *v2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: satsub64be
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/dtls1_bitmap.c:44,1
    - Dst: SSL3_RECORD_set_seq_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/dtls1_bitmap.c:46,1
    - Dst: RECORD_LAYER_get_rrec
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/dtls1_bitmap.c:46,1
    - Dst: SSL3_RECORD_set_seq_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/dtls1_bitmap.c:55,1
    - Dst: RECORD_LAYER_get_rrec
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/dtls1_bitmap.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - s
    - bitmap
    argTypes:
    - SSL*
    - DTLS1_BITMAP*
    constantsTouched: []
    func_position:
      end: 57
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 57
    functionName: dtls1_record_replay_check
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/dtls1_bitmap.c
    functionUses: 0
    functionsReached:
    - SSL3_RECORD_set_seq_num
    - satsub64be
    - RECORD_LAYER_get_rrec
    linkageType: ''
    returnType: int
    signature: dtls1_record_replay_check(SSL *s, DTLS1_BITMAP *bitmap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: satsub64be
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/dtls1_bitmap.c:65,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/dtls1_bitmap.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - s
    - bitmap
    argTypes:
    - SSL*
    - DTLS1_BITMAP*
    constantsTouched: []
    func_position:
      end: 78
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 78
    functionName: dtls1_record_bitmap_update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/dtls1_bitmap.c
    functionUses: 0
    functionsReached:
    - satsub64be
    - memcpy
    linkageType: ''
    returnType: void
    signature: dtls1_record_bitmap_update(SSL *s, DTLS1_BITMAP *bitmap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_set_first_record
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:32,1
    - Dst: SSL3_RECORD_clear
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - rl
    - s
    argTypes:
    - RECORD_LAYER*
    - SSL*
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: RECORD_LAYER_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c
    functionUses: 1
    functionsReached:
    - SSL3_RECORD_clear
    - RECORD_LAYER_set_first_record
    linkageType: ''
    returnType: void
    signature: RECORD_LAYER_init(RECORD_LAYER *rl, SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:49,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:51,1
    - Dst: SSL3_BUFFER_clear
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:58,1
    - Dst: ssl3_release_write_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:59,1
    - Dst: SSL3_RECORD_clear
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:61,1
    - Dst: RECORD_LAYER_reset_read_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:63,1
    - Dst: RECORD_LAYER_reset_write_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:64,1
    - Dst: DTLS_RECORD_LAYER_clear
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    constantsTouched: []
    func_position:
      end: 68
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 68
    functionName: RECORD_LAYER_clear
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c
    functionUses: 3
    functionsReached:
    - RECORD_LAYER_reset_read_sequence
    - SSL3_RECORD_clear
    - SSL3_BUFFER_clear
    - RECORD_LAYER_reset_write_sequence
    - memset
    - DTLS_RECORD_LAYER_clear
    - ssl3_release_write_buffer
    linkageType: ''
    returnType: void
    signature: RECORD_LAYER_clear(RECORD_LAYER *rl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_BUFFER_is_initialised
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:72,1
    - Dst: ssl3_release_read_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:73,1
    - Dst: ssl3_release_write_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:75,1
    - Dst: SSL3_RECORD_release
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: RECORD_LAYER_release
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c
    functionUses: 1
    functionsReached:
    - ssl3_release_write_buffer
    - SSL3_BUFFER_is_initialised
    - SSL3_RECORD_release
    - ssl3_release_read_buffer
    linkageType: ''
    returnType: void
    signature: RECORD_LAYER_release(RECORD_LAYER *rl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: RECORD_LAYER_read_pending
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c
    functionUses: 2
    functionsReached:
    - SSL3_BUFFER_get_left
    linkageType: ''
    returnType: int
    signature: RECORD_LAYER_read_pending(const RECORD_LAYER *rl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: RECORD_LAYER_write_pending
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c
    functionUses: 2
    functionsReached:
    - SSL3_BUFFER_get_left
    linkageType: ''
    returnType: int
    signature: RECORD_LAYER_write_pending(const RECORD_LAYER *rl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_BUFFER_is_initialised
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:95,1
    - Dst: ssl3_setup_read_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:96,1
    - Dst: SSL3_BUFFER_get_buf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:100,1
    - Dst: SSL3_BUFFER_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - rl
    - buf
    - len
    argTypes:
    - RECORD_LAYER*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 104
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 104
    functionName: RECORD_LAYER_set_data
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c
    functionUses: 0
    functionsReached:
    - SSL3_BUFFER_get_buf
    - SSL3_BUFFER_is_initialised
    - ssl3_setup_read_buffer
    - SSL3_BUFFER_set_data
    linkageType: ''
    returnType: int
    signature: RECORD_LAYER_set_data(RECORD_LAYER *rl, const unsigned char *buf, int
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: RECORD_LAYER_reset_read_sequence
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c
    functionUses: 3
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: RECORD_LAYER_reset_read_sequence(RECORD_LAYER *rl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: RECORD_LAYER_reset_write_sequence
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c
    functionUses: 3
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: RECORD_LAYER_reset_write_sequence(RECORD_LAYER *rl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_numrpipes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:124,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:125,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 132
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 132
    functionName: ssl3_pending
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c
    functionUses: 0
    functionsReached:
    - SSL3_RECORD_get_length
    - RECORD_LAYER_get_numrpipes
    - SSL3_RECORD_get_type
    linkageType: ''
    returnType: int
    signature: ssl3_pending(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - len
    argTypes:
    - SSL_CTX*
    - size_t
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: SSL_CTX_set_default_read_buffer_len
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: SSL_CTX_set_default_read_buffer_len(SSL_CTX *ctx, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_BUFFER_set_default_len
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:141,1
    - Dst: RECORD_LAYER_get_rbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - SSL*
    - size_t
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: SSL_set_default_read_buffer_len
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c
    functionUses: 1
    functionsReached:
    - SSL3_BUFFER_set_default_len
    - RECORD_LAYER_get_rbuf
    linkageType: ''
    returnType: void
    signature: SSL_set_default_read_buffer_len(SSL *s, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 156
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 156
    functionName: SSL_rstate_string_long
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*SSL_rstate_string_long(const SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 170
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 170
    functionName: SSL_rstate_string
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: '*SSL_rstate_string(const SSL *s)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_setup_read_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:196,1
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:224,1
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:240,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:250,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:268,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:273,1
    - Dst: clear_sys_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:290,1
    - Dst: BIO_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:293,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:295,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:301,1
    - Dst: ssl3_release_read_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:303,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:312,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 80
    argCount: 5
    argNames:
    - s
    - n
    - max
    - extend
    - clearold
    argTypes:
    - SSL*
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 324
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 324
    functionName: ssl3_read_n
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c
    functionUses: 0
    functionsReached:
    - clear_sys_error
    - memmove
    - SSLerr
    - ssl3_setup_read_buffer
    - ssl3_release_read_buffer
    - BIO_read
    - SSL_IS_DTLS
    linkageType: ''
    returnType: int
    signature: ssl3_read_n(SSL *s, int n, int max, int extend, int clearold)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:343,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:359,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:365,1
    - Dst: ossl_statem_get_in_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:365,1
    - Dst: SSL*::handshake_func
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:366,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:370,1
    - Dst: ssl3_write_pending
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:380,1
    - Dst: SSL_WRITE_ETM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:398,1
    - Dst: SSL_USE_EXPLICIT_IV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:398,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:399,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:399,1
    - Dst: ssl3_release_write_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:410,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:412,1
    - Dst: ssl3_setup_write_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:421,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:422,1
    - Dst: ssl3_release_write_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:427,1
    - Dst: ssl3_release_write_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:435,1
    - Dst: SSL*::method::ssl_dispatch_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:440,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:452,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:462,1
    - Dst: ssl3_release_write_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:468,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:476,1
    - Dst: ssl3_write_pending
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:495,1
    - Dst: BIO_should_retry
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:497,1
    - Dst: ssl3_release_write_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:499,1
    - Dst: ssl3_release_write_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:506,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:515,1
    - Dst: ssl3_release_write_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:516,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:536,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:541,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:541,1
    - Dst: SSL_USE_EXPLICIT_IV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:543,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:551,1
    - Dst: do_ssl3_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:585,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:602,1
    - Dst: ssl3_release_write_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:603,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 160
    argCount: 4
    argNames:
    - s
    - type
    - buf_
    - len
    argTypes:
    - SSL*
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 611
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 611
    functionName: ssl3_write_bytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_cipher
    - SSL*::method::ssl_dispatch_alert
    - SSL*::handshake_func
    - SSLerr
    - ssl3_write_pending
    - ossl_statem_get_in_handshake
    - BIO_should_retry
    - SSL_in_init
    - SSL_USE_EXPLICIT_IV
    - do_ssl3_write
    - memcpy
    - SSL_WRITE_ETM
    - EVP_CIPHER_flags
    - ssl3_setup_write_buffer
    - ssl3_release_write_buffer
    - EVP_CIPHER_CTX_ctrl
    - SSL_IS_DTLS
    linkageType: ''
    returnType: int
    signature: ssl3_write_bytes(SSL *s, int type, const void *buf_, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_write_pending
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:634,1
    - Dst: ssl3_write_pending
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:635,1
    - Dst: SSL*::method::ssl_dispatch_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:639,1
    - Dst: ssl3_setup_write_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:646,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:655,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:659,1
    - Dst: do_ssl3_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:682,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:689,1
    - Dst: SSL3_BUFFER_get_buf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:705,1
    - Dst: SSL3_BUFFER_get_buf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:708,1
    - Dst: SSL3_BUFFER_set_offset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:709,1
    - Dst: SSL3_BUFFER_get_buf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:712,1
    - Dst: SSL3_BUFFER_get_offset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:712,1
    - Dst: SSL3_BUFFER_get_buf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:718,1
    - Dst: SSL3_BUFFER_get_buf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:721,1
    - Dst: SSL3_BUFFER_set_offset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:722,1
    - Dst: SSL_USE_EXPLICIT_IV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:727,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:730,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:746,1
    - Dst: SSL3_RECORD_set_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:750,1
    - Dst: SSL_get_state
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:757,1
    - Dst: TLS1_get_version
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:758,1
    - Dst: SSL3_RECORD_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:768,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:769,1
    - Dst: SSL3_RECORD_set_input
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:770,1
    - Dst: ssl3_do_compress
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:779,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:780,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:784,1
    - Dst: SSL3_RECORD_reset_input
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:785,1
    - Dst: SSL_WRITE_ETM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:794,1
    - Dst: SSL*::method::ssl3_enc::mac
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:795,1
    - Dst: SSL3_RECORD_add_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:799,1
    - Dst: SSL3_RECORD_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:802,1
    - Dst: SSL3_RECORD_reset_input
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:803,1
    - Dst: SSL3_RECORD_add_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:809,1
    - Dst: SSL*::method::ssl3_enc::enc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:813,1
    - Dst: SSL_WRITE_ETM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:817,1
    - Dst: SSL*::method::ssl3_enc::mac
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:818,1
    - Dst: SSL3_RECORD_add_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:821,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:825,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:825,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:828,1
    - Dst: SSL3_RECORD_set_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:835,1
    - Dst: SSL3_RECORD_add_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:837,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:846,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:849,1
    - Dst: SSL3_BUFFER_set_left
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:853,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:854,1
    - Dst: ssl3_write_pending
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:867,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 141
    argCount: 6
    argNames:
    - s
    - type
    - buf
    - pipelens
    - numpipes
    - create_empty_fragment
    argTypes:
    - SSL*
    - int
    - unsigned char*
    - unsigned int*
    - unsigned int
    - int
    constantsTouched: []
    func_position:
      end: 870
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 870
    functionName: do_ssl3_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c
    functionUses: 3
    functionsReached:
    - SSL*::method::ssl_dispatch_alert
    - SSLerr
    - SSL3_RECORD_set_length
    - TLS1_get_version
    - ssl3_do_compress
    - SSL*::method::ssl3_enc::enc
    - SSL_USE_EXPLICIT_IV
    - do_ssl3_write
    - SSL_get_state
    - SSL3_RECORD_add_length
    - SSL3_RECORD_set_input
    - SSL*::msg_callback
    - SSL3_RECORD_set_type
    - EVP_MD_CTX_md
    - SSL3_BUFFER_set_left
    - SSL_WRITE_ETM
    - SSL*::method::ssl3_enc::mac
    - SSL3_RECORD_set_data
    - s2n
    - ssl3_write_pending
    - SSL3_RECORD_get_length
    - memset
    - RECORD_LAYER_write_pending
    - EVP_MD_CTX_size
    - SSL3_BUFFER_get_buf
    - SSL3_RECORD_reset_input
    - SSL3_BUFFER_get_offset
    - memcpy
    - ssl3_setup_write_buffer
    - EVP_CIPHER_CTX_iv_length
    - SSL3_BUFFER_set_offset
    linkageType: ''
    returnType: int
    signature: "do_ssl3_write(SSL *s, int type, const unsigned char *buf,\n                  unsigned
      int *pipelens, unsigned int numpipes,\n                  int create_empty_fragment)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:888,1
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:894,1
    - Dst: clear_sys_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:899,1
    - Dst: BIO_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:902,1
    - Dst: SSL3_BUFFER_get_buf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:903,1
    - Dst: SSL3_BUFFER_get_offset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:904,1
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:905,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:907,1
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:910,1
    - Dst: SSL3_BUFFER_set_left
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:911,1
    - Dst: SSL3_BUFFER_add_offset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:912,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:918,1
    - Dst: SSL3_BUFFER_set_left
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:923,1
    - Dst: SSL3_BUFFER_add_offset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:927,1
    - Dst: SSL3_BUFFER_add_left
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:928,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 4
    argNames:
    - s
    - type
    - buf
    - len
    argTypes:
    - SSL*
    - int
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 930
      start: 876
    functionDepth: 1
    functionLinenumber: 876
    functionLinenumberEnd: 930
    functionName: ssl3_write_pending
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c
    functionUses: 2
    functionsReached:
    - clear_sys_error
    - SSL3_BUFFER_get_buf
    - SSLerr
    - SSL3_BUFFER_add_left
    - SSL3_BUFFER_add_offset
    - SSL3_BUFFER_set_left
    - SSL3_BUFFER_get_left
    - SSL3_BUFFER_get_offset
    - BIO_write
    - SSL_IS_DTLS
    linkageType: ''
    returnType: int
    signature: "ssl3_write_pending(SSL *s, int type, const unsigned char *buf,\n                       unsigned
      int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_BUFFER_is_initialised
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:972,1
    - Dst: ssl3_setup_read_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:974,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:982,1
    - Dst: ossl_statem_get_in_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1015,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1015,1
    - Dst: SSL*::handshake_func
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1017,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1021,1
    - Dst: RECORD_LAYER_get_numrpipes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1036,1
    - Dst: ssl3_get_record
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1041,1
    - Dst: RECORD_LAYER_get_numrpipes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1044,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1048,1
    - Dst: SSL3_RECORD_is_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1054,1
    - Dst: RECORD_LAYER_set_numrpipes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1057,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1068,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1069,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1076,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1078,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1087,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1092,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1093,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1104,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1107,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1112,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1115,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1120,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1127,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1128,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1132,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1136,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1137,1
    - Dst: SSL3_RECORD_sub_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1139,1
    - Dst: SSL3_RECORD_add_off
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1140,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1141,1
    - Dst: SSL3_RECORD_set_off
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1143,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1144,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1147,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1148,1
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1161,1
    - Dst: ssl3_release_read_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1162,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1183,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1197,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1210,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1214,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1222,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1223,1
    - Dst: SSL3_RECORD_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1228,1
    - Dst: SSL3_RECORD_get_off
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1228,1
    - Dst: SSL3_RECORD_add_off
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1229,1
    - Dst: SSL3_RECORD_add_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1230,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1234,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1257,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1262,1
    - Dst: SSL_is_init_finished
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1266,1
    - Dst: ssl3_renegotiate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1269,1
    - Dst: ssl3_renegotiate_check
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1270,1
    - Dst: SSL*::handshake_func
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1271,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1275,1
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1280,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1290,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1291,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1292,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1297,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1301,1
    - Dst: SSL_is_init_finished
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1315,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1322,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1323,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1324,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1334,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1345,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1350,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1355,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1373,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1385,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1386,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1387,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1389,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1390,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1394,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1404,1
    - Dst: SSL3_RECORD_set_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1405,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1409,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1411,1
    - Dst: ossl_statem_get_in_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1419,1
    - Dst: SSL_is_init_finished
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1420,1
    - Dst: ossl_statem_set_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1422,1
    - Dst: SSL*::handshake_func
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1426,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1430,1
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1435,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1445,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1446,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1447,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1454,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1464,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1475,1
    - Dst: ossl_statem_app_data_allowed
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1485,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1490,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1497,1
    CyclomaticComplexity: 134
    EdgeCount: 134
    ICount: 325
    argCount: 6
    argNames:
    - s
    - type
    - recvd_type
    - buf
    - len
    - peek
    argTypes:
    - SSL*
    - int
    - int*
    - unsigned char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1499
      start: 961
    functionDepth: 2
    functionLinenumber: 961
    functionLinenumberEnd: 1499
    functionName: ssl3_read_bytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - SSL3_RECORD_set_length
    - ssl3_send_alert
    - ssl3_setup_read_buffer
    - SSL_in_init
    - ssl3_release_read_buffer
    - BIO_set_retry_read
    - SSL3_RECORD_add_length
    - SSL3_RECORD_get_type
    - RECORD_LAYER_set_numrpipes
    - SSL_is_init_finished
    - BIO_clear_retry_flags
    - SSL3_BUFFER_get_left
    - RECORD_LAYER_get_numrpipes
    - SSL3_RECORD_is_read
    - ssl3_renegotiate_check
    - SSL3_RECORD_add_off
    - SSL3_RECORD_sub_length
    - BIO_snprintf
    - SSL3_RECORD_get_length
    - SSL3_RECORD_set_off
    - cb
    - ERR_add_error_data
    - SSL3_BUFFER_is_initialised
    - SSL_CTX_remove_session
    - ossl_statem_app_data_allowed
    - SSL*::handshake_func
    - ssl3_renegotiate
    - ossl_statem_get_in_handshake
    - SSL3_RECORD_get_data
    - SSL_get_rbio
    - memcpy
    - SSL3_RECORD_set_read
    - SSL3_RECORD_get_off
    - ssl3_get_record
    - ossl_statem_set_in_init
    - SSL*::msg_callback
    linkageType: ''
    returnType: int
    signature: "ssl3_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf,\n
      \                   int len, int peek)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - seq
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 1510
      start: 1501
    functionDepth: 0
    functionLinenumber: 1501
    functionLinenumberEnd: 1510
    functionName: ssl3_record_sequence_update
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ssl3_record_sequence_update(unsigned char *seq)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_RECORD_is_sslv2_record
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    constantsTouched: []
    func_position:
      end: 1519
      start: 1516
    functionDepth: 0
    functionLinenumber: 1516
    functionLinenumberEnd: 1519
    functionName: RECORD_LAYER_is_sslv2_record
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c
    functionUses: 0
    functionsReached:
    - SSL3_RECORD_is_sslv2_record
    linkageType: ''
    returnType: int
    signature: RECORD_LAYER_is_sslv2_record(RECORD_LAYER *rl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    constantsTouched: []
    func_position:
      end: 1527
      start: 1524
    functionDepth: 0
    functionLinenumber: 1524
    functionLinenumberEnd: 1527
    functionName: RECORD_LAYER_get_rrec_length
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c
    functionUses: 0
    functionsReached:
    - SSL3_RECORD_get_length
    linkageType: ''
    returnType: unsigned int
    signature: RECORD_LAYER_get_rrec_length(RECORD_LAYER *rl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - r
    - num_recs
    argTypes:
    - SSL3_RECORD*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 48
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 48
    functionName: SSL3_RECORD_clear
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: SSL3_RECORD_clear(SSL3_RECORD *r, unsigned int num_recs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - r
    - num_recs
    argTypes:
    - SSL3_RECORD*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: SSL3_RECORD_release
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: SSL3_RECORD_release(SSL3_RECORD *r, unsigned int num_recs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - seq_num
    argTypes:
    - SSL3_RECORD*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: SSL3_RECORD_set_seq_num
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: SSL3_RECORD_set_seq_num(SSL3_RECORD *r, const unsigned char *seq_num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_rbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:75,1
    - Dst: SSL3_BUFFER_get_buf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:77,1
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:81,1
    - Dst: SSL3_BUFFER_get_offset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:86,1
    - Dst: n2s
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 102
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 102
    functionName: ssl3_record_app_data_waiting
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c
    functionUses: 0
    functionsReached:
    - SSL3_BUFFER_get_buf
    - RECORD_LAYER_get_rbuf
    - SSL3_BUFFER_get_left
    - SSL3_BUFFER_get_offset
    - n2s
    linkageType: ''
    returnType: int
    signature: ssl3_record_app_data_waiting(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_rrec
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:142,1
    - Dst: RECORD_LAYER_get_rbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:143,1
    - Dst: RECORD_LAYER_get_rstate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:151,1
    - Dst: RECORD_LAYER_get_packet_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:152,1
    - Dst: ssl3_read_n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:154,1
    - Dst: SSL3_BUFFER_get_len
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:155,1
    - Dst: RECORD_LAYER_set_rstate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:159,1
    - Dst: RECORD_LAYER_get_packet
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:161,1
    - Dst: RECORD_LAYER_is_first_record
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:166,1
    - Dst: SSL3_BUFFER_get_len
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:182,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:185,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:191,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:197,1
    - Dst: n2s
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:206,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:210,1
    - Dst: RECORD_LAYER_is_first_record
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:234,1
    - Dst: RECORD_LAYER_get_packet
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:237,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:238,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:239,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:240,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:241,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:242,1
    - Dst: strncmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:244,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:245,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:251,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:255,1
    - Dst: SSL3_BUFFER_get_len
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:263,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:265,1
    - Dst: ssl3_read_n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:287,1
    - Dst: RECORD_LAYER_set_rstate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:293,1
    - Dst: RECORD_LAYER_get_packet
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:302,1
    - Dst: RECORD_LAYER_get_packet
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:305,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:323,1
    - Dst: RECORD_LAYER_reset_packet_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:337,1
    - Dst: RECORD_LAYER_clear_first_record
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:338,1
    - Dst: SSL_USE_EXPLICIT_IV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:341,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:343,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:343,1
    - Dst: ssl3_record_app_data_waiting
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:345,1
    - Dst: SSL_READ_ETM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:351,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:354,1
    - Dst: assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:355,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:358,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:366,1
    - Dst: SSL*::method::ssl3_enc::mac
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:371,1
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:372,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:374,1
    - Dst: SSL*::method::ssl3_enc::enc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:381,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:390,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:394,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:398,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:400,1
    - Dst: SSL_READ_ETM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:406,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:406,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:411,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:412,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:423,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:426,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:430,1
    - Dst: ssl3_cbc_copy_mac
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:438,1
    - Dst: SSL*::method::ssl3_enc::mac
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:450,1
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:452,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:468,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:478,1
    - Dst: ssl3_do_uncompress
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:481,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:483,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:490,1
    - Dst: RECORD_LAYER_inc_empty_record_count
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:505,1
    - Dst: RECORD_LAYER_get_empty_record_count
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:506,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:509,1
    - Dst: RECORD_LAYER_reset_empty_record_count
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:513,1
    - Dst: RECORD_LAYER_set_numrpipes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:517,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:521,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 225
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 524
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 524
    functionName: ssl3_get_record
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c
    functionUses: 1
    functionsReached:
    - RECORD_LAYER_is_first_record
    - SSLerr
    - SSL_READ_ETM
    - ssl3_send_alert
    - SSL*::method::ssl3_enc::enc
    - RECORD_LAYER_get_rbuf
    - SSL_USE_EXPLICIT_IV
    - RECORD_LAYER_reset_packet_length
    - printf
    - RECORD_LAYER_reset_empty_record_count
    - RECORD_LAYER_set_numrpipes
    - CRYPTO_memcmp
    - RECORD_LAYER_get_packet
    - EVP_MD_CTX_md
    - ssl3_record_app_data_waiting
    - SSL*::method::ssl3_enc::mac
    - RECORD_LAYER_get_rstate
    - ssl3_read_n
    - RECORD_LAYER_get_empty_record_count
    - EVP_CIPHER_CTX_mode
    - SSL3_BUFFER_get_len
    - RECORD_LAYER_set_rstate
    - EVP_CIPHER_flags
    - ssl3_cbc_copy_mac
    - assert
    - RECORD_LAYER_inc_empty_record_count
    - EVP_CIPHER_CTX_cipher
    - EVP_MD_CTX_size
    - OPENSSL_assert
    - RECORD_LAYER_clear_first_record
    - ssl3_do_uncompress
    - strncmp
    - RECORD_LAYER_get_packet_length
    - n2s
    - RECORD_LAYER_get_rrec
    - SSL*::msg_callback
    linkageType: ''
    returnType: int
    signature: ssl3_get_record(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:533,1
    - Dst: COMP_expand_block
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:538,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ssl
    - rr
    argTypes:
    - SSL*
    - SSL3_RECORD*
    constantsTouched: []
    func_position:
      end: 547
      start: 526
    functionDepth: 2
    functionLinenumber: 526
    functionLinenumberEnd: 547
    functionName: ssl3_do_uncompress
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - COMP_expand_block
    linkageType: ''
    returnType: int
    signature: ssl3_do_uncompress(SSL *ssl, SSL3_RECORD *rr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: COMP_compress_block
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ssl
    - wr
    argTypes:
    - SSL*
    - SSL3_RECORD*
    constantsTouched: []
    func_position:
      end: 565
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 565
    functionName: ssl3_do_compress
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c
    functionUses: 1
    functionsReached:
    - COMP_compress_block
    linkageType: ''
    returnType: int
    signature: ssl3_do_compress(SSL *ssl, SSL3_RECORD *wr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:596,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:602,1
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:606,1
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:610,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:623,1
    - Dst: EVP_Cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:634,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:637,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:638,1
    - Dst: ssl3_cbc_remove_padding
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:640,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 4
    argNames:
    - s
    - inrecs
    - n_recs
    - send
    argTypes:
    - SSL*
    - SSL3_RECORD*
    - unsigned int
    - int
    constantsTouched: []
    func_position:
      end: 643
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 643
    functionName: ssl3_enc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_cipher
    - ssl3_cbc_remove_padding
    - EVP_CIPHER_CTX_block_size
    - EVP_MD_CTX_size
    - memmove
    - memset
    - EVP_MD_CTX_md
    - EVP_Cipher
    linkageType: ''
    returnType: int
    signature: ssl3_enc(SSL *s, SSL3_RECORD *inrecs, unsigned int n_recs, int send)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:665,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:667,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:674,1
    - Dst: SSL_USE_EXPLICIT_IV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:676,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:677,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:678,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:688,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:690,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:691,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:698,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:700,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:706,1
    - Dst: memmove
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:711,1
    - Dst: EVP_CIPHER_block_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:716,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:716,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:719,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:719,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:725,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:732,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:732,1
    - Dst: RECORD_LAYER_get_write_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:736,1
    - Dst: RECORD_LAYER_get_read_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:737,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:739,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:743,1
    - Dst: DTLS_RECORD_LAYER_get_w_epoch
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:743,1
    - Dst: DTLS_RECORD_LAYER_get_r_epoch
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:744,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:745,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:746,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:748,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:761,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:796,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:798,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:804,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:806,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:808,1
    - Dst: EVP_Cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:813,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:814,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:814,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:820,1
    - Dst: EVP_CIPHER_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:826,1
    - Dst: SSL_READ_ETM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:836,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:836,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:837,1
    - Dst: tls1_cbc_remove_padding
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:841,1
    - Dst: constant_time_select_int
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:849,1
    - Dst: constant_time_eq_int
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:849,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 142
    argCount: 4
    argNames:
    - s
    - recs
    - n_recs
    - send
    argTypes:
    - SSL*
    - SSL3_RECORD*
    - unsigned int
    - int
    constantsTouched: []
    func_position:
      end: 860
      start: 655
    functionDepth: 4
    functionLinenumber: 655
    functionLinenumberEnd: 860
    functionName: tls1_enc
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - memmove
    - SSLerr
    - SSL_READ_ETM
    - tls1_cbc_remove_padding
    - EVP_CIPHER_block_size
    - SSL_USE_EXPLICIT_IV
    - constant_time_select_int
    - constant_time_eq_int
    - EVP_MD_CTX_md
    - EVP_Cipher
    - EVP_CIPHER_iv_length
    - EVP_CIPHER_mode
    - s2n
    - DTLS_RECORD_LAYER_get_r_epoch
    - RECORD_LAYER_get_write_sequence
    - DTLS_RECORD_LAYER_get_w_epoch
    - EVP_CIPHER_flags
    - EVP_CIPHER_CTX_ctrl
    - EVP_CIPHER_CTX_cipher
    - EVP_MD_CTX_size
    - OPENSSL_assert
    - RECORD_LAYER_get_read_sequence
    - memcpy
    - SSL_IS_DTLS
    linkageType: ''
    returnType: int
    signature: tls1_enc(SSL *s, SSL3_RECORD *recs, unsigned int n_recs, int send)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_write_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:873,1
    - Dst: RECORD_LAYER_get_read_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:877,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:881,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:888,1
    - Dst: ssl3_cbc_record_digest_supported
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:889,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:906,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:908,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:910,1
    - Dst: ssl3_cbc_digest_record
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:917,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:926,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:933,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:934,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:935,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:936,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:937,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:938,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:939,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:940,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:941,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:942,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:943,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:944,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:945,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:946,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:947,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:952,1
    - Dst: ssl3_record_sequence_update
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:955,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 4
    argNames:
    - ssl
    - rec
    - md
    - send
    argTypes:
    - SSL*
    - SSL3_RECORD*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 957
      start: 862
    functionDepth: 5
    functionLinenumber: 862
    functionLinenumberEnd: 957
    functionName: n_ssl3_mac
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_mode
    - EVP_MD_CTX_size
    - EVP_MD_CTX_copy_ex
    - s2n
    - EVP_DigestFinal_ex
    - RECORD_LAYER_get_read_sequence
    - EVP_DigestUpdate
    - ssl3_record_sequence_update
    - ssl3_cbc_digest_record
    - RECORD_LAYER_get_write_sequence
    - memcpy
    - EVP_MD_CTX_new
    - EVP_MD_CTX_reset
    - EVP_MD_CTX_free
    - ssl3_cbc_record_digest_supported
    linkageType: ''
    returnType: int
    signature: n_ssl3_mac(SSL *ssl, SSL3_RECORD *rec, unsigned char *md, int send)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_write_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:972,1
    - Dst: RECORD_LAYER_get_read_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:975,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:979,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:980,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:987,1
    - Dst: EVP_MD_CTX_copy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:988,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:993,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:996,1
    - Dst: DTLS_RECORD_LAYER_get_w_epoch
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:996,1
    - Dst: DTLS_RECORD_LAYER_get_r_epoch
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:997,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:998,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1000,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1002,1
    - Dst: SSL_READ_ETM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1010,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1011,1
    - Dst: ssl3_cbc_record_digest_supported
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1012,1
    - Dst: ssl3_cbc_digest_record
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1019,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1025,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1029,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1030,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1031,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1032,1
    - Dst: SSL_READ_ETM
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1035,1
    - Dst: FIPS_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1035,1
    - Dst: tls_fips_digest_extra
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1036,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1039,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1044,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1047,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1051,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1052,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1054,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1058,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1059,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1063,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1074,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1075,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 69
    argCount: 4
    argNames:
    - ssl
    - rec
    - md
    - send
    argTypes:
    - SSL*
    - SSL3_RECORD*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 1079
      start: 959
    functionDepth: 5
    functionLinenumber: 959
    functionLinenumberEnd: 1079
    functionName: tls1_mac
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c
    functionUses: 0
    functionsReached:
    - SSL_READ_ETM
    - ssl3_cbc_digest_record
    - EVP_MD_CTX_free
    - fprintf
    - EVP_MD_CTX_copy
    - EVP_DigestSignUpdate
    - ssl3_cbc_record_digest_supported
    - FIPS_mode
    - EVP_CIPHER_CTX_mode
    - s2n
    - DTLS_RECORD_LAYER_get_r_epoch
    - tls_fips_digest_extra
    - RECORD_LAYER_get_write_sequence
    - DTLS_RECORD_LAYER_get_w_epoch
    - EVP_MD_CTX_size
    - OPENSSL_assert
    - RECORD_LAYER_get_read_sequence
    - EVP_MD_CTX_new
    - memcpy
    - EVP_DigestSignFinal
    - SSL_IS_DTLS
    linkageType: ''
    returnType: int
    signature: tls1_mac(SSL *ssl, SSL3_RECORD *rec, unsigned char *md, int send)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_ge
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1104,1
    - Dst: constant_time_ge
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1106,1
    - Dst: constant_time_select_int
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - rec
    - block_size
    - mac_size
    argTypes:
    - SSL3_RECORD*
    - unsigned
    - unsigned
    constantsTouched: []
    func_position:
      end: 1109
      start: 1091
    functionDepth: 3
    functionLinenumber: 1091
    functionLinenumberEnd: 1109
    functionName: ssl3_cbc_remove_padding
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c
    functionUses: 1
    functionsReached:
    - constant_time_select_int
    - constant_time_ge
    linkageType: ''
    returnType: int
    signature: "ssl3_cbc_remove_padding(SSL3_RECORD *rec,\n                            unsigned
      block_size, unsigned mac_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_USE_EXPLICIT_IV
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1131,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1148,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1148,1
    - Dst: constant_time_ge
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1155,1
    - Dst: constant_time_eq
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1183,1
    - Dst: constant_time_select_int
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - s
    - rec
    - block_size
    - mac_size
    argTypes:
    - SSL*
    - SSL3_RECORD*
    - unsigned
    - unsigned
    constantsTouched: []
    func_position:
      end: 1187
      start: 1124
    functionDepth: 3
    functionLinenumber: 1124
    functionLinenumberEnd: 1187
    functionName: tls1_cbc_remove_padding
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_CTX_cipher
    - constant_time_eq
    - constant_time_ge
    - SSL_USE_EXPLICIT_IV
    - constant_time_select_int
    - EVP_CIPHER_flags
    linkageType: ''
    returnType: int
    signature: "tls1_cbc_remove_padding(const SSL *s,\n                            SSL3_RECORD
      *rec,\n                            unsigned block_size, unsigned mac_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1233,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1234,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1246,1
    - Dst: constant_time_lt
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1256,1
    - Dst: constant_time_lt
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1266,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1269,1
    - Dst: constant_time_lt
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1271,1
    - Dst: constant_time_eq_8
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1274,1
    - Dst: constant_time_lt
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1276,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - out
    - rec
    - md_size
    argTypes:
    - unsigned char*
    - SSL3_RECORD*
    - unsigned
    constantsTouched: []
    func_position:
      end: 1279
      start: 1209
    functionDepth: 4
    functionLinenumber: 1209
    functionLinenumberEnd: 1279
    functionName: ssl3_cbc_copy_mac
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c
    functionUses: 1
    functionsReached:
    - constant_time_eq_8
    - constant_time_lt
    - memset
    - OPENSSL_assert
    linkageType: ''
    returnType: void
    signature: "ssl3_cbc_copy_mac(unsigned char *out,\n                       const
      SSL3_RECORD *rec, unsigned md_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_rrec
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1290,1
    - Dst: RECORD_LAYER_get_packet
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1297,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1314,1
    - Dst: SSL*::method::ssl3_enc::enc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1322,1
    - Dst: RECORD_LAYER_reset_packet_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1332,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1336,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1340,1
    - Dst: printf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1342,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1347,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1351,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1352,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1362,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1365,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1369,1
    - Dst: ssl3_cbc_copy_mac
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1377,1
    - Dst: SSL*::method::ssl3_enc::mac
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1389,1
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1391,1
    - Dst: RECORD_LAYER_reset_packet_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1400,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1408,1
    - Dst: ssl3_do_uncompress
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1412,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1414,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1421,1
    - Dst: RECORD_LAYER_reset_packet_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1436,1
    - Dst: dtls1_record_bitmap_update
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1439,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1444,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 83
    argCount: 2
    argNames:
    - s
    - bitmap
    argTypes:
    - SSL*
    - DTLS1_BITMAP*
    constantsTouched: []
    func_position:
      end: 1447
      start: 1281
    functionDepth: 5
    functionLinenumber: 1281
    functionLinenumberEnd: 1447
    functionName: dtls1_process_record
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_mode
    - EVP_MD_CTX_size
    - SSLerr
    - OPENSSL_assert
    - CRYPTO_memcmp
    - RECORD_LAYER_get_packet
    - SSL*::method::ssl3_enc::enc
    - ssl3_do_uncompress
    - ssl3_send_alert
    - EVP_MD_CTX_md
    - RECORD_LAYER_reset_packet_length
    - printf
    - dtls1_record_bitmap_update
    - SSL*::method::ssl3_enc::mac
    - ssl3_cbc_copy_mac
    - RECORD_LAYER_get_rrec
    linkageType: ''
    returnType: int
    signature: dtls1_process_record(SSL *s, DTLS1_BITMAP *bitmap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RECORD_LAYER_get_rrec
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1477,1
    - Dst: dtls1_process_buffered_records
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1484,1
    - Dst: dtls1_get_processed_record
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1488,1
    - Dst: RECORD_LAYER_get_rstate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1494,1
    - Dst: RECORD_LAYER_get_packet_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1495,1
    - Dst: ssl3_read_n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1496,1
    - Dst: SSL3_BUFFER_get_len
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1497,1
    - Dst: RECORD_LAYER_get_packet_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1503,1
    - Dst: RECORD_LAYER_reset_packet_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1505,1
    - Dst: RECORD_LAYER_set_rstate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1509,1
    - Dst: RECORD_LAYER_get_packet
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1511,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1514,1
    - Dst: n2s
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1524,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1526,1
    - Dst: RECORD_LAYER_get_read_sequence
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1526,1
    - Dst: n2s
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1529,1
    - Dst: RECORD_LAYER_reset_packet_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1536,1
    - Dst: RECORD_LAYER_reset_packet_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1544,1
    - Dst: RECORD_LAYER_reset_packet_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1551,1
    - Dst: RECORD_LAYER_get_packet_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1561,1
    - Dst: ssl3_read_n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1564,1
    - Dst: RECORD_LAYER_reset_packet_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1568,1
    - Dst: RECORD_LAYER_set_rstate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1578,1
    - Dst: dtls1_get_bitmap
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1581,1
    - Dst: RECORD_LAYER_reset_packet_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1584,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1589,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1589,1
    - Dst: dtls1_record_replay_check
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1596,1
    - Dst: RECORD_LAYER_reset_packet_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1598,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1615,1
    - Dst: ossl_statem_get_in_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1615,1
    - Dst: dtls1_buffer_record
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1616,1
    - Dst: DTLS_RECORD_LAYER_get_unprocessed_rcds
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1617,1
    - Dst: RECORD_LAYER_reset_packet_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1622,1
    - Dst: dtls1_process_record
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1626,1
    - Dst: RECORD_LAYER_reset_packet_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c:1628,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 96
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1634
      start: 1467
    functionDepth: 6
    functionLinenumber: 1467
    functionLinenumberEnd: 1634
    functionName: dtls1_get_record
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c
    functionUses: 0
    functionsReached:
    - SSL_in_init
    - RECORD_LAYER_reset_packet_length
    - dtls1_get_bitmap
    - RECORD_LAYER_get_packet
    - dtls1_record_replay_check
    - RECORD_LAYER_get_rstate
    - ssl3_read_n
    - SSL3_BUFFER_get_len
    - BIO_dgram_is_sctp
    - dtls1_process_buffered_records
    - DTLS_RECORD_LAYER_get_unprocessed_rcds
    - RECORD_LAYER_set_rstate
    - dtls1_get_processed_record
    - ossl_statem_get_in_handshake
    - RECORD_LAYER_get_read_sequence
    - SSL_get_rbio
    - memcpy
    - dtls1_buffer_record
    - RECORD_LAYER_get_packet_length
    - n2s
    - RECORD_LAYER_get_rrec
    - dtls1_process_record
    - SSL*::msg_callback
    linkageType: ''
    returnType: int
    signature: dtls1_get_record(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:22,1
    - Dst: pqueue_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:27,1
    - Dst: pqueue_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:28,1
    - Dst: pqueue_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:29,1
    - Dst: pqueue_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:33,1
    - Dst: pqueue_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:34,1
    - Dst: pqueue_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:35,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    constantsTouched: []
    func_position:
      end: 42
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 42
    functionName: DTLS_RECORD_LAYER_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - pqueue_new
    - OPENSSL_malloc
    - pqueue_free
    linkageType: ''
    returnType: int
    signature: DTLS_RECORD_LAYER_new(RECORD_LAYER *rl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DTLS_RECORD_LAYER_clear
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:46,1
    - Dst: pqueue_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:47,1
    - Dst: pqueue_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:48,1
    - Dst: pqueue_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:49,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: DTLS_RECORD_LAYER_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - pqueue_free
    - DTLS_RECORD_LAYER_clear
    linkageType: ''
    returnType: void
    signature: DTLS_RECORD_LAYER_free(RECORD_LAYER *rl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pqueue_pop
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:65,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:67,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:68,1
    - Dst: pitem_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:69,1
    - Dst: pqueue_pop
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:72,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:74,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:75,1
    - Dst: pitem_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:76,1
    - Dst: pqueue_pop
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:79,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:81,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:82,1
    - Dst: pitem_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:83,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    constantsTouched: []
    func_position:
      end: 93
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 93
    functionName: DTLS_RECORD_LAYER_clear
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c
    functionUses: 3
    functionsReached:
    - OPENSSL_free
    - pitem_free
    - memset
    - pqueue_pop
    linkageType: ''
    returnType: void
    signature: DTLS_RECORD_LAYER_clear(RECORD_LAYER *rl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:98,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:100,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:103,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - rl
    - e
    argTypes:
    - RECORD_LAYER*
    - unsigned short
    constantsTouched: []
    func_position:
      end: 109
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 109
    functionName: DTLS_RECORD_LAYER_set_saved_w_epoch
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: DTLS_RECORD_LAYER_set_saved_w_epoch(RECORD_LAYER *rl, unsigned short
      e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rl
    argTypes:
    - RECORD_LAYER*
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: DTLS_RECORD_LAYER_resync_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: DTLS_RECORD_LAYER_resync_write(RECORD_LAYER *rl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rl
    - seq
    argTypes:
    - RECORD_LAYER*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: DTLS_RECORD_LAYER_set_write_sequence
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: DTLS_RECORD_LAYER_set_write_sequence(RECORD_LAYER *rl, unsigned char
      *seq)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_BUFFER_release
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:131,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:135,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:136,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - s
    - item
    argTypes:
    - SSL*
    - pitem*
    constantsTouched: []
    func_position:
      end: 142
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 142
    functionName: dtls1_copy_record
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c
    functionUses: 0
    functionsReached:
    - memcpy
    - SSL3_BUFFER_release
    linkageType: ''
    returnType: int
    signature: dtls1_copy_record(SSL *s, pitem *item)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pqueue_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:150,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:153,1
    - Dst: pitem_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:154,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:156,1
    - Dst: pitem_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:157,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:158,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:164,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:165,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:171,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:171,1
    - Dst: SSL_get_state
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:172,1
    - Dst: SSL_get_state
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:173,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:174,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:174,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:181,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:182,1
    - Dst: ssl3_setup_buffers
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:184,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:185,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:186,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:187,1
    - Dst: pitem_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:188,1
    - Dst: pqueue_insert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:193,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:194,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:195,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:196,1
    - Dst: pitem_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:197,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - s
    - queue
    - priority
    argTypes:
    - SSL*
    - record_pqueue*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 202
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 202
    functionName: dtls1_buffer_record
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c
    functionUses: 1
    functionsReached:
    - pqueue_insert
    - BIO_ctrl
    - SSLerr
    - BIO_dgram_is_sctp
    - pitem_new
    - memset
    - SSL_get_rbio
    - SSL_get_state
    - pqueue_size
    - memcpy
    - pitem_free
    - ssl3_setup_buffers
    - OPENSSL_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: dtls1_buffer_record(SSL *s, record_pqueue *queue, unsigned char *priority)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pqueue_pop
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:208,1
    - Dst: dtls1_copy_record
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:210,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:212,1
    - Dst: pitem_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - s
    - queue
    argTypes:
    - SSL*
    - record_pqueue*
    constantsTouched: []
    func_position:
      end: 219
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 219
    functionName: dtls1_retrieve_buffered_record
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - pitem_free
    - dtls1_copy_record
    - pqueue_pop
    linkageType: ''
    returnType: int
    signature: dtls1_retrieve_buffered_record(SSL *s, record_pqueue *queue)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pqueue_peek
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:238,1
    - Dst: RECORD_LAYER_get_rrec
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:244,1
    - Dst: RECORD_LAYER_get_rbuf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:246,1
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:248,1
    - Dst: pqueue_peek
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:259,1
    - Dst: dtls1_get_unprocessed_record
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:260,1
    - Dst: dtls1_get_bitmap
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:261,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:268,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:274,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:274,1
    - Dst: dtls1_record_replay_check
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:283,1
    - Dst: dtls1_process_record
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:286,1
    - Dst: RECORD_LAYER_reset_packet_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:289,1
    - Dst: dtls1_buffer_record
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:293,1
    - Dst: SSL3_RECORD_get_seq_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:294,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 307
      start: 229
    functionDepth: 6
    functionLinenumber: 229
    functionLinenumberEnd: 307
    functionName: dtls1_process_buffered_records
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c
    functionUses: 1
    functionsReached:
    - SSLerr
    - BIO_dgram_is_sctp
    - pqueue_peek
    - dtls1_get_bitmap
    - RECORD_LAYER_get_rbuf
    - SSL_get_rbio
    - SSL3_BUFFER_get_left
    - RECORD_LAYER_reset_packet_length
    - dtls1_buffer_record
    - dtls1_record_replay_check
    - dtls1_get_unprocessed_record
    - SSL3_RECORD_get_seq_num
    - RECORD_LAYER_get_rrec
    - dtls1_process_record
    linkageType: ''
    returnType: int
    signature: dtls1_process_buffered_records(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_BUFFER_is_initialised
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:346,1
    - Dst: ssl3_setup_buffers
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:348,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:355,1
    - Dst: have_handshake_fragment
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:362,1
    - Dst: ossl_statem_get_in_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:377,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:377,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:378,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:378,1
    - Dst: ossl_statem_in_sctp_read_sock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:379,1
    - Dst: ossl_statem_get_in_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:382,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:382,1
    - Dst: SSL*::handshake_func
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:386,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:390,1
    - Dst: SSL_is_init_finished
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:410,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:410,1
    - Dst: pqueue_pop
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:412,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:416,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:416,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:418,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:418,1
    - Dst: dtls1_copy_record
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:423,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:425,1
    - Dst: pitem_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:426,1
    - Dst: dtls1_handle_timeout
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:431,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:435,1
    - Dst: dtls1_get_record
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:437,1
    - Dst: dtls1_read_failed
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:439,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:452,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:453,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:460,1
    - Dst: dtls1_buffer_record
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:466,1
    - Dst: SSL3_RECORD_get_seq_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:467,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:468,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:471,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:480,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:485,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:486,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:497,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:500,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:505,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:510,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:511,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:515,1
    - Dst: SSL3_RECORD_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:515,1
    - Dst: SSL3_RECORD_get_off
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:515,1
    - Dst: SSL3_RECORD_sub_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:517,1
    - Dst: SSL3_RECORD_add_off
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:518,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:519,1
    - Dst: SSL3_RECORD_set_off
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:521,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:529,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:529,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:530,1
    - Dst: ossl_statem_in_sctp_read_sock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:531,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:533,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:533,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:534,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:534,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:542,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:542,1
    - Dst: BIO_dgram_sctp_msg_waiting
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:544,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:544,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:566,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:570,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:576,1
    - Dst: dtls1_process_heartbeat
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:578,1
    - Dst: SSL3_RECORD_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:578,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:579,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:583,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:585,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:585,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:586,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:586,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:591,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:596,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:599,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:601,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:602,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:608,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:617,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:627,1
    - Dst: SSL3_RECORD_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:633,1
    - Dst: SSL3_RECORD_get_off
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:633,1
    - Dst: SSL3_RECORD_add_off
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:634,1
    - Dst: SSL3_RECORD_add_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:635,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:658,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:667,1
    - Dst: SSL_is_init_finished
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:671,1
    - Dst: ssl3_renegotiate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:676,1
    - Dst: ssl3_renegotiate_check
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:677,1
    - Dst: SSL*::handshake_func
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:678,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:682,1
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:687,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:697,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:698,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:699,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:719,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:730,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:739,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:750,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:750,1
    - Dst: BIO_dgram_sctp_msg_waiting
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:751,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:751,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:754,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:754,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:755,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:755,1
    - Dst: n2s
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:770,1
    - Dst: n2l3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:771,1
    - Dst: dtls1_retransmit_message
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:773,1
    - Dst: dtls1_get_queue_priority
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:774,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:777,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:785,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:795,1
    - Dst: BIO_snprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:796,1
    - Dst: ERR_add_error_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:797,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:799,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:803,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:813,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:817,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:822,1
    - Dst: ossl_statem_get_in_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:830,1
    - Dst: dtls1_get_message_header
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:834,1
    - Dst: SSL3_RECORD_get_epoch
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:835,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:836,1
    - Dst: dtls1_check_timeout_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:845,1
    - Dst: dtls1_retransmit_buffered_messages
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:848,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:849,1
    - Dst: SSL_is_init_finished
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:853,1
    - Dst: ossl_statem_set_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:855,1
    - Dst: SSL*::handshake_func
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:859,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:863,1
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:868,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:878,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:879,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:880,1
    - Dst: SSL3_RECORD_get_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:887,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:891,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:895,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:906,1
    - Dst: ossl_statem_app_data_allowed
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:918,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:923,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:930,1
    CyclomaticComplexity: 125
    EdgeCount: 125
    ICount: 325
    argCount: 6
    argNames:
    - s
    - type
    - recvd_type
    - buf
    - len
    - peek
    argTypes:
    - SSL*
    - int
    - int*
    - unsigned char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 932
      start: 338
    functionDepth: 7
    functionLinenumber: 338
    functionLinenumberEnd: 932
    functionName: dtls1_read_bytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c
    functionUses: 0
    functionsReached:
    - dtls1_get_record
    - SSLerr
    - dtls1_handle_timeout
    - SSL3_RECORD_set_length
    - ssl3_send_alert
    - SSL_in_init
    - SSL3_RECORD_get_epoch
    - dtls1_check_timeout_num
    - BIO_set_retry_read
    - SSL3_RECORD_add_length
    - SSL3_RECORD_get_type
    - BIO_dgram_sctp_msg_waiting
    - n2l3
    - SSL_is_init_finished
    - BIO_clear_retry_flags
    - have_handshake_fragment
    - SSL3_RECORD_get_seq_num
    - SSL3_BUFFER_get_left
    - pitem_free
    - dtls1_retransmit_buffered_messages
    - dtls1_retransmit_message
    - dtls1_get_queue_priority
    - ssl3_renegotiate_check
    - SSL3_RECORD_add_off
    - BIO_dgram_is_sctp
    - SSL3_RECORD_sub_length
    - BIO_snprintf
    - SSL3_RECORD_get_length
    - dtls1_get_message_header
    - SSL3_RECORD_set_off
    - cb
    - ossl_statem_in_sctp_read_sock
    - ERR_add_error_data
    - ssl3_setup_buffers
    - OPENSSL_free
    - SSL3_BUFFER_is_initialised
    - SSL_CTX_remove_session
    - ossl_statem_app_data_allowed
    - SSL*::handshake_func
    - ssl3_renegotiate
    - dtls1_read_failed
    - ossl_statem_get_in_handshake
    - SSL3_RECORD_get_data
    - dtls1_copy_record
    - dtls1_process_heartbeat
    - SSL_get_rbio
    - dtls1_buffer_record
    - memcpy
    - SSL3_RECORD_get_off
    - n2s
    - BIO_ctrl
    - ossl_statem_set_in_init
    - SSL*::msg_callback
    - pqueue_pop
    linkageType: ''
    returnType: int
    signature: "dtls1_read_bytes(SSL *s, int type, int *recvd_type, unsigned char
      *buf,\n                     int len, int peek)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - s
    - type
    - buf
    - len
    argTypes:
    - SSL*
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 965
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 965
    functionName: have_handshake_fragment
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "have_handshake_fragment(SSL *s, int type, unsigned char *buf,\n                                   int
      len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:975,1
    - Dst: do_dtls1_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - s
    - type
    - buf
    - len
    argTypes:
    - SSL*
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 979
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 979
    functionName: dtls1_write_bytes
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c
    functionUses: 3
    functionsReached:
    - do_dtls1_write
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: dtls1_write_bytes(SSL *s, int type, const void *buf, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_BUFFER_get_left
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:998,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:999,1
    - Dst: ssl3_write_pending
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1000,1
    - Dst: SSL*::method::ssl_dispatch_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1005,1
    - Dst: EVP_MD_CTX_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1017,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1023,1
    - Dst: SSL3_BUFFER_get_buf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1028,1
    - Dst: SSL3_RECORD_set_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1033,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1056,1
    - Dst: SSL3_RECORD_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1071,1
    - Dst: SSL3_RECORD_set_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1072,1
    - Dst: SSL3_RECORD_set_input
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1073,1
    - Dst: ssl3_do_compress
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1081,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1082,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1086,1
    - Dst: SSL3_RECORD_get_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1086,1
    - Dst: SSL3_RECORD_get_input
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1086,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1087,1
    - Dst: SSL3_RECORD_reset_input
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1088,1
    - Dst: SSL*::method::ssl3_enc::mac
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1098,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1099,1
    - Dst: SSL3_RECORD_add_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1102,1
    - Dst: SSL3_RECORD_set_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1106,1
    - Dst: SSL3_RECORD_reset_input
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1107,1
    - Dst: SSL3_RECORD_add_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1110,1
    - Dst: SSL*::method::ssl3_enc::enc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1112,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1123,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1130,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1132,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1132,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1135,1
    - Dst: SSL3_RECORD_set_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1142,1
    - Dst: SSL3_RECORD_add_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1143,1
    - Dst: ssl3_record_sequence_update
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1145,1
    - Dst: SSL3_BUFFER_set_left
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1156,1
    - Dst: SSL3_RECORD_get_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1156,1
    - Dst: SSL3_BUFFER_set_offset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1157,1
    - Dst: ssl3_write_pending
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1169,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 96
    argCount: 5
    argNames:
    - s
    - type
    - buf
    - len
    - create_empty_fragment
    argTypes:
    - SSL*
    - int
    - unsigned char*
    - unsigned int
    - int
    constantsTouched: []
    func_position:
      end: 1172
      start: 981
    functionDepth: 2
    functionLinenumber: 981
    functionLinenumberEnd: 1172
    functionName: do_dtls1_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c
    functionUses: 2
    functionsReached:
    - SSL*::method::ssl_dispatch_alert
    - SSLerr
    - SSL3_BUFFER_set_offset
    - SSL3_RECORD_set_length
    - ssl3_do_compress
    - SSL*::method::ssl3_enc::enc
    - SSL3_RECORD_add_length
    - SSL3_RECORD_set_input
    - SSL3_RECORD_set_type
    - EVP_MD_CTX_md
    - SSL3_BUFFER_set_left
    - SSL3_BUFFER_get_left
    - SSL*::method::ssl3_enc::mac
    - SSL3_RECORD_set_data
    - s2n
    - ssl3_write_pending
    - SSL3_RECORD_get_length
    - ssl3_record_sequence_update
    - EVP_MD_CTX_size
    - SSL3_BUFFER_get_buf
    - OPENSSL_assert
    - SSL3_RECORD_get_data
    - SSL3_RECORD_reset_input
    - memcpy
    - SSL3_RECORD_get_input
    - EVP_CIPHER_CTX_iv_length
    - SSL*::msg_callback
    linkageType: ''
    returnType: int
    signature: "do_dtls1_write(SSL *s, int type, const unsigned char *buf,\n                   unsigned
      int len, int create_empty_fragment)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - s
    - rr
    - is_next_epoch
    argTypes:
    - SSL*
    - SSL3_RECORD*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 1197
      start: 1174
    functionDepth: 0
    functionLinenumber: 1174
    functionLinenumberEnd: 1197
    functionName: dtls1_get_bitmap
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: DTLS1_BITMAP
    signature: "*dtls1_get_bitmap(SSL *s, SSL3_RECORD *rr,\n                               unsigned
      int *is_next_epoch)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1207,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1209,1
    - Dst: dtls1_clear_received_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1215,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1218,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c:1223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - s
    - rw
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 1224
      start: 1199
    functionDepth: 2
    functionLinenumber: 1199
    functionLinenumberEnd: 1224
    functionName: dtls1_reset_seq_numbers
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c
    functionUses: 0
    functionsReached:
    - dtls1_clear_received_buffer
    - memcpy
    - memset
    linkageType: ''
    returnType: void
    signature: dtls1_reset_seq_numbers(SSL *s, int rw)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: SSL_get_state
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: OSSL_HANDSHAKE_STATE
    signature: SSL_get_state(const SSL *ssl)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: SSL_in_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_in_init(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: SSL_is_init_finished
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_is_init_finished(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: SSL_in_before
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: SSL_in_before(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: ossl_statem_clear
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ossl_statem_clear(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: ossl_statem_set_renegotiate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ossl_statem_set_renegotiate(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: ossl_statem_set_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ossl_statem_set_error(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: ossl_statem_in_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ossl_statem_in_error(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - init
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: ossl_statem_set_in_init
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ossl_statem_set_in_init(SSL *s, int init)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: ossl_statem_get_in_handshake
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ossl_statem_get_in_handshake(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - inhand
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: ossl_statem_set_in_handshake
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ossl_statem_set_in_handshake(SSL *s, int inhand)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 166
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 166
    functionName: ossl_statem_set_hello_verify_done
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ossl_statem_set_hello_verify_done(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: state_machine
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: ossl_statem_connect
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 0
    functionsReached:
    - state_machine
    linkageType: ''
    returnType: int
    signature: ossl_statem_connect(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: state_machine
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: ossl_statem_accept
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 0
    functionsReached:
    - state_machine
    linkageType: ''
    returnType: int
    signature: ossl_statem_accept(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 188
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 188
    functionName: get_callback
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: info_cb
    signature: get_callback(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_add
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:232,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:233,1
    - Dst: clear_sys_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:234,1
    - Dst: get_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:236,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:239,1
    - Dst: SSL_in_before
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:239,1
    - Dst: SSL_clear
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:240,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:244,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:249,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:249,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:261,1
    - Dst: dtls1_stop_timer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:262,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:283,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:285,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:288,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:293,1
    - Dst: ssl_security
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:298,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:299,1
    - Dst: BUF_MEM_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:304,1
    - Dst: BUF_MEM_grow
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:307,1
    - Dst: ssl3_setup_buffers
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:314,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:329,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:329,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:329,1
    - Dst: ssl_init_wbio_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:331,1
    - Dst: ssl3_init_finished_mac
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:336,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:337,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:352,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:354,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:355,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:370,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:375,1
    - Dst: init_write_state_machine
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:381,1
    - Dst: read_state_machine
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:387,1
    - Dst: init_write_state_machine
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:390,1
    - Dst: write_state_machine
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:396,1
    - Dst: init_read_state_machine
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:399,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:408,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:420,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:425,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:425,1
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:430,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:433,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:435,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 154
    argCount: 2
    argNames:
    - s
    - server
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 438
      start: 218
    functionDepth: 5
    functionLinenumber: 218
    functionLinenumberEnd: 438
    functionName: state_machine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 3
    functionsReached:
    - get_callback
    - SSLerr
    - RAND_add
    - BUF_MEM_grow
    - ssl3_send_alert
    - SSL_in_init
    - write_state_machine
    - dtls1_stop_timer
    - SSL_in_before
    - init_write_state_machine
    - ssl_security
    - BUF_MEM_new
    - ossl_statem_set_error
    - BIO_dgram_is_sctp
    - ssl_init_wbio_buffer
    - init_read_state_machine
    - memset
    - cb
    - ssl3_setup_buffers
    - ERR_clear_error
    - clear_sys_error
    - SSL_IS_DTLS
    - ssl3_init_finished_mac
    - SSL_clear
    - read_state_machine
    - BIO_ctrl
    - SSL_get_wbio
    - BUF_MEM_free
    linkageType: ''
    returnType: int
    signature: state_machine(SSL *s, int server)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 448
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 448
    functionName: init_read_state_machine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: init_read_state_machine(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_grow_clean
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - s
    - size
    argTypes:
    - SSL*
    - size_t
    constantsTouched: []
    func_position:
      end: 463
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 463
    functionName: grow_init_buf
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 0
    functionsReached:
    - BUF_MEM_grow_clean
    linkageType: ''
    returnType: int
    signature: grow_init_buf(SSL *s, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MSG_PROCESS_RETURN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:498,1
    - Dst: get_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:503,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:526,1
    - Dst: dtls_get_message
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:530,1
    - Dst: tls_get_message_header
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:532,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:543,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:545,1
    - Dst: transition
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:551,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:552,1
    - Dst: max_message_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:556,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:557,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:558,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:563,1
    - Dst: grow_init_buf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:565,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:567,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:568,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:576,1
    - Dst: tls_get_message_body
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:578,1
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:586,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:587,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:588,1
    - Dst: process_message
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:591,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:601,1
    - Dst: dtls1_stop_timer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:602,1
    - Dst: post_process_message
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:618,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:628,1
    - Dst: dtls1_stop_timer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:629,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:637,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:638,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:639,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 103
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 643
      start: 491
    functionDepth: 3
    functionLinenumber: 491
    functionLinenumberEnd: 643
    functionName: read_state_machine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 1
    functionsReached:
    - ossl_statem_set_error
    - dtls1_stop_timer
    - PACKET_buf_init
    - get_callback
    - SSLerr
    - post_process_message
    - ssl3_send_alert
    - grow_init_buf
    - process_message
    - MSG_PROCESS_RETURN
    - dtls_get_message
    - cb
    - tls_get_message_header
    - transition
    - tls_get_message_body
    - max_message_size
    - SSL_IS_DTLS
    linkageType: ''
    returnType: SUB_STATE_RETURN
    signature: read_state_machine(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:654,1
    - Dst: dtls1_do_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:655,1
    - Dst: ssl3_do_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:657,1
    - Dst: ssl_do_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:659,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 661
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 661
    functionName: statem_do_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 0
    functionsReached:
    - dtls1_do_write
    - ssl_do_write
    - ssl3_do_write
    - SSL_IS_DTLS
    linkageType: ''
    returnType: int
    signature: statem_do_write(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 671
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 671
    functionName: init_write_state_machine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: init_write_state_machine(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WRITE_TRAN
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:708,1
    - Dst: get_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:714,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:734,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:736,1
    - Dst: transition
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:738,1
    - Dst: pre_work
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:754,1
    - Dst: construct_message
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:765,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:771,1
    - Dst: dtls1_start_timer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:772,1
    - Dst: statem_do_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:774,1
    - Dst: post_work
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:783,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 72
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 800
      start: 704
    functionDepth: 3
    functionLinenumber: 704
    functionLinenumberEnd: 800
    functionName: write_state_machine
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 1
    functionsReached:
    - get_callback
    - SSL_IS_DTLS
    - post_work
    - construct_message
    - cb
    - dtls1_start_timer
    - pre_work
    - transition
    - statem_do_write
    - WRITE_TRAN
    linkageType: ''
    returnType: SUB_STATE_RETURN
    signature: write_state_machine(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c:808,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 814
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 814
    functionName: statem_flush
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 0
    functionsReached:
    - BIO_flush
    linkageType: ''
    returnType: int
    signature: statem_flush(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 852
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 852
    functionName: ossl_statem_app_data_allowed
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ossl_statem_app_data_allowed(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - read_sock
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 861
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 861
    functionName: ossl_statem_set_sctp_read_sock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: ossl_statem_set_sctp_read_sock(SSL *s, int read_sock)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 874
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 874
    functionName: ossl_statem_in_sctp_read_sock
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ossl_statem_in_sctp_read_sock(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:114,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:116,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:216,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:217,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 89
    argCount: 2
    argNames:
    - s
    - mt
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 219
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 219
    functionName: ossl_statem_server_read_transition
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - ssl3_send_alert
    - SSLerr
    linkageType: ''
    returnType: int
    signature: ossl_statem_server_read_transition(SSL *s, int mt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 261
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 261
    functionName: send_server_key_exchange
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: send_server_key_exchange(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 304
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 304
    functionName: send_certificate_request
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: send_certificate_request(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ossl_statem_set_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:326,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:330,1
    - Dst: SSL_get_options
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:331,1
    - Dst: send_server_key_exchange
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:352,1
    - Dst: send_certificate_request
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:354,1
    - Dst: send_server_key_exchange
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:370,1
    - Dst: send_certificate_request
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:377,1
    - Dst: ossl_statem_set_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:393,1
    - Dst: ossl_statem_set_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:415,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 85
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 422
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 422
    functionName: ossl_statem_server_write_transition
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - send_certificate_request
    - SSL_get_options
    - send_server_key_exchange
    - ossl_statem_set_in_init
    - SSL_IS_DTLS
    linkageType: ''
    returnType: WRITE_TRAN
    signature: ossl_statem_server_write_transition(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:435,1
    - Dst: dtls1_clear_sent_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:436,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:441,1
    - Dst: dtls1_clear_sent_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:442,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:449,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:460,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:460,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:460,1
    - Dst: dtls_wait_for_dry
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:461,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:466,1
    - Dst: SSL*::method::ssl3_enc::setup_key_block
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:477,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:478,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:481,1
    - Dst: tls_finish_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:493,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 2
    argNames:
    - s
    - wst
    argTypes:
    - SSL*
    - WORK_STATE
    constantsTouched: []
    func_position:
      end: 501
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 501
    functionName: ossl_statem_server_pre_work
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - ossl_statem_set_error
    - BIO_dgram_is_sctp
    - SSL_IS_DTLS
    - dtls_wait_for_dry
    - SSL*::method::ssl3_enc::setup_key_block
    - dtls1_clear_sent_buffer
    - tls_finish_handshake
    - SSL_get_wbio
    linkageType: ''
    returnType: WORK_STATE
    signature: ossl_statem_server_pre_work(SSL *s, WORK_STATE wst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: statem_flush
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:515,1
    - Dst: ssl3_init_finished_mac
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:517,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:518,1
    - Dst: statem_flush
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:524,1
    - Dst: ssl3_init_finished_mac
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:527,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:528,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:540,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:548,1
    - Dst: SSL_export_keying_material
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:551,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:555,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:559,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:559,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:567,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:572,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:572,1
    - Dst: SSL*::method::ssl3_enc::change_cipher_state
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:576,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:579,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:583,1
    - Dst: dtls1_reset_seq_numbers
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:584,1
    - Dst: statem_flush
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:588,1
    - Dst: statem_flush
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:593,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:596,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:601,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:601,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 56
    argCount: 2
    argNames:
    - s
    - wst
    argTypes:
    - SSL*
    - WORK_STATE
    constantsTouched: []
    func_position:
      end: 613
      start: 507
    functionDepth: 4
    functionLinenumber: 507
    functionLinenumberEnd: 613
    functionName: ossl_statem_server_post_work
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - statem_flush
    - ossl_statem_set_error
    - SSL*::method::ssl3_enc::change_cipher_state
    - ssl3_init_finished_mac
    - dtls1_reset_seq_numbers
    - memcpy
    - SSL_export_keying_material
    - SSL_get_wbio
    - BIO_ctrl
    - SSL_IS_DTLS
    linkageType: ''
    returnType: WORK_STATE
    signature: ossl_statem_server_post_work(SSL *s, WORK_STATE wst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dtls_construct_hello_verify_request
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:628,1
    - Dst: tls_construct_hello_request
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:631,1
    - Dst: tls_construct_server_hello
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:634,1
    - Dst: tls_construct_server_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:637,1
    - Dst: tls_construct_server_key_exchange
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:640,1
    - Dst: tls_construct_certificate_request
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:643,1
    - Dst: tls_construct_server_done
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:646,1
    - Dst: tls_construct_new_session_ticket
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:649,1
    - Dst: tls_construct_cert_status
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:652,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:655,1
    - Dst: dtls_construct_change_cipher_spec
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:656,1
    - Dst: tls_construct_change_cipher_spec
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:658,1
    - Dst: tls_construct_finished
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:661,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 673
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 673
    functionName: ossl_statem_server_construct_message
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - tls_construct_new_session_ticket
    - SSL_IS_DTLS
    - tls_construct_finished
    - tls_construct_hello_request
    - tls_construct_certificate_request
    - tls_construct_server_hello
    - tls_construct_cert_status
    - tls_construct_change_cipher_spec
    - tls_construct_server_certificate
    - dtls_construct_change_cipher_spec
    - dtls_construct_hello_verify_request
    - tls_construct_server_done
    - tls_construct_server_key_exchange
    linkageType: ''
    returnType: int
    signature: ossl_statem_server_construct_message(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 733
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 733
    functionName: ossl_statem_server_max_message_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: ossl_statem_server_max_message_size(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls_process_client_hello
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:744,1
    - Dst: tls_process_client_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:747,1
    - Dst: tls_process_client_key_exchange
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:750,1
    - Dst: tls_process_cert_verify
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:753,1
    - Dst: tls_process_next_proto
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:757,1
    - Dst: tls_process_change_cipher_spec
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:761,1
    - Dst: tls_process_finished
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:764,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 772
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 772
    functionName: ossl_statem_server_process_message
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - tls_process_change_cipher_spec
    - tls_process_finished
    - tls_process_cert_verify
    - tls_process_client_hello
    - tls_process_next_proto
    - tls_process_client_key_exchange
    - tls_process_client_certificate
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: ossl_statem_server_process_message(SSL *s, PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls_post_process_client_hello
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:784,1
    - Dst: tls_post_process_client_key_exchange
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:787,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:792,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:792,1
    - Dst: BIO_dgram_sctp_msg_waiting
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:794,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:794,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:797,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:797,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:798,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:798,1
    - Dst: ossl_statem_set_sctp_read_sock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:799,1
    - Dst: ossl_statem_set_sctp_read_sock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:802,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - s
    - wst
    argTypes:
    - SSL*
    - WORK_STATE
    constantsTouched: []
    func_position:
      end: 813
      start: 778
    functionDepth: 2
    functionLinenumber: 778
    functionLinenumberEnd: 813
    functionName: ossl_statem_server_post_process_message
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - tls_post_process_client_key_exchange
    - BIO_dgram_sctp_msg_waiting
    - tls_post_process_client_hello
    - BIO_dgram_is_sctp
    - BIO_clear_retry_flags
    - ossl_statem_set_sctp_read_sock
    - SSL_get_rbio
    - BIO_set_retry_read
    - SSL_get_wbio
    linkageType: ''
    returnType: WORK_STATE
    signature: ossl_statem_server_post_process_message(SSL *s, WORK_STATE wst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_srp_server_param_with_username
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:832,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - s
    - al
    argTypes:
    - SSL*
    - int*
    constantsTouched: []
    func_position:
      end: 836
      start: 816
    functionDepth: 9
    functionLinenumber: 816
    functionLinenumberEnd: 836
    functionName: ssl_check_srp_ext_ClientHello
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSL_srp_server_param_with_username
    linkageType: ''
    returnType: int
    signature: ssl_check_srp_ext_ClientHello(SSL *s, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_set_handshake_header
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:841,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:842,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 848
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 848
    functionName: tls_construct_hello_request
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - ossl_statem_set_error
    - SSLerr
    - ssl_set_handshake_header
    linkageType: ''
    returnType: int
    signature: tls_construct_hello_request(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - buf
    - cookie
    - cookie_len
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char
    constantsTouched: []
    func_position:
      end: 868
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 868
    functionName: dtls_raw_hello_verify_request
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: unsigned int
    signature: "dtls_raw_hello_verify_request(unsigned char *buf,\n                                           unsigned
      char *cookie,\n                                           unsigned char cookie_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::ctx::app_gen_cookie_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:878,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:881,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:883,1
    - Dst: dtls_raw_hello_verify_request
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:887,1
    - Dst: dtls1_set_message_header
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:890,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 898
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 898
    functionName: dtls_construct_hello_verify_request
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - SSL*::ctx::app_gen_cookie_cb
    - ossl_statem_set_error
    - SSLerr
    - dtls1_set_message_header
    - dtls_raw_hello_verify_request
    linkageType: ''
    returnType: int
    signature: dtls_construct_hello_verify_request(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:909,1
    - Dst: RECORD_LAYER_is_sslv2_record
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:916,1
    - Dst: PACKET_null_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:918,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:938,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:945,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:949,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:951,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:956,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:963,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:971,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:973,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:982,1
    - Dst: ssl_choose_server_version
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:983,1
    - Dst: DTLS_VERSION_LT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:985,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:992,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1014,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1015,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1016,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1017,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1025,1
    - Dst: PACKET_get_sub_packet
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1029,1
    - Dst: PACKET_get_sub_packet
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1030,1
    - Dst: PACKET_get_sub_packet
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1031,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1033,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1034,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1043,1
    - Dst: PACKET_copy_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1044,1
    - Dst: PACKET_buf_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1048,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1049,1
    - Dst: PACKET_null_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1054,1
    - Dst: PACKET_copy_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1057,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1058,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1060,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1064,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1066,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1070,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1071,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1073,1
    - Dst: SSL_get_options
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1081,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1082,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1087,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1088,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1090,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1097,1
    - Dst: SSL_get_options
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1099,1
    - Dst: SSL*::ctx::app_verify_cookie_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1101,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1101,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1102,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1105,1
    - Dst: PACKET_equal
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1111,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1113,1
    - Dst: ssl_choose_server_version
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1119,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1121,1
    - Dst: ssl_get_new_session
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1150,1
    - Dst: ssl_get_prev_session
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1153,1
    - Dst: ssl_get_new_session
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1170,1
    - Dst: ssl_bytes_to_cipher_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1175,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1186,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1186,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1188,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1189,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1191,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1192,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1192,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1205,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1211,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1213,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1220,1
    - Dst: ssl_parse_clienthello_tlsext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1226,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1227,1
    - Dst: ssl_fill_hello_random
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1241,1
    - Dst: SSL*::tls_session_secret_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1250,1
    - Dst: ssl3_choose_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1262,1
    - Dst: SSL_get_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1265,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1269,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1274,1
    - Dst: sk_SSL_CIPHER_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1275,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1276,1
    - Dst: sk_SSL_CIPHER_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1277,1
    - Dst: ssl_allow_compression
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1294,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1295,1
    - Dst: sk_SSL_COMP_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1300,1
    - Dst: sk_SSL_COMP_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1301,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1308,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1314,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1319,1
    - Dst: ssl_allow_compression
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1325,1
    - Dst: sk_SSL_COMP_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1330,1
    - Dst: sk_SSL_COMP_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1332,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1335,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1354,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1369,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1373,1
    - Dst: tls1_set_server_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1377,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1378,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1383,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1386,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1388,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1390,1
    CyclomaticComplexity: 122
    EdgeCount: 122
    ICount: 312
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 1393
      start: 900
    functionDepth: 7
    functionLinenumber: 900
    functionLinenumberEnd: 1393
    functionName: tls_process_client_hello
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - SSLerr
    - ssl3_send_alert
    - DTLS_VERSION_LT
    - ssl_get_new_session
    - fprintf
    - ssl_get_prev_session
    - SSL*::tls_session_secret_cb
    - sk_SSL_CIPHER_num
    - sk_SSL_CIPHER_dup
    - ssl_parse_clienthello_tlsext
    - sk_SSL_CIPHER_free
    - ssl_bytes_to_cipher_list
    - ssl_allow_compression
    - PACKET_get_length_prefixed_1
    - SSL_get_options
    - PACKET_null_init
    - ossl_statem_set_error
    - memset
    - sk_SSL_CIPHER_value
    - SSL_get_ciphers
    - SSL*::ctx::app_verify_cookie_cb
    - PACKET_remaining
    - PACKET_get_length_prefixed_2
    - PACKET_get_1
    - RECORD_LAYER_is_sslv2_record
    - sk_SSL_COMP_num
    - ssl_choose_server_version
    - STACK_OF
    - PACKET_get_sub_packet
    - sk_SSL_COMP_value
    - PACKET_equal
    - PACKET_get_net_2
    - SSL_CIPHER_get_name
    - ssl_fill_hello_random
    - tls1_set_server_sigalgs
    - PACKET_buf_init
    - ssl3_choose_cipher
    - SSL_IS_DTLS
    - PACKET_data
    - PACKET_copy_bytes
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: tls_process_client_hello(SSL *s, PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1407,1
    - Dst: ssl3_choose_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1418,1
    - Dst: SSL_get_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1418,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1421,1
    - Dst: SSL*::not_resumable_session_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1428,1
    - Dst: ssl3_digest_cached_records
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1439,1
    - Dst: ssl_check_clienthello_tlsext_late
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1459,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1460,1
    - Dst: ssl_check_srp_ext_ClientHello
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1471,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1484,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1487,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1497,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1498,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 2
    argNames:
    - s
    - wst
    argTypes:
    - SSL*
    - WORK_STATE
    constantsTouched: []
    func_position:
      end: 1500
      start: 1395
    functionDepth: 10
    functionLinenumber: 1395
    functionLinenumberEnd: 1500
    functionName: tls_post_process_client_hello
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - ossl_statem_set_error
    - SSLerr
    - SSL*::not_resumable_session_cb
    - ssl3_digest_cached_records
    - ssl3_send_alert
    - ssl_check_clienthello_tlsext_late
    - SSL_get_ciphers
    - ssl_check_srp_ext_ClientHello
    - ssl3_choose_cipher
    linkageType: ''
    returnType: WORK_STATE
    signature: tls_post_process_client_hello(SSL *s, WORK_STATE wst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_handshake_start
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1513,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1522,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1548,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1549,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1553,1
    - Dst: ssl3_put_cipher_by_char
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1557,1
    - Dst: ssl_prepare_serverhello_tlsext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1570,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1571,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1572,1
    - Dst: ssl_add_serverhello_tlsext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1576,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1578,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1579,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1580,1
    - Dst: ssl_set_handshake_header
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1586,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1587,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1588,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1593
      start: 1502
    functionDepth: 3
    functionLinenumber: 1502
    functionLinenumberEnd: 1593
    functionName: tls_construct_server_hello
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - ossl_statem_set_error
    - ssl_prepare_serverhello_tlsext
    - SSLerr
    - ssl_handshake_start
    - ssl3_send_alert
    - ssl_add_serverhello_tlsext
    - ssl_set_handshake_header
    - memcpy
    - ssl3_put_cipher_by_char
    linkageType: ''
    returnType: int
    signature: tls_construct_server_hello(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_set_handshake_header
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1597,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1598,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1599,1
    - Dst: ssl3_digest_cached_records
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1604,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1605,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1610
      start: 1595
    functionDepth: 5
    functionLinenumber: 1595
    functionLinenumberEnd: 1610
    functionName: tls_construct_server_done
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - ssl3_digest_cached_records
    - ossl_statem_set_error
    - SSLerr
    - ssl_set_handshake_header
    linkageType: ''
    returnType: int
    signature: tls_construct_server_done(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1632,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1635,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1653,1
    - Dst: ssl_get_auto_dh
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1667,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1668,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1670,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1672,1
    - Dst: EVP_PKEY_assign_DH
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1676,1
    - Dst: SSL*::cert::dh_tmp_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1682,1
    - Dst: ssl_dh_to_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1683,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1686,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1694,1
    - Dst: ssl_security
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1698,1
    - Dst: EVP_PKEY_security_bits
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1699,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1701,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1706,1
    - Dst: ssl_generate_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1711,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1714,1
    - Dst: EVP_PKEY_get0_DH
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1718,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1720,1
    - Dst: DH_get0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1723,1
    - Dst: DH_get0_key
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1724,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1732,1
    - Dst: tls1_shared_curve
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1738,1
    - Dst: tls1_ec_nid2curve_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1739,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1741,1
    - Dst: ssl_generate_pkey_curve
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1745,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1749,1
    - Dst: EVP_PKEY_get1_tls_encodedpoint
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1754,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1757,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1783,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1795,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1800,1
    - Dst: ssl_get_sign_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1821,1
    - Dst: EVP_PKEY_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1826,1
    - Dst: SSL_USE_SIGALGS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1828,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1837,1
    - Dst: SSL_HM_HEADER_LENGTH
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1837,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1838,1
    - Dst: ssl_handshake_start
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1841,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1853,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1857,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1858,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1861,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1880,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1887,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1888,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1908,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1909,1
    - Dst: SSL_USE_SIGALGS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1923,1
    - Dst: tls12_get_sigandhash
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1924,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1927,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1934,1
    - Dst: EVP_MD_name
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1934,1
    - Dst: EVP_SignInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1936,1
    - Dst: EVP_SignUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1937,1
    - Dst: EVP_SignUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1939,1
    - Dst: EVP_SignUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1941,1
    - Dst: EVP_SignFinal
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1942,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1944,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1948,1
    - Dst: SSL_USE_SIGALGS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1950,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1955,1
    - Dst: ssl_set_handshake_header
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1961,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1963,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1967,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1970,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1976,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1978,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1979,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 238
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1981
      start: 1612
    functionDepth: 8
    functionLinenumber: 1612
    functionLinenumberEnd: 1981
    functionName: tls_construct_server_key_exchange
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - SSLerr
    - ssl_get_sign_pkey
    - ssl3_send_alert
    - ssl_set_handshake_header
    - EVP_MD_CTX_free
    - ssl_dh_to_pkey
    - BUF_MEM_grow_clean
    - EVP_SignUpdate
    - SSL_HM_HEADER_LENGTH
    - fprintf
    - SSL_USE_SIGALGS
    - ssl_generate_pkey_curve
    - EVP_PKEY_free
    - EVP_PKEY_get0_DH
    - DH_get0_pqg
    - DH_free
    - ssl_security
    - EVP_PKEY_new
    - EVP_PKEY_get1_tls_encodedpoint
    - EVP_PKEY_size
    - SSL*::cert::dh_tmp_cb
    - tls12_get_sigandhash
    - ossl_statem_set_error
    - s2n
    - ssl_handshake_start
    - EVP_PKEY_assign_DH
    - ssl_get_auto_dh
    - strlen
    - tls1_ec_nid2curve_id
    - EVP_SignFinal
    - OPENSSL_free
    - tls1_shared_curve
    - EVP_SignInit_ex
    - EVP_MD_name
    - ssl_generate_pkey
    - EVP_MD_CTX_new
    - DH_get0_key
    - memcpy
    - EVP_PKEY_security_bits
    - BN_bn2bin
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: tls_construct_server_key_exchange(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1987,1
    - Dst: ssl_handshake_start
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1993,1
    - Dst: ssl3_get_req_cert_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:1997,1
    - Dst: SSL_USE_SIGALGS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2002,1
    - Dst: tls12_get_psigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2005,1
    - Dst: tls12_copy_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2008,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2010,1
    - Dst: SSL_get_client_CA_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2019,1
    - Dst: sk_X509_NAME_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2022,1
    - Dst: sk_X509_NAME_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2023,1
    - Dst: i2d_X509_NAME
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2024,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2025,1
    - Dst: SSL_HM_HEADER_LENGTH
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2025,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2026,1
    - Dst: ssl_handshake_start
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2029,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2030,1
    - Dst: i2d_X509_NAME
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2031,1
    - Dst: ssl_handshake_start
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2037,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2038,1
    - Dst: ssl_set_handshake_header
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2040,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2041,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2049,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 51
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2051
      start: 1983
    functionDepth: 3
    functionLinenumber: 1983
    functionLinenumberEnd: 2051
    functionName: tls_construct_certificate_request
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - ossl_statem_set_error
    - s2n
    - SSLerr
    - ssl_handshake_start
    - STACK_OF
    - i2d_X509_NAME
    - tls12_get_psigalgs
    - ssl3_get_req_cert_type
    - ssl_set_handshake_header
    - SSL_HM_HEADER_LENGTH
    - sk_X509_NAME_num
    - BUF_MEM_grow_clean
    - sk_X509_NAME_value
    - tls12_copy_sigalgs
    - SSL_get_client_CA_list
    - SSL_USE_SIGALGS
    linkageType: ''
    returnType: int
    signature: tls_construct_certificate_request(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2060,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2062,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2065,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2067,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2072,1
    - Dst: PACKET_strndup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2076,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2078,1
    - Dst: SSL*::psk_server_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2082,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2087,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2094,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2099,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2100,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2101,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2105,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2115,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 45
    argCount: 3
    argNames:
    - s
    - pkt
    - al
    argTypes:
    - SSL*
    - PACKET*
    - int*
    constantsTouched: []
    func_position:
      end: 2118
      start: 2053
    functionDepth: 6
    functionLinenumber: 2053
    functionLinenumberEnd: 2118
    functionName: tls_process_cke_psk_preamble
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - PACKET_strndup
    - SSL*::psk_server_callback
    - SSLerr
    - OPENSSL_memdup
    - PACKET_remaining
    - PACKET_get_length_prefixed_2
    - OPENSSL_cleanse
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: tls_process_cke_psk_preamble(SSL *s, PACKET *pkt, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2132,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2135,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2143,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2144,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2146,1
    - Dst: RSA_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2157,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2159,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2163,1
    - Dst: RSA_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2163,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2166,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2178,1
    - Dst: RSA_private_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2185,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2185,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2186,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2200,1
    - Dst: constant_time_eq_int_8
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2205,1
    - Dst: constant_time_eq_int_8
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2206,1
    - Dst: constant_time_is_zero_8
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2208,1
    - Dst: constant_time_is_zero_8
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2210,1
    - Dst: constant_time_eq_8
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2221,1
    - Dst: constant_time_eq_8
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2224,1
    - Dst: constant_time_eq_8
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2238,1
    - Dst: constant_time_eq_8
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2241,1
    - Dst: constant_time_select_8
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2260,1
    - Dst: ssl_generate_master_secret
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2265,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2268,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2274,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2279,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 71
    argCount: 3
    argNames:
    - s
    - pkt
    - al
    argTypes:
    - SSL*
    - PACKET*
    - int*
    constantsTouched: []
    func_position:
      end: 2282
      start: 2120
    functionDepth: 5
    functionLinenumber: 2120
    functionLinenumberEnd: 2282
    functionName: tls_process_cke_rsa
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - RSA_private_decrypt
    - EVP_PKEY_get0_RSA
    - RSA_size
    - SSLerr
    - constant_time_select_8
    - constant_time_eq_int_8
    - ssl_generate_master_secret
    - PACKET_remaining
    - PACKET_get_length_prefixed_2
    - constant_time_eq_8
    - OPENSSL_free
    - OPENSSL_malloc
    - constant_time_is_zero_8
    - PACKET_data
    linkageType: ''
    returnType: int
    signature: tls_process_cke_rsa(SSL *s, PACKET *pkt, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2295,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2295,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2297,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2304,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2308,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2310,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2313,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2316,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2319,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2320,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2321,1
    - Dst: EVP_PKEY_get0_DH
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2324,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2325,1
    - Dst: DH_set0_key
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2327,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2328,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2330,1
    - Dst: ssl_derive
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2334,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2336,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2341,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2344,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2349,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 3
    argNames:
    - s
    - pkt
    - al
    argTypes:
    - SSL*
    - PACKET*
    - int*
    constantsTouched: []
    func_position:
      end: 2352
      start: 2284
    functionDepth: 4
    functionLinenumber: 2284
    functionLinenumberEnd: 2352
    functionName: tls_process_cke_dhe
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - DH_set0_key
    - SSLerr
    - BN_free
    - BN_bin2bn
    - PACKET_get_net_2
    - ssl_derive
    - EVP_PKEY_get0_DH
    - EVP_PKEY_copy_parameters
    - PACKET_remaining
    - EVP_PKEY_new
    - EVP_PKEY_free
    - PACKET_get_bytes
    linkageType: ''
    returnType: int
    signature: tls_process_cke_dhe(SSL *s, PACKET *pkt, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2361,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2364,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2376,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2376,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2377,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2379,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2382,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2383,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2384,1
    - Dst: EVP_PKEY_set1_tls_encodedpoint
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2387,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2389,1
    - Dst: ssl_derive
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2394,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2396,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2401,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2404,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2410,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 3
    argNames:
    - s
    - pkt
    - al
    argTypes:
    - SSL*
    - PACKET*
    - int*
    constantsTouched: []
    func_position:
      end: 2413
      start: 2354
    functionDepth: 4
    functionLinenumber: 2354
    functionLinenumberEnd: 2413
    functionName: tls_process_cke_ecdhe
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - SSLerr
    - EVP_PKEY_set1_tls_encodedpoint
    - ssl_derive
    - EVP_PKEY_copy_parameters
    - PACKET_remaining
    - EVP_PKEY_new
    - PACKET_get_1
    - PACKET_get_bytes
    linkageType: ''
    returnType: int
    signature: tls_process_cke_ecdhe(SSL *s, PACKET *pkt, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2421,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2422,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2424,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2427,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2428,1
    - Dst: BN_ucmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2431,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2431,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2433,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2436,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2437,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2439,1
    - Dst: srp_generate_server_master_secret
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2443,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2444,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2452,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - s
    - pkt
    - al
    argTypes:
    - SSL*
    - PACKET*
    - int*
    constantsTouched: []
    func_position:
      end: 2455
      start: 2415
    functionDepth: 8
    functionLinenumber: 2415
    functionLinenumberEnd: 2455
    functionName: tls_process_cke_srp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - BN_bin2bn
    - BN_is_zero
    - PACKET_get_net_2
    - OPENSSL_strdup
    - BN_ucmp
    - OPENSSL_free
    - srp_generate_server_master_secret
    - PACKET_get_bytes
    linkageType: ''
    returnType: int
    signature: tls_process_cke_srp(SSL *s, PACKET *pkt, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2489,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2492,1
    - Dst: EVP_PKEY_decrypt_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2495,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2497,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2506,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2508,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2509,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2512,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2513,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2515,1
    - Dst: ASN1_get_object
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2518,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2522,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2527,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2530,1
    - Dst: ssl_generate_master_secret
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2534,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2537,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2541,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2547,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2552,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 3
    argNames:
    - s
    - pkt
    - al
    argTypes:
    - SSL*
    - PACKET*
    - int*
    constantsTouched: []
    func_position:
      end: 2555
      start: 2457
    functionDepth: 3
    functionLinenumber: 2457
    functionLinenumberEnd: 2555
    functionName: tls_process_cke_gost
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - EVP_PKEY_CTX_new
    - ASN1_get_object
    - EVP_PKEY_CTX_ctrl
    - X509_get0_pubkey
    - EVP_PKEY_decrypt_init
    - EVP_PKEY_decrypt
    - ssl_generate_master_secret
    - PACKET_get_bytes
    - PACKET_remaining
    - EVP_PKEY_CTX_free
    - EVP_PKEY_derive_set_peer
    - ERR_clear_error
    linkageType: ''
    returnType: int
    signature: tls_process_cke_gost(SSL *s, PACKET *pkt, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls_process_cke_psk_preamble
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2565,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2570,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2572,1
    - Dst: ssl_generate_master_secret
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2577,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2579,1
    - Dst: tls_process_cke_rsa
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2583,1
    - Dst: tls_process_cke_dhe
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2586,1
    - Dst: tls_process_cke_ecdhe
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2589,1
    - Dst: tls_process_cke_srp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2592,1
    - Dst: tls_process_cke_gost
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2595,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2599,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2607,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2609,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2612,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 58
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 2614
      start: 2557
    functionDepth: 9
    functionLinenumber: 2557
    functionLinenumberEnd: 2614
    functionName: tls_process_client_key_exchange
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - tls_process_cke_srp
    - ossl_statem_set_error
    - SSLerr
    - ssl3_send_alert
    - tls_process_cke_rsa
    - tls_process_cke_ecdhe
    - tls_process_cke_gost
    - ssl_generate_master_secret
    - tls_process_cke_dhe
    - PACKET_remaining
    - OPENSSL_clear_free
    - tls_process_cke_psk_preamble
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: tls_process_client_key_exchange(SSL *s, PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2620,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2627,1
    - Dst: SSL_export_keying_material
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2630,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2634,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2638,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2638,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2646,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2646,1
    - Dst: BIO_dgram_sctp_msg_waiting
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2651,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2651,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2654,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2654,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2655,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2655,1
    - Dst: ossl_statem_set_sctp_read_sock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2656,1
    - Dst: ossl_statem_set_sctp_read_sock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2659,1
    - Dst: ssl3_digest_cached_records
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2668,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2669,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2675,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2677,1
    - Dst: ssl3_digest_cached_records
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2684,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2685,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 2
    argNames:
    - s
    - wst
    argTypes:
    - SSL*
    - WORK_STATE
    constantsTouched: []
    func_position:
      end: 2691
      start: 2616
    functionDepth: 5
    functionLinenumber: 2616
    functionLinenumberEnd: 2691
    functionName: tls_post_process_client_key_exchange
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - BIO_dgram_sctp_msg_waiting
    - ossl_statem_set_error
    - BIO_dgram_is_sctp
    - SSLerr
    - BIO_clear_retry_flags
    - ssl3_digest_cached_records
    - ossl_statem_set_sctp_read_sock
    - SSL_get_rbio
    - memcpy
    - SSL_export_keying_material
    - BIO_set_retry_read
    - SSL_get_wbio
    - BIO_ctrl
    - SSL_IS_DTLS
    linkageType: ''
    returnType: WORK_STATE
    signature: tls_post_process_client_key_exchange(SSL *s, WORK_STATE wst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2708,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2711,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2717,1
    - Dst: X509_certificate_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2723,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2726,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2738,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2739,1
    - Dst: SSL_USE_SIGALGS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2744,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2747,1
    - Dst: tls12_check_peer_sigalg
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2751,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2760,1
    - Dst: EVP_MD_name
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2760,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2773,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2774,1
    - Dst: EVP_PKEY_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2779,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2780,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2781,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2782,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2786,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2787,1
    - Dst: BIO_get_mem_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2792,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2794,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2799,1
    - Dst: EVP_MD_name
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2799,1
    - Dst: EVP_VerifyInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2801,1
    - Dst: EVP_VerifyUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2802,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2803,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2813,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2814,1
    - Dst: BUF_reverse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2818,1
    - Dst: EVP_MD_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2825,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2828,1
    - Dst: EVP_VerifyFinal
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2833,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2835,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2842,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2843,1
    - Dst: BIO_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2845,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2847,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2849,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 120
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 2852
      start: 2693
    functionDepth: 4
    functionLinenumber: 2693
    functionLinenumberEnd: 2852
    functionName: tls_process_cert_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - SSLerr
    - ssl3_send_alert
    - EVP_VerifyUpdate
    - EVP_MD_CTX_free
    - BIO_get_mem_data
    - fprintf
    - SSL_USE_SIGALGS
    - EVP_MD_CTX_ctrl
    - EVP_VerifyFinal
    - BIO_free
    - EVP_PKEY_size
    - PACKET_get_bytes
    - X509_certificate_type
    - ossl_statem_set_error
    - tls12_check_peer_sigalg
    - EVP_PKEY_id
    - BUF_reverse
    - PACKET_remaining
    - OPENSSL_free
    - EVP_MD_name
    - EVP_VerifyInit_ex
    - X509_get0_pubkey
    - PACKET_get_net_2
    - EVP_MD_CTX_new
    - OPENSSL_malloc
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: tls_process_cert_verify(SSL *s, PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2860,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2863,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2864,1
    - Dst: PACKET_get_net_3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2868,1
    - Dst: PACKET_get_sub_packet
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2869,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2870,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2872,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2876,1
    - Dst: PACKET_get_net_3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2877,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2878,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2880,1
    - Dst: d2i_X509
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2886,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2888,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2893,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2897,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2898,1
    - Dst: sk_X509_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2904,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2908,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2915,1
    - Dst: ssl3_digest_cached_records
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2921,1
    - Dst: ssl_verify_cert_chain
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2926,1
    - Dst: ssl_verify_alarm_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2928,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2929,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2934,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2938,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2938,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2941,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2947,1
    - Dst: sk_X509_shift
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2948,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2951,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2962,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2963,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2965,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2966,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 97
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 2968
      start: 2854
    functionDepth: 5
    functionLinenumber: 2854
    functionLinenumberEnd: 2968
    functionName: tls_process_client_certificate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - d2i_X509
    - SSLerr
    - sk_X509_pop_free
    - ssl_verify_cert_chain
    - ssl3_send_alert
    - sk_X509_num
    - ssl_verify_alarm_type
    - ssl3_digest_cached_records
    - X509_free
    - sk_X509_push
    - PACKET_get_bytes
    - ossl_statem_set_error
    - sk_X509_shift
    - PACKET_remaining
    - sk_X509_new_null
    - STACK_OF
    - PACKET_get_sub_packet
    - X509_get0_pubkey
    - PACKET_get_net_3
    - sk_X509_value
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: tls_process_client_certificate(SSL *s, PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_get_server_send_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2974,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2976,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2977,1
    - Dst: ssl3_output_cert_chain
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2981,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2982,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:2983,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2988
      start: 2970
    functionDepth: 7
    functionLinenumber: 2970
    functionLinenumberEnd: 2988
    functionName: tls_construct_server_certificate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - ssl3_output_cert_chain
    - ossl_statem_set_error
    - ssl_get_server_send_pkey
    - SSLerr
    linkageType: ''
    returnType: int
    signature: tls_construct_server_certificate(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i2d_SSL_SESSION
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3006,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3012,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3015,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3017,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3021,1
    - Dst: HMAC_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3022,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3024,1
    - Dst: i2d_SSL_SESSION
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3029,1
    - Dst: d2i_SSL_SESSION
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3036,1
    - Dst: i2d_SSL_SESSION
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3041,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3043,1
    - Dst: i2d_SSL_SESSION
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3047,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3048,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3051,1
    - Dst: BUF_MEM_grow
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3061,1
    - Dst: SSL_HM_HEADER_LENGTH
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3062,1
    - Dst: ssl_handshake_start
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3067,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3078,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3079,1
    - Dst: ssl_set_handshake_header
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3080,1
    - Dst: ssl_handshake_start
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3081,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3083,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3084,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3085,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3090,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3092,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3094,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3095,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3097,1
    - Dst: HMAC_Init_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3100,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3102,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3104,1
    - Dst: l2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3113,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3119,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3122,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3125,1
    - Dst: EVP_EncryptFinal
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3128,1
    - Dst: HMAC_Update
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3132,1
    - Dst: HMAC_Final
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3134,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3137,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3138,1
    - Dst: ssl_handshake_start
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3145,1
    - Dst: ssl_handshake_start
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3147,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3148,1
    - Dst: ssl_set_handshake_header
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3149,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3151,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3155,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3156,1
    - Dst: HMAC_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3157,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3158,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 115
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3160
      start: 2990
    functionDepth: 5
    functionLinenumber: 2990
    functionLinenumberEnd: 3160
    functionName: tls_construct_new_session_ticket
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - RAND_bytes
    - SSLerr
    - BUF_MEM_grow
    - ssl_set_handshake_header
    - d2i_SSL_SESSION
    - SSL_HM_HEADER_LENGTH
    - EVP_EncryptInit_ex
    - HMAC_Update
    - EVP_CIPHER_iv_length
    - i2d_SSL_SESSION
    - ossl_statem_set_error
    - EVP_CIPHER_CTX_new
    - s2n
    - ssl_handshake_start
    - EVP_sha256
    - EVP_EncryptUpdate
    - HMAC_Init_ex
    - l2n
    - OPENSSL_free
    - EVP_EncryptFinal
    - SSL_SESSION_free
    - EVP_CIPHER_CTX_free
    - EVP_aes_256_cbc
    - HMAC_CTX_new
    - HMAC_Final
    - memcpy
    - HMAC_CTX_free
    - EVP_CIPHER_CTX_iv_length
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: tls_construct_new_session_ticket(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_grow
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3174,1
    - Dst: SSL_HM_HEADER_LENGTH
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3174,1
    - Dst: ssl_handshake_start
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3177,1
    - Dst: l2n3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3182,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3184,1
    - Dst: ssl_set_handshake_header
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3186,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3192,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 3194
      start: 3162
    functionDepth: 2
    functionLinenumber: 3162
    functionLinenumberEnd: 3194
    functionName: tls_construct_cert_status
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - ossl_statem_set_error
    - ssl_handshake_start
    - BUF_MEM_grow
    - l2n3
    - ssl_set_handshake_header
    - memcpy
    - SSL_HM_HEADER_LENGTH
    linkageType: ''
    returnType: int
    signature: tls_construct_cert_status(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3213,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3214,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3215,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3216,1
    - Dst: PACKET_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3220,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c:3229,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 3231
      start: 3201
    functionDepth: 4
    functionLinenumber: 3201
    functionLinenumberEnd: 3231
    functionName: tls_process_next_proto
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
    functionUses: 1
    functionsReached:
    - ossl_statem_set_error
    - PACKET_get_length_prefixed_1
    - SSLerr
    - PACKET_memdup
    - PACKET_remaining
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: tls_process_next_proto(SSL *s, PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: cert_req_allowed
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: cert_req_allowed(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 107
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 107
    functionName: key_exchange_expected
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: key_exchange_expected(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:131,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:151,1
    - Dst: key_exchange_expected
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:174,1
    - Dst: cert_req_allowed
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:184,1
    - Dst: key_exchange_expected
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:207,1
    - Dst: cert_req_allowed
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:221,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:268,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:269,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 122
    argCount: 2
    argNames:
    - s
    - mt
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 271
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 271
    functionName: ossl_statem_client_read_transition
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - cert_req_allowed
    - SSLerr
    - ssl3_send_alert
    - key_exchange_expected
    - SSL_IS_DTLS
    linkageType: ''
    returnType: int
    signature: ossl_statem_client_read_transition(SSL *s, int mt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:339,1
    - Dst: ossl_statem_set_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:355,1
    - Dst: ossl_statem_set_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:367,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 61
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 375
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 375
    functionName: ossl_statem_client_write_transition
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - ossl_statem_set_in_init
    - SSL_IS_DTLS
    linkageType: ''
    returnType: WRITE_TRAN
    signature: ossl_statem_client_write_transition(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:388,1
    - Dst: ssl3_init_finished_mac
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:390,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:391,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:398,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:407,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:407,1
    - Dst: dtls_wait_for_dry
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:408,1
    - Dst: tls_finish_handshake
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:414,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - s
    - wst
    argTypes:
    - SSL*
    - WORK_STATE
    constantsTouched: []
    func_position:
      end: 422
      start: 381
    functionDepth: 4
    functionLinenumber: 381
    functionLinenumberEnd: 422
    functionName: ossl_statem_client_pre_work
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - ossl_statem_set_error
    - ssl3_init_finished_mac
    - BIO_dgram_is_sctp
    - SSL_IS_DTLS
    - dtls_wait_for_dry
    - tls_finish_handshake
    - SSL_get_wbio
    linkageType: ''
    returnType: WORK_STATE
    signature: ossl_statem_client_pre_work(SSL *s, WORK_STATE wst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: statem_flush
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:436,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:439,1
    - Dst: tls_client_key_exchange_post_work
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:446,1
    - Dst: SSL*::method::ssl3_enc::setup_key_block
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:460,1
    - Dst: SSL*::method::ssl3_enc::change_cipher_state
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:463,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:467,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:474,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:474,1
    - Dst: dtls1_reset_seq_numbers
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:479,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:485,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:490,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:490,1
    - Dst: statem_flush
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:494,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 2
    argNames:
    - s
    - wst
    argTypes:
    - SSL*
    - WORK_STATE
    constantsTouched: []
    func_position:
      end: 504
      start: 428
    functionDepth: 3
    functionLinenumber: 428
    functionLinenumberEnd: 504
    functionName: ossl_statem_client_post_work
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - SSL*::method::ssl3_enc::change_cipher_state
    - statem_flush
    - tls_client_key_exchange_post_work
    - dtls1_reset_seq_numbers
    - SSL*::method::ssl3_enc::setup_key_block
    - SSL_get_wbio
    - BIO_ctrl
    - SSL_IS_DTLS
    linkageType: ''
    returnType: WORK_STATE
    signature: ossl_statem_client_post_work(SSL *s, WORK_STATE wst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls_construct_client_hello
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:519,1
    - Dst: tls_construct_client_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:522,1
    - Dst: tls_construct_client_key_exchange
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:525,1
    - Dst: tls_construct_client_verify
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:528,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:531,1
    - Dst: dtls_construct_change_cipher_spec
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:532,1
    - Dst: tls_construct_change_cipher_spec
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:534,1
    - Dst: tls_construct_next_proto
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:538,1
    - Dst: tls_construct_finished
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:541,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 553
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 553
    functionName: ossl_statem_client_construct_message
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - tls_construct_finished
    - tls_construct_change_cipher_spec
    - tls_construct_next_proto
    - tls_construct_client_verify
    - dtls_construct_change_cipher_spec
    - tls_construct_client_key_exchange
    - tls_construct_client_certificate
    - tls_construct_client_hello
    - SSL_IS_DTLS
    linkageType: ''
    returnType: int
    signature: ossl_statem_client_construct_message(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 607
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 607
    functionName: ossl_statem_client_max_message_size
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: ossl_statem_client_max_message_size(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls_process_server_hello
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:618,1
    - Dst: dtls_process_hello_verify
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:621,1
    - Dst: tls_process_server_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:624,1
    - Dst: tls_process_cert_status
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:627,1
    - Dst: tls_process_key_exchange
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:630,1
    - Dst: tls_process_certificate_request
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:633,1
    - Dst: tls_process_server_done
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:636,1
    - Dst: tls_process_change_cipher_spec
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:639,1
    - Dst: tls_process_new_session_ticket
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:642,1
    - Dst: tls_process_finished
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:645,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 653
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 653
    functionName: ossl_statem_client_process_message
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - tls_process_new_session_ticket
    - tls_process_certificate_request
    - tls_process_change_cipher_spec
    - tls_process_server_certificate
    - tls_process_server_done
    - dtls_process_hello_verify
    - tls_process_finished
    - tls_process_cert_status
    - tls_process_key_exchange
    - tls_process_server_hello
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: ossl_statem_client_process_message(SSL *s, PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls_prepare_client_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:665,1
    - Dst: BIO_dgram_sctp_msg_waiting
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:670,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:670,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:673,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:673,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:674,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:674,1
    - Dst: ossl_statem_set_sctp_read_sock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:675,1
    - Dst: ossl_statem_set_sctp_read_sock
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:678,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - s
    - wst
    argTypes:
    - SSL*
    - WORK_STATE
    constantsTouched: []
    func_position:
      end: 688
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 688
    functionName: ossl_statem_client_post_process_message
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - BIO_dgram_sctp_msg_waiting
    - BIO_clear_retry_flags
    - ossl_statem_set_sctp_read_sock
    - SSL_get_rbio
    - tls_prepare_client_certificate
    - BIO_set_retry_read
    linkageType: ''
    returnType: WORK_STATE
    signature: ossl_statem_client_post_process_message(SSL *s, WORK_STATE wst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_set_client_hello_version
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:707,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:709,1
    - Dst: ssl_version_supported
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:713,1
    - Dst: ssl_get_new_session
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:720,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:731,1
    - Dst: ssl_fill_hello_random
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:743,1
    - Dst: ssl_handshake_start
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:747,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:783,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:794,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:797,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:802,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:804,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:808,1
    - Dst: ssl_cipher_list_to_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:813,1
    - Dst: SSL_get_ciphers
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:813,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:815,1
    - Dst: TLS1_get_version
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:824,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:828,1
    - Dst: ssl_allow_compression
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:836,1
    - Dst: sk_SSL_COMP_num
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:839,1
    - Dst: sk_SSL_COMP_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:842,1
    - Dst: ssl_prepare_clienthello_tlsext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:849,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:850,1
    - Dst: ssl_add_clienthello_tlsext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:854,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:856,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:857,1
    - Dst: ssl_set_handshake_header
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:862,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:863,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:864,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:870,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 98
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 872
      start: 690
    functionDepth: 4
    functionLinenumber: 690
    functionLinenumberEnd: 872
    functionName: tls_construct_client_hello
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - ssl_set_client_hello_version
    - SSLerr
    - ssl_version_supported
    - ssl3_send_alert
    - TLS1_get_version
    - ssl_set_handshake_header
    - ssl_prepare_clienthello_tlsext
    - ossl_statem_set_error
    - s2n
    - ssl_handshake_start
    - ssl_add_clienthello_tlsext
    - SSL_get_ciphers
    - ssl_cipher_list_to_bytes
    - sk_SSL_COMP_num
    - sk_SSL_COMP_value
    - ssl_fill_hello_random
    - memcpy
    - SSL_IS_DTLS
    - ssl_allow_compression
    - ssl_get_new_session
    linkageType: ''
    returnType: int
    signature: tls_construct_client_hello(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_forward
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:880,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:881,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:883,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:887,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:890,1
    - Dst: PACKET_copy_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:894,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:896,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:903,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:904,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 906
      start: 874
    functionDepth: 4
    functionLinenumber: 874
    functionLinenumberEnd: 906
    functionName: dtls_process_hello_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - ossl_statem_set_error
    - PACKET_get_length_prefixed_1
    - SSLerr
    - ssl3_send_alert
    - PACKET_remaining
    - PACKET_forward
    - PACKET_copy_bytes
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: dtls_process_hello_verify(SSL *s, PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:910,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:923,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:925,1
    - Dst: ssl_choose_client_version
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:929,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:932,1
    - Dst: PACKET_copy_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:938,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:940,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:947,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:949,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:952,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:956,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:960,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:961,1
    - Dst: SSL*::tls_session_secret_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:982,1
    - Dst: ssl_get_cipher_by_char
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:987,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:989,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:996,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:996,1
    - Dst: memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:999,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1002,1
    - Dst: ssl_get_new_session
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1017,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1026,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1026,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1034,1
    - Dst: ssl_get_cipher_by_char
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1039,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1043,1
    - Dst: ssl_cipher_disabled
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1056,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1058,1
    - Dst: ssl_get_ciphers_by_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1062,1
    - Dst: sk_SSL_CIPHER_find
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1063,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1067,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1080,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1087,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1088,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1095,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1104,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1110,1
    - Dst: ssl_allow_compression
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1116,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1118,1
    - Dst: ssl3_comp_find
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1121,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1126,1
    - Dst: ssl_parse_serverhello_tlsext
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1135,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1136,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1140,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1143,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1147,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1155,1
    - Dst: SSL_export_keying_material
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1158,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1164,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1164,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1172,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1174,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 178
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 1176
      start: 908
    functionDepth: 7
    functionLinenumber: 908
    functionLinenumberEnd: 1176
    functionName: tls_process_server_hello
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - SSLerr
    - ssl3_send_alert
    - ssl_cipher_disabled
    - ssl_get_ciphers_by_id
    - SSL_get_wbio
    - ssl3_comp_find
    - PACKET_data
    - SSL*::tls_session_secret_cb
    - sk_SSL_CIPHER_find
    - PACKET_get_bytes
    - ossl_statem_set_error
    - PACKET_get_length_prefixed_1
    - PACKET_copy_bytes
    - ssl_parse_serverhello_tlsext
    - SSL_export_keying_material
    - PACKET_remaining
    - ssl_choose_client_version
    - PACKET_get_1
    - ssl_get_cipher_by_char
    - memcmp
    - STACK_OF
    - PACKET_get_net_2
    - memcpy
    - BIO_ctrl
    - SSL_IS_DTLS
    - ssl_allow_compression
    - ssl_get_new_session
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: tls_process_server_hello(SSL *s, PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1184,1
    - Dst: sk_X509_new_null
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1187,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1188,1
    - Dst: PACKET_get_net_3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1192,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1193,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1195,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1198,1
    - Dst: PACKET_get_net_3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1199,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1200,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1202,1
    - Dst: d2i_X509
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1208,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1211,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1216,1
    - Dst: sk_X509_push
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1220,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1221,1
    - Dst: ssl_verify_cert_chain
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1227,1
    - Dst: ssl_verify_alarm_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1243,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1244,1
    - Dst: ERR_clear_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1248,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1250,1
    - Dst: sk_X509_value
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1260,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1266,1
    - Dst: EVP_PKEY_missing_parameters
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1268,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1271,1
    - Dst: ssl_cert_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1276,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1280,1
    - Dst: ssl_cipher_get_cert_index
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1285,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1292,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1298,1
    - Dst: X509_up_ref
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1299,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1308,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1310,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1312,1
    - Dst: sk_X509_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1313,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 102
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 1315
      start: 1178
    functionDepth: 3
    functionLinenumber: 1178
    functionLinenumberEnd: 1315
    functionName: tls_process_server_certificate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - d2i_X509
    - SSLerr
    - sk_X509_pop_free
    - ssl_verify_cert_chain
    - ssl3_send_alert
    - ssl_verify_alarm_type
    - EVP_PKEY_missing_parameters
    - X509_free
    - sk_X509_push
    - PACKET_get_bytes
    - ossl_statem_set_error
    - X509_up_ref
    - ssl_cipher_get_cert_index
    - PACKET_remaining
    - sk_X509_new_null
    - ERR_clear_error
    - STACK_OF
    - X509_get0_pubkey
    - ssl_cert_type
    - PACKET_get_net_3
    - sk_X509_value
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: tls_process_server_certificate(SSL *s, PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1324,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1326,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1336,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1338,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1342,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1343,1
    - Dst: PACKET_strndup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1345,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1353,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - s
    - pkt
    - al
    argTypes:
    - SSL*
    - PACKET*
    - int*
    constantsTouched: []
    func_position:
      end: 1357
      start: 1317
    functionDepth: 4
    functionLinenumber: 1317
    functionLinenumberEnd: 1357
    functionName: tls_process_ske_psk_preamble
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - PACKET_strndup
    - SSLerr
    - PACKET_remaining
    - PACKET_get_length_prefixed_2
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: tls_process_ske_psk_preamble(SSL *s, PACKET *pkt, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1364,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1365,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1366,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1367,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1369,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1374,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1374,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1375,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1377,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1377,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1378,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1380,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1380,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1381,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1383,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1383,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1384,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1386,1
    - Dst: srp_verify_server_param
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1390,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1392,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1398,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1402,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 4
    argNames:
    - s
    - pkt
    - pkey
    - al
    argTypes:
    - SSL*
    - PACKET*
    - EVP_PKEY**
    - int*
    constantsTouched: []
    func_position:
      end: 1406
      start: 1359
    functionDepth: 4
    functionLinenumber: 1359
    functionLinenumberEnd: 1406
    functionName: tls_process_ske_srp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - PACKET_get_length_prefixed_1
    - SSLerr
    - BN_bin2bn
    - X509_get0_pubkey
    - srp_verify_server_param
    - PACKET_remaining
    - PACKET_get_length_prefixed_2
    - PACKET_data
    linkageType: ''
    returnType: int
    signature: tls_process_ske_srp(SSL *s, PACKET *pkt, EVP_PKEY **pkey, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1419,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1420,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1421,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1423,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1427,1
    - Dst: DH_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1428,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1432,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1436,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1436,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1436,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1437,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1437,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1437,1
    - Dst: BN_bin2bn
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1438,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1438,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1438,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1442,1
    - Dst: BN_is_zero
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1447,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1449,1
    - Dst: DH_set0_pqg
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1453,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1455,1
    - Dst: DH_check_params
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1460,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1462,1
    - Dst: DH_set0_key
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1466,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1468,1
    - Dst: ssl_security
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1473,1
    - Dst: DH_security_bits
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1473,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1475,1
    - Dst: EVP_PKEY_assign_DH
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1479,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1481,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1492,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1498,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1499,1
    - Dst: BN_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1500,1
    - Dst: DH_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1501,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1502,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1506,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 76
    argCount: 4
    argNames:
    - s
    - pkt
    - pkey
    - al
    argTypes:
    - SSL*
    - PACKET*
    - EVP_PKEY**
    - int*
    constantsTouched: []
    func_position:
      end: 1510
      start: 1408
    functionDepth: 5
    functionLinenumber: 1408
    functionLinenumberEnd: 1510
    functionName: tls_process_ske_dhe
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - DH_set0_key
    - SSLerr
    - PACKET_data
    - BN_bin2bn
    - BN_is_zero
    - DH_security_bits
    - ssl_security
    - BN_free
    - EVP_PKEY_assign_DH
    - X509_get0_pubkey
    - DH_new
    - DH_set0_pqg
    - DH_free
    - PACKET_remaining
    - PACKET_get_length_prefixed_2
    - DH_check_params
    - EVP_PKEY_free
    - EVP_PKEY_new
    linkageType: ''
    returnType: int
    signature: tls_process_ske_dhe(SSL *s, PACKET *pkt, EVP_PKEY **pkey, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1526,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1528,1
    - Dst: tls1_check_curve
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1535,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1537,1
    - Dst: tls1_ec_curve_id2nid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1541,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1545,1
    - Dst: EVP_PKEY_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1551,1
    - Dst: EVP_PKEY_set_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1553,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1555,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1556,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1562,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1564,1
    - Dst: EVP_PKEY_CTX_set_ec_paramgen_curve_nid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1565,1
    - Dst: EVP_PKEY_paramgen
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1566,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1568,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1569,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1572,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1576,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1578,1
    - Dst: EVP_PKEY_set1_tls_encodedpoint
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1582,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1583,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1584,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1586,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1596,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1598,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1603,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 4
    argNames:
    - s
    - pkt
    - pkey
    - al
    argTypes:
    - SSL*
    - PACKET*
    - EVP_PKEY**
    - int*
    constantsTouched: []
    func_position:
      end: 1607
      start: 1512
    functionDepth: 4
    functionLinenumber: 1512
    functionLinenumberEnd: 1607
    functionName: tls_process_ske_ecdhe
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_paramgen_init
    - PACKET_get_length_prefixed_1
    - SSLerr
    - PACKET_remaining
    - EVP_PKEY_set1_tls_encodedpoint
    - X509_get0_pubkey
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_set_type
    - tls1_check_curve
    - EVP_PKEY_new
    - EVP_PKEY_CTX_free
    - EVP_PKEY_paramgen
    - EVP_PKEY_CTX_set_ec_paramgen_curve_nid
    - tls1_ec_curve_id2nid
    - EVP_PKEY_free
    - PACKET_data
    - PACKET_get_bytes
    linkageType: ''
    returnType: int
    signature: tls_process_ske_ecdhe(SSL *s, PACKET *pkt, EVP_PKEY **pkey, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1621,1
    - Dst: tls_process_ske_psk_preamble
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1626,1
    - Dst: tls_process_ske_srp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1633,1
    - Dst: tls_process_ske_dhe
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1636,1
    - Dst: tls_process_ske_ecdhe
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1639,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1643,1
    - Dst: PACKET_get_sub_packet
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1658,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1659,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1660,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1662,1
    - Dst: SSL_USE_SIGALGS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1666,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1669,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1671,1
    - Dst: tls12_check_peer_sigalg
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1674,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1683,1
    - Dst: EVP_MD_name
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1683,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1685,1
    - Dst: EVP_md5_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1686,1
    - Dst: EVP_sha1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1688,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1691,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1692,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1694,1
    - Dst: EVP_PKEY_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1697,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1700,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1707,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1710,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1715,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1718,1
    - Dst: EVP_VerifyInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1722,1
    - Dst: EVP_VerifyUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1723,1
    - Dst: EVP_VerifyUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1725,1
    - Dst: EVP_VerifyUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1727,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1727,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1728,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1729,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1731,1
    - Dst: EVP_VerifyFinal
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1734,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1734,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1735,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1737,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1739,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1742,1
    - Dst: ssl3_check_cert_and_algorithm
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1748,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1751,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1758,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1760,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1768,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1769,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 131
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 1771
      start: 1609
    functionDepth: 6
    functionLinenumber: 1609
    functionLinenumberEnd: 1771
    functionName: tls_process_key_exchange
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - SSLerr
    - ssl3_send_alert
    - EVP_VerifyUpdate
    - EVP_MD_CTX_free
    - fprintf
    - EVP_md5_sha1
    - tls_process_ske_ecdhe
    - SSL_USE_SIGALGS
    - EVP_PKEY_free
    - EVP_sha1
    - EVP_VerifyFinal
    - EVP_PKEY_size
    - PACKET_get_bytes
    - ossl_statem_set_error
    - tls12_check_peer_sigalg
    - tls_process_ske_dhe
    - EVP_PKEY_id
    - ssl3_check_cert_and_algorithm
    - PACKET_remaining
    - PACKET_get_length_prefixed_2
    - tls_process_ske_srp
    - EVP_MD_name
    - PACKET_get_sub_packet
    - EVP_VerifyInit_ex
    - EVP_MD_CTX_new
    - tls_process_ske_psk_preamble
    - PACKET_data
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: tls_process_key_exchange(SSL *s, PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1780,1
    - Dst: sk_X509_NAME_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1782,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1783,1
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1788,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1789,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1790,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1791,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1794,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1798,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1800,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1803,1
    - Dst: SSL_USE_SIGALGS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1810,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1811,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1812,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1813,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1814,1
    - Dst: tls1_save_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1824,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1825,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1826,1
    - Dst: tls1_process_sigalgs
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1830,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1831,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1832,1
    - Dst: ssl_set_default_md
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1836,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1840,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1841,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1842,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1843,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1847,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1848,1
    - Dst: PACKET_get_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1849,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1850,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1851,1
    - Dst: d2i_X509_NAME
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1858,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1860,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1861,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1866,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1867,1
    - Dst: sk_X509_NAME_push
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1871,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1872,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1881,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1888,1
    - Dst: X509_NAME_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1890,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1891,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 103
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 1893
      start: 1773
    functionDepth: 5
    functionLinenumber: 1773
    functionLinenumberEnd: 1893
    functionName: tls_process_certificate_request
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - sk_X509_NAME_push
    - SSLerr
    - sk_X509_NAME_new
    - ssl3_send_alert
    - tls1_save_sigalgs
    - d2i_X509_NAME
    - SSL_USE_SIGALGS
    - X509_NAME_free
    - sk_X509_NAME_pop_free
    - PACKET_get_bytes
    - ossl_statem_set_error
    - ssl_set_default_md
    - PACKET_remaining
    - tls1_process_sigalgs
    - OPENSSL_free
    - PACKET_get_1
    - STACK_OF
    - PACKET_get_net_2
    - memcpy
    - OPENSSL_malloc
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: tls_process_certificate_request(SSL *s, PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_NAME**
    - X509_NAME**
    constantsTouched: []
    func_position:
      end: 1898
      start: 1895
    functionDepth: 1
    functionLinenumber: 1895
    functionLinenumberEnd: 1898
    functionName: ca_dn_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - X509_NAME_cmp
    linkageType: ''
    returnType: int
    signature: ca_dn_cmp(const X509_NAME *const *a, const X509_NAME *const *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_net_4
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1906,1
    - Dst: PACKET_get_net_2
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1907,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1908,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1910,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1929,1
    - Dst: ssl_session_dup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1932,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1934,1
    - Dst: SSL_SESSION_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1938,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1942,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1945,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1947,1
    - Dst: PACKET_copy_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1950,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1952,1
    - Dst: EVP_Digest
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1969,1
    - Dst: EVP_sha256
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1971,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1972,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1977,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1979,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 1981
      start: 1900
    functionDepth: 5
    functionLinenumber: 1900
    functionLinenumberEnd: 1981
    functionName: tls_process_new_session_ticket
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_remove_session
    - EVP_Digest
    - ossl_statem_set_error
    - SSL_SESSION_free
    - SSLerr
    - ssl_session_dup
    - ssl3_send_alert
    - PACKET_get_net_2
    - EVP_sha256
    - PACKET_get_net_4
    - PACKET_remaining
    - OPENSSL_free
    - OPENSSL_malloc
    - PACKET_copy_bytes
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: tls_process_new_session_ticket(SSL *s, PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_1
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1989,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1992,1
    - Dst: PACKET_get_net_3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1995,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1996,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:1998,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2001,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2004,1
    - Dst: PACKET_copy_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2007,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2009,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2015,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2016,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 2018
      start: 1983
    functionDepth: 3
    functionLinenumber: 1983
    functionLinenumberEnd: 2018
    functionName: tls_process_cert_status
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - ossl_statem_set_error
    - SSLerr
    - ssl3_send_alert
    - PACKET_get_net_3
    - PACKET_remaining
    - OPENSSL_malloc
    - PACKET_get_1
    - PACKET_copy_bytes
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: tls_process_cert_status(SSL *s, PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2022,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2024,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2025,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2026,1
    - Dst: SRP_Calc_A_param
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2031,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2032,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2033,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2034,1
    - Dst: ssl3_check_cert_and_algorithm
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2044,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2045,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2046,1
    - Dst: SSL*::ctx::tlsext_status_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2057,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2059,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2061,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2066,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2067,1
    - Dst: ssl_validate_ct
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2074,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2075,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2083,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2083,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2083,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 2089
      start: 2020
    functionDepth: 10
    functionLinenumber: 2020
    functionLinenumberEnd: 2089
    functionName: tls_process_server_done
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - ossl_statem_set_error
    - SSLerr
    - SSL*::ctx::tlsext_status_cb
    - BIO_dgram_is_sctp
    - ssl3_send_alert
    - SSL_get_wbio
    - ssl3_check_cert_and_algorithm
    - PACKET_remaining
    - ssl_validate_ct
    - SRP_Calc_A_param
    - SSL_IS_DTLS
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: tls_process_server_done(SSL *s, PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2109,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2114,1
    - Dst: SSL*::psk_client_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2116,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2121,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2125,1
    - Dst: strlen
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2131,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2133,1
    - Dst: OPENSSL_memdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2138,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2139,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2141,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2146,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2150,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2153,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2154,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2161,1
    - Dst: OPENSSL_cleanse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2162,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2163,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2164,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2168,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 58
    argCount: 4
    argNames:
    - s
    - p
    - pskhdrlen
    - al
    argTypes:
    - SSL*
    - unsigned char**
    - size_t*
    - int*
    constantsTouched: []
    func_position:
      end: 2172
      start: 2091
    functionDepth: 6
    functionLinenumber: 2091
    functionLinenumberEnd: 2172
    functionName: tls_construct_cke_psk_preamble
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - s2n
    - SSLerr
    - OPENSSL_memdup
    - OPENSSL_clear_free
    - memset
    - strlen
    - memcpy
    - OPENSSL_strdup
    - OPENSSL_cleanse
    - OPENSSL_free
    - SSL*::psk_client_callback
    linkageType: ''
    returnType: int
    signature: "tls_construct_cke_psk_preamble(SSL *s, unsigned char **p,\n                                          size_t
      *pskhdrlen, int *al)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2188,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2192,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2193,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2194,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2199,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2201,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2208,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2216,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2217,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2218,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2219,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2222,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2223,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2227,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2238,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2247,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2248,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2252,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 4
    argNames:
    - s
    - p
    - len
    - al
    argTypes:
    - SSL*
    - unsigned char**
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 2256
      start: 2174
    functionDepth: 3
    functionLinenumber: 2174
    functionLinenumberEnd: 2256
    functionName: tls_construct_cke_rsa
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - EVP_PKEY_get0_RSA
    - SSLerr
    - EVP_PKEY_CTX_new
    - EVP_PKEY_encrypt_init
    - EVP_PKEY_encrypt
    - s2n
    - OPENSSL_clear_free
    - X509_get0_pubkey
    - EVP_PKEY_CTX_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: tls_construct_cke_rsa(SSL *s, unsigned char **p, int *len, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2267,1
    - Dst: ssl_generate_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2270,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2272,1
    - Dst: EVP_PKEY_get0_DH
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2276,1
    - Dst: ssl_derive
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2278,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2279,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2280,1
    - Dst: DH_get0_key
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2285,1
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2286,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2287,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2288,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2290,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2294,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 4
    argNames:
    - s
    - p
    - len
    - al
    argTypes:
    - SSL*
    - unsigned char**
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 2298
      start: 2258
    functionDepth: 4
    functionLinenumber: 2258
    functionLinenumberEnd: 2298
    functionName: tls_construct_cke_dhe
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - s2n
    - SSLerr
    - ssl_generate_pkey
    - ssl_derive
    - DH_get0_key
    - BN_bn2bin
    - EVP_PKEY_free
    - BN_num_bytes
    - EVP_PKEY_get0_DH
    linkageType: ''
    returnType: int
    signature: tls_construct_cke_dhe(SSL *s, unsigned char **p, int *len, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2309,1
    - Dst: ssl_generate_pkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2313,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2315,1
    - Dst: ssl_derive
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2319,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2320,1
    - Dst: EVP_PKEY_get1_tls_encodedpoint
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2325,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2328,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2332,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2341,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2345,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2349,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2352,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 4
    argNames:
    - s
    - p
    - len
    - al
    argTypes:
    - SSL*
    - unsigned char**
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 2356
      start: 2300
    functionDepth: 4
    functionLinenumber: 2300
    functionLinenumberEnd: 2356
    functionName: tls_construct_cke_ecdhe
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - ssl_generate_pkey
    - ssl_derive
    - memcpy
    - OPENSSL_free
    - EVP_PKEY_get1_tls_encodedpoint
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: tls_construct_cke_ecdhe(SSL *s, unsigned char **p, int *len, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2381,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2386,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2386,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2389,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2400,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2403,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2407,1
    - Dst: RAND_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2409,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2411,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2418,1
    - Dst: EVP_DigestInit
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2420,1
    - Dst: EVP_get_digestbynid
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2420,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2421,1
    - Dst: EVP_DigestUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2423,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2425,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2427,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2430,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2432,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2435,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2444,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2446,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2457,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2459,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2465,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2466,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2467,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2470,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 75
    argCount: 4
    argNames:
    - s
    - p
    - len
    - al
    argTypes:
    - SSL*
    - unsigned char**
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 2474
      start: 2358
    functionDepth: 4
    functionLinenumber: 2358
    functionLinenumberEnd: 2474
    functionName: tls_construct_cke_gost
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - EVP_DigestInit
    - RAND_bytes
    - EVP_DigestFinal_ex
    - EVP_PKEY_encrypt_init
    - EVP_PKEY_CTX_new
    - SSLerr
    - EVP_PKEY_encrypt
    - EVP_DigestUpdate
    - EVP_PKEY_CTX_ctrl
    - X509_get0_pubkey
    - OPENSSL_clear_free
    - EVP_get_digestbynid
    - EVP_MD_CTX_new
    - EVP_MD_CTX_free
    - memcpy
    - EVP_PKEY_CTX_free
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: tls_construct_cke_gost(SSL *s, unsigned char **p, int *len, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2481,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2482,1
    - Dst: BN_bn2bin
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2483,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2486,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2489,1
    - Dst: OPENSSL_strdup
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2490,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2492,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - s
    - p
    - len
    - al
    argTypes:
    - SSL*
    - unsigned char**
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 2502
      start: 2476
    functionDepth: 2
    functionLinenumber: 2476
    functionLinenumberEnd: 2502
    functionName: tls_construct_cke_srp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - s2n
    - SSLerr
    - OPENSSL_strdup
    - OPENSSL_free
    - BN_bn2bin
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: tls_construct_cke_srp(SSL *s, unsigned char **p, int *len, int *al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_handshake_start
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2514,1
    - Dst: tls_construct_cke_psk_preamble
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2517,1
    - Dst: tls_construct_cke_rsa
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2523,1
    - Dst: tls_construct_cke_dhe
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2526,1
    - Dst: tls_construct_cke_ecdhe
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2529,1
    - Dst: tls_construct_cke_gost
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2532,1
    - Dst: tls_construct_cke_srp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2535,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2538,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2539,1
    - Dst: ssl_set_handshake_header
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2545,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2546,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2547,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2554,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2555,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2558,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2561,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 57
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2563
      start: 2504
    functionDepth: 7
    functionLinenumber: 2504
    functionLinenumberEnd: 2563
    functionName: tls_construct_client_key_exchange
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - tls_construct_cke_rsa
    - ossl_statem_set_error
    - SSLerr
    - ssl_handshake_start
    - tls_construct_cke_dhe
    - ssl3_send_alert
    - tls_construct_cke_gost
    - ssl_set_handshake_header
    - tls_construct_cke_srp
    - tls_construct_cke_ecdhe
    - OPENSSL_clear_free
    - tls_construct_cke_psk_preamble
    linkageType: ''
    returnType: int
    signature: tls_construct_client_key_exchange(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: srp_generate_client_master_secret
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2576,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2577,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2586,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2587,1
    - Dst: ssl_generate_master_secret
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2590,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2591,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2592,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2602,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2610,1
    - Dst: SSL_export_keying_material
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2613,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2618,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2618,1
    - Dst: OPENSSL_clear_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2625,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2628
      start: 2565
    functionDepth: 9
    functionLinenumber: 2565
    functionLinenumberEnd: 2628
    functionName: tls_client_key_exchange_post_work
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - srp_generate_client_master_secret
    - SSLerr
    - ssl3_send_alert
    - OPENSSL_clear_free
    - memcpy
    - ssl_generate_master_secret
    - SSL_export_keying_material
    - SSL_get_wbio
    - BIO_ctrl
    - SSL_IS_DTLS
    linkageType: ''
    returnType: int
    signature: tls_client_key_exchange_post_work(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2641,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2643,1
    - Dst: ssl_handshake_start
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2647,1
    - Dst: BIO_get_mem_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2650,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2652,1
    - Dst: SSL_USE_SIGALGS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2655,1
    - Dst: tls12_get_sigandhash
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2656,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2657,1
    - Dst: fprintf
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2664,1
    - Dst: EVP_MD_name
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2664,1
    - Dst: EVP_SignInit_ex
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2666,1
    - Dst: EVP_SignUpdate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2667,1
    - Dst: EVP_MD_CTX_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2669,1
    - Dst: EVP_SignFinal
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2672,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2673,1
    - Dst: BUF_reverse
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2682,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2686,1
    - Dst: ssl3_digest_cached_records
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2689,1
    - Dst: ssl_set_handshake_header
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2691,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2692,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2696,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2699,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2701
      start: 2630
    functionDepth: 5
    functionLinenumber: 2630
    functionLinenumberEnd: 2701
    functionName: tls_construct_client_verify
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - EVP_MD_CTX_ctrl
    - tls12_get_sigandhash
    - s2n
    - SSLerr
    - ssl_handshake_start
    - BUF_reverse
    - EVP_MD_name
    - ssl3_digest_cached_records
    - ssl_set_handshake_header
    - EVP_MD_CTX_new
    - BIO_get_mem_data
    - EVP_MD_CTX_free
    - EVP_SignFinal
    - EVP_SignUpdate
    - fprintf
    - SSL_USE_SIGALGS
    - EVP_SignInit_ex
    linkageType: ''
    returnType: int
    signature: tls_construct_client_verify(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_USE_SIGALGS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2713,1
    - Dst: tls1_check_chain
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2720,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2723
      start: 2708
    functionDepth: 0
    functionLinenumber: 2708
    functionLinenumberEnd: 2723
    functionName: ssl3_check_client_certificate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 0
    functionsReached:
    - tls1_check_chain
    - SSL_USE_SIGALGS
    linkageType: ''
    returnType: int
    signature: ssl3_check_client_certificate(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::cert::cert_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2734,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2740,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2741,1
    - Dst: ssl3_check_client_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2746,1
    - Dst: ssl_do_client_cert_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2759,1
    - Dst: SSL_use_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2766,1
    - Dst: SSL_use_PrivateKey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2766,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2770,1
    - Dst: X509_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2774,1
    - Dst: EVP_PKEY_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2775,1
    - Dst: ssl3_check_client_certificate
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2776,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2781,1
    - Dst: ssl3_digest_cached_records
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2785,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2786,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2787,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 2
    argNames:
    - s
    - wst
    argTypes:
    - SSL*
    - WORK_STATE
    constantsTouched: []
    func_position:
      end: 2798
      start: 2725
    functionDepth: 5
    functionLinenumber: 2725
    functionLinenumberEnd: 2798
    functionName: tls_prepare_client_certificate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - ssl_do_client_cert_cb
    - ossl_statem_set_error
    - SSL_use_certificate
    - SSLerr
    - ssl3_digest_cached_records
    - ssl3_send_alert
    - SSL_use_PrivateKey
    - X509_free
    - SSL*::cert::cert_cb
    - EVP_PKEY_free
    - ssl3_check_client_certificate
    linkageType: ''
    returnType: WORK_STATE
    signature: tls_prepare_client_certificate(SSL *s, WORK_STATE wst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_output_cert_chain
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2802,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2805,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2806,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2807,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2812
      start: 2800
    functionDepth: 2
    functionLinenumber: 2800
    functionLinenumberEnd: 2812
    functionName: tls_construct_client_certificate
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - ssl3_output_cert_chain
    - ssl3_send_alert
    - ossl_statem_set_error
    - SSLerr
    linkageType: ''
    returnType: int
    signature: tls_construct_client_certificate(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_check_srvr_ecc_cert_and_alg
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2838,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2840,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2846,1
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2851,1
    - Dst: X509_certificate_type
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2852,1
    - Dst: has_bits
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2855,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2856,1
    - Dst: has_bits
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2861,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2862,1
    - Dst: has_bits
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2869,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2870,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2878,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2885,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2887
      start: 2816
    functionDepth: 6
    functionLinenumber: 2816
    functionLinenumberEnd: 2887
    functionName: ssl3_check_cert_and_algorithm
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 2
    functionsReached:
    - ssl_check_srvr_ecc_cert_and_alg
    - X509_certificate_type
    - SSLerr
    - has_bits
    - ssl3_send_alert
    - X509_get0_pubkey
    linkageType: ''
    returnType: int
    signature: ssl3_check_cert_and_algorithm(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2899,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2901,1
    - Dst: l2n3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 2908
      start: 2890
    functionDepth: 0
    functionLinenumber: 2890
    functionLinenumberEnd: 2908
    functionName: tls_construct_next_proto
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - memcpy
    - l2n3
    - memset
    linkageType: ''
    returnType: int
    signature: tls_construct_next_proto(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_load_ssl_client_cert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2916,1
    - Dst: SSL_get_client_CA_list
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2917,1
    - Dst: SSL*::ctx::client_cert_cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c:2924,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - s
    - px509
    - ppkey
    argTypes:
    - SSL*
    - X509**
    - EVP_PKEY**
    constantsTouched: []
    func_position:
      end: 2926
      start: 2911
    functionDepth: 3
    functionLinenumber: 2911
    functionLinenumberEnd: 2926
    functionName: ssl_do_client_cert_cb
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
    functionUses: 1
    functionsReached:
    - SSL_get_client_CA_list
    - ENGINE_load_ssl_client_cert
    - SSL*::ctx::client_cert_cb
    linkageType: ''
    returnType: int
    signature: ssl_do_client_cert_cb(SSL *s, X509 **px509, EVP_PKEY **ppkey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:63,1
    - Dst: OPENSSL_malloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:68,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:70,1
    - Dst: OPENSSL_zalloc
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:80,1
    - Dst: RSMBLY_BITMASK_SIZE
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:80,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:82,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - frag_len
    - reassembly
    argTypes:
    - unsigned long
    - int
    constantsTouched: []
    func_position:
      end: 91
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 91
    functionName: dtls1_hm_fragment_new
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c
    functionUses: 0
    functionsReached:
    - RSMBLY_BITMASK_SIZE
    - OPENSSL_free
    - OPENSSL_malloc
    - OPENSSL_zalloc
    linkageType: ''
    returnType: hm_fragment
    signature: "*dtls1_hm_fragment_new(unsigned long frag_len,\n                                          int
      reassembly)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:98,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:100,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:102,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:103,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - frag
    argTypes:
    - hm_fragment*
    constantsTouched: []
    func_position:
      end: 105
      start: 93
    functionDepth: 4
    functionLinenumber: 93
    functionLinenumberEnd: 105
    functionName: dtls1_hm_fragment_free
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c
    functionUses: 2
    functionsReached:
    - EVP_MD_CTX_free
    - OPENSSL_free
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: void
    signature: dtls1_hm_fragment_free(hm_fragment *frag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_query_mtu
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:118,1
    - Dst: dtls1_min_mtu
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:121,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:126,1
    - Dst: EVP_CIPHER_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:131,1
    - Dst: EVP_CIPHER_CTX_cipher
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:131,1
    - Dst: EVP_MD_CTX_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:135,1
    - Dst: EVP_CIPHER_CTX_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:140,1
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:141,1
    - Dst: BIO_wpending
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:184,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:195,1
    - Dst: dtls1_fix_message_header
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:232,1
    - Dst: dtls1_write_message_header
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:234,1
    - Dst: dtls1_write_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:239,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:247,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:247,1
    - Dst: SSL_get_options
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:249,1
    - Dst: dtls1_query_mtu
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:250,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:265,1
    - Dst: l2n3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:283,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:284,1
    - Dst: l2n3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:285,1
    - Dst: l2n3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:286,1
    - Dst: ssl3_finish_mac
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:294,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:300,1
    - Dst: dtls1_fix_message_header
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:320,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 104
    argCount: 2
    argNames:
    - s
    - type
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 324
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 324
    functionName: dtls1_do_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c
    functionUses: 2
    functionsReached:
    - dtls1_write_bytes
    - dtls1_query_mtu
    - dtls1_write_message_header
    - EVP_CIPHER_CTX_block_size
    - EVP_CIPHER_CTX_mode
    - SSL_get_options
    - s2n
    - l2n3
    - EVP_CIPHER_flags
    - ssl3_finish_mac
    - dtls1_fix_message_header
    - EVP_CIPHER_CTX_cipher
    - EVP_MD_CTX_size
    - OPENSSL_assert
    - BIO_flush
    - BIO_wpending
    - dtls1_min_mtu
    - BIO_ctrl
    - SSL_get_wbio
    - SSL*::msg_callback
    linkageType: ''
    returnType: int
    signature: dtls1_do_write(SSL *s, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:335,1
    - Dst: dtls_get_reassembled_message
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:338,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:352,1
    - Dst: l2n3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:366,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:367,1
    - Dst: l2n3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:368,1
    - Dst: l2n3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:369,1
    - Dst: ssl3_finish_mac
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:375,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:378,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:381,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - s
    - mt
    - len
    argTypes:
    - SSL*
    - int*
    - unsigned long*
    constantsTouched: []
    func_position:
      end: 389
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 389
    functionName: dtls_get_message
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c
    functionUses: 1
    functionsReached:
    - s2n
    - l2n3
    - memset
    - ssl3_finish_mac
    - SSL*::msg_callback
    - dtls_get_reassembled_message
    linkageType: ''
    returnType: int
    signature: dtls_get_message(SSL *s, int *mt, unsigned long *len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 403
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 403
    functionName: dtls1_max_handshake_message_len
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: dtls1_max_handshake_message_len(const SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_max_handshake_message_len
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:415,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:416,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:425,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:426,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:440,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - s
    - msg_hdr
    argTypes:
    - SSL*
    - struct hm_header_st*
    constantsTouched: []
    func_position:
      end: 445
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 445
    functionName: dtls1_preprocess_fragment
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c
    functionUses: 0
    functionsReached:
    - SSLerr
    - BUF_MEM_grow_clean
    - dtls1_max_handshake_message_len
    linkageType: ''
    returnType: int
    signature: dtls1_preprocess_fragment(SSL *s, struct hm_header_st *msg_hdr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pqueue_peek
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:462,1
    - Dst: pqueue_pop
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:470,1
    - Dst: dtls1_hm_fragment_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:471,1
    - Dst: pitem_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:472,1
    - Dst: pqueue_pop
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:484,1
    - Dst: dtls1_preprocess_fragment
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:486,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:491,1
    - Dst: dtls1_hm_fragment_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:495,1
    - Dst: pitem_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:496,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:503,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 2
    argNames:
    - s
    - ok
    argTypes:
    - SSL*
    - int*
    constantsTouched: []
    func_position:
      end: 509
      start: 447
    functionDepth: 5
    functionLinenumber: 447
    functionLinenumberEnd: 509
    functionName: dtls1_retrieve_buffered_fragment
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c
    functionUses: 0
    functionsReached:
    - dtls1_preprocess_fragment
    - pqueue_peek
    - ssl3_send_alert
    - dtls1_hm_fragment_free
    - memcpy
    - pitem_free
    - pqueue_pop
    linkageType: ''
    returnType: int
    signature: dtls1_retrieve_buffered_fragment(SSL *s, int *ok)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_max_handshake_message_len
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:521,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:528,1
    - Dst: pqueue_find
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:531,1
    - Dst: dtls1_hm_fragment_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:534,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:537,1
    - Dst: SSL*::method::ssl_read_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:558,1
    - Dst: SSL*::method::ssl_read_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:571,1
    - Dst: RSMBLY_BITMASK_MARK
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:579,1
    - Dst: RSMBLY_BITMASK_IS_COMPLETE
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:582,1
    - Dst: OPENSSL_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:586,1
    - Dst: pitem_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:591,1
    - Dst: pqueue_insert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:597,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:604,1
    - Dst: dtls1_hm_fragment_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:611,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 3
    argNames:
    - s
    - msg_hdr
    - ok
    argTypes:
    - SSL*
    - struct hm_header_st*
    - int*
    constantsTouched: []
    func_position:
      end: 614
      start: 511
    functionDepth: 5
    functionLinenumber: 511
    functionLinenumberEnd: 614
    functionName: dtls1_reassemble_fragment
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c
    functionUses: 0
    functionsReached:
    - pqueue_insert
    - SSL*::method::ssl_read_bytes
    - OPENSSL_assert
    - dtls1_hm_fragment_new
    - pitem_new
    - dtls1_hm_fragment_free
    - memset
    - dtls1_max_handshake_message_len
    - RSMBLY_BITMASK_IS_COMPLETE
    - memcpy
    - pqueue_find
    - RSMBLY_BITMASK_MARK
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: dtls1_reassemble_fragment(SSL *s, const struct hm_header_st *msg_hdr,
      int *ok)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:630,1
    - Dst: pqueue_find
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:633,1
    - Dst: SSL*::method::ssl_read_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:653,1
    - Dst: dtls1_reassemble_fragment
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:664,1
    - Dst: dtls1_max_handshake_message_len
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:666,1
    - Dst: dtls1_hm_fragment_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:669,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:673,1
    - Dst: SSL*::method::ssl_read_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:679,1
    - Dst: pitem_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:687,1
    - Dst: pqueue_insert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:691,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:700,1
    - Dst: dtls1_hm_fragment_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:707,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 51
    argCount: 3
    argNames:
    - s
    - msg_hdr
    - ok
    argTypes:
    - SSL*
    - struct hm_header_st*
    - int*
    constantsTouched: []
    func_position:
      end: 710
      start: 616
    functionDepth: 6
    functionLinenumber: 616
    functionLinenumberEnd: 710
    functionName: dtls1_process_out_of_seq_message
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c
    functionUses: 0
    functionsReached:
    - pqueue_insert
    - SSL*::method::ssl_read_bytes
    - OPENSSL_assert
    - dtls1_hm_fragment_new
    - pitem_new
    - dtls1_hm_fragment_free
    - memset
    - dtls1_max_handshake_message_len
    - memcpy
    - pqueue_find
    - dtls1_reassemble_fragment
    linkageType: ''
    returnType: int
    signature: "dtls1_process_out_of_seq_message(SSL *s, const struct hm_header_st
      *msg_hdr,\n                                 int *ok)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_retrieve_buffered_fragment
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:722,1
    - Dst: SSL*::method::ssl_read_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:730,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:740,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:745,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:757,1
    - Dst: dtls1_get_message_header
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:762,1
    - Dst: RECORD_LAYER_get_rrec_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:772,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:774,1
    - Dst: dtls1_process_out_of_seq_message
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:785,1
    - Dst: dtls1_reassemble_fragment
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:790,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:803,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:812,1
    - Dst: dtls1_preprocess_fragment
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:818,1
    - Dst: SSL*::method::ssl_read_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:825,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:846,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:860,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 94
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - SSL*
    - long*
    constantsTouched: []
    func_position:
      end: 864
      start: 712
    functionDepth: 7
    functionLinenumber: 712
    functionLinenumberEnd: 864
    functionName: dtls_get_reassembled_message
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c
    functionUses: 1
    functionsReached:
    - RECORD_LAYER_get_rrec_length
    - SSL*::method::ssl_read_bytes
    - dtls1_preprocess_fragment
    - SSLerr
    - dtls1_get_message_header
    - ssl3_send_alert
    - dtls1_process_out_of_seq_message
    - memcpy
    - dtls1_retrieve_buffered_fragment
    - dtls1_reassemble_fragment
    - SSL*::msg_callback
    linkageType: ''
    returnType: int
    signature: dtls_get_reassembled_message(SSL *s, long *len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:886,1
    - Dst: dtls1_set_message_header_int
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:892,1
    - Dst: dtls1_buffer_message
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:896,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 902
      start: 875
    functionDepth: 1
    functionLinenumber: 875
    functionLinenumberEnd: 902
    functionName: dtls_construct_change_cipher_spec
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c
    functionUses: 2
    functionsReached:
    - SSLerr
    - dtls1_set_message_header_int
    - s2n
    - dtls1_buffer_message
    linkageType: ''
    returnType: int
    signature: dtls_construct_change_cipher_spec(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_dgram_sctp_wait_for_dry
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:910,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:910,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:917,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:917,1
    - Dst: BIO_set_retry_read
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:918,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:918,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 922
      start: 905
    functionDepth: 2
    functionLinenumber: 905
    functionLinenumberEnd: 922
    functionName: dtls_wait_for_dry
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c
    functionUses: 2
    functionsReached:
    - BIO_clear_retry_flags
    - SSL_get_rbio
    - BIO_set_retry_read
    - BIO_dgram_sctp_wait_for_dry
    - SSL_get_wbio
    linkageType: ''
    returnType: WORK_STATE
    signature: dtls_wait_for_dry(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:928,1
    - Dst: dtls1_is_timer_expired
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:932,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:941,1
    - Dst: SSL_in_init
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:944,1
    - Dst: BIO_set_flags
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:947,1
    - Dst: SSL_get_rbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:947,1
    - Dst: dtls1_handle_timeout
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:951,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - s
    - code
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 952
      start: 925
    functionDepth: 5
    functionLinenumber: 925
    functionLinenumberEnd: 952
    functionName: dtls1_read_failed
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c
    functionUses: 1
    functionsReached:
    - BIO_set_flags
    - SSLerr
    - dtls1_handle_timeout
    - SSL_in_init
    - SSL_get_rbio
    - dtls1_is_timer_expired
    linkageType: ''
    returnType: int
    signature: dtls1_read_failed(SSL *s, int code)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seq
    - is_ccs
    argTypes:
    - unsigned short
    - int
    constantsTouched: []
    func_position:
      end: 967
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 967
    functionName: dtls1_get_queue_priority
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: dtls1_get_queue_priority(unsigned short seq, int is_ccs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pqueue_iterator
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:977,1
    - Dst: pqueue_next
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:979,1
    - Dst: pqueue_next
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:979,1
    - Dst: dtls1_retransmit_message
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:981,1
    - Dst: dtls1_get_queue_priority
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:982,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 989
      start: 969
    functionDepth: 2
    functionLinenumber: 969
    functionLinenumberEnd: 989
    functionName: dtls1_retransmit_buffered_messages
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c
    functionUses: 2
    functionsReached:
    - dtls1_retransmit_message
    - pqueue_iterator
    - pqueue_next
    - dtls1_get_queue_priority
    linkageType: ''
    returnType: int
    signature: dtls1_retransmit_buffered_messages(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1001,1
    - Dst: dtls1_hm_fragment_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1003,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1007,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1011,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1016,1
    - Dst: DTLS_RECORD_LAYER_get_w_epoch
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1033,1
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1035,1
    - Dst: dtls1_get_queue_priority
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1038,1
    - Dst: dtls1_get_queue_priority
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1042,1
    - Dst: pitem_new
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1045,1
    - Dst: dtls1_hm_fragment_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1047,1
    - Dst: pqueue_insert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1051,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 2
    argNames:
    - s
    - is_ccs
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 1053
      start: 991
    functionDepth: 5
    functionLinenumber: 991
    functionLinenumberEnd: 1053
    functionName: dtls1_buffer_message
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c
    functionUses: 2
    functionsReached:
    - pqueue_insert
    - OPENSSL_assert
    - dtls1_hm_fragment_new
    - pitem_new
    - dtls1_hm_fragment_free
    - memset
    - memcpy
    - DTLS_RECORD_LAYER_get_w_epoch
    - dtls1_get_queue_priority
    linkageType: ''
    returnType: int
    signature: dtls1_buffer_message(SSL *s, int is_ccs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1071,1
    - Dst: pqueue_find
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1075,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1077,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1090,1
    - Dst: dtls1_set_message_header_int
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1094,1
    - Dst: DTLS_RECORD_LAYER_get_w_epoch
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1104,1
    - Dst: DTLS_RECORD_LAYER_set_saved_w_epoch
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1113,1
    - Dst: dtls1_do_write
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1117,1
    - Dst: DTLS_RECORD_LAYER_set_saved_w_epoch
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1125,1
    - Dst: BIO_flush
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 3
    argNames:
    - s
    - seq
    - found
    argTypes:
    - SSL*
    - unsigned short
    - int*
    constantsTouched: []
    func_position:
      end: 1131
      start: 1055
    functionDepth: 3
    functionLinenumber: 1055
    functionLinenumberEnd: 1131
    functionName: dtls1_retransmit_message
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c
    functionUses: 2
    functionsReached:
    - SSLerr
    - BIO_flush
    - dtls1_set_message_header_int
    - memset
    - memcpy
    - pqueue_find
    - DTLS_RECORD_LAYER_get_w_epoch
    - dtls1_do_write
    - DTLS_RECORD_LAYER_set_saved_w_epoch
    linkageType: ''
    returnType: int
    signature: dtls1_retransmit_message(SSL *s, unsigned short seq, int *found)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dtls1_set_message_header_int
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - s
    - mt
    - len
    - frag_off
    - frag_len
    argTypes:
    - SSL*
    - unsigned char
    - unsigned long
    - unsigned long
    - unsigned long
    constantsTouched: []
    func_position:
      end: 1144
      start: 1133
    functionDepth: 1
    functionLinenumber: 1133
    functionLinenumberEnd: 1144
    functionName: dtls1_set_message_header
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c
    functionUses: 2
    functionsReached:
    - dtls1_set_message_header_int
    linkageType: ''
    returnType: void
    signature: "dtls1_set_message_header(SSL *s,\n                              unsigned
      char mt, unsigned long len,\n                              unsigned long frag_off,
      unsigned long frag_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - s
    - mt
    - len
    - seq_num
    - frag_off
    - frag_len
    argTypes:
    - SSL*
    - unsigned char
    - unsigned long
    - unsigned short
    - unsigned long
    - unsigned long
    constantsTouched: []
    func_position:
      end: 1159
      start: 1147
    functionDepth: 0
    functionLinenumber: 1147
    functionLinenumberEnd: 1159
    functionName: dtls1_set_message_header_int
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "dtls1_set_message_header_int(SSL *s, unsigned char mt,\n                             unsigned
      long len, unsigned short seq_num,\n                             unsigned long
      frag_off, unsigned long frag_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - frag_off
    - frag_len
    argTypes:
    - SSL*
    - unsigned long
    - unsigned long
    constantsTouched: []
    func_position:
      end: 1168
      start: 1161
    functionDepth: 0
    functionLinenumber: 1161
    functionLinenumberEnd: 1168
    functionName: dtls1_fix_message_header
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: dtls1_fix_message_header(SSL *s, unsigned long frag_off, unsigned long
      frag_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: l2n3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1175,1
    - Dst: s2n
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1177,1
    - Dst: l2n3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1178,1
    - Dst: l2n3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - s
    - p
    argTypes:
    - SSL*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 1182
      start: 1170
    functionDepth: 0
    functionLinenumber: 1170
    functionLinenumberEnd: 1182
    functionName: dtls1_write_message_header
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c
    functionUses: 1
    functionsReached:
    - s2n
    - l2n3
    linkageType: ''
    returnType: unsigned char
    signature: '*dtls1_write_message_header(SSL *s, unsigned char *p)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1186,1
    - Dst: n2l3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1188,1
    - Dst: n2s
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1190,1
    - Dst: n2l3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1191,1
    - Dst: n2l3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c:1192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - data
    - msg_hdr
    argTypes:
    - unsigned char*
    - struct hm_header_st*
    constantsTouched: []
    func_position:
      end: 1193
      start: 1184
    functionDepth: 0
    functionLinenumber: 1184
    functionLinenumberEnd: 1193
    functionName: dtls1_get_message_header
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c
    functionUses: 2
    functionsReached:
    - n2s
    - n2l3
    - memset
    linkageType: ''
    returnType: void
    signature: dtls1_get_message_header(unsigned char *data, struct hm_header_st *msg_hdr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_write_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:34,1
    - Dst: ssl3_finish_mac
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:43,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:50,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - s
    - type
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 58
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 58
    functionName: ssl3_do_write
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c
    functionUses: 2
    functionsReached:
    - ssl3_finish_mac
    - ssl3_write_bytes
    - SSL*::msg_callback
    linkageType: ''
    returnType: int
    signature: ssl3_do_write(SSL *s, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_handshake_start
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:66,1
    - Dst: SSL*::method::ssl3_enc::final_finish_mac
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:68,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:74,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:81,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:82,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:85,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:86,1
    - Dst: ssl_set_handshake_header
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:90,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - s
    - sender
    - slen
    argTypes:
    - SSL*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 96
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 96
    functionName: tls_construct_finished
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c
    functionUses: 2
    functionsReached:
    - SSLerr
    - ssl_handshake_start
    - OPENSSL_assert
    - ssl_set_handshake_header
    - memcpy
    - SSL*::method::ssl3_enc::final_finish_mac
    linkageType: ''
    returnType: int
    signature: tls_construct_finished(SSL *s, const char *sender, int slen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::method::ssl3_enc::final_finish_mac
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 125
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 125
    functionName: ssl3_take_mac
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c
    functionUses: 0
    functionsReached:
    - SSL*::method::ssl3_enc::final_finish_mac
    linkageType: ''
    returnType: void
    signature: ssl3_take_mac(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:133,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:139,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:145,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:152,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:161,1
    - Dst: ssl3_do_change_cipher_spec
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:166,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:168,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:172,1
    - Dst: dtls1_reset_seq_numbers
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:173,1
    - Dst: BIO_ctrl
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:184,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:184,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:190,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:191,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 193
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 193
    functionName: tls_process_change_cipher_spec
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c
    functionUses: 2
    functionsReached:
    - ossl_statem_set_error
    - SSLerr
    - dtls1_reset_seq_numbers
    - ssl3_send_alert
    - PACKET_remaining
    - SSL_get_wbio
    - BIO_ctrl
    - SSL_IS_DTLS
    - ssl3_do_change_cipher_spec
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: tls_process_change_cipher_spec(SSL *s, PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:202,1
    - Dst: PACKET_remaining
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:209,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:211,1
    - Dst: CRYPTO_memcmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:215,1
    - Dst: PACKET_data
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:215,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:217,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:225,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:226,1
    - Dst: OPENSSL_assert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:229,1
    - Dst: memcpy
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:230,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:236,1
    - Dst: ossl_statem_set_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:237,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 2
    argNames:
    - s
    - pkt
    argTypes:
    - SSL*
    - PACKET*
    constantsTouched: []
    func_position:
      end: 239
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 239
    functionName: tls_process_finished
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c
    functionUses: 2
    functionsReached:
    - ossl_statem_set_error
    - SSLerr
    - OPENSSL_assert
    - CRYPTO_memcmp
    - ssl3_send_alert
    - memcpy
    - PACKET_remaining
    - PACKET_data
    linkageType: ''
    returnType: MSG_PROCESS_RETURN
    signature: tls_process_finished(SSL *s, PACKET *pkt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 251
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 251
    functionName: tls_construct_change_cipher_spec
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: tls_construct_change_cipher_spec(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_add_cert_chain
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:258,1
    - Dst: SSL_HM_HEADER_LENGTH
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:261,1
    - Dst: ssl_handshake_start
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:262,1
    - Dst: l2n3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:263,1
    - Dst: ssl_set_handshake_header
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:266,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:267,1
    - Dst: SSL_HM_HEADER_LENGTH
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - s
    - cpk
    argTypes:
    - SSL*
    - CERT_PKEY*
    constantsTouched: []
    func_position:
      end: 271
      start: 253
    functionDepth: 6
    functionLinenumber: 253
    functionLinenumberEnd: 271
    functionName: ssl3_output_cert_chain
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c
    functionUses: 2
    functionsReached:
    - SSLerr
    - ssl_handshake_start
    - ssl_add_cert_chain
    - l2n3
    - ssl_set_handshake_header
    - SSL_HM_HEADER_LENGTH
    linkageType: ''
    returnType: unsigned long
    signature: ssl3_output_cert_chain(SSL *s, CERT_PKEY *cpk)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:278,1
    - Dst: BIO_dgram_is_sctp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:278,1
    - Dst: SSL_get_wbio
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:278,1
    - Dst: dtls_wait_for_dry
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:280,1
    - Dst: ssl3_cleanup_key_block
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:287,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:289,1
    - Dst: BUF_MEM_free
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:294,1
    - Dst: ssl_free_wbio_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:298,1
    - Dst: ssl_update_cache
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:308,1
    - Dst: ssl_update_cache
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:313,1
    - Dst: cb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:327,1
    - Dst: SSL_IS_DTLS
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:329,1
    - Dst: dtls1_clear_received_buffer
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:334,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 2
    argNames:
    - s
    - wst
    argTypes:
    - SSL*
    - WORK_STATE
    constantsTouched: []
    func_position:
      end: 339
      start: 273
    functionDepth: 5
    functionLinenumber: 273
    functionLinenumberEnd: 339
    functionName: tls_finish_handshake
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c
    functionUses: 2
    functionsReached:
    - BIO_dgram_is_sctp
    - SSL_IS_DTLS
    - dtls_wait_for_dry
    - ssl3_cleanup_key_block
    - cb
    - ssl_free_wbio_buffer
    - dtls1_clear_received_buffer
    - ssl_update_cache
    - SSL_get_wbio
    - BUF_MEM_free
    linkageType: ''
    returnType: WORK_STATE
    signature: tls_finish_handshake(SSL *s, WORK_STATE wst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::method::ssl_read_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:352,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:367,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:378,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:398,1
    - Dst: RECORD_LAYER_is_sslv2_record
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:408,1
    - Dst: RECORD_LAYER_get_rrec_length
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:416,1
    - Dst: n2l3
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:423,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:427,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:438,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 2
    argNames:
    - s
    - mt
    argTypes:
    - SSL*
    - int*
    constantsTouched: []
    func_position:
      end: 440
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 440
    functionName: tls_get_message_header
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c
    functionUses: 1
    functionsReached:
    - RECORD_LAYER_get_rrec_length
    - RECORD_LAYER_is_sslv2_record
    - SSL*::method::ssl_read_bytes
    - SSLerr
    - n2l3
    - ssl3_send_alert
    - SSL*::msg_callback
    linkageType: ''
    returnType: int
    signature: tls_get_message_header(SSL *s, int *mt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL*::method::ssl_read_bytes
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:457,1
    - Dst: ssl3_take_mac
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:474,1
    - Dst: RECORD_LAYER_is_sslv2_record
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:478,1
    - Dst: ssl3_finish_mac
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:479,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:481,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:482,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:487,1
    - Dst: ssl3_finish_mac
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:490,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:492,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:493,1
    - Dst: SSL*::msg_callback
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:498,1
    - Dst: SSLerr
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:508,1
    - Dst: ssl3_send_alert
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:509,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - SSL*
    - unsigned long*
    constantsTouched: []
    func_position:
      end: 515
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 515
    functionName: tls_get_message_body
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c
    functionUses: 1
    functionsReached:
    - RECORD_LAYER_is_sslv2_record
    - SSL*::method::ssl_read_bytes
    - SSLerr
    - ssl3_send_alert
    - ssl3_take_mac
    - ssl3_finish_mac
    - SSL*::msg_callback
    linkageType: ''
    returnType: int
    signature: tls_get_message_body(SSL *s, unsigned long *len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:519,1
    - Dst: EVP_PKEY_id
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:522,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - x
    - pk
    argTypes:
    - X509*
    - EVP_PKEY*
    constantsTouched: []
    func_position:
      end: 542
      start: 517
    functionDepth: 2
    functionLinenumber: 517
    functionLinenumberEnd: 542
    functionName: ssl_cert_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c
    functionUses: 3
    functionsReached:
    - EVP_PKEY_id
    - X509_get0_pubkey
    linkageType: ''
    returnType: int
    signature: ssl_cert_type(const X509 *x, const EVP_PKEY *pk)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 64
    argCount: 1
    argNames:
    - type
    argTypes:
    - long
    constantsTouched: []
    func_position:
      end: 611
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 611
    functionName: ssl_verify_alarm_type
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: ssl_verify_alarm_type(long type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_security
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 618
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 618
    functionName: ssl_allow_compression
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c
    functionUses: 5
    functionsReached:
    - ssl_security
    linkageType: ''
    returnType: int
    signature: ssl_allow_compression(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DTLS_VERSION_LT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - s
    - a
    - b
    argTypes:
    - SSL*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 629
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 629
    functionName: version_cmp
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c
    functionUses: 0
    functionsReached:
    - DTLS_VERSION_LT
    linkageType: ''
    returnType: int
    signature: version_cmp(const SSL *s, int a, int b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:698,1
    - Dst: ssl_security
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:699,1
    - Dst: version_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:703,1
    - Dst: tls1_suiteb
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:708,1
    - Dst: FIPS_mode
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:710,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 2
    argNames:
    - s
    - method
    argTypes:
    - SSL*
    - SSL_METHOD*
    constantsTouched: []
    func_position:
      end: 714
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 714
    functionName: ssl_method_error
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c
    functionUses: 0
    functionsReached:
    - ssl_security
    - FIPS_mode
    - tls1_suiteb
    - version_cmp
    linkageType: ''
    returnType: int
    signature: ssl_method_error(const SSL *s, const SSL_METHOD *method)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:733,1
    - Dst: version_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:743,1
    - Dst: version_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:746,1
    - Dst: ssl_method_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:747,1
    - Dst: version_info*::cmeth
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:747,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - s
    - version
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 752
      start: 725
    functionDepth: 2
    functionLinenumber: 725
    functionLinenumberEnd: 752
    functionName: ssl_version_supported
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c
    functionUses: 1
    functionsReached:
    - ssl_method_error
    - version_info*::cmeth
    - version_cmp
    linkageType: ''
    returnType: int
    signature: ssl_version_supported(const SSL *s, int version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TLS_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:780,1
    - Dst: DTLS_method
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:782,1
    - Dst: ssl_method_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:790,1
    - Dst: version_info*::smeth
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:790,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 794
      start: 763
    functionDepth: 2
    functionLinenumber: 763
    functionLinenumberEnd: 794
    functionName: ssl_check_version_downgrade
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c
    functionUses: 0
    functionsReached:
    - TLS_method
    - version_info*::smeth
    - DTLS_method
    - ssl_method_error
    linkageType: ''
    returnType: int
    signature: ssl_check_version_downgrade(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DTLS_VERSION_GT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:843,1
    - Dst: DTLS_VERSION_LT
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:844,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - method_version
    - version
    - bound
    argTypes:
    - int
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 851
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 851
    functionName: ssl_set_version_bound
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c
    functionUses: 3
    functionsReached:
    - DTLS_VERSION_GT
    - DTLS_VERSION_LT
    linkageType: ''
    returnType: int
    signature: ssl_set_version_bound(int method_version, int version, int *bound)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:881,1
    - Dst: version_cmp
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:903,1
    - Dst: version_info*::smeth
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:905,1
    - Dst: ssl_method_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:906,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 914
      start: 862
    functionDepth: 2
    functionLinenumber: 862
    functionLinenumberEnd: 914
    functionName: ssl_choose_server_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c
    functionUses: 1
    functionsReached:
    - ssl_method_error
    - version_info*::smeth
    - version_cmp
    linkageType: ''
    returnType: int
    signature: ssl_choose_server_version(SSL *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version_info*::cmeth
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:959,1
    - Dst: ssl_method_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:960,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - s
    - version
    argTypes:
    - SSL*
    - int
    constantsTouched: []
    func_position:
      end: 969
      start: 926
    functionDepth: 2
    functionLinenumber: 926
    functionLinenumberEnd: 969
    functionName: ssl_choose_client_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c
    functionUses: 1
    functionsReached:
    - version_info*::cmeth
    - ssl_method_error
    linkageType: ''
    returnType: int
    signature: ssl_choose_client_version(SSL *s, int version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version_info*::cmeth
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:1051,1
    - Dst: ssl_method_error
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:1052,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - s
    - min_version
    - max_version
    argTypes:
    - SSL*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 1071
      start: 990
    functionDepth: 2
    functionLinenumber: 990
    functionLinenumberEnd: 1071
    functionName: ssl_get_client_min_max_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c
    functionUses: 1
    functionsReached:
    - version_info*::cmeth
    - ssl_method_error
    linkageType: ''
    returnType: int
    signature: "ssl_get_client_min_max_version(const SSL *s, int *min_version,\n                                   int
      *max_version)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssl_get_client_min_max_version
      Src: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c:1085,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    constantsTouched: []
    func_position:
      end: 1092
      start: 1081
    functionDepth: 3
    functionLinenumber: 1081
    functionLinenumberEnd: 1092
    functionName: ssl_set_client_hello_version
    functionSourceFile: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c
    functionUses: 1
    functionsReached:
    - ssl_get_client_min_max_version
    linkageType: ''
    returnType: int
    signature: ssl_set_client_hello_version(SSL *s)
Fuzzer filename: /src/openweave-core/src/test-apps/fuzz/FuzzPASEResponderStep1.cpp
Fuzzing method: LLVMFuzzerTestOneInput
report: name
sources:
- function_names: []
  source_file: /src/openweave-core/src/inet/IPPrefix.h
- function_names:
  - IPAddress::operator==(const IPAddress& other) const
  - IPAddress::operator!=(const IPAddress& other) const
  - nl::Inet::IPAddress::ToLwIPAddr
  - nl::Inet::IPAddress::FromLwIPAddr
  - nl::Inet::IPAddress::ToLwIPAddrType
  - nl::Inet::IPAddress::ToIPv4
  - nl::Inet::IPAddress::FromIPv4
  - nl::Inet::IPAddress::ToIPv6
  - nl::Inet::IPAddress::FromIPv6
  - nl::Inet::IPAddress::ToIPv4
  - nl::Inet::IPAddress::FromIPv4
  - nl::Inet::IPAddress::ToIPv6
  - nl::Inet::IPAddress::FromIPv6
  - nl::Inet::IPAddress::FromSockAddr
  - nl::Inet::IPAddress::IsIPv4
  - nl::Inet::IPAddress::IsIPv4Multicast
  - nl::Inet::IPAddress::IsIPv4Broadcast
  - nl::Inet::IPAddress::IsMulticast
  - nl::Inet::IPAddress::IsIPv6
  - nl::Inet::IPAddress::IsIPv6Multicast
  - nl::Inet::IPAddress::IsIPv6GlobalUnicast
  - nl::Inet::IPAddress::IsIPv6ULA
  - nl::Inet::IPAddress::IsIPv6LinkLocal
  - nl::Inet::IPAddress::InterfaceId
  - nl::Inet::IPAddress::Subnet
  - nl::Inet::IPAddress::GlobalId
  - nl::Inet::IPAddress::Type
  - nl::Inet::IPAddress::WriteAddress
  - nl::Inet::IPAddress::ReadAddress
  - nl::Inet::IPAddress::MakeULA
  - nl::Inet::IPAddress::MakeLLA
  - nl::Inet::IPAddress::MakeIPv6Multicast
  - nl::Inet::IPAddress::MakeIPv6Multicast
  - nl::Inet::IPAddress::MakeIPv6WellKnownMulticast
  - nl::Inet::IPAddress::MakeIPv6TransientMulticast
  - nl::Inet::IPAddress::MakeIPv6PrefixMulticast
  - nl::Inet::IPAddress::MakeIPv4Broadcast
  source_file: /src/openweave-core/src/inet/IPAddress.cpp
- function_names: []
  source_file: /src/openweave-core/src/inet/Inet.h
- function_names:
  - nl::Inet::InetTimer::GetTimeMillis
  source_file: /src/openweave-core/src/inet/InetTimer.h
- function_names:
  - nl::Inet::EndPointBasis::InitEndPointBasis
  source_file: /src/openweave-core/src/inet/EndPointBasis.cpp
- function_names: []
  source_file: /src/openweave-core/src/inet/IANAConstants.h
- function_names:
  - nl::Inet::IPEndPointBasis
  source_file: /src/openweave-core/src/inet/RawEndPoint.h
- function_names:
  - nl::Inet::SocketEvents::SetFDs
  - nl::Inet::SocketEvents::FromFDs
  source_file: /src/openweave-core/src/inet/InetLayerBasis.cpp
- function_names:
  - nl::Inet::TunEndPoint::Init
  - nl::Inet::TunEndPoint::Open
  - nl::Inet::TunEndPoint::Close
  - nl::Inet::TunEndPoint::Free
  - nl::Inet::TunEndPoint::Send
  - nl::Inet::TunEndPoint::IsInterfaceUp
  - nl::Inet::TunEndPoint::InterfaceUp
  - nl::Inet::TunEndPoint::InterfaceDown
  - nl::Inet::TunEndPoint::GetTunnelInterfaceId
  - nl::Inet::TunEndPoint::TunDevSendMessage
  - nl::Inet::TunEndPoint::TunDevSendMessage
  - nl::Inet::TunEndPoint::CheckV6Sanity
  - nl::Inet::TunEndPoint::HandleDataReceived
  - nl::Inet::TunEndPoint::LwIPPostToInetEventQ
  - nl::Inet::TunEndPoint::LwIPOutputIPv4
  - nl::Inet::TunEndPoint::LwIPOutputIPv6
  - nl::Inet::TunEndPoint::LwIPReceiveTunMessage
  - nl::Inet::TunEndPoint::LwIPReceiveTunV6Message
  - nl::Inet::TunEndPoint::TunInterfaceNetifInit
  - nl::Inet::TunEndPoint::TunDevOpen
  - nl::Inet::TunEndPoint::TunDevClose
  - nl::Inet::TunEndPoint::TunGetInterface
  - nl::Inet::TunEndPoint::TunDevRead
  - nl::Inet::TunEndPoint::PrepareIO
  - nl::Inet::TunEndPoint::HandlePendingIO
  source_file: /src/openweave-core/src/inet/TunEndPoint.cpp
- function_names:
  - '& InetLayerBasis::Layer(void) const'
  - nl::Inet::InetLayerBasis::IsCreatedByInetLayer
  - nl::Inet::InetLayerBasis::InitInetLayerBasis
  - nl::Inet::SocketEvents::SocketEvents
  - nl::Inet::SocketEvents::SocketEvents
  - nl::Inet::SocketEvents::IsSet
  - nl::Inet::SocketEvents::IsReadable
  - nl::Inet::SocketEvents::IsWriteable
  - nl::Inet::SocketEvents::IsError
  - nl::Inet::SocketEvents::SetRead
  - nl::Inet::SocketEvents::SetWrite
  - nl::Inet::SocketEvents::SetError
  - nl::Inet::SocketEvents::Clear
  - nl::Inet::SocketEvents::ClearRead
  - nl::Inet::SocketEvents::ClearWrite
  - nl::Inet::SocketEvents::ClearError
  source_file: /src/openweave-core/src/inet/InetLayerBasis.h
- function_names: []
  source_file: /src/openweave-core/src/inet/InetBuffer.h
- function_names:
  - nl::Inet::IPEndPointBasis
  - nl::Inet::IPEndPointBasis::FindNetifFromInterfaceId
  source_file: /src/openweave-core/src/inet/IPEndPointBasis.h
- function_names:
  - nl::Inet::InetLayer::UpdateSnapshot
  - nl::Inet::InetLayer::InitQueueLimiter
  - nl::Inet::InetLayer::CanEnqueueDroppableEvent
  - nl::Inet::InetLayer::DroppableEventDequeued
  - nl::Inet::InetLayer::InitQueueLimiter
  - nl::Inet::InetLayer::CanEnqueueDroppableEvent
  - nl::Inet::InetLayer::DroppableEventDequeued
  - nl::Inet::InetLayer::InitQueueLimiter
  - nl::Inet::InetLayer::CanEnqueueDroppableEvent
  - nl::Inet::InetLayer::DroppableEventDequeued
  - nl::Inet::InetLayer::Init
  - nl::Inet::InetLayer::Shutdown
  - nl::Inet::InetLayer::GetPlatformData
  - nl::Inet::InetLayer::SetPlatformData
  - nl::Inet::InetLayer::IsIdleTimerRunning
  - nl::Inet::InetLayer::GetLinkLocalAddr
  - nl::Inet::InetLayer::NewRawEndPoint
  - nl::Inet::InetLayer::NewTCPEndPoint
  - nl::Inet::InetLayer::NewUDPEndPoint
  - nl::Inet::InetLayer::NewTunEndPoint
  - nl::Inet::InetLayer::ResolveHostAddress
  - nl::Inet::InetLayer::ResolveHostAddress
  - nl::Inet::InetLayer::ResolveHostAddress
  - nl::Inet::InetLayer::CancelResolveHostAddress
  - nl::Inet::SystemTimerComplete
  - nl::Inet::InetLayer::StartTimer
  - nl::Inet::InetLayer::CancelTimer
  - nl::Inet::InetLayer::GetInterfaceFromAddr
  - nl::Inet::InetLayer::MatchLocalIPv6Subnet
  - nl::Inet::InetLayer::HandleTCPInactivityTimer
  - nl::Inet::InetLayer::HandleInetLayerEvent
  - nl::Inet::InetLayer::PostEvent
  - nl::Inet::InetLayer::DispatchEvents
  - nl::Inet::InetLayer::StartPlatformTimer
  - nl::Inet::InetLayer::HandlePlatformTimer
  - nl::Inet::InetLayer::PrepareSelect
  - nl::Inet::InetLayer::HandleSelectResult
  - nl::Inet::IPPacketInfo::Clear
  - nl::Inet::Platform::InetLayer::WillInit
  - nl::Inet::Platform::InetLayer::DidInit
  - nl::Inet::Platform::InetLayer::WillShutdown
  - nl::Inet::Platform::InetLayer::DidShutdown
  - nl::Inet::Platform::InetLayer::PostEvent
  - nl::Inet::Platform::InetLayer::DispatchEvents
  - nl::Inet::Platform::InetLayer::DispatchEvent
  - nl::Inet::Platform::InetLayer::StartTimer
  source_file: /src/openweave-core/src/inet/InetLayer.cpp
- function_names:
  - nl::Inet::IPAddress::ToString
  - nl::Inet::IPAddress::FromString
  - nl::Inet::IPAddress::FromString
  source_file: /src/openweave-core/src/inet/IPAddress-StringFuncts.cpp
- function_names: []
  source_file: /src/openweave-core/src/inet/DNSResolver.h
- function_names: []
  source_file: /src/openweave-core/src/inet/arpa-inet-compatibility.h
- function_names: []
  source_file: /src/openweave-core/src/inet/InetFaultInjection.h
- function_names: []
  source_file: /src/openweave-core/src/inet/InetTimer.cpp
- function_names:
  - nl::Inet::FaultInjection::GetManager
  source_file: /src/openweave-core/src/inet/InetFaultInjection.cpp
- function_names:
  - nl::Inet::DNSResolver::Resolve
  - nl::Inet::DNSResolver::Cancel
  - nl::Inet::DNSResolver::HandleResolveComplete
  - nl::Inet::DNSResolver::LwIPHandleResolveComplete
  - nl::Inet::DNSResolver::InitAddrInfoHints
  - nl::Inet::DNSResolver::ProcessGetAddrInfoResult
  - nl::Inet::DNSResolver::CopyAddresses
  - nl::Inet::DNSResolver::CountAddresses
  - nl::Inet::DNSResolver::HandleAsyncResolveComplete
  source_file: /src/openweave-core/src/inet/DNSResolver.cpp
- function_names:
  - nl::Inet::RegisterInetLayerErrorFormatter
  - nl::Inet::FormatInetLayerError
  source_file: /src/openweave-core/src/inet/InetError.cpp
- function_names:
  - nl::Inet::IPPrefix::IsZero
  - IPPrefix::operator==(const IPPrefix& other) const
  - IPPrefix::operator!=(const IPPrefix& other) const
  - nl::Inet::IPPrefix::MatchAddress
  source_file: /src/openweave-core/src/inet/IPPrefix.cpp
- function_names:
  - nl::Inet::ParseHostAndPort
  - nl::Inet::ParseHostPortAndInterface
  source_file: /src/openweave-core/src/inet/InetUtils.cpp
- function_names: []
  source_file: /src/openweave-core/src/inet/AsyncDNSResolverSockets.h
- function_names:
  - nl::Inet::EndPointBasis
  source_file: /src/openweave-core/src/inet/TunEndPoint.h
- function_names:
  - nl::Inet::EndPointBasis
  - nl::Inet::TCPEndPoint::MaxTCPSendQueuePolls
  - nl::Inet::TCPEndPoint::IsConnected
  - nl::Inet::TCPEndPoint::LogId
  - nl::Inet::TCPEndPoint::MarkActive
  source_file: /src/openweave-core/src/inet/TCPEndPoint.h
- function_names:
  - nl::Inet::INET_IsInetEvent
  source_file: /src/openweave-core/src/inet/InetLayerEvents.h
- function_names:
  - nl::Inet::AsyncDNSResolverSockets::Init
  - nl::Inet::AsyncDNSResolverSockets::Shutdown
  - nl::Inet::AsyncDNSResolverSockets::PrepareDNSResolver
  - nl::Inet::AsyncDNSResolverSockets::EnqueueRequest
  - nl::Inet::AsyncDNSResolverSockets::DequeueRequest
  - nl::Inet::AsyncDNSResolverSockets::Cancel
  - nl::Inet::AsyncDNSResolverSockets::UpdateDNSResult
  - nl::Inet::AsyncDNSResolverSockets::Resolve
  - nl::Inet::AsyncDNSResolverSockets::DNSResultEventHandler
  - nl::Inet::AsyncDNSResolverSockets::NotifyWeaveThread
  - nl::Inet::AsyncDNSResolverSockets::AsyncDNSThreadRun
  - nl::Inet::AsyncDNSResolverSockets::AsyncMutexLock
  - nl::Inet::AsyncDNSResolverSockets::AsyncMutexUnlock
  source_file: /src/openweave-core/src/inet/AsyncDNSResolverSockets.cpp
- function_names:
  - nl::Inet::LwIPBindInterface
  - nl::Inet::RawEndPoint::Bind
  - nl::Inet::RawEndPoint::BindIPv6LinkLocal
  - nl::Inet::RawEndPoint::Listen
  - nl::Inet::RawEndPoint::Close
  - nl::Inet::RawEndPoint::Free
  - nl::Inet::RawEndPoint::SendTo
  - nl::Inet::RawEndPoint::SendTo
  - nl::Inet::RawEndPoint::SendMsg
  - nl::Inet::RawEndPoint::SetICMPFilter
  - nl::Inet::RawEndPoint::BindInterface
  - nl::Inet::RawEndPoint::Init
  - nl::Inet::RawEndPoint::GetBoundInterface
  - nl::Inet::RawEndPoint::HandleDataReceived
  - nl::Inet::RawEndPoint::GetPCB
  - nl::RawEndPoint::GetSocket
  - nl::RawEndPoint::PrepareIO
  - nl::RawEndPoint::HandlePendingIO
  source_file: /src/openweave-core/src/inet/RawEndPoint.cpp
- function_names:
  - nl::Inet::InetLayerBasis
  - nl::Inet::EndPointBasis::IsSocketsEndPoint
  - nl::Inet::EndPointBasis::IsLWIPEndPoint
  - nl::Inet::EndPointBasis::IsOpenEndPoint
  - nl::Inet::EndPointBasis::DeferredFree
  source_file: /src/openweave-core/src/inet/EndPointBasis.h
- function_names:
  - nl::Inet::LwIPBindInterface
  - nl::Inet::UDPEndPoint::Bind
  - nl::Inet::UDPEndPoint::Listen
  - nl::Inet::UDPEndPoint::Close
  - nl::Inet::UDPEndPoint::Free
  - nl::Inet::UDPEndPoint::SendTo
  - nl::Inet::UDPEndPoint::SendTo
  - nl::Inet::UDPEndPoint::SendMsg
  - nl::Inet::UDPEndPoint::BindInterface
  - nl::Inet::UDPEndPoint::Init
  - nl::Inet::UDPEndPoint::GetBoundInterface
  - nl::Inet::UDPEndPoint::GetBoundPort
  - nl::Inet::UDPEndPoint::HandleDataReceived
  - nl::Inet::UDPEndPoint::GetPCB
  - UDPEndPoint::GetSocket
  - UDPEndPoint::PrepareIO
  - UDPEndPoint::HandlePendingIO
  source_file: /src/openweave-core/src/inet/UDPEndPoint.cpp
- function_names:
  - nl::Inet::GetInterfaceName
  - nl::Inet::InterfaceNameToId
  - nl::Inet::GetIOCTLSocket
  - nl::Inet::CloseIOCTLSocket
  - nl::Inet::backport_if_freenameindex
  - nl::Inet::backport_if_nameindex
  - nl::Inet::InterfaceIterator::InterfaceIterator
  - InterfaceIterator::~InterfaceIterator(void)
  - nl::Inet::InterfaceIterator::HasCurrent
  - nl::Inet::InterfaceIterator::Next
  - nl::Inet::InterfaceIterator::GetInterfaceId
  - nl::Inet::InterfaceIterator::GetInterfaceName
  - nl::Inet::InterfaceIterator::IsUp
  - nl::Inet::InterfaceIterator::SupportsMulticast
  - nl::Inet::InterfaceIterator::HasBroadcastAddress
  - nl::Inet::InterfaceIterator::GetFlags
  - nl::Inet::InterfaceAddressIterator::InterfaceAddressIterator
  - InterfaceAddressIterator::~InterfaceAddressIterator(void)
  - nl::Inet::InterfaceAddressIterator::HasCurrent
  - nl::Inet::InterfaceAddressIterator::Next
  - nl::Inet::InterfaceAddressIterator::GetAddress
  - nl::Inet::InterfaceAddressIterator::GetPrefixLength
  - nl::Inet::InterfaceAddressIterator::GetInterfaceId
  - nl::Inet::InterfaceAddressIterator::GetInterfaceName
  - nl::Inet::InterfaceAddressIterator::IsUp
  - nl::Inet::InterfaceAddressIterator::SupportsMulticast
  - nl::Inet::InterfaceAddressIterator::HasBroadcastAddress
  - nl::Inet::InterfaceAddressIterator::GetAddressWithPrefix
  - nl::Inet::NetmaskToPrefixLength
  source_file: /src/openweave-core/src/inet/InetInterface.cpp
- function_names:
  - INET_MapOSError
  - INET_DescribeOSError
  - INET_IsOSError
  - INET_MapLwIPError
  - INET_DescribeLwIPError
  - INET_IsLwIPError
  source_file: /src/openweave-core/src/inet/InetError.h
- function_names: []
  source_file: /src/openweave-core/src/inet/InetConfig.h
- function_names:
  - nl::Inet::InetLayer
  - nl::Inet::InetLayer::SystemLayer
  - nl::Inet::InetLayer::Init
  - nl::Inet::InetLayer::DispatchEvent
  - nl::Inet::InetLayer::HandleEvent
  - nl::Inet::InetLayer::WakeSelect
  source_file: /src/openweave-core/src/inet/InetLayer.h
- function_names:
  - nil_tcpip_callback
  - start_tcp_timers
  - nl::Inet::TCPEndPoint::Bind
  - nl::Inet::TCPEndPoint::Listen
  - nl::Inet::TCPConnRepairInfo::IsValid
  - nl::Inet::TCPConnRepairInfo::Dump
  - nl::Inet::TCPEndPoint::RepairConnection
  - nl::Inet::TCPEndPoint::Connect
  - nl::Inet::TCPEndPoint::SetConnectTimeout
  - nl::Inet::TCPEndPoint::StartConnectTimerIfSet
  - nl::Inet::TCPEndPoint::StopConnectTimer
  - nl::Inet::TCPEndPoint::TCPConnectTimeoutHandler
  - nl::Inet::TCPEndPoint::GetPeerInfo
  - nl::Inet::TCPEndPoint::GetLocalInfo
  - nl::Inet::TCPEndPoint::Send
  - nl::Inet::TCPEndPoint::DisableReceive
  - nl::Inet::TCPEndPoint::EnableReceive
  - nl::Inet::TCPEndPoint::EnableNoDelay
  - nl::Inet::TCPEndPoint::EnableKeepAlive
  - nl::Inet::TCPEndPoint::DisableKeepAlive
  - nl::Inet::TCPEndPoint::SetUserTimeout
  - nl::Inet::TCPEndPoint::AckReceive
  - nl::Inet::TCPEndPoint::PutBackReceivedData
  - nl::Inet::TCPEndPoint::PendingSendLength
  - nl::Inet::TCPEndPoint::PendingReceiveLength
  - nl::Inet::TCPEndPoint::Shutdown
  - nl::Inet::TCPEndPoint::Close
  - nl::Inet::TCPEndPoint::Abort
  - nl::Inet::TCPEndPoint::Free
  - nl::Inet::TCPEndPoint::SetIdleTimeout
  - nl::Inet::TCPEndPoint::IsConnected
  - nl::Inet::TCPEndPoint::Init
  - nl::Inet::TCPEndPoint::DriveSending
  - nl::Inet::TCPEndPoint::DriveReceiving
  - nl::Inet::TCPEndPoint::HandleConnectComplete
  - nl::Inet::TCPEndPoint::DoClose
  - nl::Inet::TCPEndPoint::TCPUserTimeoutHandler
  - nl::Inet::TCPEndPoint::ScheduleNextTCPUserTimeoutPoll
  - nl::Inet::TCPEndPoint::SetTCPSendIdleAndNotifyChange
  - nl::Inet::TCPEndPoint::StartTCPUserTimeoutTimer
  - nl::Inet::TCPEndPoint::StopTCPUserTimeoutTimer
  - nl::Inet::TCPEndPoint::RestartTCPUserTimeoutTimer
  - nl::Inet::TCPEndPoint::RemainingToSend
  - nl::Inet::TCPEndPoint::FindStartOfUnsent
  - nl::Inet::TCPEndPoint::GetPCB
  - nl::Inet::TCPEndPoint::HandleDataSent
  - nl::Inet::TCPEndPoint::HandleDataReceived
  - nl::Inet::TCPEndPoint::HandleIncomingConnection
  - nl::Inet::TCPEndPoint::HandleError
  - nl::Inet::TCPEndPoint::LwIPHandleConnectComplete
  - nl::Inet::TCPEndPoint::LwIPHandleIncomingConnection
  - nl::Inet::TCPEndPoint::LwIPHandleDataReceived
  - nl::Inet::TCPEndPoint::LwIPHandleDataSent
  - nl::Inet::TCPEndPoint::LwIPHandleError
  - nl::Inet::TCPEndPoint::BindSrcAddrFromIntf
  - nl::Inet::TCPEndPoint::GetSocket
  - nl::Inet::TCPEndPoint::PrepareIO
  - nl::Inet::TCPEndPoint::HandlePendingIO
  - nl::Inet::TCPEndPoint::ReceiveData
  - nl::Inet::TCPEndPoint::HandleIncomingConnection
  - nl::Inet::TCPEndPoint::CheckConnectionProgress
  source_file: /src/openweave-core/src/inet/TCPEndPoint.cpp
- function_names:
  - nl::Inet::IPEndPointBasis
  source_file: /src/openweave-core/src/inet/UDPEndPoint.h
- function_names:
  - nl::Inet::InterfaceAddressIterator
  - nl::Inet::InterfaceIterator::InterfaceIterator
  - InterfaceIterator::~InterfaceIterator(void)
  - nl::Inet::InterfaceIterator::HasCurrent
  - nl::Inet::InterfaceIterator::GetInterfaceId
  - nl::Inet::InterfaceAddressIterator::InterfaceAddressIterator
  - InterfaceAddressIterator::~InterfaceAddressIterator(void)
  - nl::Inet::InterfaceIterator::GetInterface
  - nl::Inet::InterfaceAddressIterator::GetInterface
  - nl::Inet::InterfaceAddressIterator::GetIPv6PrefixLength
  source_file: /src/openweave-core/src/inet/InetInterface.h
- function_names:
  - nl::Inet::IPAddress
  source_file: /src/openweave-core/src/inet/IPAddress.h
- function_names:
  - nl::Inet::CheckMulticastGroupArgs
  - nl::Inet::LwIPIPv4JoinLeaveMulticastGroup
  - nl::Inet::LwIPIPv6JoinLeaveMulticastGroup
  - nl::Inet::SocketsSetMulticastLoopback
  - nl::Inet::SocketsSetMulticastLoopback
  - nl::Inet::SocketsIPv4JoinLeaveMulticastGroup
  - nl::Inet::SocketsIPv6JoinLeaveMulticastGroup
  - nl::Inet::IPEndPointBasis::SetMulticastLoopback
  - nl::Inet::IPEndPointBasis::JoinMulticastGroup
  - nl::Inet::IPEndPointBasis::LeaveMulticastGroup
  - nl::Inet::IPEndPointBasis::Init
  - nl::Inet::IPEndPointBasis::HandleDataReceived
  - nl::Inet::IPEndPointBasis::GetPacketInfo
  - nl::Inet::IPEndPointBasis::Bind
  - nl::Inet::IPEndPointBasis::BindInterface
  - nl::Inet::IPEndPointBasis::SendMsg
  - nl::Inet::IPEndPointBasis::GetSocket
  - nl::Inet::IPEndPointBasis::PrepareIO
  - nl::Inet::IPEndPointBasis::HandlePendingIO
  source_file: /src/openweave-core/src/inet/IPEndPointBasis.cpp
- function_names:
  - main
  source_file: /src/openweave-core/src/tools/factory-prov-tool/esp32-restart/esp32-restart.c
- function_names:
  - OBJ_length
  - OBJ_get0_data
  - InitOpenSSL
  - NIDToWeaveOID
  - Base64Encode
  - Base64Encode
  - Base64Decode
  - IsBase64String
  - ContainsPEMMarker
  - ParseEUI64
  - ParseDateTime
  - ReadFileIntoMem
  source_file: /src/openweave-core/src/tools/weave/GeneralUtils.cpp
- function_names:
  - Cmd_GenDeviceCert
  - HandleOption
  source_file: /src/openweave-core/src/tools/weave/Cmd_GenDeviceCert.cpp
- function_names:
  - ReadCert
  - ReadCert
  - ReadCertPEM
  - ReadWeaveCert
  - LoadWeaveCert
  - WriteCert
  - WeaveEncodeCert
  - DEREncodeCert
  - MakeDeviceCert
  - MakeCACert
  - MakeCodeSigningCert
  - MakeServiceEndpointCert
  - MakeGeneralCert
  - ResignCert
  - SetCertSerialNumber
  - SetCertSerialNumber
  - SetCertSubjectName
  - SetWeaveCertSubjectName
  - SetCertTimeField
  - SetValidityTime
  - AddExtension
  - AddSubjectKeyId
  - AddAuthorityKeyId
  - X509PEMToDER
  - X509DERToPEM
  - DetectCertFormat
  source_file: /src/openweave-core/src/tools/weave/CertUtils.cpp
- function_names:
  - Cmd_GenServiceEndpointCert
  - HandleOption
  source_file: /src/openweave-core/src/tools/weave/Cmd_GenServiceEndpointCert.cpp
- function_names:
  - Cmd_ConvertProvisioningData
  - HandleOption
  - HandleNonOptionArgs
  - TrimSpace
  - ParseCSVLine
  - ReadCSVLine
  - WriteCSVLine
  - ConvertCertificate
  - ConvertPrivateKey
  - FindColumnByPrefix
  source_file: /src/openweave-core/src/tools/weave/Cmd_ConvertProvisioningData.cpp
- function_names:
  - Cmd_GenCACert
  - HandleOption
  source_file: /src/openweave-core/src/tools/weave/Cmd_GenCACert.cpp
- function_names:
  - Cmd_MakeAccessToken
  - HandleNonOptionArgs
  - EncodeAccessToken
  source_file: /src/openweave-core/src/tools/weave/Cmd_MakeAccessToken.cpp
- function_names:
  - Cmd_ResignCert
  - HandleOption
  source_file: /src/openweave-core/src/tools/weave/Cmd_ResignCert.cpp
- function_names:
  - PrintVersion
  - main
  source_file: /src/openweave-core/src/tools/weave/weave-tool.cpp
- function_names:
  - Cmd_PrintTLV
  - HandleNonOptionArgs
  - _DumpWriter
  - HandleOption
  source_file: /src/openweave-core/src/tools/weave/Cmd_PrintTLV.cpp
- function_names:
  - Cmd_GenGeneralCert
  - HandleOption
  source_file: /src/openweave-core/src/tools/weave/Cmd_GenGeneralCert.cpp
- function_names:
  - Cmd_GenCodeSigningCert
  - HandleOption
  source_file: /src/openweave-core/src/tools/weave/Cmd_GenCodeSigningCert.cpp
- function_names: []
  source_file: /src/openweave-core/src/tools/weave/weave-tool.h
- function_names:
  - Cmd_MakeServiceConfig
  - HandleOption
  - HandleNonOptionArgs
  source_file: /src/openweave-core/src/tools/weave/Cmd_MakeServiceConfig.cpp
- function_names:
  - Cmd_PrintSig
  - HandleNonOptionArgs
  source_file: /src/openweave-core/src/tools/weave/Cmd_PrintSig.cpp
- function_names:
  - Cmd_PrintAccessToken
  - HandleNonOptionArgs
  - HandleOption
  source_file: /src/openweave-core/src/tools/weave/Cmd_PrintAccessToken.cpp
- function_names:
  - Cmd_ValidateCert
  - HandleOption
  - HandleNonOptionArgs
  source_file: /src/openweave-core/src/tools/weave/Cmd_ValidateCert.cpp
- function_names:
  - Cmd_PrintCert
  - HandleNonOptionArgs
  source_file: /src/openweave-core/src/tools/weave/Cmd_PrintCert.cpp
- function_names:
  - Cmd_ConvertKey
  - HandleOption
  - HandleNonOptionArgs
  source_file: /src/openweave-core/src/tools/weave/Cmd_ConvertKey.cpp
- function_names:
  - Cmd_PrintServiceConfig
  - HandleNonOptionArgs
  - HandleOption
  - PrintServiceHostname
  source_file: /src/openweave-core/src/tools/weave/Cmd_PrintServiceConfig.cpp
- function_names:
  - Cmd_ConvertCert
  - HandleOption
  - HandleNonOptionArgs
  source_file: /src/openweave-core/src/tools/weave/Cmd_ConvertCert.cpp
- function_names:
  - ReadPrivateKey
  - ReadPublicKey
  - ReadWeavePrivateKey
  - DecodeWeavePrivateKey
  - DecodePrivateKey
  - DecodePublicKey
  - DetectKeyFormat
  - DetectKeyFormat
  - GenerateKeyPair
  - EncodePrivateKey
  - WeaveEncodePrivateKey
  - WeaveEncodeECPrivateKey
  - ReadPublicKey
  - DecodePublicKeyOnly
  - DecodePublicKey
  - DetectPublicKeyFormat
  source_file: /src/openweave-core/src/tools/weave/KeyUtils.cpp
- function_names:
  - Cmd_GenProvisioningData
  - HandleOption
  - OutputProvisioningData
  - GeneratePairingCode
  - GeneratePermissions
  source_file: /src/openweave-core/src/tools/weave/Cmd_GenProvisioningData.cpp
- function_names:
  - nl::Weave::System::Mutex
  - nl::Weave::System::Mutex::Mutex
  - Mutex::~Mutex(void)
  - nl::Weave::System::Mutex::Lock
  - nl::Weave::System::Mutex::Unlock
  - nl::Weave::System::Mutex::Unlock
  source_file: /src/openweave-core/src/system/SystemMutex.h
- function_names: []
  source_file: /src/openweave-core/src/system/SystemConfig.h
- function_names: []
  source_file: /src/openweave-core/src/system/SystemStats.h
- function_names:
  - nl::Weave::System::Object::Release
  - nl::Weave::System::Object::TryCreate
  - nl::Weave::System::Object::DeferredRelease
  source_file: /src/openweave-core/src/system/SystemObject.cpp
- function_names:
  - nl::Weave::System::Object
  - nl::Weave::System::Object::IsRetained
  - nl::Weave::System::Object::Retain
  - '& Object::SystemLayer(void) const'
  - nl::Weave::System::Object::Object
  - Object::~Object(void)
  - nl::Weave::System::ObjectPool<T, N>::Size
  - nl::Weave::System::ObjectPool<T, N>::Get
  - nl::Weave::System::ObjectPool<T, N>::TryCreate
  - nl::Weave::System::ObjectPool<T, N>::UpdateHighWatermark
  - nl::Weave::System::ObjectPool<T, N>::GetNumObjectsInUse
  - nl::Weave::System::ObjectPool<T, N>::GetStatistics
  source_file: /src/openweave-core/src/system/SystemObject.h
- function_names:
  - nl::Weave::System::Timer::GetCurrentEpoch
  - nl::Weave::System::Timer::IsEarlierEpoch
  - nl::Weave::System::Timer::Start
  - nl::Weave::System::Timer::ScheduleWork
  - nl::Weave::System::Timer::Cancel
  - nl::Weave::System::Timer::HandleComplete
  - nl::Weave::System::Timer::HandleExpiredTimers
  source_file: /src/openweave-core/src/system/SystemTimer.cpp
- function_names:
  - nl::Weave::System::Object
  - nl::Weave::System::Timer::GetStatistics
  - nl::Weave::System::Timer::AttachInetLayer
  - nl::Weave::System::Timer::InetLayer
  - nl::Weave::System::Timer::OnCompleteInetLayer
  - nl::Weave::System::Timer::AppStateInetLayer
  source_file: /src/openweave-core/src/system/SystemTimer.h
- function_names:
  - nl::Weave::System::Platform::Layer::GetClock_Monotonic
  - nl::Weave::System::Platform::Layer::GetClock_MonotonicMS
  - nl::Weave::System::Platform::Layer::GetClock_MonotonicHiRes
  - nl::Weave::System::Platform::Layer::GetClock_RealTime
  - nl::Weave::System::Platform::Layer::GetClock_RealTimeMS
  - nl::Weave::System::Platform::Layer::SetClock_RealTime
  - nl::Weave::System::Platform::Layer::GetClock_Monotonic
  - nl::Weave::System::Platform::Layer::GetClock_MonotonicMS
  - nl::Weave::System::Platform::Layer::GetClock_MonotonicHiRes
  - nl::Weave::System::Platform::Layer::GetClock_RealTime
  - nl::Weave::System::Platform::Layer::GetClock_RealTimeMS
  - nl::Weave::System::Platform::Layer::SetClock_RealTime
  source_file: /src/openweave-core/src/system/SystemClock.cpp
- function_names: []
  source_file: /src/openweave-core/src/system/SystemClock.h
- function_names:
  - nl::Weave::System::Mutex::Init
  - nl::Weave::System::Mutex::Init
  - nl::Weave::System::Mutex::Lock
  source_file: /src/openweave-core/src/system/SystemMutex.cpp
- function_names:
  - nl::Weave::System::FaultInjection::GetManager
  - nl::Weave::System::FaultInjection::InjectAsyncEvent
  - nl::Weave::System::FaultInjection::SetAsyncEventCallbacks
  source_file: /src/openweave-core/src/system/SystemFaultInjection.cpp
- function_names:
  - nl::Weave::System::IsEventOfType
  source_file: /src/openweave-core/src/system/SystemEvent.h
- function_names: []
  source_file: /src/openweave-core/src/system/SystemAlignSize.h
- function_names:
  - nl::Weave::System::Stats::GetStrings
  - nl::Weave::System::Stats::GetResourcesInUse
  - nl::Weave::System::Stats::GetHighWatermarks
  - nl::Weave::System::Stats::UpdateSnapshot
  - nl::Weave::System::Stats::Difference
  - nl::Weave::System::Stats::UpdateLwipPbufCounts
  source_file: /src/openweave-core/src/system/SystemStats.cpp
- function_names:
  - nl::Weave::System::LwIPEventHandlerDelegate::IsInitialized
  - nl::Weave::System::LwIPEventHandlerDelegate::Init
  - nl::Weave::System::LwIPEventHandlerDelegate::Prepend
  - nl::Weave::System::Layer::Layer
  - nl::Weave::System::Layer::Init
  - nl::Weave::System::Layer::Shutdown
  - nl::Weave::System::Layer::GetPlatformData
  - nl::Weave::System::Layer::SetPlatformData
  - nl::Weave::System::Layer::NewTimer
  - nl::Weave::System::Layer::StartTimer
  - nl::Weave::System::Layer::CancelTimer
  - nl::Weave::System::Layer::CancelAllMatchingInetTimers
  - nl::Weave::System::Layer::ScheduleWork
  - nl::Weave::System::Layer::GetClock_Monotonic
  - nl::Weave::System::Layer::GetClock_MonotonicMS
  - nl::Weave::System::Layer::GetClock_MonotonicHiRes
  - nl::Weave::System::Layer::GetClock_RealTime
  - nl::Weave::System::Layer::GetClock_RealTimeMS
  - nl::Weave::System::Layer::SetClock_RealTime
  - nl::Weave::System::Layer::PrepareSelect
  - nl::Weave::System::Layer::HandleSelectResult
  - nl::Weave::System::Layer::WakeSelect
  - nl::Weave::System::Layer::HandleSystemLayerEvent
  - nl::Weave::System::Layer::AddEventHandlerDelegate
  - nl::Weave::System::Layer::PostEvent
  - nl::Weave::System::Layer::DispatchEvents
  - nl::Weave::System::Layer::DispatchEvent
  - nl::Weave::System::Layer::HandleEvent
  - nl::Weave::System::Layer::StartPlatformTimer
  - nl::Weave::System::Layer::HandlePlatformTimer
  - nl::Weave::System::Platform::Layer::WillInit
  - nl::Weave::System::Platform::Layer::WillShutdown
  - nl::Weave::System::Platform::Layer::DidInit
  - nl::Weave::System::Platform::Layer::DidShutdown
  - nl::Weave::System::Platform::Layer::PostEvent
  - nl::Weave::System::Platform::Layer::DispatchEvents
  - nl::Weave::System::Platform::Layer::DispatchEvent
  - nl::Weave::System::Platform::Layer::StartTimer
  source_file: /src/openweave-core/src/system/SystemLayer.cpp
- function_names: []
  source_file: /src/openweave-core/src/system/SystemLayerPrivate.h
- function_names: []
  source_file: /src/openweave-core/src/system/SystemFaultInjection.h
- function_names: []
  source_file: /src/openweave-core/src/system/SystemError.h
- function_names:
  - nl::Weave::System::PacketBuffer
  - nl::Weave::System::PacketBuffer::AllocSize
  source_file: /src/openweave-core/src/system/SystemPacketBuffer.h
- function_names:
  - nl::Weave::System::PacketBuffer::Start
  - nl::Weave::System::PacketBuffer::SetStart
  - nl::Weave::System::PacketBuffer::DataLength
  - nl::Weave::System::PacketBuffer::SetDataLength
  - nl::Weave::System::PacketBuffer::TotalLength
  - nl::Weave::System::PacketBuffer::MaxDataLength
  - nl::Weave::System::PacketBuffer::AvailableDataLength
  - nl::Weave::System::PacketBuffer::ReservedSize
  - nl::Weave::System::PacketBuffer::AddToEnd
  - nl::Weave::System::PacketBuffer::DetachTail
  - nl::Weave::System::PacketBuffer::CompactHead
  - nl::Weave::System::PacketBuffer::ConsumeHead
  - nl::Weave::System::PacketBuffer::Consume
  - nl::Weave::System::PacketBuffer::EnsureReservedSize
  - nl::Weave::System::PacketBuffer::AlignPayload
  - nl::Weave::System::PacketBuffer::Next
  - nl::Weave::System::PacketBuffer::AddRef
  - nl::Weave::System::PacketBuffer::NewWithAvailableSize
  - nl::Weave::System::PacketBuffer::NewWithAvailableSize
  - nl::Weave::System::PacketBuffer::New
  - nl::Weave::System::PacketBuffer::New
  - nl::Weave::System::PacketBuffer::Free
  - nl::Weave::System::PacketBuffer::Clear
  - nl::Weave::System::PacketBuffer::FreeHead
  - nl::Weave::System::PacketBuffer::RightSize
  - nl::Weave::System::PacketBuffer::BuildFreeList
  source_file: /src/openweave-core/src/system/SystemPacketBuffer.cpp
- function_names:
  - nl::Weave::System::RegisterSystemLayerErrorFormatter
  - nl::Weave::System::FormatSystemLayerError
  - nl::Weave::System::MapErrorPOSIX
  - nl::Weave::System::DescribeErrorPOSIX
  - nl::Weave::System::IsErrorPOSIX
  - nl::Weave::System::RegisterPOSIXErrorFormatter
  - nl::Weave::System::FormatPOSIXError
  - nl::Weave::System::MapErrorLwIP
  - nl::Weave::System::DescribeErrorLwIP
  - nl::Weave::System::IsErrorLwIP
  - nl::Weave::System::RegisterLwIPErrorFormatter
  - nl::Weave::System::FormatLwIPError
  source_file: /src/openweave-core/src/system/SystemError.cpp
- function_names:
  - nl::Weave::System::Layer
  - nl::Weave::System::Layer::State
  source_file: /src/openweave-core/src/system/SystemLayer.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/TraitSchemaDirectory.h
- function_names:
  - nl::Ble::HandleCommandTest
  - nl::Ble::HandleCommandTestResult
  - nl::Ble::HandleCommandTestAbort
  - nl::Ble::HandleCommandTxTiming
  - nl::Ble::BleTransportCommandMessage::Encode
  - nl::Ble::BleTransportCommandMessage::Decode
  - nl::Ble::WoBleTest::Init
  - nl::Ble::WoBleTest::Decode
  - nl::Ble::WoBleTest::HandleCommandReceived
  - nl::Ble::WoBleTest::DoTxTiming
  - nl::Ble::isEmptyData
  - nl::Ble::WoBleTest::DoTestDataSend
  - nl::Ble::WoBleTest::StartTxThread
  - nl::Ble::WoBleTest::HandleCommandTest
  - nl::Ble::WoBleTest::HandleCommandTxTiming
  - nl::Ble::WoBleTest::DoCommandSendAck
  - nl::Ble::WoBleTest::DoCommandTestResult
  - nl::Ble::WoBleTest::DoCommandTxTiming
  - nl::Ble::WoBleTest::DoCommandTestAbort
  - nl::Ble::WoBleTest::DoCommandRequestTestResult
  - nl::Ble::WoBleTest::DoCommandTestRequest
  - nl::Ble::WoBleTest::LogBleTestResult
  - nl::Ble::WoBleTest::HandleCommandPacket
  - nl::Ble::WoBleTest::StopTestTimer
  - nl::Ble::WoBleTest::HandleTestClose
  - nl::Ble::WoBleTest::InitTxHistogram
  - nl::Ble::WoBleTest::SaveTxRecords
  - nl::Ble::WoBleTest::AddTxRecord
  - nl::Ble::WoBleTest::DoneTxHistogram
  source_file: /src/openweave-core/src/device-manager/WoBleTest.cpp
- function_names:
  - nl::Weave::DeviceManager::TraitSchemaDirectory::GetTraitSchemaEngine
  source_file: /src/openweave-core/src/device-manager/BuiltInTraitSchemaDirectory.cpp
- function_names:
  - nl::Ble::WoBleTest
  source_file: /src/openweave-core/src/device-manager/WoBleTest.h
- function_names:
  - Security::CASE::WeaveCASEAuthDelegate
  source_file: /src/openweave-core/src/device-manager/WeaveDeviceManager.h
- function_names:
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GenericTraitUpdatableDataSink
  - GenericTraitUpdatableDataSink::~GenericTraitUpdatableDataSink()
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::Clear
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::UpdateTLVDataMap
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::LocateTraitHandle
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::RefreshData
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::SetData
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::SetData
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::SetData
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::SetBoolean
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::SetString
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::SetBytes
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::SetTLVBytes
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::SetNull
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::SetStringArray
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::Set
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GetData
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GetData
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GetData
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GetBoolean
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GetString
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GetBytes
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GetTLVBytes
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::IsNull
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GetStringArray
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::Get
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DeleteData
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::SetLeafData
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GetLeafData
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::GetNextDictionaryItemKey
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::TLVPrettyPrinter
  - nl::Weave::DeviceManager::GenericTraitUpdatableDataSink::DebugPrettyPrint
  - nl::Weave::DeviceManager::WdmClient::WdmClient
  - nl::Weave::DeviceManager::WdmClient::Close
  - nl::Weave::DeviceManager::WdmClient::ClearDataSink
  - nl::Weave::DeviceManager::WriteEscapedString
  - nl::Weave::DeviceManager::FormatEventData
  - nl::Weave::DeviceManager::WdmClient::ClearDataSinkVersion
  - nl::Weave::DeviceManager::WdmClient::ClientEventCallback
  - nl::Weave::DeviceManager::WdmClient::Init
  - nl::Weave::DeviceManager::WdmClient::SetNodeId
  - nl::Weave::DeviceManager::WdmClient::SetEventFetchingTimeout
  - nl::Weave::DeviceManager::WdmClient::UpdateFailedPathResults
  - nl::Weave::DeviceManager::WdmClient::NewDataSink
  - nl::Weave::DeviceManager::WdmClient::GetDataSink
  - nl::Weave::DeviceManager::WdmClient::FlushUpdate
  - nl::Weave::DeviceManager::WdmClient::RefreshData
  - nl::Weave::DeviceManager::WdmClient::RefreshData
  - nl::Weave::DeviceManager::WdmClient::ClearOpState
  - nl::Weave::DeviceManager::WdmClient::SubscribePublisherTrait
  - nl::Weave::DeviceManager::WdmClient::UnsubscribePublisherTrait
  - nl::Weave::DeviceManager::WdmClient::GetEvents
  - nl::Weave::DeviceManager::WdmClient::ProcessEvent
  - nl::Weave::DeviceManager::WdmClient::PrepareLastObservedEventList
  - nl::Weave::DeviceManager::WdmEventProcessor::WdmEventProcessor
  - nl::Weave::DeviceManager::WdmEventProcessor::ProcessEvent
  - nl::Weave::DeviceManager::WdmEventProcessor::GapDetected
  source_file: /src/openweave-core/src/device-manager/WeaveDataManagementClient.cpp
- function_names:
  - nl::Weave::DeviceManager::BytesData
  - nl::Weave::Profiles::DataManagement::TraitUpdatableDataSink
  - nl::Weave::DeviceManager::WdmClient
  - ~WdmEventProcessor()
  source_file: /src/openweave-core/src/device-manager/WeaveDataManagementClient.h
- function_names:
  - nl::Weave::DeviceManager::WeaveDeviceManager::WeaveDeviceManager
  - nl::Weave::DeviceManager::WeaveDeviceManager::Init
  - nl::Weave::DeviceManager::WeaveDeviceManager::Shutdown
  - nl::Weave::DeviceManager::WeaveDeviceManager::GetDeviceId
  - nl::Weave::DeviceManager::WeaveDeviceManager::GetDeviceAddress
  - nl::Weave::DeviceManager::WeaveDeviceManager::ConnectDevice
  - nl::Weave::DeviceManager::WeaveDeviceManager::ConnectDevice
  - nl::Weave::DeviceManager::WeaveDeviceManager::ConnectDevice
  - nl::Weave::DeviceManager::WeaveDeviceManager::StartDeviceEnumeration
  - nl::Weave::DeviceManager::WeaveDeviceManager::ValidateIdentifyRequest
  - nl::Weave::DeviceManager::WeaveDeviceManager::InitiateDeviceEnumeration
  - nl::Weave::DeviceManager::WeaveDeviceManager::StopDeviceEnumeration
  - nl::Weave::DeviceManager::WeaveDeviceManager::RendezvousDevice
  - nl::Weave::DeviceManager::WeaveDeviceManager::RendezvousDevice
  - nl::Weave::DeviceManager::WeaveDeviceManager::RendezvousDevice
  - nl::Weave::DeviceManager::WeaveDeviceManager::RendezvousDevice
  - nl::Weave::DeviceManager::WeaveDeviceManager::PassiveRendezvousDevice
  - nl::Weave::DeviceManager::WeaveDeviceManager::PassiveRendezvousDevice
  - nl::Weave::DeviceManager::WeaveDeviceManager::PassiveRendezvousDevice
  - nl::Weave::DeviceManager::WeaveDeviceManager::ConnectBle
  - nl::Weave::DeviceManager::WeaveDeviceManager::ConnectBle
  - nl::Weave::DeviceManager::WeaveDeviceManager::ConnectBle
  - nl::Weave::DeviceManager::WeaveDeviceManager::InitiateBleConnection
  - nl::Weave::DeviceManager::WeaveDeviceManager::RemotePassiveRendezvous
  - nl::Weave::DeviceManager::WeaveDeviceManager::RemotePassiveRendezvous
  - nl::Weave::DeviceManager::WeaveDeviceManager::RemotePassiveRendezvous
  - nl::Weave::DeviceManager::WeaveDeviceManager::DoRemotePassiveRendezvous
  - nl::Weave::DeviceManager::WeaveDeviceManager::SaveAssistingDeviceConnectionInfo
  - nl::Weave::DeviceManager::WeaveDeviceManager::RestoreAssistingDeviceAddressInfo
  - nl::Weave::DeviceManager::WeaveDeviceManager::RestoreAssistingDeviceAuthInfo
  - nl::Weave::DeviceManager::WeaveDeviceManager::ResetConnectionInfo
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleAssistingDeviceReconnectCompleteEntry
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleRemotePassiveRendezvousReconnectComplete
  - nl::Weave::DeviceManager::WeaveDeviceManager::StartReconnectToAssistingDevice
  - nl::Weave::DeviceManager::WeaveDeviceManager::CancelRemotePassiveRendezvous
  - nl::Weave::DeviceManager::WeaveDeviceManager::ReconnectDevice
  - nl::Weave::DeviceManager::WeaveDeviceManager::EnableConnectionMonitor
  - nl::Weave::DeviceManager::WeaveDeviceManager::DisableConnectionMonitor
  - nl::Weave::DeviceManager::WeaveDeviceManager::Close
  - nl::Weave::DeviceManager::WeaveDeviceManager::Close
  - nl::Weave::DeviceManager::WeaveDeviceManager::CloseDeviceConnection
  - nl::Weave::DeviceManager::WeaveDeviceManager::CloseDeviceConnection
  - nl::Weave::DeviceManager::WeaveDeviceManager::IsConnected
  - nl::Weave::DeviceManager::WeaveDeviceManager::SetConnectionClosedCallback
  - nl::Weave::DeviceManager::WeaveDeviceManager::IdentifyDevice
  - nl::Weave::DeviceManager::WeaveDeviceManager::PairToken
  - nl::Weave::DeviceManager::WeaveDeviceManager::UnpairToken
  - nl::Weave::DeviceManager::WeaveDeviceManager::ScanNetworks
  - nl::Weave::DeviceManager::WeaveDeviceManager::AddNetwork
  - nl::Weave::DeviceManager::WeaveDeviceManager::UpdateNetwork
  - nl::Weave::DeviceManager::WeaveDeviceManager::RemoveNetwork
  - nl::Weave::DeviceManager::WeaveDeviceManager::GetCameraAuthData
  - nl::Weave::DeviceManager::WeaveDeviceManager::GetNetworks
  - nl::Weave::DeviceManager::WeaveDeviceManager::EnableNetwork
  - nl::Weave::DeviceManager::WeaveDeviceManager::DisableNetwork
  - nl::Weave::DeviceManager::WeaveDeviceManager::TestNetworkConnectivity
  - nl::Weave::DeviceManager::WeaveDeviceManager::GetRendezvousMode
  - nl::Weave::DeviceManager::WeaveDeviceManager::SetRendezvousMode
  - nl::Weave::DeviceManager::WeaveDeviceManager::GetWirelessRegulatoryConfig
  - nl::Weave::DeviceManager::WeaveDeviceManager::SetWirelessRegulatoryConfig
  - nl::Weave::DeviceManager::WeaveDeviceManager::GetLastNetworkProvisioningResult
  - nl::Weave::DeviceManager::WeaveDeviceManager::CreateFabric
  - nl::Weave::DeviceManager::WeaveDeviceManager::LeaveFabric
  - nl::Weave::DeviceManager::WeaveDeviceManager::GetFabricConfig
  - nl::Weave::DeviceManager::WeaveDeviceManager::JoinExistingFabric
  - nl::Weave::DeviceManager::WeaveDeviceManager::RegisterServicePairAccount
  - nl::Weave::DeviceManager::WeaveDeviceManager::UpdateService
  - nl::Weave::DeviceManager::WeaveDeviceManager::UnregisterService
  - nl::Weave::DeviceManager::WeaveDeviceManager::ArmFailSafe
  - nl::Weave::DeviceManager::WeaveDeviceManager::DisarmFailSafe
  - nl::Weave::DeviceManager::WeaveDeviceManager::StartSystemTest
  - nl::Weave::DeviceManager::WeaveDeviceManager::StopSystemTest
  - nl::Weave::DeviceManager::WeaveDeviceManager::ResetConfig
  - nl::Weave::DeviceManager::WeaveDeviceManager::Ping
  - nl::Weave::DeviceManager::WeaveDeviceManager::Ping
  - nl::Weave::DeviceManager::WeaveDeviceManager::IsValidPairingCode
  - nl::Weave::DeviceManager::WeaveDeviceManager::SetRendezvousAddress
  - nl::Weave::DeviceManager::WeaveDeviceManager::SetRendezvousAddress
  - nl::Weave::DeviceManager::WeaveDeviceManager::SetAutoReconnect
  - nl::Weave::DeviceManager::WeaveDeviceManager::SetUseAccessToken
  - nl::Weave::DeviceManager::WeaveDeviceManager::SetRendezvousLinkLocal
  - nl::Weave::DeviceManager::WeaveDeviceManager::SetConnectTimeout
  - nl::Weave::DeviceManager::WeaveDeviceManager::SetWiFiRendezvousAddress
  - nl::Weave::DeviceManager::WeaveDeviceManager::SendRequest
  - nl::Weave::DeviceManager::WeaveDeviceManager::SendPendingRequest
  - nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
  - nl::Weave::DeviceManager::WeaveDeviceManager::SaveAuthKey
  - nl::Weave::DeviceManager::WeaveDeviceManager::SaveRemoteDeviceAuthInfo
  - nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
  - nl::Weave::DeviceManager::WeaveDeviceManager::ClearAuthKey
  - nl::Weave::DeviceManager::WeaveDeviceManager::ClearRequestState
  - nl::Weave::DeviceManager::WeaveDeviceManager::ClearOpState
  - nl::Weave::DeviceManager::WeaveDeviceManager::EnableUDP
  - nl::Weave::DeviceManager::WeaveDeviceManager::DisableUDP
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleUnsecuredConnectionCallbackRemoved
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleRequestConnectionClosed
  - nl::Weave::DeviceManager::WeaveDeviceManager::InitiateConnection
  - nl::Weave::DeviceManager::WeaveDeviceManager::IsNodeInList
  - nl::Weave::DeviceManager::WeaveDeviceManager::AddNodeToList
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleDeviceEnumerationIdentifyResponse
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleConnectionIdentifyResponse
  - nl::Weave::DeviceManager::WeaveDeviceManager::FilterIdentifyResponse
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleDeviceEnumerationTimeout
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleConnectionIdentifyTimeout
  - nl::Weave::DeviceManager::WeaveDeviceManager::SetUnsecuredConnectionHandler
  - nl::Weave::DeviceManager::WeaveDeviceManager::ClearUnsecuredConnectionHandler
  - nl::Weave::DeviceManager::WeaveDeviceManager::StartConnectDevice
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleConnectionComplete
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleConnectionReceived
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleConnectionClosed
  - nl::Weave::DeviceManager::WeaveDeviceManager::StartSession
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleSessionEstablished
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleSessionError
  - nl::Weave::DeviceManager::WeaveDeviceManager::RetrySession
  - nl::Weave::DeviceManager::WeaveDeviceManager::RestartRemotePassiveRendezvousListen
  - nl::Weave::DeviceManager::WeaveDeviceManager::ReenableConnectionMonitor
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleReenableConnectionMonitorResponse
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleConnectionReady
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleIdentifyDeviceResponse
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandlePairTokenResponse
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleUnpairTokenResponse
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleNetworkProvisioningResponse
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleServiceProvisioningResponse
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleFabricProvisioningResponse
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleGetCameraAuthDataResponseEntry
  - nl::Weave::DeviceManager::WeaveDeviceManager::Eui48ToString
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleGetCameraAuthDataResponse
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleDeviceControlResponse
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleRemotePassiveRendezvousComplete
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandlePingResponse
  - nl::Weave::DeviceManager::WeaveDeviceManager::StartConnectionMonitorTimer
  - nl::Weave::DeviceManager::WeaveDeviceManager::CancelConnectionMonitorTimer
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleEchoRequest
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleConnectionMonitorTimeout
  - nl::Weave::DeviceManager::WeaveDeviceManager::StartRemotePassiveRendezvousTimer
  - nl::Weave::DeviceManager::WeaveDeviceManager::CancelRemotePassiveRendezvousTimer
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleRemotePassiveRendezvousTimeout
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleRemoteConnectionComplete
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleRemoteIdentifyResponse
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleRemoteIdentifyConnectionClosed
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleRemoteIdentifyTimeout
  - nl::Weave::DeviceManager::WeaveDeviceManager::DecodeStatusReport
  - nl::Weave::DeviceManager::WeaveDeviceManager::DecodeNetworkInfoList
  - nl::Weave::DeviceManager::WeaveDeviceManager::EncodeNodeCertInfo
  - nl::Weave::DeviceManager::WeaveDeviceManager::GenerateNodeSignature
  - nl::Weave::DeviceManager::WeaveDeviceManager::EncodeNodePayload
  - nl::Weave::DeviceManager::WeaveDeviceManager::BeginValidation
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleValidationResult
  - nl::Weave::DeviceManager::WeaveDeviceManager::EndValidation
  - nl::Weave::DeviceManager::WeaveDeviceManager::GetNodeCertInfo
  - nl::Weave::DeviceManager::WeaveDeviceManager::GetNodePayload
  - nl::Weave::DeviceManager::WeaveDeviceManager::GetNodePrivateKey
  - nl::Weave::DeviceManager::WeaveDeviceManager::ReleaseNodePrivateKey
  - nl::Weave::DeviceManager::WeaveDeviceManager::BeginCertValidation
  - nl::Weave::DeviceManager::WeaveDeviceManager::HandleCertValidationResult
  - nl::Weave::DeviceManager::WeaveDeviceManager::EndCertValidation
  - nl::Weave::DeviceManager::WeaveDeviceManager::ConfigureBinding
  - nl::Weave::DeviceManager::IsProductWildcard
  source_file: /src/openweave-core/src/device-manager/WeaveDeviceManager.cpp
- function_names:
  - DeviceManager_BlePlatformDelegate::SetWriteCharCB
  - DeviceManager_BlePlatformDelegate::SetSubscribeCharCB
  - DeviceManager_BlePlatformDelegate::SetCloseCB
  source_file: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BlePlatformDelegate.h
- function_names:
  - DeviceManager_BleApplicationDelegate::NotifyWeaveConnectionClosed
  source_file: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BleApplicationDelegate.cpp
- function_names:
  - BleEventBase
  - BleEventBase
  - BleEventBase
  - BleSubscribeEvent
  - BleDisconnectEvent
  - DeviceEnumerationResponseFunctTrampoline
  - nl_Weave_DeviceManager_NewDeviceManager
  - nl_Weave_DeviceManager_DeleteDeviceManager
  - nl_Weave_DeviceManager_DriveIO
  - nl_Weave_DeviceManager_WakeForBleIO
  - nl_Weave_DeviceManager_SetBleEventCB
  - nl_Weave_DeviceManager_SetBleWriteCharacteristic
  - nl_Weave_DeviceManager_SetBleSubscribeCharacteristic
  - nl_Weave_DeviceManager_SetBleClose
  - nl_Weave_DeviceManager_Close
  - nl_Weave_DeviceManager_IdentifyDevice
  - nl_Weave_DeviceManager_PairToken
  - nl_Weave_DeviceManager_UnpairToken
  - nl_Weave_DeviceManager_StartDeviceEnumeration
  - nl_Weave_DeviceManager_StopDeviceEnumeration
  - nl_Weave_DeviceManager_ConnectDevice_NoAuth
  - nl_Weave_DeviceManager_ConnectDevice_PairingCode
  - nl_Weave_DeviceManager_ConnectDevice_AccessToken
  - nl_Weave_DeviceManager_RendezvousDevice_NoAuth
  - nl_Weave_DeviceManager_RendezvousDevice_PairingCode
  - nl_Weave_DeviceManager_RendezvousDevice_AccessToken
  - nl_Weave_DeviceManager_PassiveRendezvousDevice_NoAuth
  - nl_Weave_DeviceManager_PassiveRendezvousDevice_PairingCode
  - nl_Weave_DeviceManager_PassiveRendezvousDevice_AccessToken
  - nl_Weave_DeviceManager_TestBle
  - nl_Weave_DeviceManager_TestResultBle
  - nl_Weave_DeviceManager_TestAbortBle
  - nl_Weave_DeviceManager_TxTimingBle
  - nl_Weave_DeviceManager_ConnectBle_NoAuth
  - nl_Weave_DeviceManager_ConnectBle_PairingCode
  - nl_Weave_DeviceManager_ConnectBle_AccessToken
  - nl_Weave_DeviceManager_RemotePassiveRendezvous_CASEAuth
  - nl_Weave_DeviceManager_RemotePassiveRendezvous_PASEAuth
  - nl_Weave_DeviceManager_RemotePassiveRendezvous_NoAuth
  - nl_Weave_DeviceManager_ReconnectDevice
  - nl_Weave_DeviceManager_EnableConnectionMonitor
  - nl_Weave_DeviceManager_DisableConnectionMonitor
  - nl_Weave_DeviceManager_ScanNetworks
  - nl_Weave_DeviceManager_GetCameraAuthData
  - nl_Weave_DeviceManager_GetNetworks
  - nl_Weave_DeviceManager_AddNetwork
  - nl_Weave_DeviceManager_UpdateNetwork
  - nl_Weave_DeviceManager_RemoveNetwork
  - nl_Weave_DeviceManager_EnableNetwork
  - nl_Weave_DeviceManager_DisableNetwork
  - nl_Weave_DeviceManager_TestNetworkConnectivity
  - nl_Weave_DeviceManager_GetRendezvousMode
  - nl_Weave_DeviceManager_SetRendezvousMode
  - nl_Weave_DeviceManager_GetWirelessRegulatoryConfig
  - nl_Weave_DeviceManager_SetWirelessRegulatoryConfig
  - nl_Weave_DeviceManager_GetLastNetworkProvisioningResult
  - nl_Weave_DeviceManager_CreateFabric
  - nl_Weave_DeviceManager_LeaveFabric
  - nl_Weave_DeviceManager_GetFabricConfig
  - nl_Weave_DeviceManager_JoinExistingFabric
  - nl_Weave_DeviceManager_Ping
  - nl_Weave_DeviceManager_SetRendezvousAddress
  - nl_Weave_DeviceManager_SetAutoReconnect
  - nl_Weave_DeviceManager_SetRendezvousLinkLocal
  - nl_Weave_DeviceManager_SetConnectTimeout
  - nl_Weave_DeviceManager_RegisterServicePairAccount
  - nl_Weave_DeviceManager_UpdateService
  - nl_Weave_DeviceManager_UnregisterService
  - nl_Weave_DeviceManager_ArmFailSafe
  - nl_Weave_DeviceManager_DisarmFailSafe
  - nl_Weave_DeviceManager_ResetConfig
  - nl_Weave_DeviceManager_StartSystemTest
  - nl_Weave_DeviceManager_StopSystemTest
  - nl_Weave_DeviceManager_IsConnected
  - nl_Weave_DeviceManager_DeviceId
  - nl_Weave_DeviceManager_DeviceAddress
  - nl_Weave_DeviceManager_CloseEndpoints
  - nl_Weave_DeviceManager_ErrorToString
  - nl_Weave_DeviceManager_StatusReportToString
  - nl_Weave_DeviceManager_GetLogFilter
  - nl_Weave_DeviceManager_SetLogFilter
  - nl_Weave_Stack_Init
  - nl_Weave_Stack_Shutdown
  - nl_Weave_Stack_ErrorToString
  - nl_Weave_Stack_StatusReportToString
  - LogMessageToPython
  - nl_Weave_Stack_SetLogFunct
  - nl_Weave_Stack_SetLogFunct
  - EngineEventCallback
  - nl_Weave_WdmClient_Init
  - nl_Weave_WdmClient_Shutdown
  - BindingEventCallback
  - nl_Weave_WdmClient_NewWdmClient
  - nl_Weave_WdmClient_DeleteWdmClient
  - nl_Weave_WdmClient_SetNodeId
  - nl_Weave_WdmClient_NewDataSink
  - nl_Weave_WdmClient_FlushUpdate
  - nl_Weave_WdmClient_RefreshData
  - nl_Weave_WdmClient_FetchEvents
  - nl_Weave_WdmClient_GetEvents
  - nl_Weave_GenericTraitUpdatableDataSink_Clear
  - nl_Weave_GenericTraitUpdatableDataSink_RefreshData
  - nl_Weave_GenericTraitUpdatableDataSink_SetTLVBytes
  - nl_Weave_GenericTraitUpdatableDataSink_GetTLVBytes
  - nl_Weave_GenericTraitUpdatableDataSink_GetVersion
  - nl_Weave_GenericTraitUpdatableDataSink_DeleteData
  - nl::Weave::Profiles::SubscriptionEngine::GetInstance
  - nl::Weave::Profiles::Platform::CriticalSectionEnter
  - nl::Weave::Profiles::Platform::CriticalSectionExit
  - nl::Weave::Platform::PersistedStorage::Read
  - nl::Weave::Platform::PersistedStorage::Write
  source_file: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-ScriptBinding.cpp
- function_names: []
  source_file: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BleApplicationDelegate.h
- function_names:
  - DeviceManager_BlePlatformDelegate::DeviceManager_BlePlatformDelegate
  - DeviceManager_BlePlatformDelegate::SubscribeCharacteristic
  - DeviceManager_BlePlatformDelegate::UnsubscribeCharacteristic
  - DeviceManager_BlePlatformDelegate::CloseConnection
  - DeviceManager_BlePlatformDelegate::GetMTU
  - DeviceManager_BlePlatformDelegate::SendIndication
  - DeviceManager_BlePlatformDelegate::SendWriteRequest
  - DeviceManager_BlePlatformDelegate::SendReadRequest
  - DeviceManager_BlePlatformDelegate::SendReadResponse
  source_file: /src/openweave-core/src/device-manager/python/WeaveDeviceManager-BlePlatformDelegate.cpp
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWeaveDeviceManagerTypes.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWeaveBleDelegate_Protected.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWdmClient.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWeaveDeviceManager_Protected.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLIdentifyDeviceCriteria.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLHKDF.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWeaveKeyIds.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLServiceInfo.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWirelessRegConfig_Protected.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWeaveDeviceManager.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWeaveDeviceDescriptor.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWeaveInetErrorCodes.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLResourceIdentifier_Protected.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLLogging.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWeaveASN1ErrorCodes.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLGenericTraitUpdatableDataSink.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWeaveDeviceDescriptor_Protected.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWdmClientFlushUpdateError.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLProfileStatusError.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLNetworkInfo_Protected.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWeaveLogWriter.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWdmClientFlushUpdateDeviceStatusError.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWdmClient_Protected.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWeaveBleDelegate.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLGenericTraitUpdatableDataSink_Protected.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLNetworkInfo.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWeaveErrorCodes.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLNevisPairingCodeDecoding.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWeaveConstants.h
- function_names:
  - Base64Encoding
  source_file: /src/openweave-core/src/device-manager/cocoa/Base64Encoding.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWeaveStack.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWirelessRegConfig.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWeaveKeyExportSupport.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLIdentifyDeviceCriteria_Protected.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLResourceIdentifier.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLPairingCodeUtils.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWeaveLogging.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWeavePasscodeEncryptionSupport.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWeaveKeyExportClient.h
- function_names:
  - NLWeaveError
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWeaveError_Protected.h
- function_names: []
  source_file: /src/openweave-core/src/device-manager/cocoa/NLWeaveError.h
- function_names:
  - Java_nl_Weave_DeviceManager_PairingCodeUtils_isValidPairingCode
  - Java_nl_Weave_DeviceManager_PairingCodeUtils_normalizePairingCode
  - Java_nl_Weave_DeviceManager_PairingCodeUtils_nevisPairingCodeToDeviceId
  - Java_nl_Weave_DeviceManager_PairingCodeUtils_nevisDeviceIdToPairingCode
  - Java_nl_Weave_DeviceManager_PairingCodeUtils_kryptonitePairingCodeToDeviceId
  - Java_nl_Weave_DeviceManager_PairingCodeUtils_kryptoniteDeviceIdToPairingCode
  source_file: /src/openweave-core/src/device-manager/java/PairingCodeUtils-JNI.cpp
- function_names: []
  source_file: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.h
- function_names:
  - AndroidBleApplicationDelegate::AndroidBleApplicationDelegate
  - AndroidBleApplicationDelegate::NotifyWeaveConnectionClosed
  - AndroidBleApplicationDelegate::SetNotifyWeaveConnectionClosedCallback
  source_file: /src/openweave-core/src/device-manager/java/AndroidBleApplicationDelegate.cpp
- function_names:
  - AndroidBlePlatformDelegate::AndroidBlePlatformDelegate
  - AndroidBlePlatformDelegate::SubscribeCharacteristic
  - AndroidBlePlatformDelegate::UnsubscribeCharacteristic
  - AndroidBlePlatformDelegate::GetMTU
  - AndroidBlePlatformDelegate::CloseConnection
  - AndroidBlePlatformDelegate::SendIndication
  - AndroidBlePlatformDelegate::SendWriteRequest
  - AndroidBlePlatformDelegate::SendReadRequest
  - AndroidBlePlatformDelegate::SendReadResponse
  - AndroidBlePlatformDelegate::SetSendWriteRequestCallback
  - AndroidBlePlatformDelegate::SetSubscribeCharacteristicCallback
  - AndroidBlePlatformDelegate::SetUnsubscribeCharacteristicCallback
  - AndroidBlePlatformDelegate::SetCloseConnectionCallback
  - AndroidBlePlatformDelegate::SetGetMTUCallback
  source_file: /src/openweave-core/src/device-manager/java/AndroidBlePlatformDelegate.cpp
- function_names: []
  source_file: /src/openweave-core/src/device-manager/java/AndroidBleApplicationDelegate.h
- function_names:
  - JNI_OnLoad
  - JNI_OnUnload
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_newDeviceManager
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_deleteDeviceManager
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginConnectBleNoAuth
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginConnectBlePairingCode
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginConnectBleAccessToken
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginConnectDeviceNoAuth
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginConnectDevicePairingCode
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginConnectDeviceAccessToken
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRendezvousDeviceNoAuth
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRendezvousDevicePairingCode
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRendezvousDeviceAccessToken
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRemotePassiveRendezvousNoAuth
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRemotePassiveRendezvousPairingCode
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRemotePassiveRendezvousAccessToken
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginReconnectDevice
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginIdentifyDevice
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginScanNetworks
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginAddNetwork
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginUpdateNetwork
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRemoveNetwork
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginGetNetworks
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginGetCameraAuthData
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginEnableNetwork
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginDisableNetwork
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginTestNetworkConnectivity
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginGetRendezvousMode
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginSetRendezvousMode
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginRegisterServicePairAccount
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginUnregisterService
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginGetLastNetworkProvisioningResult
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginPing
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginPingWithSize
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_setRendezvousAddress
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_setAutoReconnect
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_setRendezvousLinkLocal
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_setConnectTimeout
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginCreateFabric
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginLeaveFabric
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginGetFabricConfig
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginJoinExistingFabric
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginArmFailSafe
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginDisarmFailSafe
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginStartSystemTest
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginStopSystemTest
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginResetConfig
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginEnableConnectionMonitor
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginDisableConnectionMonitor
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_isValidPairingCode
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginPairToken
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginUnpairToken
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginGetWirelessRegulatoryConfig
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_beginSetWirelessRegulatoryConfig
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_closeEndpoints
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_setLogFilter
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_startDeviceEnumeration
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_stopDeviceEnumeration
  - Java_nl_Weave_DeviceManager_WeaveStack_handleWriteConfirmation
  - Java_nl_Weave_DeviceManager_WeaveStack_handleIndicationReceived
  - Java_nl_Weave_DeviceManager_WeaveStack_handleSubscribeComplete
  - Java_nl_Weave_DeviceManager_WeaveStack_handleUnsubscribeComplete
  - Java_nl_Weave_DeviceManager_WeaveStack_handleConnectionError
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_close
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_isConnected
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_deviceId
  - Java_nl_Weave_DeviceManager_WeaveDeviceManager_deviceAddress
  - Java_nl_Weave_DeviceManager_WeaveDeviceDescriptor_decode
  - IOThreadMain
  - HandleIdentifyDeviceComplete
  - HandleNetworkScanComplete
  - HandleGetNetworksComplete
  - HandleGetCameraAuthDataComplete
  - HandleAddNetworkComplete
  - HandleGetRendezvousModeComplete
  - HandleGetFabricConfigComplete
  - HandleDeviceEnumerationResponse
  - HandleGenericOperationComplete
  - HandleSimpleOperationComplete
  - HandleWdmClientComplete
  - HandleGenericTraitUpdatableDataSinkComplete
  - HandleWdmClientError
  - HandleGenericTraitUpdatableDataSinkError
  - HandleWdmClientFlushUpdateComplete
  - HandleNotifyWeaveConnectionClosed
  - HandleSendCharacteristic
  - HandleSubscribeCharacteristic
  - HandleUnsubscribeCharacteristic
  - HandlePairTokenComplete
  - HandleUnpairTokenComplete
  - HandleGetWirelessRegulatoryConfigComplete
  - HandleCloseConnection
  - HandleGetMTU
  - HandleGenericError
  - HandleError
  - ThrowError
  - ReportError
  - N2J_GenericArray
  - J2N_ByteArray
  - J2N_ByteArrayInPlace
  - J2N_StdString
  - N2J_ByteArray
  - N2J_NewStringUTF
  - N2J_NewStringUTF
  - J2N_EnumVal
  - J2N_IntFieldVal
  - J2N_EnumFieldVal
  - J2N_ShortFieldVal
  - J2N_IntFieldVal
  - J2N_LongFieldVal
  - J2N_StringFieldVal
  - J2N_ByteArrayFieldVal
  - J2N_IdentifyDeviceCriteria
  - J2N_NetworkInfo
  - N2J_NetworkInfo
  - N2J_NetworkInfoArray
  - N2J_DeviceDescriptor
  - J2N_WirelessRegulatoryConfig
  - N2J_WirelessRegulatoryConfig
  - N2J_Error
  - N2J_DeviceStatus
  - N2J_WdmClientFlushUpdateError
  - N2J_WdmClientFlushUpdateDeviceStatus
  - J2N_ResourceIdentifier
  - GetClassRef
  - EngineEventCallback
  - Java_nl_Weave_DataManagement_WdmClientImpl_init
  - BindingEventCallback
  - Java_nl_Weave_DataManagement_WdmClientImpl_newWdmClient
  - Java_nl_Weave_DataManagement_WdmClientImpl_deleteWdmClient
  - Java_nl_Weave_DataManagement_WdmClientImpl_setNodeId
  - Java_nl_Weave_DataManagement_WdmClientImpl_newDataSink
  - Java_nl_Weave_DataManagement_WdmClientImpl_beginFlushUpdate
  - Java_nl_Weave_DataManagement_WdmClientImpl_beginRefreshData
  - Java_nl_Weave_DataManagement_WdmClientImpl_beginFetchEvents
  - Java_nl_Weave_DataManagement_WdmClientImpl_getEvents
  - Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_init
  - Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_shutdown
  - Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_clear
  - Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_beginRefreshData
  - Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_setInt
  - Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_setDouble
  - Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_setBoolean
  - Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_setString
  - Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_setNull
  - Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_setBytes
  - Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_setStringArray
  - Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_getLong
  - Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_getDouble
  - Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_getBoolean
  - Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_getString
  - Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_getBytes
  - Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_getStringArray
  - Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_isNull
  - Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_getVersion
  - Java_nl_Weave_DataManagement_GenericTraitUpdatableDataSinkImpl_deleteData
  - nl::Weave::Profiles::SubscriptionEngine::GetInstance
  - nl::Weave::Profiles::Platform::CriticalSectionEnter
  - nl::Weave::Profiles::Platform::CriticalSectionExit
  - nl::Weave::Platform::PersistedStorage::Read
  - nl::Weave::Platform::PersistedStorage::Write
  source_file: /src/openweave-core/src/device-manager/java/WeaveDeviceManager-JNI.cpp
- function_names:
  - TicksToMS
  - sys_init
  - sys_sem_new
  - sys_sem_free
  - sys_sem_signal
  - sys_arch_sem_wait
  - sys_mutex_new
  - sys_mutex_free
  - sys_mutex_lock
  - sys_mutex_unlock
  - sys_mbox_new
  - sys_mbox_free
  - sys_mbox_post
  - sys_arch_mbox_fetch
  - sys_arch_mbox_tryfetch
  - sys_mbox_trypost
  - sys_thread_new
  - sys_now
  - sys_arch_protect
  - sys_arch_unprotect
  source_file: /src/openweave-core/src/lwip/freertos/sys_arch.c
- function_names: []
  source_file: /src/openweave-core/src/lwip/freertos/arch/sys_arch.h
- function_names: []
  source_file: /src/openweave-core/src/lwip/nrf5/lwipopts.h
- function_names: []
  source_file: /src/openweave-core/src/lwip/nrf5/lwippools.h
- function_names: []
  source_file: /src/openweave-core/src/lwip/nrf5/arch/cc.h
- function_names: []
  source_file: /src/openweave-core/src/lwip/nrf5/arch/perf.h
- function_names: []
  source_file: /src/openweave-core/src/lwip/efr32/lwipopts.h
- function_names: []
  source_file: /src/openweave-core/src/lwip/efr32/lwippools.h
- function_names: []
  source_file: /src/openweave-core/src/lwip/efr32/arch/cc.h
- function_names: []
  source_file: /src/openweave-core/src/lwip/efr32/arch/perf.h
- function_names:
  - introduce_thread
  - finish_thread
  - sys_thread_new
  - sys_thread_finish
  - sys_mbox_new_extra
  - sys_mbox_new
  - sys_mbox_free
  - sys_mbox_trypost
  - sys_mbox_post
  - sys_arch_mbox_tryfetch
  - sys_arch_mbox_fetch
  - sys_sem_new_internal
  - sys_sem_new
  - cond_wait
  - sys_arch_sem_wait
  - sys_sem_signal
  - sys_sem_free_internal
  - sys_sem_free
  - sys_now
  - sys_init
  - sys_arch_protect
  - sys_arch_unprotect
  - sys_jiffies
  - ppp_trace
  source_file: /src/openweave-core/src/lwip/standalone/sys_arch.c
- function_names: []
  source_file: /src/openweave-core/src/lwip/standalone/TapInterface.h
- function_names:
  - TapInterface_low_level_output
  - TapInterface_low_level_input
  - TapInterface_SetupNetif
  - TapInterface_Init
  - TapInterface_Select
  source_file: /src/openweave-core/src/lwip/standalone/TapInterface.c
- function_names: []
  source_file: /src/openweave-core/src/lwip/standalone/lwipopts.h
- function_names: []
  source_file: /src/openweave-core/src/lwip/standalone/lwippools.h
- function_names: []
  source_file: /src/openweave-core/src/lwip/standalone/arch/cc.h
- function_names: []
  source_file: /src/openweave-core/src/lwip/standalone/arch/sys_arch.h
- function_names: []
  source_file: /src/openweave-core/src/lwip/standalone/arch/perf.h
- function_names:
  - nl::Inet::RADaemon::Init
  source_file: /src/openweave-core/src/ra-daemon/RADaemon.h
- function_names:
  - nl::Inet::RADaemon::Init
  - nl::Inet::RADaemon::CalculateChecksum
  - nl::Inet::mask_ipv6_address
  - nl::Inet::RADaemon::BuildRA
  - nl::Inet::RADaemon::MulticastRA
  - nl::Inet::RADaemon::MulticastPeriodicRA
  - nl::Inet::RADaemon::TrackRSes
  - nl::Inet::RADaemon::UpdateLinkLocalAddr
  - nl::Inet::RADaemon::McastAllPrefixes
  - nl::Inet::RADaemon::HandleReceiveError2
  - nl::Inet::RADaemon::HandleReceiveError
  - nl::Inet::RADaemon::HandleMessageReceived2
  - nl::Inet::RADaemon::HandleMessageReceived
  - nl::Inet::RADaemon::SetPrefixInfo
  - nl::Inet::RADaemon::DelPrefixInfo
  - nl::Inet::RADaemon::DelLinkInfo
  source_file: /src/openweave-core/src/ra-daemon/RADaemon.cpp
- function_names: []
  source_file: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.h
- function_names:
  - nl::Weave::JNIUtils::Init
  - nl::Weave::JNIUtils::Shutdown
  - nl::Weave::MakeClassName
  - nl::Weave::JNIUtils::RegisterLibraryMethods
  - nl::Weave::JNIUtils::ThrowError
  - nl::Weave::J2N_ByteArray
  - nl::Weave::J2N_ByteArrayInPlace
  - nl::Weave::JNIUtils::N2J_ByteArray
  - nl::Weave::J2N_EnumVal
  - nl::Weave::J2N_EnumFieldVal
  - nl::Weave::J2N_ShortFieldVal
  - nl::Weave::J2N_IntFieldVal
  - nl::Weave::J2N_LongFieldVal
  - nl::Weave::J2N_StringFieldVal
  - nl::Weave::J2N_ByteArrayFieldVal
  - nl::Weave::JNIUtils::N2J_Error
  - nl::Weave::JNIUtils::GetGlobalClassRef
  source_file: /src/openweave-core/src/wrappers/jni/jni-utils/JNIUtils.cpp
- function_names:
  - nl::Weave::SecuritySupport::WeaveKeyExportClientNative::newNativeClient
  - nl::Weave::SecuritySupport::WeaveKeyExportClientNative::releaseNativeClient
  - nl::Weave::SecuritySupport::WeaveKeyExportClientNative::resetNativeClient
  - nl::Weave::SecuritySupport::WeaveKeyExportClientNative::generateKeyExportRequest_Cert
  - nl::Weave::SecuritySupport::WeaveKeyExportClientNative::generateKeyExportRequest_AccessToken
  - nl::Weave::SecuritySupport::WeaveKeyExportClientNative::processKeyExportResponse
  - nl::Weave::SecuritySupport::WeaveKeyExportClientNative::processKeyExportReconfigure
  - nl::Weave::SecuritySupport::WeaveKeyExportClientNative::allowNestDevelopmentDevices
  - nl::Weave::SecuritySupport::WeaveKeyExportClientNative::setAllowNestDevelopmentDevices
  - nl::Weave::SecuritySupport::WeaveKeyExportClientNative::allowSHA1DeviceCertificates
  - nl::Weave::SecuritySupport::WeaveKeyExportClientNative::setAllowSHA1DeviceCertificates
  source_file: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportClientNative.cpp
- function_names:
  - nl::Weave::SecuritySupport::JNI_OnLoad
  - nl::Weave::SecuritySupport::JNI_OnUnload
  - nl::Weave::SecuritySupport::WeaveSecuritySupport::getLibVersion
  - nl::Weave::Platform::PersistedStorage::Read
  - nl::Weave::Platform::PersistedStorage::Write
  source_file: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveSecuritySupport.cpp
- function_names:
  - nl::Weave::SecuritySupport::WeaveKeyExportSupportNative::simulateDeviceKeyExport
  source_file: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveKeyExportSupportNative.cpp
- function_names:
  - nl::Weave::SecuritySupport::PairingCodeSupport::isValidPairingCode
  - nl::Weave::SecuritySupport::PairingCodeSupport::normalizePairingCode
  - nl::Weave::SecuritySupport::PairingCodeSupport::computeCheckChar
  - nl::Weave::SecuritySupport::PairingCodeSupport::addCheckChar
  - nl::Weave::SecuritySupport::PairingCodeSupport::intToPairingCode
  - nl::Weave::SecuritySupport::PairingCodeSupport::pairingCodeToInt
  - nl::Weave::SecuritySupport::PairingCodeSupport::isValidPairingCodeChar
  - nl::Weave::SecuritySupport::PairingCodeSupport::generatePairingCode
  source_file: /src/openweave-core/src/wrappers/jni/security-support/native/PairingCodeSupport.cpp
- function_names:
  - nl::Weave::SecuritySupport::WeaveCertificateSupport::weaveCertificateToX509
  - nl::Weave::SecuritySupport::WeaveCertificateSupport::x509CertificateToWeave
  source_file: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveCertificateSupport.cpp
- function_names:
  - nl::Weave::SecuritySupport::PasscodeEncryptionSupport::encryptPasscode
  - nl::Weave::SecuritySupport::PasscodeEncryptionSupport::decryptPasscode
  - nl::Weave::SecuritySupport::PasscodeEncryptionSupport::isSupportedPasscodeEncryptionConfig
  - nl::Weave::SecuritySupport::PasscodeEncryptionSupport::getEncryptedPasscodeConfig
  - nl::Weave::SecuritySupport::PasscodeEncryptionSupport::getEncryptedPasscodeKeyId
  - nl::Weave::SecuritySupport::PasscodeEncryptionSupport::getEncryptedPasscodeNonce
  - nl::Weave::SecuritySupport::PasscodeEncryptionSupport::getEncryptedPasscodeFingerprint
  source_file: /src/openweave-core/src/wrappers/jni/security-support/native/PasscodeEncryptionSupport.cpp
- function_names: []
  source_file: /src/openweave-core/src/wrappers/jni/security-support/native/WeaveSecuritySupport.h
- function_names:
  - nl::Weave::DeviceLayer::ParseCompilerDateStr
  - nl::Weave::DeviceLayer::Parse24HourTimeStr
  - nl::Weave::DeviceLayer::CharacterizeIPv6Address
  - nl::Weave::DeviceLayer::CharacterizeIPv6Prefix
  - nl::Weave::DeviceLayer::RegisterDeviceLayerErrorFormatter
  - nl::Weave::DeviceLayer::FormatDeviceLayerError
  source_file: /src/openweave-core/src/adaptations/device-layer/GeneralUtils.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::InitServiceTunnelAgent
  source_file: /src/openweave-core/src/adaptations/device-layer/ServiceTunnelAgent.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::DeviceIdentityTraitDataSource::DeviceIdentityTraitDataSource
  - nl::Weave::DeviceLayer::Internal::DeviceIdentityTraitDataSource::GetLeafData
  source_file: /src/openweave-core/src/adaptations/device-layer/DeviceIdentityTraitDataSource.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::FabricProvisioningServer::Init
  - nl::Weave::DeviceLayer::Internal::FabricProvisioningServer::HandleCreateFabric
  - nl::Weave::DeviceLayer::Internal::FabricProvisioningServer::HandleJoinExistingFabric
  - nl::Weave::DeviceLayer::Internal::FabricProvisioningServer::HandleLeaveFabric
  - nl::Weave::DeviceLayer::Internal::FabricProvisioningServer::LeaveFabric
  - nl::Weave::DeviceLayer::Internal::FabricProvisioningServer::HandleGetFabricConfig
  - nl::Weave::DeviceLayer::Internal::FabricProvisioningServer::IsPairedToAccount
  - nl::Weave::DeviceLayer::Internal::FabricProvisioningServer::OnPlatformEvent
  source_file: /src/openweave-core/src/adaptations/device-layer/FabricProvisioningServer.cpp
- function_names:
  - TraitCatalogImpl::HandleIndex
  - TraitCatalogImpl::HandleRevision
  - TraitCatalogImpl::MakeTraitDataHandle
  - nl::Weave::DeviceLayer::TraitManager::SetServiceSubscriptionMode
  - nl::Weave::DeviceLayer::TraitManager::GetServiceSubscribeConfirmIntervalMS
  - nl::Weave::DeviceLayer::TraitManager::SetServiceSubscribeConfirmIntervalMS
  - nl::Weave::DeviceLayer::TraitManager::SubscribeServiceTrait
  - nl::Weave::DeviceLayer::TraitManager::UnsubscribeServiceTrait
  - nl::Weave::DeviceLayer::TraitManager::PublishTrait
  - nl::Weave::DeviceLayer::TraitManager::PublishTrait
  - nl::Weave::DeviceLayer::TraitManager::UnpublishTrait
  - nl::Weave::DeviceLayer::TraitManager::Init
  - nl::Weave::DeviceLayer::TraitManager::OnPlatformEvent
  - nl::Weave::DeviceLayer::TraitManager::DriveServiceSubscriptionState
  - nl::Weave::DeviceLayer::TraitManager::ActivateServiceSubscription
  - nl::Weave::DeviceLayer::TraitManager::HandleSubscriptionEngineEvent
  - nl::Weave::DeviceLayer::TraitManager::HandleServiceBindingEvent
  - nl::Weave::DeviceLayer::TraitManager::HandleOutboundServiceSubscriptionEvent
  - nl::Weave::DeviceLayer::TraitManager::HandleInboundSubscriptionEvent
  - TraitCatalogImpl<T>::TraitCatalogImpl
  - TraitCatalogImpl<T>::~TraitCatalogImpl()
  - TraitCatalogImpl<T>::Add
  - TraitCatalogImpl<T>::Remove
  - TraitCatalogImpl<T>::PrepareSubscriptionPathList
  - DecodeTraitInstancePath
  - TraitCatalogImpl<T>::AddressToHandle
  - EncodeTraitInstancePath
  - TraitCatalogImpl<T>::HandleToAddress
  - TraitCatalogImpl<T>::Locate
  - TraitCatalogImpl<T>::Locate
  - TraitCatalogImpl<T>::DispatchEvent
  - TraitCatalogImpl<T>::Iterate
  - '* nl::Weave::Profiles::DataManagement::SubscriptionEngine::GetInstance()'
  source_file: /src/openweave-core/src/adaptations/device-layer/TraitManager.cpp
- function_names:
  - nl::Weave::DeviceLayer::TimeSyncManager::SetMode
  - nl::Weave::DeviceLayer::TimeSyncManager::SetSyncInterval
  - nl::Weave::DeviceLayer::TimeSyncManager::IsTimeSynchronized
  - nl::Weave::DeviceLayer::TimeSyncManager::Init
  - nl::Weave::DeviceLayer::TimeSyncManager::OnPlatformEvent
  - nl::Weave::DeviceLayer::TimeSyncManager::MarkServiceDirRequestStart
  - nl::Weave::DeviceLayer::TimeSyncManager::ProcessServiceDirTimeData
  - nl::Weave::DeviceLayer::TimeSyncManager::DriveTimeSync
  - nl::Weave::DeviceLayer::TimeSyncManager::CancelTimeSync
  - nl::Weave::DeviceLayer::TimeSyncManager::ApplySynchronizedTime
  - nl::Weave::DeviceLayer::TimeSyncManager::TimeSyncFailed
  - nl::Weave::DeviceLayer::TimeSyncManager::DriveTimeSync
  - nl::Weave::DeviceLayer::TimeSyncManager::TimeServiceSync_HandleBindingEvent
  - nl::Weave::DeviceLayer::TimeSyncManager::TimeServiceSync_HandleSyncComplete
  source_file: /src/openweave-core/src/adaptations/device-layer/TimeSyncManager.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::DeviceControlServer::Init
  - nl::Weave::DeviceLayer::Internal::DeviceControlServer::ShouldCloseConBeforeResetConfig
  - nl::Weave::DeviceLayer::Internal::DeviceControlServer::OnResetConfig
  - nl::Weave::DeviceLayer::Internal::DeviceControlServer::OnFailSafeArmed
  - nl::Weave::DeviceLayer::Internal::DeviceControlServer::OnFailSafeDisarmed
  - nl::Weave::DeviceLayer::Internal::DeviceControlServer::OnConnectionMonitorTimeout
  - nl::Weave::DeviceLayer::Internal::DeviceControlServer::OnRemotePassiveRendezvousStarted
  - nl::Weave::DeviceLayer::Internal::DeviceControlServer::OnRemotePassiveRendezvousDone
  - nl::Weave::DeviceLayer::Internal::DeviceControlServer::WillStartRemotePassiveRendezvous
  - nl::Weave::DeviceLayer::Internal::DeviceControlServer::WillCloseRemotePassiveRendezvous
  - nl::Weave::DeviceLayer::Internal::DeviceControlServer::IsResetAllowed
  - nl::Weave::DeviceLayer::Internal::DeviceControlServer::OnSystemTestStarted
  - nl::Weave::DeviceLayer::Internal::DeviceControlServer::OnSystemTestStopped
  - nl::Weave::DeviceLayer::Internal::DeviceControlServer::IsPairedToAccount
  - nl::Weave::DeviceLayer::Internal::DeviceControlServer::OnPlatformEvent
  source_file: /src/openweave-core/src/adaptations/device-layer/DeviceControlServer.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/Globals.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::InitServiceDirectoryManager
  - nl::Weave::DeviceLayer::Internal::EncodeRootDirectoryFromServiceConfig
  - nl::Weave::DeviceLayer::Internal::GetRootDirectoryEntry
  source_file: /src/openweave-core/src/adaptations/device-layer/ServiceDirectoryManager.cpp
- function_names:
  - nl::Weave::Platform::PersistedStorage::Read
  - nl::Weave::Platform::PersistedStorage::Write
  source_file: /src/openweave-core/src/adaptations/device-layer/PersistedStorage.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::Init
  - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandleRegisterServicePairAccount
  - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandleUpdateService
  - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandleUnregisterService
  - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::IsPairedToAccount
  - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::OnPlatformEvent
  - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::StartPairDeviceToAccount
  - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::SendPairDeviceToAccountRequest
  - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandlePairDeviceToAccountResult
  - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::AsyncStartPairDeviceToAccount
  - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandleServiceConnectivityTimeout
  - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandleProvServiceBindingEvent
  - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandlePairDeviceToAccountResult
  - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::HandleIFJServiceFabricJoinResult
  source_file: /src/openweave-core/src/adaptations/device-layer/ServiceProvisioningServer.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::DeviceNetworkInfo::Reset
  - nl::Weave::DeviceLayer::Internal::DeviceNetworkInfo::Encode
  - nl::Weave::DeviceLayer::Internal::DeviceNetworkInfo::Decode
  - nl::Weave::DeviceLayer::Internal::DeviceNetworkInfo::MergeTo
  - nl::Weave::DeviceLayer::Internal::DeviceNetworkInfo::EncodeArray
  source_file: /src/openweave-core/src/adaptations/device-layer/DeviceNetworkInfo.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::InitWeaveEventLogging
  source_file: /src/openweave-core/src/adaptations/device-layer/EventLogging.cpp
- function_names:
  - nl::Weave::System::Platform::Layer::StartTimer
  source_file: /src/openweave-core/src/adaptations/device-layer/SystemTimerSupport.cpp
- function_names:
  - WeaveTelemetryBase::WeaveTelemetryBase
  - WeaveTelemetryBase::Init
  - WeaveTelemetryBase::Enable
  - WeaveTelemetryBase::Disable
  - WeaveTelemetryBase::StartPollingTimer
  - WeaveTelemetryBase::StopPollingTimer
  - WeaveTelemetryBase::HandleTimer
  - NetworkTelemetryManager::NetworkTelemetryManager
  - NetworkTelemetryManager::Init
  - WiFiTelemetry::GetTelemetryStatsAndLogEvent
  - ThreadTelemetry::GetTelemetryStatsAndLogEvent
  - ThreadTopology::GetTelemetryStatsAndLogEvent
  - TunnelTelemetry::GetTelemetryStatsAndLogEvent
  source_file: /src/openweave-core/src/adaptations/device-layer/NetworkTelemetryManager.cpp
- function_names:
  - nl::Weave::DeviceLayer::CASEAuthDelegate::CASEAuthDelegate
  - nl::Weave::DeviceLayer::Internal::InitCASEAuthDelegate
  - nl::Weave::DeviceLayer::CASEAuthDelegate::GetNodeCertInfo
  - nl::Weave::DeviceLayer::CASEAuthDelegate::GetNodePrivateKey
  - nl::Weave::DeviceLayer::CASEAuthDelegate::ReleaseNodePrivateKey
  - nl::Weave::DeviceLayer::CASEAuthDelegate::GetNodePayload
  - nl::Weave::DeviceLayer::CASEAuthDelegate::BeginCertValidation
  - nl::Weave::DeviceLayer::CASEAuthDelegate::HandleCertValidationResult
  - nl::Weave::DeviceLayer::CASEAuthDelegate::EndCertValidation
  - nl::Weave::DeviceLayer::AddCertToContainer
  - nl::Weave::DeviceLayer::MakeCertInfo
  - nl::Weave::DeviceLayer::LoadCertsFromServiceConfig
  source_file: /src/openweave-core/src/adaptations/device-layer/CASEAuth.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::Init
  - nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::IsUserSelectedModeActive
  - nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::SetUserSelectedMode
  - nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::GetUserSelectedModeTimeout
  - nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::SetUserSelectedModeTimeout
  - nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::HandleIdentifyRequest
  - nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::OnPlatformEvent
  source_file: /src/openweave-core/src/adaptations/device-layer/DeviceDescriptionServer.cpp
- function_names:
  - nl::Weave::System::Platform::Layer::PostEvent
  - nl::Weave::System::Platform::Layer::DispatchEvents
  - nl::Weave::System::Platform::Layer::DispatchEvent
  source_file: /src/openweave-core/src/adaptations/device-layer/SystemEventSupport.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::EchoServer::Init
  source_file: /src/openweave-core/src/adaptations/device-layer/EchoServer.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/TestDeviceIds.cpp
- function_names:
  - nl::Weave::System::Platform::Layer::FreeRTOSTicksSinceBoot
  source_file: /src/openweave-core/src/adaptations/device-layer/FreeRTOS/SystemTimeSupport.cpp
- function_names:
  - nl::Weave::Warm::Platform::Init
  - nl::Weave::Warm::Platform::CriticalSectionEnter
  - nl::Weave::Warm::Platform::CriticalSectionExit
  - nl::Weave::Warm::Platform::RequestInvokeActions
  - nl::Weave::Warm::Platform::AddRemoveHostAddress
  - nl::Weave::Warm::Platform::AddRemoveHostRoute
  - nl::Weave::Warm::Platform::AddRemoveThreadAddress
  - nl::Weave::Warm::Platform::StartStopThreadAdvertisement
  - nl::Weave::Warm::Platform::AddRemoveThreadRoute
  - nl::Weave::Warm::Platform::SetThreadRoutePriority
  - nl::Weave::DeviceLayer::Internal::GetLwIPNetifForWarmInterfaceType
  - nl::Weave::DeviceLayer::Internal::LwIPNetifSupportsMLD
  - nl::Weave::DeviceLayer::Internal::WarmInterfaceTypeToStr
  source_file: /src/openweave-core/src/adaptations/device-layer/LwIP/WarmSupport.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::GenericThreadStackManagerImpl_FreeRTOS<ThreadStackManagerImpl>::ThreadTaskMain
  - nl::Weave::DeviceLayer::ThreadStackManagerImpl::_InitThreadStack
  - nl::Weave::DeviceLayer::ThreadStackManagerImpl::InitThreadStack
  - nl::Weave::DeviceLayer::ThreadStackManagerImpl::IsInitialized
  - otTaskletsSignalPending
  - otSysEventSignalPending
  source_file: /src/openweave-core/src/adaptations/device-layer/ESP32/ThreadStackManagerImpl.cpp
- function_names:
  - nl::Weave::DeviceLayer::PlatformManagerImpl::_InitWeaveStack
  - nl::Weave::DeviceLayer::PlatformManagerImpl::InitLwIPCoreLock
  - nl::Weave::DeviceLayer::PlatformManagerImpl::HandleESPSystemEvent
  source_file: /src/openweave-core/src/adaptations/device-layer/ESP32/PlatformManagerImpl.cpp
- function_names:
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_Init
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetPrimaryWiFiMACAddress
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetDeviceDescriptor
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetGroupKeyStore
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_CanFactoryReset
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_InitiateFactoryReset
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_ReadPersistedStorageValue
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_WritePersistedStorageValue
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::GetWiFiStationSecurityType
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::UpdateWiFiStationSecurityType
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::DoFactoryReset
  source_file: /src/openweave-core/src/adaptations/device-layer/ESP32/ConfigurationManagerImpl.cpp
- function_names:
  - ESP32Utils::IsAPEnabled
  - ESP32Utils::IsStationProvisioned
  - ESP32Utils::IsStationConnected
  - ESP32Utils::StartWiFiLayer
  - ESP32Utils::EnableStationMode
  - ESP32Utils::SetAPMode
  - ESP32Utils::WiFiAuthModeToWeaveWiFiSecurityType
  - ESP32Utils::OrderScanResultsByRSSI
  - ESP32Utils::WiFiModeToStr
  - ESP32Utils::GetStationNetif
  - ESP32Utils::GetNetif
  - ESP32Utils::IsInterfaceUp
  - ESP32Utils::InterfaceIdToName
  - ESP32Utils::HasIPv6LinkLocalAddress
  source_file: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Utils.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::ESP32Config::ReadConfigValue
  - nl::Weave::DeviceLayer::Internal::ESP32Config::ReadConfigValue
  - nl::Weave::DeviceLayer::Internal::ESP32Config::ReadConfigValue
  - nl::Weave::DeviceLayer::Internal::ESP32Config::ReadConfigValueStr
  - nl::Weave::DeviceLayer::Internal::ESP32Config::ReadConfigValueBin
  - nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValue
  - nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValue
  - nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValue
  - nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValueStr
  - nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValueStr
  - nl::Weave::DeviceLayer::Internal::ESP32Config::WriteConfigValueBin
  - nl::Weave::DeviceLayer::Internal::ESP32Config::ClearConfigValue
  - nl::Weave::DeviceLayer::Internal::ESP32Config::ConfigValueExists
  - nl::Weave::DeviceLayer::Internal::ESP32Config::EnsureNamespace
  - nl::Weave::DeviceLayer::Internal::ESP32Config::ClearNamespace
  source_file: /src/openweave-core/src/adaptations/device-layer/ESP32/ESP32Config.cpp
- function_names:
  - nl::Weave::Platform::Security::AES128BlockCipher::AES128BlockCipher
  - AES128BlockCipher::~AES128BlockCipher()
  - nl::Weave::Platform::Security::AES128BlockCipher::Reset
  - nl::Weave::Platform::Security::AES128BlockCipherEnc::SetKey
  - nl::Weave::Platform::Security::AES128BlockCipherEnc::EncryptBlock
  - nl::Weave::Platform::Security::AES128BlockCipherDec::SetKey
  - nl::Weave::Platform::Security::AES128BlockCipherDec::DecryptBlock
  - nl::Weave::Platform::Security::AES256BlockCipher::AES256BlockCipher
  - AES256BlockCipher::~AES256BlockCipher()
  - nl::Weave::Platform::Security::AES256BlockCipher::Reset
  - nl::Weave::Platform::Security::AES256BlockCipherEnc::SetKey
  - nl::Weave::Platform::Security::AES256BlockCipherEnc::EncryptBlock
  - nl::Weave::Platform::Security::AES256BlockCipherDec::SetKey
  - nl::Weave::Platform::Security::AES256BlockCipherDec::DecryptBlock
  source_file: /src/openweave-core/src/adaptations/device-layer/ESP32/AESBlockCipher.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::RetrieveGroupKey
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::StoreGroupKey
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteGroupKey
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteGroupKeysOfAType
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::EnumerateGroupKeys
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::Clear
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::RetrieveLastUsedEpochKeyId
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::StoreLastUsedEpochKeyId
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::Init
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::AddKeyToIndex
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::WriteKeyIndex
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteKeyOrKeys
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::FormKeyName
  source_file: /src/openweave-core/src/adaptations/device-layer/ESP32/GroupKeyStoreImpl.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::_Init
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::_OnPlatformEvent
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::GetWiFiStationProvision
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::SetWiFiStationProvision
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::ClearWiFiStationProvision
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::InitiateWiFiScan
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::HandleScanDone
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::HandleScanTimeOut
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::IsSupportedWiFiSecurityType
  source_file: /src/openweave-core/src/adaptations/device-layer/ESP32/NetworkProvisioningServerImpl.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::GetEntropy_ESP32
  - nl::Weave::DeviceLayer::Internal::InitEntropy
  source_file: /src/openweave-core/src/adaptations/device-layer/ESP32/Entropy.cpp
- function_names:
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_GetWiFiStationMode
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_IsWiFiStationEnabled
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_SetWiFiStationMode
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_IsWiFiStationProvisioned
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_ClearWiFiStationProvision
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_SetWiFiAPMode
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_DemandStartWiFiAP
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_StopOnDemandWiFiAP
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_MaintainOnDemandWiFiAP
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_SetWiFiAPIdleTimeoutMS
  - nl::Weave::DeviceLayer::Map2400MHz
  - nl::Weave::DeviceLayer::Map5000MHz
  - nl::Weave::DeviceLayer::MapFrequency
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_GetAndLogWifiStatsCounters
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_SetServiceTunnelMode
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_IsServiceTunnelConnected
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_IsServiceTunnelRestricted
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_HaveServiceConnectivityViaTunnel
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_Init
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_OnPlatformEvent
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_OnWiFiScanDone
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_OnWiFiStationProvisionChange
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveStationState
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::OnStationConnected
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::OnStationDisconnected
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::ChangeWiFiStationState
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveStationState
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveAPState
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::ConfigureWiFiAP
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::ChangeWiFiAPState
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveAPState
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::UpdateInternetConnectivityState
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::OnStationIPv4AddressAvailable
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::OnStationIPv4AddressLost
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::OnIPv6AddressAvailable
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveServiceTunnelState
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::DriveServiceTunnelState
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_WiFiStationModeToStr
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_WiFiAPModeToStr
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_ServiceTunnelModeToStr
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::WiFiStationStateToStr
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::WiFiAPStateToStr
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::RefreshMessageLayer
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::HandleServiceTunnelNotification
  source_file: /src/openweave-core/src/adaptations/device-layer/ESP32/ConnectivityManagerImpl.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_Init
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetWoBLEServiceMode
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetAdvertisingEnabled
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetFastAdvertisingEnabled
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_GetDeviceName
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetDeviceName
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_OnPlatformEvent
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SubscribeCharacteristic
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::UnsubscribeCharacteristic
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::CloseConnection
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetMTU
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendIndication
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendWriteRequest
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendReadRequest
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendReadResponse
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::NotifyWeaveConnectionClosed
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::DriveBLEState
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::InitESPBleLayer
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::ConfigureAdvertisingData
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::StartAdvertising
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleGATTControlEvent
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleGATTCommEvent
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleRXCharWrite
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharRead
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharCCCDRead
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharCCCDWrite
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharConfirm
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleDisconnect
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::ReleaseConnectionState
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_NumConnections
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleGATTEvent
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleGAPEvent
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::DriveBLEState
  source_file: /src/openweave-core/src/adaptations/device-layer/ESP32/BLEManagerImpl.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::InitLwIPCoreLock
  - lock_lwip_core
  - unlock_lwip_core
  source_file: /src/openweave-core/src/adaptations/device-layer/ESP32/LwIPCoreLock.cpp
- function_names:
  - GetModuleName
  - nl::Weave::Logging::Log
  source_file: /src/openweave-core/src/adaptations/device-layer/ESP32/Logging.cpp
- function_names:
  - nl::Weave::System::Platform::Layer::GetClock_Monotonic
  - nl::Weave::System::Platform::Layer::GetClock_MonotonicMS
  - nl::Weave::System::Platform::Layer::GetClock_MonotonicHiRes
  - nl::Weave::System::Platform::Layer::GetClock_RealTime
  - nl::Weave::System::Platform::Layer::GetClock_RealTimeMS
  - nl::Weave::System::Platform::Layer::SetClock_RealTime
  source_file: /src/openweave-core/src/adaptations/device-layer/ESP32/SystemTimeSupport.cpp
- function_names:
  - nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl::_Init
  source_file: /src/openweave-core/src/adaptations/device-layer/ESP32/SoftwareUpdateManagerImpl.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::MapOpenThreadError
  - nl::Weave::DeviceLayer::Internal::FormatOpenThreadError
  - nl::Weave::DeviceLayer::Internal::RegisterOpenThreadErrorFormatter
  - nl::Weave::DeviceLayer::Internal::LogOpenThreadStateChange
  - nl::Weave::DeviceLayer::Internal::LogOpenThreadPacket
  - nl::Weave::DeviceLayer::Internal::IsOpenThreadMeshLocalAddress
  - nl::Weave::DeviceLayer::Internal::OpenThreadRoleToStr
  source_file: /src/openweave-core/src/adaptations/device-layer/OpenThread/OpenThreadUtils.cpp
- function_names:
  - nl::Weave::DeviceLayer::ThreadStackManager::ThreadStackManager
  - ~ThreadStackManager()
  - nl::Weave::DeviceLayer::ThreadStackManager::ThreadStackManager
  - nl::Weave::DeviceLayer::ThreadStackManager::ThreadStackManager
  - '& operator =(const ThreadStackManager &)'
  - nl::Weave::DeviceLayer::ThreadStackManager::InitThreadStack
  - nl::Weave::DeviceLayer::ThreadStackManager::ProcessThreadActivity
  - nl::Weave::DeviceLayer::ThreadStackManager::StartThreadTask
  - nl::Weave::DeviceLayer::ThreadStackManager::LockThreadStack
  - nl::Weave::DeviceLayer::ThreadStackManager::TryLockThreadStack
  - nl::Weave::DeviceLayer::ThreadStackManager::UnlockThreadStack
  - nl::Weave::DeviceLayer::ThreadStackManager::HaveRouteToAddress
  - nl::Weave::DeviceLayer::ThreadStackManager::OnPlatformEvent
  - nl::Weave::DeviceLayer::ThreadStackManager::IsThreadEnabled
  - nl::Weave::DeviceLayer::ThreadStackManager::SetThreadEnabled
  - nl::Weave::DeviceLayer::ThreadStackManager::IsThreadProvisioned
  - nl::Weave::DeviceLayer::ThreadStackManager::IsThreadAttached
  - nl::Weave::DeviceLayer::ThreadStackManager::GetThreadProvision
  - nl::Weave::DeviceLayer::ThreadStackManager::SetThreadProvision
  - nl::Weave::DeviceLayer::ThreadStackManager::ClearThreadProvision
  - nl::Weave::DeviceLayer::ThreadStackManager::GetThreadDeviceType
  - nl::Weave::DeviceLayer::ThreadStackManager::SetThreadDeviceType
  - nl::Weave::DeviceLayer::ThreadStackManager::GetThreadPollingConfig
  - nl::Weave::DeviceLayer::ThreadStackManager::SetThreadPollingConfig
  - nl::Weave::DeviceLayer::ThreadStackManager::HaveMeshConnectivity
  - nl::Weave::DeviceLayer::ThreadStackManager::OnMessageLayerActivityChanged
  - nl::Weave::DeviceLayer::ThreadStackManager::OnWoBLEAdvertisingStart
  - nl::Weave::DeviceLayer::ThreadStackManager::OnWoBLEAdvertisingStop
  - nl::Weave::DeviceLayer::ThreadStackManager::GetAndLogThreadStatsCounters
  - nl::Weave::DeviceLayer::ThreadStackManager::GetAndLogThreadTopologyMinimal
  - nl::Weave::DeviceLayer::ThreadStackManager::GetAndLogThreadTopologyFull
  - nl::Weave::DeviceLayer::ThreadStackManager::GetPrimary802154MACAddress
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ThreadStackManager.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/WeaveDeviceConfig.h
- function_names:
  - nl::Weave::DeviceLayer::ConfigurationManager::ConfigurationManager
  - ~ConfigurationManager()
  - nl::Weave::DeviceLayer::ConfigurationManager::ConfigurationManager
  - nl::Weave::DeviceLayer::ConfigurationManager::ConfigurationManager
  - '& operator =(const ConfigurationManager &)'
  - nl::Weave::DeviceLayer::ConfigurationManager::GetVendorId
  - nl::Weave::DeviceLayer::ConfigurationManager::GetProductId
  - nl::Weave::DeviceLayer::ConfigurationManager::GetProductRevision
  - nl::Weave::DeviceLayer::ConfigurationManager::GetSerialNumber
  - nl::Weave::DeviceLayer::ConfigurationManager::GetPrimaryWiFiMACAddress
  - nl::Weave::DeviceLayer::ConfigurationManager::GetPrimary802154MACAddress
  - nl::Weave::DeviceLayer::ConfigurationManager::GetManufacturingDate
  - nl::Weave::DeviceLayer::ConfigurationManager::GetFirmwareRevision
  - nl::Weave::DeviceLayer::ConfigurationManager::GetFirmwareBuildTime
  - nl::Weave::DeviceLayer::ConfigurationManager::GetDeviceId
  - nl::Weave::DeviceLayer::ConfigurationManager::GetDeviceCertificate
  - nl::Weave::DeviceLayer::ConfigurationManager::GetDeviceIntermediateCACerts
  - nl::Weave::DeviceLayer::ConfigurationManager::GetDevicePrivateKey
  - nl::Weave::DeviceLayer::ConfigurationManager::GetManufacturerDeviceId
  - nl::Weave::DeviceLayer::ConfigurationManager::GetManufacturerDeviceCertificate
  - nl::Weave::DeviceLayer::ConfigurationManager::GetManufacturerDeviceIntermediateCACerts
  - nl::Weave::DeviceLayer::ConfigurationManager::GetManufacturerDevicePrivateKey
  - nl::Weave::DeviceLayer::ConfigurationManager::GetPairingCode
  - nl::Weave::DeviceLayer::ConfigurationManager::GetServiceId
  - nl::Weave::DeviceLayer::ConfigurationManager::GetFabricId
  - nl::Weave::DeviceLayer::ConfigurationManager::GetServiceConfig
  - nl::Weave::DeviceLayer::ConfigurationManager::GetPairedAccountId
  - nl::Weave::DeviceLayer::ConfigurationManager::StoreSerialNumber
  - nl::Weave::DeviceLayer::ConfigurationManager::StorePrimaryWiFiMACAddress
  - nl::Weave::DeviceLayer::ConfigurationManager::StorePrimary802154MACAddress
  - nl::Weave::DeviceLayer::ConfigurationManager::StoreManufacturingDate
  - nl::Weave::DeviceLayer::ConfigurationManager::StoreProductRevision
  - nl::Weave::DeviceLayer::ConfigurationManager::StoreFabricId
  - nl::Weave::DeviceLayer::ConfigurationManager::StoreDeviceId
  - nl::Weave::DeviceLayer::ConfigurationManager::StoreDeviceCertificate
  - nl::Weave::DeviceLayer::ConfigurationManager::StoreDeviceIntermediateCACerts
  - nl::Weave::DeviceLayer::ConfigurationManager::StoreDevicePrivateKey
  - nl::Weave::DeviceLayer::ConfigurationManager::StoreManufacturerDeviceId
  - nl::Weave::DeviceLayer::ConfigurationManager::StoreManufacturerDeviceCertificate
  - nl::Weave::DeviceLayer::ConfigurationManager::StoreManufacturerDeviceIntermediateCACerts
  - nl::Weave::DeviceLayer::ConfigurationManager::StoreManufacturerDevicePrivateKey
  - nl::Weave::DeviceLayer::ConfigurationManager::StorePairingCode
  - nl::Weave::DeviceLayer::ConfigurationManager::StoreServiceProvisioningData
  - nl::Weave::DeviceLayer::ConfigurationManager::ClearServiceProvisioningData
  - nl::Weave::DeviceLayer::ConfigurationManager::StoreServiceConfig
  - nl::Weave::DeviceLayer::ConfigurationManager::StorePairedAccountId
  - nl::Weave::DeviceLayer::ConfigurationManager::ReadPersistedStorageValue
  - nl::Weave::DeviceLayer::ConfigurationManager::WritePersistedStorageValue
  - nl::Weave::DeviceLayer::ConfigurationManager::GetDeviceDescriptor
  - nl::Weave::DeviceLayer::ConfigurationManager::GetDeviceDescriptorTLV
  - nl::Weave::DeviceLayer::ConfigurationManager::GetQRCodeString
  - nl::Weave::DeviceLayer::ConfigurationManager::GetWiFiAPSSID
  - nl::Weave::DeviceLayer::ConfigurationManager::GetBLEDeviceIdentificationInfo
  - nl::Weave::DeviceLayer::ConfigurationManager::IsServiceProvisioned
  - nl::Weave::DeviceLayer::ConfigurationManager::IsPairedToAccount
  - nl::Weave::DeviceLayer::ConfigurationManager::IsMemberOfFabric
  - nl::Weave::DeviceLayer::ConfigurationManager::IsFullyProvisioned
  - nl::Weave::DeviceLayer::ConfigurationManager::InitiateFactoryReset
  - nl::Weave::DeviceLayer::ConfigurationManager::ComputeProvisioningHash
  - nl::Weave::DeviceLayer::ConfigurationManager::Init
  - nl::Weave::DeviceLayer::ConfigurationManager::ConfigureWeaveStack
  - nl::Weave::DeviceLayer::ConfigurationManager::GetGroupKeyStore
  - nl::Weave::DeviceLayer::ConfigurationManager::CanFactoryReset
  - nl::Weave::DeviceLayer::ConfigurationManager::GetFailSafeArmed
  - nl::Weave::DeviceLayer::ConfigurationManager::SetFailSafeArmed
  - nl::Weave::DeviceLayer::ConfigurationManager::OperationalDeviceCredentialsProvisioned
  - nl::Weave::DeviceLayer::ConfigurationManager::ClearOperationalDeviceCredentials
  - nl::Weave::DeviceLayer::ConfigurationManager::UseManufacturerCredentialsAsOperational
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h
- function_names:
  - nl::Weave::DeviceLayer::TimeSyncManager::TimeSyncManager
  - ~TimeSyncManager()
  - nl::Weave::DeviceLayer::TimeSyncManager::TimeSyncManager
  - nl::Weave::DeviceLayer::TimeSyncManager::TimeSyncManager
  - '& operator =(const TimeSyncManager &)'
  - nl::Weave::DeviceLayer::TimeSyncManager::GetMode
  - nl::Weave::DeviceLayer::TimeSyncManager::GetSyncInterval
  - nl::Weave::DeviceLayer::TimeSyncMgr
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/TimeSyncManager.h
- function_names:
  - nl::Weave::DeviceLayer::DeviceEventType::IsPublic
  - nl::Weave::DeviceLayer::DeviceEventType::IsInternal
  - nl::Weave::DeviceLayer::DeviceEventType::IsPlatformSpecific
  - nl::Weave::DeviceLayer::DeviceEventType::IsPlatformGeneric
  - nl::Weave::DeviceLayer::GetConnectivityChange
  - nl::Weave::DeviceLayer::Clear
  - nl::Weave::DeviceLayer::IsPublic
  - nl::Weave::DeviceLayer::IsInternal
  - nl::Weave::DeviceLayer::IsPlatformSpecific
  - nl::Weave::DeviceLayer::IsPlatformGeneric
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/WeaveDeviceEvent.h
- function_names:
  - nl::Weave::DeviceLayer::ConnectivityManager::ConnectivityManager
  - ~ConnectivityManager()
  - nl::Weave::DeviceLayer::ConnectivityManager::ConnectivityManager
  - nl::Weave::DeviceLayer::ConnectivityManager::ConnectivityManager
  - '& operator =(const ConnectivityManager &)'
  - nl::Weave::DeviceLayer::Clear
  - nl::Weave::DeviceLayer::ConnectivityManager::GetWiFiStationMode
  - nl::Weave::DeviceLayer::ConnectivityManager::SetWiFiStationMode
  - nl::Weave::DeviceLayer::ConnectivityManager::IsWiFiStationEnabled
  - nl::Weave::DeviceLayer::ConnectivityManager::IsWiFiStationApplicationControlled
  - nl::Weave::DeviceLayer::ConnectivityManager::IsWiFiStationConnected
  - nl::Weave::DeviceLayer::ConnectivityManager::GetWiFiStationReconnectIntervalMS
  - nl::Weave::DeviceLayer::ConnectivityManager::SetWiFiStationReconnectIntervalMS
  - nl::Weave::DeviceLayer::ConnectivityManager::IsWiFiStationProvisioned
  - nl::Weave::DeviceLayer::ConnectivityManager::ClearWiFiStationProvision
  - nl::Weave::DeviceLayer::ConnectivityManager::GetWiFiAPMode
  - nl::Weave::DeviceLayer::ConnectivityManager::SetWiFiAPMode
  - nl::Weave::DeviceLayer::ConnectivityManager::IsWiFiAPActive
  - nl::Weave::DeviceLayer::ConnectivityManager::IsWiFiAPApplicationControlled
  - nl::Weave::DeviceLayer::ConnectivityManager::DemandStartWiFiAP
  - nl::Weave::DeviceLayer::ConnectivityManager::StopOnDemandWiFiAP
  - nl::Weave::DeviceLayer::ConnectivityManager::MaintainOnDemandWiFiAP
  - nl::Weave::DeviceLayer::ConnectivityManager::GetWiFiAPIdleTimeoutMS
  - nl::Weave::DeviceLayer::ConnectivityManager::SetWiFiAPIdleTimeoutMS
  - nl::Weave::DeviceLayer::ConnectivityManager::GetAndLogWifiStatsCounters
  - nl::Weave::DeviceLayer::ConnectivityManager::HaveServiceConnectivityViaTunnel
  - nl::Weave::DeviceLayer::ConnectivityManager::HaveIPv4InternetConnectivity
  - nl::Weave::DeviceLayer::ConnectivityManager::HaveIPv6InternetConnectivity
  - nl::Weave::DeviceLayer::ConnectivityManager::GetServiceTunnelMode
  - nl::Weave::DeviceLayer::ConnectivityManager::SetServiceTunnelMode
  - nl::Weave::DeviceLayer::ConnectivityManager::IsServiceTunnelConnected
  - nl::Weave::DeviceLayer::ConnectivityManager::IsServiceTunnelRestricted
  - nl::Weave::DeviceLayer::ConnectivityManager::HaveServiceConnectivity
  - nl::Weave::DeviceLayer::ConnectivityManager::GetThreadMode
  - nl::Weave::DeviceLayer::ConnectivityManager::SetThreadMode
  - nl::Weave::DeviceLayer::ConnectivityManager::IsThreadEnabled
  - nl::Weave::DeviceLayer::ConnectivityManager::IsThreadApplicationControlled
  - nl::Weave::DeviceLayer::ConnectivityManager::GetThreadDeviceType
  - nl::Weave::DeviceLayer::ConnectivityManager::SetThreadDeviceType
  - nl::Weave::DeviceLayer::ConnectivityManager::GetThreadPollingConfig
  - nl::Weave::DeviceLayer::ConnectivityManager::SetThreadPollingConfig
  - nl::Weave::DeviceLayer::ConnectivityManager::IsThreadAttached
  - nl::Weave::DeviceLayer::ConnectivityManager::IsThreadProvisioned
  - nl::Weave::DeviceLayer::ConnectivityManager::ClearThreadProvision
  - nl::Weave::DeviceLayer::ConnectivityManager::HaveServiceConnectivityViaThread
  - nl::Weave::DeviceLayer::ConnectivityManager::GetWoBLEServiceMode
  - nl::Weave::DeviceLayer::ConnectivityManager::SetWoBLEServiceMode
  - nl::Weave::DeviceLayer::ConnectivityManager::IsBLEAdvertisingEnabled
  - nl::Weave::DeviceLayer::ConnectivityManager::SetBLEAdvertisingEnabled
  - nl::Weave::DeviceLayer::ConnectivityManager::IsBLEFastAdvertisingEnabled
  - nl::Weave::DeviceLayer::ConnectivityManager::SetBLEFastAdvertisingEnabled
  - nl::Weave::DeviceLayer::ConnectivityManager::IsBLEAdvertising
  - nl::Weave::DeviceLayer::ConnectivityManager::GetBLEDeviceName
  - nl::Weave::DeviceLayer::ConnectivityManager::SetBLEDeviceName
  - nl::Weave::DeviceLayer::ConnectivityManager::NumBLEConnections
  - nl::Weave::DeviceLayer::ConnectivityManager::IsUserSelectedModeActive
  - nl::Weave::DeviceLayer::ConnectivityManager::SetUserSelectedMode
  - nl::Weave::DeviceLayer::ConnectivityManager::GetUserSelectedModeTimeout
  - nl::Weave::DeviceLayer::ConnectivityManager::SetUserSelectedModeTimeout
  - nl::Weave::DeviceLayer::ConnectivityManager::WiFiStationModeToStr
  - nl::Weave::DeviceLayer::ConnectivityManager::WiFiAPModeToStr
  - nl::Weave::DeviceLayer::ConnectivityManager::ServiceTunnelModeToStr
  - nl::Weave::DeviceLayer::ConnectivityManager::WoBLEServiceModeToStr
  - nl::Weave::DeviceLayer::ConnectivityManager::Init
  - nl::Weave::DeviceLayer::ConnectivityManager::OnPlatformEvent
  - nl::Weave::DeviceLayer::ConnectivityManager::CanStartWiFiScan
  - nl::Weave::DeviceLayer::ConnectivityManager::OnWiFiScanDone
  - nl::Weave::DeviceLayer::ConnectivityManager::OnWiFiStationProvisionChange
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ConnectivityManager.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/WeaveDeviceError.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::WeaveTelemetryBase::IsEnabled
  - nl::Weave::DeviceLayer::Internal::WeaveTelemetryBase::SetPollingInterval
  - nl::Weave::DeviceLayer::Internal::WeaveTelemetryBase::GetPollingInterval
  - nl::Weave::DeviceLayer::Internal::WeaveTelemetryBase::sHandleTimer
  - nl::Weave::DeviceLayer::Internal::NetworkTelemetryMgr
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/NetworkTelemetryManager.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/WeaveDeviceLayer.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/GeneralUtils.h
- function_names:
  - nl::Weave::DeviceLayer::PlatformManager::PlatformManager
  - ~PlatformManager()
  - nl::Weave::DeviceLayer::PlatformManager::PlatformManager
  - nl::Weave::DeviceLayer::PlatformManager::PlatformManager
  - '& operator =(const PlatformManager &)'
  - nl::Weave::DeviceLayer::PlatformManager::InitWeaveStack
  - nl::Weave::DeviceLayer::PlatformManager::AddEventHandler
  - nl::Weave::DeviceLayer::PlatformManager::RemoveEventHandler
  - nl::Weave::DeviceLayer::PlatformManager::ScheduleWork
  - nl::Weave::DeviceLayer::PlatformManager::RunEventLoop
  - nl::Weave::DeviceLayer::PlatformManager::StartEventLoopTask
  - nl::Weave::DeviceLayer::PlatformManager::LockWeaveStack
  - nl::Weave::DeviceLayer::PlatformManager::TryLockWeaveStack
  - nl::Weave::DeviceLayer::PlatformManager::UnlockWeaveStack
  - nl::Weave::DeviceLayer::PlatformManager::PostEvent
  - nl::Weave::DeviceLayer::PlatformManager::DispatchEvent
  - nl::Weave::DeviceLayer::PlatformManager::StartWeaveTimer
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/PlatformManager.h
- function_names:
  - nl::Weave::DeviceLayer::TraitManager::TraitManager
  - ~TraitManager()
  - nl::Weave::DeviceLayer::TraitManager::TraitManager
  - nl::Weave::DeviceLayer::TraitManager::TraitManager
  - '& operator =(const TraitManager &)'
  - nl::Weave::DeviceLayer::TraitManager::GetServiceSubscriptionMode
  - nl::Weave::DeviceLayer::TraitManager::IsServiceSubscriptionEstablished
  - nl::Weave::DeviceLayer::TraitMgr
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/TraitManager.h
- function_names:
  - nl::Weave::DeviceLayer::SoftwareUpdateManager::SoftwareUpdateManager
  - ~SoftwareUpdateManager()
  - nl::Weave::DeviceLayer::SoftwareUpdateManager::SoftwareUpdateManager
  - nl::Weave::DeviceLayer::SoftwareUpdateManager::SoftwareUpdateManager
  - '& operator =(const SoftwareUpdateManager &)'
  - nl::Weave::DeviceLayer::Clear
  - nl::Weave::DeviceLayer::Clear
  - nl::Weave::DeviceLayer::SoftwareUpdateManager::Init
  - nl::Weave::DeviceLayer::SoftwareUpdateManager::CheckNow
  - nl::Weave::DeviceLayer::SoftwareUpdateManager::ImageInstallComplete
  - nl::Weave::DeviceLayer::SoftwareUpdateManager::PrepareImageStorageComplete
  - nl::Weave::DeviceLayer::SoftwareUpdateManager::GetState
  - nl::Weave::DeviceLayer::SoftwareUpdateManager::Abort
  - nl::Weave::DeviceLayer::SoftwareUpdateManager::IsInProgress
  - nl::Weave::DeviceLayer::SoftwareUpdateManager::SetQueryIntervalWindow
  - nl::Weave::DeviceLayer::SoftwareUpdateManager::SetRetryPolicyCallback
  - nl::Weave::DeviceLayer::SoftwareUpdateManager::SetEventCallback
  - nl::Weave::DeviceLayer::SoftwareUpdateManager::DefaultEventHandler
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/SoftwareUpdateManager.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::GenericPlatformManagerImpl_FreeRTOS::Impl
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/FreeRTOS/GenericPlatformManagerImpl_FreeRTOS.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::GenericThreadStackManagerImpl_FreeRTOS::Impl
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/FreeRTOS/GenericThreadStackManagerImpl_FreeRTOS.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/LwIP/WarmSupport.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/WeavePlatformConfig.h
- function_names:
  - nl::Weave::DeviceLayer::ConfigurationMgr
  - nl::Weave::DeviceLayer::ConfigurationMgrImpl
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ConfigurationManagerImpl.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/WarmPlatformConfig.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/GroupKeyStoreImpl.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/WeaveDevicePlatformConfig.h
- function_names:
  - ESP32Config::Key::operator==(const Key & other) const
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ESP32Config.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningSvr
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningSvrImpl
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/NetworkProvisioningServerImpl.h
- function_names:
  - nl::Weave::DeviceLayer::ThreadStackManagerImpl::ThreadStackManagerImpl
  - nl::Weave::DeviceLayer::ThreadStackMgr
  - nl::Weave::DeviceLayer::ThreadStackMgrImpl
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ThreadStackManagerImpl.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/InetPlatformConfig.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::BLEMgr
  - nl::Weave::DeviceLayer::Internal::BLEMgrImpl
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_GetBleLayer
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_GetWoBLEServiceMode
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_IsAdvertisingEnabled
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_IsFastAdvertisingEnabled
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_IsAdvertising
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/BLEManagerImpl.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/WeaveDevicePlatformEvent.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ESP32Utils.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/SystemPlatformConfig.h
- function_names:
  - nl::Weave::DeviceLayer::PlatformMgr
  - nl::Weave::DeviceLayer::PlatformMgrImpl
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/PlatformManagerImpl.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/BlePlatformConfig.h
- function_names:
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_IsWiFiStationApplicationControlled
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_IsWiFiStationConnected
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_IsWiFiAPApplicationControlled
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_GetWiFiStationReconnectIntervalMS
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_GetWiFiAPMode
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_IsWiFiAPActive
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_GetWiFiAPIdleTimeoutMS
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_HaveIPv4InternetConnectivity
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_HaveIPv6InternetConnectivity
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_GetServiceTunnelMode
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_CanStartWiFiScan
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_HaveServiceConnectivity
  - nl::Weave::DeviceLayer::ConnectivityMgr
  - nl::Weave::DeviceLayer::ConnectivityMgrImpl
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/ConnectivityManagerImpl.h
- function_names:
  - nl::Weave::DeviceLayer::SoftwareUpdateMgr
  - nl::Weave::DeviceLayer::SoftwareUpdateMgrImpl
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/ESP32/SoftwareUpdateManagerImpl.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/ServiceDirectoryManager.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServer::NetworkProvisioningServer
  - ~NetworkProvisioningServer()
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServer::NetworkProvisioningServer
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServer::NetworkProvisioningServer
  - '& operator =(const NetworkProvisioningServer &)'
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServer::Init
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServer::GetDelegate
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServer::StartPendingScan
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServer::ScanInProgress
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServer::OnPlatformEvent
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/NetworkProvisioningServer.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread::Impl
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_GetThreadMode
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_SetThreadMode
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_IsThreadEnabled
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_IsThreadApplicationControlled
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_IsThreadAttached
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_IsThreadProvisioned
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_ClearThreadProvision
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_GetThreadDeviceType
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_SetThreadDeviceType
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_GetThreadPollingConfig
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_SetThreadPollingConfig
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoThread<ImplClass>::_HaveServiceConnectivityViaThread
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoThread.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::DeviceDescriptionServer
  - ~DeviceDescriptionServer()
  - nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::DeviceDescriptionServer
  - nl::Weave::DeviceLayer::Internal::DeviceDescriptionServer::DeviceDescriptionServer
  - '& operator =(const DeviceDescriptionServer &)'
  - nl::Weave::DeviceLayer::Internal::DeviceDescriptionSvr
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/DeviceDescriptionServer.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::DeviceControlServer::DeviceControlServer
  - ~DeviceControlServer()
  - nl::Weave::DeviceLayer::Internal::DeviceControlServer::DeviceControlServer
  - nl::Weave::DeviceLayer::Internal::DeviceControlServer::DeviceControlServer
  - '& operator =(const DeviceControlServer &)'
  - nl::Weave::DeviceLayer::Internal::DeviceControlSvr
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/DeviceControlServer.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi::Impl
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_GetWiFiStationMode
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_SetWiFiStationMode
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_IsWiFiStationEnabled
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_IsWiFiStationConnected
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_GetWiFiStationReconnectIntervalMS
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_SetWiFiStationReconnectIntervalMS
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_IsWiFiStationProvisioned
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_ClearWiFiStationProvision
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_GetWiFiAPMode
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_SetWiFiAPMode
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_IsWiFiAPActive
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_IsWiFiAPApplicationControlled
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_DemandStartWiFiAP
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_StopOnDemandWiFiAP
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_MaintainOnDemandWiFiAP
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_GetWiFiAPIdleTimeoutMS
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_SetWiFiAPIdleTimeoutMS
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_GetAndLogWifiStatsCounters
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_CanStartWiFiScan
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_OnWiFiScanDone
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_OnWiFiStationProvisionChange
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_WiFiStationModeToStr
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoWiFi<ImplClass>::_WiFiAPModeToStr
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoWiFi.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/EventLogging.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/DeviceNetworkInfo.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/ServiceTunnelAgent.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/WeaveDeviceLayerInternal.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE::Impl
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE<ImplClass>::_GetWoBLEServiceMode
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE<ImplClass>::_SetWoBLEServiceMode
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE<ImplClass>::_IsBLEAdvertisingEnabled
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE<ImplClass>::_SetBLEAdvertisingEnabled
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE<ImplClass>::_IsBLEFastAdvertisingEnabled
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE<ImplClass>::_SetBLEFastAdvertisingEnabled
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE<ImplClass>::_GetBLEDeviceName
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE<ImplClass>::_SetBLEDeviceName
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE<ImplClass>::_NumBLEConnections
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoBLE<ImplClass>::_WoBLEServiceModeToStr
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoBLE.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoTunnel::Impl
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoTunnel<ImplClass>::_GetServiceTunnelMode
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoTunnel<ImplClass>::_SetServiceTunnelMode
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoTunnel<ImplClass>::_IsServiceTunnelConnected
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoTunnel<ImplClass>::_IsServiceTunnelRestricted
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoTunnel<ImplClass>::_HaveServiceConnectivityViaTunnel
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_NoTunnel<ImplClass>::_ServiceTunnelModeToStr
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_NoTunnel.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_BLE::Impl
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_BLE<ImplClass>::_GetWoBLEServiceMode
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_BLE<ImplClass>::_SetWoBLEServiceMode
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_BLE<ImplClass>::_IsBLEAdvertisingEnabled
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_BLE<ImplClass>::_SetBLEAdvertisingEnabled
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_BLE<ImplClass>::_IsBLEFastAdvertisingEnabled
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_BLE<ImplClass>::_SetBLEFastAdvertisingEnabled
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_BLE<ImplClass>::_IsBLEAdvertising
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_BLE<ImplClass>::_GetBLEDeviceName
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_BLE<ImplClass>::_SetBLEDeviceName
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_BLE<ImplClass>::_NumBLEConnections
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_BLE.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread::Impl
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread<ImplClass>::_Init
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread<ImplClass>::_IsThreadEnabled
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread<ImplClass>::_IsThreadApplicationControlled
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread<ImplClass>::_IsThreadAttached
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread<ImplClass>::_IsThreadProvisioned
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread<ImplClass>::_ClearThreadProvision
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread<ImplClass>::_GetThreadDeviceType
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread<ImplClass>::_SetThreadDeviceType
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread<ImplClass>::_GetThreadPollingConfig
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread<ImplClass>::_SetThreadPollingConfig
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl_Thread<ImplClass>::_HaveServiceConnectivityViaThread
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl_Thread.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::FactoryProvisioningBase::Derived
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/FactoryProvisioning.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::ServiceProvisioningServer
  - ~ServiceProvisioningServer()
  - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::ServiceProvisioningServer
  - nl::Weave::DeviceLayer::Internal::ServiceProvisioningServer::ServiceProvisioningServer
  - '& operator =(const ServiceProvisioningServer &)'
  - nl::Weave::DeviceLayer::Internal::ServiceProvisioningSvr
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/ServiceProvisioningServer.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::GenericPlatformManagerImpl::Impl
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericPlatformManagerImpl.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::GenericSoftwareUpdateManagerImpl_BDX::Impl
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericSoftwareUpdateManagerImpl_BDX.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::BLEManager::BLEManager
  - ~BLEManager()
  - nl::Weave::DeviceLayer::Internal::BLEManager::BLEManager
  - nl::Weave::DeviceLayer::Internal::BLEManager::BLEManager
  - '& operator =(const BLEManager &)'
  - nl::Weave::DeviceLayer::Internal::BLEManager::Init
  - nl::Weave::DeviceLayer::Internal::BLEManager::GetWoBLEServiceMode
  - nl::Weave::DeviceLayer::Internal::BLEManager::SetWoBLEServiceMode
  - nl::Weave::DeviceLayer::Internal::BLEManager::IsAdvertisingEnabled
  - nl::Weave::DeviceLayer::Internal::BLEManager::SetAdvertisingEnabled
  - nl::Weave::DeviceLayer::Internal::BLEManager::IsFastAdvertisingEnabled
  - nl::Weave::DeviceLayer::Internal::BLEManager::SetFastAdvertisingEnabled
  - nl::Weave::DeviceLayer::Internal::BLEManager::IsAdvertising
  - nl::Weave::DeviceLayer::Internal::BLEManager::GetDeviceName
  - nl::Weave::DeviceLayer::Internal::BLEManager::SetDeviceName
  - nl::Weave::DeviceLayer::Internal::BLEManager::NumConnections
  - nl::Weave::DeviceLayer::Internal::BLEManager::OnPlatformEvent
  - nl::Weave::DeviceLayer::Internal::BLEManager::GetBleLayer
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/BLEManager.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::GenericSoftwareUpdateManagerImpl::Impl
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericSoftwareUpdateManagerImpl.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::EchoServer::EchoServer
  - ~EchoServer()
  - nl::Weave::DeviceLayer::Internal::EchoServer::EchoServer
  - nl::Weave::DeviceLayer::Internal::EchoServer::EchoServer
  - '& operator =(const EchoServer &)'
  - nl::Weave::DeviceLayer::Internal::EchoSvr
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/EchoServer.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/DeviceIdentityTraitDataSource.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::GenericConfigurationManagerImpl::Impl
  - nl::Weave::DeviceLayer::Internal::GenericConfigurationManagerImpl<ImplClass>::_GetVendorId
  - nl::Weave::DeviceLayer::Internal::GenericConfigurationManagerImpl<ImplClass>::_GetProductId
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConfigurationManagerImpl.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl::Impl
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl<ImplClass>::_IsUserSelectedModeActive
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl<ImplClass>::_SetUserSelectedMode
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl<ImplClass>::_GetUserSelectedModeTimeout
  - nl::Weave::DeviceLayer::Internal::GenericConnectivityManagerImpl<ImplClass>::_SetUserSelectedModeTimeout
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConnectivityManagerImpl.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::FabricProvisioningServer::FabricProvisioningServer
  - ~FabricProvisioningServer()
  - nl::Weave::DeviceLayer::Internal::FabricProvisioningServer::FabricProvisioningServer
  - nl::Weave::DeviceLayer::Internal::FabricProvisioningServer::FabricProvisioningServer
  - '& operator =(const FabricProvisioningServer &)'
  - nl::Weave::DeviceLayer::Internal::FabricProvisioningSvr
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/FabricProvisioningServer.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::GenericNetworkProvisioningServerImpl::Impl
  - nl::Weave::DeviceLayer::Internal::GenericNetworkProvisioningServerImpl<ImplClass>::_GetDelegate
  - nl::Weave::DeviceLayer::Internal::GenericNetworkProvisioningServerImpl<ImplClass>::GetCurrentOp
  - nl::Weave::DeviceLayer::Internal::GenericNetworkProvisioningServerImpl<ImplClass>::_ScanInProgress
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericNetworkProvisioningServerImpl.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::RunGroupKeyStoreUnitTest
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/GroupKeyStoreUnitTest.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::RunConfigUnitTest
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/ConfigUnitTest.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::RunSystemClockUnitTest
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/testing/SystemClockUnitTest.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::GenericThreadStackManagerImpl_OpenThread::Impl
  - nl::Weave::DeviceLayer::Internal::GenericThreadStackManagerImpl_OpenThread<ImplClass>::OTInstance
  - nl::Weave::DeviceLayer::Internal::GenericThreadStackManagerImpl_OpenThread<ImplClass>::_OnWoBLEAdvertisingStart
  - nl::Weave::DeviceLayer::Internal::GenericThreadStackManagerImpl_OpenThread<ImplClass>::_OnWoBLEAdvertisingStop
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/OpenThread/GenericThreadStackManagerImpl_OpenThread.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::ToOpenThreadIP6Address
  - nl::Weave::DeviceLayer::Internal::ToIPAddress
  - nl::Weave::DeviceLayer::Internal::ToIPPrefix
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/OpenThread/OpenThreadUtils.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::GenericThreadStackManagerImpl_OpenThread_LwIP::Impl
  - nl::Weave::DeviceLayer::Internal::GenericThreadStackManagerImpl_OpenThread_LwIP<ImplClass>::ThreadNetIf
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/OpenThread/GenericThreadStackManagerImpl_OpenThread_LwIP.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::EFR32ConfigKey
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/EFR32Config.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/WeavePlatformConfig.h
- function_names:
  - nl::Weave::DeviceLayer::ConfigurationMgr
  - nl::Weave::DeviceLayer::ConfigurationMgrImpl
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetPrimaryWiFiMACAddress
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/ConfigurationManagerImpl.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/WarmPlatformConfig.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/GroupKeyStoreImpl.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/WeaveDevicePlatformConfig.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/freertos_bluetooth.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningSvr
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningSvrImpl
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/NetworkProvisioningServerImpl.h
- function_names:
  - nl::Weave::DeviceLayer::ThreadStackManagerImpl::ThreadStackManagerImpl
  - nl::Weave::DeviceLayer::ThreadStackMgr
  - nl::Weave::DeviceLayer::ThreadStackMgrImpl
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/ThreadStackManagerImpl.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/InetPlatformConfig.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::BLEMgr
  - nl::Weave::DeviceLayer::Internal::BLEMgrImpl
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_GetBleLayer
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_GetWoBLEServiceMode
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_IsAdvertisingEnabled
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_IsFastAdvertisingEnabled
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/BLEManagerImpl.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/WeaveDevicePlatformEvent.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/gatt_db.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/efr32-weave-mbedtls-config.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/SystemPlatformConfig.h
- function_names:
  - nl::Weave::DeviceLayer::PlatformMgr
  - nl::Weave::DeviceLayer::PlatformMgrImpl
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/PlatformManagerImpl.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/BlePlatformConfig.h
- function_names:
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_HaveIPv4InternetConnectivity
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_HaveIPv6InternetConnectivity
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_HaveServiceConnectivity
  - nl::Weave::DeviceLayer::ConnectivityMgr
  - nl::Weave::DeviceLayer::ConnectivityMgrImpl
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/ConnectivityManagerImpl.h
- function_names:
  - nl::Weave::DeviceLayer::SoftwareUpdateMgr
  - nl::Weave::DeviceLayer::SoftwareUpdateMgrImpl
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/EFR32/SoftwareUpdateManagerImpl.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/WeavePlatformConfig.h
- function_names:
  - nl::Weave::DeviceLayer::ConfigurationMgr
  - nl::Weave::DeviceLayer::ConfigurationMgrImpl
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetPrimaryWiFiMACAddress
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/ConfigurationManagerImpl.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/WarmPlatformConfig.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/GroupKeyStoreImpl.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/WeaveDevicePlatformConfig.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningSvr
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningSvrImpl
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/NetworkProvisioningServerImpl.h
- function_names:
  - nl::Weave::DeviceLayer::ThreadStackManagerImpl::ThreadStackManagerImpl
  - nl::Weave::DeviceLayer::ThreadStackMgr
  - nl::Weave::DeviceLayer::ThreadStackMgrImpl
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/ThreadStackManagerImpl.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/InetPlatformConfig.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::NRF5ConfigKey
  - nl::Weave::DeviceLayer::Internal::NRF5Config::FDSAsyncOp
  - nl::Weave::DeviceLayer::Internal::NRF5Config::GetFileId
  - nl::Weave::DeviceLayer::Internal::NRF5Config::GetRecordKey
  - nl::Weave::DeviceLayer::Internal::NRF5Config::FDSWords
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/nRF5Config.h
- function_names:
  - nl::Weave::DeviceLayer::Internal::BLEMgr
  - nl::Weave::DeviceLayer::Internal::BLEMgrImpl
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetAdvertisingHandle
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SetAdvertisingHandle
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_GetBleLayer
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_GetWoBLEServiceMode
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_IsAdvertisingEnabled
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_IsFastAdvertisingEnabled
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_IsAdvertising
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/BLEManagerImpl.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/WeaveDevicePlatformEvent.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/SystemPlatformConfig.h
- function_names:
  - nl::Weave::DeviceLayer::PlatformMgr
  - nl::Weave::DeviceLayer::PlatformMgrImpl
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/PlatformManagerImpl.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/BlePlatformConfig.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/nRF5Utils.h
- function_names:
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_HaveIPv4InternetConnectivity
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_HaveIPv6InternetConnectivity
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_HaveServiceConnectivity
  - nl::Weave::DeviceLayer::ConnectivityMgr
  - nl::Weave::DeviceLayer::ConnectivityMgrImpl
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/ConnectivityManagerImpl.h
- function_names:
  - nl::Weave::DeviceLayer::SoftwareUpdateMgr
  - nl::Weave::DeviceLayer::SoftwareUpdateMgrImpl
  source_file: /src/openweave-core/src/adaptations/device-layer/include/Weave/DeviceLayer/nRF5/SoftwareUpdateManagerImpl.h
- function_names:
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::FailureEvent::SetPrimaryStatusCodeNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::FailureEvent::SetPrimaryStatusCodePresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::FailureEvent::IsPrimaryStatusCodePresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::FailureEvent::SetRemoteStatusCodeNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::FailureEvent::SetRemoteStatusCodePresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::FailureEvent::IsRemoteStatusCodePresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFailureEvent::SetPrimaryStatusCodeNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFailureEvent::SetPrimaryStatusCodePresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFailureEvent::IsPrimaryStatusCodePresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFailureEvent::SetRemoteStatusCodeNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFailureEvent::SetRemoteStatusCodePresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFailureEvent::IsRemoteStatusCodePresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetCurrentSwVersionNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetCurrentSwVersionPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::IsCurrentSwVersionPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetVendorIdNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetVendorIdPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::IsVendorIdPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetVendorProductIdNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetVendorProductIdPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::IsVendorProductIdPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetProductRevisionNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetProductRevisionPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::IsProductRevisionPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetLocaleNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetLocalePresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::IsLocalePresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetQueryServerAddrNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetQueryServerAddrPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::IsQueryServerAddrPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetQueryServerIdNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::SetQueryServerIdPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryBeginEvent::IsQueryServerIdPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryFinishEvent::SetImageUrlNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryFinishEvent::SetImageUrlPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryFinishEvent::IsImageUrlPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryFinishEvent::SetImageVersionNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryFinishEvent::SetImageVersionPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::QueryFinishEvent::IsImageVersionPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::SetImageUrlNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::SetImageUrlPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::IsImageUrlPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::SetImageVersionNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::SetImageVersionPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::IsImageVersionPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::SetSubImageNameNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::SetSubImageNamePresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::IsSubImageNamePresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::SetOffsetNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::SetOffsetPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::IsOffsetPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::SetDestinationNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::SetDestinationPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadStartEvent::IsDestinationPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::SetImageUrlNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::SetImageUrlPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::IsImageUrlPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::SetImageVersionNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::SetImageVersionPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::IsImageVersionPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::SetSubImageNameNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::SetSubImageNamePresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::IsSubImageNamePresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::SetDestinationNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::SetDestinationPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::DownloadFinishEvent::IsDestinationPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::SetImageVersionNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::SetImageVersionPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::IsImageVersionPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::SetSubImageNameNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::SetSubImageNamePresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::IsSubImageNamePresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::SetLocalSourceNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::SetLocalSourcePresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::IsLocalSourcePresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::SetDestinationNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::SetDestinationPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallStartEvent::IsDestinationPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallFinishEvent::SetImageVersionNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallFinishEvent::SetImageVersionPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallFinishEvent::IsImageVersionPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallFinishEvent::SetSubImageNameNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallFinishEvent::SetSubImageNamePresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::InstallFinishEvent::IsSubImageNamePresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::SetImageVersionNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::SetImageVersionPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::IsImageVersionPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::SetSubImageNameNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::SetSubImageNamePresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::IsSubImageNamePresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::SetRollbackFromNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::SetRollbackFromPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::IsRollbackFromPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::SetRollbackToNull
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::SetRollbackToPresent
  - Schema::Nest::Trait::Firmware::SoftwareUpdateTrait::ImageRollbackEvent::IsRollbackToPresent
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/firmware/SoftwareUpdateTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/network/TelemetryNetworkTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/network/TelemetryNetworkWifiTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/network/TelemetryNetworkTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/network/TelemetryNetworkWpanTrait.cpp
- function_names:
  - Schema::Nest::Trait::Network::TelemetryNetworkWpanTrait::TopoEntryEvent::SetTimeoutNull
  - Schema::Nest::Trait::Network::TelemetryNetworkWpanTrait::TopoEntryEvent::SetTimeoutPresent
  - Schema::Nest::Trait::Network::TelemetryNetworkWpanTrait::TopoEntryEvent::IsTimeoutPresent
  - Schema::Nest::Trait::Network::TelemetryNetworkWpanTrait::TopoEntryEvent::SetNetworkDataVersionNull
  - Schema::Nest::Trait::Network::TelemetryNetworkWpanTrait::TopoEntryEvent::SetNetworkDataVersionPresent
  - Schema::Nest::Trait::Network::TelemetryNetworkWpanTrait::TopoEntryEvent::IsNetworkDataVersionPresent
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/network/TelemetryNetworkWpanTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/nest/trait/network/TelemetryNetworkWifiTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/resource/service/DescriptionServiceResource.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/common/InterfaceNameStructSchema.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/common/DayOfWeekEnum.h
- function_names:
  - Schema::Weave::Common::EventId::SetResourceIdNull
  - Schema::Weave::Common::EventId::SetResourceIdPresent
  - Schema::Weave::Common::EventId::IsResourceIdPresent
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/common/EventIdStructSchema.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/common/TimeOfDayStructSchema.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/common/TraitTypeInstanceStructSchema.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/common/TimerStructSchema.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/common/TimeOfDayStructSchema.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/common/ResourceTypeEnum.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/common/EventIdStructSchema.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/common/InterfaceNameStructSchema.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/common/ProfileSpecificStatusCodeStructSchema.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/common/ProfileSpecificStatusCodeStructSchema.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/common/TraitTypeInstanceStructSchema.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/common/TimerStructSchema.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/log/LoggingCapabilitiesTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/log/LoggingSettingsTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/log/LoggingCapabilitiesTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/log/LoggingSettingsTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/log/LoggingCapabilitiesTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/log/LoggingSettingsTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/pairing/ConfigurationDoneTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/pairing/ConfigurationDoneTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/pairing/ConfigurationDoneTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/TamperTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserNFCTokenMetadataTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputSettingsTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/BoltLockCapabilitiesTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserNFCTokenAccessTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/SecurityTrait.cpp
- function_names:
  - Schema::Weave::Trait::Security::UserPincodesSettingsTrait::UserPincode::SetPincodeCredentialEnabledNull
  - Schema::Weave::Trait::Security::UserPincodesSettingsTrait::UserPincode::SetPincodeCredentialEnabledPresent
  - Schema::Weave::Trait::Security::UserPincodesSettingsTrait::UserPincode::IsPincodeCredentialEnabledPresent
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserPincodesSettingsTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserNFCTokenManagementTrait-c.h
- function_names:
  - Schema::Weave::Trait::Security::PincodeInputTrait::KeypadEntryEvent::SetPincodeCredentialEnabledNull
  - Schema::Weave::Trait::Security::PincodeInputTrait::KeypadEntryEvent::SetPincodeCredentialEnabledPresent
  - Schema::Weave::Trait::Security::PincodeInputTrait::KeypadEntryEvent::IsPincodeCredentialEnabledPresent
  - Schema::Weave::Trait::Security::PincodeInputTrait::KeypadEntryEvent::SetUserIdNull
  - Schema::Weave::Trait::Security::PincodeInputTrait::KeypadEntryEvent::SetUserIdPresent
  - Schema::Weave::Trait::Security::PincodeInputTrait::KeypadEntryEvent::IsUserIdPresent
  - Schema::Weave::Trait::Security::PincodeInputTrait::PincodeInputStateChangeEvent::SetUserIdNull
  - Schema::Weave::Trait::Security::PincodeInputTrait::PincodeInputStateChangeEvent::SetUserIdPresent
  - Schema::Weave::Trait::Security::PincodeInputTrait::PincodeInputStateChangeEvent::IsUserIdPresent
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserPincodesCapabilitiesTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserPincodesSettingsTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserNFCTokenManagementTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserPincodesSettingsTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserNFCTokensTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserPincodesCapabilitiesTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/TamperTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/BoltLockTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserNFCTokensTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/BoltLockCapabilitiesTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserNFCTokenMetadataTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserNFCTokenManagementTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputSettingsTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/TamperTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserNFCTokensTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserNFCTokenAccessTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/BoltLockSettingsTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/BoltLockSettingsTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserNFCTokenMetadataTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserNFCTokenSettingsTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/SecurityTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserPincodesCapabilitiesTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserNFCTokenSettingsTrait.h
- function_names:
  - Schema::Weave::Trait::Security::UserNFCTokenAccessTrait::UserNFCTokenAccessEvent::SetUserIdNull
  - Schema::Weave::Trait::Security::UserNFCTokenAccessTrait::UserNFCTokenAccessEvent::SetUserIdPresent
  - Schema::Weave::Trait::Security::UserNFCTokenAccessTrait::UserNFCTokenAccessEvent::IsUserIdPresent
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserNFCTokenAccessTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/PincodeInputSettingsTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/SecurityTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/BoltLockCapabilitiesTrait.h
- function_names:
  - Schema::Weave::Trait::Security::BoltLockTrait::BoltLockActorStruct::SetOriginatorNull
  - Schema::Weave::Trait::Security::BoltLockTrait::BoltLockActorStruct::SetOriginatorPresent
  - Schema::Weave::Trait::Security::BoltLockTrait::BoltLockActorStruct::IsOriginatorPresent
  - Schema::Weave::Trait::Security::BoltLockTrait::BoltLockActorStruct::SetAgentNull
  - Schema::Weave::Trait::Security::BoltLockTrait::BoltLockActorStruct::SetAgentPresent
  - Schema::Weave::Trait::Security::BoltLockTrait::BoltLockActorStruct::IsAgentPresent
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/BoltLockTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/BoltLockSettingsTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/BoltLockTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/security/UserNFCTokenSettingsTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/schedule/BasicUserSchedulesCapabilitiesTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/schedule/BasicUserSchedulesCapabilitiesTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/schedule/BasicUserSchedulesSettingsTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/schedule/BasicUserSchedulesSettingsTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/schedule/BasicUserSchedulesCapabilitiesTrait.cpp
- function_names:
  - Schema::Weave::Trait::Schedule::BasicUserSchedulesSettingsTrait::TimeboxScheduleItem::SetEndTimeNull
  - Schema::Weave::Trait::Schedule::BasicUserSchedulesSettingsTrait::TimeboxScheduleItem::SetEndTimePresent
  - Schema::Weave::Trait::Schedule::BasicUserSchedulesSettingsTrait::TimeboxScheduleItem::IsEndTimePresent
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/schedule/BasicUserSchedulesSettingsTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/locale/LocaleStateTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/locale/LocaleSettingsTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/locale/LocaleAvailabilitySettingsTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/locale/LocaleSettingsTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/locale/LocaleCapabilitiesTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/locale/LocaleTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/locale/LocaleAvailabilitySettingsTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/locale/LocaleTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/locale/LocaleSettingsTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/locale/LocaleCapabilitiesTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/locale/LocaleCapabilitiesTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/locale/LocaleStateTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/locale/LocaleTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/locale/LocaleStateTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/locale/LocaleAvailabilitySettingsTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/telemetry/tunnel/TelemetryTunnelTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/telemetry/tunnel/TelemetryTunnelTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/telemetry/tunnel/TelemetryTunnelFailoverTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/telemetry/tunnel/TelemetryTunnelTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/telemetry/tunnel/TelemetryTunnelFailoverTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/telemetry/tunnel/TelemetryTunnelFailoverTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/auth/ApplicationKeysTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/auth/ApplicationKeysTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/auth/ApplicationKeysTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/synchronization/SynchronizationTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/synchronization/SynchronizationTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/synchronization/SynchronizationTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/description/SoftwareComponentTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/description/LabelSettingsTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/description/DeviceIdentityTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/description/DeviceIdentityTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/description/LabelSettingsTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/description/DeviceIdentityTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/description/LabelSettingsTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/description/SoftwareComponentTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/description/SoftwareComponentTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/network/NetworkInterfaceCapabilityTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/network/NetworkInterfacesTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/network/NetworkInterfaceTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/network/NetworkInterfaceCapabilityTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/network/NetworkInterfaceTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/network/NetworkInterfaceCapabilityTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/network/NetworkInterfacesTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/network/NetworkInterfaceTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/network/NetworkInterfacesTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/audio/BasicVolumeCapabilitiesTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/audio/BasicVolumeTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/audio/BasicVolumeCapabilitiesTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/audio/BasicVolumeCapabilitiesTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/audio/BasicVolumeTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/audio/BasicVolumeTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/PowerSourceCapabilitiesTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceCapabilitiesTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/PowerSourceCapabilitiesTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/PowerSourceTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/PowerSourceTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/PowerSourceCapabilitiesTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceCapabilitiesTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/PowerSourcesTrait-c.h
- function_names:
  - Schema::Weave::Trait::Power::BatteryPowerSourceTrait::BatteryRemaining::SetRemainingPercentNull
  - Schema::Weave::Trait::Power::BatteryPowerSourceTrait::BatteryRemaining::SetRemainingPercentPresent
  - Schema::Weave::Trait::Power::BatteryPowerSourceTrait::BatteryRemaining::IsRemainingPercentPresent
  - Schema::Weave::Trait::Power::BatteryPowerSourceTrait::BatteryRemaining::SetRemainingTimeNull
  - Schema::Weave::Trait::Power::BatteryPowerSourceTrait::BatteryRemaining::SetRemainingTimePresent
  - Schema::Weave::Trait::Power::BatteryPowerSourceTrait::BatteryRemaining::IsRemainingTimePresent
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/PowerSourcesTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/PowerSourceTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/PowerSourcesTrait.h
- function_names:
  - Schema::Weave::Trait::Power::BatteryPowerSourceCapabilitiesTrait::BatteryDesignation::SetDesignationDescriptionNull
  - Schema::Weave::Trait::Power::BatteryPowerSourceCapabilitiesTrait::BatteryDesignation::SetDesignationDescriptionPresent
  - Schema::Weave::Trait::Power::BatteryPowerSourceCapabilitiesTrait::BatteryDesignation::IsDesignationDescriptionPresent
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/power/BatteryPowerSourceCapabilitiesTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/peerdevices/PeerDevicesTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/peerdevices/PeerDevicesTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/peerdevices/PeerDevicesTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/time/TimezoneTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/time/TimezoneTrait-c.h
- function_names:
  - Schema::Weave::Trait::Time::TimesyncTrait::TimeSyncEvent::SetServerIdNull
  - Schema::Weave::Trait::Time::TimesyncTrait::TimeSyncEvent::SetServerIdPresent
  - Schema::Weave::Trait::Time::TimesyncTrait::TimeSyncEvent::IsServerIdPresent
  - Schema::Weave::Trait::Time::TimesyncTrait::TimeSyncEvent::SetServerAddressNull
  - Schema::Weave::Trait::Time::TimesyncTrait::TimeSyncEvent::SetServerAddressPresent
  - Schema::Weave::Trait::Time::TimesyncTrait::TimeSyncEvent::IsServerAddressPresent
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/time/TimesyncTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/time/TimesyncTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/time/TimezoneTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/time/TimesyncTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessSignalTrait-c.h
- function_names:
  - Schema::Weave::Trait::Heartbeat::LivenessSignalTrait::LivenessSignalEvent::SetWdmSubscriptionIdNull
  - Schema::Weave::Trait::Heartbeat::LivenessSignalTrait::LivenessSignalEvent::SetWdmSubscriptionIdPresent
  - Schema::Weave::Trait::Heartbeat::LivenessSignalTrait::LivenessSignalEvent::IsWdmSubscriptionIdPresent
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessSignalTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessSignalTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LowPowerHeartbeatSettingsTrait-c.h
- function_names:
  - Schema::Weave::Trait::Heartbeat::LivenessTrait::LivenessChangeEvent::SetNotifyRequestUnresponsivenessNull
  - Schema::Weave::Trait::Heartbeat::LivenessTrait::LivenessChangeEvent::SetNotifyRequestUnresponsivenessPresent
  - Schema::Weave::Trait::Heartbeat::LivenessTrait::LivenessChangeEvent::IsNotifyRequestUnresponsivenessPresent
  - Schema::Weave::Trait::Heartbeat::LivenessTrait::LivenessChangeEvent::SetCommandRequestUnresponsivenessNull
  - Schema::Weave::Trait::Heartbeat::LivenessTrait::LivenessChangeEvent::SetCommandRequestUnresponsivenessPresent
  - Schema::Weave::Trait::Heartbeat::LivenessTrait::LivenessChangeEvent::IsCommandRequestUnresponsivenessPresent
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessTrait.h
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LivenessTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LowPowerHeartbeatSettingsTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/adaptations/device-layer/trait-support/weave/trait/heartbeat/LowPowerHeartbeatSettingsTrait.h
- function_names:
  - nl::Weave::DeviceLayer::ThreadStackManagerImpl::_InitThreadStack
  - nl::Weave::DeviceLayer::ThreadStackManagerImpl::InitThreadStack
  - nl::Weave::DeviceLayer::ThreadStackManagerImpl::IsInitialized
  - otTaskletsSignalPending
  - otSysEventSignalPending
  source_file: /src/openweave-core/src/adaptations/device-layer/EFR32/ThreadStackManagerImpl.cpp
- function_names:
  - nl::Weave::DeviceLayer::PlatformManagerImpl::_InitWeaveStack
  source_file: /src/openweave-core/src/adaptations/device-layer/EFR32/PlatformManagerImpl.cpp
- function_names:
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_Init
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetDeviceDescriptor
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetGroupKeyStore
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_CanFactoryReset
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_InitiateFactoryReset
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_ReadPersistedStorageValue
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_WritePersistedStorageValue
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::DoFactoryReset
  source_file: /src/openweave-core/src/adaptations/device-layer/EFR32/ConfigurationManagerImpl.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::RetrieveGroupKey
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::StoreGroupKey
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteGroupKey
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteGroupKeysOfAType
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::EnumerateGroupKeys
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::Clear
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::RetrieveLastUsedEpochKeyId
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::StoreLastUsedEpochKeyId
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::Init
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::EncodeGroupKey
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKeyId
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKey
  source_file: /src/openweave-core/src/adaptations/device-layer/EFR32/GroupKeyStoreImpl.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::_Init
  source_file: /src/openweave-core/src/adaptations/device-layer/EFR32/NetworkProvisioningServerImpl.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::GetEntropy_EFR32
  - nl::Weave::DeviceLayer::Internal::InitEntropy
  source_file: /src/openweave-core/src/adaptations/device-layer/EFR32/Entropy.cpp
- function_names:
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_Init
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_OnPlatformEvent
  source_file: /src/openweave-core/src/adaptations/device-layer/EFR32/ConnectivityManagerImpl.cpp
- function_names:
  - GATT_DATA
  source_file: /src/openweave-core/src/adaptations/device-layer/EFR32/gatt_db.c
- function_names:
  - nl::Weave::DeviceLayer::Internal::initialize_bluetooth
  - nl::Weave::DeviceLayer::Internal::initBleConfig
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_Init
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_NumConnections
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::bluetoothStackEventHandler
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetWoBLEServiceMode
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetAdvertisingEnabled
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetFastAdvertisingEnabled
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_GetDeviceName
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetDeviceName
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_OnPlatformEvent
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SubscribeCharacteristic
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::UnsubscribeCharacteristic
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::CloseConnection
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetMTU
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendIndication
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendWriteRequest
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendReadRequest
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendReadResponse
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::NotifyWeaveConnectionClosed
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::MapBLEError
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::DriveBLEState
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::ConfigureAdvertisingData
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::StartAdvertising
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::StopAdvertising
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::UpdateMtu
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleBootEvent
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleConnectEvent
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleConnectionCloseEvent
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleWriteEvent
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharCCCDWrite
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleRXCharWrite
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTxConfirmationEvent
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleSoftTimerEvent
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::RemoveConnection
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::AddConnection
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetConnectionState
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetTimerHandle
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::DriveBLEState
  source_file: /src/openweave-core/src/adaptations/device-layer/EFR32/BLEManagerImpl.cpp
- function_names:
  - BluetoothSetWakeupCallback
  - bluetooth_start
  - BluetoothLLCallback
  - BluetoothUpdate
  - BluetoothTask
  - LinklayerTask
  - rtos_gecko_handle_command
  - rtos_gecko_handle_command_noresponse
  - sli_bt_cmd_handler_rtos_delegate
  - BluetoothPend
  - BluetoothPost
  - vApplicationMallocFailedHook
  - vApplicationStackOverflowHook
  - vApplicationTickHook
  - vApplicationGetIdleTaskMemory
  - vApplicationGetTimerTaskMemory
  - vRaiseEventFlagBasedOnContext
  - vSendToQueueBasedOnContext
  source_file: /src/openweave-core/src/adaptations/device-layer/EFR32/freertos_bluetooth.c
- function_names:
  - PrintLog
  - efr32LogInit
  - efr32Log
  - GetModuleName
  - nl::Weave::DeviceLayer::OnLogOutput
  - nl::Weave::Logging::Log
  - LwIPLog
  - otPlatLog
  - debugHardfault
  - HardFault_Handler
  source_file: /src/openweave-core/src/adaptations/device-layer/EFR32/Logging.cpp
- function_names:
  - nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl::_Init
  source_file: /src/openweave-core/src/adaptations/device-layer/EFR32/SoftwareUpdateManagerImpl.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::EFR32Config::Init
  - nl::Weave::DeviceLayer::Internal::EFR32Config::ReadConfigValue
  - nl::Weave::DeviceLayer::Internal::EFR32Config::ReadConfigValue
  - nl::Weave::DeviceLayer::Internal::EFR32Config::ReadConfigValue
  - nl::Weave::DeviceLayer::Internal::EFR32Config::ReadConfigValueStr
  - nl::Weave::DeviceLayer::Internal::EFR32Config::ReadConfigValueBin
  - nl::Weave::DeviceLayer::Internal::EFR32Config::ReadConfigValueCounter
  - nl::Weave::DeviceLayer::Internal::EFR32Config::WriteConfigValue
  - nl::Weave::DeviceLayer::Internal::EFR32Config::WriteConfigValue
  - nl::Weave::DeviceLayer::Internal::EFR32Config::WriteConfigValue
  - nl::Weave::DeviceLayer::Internal::EFR32Config::WriteConfigValueStr
  - nl::Weave::DeviceLayer::Internal::EFR32Config::WriteConfigValueStr
  - nl::Weave::DeviceLayer::Internal::EFR32Config::WriteConfigValueBin
  - nl::Weave::DeviceLayer::Internal::EFR32Config::WriteConfigValueCounter
  - nl::Weave::DeviceLayer::Internal::EFR32Config::ClearConfigValue
  - nl::Weave::DeviceLayer::Internal::EFR32Config::ConfigValueExists
  - nl::Weave::DeviceLayer::Internal::EFR32Config::FactoryResetConfig
  - nl::Weave::DeviceLayer::Internal::EFR32Config::MapNvm3Error
  - nl::Weave::DeviceLayer::Internal::EFR32Config::ForEachRecord
  - nl::Weave::DeviceLayer::Internal::EFR32Config::ValidConfigKey
  - nl::Weave::DeviceLayer::Internal::EFR32Config::RunConfigUnitTest
  - nl::Weave::DeviceLayer::Internal::EFR32Config::RepackNvm3Flash
  source_file: /src/openweave-core/src/adaptations/device-layer/EFR32/EFR32Config.cpp
- function_names:
  - nl::Weave::DeviceLayer::ThreadStackManagerImpl::_InitThreadStack
  - nl::Weave::DeviceLayer::ThreadStackManagerImpl::InitThreadStack
  - nl::Weave::DeviceLayer::ThreadStackManagerImpl::IsInitialized
  - nl::Weave::DeviceLayer::ThreadStackManagerImpl::_OnWoBLEAdvertisingStart
  - nl::Weave::DeviceLayer::ThreadStackManagerImpl::_OnWoBLEAdvertisingStop
  - otTaskletsSignalPending
  - otSysEventSignalPending
  source_file: /src/openweave-core/src/adaptations/device-layer/nRF5/ThreadStackManagerImpl.cpp
- function_names:
  - nl::Weave::DeviceLayer::PlatformManagerImpl::_InitWeaveStack
  source_file: /src/openweave-core/src/adaptations/device-layer/nRF5/PlatformManagerImpl.cpp
- function_names:
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_Init
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetDeviceDescriptor
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_GetGroupKeyStore
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_CanFactoryReset
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_InitiateFactoryReset
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_ReadPersistedStorageValue
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::_WritePersistedStorageValue
  - nl::Weave::DeviceLayer::ConfigurationManagerImpl::DoFactoryReset
  source_file: /src/openweave-core/src/adaptations/device-layer/nRF5/ConfigurationManagerImpl.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::NRF5Config::Init
  - nl::Weave::DeviceLayer::Internal::NRF5Config::ReadConfigValue
  - nl::Weave::DeviceLayer::Internal::NRF5Config::ReadConfigValue
  - nl::Weave::DeviceLayer::Internal::NRF5Config::ReadConfigValue
  - nl::Weave::DeviceLayer::Internal::NRF5Config::ReadConfigValueStr
  - nl::Weave::DeviceLayer::Internal::NRF5Config::ReadConfigValueBin
  - nl::Weave::DeviceLayer::Internal::NRF5Config::WriteConfigValue
  - nl::Weave::DeviceLayer::Internal::NRF5Config::WriteConfigValue
  - nl::Weave::DeviceLayer::Internal::NRF5Config::WriteConfigValue
  - nl::Weave::DeviceLayer::Internal::NRF5Config::WriteConfigValueStr
  - nl::Weave::DeviceLayer::Internal::NRF5Config::WriteConfigValueStr
  - nl::Weave::DeviceLayer::Internal::NRF5Config::WriteConfigValueBin
  - nl::Weave::DeviceLayer::Internal::NRF5Config::ClearConfigValue
  - nl::Weave::DeviceLayer::Internal::NRF5Config::ConfigValueExists
  - nl::Weave::DeviceLayer::Internal::NRF5Config::FactoryResetConfig
  - nl::Weave::DeviceLayer::Internal::NRF5Config::MapFDSError
  - nl::Weave::DeviceLayer::Internal::NRF5Config::OpenRecord
  - nl::Weave::DeviceLayer::Internal::NRF5Config::ForEachRecord
  - nl::Weave::DeviceLayer::Internal::NRF5Config::DoAsyncFDSOp
  - nl::Weave::DeviceLayer::Internal::NRF5Config::HandleFDSEvent
  - nl::Weave::DeviceLayer::Internal::NRF5Config::RunConfigUnitTest
  source_file: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Config.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::RetrieveGroupKey
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::StoreGroupKey
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteGroupKey
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DeleteGroupKeysOfAType
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::EnumerateGroupKeys
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::Clear
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::RetrieveLastUsedEpochKeyId
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::StoreLastUsedEpochKeyId
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::Init
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::EncodeGroupKey
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKey
  - nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl::DecodeGroupKeyId
  source_file: /src/openweave-core/src/adaptations/device-layer/nRF5/GroupKeyStoreImpl.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::NetworkProvisioningServerImpl::_Init
  source_file: /src/openweave-core/src/adaptations/device-layer/nRF5/NetworkProvisioningServerImpl.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::GetEntropy_nRF5
  - nl::Weave::DeviceLayer::Internal::InitEntropy
  source_file: /src/openweave-core/src/adaptations/device-layer/nRF5/Entropy.cpp
- function_names:
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_Init
  - nl::Weave::DeviceLayer::ConnectivityManagerImpl::_OnPlatformEvent
  source_file: /src/openweave-core/src/adaptations/device-layer/nRF5/ConnectivityManagerImpl.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::RegisterVendorUUID
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_Init
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetWoBLEServiceMode
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetAdvertisingEnabled
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetFastAdvertisingEnabled
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_GetDeviceName
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_SetDeviceName
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_OnPlatformEvent
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SubscribeCharacteristic
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::UnsubscribeCharacteristic
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::CloseConnection
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::GetMTU
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendIndication
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendWriteRequest
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendReadRequest
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SendReadResponse
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::NotifyWeaveConnectionClosed
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::DriveBLEState
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::StartAdvertising
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::StopAdvertising
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::EncodeAdvertisingData
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::_NumConnections
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::DriveBLEState
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleSoftDeviceBLEEvent
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SoftDeviceBLEEventCallback
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleGAPConnect
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleGAPDisconnect
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleRXCharWrite
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXCharCCCDWrite
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::HandleTXComplete
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::SetSubscribed
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::UnsetSubscribed
  - nl::Weave::DeviceLayer::Internal::BLEManagerImpl::IsSubscribed
  source_file: /src/openweave-core/src/adaptations/device-layer/nRF5/BLEManagerImpl.cpp
- function_names:
  - GetModuleName
  - nl::Weave::DeviceLayer::OnLogOutput
  - nl::Weave::Logging::Log
  - LwIPLog
  - otPlatLog
  source_file: /src/openweave-core/src/adaptations/device-layer/nRF5/Logging.cpp
- function_names:
  - nl::Weave::DeviceLayer::Internal::RegisterNRFErrorFormatter
  - nl::Weave::DeviceLayer::Internal::FormatNRFError
  source_file: /src/openweave-core/src/adaptations/device-layer/nRF5/nRF5Utils.cpp
- function_names:
  - nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl::_Init
  source_file: /src/openweave-core/src/adaptations/device-layer/nRF5/SoftwareUpdateManagerImpl.cpp
- function_names:
  - nl::Weave::WeaveSecurityManager
  source_file: /src/openweave-core/src/lib/core/WeaveSecurityMgr.h
- function_names: []
  source_file: /src/openweave-core/src/lib/core/WeaveConfig.h
- function_names: []
  source_file: /src/openweave-core/src/lib/core/WeaveGlobals.h
- function_names:
  - nl::Weave::FormatWeaveError
  source_file: /src/openweave-core/src/lib/core/WeaveError.cpp
- function_names:
  - nl::Weave::TLV::ProfileTag
  - nl::Weave::TLV::ProfileTag
  - nl::Weave::TLV::ContextTag
  - nl::Weave::TLV::CommonTag
  - nl::Weave::TLV::ProfileIdFromTag
  - nl::Weave::TLV::ProfileNumFromTag
  - nl::Weave::TLV::TagNumFromTag
  - nl::Weave::TLV::VendorIdFromTag
  - nl::Weave::TLV::IsProfileTag
  - nl::Weave::TLV::IsContextTag
  - nl::Weave::TLV::IsSpecialTag
  source_file: /src/openweave-core/src/lib/core/WeaveTLVTags.h
- function_names:
  - nl::Weave::TLV::WeaveCircularTLVBuffer::WeaveCircularTLVBuffer
  - nl::Weave::TLV::WeaveCircularTLVBuffer::WeaveCircularTLVBuffer
  - nl::Weave::TLV::WeaveCircularTLVBuffer::EvictHead
  - nl::Weave::TLV::WeaveCircularTLVBuffer::GetNewBuffer
  - nl::Weave::TLV::WeaveCircularTLVBuffer::FinalizeBuffer
  - nl::Weave::TLV::WeaveCircularTLVBuffer::GetNextBuffer
  - nl::Weave::TLV::WeaveCircularTLVBuffer::GetNewBufferFunct
  - nl::Weave::TLV::WeaveCircularTLVBuffer::FinalizeBufferFunct
  - nl::Weave::TLV::WeaveCircularTLVBuffer::GetNextBufferFunct
  - nl::Weave::TLV::CircularTLVWriter::Init
  - nl::Weave::TLV::CircularTLVReader::Init
  source_file: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.cpp
- function_names:
  - nl::Weave::TLV::TLVWriter::Init
  - nl::Weave::TLV::TLVWriter::InitMalloced
  - nl::Weave::TLV::TLVWriter::Init
  - nl::Weave::TLV::TLVWriter::Init
  - nl::Weave::TLV::TLVWriter::GetLengthWritten
  - nl::Weave::TLV::TLVWriter::Finalize
  - nl::Weave::TLV::TLVWriter::PutBoolean
  - nl::Weave::TLV::TLVWriter::Put
  - nl::Weave::TLV::TLVWriter::Put
  - nl::Weave::TLV::TLVWriter::Put
  - nl::Weave::TLV::TLVWriter::Put
  - nl::Weave::TLV::TLVWriter::Put
  - nl::Weave::TLV::TLVWriter::Put
  - nl::Weave::TLV::TLVWriter::Put
  - nl::Weave::TLV::TLVWriter::Put
  - nl::Weave::TLV::TLVWriter::Put
  - nl::Weave::TLV::TLVWriter::Put
  - nl::Weave::TLV::TLVWriter::Put
  - nl::Weave::TLV::TLVWriter::Put
  - nl::Weave::TLV::TLVWriter::Put
  - nl::Weave::TLV::TLVWriter::Put
  - nl::Weave::TLV::TLVWriter::Put
  - nl::Weave::TLV::TLVWriter::Put
  - nl::Weave::TLV::TLVWriter::Put
  - nl::Weave::TLV::TLVWriter::Put
  - nl::Weave::TLV::TLVWriter::PutBytes
  - nl::Weave::TLV::TLVWriter::StartPutBytes
  - nl::Weave::TLV::TLVWriter::ContinuePutBytes
  - nl::Weave::TLV::TLVWriter::PutString
  - nl::Weave::TLV::TLVWriter::PutString
  - nl::Weave::TLV::TLVWriter::PutStringF
  - nl::Weave::TLV::TLVWriter::WeaveTLVWriterPutcharCB
  - nl::Weave::TLV::TLVWriter::VPutStringF
  - nl::Weave::TLV::TLVWriter::PutNull
  - nl::Weave::TLV::TLVWriter::CopyElement
  - nl::Weave::TLV::TLVWriter::CopyElement
  - nl::Weave::TLV::TLVWriter::OpenContainer
  - nl::Weave::TLV::TLVWriter::CloseContainer
  - nl::Weave::TLV::TLVWriter::StartContainer
  - nl::Weave::TLV::TLVWriter::EndContainer
  - nl::Weave::TLV::TLVWriter::PutPreEncodedContainer
  - nl::Weave::TLV::TLVWriter::CopyContainer
  - nl::Weave::TLV::TLVWriter::CopyContainer
  - nl::Weave::TLV::TLVWriter::CopyContainer
  - nl::Weave::TLV::TLVWriter::GetContainerType
  - nl::Weave::TLV::TLVWriter::WriteElementHead
  - nl::Weave::TLV::TLVWriter::WriteElementWithData
  - nl::Weave::TLV::TLVWriter::WriteData
  - nl::Weave::TLV::TLVWriter::GetNewPacketBuffer
  - nl::Weave::TLV::TLVWriter::GetNewBuffer_Malloced
  - nl::Weave::TLV::TLVWriter::FinalizePacketBuffer
  source_file: /src/openweave-core/src/lib/core/WeaveTLVWriter.cpp
- function_names:
  - nl::Weave::TLV::TLVUpdater::Init
  - nl::Weave::TLV::TLVUpdater::Init
  - nl::Weave::TLV::TLVUpdater::SetImplicitProfileId
  - nl::Weave::TLV::TLVUpdater::Next
  - nl::Weave::TLV::TLVUpdater::Move
  - nl::Weave::TLV::TLVUpdater::MoveUntilEnd
  - nl::Weave::TLV::TLVUpdater::EnterContainer
  - nl::Weave::TLV::TLVUpdater::ExitContainer
  - nl::Weave::TLV::TLVUpdater::AdjustInternalWriterFreeSpace
  source_file: /src/openweave-core/src/lib/core/WeaveTLVUpdater.cpp
- function_names:
  - nl::Weave::Platform::Security::MemoryInit
  - nl::Weave::Platform::Security::MemoryShutdown
  - nl::Weave::Platform::Security::MemoryAlloc
  - nl::Weave::Platform::Security::MemoryAlloc
  - nl::Weave::Platform::Security::MemoryFree
  source_file: /src/openweave-core/src/lib/core/WeaveSecurityMgr-Malloc.cpp
- function_names:
  - nl::Weave::WeaveConnection::AddRef
  - nl::Weave::WeaveConnection::Release
  - nl::Weave::WeaveConnection::StartConnectToAddressLiteral
  - nl::Weave::WeaveConnection::Connect
  - nl::Weave::WeaveConnection::Connect
  - nl::Weave::WeaveConnection::Connect
  - nl::Weave::WeaveConnection::Connect
  - nl::Weave::WeaveConnection::Connect
  - nl::Weave::WeaveConnection::Connect
  - nl::Weave::WeaveConnection::Connect
  - nl::Weave::WeaveConnection::Connect
  - nl::Weave::WeaveConnection::SetConnectTimeout
  - nl::Weave::WeaveConnection::GetPeerAddressInfo
  - nl::Weave::WeaveConnection::GetPeerDescription
  - nl::Weave::WeaveConnection::SendTunneledMessage
  - nl::Weave::WeaveConnection::SendMessage
  - nl::Weave::WeaveConnection::Shutdown
  - nl::Weave::WeaveConnection::Close
  - nl::Weave::WeaveConnection::Close
  - nl::Weave::WeaveConnection::Abort
  - nl::Weave::WeaveConnection::EnableReceive
  - nl::Weave::WeaveConnection::DisableReceive
  - nl::Weave::WeaveConnection::EnableKeepAlive
  - nl::Weave::WeaveConnection::DisableKeepAlive
  - nl::Weave::WeaveConnection::SetUserTimeout
  - nl::Weave::WeaveConnection::ResetUserTimeout
  - nl::Weave::WeaveConnection::SetIdleTimeout
  - nl::Weave::WeaveConnection::DoClose
  - nl::Weave::WeaveConnection::HandleResolveComplete
  - nl::Weave::WeaveConnection::TryNextPeerAddress
  - nl::Weave::WeaveConnection::StartSession
  - nl::Weave::WeaveConnection::AppCallbackAfterConnectionRepair
  - nl::Weave::WeaveConnection::TryConnectionRepair
  - nl::Weave::WeaveConnection::StartConnect
  - nl::Weave::WeaveConnection::HandleConnectComplete
  - nl::Weave::WeaveConnection::HandleDataReceived
  - nl::Weave::WeaveConnection::HandleTcpConnectionClosed
  - nl::Weave::WeaveConnection::HandleSecureSessionEstablished
  - nl::Weave::WeaveConnection::HandleSecureSessionError
  - nl::Weave::WeaveConnection::Init
  - nl::Weave::WeaveConnection::DefaultConnectionClosedHandler
  - nl::Weave::WeaveConnection::MakeConnectedTcp
  - nl::Weave::WeaveConnection::ConnectBle
  - nl::Weave::WeaveConnection::HandleBleConnectComplete
  - nl::Weave::WeaveConnection::HandleBleMessageReceived
  - nl::Weave::WeaveConnection::HandleBleConnectionClosed
  - nl::Weave::WeaveConnection::MakeConnectedBle
  - nl::Weave::WeaveConnection::DisconnectOnError
  source_file: /src/openweave-core/src/lib/core/WeaveConnection.cpp
- function_names:
  - nl::Weave::TLV::Debug::DumpHandler
  - nl::Weave::TLV::Debug::DecodeTagControl
  - nl::Weave::TLV::Debug::DecodeType
  - nl::Weave::TLV::Debug::DumpIterator
  - nl::Weave::TLV::Debug::DumpHandler
  - nl::Weave::TLV::Debug::Dump
  source_file: /src/openweave-core/src/lib/core/WeaveTLVDebug.cpp
- function_names:
  - nl::Weave::ExchangeContext::IsInitiator
  - nl::Weave::ExchangeContext::IsConnectionClosed
  - nl::Weave::ExchangeContext::IsResponseExpected
  - nl::Weave::ExchangeContext::SetInitiator
  - nl::Weave::ExchangeContext::SetConnectionClosed
  - nl::Weave::ExchangeContext::IsAckPending
  - nl::Weave::ExchangeContext::HasPeerRequestedAck
  - nl::Weave::ExchangeContext::HasRcvdMsgFromPeer
  - nl::Weave::ExchangeContext::SetMsgRcvdFromPeer
  - nl::Weave::ExchangeContext::SetAckPending
  - nl::Weave::ExchangeContext::SetPeerRequestedAck
  - nl::Weave::ExchangeContext::SetDropAck
  - nl::Weave::ExchangeContext::ShouldDropAck
  - nl::Weave::IsWRMPControlMessage
  - nl::Weave::ExchangeContext::SetResponseExpected
  - nl::Weave::ExchangeContext::AutoRequestAck
  - nl::Weave::ExchangeContext::SetAutoRequestAck
  - nl::Weave::ExchangeContext::GetAutoReleaseKey
  - nl::Weave::ExchangeContext::SetAutoReleaseKey
  - nl::Weave::ExchangeContext::ShouldAutoReleaseConnection
  - nl::Weave::ExchangeContext::SetShouldAutoReleaseConnection
  - nl::Weave::ExchangeContext::SetCaptureSentMessage
  - nl::Weave::ExchangeContext::ShouldCaptureSentMessage
  - nl::Weave::ExchangeContext::UseEphemeralUDPPort
  - nl::Weave::ExchangeContext::SetUseEphemeralUDPPort
  - nl::Weave::ExchangeContext::SendMessage
  - nl::Weave::ExchangeContext::SendMessage
  - nl::Weave::ExchangeContext::SendCommonNullMessage
  - nl::Weave::ExchangeContext::EncodeExchHeader
  - nl::Weave::ExchangeContext::CancelRetrans
  - nl::Weave::ExchangeContext::AddRef
  - nl::Weave::ExchangeContext::DoClose
  - nl::Weave::ExchangeContext::Close
  - nl::Weave::ExchangeContext::Abort
  - nl::Weave::ExchangeContext::Release
  - nl::Weave::ExchangeContext::ResendMessage
  - nl::Weave::ExchangeContext::StartTimerT
  - nl::Weave::ExchangeContext::TimerT
  - nl::Weave::ExchangeContext::TimerTau
  - nl::Weave::ExchangeContext::MatchExchange
  - nl::Weave::ExchangeContext::HandleTrickleMessage
  - nl::Weave::ExchangeContext::SetupTrickleRetransmit
  - nl::Weave::ExchangeContext::TeardownTrickleRetransmit
  - nl::Weave::ExchangeContext::CancelRetransmissionTimer
  - nl::Weave::ExchangeContext::StartResponseTimer
  - nl::Weave::ExchangeContext::CancelResponseTimer
  - nl::Weave::ExchangeContext::HandleResponseTimeout
  - nl::Weave::ExchangeContext::WRMPCheckAndRemRetransTable
  - nl::Weave::ExchangeContext::WRMPFlushAcks
  - nl::Weave::ExchangeContext::GetCurrentRetransmitTimeout
  - nl::Weave::ExchangeContext::WRMPSendThrottleFlow
  - nl::Weave::ExchangeContext::WRMPSendDelayedDelivery
  - nl::Weave::ExchangeContext::WRMPHandleRcvdAck
  - nl::Weave::ExchangeContext::WRMPHandleNeedsAck
  - nl::Weave::ExchangeContext::HandleThrottleFlow
  - nl::Weave::ExchangeContext::HandleMessage
  - nl::Weave::ExchangeContext::HandleMessage
  - nl::Weave::ExchangeContext::HandleConnectionClosed
  - nl::Weave::ExchangeContext::GetPeerDescription
  source_file: /src/openweave-core/src/lib/core/ExchangeContext.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/core/WeaveGlobals.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/core/WeaveTimeConfig.h
- function_names:
  - nl::Weave::TLV::TLVReader::Init
  - nl::Weave::TLV::TLVReader::Init
  - nl::Weave::TLV::TLVReader::Init
  - nl::Weave::TLV::TLVReader::Init
  - nl::Weave::TLV::TLVReader::GetType
  - nl::Weave::TLV::TLVReader::GetControlByte
  - nl::Weave::TLV::TLVReader::GetTag
  - nl::Weave::TLV::TLVReader::GetLength
  - nl::Weave::TLV::TLVReader::Get
  - nl::Weave::TLV::TLVReader::Get
  - nl::Weave::TLV::TLVReader::Get
  - nl::Weave::TLV::TLVReader::Get
  - nl::Weave::TLV::TLVReader::Get
  - nl::Weave::TLV::TLVReader::Get
  - nl::Weave::TLV::TLVReader::Get
  - nl::Weave::TLV::TLVReader::Get
  - nl::Weave::TLV::TLVReader::Get
  - nl::Weave::TLV::BitCastToFloat
  - nl::Weave::TLV::TLVReader::Get
  - nl::Weave::TLV::TLVReader::Get
  - nl::Weave::TLV::TLVReader::GetBytes
  - nl::Weave::TLV::TLVReader::GetString
  - nl::Weave::TLV::TLVReader::DupBytes
  - nl::Weave::TLV::TLVReader::DupString
  - nl::Weave::TLV::TLVReader::GetDataPtr
  - nl::Weave::TLV::TLVReader::OpenContainer
  - nl::Weave::TLV::TLVReader::CloseContainer
  - nl::Weave::TLV::TLVReader::EnterContainer
  - nl::Weave::TLV::TLVReader::ExitContainer
  - nl::Weave::TLV::TLVReader::VerifyEndOfContainer
  - nl::Weave::TLV::TLVReader::GetContainerType
  - nl::Weave::TLV::TLVReader::Next
  - nl::Weave::TLV::TLVReader::Next
  - nl::Weave::TLV::TLVReader::Skip
  - nl::Weave::TLV::TLVReader::ClearElementState
  - nl::Weave::TLV::TLVReader::SkipData
  - nl::Weave::TLV::TLVReader::SkipToEndOfContainer
  - nl::Weave::TLV::TLVReader::ReadElement
  - nl::Weave::TLV::TLVReader::VerifyElement
  - nl::Weave::TLV::TLVReader::ReadTag
  - nl::Weave::TLV::TLVReader::ReadData
  - nl::Weave::TLV::TLVReader::EnsureData
  - nl::Weave::TLV::TLVReader::GetElementHeadLength
  - nl::Weave::TLV::TLVReader::ElementType
  - nl::Weave::TLV::TLVReader::GetNextPacketBuffer
  source_file: /src/openweave-core/src/lib/core/WeaveTLVReader.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/core/WeaveCore.h
- function_names:
  - nl::Weave::Clear
  - nl::Weave::Clear
  - nl::Weave::Binding::GetState
  - nl::Weave::Binding::IsPreparing
  - nl::Weave::Binding::IsReady
  - nl::Weave::Binding::CanBePrepared
  - nl::Weave::Binding::GetPeerNodeId
  - nl::Weave::Binding::GetPeerIPAddress
  - nl::Weave::Binding::GetKeyId
  - nl::Weave::Binding::GetEncryptionType
  - nl::Weave::Binding::GetDefaultResponseTimeout
  - nl::Weave::Binding::SetDefaultResponseTimeout
  - '& Binding::GetDefaultWRMPConfig(void) const'
  - nl::Weave::Binding::SetDefaultWRMPConfig
  - nl::Weave::Binding::GetEventCallback
  - nl::Weave::Binding::SetEventCallback
  - nl::Weave::Binding::GetProtocolLayerCallback
  - nl::Weave::Binding::SetProtocolLayerCallback
  - nl::Weave::Binding::GetConnection
  - nl::Weave::Binding::GetFlag
  - nl::Weave::Binding::SetFlag
  - nl::Weave::Binding::ClearFlag
  - nl::Weave::Binding::GetExchangeManager
  - nl::Weave::Binding::IsConnectionTransport
  - nl::Weave::Binding::IsUDPTransport
  - nl::Weave::Binding::IsWRMTransport
  - nl::Weave::Binding::IsUnreliableUDPTransport
  - nl::Weave::Binding::BeginConfiguration
  - Binding::Configuration::PrepareBinding(void)
  - Binding::Configuration::GetError(void) const
  source_file: /src/openweave-core/src/lib/core/WeaveBinding.h
- function_names:
  - nl::Weave::WeaveKeyId::GetType
  - nl::Weave::WeaveKeyId::IsGeneralKey
  - nl::Weave::WeaveKeyId::IsSessionKey
  - nl::Weave::WeaveKeyId::IsAppStaticKey
  - nl::Weave::WeaveKeyId::IsAppRotatingKey
  - nl::Weave::WeaveKeyId::IsAppRootKey
  - nl::Weave::WeaveKeyId::IsAppEpochKey
  - nl::Weave::WeaveKeyId::IsAppGroupMasterKey
  - nl::Weave::WeaveKeyId::MakeSessionKeyId
  - nl::Weave::WeaveKeyId::MakeGeneralKeyId
  - nl::Weave::WeaveKeyId::GetRootKeyId
  - nl::Weave::WeaveKeyId::GetEpochKeyId
  - nl::Weave::WeaveKeyId::GetAppGroupMasterKeyId
  - nl::Weave::WeaveKeyId::GetRootKeyNumber
  - nl::Weave::WeaveKeyId::GetEpochKeyNumber
  - nl::Weave::WeaveKeyId::GetAppGroupLocalNumber
  - nl::Weave::WeaveKeyId::MakeRootKeyId
  - nl::Weave::WeaveKeyId::MakeEpochKeyId
  - nl::Weave::WeaveKeyId::MakeAppGroupMasterKeyId
  - nl::Weave::WeaveKeyId::ConvertToCurrentAppKeyId
  - nl::Weave::WeaveKeyId::IncorporatesEpochKey
  source_file: /src/openweave-core/src/lib/core/WeaveKeyIds.h
- function_names:
  - nl::Weave::Clear
  - nl::Weave::WeaveConnection::LogId
  - nl::Weave::WeaveConnection::GetTCPEndPoint
  - nl::Weave::WeaveConnection::IsIncoming
  - nl::Weave::WeaveConnection::SetIncoming
  - nl::Weave::WeaveConnection::StateAllowsSend
  - nl::Weave::WeaveConnection::StateAllowsReceive
  - nl::Weave::WeaveConnectionTunnel::LogId
  - nl::Weave::WeaveConnectionTunnel::IsInUse
  - nl::Weave::WeaveMessageLayer
  - nl::Weave::WeaveMessageLayer::IPv4ListenEnabled
  - nl::Weave::WeaveMessageLayer::IPv6ListenEnabled
  - nl::Weave::WeaveMessageLayer::TCPListenEnabled
  - nl::Weave::WeaveMessageLayer::SetTCPListenEnabled
  - nl::Weave::WeaveMessageLayer::UDPListenEnabled
  - nl::Weave::WeaveMessageLayer::SetUDPListenEnabled
  - nl::Weave::WeaveMessageLayer::EphemeralUDPPortEnabled
  - nl::Weave::WeaveMessageLayer::SetEphemeralUDPPortEnabled
  - nl::Weave::WeaveMessageLayer::UnsecuredListenEnabled
  - nl::Weave::WeaveMessageLayer::IsBoundToLocalIPv4Address
  - nl::Weave::WeaveMessageLayer::IsBoundToLocalIPv6Address
  - nl::Weave::WeaveFabricIdToIPv6GlobalId
  - nl::Weave::IPv6InterfaceIdToWeaveNodeId
  - nl::Weave::WeaveNodeIdToIPv6InterfaceId
  - nl::Weave::WeaveNodeAddrToStr
  - nl::Weave::WeaveMessageSourceToStr
  source_file: /src/openweave-core/src/lib/core/WeaveMessageLayer.h
- function_names:
  - nl::Weave::ExchangeContext
  - nl::Weave::WeaveExchangeManager
  - nl::Weave::ExchangeContext::UseEphemeralUDPPort
  source_file: /src/openweave-core/src/lib/core/WeaveExchangeMgr.h
- function_names:
  - Weave::WeaveMessageLayer::WeaveMessageLayer
  - Weave::WeaveMessageLayer::Init
  - Weave::WeaveMessageLayer::Shutdown
  - Weave::WeaveMessageLayer::SendUDPTunneledMessage
  - Weave::WeaveMessageLayer::EncodeMessage
  - Weave::WeaveMessageLayer::SendMessage
  - Weave::WeaveMessageLayer::SendMessage
  - Weave::WeaveMessageLayer::SendMessage
  - Weave::WeaveMessageLayer::IsIgnoredMulticastSendError
  - Weave::WeaveMessageLayer::FilterUDPSendError
  - Weave::WeaveMessageLayer::IsSendErrorNonCritical
  - Weave::WeaveMessageLayer::CheckForceRefreshUDPEndPointsNeeded
  - Weave::WeaveMessageLayer::SendMessage
  - WeaveMessageLayer::SelectOutboundUDPEndPoint
  - WeaveMessageLayer::ResendMessage
  - WeaveMessageLayer::ResendMessage
  - WeaveMessageLayer::ResendMessage
  - WeaveMessageLayer::ResendMessage
  - WeaveMessageLayer::GetConnectionPoolStats
  - WeaveMessageLayer::NewConnection
  - WeaveMessageLayer::GetIncomingTCPConCount
  - WeaveMessageLayer::NewConnectionTunnel
  - WeaveMessageLayer::CreateTunnel
  - WeaveMessageLayer::SetUnsecuredConnectionListener
  - WeaveMessageLayer::ClearUnsecuredConnectionListener
  - WeaveMessageLayer::SelectDestNodeIdAndAddress
  - EncodeHeaderField
  - DecodeHeaderField
  - WeaveMessageLayer::DecodeHeader
  - WeaveMessageLayer::ReEncodeMessage
  - WeaveMessageLayer::EncodeMessage
  - WeaveMessageLayer::DecodeMessage
  - WeaveMessageLayer::EncodeMessageWithLength
  - WeaveMessageLayer::DecodeMessageWithLength
  - WeaveMessageLayer::HandleUDPMessage
  - WeaveMessageLayer::HandleUDPReceiveError
  - WeaveMessageLayer::HandleIncomingBleConnection
  - WeaveMessageLayer::HandleIncomingTcpConnection
  - WeaveMessageLayer::HandleAcceptError
  - WeaveMessageLayer::RefreshEndpoints
  - WeaveMessageLayer::RefreshEndpoint
  - WeaveMessageLayer::RefreshEndpoint
  - WeaveMessageLayer::Encrypt_AES128CTRSHA1
  - WeaveMessageLayer::ComputeIntegrityCheck_AES128CTRSHA1
  - WeaveMessageLayer::CloseEndpoints
  - WeaveMessageLayer::CloseListeningEndpoints
  - WeaveMessageLayer::EnableUnsecuredListen
  - WeaveMessageLayer::DisableUnsecuredListen
  - WeaveMessageLayer::SetSignalMessageLayerActivityChanged
  - WeaveMessageLayer::SetMessageLayerPktCaptureHandler
  - WeaveMessageLayer::IsMessageLayerActive
  - WeaveMessageLayer::SignalMessageLayerActivityChanged
  - WeaveMessageLayer::GetMaxWeavePayloadSize
  source_file: /src/openweave-core/src/lib/core/WeaveMessageLayer.cpp
- function_names:
  - '* operator new     (size_t, void * p) throw()'
  - '* operator new[]   (size_t, void * p) throw()'
  - WeaveSessionKey::Init
  - WeaveSessionKey::Clear
  - WeaveSessionKey::ComputeNextResumptionMsgIds
  - WeaveFabricState::WeaveFabricState
  - WeaveFabricState::Init
  - WeaveFabricState::Init
  - WeaveFabricState::Shutdown
  - WeaveFabricState::AllocSessionKey
  - WeaveFabricState::SetSessionKey
  - WeaveFabricState::SetSessionKey
  - WeaveFabricState::RemoveSessionKey
  - WeaveFabricState::RemoveSessionKey
  - WeaveFabricState::GetSessionKey
  - WeaveFabricState::FindSharedSession
  - WeaveFabricState::IsSharedSession
  - WeaveFabricState::FindSharedSessionEndNode
  - WeaveFabricState::AddSharedSessionEndNode
  - WeaveFabricState::AddSharedSessionEndNode
  - WeaveFabricState::GetSharedSessionEndNodeIds
  - WeaveFabricState::RemoveSharedSessionEndNodes
  - WeaveFabricState::SuspendSession
  - WeaveFabricState::RestoreSession
  source_file: /src/openweave-core/src/lib/core/WeaveFabricState.cpp
- function_names:
  - nl::Weave::Encoding::Swap16
  - nl::Weave::Encoding::Swap32
  - nl::Weave::Encoding::Swap64
  - nl::Weave::Encoding::Get8
  - nl::Weave::Encoding::Put8
  - nl::Weave::Encoding::Read8
  - nl::Weave::Encoding::Read8
  - nl::Weave::Encoding::Write8
  - nl::Weave::Encoding::LittleEndian::HostSwap16
  - nl::Weave::Encoding::LittleEndian::HostSwap32
  - nl::Weave::Encoding::LittleEndian::HostSwap64
  - nl::Weave::Encoding::LittleEndian::Get16
  - nl::Weave::Encoding::LittleEndian::Get32
  - nl::Weave::Encoding::LittleEndian::Get64
  - nl::Weave::Encoding::LittleEndian::Put16
  - nl::Weave::Encoding::LittleEndian::Put32
  - nl::Weave::Encoding::LittleEndian::Put64
  - nl::Weave::Encoding::LittleEndian::Read16
  - nl::Weave::Encoding::LittleEndian::Read32
  - nl::Weave::Encoding::LittleEndian::Read64
  - nl::Weave::Encoding::LittleEndian::Read16
  - nl::Weave::Encoding::LittleEndian::Read32
  - nl::Weave::Encoding::LittleEndian::Read64
  - nl::Weave::Encoding::LittleEndian::Write16
  - nl::Weave::Encoding::LittleEndian::Write32
  - nl::Weave::Encoding::LittleEndian::Write64
  - nl::Weave::Encoding::BigEndian::HostSwap16
  - nl::Weave::Encoding::BigEndian::HostSwap32
  - nl::Weave::Encoding::BigEndian::HostSwap64
  - nl::Weave::Encoding::BigEndian::Get16
  - nl::Weave::Encoding::BigEndian::Get32
  - nl::Weave::Encoding::BigEndian::Get64
  - nl::Weave::Encoding::BigEndian::Put16
  - nl::Weave::Encoding::BigEndian::Put32
  - nl::Weave::Encoding::BigEndian::Put64
  - nl::Weave::Encoding::BigEndian::Read16
  - nl::Weave::Encoding::BigEndian::Read32
  - nl::Weave::Encoding::BigEndian::Read64
  - nl::Weave::Encoding::BigEndian::Read16
  - nl::Weave::Encoding::BigEndian::Read32
  - nl::Weave::Encoding::BigEndian::Read64
  - nl::Weave::Encoding::BigEndian::Write16
  - nl::Weave::Encoding::BigEndian::Write32
  - nl::Weave::Encoding::BigEndian::Write64
  source_file: /src/openweave-core/src/lib/core/WeaveEncoding.h
- function_names: []
  source_file: /src/openweave-core/src/lib/core/WeaveEventLoggingConfig.h
- function_names:
  - nl::Weave::TLV::TLVReader
  - nl::Weave::TLV::TLVReader::GetNextInetBuffer
  - nl::Weave::TLV::TLVWriter
  - nl::Weave::TLV::TLVWriter::GetNewInetBuffer
  - nl::Weave::TLV::TLVWriter::FinalizeInetBuffer
  - nl::Weave::TLV::TLVUpdater
  source_file: /src/openweave-core/src/lib/core/WeaveTLV.h
- function_names:
  - nl::Weave::TLV::IsValidTLVType
  - nl::Weave::TLV::TLVTypeHasValue
  - nl::Weave::TLV::TLVTypeHasLength
  - nl::Weave::TLV::TLVTypeIsContainer
  - nl::Weave::TLV::TLVTypeIsString
  - nl::Weave::TLV::GetTLVFieldSize
  - nl::Weave::TLV::TLVFieldSizeToBytes
  source_file: /src/openweave-core/src/lib/core/WeaveTLVTypes.h
- function_names:
  - nl::Weave::WeaveKeyId::IsAppGroupKey
  - nl::Weave::WeaveKeyId::UsesCurrentEpochKey
  - nl::Weave::WeaveKeyId::IncorporatesRootKey
  - nl::Weave::WeaveKeyId::IncorporatesAppGroupMasterKey
  - nl::Weave::WeaveKeyId::MakeAppKeyId
  - nl::Weave::WeaveKeyId::MakeAppIntermediateKeyId
  - nl::Weave::WeaveKeyId::MakeAppRotatingKeyId
  - nl::Weave::WeaveKeyId::MakeAppStaticKeyId
  - nl::Weave::WeaveKeyId::ConvertToStaticAppKeyId
  - nl::Weave::WeaveKeyId::UpdateEpochKeyId
  - nl::Weave::WeaveKeyId::IsValidKeyId
  - nl::Weave::WeaveKeyId::IsMessageEncryptionKeyId
  - nl::Weave::WeaveKeyId::IsSameKeyOrGroup
  - nl::Weave::WeaveKeyId::DescribeKey
  source_file: /src/openweave-core/src/lib/core/WeaveKeyIds.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/core/WeaveDMConfig.h
- function_names:
  - nl::Weave::WeaveServerBase::WeaveServerBase
  - nl::Weave::WeaveServerDelegateBase::WeaveServerDelegateBase
  source_file: /src/openweave-core/src/lib/core/WeaveServerBase.h
- function_names:
  - nl::Weave::Platform::Security::DecodeBlockSetParams
  - nl::Weave::Platform::Security::MemoryInit
  - nl::Weave::Platform::Security::MemoryShutdown
  - nl::Weave::Platform::Security::MemoryAlloc
  - nl::Weave::Platform::Security::MemoryAlloc
  - nl::Weave::Platform::Security::MemoryFree
  source_file: /src/openweave-core/src/lib/core/WeaveSecurityMgr-SimpleAlloc.cpp
- function_names:
  - nl::Weave::Binding::AddRef
  - nl::Weave::Binding::Release
  - nl::Weave::Binding::Close
  - nl::Weave::Binding::Reset
  - nl::Weave::Binding::GetLogId
  - nl::Weave::Binding::DefaultEventHandler
  - nl::Weave::Binding::Init
  - nl::Weave::Binding::DoReset
  - nl::Weave::Binding::DoClose
  - nl::Weave::Binding::ResetConfig
  - nl::Weave::Binding::RequestPrepare
  - nl::Weave::Binding::DoPrepare
  - nl::Weave::Binding::PrepareAddress
  - nl::Weave::Binding::PrepareTransport
  - nl::Weave::Binding::PrepareSecurity
  - nl::Weave::Binding::HandleBindingReady
  - nl::Weave::Binding::HandleBindingFailed
  - nl::Weave::Binding::OnResolveComplete
  - nl::Weave::Binding::OnConnectionComplete
  - nl::Weave::Binding::OnConnectionClosed
  - nl::Weave::Binding::OnSecureSessionReady
  - nl::Weave::Binding::OnSecureSessionFailed
  - nl::Weave::Binding::OnKeyFailed
  - nl::Weave::Binding::OnSecurityManagerAvailable
  - nl::Weave::Binding::AdjustResponseTimeout
  - nl::Weave::Binding::IsAuthenticMessageFromPeer
  - nl::Weave::Binding::GetMaxWeavePayloadSize
  - nl::Weave::Binding::GetPeerDescription
  - nl::Weave::Binding::NewExchangeContext
  - nl::Weave::Binding::AllocateRightSizedBuffer
  - nl::Weave::Binding::GetWeaveHeaderSize
  - nl::Weave::Binding::GetWeaveTrailerSize
  - Binding::Configuration::Configuration(Binding& aBinding)
  - '& Binding::Configuration::Target_NodeId(uint64_t aPeerNodeId)'
  - '& Binding::Configuration::Target_ServiceEndpoint(uint64_t serviceEndpointId)'
  - '& Binding::Configuration::TargetAddress_IP(const nl::Inet::IPAddress aPeerAddress,
    const uint16_t aPeerPort, const InterfaceId aInterfaceId)'
  - '& Binding::Configuration::TargetAddress_IP(const char *aHostName, uint16_t aPeerPort,
    InterfaceId aInterfaceId)'
  - '& Binding::Configuration::TargetAddress_IP(const char *aHostName, size_t aHostNameLen,
    uint16_t aPeerPort, InterfaceId aInterfaceId)'
  - '& Binding::Configuration::DNS_Options(uint8_t dnsOptions)'
  - '& Binding::Configuration::TargetAddress_WeaveService()'
  - '& Binding::Configuration::TargetAddress_WeaveFabric(uint16_t aSubnetId)'
  - '& Binding::Configuration::Transport_TCP()'
  - '& Binding::Configuration::Transport_UDP()'
  - '& Binding::Configuration::Transport_UDP_WRM()'
  - '& Binding::Configuration::Transport_UDP_PathMTU(uint32_t aPathMTU)'
  - '& Binding::Configuration::Transport_DefaultWRMPConfig(const nl::Weave::WRMPConfig&
    aWRMPConfig)'
  - '& Binding::Configuration::Transport_ExistingConnection(WeaveConnection *con)'
  - '& Binding::Configuration::Exchange_ResponseTimeoutMsec(uint32_t aResponseTimeoutMsec)'
  - '& Binding::Configuration::Security_None()'
  - '& Binding::Configuration::Security_CASESession(void)'
  - '& Binding::Configuration::Security_SharedCASESession(void)'
  - '& Binding::Configuration::Security_SharedCASESession(uint64_t aRouterNodeId)'
  - '& Binding::Configuration::Security_PASESession(uint8_t aPasswordSource)'
  - '& Binding::Configuration::Security_TAKESession()'
  - '& Binding::Configuration::Security_Key(uint32_t aKeyId)'
  - '& Binding::Configuration::Security_AppGroupKey(uint32_t aAppGroupGlobalId, uint32_t
    aRootKeyId, bool aUseRotatingKey)'
  - '& Binding::Configuration::Security_EncryptionType(uint8_t aEncType)'
  - '& Binding::Configuration::Security_AuthenticationMode(WeaveAuthMode aAuthMode)'
  - '& Binding::Configuration::CaptureTxMessage(void)'
  - "& Binding::Configuration::ConfigureFromMessage(\n        const nl::Weave::WeaveMessageInfo
    *aMsgInfo,\n        const nl::Inet::IPPacketInfo *aPacketInfo)"
  source_file: /src/openweave-core/src/lib/core/WeaveBinding.cpp
- function_names:
  - nl::Weave::HostPortList::HostPortList
  - nl::Weave::HostPortList::HostPortList
  - nl::Weave::HostPortList::IsEmpty
  source_file: /src/openweave-core/src/lib/core/HostPortList.h
- function_names:
  - nl::Weave::HostPortList::Clear
  - nl::Weave::HostPortList::Get
  - nl::Weave::HostPortList::Pop
  - nl::Weave::HostPortList::Get
  - nl::Weave::HostPortList::Skip
  - nl::Weave::HostPortList::GetSuffix
  source_file: /src/openweave-core/src/lib/core/HostPortList.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/core/WeaveVendorIdentifiers.hpp
- function_names:
  - nl::Weave::WeaveConnectionTunnel::Init
  - nl::Weave::WeaveConnectionTunnel::MakeTunnelConnected
  - nl::Weave::WeaveConnectionTunnel::CloseEndPoint
  - nl::Weave::WeaveConnectionTunnel::Shutdown
  - nl::Weave::PrintTunnelInfo
  - nl::Weave::WeaveConnectionTunnel::HandleTunnelDataReceived
  - nl::Weave::WeaveConnectionTunnel::HandleTunnelConnectionClosed
  - nl::Weave::WeaveConnectionTunnel::HandleReceiveShutdown
  source_file: /src/openweave-core/src/lib/core/WeaveConnectionTunnel.cpp
- function_names:
  - nl::Weave::WeaveExchangeManager::WeaveExchangeManager
  - nl::Weave::WeaveExchangeManager::Init
  - nl::Weave::WeaveExchangeManager::Shutdown
  - nl::Weave::WeaveExchangeManager::NewContext
  - nl::Weave::WeaveExchangeManager::NewContext
  - nl::Weave::WeaveExchangeManager::NewContext
  - nl::Weave::WeaveExchangeManager::NewContext
  - nl::Weave::WeaveExchangeManager::FindContext
  - nl::Weave::WeaveExchangeManager::RegisterUnsolicitedMessageHandler
  - nl::Weave::WeaveExchangeManager::RegisterUnsolicitedMessageHandler
  - nl::Weave::WeaveExchangeManager::RegisterUnsolicitedMessageHandler
  - nl::Weave::WeaveExchangeManager::RegisterUnsolicitedMessageHandler
  - nl::Weave::WeaveExchangeManager::RegisterUnsolicitedMessageHandler
  - nl::Weave::WeaveExchangeManager::RegisterUnsolicitedMessageHandler
  - nl::Weave::WeaveExchangeManager::UnregisterUnsolicitedMessageHandler
  - nl::Weave::WeaveExchangeManager::UnregisterUnsolicitedMessageHandler
  - nl::Weave::WeaveExchangeManager::UnregisterUnsolicitedMessageHandler
  - nl::Weave::WeaveExchangeManager::HandleAcceptError
  - nl::Weave::WeaveExchangeManager::HandleConnectionReceived
  - nl::Weave::WeaveExchangeManager::HandleConnectionClosed
  - nl::Weave::WeaveExchangeManager::ExpireExchangeTimers
  - nl::Weave::WeaveExchangeManager::AllocContext
  - nl::Weave::WeaveExchangeManager::WRMPProcessDDMessage
  - nl::Weave::DefaultOnMessageReceived
  - nl::Weave::WeaveExchangeManager::DispatchMessage
  - nl::Weave::WeaveExchangeManager::RegisterUMH
  - nl::Weave::WeaveExchangeManager::UnregisterUMH
  - nl::Weave::WeaveExchangeManager::HandleMessageReceived
  - nl::Weave::WeaveExchangeManager::HandleMessageReceived
  - nl::Weave::WeaveExchangeManager::PrependHeader
  - nl::Weave::WeaveExchangeManager::DecodeHeader
  - nl::Weave::WeaveExchangeManager::AllowUnsolicitedMessages
  - nl::Weave::WeaveExchangeManager::NotifyKeyFailed
  - nl::Weave::WeaveExchangeManager::NotifySecurityManagerAvailable
  - nl::Weave::WeaveExchangeManager::ClearMsgCounterSyncReq
  - nl::Weave::WeaveExchangeManager::RetransPendingAppGroupMsgs
  - nl::Weave::WeaveExchangeManager::GetTickCounterFromTimeDelta
  - nl::Weave::WeaveExchangeManager::TicklessDebugDumpRetransTable
  - nl::Weave::WeaveExchangeManager::TicklessDebugDumpRetransTable
  - nl::Weave::WeaveExchangeManager::WRMPExecuteActions
  - nl::Weave::WeaveExchangeManager::WRMPExpireTicks
  - nl::Weave::WeaveExchangeManager::WRMPTimeout
  - nl::Weave::WeaveExchangeManager::AddToRetransTable
  - nl::Weave::WeaveExchangeManager::SendFromRetransTable
  - nl::Weave::WeaveExchangeManager::ClearRetransmitTable
  - nl::Weave::WeaveExchangeManager::ClearRetransmitTable
  - nl::Weave::WeaveExchangeManager::FailRetransmitTableEntries
  - nl::Weave::WeaveExchangeManager::WRMPStartTimer
  - nl::Weave::WeaveExchangeManager::WRMPStopTimer
  - nl::Weave::WeaveExchangeManager::InitBindingPool
  - nl::Weave::WeaveExchangeManager::AllocBinding
  - nl::Weave::WeaveExchangeManager::FreeBinding
  - nl::Weave::WeaveExchangeManager::NewBinding
  - nl::Weave::WeaveExchangeManager::GetBindingLogId
  source_file: /src/openweave-core/src/lib/core/WeaveExchangeMgr.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/core/WeaveWRMPConfig.h
- function_names: []
  source_file: /src/openweave-core/src/lib/core/WeaveTLVDebug.hpp
- function_names:
  - nl::Weave::IsPASEAuthMode
  - nl::Weave::IsCASEAuthMode
  - nl::Weave::IsTAKEAuthMode
  - nl::Weave::IsPasswordAuthMode
  - nl::Weave::IsCertAuthMode
  - nl::Weave::IsGroupKeyAuthMode
  - nl::Weave::PasswordSourceFromAuthMode
  - nl::Weave::CertTypeFromAuthMode
  - nl::Weave::AppGroupMasterKeyIdFromAuthMode
  - nl::Weave::PASEAuthMode
  - nl::Weave::CASEAuthMode
  - nl::Weave::GroupKeyAuthMode
  - nl::Weave::WeaveSessionKey::IsAllocated
  - nl::Weave::WeaveSessionKey::IsKeySet
  - nl::Weave::WeaveSessionKey::IsLocallyInitiated
  - nl::Weave::WeaveSessionKey::SetLocallyInitiated
  - nl::Weave::WeaveSessionKey::IsSharedSession
  - nl::Weave::WeaveSessionKey::SetSharedSession
  - nl::Weave::WeaveSessionKey::IsRemoveOnIdle
  - nl::Weave::WeaveSessionKey::SetRemoveOnIdle
  - nl::Weave::WeaveSessionKey::IsRecentlyActive
  - nl::Weave::WeaveSessionKey::MarkRecentlyActive
  - nl::Weave::WeaveSessionKey::ClearRecentlyActive
  - nl::Weave::WeaveSessionKey::IsSuspended
  - nl::Weave::WeaveSessionKey::MarkSuspended
  - nl::Weave::WeaveSessionKey::ClearSuspended
  - nl::Weave::WeaveSessionKey::AreResumptionMsgIdsValid
  - nl::Weave::WeaveSessionKey::SetResumptionMsgIdsValid
  - nl::Weave::WeaveSessionKey::IsUsedOverConnection
  - nl::Weave::WeaveSessionKey::SetUsedOverConnection
  - nl::Weave::WeaveFabricState
  - nl::Weave::WeaveFabricState::IsMsgCounterSyncReqInProgress
  source_file: /src/openweave-core/src/lib/core/WeaveFabricState.h
- function_names: []
  source_file: /src/openweave-core/src/lib/core/WeaveBDXConfig.h
- function_names:
  - nl::Weave::Platform::Security::OnTimeConsumingCryptoStart
  - nl::Weave::Platform::Security::OnTimeConsumingCryptoDone
  - nl::Weave::WeaveSecurityManager::WeaveSecurityManager
  - nl::Weave::WeaveSecurityManager::Init
  - nl::Weave::WeaveSecurityManager::Init
  - nl::Weave::WeaveSecurityManager::Shutdown
  - nl::Weave::WeaveSecurityManager::HandleUnsolicitedMessage
  source_file: /src/openweave-core/src/lib/core/WeaveSecurityMgr.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/core/WeaveError.h
- function_names: []
  source_file: /src/openweave-core/src/lib/core/WeaveTunnelConfig.h
- function_names: []
  source_file: /src/openweave-core/src/lib/core/WeaveStats.h
- function_names: []
  source_file: /src/openweave-core/src/lib/core/WeaveTLVUtilities.hpp
- function_names: []
  source_file: /src/openweave-core/src/lib/core/WeaveTLVData.hpp
- function_names:
  - nl::Weave::Stats::SetObjects
  - nl::Weave::Stats::UpdateSnapshot
  source_file: /src/openweave-core/src/lib/core/WeaveStats.cpp
- function_names:
  - nl::Weave::TLV::WeaveCircularTLVBuffer
  - nl::Weave::TLV::CircularTLVReader
  - nl::Weave::TLV::CircularTLVWriter
  source_file: /src/openweave-core/src/lib/core/WeaveCircularTLVBuffer.h
- function_names:
  - nl::Weave::TLV::Utilities::Iterate
  - nl::Weave::TLV::Utilities::Iterate
  - nl::Weave::TLV::Utilities::Iterate
  - nl::Weave::TLV::Utilities::CountHandler
  - nl::Weave::TLV::Utilities::Count
  - nl::Weave::TLV::Utilities::Count
  - nl::Weave::TLV::Utilities::FindHandler
  - nl::Weave::TLV::Utilities::Find
  - nl::Weave::TLV::Utilities::Find
  - nl::Weave::TLV::Utilities::FindPredicateContext::FindPredicateContext
  - nl::Weave::TLV::Utilities::FindPredicateHandler
  - nl::Weave::TLV::Utilities::Find
  - nl::Weave::TLV::Utilities::Find
  source_file: /src/openweave-core/src/lib/core/WeaveTLVUtilities.cpp
- function_names:
  - nl::Weave::WeaveServerBase::EnforceAccessControl
  - nl::Weave::WeaveServerBase::SendStatusReport
  - nl::Weave::WeaveServerBase::SendStatusReport
  - nl::Weave::WeaveServerDelegateBase::EnforceAccessControl
  source_file: /src/openweave-core/src/lib/core/WeaveServerBase.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/schema/common/InterfaceNameStructSchema.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/schema/common/DayOfWeekEnum.h
- function_names:
  - Schema::Weave::Common::EventId::SetResourceIdNull
  - Schema::Weave::Common::EventId::SetResourceIdPresent
  - Schema::Weave::Common::EventId::IsResourceIdPresent
  source_file: /src/openweave-core/src/lib/schema/common/EventIdStructSchema.h
- function_names: []
  source_file: /src/openweave-core/src/lib/schema/common/TimeOfDayStructSchema.h
- function_names: []
  source_file: /src/openweave-core/src/lib/schema/common/TraitTypeInstanceStructSchema.h
- function_names: []
  source_file: /src/openweave-core/src/lib/schema/common/TimerStructSchema.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/schema/common/TimeOfDayStructSchema.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/schema/common/ResourceTypeEnum.h
- function_names: []
  source_file: /src/openweave-core/src/lib/schema/common/EventIdStructSchema.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/schema/common/InterfaceNameStructSchema.h
- function_names: []
  source_file: /src/openweave-core/src/lib/schema/common/ProfileSpecificStatusCodeStructSchema.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/schema/common/ProfileSpecificStatusCodeStructSchema.h
- function_names: []
  source_file: /src/openweave-core/src/lib/schema/common/TraitTypeInstanceStructSchema.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/schema/common/TimerStructSchema.h
- function_names: []
  source_file: /src/openweave-core/src/lib/support/WeaveFaultInjection.h
- function_names: []
  source_file: /src/openweave-core/src/lib/support/WeaveNames.h
- function_names: []
  source_file: /src/openweave-core/src/lib/support/ProfileStringSupport.hpp
- function_names:
  - nl::StatusReportStr
  - nl::StatusReportStr
  - nl::FindStatusReportStr
  source_file: /src/openweave-core/src/lib/support/StatusReportStr.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/support/ASN1Macros.h
- function_names:
  - nl::Weave::ASN1::ASN1Reader
  - nl::Weave::ASN1::ASN1Writer
  source_file: /src/openweave-core/src/lib/support/ASN1.h
- function_names:
  - nl::secondsToMilliseconds
  source_file: /src/openweave-core/src/lib/support/TimeUtils.h
- function_names:
  - nl::Weave::Platform::RoundDown
  - nl::Weave::Platform::RoundUp
  - nl::Weave::Platform::BitsToByteLength
  source_file: /src/openweave-core/src/lib/support/MathUtils.h
- function_names: []
  source_file: /src/openweave-core/src/lib/support/nlargparser.hpp
- function_names:
  - nl::Weave::GetRandU64
  - nl::Weave::GetRandU32
  - nl::Weave::GetRandU16
  - nl::Weave::GetRandU8
  source_file: /src/openweave-core/src/lib/support/RandUtils.cpp
- function_names:
  - nl::Weave::ASN1::ASN1Writer::Init
  - nl::Weave::ASN1::ASN1Writer::InitNullWriter
  - nl::Weave::ASN1::ASN1Writer::Finalize
  - nl::Weave::ASN1::ASN1Writer::GetLengthWritten
  - nl::Weave::ASN1::ASN1Writer::PutInteger
  - nl::Weave::ASN1::ASN1Writer::PutBoolean
  - nl::Weave::ASN1::ASN1Writer::PutObjectId
  - nl::Weave::ASN1::ASN1Writer::PutString
  - nl::Weave::ASN1::ASN1Writer::PutOctetString
  - nl::Weave::ASN1::ASN1Writer::PutOctetString
  - nl::Weave::ASN1::ASN1Writer::PutOctetString
  - nl::Weave::ASN1::ReverseBits
  - nl::Weave::ASN1::HighestBit
  - nl::Weave::ASN1::ASN1Writer::PutBitString
  - nl::Weave::ASN1::ASN1Writer::PutBitString
  - nl::Weave::ASN1::ASN1Writer::PutBitString
  - nl::Weave::ASN1::itoa2
  - nl::Weave::ASN1::ASN1Writer::PutTime
  - nl::Weave::ASN1::ASN1Writer::PutNull
  - nl::Weave::ASN1::ASN1Writer::StartConstructedType
  - nl::Weave::ASN1::ASN1Writer::EndConstructedType
  - nl::Weave::ASN1::ASN1Writer::StartEncapsulatedType
  - nl::Weave::ASN1::ASN1Writer::EndEncapsulatedType
  - nl::Weave::ASN1::ASN1Writer::PutValue
  - nl::Weave::ASN1::ASN1Writer::PutValue
  - nl::Weave::ASN1::ASN1Writer::EncodeHead
  - nl::Weave::ASN1::ASN1Writer::WriteDeferredLength
  - nl::Weave::ASN1::ASN1Writer::GetLengthOfLength
  - nl::Weave::ASN1::ASN1Writer::EncodeLength
  source_file: /src/openweave-core/src/lib/support/ASN1Writer.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/support/ASN1Config.h
- function_names:
  - nl::Weave::ASN1::ParseObjectID
  - nl::Weave::ASN1::GetEncodedObjectID
  - nl::Weave::ASN1::GetOIDCategory
  - nl::Weave::ASN1::GetOIDName
  - nl::Weave::ASN1::ASN1Reader::GetObjectId
  - nl::Weave::ASN1::ASN1Writer::PutObjectId
  source_file: /src/openweave-core/src/lib/support/ASN1OID.cpp
- function_names:
  - nl::Weave::GetFibonacciForIndex
  source_file: /src/openweave-core/src/lib/support/FibonacciUtils.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/support/ASN1Error.h
- function_names:
  - nl::Base64ValToChar
  - nl::Base64CharToVal
  - nl::Base64URLValToChar
  - nl::Base64URLCharToVal
  - nl::Base64Encode
  - nl::Base64Encode
  - nl::Base64URLEncode
  - nl::Base64Encode32
  - nl::Base64Encode32
  - nl::Base64Decode
  - nl::Base64Decode
  - nl::Base64URLDecode
  - nl::Base64Decode32
  - nl::Base64Decode32
  - TestBase64
  - main
  source_file: /src/openweave-core/src/lib/support/Base64.cpp
- function_names:
  - nl::IsNullable
  - nl::GetType
  source_file: /src/openweave-core/src/lib/support/SerializationUtils.h
- function_names:
  - nl::Weave::Platform::Divide
  - nl::Weave::Platform::DivideBy1000
  source_file: /src/openweave-core/src/lib/support/MathUtils.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/support/NestCerts.h
- function_names: []
  source_file: /src/openweave-core/src/lib/support/SerialNumberUtils.h
- function_names:
  - nl::Weave::FaultInjection::GetManager
  - nl::Weave::FaultInjection::FuzzExchangeHeader
  source_file: /src/openweave-core/src/lib/support/WeaveFaultInjection.cpp
- function_names:
  - nl::Weave::ASN1::ASN1Reader::Init
  - nl::Weave::ASN1::ASN1Reader::Next
  - nl::Weave::ASN1::ASN1Reader::EnterConstructedType
  - nl::Weave::ASN1::ASN1Reader::ExitConstructedType
  - nl::Weave::ASN1::ASN1Reader::EnterEncapsulatedType
  - nl::Weave::ASN1::ASN1Reader::ExitEncapsulatedType
  - nl::Weave::ASN1::ASN1Reader::EnterContainer
  - nl::Weave::ASN1::ASN1Reader::ExitContainer
  - nl::Weave::ASN1::ASN1Reader::IsContained
  - nl::Weave::ASN1::ASN1Reader::GetInteger
  - nl::Weave::ASN1::ASN1Reader::GetBoolean
  - nl::Weave::ASN1::ASN1Reader::GetUTCTime
  - nl::Weave::ASN1::ASN1Reader::GetGeneralizedTime
  - nl::Weave::ASN1::ReverseBits
  - nl::Weave::ASN1::ASN1Reader::GetBitString
  - nl::Weave::ASN1::ASN1Reader::DecodeHead
  - nl::Weave::ASN1::ASN1Reader::ResetElementState
  - nl::Weave::ASN1::DumpASN1
  source_file: /src/openweave-core/src/lib/support/ASN1Reader.cpp
- function_names:
  - nl::Weave::min
  - nl::Weave::max
  - WeaveDie
  source_file: /src/openweave-core/src/lib/support/CodeUtils.h
- function_names: []
  source_file: /src/openweave-core/src/lib/support/RandUtils.h
- function_names:
  - nl::DaysToMarch1
  - nl::MarchBasedMonthToDayOfYear
  - nl::MarchBasedDayOfYearToMonth
  - nl::IsLeapYear
  - nl::DaysInMonth
  - nl::FirstWeekdayOfYear
  - nl::OrdinalDateToCalendarDate
  - nl::CalendarDateToOrdinalDate
  - nl::CalendarDateToDaysSinceEpoch
  - nl::DaysSinceEpochToCalendarDate
  - nl::AdjustCalendarDate
  - nl::CalendarTimeToSecondsSinceEpoch
  - nl::SecondsSinceEpochToCalendarTime
  source_file: /src/openweave-core/src/lib/support/TimeUtils.cpp
- function_names:
  - nl::Weave::GetVendorName
  - nl::Weave::FindProfileName
  - nl::Weave::FindMessageName
  - nl::Weave::GetProfileName
  - nl::Weave::GetMessageName
  source_file: /src/openweave-core/src/lib/support/WeaveNames.cpp
- function_names:
  - nl::ErrorStr
  - nl::RegisterErrorFormatter
  - nl::FormatError
  source_file: /src/openweave-core/src/lib/support/ErrorStr.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/support/FibonacciUtils.h
- function_names:
  - nl::Weave::MonotonicallyIncreasingCounter::MonotonicallyIncreasingCounter
  - MonotonicallyIncreasingCounter::~MonotonicallyIncreasingCounter(void)
  - nl::Weave::MonotonicallyIncreasingCounter::Init
  - nl::Weave::MonotonicallyIncreasingCounter::Advance
  - nl::Weave::MonotonicallyIncreasingCounter::GetValue
  source_file: /src/openweave-core/src/lib/support/WeaveCounter.cpp
- function_names:
  - nl::ArgParser::IsShortOptionChar
  - nl::ArgParser::ParseArgs
  - nl::ArgParser::ParseArgs
  - nl::ArgParser::ParseArgs
  - nl::ArgParser::ParseArgsFromString
  - nl::ArgParser::ParseArgsFromString
  - nl::ArgParser::ParseArgsFromString
  - nl::ArgParser::ParseArgsFromEnvVar
  - nl::ArgParser::ParseArgsFromEnvVar
  - nl::ArgParser::ParseArgsFromEnvVar
  - nl::ArgParser::PrintOptionHelp
  - nl::ArgParser::DefaultPrintArgError
  - nl::ArgParser::ParseBoolean
  - nl::ArgParser::ParseInt
  - nl::ArgParser::ParseInt
  - nl::ArgParser::ParseInt
  - nl::ArgParser::ParseInt
  - nl::ArgParser::ParseInt
  - nl::ArgParser::ParseInt
  - nl::ArgParser::ParseInt
  - nl::ArgParser::ParseInt
  - nl::ArgParser::ParseInt
  - nl::ArgParser::ParseIPAddress
  - nl::ArgParser::ParseNodeId
  - nl::ArgParser::ParseFabricId
  - nl::ArgParser::ParseSubnetId
  - nl::ArgParser::ParseHexString
  - nl::ArgParser::HelpOptions::HelpOptions
  - nl::ArgParser::HelpOptions::HelpOptions
  - nl::ArgParser::HelpOptions::PrintBriefUsage
  - nl::ArgParser::HelpOptions::PrintLongUsage
  - nl::ArgParser::HelpOptions::PrintVersion
  - nl::ArgParser::HelpOptions::HandleOption
  - nl::ArgParser::OptionSetBase::OptionSetBase
  - nl::ArgParser::OptionSetBase::CallHandleFunct
  - nl::ArgParser::MakeShortOptions
  - nl::ArgParser::MakeLongOptions
  - nl::ArgParser::SplitArgs
  - nl::ArgParser::GetNextArg
  - nl::ArgParser::CountOptionSets
  - nl::ArgParser::CountAllOptions
  - nl::ArgParser::FindOptionByIndex
  - nl::ArgParser::FindOptionById
  - nl::ArgParser::MakeUniqueHelpGroupNamesList
  - nl::ArgParser::PutStringWithNewLine
  - nl::ArgParser::PutStringWithBlankLine
  - nl::ArgParser::SanityCheckOptions
  - nl::ArgParser::HelpTextContainsLongOption
  - nl::ArgParser::HelpTextContainsShortOption
  source_file: /src/openweave-core/src/lib/support/nlargparser.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/support/ManagedNamespace.hpp
- function_names:
  - nl::unsupported_malloc
  - nl::unsupported_free
  - nl::unsupported_realloc
  - nl::IsValidFieldType
  - nl::GetArrayElementSize
  - nl::WriteArrayData
  - nl::WriteNullableDataForType
  - nl::WriteDataForType
  - nl::ReadArrayData
  - nl::CheckForEndOfTLV
  - nl::ReadNullableDataForType
  - nl::ReadDataForType
  - nl::FindNullifiedFieldsArray
  - nl::SerializedDataToTLVWriter
  - nl::SerializedDataToTLVWriterHelper
  - nl::TLVReaderToDeserializedData
  - nl::TLVReaderToDeserializedDataHelper
  - nl::DeallocateDeserializedArray
  - nl::DeallocateDeserializedStructure
  source_file: /src/openweave-core/src/lib/support/SerializationUtils.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/support/ErrorStr.h
- function_names:
  - nl::Weave::PersistedCounter::PersistedCounter
  - PersistedCounter::~PersistedCounter(void)
  - nl::Weave::PersistedCounter::Init
  - nl::Weave::PersistedCounter::SetValue
  - nl::Weave::PersistedCounter::Advance
  - nl::Weave::PersistedCounter::AdvanceEpochRelative
  - nl::Weave::PersistedCounter::GetNextValue
  - nl::Weave::PersistedCounter::IncrementCount
  - nl::Weave::PersistedCounter::WriteStartValue
  - nl::Weave::PersistedCounter::ReadStartValue
  source_file: /src/openweave-core/src/lib/support/PersistedCounter.cpp
- function_names:
  - nl::Weave::ASN1::FormatASN1Error
  source_file: /src/openweave-core/src/lib/support/ASN1Error.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/support/PersistedCounter.h
- function_names: []
  source_file: /src/openweave-core/src/lib/support/NonProductionMarker.cpp
- function_names:
  - nl::DateToManufacturingWeek
  - nl::ManufacturingWeekToDate
  - nl::ExtractManufacturingDateFromSerialNumber
  - nl::IsBase34NoIOChar
  - nl::IsValidSerialNumber
  source_file: /src/openweave-core/src/lib/support/SerialNumberUtils.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/support/NestCerts.cpp
- function_names:
  - nl::LogEvent
  - nl::NullifyAllEventFields
  - nl::LogEvent
  - nl::DeserializeEvent
  - nl::DeallocateEvent
  source_file: /src/openweave-core/src/lib/support/TraitEventUtils.h
- function_names: []
  source_file: /src/openweave-core/src/lib/support/NLDLLUtil.h
- function_names:
  - nl::GetFlag
  - nl::ClearFlag
  - nl::SetFlag
  - nl::SetFlag
  source_file: /src/openweave-core/src/lib/support/FlagUtils.hpp
- function_names: []
  source_file: /src/openweave-core/src/lib/support/Base64.h
- function_names:
  - nl::Weave::Support::FindProfileStringContext
  - nl::Weave::Support::InsertProfileStringContext
  - nl::Weave::Support::RemoveProfileStringContext
  - nl::Weave::Support::WEAVE_ERROR::RegisterProfileStringInfo
  - nl::Weave::Support::WEAVE_ERROR::UnregisterProfileStringInfo
  - ProfileStringInfo *FindProfileStringInfo(uint32_t inProfileId)
  source_file: /src/openweave-core/src/lib/support/ProfileStringSupport.cpp
- function_names:
  - nl::Weave::Counter::Counter
  - ~Counter(void)
  source_file: /src/openweave-core/src/lib/support/WeaveCounter.h
- function_names:
  - nl::PairingCode::VerifyPairingCode
  - nl::PairingCode::NormalizePairingCode
  - nl::PairingCode::IntToPairingCode
  - nl::PairingCode::PairingCodeToInt
  - nl::PairingCode::IsValidPairingCodeChar
  - nl::PairingCode::PairingCodeCharToInt
  - nl::PairingCode::IntToPairingCodeChar
  - nl::PairingCode::GeneratePairingCode
  source_file: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.cpp
- function_names:
  - nl::PairingCode::KryptonitePairingCodeToDeviceId
  - nl::PairingCode::KryptoniteDeviceIdToPairingCode
  source_file: /src/openweave-core/src/lib/support/pairing-code/KryptonitePairingCodeUtils.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/support/pairing-code/PairingCodeUtils.h
- function_names:
  - nl::PairingCode::NevisPairingCodeToDeviceId
  - nl::PairingCode::NevisDeviceIdToPairingCode
  source_file: /src/openweave-core/src/lib/support/pairing-code/NevisPairingCodeUtils.cpp
- function_names:
  - nl::Weave::Crypto::CurveOID2uECC_Curve
  - nl::Weave::Crypto::GetCurveSize
  - nl::Weave::Crypto::GetSecureRandomData_uECC
  - nl::Weave::Crypto::DecodeDERInt
  - nl::Weave::Crypto::EncodeDERInt
  - nl::Weave::Crypto::DecodeECPrivateKey
  - nl::Weave::Crypto::EncodeECPrivateKey
  - nl::Weave::Crypto::GenerateECDSASignature
  - nl::Weave::Crypto::GenerateECDSASignature
  - nl::Weave::Crypto::VerifyECDSASignature
  - nl::Weave::Crypto::VerifyECDSASignature
  - nl::Weave::Crypto::IsOneKey
  - nl::Weave::Crypto::ECDHComputeSharedSecret
  - nl::Weave::Crypto::GenerateECDHKey
  - nl::Weave::Crypto::GetCurveG
  - nl::Weave::Crypto::uECC_point_add
  - nl::Weave::Crypto::uECC_vli_bytesToNative_mod_n
  - nl::Weave::Crypto::EllipticCurveJPAKE::Init
  - nl::Weave::Crypto::EllipticCurveJPAKE::Shutdown
  - nl::Weave::Crypto::EllipticCurveJPAKE::Reset
  - nl::Weave::Crypto::EllipticCurveJPAKE::Init
  - nl::Weave::Crypto::ZeroKnowledgeProofHash
  - nl::Weave::Crypto::EllipticCurveJPAKE::FindStepPartDataPointers
  - nl::Weave::Crypto::EllipticCurveJPAKE::VerifyZeroKnowledgeProof
  - nl::Weave::Crypto::EllipticCurveJPAKE::GenerateZeroKnowledgeProof
  - nl::Weave::Crypto::EllipticCurveJPAKE::GenerateStepPart
  - nl::Weave::Crypto::EllipticCurveJPAKE::GenerateStep1
  - nl::Weave::Crypto::EllipticCurveJPAKE::ProcessStep1
  - nl::Weave::Crypto::EllipticCurveJPAKE::GenerateStep2
  - nl::Weave::Crypto::EllipticCurveJPAKE::ComputeSharedSecret
  - nl::Weave::Crypto::EllipticCurveJPAKE::ProcessStep2
  - nl::Weave::Crypto::EllipticCurveJPAKE::GetSharedSecret
  - nl::Weave::Crypto::EllipticCurveJPAKE::GetCurveSize
  source_file: /src/openweave-core/src/lib/support/crypto/EllipticCurve-uECC.cpp
- function_names:
  - nl::Weave::Crypto::CTR_DRBG
  source_file: /src/openweave-core/src/lib/support/crypto/DRBG.h
- function_names:
  - nl::Weave::Crypto::CTRMode
  source_file: /src/openweave-core/src/lib/support/crypto/CTRMode.h
- function_names: []
  source_file: /src/openweave-core/src/lib/support/crypto/WeaveCrypto.h
- function_names:
  - nl::Weave::Crypto::HMAC
  - nl::Weave::Crypto::EncodedHMACSignature::WriteSignature
  source_file: /src/openweave-core/src/lib/support/crypto/HMAC.h
- function_names:
  - nl::Weave::Platform::Security::AES128BlockCipherEnc
  - nl::Weave::Platform::Security::AES128BlockCipherDec
  - nl::Weave::Platform::Security::AES256BlockCipherEnc
  - nl::Weave::Platform::Security::AES256BlockCipherDec
  source_file: /src/openweave-core/src/lib/support/crypto/AESBlockCipher.h
- function_names:
  - nl::Weave::Crypto::CTR_DRBG<BlockCipher>::CTR_DRBG
  - CTR_DRBG<BlockCipher>::~CTR_DRBG()
  - nl::Weave::Crypto::CTR_DRBG<BlockCipher>::Instantiate
  - nl::Weave::Crypto::CTR_DRBG<BlockCipher>::Reseed
  - nl::Weave::Crypto::CTR_DRBG<BlockCipher>::GenerateInternal
  - nl::Weave::Crypto::CTR_DRBG<BlockCipher>::Generate
  - nl::Weave::Crypto::CTR_DRBG<BlockCipher>::Uninstantiate
  - nl::Weave::Crypto::CTR_DRBG<BlockCipher>::Update
  - nl::Weave::Crypto::CTR_DRBG<BlockCipher>::IncrementCounter
  - nl::Weave::Crypto::CTR_DRBG<BlockCipher>::DerivationFunction
  source_file: /src/openweave-core/src/lib/support/crypto/DRBG.cpp
- function_names:
  - nl::Weave::Crypto::HKDF
  - ~HKDFSHA1Or256(void)
  - nl::Weave::Crypto::HKDFSHA1Or256::ObjBuf
  - nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA1Obj
  - nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA256Obj
  source_file: /src/openweave-core/src/lib/support/crypto/HKDF.h
- function_names:
  - nl::Weave::Platform::Security::SHA1::SHA1
  - SHA1::~SHA1()
  - nl::Weave::Platform::Security::SHA1::Begin
  - nl::Weave::Platform::Security::SHA1::AddData
  - nl::Weave::Platform::Security::SHA1::Finish
  - nl::Weave::Platform::Security::SHA1::Reset
  - nl::Weave::Platform::Security::SHA256::SHA256
  - SHA256::~SHA256()
  - nl::Weave::Platform::Security::SHA256::Begin
  - nl::Weave::Platform::Security::SHA256::AddData
  - nl::Weave::Platform::Security::SHA256::Finish
  - nl::Weave::Platform::Security::SHA256::Reset
  source_file: /src/openweave-core/src/lib/support/crypto/HashAlgos-mbedTLS.cpp
- function_names:
  - nl::Weave::Platform::Security::AES128BlockCipher::AES128BlockCipher
  - AES128BlockCipher::~AES128BlockCipher()
  - nl::Weave::Platform::Security::AES128BlockCipher::Reset
  - nl::Weave::Platform::Security::AES128BlockCipherEnc::SetKey
  - nl::Weave::Platform::Security::AES128BlockCipherEnc::EncryptBlock
  - nl::Weave::Platform::Security::AES128BlockCipherDec::SetKey
  - nl::Weave::Platform::Security::AES128BlockCipherDec::DecryptBlock
  - nl::Weave::Platform::Security::AES256BlockCipher::AES256BlockCipher
  - AES256BlockCipher::~AES256BlockCipher()
  - nl::Weave::Platform::Security::AES256BlockCipher::Reset
  - nl::Weave::Platform::Security::AES256BlockCipherEnc::SetKey
  - nl::Weave::Platform::Security::AES256BlockCipherEnc::EncryptBlock
  - nl::Weave::Platform::Security::AES256BlockCipherDec::SetKey
  - nl::Weave::Platform::Security::AES256BlockCipherDec::DecryptBlock
  source_file: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp
- function_names:
  - nl::Weave::Platform::Security::GetDRBGSeedDevRandom
  - nl::Weave::Platform::Security::InitSecureRandomDataSource
  - nl::Weave::Platform::Security::GetSecureRandomData
  source_file: /src/openweave-core/src/lib/support/crypto/WeaveRNG-NestDRBG.cpp
- function_names:
  - nl::Weave::Platform::Security::InitSecureRandomDataSource
  - nl::Weave::Platform::Security::GetSecureRandomData
  source_file: /src/openweave-core/src/lib/support/crypto/WeaveRNG-OpenSSL.cpp
- function_names:
  - nl::Weave::Crypto::WEAVE_ERROR::GenerateECDSASignature
  - nl::Weave::Crypto::GenerateECDSASignature
  - nl::Weave::Crypto::WEAVE_ERROR::VerifyECDSASignature
  - nl::Weave::Crypto::VerifyECDSASignature
  - nl::Weave::Crypto::GenerateECDHKey
  - nl::Weave::Crypto::ECDHComputeSharedSecret
  - nl::Weave::Crypto::GetCurveSize
  - nl::Weave::Crypto::GetCurveG
  - nl::Weave::Crypto::ECDSA_SIG_get0
  - nl::Weave::Crypto::ECDSA_SIG_set0
  - nl::Weave::Crypto::GetCurveSize
  - nl::Weave::Crypto::WEAVE_ERROR::GetECGroupForCurve
  - nl::Weave::Crypto::WEAVE_ERROR::ECDHComputeSharedSecret
  - nl::Weave::Crypto::WEAVE_ERROR::EncodeX962ECPoint
  - nl::Weave::Crypto::WEAVE_ERROR::DecodeX962ECPoint
  - nl::Weave::Crypto::DecodeX962ECPoint
  - nl::Weave::Crypto::WEAVE_ERROR::DecodeECKey
  - nl::Weave::Crypto::EncodeECDSASignature
  - nl::Weave::Crypto::DecodeECDSASignature
  - nl::Weave::Crypto::ECDSASigToFixedLenSig
  - nl::Weave::Crypto::FixedLenSigToECDSASig
  - nl::Weave::Crypto::GetCurveWordCount
  - nl::Weave::Crypto::GetOrderWordCount
  - nl::Weave::Crypto::EncodeECPointValue
  - nl::Weave::Crypto::DecodeECPointValue
  - nl::Weave::Crypto::EncodeStepPartFields
  - nl::Weave::Crypto::DecodeStepPartFields
  - nl::Weave::Crypto::ECJPAKE_HashECPoint
  - nl::Weave::Crypto::EllipticCurveJPAKE::Init
  - nl::Weave::Crypto::EllipticCurveJPAKE::Shutdown
  - nl::Weave::Crypto::EllipticCurveJPAKE::Reset
  - nl::Weave::Crypto::EllipticCurveJPAKE::Init
  - nl::Weave::Crypto::EllipticCurveJPAKE::GenerateStep1
  - nl::Weave::Crypto::EllipticCurveJPAKE::ProcessStep1
  - nl::Weave::Crypto::EllipticCurveJPAKE::GenerateStep2
  - nl::Weave::Crypto::EllipticCurveJPAKE::ProcessStep2
  - nl::Weave::Crypto::EllipticCurveJPAKE::GetSharedSecret
  - nl::Weave::Crypto::EllipticCurveJPAKE::GetCurveSize
  source_file: /src/openweave-core/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp
- function_names:
  - nl::Weave::Crypto::EncodedRSASignature::WriteSignature
  source_file: /src/openweave-core/src/lib/support/crypto/RSA.h
- function_names:
  - nl::Weave::Crypto::EncodedRSAKey::IsEqual
  - nl::Weave::Crypto::EncodedRSASignature::IsEqual
  - nl::Weave::Crypto::EncodedRSASignature::ReadSignature
  - nl::Weave::Crypto::ShaNIDFromSigAlgoOID
  - nl::Weave::Crypto::GenerateAndEncodeWeaveRSASignature
  - nl::Weave::Crypto::VerifyRSASignature
  source_file: /src/openweave-core/src/lib/support/crypto/RSA.cpp
- function_names:
  - nl::Weave::Platform::Security::SHA1::SHA1
  - SHA1::~SHA1()
  - nl::Weave::Platform::Security::SHA1::Begin
  - nl::Weave::Platform::Security::SHA1::AddData
  - nl::Weave::Platform::Security::SHA1::Finish
  - nl::Weave::Platform::Security::SHA1::Reset
  - nl::Weave::Platform::Security::SHA256::SHA256
  - SHA256::~SHA256()
  - nl::Weave::Platform::Security::SHA256::Begin
  - nl::Weave::Platform::Security::SHA256::AddData
  - nl::Weave::Platform::Security::SHA256::Finish
  - nl::Weave::Platform::Security::SHA256::Reset
  - nl::Weave::Platform::Security::SHA1::AddData
  - nl::Weave::Platform::Security::SHA256::AddData
  source_file: /src/openweave-core/src/lib/support/crypto/HashAlgos-OpenSSL.cpp
- function_names:
  - nl::Weave::Crypto::EncodedECPublicKey::IsEqual
  - nl::Weave::Crypto::EncodedECDSASignature::IsEqual
  - nl::Weave::Crypto::EncodedECPrivateKey::IsEqual
  source_file: /src/openweave-core/src/lib/support/crypto/EllipticCurve.cpp
- function_names:
  - nl::Weave::Crypto::ReverseBytes
  - nl::Weave::Crypto::EncodeBIGNUMValueLE
  - nl::Weave::Crypto::DecodeBIGNUMValueLE
  source_file: /src/openweave-core/src/lib/support/crypto/WeaveCrypto-OpenSSL.cpp
- function_names:
  - nl::Weave::Crypto::CTRMode<BlockCipher>::CTRMode
  - CTRMode<BlockCipher>::~CTRMode()
  - nl::Weave::Crypto::CTRMode<BlockCipher>::SetKey
  - nl::Weave::Crypto::CTRMode<BlockCipher>::SetCounter
  - nl::Weave::Crypto::CTRMode<BlockCipher>::SetWeaveMessageCounter
  - nl::Weave::Crypto::CTRMode<BlockCipher>::EncryptData
  - nl::Weave::Crypto::CTRMode<BlockCipher>::Reset
  source_file: /src/openweave-core/src/lib/support/crypto/CTRMode.cpp
- function_names:
  - nl::Weave::Crypto::HMAC<H>::HMAC
  - HMAC<H>::~HMAC()
  - nl::Weave::Crypto::HMAC<H>::Begin
  - nl::Weave::Crypto::HMAC<H>::AddData
  - nl::Weave::Crypto::HMAC<H>::AddData
  - nl::Weave::Crypto::HMAC<H>::Finish
  - nl::Weave::Crypto::HMAC<H>::Reset
  - nl::Weave::Crypto::EncodedHMACSignature::IsEqual
  - nl::Weave::Crypto::EncodedHMACSignature::ReadSignature
  - nl::Weave::Crypto::GenerateAndEncodeWeaveHMACSignature
  - nl::Weave::Crypto::VerifyHMACSignature
  source_file: /src/openweave-core/src/lib/support/crypto/HMAC.cpp
- function_names:
  - '* operator new     (size_t, void * p) throw()'
  - '* operator new[]   (size_t, void * p) throw()'
  - nl::Weave::Crypto::HKDF<H>::HKDF
  - HKDF<H>::~HKDF()
  - nl::Weave::Crypto::HKDF<H>::BeginExtractKey
  - nl::Weave::Crypto::HKDF<H>::AddKeyMaterial
  - nl::Weave::Crypto::HKDF<H>::AddKeyMaterial
  - nl::Weave::Crypto::HKDF<H>::FinishExtractKey
  - nl::Weave::Crypto::HKDF<H>::ExpandKey
  - nl::Weave::Crypto::HKDF<H>::DeriveKey
  - nl::Weave::Crypto::HKDF<H>::Reset
  - nl::Weave::Crypto::HKDFSHA1Or256::HKDFSHA1Or256
  - nl::Weave::Crypto::HKDFSHA1Or256::BeginExtractKey
  - nl::Weave::Crypto::HKDFSHA1Or256::AddKeyMaterial
  - nl::Weave::Crypto::HKDFSHA1Or256::FinishExtractKey
  - nl::Weave::Crypto::HKDFSHA1Or256::ExpandKey
  - nl::Weave::Crypto::HKDFSHA1Or256::Reset
  source_file: /src/openweave-core/src/lib/support/crypto/HKDF.cpp
- function_names:
  - nl::Weave::Platform::Security::SHA1::SHA1
  - SHA1::~SHA1()
  - nl::Weave::Platform::Security::SHA1::Begin
  - nl::Weave::Platform::Security::SHA1::AddData
  - nl::Weave::Platform::Security::SHA1::Finish
  - nl::Weave::Platform::Security::SHA1::Reset
  - nl::Weave::Platform::Security::SHA256::SHA256
  - SHA256::~SHA256()
  - nl::Weave::Platform::Security::SHA256::Begin
  - nl::Weave::Platform::Security::SHA256::AddData
  - nl::Weave::Platform::Security::SHA256::Finish
  - nl::Weave::Platform::Security::SHA256::Reset
  source_file: /src/openweave-core/src/lib/support/crypto/HashAlgos-MinCrypt.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/support/crypto/WeaveRNG.h
- function_names: []
  source_file: /src/openweave-core/src/lib/support/crypto/EllipticCurve.h
- function_names:
  - nl::Weave::Platform::Security::AES128BlockCipher::AES128BlockCipher
  - AES128BlockCipher::~AES128BlockCipher()
  - nl::Weave::Platform::Security::AES128BlockCipher::Reset
  - nl::Weave::Platform::Security::ExpandKey128
  - nl::Weave::Platform::Security::AES128BlockCipherEnc::SetKey
  - nl::Weave::Platform::Security::AES128BlockCipherEnc::EncryptBlock
  - nl::Weave::Platform::Security::AES128BlockCipherDec::SetKey
  - nl::Weave::Platform::Security::AES128BlockCipherDec::DecryptBlock
  - nl::Weave::Platform::Security::AES256BlockCipher::AES256BlockCipher
  - AES256BlockCipher::~AES256BlockCipher()
  - nl::Weave::Platform::Security::AES256BlockCipher::Reset
  - nl::Weave::Platform::Security::ExpandKey256
  - nl::Weave::Platform::Security::AES256BlockCipherEnc::SetKey
  - nl::Weave::Platform::Security::AES256BlockCipherEnc::EncryptBlock
  - nl::Weave::Platform::Security::AES256BlockCipherDec::SetKey
  - nl::Weave::Platform::Security::AES256BlockCipherDec::DecryptBlock
  source_file: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-AESNI.cpp
- function_names:
  - nl::Weave::Platform::Security::AES128BlockCipher::AES128BlockCipher
  - AES128BlockCipher::~AES128BlockCipher()
  - nl::Weave::Platform::Security::AES128BlockCipher::Reset
  - nl::Weave::Platform::Security::AES128BlockCipherEnc::SetKey
  - nl::Weave::Platform::Security::AES128BlockCipherEnc::EncryptBlock
  - nl::Weave::Platform::Security::AES128BlockCipherDec::SetKey
  - nl::Weave::Platform::Security::AES128BlockCipherDec::DecryptBlock
  - nl::Weave::Platform::Security::AES256BlockCipher::AES256BlockCipher
  - AES256BlockCipher::~AES256BlockCipher()
  - nl::Weave::Platform::Security::AES256BlockCipher::Reset
  - nl::Weave::Platform::Security::AES256BlockCipherEnc::SetKey
  - nl::Weave::Platform::Security::AES256BlockCipherEnc::EncryptBlock
  - nl::Weave::Platform::Security::AES256BlockCipherDec::SetKey
  - nl::Weave::Platform::Security::AES256BlockCipherDec::DecryptBlock
  source_file: /src/openweave-core/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp
- function_names:
  - nl::Weave::Crypto::ConstantTimeCompare
  - nl::Weave::Crypto::ClearSecretData
  source_file: /src/openweave-core/src/lib/support/crypto/WeaveCrypto.cpp
- function_names:
  - nl::Weave::Platform::Security::SHA1
  source_file: /src/openweave-core/src/lib/support/crypto/HashAlgos.h
- function_names: []
  source_file: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.h
- function_names:
  - DecodedIPPacket::PacketHeaderDecode
  - DecodedIPPacket::GetWeaveNodeIdFromAddr
  - DecodedIPPacket::ParseWeaveMessageHeader
  - DecodedIPPacket::DoesPacketHaveWeaveMessage
  - LogPacket
  source_file: /src/openweave-core/src/lib/support/logging/DecodedIPPacket.cpp
- function_names:
  - nl::Weave::Logging::GetModuleName
  - nl::Weave::Logging::GetCategoryName
  - nl::Weave::Logging::GetMessageWithPrefix
  - nl::Weave::Logging::PrintMessagePrefix
  - nl::Weave::Logging::DefaultLogMessage
  - nl::Weave::Logging::DefaultLogMessage
  - nl::Weave::Logging::Log
  - nl::Weave::Logging::SetLogFunct
  - nl::Weave::Logging::GetLogFilter
  - nl::Weave::Logging::SetLogFilter
  source_file: /src/openweave-core/src/lib/support/logging/WeaveLogging.cpp
- function_names:
  - nl::Weave::Logging::GetMessageWithPrefix
  - nl::Weave::Logging::GetModuleName
  source_file: /src/openweave-core/src/lib/support/logging/WeaveLogging.h
- function_names:
  - VerhoeffTest::Now
  - VerhoeffTest::VerhoeffTest
  - VerhoeffTest::Reset
  - VerhoeffTest::RunTests
  - VerhoeffTest::SearchPermutations
  - VerhoeffTest::MakeTestStrings
  - VerhoeffTest::MakeTestString
  - VerhoeffTest::TestSingleDigitErrors
  - VerhoeffTest::TestAdjacentTranspositions
  - VerhoeffTest::TestJumpTranspositions
  - VerhoeffTest::PermutePermutationTable
  - VerhoeffTest::RandRange
  - main
  source_file: /src/openweave-core/src/lib/support/verhoeff/VerhoeffTest.cpp
- function_names:
  - Verhoeff::DihedralMultiply
  - Verhoeff::DihedralInvert
  - Verhoeff::Permute
  source_file: /src/openweave-core/src/lib/support/verhoeff/Verhoeff.cpp
- function_names:
  - Verhoeff10
  - Verhoeff16
  - Verhoeff32
  - Verhoeff36
  source_file: /src/openweave-core/src/lib/support/verhoeff/Verhoeff.h
- function_names:
  - Verhoeff10::ComputeCheckChar
  - Verhoeff10::ComputeCheckChar
  - Verhoeff10::ValidateCheckChar
  - Verhoeff10::ValidateCheckChar
  - Verhoeff10::ValidateCheckChar
  - Verhoeff10::ValidateCheckChar
  - Verhoeff10::CharToVal
  - Verhoeff10::ValToChar
  source_file: /src/openweave-core/src/lib/support/verhoeff/Verhoeff10.cpp
- function_names:
  - Verhoeff32::ComputeCheckChar
  - Verhoeff32::ComputeCheckChar
  - Verhoeff32::ValidateCheckChar
  - Verhoeff32::ValidateCheckChar
  - Verhoeff32::ValidateCheckChar
  - Verhoeff32::ValidateCheckChar
  - Verhoeff32::CharToVal
  - Verhoeff32::ValToChar
  source_file: /src/openweave-core/src/lib/support/verhoeff/Verhoeff32.cpp
- function_names:
  - Verhoeff16::ComputeCheckChar
  - Verhoeff16::ComputeCheckChar
  - Verhoeff16::ValidateCheckChar
  - Verhoeff16::ValidateCheckChar
  - Verhoeff16::ValidateCheckChar
  - Verhoeff16::ValidateCheckChar
  - Verhoeff16::CharToVal
  - Verhoeff16::ValToChar
  source_file: /src/openweave-core/src/lib/support/verhoeff/Verhoeff16.cpp
- function_names:
  - Verhoeff36::ComputeCheckChar
  - Verhoeff36::ComputeCheckChar
  - Verhoeff36::ValidateCheckChar
  - Verhoeff36::ValidateCheckChar
  - Verhoeff36::ValidateCheckChar
  - Verhoeff36::ValidateCheckChar
  - Verhoeff36::CharToVal
  - Verhoeff36::ValToChar
  source_file: /src/openweave-core/src/lib/support/verhoeff/Verhoeff36.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/support/platform/PersistedStorage.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/ProfileCommon.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/WeaveProfiles.h
- function_names:
  - nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList
  - nl::Weave::Profiles::SoftwareUpdate::UpdateSchemeList
  - nl::Weave::Profiles::SoftwareUpdate::ProductSpec
  - nl::Weave::Profiles::SoftwareUpdate::ImageQuery
  - nl::Weave::Profiles::SoftwareUpdate::IntegritySpec
  - nl::Weave::Profiles::SoftwareUpdate::ImageQueryResponse
  source_file: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.h
- function_names:
  - nl::Weave::Profiles::SoftwareUpdate::WeaveImageAnnounceServer::WeaveImageAnnounceServer
  - nl::Weave::Profiles::SoftwareUpdate::WeaveImageAnnounceServer::Init
  - nl::Weave::Profiles::SoftwareUpdate::WeaveImageAnnounceServer::HandleImageAnnounce
  source_file: /src/openweave-core/src/lib/profiles/software-update/WeaveImageAnnounceServer.cpp
- function_names:
  - nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::IntegrityTypeList
  - nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::init
  - nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::pack
  - nl::Weave::Profiles::SoftwareUpdate::IntegrityTypeList::parse
  - IntegrityTypeList::operator ==(const IntegrityTypeList & another) const
  - nl::Weave::Profiles::SoftwareUpdate::UpdateSchemeList::UpdateSchemeList
  - nl::Weave::Profiles::SoftwareUpdate::UpdateSchemeList::init
  - nl::Weave::Profiles::SoftwareUpdate::UpdateSchemeList::pack
  - nl::Weave::Profiles::SoftwareUpdate::UpdateSchemeList::parse
  - UpdateSchemeList::operator ==(const UpdateSchemeList & another) const
  - nl::Weave::Profiles::SoftwareUpdate::ProductSpec::ProductSpec
  - nl::Weave::Profiles::SoftwareUpdate::ProductSpec::ProductSpec
  - ProductSpec::operator ==(const ProductSpec & another) const
  - nl::Weave::Profiles::SoftwareUpdate::ImageQuery::ImageQuery
  - nl::Weave::Profiles::SoftwareUpdate::ImageQuery::init
  - nl::Weave::Profiles::SoftwareUpdate::ImageQuery::pack
  - nl::Weave::Profiles::SoftwareUpdate::ImageQuery::parse
  - ImageQuery::operator ==(const ImageQuery & another) const
  - nl::Weave::Profiles::SoftwareUpdate::integrityLength
  - nl::Weave::Profiles::SoftwareUpdate::IntegritySpec::IntegritySpec
  - nl::Weave::Profiles::SoftwareUpdate::IntegritySpec::init
  - nl::Weave::Profiles::SoftwareUpdate::IntegritySpec::pack
  - nl::Weave::Profiles::SoftwareUpdate::IntegritySpec::parse
  - IntegritySpec::operator ==(const IntegritySpec & another) const
  - nl::Weave::Profiles::SoftwareUpdate::ImageQueryResponse::init
  - nl::Weave::Profiles::SoftwareUpdate::ImageQueryResponse::ImageQueryResponse
  - nl::Weave::Profiles::SoftwareUpdate::ImageQueryResponse::pack
  - nl::Weave::Profiles::SoftwareUpdate::ImageQueryResponse::parse
  - ImageQueryResponse::operator ==(const ImageQueryResponse & another) const
  source_file: /src/openweave-core/src/lib/profiles/software-update/SoftwareUpdateProfile.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/software-update/WeaveImageAnnounceServer.h
- function_names:
  - nl::Weave::Profiles::StatusReporting::StatusReport
  source_file: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.h
- function_names:
  - nl::Weave::Profiles::StatusReporting::StatusReport::StatusReport
  - StatusReport::~StatusReport(void)
  - nl::Weave::Profiles::StatusReporting::StatusReport::init
  - nl::Weave::Profiles::StatusReporting::StatusReport::init
  - nl::Weave::Profiles::StatusReporting::StatusReport::pack
  - nl::Weave::Profiles::StatusReporting::StatusReport::packedLength
  - nl::Weave::Profiles::StatusReporting::StatusReport::parse
  - StatusReport::operator == (const StatusReport &another) const
  - nl::Weave::Profiles::StatusReporting::StatusReport::success
  - nl::Weave::Profiles::StatusReporting::StatusReport::StartMetaData
  - nl::Weave::Profiles::StatusReporting::StatusReport::EndMetaData
  - nl::Weave::Profiles::StatusReporting::StatusReport::AddErrorCode
  source_file: /src/openweave-core/src/lib/profiles/status-report/StatusReportProfile.cpp
- function_names:
  - nl::Weave::Profiles::Security::ParseWeaveIdAttribute
  - nl::Weave::Profiles::Security::ConvertDistinguishedName
  - nl::Weave::Profiles::ConvertValidity
  - nl::Weave::ConvertAuthorityKeyIdentifierExtension
  - nl::ConvertSubjectPublicKeyInfo
  - ASN1_ENTER_ENCAPSULATED
  - ConvertExtension
  - ConvertExtensions
  - ConvertCertificate
  - ASN1_ENTER_ENCAPSULATED
  - WEAVE_ERROR::ConvertX509CertToWeaveCert
  source_file: /src/openweave-core/src/lib/profiles/security/X509ToWeave.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.h
- function_names:
  - nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore::DummyGroupKeyStore
  - nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore::RetrieveGroupKey
  - nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore::StoreGroupKey
  - nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore::DeleteGroupKey
  - nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore::DeleteGroupKeysOfAType
  - nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore::EnumerateGroupKeys
  - nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore::Clear
  - nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore::RetrieveLastUsedEpochKeyId
  - nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore::StoreLastUsedEpochKeyId
  - nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore::GetCurrentUTCTime
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveDummyGroupKeyStore.cpp
- function_names:
  - nl::Weave::Profiles::Security::OIDToWeaveCurveId
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveSecurity.h
- function_names:
  - nl::Weave::Profiles::Security::IsSupportedCurve
  - nl::Weave::Profiles::Security::IsCurveInSet
  - nl::Weave::Profiles::Security::WeaveCurveIdToOID
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveSecurity.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.h
- function_names:
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine
  - nl::Weave::Profiles::Security::CASE::BeginSessionContext::IsBeginSessionRequest
  - nl::Weave::Profiles::Security::CASE::BeginSessionContext::SetIsBeginSessionRequest
  - nl::Weave::Profiles::Security::CASE::BeginSessionContext::IsInitiator
  - nl::Weave::Profiles::Security::CASE::BeginSessionContext::SetIsInitiator
  - nl::Weave::Profiles::Security::CASE::BeginSessionContext::PerformKeyConfirm
  - nl::Weave::Profiles::Security::CASE::BeginSessionContext::SetPerformKeyConfirm
  - nl::Weave::Profiles::Security::CASE::BeginSessionRequestContext::HeadLength
  - nl::Weave::Profiles::Security::CASE::BeginSessionRequestContext::Reset
  - nl::Weave::Profiles::Security::CASE::BeginSessionResponseContext::HeadLength
  - nl::Weave::Profiles::Security::CASE::BeginSessionResponseContext::Reset
  - nl::Weave::Profiles::Security::CASE::ReconfigureContext::Reset
  - nl::Weave::Profiles::Security::CASE::WeaveCASEAuthDelegate::EncodeNodePayload
  - nl::Weave::Profiles::Security::CASE::WeaveCASEAuthDelegate::BeginValidation
  - nl::Weave::Profiles::Security::CASE::WeaveCASEAuthDelegate::OnPeerCertsLoaded
  - nl::Weave::Profiles::Security::CASE::WeaveCASEAuthDelegate::HandleValidationResult
  - nl::Weave::Profiles::Security::CASE::WeaveCASEAuthDelegate::EndValidation
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsUsingConfig1
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetSelectedConfig
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SelectedCurve
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AllowedConfigs
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetAllowedConfigs
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsConfig1Allowed
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsConfig2Allowed
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AllowedCurves
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetAllowedCurves
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsAllowedCurve
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsInitiator
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetIsInitiator
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::PerformingKeyConfirm
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetPerformingKeyConfirm
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::ResponderRequiresKeyConfirm
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetResponderRequiresKeyConfirm
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::HasReconfigured
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetHasReconfigured
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::ConfigHashLength
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::CertType
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetCertType
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::UseKnownECDHKey
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetUseKnownECDHKey
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveCASE.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.h
- function_names:
  - nl::Weave::Profiles::Security::WeaveDN::IsEmpty
  - nl::Weave::Profiles::Security::WeaveDN::Clear
  - nl::Weave::Profiles::Security::CertificateKeyId::IsEmpty
  - nl::Weave::Profiles::Security::CertificateKeyId::Clear
  - nl::Weave::Profiles::Security::WeaveCertificateSet
  - nl::Weave::Profiles::Security::ValidationContext::Reset
  - nl::Weave::Profiles::Security::IsWeaveX509Attr
  - nl::Weave::Profiles::Security::IsWeaveIdX509Attr
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveCert.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/security/ApplicationKeysStructSchema.h
- function_names:
  - nl::Weave::Profiles::Security::WEAVE_ERROR::MakeWeaveProvisioningHash
  - nl::Weave::Profiles::Security::WEAVE_ERROR::MakeDeviceCredentialHash
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveProvHash.cpp
- function_names:
  - nl::Weave::Profiles::Security::PASE::PrintHex
  - nl::Weave::Profiles::Security::PASE::PASEConfig1_JPAKE_P
  - nl::Weave::Profiles::Security::PASE::PASEConfig1_JPAKE_Q
  - nl::Weave::Profiles::Security::PASE::PASEConfig1_JPAKE_G
  - nl::Weave::Profiles::Security::PASE::NewPASEConfig1JPAKECTX
  - nl::Weave::Profiles::Security::PASE::AlignMessagePayload
  - nl::Weave::Profiles::Security::PASE::AlignMessagePayload
  - nl::Weave::Profiles::Security::PASE::PackControlHeader
  - nl::Weave::Profiles::Security::PASE::UnpackControlHeader
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::PackSizeHeader
  - nl::Weave::Profiles::Security::PASE::UnpackSizeHeader
  - nl::Weave::Profiles::Security::PASE::UnpackSizeHeader
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::FormProtocolContextString
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::FormProtocolContextData
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProtocolHash
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::IsAllowedPASEConfig
  - nl::Weave::Profiles::Security::PASE::GetPASEConfigSecurityStrength
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateAltConfigsList
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::FindStrongerAltConfig
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::InitState
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::Init
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::Shutdown
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::Reset
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::IsInitiator
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::IsResponder
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateInitiatorStep1
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateResponderStep1
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessInitiatorStep1
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessResponderStep1
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateResponderStep2
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessResponderStep2
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateInitiatorStep2
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessInitiatorStep2
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateResponderKeyConfirm
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessResponderKeyConfirm
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateResponderReconfigure
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessResponderReconfigure
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GetSessionKey
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep1Data_Config0_TEST_ONLY
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep1Data_Config0_TEST_ONLY
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep2Data_Config0_TEST_ONLY
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep2Data_Config0_TEST_ONLY
  - nl::Weave::Profiles::Security::PASE::BigNumHash
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep1Data_Config1
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep1Data_Config1
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep2Data_Config1
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep2Data_Config1
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep1Data_ConfigEC
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep1Data_ConfigEC
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateStep2Data_ConfigEC
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::ProcessStep2Data_ConfigEC
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::DeriveKeys
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine::GenerateKeyConfirmHashes
  source_file: /src/openweave-core/src/lib/profiles/security/WeavePASEEngine.cpp
- function_names:
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ProposedConfig
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ProposedConfig
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::AllowNestDevelopmentDevices
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::AllowNestDevelopmentDevices
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::AllowSHA1DeviceCerts
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::AllowSHA1DeviceCerts
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveAppGroupGlobalIds.h
- function_names:
  - nl::Weave::Profiles::Security::WeaveSignatureGeneratorBase::GenerateSignature
  - nl::Weave::Profiles::Security::WeaveSignatureGeneratorBase::GenerateSignature
  - nl::Weave::Profiles::Security::WeaveSignatureGeneratorBase::GenerateSignature
  - nl::Weave::Profiles::Security::WeaveSignatureGenerator::GenerateSignature
  - nl::Weave::Profiles::Security::WeaveSignatureGenerator::GenerateSignatureData
  - nl::Weave::Profiles::Security::WEAVE_ERROR::VerifyWeaveSignature
  - nl::Weave::Profiles::Security::WEAVE_ERROR::VerifyWeaveSignature
  - nl::Weave::Profiles::Security::GetWeaveSignatureAlgo
  - nl::Weave::Profiles::Security::GenerateAndEncodeWeaveECDSASignature
  - nl::Weave::Profiles::Security::EncodeWeaveECDSASignature
  - nl::Weave::Profiles::Security::DecodeCopyECDSASignature_DER
  - nl::Weave::Profiles::ConvertECDSASignature_DERToWeave
  - nl::Weave::DecodeWeaveECDSASignature
  - nl::Weave::InsertRelatedCertificatesIntoWeaveSignature
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveSig.cpp
- function_names:
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::Init
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::Shutdown
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::StartCertificateProvisioning
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::GenerateGetCertificateRequest
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::ProcessGetCertificateResponse
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::SendGetCertificateRequest
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleRequestDone
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::DeliverCommunicationError
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleBindingEvent
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleResponse
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleResponseTimeout
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleAckRcvd
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleSendError
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleKeyError
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::HandleConnectionClosed
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTrait.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveDummyGroupKeyStore.h
- function_names:
  - nl::Weave::Profiles::Security::PASE::WeavePASEEngine
  source_file: /src/openweave-core/src/lib/profiles/security/WeavePASE.h
- function_names:
  - nl::Weave::Profiles::Security::IsCertificateExtensionTag
  - nl::Weave::Profiles::Security::DecodeConvertDN
  - nl::Weave::Profiles::Security::DecodeConvertValidity
  - nl::Weave::Profiles::DecodeConvertSubjectPublicKeyInfo
  - DecodeConvertAuthorityKeyIdentifierExtension
  - DecodeConvertSubjectKeyIdentifierExtension
  - DecodeConvertKeyUsageExtension
  - DecodeConvertBasicConstraintsExtension
  - DecodeConvertExtendedKeyUsageExtension
  - DecodeConvertExtension
  - DecodeConvertExtensions
  - DecodeConvertRSASignature
  - DecodeConvertECDSASignature
  - DecodeConvertTBSCert
  - DecodeConvertCert
  - WEAVE_ERROR::ConvertWeaveCertToX509Cert
  - DecodeWeaveCert
  - DecodeWeaveCert
  - DecodeWeaveDN
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveToX509.cpp
- function_names:
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::Init
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::Shutdown
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::Reset
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::IsInitiator
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::IsAllowedConfig
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GenerateAltConfigsList
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::ValidateProtocolConfig
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GenerateKeyExportRequest
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::ProcessKeyExportRequest
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GenerateKeyExportResponse
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::ProcessKeyExportResponse
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GenerateKeyExportReconfigure
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::ProcessKeyExportReconfigure
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::AppendNewECDHKey
  - nl::Weave::Profiles::Security::KeyExport::GenerateSHA256Hash
  - nl::Weave::Profiles::Security::KeyExport::WeaveSignatureGeneratorBase
  - nl::Weave::Profiles::Security::KeyExport::WeaveSignatureGenerator
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::AppendSignature
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::VerifySignature
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::EncryptExportedKey
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::DecryptExportedKey
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::ComputeSharedSecret
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::DeriveKeyEncryptionKey
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::EncryptDecryptKey
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::AuthenticateKey
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetECDHPublicKeyLen
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::GetCurveOID
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.cpp
- function_names:
  - nl::Weave::Profiles::Security::DefaultAlloc
  - nl::Weave::Profiles::Security::DefaultFree
  - nl::Weave::Profiles::Security::WeaveCertificateSet::Init
  - nl::Weave::Profiles::Security::WeaveCertificateSet::WeaveCertificateSet
  - nl::Weave::Profiles::Security::WeaveCertificateSet::Init
  - nl::Weave::Profiles::Security::WeaveCertificateSet::Init
  - nl::Weave::Profiles::Security::WeaveCertificateSet::Release
  - nl::Weave::Profiles::Security::WeaveCertificateSet::Clear
  - nl::Weave::Profiles::Security::WeaveCertificateSet::FindCert
  - nl::Weave::Profiles::Security::WeaveCertificateSet::LoadCert
  - nl::Weave::Profiles::Security::WeaveCertificateSet::LoadCert
  - nl::Weave::Profiles::Security::WeaveCertificateSet::LoadCerts
  - nl::Weave::Profiles::Security::WeaveCertificateSet::LoadCerts
  - nl::Weave::Profiles::Security::WeaveCertificateSet::AddTrustedKey
  - nl::Weave::Profiles::Security::WeaveCertificateSet::SaveCerts
  - nl::Weave::Profiles::Security::WeaveCertificateSet::ValidateCert
  - nl::Weave::Profiles::Security::WeaveCertificateSet::FindValidCert
  - nl::Weave::Profiles::Security::WeaveCertificateSet::GenerateECDSASignature
  - nl::Weave::Profiles::Security::WeaveCertificateSet::VerifyECDSASignature
  - nl::Weave::Profiles::Security::WeaveCertificateSet::ValidateCert
  - nl::Weave::Profiles::Security::WeaveCertificateSet::FindValidCert
  - nl::Weave::Profiles::Security::DetermineCertType
  - nl::Weave::Profiles::Security::WeaveDN::IsEqual
  - nl::Weave::Profiles::Security::CertificateKeyId::IsEqual
  - nl::Weave::Profiles::Security::WEAVE_ERROR::PackCertTime
  - nl::Weave::Profiles::Security::WEAVE_ERROR::UnpackCertTime
  - nl::Weave::Profiles::Security::PackedCertTimeToDate
  - nl::Weave::Profiles::Security::PackedCertDateToTime
  - nl::Weave::Profiles::Security::SecondsSinceEpochToPackedCertTime
  - nl::Weave::Profiles::Security::WEAVE_ERROR::GenerateOperationalDeviceCert
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveCert.cpp
- function_names:
  - nl::Weave::Profiles::Security::LoadAccessTokenCerts
  - nl::Weave::Profiles::Security::LoadAccessTokenCerts
  - nl::Weave::Profiles::Security::CASECertInfoFromAccessToken
  - nl::Weave::Profiles::Security::CASECertInfoFromAccessToken
  - nl::Weave::Profiles::Security::ExtractCertFromAccessToken
  - nl::Weave::Profiles::Security::ExtractPrivateKeyFromAccessToken
  - nl::Weave::Profiles::Security::ExtractPrivateKeyFromAccessToken
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.cpp
- function_names:
  - nl::Weave::Profiles::Security::CASE::PrintHex
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::Init
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::Shutdown
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::Reset
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetAlternateConfigs
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SetAlternateCurves
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::GenerateBeginSessionRequest
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::ProcessBeginSessionRequest
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::GenerateBeginSessionResponse
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::ProcessBeginSessionResponse
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::GenerateInitiatorKeyConfirm
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::ProcessInitiatorKeyConfirm
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::ProcessReconfigure
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::GetSessionKey
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::VerifyProposedConfig
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::VerifyProposedCurve
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendNewECDHKey
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendCertInfo
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendPayload
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::AppendSignature
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::VerifySignature
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::DecodeCertificateInfo
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::DeriveSessionKeys
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::GenerateHash
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::GenerateKeyConfirmHashes
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::SelectedConfig
  - nl::Weave::Profiles::Security::CASE::WeaveCASEEngine::IsAllowedConfig
  - nl::Weave::Profiles::Security::CASE::WeaveCASEAuthDelegate::EncodeNodePayload
  - nl::Weave::Profiles::Security::CASE::WeaveCASEAuthDelegate::OnPeerCertsLoaded
  - nl::Weave::Profiles::Security::CASE::WeaveCASEAuthDelegate::GenerateNodeSignature
  - nl::Weave::Profiles::Security::CASE::EncodeCASECertInfo
  - nl::Weave::Profiles::Security::CASE::EncodeCASECertInfo
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveCASEEngine.cpp
- function_names:
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::GetNodeCertSet
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::ReleaseNodeCertSet
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::BeginCertValidation
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::HandleCertValidationResult
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::EndCertValidation
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExportDelegate::ValidateUnsignedKeyExportMessage
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::State
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::ProtocolConfig
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::KeyId
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::AllowedConfigs
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::SetAllowedConfigs
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::MessageInfo
  - nl::Weave::Profiles::Security::KeyExport::WeaveKeyExport::SignMessages
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveKeyExport.h
- function_names:
  - nl::Weave::Profiles::Security::Indent
  - nl::Weave::Profiles::Security::PrintHexField
  - nl::Weave::Profiles::Security::PrintCertType
  - nl::Weave::Profiles::Security::PrintCert
  - nl::Weave::Profiles::Security::PrintCertValidationResults
  - nl::Weave::Profiles::Security::PrintWeaveDN
  - nl::Weave::Profiles::Security::PrintWeaveDN
  - nl::Weave::Profiles::Security::PrintPackedTime
  - nl::Weave::Profiles::Security::PrintPackedDate
  - nl::Weave::Profiles::Security::DescribeWeaveCertId
  - nl::Weave::Profiles::Security::PrintCertArray
  - nl::Weave::Profiles::Security::PrintECDSASignature
  - nl::Weave::Profiles::Security::PrintCertReference
  - nl::Weave::Profiles::Security::PrintWeaveSignature
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveSecurityDebug.cpp
- function_names:
  - nl::Weave::Profiles::Security::AppKeys::GetAppGroupMasterKeyId
  - nl::Weave::Profiles::Security::AppKeys::LogGroupKeys
  - nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::Init
  - nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::OnEpochKeysChange
  - nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::GetCurrentUTCTime
  - nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::GetCurrentAppKeyId
  - nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::GetGroupKey
  - nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::DeriveFabricOrClientRootKey
  - nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::DeriveIntermediateKey
  - nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase::DeriveApplicationKey
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveAccessToken.h
- function_names:
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::Init
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::Reset
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::GenerateKeyExportRequest
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::GenerateKeyExportRequest
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ProcessKeyExportResponse
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ProcessKeyExportReconfigure
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::GetNodeCertSet
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ReleaseNodeCertSet
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::GenerateNodeSignature
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::BeginCertValidation
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::HandleCertValidationResult
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::EndCertValidation
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ValidateUnsignedKeyExportMessage
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::GetNodeCertSet
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ReleaseNodeCertSet
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::GetNodePrivateKey
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ReleaseNodePrivateKey
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::BeginCertValidation
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::HandleCertValidationResult
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::EndCertValidation
  - nl::Weave::Profiles::Security::KeyExport::WeaveStandAloneKeyExportClient::ValidateUnsignedKeyExportMessage
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportClient.cpp
- function_names:
  - nl::Weave::Profiles::Security::WEAVE_ERROR::EncodeWeaveECPrivateKey
  - nl::Weave::Profiles::Security::WEAVE_ERROR::DecodeWeaveECPrivateKey
  source_file: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.cpp
- function_names:
  - nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceGroupKeyStore::RetrieveGroupKey
  - nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::SimulatedDeviceKeyExportDelegate
  - nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::GetNodeCertSet
  - nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::ReleaseNodeCertSet
  - nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::GenerateNodeSignature
  - nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::BeginCertValidation
  - nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::HandleCertValidationResult
  - nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::EndCertValidation
  - nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::ValidateUnsignedKeyExportMessage
  - nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::GetNodeCertSet
  - nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::ReleaseNodeCertSet
  - nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::GetNodePrivateKey
  - nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::ReleaseNodePrivateKey
  - nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::BeginCertValidation
  - nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::HandleCertValidationResult
  - nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::EndCertValidation
  - nl::Weave::Profiles::Security::KeyExport::SimulatedDeviceKeyExportDelegate::ValidateUnsignedKeyExportMessage
  - nl::Weave::Profiles::Security::KeyExport::SimulateDeviceKeyExport
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveKeyExportTest.cpp
- function_names:
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveTAKE.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/security/WeavePrivateKey.h
- function_names:
  - nl::Weave::Profiles::Security::CASE::BeginSessionRequestContext::EncodeHead
  - nl::Weave::Profiles::Security::CASE::BeginSessionRequestContext::DecodeHead
  - nl::Weave::Profiles::Security::CASE::BeginSessionRequestContext::IsAltConfig
  - nl::Weave::Profiles::Security::CASE::BeginSessionResponseContext::EncodeHead
  - nl::Weave::Profiles::Security::CASE::BeginSessionResponseContext::DecodeHead
  - nl::Weave::Profiles::Security::CASE::ReconfigureContext::Encode
  - nl::Weave::Profiles::Security::CASE::ReconfigureContext::Decode
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveCASEMessages.cpp
- function_names:
  - nl::Weave::Profiles::Security::TranslateOpenSSLError
  - nl::Weave::Profiles::Security::WeaveProvisioningBundle::Verify
  - nl::Weave::Profiles::Security::WeaveProvisioningBundle::Decode
  - nl::Weave::Profiles::Security::WeaveProvisioningBundle::Clear
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveProvBundle.cpp
- function_names:
  - Schema::Weave::Trait::Auth::ApplicationKeysTrait::ApplicationKeysTraitDataSink::ApplicationKeysTraitDataSink
  - Schema::Weave::Trait::Auth::ApplicationKeysTrait::ApplicationKeysTraitDataSink::SetGroupKeyStore
  - Schema::Weave::Trait::Auth::ApplicationKeysTrait::ApplicationKeysTraitDataSink::OnEvent
  - Schema::Weave::Trait::Auth::ApplicationKeysTrait::ApplicationKeysTraitDataSink::SetLeafData
  source_file: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.cpp
- function_names:
  - nl::Weave::Profiles::Security::WeaveSignatureGeneratorBase::WeaveSignatureGeneratorBase
  - nl::Weave::Profiles::Security::WeaveSignatureGenerator::WeaveSignatureGenerator
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveSig.h
- function_names:
  - nl::Weave::Profiles::Security::Passcodes::GeneratePasscodeFingerprint_Config1
  - nl::Weave::Profiles::Security::Passcodes::EncryptPasscode_Config1
  - nl::Weave::Profiles::Security::Passcodes::VerifyPasscodeFingerprint_Config1
  - nl::Weave::Profiles::Security::Passcodes::DecryptPasscode_Config1
  - nl::Weave::Profiles::Security::Passcodes::GeneratePasscodeFingerprint_Config2
  - nl::Weave::Profiles::Security::Passcodes::EncryptPasscode_Config2
  - nl::Weave::Profiles::Security::Passcodes::VerifyPasscodeFingerprint_Config2
  - nl::Weave::Profiles::Security::Passcodes::DecryptPasscode_Config2
  - nl::Weave::Profiles::Security::Passcodes::IsSupportedPasscodeEncryptionConfig
  - nl::Weave::Profiles::Security::Passcodes::GetEncryptedPasscodeConfig
  - nl::Weave::Profiles::Security::Passcodes::GetEncryptedPasscodeKeyId
  - nl::Weave::Profiles::Security::Passcodes::GetEncryptedPasscodeNonce
  - nl::Weave::Profiles::Security::Passcodes::GetEncryptedPasscodeFingerprint
  - nl::Weave::Profiles::Security::Passcodes::EncryptPasscode
  - nl::Weave::Profiles::Security::Passcodes::EncryptPasscode
  - nl::Weave::Profiles::Security::Passcodes::DecryptPasscode
  - nl::Weave::Profiles::Security::Passcodes::DecryptPasscode
  source_file: /src/openweave-core/src/lib/profiles/security/WeavePasscodes.cpp
- function_names:
  - nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveApplicationKeys.h
- function_names:
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::Init
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::Shutdown
  - nl::Weave::Profiles::Security::TAKE::PackControlHeader
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetNumOptionalConfigurations
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::IsEncryptAuthPhase
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::IsEncryptCommPhase
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::IsTimeLimitedIK
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::HasSentChallengerId
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateIdentifyTokenMessage
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::ProcessIdentifyTokenMessage
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateIdentifyTokenResponseMessage
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::ProcessIdentifyTokenResponseMessage
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateTokenReconfigureMessage
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::ProcessTokenReconfigureMessage
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateAuthenticateTokenMessage
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::ProcessAuthenticateTokenMessage
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateAuthenticateTokenResponseMessage
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::ProcessAuthenticateTokenResponseMessage
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateReAuthenticateTokenMessage
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateProtocolEncryptionKey
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::ProcessReAuthenticateTokenMessage
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateReAuthenticateTokenResponseMessage
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::ProcessReAuthenticateTokenResponseMessage
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetSessionKey
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetEncryptionType
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHMACSignature
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateAuthenticationKey
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateHashForAuthenticateTokenResponse
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GenerateSignatureForAuthenticateTokenResponse
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::VerifySignatureForAuthenticateTokenResponse
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::ReadArray
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::WriteArray
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::UseSessionKey
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetCurveLen
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetPrivKeyLen
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetECPointLen
  - nl::Weave::Profiles::Security::TAKE::WeaveTAKEEngine::GetCurveOID
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveTAKEEngine.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/security/ApplicationKeysTraitDataSink.h
- function_names:
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine
  - nl::Weave::Profiles::Security::CertProvisioning::Clear
  - nl::Weave::Profiles::Security::CertProvisioning::Clear
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::WeaveCertProvEngine
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::AbortCertificateProvisioning
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::GetState
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::GetReqType
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::GetBinding
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::SetBinding
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::GetOpAuthDelegate
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::SetOpAuthDelegate
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::GetMfrAttestDelegate
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::SetMfrAttestDelegate
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::GetEventCallback
  - nl::Weave::Profiles::Security::CertProvisioning::WeaveCertProvEngine::SetEventCallback
  source_file: /src/openweave-core/src/lib/profiles/security/WeaveCertProvisioning.h
- function_names:
  - nl::Weave::Profiles::ServiceProvisioning::RegisterServicePairAccountMessage
  - nl::Weave::Profiles::ServiceProvisioning::UpdateServiceMessage
  - nl::Weave::Profiles::ServiceProvisioning::PairDeviceToAccountMessage
  - nl::Weave::Profiles::ServiceProvisioning::IFJServiceFabricJoinMessage
  - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer
  source_file: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.h
- function_names:
  - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::ServiceProvisioningServer
  - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::Init
  - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::Shutdown
  - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::SetDelegate
  - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::GetDelegate
  - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::SendSuccessResponse
  - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::SendStatusReport
  - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::SendPairDeviceToAccountRequest
  - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::SendPairDeviceToAccountRequest
  - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::SendIFJServiceFabricJoinRequest
  - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::HandleClientRequest
  - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::HandleServerResponse
  - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::HandleServerResponseTimeout
  - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::HandleServerConnectionClosed
  - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::HandleServerKeyError
  - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::HandleServerSendError
  - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::HandleServiceProvisioningOpResult
  - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningServer::IsValidServiceConfig
  - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningDelegate::EnforceAccessControl
  - nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningDelegate::IsPairedToAccount
  source_file: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioningServer.cpp
- function_names:
  - nl::Weave::Profiles::ServiceProvisioning::RegisterServicePairAccountMessage::Encode
  - nl::Weave::Profiles::ServiceProvisioning::RegisterServicePairAccountMessage::Decode
  - nl::Weave::Profiles::ServiceProvisioning::UpdateServiceMessage::Encode
  - nl::Weave::Profiles::ServiceProvisioning::UpdateServiceMessage::Decode
  - nl::Weave::Profiles::ServiceProvisioning::PairDeviceToAccountMessage::Encode
  - nl::Weave::Profiles::ServiceProvisioning::PairDeviceToAccountMessage::Decode
  - nl::Weave::Profiles::ServiceProvisioning::IFJServiceFabricJoinMessage::Encode
  - nl::Weave::Profiles::ServiceProvisioning::IFJServiceFabricJoinMessage::Decode
  - nl::Weave::Profiles::ServiceProvisioning::WEAVE_ERROR::EncodeServiceConfig
  source_file: /src/openweave-core/src/lib/profiles/service-provisioning/ServiceProvisioning.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BDXManagedNamespace.hpp
- function_names:
  - nl::Weave::Profiles::SendInit::SendInit
  - nl::Weave::Profiles::SendInit::init
  - nl::Weave::Profiles::SendInit::init
  - nl::Weave::Profiles::SendInit::pack
  - nl::Weave::Profiles::SendInit::packedLength
  - nl::Weave::Profiles::SendInit::parse
  - SendInit::operator == (const SendInit &another) const
  - nl::Weave::Profiles::SendAccept::SendAccept
  - nl::Weave::Profiles::SendAccept::init
  - nl::Weave::Profiles::SendAccept::pack
  - nl::Weave::Profiles::SendAccept::packedLength
  - nl::Weave::Profiles::SendAccept::parse
  - SendAccept::operator== (const SendAccept &another) const
  - nl::Weave::Profiles::ReceiveInit::ReceiveInit
  - nl::Weave::Profiles::ReceiveAccept::ReceiveAccept
  - nl::Weave::Profiles::ReceiveAccept::init
  - nl::Weave::Profiles::ReceiveAccept::init
  - nl::Weave::Profiles::ReceiveAccept::pack
  - nl::Weave::Profiles::ReceiveAccept::packedLength
  - nl::Weave::Profiles::ReceiveAccept::parse
  - ReceiveAccept::operator== (const ReceiveAccept &another) const
  - nl::Weave::Profiles::BlockQuery::BlockQuery
  - nl::Weave::Profiles::BlockQuery::init
  - nl::Weave::Profiles::BlockQuery::pack
  - nl::Weave::Profiles::BlockQuery::packedLength
  - nl::Weave::Profiles::BlockQuery::parse
  - BlockQuery::operator== (const BlockQuery &another) const
  - nl::Weave::Profiles::BlockSend::BlockSend
  - nl::Weave::Profiles::BlockSend::init
  - nl::Weave::Profiles::BlockSend::pack
  - nl::Weave::Profiles::BlockSend::packedLength
  - nl::Weave::Profiles::BlockSend::parse
  - BlockSend::operator== (const BlockSend &another) const
  - nl::Weave::Profiles::WeaveBdxClient::WeaveBdxClient
  - nl::Weave::Profiles::WeaveBdxClient::initClient
  - nl::Weave::Profiles::WeaveBdxClient::shutdownClient
  - nl::Weave::Profiles::WeaveBdxClient::shutdownClient
  - nl::Weave::Profiles::WeaveBdxClient::initBdxReceive
  - nl::Weave::Profiles::WeaveBdxClient::initBdxSend
  - nl::Weave::Profiles::sendBlockQuery
  - nl::Weave::Profiles::sendBlockEOFAck
  - nl::Weave::Profiles::sendBlock
  - nl::Weave::Profiles::WeaveBdxClient::handleResponse
  - nl::Weave::Profiles::WeaveBdxClient::handleConnectionClosed
  - nl::Weave::Profiles::WeaveBdxClient::DispatchReceiveAccept
  - nl::Weave::Profiles::WeaveBdxClient::DispatchSendAccept
  - nl::Weave::Profiles::WeaveBdxClient::DispatchRejectHandler
  - nl::Weave::Profiles::WeaveBdxClient::DispatchPutBlockHandler
  - nl::Weave::Profiles::WeaveBdxClient::DispatchGetBlockHandler
  - nl::Weave::Profiles::WeaveBdxClient::DispatchXferErrorHandler
  - nl::Weave::Profiles::WeaveBdxClient::DispatchXferDoneHandler
  - nl::Weave::Profiles::WeaveBdxClient::DispatchErrorHandler
  source_file: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.cpp
- function_names:
  - nl::Weave::Profiles::SendInit
  - nl::Weave::Profiles::ReceiveInit
  - nl::Weave::Profiles::BlockQuery
  - nl::Weave::Profiles::WeaveBdxClient
  source_file: /src/openweave-core/src/lib/profiles/bulk-data-transfer/BulkDataTransfer.h
- function_names:
  - nl::Weave::Profiles::WeaveBdxDelegate::UploadInProgress
  source_file: /src/openweave-core/src/lib/profiles/bulk-data-transfer/WeaveBdxDelegate.h
- function_names:
  - nl::Weave::Profiles::BdxNode::BdxNode
  - nl::Weave::Profiles::BdxNode::Init
  - nl::Weave::Profiles::BdxNode::Shutdown
  - nl::Weave::Profiles::BdxNode::AllocTransfer
  - nl::Weave::Profiles::BdxNode::NewTransfer
  - nl::Weave::Profiles::BdxNode::NewTransfer
  - nl::Weave::Profiles::BdxNode::NewTransfer
  - nl::Weave::Profiles::BdxNode::InitTransfer
  - nl::Weave::Profiles::BdxNode::ShutdownTransfer
  - nl::Weave::Profiles::BdxNode::AllowBdxTransferToRun
  - nl::Weave::Profiles::BdxNode::CanBdxTransferRun
  - nl::Weave::Profiles::BdxNode::IsInitialized
  - nl::Weave::Profiles::BdxNode::InitBdxReceive
  - nl::Weave::Profiles::BdxNode::InitBdxSend
  - nl::Weave::Profiles::BdxNode::InitBdxSend
  - nl::Weave::Profiles::BdxNode::AwaitBdxReceiveInit
  - nl::Weave::Profiles::BdxNode::AwaitBdxSendInit
  - nl::Weave::Profiles::BdxNode::HandleReceiveInit
  - nl::Weave::Profiles::BdxNode::HandleSendInit
  - nl::Weave::Profiles::BdxNode::SendReject
  - nl::Weave::Profiles::BdxNode::SendReceiveAccept
  - nl::Weave::Profiles::BdxNode::SendSendAccept
  source_file: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXConstants.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXManagedNamespace.hpp
- function_names:
  - nl::Weave::Profiles::BulkDataTransfer::BdxDelegate::UploadInProgress
  source_file: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXDelegate.h
- function_names:
  - nl::Weave::Profiles::GetBDXAckFlag
  source_file: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BulkDataTransfer.h
- function_names:
  - nl::Weave::Profiles::BdxNode
  source_file: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXNode.h
- function_names:
  - nl::Weave::Profiles::SendInit::SendInit
  - nl::Weave::Profiles::SendInit::init
  - nl::Weave::Profiles::SendInit::init
  - nl::Weave::Profiles::SendInit::init
  - nl::Weave::Profiles::SendInit::init
  - nl::Weave::Profiles::SendInit::pack
  - nl::Weave::Profiles::SendInit::GetWrittenMetaDataCallbackLength
  - nl::Weave::Profiles::SendInit::packedLength
  - nl::Weave::Profiles::SendInit::parse
  - SendInit::operator == (const SendInit &another) const
  - nl::Weave::Profiles::SendAccept::SendAccept
  - nl::Weave::Profiles::SendAccept::init
  - nl::Weave::Profiles::SendAccept::pack
  - nl::Weave::Profiles::SendAccept::packedLength
  - nl::Weave::Profiles::SendAccept::parse
  - SendAccept::operator == (const SendAccept &another) const
  - nl::Weave::Profiles::ReceiveInit::ReceiveInit
  - nl::Weave::Profiles::ReceiveAccept::ReceiveAccept
  - nl::Weave::Profiles::ReceiveAccept::init
  - nl::Weave::Profiles::ReceiveAccept::init
  - nl::Weave::Profiles::ReceiveAccept::pack
  - nl::Weave::Profiles::ReceiveAccept::packedLength
  - nl::Weave::Profiles::ReceiveAccept::parse
  - ReceiveAccept::operator == (const ReceiveAccept &another) const
  - nl::Weave::Profiles::BlockQuery::BlockQuery
  - nl::Weave::Profiles::BlockQuery::init
  - nl::Weave::Profiles::BlockQuery::pack
  - nl::Weave::Profiles::BlockQuery::packedLength
  - nl::Weave::Profiles::BlockQuery::parse
  - BlockQuery::operator == (const BlockQuery &another) const
  - nl::Weave::Profiles::BlockSend::BlockSend
  - nl::Weave::Profiles::BlockSend::init
  - nl::Weave::Profiles::BlockSend::packedLength
  - nl::Weave::Profiles::BlockSend::parse
  - BlockSend::operator == (const BlockSend &another) const
  - nl::Weave::Profiles::BlockQueryV1::BlockQueryV1
  - nl::Weave::Profiles::BlockQueryV1::init
  - nl::Weave::Profiles::BlockQueryV1::pack
  - nl::Weave::Profiles::BlockQueryV1::packedLength
  - nl::Weave::Profiles::BlockQueryV1::parse
  - BlockQueryV1::operator == (const BlockQueryV1 &another) const
  - nl::Weave::Profiles::BlockSendV1::BlockSendV1
  - nl::Weave::Profiles::BlockSendV1::init
  - nl::Weave::Profiles::BlockSendV1::packedLength
  - nl::Weave::Profiles::BlockSendV1::parse
  - BlockSendV1::operator == (const BlockSendV1 &another) const
  source_file: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.cpp
- function_names:
  - nl::Weave::Profiles::SendInit
  - nl::Weave::Profiles::ReceiveInit
  - nl::Weave::Profiles::BlockQuery
  - nl::Weave::Profiles::BlockQueryV1
  source_file: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXMessages.h
- function_names:
  - nl::Weave::Profiles::BDXTransfer::Shutdown
  - nl::Weave::Profiles::BDXTransfer::Reset
  - nl::Weave::Profiles::BDXTransfer::IsAsync
  - nl::Weave::Profiles::BDXTransfer::IsDriver
  - nl::Weave::Profiles::BDXTransfer::SetHandlers
  - nl::Weave::Profiles::BDXTransfer::GetDefaultFlags
  - nl::Weave::Profiles::BDXTransfer::DispatchReceiveAccept
  - nl::Weave::Profiles::BDXTransfer::DispatchSendAccept
  - nl::Weave::Profiles::BDXTransfer::DispatchRejectHandler
  - nl::Weave::Profiles::BDXTransfer::DispatchPutBlockHandler
  - nl::Weave::Profiles::BDXTransfer::DispatchGetBlockHandler
  - nl::Weave::Profiles::BDXTransfer::DispatchErrorHandler
  - nl::Weave::Profiles::BDXTransfer::DispatchXferErrorHandler
  - nl::Weave::Profiles::BDXTransfer::DispatchXferDoneHandler
  source_file: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.cpp
- function_names:
  - nl::Weave::Profiles::BdxProtocol::InitBdxReceive
  - nl::Weave::Profiles::BdxProtocol::InitBdxSend
  - nl::Weave::Profiles::BdxProtocol::InitBdxSend
  - nl::Weave::Profiles::BdxProtocol::SendBadBlockCounterStatusReport
  - nl::Weave::Profiles::BdxProtocol::SendBlockQuery
  - nl::Weave::Profiles::BdxProtocol::SendBlockQueryV1
  - nl::Weave::Profiles::BdxProtocol::SendBlockAck
  - nl::Weave::Profiles::BdxProtocol::SendBlockAckV1
  - nl::Weave::Profiles::BdxProtocol::SendBlockEOFAck
  - nl::Weave::Profiles::BdxProtocol::SendBlockEOFAckV1
  - nl::Weave::Profiles::BdxProtocol::SendNextBlock
  - nl::Weave::Profiles::BdxProtocol::SendNextBlockV1
  - nl::Weave::Profiles::BdxProtocol::HandleResponse
  - nl::Weave::Profiles::BdxProtocol::HandleConnectionClosed
  - nl::Weave::Profiles::BdxProtocol::HandleResponseTimeout
  - nl::Weave::Profiles::BdxProtocol::HandleKeyError
  - nl::Weave::Profiles::BdxProtocol::HandleSendError
  - nl::Weave::Profiles::BdxProtocol::SendTransferError
  - nl::Weave::Profiles::BdxProtocol::SendStatusReport
  - nl::Weave::Profiles::BdxProtocol::HandleResponseTransmit
  - nl::Weave::Profiles::BdxProtocol::HandleResponseReceive
  - nl::Weave::Profiles::BdxProtocol::HandleResponseNotAccepted
  source_file: /src/openweave-core/src/lib/profiles/bulk-data-transfer/Development/BDXProtocol.cpp
- function_names:
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer
  source_file: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.h
- function_names:
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::DeviceControlServer
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::Init
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::Shutdown
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::SetDelegate
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::IsRemotePassiveRendezvousInProgress
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendSuccessResponse
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::SendStatusReport
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::CloseClientOp
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::SystemTestTimeout
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleClientRequest
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleResetConfigConnectionClose
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::SetConnectionMonitor
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::StartMonitorTimer
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::CancelMonitorTimer
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleMonitorTimer
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleMonitorResponse
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleMonitorConnectionClose
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::CloseRemotePassiveRendezvous
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleRemotePassiveRendezvousConnectionClosed
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::CompleteRemotePassiveRendezvous
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleResetConfig
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleArmFailSafe
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleDisarmFailSafe
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleEnableConnectionMonitor
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleDisableConnectionMonitor
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleRemotePassiveRendezvous
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleStartSystemTest
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleStopSystemTest
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleLookingToRendezvousMessage
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleConnectionReceived
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleLookingToRendezvousClosed
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleLookingToRendezvousTimeout
  - nl::Weave::Profiles::DeviceControl::SendLookingToRendezvous
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleUnsecuredConnectionCallbackRemoved
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleRemotePassiveRendezvousTimeout
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::ArmRemotePassiveRendezvousTimer
  - nl::Weave::Profiles::DeviceControl::DeviceControlServer::HandleTunnelShutdown
  - nl::Weave::Profiles::DeviceControl::DeviceControlDelegate::EnforceAccessControl
  - nl::Weave::Profiles::DeviceControl::DeviceControlDelegate::IsPairedToAccount
  source_file: /src/openweave-core/src/lib/profiles/device-control/DeviceControl.cpp
- function_names:
  - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor
  - nl::Weave::Profiles::DeviceDescription::DeviceDescriptionServer
  - nl::Weave::Profiles::DeviceDescription::IdentifyDeviceCriteria
  - nl::Weave::Profiles::DeviceDescription::IdentifyRequestMessage
  - nl::Weave::Profiles::DeviceDescription::IdentifyResponseMessage
  source_file: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.h
- function_names:
  - nl::Weave::Profiles::DeviceDescription::DeviceDescriptionClient::DeviceDescriptionClient
  - nl::Weave::Profiles::DeviceDescription::DeviceDescriptionClient::Init
  - nl::Weave::Profiles::DeviceDescription::DeviceDescriptionClient::Shutdown
  - nl::Weave::Profiles::DeviceDescription::DeviceDescriptionClient::SendIdentifyRequest
  - nl::Weave::Profiles::DeviceDescription::DeviceDescriptionClient::SendIdentifyRequest
  - nl::Weave::Profiles::DeviceDescription::DeviceDescriptionClient::CancelExchange
  - nl::Weave::Profiles::DeviceDescription::DeviceDescriptionClient::HandleResponse
  source_file: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionClient.cpp
- function_names:
  - nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::TextDescriptorWriter
  - nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::WriteHex
  - nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::WriteHex
  - nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::WriteString
  - nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::WriteDate
  - nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::WriteVersion
  - nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::Finalize
  - nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::GetLengthWritten
  - nl::Weave::Profiles::DeviceDescription::TextDescriptorWriter::HexDigit
  - nl::Weave::Profiles::DeviceDescription::TextDescriptorReader::TextDescriptorReader
  - nl::Weave::Profiles::DeviceDescription::TextDescriptorReader::Next
  - nl::Weave::Profiles::DeviceDescription::TextDescriptorReader::ReadString
  - nl::Weave::Profiles::DeviceDescription::TextDescriptorReader::ReadHex
  - nl::Weave::Profiles::DeviceDescription::TextDescriptorReader::ReadHex
  - nl::Weave::Profiles::DeviceDescription::TextDescriptorReader::ReadDate
  - nl::Weave::Profiles::DeviceDescription::TextDescriptorReader::HexDigitValue
  - nl::Weave::Profiles::DeviceDescription::TextDescriptorReader::DecimalDigitPairValue
  - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::WeaveDeviceDescriptor
  - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::Clear
  - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeText
  - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeTLV
  - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeTLV
  - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::Decode
  - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeText
  - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeTLV
  - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeTLV
  - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::EncodeManufacturingDate
  - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::DecodeManufacturingDate
  - nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::IsZeroBytes
  - nl::Weave::Profiles::DeviceDescription::IdentifyRequestMessage::Encode
  - nl::Weave::Profiles::DeviceDescription::IdentifyRequestMessage::Decode
  - nl::Weave::Profiles::DeviceDescription::IdentifyResponseMessage::Encode
  - nl::Weave::Profiles::DeviceDescription::IdentifyResponseMessage::Decode
  - nl::Weave::Profiles::DeviceDescription::IdentifyDeviceCriteria::IdentifyDeviceCriteria
  - nl::Weave::Profiles::DeviceDescription::IdentifyDeviceCriteria::Reset
  - nl::Weave::Profiles::DeviceDescription::MatchTargetFabricId
  source_file: /src/openweave-core/src/lib/profiles/device-description/DeviceDescription.cpp
- function_names:
  - nl::Weave::Profiles::DeviceDescription::DeviceDescriptionServer::DeviceDescriptionServer
  - nl::Weave::Profiles::DeviceDescription::DeviceDescriptionServer::Init
  - nl::Weave::Profiles::DeviceDescription::DeviceDescriptionServer::Shutdown
  - nl::Weave::Profiles::DeviceDescription::DeviceDescriptionServer::HandleRequest
  source_file: /src/openweave-core/src/lib/profiles/device-description/DeviceDescriptionServer.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/echo/WeaveEcho.h
- function_names:
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient
  - nl::Weave::Profiles::Echo_Next::Clear
  - nl::Weave::Profiles::Echo_Next::Clear
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::WeaveEchoClient
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::GetState
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::RequestInProgress
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::IsSendRrepeating
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::GetBinding
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::GetEventCallback
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::SetEventCallback
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::GetFlag
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::SetFlag
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::SetFlag
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::ClearFlag
  source_file: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.h
- function_names:
  - nl::Weave::Profiles::Echo_Next::WeaveEchoServer
  - nl::Weave::Profiles::Echo_Next::Clear
  - nl::Weave::Profiles::Echo_Next::Clear
  - nl::Weave::Profiles::Echo_Next::WeaveEchoServer::GetEventCallback
  - nl::Weave::Profiles::Echo_Next::WeaveEchoServer::SetEventCallback
  source_file: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.h
- function_names:
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::Init
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::Shutdown
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::Send
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::Send
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::SendRepeating
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::Stop
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::DefaultEventHandler
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::DoSend
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::IsRequestDone
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::HandleRequestDone
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::ClearRequestState
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::ArmSendTimer
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::CancelSendTimer
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::DeliverCommunicationError
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::HandleBindingEvent
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::HandleResponse
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::HandleResponseTimeout
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::HandleAckRcvd
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::HandleSendError
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::HandleKeyError
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::HandleConnectionClosed
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::HandleSendTimerExpired
  - nl::Weave::Profiles::Echo_Next::WeaveEchoClient::IsMultiResponseAddress
  source_file: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoClient.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEcho.h
- function_names:
  - nl::Weave::Profiles::Echo_Next::WeaveEchoServer::WeaveEchoServer
  - nl::Weave::Profiles::Echo_Next::WeaveEchoServer::Init
  - nl::Weave::Profiles::Echo_Next::WeaveEchoServer::Shutdown
  - nl::Weave::Profiles::Echo_Next::WeaveEchoServer::DefaultEventHandler
  - nl::Weave::Profiles::Echo_Next::WeaveEchoServer::Init
  - nl::Weave::Profiles::Echo_Next::WeaveEchoServer::HandleEchoRequest
  - nl::Weave::Profiles::Echo_Next::WeaveEchoServer::SendEchoResponse
  source_file: /src/openweave-core/src/lib/profiles/echo/Next/WeaveEchoServer.cpp
- function_names:
  - nl::Weave::Profiles::WeaveEchoClient::WeaveEchoClient
  - nl::Weave::Profiles::WeaveEchoClient::Init
  - nl::Weave::Profiles::WeaveEchoClient::Shutdown
  - nl::Weave::Profiles::WeaveEchoClient::SendEchoRequest
  - nl::Weave::Profiles::WeaveEchoClient::SendEchoRequest
  - nl::Weave::Profiles::WeaveEchoClient::SendEchoRequest
  - nl::Weave::Profiles::WeaveEchoClient::SendEchoRequest
  - nl::Weave::Profiles::WeaveEchoClient::HandleResponse
  - nl::Weave::Profiles::WeaveEchoClient::HandleConnectionClosed
  - nl::Weave::Profiles::WeaveEchoClient::HandleSendError
  - nl::Weave::Profiles::WeaveEchoClient::HandleKeyError
  - nl::Weave::Profiles::WeaveEchoClient::HandleError
  - nl::Weave::Profiles::WeaveEchoClient::HandleAckRcvd
  - nl::Weave::Profiles::WeaveEchoClient::SetRequestAck
  - nl::Weave::Profiles::WeaveEchoClient::SetWRMPACKDelay
  - nl::Weave::Profiles::WeaveEchoClient::SetWRMPRetransInterval
  - nl::Weave::Profiles::WeaveEchoClient::SetWRMPRetransCount
  source_file: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoClient.cpp
- function_names:
  - nl::Weave::Profiles::WeaveEchoClient
  - nl::Weave::Profiles::WeaveEchoServer
  source_file: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEcho.h
- function_names:
  - nl::Weave::Profiles::WeaveEchoServer::WeaveEchoServer
  - nl::Weave::Profiles::WeaveEchoServer::Init
  - nl::Weave::Profiles::WeaveEchoServer::Shutdown
  - nl::Weave::Profiles::WeaveEchoServer::HandleEchoRequest
  source_file: /src/openweave-core/src/lib/profiles/echo/Current/WeaveEchoServer.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/locale/LocaleTags.hpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/locale/LocaleStatus.hpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/locale/LocaleProfile.hpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/common/CommonProfile.h
- function_names:
  - nl::Weave::Profiles::RetainedPacketBuffer
  - nl::Weave::Profiles::RetainedPacketBuffer
  - nl::Weave::Profiles::RetainedPacketBuffer
  - nl::Weave::Profiles::RetainedPacketBuffer
  source_file: /src/openweave-core/src/lib/profiles/common/WeaveMessage.h
- function_names:
  - MessageIterator::MessageIterator
  - MessageIterator::readByte
  - MessageIterator::read16
  - MessageIterator::read32
  - MessageIterator::read64
  - MessageIterator::readString
  - MessageIterator::readBytes
  - MessageIterator::writeByte
  - MessageIterator::write16
  - MessageIterator::write32
  - MessageIterator::write64
  - MessageIterator::writeString
  - MessageIterator::writeBytes
  - '& MessageIterator::operator ++(void)'
  - '& MessageIterator::operator +(uint16_t inc)'
  - '& MessageIterator::operator -(uint16_t dec)'
  - MessageIterator::operator==(const MessageIterator &aMessageIterator)
  - MessageIterator::operator!=(const MessageIterator &aMessageIterator)
  - '& MessageIterator::operator *(void)'
  - MessageIterator::append
  - MessageIterator::hasData
  - MessageIterator::hasRoom
  - MessageIterator::finishWriting
  - ReferencedString::ReferencedString
  - ReferencedString::init
  - ReferencedString::init
  - ReferencedString::init
  - ReferencedString::init
  - ReferencedString::pack
  - ReferencedString::parse
  - ReferencedString::operator== (const ReferencedString &aReferencedString) const
  - ReferencedString::printString
  - ReferencedTLVData::ReferencedTLVData
  - ReferencedTLVData::init
  - ReferencedTLVData::init
  - ReferencedTLVData::init
  - ReferencedTLVData::init
  - ReferencedTLVData::free
  - ReferencedTLVData::isFree
  - ReferencedTLVData::pack
  - ReferencedTLVData::parse
  - ReferencedTLVData::operator== (const ReferencedTLVData &another) const
  source_file: /src/openweave-core/src/lib/profiles/common/WeaveMessage.cpp
- function_names:
  - nl::Weave::Profiles::RetainedPacketBuffer::RetainedPacketBuffer
  - nl::Weave::Profiles::RetainedPacketBuffer::RetainedPacketBuffer
  - RetainedPacketBuffer::~RetainedPacketBuffer(void)
  - '&RetainedPacketBuffer::operator =(const RetainedPacketBuffer &aRetainedPacketBuffer)'
  - nl::Weave::Profiles::RetainedPacketBuffer::IsRetaining
  - nl::Weave::Profiles::RetainedPacketBuffer::Retain
  - nl::Weave::Profiles::RetainedPacketBuffer::Release
  source_file: /src/openweave-core/src/lib/profiles/common/RetainedPacketBuffer.cpp
- function_names:
  - nl::Weave::Profiles::TokenPairing::TokenPairingServer::TokenPairingServer
  - nl::Weave::Profiles::TokenPairing::TokenPairingServer::Init
  - nl::Weave::Profiles::TokenPairing::TokenPairingServer::Shutdown
  - nl::Weave::Profiles::TokenPairing::TokenPairingServer::SetDelegate
  - nl::Weave::Profiles::TokenPairing::TokenPairingServer::SendStatusReport
  - nl::Weave::Profiles::TokenPairing::TokenPairingServer::SendTokenCertificateResponse
  - nl::Weave::Profiles::TokenPairing::TokenPairingServer::SendTokenPairedResponse
  - nl::Weave::Profiles::TokenPairing::TokenPairingServer::CloseClientOp
  - nl::Weave::Profiles::TokenPairing::TokenPairingServer::HandleClientRequest
  - nl::Weave::Profiles::TokenPairing::TokenPairingDelegate::EnforceAccessControl
  source_file: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.cpp
- function_names:
  - nl::Weave::Profiles::TokenPairing::TokenPairingServer
  source_file: /src/openweave-core/src/lib/profiles/token-pairing/TokenPairing.h
- function_names:
  - WeaveTunnelConnectionMgr::WeaveTunnelConnectionMgr
  - WeaveTunnelConnectionMgr::Init
  - WeaveTunnelConnectionMgr::Shutdown
  - WeaveTunnelConnectionMgr::SetInterfaceName
  - WeaveTunnelConnectionMgr::SetInterfaceType
  - WeaveTunnelConnectionMgr::ConfigureConnTimeout
  - WeaveTunnelConnectionMgr::ConfigureAndEnableTCPKeepAlive
  - WeaveTunnelConnectionMgr::ConfigureTunnelLivenessInterval
  - WeaveTunnelConnectionMgr::SetCallbacksForPersistedTunnelConnection
  - WeaveTunnelConnectionMgr::AllocateAndPrepTunnelConnection
  - WeaveTunnelConnectionMgr::SetConnectionRepairInfoCallback
  - WeaveTunnelConnectionMgr::AttemptRepairTunnelConnection
  - WeaveTunnelConnectionMgr::TryConnectingNow
  - WeaveTunnelConnectionMgr::DecideOnReconnect
  - WeaveTunnelConnectionMgr::ServiceConnectTimeout
  - WeaveTunnelConnectionMgr::ResetCacheAndScheduleConnect
  - WeaveTunnelConnectionMgr::ScheduleConnect
  - WeaveTunnelConnectionMgr::CancelDelayedReconnect
  - WeaveTunnelConnectionMgr::StartServiceTunnelConn
  - WeaveTunnelConnectionMgr::StopServiceTunnelConn
  - WeaveTunnelConnectionMgr::StopAndReconnectTunnelConn
  - WeaveTunnelConnectionMgr::ServiceTunnelClose
  - WeaveTunnelConnectionMgr::GetTunnelConnection
  - WeaveTunnelConnectionMgr::RecvdFromService
  - WeaveTunnelConnectionMgr::ServiceMgrStatusHandler
  - WeaveTunnelConnectionMgr::HandleTCPSendIdleChanged
  - WeaveTunnelConnectionMgr::HandleServiceConnectionComplete
  - WeaveTunnelConnectionMgr::HandleServiceConnectionClosed
  - WeaveTunnelConnectionMgr::ReleaseResourcesAndStopTunnelConn
  - WeaveTunnelConnectionMgr::AttemptReconnect
  - WeaveTunnelConnectionMgr::ResetReconnectBackoff
  - WeaveTunnelConnectionMgr::TunnelLivenessTimeout
  - WeaveTunnelConnectionMgr::StartLivenessTimer
  - WeaveTunnelConnectionMgr::StopLivenessTimer
  - WeaveTunnelConnectionMgr::RestartLivenessTimer
  - WeaveTunnelConnectionMgr::OnlineCheckTimeout
  - WeaveTunnelConnectionMgr::SetOnlineCheckIntervalFast
  - WeaveTunnelConnectionMgr::StartOnlineCheck
  - WeaveTunnelConnectionMgr::StopOnlineCheck
  - WeaveTunnelConnectionMgr::ReStartOnlineCheck
  - WeaveTunnelConnectionMgr::HandleOnlineCheckResult
  - WeaveTunnelConnectionMgr::DefaultReconnectPolicyCallback
  - ReconnectParam::PopulateReconnectParam
  source_file: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.h
- function_names:
  - WeaveTunnelHeader::EncodeTunnelHeader
  - WeaveTunnelHeader::DecodeTunnelHeader
  - WeaveTunnelRoute::EncodeFabricTunnelRoutes
  - WeaveTunnelRoute::DecodeFabricTunnelRoutes
  source_file: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelCommon.cpp
- function_names:
  - nl::Weave::Profiles::WeaveTunnel::WeaveTunnelConnectionMgr
  source_file: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelConnectionMgr.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.h
- function_names:
  - WeaveTunnelAgent::WeaveTunnelAgent
  - WeaveTunnelAgent::Init
  - WeaveTunnelAgent::Init
  - WeaveTunnelAgent::ConfigureAndInit
  - WeaveTunnelAgent::SetTunnelConnectionRepairInfoCallback
  - WeaveTunnelAgent::SetAuthMode
  - WeaveTunnelAgent::SetDestination
  - WeaveTunnelAgent::SetTunnelingDeviceRole
  - WeaveTunnelAgent::SetPrimaryTunnelInterface
  - WeaveTunnelAgent::SetPrimaryTunnelInterfaceType
  - WeaveTunnelAgent::SetBackupTunnelInterface
  - WeaveTunnelAgent::SetBackupTunnelInterfaceType
  - WeaveTunnelAgent::GetWeaveTunnelAgentState
  - WeaveTunnelAgent::GetPrimaryTunnelConnection
  - WeaveTunnelAgent::SetCallbacksForPersistedTunnelConnection
  - WeaveTunnelAgent::Shutdown
  - WeaveTunnelAgent::ResetPrimaryReconnectBackoff
  - WeaveTunnelAgent::ResetBackupReconnectBackoff
  - WeaveTunnelAgent::ConfigurePrimaryTunnelTimeout
  - WeaveTunnelAgent::ConfigureAndEnablePrimaryTunnelTCPKeepAlive
  - WeaveTunnelAgent::ConfigurePrimaryTunnelLivenessInterval
  - WeaveTunnelAgent::IsPrimaryTunnelEnabled
  - WeaveTunnelAgent::EnablePrimaryTunnel
  - WeaveTunnelAgent::DisablePrimaryTunnel
  - WeaveTunnelAgent::IsPrimaryTunnelRoutingRestricted
  - WeaveTunnelAgent::IsBackupTunnelEnabled
  - WeaveTunnelAgent::EnableBackupTunnel
  - WeaveTunnelAgent::DisableBackupTunnel
  - WeaveTunnelAgent::StartPrimaryTunnel
  - WeaveTunnelAgent::StopPrimaryTunnel
  - WeaveTunnelAgent::StartBackupTunnel
  - WeaveTunnelAgent::StopBackupTunnel
  - WeaveTunnelAgent::IsBackupTunnelRoutingRestricted
  - WeaveTunnelAgent::ConfigureBackupTunnelTimeout
  - WeaveTunnelAgent::ConfigureAndEnableBackupTunnelTCPKeepAlive
  - WeaveTunnelAgent::ConfigureBackupTunnelLivenessInterval
  - WeaveTunnelAgent::StartServiceTunnel
  - WeaveTunnelAgent::StartServiceTunnel
  - WeaveTunnelAgent::StopServiceTunnel
  - WeaveTunnelAgent::StopServiceTunnel
  - WeaveTunnelAgent::IsTunnelRoutingRestricted
  - WeaveTunnelAgent::GetWeaveTunnelStatistics
  - WeaveTunnelAgent::SetState
  - WeaveTunnelAgent::ParseDestinationIPAddress
  - WeaveTunnelAgent::Checksum
  - WeaveTunnelAgent::ComputeUDPChecksumForIPv6Pkt
  - WeaveTunnelAgent::ReplaceDestSubnetInAddress
  - WeaveTunnelAgent::RecvdFromTunnelEndPoint
  - WeaveTunnelAgent::RecvdFromShortcutUDPTunnel
  - WeaveTunnelAgent::GetAgentStateName
  - WeaveTunnelAgent::NetworkOnlineCheckResult
  - WeaveTunnelAgent::CreateTunEndPoint
  - WeaveTunnelAgent::SetupTunEndPoint
  - WeaveTunnelAgent::TeardownTunEndPoint
  - WeaveTunnelAgent::PopulateTunnelMsgHeader
  - WeaveTunnelAgent::AddTunnelHdrToMsg
  - WeaveTunnelAgent::SendMessageUponPktTransitAnalysis
  - WeaveTunnelAgent::HandleSendingToService
  - WeaveTunnelAgent::DecideAndSendShortcutOrRemoteTunnel
  - WeaveTunnelAgent::HandleTunneledReceive
  - WeaveTunnelAgent::GetCommonTunnelStatistics
  - WeaveTunnelAgent::UpdateOutboundMessageStatistics
  - WeaveTunnelAgent::UpdateTunnelDownStatistics
  - WeaveTunnelAgent::EnQueuePacket
  - WeaveTunnelAgent::DumpQueuedMessages
  - WeaveTunnelAgent::DeQueuePacket
  - WeaveTunnelAgent::SendQueuedMessages
  - WeaveTunnelAgent::WeaveTunnelUp
  - WeaveTunnelAgent::WeaveTunnelConnectionEstablishedNotify
  - WeaveTunnelAgent::WeaveTunnelConnectionErrorNotify
  - WeaveTunnelAgent::WeaveTunnelNotifyTCPSendIdleStateChange
  - WeaveTunnelAgent::WeaveTunnelServiceReconnectRequested
  - WeaveTunnelAgent::WeaveTunnelConnectionDown
  - WeaveTunnelAgent::DisableBorderRouting
  - WeaveTunnelAgent::WeaveTunnelDownNotifyAndSetState
  - WeaveTunnelAgent::WeaveTunnelUpNotifyAndSetState
  - WeaveTunnelAgent::WeaveTunnelModeChangeNotifyAndSetState
  - WeaveTunnelAgent::RestartTunnelLivenessTimer
  - WeaveTunnelAgent::NotifyTunnelLiveness
  - WeaveTunnelAgent::GetTimeMsec
  source_file: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelAgent.cpp
- function_names:
  - nl::Weave::Profiles::WeaveTunnel::WeaveTunnelControl
  source_file: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.h
- function_names:
  - WeaveTunnelControl::WeaveTunnelControl
  - WeaveTunnelControl::Init
  - WeaveTunnelControl::Close
  - WeaveTunnelControl::SendTunnelOpen
  - WeaveTunnelControl::SendTunnelClose
  - WeaveTunnelControl::SendTunnelRouteUpdate
  - WeaveTunnelControl::SendTunnelLiveness
  - WeaveTunnelControl::GetSendInterfaceIdForBroadcast
  - WeaveTunnelControl::SendShortcutTunnelAdvertiseMessage
  - WeaveTunnelControl::SendBorderRouterAdvertise
  - WeaveTunnelControl::SendMobileClientAdvertise
  - WeaveTunnelControl::HandleShortcutTunnelAdvertiseMessage
  - WeaveTunnelControl::IsPeerInShortcutTunnelCache
  - WeaveTunnelControl::EnableShortcutTunneling
  - WeaveTunnelControl::DisableShortcutTunneling
  - WeaveTunnelControl::SendMessageOverTunnelShortcut
  - WeaveTunnelControl::BorderRouterAdvTimeout
  - WeaveTunnelControl::MobileClientAdvTimeout
  - WeaveTunnelControl::PurgeStaleNextHopEntries
  - WeaveTunnelControl::StartNextHopTableMonitor
  - WeaveTunnelControl::StopNextHopTableMonitor
  - WeaveTunnelControl::RegisterShortcutTunnelAdvHandlers
  - WeaveTunnelControl::UnregisterShortcutTunnelAdvHandlers
  - WeaveTunnelControl::StartShortcutTunnelAdvertisementsFromBorderRouter
  - WeaveTunnelControl::StopShortcutTunnelAdvertisementsFromBorderRouter
  - WeaveTunnelControl::StartShortcutTunnelAdvertisementsFromMobileClient
  - WeaveTunnelControl::StopShortcutTunnelAdvertisementsFromMobileClient
  - WeaveTunnelControl::FindTunnelPeerEntry
  - WeaveTunnelControl::NewNextHopEntry
  - WeaveTunnelControl::FreeNextHopEntry
  - WeaveTunnelControl::UpdateOrAddTunnelPeerEntry
  - WeaveTunnelControl::Free
  - WeaveTunnelControl::CreateContext
  - WeaveTunnelControl::VerifyAndParseStatusResponse
  - WeaveTunnelControl::ParseTunnelTLVData
  - WeaveTunnelControl::HandleTunnelOpenResponse
  - WeaveTunnelControl::HandleTunnelCloseResponse
  - WeaveTunnelControl::HandleTunnelRouteUpdateResponse
  - WeaveTunnelControl::HandleTunnelLivenessResponse
  - WeaveTunnelControl::HandleTunnelReconnect
  - WeaveTunnelControl::TunnelCloseAndReportErrorStatus
  - WeaveTunnelControl::FreeBufferAndCloseExchange
  - WeaveTunnelControl::SendStatusReport
  - WeaveTunnelControl::SendTunnelMessage
  - WeaveTunnelControl::TunCtrlRespTimeoutHandler
  - WeaveTunnelControl::DecodeTunnelReconnect
  source_file: /src/openweave-core/src/lib/profiles/weave-tunneling/WeaveTunnelControl.cpp
- function_names:
  - nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager
  - nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager::SetConnectBeginCallback
  source_file: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.h
- function_names:
  - '* operator new(size_t, void * p) throw()'
  - '* operator new[](size_t, void * p) throw()'
  - handleSDConnectionComplete
  - handleAppConnectionComplete
  - handleConnectionClosed
  - ecHandleConnectionClosed
  - handleResponseMsg
  - handleResponseTimeout
  - WeaveServiceManager::WeaveServiceManager
  - WeaveServiceManager::~WeaveServiceManager()
  - WeaveServiceManager::init
  - WeaveServiceManager::connect
  - WeaveServiceManager::lookup
  - WeaveServiceManager::lookup
  - WeaveServiceManager::replaceOrAddCacheEntry
  - WeaveServiceManager::cancel
  - WeaveServiceManager::unresolve
  - WeaveServiceManager::unresolve
  - WeaveServiceManager::reset
  - WeaveServiceManager::reset
  - WeaveServiceManager::relocate
  - WeaveServiceManager::relocate
  - WeaveServiceManager::onConnectionComplete
  - WeaveServiceManager::onConnectionClosed
  - WeaveServiceManager::onResponseReceived
  - WeaveServiceManager::onResponseTimeout
  - "WeaveServiceManager::ConnectRequest::init(WeaveServiceManager *aManager,\n                                                      const
    uint64_t &aServiceEp,\n                                                      WeaveAuthMode
    aAuthMode,\n                                                      void *aAppState,\n
    \                                                     StatusHandler aStatusHandler,\n
    \                                                     WeaveConnection::ConnectionCompleteFunct
    aCompleteHandler,\n                                                      const
    uint32_t aConnectTimeoutMsecs,\n                                                      const
    InterfaceId aConnIntf)"
  - WeaveServiceManager::ConnectRequest::free(void)
  - WeaveServiceManager::ConnectRequest::finalize(void)
  - WeaveServiceManager::ConnectRequest::onConnectionComplete(WEAVE_ERROR aError)
  - WeaveServiceManager::freeConnectRequests
  - WeaveServiceManager::finalizeConnectRequests
  - WeaveServiceManager::getAvailableRequest
  - WeaveServiceManager::calculateEntryLength
  - ServiceConnectBeginArgs::ServiceConnectBeginArgs
  - WeaveServiceManager::lookupAndConnect
  - WeaveServiceManager::loadPersistentServiceDirIntoCache
  - WeaveServiceManager::unpackPacketBuffer
  - WeaveServiceManager::cacheDirectory
  - WeaveServiceManager::cacheSuffixes
  - WeaveServiceManager::fail
  - WeaveServiceManager::transactionsErrorOut
  - WeaveServiceManager::transactionsReportStatus
  - WeaveServiceManager::cleanupExchangeContext
  - WeaveServiceManager::cleanupExchangeContext
  - WeaveServiceManager::clearWorkingState
  - WeaveServiceManager::handleTimeInfo
  - WeaveServiceManager::clearCache
  source_file: /src/openweave-core/src/lib/profiles/service-directory/ServiceDirectory.cpp
- function_names:
  - WirelessRegDomain::operator ==(const struct WirelessRegDomain & other) const
  - WirelessRegDomain::operator !=(const struct WirelessRegDomain & other) const
  - nl::Weave::Profiles::NetworkProvisioning::WirelessRegDomain::IsNull
  - nl::Weave::Profiles::NetworkProvisioning::WirelessRegDomain::IsWorldWide
  - nl::Weave::Profiles::NetworkProvisioning::WirelessRegConfig::Init
  - nl::Weave::Profiles::NetworkProvisioning::WirelessRegConfig::IsRegDomainPresent
  - nl::Weave::Profiles::NetworkProvisioning::WirelessRegConfig::IsOpLocationPresent
  source_file: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.h
- function_names:
  - NetworkProvisioning::NetworkProvisioningServer::NetworkProvisioningServer
  - NetworkProvisioning::NetworkProvisioningServer::Init
  - NetworkProvisioning::NetworkProvisioningServer::Shutdown
  - NetworkProvisioning::NetworkProvisioningServer::SetDelegate
  - NetworkProvisioning::NetworkProvisioningServer::SendNetworkScanComplete
  - NetworkProvisioning::NetworkProvisioningServer::SendGetNetworksComplete
  - NetworkProvisioning::NetworkProvisioningServer::SendCompleteWithNetworkList
  - NetworkProvisioning::NetworkProvisioningServer::SendAddNetworkComplete
  - NetworkProvisioning::NetworkProvisioningServer::SendGetWirelessRegulatoryConfigComplete
  - NetworkProvisioning::NetworkProvisioningServer::SendSuccessResponse
  - NetworkProvisioning::NetworkProvisioningServer::SendStatusReport
  - NetworkProvisioning::NetworkProvisioningServer::SessionHasCredentialAccessPrivilege
  - NetworkProvisioning::NetworkProvisioningServer::GrantCredentialAccessPrivilege
  - NetworkProvisioning::NetworkProvisioningServer::ClearCredentialAccessPrivilege
  - NetworkProvisioning::NetworkProvisioningServer::HandleSessionEnd
  - NetworkProvisioning::NetworkProvisioningServer::RegisterSessionEndCallbackWithFabricState
  - NetworkProvisioning::NetworkProvisioningServer::HandleRequest
  - NetworkProvisioning::NetworkProvisioningDelegate::HandleGetWirelessRegulatoryConfig
  - NetworkProvisioning::NetworkProvisioningDelegate::HandleSetWirelessRegulatoryConfig
  - NetworkProvisioning::NetworkProvisioningDelegate::EnforceAccessControl
  source_file: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.cpp
- function_names:
  - nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::NetworkInfo
  - NetworkInfo::~NetworkInfo()
  - nl::Weave::Profiles::NetworkProvisioning::ReplaceValue
  - nl::Weave::Profiles::NetworkProvisioning::ReplaceValue
  - nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::CopyTo
  - nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::MergeTo
  - nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::Decode
  - nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::Encode
  - nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::Clear
  - nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::DecodeList
  - nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::EncodeList
  - nl::Weave::Profiles::NetworkProvisioning::NetworkInfo::EncodeList
  source_file: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.cpp
- function_names:
  - nl::Weave::Profiles::NetworkProvisioning::NetworkInfo
  source_file: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkInfo.h
- function_names:
  - nl::Weave::Profiles::NetworkProvisioning::WirelessRegConfig::Encode
  - nl::Weave::Profiles::NetworkProvisioning::WirelessRegConfig::Decode
  - nl::Weave::Profiles::NetworkProvisioning::WirelessRegConfig::DecodeInPlace
  source_file: /src/openweave-core/src/lib/profiles/network-provisioning/WirelessRegConfig.cpp
- function_names:
  - nl::Weave::Profiles::NetworkProvisioning::NetworkProvisioningServer
  source_file: /src/openweave-core/src/lib/profiles/network-provisioning/NetworkProvisioning.h
- function_names:
  - nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer
  source_file: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.h
- function_names:
  - nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::FabricProvisioningServer
  - nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::Init
  - nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::Shutdown
  - nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::SetDelegate
  - nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::SendSuccessResponse
  - nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::SendStatusReport
  - nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::SessionHasFabricConfigAccessPrivilege
  - nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::GrantFabricConfigAccessPrivilege
  - nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::ClearFabricConfigAccessPrivilege
  - nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::HandleSessionEnd
  - nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::RegisterSessionEndCallbackWithFabricState
  - nl::Weave::Profiles::FabricProvisioning::FabricProvisioningServer::HandleClientRequest
  - nl::Weave::Profiles::FabricProvisioning::FabricProvisioningDelegate::EnforceAccessControl
  - nl::Weave::Profiles::FabricProvisioning::FabricProvisioningDelegate::IsPairedToAccount
  source_file: /src/openweave-core/src/lib/profiles/fabric-provisioning/FabricProvisioning.cpp
- function_names:
  - nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::FormatIfjStatus
  - nl::Weave::Profiles::Vendor::Nestlabs::Thermostat::IfjStatusStr
  source_file: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/IfjStatusStr.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/vendor/nestlabs/thermostat/NestThermostatWeaveConstants.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/vendor/nestlabs/device-description/NestProductIdentifiers.hpp
- function_names:
  - nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DropcamLegacyPairingServer
  source_file: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.h
- function_names:
  - nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::_DropcamLegacyPairingProfileStringInit
  - nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::_DropcamLegacyPairingProfileStringDestroy
  - nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::GetDropcamLegacyPairingMessageName
  - nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::GetDropcamLegacyPairingProfileName
  - nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::EncodeCameraAuthDataRequest
  - nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DecodeCameraAuthDataResponse
  - nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DropcamLegacyPairingServer::DropcamLegacyPairingServer
  - nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DropcamLegacyPairingServer::Init
  - nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DropcamLegacyPairingServer::Shutdown
  - nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DropcamLegacyPairingServer::SetDelegate
  - nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DropcamLegacyPairingServer::HandleClientRequest
  - nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DropcamLegacyPairingServer::HandleCameraAuthDataRequest
  - nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DropcamLegacyPairingDelegate::EnforceAccessControl
  source_file: /src/openweave-core/src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing/DropcamLegacyPairing.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/TraitPathStore.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/TraitData.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/ClientNotifier.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/TopicIdentifier.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/NotificationEngine.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/SubscriptionHandler.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/EventProcessor.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/ProfileDatabase.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/ProtocolEngine.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/UpdateEncoder.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/SubscriptionClient.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/DataManagement.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/PublisherDataManager.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/DMPublisher.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/EventLogging.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/DMConstants.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/LoggingManagement.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/LoggingConfiguration.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/EventLoggingTypes.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/DMClient.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/UpdateClient.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/ClientDataManager.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/WdmManagedNamespace.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/Command.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/Binding.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/SubscriptionEngine.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/TraitCatalog.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/LogBDXUpload.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/CommandSender.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/ViewClient.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/EventLoggingTags.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/MessageDef.h
- function_names:
  - DMClient::DMClient
  - DMClient::~DMClient(void)
  - DMClient::Clear
  - DMClient::Finalize
  - DMClient::IncompleteIndication
  - DMClient::ViewRequest
  - DMClient::ViewRequest
  - DMClient::HasSubscription
  - DMClient::BeginSubscription
  - DMClient::EndSubscription
  - DMClient::SubscribeRequest
  - DMClient::SubscribeRequest
  - DMClient::SubscribeRequest
  - DMClient::SubscribeRequest
  - DMClient::CancelSubscriptionRequest
  - DMClient::CancelSubscriptionRequest
  - DMClient::UpdateRequest
  - DMClient::UpdateRequest
  - DMClient::UpdateRequest
  - DMClient::UpdateRequest
  - DMClient::CancelTransactionRequest
  - DMClient::View::Init(DMClient *aClient, ReferencedTLVData &aPathList, uint16_t
    aTxnId, uint32_t aTimeout)
  - DMClient::View::Free(void)
  - DMClient::View::SendRequest(PacketBuffer *aBuffer, uint16_t aSendFlags)
  - DMClient::View::OnStatusReceived(const uint64_t &aResponderId, StatusReport &aStatus)
  - DMClient::View::OnResponseReceived(const uint64_t &aResponderId, uint8_t aMsgType,
    PacketBuffer *aMsg)
  - DMClient::NewView
  - DMClient::Subscribe::Init(DMClient *aClient, const TopicIdentifier &aTopicId,
    uint16_t aTxnId, uint32_t aTimeout)
  - DMClient::Subscribe::Init(DMClient *aClient, ReferencedTLVData &aPathList, uint16_t
    aTxnId, uint32_t aTimeout)
  - DMClient::Subscribe::Free(void)
  - DMClient::Subscribe::SendRequest(PacketBuffer *aBuffer, uint16_t aSendFlags)
  - DMClient::Subscribe::OnStatusReceived(const uint64_t &aResponderId, StatusReport
    &aStatus)
  - DMClient::Subscribe::OnResponseReceived(const uint64_t &aResponderId, uint8_t
    aMsgType, PacketBuffer *aMsg)
  - DMClient::NewSubscribe
  - "DMClient::CancelSubscription::Init(DMClient *aClient,\n                                               const
    TopicIdentifier &aTopicId,\n                                               uint16_t
    aTxnId,\n                                               uint32_t aTimeout)"
  - DMClient::CancelSubscription::Free(void)
  - DMClient::CancelSubscription::SendRequest(PacketBuffer *aBuffer, uint16_t aSendFlags)
  - DMClient::CancelSubscription::OnStatusReceived(const uint64_t &aResponderId, StatusReport
    &aStatus)
  - DMClient::NewCancelSubscription
  - "DMClient::Update::Init(DMClient *aClient,\n                                   ReferencedTLVData
    &aDataList,\n                                   uint16_t aTxnId,\n                                   uint32_t
    aTimeout)"
  - DMClient::Update::Free(void)
  - DMClient::Update::SendRequest(PacketBuffer *aBuffer, uint16_t aSendFlags)
  - DMClient::Update::OnStatusReceived(const uint64_t &aResponderId, StatusReport
    &aStatus)
  - DMClient::NewUpdate
  source_file: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.cpp
- function_names:
  - nl::Weave::Profiles::ClientNotifier::Subscription::IsFree
  - nl::Weave::Profiles::ClientNotifier::Subscription::CheckSubscription
  - nl::Weave::Profiles::ClientNotifier::Subscription::MatchSubscription
  - nl::Weave::Profiles::ClientNotifier::Subscription::MatchSubscription
  - nl::Weave::Profiles::ClientNotifier::SubscriptionIsEnabled
  source_file: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.h
- function_names:
  - nl::Weave::Profiles::PublisherSpecificTopicId
  - nl::Weave::Profiles::IsPublisherSpecific
  source_file: /src/openweave-core/src/lib/profiles/data-management/Legacy/TopicIdentifier.h
- function_names:
  - nl::Weave::Profiles::StartPathList
  - nl::Weave::Profiles::StartDataList
  - nl::Weave::Profiles::StartDataList
  - nl::Weave::Profiles::EndList
  - nl::Weave::Profiles::EndList
  - nl::Weave::Profiles::StartDataListElement
  - nl::Weave::Profiles::EndDataListElement
  - nl::Weave::Profiles::ValidateWDMTag
  - nl::Weave::Profiles::CheckTLVType
  - nl::Weave::Profiles::ValidateTLVType
  - nl::Weave::Profiles::CloseList
  - nl::Weave::Profiles::CloseDataListElement
  source_file: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.h
- function_names:
  - nl::Weave::Profiles::ProtocolEngine::StatusResponse
  - nl::Weave::Profiles::ProtocolEngine::BindRequest
  - nl::Weave::Profiles::ProtocolEngine::StartTransaction
  - nl::Weave::Profiles::ProtocolEngine::EnqueueTransaction
  - nl::Weave::Profiles::ProtocolEngine::Init
  - nl::Weave::Profiles::ProtocolEngine::Free
  - nl::Weave::Profiles::ProtocolEngine::IsFree
  source_file: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/Legacy/DataManagement.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/Legacy/PublisherDataManager.h
- function_names:
  - nl::Weave::Profiles::DMPublisher::Init
  - nl::Weave::Profiles::DMPublisher::Subscription::IsFree
  - nl::Weave::Profiles::DMPublisher::Subscription::IsActive
  - nl::Weave::Profiles::DMPublisher::Subscription::Activate
  - nl::Weave::Profiles::DMPublisher::Subscription::Deactivate
  - nl::Weave::Profiles::DMPublisher::Subscription::MatchSubscription
  source_file: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMConstants.h
- function_names:
  - nl::Weave::Profiles::DMClient::HasSubscription
  source_file: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMClient.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientDataManager.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/Legacy/WdmManagedNamespace.h
- function_names:
  - nl::Weave::Profiles::CheckWDMTag
  - nl::Weave::Profiles::OpenPathList
  - nl::Weave::Profiles::OpenDataList
  - nl::Weave::Profiles::OpenDataListElement
  - nl::Weave::Profiles::StartEncodePath
  - nl::Weave::Profiles::EndEncodePath
  - nl::Weave::Profiles::EncodePath
  - nl::Weave::Profiles::EncodePath
  - nl::Weave::Profiles::EncodePath
  - nl::Weave::Profiles::EncodeDeprecatedPath
  - nl::Weave::Profiles::EncodeDeprecatedPath
  - ProfileDatabase::ProfileData::ProfileData(void)
  - ProfileDatabase::ProfileData::~ProfileData(void)
  - ProfileDatabase::ProfileData::Store(TLVReader &aPathReader, uint64_t aVersion,
    TLVReader &aDataReader)
  - nl::Weave::Profiles::ProfileDatabase::Store
  - nl::Weave::Profiles::ProfileDatabase::Retrieve
  - nl::Weave::Profiles::ProfileDatabase::Retrieve
  - nl::Weave::Profiles::ProfileDatabase::LookupDataFromProfileDescriptor
  - nl::Weave::Profiles::ProfileDatabase::LookupProfileData
  - nl::Weave::Profiles::ProfileDatabase::StoreInternal
  source_file: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProfileDatabase.cpp
- function_names:
  - ClientListener
  - ClientNotifier::Subscription::Subscription(void)
  - ClientNotifier::Subscription::~Subscription(void)
  - "ClientNotifier::Subscription::Init(const TopicIdentifier &aAssignedId,\n                                               const
    TopicIdentifier &aRequestedId,\n                                               const
    uint64_t &aPublisherId,\n                                               DMClient
    *aClient)"
  - ClientNotifier::Subscription::Free(void)
  - ClientNotifier::ClientNotifier
  - ClientNotifier::~ClientNotifier(void)
  - ClientNotifier::DispatchNotifyIndication
  - ClientNotifier::HasSubscription
  - ClientNotifier::InstallSubscription
  - ClientNotifier::RemoveSubscription
  - ClientNotifier::FailSubscription
  - ClientNotifier::Clear
  source_file: /src/openweave-core/src/lib/profiles/data-management/Legacy/ClientNotifier.cpp
- function_names:
  - nl::Weave::Profiles::Binding::Init
  - nl::Weave::Profiles::Binding::IsComplete
  source_file: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.h
- function_names:
  - ConnectionClosedHandler
  - ConnectionCompleteHandler
  - ServiceMgrStatusHandler
  - Binding::Binding
  - Binding::~Binding(void)
  - Binding::Init
  - Binding::Init
  - Binding::Init
  - Binding::Connect
  - Binding::Finalize
  - Binding::Finalize
  - Binding::Free
  - Binding::IsFree
  - Binding::CompleteRequest
  - Binding::CompleteConfirm
  - Binding::CompleteConfirm
  - Binding::CompleteConfirm
  - Binding::UncompleteRequest
  - Binding::UncompleteRequest
  - Binding::IncompleteIndication
  - Binding::GetExchangeCtx
  source_file: /src/openweave-core/src/lib/profiles/data-management/Legacy/Binding.cpp
- function_names:
  - nl::Weave::Profiles::TxnResponseHandler
  - nl::Weave::Profiles::TxnTimeoutHandler
  - nl::Weave::Profiles::SendStatusReport
  - "ProtocolEngine::DMTransaction::OnMsgReceived(const uint64_t &aResponderId,\n
    \                                                 uint32_t aProfileId,\n                                                  uint8_t
    aMsgType,\n                                                  PacketBuffer *aMsg)"
  - ProtocolEngine::DMTransaction::OnResponseReceived(const uint64_t &aResponderId,
    uint8_t aMsgType, PacketBuffer *aMsg)
  - ProtocolEngine::DMTransaction::OnResponseTimeout(const uint64_t &aResponderId)
  - ProtocolEngine::DMTransaction::Init(ProtocolEngine *aEngine, uint16_t aTxnId,
    uint32_t aTimeout)
  - ProtocolEngine::DMTransaction::Free(void)
  - ProtocolEngine::DMTransaction::IsFree(void)
  - ProtocolEngine::DMTransaction::Start(uint8_t aTransport)
  - ProtocolEngine::DMTransaction::Finalize(void)
  - ProtocolEngine::DMTransaction::OnError(const uint64_t &aResponderId, WEAVE_ERROR
    aError)
  - nl::Weave::Profiles::ProtocolEngine::ProtocolEngine
  - ProtocolEngine::~ProtocolEngine(void)
  - nl::Weave::Profiles::ProtocolEngine::Init
  - nl::Weave::Profiles::ProtocolEngine::Init
  - nl::Weave::Profiles::ProtocolEngine::Finalize
  - nl::Weave::Profiles::ProtocolEngine::Clear
  - nl::Weave::Profiles::ProtocolEngine::BindRequest
  - nl::Weave::Profiles::ProtocolEngine::BindRequest
  - nl::Weave::Profiles::ProtocolEngine::BindRequest
  - nl::Weave::Profiles::ProtocolEngine::BindConfirm
  - nl::Weave::Profiles::ProtocolEngine::BindConfirm
  - nl::Weave::Profiles::ProtocolEngine::UnbindRequest
  - nl::Weave::Profiles::ProtocolEngine::UnbindRequest
  - nl::Weave::Profiles::ProtocolEngine::IncompleteIndication
  - nl::Weave::Profiles::ProtocolEngine::FromExchangeCtx
  - nl::Weave::Profiles::ProtocolEngine::GetBinding
  - nl::Weave::Profiles::ProtocolEngine::NewBinding
  - nl::Weave::Profiles::ProtocolEngine::ClearBindingTable
  - nl::Weave::Profiles::ProtocolEngine::FinalizeBindingTable
  - nl::Weave::Profiles::ProtocolEngine::StartTransaction
  - nl::Weave::Profiles::ProtocolEngine::EnqueueTransaction
  - nl::Weave::Profiles::ProtocolEngine::DequeueTransaction
  - nl::Weave::Profiles::ProtocolEngine::FinalizeTransactions
  - nl::Weave::Profiles::ProtocolEngine::FailTransactions
  - nl::Weave::Profiles::ProtocolEngine::ClearTransactionTable
  - nl::Weave::Profiles::ProtocolEngine::FinalizeTransactionTable
  - ProtocolEngine::TransactionTableEntry::Finalize(void)
  - ProtocolEngine::TransactionTableEntry::Fail(const uint64_t &aPeerId, StatusReport
    &aReport)
  source_file: /src/openweave-core/src/lib/profiles/data-management/Legacy/ProtocolEngine.cpp
- function_names:
  - PublisherListener
  - SubscriptionSuccess
  - SubscriptionFailure
  - DMPublisher::DMPublisher
  - DMPublisher::~DMPublisher(void)
  - DMPublisher::Init
  - DMPublisher::Clear
  - DMPublisher::Finalize
  - DMPublisher::IncompleteIndication
  - DMPublisher::ViewResponse
  - DMPublisher::UpdateResponse
  - DMPublisher::OnMsgReceived
  - DMPublisher::BeginSubscription
  - DMPublisher::EndSubscription
  - DMPublisher::ClearSubscriptionTable
  - DMPublisher::SubscriptionTableEmpty
  - DMPublisher::SubscribeResponse
  - DMPublisher::CancelSubscriptionIndication
  - DMPublisher::NotifyRequest
  - DMPublisher::NotifyRequest
  - DMPublisher::NotifyRequest
  - DMPublisher::NotifyConfirm
  - DMPublisher::Subscription::Subscription(void)
  - DMPublisher::Subscription::~Subscription(void)
  - "DMPublisher::Subscription::Init(const TopicIdentifier &aAssignedId,\n                                            const
    TopicIdentifier &aRequestedId,\n                                            const
    uint64_t &aClientId)"
  - DMPublisher::Subscription::Free(void)
  - DMPublisher::AddSubscription
  - DMPublisher::RemoveSubscription
  - DMPublisher::FailSubscription
  - "DMPublisher::Notify::Init(DMPublisher *aPublisher,\n                                      const
    TopicIdentifier &aTopicId,\n                                      ReferencedTLVData
    &aDataList,\n                                      uint16_t aTxnId,\n                                      uint32_t
    aTimeout)"
  - DMPublisher::Notify::Free(void)
  - DMPublisher::Notify::SendRequest(PacketBuffer *aBuffer, uint16_t aSendFlags)
  - DMPublisher::Notify::OnStatusReceived(const uint64_t &aResponderId, StatusReport
    &aStatus)
  - DMPublisher::NewNotify
  - DMPublisher::CancelTransactionRequest
  source_file: /src/openweave-core/src/lib/profiles/data-management/Legacy/DMPublisher.cpp
- function_names:
  - nl::Weave::Profiles::IsEmpty
  - nl::Weave::Profiles::IsFull
  - nl::Weave::Profiles::GetNumItems
  - nl::Weave::Profiles::GetPathStoreSize
  - nl::Weave::Profiles::InsertItemAfter
  - nl::Weave::Profiles::SetFailed
  - nl::Weave::Profiles::GetItemAt
  - nl::Weave::Profiles::IsItemInUse
  - nl::Weave::Profiles::IsItemValid
  - nl::Weave::Profiles::IsItemFailed
  - nl::Weave::Profiles::AreFlagsSet_private
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.h
- function_names:
  - TraitPathStore::TraitPathStore
  - TraitPathStore::Init
  - TraitPathStore::AddItem
  - TraitPathStore::AddItem
  - TraitPathStore::AddItemDedup
  - TraitPathStore::InsertItemAt
  - TraitPathStore::RemoveTrait
  - TraitPathStore::IsTraitPresent
  - TraitPathStore::SetFailed
  - TraitPathStore::SetFailedTrait
  - TraitPathStore::RemoveItem
  - TraitPathStore::RemoveItemAt
  - TraitPathStore::Compact
  - TraitPathStore::IsPresent
  - TraitPathStore::Intersects
  - TraitPathStore::Includes
  - TraitPathStore::Clear
  - TraitPathStore::GetFirstValidItem
  - TraitPathStore::GetNextValidItem
  - TraitPathStore::GetFirstValidItem
  - TraitPathStore::GetNextValidItem
  - TraitPathStore::AreFlagsSet
  - TraitPathStore::FindFirstAvailableItem
  - TraitPathStore::SetItem
  - TraitPathStore::ClearItem
  - TraitPathStore::SetFlags
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/TraitPathStore.cpp
- function_names:
  - nl::Weave::Profiles::UpdateClient::FlushExistingExchangeContext
  - nl::Weave::Profiles::UpdateClient::UpdateClient
  - nl::Weave::Profiles::UpdateClient::Init
  - nl::Weave::Profiles::UpdateClient::SendUpdate
  - nl::Weave::Profiles::UpdateClient::CloseUpdate
  - nl::Weave::Profiles::UpdateClient::CancelUpdate
  - nl::Weave::Profiles::UpdateClient::Shutdown
  - nl::Weave::Profiles::UpdateClient::OnSendError
  - nl::Weave::Profiles::UpdateClient::OnResponseTimeout
  - nl::Weave::Profiles::UpdateClient::OnMessageReceived
  - nl::Weave::Profiles::UpdateClient::DefaultEventHandler
  - nl::Weave::Profiles::UpdateClient::GetStateStr
  - nl::Weave::Profiles::UpdateClient::MoveToState
  - nl::Weave::Profiles::UpdateClient::ClearState
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.cpp
- function_names:
  - nl::Weave::Profiles::CreatePropertyPathHandle
  - nl::Weave::Profiles::GetPropertySchemaHandle
  - nl::Weave::Profiles::GetPropertyDictionaryKey
  - nl::Weave::Profiles::IsRootPropertyPathHandle
  - nl::Weave::Profiles::IsNullPropertyPathHandle
  - ~TraitDataSink()
  - nl::Weave::Profiles::TraitDataSink::GetSchemaEngine
  - nl::Weave::Profiles::TraitDataSink::GetVersion
  - nl::Weave::Profiles::TraitDataSink::IsVersionValid
  - nl::Weave::Profiles::TraitDataSink::IsVersionNewer
  - nl::Weave::Profiles::TraitDataSink::AcceptsSubscriptionlessNotifications
  - nl::Weave::Profiles::TraitDataSink::HandleUnknownLeafHandle
  - nl::Weave::Profiles::TraitDataSink::OnEvent
  - nl::Weave::Profiles::TraitDataSink::IsUpdatableDataSink
  - nl::Weave::Profiles::TraitDataSink::SetSubscriptionClient
  - nl::Weave::Profiles::TraitDataSink::SetUpdateEncoder
  - nl::Weave::Profiles::TraitDataSink::GetSubscriptionClient
  - nl::Weave::Profiles::TraitDataSink::GetUpdateEncoder
  - nl::Weave::Profiles::TraitDataSink::SetAcceptsSubscriptionlessNotifications
  - nl::Weave::Profiles::TraitDataSink::GetLastNotifyVersion
  - nl::Weave::Profiles::TraitUpdatableDataSink::IsUpdatableDataSink
  - nl::Weave::Profiles::TraitUpdatableDataSink::SetSubscriptionClient
  - nl::Weave::Profiles::TraitUpdatableDataSink::SetUpdateEncoder
  - nl::Weave::Profiles::TraitUpdatableDataSink::GetSubscriptionClient
  - nl::Weave::Profiles::TraitUpdatableDataSink::GetUpdateEncoder
  - nl::Weave::Profiles::TraitUpdatableDataSink::IsVersionNewer
  - nl::Weave::Profiles::TraitUpdatableDataSink::GetUpdateRequiredVersion
  - nl::Weave::Profiles::TraitUpdatableDataSink::ClearUpdateRequiredVersion
  - nl::Weave::Profiles::TraitUpdatableDataSink::GetUpdateStartVersion
  - nl::Weave::Profiles::TraitUpdatableDataSink::ClearUpdateStartVersion
  - nl::Weave::Profiles::TraitUpdatableDataSink::IsConditionalUpdate
  - nl::Weave::Profiles::TraitUpdatableDataSink::SetConditionalUpdate
  - nl::Weave::Profiles::TraitUpdatableDataSink::IsPotentialDataLoss
  - nl::Weave::Profiles::TraitUpdatableDataSink::SetPotentialDataLoss
  - ~TraitDataSource()
  - nl::Weave::Profiles::TraitDataSource::GetSchemaEngine
  - nl::Weave::Profiles::TraitDataSource::IsUpdatableDataSource
  - nl::Weave::Profiles::TraitDataSource::IsVersionEqual
  - nl::Weave::Profiles::TraitDataSource::OnEvent
  - nl::Weave::Profiles::TraitDataSource::SetRootDirty
  - nl::Weave::Profiles::TraitDataSource::ClearRootDirty
  - nl::Weave::Profiles::TraitDataSource::IsRootDirty
  - nl::Weave::Profiles::TraitDataSource::SetVersion
  - nl::Weave::Profiles::TraitDataSource::GetNextDictionaryItemKey
  - nl::Weave::Profiles::TraitUpdatableDataSource::HandleUnknownLeafHandle
  - nl::Weave::Profiles::TraitUpdatableDataSource::IsUpdatableDataSource
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.h
- function_names:
  - nl::Weave::Profiles::PrettyPrintCheckpoint::PrettyPrintCheckpoint
  - ~PrettyPrintCheckpoint()
  - nl::Weave::Profiles::PrettyPrintWDM
  - nl::Weave::Profiles::LookForElementWithTag
  - nl::Weave::Profiles::ParserBase::ParserBase
  - nl::Weave::Profiles::ParserBase::GetReaderOnTag
  - nl::Weave::Profiles::ParserBase::GetUnsignedInteger
  - nl::Weave::Profiles::ParserBase::GetSimpleValue
  - nl::Weave::Profiles::ListParserBase::ListParserBase
  - nl::Weave::Profiles::ListParserBase::Init
  - nl::Weave::Profiles::ListParserBase::InitIfPresent
  - nl::Weave::Profiles::ListParserBase::Next
  - nl::Weave::Profiles::ListParserBase::GetReader
  - nl::Weave::Profiles::BuilderBase::BuilderBase
  - nl::Weave::Profiles::BuilderBase::ResetError
  - nl::Weave::Profiles::BuilderBase::ResetError
  - nl::Weave::Profiles::BuilderBase::EndOfContainer
  - nl::Weave::Profiles::BuilderBase::InitAnonymousStructure
  - nl::Weave::Profiles::ListBuilderBase::ListBuilderBase
  - nl::Weave::Profiles::ListBuilderBase::Init
  - nl::Weave::Profiles::ListBuilderBase::Init
  - Path::Parser::Init(const nl::Weave::TLV::TLVReader & aReader)
  - Path::Parser::GetTags(nl::Weave::TLV::TLVReader * const apReader) const
  - Path::Parser::CheckSchemaValidity(void) const
  - Path::Parser::GetResourceID(nl::Weave::TLV::TLVReader * const apReader) const
  - Path::Parser::GetInstanceID(nl::Weave::TLV::TLVReader * const apReader) const
  - Path::Parser::GetInstanceID(uint64_t * const apInstanceID) const
  - Path::Parser::GetProfileID(uint32_t * const apProfileID, SchemaVersionRange *
    const apSchemaVersionRange)
  - Path::Builder::_Init(nl::Weave::TLV::TLVWriter * const apWriter, const uint64_t
    aTagInApiForm)
  - Path::Builder::Init(nl::Weave::TLV::TLVWriter * const apWriter)
  - Path::Builder::Init(nl::Weave::TLV::TLVWriter * const apWriter, const uint8_t
    aContextTagToUse)
  - '& Path::Builder::ResourceID(const uint64_t aResourceID)'
  - '& Path::Builder::ResourceID(const ResourceIdentifier& aResourceID)'
  - '& Path::Builder::InstanceID(const uint64_t aInstanceID)'
  - '& Path::Builder::ProfileID(const uint32_t aProfileID)'
  - '& Path::Builder::ProfileID(const uint32_t aProfileID, const SchemaVersionRange
    & aSchemaVersionRange)'
  - '& Path::Builder::TagSection(void)'
  - '& Path::Builder::AdditionalTag(const uint64_t aTagInApiForm)'
  - '& Path::Builder::EndOfPath(void)'
  - StatusElement::Parser::Init(const nl::Weave::TLV::TLVReader & aReader)
  - "StatusElement::Parser::GetProfileIDAndStatusCode(uint32_t * const apProfileID,\n
    \       uint16_t *const apStatusCode) const"
  - StatusElement::Parser::CheckSchemaValidity(void) const
  - StatusElement::Parser::CheckSchemaValidityDeprecated(void) const
  - StatusElement::Parser::CheckSchemaValidityCurrent(void) const
  - StatusElement::Builder::Init(nl::Weave::TLV::TLVWriter * const apWriter)
  - StatusElement::Builder::InitDeprecated(nl::Weave::TLV::TLVWriter * const apWriter)
  - '& StatusElement::Builder::ProfileIDAndStatus(const uint32_t aProfileID, const
    uint16_t aStatusCode)'
  - '& StatusElement::Builder::EndOfStatusElement(void)'
  - DataElement::Parser::Init(const nl::Weave::TLV::TLVReader & aReader)
  - DataElement::Parser::ParseData(nl::Weave::TLV::TLVReader & aReader, int aDepth)
    const
  - DataElement::Parser::CheckSchemaValidity(void) const
  - DataElement::Parser::GetReaderOnPath(nl::Weave::TLV::TLVReader * const apReader)
    const
  - DataElement::Parser::GetPath(Path::Parser * const apPath) const
  - DataElement::Parser::GetVersion(uint64_t * const apVersion) const
  - DataElement::Parser::GetData(nl::Weave::TLV::TLVReader * const apReader) const
  - DataElement::Parser::GetPartialChangeFlag(bool * const apPartialChangeFlag) const
  - DataElement::Parser::CheckPresence(bool * const apDataPresentFlag, bool * const
    apDeletePresentFlag) const
  - DataElement::Parser::GetDeletedDictionaryKeys(nl::Weave::TLV::TLVReader * const
    apReader) const
  - DataElement::Builder::Init(nl::Weave::TLV::TLVWriter * const apWriter)
  - '& DataElement::Builder::CreatePathBuilder()'
  - '& DataElement::Builder::Version(const uint64_t aVersion)'
  - '& DataElement::Builder::PartialChange(const bool aIsPartialChange)'
  - '& DataElement::Builder::EndOfDataElement(void)'
  - PathList::Parser::CheckSchemaValidity(void) const
  - '& PathList::Builder::CreatePathBuilder()'
  - '& PathList::Builder::EndOfPathList(void)'
  - DataList::Parser::CheckSchemaValidity(void) const
  - '& DataList::Builder::CreateDataElementBuilder()'
  - '& DataList::Builder::EndOfDataList(void)'
  - Event::Parser::Init(const nl::Weave::TLV::TLVReader & aReader)
  - Event::Parser::CheckSchemaValidity(void) const
  - Event::Parser::GetSourceId(uint64_t * const apSourceId)
  - Event::Parser::GetImportance(uint64_t * const apImportance)
  - Event::Parser::GetEventId(uint64_t * const apEventId)
  - Event::Parser::GetRelatedEventImportance(uint64_t * const apImportance)
  - Event::Parser::GetRelatedEventId(uint64_t * const apEventId)
  - Event::Parser::GetUTCTimestamp(uint64_t * const apUTCTimestamp)
  - Event::Parser::GetSystemTimestamp(uint64_t * const apSystemTimestamp)
  - Event::Parser::GetResourceId(uint64_t * const apResourceId)
  - Event::Parser::GetTraitProfileId(uint32_t * const apTraitProfileId)
  - Event::Parser::GetTraitInstanceId(uint64_t * const apTraitInstanceId)
  - Event::Parser::GetEventType(uint64_t * const apEventType)
  - Event::Parser::GetDeltaUTCTime(int64_t * const apDeltaUTCTime)
  - Event::Parser::GetDeltaSystemTime(int64_t * const apDeltaSystemTime)
  - Event::Parser::GetReaderOnEvent(nl::Weave::TLV::TLVReader * const apReader) const
  - Event::Builder::Init(nl::Weave::TLV::TLVWriter * const apWriter)
  - Event::Builder::SourceId(const uint64_t aSourceId)
  - Event::Builder::Importance(const uint64_t aImportance)
  - Event::Builder::EventId(const uint64_t aEventId)
  - Event::Builder::RelatedEventImportance(const uint64_t aImportance)
  - Event::Builder::RelatedEventId(const uint64_t aEventId)
  - Event::Builder::UTCTimestamp(const uint64_t aUTCTimestamp)
  - Event::Builder::SystemTimestamp(const uint64_t aSystemTimestamp)
  - Event::Builder::ResourceId(const uint64_t aResourceId)
  - Event::Builder::TraitProfileId(const uint32_t aTraitProfileId)
  - Event::Builder::TraitInstanceId(const uint64_t aTraitInstanceId)
  - Event::Builder::EventType(const uint64_t aEventType)
  - Event::Builder::DeltaUTCTime(const int64_t aDeltaUTCTime)
  - Event::Builder::DeltaSystemTime(const int64_t aDeltaSystemTime)
  - '& Event::Builder::EndOfEvent(void)'
  - EventList::Parser::CheckSchemaValidity(void) const
  - '& EventList::Builder::CreateEventBuilder()'
  - '& EventList::Builder::EndOfEventList(void)'
  - VersionList::Parser::CheckSchemaValidity(void) const
  - '& StatusList::Builder::AddStatus(uint32_t aProfileID, uint16_t aStatusCode)'
  - '& StatusList::Builder::EndOfStatusList()'
  - StatusList::Parser::GetProfileIDAndStatusCode(uint32_t * const apProfileID, uint16_t
    * const apStatusCode)
  - StatusList::Parser::CheckSchemaValidity(void) const
  - VersionList::Parser::IsElementValid(void)
  - VersionList::Parser::IsNull(void)
  - VersionList::Parser::GetVersion(uint64_t * const apVersion)
  - '& VersionList::Builder::AddVersion(const uint64_t aVersion)'
  - '& VersionList::Builder::AddNull(void)'
  - '& VersionList::Builder::EndOfVersionList(void)'
  - BaseMessageWithSubscribeId::Parser::Init(const nl::Weave::TLV::TLVReader & aReader)
  - BaseMessageWithSubscribeId::Parser::GetSubscriptionID(uint64_t * const apSubscriptionID)
    const
  - BaseMessageWithSubscribeId::Builder::Init(nl::Weave::TLV::TLVWriter * const apWriter)
  - BaseMessageWithSubscribeId::Builder::SetSubscriptionID(const uint64_t aSubscriptionID)
  - BaseMessageWithSubscribeId::Builder::EndOfMessage(void)
  - SubscribeRequest::Parser::CheckSchemaValidity(void) const
  - SubscribeRequest::Parser::GetSubscribeTimeoutMin(uint32_t * const apTimeOutMin)
    const
  - SubscribeRequest::Parser::GetSubscribeTimeoutMax(uint32_t * const apTimeOutMax)
    const
  - SubscribeRequest::Parser::GetSubscribeToAllEvents(bool * const apAllEvents) const
  - SubscribeRequest::Parser::GetLastObservedEventIdList(EventList::Parser * const
    apEventList) const
  - SubscribeRequest::Parser::GetPathList(PathList::Parser * const apPathList) const
  - SubscribeRequest::Parser::GetVersionList(VersionList::Parser * const apVersionList)
    const
  - '& SubscribeRequest::Builder::SubscriptionID(const uint64_t aSubscriptionID)'
  - '& SubscribeRequest::Builder::SubscribeTimeoutMin(const uint32_t aSubscribeTimeoutMin)'
  - '& SubscribeRequest::Builder::SubscribeTimeoutMax(const uint32_t aSubscribeTimeoutMax)'
  - '& SubscribeRequest::Builder::SubscribeToAllEvents(const bool aSubscribeToAllEvents)'
  - '& SubscribeRequest::Builder::CreateLastObservedEventIdListBuilder()'
  - '& SubscribeRequest::Builder::CreatePathListBuilder()'
  - '& SubscribeRequest::Builder::CreateVersionListBuilder()'
  - '& SubscribeRequest::Builder::EndOfRequest(void)'
  - SubscribeResponse::Parser::CheckSchemaValidity(void) const
  - SubscribeResponse::Parser::GetSubscribeTimeout(uint32_t * const apTimeOut) const
  - SubscribeResponse::Parser::GetPossibleLossOfEvents(bool * const apPossibleLossOfEvents)
    const
  - SubscribeResponse::Parser::GetLastVendedEventIdList(EventList::Parser * const
    apEventList) const
  - '& SubscribeResponse::Builder::SubscriptionID(const uint64_t aSubscriptionID)'
  - '& SubscribeResponse::Builder::SubscribeTimeout(const uint32_t aSubscribeTimeout)'
  - '& SubscribeResponse::Builder::PossibleLossOfEvents(const bool aPossibleLossOfEvents)'
  - '& SubscribeResponse::Builder::CreateLastVendedEventIdListBuilder()'
  - '& SubscribeResponse::Builder::EndOfResponse(void)'
  - SubscribeCancelRequest::Parser::CheckSchemaValidity(void) const
  - '& SubscribeCancelRequest::Builder::SubscriptionID(const uint64_t aSubscriptionID)'
  - '& SubscribeCancelRequest::Builder::EndOfRequest(void)'
  - '& SubscribeConfirmRequest::Builder::SubscriptionID(const uint64_t aSubscriptionID)'
  - '& SubscribeConfirmRequest::Builder::EndOfRequest(void)'
  - NotificationRequest::Parser::CheckSchemaValidity(void) const
  - NotificationRequest::Parser::GetDataList(DataList::Parser * const apDataList)
    const
  - NotificationRequest::Parser::GetPossibleLossOfEvent(bool * const apPossibleLossOfEvent)
    const
  - NotificationRequest::Parser::GetUTCTimestamp(uint64_t * const apUTCTimestamp)
    const
  - NotificationRequest::Parser::GetSystemTimestamp(uint64_t * const apSystemTimestamp)
    const
  - NotificationRequest::Parser::GetEventList(EventList::Parser * const apEventList)
    const
  - CustomCommand::Parser::Init(const nl::Weave::TLV::TLVReader & aReader)
  - CustomCommand::Parser::CheckSchemaValidity(void) const
  - CustomCommand::Parser::GetMustBeVersion(uint64_t * const apMustBeVersion) const
  - CustomCommand::Parser::GetInitiationTimeMicroSecond(int64_t * const apInitiationTimeMicroSecond)
    const
  - CustomCommand::Parser::GetActionTimeMicroSecond(int64_t * const apActionTimeMicroSecond)
    const
  - CustomCommand::Parser::GetExpiryTimeMicroSecond(int64_t * const apExpiryTimeMicroSecond)
    const
  - CustomCommand::Parser::GetCommandType(uint64_t * const apCommandType) const
  - CustomCommand::Parser::GetPath(Path::Parser * const apPath) const
  - CustomCommand::Parser::GetReaderOnArgument(nl::Weave::TLV::TLVReader * const apReader)
    const
  - CustomCommand::Parser::GetReaderOnPath(nl::Weave::TLV::TLVReader * const apReader)
    const
  - CustomCommand::Builder::Init(nl::Weave::TLV::TLVWriter * const apWriter)
  - '& CustomCommand::Builder::CreatePathBuilder()'
  - '& CustomCommand::Builder::CommandType(const uint64_t aCommandType)'
  - '& CustomCommand::Builder::InitiationTimeMicroSecond(const int64_t aInitiationTimeMicroSecond)'
  - '& CustomCommand::Builder::ActionTimeMicroSecond(const int64_t aActionTimeMicroSecond)'
  - '& CustomCommand::Builder::ExpiryTimeMicroSecond(const int64_t aExpiryTimeMicroSecond)'
  - '& CustomCommand::Builder::MustBeVersion(const uint64_t aMustBeVersion)'
  - '& CustomCommand::Builder::EndOfCustomCommand(void)'
  - CustomCommandResponse::Parser::Init(const nl::Weave::TLV::TLVReader & aReader)
  - CustomCommandResponse::Parser::CheckSchemaValidity(void) const
  - CustomCommandResponse::Parser::GetVersion(uint64_t * const apVersion) const
  - CustomCommandResponse::Parser::GetReaderOnResponse(nl::Weave::TLV::TLVReader *
    const apReader) const
  - CustomCommandResponse::Builder::Init(nl::Weave::TLV::TLVWriter * const apWriter)
  - '& CustomCommandResponse::Builder::Version(const uint64_t aMustBeVersion)'
  - '& CustomCommandResponse::Builder::EndOfResponse(void)'
  - UpdateRequest::Parser::Init(const nl::Weave::TLV::TLVReader & aReader)
  - UpdateRequest::Parser::CheckSchemaValidity(void) const
  - UpdateRequest::Parser::GetExpiryTimeMicroSecond(int64_t * const apExpiryTimeMicroSecond)
    const
  - UpdateRequest::Parser::GetReaderOnArgument(nl::Weave::TLV::TLVReader * const apReader)
    const
  - UpdateRequest::Parser::GetUpdateRequestIndex(uint32_t * const apUpdateRequestIndex)
    const
  - UpdateRequest::Parser::GetDataList (DataList::Parser * const apDataList) const
  - UpdateResponse::Parser::Init(const nl::Weave::TLV::TLVReader & aReader)
  - UpdateResponse::Parser::CheckSchemaValidity(void) const
  - UpdateResponse::Parser::GetStatusList(StatusList::Parser * const apStatusList)
    const
  - UpdateResponse::Parser::GetVersionList(VersionList::Parser * const apVersionList)
    const
  - UpdateResponse::Builder::Init(nl::Weave::TLV::TLVWriter * const apWriter)
  - '& UpdateResponse::Builder::CreateVersionListBuilder()'
  - '& UpdateResponse::Builder::CreateStatusListBuilder()'
  - '& UpdateResponse::Builder::EndOfResponse(void)'
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.cpp
- function_names:
  - UpdateDirtyPathFilter::UpdateDirtyPathFilter
  - UpdateDirtyPathFilter::FilterPath
  - UpdateDictionaryDirtyPathCut::UpdateDictionaryDirtyPathCut
  - UpdateDictionaryDirtyPathCut::CutPath
  - TraitSchemaEngine::ParseTagString
  - TraitSchemaEngine::MapPathToHandle
  - TraitSchemaEngine::MapPathToHandle
  - TraitSchemaEngine::MapHandleToPath
  - TraitSchemaEngine::MapHandleToPath
  - TraitSchemaEngine::GetTag
  - TraitSchemaEngine::RetrieveData
  - TraitSchemaEngine::RetrieveUpdatableDictionaryData
  - TraitSchemaEngine::GetRelativePathTags
  - TraitSchemaEngine::StoreData
  - TraitSchemaEngine::GetFirstChild
  - TraitSchemaEngine::IsParent
  - TraitSchemaEngine::GetParent
  - TraitSchemaEngine::GetNextChild
  - TraitSchemaEngine::GetChildHandle
  - TraitSchemaEngine::_GetChildHandle
  - TraitSchemaEngine::GetDictionaryItemHandle
  - TraitSchemaEngine::IsLeaf
  - TraitSchemaEngine::GetDepth
  - TraitSchemaEngine::FindLowestCommonAncestor
  - TraitSchemaEngine::GetMap
  - TraitSchemaEngine::IsDictionary
  - TraitSchemaEngine::IsInDictionary
  - TraitSchemaEngine::IsOptional
  - TraitSchemaEngine::IsNullable
  - TraitSchemaEngine::IsEphemeral
  - TraitSchemaEngine::GetBitFromPathHandleBitfield
  - TraitSchemaEngine::MatchesProfileId
  - TraitSchemaEngine::GetProfileId
  - TraitSchemaEngine::GetVersionIntersection
  - TraitSchemaEngine::GetHighestForwardVersion
  - TraitSchemaEngine::GetLowestCompatibleVersion
  - TraitSchemaEngine::GetMinVersion
  - TraitSchemaEngine::GetMaxVersion
  - TraitDataSink::SetVersion
  - TraitDataSink::ClearVersion
  - TraitDataSink::SetLastNotifyVersion
  - TraitDataSink::TraitDataSink
  - TraitDataSink::StoreDataElement
  - TraitDataSink::OnSetDataEvent
  - TraitDataSink::RejectChange
  - TraitDataSink::SetData
  - TraitDataSource::TraitDataSource
  - TraitDataSource::GetVersion
  - TraitDataSource::IncrementVersion
  - TraitDataSource::OnCustomCommand
  - TraitDataSource::OnCustomCommand
  - TraitDataSource::GetData
  - TraitDataSource::ReadData
  - TraitDataSource::SetDirty
  - TraitDataSource::DeleteKey
  - TraitDataSource::Lock
  - TraitDataSource::Unlock
  - TraitDataSource::Unlock
  - TraitUpdatableDataSink::TraitUpdatableDataSink
  - TraitUpdatableDataSink::Lock
  - TraitUpdatableDataSink::Unlock
  - TraitUpdatableDataSink::GetData
  - TraitUpdatableDataSink::SetUpdateRequiredVersion
  - TraitUpdatableDataSink::SetUpdateStartVersion
  - TraitUpdatableDataSink::ReadData
  - TraitUpdatableDataSink::SetUpdated
  - TraitUpdatableDataSink::ClearUpdated
  - TraitUpdatableDataSource::TraitUpdatableDataSource
  - TraitUpdatableDataSource::StoreDataElement
  - TraitUpdatableDataSource::OnSetDataEvent
  - TraitUpdatableDataSource::RejectChange
  - TraitUpdatableDataSource::SetData
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/TraitData.cpp
- function_names:
  - nl::Weave::Profiles::NotificationEngine::NotifyRequestBuilder::GetWriter
  - nl::Weave::Profiles::NotificationEngine::IntermediateGraphSolver::IsFull
  - nl::Weave::Profiles::NotificationEngine::IntermediateGraphSolver::GetNumItems
  - nl::Weave::Profiles::NotificationEngine::IntermediateGraphSolver::GetStoreSize
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.h
- function_names:
  - nl::Weave::Profiles::SubscriptionHandler::Init
  - nl::Weave::Profiles::SubscriptionHandler::IsDirty
  - nl::Weave::Profiles::SubscriptionHandler::SetDirty
  - nl::Weave::Profiles::SubscriptionHandler::ClearDirty
  - nl::Weave::Profiles::SubscriptionHandler::Clear
  - nl::Weave::Profiles::SubscriptionHandler::Clear
  - nl::Weave::Profiles::SubscriptionHandler::IsEstablishedIdle
  - nl::Weave::Profiles::SubscriptionHandler::IsActive
  - nl::Weave::Profiles::SubscriptionHandler::IsCanceling
  - nl::Weave::Profiles::SubscriptionHandler::IsTerminated
  - nl::Weave::Profiles::SubscriptionHandler::IsFree
  - nl::Weave::Profiles::SubscriptionHandler::GetMaxNotificationSize
  - nl::Weave::Profiles::SubscriptionHandler::IsNotifiable
  - nl::Weave::Profiles::SubscriptionHandler::IsSubscribing
  - nl::Weave::Profiles::SubscriptionHandler::IsNotifying
  - nl::Weave::Profiles::SubscriptionHandler::GetTraitInstanceInfoList
  - nl::Weave::Profiles::SubscriptionHandler::GetNumTraitInstances
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.h
- function_names:
  - nl::Weave::Profiles::SubscriptionEngine::SubscriptionEngine
  - nl::Weave::Profiles::SubscriptionEngine::SetEventCallback
  - nl::Weave::Profiles::SubscriptionEngine::DefaultEventHandler
  - nl::Weave::Profiles::SubscriptionEngine::Init
  - nl::Weave::Profiles::SubscriptionEngine::LogSubscriptionFreed
  - nl::Weave::Profiles::SubscriptionEngine::OnCancelRequest
  - nl::Weave::Profiles::SubscriptionEngine::GetClientId
  - nl::Weave::Profiles::SubscriptionEngine::NewClient
  - nl::Weave::Profiles::SubscriptionEngine::NewClient
  - nl::Weave::Profiles::SubscriptionEngine::NewClientFromPersistedState
  - nl::Weave::Profiles::SubscriptionEngine::NewSubscriptionHandlerFromPersistedState
  - nl::Weave::Profiles::SubscriptionEngine::SaveClient
  - nl::Weave::Profiles::SubscriptionEngine::SaveSubscriptionHandler
  - nl::Weave::Profiles::SubscriptionEngine::SendStatusReport
  - nl::Weave::Profiles::SubscriptionEngine::UnsolicitedMessageHandler
  - nl::Weave::Profiles::SubscriptionEngine::OnUnknownMsgType
  - nl::Weave::Profiles::SubscriptionEngine::OnNotificationRequest
  - nl::Weave::Profiles::SubscriptionEngine::ProcessDataList
  - nl::Weave::Profiles::SubscriptionEngine::RegisterForSubscriptionlessNotifications
  - nl::Weave::Profiles::SubscriptionEngine::OnSubscriptionlessNotification
  - "SubscriptionEngine::SubscriptionlessNotifyDataElementAccessControlDelegate::DataElementAccessCheck(\n
    \   const TraitPath & aTraitPath, const TraitCatalogBase<TraitDataSink> & aCatalog)"
  - nl::Weave::Profiles::SubscriptionEngine::FindClient
  - nl::Weave::Profiles::SubscriptionEngine::FindEstablishedIdleClient
  - nl::Weave::Profiles::SubscriptionEngine::UpdateClientLiveness
  - nl::Weave::Profiles::SubscriptionEngine::GetHandlerId
  - nl::Weave::Profiles::SubscriptionEngine::GetCommandObjId
  - nl::Weave::Profiles::SubscriptionEngine::UpdateHandlerLiveness
  - nl::Weave::Profiles::SubscriptionEngine::FindHandler
  - nl::Weave::Profiles::SubscriptionEngine::FindEstablishedIdleHandler
  - nl::Weave::Profiles::SubscriptionEngine::GetMinEventLogPosition
  - nl::Weave::Profiles::SubscriptionEngine::ReclaimTraitInfo
  - nl::Weave::Profiles::SubscriptionEngine::EnablePublisher
  - nl::Weave::Profiles::SubscriptionEngine::Lock
  - nl::Weave::Profiles::SubscriptionEngine::Unlock
  - nl::Weave::Profiles::SubscriptionEngine::DisablePublisher
  - nl::Weave::Profiles::SubscriptionEngine::NewSubscriptionHandler
  - nl::Weave::Profiles::SubscriptionEngine::OnSubscribeRequest
  - nl::Weave::Profiles::SubscriptionEngine::OnSubscribeConfirmRequest
  - nl::Weave::Profiles::SubscriptionEngine::OnCustomCommand
  - nl::Weave::Profiles::SubscriptionEngine::AllocateRightSizedBuffer
  - nl::Weave::Profiles::SubscriptionEngine::InitializeStatusDataHandleList
  - nl::Weave::Profiles::SubscriptionEngine::ConstructStatusListVersionList
  - nl::Weave::Profiles::SubscriptionEngine::UpdateStatusDataHandleElement
  - nl::Weave::Profiles::SubscriptionEngine::IsStartingPath
  - nl::Weave::Profiles::SubscriptionEngine::UpdateTraitVersions
  - nl::Weave::Profiles::SubscriptionEngine::SendFaultyUpdateResponse
  - nl::Weave::Profiles::SubscriptionEngine::SendUpdateResponse
  - nl::Weave::Profiles::SubscriptionEngine::ProcessUpdateRequestDataElement
  - nl::Weave::Profiles::SubscriptionEngine::ProcessUpdateRequestDataListWithConditionality
  - nl::Weave::Profiles::SubscriptionEngine::ProcessUpdateRequestDataList
  - nl::Weave::Profiles::SubscriptionEngine::ProcessUpdateRequest
  - nl::Weave::Profiles::SubscriptionEngine::OnUpdateRequest
  - "SubscriptionEngine::UpdateRequestDataElementAccessControlDelegate::DataElementAccessCheck(\n
    \   const TraitPath & aTraitPath, const TraitCatalogBase<TraitDataSource> & aCatalog)"
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.cpp
- function_names:
  - nl::Weave::Profiles::EventProcessor::EventHeader
  - nl::Weave::Profiles::EventProcessor::StreamParsingContext
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.h
- function_names:
  - nl::Weave::Profiles::EventProcessor::EventProcessor
  - EventProcessor::~EventProcessor(void)
  - nl::Weave::Profiles::EventProcessor::ProcessEvents
  - nl::Weave::Profiles::EventProcessor::ParseEventList
  - nl::Weave::Profiles::EventProcessor::ParseEvent
  - nl::Weave::Profiles::EventProcessor::MapReceivedMaskToPublishedMask
  - nl::Weave::Profiles::EventProcessor::UpdateContextQualifyHeader
  - nl::Weave::Profiles::EventProcessor::ProcessHeader
  - nl::Weave::Profiles::ReadAndCheckPresence
  - nl::Weave::Profiles::EventProcessor::GetLargestEventIdList
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/EventProcessor.cpp
- function_names:
  - nl::Weave::Profiles::UpdateEncoder::UpdateEncoder
  - ~UpdateEncoder()
  - nl::Weave::Profiles::UpdateEncoder::Context
  - nl::Weave::Profiles::UpdateEncoder::DataElementPathContext
  - nl::Weave::Profiles::UpdateEncoder::DataElementDataContext
  - nl::Weave::Profiles::UpdateEncoder::Checkpoint
  - nl::Weave::Profiles::UpdateEncoder::Rollback
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.h
- function_names:
  - nl::Weave::Profiles::SubscriptionClient::Clear
  - nl::Weave::Profiles::SubscriptionClient::Clear
  - nl::Weave::Profiles::SubscriptionClient::GetLivenessTimeoutMsec
  - nl::Weave::Profiles::SubscriptionClient::SetLivenessTimeoutMsec
  - nl::Weave::Profiles::SubscriptionClient::IsInProgressOrEstablished
  - nl::Weave::Profiles::SubscriptionClient::IsRetryEnabled
  - nl::Weave::Profiles::SubscriptionClient::IsEstablished
  - nl::Weave::Profiles::SubscriptionClient::IsEstablishedIdle
  - nl::Weave::Profiles::SubscriptionClient::IsFree
  - nl::Weave::Profiles::SubscriptionClient::IsCanceling
  - nl::Weave::Profiles::SubscriptionClient::IsTerminated
  - nl::Weave::Profiles::SubscriptionClient::IsInResubscribeHoldoff
  - nl::Weave::Profiles::SubscriptionClient::IsUpdatePendingOrInProgress
  - nl::Weave::Profiles::SubscriptionClient::IsInitiator
  - nl::Weave::Profiles::SubscriptionClient::IsCounterSubscriber
  - nl::Weave::Profiles::SubscriptionClient::ShouldSubscribe
  - nl::Weave::Profiles::SubscriptionClient::GetMaxUpdateSize
  - nl::Weave::Profiles::SubscriptionClient::IsUpdateInFlight
  - nl::Weave::Profiles::SubscriptionClient::SetUpdateInFlight
  - nl::Weave::Profiles::SubscriptionClient::ClearUpdateInFlight
  - nl::Weave::Profiles::SubscriptionClient::IsUpdateInProgress
  - nl::Weave::Profiles::SubscriptionClient::IsReadyToSendNewUpdate
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/DataManagement.h
- function_names:
  - nl::Weave::Profiles::BdxSendAcceptHandler
  - nl::Weave::Profiles::BdxRejectHandler
  - nl::Weave::Profiles::BdxGetBlockHandler
  - nl::Weave::Profiles::LogBDXUpload::ThrottleIfNeeded
  - nl::Weave::Profiles::LogBDXUpload::BlockHandler
  - nl::Weave::Profiles::BdxXferErrorHandler
  - nl::Weave::Profiles::BdxXferDoneHandler
  - nl::Weave::Profiles::BdxErrorHandler
  - nl::Weave::Profiles::LogBDXUpload::LogBDXUpload
  - nl::Weave::Profiles::LogBDXUpload::Init
  - nl::Weave::Profiles::LogBDXUpload::StartUpload
  - nl::Weave::Profiles::LogBDXUpload::Abort
  - nl::Weave::Profiles::LogBDXUpload::Done
  - nl::Weave::Profiles::LogBDXUpload::Shutdown
  - nl::Weave::Profiles::LogBDXUpload::GetUploadPosition
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.cpp
- function_names:
  - nl::Weave::Profiles::Locate
  - nl::Weave::Profiles::UpdateEncoder::EncodeRequest
  - nl::Weave::Profiles::UpdateEncoder::InsertInProgressUpdateItem
  - nl::Weave::Profiles::UpdateEncoder::EncodePreamble
  - nl::Weave::Profiles::UpdateEncoder::EncodeDataList
  - nl::Weave::Profiles::UpdateEncoder::EncodeDataElements
  - nl::Weave::Profiles::UpdateEncoder::EncodeDataElement
  - nl::Weave::Profiles::UpdateEncoder::EncodeElementPath
  - nl::Weave::Profiles::UpdateEncoder::EncodeElementData
  - nl::Weave::Profiles::UpdateEncoder::EndUpdateRequest
  - nl::Weave::Profiles::UpdateEncoder::RemoveInProgressPrivateItemsAfter
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateEncoder.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.h
- function_names:
  - nl::Weave::Profiles::Command::Command
  - nl::Weave::Profiles::Command::Init
  - nl::Weave::Profiles::Command::IsMustBeVersionValid
  - nl::Weave::Profiles::Command::IsInitiationTimeValid
  - nl::Weave::Profiles::Command::IsActionTimeValid
  - nl::Weave::Profiles::Command::IsExpiryTimeValid
  - nl::Weave::Profiles::Command::IsOneWay
  - nl::Weave::Profiles::Command::SetMustBeVersionValid
  - nl::Weave::Profiles::Command::SetInitiationTimeValid
  - nl::Weave::Profiles::Command::SetActionTimeValid
  - nl::Weave::Profiles::Command::SetExpiryTimeValid
  - nl::Weave::Profiles::Command::SetIsOneWay
  - nl::Weave::Profiles::Command::Close
  - nl::Weave::Profiles::Command::SendError
  - nl::Weave::Profiles::Command::SendInProgress
  - nl::Weave::Profiles::Command::SendResponse
  - nl::Weave::Profiles::Command::ValidateAuthenticator
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/Command.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/GenericTraitCatalogImpl.cpp
- function_names:
  - nl::Weave::Profiles::LoggingManagement::IsValid
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingConfiguration.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/GenericTraitCatalogImpl.h
- function_names:
  - nl::Weave::Profiles::DetailedRootSection
  - nl::Weave::Profiles::Timestamp
  - nl::Weave::Profiles::Timestamp
  - nl::Weave::Profiles::Timestamp
  - nl::Weave::Profiles::ExternalEvents
  - nl::Weave::Profiles::IsValid
  - nl::Weave::Profiles::Invalidate
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/EventLoggingTypes.h
- function_names:
  - nl::Weave::Profiles::ResourceIdentifier::ToTLV
  - nl::Weave::Profiles::ResourceIdentifier::ToTLV
  - nl::Weave::Profiles::ResourceIdentifier::FromTLV
  - nl::Weave::Profiles::ResourceIdentifier::FromTLV
  - nl::Weave::Profiles::ResourceIdentifier::NormalizeResource
  - nl::Weave::Profiles::ResourceIdentifier::NormalizeResource
  - nl::Weave::Profiles::ResourceIdentifier::ResourceTypeAsString
  - nl::Weave::Profiles::ResourceIdentifier::ResourceTypeAsString
  - nl::Weave::Profiles::ResourceIdentifier::ToString
  - nl::Weave::Profiles::ResourceIdentifier::FromString
  - nl::Weave::Profiles::ResourceIdentifier::FromString
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.cpp
- function_names:
  - nl::Weave::Profiles::SubscriptionHandler::SubscriptionHandler
  - nl::Weave::Profiles::SubscriptionHandler::InitAsFree
  - nl::Weave::Profiles::SubscriptionHandler::AcceptSubscribeRequest
  - nl::Weave::Profiles::SubscriptionHandler::DefaultEventHandler
  - nl::Weave::Profiles::SubscriptionHandler::EndSubscription
  - nl::Weave::Profiles::SubscriptionHandler::ParsePathVersionEventLists
  - nl::Weave::Profiles::SubscriptionHandler::ParseSubscriptionId
  - nl::Weave::Profiles::SubscriptionHandler::UpdateDeliveredEvents
  - nl::Weave::Profiles::SubscriptionHandler::DeliveredEventsExist
  - nl::Weave::Profiles::SubscriptionHandler::InitWithIncomingRequest
  - nl::Weave::Profiles::SubscriptionHandler::SendNotificationRequest
  - nl::Weave::Profiles::SubscriptionHandler::OnNotifyProcessingComplete
  - nl::Weave::Profiles::SubscriptionHandler::SendSubscribeResponse
  - nl::Weave::Profiles::SubscriptionHandler::GetBinding
  - nl::Weave::Profiles::SubscriptionHandler::GetPeerNodeId
  - nl::Weave::Profiles::SubscriptionHandler::InitExchangeContext
  - nl::Weave::Profiles::SubscriptionHandler::ReplaceExchangeContext
  - nl::Weave::Profiles::SubscriptionHandler::FlushExistingExchangeContext
  - nl::Weave::Profiles::SubscriptionHandler::Cancel
  - nl::Weave::Profiles::SubscriptionHandler::GetSubscriptionId
  - nl::Weave::Profiles::SubscriptionHandler::_AddRef
  - nl::Weave::Profiles::SubscriptionHandler::_Release
  - nl::Weave::Profiles::SubscriptionHandler::TerminateSubscription
  - nl::Weave::Profiles::SubscriptionHandler::AbortSubscription
  - nl::Weave::Profiles::SubscriptionHandler::CancelRequestHandler
  - nl::Weave::Profiles::SubscriptionHandler::BindingEventCallback
  - nl::Weave::Profiles::SubscriptionHandler::OnTimerCallback
  - nl::Weave::Profiles::SubscriptionHandler::RefreshTimer
  - nl::Weave::Profiles::SubscriptionHandler::TimerEventHandler
  - nl::Weave::Profiles::SubscriptionHandler::CheckEventUpToDate
  - nl::Weave::Profiles::SubscriptionHandler::FindNextImportanceForTransfer
  - nl::Weave::Profiles::SubscriptionHandler::SetEventLogEndpoint
  - nl::Weave::Profiles::SubscriptionHandler::GetStateStr
  - nl::Weave::Profiles::SubscriptionHandler::GetStateStr
  - nl::Weave::Profiles::SubscriptionHandler::MoveToState
  - nl::Weave::Profiles::SubscriptionHandler::OnAckReceived
  - nl::Weave::Profiles::SubscriptionHandler::OnSendError
  - nl::Weave::Profiles::SubscriptionHandler::OnResponseTimeout
  - nl::Weave::Profiles::SubscriptionHandler::OnMessageReceivedFromLocallyHeldExchange
  - nl::Weave::Profiles::SubscriptionHandler::SetMaxNotificationSize
  - nl::Weave::Profiles::SubscriptionHandler::LoadFromPersistedState
  - nl::Weave::Profiles::SubscriptionHandler::LoadSubscriptionState
  - nl::Weave::Profiles::SubscriptionHandler::LoadTraitInstances
  - nl::Weave::Profiles::SubscriptionHandler::SerializeSubscriptionState
  - nl::Weave::Profiles::SubscriptionHandler::SerializeTraitInstances
  - nl::Weave::Profiles::SubscriptionHandler::SerializeDeliveredEvents
  - nl::Weave::Profiles::SubscriptionHandler::LoadDeliveredEvents
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionHandler.cpp
- function_names:
  - nl::Weave::Profiles::Clear
  - nl::Weave::Profiles::Clear
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/UpdateClient.h
- function_names:
  - nl::Weave::Profiles::ResourceIdentifier::ResourceIdentifier
  - nl::Weave::Profiles::ResourceIdentifier::ResourceIdentifier
  - nl::Weave::Profiles::ResourceIdentifier::ResourceIdentifier
  - nl::Weave::Profiles::ResourceIdentifier::ResourceIdentifier
  - nl::Weave::Profiles::ResourceIdentifier::GetResourceId
  - nl::Weave::Profiles::ResourceIdentifier::GetResourceType
  - operator ==(const ResourceIdentifier & lhs, const ResourceIdentifier & rhs)
  - operator !=(const ResourceIdentifier & lhs, const ResourceIdentifier & rhs)
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/ResourceIdentifier.h
- function_names:
  - nl::Weave::Profiles::LoggingConfiguration::LoggingConfiguration
  - nl::Weave::Profiles::LoggingConfiguration::SupportsPerProfileImportance
  - nl::Weave::Profiles::LoggingConfiguration::GetProfileImportance
  - '& LoggingConfiguration::GetInstance(void)'
  - nl::Weave::Profiles::LoggingConfiguration::GetDestNodeId
  - nl::Weave::Profiles::LoggingConfiguration::GetDestNodeIPAddress
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingConfiguration.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/WdmManagedNamespace.h
- function_names:
  - nl::Weave::Profiles::AlwaysAcceptDataElementAccessControlDelegate::DataElementAccessCheck
  - nl::Weave::Profiles::SubscriptionClient::SubscriptionClient
  - nl::Weave::Profiles::SubscriptionClient::InitAsFree
  - nl::Weave::Profiles::SubscriptionClient::Reset
  - nl::Weave::Profiles::SubscriptionClient::Init
  - nl::Weave::Profiles::SubscriptionClient::LoadFromPersistedState
  - nl::Weave::Profiles::SubscriptionClient::SerializeSubscriptionState
  - nl::Weave::Profiles::SubscriptionClient::LoadSubscriptionState
  - nl::Weave::Profiles::SubscriptionClient::GetStateStr
  - nl::Weave::Profiles::SubscriptionClient::GetStateStr
  - nl::Weave::Profiles::SubscriptionClient::MoveToState
  - nl::Weave::Profiles::SubscriptionClient::EnableResubscribe
  - nl::Weave::Profiles::SubscriptionClient::DisableResubscribe
  - nl::Weave::Profiles::SubscriptionClient::ResetResubscribe
  - nl::Weave::Profiles::SubscriptionClient::IndicateActivity
  - nl::Weave::Profiles::SubscriptionClient::GetSubscriptionId
  - nl::Weave::Profiles::SubscriptionClient::DefaultEventHandler
  - nl::Weave::Profiles::SubscriptionClient::DefaultResubscribePolicyCallback
  - nl::Weave::Profiles::SubscriptionClient::_InitiateSubscription
  - nl::Weave::Profiles::SubscriptionClient::_PrepareBinding
  - nl::Weave::Profiles::SubscriptionClient::SendSubscribeRequest
  - nl::Weave::Profiles::SubscriptionClient::InitiateSubscription
  - nl::Weave::Profiles::SubscriptionClient::InitiateCounterSubscription
  - nl::Weave::Profiles::SubscriptionClient::_AddRef
  - nl::Weave::Profiles::SubscriptionClient::_Release
  - nl::Weave::Profiles::SubscriptionClient::GetBinding
  - nl::Weave::Profiles::SubscriptionClient::GetPeerNodeId
  - nl::Weave::Profiles::SubscriptionClient::ReplaceExchangeContext
  - nl::Weave::Profiles::SubscriptionClient::FlushExistingExchangeContext
  - nl::Weave::Profiles::SubscriptionClient::EndSubscription
  - nl::Weave::Profiles::SubscriptionClient::_Cleanup
  - nl::Weave::Profiles::SubscriptionClient::AbortSubscription
  - nl::Weave::Profiles::SubscriptionClient::TerminateSubscription
  - nl::Weave::Profiles::SubscriptionClient::SetRetryTimer
  - nl::Weave::Profiles::SubscriptionClient::CancelSubscriptionTimer
  - nl::Weave::Profiles::SubscriptionClient::Free
  - nl::Weave::Profiles::SubscriptionClient::BindingEventCallback
  - nl::Weave::Profiles::SubscriptionClient::OnTimerCallback
  - nl::Weave::Profiles::SubscriptionClient::RefreshTimer
  - nl::Weave::Profiles::SubscriptionClient::TimerEventHandler
  - nl::Weave::Profiles::SubscriptionClient::ProcessDataList
  - nl::Weave::Profiles::SubscriptionClient::NotificationRequestHandler
  - nl::Weave::Profiles::SubscriptionClient::CancelRequestHandler
  - nl::Weave::Profiles::SubscriptionClient::OnSendError
  - nl::Weave::Profiles::SubscriptionClient::OnResponseTimeout
  - nl::Weave::Profiles::SubscriptionClient::OnMessageReceivedFromLocallyInitiatedExchange
  - nl::Weave::Profiles::SubscriptionClient::StartUpdateRetryTimer
  - nl::Weave::Profiles::SubscriptionClient::UpdateTimerEventHandler
  - nl::Weave::Profiles::SubscriptionClient::OnUpdateTimerCallback
  - nl::Weave::Profiles::SubscriptionClient::OnUpdateScheduleWorkCallback
  - nl::Weave::Profiles::SubscriptionClient::SetMaxUpdateSize
  - nl::Weave::Profiles::SubscriptionClient::MoveInProgressToPending
  - nl::Weave::Profiles::SubscriptionClient::MovePendingToInProgress
  - nl::Weave::Profiles::SubscriptionClient::MovePendingToInProgressUpdatableSinkTrait
  - nl::Weave::Profiles::SubscriptionClient::PurgeAndNotifyFailedPaths
  - nl::Weave::Profiles::SubscriptionClient::AddItemPendingUpdateSet
  - nl::Weave::Profiles::SubscriptionClient::ClearPotentialDataLoss
  - nl::Weave::Profiles::SubscriptionClient::MarkFailedPendingPaths
  - nl::Weave::Profiles::SubscriptionClient::FilterNotifiedPath
  - nl::Weave::Profiles::SubscriptionClient::LockUpdateMutex
  - nl::Weave::Profiles::SubscriptionClient::UnlockUpdateMutex
  - nl::Weave::Profiles::SubscriptionClient::WillRetryUpdate
  - nl::Weave::Profiles::SubscriptionClient::UpdateCompleteEventCbHelper
  - nl::Weave::Profiles::SubscriptionClient::NoMorePendingEventCbHelper
  - nl::Weave::Profiles::SubscriptionClient::SetPendingSetState
  - nl::Weave::Profiles::SubscriptionClient::OnUpdateResponse
  - nl::Weave::Profiles::SubscriptionClient::OnUpdateNoResponse
  - nl::Weave::Profiles::SubscriptionClient::UpdateEventCallback
  - nl::Weave::Profiles::SubscriptionClient::SetUpdated
  - nl::Weave::Profiles::SubscriptionClient::ClearUpdated
  - nl::Weave::Profiles::SubscriptionClient::DiscardUpdates
  - nl::Weave::Profiles::SubscriptionClient::AbortUpdates
  - nl::Weave::Profiles::SubscriptionClient::RefreshUpdatableSinkTrait
  - nl::Weave::Profiles::SubscriptionClient::SuspendUpdateRetries
  - nl::Weave::Profiles::SubscriptionClient::PurgePendingUpdate
  - nl::Weave::Profiles::SubscriptionClient::PurgePendingUpdatableSinkTrait
  - nl::Weave::Profiles::SubscriptionClient::SetUpdateStartVersions
  - nl::Weave::Profiles::SubscriptionClient::SendSingleUpdateRequest
  - nl::Weave::Profiles::SubscriptionClient::FormAndSendUpdate
  - nl::Weave::Profiles::SubscriptionClient::FlushUpdate
  - nl::Weave::Profiles::SubscriptionClient::FlushUpdate
  - nl::Weave::Profiles::SubscriptionClient::CheckForSinksWithDataLoss
  - nl::Weave::Profiles::SubscriptionClient::CheckForSinksWithDataLossIteratorCb
  - nl::Weave::Profiles::SubscriptionClient::OnCatalogChanged
  - nl::Weave::Profiles::SubscriptionClient::ConfigureUpdatableSinks
  - nl::Weave::Profiles::SubscriptionClient::ConfigureUpdatableSinkTrait
  - nl::Weave::Profiles::SubscriptionClient::CleanupUpdatableSinkTrait
  - SubscriptionClient::UpdateRequestContext::Reset()
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionClient.cpp
- function_names:
  - nl::Weave::Profiles::EventWriterTLVCopy
  - nl::Weave::Profiles::LogEvent
  - nl::Weave::Profiles::LogEvent
  - nl::Weave::Profiles::LogEvent
  - nl::Weave::Profiles::LogEvent
  - nl::Weave::Profiles::PlainTextWriter
  - nl::Weave::Profiles::LogFreeform
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/EventLogging.cpp
- function_names:
  - nl::Weave::Profiles::Command
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/Command.h
- function_names:
  - '* operator new(size_t, void * p) throw()'
  - '* operator new[](size_t, void * p) throw()'
  - '& LoggingManagement::GetInstance(void)'
  - nl::Weave::Profiles::LoggingManagement::AlwaysFail
  - nl::Weave::Profiles::LoggingManagement::CopyToNextBuffer
  - nl::Weave::Profiles::LoggingManagement::EnsureSpace
  - nl::Weave::Profiles::LoggingManagement::BlitEvent
  - nl::Weave::Profiles::LoggingManagement::SkipEvent
  - nl::Weave::Profiles::LoggingManagement::CreateLoggingManagement
  - nl::Weave::Profiles::LoggingManagement::DestroyLoggingManagement
  - nl::Weave::Profiles::LoggingManagement::SerializeEvents
  - nl::Weave::Profiles::LoggingManagement::LoadEvents
  - nl::Weave::Profiles::LoggingManagement::MarkShutdownInProgress
  - nl::Weave::Profiles::LoggingManagement::CancelShutdownInProgress
  - nl::Weave::Profiles::LoggingManagement::IsShutdownInProgress
  - nl::Weave::Profiles::LoggingManagement::SetExchangeManager
  - nl::Weave::Profiles::LoggingManagement::LoggingManagement
  - nl::Weave::Profiles::LoggingManagement::LoggingManagement
  - nl::Weave::Profiles::LoggingManagement::GetCurrentImportance
  - nl::Weave::Profiles::LoggingManagement::GetMaxImportance
  - nl::Weave::Profiles::CircularEventBuffer::VendEventID
  - nl::Weave::Profiles::LoggingManagement::GetLastEventID
  - nl::Weave::Profiles::LoggingManagement::GetFirstEventID
  - nl::Weave::Profiles::LoggingManagement::GetImportanceBuffer
  - nl::Weave::Profiles::LoggingManagement::RegisterEventCallbackForImportance
  - nl::Weave::Profiles::LoggingManagement::RegisterEventCallbackForImportance
  - nl::Weave::Profiles::LoggingManagement::RegisterEventCallbackForImportance
  - nl::Weave::Profiles::LoggingManagement::BlitExternalEvent
  - nl::Weave::Profiles::LoggingManagement::UnregisterEventCallbackForImportance
  - nl::Weave::Profiles::LoggingManagement::CopyAndAdjustDeltaTime
  - nl::Weave::Profiles::LoggingManagement::LogEvent
  - nl::Weave::Profiles::LoggingManagement::LogEventPrivate
  - nl::Weave::Profiles::LoggingManagement::ThrottleLogger
  - nl::Weave::Profiles::LoggingManagement::UnthrottleLogger
  - nl::Weave::Profiles::LoggingManagement::CopyEvent
  - nl::Weave::Profiles::LoggingManagement::FindExternalEvents
  - nl::Weave::Profiles::LoggingManagement::EventIterator
  - nl::Weave::Profiles::LoggingManagement::CopyEventsSince
  - nl::Weave::Profiles::LoggingManagement::FetchEventsSince
  - nl::Weave::Profiles::LoggingManagement::GetEventReader
  - nl::Weave::Profiles::LoggingManagement::FetchEventParameters
  - nl::Weave::Profiles::LoggingManagement::EvictEvent
  - nl::Weave::Profiles::LoggingManagement::LoggingFlushHandler
  - nl::Weave::Profiles::LoggingManagement::FlushHandler
  - nl::Weave::Profiles::LoggingManagement::SignalUploadDone
  - nl::Weave::Profiles::LoggingManagement::ScheduleFlushIfNeeded
  - nl::Weave::Profiles::LoggingManagement::CheckShouldRunBDX
  - nl::Weave::Profiles::LoggingManagement::CheckShouldRunWDM
  - nl::Weave::Profiles::LoggingManagement::SetLoggingEndpoint
  - nl::Weave::Profiles::LoggingManagement::GetBytesWritten
  - nl::Weave::Profiles::LoggingManagement::NotifyEventsDelivered
  - nl::Weave::Profiles::LoggingManagement::GetExternalEventsFromEventId
  - nl::Weave::Profiles::LoggingManagement::SetBDXUploader
  - nl::Weave::Profiles::CircularEventBuffer::CircularEventBuffer
  - nl::Weave::Profiles::CircularEventBuffer::IsFinalDestinationForImportance
  - nl::Weave::Profiles::CircularEventBuffer::AddEvent
  - nl::Weave::Profiles::CircularEventBuffer::AddEventUTC
  - nl::Weave::Profiles::CircularEventBuffer::RemoveEvent
  - nl::Weave::Profiles::CircularEventReader::Init
  - nl::Weave::Profiles::CircularEventBuffer::SerializeEvents
  - nl::Weave::Profiles::CircularEventBuffer::LoadEvents
  - nl::Weave::Profiles::CircularEventBuffer::GetNextBufferFunct
  - nl::Weave::Profiles::CopyAndAdjustDeltaTimeContext::CopyAndAdjustDeltaTimeContext
  - nl::Weave::Profiles::EventEnvelopeContext::EventEnvelopeContext
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/LoggingManagement.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/SingleResourceTraitCatalog.h
- function_names:
  - nl::Weave::Profiles::SubscriptionEngine::Clear
  - nl::Weave::Profiles::SubscriptionEngine::Clear
  - nl::Weave::Profiles::SubscriptionEngine::GetNotificationEngine
  - nl::Weave::Profiles::SubscriptionEngine::GetExchangeManager
  - nl::Weave::Profiles::SubscriptionEngine::SubscriptionlessNotifyDataElementAccessControlDelegate::SubscriptionlessNotifyDataElementAccessControlDelegate
  - nl::Weave::Profiles::SubscriptionEngine::UpdateRequestDataElementAccessControlDelegate::UpdateRequestDataElementAccessControlDelegate
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/SubscriptionEngine.h
- function_names:
  - nl::Weave::Profiles::TraitPath
  - nl::Weave::Profiles::TraitPath
  - operator ==(const TraitPath & rhs) const
  - nl::Weave::Profiles::IsValid
  - nl::Weave::Profiles::VersionedTraitPath
  - nl::Weave::Profiles::VersionedTraitPath
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/TraitCatalog.h
- function_names:
  - nl::Weave::Profiles::LogBDXUpload
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/LogBDXUpload.h
- function_names:
  - NotificationEngine::BasicGraphSolver::IsPropertyPathSupported(PropertyPathHandle
    aHandle)
  - "NotificationEngine::BasicGraphSolver::RetrieveTraitInstanceData(NotifyRequestBuilder
    * aBuilder,\n                                                                            TraitDataHandle
    aTraitDataHandle,\n                                                                            SchemaVersion
    aSchemaVersion, bool aRetrieveAll)"
  - NotificationEngine::BasicGraphSolver::SetDirty(TraitDataHandle aDataHandle, PropertyPathHandle
    aPropertyHandle)
  - NotificationEngine::BasicGraphSolver::ClearDirty()
  - NotificationEngine::IntermediateGraphSolver::Store::Store()
  - NotificationEngine::IntermediateGraphSolver::Store::AddItem(TraitPath aItem)
  - NotificationEngine::IntermediateGraphSolver::Store::RemoveItem(TraitDataHandle
    aDataHandle)
  - NotificationEngine::IntermediateGraphSolver::Store::RemoveItemAt(uint32_t aIndex)
  - NotificationEngine::IntermediateGraphSolver::Store::IsPresent(TraitPath aItem)
  - NotificationEngine::IntermediateGraphSolver::IsPropertyPathSupported(PropertyPathHandle
    aHandle)
  - NotificationEngine::IntermediateGraphSolver::DeleteKey(TraitDataHandle aDataHandle,
    PropertyPathHandle aPropertyHandle)
  - NotificationEngine::IntermediateGraphSolver::SetDirty(TraitDataHandle aDataHandle,
    PropertyPathHandle aPropertyHandle)
  - "NotificationEngine::IntermediateGraphSolver::GetNextCandidateHandle(uint32_t
    & aChangeStoreCursor,\n                                                                                       TraitDataHandle
    aTargetDataHandle,\n                                                                                       bool
    & aCandidateHandleIsDelete)"
  - "NotificationEngine::IntermediateGraphSolver::RetrieveTraitInstanceData(NotifyRequestBuilder
    * aBuilder,\n                                                                                   TraitDataHandle
    aTraitDataHandle,\n                                                                                   SchemaVersion
    aSchemaVersion, bool aRetrieveAll)"
  - "NotificationEngine::IntermediateGraphSolver::ClearTraitInstanceDirty(void * aDataSource,
    TraitDataHandle aDataHandle,\n                                                                          void
    * aContext)"
  - NotificationEngine::IntermediateGraphSolver::ClearDirty()
  - NotificationEngine::IntermediateGraphSolver::Store::Clear()
  - "NotificationEngine::NotifyRequestBuilder::Init(PacketBuffer * aBuf, TLV::TLVWriter
    * aWriter,\n                                                           SubscriptionHandler
    * aSubHandler,\n                                                           uint32_t
    aMaxPayloadSize)"
  - NotificationEngine::NotifyRequestBuilder::StartNotifyRequest()
  - NotificationEngine::NotifyRequestBuilder::EndNotifyRequest()
  - NotificationEngine::NotifyRequestBuilder::StartDataList()
  - NotificationEngine::NotifyRequestBuilder::EndDataList()
  - NotificationEngine::NotifyRequestBuilder::StartEventList()
  - NotificationEngine::NotifyRequestBuilder::EndEventList()
  - "NotificationEngine::NotifyRequestBuilder::WriteDataElement(TraitDataHandle aTraitDataHandle,
    PropertyPathHandle aPropertyPathHandle,\n                                                           SchemaVersion
    aSchemaVersion, PropertyPathHandle * aMergeDataHandleSet,\n                                                           uint32_t
    aNumMergeDataHandles, PropertyPathHandle * aDeleteHandleSet,\n                                                           uint32_t
    aNumDeleteHandles)"
  - NotificationEngine::NotifyRequestBuilder::MoveToState(NotifyRequestBuilderState
    aDesiredState)
  - NotificationEngine::NotifyRequestBuilder::Checkpoint(TLVWriter & aPoint)
  - NotificationEngine::NotifyRequestBuilder::Rollback(TLVWriter & aPoint)
  - NotificationEngine::Init
  - NotificationEngine::DeleteKey
  - NotificationEngine::SetDirty
  - NotificationEngine::RetrieveTraitInstanceData
  - NotificationEngine::SendNotify
  - NotificationEngine::OnNotifyConfirm
  - NotificationEngine::BuildSingleNotifyRequestEventList
  - NotificationEngine::BuildSingleNotifyRequestDataList
  - NotificationEngine::BuildSingleNotifyRequest
  - NotificationEngine::SendSubscriptionlessNotification
  - NotificationEngine::BuildSubscriptionlessNotification
  - NotificationEngine::Run
  - NotificationEngine::ScheduleRun
  - NotificationEngine::Run
  - NotificationEngine::EnableNotifications
  - NotificationEngine::DisableNotifications
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/NotificationEngine.cpp
- function_names:
  - nl::Weave::Profiles::ViewClient::ViewClient
  - nl::Weave::Profiles::ViewClient::Init
  - nl::Weave::Profiles::ViewClient::SendRequest
  - nl::Weave::Profiles::ViewClient::SendRequest
  - nl::Weave::Profiles::ViewClient::Cancel
  - nl::Weave::Profiles::ViewClient::OnSendError
  - nl::Weave::Profiles::ViewClient::OnResponseTimeout
  - nl::Weave::Profiles::ViewClient::OnMessageReceived
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.cpp
- function_names:
  - nl::Weave::Profiles::CommandSender::Clear
  - nl::Weave::Profiles::CommandSender::Clear
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.h
- function_names:
  - nl::Weave::Profiles::EventOptions::EventOptions
  - nl::Weave::Profiles::EventOptions::EventOptions
  - nl::Weave::Profiles::EventOptions::EventOptions
  - nl::Weave::Profiles::EventOptions::EventOptions
  - nl::Weave::Profiles::EventOptions::EventOptions
  - nl::Weave::Profiles::EventOptions::EventOptions
  - nl::Weave::Profiles::EventOptions::EventOptions
  - nl::Weave::Profiles::EventOptions::EventOptions
  - nl::Weave::Profiles::EventLoadOutContext::EventLoadOutContext
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/EventLoggingTypes.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/SingleResourceTraitCatalog.cpp
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/ViewClient.h
- function_names: []
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/EventLoggingTags.h
- function_names:
  - nl::Weave::Profiles::IsVersionNewer
  - nl::Weave::Profiles::IsVersionNewerOrEqual
  - nl::Weave::Profiles::SchemaVersionRange
  - nl::Weave::Profiles::SchemaVersionRange
  - operator ==(const SchemaVersionRange & rhs) const
  - nl::Weave::Profiles::IsValid
  - nl::Weave::Profiles::BuilderBase::GetError
  - nl::Weave::Profiles::BuilderBase::GetWriter
  - nl::Weave::Profiles::StatusList::Builder::UseDeprecatedFormat
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/MessageDef.h
- function_names:
  - CommandSender::SynchronizedTraitState::Init()
  - CommandSender::SynchronizedTraitState::HasDataCaughtUp(void)
  - CommandSender::SendParams::PopulateTraitPath(TraitCatalogBase<TraitDataSink> *aCatalog,
    TraitDataSink *aSink, uint32_t aCommandType)
  - nl::Weave::Profiles::CommandSender::Init
  - nl::Weave::Profiles::CommandSender::Close
  - nl::Weave::Profiles::CommandSender::SendCommand
  - nl::Weave::Profiles::CommandSender::SendCommand
  - nl::Weave::Profiles::CommandSender::DefaultEventHandler
  - nl::Weave::Profiles::CommandSender::OnSendError
  - nl::Weave::Profiles::CommandSender::OnResponseTimeout
  - nl::Weave::Profiles::CommandSender::OnMessageReceived
  source_file: /src/openweave-core/src/lib/profiles/data-management/Current/CommandSender.cpp
- function_names:
  - TimeChangeNotification::TimeChangeNotification
  - TimeChangeNotification::Encode
  - TimeChangeNotification::Decode
  - TimeSyncRequest::TimeSyncRequest
  - TimeSyncRequest::Init
  - TimeSyncRequest::Encode
  - TimeSyncRequest::Decode
  - TimeSyncResponse::TimeSyncResponse
  - TimeSyncResponse::Init
  - TimeSyncResponse::Encode
  - TimeSyncResponse::Decode
  - _TimeSyncNodeBase::_TimeSyncNodeBase
  - _TimeSyncNodeBase::Init
  - _TimeSyncNodeBase::GetClock_Monotonic
  - _TimeSyncNodeBase::GetClock_MonotonicHiRes
  - _TimeSyncNodeBase::GetClock_RealTime
  - _TimeSyncNodeBase::SetClock_RealTime
  source_file: /src/openweave-core/src/lib/profiles/time/WeaveTime.cpp
- function_names:
  - TimeSyncNode::InitCoordinator
  - TimeSyncNode::_ShutdownCoordinator
  - TimeSyncNode::_OnSyncSucceeded
  source_file: /src/openweave-core/src/lib/profiles/time/WeaveTimeCoordinator.cpp
- function_names:
  - TimeSyncNode::InitClient
  - TimeSyncNode::_InitClient
  - TimeSyncNode::_ShutdownClient
  - TimeSyncNode::AbortOnError
  - TimeSyncNode::GetNextLikelihood
  - TimeSyncNode::GetClientStateName
  - TimeSyncNode::SetClientState
  - TimeSyncNode::GetClientState
  - TimeSyncNode::GetCapacityOfContactList
  - TimeSyncNode::InvalidateServiceContact
  - TimeSyncNode::InvalidateAllContacts
  - TimeSyncNode::SetAllValidContactsToIdleAndInvalidateResponse
  - TimeSyncNode::SetAllCompletedContactsToIdle
  - TimeSyncNode::GetNumNotYetCompletedContacts
  - TimeSyncNode::GetNumReliableResponses
  - TimeSyncNode::GetNextIdleContact
  - TimeSyncNode::SetupUnicastCommContext
  - TimeSyncNode::DestroyCommContext
  - TimeSyncNode::SyncWithNodes
  - aForceDiscoverAgain
  - TimeSyncNode::Abort
  - TimeSyncNode::StoreNotifyingContact
  - TimeSyncNode::RegisterCommError
  - TimeSyncNode::SendSyncRequest
  - TimeSyncNode::EnterState_Sync_1
  - TimeSyncNode::EnterState_Sync_2
  - TimeSyncNode::EnterState_ServiceSync_1
  - TimeSyncNode::EnterState_ServiceSync_2
  - TimeSyncNode::EnterState_Discover
  - TimeSyncNode::SyncWithService
  - TimeSyncNode::FindReplaceableContact
  - TimeSyncNode::UpdateMulticastSyncResponse
  - TimeSyncNode::UpdateUnicastSyncResponse
  - TimeSyncNode::CallbackForSyncCompletion
  - TimeSyncNode::EndServiceSyncAndTryCalculateTimeFix
  - TimeSyncNode::EndLocalSyncAndTryCalculateTimeFix
  - TimeSyncNode::HandleUnicastSyncResponse
  - TimeSyncNode::HandleMulticastSyncResponse
  - TimeSyncNode::HandleTimeChangeNotification
  - TimeSyncNode::HandleMulticastResponseTimeout
  - TimeSyncNode::HandleUnicastResponseTimeout
  - TimeSyncNode::DisableAutoSync
  - TimeSyncNode::EnableAutoSync
  - TimeSyncNode::AutoSyncNow
  - TimeSyncNode::HandleAutoSyncTimeout
  - TimeSyncNode::HandleAutoDiscoveryTimeout
  - SingleSourceTimeSyncClient::SetClientState
  - SingleSourceTimeSyncClient::Init
  - SingleSourceTimeSyncClient::Abort
  - SingleSourceTimeSyncClient::Sync
  - SingleSourceTimeSyncClient::SendSyncRequest
  - SingleSourceTimeSyncClient::HandleSyncResponse
  - SingleSourceTimeSyncClient::RegisterSyncResultIfNewOrBetter
  - SingleSourceTimeSyncClient::FinalProcessing
  - SingleSourceTimeSyncClient::EnterSync2
  - SingleSourceTimeSyncClient::OnSyncResponse
  - SingleSourceTimeSyncClient::OnResponseTimeout
  - SingleSourceTimeSyncClient::ProceedToNextState
  - SingleSourceTimeSyncClient::HandleResponseTimeout
  - SingleSourceTimeSyncClient::_AbortWithCallback
  - SingleSourceTimeSyncClient::HandleTimeChangeNotification
  - SingleSourceTimeSyncClient::GetClientStateName
  source_file: /src/openweave-core/src/lib/profiles/time/WeaveTimeClient.cpp
- function_names:
  - TimeSyncNode::ClearState
  - TimeSyncNode::Shutdown
  - TimeSyncNode::InitServer
  - TimeSyncNode::_InitServer
  - TimeSyncNode::_ShutdownServer
  - TimeSyncNode::HandleUnreliableAfterBootTimer
  - TimeSyncNode::HandleSyncRequest
  - TimeSyncNode::GetServerState
  - TimeSyncNode::RegisterCorrectionFromServerOrNtp
  - TimeSyncNode::RegisterLocalSyncOperation
  - TimeSyncNode::MulticastTimeChangeNotification
  source_file: /src/openweave-core/src/lib/profiles/time/WeaveTimeServer.cpp
- function_names:
  - Weave::Profiles::Time::TimeZoneUtcOffset
  - Weave::Profiles::Time::TimeChangeNotification
  - Weave::Profiles::Time::TimeSyncRequest
  - Weave::Profiles::Time::TimeSyncResponse
  - Weave::Profiles::Time::_TimeSyncNodeBase::GetFabricState
  - Weave::Profiles::Time::_TimeSyncNodeBase::GetExchangeMgr
  - Weave::Profiles::Time::Contact
  - Weave::Profiles::Time::ServingNode
  - Weave::Profiles::Time::_TimeSyncNodeBase
  source_file: /src/openweave-core/src/lib/profiles/time/WeaveTime.h
- function_names:
  - TimeZoneUtcOffset::GetCurrentLocalTime
  - TimeZoneUtcOffset::Decode
  - TimeZoneUtcOffset::Encode
  source_file: /src/openweave-core/src/lib/profiles/time/WeaveTimeZone.cpp
- function_names:
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatReceiver::WeaveHeartbeatReceiver
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatReceiver::Init
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatReceiver::Shutdown
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatReceiver::HandleHeartbeat
  source_file: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatReceiver.cpp
- function_names:
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender
  - nl::Weave::Profiles::Heartbeat::Clear
  - nl::Weave::Profiles::Heartbeat::Clear
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatReceiver
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::GetBinding
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::GetRequestAck
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::SetRequestAck
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::GetSubscriptionState
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::SetSubscriptionState
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::GetEventCallback
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::SetEventCallback
  source_file: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeat.h
- function_names:
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::WeaveHeartbeatSender
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::Init
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::Shutdown
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::GetConfiguration
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::SetConfiguration
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::StartHeartbeat
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::ScheduleHeartbeat
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::StopHeartbeat
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::SendHeartbeatNow
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::GetHeartbeatBase
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::GetPlatformTimeMs
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::GetRandomInterval
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::HandleHeartbeatTimer
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::SendHeartbeat
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::DefaultEventHandler
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::BindingEventCallback
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::HandleAckReceived
  - nl::Weave::Profiles::Heartbeat::WeaveHeartbeatSender::HandleSendError
  source_file: /src/openweave-core/src/lib/profiles/heartbeat/WeaveHeartbeatSender.cpp
- function_names:
  - UseStdoutLineBuffering
  - InitializeWeave
  - ShutdownWeave
  - DriveIO
  - nl::Weave::Platform::PersistedStorage::Read
  - nl::Weave::Platform::PersistedStorage::Write
  source_file: /src/openweave-core/src/examples/weave-app-common.cpp
- function_names:
  - Now
  source_file: /src/openweave-core/src/examples/weave-app-common.h
- function_names:
  - HandleEchoRequestReceived
  - HandleConnectionReceived
  - HandleConnectionClosed
  - main
  source_file: /src/openweave-core/src/examples/echo/weave-echo-responder.cpp
- function_names:
  - EchoIntervalExpired
  - FormulateEchoRequestBuffer
  - SendEchoRequest
  - HandleEchoResponseReceived
  - StartClientConnection
  - CloseClientConnection
  - HandleConnectionComplete
  - HandleConnectionClosed
  - main
  source_file: /src/openweave-core/src/examples/echo/weave-echo-requester.cpp
- function_names: []
  source_file: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.h
- function_names:
  - nl::Ble::Platform::BlueZ::BluezBleApplicationDelegate::NotifyWeaveConnectionClosed
  - nl::Ble::Platform::BlueZ::CloseBleconnectionCB
  source_file: /src/openweave-core/src/platform/ble/bluez/BluezBleApplicationDelegate.cpp
- function_names: []
  source_file: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.h
- function_names: []
  source_file: /src/openweave-core/src/platform/ble/bluez/WoBluez.h
- function_names:
  - nl::Ble::Platform::BlueZ::WeaveRegisterSetup
  - nl::Ble::Platform::BlueZ::WeaveRegisterReply
  - nl::Ble::Platform::BlueZ::WeaveUnregisterSetup
  - nl::Ble::Platform::BlueZ::WeaveUnregisterReply
  - nl::Ble::Platform::BlueZ::WeaveAdvertisingGetType
  - nl::Ble::Platform::BlueZ::GetWeaveUUIDs
  - nl::Ble::Platform::BlueZ::WeaveServiceDataCheck
  - nl::Ble::Platform::BlueZ::AppendArrayVariant
  - nl::Ble::Platform::BlueZ::DictAppendBasicArray
  - nl::Ble::Platform::BlueZ::GetWeaveServiceData
  - nl::Ble::Platform::BlueZ::WeaveNameCheck
  - nl::Ble::Platform::BlueZ::WeaveGetName
  - nl::Ble::Platform::BlueZ::WeaveDestroyAdvertising
  - nl::Ble::Platform::BlueZ::SetAlias
  - nl::Ble::Platform::BlueZ::EnableDiscoverable
  - nl::Ble::Platform::BlueZ::AdvertisingRegister
  - nl::Ble::Platform::BlueZ::WeaveDestroyProfile
  - nl::Ble::Platform::BlueZ::RegisterWeaveAppSetup
  - nl::Ble::Platform::BlueZ::RegisterWeaveAppReply
  - nl::Ble::Platform::BlueZ::SetupWeaveApp
  - nl::Ble::Platform::BlueZ::WeaveCharacteristicDestroy
  - nl::Ble::Platform::BlueZ::WeaveServiceGetUUID
  - nl::Ble::Platform::BlueZ::WeaveServiceGetPrimary
  - nl::Ble::Platform::BlueZ::ServiceDestroy
  - nl::Ble::Platform::BlueZ::RegisterWeaveService
  - nl::Ble::Platform::BlueZ::CharacteristicGetUUID
  - nl::Ble::Platform::BlueZ::CharacteristicGetService
  - nl::Ble::Platform::BlueZ::CharacteristicGetValue
  - nl::Ble::Platform::BlueZ::CharacteristicGetNotifying
  - nl::Ble::Platform::BlueZ::CharacteristicGetFlags
  - nl::Ble::Platform::BlueZ::CharacteristicRead
  - nl::Ble::Platform::BlueZ::WritePipeIORead
  - nl::Ble::Platform::BlueZ::PipeIODestroy
  - nl::Ble::Platform::BlueZ::CharacteristicCreatePipe
  - nl::Ble::Platform::BlueZ::CharacteristicAcquireWrite
  - nl::Ble::Platform::BlueZ::CharacteristicAcquireNotify
  - nl::Ble::Platform::BlueZ::CharacteristicWrite
  - nl::Ble::Platform::BlueZ::CharacteristicStartNotify
  - nl::Ble::Platform::BlueZ::CharacteristicStopNotify
  - nl::Ble::Platform::BlueZ::CharacteristicIndicationConf
  - nl::Ble::Platform::BlueZ::CharacteristicPipeAcquired
  - nl::Ble::Platform::BlueZ::RegisterWeaveCharacteristic
  - nl::Ble::Platform::BlueZ::WeaveClientConnectHandler
  - nl::Ble::Platform::BlueZ::WeaveClientDisconnectHandler
  - nl::Ble::Platform::BlueZ::CheckDeviceIsChild
  - nl::Ble::Platform::BlueZ::WeaveAdapterAdded
  - nl::Ble::Platform::BlueZ::WeaveProfileAdded
  - nl::Ble::Platform::BlueZ::WeaveAdvertisingAdded
  - nl::Ble::Platform::BlueZ::WeaveDeviceAdded
  - nl::Ble::Platform::BlueZ::WeaveProxyAdded
  - nl::Ble::Platform::BlueZ::WeaveProxyDeleted
  - nl::Ble::Platform::BlueZ::WeaveDisconnReply
  - nl::Ble::Platform::BlueZ::WeaveDeviceDisconnect
  - nl::Ble::Platform::BlueZ::WeavePropertyChange
  - nl::Ble::Platform::BlueZ::PowerCb
  - nl::Ble::Platform::BlueZ::WeaveClientReady
  - nl::Ble::Platform::BlueZ::GetMTUWeaveCb
  - nl::Ble::Platform::BlueZ::CloseBleconnection
  - nl::Ble::Platform::BlueZ::ExitBluezIOThread
  - nl::Ble::Platform::BlueZ::RunOnBluezIOThread
  - nl::Ble::Platform::BlueZ::RunBluezIOThread
  source_file: /src/openweave-core/src/platform/ble/bluez/BluezHelperCode.cpp
- function_names:
  - nl::Ble::Platform::BlueZ::WoBLEz_NewConnection
  - nl::Ble::Platform::BlueZ::WoBLEz_WriteReceived
  - nl::Ble::Platform::BlueZ::WoBLEz_SendIndication
  - nl::Ble::Platform::BlueZ::WoBLEz_ScheduleSendIndication
  - nl::Ble::Platform::BlueZ::WoBLEz_ConnectionClosed
  - nl::Ble::Platform::BlueZ::WoBLEz_SubscriptionChange
  - nl::Ble::Platform::BlueZ::WoBLEz_IndicationConfirmation
  source_file: /src/openweave-core/src/platform/ble/bluez/WoBluez.cpp
- function_names: []
  source_file: /src/openweave-core/src/platform/ble/bluez/WoBluezLayer.h
- function_names:
  - nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::BluezBlePlatformDelegate
  - nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::GetMTU
  - nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::SubscribeCharacteristic
  - nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::UnsubscribeCharacteristic
  - nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::CloseConnection
  - nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::SendIndication
  - nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::SendWriteRequest
  - nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::SendReadRequest
  - nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::SendReadResponse
  - nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::SetSendIndicationCallback
  - nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::SetGetMTUCallback
  - nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::SendToWeaveThread
  - nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::HandleBleDelegate
  - nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::NewEventParams
  - nl::Ble::Platform::BlueZ::BluezBlePlatformDelegate::ReleaseEventParams
  source_file: /src/openweave-core/src/platform/ble/bluez/BluezBlePlatformDelegate.cpp
- function_names:
  - nl::Ble::Platform::BlueZ::BluezBleApplicationDelegate::BluezBleApplicationDelegate
  - ~BluezBleApplicationDelegate()
  source_file: /src/openweave-core/src/platform/ble/bluez/BluezBleApplicationDelegate.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.h
- function_names:
  - Java_com_example_PingTest_PingWrapper_pingNode
  - PingNode
  - SendEchoRequest
  - HandleEchoResponse
  - InitWeaveStack
  - ShutdownWeaveStack
  - ServiceNetwork
  - Now
  - main
  source_file: /src/openweave-core/src/test-apps/AndroidTest.cpp
- function_names:
  - TestMismatchedCTraitDataSource::TestMismatchedCTraitDataSource
  - TestMismatchedCTraitDataSource::SetValue
  - TestMismatchedCTraitDataSource::GetLeafData
  - TestCTraitDataSink::TestCTraitDataSink
  - TestCTraitDataSink::Reset
  - TestCTraitDataSink::WasPathHandleSet
  - TestCTraitDataSink::WasAnyPathHandleSet
  - TestCTraitDataSink::SetLeafData
  - TestCTraitDataSink::OnEvent
  - TestMismatchedCTraitDataSink::TestMismatchedCTraitDataSink
  - TestMismatchedCTraitDataSink::Reset
  - TestMismatchedCTraitDataSink::WasPathHandleSet
  - TestMismatchedCTraitDataSink::WasAnyPathHandleSet
  - TestMismatchedCTraitDataSink::SetLeafData
  - TestMismatchedCTraitDataSink::OnEvent
  source_file: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.cpp
- function_names:
  - TestAuthDelegate::TestAuthDelegate
  - TestAuthDelegate::EncodeNodeCertInfo
  - TestAuthDelegate::GenerateNodeSignature
  - TestAuthDelegate::EncodeNodePayload
  - TestAuthDelegate::BeginValidation
  - TestAuthDelegate::OnPeerCertsLoaded
  - TestAuthDelegate::HandleValidationResult
  - TestAuthDelegate::EndValidation
  - TestAuthDelegate::GetNodeCertInfo
  - TestAuthDelegate::GetNodePrivateKey
  - TestAuthDelegate::ReleaseNodePrivateKey
  - TestAuthDelegate::GetNodePayload
  - TestAuthDelegate::BeginCertValidation
  - TestAuthDelegate::HandleCertValidationResult
  - TestAuthDelegate::EndCertValidation
  - ~MessageMutator()
  - NullMutator::Reset
  - NullMutator::MutateMessage
  - NullMutator::IsComplete
  - MessageFuzzer::MessageFuzzer
  - MessageFuzzer::Reset
  - MessageFuzzer::MutateMessage
  - MessageFuzzer::IsComplete
  - '& Skip(uint16_t start, uint16_t len)'
  - '& TimeLimit(time_t timeLimit)'
  - CASEEngineTest::CASEEngineTest
  - CASEEngineTest::TestName
  - CASEEngineTest::ProposedConfig
  - '& ProposedConfig(uint32_t val)'
  - CASEEngineTest::ProposedCurve
  - '& ProposedCurve(uint32_t val)'
  - CASEEngineTest::InitiatorAllowedConfigs
  - '& InitiatorAllowedConfigs(uint8_t val)'
  - CASEEngineTest::ResponderAllowedConfigs
  - '& ResponderAllowedConfigs(uint8_t val)'
  - CASEEngineTest::InitiatorAllowedCurves
  - '& InitiatorAllowedCurves(uint8_t val)'
  - CASEEngineTest::ResponderAllowedCurves
  - '& ResponderAllowedCurves(uint8_t val)'
  - CASEEngineTest::InitiatorRequestKeyConfirm
  - '& InitiatorRequestKeyConfirm(bool val)'
  - CASEEngineTest::ResponderRequiresKeyConfirm
  - '& ResponderRequiresKeyConfirm(bool val)'
  - CASEEngineTest::ExpectReconfig
  - '& ExpectReconfig(uint32_t expectedConfig)'
  - '& ExpectReconfigCurve(uint32_t expectedCurve)'
  - CASEEngineTest::ExpectedConfig
  - CASEEngineTest::ExpectedCurve
  - CASEEngineTest::ForceRepeatedReconfig
  - '& ForceRepeatedReconfig(bool val)'
  - '& ExpectError(WEAVE_ERROR err)'
  - '& ExpectError(const char *opName, WEAVE_ERROR err)'
  - CASEEngineTest::IsExpectedError
  - CASEEngineTest::IsSuccessExpected
  - '& Mutator(MessageMutator *mutator)'
  - CASEEngineTest::LogMessageData
  - '& LogMessageData(bool val)'
  - CASEEngineTest::Run
  - CASEEngineTests_BasicTests
  - CASEEngineTests_ConfigNegotiationTests
  - CASEEngineTests_CurveNegotiationTests
  - CASEEngineTests_KeyConfirmationTests
  - CASEEngineTests_FuzzTests
  - main
  - HandleOption
  source_file: /src/openweave-core/src/test-apps/TestCASE.cpp
- function_names:
  - MockWdmViewClient::GetInstance
  - MockWdmViewClientImpl::MockWdmViewClientImpl
  - MockWdmViewClientImpl::Init
  - MockWdmViewClientImpl::StartTesting
  - MockWdmViewClientImpl::BindingEventCallback
  - MockWdmViewClientImpl::EventCallback
  source_file: /src/openweave-core/src/test-apps/MockWdmViewClient.cpp
- function_names:
  - MockDeviceDescriptionServer::MockDeviceDescriptionServer
  - MockDeviceDescriptionServer::Init
  - MockDeviceDescriptionServer::Shutdown
  - MockDeviceDescriptionServer::HandleIdentifyRequest
  source_file: /src/openweave-core/src/test-apps/MockDDServer.cpp
- function_names:
  - DefaultEntropy
  - TestEntropyFunct
  - TestRandomOutputFunction
  - TestDRBG
  - main
  source_file: /src/openweave-core/src/test-apps/TestDRBG.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/nlweavebdxclient-development.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/weave-bdx-common-development.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockTestBTrait.h
- function_names:
  - nl::Weave::Profiles::SubscriptionEngine::GetInstance
  - nl::Weave::Profiles::Platform::CriticalSectionEnter
  - nl::Weave::Profiles::Platform::CriticalSectionExit
  - ~WdmUpdateEncoderTest()
  - nl::Weave::Profiles::WdmUpdateEncoderTest::WdmUpdateEncoderTest
  - nl::Weave::Profiles::WdmUpdateEncoderTest::SetupTest
  - nl::Weave::Profiles::WdmUpdateEncoderTest::TearDownTest
  - nl::Weave::Profiles::WdmUpdateEncoderTest::InitEncoderContext
  - nl::Weave::Profiles::WdmUpdateEncoderTest::TestInitCleanup
  - nl::Weave::Profiles::WdmUpdateEncoderTest::VerifyDataList
  - nl::Weave::Profiles::WdmUpdateEncoderTest::BasicTestBody
  - nl::Weave::Profiles::WdmUpdateEncoderTest::TestOneLeaf
  - nl::Weave::Profiles::WdmUpdateEncoderTest::TestRoot
  - nl::Weave::Profiles::WdmUpdateEncoderTest::TestWholeDictionary
  - nl::Weave::Profiles::WdmUpdateEncoderTest::TestTwoProperties
  - nl::Weave::Profiles::WdmUpdateEncoderTest::TestDictionaryElements
  - nl::Weave::Profiles::WdmUpdateEncoderTest::TestStructure
  - nl::Weave::Profiles::WdmUpdateEncoderTest::TestOverflowDictionary
  - nl::Weave::Profiles::WdmUpdateEncoderTest::TestOverflowRoot
  - nl::Weave::Profiles::WdmUpdateEncoderTest::TestDataElementTooBig
  - nl::Weave::Profiles::WdmUpdateEncoderTest::TestBadInputs
  - nl::Weave::Profiles::WdmUpdateEncoderTest::TestStoreTooSmall
  - nl::Weave::Profiles::WdmUpdateEncoderTest::TestRemoveDictionaryItemsBetweenPayloads_loop
  - nl::Weave::Profiles::WdmUpdateEncoderTest::TestRemoveDictionaryItemsBetweenPayloads
  - WdmUpdateEncoderTest_InitCleanup
  - WdmUpdateEncoderTest_OneLeaf
  - WdmUpdateEncoderTest_Root
  - WdmUpdateEncoderTest_WholeDictionary
  - WdmUpdateEncoderTest_TwoProperties
  - WdmUpdateEncoderTest_DictionaryElements
  - WdmUpdateEncoderTest_Structure
  - WdmUpdateEncoderTest_OverflowDictionary
  - WdmUpdateEncoderTest_OverflowRoot
  - WdmUpdateEncoderTest_DataElementTooBig
  - WdmUpdateEncoderTest_BadInputs
  - WdmUpdateEncoderTest_StoreTooSmall
  - WdmUpdateEncoderTest_RemoveDictionaryItemsBetweenPayloads
  - SuiteSetup
  - SuiteTeardown
  - TestSetup
  - TestTeardown
  - main
  - main
  source_file: /src/openweave-core/src/test-apps/TestWdmUpdateEncoder.cpp
- function_names:
  - TestBTraitDataSource::TestBTraitDataSource
  - TestBTraitDataSource::Reset
  - TestBTraitDataSource::GetData
  - TestBTraitDataSource::SetNullifiedPath
  - TestBTraitDataSource::SetPresentPath
  - TestBTraitDataSource::GetLeafData
  - TestBTraitDataSource::GetNextDictionaryItemKey
  - TestBTraitDataSink::TestBTraitDataSink
  - TestBTraitDataSink::Reset
  - TestBTraitDataSink::SetDataCalled
  - TestBTraitDataSink::SetPathHandleNull
  - TestBTraitDataSink::IsPathHandleSet
  - TestBTraitDataSink::IsPathHandleNull
  - TestBTraitDataSink::SetData
  - TestBTraitDataSink::SetLeafData
  source_file: /src/openweave-core/src/test-apps/MockTestBTrait.cpp
- function_names:
  - HandleConnectionReceived
  - TunServerInit
  - TunServerShutdown
  - PersistedSessionKeyExists
  - IsPersistentTunnelSessionPresent
  - SuspendAndPersistTunnelCASESession
  - RestorePersistedTunnelCASESession
  - HandleSessionPersistOnTunnelClosure
  - SendStatusReportResponse
  - HandleTunnelControlMsg
  - HandleConnectionClosed
  - HandleSecureSessionEstablished
  - HandleSecureSessionError
  - main
  source_file: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistServer.cpp
- function_names:
  - WeaveTestIntegrityTypeList
  - WeaveTestUpdateSchemeList
  - WeaveTestIntegritySpec
  - WeaveTestProductSpec
  - WeaveTestImageQuery
  - WeaveTestImageQueryResponse
  - TestSetup
  - TestTeardown
  - main
  source_file: /src/openweave-core/src/test-apps/TestSoftwareUpdate.cpp
- function_names:
  - MOCK_strlcpy
  - (&LocaleSettingsTrait::TraitSchema)
  - LocaleSettingsTraitDataSource::Mutate
  - LocaleSettingsTraitDataSource::SetLeafData
  - LocaleSettingsTraitDataSource::GetLeafData
  - LocaleCapabilitiesTraitDataSource::Mutate
  - LocaleCapabilitiesTraitDataSource::SetLeafData
  - LocaleCapabilitiesTraitDataSource::GetLeafData
  - BoltLockSettingTraitDataSource::BoltLockSettingTraitDataSource
  - BoltLockSettingTraitDataSource::Mutate
  - BoltLockSettingTraitDataSource::GetLeafData
  - TestATraitDataSource::Mutate
  - GetNextDictionaryItemKeyHelper
  - TestATraitDataSource::GetNextDictionaryItemKey
  - TestATraitDataSource::SetNullifiedPath
  - TestATraitDataSource::SetLeafData
  - TestATraitDataSource::GetData
  - TestATraitDataSource::GetLeafData
  - TestATraitDataSource::HandleCommandOperationTimeout
  - TestATraitDataSource::OnCustomCommand
  - (&TestBTrait::TraitSchema)
  - TestBTraitDataSource::SetLeafData
  - TestBTraitDataSource::Mutate
  - TestBTraitDataSource::GetLeafData
  - TestBTraitDataSource::GetNextDictionaryItemKey
  - TestBLargeTraitDataSource::TestBLargeTraitDataSource
  - TestBLargeTraitDataSource::Mutate
  - TestBLargeTraitDataSource::GetLeafData
  - TestBLargeTraitDataSource::GetNextDictionaryItemKey
  - ApplicationKeysTraitDataSource::ApplicationKeysTraitDataSource
  - ApplicationKeysTraitDataSource::Mutate
  - ApplicationKeysTraitDataSource::MutateEpochKeys
  - ApplicationKeysTraitDataSource::MutateGroupMasterKeys
  - ApplicationKeysTraitDataSource::ClearEpochKeys
  - ApplicationKeysTraitDataSource::ClearGroupMasterKeys
  - ApplicationKeysTraitDataSource::AddEpochKey
  - ApplicationKeysTraitDataSource::AddGroupMasterKey
  - ApplicationKeysTraitDataSource::GetNextDictionaryItemKey
  - ApplicationKeysTraitDataSource::GetLeafData
  - (&TestCTrait::TraitSchema)
  - TestCTraitDataSource::Mutate
  - TestCTraitDataSource::TLVPrettyPrinter
  - TestCTraitDataSource::SetLeafData
  - TestCTraitDataSource::GetLeafData
  source_file: /src/openweave-core/src/test-apps/MockSourceTraits.cpp
- function_names:
  - DeviceDescOptions::DeviceDescOptions
  - DeviceDescOptions::GetDeviceDesc
  - DeviceDescOptions::HandleOption
  source_file: /src/openweave-core/src/test-apps/DeviceDescOptions.cpp
- function_names:
  - ServiceTunnelInterfaceUp
  - VirtualRouteTable::VirtualRouteTable
  - VirtualRouteTable::FindRouteEntry
  - VirtualRouteTable::RemoveRouteEntryByConnection
  - VirtualRouteTable::NewRouteEntry
  - VirtualRouteTable::FreeRouteEntry
  - WeaveTunnelServer::WeaveTunnelServer
  - WeaveTunnelServer::HandleConnectionReceived
  - WeaveTunnelServer::Init
  - WeaveTunnelServer::Shutdown
  - WeaveTunnelServer::ProcessIPv6Message
  - SendStatusReportResponse
  - WeaveTunnelServer::StoreGatewayInfoForPriority
  - SendTunnelReconnectMessage
  - VerifyAndParseStatusResponse
  - WeaveTunnelServer::HandleReconnectResponse
  - WeaveTunnelServer::CloseConnections
  - WeaveTunnelServer::HandleTunnelControlMsg
  - WeaveTunnelServer::HandleTunnelDataMessage
  - WeaveTunnelServer::HandleConnectionClosed
  - WeaveTunnelServer::CreateServiceTunEndPoint
  - WeaveTunnelServer::SetupServiceTunEndPoint
  - WeaveTunnelServer::TeardownServiceTunEndPoint
  - WeaveTunnelServer::RecvdFromServiceTunEndPoint
  - WeaveTunnelServer::GetOutgoingConn
  - WeaveTunnelServer::HandleEchoRequestReceived
  - WeaveTunnelServer::HandleSecureSessionEstablished
  - WeaveTunnelServer::HandleSecureSessionError
  - ConnectionTable::ConnectionTable
  - ConnectionTable::AddConnection
  - ConnectionTable::RemoveConnection
  - main
  source_file: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.cpp
- function_names:
  - found_multi
  - main
  - HandleNonOptionArgs
  - StartTest
  - DriveSend
  - HandleConnectionComplete
  - HandleConnectionReceived
  - HandleConnectionClosed
  - HandleDataSent
  - HandleDataReceived
  - HandleAcceptError
  - HandleUDPMessageReceived
  - HandleUDPReceiveError
  - MakeDataBuffer
  source_file: /src/openweave-core/src/test-apps/TestDNS.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockTimeSyncUtil.h
- function_names:
  - TLVPrettyPrinter
  - DebugPrettyPrint
  - MockWdmViewServerImpl::Init
  - MockWdmViewServer::GetInstance
  - MockWdmViewServerImpl::IncomingViewRequest
  - MockWdmViewServerImpl::SimpleTest
  source_file: /src/openweave-core/src/test-apps/MockWdmViewServer.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/CASEOptions.h
- function_names:
  - MockFabricProvisioningServer::MockFabricProvisioningServer
  - MockFabricProvisioningServer::Init
  - MockFabricProvisioningServer::Preconfig
  - MockFabricProvisioningServer::Shutdown
  - MockFabricProvisioningServer::HandleCreateFabric
  - MockFabricProvisioningServer::HandleJoinExistingFabric
  - MockFabricProvisioningServer::HandleLeaveFabric
  - MockFabricProvisioningServer::HandleGetFabricConfig
  - MockFabricProvisioningServer::EnforceAccessControl
  - MockFabricProvisioningServer::IsPairedToAccount
  - MockFabricProvisioningServer::SendStatusReport
  source_file: /src/openweave-core/src/test-apps/MockFPServer.cpp
- function_names:
  - ResetTestContext
  - HandleOption
  - HandleNonOptionArgs
  - DriveSending
  - HandleEchoRequestReceived
  - HandleEchoResponseReceived
  - HandleConnectionReceived
  - StartSecureSession
  - StartClientConnection
  - HandleConnectionComplete
  - HandleConnectionClosed
  - HandleSecureSessionEstablished
  - HandleSecureSessionError
  - ParseDestAddress
  - HandleServiceMgrStatus
  source_file: /src/openweave-core/src/test-apps/weave-ping.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockTimeSyncClient.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockPairingServer.h
- function_names:
  - main
  - HandleOption
  source_file: /src/openweave-core/src/test-apps/weave-bdx-server-development.cpp
- function_names:
  - MockServiceProvisioningServer::MockServiceProvisioningServer
  - MockServiceProvisioningServer::Init
  - MockServiceProvisioningServer::Shutdown
  - MockServiceProvisioningServer::Reset
  - MockServiceProvisioningServer::Preconfig
  - MockServiceProvisioningServer::HandleRegisterServicePairAccount
  - MockServiceProvisioningServer::PrepareBindingForPairingServer
  - MockServiceProvisioningServer::HandlePairingServerBindingEvent
  - MockServiceProvisioningServer::StartConnectToPairingServer
  - MockServiceProvisioningServer::HandlePairingServerConnectionComplete
  - MockServiceProvisioningServer::HandlePairDeviceToAccountResult
  - MockServiceProvisioningServer::HandleIFJServiceFabricJoinResult
  - MockServiceProvisioningServer::EnforceAccessControl
  - MockServiceProvisioningServer::IsPairedToAccount
  - MockServiceProvisioningServer::HandlePairingServerConnectionClosed
  - MockServiceProvisioningServer::HandleUpdateService
  - MockServiceProvisioningServer::HandleUnregisterService
  - MockServiceProvisioningServer::PersistNewService
  - MockServiceProvisioningServer::UpdatedPersistedService
  - MockServiceProvisioningServer::ClearPersistedService
  - MockServiceProvisioningServer::SendStatusReport
  source_file: /src/openweave-core/src/test-apps/MockSPServer.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/TestWeaveCertData.h
- function_names:
  - CheckSelectNodeAddress
  - CheckSelectNodeAddressWithSubnet
  - TestSetup
  - TestTeardown
  - main
  source_file: /src/openweave-core/src/test-apps/TestWeaveFabricState.cpp
- function_names:
  - MockBlePlatformDelegate::SubscribeCharacteristic
  - MockBlePlatformDelegate::UnsubscribeCharacteristic
  - MockBlePlatformDelegate::CloseConnection
  - MockBlePlatformDelegate::GetMTU
  - MockBlePlatformDelegate::SendIndication
  - MockBlePlatformDelegate::SendWriteRequest
  - MockBlePlatformDelegate::SendReadRequest
  - MockBlePlatformDelegate::SendReadResponse
  source_file: /src/openweave-core/src/test-apps/MockBlePlatformDelegate.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/TestWeaveTunnel.h
- function_names:
  - '* nl::Weave::Profiles::DataManagement::SubscriptionEngine::GetInstance()'
  - WdmResponderState::init
  - MockWdmSubscriptionResponder::GetInstance
  - MockWdmSubscriptionResponderImpl::MockWdmSubscriptionResponderImpl
  - MockWdmSubscriptionResponderImpl::Init
  - MockWdmSubscriptionResponderImpl::DumpPublisherTraitChecksum
  - MockWdmSubscriptionResponderImpl::DumpClientTraitChecksum
  - MockWdmSubscriptionResponderImpl::DumpClientTraits
  - MockWdmSubscriptionResponderImpl::DumpPublisherTraits
  - MockWdmSubscriptionResponderImpl::EngineEventCallback
  - MockWdmSubscriptionResponderImpl::AddNewVersion
  - MockWdmSubscriptionResponderImpl::PublisherEventCallback
  - MockWdmSubscriptionResponderImpl::PrintVersionsLog
  - MockWdmSubscriptionResponderImpl::ClearDataSinkState
  - MockWdmSubscriptionResponderImpl::ClearDataSinkIterator
  - MockWdmSubscriptionResponderImpl::ClientEventCallback
  - MockWdmSubscriptionResponderImpl::HandlePublisherComplete
  - MockWdmSubscriptionResponderImpl::HandleClientRelease
  - MockWdmSubscriptionResponderImpl::HandleClientComplete
  - MockWdmSubscriptionResponderImpl::HandlePublisherRelease
  - MockWdmSubscriptionResponderImpl::Command_End
  - MockWdmSubscriptionResponderImpl::CommandEventHandler
  - MockWdmSubscriptionResponderImpl::Command_Send
  - MockWdmSubscriptionResponderImpl::HandleDataFlipTimeout
  - MockWdmSubscriptionResponderImpl::MonitorPublisherCurrentState
  - MockWdmSubscriptionResponderImpl::MonitorClientCurrentState
  source_file: /src/openweave-core/src/test-apps/MockWdmSubscriptionResponder.cpp
- function_names:
  - nl::Weave::Profiles::Platform::CriticalSectionEnter
  - nl::Weave::Profiles::Platform::CriticalSectionExit
  - GetTestDebugGenerator
  - GetTestLivenessGenerator
  - GetTestSecurityGenerator
  - GetTestTelemetryGenerator
  - GetTestTraitGenerator
  - InitializeEventLogging
  - MockEventGenerator::GetInstance
  - MockEventGeneratorImpl::MockEventGeneratorImpl
  - MockEventGeneratorImpl::Init
  - MockEventGeneratorImpl::HandleNextEvent
  - MockEventGeneratorImpl::SetEventGeneratorStop
  - MockEventGeneratorImpl::IsEventGeneratorStopped
  source_file: /src/openweave-core/src/test-apps/MockLoggingManager.cpp
- function_names:
  - HandleOption
  - HandleNonOptionArgs
  - GetRootDirectoryEntry
  - SendTunnelTestMessage
  - AddDeleteIPv4Address
  - GetIPAddressOfWeaveTCPConnection
  - Is48BitIPv6FabricRoutePresent
  - TestWeaveTunnelAgentInit
  - TestWeaveTunnelAgentConfigure
  - TestWeaveTunnelAgentShutdown
  - TestStartTunnelWithoutInit
  - TestBackToBackStartStopStart
  - TestTunnelOpenCompleteThenStopStart
  - TestReceiveStatusReportForTunnelOpen
  - TestTunnelOpenThenTunnelClose
  - TestStandaloneTunnelSetup
  - TestTunnelNoStatusReportReconnect
  - ResetReconnectTimeout
  - TestTunnelNoStatusReportResetReconnectBackoff
  - TestTunnelErrorStatusReportReconnect
  - TestTunnelErrorStatusReportOnTunnelClose
  - TestTunnelConnectionDownReconnect
  - TestCallTunnelDownAfterMaxReconnects
  - TestReceiveReconnectFromService
  - TestWARMRouteAddWhenTunnelEstablished
  - TestWARMRouteDeleteWhenTunnelStopped
  - TestWeavePingOverTunnel
  - TestQueueingOfTunneledPackets
  - TestTunnelStatistics
  - TestTunnelLivenessSendAndRecvResponse
  - TestTunnelLivenessDisconnectOnNoResponse
  - TestTunnelRestrictedRoutingOnTunnelOpen
  - TestTunnelRestrictedRoutingOnStandaloneTunnelOpen
  - TestTunnelResetReconnectBackoffImmediately
  - TestTunnelResetReconnectBackoffRandomized
  - TestTCPUserTimeoutOnAddrRemoval
  - TestTunnelTCPIdle
  - TestTunneledPacketCapture
  - HandleTunnelTestResponse
  - WeaveTunnelOnReconnectNotifyCB
  - SendWeavePingMessage
  - WeaveTunnelTCPIdleNotifyHandlerCB
  - SendMessageForCapture
  - MessageLayerPacketCaptureHandler
  - BindingEventCallback
  - WeaveTunnelOnStatusNotifyHandlerCB
  - main
  source_file: /src/openweave-core/src/test-apps/TestWeaveTunnelBR.cpp
- function_names:
  - WeaveProvBundle_DecodeTest
  - WeaveProvBundle_VerifyTest
  - main
  - main
  source_file: /src/openweave-core/src/test-apps/TestWeaveProvBundle.cpp
- function_names:
  - MockTimeSyncServer::MockTimeSyncServer
  - MockTimeSyncServer::Init
  - MockTimeSyncServer::Shutdown
  source_file: /src/openweave-core/src/test-apps/MockTimeSyncServer.cpp
- function_names:
  - nl::Weave::Profiles::SubscriptionEngine::GetInstance
  - nl::Weave::Profiles::Platform::CriticalSectionEnter
  - nl::Weave::Profiles::Platform::CriticalSectionExit
  - ~WdmUpdateServerTest()
  - nl::Weave::Profiles::WdmUpdateServerTest::WdmUpdateServerTest
  - nl::Weave::Profiles::WdmUpdateServerTest::SetupTest
  - nl::Weave::Profiles::WdmUpdateServerTest::TearDownTest
  - nl::Weave::Profiles::WdmUpdateServerTest::InitEncoderContext
  - nl::Weave::Profiles::WdmUpdateServerTest::TestInitCleanup
  - nl::Weave::Profiles::WdmUpdateServerTest::TLVPrettyPrinter
  - nl::Weave::Profiles::WdmUpdateServerTest::DebugPrettyPrint
  - nl::Weave::Profiles::WdmUpdateServerTest::VerifyUpdateRequest
  - nl::Weave::Profiles::WdmUpdateServerTest::UpdateServerBasicTestBody
  - nl::Weave::Profiles::WdmUpdateServerTest::TestUpdateServerConditionalOneLeaf
  - nl::Weave::Profiles::WdmUpdateServerTest::TestUpdateServerUnconditionalOneLeaf
  - nl::Weave::Profiles::WdmUpdateServerTest::TestUpdateServerMixedConditionalOneLeaf
  - nl::Weave::Profiles::WdmUpdateServerTest::TestUpdateServerConditionalTwoProperties
  - nl::Weave::Profiles::WdmUpdateServerTest::TestUpdateServerUnconditionalTwoProperties
  - nl::Weave::Profiles::WdmUpdateServerTest::TestUpdateServerMixedConditionalTwoProperties
  - WdmUpdateEncoderTest_InitCleanup
  - WdmUpdateServerTest_ConditionalOneLeaf
  - WdmUpdateServerTest_UnconditionalOneLeaf
  - WdmUpdateServerTest_MiexedConditionalOneLeaf
  - WdmUpdateServerTest_ConditionalTwoProperties
  - WdmUpdateServerTest_UnconditionalTwoProperties
  - WdmUpdateServerTest_MixedConditionalTwoProperties
  - SuiteSetup
  - SuiteTeardown
  - TestSetup
  - TestTeardown
  - main
  - main
  source_file: /src/openweave-core/src/test-apps/TestWdmUpdateServer.cpp
- function_names:
  - MockTimeSyncCoordinator::MockTimeSyncCoordinator
  - MockTimeSyncCoordinator::Init
  - MockTimeSyncCoordinator::Shutdown
  source_file: /src/openweave-core/src/test-apps/MockTimeSyncCoordinator.cpp
- function_names:
  - MockDropcamLegacyPairingServer::MockDropcamLegacyPairingServer
  - MockDropcamLegacyPairingServer::Init
  - MockDropcamLegacyPairingServer::Shutdown
  - MockDropcamLegacyPairingServer::GetCameraSecret
  - MockDropcamLegacyPairingServer::GetCameraMACAddress
  - MockDropcamLegacyPairingServer::EnforceAccessControl
  source_file: /src/openweave-core/src/test-apps/MockDCLPServer.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockNPServer.h
- function_names:
  - Abort
  - TestAssert
  - IsEqual
  - IsEqual
  - IsEqual
  - IsEqual
  - IsEqual
  - IsEqual
  - IsEqual
  - IsEqual
  - TestTextDecoding
  - TestTextEncoding
  - TestTLVDecoding
  - TestTLVEncoding
  - main
  source_file: /src/openweave-core/src/test-apps/TestDeviceDescriptor.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockOpActions.h
- function_names:
  - MockNetworkProvisioningServer::MockNetworkProvisioningServer
  - MockNetworkProvisioningServer::Init
  - MockNetworkProvisioningServer::Shutdown
  - MockNetworkProvisioningServer::Reset
  - MockNetworkProvisioningServer::Preconfig
  - MockNetworkProvisioningServer::HandleScanNetworks
  - MockNetworkProvisioningServer::ValidateNetworkConfig
  - MockNetworkProvisioningServer::HandleAddNetwork
  - MockNetworkProvisioningServer::HandleUpdateNetwork
  - MockNetworkProvisioningServer::HandleRemoveNetwork
  - MockNetworkProvisioningServer::HandleGetNetworks
  - MockNetworkProvisioningServer::HandleEnableNetwork
  - MockNetworkProvisioningServer::HandleDisableNetwork
  - MockNetworkProvisioningServer::HandleTestConnectivity
  - MockNetworkProvisioningServer::HandleSetRendezvousMode
  - MockNetworkProvisioningServer::HandleGetWirelessRegulatoryConfig
  - MockNetworkProvisioningServer::HandleSetWirelessRegulatoryConfig
  - MockNetworkProvisioningServer::EnforceAccessControl
  - MockNetworkProvisioningServer::IsPairedToAccount
  - MockNetworkProvisioningServer::HandleOpDelayComplete
  - MockNetworkProvisioningServer::CompleteOrDelayCurrentOp
  - MockNetworkProvisioningServer::CompleteCurrentOp
  - MockNetworkProvisioningServer::CompleteScanNetworks
  - MockNetworkProvisioningServer::CompleteAddNetwork
  - MockNetworkProvisioningServer::CompleteUpdateNetwork
  - MockNetworkProvisioningServer::CompleteRemoveNetwork
  - MockNetworkProvisioningServer::CompleteGetNetworks
  - MockNetworkProvisioningServer::CompleteEnableNetwork
  - MockNetworkProvisioningServer::CompleteDisableNetwork
  - MockNetworkProvisioningServer::CompleteTestConnectivity
  - MockNetworkProvisioningServer::CompleteSetRendezvousMode
  - MockNetworkProvisioningServer::CompleteGetWirelessRegulatoryConfig
  - MockNetworkProvisioningServer::CompleteSetWirelessRegulatoryConfig
  - MockNetworkProvisioningServer::PrintNetworkInfo
  - MockNetworkProvisioningServer::PrintWirelessRegConfig
  - MockNetworkProvisioningServer::SendStatusReport
  source_file: /src/openweave-core/src/test-apps/MockNPServer.cpp
- function_names:
  - Common::IsReceiver
  - Common::IsSender
  - Common::IsTesting
  - Common::WasSuccessful
  - Common::FillDataBufferPattern
  - Common::CheckDataBufferPattern
  - Common::MakeDataBuffer
  - Common::MakeDataBuffer
  - Common::MakeICMPDataBuffer
  - Common::MakeICMPv4DataBuffer
  - Common::MakeICMPv6DataBuffer
  - Common::MakeDataBuffer
  - Common::MakeDataBuffer
  - Common::HandleDataReceived
  - Common::HandleICMPDataReceived
  - Common::HandleICMPv4DataReceived
  - Common::HandleICMPv6DataReceived
  - Common::HandleDataReceived
  - Common::HandleDataReceived
  - Common::HandleUDPDataReceived
  - Common::HandleTCPDataReceived
  - Common::HandleSendTimerComplete
  - Common::HandleRawMessageReceived
  - Common::HandleRawReceiveError
  - Common::HandleUDPMessageReceived
  - Common::HandleUDPReceiveError
  source_file: /src/openweave-core/src/test-apps/TestInetLayerCommon.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/nlweavebdxclient.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockTokenPairingServer.h
- function_names:
  - IsValidPairingCodeChar
  - CheckPairingCodeChars
  - Test_IntEncodeDecode
  - MutatePairingCodeChar
  - Test_CheckCharacter
  - Test_NevisPairingCode
  - Test_KryptonitePairingCode
  - Test_Normalization
  - Test_Generation
  - TestSetup
  - TestTeardown
  - main
  source_file: /src/openweave-core/src/test-apps/TestPairingCodeUtils.cpp
- function_names:
  - TestPersistedCounterContext::TestPersistedCounterContext
  - InitializePersistedStorage
  - TestSetup
  - TestTeardown
  - CheckOOB
  - CheckReboot
  - CheckWriteNextCounterStart
  - main
  source_file: /src/openweave-core/src/test-apps/TestPersistedCounter.cpp
- function_names:
  - main
  - StartConnections
  - HandleOption
  - HandleNonOptionArgs
  - HandleMessageReceived
  - HandleConnectionReceived
  - HandleConnectionComplete
  - DriveSending
  source_file: /src/openweave-core/src/test-apps/weave-connection-tunnel.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockDMPublisher.h
- function_names:
  - MockPairingServer::MockPairingServer
  - MockPairingServer::Init
  - MockPairingServer::Shutdown
  - MockPairingServer::HandleClientRequest
  source_file: /src/openweave-core/src/test-apps/MockPairingServer.cpp
- function_names:
  - nl::Weave::Profiles::LogSampleEvent
  - nl::Weave::Profiles::DeserializeSampleEvent
  - nl::Weave::Profiles::LogOpenCloseEvent
  - nl::Weave::Profiles::LogByteStringTestEvent
  - nl::Weave::Profiles::DeserializeByteStringTestEvent
  - nl::Weave::Profiles::LogByteStringArrayTestEvent
  - nl::Weave::Profiles::DeserializeByteStringArrayTestEvent
  source_file: /src/openweave-core/src/test-apps/TestEventLoggingSchemaExamples.h
- function_names:
  - HandleTestTimeout
  - ExpireTimer
  - GetNumEventsAvailable
  - main
  - HandleConnectionComplete
  - HandleServiceMgrStatus
  source_file: /src/openweave-core/src/test-apps/weave-service-dir.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockDCLPServer.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockWdmNodeOptions.h
- function_names:
  - WriteResourceID
  - WriteResourceID
  - WriteLivenessStatusEvent
  - LogLiveness
  - KeypadEntryEventStruct::KeypadEntryEventStruct
  - UserDisabledEventStruct::UserDisabledEventStruct
  - WriteKeypadEntryEvent
  - LogKeypadEntry
  - WriteUserDisabledEvent
  - LogKeypadEnable
  - BoltActuatorEventStruct::BoltActuatorEventStruct
  - BoltLockActorStruct::BoltLockActorStruct
  - WriteBoltActuatorStateChangeEvent
  - LogBoltStateChange
  - WriteOpenCloseEvent
  - LogOpenClose
  - EventGenerator::EventGenerator
  - EventGenerator::GetNumStates
  - DebugEventGenerator::DebugEventGenerator
  - DebugEventGenerator::Generate
  - LivenessEventGenerator::LivenessEventGenerator
  - LivenessEventGenerator::Generate
  - SecurityEventGenerator::SecurityEventGenerator
  - SecurityEventGenerator::Generate
  - TelemetryEventGenerator::TelemetryEventGenerator
  - TelemetryEventGenerator::Generate
  - TestTraitEventGenerator::TestTraitEventGenerator
  - TestTraitEventGenerator::Generate
  source_file: /src/openweave-core/src/test-apps/MockEvents.cpp
- function_names:
  - KeyIds_Test1
  - main
  source_file: /src/openweave-core/src/test-apps/TestKeyIds.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/DMTestClient.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.h
- function_names:
  - LoadStandardCerts
  - SetEffectiveTime
  - WeaveCertTest_WeaveToX509
  - WeaveCertTest_X509ToWeave
  - WeaveCertTest_CertValidation
  - WeaveCertTest_CertValidTime
  - WeaveCertTest_CertUsage
  - WeaveCertTest_CertType
  - sGenerateCertSignature
  - WeaveCertTest_GenerateOperationalDeviceCert
  - WeaveCertTest_GenerateAndPrintTestOperationalDeviceCert
  - main
  source_file: /src/openweave-core/src/test-apps/TestWeaveCert.cpp
- function_names:
  - Abort
  - TestError
  - TestAssert
  - TestCase1
  - TestCase2
  - TestCase3
  - main
  - main
  source_file: /src/openweave-core/src/test-apps/TestTimeZone.cpp
- function_names:
  - MockDMPublisher::ViewIndication
  - MockDMPublisher::UpdateIndication
  - MockDMPublisher::IncompleteIndication
  - MockDMPublisher::SubscribeIndication
  - MockDMPublisher::SubscribeIndication
  - MockDMPublisher::UnsubscribeIndication
  - MockDMPublisher::CancelSubscriptionIndication
  - MockDMPublisher::NotifyConfirm
  - MockDMPublisher::Republish
  source_file: /src/openweave-core/src/test-apps/MockDMPublisher.cpp
- function_names:
  - main
  - HandleOption
  - HandleNonOptionArgs
  - HandleHeartbeatSent
  - HandleHeartbeatReceived
  - ParseDestAddress
  - HeartbeatSenderEventHandler
  - BindingEventHandler
  source_file: /src/openweave-core/src/test-apps/weave-heartbeat.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/TestECMathParams.cpp
- function_names:
  - nl::Weave::System::TestObject::Init
  - nl::Weave::System::TestObject::CheckRetention
  - nl::Weave::System::TestObject::Delay
  - nl::Weave::System::TestObject::CheckConcurrencyThread
  - nl::Weave::System::TestObject::CheckHighWatermarkThread
  - nl::Weave::System::TestObject::MultithreadedTest
  - nl::Weave::System::TestObject::CheckConcurrency
  - nl::Weave::System::TestObject::CheckHighWatermarkConcurrency
  - nl::Weave::System::TestObject::CheckHighWatermark
  - nl::Weave::System::Initialize
  - nl::Weave::System::Finalize
  - main
  source_file: /src/openweave-core/src/test-apps/TestSystemObject.cpp
- function_names:
  - ClearSecretKeyMaterial
  - DeriveAppRootKey_Test
  - DeriveAppIntermediateKey_Test
  - DeriveAppStaticKey_Test
  - DeriveAppRotatingKey_Test
  - DerivePasscodeKeys_Test
  - GetAppGroupMasterKeyId_Test
  - main
  source_file: /src/openweave-core/src/test-apps/TestAppKeys.cpp
- function_names:
  - CheckErrorStrStart
  - TestSetup
  - TestTeardown
  - main
  source_file: /src/openweave-core/src/test-apps/TestErrorStr.cpp
- function_names:
  - SimpleParseTest_SingleLongOption
  - SimpleParseTest_SingleShortOption
  - SimpleParseTest_SingleLongOptionWithValue
  - SimpleParseTest_SingleShortOptionWithValue
  - SimpleParseTest_VariousShortAndLongWithArgs
  - UnknownOptionTest_UnknownShortOption
  - UnknownOptionTest_UnknownLongOption
  - UnknownOptionTest_UnknownShortOptionAfterKnown
  - UnknownOptionTest_UnknownShortOptionBeforeKnown
  - UnknownOptionTest_UnknownShortOptionAfterArgs
  - UnknownOptionTest_UnknownLongOptionAfterArgs
  - UnknownOptionTest_IgnoreUnknownLongOption
  - UnknownOptionTest_IgnoreUnknownShortOption
  - MissingValueTest_MissingShortOptionValue
  - MissingValueTest_MissingLongOptionValue
  - ClearCallbackRecords
  - HandleOption
  - HandleNonOptionArgs
  - HandleArgError
  - main
  source_file: /src/openweave-core/src/test-apps/TestArgParser.cpp
- function_names:
  - refCount
  - testWriter
  - main
  source_file: /src/openweave-core/src/test-apps/infratest.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/TestInetLayerCommon.hpp
- function_names:
  - nl::Weave::Profiles::Platform::CriticalSectionEnter
  - nl::Weave::Profiles::Platform::CriticalSectionExit
  - SubscriptionEngine::GetInstance
  - nl::Weave::Profiles::TestWdm::TestWdm
  - nl::Weave::Profiles::TestWdm::SpoofPublisherSubscription
  - nl::Weave::Profiles::TestWdm::BindingEventCallback
  - nl::Weave::Profiles::TestWdm::ClientSubscriptionEventCallback
  - nl::Weave::Profiles::TestWdm::PublisherEventCallback
  - nl::Weave::Profiles::TestWdm::Setup
  - nl::Weave::Profiles::TestWdm::Teardown
  - nl::Weave::Profiles::TestWdm::Reset
  - nl::Weave::Profiles::TestWdm::BuildAndProcessNotify
  - nl::Weave::Profiles::TestWdm::TestCounterSubscription_BufferAllocFailure
  - TestSetup
  - TestTeardown
  - TestCounterSubscription_BufferAllocFailure
  - main
  source_file: /src/openweave-core/src/test-apps/TestWdm.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotification.h
- function_names:
  - CheckSucceededOrFailed
  - HandleSignal
  - main
  - HandleOption
  - HandleNonOptionArgs
  - PrintReceivedStats
  - HandleDataReceived
  - HandleDataReceived
  - HandleTCPConnectionComplete
  - HandleTCPConnectionClosed
  - HandleTCPDataSent
  - HandleTCPDataReceived
  - HandleTCPAcceptError
  - HandleTCPConnectionReceived
  - HandleRawMessageReceived
  - HandleRawReceiveError
  - HandleUDPMessageReceived
  - HandleUDPReceiveError
  - IsTransportReadyForSend
  - PrepareTransportForSend
  - DriveSendForDestination
  - DriveSend
  - StartTest
  - CleanupTest
  source_file: /src/openweave-core/src/test-apps/TestInetLayer.cpp
- function_names:
  - ParseAllowedKeyExportConfigs
  - KeyExportOptions::KeyExportOptions
  - KeyExportOptions::HandleOption
  - KeyExportOptions::GetNodeCertSet
  - KeyExportOptions::ReleaseNodeCertSet
  - KeyExportOptions::GenerateNodeSignature
  - KeyExportOptions::BeginCertValidation
  - KeyExportOptions::HandleCertValidationResult
  - KeyExportOptions::EndCertValidation
  - KeyExportOptions::ValidateUnsignedKeyExportMessage
  - KeyExportOptions::GetNodeCertSet
  - KeyExportOptions::ReleaseNodeCertSet
  - KeyExportOptions::GetNodePrivateKey
  - KeyExportOptions::ReleaseNodePrivateKey
  - KeyExportOptions::BeginCertValidation
  - KeyExportOptions::HandleCertValidationResult
  - KeyExportOptions::EndCertValidation
  - KeyExportOptions::ValidateUnsignedKeyExportMessage
  source_file: /src/openweave-core/src/test-apps/KeyExportOptions.cpp
- function_names:
  - ServiceNetwork
  - Now
  - NowMs
  source_file: /src/openweave-core/src/test-apps/ToolCommon.h
- function_names:
  - TestDelegate::TestDelegate
  - TestDelegate::DidJoinFabric
  - TestDelegate::DidLeaveFabric
  - TestDelegate::ClearState
  - TestDelegate::CheckStateIsClear
  - Setup
  - CheckDelegateCallbacks
  - main
  source_file: /src/openweave-core/src/test-apps/TestFabricStateDelegate.cpp
- function_names:
  - Abort
  - TestAssert
  - TestMfgDateConversion
  - TestMfgDateFromSerialNum
  - TestSerialNumValidation
  - main
  source_file: /src/openweave-core/src/test-apps/TestSerialNumUtils.cpp
- function_names:
  - WeaveTestNetworkInfo
  - TestSetup
  - TestTeardown
  - main
  source_file: /src/openweave-core/src/test-apps/TestNetworkInfo.cpp
- function_names:
  - nl::Weave::Profiles::BulkDataTransferClient::BulkDataTransferClient
  - BulkDataTransferClient::~BulkDataTransferClient()
  - nl::Weave::Profiles::BulkDataTransferClient::Init
  - nl::Weave::Profiles::BulkDataTransferClient::setCon
  - nl::Weave::Profiles::BulkDataTransferClient::Shutdown
  - nl::Weave::Profiles::BulkDataTransferClient::SendReceiveInitRequest
  - nl::Weave::Profiles::BulkDataTransferClient::SendReceiveInitRequest
  - nl::Weave::Profiles::BulkDataTransferClient::SendReceiveInitRequest
  - nl::Weave::Profiles::BulkDataTransferClient::SendReceiveInitRequest
  - nl::Weave::Profiles::BulkDataTransferClient::HandleReceiveInitResponse
  - nl::Weave::Profiles::BulkDataTransferClient::SendBlockQueryRequest
  - nl::Weave::Profiles::BulkDataTransferClient::HandleBlockQueryResponse
  - nl::Weave::Profiles::BulkDataTransferClient::SendBlockEOFAck
  - nl::Weave::Profiles::BulkDataTransferClient::HandleBlockEOFAckResponse
  source_file: /src/openweave-core/src/test-apps/nlweavebdxclient.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/TestGroupKeyStore.h
- function_names:
  - LookupFailureMode
  - TestProfileDB::TestData::TestData(void)
  - TestProfileDB::TestData::~TestData(void)
  - TestProfileDB::TestData::StoreItem(const uint64_t &aTag, TLVReader &aDataRdr)
  - TestProfileDB::TestData::Retrieve(TLVReader &aPathRdr, TLVWriter &aDataWrtr)
  - TestProfileDB::TestData::Retrieve(TLVWriter &aDataWrtr)
  - TestProfileDB::LookupProfileData
  - TestProfileDB::ChangeProfileData
  - TestProfileDB::RevertProfileData
  source_file: /src/openweave-core/src/test-apps/TestProfile.cpp
- function_names:
  - '* nl::Weave::Profiles::DataManagement::SubscriptionEngine::GetInstance()'
  - TestWdmOneWayCommandReceiver::GetInstance
  - TestWdmOneWayCommandReceiver::TestWdmOneWayCommandReceiver
  - TestWdmOneWayCommandReceiver::Init
  - TestWdmOneWayCommandReceiver::EngineEventCallback
  - main
  source_file: /src/openweave-core/src/test-apps/TestWdmOneWayCommandReceiver.cpp
- function_names:
  - MockTraitDataSink::ResetDataSink
  - MockTraitUpdatableDataSink::ResetDataSink
  source_file: /src/openweave-core/src/test-apps/MockSinkTraits.h
- function_names:
  - ResetTestContext
  - GetNumAsyncEventsAvailable
  - ExpireTimer
  - main
  - InitiateConnection
  - HandleTransferTimeout
  - handleReject
  - handleXferError
  - handleDone
  - handleError
  - handleReceiveAccept
  - handlePutBlock
  - handleGetBlock
  - handleSendAccept
  - OpenDestFile
  - HandleOption
  - HandleNonOptionArgs
  - HandleConnectionComplete
  - HandleConnectionClosed
  - PreTest
  source_file: /src/openweave-core/src/test-apps/weave-bdx-client-v0.cpp
- function_names:
  - nl::Weave::Profiles::NewAppState
  - nl::Weave::Profiles::ResetAppStates
  - nl::Weave::Profiles::SetReceivedFileLocation
  - nl::Weave::Profiles::SetTempLocation
  - nl::Weave::Profiles::WriteData
  - nl::Weave::Profiles::ReadData
  - nl::Weave::Profiles::DownloadFile
  - nl::Weave::Profiles::BdxSendInitHandler
  - nl::Weave::Profiles::BdxReceiveInitHandler
  - nl::Weave::Profiles::BdxSendAcceptHandler
  - nl::Weave::Profiles::BdxReceiveAcceptHandler
  - nl::Weave::Profiles::BdxRejectHandler
  - nl::Weave::Profiles::BdxGetBlockHandler
  - nl::Weave::Profiles::BdxPutBlockHandler
  - nl::Weave::Profiles::BdxXferErrorHandler
  - nl::Weave::Profiles::BdxXferDoneHandler
  - nl::Weave::Profiles::BdxErrorHandler
  source_file: /src/openweave-core/src/test-apps/weave-bdx-common-development.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/TestDRBG.h
- function_names:
  - nl::TestCerts::GetTestCert
  - nl::TestCerts::GetTestCertName
  - nl::TestCerts::LoadTestCert
  source_file: /src/openweave-core/src/test-apps/TestWeaveCertData.cpp
- function_names:
  - nl::Weave::Platform::PersistedStorage::RemoveEndOfLineSymbol
  - nl::Weave::Platform::PersistedStorage::GetCounterValueFromFile
  - nl::Weave::Platform::PersistedStorage::SaveCounterValueToFile
  - nl::Weave::Platform::PersistedStorage::Read
  - nl::Weave::Platform::PersistedStorage::Write
  source_file: /src/openweave-core/src/test-apps/TestPersistedStorageImplementation.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockWdmViewClient.h
- function_names:
  - ResetTestContext
  - GetNumAsyncEventsAvailable
  - ExpireTimer
  - main
  - HandleTransferTimeout
  - StartClientConnection
  - StartUDPUpload
  - StartUDPDownload
  - HandleOption
  - HandleNonOptionArgs
  - HandleConnectionReceived
  - HandleConnectionComplete
  - HandleConnectionClosed
  - PrepareBinding
  - HandleBindingEvent
  - PreTest
  source_file: /src/openweave-core/src/test-apps/weave-bdx-client-development.cpp
- function_names:
  - CheckMin
  - CheckMax
  - GetStatus
  - CheckSuccessOrExitFailure
  - CheckSuccessOrExitSuccess
  - CheckSuccessOrExitAssignmentFailure
  - CheckSuccessOrExitAssignmentSuccess
  - CheckSuccessOrExit
  - CheckVerifyOrExitFailure
  - CheckVerifyOrExitSuccess
  - CheckVerifyOrExit
  - CheckExitNow
  - TestWeaveDie
  - CheckVerifyOrDieFailure
  - CheckVerifyOrDieSuccess
  - CheckVerifyOrDie
  - CheckLogFileLineFunc
  - main
  source_file: /src/openweave-core/src/test-apps/TestCodeUtils.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/WdmNextPerfUtility.h
- function_names:
  - nl::Weave::Warm::Platform::AddRemoveHostAddress
  - nl::Weave::Warm::Platform::AddRemoveHostRoute
  - nl::Weave::Warm::Platform::AddRemoveThreadAddress
  - nl::Weave::Warm::Platform::StartStopThreadAdvertisement
  - nl::Weave::Warm::Platform::AddRemoveThreadRoute
  - nl::Weave::Warm::Platform::SetThreadRoutePriority
  - nl::Weave::Warm::Platform::CriticalSectionEnter
  - nl::Weave::Warm::Platform::CriticalSectionExit
  - nl::Weave::Warm::Platform::RequestInvokeActions
  - nl::Weave::Warm::Platform::Init
  - InitPlatformState
  - Setup
  - CheckInit
  - CheckThread
  - CheckWiFiThread
  - CheckWiFiThreadRoute
  - CheckWiFiThreadRouteBorderTunnel
  - main
  source_file: /src/openweave-core/src/test-apps/TestWarm.cpp
- function_names:
  - BufferFree
  - BufferAlloc
  - PrepareTestBuffer
  - CheckStart
  - CheckSetStart
  - CheckDataLength
  - CheckSetDataLength
  - CheckTotalLength
  - CheckMaxDataLength
  - CheckAvailableDataLength
  - CheckReservedSize
  - CheckAddToEnd
  - CheckDetachTail
  - CheckCompactHead
  - CheckConsumeHead
  - CheckConsume
  - CheckEnsureReservedSize
  - CheckAlignPayload
  - CheckNext
  - CheckAddRef
  - CheckNewWithAvailableSizeAndFree
  - CheckFree
  - CheckFreeHead
  - CheckBuildFreeList
  - TestSetup
  - TestTeardown
  - main
  source_file: /src/openweave-core/src/test-apps/TestPacketBuffer.cpp
- function_names:
  - TAKEOptions::TAKEOptions
  - TAKEOptions::HandleOption
  - TAKEOptions::PrepopulateTokenData
  - MockTAKEChallengerDelegate::MockTAKEChallengerDelegate
  - MockTAKEChallengerDelegate::RewindIdentificationKeyIterator
  - MockTAKEChallengerDelegate::GetNextIdentificationKey
  - MockTAKEChallengerDelegate::GetTokenAuthData
  - MockTAKEChallengerDelegate::StoreTokenAuthData
  - MockTAKEChallengerDelegate::ClearTokenAuthData
  - MockTAKEChallengerDelegate::GetTokenPublicKey
  - MockTAKEChallengerDelegate::GetChallengerID
  - MockTAKETokenDelegate::GetTokenMasterKey
  - MockTAKETokenDelegate::GetIdentificationRootKey
  - MockTAKETokenDelegate::GetTokenPrivateKey
  - MockTAKETokenDelegate::GetTAKETime
  source_file: /src/openweave-core/src/test-apps/TAKEOptions.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/TestWRMP.h
- function_names:
  - WeaveTunnelServer
  source_file: /src/openweave-core/src/test-apps/TestWeaveTunnelServer.h
- function_names:
  - LoadRootCert
  - LoadIntermediateCert
  - LoadSigningCert
  - LoadAllCerts
  - LoadRootKey
  - InitValidationContext
  - WeaveSignatureTest_SignTest
  - WeaveSignatureTest_SignTest_CertRef
  - WeaveSignatureTest_SignTest_ECDSAWithSHA256
  - WeaveSignatureTest_VerifyTest
  - WeaveSignatureTest_VerifyTest_CertRef_ECDSAWithSHA256
  - WeaveSignatureTest_FailureTest_NoCerts
  - WeaveSignatureTest_FailureTest_NoSigningCert
  - WeaveSignatureTest_FailureTest_NoIntermediateCert
  - WeaveSignatureTest_FailureTest_BadHashLength
  - WeaveSignatureTest_FailureTest_BadHash_ECDSAWithSHA1
  - WeaveSignatureTest_FailureTest_BadHash_ECDSAWithSHA256
  - WeaveSignatureTest_InsertRelatedCertsTest_SingleCert
  - WeaveSignatureTest_InsertRelatedCertsTest_MultipleCerts
  - WeaveSignatureTest_GetWeaveSignatureAlgoTest
  - main
  source_file: /src/openweave-core/src/test-apps/TestWeaveSignature.cpp
- function_names:
  - nl::Weave::Profiles::SoftwareUpdateClient::SoftwareUpdateClient
  - SoftwareUpdateClient::~SoftwareUpdateClient()
  - nl::Weave::Profiles::SoftwareUpdateClient::Init
  - nl::Weave::Profiles::SoftwareUpdateClient::Shutdown
  - nl::Weave::Profiles::SoftwareUpdateClient::SendImageQueryRequest
  - nl::Weave::Profiles::SoftwareUpdateClient::SendImageQueryRequest
  - nl::Weave::Profiles::SoftwareUpdateClient::SendImageQueryRequest
  - nl::Weave::Profiles::SoftwareUpdateClient::SendImageQueryRequest
  - nl::Weave::Profiles::SoftwareUpdateClient::HandleImageQueryResponse
  - nl::Weave::Profiles::SoftwareUpdateClient::SetExchangeCtx
  source_file: /src/openweave-core/src/test-apps/nlweaveswuclient.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockExternalEvents.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockBleApplicationDelegate.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockDCServer.h
- function_names:
  - PacketBufferAlloc
  - PacketBufferFree
  - CheckDefaultConstruction
  - CheckGetBufferAccessor
  - CheckIsRetainingAccessor
  - CheckCopyConstructionWithoutRetainedBuffer
  - CheckAssignmentWithoutRetainedBuffer
  - CheckReleaseWithoutRetainedBuffer
  - CheckRetainWithNullPointer
  - CheckRetainAllocatedBufferWithImplicitRelease
  - CheckRetainAllocatedBufferWithExplicitRelease
  - CheckCopyConstructionWithAllocatedBufferImplicitTargetImplicitSourceRelease
  - CheckCopyConstructionWithAllocatedBufferImplicitTargetExplicitSourceRelease
  - CheckCopyConstructionWithAllocatedBufferExplicitTargetImplicitSourceRelease
  - CheckCopyConstructionWithAllocatedBufferExplicitTargetExplicitSourceRelease
  - CheckAssignmentWithAllocatedBufferImplicitTargetImplicitSourceRelease
  - CheckAssignmentWithAllocatedBufferImplicitTargetExplicitSourceRelease
  - CheckAssignmentWithAllocatedBufferExplicitTargetImplicitSourceRelease
  - CheckAssignmentWithAllocatedBufferExplicitTargetExplicitSourceRelease
  - main
  source_file: /src/openweave-core/src/test-apps/TestRetainedPacketBuffer.cpp
- function_names:
  - CheckStatus
  - TestSetup
  - TestTeardown
  - main
  source_file: /src/openweave-core/src/test-apps/TestThermostatStatus.cpp
- function_names:
  - HandleImageAnnounce
  - main
  - StartClientConnection
  - HandleOption
  - HandleNonOptionArgs
  - HandleConnectionReceived
  - HandleConnectionComplete
  - HandleConnectionClosed
  source_file: /src/openweave-core/src/test-apps/weave-swu-client.cpp
- function_names:
  - CheckDefaultConstructor
  - CheckU64Constructor
  - CheckTypeU64Constructor
  - CheckByteArrayConstructor
  - CheckTLVSerDes
  - CheckTLVDecodingErrors
  - CheckDecoding
  - CheckDecoding
  - CheckEncoding
  - CheckEncoding
  - CheckStringSerDes
  - TestSetup
  - TestTeardown
  - main
  source_file: /src/openweave-core/src/test-apps/TestResourceIdentifier.cpp
- function_names:
  - main
  - HandleOption
  - main
  source_file: /src/openweave-core/src/test-apps/TestRADaemon.cpp
- function_names:
  - TestGroupKeyStore::TestGroupKeyStore
  - TestGroupKeyStore::Clear
  - TestGroupKeyStore::RetrieveGroupKey
  - TestGroupKeyStore::StoreGroupKey
  - TestGroupKeyStore::DeleteGroupKey
  - TestGroupKeyStore::DeleteGroupKeysOfAType
  - TestGroupKeyStore::EnumerateGroupKeys
  - TestGroupKeyStore::RetrieveLastUsedEpochKeyId
  - TestGroupKeyStore::StoreLastUsedEpochKeyId
  - TestGroupKeyStore::GetCurrentUTCTime
  - TestGroupKeyStore::TestValue_LastUsedEpochKeyId
  - TestGroupKeyStore::TestValue_NextEpochKeyStartTime
  source_file: /src/openweave-core/src/test-apps/TestGroupKeyStore.cpp
- function_names:
  - CheckStatusReportStrStart
  - main
  source_file: /src/openweave-core/src/test-apps/TestStatusReportStr.cpp
- function_names:
  - HandleOption
  - GenerateReferenceImageQuery
  - StartServerConnection
  - main
  - HandleConnectionComplete
  - HandleConnectionReceived
  - HandleSecureSessionEstablished
  - HandleSecureSessionError
  - HandleConnectionClosed
  - ParseStringToUint8_List
  source_file: /src/openweave-core/src/test-apps/weave-swu-server.cpp
- function_names:
  - Abort
  - TestAssert
  - TestOrdinalDateConversion
  - TestDaysSinceEpochConversion
  - TestSecondsSinceEpochConversion
  - main
  source_file: /src/openweave-core/src/test-apps/TestTimeUtils.cpp
- function_names:
  - CheckSucceededOrFailed
  - CheckSucceededOrFailed
  - HandleSignal
  - main
  - HandleOption
  - HandleNonOptionArgs
  - MakeIPv4Multicast
  - MakeIPv6Multicast
  - SetGroup
  - ParseGroupOpt
  - ParseAndUpdateExpectedGroupPackets
  - FindGroupAddress
  - PrintReceivedStats
  - HandleDataReceived
  - HandleDataReceived
  - HandleRawMessageReceived
  - HandleRawReceiveError
  - HandleUDPMessageReceived
  - HandleUDPReceiveError
  - IsTransportReadyForSend
  - PrepareTransportForSend
  - DriveSendForDestination
  - DriveSendForGroup
  - DriveSendForGroups
  - DriveSend
  - StartTest
  - CleanupTest
  source_file: /src/openweave-core/src/test-apps/TestInetLayerMulticast.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockTimeSyncServer.h
- function_names:
  - uECC_point_sub
  - uECC_point_dbl
  - CurveOID2uECC_Curve
  - TestECMath_PointAddition
  - TestECMath_PointSubtraction
  - TestECMath_PointDouble
  - TestECMath_PointMultiply
  - TestECMath_JointScalarMultiply
  - TestECMath_PointAddition
  - TestECMath_PointSubtraction
  - TestECMath_PointDouble
  - TestECMath_PointMultiply
  - TestECMath_JointScalarMultiply
  - main
  source_file: /src/openweave-core/src/test-apps/TestECMath.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockWdmTestVerifier.h
- function_names:
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::BulkDataTransferClient
  - BulkDataTransferClient::~BulkDataTransferClient()
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::Init
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::setCon
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::Shutdown
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendFile
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendFile
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::ReceiveFile
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::ReceiveFile
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendSendInitRequest
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendSendInitRequest
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendSendInitRequest
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendSendInitRequest
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::HandleSendInitResponse
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::HandleBlockAck
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::HandleBlockEOFAck
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendReceiveInitRequest
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendReceiveInitRequest
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendReceiveInitRequest
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendReceiveInitRequest
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::HandleReceiveInitResponse
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendBlock
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendBlockQueryRequest
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::HandleBlockQueryResponse
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::SendBlockEOFAck
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::HandleBlockEOFAckResponse
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::IsAsyncMode
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::IsSenderDriveMode
  - nl::Weave::Profiles::BulkDataTransfer::BulkDataTransferClient::IsReceiverDriveMode
  source_file: /src/openweave-core/src/test-apps/nlweavebdxclient-development.cpp
- function_names:
  - TestPersistedStorageContext::TestPersistedStorageContext
  - InitializePersistedStorage
  - TestSetup
  - TestTeardown
  - CheckWriteEmptyKey
  - CheckReadEmptyKey
  - CheckWriteNonexistentKey
  - CheckReadNonexistentKey
  - CheckWriteRead
  - main
  source_file: /src/openweave-core/src/test-apps/TestPersistedStorage.cpp
- function_names:
  - main
  - HandleOption
  - HandleNonOptionArgs
  - DriveSending
  - MakeWeaveMessage
  - HandleMessageReceived
  - HandleMessageReceived
  - HandleReceiveError
  - HandleReceiveError
  - HandleConnectionReceived
  - HandleConnectionComplete
  - HandleOutboundConnectionClosed
  - HandleInboundConnectionClosed
  source_file: /src/openweave-core/src/test-apps/TestWeaveMessageLayer.cpp
- function_names:
  - HandleOption
  - HandleNonOptionArgs
  - TunneledPacketTransitHandler
  - main
  source_file: /src/openweave-core/src/test-apps/mock-weave-bg.cpp
- function_names:
  - CheckSwap
  - CheckSwapBig
  - CheckSwapLittle
  - CheckGetBig
  - CheckGetLittle
  - CheckPutBig
  - CheckPutLittle
  - CheckReadBig
  - CheckReadLittle
  - CheckConstReadBig
  - CheckConstReadLittle
  - CheckWriteBig
  - CheckWriteLittle
  - main
  source_file: /src/openweave-core/src/test-apps/TestWeaveEncoding.cpp
- function_names:
  - PrepareNewBuf
  - IsRetransOutsideWindow
  - TestWRMPPiggybackedAckReceipt
  - TestWRMPTimeoutSolitaryAckReceipt
  - TestWRMPTimeoutSolitaryAckReceiptNoInitiator
  - TestWRMPFlushedSolitaryAckReceipt
  - TestWRMPRetransmitMessage
  - TestWRMPTwoStageRetransmitTimeout
  - TestWRMPSendThrottleFlowMessage
  - TestWRMPThrottleFlowBehavior
  - TestWRMPSendDelayedDeliveryMessage
  - TestWRMPDelayedDeliveryBehavior
  - TestWRMPSendVer2AfterVer1
  - TestWRMPDuplicateMsgAcking
  - TestWRMPDuplicateMsgLostAck
  - TestWRMPDuplicateMsgAckOnClosedExResponder
  - TestWRMPDuplicateMsgAckOnClosedExInitiator
  - TestWRMPDuplicateMsgDetection
  - main
  - HandleEchoRequestReceived
  - HandleEchoResponseReceived
  - HandleOption
  - HandleNonOptionArgs
  - ParseDestAddress
  - WRMPTestClient::WRMPTestClient
  - WRMPTestClient::Init
  - ThrottleTimeout
  - WRMPTestClient::Shutdown
  - WRMPTestClient::SendEchoRequest
  - WRMPTestClient::SendEchoRequest
  - SendCustomMessage
  - WRMPTestClient::HandleResponse
  - WRMPTestServer::WRMPTestServer
  - WRMPTestServer::Init
  - WRMPTestServer::Shutdown
  - WRMPTestServer::GeneratePeriodicMessage
  - WRMPTestServer::HandleRcvdMessage
  - HandleAckRcvd
  - HandleDDRcvd
  - HandleThrottleRcvd
  source_file: /src/openweave-core/src/test-apps/TestWRMP.cpp
- function_names:
  - MockTokenPairingServer::MockTokenPairingServer
  - MockTokenPairingServer::Init
  - MockTokenPairingServer::Shutdown
  - MockTokenPairingServer::OnPairTokenRequest
  - MockTokenPairingServer::OnUnpairTokenRequest
  - MockTokenPairingServer::EnforceAccessControl
  source_file: /src/openweave-core/src/test-apps/MockTokenPairingServer.cpp
- function_names:
  - MockWdmNodeOptions::MockWdmNodeOptions
  - MockWdmNodeOptions::GetMutationStrings
  - MockWdmNodeOptions::GetGeneratorStrings
  - MockWdmNodeOptions::GetConditionalityStrings
  - MockWdmNodeOptions::GetUpdateTimingStrings
  - FindStringInArray
  - MockWdmNodeOptions::HandleOption
  - TestWdmNextOptions::TestWdmNextOptions
  - TestWdmNextOptions::HandleOption
  source_file: /src/openweave-core/src/test-apps/MockWdmNodeOptions.cpp
- function_names:
  - nl::Weave::Profiles::SubscriptionEngine::GetInstance
  - nl::Weave::Profiles::Platform::CriticalSectionEnter
  - nl::Weave::Profiles::Platform::CriticalSectionExit
  - nl::Weave::Profiles::WdmUpdateResponseTest::WdmUpdateResponseTest
  - ~WdmUpdateResponseTest()
  - nl::Weave::Profiles::WdmUpdateResponseTest::SetupTest
  - nl::Weave::Profiles::WdmUpdateResponseTest::TearDownTest
  - nl::Weave::Profiles::WdmUpdateResponseTest::WriteVersionList
  - nl::Weave::Profiles::WdmUpdateResponseTest::WriteStatusList
  - nl::Weave::Profiles::WdmUpdateResponseTest::VerifyVersionList
  - nl::Weave::Profiles::WdmUpdateResponseTest::VerifyStatusList
  - nl::Weave::Profiles::WdmUpdateResponseTest::TestVersionList
  - nl::Weave::Profiles::WdmUpdateResponseTest::TestStatusList
  - nl::Weave::Profiles::WdmUpdateResponseTest::TestStatusList
  - nl::Weave::Profiles::WdmUpdateResponseTest::TestDeprecatedStatusList
  - nl::Weave::Profiles::WdmUpdateResponseTest::TestUpdateResponse
  - nl::Weave::Profiles::WdmUpdateResponseTest::TestCompactResponse
  - WdmUpdateResponseTest_VersionList
  - WdmUpdateResponseTest_StatusList
  - WdmUpdateResponseTest_DeprecatedStatusList
  - WdmUpdateResponseTest_UpdateResponse
  - WdmUpdateResponseTest_CompactResponse
  - SuiteSetup
  - SuiteTeardown
  - TestSetup
  - TestTeardown
  - main
  - main
  source_file: /src/openweave-core/src/test-apps/TestWdmUpdateResponse.cpp
- function_names:
  - MockServiceDirServer::MockServiceDirServer
  - MockServiceDirServer::Init
  - MockServiceDirServer::TearDown
  - MockServiceDirServer::HandleServiceDirRequest
  source_file: /src/openweave-core/src/test-apps/MockSDServer.cpp
- function_names:
  - WdmNextPerfUtility::Instance
  - WdmNextPerfUtility::Remove
  - WdmNextPerfUtility::WdmNextPerfUtility
  - WdmNextPerfUtility::~WdmNextPerfUtility()
  - WdmNextPerfUtility::operator()()
  - WdmNextPerfUtility::SetPerf
  - WdmNextPerfUtility::GetPerf
  - WdmNextPerfUtility::ReportPerf
  - WdmNextPerfUtility::ReportAll
  - WdmNextPerfUtility::GetCurrentTimestamp
  - WdmNextPerfUtility::SaveToFile
  source_file: /src/openweave-core/src/test-apps/WdmNextPerfUtility.cpp
- function_names:
  - nl::Weave::Profiles::DataManagement::TraitDataSource
  - nl::Weave::Profiles::DataManagement::TraitDataSource
  - nl::Weave::Profiles::DataManagement::TraitDataSource
  - nl::Weave::Profiles::DataManagement::TraitDataSource
  - nl::Weave::Profiles::DataManagement::TraitDataSource
  source_file: /src/openweave-core/src/test-apps/MockSourceTraits.h
- function_names:
  - ServiceEvents
  - HandleTimer0Failed
  - HandleTimer1Failed
  - HandleTimer10Success
  - CheckOverflow
  - HandleGreedyTimer
  - CheckStarvation
  - TestSetup
  - TestTeardown
  - main
  source_file: /src/openweave-core/src/test-apps/TestSystemTimer.cpp
- function_names:
  - WdmInitiatorState::init
  - Weave::Profiles::MockWdmSubscriptionInitiatorImpl::MockWdmSubscriptionInitiatorImpl
  - Weave::Profiles::MockWdmSubscriptionInitiatorImpl::GetNumFaultInjectionEventsAvailable
  - Weave::Profiles::MockWdmSubscriptionInitiatorImpl::Init
  - Weave::Profiles::MockWdmSubscriptionInitiatorImpl::StartTesting
  - MockWdmSubscriptionInitiator::GetInstance
  - MockWdmSubscriptionInitiator::GetNumUpdatableTraits
  source_file: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.cpp
- function_names:
  - MockTimeSync::Init
  - MockTimeSync::SetMode
  - MockTimeSync::SetRole
  - MockTimeSync::Shutdown
  source_file: /src/openweave-core/src/test-apps/MockTimeSyncUtil.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/TestProfile.h
- function_names:
  - nl::Weave::Profiles::Platform::CriticalSectionEnter
  - nl::Weave::Profiles::Platform::CriticalSectionExit
  - '* nl::Weave::Profiles::DataManagement::SubscriptionEngine::GetInstance()'
  - TestWdmOneWayCommandSender::GetInstance
  - TestWdmOneWayCommandSender::TestWdmOneWayCommandSender
  - TestWdmOneWayCommandSender::BindingEventCallback
  - TestWdmOneWayCommandSender::Init
  - TestWdmOneWayCommandSender::Shutdown
  - TestWdmOneWayCommandSender::SendOneWayCommand
  - ParseDestAddress
  - main
  - HandleOption
  - HandleNonOptionArgs
  source_file: /src/openweave-core/src/test-apps/TestWdmOneWayCommandSender.cpp
- function_names:
  - getBluezApplicationDelegate
  - getBluezPlatformDelegate
  - AcquireLwIP
  - ReleaseLwIP
  - InitToolCommon
  - ExitOnSIGUSR1Handler
  - SetSIGUSR1Handler
  - DoneOnHandleSIGUSR1
  - SetSignalHandler
  - UseStdoutLineBuffering
  - InterfaceAddAddress_LwIP
  - InterfaceRemoveAddress_LwIP
  - SetRouteToTunnelInterface_LwIP
  - InterfaceAddAddress_Linux
  - InterfaceRemoveAddress_Linux
  - SetRouteToTunnelInterface_Linux
  - InterfaceAddAddress
  - InterfaceRemoveAddress
  - SetRouteToTunnelInterface
  - nl::Weave::Profiles::WeaveTunnel::Platform::TunnelInterfaceUp(InterfaceId tunIf)
  - nl::Weave::Profiles::WeaveTunnel::Platform::TunnelInterfaceDown(InterfaceId tunIf)
  - "nl::Weave::Profiles::WeaveTunnel::Platform::ServiceTunnelEstablished(InterfaceId
    tunIf,\n                                                                          TunnelAvailabilityMode
    tunMode)"
  - nl::Weave::Profiles::WeaveTunnel::Platform::EnableBorderRouting(void)
  - nl::Weave::Profiles::WeaveTunnel::Platform::DisableBorderRouting(void)
  - nl::Weave::Profiles::WeaveTunnel::Platform::ServiceTunnelDisconnected(InterfaceId
    tunIf)
  - "nl::Weave::Profiles::WeaveTunnel::Platform::ServiceTunnelModeChange(InterfaceId
    tunIf,\n                                                                         TunnelAvailabilityMode
    tunMode)"
  - InitSystemLayer
  - ShutdownSystemLayer
  - PrintNetworkState
  - InitNetwork
  - ServiceEvents
  - NetworkIsReady
  - OnLwIPInitComplete
  - InitWeaveStack
  - PrintNodeConfig
  - ShutdownNetwork
  - ShutdownWeaveStack
  - DumpMemory
  - DumpMemoryCStyle
  - IsZeroBytes
  - PrintMACAddress
  - PrintAddresses
  - ReadFileArg
  - HandleMessageReceiveError
  - HandleAcceptConnectionError
  - WeaveBleIOLoop
  - PrintStatsCounters
  - ProcessStats
  - PrintFaultInjectionCounters
  - RebootCallbackFn
  - PostInjectionCallbackFn
  - PrintFaultInjectionMaxArgCbFn
  - PrintWeaveFaultInjectionMaxArgCbFn
  - PrintSystemFaultInjectionMaxArgCbFn
  - SetupFaultInjectionContext
  - SetupFaultInjectionContext
  - ServiceNetworkUntil
  source_file: /src/openweave-core/src/test-apps/ToolCommon.cpp
- function_names:
  - TAKEConfigNoAuthorized::GetNextIdentificationKey
  - TAKEConfigJunkAuthorized::TAKEConfigJunkAuthorized
  - TAKEConfigJunkAuthorized::RewindIdentificationKeyIterator
  - TAKEConfigJunkAuthorized::GetNextIdentificationKey
  - TAKEConfigTimeLimitedIK::GetNextIdentificationKey
  - TAKEConfigChallengerIdIsNodeId::GetNextIdentificationKey
  - TestTAKEEngine
  - test1
  - test2
  - test3
  - test4
  - test5
  - test6
  - test7
  - main
  source_file: /src/openweave-core/src/test-apps/TestTAKE.cpp
- function_names:
  - Abort
  - TestAndOpenContainer
  - TestAndEnterContainer
  - TestNext
  - TestSkip
  - TestMove
  - TestEnd
  - TestEndAndCloseContainer
  - TestEndAndExitContainer
  - TestGet
  - ForEachElement
  - TestNull
  - TestString
  - TestDupString
  - TestDupBytes
  - TestBufferContents
  - WriteEncoding1
  - WriteEmptyEncoding
  - ReadEncoding1
  - WriteEncoding2
  - WriteEncoding3
  - ReadEncoding3
  - WriteEncoding5
  - AppendEncoding2
  - FindAppendEncoding2
  - AppendEncoding3
  - AppendEncoding4
  - DeleteEncoding5
  - ReadAppendedEncoding2
  - ReadAppendedEncoding3
  - ReadAppendedEncoding4
  - ReadDeletedEncoding5
  - CheckSimpleWriteRead
  - SimpleDumpWriter
  - CheckPrettyPrinter
  - CheckDataMacro
  - NullIterateHandler
  - FindContainerWithElement
  - CheckWeaveTLVUtilities
  - CheckWeaveTLVEmptyFind
  - WriteAppendReadTest0
  - WriteFindAppendReadTest
  - WriteAppendReadTest1
  - AppendReadTest
  - WriteDeleteReadTest
  - CheckPacketBuffer
  - CountEvictedMembers
  - CheckCircularTLVBufferSimple
  - CheckCircularTLVBufferStartMidway
  - CheckCircularTLVBufferEvictStraddlingEvent
  - CheckCircularTLVBufferEdge
  - CheckWeaveTLVPutStringF
  - CheckWeaveTLVPutStringFCircular
  - CheckWeaveTLVSkipCircular
  - CheckBufferOverflow
  - CheckSapphire10921
  - TestWeaveTLVWriterCopyContainer
  - TestWeaveTLVWriterCopyElement
  - PreserveSizeWrite
  - TestWeaveTLVWriterPreserveSize
  - TestWeaveTLVWriterErrorHandling
  - CheckWeaveTLVWriter
  - SkipNonContainer
  - SkipContainer
  - NextContainer
  - TestWeaveTLVReaderSkip
  - TestWeaveTLVReaderDup
  - TestWeaveTLVReaderErrorHandling
  - TestWeaveTLVReaderTruncatedReads
  - TestWeaveTLVReaderInPractice
  - TestWeaveTLVReader_NextOverContainer_ProcessElement
  - TestWeaveTLVReader_NextOverContainer
  - TestWeaveTLVReader_SkipOverContainer_ProcessElement
  - TestWeaveTLVReader_SkipOverContainer
  - CheckWeaveTLVReader
  - TestItems
  - TestContainers
  - CheckWeaveTLVBasics
  - CheckWeaveUpdater
  - OptimisticTLVWriter::Init
  - CheckCloseContainerReserve
  source_file: /src/openweave-core/src/test-apps/TestTLV.cpp
- function_names:
  - MessageMutator::MutateMessage
  - MessageExternalFuzzer::MessageExternalFuzzer
  - MessageExternalFuzzer::MutateMessage
  - MessageExternalFuzzer::SaveCorpus
  - '& MessageExternalFuzzer::SaveCorpusFile(bool val)'
  - '& MessageExternalFuzzer::FuzzInput(const uint8_t *val, size_t size)'
  - PASEEngineTest::PASEEngineTest
  - PASEEngineTest::TestName
  - PASEEngineTest::ProposedConfig
  - '& PASEEngineTest::ProposedConfig(uint32_t val)'
  - PASEEngineTest::InitiatorAllowedConfigs
  - '& PASEEngineTest::InitiatorAllowedConfigs(uint32_t val)'
  - PASEEngineTest::ResponderAllowedConfigs
  - '& PASEEngineTest::ResponderAllowedConfigs(uint32_t val)'
  - PASEEngineTest::InitiatorPassword
  - '& PASEEngineTest::InitiatorPassword(const char* val)'
  - PASEEngineTest::ResponderPassword
  - '& PASEEngineTest::ResponderPassword(const char* val)'
  - PASEEngineTest::ExpectReconfig
  - '& PASEEngineTest::ExpectReconfig(uint32_t expectedConfig)'
  - PASEEngineTest::ExpectedConfig
  - PASEEngineTest::PerformReconfig
  - '& PASEEngineTest::PerformReconfig(bool val)'
  - PASEEngineTest::ConfirmKey
  - '& PASEEngineTest::ConfirmKey(bool val)'
  - '& PASEEngineTest::ExpectError(WEAVE_ERROR err)'
  - '& PASEEngineTest::ExpectError(const char *opName, WEAVE_ERROR err)'
  - PASEEngineTest::IsExpectedError
  - PASEEngineTest::IsSuccessExpected
  - '& PASEEngineTest::Mutator(MessageMutator *mutator)'
  - PASEEngineTest::LogMessageData
  - '& PASEEngineTest::LogMessageData(bool val)'
  - PASEEngineTest::setAllowedResponderConfigs
  - PASEEngineTest::Run
  source_file: /src/openweave-core/src/test-apps/PASEEngineTest.cpp
- function_names:
  - MOCK_strlcpy
  - MockTraitDataSink::MockTraitDataSink
  - MockTraitUpdatableDataSink::MockTraitUpdatableDataSink
  - MockTraitDataSourceDelegate::GetData
  - LocaleSettingsTraitDataSink::LocaleSettingsTraitDataSink
  - LocaleSettingsTraitDataSink::SetLeafData
  - LocaleSettingsTraitDataSink::GetLeafData
  - LocaleSettingsTraitDataSink::GetNextDictionaryItemKey
  - LocaleCapabilitiesTraitDataSink::LocaleCapabilitiesTraitDataSink
  - LocaleCapabilitiesTraitDataSink::OnEvent
  - LocaleCapabilitiesTraitDataSink::SetLeafData
  - LocaleCapabilitiesTraitDataSink::GetLeafData
  - LocaleCapabilitiesTraitDataSink::GetNextDictionaryItemKey
  - BoltLockSettingTraitDataSink::BoltLockSettingTraitDataSink
  - BoltLockSettingTraitDataSink::SetLeafData
  - BoltLockSettingTraitDataSink::GetLeafData
  - BoltLockSettingTraitDataSink::GetNextDictionaryItemKey
  - TestATraitDataSink::TestATraitDataSink
  - TestATraitDataSink::TestATraitDataSink
  - TestATraitDataSink::OnEvent
  - TestATraitDataSink::SetNullifiedPath
  - TestATraitDataSink::SetData
  - TestATraitDataSink::SetLeafData
  - GetNextDictionaryItemKeyHelper
  - TestATraitDataSink::GetNextDictionaryItemKey
  - TestATraitDataSink::GetData
  - TestATraitDataSink::GetLeafData
  - TestBTraitDataSink::GetData
  - TestBTraitDataSink::GetLeafData
  - TestBTraitDataSink::GetNextDictionaryItemKey
  - TestBTraitDataSink::TestBTraitDataSink
  - TestBTraitDataSink::SetNullifiedPath
  - TestBTraitDataSink::SetData
  - TestBTraitDataSink::SetLeafData
  - TestApplicationKeysTraitDataSink::TestApplicationKeysTraitDataSink
  - TestApplicationKeysTraitDataSink::GetLeafData
  - TestApplicationKeysTraitDataSink::GetNextDictionaryItemKey
  - LocaleSettingsTraitUpdatableDataSink::LocaleSettingsTraitUpdatableDataSink
  - LocaleSettingsTraitUpdatableDataSink::SetLeafData
  - LocaleSettingsTraitUpdatableDataSink::GetLeafData
  - LocaleSettingsTraitUpdatableDataSink::Mutate
  - LocaleSettingsTraitUpdatableDataSink::GetNextDictionaryItemKey
  - TestATraitUpdatableDataSink::Mutate
  - TestATraitUpdatableDataSink::TestATraitUpdatableDataSink
  - TestATraitUpdatableDataSink::OnEvent
  - TestATraitUpdatableDataSink::SetNullifiedPath
  - TestATraitUpdatableDataSink::SetData
  - TestATraitUpdatableDataSink::SetLeafData
  - TestATraitUpdatableDataSink::GetNextDictionaryItemKey
  - TestATraitUpdatableDataSink::GetData
  - TestATraitUpdatableDataSink::GetLeafData
  - TestBTraitUpdatableDataSink::TestBTraitUpdatableDataSink
  - TestBTraitUpdatableDataSink::Mutate
  - TestBTraitUpdatableDataSink::SetNullifiedPath
  - TestBTraitUpdatableDataSink::SetData
  - TestBTraitUpdatableDataSink::SetLeafData
  - TestBTraitUpdatableDataSink::GetData
  - TestBTraitUpdatableDataSink::GetLeafData
  - TestBTraitUpdatableDataSink::GetNextDictionaryItemKey
  source_file: /src/openweave-core/src/test-apps/MockSinkTraits.cpp
- function_names:
  - main
  source_file: /src/openweave-core/src/test-apps/TestCrypto.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/nlweaveswuclient.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockWdmViewServer.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/nlweavebdxserver.h
- function_names:
  - HandleOption
  - HandleNonOptionArgs
  - TunneledPacketTransitHandler
  - WeaveTunnelOnStatusNotifyHandlerCB
  - PersistedSessionKeyExists
  - SuspendAndPersistTunnelCASESession
  - RestorePersistedTunnelCASESession
  - HandleLoadPersistedTunnelCASESession
  - IsPersistentTunnelSessionPresent
  - HandleSessionPersistOnTunnelClosure
  - main
  source_file: /src/openweave-core/src/test-apps/TestWeaveTunnelCASEPersistClient.cpp
- function_names:
  - nl::Weave::MockPlatform::MockPlatformClocks::SetRandomRealTimeOffset
  - nl::Weave::MockPlatform::GetClock_Monotonic
  - nl::Weave::MockPlatform::GetClock_MonotonicMS
  - nl::Weave::MockPlatform::GetClock_MonotonicHiRes
  - nl::Weave::MockPlatform::GetClock_RealTime
  - nl::Weave::MockPlatform::GetClock_RealTimeMS
  - nl::Weave::MockPlatform::SetClock_RealTime
  - nl::Weave::System::Platform::Layer::GetClock_Monotonic
  - nl::Weave::System::Platform::Layer::GetClock_MonotonicMS
  - nl::Weave::System::Platform::Layer::GetClock_MonotonicHiRes
  - nl::Weave::System::Platform::Layer::GetClock_RealTime
  - nl::Weave::System::Platform::Layer::GetClock_RealTimeMS
  - nl::Weave::System::Platform::Layer::SetClock_RealTime
  source_file: /src/openweave-core/src/test-apps/MockPlatformClocks.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/DeviceDescOptions.h
- function_names:
  - MockSoftwareUpdateServer::MockSoftwareUpdateServer
  - MockSoftwareUpdateServer::Init
  - MockSoftwareUpdateServer::Shutdown
  - MockSoftwareUpdateServer::HandleClientRequest
  - MockSoftwareUpdateServer::GenerateImageDigest
  - MockSoftwareUpdateServer::SendImageQueryResponse
  - MockSoftwareUpdateServer::SendImageQueryStatus
  - MockSoftwareUpdateServer::HandleImageQuery
  - MockSoftwareUpdateServer::SendStatusReport
  - MockSoftwareUpdateServer::SetReferenceImageQuery
  - MockSoftwareUpdateServer::SetFileDesignator
  - MockSoftwareUpdateServer::SendImageAnnounce
  - MockSoftwareUpdateServer::SendImageAnnounce
  - MockSoftwareUpdateServer::SendImageAnnounce
  - MockSoftwareUpdateServer::SendImageAnnounce
  source_file: /src/openweave-core/src/test-apps/MockSWUServer.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/TAKEOptions.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockSWUServer.h
- function_names:
  - CollectTapAddresses
  source_file: /src/openweave-core/src/test-apps/TapAddrAutoconf.cpp
- function_names:
  - ParseKeyExportConfig
  - ResetTestContext
  - HandleOption
  - HandleNonOptionArgs
  - DriveSending
  - HandleConnectionReceived
  - StartClientConnection
  - HandleConnectionComplete
  - HandleConnectionClosed
  - HandleKeyExportComplete
  - HandleKeyExportError
  - ParseDestAddress
  - HandleServiceMgrStatus
  source_file: /src/openweave-core/src/test-apps/weave-key-export.cpp
- function_names:
  - HandleDNSResolveComplete
  - HandleTimer
  - TestInetPre
  - TestResolveHostAddress
  - TestParseHost
  - TestInetError
  - TestInetInterface
  - TestInetEndPoint
  - TestInetEndPointLimit
  - TestSetup
  - TestTeardown
  - main
  source_file: /src/openweave-core/src/test-apps/TestInetEndPoint.cpp
- function_names:
  - LoadCertsFromServiceConfig
  - ParseCASEConfig
  - ParseAllowedCASEConfigs
  - CASEOptions::CASEOptions
  - CASEOptions::HandleOption
  - CASEOptions::ReadCertFile
  - CASEOptions::ReadPrivateKeyFile
  - CASEOptions::GetNodeCert
  - CASEOptions::GetNodePrivateKey
  - CASEOptions::EncodeNodeCertInfo
  - CASEOptions::GenerateNodeSignature
  - CASEOptions::EncodeNodePayload
  - CASEOptions::BeginValidation
  - CASEOptions::HandleValidationResult
  - CASEOptions::EndValidation
  - CASEOptions::GetNodeCertInfo
  - CASEOptions::GetNodePrivateKey
  - CASEOptions::ReleaseNodePrivateKey
  - CASEOptions::GetNodePayload
  - CASEOptions::BeginCertValidation
  - CASEOptions::HandleCertValidationResult
  - CASEOptions::EndCertValidation
  source_file: /src/openweave-core/src/test-apps/CASEOptions.cpp
- function_names:
  - DoEncode
  - EncodeTest
  - DecodeTest
  - ASN1_PARSE_ENTER_ENCAPSULATED
  - NullWriterTest
  - main
  source_file: /src/openweave-core/src/test-apps/TestASN1.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockTimeSyncCoordinator.h
- function_names:
  - MockDeviceControlServer::MockDeviceControlServer
  - MockDeviceControlServer::Init
  - MockDeviceControlServer::Shutdown
  - MockDeviceControlServer::ShouldCloseConBeforeResetConfig
  - MockDeviceControlServer::OnResetConfig
  - MockDeviceControlServer::OnFailSafeArmed
  - MockDeviceControlServer::OnFailSafeDisarmed
  - MockDeviceControlServer::OnRemotePassiveRendezvousStarted
  - MockDeviceControlServer::OnRemotePassiveRendezvousDone
  - MockDeviceControlServer::OnConnectionMonitorTimeout
  - MockDeviceControlServer::WillStartRemotePassiveRendezvous
  - MockDeviceControlServer::WillCloseRemotePassiveRendezvous
  - MockDeviceControlServer::IsResetAllowed
  - MockDeviceControlServer::OnSystemTestStarted
  - MockDeviceControlServer::OnSystemTestStopped
  - MockDeviceControlServer::EnforceAccessControl
  - MockDeviceControlServer::IsPairedToAccount
  - MockDeviceControlServer::SendStatusReport
  source_file: /src/openweave-core/src/test-apps/MockDCServer.cpp
- function_names:
  - TestWdmSubscriptionlessNotificationSender::GetInstance
  - TestWdmSubscriptionlessNotificationSender::TestWdmSubscriptionlessNotificationSender
  - TestWdmSubscriptionlessNotificationSender::BindingEventCallback
  - TestWdmSubscriptionlessNotificationSender::Init
  - TestWdmSubscriptionlessNotificationSender::Shutdown
  - TestWdmSubscriptionlessNotificationSender::EngineEventCallback
  - TestWdmSubscriptionlessNotificationSender::SendSubscriptionlessNotify
  source_file: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationSender.cpp
- function_names:
  - getRootDirectory
  - StubSettingsDatabase::DeviceSettingsProfileData::DeviceSettingsProfileData
  - StubSettingsDatabase::DeviceSettingsProfileData::init
  - StubSettingsDatabase::DeviceSettingsProfileData::StoreItem
  - StubSettingsDatabase::DeviceSettingsProfileData::Retrieve
  - StubSettingsDatabase::LookupProfileData
  - WDMTestClient::ViewConfirm
  - WDMTestClient::ViewConfirm
  - WDMTestClient::SubscribeConfirm
  - WDMTestClient::SubscribeConfirm
  - WDMTestClient::SubscribeConfirm
  - WDMTestClient::UnsubscribeIndication
  - WDMTestClient::UpdateConfirm
  - WDMTestClient::UpdateConfirm
  - WDMTestClient::CancelSubscriptionIndication
  - WDMTestClient::CancelSubscriptionConfirm
  - WDMTestClient::NotifyIndication
  - WDMTestClient::IncompleteIndication
  - main
  source_file: /src/openweave-core/src/test-apps/wdmtest.cpp
- function_names:
  - MockWdmSubscriptionInitiator::Cleanup
  source_file: /src/openweave-core/src/test-apps/MockWdmSubscriptionInitiator.h
- function_names:
  - main
  - HandleOption
  - HandleConnectionReceived
  source_file: /src/openweave-core/src/test-apps/weave-bdx-server-v0.cpp
- function_names:
  - MockOpActions::MockOpActions
  - MockOpActions::~MockOpActions()
  - MockOpActions::SetDelay
  - MockOpActions::GetDelay
  - MockOpActions::SetAbort
  - MockOpActions::GetAbort
  - MockOpActions::FindOp
  - MockOpActions::NormalizeOpName
  source_file: /src/openweave-core/src/test-apps/MockOpActions.cpp
- function_names:
  - PASEEngineTests_BasicTests
  - PASEEngine_ConfigTest1
  - PASEEngine_ConfigTest4
  - PASEEngineTest_MixedConfigs
  - PASEEngine_ExternalFuzzingEngine
  - main
  source_file: /src/openweave-core/src/test-apps/TestPASE.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockSPServer.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/nlweavebdxserver-development.h
- function_names:
  - GetNumFaultInjectionEventsAvailable
  - ExpireTimer
  - main
  - HandleWdmCompleteTest
  - HandleError
  source_file: /src/openweave-core/src/test-apps/TestWdmNext.cpp
- function_names:
  - MockSingleSourceTimeSyncClient::MockSingleSourceTimeSyncClient
  - MockSingleSourceTimeSyncClient::BindingEventCallback
  - MockSingleSourceTimeSyncClient::Init
  - MockSingleSourceTimeSyncClient::Shutdown
  - MockSingleSourceTimeSyncClient::HandleSyncTimer
  - MockSingleSourceTimeSyncClient::HandleTimeChangeNotificationReceived
  - MockSingleSourceTimeSyncClient::HandleSyncCompleted
  - MockTimeSyncClient::MockTimeSyncClient
  - MockTimeSyncClient::SetupContacts
  - MockTimeSyncClient::SetupServiceContact
  - MockTimeSyncClient::Init
  - MockTimeSyncClient::Shutdown
  - MockTimeSyncClient::HandleConnectionComplete
  - MockTimeSyncClient::HandleConnectionClosed
  - MockTimeSyncClient::CloseConnectionToService
  - MockTimeSyncClient::SetupConnectionToService
  - MockTimeSyncClient::HandleSyncTimer
  - MockTimeSyncClient::OnTimeChangeNotificationReceived
  - MockTimeSyncClient::OnSyncSucceeded
  - MockTimeSyncClient::OnSyncFailed
  - MockTimeSyncClient::OnResponseReadyForCalculation
  source_file: /src/openweave-core/src/test-apps/MockTimeSyncClient.cpp
- function_names:
  - GetTestNodeCert
  - GetTestNodePrivateKey
  - GetTestCACert
  source_file: /src/openweave-core/src/test-apps/Certs.cpp
- function_names:
  - nl::Weave::Profiles::Platform::CriticalSectionEnter
  - nl::Weave::Profiles::Platform::CriticalSectionExit
  - '* nl::Weave::Profiles::DataManagement::SubscriptionEngine::GetInstance()'
  - LogContext::LogContext
  - TestSetup
  - TestTeardown
  - InitializeEventLogging
  - SimpleDumpWriter
  - DumpEventLog
  - SimpleDebugLog
  - SimpleHeartbeatLog
  - SimpleSecurityLog
  - HandleOption
  - main
  source_file: /src/openweave-core/src/test-apps/GenerateEventLog.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockLoggingManager.h
- function_names:
  - PasscodeEncryptConfig1_Test1
  - PasscodeEncryptConfig2_Test1
  - PasscodeEncryptConfig2_Test2
  - PasscodeEncryptConfig2_LongPasscodeTest
  - EncryptedPasscodeUtils_Test1
  - main
  source_file: /src/openweave-core/src/test-apps/TestPasscodeEnc.cpp
- function_names:
  - MockBleApplicationDelegate::NotifyWeaveConnectionClosed
  source_file: /src/openweave-core/src/test-apps/MockBleApplicationDelegate.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockIAServer.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockBlePlatformDelegate.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/TestWdmOneWayCommand.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockPlatformClocks.h
- function_names:
  - MockImageAnnounceServer::MockImageAnnounceServer
  - MockImageAnnounceServer::Init
  - MockImageAnnounceServer::Shutdown
  - MockImageAnnounceServer::CreateExchangeCtx
  - MockImageAnnounceServer::CreateExchangeCtx
  - MockImageAnnounceServer::CloseExistingExchangeCtx
  - MockImageAnnounceServer::OnImageAnnounce
  source_file: /src/openweave-core/src/test-apps/MockIAServer.cpp
- function_names:
  - Private::SetClock_RealTime
  - Private::GetClock_RealTime
  - nl::Weave::Profiles::Platform::CriticalSectionEnter
  - nl::Weave::Profiles::Platform::CriticalSectionExit
  - nl::Weave::Profiles::TestSubscriptionHandler::SetActive
  - nl::Weave::Profiles::TestSubscriptionHandler::SetTerminated
  - nl::Weave::Profiles::TestSubscriptionHandler::SetEstablishedIdle
  - nl::Weave::Profiles::TestSubscriptionHandler::SetExchangeContext
  - nl::Weave::Profiles::TestSubscriptionHandler::TestSubscriptionHandler
  - nl::Weave::Profiles::TestSubscriptionHandler::VerifyTraversingImportance
  - '&

    TestSubscriptionHandler::GetVendedEvent(nl::Weave::Profiles::DataManagement::ImportanceType
    inImportance)'
  - nl::Weave::Profiles::SubscriptionEngine::GetInstance
  - TestLoggingContext::TestLoggingContext
  - TestOpenCloseState::TestOpenCloseState
  - TestOpenCloseState::EvolveState
  - WriteOpenCloseState
  - SimpleDumpWriter
  - LogBufferConsole
  - InitializeEventLogging
  - DestroyEventLogging
  - InitializeEventLoggingWithPersistedCounters
  - DumpEventLog
  - DoBDXUpload
  - PrintEventLog
  - TestSetup
  - TestTeardown
  - CheckLogState
  - CheckLogReadOut
  - CheckLogEventBasics
  - CheckLogFreeform
  - CheckLogPreformed
  - CheckSchemaGeneratedLogging
  - CheckByteStringFieldType
  - CheckByteStringArray
  - FastLogFreeform
  - CheckEvict
  - ReadFirstEventHeader
  - CheckFetchTimestamps
  - WriteLargeEvent
  - CheckLargeEvents
  - CheckDropEvents
  - CheckFetchEvents
  - CheckBasicEventDeserialization
  - CheckComplexEventDeserialization
  - CheckEmptyArrayEventDeserialization
  - FetchEventsHelper
  - TestEventProcessor::TestEventProcessor
  - TestEventProcessor::ProcessEvent
  - TestEventProcessor::GapDetected
  - VersionCompatibilityHelper
  - CheckVersion1DataCompatibility
  - CheckForwardDataCompatibility
  - CheckDataIncompatibility
  - FakeEventProcessor::FakeEventProcessor
  - FakeEventProcessor::ClearMock
  - FakeEventProcessor::ProcessEvent
  - FakeEventProcessor::GapDetected
  - CheckGapDetection
  - CheckDropOverlap
  - CheckNullableFieldsSimple
  - CheckNullableFieldsComplex
  - CheckWDMOffloadTrigger
  - CheckDeserializingNewerVersion
  - CheckDeserializingOlderVersion
  - CurrentNullableEvent::SetBaseEnumNull
  - CurrentNullableEvent::SetBaseEnumPresent
  - CurrentNullableEvent::IsBaseEnumPresent
  - CurrentNullableEvent::SetExtendedEnumNull
  - CurrentNullableEvent::SetExtendedEnumPresent
  - CurrentNullableEvent::IsExtendedEnumPresent
  - FutureNullableEvent::SetBaseEnumNull
  - FutureNullableEvent::SetBaseEnumPresent
  - FutureNullableEvent::IsBaseEnumPresent
  - FutureNullableEvent::SetFutureEnumNull
  - FutureNullableEvent::SetFutureEnumPresent
  - FutureNullableEvent::IsFutureEnumPresent
  - FutureNullableEvent::SetExtendedEnumNull
  - FutureNullableEvent::SetExtendedEnumPresent
  - FutureNullableEvent::IsExtendedEnumPresent
  - FutureNullableEvent::SetFutureExtendedEnumNull
  - FutureNullableEvent::SetFutureExtendedEnumPresent
  - FutureNullableEvent::IsFutureExtendedEnumPresent
  - CheckDeserializingNewerVersionNullable
  - CheckDeserializingOlderVersionNullable
  - CheckSubscriptionHandlerHelper
  - CheckSubscriptionHandler
  - CheckSubscriptionHandlerCountersStartAtZeroProd
  - CheckSubscriptionHandlerCountersStartAtZeroTwoDifferentImportancesProd
  - CheckSubscriptionHandlerCountersStartAtNonZeroProd
  - CheckSubscriptionHandlerCountersStartAtNonZeroTwoDifferentImportancesProd
  - CheckSubscriptionHandlerCountersStartAtZeroInfo
  - CheckSubscriptionHandlerCountersStartAtZeroTwoDifferentImportancesInfo
  - CheckSubscriptionHandlerCountersStartAtNonZeroInfo
  - CheckSubscriptionHandlerCountersStartAtNonZeroTwoDifferentImportancesInfo
  - CheckExternalEvents
  - CheckExternalEventsMultipleCallbacks
  - SkipEvenEvents
  - CheckSkipExternalEvents
  - RegressionWatchdogBug
  - RegressionWatchdogBug_EventRemoval
  - RegressionWatchdogBug_ExternalEventState
  - CheckExternalEventsMultipleFetches
  - ResetExternalEventDeliveryState
  - MockExternalEventsDelivered
  - MockExternalEventsFetch
  - MockExternalEventsEvicted
  - CheckExternalEventNotifyDelivered
  - CheckExternalEventNotifyEvicted
  - CheckShutdownLogic
  - BuildSubscribeRequest
  - MockSubscribeRequest
  - CheckLastObservedEventId
  - main
  - HandleOption
  - PrepareBinding
  - InitSubscriptionClient
  - HandleBindingEvent
  - StartClientConnection
  - HandleConnectionComplete
  - HandleConnectionClosed
  source_file: /src/openweave-core/src/test-apps/TestEventLogging.cpp
- function_names:
  - ECDSATest_SignTest
  - ECDSATest_VerifyTest
  - ECDSATest_FixedLenSignVerifyTest
  - ECDSATest_FixedLenVerifyTest
  - main
  source_file: /src/openweave-core/src/test-apps/TestECDSA.cpp
- function_names:
  - HandleTimer0Failed
  - HandleTimer1Failed
  - HandleTimer10Success
  - CheckOverflow
  - TestSetup
  - TestTeardown
  - main
  - main
  source_file: /src/openweave-core/src/test-apps/TestInetTimer.cpp
- function_names:
  - main
  - HandleEncodeOption
  - HandleDecodeArg
  - ParseDate
  - PrintDeviceDescriptor
  source_file: /src/openweave-core/src/test-apps/weave-device-descriptor.cpp
- function_names:
  - Private::SetClock_RealTime
  - Private::GetClock_RealTime
  - nl::Weave::Profiles::Platform::CriticalSectionEnter
  - nl::Weave::Profiles::Platform::CriticalSectionExit
  - SubscriptionEngine::GetInstance
  - TestEmptyDataSource::TestEmptyDataSource
  - TestEmptyDataSource::GetLeafData
  - TestEmptyDataSink::SetLeafData
  - TestEmptyDataSink::TestEmptyDataSink
  - TestEmptyDataSink::OnEvent
  - CheckDataSourceEmptySchema
  - CheckDataSinkEmptySchema
  - nl::Weave::Profiles::TestTdmSource::TestTdmSource
  - nl::Weave::Profiles::TestTdmSource::SetValue
  - nl::Weave::Profiles::TestTdmSource::Reset
  - nl::Weave::Profiles::TestTdmSource::GetNextDictionaryItemKey
  - nl::Weave::Profiles::TestTdmSource::GetLeafData
  - nl::Weave::Profiles::TestTdmSink::TestTdmSink
  - nl::Weave::Profiles::TestTdmSink::Reset
  - nl::Weave::Profiles::TestTdmSink::DumpChangeSets
  - nl::Weave::Profiles::TestTdmSink::ValidateChangeSets
  - nl::Weave::Profiles::TestTdmSink::OnEvent
  - nl::Weave::Profiles::TestTdmSink::SetLeafData
  - nl::Weave::Profiles::TestTdm::TestTdm
  - nl::Weave::Profiles::TestTdm::Setup
  - nl::Weave::Profiles::TestTdm::Teardown
  - nl::Weave::Profiles::TestTdm::Reset
  - nl::Weave::Profiles::TestTdm::BuildAndProcessNotify
  - nl::Weave::Profiles::TestTdm::TestTdmStatic_MultiInstance
  - nl::Weave::Profiles::TestTdm::TestTdmStatic_SingleLeafHandle
  - nl::Weave::Profiles::TestTdm::TestTdmStatic_SingleLevelMerge
  - nl::Weave::Profiles::TestTdm::TestTdmStatic_SingleLevelMergeDeep
  - nl::Weave::Profiles::TestTdm::TestTdmStatic_DirtyStruct
  - nl::Weave::Profiles::TestTdm::TestTdmStatic_DirtyLeafUnevenDepth
  - nl::Weave::Profiles::TestTdm::TestTdmStatic_MergeHandleSetOverflow
  - nl::Weave::Profiles::TestTdm::TestTdmStatic_MarkLeafHandleDirtyTwice
  - nl::Weave::Profiles::TestTdm::TestTdmStatic_TestNullableLeaf
  - nl::Weave::Profiles::TestTdm::TestTdmStatic_TestNullableStruct
  - nl::Weave::Profiles::TestTdm::TestTdmStatic_TestNonNullableLeaf
  - nl::Weave::Profiles::TestTdm::TestTdmStatic_TestEphemeralLeaf
  - nl::Weave::Profiles::TestTdm::TestTdmStatic_TestEphemeralStruct
  - nl::Weave::Profiles::TestTdm::TestTdmStatic_TestIsParent
  - nl::Weave::Profiles::TestTdm::TestTdmMismatched_PathInDataElement
  - nl::Weave::Profiles::TestTdm::TestTdmMismatched_TopLevelPOD
  - nl::Weave::Profiles::TestTdm::TestTdmMismatched_NestedStruct
  - nl::Weave::Profiles::TestTdm::TestTdmMismatched_TopLevelStruct
  - nl::Weave::Profiles::TestTdm::TestTdmMismatched_SetLeafDataMismatch
  - nl::Weave::Profiles::TestTdm::TestTdmDictionary_DictionaryEntryAddition
  - nl::Weave::Profiles::TestTdm::TestTdmDictionary_DictionaryEntriesAddition
  - nl::Weave::Profiles::TestTdm::TestTdmDictionary_ReplaceDictionary
  - nl::Weave::Profiles::TestTdm::TestTdmDictionary_DeleteSingle
  - nl::Weave::Profiles::TestTdm::TestTdmDictionary_DeleteMultiple
  - nl::Weave::Profiles::TestTdm::TestTdmDictionary_DeleteHandleSetOverflow
  - nl::Weave::Profiles::TestTdm::TestTdmDictionary_AddDeleteDifferent
  - nl::Weave::Profiles::TestTdm::TestTdmDictionary_DeleteAndMarkDirty
  - nl::Weave::Profiles::TestTdm::TestTdmDictionary_MarkDirtyAndDelete
  - nl::Weave::Profiles::TestTdm::TestTdmDictionary_DeleteAndMarkFarDirty
  - nl::Weave::Profiles::TestTdm::TestTdmDictionary_AddAndDeleteSimilar
  - nl::Weave::Profiles::TestTdm::TestTdmDictionary_ModifyAndDeleteSimilar
  - nl::Weave::Profiles::TestTdm::TestTdmDictionary_DeleteAndModifySimilar
  - nl::Weave::Profiles::TestTdm::TestTdmDictionary_DeleteAndModifyLeafSimilar
  - nl::Weave::Profiles::TestTdm::TestTdmDictionary_DeleteStoreOverflowAndItemAddition
  - nl::Weave::Profiles::TestTdm::TestTdmDictionary_DirtyStoreOverflowAndItemDeletion
  - nl::Weave::Profiles::TestTdm::TestTdmDictionary_DeleteEntryTwice
  - nl::Weave::Profiles::TestTdm::TestRandomizedDataVersions
  - nl::Weave::Profiles::TestTdm::AllocateBuffer
  - nl::Weave::Profiles::TestTdm::CheckAllocateRightSizedBufferForNotifications
  - nl::Weave::Profiles::TestTdm::CheckSynchronizedTraitState
  - TestSetup
  - TestTeardown
  - TestTdmStatic_SingleLeafHandle
  - TestTdmStatic_SingleLevelMerge
  - TestTdmStatic_SingleLevelMergeDeep
  - TestTdmStatic_DirtyStruct
  - TestTdmStatic_DirtyLeafUnevenDepth
  - TestTdmStatic_MergeHandleSetOverflow
  - TestTdmStatic_MarkLeafHandleDirtyTwice
  - TestTdmStatic_TestNullableStruct
  - TestTdmStatic_TestNullableLeaf
  - TestTdmStatic_TestNonNullableLeaf
  - TestTdmStatic_TestEphemeralStruct
  - TestTdmStatic_TestIsParent
  - TestTdmStatic_TestEphemeralLeaf
  - TestTdmMismatched_PathInDataElement
  - TestTdmMismatched_TopLevelPOD
  - TestTdmMismatched_NestedStruct
  - TestTdmMismatched_TopLevelStruct
  - TestTdmMismatched_SetLeafDataMismatch
  - TestTdmDictionary_DictionaryEntryAddition
  - TestTdmDictionary_DictionaryEntriesAddition
  - TestTdmDictionary_ReplaceDictionary
  - TestTdmDictionary_DeleteSingle
  - TestTdmDictionary_DeleteMultiple
  - TestTdmDictionary_DeleteHandleSetOverflow
  - TestTdmDictionary_AddDeleteDifferent
  - TestTdmDictionary_DeleteAndMarkDirty
  - TestTdmDictionary_MarkDirtyAndDelete
  - TestTdmDictionary_DeleteAndMarkFarDirty
  - TestTdmDictionary_AddAndDeleteSimilar
  - TestTdmDictionary_ModifyAndDeleteSimilar
  - TestTdmDictionary_DeleteAndModifySimilar
  - TestTdmDictionary_DeleteAndModifyLeafSimilar
  - TestTdmDictionary_DeleteStoreOverflowAndItemAddition
  - TestTdmDictionary_DirtyStoreOverflowAndItemDeletion
  - TestTdmDictionary_DeleteEntryTwice
  - TestRandomizedDataVersions
  - TestTdmStatic_MultiInstance
  - CheckAllocateRightSizedBufferForNotifications
  - CheckSynchronizedTraitState
  - main
  source_file: /src/openweave-core/src/test-apps/TestTDM.cpp
- function_names:
  - nl::Weave::Profiles::BulkDataTransferServer::BulkDataTransferServer
  - BulkDataTransferServer::~BulkDataTransferServer()
  - nl::Weave::Profiles::BulkDataTransferServer::SetDelegate
  - nl::Weave::Profiles::BulkDataTransferServer::GetDelegate
  - nl::Weave::Profiles::BulkDataTransferServer::AllowBDXServerToRun
  - nl::Weave::Profiles::BulkDataTransferServer::CanBDXServerRun
  - nl::Weave::Profiles::BulkDataTransferServer::Init
  - nl::Weave::Profiles::BulkDataTransferServer::Shutdown
  - nl::Weave::Profiles::BulkDataTransferServer::NewTransfer
  - nl::Weave::Profiles::BulkDataTransferServer::ShutdownTransfer
  - nl::Weave::Profiles::BulkDataTransferServer::HandleReceiveInitRequest
  - nl::Weave::Profiles::BulkDataTransferServer::HandleSendInitRequest
  - nl::Weave::Profiles::BulkDataTransferServer::HandleBlockQueryRequest
  - nl::Weave::Profiles::BulkDataTransferServer::HandleBlockSend
  - nl::Weave::Profiles::BulkDataTransferServer::HandleBlockEOFAck
  - nl::Weave::Profiles::BulkDataTransferServer::HandleBDXConnectionClosed
  - nl::Weave::Profiles::BulkDataTransferServer::HandleResponseTimeout
  - nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
  - write_data
  - read_data
  - DownloadFile
  source_file: /src/openweave-core/src/test-apps/nlweavebdxserver-development.cpp
- function_names:
  - main
  - HandleOption
  - HandleEchoRequestReceived
  - HandleHeartbeatReceived
  - HandleConnectionReceived
  - HandleSecureSessionEstablished
  - HandleSecureSessionError
  - HandleConnectionClosed
  - InitiateConnection
  - HandleConnectionComplete
  - HandleWdmCompleteTest
  - HandleError
  source_file: /src/openweave-core/src/test-apps/mock-device.cpp
- function_names:
  - LogMockExternalEvents
  - LogMockDebugExternalEvents
  - ClearMockExternalEvents
  - SetShouldBlitCallback
  - FetchMockExternalEvents
  - FetchWithBlitEvent
  source_file: /src/openweave-core/src/test-apps/MockExternalEvents.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/TapAddrAutoconf.h
- function_names:
  - InitValidationContext
  - TestKeyExportDelegate::TestKeyExportDelegate
  - TestKeyExportDelegate::GetNodeCertSet
  - TestKeyExportDelegate::ReleaseNodeCertSet
  - TestKeyExportDelegate::GenerateNodeSignature
  - TestKeyExportDelegate::BeginCertValidation
  - TestKeyExportDelegate::HandleCertValidationResult
  - TestKeyExportDelegate::EndCertValidation
  - TestKeyExportDelegate::ValidateUnsignedKeyExportMessage
  - TestKeyExportDelegate::GetNodeCertSet
  - TestKeyExportDelegate::ReleaseNodeCertSet
  - TestKeyExportDelegate::GetNodePrivateKey
  - TestKeyExportDelegate::ReleaseNodePrivateKey
  - TestKeyExportDelegate::BeginCertValidation
  - TestKeyExportDelegate::HandleCertValidationResult
  - TestKeyExportDelegate::EndCertValidation
  - TestKeyExportDelegate::ValidateUnsignedKeyExportMessage
  - KeyExportProtocol_Test
  - main
  source_file: /src/openweave-core/src/test-apps/TestKeyExport.cpp
- function_names:
  - BufferFree
  - BufferAlloc
  - PrepareTestBuffer
  - CheckStart
  - CheckSetStart
  - CheckDataLength
  - CheckSetDataLength
  - CheckTotalLength
  - CheckMaxDataLength
  - CheckAvailableDataLength
  - CheckReservedSize
  - CheckAddToEnd
  - CheckDetachTail
  - CheckCompactHead
  - CheckConsumeHead
  - CheckConsume
  - CheckEnsureReservedSize
  - CheckAlignPayload
  - CheckNext
  - CheckAddRef
  - CheckNewAndFree
  - CheckFree
  - CheckFreeHead
  - CheckBuildFreeList
  - TestSetup
  - TestTeardown
  - main
  - main
  source_file: /src/openweave-core/src/test-apps/TestInetBuffer.cpp
- function_names:
  - nl::Weave::Profiles::BulkDataTransferServer::BulkDataTransferServer
  - BulkDataTransferServer::~BulkDataTransferServer()
  - nl::Weave::Profiles::BulkDataTransferServer::Init
  - nl::Weave::Profiles::BulkDataTransferServer::Shutdown
  - nl::Weave::Profiles::BulkDataTransferServer::NewTransfer
  - nl::Weave::Profiles::BulkDataTransferServer::ShutdownTransfer
  - nl::Weave::Profiles::BulkDataTransferServer::HandleReceiveInitRequest
  - nl::Weave::Profiles::BulkDataTransferServer::HandleSendInitRequest
  - nl::Weave::Profiles::BulkDataTransferServer::HandleBlockSend
  - nl::Weave::Profiles::read_n
  - nl::Weave::Profiles::BulkDataTransferServer::HandleBlockQueryRequest
  - nl::Weave::Profiles::BulkDataTransferServer::HandleBlockEOFAck
  - nl::Weave::Profiles::BulkDataTransferServer::HandleBDXConnectionClosed
  - nl::Weave::Profiles::BulkDataTransferServer::HandleResponseTimeout
  - nl::Weave::Profiles::BulkDataTransferServer::SendTransferError
  source_file: /src/openweave-core/src/test-apps/nlweavebdxserver.cpp
- function_names:
  - main
  - StartClientConnection
  - HandleOption
  - HandleNonOptionArgs
  - HandleConnectionReceived
  - HandleConnectionComplete
  - HandleConnectionClosed
  source_file: /src/openweave-core/src/test-apps/weave-bdx-client.cpp
- function_names:
  - ~MessageMutator()
  source_file: /src/openweave-core/src/test-apps/PASEEngineTest.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockFPServer.h
- function_names:
  - TestWdmSubscriptionlessNotificationReceiver::GetInstance
  - TestWdmSubscriptionlessNotificationReceiver::TestWdmSubscriptionlessNotificationReceiver
  - TestWdmSubscriptionlessNotificationReceiver::Init
  - TestWdmSubscriptionlessNotificationReceiver::EngineEventCallback
  source_file: /src/openweave-core/src/test-apps/TestWdmSubscriptionlessNotificationReceiver.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockDDServer.h
- function_names:
  - NetworkOptions::NetworkOptions
  - NetworkOptions::HandleOption
  - WeaveNodeOptions::WeaveNodeOptions
  - WeaveNodeOptions::~WeaveNodeOptions()
  - WeaveNodeOptions::HandleOption
  - WeaveSecurityMode::WeaveSecurityMode
  - WeaveSecurityMode::HandleOption
  - WRMPOptions::WRMPOptions
  - WRMPOptions::GetWRMPConfig
  - WRMPOptions::HandleOption
  - GroupKeyEncOptions::GroupKeyEncOptions
  - GroupKeyEncOptions::GetEncKeyId
  - GroupKeyEncOptions::HandleOption
  - GeneralSecurityOptions::GeneralSecurityOptions
  - GeneralSecurityOptions::GetIdleSessionTimeout
  - GeneralSecurityOptions::GetSessionEstablishmentTimeout
  - GeneralSecurityOptions::HandleOption
  - ServiceDirClientOptions::ServiceDirClientOptions
  - ServiceDirClientOptions::HandleOption
  - ServiceDirClientOptions::GetRootDirectoryEntry
  - GetRootServiceDirectoryEntry
  - ServiceDirClientOptions::OverrideConnectArguments
  - OverrideServiceConnectArguments
  - FaultInjectionOptions::FaultInjectionOptions
  - FaultInjectionOptions::HandleOption
  - GetToken
  - MatchToken
  - ParseDNSOptions
  - ResolveWeaveNetworkOptions
  source_file: /src/openweave-core/src/test-apps/ToolCommonOptions.cpp
- function_names:
  - main
  - SendIdentifyRequest
  - HandleOption
  - HandleNonOptionArgs
  - HandleIdentifyResponse
  source_file: /src/openweave-core/src/test-apps/weave-dd-client.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockEvents.h
- function_names:
  - TestMismatchedCTraitDataSource::Reset
  source_file: /src/openweave-core/src/test-apps/MockMismatchedSchemaSinkAndSource.h
- function_names:
  - ValidatePath
  - DMTestClient::ViewConfirm
  - DMTestClient::ViewConfirm
  - DMTestClient::UpdateConfirm
  - DMTestClient::IncompleteIndication
  - DMTestClient::SubscribeConfirm
  - DMTestClient::SubscribeConfirm
  - DMTestClient::SubscribeConfirm
  - DMTestClient::UnsubscribeIndication
  - DMTestClient::CancelSubscriptionConfirm
  - DMTestClient::NotifyIndication
  - DMClientTester::DMClientTester
  - DMClientTester::Test_InitialState
  - DMClientTester::Test_DBStore
  - DMClientTester::Test_DBRetrieve
  - DMClientTester::Test_DBRetrieveAndStore
  - DMClientTester::Test_View
  - DMClientTester::Test_Update
  - DMClientTester::Test_CancelNonSubscription
  - DMClientTester::Test_SubscribeToTopic
  - DMClientTester::Test_MultipleClients
  - DMClientTester::Test_CloseConnection
  - DMClientTester::Test_NoResponse
  - DMClientTester::Run
  - main
  - HandleOption
  - HandleNonOptionArgs
  - HandleConnectionReceived
  - HandleSecureSessionEstablished
  - HandleSecureSessionError
  - HandleConnectionClosed
  source_file: /src/openweave-core/src/test-apps/TestDataManagement.cpp
- function_names:
  - nl::Weave::WeaveMessageLayerTestObject
  - WeaveMessageEncryption_Test1
  - main
  source_file: /src/openweave-core/src/test-apps/TestMsgEnc.cpp
- function_names:
  - BindingTestDriver::BindingTestDriver
  - HandleOption
  - HandleNonOptionArgs
  - ParseDestAddress
  - StartTest
  - BindingTestDriver::Start
  - BindingTestDriver::AsyncDoStart
  - BindingTestDriver::DoStart
  - BindingTestDriver::PrepareBinding
  - BindingTestDriver::DoOnDemandPrepare
  - BindingTestDriver::BindingEventCallback
  - BindingTestDriver::SendEcho
  - BindingTestDriver::SendDelayComplete
  - BindingTestDriver::OnEchoResponseReceived
  - BindingTestDriver::Complete
  - BindingTestDriver::Failed
  - BindingTestDriver::OnResponseTimeout
  - BindingTestDriver::OnMessageSendError
  source_file: /src/openweave-core/src/test-apps/TestBinding.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/MockSDServer.h
- function_names:
  - TestDNSResolution_Basic
  - TestDNSResolution_AddressTypeOption
  - TestDNSResolution_RestrictedResults
  - TestDNSResolution_NoRecord
  - TestDNSResolution_NoHostRecord
  - TestDNSResolution_TextForm
  - TestDNSResolution_Cancel
  - TestDNSResolution_Simultaneous
  - RunTestCase
  - StartTestCase
  - HandleResolutionComplete
  - ServiceNetworkUntilDone
  - HandleSIGUSR1
  - main
  - main
  source_file: /src/openweave-core/src/test-apps/TestInetLayerDNS.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/ToolCommonOptions.h
- function_names:
  - ComputeSharedSecretUsingOpenSSL
  - ECDHTest_TestEphemeralKeys
  - ECDHTest_TestFixedKeys
  - main
  source_file: /src/openweave-core/src/test-apps/TestECDH.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/KeyExportOptions.h
- function_names:
  - SetupIPAddress
  - ClearIPAddress
  - CheckAddressQuartet
  - CheckAddressQuartet
  - CheckAddressQuartets
  - CheckAddressQuartets
  - CheckAddressString
  - CheckAddress
  - CheckFromString
  - CheckToString
  - CheckIsIPv6ULA
  - CheckIsIPv6LLA
  - CheckIsIPv6Multicast
  - CheckIsMulticast
  - CheckOperatorEqual
  - CheckOperatorNotEqual
  - CheckOperatorAssign
  - CheckToIPv6
  - CheckFromIPv6
  - CheckIsIPv4
  - CheckIsIPv4Multicast
  - CheckIsIPv4Broadcast
  - CheckToIPv4
  - CheckFromIPv4
  - CheckFromSocket
  - CheckType
  - CheckAnyAddress
  - CheckInterface
  - CheckSubnet
  - CheckGlobal
  - CheckEncoding
  - CheckDecoding
  - CheckEcodeDecodeSymmetricity
  - CheckMakeULA
  - CheckMakeLLA
  - CheckMakeIPv6WellKnownMulticast
  - CheckMakeIPv6TransientMulticast
  - CheckMakeIPv6PrefixMulticast
  - CheckIPPrefix
  - TestSetup
  - TestTeardown
  - main
  source_file: /src/openweave-core/src/test-apps/TestInetAddress.cpp
- function_names:
  - TestMessageStrFunct
  - TestProfileStrFunct
  - TestStatusReportStrFunct
  - CheckUnregisterEmpty
  - CheckFindEmpty
  - CheckRegisterEmpty
  - CheckRegisterEmpty_123
  - CheckRegisterEmpty_132
  - CheckRegisterEmpty_213
  - CheckRegisterEmpty_231
  - CheckRegisterEmpty_312
  - CheckRegisterEmpty_321
  - CheckFindAndUnregister
  - CheckUnregisterWithAlias
  - main
  source_file: /src/openweave-core/src/test-apps/TestProfileStringSupport.cpp
- function_names:
  - nl::Weave::Profiles::Platform::CriticalSectionEnter
  - nl::Weave::Profiles::Platform::CriticalSectionExit
  - ~TraitPathStoreTest()
  - nl::Weave::Profiles::TraitPathStoreTest::TraitPathStoreTest
  - nl::Weave::Profiles::TraitPathStoreTest::TestInitCleanup
  - nl::Weave::Profiles::TraitPathStoreTest::TestAddGet
  - nl::Weave::Profiles::TraitPathStoreTest::TestFull
  - nl::Weave::Profiles::TraitPathStoreTest::TestIncludes
  - nl::Weave::Profiles::TraitPathStoreTest::TestIntersects
  - nl::Weave::Profiles::TraitPathStoreTest::TestIsPresent
  - nl::Weave::Profiles::TraitPathStoreTest::TestRemoveAndCompact
  - nl::Weave::Profiles::TraitPathStoreTest::TestAddItemDedup
  - nl::Weave::Profiles::TraitPathStoreTest::TestGetFirstGetNext
  - nl::Weave::Profiles::TraitPathStoreTest::TestFlags
  - nl::Weave::Profiles::TraitPathStoreTest::TestInsertItem
  - nl::Weave::Profiles::TraitPathStoreTest::TestSetFailedTrait
  - SubscriptionEngine::GetInstance
  - TraitPathStoreTest_InitCleanup
  - TraitPathStoreTest_AddGet
  - TraitPathStoreTest_Full
  - TraitPathStoreTest_Includes
  - TraitPathStoreTest_Intersects
  - TraitPathStoreTest_IsPresent
  - TraitPathStoreTest_RemoveAndCompact
  - TraitPathStoreTest_AddItemDedup
  - TraitPathStoreTest_GetFirstGetNext
  - TraitPathStoreTest_Flags
  - TraitPathStoreTest_InsertItem
  - TraitPathStoreTest_SetFailedTrait
  - TestSetup
  - TestTeardown
  - main
  source_file: /src/openweave-core/src/test-apps/TestPathStore.cpp
- function_names:
  - SimpleDumpWriter
  - CalculateChecksum
  - ChecksumTLV
  - DumpPublisherTraitChecksum
  - DumpClientTraitChecksum
  source_file: /src/openweave-core/src/test-apps/MockWdmTestVerifier.cpp
- function_names:
  - HandleCharacteristicReceivedOnePacket
  - HandleCharacteristicReceivedTwoPacket
  - HandleCharacteristicReceivedThreePacket
  - HandleCharacteristicSendOnePacket
  - HandleCharacteristicSendTwoPacket
  - HandleCharacteristicSendThreePacket
  - TestSetup
  - TestTeardown
  - main
  source_file: /src/openweave-core/src/test-apps/TestWoble.cpp
- function_names:
  - MakeWeaveProvisioningHash_Test1
  - MakeDeviceCredentialHash_Test1
  - main
  source_file: /src/openweave-core/src/test-apps/TestProvHash.cpp
- function_names:
  - nl::Weave::DeviceManager::TraitSchemaDirectory::GetTraitSchemaEngine
  source_file: /src/openweave-core/src/test-apps/schema/CustomBuiltInTraitSchemaDirectory.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/resource/TraitTestResource.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestFTrait.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestCommon-c.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestDTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestHTrait.h
- function_names:
  - Schema::Nest::Test::Trait::TestBTrait::StructEA::SetSaANull
  - Schema::Nest::Test::Trait::TestBTrait::StructEA::SetSaAPresent
  - Schema::Nest::Test::Trait::TestBTrait::StructEA::IsSaAPresent
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestBTrait.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestBTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestCommonVersioned.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestMismatchedCTrait-c.h
- function_names:
  - Schema::Nest::Test::Trait::TestATrait::StructA::SetSaANull
  - Schema::Nest::Test::Trait::TestATrait::StructA::SetSaAPresent
  - Schema::Nest::Test::Trait::TestATrait::StructA::IsSaAPresent
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestATrait.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestCommonVersioned-c.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestHTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestCTrait.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestHTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestFTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestATrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestCTrait-c.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestDTrait.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestCommonVersioned.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestMismatchedCTrait.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestBTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestMismatchedCTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestCommon.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestATrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestFTrait.cpp
- function_names:
  - Schema::Nest::Test::Trait::TestETrait::NullableE::SetNeANull
  - Schema::Nest::Test::Trait::TestETrait::NullableE::SetNeAPresent
  - Schema::Nest::Test::Trait::TestETrait::NullableE::IsNeAPresent
  - Schema::Nest::Test::Trait::TestETrait::NullableE::SetNeBNull
  - Schema::Nest::Test::Trait::TestETrait::NullableE::SetNeBPresent
  - Schema::Nest::Test::Trait::TestETrait::NullableE::IsNeBPresent
  - Schema::Nest::Test::Trait::TestETrait::TestEEvent::SetTeJNull
  - Schema::Nest::Test::Trait::TestETrait::TestEEvent::SetTeJPresent
  - Schema::Nest::Test::Trait::TestETrait::TestEEvent::IsTeJPresent
  - Schema::Nest::Test::Trait::TestETrait::TestEEvent::SetTeMNull
  - Schema::Nest::Test::Trait::TestETrait::TestEEvent::SetTeMPresent
  - Schema::Nest::Test::Trait::TestETrait::TestEEvent::IsTeMPresent
  - Schema::Nest::Test::Trait::TestETrait::TestEEvent::SetTeNNull
  - Schema::Nest::Test::Trait::TestETrait::TestEEvent::SetTeNPresent
  - Schema::Nest::Test::Trait::TestETrait::TestEEvent::IsTeNPresent
  - Schema::Nest::Test::Trait::TestETrait::TestEEvent::SetTePNull
  - Schema::Nest::Test::Trait::TestETrait::TestEEvent::SetTePPresent
  - Schema::Nest::Test::Trait::TestETrait::TestEEvent::IsTePPresent
  - Schema::Nest::Test::Trait::TestETrait::TestEEvent::SetTeSNull
  - Schema::Nest::Test::Trait::TestETrait::TestEEvent::SetTeSPresent
  - Schema::Nest::Test::Trait::TestETrait::TestEEvent::IsTeSPresent
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeANull
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeAPresent
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeAPresent
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeBNull
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeBPresent
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeBPresent
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeCNull
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeCPresent
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeCPresent
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeDNull
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeDPresent
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeDPresent
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeENull
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeEPresent
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeEPresent
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeFNull
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeFPresent
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeFPresent
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeGNull
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeGPresent
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeGPresent
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeHNull
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeHPresent
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeHPresent
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeINull
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeIPresent
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeIPresent
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeJNull
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::SetNeJPresent
  - Schema::Nest::Test::Trait::TestETrait::TestENullableEvent::IsNeJPresent
  - Schema::Nest::Test::Trait::TestETrait::TestELargeArrayNullableEvent::SetTelaneANull
  - Schema::Nest::Test::Trait::TestETrait::TestELargeArrayNullableEvent::SetTelaneAPresent
  - Schema::Nest::Test::Trait::TestETrait::TestELargeArrayNullableEvent::IsTelaneAPresent
  - Schema::Nest::Test::Trait::TestETrait::TestESmallArrayNullableEvent::SetTesaneANull
  - Schema::Nest::Test::Trait::TestETrait::TestESmallArrayNullableEvent::SetTesaneAPresent
  - Schema::Nest::Test::Trait::TestETrait::TestESmallArrayNullableEvent::IsTesaneAPresent
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestETrait.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestDTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestCTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/nest/test/trait/TestCommon.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/weave/common/InterfaceNameStructSchema.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/weave/common/DayOfWeekEnum.h
- function_names:
  - Schema::Weave::Common::EventId::SetResourceIdNull
  - Schema::Weave::Common::EventId::SetResourceIdPresent
  - Schema::Weave::Common::EventId::IsResourceIdPresent
  source_file: /src/openweave-core/src/test-apps/schema/weave/common/EventIdStructSchema.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/weave/common/TimeOfDayStructSchema.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/weave/common/TraitTypeInstanceStructSchema.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/weave/common/TimerStructSchema.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/weave/common/TimeOfDayStructSchema.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/weave/common/ResourceTypeEnum.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/weave/common/EventIdStructSchema.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/weave/common/InterfaceNameStructSchema.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/weave/common/ProfileSpecificStatusCodeStructSchema.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/weave/common/ProfileSpecificStatusCodeStructSchema.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/weave/common/TraitTypeInstanceStructSchema.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/weave/common/TimerStructSchema.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/weave/trait/security/BoltLockSettingsTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/weave/trait/security/BoltLockSettingsTrait.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/weave/trait/locale/LocaleSettingsTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/weave/trait/locale/LocaleCapabilitiesTrait.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/weave/trait/locale/LocaleSettingsTrait.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/weave/trait/locale/LocaleCapabilitiesTrait.cpp
- function_names:
  - Schema::Maldives_prototype::Trait::Flintstone::NetworkWiFiTelemetryTrait::LogNetworkWiFiStatsEvent
  - Schema::Maldives_prototype::Trait::Flintstone::NetworkWiFiTelemetryTrait::LogNetworkWiFiDeauthEvent
  - Schema::Maldives_prototype::Trait::Flintstone::NetworkWiFiTelemetryTrait::LogNetworkWiFiInvalidKeyEvent
  - Schema::Maldives_prototype::Trait::Flintstone::NetworkWiFiTelemetryTrait::LogNetworkWiFiDHCPFailureEvent
  source_file: /src/openweave-core/src/test-apps/schema/weave/trait/telemetry/NetworkWiFiTelemetryTrait.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/weave/trait/telemetry/NetworkWiFiTelemetryTrait.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/wdl/EventImportanceEnum.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/google/protobuf/FieldMaskStructSchema.h
- function_names: []
  source_file: /src/openweave-core/src/test-apps/schema/google/protobuf/FieldMaskStructSchema.cpp
- function_names:
  - AES128CTRMode_DoTest
  - Check_AES128CTRMode_Test1
  - Check_AES128CTRMode_Test2
  - Check_AES128CTRMode_Test3
  - Check_AES128CTRMode_Test4
  - AES256CTRMode_DoTest
  - Check_AES256CTRMode_Test1
  - Check_AES256CTRMode_Test2
  - Check_AES256CTRMode_Test3
  - AES128BlockCipher_DoTest
  - Check_AES128BlockCipher_Test1
  - AES256BlockCipher_DoTest
  - Check_AES256BlockCipher_Test1
  - WeaveCryptoAESTests
  source_file: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoAESTests.cpp
- function_names:
  - Check_HMACSHA1_Test1
  - Check_HMACSHA1_Test2
  - WeaveCryptoHMACTests
  source_file: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHMACTests.cpp
- function_names:
  - Check_SHA1_Test1
  - GenBigNumHashes
  - Check_SHA1_Test2
  - Check_SHA1_Test3
  - WeaveCryptoSHATests
  source_file: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoSHATests.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoTests.h
- function_names:
  - Check_HKDF_Test1
  - Check_HKDF_Test2
  - Check_HKDF_Test3
  - Check_HKDF_Test4
  - WeaveCryptoHKDFTests
  source_file: /src/openweave-core/src/test-apps/crypto-tests/WeaveCryptoHKDFTests.cpp
- function_names:
  - RAND_bytes
  - LLVMFuzzerTestOneInput
  - main
  source_file: /src/openweave-core/src/test-apps/fuzz/FuzzPASEResponderStep2.cpp
- function_names:
  - saveCorpus
  - printCorpus
  source_file: /src/openweave-core/src/test-apps/fuzz/FuzzUtils.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  - main
  source_file: /src/openweave-core/src/test-apps/fuzz/FuzzCertificateConversion.cpp
- function_names:
  - RAND_bytes
  - LLVMFuzzerTestOneInput
  - main
  source_file: /src/openweave-core/src/test-apps/fuzz/FuzzPASEResponderStep1.cpp
- function_names:
  - RAND_bytes
  - LLVMFuzzerTestOneInput
  - main
  source_file: /src/openweave-core/src/test-apps/fuzz/FuzzPASEKeyConfirm.cpp
- function_names: []
  source_file: /src/openweave-core/src/test-apps/fuzz/FuzzUtils.h
- function_names:
  - RAND_bytes
  - LLVMFuzzerTestOneInput
  - main
  source_file: /src/openweave-core/src/test-apps/fuzz/FuzzPASEInitiatorStep2.cpp
- function_names:
  - RAND_bytes
  - LLVMFuzzerTestOneInput
  - main
  source_file: /src/openweave-core/src/test-apps/fuzz/FuzzPASEInitiatorStep1.cpp
- function_names:
  - nl::Ble::BlePlatformDelegate
  source_file: /src/openweave-core/src/ble/BlePlatformDelegate.h
- function_names: []
  source_file: /src/openweave-core/src/ble/BleError.h
- function_names:
  - nl::Ble::IncSeqNum
  - nl::Ble::DidReceiveData
  - nl::Ble::PrintBufDebug
  - nl::Ble::WoBle::Init
  - nl::Ble::WoBle::GetAndIncrementNextTxSeqNum
  - nl::Ble::WoBle::GetAndRecordRxAckSeqNum
  - nl::Ble::WoBle::HasUnackedData
  - nl::Ble::WoBle::IsValidAck
  - nl::Ble::WoBle::HandleAckReceived
  - nl::Ble::WoBle::EncodeStandAloneAck
  - nl::Ble::WoBle::HandleCharacteristicReceived
  - nl::Ble::WoBle::RxPacket
  - nl::Ble::WoBle::ClearRxPacket
  - nl::Ble::WoBle::HandleCharacteristicSend
  - nl::Ble::WoBle::TxPacket
  - nl::Ble::WoBle::ClearTxPacket
  - nl::Ble::WoBle::LogState
  - nl::Ble::WoBle::LogStateDebug
  source_file: /src/openweave-core/src/ble/WoBle.cpp
- function_names:
  - nl::Ble::Init
  - nl::Ble::GetVendorId
  - nl::Ble::SetVendorId
  - nl::Ble::GetProductId
  - nl::Ble::SetProductId
  - nl::Ble::GetDeviceId
  - nl::Ble::SetDeviceId
  source_file: /src/openweave-core/src/ble/WeaveBleServiceData.h
- function_names:
  - nl::Ble::BleEndPointPool::Size
  - nl::Ble::BleEndPointPool::Get
  - nl::Ble::BleEndPointPool::Find
  - nl::Ble::BleEndPointPool::GetFree
  - nl::Ble::BleLayerObject::Release
  - nl::Ble::BleTransportCapabilitiesRequestMessage::SetSupportedProtocolVersion
  - nl::Ble::BleTransportCapabilitiesRequestMessage::Encode
  - nl::Ble::BleTransportCapabilitiesRequestMessage::Decode
  - nl::Ble::BleTransportCapabilitiesResponseMessage::Encode
  - nl::Ble::BleTransportCapabilitiesResponseMessage::Decode
  - nl::Ble::BleLayer::BleLayer
  - nl::Ble::BleLayer::Init
  - nl::Ble::BleLayer::Shutdown
  - nl::Ble::BleLayer::NewBleEndPoint
  - nl::Ble::BleLayer::HandleBleTransportConnectionInitiated
  - nl::Ble::BleLayer::HandleWriteReceived
  - nl::Ble::BleLayer::HandleIndicationReceived
  - nl::Ble::BleLayer::HandleWriteConfirmation
  - nl::Ble::BleLayer::HandleIndicationConfirmation
  - nl::Ble::BleLayer::HandleAckReceived
  - nl::Ble::BleLayer::HandleSubscribeReceived
  - nl::Ble::BleLayer::HandleSubscribeComplete
  - nl::Ble::BleLayer::HandleUnsubscribeReceived
  - nl::Ble::BleLayer::HandleUnsubscribeComplete
  - nl::Ble::BleLayer::HandleConnectionError
  - nl::Ble::BleLayer::GetHighestSupportedProtocolVersion
  source_file: /src/openweave-core/src/ble/BleLayer.cpp
- function_names:
  - nl::Ble::UUIDsMatch
  source_file: /src/openweave-core/src/ble/BleUUID.cpp
- function_names: []
  source_file: /src/openweave-core/src/ble/BleUUID.h
- function_names:
  - nl::Ble::BLEEndPoint::StartConnect
  - nl::Ble::BLEEndPoint::HandleConnectComplete
  - nl::Ble::BLEEndPoint::HandleReceiveConnectionComplete
  - nl::Ble::BLEEndPoint::HandleSubscribeReceived
  - nl::Ble::BLEEndPoint::HandleSubscribeComplete
  - nl::Ble::BLEEndPoint::HandleUnsubscribeComplete
  - nl::Ble::BLEEndPoint::IsConnected
  - nl::Ble::BLEEndPoint::IsUnsubscribePending
  - nl::Ble::BLEEndPoint::Abort
  - nl::Ble::BLEEndPoint::Close
  - nl::Ble::BLEEndPoint::DoClose
  - nl::Ble::BLEEndPoint::FinalizeClose
  - nl::Ble::BLEEndPoint::DoCloseCallback
  - nl::Ble::BLEEndPoint::ReleaseBleConnection
  - nl::Ble::BLEEndPoint::Free
  - nl::Ble::BLEEndPoint::FreeWoBle
  - nl::Ble::BLEEndPoint::Init
  - nl::Ble::BLEEndPoint::SendCharacteristic
  - nl::Ble::BLEEndPoint::QueueTx
  - nl::Ble::BLEEndPoint::Send
  - nl::Ble::BLEEndPoint::PrepareNextFragment
  - nl::Ble::BLEEndPoint::SendNextMessage
  - nl::Ble::BLEEndPoint::ContinueMessageSend
  - nl::Ble::BLEEndPoint::HandleHandshakeConfirmationReceived
  - nl::Ble::BLEEndPoint::HandleFragmentConfirmationReceived
  - nl::Ble::BLEEndPoint::HandleGattSendConfirmationReceived
  - nl::Ble::BLEEndPoint::DriveStandAloneAck
  - nl::Ble::BLEEndPoint::DoSendStandAloneAck
  - nl::Ble::BLEEndPoint::DriveSending
  - nl::Ble::BLEEndPoint::HandleCapabilitiesRequestReceived
  - nl::Ble::BLEEndPoint::HandleCapabilitiesResponseReceived
  - nl::Ble::BLEEndPoint::AdjustRemoteReceiveWindow
  - nl::Ble::BLEEndPoint::Receive
  - nl::Ble::BLEEndPoint::SendWrite
  - nl::Ble::BLEEndPoint::SendIndication
  - nl::Ble::BLEEndPoint::StartConnectTimer
  - nl::Ble::BLEEndPoint::StartReceiveConnectionTimer
  - nl::Ble::BLEEndPoint::StartAckReceivedTimer
  - nl::Ble::BLEEndPoint::RestartAckReceivedTimer
  - nl::Ble::BLEEndPoint::StartSendAckTimer
  - nl::Ble::BLEEndPoint::StartUnsubscribeTimer
  - nl::Ble::BLEEndPoint::StopConnectTimer
  - nl::Ble::BLEEndPoint::StopReceiveConnectionTimer
  - nl::Ble::BLEEndPoint::StopAckReceivedTimer
  - nl::Ble::BLEEndPoint::StopSendAckTimer
  - nl::Ble::BLEEndPoint::StopUnsubscribeTimer
  - nl::Ble::BLEEndPoint::HandleConnectTimeout
  - nl::Ble::BLEEndPoint::HandleReceiveConnectionTimeout
  - nl::Ble::BLEEndPoint::HandleAckReceivedTimeout
  - nl::Ble::BLEEndPoint::HandleSendAckTimeout
  - nl::Ble::BLEEndPoint::HandleUnsubscribeTimeout
  source_file: /src/openweave-core/src/ble/BLEEndPoint.cpp
- function_names:
  - nl::Ble::BleLayerObject
  source_file: /src/openweave-core/src/ble/BLEEndPoint.h
- function_names: []
  source_file: /src/openweave-core/src/ble/BleConfig.h
- function_names:
  - nl::Ble::BleApplicationDelegate
  source_file: /src/openweave-core/src/ble/BleApplicationDelegate.h
- function_names:
  - nl::Ble::WoBle::WoBle
  - ~WoBle(void)
  - nl::Ble::WoBle::SetTxFragmentSize
  - nl::Ble::WoBle::SetRxFragmentSize
  - nl::Ble::WoBle::GetRxFragmentSize
  - nl::Ble::WoBle::GetTxFragmentSize
  - nl::Ble::WoBle::GetLastReceivedSequenceNumber
  - nl::Ble::WoBle::GetNewestUnackedSentSequenceNumber
  - nl::Ble::WoBle::ExpectingAck
  - nl::Ble::WoBle::RxState
  - nl::Ble::WoBle::TxState
  - nl::Ble::WoBle::SetTxPacketType
  - nl::Ble::WoBle::SetRxPacketType
  - nl::Ble::WoBle::TxPacketType
  - nl::Ble::WoBle::RxPacketType
  - nl::Ble::WoBle::SetTxPacketSeq
  - nl::Ble::WoBle::SetRxPacketSeq
  - nl::Ble::WoBle::TxPacketSeq
  - nl::Ble::WoBle::RxPacketSeq
  - nl::Ble::WoBle::IsCommandPacket
  - nl::Ble::WoBle::PushPacketTag
  - nl::Ble::WoBle::PopPacketTag
  source_file: /src/openweave-core/src/ble/WoBle.h
- function_names:
  - nl::Ble::BleLayerObject::AddRef
  - nl::Ble::BleLayer
  - nl::Ble::BleLayer::Init
  source_file: /src/openweave-core/src/ble/BleLayer.h
- function_names:
  - nl::Ble::RegisterBleLayerErrorFormatter
  - nl::Ble::FormatBleLayerError
  source_file: /src/openweave-core/src/ble/BleError.cpp
- function_names: []
  source_file: /src/openweave-core/src/ble/Ble.h
- function_names: []
  source_file: /src/openweave-core/src/warm/WarmConfig.h
- function_names:
  - nl::Weave::Warm::GetCurrentActionState
  - nl::Weave::Warm::SetCurrentActionState
  - nl::Weave::Warm::GetSystemFeatureState
  - nl::Weave::Warm::SetSystemFeatureState
  - nl::Weave::Warm::ShouldPerformAction
  - nl::Weave::Warm::RecordPlatformResult
  - nl::Weave::Warm::SystemFeatureStateChangeHandler
  - nl::Weave::Warm::FabricStateChange
  - nl::Weave::Warm::WarmFabricStateDelegate::DidJoinFabric
  - nl::Weave::Warm::WarmFabricStateDelegate::DidLeaveFabric
  - nl::Weave::Warm::Init
  - nl::Weave::Warm::GetULA
  - nl::Weave::Warm::GetFabricState
  - nl::Weave::Warm::InvokeActions
  - nl::Weave::Warm::ReportActionComplete
  - nl::Weave::Warm::CellularInterfaceStateChange
  - nl::Weave::Warm::WiFiHostAddressAction
  - nl::Weave::Warm::WiFiInterfaceStateChange
  - nl::Weave::Warm::MakePrefix
  - nl::Weave::Warm::ThreadHostAddressAction
  - nl::Weave::Warm::ThreadThreadAddressAction
  - nl::Weave::Warm::ThreadHostRouteAction
  - nl::Weave::Warm::ThreadInterfaceStateChange
  - nl::Weave::Warm::LegacyHostAddressAction
  - nl::Weave::Warm::LegacyThreadAddressAction
  - nl::Weave::Warm::ThreadAdvertisementAction
  - nl::Weave::Warm::ThreadRoutingStateChange
  - nl::Weave::Warm::TunnelHostAddressAction
  - nl::Weave::Warm::TunnelHostRouteAction
  - nl::Weave::Warm::TunnelInterfaceStateChange
  - nl::Weave::Warm::TunnelServiceStateChange
  - nl::Weave::Warm::TunnelPriorityStateChange
  - nl::Weave::Warm::Profiles::WeaveTunnel::Platform::TunnelInterfaceUp
  - nl::Weave::Warm::Profiles::WeaveTunnel::Platform::TunnelInterfaceDown
  - nl::Weave::Warm::Profiles::WeaveTunnel::Platform::ServiceTunnelEstablished
  - nl::Weave::Warm::Profiles::WeaveTunnel::Platform::ServiceTunnelDisconnected
  - nl::Weave::Warm::Profiles::WeaveTunnel::Platform::ServiceTunnelModeChange
  - nl::Weave::Warm::Profiles::WeaveTunnel::Platform::EnableBorderRouting
  - nl::Weave::Warm::Profiles::WeaveTunnel::Platform::DisableBorderRouting
  - nl::Weave::Warm::Warm::BorderRouterStateChange
  - nl::Weave::Warm::Warm::MapAvailabilityToPriority
  - nl::Weave::Warm::Warm::ThreadThreadRouteAction
  - nl::Weave::Warm::Warm::ThreadRoutePriorityAction
  - nl::Weave::Warm::Warm::TakeActions
  source_file: /src/openweave-core/src/warm/WarmCore.cpp
- function_names: []
  source_file: /src/openweave-core/src/warm/Warm.h
- function_names:
  - emptyJniStaticMethod0
  - emptyJniStaticMethod6
  - emptyJniStaticMethod6L
  - register_org_apache_harmony_dalvik_NativeTestTarget
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/org_apache_harmony_dalvik_NativeTestTarget.cpp
- function_names:
  - android::dalvik_system_TouchDex_trampoline
  - android::logProcStatus
  - android::register_dalvik_system_TouchDex
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/dalvik/src/main/native/dalvik_system_TouchDex.cpp
- function_names:
  - ScopedPthreadMutexLock::ScopedPthreadMutexLock
  - ~ScopedPthreadMutexLock()
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedPthreadMutexLock.h
- function_names: []
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedPrimitiveArray.h
- function_names:
  - ScopedUtfChars::ScopedUtfChars
  - ~ScopedUtfChars()
  - ScopedUtfChars::c_str
  - ScopedUtfChars::size
  - '& operator[](size_t n) const'
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedUtfChars.h
- function_names:
  - ScopedLocalFrame::ScopedLocalFrame
  - ~ScopedLocalFrame()
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedLocalFrame.h
- function_names:
  - DefaultDelete
  - operator()(T* p) const
  - operator()(T* p) const
  - UniquePtr::UniquePtr
  - ~UniquePtr()
  - '& operator*() const'
  - '* operator->() const'
  - UniquePtr::get
  - UniquePtr::release
  - UniquePtr::reset
  - UniquePtr<T[], D>::UniquePtr
  - ~UniquePtr()
  - '& operator[](size_t i) const'
  - UniquePtr<T[], D>::get
  - UniquePtr<T[], D>::release
  - UniquePtr<T[], D>::reset
  - assert
  - C
  - ~C()
  - operator()(int* p)
  - main
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/UniquePtr.h
- function_names:
  - LocalArray::LocalArray
  - ~LocalArray()
  - LocalArray::size
  - LocalArray::empty
  - '& operator[](size_t n)'
  - '& operator[](size_t n) const'
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/LocalArray.h
- function_names:
  - ScopedJavaUnicodeString::ScopedJavaUnicodeString
  - ~ScopedJavaUnicodeString()
  - '& unicodeString() const'
  - '& unicodeString()'
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedJavaUnicodeString.h
- function_names:
  - ScopedFd::ScopedFd
  - ~ScopedFd()
  - ScopedFd::get
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedFd.h
- function_names:
  - ScopedLocalRef::ScopedLocalRef
  - ~ScopedLocalRef()
  - ScopedLocalRef::reset
  - ScopedLocalRef::get
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/include/ScopedLocalRef.h
- function_names: []
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.h
- function_names:
  - seterr
  - setvmerr
  - setstmterr
  - jstrlen
  - gethandle
  - gethvm
  - gethstmt
  - gethbl
  - delglobrefp
  - globrefpop
  - globrefset
  - freep
  - throwex
  - throwoom
  - throwclosed
  - throwioex
  - transfree
  - trans2iso
  - trans2utf
  - busyhandler
  - busyhandler3
  - progresshandler
  - callback
  - doclose
  - Java_SQLite_Database__1close
  - Java_SQLite_Database__1finalize
  - Java_SQLite_Database__1busy_1timeout
  - Java_SQLite_Database_version
  - Java_SQLite_Database_dbversion
  - Java_SQLite_Database__1last_1insert_1rowid
  - Java_SQLite_Database__1changes
  - Java_SQLite_Database__1complete
  - Java_SQLite_Database__1interrupt
  - Java_SQLite_Database__1open
  - Java_SQLite_Database__1open_1aux_1file
  - Java_SQLite_Database__1busy_1handler
  - Java_SQLite_Database__1exec__Ljava_lang_String_2LSQLite_Callback_2
  - Java_SQLite_Database__1exec__Ljava_lang_String_2LSQLite_Callback_2_3Ljava_lang_String_2
  - getfunc
  - call_common
  - call_func
  - call_step
  - call_final
  - call3_common
  - call3_func
  - call3_step
  - call3_final
  - mkfunc_common
  - Java_SQLite_Database__1create_1aggregate
  - Java_SQLite_Database__1create_1function
  - Java_SQLite_Database__1function_1type
  - Java_SQLite_FunctionContext_count
  - Java_SQLite_FunctionContext_set_1error
  - Java_SQLite_FunctionContext_set_1result__D
  - Java_SQLite_FunctionContext_set_1result__I
  - Java_SQLite_FunctionContext_set_1result__Ljava_lang_String_2
  - Java_SQLite_FunctionContext_set_1result___3B
  - Java_SQLite_FunctionContext_set_1result_1zeroblob
  - Java_SQLite_Database_error_1string
  - Java_SQLite_Database__1errmsg
  - Java_SQLite_Database__1set_1encoding
  - doauth
  - Java_SQLite_Database__1set_1authorizer
  - dotrace
  - Java_SQLite_Database__1trace
  - dovmfinal
  - dostmtfinal
  - doblobfinal
  - Java_SQLite_Vm_stop
  - Java_SQLite_Vm_finalize
  - free_tab
  - Java_SQLite_Vm_step
  - Java_SQLite_Vm_compile
  - Java_SQLite_Database_vm_1compile
  - Java_SQLite_Database_vm_1compile_1args
  - Java_SQLite_FunctionContext_internal_1init
  - Java_SQLite_Database__1progress_1handler
  - Java_SQLite_Database_is3
  - Java_SQLite_Stmt_prepare
  - Java_SQLite_Database_stmt_1prepare
  - Java_SQLite_Stmt_step
  - Java_SQLite_Stmt_close
  - Java_SQLite_Stmt_reset
  - Java_SQLite_Stmt_clear_1bindings
  - Java_SQLite_Stmt_bind__II
  - Java_SQLite_Stmt_bind__IJ
  - Java_SQLite_Stmt_bind__ID
  - Java_SQLite_Stmt_bind__I_3B
  - Java_SQLite_Stmt_bind__ILjava_lang_String_2
  - Java_SQLite_Stmt_bind__I
  - Java_SQLite_Stmt_bind_1zeroblob
  - Java_SQLite_Stmt_bind_1parameter_1count
  - Java_SQLite_Stmt_bind_1parameter_1name
  - Java_SQLite_Stmt_bind_1parameter_1index
  - Java_SQLite_Stmt_column_1int
  - Java_SQLite_Stmt_column_1long
  - Java_SQLite_Stmt_column_1double
  - Java_SQLite_Stmt_column_1bytes
  - Java_SQLite_Stmt_column_1string
  - Java_SQLite_Stmt_column_1type
  - Java_SQLite_Stmt_column_1count
  - Java_SQLite_Stmt_column_1table_1name
  - Java_SQLite_Stmt_column_1database_1name
  - Java_SQLite_Stmt_column_1decltype
  - Java_SQLite_Stmt_column_1origin_1name
  - Java_SQLite_Stmt_finalize
  - Java_SQLite_Database__1open_1blob
  - Java_SQLite_Blob_write
  - Java_SQLite_Blob_read
  - Java_SQLite_Blob_close
  - Java_SQLite_Blob_finalize
  - Java_SQLite_Database__1key
  - Java_SQLite_Database__1rekey
  - Java_SQLite_Database__1enable_1shared_1cache
  - Java_SQLite_Stmt_internal_1init
  - Java_SQLite_Vm_internal_1init
  - Java_SQLite_Blob_internal_1init
  - Java_SQLite_Database_internal_1init
  - JNI_OnLoad
  - JNI_OnUnload
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni.c
- function_names: []
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/sqlite-jdbc/src/main/native/sqlite_jni_defs.h
- function_names: []
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/test/resources/hyts_Foo.c
- function_names: []
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/test/resources/blob.c
- function_names:
  - Character_digitImpl
  - Character_getTypeImpl
  - Character_getDirectionalityImpl
  - Character_isMirroredImpl
  - Character_getNumericValueImpl
  - Character_isDefinedImpl
  - Character_isDigitImpl
  - Character_isIdentifierIgnorableImpl
  - Character_isLetterImpl
  - Character_isLetterOrDigitImpl
  - Character_isSpaceCharImpl
  - Character_isTitleCaseImpl
  - Character_isUnicodeIdentifierPartImpl
  - Character_isUnicodeIdentifierStartImpl
  - Character_isWhitespaceImpl
  - Character_toLowerCaseImpl
  - Character_toTitleCaseImpl
  - Character_toUpperCaseImpl
  - Character_isUpperCaseImpl
  - Character_isLowerCaseImpl
  - Character_forNameImpl
  - Character_ofImpl
  - register_java_lang_Character
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Character.cpp
- function_names:
  - ObjectInputStream_setFieldObject
  - ObjectInputStream_newInstance
  - register_java_io_ObjectInputStream
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectInputStream.cpp
- function_names:
  - operator()(BIO* p) const
  - operator()(BIGNUM* p) const
  - operator()(DH* p) const
  - operator()(DSA* p) const
  - operator()(EVP_PKEY* p) const
  - operator()(PKCS8_PRIV_KEY_INFO* p) const
  - operator()(RSA* p) const
  - operator()(SSL* p) const
  - operator()(SSL_CTX* p) const
  - operator()(X509* p) const
  - operator()(X509_NAME* p) const
  - operator()(STACK_OF(SSL_CIPHER)* p) const
  - operator()(STACK_OF(X509)* p) const
  - operator()(STACK_OF(X509_NAME)* p) const
  - freeSslErrorState
  - throwExceptionIfNecessary
  - throwSocketTimeoutException
  - throwSSLExceptionStr
  - throwSSLProtocolExceptionStr
  - throwSSLExceptionWithSslErrors
  - to_SSL_CTX
  - to_SSL
  - to_SSL_SESSION
  - arrayToBignum
  - locking_function
  - id_function
  - THREAD_setup
  - THREAD_cleanup
  - NativeCrypto_clinit
  - NativeCrypto_EVP_PKEY_new_DSA
  - NativeCrypto_EVP_PKEY_new_RSA
  - NativeCrypto_EVP_PKEY_free
  - NativeCrypto_EVP_MD_CTX_create
  - NativeCrypto_EVP_MD_CTX_destroy
  - NativeCrypto_EVP_MD_CTX_copy
  - NativeCrypto_EVP_DigestFinal
  - NativeCrypto_EVP_DigestInit
  - NativeCrypto_EVP_MD_CTX_size
  - NativeCrypto_EVP_MD_CTX_block_size
  - NativeCrypto_EVP_DigestUpdate
  - NativeCrypto_EVP_VerifyInit
  - NativeCrypto_EVP_VerifyUpdate
  - NativeCrypto_EVP_VerifyFinal
  - rsaCreateKey
  - rsaVerify
  - NativeCrypto_verifySignature
  - NativeCrypto_RAND_seed
  - NativeCrypto_RAND_load_file
  - get_ssl_version
  - get_content_type
  - ssl_msg_callback_LOG
  - info_callback_LOG
  - getCertificateBytes
  - getPrincipalBytes
  - AppData::create
  - ~AppData()
  - AppData::AppData
  - AppData::setCallbackState
  - AppData::clearCallbackState
  - sslSelect
  - sslNotify
  - SSL_CIPHER_authentication_method
  - SSL_authentication_method
  - toAppData
  - cert_verify_callback
  - info_callback
  - client_cert_cb
  - rsaGenerateKey
  - tmp_rsa_callback
  - dhGenerateParameters
  - tmp_dh_callback
  - NativeCrypto_SSL_CTX_new
  - NativeCrypto_SSL_CTX_free
  - NativeCrypto_SSL_new
  - NativeCrypto_SSL_use_PrivateKey
  - NativeCrypto_SSL_use_certificate
  - NativeCrypto_SSL_check_private_key
  - NativeCrypto_SSL_set_client_CA_list
  - NativeCrypto_SSL_get_mode
  - NativeCrypto_SSL_set_mode
  - NativeCrypto_SSL_clear_mode
  - NativeCrypto_SSL_get_options
  - NativeCrypto_SSL_set_options
  - NativeCrypto_SSL_clear_options
  - NativeCrypto_SSL_set_cipher_lists
  - NativeCrypto_SSL_set_verify
  - NativeCrypto_SSL_set_session
  - NativeCrypto_SSL_set_session_creation_enabled
  - NativeCrypto_SSL_set_tlsext_host_name
  - NativeCrypto_SSL_get_servername
  - NativeCrypto_SSL_do_handshake
  - NativeCrypto_SSL_renegotiate
  - NativeCrypto_SSL_get_certificate
  - NativeCrypto_SSL_get_peer_cert_chain
  - sslRead
  - NativeCrypto_SSL_read_byte
  - NativeCrypto_SSL_read
  - sslWrite
  - NativeCrypto_SSL_write_byte
  - NativeCrypto_SSL_write
  - NativeCrypto_SSL_interrupt
  - NativeCrypto_SSL_shutdown
  - NativeCrypto_SSL_free
  - NativeCrypto_SSL_SESSION_session_id
  - NativeCrypto_SSL_SESSION_get_time
  - SSL_SESSION_get_version
  - NativeCrypto_SSL_SESSION_get_version
  - NativeCrypto_SSL_SESSION_cipher
  - NativeCrypto_SSL_SESSION_compress_meth
  - NativeCrypto_SSL_SESSION_free
  - NativeCrypto_i2d_SSL_SESSION
  - NativeCrypto_d2i_SSL_SESSION
  - register_org_apache_harmony_xnet_provider_jsse_NativeCrypto
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCrypto.cpp
- function_names:
  - sendfile
  - EsTranslateOpenFlags
  - offsetTooLarge
  - translateLockLength
  - flockFromStartAndLength
  - OSFileSystem_lockImpl
  - OSFileSystem_unlockImpl
  - OSFileSystem_getAllocGranularity
  - initIoVec
  - OSFileSystem_readv
  - OSFileSystem_writev
  - OSFileSystem_transfer
  - OSFileSystem_readDirect
  - OSFileSystem_read
  - OSFileSystem_writeDirect
  - OSFileSystem_write
  - OSFileSystem_seek
  - OSFileSystem_fsync
  - OSFileSystem_truncate
  - OSFileSystem_open
  - OSFileSystem_ioctlAvailable
  - OSFileSystem_length
  - register_org_apache_harmony_luni_platform_OSFileSystem
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSFileSystem.cpp
- function_names: []
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniException.h
- function_names: []
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.h
- function_names:
  - findClass
  - JniConstants::init
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.cpp
- function_names:
  - BiDiData
  - ~BiDiData()
  - embeddingLevels
  - setEmbeddingLevels
  - uBiDi
  - biDiData
  - uBiDi
  - NativeBidi_ubidi_open
  - NativeBidi_ubidi_close
  - NativeBidi_ubidi_setPara
  - NativeBidi_ubidi_setLine
  - NativeBidi_ubidi_getDirection
  - NativeBidi_ubidi_getLength
  - NativeBidi_ubidi_getParaLevel
  - NativeBidi_ubidi_getLevels
  - NativeBidi_ubidi_countRuns
  - NativeBidi_ubidi_getRuns
  - NativeBidi_ubidi_reorderVisual
  - register_org_apache_harmony_text_NativeBidi
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBidi.cpp
- function_names:
  - getSocketAddressPort
  - getSocketAddressFamily
  - CompatibleSocketAddress::CompatibleSocketAddress
  - CompatibleSocketAddress::get
  - inetAddressToSocketAddress
  - toTimeval
  - toMs
  - time_msec_clock
  - ConnectHelper::ConnectHelper
  - ConnectHelper::start
  - ConnectHelper::isConnected
  - ConnectHelper::didConnect
  - ConnectHelper::didFail
  - mcastJoinLeaveGroup
  - initCachedFields
  - OSNetworkSystem_socket
  - OSNetworkSystem_writeDirect
  - OSNetworkSystem_write
  - OSNetworkSystem_connectNonBlocking
  - OSNetworkSystem_isConnected
  - OSNetworkSystem_connect
  - OSNetworkSystem_bind
  - OSNetworkSystem_listen
  - OSNetworkSystem_accept
  - OSNetworkSystem_sendUrgentData
  - OSNetworkSystem_disconnectDatagram
  - OSNetworkSystem_setInetAddress
  - OSNetworkSystem_readDirect
  - OSNetworkSystem_read
  - OSNetworkSystem_recvDirect
  - OSNetworkSystem_recv
  - OSNetworkSystem_sendDirect
  - OSNetworkSystem_send
  - isValidFd
  - initFdSet
  - translateFdSet
  - OSNetworkSystem_selectImpl
  - OSNetworkSystem_getSocketLocalAddress
  - OSNetworkSystem_getSocketLocalPort
  - getSocketOption
  - getSocketOption_Boolean
  - getSocketOption_Integer
  - OSNetworkSystem_getSocketOption
  - setSocketOption
  - OSNetworkSystem_setSocketOption
  - doShutdown
  - OSNetworkSystem_shutdownInput
  - OSNetworkSystem_shutdownOutput
  - OSNetworkSystem_close
  - register_org_apache_harmony_luni_platform_OSNetworkSystem
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp
- function_names: []
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ErrorCode.h
- function_names:
  - getSignature
  - ObjectStreamClass_getFieldSignature
  - ObjectStreamClass_getMethodSignature
  - ObjectStreamClass_getConstructorSignature
  - ObjectStreamClass_hasClinit
  - register_java_io_ObjectStreamClass
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectStreamClass.cpp
- function_names:
  - icu4jni_error
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ErrorCode.cpp
- function_names: []
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniConstants.h
- function_names:
  - Inflater_createStream
  - Inflater_setInputImpl
  - Inflater_setFileInputImpl
  - Inflater_inflateImpl
  - Inflater_getAdlerImpl
  - Inflater_endImpl
  - Inflater_setDictionaryImpl
  - Inflater_resetImpl
  - Inflater_getTotalOutImpl
  - Inflater_getTotalInImpl
  - register_java_util_zip_Inflater
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Inflater.cpp
- function_names:
  - NetFd::NetFd
  - NetFd::isClosed
  - NetFd::get
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetFd.h
- function_names:
  - ProcessManager_kill
  - ProcessManager_watchChildren
  - closeNonStandardFds
  - closePipes
  - executeProcess
  - convertStrings
  - freeStrings
  - ProcessManager_exec
  - ProcessManager_staticInitialize
  - register_java_lang_ProcessManager
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_ProcessManager.cpp
- function_names:
  - operator()(BN_CTX* p) const
  - isValidHandle
  - oneValidHandle
  - twoValidHandles
  - threeValidHandles
  - fourValidHandles
  - NativeBN_ERR_get_error
  - NativeBN_ERR_error_string
  - NativeBN_BN_new
  - NativeBN_BN_free
  - NativeBN_BN_cmp
  - NativeBN_BN_copy
  - NativeBN_putULongInt
  - NativeBN_putLongInt
  - NativeBN_BN_dec2bn
  - NativeBN_BN_hex2bn
  - NativeBN_BN_bin2bn
  - NativeBN_litEndInts2bn
  - negBigEndianBytes2bn
  - NativeBN_twosComp2bn
  - NativeBN_longInt
  - leadingZerosTrimmed
  - NativeBN_BN_bn2dec
  - NativeBN_BN_bn2hex
  - NativeBN_BN_bn2bin
  - NativeBN_bn2litEndInts
  - NativeBN_sign
  - NativeBN_BN_set_negative
  - NativeBN_bitLength
  - NativeBN_BN_is_bit_set
  - NativeBN_modifyBit
  - NativeBN_BN_shift
  - NativeBN_BN_add_word
  - NativeBN_BN_sub_word
  - NativeBN_BN_mul_word
  - NativeBN_BN_div_word
  - NativeBN_BN_mod_word
  - NativeBN_BN_add
  - NativeBN_BN_sub
  - NativeBN_BN_gcd
  - NativeBN_BN_mul
  - NativeBN_BN_exp
  - NativeBN_BN_div
  - NativeBN_BN_nnmod
  - NativeBN_BN_mod_exp
  - NativeBN_BN_mod_inverse
  - NativeBN_BN_generate_prime_ex
  - NativeBN_BN_is_prime_ex
  - register_java_math_NativeBN
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBN.cpp
- function_names:
  - Double_doubleToLongBits
  - Double_doubleToRawLongBits
  - Double_longBitsToDouble
  - register_java_lang_Double
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Double.cpp
- function_names:
  - toCollator
  - toCollationElements
  - NativeCollation_closeCollator
  - NativeCollation_closeElements
  - NativeCollation_compare
  - NativeCollation_getAttribute
  - NativeCollation_getCollationElementIterator
  - NativeCollation_getMaxExpansion
  - NativeCollation_getNormalization
  - NativeCollation_setNormalization
  - NativeCollation_getOffset
  - NativeCollation_getRules
  - NativeCollation_getSortKey
  - NativeCollation_next
  - NativeCollation_openCollator
  - NativeCollation_openCollatorFromRules
  - NativeCollation_previous
  - NativeCollation_reset
  - NativeCollation_safeClone
  - NativeCollation_setAttribute
  - NativeCollation_setOffset
  - NativeCollation_setText
  - register_com_ibm_icu4jni_text_NativeCollator
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeCollation.cpp
- function_names:
  - operator()(UConverter* p) const
  - toUConverter
  - NativeConverter_openConverter
  - NativeConverter_closeConverter
  - NativeConverter_encode
  - NativeConverter_decode
  - NativeConverter_resetByteToChar
  - NativeConverter_resetCharToByte
  - NativeConverter_getMaxBytesPerChar
  - NativeConverter_getMinBytesPerChar
  - NativeConverter_getAveBytesPerChar
  - NativeConverter_flushByteToChar
  - NativeConverter_flushCharToByte
  - NativeConverter_canEncode
  - getJavaCanonicalName
  - NativeConverter_getAvailableCharsetNames
  - getAliases
  - getICUCanonicalName
  - CHARSET_ENCODER_CALLBACK
  - encoderReplaceCallback
  - getFromUCallback
  - NativeConverter_setCallbackEncode
  - decoderIgnoreCallback
  - decoderReplaceCallback
  - getToUCallback
  - CHARSET_DECODER_CALLBACK
  - NativeConverter_setCallbackDecode
  - NativeConverter_getAveCharsPerByte
  - NativeConverter_getSubstitutionBytes
  - NativeConverter_contains
  - NativeConverter_charsetForName
  - register_com_ibm_icu4jni_converters_NativeConverter
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeConverter.cpp
- function_names:
  - Math_sin
  - Math_cos
  - Math_tan
  - Math_asin
  - Math_acos
  - Math_atan
  - Math_exp
  - Math_log
  - Math_sqrt
  - Math_IEEEremainder
  - Math_floor
  - Math_ceil
  - Math_rint
  - Math_atan2
  - Math_pow
  - Math_sinh
  - Math_tanh
  - Math_cosh
  - Math_log10
  - Math_cbrt
  - Math_expm1
  - Math_hypot
  - Math_log1p
  - Math_nextafter
  - Math_nextafterf
  - register_java_lang_Math
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Math.cpp
- function_names: []
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.h
- function_names:
  - valueOf
  - booleanValueOf
  - doubleValueOf
  - integerValueOf
  - longValueOf
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/valueOf.cpp
- function_names:
  - ObjectOutputStream_getFieldObj
  - register_java_io_ObjectOutputStream
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_ObjectOutputStream.cpp
- function_names:
  - blockedThreadSignalHandler
  - AsynchronousSocketCloseMonitor::init
  - AsynchronousSocketCloseMonitor::signalBlockedThreads
  - AsynchronousSocketCloseMonitor::AsynchronousSocketCloseMonitor
  - AsynchronousSocketCloseMonitor::~AsynchronousSocketCloseMonitor()
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/AsynchronousSocketCloseMonitor.cpp
- function_names:
  - RealToString_bigIntDigitGenerator
  - register_java_lang_RealToString
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_RealToString.cpp
- function_names:
  - formatDate
  - timeZoneFromId
  - TimeZones_forCountryCode
  - TimeZones_getDisplayNameImpl
  - TimeZones_getZoneStringsImpl
  - register_libcore_icu_TimeZones
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/TimeZones.cpp
- function_names:
  - throwExceptionForZlibError
  - NativeZipStream::NativeZipStream
  - ~NativeZipStream()
  - NativeZipStream::setDictionary
  - NativeZipStream::setInput
  - toNativeZipStream
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/zip.h
- function_names:
  - toRegexMatcher
  - MatcherAccessor::MatcherAccessor
  - MatcherAccessor::MatcherAccessor
  - ~MatcherAccessor()
  - '* operator->()'
  - '& status()'
  - MatcherAccessor::updateOffsets
  - MatcherAccessor::init
  - Matcher_closeImpl
  - Matcher_findImpl
  - Matcher_findNextImpl
  - Matcher_groupCountImpl
  - Matcher_hitEndImpl
  - Matcher_lookingAtImpl
  - Matcher_matchesImpl
  - Matcher_openImpl
  - Matcher_requireEndImpl
  - Matcher_setInputImpl
  - Matcher_useAnchoringBoundsImpl
  - Matcher_useTransparentBoundsImpl
  - register_java_util_regex_Matcher
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Matcher.cpp
- function_names:
  - getIterator
  - NativeBreakIterator_getCharacterInstanceImpl
  - NativeBreakIterator_getLineInstanceImpl
  - NativeBreakIterator_getSentenceInstanceImpl
  - NativeBreakIterator_getWordInstanceImpl
  - breakIterator
  - NativeBreakIterator_closeBreakIteratorImpl
  - NativeBreakIterator_cloneImpl
  - NativeBreakIterator_setTextImpl
  - NativeBreakIterator_isBoundaryImpl
  - NativeBreakIterator_nextImpl
  - NativeBreakIterator_precedingImpl
  - NativeBreakIterator_firstImpl
  - NativeBreakIterator_followingImpl
  - NativeBreakIterator_currentImpl
  - NativeBreakIterator_previousImpl
  - NativeBreakIterator_lastImpl
  - register_com_ibm_icu4jni_text_NativeBreakIterator
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeBreakIterator.cpp
- function_names:
  - Float_floatToIntBits
  - Float_floatToRawIntBits
  - Float_intBitsToFloat
  - register_java_lang_Float
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_Float.cpp
- function_names: []
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/valueOf.h
- function_names:
  - CRC32_updateImpl
  - CRC32_updateByteImpl
  - register_java_util_zip_CRC32
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_CRC32.cpp
- function_names:
  - File_deleteImpl
  - doStat
  - File_lengthImpl
  - File_lastModifiedImpl
  - File_isDirectoryImpl
  - File_isFileImpl
  - doAccess
  - File_existsImpl
  - File_canExecuteImpl
  - File_canReadImpl
  - File_canWriteImpl
  - File_readlink
  - File_setLastModifiedImpl
  - doChmod
  - File_setExecutableImpl
  - File_setReadableImpl
  - File_setWritableImpl
  - doStatFs
  - File_getFreeSpaceImpl
  - File_getTotalSpaceImpl
  - File_getUsableSpaceImpl
  - ScopedReaddir::ScopedReaddir
  - ~ScopedReaddir()
  - ScopedReaddir::next
  - ScopedReaddir::isBad
  - DirEntry
  - DirEntries::DirEntries
  - ~DirEntries()
  - DirEntries::push_front
  - DirEntries::front
  - DirEntries::pop_front
  - DirEntries::size
  - readDirectory
  - File_listImpl
  - File_mkdirImpl
  - File_createNewFileImpl
  - File_renameToImpl
  - register_java_io_File
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_File.cpp
- function_names:
  - Adler32_updateImpl
  - Adler32_updateByteImpl
  - register_java_util_zip_Adler32
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Adler32.cpp
- function_names:
  - registerCoreLibrariesJni
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/Register.cpp
- function_names:
  - isLabelSeparator
  - NativeIDN_convertImpl
  - register_libcore_icu_NativeIDN
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeIDN.cpp
- function_names:
  - NativeNormalizer_normalizeImpl
  - NativeNormalizer_isNormalizedImpl
  - register_libcore_icu_NativeNormalizer
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeNormalizer.cpp
- function_names:
  - byteArrayToSocketAddress
  - socketAddressToByteArray
  - byteArrayToInetAddress
  - socketAddressToInetAddress
  - setBlocking
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NetworkUtilities.cpp
- function_names:
  - toDecimalFormat
  - toUNumberFormat
  - makeDecimalFormatSymbols
  - NativeDecimalFormat_setDecimalFormatSymbols
  - NativeDecimalFormat_open
  - NativeDecimalFormat_close
  - NativeDecimalFormat_setRoundingMode
  - NativeDecimalFormat_setSymbol
  - NativeDecimalFormat_setAttribute
  - NativeDecimalFormat_getAttribute
  - NativeDecimalFormat_setTextAttribute
  - NativeDecimalFormat_getTextAttribute
  - NativeDecimalFormat_applyPatternImpl
  - NativeDecimalFormat_toPatternImpl
  - formatResult
  - format
  - NativeDecimalFormat_formatLong
  - NativeDecimalFormat_formatDouble
  - NativeDecimalFormat_formatDigitList
  - newBigDecimal
  - NativeDecimalFormat_parse
  - NativeDecimalFormat_cloneImpl
  - register_com_ibm_icu4jni_text_NativeDecimalFormat
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativeDecimalFormat.cpp
- function_names:
  - toPluralRules
  - NativePluralRules_finalizeImpl
  - NativePluralRules_forLocaleImpl
  - NativePluralRules_quantityForIntImpl
  - register_libcore_icu_NativePluralRules
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/NativePluralRules.cpp
- function_names:
  - ByteOrder_isLittleEndian
  - register_java_nio_ByteOrder
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_ByteOrder.cpp
- function_names: []
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/AsynchronousSocketCloseMonitor.h
- function_names:
  - ScopedResourceBundle::ScopedResourceBundle
  - ~ScopedResourceBundle()
  - ScopedResourceBundle::get
  - getLocale
  - ICU_getCurrencyFractionDigitsNative
  - ICU_getCurrencyCodeNative
  - ICU_getCurrencySymbolNative
  - ICU_getDisplayCountryNative
  - ICU_getDisplayLanguageNative
  - ICU_getDisplayVariantNative
  - ICU_getISO3CountryNative
  - ICU_getISO3LanguageNative
  - toStringArray
  - ICU_getISOCountriesNative
  - ICU_getISOLanguagesNative
  - getAvailableLocales
  - ICU_getAvailableLocalesNative
  - ICU_getAvailableBreakIteratorLocalesNative
  - ICU_getAvailableCalendarLocalesNative
  - ICU_getAvailableCollatorLocalesNative
  - ICU_getAvailableDateFormatLocalesNative
  - ICU_getAvailableNumberFormatLocalesNative
  - getDayIntVector
  - getAmPmMarkers
  - getEras
  - getNames
  - getIntCurrencyCode
  - setIntegerField
  - setStringField
  - setStringArrayField
  - setStringField
  - setCharField
  - ICU_initLocaleDataImpl
  - ICU_toLowerCase
  - ICU_toUpperCase
  - register_com_ibm_icu4jni_util_ICU
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ICU.cpp
- function_names:
  - FileDescriptor_syncImpl
  - register_java_io_FileDescriptor
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_FileDescriptor.cpp
- function_names:
  - jniThrowExceptionWithErrno
  - jniThrowBindException
  - jniThrowConnectException
  - jniThrowOutOfMemoryError
  - jniThrowSecurityException
  - jniThrowSocketException
  - jniThrowSocketTimeoutException
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/JniException.cpp
- function_names:
  - Deflater_setDictionaryImpl
  - Deflater_getTotalInImpl
  - Deflater_getTotalOutImpl
  - Deflater_getAdlerImpl
  - Deflater_createStream
  - Deflater_setInputImpl
  - Deflater_deflateImpl
  - Deflater_endImpl
  - Deflater_resetImpl
  - Deflater_setLevelsImpl
  - register_java_util_zip_Deflater
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_zip_Deflater.cpp
- function_names:
  - cast
  - OSMemory_malloc
  - OSMemory_free
  - OSMemory_memset
  - OSMemory_memmove
  - OSMemory_getByte
  - OSMemory_getByteArray
  - OSMemory_setByte
  - OSMemory_setByteArray
  - swapShorts
  - swapInts
  - OSMemory_setFloatArray
  - OSMemory_setIntArray
  - OSMemory_setShortArray
  - OSMemory_getShort
  - OSMemory_setShort
  - OSMemory_getInt
  - OSMemory_setInt
  - get
  - set
  - OSMemory_getLong
  - OSMemory_setLong
  - OSMemory_getFloat
  - OSMemory_setFloat
  - OSMemory_getDouble
  - OSMemory_setDouble
  - OSMemory_getAddress
  - OSMemory_setAddress
  - OSMemory_mmapImpl
  - OSMemory_unmap
  - OSMemory_load
  - OSMemory_isLoaded
  - OSMemory_flush
  - register_org_apache_harmony_luni_platform_OSMemory
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_platform_OSMemory.cpp
- function_names:
  - simpleAddHighPrecision
  - addHighPrecision
  - subtractHighPrecision
  - simpleMultiplyHighPrecision
  - simpleMultiplyAddHighPrecision
  - simpleMultiplyAddHighPrecisionBigEndianFix
  - multiplyHighPrecision
  - simpleAppendDecimalDigitHighPrecision
  - simpleShiftLeftHighPrecision
  - highestSetBit
  - lowestSetBit
  - highestSetBitHighPrecision
  - lowestSetBitHighPrecision
  - compareHighPrecision
  - toDoubleHighPrecision
  - timesTenToTheEHighPrecision
  - doubleMantissa
  - doubleExponent
  - floatMantissa
  - floatExponent
  - simpleMultiplyHighPrecision64
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/cbigint.cpp
- function_names:
  - toRegexPattern
  - throwPatternSyntaxException
  - Pattern_closeImpl
  - Pattern_compileImpl
  - register_java_util_regex_Pattern
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_util_regex_Pattern.cpp
- function_names:
  - IoUtils_close
  - IoUtils_getFd
  - IoUtils_pipe
  - IoUtils_setFd
  - IoUtils_setBlocking
  - register_libcore_io_IoUtils
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/libcore_io_IoUtils.cpp
- function_names:
  - Console_isatty
  - Console_setEchoImpl
  - register_java_io_Console
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_io_Console.cpp
- function_names:
  - StrictMath_sin
  - StrictMath_cos
  - StrictMath_tan
  - StrictMath_asin
  - StrictMath_acos
  - StrictMath_atan
  - StrictMath_exp
  - StrictMath_log
  - StrictMath_sqrt
  - StrictMath_IEEEremainder
  - StrictMath_floor
  - StrictMath_ceil
  - StrictMath_rint
  - StrictMath_atan2
  - StrictMath_pow
  - StrictMath_sinh
  - StrictMath_tanh
  - StrictMath_cosh
  - StrictMath_log10
  - StrictMath_cbrt
  - StrictMath_expm1
  - StrictMath_hypot
  - StrictMath_log1p
  - StrictMath_nextafter
  - StrictMath_nextafterf
  - register_java_lang_StrictMath
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_StrictMath.cpp
- function_names:
  - createDouble
  - createDouble1
  - doubleAlgorithm
  - createFloat
  - createFloat1
  - floatAlgorithm
  - FloatingPointParser_parseFltImpl
  - FloatingPointParser_parseDblImpl
  - register_org_apache_harmony_luni_util_fltparse
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_luni_util_FloatingPointParser.cpp
- function_names:
  - NativeUnsafeByteSequence::NativeUnsafeByteSequence
  - ~NativeUnsafeByteSequence()
  - NativeUnsafeByteSequence::append
  - NativeUnsafeByteSequence::resize
  - NativeUnsafeByteSequence::toByteArray
  - Charsets_asciiBytesToChars
  - Charsets_isoLatin1BytesToChars
  - charsToBytes
  - Charsets_toAsciiBytes
  - Charsets_toIsoLatin1Bytes
  - Charsets_toUtf8Bytes
  - register_java_nio_charset_Charsets
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_nio_charset_Charsets.cpp
- function_names:
  - ScopedInterfaceAddresses::ScopedInterfaceAddresses
  - ScopedInterfaceAddresses::init
  - ~ScopedInterfaceAddresses()
  - makeInterfaceAddress
  - NetworkInterface_getAllInterfaceAddressesImpl
  - doIoctl
  - hasFlag
  - NetworkInterface_getHardwareAddressImpl
  - NetworkInterface_getMTUImpl
  - NetworkInterface_isLoopbackImpl
  - NetworkInterface_isPointToPointImpl
  - NetworkInterface_isUpImpl
  - NetworkInterface_supportsMulticastImpl
  - register_java_net_NetworkInterface
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_NetworkInterface.cpp
- function_names:
  - throw_OutOfMemoryError
  - InternedString
  - ~InternedString()
  - StringStack::StringStack
  - ~StringStack()
  - StringStack::push
  - StringStack::pop
  - ParsingContext
  - ~ParsingContext()
  - ensureCapacity
  - freeBuffer
  - toParsingContext
  - toParsingContext
  - hashString
  - newInternedString
  - newInternedStringBucket
  - expandInternedStringBucket
  - findInternedString
  - internString
  - jniThrowExpatException
  - fillBuffer
  - bufferAndInvoke
  - toAttributes
  - ExpatElementName::ExpatElementName
  - ExpatElementName::ExpatElementName
  - ~ExpatElementName()
  - ExpatElementName::uri
  - ExpatElementName::localName
  - ExpatElementName::qName
  - ExpatElementName::matches
  - ExpatElementName::matchesQName
  - ExpatElementName::init
  - startElement
  - endElement
  - text
  - comment
  - startNamespace
  - endNamespace
  - startCdata
  - endCdata
  - startDtd
  - endDtd
  - processingInstruction
  - ExpatParser_createEntityParser
  - handleExternalEntity
  - unparsedEntityDecl
  - notationDecl
  - ExpatParser_initialize
  - append
  - ExpatParser_appendBytes
  - ExpatParser_appendChars
  - ExpatParser_appendString
  - ExpatParser_releaseParser
  - ExpatParser_release
  - ExpatParser_line
  - ExpatParser_column
  - ExpatAttributes_getURI
  - ExpatAttributes_getLocalName
  - ExpatAttributes_getQName
  - ExpatAttributes_getValueByIndex
  - ExpatAttributes_getIndexForQName
  - ExpatAttributes_getIndex
  - ExpatAttributes_getValueForQName
  - ExpatAttributes_getValue
  - ExpatParser_cloneAttributes
  - ExpatAttributes_freeAttributes
  - ExpatParser_staticInitialize
  - register_org_apache_harmony_xml_ExpatParser
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/org_apache_harmony_xml_ExpatParser.cpp
- function_names:
  - InetAddress_gethostname
  - logIpString
  - logIpString
  - InetAddress_getaddrinfo
  - InetAddress_getnameinfo
  - InetAddress_ipStringToByteArray
  - InetAddress_byteArrayToIpString
  - register_java_net_InetAddress
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_net_InetAddress.cpp
- function_names:
  - System_getEnvByName
  - System_getEnvByIndex
  - System_setFieldImpl
  - register_java_lang_System
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/java_lang_System.cpp
- function_names:
  - ifaddrs
  - ~ifaddrs()
  - setNameAndFlagsByIndex
  - setAddress
  - setNetmask
  - sockaddrBytes
  - sendNetlinkMessage
  - recvNetlinkMessage
  - getifaddrs
  - freeifaddrs
  source_file: /src/openweave-core/third_party/android/platform-libcore/android-platform-libcore/luni/src/main/native/ifaddrs-android.h
- function_names: []
  source_file: /src/openweave-core/third_party/android/platform-system/core-mincrypt/include/mincrypt/rsa.h
- function_names: []
  source_file: /src/openweave-core/third_party/android/platform-system/core-mincrypt/include/mincrypt/hash-internal.h
- function_names: []
  source_file: /src/openweave-core/third_party/android/platform-system/core-mincrypt/include/mincrypt/dsa_sig.h
- function_names: []
  source_file: /src/openweave-core/third_party/android/platform-system/core-mincrypt/include/mincrypt/p256_ecdsa.h
- function_names: []
  source_file: /src/openweave-core/third_party/android/platform-system/core-mincrypt/include/mincrypt/p256.h
- function_names: []
  source_file: /src/openweave-core/third_party/android/platform-system/core-mincrypt/include/mincrypt/sha.h
- function_names: []
  source_file: /src/openweave-core/third_party/android/platform-system/core-mincrypt/include/mincrypt/sha256.h
- function_names:
  - SHA1_Transform
  - SHA_init
  - SHA_update
  - SHA_final
  - SHA_hash
  source_file: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha.c
- function_names:
  - felem_reduce_carry
  - felem_sum
  - felem_diff
  - felem_reduce_degree
  - felem_square
  - felem_mul
  - felem_assign
  - felem_inv
  - felem_scalar_3
  - felem_scalar_4
  - felem_scalar_8
  - felem_is_zero_vartime
  - point_double
  - point_add_mixed
  - point_add
  - point_add_or_double_vartime
  - copy_conditional
  - select_affine_point
  - select_jacobian_point
  - scalar_base_mult
  - point_to_affine
  - scalar_mult
  - to_montgomery
  - from_montgomery
  - p256_base_point_mul
  - p256_points_mul_vartime
  source_file: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ec.c
- function_names:
  - subM
  - geM
  - montMulAdd
  - montMul
  - modpow
  - RSA_verify
  source_file: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/rsa.c
- function_names:
  - trim_to_p256_bytes
  - dsa_sig_unpack
  source_file: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/dsa_sig.c
- function_names:
  - p256_init
  - p256_clear
  - p256_get_bit
  - p256_is_zero
  - mulAdd
  - subTop
  - subM
  - addM
  - p256_modmul
  - p256_is_odd
  - p256_is_even
  - p256_shl
  - p256_shr
  - p256_shr1
  - p256_cmp
  - p256_sub
  - p256_add
  - p256_add_d
  - p256_modinv_vartime
  - p256_mod
  - p256_is_valid_point
  - p256_from_bin
  source_file: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256.c
- function_names:
  - SHA256_Transform
  - SHA256_init
  - SHA256_update
  - SHA256_final
  - SHA256_hash
  source_file: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/sha256.c
- function_names:
  - p256_ecdsa_verify
  source_file: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/p256_ecdsa.c
- function_names:
  - parsehex
  - main
  source_file: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/ecdsa_test.c
- function_names:
  - parsehex
  - main
  source_file: /src/openweave-core/third_party/android/platform-system/core-mincrypt/libmincrypt/test/rsa_test.c
- function_names:
  - TrailingSpace
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/trailing-space.cpp
- function_names:
  - _mul
  - mul
  - baz
  - foo
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/multiple-returns.c
- function_names: []
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-operator.cpp
- function_names:
  - negative_test_2::void_method
  - negative_test_2::int_method_1
  - negative_test_2::int_method_2
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/implicit-void-declaration.cpp
- function_names: []
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/no-missing-copyright.cpp
- function_names:
  - TrailingSpace
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/blank-trailing-space.cpp
- function_names:
  - _TestNS::_Test1::_Test1
  - ~Test1(void)
  - _TestNS::_Test1::Mul
  - _TestNS::_Test1::Baz
  - _TestNS::_Test1::Foo
  - _TestNS::_Test1::Bar
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/multiple-returns.cpp
- function_names: []
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/missing-newline-at-eof.cpp
- function_names:
  - TrailingLine
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/trailing-line.cpp
- function_names:
  - test_1
  - test_2
  - test_3
  - test_4
  - test_5
  - test_6
  - test_7
  - test_8
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-while.cpp
- function_names:
  - InterpolatedSpaces
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/interpolated-space.cpp
- function_names:
  - test_1
  - test_2
  - test_3
  - test_4
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-for.cpp
- function_names:
  - test_1
  - test_2_1
  - test_2_2
  - test_3_1
  - test_3_2
  - test_4_1
  - test_4_2
  - test_5_1
  - test_5_2
  - test_6
  - test_8
  - test_8_1
  - test_8_2
  - test_8_3
  - test_8_4
  - test_9
  - test_9_1
  - test_9_2
  - test_9_3
  - test_9_4
  - test_10
  - test_10_1
  - test_10_2
  - test_10_3
  - test_10_4
  - test_11
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-around-binary-operators.cpp
- function_names: []
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/cpp-directive-leading-space.cpp
- function_names:
  - test_1
  - test_2::test_2
  - test_2::test_2
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-comma.cpp
- function_names:
  - ThreeLineFunction
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/file-length.cpp
- function_names:
  - test_1_p
  - test_1_n
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-semicolon.cpp
- function_names:
  - FunctionToInclude_1
  - FunctionToInclude_2
  - FunctionToInclude_3
  - FunctionToInclude_4
  - FunctionToInclude_5
  - FunctionToInclude_6
  - FunctionToInclude_7
  - FunctionToInclude_8
  - FunctionToInclude_9
  - FunctionToInclude_10
  - FunctionToExclude_1
  - FunctionToExclude_2
  - FunctionToExclude_3
  - FunctionToExclude_4
  - FunctionToExclude_5
  - FunctionToExclude_6
  - FunctionToExclude_7
  - FunctionToExclude_8
  - FunctionToExclude_9
  - FunctionToExclude_10
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/cpp-constant-conditionals.cpp
- function_names:
  - test_1
  - test_2
  - test_3
  - test_4
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-else-if.cpp
- function_names:
  - test_1_1
  - test_1_2
  - test_2_1
  - test_2_2
  - test_3_1
  - test_3_2
  - test_4_1
  - test_4_2
  - test_5_1
  - test_5_2
  - test_6_1
  - test_6_2
  - test_1_1n
  - test_1_2n
  - test_2_1n
  - test_2_2n
  - test_3_1n
  - test_3_2n
  - test_4_1n
  - test_4_2n
  - test_5_1n
  - test_5_2n
  - test_6_1n
  - test_6_2n
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/space-around-unary-operators.cpp
- function_names:
  - test_1
  - test_2
  - test_3
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-switch.cpp
- function_names: []
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/line-length.cpp
- function_names: []
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/missing-copyright.cpp
- function_names:
  - test_1
  - test_2
  - test_3
  - test_4
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/missing-space-after-if.cpp
- function_names:
  - test_1
  - test_1
  - test_2
  - test_2
  - test_3
  - test_4
  - test_5
  - test_6
  - test_7
  - test_7
  - test_7
  - test_8
  - test_8
  - test_8
  - test_9_1
  - test_9_1
  - test_9_2
  - test_9_2
  - test_9_3
  - test_9_3
  - test_9_4
  - test_9_4
  - test_9_5
  - test_9_5
  - test_9_6
  - test_9_6
  - test_9_7
  - test_9_7
  - test_9_8
  - test_9_8
  - test_9_9
  - test_9_9
  - test_9_10
  - test_9_10
  - test_10_1
  - test_10_1
  - test_10_1
  - test_10_2
  - test_10_2
  - test_10_2
  - test_10_3
  - test_10_3
  - test_10_3
  - test_10_5
  - test_10_5
  - test_10_5
  - test_10_6
  - test_10_6
  - test_10_6
  - test_10_7
  - test_10_7
  - test_10_7
  - test_10_8
  - test_10_8
  - test_10_8
  - test_10_9
  - test_10_9
  - test_10_9
  - test_10_10
  - test_10_10
  - test_10_10
  - test_10_11
  - test_10_11
  - test_10_11
  source_file: /src/openweave-core/third_party/cstyle/repo/tests/missing-cpp-conditional-labels.cpp
- function_names: []
  source_file: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.h
- function_names:
  - main
  - showbn
  - run_jpake
  - main
  source_file: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpaketest.c
- function_names:
  - ERR_load_JPAKE_strings
  source_file: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake_err.c
- function_names:
  - JPAKE_ZKP_init
  - JPAKE_ZKP_release
  - JPAKE_STEP_PART_init
  - JPAKE_STEP_PART_release
  - JPAKE_STEP1_init
  - JPAKE_STEP1_release
  - JPAKE_CTX_init
  - JPAKE_CTX_release
  - JPAKE_CTX_new
  - JPAKE_CTX_free
  - hashlength
  - hashstring
  - hashbn
  - zkp_hash
  - generate_zkp
  - verify_zkp
  - generate_step_part
  - genrand
  - JPAKE_STEP1_generate
  - is_legal
  - JPAKE_STEP1_process
  - JPAKE_STEP2_generate
  - compute_key
  - JPAKE_STEP2_process
  - quickhashbn
  - JPAKE_STEP3A_init
  - JPAKE_STEP3A_generate
  - JPAKE_STEP3A_process
  - JPAKE_STEP3A_release
  - JPAKE_STEP3B_init
  - JPAKE_STEP3B_generate
  - JPAKE_STEP3B_process
  - JPAKE_STEP3B_release
  - JPAKE_get_shared_key
  source_file: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/jpake/jpake.c
- function_names:
  - zkp_init
  - zkp_release
  - step_part_init
  - step_part_release
  - ECJPAKE_STEP1_init
  - ECJPAKE_STEP1_release
  - ECJPAKE_CTX_new
  - ECJPAKE_CTX_free
  - hashlength
  - hashpoint_default
  - ECJPAKE_Set_HashECPoint
  - zkp_hash
  - genrand
  - generate_zkp
  - verify_zkp
  - step_part_generate
  - ECJPAKE_STEP1_generate
  - EC_POINT_is_legal
  - ECJPAKE_STEP1_process
  - ECJPAKE_STEP2_generate
  - compute_key
  - ECJPAKE_STEP2_process
  - ECJPAKE_STEP3A_init
  - ECJPAKE_STEP3A_generate
  - ECJPAKE_STEP3A_process
  - ECJPAKE_STEP3A_release
  - ECJPAKE_STEP3B_init
  - ECJPAKE_STEP3B_generate
  - ECJPAKE_STEP3B_process
  - ECJPAKE_STEP3B_release
  - ECJPAKE_get_ecGroup
  - ECJPAKE_get_shared_key
  source_file: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.c
- function_names:
  - main
  - showkey
  - showbn
  - showpoint
  - generate_rand_len
  - run_ecjpake
  - main
  source_file: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpaketest.c
- function_names:
  - ERR_load_ECJPAKE_strings
  source_file: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake_err.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl-jpake/openssl/crypto/ecjpake/ecjpake.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl-jpake/openssl/include/openssl/jpake.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl-jpake/openssl/include/openssl/ecjpake.h
- function_names: []
  source_file: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC_vli.h
- function_names:
  - uECC_set_rng
  - uECC_vli_clear
  - uECC_word_t::uECC_vli_isZero
  - uECC_word_t::uECC_vli_testBit
  - vli_numDigits
  - uECC_vli_numBits
  - uECC_vli_set
  - uECC_vli_cmp_unsafe
  - uECC_word_t::uECC_vli_equal
  - cmpresult_t::uECC_vli_cmp
  - uECC_vli_rshift1
  - uECC_word_t::uECC_vli_add
  - uECC_word_t::uECC_vli_sub
  - muladd
  - uECC_vli_mult
  - mul2add
  - uECC_vli_square
  - uECC_vli_square
  - uECC_vli_modAdd
  - uECC_vli_modSub
  - uECC_vli_mmod
  - uECC_vli_modMult
  - uECC_vli_modMult_fast
  - uECC_vli_modSquare
  - uECC_vli_modSquare_fast
  - uECC_vli_modSquare
  - uECC_vli_modSquare_fast
  - vli_modInv_update
  - uECC_vli_modInv
  - apply_z
  - XYcZ_initial_double
  - XYcZ_add
  - XYcZ_addC
  - EccPoint_mult
  - regularize_k
  - EccPoint_compute_public_key
  - uECC_vli_nativeToBytes
  - uECC_vli_bytesToNative
  - uECC_vli_nativeToBytes
  - uECC_vli_bytesToNative
  - uECC_generate_random_int
  - uECC_make_key
  - uECC_shared_secret
  - uECC_compress
  - uECC_decompress
  - uECC_valid_point
  - uECC_valid_public_key
  - uECC_compute_public_key
  - bits2int
  - uECC_sign_with_k
  - uECC_sign
  - HMAC_init
  - HMAC_update
  - HMAC_finish
  - update_V
  - uECC_sign_deterministic
  - smax
  - uECC_verify
  - uECC_curve_num_words
  - uECC_curve_num_bytes
  - uECC_curve_num_bits
  - uECC_curve_num_n_words
  - uECC_curve_num_n_bytes
  - uECC_curve_num_n_bits
  - uECC_curve_p
  - uECC_curve_n
  - uECC_curve_G
  - uECC_curve_b
  - uECC_vli_mod_sqrt
  - uECC_vli_mmod_fast
  - uECC_point_mult
  source_file: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.c
- function_names: []
  source_file: /src/openweave-core/third_party/micro-ecc/micro-ecc/uECC.h
- function_names: []
  source_file: /src/openweave-core/third_party/micro-ecc/micro-ecc/types.h
- function_names:
  - vli_print
  - main
  source_file: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compute.c
- function_names:
  - vli_print
  - main
  source_file: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdh.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_ecdsa.c
- function_names:
  - vli_print
  - main
  source_file: /src/openweave-core/third_party/micro-ecc/micro-ecc/test/test_compress.c
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/config.h
- function_names:
  - lwip_tx_func
  - testif_init
  - input_pkt
  - main
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/fuzz.c
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/fuzz/lwipopts.h
- function_names:
  - create_suite
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/lwip_unittests.c
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/lwipopts.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/lwip_check.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.h
- function_names:
  - setdebug
  - tick_lwip
  - send_pkt
  - testif_init
  - dhcp_setup
  - dhcp_teardown
  - check_pkt
  - check_pkt_fuzzy
  - lwip_tx_func
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - dhcp_suite
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/dhcp/test_dhcp.c
- function_names:
  - mem_setup
  - mem_teardown
  - START_TEST
  - malloc_keep_x
  - START_TEST
  - mem_suite
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.c
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_mem.h
- function_names:
  - pbuf_setup
  - pbuf_teardown
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - pbuf_suite
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/core/test_pbuf.c
- function_names:
  - create_ip4_input_fragment
  - ip4_setup
  - ip4_teardown
  - START_TEST
  - ip4_suite
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.c
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/ip4/test_ip4.h
- function_names:
  - udp_remove_all
  - udp_setup
  - udp_teardown
  - START_TEST
  - udp_suite
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.c
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/udp/test_udp.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.h
- function_names:
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - mdns_suite
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/mdns/test_mdns.c
- function_names:
  - tcp_oos_count
  - tcp_oos_pbuf_count
  - tcp_oos_seg_seqno
  - tcp_oos_seg_tcplen
  - tcp_oos_tcplen
  - tcp_oos_setup
  - tcp_oos_teardown
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - check_rx_counters
  - test_tcp_recv_ooseq_double_FINs
  - tcp_oos_suite
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.c
- function_names:
  - tcp_remove
  - tcp_remove_all
  - tcp_create_segment_wnd
  - tcp_create_segment
  - tcp_create_rx_segment
  - tcp_create_rx_segment_wnd
  - tcp_set_state
  - test_tcp_counters_err
  - test_tcp_counters_check_rxdata
  - test_tcp_counters_recv
  - test_tcp_new_counters_pcb
  - test_tcp_input
  - test_tcp_netif_output
  - test_tcp_init_netif
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.c
- function_names:
  - test_tcp_tmr
  - tcp_setup
  - tcp_teardown
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - check_seqnos
  - START_TEST
  - START_TEST
  - test_tcp_tx_full_window_lost
  - START_TEST
  - START_TEST
  - tcp_suite
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.c
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/test_tcp_oos.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/tcp/tcp_helper.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.h
- function_names:
  - etharp_remove_all
  - default_netif_linkoutput
  - default_netif_init
  - default_netif_add
  - default_netif_remove
  - create_arp_response
  - etharp_setup
  - etharp_teardown
  - START_TEST
  - etharp_suite
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/unit/etharp/test_etharp.c
- function_names:
  - get_num_used_pool_ptr
  - assert_pbuf_pools_empty
  - exhaust_pbuf_pool
  - TestPbufAllocLarge
  - TestPbufAllocMedium
  - TestPbufAllocSmall
  - TestPbufAllocChain
  - TestPbufAllocChainFull
  - TestPbufAllocOverflow
  - TestPbufExhaust
  - TestPbufAllocChain
  - pbuftestsuite
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/src/test_pbuf.cpp
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/test/nlunittest/include/test_pbuf.h
- function_names:
  - eth_mac_irq
  - netif_output
  - netif_status_callback
  - netif_init
  - main
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/doc/NO_SYS_SampleCode.c
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/doc/doxygen/main_page.h
- function_names:
  - stats_init
  - stats_display_proto
  - stats_display_igmp
  - stats_display_mem
  - stats_display_memp
  - stats_display_sys
  - stats_display
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/stats.c
- function_names:
  - lwip_set_debug_target
  - debug_target_match
  - ipaddr_aton
  - ip_input
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ip.c
- function_names:
  - sys_msleep
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/sys.c
- function_names:
  - udp_init
  - udp_new_port
  - udp_input_local_match
  - udp_input
  - udp_send
  - udp_send_chksum
  - udp_sendto
  - udp_sendto_chksum
  - udp_sendto_if
  - udp_sendto_if_chksum
  - udp_sendto_if_src
  - udp_sendto_if_src_chksum
  - udp_bind
  - udp_bind_netif
  - udp_connect
  - udp_recv
  - udp_remove
  - udp_new
  - udp_new_ip_type
  - udp_netif_ip_addr_changed
  - udp_debug_print
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/udp.c
- function_names:
  - memp_sanity
  - memp_overflow_check_element_overflow
  - memp_overflow_check_element_underflow
  - memp_overflow_init_element
  - memp_overflow_check_all
  - memp_init_pool
  - memp_is_not_empty
  - memp_init
  - do_memp_malloc_pool_fn
  - memp_malloc_pool_fn
  - get_num_used_pool_ptr
  - memp_malloc_fn
  - do_memp_free_pool
  - memp_free_pool
  - memp_free
  - memp_pbuf_index
  - memp_num_pbufs
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/memp.c
- function_names:
  - lwip_htons
  - lwip_htonl
  - lwip_strnstr
  - lwip_stricmp
  - lwip_strnicmp
  - lwip_itoa
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/def.c
- function_names:
  - IF__NETIF_CHECKSUM_ENABLED
  - tcp_input_delayed_close
  - tcp_listen_input
  - tcp_timewait_input
  - tcp_process
  - tcp_oos_insert_segment
  - tcp_receive
  - tcp_getoptbyte
  - tcp_parseopt
  - tcp_trigger_input_pcb_close
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_in.c
- function_names:
  - tcp_init
  - tcp_tmr
  - tcp_remove_listener
  - tcp_listen_closed
  - tcp_backlog_delayed
  - tcp_backlog_accepted
  - tcp_close_shutdown
  - tcp_close_shutdown_fin
  - tcp_close
  - tcp_shutdown
  - tcp_abandon
  - tcp_abort
  - tcp_bind
  - tcp_bind_netif
  - tcp_accept_null
  - tcp_listen_with_backlog
  - tcp_listen_with_backlog_and_err
  - tcp_update_rcv_ann_wnd
  - tcp_recved
  - tcp_new_port
  - tcp_connect
  - tcp_slowtmr
  - tcp_fasttmr
  - tcp_txnow
  - tcp_process_refused_data
  - tcp_segs_free
  - tcp_seg_free
  - tcp_setprio
  - tcp_seg_copy
  - tcp_recv_null
  - tcp_kill_prio
  - tcp_kill_state
  - tcp_kill_timewait
  - tcp_alloc
  - tcp_new
  - tcp_new_ip_type
  - tcp_arg
  - tcp_recv
  - tcp_sent
  - tcp_err
  - tcp_accept
  - tcp_poll
  - tcp_pcb_purge
  - tcp_pcb_remove
  - tcp_next_iss
  - tcp_netif_ip_addr_changed_pcblist
  - tcp_netif_ip_addr_changed
  - tcp_debug_state_str
  - tcp_debug_print
  - tcp_debug_print_state
  - tcp_debug_print_flags
  - tcp_debug_print_pcbs
  - tcp_pcbs_sane
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp.c
- function_names:
  - pbuf_free_ooseq
  - pbuf_free_ooseq_callback
  - pbuf_pool_is_empty
  - pbuf_get_target_pool
  - pbuf_allocate_from_target_pool
  - pbuf_alloc
  - pbuf_alloced_custom
  - pbuf_realloc
  - pbuf_header_impl
  - pbuf_header
  - pbuf_header_force
  - pbuf_free
  - pbuf_clen
  - pbuf_ref
  - pbuf_cat
  - pbuf_chain
  - pbuf_dechain
  - pbuf_copy
  - pbuf_copy_partial
  - pbuf_split_64k
  - pbuf_skip_const
  - pbuf_skip
  - pbuf_take
  - pbuf_take_at
  - pbuf_coalesce
  - pbuf_fill_chksum
  - pbuf_get_at
  - pbuf_try_get_at
  - pbuf_put_at
  - pbuf_memcmp
  - pbuf_memfind
  - pbuf_strstr
  - pbuf_rightsize
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/pbuf.c
- function_names:
  - mem_init
  - mem_trim
  - mem_malloc
  - mem_free
  - mem_malloc
  - mem_free
  - plug_holes
  - mem_init
  - mem_free
  - mem_trim
  - mem_calloc
  - mem_calloc
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/mem.c
- function_names:
  - raw_input_local_match
  - raw_input
  - raw_bind
  - raw_bind_netif
  - raw_connect
  - raw_recv
  - raw_sendto
  - raw_sendto_if_src
  - raw_send
  - raw_remove
  - raw_new
  - raw_new_ip_type
  - raw_netif_ip_addr_changed
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/raw.c
- function_names:
  - tcp_output_alloc_header
  - tcp_send_fin
  - tcp_create_segment
  - tcp_pbuf_prealloc
  - tcp_seg_add_chksum
  - tcp_write_checks
  - tcp_write
  - tcp_enqueue_flags
  - tcp_build_timestamp_option
  - tcp_build_wnd_scale_option
  - tcp_send_empty_ack
  - tcp_output
  - IF__NETIF_CHECKSUM_ENABLED
  - tcp_rst
  - tcp_rexmit_rto
  - tcp_rexmit
  - tcp_rexmit_fast
  - tcp_keepalive
  - tcp_zero_window_probe
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/tcp_out.c
- function_names:
  - dns_init
  - dns_setserver
  - dns_getserver
  - dns_tmr
  - dns_init_local
  - dns_local_iterate
  - dns_local_lookup
  - dns_lookup_local
  - dns_local_removehost
  - dns_local_addhost
  - dns_lookup
  - dns_compare_name
  - dns_skip_name
  - dns_send
  - dns_alloc_random_port
  - dns_alloc_pcb
  - dns_exec_found_callback
  - dns_call_found
  - dns_create_txid
  - dns_check_entry
  - dns_check_entries
  - dns_can_recycle_entry
  - dns_expire_asking_entries
  - dns_flush_cache
  - dns_retry_pending
  - dns_correct_response
  - dns_recv
  - dns_enqueue
  - dns_gethostbyname_internal
  - dns_gethostbyname_addrtype
  - dns_gethostbyname
  - dns_gethostbyname_multi
  - dns_cancel
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/dns.c
- function_names:
  - packed_struct_test
  - lwip_init
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/init.c
- function_names:
  - tcpip_tcp_timer
  - tcp_timer_needed
  - cyclic_timer
  - sys_timeouts_init
  - sys_untimeout
  - sys_check_timeouts
  - sys_restart_timeouts
  - sys_timeouts_sleeptime
  - sys_timeouts_mbox_fetch
  - tcp_timer_needed
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/timeouts.c
- function_names:
  - lwip_standard_chksum
  - lwip_standard_chksum
  - lwip_standard_chksum
  - inet_cksum_pseudo_base
  - inet_chksum_pseudo
  - ip6_chksum_pseudo
  - ip_chksum_pseudo
  - inet_cksum_pseudo_partial_base
  - inet_chksum_pseudo_partial
  - ip6_chksum_pseudo_partial
  - ip_chksum_pseudo_partial
  - inet_chksum
  - inet_chksum_pbuf
  - lwip_chksum_copy
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/inet_chksum.c
- function_names:
  - netif_loopif_init
  - netif_init
  - netif_apply_pcb
  - netif_input
  - netif_add
  - netif_set_addr
  - netif_remove
  - netif_find
  - netif_set_ipaddr
  - netif_set_gw
  - netif_set_netmask
  - netif_set_default
  - netif_set_up
  - netif_issue_reports
  - netif_set_down
  - netif_set_status_callback
  - netif_set_remove_callback
  - netif_set_link_up
  - netif_set_link_down
  - netif_set_link_callback
  - netif_loop_output
  - netif_loop_output_ipv4
  - netif_loop_output_ipv6
  - netif_poll
  - netif_poll_all
  - netif_alloc_client_data_id
  - netif_ip6_addr_set
  - netif_ip6_addr_set_parts
  - netif_ip6_addr_set_state
  - netif_get_ip6_addr_match
  - netif_create_ip6_linklocal_address
  - netif_add_ip6_address_with_route
  - netif_remove_ip6_address_with_route
  - netif_add_ip6_address
  - netif_remove_ip6_address
  - netif_null_output_ip6
  - netif_name_to_index
  - netif_index_to_name
  - netif_get_by_index
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/netif.c
- function_names:
  - ip4_addr_isbroadcast_u32
  - ip4_addr_netmask_valid
  - ipaddr_addr
  - ip4addr_aton
  - ip4addr_ntoa
  - ip4addr_ntoa_r
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_addr.c
- function_names:
  - free_etharp_q
  - etharp_free_entry
  - etharp_tmr
  - etharp_find_entry
  - etharp_add_static_entry
  - etharp_remove_static_entry
  - etharp_cleanup_netif
  - etharp_find_addr
  - etharp_get_entry
  - etharp_input
  - etharp_output_to_arp_index
  - etharp_query
  - etharp_raw
  - etharp_request_dst
  - etharp_request
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/etharp.c
- function_names:
  - icmp_input
  - icmp_dest_unreach
  - icmp_time_exceeded
  - icmp_send_response
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/icmp.c
- function_names:
  - ip4_set_default_multicast_netif
  - ip4_route_src
  - ip4_route
  - ip4_canforward
  - ip4_forward
  - IF__NETIF_CHECKSUM_ENABLED
  - ip4_output_if
  - ip4_output_if_opt
  - ip4_output_if_src
  - IF__NETIF_CHECKSUM_ENABLED
  - IF__NETIF_CHECKSUM_ENABLED
  - ip4_output
  - ip4_output_hinted
  - ip4_debug_print
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4.c
- function_names:
  - dhcp_inc_pcb_refcount
  - dhcp_dec_pcb_refcount
  - dhcp_handle_nak
  - dhcp_check
  - dhcp_handle_offer
  - dhcp_select
  - dhcp_coarse_tmr
  - dhcp_fine_tmr
  - dhcp_timeout
  - dhcp_t1_timeout
  - dhcp_t2_timeout
  - dhcp_handle_ack
  - dhcp_set_struct
  - dhcp_cleanup
  - dhcp_start
  - dhcp_inform
  - dhcp_network_changed
  - dhcp_arp_reply
  - dhcp_decline
  - dhcp_discover
  - dhcp_bind
  - dhcp_renew
  - dhcp_rebind
  - dhcp_reboot
  - dhcp_release
  - dhcp_stop
  - dhcp_set_state
  - dhcp_option
  - dhcp_option_byte
  - dhcp_option_short
  - dhcp_option_long
  - dhcp_option_hostname
  - dhcp_parse_reply
  - dhcp_recv
  - dhcp_create_msg
  - dhcp_delete_msg
  - dhcp_option_trailer
  - dhcp_supplied_address
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/dhcp.c
- function_names:
  - autoip_set_struct
  - autoip_restart
  - autoip_handle_arp_conflict
  - autoip_create_addr
  - autoip_arp_probe
  - autoip_arp_announce
  - autoip_bind
  - autoip_start
  - autoip_start_probing
  - autoip_network_changed
  - autoip_stop
  - autoip_tmr
  - autoip_arp_reply
  - autoip_supplied_address
  - autoip_accept_packet
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/autoip.c
- function_names:
  - igmp_init
  - igmp_start
  - igmp_stop
  - igmp_report_groups
  - igmp_lookfor_group
  - igmp_lookup_group
  - igmp_remove_group
  - igmp_input
  - igmp_joingroup
  - igmp_joingroup_netif
  - igmp_leavegroup
  - igmp_leavegroup_netif
  - igmp_tmr
  - igmp_timeout
  - igmp_start_timer
  - igmp_delaying_member
  - igmp_ip_output_if
  - igmp_send
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/igmp.c
- function_names:
  - ip_reass_helper
  - ip_reass_tmr
  - ip_reass_free_complete_datagram
  - ip_reass_remove_oldest_datagram
  - ip_reass_enqueue_new_datagram
  - ip_reass_dequeue_datagram
  - ip_reass_chain_frag_into_datagram_and_validate
  - ip4_reass
  - ip_frag_alloc_pbuf_custom_ref
  - ip_frag_free_pbuf_custom_ref
  - ipfrag_free_pbuf_custom
  - ip4_frag
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv4/ip4_frag.c
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/dhcp6.c
- function_names:
  - icmp6_input
  - icmp6_dest_unreach
  - icmp6_packet_too_big
  - icmp6_time_exceeded
  - icmp6_param_problem
  - icmp6_send_response
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/icmp6.c
- function_names:
  - ip6addr_aton
  - ip6addr_ntoa
  - ip6addr_ntoa_r
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_addr.c
- function_names:
  - nd6_duplicate_addr_detected
  - nd6_process_autoconfig_prefix
  - nd6_input
  - nd6_tmr
  - nd6_send_neighbor_cache_probe
  - nd6_send_ns
  - nd6_send_na
  - nd6_send_rs
  - nd6_find_neighbor_cache_entry
  - nd6_new_neighbor_cache_entry
  - nd6_free_neighbor_cache_entry
  - nd6_find_destination_cache_entry
  - nd6_new_destination_cache_entry
  - nd6_clear_destination_cache
  - nd6_is_prefix_in_netif
  - nd6_select_router
  - nd6_find_route
  - nd6_get_router
  - nd6_new_router
  - nd6_get_onlink_prefix
  - nd6_new_onlink_prefix
  - nd6_get_next_hop_entry
  - nd6_queue_packet
  - nd6_free_q
  - nd6_send_q
  - nd6_get_next_hop_addr_or_queue
  - nd6_get_destination_mtu
  - nd6_reachability_hint
  - nd6_cleanup_netif
  - nd6_adjust_mld_membership
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/nd6.c
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/inet6.c
- function_names:
  - mld6_stop
  - mld6_report_groups
  - mld6_lookfor_group
  - mld6_new_group
  - mld6_remove_group
  - mld6_input
  - mld6_joingroup
  - mld6_joingroup_netif
  - mld6_leavegroup
  - mld6_leavegroup_netif
  - mld6_tmr
  - mld6_delayed_report
  - mld6_send
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/mld6.c
- function_names:
  - ip6_route
  - ip6_select_source_address
  - ip6_forward
  - ip6_input
  - ip6_output_if
  - ip6_output
  - ip6_output_hinted
  - ip6_options_add_hbh_ra
  - ip6_debug_print
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6.c
- function_names:
  - ethip6_output
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ethip6.c
- function_names:
  - ip6_reass_helper
  - ip6_reass_tmr
  - ip6_reass_free_complete_datagram
  - ip6_reass_remove_oldest_datagram
  - ip6_reass
  - ip6_frag_alloc_pbuf_custom_ref
  - ip6_frag_free_pbuf_custom_ref
  - ip6_frag_free_pbuf_custom
  - ip6_frag
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_frag.c
- function_names:
  - ip6_add_route_entry
  - ip6_remove_route_entry
  - ip6_find_route_entry
  - ip6_static_route
  - ip6_get_gateway
  - ip6_get_route_table
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/core/ipv6/ip6_route_table.c
- function_names:
  - mqtt_msg_type_to_str
  - msg_generate_packet_id
  - mqtt_output_send
  - mqtt_create_request
  - mqtt_append_request
  - mqtt_delete_request
  - mqtt_take_request
  - mqtt_request_time_elapsed
  - mqtt_clear_requests
  - mqtt_init_requests
  - mqtt_output_append_u8
  - mqtt_output_append_u16
  - mqtt_output_append_buf
  - mqtt_output_append_string
  - mqtt_output_append_fixed_header
  - mqtt_output_check_space
  - mqtt_close
  - mqtt_cyclic_timer
  - pub_ack_rec_rel_response
  - mqtt_incomming_suback
  - mqtt_message_received
  - mqtt_parse_incoming
  - mqtt_tcp_recv_cb
  - mqtt_tcp_sent_cb
  - mqtt_tcp_err_cb
  - mqtt_tcp_poll_cb
  - mqtt_tcp_connect_cb
  - mqtt_publish
  - mqtt_sub_unsub
  - mqtt_set_inpub_callback
  - mqtt_client_new
  - mqtt_client_connect
  - mqtt_disconnect
  - mqtt_client_is_connected
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mqtt/mqtt.c
- function_names:
  - interfaces_get_value
  - interfaces_Table_get_cell_instance
  - interfaces_Table_get_next_cell_instance
  - interfaces_Table_get_value
  - interfaces_Table_set_test
  - interfaces_Table_set_value
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_interfaces.c
- function_names:
  - ip_get_value
  - ip_set_test
  - ip_set_value
  - ip_AddrTable_get_cell_value_core
  - ip_AddrTable_get_cell_value
  - ip_AddrTable_get_next_cell_instance_and_value
  - ip_RouteTable_get_cell_value_core
  - ip_RouteTable_get_cell_value
  - ip_RouteTable_get_next_cell_instance_and_value
  - ip_NetToMediaTable_get_cell_value_core
  - ip_NetToMediaTable_get_cell_value
  - ip_NetToMediaTable_get_next_cell_instance_and_value
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_ip.c
- function_names:
  - snmp_pbuf_stream_init
  - snmp_pbuf_stream_read
  - snmp_pbuf_stream_write
  - snmp_pbuf_stream_writebuf
  - snmp_pbuf_stream_writeto
  - snmp_pbuf_stream_seek
  - snmp_pbuf_stream_seek_abs
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_pbuf_stream.c
- function_names:
  - snmp_recv
  - snmp_sendto
  - snmp_get_local_ip_for_dst
  - snmp_init
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_raw.c
- function_names:
  - snmp_mib2_set_sysdescr
  - snmp_mib2_set_syscontact
  - snmp_mib2_set_syscontact_readonly
  - snmp_mib2_set_sysname
  - snmp_mib2_set_sysname_readonly
  - snmp_mib2_set_syslocation
  - snmp_mib2_set_syslocation_readonly
  - system_get_value
  - system_set_test
  - system_set_value
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_system.c
- function_names:
  - call_synced_function
  - threadsync_get_value_synced
  - threadsync_get_value
  - threadsync_set_test_synced
  - threadsync_set_test
  - threadsync_set_value_synced
  - threadsync_set_value
  - threadsync_release_instance_synced
  - threadsync_release_instance
  - get_instance_synced
  - get_next_instance_synced
  - do_sync
  - snmp_threadsync_get_instance
  - snmp_threadsync_get_next_instance
  - snmp_threadsync_init
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_threadsync.c
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core_priv.h
- function_names:
  - icmp_get_value
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_icmp.c
- function_names:
  - snmpv3_get_user
  - snmpv3_get_engine_id
  - snmpv3_set_engine_id
  - snmpv3_get_engine_boots
  - snmpv3_set_engine_boots
  - snmpv3_get_engine_time
  - snmpv3_reset_engine_time
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_dummy.c
- function_names:
  - tcp_get_value
  - tcp_ConnTable_get_cell_value_core
  - tcp_ConnTable_get_cell_value
  - tcp_ConnTable_get_next_cell_instance_and_value
  - tcp_ConnectionTable_get_cell_value_core
  - tcp_ConnectionTable_get_cell_value
  - tcp_ConnectionTable_get_next_cell_instance_and_value
  - tcp_ListenerTable_get_cell_value_core
  - tcp_ListenerTable_get_cell_value
  - tcp_ListenerTable_get_next_cell_instance_and_value
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_tcp.c
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.h
- function_names:
  - snmp_trap_dst_enable
  - snmp_trap_dst_ip_set
  - snmp_set_auth_traps_enabled
  - snmp_get_auth_traps_enabled
  - snmp_send_trap
  - snmp_send_trap_generic
  - snmp_send_trap_specific
  - snmp_coldstart_trap
  - snmp_authfail_trap
  - snmp_trap_varbind_sum
  - snmp_trap_header_sum
  - snmp_trap_varbind_enc
  - snmp_trap_header_enc
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_traps.c
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_pbuf_stream.h
- function_names:
  - snmp_netconn_thread
  - snmp_sendto
  - snmp_get_local_ip_for_dst
  - snmp_init
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_netconn.c
- function_names:
  - snmpv3_engine_id_changed
  - snmpv3_get_engine_boots_internal
  - snmpv3_get_engine_time_internal
  - snmpv3_build_priv_param
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3.c
- function_names:
  - udp_get_value
  - udp_endpointTable_get_cell_value_core
  - udp_endpointTable_get_cell_value
  - udp_endpointTable_get_next_cell_instance_and_value
  - udp_Table_get_cell_value_core
  - udp_Table_get_cell_value
  - udp_Table_get_next_cell_instance_and_value
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_udp.c
- function_names:
  - snmp_mib2_lwip_synchronizer
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2.c
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.h
- function_names:
  - snmp_get_community
  - snmp_set_community
  - snmp_get_community_write
  - snmp_get_community_trap
  - snmp_set_community_write
  - snmp_set_community_trap
  - snmp_set_write_callback
  - snmp_receive
  - snmp_msg_getnext_validate_node_inst
  - snmp_process_varbind
  - snmp_process_get_request
  - snmp_process_getnext_request
  - snmp_process_getbulk_request
  - snmp_process_set_request
  - snmp_parse_inbound_frame
  - snmp_prepare_outbound_frame
  - snmp_varbind_length
  - snmp_append_outbound_varbind
  - snmp_complete_outbound_frame
  - snmp_execute_write_callbacks
  - snmp_vb_enumerator_init
  - snmp_vb_enumerator_get_next
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_msg.c
- function_names:
  - snmpv3_auth
  - snmpv3_crypt
  - snmpv3_password_to_key_md5
  - snmpv3_password_to_key_sha
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_mbedtls.c
- function_names:
  - snmp_ans1_enc_tlv
  - snmp_asn1_enc_raw
  - snmp_asn1_enc_u32t
  - snmp_asn1_enc_u64t
  - snmp_asn1_enc_s32t
  - snmp_asn1_enc_oid
  - snmp_asn1_enc_length_cnt
  - snmp_asn1_enc_u32t_cnt
  - snmp_asn1_enc_u64t_cnt
  - snmp_asn1_enc_s32t_cnt
  - snmp_asn1_enc_oid_cnt
  - snmp_asn1_dec_tlv
  - snmp_asn1_dec_u32t
  - snmp_asn1_dec_u64t
  - snmp_asn1_dec_s32t
  - snmp_asn1_dec_oid
  - snmp_asn1_dec_raw
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_asn1.c
- function_names:
  - snmp_scalar_get_instance
  - snmp_scalar_get_next_instance
  - snmp_scalar_array_get_instance
  - snmp_scalar_array_get_next_instance
  - snmp_scalar_array_get_value
  - snmp_scalar_array_set_test
  - snmp_scalar_array_set_value
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_scalar.c
- function_names:
  - snmp_table_get_instance
  - snmp_table_get_next_instance
  - snmp_table_simple_get_instance
  - snmp_table_simple_get_next_instance
  - snmp_table_extract_value_from_s32ref
  - snmp_table_extract_value_from_u32ref
  - snmp_table_extract_value_from_refconstptr
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_table.c
- function_names:
  - snmp_set_mibs
  - snmp_set_device_enterprise_oid
  - snmp_get_device_enterprise_oid
  - snmp_oid_to_ip4
  - snmp_ip4_to_oid
  - snmp_oid_to_ip6
  - snmp_ip6_to_oid
  - snmp_ip_port_to_oid
  - snmp_ip_to_oid
  - snmp_oid_to_ip
  - snmp_oid_to_ip_port
  - snmp_oid_assign
  - snmp_oid_prefix
  - snmp_oid_combine
  - snmp_oid_append
  - snmp_oid_compare
  - snmp_oid_equal
  - netif_to_num
  - snmp_get_mib_from_oid
  - snmp_get_next_mib
  - snmp_get_mib_between
  - snmp_get_node_instance_from_oid
  - snmp_get_next_node_instance_from_oid
  - snmp_mib_tree_resolve_exact
  - snmp_mib_tree_resolve_next
  - snmp_next_oid_init
  - snmp_next_oid_precheck
  - snmp_next_oid_check
  - snmp_oid_in_range
  - snmp_set_test_ok
  - snmp_decode_bits
  - snmp_decode_truthvalue
  - snmp_encode_bits
  - snmp_encode_truthvalue
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_core.c
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmpv3_priv.h
- function_names:
  - snmp_get_value
  - snmp_set_test
  - snmp_set_value
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/snmp/snmp_mib2_snmp.c
- function_names:
  - close_handle
  - send_error
  - send_ack
  - resend_data
  - send_data
  - recv
  - tftp_tmr
  - tftp_init
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/tftp/tftp_server.c
- function_names:
  - sntp_msg
  - sntp_process
  - sntp_initialize_request
  - sntp_retry
  - sntp_try_next_server
  - sntp_recv
  - sntp_send_request
  - sntp_dns_found
  - sntp_request
  - sntp_init
  - sntp_stop
  - sntp_enabled
  - sntp_setoperatingmode
  - sntp_getoperatingmode
  - sntp_servermode_dhcp
  - sntp_setserver
  - dhcp_set_ntp_servers
  - sntp_getserver
  - sntp_setservername
  - sntp_getservername
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/sntp/sntp.c
- function_names:
  - lwiperf_list_add
  - lwiperf_list_remove
  - lwip_tcp_conn_report
  - lwiperf_tcp_close
  - lwiperf_tcp_client_send_more
  - lwiperf_tcp_client_sent
  - lwiperf_tcp_client_connected
  - lwiperf_tx_start
  - lwiperf_tcp_recv
  - lwiperf_tcp_err
  - lwiperf_tcp_poll
  - lwiperf_tcp_accept
  - lwiperf_start_tcp_server_default
  - lwiperf_start_tcp_server
  - lwiperf_abort
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/lwiperf/lwiperf.c
- function_names:
  - netbios_hdr
  - netbios_name_hdr
  - netbios_resp
  - netbiosns_name_decode
  - netbiosns_name_encode
  - netbiosns_recv
  - netbiosns_init
  - netbiosns_set_name
  - netbiosns_stop
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/netbiosns/netbiosns.c
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd_structs.h
- function_names:
  - http_add_connection
  - http_remove_connection
  - http_kill_oldest_connection
  - http_ssi_state_alloc
  - http_ssi_state_free
  - http_state_init
  - http_state_alloc
  - http_state_eof
  - http_state_free
  - http_write
  - http_close_or_abort_conn
  - http_close_conn
  - http_eof
  - extract_uri_parameters
  - get_http_headers
  - http_send_headers
  - http_check_eof
  - http_send_data_nonssi
  - http_send_data_ssi
  - http_send
  - http_find_error_file
  - http_get_404_file
  - http_handle_post_finished
  - http_post_rxpbuf
  - http_post_request
  - httpd_post_data_recved
  - http_continue
  - http_parse_request
  - http_init_file
  - http_err
  - http_sent
  - http_poll
  - http_recv
  - http_accept
  - httpd_init
  - http_set_ssi_handler
  - http_set_cgi_handlers
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/httpd.c
- function_names:
  - fs_open
  - fs_close
  - fs_is_file_ready
  - fs_bytes_left
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/fs.c
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/fsdata.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/fsdata.c
- function_names:
  - print_usage
  - main
  - check_path
  - copy_file
  - concat_files
  - process_sub
  - get_file_data
  - process_file_data
  - write_checksums
  - is_valid_char_for_c_var
  - fix_filename_for_c
  - register_filename
  - is_ssi_file
  - process_file
  - file_write_http_header
  - file_put_ascii
  - s_put_ascii
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/httpd/makefsdata/makefsdata.c
- function_names:
  - mdns_domain_add_label
  - mdns_readname_loop
  - mdns_readname
  - mdns_domain_debug_print
  - mdns_domain_eq
  - mdns_prepare_txtdata
  - mdns_build_reverse_v4_domain
  - mdns_build_reverse_v6_domain
  - mdns_add_dotlocal
  - mdns_build_host_domain
  - mdns_build_dnssd_domain
  - mdns_build_service_domain
  - check_host
  - check_service
  - mdns_compress_domain
  - mdns_write_domain
  - mdns_add_question
  - mdns_add_answer
  - mdns_read_rr_info
  - mdns_read_question
  - mdns_read_answer
  - mdns_add_a_answer
  - mdns_add_hostv4_ptr_answer
  - mdns_add_aaaa_answer
  - mdns_add_hostv6_ptr_answer
  - mdns_add_servicetype_ptr_answer
  - mdns_add_servicename_ptr_answer
  - mdns_add_srv_answer
  - mdns_add_txt_answer
  - mdns_init_outpacket
  - mdns_send_outpacket
  - mdns_announce
  - mdns_handle_question
  - mdns_handle_response
  - mdns_recv
  - mdns_resp_init
  - mdns_resp_netif_settings_changed
  - mdns_resp_add_netif
  - mdns_resp_remove_netif
  - mdns_resp_add_service
  - mdns_resp_add_service_txtitem
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/apps/mdns/mdns.c
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/posix/netdb.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/posix/errno.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/posix/sys/socket.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/posix/net/if.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/dhcp6.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/mld6.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/sys.h
- function_names:
  - local_port
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/tcp.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/dhcp.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/api.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/ip6.h
- function_names:
  - ip4_addr2
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/ip4_addr.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/memp.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/udp.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/ip6_addr.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/timeouts.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/netdb.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/inet.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/nd6.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/sockets.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/debug.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/if.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/pbuf.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/ip6_frag.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/ip_addr.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/autoip.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/netif.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/dns.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/ip4.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/snmp.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/netbuf.h
- function_names:
  - ttl
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/ip.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/err.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/init.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/ethip6.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/igmp.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/ip4_frag.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/tcpip.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/ip6_route_table.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/raw.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/def.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/netifapi.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/icmp6.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/arch.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/mem.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/stats.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/opt.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/icmp.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/errno.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/etharp.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/sio.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/inet_chksum.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/priv/api_msg.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/priv/memp_priv.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/priv/tcp_priv.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/priv/memp_std.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/priv/nd6_priv.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/priv/tcpip_priv.h
- function_names:
  - mld_header
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/mld6.h
- function_names:
  - tcp_hdr
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/tcp.h
- function_names:
  - dhcp_msg
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/dhcp.h
- function_names:
  - ip6_addr_packed
  - ip6_hdr
  - ip6_hbh_hdr
  - ip6_frag_hdr
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/ip6.h
- function_names:
  - udp_hdr
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/udp.h
- function_names:
  - ns_header
  - na_header
  - rs_header
  - ra_header
  - redirect_header
  - lladdr_option
  - prefix_option
  - redirected_header_option
  - mtu_option
  - route_option
  - rdnss_option
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/nd6.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/autoip.h
- function_names:
  - dns_hdr
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/dns.h
- function_names:
  - ip4_addr_packed
  - struct
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/ip4.h
- function_names:
  - eth_addr
  - eth_hdr
  - eth_vlan_hdr
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/ethernet.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/ip.h
- function_names:
  - igmp_msg
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/igmp.h
- function_names:
  - icmp6_hdr
  - icmp6_echo_hdr
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/icmp6.h
- function_names:
  - icmp_echo_hdr
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/icmp.h
- function_names:
  - etharp_hdr
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/prot/etharp.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/apps/snmp_mib2.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/apps/snmp_threadsync.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/apps/mdns_opts.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/apps/mqtt_opts.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/apps/mdns_priv.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/apps/snmp_opts.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/apps/snmp_table.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/apps/snmpv3.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/apps/sntp_opts.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/apps/mdns.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/apps/fs.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/apps/tftp_opts.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/apps/sntp.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/apps/snmp_scalar.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/apps/snmp.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/apps/snmp_core.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/apps/mqtt.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/apps/netbiosns.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/apps/tftp_server.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/apps/lwiperf.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/apps/httpd_opts.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/apps/httpd.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/lwip/apps/netbiosns_opts.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/lowpan6.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/lowpan6_opts.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ethernet.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/slipif.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/etharp.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/eui64.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/lcp.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/ipcp.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/fsm.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/ecp.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/ppp.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/pppdebug.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/magic.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/pppos.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/ppp_opts.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/pppol2tp.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/chap-md5.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/ccp.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/eap.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/pppcrypt.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/mppe.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/chap_ms.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/ipv6cp.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/upap.h
- function_names:
  - pppoehdr
  - pppoetag
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/pppoe.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/ppp_impl.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/chap-new.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/pppapi.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/vj.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/polarssl/md4.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/polarssl/des.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/polarssl/md5.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/polarssl/sha1.h
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/include/netif/ppp/polarssl/arc4.h
- function_names:
  - tcpip_thread
  - tcpip_inpkt
  - tcpip_input
  - tcpip_callback_with_block
  - tcpip_timeout
  - tcpip_untimeout
  - tcpip_send_msg_wait_sem
  - tcpip_api_call
  - tcpip_callbackmsg_new
  - tcpip_callbackmsg_delete
  - tcpip_trycallback
  - tcpip_init
  - tcpip_finish
  - pbuf_free_int
  - pbuf_free_callback
  - mem_free_callback
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/api/tcpip.c
- function_names:
  - netconn_apimsg
  - netconn_new_with_proto_and_callback
  - netconn_delete
  - netconn_getaddr
  - netconn_bind
  - netconn_connect
  - netconn_disconnect
  - netconn_listen_with_backlog
  - netconn_accept
  - netconn_recv_tcp_pbuf
  - netconn_recv
  - netconn_sendto
  - netconn_send
  - netconn_write_partly
  - netconn_close_shutdown
  - netconn_close
  - netconn_shutdown
  - netconn_join_leave_group
  - netconn_gethostbyname
  - netconn_thread_init
  - netconn_thread_cleanup
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_lib.c
- function_names:
  - err_to_errno
  - lwip_strerr
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/api/err.c
- function_names:
  - recv_raw
  - recv_tcp
  - poll_tcp
  - sent_tcp
  - err_tcp
  - setup_tcp
  - accept_function
  - pcb_new
  - lwip_netconn_do_newconn
  - netconn_alloc
  - netconn_free
  - netconn_drain
  - lwip_netconn_do_delconn
  - lwip_netconn_do_bind
  - lwip_netconn_do_connected
  - lwip_netconn_do_connect
  - lwip_netconn_do_disconnect
  - lwip_netconn_do_listen
  - lwip_netconn_do_send
  - lwip_netconn_do_recv
  - lwip_netconn_do_accepted
  - lwip_netconn_do_writemore
  - lwip_netconn_do_write
  - lwip_netconn_do_getaddr
  - lwip_netconn_do_join_leave_group
  - lwip_netconn_do_dns_found
  - lwip_netconn_do_gethostbyname
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/api/api_msg.c
- function_names:
  - netifapi_do_netif_add
  - netifapi_do_netif_set_addr
  - netifapi_do_name_to_index
  - netifapi_do_index_to_name
  - netifapi_do_netif_common
  - netifapi_netif_add
  - netifapi_netif_set_addr
  - netifapi_netif_common
  - netifapi_netif_name_to_index
  - netifapi_netif_index_to_name
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netifapi.c
- function_names:
  - lwip_if_indextoname
  - lwip_if_nametoindex
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/api/if.c
- function_names:
  - netbuf_new
  - netbuf_delete
  - netbuf_alloc
  - netbuf_free
  - netbuf_ref
  - netbuf_chain
  - netbuf_data
  - netbuf_next
  - netbuf_first
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netbuf.c
- function_names:
  - lwip_gethostbyname
  - lwip_gethostbyname_r
  - lwip_freeaddrinfo
  - lwip_getaddrinfo
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/api/netdb.c
- function_names:
  - sockaddr_to_ipaddr_port
  - lwip_socket_thread_init
  - lwip_socket_thread_cleanup
  - get_socket
  - tryget_socket
  - alloc_socket
  - free_socket
  - lwip_accept
  - lwip_bind
  - lwip_close
  - lwip_connect
  - lwip_listen
  - lwip_recvfrom
  - lwip_read
  - lwip_recv
  - lwip_send
  - lwip_sendmsg
  - lwip_sendto
  - lwip_socket
  - lwip_write
  - lwip_writev
  - lwip_selscan
  - lwip_select
  - event_callback
  - lwip_shutdown
  - lwip_getaddrname
  - lwip_getpeername
  - lwip_getsockname
  - lwip_getsockopt
  - lwip_getsockopt_callback
  - lwip_getsockopt_impl
  - lwip_setsockopt
  - lwip_setsockopt_callback
  - lwip_setsockopt_impl
  - lwip_ioctl
  - lwip_fcntl
  - lwip_socket_register_membership
  - lwip_socket_unregister_membership
  - lwip_socket_drop_registered_memberships
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/api/sockets.c
- function_names:
  - low_level_init
  - low_level_output
  - low_level_input
  - ethernetif_input
  - ethernetif_init
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernetif.c
- function_names:
  - lowpan6_tmr
  - dequeue_datagram
  - lowpan6_context_lookup
  - lowpan6_get_address_mode
  - lowpan6_get_address_mode_mc
  - lowpan6_frag
  - lowpan6_set_context
  - lowpan6_set_short_addr
  - lowpan4_output
  - lowpan6_output
  - lowpan6_decompress
  - lowpan6_input
  - lowpan6_if_init
  - lowpan6_set_pan_id
  - tcpip_6lowpan_input
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/lowpan6.c
- function_names:
  - slipif_output
  - slipif_output_v4
  - slipif_output_v6
  - slipif_rxbyte
  - slipif_rxbyte_input
  - slipif_loop_thread
  - slipif_init
  - slipif_poll
  - slipif_process_rxqueue
  - slipif_rxbyte_enqueue
  - slipif_received_byte
  - slipif_received_bytes
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/slipif.c
- function_names:
  - ethernet_output
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ethernet.c
- function_names:
  - magic_churnrand
  - magic_init
  - magic_randomize
  - magic_random_bytes
  - magic
  - magic_init
  - magic
  - magic_random_bytes
  - magic_pow
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/magic.c
- function_names:
  - eui64_ntoa
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eui64.c
- function_names:
  - ccp_anycompress
  - ccp_init
  - ccp_open
  - ccp_close
  - ccp_lowerup
  - ccp_lowerdown
  - ccp_input
  - ccp_extcode
  - ccp_protrej
  - ccp_resetci
  - ccp_cilen
  - ccp_addci
  - ccp_ackci
  - ccp_nakci
  - ccp_rejci
  - ccp_reqci
  - method_name
  - ccp_up
  - ccp_down
  - ccp_printpkt
  - ccp_datainput
  - ccp_resetrequest
  - ccp_rack_timeout
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ccp.c
- function_names:
  - pppapi_do_ppp_set_default
  - pppapi_set_default
  - pppapi_do_ppp_set_notify_phase_callback
  - pppapi_set_notify_phase_callback
  - pppapi_do_pppos_create
  - pppapi_pppos_create
  - pppapi_do_pppoe_create
  - pppapi_pppoe_create
  - pppapi_do_pppol2tp_create
  - pppapi_pppol2tp_create
  - pppapi_do_ppp_connect
  - pppapi_connect
  - pppapi_do_ppp_listen
  - pppapi_listen
  - pppapi_do_ppp_close
  - pppapi_close
  - pppapi_do_ppp_free
  - pppapi_free
  - pppapi_do_ppp_ioctl
  - pppapi_ioctl
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppapi.c
- function_names:
  - mp_check_options
  - mp_join_bundle
  - mp_exit_bundle
  - sendhup
  - mp_bundle_terminated
  - make_bundle_links
  - remove_bundle_link
  - iterate_bundle_links
  - hexc_val
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/multilink.c
- function_names:
  - chap_init
  - chap_lowerup
  - chap_lowerdown
  - chap_auth_peer
  - chap_auth_with_peer
  - chap_timeout
  - chap_generate_challenge
  - chap_verify_response
  - chap_respond
  - chap_handle_status
  - chap_input
  - chap_protrej
  - chap_print_pkt
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-new.c
- function_names:
  - chapms_generate_challenge
  - chapms2_generate_challenge
  - chapms_verify_response
  - chapms2_verify_response
  - chapms_make_response
  - chapms2_make_response
  - chapms2_check_success
  - chapms_handle_failure
  - ChallengeResponse
  - ChallengeHash
  - ascii2unicode
  - NTPasswordHash
  - ChapMS_NT
  - ChapMS2_NT
  - ChapMS_LANMan
  - GenerateAuthenticatorResponse
  - GenerateAuthenticatorResponsePlain
  - Set_Start_Key
  - SetMasterKeys
  - ChapMS
  - ChapMS2
  - set_mppe_enc_types
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap_ms.c
- function_names:
  - demand_conf
  - demand_block
  - demand_discard
  - demand_unblock
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/demand.c
- function_names:
  - llv6_ntoa
  - ipv6cp_init
  - ipv6cp_open
  - ipv6cp_close
  - ipv6cp_lowerup
  - ipv6cp_lowerdown
  - ipv6cp_input
  - ipv6cp_protrej
  - ipv6cp_resetci
  - ipv6cp_cilen
  - ipv6cp_addci
  - ipv6cp_ackci
  - ipv6cp_nakci
  - ipv6cp_rejci
  - ipv6cp_reqci
  - ipv6_check_options
  - ipv6_demand_conf
  - ipv6cp_down
  - ipv6cp_clear_addrs
  - ipv6cp_finished
  - ipv6cp_printpkt
  - ipv6_active_pkt
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipv6cp.c
- function_names:
  - ipcp_init
  - ipcp_open
  - ipcp_close
  - ipcp_lowerup
  - ipcp_lowerdown
  - ipcp_input
  - ipcp_protrej
  - ipcp_resetci
  - ipcp_addci
  - ipcp_ackci
  - ipcp_nakci
  - ipcp_rejci
  - ipcp_reqci
  - ip_check_options
  - ipcp_up
  - ipcp_down
  - ipcp_clear_addrs
  - ipcp_finished
  - ipcp_printpkt
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ipcp.c
- function_names:
  - fsm_init
  - fsm_lowerup
  - fsm_lowerdown
  - fsm_open
  - terminate_layer
  - fsm_close
  - fsm_timeout
  - fsm_input
  - fsm_rconfreq
  - fsm_rconfack
  - fsm_rconfnakrej
  - fsm_rtermreq
  - fsm_rtermack
  - fsm_rcoderej
  - fsm_protreject
  - fsm_sconfreq
  - fsm_sdata
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/fsm.c
- function_names:
  - ppp_get_fcs
  - pppos_create
  - pppos_write
  - pppos_netif_output
  - pppos_connect
  - pppos_listen
  - pppos_disconnect
  - pppos_destroy
  - pppos_input_tcpip
  - pppos_input_sys
  - pppos_input_header
  - pppos_input
  - pppos_input_callback
  - pppos_send_config
  - pppos_recv_config
  - pppos_input_free_current_packet
  - pppos_input_drop
  - pppos_output_append
  - pppos_output_last
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppos.c
- function_names:
  - eap_state_name
  - eap_init
  - eap_client_timeout
  - eap_authwithpeer
  - eap_send_failure
  - eap_send_success
  - pncrypt_setkey
  - eap_figure_next_state
  - eap_send_request
  - eap_authpeer
  - eap_server_timeout
  - eap_rechallenge
  - srp_lwrechallenge
  - eap_lowerup
  - eap_lowerdown
  - eap_protrej
  - eap_send_response
  - eap_chap_response
  - eap_send_nak
  - name_of_pn_file
  - remove_pn_file
  - eap_request
  - eap_response
  - eap_success
  - eap_failure
  - eap_input
  - eap_printpkt
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/eap.c
- function_names:
  - ppp_strlcpy
  - ppp_strlcat
  - ppp_slprintf
  - ppp_vslprintf
  - ppp_vslp_printer
  - ppp_format_packet
  - end_pr_log
  - pr_log
  - ppp_print_string
  - ppp_logit
  - ppp_log_write
  - ppp_fatal
  - ppp_error
  - ppp_warn
  - ppp_notice
  - ppp_info
  - ppp_dbglog
  - ppp_dump_packet
  - complete_read
  - unlock
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/utils.c
- function_names: []
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ecp.c
- function_names:
  - upap_init
  - upap_authwithpeer
  - upap_authpeer
  - upap_timeout
  - upap_reqtimeout
  - upap_lowerup
  - upap_lowerdown
  - upap_protrej
  - upap_input
  - upap_rauthreq
  - upap_rauthack
  - upap_rauthnak
  - upap_sauthreq
  - upap_sresp
  - upap_printpkt
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/upap.c
- function_names:
  - pppol2tp_create
  - pppol2tp_write
  - pppol2tp_netif_output
  - pppol2tp_destroy
  - pppol2tp_connect
  - pppol2tp_disconnect
  - pppol2tp_input
  - pppol2tp_dispatch_control_packet
  - pppol2tp_timeout
  - pppol2tp_abort_connect
  - pppol2tp_send_sccrq
  - pppol2tp_send_scccn
  - pppol2tp_send_icrq
  - pppol2tp_send_iccn
  - pppol2tp_send_zlb
  - pppol2tp_send_stopccn
  - pppol2tp_xmit
  - pppol2tp_udp_send
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppol2tp.c
- function_names:
  - mppe_rekey
  - mppe_set_key
  - mppe_init
  - mppe_comp_reset
  - mppe_compress
  - mppe_decomp_reset
  - mppe_decompress
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/mppe.c
- function_names:
  - chap_md5_generate_challenge
  - chap_md5_verify_response
  - chap_md5_make_response
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/chap-md5.c
- function_names:
  - vj_compress_init
  - vj_u32_t
  - vj_u16_t
  - vj_compress_tcp
  - vj_uncompress_err
  - vj_uncompress_uncomp
  - vj_uncompress_tcp
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/vj.c
- function_names:
  - ppp_set_auth
  - ppp_set_mppe
  - ppp_set_notify_phase_callback
  - ppp_connect
  - ppp_listen
  - ppp_close
  - ppp_free
  - ppp_ioctl
  - ppp_do_connect
  - ppp_netif_init_cb
  - ppp_netif_output_ip4
  - ppp_netif_output_ip6
  - ppp_netif_output
  - ppp_init
  - ppp_new
  - ppp_start
  - ppp_link_failed
  - ppp_link_end
  - ppp_input
  - ppp_singlebuf
  - ppp_write
  - ppp_link_terminated
  - new_phase
  - ppp_send_config
  - ppp_recv_config
  - sifaddr
  - cifaddr
  - sifproxyarp
  - cifproxyarp
  - sdns
  - cdns
  - sifvjcomp
  - sifup
  - sifdown
  - get_mask
  - sif6addr
  - cif6addr
  - sif6up
  - sif6down
  - sifnpmode
  - netif_set_mtu
  - netif_get_mtu
  - ccp_test
  - ccp_set
  - ccp_reset_comp
  - ccp_reset_decomp
  - ccp_fatal_error
  - get_idle_time
  - get_loop_output
  - protocol_name
  - reset_link_stats
  - update_link_stats
  - print_link_stats
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/ppp.c
- function_names:
  - pppcrypt_get_7bits
  - pppcrypt_56_to_64_bit_key
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppcrypt.c
- function_names:
  - link_required
  - link_terminated
  - link_down
  - upper_layers_down
  - link_established
  - network_phase
  - start_networks
  - continue_networks
  - auth_check_passwd
  - auth_peer_fail
  - auth_peer_success
  - auth_withpeer_fail
  - auth_withpeer_success
  - np_up
  - np_down
  - np_finished
  - connect_time_expired
  - auth_check_options
  - get_secret
  - auth_number
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/auth.c
- function_names:
  - pppoe_create
  - pppoe_write
  - pppoe_netif_output
  - pppoe_destroy
  - pppoe_find_softc_by_session
  - pppoe_find_softc_by_hunique
  - pppoe_disc_input
  - pppoe_data_input
  - pppoe_output
  - pppoe_send_padi
  - pppoe_timeout
  - pppoe_connect
  - pppoe_disconnect
  - pppoe_abort_connect
  - pppoe_send_padr
  - pppoe_send_padt
  - pppoe_send_pado
  - pppoe_send_pads
  - pppoe_xmit
  - pppoe_ifattach_hook
  - pppoe_clear_softc
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/pppoe.c
- function_names:
  - lcp_init
  - lcp_open
  - lcp_close
  - lcp_lowerup
  - lcp_lowerdown
  - lcp_delayed_up
  - lcp_input
  - lcp_extcode
  - lcp_rprotrej
  - lcp_protrej
  - lcp_sprotrej
  - lcp_cilen
  - lcp_addci
  - lcp_ackci
  - lcp_nakci
  - lcp_rejci
  - lcp_up
  - lcp_down
  - lcp_starting
  - lcp_finished
  - lcp_printpkt
  - LcpLinkFailure
  - LcpEchoCheck
  - LcpEchoTimeout
  - lcp_received_echo_reply
  - LcpSendEchoRequest
  - lcp_echo_lowerup
  - lcp_echo_lowerdown
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/lcp.c
- function_names:
  - md4_starts
  - md4_process
  - md4_update
  - md4_finish
  - md4
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md4.c
- function_names:
  - arc4_setup
  - arc4_crypt
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/arc4.c
- function_names:
  - des_setkey
  - des_setkey_enc
  - des_setkey_dec
  - des_crypt_ecb
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/des.c
- function_names:
  - sha1_starts
  - sha1_process
  - sha1_update
  - sha1_finish
  - sha1
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/sha1.c
- function_names:
  - md5_starts
  - md5_process
  - md5_update
  - md5_finish
  - md5
  source_file: /src/openweave-core/third_party/lwip/repo/lwip/src/netif/ppp/polarssl/md5.c
- function_names:
  - _strlen31
  source_file: /src/openweave-core/third_party/openssl/openssl/e_os.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/engines/e_chil_err.h
- function_names:
  - digest_md5
  - digest_sha1
  - digest_sha256
  - digest_sha384
  - digest_sha512
  - destroy_digests
  - ossltest_digest_nids
  - ossltest_aes_128_cbc
  - destroy_ciphers
  - bind_ossltest
  - bind_helper
  - engine_ossltest
  - ENGINE_load_ossltest
  - ossltest_init
  - ossltest_finish
  - ossltest_destroy
  - ossltest_digests
  - ossltest_ciphers
  - fill_known_data
  - digest_md5_init
  - digest_md5_update
  - digest_md5_final
  - digest_sha1_init
  - digest_sha1_update
  - digest_sha1_final
  - digest_sha256_init
  - digest_sha256_update
  - digest_sha256_final
  - digest_sha384_init
  - digest_sha512_init
  - digest_sha512_update
  - digest_sha384_final
  - digest_sha512_final
  - ossltest_aes128_init_key
  - ossltest_aes128_cbc_cipher
  source_file: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest.c
- function_names:
  - ERR_load_DASYNC_strings
  - ERR_unload_DASYNC_strings
  - ERR_DASYNC_error
  source_file: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync_err.c
- function_names:
  - dasync_sha1
  - destroy_digests
  - dasync_digest_nids
  - dasync_aes_128_cbc
  - dasync_aes_128_cbc_hmac_sha1
  - destroy_ciphers
  - bind_dasync
  - bind_helper
  - engine_dasync
  - engine_load_dasync_int
  - dasync_init
  - dasync_finish
  - dasync_destroy
  - dasync_digests
  - dasync_ciphers
  - wait_cleanup
  - dummy_pause_job
  - dasync_sha1_init
  - dasync_sha1_update
  - dasync_sha1_final
  - dasync_pub_enc
  - dasync_pub_dec
  - dasync_rsa_priv_enc
  - dasync_rsa_priv_dec
  - dasync_rsa_mod_exp
  - dasync_rsa_init
  - dasync_rsa_finish
  - dasync_cipher_ctrl_helper
  - dasync_cipher_init_key_helper
  - dasync_cipher_helper
  - dasync_cipher_cleanup_helper
  - dasync_aes128_cbc_ctrl
  - dasync_aes128_init_key
  - dasync_aes128_cbc_cipher
  - dasync_aes128_cbc_cleanup
  - dasync_aes128_cbc_hmac_sha1_ctrl
  - dasync_aes128_cbc_hmac_sha1_init_key
  - dasync_aes128_cbc_hmac_sha1_cipher
  - dasync_aes128_cbc_hmac_sha1_cleanup
  source_file: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync.c
- function_names:
  - capi_ctrl
  - capi_init
  - capi_destroy
  - capi_finish
  - bind_capi
  - bind_helper
  - engine_capi
  - engine_load_capi_int
  - lend_tobn
  - capi_get_pkey
  - capi_load_privkey
  - capi_rsa_priv_enc
  - capi_rsa_sign
  - capi_rsa_priv_dec
  - capi_rsa_free
  - capi_dsa_do_sign
  - capi_dsa_free
  - capi_vtrace
  - CAPI_trace
  - capi_addlasterror
  - capi_adderror
  - wide_to_asc
  - capi_get_provname
  - capi_list_providers
  - capi_list_containers
  - capi_get_prov_info
  - capi_dump_prov_info
  - capi_cert_get_fname
  - capi_dump_cert
  - capi_open_store
  - capi_list_certs
  - capi_find_cert
  - capi_get_key
  - capi_get_cert_key
  - capi_find_key
  - capi_free_key
  - capi_ctx_new
  - capi_ctx_free
  - capi_ctx_set_provname
  - capi_ctx_set_provname_idx
  - bind_engine
  - engine_load_capi_int
  source_file: /src/openweave-core/third_party/openssl/openssl/engines/e_capi.c
- function_names:
  - ERR_load_HWCRHK_strings
  - ERR_unload_HWCRHK_strings
  - ERR_HWCRHK_error
  source_file: /src/openweave-core/third_party/openssl/openssl/engines/e_chil_err.c
- function_names:
  - bind_helper
  - engine_chil
  - ENGINE_load_chil
  - free_HWCRHK_LIBNAME
  - get_HWCRHK_LIBNAME
  - set_HWCRHK_LIBNAME
  - get_context
  - release_context
  - hwcrhk_destroy
  - hwcrhk_init
  - hwcrhk_finish
  - hwcrhk_ctrl
  - hwcrhk_load_privkey
  - hwcrhk_load_pubkey
  - hwcrhk_mod_exp
  - hwcrhk_rsa_mod_exp
  - hwcrhk_mod_exp_mont
  - hwcrhk_rsa_finish
  - hwcrhk_mod_exp_dh
  - hwcrhk_rand_bytes
  - hwcrhk_rand_status
  - hwcrhk_mutex_init
  - hwcrhk_mutex_lock
  - hwcrhk_mutex_unlock
  - hwcrhk_mutex_destroy
  - hwcrhk_get_pass
  - hwcrhk_insert_card
  - hwcrhk_log_message
  - bind_fn
  source_file: /src/openweave-core/third_party/openssl/openssl/engines/e_chil.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/engines/e_dasync_err.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest_err.h
- function_names:
  - ERR_load_CAPI_strings
  - ERR_unload_CAPI_strings
  - ERR_CAPI_error
  source_file: /src/openweave-core/third_party/openssl/openssl/engines/e_capi_err.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/engines/e_capi_err.h
- function_names:
  - engine_load_padlock_int
  - padlock_bind_helper
  - ENGINE_padlock
  - padlock_init
  - padlock_bind_fn
  - padlock_available
  - padlock_ecb_cipher
  - padlock_cbc_cipher
  - padlock_cfb_cipher
  - padlock_ofb_cipher
  - padlock_ctr32_encrypt_glue
  - padlock_ctr_cipher
  - padlock_ciphers
  - padlock_aes_init_key
  - padlock_rand_bytes
  - padlock_rand_status
  - bind_engine
  source_file: /src/openweave-core/third_party/openssl/openssl/engines/e_padlock.c
- function_names:
  - ERR_load_OSSLTEST_strings
  - ERR_unload_OSSLTEST_strings
  - ERR_OSSLTEST_error
  source_file: /src/openweave-core/third_party/openssl/openssl/engines/e_ossltest_err.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg_err.h
- function_names:
  - engine_load_afalg_int
  - io_setup
  - eventfd
  - io_destroy
  - io_read
  - io_getevents
  - afalg_waitfd_cleanup
  - afalg_setup_async_event_notification
  - afalg_init_aio
  - afalg_fin_cipher_aio
  - afalg_set_op_sk
  - afalg_set_iv_sk
  - afalg_set_key
  - afalg_create_sk
  - afalg_start_cipher_sk
  - afalg_cipher_init
  - afalg_do_cipher
  - afalg_cipher_cleanup
  - afalg_aes_128_cbc
  - afalg_ciphers
  - bind_afalg
  - bind_helper
  - afalg_chk_platform
  - engine_afalg
  - engine_load_afalg_int
  - afalg_init
  - afalg_finish
  - afalg_destroy
  source_file: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.c
- function_names:
  - ERR_load_AFALG_strings
  - ERR_unload_AFALG_strings
  - ERR_AFALG_error
  source_file: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg_err.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/engines/afalg/e_afalg.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/engines/vendor_defns/hwcryptohook.h
- function_names:
  - CRYPTO_THREAD_lock_new
  - CRYPTO_THREAD_read_lock
  - CRYPTO_THREAD_write_lock
  - CRYPTO_THREAD_unlock
  - CRYPTO_THREAD_lock_free
  - CRYPTO_THREAD_run_once
  - CRYPTO_THREAD_init_local
  - CRYPTO_THREAD_get_local
  - CRYPTO_THREAD_set_local
  - CRYPTO_THREAD_cleanup_local
  - CRYPTO_THREAD_get_current_id
  - CRYPTO_THREAD_compare_id
  - CRYPTO_atomic_add
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/threads_pthread.c
- function_names:
  - openssl_fopen
  - openssl_fopen
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/o_fopen.c
- function_names:
  - bn_mul_mont
  - OPENSSL_rdtsc
  - OPENSSL_instrument_bus
  - OPENSSL_instrument_bus2
  - common_handler
  - OPENSSL_cpuid_setup
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/sparcv9cap.c
- function_names:
  - OPENSSL_cleanse
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/mem_clr.c
- function_names:
  - FIPS_mode
  - FIPS_mode_set
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/o_fips.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ppc_arch.h
- function_names:
  - DEFINE_RUN_ONCE_STATIC
  - get_and_lock
  - cleanup_cb
  - crypto_cleanup_all_ex_data_int
  - dummy_new
  - dummy_free
  - dummy_dup
  - CRYPTO_free_ex_index
  - CRYPTO_get_ex_new_index
  - CRYPTO_new_ex_data
  - CRYPTO_dup_ex_data
  - CRYPTO_free_ex_data
  - CRYPTO_set_ex_data
  - CRYPTO_get_ex_data
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ex_data.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/o_dir.c
- function_names:
  - CRYPTO_secure_malloc_init
  - CRYPTO_secure_malloc_done
  - CRYPTO_secure_malloc_initialized
  - CRYPTO_secure_malloc
  - CRYPTO_secure_zalloc
  - CRYPTO_secure_free
  - CRYPTO_secure_allocated
  - CRYPTO_secure_used
  - CRYPTO_secure_actual_size
  - sh_getlist
  - sh_testbit
  - sh_clearbit
  - sh_setbit
  - sh_add_to_list
  - sh_remove_from_list
  - sh_init
  - sh_done
  - sh_allocated
  - sh_find_my_buddy
  - sh_malloc
  - sh_free
  - sh_actual_size
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/mem_sec.c
- function_names:
  - OPENSSL_cpuid_setup
  - OPENSSL_rdtsc
  - ill_handler
  - OPENSSL_rdtsc
  - OPENSSL_cpuid_setup
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/armcap.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/vms_rms.h
- function_names:
  - LP_find_file
  - LP_find_file_end
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_unix.c
- function_names:
  - OPENSSL_init
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/o_init.c
- function_names:
  - ERR_load_CRYPTO_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cpt_err.c
- function_names:
  - LP_find_file
  - LP_find_file_end
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win.c
- function_names:
  - CRYPTO_THREAD_lock_new
  - CRYPTO_THREAD_read_lock
  - CRYPTO_THREAD_write_lock
  - CRYPTO_THREAD_unlock
  - CRYPTO_THREAD_lock_free
  - CRYPTO_THREAD_run_once
  - CRYPTO_THREAD_init_local
  - CRYPTO_THREAD_get_local
  - CRYPTO_THREAD_set_local
  - CRYPTO_THREAD_cleanup_local
  - CRYPTO_THREAD_get_current_id
  - CRYPTO_THREAD_compare_id
  - CRYPTO_atomic_add
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/threads_none.c
- function_names:
  - bn_mul_mont
  - sha256_block_data_order
  - sha512_block_data_order
  - ChaCha20_ctr32
  - poly1305_init
  - ill_handler
  - OPENSSL_cpuid_setup
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ppccap.c
- function_names:
  - LP_find_file
  - LP_find_file_end
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_vms.c
- function_names:
  - CRYPTO_set_mem_functions
  - CRYPTO_set_mem_debug
  - CRYPTO_get_mem_functions
  - CRYPTO_malloc
  - CRYPTO_zalloc
  - CRYPTO_realloc
  - CRYPTO_clear_realloc
  - CRYPTO_free
  - CRYPTO_clear_free
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/mem.c
- function_names:
  - ebcdic2ascii
  - ascii2ebcdic
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ebcdic.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_wince.c
- function_names:
  - LP_find_file
  - LP_find_file_end
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_nyi.c
- function_names:
  - DllMain
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dllmain.c
- function_names:
  - ossl_init_thread_stop_wrap
  - ossl_init_get_thread_local
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - ossl_init_thread_stop
  - OPENSSL_thread_stop
  - ossl_init_thread_start
  - OPENSSL_cleanup
  - OPENSSL_init_crypto
  - OPENSSL_atexit
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/init.c
- function_names:
  - DEFINE_RUN_ONCE_STATIC
  - app_info_free
  - CRYPTO_mem_ctrl
  - mem_check_on
  - mem_cmp
  - mem_hash
  - pop_info
  - CRYPTO_mem_debug_push
  - CRYPTO_mem_debug_pop
  - CRYPTO_mem_debug_malloc
  - CRYPTO_mem_debug_free
  - CRYPTO_mem_debug_realloc
  - print_leak
  - CRYPTO_mem_leaks
  - CRYPTO_mem_leaks_fp
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/mem_dbg.c
- function_names:
  - OPENSSL_memcmp
  - CRYPTO_strdup
  - CRYPTO_strndup
  - CRYPTO_memdup
  - OPENSSL_strnlen
  - OPENSSL_strlcpy
  - OPENSSL_strlcat
  - OPENSSL_hexchar2int
  - OPENSSL_hexstr2buf
  - OPENSSL_buf2hexstr
  - openssl_strerror_r
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/o_str.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/sparc_arch.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/o_time.c
- function_names:
  - CRYPTO_THREAD_lock_new
  - CRYPTO_THREAD_read_lock
  - CRYPTO_THREAD_write_lock
  - CRYPTO_THREAD_unlock
  - CRYPTO_THREAD_lock_free
  - CRYPTO_THREAD_run_once
  - CRYPTO_THREAD_init_local
  - CRYPTO_THREAD_get_local
  - CRYPTO_THREAD_set_local
  - CRYPTO_THREAD_cleanup_local
  - CRYPTO_THREAD_get_current_id
  - CRYPTO_THREAD_compare_id
  - CRYPTO_atomic_add
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/threads_win.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/LPdir_win32.c
- function_names:
  - ill_handler
  - OPENSSL_cpuid_setup
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/s390xcap.c
- function_names:
  - OPENSSL_issetugid
  - OPENSSL_issetugid
  - OPENSSL_issetugid
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/uid.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/arm_arch.h
- function_names:
  - OpenSSL_version_num
  - OpenSSL_version
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cversion.c
- function_names:
  - OPENSSL_cpuid_setup
  - OPENSSL_cpuid_setup
  - OPENSSL_isservice
  - OPENSSL_isservice
  - OPENSSL_showfatal
  - OPENSSL_showfatal
  - OPENSSL_isservice
  - OPENSSL_die
  - CRYPTO_memcmp
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cryptlib.c
- function_names:
  - RC4_options
  - RC4_set_key
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_skey.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_locl.h
- function_names:
  - RC4
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rc4/rc4_enc.c
- function_names:
  - ctr128_inc
  - ctr128_inc_aligned
  - CRYPTO_ctr128_encrypt
  - ctr96_inc
  - CRYPTO_ctr128_encrypt_ctr32
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ctr128.c
- function_names:
  - CRYPTO_128_wrap
  - crypto_128_unwrap_raw
  - CRYPTO_128_unwrap
  - CRYPTO_128_wrap_pad
  - CRYPTO_128_unwrap_pad
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/modes/wrap128.c
- function_names:
  - CRYPTO_ccm128_init
  - CRYPTO_ccm128_setiv
  - CRYPTO_ccm128_aad
  - ctr64_inc
  - CRYPTO_ccm128_encrypt
  - CRYPTO_ccm128_decrypt
  - ctr64_add
  - CRYPTO_ccm128_encrypt_ccm64
  - CRYPTO_ccm128_decrypt_ccm64
  - CRYPTO_ccm128_tag
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ccm128.c
- function_names:
  - CRYPTO_cbc128_encrypt
  - CRYPTO_cbc128_decrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cbc128.c
- function_names:
  - CRYPTO_cts128_encrypt_block
  - CRYPTO_nistcts128_encrypt_block
  - CRYPTO_cts128_encrypt
  - CRYPTO_nistcts128_encrypt
  - CRYPTO_cts128_decrypt_block
  - CRYPTO_nistcts128_decrypt_block
  - CRYPTO_cts128_decrypt
  - CRYPTO_nistcts128_decrypt
  - test_vector
  - test_nistvector
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cts128.c
- function_names:
  - gcm_init_8bit
  - gcm_gmult_8bit
  - gcm_init_4bit
  - gcm_gmult_4bit
  - gcm_gmult_1bit
  - CRYPTO_gcm128_setiv
  - CRYPTO_gcm128_aad
  - CRYPTO_gcm128_encrypt
  - CRYPTO_gcm128_decrypt
  - CRYPTO_gcm128_encrypt_ctr32
  - CRYPTO_gcm128_decrypt_ctr32
  - CRYPTO_gcm128_finish
  - CRYPTO_gcm128_tag
  - CRYPTO_gcm128_new
  - CRYPTO_gcm128_release
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/modes/gcm128.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/modes/modes_lcl.h
- function_names:
  - ocb_ntz
  - ocb_block_lshift
  - ocb_double
  - ocb_block_xor
  - ocb_lookup_l
  - CRYPTO_ocb128_new
  - CRYPTO_ocb128_init
  - CRYPTO_ocb128_copy_ctx
  - CRYPTO_ocb128_setiv
  - CRYPTO_ocb128_aad
  - CRYPTO_ocb128_encrypt
  - CRYPTO_ocb128_decrypt
  - CRYPTO_ocb128_finish
  - CRYPTO_ocb128_tag
  - CRYPTO_ocb128_cleanup
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ocb128.c
- function_names:
  - CRYPTO_cfb128_encrypt
  - cfbr_encrypt_block
  - CRYPTO_cfb128_1_encrypt
  - CRYPTO_cfb128_8_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/modes/cfb128.c
- function_names:
  - CRYPTO_xts128_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/modes/xts128.c
- function_names:
  - CRYPTO_ofb128_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/modes/ofb128.c
- function_names:
  - Poly1305_ctx_size
  - U8TOU32
  - U8TOU64
  - U64TO8
  - poly1305_init
  - poly1305_blocks
  - poly1305_emit
  - U32TO8
  - poly1305_init
  - poly1305_blocks
  - poly1305_emit
  - Poly1305_Init
  - Poly1305_Update
  - Poly1305_Final
  - hex_digit
  - hex_decode
  - hexdump
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305.c
- function_names:
  - poly1305_init
  - poly1305_blocks
  - poly1305_emit
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/poly1305/poly1305_ieee754.c
- function_names:
  - DSO_METHOD_openssl
  - vms_load
  - vms_unload
  - do_find_symbol
  - vms_bind_sym
  - vms_bind_func
  - vms_merger
  - vms_name_converter
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_vms.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_locl.h
- function_names:
  - GetProcAddressA
  - LoadLibraryA
  - DSO_METHOD_openssl
  - win32_load
  - win32_unload
  - win32_bind_func
  - win32_splitter
  - win32_joiner
  - win32_merger
  - win32_name_converter
  - openssl_strnchr
  - win32_globallookup
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_win32.c
- function_names:
  - DSO_METHOD_openssl
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_openssl.c
- function_names:
  - DSO_new_method
  - DSO_new
  - DSO_free
  - DSO_flags
  - DSO_up_ref
  - DSO_load
  - DSO_bind_func
  - DSO_ctrl
  - DSO_get_filename
  - DSO_set_filename
  - DSO_merge
  - DSO_convert_filename
  - DSO_pathbyaddr
  - DSO_dsobyaddr
  - DSO_global_lookup
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_lib.c
- function_names:
  - DSO_METHOD_openssl
  - dlfcn_load
  - dlfcn_unload
  - dlfcn_bind_func
  - dlfcn_merger
  - dlfcn_name_converter
  - dladdr
  - dlfcn_pathbyaddr
  - dlfcn_globallookup
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dlfcn.c
- function_names:
  - ERR_load_DSO_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_err.c
- function_names:
  - DSO_METHOD_openssl
  - dl_load
  - dl_unload
  - dl_bind_func
  - dl_merger
  - dl_name_converter
  - dl_pathbyaddr
  - dl_globallookup
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dso/dso_dl.c
- function_names:
  - UI_new
  - UI_new_method
  - free_string
  - UI_free
  - allocate_string_stack
  - general_allocate_prompt
  - general_allocate_string
  - general_allocate_boolean
  - UI_add_input_string
  - UI_dup_input_string
  - UI_add_verify_string
  - UI_dup_verify_string
  - UI_add_input_boolean
  - UI_dup_input_boolean
  - UI_add_info_string
  - UI_dup_info_string
  - UI_add_error_string
  - UI_dup_error_string
  - UI_construct_prompt
  - UI_add_user_data
  - UI_get0_user_data
  - UI_get0_result
  - print_error
  - UI_process
  - UI_ctrl
  - UI_set_ex_data
  - UI_get_ex_data
  - UI_set_default_method
  - UI_get_default_method
  - UI_get_method
  - UI_set_method
  - UI_create_method
  - UI_destroy_method
  - UI_method_set_opener
  - UI_method_set_writer
  - UI_method_set_flusher
  - UI_method_set_reader
  - UI_method_set_closer
  - UI_method_set_prompt_constructor
  - (*UI_method_get_opener(UI_METHOD *method)) (UI *)
  - (*UI_method_get_writer(UI_METHOD *method)) (UI *, UI_STRING *)
  - (*UI_method_get_flusher(UI_METHOD *method)) (UI *)
  - (*UI_method_get_reader(UI_METHOD *method)) (UI *, UI_STRING *)
  - (*UI_method_get_closer(UI_METHOD *method)) (UI *)
  - "*(*UI_method_get_prompt_constructor(UI_METHOD *method)) (UI *,\n                                                              const
    char *,\n                                                              const char
    *)"
  - UI_get_string_type
  - UI_get_input_flags
  - UI_get0_output_string
  - UI_get0_action_string
  - UI_get0_result_string
  - UI_get0_test_string
  - UI_get_result_minsize
  - UI_get_result_maxsize
  - UI_set_result
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_lib.c
- function_names:
  - UI_UTIL_read_pw_string
  - UI_UTIL_read_pw
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_util.c
- function_names:
  - ERR_load_UI_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_err.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_locl.h
- function_names:
  - UI_OpenSSL
  - write_string
  - read_string
  - read_till_nl
  - read_string_inner
  - open_console
  - noecho_console
  - echo_console
  - close_console
  - pushsig
  - popsig
  - recsig
  - noecho_fgets
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ui/ui_openssl.c
- function_names:
  - PEM_SignInit
  - PEM_SignUpdate
  - PEM_SignFinal
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_sign.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_x509.c
- function_names:
  - PEM_read_bio_PrivateKey
  - PEM_write_bio_PrivateKey
  - PEM_write_bio_PrivateKey_traditional
  - PEM_read_bio_Parameters
  - PEM_write_bio_Parameters
  - PEM_read_PrivateKey
  - PEM_write_PrivateKey
  - PEM_read_bio_DHparams
  - PEM_read_DHparams
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pkey.c
- function_names:
  - pkey_get_rsa
  - PEM_read_bio_RSAPrivateKey
  - PEM_read_RSAPrivateKey
  - pkey_get_dsa
  - PEM_read_bio_DSAPrivateKey
  - PEM_read_DSAPrivateKey
  - pkey_get_eckey
  - PEM_read_bio_ECPrivateKey
  - PEM_read_ECPrivateKey
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_all.c
- function_names:
  - PEM_ASN1_read_bio
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_oth.c
- function_names:
  - PEM_write_bio_PKCS8PrivateKey_nid
  - PEM_write_bio_PKCS8PrivateKey
  - i2d_PKCS8PrivateKey_bio
  - i2d_PKCS8PrivateKey_nid_bio
  - do_pk8pkey
  - d2i_PKCS8PrivateKey_bio
  - i2d_PKCS8PrivateKey_fp
  - i2d_PKCS8PrivateKey_nid_fp
  - PEM_write_PKCS8PrivateKey_nid
  - PEM_write_PKCS8PrivateKey
  - do_pk8pkey_fp
  - d2i_PKCS8PrivateKey_fp
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_pk8.c
- function_names:
  - PEM_X509_INFO_write_bio
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_info.c
- function_names:
  - ERR_load_PEM_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_err.c
- function_names:
  - read_ledword
  - read_lebn
  - do_blob_header
  - blob_length
  - do_b2i
  - do_b2i_bio
  - b2i_dss
  - b2i_rsa
  - b2i_PrivateKey
  - b2i_PublicKey
  - b2i_PrivateKey_bio
  - b2i_PublicKey_bio
  - write_ledword
  - write_lebn
  - do_i2b
  - do_i2b_bio
  - check_bitlen_dsa
  - check_bitlen_rsa
  - write_rsa
  - write_dsa
  - i2b_PrivateKey_bio
  - i2b_PublicKey_bio
  - do_PVK_header
  - derive_pvk_key
  - do_PVK_body
  - b2i_PVK_bio
  - i2b_PVK
  - i2b_PVK_bio
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pvkfmt.c
- function_names:
  - PEM_def_callback
  - PEM_proc_type
  - PEM_dek_info
  - PEM_ASN1_read
  - check_pem
  - PEM_bytes_read_bio
  - PEM_ASN1_write
  - PEM_ASN1_write_bio
  - PEM_do_header
  - PEM_get_EVP_CIPHER_INFO
  - load_iv
  - PEM_write
  - PEM_write_bio
  - PEM_read
  - PEM_read_bio
  - pem_check_suffix
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_lib.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pem/pem_xaux.c
- function_names:
  - prefetch256
  - AES_set_encrypt_key
  - AES_set_decrypt_key
  - AES_encrypt
  - AES_decrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_x86core.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_locl.h
- function_names:
  - AES_ecb_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ecb.c
- function_names:
  - AES_wrap_key
  - AES_unwrap_key
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_wrap.c
- function_names:
  - AES_options
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_misc.c
- function_names:
  - AES_ige_encrypt
  - AES_bi_ige_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ige.c
- function_names:
  - AES_ofb128_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_ofb.c
- function_names:
  - AES_cfb128_encrypt
  - AES_cfb1_encrypt
  - AES_cfb8_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_cfb.c
- function_names:
  - AES_set_encrypt_key
  - AES_set_decrypt_key
  - AES_encrypt
  - AES_decrypt
  - AES_set_encrypt_key
  - AES_set_decrypt_key
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_core.c
- function_names:
  - AES_cbc_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/aes/aes_cbc.c
- function_names:
  - TXT_DB_read
  - TXT_DB_get_by_index
  - TXT_DB_create_index
  - TXT_DB_write
  - TXT_DB_insert
  - TXT_DB_free
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/txt_db/txt_db.c
- function_names:
  - BUF_MEM_new_ex
  - BUF_MEM_new
  - BUF_MEM_free
  - sec_alloc_realloc
  - BUF_MEM_grow
  - BUF_MEM_grow_clean
  - BUF_reverse
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buffer.c
- function_names:
  - ERR_load_BUF_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/buffer/buf_err.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmdconst.h
- function_names:
  - RIPEMD160_Init
  - ripemd160_block_data_order
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_dgst.c
- function_names:
  - RIPEMD160
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_one.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ripemd/rmd_locl.h
- function_names:
  - make_kn
  - CMAC_CTX_new
  - CMAC_CTX_cleanup
  - CMAC_CTX_get0_cipher_ctx
  - CMAC_CTX_free
  - CMAC_CTX_copy
  - CMAC_Init
  - CMAC_Update
  - CMAC_Final
  - CMAC_resume
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cmac.c
- function_names:
  - pkey_cmac_init
  - pkey_cmac_copy
  - pkey_cmac_cleanup
  - pkey_cmac_keygen
  - int_update
  - cmac_signctx_init
  - cmac_signctx
  - pkey_cmac_ctrl
  - pkey_cmac_ctrl_str
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_pmeth.c
- function_names:
  - cmac_size
  - cmac_key_free
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cmac/cm_ameth.c
- function_names:
  - PKCS8_encrypt
  - PKCS8_set0_pbe
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_p8e.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_asn.c
- function_names:
  - copy_bag_attr
  - PKCS12_create
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crt.c
- function_names:
  - ERR_load_PKCS12_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/pk12err.c
- function_names:
  - PKCS12_newpass
  - newpass_p12
  - newpass_bag
  - alg_get
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_npas.c
- function_names:
  - PKCS12_pbe_crypt
  - PKCS12_item_decrypt_d2i
  - PKCS12_item_i2d_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_decr.c
- function_names:
  - PKCS12_init
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_init.c
- function_names:
  - PKCS12_item_pack_safebag
  - PKCS12_pack_p7encdata
  - PKCS12_decrypt_skey
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_add.c
- function_names:
  - PKCS12_PBE_add
  - PKCS12_PBE_keyivgen
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_crpt.c
- function_names:
  - PKCS12_parse
  - parse_pk12
  - parse_bags
  - parse_bag
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_kiss.c
- function_names:
  - PKCS12_mac_present
  - PKCS12_get0_mac
  - pkcs12_gen_gost_mac_key
  - pkcs12_gen_mac
  - PKCS12_gen_mac
  - PKCS12_verify_mac
  - PKCS12_set_mac
  - PKCS12_setup_mac
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_mutl.c
- function_names:
  - PKCS8_decrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_p8d.c
- function_names:
  - OPENSSL_asc2uni
  - OPENSSL_uni2asc
  - OPENSSL_utf82uni
  - bmp_to_utf8
  - OPENSSL_uni2utf8
  - i2d_PKCS12_bio
  - i2d_PKCS12_fp
  - d2i_PKCS12_bio
  - d2i_PKCS12_fp
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_utl.c
- function_names:
  - PKCS12_key_gen_asc
  - PKCS12_key_gen_utf8
  - PKCS12_key_gen_uni
  - h__dump
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_key.c
- function_names:
  - PKCS12_get_attr
  - PKCS12_SAFEBAG_get0_attr
  - PKCS8_get_attr
  - PKCS12_SAFEBAG_get0_p8inf
  - PKCS12_SAFEBAG_get0_pkcs8
  - PKCS12_SAFEBAG_get0_safes
  - PKCS12_SAFEBAG_get0_type
  - PKCS12_SAFEBAG_get_nid
  - PKCS12_SAFEBAG_get_bag_nid
  - PKCS12_SAFEBAG_get1_cert
  - PKCS12_SAFEBAG_get1_crl
  - PKCS12_SAFEBAG_create_cert
  - PKCS12_SAFEBAG_create_crl
  - PKCS12_SAFEBAG_create0_p8inf
  - PKCS12_SAFEBAG_create0_pkcs8
  - PKCS12_SAFEBAG_create_pkcs8_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_sbag.c
- function_names:
  - PKCS12_add_localkeyid
  - PKCS8_add_keyusage
  - PKCS12_add_friendlyname_asc
  - PKCS12_add_friendlyname_utf8
  - PKCS12_add_friendlyname_uni
  - PKCS12_add_CSPName_asc
  - PKCS12_get_attr_gen
  - PKCS12_get_friendlyname
  - PKCS12_SAFEBAG_get0_attrs
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_attr.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs12/p12_lcl.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/async/async_locl.h
- function_names:
  - async_ctx_new
  - async_get_ctx
  - async_ctx_free
  - async_job_new
  - async_job_free
  - async_get_pool_job
  - async_release_job
  - async_start_func
  - ASYNC_start_job
  - ASYNC_pause_job
  - async_empty_pool
  - async_init
  - async_deinit
  - ASYNC_init_thread
  - async_free_pool_internal
  - ASYNC_cleanup_thread
  - ASYNC_get_current_job
  - ASYNC_get_wait_ctx
  - ASYNC_block_pause
  - ASYNC_unblock_pause
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/async/async.c
- function_names:
  - ASYNC_WAIT_CTX_new
  - ASYNC_WAIT_CTX_free
  - ASYNC_WAIT_CTX_set_wait_fd
  - ASYNC_WAIT_CTX_get_fd
  - ASYNC_WAIT_CTX_get_all_fds
  - ASYNC_WAIT_CTX_get_changed_fds
  - ASYNC_WAIT_CTX_clear_fd
  - async_wait_ctx_reset_counts
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/async/async_wait.c
- function_names:
  - ERR_load_ASYNC_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/async/async_err.c
- function_names:
  - ASYNC_is_capable
  - async_local_cleanup
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_null.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_win.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_null.h
- function_names:
  - ASYNC_is_capable
  - async_local_cleanup
  - async_fibre_init_dispatcher
  - async_start_func_win
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_win.c
- function_names:
  - ASYNC_is_capable
  - async_local_cleanup
  - async_fibre_makecontext
  - async_fibre_free
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_posix.c
- function_names:
  - async_fibre_swapcontext
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/async/arch/async_posix.h
- function_names:
  - WHIRLPOOL_Init
  - WHIRLPOOL_Update
  - WHIRLPOOL_BitUpdate
  - WHIRLPOOL_Final
  - WHIRLPOOL
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_dgst.c
- function_names:
  - whirlpool_block
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_block.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/whrlpool/wp_locl.h
- function_names:
  - IDEA_cbc_encrypt
  - IDEA_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cbc.c
- function_names:
  - IDEA_ofb64_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_ofb64.c
- function_names:
  - IDEA_set_encrypt_key
  - IDEA_set_decrypt_key
  - inverse
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_skey.c
- function_names:
  - IDEA_options
  - IDEA_ecb_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_ecb.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/idea/idea_lcl.h
- function_names:
  - IDEA_cfb64_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/idea/i_cfb64.c
- function_names:
  - init
  - update
  - final
  - EVP_blake2s256
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/m_blake2s.c
- function_names:
  - blake2b_set_lastblock
  - blake2b_init0
  - blake2b_init_param
  - BLAKE2b_Init
  - blake2b_compress
  - BLAKE2b_Update
  - BLAKE2b_Final
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2b.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2_locl.h
- function_names:
  - blake2s_set_lastblock
  - blake2s_init0
  - blake2s_init_param
  - BLAKE2s_Init
  - blake2s_compress
  - BLAKE2s_Update
  - BLAKE2s_Final
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2s.c
- function_names:
  - init
  - update
  - final
  - EVP_blake2b512
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/m_blake2b.c
- function_names:
  - load32
  - load64
  - store32
  - store64
  - load48
  - store48
  - rotr32
  - rotr64
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/blake2/blake2_impl.h
- function_names:
  - MDC2_Init
  - MDC2_Update
  - mdc2_body
  - MDC2_Final
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2dgst.c
- function_names:
  - MDC2
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/mdc2/mdc2_one.c
- function_names:
  - RC2_cbc_encrypt
  - RC2_encrypt
  - RC2_decrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_cbc.c
- function_names:
  - RC2_ecb_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_ecb.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/tab.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_locl.h
- function_names:
  - RC2_ofb64_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2ofb64.c
- function_names:
  - RC2_set_key
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2_skey.c
- function_names:
  - RC2_cfb64_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rc2/rc2cfb64.c
- function_names:
  - des_ede_ecb_cipher
  - des_ede_ofb_cipher
  - des_ede_cbc_cipher
  - des_ede_cfb64_cipher
  - des_ede3_cfb1_cipher
  - des_ede3_cfb8_cipher
  - des_ede_init_key
  - des_ede3_init_key
  - des3_ctrl
  - EVP_des_ede
  - EVP_des_ede3
  - des_ede3_unwrap
  - des_ede3_wrap
  - des_ede3_wrap_cipher
  - EVP_des_ede3_wrap
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des3.c
- function_names:
  - do_sigver_init
  - EVP_DigestSignInit
  - EVP_DigestVerifyInit
  - EVP_DigestSignFinal
  - EVP_DigestVerifyFinal
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sigver.c
- function_names:
  - PKCS5_PBE_add
  - PKCS5_PBE_keyivgen
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt.c
- function_names:
  - EVP_OpenInit
  - EVP_OpenFinal
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_open.c
- function_names:
  - EVP_SignFinal
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_sign.c
- function_names:
  - chacha_init_key
  - chacha_cipher
  - EVP_chacha20
  - chacha20_poly1305_init_key
  - chacha20_poly1305_cipher
  - chacha20_poly1305_cleanup
  - chacha20_poly1305_ctrl
  - EVP_chacha20_poly1305
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_chacha20_poly1305.c
- function_names:
  - EVP_bf_cfb
  - EVP_des_cfb
  - EVP_des_ede3_cfb
  - EVP_des_ede_cfb
  - EVP_idea_cfb
  - EVP_rc2_cfb
  - EVP_cast5_cfb
  - EVP_rc5_32_12_16_cfb
  - EVP_aes_128_cfb
  - EVP_aes_192_cfb
  - EVP_aes_256_cfb
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_old.c
- function_names:
  - EVP_CIPHER_CTX_reset
  - EVP_CIPHER_CTX_new
  - EVP_CIPHER_CTX_free
  - EVP_CipherInit
  - EVP_CipherInit_ex
  - EVP_CipherUpdate
  - EVP_CipherFinal_ex
  - EVP_CipherFinal
  - EVP_EncryptInit
  - EVP_EncryptInit_ex
  - EVP_DecryptInit
  - EVP_DecryptInit_ex
  - is_partially_overlapping
  - EVP_EncryptUpdate
  - EVP_EncryptFinal
  - EVP_EncryptFinal_ex
  - EVP_DecryptUpdate
  - EVP_DecryptFinal
  - EVP_DecryptFinal_ex
  - EVP_CIPHER_CTX_set_key_length
  - EVP_CIPHER_CTX_set_padding
  - EVP_CIPHER_CTX_ctrl
  - EVP_CIPHER_CTX_rand_key
  - EVP_CIPHER_CTX_copy
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_enc.c
- function_names:
  - BIO_f_md
  - md_new
  - md_free
  - md_read
  - md_write
  - md_ctrl
  - md_callback_ctrl
  - md_gets
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_md.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_enc.c
- function_names:
  - pmeth_cmp
  - EVP_PKEY_meth_find
  - int_ctx_new
  - EVP_PKEY_meth_new
  - EVP_PKEY_meth_get0_info
  - EVP_PKEY_meth_copy
  - EVP_PKEY_meth_free
  - EVP_PKEY_CTX_new
  - EVP_PKEY_CTX_new_id
  - EVP_PKEY_CTX_dup
  - EVP_PKEY_meth_add0
  - EVP_PKEY_CTX_free
  - EVP_PKEY_CTX_ctrl
  - EVP_PKEY_CTX_ctrl_str
  - EVP_PKEY_CTX_str2ctrl
  - EVP_PKEY_CTX_hex2ctrl
  - EVP_PKEY_CTX_get_operation
  - EVP_PKEY_CTX_set0_keygen_info
  - EVP_PKEY_CTX_set_data
  - EVP_PKEY_CTX_get_data
  - EVP_PKEY_CTX_get0_pkey
  - EVP_PKEY_CTX_get0_peerkey
  - EVP_PKEY_CTX_set_app_data
  - EVP_PKEY_CTX_get_app_data
  - EVP_PKEY_meth_set_init
  - EVP_PKEY_meth_set_copy
  - EVP_PKEY_meth_set_cleanup
  - EVP_PKEY_meth_set_paramgen
  - EVP_PKEY_meth_set_keygen
  - EVP_PKEY_meth_set_sign
  - EVP_PKEY_meth_set_verify
  - EVP_PKEY_meth_set_verify_recover
  - EVP_PKEY_meth_set_signctx
  - EVP_PKEY_meth_set_verifyctx
  - EVP_PKEY_meth_set_encrypt
  - EVP_PKEY_meth_set_decrypt
  - EVP_PKEY_meth_set_derive
  - EVP_PKEY_meth_set_ctrl
  - EVP_PKEY_meth_get_init
  - EVP_PKEY_meth_get_copy
  - EVP_PKEY_meth_get_cleanup
  - EVP_PKEY_meth_get_paramgen
  - EVP_PKEY_meth_get_keygen
  - EVP_PKEY_meth_get_sign
  - EVP_PKEY_meth_get_verify
  - EVP_PKEY_meth_get_verify_recover
  - EVP_PKEY_meth_get_signctx
  - EVP_PKEY_meth_get_verifyctx
  - EVP_PKEY_meth_get_encrypt
  - EVP_PKEY_meth_get_decrypt
  - EVP_PKEY_meth_get_derive
  - EVP_PKEY_meth_get_ctrl
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_lib.c
- function_names:
  - PKCS5_PBKDF2_HMAC
  - PKCS5_PBKDF2_HMAC_SHA1
  - main
  - PKCS5_v2_PBE_keyivgen
  - PKCS5_v2_PBKDF2_keyivgen
  - h__dump
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p5_crpt2.c
- function_names:
  - EVP_PBE_CipherInit
  - pbe2_cmp
  - pbe_cmp
  - EVP_PBE_alg_add_type
  - EVP_PBE_alg_add
  - EVP_PBE_find
  - free_evp_pbe_ctl
  - EVP_PBE_cleanup
  - EVP_PBE_get
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pbe.c
- function_names:
  - init
  - update
  - final
  - EVP_ripemd160
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_ripemd.c
- function_names:
  - BIO_f_cipher
  - enc_new
  - enc_free
  - enc_read
  - enc_write
  - enc_ctrl
  - enc_callback_ctrl
  - BIO_set_cipher
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_enc.c
- function_names:
  - ERR_load_EVP_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_err.c
- function_names:
  - EVP_CIPHER_meth_new
  - EVP_CIPHER_meth_dup
  - EVP_CIPHER_meth_free
  - EVP_CIPHER_meth_set_iv_length
  - EVP_CIPHER_meth_set_flags
  - EVP_CIPHER_meth_set_impl_ctx_size
  - EVP_CIPHER_meth_set_init
  - EVP_CIPHER_meth_set_do_cipher
  - EVP_CIPHER_meth_set_cleanup
  - EVP_CIPHER_meth_set_set_asn1_params
  - EVP_CIPHER_meth_set_get_asn1_params
  - EVP_CIPHER_meth_set_ctrl
  - "(*EVP_CIPHER_meth_get_init(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx,\n
    \                                                         const unsigned char
    *key,\n                                                          const unsigned
    char *iv,\n                                                          int enc)"
  - "(*EVP_CIPHER_meth_get_do_cipher(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx,\n
    \                                                              unsigned char *out,\n
    \                                                              const unsigned
    char *in,\n                                                               size_t
    inl)"
  - (*EVP_CIPHER_meth_get_cleanup(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *)
  - "(*EVP_CIPHER_meth_get_set_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
    *,\n                                                                     ASN1_TYPE
    *)"
  - "(*EVP_CIPHER_meth_get_get_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
    *,\n                                                               ASN1_TYPE *)"
  - "(*EVP_CIPHER_meth_get_ctrl(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *,\n                                                          int
    type, int arg,\n                                                          void
    *ptr)"
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/cmeth_lib.c
- function_names:
  - EVP_PKEY_bits
  - EVP_PKEY_security_bits
  - EVP_PKEY_size
  - EVP_PKEY_save_parameters
  - EVP_PKEY_copy_parameters
  - EVP_PKEY_missing_parameters
  - EVP_PKEY_cmp_parameters
  - EVP_PKEY_cmp
  - EVP_PKEY_new
  - EVP_PKEY_up_ref
  - pkey_set_type
  - EVP_PKEY_set_type
  - EVP_PKEY_set_type_str
  - EVP_PKEY_assign
  - EVP_PKEY_get0
  - EVP_PKEY_get0_hmac
  - EVP_PKEY_set1_RSA
  - EVP_PKEY_get0_RSA
  - EVP_PKEY_get1_RSA
  - EVP_PKEY_set1_DSA
  - EVP_PKEY_get0_DSA
  - EVP_PKEY_get1_DSA
  - EVP_PKEY_set1_EC_KEY
  - EVP_PKEY_get0_EC_KEY
  - EVP_PKEY_get1_EC_KEY
  - EVP_PKEY_set1_DH
  - EVP_PKEY_get0_DH
  - EVP_PKEY_get1_DH
  - EVP_PKEY_type
  - EVP_PKEY_id
  - EVP_PKEY_base_id
  - EVP_PKEY_free
  - EVP_PKEY_free_it
  - unsup_alg
  - EVP_PKEY_print_public
  - EVP_PKEY_print_private
  - EVP_PKEY_print_params
  - evp_pkey_asn1_ctrl
  - EVP_PKEY_get_default_digest_nid
  - EVP_PKEY_set1_tls_encodedpoint
  - EVP_PKEY_get1_tls_encodedpoint
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_lib.c
- function_names:
  - EVP_SealInit
  - EVP_SealFinal
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_seal.c
- function_names:
  - aesni_cbc_hmac_sha1_init_key
  - sha1_update
  - tls1_1_multi_block_encrypt
  - aesni_cbc_hmac_sha1_cipher
  - aesni_cbc_hmac_sha1_ctrl
  - EVP_aes_128_cbc_hmac_sha1
  - EVP_aes_256_cbc_hmac_sha1
  - EVP_aes_128_cbc_hmac_sha1
  - EVP_aes_256_cbc_hmac_sha1
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c
- function_names:
  - rc5_ctrl
  - r_32_12_16_init_key
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc5.c
- function_names:
  - aesni_init_key
  - aesni_cbc_cipher
  - aesni_ecb_cipher
  - aesni_gcm_init_key
  - aesni_xts_init_key
  - aesni_ccm_init_key
  - aesni_ocb_init_key
  - aes_t4_init_key
  - aes_t4_gcm_init_key
  - aes_t4_xts_init_key
  - aes_t4_ccm_init_key
  - aes_t4_ocb_init_key
  - aes_init_key
  - aes_cbc_cipher
  - aes_ecb_cipher
  - aes_ofb_cipher
  - aes_cfb_cipher
  - aes_cfb8_cipher
  - aes_cfb1_cipher
  - aes_ctr_cipher
  - aes_gcm_cleanup
  - ctr64_inc
  - aes_gcm_ctrl
  - aes_gcm_init_key
  - aes_gcm_tls_cipher
  - aes_gcm_cipher
  - aes_xts_ctrl
  - aes_xts_init_key
  - aes_xts_cipher
  - aes_ccm_ctrl
  - aes_ccm_init_key
  - aes_ccm_tls_cipher
  - aes_ccm_cipher
  - aes_wrap_init_key
  - aes_wrap_cipher
  - EVP_aes_128_wrap
  - EVP_aes_192_wrap
  - EVP_aes_256_wrap
  - EVP_aes_128_wrap_pad
  - EVP_aes_192_wrap_pad
  - EVP_aes_256_wrap_pad
  - aes_ocb_ctrl
  - aes_ocb_init_key
  - aes_ocb_cipher
  - aes_ocb_cleanup
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes.c
- function_names:
  - aesni_cbc_hmac_sha256_init_key
  - sha256_update
  - tls1_1_multi_block_encrypt
  - aesni_cbc_hmac_sha256_cipher
  - aesni_cbc_hmac_sha256_ctrl
  - EVP_aes_128_cbc_hmac_sha256
  - EVP_aes_256_cbc_hmac_sha256
  - EVP_aes_128_cbc_hmac_sha256
  - EVP_aes_256_cbc_hmac_sha256
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c
- function_names:
  - init
  - update
  - final
  - EVP_md2
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md2.c
- function_names:
  - EVP_desx_cbc
  - desx_cbc_init_key
  - desx_cbc_cipher
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_xcbc_d.c
- function_names:
  - openssl_add_all_ciphers_int
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_allc.c
- function_names:
  - EVP_rc4
  - EVP_rc4_40
  - rc4_init_key
  - rc4_cipher
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4.c
- function_names:
  - openssl_add_all_digests_int
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/c_alld.c
- function_names:
  - init
  - update
  - final
  - ctrl
  - EVP_md5_sha1
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5_sha1.c
- function_names:
  - cast_init_key
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_cast.c
- function_names:
  - conv_ascii2bin
  - conv_ascii2bin
  - EVP_ENCODE_CTX_new
  - EVP_ENCODE_CTX_free
  - EVP_ENCODE_CTX_copy
  - EVP_ENCODE_CTX_num
  - EVP_EncodeInit
  - EVP_EncodeUpdate
  - EVP_EncodeFinal
  - EVP_EncodeBlock
  - EVP_DecodeInit
  - EVP_DecodeUpdate
  - EVP_DecodeBlock
  - EVP_DecodeFinal
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/encode.c
- function_names:
  - alg_module_init
  - EVP_add_alg_module
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_cnf.c
- function_names:
  - init
  - update
  - final
  - ctrl
  - EVP_sha1
  - init224
  - init256
  - update256
  - final256
  - EVP_sha224
  - EVP_sha256
  - init384
  - init512
  - update512
  - final512
  - EVP_sha384
  - EVP_sha512
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_sha1.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_locl.h
- function_names:
  - init
  - update
  - final
  - EVP_md_null
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_null.c
- function_names:
  - EVP_set_pw_prompt
  - EVP_get_pw_prompt
  - EVP_read_pw_string
  - EVP_read_pw_string_min
  - EVP_BytesToKey
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_key.c
- function_names:
  - EVP_add_cipher
  - EVP_add_digest
  - EVP_get_cipherbyname
  - EVP_get_digestbyname
  - evp_cleanup_int
  - do_all_cipher_fn
  - EVP_CIPHER_do_all
  - EVP_CIPHER_do_all_sorted
  - do_all_md_fn
  - EVP_MD_do_all
  - EVP_MD_do_all_sorted
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/names.c
- function_names:
  - rc4_hmac_md5_init_key
  - rc4_hmac_md5_cipher
  - rc4_hmac_md5_ctrl
  - EVP_rc4_hmac_md5
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc4_hmac_md5.c
- function_names:
  - salsa208_word_specification
  - scryptBlockMix
  - scryptROMix
  - EVP_PBE_scrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/scrypt.c
- function_names:
  - EVP_enc_null
  - null_init_key
  - null_cipher
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_null.c
- function_names:
  - cmll_t4_init_key
  - camellia_init_key
  - camellia_cbc_cipher
  - camellia_ecb_cipher
  - camellia_ofb_cipher
  - camellia_cfb_cipher
  - camellia_cfb8_cipher
  - camellia_cfb1_cipher
  - camellia_ctr_cipher
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_camellia.c
- function_names:
  - init
  - update
  - final
  - EVP_whirlpool
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_wp.c
- function_names:
  - init
  - update
  - final
  - EVP_md5
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md5.c
- function_names:
  - EVP_PKEY_sign_init
  - EVP_PKEY_sign
  - EVP_PKEY_verify_init
  - EVP_PKEY_verify
  - EVP_PKEY_verify_recover_init
  - EVP_PKEY_verify_recover
  - EVP_PKEY_encrypt_init
  - EVP_PKEY_encrypt
  - EVP_PKEY_decrypt_init
  - EVP_PKEY_decrypt
  - EVP_PKEY_derive_init
  - EVP_PKEY_derive_set_peer
  - EVP_PKEY_derive
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_fn.c
- function_names:
  - EVP_VerifyFinal
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_verify.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/p_dec.c
- function_names:
  - EVP_MD_CTX_reset
  - EVP_MD_CTX_new
  - EVP_MD_CTX_free
  - EVP_DigestInit
  - EVP_DigestInit_ex
  - EVP_DigestUpdate
  - EVP_DigestFinal
  - EVP_DigestFinal_ex
  - EVP_MD_CTX_copy
  - EVP_MD_CTX_copy_ex
  - EVP_Digest
  - EVP_MD_CTX_ctrl
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/digest.c
- function_names:
  - EVP_PKEY_paramgen_init
  - EVP_PKEY_paramgen
  - EVP_PKEY_keygen_init
  - EVP_PKEY_keygen
  - EVP_PKEY_CTX_set_cb
  - EVP_PKEY_CTX_get_cb
  - trans_cb
  - evp_pkey_set_cb_translate
  - EVP_PKEY_CTX_get_keygen_info
  - EVP_PKEY_new_mac_key
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/pmeth_gn.c
- function_names:
  - idea_ecb_cipher
  - idea_init_key
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_idea.c
- function_names:
  - seed_init_key
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_seed.c
- function_names:
  - EVP_PKCS82PKEY
  - EVP_PKEY2PKCS8
  - EVP_PKEY_get_attr_count
  - EVP_PKEY_get_attr_by_NID
  - EVP_PKEY_get_attr_by_OBJ
  - EVP_PKEY_get_attr
  - EVP_PKEY_delete_attr
  - EVP_PKEY_add1_attr
  - EVP_PKEY_add1_attr_by_OBJ
  - EVP_PKEY_add1_attr_by_NID
  - EVP_PKEY_add1_attr_by_txt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_pkey.c
- function_names:
  - init
  - update
  - final
  - EVP_mdc2
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_mdc2.c
- function_names:
  - BIO_f_base64
  - b64_new
  - b64_free
  - b64_read
  - b64_write
  - b64_ctrl
  - b64_callback_ctrl
  - b64_puts
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_b64.c
- function_names:
  - bf_init_key
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_bf.c
- function_names:
  - EVP_rc2_64_cbc
  - EVP_rc2_40_cbc
  - rc2_init_key
  - rc2_meth_to_magic
  - rc2_magic_to_meth
  - rc2_get_asn1_type_and_iv
  - rc2_set_asn1_type_and_iv
  - rc2_ctrl
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_rc2.c
- function_names:
  - EVP_CIPHER_param_to_asn1
  - EVP_CIPHER_asn1_to_param
  - EVP_CIPHER_get_asn1_iv
  - EVP_CIPHER_set_asn1_iv
  - EVP_CIPHER_type
  - EVP_CIPHER_block_size
  - EVP_CIPHER_CTX_block_size
  - EVP_CIPHER_impl_ctx_size
  - EVP_Cipher
  - EVP_CIPHER_CTX_cipher
  - EVP_CIPHER_CTX_encrypting
  - EVP_CIPHER_flags
  - EVP_CIPHER_CTX_get_app_data
  - EVP_CIPHER_CTX_set_app_data
  - EVP_CIPHER_CTX_get_cipher_data
  - EVP_CIPHER_CTX_set_cipher_data
  - EVP_CIPHER_iv_length
  - EVP_CIPHER_CTX_iv_length
  - EVP_CIPHER_CTX_original_iv
  - EVP_CIPHER_CTX_iv
  - EVP_CIPHER_CTX_iv_noconst
  - EVP_CIPHER_CTX_buf_noconst
  - EVP_CIPHER_CTX_num
  - EVP_CIPHER_CTX_set_num
  - EVP_CIPHER_key_length
  - EVP_CIPHER_CTX_key_length
  - EVP_CIPHER_nid
  - EVP_CIPHER_CTX_nid
  - EVP_MD_block_size
  - EVP_MD_type
  - EVP_MD_pkey_type
  - EVP_MD_size
  - EVP_MD_flags
  - EVP_MD_meth_new
  - EVP_MD_meth_dup
  - EVP_MD_meth_free
  - EVP_MD_meth_set_input_blocksize
  - EVP_MD_meth_set_result_size
  - EVP_MD_meth_set_app_datasize
  - EVP_MD_meth_set_flags
  - EVP_MD_meth_set_init
  - EVP_MD_meth_set_update
  - EVP_MD_meth_set_final
  - EVP_MD_meth_set_copy
  - EVP_MD_meth_set_cleanup
  - EVP_MD_meth_set_ctrl
  - EVP_MD_meth_get_input_blocksize
  - EVP_MD_meth_get_result_size
  - EVP_MD_meth_get_app_datasize
  - EVP_MD_meth_get_flags
  - (*EVP_MD_meth_get_init(const EVP_MD *md))(EVP_MD_CTX *ctx)
  - "(*EVP_MD_meth_get_update(const EVP_MD *md))(EVP_MD_CTX *ctx,\n                                                const
    void *data,\n                                                size_t count)"
  - "(*EVP_MD_meth_get_final(const EVP_MD *md))(EVP_MD_CTX *ctx,\n                                               unsigned
    char *md)"
  - "(*EVP_MD_meth_get_copy(const EVP_MD *md))(EVP_MD_CTX *to,\n                                              const
    EVP_MD_CTX *from)"
  - (*EVP_MD_meth_get_cleanup(const EVP_MD *md))(EVP_MD_CTX *ctx)
  - "(*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int cmd,\n                                              int
    p1, void *p2)"
  - EVP_MD_CTX_md
  - EVP_MD_CTX_pkey_ctx
  - EVP_MD_CTX_md_data
  - "(*EVP_MD_CTX_update_fn(EVP_MD_CTX *ctx))(EVP_MD_CTX *ctx,\n                                             const
    void *data, size_t count)"
  - EVP_MD_CTX_set_update_fn
  - EVP_MD_CTX_set_flags
  - EVP_MD_CTX_clear_flags
  - EVP_MD_CTX_test_flags
  - EVP_CIPHER_CTX_set_flags
  - EVP_CIPHER_CTX_clear_flags
  - EVP_CIPHER_CTX_test_flags
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/evp_lib.c
- function_names:
  - des_ecb_cipher
  - des_ofb_cipher
  - des_cbc_cipher
  - des_cfb64_cipher
  - des_cfb1_cipher
  - des_cfb8_cipher
  - des_init_key
  - des_ctrl
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/e_des.c
- function_names:
  - BIO_f_reliable
  - ok_new
  - ok_free
  - ok_read
  - ok_write
  - ok_ctrl
  - ok_callback_ctrl
  - longswap
  - sig_out
  - sig_in
  - block_out
  - block_in
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/bio_ok.c
- function_names:
  - init
  - update
  - final
  - EVP_md4
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/evp/m_md4.c
- function_names:
  - CMS_signed_get_attr_count
  - CMS_signed_get_attr_by_NID
  - CMS_signed_get_attr_by_OBJ
  - CMS_signed_get_attr
  - CMS_signed_delete_attr
  - CMS_signed_add1_attr
  - CMS_signed_add1_attr_by_OBJ
  - CMS_signed_add1_attr_by_NID
  - CMS_signed_add1_attr_by_txt
  - CMS_signed_get0_data_by_OBJ
  - CMS_unsigned_get_attr_count
  - CMS_unsigned_get_attr_by_NID
  - CMS_unsigned_get_attr_by_OBJ
  - CMS_unsigned_get_attr
  - CMS_unsigned_delete_attr
  - CMS_unsigned_add1_attr
  - CMS_unsigned_add1_attr_by_OBJ
  - CMS_unsigned_add1_attr_by_NID
  - CMS_unsigned_add1_attr_by_txt
  - CMS_unsigned_get0_data_by_OBJ
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_att.c
- function_names:
  - cms_EncryptedContent_init_bio
  - cms_EncryptedContent_init
  - CMS_EncryptedData_set1_key
  - cms_EncryptedData_init_bio
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_enc.c
- function_names:
  - ERR_load_CMS_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_err.c
- function_names:
  - CMS_RecipientInfo_set0_password
  - CMS_add0_recipient_password
  - kek_unwrap_key
  - kek_wrap_key
  - cms_RecipientInfo_pwri_crypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_pwri.c
- function_names:
  - CMS_get0_type
  - cms_Data_create
  - cms_content_bio
  - CMS_dataInit
  - CMS_dataFinal
  - CMS_get0_content
  - cms_get0_econtent_type
  - CMS_get0_eContentType
  - CMS_set1_eContentType
  - CMS_is_detached
  - CMS_set_detached
  - cms_DigestAlgorithm_init_bio
  - cms_DigestAlgorithm_find_ctx
  - cms_get0_certificate_choices
  - CMS_add0_CertificateChoices
  - CMS_add0_cert
  - CMS_add1_cert
  - cms_get0_revocation_choices
  - CMS_add0_RevocationInfoChoice
  - CMS_add0_crl
  - CMS_add1_crl
  - cms_ias_cert_cmp
  - cms_keyid_cert_cmp
  - cms_set1_ias
  - cms_set1_keyid
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lib.c
- function_names:
  - cms_get0_enveloped
  - cms_enveloped_data_init
  - cms_env_asn1_ctrl
  - CMS_RecipientInfo_type
  - CMS_RecipientInfo_get0_pkey_ctx
  - CMS_EnvelopedData_create
  - cms_RecipientInfo_ktri_init
  - CMS_add1_recipient_cert
  - CMS_RecipientInfo_ktri_get0_algs
  - CMS_RecipientInfo_ktri_get0_signer_id
  - CMS_RecipientInfo_ktri_cert_cmp
  - CMS_RecipientInfo_set0_pkey
  - cms_RecipientInfo_ktri_encrypt
  - cms_RecipientInfo_ktri_decrypt
  - CMS_RecipientInfo_kekri_id_cmp
  - aes_wrap_keylen
  - CMS_add0_recipient_key
  - CMS_RecipientInfo_kekri_get0_id
  - CMS_RecipientInfo_set0_key
  - cms_RecipientInfo_kekri_encrypt
  - cms_RecipientInfo_kekri_decrypt
  - CMS_RecipientInfo_decrypt
  - CMS_RecipientInfo_encrypt
  - cms_env_set_originfo_version
  - cms_env_set_version
  - cms_EnvelopedData_init_bio
  - cms_pkey_get_ri_type
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_env.c
- function_names:
  - CMS_get1_ReceiptRequest
  - CMS_ReceiptRequest_create0
  - CMS_add1_ReceiptRequest
  - CMS_ReceiptRequest_get0_values
  - cms_msgSigDigest
  - cms_msgSigDigest_add1
  - cms_Receipt_verify
  - cms_encode_Receipt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_ess.c
- function_names:
  - cms_get0_signed
  - cms_signed_data_init
  - CMS_SignedData_init
  - cms_sd_set_version
  - cms_copy_messageDigest
  - cms_set1_SignerIdentifier
  - cms_SignerIdentifier_get0_signer_id
  - cms_SignerIdentifier_cert_cmp
  - cms_sd_asn1_ctrl
  - CMS_add1_signer
  - cms_add1_signingTime
  - CMS_SignerInfo_get0_pkey_ctx
  - CMS_SignerInfo_get0_md_ctx
  - CMS_SignerInfo_set1_signer_cert
  - CMS_SignerInfo_get0_signer_id
  - CMS_SignerInfo_cert_cmp
  - CMS_SignerInfo_get0_algs
  - CMS_SignerInfo_get0_signature
  - cms_SignerInfo_content_sign
  - cms_SignedData_final
  - CMS_SignerInfo_sign
  - CMS_SignerInfo_verify
  - cms_SignedData_init_bio
  - CMS_SignerInfo_verify_content
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_sd.c
- function_names:
  - cms_DigestedData_create
  - cms_DigestedData_init_bio
  - cms_DigestedData_do_final
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_dd.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_lcl.h
- function_names:
  - cms_CompressedData_create
  - cms_CompressedData_init_bio
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_cd.c
- function_names:
  - CMS_RecipientInfo_kari_get0_alg
  - CMS_RecipientInfo_kari_get0_orig_id
  - CMS_RecipientInfo_kari_orig_id_cmp
  - CMS_RecipientEncryptedKey_get0_id
  - CMS_RecipientEncryptedKey_cert_cmp
  - CMS_RecipientInfo_kari_set0_pkey
  - CMS_RecipientInfo_kari_get0_ctx
  - cms_kek_cipher
  - CMS_RecipientInfo_kari_decrypt
  - cms_kari_create_ephemeral_key
  - cms_RecipientInfo_kari_init
  - cms_wrap_init
  - cms_RecipientInfo_kari_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_kari.c
- function_names:
  - cms_get_text_bio
  - cms_copy_content
  - check_content
  - do_free_upto
  - CMS_data
  - CMS_data_create
  - CMS_digest_verify
  - CMS_digest_create
  - CMS_EncryptedData_decrypt
  - CMS_EncryptedData_encrypt
  - cms_kari_set1_pkey
  - CMS_decrypt_set1_pkey
  - CMS_decrypt_set1_key
  - CMS_decrypt_set1_password
  - CMS_decrypt
  - CMS_final
  - CMS_uncompress
  - CMS_compress
  - CMS_uncompress
  - CMS_compress
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_smime.c
- function_names:
  - CMS_stream
  - d2i_CMS_bio
  - i2d_CMS_bio
  - BIO_new_CMS
  - i2d_CMS_bio_stream
  - PEM_write_bio_CMS_stream
  - SMIME_write_CMS
  - SMIME_read_CMS
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_io.c
- function_names:
  - cms_si_cb
  - cms_rek_cb
  - cms_kari_cb
  - cms_ri_cb
  - cms_cb
  - CMS_SharedInfo_encode
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cms/cms_asn1.c
- function_names:
  - hmac_size
  - hmac_key_free
  - hmac_pkey_ctrl
  - hmac_pkey_public_cmp
  - old_hmac_decode
  - old_hmac_encode
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_ameth.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac_lcl.h
- function_names:
  - HMAC_Init_ex
  - HMAC_Init
  - HMAC_Update
  - HMAC_Final
  - HMAC_size
  - HMAC_CTX_new
  - hmac_ctx_cleanup
  - HMAC_CTX_free
  - HMAC_CTX_reset
  - HMAC_CTX_copy
  - HMAC
  - HMAC_CTX_set_flags
  - HMAC_CTX_get_md
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hmac.c
- function_names:
  - pkey_hmac_init
  - pkey_hmac_copy
  - pkey_hmac_cleanup
  - pkey_hmac_keygen
  - int_update
  - hmac_signctx_init
  - hmac_signctx
  - pkey_hmac_ctrl
  - pkey_hmac_ctrl_str
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/hmac/hm_pmeth.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/x509_int.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/err_int.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/rand.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/async.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/bn_dh.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/evp_int.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/bn_srp.h
- function_names:
  - HASH_UPDATE
  - HASH_TRANSFORM
  - HASH_FINAL
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/md32_common.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/poly1305.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/cryptlib.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/cryptlib_int.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/asn1_int.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/chacha.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/engine.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/objects.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/include/internal/bn_int.h
- function_names:
  - BN_kronecker
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_kron.c
- function_names:
  - BN_gcd
  - euclid
  - BN_mod_inverse
  - int_bn_mod_inverse
  - BN_mod_inverse_no_branch
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gcd.c
- function_names:
  - ERR_load_BN_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_err.c
- function_names:
  - RSAZ_1024_mod_exp_avx2
  - RSAZ_512_mod_exp
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.c
- function_names:
  - BN_div
  - BN_div
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_div.c
- function_names:
  - BN_lshift1
  - BN_rshift1
  - BN_lshift
  - BN_rshift
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_shift.c
- function_names:
  - BN_set_params
  - BN_get_params
  - BN_value_one
  - BN_num_bits_word
  - BN_num_bits
  - bn_free_d
  - BN_clear_free
  - BN_free
  - bn_init
  - BN_new
  - BN_secure_new
  - bn_expand_internal
  - bn_expand2
  - BN_dup
  - BN_copy
  - BN_swap
  - BN_clear
  - BN_get_word
  - BN_set_word
  - BN_bin2bn
  - bn2binpad
  - BN_bn2binpad
  - BN_bn2bin
  - BN_lebin2bn
  - BN_bn2lebinpad
  - BN_ucmp
  - BN_cmp
  - BN_set_bit
  - BN_clear_bit
  - BN_is_bit_set
  - BN_mask_bits
  - BN_set_negative
  - bn_cmp_words
  - bn_cmp_part_words
  - BN_consttime_swap
  - BN_security_bits
  - BN_zero_ex
  - BN_abs_is_word
  - BN_is_zero
  - BN_is_one
  - BN_is_word
  - BN_is_odd
  - BN_is_negative
  - BN_to_montgomery
  - BN_with_flags
  - BN_GENCB_new
  - BN_GENCB_free
  - BN_set_flags
  - BN_get_flags
  - BN_GENCB_set_old
  - BN_GENCB_set
  - BN_GENCB_get_arg
  - bn_wexpand
  - bn_correct_top
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lib.c
- function_names:
  - BN_nnmod
  - BN_mod_add
  - BN_mod_add_quick
  - BN_mod_sub
  - BN_mod_sub_quick
  - BN_mod_mul
  - BN_mod_sqr
  - BN_mod_lshift1
  - BN_mod_lshift1_quick
  - BN_mod_lshift
  - BN_mod_lshift_quick
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mod.c
- function_names:
  - BN_BLINDING_new
  - BN_BLINDING_free
  - BN_BLINDING_update
  - BN_BLINDING_convert
  - BN_BLINDING_convert_ex
  - BN_BLINDING_invert
  - BN_BLINDING_invert_ex
  - BN_BLINDING_is_current_thread
  - BN_BLINDING_set_current_thread
  - BN_BLINDING_lock
  - BN_BLINDING_unlock
  - BN_BLINDING_get_flags
  - BN_BLINDING_set_flags
  - BN_BLINDING_create_param
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_blind.c
- function_names:
  - BN_get0_nist_prime_192
  - BN_get0_nist_prime_224
  - BN_get0_nist_prime_256
  - BN_get0_nist_prime_384
  - BN_get0_nist_prime_521
  - nist_cp_bn_0
  - nist_cp_bn
  - BN_nist_mod_192
  - BN_nist_mod_224
  - BN_nist_mod_256
  - BN_nist_mod_384
  - BN_nist_mod_521
  - "(*BN_nist_mod_func(const BIGNUM *p)) (BIGNUM *r, const BIGNUM *a,\n                                          const
    BIGNUM *field, BN_CTX *ctx)"
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_nist.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/rsaz_exp.h
- function_names:
  - BN_add
  - BN_uadd
  - BN_usub
  - BN_sub
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_add.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_dh.c
- function_names:
  - BN_mod_word
  - BN_div_word
  - BN_add_word
  - BN_sub_word
  - BN_mul_word
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_word.c
- function_names:
  - bnrand
  - BN_rand
  - BN_pseudo_rand
  - BN_bntest_rand
  - bn_rand_range
  - BN_rand_range
  - BN_pseudo_rand_range
  - BN_generate_dsa_nonce
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_rand.c
- function_names:
  - bn_compute_wNAF
  - bn_get_top
  - bn_set_top
  - bn_get_dmax
  - bn_set_all_zero
  - bn_copy_words
  - bn_get_words
  - bn_set_static_words
  - bn_set_words
  - bn_sizeof_BIGNUM
  - bn_array_el
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_intern.c
- function_names:
  - bn_expand
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_lcl.h
- function_names:
  - BN_exp
  - BN_mod_exp
  - BN_mod_exp_recp
  - BN_mod_exp_mont
  - bn_get_bits
  - MOD_EXP_CTIME_COPY_TO_PREBUF
  - MOD_EXP_CTIME_COPY_FROM_PREBUF
  - BN_mod_exp_mont_consttime
  - BN_mod_exp_mont_word
  - BN_mod_exp_simple
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_srp.c
- function_names:
  - BN_generate_prime
  - BN_is_prime
  - BN_is_prime_fasttest
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_depr.c
- function_names:
  - BN_bn2hex
  - BN_bn2dec
  - BN_hex2bn
  - BN_dec2bn
  - BN_asc2bn
  - BN_print_fp
  - BN_print
  - BN_options
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_print.c
- function_names:
  - ctxdbg
  - BN_CTX_new
  - BN_CTX_secure_new
  - BN_CTX_free
  - BN_CTX_start
  - BN_CTX_end
  - BN_CTX_get
  - BN_STACK_init
  - BN_STACK_finish
  - BN_STACK_push
  - BN_STACK_pop
  - BN_POOL_init
  - BN_POOL_finish
  - BN_POOL_get
  - BN_POOL_release
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_ctx.c
- function_names:
  - bn_GF2m_mul_1x1
  - bn_GF2m_mul_1x1
  - bn_GF2m_mul_2x2
  - BN_GF2m_add
  - BN_GF2m_mod_arr
  - BN_GF2m_mod
  - BN_GF2m_mod_mul_arr
  - BN_GF2m_mod_mul
  - BN_GF2m_mod_sqr_arr
  - BN_GF2m_mod_sqr
  - BN_GF2m_mod_inv
  - BN_GF2m_mod_inv_arr
  - BN_GF2m_mod_div
  - BN_GF2m_mod_div
  - BN_GF2m_mod_div_arr
  - BN_GF2m_mod_exp_arr
  - BN_GF2m_mod_exp
  - BN_GF2m_mod_sqrt_arr
  - BN_GF2m_mod_sqrt
  - BN_GF2m_mod_solve_quad_arr
  - BN_GF2m_mod_solve_quad
  - BN_GF2m_poly2arr
  - BN_GF2m_arr2poly
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_gf2m.c
- function_names:
  - BN_RECP_CTX_init
  - BN_RECP_CTX_new
  - BN_RECP_CTX_free
  - BN_RECP_CTX_set
  - BN_mod_mul_reciprocal
  - BN_div_recp
  - BN_reciprocal
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_recp.c
- function_names:
  - bn_mul_add_words
  - bn_mul_words
  - bn_sqr_words
  - bn_mul_add_words
  - bn_mul_words
  - bn_sqr_words
  - bn_div_words
  - bn_div_words
  - bn_add_words
  - bn_add_words
  - bn_sub_words
  - bn_mul_comba8
  - bn_mul_comba4
  - bn_sqr_comba8
  - bn_sqr_comba4
  - bn_mul_mont
  - bn_mul_mont
  - bn_sqr_comba4
  - bn_sqr_comba8
  - bn_mul_comba4
  - bn_mul_comba8
  - bn_mul_mont
  - bn_mul_mont
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_asm.c
- function_names:
  - BN_bn2mpi
  - BN_mpi2bn
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mpi.c
- function_names:
  - BN_mod_exp2_mont
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_exp2.c
- function_names:
  - BN_sqr
  - bn_sqr_normal
  - bn_sqr_recursive
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqr.c
- function_names:
  - BN_GENCB_call
  - BN_generate_prime_ex
  - BN_is_prime_ex
  - BN_is_prime_fasttest_ex
  - bn_probable_prime_dh_retry
  - bn_probable_prime_dh_coprime
  - witness
  - probable_prime
  - bn_probable_prime_dh
  - probable_prime_dh_safe
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_prime.c
- function_names:
  - bn_x931_derive_pi
  - BN_X931_derive_prime_ex
  - BN_X931_generate_Xpq
  - BN_X931_generate_prime_ex
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_x931p.c
- function_names:
  - BN_mod_sqrt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_sqrt.c
- function_names:
  - bn_sub_part_words
  - bn_add_part_words
  - bn_mul_recursive
  - bn_mul_part_recursive
  - bn_mul_low_recursive
  - bn_mul_high
  - BN_mul
  - bn_mul_normal
  - bn_mul_low_normal
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mul.c
- function_names:
  - BN_get_rfc2409_prime_768
  - BN_get_rfc2409_prime_1024
  - BN_get_rfc3526_prime_1536
  - BN_get_rfc3526_prime_2048
  - BN_get_rfc3526_prime_3072
  - BN_get_rfc3526_prime_4096
  - BN_get_rfc3526_prime_6144
  - BN_get_rfc3526_prime_8192
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_const.c
- function_names:
  - BN_mod_mul_montgomery
  - BN_from_montgomery_word
  - BN_from_montgomery
  - BN_MONT_CTX_new
  - BN_MONT_CTX_init
  - BN_MONT_CTX_free
  - BN_MONT_CTX_set
  - BN_MONT_CTX_copy
  - BN_MONT_CTX_set_locked
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/bn_mont.c
- function_names:
  - bn_mul_add_words
  - bn_mul_words
  - bn_sqr_words
  - bn_div_words
  - bn_add_words
  - bn_sub_words
  - bn_sub_words
  - bn_mul_comba8
  - bn_mul_comba4
  - bn_sqr_comba8
  - bn_sqr_comba4
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bn/asm/x86_64-gcc.c
- function_names:
  - t_fromb64
  - t_tob64
  - SRP_user_pwd_free
  - SRP_user_pwd_new
  - SRP_user_pwd_set_gN
  - SRP_user_pwd_set_ids
  - SRP_user_pwd_set_sv
  - SRP_user_pwd_set_sv_BN
  - srp_user_pwd_dup
  - SRP_VBASE_new
  - SRP_VBASE_free
  - SRP_gN_new_init
  - SRP_gN_free
  - SRP_get_gN_by_id
  - SRP_gN_place_bn
  - SRP_VBASE_init
  - find_user
  - SRP_VBASE_get_by_user
  - SRP_VBASE_get1_by_user
  - SRP_create_verifier
  - SRP_create_verifier_BN
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_vfy.c
- function_names:
  - srp_Calc_xy
  - srp_Calc_k
  - SRP_Calc_u
  - SRP_Calc_server_key
  - SRP_Calc_B
  - SRP_Calc_x
  - SRP_Calc_A
  - SRP_Calc_client_key
  - SRP_Verify_B_mod_N
  - SRP_Verify_A_mod_N
  - SRP_check_known_gN_param
  - SRP_get_default_gN
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/srp/srp_lib.c
- function_names:
  - X509_CRL_set_version
  - X509_CRL_set_issuer_name
  - X509_CRL_set1_lastUpdate
  - X509_CRL_set1_nextUpdate
  - X509_CRL_sort
  - X509_CRL_up_ref
  - X509_CRL_get_version
  - X509_CRL_get0_lastUpdate
  - X509_CRL_get0_nextUpdate
  - X509_CRL_get_lastUpdate
  - X509_CRL_get_nextUpdate
  - X509_CRL_get_issuer
  - X509_CRL_get0_extensions
  - X509_CRL_get0_signature
  - X509_CRL_get_signature_nid
  - X509_REVOKED_get0_revocationDate
  - X509_REVOKED_set_revocationDate
  - X509_REVOKED_get0_serialNumber
  - X509_REVOKED_set_serialNumber
  - X509_REVOKED_get0_extensions
  - i2d_re_X509_CRL_tbs
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509cset.c
- function_names:
  - X509_NAME_get_text_by_NID
  - X509_NAME_get_text_by_OBJ
  - X509_NAME_entry_count
  - X509_NAME_get_index_by_NID
  - X509_NAME_get_index_by_OBJ
  - X509_NAME_get_entry
  - X509_NAME_delete_entry
  - X509_NAME_add_entry_by_OBJ
  - X509_NAME_add_entry_by_NID
  - X509_NAME_add_entry_by_txt
  - X509_NAME_add_entry
  - X509_NAME_ENTRY_create_by_txt
  - X509_NAME_ENTRY_create_by_NID
  - X509_NAME_ENTRY_create_by_OBJ
  - X509_NAME_ENTRY_set_object
  - X509_NAME_ENTRY_set_data
  - X509_NAME_ENTRY_get_object
  - X509_NAME_ENTRY_get_data
  - X509_NAME_ENTRY_set
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509name.c
- function_names:
  - X509_REQ_to_X509
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_r2x.c
- function_names:
  - X509_certificate_type
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509type.c
- function_names:
  - X509_verify
  - X509_REQ_verify
  - NETSCAPE_SPKI_verify
  - X509_sign
  - X509_sign_ctx
  - X509_http_nbio
  - X509_REQ_sign
  - X509_REQ_sign_ctx
  - X509_CRL_sign
  - X509_CRL_sign_ctx
  - X509_CRL_http_nbio
  - NETSCAPE_SPKI_sign
  - d2i_X509_fp
  - i2d_X509_fp
  - d2i_X509_bio
  - i2d_X509_bio
  - d2i_X509_CRL_fp
  - i2d_X509_CRL_fp
  - d2i_X509_CRL_bio
  - i2d_X509_CRL_bio
  - d2i_PKCS7_fp
  - i2d_PKCS7_fp
  - d2i_PKCS7_bio
  - i2d_PKCS7_bio
  - d2i_X509_REQ_fp
  - i2d_X509_REQ_fp
  - d2i_X509_REQ_bio
  - i2d_X509_REQ_bio
  - d2i_RSAPrivateKey_fp
  - i2d_RSAPrivateKey_fp
  - d2i_RSAPublicKey_fp
  - d2i_RSA_PUBKEY_fp
  - i2d_RSAPublicKey_fp
  - i2d_RSA_PUBKEY_fp
  - d2i_RSAPrivateKey_bio
  - i2d_RSAPrivateKey_bio
  - d2i_RSAPublicKey_bio
  - d2i_RSA_PUBKEY_bio
  - i2d_RSAPublicKey_bio
  - i2d_RSA_PUBKEY_bio
  - d2i_DSAPrivateKey_fp
  - i2d_DSAPrivateKey_fp
  - d2i_DSA_PUBKEY_fp
  - i2d_DSA_PUBKEY_fp
  - d2i_DSAPrivateKey_bio
  - i2d_DSAPrivateKey_bio
  - d2i_DSA_PUBKEY_bio
  - i2d_DSA_PUBKEY_bio
  - d2i_EC_PUBKEY_fp
  - i2d_EC_PUBKEY_fp
  - d2i_ECPrivateKey_fp
  - i2d_ECPrivateKey_fp
  - d2i_EC_PUBKEY_bio
  - i2d_EC_PUBKEY_bio
  - d2i_ECPrivateKey_bio
  - i2d_ECPrivateKey_bio
  - X509_pubkey_digest
  - X509_digest
  - X509_CRL_digest
  - X509_REQ_digest
  - X509_NAME_digest
  - PKCS7_ISSUER_AND_SERIAL_digest
  - d2i_PKCS8_fp
  - i2d_PKCS8_fp
  - d2i_PKCS8_bio
  - i2d_PKCS8_bio
  - d2i_PKCS8_PRIV_KEY_INFO_fp
  - i2d_PKCS8_PRIV_KEY_INFO_fp
  - i2d_PKCS8PrivateKeyInfo_fp
  - i2d_PrivateKey_fp
  - d2i_PrivateKey_fp
  - i2d_PUBKEY_fp
  - d2i_PUBKEY_fp
  - d2i_PKCS8_PRIV_KEY_INFO_bio
  - i2d_PKCS8_PRIV_KEY_INFO_bio
  - i2d_PKCS8PrivateKeyInfo_bio
  - i2d_PrivateKey_bio
  - d2i_PrivateKey_bio
  - i2d_PUBKEY_bio
  - d2i_PUBKEY_bio
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_all.c
- function_names:
  - tr_cmp
  - "(*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int, X509 *,\n                                                                int)"
  - X509_check_trust
  - X509_TRUST_get_count
  - X509_TRUST_get0
  - X509_TRUST_get_by_id
  - X509_TRUST_set
  - X509_TRUST_add
  - trtable_free
  - X509_TRUST_cleanup
  - X509_TRUST_get_flags
  - X509_TRUST_get0_name
  - X509_TRUST_get_trust
  - trust_1oidany
  - trust_1oid
  - trust_compat
  - obj_trust
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_trs.c
- function_names:
  - X509_verify_cert_error_string
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_txt.c
- function_names:
  - X509_CRL_get_ext_count
  - X509_CRL_get_ext_by_NID
  - X509_CRL_get_ext_by_OBJ
  - X509_CRL_get_ext_by_critical
  - X509_CRL_get_ext
  - X509_CRL_delete_ext
  - X509_CRL_get_ext_d2i
  - X509_CRL_add1_ext_i2d
  - X509_CRL_add_ext
  - X509_get_ext_count
  - X509_get_ext_by_NID
  - X509_get_ext_by_OBJ
  - X509_get_ext_by_critical
  - X509_get_ext
  - X509_delete_ext
  - X509_add_ext
  - X509_get_ext_d2i
  - X509_add1_ext_i2d
  - X509_REVOKED_get_ext_count
  - X509_REVOKED_get_ext_by_NID
  - X509_REVOKED_get_ext_by_OBJ
  - X509_REVOKED_get_ext_by_critical
  - X509_REVOKED_get_ext
  - X509_REVOKED_delete_ext
  - X509_REVOKED_add_ext
  - X509_REVOKED_get_ext_d2i
  - X509_REVOKED_add1_ext_i2d
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_ext.c
- function_names:
  - X509_REQ_set_version
  - X509_REQ_set_subject_name
  - X509_REQ_set_pubkey
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509rset.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lcl.h
- function_names:
  - X509_get_default_private_dir
  - X509_get_default_cert_area
  - X509_get_default_cert_dir
  - X509_get_default_cert_file
  - X509_get_default_cert_dir_env
  - X509_get_default_cert_file_env
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_def.c
- function_names:
  - X509_NAME_oneline
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_obj.c
- function_names:
  - X509_issuer_and_serial_cmp
  - X509_issuer_and_serial_hash
  - X509_issuer_name_cmp
  - X509_subject_name_cmp
  - X509_CRL_cmp
  - X509_CRL_match
  - X509_get_issuer_name
  - X509_issuer_name_hash
  - X509_issuer_name_hash_old
  - X509_get_subject_name
  - X509_get_serialNumber
  - X509_get0_serialNumber
  - X509_subject_name_hash
  - X509_subject_name_hash_old
  - X509_cmp
  - X509_NAME_cmp
  - X509_NAME_hash
  - X509_NAME_hash_old
  - X509_get0_pubkey
  - X509_get_pubkey
  - X509_check_private_key
  - check_suite_b
  - X509_chain_check_suiteb
  - X509_CRL_check_suiteb
  - X509_chain_check_suiteb
  - X509_CRL_check_suiteb
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_cmp.c
- function_names:
  - X509_trusted
  - aux_get
  - X509_alias_set1
  - X509_keyid_set1
  - X509_alias_get0
  - X509_keyid_get0
  - X509_add1_trust_object
  - X509_add1_reject_object
  - X509_trust_clear
  - X509_reject_clear
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509a.c
- function_names:
  - X509_LOOKUP_new
  - X509_LOOKUP_free
  - X509_STORE_lock
  - X509_STORE_unlock
  - X509_LOOKUP_init
  - X509_LOOKUP_shutdown
  - X509_LOOKUP_ctrl
  - X509_LOOKUP_by_subject
  - X509_LOOKUP_by_issuer_serial
  - X509_LOOKUP_by_fingerprint
  - X509_LOOKUP_by_alias
  - x509_object_cmp
  - X509_STORE_new
  - cleanup
  - X509_STORE_free
  - X509_STORE_up_ref
  - X509_STORE_add_lookup
  - X509_STORE_CTX_get_obj_by_subject
  - X509_STORE_CTX_get_by_subject
  - X509_STORE_add_cert
  - X509_STORE_add_crl
  - X509_OBJECT_up_ref_count
  - X509_OBJECT_get0_X509
  - X509_OBJECT_get0_X509_CRL
  - X509_OBJECT_get_type
  - X509_OBJECT_new
  - X509_OBJECT_free
  - X509_STORE_CTX_get1_issuer
  - X509_STORE_set_flags
  - X509_STORE_set_depth
  - X509_STORE_set_purpose
  - X509_STORE_set_trust
  - X509_STORE_set1_param
  - X509_STORE_get0_param
  - X509_STORE_set_verify
  - X509_STORE_get_verify
  - X509_STORE_set_verify_cb
  - X509_STORE_get_verify_cb
  - X509_STORE_set_get_issuer
  - X509_STORE_get_get_issuer
  - X509_STORE_set_check_issued
  - X509_STORE_get_check_issued
  - X509_STORE_set_check_revocation
  - X509_STORE_get_check_revocation
  - X509_STORE_set_get_crl
  - X509_STORE_get_get_crl
  - X509_STORE_set_check_crl
  - X509_STORE_get_check_crl
  - X509_STORE_set_cert_crl
  - X509_STORE_get_cert_crl
  - X509_STORE_set_check_policy
  - X509_STORE_get_check_policy
  - X509_STORE_set_lookup_certs
  - X509_STORE_get_lookup_certs
  - X509_STORE_set_lookup_crls
  - X509_STORE_get_lookup_crls
  - X509_STORE_set_cleanup
  - X509_STORE_get_cleanup
  - X509_STORE_set_ex_data
  - X509_STORE_get_ex_data
  - X509_STORE_CTX_get0_store
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_lu.c
- function_names:
  - X509_LOOKUP_file
  - by_file_ctrl
  - X509_load_cert_file
  - X509_load_crl_file
  - X509_load_cert_crl_file
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_file.c
- function_names:
  - X509_ATTRIBUTE_create
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_attrib.c
- function_names:
  - rinf_cb
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_req.c
- function_names:
  - X509_set_version
  - X509_set_serialNumber
  - X509_set_issuer_name
  - X509_set_subject_name
  - x509_set1_time
  - X509_set1_notBefore
  - X509_set1_notAfter
  - X509_set_pubkey
  - X509_up_ref
  - X509_get_version
  - X509_get0_notBefore
  - X509_get0_notAfter
  - X509_getm_notBefore
  - X509_getm_notAfter
  - X509_get_signature_type
  - X509_get_X509_PUBKEY
  - X509_get0_extensions
  - X509_get0_uids
  - X509_get0_tbs_sigalg
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_set.c
- function_names:
  - x509_cb
  - X509_set_ex_data
  - X509_get_ex_data
  - d2i_X509_AUX
  - i2d_x509_aux_internal
  - i2d_X509_AUX
  - i2d_re_X509_tbs
  - X509_get0_signature
  - X509_get_signature_nid
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_x509.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_exten.c
- function_names:
  - pubkey_cb
  - X509_PUBKEY_set
  - x509_pubkey_decode
  - X509_PUBKEY_get0
  - X509_PUBKEY_get
  - d2i_PUBKEY
  - i2d_PUBKEY
  - d2i_RSA_PUBKEY
  - i2d_RSA_PUBKEY
  - d2i_DSA_PUBKEY
  - i2d_DSA_PUBKEY
  - d2i_EC_PUBKEY
  - i2d_EC_PUBKEY
  - X509_PUBKEY_set0_param
  - X509_PUBKEY_get0_param
  - X509_get0_pubkey_bitstr
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_pubkey.c
- function_names:
  - X509_LOOKUP_hash_dir
  - dir_ctrl
  - new_dir
  - by_dir_hash_free
  - by_dir_hash_cmp
  - by_dir_entry_free
  - free_dir
  - add_cert_dir
  - get_cert_by_subject
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/by_dir.c
- function_names:
  - str_copy
  - str_free
  - int_x509_param_set_hosts
  - x509_verify_param_zero
  - X509_VERIFY_PARAM_new
  - X509_VERIFY_PARAM_free
  - X509_VERIFY_PARAM_inherit
  - X509_VERIFY_PARAM_set1
  - int_x509_param_set1
  - X509_VERIFY_PARAM_set1_name
  - X509_VERIFY_PARAM_set_flags
  - X509_VERIFY_PARAM_clear_flags
  - X509_VERIFY_PARAM_get_flags
  - X509_VERIFY_PARAM_get_inh_flags
  - X509_VERIFY_PARAM_set_inh_flags
  - X509_VERIFY_PARAM_set_purpose
  - X509_VERIFY_PARAM_set_trust
  - X509_VERIFY_PARAM_set_depth
  - X509_VERIFY_PARAM_set_auth_level
  - X509_VERIFY_PARAM_get_time
  - X509_VERIFY_PARAM_set_time
  - X509_VERIFY_PARAM_add0_policy
  - X509_VERIFY_PARAM_set1_host
  - X509_VERIFY_PARAM_add1_host
  - X509_VERIFY_PARAM_set_hostflags
  - X509_VERIFY_PARAM_get0_peername
  - X509_VERIFY_PARAM_move_peername
  - X509_VERIFY_PARAM_set1_email
  - X509_VERIFY_PARAM_set1_ip
  - X509_VERIFY_PARAM_set1_ip_asc
  - X509_VERIFY_PARAM_get_depth
  - X509_VERIFY_PARAM_get_auth_level
  - X509_VERIFY_PARAM_get0_name
  - table_cmp
  - param_cmp
  - X509_VERIFY_PARAM_add0_table
  - X509_VERIFY_PARAM_get_count
  - X509_VERIFY_PARAM_get0
  - X509_VERIFY_PARAM_lookup
  - X509_VERIFY_PARAM_table_cleanup
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vpm.c
- function_names:
  - X509_print_fp
  - X509_print_ex_fp
  - X509_print
  - X509_print_ex
  - X509_ocspid_print
  - X509_signature_dump
  - X509_signature_print
  - X509_aux_print
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_x509.c
- function_names:
  - null_callback
  - cert_self_signed
  - lookup_cert_match
  - verify_cb_cert
  - verify_cb_crl
  - check_auth_level
  - verify_chain
  - X509_verify_cert
  - find_issuer
  - check_issued
  - get_issuer_sk
  - lookup_certs_sk
  - check_purpose
  - check_chain_extensions
  - check_name_constraints
  - check_id_error
  - check_hosts
  - check_id
  - check_trust
  - check_revocation
  - check_cert
  - check_crl_time
  - get_crl_sk
  - crl_extension_match
  - check_delta_base
  - get_delta_sk
  - get_crl_score
  - crl_akid_check
  - check_crl_path
  - idp_check_dp
  - crldp_check_crlissuer
  - crl_crldp_check
  - get_crl_delta
  - check_crl
  - cert_crl
  - check_policy
  - x509_check_cert_time
  - internal_verify
  - X509_cmp_current_time
  - X509_cmp_time
  - X509_gmtime_adj
  - X509_time_adj
  - X509_time_adj_ex
  - X509_CRL_diff
  - X509_STORE_CTX_set_ex_data
  - X509_STORE_CTX_get_ex_data
  - X509_STORE_CTX_get_error
  - X509_STORE_CTX_set_error
  - X509_STORE_CTX_get_error_depth
  - X509_STORE_CTX_set_error_depth
  - X509_STORE_CTX_get_current_cert
  - X509_STORE_CTX_set_current_cert
  - X509_STORE_CTX_get0_current_issuer
  - X509_STORE_CTX_get0_current_crl
  - X509_STORE_CTX_get0_parent_ctx
  - X509_STORE_CTX_set_cert
  - X509_STORE_CTX_set_purpose
  - X509_STORE_CTX_set_trust
  - X509_STORE_CTX_purpose_inherit
  - X509_STORE_CTX_new
  - X509_STORE_CTX_free
  - X509_STORE_CTX_cleanup
  - X509_STORE_CTX_set_depth
  - X509_STORE_CTX_set_flags
  - X509_STORE_CTX_set_time
  - X509_STORE_CTX_get0_cert
  - X509_STORE_CTX_set_verify_cb
  - X509_STORE_CTX_get_verify_cb
  - X509_STORE_CTX_set_verify
  - X509_STORE_CTX_get_verify
  - X509_STORE_CTX_get_get_issuer
  - X509_STORE_CTX_get_check_issued
  - X509_STORE_CTX_get_check_revocation
  - X509_STORE_CTX_get_get_crl
  - X509_STORE_CTX_get_check_crl
  - X509_STORE_CTX_get_cert_crl
  - X509_STORE_CTX_get_check_policy
  - X509_STORE_CTX_get_lookup_certs
  - X509_STORE_CTX_get_lookup_crls
  - X509_STORE_CTX_get_cleanup
  - X509_STORE_CTX_get0_policy_tree
  - X509_STORE_CTX_get_explicit_policy
  - X509_STORE_CTX_get_num_untrusted
  - X509_STORE_CTX_set_default
  - X509_STORE_CTX_get0_param
  - X509_STORE_CTX_set0_param
  - X509_STORE_CTX_set0_dane
  - dane_i2d
  - dane_match
  - check_dane_issuer
  - check_dane_pkeys
  - dane_reset
  - check_leaf_suiteb
  - dane_verify
  - get_issuer
  - build_chain
  - check_key_level
  - check_sig_level
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_vfy.c
- function_names:
  - crl_inf_cb
  - crl_set_issuers
  - crl_cb
  - setup_idp
  - X509_REVOKED_cmp
  - X509_CRL_add0_revoked
  - X509_CRL_verify
  - X509_CRL_get0_by_serial
  - X509_CRL_get0_by_cert
  - def_crl_verify
  - crl_revoked_issuer_match
  - def_crl_lookup
  - X509_CRL_set_default_method
  - X509_CRL_METHOD_new
  - X509_CRL_METHOD_free
  - X509_CRL_set_meth_data
  - X509_CRL_get_meth_data
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_crl.c
- function_names:
  - ERR_load_X509_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_err.c
- function_names:
  - X509_REQ_print_fp
  - X509_REQ_print_ex
  - X509_REQ_print
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_req.c
- function_names:
  - X509_CRL_print_fp
  - X509_CRL_print
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/t_crl.c
- function_names:
  - X509v3_get_ext_count
  - X509v3_get_ext_by_NID
  - X509v3_get_ext_by_OBJ
  - X509v3_get_ext_by_critical
  - X509v3_get_ext
  - X509_EXTENSION_create_by_NID
  - X509_EXTENSION_create_by_OBJ
  - X509_EXTENSION_set_object
  - X509_EXTENSION_set_critical
  - X509_EXTENSION_set_data
  - X509_EXTENSION_get_object
  - X509_EXTENSION_get_data
  - X509_EXTENSION_get_critical
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_v3.c
- function_names:
  - NETSCAPE_SPKI_set_pubkey
  - NETSCAPE_SPKI_get_pubkey
  - NETSCAPE_SPKI_b64_decode
  - NETSCAPE_SPKI_b64_encode
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509spki.c
- function_names:
  - x509_name_ex_new
  - x509_name_ex_free
  - x509_name_ex_d2i
  - x509_name_ex_i2d
  - x509_name_encode
  - x509_name_ex_print
  - x509_name_canon
  - asn1_string_canon
  - X509_NAME_set
  - X509_NAME_print
  - X509_NAME_get0_der
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x_name.c
- function_names:
  - X509_STORE_set_default_paths
  - X509_STORE_load_locations
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_d2.c
- function_names:
  - X509at_get_attr_count
  - X509at_get_attr_by_NID
  - X509at_get_attr_by_OBJ
  - X509at_get_attr
  - X509at_get0_data_by_OBJ
  - X509_ATTRIBUTE_create_by_NID
  - X509_ATTRIBUTE_create_by_OBJ
  - X509_ATTRIBUTE_create_by_txt
  - X509_ATTRIBUTE_set1_object
  - X509_ATTRIBUTE_set1_data
  - X509_ATTRIBUTE_count
  - X509_ATTRIBUTE_get0_object
  - X509_ATTRIBUTE_get0_data
  - X509_ATTRIBUTE_get0_type
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_att.c
- function_names:
  - X509_to_X509_REQ
  - X509_REQ_get_pubkey
  - X509_REQ_get0_pubkey
  - X509_REQ_get_X509_PUBKEY
  - X509_REQ_check_private_key
  - X509_REQ_extension_nid
  - X509_REQ_get_extension_nids
  - X509_REQ_set_extension_nids
  - X509_REQ_get_attr_count
  - X509_REQ_get_attr_by_NID
  - X509_REQ_get_attr_by_OBJ
  - X509_REQ_get_attr
  - X509_REQ_delete_attr
  - X509_REQ_add1_attr
  - X509_REQ_add1_attr_by_OBJ
  - X509_REQ_add1_attr_by_NID
  - X509_REQ_add1_attr_by_txt
  - X509_REQ_get_version
  - X509_REQ_get_subject_name
  - X509_REQ_get0_signature
  - X509_REQ_get_signature_nid
  - i2d_re_X509_REQ_tbs
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509/x509_req.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha1dgst.c
- function_names:
  - SHA384_Init
  - SHA512_Init
  - SHA512_Final
  - SHA384_Final
  - SHA512_Update
  - SHA384_Update
  - SHA512_Transform
  - SHA384
  - SHA512
  - __pull64be
  - __pull64be
  - sha512_block_data_order
  - sha512_block_data_order
  - sha512_block_data_order
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha512.c
- function_names:
  - HASH_INIT
  - HASH_BLOCK_DATA_ORDER
  - HASH_BLOCK_DATA_ORDER
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha_locl.h
- function_names:
  - SHA1
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha1_one.c
- function_names:
  - SHA224_Init
  - SHA256_Init
  - SHA224
  - SHA256
  - SHA224_Update
  - SHA224_Final
  - sha256_block_data_order
  - sha256_block_data_order
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/sha/sha256.c
- function_names:
  - SEED_ecb_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed_ecb.c
- function_names:
  - SEED_ofb128_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed_ofb.c
- function_names:
  - SEED_cfb128_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed_cfb.c
- function_names:
  - G_FUNC
  - SEED_set_key
  - SEED_encrypt
  - SEED_decrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed.c
- function_names:
  - SEED_cbc_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed_cbc.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/seed/seed_locl.h
- function_names:
  - chacha20_core
  - ChaCha20_ctr32
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/chacha/chacha_enc.c
- function_names:
  - d2i_dhp
  - i2d_dhp
  - int_dh_free
  - dh_pub_decode
  - dh_pub_encode
  - dh_priv_decode
  - dh_priv_encode
  - dh_param_decode
  - dh_param_encode
  - do_dh_print
  - int_dh_size
  - dh_bits
  - dh_security_bits
  - dh_cmp_parameters
  - int_dh_bn_cpy
  - int_dh_param_copy
  - DHparams_dup
  - dh_copy_parameters
  - dh_missing_parameters
  - dh_pub_cmp
  - dh_param_print
  - dh_public_print
  - dh_private_print
  - DHparams_print
  - dh_pkey_ctrl
  - dh_cms_set_peerkey
  - dh_cms_set_shared_info
  - dh_cms_decrypt
  - dh_cms_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_ameth.c
- function_names:
  - DH_meth_new
  - DH_meth_free
  - DH_meth_dup
  - DH_meth_get0_name
  - DH_meth_set1_name
  - DH_meth_get_flags
  - DH_meth_set_flags
  - DH_meth_get0_app_data
  - DH_meth_set0_app_data
  - (*DH_meth_get_generate_key(const DH_METHOD *dhm)) (DH *)
  - DH_meth_set_generate_key
  - "(*DH_meth_get_compute_key(const DH_METHOD *dhm))\n        (unsigned char *key,
    const BIGNUM *pub_key, DH *dh)"
  - DH_meth_set_compute_key
  - "(*DH_meth_get_bn_mod_exp(const DH_METHOD *dhm))\n    (const DH *, BIGNUM *, const
    BIGNUM *, const BIGNUM *, const BIGNUM *,\n     BN_CTX *, BN_MONT_CTX *)"
  - DH_meth_set_bn_mod_exp
  - (*DH_meth_get_init(const DH_METHOD *dhm))(DH *)
  - DH_meth_set_init
  - (*DH_meth_get_finish(const DH_METHOD *dhm)) (DH *)
  - DH_meth_set_finish
  - "(*DH_meth_get_generate_params(const DH_METHOD *dhm))\n        (DH *, int, int,
    BN_GENCB *)"
  - DH_meth_set_generate_params
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_meth.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_rfc5114.c
- function_names:
  - skip_asn1
  - dh_sharedinfo_encode
  - DH_KDF_X9_42
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_kdf.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_locl.h
- function_names:
  - DH_generate_parameters_ex
  - dh_builtin_genparams
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_gen.c
- function_names:
  - DH_generate_key
  - DH_compute_key
  - DH_compute_key_padded
  - DH_OpenSSL
  - generate_key
  - compute_key
  - dh_bn_mod_exp
  - dh_init
  - dh_finish
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_key.c
- function_names:
  - pkey_dh_init
  - pkey_dh_cleanup
  - pkey_dh_copy
  - pkey_dh_ctrl
  - pkey_dh_ctrl_str
  - dsa_dh_generate
  - pkey_dh_paramgen
  - pkey_dh_keygen
  - pkey_dh_derive
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_pmeth.c
- function_names:
  - ERR_load_DH_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_err.c
- function_names:
  - DH_generate_parameters
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_depr.c
- function_names:
  - DH_set_default_method
  - DH_get_default_method
  - DH_set_method
  - DH_new
  - DH_new_method
  - DH_free
  - DH_up_ref
  - DH_set_ex_data
  - DH_get_ex_data
  - DH_bits
  - DH_size
  - DH_security_bits
  - DH_get0_pqg
  - DH_set0_pqg
  - DH_get_length
  - DH_set_length
  - DH_get0_key
  - DH_set0_key
  - DH_clear_flags
  - DH_test_flags
  - DH_set_flags
  - DH_get0_engine
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_lib.c
- function_names:
  - dh_cb
  - d2i_DHxparams
  - i2d_DHxparams
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_asn1.c
- function_names:
  - DHparams_print_fp
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_prn.c
- function_names:
  - DH_check_params
  - DH_check
  - DH_check_pub_key
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dh/dh_check.c
- function_names:
  - pkey_ec_init
  - pkey_ec_copy
  - pkey_ec_cleanup
  - pkey_ec_sign
  - pkey_ec_verify
  - pkey_ec_derive
  - pkey_ec_kdf_derive
  - pkey_ec_ctrl
  - pkey_ec_ctrl_str
  - pkey_ec_paramgen
  - pkey_ec_keygen
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_pmeth.c
- function_names:
  - EC_GROUP_get_basis_type
  - EC_GROUP_get_trinomial_basis
  - EC_GROUP_get_pentanomial_basis
  - ec_asn1_group2fieldid
  - ec_asn1_group2curve
  - EC_GROUP_get_ecparameters
  - EC_GROUP_get_ecpkparameters
  - EC_GROUP_new_from_ecparameters
  - EC_GROUP_new_from_ecpkparameters
  - d2i_ECPKParameters
  - i2d_ECPKParameters
  - d2i_ECPrivateKey
  - i2d_ECPrivateKey
  - i2d_ECParameters
  - d2i_ECParameters
  - o2i_ECPublicKey
  - i2o_ECPublicKey
  - ECDSA_SIG_new
  - ECDSA_SIG_free
  - ECDSA_SIG_get0
  - ECDSA_SIG_set0
  - ECDSA_size
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_asn1.c
- function_names:
  - EC_GROUP_new_curve_GFp
  - EC_GROUP_new_curve_GF2m
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_cvt.c
- function_names:
  - EC_KEY_new
  - EC_KEY_new_by_curve_name
  - EC_KEY_free
  - EC_KEY_copy
  - EC_KEY_dup
  - EC_KEY_up_ref
  - EC_KEY_generate_key
  - ossl_ec_key_gen
  - ec_key_simple_generate_key
  - ec_key_simple_generate_public_key
  - EC_KEY_check_key
  - ec_key_simple_check_key
  - EC_KEY_set_public_key_affine_coordinates
  - EC_KEY_get0_group
  - EC_KEY_set_group
  - EC_KEY_get0_private_key
  - EC_KEY_set_private_key
  - EC_KEY_get0_public_key
  - EC_KEY_set_public_key
  - EC_KEY_get_enc_flags
  - EC_KEY_set_enc_flags
  - EC_KEY_get_conv_form
  - EC_KEY_set_conv_form
  - EC_KEY_set_asn1_flag
  - EC_KEY_precompute_mult
  - EC_KEY_get_flags
  - EC_KEY_set_flags
  - EC_KEY_clear_flags
  - EC_KEY_key2buf
  - EC_KEY_oct2key
  - EC_KEY_priv2oct
  - ec_key_simple_priv2oct
  - EC_KEY_oct2priv
  - ec_key_simple_oct2priv
  - EC_KEY_priv2buf
  - EC_KEY_can_sign
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_key.c
- function_names:
  - ossl_ecdsa_sign
  - ecdsa_sign_setup
  - ossl_ecdsa_sign_setup
  - ossl_ecdsa_sign_sig
  - ossl_ecdsa_verify
  - ossl_ecdsa_verify_sig
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_ossl.c
- function_names:
  - EC_GFp_nistp224_method
  - bin28_to_felem
  - felem_to_bin28
  - flip_endian
  - BN_to_felem
  - felem_to_BN
  - felem_one
  - felem_assign
  - felem_sum
  - felem_neg
  - felem_diff
  - widefelem_diff
  - felem_diff_128_64
  - felem_scalar
  - widefelem_scalar
  - felem_square
  - felem_mul
  - felem_reduce
  - felem_square_reduce
  - felem_mul_reduce
  - felem_contract
  - felem_is_zero
  - felem_is_zero_int
  - felem_inv
  - copy_conditional
  - point_double
  - point_add
  - select_point
  - get_bit
  - batch_mul
  - nistp224_pre_comp_new
  - EC_nistp224_pre_comp_dup
  - EC_nistp224_pre_comp_free
  - ec_GFp_nistp224_group_init
  - ec_GFp_nistp224_group_set_curve
  - ec_GFp_nistp224_point_get_affine_coordinates
  - make_points_affine
  - ec_GFp_nistp224_points_mul
  - ec_GFp_nistp224_precompute_mult
  - ec_GFp_nistp224_have_precompute_mult
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp224.c
- function_names:
  - ECPKParameters_print_fp
  - EC_KEY_print_fp
  - ECParameters_print_fp
  - ECPKParameters_print
  - print_bin
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/eck_prn.c
- function_names:
  - load_3
  - load_4
  - fe_frombytes
  - fe_tobytes
  - fe_copy
  - fe_0
  - fe_1
  - fe_add
  - fe_sub
  - fe_mul
  - fe_sq
  - fe_invert
  - fe_neg
  - fe_cmov
  - fe_sq2
  - ge_p3_0
  - ge_precomp_0
  - ge_p3_to_p2
  - ge_p1p1_to_p2
  - ge_p1p1_to_p3
  - ge_p2_dbl
  - ge_p3_dbl
  - ge_madd
  - equal
  - cmov
  - negative
  - table_select
  - ge_scalarmult_base
  - fe_cswap
  - fe_mul121666
  - x25519_scalar_mult_generic
  - x25519_scalar_mult
  - X25519
  - X25519_public_from_private
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/curve25519.c
- function_names:
  - EC_KEY_OpenSSL
  - EC_KEY_get_default_method
  - EC_KEY_set_default_method
  - EC_KEY_get_method
  - EC_KEY_set_method
  - EC_KEY_new_method
  - ECDH_compute_key
  - EC_KEY_METHOD_new
  - EC_KEY_METHOD_free
  - EC_KEY_METHOD_set_init
  - EC_KEY_METHOD_set_keygen
  - EC_KEY_METHOD_set_compute_key
  - EC_KEY_METHOD_set_sign
  - EC_KEY_METHOD_set_verify
  - EC_KEY_METHOD_get_init
  - EC_KEY_METHOD_get_keygen
  - EC_KEY_METHOD_get_compute_key
  - EC_KEY_METHOD_get_sign
  - EC_KEY_METHOD_get_verify
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_kmeth.c
- function_names:
  - ERR_load_EC_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_err.c
- function_names:
  - EC_POINT_set_compressed_coordinates_GFp
  - EC_POINT_set_compressed_coordinates_GF2m
  - EC_POINT_point2oct
  - EC_POINT_oct2point
  - EC_POINT_point2buf
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_oct.c
- function_names:
  - ec_GF2m_simple_set_compressed_coordinates
  - ec_GF2m_simple_point2oct
  - ec_GF2m_simple_oct2point
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_oct.c
- function_names:
  - bin32_to_felem
  - smallfelem_to_bin32
  - flip_endian
  - BN_to_felem
  - smallfelem_to_BN
  - smallfelem_one
  - smallfelem_assign
  - felem_assign
  - felem_sum
  - felem_small_sum
  - felem_scalar
  - longfelem_scalar
  - smallfelem_neg
  - felem_diff
  - felem_diff_zero107
  - longfelem_diff
  - felem_shrink
  - smallfelem_expand
  - smallfelem_square
  - felem_square
  - smallfelem_mul
  - felem_mul
  - felem_small_mul
  - felem_reduce_
  - felem_reduce
  - felem_reduce_zero105
  - subtract_u64
  - felem_contract
  - smallfelem_square_contract
  - smallfelem_mul_contract
  - smallfelem_is_zero
  - smallfelem_is_zero_int
  - felem_inv
  - smallfelem_inv_contract
  - point_double
  - point_double_small
  - copy_conditional
  - copy_small_conditional
  - point_add
  - point_add_small
  - select_point
  - get_bit
  - batch_mul
  - EC_GFp_nistp256_method
  - nistp256_pre_comp_new
  - EC_nistp256_pre_comp_dup
  - EC_nistp256_pre_comp_free
  - ec_GFp_nistp256_group_init
  - ec_GFp_nistp256_group_set_curve
  - ec_GFp_nistp256_point_get_affine_coordinates
  - make_points_affine
  - ec_GFp_nistp256_points_mul
  - ec_GFp_nistp256_precompute_mult
  - ec_GFp_nistp256_have_precompute_mult
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp256.c
- function_names:
  - EC_GFp_nist_method
  - ec_GFp_nist_group_copy
  - ec_GFp_nist_group_set_curve
  - ec_GFp_nist_field_mul
  - ec_GFp_nist_field_sqr
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nist.c
- function_names:
  - EC_GFp_simple_method
  - ec_GFp_simple_group_init
  - ec_GFp_simple_group_finish
  - ec_GFp_simple_group_clear_finish
  - ec_GFp_simple_group_copy
  - ec_GFp_simple_group_set_curve
  - ec_GFp_simple_group_get_curve
  - ec_GFp_simple_group_get_degree
  - ec_GFp_simple_group_check_discriminant
  - ec_GFp_simple_point_init
  - ec_GFp_simple_point_finish
  - ec_GFp_simple_point_clear_finish
  - ec_GFp_simple_point_copy
  - ec_GFp_simple_point_set_to_infinity
  - ec_GFp_simple_set_Jprojective_coordinates_GFp
  - ec_GFp_simple_get_Jprojective_coordinates_GFp
  - ec_GFp_simple_point_set_affine_coordinates
  - ec_GFp_simple_point_get_affine_coordinates
  - ec_GFp_simple_add
  - ec_GFp_simple_dbl
  - ec_GFp_simple_invert
  - ec_GFp_simple_is_at_infinity
  - ec_GFp_simple_is_on_curve
  - ec_GFp_simple_cmp
  - ec_GFp_simple_make_affine
  - ec_GFp_simple_points_make_affine
  - ec_GFp_simple_field_mul
  - ec_GFp_simple_field_sqr
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_smpl.c
- function_names:
  - ECDSA_do_sign
  - ECDSA_do_sign_ex
  - ECDSA_sign
  - ECDSA_sign_ex
  - ECDSA_sign_setup
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_sign.c
- function_names:
  - ec_pre_comp_new
  - EC_ec_pre_comp_dup
  - EC_ec_pre_comp_free
  - ec_wNAF_mul
  - ec_wNAF_precompute_mult
  - ec_wNAF_have_precompute_mult
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_mult.c
- function_names:
  - gf2m_Mdouble
  - gf2m_Madd
  - gf2m_Mxy
  - ec_GF2m_montgomery_point_multiply
  - ec_GF2m_simple_mul
  - ec_GF2m_precompute_mult
  - ec_GF2m_have_precompute_mult
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_mult.c
- function_names:
  - ec_GFp_simple_set_compressed_coordinates
  - ec_GFp_simple_point2oct
  - ec_GFp_simple_oct2point
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_oct.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256_table.c
- function_names:
  - EC_GFp_mont_method
  - ec_GFp_mont_group_init
  - ec_GFp_mont_group_finish
  - ec_GFp_mont_group_clear_finish
  - ec_GFp_mont_group_copy
  - ec_GFp_mont_group_set_curve
  - ec_GFp_mont_field_mul
  - ec_GFp_mont_field_sqr
  - ec_GFp_mont_field_encode
  - ec_GFp_mont_field_decode
  - ec_GFp_mont_field_set_to_one
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_mont.c
- function_names:
  - EC_POINT_point2bn
  - EC_POINT_bn2point
  - EC_POINT_point2hex
  - EC_POINT_hex2point
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_print.c
- function_names:
  - EC_GROUP_check
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_check.c
- function_names:
  - ec_group_new_from_data
  - EC_GROUP_new_by_curve_name
  - EC_get_builtin_curves
  - EC_curve_nid2nist
  - EC_curve_nist2nid
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_curve.c
- function_names:
  - ec_GFp_nistp_points_make_affine_internal
  - ec_GFp_nistp_recode_scalar_bits
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistputil.c
- function_names:
  - ecx_key_op
  - ecx_pub_encode
  - ecx_pub_decode
  - ecx_pub_cmp
  - ecx_priv_decode
  - ecx_priv_encode
  - ecx_size
  - ecx_bits
  - ecx_security_bits
  - ecx_free
  - ecx_cmp_parameters
  - ecx_key_print
  - ecx_priv_print
  - ecx_pub_print
  - ecx_ctrl
  - pkey_ecx_keygen
  - pkey_ecx_derive
  - pkey_ecx_ctrl
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecx_meth.c
- function_names:
  - bin66_to_felem
  - felem_to_bin66
  - flip_endian
  - BN_to_felem
  - felem_to_BN
  - felem_one
  - felem_assign
  - felem_sum64
  - felem_scalar
  - felem_scalar64
  - felem_scalar128
  - felem_neg
  - felem_diff64
  - felem_diff_128_64
  - felem_diff128
  - felem_square
  - felem_mul
  - felem_reduce
  - felem_square_reduce
  - felem_mul_reduce
  - felem_inv
  - felem_is_zero
  - felem_is_zero_int
  - felem_contract
  - point_double
  - copy_conditional
  - point_add
  - select_point
  - get_bit
  - batch_mul
  - EC_GFp_nistp521_method
  - nistp521_pre_comp_new
  - EC_nistp521_pre_comp_dup
  - EC_nistp521_pre_comp_free
  - ec_GFp_nistp521_group_init
  - ec_GFp_nistp521_group_set_curve
  - ec_GFp_nistp521_point_get_affine_coordinates
  - make_points_affine
  - ec_GFp_nistp521_points_mul
  - ec_GFp_nistp521_precompute_mult
  - ec_GFp_nistp521_have_precompute_mult
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistp521.c
- function_names:
  - ECDSA_do_verify
  - ECDSA_verify
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdsa_vrf.c
- function_names:
  - _booth_recode_w5
  - _booth_recode_w7
  - copy_conditional
  - is_zero
  - is_equal
  - is_one
  - ecp_nistz256_point_double
  - ecp_nistz256_point_add
  - ecp_nistz256_point_add_affine
  - ecp_nistz256_mod_inverse
  - ecp_nistz256_bignum_to_field_elem
  - ecp_nistz256_windowed_mul
  - ecp_nistz256_is_affine_G
  - ecp_nistz256_mult_precompute
  - booth_recode_w7
  - ecp_nistz256_avx2_mul_g
  - ecp_nistz256_set_from_affine
  - ecp_nistz256_points_mul
  - ecp_nistz256_get_affine
  - ecp_nistz256_pre_comp_new
  - EC_nistz256_pre_comp_dup
  - EC_nistz256_pre_comp_free
  - ecp_nistz256_window_have_precompute_mult
  - EC_GFp_nistz256_method
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecp_nistz256.c
- function_names:
  - EC_GROUP_new
  - EC_pre_comp_free
  - EC_GROUP_free
  - EC_GROUP_clear_free
  - EC_GROUP_copy
  - EC_GROUP_dup
  - EC_GROUP_method_of
  - EC_METHOD_get_field_type
  - EC_GROUP_set_generator
  - EC_GROUP_get0_generator
  - EC_GROUP_get_mont_data
  - EC_GROUP_get_order
  - EC_GROUP_get0_order
  - EC_GROUP_order_bits
  - EC_GROUP_get_cofactor
  - EC_GROUP_get0_cofactor
  - EC_GROUP_set_curve_name
  - EC_GROUP_get_curve_name
  - EC_GROUP_set_asn1_flag
  - EC_GROUP_get_asn1_flag
  - EC_GROUP_set_point_conversion_form
  - EC_GROUP_get_point_conversion_form
  - EC_GROUP_set_seed
  - EC_GROUP_get0_seed
  - EC_GROUP_get_seed_len
  - EC_GROUP_set_curve_GFp
  - EC_GROUP_get_curve_GFp
  - EC_GROUP_set_curve_GF2m
  - EC_GROUP_get_curve_GF2m
  - EC_GROUP_get_degree
  - EC_GROUP_check_discriminant
  - EC_GROUP_cmp
  - EC_POINT_new
  - EC_POINT_free
  - EC_POINT_clear_free
  - EC_POINT_copy
  - EC_POINT_dup
  - EC_POINT_method_of
  - EC_POINT_set_to_infinity
  - EC_POINT_set_Jprojective_coordinates_GFp
  - EC_POINT_get_Jprojective_coordinates_GFp
  - EC_POINT_set_affine_coordinates_GFp
  - EC_POINT_set_affine_coordinates_GF2m
  - EC_POINT_get_affine_coordinates_GFp
  - EC_POINT_get_affine_coordinates_GF2m
  - EC_POINT_add
  - EC_POINT_dbl
  - EC_POINT_invert
  - EC_POINT_is_at_infinity
  - EC_POINT_is_on_curve
  - EC_POINT_cmp
  - EC_POINT_make_affine
  - EC_POINTs_make_affine
  - EC_POINTs_mul
  - EC_POINT_mul
  - EC_GROUP_precompute_mult
  - EC_GROUP_have_precompute_mult
  - ec_precompute_mont_data
  - EC_KEY_set_ex_data
  - EC_KEY_get_ex_data
  - ec_group_simple_order_bits
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lib.c
- function_names:
  - ossl_ecdh_compute_key
  - ecdh_simple_compute_key
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_ossl.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_lcl.h
- function_names:
  - eckey_param2type
  - eckey_pub_encode
  - eckey_type2param
  - eckey_pub_decode
  - eckey_pub_cmp
  - eckey_priv_decode
  - eckey_priv_encode
  - int_ec_size
  - ec_bits
  - ec_security_bits
  - ec_missing_parameters
  - ec_copy_parameters
  - ec_cmp_parameters
  - int_ec_free
  - do_EC_KEY_print
  - eckey_param_decode
  - eckey_param_encode
  - eckey_param_print
  - eckey_pub_print
  - eckey_priv_print
  - old_ec_priv_decode
  - old_ec_priv_encode
  - ec_pkey_ctrl
  - EC_KEY_print
  - ECParameters_print
  - ecdh_cms_set_peerkey
  - ecdh_cms_set_kdf_param
  - ecdh_cms_set_shared_info
  - ecdh_cms_decrypt
  - ecdh_cms_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec_ameth.c
- function_names:
  - EC_GF2m_simple_method
  - ec_GF2m_simple_group_init
  - ec_GF2m_simple_group_finish
  - ec_GF2m_simple_group_clear_finish
  - ec_GF2m_simple_group_copy
  - ec_GF2m_simple_group_set_curve
  - ec_GF2m_simple_group_get_curve
  - ec_GF2m_simple_group_get_degree
  - ec_GF2m_simple_group_check_discriminant
  - ec_GF2m_simple_point_init
  - ec_GF2m_simple_point_finish
  - ec_GF2m_simple_point_clear_finish
  - ec_GF2m_simple_point_copy
  - ec_GF2m_simple_point_set_to_infinity
  - ec_GF2m_simple_point_set_affine_coordinates
  - ec_GF2m_simple_point_get_affine_coordinates
  - ec_GF2m_simple_add
  - ec_GF2m_simple_dbl
  - ec_GF2m_simple_invert
  - ec_GF2m_simple_is_at_infinity
  - ec_GF2m_simple_is_on_curve
  - ec_GF2m_simple_cmp
  - ec_GF2m_simple_make_affine
  - ec_GF2m_simple_points_make_affine
  - ec_GF2m_simple_field_mul
  - ec_GF2m_simple_field_sqr
  - ec_GF2m_simple_field_div
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ec2_smpl.c
- function_names:
  - ECDH_KDF_X9_62
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ec/ecdh_kdf.c
- function_names:
  - i2r_ocsp_crlid
  - i2r_ocsp_acutoff
  - i2r_object
  - ocsp_nonce_new
  - i2d_ocsp_nonce
  - d2i_ocsp_nonce
  - ocsp_nonce_free
  - i2r_ocsp_nonce
  - i2r_ocsp_nocheck
  - s2i_ocsp_nocheck
  - i2r_ocsp_serviceloc
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/v3_ocsp.c
- function_names:
  - OCSP_REQUEST_get_ext_count
  - OCSP_REQUEST_get_ext_by_NID
  - OCSP_REQUEST_get_ext_by_OBJ
  - OCSP_REQUEST_get_ext_by_critical
  - OCSP_REQUEST_get_ext
  - OCSP_REQUEST_delete_ext
  - OCSP_REQUEST_get1_ext_d2i
  - OCSP_REQUEST_add1_ext_i2d
  - OCSP_REQUEST_add_ext
  - OCSP_ONEREQ_get_ext_count
  - OCSP_ONEREQ_get_ext_by_NID
  - OCSP_ONEREQ_get_ext_by_OBJ
  - OCSP_ONEREQ_get_ext_by_critical
  - OCSP_ONEREQ_get_ext
  - OCSP_ONEREQ_delete_ext
  - OCSP_ONEREQ_get1_ext_d2i
  - OCSP_ONEREQ_add1_ext_i2d
  - OCSP_ONEREQ_add_ext
  - OCSP_BASICRESP_get_ext_count
  - OCSP_BASICRESP_get_ext_by_NID
  - OCSP_BASICRESP_get_ext_by_OBJ
  - OCSP_BASICRESP_get_ext_by_critical
  - OCSP_BASICRESP_get_ext
  - OCSP_BASICRESP_delete_ext
  - OCSP_BASICRESP_get1_ext_d2i
  - OCSP_BASICRESP_add1_ext_i2d
  - OCSP_BASICRESP_add_ext
  - OCSP_SINGLERESP_get_ext_count
  - OCSP_SINGLERESP_get_ext_by_NID
  - OCSP_SINGLERESP_get_ext_by_OBJ
  - OCSP_SINGLERESP_get_ext_by_critical
  - OCSP_SINGLERESP_get_ext
  - OCSP_SINGLERESP_delete_ext
  - OCSP_SINGLERESP_get1_ext_d2i
  - OCSP_SINGLERESP_add1_ext_i2d
  - OCSP_SINGLERESP_add_ext
  - OCSP_request_add1_nonce
  - OCSP_basic_add1_nonce
  - OCSP_check_nonce
  - OCSP_copy_nonce
  - OCSP_crlID_new
  - OCSP_accept_responses_new
  - OCSP_archive_cutoff_new
  - OCSP_url_svcloc_new
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ext.c
- function_names:
  - ocsp_find_signer_sk
  - ocsp_check_delegated
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_vfy.c
- function_names:
  - OCSP_request_onereq_count
  - OCSP_request_onereq_get0
  - OCSP_onereq_get0_id
  - OCSP_id_get0_info
  - OCSP_request_is_signed
  - OCSP_response_create
  - OCSP_basic_add1_status
  - OCSP_basic_add1_cert
  - OCSP_basic_sign
  - OCSP_RESPID_set_by_name
  - OCSP_RESPID_set_by_key
  - OCSP_RESPID_match
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_srv.c
- function_names:
  - OCSP_cert_to_id
  - OCSP_cert_id_new
  - OCSP_id_issuer_cmp
  - OCSP_id_cmp
  - OCSP_parse_url
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lib.c
- function_names:
  - ocsp_certid_print
  - do_table2string
  - OCSP_response_status_str
  - OCSP_cert_status_str
  - OCSP_crl_reason_str
  - OCSP_REQUEST_print
  - OCSP_RESPONSE_print
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_prn.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_asn.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_lcl.h
- function_names:
  - OCSP_REQ_CTX_new
  - OCSP_REQ_CTX_free
  - OCSP_REQ_CTX_get0_mem_bio
  - OCSP_set_max_response_length
  - OCSP_REQ_CTX_i2d
  - OCSP_REQ_CTX_nbio_d2i
  - OCSP_REQ_CTX_http
  - OCSP_REQ_CTX_set1_req
  - OCSP_REQ_CTX_add1_header
  - OCSP_sendreq_new
  - parse_http_line1
  - OCSP_REQ_CTX_nbio
  - OCSP_sendreq_nbio
  - OCSP_sendreq_bio
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_ht.c
- function_names:
  - OCSP_request_add0_id
  - OCSP_request_set1_name
  - OCSP_request_add1_cert
  - OCSP_request_sign
  - OCSP_response_status
  - OCSP_response_get1_basic
  - OCSP_resp_get0_signature
  - OCSP_resp_count
  - OCSP_resp_get0
  - OCSP_resp_get0_produced_at
  - OCSP_resp_get0_certs
  - OCSP_resp_get0_id
  - OCSP_resp_find
  - OCSP_single_get0_status
  - OCSP_resp_find_status
  - OCSP_check_validity
  - OCSP_SINGLERESP_get0_id
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_cl.c
- function_names:
  - ERR_load_OCSP_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ocsp/ocsp_err.c
- function_names:
  - MD4
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_one.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_locl.h
- function_names:
  - MD4_Init
  - md4_block_data_order
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/md4/md4_dgst.c
- function_names:
  - OPENSSL_LH_stats
  - OPENSSL_LH_node_stats
  - OPENSSL_LH_node_usage_stats
  - OPENSSL_LH_stats_bio
  - OPENSSL_LH_node_stats_bio
  - OPENSSL_LH_node_usage_stats_bio
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lh_stats.c
- function_names:
  - OPENSSL_LH_new
  - OPENSSL_LH_free
  - OPENSSL_LH_insert
  - OPENSSL_LH_delete
  - OPENSSL_LH_retrieve
  - doall_util_fn
  - OPENSSL_LH_doall
  - OPENSSL_LH_doall_arg
  - expand
  - contract
  - getrn
  - OPENSSL_LH_strhash
  - OPENSSL_LH_num_items
  - OPENSSL_LH_get_down_load
  - OPENSSL_LH_set_down_load
  - OPENSSL_LH_error
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/lhash/lhash_lcl.h
- function_names:
  - DSA_OpenSSL
  - dsa_do_sign
  - dsa_sign_setup_no_digest
  - dsa_sign_setup
  - dsa_do_verify
  - dsa_init
  - dsa_finish
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ossl.c
- function_names:
  - DSA_set_default_method
  - DSA_get_default_method
  - DSA_new
  - DSA_set_method
  - DSA_get_method
  - DSA_new_method
  - DSA_free
  - DSA_up_ref
  - DSA_size
  - DSA_set_ex_data
  - DSA_get_ex_data
  - DSA_security_bits
  - DSA_dup_DH
  - DSA_get0_pqg
  - DSA_set0_pqg
  - DSA_get0_key
  - DSA_set0_key
  - DSA_clear_flags
  - DSA_test_flags
  - DSA_set_flags
  - DSA_get0_engine
  - DSA_bits
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_lib.c
- function_names:
  - dsa_pub_decode
  - dsa_pub_encode
  - dsa_priv_decode
  - dsa_priv_encode
  - int_dsa_size
  - dsa_bits
  - dsa_security_bits
  - dsa_missing_parameters
  - dsa_copy_parameters
  - dsa_cmp_parameters
  - dsa_pub_cmp
  - int_dsa_free
  - do_dsa_print
  - dsa_param_decode
  - dsa_param_encode
  - dsa_param_print
  - dsa_pub_print
  - dsa_priv_print
  - old_dsa_priv_decode
  - old_dsa_priv_encode
  - dsa_sig_print
  - dsa_pkey_ctrl
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_ameth.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_locl.h
- function_names:
  - DSA_do_verify
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_vrf.c
- function_names:
  - DSA_print_fp
  - DSAparams_print_fp
  - DSA_print
  - DSAparams_print
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_prn.c
- function_names:
  - DSA_do_sign
  - DSA_sign_setup
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_sign.c
- function_names:
  - ERR_load_DSA_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_err.c
- function_names:
  - DSA_generate_parameters
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_depr.c
- function_names:
  - DSA_SIG_new
  - DSA_SIG_free
  - DSA_SIG_get0
  - DSA_SIG_set0
  - dsa_cb
  - DSAparams_dup
  - DSA_sign
  - DSA_verify
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_asn1.c
- function_names:
  - DSA_meth_new
  - DSA_meth_free
  - DSA_meth_dup
  - DSA_meth_get0_name
  - DSA_meth_set1_name
  - DSA_meth_get_flags
  - DSA_meth_set_flags
  - DSA_meth_get0_app_data
  - DSA_meth_set0_app_data
  - "*(*DSA_meth_get_sign(const DSA_METHOD *dsam))\n        (const unsigned char *,
    int, DSA *)"
  - DSA_meth_set_sign
  - "(*DSA_meth_get_sign_setup(const DSA_METHOD *dsam))\n        (DSA *, BN_CTX *,
    BIGNUM **, BIGNUM **)"
  - DSA_meth_set_sign_setup
  - "(*DSA_meth_get_verify(const DSA_METHOD *dsam))\n        (const unsigned char
    *, int , DSA_SIG *, DSA *)"
  - DSA_meth_set_verify
  - "(*DSA_meth_get_mod_exp(const DSA_METHOD *dsam))\n        (DSA *, BIGNUM *, const
    BIGNUM *, const BIGNUM *, const BIGNUM *,\n         const BIGNUM *, const BIGNUM
    *, BN_CTX *, BN_MONT_CTX *)"
  - DSA_meth_set_mod_exp
  - "(*DSA_meth_get_bn_mod_exp(const DSA_METHOD *dsam))\n    (DSA *, BIGNUM *, const
    BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *,\n     BN_MONT_CTX *)"
  - DSA_meth_set_bn_mod_exp
  - (*DSA_meth_get_init(const DSA_METHOD *dsam))(DSA *)
  - DSA_meth_set_init
  - (*DSA_meth_get_finish(const DSA_METHOD *dsam)) (DSA *)
  - DSA_meth_set_finish
  - "(*DSA_meth_get_paramgen(const DSA_METHOD *dsam))\n        (DSA *, int, const
    unsigned char *, int, int *, unsigned long *,\n         BN_GENCB *)"
  - DSA_meth_set_paramgen
  - (*DSA_meth_get_keygen(const DSA_METHOD *dsam)) (DSA *)
  - DSA_meth_set_keygen
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_meth.c
- function_names:
  - DSA_generate_parameters_ex
  - dsa_builtin_paramgen
  - dsa_builtin_paramgen2
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_gen.c
- function_names:
  - DSA_generate_key
  - dsa_builtin_keygen
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_key.c
- function_names:
  - pkey_dsa_init
  - pkey_dsa_copy
  - pkey_dsa_cleanup
  - pkey_dsa_sign
  - pkey_dsa_verify
  - pkey_dsa_ctrl
  - pkey_dsa_ctrl_str
  - pkey_dsa_paramgen
  - pkey_dsa_keygen
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/dsa/dsa_pmeth.c
- function_names:
  - Camellia_cfb128_encrypt
  - Camellia_cfb1_encrypt
  - Camellia_cfb8_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_cfb.c
- function_names:
  - Camellia_Ekeygen
  - Camellia_EncryptBlock_Rounds
  - Camellia_EncryptBlock
  - Camellia_DecryptBlock_Rounds
  - Camellia_DecryptBlock
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/camellia.c
- function_names:
  - Camellia_ofb128_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_ofb.c
- function_names:
  - Camellia_ctr128_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_ctr.c
- function_names:
  - Camellia_set_key
  - Camellia_encrypt
  - Camellia_decrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_misc.c
- function_names:
  - Camellia_ecb_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_ecb.c
- function_names:
  - Camellia_cbc_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_cbc.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/camellia/cmll_locl.h
- function_names:
  - MD5_Init
  - md5_block_data_order
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_dgst.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_locl.h
- function_names:
  - MD5
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/md5/md5_one.c
- function_names:
  - BIO_s_log
  - slg_new
  - slg_free
  - slg_write
  - slg_ctrl
  - slg_puts
  - xopenlog
  - xsyslog
  - xcloselog
  - xopenlog
  - xsyslog
  - xcloselog
  - xopenlog
  - xsyslog
  - xcloselog
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_log.c
- function_names:
  - BIO_new_fd
  - BIO_fd_non_fatal_error
  - BIO_fd_should_retry
  - BIO_s_fd
  - BIO_s_fd
  - BIO_new_fd
  - fd_new
  - fd_free
  - fd_read
  - fd_write
  - fd_ctrl
  - fd_puts
  - fd_gets
  - BIO_fd_should_retry
  - BIO_fd_non_fatal_error
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_fd.c
- function_names:
  - BIO_s_null
  - null_new
  - null_free
  - null_read
  - null_write
  - null_ctrl
  - null_gets
  - null_puts
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_null.c
- function_names:
  - BIO_s_socket
  - BIO_new_socket
  - sock_new
  - sock_free
  - sock_read
  - sock_write
  - sock_ctrl
  - sock_puts
  - BIO_sock_should_retry
  - BIO_sock_non_fatal_error
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_sock.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lcl.h
- function_names:
  - conn_state
  - BIO_CONNECT_new
  - BIO_CONNECT_free
  - BIO_s_connect
  - conn_new
  - conn_close_socket
  - conn_free
  - conn_read
  - conn_write
  - conn_ctrl
  - conn_callback_ctrl
  - conn_puts
  - BIO_new_connect
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_conn.c
- function_names:
  - BIO_f_buffer
  - buffer_new
  - buffer_free
  - buffer_read
  - buffer_write
  - buffer_ctrl
  - buffer_callback_ctrl
  - buffer_gets
  - buffer_puts
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_buff.c
- function_names:
  - BIO_s_mem
  - BIO_s_secmem
  - BIO_new_mem_buf
  - mem_init
  - mem_new
  - secmem_new
  - mem_free
  - mem_buf_free
  - mem_buf_sync
  - mem_read
  - mem_write
  - mem_ctrl
  - mem_gets
  - mem_puts
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_mem.c
- function_names:
  - BIO_new
  - BIO_free
  - BIO_set_data
  - BIO_get_data
  - BIO_set_init
  - BIO_get_init
  - BIO_set_shutdown
  - BIO_get_shutdown
  - BIO_vfree
  - BIO_up_ref
  - BIO_clear_flags
  - BIO_test_flags
  - BIO_set_flags
  - "(*BIO_get_callback(const BIO *b)) (struct bio_st *, int, const char *,\n                                        int,
    long, long)"
  - BIO_set_callback
  - BIO_set_callback_arg
  - BIO_get_callback_arg
  - BIO_method_name
  - BIO_method_type
  - BIO_read
  - BIO_write
  - BIO_puts
  - BIO_gets
  - BIO_indent
  - BIO_int_ctrl
  - BIO_ptr_ctrl
  - BIO_ctrl
  - BIO_callback_ctrl
  - BIO_ctrl_pending
  - BIO_ctrl_wpending
  - BIO_push
  - BIO_pop
  - BIO_get_retry_BIO
  - BIO_get_retry_reason
  - BIO_set_retry_reason
  - BIO_find_type
  - BIO_next
  - BIO_set_next
  - BIO_free_all
  - BIO_dup_chain
  - BIO_copy_next_retry
  - BIO_set_ex_data
  - BIO_get_ex_data
  - BIO_number_read
  - BIO_number_written
  - bio_free_ex_data
  - bio_cleanup
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_lib.c
- function_names:
  - BIO_new_file
  - BIO_new_fp
  - BIO_s_file
  - file_new
  - file_free
  - file_read
  - file_write
  - file_ctrl
  - file_gets
  - file_puts
  - file_write
  - file_read
  - file_puts
  - file_gets
  - file_ctrl
  - file_new
  - file_free
  - BIO_s_file
  - BIO_new_file
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_file.c
- function_names:
  - BIO_s_datagram
  - BIO_new_dgram
  - dgram_new
  - dgram_free
  - dgram_clear
  - dgram_adjust_rcv_timeout
  - dgram_reset_rcv_timeout
  - dgram_read
  - dgram_write
  - dgram_get_mtu_overhead
  - dgram_ctrl
  - dgram_puts
  - BIO_s_datagram_sctp
  - BIO_new_dgram_sctp
  - BIO_dgram_is_sctp
  - dgram_sctp_new
  - dgram_sctp_free
  - dgram_sctp_handle_auth_free_key_event
  - dgram_sctp_read
  - dgram_sctp_write
  - dgram_sctp_ctrl
  - BIO_dgram_sctp_notification_cb
  - BIO_dgram_sctp_wait_for_dry
  - BIO_dgram_sctp_msg_waiting
  - dgram_sctp_puts
  - BIO_dgram_should_retry
  - BIO_dgram_non_fatal_error
  - get_current_time
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_dgram.c
- function_names:
  - BIO_socket
  - BIO_connect
  - BIO_listen
  - BIO_accept_ex
  - BIO_closesocket
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock2.c
- function_names:
  - BIO_f_null
  - nullf_new
  - nullf_free
  - nullf_read
  - nullf_write
  - nullf_ctrl
  - nullf_callback_ctrl
  - nullf_gets
  - nullf_puts
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_null.c
- function_names:
  - BIO_s_bio
  - bio_new
  - bio_free
  - bio_read
  - bio_nread0
  - bio_nread
  - bio_write
  - bio_nwrite0
  - bio_nwrite
  - bio_ctrl
  - bio_puts
  - bio_make_pair
  - bio_destroy_pair
  - BIO_new_bio_pair
  - BIO_ctrl_get_write_guarantee
  - BIO_ctrl_get_read_request
  - BIO_ctrl_reset_read_request
  - BIO_nread0
  - BIO_nread
  - BIO_nwrite0
  - BIO_nwrite
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_bio.c
- function_names:
  - BIO_debug_callback
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_cb.c
- function_names:
  - DEFINE_RUN_ONCE_STATIC
  - BIO_get_new_index
  - BIO_meth_new
  - BIO_meth_free
  - (*BIO_meth_get_write(BIO_METHOD *biom)) (BIO *, const char *, int)
  - BIO_meth_set_write
  - (*BIO_meth_get_read(BIO_METHOD *biom)) (BIO *, char *, int)
  - BIO_meth_set_read
  - (*BIO_meth_get_puts(BIO_METHOD *biom)) (BIO *, const char *)
  - BIO_meth_set_puts
  - (*BIO_meth_get_gets(BIO_METHOD *biom)) (BIO *, char *, int)
  - BIO_meth_set_gets
  - (*BIO_meth_get_ctrl(BIO_METHOD *biom)) (BIO *, int, long, void *)
  - BIO_meth_set_ctrl
  - (*BIO_meth_get_create(BIO_METHOD *biom)) (BIO *)
  - BIO_meth_set_create
  - (*BIO_meth_get_destroy(BIO_METHOD *biom)) (BIO *)
  - BIO_meth_set_destroy
  - (*BIO_meth_get_callback_ctrl(BIO_METHOD *biom)) (BIO *, int, bio_info_cb *)
  - BIO_meth_set_callback_ctrl
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_meth.c
- function_names:
  - BIO_f_linebuffer
  - linebuffer_new
  - linebuffer_free
  - linebuffer_read
  - linebuffer_write
  - linebuffer_ctrl
  - linebuffer_callback_ctrl
  - linebuffer_gets
  - linebuffer_puts
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_lbuf.c
- function_names:
  - ERR_load_BIO_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bio_err.c
- function_names:
  - BIO_get_host_ip
  - BIO_get_port
  - BIO_sock_error
  - BIO_gethostbyname
  - BIO_sock_init
  - bio_sock_cleanup_int
  - BIO_socket_ioctl
  - BIO_get_accept_socket
  - BIO_accept
  - BIO_set_tcp_ndelay
  - BIO_socket_nbio
  - BIO_sock_info
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_sock.c
- function_names:
  - BIO_dump_cb
  - BIO_dump_indent_cb
  - write_fp
  - BIO_dump_fp
  - BIO_dump_indent_fp
  - write_bio
  - BIO_dump
  - BIO_dump_indent
  - BIO_hex_string
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_dump.c
- function_names:
  - BIO_s_accept
  - acpt_new
  - BIO_ACCEPT_new
  - BIO_ACCEPT_free
  - acpt_close_socket
  - acpt_free
  - acpt_state
  - acpt_read
  - acpt_write
  - acpt_ctrl
  - acpt_puts
  - BIO_new_accept
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bss_acpt.c
- function_names:
  - ossl_hstrerror
  - BIO_ADDR_new
  - BIO_ADDR_free
  - BIO_ADDR_clear
  - BIO_ADDR_make
  - BIO_ADDR_rawmake
  - BIO_ADDR_family
  - BIO_ADDR_rawaddress
  - BIO_ADDR_rawport
  - BIO_ADDR_hostname_string
  - BIO_ADDR_service_string
  - BIO_ADDR_path_string
  - BIO_ADDR_sockaddr
  - BIO_ADDR_sockaddr_noconst
  - BIO_ADDR_sockaddr_size
  - BIO_ADDRINFO_next
  - BIO_ADDRINFO_family
  - BIO_ADDRINFO_socktype
  - BIO_ADDRINFO_protocol
  - BIO_ADDRINFO_sockaddr_size
  - BIO_ADDRINFO_sockaddr
  - BIO_ADDRINFO_address
  - BIO_ADDRINFO_free
  - BIO_parse_hostserv
  - addrinfo_wrap
  - DEFINE_RUN_ONCE_STATIC
  - BIO_lookup
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_addr.c
- function_names:
  - BIO_f_nbio_test
  - nbiof_new
  - nbiof_free
  - nbiof_read
  - nbiof_write
  - nbiof_ctrl
  - nbiof_callback_ctrl
  - nbiof_gets
  - nbiof_puts
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/bf_nbio.c
- function_names:
  - _dopr
  - fmtstr
  - fmtint
  - abs_val
  - pow_10
  - roundv
  - fmtfp
  - doapr_outch
  - BIO_printf
  - BIO_vprintf
  - BIO_snprintf
  - BIO_vsnprintf
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bio/b_print.c
- function_names:
  - RAND_poll
  - RAND_event
  - RAND_screen
  - readtimer
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_win.c
- function_names:
  - ERR_load_RAND_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_err.c
- function_names:
  - RAND_query_egd_bytes
  - RAND_egd
  - RAND_egd_bytes
  - RAND_query_egd_bytes
  - RAND_egd_bytes
  - RAND_egd
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_egd.c
- function_names:
  - RAND_poll
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_vms.c
- function_names:
  - RAND_load_file
  - RAND_write_file
  - RAND_file_name
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rand/randfile.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lcl.h
- function_names:
  - RAND_set_rand_method
  - RAND_get_rand_method
  - RAND_set_rand_engine
  - rand_cleanup_int
  - RAND_seed
  - RAND_add
  - RAND_bytes
  - RAND_pseudo_bytes
  - RAND_status
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_lib.c
- function_names:
  - DEFINE_RUN_ONCE_STATIC
  - RAND_OpenSSL
  - rand_cleanup
  - rand_add
  - rand_seed
  - rand_bytes
  - rand_nopseudo_bytes
  - rand_pseudo_bytes
  - rand_status
  - rand_hw_seed
  - rand_hw_xor
  - rand_hw_seed
  - rand_hw_xor
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rand/md_rand.c
- function_names:
  - RAND_poll
  - RAND_poll
  - RAND_poll
  - RAND_poll
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rand/rand_unix.c
- function_names:
  - pkey_tls1_prf_init
  - pkey_tls1_prf_cleanup
  - pkey_tls1_prf_ctrl
  - pkey_tls1_prf_ctrl_str
  - pkey_tls1_prf_derive
  - tls1_prf_P_hash
  - tls1_prf_alg
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/tls1_prf.c
- function_names:
  - ERR_load_KDF_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/kdf_err.c
- function_names:
  - pkey_hkdf_init
  - pkey_hkdf_cleanup
  - pkey_hkdf_ctrl
  - pkey_hkdf_ctrl_str
  - pkey_hkdf_derive
  - HKDF
  - HKDF_Extract
  - HKDF_Expand
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/kdf/hkdf.c
- function_names:
  - ASN1_SCTX_new
  - ASN1_SCTX_free
  - ASN1_SCTX_get_item
  - ASN1_SCTX_get_template
  - ASN1_SCTX_get_flags
  - ASN1_SCTX_set_app_data
  - ASN1_SCTX_get_app_data
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_scn.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_spki.c
- function_names:
  - BIO_new_NDEF
  - ndef_prefix
  - ndef_prefix_free
  - ndef_suffix_free
  - ndef_suffix
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_ndef.c
- function_names:
  - X509_PKEY_new
  - X509_PKEY_free
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_pkey.c
- function_names:
  - ASN1_digest
  - ASN1_item_digest
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_digest.c
- function_names:
  - asn1_get_choice_selector
  - asn1_set_choice_selector
  - asn1_do_lock
  - asn1_get_enc_ptr
  - asn1_enc_init
  - asn1_enc_free
  - asn1_enc_save
  - asn1_enc_restore
  - asn1_get_field_ptr
  - asn1_do_adb
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_utl.c
- function_names:
  - ASN1_sign
  - ASN1_item_sign
  - ASN1_item_sign_ctx
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_sign.c
- function_names:
  - PKCS5_pbe_set0_algor
  - PKCS5_pbe_set
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbe.c
- function_names:
  - i2d_ASN1_OBJECT
  - a2d_ASN1_OBJECT
  - i2t_ASN1_OBJECT
  - i2a_ASN1_OBJECT
  - d2i_ASN1_OBJECT
  - c2i_ASN1_OBJECT
  - ASN1_OBJECT_new
  - ASN1_OBJECT_free
  - ASN1_OBJECT_create
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_object.c
- function_names:
  - d2i_PrivateKey
  - d2i_AutoPrivateKey
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pr.c
- function_names:
  - ASN1_TIME_set
  - ASN1_TIME_adj
  - ASN1_TIME_check
  - ASN1_TIME_to_generalizedtime
  - ASN1_TIME_set_string
  - asn1_time_to_tm
  - ASN1_TIME_diff
  - ASN1_TIME_print
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_time.c
- function_names:
  - ASN1_d2i_fp
  - ASN1_d2i_bio
  - ASN1_item_d2i_bio
  - ASN1_item_d2i_fp
  - asn1_d2i_read_bio
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_d2i_fp.c
- function_names:
  - ASN1_STRING_set_default_mask
  - ASN1_STRING_get_default_mask
  - ASN1_STRING_set_default_mask_asc
  - ASN1_STRING_set_by_NID
  - sk_table_cmp
  - table_cmp
  - ASN1_STRING_TABLE_get
  - stable_get
  - ASN1_STRING_TABLE_add
  - ASN1_STRING_TABLE_cleanup
  - st_free
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strnid.c
- function_names:
  - ASN1_tag2bit
  - ASN1_item_d2i
  - ASN1_item_ex_d2i
  - asn1_item_embed_d2i
  - asn1_template_ex_d2i
  - asn1_template_noexp_d2i
  - asn1_d2i_ex_primitive
  - asn1_ex_c2i
  - asn1_find_end
  - asn1_collect
  - collect_data
  - asn1_check_eoc
  - asn1_check_tlen
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_dec.c
- function_names:
  - ASN1_item_free
  - ASN1_item_ex_free
  - asn1_item_embed_free
  - asn1_template_free
  - asn1_primitive_free
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_fre.c
- function_names:
  - i2d_PublicKey
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/i2d_pu.c
- function_names:
  - ASN1_TYPE_set_octetstring
  - ASN1_TYPE_get_octetstring
  - ASN1_TYPE_set_int_octetstring
  - ASN1_TYPE_get_int_octetstring
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/evp_asn1.c
- function_names:
  - i2a_ASN1_STRING
  - a2i_ASN1_STRING
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_string.c
- function_names:
  - X509_INFO_new
  - X509_INFO_free
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_info.c
- function_names:
  - ASN1_TYPE_get
  - ASN1_TYPE_set
  - ASN1_TYPE_set1
  - ASN1_TYPE_cmp
  - ASN1_TYPE_pack_sequence
  - ASN1_TYPE_unpack_sequence
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_type.c
- function_names:
  - ASN1_item_new
  - ASN1_item_ex_new
  - asn1_item_embed_new
  - asn1_item_clear
  - asn1_template_new
  - asn1_template_clear
  - asn1_primitive_new
  - asn1_primitive_clear
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_new.c
- function_names:
  - X509_ALGOR_set0
  - X509_ALGOR_get0
  - X509_ALGOR_set_md
  - X509_ALGOR_cmp
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_algor.c
- function_names:
  - ASN1_dup
  - ASN1_item_dup
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_dup.c
- function_names:
  - ASN1_PRINTABLE_type
  - ASN1_UNIVERSALSTRING_to_string
  - ASN1_STRING_print
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_print.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/charmap.h
- function_names:
  - PKCS5_pbe2_set_iv
  - PKCS5_pbe2_set
  - PKCS5_pbkdf2_set
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_pbev2.c
- function_names:
  - UTF8_getc
  - UTF8_putc
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utf8.c
- function_names:
  - ASN1_PCTX_new
  - ASN1_PCTX_free
  - ASN1_PCTX_get_flags
  - ASN1_PCTX_set_flags
  - ASN1_PCTX_get_nm_flags
  - ASN1_PCTX_set_nm_flags
  - ASN1_PCTX_get_cert_flags
  - ASN1_PCTX_set_cert_flags
  - ASN1_PCTX_get_oid_flags
  - ASN1_PCTX_set_oid_flags
  - ASN1_PCTX_get_str_flags
  - ASN1_PCTX_set_str_flags
  - ASN1_item_print
  - asn1_item_print_ctx
  - asn1_template_print_ctx
  - asn1_print_fsname
  - asn1_print_boolean
  - asn1_print_integer
  - asn1_print_oid
  - asn1_print_obstring
  - asn1_primitive_print
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_prn.c
- function_names:
  - asn1_print_info
  - ASN1_parse
  - ASN1_parse_dump
  - asn1_parse2
  - ASN1_tag2str
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_par.c
- function_names:
  - send_bio_chars
  - send_fp_chars
  - do_esc_char
  - do_buf
  - do_hex_dump
  - do_dump
  - do_print_ex
  - do_indent
  - do_name_ex
  - X509_NAME_print_ex
  - X509_NAME_print_ex_fp
  - ASN1_STRING_print_ex
  - ASN1_STRING_print_ex_fp
  - ASN1_STRING_to_UTF8
  - asn1_valid_host
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_strex.c
- function_names:
  - pkey_cb
  - PKCS8_pkey_set0
  - PKCS8_pkey_get0
  - PKCS8_pkey_get0_attrs
  - PKCS8_pkey_add1_attr_by_NID
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p8_pkey.c
- function_names:
  - PKCS5_pbe2_set_scrypt
  - pkcs5_scrypt_set
  - PKCS5_v2_scrypt_keyivgen
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/p5_scrypt.c
- function_names:
  - d2i_PublicKey
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/d2i_pu.c
- function_names:
  - X509_SIG_get0
  - X509_SIG_getm
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_sig.c
- function_names:
  - asn1_utctime_to_tm
  - ASN1_UTCTIME_check
  - ASN1_UTCTIME_set_string
  - ASN1_UTCTIME_set
  - ASN1_UTCTIME_adj
  - ASN1_UTCTIME_cmp_time_t
  - ASN1_UTCTIME_print
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_utctm.c
- function_names:
  - long_new
  - long_free
  - long_i2c
  - long_c2i
  - long_print
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_long.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_val.c
- function_names:
  - main
  - ameth_cmp
  - EVP_PKEY_asn1_get_count
  - EVP_PKEY_asn1_get0
  - pkey_asn1_find
  - EVP_PKEY_asn1_find
  - EVP_PKEY_asn1_find_str
  - EVP_PKEY_asn1_add0
  - EVP_PKEY_asn1_add_alias
  - EVP_PKEY_asn1_get0_info
  - EVP_PKEY_get0_asn1
  - EVP_PKEY_asn1_new
  - EVP_PKEY_asn1_copy
  - EVP_PKEY_asn1_free
  - EVP_PKEY_asn1_set_public
  - EVP_PKEY_asn1_set_private
  - EVP_PKEY_asn1_set_param
  - EVP_PKEY_asn1_set_free
  - EVP_PKEY_asn1_set_ctrl
  - EVP_PKEY_asn1_set_security_bits
  - EVP_PKEY_asn1_set_item
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/ameth_lib.c
- function_names:
  - i2a_ASN1_INTEGER
  - a2i_ASN1_INTEGER
  - i2a_ASN1_ENUMERATED
  - a2i_ASN1_ENUMERATED
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/f_int.c
- function_names:
  - ASN1_buf_print
  - ASN1_bn_print
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_pkey.c
- function_names:
  - ASN1_generate_nconf
  - ASN1_generate_v3
  - generate_v3
  - asn1_cb
  - parse_tagging
  - asn1_multi
  - append_exp
  - asn1_str2tag
  - asn1_str2type
  - bitstr_cb
  - mask_cb
  - ASN1_str2mask
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_gen.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_locl.h
- function_names:
  - bn_new
  - bn_secure_new
  - bn_free
  - bn_i2c
  - bn_c2i
  - bn_secure_c2i
  - bn_print
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/x_bignum.c
- function_names:
  - ASN1_mbstring_copy
  - ASN1_mbstring_ncopy
  - traverse_string
  - in_utf8
  - out_utf8
  - type_str
  - cpy_asc
  - cpy_bmp
  - cpy_univ
  - cpy_utf8
  - is_printable
  - is_numeric
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_mbstr.c
- function_names:
  - asn1_generalizedtime_to_tm
  - ASN1_GENERALIZEDTIME_check
  - ASN1_GENERALIZEDTIME_set_string
  - ASN1_GENERALIZEDTIME_set
  - ASN1_GENERALIZEDTIME_adj
  - ASN1_GENERALIZEDTIME_print
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_gentm.c
- function_names:
  - ASN1_i2d_fp
  - ASN1_i2d_bio
  - ASN1_item_i2d_fp
  - ASN1_item_i2d_bio
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_i2d_fp.c
- function_names:
  - BIO_f_asn1
  - asn1_bio_new
  - asn1_bio_init
  - asn1_bio_free
  - asn1_bio_write
  - asn1_bio_flush_ex
  - asn1_bio_setup_ex
  - asn1_bio_read
  - asn1_bio_puts
  - asn1_bio_gets
  - asn1_bio_callback_ctrl
  - asn1_bio_ctrl
  - asn1_bio_set_ex
  - asn1_bio_get_ex
  - BIO_asn1_set_prefix
  - BIO_asn1_get_prefix
  - BIO_asn1_set_suffix
  - BIO_asn1_get_suffix
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/bio_asn1.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/n_pkey.c
- function_names:
  - ASN1_BIT_STRING_name_print
  - ASN1_BIT_STRING_set_asc
  - ASN1_BIT_STRING_num_asc
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_bitst.c
- function_names:
  - NETSCAPE_SPKI_print
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/t_spki.c
- function_names:
  - ASN1_verify
  - ASN1_item_verify
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_verify.c
- function_names:
  - stbl_module_init
  - stbl_module_finish
  - ASN1_add_stable_module
  - do_tcreate
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mstbl.c
- function_names:
  - ASN1_item_pack
  - ASN1_item_unpack
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_pack.c
- function_names:
  - oid_module_init
  - oid_module_finish
  - ASN1_add_oid_module
  - do_create
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_moid.c
- function_names:
  - i2d_PrivateKey
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/i2d_pr.c
- function_names:
  - nsseq_cb
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/nsseq.c
- function_names:
  - ASN1_item_ndef_i2d
  - ASN1_item_i2d
  - asn1_item_flags_i2d
  - ASN1_item_ex_i2d
  - asn1_template_ex_i2d
  - der_cmp
  - asn1_i2d_ex_primitive
  - asn1_ex_i2c
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_enc.c
- function_names:
  - ASN1_OCTET_STRING_dup
  - ASN1_OCTET_STRING_cmp
  - ASN1_OCTET_STRING_set
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_octet.c
- function_names:
  - _asn1_check_infinite_end
  - ASN1_check_infinite_end
  - ASN1_const_check_infinite_end
  - ASN1_get_object
  - asn1_get_length
  - ASN1_put_object
  - ASN1_put_eoc
  - asn1_put_length
  - ASN1_object_size
  - ASN1_STRING_copy
  - ASN1_STRING_dup
  - ASN1_STRING_set
  - ASN1_STRING_set0
  - ASN1_STRING_new
  - ASN1_STRING_type_new
  - asn1_string_embed_free
  - ASN1_STRING_free
  - ASN1_STRING_clear_free
  - ASN1_STRING_cmp
  - ASN1_STRING_length
  - ASN1_STRING_length_set
  - ASN1_STRING_type
  - ASN1_STRING_get0_data
  - ASN1_STRING_data
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_lib.c
- function_names:
  - i2d_ASN1_bio_stream
  - B64_write_ASN1
  - PEM_write_bio_ASN1_stream
  - b64_read_asn1
  - SMIME_write_ASN1
  - asn1_output_data
  - SMIME_read_ASN1
  - SMIME_crlf_copy
  - SMIME_text
  - multi_split
  - mime_parse_hdr
  - strip_ends
  - strip_start
  - strip_end
  - mime_hdr_new
  - mime_hdr_addparam
  - mime_hdr_cmp
  - mime_param_cmp
  - mime_hdr_find
  - mime_param_find
  - mime_hdr_free
  - mime_param_free
  - mime_bound_check
  - strip_eol
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn_mime.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/tasn_typ.c
- function_names:
  - ASN1_BIT_STRING_set
  - i2c_ASN1_BIT_STRING
  - c2i_ASN1_BIT_STRING
  - ASN1_BIT_STRING_set_bit
  - ASN1_BIT_STRING_get_bit
  - ASN1_BIT_STRING_check
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_bitstr.c
- function_names:
  - ERR_load_ASN1_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/asn1_err.c
- function_names:
  - ASN1_INTEGER_dup
  - ASN1_INTEGER_cmp
  - i2c_ibuf
  - c2i_ibuf
  - i2c_ASN1_INTEGER
  - asn1_get_uint64
  - asn1_put_uint64
  - asn1_get_int64
  - c2i_ASN1_INTEGER
  - asn1_string_get_int64
  - asn1_string_set_int64
  - asn1_string_get_uint64
  - asn1_string_set_uint64
  - d2i_ASN1_UINTEGER
  - bn_to_asn1_string
  - asn1_string_to_bn
  - ASN1_INTEGER_get_int64
  - ASN1_INTEGER_set_int64
  - ASN1_INTEGER_get_uint64
  - ASN1_INTEGER_set_uint64
  - ASN1_INTEGER_set
  - ASN1_INTEGER_get
  - BN_to_ASN1_INTEGER
  - ASN1_INTEGER_to_BN
  - ASN1_ENUMERATED_get_int64
  - ASN1_ENUMERATED_set_int64
  - ASN1_ENUMERATED_set
  - ASN1_ENUMERATED_get
  - BN_to_ASN1_ENUMERATED
  - ASN1_ENUMERATED_to_BN
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/asn1/a_int.c
- function_names:
  - BF_cfb64_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cfb64.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_locl.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_pi.h
- function_names:
  - BF_options
  - BF_ecb_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_ecb.c
- function_names:
  - BF_set_key
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_skey.c
- function_names:
  - BF_encrypt
  - BF_decrypt
  - BF_cbc_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_enc.c
- function_names:
  - BF_ofb64_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_ofb64.c
- function_names:
  - BF_cbc_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/bf/bf_cbc.c
- function_names:
  - ENGINE_load_builtin_engines
  - ENGINE_setup_bsd_cryptodev
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_all.c
- function_names:
  - bind_helper
  - engine_openssl
  - engine_load_openssl_int
  - bind_fn
  - test_rc4_init_key
  - test_rc4_cipher
  - test_r4_cipher
  - test_r4_cipher_destroy
  - test_r4_40_cipher
  - test_r4_40_cipher_destroy
  - test_cipher_nids
  - openssl_ciphers
  - test_sha1_init
  - test_sha1_update
  - test_sha1_final
  - test_sha_md
  - test_sha_md_destroy
  - test_digest_nids
  - openssl_digests
  - openssl_load_privkey
  - ossl_hmac_init
  - ossl_hmac_copy
  - ossl_hmac_cleanup
  - ossl_hmac_keygen
  - ossl_int_update
  - ossl_hmac_signctx_init
  - ossl_hmac_signctx
  - ossl_hmac_ctrl
  - ossl_hmac_ctrl_str
  - ossl_register_hmac_meth
  - ossl_pkey_meths
  - openssl_destroy
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_openssl.c
- function_names:
  - get_random_bytes
  - random_status
  - rdrand_init
  - bind_helper
  - ENGINE_rdrand
  - engine_load_rdrand_int
  - engine_load_rdrand_int
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_rdrand.c
- function_names:
  - ENGINE_unregister_pkey_meths
  - engine_unregister_all_pkey_meths
  - ENGINE_register_pkey_meths
  - ENGINE_register_all_pkey_meths
  - ENGINE_set_default_pkey_meths
  - ENGINE_get_pkey_meth_engine
  - ENGINE_get_pkey_meth
  - ENGINE_get_pkey_meths
  - ENGINE_set_pkey_meths
  - engine_pkey_meths_free
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_pkmeth.c
- function_names:
  - ENGINE_unregister_digests
  - engine_unregister_all_digests
  - ENGINE_register_digests
  - ENGINE_register_all_digests
  - ENGINE_set_default_digests
  - ENGINE_get_digest_engine
  - ENGINE_get_digest
  - ENGINE_get_digests
  - ENGINE_set_digests
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_digest.c
- function_names:
  - DEFINE_RUN_ONCE
  - ENGINE_new
  - engine_set_all_null
  - engine_free_util
  - ENGINE_free
  - int_cleanup_check
  - int_cleanup_item
  - engine_cleanup_add_first
  - engine_cleanup_add_last
  - engine_cleanup_cb_free
  - engine_cleanup_int
  - ENGINE_set_ex_data
  - ENGINE_get_ex_data
  - ENGINE_set_id
  - ENGINE_set_name
  - ENGINE_set_destroy_function
  - ENGINE_set_init_function
  - ENGINE_set_finish_function
  - ENGINE_set_ctrl_function
  - ENGINE_set_flags
  - ENGINE_set_cmd_defns
  - ENGINE_get_id
  - ENGINE_get_name
  - ENGINE_get_destroy_function
  - ENGINE_get_init_function
  - ENGINE_get_finish_function
  - ENGINE_get_ctrl_function
  - ENGINE_get_flags
  - ENGINE_get_cmd_defns
  - ENGINE_get_static_state
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_lib.c
- function_names:
  - ENGINE_unregister_DSA
  - engine_unregister_all_DSA
  - ENGINE_register_DSA
  - ENGINE_register_all_DSA
  - ENGINE_set_default_DSA
  - ENGINE_get_default_DSA
  - ENGINE_get_DSA
  - ENGINE_set_DSA
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dsa.c
- function_names:
  - int_ctrl_cmd_is_null
  - int_ctrl_cmd_by_name
  - int_ctrl_cmd_by_num
  - int_ctrl_helper
  - ENGINE_ctrl
  - ENGINE_cmd_is_executable
  - ENGINE_ctrl_cmd
  - ENGINE_ctrl_cmd_string
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_ctrl.c
- function_names:
  - ENGINE_unregister_RSA
  - engine_unregister_all_RSA
  - ENGINE_register_RSA
  - ENGINE_register_all_RSA
  - ENGINE_set_default_RSA
  - ENGINE_get_default_RSA
  - ENGINE_get_RSA
  - ENGINE_set_RSA
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rsa.c
- function_names:
  - skip_dot
  - int_engine_init
  - int_engine_configure
  - int_engine_module_init
  - int_engine_module_finish
  - ENGINE_add_conf_module
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cnf.c
- function_names:
  - int_free_str
  - dynamic_data_ctx_free_func
  - dynamic_set_data_ctx
  - dynamic_get_data_ctx
  - engine_dynamic
  - engine_load_dynamic_int
  - dynamic_init
  - dynamic_finish
  - dynamic_ctrl
  - int_load
  - dynamic_load
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_dyn.c
- function_names:
  - ENGINE_get_table_flags
  - ENGINE_set_table_flags
  - engine_pile_hash
  - engine_pile_cmp
  - int_table_check
  - engine_table_register
  - int_unregister_cb
  - engine_table_unregister
  - int_cleanup_cb_doall
  - engine_table_cleanup
  - engine_table_select_tmp
  - int_dall
  - engine_table_doall
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_table.c
- function_names:
  - engine_list_cleanup
  - engine_list_add
  - engine_list_remove
  - ENGINE_get_first
  - ENGINE_get_last
  - ENGINE_get_next
  - ENGINE_get_prev
  - ENGINE_add
  - ENGINE_remove
  - engine_cpy
  - ENGINE_by_id
  - ENGINE_up_ref
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_list.c
- function_names:
  - ERR_load_ENGINE_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_err.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_int.h
- function_names:
  - ENGINE_unregister_DH
  - engine_unregister_all_DH
  - ENGINE_register_DH
  - ENGINE_register_all_DH
  - ENGINE_set_default_DH
  - ENGINE_get_default_DH
  - ENGINE_get_DH
  - ENGINE_set_DH
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_dh.c
- function_names:
  - ENGINE_set_default
  - int_def_cb
  - ENGINE_set_default_string
  - ENGINE_register_complete
  - ENGINE_register_all_complete
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_fat.c
- function_names:
  - engine_load_cryptodev_int
  - open_dev_crypto
  - get_dev_crypto
  - put_dev_crypto
  - get_asym_dev_crypto
  - get_cryptodev_ciphers
  - get_cryptodev_digests
  - cryptodev_usable_ciphers
  - cryptodev_usable_digests
  - cryptodev_cipher
  - cryptodev_init_key
  - cryptodev_cleanup
  - cryptodev_rc4
  - cryptodev_des_cbc
  - cryptodev_3des_cbc
  - cryptodev_bf_cbc
  - cryptodev_cast_cbc
  - cryptodev_aes_cbc
  - cryptodev_aes_192_cbc
  - cryptodev_aes_256_cbc
  - cryptodev_aes_ctr
  - cryptodev_aes_192_ctr
  - cryptodev_aes_256_ctr
  - cryptodev_engine_ciphers
  - digest_nid_to_cryptodev
  - digest_key_length
  - cryptodev_digest_init
  - cryptodev_digest_update
  - cryptodev_digest_final
  - cryptodev_digest_cleanup
  - cryptodev_digest_copy
  - cryptodev_sha1
  - cryptodev_md5
  - cryptodev_engine_digests
  - cryptodev_engine_destroy
  - bn2crparam
  - crparam2bn
  - zapparams
  - cryptodev_asym
  - cryptodev_bn_mod_exp
  - cryptodev_rsa_nocrt_mod_exp
  - cryptodev_rsa_mod_exp
  - cryptodev_dsa_bn_mod_exp
  - cryptodev_dsa_dsa_mod_exp
  - cryptodev_dsa_do_sign
  - cryptodev_dsa_verify
  - cryptodev_mod_exp_dh
  - cryptodev_dh_compute_key
  - cryptodev_ctrl
  - engine_load_cryptodev_int
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_cryptodev.c
- function_names:
  - ENGINE_unregister_RAND
  - engine_unregister_all_RAND
  - ENGINE_register_RAND
  - ENGINE_register_all_RAND
  - ENGINE_set_default_RAND
  - ENGINE_get_default_RAND
  - ENGINE_get_RAND
  - ENGINE_set_RAND
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_rand.c
- function_names:
  - ENGINE_set_load_privkey_function
  - ENGINE_set_load_pubkey_function
  - ENGINE_set_load_ssl_client_cert_function
  - ENGINE_get_load_privkey_function
  - ENGINE_get_load_pubkey_function
  - ENGINE_get_ssl_client_cert_function
  - ENGINE_load_private_key
  - ENGINE_load_public_key
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_pkey.c
- function_names:
  - ENGINE_unregister_ciphers
  - engine_unregister_all_ciphers
  - ENGINE_register_ciphers
  - ENGINE_register_all_ciphers
  - ENGINE_set_default_ciphers
  - ENGINE_get_cipher_engine
  - ENGINE_get_cipher
  - ENGINE_get_ciphers
  - ENGINE_set_ciphers
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_cipher.c
- function_names:
  - ENGINE_unregister_EC
  - engine_unregister_all_EC
  - ENGINE_register_EC
  - ENGINE_register_all_EC
  - ENGINE_set_default_EC
  - ENGINE_get_default_EC
  - ENGINE_get_EC
  - ENGINE_set_EC
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_eckey.c
- function_names:
  - engine_unlocked_init
  - engine_unlocked_finish
  - ENGINE_init
  - ENGINE_finish
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/eng_init.c
- function_names:
  - ENGINE_unregister_pkey_asn1_meths
  - engine_unregister_all_pkey_asn1_meths
  - ENGINE_register_pkey_asn1_meths
  - ENGINE_register_all_pkey_asn1_meths
  - ENGINE_set_default_pkey_asn1_meths
  - ENGINE_get_pkey_asn1_meth_engine
  - ENGINE_get_pkey_asn1_meth
  - ENGINE_get_pkey_asn1_meths
  - ENGINE_set_pkey_asn1_meths
  - engine_pkey_asn1_meths_free
  - ENGINE_get_pkey_asn1_meth_str
  - look_str_cb
  - ENGINE_pkey_asn1_find_str
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/engine/tb_asnmth.c
- function_names:
  - CONF_modules_load
  - CONF_modules_load_file
  - module_run
  - module_load_dso
  - module_add
  - module_find
  - module_init
  - CONF_modules_unload
  - module_free
  - CONF_modules_finish
  - module_finish
  - CONF_module_add
  - conf_modules_free_int
  - CONF_imodule_get_name
  - CONF_imodule_get_value
  - CONF_imodule_get_usr_data
  - CONF_imodule_set_usr_data
  - CONF_imodule_get_module
  - CONF_imodule_get_flags
  - CONF_imodule_set_flags
  - CONF_module_get_usr_data
  - CONF_module_set_usr_data
  - CONF_get1_default_config_file
  - CONF_parse_list
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mod.c
- function_names:
  - CONF_set_default_method
  - CONF_get_string
  - NCONF_new
  - NCONF_free
  - NCONF_free_data
  - NCONF_load
  - NCONF_load_fp
  - NCONF_load_bio
  - NCONF_get_string
  - NCONF_get_number_e
  - NCONF_dump_fp
  - NCONF_dump_bio
  - OPENSSL_INIT_new
  - OPENSSL_INIT_set_config_appname
  - OPENSSL_INIT_free
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_lib.c
- function_names:
  - OPENSSL_config
  - openssl_config_int
  - openssl_no_config_int
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_sap.c
- function_names:
  - OPENSSL_load_builtin_modules
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_mall.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.h
- function_names:
  - NCONF_default
  - NCONF_WIN32
  - def_create
  - def_init_default
  - def_init_WIN32
  - def_destroy
  - def_destroy_data
  - def_load
  - def_load_bio
  - clear_comments
  - str_copy
  - eat_ws
  - eat_alpha_numeric
  - scan_quote
  - scan_dquote
  - dump_value_doall_arg
  - def_dump
  - def_is_number
  - def_to_int
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_def.c
- function_names:
  - _CONF_get_section
  - _CONF_add_string
  - _CONF_get_string
  - conf_value_hash
  - conf_value_cmp
  - _CONF_new_data
  - _CONF_free_data
  - value_free_hash
  - value_free_stack_doall
  - _CONF_new_section
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_api.c
- function_names:
  - ERR_load_CONF_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/conf/conf_err.c
- function_names:
  - MD2
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_one.c
- function_names:
  - MD2_options
  - MD2_Init
  - MD2_Update
  - md2_block
  - MD2_Final
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/md2/md2_dgst.c
- function_names:
  - ct_base64_decode
  - SCT_new_from_base64
  - CTLOG_new_from_base64
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_b64.c
- function_names:
  - SCT_CTX_new
  - SCT_CTX_free
  - ct_x509_get_ext
  - ct_x509_cert_fixup
  - SCT_CTX_set1_cert
  - ct_public_key_hash
  - SCT_CTX_set1_issuer
  - SCT_CTX_set1_issuer_pubkey
  - SCT_CTX_set1_pubkey
  - SCT_CTX_set_time
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct_ctx.c
- function_names:
  - CT_POLICY_EVAL_CTX_new
  - CT_POLICY_EVAL_CTX_free
  - CT_POLICY_EVAL_CTX_set1_cert
  - CT_POLICY_EVAL_CTX_set1_issuer
  - CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE
  - CT_POLICY_EVAL_CTX_set_time
  - CT_POLICY_EVAL_CTX_get0_cert
  - CT_POLICY_EVAL_CTX_get0_issuer
  - CT_POLICY_EVAL_CTX_get0_log_store
  - CT_POLICY_EVAL_CTX_get_time
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_policy.c
- function_names:
  - sct_ctx_update
  - SCT_CTX_verify
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_vfy.c
- function_names:
  - SCT_signature_algorithms_print
  - timestamp_print
  - SCT_validation_status_string
  - SCT_print
  - SCT_LIST_print
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_prn.c
- function_names:
  - ERR_load_CT_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_err.c
- function_names:
  - SCT_new
  - SCT_free
  - SCT_set_version
  - SCT_set_log_entry_type
  - SCT_set0_log_id
  - SCT_set1_log_id
  - SCT_set_timestamp
  - SCT_set_signature_nid
  - SCT_set0_extensions
  - SCT_set1_extensions
  - SCT_set0_signature
  - SCT_set1_signature
  - SCT_get_version
  - SCT_get_log_entry_type
  - SCT_get0_log_id
  - SCT_get_timestamp
  - SCT_get_signature_nid
  - SCT_get0_extensions
  - SCT_get0_signature
  - SCT_is_complete
  - SCT_signature_is_complete
  - SCT_get_source
  - SCT_set_source
  - SCT_get_validation_status
  - SCT_validate
  - SCT_LIST_validate
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_sct.c
- function_names:
  - ctlog_store_load_ctx_new
  - ctlog_store_load_ctx_free
  - ct_v1_log_id_from_pkey
  - CTLOG_STORE_new
  - CTLOG_STORE_free
  - ctlog_new_from_conf
  - CTLOG_STORE_load_default_file
  - ctlog_store_load_log
  - CTLOG_STORE_load_file
  - CTLOG_new
  - CTLOG_free
  - CTLOG_get0_name
  - CTLOG_get0_log_id
  - CTLOG_get0_public_key
  - CTLOG_STORE_get0_log_by_id
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_log.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_locl.h
- function_names:
  - o2i_SCT_signature
  - o2i_SCT
  - i2o_SCT_signature
  - i2o_SCT
  - i2o_SCT_LIST
  - i2d_SCT_LIST
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_oct.c
- function_names:
  - i2s_poison
  - s2i_poison
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ct/ct_x509v3.c
- function_names:
  - err_load_crypto_strings_int
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_all.c
- function_names:
  - err_string_data_hash
  - err_string_data_cmp
  - int_err_get_item
  - build_SYS_str_reasons
  - ERR_STATE_free
  - DEFINE_RUN_ONCE_STATIC
  - err_cleanup
  - ERR_load_ERR_strings
  - err_load_strings
  - ERR_load_strings
  - ERR_unload_strings
  - err_free_strings_int
  - ERR_put_error
  - ERR_clear_error
  - ERR_get_error
  - ERR_get_error_line
  - ERR_get_error_line_data
  - ERR_peek_error
  - ERR_peek_error_line
  - ERR_peek_error_line_data
  - ERR_peek_last_error
  - ERR_peek_last_error_line
  - ERR_peek_last_error_line_data
  - get_error_values
  - ERR_error_string_n
  - ERR_error_string
  - ERR_lib_error_string
  - ERR_func_error_string
  - ERR_reason_error_string
  - err_delete_thread_state
  - ERR_remove_thread_state
  - ERR_remove_state
  - DEFINE_RUN_ONCE_STATIC
  - ERR_get_state
  - ERR_get_next_error_library
  - ERR_set_error_data
  - ERR_add_error_data
  - ERR_add_error_vdata
  - ERR_set_mark
  - ERR_pop_to_mark
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/err/err.c
- function_names:
  - ERR_print_errors_cb
  - print_bio
  - ERR_print_errors
  - ERR_print_errors_fp
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/err/err_prn.c
- function_names:
  - TS_RESP_print_bio
  - TS_STATUS_INFO_print_bio
  - ts_status_map_print
  - TS_TST_INFO_print_bio
  - ts_ACCURACY_print_bio
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_print.c
- function_names:
  - TS_ASN1_INTEGER_print_bio
  - TS_OBJ_print_bio
  - TS_ext_print_bio
  - TS_X509_ALGOR_print_bio
  - TS_MSG_IMPRINT_print_bio
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lib.c
- function_names:
  - d2i_TS_MSG_IMPRINT_bio
  - i2d_TS_MSG_IMPRINT_bio
  - d2i_TS_MSG_IMPRINT_fp
  - i2d_TS_MSG_IMPRINT_fp
  - d2i_TS_REQ_bio
  - i2d_TS_REQ_bio
  - d2i_TS_REQ_fp
  - i2d_TS_REQ_fp
  - d2i_TS_TST_INFO_bio
  - i2d_TS_TST_INFO_bio
  - d2i_TS_TST_INFO_fp
  - i2d_TS_TST_INFO_fp
  - ts_resp_set_tst_info
  - ts_resp_cb
  - d2i_TS_RESP_bio
  - i2d_TS_RESP_bio
  - d2i_TS_RESP_fp
  - i2d_TS_RESP_fp
  - PKCS7_to_TS_TST_INFO
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_asn1.c
- function_names:
  - TS_CONF_load_cert
  - TS_CONF_load_key
  - ts_CONF_lookup_fail
  - ts_CONF_invalid
  - TS_CONF_get_tsa_section
  - TS_CONF_set_serial
  - TS_CONF_set_crypto_device
  - TS_CONF_set_default_engine
  - TS_CONF_set_signer_cert
  - TS_CONF_set_certs
  - TS_CONF_set_signer_key
  - TS_CONF_set_signer_digest
  - TS_CONF_set_def_policy
  - TS_CONF_set_policies
  - TS_CONF_set_digests
  - TS_CONF_set_accuracy
  - TS_CONF_set_clock_precision_digits
  - ts_CONF_add_flag
  - TS_CONF_set_ordering
  - TS_CONF_set_tsa_name
  - TS_CONF_set_ess_cert_id_chain
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_conf.c
- function_names:
  - TS_VERIFY_CTX_new
  - TS_VERIFY_CTX_init
  - TS_VERIFY_CTX_free
  - TS_VERIFY_CTX_add_flags
  - TS_VERIFY_CTX_set_flags
  - TS_VERIFY_CTX_set_data
  - TS_VERIFY_CTX_set_store
  - TS_VERIFY_CTX_set_imprint
  - TS_VERIFY_CTX_cleanup
  - TS_REQ_to_TS_VERIFY_CTX
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_verify_ctx.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_lcl.h
- function_names:
  - def_serial_cb
  - def_time_cb
  - def_time_cb
  - def_extension_cb
  - TS_RESP_CTX_new
  - TS_RESP_CTX_free
  - TS_RESP_CTX_set_signer_cert
  - TS_RESP_CTX_set_signer_key
  - TS_RESP_CTX_set_signer_digest
  - TS_RESP_CTX_set_def_policy
  - TS_RESP_CTX_add_policy
  - TS_RESP_CTX_add_md
  - TS_RESP_CTX_set_accuracy
  - TS_RESP_CTX_add_flags
  - TS_RESP_CTX_set_serial_cb
  - TS_RESP_CTX_set_time_cb
  - TS_RESP_CTX_set_extension_cb
  - TS_RESP_CTX_set_status_info
  - TS_RESP_CTX_set_status_info_cond
  - TS_RESP_CTX_add_failure_info
  - TS_RESP_CTX_get_request
  - TS_RESP_CTX_get_tst_info
  - TS_RESP_CTX_set_clock_precision_digits
  - TS_RESP_create_response
  - ts_RESP_CTX_init
  - ts_RESP_CTX_cleanup
  - ts_RESP_check_request
  - ts_RESP_get_policy
  - ts_RESP_create_tst_info
  - ts_RESP_process_extensions
  - ts_RESP_sign
  - ess_SIGNING_CERT_new_init
  - ess_CERT_ID_new_init
  - ts_TST_INFO_content_new
  - ESS_add_signing_cert
  - TS_RESP_set_genTime_with_precision
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_sign.c
- function_names:
  - TS_REQ_set_version
  - TS_REQ_get_version
  - TS_REQ_set_msg_imprint
  - TS_REQ_get_msg_imprint
  - TS_MSG_IMPRINT_set_algo
  - TS_MSG_IMPRINT_get_algo
  - TS_MSG_IMPRINT_set_msg
  - TS_MSG_IMPRINT_get_msg
  - TS_REQ_set_policy_id
  - TS_REQ_get_policy_id
  - TS_REQ_set_nonce
  - TS_REQ_get_nonce
  - TS_REQ_set_cert_req
  - TS_REQ_get_cert_req
  - TS_REQ_ext_free
  - TS_REQ_get_ext_count
  - TS_REQ_get_ext_by_NID
  - TS_REQ_get_ext_by_OBJ
  - TS_REQ_get_ext_by_critical
  - TS_REQ_get_ext
  - TS_REQ_delete_ext
  - TS_REQ_add_ext
  - TS_REQ_get_ext_d2i
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_utils.c
- function_names:
  - TS_RESP_set_status_info
  - TS_RESP_get_status_info
  - TS_RESP_set_tst_info
  - TS_RESP_get_token
  - TS_RESP_get_tst_info
  - TS_TST_INFO_set_version
  - TS_TST_INFO_get_version
  - TS_TST_INFO_set_policy_id
  - TS_TST_INFO_get_policy_id
  - TS_TST_INFO_set_msg_imprint
  - TS_TST_INFO_get_msg_imprint
  - TS_TST_INFO_set_serial
  - TS_TST_INFO_get_serial
  - TS_TST_INFO_set_time
  - TS_TST_INFO_get_time
  - TS_TST_INFO_set_accuracy
  - TS_TST_INFO_get_accuracy
  - TS_ACCURACY_set_seconds
  - TS_ACCURACY_get_seconds
  - TS_ACCURACY_set_millis
  - TS_ACCURACY_get_millis
  - TS_ACCURACY_set_micros
  - TS_ACCURACY_get_micros
  - TS_TST_INFO_set_ordering
  - TS_TST_INFO_get_ordering
  - TS_TST_INFO_set_nonce
  - TS_TST_INFO_get_nonce
  - TS_TST_INFO_set_tsa
  - TS_TST_INFO_get_tsa
  - TS_TST_INFO_ext_free
  - TS_TST_INFO_get_ext_count
  - TS_TST_INFO_get_ext_by_NID
  - TS_TST_INFO_get_ext_by_OBJ
  - TS_TST_INFO_get_ext_by_critical
  - TS_TST_INFO_get_ext
  - TS_TST_INFO_delete_ext
  - TS_TST_INFO_add_ext
  - TS_TST_INFO_get_ext_d2i
  - TS_STATUS_INFO_set_status
  - TS_STATUS_INFO_get0_status
  - TS_STATUS_INFO_get0_text
  - TS_STATUS_INFO_get0_failure_info
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_utils.c
- function_names:
  - TS_REQ_print_bio
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_req_print.c
- function_names:
  - ess_get_signing_cert
  - ts_issuer_serial_cmp
  - TS_RESP_verify_response
  - TS_RESP_verify_token
  - int_ts_RESP_verify_token
  - ts_check_status_info
  - ts_get_status_text
  - ts_check_policy
  - ts_compute_imprint
  - ts_check_imprints
  - ts_check_nonces
  - ts_check_signer_name
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_rsp_verify.c
- function_names:
  - ERR_load_TS_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/ts/ts_err.c
- function_names:
  - v2i_AUTHORITY_INFO_ACCESS
  - i2a_ACCESS_DESCRIPTION
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_info.c
- function_names:
  - i2r_PKEY_USAGE_PERIOD
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pku.c
- function_names:
  - policy_cache_create
  - policy_cache_new
  - policy_cache_free
  - policy_cache_set
  - policy_cache_find_data
  - policy_data_cmp
  - policy_cache_set_int
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_cache.c
- function_names:
  - X509V3_EXT_print
  - X509V3_extensions_print
  - unknown_ext_print
  - X509V3_EXT_print_fp
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_prn.c
- function_names:
  - i2s_ASN1_OCTET_STRING
  - s2i_ASN1_OCTET_STRING
  - s2i_skey_id
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_skey.c
- function_names:
  - v2i_NAME_CONSTRAINTS
  - i2r_NAME_CONSTRAINTS
  - do_i2r_name_constraints
  - print_nc_ipadd
  - NAME_CONSTRAINTS_check
  - NAME_CONSTRAINTS_check_CN
  - nc_match
  - nc_match_single
  - nc_dn
  - nc_dns
  - nc_email
  - nc_uri
  - nc_ip
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ncons.c
- function_names:
  - s2i_asn1_int
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_int.c
- function_names:
  - v2i_AUTHORITY_KEYID
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akey.c
- function_names:
  - v2i_EXTENDED_KEY_USAGE
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_extku.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3conf.c
- function_names:
  - X509V3_add_value
  - X509V3_add_value_uchar
  - X509V3_conf_free
  - X509V3_add_value_bool
  - X509V3_add_value_bool_nf
  - i2s_ASN1_ENUMERATED
  - i2s_ASN1_INTEGER
  - s2i_ASN1_INTEGER
  - X509V3_add_value_int
  - X509V3_get_value_bool
  - X509V3_get_value_int
  - strip_spaces
  - name_cmp
  - sk_strcmp
  - get_email
  - str_free
  - skip_prefix
  - equal_nocase
  - equal_case
  - equal_email
  - wildcard_match
  - valid_star
  - equal_wildcard
  - do_check_string
  - do_x509_check
  - X509_check_host
  - X509_check_email
  - X509_check_ip
  - X509_check_ip_asc
  - a2i_IPADDRESS
  - a2i_IPADDRESS_NC
  - a2i_ipadd
  - ipv4_from_asc
  - ipv6_from_asc
  - ipv6_cb
  - ipv6_hex
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_utl.c
- function_names:
  - node_cmp
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_node.c
- function_names:
  - X509_policy_tree_level_count
  - X509_policy_tree_get0_level
  - X509_policy_level_node_count
  - X509_policy_level_get0_node
  - X509_policy_node_get0_policy
  - X509_policy_node_get0_parent
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_lib.c
- function_names:
  - policy_data_free
  - policy_data_new
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_data.c
- function_names:
  - gnames_from_sectname
  - set_dist_point_name
  - set_reasons
  - print_reasons
  - crldp_from_section
  - v2i_crld
  - dpn_cb
  - v2i_idp
  - print_distpoint
  - i2r_idp
  - i2r_crldp
  - DIST_POINT_set_dpname
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_crld.c
- function_names:
  - GENERAL_NAME_dup
  - GENERAL_NAME_cmp
  - OTHERNAME_cmp
  - GENERAL_NAME_set0_value
  - GENERAL_NAME_get0_value
  - GENERAL_NAME_set0_othername
  - GENERAL_NAME_get0_otherName
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_genn.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_int.h
- function_names:
  - GENERAL_NAME_print
  - v2i_issuer_alt
  - copy_issuer
  - v2i_subject_alt
  - copy_email
  - v2i_GENERAL_NAMES
  - v2i_GENERAL_NAME
  - a2i_GENERAL_NAME
  - v2i_GENERAL_NAME_ex
  - do_othername
  - do_dirname
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_alt.c
- function_names:
  - i2s_ASN1_IA5STRING
  - s2i_ASN1_IA5STRING
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_ia5.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/ext_dat.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_bitst.c
- function_names:
  - i2s_ASN1_ENUMERATED_TABLE
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_enum.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pcia.c
- function_names:
  - X509V3_EXT_nconf
  - X509V3_EXT_nconf_nid
  - do_ext_nconf
  - do_ext_i2d
  - X509V3_EXT_i2d
  - v3_check_critical
  - v3_check_generic
  - v3_generic_extension
  - generic_asn1
  - X509V3_EXT_add_nconf_sk
  - X509V3_EXT_add_nconf
  - X509V3_EXT_CRL_add_nconf
  - X509V3_EXT_REQ_add_nconf
  - X509V3_get_string
  - X509V3_string_free
  - nconf_get_string
  - nconf_get_section
  - X509V3_set_nconf
  - X509V3_set_ctx
  - conf_lhash_get_string
  - conf_lhash_get_section
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_conf.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/tabtest.c
- function_names:
  - v2i_BASIC_CONSTRAINTS
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_bcons.c
- function_names:
  - length_from_afi
  - X509v3_addr_get_afi
  - addr_expand
  - i2r_address
  - i2r_IPAddressOrRanges
  - i2r_IPAddrBlocks
  - IPAddressOrRange_cmp
  - v4IPAddressOrRange_cmp
  - v6IPAddressOrRange_cmp
  - range_should_be_prefix
  - make_addressPrefix
  - make_addressRange
  - make_IPAddressFamily
  - X509v3_addr_add_inherit
  - make_prefix_or_range
  - X509v3_addr_add_prefix
  - X509v3_addr_add_range
  - extract_min_max
  - X509v3_addr_get_range
  - IPAddressFamily_cmp
  - X509v3_addr_is_canonical
  - IPAddressOrRanges_canonize
  - X509v3_addr_canonize
  - v2i_IPAddrBlocks
  - X509v3_addr_inherits
  - addr_contains
  - X509v3_addr_subset
  - X509v3_addr_validate_path
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_addr.c
- function_names:
  - ERR_load_X509V3_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3err.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_akeya.c
- function_names:
  - expected_print
  - tree_print
  - tree_link_matching_nodes
  - tree_link_nodes
  - tree_add_unmatched
  - tree_link_unmatched
  - tree_link_any
  - tree_prune
  - tree_evaluate
  - exnode_free
  - X509_policy_tree_free
  - X509_policy_check
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_tree.c
- function_names:
  - v2i_TLS_FEATURE
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_tlsf.c
- function_names:
  - v2i_POLICY_CONSTRAINTS
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pcons.c
- function_names:
  - xp_cmp
  - X509_check_purpose
  - X509_PURPOSE_set
  - X509_PURPOSE_get_count
  - X509_PURPOSE_get0
  - X509_PURPOSE_get_by_sname
  - X509_PURPOSE_get_by_id
  - X509_PURPOSE_add
  - xptable_free
  - X509_PURPOSE_cleanup
  - X509_PURPOSE_get_id
  - X509_PURPOSE_get0_name
  - X509_PURPOSE_get0_sname
  - X509_PURPOSE_get_trust
  - nid_cmp
  - X509_supported_extension
  - setup_dp
  - setup_crldp
  - x509v3_cache_extensions
  - check_ca
  - X509_set_proxy_flag
  - X509_set_proxy_pathlen
  - X509_check_ca
  - check_ssl_ca
  - check_purpose_ssl_client
  - check_purpose_ssl_server
  - check_purpose_ns_ssl_server
  - purpose_smime
  - check_purpose_smime_sign
  - check_purpose_smime_encrypt
  - check_purpose_crl_sign
  - ocsp_helper
  - check_purpose_timestamp_sign
  - no_check
  - X509_check_issued
  - X509_check_akid
  - X509_get_extension_flags
  - X509_get_key_usage
  - X509_get_extended_key_usage
  - X509_get0_subject_key_id
  - X509_get_pathlen
  - X509_get_proxy_pathlen
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_purp.c
- function_names:
  - i2r_pci
  - process_pci_value
  - r2i_pci
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pci.c
- function_names:
  - policy_cache_set_mapping
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/pcy_map.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3prin.c
- function_names:
  - i2r_ASIdentifierChoice
  - i2r_ASIdentifiers
  - ASIdOrRange_cmp
  - X509v3_asid_add_inherit
  - X509v3_asid_add_id_or_range
  - extract_min_max
  - ASIdentifierChoice_is_canonical
  - X509v3_asid_is_canonical
  - ASIdentifierChoice_canonize
  - X509v3_asid_canonize
  - v2i_ASIdentifiers
  - X509v3_asid_inherits
  - asid_contains
  - X509v3_asid_subset
  - X509v3_asid_validate_path
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_asid.c
- function_names:
  - X509V3_EXT_add
  - ext_cmp
  - X509V3_EXT_get_nid
  - X509V3_EXT_get
  - X509V3_EXT_add_list
  - X509V3_EXT_add_alias
  - X509V3_EXT_cleanup
  - ext_list_free
  - X509V3_add_standard_extensions
  - X509V3_EXT_d2i
  - X509V3_get_d2i
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_lib.c
- function_names:
  - v2i_POLICY_MAPPINGS
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_pmaps.c
- function_names:
  - r2i_certpol
  - policy_section
  - notice_section
  - print_notice
  - X509_POLICY_NODE_print
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_cpols.c
- function_names:
  - sxnet_i2r
  - sxnet_v2i
  - SXNET_add_id_asc
  - SXNET_add_id_ulong
  - SXNET_add_id_INTEGER
  - SXNET_get_id_asc
  - SXNET_get_id_ulong
  - SXNET_get_id_INTEGER
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/x509v3/v3_sxnet.c
- function_names:
  - OPENSSL_sk_set_cmp_func
  - OPENSSL_sk_dup
  - OPENSSL_sk_deep_copy
  - OPENSSL_sk_new_null
  - OPENSSL_sk_new
  - OPENSSL_sk_insert
  - OPENSSL_sk_delete_ptr
  - OPENSSL_sk_delete
  - internal_find
  - OPENSSL_sk_find
  - OPENSSL_sk_find_ex
  - OPENSSL_sk_push
  - OPENSSL_sk_unshift
  - OPENSSL_sk_shift
  - OPENSSL_sk_pop
  - OPENSSL_sk_zero
  - OPENSSL_sk_pop_free
  - OPENSSL_sk_free
  - OPENSSL_sk_num
  - OPENSSL_sk_value
  - OPENSSL_sk_set
  - OPENSSL_sk_sort
  - OPENSSL_sk_is_sorted
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/stack/stack.c
- function_names:
  - ERR_load_COMP_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/comp/comp_err.c
- function_names:
  - zlib_zalloc
  - zlib_zfree
  - zlib_stateful_init
  - zlib_stateful_finish
  - zlib_stateful_compress_block
  - zlib_stateful_expand_block
  - COMP_zlib
  - comp_zlib_cleanup_int
  - BIO_f_zlib
  - bio_zlib_new
  - bio_zlib_free
  - bio_zlib_read
  - bio_zlib_write
  - bio_zlib_flush
  - bio_zlib_ctrl
  - bio_zlib_callback_ctrl
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/comp/c_zlib.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/comp/comp_lcl.h
- function_names:
  - COMP_CTX_new
  - COMP_CTX_get_method
  - COMP_get_type
  - COMP_get_name
  - COMP_CTX_free
  - COMP_compress_block
  - COMP_expand_block
  - COMP_CTX_get_type
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/comp/comp_lib.c
- function_names:
  - CAST_ofb64_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_ofb64.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cast/cast_s.h
- function_names:
  - CAST_cfb64_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_cfb64.c
- function_names:
  - CAST_set_key
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_skey.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_enc.c
- function_names:
  - CAST_ecb_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cast/c_ecb.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/cast/cast_lcl.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_dgst.c
- function_names:
  - i2d_PKCS7_bio_stream
  - PEM_write_bio_PKCS7_stream
  - SMIME_write_PKCS7
  - SMIME_read_PKCS7
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_mime.c
- function_names:
  - pk7_cb
  - si_cb
  - ri_cb
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_asn1.c
- function_names:
  - PKCS7_type_is_other
  - PKCS7_get_octet_string
  - PKCS7_bio_add_digest
  - pkcs7_encode_rinfo
  - pkcs7_decrypt_rinfo
  - PKCS7_dataInit
  - pkcs7_cmp_ri
  - PKCS7_dataDecode
  - PKCS7_find_digest
  - do_pkcs7_signed_attrib
  - PKCS7_dataFinal
  - PKCS7_SIGNER_INFO_sign
  - PKCS7_dataVerify
  - PKCS7_signatureVerify
  - PKCS7_get_issuer_and_serial
  - PKCS7_get_signed_attribute
  - PKCS7_get_attribute
  - get_attribute
  - PKCS7_add_signed_attribute
  - PKCS7_add_attribute
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_doit.c
- function_names:
  - PKCS7_add_attrib_content_type
  - PKCS7_add0_attrib_signing_time
  - PKCS7_add1_attrib_digest
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_attr.c
- function_names:
  - PKCS7_final
  - PKCS7_sign_add_signer
  - pkcs7_copy_existing_digest
  - PKCS7_decrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_smime.c
- function_names:
  - PKCS7_ctrl
  - PKCS7_content_new
  - PKCS7_set_content
  - PKCS7_set_type
  - PKCS7_set0_type_other
  - PKCS7_add_signer
  - PKCS7_add_certificate
  - PKCS7_add_crl
  - PKCS7_SIGNER_INFO_set
  - PKCS7_add_signature
  - PKCS7_set_digest
  - PKCS7_SIGNER_INFO_get0_algs
  - PKCS7_RECIP_INFO_get0_alg
  - PKCS7_add_recipient
  - PKCS7_add_recipient_info
  - PKCS7_RECIP_INFO_set
  - PKCS7_cert_from_signer_info
  - PKCS7_set_cipher
  - PKCS7_stream
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_lib.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pk7_enc.c
- function_names:
  - BIO_new_PKCS7
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/bio_pk7.c
- function_names:
  - ERR_load_PKCS7_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/pkcs7/pkcs7err.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.h
- function_names:
  - sn_cmp
  - ln_cmp
  - added_obj_hash
  - added_obj_cmp
  - init_added
  - cleanup1_doall
  - cleanup2_doall
  - cleanup3_doall
  - obj_cleanup_int
  - OBJ_new_nid
  - OBJ_add_object
  - OBJ_nid2obj
  - OBJ_nid2sn
  - OBJ_nid2ln
  - obj_cmp
  - OBJ_obj2nid
  - OBJ_txt2obj
  - OBJ_obj2txt
  - OBJ_txt2nid
  - OBJ_ln2nid
  - OBJ_sn2nid
  - OBJ_bsearch_
  - OBJ_bsearch_ex_
  - OBJ_create_objects
  - OBJ_create
  - OBJ_length
  - OBJ_get0_data
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_dat.c
- function_names:
  - ERR_load_OBJ_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_err.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.h
- function_names:
  - sig_cmp
  - sig_sk_cmp
  - sigx_cmp
  - OBJ_find_sigid_algs
  - OBJ_find_sigid_by_algs
  - OBJ_add_sigid
  - sid_free
  - OBJ_sigid_free
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_xref.c
- function_names:
  - obj_strcmp
  - OBJ_NAME_init
  - OBJ_NAME_new_index
  - obj_name_cmp
  - obj_name_hash
  - OBJ_NAME_get
  - OBJ_NAME_add
  - OBJ_NAME_remove
  - do_all_fn
  - OBJ_NAME_do_all
  - do_all_sorted_fn
  - do_all_sorted_cmp
  - OBJ_NAME_do_all_sorted
  - names_lh_free_doall
  - name_funcs_free
  - OBJ_NAME_cleanup
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/objects/o_names.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_lcl.h
- function_names:
  - OBJ_dup
  - OBJ_cmp
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/objects/obj_lib.c
- function_names:
  - RSA_new
  - RSA_set_default_method
  - RSA_get_default_method
  - RSA_get_method
  - RSA_set_method
  - RSA_new_method
  - RSA_free
  - RSA_up_ref
  - RSA_set_ex_data
  - RSA_get_ex_data
  - RSA_security_bits
  - RSA_set0_key
  - RSA_set0_factors
  - RSA_set0_crt_params
  - RSA_get0_key
  - RSA_get0_factors
  - RSA_get0_crt_params
  - RSA_clear_flags
  - RSA_test_flags
  - RSA_set_flags
  - RSA_get0_engine
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_lib.c
- function_names:
  - encode_pkcs1
  - RSA_sign
  - int_rsa_verify
  - RSA_verify
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_sign.c
- function_names:
  - RSA_padding_add_X931
  - RSA_padding_check_X931
  - RSA_X931_hash_id
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931.c
- function_names:
  - RSA_meth_new
  - RSA_meth_free
  - RSA_meth_dup
  - RSA_meth_get0_name
  - RSA_meth_set1_name
  - RSA_meth_get_flags
  - RSA_meth_set_flags
  - RSA_meth_get0_app_data
  - RSA_meth_set0_app_data
  - "(*RSA_meth_get_pub_enc(const RSA_METHOD *meth))\n    (int flen, const unsigned
    char *from,\n     unsigned char *to, RSA *rsa, int padding)"
  - RSA_meth_set_pub_enc
  - "(*RSA_meth_get_pub_dec(const RSA_METHOD *meth))\n    (int flen, const unsigned
    char *from,\n     unsigned char *to, RSA *rsa, int padding)"
  - RSA_meth_set_pub_dec
  - "(*RSA_meth_get_priv_enc(const RSA_METHOD *meth))\n    (int flen, const unsigned
    char *from,\n     unsigned char *to, RSA *rsa, int padding)"
  - RSA_meth_set_priv_enc
  - "(*RSA_meth_get_priv_dec(const RSA_METHOD *meth))\n    (int flen, const unsigned
    char *from,\n     unsigned char *to, RSA *rsa, int padding)"
  - RSA_meth_set_priv_dec
  - "(*RSA_meth_get_mod_exp(const RSA_METHOD *meth))\n    (BIGNUM *r0, const BIGNUM
    *I, RSA *rsa, BN_CTX *ctx)"
  - RSA_meth_set_mod_exp
  - "(*RSA_meth_get_bn_mod_exp(const RSA_METHOD *meth))\n    (BIGNUM *r, const BIGNUM
    *a, const BIGNUM *p,\n     const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx)"
  - RSA_meth_set_bn_mod_exp
  - (*RSA_meth_get_init(const RSA_METHOD *meth)) (RSA *rsa)
  - RSA_meth_set_init
  - (*RSA_meth_get_finish(const RSA_METHOD *meth)) (RSA *rsa)
  - RSA_meth_set_finish
  - "(*RSA_meth_get_sign(const RSA_METHOD *meth))\n    (int type,\n     const unsigned
    char *m, unsigned int m_length,\n     unsigned char *sigret, unsigned int *siglen,\n
    \    const RSA *rsa)"
  - RSA_meth_set_sign
  - "(*RSA_meth_get_verify(const RSA_METHOD *meth))\n    (int dtype, const unsigned
    char *m,\n     unsigned int m_length, const unsigned char *sigbuf,\n     unsigned
    int siglen, const RSA *rsa)"
  - RSA_meth_set_verify
  - "(*RSA_meth_get_keygen(const RSA_METHOD *meth))\n    (RSA *rsa, int bits, BIGNUM
    *e, BN_GENCB *cb)"
  - RSA_meth_set_keygen
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_meth.c
- function_names:
  - RSA_PKCS1_OpenSSL
  - rsa_ossl_public_encrypt
  - rsa_get_blinding
  - rsa_blinding_convert
  - rsa_blinding_invert
  - rsa_ossl_private_encrypt
  - rsa_ossl_private_decrypt
  - rsa_ossl_public_decrypt
  - rsa_ossl_mod_exp
  - rsa_ossl_init
  - rsa_ossl_finish
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ossl.c
- function_names:
  - RSA_generate_key
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_depr.c
- function_names:
  - RSA_padding_add_PKCS1_type_1
  - RSA_padding_check_PKCS1_type_1
  - RSA_padding_add_PKCS1_type_2
  - RSA_padding_check_PKCS1_type_2
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pk1.c
- function_names:
  - RSA_null_method
  - RSA_null_public_encrypt
  - RSA_null_private_encrypt
  - RSA_null_private_decrypt
  - RSA_null_public_decrypt
  - RSA_null_init
  - RSA_null_finish
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_null.c
- function_names:
  - RSA_print_fp
  - RSA_print
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_prn.c
- function_names:
  - RSA_padding_add_PKCS1_OAEP
  - RSA_padding_add_PKCS1_OAEP_mgf1
  - RSA_padding_check_PKCS1_OAEP
  - RSA_padding_check_PKCS1_OAEP_mgf1
  - PKCS1_MGF1
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_oaep.c
- function_names:
  - RSA_verify_PKCS1_PSS
  - RSA_verify_PKCS1_PSS_mgf1
  - RSA_padding_add_PKCS1_PSS
  - RSA_padding_add_PKCS1_PSS_mgf1
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pss.c
- function_names:
  - RSA_padding_add_SSLv23
  - RSA_padding_check_SSLv23
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ssl.c
- function_names:
  - RSA_generate_key_ex
  - rsa_builtin_keygen
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_gen.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_locl.h
- function_names:
  - rsa_pub_encode
  - rsa_pub_decode
  - rsa_pub_cmp
  - old_rsa_priv_decode
  - old_rsa_priv_encode
  - rsa_priv_encode
  - rsa_priv_decode
  - int_rsa_size
  - rsa_bits
  - rsa_security_bits
  - int_rsa_free
  - do_rsa_print
  - rsa_pub_print
  - rsa_priv_print
  - rsa_mgf1_decode
  - rsa_pss_decode
  - rsa_pss_param_print
  - rsa_sig_print
  - rsa_pkey_ctrl
  - rsa_md_to_algor
  - rsa_md_to_mgf1
  - rsa_algor_to_md
  - rsa_mgf1_to_md
  - rsa_ctx_to_pss
  - rsa_pss_to_ctx
  - rsa_cms_verify
  - rsa_item_verify
  - rsa_cms_sign
  - rsa_item_sign
  - rsa_oaep_decode
  - rsa_cms_decrypt
  - rsa_cms_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_ameth.c
- function_names:
  - rsa_cb
  - RSAPublicKey_dup
  - RSAPrivateKey_dup
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_asn1.c
- function_names:
  - RSA_padding_add_none
  - RSA_padding_check_none
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_none.c
- function_names:
  - RSA_bits
  - RSA_size
  - RSA_public_encrypt
  - RSA_private_encrypt
  - RSA_private_decrypt
  - RSA_public_decrypt
  - RSA_flags
  - RSA_blinding_off
  - RSA_blinding_on
  - rsa_get_public_exp
  - RSA_setup_blinding
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_crpt.c
- function_names:
  - RSA_check_key
  - RSA_check_key_ex
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_chk.c
- function_names:
  - RSA_sign_ASN1_OCTET_STRING
  - RSA_verify_ASN1_OCTET_STRING
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_saos.c
- function_names:
  - RSA_X931_derive_ex
  - RSA_X931_generate_key_ex
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_x931g.c
- function_names:
  - ERR_load_RSA_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_err.c
- function_names:
  - pkey_rsa_init
  - pkey_rsa_copy
  - setup_tbuf
  - pkey_rsa_cleanup
  - pkey_rsa_sign
  - pkey_rsa_verifyrecover
  - pkey_rsa_verify
  - pkey_rsa_encrypt
  - pkey_rsa_decrypt
  - check_padding_md
  - pkey_rsa_ctrl
  - pkey_rsa_ctrl_str
  - pkey_rsa_keygen
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rsa/rsa_pmeth.c
- function_names:
  - DES_options
  - DES_ecb_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/ecb_enc.c
- function_names:
  - DES_ecb3_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/ecb3_enc.c
- function_names:
  - DES_cfb64_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64enc.c
- function_names:
  - DES_encrypt1
  - DES_encrypt2
  - DES_encrypt3
  - DES_decrypt3
  - DES_ede3_cbc_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_enc.c
- function_names:
  - DES_cbc_cksum
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/cbc_cksm.c
- function_names:
  - DES_ofb_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb_enc.c
- function_names:
  - DES_xcbc_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/xcbc_enc.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/des_locl.h
- function_names:
  - OPENSSL_IMPLEMENT_GLOBAL
  - DES_check_key_parity
  - DES_is_weak_key
  - DES_set_key
  - DES_set_key_checked
  - DES_set_key_unchecked
  - DES_key_sched
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/set_key.c
- function_names:
  - DES_ofb64_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb64enc.c
- function_names:
  - fcrypt_body
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt_b.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/cbc_enc.c
- function_names:
  - DES_ede3_ofb64_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/ofb64ede.c
- function_names:
  - DES_ncbc_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/ncbc_enc.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/spr.h
- function_names:
  - _des_crypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/rpc_enc.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/rpc_des.h
- function_names:
  - DES_random_key
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/rand_key.c
- function_names:
  - DES_pcbc_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/pcbc_enc.c
- function_names:
  - DES_ede3_cfb64_encrypt
  - DES_ede3_cfb_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb64ede.c
- function_names:
  - DES_cfb_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/cfb_enc.c
- function_names:
  - DES_quad_cksum
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/qud_cksm.c
- function_names:
  - DES_string_to_key
  - DES_string_to_2keys
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/str2key.c
- function_names:
  - DES_crypt
  - DES_fcrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/des/fcrypt.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_locl.h
- function_names:
  - RC5_32_set_key
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_skey.c
- function_names:
  - RC5_32_cbc_encrypt
  - RC5_32_encrypt
  - RC5_32_decrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_enc.c
- function_names:
  - RC5_32_ofb64_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5ofb64.c
- function_names:
  - RC5_32_ecb_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5_ecb.c
- function_names:
  - RC5_32_cfb64_encrypt
  source_file: /src/openweave-core/third_party/openssl/openssl/crypto/rc5/rc5cfb64.c
- function_names:
  - unimplemented
  - OPENSSL_Uplink
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/ms/uplink.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/ms/uplink.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/ms/tlhelp32.h
- function_names:
  - app_stdin
  - app_stdout
  - app_stderr
  - app_feof
  - app_ferror
  - app_clearerr
  - app_fileno
  - app_fsetmod
  - OPENSSL_Applink
  source_file: /src/openweave-core/third_party/openssl/openssl/ms/applink.c
- function_names:
  - check_time
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/gmdifftest.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/test/r160test.c
- function_names:
  - dofptest
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/bioprinttest.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/pbelutest.c
- function_names:
  - test_usage
  - print_errors
  - test_certs
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/x509aux.c
- function_names:
  - run_thread
  - wait_for_thread
  - thread_run
  - run_thread
  - wait_for_thread
  - thread_run
  - run_thread
  - wait_for_thread
  - test_lock
  - once_do_run
  - once_run_thread_cb
  - test_once
  - thread_local_destructor
  - thread_local_thread_cb
  - test_thread_local
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/threadstest.c
- function_names:
  - main
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/wp_test.c
- function_names:
  - main
  - main
  - cb
  - run_rfc5114_tests
  source_file: /src/openweave-core/third_party/openssl/openssl/test/dhtest.c
- function_names:
  - bio_f_async_filter
  - async_new
  - async_free
  - async_read
  - async_write
  - async_ctrl
  - async_gets
  - async_puts
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/asynciotest.c
- function_names:
  - main
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/rc2test.c
- function_names:
  - main
  - main
  - pt
  source_file: /src/openweave-core/third_party/openssl/openssl/test/md5test.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/v3ext.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.h
- function_names:
  - main
  - pt
  source_file: /src/openweave-core/third_party/openssl/openssl/test/sha1test.c
- function_names:
  - hexdump
  - run_test_vectors
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/igetest.c
- function_names:
  - glue
  - CRL_from_strings
  - X509_from_strings
  - make_CRL_stack
  - test_crl
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/crltest.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/test/methtest.c
- function_names:
  - bn_expand2
  - message
  - main
  - test_add
  - test_sub
  - test_div
  - print_word
  - test_div_word
  - test_div_recp
  - test_mul
  - test_sqr
  - test_mont
  - test_mod
  - test_mod_mul
  - test_mod_exp
  - test_mod_exp_mont_consttime
  - test_mod_exp_mont5
  - test_exp
  - test_gf2m_add
  - test_gf2m_mod
  - test_gf2m_mod_mul
  - test_gf2m_mod_sqr
  - test_gf2m_mod_inv
  - test_gf2m_mod_div
  - test_gf2m_mod_exp
  - test_gf2m_mod_sqrt
  - test_gf2m_mod_solve_quad
  - genprime_cb
  - test_kron
  - test_sqrt
  - test_small_prime
  - test_bn2dec
  - test_lshift
  - test_lshift1
  - test_rshift
  - test_rshift1
  - rand_neg
  source_file: /src/openweave-core/third_party/openssl/openssl/test/bntest.c
- function_names:
  - cookie_gen
  - cookie_verify
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/dtlsv1listentest.c
- function_names:
  - main
  - showbn
  - run_srp
  - check_bn
  - run_srp_kat
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/srptest.c
- function_names:
  - test_afalg_aes_128_cbc
  - main
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/afalgtest.c
- function_names:
  - shlib_load
  - shlib_sym
  - shlib_close
  - shlib_load
  - shlib_sym
  - shlib_close
  - main
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/shlibloadtest.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.h
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/bio_enc_test.c
- function_names:
  - test_binary_op
  - test_binary_op_8
  - test_is_zero
  - test_is_zero_8
  - test_select
  - test_select_8
  - test_select_int
  - test_eq_int
  - test_eq_int_8
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/constant_time_test.c
- function_names:
  - ssl_give_srp_client_pwd_cb
  - ssl_srp_server_param_cb
  - cb_client_npn
  - cb_server_npn
  - cb_server_rejects_npn
  - verify_npn
  - servername_cb
  - verify_servername
  - next_protos_parse
  - cb_server_alpn
  - verify_alpn
  - serverinfo_cli_parse_cb
  - verify_serverinfo
  - custom_ext_0_cli_add_cb
  - custom_ext_0_cli_parse_cb
  - custom_ext_1_cli_add_cb
  - custom_ext_1_cli_parse_cb
  - custom_ext_2_cli_add_cb
  - custom_ext_2_cli_parse_cb
  - custom_ext_3_cli_add_cb
  - custom_ext_3_cli_parse_cb
  - custom_ext_0_srv_parse_cb
  - custom_ext_0_srv_add_cb
  - custom_ext_1_srv_parse_cb
  - custom_ext_1_srv_add_cb
  - custom_ext_2_srv_parse_cb
  - custom_ext_2_srv_add_cb
  - custom_ext_3_srv_parse_cb
  - custom_ext_3_srv_add_cb
  - sv_usage
  - print_key_details
  - print_details
  - protocol_from_string
  - read_session
  - write_session
  - set_protocol_version
  - main
  - doit_localhost
  - doit_biopair
  - doit
  - verify_callback
  - app_verify_callback
  - get_dh512
  - get_dh1024
  - get_dh1024dsa
  - psk_key2bn
  - psk_client_callback
  - psk_server_callback
  source_file: /src/openweave-core/third_party/openssl/openssl/test/ssltest_old.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/memleaktest.c
- function_names:
  - main
  - display_engine_list
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/enginetest.c
- function_names:
  - main
  - group_order_tests
  - prime_field_tests
  - char2_field_tests
  - internal_curve_test
  - nistp_single_test
  - nistp_tests
  - parameter_test
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/ectest.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/sanitytest.c
- function_names:
  - main
  - main
  - pt
  - cfb_test
  - cfb64_test
  - ede_cfb64_test
  source_file: /src/openweave-core/third_party/openssl/openssl/test/destest.c
- function_names:
  - a_is_zero_mod_one
  - test_exp_mod_zero
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/exptest.c
- function_names:
  - main
  - change_rand
  - restore_rand
  - fbytes
  - x9_62_test_internal
  - x9_62_tests
  - test_builtin
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/ecdsatest.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/sha256t.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest_cavs.h
- function_names:
  - add_test
  - add_all_tests
  - run_tests
  - print_string_maybe_null
  - strings_equal
  source_file: /src/openweave-core/third_party/openssl/openssl/test/testutil.c
- function_names:
  - main
  - main
  - pt
  source_file: /src/openweave-core/third_party/openssl/openssl/test/rmdtest.c
- function_names:
  - do_PRF
  - client_session
  - validate_client_hello
  - send_hello_verify
  - send_server_hello
  - send_record
  - send_finished
  - validate_ccs
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/bad_dtls_test.c
- function_names:
  - main
  - main
  - pt
  source_file: /src/openweave-core/third_party/openssl/openssl/test/md4test.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.h
- function_names:
  - main
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/rc5test.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/aborttest.c
- function_names:
  - test_dtls_unprocessed
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/dtlstest.c
- function_names:
  - set_up
  - execute_test
  - tear_down
  - test_bad_asn1
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/d2i_test.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/clienthellotest.c
- function_names:
  - test_PACKET_remaining
  - test_PACKET_end
  - test_PACKET_get_1
  - test_PACKET_get_4
  - test_PACKET_get_net_2
  - test_PACKET_get_net_3
  - test_PACKET_get_net_4
  - test_PACKET_get_sub_packet
  - test_PACKET_get_bytes
  - test_PACKET_copy_bytes
  - test_PACKET_copy_all
  - test_PACKET_memdup
  - test_PACKET_strndup
  - test_PACKET_contains_zero_byte
  - test_PACKET_forward
  - test_PACKET_buf_init
  - test_PACKET_null_init
  - test_PACKET_equal
  - test_PACKET_get_length_prefixed_1
  - test_PACKET_get_length_prefixed_2
  - test_PACKET_get_length_prefixed_3
  - test_PACKET_as_length_prefixed_1
  - test_PACKET_as_length_prefixed_2
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/packettest.c
- function_names:
  - set_up
  - tear_down
  - mk_file_path
  - load_pem_cert
  - read_text_file
  - compare_extension_printout
  - assert_validity
  - execute_cert_test
  - test_no_scts_in_certificate
  - test_one_sct_in_certificate
  - test_multiple_scts_in_certificate
  - test_verify_one_sct
  - test_verify_multiple_scts
  - test_verify_fails_for_future_sct
  - test_decode_tls_sct
  - test_encode_tls_sct
  - test_default_ct_policy_eval_ctx_time_is_now
  - main
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/ct_test.c
- function_names:
  - main
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/rc4test.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/test/testutil.h
- function_names:
  - load_certs_from_file
  - test_alt_chains_cert_forgery
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/verify_extra_test.c
- function_names:
  - main
  - main
  - pt
  source_file: /src/openweave-core/third_party/openssl/openssl/test/md2test.c
- function_names:
  - main
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/mdc2test.c
- function_names:
  - main
  - main
  - cfb64_test
  - pt
  source_file: /src/openweave-core/third_party/openssl/openssl/test/ideatest.c
- function_names:
  - main
  - KDF1_SHA1
  - test_ecdh_curve
  - mk_eckey
  - ecdh_kat
  - ecdh_cavs_kat
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/ecdhtest.c
- function_names:
  - execute_test_large_message
  - test_large_message_tls
  - test_large_message_tls_read_ahead
  - test_large_message_dtls
  - ocsp_server_cb
  - ocsp_client_cb
  - test_tlsext_status_type
  - ssl_session_set_up
  - ssl_session_tear_down
  - new_session_cb
  - remove_session_cb
  - execute_test_session
  - test_session_with_only_int_cache
  - test_session_with_only_ext_cache
  - test_session_with_both_cache
  - setupbio
  - test_ssl_set_bio
  - ssl_bio_set_up
  - ssl_bio_tear_down
  - execute_test_ssl_bio
  - test_ssl_bio_pop_next_bio
  - test_ssl_bio_pop_ssl_bio
  - test_ssl_bio_change_rbio
  - test_ssl_bio_change_wbio
  - test_set_sigalgs
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/sslapitest.c
- function_names:
  - main
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/casttest.c
- function_names:
  - load_example_rsa_key
  - test_EVP_DigestSignInit
  - test_EVP_DigestVerifyInit
  - test_d2i_AutoPrivateKey
  - test_EVP_PKCS82PKEY
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/evp_extra_test.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/secmemtest.c
- function_names:
  - main
  - main
  - dsa_cb
  source_file: /src/openweave-core/third_party/openssl/openssl/test/dsatest.c
- function_names:
  - is_exception
  - set_cn
  - set_altname
  - set_cn1
  - set_cn_and_email
  - set_cn2
  - set_cn3
  - set_email1
  - set_email2
  - set_email3
  - set_email_and_cn
  - set_altname_dns
  - set_altname_email
  - make_cert
  - check_message
  - run_cert
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/v3nametest.c
- function_names:
  - exnew
  - exdup
  - exfree
  - MYOBJ_new
  - MYOBJ_sethello
  - MYOBJ_gethello
  - MYOBJ_free
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/exdatatest.c
- function_names:
  - bio_f_tls_dump_filter
  - bio_f_tls_dump_filter_free
  - tls_dump_new
  - tls_dump_free
  - copy_flags
  - dump_data
  - tls_dump_read
  - tls_dump_write
  - tls_dump_ctrl
  - tls_dump_gets
  - tls_dump_puts
  - mempacket_free
  - bio_s_mempacket_test
  - bio_s_mempacket_test_free
  - mempacket_test_new
  - mempacket_test_free
  - mempacket_test_read
  - mempacket_test_inject
  - mempacket_test_write
  - mempacket_test_ctrl
  - mempacket_test_gets
  - mempacket_test_puts
  - create_ssl_ctx_pair
  - create_ssl_objects
  - create_ssl_connection
  source_file: /src/openweave-core/third_party/openssl/openssl/test/ssltestlib.c
- function_names:
  - set_up
  - test_default_cipherlist
  - execute_test
  - tear_down
  - test_default_cipherlist_implicit
  - test_default_cipherlist_explicit
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/cipherlist_test.c
- function_names:
  - main
  - main
  - print_test_data
  - test
  source_file: /src/openweave-core/third_party/openssl/openssl/test/bftest.c
- function_names:
  - hexdump
  - convert
  - test_p5_pbkdf2
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/p5_crpt2_test.c
- function_names:
  - set_up
  - set_up_dtls
  - dummy_handshake
  - tear_down
  - print_payload
  - execute_heartbeat
  - honest_payload_size
  - test_dtls1_not_bleeding
  - test_dtls1_not_bleeding_empty_payload
  - test_dtls1_heartbleed
  - test_dtls1_heartbleed_empty_payload
  - test_dtls1_heartbleed_excessive_plaintext_length
  - main
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/heartbeat_test.c
- function_names:
  - remove_space
  - parse_line
  - unescape
  - test_bin
  - test_uint64
  - evp_find_test
  - hex_print
  - free_expected
  - print_expected
  - check_test_error
  - setup_test
  - find_key
  - free_key_list
  - check_unsupported
  - read_key
  - process_test
  - check_var_length_output
  - check_output
  - main
  - test_free
  - digest_test_init
  - digest_test_cleanup
  - digest_test_parse
  - digest_test_run
  - cipher_test_init
  - cipher_test_cleanup
  - cipher_test_parse
  - cipher_test_enc
  - cipher_test_run
  - mac_test_init
  - mac_test_cleanup
  - mac_test_parse
  - mac_test_run
  - pkey_test_init
  - pkey_test_cleanup
  - pkey_test_ctrl
  - pkey_test_parse
  - pkey_test_run
  - sign_test_init
  - verify_recover_test_init
  - decrypt_test_init
  - verify_test_init
  - verify_test_run
  - pderive_test_init
  - pderive_test_parse
  - pderive_test_run
  - scrypt_test_parse
  - pbkdf2_test_parse
  - pkcs12_test_parse
  - pbe_test_init
  - pbe_test_cleanup
  - pbe_test_parse
  - pbe_test_run
  - encode_test_init
  - encode_test_cleanup
  - encode_test_parse
  - encode_test_run
  - kdf_test_init
  - kdf_test_cleanup
  - kdf_test_parse
  - kdf_test_run
  source_file: /src/openweave-core/third_party/openssl/openssl/test/evp_test.c
- function_names:
  - parse_boolean
  - parse_enum
  - enum_name
  - parse_expected_result
  - ssl_test_result_name
  - parse_alert
  - parse_client_alert
  - parse_server_alert
  - ssl_alert_name
  - parse_protocol
  - ssl_protocol_name
  - parse_client_verify_callback
  - ssl_verify_callback_name
  - parse_servername
  - parse_expected_servername
  - ssl_servername_name
  - parse_servername_callback
  - ssl_servername_callback_name
  - parse_session_ticket
  - ssl_session_ticket_name
  - parse_test_method
  - ssl_test_method_name
  - parse_handshake_mode
  - ssl_handshake_mode_name
  - parse_ct_validation
  - ssl_ct_validation_name
  - parse_certstatus
  - ssl_certstatus_name
  - parse_expected_tmp_key_type
  - SSL_TEST_CTX_new
  - ssl_test_extra_conf_free_data
  - ssl_test_ctx_free_extra_data
  - SSL_TEST_CTX_free
  - parse_client_options
  - parse_server_options
  - SSL_TEST_CTX_create
  source_file: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx.c
- function_names:
  - save_errno
  - restore_errno
  - test_usage
  - print_errors
  - load_chain
  - read_to_eol
  - hexdecode
  - checked_uint8
  - tlsa_import_rr
  - allws
  - test_tlsafile
  - main
  - store_ctx_dane_init
  source_file: /src/openweave-core/third_party/openssl/openssl/test/danetest.c
- function_names:
  - main
  - key1
  - key2
  - key3
  - pad_unknown
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/rsa_test.c
- function_names:
  - only_pause
  - add_two
  - save_current
  - waitfd
  - blockpause
  - test_ASYNC_init_thread
  - test_ASYNC_start_job
  - test_ASYNC_get_current_job
  - test_ASYNC_WAIT_CTX_get_all_fds
  - test_ASYNC_block_pause
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/asynctest.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/sha512t.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/randtest.c
- function_names:
  - set_up
  - print_alert
  - check_result
  - check_alerts
  - check_protocol
  - check_servername
  - check_session_ticket
  - check_npn
  - check_alpn
  - check_resumption
  - check_tmp_key
  - check_test
  - execute_test
  - tear_down
  - test_handshake
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/ssl_test.c
- function_names:
  - main
  - pt
  source_file: /src/openweave-core/third_party/openssl/openssl/test/hmactest.c
- function_names:
  - copy_flags
  - tls_corrupt_read
  - tls_corrupt_write
  - tls_corrupt_ctrl
  - tls_corrupt_gets
  - tls_corrupt_puts
  - tls_corrupt_new
  - tls_corrupt_free
  - bio_f_tls_corrupt_filter
  - bio_f_tls_corrupt_filter_free
  - setup_cipher_list
  - test_ssl_corrupt
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/sslcorrupttest.c
- function_names:
  - HANDSHAKE_RESULT_new
  - HANDSHAKE_RESULT_free
  - ctx_data_free_data
  - info_cb
  - select_server_ctx
  - servername_ignore_cb
  - servername_reject_cb
  - server_ocsp_cb
  - client_ocsp_cb
  - verify_reject_cb
  - verify_accept_cb
  - broken_session_ticket_cb
  - do_not_call_session_ticket_cb
  - parse_protos
  - client_npn_cb
  - server_npn_cb
  - server_alpn_cb
  - configure_handshake_ctx
  - configure_handshake_ssl
  - create_peer
  - peer_free_data
  - do_handshake_step
  - do_app_data_step
  - do_reneg_setup_step
  - do_shutdown_step
  - next_phase
  - do_connect_step
  - handshake_status
  - dup_str
  - do_handshake_internal
  - do_handshake
  source_file: /src/openweave-core/third_party/openssl/openssl/test/handshake_helper.c
- function_names:
  - SSL_TEST_CLIENT_CONF_equal
  - SSL_TEST_SERVER_CONF_equal
  - SSL_TEST_EXTRA_CONF_equal
  - SSL_TEST_CTX_equal
  - set_up
  - execute_test
  - execute_failure_test
  - tear_down
  - test_empty_configuration
  - test_good_configuration
  - test_bad_configuration
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/test/ssl_test_ctx_test.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkwrite.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/pkcs12/pkread.c
- function_names:
  - aes_ccm_encrypt
  - aes_ccm_decrypt
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesccm.c
- function_names:
  - aes_gcm_encrypt
  - aes_gcm_decrypt
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/evp/aesgcm.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign2.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ddec.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_enc.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_ver.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_denc.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_dec.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_comp.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_uncomp.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/cms/cms_sign.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/smime/smdec.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/smime/smsign2.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/smime/smenc.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/smime/smver.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-conf.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-conf.c
- function_names:
  - interrupt
  - sigsetup
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/bio/saccept.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-arg.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/bio/client-arg.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/bio/sconnect.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/demos/bio/server-cmod.c
- function_names:
  - ecparam_main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/ecparam.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.h
- function_names:
  - verify_main
  - check
  - cb
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/verify.c
- function_names:
  - gendsa_main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/gendsa.c
- function_names:
  - tm_Time_F
  - s_time_main
  - doConnection
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/s_time.c
- function_names:
  - req_main
  - make_REQ
  - build_subject
  - add_DN_object
  - add_attribute_object
  - req_check_len
  - check_end
  - set_keygen_ctx
  - genpkey_cb
  - do_sign_init
  - do_X509_sign
  - do_X509_REQ_sign
  - do_X509_CRL_sign
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/req.c
- function_names:
  - crl_main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/crl.c
- function_names:
  - sig_done
  - alarm_win32
  - sleepy
  - Time_F
  - Time_F
  - found
  - EVP_Digest_MD2_loop
  - EVP_Digest_MDC2_loop
  - EVP_Digest_MD4_loop
  - MD5_loop
  - HMAC_loop
  - SHA1_loop
  - SHA256_loop
  - SHA512_loop
  - WHIRLPOOL_loop
  - EVP_Digest_RMD160_loop
  - RC4_loop
  - DES_ncbc_encrypt_loop
  - DES_ede3_cbc_encrypt_loop
  - AES_cbc_128_encrypt_loop
  - AES_cbc_192_encrypt_loop
  - AES_cbc_256_encrypt_loop
  - AES_ige_128_encrypt_loop
  - AES_ige_192_encrypt_loop
  - AES_ige_256_encrypt_loop
  - CRYPTO_gcm128_aad_loop
  - EVP_Update_loop
  - EVP_Digest_loop
  - RSA_sign_loop
  - RSA_verify_loop
  - DSA_sign_loop
  - DSA_verify_loop
  - ECDSA_sign_loop
  - ECDSA_verify_loop
  - ECDH_compute_key_loop
  - KDF1_SHA1
  - run_benchmark
  - print_message
  - pkey_print_message
  - print_result
  - sstrsep
  - do_multi
  - multiblock_speed
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/speed.c
- function_names:
  - app_RAND_load_file
  - app_RAND_load_files
  - app_RAND_write_file
  - app_RAND_allow_write_file
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/app_rand.c
- function_names:
  - save_errno
  - restore_errno
  - do_ssl_shutdown
  - psk_client_cb
  - ssl_servername_cb
  - srp_Verify_N_and_g
  - ssl_srp_verify_param_cb
  - ssl_give_srp_client_pwd_cb
  - next_proto_cb
  - serverinfo_cli_parse_cb
  - hexdecode
  - checked_uint8
  - tlsa_import_rr
  - freeandcopy
  - s_client_main
  - print_stuff
  - ocsp_resp_cb
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/s_client.c
- function_names:
  - passwd_main
  - md5crypt
  - do_passwd
  - passwd_main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/passwd.c
- function_names:
  - sess_id_main
  - load_sess_id
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/sess_id.c
- function_names:
  - pkey_main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/pkey.c
- function_names:
  - genpkey_main
  - init_keygen_file
  - init_gen_str
  - genpkey_cb
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/genpkey.c
- function_names:
  - cms_main
  - save_certs
  - cms_cb
  - receipt_request_print
  - make_receipt_request
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/cms.c
- function_names:
  - bit_set
  - bit_isset
  - add_entry
  - handle_symlink
  - do_file
  - str_free
  - do_dir
  - rehash_main
  - rehash_main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/rehash.c
- function_names:
  - opt_progname
  - opt_progname
  - opt_progname
  - opt_getprog
  - opt_init
  - opt_format_error
  - opt_format
  - opt_cipher
  - opt_md
  - opt_pair
  - opt_int
  - opt_long
  - opt_imax
  - opt_umax
  - opt_ulong
  - opt_verify
  - opt_next
  - opt_arg
  - opt_flag
  - opt_unknown
  - opt_rest
  - opt_num_rest
  - valtype2param
  - opt_help
  - app_isdir
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/opt.c
- function_names:
  - rsa_main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/rsa.c
- function_names:
  - cleanup
  - validate_argv
  - process_glob
  - win32_utf8argv
  - win32_utf8argv
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/win32_init.c
- function_names:
  - spkac_main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/spkac.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/timeouts.h
- function_names:
  - prime_main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/prime.c
- function_names:
  - dgst_main
  - do_fp
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/dgst.c
- function_names:
  - pkcs7_main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/pkcs7.c
- function_names:
  - enc_main
  - show_ciphers
  - set_hex
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/enc.c
- function_names:
  - pkeyutl_main
  - init_ctx
  - setup_peer
  - do_keyop
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/pkeyutl.c
- function_names:
  - dhparam_main
  - dh_cb
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/dhparam.c
- function_names:
  - __struct
  - main
  - TerminalSocket
  - CreateSocketPair
  - SocketPairTimeoutAst
  - TerminalDeviceAst
  - LogMessage
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/vms_term_sock.c
- function_names:
  - ca_main
  - lookup_conf
  - certify
  - certify_cert
  - do_body
  - write_new_certificate
  - certify_spkac
  - check_time_format
  - do_revoke
  - get_certificate_status
  - do_updatedb
  - make_revocation_str
  - make_revoked
  - old_entry_print
  - unpack_revinfo
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/ca.c
- function_names:
  - x509_main
  - x509_load_serial
  - x509_certify
  - callb
  - sign
  - purpose_print
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/x509.c
- function_names:
  - rand_main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/rand.c
- function_names:
  - append_buf
  - util_flags
  - util_verbose
  - engine_main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/engine.c
- function_names:
  - timebomb_sigalarm
  - dsaparam_main
  - dsa_cb
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/dsaparam.c
- function_names:
  - dummy_psk
  - dummy_srp
  - ciphers_main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/ciphers.c
- function_names:
  - pkcs12_main
  - dump_certs_keys_p12
  - dump_certs_pkeys_bags
  - dump_certs_pkeys_bag
  - alg_print
  - print_attribs
  - hex_prin
  - set_pbe
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/pkcs12.c
- function_names:
  - genrsa_main
  - genrsa_cb
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/genrsa.c
- function_names:
  - chopup_args
  - app_init
  - ctx_set_verify_locations
  - ctx_set_ctlog_list_file
  - dump_cert_text
  - ui_open
  - ui_read
  - ui_write
  - ui_close
  - setup_ui_method
  - destroy_ui_method
  - password_callback
  - app_passwd
  - app_get_pass
  - app_load_config_
  - app_load_config
  - app_load_config_quiet
  - app_load_modules
  - add_oid_section
  - load_pkcs12
  - load_cert_crl_http
  - load_cert
  - load_crl
  - load_key
  - load_pubkey
  - load_certs_crls
  - app_malloc
  - load_certs
  - load_crls
  - set_cert_ex
  - set_name_ex
  - set_ext_copy
  - copy_extensions
  - set_multi_opts
  - set_table_opts
  - print_name
  - print_bignum_var
  - print_array
  - setup_verify
  - try_load_engine
  - setup_engine
  - release_engine
  - index_serial_hash
  - index_serial_cmp
  - index_name_qual
  - index_name_hash
  - index_name_cmp
  - BIO_new_file
  - save_serial
  - rotate_serial
  - rand_serial
  - load_index
  - index_index
  - save_index
  - rotate_index
  - free_index
  - parse_yesno
  - parse_name
  - bio_to_mem
  - pkey_ctrl_string
  - nodes_print
  - policies_print
  - next_protos_parse
  - print_cert_checks
  - get_dp_url
  - load_crl_crldp
  - crls_http_cb
  - store_setup_crl_download
  - app_tminterval
  - app_tminterval
  - app_tminterval
  - app_tminterval
  - app_tminterval
  - app_access
  - app_isdir
  - app_isdir
  - close_stdin_sock
  - fileno_stdin
  - fileno_stdin
  - fileno_stdout
  - raw_read_stdin
  - raw_read_stdin
  - raw_read_stdin
  - raw_write_stdout
  - raw_write_stdout
  - istext
  - dup_bio_in
  - dup_bio_out
  - dup_bio_err
  - unbuffer
  - modestr
  - modeverb
  - bio_open_owner
  - bio_open_default_
  - bio_open_default
  - bio_open_default_quiet
  - wait_for_async
  - has_stdin_waiting
  - corrupt_signature
  - set_cert_times
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/apps.c
- function_names:
  - pkeyparam_main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/pkeyparam.c
- function_names:
  - get_dsa512
  - get_dsa1024
  - get_dsa2048
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/testdsa.h
- function_names:
  - rsautl_main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/rsautl.c
- function_names:
  - get_index
  - print_entry
  - print_index
  - print_user
  - update_index
  - lookup_conf
  - srp_verify_user
  - srp_create_user
  - srp_main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/srp.c
- function_names:
  - pkcs8_main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/pkcs8.c
- function_names:
  - copy_argv
  - decc_init
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/vms_decc_init.c
- function_names:
  - psk_server_cb
  - ssl_srp_server_param_cb
  - BIO_f_ebcdic_filter
  - ebcdic_new
  - ebcdic_free
  - ebcdic_read
  - ebcdic_write
  - ebcdic_ctrl
  - ebcdic_gets
  - ebcdic_puts
  - ssl_servername_cb
  - cert_status_cb
  - next_proto_cb
  - alpn_cb
  - not_resumable_sess_cb
  - print_stats
  - sv_body
  - close_accept_socket
  - init_ssl_connection
  - load_dh_param
  - www_body
  - rev_body
  - generate_session_id
  - add_session
  - get_session
  - del_session
  - init_session_cache_ctx
  - free_sessions
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/s_server.c
- function_names:
  - init_client
  - do_server
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/s_socket.c
- function_names:
  - errstr_main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/errstr.c
- function_names:
  - smime_main
  - save_certs
  - smime_cb
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/smime.c
- function_names:
  - ts_main
  - txt2obj
  - load_config_file
  - query_command
  - create_query
  - create_digest
  - create_nonce
  - reply_command
  - read_PKCS7
  - create_response
  - serial_cb
  - next_serial
  - save_ts_serial
  - verify_command
  - create_verify_ctx
  - create_cert_store
  - verify_cb
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/ts.c
- function_names:
  - crl2pkcs7_main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/crl2p7.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/progs.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/apps.h
- function_names:
  - nseq_main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/nseq.c
- function_names:
  - ec_main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/ec.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/testrsa.h
- function_names:
  - apps_startup
  - apps_shutdown
  - make_config_name
  - main
  - list_cipher_fn
  - list_md_fn
  - list_main
  - help_main
  - exit_main
  - list_type
  - list_pkey
  - function_cmp
  - function_hash
  - SortFnByName
  - list_disabled
  - prog_init
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/openssl.c
- function_names:
  - lookup
  - verify_callback
  - set_cert_stuff
  - ssl_print_client_cert_types
  - do_print_sigalgs
  - ssl_print_sigalgs
  - ssl_print_point_formats
  - ssl_print_curves
  - ssl_print_tmp_key
  - bio_dump_callback
  - apps_ssl_info_callback
  - msg_cb
  - tlsext_cb
  - generate_cookie_callback
  - verify_cookie_callback
  - print_chain_flags
  - set_cert_cb
  - ssl_ctx_set_excert
  - ssl_excert_prepend
  - ssl_excert_free
  - load_excert
  - args_excert
  - print_raw_cipherlist
  - hexencode
  - print_verify_detail
  - print_ssl_summary
  - ssl_load_stores
  - security_callback_debug
  - ssl_ctx_security_debug
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/s_cb.c
- function_names:
  - ocsp_main
  - add_ocsp_cert
  - add_ocsp_serial
  - make_ocsp_response
  - lookup_serial
  - init_responder
  - urldecode
  - do_responder
  - send_ocsp_response
  - query_responder
  - process_responder
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/ocsp.c
- function_names:
  - version_main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/version.c
- function_names:
  - dsa_main
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/dsa.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/s_apps.h
- function_names:
  - asn1parse_main
  - do_generate
  source_file: /src/openweave-core/third_party/openssl/openssl/apps/asn1pars.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/internal/comp.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/internal/thread_once.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/internal/o_str.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/internal/bio.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/internal/err.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/internal/dso.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/internal/dane.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/internal/conf.h
- function_names:
  - constant_time_msb
  - constant_time_lt
  - constant_time_lt_8
  - constant_time_ge
  - constant_time_ge_8
  - constant_time_is_zero
  - constant_time_is_zero_8
  - constant_time_eq
  - constant_time_eq_8
  - constant_time_eq_int
  - constant_time_eq_int_8
  - constant_time_select
  - constant_time_select_8
  - constant_time_select_int
  source_file: /src/openweave-core/third_party/openssl/openssl/include/internal/constant_time_locl.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/internal/numbers.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/internal/o_dir.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/bn.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/camellia.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/pkcs7.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/txt_db.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/md4.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/e_os2.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/rsa.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/des.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/rand.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/comp.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/mdc2.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/dh.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/whrlpool.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/ct.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/pem.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/safestack.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/async.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/ebcdic.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/evp.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/opensslv.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/blowfish.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/dsa.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/idea.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/md5.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/asn1.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/x509v3.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/stack.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/ocsp.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/crypto.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/kdf.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/pem2.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/tls1.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/cmac.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/obj_mac.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/lhash.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/rc5.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/ecdh.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/ssl.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/bio.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/ecdsa.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/srp.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/ec.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/ripemd.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/err.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/x509_vfy.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/ssl2.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/seed.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/rc2.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/ui.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/engine.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/objects.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/rc4.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/cast.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/hmac.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/pkcs12.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/ossl_typ.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/asn1t.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/x509.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/md2.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/cms.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/ts.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/srtp.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/conf.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/sha.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/ssl3.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/modes.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/aes.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/symhacks.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/dtls1.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/conf_api.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/include/openssl/buffer.h
- function_names:
  - FuzzerInitialize
  - FuzzerTestOneInput
  source_file: /src/openweave-core/third_party/openssl/openssl/fuzz/asn1.c
- function_names:
  - FuzzerInitialize
  - FuzzerTestOneInput
  source_file: /src/openweave-core/third_party/openssl/openssl/fuzz/asn1parse.c
- function_names:
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/fuzz/test-corpus.c
- function_names:
  - FuzzerInitialize
  - FuzzerTestOneInput
  source_file: /src/openweave-core/third_party/openssl/openssl/fuzz/crl.c
- function_names:
  - FuzzerInitialize
  - FuzzerTestOneInput
  source_file: /src/openweave-core/third_party/openssl/openssl/fuzz/cms.c
- function_names:
  - FuzzerInitialize
  - FuzzerTestOneInput
  source_file: /src/openweave-core/third_party/openssl/openssl/fuzz/bndiv.c
- function_names:
  - FuzzerInitialize
  - FuzzerTestOneInput
  source_file: /src/openweave-core/third_party/openssl/openssl/fuzz/ct.c
- function_names:
  - FuzzerInitialize
  - FuzzerTestOneInput
  source_file: /src/openweave-core/third_party/openssl/openssl/fuzz/server.c
- function_names:
  - FuzzerInitialize
  - FuzzerTestOneInput
  source_file: /src/openweave-core/third_party/openssl/openssl/fuzz/x509.c
- function_names:
  - FuzzerInitialize
  - FuzzerTestOneInput
  source_file: /src/openweave-core/third_party/openssl/openssl/fuzz/conf.c
- function_names:
  - FuzzerInitialize
  - FuzzerTestOneInput
  source_file: /src/openweave-core/third_party/openssl/openssl/fuzz/bignum.c
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  - main
  source_file: /src/openweave-core/third_party/openssl/openssl/fuzz/driver.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/fuzz/fuzzer.h
- function_names:
  - ssl_set_option
  - ssl_match_option
  - ssl_set_option_list
  - cmd_SignatureAlgorithms
  - cmd_ClientSignatureAlgorithms
  - cmd_Curves
  - cmd_ECDHParameters
  - cmd_CipherString
  - cmd_Protocol
  - protocol_from_string
  - min_max_proto
  - cmd_MinProtocol
  - cmd_MaxProtocol
  - cmd_Options
  - cmd_VerifyMode
  - cmd_Certificate
  - cmd_PrivateKey
  - cmd_ServerInfoFile
  - do_store
  - cmd_ChainCAPath
  - cmd_ChainCAFile
  - cmd_VerifyCAPath
  - cmd_VerifyCAFile
  - cmd_ClientCAFile
  - cmd_ClientCAPath
  - cmd_DHParameters
  - ssl_conf_cmd_skip_prefix
  - ssl_conf_cmd_allowed
  - ssl_conf_cmd_lookup
  - ctrl_switch_option
  - SSL_CONF_cmd
  - SSL_CONF_cmd_argv
  - SSL_CONF_cmd_value_type
  - SSL_CONF_CTX_new
  - SSL_CONF_CTX_finish
  - SSL_CONF_CTX_free
  - SSL_CONF_CTX_set_flags
  - SSL_CONF_CTX_clear_flags
  - SSL_CONF_CTX_set1_prefix
  - SSL_CONF_CTX_set_ssl
  - SSL_CONF_CTX_set_ssl_ctx
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_conf.c
- function_names:
  - packet_forward
  - PACKET_remaining
  - PACKET_end
  - PACKET_data
  - PACKET_buf_init
  - PACKET_null_init
  - PACKET_equal
  - PACKET_peek_sub_packet
  - PACKET_get_sub_packet
  - PACKET_peek_net_2
  - PACKET_get_net_2
  - PACKET_peek_net_3
  - PACKET_get_net_3
  - PACKET_peek_net_4
  - PACKET_get_net_4
  - PACKET_peek_1
  - PACKET_get_1
  - PACKET_peek_4
  - PACKET_get_4
  - PACKET_peek_bytes
  - PACKET_get_bytes
  - PACKET_peek_copy_bytes
  - PACKET_copy_bytes
  - PACKET_copy_all
  - PACKET_memdup
  - PACKET_strndup
  - PACKET_contains_zero_byte
  - PACKET_forward
  - PACKET_get_length_prefixed_1
  - PACKET_as_length_prefixed_1
  - PACKET_get_length_prefixed_2
  - PACKET_as_length_prefixed_2
  - PACKET_get_length_prefixed_3
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/packet_locl.h
- function_names:
  - tls1_md5_final_raw
  - tls1_sha1_final_raw
  - tls1_sha256_final_raw
  - tls1_sha512_final_raw
  - ssl3_cbc_record_digest_supported
  - ssl3_cbc_digest_record
  - tls_fips_digest_extra
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/s3_cbc.c
- function_names:
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - DEFINE_RUN_ONCE_STATIC
  - ssl_library_stop
  - OPENSSL_init_ssl
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_init.c
- function_names:
  - custom_ext_find
  - custom_ext_init
  - custom_ext_parse
  - custom_ext_add
  - custom_exts_copy
  - custom_exts_free
  - custom_ext_meth_add
  - SSL_CTX_has_client_custom_ext
  - SSL_CTX_add_client_custom_ext
  - SSL_CTX_add_server_custom_ext
  - SSL_extension_supported
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/t1_ext.c
- function_names:
  - ssl_session_oinit
  - ssl_session_sinit
  - i2d_SSL_SESSION
  - ssl_session_strndup
  - ssl_session_memcpy
  - d2i_SSL_SESSION
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_asn1.c
- function_names:
  - SSL_test_functions
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_utst.c
- function_names:
  - BIO_f_ssl
  - ssl_new
  - ssl_free
  - ssl_read
  - ssl_write
  - ssl_ctrl
  - ssl_callback_ctrl
  - ssl_puts
  - BIO_new_buffer_ssl_connect
  - BIO_new_ssl_connect
  - BIO_new_ssl
  - BIO_ssl_copy_session_id
  - BIO_ssl_shutdown
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/bio_ssl.c
- function_names:
  - TLSv1_2_method
  - TLSv1_2_server_method
  - TLSv1_2_client_method
  - TLSv1_1_method
  - TLSv1_1_server_method
  - TLSv1_1_client_method
  - TLSv1_method
  - TLSv1_server_method
  - TLSv1_client_method
  - SSLv3_method
  - SSLv3_server_method
  - SSLv3_client_method
  - DTLSv1_2_method
  - DTLSv1_2_server_method
  - DTLSv1_2_client_method
  - DTLSv1_method
  - DTLSv1_server_method
  - DTLSv1_client_method
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/methods.c
- function_names:
  - SSL_state_string_long
  - SSL_state_string
  - SSL_alert_type_string_long
  - SSL_alert_type_string
  - SSL_alert_desc_string
  - SSL_alert_desc_string_long
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_stat.c
- function_names:
  - ssl_module_free
  - ssl_module_init
  - SSL_add_ssl_module
  - ssl_name_find
  - ssl_do_config
  - SSL_config
  - SSL_CTX_config
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_mcnf.c
- function_names:
  - ssl_add_clienthello_renegotiate_ext
  - ssl_parse_clienthello_renegotiate_ext
  - ssl_add_serverhello_renegotiate_ext
  - ssl_parse_serverhello_renegotiate_ext
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/t1_reneg.c
- function_names:
  - dtls1_write_app_data_bytes
  - dtls1_dispatch_alert
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/d1_msg.c
- function_names:
  - cipher_compare
  - ssl_sort_cipher_list
  - ssl3_default_timeout
  - ssl3_num_ciphers
  - ssl3_get_cipher
  - ssl3_set_handshake_header
  - ssl3_handshake_write
  - ssl3_new
  - ssl3_free
  - ssl3_clear
  - srp_password_from_info_cb
  - ssl3_ctrl
  - ssl3_callback_ctrl
  - ssl3_ctx_ctrl
  - ssl3_ctx_callback_ctrl
  - ssl3_get_cipher_by_char
  - ssl3_put_cipher_by_char
  - ssl3_choose_cipher
  - ssl3_get_req_cert_type
  - ssl3_set_req_cert_type
  - ssl3_shutdown
  - ssl3_write
  - ssl3_read_internal
  - ssl3_read
  - ssl3_peek
  - ssl3_renegotiate
  - ssl3_renegotiate_check
  - ssl_get_algorithm2
  - ssl_fill_hello_random
  - ssl_generate_master_secret
  - ssl_generate_pkey
  - ssl_generate_pkey_curve
  - ssl_derive
  - ssl_dh_to_pkey
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/s3_lib.c
- function_names:
  - ssl3_generate_key_block
  - ssl3_change_cipher_state
  - ssl3_setup_key_block
  - ssl3_cleanup_key_block
  - ssl3_init_finished_mac
  - ssl3_free_digest_list
  - ssl3_finish_mac
  - ssl3_digest_cached_records
  - ssl3_final_finish_mac
  - ssl3_generate_master_secret
  - ssl3_alert_code
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/s3_enc.c
- function_names:
  - ssl_cipher_info_find
  - get_optional_pkey_id
  - get_optional_pkey_id
  - ssl_load_ciphers
  - sk_comp_cmp
  - DEFINE_RUN_ONCE_STATIC
  - load_builtin_compressions
  - ssl_cipher_get_evp
  - ssl_md
  - ssl_handshake_md
  - ssl_prf_md
  - ll_append_tail
  - ll_append_head
  - ssl_cipher_collect_ciphers
  - ssl_cipher_collect_aliases
  - ssl_cipher_apply_rule
  - ssl_cipher_strength_sort
  - ssl_cipher_process_rulestr
  - check_suiteb_cipher_list
  - SSL_CIPHER_description
  - SSL_CIPHER_get_version
  - SSL_CIPHER_get_name
  - SSL_CIPHER_get_bits
  - SSL_CIPHER_get_id
  - SSL_COMP_get0_name
  - SSL_COMP_get_id
  - ssl_cipher_get_cert_index
  - ssl_get_cipher_by_char
  - SSL_CIPHER_find
  - SSL_CIPHER_get_cipher_nid
  - SSL_CIPHER_get_digest_nid
  - SSL_CIPHER_get_kx_nid
  - SSL_CIPHER_get_auth_nid
  - SSL_CIPHER_is_aead
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_ciph.c
- function_names:
  - ERR_load_SSL_strings
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_err.c
- function_names:
  - dtls1_default_timeout
  - dtls1_new
  - dtls1_clear_queues
  - dtls1_clear_received_buffer
  - dtls1_clear_sent_buffer
  - dtls1_free
  - dtls1_clear
  - dtls1_ctrl
  - dtls1_start_timer
  - dtls1_get_timeout
  - dtls1_is_timer_expired
  - dtls1_double_timeout
  - dtls1_stop_timer
  - dtls1_check_timeout_num
  - dtls1_handle_timeout
  - get_current_time
  - DTLSv1_listen
  - dtls1_set_handshake_header
  - dtls1_handshake_write
  - dtls1_process_heartbeat
  - dtls1_heartbeat
  - dtls1_shutdown
  - dtls1_query_mtu
  - dtls1_link_min_mtu
  - dtls1_min_mtu
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/d1_lib.c
- function_names:
  - tls1_PRF
  - tls1_generate_key_block
  - tls1_change_cipher_state
  - tls1_setup_key_block
  - tls1_final_finish_mac
  - tls1_generate_master_secret
  - tls1_export_keying_material
  - tls1_alert_code
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/t1_enc.c
- function_names:
  - SSL_use_certificate
  - SSL_use_certificate_file
  - SSL_use_certificate_ASN1
  - SSL_use_RSAPrivateKey
  - ssl_set_pkey
  - SSL_use_RSAPrivateKey_file
  - SSL_use_RSAPrivateKey_ASN1
  - SSL_use_PrivateKey
  - SSL_use_PrivateKey_file
  - SSL_use_PrivateKey_ASN1
  - SSL_CTX_use_certificate
  - ssl_set_cert
  - SSL_CTX_use_certificate_file
  - SSL_CTX_use_certificate_ASN1
  - SSL_CTX_use_RSAPrivateKey
  - SSL_CTX_use_RSAPrivateKey_file
  - SSL_CTX_use_RSAPrivateKey_ASN1
  - SSL_CTX_use_PrivateKey
  - SSL_CTX_use_PrivateKey_file
  - SSL_CTX_use_PrivateKey_ASN1
  - use_certificate_chain_file
  - SSL_CTX_use_certificate_chain_file
  - SSL_use_certificate_chain_file
  - serverinfo_find_extension
  - serverinfo_srv_parse_cb
  - serverinfo_srv_add_cb
  - serverinfo_process_buffer
  - SSL_CTX_use_serverinfo
  - SSL_CTX_use_serverinfo_file
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_rsa.c
- function_names:
  - find_profile_by_name
  - ssl_ctx_make_profiles
  - SSL_CTX_set_tlsext_use_srtp
  - SSL_set_tlsext_use_srtp
  - SSL_get_selected_srtp_profile
  - ssl_add_clienthello_use_srtp_ext
  - ssl_parse_clienthello_use_srtp_ext
  - ssl_add_serverhello_use_srtp_ext
  - ssl_parse_serverhello_use_srtp_ext
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/d1_srtp.c
- function_names:
  - pitem_new
  - pitem_free
  - pqueue_new
  - pqueue_free
  - pqueue_insert
  - pqueue_peek
  - pqueue_pop
  - pqueue_find
  - pqueue_iterator
  - pqueue_next
  - pqueue_size
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/pqueue.c
- function_names:
  - dane_ctx_enable
  - dane_ctx_final
  - tlsa_free
  - dane_final
  - ssl_dane_dup
  - dane_mtype_set
  - tlsa_md_get
  - dane_tlsa_add
  - clear_ciphers
  - SSL_clear
  - SSL_CTX_set_ssl_version
  - SSL_new
  - SSL_is_dtls
  - SSL_up_ref
  - SSL_CTX_set_session_id_context
  - SSL_set_session_id_context
  - SSL_CTX_set_generate_session_id
  - SSL_set_generate_session_id
  - SSL_has_matching_session_id
  - SSL_CTX_set_purpose
  - SSL_set_purpose
  - SSL_CTX_set_trust
  - SSL_set_trust
  - SSL_set1_host
  - SSL_add1_host
  - SSL_set_hostflags
  - SSL_get0_peername
  - SSL_CTX_dane_enable
  - SSL_CTX_dane_set_flags
  - SSL_CTX_dane_clear_flags
  - SSL_dane_enable
  - SSL_dane_set_flags
  - SSL_dane_clear_flags
  - SSL_get0_dane_authority
  - SSL_get0_dane_tlsa
  - SSL_get0_dane
  - SSL_dane_tlsa_add
  - SSL_CTX_dane_mtype_set
  - SSL_CTX_set1_param
  - SSL_set1_param
  - SSL_CTX_get0_param
  - SSL_get0_param
  - SSL_certs_clear
  - SSL_free
  - SSL_set0_rbio
  - SSL_set0_wbio
  - SSL_set_bio
  - SSL_get_rbio
  - SSL_get_wbio
  - SSL_get_fd
  - SSL_get_rfd
  - SSL_get_wfd
  - SSL_set_fd
  - SSL_set_wfd
  - SSL_set_rfd
  - SSL_get_finished
  - SSL_get_peer_finished
  - SSL_get_verify_mode
  - SSL_get_verify_depth
  - (*SSL_get_verify_callback(const SSL *s)) (int, X509_STORE_CTX *)
  - SSL_CTX_get_verify_mode
  - SSL_CTX_get_verify_depth
  - (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx)) (int, X509_STORE_CTX *)
  - SSL_set_verify
  - SSL_set_verify_depth
  - SSL_set_read_ahead
  - SSL_get_read_ahead
  - SSL_pending
  - SSL_has_pending
  - SSL_get_peer_certificate
  - SSL_copy_session_id
  - SSL_CTX_check_private_key
  - SSL_check_private_key
  - SSL_waiting_for_async
  - SSL_get_all_async_fds
  - SSL_get_changed_async_fds
  - SSL_accept
  - SSL_connect
  - SSL_get_default_timeout
  - ssl_start_async_job
  - ssl_io_intern
  - SSL_read
  - SSL_peek
  - SSL_write
  - SSL_shutdown
  - SSL_renegotiate
  - SSL_renegotiate_abbreviated
  - SSL_renegotiate_pending
  - SSL_ctrl
  - SSL_callback_ctrl
  - SSL_CTX_ctrl
  - SSL_CTX_callback_ctrl
  - ssl_cipher_id_cmp
  - ssl_cipher_ptr_id_cmp
  - SSL_get_cipher_list
  - SSL_CTX_set_cipher_list
  - SSL_set_cipher_list
  - SSL_get_shared_ciphers
  - SSL_get_servername
  - SSL_get_servername_type
  - SSL_select_next_proto
  - SSL_get0_next_proto_negotiated
  - SSL_CTX_set_next_protos_advertised_cb
  - SSL_CTX_set_next_proto_select_cb
  - SSL_CTX_set_alpn_protos
  - SSL_set_alpn_protos
  - SSL_CTX_set_alpn_select_cb
  - SSL_get0_alpn_selected
  - SSL_export_keying_material
  - ssl_session_hash
  - ssl_session_cmp
  - SSL_CTX_new
  - SSL_CTX_up_ref
  - SSL_CTX_free
  - SSL_CTX_set_default_passwd_cb
  - SSL_CTX_set_default_passwd_cb_userdata
  - SSL_CTX_get_default_passwd_cb
  - SSL_CTX_get_default_passwd_cb_userdata
  - SSL_set_default_passwd_cb
  - SSL_set_default_passwd_cb_userdata
  - SSL_get_default_passwd_cb
  - SSL_get_default_passwd_cb_userdata
  - SSL_CTX_set_cert_verify_callback
  - SSL_CTX_set_verify
  - SSL_CTX_set_verify_depth
  - SSL_CTX_set_cert_cb
  - SSL_set_cert_cb
  - ssl_set_masks
  - ssl_check_srvr_ecc_cert_and_alg
  - ssl_get_server_cert_index
  - ssl_get_server_send_pkey
  - ssl_get_sign_pkey
  - ssl_get_server_cert_serverinfo
  - ssl_update_cache
  - SSL_CTX_get_ssl_method
  - SSL_get_ssl_method
  - SSL_set_ssl_method
  - SSL_get_error
  - ssl_do_handshake_intern
  - SSL_do_handshake
  - SSL_set_accept_state
  - SSL_set_connect_state
  - ssl_undefined_function
  - ssl_undefined_void_function
  - ssl_undefined_const_function
  - ssl_bad_method
  - ssl_protocol_to_string
  - SSL_get_version
  - SSL_dup
  - ssl_clear_cipher_ctx
  - SSL_get_certificate
  - SSL_get_privatekey
  - SSL_CTX_get0_certificate
  - SSL_CTX_get0_privatekey
  - SSL_get_current_cipher
  - SSL_get_current_compression
  - SSL_get_current_expansion
  - ssl_init_wbio_buffer
  - ssl_free_wbio_buffer
  - SSL_CTX_set_quiet_shutdown
  - SSL_CTX_get_quiet_shutdown
  - SSL_set_quiet_shutdown
  - SSL_get_quiet_shutdown
  - SSL_set_shutdown
  - SSL_get_shutdown
  - SSL_version
  - SSL_client_version
  - SSL_get_SSL_CTX
  - SSL_set_SSL_CTX
  - SSL_CTX_set_default_verify_paths
  - SSL_CTX_set_default_verify_dir
  - SSL_CTX_set_default_verify_file
  - SSL_CTX_load_verify_locations
  - SSL_set_info_callback
  - "(*SSL_get_info_callback(const SSL *ssl)) (const SSL * /* ssl */ ,\n                                               int
    /* type */ ,\n                                               int /* val */ )"
  - SSL_set_verify_result
  - SSL_get_verify_result
  - SSL_get_client_random
  - SSL_get_server_random
  - SSL_SESSION_get_master_key
  - SSL_set_ex_data
  - SSL_get_ex_data
  - SSL_CTX_set_ex_data
  - SSL_CTX_get_ex_data
  - ssl_ok
  - SSL_CTX_get_cert_store
  - SSL_CTX_set_cert_store
  - SSL_want
  - SSL_CTX_set_tmp_dh_callback
  - SSL_set_tmp_dh_callback
  - SSL_CTX_use_psk_identity_hint
  - SSL_use_psk_identity_hint
  - SSL_get_psk_identity_hint
  - SSL_get_psk_identity
  - SSL_set_psk_client_callback
  - SSL_CTX_set_psk_client_callback
  - SSL_set_psk_server_callback
  - SSL_CTX_set_psk_server_callback
  - SSL_CTX_set_msg_callback
  - SSL_set_msg_callback
  - SSL_CTX_set_not_resumable_session_callback
  - SSL_set_not_resumable_session_callback
  - ssl_replace_hash
  - ssl_clear_hash_ctx
  - ssl_handshake_hash
  - SSL_session_reused
  - SSL_is_server
  - SSL_set_debug
  - SSL_set_security_level
  - SSL_get_security_level
  - SSL_set_security_callback
  - "(*SSL_get_security_callback(const SSL *s)) (const SSL *s,\n                                                const
    SSL_CTX *ctx, int op,\n                                                int bits,
    int nid, void *other,\n                                                void *ex)"
  - SSL_set0_security_ex_data
  - SSL_get0_security_ex_data
  - SSL_CTX_set_security_level
  - SSL_CTX_get_security_level
  - SSL_CTX_set_security_callback
  - "(*SSL_CTX_get_security_callback(const SSL_CTX *ctx)) (const SSL *s,\n                                                          const
    SSL_CTX *ctx,\n                                                          int op,
    int bits,\n                                                          int nid,\n
    \                                                         void *other,\n                                                          void
    *ex)"
  - SSL_CTX_set0_security_ex_data
  - SSL_CTX_get0_security_ex_data
  - SSL_CTX_get_options
  - SSL_get_options
  - SSL_CTX_set_options
  - SSL_set_options
  - SSL_CTX_clear_options
  - SSL_clear_options
  - ct_extract_tls_extension_scts
  - ct_extract_ocsp_response_scts
  - ct_extract_x509v3_extension_scts
  - SSL_get0_peer_scts
  - ct_permissive
  - ct_strict
  - SSL_set_ct_validation_callback
  - SSL_CTX_set_ct_validation_callback
  - SSL_ct_is_enabled
  - SSL_CTX_ct_is_enabled
  - ssl_validate_ct
  - SSL_CTX_enable_ct
  - SSL_enable_ct
  - SSL_CTX_set_default_ctlog_list_file
  - SSL_CTX_set_ctlog_list_file
  - SSL_CTX_set0_ctlog_store
  - SSL_CTX_get0_ctlog_store
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_lib.c
- function_names:
  - ssl3_do_change_cipher_spec
  - ssl3_send_alert
  - ssl3_dispatch_alert
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/s3_msg.c
- function_names:
  - DEFINE_RUN_ONCE_STATIC
  - SSL_get_ex_data_X509_STORE_CTX_idx
  - ssl_cert_new
  - ssl_cert_dup
  - ssl_cert_clear_certs
  - ssl_cert_free
  - ssl_cert_add0_chain_cert
  - ssl_cert_add1_chain_cert
  - ssl_cert_select_current
  - ssl_cert_set_current
  - ssl_cert_set_cert_cb
  - SSL_add_client_CA
  - SSL_CTX_add_client_CA
  - xname_sk_cmp
  - xname_cmp
  - xname_hash
  - ssl_add_cert_to_buf
  - ssl_add_cert_chain
  - ssl_build_cert_chain
  - ssl_cert_set_cert_store
  - ssl_security_default_callback
  - ssl_security
  - ssl_ctx_security
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_cert.c
- function_names:
  - tls1_default_timeout
  - tls1_new
  - tls1_free
  - tls1_clear
  - tls1_ec_curve_id2nid
  - tls1_ec_nid2curve_id
  - tls1_get_curvelist
  - tls_curve_allowed
  - tls1_check_curve
  - tls1_shared_curve
  - tls1_set_curves
  - nid_cb
  - tls1_set_curves_list
  - tls1_set_ec_id
  - tls1_check_ec_key
  - tls1_get_formatlist
  - tls1_check_cert_param
  - tls1_check_ec_tmp_key
  - tls1_check_cert_param
  - tls12_get_psigalgs
  - tls12_check_peer_sigalg
  - ssl_set_client_disabled
  - ssl_cipher_disabled
  - tls_use_ticket
  - compare_uint
  - tls1_check_duplicate_extensions
  - ssl_add_clienthello_tlsext
  - ssl_add_serverhello_tlsext
  - tls1_alpn_handle_client_hello
  - tls1_alpn_handle_client_hello_late
  - ssl_check_for_safari
  - ssl_scan_clienthello_tlsext
  - ssl_parse_clienthello_tlsext
  - ssl_next_proto_validate
  - ssl_scan_serverhello_tlsext
  - ssl_prepare_clienthello_tlsext
  - ssl_prepare_serverhello_tlsext
  - ssl_check_clienthello_tlsext_early
  - ssl_set_default_md
  - tls1_set_server_sigalgs
  - ssl_check_clienthello_tlsext_late
  - ssl_check_serverhello_tlsext
  - ssl_parse_serverhello_tlsext
  - tls_check_serverhello_tlsext_early
  - tls_decrypt_ticket
  - tls12_find_id
  - tls12_find_nid
  - tls12_get_sigandhash
  - tls12_get_sigid
  - tls12_get_hash_info
  - tls12_get_hash
  - tls12_get_pkey_idx
  - tls1_lookup_sigalg
  - tls12_sigalg_allowed
  - ssl_set_sig_mask
  - tls12_copy_sigalgs
  - tls12_shared_sigalgs
  - tls1_set_shared_sigalgs
  - tls1_save_sigalgs
  - tls1_process_sigalgs
  - SSL_get_sigalgs
  - SSL_get_shared_sigalgs
  - get_sigorhash
  - sig_cb
  - tls1_set_sigalgs_list
  - tls1_set_sigalgs
  - tls1_check_sig_alg
  - tls1_set_cert_validity
  - ssl_get_auto_dh
  - ssl_security_cert_key
  - ssl_security_cert_sig
  - ssl_security_cert
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/t1_lib.c
- function_names:
  - SSL_CTX_SRP_CTX_free
  - SSL_SRP_CTX_free
  - SSL_SRP_CTX_init
  - SSL_CTX_SRP_CTX_init
  - SSL_srp_server_param_with_username
  - SSL_set_srp_server_param_pw
  - SSL_set_srp_server_param
  - srp_generate_server_master_secret
  - srp_generate_client_master_secret
  - srp_verify_server_param
  - SRP_Calc_A_param
  - SSL_get_srp_g
  - SSL_get_srp_N
  - SSL_get_srp_username
  - SSL_get_srp_userinfo
  - SSL_CTX_set_srp_username
  - SSL_CTX_set_srp_password
  - SSL_CTX_set_srp_strength
  - SSL_CTX_set_srp_verify_param_callback
  - SSL_CTX_set_srp_cb_arg
  - SSL_CTX_set_srp_username_callback
  - SSL_CTX_set_srp_client_pwd_callback
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/tls_srp.c
- function_names:
  - SSL_SESSION_print_fp
  - SSL_SESSION_print
  - SSL_SESSION_print_keylog
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_txt.c
- function_names:
  - do_ssl_trace_str
  - do_ssl_trace_list
  - ssl_print_hex
  - ssl_print_hexbuf
  - ssl_print_version
  - ssl_print_random
  - ssl_print_signature
  - ssl_print_extension
  - ssl_print_extensions
  - ssl_print_client_hello
  - dtls_print_hello_vfyrequest
  - ssl_print_server_hello
  - ssl_get_keyex
  - ssl_print_client_keyex
  - ssl_print_server_keyex
  - ssl_print_certificate
  - ssl_print_certificates
  - ssl_print_cert_request
  - ssl_print_ticket
  - ssl_print_handshake
  - ssl_print_heartbeat
  - SSL_CIPHER_standard_name
  - SSL_trace
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/t1_trce.c
- function_names:
  - SSL_get_session
  - SSL_get1_session
  - SSL_SESSION_set_ex_data
  - SSL_SESSION_get_ex_data
  - SSL_SESSION_new
  - ssl_session_dup
  - SSL_SESSION_get_id
  - SSL_SESSION_get0_id_context
  - SSL_SESSION_get_compress_id
  - def_generate_session_id
  - ssl_get_new_session
  - ssl_get_prev_session
  - SSL_CTX_add_session
  - SSL_CTX_remove_session
  - remove_session_lock
  - SSL_SESSION_free
  - SSL_SESSION_up_ref
  - SSL_set_session
  - SSL_SESSION_set1_id
  - SSL_SESSION_set_timeout
  - SSL_SESSION_get_timeout
  - SSL_SESSION_get_time
  - SSL_SESSION_set_time
  - SSL_SESSION_get_protocol_version
  - SSL_SESSION_get0_cipher
  - SSL_SESSION_get0_hostname
  - SSL_SESSION_has_ticket
  - SSL_SESSION_get_ticket_lifetime_hint
  - SSL_SESSION_get0_ticket
  - SSL_SESSION_get0_peer
  - SSL_SESSION_set1_id_context
  - SSL_CTX_set_timeout
  - SSL_CTX_get_timeout
  - SSL_set_session_secret_cb
  - SSL_set_session_ticket_ext_cb
  - SSL_set_session_ticket_ext
  - timeout_cb
  - SSL_CTX_flush_sessions
  - ssl_clear_bad_session
  - SSL_SESSION_list_remove
  - SSL_SESSION_list_add
  - SSL_CTX_sess_set_new_cb
  - (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)) (SSL *ssl, SSL_SESSION *sess)
  - SSL_CTX_sess_set_remove_cb
  - "(*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx)) (SSL_CTX *ctx,\n                                                  SSL_SESSION
    *sess)"
  - SSL_CTX_sess_set_get_cb
  - "*(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx)) (SSL *ssl,\n                                                       const
    unsigned char\n                                                       *data, int
    len,\n                                                       int *copy)"
  - SSL_CTX_set_info_callback
  - "(*SSL_CTX_get_info_callback(SSL_CTX *ctx)) (const SSL *ssl, int type,\n                                                 int
    val)"
  - SSL_CTX_set_client_cert_cb
  - "(*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx)) (SSL *ssl, X509 **x509,\n                                                 EVP_PKEY
    **pkey)"
  - SSL_CTX_set_client_cert_engine
  - SSL_CTX_set_cookie_generate_cb
  - SSL_CTX_set_cookie_verify_cb
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_sess.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/ssl_locl.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/record/record.h
- function_names:
  - SSL3_BUFFER_set_data
  - SSL3_BUFFER_clear
  - SSL3_BUFFER_release
  - ssl3_setup_read_buffer
  - ssl3_setup_write_buffer
  - ssl3_setup_buffers
  - ssl3_release_write_buffer
  - ssl3_release_read_buffer
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_buffer.c
- function_names:
  - satsub64be
  - dtls1_record_replay_check
  - dtls1_record_bitmap_update
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/record/dtls1_bitmap.c
- function_names:
  - RECORD_LAYER_init
  - RECORD_LAYER_clear
  - RECORD_LAYER_release
  - RECORD_LAYER_read_pending
  - RECORD_LAYER_write_pending
  - RECORD_LAYER_set_data
  - RECORD_LAYER_reset_read_sequence
  - RECORD_LAYER_reset_write_sequence
  - ssl3_pending
  - SSL_CTX_set_default_read_buffer_len
  - SSL_set_default_read_buffer_len
  - SSL_rstate_string_long
  - SSL_rstate_string
  - ssl3_read_n
  - ssl3_write_bytes
  - do_ssl3_write
  - ssl3_write_pending
  - ssl3_read_bytes
  - ssl3_record_sequence_update
  - RECORD_LAYER_is_sslv2_record
  - RECORD_LAYER_get_rrec_length
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_s3.c
- function_names:
  - SSL3_RECORD_clear
  - SSL3_RECORD_release
  - SSL3_RECORD_set_seq_num
  - ssl3_record_app_data_waiting
  - ssl3_get_record
  - ssl3_do_uncompress
  - ssl3_do_compress
  - ssl3_enc
  - tls1_enc
  - n_ssl3_mac
  - tls1_mac
  - ssl3_cbc_remove_padding
  - tls1_cbc_remove_padding
  - ssl3_cbc_copy_mac
  - dtls1_process_record
  - dtls1_get_record
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/record/ssl3_record.c
- function_names:
  - DTLS_RECORD_LAYER_new
  - DTLS_RECORD_LAYER_free
  - DTLS_RECORD_LAYER_clear
  - DTLS_RECORD_LAYER_set_saved_w_epoch
  - DTLS_RECORD_LAYER_resync_write
  - DTLS_RECORD_LAYER_set_write_sequence
  - dtls1_copy_record
  - dtls1_buffer_record
  - dtls1_retrieve_buffered_record
  - dtls1_process_buffered_records
  - dtls1_read_bytes
  - have_handshake_fragment
  - dtls1_write_bytes
  - do_dtls1_write
  - dtls1_get_bitmap
  - dtls1_reset_seq_numbers
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/record/rec_layer_d1.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/record/record_locl.h
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_locl.h
- function_names:
  - SSL_get_state
  - SSL_in_init
  - SSL_is_init_finished
  - SSL_in_before
  - ossl_statem_clear
  - ossl_statem_set_renegotiate
  - ossl_statem_set_error
  - ossl_statem_in_error
  - ossl_statem_set_in_init
  - ossl_statem_get_in_handshake
  - ossl_statem_set_in_handshake
  - ossl_statem_set_hello_verify_done
  - ossl_statem_connect
  - ossl_statem_accept
  - get_callback
  - state_machine
  - init_read_state_machine
  - grow_init_buf
  - read_state_machine
  - statem_do_write
  - init_write_state_machine
  - write_state_machine
  - statem_flush
  - ossl_statem_app_data_allowed
  - ossl_statem_set_sctp_read_sock
  - ossl_statem_in_sctp_read_sock
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem.h
- function_names:
  - ossl_statem_server_read_transition
  - send_server_key_exchange
  - send_certificate_request
  - ossl_statem_server_write_transition
  - ossl_statem_server_pre_work
  - ossl_statem_server_post_work
  - ossl_statem_server_construct_message
  - ossl_statem_server_max_message_size
  - ossl_statem_server_process_message
  - ossl_statem_server_post_process_message
  - ssl_check_srp_ext_ClientHello
  - tls_construct_hello_request
  - dtls_raw_hello_verify_request
  - dtls_construct_hello_verify_request
  - tls_process_client_hello
  - tls_post_process_client_hello
  - tls_construct_server_hello
  - tls_construct_server_done
  - tls_construct_server_key_exchange
  - tls_construct_certificate_request
  - tls_process_cke_psk_preamble
  - tls_process_cke_rsa
  - tls_process_cke_dhe
  - tls_process_cke_ecdhe
  - tls_process_cke_srp
  - tls_process_cke_gost
  - tls_process_client_key_exchange
  - tls_post_process_client_key_exchange
  - tls_process_cert_verify
  - tls_process_client_certificate
  - tls_construct_server_certificate
  - tls_construct_new_session_ticket
  - tls_construct_cert_status
  - tls_process_next_proto
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_srvr.c
- function_names:
  - cert_req_allowed
  - key_exchange_expected
  - ossl_statem_client_read_transition
  - ossl_statem_client_write_transition
  - ossl_statem_client_pre_work
  - ossl_statem_client_post_work
  - ossl_statem_client_construct_message
  - ossl_statem_client_max_message_size
  - ossl_statem_client_process_message
  - ossl_statem_client_post_process_message
  - tls_construct_client_hello
  - dtls_process_hello_verify
  - tls_process_server_hello
  - tls_process_server_certificate
  - tls_process_ske_psk_preamble
  - tls_process_ske_srp
  - tls_process_ske_dhe
  - tls_process_ske_ecdhe
  - tls_process_key_exchange
  - tls_process_certificate_request
  - ca_dn_cmp
  - tls_process_new_session_ticket
  - tls_process_cert_status
  - tls_process_server_done
  - tls_construct_cke_psk_preamble
  - tls_construct_cke_rsa
  - tls_construct_cke_dhe
  - tls_construct_cke_ecdhe
  - tls_construct_cke_gost
  - tls_construct_cke_srp
  - tls_construct_client_key_exchange
  - tls_client_key_exchange_post_work
  - tls_construct_client_verify
  - ssl3_check_client_certificate
  - tls_prepare_client_certificate
  - tls_construct_client_certificate
  - ssl3_check_cert_and_algorithm
  - tls_construct_next_proto
  - ssl_do_client_cert_cb
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_clnt.c
- function_names:
  - dtls1_hm_fragment_new
  - dtls1_hm_fragment_free
  - dtls1_do_write
  - dtls_get_message
  - dtls1_max_handshake_message_len
  - dtls1_preprocess_fragment
  - dtls1_retrieve_buffered_fragment
  - dtls1_reassemble_fragment
  - dtls1_process_out_of_seq_message
  - dtls_get_reassembled_message
  - dtls_construct_change_cipher_spec
  - dtls_wait_for_dry
  - dtls1_read_failed
  - dtls1_get_queue_priority
  - dtls1_retransmit_buffered_messages
  - dtls1_buffer_message
  - dtls1_retransmit_message
  - dtls1_set_message_header
  - dtls1_set_message_header_int
  - dtls1_fix_message_header
  - dtls1_write_message_header
  - dtls1_get_message_header
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_dtls.c
- function_names:
  - ssl3_do_write
  - tls_construct_finished
  - ssl3_take_mac
  - tls_process_change_cipher_spec
  - tls_process_finished
  - tls_construct_change_cipher_spec
  - ssl3_output_cert_chain
  - tls_finish_handshake
  - tls_get_message_header
  - tls_get_message_body
  - ssl_cert_type
  - ssl_verify_alarm_type
  - ssl_allow_compression
  - version_cmp
  - ssl_method_error
  - ssl_version_supported
  - ssl_check_version_downgrade
  - ssl_set_version_bound
  - ssl_choose_server_version
  - ssl_choose_client_version
  - ssl_get_client_min_max_version
  - ssl_set_client_hello_version
  source_file: /src/openweave-core/third_party/openssl/openssl/ssl/statem/statem_lib.c
- function_names: []
  source_file: /src/openweave-core/third_party/openssl/openssl/os-dep/haiku.h
